La preuve de participation
La preuve de participation (PoP) est la manière dont ZooBC s’accorde sur ses blocs. Les blocs sont produits par les nœuds d’un registre des nœuds tenu sur la chaîne, tirés au sort à partir de la graine du bloc précédent, avec la même chance pour chaque siège. Chaque nœud est évalué sur le travail dont un réseau a besoin, à savoir transmettre les blocs et les transactions aux pairs que le protocole lui assigne, et cette mesure décide de sa part des nouvelles pièces. Un bloc est valide parce que la bonne clé l’a signé, et chaque nœud le vérifie par lui-même.
Quatre objectifs de conception
- Un pouvoir de production de blocs uniforme. Le solde, la mise, le matériel et le score ne changent pas la chance d’un siège.
- Une adhésion ouverte mais rythmée. Chacun peut se placer dans la file d’attente pour un siège en bloquant une mise ; le protocole admet un nouveau venu par cycle.
- Une participation mesurée et récompensée. Le relais est prouvé par des reçus que signent les pairs destinataires, et les reçus décident du revenu de chaque nœud.
- Aucun travail gaspillé. La sécurité vient de signatures, de hachages et d’une fonction aléatoire vérifiable, pas de casse-têtes.
La comparaison avec les autres consensus confronte ces objectifs à la preuve de travail, à la preuve d’enjeu et à leurs variantes déléguées et fédérées.
Un bloc, étape par étape
- Le tirage. La graine du bloc précédent initialise un générateur aléatoire que chaque nœud exécute à l’identique. Il désigne un producteur pour le tour 1, un autre pour le tour 2, et ainsi de suite (tirage).
- Les tours. Le producteur du tour 1 vise à horodater son bloc 15 secondes après le précédent. S’il reste silencieux, le producteur du tour 2 prend sa place 15 secondes plus tard (tours, cadence et fenêtres). Seuls les dix premiers tours peuvent porter des transactions, et le producteur du bloc précédent est rétrogradé (tours prioritaires, blocs vides et producteur précédent).
- Le bloc. Le producteur signe le bloc avec sa clé de nœud et prouve la nouvelle graine au moyen d’une fonction aléatoire vérifiable : il ne peut donc pas choisir cette graine (graine du bloc (VRF)).
- Les vérifications. Chaque nœud vérifie que le producteur a été tiré pour le tour dans lequel tombe son horodatage ou pour le tour précédent, puis la signature, la preuve de graine, chaque transaction et chaque reçu. Un bloc vide est valide.
- Le travail. Les nœuds relaient les blocs et les transactions vers leurs pairs prioritaires et collectent des reçus signés (reçus et la topologie du réseau). Les reçus qu’un nœud présente dans ses propres blocs font évoluer son score de participation, qui pondère la loterie coinbase.
- Le coût de l’absence. Un tour sauté rend un nœud « manquant » : aucun revenu et un score en baisse. Quatre tours manqués d’affilée le suspendent, et un score de zéro l’expulse (tours manqués, suspension et expulsion).
Pouvoir et revenu, tenus séparés
Le tirage des producteurs ignore le score, et la loterie ignore la mise. Un nœud au score élevé gagne davantage, mais il ne produit pas plus de blocs et ne choisit pas plus de graines : le pouvoir reste le même pour chaque siège, tandis que le revenu suit le travail que fait chaque nœud. Plus de pouvoir suppose plus de sièges, et les sièges ne s’obtiennent que par la file d’attente, une admission à la fois (rythme d’admission).
Quand des branches s’affrontent
Les nœuds suivent la branche de plus grande difficulté cumulée, dans laquelle les blocs à l’heure pèsent plus que les blocs en retard ; en cas d’égalité exacte, c’est le sommet au hachage le plus bas qui l’emporte (choix de branche et difficulté cumulée). Aucun nœud ne revient en arrière de plus de 720 blocs (3 heures), ni en deçà du dernier point de contrôle cosigné sur la chaîne dorsale (finalité et retour arrière). Un producteur qui signe deux blocs sur le même parent peut être signalé et pénalisé (double signature (équivocation)).
Chiffres clés
| Élément | Valeur (mainnet) |
|---|---|
| intervalle entre blocs, et durée d’un tour | 15 secondes |
| sièges de genèse par chaîne | 11 |
| tours pouvant porter des transactions | 1 à 10 |
| score de participation initial | 20 % |
| tours manqués d’affilée avant suspension | 4 |
| pairs prioritaires par nœud, redistribués tous les | 12, tous les 40 blocs |
| limite de retour arrière | 720 blocs (3 heures) |
Voir aussi
Articles de ce thème
- Choix de branche et difficulté cumulée
Comment les nœuds ZooBC choisissent entre des branches concurrentes : la plus forte difficulté cumulée l’emporte, les blocs à l’heure pèsent plus que les blocs en retard, et une égalité exacte revient au sommet au hachage le plus bas. - La double signature (équivocation)
Ce qui se passe quand un producteur signe deux blocs différents sur le même parent : comment les nœuds honnêtes l’évitent, comment tout nœud enregistré le prouve avec un EquivocationReport, et ce qu’il en coûte. - La graine du bloc (VRF)
La graine de 64 octets de chaque bloc pilote les choix aléatoires de la chaîne. C’est la sortie d’une fonction aléatoire vérifiable : son producteur ne peut pas la choisir et chacun peut la vérifier. - La preuve de participation comparée à la PoW et à la PoS
En quoi la preuve de participation de ZooBC diffère de la preuve de travail, de la preuve d’enjeu et des conceptions déléguées et fédérées : qui produit les blocs, comment s’acquiert le pouvoir et sur quoi repose la sécurité d’un bloc. - Le score de participation
Le score de 0 à 100 % qui mesure la qualité du travail d’un nœud : comment il monte et baisse, ce qu’il décide (revenu de la loterie, expulsion) et ce qu’il ne touche jamais (la production de blocs). - Le tirage : qui produit le bloc suivant
Comment chaque nœud calcule, à partir de la graine du bloc précédent, la même liste ordonnée de producteurs pour le bloc suivant, et pourquoi chaque siège actif a la même chance. - Les reçus et la topologie du réseau
Comment ZooBC prouve qu’un nœud a relayé des blocs et des transactions : les pairs prioritaires tirés tous les 40 blocs, le reçu signé de 232 octets et les vérifications de chaque validateur. - Tours manqués, suspension et expulsion
Ce qui arrive à un nœud qui saute son tour : un tour manqué, l’état « manquant » qui coupe son revenu et fait baisser son score, la suspension après quatre tours manqués, et l’expulsion à zéro. - Tours prioritaires, blocs vides et producteur précédent
Pourquoi seuls les dix premiers tours peuvent porter des transactions, pourquoi un bloc vide reste un bloc à part entière, et pourquoi le producteur du bloc précédent est rétrogradé, jamais exclu. - Tours, cadence et fenêtres
Comment ZooBC découpe le temps qui suit chaque bloc en tours de 15 secondes, dans quel tour tombe un horodatage, et pourquoi aucun producteur absent ne peut à lui seul arrêter la chaîne.