Rand Protocol
दस्तावेज़ीकरण
इकोसिस्टम

वैलिडेटर, एग्रीगेटर और प्रूवर

Rand पर भूमिकाएँ आपस में कैसे जुड़ती हैं - कौन-सी मशीन किसी ट्रांसफ़र का प्रूफ़ बनाती है और किस कुंजी से, कोई RPC नोड उसे गॉसिप करने से पहले क्या जाँचता है, वैलिडेटर स्वयं कुछ भी प्रूव किए बिना ब्लॉकों को कैसे क्रमबद्ध, सत्यापित और अंतिम करते हैं, और एग्रीगेशन चालू होने पर कोई एग्रीगेटर प्रूफ़ों की एक विंडो को कहाँ सील करेगा।

इस पृष्ठ से यह समझा जा सकता है कि Rand में किसी ट्रांसफ़र के आगे बढ़ने पर कौन क्या करता है। प्रूफ़ बनाना महँगा है और उसका सत्यापन सस्ता, इसलिए काम इसी रेखा पर बाँटा गया है। प्रूफ़ प्रेषक की ओर बनते हैं। वैलिडेटर केवल उनकी जाँच करते हैं, उन्हें क्रम देते हैं और वोट करते हैं। एग्रीगेटर, चालू होने के बाद, कई प्रूफ़ को एक में समेट देगा। नीचे का चित्र एक ट्रांसफ़र को वॉलेट से अंतिम ब्लॉक तक ले जाता है; उसके बाद के खंड एक-एक करके हर भूमिका को लेते हैं।

How a transfer moves through Rand A wallet makes the authorisation proof itself and gets the bundle proof from this device, a prover of its own, or the validators' prover pool, which is sent the viewing key only. The transaction goes to an RPC node, which verifies both proofs and gossips it to the validators. The validators order it in a block, re-verify every proof, vote, and commit the block. Finalised blocks are kept by observers and archive nodes. An aggregator, built but switched off on chain 20, would prove one recursive proof over a window of bundle proofs and submit it for a sealing block. 1 · ON THE SENDER'S SIDE Wallet holds the spend key; it never leaves builds the transfer, seals the envelopes authorisation proof · tier 10 · seconds always made here, over the spend key Bundle prover tier 14 · about 6 GB of memory · 1–2 min this device (desktop app, 8 GB phone) a rand-prover you run the validators' pool prover.randprotocol.org viewing key + salt bundle proof checked locally transaction: two proofs, nullifiers, commitments, sealed envelopes, fee 2 · ANY RPC NODE checks the binding, both proofs and the fee on four verify workers behind a 64-deep queue, then gossips the transaction on, only once it has verified gossip 3 · VALIDATORS · 26 ON CHAIN 20, 18 NEEDED TO COMMIT Mempool still-valid, best fee per KiB Leader proposes round robin · about one block a second HotStuff votes final after three chained QCs every validator re-verifies every proof in a block before it votes; no validator proves anything Aggregate → a sealing block 4 · FINALISED BLOCKS served by every RPC node and the explorer archive nodes keep every raw proof wallets scan them with their own keys window AGGREGATOR · BUILT, OFF ON CHAIN 20 one recursive proof over a window of bundle proofs; GPU-class, bonded paid a proving share and a subsidy
फ़ोन पर चित्र को बगल की ओर स्वाइप करें। एक ट्रांसफ़र, ऊपर से नीचे तक। ठोस तीर वह दिखाते हैं जो चेन 20 आज करती है; डैश वाला बॉक्स और तीर ब्लॉक एग्रीगेशन है, जो बनकर मर्ज हो चुका है, पर चेन 20 के जेनेसिस में शामिल नहीं है।

एक ट्रांसफ़र का मार्ग

  1. वॉलेट ट्रांसफ़र बनाता है। वह अपने इनपुट नोट चुनता है, उनके Merkle विटनेस प्राप्त करता है, चार आउटपुट बनाता है और हर एक को ML-KEM-768 लिफ़ाफ़े में सील करता है। फिर वह लेनदेन की बाइंडिंग की गणना करता है, जो प्रूफ़ को छोड़कर बाकी सब पर एक हैश है (लेनदेन)।
  2. वॉलेट प्राधिकरण का प्रूफ़ स्वयं बनाता है। यह स्पेंड की और एक नए सॉल्ट पर टियर-10 प्रूफ़ है, जिसमें कुछ सेकंड लगते हैं। यही एकमात्र प्रूफ़ है जो स्पेंड की को छूता है, और यह हमेशा वॉलेट की अपनी मशीन पर बनता है।
  3. बंडल प्रूफ़ वहाँ बनता है जहाँ उसके लिए मेमोरी हो। यह टियर-14 प्रूफ़ स्वामित्व, सदस्यता, नलिफ़ायर और बैलेंस सिद्ध करता है, और इसकी अधिकतम मेमोरी लगभग 6 GB तक पहुँचती है। डेस्कटॉप ऐप और लगभग 8 GB वाला फ़ोन इसे स्वयं बनाते हैं। इससे छोटा कोई भी उपकरण यह काम अपने साथ जुड़े प्रूवर को सौंप देता है: आपका अपना चलाया हुआ, या prover.randprotocol.org पर वैलिडेटरों का पूल। दोनों में से किसी को भी व्यूइंग की और सॉल्ट भेजे जाते हैं, स्पेंड की कभी नहीं (प्रूफ़)।
  4. एक RPC नोड इसकी जाँच करता है। वॉलेट जिस भी नोड को लेनदेन सौंपता है, वह बंडल डाइजेस्ट की पुनर्गणना करता है, दोनों प्रूफ़ को बाइंडिंग के विरुद्ध सत्यापित करता है, शुल्क जाँचता है, और उसके बाद ही लेनदेन को अपने पीयर्स तक गॉसिप करता है (प्रूफ़, मेमपूल)।
  5. वैलिडेटर इसे क्रम देते हैं और अंतिम रूप देते हैं। व्यू का लीडर वे लेनदेन लेता है जो अब भी लागू होते हैं, प्रति KiB सबसे अच्छे शुल्क वाले पहले, और एक ब्लॉक प्रस्तावित करता है। हर वैलिडेटर उसमें मौजूद हर प्रूफ़ को फिर से सत्यापित करता है और वोट करता है। ब्लॉक तब कमिट होता है जब लगातार व्यू में तीन कोरम प्रमाणपत्र उस पर शृंखलाबद्ध हो जाते हैं, जिसके लिए चेन 20 के 26 में से 18 वैलिडेटरों का ऑनलाइन होना आवश्यक है (सहमति)।
  6. ब्लॉक अंतिम है, और कोई भी इसकी जाँच कर सकता है। कोई लेनदेन तब अंतिम होता है जब rand_getTransaction एक ब्लॉक लौटाता है। जो नोड बाद में सिंक करता है, वह हस्ताक्षरों पर भरोसा करने के बजाय हर प्रमाणपत्र और हर प्रूफ़ को फिर से सत्यापित करता है।

भूमिकाएँ

भूमिकाक्या करती हैप्रूफ़ बनाती है?क्या देखती हैक्या चलाती है
वॉलेटट्रांसफ़र और कॉल बनाता, प्राधिकृत करता और सौंपता है; अपनी कुंजियों से चेन को स्कैन करता हैप्राधिकरण प्रूफ़ हमेशा; बंडल प्रूफ़ तब, जब उपकरण में पर्याप्त मेमोरी होअपने नोटों के बारे में सब कुछक्लाइंट पृष्ठ पर दिए ऐप, या rand; चेन 20 पर Rand Wallet या rand v0.6.8 या उसके बाद का संस्करण
प्रत्यायोजित प्रूवरअपने साथ जुड़े वॉलेट के लिए बंडल प्रूफ़ बनाता है; कुछ भी सौंपे जाने से पहले वॉलेट हर उत्तर की जाँच करता हैकेवल बंडल प्रूफ़जुड़े वॉलेट की व्यूइंग की: उसका पूरा इतिहास, अतीत और भविष्य; वह खर्च नहीं कर सकताrand-prover run, या rand-node run --prover
वैलिडेटरों का प्रूवर पूलचार होस्ट द्वारा चलाया जाने वाला प्रत्यायोजित प्रूवर, जिनमें दो वैलिडेटर और दो केवल प्रूफ़ बनाने वाली मशीनें हैं, एक नाम और एक कुंजी के पीछे, उन वॉलेटों के लिए जिनके पास अपना प्रूवर नहीं है; कोई शुल्क नहींकेवल बंडल प्रूफ़किसी भी प्रत्यायोजित प्रूवर जितना ही, हर उस वॉलेट के लिए जो इससे जुड़ता हैprover.randprotocol.org, फ़िंगरप्रिंट RGTF-7HKJ-XZFV-GQ1J
RPC नोड (पर्यवेक्षक)सिंक करता है, हर प्रूफ़ को फिर से सत्यापित करता है, JSON-RPC प्रदान करता है, सत्यापित लेनदेन गॉसिप करता है; कोई वोट नहींनहींकेवल सार्वजनिक फ़ील्ड: कमिटमेंट, नलिफ़ायर, सील किए गए लिफ़ाफ़े, प्रूफ़rand-node run
वैलिडेटरवह सब जो पर्यवेक्षक करता है, साथ ही अपने व्यू में प्रस्ताव रखना और HotStuff में वोट करनानहींकेवल सार्वजनिक फ़ील्डrand-node run --validator
एग्रीगेटरअंतिम रूप पा चुके बंडल प्रूफ़ की एक विंडो पर एक पुनरावर्ती प्रूफ़ बनाता है और उसे एक सीलिंग ब्लॉक के लिए सौंपता हैहाँ, नेटवर्क के सबसे बड़े प्रूफ़केवल सार्वजनिक फ़ील्ड और प्रूफ़rand-node aggregate --watch, ऐसी चेन पर जिसमें aggregation खंड हो

प्रूफ़ बनाना और सत्यापन करना अलग-अलग काम हैं, और वैलिडेटर को प्रूवर हार्डवेयर की आवश्यकता नहीं होती। पूल के चार सदस्यों में से दो ऐसे वैलिडेटर हैं जो सेवा के रूप में प्रूवर भी चलाते हैं; बाकी दो समर्पित प्रूवर मशीनें हैं जिनके पास कोई वैलिडेटर कुंजी नहीं है। पूल चलाना सत्यापन का हिस्सा नहीं है। हर भूमिका के लिए आवश्यक क्षमता, और हर टियर के लिए प्रूफ़ बनाने की मापी गई मेमोरी, वैलिडेटर और एग्रीगेटर हार्डवेयर पर दी गई है।

हर भूमिका क्या जान सकती है

किसी ट्रांसफ़र की गोपनीयता इस पर निर्भर करती है कि किसके पास कौन-सी कुंजी है, न कि नेटवर्क पर भरोसा करने पर:

  • वैलिडेटर, RPC नोड और एक्सप्लोरर वही देखते हैं जो हर नोड देखता है: कमिटमेंट, नलिफ़ायर, सील किए गए लिफ़ाफ़े, शुल्क और प्रूफ़। राशि, एसेट, प्रेषक या प्राप्तकर्ता नहीं।
  • प्रत्यायोजित प्रूवर, पूल सहित, को व्यूइंग की भेजी जाती है। इससे वह जुड़े वॉलेट का पूरा इतिहास पढ़ सकता है। वह कभी खर्च नहीं कर सकता, क्योंकि स्पेंड की पर प्राधिकरण प्रूफ़ वॉलेट की मशीन पर बनता है। पूल से जुड़ने का अर्थ है उसके संचालकों को वह इतिहास दिखाने का चुनाव करना। यदि आप इसे निजी रखना चाहते हैं, तो अपने उपकरण पर प्रूफ़ बनाएँ या अपना प्रूवर चलाएँ।
  • प्रत्यायोजित प्रूवर वॉलेट को धोखा नहीं दे सकता। वॉलेट उसे दिए गए हर प्रूफ़ से डाइजेस्ट पढ़ता है, आकार जाँचता है और उसे स्थानीय रूप से सत्यापित करता है, इसलिए गलत प्रूफ़ कभी किसी नोड तक नहीं पहुँचता।

एग्रीगेशन: बना हुआ, पर चालू नहीं

आज हर ब्लॉक में हर मूल प्रूफ़ रहता है, एक ट्रांसफ़र के लिए लगभग 2.85 MB, इसलिए 20 MiB के ब्लॉक में लगभग सात ट्रांसफ़र आते हैं। ब्लॉक एग्रीगेशन इसका फ़ुलनोड वाला समाधान है। एग्रीगेटर अंतिम रूप पा चुके ब्लॉकों की एक विंडो के बंडल प्रूफ़ लेता है (rand_getUnsealed), एक पुनरावर्ती प्रूफ़ बनाता है जो उन सभी को सत्यापित करता है, और उसे सौंप देता है। जिस ब्लॉक में वह शामिल होता है, वह उस विंडो को सील कर देता है। तब वैलिडेटर N प्रूफ़ के बजाय एक एग्रीगेट सत्यापित करते हैं, और नोड उसमें शामिल मूल प्रूफ़ हटा सकते हैं। एग्रीगेटर बॉन्डेड और अनुमति-रहित होते हैं, GPU-श्रेणी की मशीनों पर चलते हैं, और उन्हें शामिल बंडलों का प्रूफ़ हिस्सा तथा नए RAND में एक ब्लॉक सब्सिडी मिलती है।

यह बनकर मर्ज हो चुका है, पर सक्रिय नहीं है। इसके लिए जेनेसिस में aggregation खंड चाहिए, और चेन 20 में ऐसा कोई खंड नहीं है, इसलिए rand_status एग्रीगेशन के हर काउंटर को शून्य बताता है। इसे चालू करने से पहले वर्तमान बाधा-समुच्चय के अंतर्गत इसके बंडल आकार को फिर से मापना होगा, और रिकर्शन सत्यापनकर्ता के विरुद्ध जाली एग्रीगेट का परीक्षण करना होगा। स्प्लिट-प्राधिकरण वाली चेन पर यह केवल बंडल प्रूफ़ को सील करेगा, प्राधिकरण प्रूफ़ को नहीं (प्रूफ़)।

2026-10-12 को fullnode कमिट c0878c3f (चेन 21) के विरुद्ध अंतिम बार सत्यापित, और fullnode `c0878c3f` (v0.8.0): `deploy/genesis-chain21.json` (26 validators, no `aggregation` section), `crates/randprotocol-prover/src/wire.rs` (the wallet hands the prover the binding), fullnode main `cb0a32ea`: `deploy/prover/README.md` (status 2026-10-01 06:00 UTC: four members), randprotocol.org `rand_status` on chain 20, 2026-10-01, and on chain 21, 2026-10-12: `aggregation` all zero, 26 peers, this tree's Proofs, Consensus, Mempool and Validator and aggregator hardware pages। जहाँ कोड और यह पृष्ठ असहमत हों, वहाँ कोड सही है; हमें बताएँ।