Blog of a Consultant
Offering information about Blockchains and Consulting
ブロックチェーン

【書評・要約】「いちばんやさしいブロックチェーンの教本」から学ぶブロックチェーンの基礎

【書評・要約】「いちばんやさしいブロックチェーンの教本」から学ぶブロックチェーンの基礎

こんにちは、
戦略コンサルタントのシータです。

今日は、ブロックチェーンを初学者が学ぶには最適だと思える、
「いちばんやさしいブロックチェーンの教本」の書評・要約をしたいと思います。

「いちばんやさしいブロックチェーンの教本」書評

「ブロックチェーン」という言葉をよく聞くけど、あんまりよくわからないなあ、仮想通貨のイメージがあるからネガティブなイメージを同じく持ってしまうなあ、なんて人はたくさんいると思います。
そんな「ブロックチェーン」がいかに今後の未来を変えていくのかが、ブロックチェーンの基礎を学びつつ理解できるのがこの本の特徴です。
私も非エンジニアでしたが、この本から「ブロックチェーン」の基礎を学び始めました。
歴史上珍しく日本がリードしている分野である「ブロックチェーン」をこの機会にぜひ学んでみてください。
そして実ビジネスにどんどん適用していってください。

 

「いちばんやさしいブロックチェーンの教本」要約

ブロックチェーンは暗号技術やインターネットサービスを結集させた革新的な技術であり、今後のビジネスを大きく変えていく要因になる。

「いちばんやさしいブロックチェーンの教本」章ごとの要約

 

第1章 ブロックチェーンとは何か知ろう

ブロックチェーンとは、

正しい記録しかできない、変更できない、消せない、改竄できない、壊れても自動修復される、落ちない、みんなに合意された情報だけが有効と認識される、ネットワーク共有型のデータベース

絶対に壊れないシステムというのは、同じパーツを複数用意しておき、いつも同じ仕事をダブって実行させておけば、万が一どこかが壊れても大丈夫、という考え方。
このような発想で作られたシステムを「分散システム」という。

ブロックチェーンの特徴

自律分散システム(たくさんのノードが同じデータをバケツリレーでコピーし合って全員で同じ仕事をしている。いくつかのノードが壊れても全体の動作に影響はない)
リーダー不在でも動作可能(各ノードに決まった役割が存在しないので、リーダーといった概念は存在しない。単一障害点がない)
ウォレットアドレス(ブロックチェーンでは公開鍵暗号方式の「公開鍵」と「秘密鍵」のペアキーがウォレットアドレスに対応している。)
トランザクション(ブロックチェーンはウォレットアドレスの残高を知らず、知っているのは過去のトランザクションの全ての履歴のみ。そこから残高を計算するのがUTXOモデル)

トランザクションに関して詳しく知りたい方ははこの記事がおすすめです。

第2章 ビットコインを体験しよう

ビットコインはブロックチェーン上に記録されている数字に過ぎない。
ビットコインの最大の価値は、ネットワークに参加する人々がそれぞれの信用にと寄ることなく、自律的に自分たちの取引を公正明大に評価できる仕組みを作り上げたところ。

 

第3章 ブロックチェーン技術を支える暗号技術を学ぼう

現代の暗号方式

共通鍵暗号方式・・・文書を暗号化するための鍵と、暗号文を複合する鍵が「共通」。DESやAESなどが代表例。
公開鍵暗号方式・・・「秘密鍵」と「公開鍵」の2種類の鍵を生成して文書を暗号化する方式。RSAや楕円曲線暗号が代表例。

ブロックチェーンでは「公開鍵暗号方式」が良く使用されている。
公開鍵暗号方式は、公開鍵を用いて暗号化した文書は秘密鍵を持ってのみ復号化できるという特性から、「特定の人を指名して、その人だけ所定の操作を可能とする」仕組みを作ることに向いている。

ブロックチェーンのトランザクションにおいて、送信者は、受信者の公開鍵を使って 暗号化し、受信者は自身の秘密鍵を用いて復号化する。

公開鍵暗号にはいくつか種類があるが、いずれもA→B方向への変換は簡単だが、B→Aに戻すことはほぼ不可能。

通常、公開鍵暗号は大きなデジタル文書の暗号に向いていないため、一般的には共通鍵の交換や署名用途にのみ使われています。

コンピューターが作り出す乱数は「擬似乱数」と呼ばれている。
与えられるシード値がわかれば出力値も決まっているため、正式な乱数ではなく「擬似」と名付けられている。

ブロックチェーンの技術を語る上でもっとも大切な技術は「一方向ハッシュ関数」。
ハッシュ関数を用いると、1バイトでも1ビットでも異なる値が入力されると全く異なる出力値が得られること。また、シード値が同じであれば全く同じ出力値が得られること。そして長さの異なる文字列を与えても、常に一定の桁数となることが特徴。(SHA256というアルゴリズムを用いたものが代表例)
→文書改竄の検出に使用される。

「公開鍵暗号」と「一方向ハッシュ値」の性質を利用して実現される。
電子署名は、暗号通貨の暗号技術の巧妙な組み合わせによって実現される「誰がそれを行ったか」を証明するためのフレームワーク。
ブロックチェーンに記録されるトランザクションの情報には必ず電子署名が施されている。
原文メッセージをハッシュ値に暗号化し、そしてさらに秘密鍵で暗号化する(電子署名)。
→しかし、公開鍵が本人のものであるのか、そもそもメッセージを作成したものが本人かどうかわからない。

そこで、「電子認証局」を介す方法が最善である。
「電子認証局」は、公開鍵暗号方式の公開鍵の持ち主を実在する人や組織に結びつけて管理するための仕組みおよび組織。

ブロックチェーンにおける「トラストレス」は実装手段の一つに過ぎない。
「トラステッド」が求められる環境では、それ相応の中央集権的なものに頼る姿勢も大切。

 

第4章 ブロックチェーンを支える分散システムを学ぼう

P2P方式は「止まらずに稼働を続けるシステムを作る」という1点を強化した仕組み。
→許可したノード以外はシステムに参加させないといった仕組みづくりが求められる。

インターネットのサービスに要求される3つの性質

・一貫性
・可用性
・分断耐性

ブロックチェーンの長所は「可用性」と「分断耐性」にある。

不特定多数の合意形成を実現する方法
・「Proof of Work」・・・取引データをまとめたブロックを新規作成し、ブロックを追加する権利をかけて計算をする。
・「Proof of Stake」・・・保有している仮想通貨の量が多く、かつ期間が長いほど新しいブロックを追加する権利が得られやすい。

ブロックが分岐した時は、正しいと思う方のブロックを各ノードが伸ばしていき、正しくない方はインセンティブごと無効化される。
※分散合意形成に経済学的インセンティブを入れたことがブロックチェーンの革命的なこと。

 

第5章 ウォレットの仕組みを理解しよう

マルチシグネチャアドレス・・・送金する際に複数の署名を必要とするアドレス

 

第6章 ブロックチェーンに取引を記録するトランザクションについて学ぼう

UTXO・・・ウォレットアドレスの未使用残高
アドレスの残高表示に関して、UTXOをすべて計算して出すものをUTXOモデルといい、
直接残高をブロックチェーンに記録するものをアカウントベースという。

UTXOモデルでは、トランザクションは必ず「予算」「入力」「出力」の3つのバランスが常に保たれていないとならない。

※NEMやイーサリアムはアカウントベース

この記事を見ていただけますと詳しく理解が進むと思います。

ブロックチェーンでは、合意がひっくり返る可能性もあり、ファイナリティ(決済が後から取り消されないこと)がないという問題が議論を呼び起こしている。

ブロックチェーンはトランザクションがブロックチェーンに埋め込まれるまで10分必要なので、
小売店での決済に向きません。
対処法としては、まだブロックチェーンに記録されていないことを承知の上で、
見切り発車で現場の承認手続きをする「ゼロコンファメーション」という方法が取られている。

 

第7章 スマートコントラクトで契約を執行する仕組みを知ろう

スマートコントラクト・・・ブロックチェーンのネットワークに計算機能を持たせることで、「複数の人が合意した内容(契約)を、人がいないところでも自動的に履行する」という仕組み
※お金を入れてボタンを押すとジュースが出てくるという自動販売機も一種のスマートコントラクト

スマートコントラクトはプログラムなので、内部情報だけでなく外部情報を受けて結果が変化するのが一般的。
そこで参照する外部の情報は、ワールドステートと呼ばれるブロックチェーン上の記憶領域に取り込まれているもののみ。
ワールドステートに取り込むためには、ノードの全会一致で合意を得た情報でないといけない。

この記事を読んでいただけると、スマートコントラクトに関して、そしてそれを実装しているイーサリアムに関して深く理解できます。

 

第8章 ブロックチェーンが活用される世界を想像してみよう

様々なものにブロックチェーンは応用可能です。
詳しくは本書でお読みください。

以上が、章ごとの要約です。

仮想通貨へのイメージはまだまだネガティブなものが多いですが、
その根幹を支える「ブロックチェーン」という技術がどれほど革新的なものかはわかっていただけると幸いです。

本書はブロックチェーンを学ぶにあたって基礎的なことを理解するのに最適の書であると思います。