L'histoire fascinante de ma plongée profonde dans une entreprise d'arbitrage sur la plateforme de blockchain la plus active.
Cette histoire a commencé une longue soirée alors que j'analysais régulièrement les performances des traders sur la blockchain BSC. J'utilisais notre moteur d'analyse de données Datamint pour rechercher les acteurs les plus rentables . Ce moteur contient des données historiques et en direct diffusées en continu à partir de la blockchain la plus active en termes de quantité d'utilisateurs actifs quotidiens - BNB Smart Chain (anciennement Binance Smart Chain). J'avais une hypothèse selon laquelle il était possible de trouver des informations commerciales à partir du comportement de ces commerçants.
Soudain, quelque chose attira mon attention. J'ai trouvé un trader qui a réussi à surjouer le marché de 270 BNB (65 000 $ au moment de la rédaction et même plus que cela au moment de la transaction). Il n'a utilisé que des échanges décentralisés (DEX) pour parvenir à ce résultat.
Eh bien, "pas génial pas terrible", ai-je pensé. Ensuite, j'ai lancé une requête pour comprendre combien de temps il lui a fallu pour arriver à ce résultat. La console de requête a réfléchi pendant quelques secondes et m'a laissé une réponse étonnante : un jour. Ah bon? D'accord, mais combien de transactions a-t-il envoyées ? Juste un? Comment est-ce possible?
Eh bien, il est techniquement possible de conclure plusieurs transactions en une seule transaction. Sur les chaînes de blocs de type Ethereum (comme Polygon, Avalanche C-Chain, bien d'autres et, bien sûr, BSC), cela vous obligerait à rédiger et à déployer un contrat intelligent. Vous auriez besoin de coder en langage Solidity, mais ce n'est pas si difficile si vous avez une certaine expérience de codage (sachez simplement que la plupart des exemples de code de "Uniswap Arbitrage Bot" promus en ligne sont des escroqueries qui ne font que voler votre argent).
Mais comment pouvez-vous extraire autant de valeur en une seule étape atomique❓
Il est temps de vérifier le contenu de la transaction.
https://bscscan.com/tx/0x724e64f8426af9329c71ff3eee16e2bf5fc03b979370217c277e8bbf917f3bb7
Regardons de plus près ce qui se passe ici.
Nous voyons que ce gars chanceux prend 1500 BNB et les échange contre un stablecoin BUSD. Ensuite, il échange BUSD contre BSC-USD (un autre stablecoin indexé sur le dollar). Après cela, le commerçant échange BSC-USD contre CAKE (le jeton natif du protocole Pancakeswap DeFi), qui est ensuite échangé contre BNB sous sa forme enveloppée. Au final, le trader obtient 1769 BNB , en extrayant effectivement 269 BNB de profit .
C'est ce qu'on appelle l'arbitrage. De nombreux actifs sont négociés sur plusieurs bourses décentralisées (DEX) et les prix sur différents DEX et paires d'actifs changent constamment. Un acteur intelligent peut tirer parti de ces écarts de prix et extraire de la valeur en une seule transaction.
Après quelques recherches, j'ai découvert que cet exemple, bien qu'impressionnant, n'est pas si courant à cause de deux choses. Premièrement, dans ce cas, le joueur a utilisé son propre capital pour le commerce. Deuxièmement, il a extrait une très grosse quantité.
Voici donc un autre exemple d'arbitrage beaucoup plus courant :
https://bscscan.com/tx/0x257af7585ca32e8648c4307e839d70e2e7d2a6879375a29abe9c15145b204015
Tout d'abord, vous pouvez voir que l'ordre des opérations est étrange. L'arbitragiste prend des jetons d'un pool de liquidités avant de les payer. C'est ce qu'on appelle un « prêt flash » . Les protocoles d'échange comme Uniswap v2 (Pancakeswap et la plupart des autres DEX sur BSC sont des forks d'Uniswap v2) vous permettent de prendre n'importe quelle somme d'argent (jusqu'au montant total de liquidité du pool). Mais vous devez rembourser tous les fonds empruntés moyennant des frais avant la fin de la transaction . Le protocole ne comporte aucun risque ici car il annulera de force la transaction si vous ne remboursez pas entièrement le prêt.
Ainsi, cet arbitragiste tire parti des prêts flash. De cette façon, il peut exécuter des arbitrages sans un sou de fonds de roulement (à l'exception des frais de gaz). Mais nous avons aussi une autre différence ici : le petit profit. Le commerçant n'a obtenu que 1,26 $ et a payé quelque chose comme 0,54 $ pour l'essence. Ainsi, son bénéfice net pour cette transaction était inférieur à 1 $. Cependant, les arbitragistes comme celui-ci peuvent faire des dizaines de tentatives d'arbitrage par minute. Cela signifie qu'il a probablement encore gagné beaucoup. Bientôt, nous saurons combien exactement.
À ce stade, j'étais tellement ravi par ces exemples que j'ai décidé de plonger plus profondément. J'étais déterminé à découvrir comment fonctionne exactement ce marché. Et peut-être… découvrez comment gagner un Lambo en vous lançant dans une entreprise d'arbitrage 😃.
Spoiler : Je ne possède toujours pas de Lambo, mais ce fut un voyage fascinant. J'ai aussi beaucoup appris sur l'arbitrage et j'ai même essayé de me mettre à la place de l'arbitragiste.
Êtes-vous prêt à me suivre dans ce voyage ? Commençons alors !
J'ai décidé de commencer par calculer combien gagnent les arbitragistes.
Aujourd'hui, on parle uniquement des soi-disant « arbitrageurs » flash. Ce sont les gars qui contractent un prêt flash, exécutent des transactions, remboursent le prêt et conservent les bénéfices, le tout en une seule transaction.
Cette partie du marché de l'arbitrage est très douce. En fait, vous n'avez pas besoin de fonds de roulement pour le faire, et vous ne risquez pas de perdre votre capital. Lorsque vous envoyez la transaction, soit vous gagnez, soit la transaction est annulée. Vous ne perdez qu'une petite taxe d'essence, généralement moins de 10 cents. Mais comment calculer les bénéfices totaux des flash arbitrageurs ? Après quelques expériences avec un examen manuel, j'ai trouvé une requête qui suit les étapes suivantes :
Filtrez uniquement les transactions qui répondent aux critères suivants :
- Valeur extraite dans l'un des actifs les plus liquides sur BSC : BNB, BUSD, USDT, USDC, WBTC ou WETH.
- Le récepteur tx n'est pas un marché public (comme le routeur PancakeSwap par exemple). Nous excluons ces contrats pour calculer correctement les frais totaux d'arbitrage du gaz, y compris les frais pour les tentatives infructueuses.
Découvrez le créateur du contrat - nous en avons besoin car un arbitragiste peut avoir plusieurs contrats et nous voulons les regrouper.
Calculez le revenu total et convertissez tous les revenus en valeur en USD en utilisant le prix médian de l'actif-BUSD DEX du jour de la transaction.
Calculer les coûts de gaz pour les tentatives réussies et infructueuses.
Note : Quand on parle de profit d'un arbitragiste, on entend le profit brut : les revenus moins les frais de gaz. En réalité, les arbitragistes ont très probablement d'autres coûts importants qui incluent la masse salariale de l'équipe de R&D et les paiements d'infrastructure (location de serveur, liens de réseau privé, etc.). La structure de coût exacte est le savoir-faire de l'arbitragiste, nous ne pouvons pas la découvrir avec une analyse en chaîne. Cet outil est puissant mais a évidemment des limites.
La requête résultante s'est avérée très gourmande en ressources de calcul. Dans des circonstances normales, l'exécution aurait pu prendre des jours ou des semaines (surtout compte tenu de la taille énorme de l'archive BNB Smart Chain). Cependant, grâce à la base de données analytique très rapide au cœur du moteur d'analyse de données de Datamint et à l'aide de mes collègues pour l'optimisation des requêtes, j'ai obtenu toutes les données en quelques minutes. Ensuite, j'ai connecté un outil de visualisation aux data marts résultants. Et le voici : le Datamint BSC Flash Arbitrage Monitor . Vous pouvez le consulter en direct sur notre site internet (voir le lien en fin d'article).
Mais revenons à notre analyse. Nous pouvons voir que tous les arbitragistes rentables ont gagné 138,05 millions de dollars depuis le 1er janvier 2021. C'est essentiellement presque toute l'histoire de BNB Smart Chain. La chaîne intelligente BNB a été lancée en septembre 2020 et a pris de l'ampleur au quatrième trimestre 2020.
Nous pouvons également observer une baisse lente mais régulière des bénéfices des arbitragistes. (Cela exclut les pointes dont nous parlerons plus tard). J'interprète cette baisse comme le fait que les marchés DeFi deviennent plus matures et efficaces, laissant moins de place à l'extraction de valeur par arbitrage.
J'ai été surpris par le nombre d'arbitragistes qui subissent des pertes directes, certains d'entre eux perdant des milliers de dollars .
Et ce n'est pas à cause des coûts du gaz (les coûts du gaz ne représentent en réalité qu'une petite fraction des revenus pour une grande majorité d'arbitragistes). Ils n'ont pas vraiment à supporter ces pertes car vous pouvez annuler une transaction si vous voyez qu'elle est sur le point d'avoir un profit négatif. Je ne peux que penser que leurs pertes sont dues à un mauvais travail de maths. Et ce n'est pas si surprenant tant ce marché sucré attire aussi bien les professionnels que les amateurs.
Jetons un coup d'œil au gars qui a le plus de succès, je l'appelle "The BSC Arbitrage King" . Il est dans le jeu depuis le début et a gagné près de 8 millions de dollars à la fin du deuxième trimestre 2022 .
Il détient 32 contrats d'arbitrage, tous rentables (enfin, c'est un professionnel, sans aucun doute). En regardant sa dynamique de profit, nous voyons que ses revenus sont généralement plus faibles en 2022 qu'en 2021. Cela est dû en partie à un marché plus efficace et en partie à cause du prix plus bas du BNB ( le prix moyen du BNB en 2022 est de ~300$ contre ~ 400 $ en 2021 ) et la baisse globale du marché. Cependant, nous pouvons voir une énorme augmentation de ses bénéfices en mai. Il gagnait généralement environ 5 à 15 000 $ par jour en 2020. Mais le 12 mai, il a gagné 320 000 $ ! (Je peux imaginer quelle fête sauvage son équipe a eue cette nuit-là). Comment?
Eh bien, pour obtenir la bonne réponse, j'ai juste eu à Google "Que s'est-il passé sur le marché de la cryptographie les 11 et 12 mai 2022?". Mais j'ai décidé de plonger plus profondément dans les données en chaîne. Je voulais tout apprendre à la dure. J'ai donc assemblé la deuxième requête qui m'a permis de ventiler les bénéfices d'arbitrage par actifs utilisés dans l'arbitrage.
Remarque : de nombreux arbitrages impliquent 3 et même 4 actifs d'affilée, les chiffres du diagramme ci-dessous ne sont donc pas additifs (le profit total de la transaction est crédité à tous les actifs participants).
Lorsque j'ai exécuté la requête et défini le filtre de date sur le 11 mai, j'ai tout compris d'un coup d'œil.
Oui, c'était LUNA et UST . C'était le jour où l'insuffisance de liquidités dans le protocole LUNA a provoqué la séparation du stablecoin algorithmique UST de l'USD. Ensuite, la frappe automatique massive des jetons LUNA a fait chuter leur prix dans l'abîme.
Mais comment cela a-t-il affecté les profits des arbitragistes ? C'est facile.
Lorsque de telles choses se produisent, des ventes massives se produisent. Et les grosses ventes dans le protocole DEX signifient de gros changements de prix. Cela provoque de grandes différences de prix entre les différents DEX (par exemple Pancakeswap et BiSwap) . Et c'est exactement ce que recherchent les arbitragistes. Lorsque les gens commencent à paniquer, ils ont tendance à vendre plus vite au lieu de vendre à un prix optimal. En temps normal, ils fractionnaient leur commande, commençaient à vendre par paire avec une liquidité plus élevée, attendaient que le prix se redresse, etc. Mais ce jour-là, ils n'avaient pas assez de temps pour faire tout cela. De plus, de nombreuses positions dans des protocoles de prêt en chaîne surgarantis (généralement utilisés pour les ventes à découvert) ont été clôturées par les liquidateurs. Les garanties ont été vendues automatiquement pour couvrir les prêts. Ces ventes automatiques massives ont également créé des inefficacités. Tout cela a rapporté 320k$ à notre fier King of BSC Arbitrage. Le profit total pour tous les arbitragistes ce jour-là était supérieur à 2 millions de dollars.
Pour avoir une idée des actifs ( et, plus précisément, des combinaisons d'actifs que j'appelle «chemins» ) sont les plus rentables en temps «normal», j'ai dû assembler une autre requête. Cette requête regroupait les bénéfices (encore une fois, de manière non additive) par chemins triés plutôt que par actifs uniques . Ensuite, j'ai ajusté le filtre de date pour exclure les pics des observations.
Je m'attendais à ce que les chemins composés exclusivement des actifs les plus liquides et les plus populaires comme CAKE, ALPACA et SHIB soient les plus rentables. Mais ce n'était pas vrai.
Pour une raison quelconque, de nombreux chemins les plus rentables incluaient le jeton FIST , dont je n'avais jamais entendu parler auparavant. Une brève recherche sur Google m'a montré plusieurs sites Web prétendant être FistSwap ou FstSwap DEX affiliés au jeton FIST. Au moins certains d'entre eux sont définitivement des escroqueries. Je suis sûr qu'une enquête plus approfondie ici peut apporter des informations intéressantes, mais j'ai décidé que cela sortait du cadre de cette recherche.
Une chose intéressante est que je n'ai trouvé aucune corrélation significative entre la volatilité du marché et les gains d'arbitrage .
Voici mon hypothèse de départ : plus le marché est volatil, plus les arbitragistes gagnent. Cependant, à part plusieurs gros pics, je n'ai pu identifier aucune relation forte entre les bénéfices d'arbitrage et la volatilité.
Bon, maintenant nous savons deux choses principales. Premièrement, le marché de l'arbitrage a de l'argent. Deuxièmement, les plus courageux peuvent toujours trouver des opportunités de profit à poursuivre malgré la baisse constante des bénéfices globaux en USD.
Cependant, avant de plonger plus profondément, nous voulons savoir une chose très importante :
Parce que si le marché est injuste, peu importe combien d'argent il a - vous ne pourrez pas couper le joueur qui partage avec un avantage secret. Et nous avons de nombreuses raisons de nous méfier de l'équité du marché. En effet, certains acteurs de la chaîne intelligente BNB peuvent avoir un énorme avantage. Voici pourquoi.
Lorsque l'opportunité d'arbitrage apparaît, tous les arbitragistes essaient de la contourner. Cela signifie qu'ils placent leur transaction exactement dans la position suivante après la transaction qui crée l'opportunité (par exemple, un échange de 2000 BNB contre CAKE). J'appelle cette transaction "un déclencheur" . Le gagnant prend tout, d'autres ne paient que de l'essence pour une tentative infructueuse. Pour être aussi rapides, les arbitragistes doivent se précipiter pour détecter le déclencheur dans le mempool (stockage temporaire des transactions en attente). Ensuite, ils devront d'abord envoyer leur transaction d'arbitrage au validateur.
De toute évidence, deux types d'acteurs ont un énorme avantage ici - les nœuds RPC (qui obtiennent des transactions via l'API RPC à partir, par exemple, de votre portefeuille Metamask) et les nœuds Validator.
Les nœuds validateurs peuvent réorganiser les transactions à leur avantage et même exploiter en privé les transactions sans les envoyer au mempool. Cet avantage s'appelle la MEV (Miner Extractable Value). Sur le réseau Ethereum, on retrouve même une initiative spéciale appelée Flashbots MEV . Cette initiative tente de fournir un accès équitable à l'exploitation minière privée. Cependant, le BSC n'a rien de tel. Il ne compte que 21 validateurs. Et à tout moment, on peut soupçonner que ces validateurs jouent le jeu de l'arbitrage pour augmenter leurs profits.
Alors, examinons d'abord la répartition des parts de marché.
Depuis le 1er janvier 2021, j'ai observé 1972 arbitragistes utilisant 6689 contrats personnalisés . Et seuls 430 d'entre eux étaient rentables (avec 2648 contrats rentables). Si nous regardons la situation actuelle (disons, Q2 2022), nous voyons 129 arbitragistes rentables sur 645 au total . Le marché est également assez consolidé – les 7 meilleurs acteurs détiennent plus de 50 % du marché et les 20 premiers détiennent plus de 80 %. Cependant, de nombreux petits acteurs sont toujours dans la queue de la distribution des bénéfices et gagnent toujours leur centime.
Eh bien, ce type de répartition du marché ne révèle pas à quel point le marché est équitable. Nous avons besoin d'un autre moyen de le comprendre.
C'est à ce moment-là que nous voulons utiliser à nouveau la boule de cristal de données en chaîne 🔮 .
En ce moment, nous avons l'historique complet de toutes les transactions d'arbitrage réussies. Et pour chaque transaction, nous connaissons le numéro du bloc. Nous connaissons également l'adresse (et parfois le nom) de son validateur. Nous pouvons supposer qu'il est peu probable qu'un arbitragiste ait des relations "spéciales" avec les 21 validateurs à la fois. Ainsi, si un arbitragiste tire parti du MEV, son profit devrait être orienté vers un validateur .
D'accord, il semble qu'il est temps pour une autre requête. Cette fois, j'ai pris la période du 1er janvier 2021 et j'ai calculé les indicateurs suivants pour chaque arbitragiste réussi : bénéfice total, bénéfice moyen par transaction, nombre de transactions réussies et, surtout, la plus grande part de profit qu'ils ont avec un seul valideur.
En théorie, si un arbitragiste n'a pas de préférence pour les validateurs, cet indicateur « topValidatorProfitShare » devrait être proche de 1/21 = ~5%. En fait, de nombreux autres facteurs peuvent fausser le taux de réussite. Par exemple, les nœuds de l'arbitragiste peuvent partager le même centre de données avec certains des validateurs. Ou leurs nœuds peuvent avoir un peering direct avec un validateur. Heuristiquement, je suppose que tout ce qui est en dessous de 20 % est un indicateur de fair-play.
J'ai donc exécuté une requête et trié le résultat par bénéfice total. Et…
Eh bien, au moins les 10 meilleurs arbitragistes ne montrent aucun signe de relations privilégiées avec les validateurs. La première entrée suspecte (0x92ef7fac0708fc3c49921907361429ec14cd8cb6) est en position 15 avec 39% des bénéfices. Il a gagné 1,1m$ au total grâce aux blocs validés par NodeReal. Mais encore, cela ne suffit pas pour dire que c'est un jeu déloyal. Une entrée encore plus suspecte (0xba5276f63492b351c7227a4f285593cefa250ad3) est en position 45 avec 89% des bénéfices. Il a obtenu 566k$ au total à partir de blocs validés par HashQuark. Cela pourrait être un signe fort d'affiliation, mais dans ce cas, le bénéfice total semble trop faible. C'est environ 6 fois moins que 1/21 du marché total.
Ensuite, j'ai essayé de vérifier que cette entrée est spéciale en affiliation avec HashQuark. J'ai sélectionné uniquement les arbitragistes "favorisés" par HashQuark et les ai triés par leur " topValidatorProfitShare" décroissant.
Le gars suspect est à la première place. Et au fait, il a vraiment un bénéfice moyen incroyable par transaction réussie - 331 $. C'est beaucoup. Cependant, en second lieu, nous ne voyons absolument aucun arbitragiste remarquable avec un bénéfice total inférieur à 2k$. Dans le même temps, son topValidatorProfitShare n'est que de deux pour cent inférieur à celui du premier. Il ne semble pas qu'il profite de l'affiliation. Il a également plus de 6674 accords réussis, donc cela ne ressemble pas à un accident.
Eh bien, peut-être que les deux partagent accidentellement la même étagère dans le centre de données ? Nous ne le saurons jamais avec certitude.
Cependant, je peux dire que globalement, pour un marché aussi concurrentiel, les preuves d'affiliation sont très faibles (ou très bien déguisées) . Il semble que la plupart des joueurs jouent équitablement et qu'aucune baleine ne domine le marché. 😌
D'accord, nous savons maintenant que le marché de l'arbitrage flash sur BNB Smart Chain a une taille décente, une structure apparemment équitable et de nombreuses opportunités. On dirait que nous sommes prêts à y entrer et à nous battre pour le Lambo !
Eh bien, pas si vite ! Il manque encore une pièce au puzzle.
Comment les opportunités d'arbitrage sont-elles créées ?
Nous savons comment cela fonctionne en général - gros swaps DEX, liquidations, etc. Mais pour commencer à surveiller le mempool, nous devons savoir exactement quels types de transactions déclencheurs les arbitragistes observent.
Revenons à l'heureux élu qui a extrait plus de 60 000 $ en une seule transaction. Rappelles toi? Ce type a commencé mon voyage fascinant. En explorant le bloc sur BSCScan explore, nous pouvons facilement trouver sa transaction déclencheur. Il s'agit de la transaction dans le même bloc extrait immédiatement avant la transaction de l'arbitragiste. C'est ici:
https://bscscan.com/tx/0x06de0901e11bd19b3a42f0746e17604a9c8c502bdc4202737f24407bf1743f75
Il s'agit d'une opération de liquidation du protocole de prêt d'Alpaca Finance. Quelqu'un avait une position très importante dans ce protocole et, clairement, ce n'était pas exactement son jour. Leur position a été liquidée et leur collatéral a été automatiquement vendu sur PancakeSwap DEX .
De toute évidence, vérifier les déclencheurs pour chaque dizaine de millions de transactions d'arbitrage n'est pas une option. Et vous savez déjà comment je vais résoudre ce problème.
Serveurs et bases de données Datamint, outils d'analyse de données et quelques tasses de ☕️ .
Cette requête était probablement la plus compliquée et la plus gourmande en ressources de calcul. Lorsque j'ai appuyé sur "Exécuter", j'ai presque pu entendre les fans de nos serveurs de données hurler comme des moteurs à réaction. Heureusement, cette torture de serveur n'a pas duré longtemps et j'ai obtenu mes résultats.
Ainsi, les résultats ne sont pas surprenants du tout. Plus d'un tiers des bénéfices d'arbitrage impliquent des transactions vers le PancakeSwap DEX comme déclencheur . La fonction la plus populaire pour servir de déclencheur est le "swapExactTokensForTokens" . Il représente environ 14 % de tous les bénéfices . Cette fonction fait partie d'Uniswap V2 fork par la plupart des DEX sur BSC - par exemple BiSwap, ApeSwap, etc. La seule chose surprenante est encore une fois le FstSwap (ou FistSwap?) À la deuxième place juste après le PancakeRouter.
À ce stade, nous pouvons simplement choisir n'importe quelle combinaison d'adresses de déclenchement et de fonctions. Et maintenant, nous sommes prêts pour les expériences !
Mon équipe et moi avons dépensé des ressources pour faire des recherches plus approfondies sur les déclencheurs. Principalement, nous analysions la relation entre la concurrence et la rentabilité des différents déclencheurs. Cependant, cela est clairement hors de portée de cet article. Alors, s'il vous plaît contactez-nous si vous êtes intéressé par plus de détails.
À ce stade, j'avais toute la théorie dont j'avais besoin, mais la théorie n'est rien sans la pratique. Ce qui signifie…
Je dois commencer par un avertissement - mon objectif n'était pas de créer un bot d'arbitrage flash rentable. Je ne me fais pas d'illusions et je comprends tout à fait qu'il s'agit d'une tâche de développement complexe.
Mon objectif réel était de couper les virages autant que possible. Je voulais comprendre quelle est la distance entre un joueur expérimenté sur le marché et un débutant**.**
Alors, j'ai décidé que je ne ferai PAS :
1. Mettez en œuvre des simulations ou des estimations heuristiques du profit potentiel créé par chaque transaction. Je suppose que c'est là que les arbitragistes professionnels rivalisent en vitesse de calcul. Pour mes recherches, je créerai le déclencheur moi-même et ne répondrai qu'à mon propre déclencheur.
2. Rédigez et déployez un véritable contrat d'arbitrage . Ce n'est pas si difficile, mais je n'en ai pas besoin pour mes recherches. Si je peux placer ma transaction fictive à côté de ma propre concurrence débordante, alors rédiger le contrat est une question de technique.
3. Faire des optimisations spécifiques . Je ne modifierai pas les nœuds de la blockchain, n'optimiserai pas l'infrastructure, la mise en réseau, etc. C'est un terrier de lapin. Et si je ne peux pas gagner sans ça, ce ne sera certainement pas facile.
Ayant tout cela à l'esprit, j'ai créé un nœud BSC et écrit un script simple en Python. De cette façon, je pouvais surveiller toutes les nouvelles transactions dans le mempool en les récupérant constamment via la connexion IPC. Ensuite, je pourrais rechercher mon déclencheur conçu et envoyer immédiatement une transaction fictive répondante (transfert de 0 BNB sur mon propre compte).
Voici comment cela aurait dû fonctionner en théorie.
Mais je veux dire quelques mots sur la fabrication d'un déclencheur. J'avais besoin d'envoyer une transaction qui attirerait l'attention des arbitragistes actifs. Cela devrait être un gros échange pour au moins 10 000 $. Mais comment puis-je faire cela si je ne veux pas mettre d'argent réel dans le jeu ? Heureusement, lorsqu'ils se disputent la vitesse de réaction dans le mempool, les arbitragistes n'ont pas le temps de vérifier si l'expéditeur dispose des fonds nécessaires pour effectuer l'échange demandé.
J'ai donc pris ma propre petite transaction d'échange comme exemple et je l'ai éditée.
De cette façon, il est apparu comme un échange de 1 million de dollars (BUSD) contre CAKE chez Pancakeswap .
Voici à quoi ressemblait la charge utile de la transaction sur BSCScan.
La première expérience a montré que cette approche fonctionne parfaitement. Mon déclencheur a été miné, annulé (car je n'ai pas encore 1 million de dollars dans mon portefeuille 😆) et reculé d'environ 400 tentatives d'arbitrage. 400… À ce moment-là, je pensais que ma tentative de surjouer les grands était vouée à l'échec.
Mais je m'étais engagé à faire passer la chose. J'ai donc démarré mon script Python, attendu l'initialisation de la connexion au nœud et envoyé mon déclencheur soigneusement conçu à l'aide du champ Hex Data personnalisé de Metamask et de l'encodeur ABI (Application Binary Interface) en ligne https://abi.hashex.org/ . Presque immédiatement, j'ai vu une notification dans la console du nœud indiquant qu'un déclencheur avait été détecté dans le mempool et que la transaction de réponse factice avait été envoyée. Après quelques secondes, les deux transactions ont été extraites et j'ai ouvert BSCscan (ce qui n'est pas facile à faire quand on croise les doigts). J'ai évalué les résultats :
Mes attentes étaient faibles, mais vache sacrée, le résultat a été assez décevant. Même si j'ai réussi à mettre ma transaction de réponse dans le même bloc que le déclencheur, j'ai perdu la bataille face à des centaines d'autres arbitragistes .
Cela signifie qu'ils avaient tous un énorme avantage d'infrastructure - ils avaient peaufiné des nœuds puissants, des solutions réseau spéciales, un meilleur peering avec d'autres nœuds et d'autres optimisations que je ne connais même pas.
Faut-il s'arrêter là ? Ça aurait été sage, mais je voulais pousser les choses à l'extrême. J'allais présenter un test très difficile aux arbitragistes actifs.
Voici une courte digression pour mieux comprendre le fonctionnement du protocole Ethereum P2P . Lorsqu'un nœud reçoit de nouvelles transactions (de RPC ou d'autres nœuds), il les ajoute au mempool. Ensuite, il les retransmet aux autres nœuds connectés (peers). Ce processus a 2 particularités :
Connaissant ces deux choses, je pouvais simuler un énorme avantage de mon côté.
Je pouvais envoyer à la fois des transactions de déclenchement et de réponse dans un seul paquet .
Je pourrais également être sûr que j'envoie des transactions complètes tout de suite. Donc, en théorie, les arbitragistes ne devraient pas pouvoir insérer leurs transactions entre mon déclencheur et ma réponse. Ils sont réunis en un seul paquet, ils n'ont donc aucune latence entre eux.
Cette idée ne semblait pas aussi merveilleuse qu'au début après avoir passé des heures à fouiller dans le code source de bsc-geth, le logiciel de nœud officiel de la BNB Smart Chain. Cependant, tout passe, et finalement, j'ai pu envoyer des paquets personnalisés à 150 pairs de mon nœud.
J'ai soigneusement conçu les transactions de déclenchement et de réponse, les ai regroupées dans un seul paquet et les ai envoyées à des pairs. Je n'ai jamais été aussi nerveux en ouvrant BSCScan.
Ce que j'ai vu m'a laissé sans voix.
Le résultat était presque le même que lors de la course précédente! J'ai quand même perdu contre plus de 100 arbitragistes. Comment serais-ce t'il possible? Je ne vois que deux options ici. Soit les validateurs sont dans le jeu (ce qui est peu probable d'après les résultats de mes recherches) soit… Soit, la BNB Smart Chain a tellement de nœuds d'arbitrageur ! Cela signifie qu'ils peuvent intercepter les transactions sur chaque route vers le validateur. Les arbitres trouveront des déclencheurs, insèreront leurs propres transactions de réponse et retarderont les transactions des adversaires les plus faibles (oui, ceux comme moi 😢).
On dirait que les bénéfices de l'arbitrage flash ne sont pas du tout de l'argent facile. Je n'obtiendrai probablement pas de Lambo sur ce marché… Cependant, quelques instants avant de sombrer dans la dépression en pensant à mes rêves brisés, je me suis rappelé que mon entreprise n'est pas l'arbitrage.
Je travaille dans l'analyse de données en chaîne et les services de données à valeur ajoutée. Et cette recherche est formidable pour mon entreprise ! Cela montre tout ce que vous pouvez apprendre en utilisant uniquement les données publiques de la blockchain, les bons outils et l'engagement .
Ce fut un voyage fascinant qui, une fois de plus, a prouvé la puissance des données en chaîne. Mais pas n'importe quelles données ; Je veux dire des données exploitées avec des analyses appropriées et des outils efficaces comme le moteur de données Datamint . Et l'histoire n'est pas terminée, puisque nous avons publié l'application analytique Datamint BSC Arbitrage Monitor sur notre site Web. Vous pouvez continuer le voyage vous-même et chercher plus d'informations avec lui.
Mais pour résumer cette recherche, je vais réitérer les principales conclusions :
C'est tout pour aujourd'hui. Si vous aimez cette histoire, veuillez nous envoyer quelques lignes sur des sujets qui vous intéressent dans le domaine des données en chaîne. Cela nous aiderait à hiérarchiser les thèmes du contenu à venir, notamment les articles, la recherche, les outils en ligne et les webinaires .
Que les données soient avec vous !
À propos de l'auteur *:* Ivan Vakhmyanin est un expert en analyse et visualisation de données (BI, Big Data, Data Science) avec des années d'expérience. Il est également un adepte de la blockchain et du Web 3.0, rendant les données en chaîne des principales plateformes de blockchain (Ethereum, BNB Smart Chain, Solana, etc.) disponibles pour analyse. Ivan est passionné par le partage d'expérience en développant des programmes éducatifs dans le domaine de la gestion axée sur les données pour les spécialistes et les cadres.
Également publié ici