
ブロックチェーンとは¶
ブロックチェーン(blockchain) は、取引記録を「ブロック」にまとめ、各ブロックが直前のブロックのハッシュ値を持つことで鎖状に連結したデータ構造、およびそれを多数のノードで共有・合意する分散型台帳(Distributed Ledger)のこと。
データ構造だけを見れば「変わった形式のデータベース」にすぎない。ブロックチェーンが力を発揮するのは、それをBitcoinのような中央管理者なしでの合意形成の仕組みと組み合わせたときである。歴史的にも、ブロックチェーンという言葉はBitcoinの登場後に、その仕組みを説明するために広まった。
解決したい問題:二重支払い¶
デジタルデータは容易にコピーできるため、電子マネーを中央管理者なしで実現しようとすると、同じお金を2回使う 二重支払い(double spending) をどう防ぐかが問題になる。
中央管理者がいれば、管理者が台帳を1つだけ持ち、残高をチェックすればよい。管理者がいない場合、
全員が台帳のコピーを持つ
しかし誰の台帳が正しいのかを決める権威がいない
悪意のある参加者が自分に都合のよい台帳(例:自分の残高を増やした台帳)を主張するかもしれない
という状況で、全員が同じ取引履歴に合意する必要がある。
Bitcoinの基本設計¶
Bitcoinはこの問題を次の組み合わせで解いた。
台帳をブロックチェーン形式で管理する:取引(トランザクション)を約10分ごとにブロックにまとめ、前ブロックのハッシュ値で連結する。過去のブロックを改ざんすると以降のハッシュがすべて不整合になる(→データ構造)
ブロック作成に計算コストを課す(Proof of Work):誰でもブロックを作れるが、作るには大量の計算が必要(→コンセンサス)
最長のチェーンを正しい記録とする(Nakamoto Consensus):チェーンが分岐したら、最も多くの計算量が投じられたチェーンを正とする
正しいブロックの作成者に報酬を与える:ブロック作成者(マイナー)には新規発行されたビットコインと手数料が与えられる
4つ目の インセンティブ設計 が要で、「どこかの誰かが勝手に正しいブロックを作り続けてくれる」状態を、誰も管理せずに実現している。
ブロックチェーンの種類¶
ブロックチェーンは、誰がネットワークに参加・ブロック生成できるかによって分類される。
| 種類 | 参加 | 管理主体 | 合意形成の例 | 例 |
|---|---|---|---|---|
| パブリック型(パーミッションレス) | 誰でも可 | なし | PoW, PoS | Bitcoin, Ethereum |
| コンソーシアム型 | 許可された複数組織 | 複数組織 | PBFT系, Raft | Hyperledger Fabric, Corda |
| プライベート型 | 許可された単一組織内 | 単一組織 | Raft等 | 社内システム |
コンソーシアム型・プライベート型は、合意形成は少数の参加者に限定し、取引履歴の保管と検証だけを分散させたものと見ることができる。トラストレス性は弱まるが、処理性能やプライバシーを確保しやすい。