Ethereum et The DAO

 

ETHEREUM-THEDAO-EHEREUMCLASSIC

Il existe de nombreux articles sur Ethereum et sur The DAO, le but de celui-ci étant de regrouper toutes les informations existantes à ce jour en un seul et même billet. Ainsi dans cet article nous parlerons de la blockchain Ethereum ainsi que The DAO qui aurait pu devenir la première grande application au sein d’Ethereum.

 

Ethereum :

Afficher l'image d'origine

Ethereum est une blockchain, dont la première version a été lancée le 30 juillet 2015 par Vitalik Buterin.Cette blockchain, au contraire de la blockchain bitcoin, possède un créateur bien identifié et un support officiel via l’Ethereum Foundation. Il ne s’agit pas des « possesseurs » de la blockchain, mais uniquement d’une fondation ayant pour but de promouvoir Ethereum et de proposer des mises à jour.

En effet, actuellement Ethereum est basée sur un modèle Proof of Work (PoW), c’est-à-dire que la validation des blocs de transaction est faite par les mineurs qui disposent de la capacité de génération de hash la plus élevée. Par conséquent, les avis de Vitalik et de l’Ethereum Foundation n’ont qu’une valeur morale.

Ethereum se différencie donc de Bitcoin de par sa gouvernance mais surtout pour une raison principale : les smarts contracts. Les smarts contracts sont des scripts développés par la communauté qui peuvent être intégrés dans la blockchain. Tout participant de la blockchain peut exécuter ces smarts contracts en échange d’un paiement. Il est cependant très important de noter que les smart contracts étant intégrés dans la blockchain sont immuables. Il n’est pas possible de les modifier comme nous modifierions une application déployée sur un serveur conventionnel.

Si Bitcoin est souvent comparé à un livre de compte décentralisé, Ethereum est lui comparé à un ordinateur décentralisé.

 

The DAO:

https://daowiki.atlassian.net/wiki/download/attachments/655365/DAO?version=2&modificationDate=1462133209864&api=v2

The DAO est une Decentralized Autonomous Organization, c’est à dire un fonds d’investissement décentralisé et autonome. Le code de The DAO a été crée par l’entreprise Slock.it à la suite à une campagne de financement participatif ayant levé plus de 150 millions de dollars. Cela en fait la campagne la plus réussie de l’histoire du crowndfunding. Le principe de cette organisation étant simple : les personnes ayant investit dans The DAO peuvent voter pour ou contre le financement d’un projet. Il était possible pour n’importe qui de proposer à The DAO de financer son projet, le résultat étant défini en fonction du vote, au prorata des tokens The DAO possédés.

Le fonctionnement de The DAO étant entièrement régis par un smart contract, l’organisation était donc totalement décentralisée et il était supposément impossible d’intervenir pour modifier celle-ci. Cependant, alors que de très grands espoirs étaient placés dans The DAO avant même qu’elle ne puisse financer sont premier grand projet un problème majeur arriva.

Comme dans toutes les organisations de financement, il est possible de se retirer de celle-ci si un investisseur n’est pas en accord avec les choix faits par la majorité. Il peut donc demander à se retirer et partir avec ses ethers. Il est aussi possible de rester dans The DAO mais de créer une « child DAO ». Une child DAO fonctionne exactement de la même manière que The DAO, mais l’investisseur en désaccord commence seul et pourrait se voir rejoint par d’autres investisseurs en désaccords.

Le drainage de The DAO

Le 17 juin 2016, un tiers des fonds de The DAO ont été drainés,  lors de cette journée 3.6 millions d’Ether furent dérobés. En appliquant le cours de l’ether à cette époque il s’agissait d’un vol de 50 millions de dollars !  La technique utilisée se base sur une faille dans le smart contract de The DAO. Il est ici important de préciser qu’il s’agit d’une faille de The DAO et non pas du « piratage d’Ethereum » comme nous avons pu le voir. Ethereum n’a jamais été piraté à l’heure où cet article est écrit.

La faille est la suivante : lors de la création d’une « child DAO », les fonds en ethers sont transférés à la DAO child, mais, il était possible de faire un appel récursif à la fonction de retrait avant que le premier transfert soit fini. Vous pouviez donc retirer indéfiniment votre solde en ether, et ce tant qu’il restait des fonds dans The DAO.Lorsque les développeurs de The DAO se rendirent compte du drainage des fonds la course commença. Un groupe de White Hat proposa alors de drainer les fonds restant dans une child DAO. Celle-ci serait contrôlée par les White Hat ainsi que des membres de l’Ethereum Foundation.

Le voleur réussit ainsi à drainer 50 millions de dollars. Il ne pouvait cependant pas s’enfuir avec son butin car, un mécanisme interne au smart contract de The DAO imposait d’attendre 27 jours avant de se retirer d’une  child DAO.Il restait donc du temps pour trouver une solution pour empêcher le voleur de pouvoir revendre ses ethers.

Un voleur ?

L’attaque sur The DAO eu tout de même un effet positif. De nombreuses questions qui n’avaient pas été posées furent étudiées. Peu de temps après l’attaque un utilisateur se présentant comme le voleur de The DAO, affirma que son action n’était pas un vol. Le principe d’Ethereum étant « The code is the law ».

The terms of The DAO Creation are set forth in the smart contract code existing on the Ethereum blockchain at 0xbb9bc244d798123fde783fcc1c72d3bb8c189413. Nothing in this explanation of terms or in any other document or communication may modify or add any additional obligations or guarantees beyond those set forth in The DAO’s code.The DAO’s code controls and sets forth all terms of The DAO Creation

Bien qu’il n’eut pas utilisé le code de la manière prévue par les développeurs, le voleur argua du fait qu’il n’avait fait qu’exécuter le code. Il avait donc suivi « la loi » et était donc le propriétaire légal des ethers drainés. Le message était probablement un faux, cela eut tout de même le mérite de soulever le problème du « code is the law ».

Le Soft Fork : Une solution à double tranchant

Une des premières solutions proposées fut le soft fork. Le principe était de geler l’adresse de la child DAO du hacker. Cela faisait définitivement perdre un tiers de la valeur de The DAO, mais, cela empêcherait aussi le voleur de récupérer les ethers drainés. Il fut ensuite proposé de répartir les fonds restant entre les investisseurs, au prorata des tokens The DAO possédés. Cette solution fut majoritairement approuvée par la communauté. Il fallait maintenant mettre à jour tous les clients et les mineurs d’Ethereum.  Toute transaction essayant d’interagir avec les fonds bloqués serait dorénavant rejetée. Cependant à quelques jours de la mise en place du soft fork, un article révéla un problème majeur : la mise en place du soft fork mettrait en danger toute la blockchain Ethereum.

Si le soft fork était mis en place, la blockchain Ethereum serait alors vulnérable aux attaques DDOS (Distributed Denial of Service). Pour réaliser une attaque DDOS sur la blockchain Ethereum il aurait suffi de réaliser des opérations coûteuses en puissance de calcul, puis de finir ces opérations par un mouvement de fonds sur l’adresse bannie. La suite d’action serait alors annulée et les frais de transactions seraient rendus à l’émetteur de celles-ci. Les mineurs ne seraient pas rémunérés, il serait donc possible de réaliser une attaque DDOS « gratuitement ».

Le soft fork fut donc abandonné, il ne restait alors que 2 solutions : ne rien faire et laisser le voleur partir avec les fonds drainés ou bien réaliser un hard fork.

Le Hard Fork : Une solution controversée

Le hard fork permettait de résoudre radicalement le problème du pirate de The DAO. Il ne s’agissait rien de moins que de réécrire la blockchain. Le principe étant de supprimer de la nouvelle blockchain toutes les transactions illégales réalisées par le pirate, puis de modifier le code du smart contract de The DAO pour rendre les fonds aux investisseurs. Ce genre de modification n’étant absolument pas anodin, on assista à la mise ne place d’un vote pour choisir si l’on allait appliquer le hard fork. Les mineurs, principaux piliers de la communauté furent plus de 80% à voter pour le hard fork. À la suite de ce vote, le hard fork fut mis en place.

Cependant, cette  décision resta extrêmement controversée pour plusieurs raisons :

  • Le vote partait du principe que les utilisateurs ne votant pas acceptaient le principe du hard fork. Ce qui a pu donner des résultats biaisés.
  • Le hard fork était un reniement du principe d’immuabilité de la blockchain, de part la suppression de transaction, mais aussi à cause de la réécriture du smart contract de The DAO.
  • Le hard fork fit apparaitre des défiances vis-à-vis de la gouvernance de la blockchain.

En effet, l’un des principes phares d’Ethereum était l’immuabilité des smarts contract qui était ici remise en cause. De plus, alors qu’il existait des précédents de smart contracts buggués ayant obligés leurs créateurs à rembourser « manuellement » leurs utilisateurs, il a ici été décidé de modifier l’intégralité de la blockchain pour venir en aide à une entreprise The DAO.

Il est ici important de rappeler que, le code de The DAO est basé sur le code proposé par l’entreprise Slock.it créée par Mr Stephan Tual .

La gouvernance de la blockchain a aussi été remise en cause car Vitalik a rapidement fait savoir qu’il était en faveur du hard fork. Ceci alors qu’il faisait partie de l’Ethereum Foundation censée être un organisme neutre. Stephan Tual ayant été directeur de la communication de l’Ethereum Foundation certaines voix se sont élevées pour dénoncer une possible connivence.

 

Ethereum Classic : Les principes fondateurs avant tout

Afficher l'image d'origine

 Suite à la mise en place du hard fork et aux problèmes qu’il a soulevés, une partie de la communauté décida de se séparer d’Ethereum. Ils décidèrent de continuer à utiliser et à miner l’ancienne blockchain, sans appliquer le hard fork. Cette blockchain parallèle prit le nom d’Ethereum Classic.

Cette « révolution » parue inutile et non viable, en effet, la puissance de calcul au service d’Ethereum Classic était extrêmement faible. Cependant, un retournement de situation s’opéra lorsque la plateforme de traiding Poloniex décida d’ajouter à ses monnaies Ethereum Classic. Cette chaine alternative considérée comme sans valeur prit tout d’un coup une valeur reconnue par un acteur du milieu de la blockchain.

Suite à cela, différents pools de mineurs se mirent à proposer le minage d’ether classic. Aujourd’hui, kraken, la plus grande plateforme d’échange de crypto-monnaies, a décidé d’ajouter l’ether classic à son pool de crypto-monnaies. L’ether classic que de nombreuses personnes voyaient comme une blockchain sans avenir vient donc de s’ancrer un petit peu plus dans le paysage des crypto-monnaies.

En conclusion, 2 points sont importants à retenir :

Les smart contracts sont à utiliser avec parcimonie. Ils ne sont pas modifiables comme une application conventionnelle et ils manipulent l’argent d’utilisateurs. Malgré toutes les précautions prises par The DAO, une faille a subsisté et elle a entrainé la chute de l’entreprise. Les développeurs de smart contracts doivent redoubler d’attention et il est préférable de faire des contrats les plus courts et clairs possibles.

Le deuxième point concerne les blockchains,  de part leur aspect décentralisé, elles sont définies avant tout par leurs communautés. En effet même si les leaders moraux d’Ethereum ont choisi de promouvoir le hard fork, une partie de la communauté a choisi de rester fidèle aux principes qui leur tenaient à cœur. À l’heure actuelle, nul ne saurait prédire ce que deviendra Ethereum et Ethereum Classic. Une de ces deux blockchain prendra-t-elle l’ascendant sur l’autre ? Coexisteront elles ensemble? Seul l’avenir nous le dira.

 

Par Raphaël Cluzeau

Laisser un commentaire

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