Aller au contenu principal
Protocole

Règles de consensus

Les règles de consensus déterminent ce qu'est une chaîne valide (taille de bloc, signatures, scripts...). Différentes des règles de standardisation (relai). Toute modif doit éviter de fork la chaîne.

Définition

Les règles de consensus sont l'ensemble des conditions qu'un nœud Bitcoin applique pour décider si un bloc, et donc une chaîne, est valide. Si deux implémentations divergent sur ne serait-ce qu'une seule de ces règles, elles peuvent se retrouver sur des chaînes différentes : c'est la définition même d'un fork. Elles sont donc le noyau dur du protocole, à manipuler avec une extrême prudence.

Principales règles

| Catégorie | Exemple de règle | |-----------|------------------| | Bloc | Poids ≤ 4 000 000 WU, MerkleRoot correct, timestamp dans une fenêtre | | Proof of work | Hash ≤ target, difficulté ajustée tous les 2016 blocs | | Subvention | GetBlockSubsidy(height) exact selon le calendrier de halving | | Transactions | Inputs valides, signatures correctes, opcodes autorisés, non double-spend | | Scripts | Liste blanche des opcodes activés, limites de pile, BIP-16/65/68/112/141/341 | | Émission | Total coinbase ≤ subvention + frais |

Toute violation invalide le bloc, qui sera rejeté par le réseau entier.

Différence avec la "policy"

Les règles de standardisation sont plus strictes que les règles de consensus : elles décident ce que le nœud relaie (propage dans le mempool), mais n'invalident pas les blocs qui contiennent des transactions non-standard. Cela permet d'ajouter ou retirer des contraintes côté policy sans risquer un fork. La frontière est essentielle :

  • Modifier une règle de policy = changement local et compatible.
  • Modifier une règle de consensus = soft fork ou hard fork.

Modifier le consensus

Le seul moyen sûr de modifier les règles de consensus est un soft fork : on rend plus strictes des règles déjà valides, sans invalider de blocs anciens. Exemples : SegWit (2017), Taproot (2021). Un hard fork qui assouplit le consensus crée mécaniquement deux chaînes (Bitcoin / Bitcoin Cash en 2017). La résistance au hard fork est l'un des arguments centraux des "small blockers".

Pourquoi c'est sacré

Le consensus est ce qui rend Bitcoin résistant aux changements arbitraires. Modifier une règle exige un quasi-unanimisme sur années (cf. la durée du débat sur Taproot ou OP_CTV). C'est cette inertie volontaire qui garantit la prévisibilité du protocole à long terme.

À retenir

Les règles de consensus sont la constitution de Bitcoin. Toucher à l'une d'elles, même pour "améliorer", est l'acte le plus politique du protocole. C'est pourquoi chaque proposition (BIP) fait l'objet d'années de revue.

Termes lies

← Retour au glossaire complet

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