Wiki ZooBC
Proof of Participation

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

  1. 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).
  2. 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).
  3. 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)).
  4. 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.
  5. 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.
  6. 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).
Le nœud A relaie un bloc au nœud B, et B renvoie un reçu qu’il a signé. Le bloc suivant de A porte ce reçu, qui fait évoluer le score de participation de A, et ce score fixe la chance de A d’obtenir une part des nouveaux ZBC.
Le nœud A relaie un bloc au nœud B, et B renvoie un reçu qu’il a signé. Le bloc suivant de A porte ce reçu, qui fait évoluer le score de participation de A, et ce score fixe la chance de A d’obtenir une part des nouveaux ZBC.

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).

Deux nœuds aux scores de 90 % et 30 % : dans le tirage des producteurs, leurs parts sont égales (1 : 1) ; dans la loterie coinbase, elles sont de 3 : 1. Le score fait varier les récompenses, pas la production de blocs.
Deux nœuds aux scores de 90 % et 30 % : dans le tirage des producteurs, leurs parts sont égales (1 : 1) ; dans la loterie coinbase, elles sont de 3 : 1. Le score fait varier les récompenses, pas la production de blocs.

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émentValeur (mainnet)
intervalle entre blocs, et durée d’un tour15 secondes
sièges de genèse par chaîne11
tours pouvant porter des transactions1 à 10
score de participation initial20 %
tours manqués d’affilée avant suspension4
pairs prioritaires par nœud, redistribués tous les12, tous les 40 blocs
limite de retour arrière720 blocs (3 heures)

Voir aussi

Articles de ce thème