MEV、MEV-Boost、MEV報酬

前のセクションでは、node operatorがpriority feeを獲得する方法について学びました。 Priority feeはnode operatorの収入を大幅に増やすものですが、Execution layerで利用可能な流動報酬の唯一の形態ではありません。 MEV報酬として知られる補助的な形態の報酬が利用可能です。

NOTE

ここで簡単におさらいすると、異なるタイプの報酬とそれらが提供されるレイヤーの内訳は以下の通りです。

  • Consensus Layer(出金までロック): アテステーション、ブロック提案、sync committee、スラッシング報告
  • Execution Layer(流動): ブロック提案からのpriority feeとMEV

MEVとは

バリデーターがブロックを作成する際、通常は非常にシンプルなアルゴリズムを使用します。保留中のトランザクションのリストを追跡し、構築しているブロックにできるだけ多くのトランザクションをバンドルし(最も高いチップを持つものを優先)、そのブロックをチェーンに送信します。

しかし、Ethereumネットワークのユーザーは、公開されている保留中のトランザクションのプール(mempoolとして知られる)を見ることができることの興味深い副作用を発見しました。 この知識により、トランザクションの順序を変更し、場合によってはそれらの間に新しいトランザクションを導入する、巧妙で洗練されたアルゴリズムを採用できるようになりました。 これら2つの技術を組み合わせることで、ブロック提案から追加のETHを抽出できます。

この追加のETHは、Maximal Extractable Value、略してMEVとして知られています。

一般的に、MEVには2つの「フレーバー」があります。

  • 大規模な買いまたは売りの後、取引所間で最初にアービトラージを行うなど、「良性の」ソースから来るMEV
  • Ethereumユーザーのトランザクションをフロントランニングし、ユーザーの結果としてのスリッページから利益を得ることで、Ethereumユーザーの犠牲の上に成り立つMEV(この技術の詳細については、Sandwich Attacksを参照してください)

Block BuilderとRelay

MEVの機会を見つけることは簡単なことではありません。最先端の機会発見者はsearcherとして知られており、非常に強力なコンピューターを必要とし、複雑なAIアルゴリズムを採用して、迅速にMEVを特定して抽出します。 Searcherはこれらの機会を取得し、block builder(searcher自身または他の当事者である可能性がある)に提供します。block builderは、これらの機会のバンドルを集約して完全なEthereumブロックを形成するエンティティです。

収益性の高いsearcherを実行するためのハードウェアとソフトウェアの要件により、ほとんどのnode operatorはそれらを使用すること(または少なくとも競争力を持って使用すること)ができず、したがって独自のMEV機会を見つけて活用することができません。 幸いなことに、単にMEV機会を見つけることは方程式の半分に過ぎません。

各Epoch(6.4分、または32スロット)ごとに、Beacon Chainはアクティブなバリデーターの全リストからランダムにバリデーターを選択して、そのEpochのスロットの1つに収まるブロックを提案します。 このリストは、次の今後のEpochについて確認でき、つまり、各スロットにどのバリデーターが割り当てられているかを数分前に全員が確認できます。

一部の賢いエンティティは、この事前知識を活用して、ある種の「マーケットプレイス」のようなものを構築しました。 このマーケットプレイスでは、バリデーターは今後のブロック提案がある際に自分自身を登録でき、block builderはバリデーターに提案してもらいたいブロックの入札を提出できます。 これらの入札は常に、ブロック内の各トランザクションからのpriority feeを提案者に提供し、さらに、builderが自分自身のために抽出できたMEVから提案者への補助的なチップを提供します。

バリデーターはこれらの入札を調査し、最終的に最も利益をもたらすものを決定し、自分でブロックを構築する代わりにそのブロックを提案できます。

block builderがバリデーターとやり取りするこの「マーケットプレイス」は、relayとして知られています。 異なるrelayには異なるルールがあります(block builderから許可する前述の「フレーバー」のMEVや、特定の政府制裁規制に準拠するかどうかなど)が、最終的にはすべて同じマーケットプレイス機能を果たします。

Rocket Poolは現在、node operatorに複数の異なるrelayへのアクセスを提供しています。

名前規制MEVタイプ
FlashbotsOFAC制裁に準拠*すべてのタイプ
bloXroute Max ProfitOFAC制裁に準拠*すべてのタイプ
bloXroute RegulatedOFAC制裁に準拠*すべてのタイプ
Ultra Sound規制なしすべてのタイプ
Ultra Sound FilteredOFAC制裁に準拠*すべてのタイプ
AESTUS規制なしすべてのタイプ
Titan Global規制なしすべてのタイプ
Titan RegionalOFAC制裁に準拠*すべてのタイプ
BTCS OFAC+OFAC制裁に準拠*すべてのタイプ
NOTE

*OFAC制裁に準拠するrelayは、米国財務省外国資産管理局(OFAC)が維持しているアドレスのブラックリストに従います。 OFAC制裁、ネットワーク検閲についてさらに読み、それらの制裁に準拠すべきかどうか、およびどのrelayの使用に快適であるかについて、慎重に情報に基づいた決定を下すことを強くお勧めします

詳細については、以下のような記事をご覧ください。

各relayの相対的な市場シェアとブロックあたりの平均チップを調べることに興味がある場合は、https://www.mevboost.org/をご覧ください。 このサイトは、さまざまなMEV relayに関する多くの指標を捉えているため、relayの人気と収益をよりよく理解できます。

MEV-Boost

多くのrelayが存在し、ノードがそれぞれに自動的に登録して連絡を維持することは負担の大きいタスクになる可能性があります。 幸いなことに、Flashbotsのエンジニアは、このrelay管理を処理するために明示的に設計されたMEV-Boostとして知られるプログラムを作成し、維持しています。

MEV-Boostはシンプルなプログラムです。使用したいrelayを指定し、Consensusクライアントに到達方法を指示すると、Consensusクライアントと連携して、すべての登録、入札、blind署名、提案管理を処理します。 これにより、このbuilder-proposer-marketplaceに受動的に参加でき、したがってあなたの側で労力をかけずに追加の報酬を獲得できます。

MEV-Boostはオープンソースであり、監査済みです。

以下は、MEVエコシステム全体がどのように機能するか、およびMEV-Boostがどこに適合するかを視覚的に示した良い図です。

画像提供: Flashbots

Rocket Pool Smartnodeには、デフォルトでMEV-Boostが直接バンドルされており、Docker ModeおよびHybrid Modeのnode operatorがシームレスに利用できるようになっています。 Native Modeユーザーは、手動で設定する必要があります。

Rocket PoolとMEV

Rocket Poolのバリデーターは、rETHステーカーによって部分的に資金提供されているため、プロトコルでは、MEV報酬(およびpriority fee)をrETHステーカーと共有することが求められます(もちろん、node operatorの手数料を差し引いたもの)。 Node operatorは、Rocket Poolのバリデーターで提案する際に、MEV報酬全体を自分でポケットに入れることは許可されていません。

そのため、MEV-Boostはいくつかの理由でRocket Poolネットワークの重要なコンポーネントです。

  • MEV relayのネットワークへの簡単なアクセスを提供します
  • Node operatorが独自のブロックを構築していないことを保証します。これは、node operatorが独自のsearcherを実行し、rETHステーカーと共有せずにMEVを盗んでいないことを確保するために重要です
  • rETHステーカーの全体的な収益を増やし、プロトコルを他のより中央集権的なステーキングプロバイダーと競争力のある状態に保ちます

ここでの2番目のポイントは重要です。Rocket Poolはプロトコルとして、最終的にTrusted Block Builder(より正確には、Trusted Relay)設計に依存して、rETHステーカーが常にMEV報酬とpriority feeの公平な分け前を受け取ることを保証します。

上記のrelayのそれぞれは現在、この役割を果たしています。

私たちは、Trusted Block Builder設計への移行に向けて3段階のアプローチを取っています。

フェーズ1: オプトイン

フェーズ1では、MEV-Boostはすべてのnode operatorにオプトイン構成として提供されます。 Node operatorは、rETHの収益を改善し、プロトコルを競争力のある状態に保つため、その使用が奨励されますが、使用は必須ではありません。 Node operatorは、上記の信頼できるrelayの1つ以上を使用することを選択できますが、カスタム(信頼できない)relayは使用できません。

このフェーズは2022年11月に終了しました。

フェーズ2: オプトアウト

フェーズ2では、MEV-Boostはデフォルトですべてのnode operatorに対して有効になっています。 Node operatorは、上記の信頼できるrelayの1つ以上を使用することを選択できますが、カスタム(信頼できない)relayは使用できません。 MEV-boostをオプトアウトすることを選択するnode operatorは、Smartnodeを起動する前に明示的にそうする必要があります。

これが現在のフェーズです。

フェーズ3: 必須

フェーズ3では、MEV-Boostはオプションではなくなります。すべてのnode operatorに必須になります。 Node operatorは、上記の信頼できるrelayの1つ以上を使用する必要がありますが、カスタム(信頼できない)relayは使用できません。

現在、このフェーズには予定日はありません

SmartnodeでのMEV-Boostの設定

MEV-Boostを設定する方法を学ぶには、使用しているモードを以下から選択してください。

Docker Mode
Hybrid Mode
Native Mode

SmartnodeのConfiguration TUIを使用すると、MEV-Boostの設定は簡単です。 rocketpool service configを実行し、MEV-Boostオプションに移動してください。

Enable MEV-Boostというラベルの付いたボックスをチェックして有効にします。

有効にすると、画面は次のようになります(Smartnode v1.17.2以降)。

以下は各オプションの説明と使用方法です。

  • MEV-Boost Modeボックスでは、Rocket Poolが管理するMEV-Boostインスタンスと、自分で管理する外部インスタンスを切り替えることができます。これは、すでにMEV-Boostを設定しており、Rocket Poolに2つ目のコピーを実行させる代わりに単にそれを使用したい上級ユーザー向けです。通常のDocker Modeユーザーは、これをLocally Managedに設定したままにしておく必要があります。

  • Selection Modeボックスでは、Profile ModeRelay Modeを切り替えることができます。

  • Profile Modeがデフォルトです。これにより、「プロファイル」に基づいて有効にするrelayを選択できます。relayのプロファイルは、以下の選択肢で構成されます。

  • 規制されている(OFAC リストなどの政府制裁リストに準拠し、特定のアドレスをブラックリストに登録する)か規制されていない(ブラックリストに基づいてトランザクションを_検閲しない_)か

  • すべてのタイプのMEVを許可するか、sandwichアタックやEthereumユーザーのフロントランニングを含むバンドルを明示的に禁止するか

  • 複数のプロファイルを選択できます。

  • 選択した各プロファイルには、それに準拠するrelayのセットがあり、説明ボックスにリストされています。そのプロファイルを有効にすると、それらのすべてのrelayが有効になります。

  • 上級ユーザーは、これをRelay Modeに変更できます。これにより、使用したいrelayを明示的に選択できます。

  • Portボックスは、Docker modeユーザーにとって重要ではありません。

  • Expose API Portボックスは、Docker modeユーザーにとって重要ではありません。

  • Container Tagボックスは、FlashbotsがSmartnodeアップデートでリリースされる前に使用したい新しい優先度の高いバージョンをリリースした場合に、Smartnodeが実行するMEV-Boostのバージョンを手動でアップグレードするのに役立ちます。

  • Additional Flagsボックスは、MEV-Boostコンテナに追加の構成フラグまたはパラメーターを直接追加したい場合に使用します。通常、役に立ちません。

MEV-Boostを有効にし、使用したいrelayを有効にしたら、保存して終了するだけです。 Smartnodeは関連するコンテナを再起動し、すべてを自動的に設定します。

期待通りに動作しているかどうかを確認する方法については、以下を参照してください。

MEV-Boostのログの確認

MEV-Boostのログを確認するには、以下のコマンドを実行します(Docker Modeユーザーおよびローカルで管理されているコンテナを持つHybridユーザー向け)。

rocketpool service logs mev-boost

出力には、有効にしたrelay、それらの接続ステータスが表示され、Beacon Nodeからのトラフィックのリッスンを開始します。

mev-boost_1      | time="2022-09-28T22:02:06Z" level=info msg="mev-boost v1.3.1" module=cli
mev-boost_1      | time="2022-09-28T22:02:06Z" level=info msg="Using genesis fork version: 0x00000000" module=cli
mev-boost_1      | time="2022-09-28T22:02:06Z" level=info msg="using 4 relays" module=cli relays="[{0xac6e77dfe25ecd6110b8e780608cce0dab71fdd5ebea22a16c0205200f2f8e2e3ad3b71d3499c54ad14d6c21b41a37ae https://0xac6e77dfe25ecd6110b8e780608cce0dab71fdd5ebea22a16c0205200f2f8e2e3ad3b71d3499c54ad14d6c21b41a37ae@boost-relay.flashbots.net?id=rocketpool} {0xb0b07cd0abef743db4260b0ed50619cf6ad4d82064cb4fbec9d3ec530f7c5e6793d9f286c4e082c0244ffb9f2658fe88 https://0xb0b07cd0abef743db4260b0ed50619cf6ad4d82064cb4fbec9d3ec530f7c5e6793d9f286c4e082c0244ffb9f2658fe88@bloxroute.regulated.blxrbdn.com?id=rocketpool} {0x9000009807ed12c1f08bf4e81c6da3ba8e3fc3d953898ce0102433094e5f22f21102ec057841fcb81978ed1ea0fa8246 https://0x9000009807ed12c1f08bf4e81c6da3ba8e3fc3d953898ce0102433094e5f22f21102ec057841fcb81978ed1ea0fa8246@builder-relay-mainnet.blocknative.com?id=rocketpool} {0xb3ee7afcf27f1f1259ac1787876318c6584ee353097a50ed84f51a1f21a323b3736f271a895c7ce918c038e4265918be https://0xb3ee7afcf27f1f1259ac1787876318c6584ee353097a50ed84f51a1f21a323b3736f271a895c7ce918c038e4265918be@relay.edennetwork.io?id=rocketpool}]"
mev-boost_1      | time="2022-09-28T22:02:06Z" level=info msg="Checking relay" module=service relay="https://0xac6e77dfe25ecd6110b8e780608cce0dab71fdd5ebea22a16c0205200f2f8e2e3ad3b71d3499c54ad14d6c21b41a37ae@boost-relay.flashbots.net?id=rocketpool"
mev-boost_1      | time="2022-09-28T22:02:06Z" level=info msg="Checking relay" module=service relay="https://0xb0b07cd0abef743db4260b0ed50619cf6ad4d82064cb4fbec9d3ec530f7c5e6793d9f286c4e082c0244ffb9f2658fe88@bloxroute.regulated.blxrbdn.com?id=rocketpool"
mev-boost_1      | time="2022-09-28T22:02:07Z" level=info msg="Checking relay" module=service relay="https://0x9000009807ed12c1f08bf4e81c6da3ba8e3fc3d953898ce0102433094e5f22f21102ec057841fcb81978ed1ea0fa8246@builder-relay-mainnet.blocknative.com?id=rocketpool"
mev-boost_1      | time="2022-09-28T22:02:07Z" level=info msg="Checking relay" module=service relay="https://0xb3ee7afcf27f1f1259ac1787876318c6584ee353097a50ed84f51a1f21a323b3736f271a895c7ce918c038e4265918be@relay.edennetwork.io?id=rocketpool"
mev-boost_1      | time="2022-09-28T22:02:07Z" level=info msg="listening on 0.0.0.0:18550" module=cli

これは、正しく実行されていることを示しています。

すでにバリデーターを起動して実行している場合、数分ごとにログに次のようなメッセージが表示されます。

mev-boost_1      | time="2022-09-28T21:40:48Z" level=info msg="http: GET /eth/v1/builder/status 200" duration=0.147305645 method=GET module=service path=/eth/v1/builder/status status=200
mev-boost_1      | time="2022-09-28T21:40:48Z" level=info msg="http: POST /eth/v1/builder/validators 200" duration=0.052895118 method=POST module=service path=/eth/v1/builder/validators status=200

これは、Beacon nodeがそれに正しく接続し、バリデーターを登録できたことを示しており、ノードが現在MEV relayと積極的にやり取りし、block builderからブロックを受信する準備ができていることを示しています。

次のステップ

MEV-Boostが設定されたので、新しいmegapool validatorを作成してEthereumネットワークでの検証を開始する準備が整いました。 このプロセスを説明する次のセクションをお読みください。