L'attaque historique de "The DAO" : Un hack devenu légendaire chez Ethereum

Dans le cadre d’un cours sur les Blockchains (Master 2 Mathématiques financières), je me suis intéressé à l’attaque de The DAO, un hack historique qui via l’exploitation d’une faille dans le code de la plateforme, a permis à un utilisateur d’Ethereum de subtiliser 3 millions d’Ether (l’équivalent actuel de 8.5Md€).

Voici l'intitulé de la question qui m'a été posée par mon professeur @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."

The dao hacked 1.png

Bref résumé :

« The DAO » (Decentralized Autonomous Organization) était comme son nom l’indique, une organisation autonome décentralisée (DAO) lancée en 2016 sur la blockchain Ethereum. Cette organisation avait levé l’équivalent de 150 millions de dollars en Ethereum (ETH) durant la « funding period » grâce à la vente de jetons de gouvernance. « The DAO » a finalement été piraté suite à l’exploitation d’une faille dans sa base de code ! La blockchain Ethereum a finalement été « modifiée artificiellement » afin de restaurer les fonds volés, qui ont été redonnés aux investisseurs.

Cependant, suite aux grands désaccords concernant la légitimité du « involvement of the Ethereum foundation » autrement dit, de l’implication des fondateurs d’Ethereum dans ce bug, qui n’est pas forcément en accord avec la charte éthique d’Ethereum, la décision a été prise de séparer le réseau en deux blockchain distinctent : Ethereum et Ethereum Classic !

Mais qu’est-ce qu’un DAO ?

DAO 2.png

Lancée en 2016, l’idée de cette coopérative basée sur la blockchain est de créer une organisation qui appartient collectivement à ses membres, avec des règles bien définies et exécutées via un code. L’objectif est de remplacer les structures de gestion centralisées par une approche techno-démocratique dans laquelle les décisions sont votées par (le plus souvent) les investisseurs détenant des « jetons de gouvernance » (Governance Tokens) qui peuvent être échangés et gagnés en fournissant des liquidités ou une autre preuve de travail. Finalement, nous devenons un démocrate du réseau via la possession de ces tokens !

Les DAO sont souvent construits sous Ethereum, pourquoi ?

Simplement car Ethereum est la base parfaite pour les DAO pour plusieurs raisons :

-Le consensus d’Ethereum est suffisamment distribué pour que les organisations fassent confiance au réseau.
-L’existence de « Smart contracts » est essentiel, car n’étant par nature pas modifiable, cela permet au DAO de fonctionner selon les règles avec lesquelles il a été programmé !
-La communauté Ethereum s’avère finalement plus collaborative que compétitive ! Un environnement tout à fait idéal pour favoriser l’émergence d’un système démocratique.

Explication de l’attaque de « The DAO » :

The DAO Hacked 3.png

La « funding period » devait initialement durer 28 jours, période durant laquelle les jetons de gouvernance étaient mis en vente mais verrouillés jusqu’à leur jour de mis en marche à la fin de cette période. Trois semaines après le début de la vente symbolique, le DAO avait levé plus de 150 millions de dollars ce qui en faisait l'une des plus grandes campagnes de financement participatif de l'histoire (à l'époque) et qui lui promettait donc un avenir tout à fait radieux !
Cependant, certaines rumeurs laissaient entendre que certaines phases du code régissant le système de « The DAO » étaient défaillantes et qu’il était potentiellement possible de les exploiter. Plusieurs Data-Scientist avaient notamment soupçonné les « wallets de Smart contract » de contenir un bug qui permettrait de soudoyer des fonds illégalement... Alors que les programmeurs tentaient de corriger le bug, un attaquant a exploité cette vulnérabilité et a commencé à siphonner des fonds de The DAO.
Entre-temps, la communauté Ethereum a débattu de la manière de répondre à l'attaque. L'échec du DAO signifierait non seulement une perte financière pour les investisseurs, mais aurait également des répercussions désastreuses sur le réseau Ethereum naissant. Le DAO était devenu un projet tellement investi que ses contrats contenaient environ 14% de tout l'éther (ETH) en circulation à l'époque. À seulement un an, la technologie et la communauté prometteuse d'Ethereum étaient confrontées à une véritable menace existentielle.

La réponse face au piratage de « The DAO » :

Sur ce genre de réseau, il n’est pas simple d’intervenir pour la simple et bonne réponse que la charte démocratique (prônant la décentralisation du réseau, la souveraineté des utilisateurs…) joue un rôle central, elle est d’ailleurs très souvent la raison pour laquelle un utilisateur décide de travailler au sein d’une plateforme plutôt qu’une autre. L’éthique même d’Ethereum allait donc être mise à rude épreuve selon la manière dont les utilisateurs aller réagir face à ce piratage. D’où le dilemme philosophique auxquelles la plateforme a été confrontée à ce moment-là.

Initialement, le fondateur d’Ethereum Vitalik Buterin a proposé au réseau un « soft fork » du réseau Ethereum en ajoutant un extrait de code qui mettrait le Hackeur en « Black-List » l’empêchant ainsi de déplacer les fonds détournés.

NB: Rappelons qu’un fork est une version d’un code qui est obtenu en modifiant un ancien code qui se doit (souvent) d’être modifié afin d’être optimisé.

AdobeStock_289726719-min-1024x1024-1-1024x1024.jpg

C’est à cet instant qu’intervient toute la complexité philosophique qui fut d’ailleurs explicitée par le « potentiel Hackeur » expliquant qu’il était tout à fait dans la légalité puisqu’il n’avait finalement enfreint aucune règle énoncé dans le Smart Contract ! Chose qui est objectivement vraie. Il affirma même qu’il tenterait de soudoyer les mineurs d’Ethereum en leur proposant de très belles récompenses (1M ETH+ 100 BTC) si ces derniers refusaient le soft-fork proposé par Butterin. Un chantage qui en plus des difficultés techniques qu’elle allait impliquer, allait mettre à rude épreuve les fondements moraux de la technologie au point de diviser en 2 camps le réseau Ethereum.

Avant même que la communauté ne puisse choisir ou pas d’exécuter le « soft fork », un bug a été détecté dans cette mise à jour consistante rappelons-le à « Black-Lister le Hackeur », impliquant la suggestion cette fois-ci d’un « Hard Fork » qui propose d’exécuter un smart contract contenant une simple fonction « Withdraw » qui permettra de ramener l’historique du réseau Ethereum avant l’attaque de « The DAO » et à réaffecter l’éther du DAO à un autre smart contract afin que les investisseurs puissent retirer leur fonds.

Bien que suggéré par les développeurs d’Ethereum, il n’était absolument par certain que cet Hard Fork soit accepté par les membres d'Ethereum. (Car ces derniers n’avaient par définition de la décentralisation de la plateforme, pas le pouvoir unilatéral de mettre en œuvre le changement).

Effectivement, il est tout de même en la nature même d’une blockchain d’être immuable et résistante à toute tentative de censure d’où les nombreuses contradictions face à ce projet…

Après de long débat, la solution Hard Fork fût finalement mise en œuvre et exécutée par une grande majorité des utilisateurs ! Cependant, il était évident qu’avec une telle violation de l’essence même de ce qu’est Ethereum, un clivage allait se créer au sein du réseau puisqu’une partie de la communauté allait refuser (pour une question éthique) d’adopter cet Hard Fork qui a annulé l’historique de la blockchain Ethereum. En choisissant de conserver la version pré-Forkée, ils sont finalement devenus membre de « l’ancienne version d’Ethereum » aujourd’hui concurrente de la version Hard-Forkée intitulée : Ethereum Classic (ETC).

shutterstock_1315875956.jpg

Moral de l'histoire:

Finalement, il est intéressant de comprendre les limites d’un réseau communautaire décentralisé. En effet, bien qu’établit autour d’un ensemble de règles communes, nous comprenons que lorsqu’un scénario extrême apparait, il est très difficile de mettre d’accord toute une communauté pourtant réunie par l’ambition d’être indépendante de toute forme d’autorité.

Cela s’explique par le fait que le réseau reste composé d’individus qui avant même d’être membre d’une communauté soumise à une charte éthique commune*, qui sont des hommes et des femmes qui ont leur propre définition du bien et du mal, de ce qui est éthique, de ce qui ne l’est pas, de ce qui l’était mais ne l’est plus à partir d’un certain seuil… Un réseau régit par un code informatique qui parait finalement peu complexe en comparaison à la gymnastique de l’intellect humain.

*un code informatique assurant l’équité au sein du réseau

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now
Logo
Center