MEV, MEV-Boost et récompenses MEV

Dans la section précédente, vous avez appris comment les opérateurs de nœuds gagnent des frais de priorité. Les frais de priorité constituent un excellent complément aux revenus d'un opérateur de nœud, mais ils ne sont pas la seule forme de récompense liquide disponible sur la couche d'exécution. Il existe une forme supplémentaire de récompenses disponible, connue sous le nom de récompenses MEV.

NOTE

Voici un rappel rapide de la répartition des différents types de récompenses et de la couche sur laquelle elles sont fournies :

  • Couche de consensus (verrouillée jusqu'aux retraits) : attestations, propositions de blocs, comités de synchronisation, rapports de slashing
  • Couche d'exécution (liquide) : frais de priorité et MEV provenant des propositions de blocs

Qu'est-ce que le MEV

Lorsque votre validateur crée un bloc, il le fait généralement avec un algorithme très simple : garder une trace d'une liste de transactions en attente, regrouper autant de ces transactions que possible dans le bloc que vous construisez (en priorisant celles avec les pourboires les plus élevés en premier), et soumettre ce bloc à la chaîne.

Cependant, les utilisateurs du réseau Ethereum ont découvert un effet secondaire intéressant du fait de pouvoir voir le pool de transactions en attente publiquement disponibles (connu sous le nom de mempool). Avoir cette connaissance leur permet d'employer des algorithmes intelligents et sophistiqués pour modifier l'ordre de ces transactions, et dans certains cas, introduire de nouvelles transactions entre elles. Ces deux techniques combinées peuvent être utilisées pour extraire de l'ETH supplémentaire d'une proposition de bloc.

Cet ETH supplémentaire est connu sous le nom de Maximal Extractable Value, ou MEV en abrégé.

En général, il existe deux "saveurs" de MEV :

  • Le MEV qui provient de sources "bénignes", comme être le premier à arbitrer entre les échanges après un achat ou une vente importants
  • Le MEV qui vient au détriment des utilisateurs d'Ethereum, en devançant leurs transactions et en profitant du slippage résultant de l'utilisateur (voir Sandwich Attacks pour plus d'informations sur cette technique)

Constructeurs de blocs et relais

Trouver des opportunités MEV n'est pas chose facile ; les chercheurs d'opportunités de pointe, connus sous le nom de searchers, nécessitent des ordinateurs extrêmement puissants et emploient des algorithmes d'IA complexes pour identifier et extraire rapidement le MEV. Les searchers prennent ensuite ces opportunités et les fournissent aux constructeurs de blocs - des entités qui agrègent ces paquets d'opportunités ensemble pour former un bloc Ethereum complet (qui peuvent être les searchers eux-mêmes ou d'autres parties).

Les exigences matérielles et logicielles pour exécuter un searcher rentable empêchent la plupart des opérateurs de nœuds de les utiliser (ou du moins de les utiliser de manière compétitive), et les empêchent ainsi de trouver leurs propres opportunités MEV dont ils pourraient tirer profit. Heureusement, simplement trouver des opportunités MEV n'est que la moitié de l'équation.

À chaque Epoch (6,4 minutes, ou 32 slots), la Beacon Chain sélectionne aléatoirement un validateur dans la liste complète des validateurs actifs pour proposer un bloc qui s'intégrera dans l'un des slots de cet Epoch. Cette liste peut être consultée pour le prochain Epoch à venir, ce qui signifie que tout le monde peut voir quels validateurs sont assignés à chaque slot quelques minutes à l'avance.

Certaines entités intelligentes ont exploité cette connaissance anticipée pour construire essentiellement une sorte de "marché". Sur ce marché, les validateurs peuvent s'enregistrer lorsqu'ils ont des propositions de blocs à venir et les constructeurs de blocs peuvent soumettre des offres pour les blocs qu'ils aimeraient que les validateurs proposent. Ces offres donnent toujours les frais de priorité de chaque transaction dans le bloc au proposant, et elles offrent également un pourboire supplémentaire au proposant qui provient du MEV que le constructeur a pu extraire pour lui-même.

Les validateurs peuvent alors examiner ces offres, déterminer laquelle fournit finalement le plus de profit, et proposer ce bloc au lieu de construire le leur.

Ce "marché" où les constructeurs de blocs interagissent avec les validateurs est connu sous le nom de relais. Différents relais ont des règles différentes (comme lesquelles des "saveurs" de MEV mentionnées ci-dessus ils permettent aux constructeurs de blocs, et s'ils se conforment ou non à certaines réglementations de sanctions gouvernementales), mais en fin de compte, ils servent tous cette même fonction de marché.

Rocket Pool offre actuellement à ses opérateurs de nœuds l'accès à plusieurs relais différents :

NomRéglementationTypes de MEV
FlashbotsConforme aux sanctions OFAC*Tous types
bloXroute Max ProfitConforme aux sanctions OFAC*Tous types
bloXroute RegulatedConforme aux sanctions OFAC*Tous types
Ultra SoundNon réglementéTous types
Ultra Sound FilteredConforme aux sanctions OFAC*Tous types
AESTUSNon réglementéTous types
Titan GlobalNon réglementéTous types
Titan RegionalConforme aux sanctions OFAC*Tous types
BTCS OFAC+Conforme aux sanctions OFAC*Tous types
NOTE

*Les relais qui se conforment aux sanctions OFAC suivent la liste noire d'adresses que l'Office of Foreign Assets Control (OFAC) des États-Unis maintient. Nous vous encourageons fortement à en savoir plus sur les sanctions OFAC, la censure du réseau, et à prendre une décision soigneusement éclairée sur la question de savoir si vous croyez devoir vous conformer à ces sanctions et quels relais vous êtes à l'aise d'utiliser.

Plus d'informations peuvent être trouvées dans des articles tels que ceux-ci :

Si vous êtes intéressé par l'exploration de la part de marché relative et des pourboires moyens par bloc de chacun des relais, consultez https://www.mevboost.org/. Ce site capture de nombreuses métriques sur les différents relais MEV afin que vous puissiez mieux comprendre la popularité et les rendements des relais.

MEV-Boost

Il existe de nombreux relais, et avoir votre nœud qui s'enregistre et maintient automatiquement le contact avec chacun d'eux peut être une tâche fastidieuse. Heureusement, les ingénieurs de Flashbots ont produit et maintiennent un programme explicitement conçu pour gérer cette gestion de relais connu sous le nom de MEV-Boost.

MEV-Boost est un programme simple : vous lui indiquez quels relais vous souhaitez utiliser et vous indiquez à votre client de consensus comment l'atteindre, et il s'occupe de toute l'enregistrement, des enchères, de la signature aveugle et de la gestion des propositions en conjonction avec votre client de consensus. Il vous permet de participer passivement à ce marché constructeur-proposant, et ainsi de gagner des récompenses supplémentaires sans aucun effort de votre part.

MEV-Boost est open source et a été audité.

Vous trouverez ci-dessous une bonne représentation visuelle du fonctionnement de l'ensemble de l'écosystème MEV et de l'endroit où MEV-Boost s'intègre :

Image courtoisie de Flashbots

Le Rocket Pool Smartnode est livré avec MEV-Boost directement intégré par défaut, permettant à nos opérateurs de nœuds en Docker Mode et Hybrid Mode d'en profiter facilement. Les utilisateurs du Native Mode devront le configurer manuellement.

Rocket Pool et le MEV

Étant donné que les validateurs Rocket Pool sont partiellement financés par les stakers rETH, le protocole exige que les récompenses MEV (ainsi que les frais de priorité) soient partagées avec les stakers rETH (moins la commission de l'opérateur de nœud, bien sûr). Les opérateurs de nœuds ne sont pas autorisés à empocher la totalité de la récompense MEV pour eux-mêmes lorsqu'ils proposent avec un validateur Rocket Pool.

À cette fin, MEV-Boost est un composant essentiel du réseau Rocket Pool pour plusieurs raisons :

  • Il fournit un accès facile au réseau de relais MEV
  • Il garantit que l'opérateur de nœud ne construit pas ses propres blocs ; c'est important pour s'assurer qu'un opérateur de nœud n'exécute pas son propre searcher et ne vole pas de MEV sans le partager avec les stakers rETH
  • Il augmente les rendements globaux pour les stakers rETH, ce qui maintient le protocole compétitif avec d'autres fournisseurs de staking plus centralisés

Le deuxième point ici est important : Rocket Pool en tant que protocole s'appuiera finalement sur une conception de Trusted Block Builder (ou plus précisément, un relais de confiance) pour garantir que les stakers rETH reçoivent toujours leur juste part des récompenses MEV et des frais de priorité.

Chacun des relais répertoriés ci-dessus joue actuellement ce rôle.

Nous adoptons une approche en trois phases vers la transition vers la conception Trusted Block Builder :

Phase 1 : Opt-In!

Dans la phase 1, MEV-Boost est fourni à tous les opérateurs de nœuds en tant que configuration opt-in. Les opérateurs de nœuds sont encouragés à l'utiliser car cela améliore les rendements de rETH et maintient ainsi le protocole compétitif, mais ne sont pas obligés de l'utiliser. Les opérateurs de nœuds peuvent choisir d'utiliser un ou plusieurs des relais de confiance répertoriés ci-dessus mais ne peuvent pas utiliser un relais personnalisé (non fiable).

Cette phase s'est terminée en novembre 2022.

Phase 2 : Opt-Out

Dans la phase 2, MEV-Boost est activé par défaut pour tous les opérateurs de nœuds. Les opérateurs de nœuds peuvent choisir d'utiliser un ou plusieurs des relais de confiance répertoriés ci-dessus mais ne peuvent pas utiliser un relais personnalisé (non fiable). Les opérateurs de nœuds qui choisissent de désactiver MEV-boost doivent le faire explicitement avant de démarrer le Smartnode.

Il s'agit de la phase actuelle.

Phase 3 : Requis

Dans la phase 3, MEV-Boost n'est plus facultatif ; il sera requis pour tous les opérateurs de nœuds. Les opérateurs de nœuds doivent choisir d'utiliser un ou plusieurs des relais de confiance répertoriés ci-dessus mais ne peuvent pas utiliser un relais personnalisé (non fiable).

Il n'y a actuellement aucune date prévue pour cette phase.

Configuration de MEV-Boost dans le Smartnode

Pour apprendre à configurer MEV-Boost, veuillez sélectionner le mode que vous utilisez ci-dessous.

Docker Mode
Hybrid Mode
Native Mode

La configuration de MEV-Boost est facile avec l'IUT de configuration du Smartnode. Commencez par exécuter rocketpool service config et accédez à l'option MEV-Boost :

Cochez la case intitulée Enable MEV-Boost pour l'activer.

Une fois activé, l'écran ressemblera à ceci (à partir du Smartnode v1.17.2) :

Vous trouverez ci-dessous une description de chaque option et comment les utiliser.

  • La case MEV-Boost Mode vous permet de basculer entre une instance MEV-Boost que Rocket Pool gère, et une externe que vous gérez vous-même. Ceci est destiné aux utilisateurs avancés qui ont déjà MEV-Boost configuré et qui souhaitent simplement l'utiliser au lieu de laisser Rocket Pool exécuter une deuxième copie. Les utilisateurs réguliers du Docker Mode devraient simplement laisser cela défini sur Locally Managed.

  • La case Selection Mode vous permet de basculer entre Profile Mode et Relay Mode.

  • Profile Mode est la valeur par défaut. Il vous permet de sélectionner les relais à activer en fonction de leurs "profils". Le profil d'un relais est constitué des choix suivants :

  • S'il est réglementé (se conforme aux listes de sanctions gouvernementales telles que la liste OFAC et met sur liste noire certaines adresses) ou non réglementé (ne censure pas les transactions basées sur des listes noires)

  • S'il autorise tous les types de MEV ou interdit explicitement les bundles qui impliquent des attaques sandwich ou du front-running des utilisateurs d'Ethereum

  • Vous pouvez sélectionner plusieurs profils.

  • Chaque profil que vous sélectionnez a un ensemble de relais qui y adhèrent qui sont répertoriés dans la zone de description ; l'activation de ce profil activera tous ces relais.

  • Les utilisateurs avancés peuvent changer cela en Relay Mode, ce qui leur permet de sélectionner explicitement les relais qu'ils souhaitent utiliser.

  • La case Port n'est pas importante pour les utilisateurs du Docker mode.

  • La case Expose API Port n'est pas importante pour les utilisateurs du Docker mode.

  • La case Container Tag est utile pour mettre à jour manuellement la version de MEV-Boost que le Smartnode exécute si Flashbots publie une nouvelle version haute priorité que vous souhaitez utiliser avant qu'une mise à jour du Smartnode avec celle-ci ne soit publiée.

  • La case Additional Flags est utilisée si vous souhaitez ajouter des flags ou paramètres de configuration supplémentaires directement au conteneur MEV-Boost. Normalement, cela ne sera pas utile.

Une fois que vous avez activé MEV-Boost et activé les relais que vous souhaitez, enregistrez et quittez simplement. Le Smartnode redémarrera les conteneurs pertinents pour vous et configurera automatiquement tout pour vous.

Voir ci-dessous pour les instructions sur la façon de vérifier qu'il fonctionne comme prévu.

Vérification des journaux de MEV-Boost

Pour vérifier les journaux de MEV-Boost, exécutez la commande suivante (pour les utilisateurs du Docker Mode et les utilisateurs Hybrid avec un conteneur géré localement) :

rocketpool service logs mev-boost

La sortie vous montrera quels relais vous avez activés, leur état de connexion, et commencera à écouter le trafic de votre 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

Cela indique qu'il fonctionne correctement.

Si vous avez des validateurs déjà opérationnels, vous verrez des messages comme celui-ci toutes les quelques minutes dans les journaux :

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

Cela indique que votre Beacon node a pu se connecter correctement et enregistrer ses validateurs, indiquant que votre nœud s'engage maintenant activement avec les relais MEV et est prêt à recevoir des blocs des constructeurs de blocs !

Prochaines étapes

Maintenant que MEV-Boost a été configuré, vous êtes prêt à créer un nouveau validateur megapool et à commencer à valider sur le réseau Ethereum ! Lisez la section suivante pour parcourir ce processus.