Glossaire / Protocole et mises à jour
Hard fork
- Qu'est-ce qu'un hard fork ?
- Un hard fork assouplit ou modifie les règles du bitcoin, si bien que des blocs rejetés par l'ancien logiciel deviennent valides, ce qui signifie que chaque nœud doit se mettre à niveau ou rester sur une autre chaîne.
La compatibilité descendante ne fonctionne que dans un sens, et un hard fork va dans le sens contraire. Les anciens logiciels considèrent les nouveaux blocs comme illégaux et continuent à bâtir leur propre chaîne, si bien que, à moins d'une adoption quasi unanime, le résultat est deux cryptomonnaies là où il y en avait une. C'est ainsi que Bitcoin Cash a vu le jour au bloc 478 558, le 1er août 2017.
Comment cela fonctionne
Un hard fork élargit l'ensemble des blocs qu'un nœud accepte, et cet élargissement est la direction qui ne peut pas passer inaperçue.
Prenez un changement qui autorise un bloc de huit mégaoctets. Les nœuds mis à jour acceptent les petits comme les grands blocs. Les nœuds non mis à jour n'acceptent que les petits. Tant que personne ne mine un grand bloc, les deux groupes sont indiscernables, et la scission n'existe que sur le papier. À l'instant où un mineur en publie un, les groupes ont des extrémités de chaîne différentes et rien dans le protocole ne les réunira jamais, car aucun des deux camps n'est prêt à annuler un bloc qu'il considère comme parfaitement valide.
C'est pourquoi un hard fork exige une coordination qu'un soft fork n'exige pas. Le changement est programmé à une hauteur de bloc ou à une date et une heure précises, annoncé longtemps à l'avance, et chacun est censé avoir effectué la mise à jour avant. Manquez l'échéance et votre nœud ne se contente pas de faire tourner un vieux logiciel, il suit une chaîne que les personnes avec qui vous échangez ont abandonnée.
Un hard fork destiné à produire une seconde chaîne durable a aussi besoin d'une protection contre le rejeu. Sans elle, une transaction signée est valide sur les deux chaînes, si bien qu'une dépense effectuée sur l'une peut être rediffusée sur l'autre, ce qui permet d'y dépenser aussi les bitcoins correspondants. Bitcoin Cash a résolu ce problème en exigeant un nouveau type de hachage de signature, SIGHASH_FORKID, qui rend ses transactions structurellement invalides sur bitcoin et celles de bitcoin invalides sur elle. Les scissions qui ont sauté cette étape ont vu des utilisateurs perdre des bitcoins à cause de rejeux accidentels.
Bitcoin lui-même n'a changé ses règles de cette manière que dans ses toutes premières années, sous la contrainte. L'incident de dépassement de valeur du 15 août 2010 a produit un bloc qui a créé 184 milliards de bitcoins à partir d'un bug arithmétique, et la réparation a nécessité un client corrigé ainsi qu'une réorganisation délibérée pour revenir en arrière. La scission de chaîne de mars 2013 a été résolue par un basculement planifié documenté dans le BIP-50. Rien depuis ne s'en est approché, et aucun mécanisme ne permet d'en imposer un : un hard fork sur bitcoin est une proposition qui ne réussit que si toute l'économie choisit de la suivre.
Pourquoi cela compte quand vous achetez du bitcoin
Deux questions pratiques se posent chaque fois qu'un hard fork est annoncé, et une seule concerne vos bitcoins.
La première est la conservation. Les bitcoins se trouvant dans un portefeuille dont vous détenez les clés existent automatiquement des deux côtés de toute scission, car les deux chaînes héritent du même registre jusqu'au bloc de scission. Vous ne les réclamez pas, vous ne les enregistrez pas et vous ne connectez rien à un site web. Si vous voulez accéder au second actif, vous importez la même phrase de récupération dans un logiciel qui suit la seconde chaîne, et vous le faites sur un appareil qui ne contient rien d'autre, car ce logiciel est écrit par des personnes en qui vous n'avez aucune raison d'avoir confiance.
La seconde est votre plateforme d'échange. Les bitcoins détenus sur une plateforme relèvent de la décision de la plateforme, pas de la vôtre. En 2017, certaines des plateformes que ce site évalue ont crédité du Bitcoin Cash sur les soldes de leurs clients, d'autres ont activé le trading des semaines plus tard, et d'autres ne l'ont jamais coté, le tout alors que les dépôts et les retraits étaient suspendus. Rien de tout cela n'est contractuel où que ce soit. Si une scission compte pour vous, les bitcoins doivent avoir quitté la plateforme au préalable.
La couche d'arnaques est pire que le risque de protocole. Les fausses distributions de jetons liées à un hard fork sont l'un des schémas les plus anciens de notre guide des arnaques : un site qui annonce une nouvelle chaîne, un formulaire de réclamation et un champ pour vos mots de récupération. Aucune scission n'a jamais exigé cela. Tout ce qui demande une phrase de récupération pour libérer des bitcoins issus d'une scission vole les bitcoins d'origine.
Bitcoin Cash, le hard fork qui a réellement eu lieu
Bitcoin Cash est l'étude de cas idéale parce que tout ce qu'elle a fait a été publié à l'avance et que tout ce dont elle avait besoin a d'abord mal tourné ailleurs.
La spécification fixait une heure d'activation au 1er août 2017 et une règle selon laquelle le premier bloc après cette heure devait dépasser un mégaoctet, ce qui garantissait la scission au lieu de la laisser au hasard. Le bloc 478 558 a été ce bloc. Les nouvelles règles ont porté la limite de base à huit mégaoctets, refusé SegWit et ajouté SIGHASH_FORKID afin que les deux chaînes ne puissent jamais rejouer les transactions de l'autre.
La leçon durable est ce qui s'est produit ensuite. Après avoir établi qu'un groupe peut partir avec une copie du registre, Bitcoin Cash a elle-même subi un nouveau hard fork, mené par une faction en désaccord avec son orientation, et les chaînes successives n'ont cessé de se scinder depuis. Un hard fork n'est pas un événement unique dans la vie d'un projet ; c'est un précédent que le prochain désaccord peut invoquer.
Hard fork vs altcoin
Un hard fork hérite d'un registre ; un altcoin part d'un registre vide. Litecoin a été lancé comme sa propre chaîne sans aucun solde, si bien que personne ne s'est réveillé en en possédant. Bitcoin Cash a été lancé avec chaque solde en bitcoin au bloc 478 558 déjà crédité sur sa chaîne, ce qui explique que des détenteurs se sont soudain entendu dire qu'ils possédaient quelque chose. Après la scission, la distinction cesse d'avoir une importance technique, puisque les deux sont des actifs distincts avec des règles et des prix distincts, mais elle reste déterminante pour la manière dont les bitcoins ont été distribués.
Hard fork vs soft fork
La différence est une question de direction, et la direction détermine qui est contraint d'agir. Un hard fork rend valides des blocs auparavant invalides, si bien que chaque nœud doit se mettre à jour ou quitter la chaîne sur laquelle se trouve le reste de l'économie. Un soft fork rend invalides des blocs auparavant valides, si bien qu'un nœud non mis à jour continue à suivre la même chaîne sans remarquer que quelque chose a changé. L'un exige une action universelle dans un délai imparti ; l'autre ne demande rien à quiconque ne mine pas.