Please enter CoinGecko Free Api Key to get this plugin works.

Qu’est-ce qu’un fork de blockchain ?

Dans le développement de logiciels, un fork est la création d’un projet dans une direction différente du projet principal ou officiel à partir de son code source existant. Cette pratique est couramment utilisée dans les projets de logiciels libres ou à code source ouvert. Dans les réseaux de blockchain, les forks sont utilisés à la fois pour créer de nouveaux projets à partir d’un projet précédent et pour mettre à jour un projet existant.

Les réseaux blockchain sont régis par des règles encodées dans le protocole qui permettent aux nœuds de valider les blocs de transactions de la même manière et de maintenir le consensus. Ces règles vérifient que la structure du bloc et les transactions qui y sont incluses, comme la taille du bloc (quantité d’espace disponible), sont correctes.

Parfois, les règles de consensus peuvent être modifiées pour ajouter des mises à jour ou protéger le réseau contre les attaques, ou changées à des fins spécifiques, par exemple pour donner naissance à une nouvelle crypto-monnaie. Quelle que soit la raison de la modification, il y a deux façons de changer les règles : par un soft fork ou un hard fork.

Les soft forks

Les soft forks modifient le protocole de sorte que les nœuds mis à niveau rejettent les transactions précédemment valides, mais que les nœuds dotés de l’ancien logiciel valident à la fois les transactions de l’ancien et du nouveau format, ce qui permet aux nœuds mis à niveau de créer plus facilement la plus longue blockchain. Ces types de bifurcations sont plus difficiles à mettre en œuvre dans le code que les bifurcations fortes, car il faut veiller à la rétrocompatibilité avec les anciennes versions du logiciel, ce qui ajoute des limitations lors de la programmation.

Les hard forks

Les hard forks modifient le protocole de telle sorte que les nœuds mis à jour acceptent les transactions dans le nouveau format, mais que les nœuds périmés les rejettent. Dans ces cas, la nouvelle structure de transaction peut inclure des formats précédemment invalides (par exemple, les anciennes règles autorisent des blocs de 1 Mo et les nouvelles règles autorisent des blocs de 1 à 2 Mo) ou modifier le format de sorte qu’ils soient incompatibles (par exemple, la structure d’adresse était « ABC » et ne peut désormais être que « XYZ »).

Dans un hard fork réussi, la nouvelle chaîne est étendue plus rapidement avec les nœuds mis à jour et les anciens sont découplés et peuvent soit laisser mourir l’ancienne chaîne, soit continuer à la soutenir.

Dans les soft forks comme dans les hard forks, les utilisateurs doivent participer à la mise à niveau du réseau, soit en téléchargeant le nouveau logiciel et en lançant les nœuds mis à niveau, soit en s’abstenant de le faire, s’ils le souhaitent. Cependant, les fourchettes souples n’excluent pas ceux qui ne se mettent pas à niveau, alors que les fourchettes dures le font. Quelle que soit la manière dont le changement est effectué, il est nécessaire de développer des applications qui tirent parti de la mise à niveau. Un exemple clé est celui de Segregated Witness ou Segwit, une mise à jour qui a été implémentée par un soft fork sur le réseau Bitcoin, mais qui a pris beaucoup de temps à être implémentée par les différents portefeuilles et services, ce qui fait que ses améliorations n’ont pas encore été remarquées par tous les utilisateurs.

Lorsque les forks sont utilisés pour faire évoluer le réseau en question, il est nécessaire d’atteindre le seuil d’adoption par les nœuds du réseau, préalablement convenu et mis en œuvre dans le code par les développeurs du protocole. En revanche, si une nouvelle crypto-monnaie doit être créée, le consensus n’est pas un problème. Les développeurs de la nouvelle blockchain précisent les nouveaux paramètres et un point de départ pour la chaîne bifurquée, qu’il s’agisse de zéro (comme le Litecoin) ou d’une hauteur de bloc spécifique (comme le Bcash).

Dans le cas des fourchettes fortes, une fois activées, une sorte de jeu de marché peut être initié qui peut aboutir à l’un des scénarios suivants :

  • L’ancienne ou la nouvelle chaîne est désolée et la chaîne restante reste active, les nœuds et les mineurs y migrant pour la plupart. Dans ce scénario, il est possible que les mineurs qui restent sur la chaîne minoritaire ou qui tardent à passer à la chaîne plus longue perdent de l’argent. C’est un scénario courant face à une mise à niveau programmée.
  • Les deux chaînes survivent et la puissance de traitement et la valeur de chaque crypto-monnaie sont réparties comme le détermine le marché. Ce scénario est probable dans les cas de travaux durs litigieux ou controversés. Un exemple de cela est la bifurcation d’Ethereum et d’Ethereum Classic.
  • La chaîne qui initie le fork n’est absolument pas liée à la chaîne principale, donnant ainsi vie à un altcoin dont la naissance n’affecte pas nécessairement la puissance de traitement ou la valeur marchande de la chaîne d’origine. Un exemple de cela est la bifurcation de Bcash (Bitcoin Cash) de la blockchain Bitcoin.

Le cas du hard fork Ethereum (ETH) – Ethereum Classic (ETC) a démontré que la puissance de traitement des mineurs se déplace en fonction du prix de chaque crypto-monnaie, dans la poursuite de la maximisation des profits.

En résumé, les soft forks sont difficiles à programmer, réduisent les règles de consensus et leur mise en œuvre n’implique pas une mise à jour par tous les nœuds du réseau, bien que ce soit le scénario le plus souhaitable. En revanche, les hard forks sont plus faciles à développer en code, ajoutent ou modifient les règles de consensus actuelles, et leur mise en œuvre implique une mise à jour obligatoire des nœuds ou une exclusion du réseau s’ils ne le font pas ; il peut en résulter deux chaînes indépendantes.