Introduction à Ethereum
Qu'est-ce qu'une blockchain ?
Une blockchain est une base de données publique qui est mise à jour et partagée entre les nombreux ordinateurs d'un réseau.
« Block » fait référence au fait que les données et l'état sont stockés dans des lots séquentiels ou « blocs ». Si vous envoyez de l'ETH à quelqu'un, les données de la transaction doivent être ajoutées à un bloc pour que cette dernière réussisse.
« Chain » désigne le fait que chaque bloc fait cryptographiquement référence à son parent. En d'autres termes, les blocs sont enchaînés. Les données d'un bloc ne peuvent pas être modifiées sans changer tous les blocs suivants, ce qui nécessiterait le consensus de l'ensemble du réseau.
Chaque ordinateur du réseau doit accepter chaque nouveau bloc, ainsi que la chaîne dans son intégralité. Ces ordinateurs sont appelés des « nœuds ». Les nœuds garantissent que toutes les personnes qui interagissent avec la blockchain disposent des mêmes données. Pour assurer que tous les nœuds soient d'accord, les blockchains ont besoin d'un mécanisme de consensus.
Ethereum utilise actuellement un mécanisme de consensus appelé preuve de travail (PoW). Cela signifie que toute personne voulant ajouter de nouveaux blocs à la chaîne doit résoudre un problème difficile, qui nécessite beaucoup de puissance de calcul informatique. Résoudre le problème « prouve » que vous avez dépensé les ressources informatiques. Cette action s'appelle le minage. En général, le minage s'accomplit par la force brute en testant des milliers de possibilités, mais ajouter un bloc avec succès est récompensé par une prime en ETH.
Les nouveaux blocs sont diffusés aux nœuds du réseau, vérifiés et validés, ce qui met à jour l'état pour tout le monde.
Pour résumer, lorsque vous envoyez de l'ETH à quelqu'un, la transaction doit être minée et incluse dans un nouveau bloc. L'état mis à jour est ensuite partagé avec l'ensemble du réseau.
Regardez Austin vous guider à travers les blockchains :
Si vous voulez voir comment les blockchains hashent les données et comment les nouveaux blocs référencent tous les blocs précédents, consultez cette démonstration(opens in a new tab) par Anders Brownworth et regardez la vidéo correspondante ci-dessous.
Regardez Anders expliquer les hashs dans les blockchains :
Qu'est-ce qu'Ethereum ?
Dans l'univers Ethereum, il existe un ordinateur unique et conforme (appelé EVM, ou Ethereum Virtual Machine) dont l'état est approuvé par tous sur le réseau Ethereum. Quiconque participe au réseau Ethereum (chaque nœud Ethereum) garde une copie de l'état de cet ordinateur. De plus, chaque participant peut diffuser une demande pour que cet ordinateur effectue un calcul arbitraire. Dès lors qu'une telle demande est diffusée, les autres participants sur le réseau vérifient, valident et exécutent le calcul. Cette exécution produit un changement d'état de l'EVM, qui est engagé et propagé sur tout le réseau.
Les demandes de calcul sont appelées demandes de transaction ; l'enregistrement de toutes les transactions, de la même façon que l'état actuel de l'EVM, est enregistré sur la blockchain, qui à son tour est stockée et validée par tous les nœuds.
Les mécanismes cryptographiques garantissent qu'une fois que les transactions sont vérifiées comme valides et ajoutées à la blockchain, elles ne pourront pas être altérées plus tard. Les mêmes mécanismes garantissent également que toutes les transactions sont signées et exécutées avec les « autorisations » appropriées (personne ne devrait pouvoir transmettre des biens numériques depuis le compte d'Alice, sauf Alice elle-même).
Qu'est-ce-que l'ether ?
Ether (ETH) est la cryptomonnaie native d'Ethereum. Le but de l'ether est de créer un marché du calcul. Un tel marché incite économiquement les participants à vérifier/exécuter les demandes de transaction et à fournir des ressources informatiques au réseau.
Tout participant qui diffuse une demande de transaction doit également offrir une certaine quantité d'éther au réseau comme prime. Cette prime sera versée à quiconque effectuera le travail nécessaire pour vérifier la transaction, l'exécuter, la consigner dans la blockchain et la diffuser sur le réseau.
La quantité d'ether payée correspond au temps passé à effectuer les calculs. Ces primes empêchent également aux participants malveillants de bloquer intentionnellement le réseau en demandant l'exécution de boucles infinies ou d'autres scripts gourmands en ressources, car ces participants doivent payer le temps de calcul qu'ils réquisitionnent.
Qu'est-ce qu'un contrat intelligent ?
En pratique, les participants n'écrivent pas de nouveau code chaque fois qu'ils veulent demander un calcul sur l'EVM. À la place, les développeurs d'applications téléchargent des programmes (extraits de code réutilisables) dans la mémoire de l'EVM et les utilisateurs exécutent des requêtes pour l'exécution de ces extraits de codes avec des paramètres qui varient. On appelle « contrats intelligents » les programmes téléchargés sur le réseau et exécutés.
Pour faire simple, vous pouvez imaginer qu'un contrat intelligent est une sorte de distributeur automatique : un script qui, lorsqu'il est appelé avec certains paramètres, effectue des actions ou des calculs si certaines conditions sont réunies. Par exemple, un simple contrat intelligent de vendeur pourrait créer et assigner la propriété d'un actif numérique si l'appelant envoie de l'ether à un destinataire spécifique.
N'importe quel développeur peut créer un contrat intelligent et le rendre public sur le réseau, en utilisant la blockchain comme couche de données, moyennant des frais payés au réseau. Tout utilisateur peut alors appeler le contrat intelligent et exécuter son code, encore une fois contre des frais payés au réseau.
Ainsi, avec les contrats intelligents, les développeurs peuvent créer et déployer des applications et des services complexes orientés utilisateurs, tels que des sites marchands, des outils financiers, des jeux, etc.
Terminologie
Blockchain
L'ensemble des blocs engagés sur le réseau Ethereum dans le début de son histoire. Elle est appelée ainsi car chaque bloc contient une référence au bloc précédent, ce qui nous aide à maintenir un ordre entre les blocs (et ce de façon précise).
ETH
La cryptomonnaie native d'Ethereum. Les utilisateurs payent les autres utilisateurs en ether afin que leurs demandes d'exécution de code soient satisfaites.
EVM
La machine virtuelle Ethereum est l’ordinateur virtuel mondial dont chaque participant du réseau Ethereum stocke et approuve l'état. N'importe quel participant peut demander une exécution de code arbitraire sur l'EVM. Une exécution de code modifie l'état de l'EVM.
Nœuds
Les machines réelles qui stockent l'état de l'EVM. Les nœuds communiquent les uns avec les autres pour propager les informations sur l'état de l'EVM et les nouveaux changements d'état. N'importe quel utilisateur peut également demander une exécution de code en diffusant une demande d'exécution de code depuis un nœud. Le réseau Ethereum lui-même est le regroupement de tous les nœuds Ethereum et de leurs communications.
Comptes
Endroit où l'ether est stocké. Les utilisateurs peuvent initialiser des comptes, y déposer de l'ether et en transférer à d'autres utilisateurs. Les comptes et les soldes des comptes sont stockés dans une grande table au sein de l’EVM. Ils font partie de l’état global de l’EVM.
Transactions
Une « demande de transaction » est le terme officiel pour une demande d'exécution de code sur l'EVM, et une « transaction » correspond à une demande de transaction satisfaite et au changement associé dans l'état de l'EVM. N'importe quel utilisateur peut diffuser une demande de transaction sur le réseau depuis un nœud. Pour qu'une demande de transaction affecte l'état convenu de l'EVM, elle doit être validée, exécutée et "engagée sur le réseau" par un autre nœud. L'exécution de n'importe quel code provoque un changement d'état dans l'EVM. En cas d'engagement, ce changement d'état est diffusé à tous les nœuds du réseau. Quelques exemples de transactions :
- Envoyer X ether depuis mon compte sur le compte d'Alice.
- Publier un code de contrat intelligent dans l'état de l'EVM.
- Exécuter le code du contrat intelligent à l'adresse X dans l'EVM, avec les arguments Y.
Plus d'infos sur les transactions
Blocs
Le volume des transactions est très élevé, les transactions sont donc « engagées » en lots, ou en « blocs ». Les blocs contiennent généralement des dizaines à des centaines de transactions.
Contrats intelligents
Extraits de code réutilisables (un programme) qu'un développeur publie dans l'état de l'EVM. N'importe qui peut demander l'exécution du code d'un contrat intelligent en faisant une demande de transaction. Étant donné que les développeurs peuvent écrire des applications exécutables arbitraires dans l'EVM (jeux, places de marché, instruments financiers, etc.) en publiant des contrats intelligents, ceux-ci sont aussi souvent appelés dApps, ou Applications décentralisées.
En savoir plus sur les contrats intelligents
En lire plus
- Livre blanc Ethereum
- Mais comment fonctionne Ethereum?(opens in a new tab) - Preethi Kasireddy
Une ressource communautaire vous a aidé ? Modifiez cette page et ajoutez-la !
Tutoriels connexes
- Guide du développeur pour Ethereum, partie 1 - Une exploration d'Ethereum utilisant Python et Web3.py pour les grands débutants