
著者: ジェイムソン・ロップ
著者: ジェイムソン・ロップ
翻訳・校正:Min Min & A Jian
人々がさまざまな暗号通貨のコンセンサスメカニズムについて議論するとき、しばしば論争が起こります。これは主に、これらの暗号通貨が台帳の履歴データを保護するために使用するセキュリティ モデルの理解 (定義) が不足していることが原因です。すべてのコンセンサス モデルはさまざまな理論的攻撃から保護するように設計されていますが、これらのモデルの目的を理解することが重要です。
セキュリティモデルは、仮定(仮定)と保証(保証)の 2 つの部分に分けることができます。入力として使用される仮定が成立する場合、安全モデルの出力の保証も成立するはずです。
ビットコインがフルノードオペレーターに提供するセキュリティモデルを詳しく見てみましょう。
真実を求めて
「ユーザー間の信頼の必要性を最小限に抑えることがビットコインの強みの 1 つです。個人的には、これがビットコインの最大の強みだとさえ思っています。」 — Pieter Wuille
分散システムではタイムスタンプを単純に信頼できないため、分散台帳はイベントの順序付けられた記録を提供するように設計されています。
新しい参加者が初めてブロックチェーン ネットワークに参加するとき、ソフトウェアにハードコーディングされたジェネシス ブロックから始まる利用可能なすべてのブロックをダウンロードし、ブロックチェーン全体の有効性を検証します。
ビットコインのセキュリティ モデルの最も重要な前提の 1 つは、マイナーの大多数が正直である、つまりブロックチェーンを破ろうとしているのではなく、ブロックチェーンの安全を保つために懸命に働いているということです。実際、ビットコインの開発の歴史を通じて、効果的なマイナーインセンティブメカニズムのおかげで、この仮定はこれまで破られていませんでしたが、長期間維持できるかどうかを疑う人もいます。
この前提を前提にすると、フルノードのオペレーターは次のことを確認できます。
マイナー以外の誰も追加のビットコインを発行することはできず、ビットコインの供給は発行スケジュールに従って厳密に増加します。
対応するビットコインは秘密キーなしでは使用できません。
ビットコイン ブロックチェーンの強力な保証により、フルノード オペレーターは次の 2 つの点を確認することもできます。
ビットコイン ブロックはタイムスタンプから約 2 時間以内に作成されます。
技術的に言えば、ビットコインブロックは多くのチェックを通過します。
すべてのブロックはコンセンサス ルールに従います。
各ブロックはその親ブロックに接続されています
すべてのブロックが目標の難易度値に達しており、十分な作業証明がある
ブロックのタイムスタンプは、最後の最新ブロックからの時間枠内にあります
マークルルートはブロックに記録されたトランザクションと一致します
ブロックサイズが上限を超えていない
各ブロックの最初 (最初のみ) のトランザクションは、coinbase トランザクションです。
Coinbaseの出力はブロック報酬を超えません
ブロックに含まれる署名操作は許可範囲を超えません
すべてのトランザクションはコンセンサス ルールに従います。
入力値も出力値も妥当です
トランザクションはまだ使用されていない出力のみを使用します
使用されるすべての入力には有効な署名があります
Coinbase トランザクションの作成後 100 ブロック以内は、Coinbase トランザクションの出力を使用できません
トランザクションがまだブロック確認ウィンドウにあるときは、その出力を使用することはできません。
誰も同じビットコインを二度使うことはできません。
彼らが同期しているのは「本当の」ブロックチェーンの歴史です。
スペースは限られているため、残りのルールは繰り返されません
熱力学的安全性
攻撃者がネットワーク全体の 50% を超える計算能力を持たず、誠実なノードが迅速に通信できる限り、トランザクションのロールバックの可能性はトランザクション確認の数とともに指数関数的に減少します。他のタイプの攻撃 (利己的マイニングなど) はそれほど高いエネルギーを必要としませんが、実装は困難です。
画像の説明
写真
画像の説明
- 出典: http://bitcoin.sipa.be -
51% 攻撃のコストを計算してみましょう。
10^26 hash * 0.1 J / 10^9 hash = 10^15 J
10^15 J = 2,777,777,778 kw/h * $0.10 kw/h = $277,777,Antminer S9 の消費電力は 0.1 J/GH (10^9 ハッシュ) です。
778 (ブロックチェーン全体を書き換えるための電気代)
253,618,246,641 * 2^48 / 65535 = 1.09 * 10^21 hash
1.09 * 10^21 hash * 0.1 J / 10^9 hash = 1.09 * 10^11 J
1.09 * 10^11 J = 30,278 kw/h * $0.10 kw/h = $3,この記事の執筆時点では、ブロックは目標難易度値 253,618,246,641 に到達する必要があります。これにはおよそ次の時間がかかります。
028(各ブロックを作成するのに必要な電気代)
したがって、ビットコインは熱力学的に安全であると言えます。
上記の計算の変数の一部を調整してコストを削減することはできますが、ブロックチェーン全体を書き換えるだけでも数百万ドル相当の電力が必要になることは間違いありません。ただし、最悪のシナリオでは、このような強力なコンピューティング能力を持つ攻撃者がトランザクションを 2014 年までロールバックできる可能性があります。その理由については、すぐに詳しく説明します。
また、マイニングリグの購入と運用に必要なコストは考慮されていないことにも注意してください。
対シビル攻撃
これは、反シビル攻撃としても知られており、攻撃者が複数の不正なピアノードを実行することによって、特定のピアノードに虚偽の情報を提供できないことを意味します。
写真
上のグラフは、ほぼ最悪のシナリオを示しています。ノードは大規模な Sybil 攻撃を受けていますが、実際のブロックチェーンに接続できる正直なノードに接続されたままです。実際のブロックチェーン データをフル ノードに送信する正直なピアが存在する限り、ノードは Sybil がユーザーを騙そうとする試みを見破り、無視します。
リアルタイムのコンセンサス
ノードがブロックチェーンの最上位に同期されると、ビットコイン プロトコルが他のいくつかの興味深い特性を通じてネットワーク全体でコンセンサスを維持していることがわかります。
「ビットコインとその他の暗号通貨の研究の展望と課題」の著者は、暗号通貨の安定性には次の特性が重要であると指摘しています。
最終的な合意。いつでも、ルールに従うすべてのノードは、最終的な「正当な」ブロックチェーンの最新ブロックに関して合意に達する必要があります。
指数関数的な収束。深さ n でのフォークの確率は O(2−n) です。これにより、ユーザーは自分の取引が「k 回の確認」後に永久に決済されると強く信じることができます。
アクティブ。新しいブロックは継続的に生成され、適切な取引手数料を支払った有効なトランザクションは妥当な時間内にオンチェーンにパッケージ化されます。
正しさ。ブロックに含まれるすべてのトランザクションは、最も累積的なプルーフ・オブ・ワークを備えたチェーン上で有効です。
公平性。ネットワーク全体の総計算能力の X % を持つマイナーは、約 X % のブロックをマイニングできます。
著者らは、少なくともほとんどのマイナーが正直であると仮定すると、ビットコインには上記の特性があるようだと指摘しています。これが、ブロック報酬とプルーフ・オブ・ワークのメカニズムが達成することを目的としているものです。
分散システムでコンセンサスを維持するために使用できるアルゴリズムは他にもたくさんあります。
プルーフ・オブ・ステーク (PoS)
コインの年齢の証明
デポジットの証明
火傷の証明
活動証明
経過時間の証明
フェデレーションコンセンサス
上記のアルゴリズムは異なるセキュリティ モデルを作成します。Proof of Work との最も明らかな違いは、これらのアルゴリズムに基づくシステムはすべて、コンセンサスを達成するために外部リソース (電力) ではなく内部リソース (コインまたはレピュテーション) を消費することです。その結果、これらのシステムはネットワーク内のバリデータに対するインセンティブと信頼のニーズが異なり、セキュリティ モデルが劇的に変化します。
セキュリティモデルの誤解
セキュリティモデルの誤解
よくある誤解は、ビットコインには明確に定義されたセキュリティ モデルがあるということです。
実際、ビットコイン プロトコルも、現在も、正式に定義された仕様やセキュリティ モデルはありません。私たちにできる最善のことは、ビットコインのセキュリティ モデルをよりよく理解し説明するために、システム参加者の動機と行動を研究することです。
それにもかかわらず、ビットコイン プロトコルの一部の機能は誤解されることがよくあります。
開発者が「ブロック X が正しいチェーン上にあることを確認した」として、ノード ソフトウェアに任意の署名付きチェックポイントを追加するため、一部のブロックチェーンは深刻な脆弱性を抱えています。これは、極端な集中化による単一の問題点です。
6,119,726,089 * 2^48 / 65535 = 2.62 * 10^19 hash
2.62 * 10^19 hash * 0.1 J / 10^9 hash = 2.62 * 10^9 J
ビットコインには 13 個のハードコーディングされたチェックポイントがあることに言及する価値がありますが、これらのチェックポイントは、任意に設定されたチェックポイントほどセキュリティ モデルを変更しません。最後のチェックポイントは、Bitcoin Core 0.9.3 のブロック高さ 295000 (2014 年 4 月 9 日に作成) に追加されました。このブロックの難易度は 6,119,726,089 で、必要な電気代はおよそ次のとおりです。
2.62 * 10^9 J = 728 kw/h * 0.10 kw/h ドル = 73 ドル (このブロックの作成に必要な電気代)
したがって、Sybil が新しく参加したノード (最初から同期する必要がある) をフェンスする場合、より低いブロック高でより短いブロックチェーンを作成するのにほとんどコストはかかりませんが、チェックポイントを超えることはできません。
Sybil がブロック高さ 295,000 を超えて同期するネットワークからノードをフォークした場合、少なくとも難易度の調整が行われるまでは、ブロックあたり 73 ドルのコストで偽のブロックの提供を開始する可能性があります。ただし、被害者ノードが同期しているチェーンが長ければ長いほど、攻撃者がより累積的なプルーフ・オブ・ワークを備えたチェーンを作成するコストは高くなります。
グレッグ・マックスウェル氏とピーター・ウィーレ氏はいずれも、いつか検問所を完全に撤廃したいと述べた。ビットコイン・コアのメンテナンス責任者であるウラジミール・ファン・デル・ラーン氏は、ビットコインのセキュリティモデルを理解したい人にとってチェックポイントはしばしば混乱を招くと指摘した。
おそらく、ブロック高さ 295,000 のチェックポイントは、ビットコイン コア開発者が 2014 年 4 月 9 日より前のブロックが有効であると言っているとフルノードが「信じている」ことを意味します。ただし、フル ノードは依然として各ブロック ヘッダーのマークル ハッシュ値をチェックします。つまり、トランザクション履歴の有効性は依然としてプルーフ オブ ワークによって保護されています。これらの古いチェックポイントは、履歴ブロックチェーンを初めて同期するときにパフォーマンスを向上させる (署名検証をスキップする) ことができますが、libsecp256k1 の導入によりパフォーマンスの違いはあまり目立たなくなります。
チェックポイントは、次の 3 つの主な目的のために存在します。
ノードのメモリが、有効ではあるもののプルーフ・オブ・ワークのブロックヘッダーでいっぱいになるのを防ぎます。
以前のブロックの署名をスキップします (パフォーマンスが向上します)。
写真
画像の説明
- 出典: Blockchain.info -
1.16 * 10^20 hash * 0.1 J / 10^9 hash = 1.16 * 10^10 J
1.16 * 10^10 J = 3,難易度の値が 27,000,000,000 の場合、マイニングでは約 27,000,000,000 * 2^48 / 65535 = 1.16 * 10^20 のハッシュ関数を計算する必要があります。
222 kw/h * 0.10 kw/h = 322 ドル (各ブロックの作成に必要な平均電力コスト)
(未完成)
(未完成)
元のリンク:
https://blog.lopp.net/bitcoins-security-model-a-deep-dive/