La puntuación de participación
La puntuación de participación es la medida de ZooBC de lo bien que un nodo registrado hace su trabajo. Va del 0 al 100 %, y todos los nodos empiezan en el 20 %. Sube cuando los bloques propios del nodo llevan los recibos que ganó retransmitiendo datos, y baja mientras el nodo está ausente tras un turno saltado. La puntuación decide la probabilidad del nodo en la lotería coinbase que reparte los ZBC nuevos, y un nodo cuya puntuación llega a cero pierde su plaza. No cambia quién produce los bloques.
La escala
Internamente la puntuación es un entero de 0 a 10^13, que se muestra como 0 a 100 %. Todos los nodos empiezan con el valor por defecto de 2 × 10^12, es decir, el 20 %, incluidas las plazas génesis. Un nodo en la cola no tiene puntuación; la admisión escribe el valor por defecto. Cada nodo calcula la puntuación a partir de la propia cadena. No es una valoración que dan los usuarios, y no es el stake.
Cómo sube: los recibos en los bloques propios del nodo
Retransmitir gana recibos, no puntuación. La puntuación se mueve cuando al nodo le llega su turno: en el bloque que produce publica una muestra de los recibos que ganó, y cada validador los comprueba. El número de recibos mostrados se compara con un pivote:
pivot = floor(min(|S| − 1, P) / 2)
donde S es el conjunto del sorteo (los nodos activos que no están suspendidos) y P es el número de pares prioritarios, 12 en mainnet. Con 11 nodos seleccionables el pivote es 5; a partir de 13 nodos seleccionables es 6. Dicho de otro modo, el pivote es aproximadamente la mitad de lo que el productor podría haber mostrado.
Mostrar más recibos que el pivote eleva la puntuación del productor; mostrar menos la reduce. El tamaño del movimiento se escala además según el número de nodos activos. El resultado siempre se mantiene entre el 0 y el 100 %. Por tanto, un nodo cuyos bloques llevan pocos recibos va bajando poco a poco, aunque nunca pierda un turno.
La subida es lenta a propósito: por debajo de 2880 nodos, un nodo que produce todos sus bloques con sus recibos necesita 30 días para ir del 0 al 100 %, unos 1.67 puntos por unidad de 12 horas de media.
Cómo baja: ausente
Desde cualquier turno saltado hasta su siguiente bloque propio, un nodo está ausente y pierde 5 puntos por unidad (12 horas por debajo de 2880 nodos), tres veces más rápido de lo que sube un nodo perfecto. Por debajo de 2880 nodos, un nodo silencioso cae del 20 % a cero en 2 días, y del 100 % en 10. Véase turnos perdidos, suspensión y expulsión.
Algunas cosas no mueven la puntuación en absoluto. Una prueba de almacenamiento fallida no cuesta puntuación: un poseedor de fragmentos que queda en minoría solo pierde la recompensa de almacenamiento de esa época (véase almacenamiento descentralizado). Ninguna puntuación cambia antes de la altura 40, mientras la cadena arranca. Y no hay ningún registro horario ni ninguna votación: la puntuación proviene solo de lo que llevan los bloques y de los turnos que se saltan los nodos.
Lo que decide la puntuación
Los ingresos. Las monedas nuevas y las comisiones de cada bloque las reparte la lotería coinbase. El fondo de recompensas del bloque (su coinbase, sus comisiones y una porción del fondo de longevidad) se divide en partes iguales, una por sorteo. Cada sorteo elige un nodo con una probabilidad proporcional a su puntuación, a partir de un generador sembrado con la semilla del bloque anterior y la etiqueta zbc-coinbase, de modo que todos los nodos calculan los mismos ganadores. Un nodo puede ganar varios sorteos de un mismo bloque, y un nodo con una puntuación baja también puede ganar. Hay un sorteo por cada segundo del intervalo entre los dos bloques anteriores, como máximo 600, y nunca más sorteos que poseedores de boletos (un fondo grande puede elevar el número, dentro de los mismos límites). Los poseedores de boletos son los nodos registrados que son maduros y no están ni ausentes ni suspendidos. Si ninguno tiene puntuación, el fondo se reparte a partes iguales.
La plaza. Un nodo cuya puntuación llega a cero es expulsado, salvo que quedaran menos de tres nodos activos.
Eso es todo. La puntuación no es una entrada del sorteo de productores, y no entra en el peso de los bloques en la elección de bifurcación.
Por qué el poder y los ingresos van por separado
Dejar la puntuación fuera del sorteo es deliberado. Un nodo con una puntuación alta no obtiene ningún poder adicional sobre la cadena: no produce más bloques, no elige más semillas y no tiene más ocasiones de dejar fuera transacciones. El poder sobre la producción de bloques sigue siendo uniforme por plaza, mientras que los ingresos siguen al trabajo medido. El stake no interviene en ninguno de los dos: solo sirve para que un nodo entre en la cola.
Todas las cifras de la puntuación, como el 20 % inicial y los ritmos de subida y de bajada, son parámetros del génesis de la cadena.