Dans mes premiers articles publiés ici même, vous avez pu comprendre globalement ce qu’est une blockchain, à quoi sert le minage dans le fonctionnement de celle-ci ou encore quels sont les enjeux du consensus dans le processus de cette technologie. Ces différents articles traitaient principalement de la blockchain Bitcoin, la première finalement à avoir vu le jour mais certainement pas la seule à l’heure actuelle à faire parler d’elle. Nous allons donc maintenant passer un peu de temps à découvrir la blockchain Ethereum et ses subtilités.

Petite histoire d’Ethereum

Pour commencer, Ethereum est une blockchain publique, tout comme Bitcoin, dont la technologie n’est pas une copie de celle de Bitcoin mais bien une nouvelle implémentation à partir de zéro par son créateur et une communauté de développeurs. La blockchain Ethereum est née fin 2013 dans un papier blanc publié par son inventeur, qui avait 19 ans à l’époque, Vitalik Buterin un Canadien d’origine russe, ce document pose les bases de cette technologie.

Début 2014, le jeune homme lance une campagne de financement du projet de développement en mettant en « prévente » environ 60 millions d’Ethers (la monnaie en circulation sur ce réseau dont le symbole est ETC) ce qui lui rapporte aux alentours de 18 millions de dollars sous forme de bitcoins, à l’époque cela représentait exactement 31 591 BTC. Bref, une opération de levée de fonds de grande envergure dans laquelle beaucoup de personnes ont cru dès le départ. Le premier bloc dit « bloc genesis » a été créé sur cette blockchain fin juillet 2015 et contient les transactions redistribuant les fonds levés aux développeurs ayant participé à la création de la technologie.

À la publication de cet article, la capitalisation d’Ethereum est d’un peu plus de 800 millions de dollars avec un Ether supérieur à 9 dollars, bien en dessous des presque 12 milliards de dollars de Bitcoin et de son bitcoin à 730 dollars. Deuxième plateforme en valorisation derrière Bitcoin, ses enjeux et objectifs sont totalement différents de ceux du numéro un.

En quoi Ethereum se différencie de Bitcoin

Tout d’abord Ethereum se différencie de Bitcoin dans sa philosophie de fonctionnement. Là où Bitcoin a pour objectif de servir de plateforme pour exécuter des transactions financières de manière décentralisées entre tous les utilisateurs du réseau, Ethereum se fixe pour objectif de servir de réseau d’exécution d’applications décentralisées (DApp) dans lequel la crypto-monnaie en circulation ne sert qu’à payer les mineurs pour la mise à disposition de leurs ressources pour exécuter ces applications.

L’enjeu pour Ethereum est donc de fournir une plateforme que l’on pourrait qualifier d’ « ordinateur mondial » sur lequel peuvent s’exécuter des applications sans qu’il n’y ait de serveurs centralisés pour en garantir le bon fonctionnement. Chaque nœud de la blockchain porte donc une partie de l’exécution des applications en circulation au sein de celle-ci.

Le délai de validation des blocs est plus court sur Ethereum, il faut environ 15 secondes pour qu’un bloc soit validé au lieu de 10 minutes pour Bitcoin. Les mineurs ne sont donc pas rémunérés au même niveau, un bloc validé rapporte 5 ETH soit environ 45 $ alors que sur Bitcoin un mineur gagne 12,5 BTC par bloc validé soit un peu plus de 9000 $. Par ailleurs, Bitcoin a prévu dans son code qu’il ne pourrait y avoir à terme plus de 21 millions de bitcoins en circulation, l’échéance fixée pour atteindre ce volume est 2140, alors que sur Ethereum aucune limite n’a été prévue.

Ci-dessous un tableau comparant la blockchain Bitcoin et celle d’Ethereum :

blockchain comparaison bitcoin et ethereum

Le « smart contract » ou l’application décentralisée

Les applications décentralisées s’exécutant sur la blockchain Ethereum s’appellent des smart contracts. Il s’agit de programmes informatiques dont les règles internes s’exécutent automatiquement lorsque les conditions pour les déclencher sont atteintes. Contrairement à ce que l’on entend souvent, le smart contract ne s’exécute pas tout seul, il a besoin d’être déclenché par un programme externe et c’est normal, à chaque exécution de l’application, il y a un coût associé.

Pour fabriquer ces programmes, on utilise un langage de programmation particulier, il en existe plusieurs possibles. Solidity (proche de javascript) est le langage fournit par la communauté Ethereum et proposé par celle-ci à tout nouveau développeur qui souhaiterait se lancer dans la programmation d’un smart contract. Deux autres langages peuvent être utilisés Serpent (proche de Python) et LLL (proche de Lisp) mais le plus populaire reste Solidity. Ces langages de programmation sont dits « Turing-complet », c’est à dire qu’ils permettent de programmer l’ensemble des fonctions calculables au sens de Turing, en gros on peut utiliser toutes les fonctions que l’on connaît des langages modernes.

L’Ether sert quant à lui à financer l’exécution de ces applications par le biais d’une unité que l’on appelle le gaz. Il existe un ratio entre l’Ether le gaz qui est dépendant du cours du marché. L’idée est de disposer d’une unité permettant de découpler la valeur de marché de l’Ether du coût d’une opération à exécuter sur la blockchain. À date une unité de gaz vaut environ 1 / 100 000 Ether, il est ainsi possible de faire varier le prix du gaz en fonction des mouvements de la valeur de l’Ether pour permettre de maintenir un coût stable du gaz le temps passant.

Qu’est-ce qu’un Oracle dans Ethereum ?

Il existe tout de même quelques limites dans le fonctionnement d’un smart contract dont on n’a pas l’habitude en informatique. Le plus gros inconvénient est qu’il n’est pas possible à partir du code d’une DApp d’appeler un code ou logiciel externe (comme une API par exemple), ce qui pose de sérieuses limites au modèle. Il existe tout de même un moyen d’outrepasser ce problème en faisant appel à un Oracle, il s’agit d’une forme de contrat particulier qui a la possibilité d’être appelé par un programme de l’extérieur d’Ethereum et surtout qui peut recevoir des données externes permettant de déclencher les règles internes d’un smart contract.

Le mode de fonctionnement est soit synchrone soit asynchrone. On pourrait expliquer ainsi le fonctionnement d’un Oracle, un programme externe est chargé d’aller récupérer les données sur un service externe, puis il appelle l’Oracle en lui passant les données récoltées et enfin l’Oracle appelle le smart contract en lui passant ces données pour lui permettre d’exécuter ses règles.

Finalement, l’Oracle est une application permettant de faire le lien entre ce qui se passe au sein de la blockchain de manière complètement virtuelle et ce qui se passe à l’extérieur de la blockchain, dans le monde réel.

Les DAO (Decentralized Autonomous Organization)

Une autre spécificité de la blockchain Ethereum est celle des Decentralized Autonomous Orgnisation (DAO) dont on a beaucoup entendu parlé cette année avec le piratage de TheDAO, nous y reviendrons. Commençons par la définition donnée par Blockchain France d’une DAO : « Une DAO (Decentralized Autonomous Organization) est une organisation fonctionnant grâce à un programme informatique qui fournit des règles de gouvernance à une communauté. Ces règles sont transparentes et immuables car inscrites dans la blockchain. »

Une DAO est donc une autre forme d’application décentralisée qui s’exécute sur Ethereum, il s’agit d’une petite révolution permettant à des individus de développer une organisation en commun sans avoir à passer par des tiers de confiance tel que des avocats ou encore des banques. En effet, tout est inscrit au sein du programme dont le mode de gouvernance et les règles qui régissent cette organisation, tout est auditable car publique et donc transparent pour tous les utilisateurs. La spécificité reste qu’il faut disposer des compétences techniques nécessaires à la compréhension de ce qui est codé à l’intérieur de la DAO avant de s’y engager, car comme toujours dans la blockchain « code is law ».

C’est d’ailleurs la limite qu’a matérialisé la première DAO jamais mise en place sur Ethereum, TheDAO. Elle a levé en l’espace de quelques semaines pas moins de 150 millions de dollars pour l’alimenter et lui permettre de financer des projets de startups voulant utiliser Ethereum pour fonctionner. Et bien cette DAO a été piratée, ou plutôt détournée, par des utilisateurs qui ont su utiliser le code la constituant à leur avantage. Il n’y pas eu à proprement parlé de « piratage », le code n’a pas été modifié, en revanche les règles qui ont été implémentées n’étaient pas assez robustes pour résister à une utilisation détournée du programme. Pour rappel, ce détournement porte sur un montant de 50 millions de dollars, ce n’est pas rien !

La particularité qu’a généré ce piratage, c’est la duplication de la blockchain Ethereum, on appelle cela un « fork ». En effet, l’idée de départ était que l’ensemble des utilisateurs d’Ethereum modifient leur version du programme afin de se réapproprier les fonds détournés et revenir à une situation stable. Sauf qu’une partie des utilisateurs, environ 15%, ont décidé de ne pas suivre la majorité, le consensus n’a donc pas été atteint. Dès lors, deux versions de la blockchain ont commencé à courir l’une à côté de l’autre, la principale qui s’appelle Ethereum et la version dupliquée qui s’appelle Ethereum Classic.

Des cas d’usage et projets en cours sur Ethereum

Les projets permettant d’exploiter les possibilités offertes par la blockchain Ethereum commencent à se répandre et donnent une idée des business models qu’il est possible d’implémenter grâce à cette technologie.

Commençons par le cas de la société Flight Delay qui fournit une solution d’assurance retard ou annulation de vol basée sur Ethereum. Le principe est simple, vous prenez l’avion et souhaitez être remboursé en toute ou partie de votre billet en cas de retard ou d’annulation de votre vol. Vous contractez donc une assurance en Ether grâce à cette entreprise sur Ethereum, au travers d’un smart contract, si les conditions du contrat sont remplies alors vous touchez la compensation associée de manière automatique et sans action spécifique.

Autre exemple intéressant celui d’Augur une place de marché de prédictions qui vous récompense lorsque vous réalisez une prédiction sur un futur événement dans le monde réel. Un exemple du moment avec cette question posée par un utilisateur « La valeur d’un BTC va-t-elle dépassée les 750 $ avant les fêtes de Noël ? (selon les données provenant du site www.bitstamp.net » Il s’agit donc d’une plateforme permettant de parier sur la réalisation d’un événement dans la vie réelle et dont la vérification des faits se réalise au travers d’un smart contract et d’un Oracle.

Finissons par l’exemple de la startup Slock.it qui développe une technologie capable d’interfacer des objets physiques à Ethereum pour leur permettre d’interagir avec des smart contracts. Un exemple donné par cette société consiste à vouloir uberiser AirBnB grâce au développement d’une poignée de porte électronique basée sur des smart contracts Ethereum. L’idée de cette poignée est de pouvoir louer un bien sur une durée donnée sans qu’il n’y ait besoin d’une intervention de son propriétaire et quel que soit l’emplacement dans le monde de ce bien dès lors qu’il est disponible. Plus besoin de passer par une plateforme centralisée, vous passez directement par le biais de la blockchain, reste à savoir le niveau de confiance que les utilisateurs auront dans la technologie et les recours possibles en cas de problèmes.

En conclusion, nous avons abordé tout au long de cet article les différents points qui font la force de la blockchain Ethereum en passant de son histoire, ses capacités logicielles, son mode de fonctionnement, les DAO ou encore les cas d’usage possibles avec cette technologie. Il s’agit surement d’une des blockchain les plus prometteuses pour le monde de l’entreprise et pour le développement de nouvelles formes de modèles d’affaires ou de mode d’organisation. Tout ceci est encore bien balbutiant mais il y a fort à parier que cela va se structurer dans les prochaines années.

Pour en savoir plus :