かにたまです。
ブロックチェーンは、ブロックがチェーン状に繋がっていることからブロックチェーンと呼ばれています。
本日もまた1歩ブロックチェーンに踏み込んで、ブロックが繋がり「ブロックチェーン」と呼ばれている所以について、ざっくりと記事にしたいと思います。
良かったらご覧下さい。
ブロックチェーンとはブロックのつながり
四角い箱・・・ブロック
黒丸●・・・取引情報
ビットコインのブロックチェーンとは、上図のようにブロックと呼ばれている箱の中に記録された取引情報を入れ、それを数珠繋ぎにしたイメージです。
では、どうして繋がっているイメージがあるのでしょうか?
元々、ブロックは暗号アルゴリズムというものでつくられています。
かにたま「ブロックが暗号アルゴリズム??。難しくて頭がアイスクリームのように溶けていきそうですよおおおおおおおおおおおおおおおっ!」
ジハンさん「仮想通貨の箱、つまり、新しいブロックは、前のハッシュ値と新しいブロックの乱数からできています。(※)この数値を基に次のハッシュ値と乱数が導き出されていきます。」
※ハッシュ値とは?
2445C8239827CFB66B85FB397890F1FC2C03EEC1ABF199A9574F19D96527D0F1
↑ランダムに0〜Fの文字を並べた文字になります。
上の文章は「私は1BTCを持っています」という文をハッシュ値で書いたものです。
もし「私は2BTCを持っています」という文章をハッシュ値にすると・・
0F9184B3EFFDCBBF8B9747EF0F262A70B91194481DF5DEA7A83B4EB3ACD62345
↑このようになります。
日本語の文章では「1BTC」を「2BTC」に変えただけですが、導き出されたハッシュ値を比較すると全然違うのが分かると思います。
下のリンク先で日本語の文章をハッシュ値にできます。興味があればお試しください。
SHA256ハッシュ – オンラインSHA256ハッシュジェネレータ
なお、このハッシュ値から入力値(日本語)を導き出すことは不可能です。この逆算できない一方通行的な特徴を利用して、ハッシュ値は使われています。
※乱数とは?
予測不能で区別がつきにくい文字列です。この乱数により同じデータを作り出せないようになっているようです。
かにたま「あ、ジハンさん、こんにちは!へえー、ビットコインのブロックって前のハッシュ値と新しいブロックの乱数からできているんですね。」
ジハンさん「はい。全てのブロックは前のデータに基づいているので、この仕組みがブロックチェーンデータを唯一のものにしています。取引記録のわずかな変化もハッシュ値の結果を完全に変えてしまいますので、ビットコインの計算力競争では不正ができないようになっています。」
かにたま「なるほど~。ランダムで予測不能の数値のためにビットコインのマイニングは公平性が保たれているわけですね。」
ジハンさん「更に前のデータを基にしている理由の1つとして、1つ前のブロックができなければ、そのブロックデータの計算を始められないようになっています。」
かにたま「へー。現在のブロックが作成されないと次のブロックを先にマイニングできないようになってるわけですか~。」
ジハンさん「そうですね。ブロックが作成されないと次のブロックは生まれない。つまり、前の答えがでないと次の問題は出ません。よって、全員同じ状態からのスタートになり、マイニングの公平性を保てます。
本日のまとめ
ブロックチェーンの新しいブロックは、前のブロックのハッシュ値+新しいブロックの乱数により、次のブロックが生み出されています。
全てのブロックは、前のデータに基づいており、この仕組みがブロックチェーンデータを唯一のものにしています。
取引記録のわずかな変化もハッシュ値の結果を完全に変えてしまいますので、ビットコインの計算力競争では不正ができないようになっています。
かにたま「全てのブロックは前のブロックに影響していることからブロックは、まるでチェーンのように繋がっていて”ブロックチェーン”と呼ばれているんですねえ~。」
仮に、悪意のある人が、ある取引記録を改ざんしようとしたら、過去のデータも全て改ざんする必要があります。
もし、それを行なうとしても、前のデータを改ざんしている間に次のブロックが生まれ、また全てのデータを改ざんをしなおす必要があり、やり直しになります。
これは非常に困難であり、ビットコインのブロックチェーンのデータは過去に1度も改ざんされていません。
ジハンさん「改ざんというと、普通は改ざんしたいその部分だけを修正すれば良いのですが、ブロックチェーンの場合は、前のデータを全て改ざんする必要があるということですね。」
コメント