Chargement des prix…

Comment lire un explorateur de blocs pas à pas

Une vraie transaction Ethereum contient des dizaines de champs. Voici leur sens, leur utilité et deux arnaques que vous saurez repérer seul.

Comment lire un explorateur de blocs pas à pas

Ce qu’est un explorateur de blocs, et pourquoi on vous dit sans cesse d’en consulter un

Chaque fois qu’un problème survient avec une transaction crypto, qu’un retrait soit bloqué, qu’un swap ne soit pas arrivé ou qu’un ami affirme vous avoir payé, le conseil habituel est de « vérifier l’explorateur ». Pour un débutant, cette phrase est frustrante, car l’explorateur ressemble à un mur de chaînes hexadécimales et de jargon technique, et personne n’explique ce que signifient les différents champs.

Un explorateur de blocs est essentiellement un moteur de recherche pour une blockchain. Les blockchains comme Ethereum, Base, BNB Smart Chain, Polygon et Solana sont des registres publics, ce qui signifie que chaque transaction est enregistrée pour toujours et que tout le monde peut la consulter. Le rôle de l’explorateur est de prendre ces données brutes du registre et de les présenter sous une forme lisible par les humains. Etherscan est l’explorateur du mainnet Ethereum, BaseScan couvre le réseau Base, BscScan couvre BNB Smart Chain, PolygonScan couvre Polygon et Solscan couvre Solana. La compétence que vous développez sur l’un se transpose directement aux autres, car les concepts sous-jacents sont les mêmes.

Savoir lire un explorateur est important parce que les blockchains minimisent le besoin de confiance. Il n’existe pas de service client à appeler lorsque des fonds disparaissent. Si vous ne pouvez pas vérifier vous-même ce qui s’est passé on-chain, vous devez vous fier à la parole de quelqu’un d’autre, et c’est exactement la situation sur laquelle comptent les escrocs. Une fois que vous savez lire une page de transaction, vous pouvez répondre à des questions comme : ce paiement a-t-il vraiment été envoyé, est-il arrivé, s’agissait-il d’un transfert de token ou d’une autorisation de contrat, et cette adresse est-elle sûre pour interagir à nouveau ?

Risques et limites de ce qu’un explorateur peut et ne peut pas vous dire

Avant de parcourir une vraie transaction, il est utile de savoir où s’arrête l’explorateur et où il ne s’arrête pas. L’explorateur vous montre ce que la blockchain a enregistré, pas ce qui a été promis dans une fenêtre de discussion, un DM Discord ou un site web élégant. Si un escroc vous a convaincu d’envoyer 1 ETH pour « vérifier votre wallet », l’explorateur confirmera sans sourciller que le transfert a bien eu lieu, mais il ne peut pas vous dire que le discours sous-jacent était mensonger.

Il existe aussi de vrais modes d’échec. Les transactions peuvent rester bloquées dans le mempool, la zone d’attente des transactions non confirmées, si les frais de gas ont été fixés trop bas. Elles peuvent être remplacées ou « front-run » par un bot qui a copié une transaction rentable. Les contrats peuvent être mis à niveau après que vous les avez approuvés, transformant une autorisation de token autrefois sûre en outil de vidage de fonds. Les pertes les plus dévastatrices de ces dernières années, notamment le piratage du bridge Ronin, l’exploit Wormhole et d’innombrables vidages de wallets individuels, ont toutes laissé derrière elles des enregistrements de transaction parfaitement lisibles. Les données étaient là, mais les victimes ne savaient pas les lire à temps.

Les explorateurs ne sont pas non plus des oracles de sécurité parfaits. Un contrat peut être audité, largement utilisé, et contenir tout de même une porte dérobée cachée. Un token peut avoir des milliers de détenteurs et rester un honeypot conçu pour vous laisser acheter, mais jamais vendre. Considérez l’explorateur comme un outil d’analyse forensique, pas comme un moteur de recommandation. L’information est sur la page, mais l’interprétation vous revient.

La structure d’une page de transaction, champ par champ

Ouvrez n’importe quel hash de transaction Etherscan et vous verrez une page divisée en sections. Le haut présente un résumé en une ligne, le milieu constitue le cœur de la transaction avec les principaux champs, et le bas contient des onglets pour les logs, les transactions internes, les transferts de tokens et les commentaires. Parcourons chaque champ en prenant comme exemple un transfert typique de token ERC-20, car les transferts de tokens sont ce que la plupart des débutants ont réellement besoin de savoir lire.

Transaction Hash, Status et Block

Le champ Transaction Hash est l’empreinte unique de la transaction, une longue chaîne de lettres et de chiffres qui commence par 0x. C’est l’information la plus utile, car si vous l’avez, vous pouvez retrouver la transaction exacte sur n’importe quel explorateur compatible. Le champ Status affiche une coche verte en cas de succès ou une croix rouge en cas d’échec. Une transaction échouée consomme tout de même du gas, donc voir une croix rouge ne signifie pas que l’utilisateur a automatiquement récupéré son ETH. Cela signifie généralement que la logique du contrat a été annulée.

Le champ Block indique dans quel bloc la transaction a été incluse et combien de « confirmations » elle possède. Les confirmations correspondent au nombre de blocs minés au-dessus de celui qui contient votre transaction. Plus il y a de confirmations, plus il est difficile de revenir en arrière. La plupart des services considèrent que 12 confirmations sur Ethereum sont très sûres, même si les plateformes d’échange en exigent souvent davantage pour les dépôts importants.

From, To et Interacted With

Le champ From est l’adresse d’envoi. Le champ To est l’adresse de réception, mais c’est là que les débutants se trompent souvent. Pour un transfert natif d’ETH, le champ « To » correspond au wallet du destinataire. Pour un transfert de token ERC-20, le champ « To » est en réalité le contrat du token, et la page affichera une seconde section intitulée Interacted With qui nomme le contrat du token. La raison est que les tokens ne résident pas dans les wallets comme le fait ETH. Ils existent à l’intérieur d’un smart contract, et le solde de votre wallet n’est qu’un nombre que le contrat associe à votre adresse.

Cliquez sur l’adresse « To » ou « Interacted With » pour ouvrir la page du contrat. Sur cette page, vous verrez le nom du contrat, le déployeur, la date de création et un onglet permettant de lire le code source s’il a été vérifié. Les contrats vérifiés sont beaucoup plus sûrs pour les interactions, car n’importe qui peut lire ce que le code fait réellement.

Value, Transaction Fee et Gas Price

Le champ Value indique la quantité d’ETH natif déplacée dans cette transaction. Pour un transfert ERC-20, il s’agit souvent de 0 ETH, car c’est le token qui a été déplacé, pas ETH. Le montant du token est affiché séparément plus bas. Le champ Transaction Fee correspond au coût total du gas, payé en ETH, calculé comme le gas utilisé multiplié par le prix du gas. Le champ Gas Price indique ce que l’expéditeur était prêt à payer par unité de gas, exprimé en gwei, une sous-unité d’ETH où 1 gwei équivaut à 0,000000001 ETH.

Le gas est l’unité qui mesure le travail de calcul effectué par le réseau. Un simple transfert d’ETH utilise 21 000 gas. Un swap complexe sur une plateforme d’échange décentralisée peut en utiliser plusieurs centaines de milliers. C’est pourquoi certaines transactions coûtent quelques centimes et d’autres plusieurs dizaines de dollars, même lorsque la valeur en ETH déplacée est la même.

Nonce et Input Data

Le Nonce est un compteur pour l’adresse d’envoi, qui commence à 0 et augmente de 1 à chaque transaction. C’est ainsi que le réseau conserve l’ordre des transactions provenant du même wallet. Si vous envoyez deux transactions avec le même nonce, une seule sera confirmée, et l’autre sera remplacée ou abandonnée. Le champ Input Data affiche les données brutes envoyées avec la transaction. Pour un simple transfert d’ETH, il est vide ou indique « 0x ». Pour un transfert de token ou un appel de contrat, il contient un sélecteur de fonction et des paramètres, c’est-à-dire les instructions encodées que le contrat exécutera.

Lire les données d’entrée brutes est difficile, mais Etherscan aide à le faire. Si le contrat est vérifié, la page affiche une section Decoded Input Data qui traduit l’hexadécimal en noms de fonctions et en arguments lisibles. Pour un transfert ERC-20, vous verrez une fonction appelée « transfer » avec deux arguments : l’adresse du destinataire et le montant. Pour un swap Uniswap, vous verrez quelque chose comme « swapExactTokensForTokens » avec le montant d’entrée, la sortie minimale et le chemin des tokens échangés. C’est ce qui se rapproche le plus d’un reçu sur une blockchain.

Pending ou dropped : ce que signifie chaque statut

Une transaction commence son existence en étant Pending, ce qui signifie qu’elle a été diffusée au réseau et se trouve dans le mempool en attendant qu’un validateur l’inclue dans un bloc. Elle devient Success ou Failed lorsqu’un bloc l’inclut et que l’exécution du contrat se termine. Un état distinct, parfois appelé Dropped ou Replaced, se produit lorsqu’une transaction n’est jamais minée, soit parce que le prix du gas était trop bas pour intéresser les validateurs, soit parce que l’utilisateur a envoyé une transaction de remplacement avec le même nonce et des frais de gas plus élevés.

Pour accélérer une transaction bloquée, la plupart des wallets proposent un bouton « speed up » qui rediffuse la même transaction avec le même nonce, mais avec un prix du gas plus élevé. Pour l’annuler, le wallet envoie une transaction de valeur 0 à votre propre adresse avec le même nonce et un gas plus élevé, ce qui rend en pratique la transaction d’origine invalide. Les deux approches ne fonctionnent que tant que la transaction d’origine est encore en attente. Une fois qu’une transaction est confirmée, elle ne peut jamais être annulée ni inversée, d’où l’importance de bien vérifier l’adresse du destinataire avant de signer.

Transactions internes et transferts de tokens, et pourquoi ce n’est pas la même chose

Faites défiler la page de transaction vers le bas et vous verrez des onglets intitulés Logs, Internal Transactions et ERC-20 Token Transfers. Les débutants les confondent souvent, mais ils désignent des choses différentes. Les Token Transfers sont des événements émis par un contrat de token lorsque quelqu’un appelle sa fonction de transfert. Ils font partie de la transaction normale et sont stockés on-chain sous forme de logs d’événements.

Les Internal Transactions, parfois appelées « traces », ne sont pas de vraies transactions au sens du consensus. Ce sont des mouvements d’ETH déclenchés par l’exécution d’un smart contract. Lorsqu’un contrat appelle un autre contrat, ou envoie de l’ETH à une adresse dans le cadre de sa logique, ce mouvement est enregistré comme une transaction interne. Elles n’apparaissent pas dans les blocs de la même manière que les transactions ordinaires, mais l’explorateur les affiche par commodité. Les transferts de tokens et les transactions internes peuvent tous deux être importants lors de l’audit d’un piratage, car les fonds réellement volés passent souvent par plusieurs contrats, et la seule façon de suivre la piste est de lire attentivement ces onglets.

Deux signaux d’alerte que vous pouvez désormais repérer vous-même

Avec les champs ci-dessus en tête, deux schémas d’arnaque courants deviennent évidents une fois que vous savez quoi chercher. Le premier est un contrat qui appelle setApprovalForAll sur quelque chose qui n’est pas une marketplace ERC-721 reconnaissable. setApprovalForAll est une fonction des contrats NFT qui permet à un tiers de déplacer chaque NFT de votre wallet. Son usage légitime est rare en dehors de marketplaces connues comme OpenSea, Blur ou X2Y2. Si vous voyez cette fonction appelée dans une transaction que vous n’avez pas initiée, ou avec une adresse d’opérateur qui n’est pas une marketplace en laquelle vous avez confiance, votre wallet a été compromis et vous devez révoquer l’approbation immédiatement à l’aide d’un outil comme l’explorateur Revoke.cash.

Le second signal d’alerte est un transfert natif d’ETH d’une valeur de 0 depuis une adresse que vous ne reconnaissez pas. Les arnaqueurs utilisent une tactique appelée address poisoning, qui consiste à envoyer une transaction minuscule ou de valeur nulle depuis une adresse qui ressemble à une adresse que vous avez déjà utilisée, en espérant que vous copierez plus tard l’adresse depuis votre historique et que vous leur enverrez des fonds par erreur. La vue de l’explorateur rend le schéma évident : la valeur est 0, le champ « To » est votre adresse, et le champ « From » est une adresse aléatoire sans historique. Si vous en voyez une dans votre wallet, ignorez-la, et ne faites jamais confiance à une adresse provenant de votre historique de transactions sans vérifier manuellement les premiers et les derniers caractères.

Comment suivre l’activité on-chain intelligemment

Les explorateurs de blocs sont puissants, mais lire manuellement des transactions individuelles ne passe pas à l’échelle. Chaque jour, des milliers de nouveaux lancements de tokens, d’approbations et de schémas d’exploitation apparaissent sur Ethereum, Base, BNB Smart Chain, Polygon et Solana, et la seule façon de rester à jour est de suivre l’actualité liée à l’activité qui vous intéresse. Zippfeed met en avant les gros titres crypto avec une notation du sentiment, indiquée comme bullish, neutral ou bearish, ainsi qu’une note d’importance, afin que vous puissiez voir quelles transactions et annonces comptent réellement et ignorer le bruit. Ajoutez à cela quelques minutes dans Etherscan chaque fois qu’une transaction semble suspecte, et vous disposez de la même boîte à outils d’analyse forensic que les professionnels.

Questions fréquemment posées

Est-il sûr de coller mon adresse dans un explorateur de blocs ?
Oui. Les explorateurs de blocs sont des outils en lecture seule. Rechercher une adresse ou un hash de transaction ne vous oblige pas à connecter votre wallet ni à signer quoi que ce soit, cela ne peut donc pas déplacer vos fonds. Le risque commence seulement si vous cliquez sur un lien provenant d’une source non vérifiée. Saisissez donc toujours l’URL de l’explorateur directement dans votre navigateur ou utilisez un favori.
Comment faire la différence entre un transfert ETH et un transfert de token sur Etherscan ?
Un transfert natif en ETH affiche une valeur non nulle dans le champ « Value » et une adresse « To » classique. Un transfert de token ERC-20 affiche généralement 0 dans le champ « Value », pointe « To » vers un contrat de token et indique le montant réel du token dans une section distincte « ERC-20 Token Transfers ». Les deux sont des transactions normales, mais le réseau les interprète de manière très différente.
Dois-je accélérer ou annuler une transaction bloquée ?
Si vous voulez toujours que la transaction aboutisse, accélérez-la en la rediffusant avec un prix du gas plus élevé. Si vous l’avez envoyée par erreur ou si vous n’en avez plus besoin, annulez-la en envoyant une transaction de valeur 0 à votre propre adresse avec le même nonce et un gas plus élevé. Ces deux options disparaissent dès que la transaction est confirmée, il faut donc agir vite. Ceci est une information générale, pas un conseil financier, et les frais de gas sont toujours payés en ETH.
Que signifie le fait qu’un contrat que j’ai approuvé soit ensuite exploité ?
Une approbation de token est une instruction permanente qui autorise un contrat précis à déplacer un montant précis d’un token précis depuis votre wallet. Si ce contrat est piraté, l’attaquant peut utiliser l’approbation que vous avez déjà signée pour vider le montant approuvé. Vous pouvez vérifier et révoquer les approbations actives sur un site comme Revoke.cash. La pratique la plus sûre consiste à n’approuver que le montant exact nécessaire, puis à révoquer rapidement les approbations après utilisation.
Tokens associés
$ETH