
أصدرت مؤسسة Zcash إصداري Zebra 4.5.3 و Zebra 5.0.0 بعد أن اكتشف المهندسون وأصلحوا خطأً جوهرياً حرجاً في سلامة دائرة عمل Orchard.
قالت المؤسسة إن Zebra 4.5.3 قامت بتنشيط شوكة ناعمة (soft fork) طارئة عند ارتفاع كتلة الشبكة الرئيسية 3,363,426. رفض الإصدار مؤقتًا المعاملات والكتل التي تحتوي على إجراءات Orchard بينما أعد المهندسون دائرة مصححة.
دخلت الشوكة الناعمة حيز التنفيذ في حوالي الساعة 02:00 بالتوقيت العالمي المنسق في 2 يونيو بعد أن واجهت محاولة تنسيق سابقة مشكلات في نشر التصحيح. قالت المؤسسة إن التنسيق الخاص مع عمال التعدين والبورصات بدأ في 31 مايو لتقليل فرصة الاستغلال قبل الكشف العام.
نشطت Zebra 5.0.0 الشوكة الصلبة (hard fork) NU6.2 عند ارتفاع كتلة الشبكة الرئيسية 3,364,600. أعادت الترقية تمكين إجراءات Orchard بدائرة مصححة ووجهت إثباتات Orchard إلى مفتاح تحقق جديد لكل دائرة. كما يمثل هذا الإصدار ثاني ترقية بروتوكول مدفوعة بالأمان في تاريخ Zcash منذ عام 2016.
كانت هناك حاجة إلى شوكة صلبة لأن إصلاح دائرة إثبات عدم المعرفة (zero-knowledge proof) يتطلب مفتاح تحقق مثبتًا جديدًا.
«نحث بشدة جميع مشغلي العقد على الترقية إلى Zebra 5.0.0 في أقرب وقت ممكن»، قالت مؤسسة Zcash.
اكتشف الخطأ في 29 مايو من قبل الباحث الأمني المستقل تايلور هورنبي أثناء تدقيق بروتوكول لـ Shielded Labs. أكد مهندسو ZODL دايرا-إيما هوبوود، وكريس ناتيكومب، وجاك جريج المشكلة في غضون ساعات وبدأوا العمل على إصلاح.
قالت المؤسسة إن العيب كان يمكن أن يسمح بتغييرات غير صالحة في الحالة داخل Orchard واحتمال الإنفاق المزدوج (double spending) داخل هذا المجمع. كما قالت إن آلية البوابة الدوارة (turnstile mechanism) الخاصة بـ Zcash حمت إجمالي المعروض من ZEC، و«لا يوجد دليل على إنشاء قيمة غير مصرح بها». تضمنت الشفرة المتأثرة إصدارات halo2_gadgets و orchard و zcash_primitives الأقدم، بالإضافة إلى إصدارات zcashd من 5.0.0 إلى 6.12.3.
Orchard هو أحدث مجمع محمي لـ Zcash وجزء أساسي من نظام الخصوصية الخاص بها. تم إطلاقه مع NU5 في عام 2022 ويستخدم Halo 2، مما أزال الحاجة إلى إعداد موثوق به. جعل هذا التصميم Orchard جزءًا رئيسيًا من خارطة طريق خصوصية Zcash الحالية.
ركزت التغطية السوقية ذات الصلة مؤخرًا على تزايد استخدام Zcash المحمي. ذكر تقرير حديث أن حوالي 30% من إجمالي المعروض من ZEC قد انتقل إلى مجمعات محمية، مع احتفاظ Orchard بـ 4.2 مليون ZEC ومعظم النمو الأخير.
قالت المؤسسة إن خصوصية المستخدم لم تتضرر أثناء الحادث. وظلت معاملات Sapling والمعاملات الشفافة تعمل بشكل طبيعي أيضًا بينما ظلت إجراءات Orchard متوقفة مؤقتًا.
يواجه مشغلو العقد الآن المهمة الرئيسية المتمثلة في الترقية إلى Zebra 5.0.0، بدلاً من الاعتماد على الإصدارات القديمة. قد يحتاج المشغلون الذين ظلوا على شوكة غير صحيحة بعد NU6.2 إلى إعادة المزامنة من البداية أو الاستعادة من نسخة احتياطية تم إجراؤها قبل التنشيط.