ブロックチェーンとは
分散台帳の仕組みと不変性
ブロックチェーンとは、データを「ブロック」という単位にまとめ、チェーン(鎖)のように繋いで記録するデータベースの一種です。Web3 を支える根幹の技術ですが、ブロックチェーン=分散型とは限りません。
3種類のブロックチェーン
ブロックチェーンは誰が運営するかによって性質が大きく異なります。
| 種類 | 特徴 |
|---|---|
| パブリック | 誰でも参加・閲覧できる。Bitcoin・Ethereum が代表例。真の意味で分散型 |
| プライベート | 特定の企業・組織が管理する。参加には許可が必要。実質的に中央集権型 |
| コンソーシアム | 複数の組織が共同で運営する。半中央集権型。業界団体や金融機関で使われる |
Web3 の文脈で「ブロックチェーン」と言う場合、基本的にパブリックチェーンを指します。以降の説明もパブリックチェーンを前提にしています。
パブリックチェーンの特性
パブリックチェーンでは、世界中の多数のコンピュータ(ノード)が同じデータのコピーを持ち、互いに検証し合います。管理者が存在しないため、一箇所を書き換えようとしても他のノードとの整合性が取れなくなり、改ざんは事実上不可能です。
一方、プライベートチェーンは運営者がノードを管理するため、技術的には書き換えが可能です。「ブロックチェーンを使っている=改ざん不可能」とは言えない点に注意が必要です。
ブロックの構造
各ブロックにはおおよそ以下の情報が含まれます。
| 項目 | 内容 |
|---|---|
| ハッシュ | このブロックの指紋(内容から計算された固定長の値) |
| 前のブロックのハッシュ | チェーンを繋ぐ参照。これで改ざんを検出できる |
| タイムスタンプ | ブロックが作られた日時 |
| トランザクション一覧 | このブロックに含まれる取引・操作の記録 |
| ノンス | PoW のマイニングで使われる調整用の数値(PoS では使われない) |
用語に注意: ここでの「ノンス(nonce)」は PoW のマイニング用の数値です。後の「トランザクション」のレッスンで出てくる「ナンス」(アカウントごとの送信連番)とは別物なので、混同しないようにしましょう。
なぜ改ざんが難しいのか
各ブロックは「前のブロックのハッシュ」を含んでいます。ハッシュとはデータの指紋のようなもので、内容が1文字でも変わると全く異なる値になります。
[ Block 100 | hash: a3f9... ]
↓ prevHash
[ Block 101 | hash: 7c2e... | prevHash: a3f9... ]
↓ prevHash
[ Block 102 | hash: f1b8... | prevHash: 7c2e... ]
Block 101 を書き換えるとそのハッシュが変わります。すると Block 102 の「prevHash」と一致しなくなり、以降すべてのブロックを作り直す必要が生じます。しかも世界中のノードが同時に持つコピーより「速く」作り直さなければ承認されません。これがパブリックチェーンで改ざんが実質的に不可能な理由です。
コンセンサス(合意形成)
パブリックチェーンでは、管理者がいない代わりに、ノード群が「どのブロックが正しいか」を自律的に決める仕組みが必要です。これをコンセンサスアルゴリズムと呼びます。代表的な2つを紹介します。
- Proof of Work(PoW) — 膨大な計算(マイニング)をした者がブロックを追加できる。Bitcoin が採用。電力消費が大きい。
- Proof of Stake(PoS) — 保有するコインを担保(ステーク)した者が検証権を得る。Ethereum が 2022 年に移行。PoW より大幅に省エネ。