Nous connaissons Ethereum comme une blockchain de deuxième génération, laquelle, du fait qu’elle est programmable par le biais de sensible contracts, a engendré la création de nouvelles monnaies, d’software de la DeFi, de certificats d’identifications d’œuvres sous forme de NFT… etherscan.io est une fenêtre ouverte sur l’intégralité de cet écosystème multiforme. Toutes les activités intervenant ou intervenues sur la blockchain Ethereum peuvent être consultées dans le détail grâce à etherscan.io. Dans cette deuxième partie (NDLR: lire la première partie ici), nous allons examiner dans le détail ce qui se passe, du début à la fin, lorsque vous êtes à l’origine d’une transaction tel que le transfert de crypto-actifs de votre portefeuille à celui d’un autre. Ce faisant, le travail des validateurs et leur approche des transactions devrait devenir plus clair. Et oui… La session de etherscan.io amène réellement à mieux prendre la mesure de la révolution que représentent des blockchains telles que Ethereum.
Daniel Ichbiah
The Merge en septembre 2022 a consacré la transition de Ethereum d’un système à preuve de travail en un sytème à preuve d’enjeu (plus d’info sur The Merge ici). Depuis, alors qu’on nommait « mineurs » les responsables de la vérification d’une transaction, on les désigne à présent sous le nom de « validateur ».
Pourtant, le principe d’une blockchain telle que Ethereum n’a fondamentalement pas changé, et pour mieux le comprendre, il faut revenir aux sources. Imaginez que vous ayez envisagé de créer un système monétaire parallèle à celui des banques et totalement fiable, remark auriez-vous procédé ? Vous auriez mis au level un algorithme de validation des transactions qui garantisse leur authenticité. Et vous auriez dû concevoir l’équivalent d’un registre comptable répertoriant toutes ces transactions, conçu de façon telle qu’il soit unimaginable de le falsifier ou même de le mettre en doute. Nous le savons, ces principes ont présidé à la création du Bitcoin puis de Ethereum.
Dans le système classique, lorsque vous transférez des euros de votre compte en banque vers le compte d’un autre individu habitant en Suède, votre demande est d’abord inscrite sur l’ordinateur de votre banque. Elle est vérifiée par votre banquier – est ce que votre compte dispose de suffisamment d’euros pour permettre ce transfert, est-ce que le compte destinataire est valide, and many others. Puis la somme d’argent est transférée vers l’ordinateur de la banque suédoise. Il arrive qu’une telle opération s’étale sur plusieurs jours.
Dans le cadre d’une blockchain comme Ethereum, c’est une multitude d’ordinateurs – ceux des validateurs – qui effectuent la vérification d’une transaction par le biais d’un calcul mettant en jeu la cryptologie. Au closing, l’un de ces validateurs va inscrire une nouvelle info dans le registre commun à tous ces ordinateurs qu’est la blockchain Ethereum.
On désigne ce réseau décentralisé d’ordinateurs sous le nom de Ethereum Digital Machine (EVM). La beauté de la selected, c’est que n’importe qui peut, à tout second, entrer dans la boucle et participer à l’EVM. Et n’importe qui peut sortir de l’EVM sans que le système en soit le moins du monde impacté : à tout second, la blockchain Ethereum proceed d’être mis à jour. Et à la différence du monde des banques centrales, n’importe qui, depuis son ordinateur, peut prendre connaissance de la moindre transaction effectuée depuis la 1ère seconde d’Ethereum : le moindre transfert, le moindre sensible contract jamais créé, la moindre monnaie dérivée, la moindre création d’un NFT suivi d’un potentiel achat…
Il pourrait sembler unimaginable d’embrasser une activité aussi titanesque depuis un easy web site Internet et pourtant, c’est ce qu’amène etherscan.io. Cette software nous ouvre à l’intégralité de la blockchain Ethereum tandis qu’elle est mise à jour en temps réel par toutes sortes de validateur en divers endroits du monde.
Au cours de la 1ère partie de cette introduction à etherscan.io, nous avons pu observer remark il est attainable d’examiner dans le détail chaque élément de cette activité foisonnante. Dans ce 2ème article, nous allons suivre ce qui se passe lorsque vous êtes à l’origine d’une transaction sur la blockchain Ethereum. Ce processus peut être suivi pas à pas through etherscan.io. Vous devriez en tirer une compréhension affinée du travail des validateurs de cette blockchain.
1. La transaction peut-elle être traitée ?
Pour mémoire, une transaction est créée à chaque fois qu’un utilisateur la déclenche depuis son pockets, ce qui implique habituellement le transfert d’un sure montant vers un autre pockets (et donc une autre adresse).
Pourtant, avant qu’une transaction ne puisse être soumise à validation, il est nécessaire qu’elle soit perçue comme valide par votre pockets (Metamask, Coinbase Pockets, Belief Pockets…). Ainsi, vous devez bien évidemment disposer des fonds que vous souhaitez transférer, et parfois aussi de certaines permissions.
2. Création d’un hash pour la transaction
Chaque fois qu’une telle opération est jugée exécutable, la toute première motion consiste à lui attribuer un identifiant de transaction, lequel sera seen dans etherscan.io dans la colonne Txn Hash.
La transaction en attente n’est pas inscrite sur la blockchain – ce qui constituerait un encombrement inutile – mais ajoutée à un pool de transactions en attente d’exécution. Ce pool de transaction en attente est appelé le mempool.
A partir de là, ladite transaction devient seen sous etherscan.io, le mempool étant accessible en tant que Pending Transaction.
3. Ajout de la transaction au pool des transactions
Nous pouvons observer le mempool / les transactions en attente sur etherscan.io, depuis le menu Blockchain / Pending transactions. Les hash des transactions apparaissent dans la 1ère colonne (Txn Hash).
Nous voyons ensuite apparaître une colonne appelée Nonce. Il concerne certaines transactions intervenant dans une séquence de transactions – ce qui pourrait être par exemple déclenché par un sensible contract – et désigne leur numéro dans cette séquence.
Les colonnes suivantes indiquent l’heure, la limite de fuel, le prix de fuel, l’émetteur et le destinataire et le montant concerné.
Dans l’exemple ci-dessus, nous pouvons voir dans les colonnes From et To que plusieurs transactions ont été placées dans le mempool depuis quelques secondes.
Si nous cliquons sur l’identifiant d’une des transactions en attente (sous la colonne Txn Hash), nous avons accès à davantage de détails à son propos. Ce qui nous intéresse ici est son Standing. Au départ, ce statut est égal à Pending (en attente).
Puisque la transaction est Pending, elle doit être sélectionnée par au moins un nœud de validation.
4. Plusieurs validateurs s’intéressent à la transaction.
Les validateurs ont pour habitude de consulter la mempool afin de choisir quelle transaction traiter à un second donné. En fonction de cette liste de transactions en attente, chacun va normalement en sélectionner une, avec pour intention de l’intégrer à un bloc de transactions Ethereum. Ce processus de choix peut être effectué de manière automatique ou manuelle.
Par principe, les validateurs vont sélectionner les transactions proposant les prix de fuel les plus élevés, puisque nous avons là leur rémunération.
5. Compétition entre les validateurs pour résoudre la transaction
Habituellement, plusieurs validateurs se retrouvent en compétition en vue de résoudre l’équation relative à l’énigme de kind POS (proof-of-stake – preuve d’enjeu).
6. L’un des validateurs valide la transaction
Une fois qu’une resolution a été trouvée par l’un des validateurs, sous etherscan.io, la transaction qui était en mode « Pending » a désormais le statut Success. Elle est intégrée à un bloc. Puis ce bloc lui-même est confirmé et peut être diffusé sur le réseau EVM. Nous avons également l’indication du n° de bloc dans lequel cette transaction a été inscrite.
Une telle transaction quitte le pool des Pending transactions et peut désormais être consultée depuis le menu Blockchain / View Txns. Elle fait désormais partie, de manière permanente de la blockchain Ethereum.
Si nous cliquons sur le n° de bloc indiqué, nous pouvons voir qu’il a fallu 12 secondes à builder0x69 pour valider cette validation. Le bloc ajouté à la blockchain comporte au complete 157 transactions mais aussi 49 transactions liées à des sensible contracts.
7. La récompense du validateur
Un peu plus bas sur la même web page, nous pouvons voir quelle a été la rémunération du validateur.
Comme indiqué en face de la point out Block Reward, builder0x69 a recu un paiement de 0,04 ETH.
Quand une transaction n’aboutit pas ?
Les étapes de 4 à 6 n’aboutissent pas toujours à l’exécution d’une transaction.
En advisor les Pending Txns sur etherscan.io, vous devriez trouver des exemples tels que les suivants.
Dans la determine ci-dessus, nous avons l’exemple d’une transaction qui n’a pas été validée alors qu’elle a été lancée depuis 24 heures. Or, cette transaction concerne l’envoi de 0,004 ETH.
Si nous cliquons dans l’identifiant situé en face de From nous pouvons en apprendre davantage. La personne qui a initié cette transaction ne dispose que de 0,0047 ETH dans son pockets. Apparemment, cette somme n’est pas suffisante pour couvrir à la fois le montant à débourser et les charges que compte prendre le validateur de la transaction. Par conséquent, cette transaction tarde à passer l’étape initiale consistant à trouver un validateur qui veuille bien prendre en cost l’exécution de cette transaction.
Notons que celui qui est à l’origine de la transaction peut influer sur la limite de fuel, afin d’obtenir un traitement plus rapide et qu’une telle choice est habituellement proposée par son pockets.
Dans cet autre exemple, nous avons l’exemple d’une transaction en attente qui n’a pas été validée et qui porte la point out « Fail with error » (échec avec erreur). Plus bas, nous pouvons voir que la transaction a été « Reverted » – elle n’a pas été exécutée et le pockets a été restauré dans son état précédant la transaction.
Une transaction peut se retrouver en échec si le pockets ne dispose pas d’un solde suffisant pour régler le montant indiqué au second de l’exécution de la transaction, si le fuel disponible dans le pockets est insuffisant, si un souci dans un contrat est rencontré – ce qui est le cas ici, and many others.
L’approche des validateurs
Ces quelques exemples pris sur etherscan.io aident à mieux comprendre quelle est l’approche des validateurs. Fort naturellement, ceux-ci cherchent à maximiser le montant de la compensation perçue pour une quantité donnée de travail fournie.
Lorsqu’ils choisissent des transactions à intégrer dans un bloc, les validateurs tendent à sélectionner :
- Les transactions avec le niveau le plus élevé de prix par unité de fuel.
- Autant de transactions que possibles, en conformité avec la limite de fuel totale imposée par Ethereum au niveau d’un bloc
Etant donné que Ethereum est un écosystème qui gère des monnaies, des functions de la DeFi, des NFTs, des sensible contracts, le nombre de transactions en attente à un second donné est considérable. De fait, si vous rafraîchissez la web page des Pending Transactions sous etherscan.io, vous pouvez constater que de nouvelles transactions à traiter apparaissent à chaque fois.
Déterminer le prix du fuel à un second donné
Plus le fuel est élevé et plus les validateurs auront envie de sélectionner les transactions correspondantes. Et de fait, un fuel élevé améliore les probabilities qu’une transaction soit sélectionnée, confirmée et exécutée.
Etherscan.io nous fournit un outil pour savoir ce qu’il en est à un second donné. Il est accessible through le menu : Extra, puis dans la part Discover : Fuel Tracker.
Comme nous le voyons sur cette determine, au second où cette seize a été faite le prix de fuel allait de 27 gwei pour un traitement lent à 28 gwei pour un traitement rapide. La fee payée pour une transaction (en ETH) est égale à ce prix de fuel choisi, multiplié par la quantité de fuel utilisée par cette transaction. Un peu plus bas sur la gauche, nous voyons quelques exemples de fuel moyen sur : 2,76 $ pour une transaction sur OpenSea, 7,12 $ sur Uniswap. Ce prix de fuel complete qu’il faudra débourser est habituellement seen depuis la plateforme où l’on effectue une transaction ou depuis son pockets.
Nous avons vu ici remark etherscan.io nous permettait de suivre l’épopée d’une transaction donnée jusqu’à son exécution réussie ou son rejet.