これは、巷ではやりのブロックチェーンの仕組みを勉強するために作った簡単なモデルです。
ブロックチェーンは、データを安全に保管する仕組みです。 このソースコードではそのもっとも核となる部分を再現しています。
ブロックチェーンを持ったシステムにデータを与えると、それを ブロック
の中に入れます。
ブロック
は、インデックス、タイムスタンプ、データ、 前回のハッシュ値
, 固有のハッシュ値を持ちます。
固有のハッシュ値は、それ以外のすべての要素をハッシュ関数の中に入れて取り出せた値です。
構造から、ブロックはハッシュ値でチェーンのようにつながっているのでブロックチェーンと呼ばれているわけです。
大事なのは、ブロックが前回のハッシュ値を持っているということです。これにより、前回のブロックの内容が改ざんされた場合にそこから最新のブロックまでの間のすべてのブロックのハッシュ値が書き換わ
ります。
さらに、こんな工夫をしてみてはどうでしょう。 ブロックの中に変数nという要素を追加します。そして、ハッシュ値の下2桁は00でなければならないという約束を作ります。
変数nはその約束に合わせたハッシュ値を生み出すため、あらゆる値を総当たりで試します。
そうして 正しい
ハッシュ値を作り出してから次のブロックに移ります。
そうした場合、例えばハッカーがデータを不正に改ざんしたとき、その時点から最新のブロックまですべてのハッシュ値が 不正な
値に変更されます。これによりハッカーからの攻撃を容易に感知することができるわけです。
ハッカーがすべてのブロックのハッシュ値を 正規の
値にするには莫大な時間を要するでしょう、なぜならそうしようとする場合、データを改ざんしたブロックから最新のブロックまで、すべてのブロックの変数nを計算しなおさなくてはいけないからです。
他にもビットコインなどで使われているブロックチェーンは分断化という仕組みを使うことでハッカーのマシンパワーによって変数nが発見されてデータを破壊されてしまうことを防いでいます。