عند إجراء التحقق الرسمي لنظام zk-SNARKs، فإن معالجة نظام الذاكرة الفرعي تعتبر تحديًا رئيسيًا. على عكس الآلات الافتراضية التقليدية، يستخدم zkVM جدول التنفيذ والجدول المساعد لتمثيل حالة الذاكرة، مما يتطلب طرق تحقق خاصة.
نظام الذاكرة في zkWasm يتكون من جدول التنفيذ وجدول الذاكرة. يسجل جدول التنفيذ عملية تنفيذ التعليمات، بينما يحتفظ جدول الذاكرة بسجل كامل لجميع الوصولات إلى الذاكرة. لتبسيط التطوير، يوفر zkWasm طبقة تجريدية، من خلال دالتين alloc_memory_table_lookup_write_cell و alloc_memory_table_lookup_read_cell للتعامل مع الذاكرة.
خلال عملية التحقق، نعتبر جدول الذاكرة هيكل بيانات متغير، من خلال وظيفة memory_at نبني خريطة بيانات العنوان. هذا يمكن أن يثبت أن القيود التي ينتجها دالة alloc تعادل العمليات set و get التي تتم على الخريطة، مما يبسط التحقق من التعليمات إلى شكل مشابه لمفسر غير ZK.
لتجنب تلاعب المهاجمين بجدول الذاكرة، يعتمد zkWasm آلية عد لتتبع عدد الإدخالات الفعالة. تحتفظ جداول التنفيذ وجداول الذاكرة بعدادات بشكل منفصل، مع ضمان التوافق بين الاثنين من خلال القيود. يتطلب ذلك دقة أكبر أثناء التحقق، حيث يحتاج إلى إثبات أن كل تعليمة تتوافق مع العدد الصحيح من إدخالات جدول الذاكرة.
عملية التحقق تعتمد على نهج من أعلى إلى أسفل، وتشمل ثلاث خطوات:
يجب تقدير عدد الإدخالات التي يجب على الأمر إنشاؤها
يجب ألا يتجاوز عدد الإدخالات في جدول الإثبات التوقعات
إثبات أن cum_mops و instructions_mops متسقة دائمًا في الجدول من خلال البرهان بالاستقراء
تساعد هذه الطريقة التفصيلية للتحقق في اكتشاف الأخطاء المحتملة، مثل مشكلة رئيسية في آلية عد جدول القفز.
لتحقيق التحقق المعياري، قمنا بتقسيم النظام إلى ثلاثة أجزاء مستقلة: تحقق دائرة التعليمات، تحقق جدول التنفيذ، وتنفيذ جدول الذاكرة. هذه الهيكلية تتيح للعديد من المهندسين العمل بشكل متوازٍ، مما يزيد من كفاءة التحقق.
بشكل عام، على الرغم من أن zkVM تحقق يظهر اختلافات عند التعامل مع الحالة الديناميكية، إلا أنه من خلال مطابقة طبقة التجريد في التنفيذ، لا يزال من الممكن اعتماد نهج معياري مشابه للتحقق من المفسرات التقليدية. تقلل هذه الطريقة من تأثير الاختلافات إلى الحد الأدنى، مما يسمح بالتحقق المستقل لكل تعليمة بناءً على واجهة get-set.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
تسجيلات الإعجاب 15
أعجبني
15
7
مشاركة
تعليق
0/400
AltcoinHunter
· 07-04 16:51
رؤى قيمة满满التعدين佬
شاهد النسخة الأصليةرد0
PerpetualLonger
· 07-04 00:09
إدارة الذاكرة مهمة للغاية
شاهد النسخة الأصليةرد0
MercilessHalal
· 07-03 12:25
طريقة التحقق قوية جداً
شاهد النسخة الأصليةرد0
BearHugger
· 07-02 01:45
التكلفة مرتفعة للغاية وغير مناسبة للاستخدام التجاري
طرق التحقق من الذاكرة في نظام إثبات المعرفة الصفرية: كيف تحقق zkWasm التحليل الرسمي
zk-SNARKs: التحقق الرسمي لطرق إثبات الذاكرة
عند إجراء التحقق الرسمي لنظام zk-SNARKs، فإن معالجة نظام الذاكرة الفرعي تعتبر تحديًا رئيسيًا. على عكس الآلات الافتراضية التقليدية، يستخدم zkVM جدول التنفيذ والجدول المساعد لتمثيل حالة الذاكرة، مما يتطلب طرق تحقق خاصة.
نظام الذاكرة في zkWasm يتكون من جدول التنفيذ وجدول الذاكرة. يسجل جدول التنفيذ عملية تنفيذ التعليمات، بينما يحتفظ جدول الذاكرة بسجل كامل لجميع الوصولات إلى الذاكرة. لتبسيط التطوير، يوفر zkWasm طبقة تجريدية، من خلال دالتين alloc_memory_table_lookup_write_cell و alloc_memory_table_lookup_read_cell للتعامل مع الذاكرة.
خلال عملية التحقق، نعتبر جدول الذاكرة هيكل بيانات متغير، من خلال وظيفة memory_at نبني خريطة بيانات العنوان. هذا يمكن أن يثبت أن القيود التي ينتجها دالة alloc تعادل العمليات set و get التي تتم على الخريطة، مما يبسط التحقق من التعليمات إلى شكل مشابه لمفسر غير ZK.
لتجنب تلاعب المهاجمين بجدول الذاكرة، يعتمد zkWasm آلية عد لتتبع عدد الإدخالات الفعالة. تحتفظ جداول التنفيذ وجداول الذاكرة بعدادات بشكل منفصل، مع ضمان التوافق بين الاثنين من خلال القيود. يتطلب ذلك دقة أكبر أثناء التحقق، حيث يحتاج إلى إثبات أن كل تعليمة تتوافق مع العدد الصحيح من إدخالات جدول الذاكرة.
عملية التحقق تعتمد على نهج من أعلى إلى أسفل، وتشمل ثلاث خطوات:
تساعد هذه الطريقة التفصيلية للتحقق في اكتشاف الأخطاء المحتملة، مثل مشكلة رئيسية في آلية عد جدول القفز.
لتحقيق التحقق المعياري، قمنا بتقسيم النظام إلى ثلاثة أجزاء مستقلة: تحقق دائرة التعليمات، تحقق جدول التنفيذ، وتنفيذ جدول الذاكرة. هذه الهيكلية تتيح للعديد من المهندسين العمل بشكل متوازٍ، مما يزيد من كفاءة التحقق.
بشكل عام، على الرغم من أن zkVM تحقق يظهر اختلافات عند التعامل مع الحالة الديناميكية، إلا أنه من خلال مطابقة طبقة التجريد في التنفيذ، لا يزال من الممكن اعتماد نهج معياري مشابه للتحقق من المفسرات التقليدية. تقلل هذه الطريقة من تأثير الاختلافات إلى الحد الأدنى، مما يسمح بالتحقق المستقل لكل تعليمة بناءً على واجهة get-set.