از این صفحه برای دیدن این استفاده کنید که روی هر نوع دستگاه چه چیزی اجرا میشود و چرا کیف پولها رفتار یکسانی ندارند. هر Rand Wallet همان یک کیف پول است، فقط با پوستهای متفاوت. یک هسته Rust که از crateهای خود full node ساخته شده است، کلیدها را نگه میدارد و روی هر دستگاه محاسبات رمزنگاری را انجام میدهد. تنها تفاوت واقعی حافظه است: اثبات بسته (bundle proof) در اوج به حدود ۶ گیگابایت نیاز دارد. رایانه رومیزی یا گوشی بزرگ آن را همان لحظه میسازد و هر دستگاه کوچکتر همین یک اثبات را به یک prover میسپارد. بارگیریها و مراحل ساخت هر کلاینت در /clients آمده است.
یک هسته، پنج شکل
| دستگاه و کلاینت | هسته درون آن | اثبات انتقال | محل نگهداری کلید خرجکردن |
|---|---|---|---|
| iPhone: برنامه iOS، iOS 16 یا بالاتر | یک XCFramework | با حدود ۸ گیگابایت حافظه، در یک یا دو دقیقه؛ در غیر این صورت از طریق یک prover جفتشده | Keychain، فقط تا زمانی که دستگاه باز است؛ هرگز همگامسازی نمیشود |
| Android: برنامه Android، Android 8 یا بالاتر | یک کتابخانه بومی | با حدود ۸ گیگابایت حافظه، در یک foreground service؛ در غیر این صورت از طریق یک prover جفتشده | رمزگذاریشده با کلیدی که Android Keystore نگه میدارد |
| لپتاپ و رایانه رومیزی: برنامه دسکتاپ برای macOS، Windows و Linux | crate مربوط به 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 خودتان را اجرا کنید.