Si vous avez déjà lu quelque chose sur des mises à jour de Bitcoin comme Segwit et Taproot, ou même parlé avec quelqu’un de forks réseau comme Bitcoin Cash, vous avez sans doute croisé les termes « hard fork » et « soft fork ». Il existe beaucoup de malentendus et de confusion autour de cette terminologie quand il s’agit de modifier les règles de consensus de Bitcoin.

Par exemple, malgré son nom qui sonne sévère, un « hard » fork n’est pas forcément quelque chose à craindre, tandis qu’un soft fork n’a pas toujours à être aussi « soft » qu’il en a l’air. Voyons la différence exacte entre ces deux concepts abstraits et, surtout, dans quels cas il faut les appliquer. Cela vous aidera à mieux comprendre à l’avenir les mécanismes de base derrière les propositions de mise à niveau du réseau Bitcoin.

Forks logiciels

Dans des termes très généraux, un fork d’un projet logiciel n’a rien d’extraordinaire. Surtout dans la communauté open source, n’importe qui peut forker (cloner ou copier) le code source d’un projet existant, lui donner un nouveau nom et commencer à le développer de son côté, seul ou avec une nouvelle équipe. Sur la populaire plateforme de développement GitHub, forker le dépôt officiel de Bitcoin n’est qu’une simple pression sur un bouton :

Bien sûr, rien ne change sur le réseau Bitcoin si vous forkez le dépôt Bitcoin sur GitHub, même si cela pourrait en théorie arriver, à condition que votre fork soit adopté par suffisamment d’utilisateurs. Mais ce n’est pas le sujet de cet article. Les hard forks et les soft forks servent davantage à catégoriser les changements de règles qu’à réellement forker ou séparer des éléments.

Règles de consensus

Le protocole Bitcoin, intégré dans l’implémentation de référence Bitcoin Core, comprend de nombreuses règles, politiques et autres éléments. Certaines de ces règles, sans doute les plus importantes, déterminent si un bloc est valide. Elles sont donc essentielles pour atteindre un consensus dans le réseau, puisque les participants doivent s’y accorder pour parvenir à un consensus sur la chaîne qui constitue la véritable « blockchain Bitcoin ».

Certaines de ces règles de consensus sont assez évidentes, et vous y penseriez probablement naturellement en réfléchissant à la validité d’un bloc Bitcoin. Par exemple, les transactions ne peuvent pas dépenser deux fois une sortie précédente, les mineurs ne peuvent pas créer plus de bitcoin dans un nouveau bloc que ce qui est autorisé pendant la période de halving en cours, et la taille d’un bloc ne peut pas dépasser la limite définie.

Notez que toutes les règles dont on parle à propos de Bitcoin ne sont pas pertinentes pour le consensus. Vous avez peut-être remarqué les débats récents sur la suppression des transactions Ordinals du mempool local d’un nœud, par exemple. Les règles qui limiteraient un nœud Bitcoin à stocker et relayer ce type de transactions sont généralement appelées des politiques plutôt que des règles codées en dur, car les blocs qui contiennent ces transactions restent valides : il s’agit simplement de préférences propres à chaque utilisateur.

Comme presque toutes les règles, les règles de consensus peuvent elles aussi être modifiées. C’est toutefois là que les choses deviennent « soft » ou « hard ». Les changements de règles peuvent être classés en deux catégories : les hard forks suppriment des règles de consensus, tandis que les soft forks en ajoutent de nouvelles. Pour le formuler plus précisément, un hard fork augmente l’ensemble théorique total des blocs valides, en rendant valides des blocs qui ne l’étaient pas auparavant, tandis qu’un soft fork réduit l’ensemble des blocs valides, en rendant invalides des blocs qui auraient auparavant été valides. Cela paraît confus ? Restez avec nous : ce sera plus clair avec une analogie plus pratique et concrète.

Des forks au restaurant

Imaginez un restaurant végétarien qui sert exclusivement des plats sans viande ni poisson. Vous pouvez considérer ces plats comme des blocs Bitcoin valides. Beaucoup de personnes peuvent manger dans un restaurant végétarien sans conflit, y compris les omnivores (les personnes qui mangent à la fois des végétaux et des animaux). Si vous décidez de manger dans cet établissement, vous acceptez les règles de consensus du restaurant, ce qui signifie par exemple que vous mangerez des légumes avec des œufs.

100 % vegan

Un jour, le propriétaire décide d’aller plus loin et de transformer son menu en une carte strictement vegan. Il s’agit clairement d’un soft fork, car une nouvelle règle a été ajoutée et le nombre total théorique de plats parmi lesquels vous pouviez choisir a diminué. Certains plats précédents ne sont tout simplement plus possibles. Même si rendre des règles plus strictes paraît assez « hard » au premier abord, les conséquences de ce changement pour les clients existants sont en réalité plutôt « soft ».

Pensez aux personnes qui peuvent encore manger au restaurant maintenant, ou autrement dit aux versions Bitcoin compatibles : indépendamment des préférences personnelles, tous ceux qui mangeaient auparavant dans ce restaurant végétarien peuvent techniquement continuer à manger un repas vegan sans enfreindre leurs règles alimentaires. Le changement est donc compatible avec les versions futures, sans introduire de conflit, puisque personne n’a besoin de trouver un autre restaurant où manger.

Cependant, il est possible qu’une personne vegan ait refusé de manger ce qui était auparavant servi dans le restaurant végétarien, puisque ces anciennes règles de consensus ne sont pas compatibles avec sa version actuelle. Pour cette raison, les soft forks ne sont pas compatibles avec les anciennes versions de ce point de vue.

Assouplir les règles

À la suite d’un brusque changement d’avis, le propriétaire décide maintenant d’assouplir les restrictions de son menu, en autorisant même la viande à être servie aux clients. Naturellement, cela crée des conflits avec les végétariens et les vegans, car certaines options du menu, voire toutes, ne conviennent plus. C’est un hard fork, la règle ajoutée précédemment étant maintenant supprimée et le nombre théorique de plats augmentant.

Le point clé à comprendre dans le contexte de Bitcoin est la manière dont les anciens clients doivent soit changer d’avis, soit aller dans un autre restaurant. À cause de ce mécanisme, les hard forks ne sont pas compatibles avec les versions futures.

En revanche, dans l’autre sens, c’est l’inverse : même si vous aimez la viande, vous auriez pu manger dans l’ancienne version végétarienne du restaurant, puisque vos règles de consensus sont de toute façon moins strictes que les anciennes. C’est pourquoi les hard forks peuvent être compatibles avec des blocs créés par des versions plus anciennes.

En résumé

  • Les hard forks suppriment des règles de consensus, en rendant valides des blocs qui auraient auparavant été invalides, tout en brisant généralement la compatibilité avec les versions futures. Tout le monde devrait passer à la nouvelle version s’il est d’accord avec ce changement et veut éviter les conflits.
  • Les soft forks ajoutent des règles de consensus, en rendant invalides des blocs auparavant valides, tout en préservant généralement la compatibilité avec les versions futures. Tout le monde n’a pas besoin d’utiliser la nouvelle version, puisque les blocs respectant les nouvelles règles seront de toute façon considérés comme valides, que l’on soit d’accord avec le changement ou non.

Scissions de chaîne

Hard forks

Les hard forks sont très souvent confondus avec ce que nous appellerons ici des scissions de chaîne : un véritable fork de la blockchain Bitcoin, qui peut ou non aboutir à un tout nouveau réseau alternatif. Voyons brièvement pourquoi les hard forks ne provoquent pas automatiquement des scissions de chaîne, et pourquoi les scissions de chaîne elles-mêmes sont en réalité assez courantes dans Bitcoin.

Un hard fork avec une taille de bloc augmentée peut provoquer une scission de chaîne, car les anciens nœuds n’accepteront pas les blocs plus gros.

Pour les hard forks, les utilisateurs de la nouvelle version en hard fork peuvent accepter les blocs de l’ancienne version, tout en continuant à miner eux-mêmes des blocs selon les nouvelles règles. Les utilisateurs qui exécutent l’ancienne version refuseront d’accepter ces nouveaux blocs, même s’ils disposent de la majorité du hashrate.

Si l’on reprend l’exemple d’un hard fork qui augmente la taille des blocs Bitcoin, la nouvelle chaîne issue du hard fork est capable d’accepter des blocs plus petits respectant les anciennes règles, mais l’ancienne chaîne refusera les blocs plus gros. Cela rend une scission de chaîne (et donc une mise à niveau) plus probable et plus facile à réaliser pour la nouvelle version, car elle n’a pas à entrer directement en concurrence avec le hashrate de l’ancienne chaîne.

Soft forks

Pour les soft forks, les utilisateurs de la nouvelle version peuvent refuser les blocs de l’ancienne version. Ils peuvent miner des blocs selon les nouvelles règles, mais ceux-ci peuvent aussi être acceptés par l’ancienne version.

Un soft fork qui réduit la taille des blocs peut entraîner une scission, car les nouveaux nœuds n’accepteront pas les blocs plus gros.

Si nous prenons l’exemple d’un soft fork qui réduit la taille des blocs, la nouvelle chaîne ne peut pas accepter les blocs issus des anciennes règles de chaîne, mais la nouvelle chaîne restera compatible avec les utilisateurs qui exécutent les anciennes règles de chaîne.

Les mises à niveau réussies via un soft fork sont plus difficiles, car elles nécessitent une majorité de la puissance de hachage sur la nouvelle version pour « forcer » les utilisateurs de l’ancienne version à accepter les nouvelles règles. Cela s’explique par le fait qu’un nœud Bitcoin acceptera comme chaîne valide la blockchain dans laquelle le plus de travail a été investi. Les scissions de chaîne lors de soft forks sont possibles, contrairement à l’idée répandue selon laquelle les soft forks rendent automatiquement sûrs des changements arbitraires.

En réalité, n’importe quel changement pourrait théoriquement être conçu comme un soft fork, ce qui rend la catégorisation trop binaire de ces deux termes un peu vaine. Par exemple, la mise à jour Segwit a été conçue intelligemment pour augmenter effectivement la taille des blocs sans augmenter la limite de taille des blocs elle-même, ce qui en a fait un soft fork.

Les forks de Bitcoin

Les scissions de chaîne se produisent naturellement presque toutes les quelques semaines, lorsque deux mineurs trouvent par accident des blocs concurrents à la même hauteur (par exemple à cause d’une coïncidence de timing). Il existe même un site web pour suivre ces scissions de chaîne accidentelles. Parfois, lorsque de grands pools de minage sont en concurrence à la même hauteur, ils peuvent s’obstiner sur leur « fork », provoquant une réorganisation de deux, voire trois blocs. Comme il n’y a aucune intention malveillante derrière cela, c’est tout à fait normal et cela fait partie de la théorie des jeux du minage (et c’est en partie pour cette raison qu’il faut attendre 3 à 6 confirmations afin de savoir que votre transaction se trouve sur la chaîne gagnante). L’une des scissions de chaîne les plus marquantes a été la tentative d’augmentation de la taille des blocs qui a abouti à la création de Bitcoin Cash en 2017. Comme les règles de la nouvelle chaîne étaient incompatibles avec les règles existantes de la blockchain Bitcoin, le hard fork de Bitcoin Cash s’est détaché vers une autre blockchain, créant un second réseau et, avec lui, un second coin nommé « BCH ». Le dernier soft fork de Bitcoin a été l’activation de Taproot en 2021. Elle a été obtenue grâce à une majorité de hashrate signalant qu’elle était prête pour les nouvelles règles de consensus, ainsi qu’à la mise à jour des clients utilisateurs vers la nouvelle version. Aucune scission de chaîne ne s’est produite pour ce soft fork.

Conclusion

Les hard forks n’aboutissent pas nécessairement à des scissions de chaîne, et les soft forks ne se font pas nécessairement sans elles. Même si ces termes sont souvent utilisés à tort comme s’ils étaient interchangeables, ils désignent des choses différentes. Comme l’explique cet article, la définition d’un soft fork est généralement un durcissement des règles existantes, tandis qu’un hard fork supprime des règles existantes. Les soft forks sont compatibles avec les règles existantes, alors que les hard forks ne le sont pas. Un autre point essentiel est que les soft forks ne sont pas automatiquement une option plus sûre que les hard forks, et inversement. L’une des raisons tient au fait intéressant que pratiquement n’importe quel changement peut être volontairement conçu comme un soft fork, ce qui empêche de déterminer la nature d’un changement sur la seule base de l’étiquette « soft fork ». En outre, certains changements peuvent même tirer parti de l’absence de compatibilité avec les versions futures propre aux hard forks. En bref, les débats sur les futures mises à niveau de Bitcoin devraient avant tout porter sur le changement lui-même, ses implications et la manière dont il doit être activé, plutôt que sur les aspects techniques des changements de règles.

Frequently Asked Questions (FAQ)

Qu’est-ce qu’un fork Bitcoin ? Un fork Bitcoin se produit lorsque les règles du protocole du réseau sont mises à jour, ce qui crée une divergence dans la blockchain.

Quelle est la différence entre un hard fork et un soft fork ? Un hard fork est un changement de règles qui n’est pas rétrocompatible, tandis qu’un soft fork est rétrocompatible et ne nécessite qu’une adoption partielle du réseau.

Pourquoi les forks Bitcoin se produisent-ils ? Les forks ont lieu pour introduire de nouvelles fonctionnalités, corriger des problèmes ou résoudre des désaccords au sein de la communauté.

Que se passe-t-il avec mes bitcoins pendant un fork ? Vos bitcoins ne sont pas affectés lors d’un soft fork, mais ils peuvent être dupliqués lors d’un hard fork si vous détenez vos clés privées.

Les forks Bitcoin sont-ils sûrs ? La plupart des forks sont sûrs, mais les hard forks comportent davantage de risques, car ils créent des réseaux séparés avec des règles potentiellement différentes.

Vous n’avez pas encore de BitBox ?

Protéger vos cryptos n’a pas besoin d’être compliqué. Le hardware wallet BitBox02 stocke hors ligne les clés privées de vos cryptomonnaies. Vous pouvez ainsi gérer vos coins en toute sécurité.

Le BitBox02 existe aussi en version Bitcoin-only, avec un firmware résolument ciblé : moins de code signifie moins de surface d’attaque, ce qui renforce encore votre sécurité si vous stockez uniquement du Bitcoin.

Commandez-en un dans notre boutique !

Shift Crypto est une entreprise privée basée à Zurich, en Suisse. Notre équipe de contributeurs Bitcoin, d’experts crypto et d’ingénieurs en sécurité conçoit des produits qui permettent à nos clients de vivre un parcours serein, du niveau débutant à la maîtrise de la gestion des cryptomonnaies. Le BitBox02, notre portefeuille matériel de deuxième génération, permet aux utilisateurs de stocker, protéger et effectuer facilement des transactions en Bitcoin et autres cryptomonnaies, avec son logiciel compagnon, le BitBoxApp.

This post was translated with the help of AI