A Rust-to-Lean Verification Pipeline with AI Provers: An Experience Report
تقدم هذه الورقة مسار تحقق سليم ومفحوص عبر النواة يدمج أدوات استخراج لغة Rust إلى Lean، والمكتبات التشفيرية الرسمية، والمثبتات القائمة على الذكاء الاصطناعي لتوليد براهين صحة مدققة آلياً لكود تشفير Rust الإنتاجي ضمن مشروع zkEVM التابع لمؤسسة إيثيريوم بنجاح.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تخيل أن لديك مصنعًا عالي المخاطر يقوم ببناء المفاتيح الرقمية لخزنة ضخمة غير مرئية (آلة افتراضية ذات معرفة صفرية - Zero-Knowledge Virtual Machine). إذا كان هناك حتى ترس واحد صغير في هذا المصنع منحنيًا قليلاً، فسيتم اختراق أمن الخزنة بأكملها، ولن يعرف أحد ذلك حتى فوات الأوان.
لسنوات، كان فحص هذه التروس يشبه استئجار فريق من الميكانيكيين الخبراء لفحص كل مسمار يدويًا. كان الأمر بطيئًا، ومكلفًا، ويعتمد على عدم تفويت الميكانيكيين لأي شيء.
يصف هذا البحث خط إنتاج مؤتمتًا يقوم بثلاثة أشياء:
- ترجمة مخططات المصنع (المكتوبة بلغة معقدة تسمى Rust) إلى لغة رياضية عالمية (Lean 4) يمكن للحاسوب فهمها تمامًا.
- توفير "معيار ذهبي" مثالي ومكتوب مسبقًا لكيفية عمل الآلة (باستخدام مكتبات تسمى ArkLib و CompPoly).
- توظيف مساعد ذكاء اصطناعي فائق الذكاء (يُدعى Aleph و Aristotle) لمقارنة المخططات المترجمة بالمعيار الذهبي وكتابة البرهان الذي يثبت تطابقهما.
إليك كيف تعمل هذه العملية، باستخدام تشبيهات بسيطة:
1. المترجم (Rust إلى Lean)
مخططات المصنع مكتوبة بلغة Rust، وهي لغة يحبها المهندسون لبناء برمجيات سريعة وآمنة. ومع ذلك، فإن "القضاة الرياضيين" (نظام Lean 4) لا يتحدثون لغة Rust؛ بل يتحدثون لغة الرياضيات البحتة فقط.
يستخدم البحث أدوات تسمى Aeneas و Hax كمترجمين. فهي تأخذ كود Rust وتحوله إلى رياضيات "وظيفية بحتة" (pure functional).
- التشبيه: تخيل أخذ وصفة مكتوبة بلهجة طباخ (Rust) وترجمتها إلى صيغة كيميائية صارمة وخطوة بخطوة (Lean). يقوم المترجم أيضًا بإضافة "علامات سلامة" لكل خطوة. إذا كانت الخطوة قد تفشل (مثل القسمة على صفر أو نفاد المكونات)، فإن الترجمة تحدد ذلك بوضوح لكي تتمكن الرياضيات من التحقق منها.
2. المعيار الذهبي (المواصفات)
لا يمكنك إثبات أن الآلة تعمل ما لم يكن لديك تعريف لـ "العمل".
- التشبية: فكر في ArkLib و CompPoly كـ "كتاب القواعد الرسمي" للتشفير. يحتوي هذان الكتابان على تعريفات مجردة مثالية لكيفية سلوك أشياء مثل "طي ورقة" (FRI folding) أو "التحقق من شجرة ميركل" (Merkle tree) رياضيًا.
- الهدف هو إثبات أن كود Rust المترجم (آلة المصنع) يفعل بالضبط ما يقوله كتاب القواعد، لا أكثر ولا أقل.
3. كاتب البرهان بالذكاء الاصطناعي (الـ "عقل")
هذا هو الجزء الأكثر إثارة. بمجرد ترجمة الكود وجاهزية كتاب القواعد، تحتاج إلى كتابة برهان يثبت تطابقهما. تقليديًا، كان على عالم رياضيات بشري كتابة هذا البرهان، وهو أمر يشبه حل لغز ضخم ومعقد.
يقدم البحث أدوات إثبات تعتمد على الذكاء الاصطناعي (Aleph و Aristotle) للقيام بالعمل الشاق.
- التشبيه: تخيل الذكاء الاصطناعي كمحقق دؤوب وسريع للغاية. تعطيه المخطط المترجم وكتاب القواعد، فيقول: "لقد رأيت الرابط! ها هو البرهان".
- فحص سلامة حاسم: الذكاء الاصطناعي لا يكتفي فقط بـ قول إنه صحيح؛ بل يكتب البرهان بلغة يمكن لـ Lean Kernel (القاضي النهائي) قراءتها. يقوم الـ Kernel بفحص كل خطوة من منطق الذكاء الاصطناعي. إذا أخطأ الذكاء الاصطناعي في التخمين، فإن الـ Kernel يرفضه. لذا، يمكن للذكاء الاصطناعي أن يكون مبدعًا، لكن لا يمكنه الغش.
ما قاموا به فعليًا
طبق الفريق هذا المسار على أكواد تشفيرية حقيقية تُستخدم في مشاريع مؤسسة إيثيريوم (تحديدًا Plonky3 و RISC Zero).
- النجاح: نجحوا في إثبات أن أجزاء محددة من الكود (مثل حساب كيفية طي البيانات أو التحقق مما إذا كانت شجرة مدرجة بشكل صحيح) كانت مثالية رياضيًا.
- دور الذكاء الاصطناعي: في مثال محدد يتعلق بدالة تسمى
compute_log_arity_for_round، قام الذكاء الاصطناعي (Aleph) تلقائيًا بكتابة برهانيْن معقدين كانا عالقين سابقًا (موسومين بكلمة "sorry"، مما يعني "نحن نعلم أنه صحيح، لكننا لم نثبته بعد"). - دور البشر: كان الذكاء الاصطناعي رائعًا في التعامل مع الألغاز المنطقية، وسيناريوهات "إذا-إذن"، والرياضيات الأساسية. ومع ذلك، كان لا يزال بحاجة إلى البشر لـ:
- تصميم الاستراتيجية العامة (كتاب القواعد).
- التعامل مع الحلقات التكرارية المعقدة (مثل البحث عن النمط الصحيح في تسلسل متكرر).
- إصلاح أخطاء الترجمة حيث كان كود Rust معقدًا جدًا بحيث يصعب على المترجم تحويله.
العقبات (الفجوات الهندسية)
يعترف البحث بأن خط الإنتاج ليس مثاليًا بعد.
- عدم تطابق الإصدارات: المترجمات، وكتب القواعد، والذكاء الاصطناعي يتحدثون جميعًا "لهجات" مختلفة قليلاً من لغة الرياضيات. كان على الفريق التنسيق لجعل الجميع يعملون على نفس الإصدار.
- حدود الترجمة: بعض ميزات Rust المعقدة (مثل الأنواع العامة/generic types أو المكتبات الخارجية) يصعب على المترجمات تحويلها. اضطر الفريق لإعادة كتابة بعض الأكواد إلى "نموذج" أبسط فقط لكي يتمكن المترجم من فهمه.
الخلاصة
لا يدعي هذا البحث أن الذكاء الاصطناعي قد حل محل المهندسين البشر. بدلاً من ذلك، هو يظهر مسار عمل حيث:
- يقوم البشر بترجمة الكود ووضع الأهداف.
- يعمل الذكاء الاصطناعي كمساعد قوي لكتابة البراهين المنطقية المملة.
- يقوم حاسوب (Kernel) صارم بالتحقق من كل شيء لضمان السلامة.
النتيجة هي نظام فعال يحول أكواد التشفير الجاهزة للإنتاج إلى براهين مضمونة رياضيًا ومحققة آليًا، مما يجعل "الخزنة غير المرئية" أكثر أمانًا بشكل كبير.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.