インフラアを破壊することで、基本的に全てのロールアップを破壊することができます。インフラアを破壊することで、基本的に全てのロールアップを破壊することができます。
イーサリアムではRollupを中心とした2.0ロードマップが確認されており、Rollupは注目の技術となっており、レイヤー2拡張の主流技術となっているとも言えます。ゼロ知識証明と組み合わせると、Rollup はレイヤー 2 テクノロジーのソリューションの達人になります。以下は、仮想ロールアップ攻撃について説明します。 White Plan チームが企画し、一部修正とコメントを加えています。副題
オプティミスティック ロールアップは、calldata を使用してイーサリアム ネットワーク上にブロック情報を保存することによって実行されます。このプロセスにより、誰でもイーサリアム ノードを操作し、ロールアップ状態をダウンロードできるようになります。しかし実際には、一部の人々は独自のイーサリアムノードを運用せず、代わりに保管ソリューション(Infuraなど)に依存しています。文章
有効なロールアップ チェーンを迅速かつ安価に構築したい場合は、トランザクションを実行し、状態を構築し、それをイーサリアム ネットワークの外部の別の場所に保存するだけです。ロールアップ コーディネーターがイーサリアム ノードから状態履歴を受け取ると、コーディネーターは状態トランザクションを再生することでデータが有効かどうかを判断できます。ただし、コーディネーターはその状態がチェーン上に存在するかどうかを確認できません。最善の方法は、イーサリアム ノードに問い合わせることです。Untrust というイーサリアム ノード サービスを想像してみてください。 Untrust は、イーサリアム DAPP に低コストのインフラストラクチャを提供します。信頼しないことを選択した場合は、特定のロールアップを調べて架空の歴史を作成できます。いくつかの実際のトランザクションから通信データを抽出し、それを仮想トランザクションと混合することで、半仮想履歴を作成することもできます。このようにして、現在の状態のまったく異なるハッシュが作成されますが、これは Untrust の Rollup オペレーターを使用してブロックが (チェーン上で) コミットされた場合にのみ発見されます (これは不正になります)。このタイプの攻撃はそれほど強力ではありません。攻撃者は署名を偽造したり、資金を直接盗んだりすることはできませんが、ロールアップでの活動について嘘をつくことができます。Untrust がさらに複雑になることを想像してみてください。彼らはMoneyMoverと呼ばれるロールアップを攻撃することにしました。MoneyMover アドレスのリクエストを受信すると、完全に別の Ethereum ネットワークを実行しているノードから情報が返されます。この別個のイーサリアム ネットワーク上で、Untrust はほとんどのトランザクションをミラーリングし (アカウント残高を同様に見せます)、必要に応じて独自の (偽の) トランザクションを挿入します。ここで、Untrust が MoneyMoverRollup で支払うサイトを見つけたとします。このサイトは、Untrust を接続してイーサリアム ネットワークにアクセスする独自の MoneyMover コーディネーターを実行しています。Untrust はミラー ネットワーク上で架空の取引を行い、サイトが運営する MoneyMover コーディネーターによって有効な支払いとして検出されました。 Untrust は現在、料金を支払わずにサイトへのアクセスを提供しています。ウェブサイトは、トランザクションを送信するか、他のイーサリアムプロバイダーに切り替える(つまり、他のノードとデータを同期する)場合にのみ、この架空の支払いを発見します。副題
上記の攻撃は、コーディネーターが独自の Ethereum ノードを実行していない場合にのみ意味があります。これが問題となる状況がいくつかあります。1. コーディネーターのデータの下流のコンシューマーは、受信したデータが (オンチェーンに) 存在するかどうかを知る方法がありません。また、コンシューマーはそのノードを自分で実行していないため、コーディネーターが使用している eth ノードを信頼できません。2. 不正証明者 (悪意のあるトランザクションを証明する当事者) は、不正が検出された場合にのみトランザクションを送信するため、この攻撃に対して特に脆弱です。悪意のある eth ノードは、ブロックチェーン データから無効なトランザクションを削除し、単に異なる状態ハッシュを返す可能性があります。不正証明者は、状態ハッシュが捏造されていることを知る方法がなく、不正行為を行うことはありません。3. eth ノードのオペレーターは、ロールアップ コーディネーターに嘘をつき、無効な状態のトランザクションまたは無効な詐欺の申し立てを送信させるように騙します。これが起こると、悪意のあるイーサノードオペレーターが効果的な取引相手として行動し、ステークされた資金を集めることができます。プルーフ・オブ・ワーク・チェーンのコンテキストでは、コーディネーターはブロック・データを要求し、それが十分に難しいかどうかをチェックできます。現在の難易度の少なくとも半分をチェックすると、ほとんどの攻撃が経済的に不可能になるはずです。プルーフ・オブ・ステーク・チェーンでは、悪意のある eth ノードが投票されていないアドレスから署名を提供する可能性があるため、このプロセスは実行不可能になります。これは、クエリ時に担保金額を差し入れることで実現できます。あまり洗練されていない解決策は、信頼できるノードに継続的に署名し、チェーン上にすでに存在するロールアップ状態ハッシュのリストを公開することです。リストは IPFS などのサービスで公開できます。コーディネーター ノードには、既知の信頼できる公開キー (Rollup Creator、EF など) のプリセット リストを含めることができます。コーディネーターは、次の場合にロールアップ データが本物であることを認識します。1. すべてのステータス トランザクションが有効です。2. すべての状態ハッシュは信頼できるソース (ノード) によって署名されます。これにより、ロールアップ データが有効かつ架空のものであることが保証され、ロールアップ ノードが任意のイーサリアム ノードを使用してデータを同期できるようになります。以上が「jchancehud」で議論されているRollupセキュリティ攻撃の可能性です。主な理由は、Rollup がオフチェーン状態であり、多くの状態で情報の同期が遅れやすいためです。「jchancehud」によると、オフチェーン状態が有効であるかどうかを確認する必要がある当事者は、同期を行う必要があるとのことです。他のイーサリアムフルノードのデータを確認する 最終的にはセキュリティのために、これは多くのプラットフォームでイーサリアムノードを実行する必要があることを意味します。上記の仮想攻撃手法について、イーサリアムのレイヤー2ソリューションチームSKALE Labsの最高技術責任者である「コンスタンティン・クラドコ」氏は、「これは本当に興味深いですね!インフラアを破壊することで、基本的にすべてのロールアップを破壊できることが示されていると思います。」と述べています。 」もちろん、これは Infura を介してイーサリアムと通信する製品を表します。Infura は大規模なイーサリアム ノード サービスを引き受けています。また、Infura がイーサリアム ネットワークにおける最大の単一脆弱点になるかどうかについても議論されています。この単一点のセキュリティ リスクについては、可能な限り回避するために、主にマルチノードの負荷分散方式で処理されます。「jchancehud」の議論に関して、最も興味深いのは、開発者「adlerjohn」が、この仮想「攻撃」は楽観的なロールアップだけでなく、zkRollup、そして実際にはあらゆるスマートコントラクトにも適用できるようだと提案したことです。したがって、「adlerjohn」は、ビットコイン ホワイト ペーパーのセクション 8 で、情報が正しいか間違っているかを検証する方法、つまり検証者が最長のチェーンを決定し、その最長のチェーンを信頼する方法があることを提案しました。このスキームは、Sybil ノードが誤った情報を提供するのを防ぐために使用できます。正直に言うと、ほとんどの計算は必要ありません。
画像の説明
さらに、「adlerjohn」は、Rollup のステート ルートをイベントとして送信でき、イーサリアムのステートに保存することもでき、偽造トランザクションのクエリも実行できることを提案しました (たとえば、ビットコイン ホワイト ペーパーのセクション 7 には、次のように示されています)ブロックヘッダーを検証することで確認できること)。
画像の説明
Plan Bai へのメモ: 実現可能な最小限の合併コンセンサスの解釈については、次のリンクを参照してください。しかし、「adlerjohn」によって提案された方法を使用することは、設計がより困難になることが予測されます。ディスカッションの最後に、「jchancehud」は「adlerjohn」に対し、この攻撃予測が ZKRollup に適用できるかどうかは不明であると回答しました。しかし、ZK 証明は生成するのが難しいため、少なくともより困難になるでしょう。ロールアップをこのように考えることは、ロールアップが広く採用されるようになった場合に特に重要です。ロールアップ コーディネーターは、ノードを使用する前にノード内のすべてのブロック ヘッダーを検証できます。これは、時間と帯域幅のコストがかかりますが、もう 1 つの潜在的なソリューションです。しかし、ユーザーは信頼できるとわかっているイーサライトノードを実行する方が良いでしょう。ライト ノードを実行すると、検証の問題が解決された場合にイベントをクエリすることもできます。ディスカッションの最後には、セキュリティ、スケーラビリティ、効率性を達成するために、エンジニアリングの考え方に従ってこれらのソリューションを試すことができますが、議論のアイデアが異なるため、実装プロセスが困難であることがわかります。開発者は最後にコードを合成する必要があり、ネットワーク構造、クライアント、言語、操作インターフェイスなど多くの課題が含まれます。