Seguridad y arquitectura
La seguridad de ZooBC se basa en firmas y hashes, no en energía gastada. Cada bloque, transacción, recibo y prueba de la semilla va firmado, y cada nodo comprueba todo lo que acepta, así que ningún nodo tiene que fiarse de la palabra de otro. Alrededor de ese núcleo, la arquitectura añade unos pocos límites firmes: el historial liquidado no puede reescribirse, un nodo nuevo puede encontrar por sí solo la cadena auténtica y una firma solo cuenta en una cadena.
El atacante para el que se prepara ZooBC
El diseño supone un atacante que puede ejecutar cualquier número de nodos y cuentas, ve todos los mensajes, explota cualquier fallo lógico y es rico, pero que no puede falsificar firmas, encontrar colisiones de hash ni comprar todos los tokens. Sus objetivos serían robar, censurar, reescribir el historial o perturbar la cadena. De qué protege Proof of Participation repasa cada ataque y su respuesta.
Dos cadenas en cada nodo
Cada nodo mantiene dos cadenas. La cadena principal produce un bloque cada 15 segundos y lleva las transacciones; sus bloques los producen nodos registrados elegidos por sorteo (véase Proof of Participation). La cadena spine produce un bloque al día en mainnet y no lleva transacciones: cada bloque es un punto de control de la cadena principal, un registro de las claves de nodo que entraron o salieron y los manifiestos de las instantáneas más recientes del estado, cofirmado por dos tercios de las plazas.
Capas de defensa
| Capa | Qué garantiza | Artículo |
|---|---|---|
| validación por cada nodo | un bloque solo cuenta si lo firmó su productor sorteado y si su prueba de la semilla, sus transacciones y sus recibos son correctos | Proof of Participation |
| plazas iguales y pausadas | el poder no puede comprarse deprisa: una probabilidad igual por plaza, una admisión por ciclo | De qué protege Proof of Participation |
| reversión acotada | ningún nodo revierte más de 720 bloques (3 horas) | Finalidad y reversión |
| puntos de control de la spine | ningún nodo se reorganiza por debajo de un punto de control cofirmado por dos tercios de las plazas | La cadena spine |
| sincronización rápida comprobada | un nodo nuevo carga el estado que nombra la spine, comprueba cada hash y toma muestras de sus pares | Instantáneas y sincronización rápida |
| pin de versión | una instalación nueva rechaza un historial de la spine que contradice su versión | El pin de versión |
| firmas vinculadas a la cadena | una transacción firmada para una cadena se rechaza en todas las demás | Firmas vinculadas a la cadena |
| decisiones de dos tercios | los puntos de control, las transferencias del puente, los hechos de oráculo y los vetos de versiones necesitan dos tercios de las plazas | Las reglas de los dos tercios |
| semillas impredecibles | ningún productor puede elegir la aleatoriedad que designa al siguiente productor | La semilla del bloque (VRF) |
| denuncias de doble firma | un productor que firma dos bloques sobre un mismo bloque padre queda demostrado y penalizado | Doble firma (equivocación) |
Las capas se solapan. Una reescritura del historial desde hace un año, por ejemplo, fracasa por sí sola en cada una de varias capas: el límite de reversión, el suelo del punto de control, las cofirmas de la spine y el pin de versión.
Lo que podría y no podría hacer una mayoría
Incluso un atacante con más de la mitad de las plazas solo podría retrasar o censurar transacciones y sustituir bloques recientes dentro del límite de 3 horas. No podría falsificar firmas, gastar las monedas de otros, acuñar más de lo que marca el calendario de la coinbase ni bajar del punto de control de la spine, porque cada nodo comprueba cada bloque por sí mismo.
En qué no se basa la seguridad de ZooBC
- El secreto. El tráfico entre pares es gRPC en claro; la protección viene de las firmas y de la verificación.
- La energía o el hardware. No se resuelve ningún acertijo y ninguna máquina da ventaja.
- Un tercero de confianza. Ninguna fundación refrenda los bloques, ningún sitio web avala las instantáneas, y basta un solo par honesto para enterarse de cuál es la cadena más pesada.
Véase también
Artículos de este tema
- De qué protege Proof of Participation
El atacante al que ZooBC está diseñada para resistir, y cómo responde Proof of Participation a cada ataque: poder comprado, plazas Sybil, una mayoría, juegos con la semilla, reescrituras de largo alcance y eclipse. - El pin de versión
El pin que puede incluir una versión de ZooBC: una línea pública que nombra un bloque de la spine por su altura y su hash, que un nodo comprueba al arrancar para no funcionar nunca sobre un historial de la spine falsificado. - Finalidad y reversión
Hasta dónde revierte un nodo de ZooBC para seguir una rama más pesada (720 bloques, 3 horas), por qué nunca baja del punto de control de la spine y cómo se reconstruye un nodo varado. - Firmas vinculadas a la cadena
Por qué una transacción firmada para una cadena ZooBC no puede repetirse en otra: toda firma cubre el hash del génesis de la cadena, la única identidad que tiene una cadena ZooBC. - Instantáneas y sincronización rápida
Cómo un nodo nuevo de ZooBC llega al presente sin reproducir todos los bloques: instantáneas mensuales del estado nombradas en la spine, comprobadas trozo a trozo y frente a sus pares. - La cadena spine
La segunda cadena, lenta, que mantiene cada nodo de ZooBC: un bloque al día, cofirmado por dos tercios de las plazas, con puntos de control de la cadena principal, cambios de claves de nodo y manifiestos de instantáneas. - Las reglas de los dos tercios
Qué decisiones de ZooBC necesitan dos tercios de las plazas registradas (bloques de la spine, transferencias del puente, hechos de oráculo, vetos de versiones, actualizaciones de reglas), cómo cuentan las plazas suspendidas y qué no necesita votación.