La lotería coinbase
La lotería coinbase es la forma en que ZooBC paga a sus nodos. El fondo de recompensas de cada bloque, formado por las monedas recién liberadas, las comisiones del bloque y una porción del fondo de longevidad, se divide en partes iguales, y cada parte se sortea entre los nodos registrados con una probabilidad proporcional a su puntuación de participación. El nodo que produjo el bloque no tiene ningún derecho especial sobre él: los nodos ganan haciendo el trabajo que mide la puntuación.
El fondo de recompensas
El fondo de recompensas de cada bloque es la suma de:
- su coinbase, los ZBC nuevos que el calendario de emisión libera para ese bloque (suministro y emisión);
- las comisiones de sus transacciones, descontado el excedente reembolsado a sus remitentes (comisiones);
- una porción del fondo de longevidad, que recauda alquileres y penalizaciones y los reparte poco a poco en cada bloque (fondos).
Quién tiene boleto
Un poseedor de boleto es un nodo registrado que es maduro y no está ni ausente ni suspendido:
- Maduro. Un nodo nuevo no gana nada hasta 4 unidades de puntuación después de su admisión y un bloque propio: 2 días mientras la cadena tenga menos de 2880 nodos (madurez e ingresos).
- No ausente. Un nodo que se saltó su turno cuenta como ausente hasta su siguiente bloque propio, y mientras tanto no gana nada (turnos perdidos, suspensión y expulsión).
- No suspendido. Un nodo suspendido tras 4 turnos perdidos seguidos no tiene boleto.
Los nodos que todavía esperan en la cola no tienen puntuación y tampoco tienen boleto.
Los sorteos
El fondo se reparte mediante una serie de sorteos:
- un sorteo por cada segundo de tiempo de bloque, medido como el intervalo entre los dos bloques anteriores, que el productor del bloque no puede elegir;
- como máximo 600 sorteos, y nunca más sorteos que poseedores de boletos;
- cuando el fondo contiene más de 1 ZBC por sorteo, el número sube a un sorteo por cada ZBC entero del fondo, dentro de los mismos dos límites.
Por tanto, una cadena con 11 poseedores de boletos tiene 11 sorteos por bloque, no 15. Con 1000 poseedores de boletos, un intervalo de 15 segundos y un fondo de 30 ZBC, el número empieza en 15, lo que daría 2 ZBC por sorteo, y sube a 30.
Cada sorteo gana una parte igual: el fondo dividido entre el número de sorteos, redondeado hacia abajo a una unidad atómica, con el resto añadido a la última parte. Las ganancias se pagan a la cuenta del propietario del nodo, no a la clave de nodo (claves de un nodo).
La probabilidad sigue a la puntuación
Cada sorteo elige un nodo con una probabilidad proporcional a su puntuación de participación. Con dos poseedores de boletos que puntúan un 80 % y un 40 %, el primero tiene el doble de probabilidad que el segundo de ganar cualquier sorteo, y el segundo puede ganar igualmente cualquiera de ellos. Los sorteos son independientes y con reemplazo, así que un mismo nodo puede ganar varias partes del mismo bloque.
Los números aleatorios provienen de un generador sembrado con la etiqueta zbc-coinbase y la semilla del bloque anterior (semilla del bloque (VRF)), de modo que todos los nodos calculan los mismos ganadores y pueden comprobar cada pago.
Con el tiempo, los ingresos esperados de un nodo son su proporción de la puntuación total de todos los poseedores de boletos. El stake no interviene: sirve para que un nodo entre en la cola, y no gana nada por sí mismo.
Casos especiales
- Si ningún poseedor de boleto tiene una puntuación que pueda ponderarse, el fondo se reparte a partes iguales entre los poseedores de boletos.
- Si ningún nodo tiene boleto, el fondo pasa al bloque siguiente.
- La comisión de tomador del mercado no forma parte del fondo: va al productor del bloque, y es el único cargo que se paga al productor en lugar de a la lotería. Si ese productor todavía no es maduro, la comisión de tomador va en su lugar a la lotería (mercados y órdenes).
Lo que recompensa
La puntuación sube cuando los bloques propios de un nodo llevan recibos por los datos que retransmitió a sus pares asignados, y baja mientras el nodo está ausente (puntuación de participación). Como la lotería sigue a la puntuación, y un nodo ausente o suspendido no tiene ningún boleto, los ingresos van a los nodos que siguen produciendo sus bloques y retransmitiendo datos. Un nodo que solo mantiene un stake no gana nada.