ブロックのチェーンの組み立て

ブロックの組み立て

ビットコインは、3種類のブロックセットを持っている。

  • インチェーン 累積difficultyが最も多くなっているチェーン
  • (メインから枝分かれした)セカンダリチェーン ほとんど同時に同じブロック高を持つブロックが採掘された結果
  • 親がいないオーファンブロック

新しいブロックを受け取った時、ノードは、すでにあるブロックチェーンにブロックを追加する。 ノードは、ブロックの「previous block hash」フィールドを確認する。

新しいブロックがメインチェーン以外のチェーンを拡張する。その場合、ノードは、ブロックをセカンダリチェーンにくっつける。 そして、メインチェーンとセカンダリチェーンのdifficultyを比較する。もし、セカンダリチェーンのdifficultyがメインチェーンより上回ってる場合は、セカンダリチェーンをメインチェーンに切り替える。

親のブロックが見つからなかった場合は、オーファンブロックとして、プールしておく。

ノードは、どのチェーンが拡張されていくかを選ぶことで、「投票」していくことになる。