第5節 ネットワーク

このネットワークは、以下のステップで機能します。

 

  1. 取引(トランザクション)を行うと、その情報がすべてのノードに拡散。
  2. それぞれのノードは、取引情報を集めてブロックを作成
  3. それぞれノードは、ブロックに対する演算量証明を開始。
  4. 演算量証明に成功した最初のノードは、そのブロックを全ノードに拡散。
  5. それぞれのノードはそれぞれ作成されたブロックを、多重使用ではない取引なのかを確認。
  6. それぞれのノードは、作成されたブロックにハッシュ値を埋め込む。そして次のブロックを生成する。

 

それぞれのノードは、最も長いチェーンのみを正当なものと見なします。

 

そして最終ブロックからまた演算量証明を開始して、さらにチェーンを伸ばします。

 

例えば2つのノードが、内容の異なるブロックを同時に拡散している場合、受信順序の食い違うことがあるので、演算量証明のチェーンが集団で統一されていないかもしれません。

 

その場合、それぞれのノードは演算しないブロック(食い違ってる側のどちらか)も保存しておく。

 

この引き分けの状況は、次に誰かが演算を終えてチェーンを伸ばしたときに解消されます。

 

演算量証明に負けた側のチェーンを計算していたノードは、長いチェーンに乗り換えることになります(そういうシステムになっている)。

 

取引情報は、必ずしも全てのノードに行き渡る必要はありません。

 

ある一定数のノードに情報が届き、時間が経てば、ブロックに取り込まれます。

 

ブロック化された後も、多少の通信障害には耐えて拡散します。

 

ノードがブロックを受信できなかった場合は、次のブロックが届いたときにそのことを知り得るので(情報が更新される)、欠けたブロックを他のノードから引っ張ってくることができます。