115 / 691NC

Nakamoto consensus

ナカモト合意は、Bitcoinのノードが許可なく参加し、Proof of Work、累積作業量、報酬によって有効な履歴へ確率的に収束する仕組みである。

Full Nodeはまず合意規則を適用し、その後、有効なチェーンの中で累積作業量が最大のものを選ぶ。採掘者はその延長を競う。合意は即座に確定するわけではない。ナカモト合意という名称は後年のもので、白書には登場しない。

この概念はBitcoinの検証規則、Proof of Workによるブロック生成者の選択、分岐の選択、経済的報酬を組み合わせる。採掘だけに縮めて捉えると、有効性を独立に判断するFull Nodeを見落とす。 [Satoshi Nakamoto — Bitcoin: A Peer-to-Peer Electronic Cash System] [The Bitcoin Backbone Protocol]

Full Nodeは自身の合意規則に従って取引とブロックを検証する。莫大な作業量でも無効なブロックを有効にはできず、分岐の選択は有効な候補だけを比較する。合意には参加者の規則に互換性があることが前提となる。 [Satoshi Nakamoto — Bitcoin: A Peer-to-Peer Electronic Cash System] [Bitcoin Developer Guide — Block Chain] [Bitcoin Core v29.0 — Chainstate validation]

Proof of Workはネットワーク上の身元ごとに一票を与える代わりに、電力と機器の費用を伴う計算作業に影響力を結び付ける。したがって、多数の仮名を作るだけではチェーン選択の重みは増えない。 [Satoshi Nakamoto — Bitcoin: A Peer-to-Peer Electronic Cash System] [The Bitcoin Backbone Protocol]

採掘者は候補ブロックを組み立て、数値が有効な目標値以下となるヘッダーハッシュを探す。競合する有効なブロックが同時に生まれることがあり、通常のネットワーク条件では伝播と後続作業が一時的な分岐を解消する。 [Satoshi Nakamoto — Bitcoin: A Peer-to-Peer Electronic Cash System] [Bitcoin Developer Guide — Block Chain]

Full Nodeは総作業量が最大の有効な分岐を選ぶ。この量をchainworkという。ブロックの作業量は目標値から導かれ、採掘者が実際に試した回数ではない。最長チェーンとは最大作業量を意味し、必ずしも最多ブロック数ではない。 [Satoshi Nakamoto — Bitcoin: A Peer-to-Peer Electronic Cash System] [Bitcoin Developer Guide — Block Chain] [Bitcoin Core v29.0 — Chainstate validation]

正直な作業量が過半数で適切にブロックが伝播するという仮定の下で、書き換えのリスクは承認の深さとともに下がる。攻撃者は競合チェーンに追い付く必要がある。承認は数学的な不可逆性ではなく、任意の攻撃モデルや被害者の隔離に対処できるわけではない。 [Satoshi Nakamoto — Bitcoin: A Peer-to-Peer Electronic Cash System] [The Bitcoin Backbone Protocol]

mainnetでは過去のタイムスタンプから2016ブロックごとに目標値を再計算し、平均10分に1ブロックを目指す。この調整はハッシュレート変化の長期的影響を和らげるが、個々の正確な間隔や採掘者の停止への即応を保証しない。 [Satoshi Nakamoto — Bitcoin: A Peer-to-Peer Electronic Cash System] [Bitcoin Developer Guide — Block Chain]

ブロック補助金と手数料は受け入れられた履歴の延長に報酬を与える。計算力の過半数は有効なブロックの再編や取引の検閲を行えるが、Full Nodeに無効な署名の受理、発行規則違反、権限のない他人の資金支出を強制できない。50%未満でも攻撃リスクはある。 [Satoshi Nakamoto — Bitcoin: A Peer-to-Peer Electronic Cash System] [Bitcoin Developer Guide — Block Chain] [Bitcoin Core v29.0 — Chainstate validation]

安全性と活性は攻撃側の作業量比率、十分に速い伝播、正直な検証に依存する。エクリプス攻撃やネットワーク分断は接続構造の重要性を示す。ハッシュレートの割合だけでは完全な脅威モデルにならない。 [The Bitcoin Backbone Protocol]

古典的BFTは通常、既知の参加者が明示された故障上限と時間仮定の下で投票して確定する。ナカモト合意は自由な参加、作業量による重み、確率的な確定性を持つ。単にOMやPBFTを実装したのではなく、モデルを変えている。 [The Bitcoin Backbone Protocol] [The Byzantine Generals Problem] [Bitcoin Optech — Consensus changes]

理解を深めるには、この項目とあわせて次もお読みください Bitcoin, Proof of Work, 難易度調整, コンセンサス規則, ビットコイン・マイニング, Full Node. 次の項目からも参照されています Byzantine Generals Problem, Sybil attack, Selfish mining.

DOC · 001Satoshi Nakamoto — Bitcoin: A Peer-to-Peer Electronic Cash System一次資料 ↗DOC · 002Bitcoin Developer Guide — Block Chain文書 ↗DOC · 003Bitcoin Core v29.0 — Chainstate validation文書 ↗DOC · 004The Bitcoin Backbone Protocol一次資料 ↗DOC · 005The Byzantine Generals Problem一次資料 ↗DOC · 006Bitcoin Optech — Consensus changes文書 ↗
一次資料を優先 · 投資助言ではありません