البوابة الدوّارة
الخلاصة
- البوابة الدوّارة هي قاعدة محاسبة عامة تتتبّع مقدار القيمة التي تدخل إلى كل مجمع محمي وتخرج منه
- وهي تتيح لأي شخص التحقق من أن أي مجمع لا يدفع قيمةً أكثر مما أُودِع فيه، رغم أن المعاملات داخله خاصة
- وهذا يحمي معروض ZEC من عيب خفي، لأن العملات المزوّرة لا يمكنها مغادرة مجمع من دون كسر العدّ
- تظل المدفوعات داخل المجمع خاصة. وتُظهر المعاملة التي تنقل ZEC بين المجمعات المقدار الذي تنقله
- والبوابة الدوّارة هي السبب الذي يجعل ترحيل Orchard إلى Ironwood قادرًا على إثبات سلامة المعروض المحمي
لمن هذا
- أي شخص يريد فهم كيف يحافظ Zcash على موثوقية معروضه الخاص
- المستخدمون الذين يتابعون ترحيل Orchard إلى Ironwood ويتساءلون كيف يثبت أن المعروض حقيقي
- القادمون الجدد الفضوليون لمعرفة كيف يمكن لنظام نقود خاص أن يظل قابلًا للتدقيق
التحدي
يخفي Zcash المحمي المبالغ والمرسلين والمستلمين. هذه الخصوصية هي الهدف أساسًا. لكنها تثير سؤالًا صعبًا: إذا لم يكن أحد يستطيع الرؤية داخل المجمع المحمي، فكيف يعرف أي شخص أن الكمية الإجمالية من ZEC صحيحة؟ كيف تدقّق أموالًا لا يمكنك رؤيتها؟
إذا سمح عيبٌ ما يومًا لشخص بتزوير عملات داخل مجمع محمي، فسيبقى هذا التزوير مخفيًا بالخصوصية نفسها التي تحمي المستخدمين الأمناء. ومن دون وسيلة حماية، فإن هذا الغموض سيقوّض الثقة في المعروض بأكمله. البوابة الدوّارة هي وسيلة الحماية التي تحل هذه المشكلة.
ما هي البوابة الدوّارة
تخيّل كل مجمع محمي كغرفة لها مدخل واحد معدود. في كل مرة تدخل فيها قيمة إلى المجمع من الخارج، أو تغادره إلى مكان آخر، فإنها تمر عبر ذلك المدخل ويُعلَن عدّها على الملأ. المعاملات داخل الغرفة تبقى خاصة، لكن المجموع التراكمي عند الباب مرئي للجميع.
القاعدة بسيطة: لا يمكن لأي مجمع أن يسمح بخروج قيمة أكبر من القيمة التي دخلت إليه. ترفض العقد أي كتلة من شأنها أن تدفع رصيد مجمع إلى ما دون الصفر. ويُعرَف المقدار الذي يُعتقد أنه داخل المجمع في كل الأوقات، لأنه ببساطة يساوي إجمالي ما دخل مطروحًا منه إجمالي ما خرج. هذا العدّ العام هو البوابة الدوّارة.
كيف تعمل
مرّ Zcash عبر عدة مجمعات محمية خلال تاريخه، مثل Sprout وSapling وOrchard. وتتحرك القيمة بين السلسلة الشفافة وهذه المجمعات، وأحيانًا بين المجمعات نفسها. وتراقب البوابة الدوّارة هذه التحركات:
- عندما تنتقل ZEC إلى مجمع محمي، تُضاف الكمية إلى الرصيد العام لذلك المجمع
- عندما تخرج ZEC من مجمع، تُطرَح الكمية
- ترفض الشبكة أي كتلة تجعل رصيد مجمع سالبًا، أي أن قيمةً أكبر قد خرجت مما دخل إليه على الإطلاق
- تُظهر كل معاملة تدفقها الصافي إلى مجمع أو خارجه فقط، أي رصيد قيمتها. وبالنسبة إلى دفعة داخل المجمع نفسه، لا يكون ذلك سوى الرسوم
تتتبّع الشبكة رصيدًا لكل مجمع قيمة بهذه الطريقة، بما في ذلك Sprout وSapling وOrchard ومجمع Ironwood الجديد، إضافةً إلى الأرصدة الشفافة وأرصدة lockbox. وبسبب ذلك، حتى لو كانت المحتويات الدقيقة لمجمع ما مخفية، فإن الحد الأقصى الذي يمكن أن يخرج منه يظل مقيدًا بما دخل إليه. ولا يمكن لتضخم خفي أن يتسرب إلى التداول.
كيف يُفحَص توازن القيمة
إن العدّ عند الباب لا يكون موثوقًا إلا لأن كل معاملة تُجبَر على إثبات أنها نقلت مقدارًا صحيحًا من القيمة، رغم أن المقدار نفسه يبقى مخفيًا. تنشر كل معاملة محمية رقمًا صادقًا واحدًا: صافي القيمة التي تُدخلها إلى المجمع أو تُخرجها منه، ويُسمّى توازن القيمة الخاص بها. يعني توازن القيمة الموجب أن الأموال غادرت المجمع إلى الجانب الشفاف، ويعني السالب أن الأموال دخلت إليه. تبقى التفاصيل الخاصة مختومة، لكن هذا الرقم الصافي الواحد يكون عامًا، وهو ما تجمعه البوابة الدوّارة.
والجزء الذكي هو كيفية إثبات المعاملة أن هذا الرقم العام صادق من دون كشف المبالغ الخاصة الكامنة وراءه. تختلف الآلية بحسب المجمع، وهذه هي الآلات الحقيقية للبوابة الدوّارة.
في مجمع Sprout الأصلي، تستخدم كل معاملة JoinSplit. تنفق JoinSplit مذكرتين مخفيتين وتُنشئ مذكرتين جديدتين، وتحمل حقلين عامين: vpub_old، وهي القيمة الداخلة إلى المجمع المحمي من الجانب الشفاف، وvpub_new، وهي القيمة الخارجة من المجمع عائدةً إلى الجانب الشفاف. يجب أن تكون كل JoinSplit متوازنة بذاتها، ويضمن برهان المعرفة الصفرية الخاص بها أن المدخلات المخفية والمخرجات المخفية تتجمع بصورة صحيحة. ورصيد مجمع Sprout ليس سوى المجموع التراكمي لكل vpub_old مطروحًا منه كل vpub_new عبر السلسلة. ولهذا السبب يُعد Sprout مثالًا مفيدًا لاحقًا: لأن vpub_old هي الطريقة الوحيدة التي يمكن أن تدخل بها القيمة إلى المجمع، فإن قاعدة واحدة توقفها يمكنها إغلاق المجمع نهائيًا.
في Sapling وOrchard وIronwood، يُثبَت التوازن بطريقة أذكى، باستخدام binding signature. فبدلًا من أن يكون كل تحويل متوازنًا بمفرده، تلتزم المعاملة كلها بكل مبلغ مخفي باستخدام value commitment. وvalue commitment هو غلاف مختوم لرقم، مبنيّ باستخدام homomorphic Pedersen commitment، وله خاصية مميزة: يمكن جمع هذه الأظرف وطرحها من دون فتحها. تجمع الشبكة كل commitments الخاصة بالمدخلات، وتطرح منها كل commitments الخاصة بالمخرجات، ثم تقارن النتيجة مع الرقم الصافي الوحيد الذي تعلنه المعاملة، أي حقل valueBalance الخاص بها. ولا يمكن إلا لمعاملة تكون مبالغها المخفية مطابقة فعلًا لذلك valueBalance العام أن تنتج binding signature صالحًا على commitments المجمّعة. فإذا حاول شخص نقل قيمة أكبر مما أعلنه، فلن تتجمع commitments بصورة صحيحة، ولن ينجح التحقق من binding signature، وستُرفض المعاملة. ويستخدم Ironwood بروتوكول Orchard نفسه، لذا فهو يعمل بالطريقة نفسها.
وهذا أيضًا ما يجعل التحقق من النقل بين المجمعات آمنًا. عندما تنتقل الأموال من مجمع محمي إلى آخر، مثلًا من Orchard إلى Ironwood، لا يمكن للمعاملة أن تخفي المبالغ عن المحاسبة. فلكل مجمع توازن قيمة خاص به يجب أن تستوفيه براهينه الخاصة: يجب على جانب Orchard أن يُظهر تدفقًا خارجًا مطابقًا عبر binding signature الخاص به، ويجب على جانب Ironwood أن يُظهر التدفق الداخل المقابل عبر براهينه الخاصة. وتُثبَت القيمة الخارجة من أحد المجمعات والقيمة الداخلة إلى الآخر كلٌّ على حدة، لذا فإن النقل بين المجمعات هو في الحقيقة عبوران للبوابة الدوّارة داخل معاملة واحدة، واحد للخروج وواحد للدخول، وكلاهما يُحتسب علنًا رغم أن المبالغ الأساسية تبقى خاصة.
إذًا فالبوابة الدوّارة ليست مسألة ثقة. كل معاملة تثبت رياضيًا أثرها الصافي الخاص، وتجمع الشبكة هذه الآثار الصافية المثبتة لكل مجمع، ثم ترفض قاعدة إجماع (ZIP 209) أي كتلة من شأنها أن تدفع رصيد مجمع إلى السالب. إثبات على مستوى المعاملة، وإنفاذ على مستوى السلسلة.
لماذا هذا مهم
تعطي البوابة الدوّارة Zcash ثلاثة أمور في وقت واحد.
أولًا، هي تعزل المخاطر. فوجود عيب cryptographic في أحد المجمعات يبقى محصورًا في ذلك المجمع، لأن البوابة الدوّارة تمنع القيمة المزوّرة من العبور إلى المعروض الأوسع.
ثانيًا، تتيح للمجتمع التحقق من المعروض بأثر رجعي. فإذا اكتُشف عيب لاحقًا، يُظهر سجل البوابة الدوّارة ما إذا كانت قيمة أكبر قد خرجت يومًا من مجمع مما دخل إليه. والسجل النظيف يُعد دليلًا قويًا على أن التزوير لم يُستغل.
ثالثًا، تحافظ على خصوصية المدفوعات داخل المجمع أثناء القيام بكل ذلك. تنشر كل معاملة فقط صافي تدفقها إلى مجمع أو منه، وهو في حالة الدفع داخل مجمع واحد لا يعدو كونه الرسوم. ويُظهر التحويل بين المجمعات، مثلًا من Orchard إلى Ironwood، المبلغ الذي يعبر بينها. وهكذا تتعايش قابلية التدقيق والخصوصية، وهذا أمر غير معتاد وأحد مكامن قوة Zcash الهادئة.
البوابة الدوّارة أثناء العمل
ليست البوابة الدوّارة جديدة، وقد استُخدمت في لحظات مهمة من تاريخ Zcash.
عندما انتقل Zcash من مجمع Sprout الأصلي نحو مجمع Sapling الأحدث، كانت البوابة الدوّارة تحرس هذا الانتقال. ثم فُرضت لاحقًا قيود على مجمع Sprout بحيث لا يتمكن من استقبال تدفقات داخلة جديدة، مما شجّع المستخدمين على الترحيل بينما أبقت البوابة الدوّارة المحاسبة صادقة. وبعد سنوات، أصبح عدم خروج أي قيمة من Sprout بطريقة غير سليمة دليلًا على أن التشفير المبكر الخاص به لم يُستغل بنجاح مطلقًا.
والتصميم نفسه يحرس الآن الانتقال من Orchard إلى Ironwood. ففي عام 2026 اكتُشف عيب سلامة وصُحِّح في نظام الإثبات الخاص بـ Orchard. ولا يوجد دليل على أنه استُغل يومًا، لكن لأن النشاط المحمي خاص، كان اليقين مستحيلًا. وجاءت الاستجابة بإغلاق مجمع Orchard القديم وجعل الجميع يرحّلون أموالهم عبر البوابة الدوّارة إلى Ironwood، وهو مجمع جديد يستخدم البروتوكول المصحح. وفرض مرور الأموال عبر البوابة الدوّارة يعني أن أي عملات مزورة افتراضية تُترك وراءها لا يمكنها أن تتبعها، وبمجرد اكتمال الترحيل، يمكن لأي شخص تأكيد أن المعروض المحمي سليم.
إهمال المجمع باتجاه واحد
تجعل البوابة الدوّارة من الممكن إحالة مجمع قديم إلى التقاعد بأمان، وفي اتجاه واحد فقط، من دون كسر ضمان المعروض أبدًا. والحيلة هي إغلاق المدخل مع إبقاء المخرج مفتوحًا.
Sprout هو أوضح مثال. فلكي يُهمَل، أضاف ZIP 211 قاعدة إجماع واحدة: ابتداءً من ارتفاع التفعيل، يجب أن يكون الحقل vpub_old في كل JoinSplit مساويًا للصفر. وبما أن vpub_old هي الطريقة الوحيدة التي يمكن أن تدخل بها القيمة إلى Sprout، فإن فرضها صفرًا يعني أنه لا يمكن لأي قيمة جديدة أن تدخل إليه مجددًا، بينما تظل القيمة قادرة على الخروج إلى الجانب الشفاف أو المتابعة إلى Sapling. وهكذا أصبح المجمع أحادي الاتجاه. لا يمكنه إلا أن يفرغ، ولا يمكنه أن يمتلئ. وتواصل البوابة الدوّارة العد طوال الوقت، لذا يمكن للرصيد أن ينخفض مع خروج الأموال، لكنه لا يمكن أن يرتفع، ولا يمكن أن يصبح سالبًا.
ويستخدم ترحيل Orchard إلى Ironwood الفكرة نفسها. فعند ترقية NU6.3، يُغلَق مجمع Orchard أمام التدفقات الداخلة الجديدة، وتوجَّه المحافظ إلى إرسال أموال Orchard عبر البوابة الدوّارة إلى مجمع Ironwood الجديد. ويصبح Orchard مجمعًا أحادي الاتجاه لا يمكنه إلا أن يفرغ. ولأن كل خروج هو عبور للبوابة الدوّارة يجب إثباته، فإن أي قيمة مزورة افتراضية متروكة داخل Orchard لا يمكنها أن تتبع الأموال السليمة إلى الخارج بهدوء. فهي عالقة في مجمع لا يفعل إلا التفريغ وتخضع للمراقبة عند الباب. ومع مرور الوقت، يدفع هذا المجمع القديم نحو الفراغ ويتيح لأي شخص تأكيد أن القيمة التي خرجت منه لم تكن يومًا أكبر من القيمة التي دخلت إليه بصورة سليمة.
وهذا هو السبب الأعمق لأهمية البوابة الدوّارة بما يتجاوز المحاسبة البسيطة. فهي الآلية التي تمكّن Zcash من إهمال مجمع محمي، سواء لتقليل التعقيد كما في Sprout، أو للتعافي من عيب مكتشف كما في Orchard، مع الحفاظ على ضمان مستمر وعام وقابل للإثبات بشأن المعروض.
مفاهيم خاطئة شائعة
- البوابة الدوّارة لا تكشف من أرسل ماذا إلى من. لكنها تُظهر مقدار أي معاملة تنقل ZEC بين المجمعات
- وهي لا تمسك بالمزوّر بالاسم. بل تضع حدًا لكمية ما يمكن أن يغادر مجمعًا، وهذا ما يحمي المعروض
- وهي ليست اختراعًا جديدًا من أجل Ironwood. فقد حمت كل انتقال رئيسي بين المجمعات المحمية في تاريخ Zcash
- إن وجود مجموع عام لمجمع ما لا يضعف خصوصية المدفوعات داخل المجمع. إن نقل ZEC بين المجمعات يُظهر المقدار المنقول، ولهذا يطلب ZIP 318 من المحافظ إجراء الترحيل بمبالغ معيارية مع مرور الوقت
الموارد
- ZIP 209: حظر أرصدة مجمعات القيمة في السلسلة الخارجة عن النطاق - قاعدة الإجماع الكامنة وراء البوابة الدوّارة
- ZIP 211: تعطيل إضافة قيمة جديدة إلى مجمع قيمة السلسلة Sprout - كيف أُغلق مجمع Sprout أمام الإيداعات الجديدة
- ZIP 258: NU6.3 - الترقية التي تُدخل مجمع Ironwood وتوجّه القيمة عبر البوابة الدوّارة
- إنفاذ البوابة الدوّارة ضد التزوير - الشرح الأصلي من Electric Coin Company
- مواصفات بروتوكول Zcash - راجع الأقسام المتعلقة بالتوازن وbinding signature للاطلاع على التفاصيل الكاملة
- مجمعات القيمة، كتاب Zebra - كيف تتتبّع عقدة توازن القيمة لكل مجمع
صفحات ذات صلة
- المجمعات المحمية - كيف تحافظ المعاملات المحمية في Zcash على خصوصية التفاصيل
- Halo - نظام الإثبات وراء مجمع Orchard
- ترقيات الشبكة - كيف يفعّل Zcash التغييرات مثل المجمعات المحمية الجديدة