Le dilemme de TheDAO

in ULille blockchain10 months ago

image.png

Dans le cadre de mon Master 2 « Mathématiques, Finance computationnelle, actuariat », une question m’a été posée par notre professeur de Blockchain Publiques et Privées Monsieur @sorin.cristescu :

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.

J’ai commencé par poser cette question à ChatGPT, sa réponse a été la suivante :

image.png

image.png

Prenons du recul par rapport à la réponse de ChatGPT, et répondons à la question :
Commençons d’abord par mettre la question dans son contexte : le vendredi 17 juin 2016, 2,6 millions d’Ethers (soit plus de 50 millions d’euros ce jour-là) ont été détourné de TheDao, le smart-contract déployé par la blockchain Ethereum et connu pour être le smart-contract le plus financé à l’époque.

I- TheDAO, un projet « révolutionnaire » ?

Comme l’a énoncé ChatGPT, TheDao était un outil d’investissement collectif ouvert à tous, administré par un smart contract de la blockchain Ethereum public impartial qui exécute les règles qui le composent d’une manière automatique et irrévocable.

Attardons-nous quelques temps sur son mode de fonctionnement !
Le participant envoie des Ethers à l’adresse du smart-contract TheDAO. Ces Ethers seront alors bloqués sur TheDAO conjointement avec ceux des autres participants en attendant qu’ils soient réinvestis dans des projets. En contrepartie de ces versements d’Ethers, les participants de TheDAO reçoivent des DAO Tokens à hauteur de leur participation. Ces DAOs Tokens leur donnent des droits de vote qui leur permettent de s’exprimer pour ou contre le financement d’un projet, ainsi que des droits de dividendes. En plus, chaque participant à TheDAO a la liberté de soumettre un projet à financer à la communauté, et est également libre de se séparer de ses DAO Tokens et de récupérer son investissement avec les éventuels bénéfices en Ethers grâce à la procédure « split ». En un mois, le projet a réussi à lever plus de 12 millions d’Ethers (équivalent à plus de 150 millions de dollars), soit environ 14% de la quantité totale d’Ethers en circulation.
Malheureusement, malgré tout l’enthousiasme qu’a créé ce projet et en dépit des audits de sécurité sur le code source de TheDAO par de nombreux développeurs (entre autres les créateurs d’Ethereum), ladite fonction « split » du protocole a permis à un hacker de siphonner 3,6 millions d’Ethers de la DAO, soit 33% de tous les Ethers investis dans celle-ci. Au-delà de cette faille informatique, il s’agissait maintenant de déterminer une solution de sortie de crises : Faudrait-il modifier le protocole Ethereum (Fork) pour pouvoir restituer les fonds détournés par le hacker à tous ceux qui avaient investi dans TheDAO, ou plutôt conserver le protocole Ethereum inchangé et de laisser ces investisseurs encaisser leurs pertes, quitte à ce que le hacker s’enfuie avec les fonds détournés ?
Il s’agissait d’une « course contre la montre » : une solution devait être trouvée en moins de 7 jours, délai après lequel le hacker serait en mesure de retirer définitivement les fonds de TheDAO pour en disposer pour lui-même. Comme l’a bien mis en avant ChatGPT, le débat divisa alors la communauté en deux camps : le camp d’un hard fork et celui d’un laisser-faire.

II- Les arguments en faveur d’un hard fork :

Un hard fork est un procédé démocratique de mise à jour du protocole Ethereum : le smart contract TheDAO contenait une faille qui a été exploitée par un pirate informatique. Un hard fork, comme l’a énoncé ChatGPT, permet alors de réécrire le smart contact initial et de le transformer en un smart contract qui permet aux investisseurs de retirer leurs fonds et l’aventure TheDAO s’arrête. En dehors de cette réécriture du smart contract TheDAO, le hard fork ne touche à rien d’autre : l’historique des transactions contenu sur la blockchain d’Ethereum restera intact, tout comme tout le reste du protocole Ethereum. En résumé, ce n’est qu’une modification ultra localisée et spécifique du protocole.
Les partisans de cette solution stipulent que ce n’est point parce que la faille informatique est propre au smart contract de TheDAO que les autres membres de la communauté Ethereum ne seront pas concernés. Le hard fork pourrait permettre de trouver une solution qui crée plus de valeur à long terme qu’elle n’en détruit : il est question d’empêcher un hacker de s’emparer de 15% des Ethers en circulation. Egalement, il fallait sauver la réputation d’Ethereum : le grand public ne sera plus incité à prendre le risque et investir son argent dans des projets Ethereum : Ethereum risquera de perdre son utilité en laissant un hacker disparaître avec l’argent d’une bonne partie de sa communauté.

III- Les arguments en faveur du laisser-faire :

Comme l’a synthétisé ChatGPT, le deuxième camp voulait laisser le piratage se produire, il fallait accepter que les fonds aient été volés afin de respecter l’intégrité de la blockchain et son immuabilité.
Le camp du laisser-faire présenta l’argument suivant : ceux qui ont investi dans TheDAO savaient que leur placement était risqué. En effet, les termes et conditions de TheDAO stipulaient explicitement que le code pouvait contenir des bugs pouvant causer une perte des ethers investis et des DAO tokens émis :

Le concept de DAO est à la fois de nature expérimentale et non prouvée. Il existe un risque que, en tant que projet open source, tout contributeur au logiciel TheDAO puisse introduire des faiblesses ou des bugs dans le logiciel TheDAO, causant la perte de DAO Tokens ou ETH dans un ou plusieurs, voire la totalité des comptes du Titulaire des DAO Tokens. - TheDAO, traduction d’un extrait des termes et conditions

D’autre part, le protocole d’Ethereum fonctionne correctement sans soucis, le problème se trouve qu’au niveau du smart contract TheDAO, et donc une modification du protocole Ethereum pour sauver des investisseurs « optimistes » qui ont décidé de prendre un risque et ont perdu ne serait pas justifiée. Quant au hacker, il ne s’agissait pas d’une lutte informatique en changeant le protocole, mais la lutte contre lui devrait être juridique.
Par ailleurs, comme l’a résumé ChatGPT, l’intérêt d’un smart contract réside dans son immuabilité et sa capacité de résistance à la censure.Ainsi, modifier le protocole Ethereum et réécrire un de ses smart-contracts et censurer l’exécution de certaines transactions fait perdre la garantie d’immuabilité et de résistence à la censure et donc de décentralisation d’Ethereum. Donc aucune exception ne devrait être faite ; surtout que cette modification pourrait également causer un problème d’équité entre les participants : seulement une partie des utilisateurs sont concernées (ceux qui ont participé à TheDAO), et non point tous les participants d’Ethereum. Une réécriture du smart contract allait faire soulever d'autres questions : où placer le curseur ? À partir de quelle somme en jeu et à partir de quel degré d’erreur est-il nécessaire d’intervenir de la sorte ?

Comme l’a bien conclu ChatGPT, la communauté Ethereum a choisi le hard fork pour récupérer les fonds volés créant ainsi deux versions de la blockchain Ethereum :

  • Ethereum Classic
  • Ethereum que nous connaissons aujourd’hui qui a continué à évoluer pour devenir l’une des blockchains les plus connus.

Ce dilemme a été également posé dans d’autres situations, notamment lorsqu’une faille dans le smart contract gérant la librairie du logiciel Parity a permis à un développeur de « tuer » accidentellement le contrat correspondant.

Pour finir, en prenant un dernier recul par rapport à la réponse de ChatGPT, je déduis que ce dernier a bien énoncé le dilemme, mais de manière synthétique en évoquant certains des arguments pour chacune des solutions proposées. C’est une réponse claire, très résumée qui manque par contre de contextualisation. Ma réponse est venue compléter celle de ChatGPT pour expliquer plus en détail le dilemme surtout pour un lecteur qui n’est pas bien familier avec cet événement de TheDAO.

Sources :
https://bitconseil.fr
https://www.banklesstimes.com/

Sort:  

Excellente réponse.
Un peu de pinaillage toutefois (juste pour dire ...)
"Un hard fork est un procédé démocratique" ? Pas intrinsèquement et il est difficile de dire que le hard fork ETH - ETC le fut. J'aurais aussi bien aimé lire la formule consacrée "Code is law" ("le code fait la loi")