Les Hards forks et les Softs forks expliqués
Accueil
Articles
Les Hards forks et les Softs forks expliqués

Les Hards forks et les Softs forks expliqués

Intermédiaire
Publié le Nov 29, 2018Mis à jour le Feb 9, 2023
8m

Introduction

Lorsque vous ĂȘtes invitĂ© Ă  mettre Ă  jour l'application de votre banque sur votre smartphone, vous ne rĂ©flĂ©chissez sĂ»rement pas longtemps avant de le faire. Il se peut mĂȘme que votre tĂ©lĂ©phone s'occupe automatiquement des mises Ă  jour sans que vous n'en ayez conscience. AprĂšs tout, il s'agit d'un processus normal : si vous n'installez pas la derniĂšre version d'un logiciel, vous risquez d'ĂȘtre dans l'incapacitĂ© d'utiliser ses services.

Dans le monde open-source des cryptomonnaies, les choses sont diffĂ©rentes. Si vous n'avez pas besoin de lire chaque ligne du code de Bitcoin pour pouvoir l'utiliser, il est nĂ©anmoins important de pouvoir le faire. Dans ce nouveau monde, il n'existe pas de hiĂ©rarchies pouvant simplement imposer des mises Ă  jour et changer les choses selon leur bon vouloir. C'est pourquoi l'implĂ©mentation de nouvelles fonctionnalitĂ©s sur les rĂ©seaux blockchain peut ĂȘtre un vĂ©ritable challenge.
Dans cet article, nous verrons comment les rĂ©seaux de cryptomonnaie peuvent ĂȘtre mis Ă  jour, malgrĂ© l'absence d'une autoritĂ© centrale. Ces rĂ©seaux utilisent deux mĂ©canismes diffĂ©rents : les hard forks et les soft forks. 


Qui prend les décisions sur un réseau blockchain ?

Pour comprendre comme les forks fonctionnent, il est essentiel de d'abord parfaitement comprendre les participants impliqués dans le processus décisionnel (la gouvernance) du réseau.
Pour Bitcoin, on pourrait de maniĂšre gĂ©nĂ©rale faire la distinction entre trois sous-ensembles de participants : les dĂ©veloppeurs, les miners et les utilisateurs exĂ©cutant un nƓud complet. Ces parties contribuent au rĂ©seau. Les nƓuds lĂ©gers (light nodes) (exemple : les portefeuilles pour tĂ©lĂ©phone, ordinateurs) sont largement utilisĂ©s mais ne sont pas rĂ©ellement des « participants » au rĂ©seau.


DĂ©veloppeurs

Les développeurs sont responsables de la création du code, mais également de sa mise à jour. Tout le monde peut contribuer au développement d'une cryptomonnaie. Le code est accessible publiquement, permettant à tous de soumettre des modifications qui seront examinées par d'autres développeurs. 


Mineurs

Les mineurs sont en charge de la sécurisation du réseau. Ils exécutent le code d'une cryptomonnaie et allouent leurs ressources pour ajouter des nouveaux blocs à la blockchain. Pour le réseau Bitcoin, on parle de Preuve de travail. En récompense de leurs efforts, ceux-ci obtiennent des récompenses de bloc.


Utilisateurs de nƓuds complets

Les nƓuds complets sont la colonne vertĂ©brale du rĂ©seau d'une cryptomonnaie. Ils valident, envoient et reçoivent les blocs et les transactions et conservent une copie de la blockchain.


Vous trouverez souvent des chevauchements dans ces catĂ©gories. Une personne peut par exemple ĂȘtre un dĂ©veloppeur et l'utilisateur d'un nƓud complet ou, ĂȘtre un mineur et l'utilisateur d'un nƓud complet. Vous pouvez ĂȘtre les trois Ă  la fois, ou rien. En fait, beaucoup de ceux que nous considĂ©rons comme des utilisateurs de cryptomonnaies n'assument aucun de ces rĂŽles. Ils utilisent Ă  la place des services centralisĂ©s ou des nƓuds lĂ©gers.

En regardant les descriptions ci-dessus, vous pourriez faire des propositions solides pour que les dĂ©veloppeurs et les mineurs prennent les dĂ©cisions pour le rĂ©seau. Les dĂ©veloppeurs crĂ©ent le code : sans eux, ils n'y aurait pas de logiciels Ă  exĂ©cuter et personne ne pourrait corriger les bugs ou ajouter de nouvelles fonctionnalitĂ©s. Les mineurs sĂ©curisent le rĂ©seau : sans une compĂ©tition de minage saine, la chaĂźne peut ĂȘtre dĂ©tournĂ©e ou s'arrĂȘter.
Si ces deux catĂ©gories essayaient de forcer le reste du rĂ©seau Ă  suivre leur volontĂ©, cela finirait trĂšs mal. Pour beaucoup, le vĂ©ritable pouvoir se trouve dans les nƓuds complets. Ceci est largement dĂ» au fait que le rĂ©seau est opt-in (consentement), ce qui signifie que les utilisateurs peuvent choisir le logiciel qu'ils utilisent. 

Les développeurs ne débarqueront pas chez vous avec une arme pour vous forcer à télécharger Bitcoin Core. Si les mineurs adoptent une attitude « comme ça ou rien » pour forcer un changement indésirable sur les utilisateurs, les utilisateurs opteront pour leur propre méthode. 

Ces acteurs ne sont pas des seigneurs tout-puissants : ce sont des prestataires de services. Si les individus dĂ©cident de ne pas utiliser le rĂ©seau, la monnaie perdra de la valeur. La perte de valeur impactera directement les mineurs (leurs rĂ©compenses valent moins chers lorsqu'elles sont libellĂ©es en dollars). Concernant les dĂ©veloppeurs, ceux-ci peuvent tout simplement ĂȘtre ignorĂ©s par les utilisateurs.
Comme vous le voyez, il ne s'agit pas d'un logiciel propriétaire. Vous pouvez apporter les modifications que vous voulez , d'autres peuvent exécuter cette nouvelle version du logiciel et à la fin tout le monde peut s'entendre. En faisant ces modifications, vous venez de forker le logiciel et de créer un nouveau réseau.


Qu'est-ce qu'un fork ?

Le fork d'un logiciel se produit lorsque celui-ci est copié et modifié. Le projet original continue de subsister, mais est maintenant distinct du nouveau qui a pris une direction différente. Supposons que les membres de l'équipe du contenu du site web de votre cryptomonnaie préférée aient un désaccord majeur sur la façon de procéder. Une partie de l'équipe peut dupliquer le site en utilisant un nom de domaine différent. Ils posteront ensuite des contenus différents.

Les projets s'appuient sur une base commune et partagent la mĂȘme histoire. NĂ©anmoins, tout comme une route unique qui se divise en deux, une divergence existe maintenant entre les deux sites.

Notez que ce genre de choses arrive souvent dans les projets open-source et ce, depuis longtemps avant l'apparition des réseaux Bitcoin ou Ethereum. Cependant, la distinction entre un hard fork et soft fork est quant à elle, presque exclusive à l'univers blockchain. Voyons ça ensemble.



Comparaison des Hard forks et des Soft forks

Bien qu'ayant des noms similaires et servant au mĂȘme but, les hard forks et les soft forks sont sensiblement diffĂ©rents. Voyons ces diffĂ©rences.


Qu'est-ce qu'un Hard fork ?

Les Hard forks sont des mises Ă  jour logicielles n'Ă©tant pas rĂ©trocompatibles. Celles-ci se produisent gĂ©nĂ©ralement lorsque des nƓuds ajoutent de nouvelles rĂšgles entrant en conflit avec les rĂšgles d'anciens nƓuds. Les nouveaux nƓuds peuvent uniquement communiquer avec les autres individus utilisant cette version. Il en rĂ©sulte une division de la blockchain et par consĂ©quent la crĂ©ation de deux rĂ©seaux distincts : un employant les anciennes rĂšgles, l'autre en employant de nouvelles.

Les nƓuds deviennent bleus une fois à jour. Les anciennes noeuds, ici en jaune, refusent la mise à jour pendant que les bleus se connectent entre eux.


Il existe dĂ©sormais deux rĂ©seaux exĂ©cutĂ©s en parallĂšle. Ils continueront tous les deux Ă  diffuser les blocs et les transactions, mais ne travaillent dĂ©sormais plus sur la mĂȘme blockchain. Tous les nƓuds avaient une blockchain identique jusqu'au moment du fork (et cet historique est conservĂ©), mais ils auront des blocs et des transactions diffĂ©rents par la suite.


En raison de cette histoire commune, si vous possédiez des coins avec le fork vous vous retrouverez avec des coins sur les deux réseaux. Supposons que vous possédiez 5 BTC au moment du fork au bloc 600 000. Vous pouvez désormais dépenser ces 5 BTC lors du bloc 600 001 de l'ancienne blockchain, mais ceux-ci ne seront pas dépensés sur le bloc 600 001 de la nouvelle blockchain. En supposant que la cryptographie n'ait pas changé, vos clés privées permettent toujours de détenir cinq coins sur le nouveau réseau. 
Un hard fork bien connu est celui du Bitcoin en 2017. Suite à celui-ci, Bitcoin s'est séparé en deux chaßnes : Bitcoin (BTC), la chaßne originale, et Bitcoin Cash (BCH). Ce fork s'est produit aprÚs de nombreux débats sur la maniÚre d'améliorer la scalabilité. Les défenseurs de Bitcoin Cash souhaitaient augmenter la taille des blocs, tandis que les défenseurs du Bitcoin s'opposaient à ce changement.

Une augmentation de la taille des blocs nĂ©cessite une modification des rĂšgles. Cela c'est produit avant le soft fork (plus d'informations seront bientĂŽt fournies Ă  ce sujet) SegWit, les nƓuds n'acceptaient donc pas les blocks de moins de 1 Mo. Si vous crĂ©ez un bloc de 2 Mo valide, les autres nƓuds le rejetteront tout de mĂȘme.

Seuls les nƓuds ayant modifiĂ© leur logiciel pour autoriser les blocs de plus de 1 Mo pouvaient accepter ces blocs. Bien sĂ»r, cela les rendaient incompatibles avec la version prĂ©cĂ©dente, de sorte que seuls les nƓuds ayant les mĂȘmes modifications de protocole pouvaient communiquer.


Qu'est-ce qu'un Soft fork

Un Soft fork est une mise Ă  jour rĂ©trocompatible, les nƓuds Ă  jour peuvent toujours communiquer avec les nƓuds ne l'Ă©tant pas. Ce qu'il se passe gĂ©nĂ©ralement dans un Soft fork est l'ajout d'une nouvelle rĂšgle n'entrant pas en conflit avec les anciennes.
Par exemple, la rĂ©duction de la taille des blocs peut ĂȘtre implĂ©mentĂ©e avec un Soft fork. Prenons une fois de plus l'exemple du Bitcoin pour illustrer ce point : s'il existe une limite sur la taille maximale d'un bloc, il n'existe Ă  contrario pas de limite sur sa taille minimale. Si vous souhaitez n'accepter que les blocs infĂ©rieurs Ă  une certaine taille, il vous suffit simplement de rejeter les blocs de plus grande taille.

Cependant, cela ne vous dĂ©connecte pas automatiquement du rĂ©seau. Vous communiquerez toujours avec les nƓuds appliquant pas ces rĂšgles, mais vous filtrez certaines des informations qu'ils vous transmettent.

Un exemple concret d'un soft fork est le fork Segregated Witness (SegWit) mentionnĂ© plus haut, qui s'est produit peu aprĂšs la scission Bitcoin/Bitcoin Cash. SegWit Ă©tait une mise Ă  jour ingĂ©nieuse modifiant le format des blocs et des transactions. Les anciens nƓuds pouvaient encore valider les blocs et les transactions (le formatage ne violait pas les anciennes rĂšgles), mais ils ne les comprendraient juste pas. Certains champs ne sont Ă©galement lisibles que lorsque les nƓuds passent au logiciel le plus rĂ©cent, leur permettant alors d'analyser des donnĂ©es supplĂ©mentaires.


MĂȘme deux ans aprĂšs l'activation de SegWit, tous les nƓuds n'ont pas Ă©tĂ© mis Ă  niveau. Il y a des avantages Ă  le faire, mais il n'y a pas vraiment d'urgence, puisqu'il ne s'agit pas d'un changement ayant un impact sur le rĂ©seau.


Comparaison des Hard forks et des Soft forks, lequel est le mieux ?

Fondamentalement, ces types de fork servent des objectifs diffĂ©rents. Des hard forks controversĂ©s peuvent diviser une communautĂ©. À l'inverse, des hard forks planifiĂ©s donnent la libertĂ© Ă  tous de pouvoir modifier le logiciel avec l'accord de tous les membres.

Les Softs forks constituent une option plus douce. En gĂ©nĂ©ral, vous ĂȘtes plus limitĂ© dans ce que vous pouvez faire, car vos nouvelles modifications ne peuvent pas entrer en conflit avec les anciennes rĂšgles. Cela dit, si votre mise Ă  jour peut ĂȘtre conçue de maniĂšre Ă  rester compatible, vous n'avez pas Ă  vous soucier de la fragmentation du rĂ©seau.


Pour conclure

Les Hard forks et les Soft forks sont essentiels au succÚs à long terme des réseaux blockchain. Ils nous permettent d'effectuer des changements et des mises à niveau dans des systÚmes décentralisés, malgré l'absence d'une autorité centrale.

Les forks permettent aux blockchains et aux cryptomonnaies d'intĂ©grer de nouvelles fonctionnalitĂ©s au fur et Ă  mesure de leur dĂ©veloppement. Sans ces mĂ©canismes, nous aurions besoin d'un systĂšme centralisĂ© avec un contrĂŽle descendant. Le cas Ă©chĂ©ant, nous serions coincĂ©s avec les mĂȘmes rĂšgles pendant toute la durĂ©e de vie d'un protocole.