Rand Protocol
Documentación
Ecosistema

Validadores, agregadores y provers

Cómo encajan los roles en Rand: qué máquina prueba una transferencia y con qué clave, qué comprueba un nodo RPC antes de propagarla por gossip, cómo los validadores ordenan, verifican y finalizan bloques sin probar nada, y dónde un agregador sellaría una ventana de pruebas una vez que se active la agregación.

Use esta página para ver quién hace qué cuando una transferencia circula por Rand. Probar es caro y verificar es barato, así que el trabajo se reparte siguiendo esa línea. Del lado del remitente se generan las pruebas. Los validadores solo las comprueban, las ordenan y votan. Un agregador, una vez activado, combinaría muchas pruebas en una sola. La figura sigue una transferencia desde la wallet hasta un bloque final; las secciones posteriores tratan cada rol por turno.

How a transfer moves through Rand A wallet makes the authorisation proof itself and gets the bundle proof from this device, a prover of its own, or the validators' prover pool, which is sent the viewing key only. The transaction goes to an RPC node, which verifies both proofs and gossips it to the validators. The validators order it in a block, re-verify every proof, vote, and commit the block. Finalised blocks are kept by observers and archive nodes. An aggregator, built but switched off on chain 20, would prove one recursive proof over a window of bundle proofs and submit it for a sealing block. 1 · ON THE SENDER'S SIDE Wallet holds the spend key; it never leaves builds the transfer, seals the envelopes authorisation proof · tier 10 · seconds always made here, over the spend key Bundle prover tier 14 · about 6 GB of memory · 1–2 min this device (desktop app, 8 GB phone) a rand-prover you run the validators' pool prover.randprotocol.org viewing key + salt bundle proof checked locally transaction: two proofs, nullifiers, commitments, sealed envelopes, fee 2 · ANY RPC NODE checks the binding, both proofs and the fee on four verify workers behind a 64-deep queue, then gossips the transaction on, only once it has verified gossip 3 · VALIDATORS · 26 ON CHAIN 20, 18 NEEDED TO COMMIT Mempool still-valid, best fee per KiB Leader proposes round robin · about one block a second HotStuff votes final after three chained QCs every validator re-verifies every proof in a block before it votes; no validator proves anything Aggregate → a sealing block 4 · FINALISED BLOCKS served by every RPC node and the explorer archive nodes keep every raw proof wallets scan them with their own keys window AGGREGATOR · BUILT, OFF ON CHAIN 20 one recursive proof over a window of bundle proofs; GPU-class, bonded paid a proving share and a subsidy
En un teléfono, desplace la figura hacia los lados. Una transferencia, de arriba abajo. Las flechas continuas son lo que chain 20 hace hoy; el recuadro y la flecha discontinuos son la agregación de bloques, que está construida e integrada, pero no figura en el genesis de chain 20.

El recorrido de una transferencia

  1. La wallet construye la transferencia. Elige sus notas de entrada, obtiene sus testigos de Merkle, construye cuatro salidas y sella cada una en un sobre ML-KEM-768. Después calcula el vínculo (binding) de la transacción, un hash sobre todo salvo las pruebas (Transacciones).
  2. La wallet prueba por sí misma la autorización. Es una prueba de nivel 10 sobre la clave de gasto y una sal nueva, cuestión de segundos. Es la única prueba que toca la clave de gasto, y siempre se genera en la propia máquina de la wallet.
  3. La prueba del paquete se genera donde hay memoria para ella. Esta prueba de nivel 14 demuestra la propiedad, la pertenencia, los nullifiers y el balance, y alcanza un pico de unos 6 GB. La aplicación de escritorio y un teléfono con unos 8 GB la generan por sí mismos. Cualquier dispositivo con menos memoria delega el trabajo en un probador con el que esté emparejado: uno que usted ejecute, o el pool de los validadores en prover.randprotocol.org. A cualquiera de los dos se le envían la clave de visualización y la sal, nunca la clave de gasto (Pruebas).
  4. Un nodo RPC la comprueba. El nodo al que la wallet envíe la transacción recalcula el resumen del paquete, verifica ambas pruebas contra el vínculo, comprueba la comisión y solo entonces difunde la transacción a sus pares (Pruebas, Mempool).
  5. Los validadores la ordenan y la finalizan. El líder de la vista toma las transacciones que siguen siendo aplicables, primero la mejor comisión por KiB, y propone un bloque. Cada validador vuelve a verificar todas las pruebas del bloque y vota. El bloque se confirma cuando tres certificados de quórum se encadenan sobre él en vistas consecutivas, lo que exige que estén en línea 18 de los 26 validadores de chain 20 (Consenso).
  6. El bloque es final y cualquiera puede comprobarlo. Una transacción es final cuando rand_getTransaction devuelve un bloque. Un nodo que se sincroniza más tarde vuelve a verificar todos los certificados y todas las pruebas en lugar de confiar en las firmas.

Los roles

rolqué hace¿prueba?qué veejecuta
walletconstruye, autoriza y envía transferencias y llamadas; escanea la cadena con sus propias clavessiempre la prueba de autorización; la prueba del paquete cuando el dispositivo tiene la memoriatodo sobre sus propias notaslas aplicaciones de la página Clientes, o rand; en chain 20, Rand Wallet o rand v0.6.8 o posterior
probador delegadogenera la prueba del paquete para una wallet emparejada con él; la wallet comprueba cada respuesta antes de enviar nadasolo pruebas de paquetela clave de visualización de la wallet emparejada: todo su historial, pasado y futuro; no puede gastarrand-prover run, o rand-node run --prover
pool de probadores de los validadoresun probador delegado operado por cuatro hosts, dos validadores y dos máquinas que solo prueban, bajo un único nombre y una única clave, para wallets sin probador propio; sin comisiónsolo pruebas de paquetelo mismo que cualquier probador delegado, para cada wallet que se empareje con élprover.randprotocol.org, huella RGTF-7HKJ-XZFV-GQ1J
nodo RPC (observador)se sincroniza, vuelve a verificar cada prueba, sirve JSON-RPC, difunde las transacciones verificadas; no votanosolo campos públicos: compromisos, nullifiers, sobres sellados, pruebasrand-node run
validadortodo lo que hace un observador, además de proponer en sus vistas y votar en HotStuffnosolo campos públicosrand-node run --validator
agregadorgenera una prueba recursiva sobre una ventana de pruebas de paquete finalizadas y la envía para que un bloque la sellesí, las pruebas más grandes de la redsolo campos públicos y pruebasrand-node aggregate --watch, en una cadena con una sección aggregation

Probar y validar son tareas distintas, y un validador no necesita hardware de prueba. Dos de los cuatro miembros del pool son validadores que además ejecutan un probador, como servicio; los otros dos son máquinas dedicadas a probar que no tienen ninguna clave de validador. Operar el pool no forma parte de validar. Los tamaños de cada rol, y la memoria de prueba medida por nivel, están en Hardware de validador y agregador.

Qué puede saber cada rol

La privacidad de una transferencia depende de quién posee cada clave, no de confiar en la red:

  • Los validadores, los nodos RPC y el explorador ven lo que ve cualquier nodo: compromisos, nullifiers, sobres sellados, la comisión y las pruebas. No ven el monto, el activo, el remitente ni el destinatario.
  • A un probador delegado, incluido el pool, se le envía la clave de visualización. Con ella puede leer todo el historial de la wallet emparejada. Nunca puede gastar, porque la prueba de autorización sobre la clave de gasto se genera en la máquina de la wallet. Emparejar el pool significa decidir mostrar ese historial a sus operadores. Si quiere mantenerlo privado, pruebe en su propio dispositivo o ejecute su propio probador.
  • Un probador delegado no puede engañar a la wallet. La wallet lee el resumen de cada prueba que recibe, comprueba su tamaño y la verifica localmente, de modo que una prueba incorrecta nunca llega a un nodo.

Agregación: construida, no activa

Hoy cada bloque lleva todas las pruebas en bruto, unos 2,85 MB por transferencia, de modo que un bloque de 20 MiB contiene unas siete transferencias. La agregación de bloques es la respuesta del fullnode. Un agregador toma las pruebas de paquete de una ventana de bloques finalizados (rand_getUnsealed), genera una prueba recursiva que las verifica todas y la envía. El bloque que la incluye sella la ventana. Los validadores verifican entonces un solo agregado en lugar de N pruebas, y los nodos pueden descartar las pruebas en bruto cubiertas. Los agregadores están respaldados por una fianza y no requieren permiso, se ejecutan en máquinas de clase GPU y cobran la parte de prueba de los paquetes cubiertos más un subsidio de bloque en RAND nuevos.

Está construida e integrada, pero no está activa. Necesita una sección aggregation en el genesis, y chain 20 no tiene ninguna, por lo que rand_status informa todos los contadores de agregación en cero. Antes de poder activarla hay que volver a medir la forma de su paquete con el conjunto de restricciones actual, y hay que realizar un ejercicio de agregado falsificado contra el verificador de recursión. En una cadena con autorización dividida, además, solo sellaría las pruebas de paquete, no las pruebas de autorización (Pruebas).

Verificado por última vez con el commit c0878c3f del fullnode (cadena 21) el 2026-10-12, y fullnode `c0878c3f` (v0.8.0): `deploy/genesis-chain21.json` (26 validators, no `aggregation` section), `crates/randprotocol-prover/src/wire.rs` (the wallet hands the prover the binding), fullnode main `cb0a32ea`: `deploy/prover/README.md` (status 2026-10-01 06:00 UTC: four members), randprotocol.org `rand_status` on chain 20, 2026-10-01, and on chain 21, 2026-10-12: `aggregation` all zero, 26 peers, this tree's Proofs, Consensus, Mempool and Validator and aggregator hardware pages. Cuando el código y esta página no coinciden, el código tiene razón; avísenos.