こんにちは、yoshihiroです。今回は短期集中ブロックチェーン講座、Part 3です!
最初から読む >> Part 0:導入
前回の記事 >> Part 2:マイニングって具体的に何をしているの?
ブロックチェーンの特徴としてよく取り上げられるのが、「データの改ざんが不可能」ということですよね。
でも、なんでブロックチェーン上のデータは改ざんできないのか、ちゃんと説明できますか?この記事では、データの改ざんができない仕組みを具体的に説明していきたいと思います!
※本講座では、最も基本的なビットコインで使われるブロックチェーンを想定して解説しています
Part 1で、ブロックチェーン上のブロックはハッシュとナンスでお互いに繋がっていると説明しましたね。これが、ブロックチェーン上のデータを改ざんできない大きな理由になっています。
とても大切なので、簡単にもう一度解説しますね。
ブロックに記載されているハッシュとは、前のブロックの情報を要約して暗号化したものです。このハッシュはビットコインの場合、先頭から18桁目まで0が続くものでなくてはなりません。
そしてハッシュは、元のデータが少しでも変化したら大きく変化するという性質を持っています。
ということは、あるブロックに記載しているデータを少しでも変化させると、次のブロックに記載されているハッシュの値が大きく変化するのです。
では、ブロックチェーン上のデータを改ざんしようとしたら何が起きるのか、もう少し踏み込んで見てみましょう。
ブロックチェーンを改ざんするとしたら、取引データのところを改ざんしたいですよね。そこで、あるブロックに記載されている取引データを自分の都合の良いように変更したとします。
しかしただ取引データを変更しただけでは、次のブロックに記載されるハッシュの値が、「先頭から18桁目まで0が続かなければならない」という条件を満たさない無効なハッシュになってしまいます。これではすぐに改ざんがばれてしまいます。
ということは、ほかのデータもいじって上手く条件に合うハッシュが生まれるようにしないといけません。
そうです、ナンスをいじって調整するしかないのです。
でも、よく考えてみてください。このナンスって、世界中の人がマイニングをしてやっと見つかったものですよね。それを捨てて、自分が改ざんしたデータに合うナンスをまた一から探さないといけないのです。
世界中のコンピュータリソースを使って10分かけて探しているナンスを、自分1人の力で探し出さなければいけないのです。この時点で改ざんする気が起きませんよね…。
なんとかして、一つのブロックを改ざんできたとしましょう。条件を満たすハッシュを生成するためのナンスも見つけられました。改ざんは成功したのでしょうか?
していません。
改ざんしたデータに合うナンスを見つけて条件を満たすハッシュを生成できたとしても、そのハッシュは改ざんされる前に記載されていたハッシュとは別のものになっています。全く同じハッシュを生成するのは現在の技術では不可能です。
ということは、次のブロックはOKでも、次の次のブロックに記載されるハッシュがおかしくなっていますよね。つまり次の次のブロックに記載されるハッシュが条件を満たすために次のブロックのナンスも探し直さなければならないのです。
もしそれが見つけられたとしても、今度は次の次の次のブロックのハッシュが…となり、結局すべてのブロックでナンスを再度探さなければならないのです。
もしあなたが世界中でマイニングに使われているコンピュータリソースの10%を持っていたとします。
世界中の人が探して10分かかるわけですから、あなたが一人でナンスを探したら10倍の100分かかるわけです。その間に、新しいブロックは10個できています。追い付けないですね。
どんなに頑張っても、すべてのブロックを改ざんすることはできませんよね。この仕組みにより、ブロックチェーン上のデータは改ざん不可能なのです。
ということで、Part 3はここまでです。次回Part 4では、少し話題を変えてビザンチン将軍問題について解説します。初めて聞いた人も何となく知っている人も、ぜひ読んでくださいね。
全く同じハッシュを生成するのはなんで不可能なんだ!それを見つければいいじゃん!と思ったあなた。全く同じハッシュが生成される確率は、人が壁に向かって走っていって、無傷で壁をすり抜ける確率よりはるかに低いらしいですよ。俺は壁なんて簡単にすり抜けられるぜ!って人だけ挑戦してくださいね。
じゃあ量子コンピュータ作ってマイニングされるより早くすべてのブロックを改ざんすればいいじゃん!って思ったあなた。もしあなただけ量子コンピュータ使える状況なら、ほかにもっとお金稼げる方法があると思うのでやめてくださいね。
>> Part 4:ビザンチン将軍問題ってなに?ブロックチェーンとの関連は?
↓この記事を書いた人↓