villagerHの日記

勉強したことや苦労した事などを書き綴ります

ブロックチェーン

複数のトランザクションをまとめたものをブロックと呼び、
そのブロックとブロックを繋ぎ合わせることでチェーン(鎖)となる。

ブロックの情報には前のブロックのハッシュ値を含んだ上でハッシュ化される。

ブロックに含まれる親(前のブロック)情報は必ず1つ。

ただし自分を参照する子ブロック(後のブロック)はマイニングのタイミングによっては一時的に複数個できる場合がある。
その場合も最終的にはフォークが解消される。

ブロックのハッシュ値には親のハッシュ値が含まれているため
1つずつ前のブロックをたどっていくことで最終的にすべてのブロックを参照することが可能。

仮にどこかのブロックが書き換えにあった場合、そのブロックを参照している子ブロックの参照している親ブロックに矛盾が発生してしまうため子ブロックのハッシュ値も変更させなくてはいけなくなる。
子ブロックのハッシュ値が書き換えると孫ブロックが、孫ブロックを書き換えると曾孫ブロックが…といった形で特定のブロック以降のブロックすべてを書き換える必要が出てきてしまう。
全てのブロックを書き換えるのは膨大な時間がかかり非現実的なためブロックチェーンは安全性が保たれている。