Nous savons que le monde merveilleusement ésotérique de Bitcoin s’est doté d’un vocabulaire chamarré.
Déjà dans les articles précédents, nous avons été bombardés de toute sorte de termes nouveaux : minage, blockchain, hachage, clé, adresse, BIP, graine, phrase mnémonique, etc.
Et lorsque nous croyons enfin en avoir fait le tour, voici que l’on entend parler de ‘forks’.
C’est un fait, nous sommes loin d’en avoir fini. Quel monde passionnant !
Nous voilà repartis pour un petit tour dans le dico de la crypto.
Des forks, il y en a des souples, des durs, des temporaires et des durables.
Lorsque nous consultons des forums ou des podcasts spécialisés, nous relevons parfois les commentaires suivants : ‘Monero est plus démocratique grâce à son hard fork RandomX de 2019’
ou encore ‘Zcash est un fork de Bitcoin utilisant la technologie Zk-Snark’
Fork ? Quésaco ?
La fourche bifide
Techniquement, un ‘fork’ définit un moment particulier où peuvent coexister deux états différents d’une même blockchain.
On pourrait visualiser cela ainsi : la chaîne de blocs se sépare en deux de façon ‘bifide’, prend la forme d’une fourche à deux dents.
Cela arrive de temps en temps dans Bitcoin et encore plus souvent dans certaines autres cryptomonnaies.
À quoi cela est-il dû et quelles en sont les conséquences ?
Le cas du minage
Ce cas de figure particulier est certainement le plus trivial. Il se produit également dans d’autres cryptos.
Nous pouvons déjà le qualifier de ‘fork’.
Vu que Bitcoin est un réseau mondial, nous savons que la propagation d’une information met environ 15 secondes pour atteindre tous ses nœuds.
Endéans ce délai, il est tout à fait possible que deux mineurs A et B trouvent leurs solutions respectives de bloc et les diffusent chacun de leur côté.
Comme chaque solution A ou B est valide, les nœuds qui ont reçu d’abord l’information du mineur A vont la considérer comme légitime et accepter son bloc, tandis que ceux qui ont reçu en premier celle du mineur B l’acceptent tout autant.
Le réseau ‘se scinde’ alors, car nous avons bien là sur le réseau deux états différents de la chaîne, deux registres presque identiques excepté la dernière page qui diffère – le dernier bloc.
Heureusement, cette situation ne perdure pas, car dix minutes en moyenne plus tard, un mineur qui travaillait à partir d’un de ces deux blocs A ou B va trouver sa solution avant les autres, ajouter son bloc, rendre la chaîne plus longue de son côté et tous les nœuds s’aligneront alors sur lui, la récompense du bloc précédent A ou B sera finalement attribuée à celui qui l’a miné et il ne sera plus tenu compte de l’autre bloc (on l’appellera bloc ‘orphelin’).
La probabilité d’un tel cas de figure est faible (environ 2 à 3 fois par semaine).
La probabilité qu’il se reproduise consécutivement est infime et, de toute manière, le même processus de réalignement resterait d’application.
Ceci justifie pourquoi un mineur qui ‘gagne’ un bloc doit attendre un certain délai avant de pouvoir dépenser sa récompense et les pourboires (on ne sait jamais…)
Pour les transactions qui se trouvent dans le bloc A ou B, ce n’est pas tant un problème ; 99,99 % de celles-ci sont logiquement identiques dans les deux blocs car chaque mineur aura cherché à maximiser son gain en pourboires en sélectionnant prioritairement les mêmes.
Mais cela explique d’autant plus pourquoi il est toujours recommandé d’attendre de deux à six blocs après, pour la considérer comme ‘confirmée’ et irréversible.
Le paradoxe routier
L’autre cas de figure, bien plus visible et exposé sur les forums, se rapporte à un changement dans les règles du protocole.
C’est ici que les qualifiants ‘hard’ ou ‘soft’ prennent tout leur sens.
Nous savons que ces règles sont appliquées de manière automatique par l’exécution d’un logiciel ; elles sont d’office respectées par les machines afin de demeurer au sein du bon réseau et d’avoir des transmissions qui sont bien prises en compte.
Mais étant donné que notre réseau est libre et distribué, une partie ‘sceptique’ de celui-ci – majoritaire ou non – peut douter des règles actuelles et librement se mettre d’accord sur de nouvelles règles de protocole qui seraient d’application à partir d’un moment déterminé.
Si ces règles sont plus contraignantes, on parlera paradoxalement de ‘soft fork’ et si elles sont plus souples de ‘hard fork’.
Un peu bizarre, n’est-ce pas ?
Pour expliquer cette logique, voici une analogie didactique : les règles du protocole sont une sorte de code de la route, une liste de règles qui font loi afin que la circulation s’opère sans accidents.
Si nous décidons de modifier une règle, de sorte que la vitesse maximale qui était permise auparavant devienne désormais interdite, nous la rendons plus stricte. On parlera de ‘soft fork’.
Pourquoi ? Parce que les nouvelles règles demeurent dans le cadre des anciennes : si nous devons désormais rouler à maximum 90 km/h là où auparavant la vitesse maximale était de 120, nous respectons toujours bien la limite antérieure des 120, n’est-ce pas ?!
Par contre, si nous modifions une règle pour permettre une limite de vitesse moins contraignante, supérieure là où ce n’était pas possible auparavant, on parlera de ‘hard fork’ car les nouvelles règles sortent du cadre des anciennes : nous pouvons désormais rouler à 120 là où c’était maximum 90, nous ne respectons plus l’ancienne limite des 90…
Concrètement, l’introduction de règles différentes ou de nouveaux procédés dans un protocole de blockchain décentralisé entraîne un fork.
Les softs forks sont rétrocompatibles – ils acceptent toujours les anciennes règles – alors que les hards forks ne le sont jamais : des anciennes règles sont invalidées et des informations propagées selon les nouvelles règles ne sont plus acceptées dans le réseau initial.
Un schisme confessionnel
Les forks peuvent être proposés par n’importe qui sur le réseau.
Mais pour avoir une chance de remporter l’adhésion d’au moins une partie des nœuds, ils doivent faire l’objet d’un explicatif motivé et sont souvent suivis de longs débats contradictoires.
Si une proportion suffisante de nœuds décide de suivre les nouvelles règles proposées, ils vont ‘activer’ le fork – en lançant une nouvelle version du logiciel de protocole – et le réseau va se scinder, chaque blockchain continuant sa route de son côté.
Un peu comme dans un divorce, on a partagé une histoire commune puis on se sépare.
Exemple bien connu : Bitcoin et Bitcoin Cash
Si la toute grande majorité des nœuds reste sur l’ancienne chaîne ou rejoint la nouvelle, la probabilité est grande que celle qui est tombée en désuétude disparaisse tout simplement (la puissance de minage demeurant n’étant plus suffisante pour assurer son modèle de sécurité).
La naissance de re-jetons
S’il y a assez de nœuds et de puissance de minage de chaque côté, les deux chaînes perdurent et deux cryptomonnaies existent de fait.
Ce qui implique que quiconque possédait une adresse avec des jetons sur la chaîne originelle avant la scission se voit également propriétaire d’une même quantité de jetons sur la nouvelle.
Les anciens et les nouveaux jetons ont chacun un prix de marché et continuent leur vie sur leur blockchain respective en appliquant des règles différenciées.
Nous ne pourrons pas déplacer ces jetons d’un réseau à l’autre sans effectuer d’opération de change, car ils ne sont pas du tout interchangeables : les deux réseaux sont devenus distincts.
Ils ont ‘fourché’ – et même ‘fourché fort’.
Est-ce une forme d’inflation ? Oui, en quelque sorte, mais n’oublions pas que la quantité totale de nœuds n’a pas changé ni forcément les usages, ce qui influence le prix réel de chaque jeton (par exemple, si la nouvelle chaîne doit encore faire ses preuves).
Bitcoin l’alpha
Nous l’aurons déduit : si nous remontons la ‘généalogie fork’ de nombreuses cryptomonnaies, nous allons retrouver Bitcoin en tant que parent de souche. Certaines n’ont changé que quelques paramètres mineurs alors que d’autres ont expérimenté des modèles plus élaborés.
Bien sûr, il y a eu aussi de nouvelles cryptomonnaies originelles, construites de toutes pièces avec leur propre bloc de genèse. Pourtant, même là, il semble juste de dire que Bitcoin a montré le chemin.
Le monde des cryptos est comme un grand réseau routier avec plein de bifurcations, plein de fourches…
Remarque
Il existe des versions différentes de Bitcoin Core, ce logiciel qui permet de transformer notre ordinateur en nœud. Elles sont mises au point par d’autres développeurs et poursuivent souvent d’autres objectifs. Par approximation, on les appelle également ‘forks ‘ ou parfois ‘forks logiciels’ mais, dans leur majorité, elles ne changent ni les règles du protocole ni le comportement du réseau et demeurent entièrement compatibles avec ce dernier.
Elles n’impliquent donc pas de véritable fork sur Bitcoin.