Le front running

Le front running est un phénomène qui affecte négativement l’expérience utilisateur et le fonctionnement de la blockchain Ethereum. Ce comportement n’est pas quelque chose de nouveau ces derniers temps. Il a toujours existé sur Ethereum et provient en fait des marchés traditionnels, en particulier du marché boursier.

Cependant, le problème des transactions frontales a été exacerbé avec la montée en puissance du mouvement DeFi.

Qu’est-ce que le front running?

La DeFi a favorisé la création d’une variété d’applications financières. L’une des choses que les protocoles DeFi permettent, ce sont les activités spéculatives visant à faire des profits. C’est là qu’intervient l’activité du favori. Elle consiste à identifier les actions potentiellement rentables par les utilisateurs sur la blockchain, et les anticiper pour en tirer un avantage.

En général, le leader analyse la blockchain pour identifier les transactions avec lesquelles elles se chevaucheront afin de gagner de l’argent. Le terme est originaire du marché boursier, à l’époque où le trading se faisait encore à la main et sur papier via des pupitres de négociation. Voici un exemple.

Un courtier reçoit un ordre d’un client pour acheter un certain titre. Le courtier estime que la taille de cet ordre fera grimper le prix du titre, il passera donc un ordre d’achat pour lui-même avant l’ordre du client.

De cette manière, le courtier est en mesure de bénéficier de l’augmentation de prix suite à l’exécution de l’ordre du client. Ou, dans un autre cas, il porte préjudice au client pour avoir augmenté le prix du titre (par son achat) avant l’exécution de la commande passée auprès de lui. Bien entendu, cette pratique est injuste et a été déclarée illégale.

Front fonctionnant sur la blockchain

Le front running n’est rien de plus qu’une pratique par laquelle une entité bénéficie d’un accès préalable à des informations de marché privilégiées concernant les transactions et les échanges à venir. Sur la blockchain, le problème devient beaucoup plus sérieux.

Tout d’abord, toutes les transactions sont transmises publiquement. Plus important encore, les participants à la blockchain ne sont pas liés par la même relation qui existe entre un courtier et son client. Les attaquants peuvent exploiter ces connaissances d’une transaction en toute impunité.

L’exemple typique est celui des échanges décentralisés de la DeFi.

Un utilisateur passe un ordre d’achat important qui fera monter le prix d’un jeton. Le favori voit cette transaction non confirmée et l’anticipe avec sa propre transaction pour acheter le même jeton. Un profit sera réalisé sur l’augmentation de prix consécutive à l’exécution de la commande de l’utilisateur.

En variante, le coureur avant peut transmettre le glissement à l’utilisateur. Cela se produit si l’utilisateur entre un ordre non restreint et que le favori déplace le marché (éventuellement illiquide) avec sa propre transaction avant celle de l’utilisateur.

pourquoi est-ce le cas?

La blockchain permet l’exécution d’applications décentralisées, ou plus généralement de contrats intelligents. Les appels de fonction (ou transactions) sont finalisés par étapes:

  • tout d’abord, ils sont propagés sur le réseau, aboutissant à une «salle d’attente» appelée mempool;
  • puis ils sont sélectionnés par un mineur et placés dans un bloc valide;
  • enfin, le bloc devient plus profond à mesure que la chaîne s’allonge, de sorte que l’immuabilité de la transaction devient de plus en plus probable.

Le front running est donc une attaque où un nœud malveillant observe une transaction qui a été transmise au réseau, mais pas encore finalisée. L’attaquant tente de faire confirmer sa transaction avant – ou à la place – de la transaction observée.

Les mineurs sont les mieux placés pour mener ces attaques. Ils ont un contrôle détaillé sur l’ensemble exact des transactions qui seront exécutées et leur ordre. En général, cependant, tout utilisateur surveillant les transactions sur le réseau (par exemple en exécutant un nœud complet) peut voir les transactions non confirmées. Sur la blockchain Ethereum, les utilisateurs doivent payer le gaz utilisé par le réseau pour traiter leurs transactions. Le prix (prix du gaz) proposé par les utilisateurs pour le gaz consommé peut augmenter ou diminuer le taux auquel les mineurs incluront la transaction dans une blockchain.

Un mineur (normalement à but lucratif) qui voit des transactions identiques mais des frais différents donnera la priorité à la transaction en payant un prix du gaz plus élevé (en raison de l’espace limité dans les blocs). Ce n’est rien de plus qu’une vente aux enchères de gaz. Par conséquent, tout utilisateur exécutant un nœud complet peut exécuter en amont les transactions en suspens en envoyant leurs transactions avec un prix du gaz plus élevé.

Enfin, des nœuds de transfert de transaction bien placés sur le réseau peuvent également essayer d’influencer la manière dont les transactions sont propagées. Cela peut affecter l’ordre dans lequel les mineurs reçoivent les transactions ou s’ils les reçoivent.

Types d’attaques

Une variété d’attaques peut être menée avec le front running, allant bien au-delà de l’activité de trading et des applications financières plus généralement. Les scénarios sont innombrables. Il serait plus facile de dresser des catégories générales d’actions de front que d’identifier chaque cas spécifique.

Par exemple, une hypothèse de premier plan pourrait également se poser dans le cas d’une vulnérabilité dans un contrat intelligent. Un utilisateur peut essayer d’exploiter un bug pour faire un profit, mais le leader peut copier la même transaction et l’anticiper pour utiliser la vulnérabilité à son avantage.

Ou un utilisateur peut essayer d’envoyer un bug pour recevoir une prime mais est trompé par le coureur de tête qui copie la transaction et l’anticipe. Encore une fois dans le cas de l’enregistrement de domaine, où l’attaquant parvient à enregistrer un domaine avant que la transaction de l’utilisateur ne soit confirmée.


Crédit: Lien source


Publié

dans

par

Étiquettes :

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *