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
- ConsensusLe consensus Bitcoin est l'ensemble des règles que tous les nœuds appliquent pour valider la chaîne. Modifier le consensus exige un soft fork (compatible) ou un hard fork (incompatible). Garantit l'immuabilité.
- Règles de standardisationLes règles de standardisation déterminent quelles transactions Bitcoin Core relaie sur le réseau. Plus strictes que le consensus. Font partie de la « policy » des nœuds.
- Soft forkUn soft fork est un changement rétro-compatible des règles de consensus de Bitcoin. Les anciens nœuds continuent à valider la chaîne, même s'ils ignorent la nouvelle règle. SegWit ou Taproot sont des soft forks. Ils permettent d'évoluer Bitcoin sans diviser la chaîne.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.