このネットワークは、以下のステップで機能します。
- 取引(トランザクション)を行うと、その情報がすべてのノードに拡散。
- それぞれのノードは、取引情報を集めてブロックを作成
- それぞれノードは、ブロックに対する演算量証明を開始。
- 演算量証明に成功した最初のノードは、そのブロックを全ノードに拡散。
- それぞれのノードはそれぞれ作成されたブロックを、多重使用ではない取引なのかを確認。
- それぞれのノードは、作成されたブロックにハッシュ値を埋め込む。そして次のブロックを生成する。
それぞれのノードは、最も長いチェーンのみを正当なものと見なします。
そして最終ブロックからまた演算量証明を開始して、さらにチェーンを伸ばします。
例えば2つのノードが、内容の異なるブロックを同時に拡散している場合、受信順序の食い違うことがあるので、演算量証明のチェーンが集団で統一されていないかもしれません。
その場合、それぞれのノードは演算しないブロック(食い違ってる側のどちらか)も保存しておく。
この引き分けの状況は、次に誰かが演算を終えてチェーンを伸ばしたときに解消されます。
演算量証明に負けた側のチェーンを計算していたノードは、長いチェーンに乗り換えることになります(そういうシステムになっている)。
取引情報は、必ずしも全てのノードに行き渡る必要はありません。
ある一定数のノードに情報が届き、時間が経てば、ブロックに取り込まれます。
ブロック化された後も、多少の通信障害には耐えて拡散します。
ノードがブロックを受信できなかった場合は、次のブロックが届いたときにそのことを知り得るので(情報が更新される)、欠けたブロックを他のノードから引っ張ってくることができます。