Rand Protocol
مستندات
اکوسیستم

کلاینت‌ها روی هر دستگاه

Rand Wallet روی iPhone، Android، لپ‌تاپ‌ها، رایانه‌های رومیزی و مرورگر - یک هستهٔ Rust برگرفته از crateهای خود full node روی هر دستگاه؛ اینکه کدام‌یک انتقال را خودشان اثبات می‌کنند و کدام‌یک اثبات بسته را به یک prover می‌سپارند، هر کدام کلید خرج را کجا نگه می‌دارد، و چگونه همگی به شبکه می‌رسند.

از این صفحه برای دیدن این استفاده کنید که روی هر نوع دستگاه چه چیزی اجرا می‌شود و چرا کیف پول‌ها رفتار یکسانی ندارند. هر Rand Wallet همان یک کیف پول است، فقط با پوسته‌ای متفاوت. یک هسته Rust که از crateهای خود full node ساخته شده است، کلیدها را نگه می‌دارد و روی هر دستگاه محاسبات رمزنگاری را انجام می‌دهد. تنها تفاوت واقعی حافظه است: اثبات بسته (bundle proof) در اوج به حدود ۶ گیگابایت نیاز دارد. رایانه رومیزی یا گوشی بزرگ آن را همان لحظه می‌سازد و هر دستگاه کوچک‌تر همین یک اثبات را به یک 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با حدود ۸ گیگابایت حافظه، در یک یا دو دقیقه؛ در غیر این صورت از طریق یک prover جفت‌شدهKeychain، فقط تا زمانی که دستگاه باز است؛ هرگز همگام‌سازی نمی‌شود
Android: برنامه Android، Android 8 یا بالاتریک کتابخانه بومیبا حدود ۸ گیگابایت حافظه، در یک foreground service؛ در غیر این صورت از طریق یک prover جفت‌شدهرمزگذاری‌شده با کلیدی که Android Keystore نگه می‌دارد
لپ‌تاپ و رایانه رومیزی: برنامه دسکتاپ برای macOS، Windows و Linuxcrate مربوط به Rust، به‌صورت مستقیم پیوند‌شدهروی خود دستگاه، حدود یک دقیقه روی CPU لپ‌تاپ؛ زیر ۸ GiB حافظه RAM آن را آغاز نمی‌کندگاوصندوق گذرواژه (AES-256-GCM، PBKDF2 با ۶۰۰٬۰۰۰ تکرار)؛ پس از بازکردن، فقط در حافظه برنامه
مرورگر: افزونه‌های Chrome و Firefox، کیف پول وبWebAssemblyهرگز: WebAssembly فقط 4 GiB دریافت می‌کند، پس اثبات بسته همیشه را یک prover جفت‌شده می‌سازدهمان نوع گاوصندوق؛ پس از بازکردن، در حافظه صفحه یا در session storage همان زبانه

لپ‌تاپ و رایانه رومیزی همان برنامه دسکتاپ را اجرا می‌کنند. تنها تفاوت حافظه‌ای است که دستگاه برای اثبات در اختیار دارد. کیف پولی که روی هر یک از آن‌ها ساخته شود، در بقیه و در خط فرمان rand وارد می‌شود و برعکس: فایل کلید، قالب نشانی و قواعد همه‌جا یکسان است.

کدام کیف پول روی chain 20 ارسال می‌کند

Chain 20 که از 2026-10-01 ساعت 06:17 UTC فعال است، هر اثبات و هر پیام امضاشده را به genesis hash خود پیوند می‌دهد؛ بنابراین کیف پول برای ارسال روی آن به fullnode v0.6.8 نیاز دارد. Rand Wallet v0.6.8 که در 2026-10-01 منتشر شد، همان کیف پول است: هسته هر برنامه fullnode v0.6.8 را در خود دارد، و به‌طور پیش‌فرض اثبات بسته را prover شرکت RandProtocol می‌سازد و prover شخصی خودتان گزینه خصوصی است. برنامه‌های 0.6.7 که برای chain 19 ساخته شده‌اند نمی‌توانند روی chain 20 ارسال کنند؛ آن‌ها را به‌روز کنید. خط فرمان rand از انتشار fullnode v0.6.8 (خط فرمان) نیز ارسال می‌کند و همان فایل کلید را می‌پذیرد.

هر کلاینت چه می‌کند

  • کلید خرج‌کردن را روی دستگاه نگه می‌دارد. این کلید از تصادفی‌بودن سیستم‌عامل تولید می‌شود و رمزگذاری‌شده ذخیره می‌شود. هیچ کلاینتی آن را به جایی نمی‌فرستد، و شبکه حسابی ندارد که آن را به آن بفرستد.
  • note‌های خود را پیدا می‌کند. زنجیره را با کلید مشاهده (viewing key) خود پویش می‌کند، پس هیچ سروری نمی‌داند کدام note‌ها از آنِ اوست.
  • اثبات احراز مجوز را خودش می‌سازد. هر انتقال دو اثبات دارد. اثبات کوچک، روی کلید خرج‌کردن، چند ثانیه طول می‌کشد و همیشه روی دستگاه ساخته می‌شود (اعتبارسنج‌ها، aggregatorها و proverها).
  • اثبات بسته را می‌گیرد. اگر حافظه کافی باشد آن را روی دستگاه می‌سازد، وگرنه از یک prover جفت‌شده می‌گیرد. هر اثباتی که برمی‌گردد پیش از ارسال هر چیزی بررسی می‌شود.
  • به هر گره RPC ارسال می‌کند. آنچه می‌فرستد همان چیزی است که هر گره می‌بیند: commitmentها، nullifierها، envelopeهای مهر‌شده، کارمزد و اثبات‌ها.

جفت‌کردن یک prover

گوشی‌ای که حافظه کم دارد و هر کیف پول مرورگر، برای اثبات بسته یک prover را جفت می‌کنند. روی همان رایانه، برنامه دسکتاپ این کار را می‌کند (Settings → Prove for my other devices، سپس پیوند را در Settings → Prover کیف پول مرورگر بچسبانید). در جاهای دیگر، یک rand-prover است که خودتان اجرا می‌کنید (راه‌اندازی یک گره)، یا استخر اعتبارسنج‌ها در prover.randprotocol.org.

به prover جفت‌شده کلید مشاهده کیف پول و یک salt یک‌بارمصرف فرستاده می‌شود، هرگز کلید خرج‌کردن. این prover می‌تواند کل تاریخچه آن کیف پول را، گذشته و آینده، بخواند و نمی‌تواند خرج کند. فقط proverی را جفت کنید که حاضرید آن تاریخچه را به او نشان دهید. برای حریم خصوصی کامل، روی یک رایانه رومیزی یا گوشی ۸ گیگابایتی اثبات کنید، یا prover خودتان را اجرا کنید.

آخرین بار با کامیت c0878c3f از fullnode (زنجیرهٔ 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) بررسی شد. هرجا کد و این صفحه با هم اختلاف دارند، حق با کد است؛ به ما اطلاع دهید.