ビットコインの合意と確認
ビットコインのノードが競合する先端を観測する理由、累積仕事量による有効チェーンの選択、再編成後の取引状態を説明します。
このガイドの内容有効な二つのブロックが一時的な分岐を作る
短い要約
有効なブロックがほぼ同時に届くと、ビットコインの各ノードが一時的に異なるチェーン先端を確認することがあります。ノードは候補ブロックを検証し、自分が把握している有効チェーンのうち累積proof of workが最も大きいものを選びます。別の有効な枝が現在のチェーンを上回ると、再編成によって一部のブロックが切り離され、取引の確認状態が変わる場合があります。
有効な二つのブロックが一時的な分岐を作る
マイナーは把握しているチェーン先端の上で採掘します。二つの有効なブロックが同じ親を指し、伝播時間に差があると、ノードごとに異なる枝を一時的に追うことがあります。Bitcoin Developer Guideのブロックチェーン解説は同時に見つかったブロックとstaleな枝を説明しています。
ビットコインはブロック数でなく累積仕事量を比較する
有効なブロックはそれぞれ目標値に応じた仕事量を加えます。枝の累積値は全ブロックの仕事量の合計なので、難易度目標が異なれば高さだけの比較は不十分です。Bitcoin Coreのgetblockchaininfoは現在のチェーン仕事量をchainworkとして示します。
「最も仕事量が多い」とはノードが知る有効なチェーン
proof of workはコンセンサス規則違反のブロックを有効にしません。フルノードは規則に合うブロックだけを検証・比較し、結果はそのノードが得た情報に限られます。ピアがブロックを告知・転送する仕組みはBitcoinのP2Pガイドを参照してください。
再編成は一方を切り離し、もう一方を接続する
より強い有効な枝を知ると、ノードは共通祖先を見つけ、その後のアクティブブロックを切り離し、選んだ枝を検証して接続します。新しい先端の高さは同じ場合も異なる場合もあります。選択は高さではなく仕事量で決まり、サービスごとに表示の更新時点が異なることがあります。
共通の祖先から二つの有効な枝が分かれ、一方に支払いが含まれた後、もう一方の有効な枝に累積作業量の多いブロックが追加された状況を考えます。より強い枝を知って検証したノードは、古いブロックを切り離して競合する枝を接続します。そのノードの有効なチェーンでは支払いのブロック確認が失われ、表示上の高さが同じでもブロックハッシュは異なります。支払いの次の状態は、選択された枝で入力がすでに使われているかに左右されます。メンプールに戻る保証はなく、同期が遅れたサービスは前の表示を残す場合があります。

外れたブロック内の取引は再確認が必要
含まれていたブロックが切り離されると、そのノードのアクティブチェーン上では取引の確認が失われます。取引が有効で、選ばれた枝の取引と競合せず、ローカルポリシーを満たせばmempoolに戻る場合がありますが、再採掘の保証はありません。getchaintipsはそのノードが把握する枝先端を示します。
確認数は仕事の深さであり最終性ではない
取引を含むブロックは通常1回の確認として数え、その後のブロックごとに増えます。後続の仕事量が増えるほど置き換えは一般に難しくなりますが、再編成を不可能にする固定数はありません。決済処理ガイドは、加盟店が支払額とリスクに応じて確認基準を決める理由を説明します。
通常のstaleブロックと深い再編成は異なる
二人のマイナーがほぼ同時にブロックを見つけると、次のブロックを先に得た枝が伝播競争に勝ち、他方はstaleになることがあります。深い再編成はネットワーク障害、遅延、履歴の置換を試みる攻撃などに関係する場合があります。仕事量が多くても無効ブロックを受け入れさせることはできませんが、孤立したノードは不完全な情報しか得られないことがあります。
Coreの状態は各ノードのローカルな時点情報
Bitcoin Core 31.0のgetblockchaininfoはネットワーク名、検証済みブロック高、ヘッダー数、最良ブロックhash、chainwork、同期状況を示します。getchaintipsではactive、valid-fork、valid-headers、headers-only、invalidなどを確認できます。RPCの資料は実行中の版に合わせて読んでください。
再編成の通知後は包含状態を確認する
再編成の通知を受けたら取引IDと以前の包含ブロックhashを控え、信頼するノードでそのブロックがまだactiveか、取引が再包含されたか、未確認か、別の支出と競合するかを調べます。explorerは運営者の表示にすぎません。入金の一般的な確認は入金確認ガイド、ノード検証とpruningは[Bitcoinフルノードガイド](/learn/ja/bitcoin-full-node-pruning-archive-storage-validation-wallet-trust-explained)、手数料とmempoolは手数料ガイドを参照してください。画面が変わっただけで再送せず、まず状態を確かめましょう。 関連する解説: 入金確認ガイド、[Bitcoinフルノードガイド](/learn/ja/bitcoin-full-node-pruning-archive-storage-validation-wallet-trust-explained)、Bitcoin手数料ガイド。
よくある質問
Q1Bitcoinは常にブロック数が多いチェーンを選びますか?
いいえ。ノードは自身が把握する有効チェーンのうち累積仕事量が最大のものを優先します。高さだけでは比較できません。
Q2確認済み取引の確認数が減ることはありますか?
あります。含むブロックが再編成でアクティブチェーンから外れると、ノードはその確認を数えなくなります。再包含は保証されません。
Q3再編成はコンセンサス規則の変更を意味しますか?
必ずしもそうではありません。有効ブロックの伝播差で短い分岐が起きることがあります。再編成はアクティブな枝を変えることであり、それだけで規則を変えるものではありません。
出典
問題を報告
この記事のリンクを含むメールを準備します。送信すると Mark に報告が届きます
クイックチェック
記事を読み終えたら、3問で確認しましょう
問題 01
有効な二つのBitcoinチェーンのどちらをノードは選びますか?
答えを選ぶと解説を確認できます