ニュース

ブロックチェーンの仕組みと特徴

ブロックチェーンの仕組みと特徴

2018年07月25日

 

 

アマゾンの創設者であり、CEOであるジェフ・ベゾスの言葉に、「善意は働かない。働くのは仕組みだ」というものがあります。一大サービスを築き上げた人物ならではの、重みのある言葉であり、特に、独自の社会性が足かせとなってしまうことがある我々日本人には、その意味が強烈に響いてくるものでもあります。

この言葉はブロックチェーンの基本思想にもマッチしやすく、「善意」を「信頼」と置き換えると、前述の「信頼革命」という考え方とも一致します。アマゾンが「AWS Blockchain Templates」でブロックチェーンに関するサービスを積極的に提供しているのも、おそらく偶然ではないのでしょう。ただ、ブロックチェーンが巨大企業を含めた「中央集権型」から「分散」へと移行するためのテクノロジーであるという前提に立った時、アマゾンの存在はどうなのか、という疑問が出る可能性はありますが、その議論は控えておきましょう。ここでは、言葉の持つ力だけを引用します。

 

「“信頼”は働かない。働くのは“仕組み”である」という前提に立って、ブロックチェーンを構成する仕組みと、その特徴について本項では説明していきたいと思います。しかし具体的な仕組みの話の前に、ブロックチェーンがなぜ必要になったのか、という点を改めて明らかにします。

 

ブロックチェーンは、サトシ・ナカモトがビットコインを成立させるために開発したテクノロジーであるということは前述の通りです。従来の通貨は中央銀行や国家にコントロールされた「中央集権型」のものであり、「信頼」という不安定な担保に基づくものでした。これに対し、ビットコインに代表される暗号通貨は、特定の誰かに対する信頼に依存することなく、無駄や不正を排除し、かつ安定した動きを続けるものとして位置づけられています。

それを実現するためには、従来のサーバー/クライアント型の情報管理体制では不可能でした。全てのデータを集約・管理するサーバーは、常に誰かのコントロールの下に置かれています。その誰かが不正をしたり、個人の利益を追求し始めたりする可能性は常に存在し、情報の流出や、第三者の攻撃を受けることからも逃れられません。事実、これらのトラブルは、大小問わずほとんど日常的に起こっています。日々メディアで報道されている通りです。

サーバー/クライアント型の情報管理体制を覆すには、ネットワークに接続する者が皆平等である、という世界を構築する必要があります。そこで生まれたのがP2Pによるブロックチェーンです。

P2Pで構築されるネットワークでは、コンピュータは全て平等に接続され、ヒエラルキーは存在しません。したがって、P2Pを採用したブロックチェーンの中では、取引の監視、承認、暗号通貨の流通、情報の閲覧などが全て平等に行われます。こういった考え方のもとに、最初のブロックチェーンを組み込んだビットコインのシステムが成立したのです。

この基本思想を元に、ブロックチェーンの仕組みについての解説を進めていきます。話を分かりやすくするため、この項ではビットコインのものを例として説明します。

 

まず、ブロックチェーンの仕組みを、極めて簡潔に説明してみましょう。

 

 ブロックチェーンは、取引データを記録する「ブロック」と、それを繋ぐ「チェーン」で構成された分散化台帳である。ノードと呼ばれるコンピュータがP2Pで繋がり合い、分散化されたデータ管理を可能にする。ブロック内のデータは、マイナーたちが割り出したナンスと共にハッシュ関数で高度に暗号化され、この値を使って新規ブロックを接続する。プルーフ・オブ・ワークと呼ばれるこのプロセスを繰り返すことでブロックチェーンは拡張され、巨大なデータベースを構築する。

 

ブロックチェーンの仕組みを凝縮して解説すると以上のようなものになりますが、この220文字の説明で理解できるのは、既にブロックチェーンの仕組みについて勉強した人でしょう。ブロックチェーンのことを今から学ぼうと考えている人は、この時点でうんざりしてしまうかもしれません。そうならないように、以下具体的に説明します。

 

ブロックチェーンの仕組みは、基本的にはシンプルなものです。しかしどうしてもその概念がつかみづらい、と捉えられてしまいがちな傾向にあります。ブロックチェーンを分かりづらくしている要素には、主に以下のようなものがあります。

 

■データという、目に見えないものを扱っている

■専門用語が多い

■今までにない概念なので何かに置き換えて考えることが難しい

 

たとえば車のエンジンについて説明する時、その実体は普段は隠れていますが、ボンネットを開けて「これがエンジンです」と示すことができます。また、カットモデルなどを見せて、クランク、ピストン、バルブなどのパーツを指し示しながら機能を説明することもできます。その上で実際に運転しながら、現在ピストンが毎分5千回上下していると解説し、その時のパワーを実感してももらえるでしょう。

しかし、ブロックチェーンを説明する際に「これがブロックチェーンです」と示すことはできません。さらに、ノード、マイニングといった専門用語が難解なイメージに拍車をかけています。「従来の○○をコンパクトにしたようなイメージ」とった置き換えもできません。これらの理由により、ブロックチェーンは「何か難しそうなもの」「捉えどころのないもの」という誤解を受けることも多くあります。しかし、ブロックチェーンそのものの構造に難解な部分はなく、曖昧さもないので、本来は分かりやすいはずなのです。

 

ブロックチェーンをシンプルに、かつ可視的に理解するため、ここでは「貨物列車」を想像してください。

その貨物列車は各駅停車で、駅に停車するごとに新しい貨車を1両、最後尾に連結していきます。積荷は連結する時点で既に貨車に載せられており、途中で載せたり降ろしたりすることはできません。

また、各車両には車両担当者がついていて、積荷のリストを管理しています。自分の車両が連結したら、前の車両からリストを受け取り、そこに自分の車両の積み荷を書き加えてコピーを取り、後ろに車両が連結されたらそのリストを渡します。

これがブロックチェーンの基本構造で、ブロックは貨車、取引データは積荷、チェーンは連結器です。この貨物列車をイメージしながら解説を進めます。

 

貨物列車の例で、「積荷のリスト」というものが登場しましたが、このリストが列車の運行上重要な意味を持ちます。リストは前の車両からリレーされているため、誰かが「途中で載せたり降ろしたりすることはできない」というルールを破って、積荷を入れ替えるなど何らかの変化を加えた場合、その不正が発生した車両から後ろは全て、積荷リストと実際の荷物が一致しなくなってしまいます。そのため、リストと荷物が一致しない車両が出たら、何らかの不正行為が働いたとみなされ、そこから連結を切り離してしまいます。ブロックチェーンも同様で、データ(積荷)を保存したブロックを繋げる際に、ブロック内のデータを暗号化して、次のブロックに渡す作業を行います。この暗号と実際のデータが一致しなければ、そのブロックの接続は行われません。これにより、ブロックチェーンは「改ざんできない」という高度なセキュリティを保つことができるのです。

 

この、個別のブロックを接続して「ブロックチェーン」を形成していくにあたって、重要な役割を果たす人達がいます。「ノード」と「マイナー」です。

 

<ノード>

ブロックチェーンを構成するためのP2Pネットワークに必要なコンピュータを提供する人。あるいはそのコンピュータ自体。

 

<マイナー>

ノードの中で、ブロックチェーンを繋いでいくための「ナンス」という値を割り出す作業(マイニング)を行う人。

※この「マイニング」という作業と、「ナンス」という値については少し詳しい解説が必要なので、後述します。

 

先の貨物列車の例でいうと、「ノード」は列車の集団管理者です。この列車は特定の鉄道会社が所有するものではなく、一般の有志が集まって運行・運営しています。管理者に加わるためには、特別な条件や資格などはありませんが、列車を運行するための資金を提供しなくてはなりません。ブロックチェーンにおいても、ノードになるために必要な条件などはありません。ただし、ブロックチェーンを運用していくためのマシンパワー、つまりコンピュータ環境を提供しなくてはいけません。この、ノードが提供したコンピュータがP2Pでつながって、ブロックチェーンを運用できる環境が生まれるのです。

また、「マイナー」は、貨物列車でいうところの、各車両の車両担当者です。車両担当者は、連結時に前の車両から積荷リストを受け取り、自分が担当している車両の積荷を書き加え、次の車両に渡します。連結がうまくいったら報酬がもらえます。これが繰り返され、積荷リストは列車が連結される数だけリレーされていきます。そして、もしリストと実際の積荷の内容に相違があれば、その相違が発生した車両は連結されず、車両担当者は報酬がもらえません。このルールにより、貨物列車の積荷は常に正確性を保ちます。つまりブロックチェーンにおける「改ざんできない」という長所になるわけです。

 

ブロックチェーンは、ノードとマイナーがこういった役割を務めることによって運用されています。また、運用を正しく行い続けるために、ブロックチェーンはその仕組みにおいて、多くの特徴を持っています。主に以下のようなものです。

 

(1)P2Pネットワークによって分散化されている

(2)データの高度な暗号化によってセキュリティを保っている

(3)プルーフ・オブ・ワークによって運用されている

(4)データは全て誰でも閲覧できる

 

この4つの特徴を持つことで、ブロックチェーンは「信頼」を必要としないシステムを実現しています。それぞれの特徴について説明します。

 

 

 

 

(1)のP2Pネットワークについては前述の通りです。従来常識だったサーバー/クライアント型ではなく、多くのコンピュータを全て平等につなぐ方法がP2Pで、これによりデータ管理が一極集中ではなく分散化されることが実現し、不正や改ざんを防ぎ、他者からの攻撃を受けた際の防御力を高め、コンピュータがダウンした時にもシステム全体がダウンすることを防止できます。

貨物列車の例えで言うと、この列車はどの鉄道会社にも属しておらず、リニアモーターカーのように運転手も必要なく、だれの意思にもよらず、集団管理者である「ノード」たちの手によって走り続ける列車である、という点です。運転士のミスで事故が発生するようなことも起こりませんし、鉄道会社が倒産して運行がストップすることもありません。集団による管理なので、特定の誰かが自分の利益だけを追求することもできません。

 

(2)の暗号化については、ハッシュ関数というものが使われています。これは、データを高度な暗号に似た数値に変換できるプログラム(関数)の一種です。ハッシュ関数からは「ハッシュ値」という結果が得られますが、このハッシュ値から元のデータを復元することは、ほぼ不可能であるという大きな特徴を持っています。

ハッシュ関数について説明をしようとすれば、アルゴリズムやプログラミングの領域に踏み込んでしまい、一冊の本ができ上がってしまうので、ここでは便宜上「データを暗号化するプログラム」と捉えておけば良いでしょう。このハッシュ関数とハッシュ値を使ったブロックの承認・連結作業が「プルーフ・オブ・ワーク」です。

 

(3)のプルーフ・オブ・ワークは、ブロックチェーンを運用する上で非常に重要な作業です。

ビットコインのブロックチェーンでは、1つのブロックの生成時間が約10分間と決められているため、世界中で常時行われている取引のデータは、10分ごとに一旦区切られます。ここで「マイナー」が登場します。マイナーは10分間の取引データをもとに、前述のハッシュ関数を使ってそのブロックのハッシュ値を求めるのですが、ここにルールが決められています。具体的には、「ハッシュ値の冒頭の、決められた桁数が全て0になっていなければならない」というようなルールです。普通にデータからハッシュ値を求めても、冒頭が0の連続になることは、ほぼありません。そこでデータの中に何らかの値を埋め込んで、ハッシュ値の冒頭が0になるようにトライアンドエラーを繰り返します。この繰り返し作業が「マイニング」で、最終的に得られた埋め込む値が「ナンス」です。

これだけを読むと、コンピュータに自動計算させれば済むことのように思えるかもしれません。実際そうなのです。マイニング作業は、マイナーがコンピュータに求めさせているのですが、ハッシュ関数が出すハッシュ値は非常に複雑な値であるため、求められる「ナンス」にも規則性が全くなく、考えられる値をひたすら関数に投げ込んでいくしか方法がないのです。これには高性能のコンピュータをフル稼働させる必要があり、電力も大量に消費します。この作業を世界中のマイナーが行います。そして、最初にナンスを見つけた人がブロックに書き込み、ノードたちに「ブロックを生成した」と意思表示をします。ノードはそのブロックのデータとハッシュ値に整合性があるか確認し、過半数のノードが承認すれば、ブロックの完成です。そして、成功したマイナーにはビットコインが報酬として支払われ、次のブロックが同じ手順で連結されていきます。

ここで次のブロックを連結する際に、前に生成されたブロックのハッシュ値が書き込まれます。このハッシュ値は、前のブロックが含んでいる「2つ前のブロックのハッシュ値」と「ナンス」と、そのブロックのデータが反映された暗号なので、前のブロックで何らかの改ざんが行われれば、それがどんなに小さな変更であってもハッシュ値が変わってしまいます。それを解決するには新しい「ナンス」が必要です。この連鎖が、ブロックが続く限り延々とリレーされていくので、どこか1ヵ所を変えたら、そこから続くブロックも全て書き換えなくてはならなくなります。しかも、ナンスを求める作業は非常に困難で、その作業を行っている間にもブロックの連鎖はどんどん長くなっていきます。つまり、ブロックチェーンの改ざんは「やっても無駄」な作業なのです。

少しややこしいですが、これがプルーフ・オブ・ワークで「改ざんできない」という大きな特徴を実現するためのプロセスです。それと同時に、報酬を伴う「マイニング」がブロックチェーンを動かす動力となっているわけです。

 

(4)については、P2Pならではの特性です。ブロックをつなぐ技術にはハッシュ関数を用いていますが、ブロック内のデータは、取引内容が全てそのままの状態で保存されています。これは誰でも閲覧可能です。

実際、コインチェックのNEM流出事件の時も、ブロックチェーンの中でデータが取引されている間は、犯人の動きを追うことができました。しかし、最終的にNEMが交換所に持ち込まれた際、交換所のルールが、個人の認証なしでも暗号通貨の交換が可能というものだったため、追跡がそこで途絶えてしまいました。また、大部分はダークウェブ(裏社会のインターネット)に紛れ込み、雲散霧消してしまう結果となってしまいました。これはブロックチェーンの構造上の欠陥から怒ったものではなく、交換所のルール設定やセキュリティ、そしてインターネットや社会そのものの問題です。

 

 

話が少し逸れてしまいましたが、以上がブロックチェーンの特徴です。これまでの解説を元に、ブロックチェーンの運用をシミュレートしてみましょう。ここでもビットコインを例にします。

 

(1)A氏からB氏に10BTCが送金される、B氏からC氏とD氏に5BTCずつ送金される、C氏はE氏に…といったやりとりが行われ、10分が経過する。

 

(2)ノードを形成するマイナーが、(1)の10分間のデータから、規定の条件を満たすハッシュ値になるための「ナンス」の割り出し作業を行う。

 

(4)ナンスを割り出した(マイニングに成功した)マイナーは、他のノードに対してブロックが生成されたことを知らせる。

 

(5)他のノードたちが、データとハッシュ値を試算して、条件に合致していれば、そのブロックを承認・追加する。

 

この流れによって、(1)で行われた取引はすべてブロックチェーンに加えられ、誰もが閲覧可能な情報となります。そして10分後には新しい取引データがブロック化される…という流れが続いていきます。

ここまでを読んだ上で、前述の220文字の説明をもう一度読んでみてください。以前より理解しやすくなっているのではないでしょうか。

 

以上がブロックチェーンの仕組みと特徴です。但しこれは、ビットコインに採用されている「パブリック・ブロックチェーン」の仕組みです。ブロックチェーンには、このパブリック型以外にも「プライベート・ブロックチェーン」と「コンソーシアム・ブロックチェーン」が存在します。基本構造は同じなのですが、考え方が全く異なります。3者の違いは以下のようなものです。

 

■パブリック・ブロックチェーン

パブリック型は、これまで説明してきたように、ブロックチェーンに管理者はおらず、誰もがノードになることができ、プルーフ・オブ・ワークのような承認プロセスで管理されているブロックチェーンです。初期の基本思想に沿って作られ、「中央集権型」に対する「分散化」のコンセプトを持っています。

 

■プライベート・ブロックチェーン

企業など、特定の組織の管理下に置かれたブロックチェーンです。外部からの参入は排除し、ノードは管理組織が指定します。承認も管理組織の中で行われます。

 

■コンソーシアム・ブロックチェーン

プライベート型と似ていますが、ブロックチェーンの管理者が複数存在し、承認もその複数組織のコンセンサスをもってなされます。複数組織とは、主に関連企業やパートナー企業など、利益を共有できる相手です。

 

3つのブロックチェーンには、以上のような違いがあります。共にブロックチェーンの構造を持っていますが、プライベート型とコンソーシアム型については、従来の「中央集権型」と大きな変化はないように感じられます。むしろ、 ブロックチェーンの「取引時間の短縮」や「仲介の省略」といった長所だけをピックアップして、中央集権の「中央」をますます肥えさせる手段となってしまう可能性を孕んでいるようにも思えます。

前述の貨物列車で言うと、例に挙げたのはパブリック型の列車で、不特定多数の集団管理者によって運行が続けられ、特定の誰かに集中的な利益をもたらすために走っているのではない、というのがユニークな点であり、走り続ける意味もある訳です。

しかし、特定の組織がこの列車の運行管理を担う場合、列車は組織の意図に沿った運行しか行わず、組織のトップから積荷を入れ替えるよう指示があれば、車両担当者は一斉に積荷を入れ替えて、リストも書き換えてしまうのではないでしょうか。

 

ここで、サトシ・ナカモトの論文を再び引用します。

「必要とされているのは“信用”ではなく、暗号化された証明に基づく電子決済システムであり、これが共通意思を持った二者間の、“信用された第三者”を介さない直接取引を可能にする」

不安定でリスクを伴う「信頼」をもとに、全ての取引を行っていた過去とは決別しよう、信用を超えたテクノロジーで平等かつ不正のない取引を実現しよう、というのが彼のメッセージです。そして、ブロックチェーンの潮流の根底には、常にこの思想が流れていてほしいというのが私たちの願いでもあります。

プライベート・ブロックチェーンとコンソーシアム・ブロックチェーンには、それぞれの有用性があるのですが、巨大組織がブロックチェーンを脅威と捉え、その形を変えて取り込むことで、ブロックチェーンの持つポテンシャルを骨抜きにして組織の利益をさらに集中させてしまう、といったような本末転倒の結果にならないよう願うばかりです。