昨今、ビットコインの基幹技術とされる「ブロックチェーン」の仕組みを直接的、間接的に利用したプラットフォームやサービスが提案されており、一つのブームを巻き起こしている。それらの提案は多岐にわたり、幅広い分野でブロックチェーンというキーワードを耳にするようになった。

 ただし、一口に「ブロックチェーン」といっても、その利用形態はプラットフォームやサービスごとに大きく異なる。

 例えば、デジタル資産を取引する「Omni」や「Counterparty」は、ビットコインのブロックチェーン上に実装されたプラットフォームである。文書ファイルに改ざんのないことを証明する「Proof of Existence」や、国家に代わって個人の存在証明や婚姻・出産・死亡などの登録ができる「Bitnation」は、ビットコインのブロックチェーンを利用したサービスだ。

 「Litecoin」や「Monacoin」は、ビットコインの実装や概念から派生した新たな暗号通貨だ。こうした暗号通貨に加えて「スマートコントラクト」と呼ばれるプログラムコードの実行環境を備えたプラットフォームとして「Ethereum」や「Tendermint」などが挙げられる。さらに、Ethereum上で実現したサービスとして、資金流出騒ぎがあった暗号通貨ファンド「The DAO」がある。

 さらに、特定用途や特定参加者での運用を想定した「プライベートブロックチェーン」と称されるものは、その目的や設計思想、実現方法、対象とするアプリケーションがそれぞれ大きく異なる。「mijin」や「MultiChain」は、プライベートブロックチェーンの一例だ。

 本連載「ブロックチェーンは本当に世界を変えるのか」の目標の一つは、ブロックチェーンの可能性を考える上で必要な論点の整理である。そのためには、議論の対象となる「ブロックチェーン」という概念の整理は避けらない。

 そこで、連載第2回の本稿では、ブロックチェーンと呼ばれる技術の代表的なメカニズムから共通的な要素とエコシステムのモデルを抽出し、その意味するところを改めて探りたい。

 ブロックチェーンを分類・整理する観点の一つとして、「パブリックブロックチェーン」と「プライベートブロックチェーン」がある。

 その定義も諸説あるが、大まかに分類するとブロックチェーンの運用への参加に誰でも門戸が開いているのがパブリックブロックチェーン。一方で参加に対して承認などなんらかの制約を設けるのがプライベートブロックチェーンとなる。

 本連載では、論点を分かりやすくするために、パブリックブロークチェーンを主眼として議論を行い、プライベートブロックチェーンは一つの特殊形態として触れるに留める。

ブロックチェーンはトランザクションを証明するための技術

 ブロックチェーンの仕組みを考える場合、代表的な例としてビットコインをまず思い浮かべる読者は多いだろう。まず、ビットコインにおけるブロックチェーンを簡単におさらいしたい。

 ビットコインでは、ビットコイン使用者のデジタル署名が付された取引情報(トランザクション)の連鎖と、それらを記録しネットワーク参加者で共有する台帳(ブロックチェーン)によって、トランザクションの改ざんの検知や存在証明を行い、ビットコインの不正な利用を防止する仕組みとなっている。

 ビットコインのネットワーク上に流れるトランザクションは、ある間隔で作成される「ブロック」と呼ばれるデータ構造に集約される。また、これらの各トランザクションのデータに対してハッシュ関数を用いてハッシュ値を生成し、さらに、それらを木構造で連鎖し、ハッシュツリーを生成する(図)

図 トランザクションとブロックのハッシュ値の連鎖(イメージ)
図 トランザクションとブロックのハッシュ値の連鎖(イメージ)
[画像のクリックで拡大表示]

 そして、ブロックヘッダと呼ばれるブロックの領域に、そのハッシュツリーの頂点となるハッシュ値を格納し、ブロックヘッダに対して再度ハッシュ値を生成する。このようにして、ブロックが生成される(説明を簡略化するためproof of workに関する事項はここでは割愛する)。

 このブロックヘッダには、一つ前に作成されたブロックヘッダのハッシュ値が含まれている。これによって、ビットコインのネットワークが開始されてから現在に至るまでの一連のブロックのチェーン、すなわち「ブロックチェーン」が形作られている。過去のトランザクションのデータが不正に書き換えられたとしても、ハッシュ値の不整合として検出できる。さらに、ハッシュ値を連鎖して束ねていくため、過去のトランザクションをハッシュ値ごと置換することは困難である。これらの仕組みにより、過去のトランザクションの存在が証明される。

 このように、一意なブロックチェーンの維持により、過去のトランザクションの存在を証明でき、ブロックチェーンのシステム全体の整合性が保てるようになる。

 ビットコインでは、これに加えて「proof of work」と呼ばれる仕組みの採用により、ブロックの生成、共有、合意を実現し、ブロックチェーンの不変性を果たそうとしている。

 ビットコイン以外のブロックチェーンを利用した仕組みについても、ブロックの生成・共有・合意のメカニズムの違いがあるにせよ、ハッシュ値の連なり(ハッシュチェーン)によって過去の一連のトランザクション履歴の存在を証明する点は共通している。

「ハッシュ値の連鎖」だけなら過去にもあった

 ただし、このようなデータの改ざん検知や存在証明の仕組み自体は目新しいものではなく、従来技術にもあった。

 例えば、デジタル署名の連鎖によるデータの改ざん検知や連続性の担保については「ヒステリシス署名」と呼ばれる技術が既にある。

 また、ハッシュチェーンやハッシュツリーを用いたデータの存在証明としては、ISO/IEC 18014-3のリンキング方式タイムスタンプが該当し、米シュアティや、エストニア発のガードタイムなどがタイムスタンプサービスを提供している。これらとは特徴が異なるがRFC 4998/RFC 6283のEvidence Record Syntax(ERS)といった仕組みもある。

 さらに、最近提案されているCertificate Transparency(RFC 6962)と呼ばれるSSL/TLSサーバー証明書の発行履歴の保存と公開にも、ハッシュツリーが用いられている。

 複数のデータをまとめて存在証明するためにはハッシュツリーは扱いやすい手段であり、様々な技術で採用実績がある。ただし、安全なハッシュ関数の利用が前提となる点は注意が必要である。

 従来技術にもブロックチェーンに類似した仕組みは存在した。この点でいえば、「データのハッシュ値の連鎖を生成する」という点だけをとらえ、ハッシュチェーンやハッシュツリーを用いてデータの存在証明を行う仕組み全てを、ブロックチェーンと定義するのはいささか乱暴であるように思える。