Rand Protocol
الوثائق
المنظومة

المدقِّقون والمجمِّعون والمثبِتون

كيف تتكامل الأدوار على Rand: أيّ جهاز يُثبت صحة التحويل وبأيّ مفتاح، وما الذي تتحقق منه عقدة RPC قبل أن تبثّه، وكيف يرتّب المدقِّقون (validators) الكتل ويتحققون منها ويُنهونها دون إثبات أي شيء، وأين سيختم المجمِّع نافذة من الإثباتات متى جرى تفعيل التجميع.

استخدم هذه الصفحة لتعرف من يفعل ماذا حين تنتقل تحويلة عبر Rand. الإثبات مكلف والتحقق رخيص، ولذلك يُقسَّم العمل على هذا الأساس. جانب المرسل يُنشئ الإثباتات. أما المدقّقون (validators) فيتحققون منها فقط، ويرتّبونها ويصوّتون عليها. والمجمِّع (aggregator)، متى فُعِّل، يدمج إثباتات كثيرة في إثبات واحد. يتتبع الشكل تحويلة واحدة من المحفظة إلى كتلة نهائية، وتتناول الأقسام التي تليه كل دور على حدة.

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 اليوم؛ أما المربع المتقطع والسهم المتقطع فيمثلان تجميع الكتل، وهو مبنيّ ومدموج لكنه غير موجود في كتلة التكوين (genesis) للسلسلة 20.

مسار تحويلة واحدة

  1. تبني المحفظة التحويلة. تختار ملاحظات المدخلات، وتجلب شواهد Merkle الخاصة بها، وتبني أربعة مخرجات وتختم كلاً منها في مغلّف ML-KEM-768. ثم تحسب ربط المعاملة (binding)، وهو تجزئة لكل شيء ما عدا الإثباتات (المعاملات).
  2. تُثبت المحفظة التفويض بنفسها. هذا إثبات من المستوى 10 على مفتاح الإنفاق وملح جديد، ويستغرق بضع ثوانٍ. وهو الإثبات الوحيد الذي يمسّ مفتاح الإنفاق، ويُنشأ دائماً على جهاز المحفظة نفسه.
  3. يُنشأ إثبات الحزمة حيث تتوافر الذاكرة اللازمة. يُظهر هذا الإثبات من المستوى 14 الملكية والعضوية والمُبطِلات (nullifiers) والرصيد، وتبلغ ذروة استهلاكه نحو 6 GB. يُنشئه تطبيق سطح المكتب وهاتف بذاكرة نحو 8 GB بنفسيهما. أما الأجهزة الأصغر فتُسند المهمة إلى مُثبِت (prover) مقترن بها: مُثبِت تشغّله بنفسك، أو مجموعة المُثبِتين التابعة للمدقّقين على prover.randprotocol.org. يُرسَل إلى أيٍّ منهما مفتاح العرض والملح، ولا يُرسَل مفتاح الإنفاق أبداً (الإثباتات).
  4. تفحصه عقدة RPC. تعيد أي عقدة تُرسل إليها المحفظة حساب خلاصة الحزمة، وتتحقق من الإثباتين مقابل الربط، وتفحص الرسوم، ثم تبثّ المعاملة إلى أقرانها (الإثباتات، مجمع المعاملات).
  5. يرتّبها المدقّقون ويُنهونها. يأخذ قائد العرض (view) المعاملات التي لا تزال صالحة، بدءاً بأعلى رسم لكل KiB، ويقترح كتلة. ويعيد كل مدقّق التحقق من كل إثبات فيها ثم يصوّت. وتُثبَّت الكتلة حين تتسلسل ثلاث شهادات نصاب (quorum certificates) عليها في ثلاثة عروض متتالية، وهذا يستلزم اتصال 18 من مدقّقي السلسلة 20 البالغ عددهم 26 (الإجماع).
  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 لنحو سبع تحويلات. وتجميع الكتل هو جواب العقدة الكاملة (fullnode). يأخذ المجمِّع إثباتات الحزم لنافذة من الكتل النهائية (rand_getUnsealed)، ويُنشئ إثباتاً تعاودياً واحداً يتحقق منها جميعاً، ويرسله. والكتلة التي تتضمنه تختم النافذة. عندها يتحقق المدقّقون من تجميع واحد بدلاً من N إثباتاً، ويمكن للعقد أن تُسقط الإثباتات الخام التي غطّاها. والمجمِّعون مرتبطون بوديعة (bonded) وبلا إذن، ويعملون على أجهزة بمستوى وحدات GPU، ويُدفع لهم نصيب إثبات الحزم المغطاة إضافة إلى إعانة كتلة من RAND جديد.

إنه مبنيّ ومدموج، لكنه غير فعّال. فهو يحتاج إلى قسم aggregation في كتلة التكوين (genesis)، وليس في السلسلة 20 قسم كهذا، ولذلك تُبلغ rand_status عن كل عدّادات التجميع بصفر. وقبل تفعيله يجب إعادة قياس شكل حزمته تحت مجموعة القيود الحالية، وإجراء تمرين تجميع مزوَّر على مُتحقِّق التعاود. وعلى سلسلة ذات تفويض مجزّأ فإنه سيختم كذلك إثباتات الحزم فقط، لا إثباتات التفويض (الإثباتات).

آخر تحقق مقابل الإيداع c0878c3f في fullnode (السلسلة 21) بتاريخ 2026-10-12، و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. إذا اختلف الكود عن هذه الصفحة فالكود هو الصحيح؛ أبلغونا بذلك.