Depuis une semaine, l’écosystème Ethereum est en ébullition. À la suite du piratage du contrat de The DAO et du vol subséquent de plus de 3,6 millions d’ethers par un hacker non identifié, une question déchire la communauté : faut-il agir pour corriger les effets de ce piratage ? Faut il (hard-)forker, ou non ? Pour y voir plus clair, analyse rapide des arguments pro et anti-fork.

Pour rappel, le fork est une opération par laquelle les mineurs d’une blockchain décident, par consensus, de modifier les règles du protocole d’une blockchain. Cette modification peut être de tout ordre : correction d’un bug, ajout d’une fonctionnalité ou même modification des transactions passées enregistrées sur la blockchain. Un hard-fork peut faire exception au principe d’immuabilité de la blockchain lorsqu’il a pour but de modifier des transactions passées, et il est nécessaire pour permettre l’évolution technique du protocole. Ethereum a déjà connu un hard-fork majeur le 14 mars 2016, au moment du passage de la version Frontier à Homestead.

Pour régler la situation difficile dans laquelle se trouve l’écosystème Ethereum depuis le piratage, deux forks ont été proposés :

  • un soft-fork, ne valant que pour le futur, et bloquant les transactions depuis et vers les contrats DAO. Ce soft-fork a pour effet de « geler » les transactions des contrats de The DAO et de bloquer les fonds correspondants (11,6 millions d’ethers). Ce soft-fork a surtout pour objet d’empêcher le pirate de faire plus de dégâts et de laisser plus de temps à la communauté pour réagir.
  • un hard-fork, valant pour le futur et pour le passé, modifiant la structure de la blockchain pour récupérer les ethers volés et les redistribuer aux détenteurs de tokens de The DAO.

Le premier fork envisagé, le soft fork, est aujourd’hui acté. Les mineurs ont décidé de l’appliquer à la très grande majorité. Cette décision a été prise par les mineurs individuels, en mettant à jour leur logiciel de minage, et par les pools, qui ont organisé des votes (avec une participation autour de 20 %, les votes étaient à large majorité pour le soft-fork). Le soft-fork entrera en vigueur dans quelques jours, et les fonds localisés sur les DAO seront donc bloqués pour une durée indéterminée : ni le hacker ni les détenteurs légitimes de tokens ne pourront accéder aux ethers localisés sur ces comptes.

Le débat reste cependant ouvert sur la mise en œuvre du hard fork, qui a des conséquences plus lourdes et qui nécessite de modifier pour le passé les inscriptions sur la blockchain. Dans ce débat, c’est bien plus que les fonds de The DAO qui sont en jeu. Le hard-fork signifie revenir sur l’un des principes de la blockchain, son immuabilité, pour un cas particulier. Les débats ont été houleux ces dernières semaines et les arguments pour et contre le hard-fork de sauvetage de The DAO peuvent se résumer comme suit.


giphyPour les opposants au hard-fork, les trois arguments principaux avancés sont :

  • Immuabilité. Le hard-fork constitue une entorse inacceptable au principe d’immuabilité des transactions passées sur la blockchain. Ce principe, dont découle celui selon lequel « Code is Law« , qui donne tout son intérêt à la blockchain Ethereum, et y renoncer pour ce cas particulier équivaut à y renoncer pour le futur : à partir du moment où une exception aura été faite pour The DAO, qu’on aura modifié l’état de la blockchain pour corriger les effets d’un piratage, la brèche sera ouverte.Cet argument s’appuie également sur le fait que le piratage de The DAO n’est pas un problème posé par Ethereum mais bien un problème dans la façon dont a été codé le contrat de cette DAO en particulier. Si l’on intervient pour ce contrat spécifique, comment déterminer ensuite les critères d’intervention pour les prochains contrats ? Va-t-on devoir corriger l’ensemble des bugs de smart-contracts rétroactivement ?Si l’on procède au hard fork, on peut imaginer que n’importe qui (État, société importante sur la blockchain, etc.) pourrait demander à la Fondation et/ou aux mineurs d’effectuer un hard-fork pour eux, et ceux-ci ne seront pas en mesure de refuser, du fait du précédent qu’aura été The DAO. À terme, c’est toute la crédibilité de la blockchain Ethereum qui sera mise à mal. C’est la fin d’Ethereum. 
  • Responsabilité individuelle. Chacun doit être responsable de ses actes. Les personnes qui ont financé The DAO n’ont pas lu le code correctement et leur perte a été causée par leur inconséquence. Ceux qui l’auraient lu correctement auraient pu anticiper le piratage. Dans tous les cas, l’investissement dans The DAO était un investissement extrêmement risqué et tous les investisseurs avaient été prévenus. Si l’on corrige les effets du piratage, les investisseurs n’apprendront pas les leçons de leur erreur et réinvestiront dans un fonds non-sécurisé.
  • Démocratie. La décision de pousser le hard-fork est prise par les mineurs à l’initiative de la Fondation. Ce mode de prise de décision est injuste car il ne prend pas en compte l’intérêt de l’ensemble des acteurs de la blockchain Ethereum (développeurs, utilisateurs, détenteurs de fonds qui n’ont pas participé à The DAO…). Par conséquent, une telle décision ne devrait pas être prise par les mineurs et une vraie consultation devrait être organisée avec une autre méthode.

Au contraire, les arguments principaux avancés par les tenants du hard-fork sont :

  • Correction d’une situation anormale. Le pirate a exploité une fonction qui n’était pas prévue dans le code d’origine. Le code ne pouvait pas laisser supposer, à sa lecture, qu’une telle exploitation était possible. Par conséquent, le piratage relève d’un comportement anormal du smart-contract. La correction des conséquences de cette exploitation étant possible techniquement, il serait anormal de ne pas procéder à cette correction compte tenu des sommes en jeu. A ce titre, l’argument de la responsabilité individuelle ne serait pas acceptable car même des experts en sécurité qui ont revu le contrat n’ont rien trouvé à dire. Il ne serait donc pas possible de dire que le contrat comprenait dans son code l’indication qu’il pouvait être hacké.
  • Ampleur des dégâts. Le changement pour The DAO se justifierait par l’ampleur des dégâts. Si un autre bug de cet ampleur arrive, il est bon que les mineurs puissent aussi le corriger. Mais ceci n’implique pas une autorisation de hard-fork pour n’importe quelle raison, puisque un hard-fork nécessite en tout état de cause un consensus des mineurs qui ne sera pas atteint si la communauté s’oppose au changement.
  • Gouvernance effective. Le passage du hard-fork montrerait qu’une réelle gouvernance existe dans Ethereum et que les situations anormales ne sont pas tolérées par les acteurs de cette blockchain. Elles sont mêmes corrigées lorsque l’importance des anomalies le justifie. Le message qui passerait auprès des médias et des acteurs économiques est que les problèmes structurels posés par l’exécution de certaines transactions sont examinés et corrigés par la communauté. Ceci serait à terme positif pour la viabilité d’Ethereum et son utilisation concrète dans la vie de tous les jours.
  • Justice. Le pirate a volé ces ethers. Il serait injuste de ne pas restituer ces sommes aux investisseurs alors que cela est possible. Cela serait envoyer un très mauvais signal si la communauté décidait sciemment de laisser un voleur s’en tirer avec les produits d’un vol, ou limiterait son intervention à un gel des avoirs du voleur sans faire de démarche pour indemniser les victimes.
  • Possibilité technique. Que le hard-fork passe ou non, il est possible techniquement de réaliser cette opération. Par conséquent, les soi-disant conséquences sur l’immuabilité de la blockchain sont inexistantes : la blockchain n’est d’ores et déjà pas immuable. C’est uniquement le consensus des mineurs qui la rend immuable à un instant T. Mais ils peuvent à tout moment modifier la blockchain lorsqu’ils sont tous d’accord sur la modification. La blockchain n’a jamais été immuable : elle est immuable jusqu’à ce que le consensus en décide autrement.
  • Protection juridique. Dans le cas où les investisseurs seraient remboursés, les conséquences dommageables du hack pour les acteurs impliqués dans le fiasco de The DAO et dans l’Ethereum dans son ensemble pourraient sans doute être limitées. Dans le cas contraire, il est à craindre que des organismes comme la SEC américaine ou l’AMF française soient poussés par cet événement à légiférer sur la blockchain.

Les tenants du hard-fork souhaitent donc résoudre le problème posé par The DAO de la façon la plus rapide et efficace, même si cela implique une modification rétroactive des transactions dans la blockchain et des conséquences à long terme sur la perception d’Ethereum. Les opposants s’en tiendront au principe d’immuabilité de la blockchain car ils considèrent que le problème ne vient pas du réseau lui-même, mais de quelque chose qui a été développé dessus (The DAO).

En pratique, la question ne sera pas résolue immédiatement. Il faudra d’abord attendre la mise en oeuvre du soft-fork, puis les inévitables débats qui s’ensuivront, avant que les développeurs proposent (ou non) leur idée du hard fork aux mineurs, qui décideront ou non de l’accepter ! La route est encore longue, mais nous suivrons bien entendu les développements avec attention.

Et vous, qu’en pensez-vous ? Hard fork ou non ?

Commentaires

Commentaires

  1. « To fork or not to fork, telle est la question » – Bitcoin.fr
    27 juin 2016 - 21h48

    […] > Article de Simon Polrot à lire sur ethereum-france.com […]

    Répondre
  2. Min
    28 juin 2016 - 06h43

    Je pense comme toi , the code is law ! Même le soft fork est une aberration. À la base on devait pouvoir inscrire un contrat dans la blockchain et celui serait consommé tant qu on a de l essence … la ça montre bien que si le contrat déplaît on peut le désactiver ou le modifier. On est loin de la philosophie de base d éther … le jour où la NSA ferra pression pour couper les contrats qui leur déplaise, faudra pas pleurer !

    Répondre
    André Couchard
    28 juin 2016 - 07h02

    Excellent résumé. Merci 🙂

    Répondre
    Fabien
    28 juin 2016 - 08h14

    Thx

    Répondre
    Thomas
    28 juin 2016 - 16h19

    Moi j’ai également investi dans TheDAO, mais je savais que cela comportais des risques, je suis également mineur (petit) mais je considère que « code is law » et accepte d’avoir perdu à ce jeu … j’avais qu’à être codeur après tout 🙂 . Sois disant au passage, je garde toute confiance en Ethereum et continuerais à miner pour le réseau et acheter régulièrement quelques ethers (pour le long terme)

    Répondre
    anonymous
    17 juillet 2016 - 16h34

    code is law, l’immuabilité prime, ceux qui ont voté ont misés sur le contrat, c’est un consensus partial qui pourrait mettre la monnaie sur le carreau.

    Répondre
    Ethereum à l'heure du choix – Bitcoin.fr
    19 juillet 2016 - 09h20

    […] aujourd’hui acté : un hard fork de la blockchain est programmé pour le 20 juillet 2016 (ce mercredi) vers 15 heures. Les spécifications de ce […]

    Répondre
    La blockchain, pourquoi faire ? Partie 2 – Au delà des cryptomonnaies – Privacy Designers
    18 décembre 2016 - 22h40

    […] Immuabilité : il ne peut pas être modifié, car il est ancré dans la blockchain. Il s’agit également d’une faiblesse, puisqu’il est indispensable de s’assurer que le code est totalement insusceptible d’être détourné. La moindre erreur peut entraîner de graves conséquences, en principe irréversibles[note]En témoigne la débacle The DAO de l’été 2016, suite à un piratage causé par une erreur dans le code du smart contract de The DAO. Voir cet article : https://www.ethereum-france.com/to-fork-or-not-to-fork-telle-est-la-question/.l%5B/note%5D. […]

    Répondre
    La blockchain : pour quoi faire ? – Valentin Gibello
    28 octobre 2018 - 19h06

    […] Immuabilité : il ne peut pas être modifié, car il est ancré dans la blockchain. Il s’agit également d’une faiblesse, puisqu’il est indispensable de s’assurer que le code est totalement insusceptible d’être détourné. La moindre erreur peut entraîner de graves conséquences, en principe irréversibles6. […]

    Répondre

Laisser un commentaire

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