
المؤلف: Michael Zhu (A16Z Crypto Association) ، Sam Ragsdale (A16Z Crypto Investment Engineer) ؛
في 9 أبريل ، 2024 ، أصدر فريق أبحاث وهندسة A16Z A16Z الهزة الأولية لـ Jolt الأوليةينجزهذه طريقة جديدة لتصميم SNARK ، والتي هي أسرع ضعف التكنولوجيا الحالية ، وسيكون هناك المزيد من التحسينات.
يعد التحقق من الحساب (المعروف عادةً باسم ZK) تقنية قوية للغاية ، وهي مناسبة لكل من blockchain وغير blockchain.إنه يمكّن جهاز كمبيوتر (شخص التحقق من التحقق) من تكليف الحساب بجهاز كمبيوتر آخر أكثر قوة (إثبات المثل) والتحقق بشكل فعال مما إذا كان يتم تنفيذ الحساب بشكل صحيح.
في صناعة التشفير ، يشمل التطبيق الذي يمكن التحقق منه (خاصة الفخاخات):
يستخدم Blockchain Layer 2 (L2) Snarks لضمان سلامة تحويل الحالة.
-
يستخدم Bridge Cross -CHAIN SNARKS لإثبات نقل الإيداع/السحب إلى سلسلة أخرى.
-
يستخدم “معالج ZK Associate” (المحدد بواسطة AXIOM) SNARKS لإثبات أن بعض البيانات على بيانات السلسلة محسوبة.
هناك العديد من الأمثلة غير المثيرة للاهتمام غير المثيرة للاهتمام التي بالكاد يتم استكشافها.على سبيل المثال ، يمكن لمقدمي الخدمات السحابية إثبات لعملائهم أنهم يقومون بتشغيل بعض الحسابات بشكل صحيح إلى خوادمهم.يمكن أن يثبت سجل البرمجيات مثل NPM أو Cattes.IO أن الملفات الثنائية يتم تجميعها من رمز مصدر معين ، مما يقلل من خطر هجمات سلسلة توريد البرمجيات.أو يمكن لأي شخص أن يثبت أن أدوات “Super Mario Brothers” الخاصة به قد كسرت الرقم القياسي العالمي (وصف RISC Zero أيضًا هذه الفكرة).
تحتوي العديد من هذه التطبيقات على الكثير من البرامج المعقدة للغاية ولا يمكن تحويلها إلى دائرة DSL (لغة مجال محددة) -على سبيل المثال ، باستخدام لغة الدورة لإعادة كتابة المحددات التحويم أو NES بأكملها.ومع ذلك ، إذا قام البرنامج بتجميع مجموعة تعليمية تدعمها ZKVM ، فلن تحتاج إلى تحويلها بواسطة دائرة الكتابة اليدوية أو DSL: يحتاج المبرمجون فقط إلى استخدام لغة البرمجة المتقدمة التي يختارون كتابة البرنامج لمعالجة العمل المتبقي بواسطة ZKVM.
بعد ذلك ، فإن التحدي المتبقي هو أداء ZKVM Prover: إنه يحتاج بسرعة كافية ليكون مفيدًا.هذا مهم بشكل خاص لأمثلة blockchain ، لأن وقت المثل سيؤثر على التأخير ويؤثر على تجربة المستخدم.
يمكن التحقق منه وحسابه أنه تم وصفه باعتباره الحل النهائي الذي من المتوقع أن يكون توسيع blockchain لفترة طويلة ، لكن هذه التكنولوجيا واجهت ثلاث عقبات رئيسية من حيث التبني:
-
أداء:بالمقارنة مع التنفيذ الأصلي ، فإن تنفيذ برنامج الإثبات سيقدم بعض النفقات العامة الكمية.
-
تعقيد:أثار تعقيد Snarks مخاوف بشأن سلامته ، كضمان أمني للأصول على مليارات الدولارات على السلسلة.
-
التوفر:المعرفة المهنية التي تتطلبها لغات مجال محددة مثل Circom غير قادرة على الحصول على معظم مطوري البرامج.
يتغلب تطوير الجهاز الظاهري على الصفر (ZKVMS) على العقبة الثالثة (المتاحة) ، لأن ZKVMs تسمح للمطورين بكتابة البرامج باستخدام لغات البرمجة المتقدمة مثل Rust أو Go دون الحاجة إلى إثبات تنفيذها دون أي Snark.ومع ذلك ، فإن تحسين توفر ZKVMS أدى أيضًا إلى ارتفاع الأداء (من 8 إلى 9 كميات) ونشر معقد.
في العام الماضي ، قدمت مقالة Jolt نموذجًا جديدًا لـ ZKVMS ، ووعد بالتغلب على التحديين المتمثلة في الأداء العام وتعقيد النشر.مقارنة بأفكار ستارك الحالية ، الخلفية النظرية لـ Jolt.باستخدام Lasso للاستعلام عن معلمات Sumcheck Technologies ، يمكن لـ JOLT إثبات البرنامج بشكل أسرع من ذي قبل ، ومن الأسهل نشر تعليمات VM جديدة من ذي قبل.
اليوم ، يسعدنا أن ننشر نشرًا في مجموعة تعليمات Jolt Open Source لمجموعة تعليمات RV32I ، وندرك الوعد الذي تم تقديمه في مقالة Jolt.
-
سريع:إن نشرنا أسرع أكثر من 5 مرات من RISC Zero ، وهو ما يزيد عن مرتين من SP1 الذي تم إصداره للتو في الاختبار القياسي الأولي.
-
(قريب) بسيط:مكتبة الكود بأكملها أقل من 25000 سطر (أقل من نصف ZKVMs الأخرى) ، ويمكن تنفيذ تعليمات وحدة المعالجة المركزية واحدة في 50 سطرًا فقط.
أدناه ، دعونا نلقي نظرة على معيار الأداء معًا.نقدم أيضًا بعض التوجيهات للمطورين المهتمين بتطوير التطبيقات باستخدام JOLT. وأسهل في الاستخدام.
يعتمد فريق A16Z Encryption Engineering على اعتقاد ثابت في القيمة المفتوحة المصدر.سوف تقوم JOLT كمنتج عام مفتوح المصدر بتسريع Research ZKVM ، وأبحاث SNARK الأوسع ، وتطوير صناعة Web3 بأكملها.بناء تقنية التشفير في جزر رمز المصدر المغلقة (لا يمكن مراجعة الكود من قبل الجمهور) ، والذي عادة ما يجلب الثقة إلى النظام الذي لا يصدق.
1،أداء
بالمقارنة مع التنفيذ الأصلي ، ستجلب ZKVMs حوالي 8 النفقات العامة الكمية ، مما يجعل العديد من تطبيقات التحقق والحوسبة غير محققة.لقد خفضت النسخة الحالية من JOLT هذه النفقات إلى أقل من 6 أوامر.
على الرغم من أن لدينا بالفعل الأداء الأكثر تقدماً ، إلا أن التكنولوجيا الأساسية لـ JOLT (استنادًا إلى اتفاقية Sumcheck) لم تحصل على اهتمام المهندسين مثل التكنولوجيا الأكثر شعبية (FRI).هذا يدل على أن Jolt لا يزال لديه مساحة أكبر -لقد وضعنا بعض التحسين على خريطة الطريق ، ونتوقع أنه لن تكون هناك فرصة للاكتشاف.
لقد حدد اختبار A16Z/ZKVM القياسي الخاص بنا JOLT و SP1 و RISC Zero على برامج RUST المختلفة المختلفة.نتيجة لذلك ، يكون الأداء النسبي مشابهًا في العديد من برامج RV32 المماثلة.سيشير الشكل أدناه إلى برنامج ينفذ سلسلة تجزئة SHA2.
وترد نتائج هذه الاختبارات القياسية أدناه.يعمل الاختبار القياسي على جهاز AWS R7G.جميع الاختبارات القياسية هي فقط لوحدة المعالجة المركزية.
يواجه النظام المستمر للتواصل التوازن بين وقت المثل والمزايا وحجم الدليل -عندما ثبت أنه ينقسم إلى “شرائح Shard” (أو “الفقرة”) ، يصبح المثل أسرع (لأن الشظايا بين الشظايا فهي موازية) ، ولكن لديها أدلة أكبر قبل العودية.أثبت أن حجم الحجم يظهر أدناه ، يتم تحديد نتائج SP1 بواسطة عدد القطعة: SP1 (Shard_Count).RISC Zero لديه حجم ثابت ، لذلك يزيد عدها من قشدة مخبأة مع عدد دورة البرنامج.يدعم RISC Zero العودية (لم يتم دعم SP1 و JOLT) ، ولكن الاختبار القياسي أدناه هو اختبار أداء يتم إجراؤه دون عودة.نحن لا نستخدم “التجميع قبل” ، وبالتالي فإن الاختبار القياسي يعكس أداء نظام إثبات ZKVM الأساسي.
2كيف هذاهزةالتنمية والبناء
من أجل جعل Jolt تستخدمه بأكبر قدر ممكن من الاستخدام ، توفر Jolt SDK مغلفة بسيطة من وظائف Jolt الأساسية من قِبل شريك A16Z Crypto Engineering Noah Citron).كل ما عليك فعله هو إضافة خاصية JOLT_SDK :: إثبات أن الدالة المراد إثباتها.
ستتمكن بعد ذلك من استخدام وظيفة Build_*لإنشاء استفزازي ومرح.
يرجى التحقق من مثال Fibonacci الكامل (وغيرها) في مكتبة الكود.
من أجل التعرف بشكل أعمق حول Architecture jolt ، يعد Jolt Book (WIP) مجموعة من تحديد التصميم ووثائق تحديث الوقت الحقيقي حول اختيار التصميم ومكتبة التعليمات البرمجية التي لا تسجل في مقالات Jolt.في الأسابيع القليلة المقبلة ، سننشر المزيد من المحتوى للمطورين المهتمين بالتطوير والبناء على Jolt أو الرغبة في معرفة الآلية الداخلية لـ JOLT.
3ما هو الشيء التالي
على الرغم من أن Jolt هو معلم مهم في حقل ZKVM ، إلا أنه لا يزال أمامنا طريق طويل.خذ خطوة إلى الوراء ، يوضح اختبار الأداء الخاص بنا أن Jolt Prover (على M3 Max) يثبت أن سرعة البرنامج أسرع من معالج 100 كيلو هرتز -إنه اثنان من قدرة حوسبة Apollo رقم 11 على متن الطائرة. أكثر من.قم بمقارنة متواضعة ، أبطأ 150 مرة من حاسبة الرسومات TI-84.
من أجل تحقيق أداء كمبيوتر ، لدينا الكثير من العمل.سنستمر في تحسين أداء وتوافر JOLT من أجل تزويد المطورين بأفضل تجربة تطوير.المهام الرئيسية التالية على خريطة الطريق تجعلنا نشعر بالإثارة:
-
بينيوسالاقترح Ben Diamond و Jim Posen مؤخرًا حلًا متعدد الحدود متعدد الخطوط.إن مزيج من خوارزمية Binius و Justin Thaler’s Sumcheck سيحسن بشكل كبير أداء المثل لـ JOLT (من المتوقع أن نكون من 5 إلى 10 مرات).
-
المزيد من التعليمات:تم نشر مكتبة Jolt Code حاليًا RV32i ، لكن بنية Jolt مرنة للغاية.نخطط لإضافة امتداد RISC-V “M” لتوفير الدعم لطريقة تكاثر وإزالة عدد صحيح ، كما هو موضح في مقالة Jolt.بالإضافة إلى ذلك ، يمكن أن تدعم JOLT بسهولة 64 -Pit Variants RV64IM.
-
نظام التواصل المستمر:في الوقت الحاضر ، بسبب حد الذاكرة ، لا يمكن لـ Jolt إثبات حساب أي طول.سنستخدم الاستمرارية لتقسيم الحساب الطويل إلى كتل حساب أصغر ، ويمكن إثبات كل كتلة بواسطة JOLT.سيؤدي ذلك إلى تقليل استخدام الذاكرة ودعم التوازي الإضافي عند إثبات حساب واحد.
-
الشهادة العودية:من خلال الجمع بين Jolt مع نظام إثبات آخر ، قمنا بتقليل حجم ووقت التحقق.على سبيل المثال ، يمكن تنفيذ جهاز التحقق من JOLT في لغة الدورة لإنشاء دليل GROTH16 الثابت الذي يمكن التحقق منه بشكل فعال على السلسلة.