Formally Verifying Noir Zero Knowledge Programs with NAVe
تقدم هذه الورقة NAVe، وهو برنامج مفتوح المصدر للتحقق الصوري يستخدم SMT-LIB ومحلل cvc5 للتحقق صوريًا من صحة القيود السليمة لبرامج Noir الخاصة بالمعرفة الصفرية عبر ترجمة تمثيلها الوسيط ACIR إلى معادلات حدودية ذات حقل منتهٍ.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تخيل أنك تقوم ببناء خزنة عالية الأمان. أنت تريد أن تثبت لمدير البنك أنك تعرف كلمة السر الخاصة بالخزنة دون أن تخبره بالفعل ما هي كلمة السر. هذا هو جوهر سحر إثباتات المعرفة الصفرية (Zero-Knowledge Proofs).
ومع ذلك، فإن بناء هذه الخزنات أمر معقد. "المخططات" لهذه الإثباتات هي ألغاز رياضية معقدة تسمى الدوائر الحسابية (arithmetic circuits). إذا كان هناك خطأ في سطر واحد من المخطط، فقد تصبح الخزنة غير آمنة، أو قد يفشل الإثبات.
تقدم هذه الورقة أداة جديدة تسمى NAVe (مُحقّق Noir Acir) مصممة لفحص هذه المخططات بحثاً عن الأخطاء قبل استخدامها فعلياً. وإليك كيف تعمل، مشروحة ببساطة:
١. المشكلة: "الوصفة السرية" مقابل "كتاب الطبخ"
يركز المؤلفون على لغة برمجة تسمى Noir. فكر في Noir ككتاب طبخ عالي المستوى يجعل كتابة وصفات هذه الخزنات أمراً سهلاً.
- الطباخ (المطور): يكتب وصفة بلغة Noir سهلة القراءة.
- المترجم (Compiler): يحول تلك الوصفة إلى دليل تعليمات صارم ومنخفض المستوى يسمى ACIR. هذا الدليل هو قائمة من المعادلات الرياضية التي يجب على الكمبيوتر حلها لإثبات أن الخزنة آمنة.
- الخطر: أحياناً، يرتكب المترجم خطأً، أو ينسى الطباخ تضمين خطوة حاسمة. في عالم المعرفة الصفرية (ZK)، يسمى هذا بكونه "غير مقيد" (under-constrained). إنه يشبه كتابة وصفة تقول "أضف الملح" ولكنك نسيت أن تحدد كميته. النتيجة قد تكون صالحة للأكل، لكنها ليست الطبق الذي كنت تنوي إعداده.
٢. الحل: "المحقق الرياضي" (NAVe)
ابتكر المؤلفون NAVe، وهو مُحقّق رسمي (formal verifier). فكر في NAVe كمحقق رياضي فائق الذكاء يقرأ دليل التعليمات منخفض المستوى (ACIR) ويتأكد مما إذا كانت الرياضيات تتوافق بالفعل مع ما أراد الطباخ تحقيقه.
يستخدم NAVe محرك منطق قوياً (يسمى SMT solver) لطرح أسئلة مثل:
- "إذا وضعت رقماً سرياً، هل ستؤدي الرياضيات دائماً إلى الإثبات العام الصحيح؟"
- "هل هناك أي طريقة لخداع النظام باستخدام رقم مزيف؟"
إذا كانت الرياضيات معطلة، فإن NAVe لا يكتفي بقول "خطأ". بل يعمل كمحقق يجد دليلاً: فهو يوضح للمطور بالضبط الرقم الذي كان بإمكانه استخدامه لكسر النظام. وهذا يساعدهم على إصلاح المخطط فوراً.
٣. طريقتان لحل اللغز
تصف الورقة طريقتين مختلفتين يقوم بهما NAVe بترجمة الألغاز الرياضية لحلها:
١. طريقة الأعداد الصحيحة: يعامل الأرقام كأعداد صحيحة عادية (١، ٢، ٣...) ويتحقق من الرياضيات باستخدام قواعد الحساب القياسية.
٢. طريقة المجال المحدود (Finite Field): يعامل الأرقام كما لو كانت على ساعة دائرية (حيث تعود بعد رقم معين إلى الصفر). هذه هي الطريقة التي تعمل بها إثباتات المعرفة الصفرية (ZK) فعلياً.
وجد المؤلفون أن أيًا من الطريقتين ليست مثالية لكل موقف. أحياناً يكون محقق "الأعداد الصحيحة" أسرع، وفي أحيان أخرى يكون محقق "المجال المحدود" أفضل. ويقترحون استخدام كلا المحققين في وقت واحد للحصول على أفضل النتائج.
٤. فخ "غير المقيد" (Unconstrained)
هناك ميزة فريدة في Noir وهي "الكود غير المقيد". تخيل جزءاً من الوصفة حيث يُسمح للطاهي بتخمين المكونات دون أن يتم التحقق منه. هذا مفيد للسرعة، ولكنه خطير إذا أخطأ الطاهي في التخمين.
- الخطر: قد يكتب المطور كوداً يبدو وكأنه يتحقق من المكونات، ولكن نظرًا لوجوده في القسم "غير المقيد"، فإن الكمبيوتر لا يفرض التحقق فعلياً.
- وظيفة NAVe: يبحث NAVe خصيصاً عن هذه "التحققات الشبحية". فهو يتحقق من أنه حتى لو استخدم المطور قسم "التخمين"، فقد أضاف قاعدة صارمة منفصلة (assert) للتأكد من أن التخمين كان صحيحاً بالفعل.
٥. ماذا وجدوا؟
اختبر المؤلفون NAVe على مجموعة متنوعة من برامج Noir الموجودة:
- إنه يعمل: نجح NAVe في كشف الأخطاء في البرامج التي لا تتوافق فيها الرياضيات مع الهدف المنشود.
- عنق الزجاجة: اكتشفوا أن التحقق من "قيود النطاق" (التأكد من أن الرقم يقع ضمن عدد معين من البتات، مثل التأكد مما إذا كان الرقم بين ٠ و٢٥٥) أمر صعب جداً على المحقق الرياضي؛ إذ يستغرق أحياناً وقتاً طويلاً أو يتوقف عن العمل.
- المستقبل: يخططون لبناء "اختصارات" (تجريدات) أفضل لمساعدة المحقق على حل ألغاز النطاق الصعبة هذه بشكل أسرع.
ملخص
باختصار، NAVe هو شبكة أمان للمطورين الذين يبنون تطبيقات تحافظ على الخصوصية. فهو يترجم الكود الخاص بهم إلى لغة رياضية صارمة ويستخدم حلاً قوياً لضمان أن الكود يفعل بالضبط ما يدعي فعله، مما يكشف عن الأخطاء الدقيقة التي قد تؤدي إلى ثغرات أمنية. إنه يشبه وجود مفتش صارم يفحص السلامة الهيكلية لجسر قبل السماح لأي شخص بالمرور فوقه.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.