Hardforks, softforks

En cryptomonnaie, il arrive que les projets changent. La roadmap du début n’est pas forcément la roadmap d’arrivée, et c’est pour le mieux. En effet, des changements structurels ou contextuels peuvent amener les projets à évoluer au-delà de ce qui était prévu. Pour cela, deux façons de faire existent, les hardforks et les softforks. Mais qu’est-ce que c’est et quelles sont leurs particularités ? A quel moment nous en choisissons un plutôt qu’un autre, et surtout, quels sont les forks notables dans l’univers de la crypto ? Tour d’horizon des forks

Un fork, quezaco ?

Un fork, dans sa traduction littérale est un “embranchement”. Finalement, cela résume assez bien le terme de fork en général. Il s’agit d’un changement impliquant une mise à jour et donc la prise d’un nouvel embranchement.

La cryptomonnaie, comme nous le savons, est un système décentralisé, dans son application la plus absolue, elle n’a personne à sa tête, et la cryptomonnaie vit et évolue selon les aspirations de sa communauté. En rejoignant une blockchain, que ce soit par le mining ou l’investissement, vous acceptez fatalement le protocole. Ce protocole correspond à toutes les règles qui vont régir la blockchain en question.

En crypto, un fork est une modification des règles qui régissent ce protocole.

Les projets ont recours aux forks très souvent et ce, pour plusieurs raisons qui peuvent être structurelles ou contextuelles.

Un fork est nécessaire lorsque l’on touche au protocole de validation de la blockchain. Etant donné que tous les participants à la blockchain en question doivent suivre les mêmes règles protocolaires, ces forks doivent se faire partout, en même temps.

3 types de forks existent :

  • Le hardofrk

  • Le softfork

  • Le fork temporaire (ou fork non délibéré)

Un exemple : le Bitcoin

Comment fonctionne le Bitcoin ? Il repose sur deux volets. Le premier volet, c’est le protocole du Bitcoin. Ce protocole est l’ensemble de toutes les règles qui se doivent d’être respectées pour que le réseau fonctionne, il doit donc faire consensus. Le second volet, c’est la blockchain. Il s’agit d’un registre répertoriant toutes les transactions passées sur le réseau, tout étant donc public. Nous verrons ici que les forks s’appliquent donc sur le protocole du Bitcoin, qui peut donc être amené à évoluer en fonction des velléités de la communauté.

Le protocole ne peut pas être modifié en force. Personne, aussi riche de Bitcoins soit-il, ne peut forcer un changement unilatéral. En fait, sur le réseau Bitcoin, il n’y a rien d’unilatéral, tout est une question de consensus, et c’est ce consensus qui mène à des forks plus ou moins faciles à réaliser (par leurs aspects techniques, mais aussi par l’acquisition d’un consensus clair).

En théorie pourtant, cela est faux. En effet, théoriquement, une organisation pourrait acquérir 51% de la puissance de calcul du réseau pour faire passer en force des décisions qui en sa faveur. Mais cela est très théorique pour la simple et bonne raison que cela coûte cher et que c’est très éphémère. Acquérir suffisamment de puissance de calcul est déjà une chose impensable, la maintenir encore plus.

De nombreuses estimations ont été faites quant au coût d’une attaque 51%, une des hypothèses conservatrices ramène le coût 5,5 milliards de dollars, pour un succès aléatoire puisqu’une fois atteinte, il faut être capable de conserver cette puissance suffisamment longtemps pour pouvoir commettre son méfait.

L’histoire de l’attaque 51% fortuite de ghash.io

En juin 2014, ghash.io, une pool de mining, a concentré à elle seule 48% de la puissance de calcul sur le Bitcoin. Cela a jeté un coup de froid car évidemment, posséder 51% du réseau ne veut pas forcément dire décider des règles, mais aussi avoir la possibilité de… détruire le réseau.

Les mineurs présents sur le réseau, conscients de la dangerosité d’une telle association, ont immédiatement réagi pour se répartir sur de nouvelles pools afin d’éviter qu’une situation similaire se reproduise.

Preuve de sa bonne foi, les dirigeants de ghash.io ont annoncé des mesures visant à éviter qu’une telle situation se reproduise, ne serait-ce que parce qu’elle pourrait affecter profondément la réputation du réseau.

Le fork temporaire (ou non délibéré)

Le fork temporaire est un fork qui intervient quand deux mineurs minent le même bloc au même moment. Deux chaînes vont alors se créer puisque des mineurs vont respectivement se greffer à l’un ou l’autre des blocs validés. Cet état va persister jusqu’à ce que le prochain bloc soit validé. Le système, voyant qu’il mine sur une chaîne plus courte, va automatiquement se rallier à la chaîne la plus longue, pour continuer à miner de manière coordonnée. Ce fork temporaire est courant, mais il est indolore, et vous ne le détecterez même pas. Il n’a aucune conséquence sur la stabilité et la sécurité de la blockchain, au contraire, il en assure la continuité, sans interruption, tout en permettant son unicité par la règle de la chaîne la plus longue.

Concernant les deux autres types de forks, ils deviennent nécessaires lorsqu’un projet a besoin de changer les règles de son consensus. Ainsi, il faut appliquer ces nouvelles règles à l’intégralité des acteurs du réseau en question, et pour cela, il faut forker !

Le softfork

Un softfork, comme son nom le laisse imaginer, est une modification relativement superficielle, ou qui du moins est compatible avec la version actuelle du protocole. De ce fait, un softfork va changer certaines choses certes, mais fondamentalement il n’y aura pas de grosses manipulations à faire.

Le softfork est une décision démocratique, qui intervient lorsque la majorité de la communauté accepte un changement. L’implémentation de ce dernier n'exclut pas la compatibilité avec les versions précédentes, mais s’inscrit dans la continuité logique de la précédente version. De fait, un mineur y a toujours accès même s’il ne met pas à jour ses paramètres.

Un nœud qui ne ferait pas la mise à jour du softfork continuerait à fonctionner (dans une certaine limite, celle des nouvelles règles établies) comme si de rien n’était (mais faites les mises à jour quand même, c’est une manière de montrer son implication dans le projet auquel on croit suffisamment pour faire tourner un nœud et surtout, ça permet de conserver le rendement maximal de son nœud).

Vous comprendrez aisément qu’un projet préférera effectuer un softfork plutôt qu’un hardfork, car cela est bien plus facile, rapide et intuitif pour l’ensemble du réseau.

Comme toujours en crypto, pour valider le softfork, il faut qu’au moins 51% du réseau applique les nouvelles règles sous peine de voir deux chaînes évoluer côte à côte.

Le hardfork

Contrairement au softfork, le hardfork est une opération complexe et qui laisse généralement des traces !

En effet, l’implémentation d’un hardfork rend caduque les versions précédentes, obligeant le réseau à migrer pour continuer à fonctionner (alors que nous avions vu que les nœuds non mis à jour pouvaient toujours tourner dans certaines conditions avec un softfork.)

Un hardfork est irréversible et non rétro-compatible.

Ces hardforks sont requis pour implémenter une solution durable dans l’écosystème et nécessitent donc la participation de tout le réseau pour fonctionner.

Le hardfork a deux issues possibles. Soit les utilisateurs migrent tous vers la nouvelle blockchain, faisant disparaître de fait l’ancienne blockchain avec les anciennes règles. Soit les utilisateurs se scindent, certains restant sur l’ancienne chaîne tandis que d’autres migrant sur la nouvelle. Dans ce cas précis, les deux chaînes vont coexister dans l’espace crypto.

Ces hardforks interviennent dans deux cas bien distincts.

  1. La modification structurelle prévue

De nombreuses étapes d’une roadmap sont généralement prévues mais pas forcément implémentées dès le début (Coucou ETH 2.0). Elles restent cependant des objectifs à atteindre et donc des modifications structurelles planifiées dont tout le monde a connaissance à l’avance (Nul n’est censé ignorer la roadmap !)

Ce sont donc des milestones à atteindre et la majeure partie du réseau y verra une amélioration positive et la collaboration devrait, en théorie, bien se passer !

Mais il existe aussi une manière disons “plus houleuse “ de faire un hardfork.

2. Le désaccord

En crypto comme ailleurs, il arrive que les acteurs du réseau soient en désaccord et que ce désaccord ne soit pas solvable par des moyens traditionnels comme un softfork ou un hardfork prévu. Si un consensus ne peut être trouvé parmi les participants, un hardfork peut intervenir pour qu’une partie du réseau fasse scission et que chaque partie continue de travailler sur la version de la blockchain qui l’intéresse.

Les communautés qui se séparent vont se scinder en deux projets qui vont chacun implémenter leur solution respective et les blockchains ne seront pas compatibles entre elles.

Et qu’est-ce qu’on voit apparaître dans un tel cas ? Une nouvelle cryptomonnaie !

Vous connaissez sûrement de nombreuses cryptos qui ont vu le jour à la suite d’un désaccord profond, même si vous ne vous en rendez pas compte ! C’est le cas par exemple du BCH (Bitcoin Cash), du BSV (Bitcoin Satoshi Vision) ou du BTC (Bitcoin Gold) pour le Bitcoin, ou encore l’ETC (Ethereum Classic) pour Ethereum.

Pour bien se rendre compte du contexte dans lequel un hardfork sur fond de désaccord arrive, nous allons parler de BCH et de ETC.

Bitcoin Cash, le désaccord structurel

Nous sommes en 2017 et nous parlons de plus en plus de l’implémentation de SegWit dans le protocole du Bitcoin. Il faut savoir que SegWit est à la base un simple softfork dont le but est de déplacer les données de signature des transaction dans une chaîne séparée. Cette modification avait pour but d’apporter de nombreux bénéfices notamment de permettre plus de transactions sur le réseau.

Mais une partie des mineurs Bitcoin de l’époque n’a pas accepté cette modification qu’ils jugeaient pas au point techniquement, et voulaient résoudre les problèmes de scalabilité en augmentant la taille des blocs (de 1 Mo à 8 Mo dans un premier temps, puis à 32 Mo).

Ne trouvant pas de solutions à l’amiable, Le Bitcoin s’est séparé en deux entités distinctes en août 2017, donnant naissance au Bitcoin Cash.

Pour Ethereum, la situation est différente. Un hack massif d’ETH a obligé la communauté à réfléchir à la direction à donner au projet suite à ce hack.

Ethereum Classic, le piratage en catalyseur

Début d’été 2016, des pirates parviennent à voler 3,6 millions d’ETH (en 8 minutes !) via le fond TheDAO. Ce smart-contract avait pour objectif de déployer une plateforme permettant de favoriser l’investissement collectif (DAO = Organisation Autonome Décentralisée). Il permettait donc aux investisseurs de se regrouper pour investir dans des projets cryptos.

Des hackers sont parvenus, via une fonction présente sur le smart-contract, à détourner 3,6 millions d’ETH, soit le tiers de tous les fonds présents sur TheDAO.

A la suite de cela, un fork est proposé afin de geler les fonds volés et ainsi mettre fin à cet événement. La communauté est sollicitée et se déchire quant à l’orientation à prendre. Un hard fork irait à l’encontre des principes d’Ethereum mais permettrait de résoudre ce problème de la manière la plus douce possible. Finalement, après délibération, l’ETH se scinde en deux entités : L’Ethereum d’un côté, l’Ethereum Classic de l’autre (version dans laquelle les pirates conservent les fonds volés)

Berlin : L’Ethereum se refait une beauté

Hier, Ethereum a connu une étape majeure de son développement. Le hardfork Berlin a été appliqué au bloc 12 244 000 et apporte 4 nouveautés essentielles au réseau Ethereum :

  • Opérations liées aux smart contracts étendues et coût abaissé

  • Augmentation de la sécurité en dissuadant les attaques par déni de service (visant à saturer le réseau) en augmentant le gas de certaines opérations, lorsqu’elles sont effectuées pour la première fois

  • Réduction du gas pour des fonctions majeures du réseau

  • Diversification des types de transactions

La prochaine mise à jour majeure changera complètement la manière de valider les transactions, le système d’enchères sera abandonné au profit d’un algorithme qui fixera le prix d’une transaction. L’utilisateur aura tout de même la possibilité de donner un pourboire pour passer prioritaire.

Une partie des frais ne reviendra plus aux mineurs mais sera brûlée, faisant entrer ETH dans une mécanique déflationniste. Mais pour cela, il faudra évidemment arriver à trouver un accord avec les mineurs qui ne voient pas ça d’un très bon œil, comme vous pouvez l'imaginer.

Autre fork notable

Le Litecoin qui est un fork du Bitcoin un peu particulier car il ne partage pas d’historique de blockchain avec ce dernier. Il conserve cependant les grandes règles de bases à quelques différences près comme la durée de validation d’un bloc, un algorithme de hachage qui rend plus accessible le mining

Conclusion

Les projets évoluent, s’améliorent et adaptent leurs structures en fonction de leurs aspirations et des contraintes actuelles. C’est donc tout naturellement que les hardforks et softforks s’imposent comme des étapes nécessaires.

Si le softfork est la solution privilégiée car elle est rétrocompatible, des hardforks peuvent être nécessaires et engendrent régulièrement l’émergence d’une nouvelle branche de la blockchain en question, et donc une nouvelle crypto !

L’écosystème est bouillonnant, jeune et ambitieux, la multiplication des projets crypto rendra les forks, soft ou hard, encore plus répandu à l’avenir, à nous de rester analytique pour distinguer un réel fork utile d’un fork opportuniste comme le BSV par exemple, et qui ne servent qu’à s’enrichir, parfois sur le dos des autres.

Restez à l’affût des nouvelles de vos cryptos favorites, vous y apprendrez à repérer les forks, et même si vous ne maitrisez pas toujours la technique pure derrière ces changements, vous pourrez en comprendre les tenants et les aboutissants.

Last updated