ブロックのチェーンの組み立て
ブロックの組み立て
ビットコインは、3種類のブロックセットを持っている。
- メインチェーン 累積difficultyが最も多くなっているチェーン
- (メインから枝分かれした)セカンダリチェーン ほとんど同時に同じブロック高を持つブロックが採掘された結果
- 親がいないオーファンブロック
新しいブロックを受け取った時、ノードは、すでにあるブロックチェーンにブロックを追加する。 ノードは、ブロックの「previous block hash」フィールドを確認する。
新しいブロックがメインチェーン以外のチェーンを拡張する。その場合、ノードは、ブロックをセカンダリチェーンにくっつける。 そして、メインチェーンとセカンダリチェーンのdifficultyを比較する。もし、セカンダリチェーンのdifficultyがメインチェーンより上回ってる場合は、セカンダリチェーンをメインチェーンに切り替える。
親のブロックが見つからなかった場合は、オーファンブロックとして、プールしておく。
ノードは、どのチェーンが拡張されていくかを選ぶことで、「投票」していくことになる。