MSTR Cat

Blockchain/Niveau VII · Évolution/7.1 Ethereum : l'ordinateur mondial/Leçon 2

Comptes et état global

Des pièces discrètes à un état global unique et modifiable

MatérielLe Livre jaune d’Ethereum (G. Wood)Le document blanc d’Ethereum de Vitalik Buterin (2013/2014)Accès à Etherscan ou à un autre explorateur de blocs d’Ethereum

Curiosité

  1. Pourquoi le suivi de la richesse en tant que collection de sorties non utilisées rend-il difficile l’écriture de programmes polyvalents ?
  2. Quelle conséquence mécanique découle du fait de permettre à toute transaction de lire et d’écrire dans le stockage de l’ensemble du réseau ?
  3. Comment un modèle basé sur les comptes modifie-t-il le coût de vérification de l’historique par rapport à un ensemble d’UTXO ?

Explorer

  1. Bitcoin suit la valeur à travers les sorties de transactions non utilisées, ou UTXO. Chaque transaction consomme des entrées spécifiques et crée de nouvelles sorties ; la validation ne vérifie que les pièces qui sont dépensées (leçon 2.2.1). Ce modèle est local et discret. Ethereum, lancé en juillet 2015 par Vitalik Buterin et d’autres cofondateurs dont Gavin Wood, adopte une machine à états basée sur des comptes. Chaque adresse possède un solde qui est mis à jour directement. Toute l’histoire du réseau est compressée en un seul objet d’état global : les soldes actuels de tous les comptes ainsi que les emplacements de stockage de tous les contrats déployés.
  2. Dans ce modèle, deux types de comptes existent : les comptes détenus externement (EOA), contrôlés par des clés privées, et les comptes de contrat, contrôlés par du code. Un EOA initie les transactions ; un contrat exécute sa logique uniquement lorsqu’il est invoqué. La fonction de transition d’état prend l’état global actuel ainsi qu’une transaction, puis produit un nouvel état global. Comme chaque nœud calcule cette transition de manière déterministe à partir du même point de départ, le consensus se met en place sans besoin de confiance. Cette structure rend possible le calcul général, car tout compte peut conserver des données arbitraires dans son stockage.
  3. L’expressivité du modèle de compte permet des applications complexes telles que des exchanges décentralisés et des protocoles de prêt. Un contrat peut représenter une valeur de plusieurs milliards et exécuter une logique complexe en fonction des conditions mondiales. Cependant, ce pouvoir introduit une fragilité. Étant donné que l’état est modifiable et partagé, une seule erreur dans le code d’un contrat peut épuiser son solde total ou corrompre les contrats liés. La vulnérabilité de réentrance exploitée lors du piratage de The DAO (juin 2016) a montré comment un défaut local pouvait affecter l’état global, entraînant ainsi une bifurcation menée par la communauté.
  4. La croissance de l’état est une conséquence inhérente à cette conception. L’ensemble des UTXO de Bitcoin augmente également, mais chaque entrée est de petite taille et est supprimée lorsqu’elle est utilisée ; le stockage des contrats d’Ethereum s’accumule quant à lui. Chaque opération `SSTORE` ajoute des données qui persistent indéfiniment sauf si elles sont explicitement mises à zéro (ce qui coûte néanmoins de l’énergie). Cette croissance illimitée rend le fonctionnement d’un nœud complet de plus en plus gourmand en espace disque et en mémoire. Les nœuds doivent conserver l’ensemble de l’état global pour valider les transactions, ce qui crée un compromis entre la puissance de calcul et le coût de vérification.
  5. Le Yellow Paper d’Ethereum formalise cela comme une fonction de transition d’état déterministe. L’EVM traite les instructions selon un principe de machine à pile, où des opérations telles que `ADD` ou `SLOAD` modifient le contexte d’exécution local tout en mettant éventuellement à jour le stockage global des comptes. Cette architecture permet la complétude de Turing, mais nécessite du gas pour garantir son terminaison. Chaque opération consomme du gas, ce qui empêche les boucles infinies et limite le coût computationnel de toute transaction par rapport à la limite de gas du bloc.
  6. Ouvrez un explorateur de blocs comme Etherscan et examinez une interaction récente avec un contrat. Consultez l’onglet « Storage » sur la page du contrat ; il liste des paires clé-valeur qui constituent l’état permanent du compte. Notez comment ces valeurs changent après chaque transaction impliquant cette adresse. Cette vue révèle la réalité concrète de l’état global : le code n’est pas seulement exécuté, mais aussi stocké, ses données persistant au-delà des transactions et s’accumulant avec le temps.

Faits clés

  • Ethereum utilise un modèle basé sur des comptes où les solde sont mis à jour en temps réel, contrairement au système UTXO de Bitcoin.
  • L’état global comprend tous les solde de compte et le stockage des contrats, que toute transaction peut lire ou écrire.
  • Les comptes contractuels sont contrôlés par des codes ; les comptes appartenant à des tiers sont contrôlés par des clés privées.
  • La croissance de l’État est illimitée car le stockage contractuel persiste indéfiniment, augmentant les exigences en matière d’équipement matériel des nœuds.
  • Une seule erreur dans un contrat intelligent peut épuiser son solde total en raison de la nature mutable de l’état global.
  • L’EVM s’exécute de manière déterministe sur chaque nœud, assurant le consensus grâce à des transitions d’état identiques.

Exercice neuf, six, trois, un

9RassemblerÉnumérez 9 différences spécifiques entre le modèle UTXO de Bitcoin et la machine à états basée sur des comptes d’Ethereum en ce qui concerne la structure des données, la portée de la validation et l’augmentation de l’espace de stockage.
6RegrouperGroupez ces 9 éléments en 6 catégories : persistance des données, complexité computationnelle, implications de sécurité, consommation des ressources du nœud, mécanismes de consensus et expérience des développeurs.
3DistillerRéduisez les 6 clusters en 3 raisons fondamentales expliquant pourquoi le modèle de compte permet des calculs polyvalents au détriment d’une augmentation de la taille de l’état.
1CristalliserL’état global mutable permet des interactions complexes entre contrats, ce qui est difficile dans un système UTXO.

Vérification des faits

Les dates, les chiffres et les affirmations ont été vérifiés à l’aide des sources publiées listées ci-dessous.

Ouvrir dans l'académie interactive →

EN PT ES ZH JA KO RU DE MS