Rand Protocol
Documentazione
Ecosistema

Client su ogni dispositivo

Il Rand Wallet su iPhone, Android, laptop, desktop e nel browser - un unico core in Rust costruito con i crate del full node stesso su ogni dispositivo, quali di essi generano da soli la prova di un trasferimento e quali affidano la prova del bundle a un prover, dove ciascuno custodisce la spend key e come tutti raggiungono la rete.

Usa questa pagina per vedere cosa gira su ogni tipo di dispositivo e perché i wallet si comportano in modo diverso. Ogni Rand Wallet è lo stesso wallet con un guscio diverso. Un unico core in Rust, costruito a partire dai crate del full node stesso, custodisce le chiavi ed esegue la crittografia su ogni dispositivo. L’unica vera differenza è la memoria: la prova del bundle raggiunge un picco di circa 6 GB. Un desktop o un telefono di fascia alta la produce sul momento, mentre qualsiasi dispositivo più piccolo affida quella singola prova a un prover. I download e i passaggi di compilazione di ogni client sono su /clients.

Rand Wallet clients and the network Five devices: iPhone, Android phone, laptop, desktop and browser. Each runs the same Rust core, packaged as an XCFramework, a native library, a linked crate in the desktop app, or WebAssembly. Phones prove on devices with about 8 GB of memory, laptops and desktops prove on the machine, and the browser always pairs a prover. When a device cannot prove, the bundle job goes to the desktop app, a rand-prover you run, or the validators' pool, which receive the viewing key and never the spend key. Every client submits to any RPC node, and the validators order and finalise the transaction. iPhone iOS app · Swift Android Android app · Java Laptop desktop app · Tauri Desktop macOS · Windows · Linux Browser Chrome · Firefox · web proves with ~8 GB else pairs a prover proves with ~8 GB else pairs a prover proves on the machine 8 GiB RAM or more proves on the machine and for your browser always pairs a prover 4 GiB WebAssembly cap XCFramework native library linked crate linked crate WebAssembly One Rust core, built from the full node's own crates spend key and rand1 address · ML-KEM-768 envelopes · the zkVM prover · one key file on every device bundle job: viewing key + salt signed transaction, two proofs Prover, when the device has no room the desktop app on the same computer a rand-prover you run the validators' pool · prover.randprotocol.org never sent the spend key; every proof is checked by the wallet The network any RPC node verifies and gossips validators order, vote, finalise wallets scan blocks with their keys see Validators, aggregators and provers
Su un telefono, scorri la figura in orizzontale. Cinque shell su un unico core. I badge evidenziati sono i client che producono una prova di trasferimento sul dispositivo che hai in mano; il riquadro tratteggiato è il punto in cui va la prova del bundle quando il dispositivo non può produrla.

Un core, cinque forme

dispositivo e clientil core al suo internoprova un trasferimentodove è custodita la chiave di spesa
iPhone: l’app iOS, iOS 16 o successivoun XCFrameworkcon circa 8 GB di memoria, in uno o due minuti; altrimenti tramite un prover associatoil Keychain, solo mentre il dispositivo è sbloccato; mai sincronizzata
Android: l’app Android, Android 8 o successivouna libreria nativacon circa 8 GB di memoria, in un servizio in primo piano; altrimenti tramite un prover associatocifrata con una chiave custodita dall’Android Keystore
Laptop e desktop: l’app desktop per macOS, Windows e Linuxil crate Rust, collegato staticamentesulla macchina, circa un minuto su una CPU di laptop; non ne avvia una con meno di 8 GiB di RAMun vault protetto da password (AES-256-GCM, PBKDF2 a 600.000 iterazioni); una volta sbloccata, solo nella memoria dell’app
Browser: le estensioni per Chrome e Firefox, il wallet webWebAssemblymai: WebAssembly dispone di 4 GiB, quindi la prova del bundle la produce sempre un prover associatolo stesso tipo di vault; una volta sbloccata, nella memoria della pagina o nello storage di sessione della scheda

Un laptop e un desktop eseguono la stessa app desktop. L’unica differenza è la memoria di cui la macchina dispone per produrre le prove. Un wallet creato su uno qualsiasi di questi dispositivi si importa negli altri e nella riga di comando rand, e viceversa: il file della chiave, il formato dell’indirizzo e le regole sono gli stessi ovunque.

Quale wallet invia sulla chain 20

La chain 20, attiva dal 2026-10-01 06:17 UTC, lega ogni prova e ogni messaggio firmato al proprio hash di genesi, quindi per inviare su di essa un wallet richiede il fullnode v0.6.8. Rand Wallet v0.6.8, rilasciato il 2026-10-01, è quel wallet: il core di ogni app incorpora il fullnode v0.6.8 e, per impostazione predefinita, la prova del bundle viene prodotta dal prover di RandProtocol, con un prover proprio come scelta privata. Le app 0.6.7, costruite per la chain 19, non possono inviare sulla chain 20; aggiornale. Anche la riga di comando rand della release fullnode v0.6.8 (Riga di comando) può inviare e usa lo stesso file della chiave.

Cosa fa ogni client

  • Tiene la chiave di spesa sul dispositivo. Viene generata dalla casualità del sistema operativo e conservata cifrata. Nessun client la invia mai altrove, e la rete non ha account a cui inviarla.
  • Trova le proprie note. Scansiona la chain con la propria chiave di visualizzazione, così nessun server sa quali note siano sue.
  • Produce da sé la prova di autorizzazione. Un trasferimento porta con sé due prove. Quella piccola, sulla chiave di spesa, richiede secondi e viene sempre prodotta sul dispositivo (Validatori, aggregatori e prover).
  • Si fa produrre la prova del bundle. La produce sul dispositivo se c’è memoria a sufficienza, altrimenti la ottiene da un prover associato. Ogni prova ricevuta viene verificata prima di inviare qualsiasi cosa.
  • Invia a qualsiasi nodo RPC. Ciò che invia è ciò che ogni nodo vede: impegni, nullifier, buste sigillate, la commissione e le prove.

Associare un prover

Un telefono a corto di memoria, e ogni wallet nel browser, associano un prover per la prova del bundle. Sullo stesso computer lo fa l’app desktop (Impostazioni → Prova per i miei altri dispositivi, poi incolla il link in Impostazioni → Prover del wallet nel browser). Altrove si tratta di un rand-prover che esegui tu (Eseguire un nodo), oppure del pool dei validatori su prover.randprotocol.org.

A un prover associato vengono inviati la chiave di visualizzazione del wallet e un salt monouso, mai la chiave di spesa. Può leggere l’intera cronologia di quel wallet, passata e futura, e non può spendere. Associa solo un prover a cui mostreresti quella cronologia. Per la massima riservatezza, produci le prove su un desktop o su un telefono da 8 GB, oppure esegui un tuo prover.

Ultima verifica rispetto al commit c0878c3f del fullnode (chain 21) il 2026-10-12 e randprotocol.org `src/data/clients.ts` (the per-client pages under /clients), fullnode `749ca098`: `docs/prover.md` §§1, 9 (the spend key never leaves the wallet; the validators' prover pool), github.com/randprotocol/clients/releases on 2026-10-12: Rand Wallet v0.8.0 (12:24 UTC, tag `0926354`), whose core vendors fullnode v0.8.0 (`c0878c3`) and sends on chain 21 only; github.com/randprotocol/fullnode/releases: v0.8.0 with `rand`, `rand-node`, `rand-prover`, `msauth-vk-production.bin` (06:48 UTC), fullnode `c9c9bd3c`: `crates/randprotocol-core/src/types/binding.rs` (BIND-1). Dove il codice e questa pagina non concordano, ha ragione il codice; segnalacelo.