4Dはイーサリアム合併後に直面する可能性のあるPoS攻撃と防御策を詳しく解説
原文編纂:一夜粥
原文編纂:一夜粥
翻訳者注: 今後のイーサリアムの合併に向けて、著者 jmcook.eth が多数の研究文献に基づいて関連するコンセンサス攻撃手法を要約し、いくつかの解決策について言及しています。一般に、PoS コンセンサスメカニズムに切り替えた後、攻撃者によって制御される誓約 ETH の割合が増えるほど、攻撃が成功する可能性が高まり、イーサリアムに組み込まれた「アメとムチ」のインセンティブ層により、ほとんどの攻撃を防ぐことができます。悪意のある行為、特に低額の攻撃者に対するものですが、34%、51%、または 66% の攻撃の場合、それらを解決するにはコミュニティの調整が必要になる可能性があるため、約束された権利と利益の集中を防ぐことがイーサリアム ネットワークのセキュリティにとって重要になります。 。
初期のドラフトに関して役立つコメントをくれた Tim Beiko と Caspar Schwarz-Schilling に感謝します。
イーサリアムは敵対的な環境であることで悪名高く、「暗い森」(ゲーム理論における三体問題の恐ろしい概念)に例えられることもあります。この評判は主に、アプリケーション層 (安全でないスマート コントラクト) またはソーシャル層 (ユーザーが秘密鍵を放棄したり、誤ってトランザクションに署名するように操作される) の弱点、およびトランザクション ストレージ プールから価値 (MEV) を抽出するボットの存在によって生じます。 。しかし、泥棒や破壊行為を行う高度なハッカーも、イーサリアムのクライアント ソフトウェアを攻撃する機会を常に探しています。コンピュータをイーサリアム ノードに変えるクライアント ソフトウェアは、他のノードへの接続、情報交換、イーサリアム ブロックチェーンの状態に関する合意に関するすべてのルールを定義するコードです。プロトコル層への攻撃はイーサリアム自体への攻撃となります。
間もなく、イーサリアム クライアントはメジャー アップグレード (「マージ」と呼ばれる) を受ける予定です。これにより、イーサリアムを保護するプルーフ オブ ワーク (PoW) アルゴリズムがオフになり、プルーフ オブ ステーク (PoS) コンセンサス メカニズムに置き換えられます。これには多くの理由があり、他の記事で詳しく説明されています。それは技術的な変化であると同時に、哲学的な変化でもあるでしょう。
プルーフ・オブ・ステーク (PoS) コンセンサス メカニズムに統合すると、持続可能性とスケーラビリティの利点がもたらされますが、その一方で、クライアント ソフトウェアの複雑さが増大し、プロトコルの潜在的な攻撃対象領域も増大します。現在、PoW イーサリアム ブロックチェーンを保護するために実行する必要があるソフトウェアは 1 つだけですが、「マージ」後は、実行する必要があるソフトウェアの数が 3 つ (実行クライアント、コンセンサス クライアント、バリデータ) に増加します。 。
この記事では、イーサリアム コンセンサス レイヤーに対する既知の攻撃ベクトルの概要を示し、これらの攻撃から防御するいくつかの方法の概要を説明します。この記事を最大限に活用するには、読者がビーコン チェーンに関する基本的な知識を持っている必要があるかもしれません。また、ビーコン チェーンのインセンティブ層とフォーク選択アルゴリズム LMD-GHOST の基本を理解しておくと役立ちます。
前文
前文
インセンティブ層
ビーコン チェーンは、イーサリアムのネイティブ暗号通貨 ETH を使用して保護されたプルーフ オブ ステーク (PoS) ブロックチェーンです。ブロックの検証とブロックチェーンの先頭の特定に参加したいノード オペレーターは、スマート コントラクトのイーサに ETH を預けます。ファンファン。その後、検証ソフトウェアを実行し、ピアツーピア ネットワークを通じて受信した新しいブロックの有効性を確認し、フォーク選択アルゴリズムを適用してブロックチェーン ヘッドを識別するために ETH で支払われます。ノード オペレーターは「バリデーター」になり、バリデーターには 2 つの主な役割があります。1) 新しいブロックをチェックし、それらが有効であることを「証明」する、2) バリデーター プール全体からランダムに選択されたときに新しいブロックを提案する。バリデーターが要求されたときにこれら 2 つのタスクのいずれかを完了できなかった場合、ETH の支払いを逃すことになります。また、同じスロットで複数のブロックを提案したり、同じスロットで複数のブロックを証明したりするなど、誤って実行するのが非常に難しく、悪意を示す操作もいくつかあります。これらは検証につながる可能性のある「スラッシュ可能な」動作です。ネットワークから削除されるまでに一定量の ETH (最大 0.5 ETH) が必要です。これには 36 日かかります。スラッシュされたバリデーターからの ETH は終了期間中にゆっくりと排出されますが、18 日目にさらに多くのバリデーターが同時にスラッシュされると、より大きな「相関ペナルティ」を受けます。したがって、ビーコン チェーンのインセンティブ構造は、正直なアクターに報酬を与え、悪いアクターを罰することになります。
フォークの選択
フォーク選択アルゴリズムは各バリデーターによって実行され、その役割はブロックチェーンの先頭を識別することです。完全に正直なバリデーターとネットワーク遅延ゼロという理想的な条件下では、ブロックチェーンの最上位にはブロックが 1 つしかないため、フォーク選択アルゴリズムは実際には不要です。ただし、実際には、一部のクライアントは他のクライアントよりも遅くブロックを受信し、ブロックチェーン ヘッダーの複数のバージョンが作成され、同じスロットで複数のブロックを提案または投票する不正な動作をするバリデータが一定割合存在する可能性があります。これは、複数のオプションから実際のブロックチェーンヘッダーを選択するには、何らかのアルゴリズムが必要であることを意味します。
余談ですが、ビーコンチェーンは定期的にブロックチェーンを固定化し、これを「ファイナリティ」と呼びます。このプロセスは、各エポックの最初のスロットを「チェックポイント」とみなして機能します。チェックポイントは、預金契約に賭けられたETH総額の少なくとも2/3を保有するバリデーターから証明(投票)を集めた場合、「正当化された」と言われます。そのチェックポイントの上に別のチェックポイントがあると、それが「最終」チェックポイントになります。フォーク選択アルゴリズムは、ブロックチェーンの不合理な部分のブロックのみを考慮します。ブロックチェーンを証明して最終化するアルゴリズムは「Casper FFG」と呼ばれ、フォーク選択アルゴリズム自体は LMD-GHOST (「最新ニュース主導の貪欲で最も重い観測サブツリー」の略) と呼ばれます。専門用語で言うと、正しいブロックチェーンとは、最も多くの証明を蓄積したブロックチェーンであり (GHOST)、同じバリデーターから複数のメッセージを受信した場合、最後のメッセージのみがカウントされます (LMD)。各バリデーターは、このルールを使用して各ブロックを評価し、最も重いブロックをその正規チェーンに追加します。
各エポック中に、バリデーターは「LMD 投票」と「FFG 投票」という 2 つの重要な情報を含む証明書に署名する必要があります。 LMD 投票は、バリデーターがブロックチェーンの先頭であると見なすブロックのルートであり、FFG 投票には、ターゲット チェックポイントとソース チェックポイントのブロック ハッシュとエポックが含まれます。ソース チェックポイントは、検証された最新の有効なチェックポイントです。チェーンはすでに知っており、ターゲット チェックポイントは証明する次のチェックポイントです。
したがって、ビーコン チェーンのコンセンサス アルゴリズムは、LMD-GHOST と Casper FFG を組み合わせたものであり、Gasper とも呼ばれます。この背景知識を簡単に理解した後、このシステムに対する考えられる攻撃の研究を続けることができます。
レイヤ0攻撃
まず、(クライアント ソフトウェアを実行して) イーサリアムに積極的に参加していない個人は、イーサリアム ネットワークを攻撃するためにソーシャル レイヤー (レイヤー 0) をターゲットにすることを選択する可能性があります。これらの攻撃は実際にはイーサリアム ソフトウェアの実行に直接影響を与えることはありませんが、イーサリアムにリスクをもたらします。レイヤー 0 はイーサリアムが構築される基盤であるため、スタックの残りの部分に波及する結果を伴う潜在的な攻撃対象領域を表します。思い浮かぶ例をいくつか挙げます。
複数のプラットフォームにわたって大規模な誤報キャンペーンが開始され、数か月または数年にわたって継続すると、イーサリアムのロードマップや開発チームに対するコミュニティの信頼が失われる可能性があります。これにより、ネットワーク セキュリティに参加する意欲のある個人の数が減り、分散化と暗号経済セキュリティが低下する可能性があります。
開発者コミュニティに対する標的型攻撃や脅迫。開発者の自主的な離脱につながり、イーサリアムの開発を遅らせ、より広範な士気を低下させる可能性があります。
過度の規制は、参加と採用をすぐに弱める可能性があるため、レイヤー 0 攻撃と見なすこともできます。
知識は豊富だが悪意のある攻撃者が開発者コミュニティに侵入し、議論を減らしたり、重要な決定を遅らせたり、スパム投稿を作成したり、提案から注意をそらすなどして進捗を遅らせることを目的としています。
永久的な分裂を引き起こすほどの不安を引き起こすことを目的として、イーサリアム コミュニティの不満を意図的に煽る。
決定に影響を与えるためにイーサリアムエコシステムの主要なプレーヤーに賄賂を渡す。
多くの場合、L0 攻撃を開始するのに必要な資金や技術的知識はほとんどなく、ソーシャル層への攻撃は特に危険です。実際に必要なのは、希少なリソースではなく、時間と悪意だけです。レイヤー 0 攻撃が暗号経済攻撃をどのように増幅させるかを考えることも興味深いです。たとえば、悪意のある多数派のステーカーによって検閲やファイナリティの逆転が達成された場合、ソーシャル層が混乱すると、帯域外のコミュニティが対応を調整することがさらに困難になる可能性があります。
レイヤ 0 攻撃に対する防御は簡単ではないかもしれませんが、いくつかの基本原則を確立することができます。 1 つは、ブログ、Discord サーバー、注釈付きの仕様、書籍、ポッドキャスト、YouTube を通じてコミュニティの誠実なメンバーによって作成および広められたイーサリアムに関する公開情報の全体的に高い S/N 比を維持することです。 Ethereum.org は、特に広範なドキュメントと説明記事を迅速に複数の言語に翻訳しているため、その好例です。高品質の情報とミームで空間を氾濫させることは、誤った情報に対する効果的な防御策です (情報ギャップは脆弱です)。イーサリアム コミュニティはこれに長けていますが、長期的なレイヤー 0 セキュリティには、高品質の情報の作成と配布に対する継続的な取り組みが必要です。
ソーシャル レイヤー攻撃に対するもう 1 つの重要な防御策は、明確なミッション ステートメントとガバナンス協定です。イーサリアムは、スマート コントラクト L1 における分散化とセキュリティの擁護者としての地位を確立すると同時に、スケーラビリティと持続可能性を重視しています。イーサリアム コミュニティ内で意見の相違があっても、これらの中心原則は最小限の影響を受けます。これらの核となる原則に照らして物語を評価し、EIP (イーサリアム改善提案) プロセスで継続的なレビューを通過することは、コミュニティが善玉と悪玉を区別し、悪意のある行為者がイーサリアムの将来の方向性に影響を与える範囲を制限するのに役立つ可能性があります。 。
最後に、イーサリアム コミュニティがオープンであり、すべての参加者を歓迎し続けることが重要です。門番、エリート主義、排除が存在するコミュニティは、「私たちと彼ら」の物語を構築しやすいため、特に社会的攻撃に対して脆弱です。一方、オープンで包括的なコミュニティは、オープンな議論を通じて誤った情報に効果的に対抗できるコミュニティです。部族主義と有毒な極限主義はコミュニティに損害を与え、レイヤー 0 のセキュリティを侵食します。イーサリアムは通常、新しい参加者を歓迎する非常にオープンなコミュニティを持っていますが、コミュニティの規模が大きくなるにつれて、これを維持することがますます困難になる可能性があります。ネットワークのセキュリティに既得権を持つイーサリアム コミュニティのメンバーは、オンラインと現実世界の両方で自分たちの行動がイーサリアムのレイヤー 0 セキュリティへの直接的な貢献であると考える必要があります。この記事の後半で説明するように、強力なソーシャル レイヤが存在するためです。プロトコル攻撃に対する最後の防御線です。
攻撃者の報酬
レイヤ 0 攻撃は、イーサリアムに対する社会の信頼を損ない、ETH の価値を切り下げ、イーサリアムの採用を減らして競合するチェーンに対してイーサリアムを脆弱にすること、またはイーサリアム コミュニティを弱体化させて帯域外調整をより困難にすることを目的としている可能性があります。ただし、イーサリアム ネットワーク自体を攻撃することで得られる利益は明らかではありません。
よくある誤解は、攻撃が成功すると、攻撃者が新しい ETH を生成したり、任意のアカウントから ETH を引き出したりできるというものです。ブロックチェーンに追加されたすべてのトランザクションはネットワーク上のすべての実行クライアントによって実行されるため、どちらのステートメントも信頼できません。それらは有効性のための基本条件 (例: トランザクションが送信者の秘密鍵によって署名されている、送信者が十分な残高を持っているなど) を満たさなければなりません。そうでない場合、それらは単に元に戻されます。実際には、攻撃者が攻撃する可能性のある結果として、再組織化、ダブル ファイナリティ、またはファイナリティの遅延がいくつかあります。
「再編成」とは、ブロックチェーンのヘッダーブロックを再配置することです。これは、攻撃において、たとえそれらが正規のネットワーク上にない場合でも、特定のブロックが確実に含まれるか除外されるようにすることを目的としています。これにより、攻撃者は、たとえば、ETH を取引所に送信して法定通貨に換金し、その後イーサリアム ブロックチェーンを再編成してこのトランザクションを削除し、最終的に ETH を取り戻して法定通貨を取得する「二重支払い」が可能になる可能性があります。あるいは、再組織化により、高度な攻撃者がフロントランニングまたはバックランニング トランザクションを介して他人のトランザクションから価値 (MEV) を抽出できるようになる可能性や、再組織化により誰かまたは一部の組織が正規チェーンに含まれるトランザクションを継続できなくなり、事実上検閲される可能性があります。それらはイーサリアムネットワークからのものです。
再編成の最も極端な形式は、以前にファイナライズされたブロックを削除または置き換える「ファイナリティ復帰」です。これは、ステーキングされた ETH の少なくとも 1/3 が破壊された場合にのみ可能であり、この保証は「経済的ファイナリティ」と呼ばれますが、これについては後ほど詳しく説明します。
ダブル ファイナリティ (ダブル ファイナリティ) 攻撃が発生する可能性は非常に低いですが、2 つのフォークが同時にブロックをファイナライズできる場合、永続的なブロックチェーンの分割が発生するため、深刻です。これは、攻撃者がステーキングされた ETH の合計の 34% 以上を制御でき、それらを失うリスクをいとわない限り、理論的には可能です。その後、コミュニティはオフチェーンを調整し、どのチェーンに従うべきかについて合意に達する必要があります。このような社会的に調整された防御策については、後で詳しく説明します。
ファイナリティ遅延攻撃により、ネットワークが Casper-FFG がチェーンをファイナライズするために必要な条件に達することができなくなります。イーサリアム上で実行される多くのアプリケーションは機能するために高速なファイナリティに依存しているため、これはイーサリアムのアプリケーション層にとって非常に破壊的です。ブロックチェーンの完成度に対する高い信頼がなければ、その上に構築された金融アプリケーションを信頼することは困難です。ファイナリティ遅延攻撃の目的は、攻撃者がいくつかの戦略的なショート ポジションを展開しない限り、直接利益を得るというよりも、イーサリアムを破壊することだけである可能性があります。
怠惰と曖昧さ
バリデータを実行していなくても、誰でもイーサリアムのクライアント ソフトウェアを実行できます。人々がこれを行うのは、データを非常に迅速に検証するために使用できるブロックチェーンのローカル コピーが提供され、Infura や Quicknode などの中央集権的なサードパーティを経由せずにトランザクションをプライベートにイーサリアム ネットワークに送信できるためです。ただし、バリデーターも実行しないノードオペレーターは、ブロックの生成または検証に参加できません。これは、ネットワーク セキュリティにまったく影響を与えないことを意味します。バリデーター以外のオペレーターがビーコンチェーンを攻撃する可能性は、無関係なレイヤー 0 攻撃も開始しない限り、無視できます。
コンセンサスクライアントにバリデーターを追加するには、ユーザーはデポジット契約に 32 ETH を賭ける必要があります。アクティブなバリデーターを使用すると、ユーザーは新しいブロックを提案および証明することで、イーサリアムのネットワーク セキュリティに積極的に参加し始めます。これらの追加の責任を引き受ける間、ユーザーは ETH の形で報酬を受け取りますが、これはまた彼らに復讐行為の新たな機会を与えることになります。バリデーターは現在、発言権を持っており、それを利用してブロックチェーンの将来のコンテンツに影響を与えることができ、正直にETH準備金を増やすために働くことも、リスクを負って自分たちの利益のためにプロセスを操作しようとすることもできます。攻撃を開始する 1 つの方法は、賭け金の大部分を蓄積し、それを使用して誠実なバリデーターを倒すことです。攻撃者が管理する株式の割合が大きければ大きいほど、特に後ほど説明する特定の経済的マイルストーンにおいて、攻撃者の投票力も大きくなります。ただし、ほとんどの攻撃者はこれを実行するのに十分な ETH を蓄積できないため、巧妙なテクニックを使用して、正直な多数派を操作して特定の方法で行動させる必要があります。
基本的に、ビーコン チェーンに対するすべてのスモール ステーク攻撃は、2 種類のバリデーターの不正行為の微妙なバリエーションです。それは、活動不足 (検証/提案の失敗、または実行の遅延) または過剰活動 (1 スロット期間内の提案/証明が多すぎる) です。最も一般的な形式では、これらの動作はフォーク選択アルゴリズムとインセンティブ層によって簡単に処理されますが、これらのアルゴリズムを攻撃者に有利に機能させる賢い方法があります。このような手法はいくつか確認されており、主にメッセージのタイミングと伝播を慎重に調整して、バリデータ セット全体のさまざまなサブセットがブロックチェーンの状態をどのように認識し、どのように動作するかを制御します。次のセクションでは、リスクの低い攻撃者がネットワークを攻撃する方法のいくつかと、これらの攻撃を防御する方法について説明します。
小規模ステーカーの攻撃
短距離再組織
再編成を達成したり、ファイナリティ攻撃を遅らせたりするために、ステークされた ETH の一部のみを使用するビーコン チェーンに対する攻撃について説明した論文がいくつかあります。これらの攻撃は通常、攻撃者が他のバリデーターから一部の情報を保留し、それを微妙な方法または適切なタイミングで公開することに依存しています。これらの攻撃は通常、正規チェーンからのいくつかの正直なブロックを置き換えることを目的としています。これらの正直なブロックは、攻撃が開始された時点ではまだ作成されておらず、この攻撃は、事前再編成 (攻撃者が正規チェーンの検証済みブロックから遡って削除する) とは対照的に、事前再編成として知られています。 PoS イーサリアムでは、ステーキングされた ETH (現在の価格で約 180 億ドル) の 2/3 を制御しない限り、事後的な再編成は事実上不可能です。攻撃者が所有権の 66% 未満を管理している場合、攻撃者が事後再編成を完了できる可能性は非常に低くなります (攻撃者が所有権の 65% を管理している場合でも、成功の可能性は 0.05% 未満です)。
図: ステークの 2/3 を制御する攻撃者によって実行される事後再編成攻撃。彼らはスロット N+1 で提案された正直なブロック B を無視し、代わりにブロック N をブロックチェーンの先頭として投票します。次に、スロット N+2 のブロック C に投票します。同時に、フォーク選択ルールでは前のスロットの証明は参照されますが、現在のスロットでは参照されないため、スロット N+2 のブロック B に投票します。バリデーターはブロック C に投票します。スロット N+3 が到着すると、両方のフォークの重みは 66% になります。これは、競合するブロック ハッシュの辞書編集順によって決まります。これが攻撃者にとって有益であれば、攻撃者はブロック B をブロックチェーンから削除することに成功したことになります。
一方で、事後的な再編成を防ぐためにうまく機能する同じメカニズムが、非常に特殊でありそうもないネットワーク条件下で高度な攻撃者によって使用され、事後の再編成が引き起こされる可能性があります。たとえば、この論文では、攻撃側のバリデーターが特定のスロット n+1 のブロック (B) を作成して証明しながら、ネットワーク上の他のノードへの伝播を回避する方法を示しています。代わりに、次のスロット n+2 までその証明されたブロックを保留します。正直なバリデーターは、スロット n + 2 のブロック (C) を提案します。ほぼ同時に、攻撃者は保留していたブロック (B) と保持していた証拠を解放し、ブロック (B) がブロックチェーンの先頭であること、つまりスロット n + 2 への投票であることを証明し、事実上正直さの存在を否定することができます。ブロック(C)。正直なブロック (D) が解放されると、フォーク選択アルゴリズムは、ブロック (D) がブロック (C) に基づいて構築されるよりも、ブロック (D) がブロック (B) に基づいて構築されることを確認します。したがって、攻撃者は、1 ブロックの事前再構成を使用して、正規チェーンからスロット n + 2 の正直なブロック (C) を削除することに成功します。 34% のステークを持つ攻撃者は、前述のように、投票によって攻撃者の優先フォークの重みが 68% であるのに対し、正直なフォークの重みは 66% であるため、この攻撃に勝つ可能性は十分にあります。これは、彼らが投票するために正直なバリデーターを操作することに依存する必要がないことを意味します。ただし、理論的には、この攻撃ははるかに小さいステーク比率でも試みられる可能性があります。 Neuder らは、30% のプレッジ比率での再編成前攻撃について説明しましたが、その後、このようなプレ再編成攻撃は 2% のプレッジ比率の制御下でも実行可能であることを証明しました。
ソースソース)
リストラに成功した攻撃者は歴史を変えることはできませんが、不正に未来を変えることはできます。これを行うためにステーキングされたETHの大部分を制御する必要はありませんが、成功の可能性は制御するステークの割合に応じて増加します。この再編攻撃により、大規模な取引を前倒しして MEV を二重に支出したり引き出したりすることが可能になる可能性があります。この攻撃は複数のブロックに拡張することもできますが、再編成の長さが長くなると成功の確率は低くなります。
バウンスとバランス
より高度な攻撃では、バランシング攻撃として知られる、誠実なバリデータのセットをブロックチェーン ヘッダーの異なるビューを持つ個別のグループに分割する可能性があります。この場合、攻撃者はブロックを提案する機会を待ち、その機会が到来すると、同じスロット内で 2 つのブロックを提案します。彼らは 1 つのブロックを誠実なバリデータのセットの半分に送信し、別のブロックを残りの半分に送信します。フォーク選択アルゴリズムはこの曖昧さを検出し、ブロック プロポーザーはスラッシュされてネットワークから排除されますが、両方のブロックはまだ存在しており、バリデータ セットの約半分が各フォークを証明します。攻撃者は、単一のバリデーターをスラッシュするという犠牲を払って、ブロックチェーンを 2 つに分割することに成功しました。一方、残りの悪意のあるバリデーターは証拠を保留しました。次に、フォーク選択アルゴリズムの実行時に、どちらかのフォークに有利なプルーフを選択的に十分なバリデータに公開することで、どのフォークが最も蓄積されたプルーフを持っているかをネットワークに認識させることができました。これは、攻撃側のバリデーターが両方のフォーク上で均等に分割されたバリデーターを維持することで、無期限に継続する可能性があります。どちらのフォークも 2/3 の超過半数を獲得できなかったため、ビーコン チェーンを確定できませんでした。攻撃側のバリデーターによって制御されるステークの割合が大きければ大きいほど、各スロットでブロックを提案するバリデーターを選択する可能性が高くなるため、特定のエポックで攻撃が行われる可能性が高くなります。たとえあなたが担保権の 1% しか管理していなかったとしても、バランス攻撃を開始する機会は平均して 100 エポックに 1 回出現し、待つのにそれほど時間はかかりません。
バウンス攻撃と呼ばれる同様の攻撃も、ステークのほんの一部を制御するだけで済みます。この場合、攻撃側のバリデーターは再び投票を拒否します。今回は、2 つのフォーク間の均等な分割を維持するために投票を発行するのではなく、必要に応じてフォーク A とフォーク B の間の代替チェックポイントを正当化するために投票を使用します。 2 つのフォーク間のこの反転により、ファイナリティが停止します。
バウンス攻撃とバランス攻撃に対する防御
バウンス攻撃とバランシング攻撃は両方とも、ネットワークに大きな影響を与えるために、攻撃バリデーターに依存して、適切な瞬間まで証明を遅らせます。したがって、この攻撃はネットワーク同期の可能性が低い条件下でのみ実行可能であり、攻撃者は緊密に調整された結託バリデータを通じてメッセージのタイミングを非常にきめ細かく制御できます。それでも、この攻撃ベクトルを遮断する必要があります。遅れたメッセージがコンセンサスに影響を与えるのを防ぐために、遅れたメッセージの重み付けを、時間内に受信したメッセージと比較して低くすることができます。これは提案者重みブースティング方式と呼ばれます。
バウンス攻撃の場合、修正はフォーク選択アルゴリズムを更新して、最新の適切なチェックポイントが各エポックの最初の 1/3 スロットの間のみ代替チェーンのチェックポイントに切り替わるようにすることです。この状況により、攻撃者は後の展開のために投票を保存できなくなります。このような遅延投票攻撃に対するもう 1 つの防御策は、各スロットに遅れて到着した投票よりも、時間通りに到着した投票に大きな重みを割り当てることです。
これらの対策を組み合わせると、誠実なブロック提案者がスロットの開始後すぐにブロックを発行し、その後スロットの約 1/3 (4 秒) 期間で、新しいブロックによってフォーク選択アルゴリズムが切り替わる可能性があるというシナリオが作成されます。別のチェーン。同じ期限を過ぎると、より遅いバリデータからのプルーフには、より早く到着したプルーフと比較して、低い重みが与えられます。これは、高速提案者や検証者がブロックチェーンの先頭を決定するのに非常に有益であり、バウンス攻撃やバランス攻撃の可能性を大幅に減らします。基本的に、これらの防御機能は、上記の場合でも、メッセージの公開をきめ細かく制御する必要がなく、大規模ネットワークの非同期の性質に基づいた攻撃を防ぎます。したがって、この種の攻撃のリスクは、高速なアクティビティを優先し、遅延にペナルティを与えるフォーク選択アルゴリズムの変更によって大幅に軽減されています。
提案者の重みを高めるスキームは、「安価な再編成」攻撃、つまり、少量のステークを持つ攻撃者によって実行される再編成攻撃に対してのみ防御できることは言及する価値があります。実際、別の種類の再編前の攻撃では、提案者の重みブーストスキーム自体が、より大きなステーカーによって利用される可能性があります。この投稿の著者は、ステークの 7% を管理する攻撃者がどのように戦略的に投票を展開し、正直なバリデーターをだましてフォークを構築させ、正直なブロックを再編成するかを説明しています。相手のフォークに投票する正直なバリデータは、攻撃者が提案者の重み昇格スキームの恩恵を受けるのに間に合うように投票します。繰り返しますが、この攻撃は理想的な遅延条件を想定して設計されていますが、実際の状況では満たすのは困難です。一般に、攻撃者が管理するステークの割合が大きくなるほど、攻撃が成功する可能性が高くなります。そして、担保権益が大きくなれば、リスク資本も増加し、経済抑制が強化されることも意味します。
高度なバランス攻撃
上述のバウンスおよびバランシング攻撃は、ネットワーク上の他のバリデータがメッセージを受信するタイミングを非常にきめ細かく制御する悪意のあるバリデータに依存しており、このような攻撃は、プロポーザーの重みブースティング スキームが緩和されることで効果的に行われています。
ただし、研究者らは、ネットワーク遅延のきめ細かい制御に依存しない追加の攻撃についても説明しています。この場合、攻撃者は、提案されたバリデータを後続の 2 つのスロットで使用する必要があります (任意の 2 つのスロットでこれが発生する確率は、攻撃者が制御するバリデータの数に応じて増加します)。敵対的ブロック提案者の 1 つがスロット n でブロックを提案し、次に 2 番目の敵対的ブロック提案者がスロット n+1 で競合するブロックを提案し、フォークが作成されます。ブロック提案者が曖昧ではないため、スラッシュは発生しません。この例では、A をフォークする方がより有益であると仮定します。攻撃者はこれを知ることができ、ネットワーク上のバリデータの半数が証明を提出するのにかかる時間を推定することもできます...スロット n からの予約された投票は、投票の半分が完了した時点で解放される可能性があります。検証者が投票しました。これらは、スロット n のフォーク B のサポートの証拠です。したがって、検証グループの半数はフォーク B の追加の証明について知らないためフォーク A に投票し、残りの半数はより重み付けしてフォーク B に投票します。 n+1 の敵対票の保留は、保留証明の発行のタイミングが不正確であることによって引き起こされるフォーク B の不足分を補うために使用できます。
このバランシング攻撃は、フォーク選択アルゴリズムの理想化されたバージョンに対して説明されており、イーサリアム コンセンサス クライアントに実際に実装されているフォーク選択アルゴリズムよりも証明時間が予測可能ですが、これを実際のビーコン チェーンで実行する攻撃ははるかに困難です。ネットワーク トポロジ内で攻撃者のノードを分散すると、攻撃者のメッセージはトポロジ上の 1 つの場所からのメッセージよりも速くネットワーク全体に伝播するため、攻撃者はこの問題をある程度克服できます。
LMD ルールに特有のバランシング攻撃も提案されており、提案者重みブースティング方式にも関わらず実現可能であると考えられています。攻撃者は、フォークのブロック提案を難読化し、各ブロックをネットワークの約半分に伝播して 2 つの競合するチェーンを作成することで、フォーク間のおおよそのバランスを確立します。その後、共謀しているバリデーターはあいまいな投票を行い、ネットワークの半分が最初にフォーク A への投票を受け取り、ネットワークの残りの半分が最初にフォーク B への票を受け取ります。 LMD ルールは 2 番目の証明を破棄し、各バリデーターの最初の証明のみを保持するため、ネットワークの半分には A の投票と B の無投票のみが表示され、ネットワークの残りの半分には B の投票と A の無投票が表示されます。記事の著者らは、LMDルールについて、攻撃側の相手にバランスの取れた攻撃を仕掛けるための「並外れたパワー」を与えるものだと説明している。
この LMD 攻撃ベクトルは、フォーク選択アルゴリズムを更新することで解決され、曖昧なバリデーターをフォーク選択の考慮から完全に削除しました。曖昧さ検証ツールは、フォーク選択アルゴリズムを通じて将来の影響を軽減することもできます。これにより、雪崩攻撃に対する回復力も維持しながら、上記のバランシング攻撃を防止します。
雪崩攻撃
2022 年 3 月の論文では、雪崩攻撃と呼ばれる別の種類の攻撃について説明しています。この論文の著者らは、プロポーザーウェイトブースティングスキームでは雪崩攻撃の特定の亜種を防ぐことができないと主張しています。ただし、論文の著者らは、イーサリアムのフォーク選択アルゴリズムの高度に理想化されたバージョンに対する攻撃のみを実証しました (彼らは LMD なしで GHOST を使用しました)。
雪崩攻撃を開始するには、攻撃者は複数の連続したブロック プロポーザーを制御する必要があります。各ブロック提案スロットで、攻撃者はブロックを保留し、正直なチェーンが保留されたブロックと等しいサブツリーの重みに達するまでブロックを収集します。その後、攻撃者は保留されていたブロックを解放し、最大限の混乱を引き起こすことができます。これは、たとえば、6 つの保留ブロックの場合、最初の正直なブロック n が敵対的なブロック n と競合してフォークを作成し、その後、残りの 5 つの敵対的なブロックすべてが n+1 の正直なブロックと競合することを意味します。これは、正直なチェーンの重みが敵対的なチェーンの重みと等しくなるため、敵対的なブロック n および n+1 を確立したフォークが正直な証明を引き付けることを意味します。これを残りの保留ブロックに対して繰り返すことができるようになり、攻撃者があいまいなブロックがなくなるまで、正直なバリデータがチェーンの正直な先頭をたどることを防ぐことができます。攻撃者が攻撃中にブロックを提案する機会が増えた場合、それらのブロックを使用して攻撃を拡大できるため、結託攻撃に参加するバリデーターが増えるほど、攻撃が長く続き、より多くの正直なブロックが正規チェーンから移動されます。
LMD-GHOST フォーク選択アルゴリズムの LMD 部分は、雪崩攻撃を軽減します。LMD は「最後のメッセージ駆動」を意味し、各バリデーターによって保持されるテーブルを指し、他のバリデーターから受け取った最新情報が含まれます。このフィールドは、特定のバリデーター テーブルに既に存在するスロットよりも後のスロットから新しいメッセージが送信された場合にのみ更新されます。実際には、これは、各スロットで最初に受信したメッセージが受け入れられ、それ以降のメッセージは無視できることを意味します。言い換えれば、コンセンサスクライアントは最初に到着した各バリデーターからのメッセージを使用し、競合するメッセージは雪崩攻撃を防ぐために単純に破棄されます。
ファイナリティ遅延
低コストの単一ブロック再編成攻撃を最初に説明した同じ論文では、攻撃者がエポック境界ブロックのブロック提案者であることに依存する遅延ファイナリティ (「活性無効化」とも呼ばれる) 攻撃についても説明しています。これらのエポック境界ブロックは、Casper FFG がチェーンのさまざまな部分を終了するために使用するチェックポイントになるため、これは重要です。攻撃者は、十分な数の正直なバリデーターが FFG を使用して現在の最終目標として前のエポック境界ブロックに投票するまで、ブロックを保留するだけです。次に、保留されたブロックを解放して自分自身のブロックを証明し、残りの誠実なバリデーターも同じことを行い、異なるターゲット チェックポイントを持つフォークを作成します。もし彼らが適切なタイミングでそれを行ったなら、どちらかのフォークを証明する 2/3 の超過半数が存在することは決してないので、ファイナリティは阻止されるでしょう。攻撃者によって制御されるステークの割合が小さいほど、タイミングをより正確にする必要があります。これは、攻撃者が直接制御する証明が少なくなるほど、攻撃者が特定のエポック境界ブロックを提案するバリデーターを制御する可能性が低くなるためです。
遠距離攻撃の注意点
また、プルーフ・オブ・ステーク (PoS) ブロックチェーンに特有の攻撃のクラスもあり、これには、ジェネシス ブロックに参加するバリデーターが、ブロックチェーンの別のフォークを正直なブロックチェーンと並行して維持し、最終的には、ある時点で正直なバリデーターを説得してそれに切り替えることが含まれます。将来の適切な時期。 「ファイナリティ ガジェット」 (直訳するとファイナリティ ガジェット) により、すべてのバリデーターが誠実なチェーン (「チェックポイント」) の状態に定期的に同意することが保証されるため、このタイプの攻撃はビーコン チェーンでは不可能です。イーサリアムクライアントは最終的なブロックをまったく再編成しないため、このシンプルなメカニズムにより、長距離攻撃者に対する懸念が解消されます。ネットワークに参加する新しいノードは、信頼できる最近の状態ハッシュ (弱い主観性チェックポイントと呼ばれる) を見つけて、それを擬似生成ブロックとして使用することによって構築されます。これにより、ネットワークに入る新しいノードが自身の情報の検証を開始する前に、「信頼のゲートウェイ」が作成されます。ただし、ピアからチェックポイントを収集したり、エクスプローラーなどをブロックしたりするために必要な信頼は、クライアント開発チーム内の暗黙的な信頼を増加させないため、主観性は「弱い」です。定義上、チェックポイントはネットワーク上のすべてのノードで共有されるため、不正なチェックポイントはコンセンサス失敗の症状であり、この時点で、誠実なバリデータを守るために帯域外のソーシャル調整が引き継がれる必要があります。
これはすべて、少量の賭け金でビーコン チェーンを攻撃するのが非常に難しいことを示しています。ここで説明する実行可能な攻撃には、理想的なフォーク選択アルゴリズムが必要であり、ネットワークの状態や攻撃ベクトルがクライアント ソフトウェアへの比較的小規模なパッチによって遮断される可能性が極めて低いことが必要です。もちろん、実際にゼロデイエクスプロイトが行われる可能性を排除することはできませんが、これは、少数のステーキング攻撃者が攻撃を成功させるには、極めて高度な技術スキル、コンセンサスメカニズムの知識、そして運が必要であることを示しています。攻撃者の観点から見ると、最善の策はステーキングされた ETH をできるだけ多く蓄積することかもしれません。
サービス妨害攻撃 (Denial of Service)
イーサリアムの PoS メカニズムは、すべてのバリデーター セットから各スロットのブロック プロポーザーとなるバリデーターを選択します。これはパブリック関数を使用して計算でき、敵対者はブロック提案の少し前に次のブロック提案者を特定することが可能です。その後、攻撃者はブロックの提案者にスパムを送信して、ピアとの情報交換を阻止できます。ネットワークの残りの部分にとって、ブロック提案者はオフラインであるように見え、スロットは単に空になります。これは、特定のバリデーターがブロックチェーンに情報を追加できないようにするための検閲の一形態である可能性があります。攻撃者のコストはバリデーターの帯域幅に依存します。つまり、家庭用ステーカーに対してサービス拒否攻撃を開始する方が、産業グレードのハードウェアとインターネット接続を備えた専門家よりもはるかに安価であり、アマチュアは検閲に対してより脆弱になります。 。この問題にはいくつかの回避策がありますが、これらのスキームでは家族の利害関係者よりもプロのバリデーターが有利になります。たとえば、複数のノードを実行し、ブロック構築をネットワーク通信から分離すると、ノード ID とバリデータ ID が分離されるため、追加の保護層を提供できます。ノードランナーは、サービス妨害攻撃を回避するために、短期間に ID を切り替えたり、ID を再取得したりする場合があります。長期的には、シングル シークレット リーダー選挙 (SSLE) または非シングル シークレット リーダー選挙スキームを実装すると、バリデータによる検閲問題をより効果的に緩和できます。これは、ブロック提案者のみが自分が選ばれたことを知っており、その選択は事前には分からないためです。すべてのバリデーターは、繰り返しシャッフルされるプールにシークレットへのコミットメントを送信します。その後、接続が難読化されているため、ランダムなコミットメントが公的に選択され、選ばれたバリデーターのみに知られます。この研究はまだ実装されていませんが、研究開発が活発に行われている分野です。
検証者が管理する質権資本の割合が 33% 以上である
担保されたETHの管理を少数の人の手に集中させるよりも、より多くの人に分配する方が安全です。これは、管理するステーキングステークが多ければ多いほど、イーサリアムのコンセンサスに与える影響が大きくなるからです。このペーパーで言及されているすべての攻撃は、攻撃者が十分なステークを持っていて、各スロットでブロックを提案するためにより多くのバリデーターを選択する可能性がある場合に成功する可能性が高くなります。したがって、悪意のあるバリデーターの目的は、ステーキングされた ETH をできるだけ多く制御することである可能性があります。
ステーキングされた ETH の 33% は攻撃者にとってのベースラインであり、攻撃者がこの量を超える ETH を制御した場合、他のバリデーターのアクションをきめ細かく制御せずにビーコン チェーンがファイナライズされるのを防ぐことができます。彼らは単に一緒に消えることができます。これは、ビーコンチェーンを完成させるには、チェックポイントのペアを証明する 2/3 の ETH がステーキングされている必要があるためです。ステーキングされた ETH の 1/3 以上が悪意を持って証明されているか、証明されていない場合、2/3 の絶対多数は存在できません。これに対する防御策は、ビーコン チェーンの非アクティブ リーク メカニズムです。これは、ビーコン チェーンが 4 エポックの間完了に失敗した後にトリガーされる緊急の安全対策です。非アクティブなリークにより、証明に失敗したバリデータ、または大多数に反する証明をしたバリデータが特定されます。これらの非証明バリデーターが所有する誓約済みの ETH は徐々に失われ、最終的には全体の 1/3 未満を占めるようになり、ブロックチェーンが再び完成できるようになります。
非アクティブ リーク メカニズムの目的は、ビーコン チェーンを再度ファイナライズすることであり、攻撃者は約束された ETH の一部も失います。スラッシュ可能な攻撃がなく、攻撃するバリデーターが単純に証明に失敗すると仮定すると、その非アクティブスコアが更新され、非アクティブスコアがゼロに戻るまでバリデーターがエポックごとにペナルティを受けることをネットワークの残りの部分に示します。非アクティブ リーク メカニズムがアクティブな場合、エポックごとに非アクティブなバリデーター スコアが 4 ずつ増加し、アクティブなバリデーター スコアが 1 ずつ減少します。非アクティブ リーク メカニズムが非アクティブ化されると (そしてビーコン チェーンが再度最終化されると)、すべてのアクティブなバリデーターの非アクティブ スコアが減ります。長期間非アクティブだったバリデータの場合、消費する非アクティブ ポイントが多くなるため、これにはさらに時間がかかります。非アクティブ状態が続くと、非アクティブポイントの消費が遅くなります。バリデーターが 100 エポックオフラインの場合、その非アクティブ スコアは約 400 に達し、ペナルティ サイズは次のように計算されます。
非アクティブ スコア * バリデーター バランス / (非アクティブ スコア バイアス x 非アクティブ ペナルティ商)
inactivity_score * validator_balance/(inactivity_score_bias x inactivity_penalty_quotient)
ここで、非アクティブ スコア バイアスは、各エポックでバリデーターのスコアを増加させる数値であり、非アクティブ ペナルティ商は、非証明バリデーターの残高を初期値の 2 乗の約 60% に減らすのにかかる時間です。所要時間は約37.5日です。これは、攻撃者がファイナリティを証明できずにファイナリティを妨げる時間が長ければ長いほど、その賭け金がより多く燃やされることを意味します。 Ethereum のアップグレードでは、常にオフラインになっているバリデーターに対する短い (100 エポック、約 13.5 時間) のマイナスのペナルティ中およびその後のバリデーター残高の減少を推定するグラフが表示されます。 135 エポック後、バリデーターの残高は 32 ETH から 31.996 ETH に減少し、0.004 ETH の損失となりました。そして、攻撃者がステーキングされた ETH の 33% を制御するには、それぞれ少なくとも 32 ETH を保有する約 144,000 人のバリデーターを実行する必要があります。これは、ビーコン チェーンのファイナリティを遅らせる攻撃には少なくとも 0.004 x 144000 = 576 ETH のコストがかかることを意味します。現在の市場価格に換算すると、約 109 万ドルに相当します。 100 万ドル近くのコストがかかり、ビーコン チェーンのファイナリティを半日遅らせても、ビーコン チェーン自体には長期的な影響はほとんどありません。 (訳者注: 原文の数字はここで変更されています)
もちろん、ネガティブ ペナルティが長く続くと、より高価になり、実際、ビーコン チェーンが再び終了処理を開始するまで、ペナルティの大きさは二次関数的に増加します。ファイナリティを遅らせることによって攻撃者が受ける正確なコストは、攻撃者の初期残高、オフラインに留まる時間、ファイナリティを取り戻すまでにかかる時間によって異なります。しかし、肝心なのは、たとえバリデーターが削減されなかったとしても、バリデーターの 33% が継続的に非アクティブであることは非常に高くつくということです。
イーサリアムネットワークが非同期であると仮定すると(つまり、メッセージの送信と受信の間に遅延がある)、総ステークの 34% を制御する攻撃者はダブルファイナリティ攻撃を引き起こす可能性があります。これは、攻撃者がブロックプロデューサーとして選出される際に曖昧なまま、所有するすべてのバリデーターと二重投票を行う可能性があるためです。これにより、ブロックチェーンがフォークし、それぞれのステークされた ETH の 34% がフォークチェーンに投票する状況が生じます。各フォークでは、残りのバリデーターの 50% のみが両方のフォークに投票する必要があるため、超過半数の支持が得られます。この場合、両方のチェーンを最終決定できます (攻撃者のバリデーターの 34% + 66% の残りの半分 = フォークごとに 67% であるため)。競合する各ブロックは、誠実なバリデーターの約 50% によって受信される必要があるため、この攻撃は、攻撃者がネットワーク上でメッセージが伝播するタイミングをある程度制御でき、誠実なバリデーターの半分を各チェーンに到達できる場合にのみ実行可能です。 。これは、この攻撃がネットワークを非同期にする必要がある理由でもあります。すべてのノードがメッセージをすぐに受信すると、ノードは両方のブロックをすぐに認識し、先に受信したブロックを拒否することで曖昧さを処理します。攻撃者は、このダブルファイナリティ攻撃を達成するには、ステーク全体 (現在 1,400 万ステークの ETH の 34%) を焼き尽くす必要があります。これは、バリデーターの 34% が同時に二重投票を行うためであり、これは最大のスラッシュ可能な攻撃です。関連性ペナルティ。この攻撃を防御するコストは、約束された ETH の合計の 34% を破壊するという莫大なコストだけです。
このような攻撃から回復するには、イーサリアム コミュニティが帯域外で調整し、一方のフォークを無視して他方を無視することに同意する必要があります。このような社会的支援に関連する複雑さについては、後で説明します。
攻撃者は株式の約 50% を支配
理論的には、悪意のあるバリデーターがステーキングされた ETH の 50% を制御している場合、イーサリアム ブロックチェーンを同じサイズの 2 つのフォークに分割する可能性があります。前述のバランシング攻撃と同様に、攻撃者は同じスロットに 2 つのブロックを提案することで、バリデーターの 1 つだけを使用できます。その後、攻撃者は慎重にメッセージを送信してネットワークの半分を操作する代わりに、単純に 50% のステークをすべて使用して正直なバリデータ セットに反対票を投じることができ、それによって両方のフォークを維持し、ファイナリティを防ぐことができます。 4 エポックの後、各フォークはバリデーターの半分が証明に失敗したことを認識するため、両方のフォークで非アクティブ リーク メカニズムがアクティブになります。各フォークはバリデーターセット内の残りの半分のステークをリークし、最終的に 2/3 の超過半数を表す異なるバリデーターで完了する 2 つのチェーンが生成されます。現時点では、コミュニティの回復に頼るしか選択肢はありません。これについては後で説明します。ただし、正直なバリデーターの数やネットワーク遅延などの変動を考慮すると、敵対的なバリデーターのセットが常に合計ステークのちょうど 50% を制御する可能性は低いように思えますが、おそらく攻撃者がステーク % を悪用できる方法はあるでしょう。 、各スロットの投票率を動的に調整して、2 つのフォーク間の完璧なバランスを維持します。攻撃が成功するリスクは、攻撃者の手にあるステーキングされた ETH 比率が大きくなるほど増大することは間違いありませんが、ステーキングされた株式 50% に関連する攻撃ベクトルが悪用される可能性は低いと思われ、そのような攻撃を開始するには莫大なコストがかかります。成功率が低いため、合理的な攻撃者に対する強い阻害要因となっているようです。
また、攻撃者が管理するステークが 51% 以上を占める場合、フォーク選択アルゴリズムを制御できる可能性があります。この場合、攻撃者は多数決で証言することができ、誠実な顧客を騙すことなく短期的な組織再編を実行するための十分なコントロールを与えることができます。ステーキングのステークの 51% を制御しても、攻撃者は歴史を変えることはできませんが、自分に有利なフォークに多数決を適用したり、ブロックを再編成したりすることで、将来に影響を与える能力を持っています。誠実なバリデーターは、フォーク選択アルゴリズムでも攻撃者が好むチェーンを最も重いチェーンとして考慮するため、これに倣い、攻撃チェーンを完成させることができます。これにより、攻撃者は特定のトランザクションを検閲し、短距離の再編成を実行し、ブロックを有利に並べ替えることによって最大の MEV を抽出することができます。作業証明 (PoW) チェーンと同様、51% 攻撃は非常に問題があります。この問題に対する防御策は過半数の株式(現在 190 億ドル弱)という巨額のコストであり、ソーシャル層が介入して誠実な少数派をフォークする可能性があるため、攻撃者は大きなリスクに直面し、攻撃によってステークホルダーの約束された利益が大幅に減額されることになります。
攻撃者によって制御されているステーク率は 66% 以上です
ステーキングされた ETH の 66% 以上をコントロールしている攻撃者は、正直な検証者に強制することなく、優先チェーンを決定できます。攻撃者は、不誠実な圧倒的多数で投票できるという理由だけで、好みのフォークに単純に投票し、それを最終決定することができます。超過半数のステーカーとして、攻撃者は常に最終ブロックの内容を制御し、消費、ロールバック、そして再度消費する権限を持ち、特定のトランザクションを検閲し、意のままにブロックチェーンを再編成することもできます。追加の ETH を購入して 51% ではなく 66% のステークを制御することで、攻撃者は事実上、事後に再構築して最終的に逆転する (つまり、過去を変更し、未来を制御する) 能力を買収していることになります。ステークされたETHの66%を管理する現在のコストは約250億ドルで、ここでの唯一の防御策は、ソーシャルレイヤーにフォールバックして代替フォークの採用を調整することです。次のセクションでこれについて詳しく説明します。
レイヤー 0: 最後の防御線
ブロックチェーンのコード化された防御が侵害され、攻撃者が不正なブロックチェーンを完成させることができた場合、何が起こるでしょうか?
この状況はさまざまな方法で発生する可能性があり、最も顕著なのは、攻撃者がステーキングの株式の大部分を支配している場合であり、攻撃者自身の投票または 51% 以上の誠実なバリデーターによる追加の証明によって簡単に実行できます。 ETH が 34% のステークを制御し、ネットワーク上のメッセージングをある程度制御できるため、攻撃者は両方のフォークを完成させることができます。場合によっては、非アクティブなリーク メカニズムが原因で、再編成されたチェーンがファイナライズされることがあります。攻撃者がバリデーター セットを 2 つのフォークに分割することに成功した場合、非アクティブ リーク メカニズムが両方のフォークでアクティブになり、問題は、誠実または不正のどちらのバリデーターが最終性を取り戻すかということになります。正直なバリデーターが最初に決定した場合、正直なチェーンが正規チェーンとなり、ネットワーク上のすべてのクライアントのフォーク選択アルゴリズムがチェーンの最終化された部分を受け入れ、イーサリアムは正直なプレーヤーの制御下に戻ります。しかし、不正なバリデーターがブロックチェーンを完成させることに成功した場合、イーサリアムコミュニティは非常に困難な立場に陥ることになります。正規チェーンにはその歴史の中に不誠実な部分が含まれており、正直なバリデーターは最終的には罰せられることになります。
可能性の低い 3 番目のシナリオは、一方のフォーク上のバリデーターが何らかの理由でもう一方のフォーク上のバリデーターを認識しない、永続的なネットワーク分割です。これにより、独立して決定された 2 つのフォークされたチェーンが作成され、それぞれのチェーンで別のバリデーターのセットのステークされたステークがリークされます。この場合、2 つのチェーンは最終チェックポイントが異なるため、再構築されることはありません。支配的なクライアントからの (攻撃ではなく) 脆弱性も、壊れたものの最終的なチェーンにつながる可能性があります。イーサリアムの実行層に関しては、ゴーイーサリアム (Geth) クライアントが優勢であり、ノードの 85% 以上がそれを実行しています。コンセンサス層に関しては、現在 Prysm クライアントが優勢ですが、継続的なコミュニティ活動の後でもそのシェアは約 50% まで低下しただけです。ドミナント実行クライアントまたはコンセンサス クライアントの脆弱性により、ファイナリティが停止したり、不正なデータがファイナライズされる可能性があります。 Kiln テストネットでは、Prysm のバグがブロック生成に影響しました。これは、ノードが 4 つの異なるクライアントでほぼ同じシェアを持っているため問題ではありませんが、メインネットでは、66% 以上のクライアントが同じエラーに遭遇します。したがって、確率は非常に低いですが、不正なファイナライゼーション チェーンへのルートはいくつか存在します。これらはすべて、ETH をステーキングするための巨額の投資、またはバリデータ セットでの非常に複雑な操作を必要としますが、現時点では理想的な条件下でのみ実行可能であることが証明されており、これらの攻撃はすべてソフトウェア アップデートによって軽減されています。ただし、究極の解決策はソーシャル層(レイヤー0)に依存するケースも排除できません。
イーサリアムの PoS コンセンサスメカニズムの強みの 1 つは、コミュニティが攻撃者に直面してさまざまな防御戦略を採用できることです。最小限の対応は、追加のペナルティなしで攻撃者のバリデータをネットワークから強制的に削除することかもしれません。ネットワークに再侵入するには、攻撃者はアクティベーション キューに参加して、バリデータ セットが徐々に大きくなるようにする必要があります。たとえば、ETH ステーキング量を 2 倍にするのに十分なバリデーターを追加するには約 200 日かかります。つまり、攻撃者がさらに 51% の攻撃を試みるまでに、誠実なバリデーターが反応するまでに 200 日かかることになります。もちろん、コミュニティは、過去の報酬を取り消したり、攻撃者の賭け金の一部 (最大 100%) を燃やすなど、攻撃者をより厳しく罰することを決定することもできます。
攻撃者に課せられるペナルティに関係なく、コミュニティはまた、不誠実なブロックチェーン (たとえイーサリアム クライアントにコード化されたフォーク選択アルゴリズムによって好まれているブロックチェーンであっても) が実際に無効であるかどうかを共同で判断する必要があり、コミュニティは誠実な代替チェーン上に構築されるべきです。誠実なバリデーターは、コミュニティによって承認されたイーサリアムのフォークの上に構築することに集団的に同意できます。たとえば、正規チェーンは攻撃が開始される前にフォークされていた可能性や、攻撃者のバリデーターが強制的に削除された可能性があります。正直なバリデーターは、このフォークチェーン上に構築するよう奨励され、イーサリアム上に構築された取引所やアプリケーションは、正直なチェーン上に存在し、正直なバリデーターに従い、正直なブロックチェーンに組み込まれることを好むかもしれません。ただし、これは非常に厄介なガバナンス上の課題となるでしょう。一部のユーザーとバリデーターは、誠実なチェーンに切り替えることで間違いなく資金を失い、攻撃後に検証されたブロックトランザクションがロールバックされる可能性があり、それによってアプリケーション層が混乱する可能性があり、「コードは法律である」と信じがちなユーザーは完全にショックを受けます。さらに、抜け目や偶然によって不正なブロックチェーンから利益を得ている一部のユーザー、おそらくは機関ユーザーも、自分たちの利益を守るためにフォークに反対する可能性があります。適切に調整された緩和策を迅速に実行できるように、51% を超えるステーキング攻撃への対応をリハーサルするようコミュニティに呼びかけがありました。 Vitalik は Twitter だけでなく ethresear.ch でも良い議論をしました。
要約する

要約する
この記事では、イーサリアムがプルーフ・オブ・ステーク (PoS) コンセンサス メカニズムに統合された後、攻撃者がビーコン チェーンを攻撃する可能性のあるいくつかの方法を検討します。全体として、攻撃者が管理するETHの賭け金が多ければ多いほど、攻撃者の賭け金は将来のブロックの内容に影響を与えるために使用できる投票権に変換される可能性があるため、成功の可能性は高くなります。攻撃者が管理する担保ETHの割合が増加するにつれて、攻撃者が達成できる破壊力は大きくなります。
33%: ファイナリティの遅延
34%: ダブルファイナリティの結果
51%: 検閲、ブロックチェーンの将来を左右する
66%: 検閲、ブロックチェーン制御の過去と未来
少量のステーキングされた ETH の制御のみを必要とする、より洗練された攻撃もありますが、これらの攻撃では、誠実なバリデーターのセットを有利にするために、攻撃者がメッセージのタイミングをきめ細かく制御する必要があります。
全体として、これらの潜在的な攻撃ベクトルにもかかわらず、ビーコン チェーンのリスクは低く、同等のプルーフ オブ ワーク チェーンよりもさらに低いです。これは、攻撃者が投票権で正直なバリデーターを圧倒するために、ETH をステーキングするという莫大なコストを危険にさらす必要があるためです。組み込みの「アメとムチ」インセンティブ レイヤーは、特に賭け金の低い攻撃者に対して、ほとんどの悪意のある行為を防ぎます。実際のネットワーク状況では、バリデータの特定のサブセットへのメッセージングをきめ細かく制御することが困難であり、クライアント チームは既知の攻撃を簡単なパッチですぐに阻止しているため、より巧妙なバウンス攻撃やバランシング攻撃も成功する可能性は低くなります。の攻撃、バランス攻撃、および雪崩攻撃ベクトル。
34%、51%、または 66% の攻撃を解決するには、コミュニティの調整が必要になる場合があります。これはコミュニティにとって苦痛となる可能性がありますが、コミュニティがアウトオブバンドで対応できることは、攻撃者にとって強力な阻害要因となります。イーサリアムのソーシャル層は究極のバックストップであり、技術的に成功した攻撃でも、コミュニティが正直なフォークの採用に同意すれば阻止される可能性があります。最終的には、攻撃者とイーサリアム コミュニティの間で競争が発生し、それが十分に速ければ、66% 攻撃に費やされた 250 億ドルが、社会的連携攻撃の成功によって消え去る可能性があります。
攻撃者にとって、利益を得る可能性は十分に低いため、効果的な抑止力にはなりません。これが、価値観が一致した結束力のあるソーシャル層を維持することが暗号通貨投資にとって非常に重要である理由です。
元のリンク


