Prochains événements

Aucun événements prévu pour le moment.

Articles

Les premiers pas d’Ethereum

Le mois de novembre 2013 marque la naissance d’Ethereum. Vitalik Buterin est alors âgé de 19 ans. C’est un développeur surdoué qui réussit à fédérer parmi les meilleurs talents du petit monde des crypto-monnaies. Il avait contribué activement au développement du protocole Bitcoin dès 2011 et c’est l’idée de permettre à tous la réalisation d’applications basées sur la blockchain qui le pousse à créer Ethereum, une “plateforme d’applications distribuées”.

Après avoir reçu l’équivalent de 15 millions d’euros en bitcoin lors de la campagne de financement de mai 2014, l’équipe déploie le premier bloc de la blockchain Ethereum le 30 juillet 2015. Dans sa phase actuelle de développement, l’algorithme de consensus fonctionne sur le même principe que Bitcoin, c’est-à-dire en Proof-of-Work, sauf que les mineurs gagnent 5 ethers par bloc miné et la quantité totale n’est pas fixée en valeur.

On a le même système de clé publique/clé privée, mais sur Ethereum il y a deux types de comptes: les comptes dits “personnels” contrôlés par clé privée et les contrats autonomes contrôlés par le code, en anglais “smart contracts”. Il ne s’agit pas de contrats au sens juridique du terme, ce sont des programmes qui s’exécutent “sur la blockchain”, c’est-à-dire sur tous les ordinateurs qui maintiennent le réseau.

Le concept de contrat autonome a été décrit pour la première fois par Nick Szabo au début des années 90. Il explique qu’un contrat autonome fonctionne un peu comme un distributeur automatique: on ne peut pas prendre sans payer les friandises que la machine contient. Pour obtenir un paquet de Skittles, il faut insérer une ou deux piécettes qui déclenchent un automatisme programmé à l’avance. C’est un peu la même chose avec les contrats autonomes: vous pouvez envoyer quelques centimes au contrat pour déclencher toutes sortes d’actions comme procéder à une série de virements, ouvrir l’accès à un fichier particulier ou bien faire valoir un droit de vote par exemple.

Les titres numériques (ou “tokens”) qui s’appuient sur Ethereum sont infalsifiables et peuvent jouer les rôles de passeports, de titres de propriété, de parts d’une entreprise, de monnaies complémentaires, de droits de vote, ou de certificats en tous genres. Ainsi les mêmes propriétés techniques permettent des usages très variés. La notion de propriété d’actifs numériques est un des aspects essentiels à la compréhension de la blockchain en tant que technologie. La norme ERC-20 devient le standard qui facilite notamment la manipulation de ces actifs. C’est aussi ce qui explique le développement explosif de ce mode de financement.


Ces contrats peuvent être rédigés dans plusieurs langages informatiques spécifiques mais le langage appelé “
Solidity” est de loin le plus populaire aujourd’hui. On peut même créer son propre langage de programmation car Ethereum est Turing-complet. De ce point de vue, la plateforme laisse une très grande liberté aux utilisateurs si on la compare à Bitcoin. Or, pour des raisons de sécurité, Satoshi avait justement choisi de restreindre de façon très stricte les données qu’un utilisateur peut enregistrer sur la blockchain Bitcoin. Sur Ethereum, c’est très différent: tant que vous avez suffisamment de carburant (“gas”), vous pouvez enregistrer autant d’informations que vous voulez dans la limite de la capacité de chaque bloc.

Si Ethereum est “l’ordinateur mondial”, comprenez qu’il est lent et cher. Pour l’instant c’est comme si on ne pouvait jouer qu’à Pac-Man en noir blanc… mais on peut quand même jouer ! Le projet est encore loin d’avoir atteint la phase finale de développement appelée “Serenity”. Il est prévu qu’Ethereum passe du Proof-of- Work (minage) au Proof-of-Stake (“minage virtuel”). Ce sont deux algorithme de consensus différents et ce changement important devrait permettre de passer de 14 à 1 seconde en moyenne pour valider chaque bloc, accentuer la décentralisation et aussi réduire la consommation d’électricité du réseau.

Les applications distribuées, qu’on appelle aussi “dapps”, sont composées d’un contrat et d’une interface. Autrement dit pour un développeur confirmé, il est plutôt facile d’aborder cet environnement de travail, même si la temporalité spécifique n’est pas forcément évidente à s’approprier.

Les DAO (“Decentralized Autonomous Organizations”) sont des communautés qui fixent leur règles de fonctionnement dans un contrat autonome. Elles ont toutes un mode de fonctionnement qui leur est propre. Certaines intègrent un système de vote, d’autres un système de réputation, d’autres encore proposent de rémunérer automatiquement les contributions, et il existe d’autres modèles. Certains vont jusqu’à imaginer un gouvernement complet sous la forme d’une série de contrats.

Le projet “The DAO” était une DAO parmi quelques autres. Les participants devaient voter pour un nouveau nom mais ils n’ont pas eu le temps de le faire ! La campagne de mai 2015 avait récolté l’équivalent de plus de 180 millions d’euros en un mois de temps, mais le contrat principal de cette DAO contenait plusieurs failles qu’un attaquant a exploité pour détourner l’équivalent de 50 millions d’euros le 17 juin 2016. Cependant, il n’a pas pu les retirer, les fonds sont restés bloqués comme les règles du contrat l’imposaient. Le plus saisissant, c’est que la faille avait été décrite dix jours avant l’attaque, mais il était impossible de modifier ce contrat. À moins de le préciser dans le code, on ne peut pas arrêter l’exécution d’un contrat autonome.

Cette situation a conduit les développeurs d’Ethereum à proposer un “hard fork”, c’est-à-dire une version modifiée de la blockchain que les mineurs ont eu le choix d’installer ou non. Finalement et à contre-coeur, la communauté a opté pour cette solution. Un contrat de remboursement a été mis la place du précédent. La chaîne non-modifiée continue à être maintenue et utilisée. Fallait-il rejeter froidement la demande des participants imprudents ? Que se passera-t-il si le même cas se présente à nouveau ? Beaucoup de leçons ont été tirées de cet événement et aujourd’hui, fixer une limite fait partie des bonnes pratiques, comme la relecture et l’audit des contrats. Les développeurs proposent des récompenses parfois très généreuses (“bug bounty”) pour motiver d’autres développeurs à chercher des failles, bugs, vulnérabilités, etc.

Le succès de la conférence EDCON co-organisée par Asseth en février 2017 à Paris témoigne de la vivacité assez impressionnante de cet écosystème. Les différents acteurs mènent un débat permanent sur les choix techniques à venir. Vlad Zamfir, un des développeurs principaux a clairement mis en garde l’ensemble de la communauté sur le caractère hautement instable d’Ethereum. Le développement des applications “d’infrastructure” est très rapide (clients, wallets, outils), mais les applications à destination du grand public se font attendre. Peut-être plus pour très longtemps.

À propos de l'auteur

Responsable de la communication chez iExec et membre d’Asseth


2 Commentaires

  • Chauffer son appart' avec une app Android |

    9 octobre 2017 à 10 h 22 min · Répondre

    […] Et bien, on peut dire que Ethereum est le petit-fils amélioré de SETI. Chaque personne peut mettre à disposition son PC, serveur, machine, … afin de réaliser des calculs, un bout de code, une tâche précise et sera rémunéré en Ether (ETH) pour cela. Pour l’aspect technique, je vous laisse consulter cet article complet. […]


Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *