Blockchain Ethereum
Qu'est-ce que la blockchain Ethereum ?
Ethereum
Vitalik Buterin a créé la blockchain Ethereum pour compenser certains des inconvénients des solutions blockchain existantes. La blockchain Bitcoin par exemple fonctionne uniquement dans un contexte de monnaie numérique, tandis que Ethereum peut être utilisé pour une variété d’applications telles que les contrats intelligents, les organisations autonomes décentralisées (DAO), et plus encore. La technologie blockchain d’Ethereum est conçue pour être plus évolutive et sécurisée que les autres blockchains, ce qui la rend mieux adaptée à la nouvelle vague d’applications qui reposent sur l’exécution sans confiance des contrats et le transfert de valeur.
Ethereum est une blockchain décentralisée open-source qui permet aux développeurs de construire et de déployer des applications distribuées et des contrats intelligents. C'est aussi un registre public qui contient toutes les transactions numériques qui ont eu lieu sur son réseau, y compris les activités liées à son token ETH et tout autre jeton numérique (token fongible comme USDT mais aussi token non fongible / NFT) requis pour une application particulière.
Avantages d'Ethereum
Au lieu d’être contrôlé par une autorité centrale, Ethereum se base sur un réseau de noeuds indépendants, basés sur un consensus (proof of stack), et connectés à une machine virtuelle (EVM pour Ethereum Virtual Machine). Cette architecture garantit un temps de traitement des transactions plus rapide et des frais de fonctionnement plus faibles mais également une exécution sécurisée, vérifiable et inviolable du code. Ethereum présente de nombreux avantages par rapport aux autres technologies :
-
Les contrats intelligents d’Ethereum sont auto-exécutants et automatisés, ce qui signifie qu’ils peuvent exécuter les termes d’un accord sans avoir besoin d’un tiers ou d’un intermédiaire (modulo l'utilisation d'oracles). Cela rend les transactions plus rapides, plus sûres et plus rentables.
-
Ethereum n’a pas de point de défaillance unique, ce qui signifie que son réseau ne peut pas être arrêté par une seule entité (résilience).
-
Ethereum est très évolutif et peut traiter de grands volumes de transactions par seconde, d'autant plus depuis l'arrivée des secondes couches (layers 2).
-
Ethereum fournit aux développeurs un large éventail de langages de programmation, facilitant la création d’applications sur la plateforme.
-
Ethereum est open source, ce qui signifie que n’importe qui peut voir et contribuer à son code.
-
Ethereum est sécurisé et antifraude grâce à son réseau décentralisé d’ordinateurs qui vérifient chaque transaction.
Bloc Ethereum
Le bloc est le composant principal de la blockchain Ethereum. Les blocs Ethereum sont créés pour stocker les informations des transactions et le code des contrats intelligents.
Chaque bloc contient une en-tête et un "corps" qui contient les données relatives aux transactions et les données des oncles (un bloc "uncle" est un bloc proposé mais non intégré à la chaine de bloc).
L’entête des blocs Ethereum contient des champs tels que le numéro du bloc, le hash du bloc parent, le hash des blocs oncles, les transactionsRoot... Le champ transactionsRoot est utilisé pour stocker le hachage de la racine d’une arborescence qui contient toutes les transactions qui ont été incluses dans le bloc. La taille d’un bloc Ethereum est limitée à un maximum de 32 Mo. Cela signifie que le nombre total d’opérations pouvant être incluses dans un seul bloc est limité à environ 20000 opérations.
En plus de l’en-tête, chaque bloc comprend également une liste d’oncles dans le corps du bloc. Des oncles sont créés pour encourager les mineurs et leur offrir des récompenses supplémentaires. Les oncles sont des blocs valides qui ont été minés, mais qui n’ont pas été inclus dans la chaîne principale.
Une fois qu’un bloc est miné, il est ajouté à la blockchain et toutes les transactions dans le bloc sont exécutées. C’est ainsi que les données sont écrites dans la blockchain Ethereum et que les transactions sont effectuées.
Programmation Ethereum
Il existe plusieurs langages reconnus pour les contrats intelligents. Tout d'abord Solidity (créé par Gavin Wood). C'est le plus fameux, le premier. Il existe aussi Vyper, un langage dit "python-like". Il existe encore bien d'autres langages mais je ne rentrerais pas dans les détails ici. Vous pouvez également utiliser des frameworks pour accélérer le développement, tels que Truffle ou bien Open-Zeppelin.