119 / 736PROP

Block Propagation

新しいブロックがネットワークに広がるまで

マイナーがブロックを発見しても、ほかの参加者にはまだその知らせが届いていません。情報が広がる道筋と、既知のデータを再送しない工夫、そして速い配送だけでは検証にならない理由を説明します。

Block Propagation は、新しいブロックが Bitcoin ネットワークのコンピューター間に広がることです。届くのはデータであり、ブロックが有効か、自分が採用する履歴に入れられるかは、受け取ったノードが確かめます。

アンナがマイニングを行い、取引を含む新しいブロックを発見したとしましょう。ブロックは、共有する履歴に追加する取引のまとまりです。Bitcoin には、それを全員に一斉配信する中央局はありません。アンナのノードは、直接つながっているコンピューターである隣接ノードに知らせます。そこから情報が広がり、人によって届く時刻が変わります。この道のりが Block Propagation です。その速さは、ほかのマイナーが古い履歴を前提に作業を続ける時間にも影響します。 [1] [6]

ペーターは自宅で Full Node を動かしています。Bitcoin のブロックと取引がルールに従っているかを調べるソフトウェアです。新しいブロックがあるという通知だけでは足りず、検証には内容全体が必要です。全部をダウンロードする方法も、届いた情報と手元の取引から組み立てる方法もあります。本のページ一覧を受け取り、自分の蔵書からそろえるようなものです。届く量は減っても、完成する本は同じでなければなりません。 [1] [7]

ブロックには Block Header と呼ぶ短いヘッダーがあります。前のブロックへの参照などが入り、マイニングに必要な計算上の仕事の証拠である Proof of Work を確認できます。マイナーは計算を繰り返してこの証拠を探し、ほかの参加者は見つかった結果を素早く確認できます。これは役立つ最初の検査ですが、各支払いの正当性まで証明するものではありません。ヘッダーだけでは、署名が有効か、本当に利用可能な未使用の資金を使っているかは分かりません。デジタル署名は、秘密の数値である秘密鍵を使って支払いの許可を証明し、鍵そのものは公開しません。UTXO は未使用の取引出力で、金額と、それを使うための条件を記録したものです。 [6] [8]

ペーターはブロックが採掘される前に、多くの取引を受信しています。それらは Mempool という、手元の未承認取引の集合に置かれています。BIP 152 の Compact Blocks はこれを利用し、全取引を再送する代わりに主に短い識別子と一部の完全な取引を送ります。ペーターは既知の部品を正しい順序に並べます。小さくなるのは通信メッセージであって、検証するブロックではありません。有効性のルールも同じです。 [2] [7]

世界全体で一つの Mempool を共有しているわけではありません。ノードごとに知っている取引が少し異なるため、ペーターにも不足が生じます。そのときは足りないデータを要求するか、ブロック全体のダウンロードに切り替えます。要求と応答の往復には時間がかかりますが、内容を推測したり検証を省いたりしてよい理由にはなりません。実際の節約量は、受信側がどれだけ取引を知っているかにも左右されます。 [2] [7]

BIP 152 の高速なモードでは、すべての取引検証が終わる前に転送できます。ただし無条件ではありません。送信側は、検証済みチェーンにつながること、Proof of Work、ヘッダーが送信する取引を暗号学的に正しく表していることなどを事前に確認します。その後、転送と残りの検証を並行して進められます。それでも Full Node が自分の有効な履歴にブロックを採用するには、完全な検証が必要です。 [2] [4] [7]

アンナのブロックが全員に届く前に、別のマイナーが同じ先行ブロックにつながるブロックを発見するかもしれません。一時的に、ネットワークの一部は一方の有効な枝を、ほかの部分はもう一方を見ています。有効な枝の選択は、その後の累積作業量によって決まり、コンピューターの投票では決まりません。採用されたチェーンから外れた有効なブロックは Stale Block と呼びます。伝播の高速化は競合の時間幅を狭めますが、なくすことはできません。 [6] [8]

アンナのブロックの伝播が遅いと、ほかのマイナーが競合するブロックに続けて採掘し、アンナのブロックが採用チェーンから外れる可能性が高まります。その履歴では、このブロックの報酬を得られません。良い接続は単なる便利さ以上の意味を持ち、その優位性は接続条件の良い事業者への採掘の集中を促す場合があります。ただし、遅い回線一つで中央集権化を測れるわけでも、攻撃を証明できるわけでもありません。 [7] [8]

FIBRE は、ブロックを高速に転送する専門システムの一例です。通信メッセージを小分けにしたデータパケットの損失による遅れなど、ネットワーク上の遅延を減らそうとします。より早く届けられても、運営者がペーターに代わって有効性を決められるわけではありません。ペーターの Full Node は、どの経路からデータが来ても同じルールを確認します。 [3] [9]

ネットワークではデータ量、プライバシー、接続の障害への強さも考える必要があります。どれほど速くても、一つの経路だけに頼るのは弱点です。改善策ごとの役割も異なります。Erlay の構成要素である BIP 330 は、隣接ノード間で取引の告知集合の差分を見つけるのに役立ちます。BIP 152 のブロック転送を置き換えるものではありません。共通の目的は、各ノードによる独立した確認を保ちながら通信を効率化することです。 [1] [5]

理解を深めるには、この項目とあわせて次もお読みください Compact Blocks, Selfish Mining, Eclipse Attack, Initial Block Download, Bitcoin, Full Node. 次の項目からも参照されています Sybil Attack, Eclipse Attack, Selfish Mining, Compact Blocks.

DOC · 001Bitcoin Developer Guide — P2P Network文書 DOC · 002BIP 152 — Compact Block Relay仕様 DOC · 003Bitcoin FIBRE文書 DOC · 004Bitcoin Core v29.0 — net processing文書 DOC · 005BIP 330 — Erlay仕様 DOC · 006Satoshi Nakamoto — Bitcoin whitepaper一次資料 DOC · 007Bitcoin Core — Compact Blocks FAQ文書 DOC · 008Bitcoin Developer Guide — Block Chain文書 DOC · 009FIBRE — project overview一次資料
改訂日: 一次資料を優先 · 投資助言ではありません