Etude du cas The DAO

in ULille blockchain2 months ago (edited)

image.png

Dans le cadre de ma deuxième année de Master Mathématiques, Finance computationnelle, Actuariat, j’ai suivi un enseignement sur la blockchain, l’enseignant m’a, dans le cadre de ce cours, posé la question suivante : "Un des évènements les plus fameux dans l’histoire de la blockchain Ethereum concerne le programme utilisateur « The DAO ». La blockchain publique Ethereum fût confrontée alors à un dilemme philosophique. Pouvez-vous l’exprimer ? Les deux voies de réponse possibles ont été empruntées. Expliquez"

Voici la réponse donnée par ChatGPT:

Le dilemme philosophique auquel la blockchain Ethereum a été confrontée avec le programme utilisateur "The DAO" peut être exprimé comme suit :

Dilemme Philosophique :

  1. Intervention vs. Immutabilité : La question était de savoir s'il fallait intervenir pour corriger une faille de sécurité dans le code du contrat intelligent ("smart contract") du DAO, ou maintenir l'immutabilité de la blockchain Ethereum, qui est l'un de ses principes fondamentaux.

Les deux voies de réponse possibles :

  1. Intervention : Certains membres de la communauté Ethereum ont préconisé une intervention pour corriger la faille et récupérer les fonds perdus par les investisseurs. Cela a conduit à une division au sein de la communauté, avec certains affirmant que la priorité devrait être de protéger les utilisateurs et la réputation d'Ethereum en évitant un désastre financier majeur.
  1. Immutabilité : D'autres ont soutenu que l'immutabilité de la blockchain Ethereum était sacrée et que toute intervention pour modifier le code ou les transactions ouvrirait la porte à une remise en question de la confiance dans la technologie blockchain. Ils ont souligné que la programmation des contrats intelligents devrait être rigoureuse et que les utilisateurs devraient assumer la responsabilité de leurs décisions.

Ces deux voies de réponse ont été empruntées :

  • Intervention : La communauté Ethereum a finalement décidé de procéder à une "fourchette dure" (hard fork) pour inverser les transactions associées à l'exploitation de la faille dans le code du DAO. Cela a donné naissance à Ethereum Classic, une blockchain alternative qui a choisi de maintenir l'immutabilité et de ne pas intervenir pour récupérer les fonds perdus.
  • Immutabilité : Ethereum Classic est né de ceux qui ont choisi de maintenir l'immutabilité de la blockchain Ethereum, refusant toute intervention pour corriger la faille du DAO. Ils ont soutenu que les transactions sur la blockchain devraient être irréversibles, même en cas de faille de code.

Mise en contexte

Il convient en premier lieu d'expliquer ce qu'est un DAO, ou Decentralized Autonomous Organization. Il s'agit d'une entité qui fonctionne grâce à des smart contracts sur une blockchain. Contrairement aux organisations traditionnelles, un DAO n'est pas contrôlé par une entité centrale ou un groupe de personnes, mais plutôt par un ensemble de règles programmées dans les contrats intelligents, qui s'exécutent automatiquement et de manière transparente sur la blockchain. Les DAOs peuvent être utilisés pour une variété de fonctions, notamment la gouvernance, la gestion des fonds ou encore le financement participatif (crowdfunding).

Une des premières DAO d'envergure, pertinemment appelée The DAO, fut lancée en Avril 2016, durant la jeunesse de la blockchain Ethereum, après avoir récolté plus de 150 millions de dollars à la suite d'une campagne de crowdfunding. Cette plateforme était essentiellement un hedge fund communautaire, où les investissements étaient décidés de manière décentralisée et démocratique grâce a l'utilisation de la blockchain Ethereum.

Son fonctionnement général était le suivant:

  1. Les utilisateurs pouvaient recevoir des tokens "DAO" en échange d' Ethers déposés dans le fond de l'organisation, ces tokens représentaient leur part (share) dans la DAO.
  2. Ces utilisateurs pouvaient soumettre à la communauté des propositions d'investissement, qui étaient ensuite soumises à un vote, pour déterminer si oui ou non les fonds seraient débloqués.
  3. Si le vote était accepté, la DAO transférait les Ethers dans un smart contract qui représentait l'investissement, et si cet investissement amenait à un profit, les Ethers ainsi gagnés étaient rapatriés vers le fond, augmentant ainsi la valeur sous-jacente du token.

Il est important pour la suite de noter le fait que, lors des votes, les utilisateurs qui détenaient plus de tokens avaient un pouvoir décisionnel plus important. Pour y pallier, et en cas de désaccord, les utilisateurs minoritaires pouvaient décider de split, ou de se séparer de la DAO principale en en retirant leurs Ethers afin de les déplacer vers une nouvelle "child DAO", dont ils étaient les seuls gestionnaires. Cette fonctionnalité de split était aussi utilisée lorsqu'un utilisateur souhaitait retirer ses Ethers du projet : en créant un DAO dont il était le seul participant, il pouvait y soumettre une proposition de retrait de fond, et ainsi récupérer sa cryptomonnaie. Au final, il n'était pas rare de voir un utilisateur créer sa propre DAO.

C'est cette fonctionnalité, associée à une faille dans le code du smart contract de la DAO, qui, en Juin 2016, permettra à un hackeur de siphonner les fonds du DAO, de l'ordre de 8 millions de dollars par heure, en splitant (dans ce qui sera par la suite appelé la "dark DAO"), puis en appelant récursivement une fonction qui lui permettra de retirer des quantités infinies d'Ethers.

Pasted image 20240417063322.png

Les lignes de code responsables de la faille, notons le numéro de ligne

Cette attaque, survenue durant la jeunesse de la blockchain Ethereum, a été lourde de conséquence, elle a notamment provoqué la chute du cours, avec une baisse de plus de 50% du prix de l'Ethereum Flash.

Pasted image 20240417070200.png

Cours de l'Ethereum Flash lors de l'attaque de The DAO, fournie par Trading View

En réponse à cette attaque, un groupe d'utilisateurs de The DAO essaieront de retirer les fonds restants non encore siphonnés (dans ce qui est communément appelé une race-to-empty) en commettant leur propre attaque "white hat", ce qui leur permettra, avec l'aide de la communauté, de récupérer 7.2 millions d'Ethers, ou 55% du fond DAO.

A la suite de cet événement, les acteurs majeurs de la blockchain Ethereum proposeront une mesure drastique et controversée afin de rendre aux utilisateurs leur argent perdu : un hard fork.

Le Hard Fork de la Blockchain Ethereum

En blockchain, un hard fork est une mise à jour majeure du protocole qui rend les versions précédentes du logiciel incompatibles avec le nouveau protocole. Cela crée une séparation ou une divergence dans la chaîne de blocs, où une partie de la communauté continue à utiliser l'ancienne version du logiciel (appelée la "chaîne originale" ou "chaîne principale"), tandis que d'autres adoptent la nouvelle version du logiciel (créant ainsi une "nouvelle chaîne" ou "nouvelle branche").

En Juin 2016, un proposition de hard fork fut soumise au vote par Vitalik Buterin, le fondateur d'Ethereum, afin de rembourser les utilisateurs de The DAO de leurs Ethers perdus durant l'attaque. Cette proposition sera acceptée avec 87% des voix et le fork sera donc exécuté le 20 Juillet 2016.

Pasted image 20240417082051.png

Les résultats du votes du hard fork de la blockchain Ethereum, via WaybackMachine

La blockchain Ethereum sera alors séparée en deux blockchains distinctives, et la version originale sera renommée Ethereum Classic.

Pasted image 20240417095617.png

Cette décision n'aura pas été sans son lot de détracteurs, et durant cette période, de nombreux débats sur l'éthique et la philosophie de la blockchain seront lancés.

Le débat

Comme énoncé dans la réponse de ChatGPT, le débat lancé par le hard fork d'Ethereum repose sur la question de l'immutabilité contre l'intervention : en cas d'événement majeur, peut-on faire des changements drastiques afin de réparer les torts, quitte à renier les valeurs et les principes fondamentaux de la blockchain et sa communauté ?

Cette question est d'autant plus importante lorsque l'on parle d'une technologie relativement nouvelle qui doit encore faire ses preuves et inspirer confiance au grand public.

Code is law : la vision puriste de l'opposition

La réponse de ChatGPT contient la phrase suivante :

  1. Immutabilité : D'autres ont soutenu que l'immutabilité de la blockchain Ethereum était sacrée et que toute intervention pour modifier le code ou les transactions ouvrirait la porte à une remise en question de la confiance dans la technologie blockchain.

Comme énoncé précédemment, lorsque l'attaque s'est produite, la blockchain Ethereum n'existait que depuis un peu plus d'un an : d'un point de vue extérieur, une décision aussi drastique pourrait donc montrer un manque de contrôle sur la technologie, et ainsi inspirer un sentiment d'appréhension de la part des potentiels utilisateurs et investisseurs.

Ils ont souligné que la programmation des contrats intelligents devrait être rigoureuse et que les utilisateurs devraient assumer la responsabilité de leurs décisions.

Cette phrase de ChatGPT fait référence à un adage bien connu des acteurs de la communauté blockchain : "Code is law" (le code fait loi).

On pourrait affirmer que la nomenclature même de la blockchain va dans le sens de cette affirmation : les smart contracts ne seraient-ils pas; au final, rien de plus que des contrats ? D'un point de vue purement sémantique, rien n' indique le contraire, le code qui y est contenu serait donc équivalent au conditions d'un contrat, avec ses obligations et ses droits... et si l'on ne lit pas un contrat avant de le signer, on s'expose à des risques.

Toujours en partant de cette métaphore, on pourrait aussi affirmer que le hackeur de The DOA a agit en toute conformité avec le contrat, ayant simplement utilisé une faille laissée par erreur, et de fait n'a rien fait d'illégal, bien que, dans un rapport de la SEC (Securities and Exchange Commission, l' organisme fédéral américain de réglementation et de contrôle des marchés financiers), il est bien mentionné que cet acte constitue un vol.

Pasted image 20240417104528.png

Extrait du rapport de la SEC sur l'affaire The DAO, publié le 25 Juillet 2017

Enfin, certain ont vu en la décision de remboursement des utilisateurs de The DAO une forme de bailout comme on peut en voir dans le monde centralisé de la finance traditionnelle, un acte qui paraît ironique quand on sait que le Bitcoin a été créé en réaction aux plans de sauvetage des banques lors de la crise des subprimes de 2008.

  • Immutabilité : Ethereum Classic est né de ceux qui ont choisi de maintenir l'immutabilité de la blockchain Ethereum, refusant toute intervention pour corriger la faille du DAO. Ils ont soutenu que les transactions sur la blockchain devraient être irréversibles, même en cas de faille de code.

La blockchain se voulant être un registre de transaction sécurisé, on doit donc pouvoir garantir la traçabilité de chaque token, afin de pouvoir authentifier chaque transaction. On compare très souvent la blockchain à un registre comptable, en ce sens, la suppression et la modification de transactions pourrait être comparées à une pratique immorale, voire frauduleuse.

Une mesure nécessaire : les arguments des partisans

ChatGPT a donné la réponse suivante pour les partisans du hard fork :

  1. Intervention : Certains membres de la communauté Ethereum ont préconisé une intervention pour corriger la faille et récupérer les fonds perdus par les investisseurs. Cela a conduit à une division au sein de la communauté, avec certains affirmant que la priorité devrait être de protéger les utilisateurs et la réputation d'Ethereum en évitant un désastre financier majeur.

Il est difficile de concevoir, en considérant l'étendue des dégâts causés par l'attaque, comment la blockchain Ethereum aurait pu être sauvée sans une mesure aussi extrême.

En effet, The DAO était un acteur majeur dans la blockchain Ethereum, contrôlant près de 15% de la réserve mondiale d'Ether, et le hackeur en détenait à la suite de son attaque 3.6 millions (soit 5% de tous les Ethers en circulation dans le monde). Si le fork ne s'était pas produit, son portefeuille aurait aujourd'hui une valeur de plus de 11 milliards de dollars.

Pasted image 20240417102337.png

via CoinMama

Pasted image 20240417102556.png

Une telle somme placerait le hackeur à la 188ème position du classement Forbes des plus grandes fortunes mondiales

Face à des pertes aussi colossales, le hard fork et les plans de sauvetage ne paraissaient donc pas comme des idées démesurées, on pourrait donc, à la vue de ces chiffres, reprocher aux détracteurs leur rigidité face à une situation aussi exceptionnelle, situation qui n'aurait certainement pas pu être résolue sans intervention, même sous couvert d'une supposée préservation des valeurs et principes de la blockchain. Vitalik Buterin dira par ailleurs en réponse à ces affirmations:

Some bitcoin users see the hard fork as in some ways violating their most fundamental values. I personally think these fundamental values, pushed to such extremes, are silly.

Finalement, il pourrait aussi être vu dans le fameux adage "Code is law" une forme d'élitisme : tous les utilisateurs n'ont pas forcément le temps et les compétences techniques nécessaires pour étudier en profondeur le code des smart contracts qu'ils comptent utiliser, et même encore, le cas The DAO nous aura montré que même avec le bagage technique requis pour coder des smart contracts, les omissions et les failles sont toujours possibles.

Sort:  

Excellent article, félicitations ! Le seul point pas clair: "En Juin 2016, en réponse aux événements de l'an passé," ?

En effet c'était une erreur, elle a été corrigée, merci !