Votos de precio
Unos pocos precios de ZooBC no están fijados para siempre: los votan las plazas del registro de nodos. A partir de la versión 0.5.8 una sola regla cubre todos los precios votables. Una vez por ciclo de instantánea, 30 días en mainnet, cada precio pasa al promedio de las plazas contadas, en el que una plaza que no vota cuenta al precio vigente, después de limitar cada voto a como máximo un 20 % por encima del precio vigente y como mínimo la mitad de este. Todo lo demás, desde el calendario de emisión hasta los saldos, queda fuera del alcance de cualquier voto.
Qué puede votarse
| Precio | Valor inicial en mainnet | Límites |
|---|---|---|
| comisión de transferencia (la escala de comisiones) | 1.0, escrita 0.01 ZBC en el voto | de una unidad atómica a 1 ZBC, es decir, hasta 100 veces el valor inicial |
| alquiler de cuenta | 0.01 ZBC por periodo | de una unidad atómica a 10 ZBC por periodo |
| mantenimiento de tokens | 0.1 ZBC por periodo | de una unidad atómica a 10 ZBC por periodo |
| precio de almacenamiento de datasets | 0.05 ZBC por MiB y periodo | desde una unidad atómica |
| multiplicador de almacenamiento | 1.0 | sus propios límites |
| stake de pasarela | 10 ZBC | desde una unidad atómica |
| coste de creación de mercado | 50 ZBC | desde una unidad atómica |
| comisión de tomador del mercado | 0.1 % | de 1 a 100 puntos básicos |
| mínimo de la cola | 100 ZBC | de una unidad atómica a 250 ZBC |
La comisión de transferencia multiplica la comisión base por acción de 0.025 ZBC en el suelo de cada transacción (comisiones). El mínimo de la cola es el stake más pequeño con el que un nodo puede entrar en la cola (registrar un nodo). Los demás precios se explican junto con sus funciones: El alquiler de cuenta y la poda, mantenimiento de un token (persistencia), datasets, pasarelas y mercados y órdenes.
Cómo se mueve un precio
Cada plaza registrada que no está suspendida tiene una voz; estas son las plazas contadas. Durante un ciclo una plaza puede votar tantas veces como quiera, y cuenta su último voto. Al final del ciclo:
- Se limita cada voto: como máximo un 20 % por encima del precio vigente, como mínimo la mitad de este, y siempre dentro del suelo y el techo del precio.
- El nuevo precio es el promedio de todas las plazas contadas, en el que cada plaza que no vota cuenta al precio vigente.
Si nadie vota, no cambia nada. Ni una mediana de los votos emitidos, ni un acuerdo exacto de dos tercios, ni el voto más alto deciden nada.
Ejemplos resueltos
Diez plazas contadas y un precio vigente de 100:
| Votos | Cada voto cuenta como | Nuevo precio |
|---|---|---|
| dos plazas votan 120, ocho no votan | 120, 120 y 100 por cada plaza que no vota | (2 × 120 + 8 × 100) ÷ 10 = 104 |
| una plaza vota 10 000, nueve no votan | 120 | (120 + 9 × 100) ÷ 10 = 102 |
| una plaza vota 0, nueve no votan | 50 | (50 + 9 × 100) ÷ 10 = 95 |
Sin el límite, el voto de 10 000 daría un promedio simple de 1090. Con el límite aplicado primero, una plaza mueve el precio como máximo una décima parte del paso completo en un registro de diez plazas, y un 0.2 % en uno de 100.
A qué velocidad pueden moverse los precios
Incluso cuando todas las plazas votan el paso completo, un precio sube como máximo un 20 % en un ciclo y baja como mucho a la mitad. Multiplicarlo por diez lleva unos 13 ciclos, y dividirlo entre diez, unos 4.
Todo precio expresado en ZBC puede votarse a la baja hasta una unidad atómica (0.00000001 ZBC). Si el ZBC llega a valer mucho, estos precios pueden seguirlo a la baja, de modo que mantener una cuenta o un dataset no se vuelva absurdamente caro en términos reales. Desde los 0.01 ZBC del alquiler de cuenta, llegar a una unidad requiere unas 20 reducciones a la mitad, es decir, al menos 20 ciclos. Nada pasa a ser gratis: todo cargo calculado se redondea hacia arriba hasta al menos una unidad atómica.
Emitir un voto
Los votos son transacciones de deber sin comisión firmadas con la clave de nodo de la plaza (claves de un nodo). Todos los precios salvo la comisión de transferencia se votan con SetConsensusParam (tipo 51).
La comisión de transferencia es el único precio con un voto en dos pasos:
- en la primera mitad del ciclo, una plaza envía un FeeVoteCommitment (tipo 7) que lleva solo un hash de 32 bytes de su voto, de modo que el valor queda oculto;
- en la segunda mitad, envía un FeeVoteReveal (tipo 263) con el valor.
Una revelación solo cuenta si su hash coincide con un compromiso que la misma plaza hizo en el mismo ciclo, y se usa el último voto válido de cada plaza. La nueva comisión se calcula después como cualquier otro precio.
Salvaguardas
- Mínimo del registro. Ninguna decisión de todo el registro se resuelve mientras el registro tenga menos de max(3, su mínimo del génesis) plazas o cuentas de propietario distintas, que son 7 en mainnet. Dos plazas de un mismo operador son una sola voz en ese recuento.
- Una vez por ciclo. Un parámetro cambia como máximo una vez por ciclo, y siempre se mantiene dentro de sus límites.
- El dinero se queda con las plazas. Lo que cobran estos precios llega a los nodos registrados: los alquileres a través del fondo de longevidad, las comisiones a través de la lotería (fondos, lotería coinbase).
Lo que ningún voto puede cambiar
El calendario de emisión, con el que cada nodo comprueba la coinbase de cada bloque (suministro y emisión); el saldo de cualquier cuenta; las reglas de consenso y las alturas en que se aplican; y el génesis. Todo esto viene con el génesis y con el software del nodo, y ningún voto ni ninguna clave lo mueve (ZooBC Foundation). Las plazas tienen un voto más fuera de los precios: dos tercios de ellas pueden vetar una versión del software (versiones y actualizaciones).