Analyser une transaction sur Etherscan

Allypry
6 min readJul 9, 2024

--

Ethereum est l’une des blockchains les plus populaires et les plus utilisées dans le domaine des cryptos. Que vous soyez développeur, passionné ou analyste blockchain en devenir, comprendre comment lire les détails des transactions sur les explorateurs de blocs est une compétence essentielle pour l’analyse des données.

Bien qu’il ne soit pas nécessaire d’être développeur professionnel en Solidity pour analyser une transaction, certaines ressources comme solidity.org peuvent être utiles.

Qu’est ce qu’un explorateur de blocs ?

Un explorateur de blocs est un outil qui vous permet d’accéder à des informations spécifiques et à l’historique des transactions sur une blockchain. Vous y trouverez des détails sur les blocs, les adresses de portefeuilles, les contrats intelligents et bien plus.

Bien qu’il existe de nombreux autres explorateurs de blocs, tels que onceupon.xyz ou OKX Explorer, etherscan est l’un des plus puissants et des plus complets. Il est certainement le plus utilisé lorsqu’il s’agit de la blockchain Ethereum.

Bon à savoir : etherscan est également disponible pour les testnets.

Détails d’une transaction

Sur etherscan, en cliquant sur une transaction, vous verrez certaines données. Voici à quoi cela ressemble :

Tout d’abord, commençons par identifier tous les champs que vous verrez sur la page de transaction :

  • Transaction Hash (TxHash) : le hash de la transaction.
  • Status : indique l’état de la transaction (confirmée, en attente ou échouée).
  • Block : le numéro du bloc dans lequel la transaction a été incluse.
  • Timestamp : la date et l’heure à laquelle la transaction a été ajoutée au bloc.
  • From : l’adresse de l’expéditeur.
  • To : l’adresse du destinataire. Cela peut également être une adresse de contrat intelligent.
  • Value : le montant de la cryptomonnaie transférée.
  • Transaction Fee : les frais payés pour la transaction.
  • Gas Price : le prix du gas payé par l’expéditeur.

Ensuite, dans la section “More details + Click to show more”, vous trouverez des informations supplémentaires :

  • Ether Price: Prix de l’Ether à la date de la transaction.
  • Gas Limit & Usage by Txn: montant maximum de gas alloué pour la transaction.
  • Gas Fees: frais de gas du réseau.
  • Burnt & Txn Savings Fees: total d’ETH brûlé lors de cette transaction.
  • Other Attributes: autres données relatives à cette transaction.
  • Input Data: données supplémentaires.

Les “Input data” sont les données brutes. Dans certains cas, Etherscan vous permet de décoder ces données et de les rendre plus lisibles.

Une des choses les plus importantes à comprendre est la différence entre une adresse EOA (Externally Owned Address) et une adresse de contrat.

Les EOA sont adresses de portefeuille accessibles uniquement avec une clé privée. L’adresse du contrat fait référence à l’adresse hébergeant le code qui exécute des fonctions sur la blockchain.

La plupart du temps, les contrats sont déployés par des EOA et sont appelés pour exécuter du code. Si vous cliquez sur une adresse, vous verrez en haut à gauche s’il s’agit d’un contrat ou d’un EOA.

Dans le cas d’un contrat, vous pouvez même voir son créateur.

Analyser les Logs

Les “Event Logs” sont des enregistrements créés par les smart contract pour documenter des événements particuliers qui se produisent lors de l’exécution d’une transaction. Ils sont stockés sur la blockchain et peuvent être consultés pour analyser ce qui s’est passé pendant son exécution. Les Logs sont importants pour comprendre les événements sur la blockchain. La plupart du temps, les utilisateurs peuvent les utiliser pour suivre les transferts de tokens, surveiller l’activité des DEX…

Pour accéder à la page des “Event Logs”, il suffit de consulter une transaction et de cliquer sur “Logs” :

Vous devriez avoir accès au informations suivantes:

  • Address : adresse qui a émis l’événement.
  • Name : nom de l’événement émis par le contrat intelligent.
  • Topics : les topics sont des filtres qui aident à identifier et récupérer plus facilement des événements spécifiques. Chaque événement peut avoir plusieurs topics pour le décrire. Ces topics sont généralement des valeurs hachées des signatures d’événements et des paramètres importants.
  • Data : ces données contiennent des informations spécifiques qui ont été enregistrées lors de l’émission de l’événement. Elles incluent les valeurs des paramètres définis par l’événement.

Topics

Les “Topics” sont des composants clés dans les Logs sur Ethereum. Ils sont utilisés pour indexer et filtrer les événements.

  • Topic 0 : est toujours réservé au hash de la signature de l’événement. Cela permet de connaitre immédiate le type d’événement qui a été émis sans avoir à analyser les données brutes.
  • Topics 1 à 3 : contiennent les paramètres indexés de l’événement. La plupart du temps, les topics 1 et 2 peuvent contenir les adresses de l’expéditeur et du destinataire.

Data

La partie “Data” des Logs contient les informations spécifiques, nécessaires à la compréhension des événements émis par le smart contract. En d’autres termes, les données fournissent des détails sur l’événement. Cela peut être très utile pour une analyse approfondie et pour vérifier l’intégrité et la conformité des opérations.

Dans l’image ci-dessous, la partie Data contient le montant transféré en wei (la plus petite dénomination d’ETH).

Section “State”

La section “State” fournit un instantané de l’état des smarts contract et des comptes affectés par une transaction. Elle montre les valeurs des variables avant et après une transaction, mettant en évidence les changements. Vous pouvez utiliser la rubrique “State” comme une sorte de résumé de la transaction analysée.

Suivez les “Traces”

Les “Traces” sont des enregistrements détaillés de chaque étape et opération exécutée lors d’une transaction. Elles fournissent une visibilité complète sur les appels des smarts contracts, les créations de contrats, les transferts de valeurs...

Il existe 4 différents types de Traces :

  • CALL : est l’instruction la plus couramment utilisée pour invoquer une fonction dans un autre contrat. Cet appel peut également transférer de l’ETH si nécessaire.
  • DELEGATECALL : exécute le code d’un autre contrat dans le contexte du contrat appelant.
  • CREATE : est utilisé pour déployer un nouveau contrat sur la blockchain.
  • STATICCALL : est utilisé pour appeler une fonction dans un autre contrat sans permettre aucune modification de l’état.

Vous pouvez trouver ces informations dans la section “Internal Transaction” d’une transaction sur etherscan.

Certains outils tels que Sentio ou Phalcon permettent une analyse plus fine et détaillé des Traces.

Apprendre à utiliser des explorateurs de blocs comme etherscan est essentiel pour toute personne impliquée dans l’écosystème. En maîtrisant les détails des transactions, des Logs et des Traces, vous obtiendrez une compréhension complète des activités on-chain.

--

--