Aller au contenu principal
Protocole

Fork

Un fork est une bifurcation de la blockchain en deux versions concurrentes. Les forks naturels surviennent lors de la production simultanée de blocs et se résolvent rapidement. Les forks logiciels (soft / hard) résultent d'une modification des règles. Le terme désigne aussi, en open source, une copie d'un dépôt de code.

Trois sens du mot « fork »

Le terme « fork » désigne plusieurs phénomènes distincts dans l'écosystème Bitcoin, qu'il convient de bien distinguer :

  1. Fork naturel (orphan / stale block) : deux mineurs trouvent un bloc valide quasi simultanément. Le réseau se divise temporairement, puis converge sur la chaîne plus longue. Se produit plusieurs fois par mois.
  2. Fork logiciel (soft ou hard) : changement intentionnel des règles du protocole, qui peut diviser le réseau si tous les acteurs ne sont pas d'accord.
  3. Fork de code (code fork) : un développeur copie un dépôt de code (Bitcoin Core, Lightning, etc.) pour le faire évoluer indépendamment. C'est l'usage open source classique du mot.

Le fork naturel

Bitcoin produit un nouveau bloc toutes les 10 minutes en moyenne, mais la variance est importante. Si deux mineurs trouvent un bloc à quelques secondes d'écart, le réseau se retrouve momentanément avec deux blocs valides à la même hauteur. Chaque nœud adopte celui qu'il reçoit en premier. Au bloc suivant, l'un des deux sera étendu, l'autre devient un « stale block » (orphelin) et est abandonné. Cela explique pourquoi on recommande 6 confirmations pour des transactions importantes : la probabilité que deux orphan blocks consécutifs surviennent est négligeable.

Soft fork vs hard fork

| | Soft fork | Hard fork | |---|---|---| | Compatibilité | Ascendante : les nœuds non mis à jour acceptent | Cassante : les nœuds doivent mettre à jour | | Risque de scission | Faible | Élevé | | Activation typique | Via signalisation des mineurs (BIP-9, BIP-8) | Coordonnée par tous les acteurs | | Exemples Bitcoin | P2SH (2012), SegWit (2017), Taproot (2021) | Bitcoin Cash (2017), Bitcoin SV (2018) |

Un soft fork resserre les règles : ce qui était valide reste valide pour les anciens nœuds, mais devient invalide pour ceux qui ont mis à jour. C'est la voie privilégiée par Bitcoin Core depuis 2012.

Un hard fork élargit les règles : ce qui était invalide devient valide. Les anciens nœuds rejettent les nouveaux blocs, et le réseau scinde en deux chaînes incompatibles.

Les forks majeurs de Bitcoin

| Année | Type | Évolution | |---|---|---| | 2010 | Hard fork (correctif) | Bug overflow corrigé | | 2012 | Soft fork | P2SH | | 2013 | Hard fork (accidentel) | BDB/LevelDB | | 2015 | Soft fork | BIP-66 (strict DER) | | 2017 | Soft fork | SegWit | | 2017 | Hard fork (scission) | Bitcoin Cash | | 2018 | Hard fork (scission BCH) | Bitcoin SV | | 2021 | Soft fork | Taproot |

Forks de code dans l'écosystème

Bitcoin Core est régulièrement « forké » au sens open source : Bitcoin Knots (Luke Dashjr, version plus conservatrice), Bitcoin Cash Node (BCH), Bitcoin SV Node (BSV), Elements (Blockstream, base de Liquid), Litecoin (fork historique de 2011). C'est un usage sain et attendu en open source.

La Blocksize War : exemple emblématique

Entre 2015 et 2017, la communauté s'est divisée sur la question de la taille des blocs. Les partisans d'un agrandissement immédiat ont lancé Bitcoin Unlimited puis Bitcoin Cash (hard fork le 1er août 2017). Le marché a tranché : BTC a conservé largement sa valeur et sa communauté, BCH s'est marginalisé, puis BSV s'est encore détaché. L'épisode a prouvé qu'un hard fork contesté produit deux chaînes mais une seule garde la valeur.

À retenir

« Fork » est un terme polysémique qu'il faut clarifier selon le contexte. Bitcoin pratique de plus en plus le soft fork pour ses évolutions (sécurité maximale, scission minime), tout en restant ouvert aux forks de code pour l'expérimentation. Voir soft fork et hard fork.

Termes lies

← Retour au glossaire complet

Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.