使用本頁可了解各類裝置上運行甚麼,以及各錢包的行為為何有所不同。每一個 Rand Wallet 都是同一個錢包,只是外殼不同。同一個 Rust 核心由全節點自身的 crate 構建,在每部裝置上持有密鑰並執行密碼學運算。唯一真正的差別在於記憶體:一次捆綁證明(bundle proof)的峰值約為 6 GB。桌面電腦或大型手機可即場完成,較小的裝置則把這一個證明交給證明者(prover)處理。各客戶端的下載及構建步驟載於 /clients。
一個核心,五種形態
| 裝置及客戶端 | 內置的核心 | 證明轉賬 | 花費密鑰的存放位置 |
|---|---|---|---|
| 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 手機上證明,或自行運行證明者。