Ethereum est une plateforme blockchain ouverte qui permet à quiconque de créer et d'utiliser des applications décentralisées. En 2013, Vitalik Buterin, le fondateur d'Ethereum, a publié le livre blanc Ethereum, qui décrit l'essentiel de la conception et de l'aspect technique d'Ethereum, jetant ainsi les bases d'un développement vigoureux des applications et des écosystèmes de la blockchain à l'avenir.
L'objectif premier d'Ethereum était d'améliorer les fonctionnalités du bitcoin, et pas seulement en tant que système de paiement numérique. La principale différence entre les deux est qu'Ethereum peut stocker du code qui peut être exécuté. Cette innovation fondamentale est également appelée "contrats intelligents", ce qui signifie que tout développeur peut écrire des applications décentralisées exécutables (dApps) sur la blockchain Ethereum pour mettre en œuvre divers besoins commerciaux et contrats sociaux.
Avec l'émergence des contrats intelligents, les utilisateurs peuvent effectuer des transactions et des collaborations sécurisées, transparentes et automatisées sans avoir besoin de confiance ou d'intermédiaires. Cela a élargi l'utilité et la fonctionnalité des réseaux de blockchain.
Cependant, le développement et l'application pratique d'Ethereum ont inévitablement rencontré certains défis, le plus important étant les problèmes d'évolutivité. Lorsque le marché des crypto-monnaies a connu une croissance rapide et une augmentation du volume des transactions, les performances de la blockchain Ethereum sont devenues insuffisantes pour répondre à la demande. Par conséquent, Ethereum a besoin d'une innovation et d'une évolution continues pour répondre aux besoins de sa base d'utilisateurs croissante.
Cette leçon fournit une vue d'ensemble de l'évolution technologique d'Ethereum, explore comment Ethereum a émergé en tant que pionnier dans l'espace de la blockchain, et vous guide pour comprendre les défis d'évolutivité auxquels Ethereum est confronté et les solutions correspondantes.
Avant l'émergence d'Ethereum, le développement de la blockchain se limitait principalement aux monnaies numériques et aux systèmes de paiement, utilisant des grands livres décentralisés pour enregistrer les transactions. Si l'on prend l'exemple de Bitcoin, le réseau Bitcoin peut être considéré comme un système de transition d'état qui utilise le modèle de sortie des transactions non dépensées (UTXO). UTXO désigne la quantité restante de jetons d'une transaction qui peut être utilisée dans une autre transaction. Il peut être interprété comme le solde non dépensé après que quelqu'un vous a donné une certaine somme d'argent.
Chaque fois qu'un mineur produit un nouveau bloc, cela représente un changement dans l'état du réseau Bitcoin, car le nouveau bloc contient des transactions valides qui consomment des UTXO existantes et créent de nouvelles UTXO. Ces nouvelles UTXO constituent le dernier état du réseau Bitcoin, qui reflète le nombre et la répartition des bitcoins détenus par l'ensemble des utilisateurs.
État précédent + transactions valides dans un nouveau bloc = État actuel
Transition d'état de l'UTXO
Dans la vie de tous les jours, les gens sont plus familiers avec le modèle de compte utilisé dans les systèmes bancaires traditionnels, où une adresse blockchain correspond à un compte. Chaque transaction implique le transfert de fonds ou de données d'un compte à un autre, et le solde du compte est l'actif que vous possédez. Lorsque vous effectuez des transactions à l'aide du modèle UTXO, il n'y a pas de restriction concernant l'adresse, ce qui signifie que vous pouvez utiliser une adresse différente pour chaque transaction. Votre actif est la somme de tous les UTXO qui vous sont associés, plutôt que le solde d'une adresse spécifique. Par conséquent, UTXO a une meilleure parallélisation, tandis que le modèle de compte est plus susceptible d'être exécuté de manière séquentielle, ce qui entraîne des performances limitées. Bien que le modèle UTXO offre une meilleure confidentialité et une meilleure évolutivité, il est moins intuitif et difficile de mettre en œuvre des opérations logiques complexes. Par exemple, le langage de programmation de Bitcoin présente les limitations suivantes :
Non-Turing complet
Bien que le langage de script Bitcoin prenne en charge une grande variété de fonctionnalités, il ne prend pas en charge tous les calculs, en particulier les boucles. En théorie, toute opération en boucle peut être réalisée en exécutant de manière répétée le code sous-jacent par le biais de plusieurs couches d'instructions IF, mais cela conduit à une efficacité opérationnelle très faible.
Difficile de déterminer la valeur
Les scripts UTXO ne peuvent pas contrôler finement le montant qui peut être retiré. Par exemple, l'utilisateur A doit couvrir le risque de prix et l'utilisateur B agit en tant que contrepartie. Les deux parties déposent des actifs d'une valeur de 1 000 dollars dans un contrat. Au bout de 30 jours, l'utilisateur A récupère 1 000 dollars de bitcoins, et le reste est envoyé à l'utilisateur B. Il faudrait donc qu'un oracle détermine la valeur en dollars d'un bitcoin, ce qui l'obligerait à détenir de nombreux UTXO de différentes dénominations.
Manque de flexibilité de l'État
L'UTXO peut être dépensée ou non. Il est difficile de créer des contrats d'option, des systèmes de cotation décentralisés, des protocoles d'engagement cryptographiques et d'autres applications qui nécessitent des états à plusieurs étapes (comme "en cours d'utilisation"). Par conséquent, les UTXO ne peuvent être utilisées que pour établir des contrats simples à usage unique, plutôt que des contrats plus complexes "avec état" dans des protocoles décentralisés.
Impossibilité de voir les données de la blockchain
Le modèle UTXO n'a pas de visibilité sur les données de la blockchain, telles que les nombres aléatoires, les horodatages et le hachage du bloc précédent. Cette limitation restreint le développement des jeux et d'autres types de dApps.
Pour remédier aux lacunes du bitcoin dans les applications de contrats intelligents, Ethereum a abandonné le modèle UTXO et adopté un modèle de compte, similaire aux comptes bancaires personnels, dans lequel une base de données enregistre le solde de chaque compte et le met automatiquement à jour à chaque transaction.
Il existe deux types de comptes sur Ethereum : les comptes détenus par des tiers et contrôlés par des clés privées et les comptes contractuels contrôlés par un code de contrat intelligent. L'Ether sert de moyen d'échange au sein du réseau Ethereum.
Dans le développement de la blockchain, Ethereum a été le premier réseau de blockchain à faciliter l'adoption généralisée des contrats intelligents et des dApps. Les contrats intelligents sur Ethereum sont généralement programmés à l'aide du langage Solidity. Il s'agit de programmes exécutés sur la blockchain avec des caractéristiques telles que l'automatisation, la décentralisation, la transparence et l'immutabilité, ce qui les rend adaptés à la mise en œuvre de diverses logiques commerciales et règles de transaction. Les utilisateurs peuvent effectuer des transactions de manière sûre et fiable sans avoir besoin de faire confiance à des tiers.
Les contrats intelligents peuvent être utilisés pour développer différents types de dApps, ce qui fait du réseau Ethereum un ordinateur partagé à l'échelle mondiale. Tout le monde peut accéder aux données, éditer et utiliser différents types d'applications sur cet ordinateur pour répondre à ses besoins.
À première vue, il ne semble pas particulièrement unique, puisqu'il s'agit simplement d'exécuter des programmes logiciels, n'est-ce pas ? Le stockage des données et l'exécution du code des applications web sur des serveurs centralisés ou l'installation de logiciels sur des ordinateurs personnels peuvent apparemment permettre d'obtenir les mêmes fonctionnalités d'application que les contrats intelligents.
Toutefois, cette approche comporte des limites et des risques tels que la perte de données, la falsification et les interruptions de service. L'émergence des contrats intelligents offre une sécurité, une vérifiabilité et une résistance à la censure sans précédent aux applications traditionnelles. Plus précisément, les contrats intelligents d'Ethereum présentent plusieurs différences essentielles par rapport aux applications web générales et aux logiciels côté client :
La machine virtuelle Ethereum (EVM) est un ordinateur Turing-complet qui fonctionne sur la blockchain Ethereum. Il exécute le code des contrats intelligents et modifie l'état de la blockchain. Une analogie pour le comprendre est le système d'exploitation (OS) fonctionnant sur les ordinateurs personnels ou les smartphones, où seulement dans cet environnement spécifique, les contrats intelligents et les applications Ethereum peuvent être exécutés.
L'EVM fonctionne dans un environnement isolé, sans être affecté par des interférences externes et sans avoir d'impact sur le matériel sous-jacent. Il fonctionne en compilant le code des contrats intelligents, généralement écrit dans le langage Solidity, dans un jeu d'instructions bytecode appelé EVM bytecode. L'EVM exécute ensuite ces instructions étape par étape.
L'exécution de l'EVM entraîne des modifications de l'état de la blockchain, telles que le transfert de jetons, le stockage de données ou le déclenchement d'événements. Pour éviter qu'un code de contrat intelligent malveillant ne provoque des boucles infinies ou ne fasse planter le réseau Ethereum, chaque instruction consomme une certaine quantité de gaz. S'il n'y a pas assez de gaz, l'opération ne peut pas être effectuée.
Les frais de gaz font référence aux frais de transaction payés en Ether (ETH) sur le réseau Ethereum pour l'exécution de contrats intelligents ou le transfert de jetons. Il est utilisé pour récompenser les mineurs qui entretiennent le réseau. Le coût de la taxe sur le gaz dépend de la complexité de la transaction et du niveau de congestion du réseau, généralement mesuré en Gwei (1 Gwei = 0,000000001 ETH).
Les négociants peuvent fixer leur propre prix du gaz (le prix par unité de gaz) et leur limite de gaz (la quantité maximale de gaz qu'ils sont prêts à payer) afin d'ajuster la vitesse et le coût de leurs transactions.
La formule de calcul des frais de gaz sur Ethereum est la suivante :
Prix du gaz * Limite du gaz = Frais de gaz
Le prix du gaz représente le prix unitaire de la redevance. Si le prix du gaz est trop bas, la priorité de la transaction peut être moindre et les mineurs peuvent l'ignorer.
La limite de gaz fait référence à la quantité de frais. Si la limite de gaz est trop basse, cela n'affectera pas la priorité de la transaction, mais la transaction peut échouer en raison d'une exécution incomplète, et les frais de gaz payés ne seront pas remboursés.
Dans le cadre de l'EIP-1559 (Ethereum Improvement Proposal), le prix du gaz comprend une taxe de base qui est ajustée de manière dynamique en fonction de la demande du réseau et de la taille des blocs. Les transactions dont le prix du gaz est supérieur au tarif de base sont garanties d'être traitées, et l'ETH sera brûlé pour réduire l'offre de jetons dans le réseau Ethereum.
Les pourboires sont des frais supplémentaires facultatifs que les utilisateurs sont prêts à payer aux mineurs ou aux validateurs. Les utilisateurs peuvent définir leurs propres valeurs pour les conseils, ce qui peut contribuer à améliorer la priorité de leurs transactions ou à accélérer la vitesse des transactions en cas d'encombrement du réseau.
Grâce au mécanisme de gaz d'Ethereum, les ressources informatiques et l'espace de stockage du réseau de la blockchain peuvent être tarifés de manière appropriée, ce qui peut empêcher les contrats intelligents d'exécuter des boucles erronées à l'infini ou d'être attaqués par des acteurs malveillants.
Avant la fusion d'Ethereum en septembre 2022, Ethereum et Bitcoin s'appuyaient tous deux sur le mécanisme de consensus Proof of Work (PoW) pour faciliter le fonctionnement normal de leurs réseaux de blockchain.
Les appareils participant au minage devaient résoudre une énigme cryptographique complexe en utilisant la puissance de calcul pour calculer une valeur de hachage répondant à des exigences spécifiques. Ce processus a consommé d'importantes ressources informatiques et de l'électricité, et la difficulté de l'énigme a continué à évoluer en fonction de la puissance de calcul du réseau. Les utilisateurs qui fournissent de la puissance de calcul sont appelés mineurs.
En essayant continuellement de calculer la valeur de hachage, les mineurs avaient la possibilité de trouver une valeur de hachage répondant aux exigences. Les mineurs pouvaient alors regrouper les transactions en attente dans un bloc et diffuser ce bloc à l'ensemble du réseau pour validation et confirmation. Si le bloc est confirmé, le mineur reçoit les récompenses du bloc et les frais de transaction.
Après la mise à jour d'Ethereum 2.0, Ethereum a adopté le mécanisme de consensus Proof of Stake (PoS) pour l'exploitation minière. Les nœuds qui valident les transactions sont tenus de mettre en jeu un certain montant d'Ether comme garantie afin d'obtenir le droit de produire de nouveaux blocs.
L'objectif du jalonnement est d'imposer des risques économiques aux nœuds, de sorte que les nœuds qui attaquent le réseau verront leurs actifs jalonnés réduits, ce qui entraînera des pertes. Cela permet de dissuader les comportements malveillants. Plus un nœud mise d'Ether, plus la probabilité d'obtenir le droit de produire de nouveaux blocs est élevée.
Les nœuds responsables de la production des blocs doivent regrouper les transactions en attente, générer de nouveaux blocs et les diffuser sur le réseau pour validation et confirmation. Si un bloc est confirmé, le nœud reçoit des récompenses de bloc et des frais de transaction, ainsi que certains retours basés sur le montant des actifs mis en jeu.
Le mécanisme de minage joue un rôle crucial dans le réseau Ethereum, qui se reflète principalement dans les aspects suivants :
Garantir la fiabilité et la sécurité des transactions
L'exploitation minière consiste à ajouter de nouvelles transactions à la blockchain, à augmenter le nombre de blocs et à confirmer la légitimité de ces transactions en obtenant une preuve de travail (actuellement une preuve d'enjeu). L'exploitation minière rend difficile la falsification malveillante des transactions, ce qui garantit la fiabilité et la sécurité des transactions.
Maintien de la décentralisation de la blockchain
Le mécanisme de minage peut empêcher une entité ou une organisation unique de contrôler l'ensemble du réseau Ethereum, car le minage nécessite une quantité importante de puissance de calcul (actuellement des jetons mis en jeu à la place) et les attaquants auraient besoin de ressources substantielles pour prendre le contrôle. Cela garantit la décentralisation du réseau et empêche tout contrôle monopolistique de la part d'un individu ou d'une entité.
Offrir des incitations à la participation
Mining permet aux participants d'obtenir des récompenses en contribuant aux ressources. Cela incite les utilisateurs à participer à la construction et à l'exploitation du réseau, garantissant ainsi son bon fonctionnement.
Par rapport au minage PoW, le minage PoS nécessite beaucoup moins de ressources informatiques et de consommation d'énergie, ce qui le rend plus apte à répondre aux besoins de développement et d'évolutivité du réseau Ethereum.
Les contrats intelligents d'Ethereum ont permis de nombreuses applications importantes, notamment :
DeFi (Decentralized Finance)
DeFi est l'une des applications les plus réussies des contrats intelligents d'Ethereum. Il s'appuie sur des contrats intelligents pour établir une gamme de protocoles financiers décentralisés tels que MakerDAO, Compound, Uniswap, et plus encore. Ces protocoles permettent d'offrir des services financiers tels que le prêt, le commerce, l'assurance, la gestion d'actifs, etc.
NFTs (Non-Fungible Tokens)
Les NFTs sont des actifs numériques basés sur les contrats intelligents d'Ethereum, offrant un caractère unique et indivisible grâce à la fonctionnalité des contrats intelligents. Les NFT trouvent des applications dans divers domaines tels que l'art, la musique, les jeux, l'immobilier virtuel, etc.
DAO (Decentralized Autonomous Organizations)
Une DAO est une organisation autonome décentralisée basée sur les contrats intelligents d'Ethereum. Il permet aux membres de prendre des décisions sur des questions internes par le biais du vote, telles que l'allocation du budget, la gestion du personnel, les décisions d'investissement, etc. Les DAO fonctionnent de manière véritablement décentralisée et démocratique et peuvent s'appliquer aux communautés, aux entreprises, aux fondations et à d'autres organisations.
Émission de jetons
La norme ERC-20 sur Ethereum spécifie l'émission et l'échange de jetons, ce qui permet de créer ses propres jetons qui peuvent être échangés sur le réseau Ethereum.
Stockage décentralisé
Il existe également des protocoles de stockage de fichiers distribués basés sur des contrats intelligents sur Ethereum. Par exemple, le protocole Swarm permet aux utilisateurs de stocker des fichiers de manière distribuée sur le réseau, ce qui les rend plus sûrs et plus fiables.
Informatique en nuage
Il existe également des plateformes informatiques décentralisées basées sur des contrats intelligents sur Ethereum, telles que Golem et iExec. Ces plateformes permettent aux utilisateurs de louer des ressources informatiques pour exécuter diverses applications, ce qui permet d'améliorer l'efficacité de l'informatique et du traitement des données.
Identité numérique
EIP-4361 introduit un cadre normalisé pour la connexion avec Ethereum, permettant aux utilisateurs de se connecter aux dApps en utilisant leur adresse Ethereum au lieu des noms d'utilisateur et mots de passe traditionnels. Ce mécanisme d'authentification renforce la confidentialité et la sécurité des utilisateurs tout en réduisant l'intervention des intermédiaires. \
Outre les applications susmentionnées, les contrats intelligents d'Ethereum peuvent permettre un large éventail d'autres cas d'utilisation, tels que les jeux, les réseaux sociaux et la gestion de la chaîne d'approvisionnement, entre autres. Grâce à la programmabilité des contrats intelligents, les scénarios d'application sur la plateforme Ethereum continuent de s'étendre, offrant un potentiel important pour le développement futur.
Ethereum a sacrifié une partie de ses performances au profit de la décentralisation et de la sécurité. En raison de limitations techniques, Ethereum a un temps de génération de blocs d'environ 12 à 15 secondes, la taille de chaque bloc étant limitée à 15 Mo. Par conséquent, Ethereum ne peut traiter qu'environ 15 transactions par seconde.
Cependant, en tant que plus grand réseau de contrats intelligents en termes d'écosystème et de communauté de développement, Ethereum a connu une augmentation significative du nombre d'adresses de portefeuilles uniques avec un solde non nul sur sa blockchain, qui a plus que décuplé au cours des cinq dernières années. La multiplication des protocoles et des activités des utilisateurs a dépassé la conception existante, exacerbant les problèmes d'évolutivité d'Ethereum.
Pour améliorer l'évolutivité d'Ethereum, la communauté des développeurs a proposé diverses solutions, notamment les sidechains, les rollups, la technologie du sharding et le détournement du trafic vers d'autres réseaux de blockchain compatibles avec l'EVM afin de réduire les encombrements.
Dans cette leçon, nous avons approfondi l'architecture technique et les principes d'Ethereum, ainsi que la façon dont l'innovation des contrats intelligents exploite le potentiel de la blockchain, permettant une gamme variée d'applications et d'écosystèmes décentralisés pour faciliter divers besoins commerciaux et contrats sociaux.
Cependant, la croissance rapide d'Ethereum a mis en lumière le problème de la faible évolutivité. Relever le défi de l'extensibilité est donc devenu une priorité absolue pour répondre aux demandes croissantes des utilisateurs.
Dans la prochaine leçon, nous explorerons différentes solutions d'évolutivité et leurs applications au sein de l'écosystème, y compris les sidechains, les rollups et divers concurrents de l'EVM. Nous analyserons également leurs avantages et inconvénients respectifs, ce qui vous permettra de mieux comprendre l'état de développement actuel et les tendances futures de la technologie blockchain.
🎥・Vidéo principale
| 📄・Articles connexes
|
Ethereum est une plateforme blockchain ouverte qui permet à quiconque de créer et d'utiliser des applications décentralisées. En 2013, Vitalik Buterin, le fondateur d'Ethereum, a publié le livre blanc Ethereum, qui décrit l'essentiel de la conception et de l'aspect technique d'Ethereum, jetant ainsi les bases d'un développement vigoureux des applications et des écosystèmes de la blockchain à l'avenir.
L'objectif premier d'Ethereum était d'améliorer les fonctionnalités du bitcoin, et pas seulement en tant que système de paiement numérique. La principale différence entre les deux est qu'Ethereum peut stocker du code qui peut être exécuté. Cette innovation fondamentale est également appelée "contrats intelligents", ce qui signifie que tout développeur peut écrire des applications décentralisées exécutables (dApps) sur la blockchain Ethereum pour mettre en œuvre divers besoins commerciaux et contrats sociaux.
Avec l'émergence des contrats intelligents, les utilisateurs peuvent effectuer des transactions et des collaborations sécurisées, transparentes et automatisées sans avoir besoin de confiance ou d'intermédiaires. Cela a élargi l'utilité et la fonctionnalité des réseaux de blockchain.
Cependant, le développement et l'application pratique d'Ethereum ont inévitablement rencontré certains défis, le plus important étant les problèmes d'évolutivité. Lorsque le marché des crypto-monnaies a connu une croissance rapide et une augmentation du volume des transactions, les performances de la blockchain Ethereum sont devenues insuffisantes pour répondre à la demande. Par conséquent, Ethereum a besoin d'une innovation et d'une évolution continues pour répondre aux besoins de sa base d'utilisateurs croissante.
Cette leçon fournit une vue d'ensemble de l'évolution technologique d'Ethereum, explore comment Ethereum a émergé en tant que pionnier dans l'espace de la blockchain, et vous guide pour comprendre les défis d'évolutivité auxquels Ethereum est confronté et les solutions correspondantes.
Avant l'émergence d'Ethereum, le développement de la blockchain se limitait principalement aux monnaies numériques et aux systèmes de paiement, utilisant des grands livres décentralisés pour enregistrer les transactions. Si l'on prend l'exemple de Bitcoin, le réseau Bitcoin peut être considéré comme un système de transition d'état qui utilise le modèle de sortie des transactions non dépensées (UTXO). UTXO désigne la quantité restante de jetons d'une transaction qui peut être utilisée dans une autre transaction. Il peut être interprété comme le solde non dépensé après que quelqu'un vous a donné une certaine somme d'argent.
Chaque fois qu'un mineur produit un nouveau bloc, cela représente un changement dans l'état du réseau Bitcoin, car le nouveau bloc contient des transactions valides qui consomment des UTXO existantes et créent de nouvelles UTXO. Ces nouvelles UTXO constituent le dernier état du réseau Bitcoin, qui reflète le nombre et la répartition des bitcoins détenus par l'ensemble des utilisateurs.
État précédent + transactions valides dans un nouveau bloc = État actuel
Transition d'état de l'UTXO
Dans la vie de tous les jours, les gens sont plus familiers avec le modèle de compte utilisé dans les systèmes bancaires traditionnels, où une adresse blockchain correspond à un compte. Chaque transaction implique le transfert de fonds ou de données d'un compte à un autre, et le solde du compte est l'actif que vous possédez. Lorsque vous effectuez des transactions à l'aide du modèle UTXO, il n'y a pas de restriction concernant l'adresse, ce qui signifie que vous pouvez utiliser une adresse différente pour chaque transaction. Votre actif est la somme de tous les UTXO qui vous sont associés, plutôt que le solde d'une adresse spécifique. Par conséquent, UTXO a une meilleure parallélisation, tandis que le modèle de compte est plus susceptible d'être exécuté de manière séquentielle, ce qui entraîne des performances limitées. Bien que le modèle UTXO offre une meilleure confidentialité et une meilleure évolutivité, il est moins intuitif et difficile de mettre en œuvre des opérations logiques complexes. Par exemple, le langage de programmation de Bitcoin présente les limitations suivantes :
Non-Turing complet
Bien que le langage de script Bitcoin prenne en charge une grande variété de fonctionnalités, il ne prend pas en charge tous les calculs, en particulier les boucles. En théorie, toute opération en boucle peut être réalisée en exécutant de manière répétée le code sous-jacent par le biais de plusieurs couches d'instructions IF, mais cela conduit à une efficacité opérationnelle très faible.
Difficile de déterminer la valeur
Les scripts UTXO ne peuvent pas contrôler finement le montant qui peut être retiré. Par exemple, l'utilisateur A doit couvrir le risque de prix et l'utilisateur B agit en tant que contrepartie. Les deux parties déposent des actifs d'une valeur de 1 000 dollars dans un contrat. Au bout de 30 jours, l'utilisateur A récupère 1 000 dollars de bitcoins, et le reste est envoyé à l'utilisateur B. Il faudrait donc qu'un oracle détermine la valeur en dollars d'un bitcoin, ce qui l'obligerait à détenir de nombreux UTXO de différentes dénominations.
Manque de flexibilité de l'État
L'UTXO peut être dépensée ou non. Il est difficile de créer des contrats d'option, des systèmes de cotation décentralisés, des protocoles d'engagement cryptographiques et d'autres applications qui nécessitent des états à plusieurs étapes (comme "en cours d'utilisation"). Par conséquent, les UTXO ne peuvent être utilisées que pour établir des contrats simples à usage unique, plutôt que des contrats plus complexes "avec état" dans des protocoles décentralisés.
Impossibilité de voir les données de la blockchain
Le modèle UTXO n'a pas de visibilité sur les données de la blockchain, telles que les nombres aléatoires, les horodatages et le hachage du bloc précédent. Cette limitation restreint le développement des jeux et d'autres types de dApps.
Pour remédier aux lacunes du bitcoin dans les applications de contrats intelligents, Ethereum a abandonné le modèle UTXO et adopté un modèle de compte, similaire aux comptes bancaires personnels, dans lequel une base de données enregistre le solde de chaque compte et le met automatiquement à jour à chaque transaction.
Il existe deux types de comptes sur Ethereum : les comptes détenus par des tiers et contrôlés par des clés privées et les comptes contractuels contrôlés par un code de contrat intelligent. L'Ether sert de moyen d'échange au sein du réseau Ethereum.
Dans le développement de la blockchain, Ethereum a été le premier réseau de blockchain à faciliter l'adoption généralisée des contrats intelligents et des dApps. Les contrats intelligents sur Ethereum sont généralement programmés à l'aide du langage Solidity. Il s'agit de programmes exécutés sur la blockchain avec des caractéristiques telles que l'automatisation, la décentralisation, la transparence et l'immutabilité, ce qui les rend adaptés à la mise en œuvre de diverses logiques commerciales et règles de transaction. Les utilisateurs peuvent effectuer des transactions de manière sûre et fiable sans avoir besoin de faire confiance à des tiers.
Les contrats intelligents peuvent être utilisés pour développer différents types de dApps, ce qui fait du réseau Ethereum un ordinateur partagé à l'échelle mondiale. Tout le monde peut accéder aux données, éditer et utiliser différents types d'applications sur cet ordinateur pour répondre à ses besoins.
À première vue, il ne semble pas particulièrement unique, puisqu'il s'agit simplement d'exécuter des programmes logiciels, n'est-ce pas ? Le stockage des données et l'exécution du code des applications web sur des serveurs centralisés ou l'installation de logiciels sur des ordinateurs personnels peuvent apparemment permettre d'obtenir les mêmes fonctionnalités d'application que les contrats intelligents.
Toutefois, cette approche comporte des limites et des risques tels que la perte de données, la falsification et les interruptions de service. L'émergence des contrats intelligents offre une sécurité, une vérifiabilité et une résistance à la censure sans précédent aux applications traditionnelles. Plus précisément, les contrats intelligents d'Ethereum présentent plusieurs différences essentielles par rapport aux applications web générales et aux logiciels côté client :
La machine virtuelle Ethereum (EVM) est un ordinateur Turing-complet qui fonctionne sur la blockchain Ethereum. Il exécute le code des contrats intelligents et modifie l'état de la blockchain. Une analogie pour le comprendre est le système d'exploitation (OS) fonctionnant sur les ordinateurs personnels ou les smartphones, où seulement dans cet environnement spécifique, les contrats intelligents et les applications Ethereum peuvent être exécutés.
L'EVM fonctionne dans un environnement isolé, sans être affecté par des interférences externes et sans avoir d'impact sur le matériel sous-jacent. Il fonctionne en compilant le code des contrats intelligents, généralement écrit dans le langage Solidity, dans un jeu d'instructions bytecode appelé EVM bytecode. L'EVM exécute ensuite ces instructions étape par étape.
L'exécution de l'EVM entraîne des modifications de l'état de la blockchain, telles que le transfert de jetons, le stockage de données ou le déclenchement d'événements. Pour éviter qu'un code de contrat intelligent malveillant ne provoque des boucles infinies ou ne fasse planter le réseau Ethereum, chaque instruction consomme une certaine quantité de gaz. S'il n'y a pas assez de gaz, l'opération ne peut pas être effectuée.
Les frais de gaz font référence aux frais de transaction payés en Ether (ETH) sur le réseau Ethereum pour l'exécution de contrats intelligents ou le transfert de jetons. Il est utilisé pour récompenser les mineurs qui entretiennent le réseau. Le coût de la taxe sur le gaz dépend de la complexité de la transaction et du niveau de congestion du réseau, généralement mesuré en Gwei (1 Gwei = 0,000000001 ETH).
Les négociants peuvent fixer leur propre prix du gaz (le prix par unité de gaz) et leur limite de gaz (la quantité maximale de gaz qu'ils sont prêts à payer) afin d'ajuster la vitesse et le coût de leurs transactions.
La formule de calcul des frais de gaz sur Ethereum est la suivante :
Prix du gaz * Limite du gaz = Frais de gaz
Le prix du gaz représente le prix unitaire de la redevance. Si le prix du gaz est trop bas, la priorité de la transaction peut être moindre et les mineurs peuvent l'ignorer.
La limite de gaz fait référence à la quantité de frais. Si la limite de gaz est trop basse, cela n'affectera pas la priorité de la transaction, mais la transaction peut échouer en raison d'une exécution incomplète, et les frais de gaz payés ne seront pas remboursés.
Dans le cadre de l'EIP-1559 (Ethereum Improvement Proposal), le prix du gaz comprend une taxe de base qui est ajustée de manière dynamique en fonction de la demande du réseau et de la taille des blocs. Les transactions dont le prix du gaz est supérieur au tarif de base sont garanties d'être traitées, et l'ETH sera brûlé pour réduire l'offre de jetons dans le réseau Ethereum.
Les pourboires sont des frais supplémentaires facultatifs que les utilisateurs sont prêts à payer aux mineurs ou aux validateurs. Les utilisateurs peuvent définir leurs propres valeurs pour les conseils, ce qui peut contribuer à améliorer la priorité de leurs transactions ou à accélérer la vitesse des transactions en cas d'encombrement du réseau.
Grâce au mécanisme de gaz d'Ethereum, les ressources informatiques et l'espace de stockage du réseau de la blockchain peuvent être tarifés de manière appropriée, ce qui peut empêcher les contrats intelligents d'exécuter des boucles erronées à l'infini ou d'être attaqués par des acteurs malveillants.
Avant la fusion d'Ethereum en septembre 2022, Ethereum et Bitcoin s'appuyaient tous deux sur le mécanisme de consensus Proof of Work (PoW) pour faciliter le fonctionnement normal de leurs réseaux de blockchain.
Les appareils participant au minage devaient résoudre une énigme cryptographique complexe en utilisant la puissance de calcul pour calculer une valeur de hachage répondant à des exigences spécifiques. Ce processus a consommé d'importantes ressources informatiques et de l'électricité, et la difficulté de l'énigme a continué à évoluer en fonction de la puissance de calcul du réseau. Les utilisateurs qui fournissent de la puissance de calcul sont appelés mineurs.
En essayant continuellement de calculer la valeur de hachage, les mineurs avaient la possibilité de trouver une valeur de hachage répondant aux exigences. Les mineurs pouvaient alors regrouper les transactions en attente dans un bloc et diffuser ce bloc à l'ensemble du réseau pour validation et confirmation. Si le bloc est confirmé, le mineur reçoit les récompenses du bloc et les frais de transaction.
Après la mise à jour d'Ethereum 2.0, Ethereum a adopté le mécanisme de consensus Proof of Stake (PoS) pour l'exploitation minière. Les nœuds qui valident les transactions sont tenus de mettre en jeu un certain montant d'Ether comme garantie afin d'obtenir le droit de produire de nouveaux blocs.
L'objectif du jalonnement est d'imposer des risques économiques aux nœuds, de sorte que les nœuds qui attaquent le réseau verront leurs actifs jalonnés réduits, ce qui entraînera des pertes. Cela permet de dissuader les comportements malveillants. Plus un nœud mise d'Ether, plus la probabilité d'obtenir le droit de produire de nouveaux blocs est élevée.
Les nœuds responsables de la production des blocs doivent regrouper les transactions en attente, générer de nouveaux blocs et les diffuser sur le réseau pour validation et confirmation. Si un bloc est confirmé, le nœud reçoit des récompenses de bloc et des frais de transaction, ainsi que certains retours basés sur le montant des actifs mis en jeu.
Le mécanisme de minage joue un rôle crucial dans le réseau Ethereum, qui se reflète principalement dans les aspects suivants :
Garantir la fiabilité et la sécurité des transactions
L'exploitation minière consiste à ajouter de nouvelles transactions à la blockchain, à augmenter le nombre de blocs et à confirmer la légitimité de ces transactions en obtenant une preuve de travail (actuellement une preuve d'enjeu). L'exploitation minière rend difficile la falsification malveillante des transactions, ce qui garantit la fiabilité et la sécurité des transactions.
Maintien de la décentralisation de la blockchain
Le mécanisme de minage peut empêcher une entité ou une organisation unique de contrôler l'ensemble du réseau Ethereum, car le minage nécessite une quantité importante de puissance de calcul (actuellement des jetons mis en jeu à la place) et les attaquants auraient besoin de ressources substantielles pour prendre le contrôle. Cela garantit la décentralisation du réseau et empêche tout contrôle monopolistique de la part d'un individu ou d'une entité.
Offrir des incitations à la participation
Mining permet aux participants d'obtenir des récompenses en contribuant aux ressources. Cela incite les utilisateurs à participer à la construction et à l'exploitation du réseau, garantissant ainsi son bon fonctionnement.
Par rapport au minage PoW, le minage PoS nécessite beaucoup moins de ressources informatiques et de consommation d'énergie, ce qui le rend plus apte à répondre aux besoins de développement et d'évolutivité du réseau Ethereum.
Les contrats intelligents d'Ethereum ont permis de nombreuses applications importantes, notamment :
DeFi (Decentralized Finance)
DeFi est l'une des applications les plus réussies des contrats intelligents d'Ethereum. Il s'appuie sur des contrats intelligents pour établir une gamme de protocoles financiers décentralisés tels que MakerDAO, Compound, Uniswap, et plus encore. Ces protocoles permettent d'offrir des services financiers tels que le prêt, le commerce, l'assurance, la gestion d'actifs, etc.
NFTs (Non-Fungible Tokens)
Les NFTs sont des actifs numériques basés sur les contrats intelligents d'Ethereum, offrant un caractère unique et indivisible grâce à la fonctionnalité des contrats intelligents. Les NFT trouvent des applications dans divers domaines tels que l'art, la musique, les jeux, l'immobilier virtuel, etc.
DAO (Decentralized Autonomous Organizations)
Une DAO est une organisation autonome décentralisée basée sur les contrats intelligents d'Ethereum. Il permet aux membres de prendre des décisions sur des questions internes par le biais du vote, telles que l'allocation du budget, la gestion du personnel, les décisions d'investissement, etc. Les DAO fonctionnent de manière véritablement décentralisée et démocratique et peuvent s'appliquer aux communautés, aux entreprises, aux fondations et à d'autres organisations.
Émission de jetons
La norme ERC-20 sur Ethereum spécifie l'émission et l'échange de jetons, ce qui permet de créer ses propres jetons qui peuvent être échangés sur le réseau Ethereum.
Stockage décentralisé
Il existe également des protocoles de stockage de fichiers distribués basés sur des contrats intelligents sur Ethereum. Par exemple, le protocole Swarm permet aux utilisateurs de stocker des fichiers de manière distribuée sur le réseau, ce qui les rend plus sûrs et plus fiables.
Informatique en nuage
Il existe également des plateformes informatiques décentralisées basées sur des contrats intelligents sur Ethereum, telles que Golem et iExec. Ces plateformes permettent aux utilisateurs de louer des ressources informatiques pour exécuter diverses applications, ce qui permet d'améliorer l'efficacité de l'informatique et du traitement des données.
Identité numérique
EIP-4361 introduit un cadre normalisé pour la connexion avec Ethereum, permettant aux utilisateurs de se connecter aux dApps en utilisant leur adresse Ethereum au lieu des noms d'utilisateur et mots de passe traditionnels. Ce mécanisme d'authentification renforce la confidentialité et la sécurité des utilisateurs tout en réduisant l'intervention des intermédiaires. \
Outre les applications susmentionnées, les contrats intelligents d'Ethereum peuvent permettre un large éventail d'autres cas d'utilisation, tels que les jeux, les réseaux sociaux et la gestion de la chaîne d'approvisionnement, entre autres. Grâce à la programmabilité des contrats intelligents, les scénarios d'application sur la plateforme Ethereum continuent de s'étendre, offrant un potentiel important pour le développement futur.
Ethereum a sacrifié une partie de ses performances au profit de la décentralisation et de la sécurité. En raison de limitations techniques, Ethereum a un temps de génération de blocs d'environ 12 à 15 secondes, la taille de chaque bloc étant limitée à 15 Mo. Par conséquent, Ethereum ne peut traiter qu'environ 15 transactions par seconde.
Cependant, en tant que plus grand réseau de contrats intelligents en termes d'écosystème et de communauté de développement, Ethereum a connu une augmentation significative du nombre d'adresses de portefeuilles uniques avec un solde non nul sur sa blockchain, qui a plus que décuplé au cours des cinq dernières années. La multiplication des protocoles et des activités des utilisateurs a dépassé la conception existante, exacerbant les problèmes d'évolutivité d'Ethereum.
Pour améliorer l'évolutivité d'Ethereum, la communauté des développeurs a proposé diverses solutions, notamment les sidechains, les rollups, la technologie du sharding et le détournement du trafic vers d'autres réseaux de blockchain compatibles avec l'EVM afin de réduire les encombrements.
Dans cette leçon, nous avons approfondi l'architecture technique et les principes d'Ethereum, ainsi que la façon dont l'innovation des contrats intelligents exploite le potentiel de la blockchain, permettant une gamme variée d'applications et d'écosystèmes décentralisés pour faciliter divers besoins commerciaux et contrats sociaux.
Cependant, la croissance rapide d'Ethereum a mis en lumière le problème de la faible évolutivité. Relever le défi de l'extensibilité est donc devenu une priorité absolue pour répondre aux demandes croissantes des utilisateurs.
Dans la prochaine leçon, nous explorerons différentes solutions d'évolutivité et leurs applications au sein de l'écosystème, y compris les sidechains, les rollups et divers concurrents de l'EVM. Nous analyserons également leurs avantages et inconvénients respectifs, ce qui vous permettra de mieux comprendre l'état de développement actuel et les tendances futures de la technologie blockchain.
🎥・Vidéo principale
| 📄・Articles connexes
|