Rand Protocol
網頁

網頁版 Rand Wallet

同一個錢包,在普通瀏覽器分頁中運行,由僅限本機迴環的小型伺服器在你自己的機器上提供。它刻意不託管於任何地方:網頁錢包的可信程度,取決於提供它的來源,而這個來源由你自己運行。

未托管於任何地方。請從 clients 代碼庫的簽出副本或下方的原始碼壓縮檔運行。

Rand Wallet 圖示
建置技術
JavaScript · WebAssembly 核心
發佈渠道
clients 儲存庫的檢出副本,在你自己的機器上提供服務
系統要求
Node 20 或以上版本;較新的瀏覽器
發送
經由 RandProtocol prover 發送,或使用你自己的 prover
下載

版本 0.8.0

檔案附於 GitHub 上的 v0.8.0 版本發佈;此處的按鈕只是指向這些檔案的連結,本網站不提供任何檔案下載。

  1. 解壓後在其中執行 web/wallet/serve.sh,方法與從 git 檢出副本完全相同。此壓縮檔包含全節點子模組,而 GitHub 自行生成的「Source code」壓縮檔則不包含。
原始碼(.tar.gz)
clients 儲存庫及其子模組,合為一個壓縮檔 · 13.2 MB
下載
rand-wallet-0.8.0-source.tar.gz
SHA-256 91f765f8cb6853914b49b26c1ba76d467c6e02d63a3f590acac3a155b977328d
校驗已下載的檔案
SHA256SUMS
# 將 SHA256SUMS 下載至與檔案相同的資料夾後使用
shasum -a 256 -c SHA256SUMS --ignore-missing     # macOS
sha256sum -c SHA256SUMS --ignore-missing         # Linux

# 或列印單一檔案的校驗和,並與上方的數值比對
shasum -a 256 rand-wallet-0.8.0-source.tar.gz

校驗和相符,表示該檔案與所發佈的檔案一致,但並不表示該檔案是由原始碼建置而成:目前的建置尚未能做到逐位元重現,如果你需要確認這一點,請自行建置。

發送

經由 RandProtocol prover 發送,或使用你自己的 prover

一份捆綁證明的記憶體用量峰值約為 6.2 GB,而瀏覽器只給予 WebAssembly 4 GiB,因此網頁錢包從不自行生成證明。它會構建轉賬交易,交由 prover 生成證明(預設為 RandProtocol prover,或你配對的 prover),在本機驗證該證明,然後提交。

若要避免讓 RandProtocol prover 取得你的歷史記錄,請在同一部電腦上配對 Rand Wallet 桌面應用程式(「設定」→「為我的其他裝置生成證明」),或配對你自己的 rand-prover。進行中的證明只存在於分頁的記憶體內;在證明過程中重新載入頁面會令其消失,且不會發送任何內容。

無法生成證明的裝置,預設使用 RandProtocol 的 prover:由 validator 營運的數部機器(目前四部,位於 https://prover.randprotocol.org 之下),免收費用。自 0.6.9 起,每部機器各有自己的密鑰,由錢包固定(pin)綁定,而錢包會在首次發送前說明此事。為某次發送生成證明的機器,會收到錢包的檢視密鑰及一次性 salt:其營運者可以讀取該錢包的全部歷史記錄,包括每一筆收款和付款,但無法動用資金。花費密鑰從不離開你的裝置,由你的裝置自行生成小型授權證明。如需更高私隱,請在「設定」→「Prover」中選擇你自己的 prover,此後系統一律優先使用它;錢包在提交前會檢驗每一份證明。

配對 prover 的逐步說明:docs/prover.md。

你的密鑰

密鑰存放於何處

花費密鑰是錢包唯一的機密。系統沒有帳戶,也沒有伺服器保存副本:密鑰一旦遺失,無人能夠復原,因此錢包顯示密鑰時,請務必妥善保存。

花費密鑰
以加密形式儲存於 IndexedDB:採用 AES-256-GCM,金鑰由 PBKDF2-SHA256 以 600,000 次迭代衍生。解鎖後只存在於頁面記憶體中,因此重新載入會鎖上錢包。它絕不會出現在 localStorage、URL 或錯誤訊息中。
解鎖
輸入錯誤密碼會被限速,每次嘗試前的等待時間逐步增加,而且計數在重新載入後依然保留。
伺服器
只綁定 127.0.0.1,拒絕任何其他 Host 標頭,只提供靜態檔案,並採用嚴格的 Content-Security-Policy:不允許內嵌腳本,也不允許遠端腳本。
分頁
錢包的兩個分頁可安全共用同一個儲存庫:同一時間只有一個分頁進行掃描,其餘分頁讀取其寫入的內容。
運行

從檢出副本運行

  1. 複製 clients 儲存庫並執行 web/wallet/serve.sh,然後開啟 http://127.0.0.1:8787/。首次運行會建置 WebAssembly 核心,需時數分鐘;其後啟動只是複製檔案。
  2. 如果你在某個遠端 URL 上見到 Rand Wallet,其可信程度,完全等同於運行該伺服器的人。凡涉及重要事項,請使用桌面應用程式或瀏覽器擴充功能。

工具鏈:Rust 1.98.1,已在代碼庫中固定版本,由 rustup 安裝。建置指南涵蓋由全新機器開始建置每個客戶端的步驟。原始碼目錄: web/wallet/, ui/, core/.

網頁版 Rand Wallet
bash
git clone --recurse-submodules https://github.com/randprotocol/clients.git && cd clients
git checkout v0.8.0 && git submodule update --init   # 正式發行版本;core/vendor/fullnode @ v0.8.0 (c0878c3)
web/wallet/serve.sh   # 建置,然後在 http://127.0.0.1:8787/ 提供服務
RAND_WALLET_PORT=9000 web/wallet/serve.sh   # 使用其他連接埠
所有客戶端

在各平台上的功能

建立錢包
在裝置上生成的花費密鑰,只顯示一次供你保存,並由它衍生出 rand1… 地址。可匯入現有密鑰,或 rand CLI 的 wallet.key.json;所有客戶端匯出的都是同一個檔案。
接收與發送
你的餘額是只有你的密鑰才能開啟的 note 的集合;錢包會掃描承諾樹以找出這些 note。轉移 RAND 或任何已列出的 RPL 代幣,是由一份證明授權的一個 4 入 4 出捆綁交易。沒有人能得知發送者、接收者、金額或所轉移的資產。
水龍頭
在設有開放水龍頭的 testnet 上,輕按一下即可鑄造 100 RAND 至只有你能開啟的 note 中。
只披露你選擇披露的內容
複製你的檢視密鑰,並在 RandScan 開啟「My history」,即可查看你發送或接收的每一個 note;或複製單筆付款的交易密鑰,只披露該筆付款而不涉及其他。瀏覽器端的區塊瀏覽器在你的瀏覽器中解密,絕不會將密鑰發送到任何地方。

查看密鑰與交易密鑰會在 randscan.org 開啟。

testnet 說明

發送任何款項之前

鏈
公開端點現時提供 chain 21 服務,自 2026 年 10 月 12 日 10:31 UTC 起上線(於 fullnode v0.8.0 切出)。錢包核心內置 fullnode v0.8.0 (c0878c3),並拒絕任何其他鏈:chain 21 運行約束集 9,因此 0.7.x 版本的錢包無法在其上發送交易,而本版本亦無法在 chain 20 上發送交易。密鑰和地址可沿用;曾掃描 chain 20 的錢包會顯示一次不同鏈的橫幅,並由 chain 21 的創世區塊重新掃描。跨鏈橋的存款和提款維持 0.1% 的 zUSD 手續費,錢包會在你提款前顯示該費用。
RPC 端點
「設定」→「網絡」。預設為 https://rpc.randprotocol.org;任何你能連線的 rand-node RPC 均可使用,已儲存的 URL 在保留前會經過檢查
證明生成
一份捆綁證明的記憶體用量峰值約為 6.2 GB,在筆記型電腦 CPU 上約需一分鐘
狀態
實驗性 testnet 軟件。未經審計。testnet 上的 RAND 沒有真實價值
授權條款
僅限 GPL-3.0,與每個客戶端所連結的全節點 crate 相同
其他客戶端

一個錢包,全平台通用

各處使用相同的密鑰檔案、地址格式和規則:在此建立的錢包可匯入任何其他客戶端,以及 rand CLI。