إعادة توجيه العنوان الأصلي "نموذج المعرفة الصفرية: الجزء 1 - ما هو zk-VM؟"
ما هي براهين المعرفة الصفرية (ZKPs)؟
إذا لم تكن لديك معرفة مسبقة ببراهين المعرفة الصفرية (ZKP) ، فإن هذا الفيديو من Wired يشرح المفهوم في خمسة مستويات صعوبة بطريقة تفاعلية مع أمثلة وعروض توضيحية سهلة الفهم. يوصي.
بعبارات أبسط ، تمكن ZKPs أحد الأطراف (prover) من إثبات لطرف آخر (المدقق) أنهم يعرفون شيئا دون الكشف عن ماهية هذا الشيء أو أي معلومات إضافية. وبشكل أكثر تحديدا ، تثبت ZKPs معرفة جزء من البيانات ، أو معرفة نتيجة الحساب ، دون الكشف عن البيانات أو المدخلات. تتضمن عملية إنشاء دليل على المعرفة الصفرية سلسلة من النماذج الرياضية لتحويل نتائج الحساب إلى جزء من المعلومات التي لا معنى لها والتي تثبت التنفيذ الناجح للكود ، والتي يمكن التحقق منها لاحقا.
في بعض الحالات ، يتطلب الأمر عملا أقل للتحقق من الدليل ، الذي يتم إنشاؤه بعد جولات متعددة من التحويلات الجبرية والتشفير ، مما يتطلبه الأمر لتشغيل الحساب. هذا المزيج الفريد من الأمان وقابلية التوسع هو ما يجعل تشفير المعرفة الصفرية أداة قوية.
zkSNARKs: المعرفة الصفرية حجة موجزة غير تفاعلية للمعرفة
zkSTARKs: المعرفة الصفرية حجة شفافة قابلة للتطوير للمعرفة
(ملاحظة: يستخدم جسر Succinct SNARKs ولكن SP1 هو بروتوكول قائم على STARK)
تجدر الإشارة إلى أن جميع STARKs هي SNARKs ، ولكن ليست كل SNARKs هي STARKs.
لفهم عام أفضل ل SNARKs و STARKs ، نوصي بقراءة هذه السلسلة @krzhang / privacy-in-cryptocurrencies-zero-knowledge-and-zk-snarks-1-2-68ce1838fd9c"> المقالات التي كتبها يان تشانغ ويي صن من أكسيوم ، وهذه المجموعة من المقالات في جيثب فينتالي تان.
الجهاز الظاهري (VM) هو برنامج يقوم بتشغيل البرامج. في السياق ، zkVM هو جهاز كمبيوتر افتراضي يتم تنفيذه كنظام لتوليد براهين المعرفة الصفرية ، أو دائرة عالمية ، أو أداة ، لتوليد ZKPs لأي برنامج أو حساب.
تزيل zkVMs الحاجة إلى تعلم الرياضيات المعقدة والتشفير لتصميم وترميز ZK ، وتمكن أي مطور من تنفيذ البرامج المكتوبة بلغاتهم المفضلة وإنشاء ZKPs ، مما يجعل من الأسهل بكثير التكامل والتفاعل مع المعرفة الصفرية. بشكل عام ، تتضمن معظم الإشارات إلى zkVMs ضمنيا سلاسل أدوات المترجم وأنظمة الإثبات الملحقة بالجهاز الظاهري الذي ينفذ البرامج ، وليس فقط الجهاز الظاهري نفسه. أدناه ، نلخص المكونات الرئيسية ل zkVM ووظائفها:
المكونات الرئيسية ل zkVM
يخضع تصميم وتنفيذ كل مكون لاختيار الإثبات (SNARKs أو STARKs) وبنية مجموعة التعليمات (ISA) الخاصة ب zkVM. تقليديا ، يحدد ISA ما تستطيع وحدة المعالجة المركزية القيام به (أنواع البيانات والسجلات والذاكرة وما إلى ذلك) وتسلسل الإجراءات التي تقوم بها وحدة المعالجة المركزية عند تنفيذ برنامج. في السياق ، يحدد ISA رمز الجهاز القابل للتفسير والقابل للتنفيذ بواسطة الجهاز الظاهري. يمكن أن يؤدي اختيار ISA إلى اختلافات جذرية في إمكانية الوصول إلى zkVM وسهولة استخدامه ، بالإضافة إلى سرعة وكفاءة عمليات إنشاء الإثبات ، ويدعم بناء أي zkVM.
فيما يلي بعض الأمثلة على zkVMs ومكوناتها للرجوع إليها.
zkVMs ومكوناتها
في الوقت الحالي ، سنركز على التفاعلات بين كل مكون على مستوى عال لتوفير إطار عمل لفهم العمليات الجبرية والتشفير بالإضافة إلى مقايضات تصميم zkVM في مقال لاحق.
الرسم البياني التالي عبارة عن مخطط انسيابي عملية مجردة ومعممة ل zkVM ، مقسمة ومصنفة بين التنسيق (المدخلات / المخرجات) للبرنامج أثناء تحركه عبر مكونات zkVM. سوف ندرس كل عملية بعمق في المقالات اللاحقة.
التدفق العام ل zkVM
يكون تدفق عملية zkVM بشكل عام كما يلي:
يتلقى البروفير التتبع ويمثله كمجموعة من كثيرات الحدود المرتبطة بمجموعة من القيود ، ويترجم الحساب بشكل أساسي إلى جبر عن طريق رسم الحقائق رياضيا.
يلتزم البروفير بهذه كثيرات الحدود باستخدام مخطط الالتزام متعدد الحدود (PCS). مخطط الالتزام هو بروتوكول يسمح للبروفير بإنشاء بصمة لبعض البيانات X ، والتي تسمى الالتزام ب X ، وإثبات الحقائق لاحقا حول X دون الكشف عن X ، باستخدام الالتزام ب X. PCS هي بصمة الإصبع. نسخة موجزة "معالجة مسبقا" من القيود المفروضة على الحساب. يسمح هذا للبروفير بإثبات الحقائق حول الحساب ، والتي يتم التعبير عنها الآن في معادلة متعددة الحدود ، باستخدام القيم العشوائية التي اقترحها المدقق في الخطوات التالية.
يقوم البروفير بتشغيل دليل أوراكل تفاعلي متعدد الحدود (PIOP) لإظهار أن كثيرات الحدود الملتزم بها تمثل تتبع تنفيذ يفي بالقيود المحددة. PIOP هو بروتوكول إثبات تفاعلي يتكون من سلسلة من الجولات التي يرسل فيها البروفير التزامات إلى كثيرات الحدود ، ويستجيب المدقق بقيم حقل عشوائية ، ويقدم المدقق تقييمات لكثير الحدود عند هذه القيم العشوائية ، على غرار "حل" معادلة كثير الحدود باستخدام قيم عشوائية لإقناع المدقق بشكل محتمل.
تطبيق الاستدلال فيات شامير ؛ يقوم البروفير بتشغيل PIOP في وضع غير تفاعلي ، حيث يقتصر سلوك المدقق على إرسال نقاط تحدي عشوائية زائفة. في التشفير ، يحول دليل Fiat-Shamir دليلا تفاعليا للمعرفة إلى توقيع رقمي للتحقق منه. هذه الخطوة تشفر الدليل وتجعله صفر معرفة.
يجب على المدقق إقناع المدقق بأن تقييمات كثيرة الحدود المطالب بها صحيحة ، فيما يتعلق بالالتزامات متعددة الحدود التي أرسلها إلى المدقق. للقيام بذلك ، ينتج البروفير دليلا على "التقييم" أو "الفتح" ، والذي يتم توفيره بواسطة مخطط الالتزام متعدد الحدود (بصمة الإصبع).
باختصار ، يثبت دليل zkVM ، لبرنامج معين ، نتيجة معينة ، وشروط أولية معينة ، أن هناك بعض المدخلات التي تجعل البرنامج ينتج النتيجة المحددة عند تنفيذها من الشروط الأولية المحددة. يمكننا دمج هذه العبارة مع تدفق العملية للوصول إلى الوصف التالي ل zkVM.
يثبت دليل zkVM ، لبرنامج VM معين وإخراج معين ، أن هناك بعض المدخلات التي تجعل البرنامج المعين ينتج الإخراج المحدد عند تنفيذه على الجهاز الظاهري.
ما هي المعايير التي يجب أن نقيم بها zkVMs؟ بمعنى آخر ، متى يجب أن نقول أن zkVM أفضل من الآخر؟ بصدق ، تعتمد الإجابة على حالة الاستخدام.
تشير أبحاث السوق التي أجرتها Lita إلى أنه بالنسبة لمعظم حالات الاستخدام التجاري ، فإن أهم الخصائص ، خارج السرعة والكفاءة والإيجاز ، هي إما السرعة أو كفاءة الوقت الأساسي ، اعتمادا على التطبيق. بعض التطبيقات حساسة للسعر وتريد تحسين استهلاك الطاقة المنخفض والاستخدام المنخفض لرأس المال في إثبات ؛ بالنسبة لهؤلاء ، ربما تكون كفاءة الوقت الأساسي هي أهم مقياس يجب تحسينه. التطبيقات الأخرى ، لا سيما التطبيقات المتعلقة بالتمويل أو التداول ، حساسة لزمن الوصول وتريد تحسين السرعة.
تركز معظم مقارنات الأداء المعلنة حصريا على السرعة ، وهو أمر مهم ولكنه ليس قياسا شاملا للأداء. هناك أيضا بعض الخصائص المهمة التي تقيس موثوقية zkVM ؛ معظمها لا يرقى إلى معايير جاهزة للإنتاج ، حتى بالنسبة للشركات القائمة الرائدة في السوق.
نقترح بموجب هذا أنه يجب تقييم zkVMs وفقا للمعايير التالية ، مقسمة إلى مجموعتين فرعيتين:
المعايير الرئيسية لتقييم zk-VMs
خط الأساس: يقيس موثوقية zkVMs
الأداء: يقيس قدرات zkVM
4.1 خط الأساس: افتراضات الصحة والأمن والثقة
عند تقييم zkVMs للتطبيقات الحرجة للمهام ، يجب اعتبار الصحة والأمان كخط أساس. يجب أن يكون هناك سبب كاف للثقة في صحتها ، والأمن المزعوم القوي بما فيه الكفاية. أيضا ، يجب أن تكون افتراضات الثقة ضعيفة بما يكفي للتطبيق.
بدون هذه الخصائص ، من المحتمل أن يكون zkVM أسوأ من عديم الفائدة للتطبيق ، حيث قد يفشل في الأداء كما هو محدد ويعرض المستخدمين للقرصنة والاستغلال.
ط. الصواب
يتكون الصواب من ثلاث خصائص:
يمكن أن يكون لديك اكتمال دون سلامة. إذا أثبت نظام الإثبات كل شيء بما في ذلك الزيف ، فمن الواضح أنه كامل ولكنه ليس سليما. على العكس ، يمكن أن يكون لديك سلامة دون اكتمال. إذا أثبت نظام الإثبات وجود برنامج ولكنه لا يستطيع إثبات الحسابات ، فمن الواضح أنه سليم (بعد كل شيء ، لا يثبت أبدا أي زيف) ، ولكنه غير كامل.
ب. الأمن
في الممارسة العملية ، جميع خصائص الصحة الثلاثة لها تفاوتات غير صفرية. هذا يعني أن جميع البراهين هي احتمالات إحصائية للصحة ، وليست يقينا مطلقا. يشير التسامح إلى أقصى احتمال مقبول لفشل خاصية واحدة. التفاوتات الصفرية هي بالطبع مثالية ، لكن zkVMs لا تحقق تفاوتات صفرية على كل هذه الخصائص في الممارسة العملية. يبدو أن السلامة والاكتمال المثاليين لا يتوافقان مع الإيجاز ، ولا توجد طرق معروفة لتحقيق المعرفة الصفرية الكاملة. هناك طريقة شائعة لقياس الأمان في أجزاء الأمان ، حيث يشار إلى التسامح 1 / (2 ^ n) باسم n بت من الأمان. المزيد من أجزاء الأمان أفضل.
إذا كان zkVM صحيحا تماما ، فهذا لا يعني بالضرورة أنه موثوق. تعني الصحة فقط أن zkVM يفي بخصائص الأمان الخاصة به حتى التفاوتات المزعومة. هذا لا يعني أن التفاوتات المزعومة منخفضة بما يكفي لتكون جاهزة للسوق. أيضا ، إذا كان zkVM آمنا بدرجة كافية ، فهذا لا يعني أنه صحيح ؛ يشير الأمان إلى التفاوتات المزعومة ، وليس التفاوتات التي يتم تحقيقها بالفعل. فقط عندما يكون zkVM صحيحا تماما وآمنا بدرجة كافية ، يمكن القول أن zkVM موثوق به حتى التفاوتات المزعومة.
iii. افتراضات الثقة
عندما يكون لدى zkVMs افتراضات ثقة ، فإن هذا عادة ما يأخذ شكل عملية إعداد موثوقة. يتم تشغيل عملية الإعداد لنظام إثبات ZK مرة واحدة ، قبل إنشاء الدليل الأول باستخدام نظام الإثبات ، من أجل إنشاء بعض المعلومات تسمى "بيانات الإعداد". في عملية الإعداد الموثوق بها ، يقوم فرد واحد أو أكثر بإنشاء بعض العشوائية التي يتم دمجها في بيانات الإعداد ، ويجب افتراض أن واحدا على الأقل من هؤلاء الأفراد حذف العشوائية التي قاموا بدمجها في بيانات الإعداد.
هناك نوعان من نماذج افتراض الثقة الشائعة في الممارسة العملية.
ينص افتراض ثقة الأغلبية الصادقة على أنه من بين مجموعة من الأفراد N ، أظهر أكثر من N / 2 من هؤلاء الأفراد نزاهة في بعض التفاعلات (التفاعلات) المعينة مع النظام ، والذي يشيع استخدامه بواسطة blockchains
ينص افتراض الثقة "1 من N" على أنه من بين مجموعة من الأفراد N ، أظهر واحد على الأقل من هؤلاء الأفراد نزاهة في بعض التفاعلات (التفاعلات) المعينة مع النظام ، والذي يشيع استخدامه بواسطة الأدوات والتطبيقات القائمة على MPC.
من المتفق عليه عموما أن كل شيء آخر متساو ، فإن zkVMs التي لا تحتوي على افتراضات ثقة أكثر أمانا من zkVMs التي تتطلب افتراضات الثقة.
4.2 معضلة zkVM الثلاثية: موازنة السرعة والكفاءة والإيجاز في zkVMs
معضلة zkVM الثلاثية: السرعة والكفاءة والإيجاز
السرعة والكفاءة والإيجاز كلها خصائص مقياس منزلق. كل هذه العوامل تساهم في تكلفة المستخدم النهائي ل zkVM. تعتمد كيفية ترجيحها في التقييم على التطبيق. في كثير من الأحيان ، لا يكون الحل الأسرع هو الأكثر كفاءة أو الأكثر إيجازا. الحل الأكثر إيجازا ليس هو الأسرع أو الأكثر كفاءة. وهكذا دواليك. دعونا أولا نحدد كل خاصية قبل شرح علاقتها
ط. السرعة
يجب تحديد السرعة وقياسها بالنسبة لبرامج الاختبار والمدخلات والأنظمة المحددة لضمان إمكانية تقييمها كميا. يعد هذا المقياس بالغ الأهمية للتطبيقات الحساسة لزمن الانتقال حيث يكون التوفر الفوري للبروفات أمرا ضروريا ، ولكنه يأتي مع حمل أعلى وأحجام إثبات أكبر
ب. الكفاءة
يستهلك البروفير نوعين من الموارد: الزمان الأساسي والمكان. لذلك يمكن تقسيم الكفاءة إلى كفاءة الوقت الأساسي وكفاءة المكان.
كفاءة الوقت الأساسي: متوسط مقدار الوقت الذي يعمل فيه البروفير عبر جميع النوى مضروبا في عدد النوى التي تقوم بتشغيل prover. بالنسبة إلى محترف أحادي النواة ، فإن استهلاك الوقت الأساسي والسرعة هما نفس الشيء. بالنسبة لبروفير متعدد النواة يعمل في وضع متعدد النواة على نظام متعدد النواة ، فإن استهلاك الوقت الأساسي والسرعة ليسا نفس الشيء. إذا كان البرنامج يستخدم بشكل كامل 5 نوى أو خيوط لمدة 5 ثوان ، فسيكون ذلك 25 ثانية من وقت المستخدم و 5 ثوان من وقت ساعة الحائط.
كفاءة المساحة: تشير إلى سعة التخزين المستخدمة ، مثل ذاكرة الوصول العشوائي
وقت المستخدم مثير للاهتمام كوكيل للطاقة المستهلكة عن طريق تشغيل الحساب. في الحالة التي يتم فيها استخدام جميع النوى بالكامل طوال الوقت تقريبا ، يجب أن يظل استهلاك الطاقة لوحدة المعالجة المركزية ثابتا نسبيا. في هذه الحالة ، يجب أن يكون الوقت الذي يقضيه المستخدم من خلال تنفيذ التعليمات البرمجية المرتبطة بوحدة المعالجة المركزية ، في الغالب في وضع المستخدم ، متناسبا خطيا تقريبا مع عدد واط / ساعة (أي الطاقة) التي يستهلكها تنفيذ التعليمات البرمجية هذه.
يجب أن يكون الاقتصاد في استهلاك الطاقة ، أو استخدام موارد الحوسبة ، مثيرا للاهتمام من وجهة نظر أي عمليات إثبات لها نطاق كاف بحيث تكون فاتورة الطاقة الخاصة بها (أو فاتورة الحوسبة السحابية) لإثبات تكلفة تشغيلية كبيرة. لهذه الأسباب ، يعد وقت المستخدم مقياسا مثيرا للاهتمام. تسمح تكاليف الإثبات المنخفضة لمقدمي الخدمات بتمرير أسعار إثبات أقل للعملاء الحساسين للتكاليف.
يرتبط كلا النوعين من الكفاءة باستهلاك الطاقة لعملية الإثبات ومقدار رأس المال المستخدم في عملية الإثبات ، والذي يتعلق بالتكلفة المالية للإثبات. لتفعيل تعريف الكفاءة للقياس ، يجب وضع التعريف بالنسبة إلى واحد أو أكثر من برامج الاختبار ، وواحد أو أكثر من مدخلات الاختبار لكل من هذه البرامج ، ونظام اختبار واحد أو أكثر.
iii. الإيجاز
الإيجاز هو مركب من ثلاثة مقاييس متميزة ، مع تقسيم تعقيد التحقق من الإثبات:
عادة ما يكون التحقق عملية أساسية واحدة ، وبالتالي فإن السرعة وكفاءة الوقت الأساسي متكافئة بشكل عام في هذا السياق. كما هو الحال مع السرعة والكفاءة ، يتطلب تفعيل تعريف الإيجاز تحديد مجموعات من برامج الاختبار ومدخلات الاختبار وأنظمة الاختبار.
مع تحديد كل خاصية أداء ، نوضح الآن التأثيرات الخافتة لتحسين خاصية واحدة على الآخرين.
بشكل عام ، يعني التحسين لجودة واحدة عدم التحسين لجودة أخرى ، وبالتالي هناك حاجة إلى تحليل متعدد الأبعاد لاختيار الحل الأمثل على أساس كل حالة على حدة.
قد تكون إحدى الطرق الجيدة لترجيح هذه الخصائص في التقييم هي تحديد المستويات المقبولة لكل خاصية ثم تحديد الخصائص الأكثر أهمية. يجب تحسين الخصائص الأكثر أهمية ، مع مراعاة الحفاظ على مستويات جيدة بما يكفي في جميع الخصائص الأخرى.
فيما يلي نلخص كل عقار واعتباراته الرئيسية:
خصائص تقييم zkVMs
مع الجدول أعلاه ، نختتم بموجب هذا المقالة الأولى من سلسلتنا. في المقالات التالية ، سنبني على المخطط الانسيابي الموضح أعلاه لشرح العمليات الحسابية والتشفير الشائعة في zkVMs.
إذا وجدت هذا مفيدا ، فتفضل بزيارة موقعنا على الإنترنت و gitbook لمعرفة المزيد حول ما نقوم ببنائه في Lita.
أيضا ، تابعنا على X و Discord للبقاء على اطلاع دائم حتى لا تفوتك بقية السلسلة
إعادة توجيه العنوان الأصلي "نموذج المعرفة الصفرية: الجزء 1 - ما هو zk-VM؟"
ما هي براهين المعرفة الصفرية (ZKPs)؟
إذا لم تكن لديك معرفة مسبقة ببراهين المعرفة الصفرية (ZKP) ، فإن هذا الفيديو من Wired يشرح المفهوم في خمسة مستويات صعوبة بطريقة تفاعلية مع أمثلة وعروض توضيحية سهلة الفهم. يوصي.
بعبارات أبسط ، تمكن ZKPs أحد الأطراف (prover) من إثبات لطرف آخر (المدقق) أنهم يعرفون شيئا دون الكشف عن ماهية هذا الشيء أو أي معلومات إضافية. وبشكل أكثر تحديدا ، تثبت ZKPs معرفة جزء من البيانات ، أو معرفة نتيجة الحساب ، دون الكشف عن البيانات أو المدخلات. تتضمن عملية إنشاء دليل على المعرفة الصفرية سلسلة من النماذج الرياضية لتحويل نتائج الحساب إلى جزء من المعلومات التي لا معنى لها والتي تثبت التنفيذ الناجح للكود ، والتي يمكن التحقق منها لاحقا.
في بعض الحالات ، يتطلب الأمر عملا أقل للتحقق من الدليل ، الذي يتم إنشاؤه بعد جولات متعددة من التحويلات الجبرية والتشفير ، مما يتطلبه الأمر لتشغيل الحساب. هذا المزيج الفريد من الأمان وقابلية التوسع هو ما يجعل تشفير المعرفة الصفرية أداة قوية.
zkSNARKs: المعرفة الصفرية حجة موجزة غير تفاعلية للمعرفة
zkSTARKs: المعرفة الصفرية حجة شفافة قابلة للتطوير للمعرفة
(ملاحظة: يستخدم جسر Succinct SNARKs ولكن SP1 هو بروتوكول قائم على STARK)
تجدر الإشارة إلى أن جميع STARKs هي SNARKs ، ولكن ليست كل SNARKs هي STARKs.
لفهم عام أفضل ل SNARKs و STARKs ، نوصي بقراءة هذه السلسلة @krzhang / privacy-in-cryptocurrencies-zero-knowledge-and-zk-snarks-1-2-68ce1838fd9c"> المقالات التي كتبها يان تشانغ ويي صن من أكسيوم ، وهذه المجموعة من المقالات في جيثب فينتالي تان.
الجهاز الظاهري (VM) هو برنامج يقوم بتشغيل البرامج. في السياق ، zkVM هو جهاز كمبيوتر افتراضي يتم تنفيذه كنظام لتوليد براهين المعرفة الصفرية ، أو دائرة عالمية ، أو أداة ، لتوليد ZKPs لأي برنامج أو حساب.
تزيل zkVMs الحاجة إلى تعلم الرياضيات المعقدة والتشفير لتصميم وترميز ZK ، وتمكن أي مطور من تنفيذ البرامج المكتوبة بلغاتهم المفضلة وإنشاء ZKPs ، مما يجعل من الأسهل بكثير التكامل والتفاعل مع المعرفة الصفرية. بشكل عام ، تتضمن معظم الإشارات إلى zkVMs ضمنيا سلاسل أدوات المترجم وأنظمة الإثبات الملحقة بالجهاز الظاهري الذي ينفذ البرامج ، وليس فقط الجهاز الظاهري نفسه. أدناه ، نلخص المكونات الرئيسية ل zkVM ووظائفها:
المكونات الرئيسية ل zkVM
يخضع تصميم وتنفيذ كل مكون لاختيار الإثبات (SNARKs أو STARKs) وبنية مجموعة التعليمات (ISA) الخاصة ب zkVM. تقليديا ، يحدد ISA ما تستطيع وحدة المعالجة المركزية القيام به (أنواع البيانات والسجلات والذاكرة وما إلى ذلك) وتسلسل الإجراءات التي تقوم بها وحدة المعالجة المركزية عند تنفيذ برنامج. في السياق ، يحدد ISA رمز الجهاز القابل للتفسير والقابل للتنفيذ بواسطة الجهاز الظاهري. يمكن أن يؤدي اختيار ISA إلى اختلافات جذرية في إمكانية الوصول إلى zkVM وسهولة استخدامه ، بالإضافة إلى سرعة وكفاءة عمليات إنشاء الإثبات ، ويدعم بناء أي zkVM.
فيما يلي بعض الأمثلة على zkVMs ومكوناتها للرجوع إليها.
zkVMs ومكوناتها
في الوقت الحالي ، سنركز على التفاعلات بين كل مكون على مستوى عال لتوفير إطار عمل لفهم العمليات الجبرية والتشفير بالإضافة إلى مقايضات تصميم zkVM في مقال لاحق.
الرسم البياني التالي عبارة عن مخطط انسيابي عملية مجردة ومعممة ل zkVM ، مقسمة ومصنفة بين التنسيق (المدخلات / المخرجات) للبرنامج أثناء تحركه عبر مكونات zkVM. سوف ندرس كل عملية بعمق في المقالات اللاحقة.
التدفق العام ل zkVM
يكون تدفق عملية zkVM بشكل عام كما يلي:
يتلقى البروفير التتبع ويمثله كمجموعة من كثيرات الحدود المرتبطة بمجموعة من القيود ، ويترجم الحساب بشكل أساسي إلى جبر عن طريق رسم الحقائق رياضيا.
يلتزم البروفير بهذه كثيرات الحدود باستخدام مخطط الالتزام متعدد الحدود (PCS). مخطط الالتزام هو بروتوكول يسمح للبروفير بإنشاء بصمة لبعض البيانات X ، والتي تسمى الالتزام ب X ، وإثبات الحقائق لاحقا حول X دون الكشف عن X ، باستخدام الالتزام ب X. PCS هي بصمة الإصبع. نسخة موجزة "معالجة مسبقا" من القيود المفروضة على الحساب. يسمح هذا للبروفير بإثبات الحقائق حول الحساب ، والتي يتم التعبير عنها الآن في معادلة متعددة الحدود ، باستخدام القيم العشوائية التي اقترحها المدقق في الخطوات التالية.
يقوم البروفير بتشغيل دليل أوراكل تفاعلي متعدد الحدود (PIOP) لإظهار أن كثيرات الحدود الملتزم بها تمثل تتبع تنفيذ يفي بالقيود المحددة. PIOP هو بروتوكول إثبات تفاعلي يتكون من سلسلة من الجولات التي يرسل فيها البروفير التزامات إلى كثيرات الحدود ، ويستجيب المدقق بقيم حقل عشوائية ، ويقدم المدقق تقييمات لكثير الحدود عند هذه القيم العشوائية ، على غرار "حل" معادلة كثير الحدود باستخدام قيم عشوائية لإقناع المدقق بشكل محتمل.
تطبيق الاستدلال فيات شامير ؛ يقوم البروفير بتشغيل PIOP في وضع غير تفاعلي ، حيث يقتصر سلوك المدقق على إرسال نقاط تحدي عشوائية زائفة. في التشفير ، يحول دليل Fiat-Shamir دليلا تفاعليا للمعرفة إلى توقيع رقمي للتحقق منه. هذه الخطوة تشفر الدليل وتجعله صفر معرفة.
يجب على المدقق إقناع المدقق بأن تقييمات كثيرة الحدود المطالب بها صحيحة ، فيما يتعلق بالالتزامات متعددة الحدود التي أرسلها إلى المدقق. للقيام بذلك ، ينتج البروفير دليلا على "التقييم" أو "الفتح" ، والذي يتم توفيره بواسطة مخطط الالتزام متعدد الحدود (بصمة الإصبع).
باختصار ، يثبت دليل zkVM ، لبرنامج معين ، نتيجة معينة ، وشروط أولية معينة ، أن هناك بعض المدخلات التي تجعل البرنامج ينتج النتيجة المحددة عند تنفيذها من الشروط الأولية المحددة. يمكننا دمج هذه العبارة مع تدفق العملية للوصول إلى الوصف التالي ل zkVM.
يثبت دليل zkVM ، لبرنامج VM معين وإخراج معين ، أن هناك بعض المدخلات التي تجعل البرنامج المعين ينتج الإخراج المحدد عند تنفيذه على الجهاز الظاهري.
ما هي المعايير التي يجب أن نقيم بها zkVMs؟ بمعنى آخر ، متى يجب أن نقول أن zkVM أفضل من الآخر؟ بصدق ، تعتمد الإجابة على حالة الاستخدام.
تشير أبحاث السوق التي أجرتها Lita إلى أنه بالنسبة لمعظم حالات الاستخدام التجاري ، فإن أهم الخصائص ، خارج السرعة والكفاءة والإيجاز ، هي إما السرعة أو كفاءة الوقت الأساسي ، اعتمادا على التطبيق. بعض التطبيقات حساسة للسعر وتريد تحسين استهلاك الطاقة المنخفض والاستخدام المنخفض لرأس المال في إثبات ؛ بالنسبة لهؤلاء ، ربما تكون كفاءة الوقت الأساسي هي أهم مقياس يجب تحسينه. التطبيقات الأخرى ، لا سيما التطبيقات المتعلقة بالتمويل أو التداول ، حساسة لزمن الوصول وتريد تحسين السرعة.
تركز معظم مقارنات الأداء المعلنة حصريا على السرعة ، وهو أمر مهم ولكنه ليس قياسا شاملا للأداء. هناك أيضا بعض الخصائص المهمة التي تقيس موثوقية zkVM ؛ معظمها لا يرقى إلى معايير جاهزة للإنتاج ، حتى بالنسبة للشركات القائمة الرائدة في السوق.
نقترح بموجب هذا أنه يجب تقييم zkVMs وفقا للمعايير التالية ، مقسمة إلى مجموعتين فرعيتين:
المعايير الرئيسية لتقييم zk-VMs
خط الأساس: يقيس موثوقية zkVMs
الأداء: يقيس قدرات zkVM
4.1 خط الأساس: افتراضات الصحة والأمن والثقة
عند تقييم zkVMs للتطبيقات الحرجة للمهام ، يجب اعتبار الصحة والأمان كخط أساس. يجب أن يكون هناك سبب كاف للثقة في صحتها ، والأمن المزعوم القوي بما فيه الكفاية. أيضا ، يجب أن تكون افتراضات الثقة ضعيفة بما يكفي للتطبيق.
بدون هذه الخصائص ، من المحتمل أن يكون zkVM أسوأ من عديم الفائدة للتطبيق ، حيث قد يفشل في الأداء كما هو محدد ويعرض المستخدمين للقرصنة والاستغلال.
ط. الصواب
يتكون الصواب من ثلاث خصائص:
يمكن أن يكون لديك اكتمال دون سلامة. إذا أثبت نظام الإثبات كل شيء بما في ذلك الزيف ، فمن الواضح أنه كامل ولكنه ليس سليما. على العكس ، يمكن أن يكون لديك سلامة دون اكتمال. إذا أثبت نظام الإثبات وجود برنامج ولكنه لا يستطيع إثبات الحسابات ، فمن الواضح أنه سليم (بعد كل شيء ، لا يثبت أبدا أي زيف) ، ولكنه غير كامل.
ب. الأمن
في الممارسة العملية ، جميع خصائص الصحة الثلاثة لها تفاوتات غير صفرية. هذا يعني أن جميع البراهين هي احتمالات إحصائية للصحة ، وليست يقينا مطلقا. يشير التسامح إلى أقصى احتمال مقبول لفشل خاصية واحدة. التفاوتات الصفرية هي بالطبع مثالية ، لكن zkVMs لا تحقق تفاوتات صفرية على كل هذه الخصائص في الممارسة العملية. يبدو أن السلامة والاكتمال المثاليين لا يتوافقان مع الإيجاز ، ولا توجد طرق معروفة لتحقيق المعرفة الصفرية الكاملة. هناك طريقة شائعة لقياس الأمان في أجزاء الأمان ، حيث يشار إلى التسامح 1 / (2 ^ n) باسم n بت من الأمان. المزيد من أجزاء الأمان أفضل.
إذا كان zkVM صحيحا تماما ، فهذا لا يعني بالضرورة أنه موثوق. تعني الصحة فقط أن zkVM يفي بخصائص الأمان الخاصة به حتى التفاوتات المزعومة. هذا لا يعني أن التفاوتات المزعومة منخفضة بما يكفي لتكون جاهزة للسوق. أيضا ، إذا كان zkVM آمنا بدرجة كافية ، فهذا لا يعني أنه صحيح ؛ يشير الأمان إلى التفاوتات المزعومة ، وليس التفاوتات التي يتم تحقيقها بالفعل. فقط عندما يكون zkVM صحيحا تماما وآمنا بدرجة كافية ، يمكن القول أن zkVM موثوق به حتى التفاوتات المزعومة.
iii. افتراضات الثقة
عندما يكون لدى zkVMs افتراضات ثقة ، فإن هذا عادة ما يأخذ شكل عملية إعداد موثوقة. يتم تشغيل عملية الإعداد لنظام إثبات ZK مرة واحدة ، قبل إنشاء الدليل الأول باستخدام نظام الإثبات ، من أجل إنشاء بعض المعلومات تسمى "بيانات الإعداد". في عملية الإعداد الموثوق بها ، يقوم فرد واحد أو أكثر بإنشاء بعض العشوائية التي يتم دمجها في بيانات الإعداد ، ويجب افتراض أن واحدا على الأقل من هؤلاء الأفراد حذف العشوائية التي قاموا بدمجها في بيانات الإعداد.
هناك نوعان من نماذج افتراض الثقة الشائعة في الممارسة العملية.
ينص افتراض ثقة الأغلبية الصادقة على أنه من بين مجموعة من الأفراد N ، أظهر أكثر من N / 2 من هؤلاء الأفراد نزاهة في بعض التفاعلات (التفاعلات) المعينة مع النظام ، والذي يشيع استخدامه بواسطة blockchains
ينص افتراض الثقة "1 من N" على أنه من بين مجموعة من الأفراد N ، أظهر واحد على الأقل من هؤلاء الأفراد نزاهة في بعض التفاعلات (التفاعلات) المعينة مع النظام ، والذي يشيع استخدامه بواسطة الأدوات والتطبيقات القائمة على MPC.
من المتفق عليه عموما أن كل شيء آخر متساو ، فإن zkVMs التي لا تحتوي على افتراضات ثقة أكثر أمانا من zkVMs التي تتطلب افتراضات الثقة.
4.2 معضلة zkVM الثلاثية: موازنة السرعة والكفاءة والإيجاز في zkVMs
معضلة zkVM الثلاثية: السرعة والكفاءة والإيجاز
السرعة والكفاءة والإيجاز كلها خصائص مقياس منزلق. كل هذه العوامل تساهم في تكلفة المستخدم النهائي ل zkVM. تعتمد كيفية ترجيحها في التقييم على التطبيق. في كثير من الأحيان ، لا يكون الحل الأسرع هو الأكثر كفاءة أو الأكثر إيجازا. الحل الأكثر إيجازا ليس هو الأسرع أو الأكثر كفاءة. وهكذا دواليك. دعونا أولا نحدد كل خاصية قبل شرح علاقتها
ط. السرعة
يجب تحديد السرعة وقياسها بالنسبة لبرامج الاختبار والمدخلات والأنظمة المحددة لضمان إمكانية تقييمها كميا. يعد هذا المقياس بالغ الأهمية للتطبيقات الحساسة لزمن الانتقال حيث يكون التوفر الفوري للبروفات أمرا ضروريا ، ولكنه يأتي مع حمل أعلى وأحجام إثبات أكبر
ب. الكفاءة
يستهلك البروفير نوعين من الموارد: الزمان الأساسي والمكان. لذلك يمكن تقسيم الكفاءة إلى كفاءة الوقت الأساسي وكفاءة المكان.
كفاءة الوقت الأساسي: متوسط مقدار الوقت الذي يعمل فيه البروفير عبر جميع النوى مضروبا في عدد النوى التي تقوم بتشغيل prover. بالنسبة إلى محترف أحادي النواة ، فإن استهلاك الوقت الأساسي والسرعة هما نفس الشيء. بالنسبة لبروفير متعدد النواة يعمل في وضع متعدد النواة على نظام متعدد النواة ، فإن استهلاك الوقت الأساسي والسرعة ليسا نفس الشيء. إذا كان البرنامج يستخدم بشكل كامل 5 نوى أو خيوط لمدة 5 ثوان ، فسيكون ذلك 25 ثانية من وقت المستخدم و 5 ثوان من وقت ساعة الحائط.
كفاءة المساحة: تشير إلى سعة التخزين المستخدمة ، مثل ذاكرة الوصول العشوائي
وقت المستخدم مثير للاهتمام كوكيل للطاقة المستهلكة عن طريق تشغيل الحساب. في الحالة التي يتم فيها استخدام جميع النوى بالكامل طوال الوقت تقريبا ، يجب أن يظل استهلاك الطاقة لوحدة المعالجة المركزية ثابتا نسبيا. في هذه الحالة ، يجب أن يكون الوقت الذي يقضيه المستخدم من خلال تنفيذ التعليمات البرمجية المرتبطة بوحدة المعالجة المركزية ، في الغالب في وضع المستخدم ، متناسبا خطيا تقريبا مع عدد واط / ساعة (أي الطاقة) التي يستهلكها تنفيذ التعليمات البرمجية هذه.
يجب أن يكون الاقتصاد في استهلاك الطاقة ، أو استخدام موارد الحوسبة ، مثيرا للاهتمام من وجهة نظر أي عمليات إثبات لها نطاق كاف بحيث تكون فاتورة الطاقة الخاصة بها (أو فاتورة الحوسبة السحابية) لإثبات تكلفة تشغيلية كبيرة. لهذه الأسباب ، يعد وقت المستخدم مقياسا مثيرا للاهتمام. تسمح تكاليف الإثبات المنخفضة لمقدمي الخدمات بتمرير أسعار إثبات أقل للعملاء الحساسين للتكاليف.
يرتبط كلا النوعين من الكفاءة باستهلاك الطاقة لعملية الإثبات ومقدار رأس المال المستخدم في عملية الإثبات ، والذي يتعلق بالتكلفة المالية للإثبات. لتفعيل تعريف الكفاءة للقياس ، يجب وضع التعريف بالنسبة إلى واحد أو أكثر من برامج الاختبار ، وواحد أو أكثر من مدخلات الاختبار لكل من هذه البرامج ، ونظام اختبار واحد أو أكثر.
iii. الإيجاز
الإيجاز هو مركب من ثلاثة مقاييس متميزة ، مع تقسيم تعقيد التحقق من الإثبات:
عادة ما يكون التحقق عملية أساسية واحدة ، وبالتالي فإن السرعة وكفاءة الوقت الأساسي متكافئة بشكل عام في هذا السياق. كما هو الحال مع السرعة والكفاءة ، يتطلب تفعيل تعريف الإيجاز تحديد مجموعات من برامج الاختبار ومدخلات الاختبار وأنظمة الاختبار.
مع تحديد كل خاصية أداء ، نوضح الآن التأثيرات الخافتة لتحسين خاصية واحدة على الآخرين.
بشكل عام ، يعني التحسين لجودة واحدة عدم التحسين لجودة أخرى ، وبالتالي هناك حاجة إلى تحليل متعدد الأبعاد لاختيار الحل الأمثل على أساس كل حالة على حدة.
قد تكون إحدى الطرق الجيدة لترجيح هذه الخصائص في التقييم هي تحديد المستويات المقبولة لكل خاصية ثم تحديد الخصائص الأكثر أهمية. يجب تحسين الخصائص الأكثر أهمية ، مع مراعاة الحفاظ على مستويات جيدة بما يكفي في جميع الخصائص الأخرى.
فيما يلي نلخص كل عقار واعتباراته الرئيسية:
خصائص تقييم zkVMs
مع الجدول أعلاه ، نختتم بموجب هذا المقالة الأولى من سلسلتنا. في المقالات التالية ، سنبني على المخطط الانسيابي الموضح أعلاه لشرح العمليات الحسابية والتشفير الشائعة في zkVMs.
إذا وجدت هذا مفيدا ، فتفضل بزيارة موقعنا على الإنترنت و gitbook لمعرفة المزيد حول ما نقوم ببنائه في Lita.
أيضا ، تابعنا على X و Discord للبقاء على اطلاع دائم حتى لا تفوتك بقية السلسلة