Qué es ZooBC
ZooBC es una blockchain pública con su propia moneda, el ZBC. Cualquiera puede abrir una cuenta, enviar transacciones y ejecutar un nodo que compruebe cada bloque. Su consenso, Proof of Participation, no tiene minería: los bloques los producen por turnos nodos registrados elegidos por sorteo, y las monedas nuevas van a los nodos que hacen el trabajo de retransmitir datos para la red.
Una cadena pública con su propia moneda
ZooBC no es un token sobre otra red. Tiene su propia cadena, sus propios nodos y su propia moneda nativa, el ZBC, que paga las comisiones de las transacciones, los stakes de los nodos y los alquileres. Nadie necesita permiso para seguir la cadena ni para comprobarla: cada bloque, cada saldo y cada transacción son públicos, y la API de cualquier nodo responde a cualquiera (cuentas y direcciones).
Hay tres redes ZooBC separadas, devnet, testnet y mainnet (devnet, testnet y mainnet). Cada una empieza con su propio bloque génesis, cuyo hash es la identidad de la cadena.
Cómo se producen los bloques
Llega un bloque nuevo aproximadamente cada 15 segundos (bloques y tiempo). Los bloques no se ganan resolviendo acertijos. El registro de nodos es el conjunto en la cadena de los nodos autorizados a producir bloques, y después de cada bloque un sorteo aleatorio a partir de la semilla de ese bloque designa quién puede producir el siguiente (sorteo). Cualquier nodo puede repetir el sorteo y llegar a la misma respuesta, así que un bloque de un nodo que no fue sorteado se rechaza. Todas las plazas activas tienen la misma probabilidad en el sorteo: el hardware, el saldo y el stake no la cambian.
Proof of Participation mide además el trabajo que mantiene viva una red: pasar bloques y transacciones a otros nodos. Cuando un nodo registrado recibe datos de otro nodo registrado, firma un recibo por ellos, y los recibos que un nodo puede mostrar mueven su puntuación de participación. La puntuación pondera la lotería coinbase que reparte las monedas nuevas y las comisiones de cada bloque. La seguridad se basa en firmas Ed25519 y en el hash SHA3-256, no en energía gastada.
Qué es un nodo
Un nodo es el software de ZooBC ejecutándose en un ordenador. Descarga la cadena, comprueba cada bloque y cada transacción con las mismas reglas que todos los demás nodos y conserva el estado resultante: saldos, tokens, el registro de nodos y lo demás. Sirve una API HTTP pública (API del nodo) y la página de la billetera oficial en /wallet (conseguir una billetera y mantenerla segura).
Un nodo puede participar en dos niveles:
- Seguidor. Cualquiera puede ejecutar un nodo que solo sigue y comprueba la cadena. Permite a su dueño verificarlo todo sin confiar en nadie, pero no produce bloques.
- Productor. Un nodo que se incorpora al registro de nodos puede producir bloques. Su dueño registra la clave del nodo desde una cuenta normal, bloquea un stake y espera en la cola hasta que el nodo es admitido (registrar un nodo). A partir de entonces el nodo es sorteado para producir bloques, retransmite datos a los pares que le asigna el protocolo, firma recibos por lo que recibe y participa en las monedas nuevas según su puntuación.
Una billetera no es un nodo: es un cliente que se comunica con la API de un nodo. Y ningún nodo de ZooBC mina.
Funciones integradas en el protocolo
ZooBC no tiene máquina virtual para código de usuario, ni EVM ni gas. Cada función es un tipo de transacción integrado con un formato de bytes fijo y reglas fijas: enviar ZBC, emitir un token, colocar una orden en un mercado, crear un escrow, almacenar un archivo, vincular cuentas en un grupo, programar pagos y más. A partir de la versión 0.5.8 el protocolo define 73 números de tipo de transacción (transacciones, qué puedes hacer en ZooBC).
Es una concesión deliberada. Cada nodo sabe de antemano todo lo que puede hacer una transacción y la aplica exactamente de la misma manera, así que el efecto de una transacción nunca depende de quién la procese, y una billetera puede calcular la comisión mínima antes de firmar. A cambio, un nuevo tipo de función llega con una versión del protocolo (versiones y actualizaciones) en lugar de con el despliegue de un contrato.
Reglas que ninguna clave puede cambiar
Las reglas de una cadena vienen con su génesis y con el software del nodo. A partir de la versión 0.5.8 una cadena tiene 121 reglas de consenso, todas vigentes desde la altura 0. Ninguna clave puede cambiar una regla, un parámetro o un saldo firmando un mensaje: los saldos solo cambian mediante transacciones que todos los nodos validan, y las plazas del registro solo pueden mover unos pocos precios dentro de límites fijos (votos de precio). La ZooBC Foundation tiene las primeras plazas de cada cadena y publica las herramientas de línea de comandos, pero no tiene ninguna llave maestra.