Rand Protocol
Dokumentacja
Ekosystem

Walidatorzy, agregatory i proverzy

Jak role w Rand współpracują ze sobą: która maszyna dowodzi transfer i jakim kluczem, co węzeł RPC sprawdza, zanim rozgłosi transfer, jak walidatorzy porządkują, weryfikują i finalizują bloki bez generowania jakichkolwiek dowodów oraz gdzie agregator zamykałby okno dowodów po włączeniu agregacji.

Użyj tej strony, aby zobaczyć, kto co robi, gdy transfer przechodzi przez Rand. Dowodzenie jest kosztowne, a weryfikacja tania, więc praca jest podzielona właśnie wzdłuż tej linii. Dowody tworzy strona nadawcy. Validatorzy jedynie je sprawdzają, porządkują i głosują. Agregator, po włączeniu, składałby wiele dowodów w jeden. Rysunek śledzi jeden transfer od portfela do finalnego bloku; kolejne sekcje omawiają po kolei każdą rolę.

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
Na telefonie przesuń rysunek w bok. Jeden transfer, od góry do dołu. Linie ciągłe to to, co łańcuch 20 robi dziś; przerywane pole i przerywana strzałka to agregacja bloków, która jest zbudowana i scalona, ale nie znajduje się w genesis łańcucha 20.

Droga jednego transferu

  1. Portfel buduje transfer. Wybiera wejściowe noty, pobiera ich ścieżki Merkle, buduje cztery wyjścia i zamyka każde w kopercie ML-KEM-768. Następnie oblicza wiązanie transakcji (ang. binding), czyli hash wszystkiego poza dowodami (Transakcje).
  2. Portfel sam dowodzi autoryzację. Jest to dowód tier-10 nad kluczem wydawania i świeżą solą, kwestia kilku sekund. To jedyny dowód, który dotyka klucza wydawania, i zawsze powstaje na własnej maszynie portfela.
  3. Dowód pakietu powstaje tam, gdzie jest na niego pamięć. Ten dowód tier-14 wykazuje własność, przynależność, nullifiery i bilans, a jego szczyt zużycia pamięci to około 6 GB. Aplikacja desktopowa oraz telefon z około 8 GB tworzą go samodzielnie. Mniejsze urządzenie zleca zadanie sparowanemu proverowi: takiemu, który sam prowadzisz, albo puli validatorów pod adresem prover.randprotocol.org. Do każdego z nich trafia klucz podglądu i sól, nigdy klucz wydawania (Dowody).
  4. Węzeł RPC sprawdza dowód. Każdy węzeł, do którego portfel wysyła transakcję, przelicza skrót pakietu, weryfikuje oba dowody względem wiązania, sprawdza opłatę i dopiero wtedy rozsyła transakcję do swoich peerów (Dowody, Mempool).
  5. Validatorzy porządkują i finalizują transakcję. Lider widoku bierze transakcje, które nadal obowiązują, od najlepszej opłaty za KiB, i proponuje blok. Każdy validator ponownie weryfikuje każdy dowód w bloku i głosuje. Blok zostaje zatwierdzony, gdy trzy certyfikaty kworum łańcuchowo się na nim opierają w kolejnych widokach, co wymaga 18 z 26 validatorów łańcucha 20 pozostających online (Konsensus).
  6. Blok jest finalny i każdy może go sprawdzić. Transakcja jest finalna, gdy rand_getTransaction zwraca blok. Węzeł, który synchronizuje się później, ponownie weryfikuje każdy certyfikat i każdy dowód, zamiast ufać podpisom.

Role

rolaco robidowodzi?co widziuruchamia
portfelbuduje, autoryzuje i wysyła transfery oraz wywołania; skanuje łańcuch własnymi kluczamizawsze dowód autoryzacji; dowód pakietu, gdy urządzenie ma pamięćwszystko o własnych notachaplikacje ze strony Klienci lub rand; w łańcuchu 20 Rand Wallet lub rand v0.6.8 albo nowszy
delegowany provertworzy dowód pakietu dla sparowanego z nim portfela; każdą odpowiedź portfel sprawdza, zanim cokolwiek zostanie wysłanewyłącznie dowody pakietuklucz podglądu sparowanego portfela: całą jego historię, przeszłą i przyszłą; nie może wydawaćrand-prover run lub rand-node run --prover
pula proverów validatorówdelegowany prover prowadzony przez cztery hosty, dwóch validatorów i dwie maszyny, które tylko dowodzą, pod jedną nazwą i jednym kluczem, dla portfeli bez własnego providera; bez opłatywyłącznie dowody pakietuto samo co każdy delegowany prover, dla każdego portfela, który się z nią parujeprover.randprotocol.org, odcisk RGTF-7HKJ-XZFV-GQ1J
węzeł RPC (obserwator)synchronizuje się, ponownie weryfikuje każdy dowód, obsługuje JSON-RPC, rozsyła zweryfikowane transakcje; bez głosunietylko pola publiczne: zobowiązania, nullifiery, zapieczętowane koperty, dowodyrand-node run
validatorwszystko, co robi obserwator, a ponadto proponuje bloki w swoich widokach i głosuje w HotStuffnietylko pola publicznerand-node run --validator
agregatortworzy jeden rekurencyjny dowód nad oknem sfinalizowanych dowodów pakietów i przesyła go do zapieczętowania w blokutak, największe dowody w siecitylko pola publiczne i dowodyrand-node aggregate --watch, w łańcuchu z sekcją aggregation

Dowodzenie i walidacja to osobne zadania, a validator nie potrzebuje sprzętu do dowodzenia. Dwaj z czterech członków puli to validatorzy, którzy dodatkowo uruchamiają providera jako usługę; pozostałe dwa to dedykowane maszyny proverów, które nie mają klucza validatora. Prowadzenie puli nie jest częścią walidacji. Rozmiary dla każdej roli oraz zmierzone zużycie pamięci przy dowodzeniu dla każdego tieru znajdują się na stronie Sprzęt validatora i agregatora.

Czego może dowiedzieć się każda rola

Prywatność transferu zależy od tego, kto posiada który klucz, a nie od zaufania do sieci:

  • Validatorzy, węzły RPC i eksplorator widzą to, co widzi każdy węzeł: zobowiązania, nullifiery, zapieczętowane koperty, opłatę i dowody. Nie widzą kwoty, aktywa, nadawcy ani odbiorcy.
  • Delegowany prover, w tym pula, otrzymuje klucz podglądu. Dzięki niemu może odczytać całą historię sparowanego portfela. Nigdy nie może wydawać, ponieważ dowód autoryzacji nad kluczem wydawania powstaje na maszynie portfela. Sparowanie z pulą oznacza decyzję o pokazaniu tej historii jej operatorom. Jeśli ma pozostać prywatna, dowodź na własnym urządzeniu lub prowadź własnego providera.
  • Delegowany prover nie może oszukać portfela. Portfel odczytuje skrót z każdego otrzymanego dowodu, sprawdza rozmiar i weryfikuje go lokalnie, więc błędny dowód nigdy nie trafia do węzła.

Agregacja: zbudowana, nie włączona

Dziś każdy blok niesie każdy surowy dowód, około 2,85 MB na transfer, więc blok 20 MiB mieści około siedmiu transferów. Agregacja bloków jest odpowiedzią fullnode’a. Agregator bierze dowody pakietów z okna sfinalizowanych bloków (rand_getUnsealed), tworzy jeden rekurencyjny dowód, który weryfikuje je wszystkie, i przesyła go. Blok, który go zawiera, pieczętuje okno. Validatorzy weryfikują wtedy jeden agregat zamiast N dowodów, a węzły mogą porzucić objęte surowe dowody. Agregatorzy są objęci depozytem i działają bez zezwoleń, pracują na maszynach klasy GPU i otrzymują udział w dowodzeniu objętych pakietów oraz subsydium blokowe w nowych RAND.

Jest zbudowana i scalona, ale nie jest aktywna. Wymaga sekcji aggregation w genesis, a łańcuch 20 jej nie ma, więc rand_status zgłasza wszystkie liczniki agregacji jako zero. Zanim będzie można ją włączyć, trzeba ponownie zmierzyć kształt jej pakietu przy obecnym zestawie ograniczeń oraz przeprowadzić ćwiczenie ze sfałszowanym agregatem przeciwko weryfikatorowi rekurencji. W łańcuchu z podzieloną autoryzacją pieczętowałaby ponadto tylko dowody pakietów, a nie dowody autoryzacji (Dowody).

Ostatnio zweryfikowano względem commitu fullnode c0878c3f (łańcuch 21) dnia 2026-10-12, a także 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. Jeśli kod i ta strona się różnią, rację ma kod; prosimy o zgłoszenie.