ブロックチェーンの基礎(3回目) ブロックチェーンの対改ざん性
こんにちは。
このブログでは、ブロックチェーン関連を中心としたテック系の情報の紹介をしております。
今回は「ブロックチェーンの基礎」3回目と言うことで、ブロックチェーンの「対改ざん性」についてお話しようと思います。
ブロックチェーンはデータの改ざんが出来ないシステム?
ブロックチェーンはよく、「改ざんができないシステム」と言われます。
改ざんができない、とは一度記録したデータを、後から悪意を持って修正することができない、ということです。
実際には改ざんができない、と言うことではなく、「非常に改ざんしにくい」構造をもっているのがブロックチェーンです。
今回はその改ざんがし難いブロクチェーンの構造について簡単に説明していこうと思います。
ブロックチェーンが改ざんできない理由
ブロックチェーンの基礎の1回目でブロックチェーンのデータ構造についてお話ししました。(こちら)
以下の様なデータ構造ですね。
全てのブロックには直前のブロックをハッシュ値にしたデータが格納されています。
ハッシュ値とは、ハッシュ関数により生成される固定長の数字です。
ハッシュ関数にデータを渡すと固定の長さ(桁数)の数字に変換されて返ってきます。それがハッシュ値です。
ハッシュ関数に渡すデータが少しでも違うものであれば、まったく異なるハッシュ値が得られます。
逆に、渡すデータが同じであれば、得られるハッシュ値も常に同じになります。
ブロックチェーンの改ざんには膨大な量の計算が必要
もし、ブロックのデータを改ざん(変更)した場合、そのブロックのハッシュ値はデータの変更により、それまでと違ったハッシュ値になります。
改ざんを行ったブロックのハッシュ値は次のブロックに格納されるのですが、ハッシュ値が変わったことにより、ブロックの不整合が発生します。
この不整合を解消するためには、もう一度NONCE値の算出を行う必要があるのですが、NONCE値の算出には膨大な量の計算を行う必要があります。
この再計算を改ざんを行ったブロック以降の全てのブロック分の再計算が必要になり、その間にもどんどん新しいブロックが生成されて行きます。
仮に最新のブロックまで再計算して不整合が解消できたとしても、他のブロックチェーンがもつ取引記録と一致しないため、不正なブロックチェーンであると判断されます。
正当な取引であると認められるためには、同じ改ざんを施したブロックチェーンが全体の過半数を超える必要があります。
つまり、ブロックチェーンのデータを改ざんするためには、改ざんしたブロックから最新のブロックまでのNONCE値の再計算を、同時に過半数以上のブロックチェーンで行うという、途方もない量の計算を高速に行う必要があるのです。
改ざんしても意味がない?
データの改ざんにマシンパワーを使うより、マイナー(ブロックのNONCE値を計算する者)として、ブロックの生成に貢献した方が、正当な報酬を受け取ることができます。
それに、もしブロックチェーンのデータが簡単に改ざんできてしまうのであれば、誰もブロックチェーンを信用しませんし、利用されないものになってしまいます。
せっかく苦労してデータを改ざんしても、その行為によってそのブロックチェーンの信用が失われてしまっては意味がありません。
ブロックチェーンはこの様な合理的な理由もあって、特定な管理者を置かずとも不正や改ざんが行われることもなく、正しくブロックが生成され、ブロックチェーンが共有されるようになっています。
今回はブロックチェーンの「対改ざん性」についてお話ししました。
ブロックチェーンとしてはすごく基本的な部分ですが、改めて人に説明しようとすると難しいですね。
次回はブロックチェーンの種類について、お話ししようと思います。
おわり。
この記事が気に入ったらサポートをしてみませんか?