Les règles des deux tiers
La plupart de ce qui se passe sur ZooBC ne demande aucun vote : un seul producteur tiré signe chaque bloc, et chaque nœud le vérifie. Mais certaines décisions engagent le registre tout entier : un point de contrôle qui rend l’historique final, des pièces frappées pour un dépôt effectué sur une autre chaîne, le veto d’une version défectueuse. Pour celles-ci, ZooBC applique un seul seuil : deux tiers des sièges enregistrés. Avec 11 sièges, cela fait 8.
Où s’appliquent les deux tiers
| Décision | Ce qu’il faut |
|---|---|
| stocker un bloc dorsal | les cosignatures de 67 % de la liste complète des signataires, arrondi à l’entier supérieur (8 sur 11) ; plus de la moitié (6 sur 11) seulement après 3 périodes de dorsale sans bloc dorsal ; jamais moins de 5 |
| créditer un dépôt du pont, libérer un retrait du pont | les attestations de deux tiers du registre, chacune signée avec une clé de nœud |
| une frappe du pont au-delà du plafond journalier | chaque siège non suspendu |
| résoudre un fait d’oracle qui déclenche des paiements | deux tiers du registre actif attestant la même valeur |
| opposer un veto à une version | deux tiers des sièges enregistrés attestant un veto |
| remplacer l’autorité de publication | le même quorum des deux tiers, compté seulement une fois que son vote le plus ancien a une semaine |
| activer un lot de nouvelles règles | au moins deux tiers des producteurs enregistrés ayant récemment produit un bloc avec la nouvelle version |
Plus en détail :
- Les blocs dorsaux. Le seuil est max(
spine_min_signatures, ceil(n × 67 / 100)), où n est le nombre de sièges de la liste des signataires de la dorsale : 67 % de la liste, arrondi à l’entier supérieur. Chaque signataire vérifie le contenu du bloc par rapport à sa propre chaîne avant de signer. Voir chaîne dorsale. - Le pont. Ses règles font partie du nœud à partir de la version 0.5.8. Des programmes gardiens (keepers) installés à côté des nœuds surveillent les adresses de garde sur l’autre chaîne et votent au moyen d’attestations sans frais. Un dépôt est frappé, un pour un et sans frais de pont, lorsque deux tiers des sièges comptés, les nœuds enregistrés qui ne sont pas suspendus, attestent le même jeton, le même montant et le même destinataire. Si les frappes d’une journée pour une monnaie devaient dépasser le plus grand de deux montants, une unité entière de cette monnaie ou 10 % de son offre, chaque siège non suspendu devrait donner son accord. Les chaînes sont relancées en version 0.5.8 sans démarrer le service de pont. Voir pont et les monnaies enveloppées.
- Les faits d’oracle. Les nœuds enregistrés attestent des événements ; lorsque deux tiers du registre actif attestent la même valeur, l’événement est résolu et paie chaque déclencheur en attente qui le nomme. Voir déclencheurs et attestations.
- Les versions. Un veto attesté par deux tiers des sièges révoque une version exactement comme le ferait la révocation par l’autorité de publication elle-même. Les votes désignant une nouvelle autorité de publication ne comptent qu’une fois que le plus ancien d’entre eux a une semaine (40 320 blocs), de sorte que le titulaire en place le voit venir. Voir versions et mises à jour.
- Le seuil de préparation. Un lot de nouvelles règles de consensus ne s’active qu’une fois qu’au moins ceil(2 × R / 3) producteurs enregistrés distincts ont produit un bloc avec la nouvelle version dans une fenêtre récente de max(720, 5 × n) blocs, et pas avant que la version soit enregistrée depuis un jour. Ici, R est le nombre de sièges enregistrés non suspendus, et n le nombre de nœuds enregistrés.
Comment comptent les sièges suspendus
À partir de la version 0.5.8, les sièges suspendus (voir tours manqués, suspension et expulsion) sortent de tout décompte aux deux tiers : ils ne votent pas et ne comptent pas dans le total. La dorsale est la seule exception délibérée. Elle continue de compter chaque siège de sa liste des signataires, suspendu ou non, de sorte qu’un point de contrôle de la dorsale parle toujours au nom de deux tiers de l’ensemble des sièges.
Le plancher du registre
Les décisions à l’échelle du registre ont aussi un plancher : aucune attestation à l’échelle du registre ne se résout tant que le registre compte moins de max(3, min_registry_size) sièges ou comptes propriétaires distincts, soit 7 sur le mainnet. Deux sièges d’un même opérateur ne font qu’une voix dans le décompte des propriétaires.
Ce qui n’exige pas les deux tiers
- Un bloc ordinaire. Un seul producteur, tiré par la graine, le signe, et chaque nœud le vérifie (voir tirage).
- Les prix modifiables par vote, comme le loyer de compte ou les frais de transfert. Une fois par cycle, chaque prix se déplace vers la moyenne des votes des sièges comptés, chaque vote étant d’abord limité à une hausse de 20 % au plus ou à une baisse de moitié au plus (voir votes de prix).
Certaines vérifications qu’un nœud effectue pour lui-même recourent aussi à un seuil de deux tiers, ou proche de deux tiers, mais elles relèvent de la politique locale, pas du consensus : un nœud dont le sommet est périmé suit le sommet que signalent deux tiers d’un échantillon de pairs enregistrés ; le sondage élargi de la vérification d’instantané exige deux tiers des pairs qui répondent (voir instantanés et synchronisation rapide) ; et le sondage de bifurcation d’un nœud exige au moins 0,66 des pairs qui votent, un peu moins que deux tiers.
L’autre face des deux tiers
Un seuil des deux tiers signifie qu’un peu plus d’un tiers des sièges, en agissant de concert ou simplement en ne votant pas, peut retenir une décision. Pour la dorsale, cet effet est atténué par le repli sur plus de la moitié après trois périodes inactives. Le seuil de préparation n’a pas d’échéance : un peu plus d’un tiers des sièges peut retenir une mise à niveau.