Hard forks VS Soft Fork ? La bataille

Hard-Forks-VSSoft-Forks.jpg
Hard-Forks-VSSoft-Forks.jpg

Hard forks VS Soft Fork ? La bataille

590 lecteurs
Sommaire de l'article

Fourches dures contre fourches souples ? Le combat : 3 minutes

Que sont-elles ? Qu’est-ce qu’elles sont et pourquoi sont-elles si importantes ? Quelle est la principale différence entre les Hard Forks et les Soft Forks ?

Un « fork » en termes de programmation est une modification du code source ouvert. Le code est généralement identique à l’original mais avec des modifications importantes. Parfois, un fork est utilisé pour tester une procédure, mais dans le cas des crypto-monnaies, il est généralement utilisé pour mettre en œuvre un changement majeur ou pour créer un tout nouvel actif ayant des attributs similaires (mais non identiques) à l’actif initial (Litecoin vs. Bitcoin).

Certains forks ne sont pas intentionnels. Avec la large diffusion du code source ouvert, les forks peuvent se produire accidentellement si différents nœuds ne répliquent pas les mêmes données, par exemple. En général, les forks sont détectés et résolus de manière automatique, et la majorité des forks de crypto-monnaies sont traités de cette manière.

Il ne faut pas oublier que les forks ont l’avantage d’avoir un « historique commun ». L’historique des transactions de chaque chaîne (ancienne et nouvelle) est le même avant la scission.

Fourches dures

Il existe deux types de forks de programmation : soft et hard.

Un hard fork fait référence à un changement de protocole qui rend les anciennes versions invalides. Si les anciennes versions sont encore en état de fonctionner, elles finiront par utiliser des protocoles différents et des informations différentes de celles de la nouvelle version. Cela pourrait entraîner une grande confusion et éventuellement des erreurs.

Voir Aussi  Définition de HTTPS

Le bitcoin nécessitera une grande quantité de mémoire pour modifier des paramètres tels que la taille des blocs, ainsi que la complexité de la résolution du puzzle cryptographique, les limites des informations supplémentaires qui pourraient être ajoutées, etc. Les blocs qui sont acceptés par le nouveau protocole, mais rejetés par les anciennes versions, pourraient causer de graves problèmes, voire des pertes d’argent.

Par exemple, si la taille limite d’un bloc est passée de 1 millibyte à 4 mégaoctets pour un bloc de 2 Mo, celui-ci sera accepté par les nœuds qui utilisent la nouvelle version, mais pas par ceux qui utilisaient la version précédente.

Supposons que ce bloc de 2 Mo soit vérifié par un nœud mis à jour et qu’il soit ajouté à la blockchain. Que se passe-t-il si ce bloc suivant est validé par un autre nœud qui exécute une version antérieure du protocole ?

Il tentera de joindre son bloc dans la blockchain mais il constatera que le bloc dans lequel il se trouvait n’a pas été validé. Il ignorera donc le bloc et attachera sa dernière validation à l’ancienne. Maintenant, vous avez deux blockchains : l’une avec la version la plus ancienne des blocs, et l’autre avec la plus récente. Laquelle croît le plus rapidement dépend des nœuds qui reçoivent la confirmation du prochain bloc et pourrait entraîner des scissions supplémentaires. Il est possible que deux chaînes (ou plus) se développent en parallèle, ce qui pourrait causer un problème majeur…

C’est ce qu’on appelle un Hard Forks, et cela pourrait provoquer le chaos. C’est également risqué car il est possible que les bitcoins utilisés dans le nouveau bloc soient réutilisés sur un ancien bloc (marchands ou portefeuilles, ainsi que les utilisateurs utilisant l’ancien code ne détectant pas les dépenses du nouveau code qu’ils estiment insuffisantes).

Voir Aussi  Crédit Agricole de Paris en ligne – www.ca-paris.fr

La seule façon de résoudre ce problème est d’abandonner une version et de passer à une autre, ce qui entraînerait la perte de certains mineurs (les transactions elles-mêmes ne seraient pas perdues, mais elles seraient affectées). Tous les nœuds devront passer simultanément à la dernière version, ce qui est difficile à réaliser dans un système distribué et décentralisé.

De plus, le bitcoin se divise, ce qui a eu lieu (hello bitcoin cash).

Soft Forks

Un soft fork fonctionnera avec les anciennes versions du fork.

Si, par exemple, le protocole est modifié d’une manière plus restrictive, s’il apporte des changements à son apparence ou s’il introduit des fonctionnalités qui ne modifient pas la structure globale, alors les blocs qui se trouvaient dans la version précédente seront acceptés par les blocs de la nouvelle version. Ce n’est pas le cas en sens inverse. Cependant, la version « plus récente » rejettera les blocs plus anciens.

En bitcoin, on s’attend à ce que les mineurs de la version précédente se rendent compte que leur bloc n’a pas été accepté et se mettent à jour. Au fur et à mesure que les mineurs se mettent à jour, le bloc contenant les nouveaux blocs deviendra la chaîne la plus longue. Cela causerait plus de problèmes pour les anciens blocs orphelins, ce qui conduirait à une plus grande mise à niveau des mineurs ainsi qu’à une solution automatique du système. Puisque les blocs mis à niveau sont acceptés par les nœuds plus anciens et mis à niveau, les nouvelles versions finiront par l’emporter, car elles seront plus étendues et plus longues et seront distribuées sur tous les nœuds. Les anciennes versions seraient mises à niveau.

Voir Aussi  SP santé mutuelle : espace personnel, tiers-payant, contact et avis

Imaginons, par exemple, que la communauté décide de réduire la taille des blocs à 0,5 millibytes au lieu de la limite actuelle de 1 Mo. Les nœuds de la nouvelle version seraient incapables d’accepter les blocs de 1 Mo et dépendraient du bloc qui a été extrait précédemment (s’il a été extrait à l’aide d’une version actualisée du code) et provoqueraient un fork indéfini.

C’est ce qu’on appelle un soft fork et cela s’est déjà produit à plusieurs reprises. Au début, le bitcoin n’avait pas de limite de taille de bloc. L’introduction de la limite de 1 Mo s’est faite par le biais d’un « soft fork », dans le sens où la nouvelle politique était plus « stricte » que la précédente. La fonctionnalité de script-hash payant, qui améliore le code mais ne modifie pas la structure du bloc, a été ajoutée avec succès en utilisant le soft fork. Ce type de modification n’est pas requis par tous les mineurs pour mettre à jour leurs blocs. Remarquez que dans l’exemple 2, la discussion porte sur des règles plus strictes, alors que dans les hard forks, on a ajouté une règle plus large qui est un hard fork extrêmement dur !

4.2/5 - (14 votes)
Marine
Marine

Passionnée par l'entreprenariat depuis plus de 10 ans, je suis à la tête d'une société française visant à favoriser la communication des entreprises. Également attiré par la finance, je partage mes conseils et expériences au travers mes articles de blog.

Retour en haut