Soft Forks vs. Hard Forks : L'histoire des divisions et controverses du réseau Bitcoin

Bitcoin est souvent perçu comme une monnaie numérique statique, un or numérique qui reste inchangé au fil du temps. Cependant, le protocole est un logiciel qui doit être maintenu, corrigé et mis à niveau pour survivre. Les développeurs travaillent continuellement pour corriger les bogues critiques et fournir des mises à niveau qui assurent que le système résiste à l'épreuve du temps. Bien que le réseau soit décentralisé, ce qui signifie qu'aucun PDG unique ou conseil d'administration ne prend les décisions, des changements se produisent encore.

Le processus d'évolution de Bitcoin est distinct de celui des entités centralisées où les décisions se prennent de manière descendante. Le terme gouvernance est appliqué ici de manière quelque peu lâche car il implique souvent des leaders agissant comme mandataires pour les masses. Dans Bitcoin, il n'y a pas de tels leaders. Le processus est quasi-politique dans le sens où les parties prenantes doivent se disputer l'influence, mais ce n'est ni une démocratie ni une ploutocratie.

Au lieu de voter ou d'élire des officiels, le réseau s'appuie sur la construction de consensus. La délibération et la persuasion sont des outils critiques dans cet environnement. Ultimement, tous les participants conservent leur propre volonté. C'est un système opt-in où chacun a le choix d'aller de son côté. Le réseau est défini par ce que ses utilisateurs choisissent d'exécuter sur leurs ordinateurs.

La culture par défaut parmi les participants est que le protocole ne change pas à moins qu'il ne soit absolument nécessaire. À moins qu'une vaste majorité n'accepte une modification, le statu quo reste. Ceux qui souhaitent changer les règles sont toujours libres de forker le logiciel et de créer leur propre version. Cette dynamique a conduit à des événements historiques significatifs où le réseau s'est divisé en factions concurrentes.

Le rôle des propositions d'amélioration

Le processus de mise en œuvre des mises à niveau du code est formalisé par les Bitcoin Improvement Proposals, connues sous le nom de BIPs. Ces documents sont rédigés, examinés par les pairs, débattus publiquement et rigoureusement testés. L'objectif d'un BIP est d'établir un consensus approximatif au sein de la communauté. Le consensus approximatif est atteint lorsque la plupart des gens sont satisfaits que les objections à la proposition sont erronées ou ont été traitées.

Une fois ce consensus atteint, l'étape suivante est d'intégrer le BIP dans l'implémentation du client logiciel connu sous le nom de Bitcoin Core. Un petit nombre de développeurs principaux ont un accès commit au dépôt de code. Cela signifie qu'ils peuvent uploader le code sur la plateforme publique reconnue par la communauté. Cependant, leur pouvoir est limité par les opérateurs de nœuds.

L'étape finale et la plus critique est pour le réseau d'utilisateurs, ou nœuds, d'installer la nouvelle version du logiciel. Cette étape assure que les utilisateurs finaux conservent le contrôle ultime sur ce qui définit le réseau. Seulement lorsque un seuil défini de nœuds installe la mise à niveau, elle est considérée comme activée. Pour les changements qui altèrent matériellement le protocole, la barrière à l'activation est extrêmement élevée pour prévenir les contentieux.

Consensus et pouvoir des nœuds

Il y a un large éventail de voix dans cet écosystème. Développeurs, mineurs, exchanges, fournisseurs de portefeuilles et opérateurs de nœuds indépendants participent tous. Ces groupes sont engagés dans une lutte de pouvoir dynamique où les contrôles et contrepoids empêchent tout groupe unique d'exercer une influence excessive.

Par exemple, il n'y a qu'environ 100 développeurs listés comme contributeurs au client Bitcoin Core. On pourrait conclure qu'ils contrôlent le réseau. Cependant, il y a des dizaines de milliers de nœuds indépendants. Puisque la plupart des nœuds décident indépendamment quel client logiciel exécuter, les développeurs sont redevables aux nœuds. Si les développeurs publient un logiciel incompatible avec les désirs des utilisateurs, les nœuds refuseront simplement de l'adopter.

Les mineurs sont un autre groupe souvent pensé comme ayant un contrôle total parce qu'ils ordonnent les transactions. L'argument est qu'un contingent de mineurs possédant plus de 50 % de la puissance de hachage pourrait hijacker le réseau. Cependant, les mineurs sont aussi redevables aux nœuds. Si les mineurs produisent des blocs qui violent les règles sur lesquelles les nœuds s'accordent, les nœuds rejetteront ces blocs. Les mineurs gaspilleraient alors de l'électricité et de l'argent sur une version de la chaîne que la majorité économique ignore.

Définition des mises à niveau du réseau : Soft vs. Hard Forks

Lorsque des mises à niveau sont proposées, elles tombent généralement en deux catégories : soft forks et hard forks. La distinction réside dans la façon dont les nouvelles règles interagissent avec les anciennes règles. Cette différence technique a des implications profondes pour la cohésion de la communauté et la continuité du réseau.

Un soft fork est une mise à niveau compatible vers l'arrière. Cela signifie que les nœuds exécutant la nouvelle version du logiciel restent compatibles avec les nœuds exécutant la version précédente. Dans un soft fork, les nouvelles règles sont plus strictes ou plus restrictives que les anciennes règles. Les anciens nœuds verront toujours les nouvelles transactions comme valides, même s'ils ne comprennent pas les nouvelles fonctionnalités implémentées.

En raison de cette compatibilité, les soft forks ne nécessitent pas que tout le réseau se mette à niveau simultanément. Cela fournit un chemin de transition plus fluide. Les nœuds qui ne se mettent pas à niveau peuvent encore participer au réseau, bien qu'ils ne puissent peut-être pas utiliser les nouvelles fonctionnalités. Ce mécanisme donne aux nœuds, plutôt qu'aux développeurs, le dernier mot sur l'implémentation.

La nature des hard forks

Lorsque une proposition n'est pas compatible vers l'arrière, elle est connue comme un hard fork. Dans ce scénario, les nouvelles règles contredisent effectivement les anciennes règles. Seuls les nœuds qui exécutent la nouvelle version sont compatibles les uns avec les autres. Toute la communauté de nœuds doit accepter d'utiliser la nouvelle version pour rester sur le même réseau.

Si un segment de la communauté n'accepte pas d'installer et d'exécuter le nouveau logiciel, le résultat est une divergence permanente. La blockchain se divise en deux chaînes séparées qui ne communiquent plus. Une chaîne suit les anciennes règles, et l'autre suit les nouvelles règles. Cela crée deux cryptomonnaies distinctes avec un historique partagé jusqu'au point de la division.

Les hard forks se produisent généralement en raison de désaccords significatifs concernant la direction future du protocole. Ceux-ci peuvent provenir de débats sur la scalabilité, les correctifs de sécurité, ou des différences idéologiques sur le but de la monnaie. Lorsque ces désaccords ne peuvent pas être résolus par consensus, une division devient la seule façon pour les deux côtés de poursuivre leur vision.

Caractéristique Soft Fork Hard Fork
Compatibilité Rétrocompatible Non compatible
Besoin de mise à niveau Optionnel pour certains nœuds Obligatoire pour tous
Résultat Chaîne unique persiste Chaîne se divise en deux

Les conséquences de la division

Les implications d'un hard fork sont significatives. Premièrement, une nouvelle cryptomonnaie est créée. Si un utilisateur détenait des pièces sur la chaîne originale avant le fork, il reçoit généralement une quantité égale de la nouvelle pièce sur la nouvelle chaîne. C'est parce que les deux chaînes partagent le même historique et grand livre jusqu'au bloc où la division s'est produite.

La volatilité des prix est une autre conséquence majeure. Le marché doit décider de la valeur des deux chaînes concurrentes. Cela peut mener à de la confusion parmi les utilisateurs et les entreprises. Les attaques de replay, où une transaction sur une chaîne est malicieusement répétée sur l'autre, peuvent aussi être un risque si des protections appropriées ne sont pas implémentées.

De plus, les hard forks fracturent la communauté. Développeurs, mineurs et utilisateurs doivent choisir un camp. Cette division peut diluer l'effet de réseau, qui est l'un des principaux moteurs de valeur d'une cryptomonnaie. Bien que certains voient les forks comme une fonctionnalité permettant un choix de marché, d'autres les considèrent comme une menace pour la stabilité et la sécurité.

Les guerres de la taille des blocs et Bitcoin Cash

Le hard fork le plus consequential de l'histoire s'est produit en 2017. C'était la culmination d'un débat de plusieurs années connu sous le nom de « Block Size War ». Le désaccord portait sur la façon de scaler le réseau pour gérer plus de transactions.

À mesure que l'adoption augmentait, la conception originale, qui supporte un nombre limité de transactions par seconde, a commencé à peiner. Les blocs devenaient pleins, menant à une congestion du réseau. Cela a résulté en des temps de transaction plus lents et des frais plus élevés. Pendant les périodes de pointe, utiliser le réseau pour des paiements petits devenait impraticable.

Un camp croyait que la solution était d'augmenter la limite de taille des blocs. Ils arguaient que des blocs plus grands permettraient de traiter plus de transactions à la fois, maintenant les frais bas et l'utilité de la monnaie pour les paiements quotidiens. Ils voyaient l'actif principalement comme un moyen d'échange, similaire à de l'argent numérique.

Le camp opposé arguait qu'augmenter la taille des blocs rendrait la blockchain trop grande pour que les utilisateurs moyens la stockent. Ils croyaient que cela mènerait à une centralisation, où seuls les grands centres de données pourraient exécuter des nœuds. Ils préconisaient de garder les blocs petits pour préserver la décentralisation et d'utiliser d'autres couches pour le scaling.

La naissance de Bitcoin Cash

En août 2017, le désaccord a atteint un point de rupture. Les participants n'ont pas pu s'accorder sur une méthode unifiée pour scaler. Un groupe de développeurs et de mineurs a initié un hard fork pour augmenter la limite de taille des blocs. Cela a résulté en la création de Bitcoin Cash (BCH).

Bitcoin Cash a augmenté la taille des blocs pour permettre un débit de transactions plus élevé. Il visait à réaliser la vision d'un système d'argent électronique peer-to-peer avec des frais bas. La division était contentieuse, les deux côtés réclamant représenter la « vraie » vision du livre blanc original.

Depuis le fork, Bitcoin et Bitcoin Cash opèrent comme des réseaux complètement séparés. Ils ont des équipes de développement différentes, des valeurs de marché différentes et des roadmaps différentes. Bien qu'ils partagent le même bloc genesis et historique précoce, ils sont maintenant des actifs distincts avec des philosophies différentes concernant le scaling et l'utilité.

Forks subséquents et fragmentation

À la suite de la division Bitcoin Cash, d'autres hard forks se sont produits. En octobre 2017, Bitcoin Gold (BTG) a été lancé. Son objectif était de décentraliser le minage en changeant l'algorithme de proof-of-work. Les créateurs voulaient rendre le minage accessible aux utilisateurs avec des cartes graphiques standard plutôt qu'un équipement spécialisé coûteux.

Une autre division notable s'est produite au sein du réseau Bitcoin Cash lui-même. En novembre 2018, un désaccord sur les limites de taille des blocs et les fonctionnalités techniques a mené à la création de Bitcoin SV (BSV). Les partisans de BSV préconisaient des tailles de blocs massives pour scaler la capacité à des niveaux d'entreprise.

Bitcoin Diamond (BCD) est aussi apparu fin 2017. Il a augmenté la limite de taille des blocs et ajusté l'offre totale de pièces. Chacun de ces forks a tenté d'adresser des lacunes perçues du protocole principal. Cependant, le succès d'un fork dépend fortement du soutien de la communauté et de la compétence des développeurs. La plupart des forks n'ont pas maintenu la même pertinence ou capitalisation boursière que la chaîne originale.

Segregated Witness : L'alternative soft fork

Tandis que le camp des gros blocs optait pour un hard fork, le réseau principal a poursuivi une mise à niveau soft fork appelée Segregated Witness, ou SegWit. Introduite en 2017, SegWit était une solution d'ingénierie astucieuse au problème de scaling qui ne nécessitait pas de division de chaîne.

SegWit fonctionne en changeant la façon dont les données de transaction sont stockées. Dans une transaction standard, la signature numérique, ou « witness data », occupe une quantité significative d'espace. SegWit sépare cette donnée witness du bloc de transaction principal. Elle déplace les signatures vers une structure de bloc étendue.

En faisant cela, SegWit a effectivement augmenté la limite de taille des blocs sans changer techniquement la règle de 1 Mo appliquée par les anciens nœuds. Elle a introduit le concept d'« unités de poids ». Les données witness sont comptées avec moins de poids que les autres données de transaction. Cela permet à plus de transactions de s'insérer dans un seul bloc, augmentant le débit et baissant les frais.

Correction de la malléabilité des transactions

Au-delà du scaling, SegWit a corrigé un bogue critique connu sous le nom de malléabilité des transactions. Avant SegWit, il était possible de modifier légèrement l'ID unique d'une transaction avant sa confirmation. Cela ne changeait pas la validité du paiement mais créait des problèmes pour les protocoles de seconde couche.

En séparant la signature de l'ID de transaction, SegWit a assuré que les ID de transactions ne pouvaient pas être modifiés. Cette correction était essentielle pour le développement du Lightning Network. Elle a fourni la base de sécurité nécessaire pour que les canaux de paiement off-chain fonctionnent de manière fiable.

Le User Activated Soft Fork (UASF)

L'activation de SegWit était un moment pivotal dans l'histoire de la gouvernance. Elle impliquait une stratégie appelée User Activated Soft Fork, ou UASF. Traditionnellement, les mises à niveau étaient signalées par les mineurs. Cependant, les mineurs étaient hésitants à activer SegWit.

En réponse, un mouvement grassroots d'utilisateurs a décidé d'exécuter une version du logiciel (BIP 148) qui rejetterait les blocs des mineurs ne supportant pas SegWit. Cela a mis une pression économique sur les mineurs. S'ils ne se mettaient pas à niveau, leurs blocs seraient rejetés par les nœuds utilisateurs, et ils perdraient des revenus.

La stratégie a fonctionné. Elle a démontré que la volonté collective de la base d'utilisateurs pouvait forcer la main des mineurs. Elle a renforcé l'éthos décentralisé selon lequel les utilisateurs, et non les mineurs ou les développeurs, sont l'autorité ultime dans le réseau.

Taproot : Élargissement de la confidentialité et des contrats intelligents

En novembre 2021, le réseau a activé un autre soft fork majeur connu sous le nom de Taproot. Comme SegWit, c'était une mise à niveau compatible vers l'arrière. Elle a introduit les signatures Schnorr et les Merkelized Abstract Syntax Trees (MAST).

Les signatures Schnorr ont remplacé le schéma de signature existant par un plus efficace. Elles permettent l'agrégation de signatures. Cela signifie que plusieurs signatures peuvent être combinées en une seule. Pour les transactions complexes impliquant plusieurs parties, cela réduit la quantité de données à stocker sur la blockchain.

MAST améliore la confidentialité et l'efficacité pour les contrats intelligents. Elle permet à des conditions complexes d'être structurées de manière à ce que seules les parties pertinentes soient révélées lorsque les pièces sont dépensées. Pour un observateur extérieur, une transaction de contrat intelligent complexe ressemble à un paiement standard.

Implications pour la fonctionnalité

Taproot a pavé la voie pour des capacités de scripting plus avancées. Elle a rendu les transactions complexes moins chères car elles occupent moins d'espace. Elle a aussi amélioré la confidentialité en rendant les différents types de transactions indistinguables les uns des autres.

Cette mise à niveau a démontré que le réseau pouvait encore innover et ajouter des fonctionnalités sans causer un hard fork contentieux. Elle a montré que le processus de gouvernance, bien que lent et délibéré, pouvait délivrer avec succès des améliorations matérielles au protocole.

Scaling sans forks : Solutions Layer 2

À mesure que les limitations du scaling on-chain devenaient claires, le développement s'est orienté vers les solutions Layer 2. Ce sont des protocoles secondaires construits sur la blockchain principale. Ils gèrent les transactions off-chain et n'utilisent la chaîne principale que pour le règlement final.

L'exemple le plus prominent est le Lightning Network. Il utilise des canaux d'état pour permettre à deux parties de transacter un nombre illimité de fois sans enregistrer chaque transfert sur la blockchain. Seuls les soldes d'ouverture et de fermeture sont enregistrés. Cela permet des paiements quasi-instantanés à faible coût.

Les Layer 2 offrent une scalabilité sans compromettre la sécurité ou la décentralisation de la couche de base. Elles évitent le besoin de hard forks controversés pour augmenter la taille des blocs. En déplaçant les petites transactions fréquentes off-chain, le réseau principal reste non congestionné et sécurisé.

Sidechains

Les sidechains sont un autre mécanisme pour étendre la fonctionnalité. Une sidechain est une blockchain indépendante qui est liée à la chaîne Bitcoin principale. Les actifs peuvent être déplacés entre les deux chaînes en utilisant un peg bidirectionnel.

Les sidechains peuvent avoir leurs propres règles de consensus. Elles peuvent supporter des temps de bloc plus rapides ou des fonctionnalités différentes non possibles sur la chaîne principale. Par exemple, le Liquid Network se concentre sur des transactions rapides et confidentielles pour les exchanges. Rootstock apporte des contrats intelligents de style Ethereum à l'écosystème Bitcoin.

Parce que les sidechains sont séparées, les problèmes sur une sidechain ne menacent pas directement la sécurité du réseau principal. Cela permet l'expérimentation et l'innovation. Si une fonctionnalité sur une sidechain s'avère valuable et sûre, elle pourrait éventuellement être considérée pour le protocole principal.

Innovations modernes et controverses

L'évolution du réseau continue avec de nouveaux concepts qui repoussent les limites de ce qui est possible. L'introduction de SegWit et Taproot a involontairement permis de nouveaux types de stockage de données. Cela a mené à l'essor des Ordinals.

Les Ordinals sont un système pour numéroter des satoshis individuels, l'unité la plus petite de la monnaie. En assignant un numéro unique à un satoshi, les utilisateurs peuvent le suivre. Plus important encore, ils peuvent y inscrire des données. Ces données peuvent être des images, du texte, ou même des jeux simples.

Cela a créé une façon de mint des tokens non-fongibles (NFTs) directement sur la blockchain. Les données sont stockées dans la portion witness de la transaction, qui est moins chère grâce à SegWit. Bien que certains utilisateurs célèbrent cela comme un nouveau cas d'usage qui augmente les revenus des mineurs, d'autres le voient comme du spam qui congestionne le réseau.

OP_CAT et scripting

Une autre zone de recherche active est la restauration d'anciens opcodes. OP_CAT est un morceau de code qui a été supprimé au début du projet en raison de préoccupations de sécurité. Il permet la concaténation, ou jointure, de deux morceaux de données dans un script.

Les partisans arguent que ramener OP_CAT permettrait des contrats intelligents plus puissants sans nécessiter une refonte complexe du système. Cela pourrait faciliter des exchanges décentralisés et des covenants plus avancés directement sur la couche de base. Cela représente le débat ongoing entre ajout de fonctionnalité et minimisation du risque.

Interopérabilité et actifs wrappés

Tandis que les mises à niveau internes continuent, l'écosystème crypto plus large a développé des façons d'utiliser Bitcoin sur d'autres chaînes. Wrapped Bitcoin (WBTC) et Threshold Bitcoin (tBTC) sont des exemples de versions tokenisées de l'actif qui existent sur des blockchains comme Ethereum.

WBTC repose sur un custodian pour détenir les vraies pièces et émettre les tokens. Cela apporte de la liquidité aux applications de finance décentralisée (DeFi) sur d'autres réseaux. tBTC tente de faire cela de manière plus décentralisée en utilisant la cryptographie de seuil pour éviter un point de défaillance unique.

Ces solutions permettent aux détenteurs de participer au prêt, emprunt et trading sur des plateformes qui supportent des contrats intelligents complexes. Elles comblent l'écart entre le stockage de valeur sécurisé et le monde flexible de la DeFi.

Conclusion

L'histoire de Bitcoin est définie par sa lutte pour équilibrer stabilité et innovation. À travers les mécanismes des soft forks et hard forks, le réseau a navigué des désaccords profonds et des défis techniques. La division avec Bitcoin Cash a mis en lumière la difficulté d'atteindre un consensus sur le scaling, tandis que des mises à niveau comme SegWit et Taproot ont démontré le pouvoir des améliorations compatibles vers l'arrière.

Aujourd'hui, l'écosystème continue d'évoluer à travers des solutions Layer 2, sidechains et nouveaux protocoles comme les Ordinals. Le processus de gouvernance reste lent et délibéré par conception, priorisant la sécurité et l'intégrité du grand livre décentralisé avant tout. À mesure que de nouvelles technologies comme le scaling fractal et les opcodes restaurés sont proposées, la communauté s'engagera une fois de plus dans le débat rigoureux qui définit cette économie numérique.

Bitcoin évolue à travers un processus de consensus rigoureux où les utilisateurs décident ultimement des règles en choisissant quel logiciel exécuter.