Wiki de ZooBC
Proof of Participation

Proof of Participation

Proof of Participation (PoP) es la forma en que ZooBC se pone de acuerdo sobre sus bloques. Los bloques los producen los nodos de un registro de nodos en la cadena, elegidos por sorteo a partir de la semilla del bloque anterior, con la misma probabilidad para cada plaza. Cada nodo se mide por el trabajo que una red necesita, pasar bloques y transacciones a los pares que el protocolo le asigna, y esa medida decide su parte de las monedas nuevas. Un bloque es válido porque lo firmó la clave correcta, y cada nodo lo comprueba por sí mismo.

Cuatro objetivos de diseño

  • Poder de producción de bloques uniforme. El saldo, el stake, el hardware y la puntuación no cambian la probabilidad de una plaza.
  • Pertenencia abierta pero pausada. Cualquiera puede ponerse en la cola para obtener una plaza bloqueando un stake; el protocolo admite a un recién llegado por ciclo.
  • Participación medida y recompensada. La retransmisión se demuestra con recibos que firman los pares que reciben, y los recibos deciden los ingresos de cada nodo.
  • Ningún trabajo desperdiciado. La seguridad proviene de firmas, hashes y una función aleatoria verificable, no de acertijos.

Proof of Participation frente a PoW y PoS compara estos objetivos con Proof of Work, Proof of Stake y sus variantes delegadas y federadas.

Un bloque, paso a paso

  1. El sorteo. La semilla del bloque anterior inicia un generador aleatorio que todos los nodos ejecutan igual. Designa a un productor para la ronda 1, a otro para la ronda 2, y así sucesivamente (sorteo).
  2. Las rondas. El productor de la ronda 1 apunta a estampar su bloque 15 segundos después del anterior. Si guarda silencio, el productor de la ronda 2 toma el relevo 15 segundos más tarde (rondas, tiempos y ventanas). Solo las diez primeras rondas pueden llevar transacciones, y el productor del bloque anterior queda degradado (rondas de prioridad, bloques vacíos y el productor anterior).
  3. El bloque. El productor firma el bloque con su clave de nodo y demuestra la nueva semilla con una función aleatoria verificable, así que no puede elegir esa semilla (semilla del bloque (VRF)).
  4. Las comprobaciones. Cada nodo comprueba que el productor fue sorteado para la ronda en la que cae su marca de tiempo o para la ronda anterior, la firma, la prueba de la semilla, cada transacción y cada recibo. Un bloque vacío es válido.
  5. El trabajo. Los nodos retransmiten bloques y transacciones a sus pares prioritarios y reúnen recibos firmados (recibos y la topología de la red). Los recibos que un nodo muestra en sus propios bloques mueven su puntuación de participación, que pondera la lotería coinbase.
  6. El coste de la ausencia. Un turno saltado deja a un nodo «ausente»: sin ingresos y con una puntuación que baja. Cuatro fallos seguidos lo suspenden, y una puntuación de cero lo expulsa (turnos perdidos, suspensión y expulsión).
El nodo A retransmite un bloque al nodo B, y B le devuelve un recibo que firmó. El siguiente bloque de A lleva el recibo, que mueve la puntuación de participación de A, y la puntuación fija la probabilidad de A de recibir una parte de los ZBC nuevos.
El nodo A retransmite un bloque al nodo B, y B le devuelve un recibo que firmó. El siguiente bloque de A lleva el recibo, que mueve la puntuación de participación de A, y la puntuación fija la probabilidad de A de recibir una parte de los ZBC nuevos.

Poder e ingresos, por separado

El sorteo de productores ignora la puntuación, y la lotería ignora el stake. Un nodo con una puntuación alta gana más, pero no produce más bloques ni elige más semillas: el poder es el mismo para todas las plazas, mientras que los ingresos siguen al trabajo que hace cada nodo. Más poder significa más plazas, y las plazas solo llegan a través de la cola, una admisión a la vez (ritmo de admisión).

Dos nodos con puntuaciones del 90 % y del 30 %: en el sorteo de productores sus porciones son iguales (1 : 1); en la lotería coinbase son 3 : 1. La puntuación mueve las recompensas, no la producción de bloques.
Dos nodos con puntuaciones del 90 % y del 30 %: en el sorteo de productores sus porciones son iguales (1 : 1); en la lotería coinbase son 3 : 1. La puntuación mueve las recompensas, no la producción de bloques.

Cuando compiten varias ramas

Los nodos siguen la rama con la mayor dificultad acumulada, en la que los bloques puntuales pesan más que los tardíos; un empate exacto se resuelve a favor del hash de punta más bajo (elección de bifurcación y dificultad acumulada). Ningún nodo revierte más de 720 bloques (3 horas) ni por debajo del último punto de control cofirmado en la cadena spine (finalidad y reversión). Un productor que firma dos bloques sobre el mismo bloque padre puede ser denunciado y penalizado (doble firma (equivocación)).

Cifras clave

ElementoValor (mainnet)
intervalo de bloque y duración de una ronda15 segundos
plazas génesis por cadena11
rondas que pueden llevar transaccionesde la 1 a la 10
puntuación de participación inicial20 %
turnos perdidos seguidos antes de la suspensión4
pares prioritarios por nodo, rebarajados cada12, cada 40 bloques
límite de reversión720 bloques (3 horas)

Véase también

Artículos de este tema