Rand Protocol
文檔
生態系統

適用於各種裝置的客戶端

Rand Wallet 支援 iPhone、Android、手提電腦、桌面電腦及瀏覽器——每種裝置均採用同一個 Rust 核心,取自全節點自身的 crate;當中哪些裝置自行證明轉賬,哪些把批次證明交予 prover 處理,各自在何處保管花費密鑰,以及它們如何接入網絡。

使用本頁可了解各類裝置上運行甚麼,以及各錢包的行為為何有所不同。每一個 Rand Wallet 都是同一個錢包,只是外殼不同。同一個 Rust 核心由全節點自身的 crate 構建,在每部裝置上持有密鑰並執行密碼學運算。唯一真正的差別在於記憶體:一次捆綁證明(bundle proof)的峰值約為 6 GB。桌面電腦或大型手機可即場完成,較小的裝置則把這一個證明交給證明者(prover)處理。各客戶端的下載及構建步驟載於 /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
在手機上,請把圖表橫向滑動。五種外殼共用一個核心。強調色徽章標示的是在你手持裝置上證明轉賬的客戶端;虛線框是裝置無法自行證明時,捆綁證明被送往之處。

一個核心,五種形態

裝置及客戶端內置的核心證明轉賬花費密鑰的存放位置
iPhone:iOS 應用程式,iOS 16 或以上XCFramework記憶體約 8 GB 時,一至兩分鐘內完成;否則透過已配對的證明者Keychain,僅在裝置解鎖時可用;從不同步
Android:Android 應用程式,Android 8 或以上原生程式庫記憶體約 8 GB 時,在前景服務中完成;否則透過已配對的證明者以 Android Keystore 所持有的密鑰加密
手提電腦及桌面電腦:適用於 macOS、Windows 及 Linux 的桌面應用程式內嵌連結的 Rust crate在本機完成,手提電腦 CPU 上約需一分鐘;RAM 不足 8 GiB 時不會啟動證明密碼保險庫(AES-256-GCM,PBKDF2 迭代 600,000 次);解鎖後僅存在於應用程式的記憶體中
瀏覽器:Chrome 及 Firefox 擴充功能、網頁錢包WebAssembly從不:WebAssembly 只有 4 GiB,因此捆綁證明一律由已配對的證明者完成同類保險庫;解鎖後存在於頁面的記憶體或分頁的 session storage 中

手提電腦與桌面電腦運行的是同一個桌面應用程式,唯一差別在於機器可供證明運算使用的記憶體。在其中任何一部建立的錢包,都可匯入其他裝置及 rand 命令列,反之亦然:密鑰檔案、地址格式及規則在各處皆相同。

哪個錢包可在 chain 21 上發送

Chain 21 自 2026-10-12 10:31 UTC 起上線,運行約束集 9:所有驗證者密鑰及證明編碼均已更改,因此錢包需要 fullnode v0.8.0 才能在其上發送,舊版錢包產生的證明甚至無法解碼(chain 20 引入的創世綁定仍然適用於其上)。於 2026-10-12 發布的 Rand Wallet v0.8.0 正是這個錢包:每個應用程式的核心都內置 fullnode v0.8.0,每個應用程式都可為私密多重簽名簽署,而捆綁證明預設由 RandProtocol 證明者產生,自行運行證明者則是私密之選。為 chain 20 構建的 0.7.x 應用程式會拒絕 chain 21,而 v0.8.0 會拒絕 chain 20;密鑰、地址及檢視密鑰可沿用,曾掃描 chain 20 的錢包會顯示一次不同鏈橫幅,然後從 chain 21 的創世區塊重新掃描。來自 fullnode v0.8.0 發布的 rand 命令列(命令列)同樣可以發送,並使用相同的密鑰檔案。

每個客戶端所做的事

  • 把花費密鑰保留在裝置上。 密鑰由作業系統的隨機數產生,並加密存放。沒有任何客戶端會把它發送到別處,網絡上也沒有可供發送的帳戶。
  • 自行找出屬於自己的 note。 它以檢視密鑰掃描區塊鏈,因此沒有任何伺服器知道哪些 note 屬於它。
  • 自行產生授權證明。 一筆轉賬帶有兩個證明。較小的一個針對花費密鑰,只需數秒,並一律在裝置上完成(驗證者、聚合者及證明者)。
  • 取得捆綁證明。 若有足夠記憶體,則在裝置上完成,否則由已配對的證明者提供。取回的每個證明在提交任何內容之前都會經過檢驗。
  • 提交至任何 RPC 節點。 它所發送的內容,就是每個節點所看到的內容:承諾、nullifier、密封信封、費用及證明。

配對證明者

記憶體不足的手機及所有瀏覽器錢包,都需為捆綁證明配對一個證明者。在同一部電腦上,由桌面應用程式負責(設定 → 為我的其他裝置證明,然後把連結貼到瀏覽器錢包的設定 → 證明者)。在其他情況下,則是由你運行的 rand-prover(運行節點),或位於 prover.randprotocol.org 的驗證者池。

已配對的證明者會收到錢包的檢視密鑰及一次性 salt,絕不會收到花費密鑰。它可讀取該錢包的全部歷史,包括過去與未來,但無法花費。請只配對你願意讓其查看該歷史的證明者。如需完全私隱,請在桌面電腦或 8 GB 手機上證明,或自行運行證明者。

最後一次對照 fullnode 提交 c0878c3f(chain 21)核實的日期為 2026-10-12,並已核對 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)。 如代碼與本頁內容有出入,以代碼為準;請告知我們。