Make Ethereum Great Again : l’idée de Flashbots pour résister à la censure financière

Ethereum fait face, depuis plusieurs semaines, à une insidieuse censure financière. Certains organismes de régulation font pression sur les relais du réseau, afin d’exclure les transactions indésirables. Une initiative mettant à mal son idéal de décentralisation et de résilience. Heureusement, l’équipe de Flashbots propose un début de solution.

Ethereum et la censure financière de l’OFAC

L’Office of Foreign Assets Control (OFAC) est un organisme de contrôle financier américain bien connu. Cette émanation du Département du Trésor des États-Unis est dédiée au contrôle des « actifs étrangers ». La puissante agence gouvernementale (qui emploie 200 personnes) est chargé d’appliquer la politique étrangère étasunienne au niveau financier.

Concrètement, cela signifie que l’OFAC applique les sanctions financières américaines. C’est par exemple le cas pour des pays tels l’Iran, Cuba, ou encore certains pays des Balkans. Cependant, son pouvoir d’action est très étendu, et peut concerner individus et entreprises. L’organe de contrôle administre plusieurs dizaines de programmes. Certains sont destinés à lutter contre le terrorisme (par exemple le Patriot Act), d’autres ont des motivations plus floues – comme les obscurs textes empêchant certains citoyens d’accéder à la propriété aux États-Unis, en fonction de leur relations avec le Venezuela, le Zimbabwe, la Birmanie ou encore le Soudan du sud.

Chacun jugera du bien-fondé des sanctions financières imposées par l’OFAC en fonction de ses accointances géopolitiques. Pour le cypherpunk, une chose est sûre : la censure financière est le pire ennemi des cryptos dignes de ce nom ! Malheureusement, l’OFAC tente déjà d’étreindre l’industrie de ses gluants tentacules.

Les paiements anonymes sont désormais un crime d’apostasie pour les autorités financières. L’OFAC a ainsi fait pression sur Tornado Cash, le mixeur de transactions Ethereum. Mais ce n’est pas tout, l’OFAC dispose désormais d’une liste noire d’adresses. Elle impose la censure financière des transactions qui y sont associées aux relais Ethereum situés sur le sol américain. Ces relais sont au cœur du problème depuis le passage d’Ethereum au proof-of-stake (The Merge).

Ethereum et les relais MEV-Boost

Il y a désormais deux types de nœuds validateurs sur le réseau Ethereum :

  • Les validateurs qui proposent des blocs (les proposers) et les diffusent via des relais ;
  • Ceux qui produisent les blocs (les producers) peuvent sélectionner un bloc proposé par un relai, ou construire localement le leur, grâce au mempool.

Ce système répond au nom de MEV-Boostmaximum extractable value boost. Il permet de créer un marché des blocs, où les relais peuvent vendre de l’espace mémoire aux producteurs. C’est avantageux pour les nœuds validateurs qui peuvent générer un profit supplémentaire. L’équipe de développement de MEV-Boost, Flashbots, a ainsi implémenté une proposition de Vitalik Buterin lui-même.

Cependant, le MEV-Boost donne aux relais beaucoup de pouvoir. En effet, ces derniers peuvent censurer des transactions à leur guise. Il leur suffit de proposer des blocs qui excluent les transactions non-désirées. Les producteurs acceptant les blocs de ces relais refusent donc de traiter ces transactions.

Actuellement, un nombre important de relais suivent scrupuleusement les règles de l’OFAC. Ils censurent toutes les adresses présentes sur sa liste noire (y compris celles de certains smart contracts). Une situation qui est inquiétante. Actuellement, environ 73 % des blocs produits sur Ethereum sont « OFAC-compatibles » :

Ethereum - Blocs OFAC-compatibles
Ethereum : pourcentage de blocs OFAC-compatibles (moyenne journalière)

Cela ne signifie pas que le réseau Ethereum subit de plein fouet la censure financière de l’OFAC. Pour que ce soit le cas, il faudrait que tous les producteurs de blocs utilisent des relais MEV-Boost appliquant les règles de l’OFAC.

Même avec un léger pourcentage de validateurs rebelles, les transactions censurées finissent par être incluses dans un bloc. Cependant, plus ce pourcentage est faible, et plus le délai de règlement de ces transactions interdites augmente.

Flashbots œuvre pour la résilience d’Ethereum

En temps que développeur de la solution MEV-Boost pour les validateurs, l’équipe de Flashbots n’est pas restée les bras croisés.

Tout d’abord, Flashbots a rendu le code des programmes MEV-Boost totalement open source : le Flashbots Relay (relai MEV-Boost) et le block builder (qui permet de construire des blocs). Cela favorise une saine compétition entre les builders et une meilleure décentralisation géographique. Peu après, l’organisation a proposé un plan pour décentraliser la production des blocs sur le réseau. Enfin, l’introduction d’un système d’enchères permet d’améliorer la résistance à la censure d’Ethereum.

SUAVE

Flashbots a dévoilé le 23 novembre son projet, appelé SUAVE : Single Unifying Auction for Value Expression. L’idée maîtresse repose sur la dissociation entre deux couches du protocole :

  • Le mempool, l’espace mémoire dédié aux transactions en attente ;
  • Le mécanisme de construction des blocs.

À ce stade, le projet est peu avancé, mais promet de décentraliser la production des blocs tout en maximisant la MEV (c’est-à-dire le revenu des validateurs). Pour ce faire, les constructeurs de blocs doivent travailler de manière collaborative. Chaque builder s’occuperait d’une partie du bloc, plutôt que d’avoir une seule entité proposant l’entièreté d’un bloc.

Flashbots a également présenté une solution efficace et facile à implémenter pour améliorer la résistance à la censure d’Ethereum malgré la présence relais MEV-Boost zélés.

Enchère minimum (min_bid)

Les développeurs ont introduit un nouveau paramètre dans le code du MEV-Boost pour les validateurs. Il s’agit du min_bid : une enchère minimale.

En fixant cette valeur, les validateurs acceptent seulement les blocs dont la récompense totale est au-dessus de la valeur choisie. Dans le cas contraire, le bloc est construit localement.

Pour la plupart des blocs, le profit supplémentaire dû au MEV-Boost n’est pas substantiel. Ainsi, les validateurs peuvent céder une petite partie de leurs profits, afin d’augmenter la résilience d’Ethereum. Ils profitent cependant des blocs où le MEV-Boost donne un gain important. Le graphe suivant donne une idée du mécanisme :

Ethereum - Résilience vs revenu MEV - Flashbots
Résilience du réseau Ethereum en fonction des revenus apportés par le MEV-Boost – Flashbots

Comme nous pouvons le voir, construire tous ses blocs localement confère une résilience maximale, mais avec un revenu MEV-Boost minime. Au contraire, prendre tous ses blocs auprès de relais MEV-Boost maximise le revenu des validateurs, mais augmente le risque de censure.

La solution proposée par Flashbots est donc un compromis. Elle augmente la résistance à la censure d’Ethereum, moyennant une légère perte de revenus MEV-Boost. La valeur du min_bid définit le coût de cette solution pour les validateurs.

Calcul du coût d’opportunité

Les revenus provenant du MEV-Boost sont variables selon les blocs. Il s’agit de la différence entre le revenu d’un bloc MEV-Boost (fourni par un relai) et celui d’un bloc construit localement (issu du mempool). La distribution de ces revenus est la suivante :

Ethereum - Revenu MEV-Boost vs mempool
Densité de probabilité de la différence de revenus (MEV-Boost vs mempool) pour les validateurs

Cette distribution est asymétrique : le MEV-Boost génère bien des profits supplémentaires. Cependant, pour une grande quantité de blocs, ils sont négligeables. Par exemple, 35 % des blocs MEV-Boost génèrent un revenu inférieur à 0,05 ETH. En fixant le paramètre min_bid à 0,05, un validateur construira donc un bloc en local 35 % du temps.

Il faut aussi déterminer la variation du revenu des validateurs lorsque la valeur min_bid est positive.

Coût d’opportunité

On calcule le coût d’opportunité de la valeur min_bid pour les validateurs en calculant la différence cumulée des revenus entre blocs MEV-Boost et blocs locaux. Sans surprise, plus l’enchère minimum est élevée, et plus les blocs sont construits localement. Ce coût d’opportunité augmente donc en fonction de l’enchère :

Ethereum - Flashbots - Min-bid - Coût d'opportunité
Augmentation du coût d’opportunité pour les validateurs en fonction de l’enchère minimale

La solution proposée par Flashbots se focalise sur les blocs dont le revenu n’est pas substantiel. Environ 73 % des blocs MEV-Boost présentent un revenu inférieur à 0,11 ETH. Sur le graphe suivant, nous avons :

  • La variation du coût d’opportunité pour ces blocs (revenu ≤ 0,11 ETH) ;
  • La variation du taux annuel de profit pour différentes valeurs de l’enchère minimale.
Coût d’opportunité et APR pour les blocs MEV-Boost (0 < revenu ≤ 0,11 ETH)

Bien que le coût d’opportunité augmente avec l’enchère minimale, le revenu annuel ne diminue que très peu. C’est un léger sacrifice pour les validateurs. Il faut maintenant déterminer l’efficacité du système quant à l’inclusion des transactions.

>> La coupe du monde de foot sur Binance, c’est 1M$ à partager (lien commercial) <<

Résistance à la censure

Flashbots a pris en compte un taux de blocs Ethereum « OFAC-compatibles » de 72 %. Les transactions qui ne sont pas incluses dans ces blocs respectueux des injonctions de l’OFAC vont donc souffrir de latence. Dans le cas présent, 28 % des transactions doivent attendre au moins un bloc pour être incluses. Les blocs incluant ces transactions sont ceux que les validateurs construisent localement, ou ceux qui sont produits sans l’aide des relais MEV-Boost OFAC-compatibles.

Bien entendu, si tous les validateurs utilisaient des relais MEV-Boost et OFAC-compatibles, le taux d’inclusion de ces transactions tomberait à 0 %.

Le graphe suivant présente le taux d’inclusion des transactions « indésirables » (instances MEV-Boost et OFAC-compatibles) pour plusieurs valeurs de min_bid :

Taux d’inclusion des transactions censurées pour différents délais (en blocs) et différentes valeurs d’enchère minimale (de 0 à 0,1 ETH)

On peut observer que, même pour des enchères minimales faibles, le taux d’inclusion des transactions censurées augmente fortement après plusieurs blocs. Ainsi, une enchère minimale fixée à 0,05 ETH fait passer la probabilité d’inclusion après un bloc de 0% à 35%. Voici les données pour 5 valeurs d’enchère minimale différentes :

Valeur de l’enchère minimale0 ETH0.02 ETH0.05 ETH0.10 ETH0.24 ETH
Pourcentage cumulés de blocs dont le revenu est inférieur à l’enchère minimalen.a.5%35%70%90%
Coût d’opportunité par bloc0 ETH0.003 ETH0.007 ETH0.01 ETH0.01 ETH
Taux annuel de profit du validateur6.5%6.4%6.3%6.3%6.2%
Taux d’inclusion d’une transaction non-OFAC après 1 bloc0%5%35%70%90%

En termes de résistance à la censure pour Ethereum, c’est un gain important, moyennant un coût d’opportunité faible pour les validateurs.

Implémenter la solution de Flashbots

L’idée est donc de sacrifier une petite part de son revenu de validateur afin d’améliorer la résistance à la censure d’Ethereum. Pour ce faire, il suffit d’ajouter la ligne de code suivante en exécutant MEV-Boost :

mev-boost -min-bid <x> -relay ...

La valeur x étant l’enchère minimale (en ETH) fixée par le validateur. Ainsi, seuls les blocs (en provenance des relais) qui présentent un revenu supérieur à ce seuil sont acceptés.

Un calcul rapide montre que si tous les validateurs utilisant des relais OFAC-compatibles fixent le min_bid à 0,05 ETH, alors :

  • Les transactions censurées auront 53 % de chances d’être inclues après 1 bloc ;
  • Le coût d’opportunité par bloc est de 0,011 ETH ;
  • Le taux annuel de profit ne diminue de 0,1 %.

Flashbots incite bien entendu tous les validateurs à implémenter ce paramètre. Un peu de profit en moins pour un Ethereum plus neutre.

Vers une véritable résistance à la censure sur Ethereum

Il y a plusieurs manières de censurer des transactions sur le réseau. La plus simple est d’exclure les transactions ciblées (ou d’empêcher l’appel à certains smart contracts) au niveau des interfaces utilisateur. De nombreuses entreprises sont tenues de mettre en place de tels systèmes, en raison des régulations financières. Cette méthode est inefficace face aux utilisateurs aguerris d’Ethereum. Il suffit d’interagir avec le réseau directement en lignes de commandes pour la contourner.

Le cas de censure financière le plus grave pour un réseau de paiement pair-à-pair se situe au niveau du mécanisme de consensus lui-même. Dans le scénario catastrophe où un fork « OFAC-compatible » serait majoritaire sur un réseau crypto P2P, adieu la neutralité et la décentralisation ! Heureusement, ce n’est pas le cas sur Ethereum.

La censure de l’OFAC intervient au niveau des validateurs qui construisent et proposent des blocs. Les solutions proposées par Flashbots (enchères minimales puis construction collaborative des blocs) sont intéressantes. Ces mécanismes sont à creuser !

En crypto, ne faites pas l’économie de la prudence ! Ainsi, pour conserver vos avoirs cryptographiques à l’abri, la meilleure solution est encore un wallet hardware personnel. Chez Ledger, il y en a pour tous les profils et toutes les cryptos. N’attendez pas pour mettre vos capitaux en sécurité (lien commercial) !

Morgan Phuc

Cofounder @ 8Decimals &amp; Partner @ Node Guardians - Making crypto great again - Journal du Coin / BitConseil