Cet article constitue une première introduction à Ethereum. Il traite de façon la plus pédagogique possible des concepts de blockchain, smart contracts et DAO, sans entrer dans des détails techniques.
Ethereum, un ordinateur mondial
En une phrase, Ethereum est : un ordinateur mondial, que n’importe qui peut programmer et utiliser comme il le souhaite. Cet ordinateur est toujours allumé, il est très sécurisé, et tout ce qui est fait à l’aide de cet ordinateur est public.
Cette infographie permet d’avoir un premier aperçu de son fonctionnement. « Ethereum expliqué à ma mère ».
Ethereum, c’est donc la décentralisation d’applications. Ces applications fonctionnent sur le réseau Ethereum, qui est constitué de plusieurs milliers d’ordinateurs qui communiquent en permanence. Ils partagent une même base de données, la blockchain. Cette base de données peut être comparée à un grand registre, qui serait rempli ligne par ligne par les participants au réseau, ou un tableau excel sur lequel on ne pourrait qu’entrer une nouvelle ligne, sans pouvoir modifier les autres.
Pour utiliser cette blockchain, le utilise des « smart contracts« , qui sont en réalité des lignes de code informatique programmables, qui correspondraient à des macros dans l’analogie avec un tableau excel. Plus d’informations sur les smart contracts dans l’article qui leur est dédié.
Cette décentralisation par l’utilisation de la technologie blockchain présente de nombreux avantages, parmi lesquels :
- Immuabilité : les données qui sont enregistrées dans une blockchain y sont enregistrées ad vitam aeternam : la blockchain garde l’historique de toutes les modifications qui y ont été apportées depuis l’origine et il n’est pas possible de modifier cet historique.
- Protection contre la corruption des données : puisque chaque ordinateur possède une copie de la base de données, il est extrêmement difficile de pirater cette base de données. Pour altérer la base, il faudrait altérer simultanément plus de 51 % des ordinateurs participants simultanément… La blockchain bitcoin existe depuis 2009 et elle n’a jamais été corrompue par une attaque informatique.
- Sécurité du réseau : la blockchain fonctionne avec un protocole chiffré très puissant qui la rend également très difficile à altérer.
- Fiabilité : Il est virtuellement impossible d’arrêter simultanément tous les ordinateurs participants à la blockchain Ethereum. Par conséquent, cette base de données est toujours en ligne et son fonctionnement ne s’arrête jamais.
L’autre caractéristique importante d’Ethereum est la transparence. L’ensemble des contrats s’exécutent publiquement sur Ethereum et, avec la connaissance technique nécessaire, n’importe qui peut contrôler que tout fonctionne correctement.
Ethereum a été déployé par la Fondation en août 2015 et le protocole est encore en développement. La version 1.0 a été déployée le 14 mars 2016, mais les outils permettant au « grand public » de l’utiliser n’ont pas encore été développés.
Cependant des dizaines de développeurs dans le monde entier sont d’ores et déjà au travail pour développer des applications décentralisées (« dApps ») qui s’exécuteront sur Ethereum.
Quelques exemples de ces projets d’application :
- Augur, un logiciel permettant à chacun de « parier » sur la réalisation d’un événement, en étant rémunéré dans les cas où la prédiction s’avère juste, l’objectif (très humble…) étant à terme de prédire le futur en se fondant sur l’intelligence collective ;
- Slock.it, un logiciel permettant de contrôler des objets intelligents par des « smart contracts » enregistrés sur la blockchain qui semble très intéressant dans le fonctionnement, un article détaillé sur cette société est disponible ici ;
- Maker, un projet de banque décentralisée permettant de prêter de d’emprunter une monnaie de valeur égale au dollar sans intermédiaire.
Pour aller plus loin…
Comment ça marche exactement ? La technologie derrière Ethereum est grosso modo la même que celle utilisée par le bitcoin : il s’agit d’ordinateurs individuels qui « participent » à une unique base de données globale publique, et donc partagée entre tous. Un livre de comptes, ou un tableur géant dans lequel chaque personne intéressée entre les données qu’il souhaite et auquel tout le monde a accès.
C’est ce qu’on appelle la « blockchain ». Cette « blockchain » comprend l’historique de l’ensemble des opérations qui ont été réalisées sur la base. Cela permet 1) d’éviter que quelqu’un ne puisse modifier cet historique de la base et 2) de pouvoir reconstituer à n’importe quel moment les différentes opérations effectuées sur la base par les utilisateurs.
Plus d’infos sur la blockchain dans cette vidéo très bien réalisée par rue89 :
Vous trouverez également des informations complémentaires sur cette technologie sur le site de Blockchain France.
Comment utilise-on cette base de données ? C’est ici une grosse spécificité de la technologie développée par les créateurs d’Ethereum : on programme, sous la forme de « contrats » virtuels, appelés « smart contracts », des actions qui sont exécutées par l’ensemble des participants à la blockchain. Si la blockchain est un tableau Excel, les smart contracts sont des macros.
Les développeurs envoient donc une série d’instructions à la blockchain (un « smart contract »). Ces instructions sont ensuite exécutées automatiquement sur la blockchain lorsqu’une personne le demande (elle envoie une instruction d’exécution). L’exécution est publique et vérifiable par les ordinateurs connectés à la blockchain.
Un exemple pratique : imaginons que vous souhaitez réaliser un site permettant à chacun d’effectuer un pari. Vous créer un contrat sur lequel les gens peuvent parier. Il contient les instructions suivantes :
- Si quelqu’un envoie de l’ether et parie sur « PSG », enregistrer son pari et calculer une nouvelle cote ;
- Si quelqu’un envoie de l’ether et parie sur « OM », enregistrer son pari et calculer une nouvelle cote ;
- A l’issue du match, consulter une base de données fiable contenant le résultat du match et distribuer les gains mathématiquement en fonction des cotes et des paris de chacun.
Une fois le programme créé, il peut s’exécuter de façon entièrement automatique et vérifiable par chacun. C’est un système de pari totalement transparent et décentralisé.
Cet exemple est naturellement très basique : les usages d’Ethereum sont multiples. L’un des concepts les plus intéressants développés à ce jour sur la blockchain est la DAO (« decentralized autonomous organization ») qui a fait l’objet d’un article détaillé sur le site. Un article détaillé est également consacré aux smart-contracts en général.
Comment les contrats sont-ils exécutés ? Pour exécuter les instructions sur la blockchain Ethereum, il faut de la puissance de calcul. Cette puissance de calcul est fournie par les participants au réseau. Ce sont des particuliers ou des entreprises qui décident de mettre à la disposition du réseau leur ordinateur pour faire fonctionner la blockchain. Ils sont rémunérés pour cela, par l’octroi d’ether.
Quel est leur intérêt à participer, c’est à dire à quoi servent ces ethers ? Ce qui donne de la valeur à ces ethers, outre qu’ils peuvent être échangés comme une monnaie sur une plateforme de marché, c’est qu’ils sont échangeables contre du gaz, qui est nécessaire pour exécuter les contrats. L’échange se fait en pratique automatiquement : lorsque vous exécutez un contrat, cela vous coûte une fraction d’ether correspondant au coût en gaz. Ainsi, l’exécution d’un contrat nécessite de posséder des ether, et pour posséder des ethers il faut soit participer au réseau soit en acheter aux participants, qui font fonctionner les contrats. La boucle est bouclée.
Cet article constitue une introduction générale à Ethereum. N’hésitez pas à poser vos questions ou proposer des améliorations en commentaire.