イーサリアムの無秩序時代が到来:MEVは一般ユーザーの利益を損なうのか?
この記事はEthereum愛好者に掲載され、著者:Kai。
ある状況を想像してみてください:ユーザーがAMMタイプのDEXで取引を行うと、スリッページをどのように設定しても、最終的には受け入れ可能な最悪の価格で取引が成立します。これはユーザーにとって非常に恐ろしいシナリオかもしれません。
TLDR;
現在のMEV-Geth実装メカニズムは、ネットワーク内で期待される取引の順序規則を変更し、多くの考えさせられる公開公正性の問題を引き起こし、エコシステム内のユーザーに利益を損なう可能性があります。
Ethereumネットワークの取引プールのネイティブルール
現在のEthereumネットワークでは、ユーザーがネイティブな方法で取引を送信すると、その取引はEthereumの全ノードで構成されたピアツーピアネットワーク全体に伝播し、取引内容は完全に透明です。つまり、ネットワーク内の任意の全ノードが大部分の取引内容を見ることができるということです。
これにより、Ethereumネットワークでは取引送信者の期待や体験を損なういくつかの状況(通常は何らかの「攻撃」と見なされる)が発生します:
フロントランニング(front-running):特定の取引をターゲット取引(攻撃された取引)の前に同じブロック内で配置することで利益を得ること。主に清算やアービトラージ取引を対象とします。
バックランニング(back-running):特定の取引をターゲット取引の後に同じブロック内で配置することで利益を得ること。典型的な対象は情報入力メカニズム(オラクル)取引や大口取引です。
サンドイッチ攻撃:上記の2つの攻撃形式を組み合わせ、ターゲット取引がちょうど2つの特定の構造取引の間に挟まれることで利益を得ること。サンドイッチ攻撃は攻撃の範囲を大幅に広げ、普通のAMM DEX取引でさえも攻撃の対象になる可能性があります。攻撃者の最初の構造取引はより大きな取引価格の変動を引き起こし、ターゲット取引が実行された後にすぐに2番目の構造取引を実行し、攻撃を行ったトークンを取り戻して利益を得ます。
攻撃の対象は不確定です。理論的には、あなたの取引内容を知っているすべての人があなたを攻撃する可能性があります。dAppプロジェクトの運営者、専門の攻撃者、ウォレット、マイニングプールなど、すべてがあなたを攻撃する可能性があります(「責任追及可能性」がありません)。
攻撃の難易度は、ネットワークのコンセンサスルールやエコシステム内で一般的に利用可能なインフラストラクチャに関連しています(攻撃の難易度、「応答性」)。例えば、皆が現在の取引プールのルールを完全に遵守し、Gas Priceを通じてのみ出塊者の取引の順序に影響を与える場合(出塊マイニングプールが業界の自律を守ることを要求)、サンドイッチ攻撃は比較的難しいです。
現在、マイナー-マイニングプールは、自分がパッケージ化するブロック内の取引の実行順序を直接決定できるため、最も攻撃を行う可能性のある参加者と見なされています。これが「MEV」(マイナーが取引の順序付け能力によって得られる利益)という概念の由来です。しかし、実際には攻撃の機会は一定の時間的制約があり、瞬時に消失する可能性があるため、攻撃者とマイニングプールはより分配の協力関係を示すことが多いです。
これらの背景が、私がMEV-Gethや他の形式のマイニングプールが直接サンドイッチ攻撃を行う現象に不安を感じる理由です。
現在のMEV-Geth実装
現在のMEV-Geth実装(2021年4月10日現在)の機能は、ネットワーク内のMEV機会を検索する検索者(Inspect)、原子取引パッケージを登録されたマイニングプールノードに転送する(Relay)、出塊ノードが割り込みを許可する(MEV-Gethクライアント)というものです。登録されたマイニングプールとRelayサーバー間の単純なネットワークを構築しています。
MEV-Gethは特別にカスタマイズされたEthereumノードクライアントで、マイニングプール側で実行され、このクライアントを通じてRelayが配布するMEVバンドルを保存し、これらの特別な取引をブロックのキューの先頭にパッケージ化することを許可します。
ユーザーはMEV-Gethを使用して「バンドル」と呼ばれる取引パッケージをブロードキャストできます。1つのバンドルには、取引リスト(送信者がブロックチェーンに上げたい数件の連続取引を示す)、アービトラージ計算ブロック高、最小最大タイムアウト時間が含まれています。単一のバンドルが上链されるブロック内で、送信者はコインベース取引(Gas Priceではなく)を通じて、出塊者(つまりマイニングプール)にETHを支払い、手数料を支払います。
現在のMEV-Geth実装では、各ブロックには1つのバンドルしか存在できないため、出塊者はコインベースの支払いが最も大きいバンドルを選択して上链します。
この現在の実装は、サンドイッチ攻撃の実施の難易度を簡素化しています。一方で、攻撃者はサンドイッチ取引の前後の関連を明示的に宣言できます。さらに、サンドイッチ者は後ろを気にする必要がなく、他のサンドイッチ者との上链競争に敗れた場合でも、その取引はMEV-Relayネットワーク内でタイムアウトして無効になり、Gas費用を支払う必要がありません。
Flashbotsチームの公開声明によれば、彼らは同じブロックに複数のバンドルを含めることを許可するソリューションを開発中であり、私たちはすぐにブロック内に大量のゼロGas費用のサンドイッチ攻撃が充満するのを見るかもしれません。
MEV-Geth取引の発見
現在の実装に基づくと、MEV-Geth取引の最も顕著な特徴は、前後の2つのサンドイッチ取引のGas Priceが両方とも0であることです。
ブロックエクスプローラーサイトetherchain.orgを開き、任意のブロックの取引リストを確認します(このリストはブロック内の取引の実行順序を反映しています)。リストの先頭にサンドイッチ攻撃が現れ、サンドイッチ取引のGas Priceが0であれば、これはMEV-Gethを通じて発起されたバンドルである可能性が高いです。
- 12200018高のブロックのリストの先頭 -
- あるサンドイッチ取引の全過程 -
ネットワークはMEV-Gethを全面的に展開
現在のMEVの状況は、0ガス価格でガス使用量が21000を超える取引をクエリすることで得られます。具体的には、私が一時的に作成したduneダッシュボードを参照してください:
図からわかるように、多くのマイニングプールが参加しており、毎日3500件以上のMEV関連取引があり、約1000件以上のMEV取引が発生しています。平均出塊時間が12秒と仮定すると、毎日7200(60x60x24/12)個のブロックが存在し、つまり毎日約1/3のブロックにMEV-Geth取引が存在します。まだMEV-Gethを使用していないマイニングプールもあり、アービトレーターはこの新しい競争モデルに切り替えていません。
異なる環境下でのゲーム理論
いくつかの取引プールの運用状況を比較することで、ユーザーが何を得て、何を失ったのかを理解できます。
公開ゲーム状態
ネットワークがネイティブな状態に戻り、出塊者が業界の自律を守る場合、すべての取引が公開され、誰でもノードを構築するかノードサービスを通じて未パッケージ化の取引を発見できます。したがって、特定の取引をサンドイッチ攻撃したい場合は、2つの取引を送信し、Gas Priceを攻撃された取引の前後に設定してサンドイッチの順序を保証し、競争がある場合は成功率を高めるために複数のコピー取引を送信し、最後に任意の取引が実行に失敗した場合はマイナー費用を支払う罰則に直面する必要があります。
ユーザー側から見ると、皆が平等で公開された環境にいるため、自分の取引がサンドイッチ攻撃やフロントランニングに遭遇した場合、潜在的な損失を避けるためにその取引を加速またはキャンセルする機会や方法があります。
さらに、最終的に形成されたブロックは、取引プール競争の勝者を示すだけでなく、取引プール競争の実際の状況を真に反映します。
プライバシー取引サービス
ここでの「プライバシー取引」とは、マイニングプールが専用のチャネルを開設し、そのチャネルを通じてマイニングプール取引プールに入る取引が外部にブロードキャストされないが、依然としてGas Priceの高い順に取引をソートしてパッケージ化することを指します。
一般ユーザーがプライバシー取引サービスを使用する際、その取引は外部に公開されないため、マイニングプールが自らの秘密保持の約束を破ったり攻撃に参加しない限り、ユーザーは上記の攻撃を受けることはありません。
さらに考えると、攻撃者がプライバシー取引サービスを通じて公開可能な取引を攻撃した場合、攻撃された側は事態が発生することを発見できず、対応することができません。しかし、サンドイッチ攻撃は依然として取引ルーティングと取引プールのソートのランダム性に制約されており、容易には実施できません。
また、複数の人が同じ利益機会を競争する場合、マイニングプールが相互に競争する取引を開示しない限り、彼らは競争相手の入札を理解できず、盲目的に価格を出してソートキューに入れることになり、攻撃コストと難易度が相対的に上昇します。
さらに、最終的に形成されたブロックは、取引プール競争の全体の状況を真に反映し、外部から成功や失敗、その理由を観測できます。
もしMEV-Gethが主流になった場合
MEV-Gethが登場した後、アービトレーターやフロントランナーは、アービトラージ可能な取引やサンドイッチ可能な取引をこのネットワークに提出して入札し、マイニングプールに利益を最大化するバンドルを選別し、次のパッケージ化されるブロックに優先的に実行されるようにします。これにより、パッケージ化された取引は100%の成功率を達成できます。
現在、あなたもMEV-Gethノードを展開している場合、バンドルの内容はあなたにとって透明です。したがって、誰かがあなたを攻撃した場合、あなたも迅速に対応できます。
しかし、もしあなたがMEV-Gethが何であるかを知らない場合、あなたの状況は誰かがプライバシー取引を使ってあなたを攻撃するのと同じです。さらに悪化するのは、攻撃者の確実性が大幅に向上し、攻撃プロセスの入札も知ることができないため、形成されたブロックは勝利した取引のみを公開し、競争のプロセスは公開されません。
Flashbotsは、これがネットワークにもたらすいくつかの利点があると考えています:アービトレーターの競争ゲームのプロセスが別のネットワークに移動することで、Ethereum P2Pネットワークの負担を軽減できる;勝者のみがブロックスペースを占有することで、ブロックの混雑を緩和できる。subreddit/EtherMiningで現在のブロック内の追加利益状況を示す報告が発表されていますが、長期的にはマイナー費用の減少による総収入の減少に追いつかないかもしれません。より多くの長期データの追跡研究が必要です。
非中央集権のビジョン
元々のネットワークのコンセンサスの期待は、Ethereum DeFiユーザーとフロントランナーが同じルールの下にあり、競争のプロセスと結果もブロック内で透明に公開されることでした。マイニングプールの介入により、事態はより複雑になり、プライバシー取引とMEV-Gethは、ネットワークの基盤が上層業務に明確に介入し始めることを意味します。そして、MEV-Gethは様々な利点を用いてユーザーに対するサンドイッチ攻撃を正当化し、入札プロセスを外部から観測できないネットワーク内で発生させ、ネットワークの運用プロセスが不親切で不透明になっています。
私はいくつかの質問があります:
マイニングプールは算力を提供するマイナーの利益を考慮して、現在の段階のMEV-Gethを展開してより多くの利益を得ることは、無理もないかもしれません。しかし、これは非中央集権とネットワークの公開公正に合致するのでしょうか?
Flashbotsは以前にEthereumのオープン性と非中央集権を保護することを約束しましたが、現在のMEV-Gethのプライバシー性と公開オークション競争の問題が解決されていない状況で、現在のネットワークに展開するのは適切なタイミングでしょうか?
マイニングプール(マイナー)の順序付け権から派生するスーパー能力は、非中央集権ネットワークでは排除できないかもしれません。つまり、MEVは客観的に存在する事象です。しかし、MEV-Gethの出現によりMEVの悪用がより便利になり、ユーザー取引を攻撃する正当な口実となることは、長期的に悪影響を及ぼすのでしょうか?
コミュニティ内でもMEVやMEV-Gethの実装に関する議論が多く、いくつかの声は懸念を示しています:
- コーネル大学の教授Ari JuelsがCoinDeskに発表した「Miners, Front-Running-as-a-Service Is Theft」
- Offchain Labの共同創設者Ed Feltenが発表した「MEV auctions considered harmful」。この論文はこの問題に対するものではなく、オークションで1日の順序権を販売する方法に反対しています。Vitalikはこれに対する応答を発表しています。
- Ethereum Researchフォーラムのユーザーpmcgoohanが発表した「MEV Auctions Will Kill Ethereum」
- ParamdigmのパートナーCharlie Noyesが発表した「MEV and Me」でも「MEVはユーザーに害を及ぼす、MEVはEthereumに害を及ぼす」と述べています。
Ethereumが世界全体の金融基盤プラットフォームになることを目指すのであれば、ユーザー資産の安全性と取引順序の公正性(ランダム性)を維持することが非常に重要です。すべての参加者はマイナー費用の入札ルールに従ってパッケージ化キューの位置を競争し、実行に失敗すると支払ったマイナー費用を失います。マイニングプールはパッケージ化の過程で取引内容を完全に無視し、マイナー費用の高低のみで取引を順序付け、ネットワークの検証者とアプリケーション参加者は隔離され、互いに干渉しません。
MEV-Gethの全面的な展開とマイナーによるEthereumネットワークのアプリケーション層への徐々に侵入は、私に何かおかしいと感じさせます。週末の2日間、考えたり資料を調べたりした結果、最終的にこの内容を書きました。この問題がEthereumに深遠な影響を与える可能性があることを多くの人に考えてもらえればと思います。また、内容の校正を手伝ってくれた友人たちに感謝し、特に阿剣先生には論理や順序についての質問を通じて記事の内容をより良くしてくれたことに感謝します。