LA BLOCKCHAIN – ETHEREUM

LA BLOCKCHAIN – ETHEREUM

  • Post author:
  • Post category:Tech (PnP)

Par Etienne Almodovar

Ethereum a été lancé par Vitalik Buterin en 2015 suite à des années de réflexion afin de proposer une blockchain permettant la mise en place d’applications décentralisées. Le focus se justifie puisque cela ouvre une infinité d’utilisations possibles et plus complexes que la gestion de transactions. La cryptomonnaie sous-jacente est l’Ether (ETH). 

Smart contract et applications décentralisées

Sur la blockchain, un utilisateur c’est à la fois une adresse et une clé privée. Un individu peut en avoir plusieurs pour différents usages, il n’y a pas de limite. On peut créer des programmes pour automatiser certaines procédures et gérer une clé privée mais qui ne seront pas qualifiés de smart contract. Par exemple, on peut écrire un programme qui vous fera envoyer X montant en bitcoin à telle et telle personne, mais il n’y a aucune garantie que vous envoyiez réellement l’argent puisqu’il faut que ce programme soit exécuté.

Un smart contract, sur Ethereum, est un type d’utilisateur ayant une adresse et une clé privée qui lui sont propres. Pour certains échanges, il est nécessaire de pouvoir garantir une exécution et instaurer de la confiance. C’est notamment le cas lors d’une Initial Coin Offering (ICO), c’est-à-dire, une méthode de levée de fonds fonctionnant via l’émission d’actifs numériques, appelés token en anglais, échangeables contre des cryptomonnaies durant la phase de démarrage d’un projet, où un smart contract est codé et publié. Il stipule que si on envoie un montant X d’Ether est envoyé à l’utilisateur, ce dernier renverra Y montant du token créé à l’émetteur. Comme dans le cas d’une introduction en bourse, un volume et un prix d’émission sont fixés. Le smart contract garantit le volume et le prix d’émission ainsi que leur attribution. Ce qu’il faut retenir c’est qu’il n’y a pas d’actions humaines nécessaires pour faire fonctionner le smart contract, pas de serveurs, et n’importe qui peut inspecter le code et les actions que le smart contract effectuerait s’il venait à être appelé. Un smart contract peut faire plus que simplement gérer une transaction entre deux utilisateurs, puisque c’est un code informatique. 

Les smart contracts publiés sur la blockchain marchent en permanence, sans coût de maintenance pour le développeur, car ils sont supportés par les nœuds et mineurs du réseau. Cependant, à chaque fois que le contrat est appelé, l’utilisateur paye des frais de transactions (gaz sur Ethereum) qui dépendent notamment du volume d’information nécessaire pour faire tourner le smart contract

Une application décentralisée (ou DApp) est une application hébergée sur une blockchain, un réseau décentralisé, et dans notre cas Ethereum. Elle fait appel à plusieurs smart contracts afin de fonctionner et d’automatiser le côté interactif de l’application sans avoir à passer par un serveur. Le développement de DApp est complexe pour diverses raisons. Il n’est pas permis de faire des erreurs dans le code car on ne peut le modifier par la suite, et il faut prévoir de quoi l’améliorer en laissant la porte ouverte à des smart contracts correctifs ou complémentaires. L’expérience utilisateur avec la question des frais et des délais de transaction sont de véritables challenges. Il est préférable de configurer une blockchain de test en local pour tester son code et de publier d’abord son application sur des chaines publiques de test existantes, avant de publier sur la blockchain principale Ethereum car cela impliquerait des frais de transactions et polluerait la blockchain, notamment si le code venait in fine à être abandonné. 

Pour les bases du code en solidity (un des langages les plus utilisés pour l’écriture de smart contracts) et approfondir ce que cela représente concrètement ainsi que les interactions avec le développement classique, je ne peux que vous conseiller cryptozombies,  un tutoriel très ludique sur le développement d’application décentralisée. 

Histoire et avenir
Decentralized Autonomous Organization (DAO)

Ethereum a permis le développement d’organisations autonomes décentralisées en leur permettant d’instaurer des règles de fonctionnement et de gouvernance immuables et transparentes. L’historique transactionnel de l’organisation et ses actions sont garantis par la technologie. Le cas le plus connu est une histoire rocambolesque, à l’origine du hard fork de Ethereum, qui a mené la création de deux blockchains distinctes. En 2016, le fond d’investissement TheDAO a lancé une campagne de crowdfunding qui lui a permis de collecter 3,6 millions d’Ether, l’équivalent de plus de 150 millions de dollars. Mais à cause d’une faille dans les programmes sous-jacents, les fonds se sont fait hacker. Une grande majorité des nœuds d’Ethereum ont décidé de revenir en arrière dans la chaîne de blocs afin de restaurer les fonds. La minorité ne souhaitant pas faire machine arrière a décidé de continuer sous le nom de Ethereum Classic (ETC). Cette affaire a bouleversé la communauté sur de nombreux sujets comme les questions de la sécurité des codes mis en ligne ou encore l’aspect légal avec la Securities and Exchange Commission (SEC) et autres régulateurs qui se sont penchés sur les cas d’usages de la blockchain qui pouvait s’apparenter à des actifs spéculatifs (ICO et autres) et devant être ainsi soumis à des réglementations, notamment en ce qui concerne l’identité des parties prenantes (Know Your Customer).   

Proof of Work vs Proof of Stake

Un petit point sur un débat qui a animé Ethereum récemment et qui concerne la validation des blocs. Ethereum fonctionne avec une preuve de travail, mais il existe des alternatives telles que la preuve d’enjeu (PoS, pour Proof of Stake) utilisée par d’autres blockchain (par exemple Nxt, créée en 2013). La preuve d’enjeu, au lieu de se baser sur la puissance de calcul comme dans le cas de la preuve de travail, se base sur le capital en cryptomonnaie mis en garantie par les nœuds. Pour valider une transaction, un ensemble de nœuds est sélectionné et vote pour le prochain bloc qui sera validé. L’importance du vote d’un nœud dépend du capital mis à disposition par celui-ci. L’intérêt est de maximiser la sécurité (en rendant les attaques très chères), éviter la centralisation de la décision (en nullifiant l’intérêt des économies d’échelles) et économiser en énergie (la preuve de travail étant énergivore, le coût étant estimé à plus d’1 million de dollars par jour en électricité et matériel pour Ethereum et Bitcoin). Les frais de transactions pourraient être très inférieurs. Bien sûr, la preuve d’enjeu présente des limites et je vous invite à lire la FAQ de Vitalik Buterin et autres articles à ce sujet pour en savoir plus ! Ethereum a lancé Casper en 2019 une expérimentation en PoS afin de tester la preuve d’enjeu avant une mise à jour appelée Serenity qui devait initialement avoir lieu en janvier 2020. 


Sources :

ETHEREUM, White Paper, 2015
https://github.com/ethereum/wiki/wiki/White-Paper

https://cryptozombies.io/fr/

https://dappradar.com/

https://www.ethereum-france.com/

Vitalik Buttering, FAQ sur la prevue d’enjeu (en anglais)
https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ