ブロックチェーン — 1つ書き換えると、後ろが全部壊れる
ブロックチェーンは、難しい数式の塊に見えて、芯にあるアイデアはとてもシンプルです。取引データの塊(ブロック)を、ハッシュという「指紋」で一列に鎖でつなぐ。それだけです。各ブロックは自分のハッシュと1つ前のブロックのハッシュを抱えていて、後ろのブロックが前のブロックを指差している状態になっています。
この鎖が効くのは、ハッシュが「1文字でも変えると別物になる」性質を持つからです。途中のブロックのデータをこっそり書き換えると、そのブロックのハッシュが変わり、次のブロックが記録していた「前のハッシュ」と食い違ってしまう。鎖がそこでプツンと切れ、改ざんが一目でバレます。下の図1で、どれかのブロックのデータを書き換えてみてください。
なぜ「後ろが全部壊れる」と安全なのか
1つのブロックを書き換えただけでは、辻褄が合うのはそのブロックだけ。次のブロックが記録した「前のハッシュ」を直し、するとそのブロックのハッシュも変わり、さらに次も…と、改ざんを成立させるには、それ以降のブロックを全部計算し直さなければなりません。図1の「後ろを全部つなぎ直す」ボタンが、まさにこの作業です。
本物のブロックチェーンでは、この「計算し直し」がわざと重い作業(プルーフ・オブ・ワークなど)に設計されていて、しかも世界中の参加者が同じ鎖のコピーを持っています。1人がこっそり全部つなぎ直すより全員の速度を上回り続ける方がはるかに困難なので、過去の改ざんが事実上できなくなる —— これが「改ざん耐性」の正体です。鎖そのものは、ここで見たハッシュのつながりがすべてです。
- ブロック
- 取引データなどをまとめた塊。自分のハッシュと「前のハッシュ」を持つ。
- ハッシュ
- データから計算する固定長の指紋。1文字違えば全く別の値になる(SHA-256)。
- ハッシュチェーン
- 各ブロックが前のハッシュを抱え、鎖状に連結された構造。改ざんが連鎖的に露見する。
- 改ざん耐性
- 過去を書き換えるには以降を全て再計算する必要があり、現実的に困難であること。
まとめ
ブロックチェーンの「改ざんできなさ」は、魔法ではなくハッシュの鎖から生まれます。各ブロックが前のブロックの指紋を抱えるから、1か所いじるとその先の指紋がドミノ倒しで合わなくなる。図1で途中のブロックを書き換えて鎖が真っ赤になる様子と、それを「つなぎ直す」のがいかに後始末の多い作業かを、手で確かめてみてください。