Rand Protocol
دستاویزات
آغاز

تعارف

Rand Protocol کیا ہے، آج عوامی testnet پر کیا چل رہا ہے، اور اس پر تعمیر کے لیے RAND کیسے حاصل کیا جائے۔

یہ صفحہ پڑھ کر فیصلہ کیجیے کہ کس چیز کے مقابل تعمیر کرنی ہے اور آغاز کہاں سے کرنا ہے: چند پیراگراف میں چین کا ماڈل، زندہ testnet کے پیرامیٹرز، آزمائشی RAND حاصل کرنے کا طریقہ، اور باقی دستاویزات کا نقشہ۔

Rand Protocol کیا ہے

Rand ایک پوسٹ کوانٹم مخفی چین ہے۔ اس کا مقامی سکہ RAND ہے، اور RAND ایک مکمل طور پر مخفی پول میں رہتا ہے: چین پر نہ کوئی اکاؤنٹ ہیں نہ بیلنس، صرف نوٹ کمٹمنٹس اور نلیفائرز ہیں، اور ہر منتقلی ایک زیرو نالج ثبوت ہے کہ چار نوٹ چار دوسرے نوٹوں میں بدل گئے (غیر استعمال شدہ خانوں کو فرضی نوٹ پُر کرتے ہیں)، یہ ظاہر کیے بغیر کہ کون سا اثاثہ منتقل ہوا۔ RAND اور چین کے اپنے معیار RPL کا ہر ٹوکن اسی ایک پول میں شریک ہیں۔ یہی سکہ خفیہ پروگراموں کی ادائیگی بھی کرتا ہے: یہ RISC-V پروگرام ہیں جو چین سے باہر ایک زیرو نالج ورچوئل مشین کے اندر چلتے ہیں اور اپنے ان پٹس کے بجائے ایک ثبوت کے ساتھ چین پر تصفیہ پاتے ہیں۔

ہر بنیادی جزو اس طرح منتخب کیا گیا ہے کہ وہ کوانٹم حریف کے مقابلے میں قائم رہے:

پرتکیا چلتا ہے
دستخطDilithium2 (لیٹس پر مبنی)۔ ویلیڈیٹرز اسی سے بلاکس اور ووٹوں پر دستخط کرتے ہیں؛ فاسیٹ، اسٹیکنگ کی کارروائیوں اور برج رجسٹریشنز پر بھی اسی سے دستخط ہوتے ہیں۔ والیٹ کبھی کسی ٹرانزیکشن پر دستخط نہیں کرتا: بنڈل اپنے ثبوت کے ذریعے خود اپنی اجازت دیتا ہے۔
نوٹ کی خفیہ کاریML-KEM-768 کلیدی انکیپسولیشن کے ساتھ ChaCha20-Poly1305۔ چین پر ہر نوٹ کے ساتھ ایک لفافہ ہوتا ہے جسے صرف اس کا مالک (اور اس کا بھیجنے والا) کھول سکتا ہے۔
ہیشنگپتوں، ٹرانزیکشن آئی ڈیز، اسٹیٹ روٹ اور ثبوتی نظام سے باہر ہر چیز کے لیے ڈومین علیحدگی کے ساتھ BLAKE3؛ نوٹوں، نلیفائرز، کمٹمنٹ ٹری اور ثبوت کے اندر ہر چیز کے لیے Goldilocks فیلڈ پر Poseidon2۔
ثبوتپوشیدہ FRI کے ساتھ ایک Plonky3 بیچ STARK (80 سوالات، بلو اپ 8، 20 پروف آف ورک بٹس)۔ شفاف: نہ کوئی قابلِ اعتماد سیٹ اپ، نہ کوئی پیئرنگ کرو، اور مفروضہ صرف ایک تصادم مزاحم ہیش ہے۔
خفیہ کمپیوٹیشنRand zkVM، ایک RV32IM مشین جس کا ثبوت اسی STARK کے تحت بنتا ہے۔ پروگرام کی شناخت سرکٹ کے اندر ایک ڈائجسٹ سے ہوتی ہے، اور تصدیق کنندہ کبھی ایک بھی انسٹرکشن ورڈ نہیں دیکھتا۔
اتفاقِ رائےChained HotStuff BFT: دو تہائی سے زیادہ کے اسٹیک وزنی کورمز، باری باری لیڈرز، اور لگاتار تین ویوز پر مبنی کمٹ کا قاعدہ۔
ذخیرہ اور نیٹ ورکنگہر نوڈ پر ایک RocksDB، fsync شدہ کمٹس اور آغاز پر سالمیت کی جانچ کے ساتھ؛ libp2p (TCP، Noise، Yamux، gossipsub، Kademlia، اور LANs پر mDNS)۔

حوالہ جاتی نفاذ Rust میں randprotocol/fullnode ہے: rand-node بائنری نوڈ ہے، rand بائنری والیٹ ہے، اور JSON-RPC میتھڈز کا سابقہ rand_ ہے۔ ایکسپلورر randscan.org ہے۔

testnet: چین 20

عوامی بیڑا چین 20 چلاتا ہے، جو fullnode v0.6.8 پر 2026-10-01 06:17 UTC سے زندہ ہے۔ چینز 15 تا 19 ریٹائر ہو چکی ہیں۔ چار دنوں میں چار چینز کاٹی گئیں، ہر ایک کسی ایسی تبدیلی کے لیے جو ہر ثبوت یا ٹرانزیکشن کی ساخت کو بدل دیتی ہے:

  • چین 16 (2026-09-28، fullnode v0.6.1) نے zkVM کو قیود کے مجموعے 7 پر منتقل کیا، جو اسے چھپا دیتا ہے جو ثبوت پہلے چھوٹے نجی ان پٹس کے بارے میں ظاہر کر دیتا تھا، اور hardening_v6 قواعد فعال کیے۔
  • چین 17 (2026-09-29، v0.6.3) نے منتقلی کی اجازت کو اس کے ثبوت سے الگ کیا: ہر بنڈل خرچ کلید سے بنا ایک دوسرا، چھوٹا ثبوت ساتھ رکھتا ہے، تاکہ بڑا ثبوت ایسی مشین بنا سکے جس کے پاس صرف ناظر کلید ہو۔
  • چین 18 (2026-09-29، v0.6.7) خفیہ کالز کی پیمائش گیس میں کرتی ہے (قیود کا مجموعہ 8) اور ہر نوٹ کے لفافے میں خفیہ میمو فعال کرتی ہے۔
  • چین 20 (2026-10-01، v0.6.8) ہر ثبوت اور ہر دستخط شدہ پیغام کو جینیسس ہیش سے منسلک کرتی ہے، پروگرام اسٹیٹ (RPL-2) شامل کرتی ہے، zUSD برج کی منٹنگ اور برننگ پر فیس لیتی ہے، اور نیچے دی گئی جدول میں درج audit-v6 قواعد فعال کرتی ہے۔

چین 19 (2026-10-01 03:43 UTC، v0.6.7) اسی بلڈ پر چین 18 کی دوبارہ جینیسس تھی اور اس نے کوئی قاعدہ نہیں بدلا۔ چین 18 کو بلندی 143,776 پر روکا گیا، اور چین 19 کو بلندی 141,935 کے اسنیپ شاٹ سے کاٹا گیا۔ اس کی جینیسس چین 18 کی جینیسس سے صرف چین آئی ڈی، ٹائم اسٹیمپ، منتقل کیے گئے نوٹوں اور برج سیکشن میں مختلف تھی: Ethereum، Binance Smart Chain اور Tron اینڈ پوائنٹس کے لیے نئے ایمیٹرز، اور ترتیبی کاؤنٹرز آگے منتقل کیے گئے۔

چین 20، چین 19 کا ہارڈ فورک ہے: اس کی جینیسس بلندی 7,258 پر چین 19 کے اسنیپ شاٹ سے کاٹی گئی، چین 19 کو بلندی 7,700 پر روکا گیا، اور تمام 26 ویلیڈیٹرز کو ایک ساتھ چین 20 پر دوبارہ شروع کیا گیا، انہی کلیدوں، پیئر آئی ڈیز اور بوٹ اسٹریپ نوڈز کے ساتھ۔ چین 19 اور چین 18 ریٹائر ہو چکی ہیں۔ چین 20 پر بھیجنے کے لیے والیٹ کو v0.6.8 درکار ہے: پرانے والیٹ کے ثبوت اور دستخط جینیسس سے منسلک نہیں ہوتے، اور چین انہیں رد کر دیتی ہے۔

ہر ایک نئی چین ہے۔ آپریٹر کے والیٹس میں RAND بیلنس اور گردش میں موجود zUSD اگلی جینیسس میں منتقل کیے گئے، اور اس کے سوا کچھ نہیں: ایک چین پر تعینات پروگرام اگلی چین پر موجود نہیں ہوتا۔ یہ تجرباتی سافٹ ویئر ہے: اس کا آڈٹ نہیں ہوا، اور اس پر RAND کی کوئی قدر نہیں۔

چین 20 پر پروگرام اسٹیٹ رکھ سکتے ہیں: RPL-2 کے پروگرام سیلز، پروگرام والٹس اور Invoke کارروائی فعال ہیں۔

چین آئی ڈی20 (rand_chainId)
جینیسس ہیش6210cf071a390d7ac61d8cbea5dd9d139d1a493a862b54a45a498f36af2d5135
جینیسس فائلfullnode ریپوزٹری میں deploy/genesis-chain20.json
بلڈfullnode v0.6.8 (ٹیگ c9c9bd3c)؛ ہر نوڈ اپنا بلڈ rand_getVersion میں بتاتا ہے۔ یہ بلڈ چینز 14 تا 17 کو قبول نہیں کرتا، اور v0.6.8 سے پرانا والٹ چین 20 پر ارسال نہیں کر سکتا
جینیسس پابندیbinding_domain 1: ہر بنڈل کے ثبوت کی پابندی اور ہر دستخط شدہ ایکشن پیغام میں جینیسس ہیش شامل ہوتا ہے، اس لیے ایک چین کے لیے ثابت یا دستخط کی گئی کوئی چیز کسی دوسری چین پر تصدیق نہیں پاتی
testnet نشانtestnet true: جینیسس خود کو آزمائشی نیٹ ورک قرار دیتا ہے، اور اسی کی بدولت برج کے ساتھ فاسیٹ چلایا جا سکتا ہے
ویلیڈیٹرز26، ہر ایک 1,000 RAND پر اسٹیک شدہ، جو اسٹیکنگ کی کم از کم حد ہے
کورم26 میں سے 18: اسٹیک کے دو تہائی سے قطعی طور پر زیادہ
بلاک وقفہپہلے سے طے شدہ --block-interval-ms 1000؛ تقریباً ایک بلاک فی سیکنڈ
بلاک وقتجو ٹائم اسٹیمپ اپنے پیرنٹ بلاک کے ٹائم اسٹیمپ سے 60 s سے زیادہ آگے ہو وہ غلط ہے، اور ویلیڈیٹر کسی ایسے بلاک کو ووٹ نہیں دیتا جو اس کی اپنی گھڑی سے 15 s سے زیادہ آگے ہو، اس لیے ویلیڈیٹرز NTP چلاتے ہیں
ثبوت کی ونڈوproof_window_blocks 1,024: بنڈل کا اینکر آخری 1,024 بلاک اختتامی روٹس میں سے کوئی ایک ہونا چاہیے، اور اس کا time اس سے پرانا نہیں ہونا چاہیے (چینز 18 اور 19 پر 256 بلاکس)
ایپوکس1,000 بلاکس؛ نیا بانڈ شمار ہونے سے پہلے دو اضافی ایپوکس انتظار کرتا ہے (bond_activation_epochs 2، ایپوک e + 3 پر فعال)، اور ان بانڈ کیا گیا اسٹیک دو ایپوکس بعد آزاد ہوتا ہے
اسٹیکنگرجسٹریشنز v2 ہیں (rand-node register --v2)، اور نئی کلید صرف تب رجسٹر ہوتی ہے جب وزن کے دو تہائی سے زیادہ کے حامل ویلیڈیٹرز اس کے حق میں ووٹ دیں (admission_by_vote)؛ کسی ایک ویلیڈیٹر کا وزن 33.33 % تک محدود ہے؛ ایپوک کی حد پر داخل ہونے والا نیا اسٹیک فعال وزن کے 25 % تک محدود ہے (max_stake_entry_bps_per_epoch 2,500)؛ سلیشنگ نہیں ہے
zkVMپابندیوں کا مجموعہ 8، پروڈکشن FRI پروفائل (80 کوئریز)
بنڈل گیسٹhc_bundle 60af094acfe65d85fdb18fb3d06cf9085dcf28c96e59e87f1ee527226e6e3fce: 4 اِن پٹ اور 4 آؤٹ پٹ والا پوشیدہ اثاثہ بنڈل، ورژن 3، درجہ 14
توثیقی گیسٹhc_auth 1e4e347f44cf86750b30a9a4bdf9ec9256efe353d4ff8017451eca7d195639c1: خرچ کی اجازت جو ہر بنڈل ساتھ رکھتا ہے، درجہ 10
گیسہر کال ایک گیس حد کا اعلان کرتی ہے جسے سرکٹ نافذ کرتا ہے، اور اس کے لیے gas_price ادا کرتی ہے: کم از کم سطح پر 100 اکائیاں فی گیس اور 800 اکائیاں فی KiB، دونوں ہر بلاک میں 262,144 گیس اور 10,485,760 بائٹس کے ہدف کی جانب حرکت کرتی ہیں، اور کبھی 10,000 فی گیس اور 80,000 فی KiB کی بالائی حدود سے تجاوز نہیں کرتیں۔ بائٹ لوڈ میں صرف وہ بائٹس شمار ہوتی ہیں جن پر بائٹ قیمت وصول کی جاتی ہے (کال کا ثبوت اور اِن پٹ لفافہ) (byte_load: "paying")، اس لیے منتقلیوں پر مشتمل بلاک اسے نہیں بڑھاتا۔ ہر بنڈل مقررہ حد 20,479 کا اعلان کرتا ہے اور یکساں 0.001 RAND ادا کرتا ہے
پروگرام اسٹیٹRPL-2 فعال: پروگرام سیلز، پروگرام والٹس اور Invoke (Action 33)؛ ہر نیا سیل بنانے کی لاگت 0.01 RAND ہے (cell_fee 10,000,000 اکائیاں)؛ ایک invoke زیادہ سے زیادہ 8 سیلز پڑھتا ہے، زیادہ سے زیادہ 8 لکھتا ہے اور زیادہ سے زیادہ 4 ادائیگیاں کرتا ہے (rand_getLimits.program_state)
نوٹ لفافہenvelope_bytes 1860: ہر نوٹ کا لفافہ 1,860 بائٹس کا ہوتا ہے اور اس میں ایک خفیہ شدہ میمو ہوتا ہے
پروگرام کی حدmax_program_words 65,535، لیکن hardening_v6 کے تحت ایسی تعیناتی مسترد کر دی جاتی ہے جسے درجہ 14 کی کوئی کال نہ سما سکے (ProgramUncallable): بغیر عوامی حصے والے پروگرام کے لیے 8,180 الفاظ
ثبوت کی حدmax_proof_bytes 4,194,304 (4 MiB)؛ چینز 13 تا 16 پر یہ 8 MiB تھی
بلاک کی حدmax_block_bytes 20,971,520 (20 MiB)
کال لفافے کی حدmax_call_envelope_bytes 65,536
فی پروگرام عوامی اِن پٹmax_program_public_words 32,768، تعیناتی کے وقت مقرر
فاسیٹفعال، لیکن صرف جینیسس اجازت فہرست کے 16 والٹس کے لیے (staking.faucet_recipients)، اور صرف ان 18 ویلیڈیٹرز کی جانب سے جنہیں جینیسس منٹرز نامزد کرتا ہے (staking.faucet_minters): فی کال زیادہ سے زیادہ 100 RAND، اور فی ایپوک مجموعی طور پر 10,000 RAND
خفیہ حساب کاریفعال؛ کال کا ثبوت درجہ 14 تک محدود ہے۔ پروگرام کسی نئی چین کے اجرا پر منتقل نہیں ہوتے؛ مثالی پروگرام بتاتے ہیں کہ ہر ایک کس چین پر تعینات ہے
ٹوکنزRPL رجسٹری فعال ہے: رجسٹریشن فیس 1 RAND، جو جلا دی جاتی ہے؛ زیادہ سے زیادہ 4,096 ٹوکنز؛ ہر نوٹ کی قدر 2⁶³ سے کم۔ zUSD جینیسس میں انڈیکس 1 پر درج ہے
برجفعال: نگہبان سیٹ 1 جس میں آٹھ نگہبان ہیں، آٹھ Dilithium2 PQ نگہبان، ایک توقف کلید، چار ماخذ چینز کے لیے ایمٹرز، فی بیکنگ 100,000 zUSD کی یومیہ منٹ حد، اور تمام بیکنگز پر مجموعی طور پر ہر مسلسل 24 گھنٹوں میں 4,000 zUSD کی عالمی حد۔ zUSD کی سات بیکنگز ہیں؛ اس کی رسد اتنی ہی ہے جتنی مقفل ہے، جو rand_getTokenSupply سے براہِ راست پڑھی جاتی ہے۔ چین 20 سے ہر منٹ اور ہر برن پر 10 bps کی فیس zUSD میں وصول کی جاتی ہے، جو خزانے کے ایڈریس کو ایک نوٹ کی صورت میں جاتی ہے (bridge.fees): ڈپازٹ میں مجموعی رقم سے فیس منہا کر کے کریڈٹ کیا جاتا ہے، اور برن ماخذ چین پر amount − fee جاری کرتا ہے۔ PQ نگہبانوں یا توقف کلید کی تبدیلی ہر نئی کلید کا اپنا دستخط ساتھ رکھتی ہے اور منظوری کے 86,400 s بعد نافذ ہوتی ہے (bridge.rotation)
تاریخ24 ویلیڈیٹرز 24 گھنٹوں کے بلاکس محفوظ رکھتے ہیں (--prune-history 24h) اور اس سے پرانے بلاکس کے لیے -32010 جواب دیتے ہیں؛ دو آرکائیو نوڈز ہر بلاک محفوظ رکھتے ہیں، اور عوامی RPC https://rpc.randprotocol.org درخواستیں ایک آرکائیو کو آگے بھیجتا ہے
بلاک ایگریگیشنغیر فعال (جینیسس میں کوئی aggregation حصہ نہیں؛ جس جینیسس میں یہ حصہ ہو اس پر یہ بلڈ شروع ہونے سے انکار کرتا ہے)
جینیسس قدرویلیڈیٹر رجسٹر میں 26,000 RAND اسٹیک شدہ، نیز سات ڈپازٹ نوٹس جن کی مجموعی قدر 5,184.243719258 RAND ہے، جو چین 19 پر آپریٹر کے والٹس سے منتقل کیے گئے: فاسیٹ منٹس سے پہلے 31,184.243719258 RAND (rand_getSupply میں genesis_staked اور genesis_deposited درج ہوتے ہیں)؛ اس کے علاوہ دو جینیسس نوٹس جن کی مجموعی قدر 99 zUSD ہے، جو اس کی بیکنگز پر مقفل 99 zUSD کے برابر ہے

بوٹ اسٹریپ نوڈز (deploy/nodes.env):

/ip4/164.90.239.200/tcp/30303/p2p/12D3KooWEQEbUwZRgqhDPXhW7vNBmcRcnhUDGUADe81VFdv3ALYe
/ip4/165.245.173.74/tcp/30303/p2p/12D3KooWJyc5oDHggAr89e9QrRFBy9Tg8TxXh18yzrb1SM6KKLYw
/ip4/188.166.235.187/tcp/30303/p2p/12D3KooWSyX84P1DAbWByLHpRBMLRWD53r3Jj4aqVt6tHoF8B2ZQ

چین 20 انہی ویلیڈیٹر کلیدوں پر چلتی ہے جو چینز 14 تا 19 نے استعمال کیں، اس لیے یہ پیئر آئی ڈیز چین 14 کی کلید تبدیلی کے بعد سے نہیں بدلیں۔

randscan.org پر ایکسپلورر چین 20 کو انڈیکس کرتا ہے اور https://randscan.org/api/v1 پر ایک REST API فراہم کرتا ہے (ایکسپلورر API)۔ فل نوڈ کا JSON-RPC بطورِ طے شدہ 127.0.0.1:8545 سے منسلک ہوتا ہے؛ اپنا نوڈ چلائیں (نوڈ چلانا)، کسی قابلِ اعتماد نوڈ کو استعمال کریں، یا عوامی اینڈ پوائنٹ https://rpc.randprotocol.org استعمال کریں (rand --rpc https://rpc.randprotocol.org …)۔ عوامی اینڈ پوائنٹ وہ سب کچھ فراہم کرتا ہے جس کی والٹ کو ضرورت ہوتی ہے، بشمول پہلی ہم آہنگی اور ٹرانزیکشنز کی ترسیل، اس حد کے ساتھ کہ فی ایڈریس فی منٹ 1,200 ریڈز اور 6 ترسیلات۔ یہ فاسیٹ کی خدمت فراہم نہیں کرتا۔

فاسیٹ سے RAND حاصل کرنا

فاسیٹ ایک ٹرانزیکشن کی قسم ہے: ایک ویلیڈیٹر کسی شیلڈڈ ایڈریس کے لیے عوامی مقدار کا ایک نوٹ منٹ کرتا ہے، اور اس نوٹ کو صرف ایڈریس کا مالک کھول سکتا ہے۔ چین 20 پر یہ صرف جینیسس اجازت فہرست کے 16 ایڈریسز کو ادائیگی کرتا ہے: کسی دوسرے ایڈریس کے لیے منٹ the faucet may not mint to this recipient (not in staking.faucet_recipients) کے ساتھ مسترد کر دیا جاتا ہے، اس لیے جو والٹ اس فہرست میں نہیں وہ آزمائشی RAND کسی کے بھیجنے سے ہی حاصل کرتا ہے۔ ذیل کے تینوں طریقوں میں سے ہر ایک کسی ویلیڈیٹر نوڈ سے منٹ کی درخواست کرتا ہے؛ آبزرور نوڈز faucet mints are signed by validators; ask a validator node جواب دیتے ہیں، اور عوامی RPC اینڈ پوائنٹ rand_mint کو بالکل آگے نہیں بھیجتا۔

rand والٹ کے ذریعے، جو کسی ویلیڈیٹر کے RPC کی طرف متوجہ ہو:

rand keygen                    # writes wallet.key.json; refuses to overwrite
rand address                   # the rand1… address on stdout (about 1,665 characters), its fingerprint on stderr
rand faucet                    # an allowlisted wallet: 100 RAND into a note only it can open
rand balance                   # scans the tree with this key; prints 100 RAND

rand faucet [ADDRESS] --amount <RAND> کسی دوسرے ایڈریس کے لیے یا کم مقدار میں منٹ کرتا ہے؛ 100 RAND فی کال طے شدہ مقدار بھی ہے اور حد بھی۔ JSON-RPC کے ذریعے یہی درخواست rand_mint ہے:

curl -s http://127.0.0.1:8545 -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"rand_mint","params":["rand1…", "100000000000"]}'

نتیجہ منٹ ٹرانزیکشن کا ہیش ہوتا ہے؛ rand_getTransaction کو اس وقت تک پول کریں جب تک وہ کوئی بلاک واپس نہ کرے۔ مقداریں اکائیوں کی اسٹرنگز ہوتی ہیں، اور 1 RAND برابر ہے 10⁹ اکائیوں کے۔ والٹ ایپس میں یہی فاسیٹ ایک ٹیپ پر دستیاب ہے؛ ان سے Rand Wallet v0.6.8 یا بعد کے ورژن کے ساتھ ارسال کریں، جو چین 20 کے لیے پہلا اجرا ہے۔ اس سائٹ کا فاسیٹ صفحہ ڈیونیٹ گرانٹس کے لیے انتظار فہرست کی درخواستیں وصول کرتا ہے۔

منٹ کی مقدار چین پر عوامی ہوتی ہے: یہ وہی ایک قدم کی مرئیت ہے جو ہر شفاف سے شیلڈڈ ڈپازٹ میں ہوتی ہے۔ اس کے بعد نوٹ کس کے لیے کتنی قدر رکھتا ہے، یہ ہر دوسرے نوٹ کی طرح پوشیدہ رہتا ہے۔

آگے کہاں جائیں

fullnode ریپوزیٹری کی اپنی docs/ ڈائریکٹری وہ ماخذ ہے جس سے ان صفحات کی جانچ کی جاتی ہے، اور تحقیقی مقالات خفیہ نگاری کا پس منظر فراہم کرتے ہیں۔

آخری بار 2026-10-12 کو fullnode کمٹ c0878c3f (چین 21) کے مقابل تصدیق کی گئی۔