今回はブロックチェーンにおける合意形成の方法について紹介します。
できる限り「Short & Simple」を心がけます。
なお、私もブロックチェーン初学者なので、内容に誤り等ありましたらご指摘いただけると幸いです。
ブロックチェーンにおける合意形成とは
- ブロックチェーンネットワークでの取引の正当性を確認する作業
- 主に改ざんや二重使用がないかを検証する
- ブロックチェーンは基本的に中央集権的な仕組みを持たないため、ネットワークの全参加者がそれぞれ承認作業をおこなう
合意形成の流れ
ブロックチェーンにおける合意形成は以下のような流れとなる。
- トランザクションの検証
- ブロックへのトランザクションの集積、マイニング
- 新規ブロック検証とブロックチェーンへの埋め込み
- ブロックチェーンの選択
いろいろな文献を見ていると、「合意形成」の説明対象が上記1〜4全体のものや、上記2のみのものが混在しているようである。
「合意形成方法=Proof of Work」などのように書いているものは、おそらく上記2について説明していると思われる。
以降ではその上記2で使われる手法について簡単に紹介する。
Proof of Work(PoW)
概要
<事前作業>
トランザクションプールに蓄積されている取引データを集積し、「直前のブロックのハッシュ値(ブロックヘッダのハッシュ値)」「新規ブロックのタイプスタンプ」「集積した取引データのハッシュ値(マークルツリーのrootハッシュ)」などでブロックヘッダを構築する。
<ここからがPoW>
構築したブロックヘッダに含まれる「Nonce(ノンス)」に適当な値を入れながらブロックヘッダのハッシュ値を計算し、そのハッシュ値の先頭に所定の数だけ「0」が並ぶようなノンス(値)を発見する作業。
特徴
- 膨大な計算を行うため、「時間」「マシンパワー」「電力」が必要
- 悪意ある参加者が計算処理能力の約51%以上を掌握すると改ざんが可能となる
Proof of Stake(PoS)
概要
通貨所有者が利付担保のように通貨の「所有を主張(stake)」することができる。ネットワーク参加者は保有している通貨の一部を使わずに預けることで、新しい通貨またはトランザクション手数料という形で投資のリターンを得ることができる。
比較的新しめのパブリックブロックチェーンでは、PoW系よりもPoS系を採用することが多い
特徴
- PoWに比べてエネルギー消費が少ない
- PoWに比べてブロック生成時間が短い