هذا المقال مأخوذ من 16 z ، المؤلف الأصلي: Justin Thaler ، من إعداد مترجم Odaily Planet Daily جيسيكا.
! [شرح مفصل لأداتين جديدتين من أدوات SNARK تم إطلاقهما بواسطة تشفير a16z] (https://img-cdn.gateio.im/resized-social/moments-7f230462a9-e29e42bcc6-dd1a6f-1c6801)
في 10 أغسطس ، أطلق تشفير 16 z أدوات Lasso و Jolt الجديدة المستندة إلى SNARK ، والتي تمثل معًا نهجًا جديدًا لتصميم SNARK يمكن أن يحسن أداء سلاسل الأدوات المنتشرة على نطاق واسع بترتيب من الحجم أو أكثر ؛ توفير أفضل وأكثر ملاءمة تجربة المطور ؛ وجعل التدقيق أسهل.
SNARK (حجة المعرفة الموجزة غير التفاعلية) هي بروتوكول تشفير حيث يمكن لأي شخص أن يثبت لمدقق غير موثوق به أنه يعرف "شاهدًا" يرضي خصائص معينة.
إحدى حالات الاستخدام البارزة في Web 3 هي أن يثبت L2 لـ L1 أنهم يعرفون التوقيع الرقمي الذي يسمح بسلسلة من المعاملات ، لذلك لا يلزم تخزين التوقيع نفسه والتحقق منه بواسطة شبكة L1 ، مما يؤدي إلى تحسين قابلية التوسع.
تشمل التطبيقات خارج blockchain: إثبات صحة جميع المخرجات التي تنتجها أجهزة غير موثوق بها بسرعة ، مما يضمن ثقة المستخدمين بها. يمكن للأفراد إثبات أن سلطة موثوقة قد أصدرت لهم بيانات اعتماد تثبت أنهم كبار السن بما يكفي للوصول إلى محتوى مقيد بالفئة العمرية دون الكشف عن تاريخ ميلادهم. يمكن لأي شخص يرسل بيانات مشفرة عبر الشبكة أن يثبت للمسؤولين أن البيانات تتوافق مع سياسة الشبكة دون الكشف عن مزيد من التفاصيل.
في حين أن العديد من SNARKs تظل تكلفة جذابة للمدقق ، لا تزال SNARKs تقدم حوالي ستة أوامر من حجم النفقات العامة في حساب المُثبِّت. العمل الإضافي الذي يتحمله المُثبِت متوازي للغاية ، لكن النفقات العامة لملايين المرات تحد بشدة من نطاق تطبيق SNARKs.
** ستعمل SNARK مع المزيد من مزايا الأداء على تسريع L 2 وتسمح أيضًا للمطورين بإلغاء قفل التطبيقات التي لم يتم تصورها بعد. ** هذا هو السبب في أننا نقدم تقنيتين جديدتين مرتبطتين: Lasso ، وهي معلمة بحث جديدة يمكنها زيادة تكلفة المُثبِت بشكل كبير ؛ Jolt ، الذي يستخدم Lasso لتوفير إطار عمل جديد لما يسمى zkVM وتصميم الواجهة الأمامية الأوسع لتصميم SNARKs. يعملان معًا على تحسين الأداء وتجربة المطور وقابلية التدقيق لتصميمات SNARK ، والتي بدورها تعمل على تحسين الإنشاءات في الويب 3.
أظهر تطبيقنا الأولي لـ Lasso تسريعًا يزيد عن 10x مقارنة بمعلمات البحث في سلسلة أدوات SNARK الشهيرة Halo 2. عندما يتم تحسين قاعدة بيانات Lasso بالكامل ، نتوقع تسريعًا بمقدار 40x تقريبًا. يتضمن Jolt ابتكارات أخرى على رأس Lasso ، ونتوقع أن يحقق تسريعًا مشابهًا أو أفضل من zkVM الحالي.
البحث عن المعلمات ، Lasso و Jolt
الواجهة الأمامية لـ SNARK عبارة عن مترجم يحول برنامج كمبيوتر إلى دائرة يمكن للطرف الخلفي SNARK استيعابها. * (ملاحظة: الدائرة عبارة عن نموذج محدود للغاية للحساب حيث تكون "العمليات الأولية" الوحيدة المتاحة هي الجمع والضرب.) *
الأداة الرئيسية في تصميمات SNARK الحديثة هي بروتوكول يسمى معلمات البحث ، والذي يسمح لمثقف غير موثوق به بإرسال متجه كبير بشكل مشفر ثم إثبات أن كل إدخال من هذا المتجه موجود في وسط جدول محدد مسبقًا. يمكن أن تساعد معلمات البحث في الحفاظ على الدوائر صغيرة عن طريق المعالجة الفعالة للعمليات التي لا يتم حسابها بشكل طبيعي عن طريق عمليات الجمع والضرب الصغيرة.
ومع ذلك ، كما قال باري وايتهات من مؤسسة إيثريوم العام الماضي ، "إذا تمكنا من تحديد الدوائر بكفاءة باستخدام معلمات البحث فقط ، فسيؤدي ذلك إلى أدوات ودوائر أبسط". الدائرة التي صممناها لا تؤدي إلا عمليات البحث. بمرور الوقت ، ستصبح معاملات البحث "أكثر كفاءة من القيود متعددة الحدود لكل شيء تقريبًا".
تقف هذه الرؤية في تناقض صارخ مع الطريقة التي تعمل بها الأشياء اليوم ، حيث ينشر المطورون SNARKs عن طريق كتابة برامج باستخدام لغات خاصة بمجال معين تقوم بتجميع البرامج في قيود متعددة الحدود ، أو عن طريق تشفير القيود يدويًا بشكل مباشر. سلسلة الأدوات هذه تتطلب الكثير من العمل وتوفر مساحة كبيرة للأخطاء الحرجة للسلامة لتتسلل إليها. حتى مع الأدوات والدوائر المعقدة ، لا يزال أداء SNARKs بطيئًا ، مما يحد من قابليتها للتطبيق.
يعالج ** Lasso and Jolt جميع القضايا الرئيسية الثلاثة: الأداء وتجربة المطور وقابلية التدقيق ** ويدركان معًا رؤية إيجاد التفرد. يفرض Lasso و Jolt أيضًا إعادة التفكير في الكثير من الحكمة المقبولة في تصميم SNARK.
بعد توفير الخلفية اللازمة ، يعيد ما يلي النظر في بعض الأفكار الشائعة حول أداء SNARK ويشرح كيف يمكن تحسينها في ضوء الابتكارات مثل Lasso و Jolt.
خلفية تصميم SNARK: لماذا بطيء جدًا؟
تحتوي معظم الخلفيات الخلفية لـ SNARK على المُثبِت التي تلتزم بشكل مشفر بقيمة كل بوابة في الدائرة باستخدام مخطط التزام متعدد الحدود. ثم يثبت المُثبِت أن القيمة المقدمة تتوافق بالفعل مع التنفيذ الصحيح لمدقق الشاهد.
** أشير إلى ** العمل المُثبِت من مخطط التزام متعدد الحدود على أنه تكلفة الالتزام. ** لدى SNARKs تكاليف إثبات إضافية من مخططات الالتزام متعدد الحدود. لكن تكاليف الالتزام غالبًا ما تكون عنق الزجاجة. ** لاسو وجولت كذلك. إذا تم تصميم SNARK بحيث لا تكون تكلفة الالتزام هي تكلفة المُثبِت الرئيسية ، فهذا لا يعني أن مخطط الالتزام متعدد الحدود رخيص. بل يعني أن التكاليف الأخرى أعلى مما ينبغي.
حدسيًا ، الغرض من الالتزامات هو زيادة بساطة أنظمة الإثبات بشكل آمن. عندما يُرسل المُثبِّت متجهًا كبيرًا من القيم ، يكون الأمر تقريبًا كما لو أن المُثِّل يرسل المتجه بأكمله إلى المدقق ، تمامًا كما ترسل أنظمة الإثبات العادية الشاهد بأكمله إلى المدقق. يمكن أن تحقق مخططات الالتزام ذلك دون إجبار المدققين على استقبال الشاهد بالكامل بالفعل - مما يعني أن الغرض من مخطط الالتزام في تصميم SNARK هو التحكم في تكاليف المدقق.
لكن طرق التشفير هذه مكلفة للغاية بالنسبة للمثقف ، خاصةً بالمقارنة مع طرق نظرية المعلومات التي يستخدمها SNARK خارج مخططات الالتزام متعدد الحدود. تعتمد أساليب نظرية المعلومات فقط على العمليات الميدانية المحدودة. والعملية الميدانية هي أوامر من حيث الحجم أسرع من الوقت المطلوب لإرسال عنصر حقل تعسفي.
تتضمن الالتزامات الحاسوبية أسيًا متعددة (تُعرف أيضًا باسم المضاعفات العددية المتعددة ، أو MSM) أو تجزئات FFT و Merkle ، اعتمادًا على مخطط الالتزام متعدد الحدود المستخدم. يمكن أن يستخدم Lasso و Jolt أي مخطط التزام متعدد الحدود ، ولكن لهما تكلفة جذابة بشكل خاص عند إنشاء مثيل له باستخدام مخططات قائمة على MSM ، مثل IPA / Bulletproofs أو KZG / PST أو Hyrax أو Dory أو Zeromorph.
لماذا لاسو وجولت مهمان
Lasso هو معلمة بحث جديدة حيث يعد المُثبِت بقيم أقل وأصغر من العمل السابق. ** يمكن أن يكون هذا تسريعًا بمقدار 20 ضعفًا أو أكثر ** ، حيث تأتي السرعة من 2 إلى 4 مرات من قيم ملتزمة أقل ، ويأتي تسريع 10x آخر من حقيقة أن جميع القيم الملتزمة في Lasso صغيرة. على عكس العديد من معلمات البحث السابقة ، يتجنب Lasso (و Jolt) أيضًا FFTs ، التي تشغل مساحة كبيرة ويمكن أن تكون عنق زجاجة في الحالات الكبيرة.
علاوة على ذلك ، يعمل Lasso حتى مع الجداول الضخمة ، طالما أن هذه الجداول "منظمة" (بالمعنى الفني الدقيق). هذه الجداول كبيرة جدًا بحيث يتعذر على أي شخص تنفيذها بشكل صريح ، لكن Lasso يدفع فقط مقابل عناصر الجدول التي يصل إليها بالفعل. على وجه الخصوص - مقارنة بمعلمات البحث السابقة - إذا كان الجدول منظمًا ، فلن يحتاج أي طرف إلى الالتزام بجميع القيم الموجودة في الجدول في شكل مشفر.
يستخدم اللاسو مفهومين بنيويين مختلفين: قابلية التحلل وهيكل LDE. * (LDE هو اختصار لمفهوم تقني يسمى Low Degree Extended Polynomial.) * تعني قابلية التحليل تقريبًا أنه يمكن الإجابة على بحث واحد عن جدول عن طريق إجراء عدد أقل من عمليات البحث على جدول أصغر. هذا مطلب أكثر صرامة من بنية LDE ، لكن اللاسو فعال بشكل خاص عند تطبيقه على الجداول القابلة للتحلل.
الهزة
Jolt (Just One Lookup Table) هي واجهة أمامية جديدة تم فتحها بواسطة قدرة Lasso على استخدام جداول بحث ضخمة. ** يستهدف Jolt الجهاز الظاهري / تجريد وحدة المعالجة المركزية ، والمعروف أيضًا باسم بنية مجموعة التعليمات (ISA) **. ** تسمى SNARKs التي تدعم هذا التجريد zkVM **. على سبيل المثال ، ضع في اعتبارك مجموعة تعليمات RISC-V (بما في ذلك ملحق الضرب) التي يستهدفها مشروع RISC-Zero أيضًا. هذا هو ISA مفتوح المصدر شائع تم تطويره بواسطة مجتمع هندسة الكمبيوتر دون وضع SNARKs في الاعتبار.
لكل ملف تعليمي لـ RISC-V ، تتمثل فكرة Jolt الرئيسية في إنشاء جدول بحث يحتوي على جدول تقييم fi بالكامل. بالنسبة إلى كل تعليمات RISC-V بشكل أساسي ، يكون جدول البحث الناتج قابلًا للتحلل ويتم تطبيق lasso.
إعادة النظر في الحكمة المقبولة في تصميم SNARK
قام Lasso و Jolt أيضًا بتخريب بعض الحكمة المقبولة في تصميم SNARK.
** # 1. مساحة كبيرة SNARKs مضيعة. يجب على الجميع استخدام FRI أو Ligero أو Brakedown أو المتغيرات ، لأنها تتجنب تقنيات المنحنى الإهليلجي التي تنطبق عادةً على المقاييس الكبيرة. **
يتوافق حجم الحقل هنا تقريبًا مع حجم الأرقام التي تظهر في إثبات SNARK. نظرًا لأن إضافة ومضاعفة أعداد كبيرة جدًا يعد أمرًا مكلفًا ، فإن فكرة أن SNARKs في الحقول الكبيرة هي إهدار يعني أننا يجب أن نسعى جاهدين لتصميم بروتوكولات لا تحتوي أبدًا على أعداد كبيرة. تستخدم الالتزامات المستندة إلى MSM المنحنيات الإهليلجية ، والتي يتم تحديدها عادةً في الحقول الكبيرة (بحجم ~ 2 256) ، لذلك فإن هذه الوعود لها سمعة الأداء الضعيف.
ما إذا كان من المنطقي استخدام الحقول الصغيرة (حتى لو كانت خيارًا) يعتمد إلى حد كبير على التطبيق. يذهب Lasso و Jolt إلى أبعد من ذلك. لقد أظهروا أنه حتى مع مخطط الالتزام القائم على MSM ، يمكن أن يكون عمل المُثبِت مستقلاً تقريبًا عن حجم الحقل. هذا لأنه ، بالنسبة للالتزامات المستندة إلى MSM ، يكون حجم القيم الملتزمة أكثر أهمية من حجم الحقول التي توجد فيها تلك القيم.
تجعل SNARKs الموجودة المُثبِت تلتزم بالعديد من عناصر الحقل العشوائية. على سبيل المثال ، يلتزم المُثبِّت في واجهة SNARK الخلفية الشهيرة المسماة Plonk بحوالي 7 عناصر مجال عشوائية (وعناصر مجال أخرى غير عشوائية) لكل بوابة دائرة. يمكن أن تكون عناصر الحقول العشوائية كبيرة حتى لو كانت جميع القيم التي تظهر في الحسابات المجربة صغيرة.
في المقابل ، لا يطلب Lasso و Jolt إلا من المُثبَت تقديم قيمة صغيرة (يُرسل مُثبِت Lasso أيضًا قيمًا أقل من معلمة البحث السابقة). هذا يحسن بشكل كبير من أداء المخططات المستندة إلى MSM. على الأقل ، يجب على Lasso و Jolt تفكيك الفكرة القائلة بأن المجتمع يجب أن يتخلى عن الالتزامات القائمة على الرجال الذين يمارسون الجنس مع الرجال في الحالات التي يكون فيها أداء المُثبِّت مهمًا.
** # 2 مجموعة تعليمات أبسط تؤدي إلى zkVM أسرع. **
يعتمد تعقيد Jolt (لكل تعليمة) فقط على حجم إدخال التعليمات ، طالما أن جدول التقييم لكل تعليمة قابل للتحلل. أظهر Jolt أن التعليمات المعقدة بشكل مدهش قابلة للتحلل ، خاصةً جميع RISC-V.
هذا يتعارض مع الاعتقاد الشائع بأن الأجهزة الافتراضية الأبسط (zkVM) تؤدي بالضرورة إلى دوائر أصغر وما يرتبط بها من محرِّكات أسرع (كل خطوة من VM). هذا هو الدافع وراء أنظمة zkVM البسيطة بشكل خاص مثل Cairo VM ، والتي تم تصميمها خصيصًا لتكون صديقة لـ SNARK.
في الواقع ، بالنسبة للأجهزة الافتراضية الأبسط ، يحقق Jolt تكلفة التزام أقل للمثب من SNARKs السابقة. على سبيل المثال ، بالنسبة لتنفيذ Cairo VM ، يقدم مُثبِّت SNARK 51 عنصرًا ميدانيًا في كل خطوة من خطوات الجهاز الظاهري. تعمل SNARKs التي تنشرها القاهرة حاليًا على حقول 251 بت (63 بت هي الحد الأدنى الصعب لحجم الحقل الذي يمكن أن تستخدمه SNARK). يعمل مُثبِّت Jolt على حوالي 60 عنصر حقل لكل خطوة (تحديد أكثر من أنواع بيانات 64 بت) لوحدات المعالجة المركزية RISC-V. بعد احتساب حقيقة أن عناصر الحقل المقدمة صغيرة ، فإن تكلفة مُثبِّت Jolt تعادل تقريبًا تكلفة إرسال 6 عناصر حقل عشوائية بحجم 256 بت.
** # 3 لا توجد عقوبة أداء لتقسيم الحسابات الكبيرة إلى أجزاء صغيرة. **
بناءً على وجهة النظر هذه ، تحلل مشاريع اليوم أي دائرة كبيرة إلى كتل صغيرة ، وتثبت كل كتلة على حدة ، وتجمع النتائج بشكل متكرر من خلال SNARKs. تستخدم عمليات النشر هذه هذا النهج للتخفيف من اختناقات الأداء في SNARKs الشائعة. على سبيل المثال ، تتطلب SNARKs المستندة إلى FRI ما يقرب من 100 جيجابايت من مساحة الإثبات ، حتى بالنسبة للدوائر الصغيرة. إنها تتطلب أيضًا FFT ، وهي عملية فائقة الخطية يمكن أن تصبح عنق زجاجة إذا تم تطبيق SNARKs "في وقت واحد" على الدوائر الكبيرة.
الحقيقة هي أن بعض SNARKs (مثل Lasso و Jolt) تظهر وفورات الحجم (بدلاً من عدم وفورات الحجم الموجودة في SNARKs المنتشرة حاليًا). هذا يعني أنه كلما زاد حجم البيان الذي يتم إثباته ، كان مقدار الحمل أقل بالنسبة لفحص الشاهد المباشر (أي العمل المطلوب لتقييم دائرة الشاهد دون ضمان صحتها). على المستوى الفني ، تأتي وفورات الحجم من مكانين.
تسريع Pippenger لـ MSMs بالحجم n: سجل (n) تحسين عامل على الخوارزمية الساذجة. كلما كان n أكبر ، كلما كان التحسن أكبر.
في معلمات البحث مثل Lasso ، يدفع المُثبِّت تكلفة "لمرة واحدة" تعتمد على حجم جدول البحث ولكن لا علاقة لها بعدد القيم التي تم البحث عنها. يتم إطفاء تكلفة المُثبِّت لمرة واحدة عبر جميع عمليات البحث في الجدول. الكتل الأكبر تعني المزيد من عمليات البحث ، مما يعني إطفاء أفضل.
الطريقة الشائعة للتعامل مع الدوائر الكبيرة اليوم هي تقسيم الأشياء إلى أصغر القطع الممكنة. القيد الرئيسي على حجم كل جزء هو أنه لا يمكن أن يكون صغيرًا جدًا بحيث يصبح برهان التجميع العودي عنق زجاجة للمثل.
يقترح لاسو وجولت نهجًا معاكسًا بشكل أساسي. يجب على الناس استخدام SNARKs التي لها وفورات الحجم. ثم قسّم الحسابات الكبيرة إلى أجزاء كبيرة قدر الإمكان ، وكرر النتائج. القيد الرئيسي على حجم كل جزء هو مساحة الإثبات ، والتي تنمو كلما زاد حجم الجزء.
** # 4 قيود الارتفاع ضرورية من أجل SNARKs الفعالة. **
يستخدم Jolt R 1 CS كتمثيل وسيط. لا توجد فائدة من استخدام قيود الارتفاع أو المخصص في Jolt. تكمن معظم تكلفة المُثبِت في Jolt في البحث عن المعلمة Lasso ، بدلاً من إثبات مدى إرضاء نظام القيد الناتج الذي يأخذ البحث كأمر مسلم به.
تعتبر Jolt عالمية ، لذا فهي لا تفقد تنوعها. على هذا النحو ، فإنه يقاوم تركيز المطورين المكثف على قيود ارتفاع التصميم (غالبًا ما يتم تحديدها يدويًا) في محاولة للضغط على الأداء المحسن خارج SNARKs الشائعة اليوم.
بالطبع ، قد تستمر بعض السياقات في الاستفادة من قيود الارتفاع أو المخصصة. مثال مهم هو Minroot VDF ، الذي يمكن أن يقلل قيده البالغ 5 درجات من تكلفة الالتزام بعامل يبلغ حوالي 3.
** # 5 مخططات الالتزامات المتفرقة كثيرة الحدود باهظة الثمن ويجب تجنبها كلما أمكن ذلك. **
هذا هو النقد الرئيسي ضد نظام ضبط النفس الذي تم إدخاله مؤخرًا والذي يسمى CCS و SNARKs التي تدعمه - Spartan و Marlin ، CCS هو تعميم واضح لجميع أنظمة ضبط النفس السائدة في الممارسة اليوم.
هذا النقد لا أساس له من الصحة. في الواقع ، فإن الجوهر التقني لـ Lasso و Jolt هو مخطط الالتزام متعدد الحدود المتناثر في Spartan - Spark. Spark بحد ذاته هو تحويل عام لأي مخطط التزام متعدد الحدود (غير متفرق) إلى مخطط يدعم كثيرات الحدود المتفرقة.
يقوم Lasso بتحسين وتوسيع Spark للتأكد من أن المُثبِت يلتزم فقط بالقيم "الصغيرة" ، ولكن حتى بدون هذه التحسينات ، فإن الانتقاد ليس له ما يبرره. في الواقع ، يلتزم مثل Spartan بعناصر مجال (عشوائية) أقل من SNARKs (مثل Plonk الذي يتجنب الالتزامات المتفرقة كثيرة الحدود).
يتميز نهج Spartan بمزايا أداء إضافية ، خاصة للدوائر ذات الهياكل المتكررة. بالنسبة لهذه الدوائر ، لا تضيف بوابات الإضافة إلى عمل التشفير للمثقف المتقشف. ينمو هذا العمل فقط مع عدد المتغيرات في نظام القيد المحدد ، وليس مع عدد القيود. بخلاف Plonk ، لا يحتاج المحققون المتقشفون إلى إرسال "نسخ" متعددة مختلفة من نفس المتغير.
نحن متفائلون بأن Lasso و Jolt سيغيران بشكل كبير طريقة تصميم SNARKs ، مما يحسن الأداء وقابلية التدقيق. هذه أداة رئيسية ذات قدرة خارقة لتقليل تكلفة التزام المُثبِت.
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
اشرح بالتفصيل أداتي SNARK الجديدتين اللتين تم إطلاقهما بواسطة تشفير a16z
هذا المقال مأخوذ من 16 z ، المؤلف الأصلي: Justin Thaler ، من إعداد مترجم Odaily Planet Daily جيسيكا.
! [شرح مفصل لأداتين جديدتين من أدوات SNARK تم إطلاقهما بواسطة تشفير a16z] (https://img-cdn.gateio.im/resized-social/moments-7f230462a9-e29e42bcc6-dd1a6f-1c6801)
في 10 أغسطس ، أطلق تشفير 16 z أدوات Lasso و Jolt الجديدة المستندة إلى SNARK ، والتي تمثل معًا نهجًا جديدًا لتصميم SNARK يمكن أن يحسن أداء سلاسل الأدوات المنتشرة على نطاق واسع بترتيب من الحجم أو أكثر ؛ توفير أفضل وأكثر ملاءمة تجربة المطور ؛ وجعل التدقيق أسهل.
SNARK (حجة المعرفة الموجزة غير التفاعلية) هي بروتوكول تشفير حيث يمكن لأي شخص أن يثبت لمدقق غير موثوق به أنه يعرف "شاهدًا" يرضي خصائص معينة.
في حين أن العديد من SNARKs تظل تكلفة جذابة للمدقق ، لا تزال SNARKs تقدم حوالي ستة أوامر من حجم النفقات العامة في حساب المُثبِّت. العمل الإضافي الذي يتحمله المُثبِت متوازي للغاية ، لكن النفقات العامة لملايين المرات تحد بشدة من نطاق تطبيق SNARKs.
** ستعمل SNARK مع المزيد من مزايا الأداء على تسريع L 2 وتسمح أيضًا للمطورين بإلغاء قفل التطبيقات التي لم يتم تصورها بعد. ** هذا هو السبب في أننا نقدم تقنيتين جديدتين مرتبطتين: Lasso ، وهي معلمة بحث جديدة يمكنها زيادة تكلفة المُثبِت بشكل كبير ؛ Jolt ، الذي يستخدم Lasso لتوفير إطار عمل جديد لما يسمى zkVM وتصميم الواجهة الأمامية الأوسع لتصميم SNARKs. يعملان معًا على تحسين الأداء وتجربة المطور وقابلية التدقيق لتصميمات SNARK ، والتي بدورها تعمل على تحسين الإنشاءات في الويب 3.
أظهر تطبيقنا الأولي لـ Lasso تسريعًا يزيد عن 10x مقارنة بمعلمات البحث في سلسلة أدوات SNARK الشهيرة Halo 2. عندما يتم تحسين قاعدة بيانات Lasso بالكامل ، نتوقع تسريعًا بمقدار 40x تقريبًا. يتضمن Jolt ابتكارات أخرى على رأس Lasso ، ونتوقع أن يحقق تسريعًا مشابهًا أو أفضل من zkVM الحالي.
البحث عن المعلمات ، Lasso و Jolt
الواجهة الأمامية لـ SNARK عبارة عن مترجم يحول برنامج كمبيوتر إلى دائرة يمكن للطرف الخلفي SNARK استيعابها. * (ملاحظة: الدائرة عبارة عن نموذج محدود للغاية للحساب حيث تكون "العمليات الأولية" الوحيدة المتاحة هي الجمع والضرب.) *
الأداة الرئيسية في تصميمات SNARK الحديثة هي بروتوكول يسمى معلمات البحث ، والذي يسمح لمثقف غير موثوق به بإرسال متجه كبير بشكل مشفر ثم إثبات أن كل إدخال من هذا المتجه موجود في وسط جدول محدد مسبقًا. يمكن أن تساعد معلمات البحث في الحفاظ على الدوائر صغيرة عن طريق المعالجة الفعالة للعمليات التي لا يتم حسابها بشكل طبيعي عن طريق عمليات الجمع والضرب الصغيرة.
ومع ذلك ، كما قال باري وايتهات من مؤسسة إيثريوم العام الماضي ، "إذا تمكنا من تحديد الدوائر بكفاءة باستخدام معلمات البحث فقط ، فسيؤدي ذلك إلى أدوات ودوائر أبسط". الدائرة التي صممناها لا تؤدي إلا عمليات البحث. بمرور الوقت ، ستصبح معاملات البحث "أكثر كفاءة من القيود متعددة الحدود لكل شيء تقريبًا".
تقف هذه الرؤية في تناقض صارخ مع الطريقة التي تعمل بها الأشياء اليوم ، حيث ينشر المطورون SNARKs عن طريق كتابة برامج باستخدام لغات خاصة بمجال معين تقوم بتجميع البرامج في قيود متعددة الحدود ، أو عن طريق تشفير القيود يدويًا بشكل مباشر. سلسلة الأدوات هذه تتطلب الكثير من العمل وتوفر مساحة كبيرة للأخطاء الحرجة للسلامة لتتسلل إليها. حتى مع الأدوات والدوائر المعقدة ، لا يزال أداء SNARKs بطيئًا ، مما يحد من قابليتها للتطبيق.
يعالج ** Lasso and Jolt جميع القضايا الرئيسية الثلاثة: الأداء وتجربة المطور وقابلية التدقيق ** ويدركان معًا رؤية إيجاد التفرد. يفرض Lasso و Jolt أيضًا إعادة التفكير في الكثير من الحكمة المقبولة في تصميم SNARK.
بعد توفير الخلفية اللازمة ، يعيد ما يلي النظر في بعض الأفكار الشائعة حول أداء SNARK ويشرح كيف يمكن تحسينها في ضوء الابتكارات مثل Lasso و Jolt.
خلفية تصميم SNARK: لماذا بطيء جدًا؟
تحتوي معظم الخلفيات الخلفية لـ SNARK على المُثبِت التي تلتزم بشكل مشفر بقيمة كل بوابة في الدائرة باستخدام مخطط التزام متعدد الحدود. ثم يثبت المُثبِت أن القيمة المقدمة تتوافق بالفعل مع التنفيذ الصحيح لمدقق الشاهد.
** أشير إلى ** العمل المُثبِت من مخطط التزام متعدد الحدود على أنه تكلفة الالتزام. ** لدى SNARKs تكاليف إثبات إضافية من مخططات الالتزام متعدد الحدود. لكن تكاليف الالتزام غالبًا ما تكون عنق الزجاجة. ** لاسو وجولت كذلك. إذا تم تصميم SNARK بحيث لا تكون تكلفة الالتزام هي تكلفة المُثبِت الرئيسية ، فهذا لا يعني أن مخطط الالتزام متعدد الحدود رخيص. بل يعني أن التكاليف الأخرى أعلى مما ينبغي.
حدسيًا ، الغرض من الالتزامات هو زيادة بساطة أنظمة الإثبات بشكل آمن. عندما يُرسل المُثبِّت متجهًا كبيرًا من القيم ، يكون الأمر تقريبًا كما لو أن المُثِّل يرسل المتجه بأكمله إلى المدقق ، تمامًا كما ترسل أنظمة الإثبات العادية الشاهد بأكمله إلى المدقق. يمكن أن تحقق مخططات الالتزام ذلك دون إجبار المدققين على استقبال الشاهد بالكامل بالفعل - مما يعني أن الغرض من مخطط الالتزام في تصميم SNARK هو التحكم في تكاليف المدقق.
لكن طرق التشفير هذه مكلفة للغاية بالنسبة للمثقف ، خاصةً بالمقارنة مع طرق نظرية المعلومات التي يستخدمها SNARK خارج مخططات الالتزام متعدد الحدود. تعتمد أساليب نظرية المعلومات فقط على العمليات الميدانية المحدودة. والعملية الميدانية هي أوامر من حيث الحجم أسرع من الوقت المطلوب لإرسال عنصر حقل تعسفي.
تتضمن الالتزامات الحاسوبية أسيًا متعددة (تُعرف أيضًا باسم المضاعفات العددية المتعددة ، أو MSM) أو تجزئات FFT و Merkle ، اعتمادًا على مخطط الالتزام متعدد الحدود المستخدم. يمكن أن يستخدم Lasso و Jolt أي مخطط التزام متعدد الحدود ، ولكن لهما تكلفة جذابة بشكل خاص عند إنشاء مثيل له باستخدام مخططات قائمة على MSM ، مثل IPA / Bulletproofs أو KZG / PST أو Hyrax أو Dory أو Zeromorph.
لماذا لاسو وجولت مهمان
Lasso هو معلمة بحث جديدة حيث يعد المُثبِت بقيم أقل وأصغر من العمل السابق. ** يمكن أن يكون هذا تسريعًا بمقدار 20 ضعفًا أو أكثر ** ، حيث تأتي السرعة من 2 إلى 4 مرات من قيم ملتزمة أقل ، ويأتي تسريع 10x آخر من حقيقة أن جميع القيم الملتزمة في Lasso صغيرة. على عكس العديد من معلمات البحث السابقة ، يتجنب Lasso (و Jolt) أيضًا FFTs ، التي تشغل مساحة كبيرة ويمكن أن تكون عنق زجاجة في الحالات الكبيرة.
علاوة على ذلك ، يعمل Lasso حتى مع الجداول الضخمة ، طالما أن هذه الجداول "منظمة" (بالمعنى الفني الدقيق). هذه الجداول كبيرة جدًا بحيث يتعذر على أي شخص تنفيذها بشكل صريح ، لكن Lasso يدفع فقط مقابل عناصر الجدول التي يصل إليها بالفعل. على وجه الخصوص - مقارنة بمعلمات البحث السابقة - إذا كان الجدول منظمًا ، فلن يحتاج أي طرف إلى الالتزام بجميع القيم الموجودة في الجدول في شكل مشفر.
يستخدم اللاسو مفهومين بنيويين مختلفين: قابلية التحلل وهيكل LDE. * (LDE هو اختصار لمفهوم تقني يسمى Low Degree Extended Polynomial.) * تعني قابلية التحليل تقريبًا أنه يمكن الإجابة على بحث واحد عن جدول عن طريق إجراء عدد أقل من عمليات البحث على جدول أصغر. هذا مطلب أكثر صرامة من بنية LDE ، لكن اللاسو فعال بشكل خاص عند تطبيقه على الجداول القابلة للتحلل.
الهزة
Jolt (Just One Lookup Table) هي واجهة أمامية جديدة تم فتحها بواسطة قدرة Lasso على استخدام جداول بحث ضخمة. ** يستهدف Jolt الجهاز الظاهري / تجريد وحدة المعالجة المركزية ، والمعروف أيضًا باسم بنية مجموعة التعليمات (ISA) **. ** تسمى SNARKs التي تدعم هذا التجريد zkVM **. على سبيل المثال ، ضع في اعتبارك مجموعة تعليمات RISC-V (بما في ذلك ملحق الضرب) التي يستهدفها مشروع RISC-Zero أيضًا. هذا هو ISA مفتوح المصدر شائع تم تطويره بواسطة مجتمع هندسة الكمبيوتر دون وضع SNARKs في الاعتبار.
لكل ملف تعليمي لـ RISC-V ، تتمثل فكرة Jolt الرئيسية في إنشاء جدول بحث يحتوي على جدول تقييم fi بالكامل. بالنسبة إلى كل تعليمات RISC-V بشكل أساسي ، يكون جدول البحث الناتج قابلًا للتحلل ويتم تطبيق lasso.
إعادة النظر في الحكمة المقبولة في تصميم SNARK
قام Lasso و Jolt أيضًا بتخريب بعض الحكمة المقبولة في تصميم SNARK.
** # 1. مساحة كبيرة SNARKs مضيعة. يجب على الجميع استخدام FRI أو Ligero أو Brakedown أو المتغيرات ، لأنها تتجنب تقنيات المنحنى الإهليلجي التي تنطبق عادةً على المقاييس الكبيرة. **
يتوافق حجم الحقل هنا تقريبًا مع حجم الأرقام التي تظهر في إثبات SNARK. نظرًا لأن إضافة ومضاعفة أعداد كبيرة جدًا يعد أمرًا مكلفًا ، فإن فكرة أن SNARKs في الحقول الكبيرة هي إهدار يعني أننا يجب أن نسعى جاهدين لتصميم بروتوكولات لا تحتوي أبدًا على أعداد كبيرة. تستخدم الالتزامات المستندة إلى MSM المنحنيات الإهليلجية ، والتي يتم تحديدها عادةً في الحقول الكبيرة (بحجم ~ 2 256) ، لذلك فإن هذه الوعود لها سمعة الأداء الضعيف.
ما إذا كان من المنطقي استخدام الحقول الصغيرة (حتى لو كانت خيارًا) يعتمد إلى حد كبير على التطبيق. يذهب Lasso و Jolt إلى أبعد من ذلك. لقد أظهروا أنه حتى مع مخطط الالتزام القائم على MSM ، يمكن أن يكون عمل المُثبِت مستقلاً تقريبًا عن حجم الحقل. هذا لأنه ، بالنسبة للالتزامات المستندة إلى MSM ، يكون حجم القيم الملتزمة أكثر أهمية من حجم الحقول التي توجد فيها تلك القيم.
تجعل SNARKs الموجودة المُثبِت تلتزم بالعديد من عناصر الحقل العشوائية. على سبيل المثال ، يلتزم المُثبِّت في واجهة SNARK الخلفية الشهيرة المسماة Plonk بحوالي 7 عناصر مجال عشوائية (وعناصر مجال أخرى غير عشوائية) لكل بوابة دائرة. يمكن أن تكون عناصر الحقول العشوائية كبيرة حتى لو كانت جميع القيم التي تظهر في الحسابات المجربة صغيرة.
في المقابل ، لا يطلب Lasso و Jolt إلا من المُثبَت تقديم قيمة صغيرة (يُرسل مُثبِت Lasso أيضًا قيمًا أقل من معلمة البحث السابقة). هذا يحسن بشكل كبير من أداء المخططات المستندة إلى MSM. على الأقل ، يجب على Lasso و Jolt تفكيك الفكرة القائلة بأن المجتمع يجب أن يتخلى عن الالتزامات القائمة على الرجال الذين يمارسون الجنس مع الرجال في الحالات التي يكون فيها أداء المُثبِّت مهمًا.
** # 2 مجموعة تعليمات أبسط تؤدي إلى zkVM أسرع. **
يعتمد تعقيد Jolt (لكل تعليمة) فقط على حجم إدخال التعليمات ، طالما أن جدول التقييم لكل تعليمة قابل للتحلل. أظهر Jolt أن التعليمات المعقدة بشكل مدهش قابلة للتحلل ، خاصةً جميع RISC-V.
هذا يتعارض مع الاعتقاد الشائع بأن الأجهزة الافتراضية الأبسط (zkVM) تؤدي بالضرورة إلى دوائر أصغر وما يرتبط بها من محرِّكات أسرع (كل خطوة من VM). هذا هو الدافع وراء أنظمة zkVM البسيطة بشكل خاص مثل Cairo VM ، والتي تم تصميمها خصيصًا لتكون صديقة لـ SNARK.
في الواقع ، بالنسبة للأجهزة الافتراضية الأبسط ، يحقق Jolt تكلفة التزام أقل للمثب من SNARKs السابقة. على سبيل المثال ، بالنسبة لتنفيذ Cairo VM ، يقدم مُثبِّت SNARK 51 عنصرًا ميدانيًا في كل خطوة من خطوات الجهاز الظاهري. تعمل SNARKs التي تنشرها القاهرة حاليًا على حقول 251 بت (63 بت هي الحد الأدنى الصعب لحجم الحقل الذي يمكن أن تستخدمه SNARK). يعمل مُثبِّت Jolt على حوالي 60 عنصر حقل لكل خطوة (تحديد أكثر من أنواع بيانات 64 بت) لوحدات المعالجة المركزية RISC-V. بعد احتساب حقيقة أن عناصر الحقل المقدمة صغيرة ، فإن تكلفة مُثبِّت Jolt تعادل تقريبًا تكلفة إرسال 6 عناصر حقل عشوائية بحجم 256 بت.
** # 3 لا توجد عقوبة أداء لتقسيم الحسابات الكبيرة إلى أجزاء صغيرة. **
بناءً على وجهة النظر هذه ، تحلل مشاريع اليوم أي دائرة كبيرة إلى كتل صغيرة ، وتثبت كل كتلة على حدة ، وتجمع النتائج بشكل متكرر من خلال SNARKs. تستخدم عمليات النشر هذه هذا النهج للتخفيف من اختناقات الأداء في SNARKs الشائعة. على سبيل المثال ، تتطلب SNARKs المستندة إلى FRI ما يقرب من 100 جيجابايت من مساحة الإثبات ، حتى بالنسبة للدوائر الصغيرة. إنها تتطلب أيضًا FFT ، وهي عملية فائقة الخطية يمكن أن تصبح عنق زجاجة إذا تم تطبيق SNARKs "في وقت واحد" على الدوائر الكبيرة.
الحقيقة هي أن بعض SNARKs (مثل Lasso و Jolt) تظهر وفورات الحجم (بدلاً من عدم وفورات الحجم الموجودة في SNARKs المنتشرة حاليًا). هذا يعني أنه كلما زاد حجم البيان الذي يتم إثباته ، كان مقدار الحمل أقل بالنسبة لفحص الشاهد المباشر (أي العمل المطلوب لتقييم دائرة الشاهد دون ضمان صحتها). على المستوى الفني ، تأتي وفورات الحجم من مكانين.
تسريع Pippenger لـ MSMs بالحجم n: سجل (n) تحسين عامل على الخوارزمية الساذجة. كلما كان n أكبر ، كلما كان التحسن أكبر.
في معلمات البحث مثل Lasso ، يدفع المُثبِّت تكلفة "لمرة واحدة" تعتمد على حجم جدول البحث ولكن لا علاقة لها بعدد القيم التي تم البحث عنها. يتم إطفاء تكلفة المُثبِّت لمرة واحدة عبر جميع عمليات البحث في الجدول. الكتل الأكبر تعني المزيد من عمليات البحث ، مما يعني إطفاء أفضل.
الطريقة الشائعة للتعامل مع الدوائر الكبيرة اليوم هي تقسيم الأشياء إلى أصغر القطع الممكنة. القيد الرئيسي على حجم كل جزء هو أنه لا يمكن أن يكون صغيرًا جدًا بحيث يصبح برهان التجميع العودي عنق زجاجة للمثل.
يقترح لاسو وجولت نهجًا معاكسًا بشكل أساسي. يجب على الناس استخدام SNARKs التي لها وفورات الحجم. ثم قسّم الحسابات الكبيرة إلى أجزاء كبيرة قدر الإمكان ، وكرر النتائج. القيد الرئيسي على حجم كل جزء هو مساحة الإثبات ، والتي تنمو كلما زاد حجم الجزء.
** # 4 قيود الارتفاع ضرورية من أجل SNARKs الفعالة. **
يستخدم Jolt R 1 CS كتمثيل وسيط. لا توجد فائدة من استخدام قيود الارتفاع أو المخصص في Jolt. تكمن معظم تكلفة المُثبِت في Jolt في البحث عن المعلمة Lasso ، بدلاً من إثبات مدى إرضاء نظام القيد الناتج الذي يأخذ البحث كأمر مسلم به.
تعتبر Jolt عالمية ، لذا فهي لا تفقد تنوعها. على هذا النحو ، فإنه يقاوم تركيز المطورين المكثف على قيود ارتفاع التصميم (غالبًا ما يتم تحديدها يدويًا) في محاولة للضغط على الأداء المحسن خارج SNARKs الشائعة اليوم.
بالطبع ، قد تستمر بعض السياقات في الاستفادة من قيود الارتفاع أو المخصصة. مثال مهم هو Minroot VDF ، الذي يمكن أن يقلل قيده البالغ 5 درجات من تكلفة الالتزام بعامل يبلغ حوالي 3.
** # 5 مخططات الالتزامات المتفرقة كثيرة الحدود باهظة الثمن ويجب تجنبها كلما أمكن ذلك. **
هذا هو النقد الرئيسي ضد نظام ضبط النفس الذي تم إدخاله مؤخرًا والذي يسمى CCS و SNARKs التي تدعمه - Spartan و Marlin ، CCS هو تعميم واضح لجميع أنظمة ضبط النفس السائدة في الممارسة اليوم.
هذا النقد لا أساس له من الصحة. في الواقع ، فإن الجوهر التقني لـ Lasso و Jolt هو مخطط الالتزام متعدد الحدود المتناثر في Spartan - Spark. Spark بحد ذاته هو تحويل عام لأي مخطط التزام متعدد الحدود (غير متفرق) إلى مخطط يدعم كثيرات الحدود المتفرقة.
يقوم Lasso بتحسين وتوسيع Spark للتأكد من أن المُثبِت يلتزم فقط بالقيم "الصغيرة" ، ولكن حتى بدون هذه التحسينات ، فإن الانتقاد ليس له ما يبرره. في الواقع ، يلتزم مثل Spartan بعناصر مجال (عشوائية) أقل من SNARKs (مثل Plonk الذي يتجنب الالتزامات المتفرقة كثيرة الحدود).
يتميز نهج Spartan بمزايا أداء إضافية ، خاصة للدوائر ذات الهياكل المتكررة. بالنسبة لهذه الدوائر ، لا تضيف بوابات الإضافة إلى عمل التشفير للمثقف المتقشف. ينمو هذا العمل فقط مع عدد المتغيرات في نظام القيد المحدد ، وليس مع عدد القيود. بخلاف Plonk ، لا يحتاج المحققون المتقشفون إلى إرسال "نسخ" متعددة مختلفة من نفس المتغير.
نحن متفائلون بأن Lasso و Jolt سيغيران بشكل كبير طريقة تصميم SNARKs ، مما يحسن الأداء وقابلية التدقيق. هذه أداة رئيسية ذات قدرة خارقة لتقليل تكلفة التزام المُثبِت.