Qu’est-ce qu’une hardfork et une softfork ?

Les hardforks et les softforks – fourches dures et fourches douces – sont des fourches qui se produisent sur la blockchain, qui est censée être unique et unanime. Les deux types de fourches ont des implications très différentes.

 

Les softforks

Une softfork est un changement dans le protocole de la blockchain qui ne rend qu’une partie des blocs/transactions anciennement valides désormais invalides. Les nodes (ordinateurs qui utilisent Bitcoin) qui n’auront pas mis à jour leur client Bitcoin pourront néanmoins continuer à reconnaître les nouveaux blocs comme des blocs conformes, une softfork est rétrocompatible.

Les softforks n’ont besoin que de la majorité des utilisateurs pour être acceptées (contrairement aux hardforks qui exigent un accord unanime). Les softforks sont par exemple utilisées pour changer des aspects du protocole ou ajouter des fonctionnalités sans modifier l’entièreté du code de Bitcoin.

Pour ce faire, une partie des blocs contenant la règle que l’on veut changer sont rendus obsolètes. On implémente alors la nouvelle règle dans ces blocs qui redeviennent valides. Ces blocs obéissent d’ailleurs toujours aux mêmes règles fondamentales que les blocs précédents, ils sont de même nature. C’est pour cela que les nodes qui n’ont pas mis à jour leur client Bitcoin peuvent continuer à utiliser Bitcoin sans problème.

Ou presque. Car si la majorité des utilisateurs qui acceptent la softfork est faible (par exemple 75%), alors les 25% sont vulnérables à des fraudeurs qui pourraient leur faire payer deux fois chaque transaction, une fois dans le bloc conforme et une fois dans le bloc non-conforme. C’est pour cela que plus il y a de consensus sur les changements de Bitcoin, plus ces changements sont sécurisés.

 

Les hardforks

Une hardfork est un changement radical dans le protocole de la blockchain. Ce changement rend tous les anciens blocs non-conformes et exigent donc un consensus absolument unanime de la part des utilisateurs pour être implémenté. C’est une divergence totale et définitive d’avec l’ancienne version de la blockchain et les utilisateurs (ou nodes) utilisant l’ancienne version de la blockchain ne seront plus acceptés dans la nouvelle version – contrairement à la softfork.

Cela crée deux chaînes incompatibles entre ceux qui utilisent la dernière version et ceux qui ne l’utilisent pas. Dans le meilleur des cas, les utilisateurs qui n’ont pas la dernière version vont mettre à jour leur programme et se mettre sur la nouvelle chaîne. Mais il se peut aussi que la hardfork ait une origine politique et que deux entités se disputent l’autorité sur une blockchain, dans quel cas les deux chaînes co-existeront comme des rivales.

Dans le cas d’Ethereum, un pirate anonyme avait réussi à siphonner des dizaines de millions de dollars en Ethereum via le piratage de DAO, une organisation de contrats intelligents décentralisée développée sur la plateforme Ethereum. Les utilisateurs avaient alors unanimement voté pour la création d’une hardfork afin de « sauver » cet argent. Les deux chaînes existantes  – Ethereum et Etherum Classic – sont devenues rivales.

Il y a des débats actuellement concernant la possibilité d’une hardfork dans Bitcoin.