Hack de theDAO ou pourquoi la Blockchain n’est pas (encore) le nouveau Jésus

Par 29 juin 2016
Mots-clés : Fintech, décryptage, Europe
Blockchain

[Décryptage] La nouvelle agite l’univers des crypto-monnaies, un smart contract, contrat intelligent, transparent et infalsifiable protégé par la fameuse Blockchain a été cracké.

Aujourd’hui, theDAO (Decentralized Autonomous Organization) est un fond d’investissement participatif fonctionnant sur la Blockchain d’Ethereum. Mais le projet aspirait à aller plus loin dans un modèle de gouvernance décentralisée. Coup d’arrêt. Mi-juin, ce ne sont pas moins de 60 millions de dollars sur les 150 de capital qui ont été retirés, suite à une faille dans la programmation des conditions des smart-contracts utilisés. Selon les lois des DAO cependant, cet argent ne pourra être récupéré que dans 27 jours. Les investisseurs du projet ont donc un mois pour agir et récupérer leur argent.

On aurait pu penser que la Fondation Ethereum resterait en retrait par rapport à ces problèmes. Seulement à l’heure actuelle, theDAO est le plus gros projet à l’intérieur d’Ethereum, contenant près de 15% de l’ensemble des éthers disponibles (la crypto-monnaie utilisée). Il est donc impératif pour le cours de la monnaie et la survie de cette Blockchain de sauver le projet. Une solution a été proposée pour s’en sortir sans pertes: altérer le code d’Ethereum pour blacklister l’adresse du pirate, et même rembourser theDAO via une clé spéciale.

L’arroseur arrosé ?

Et c’est là que les problèmes commencent.

La philosophie des smart-contracts, et tout ce qui en fait sa force, est de remplacer l’autorité humaine et incertaine par celle du code. Plus précisément, de gérer les questions de certifications et de compliance en automatique, à bas prix, et en toute transparence. C’est d’ailleurs la raison d’être de theDAO, qui considère dans son manifeste que le code est la loi, et qu’il n’est pas interprétable comme les lois humaines. Chercher à sauver le projet, c’est contredire tout l’objectif de la Blockchain, sensée être à l’abri de tout ce qui pourrait la compromettre, des banques jusqu’aux gouvernements.

Seulement comme dans le cas présent, que faut-il faire lorsque le code comporte une faille ?

D’un point de vue interne, le hack de theDAO n’a rien d’illégal. C’est d’ailleurs ce que le hacker n’hésite pas à revendiquer lui même. Il n’a fait qu’utiliser le smart-contract, mais d’une manière différente. Puisqu’il a respecté le code, il a également respecté les conditions d’utilisation de theDAO. Rien ne peut lui être reproché. Pire, d’un point de vue externe, l’organisation n’a aucune existence juridique. C’est une entreprise uniquement virtuelle. Il est donc en théorie impossible d’accuser le hacker de quoi que ce soit.

Bien entendu, ces deux arguments devant un tribunal ne valent rien, et avec un peu d’insistance, les plaintes seront recevables. Mais theDAO a été créé pour permettre aux lois de s’émanciper de l’Homme et pour ne plus dépendre des structures légales et administratives existantes. C’est en cela que la situation est paradoxale.

Plus paradoxal encore, on assiste à un conflit d’intérêt et presque à de la corruption, puisque la Fondation s’efforce de trouver des solutions, alors même que toute la crédibilité de sa Blockchain repose sur sa neutralité. Malheureusement, elle semble n’avoir pas le choix. Et ce, même si l’attaque ne signifie rien directement sur la fiabilité d’Ethereum.

Décider par le groupe, pas toujours la meilleure solution ?

Il faut tenir compte que nous sommes dans un système décentralisé. Les solutions de la Fondation et des « whitehats » sont donc incertaines. Pour que la modification de la Blockchain se fasse en douceur (softfork, et non hardfork), il faut que la majorité valide cette nouvelle Blockchain et accepte de travailler avec. Les fameux 51% de mineurs.

Et on arrive au deuxième gros problème que cela pose.

Les mineurs qui valident les informations de la Blockchain ne travaillent pas gratuitement. Une commission est récupérée à chaque validation. C’est la « carotte » utilisée pour attirer des puissances de calcul. Seulement, le hacker ne veut pas de ces 51%. Il a donc proposé à tous les mineurs de refuser cette mise à jour en échange d’une commission bien supérieure à celle d’Ethereum. Il est donc possible en théorie qu’il prenne le contrôle de la plateforme toute entière.

Ce forcing a fort heureusement peu de chances de passer. Ethereum ayant été conçue de manière à éviter le farming (cf protocole Ghost), les fermes d’éthers si elles existent doivent être très minoritaires. Cela pose néanmoins la question de la fiabilité de cette sécurité des mineurs, alors même qu’elle est la clé de voûte du système. Surtout dans un futur hypothétique où les Blockchains seront popularisées, car les utilisateurs ne seront plus des passionnés mais des citoyens ordinaires, beaucoup plus corruptibles. On en revient donc au problème du facteur humain.

Ironie du sort, cette faille parmi plusieurs autres avait déjà été détectée et pire encore, corrigée, sans grande inquiétude sur ses dangers. Mais cette règle des 51% a empêché theDAO de réussir à publier son correctif rapidement. On assiste donc à une insécurité par le plus grand nombre. Aussi fiable que puisse être une démocratie, le revers est que l’aspect décisionnel est beaucoup plus lent et inefficace.

Le hacker, nouvel avocat

Ainsi, quoi qu’on puisse dire sur les smart-contracts et leurs supposées fiabilité et inviolabilité, ils comportent des risques.

C’est là la sonnerie d’alarme que les experts Bitcoins comme Peter Todd tirent depuis un moment, puisqu’ils considèrent que les programmeurs sur Ethereum travaillent dans un environnement beaucoup trop ouvert. Ecrire un code ne nécessite plus simplement de savoir coder, mais également d’avoir une connaissance profonde des possibilités offertes par le langage. C’est pour cette raison de sécurité que le Script Bitcoin ne permet pas l’écriture de smart-contracts aussi libres et efficaces qu’Ethereum. Et c’est l’une des raisons pour lesquelles également les smart-contracts et les langages informatiques des crypto-monnaies restent encore aujourd’hui au stade expérimental.

On ne peut se reposer sur l’aspect smart du contrat et croire naïvement à la fiabilité d’un projet sous prétexte qu’il est « sur la Blockchain ». Avec 150M$, c’est la première entité sur une Blockchain avec une quantité d’argent suffisamment importante pour attirer l’attention de pilleurs. TheDAO n’aurait jamais dû recevoir d’argent sans une vérification préalable de chacun des investisseurs. Mais cette vérification est beaucoup plus compliquée et incertaine que dans le cadre de contrats classiques car le code d’une autre personne est difficilement lisible et assimilable rapidement *. Si dans un futur hypothétique la Blockchain s’installe autours de nous, on devra faire appel non plus à un avocat comme dans les contrats classiques, mais à une équipe de hackers. Pour rédiger le contrat et éventuellement repérer les failles. Et existeront alors des structures de gestion des smart-contracts, capables d’obtenir un certain pouvoir de contrôle.

Il sera également toujours nécessaire de disposer d’une structure légale à laquelle se référer en cas d’incident ultérieur à la sortie du smart-contract. Pour s’en soustraire, on peut imaginer un système de crowd-validation de modification de la Blockchain, mais au regard du passé et de la philosophie anti-intervention humaine à la base du concept, le succès d’un tel système et des 51% sur un flux régulier d’injustices est peu probable. D’autant plus que l’on a vu dans le cas présent à quel point les changements post-publications sont lents et ardus à mettre en place. Il est ainsi difficile d'envisager que l’exploitation des smart-contracts changera les paradigmes de validation. La Blockchain a toutes les chances de se populariser. Mais en l’état, elle est encore très loin de pouvoir soustraire l’Homme de sa corruption et de ses péchés, tel un nouveau Jésus, comme beaucoup l’entendent.

 

* Suite à la réaction de @_refocus sur cette phrase "Mais cette vérification est beaucoup plus compliquée et incertaine que dans le cadre de contrats classiques car le code d’une autre personne est difficilement lisible et assimilable rapidement", effectivement, ce n'est pas l'argument le plus pertinent, il existe des outils d'analyse statique ou dynamique. Cependant, l'idée derrière est qu'il est très difficile, pour ne pas dire impossible d'écrire des gros programmes parfaits, sans bug ni faille. Et ce, pour diverses raisons, comme celle énoncée dans l'article. Et ce problème est un challenge majeur dans le développement des smart contracts. Pour plus d'information, une explication détaillée de cette question du code immuable est disponible sur le blog de Gideon Greenspan, fondateur de Coin Services Ltd à l'origine de MultiChain, une solution de blockchain privée pour les entreprises.

Mentions légales © L’Atelier BNP Paribas