تم تصميم وحدة المعالجة المساعدة ZK لتحميل الحوسبة من البلوك تشين مع الحفاظ على قابلية التحقق. في جوهرها، تتكون البنية من ثلاثة مكونات أساسية: محرك المُثبت، عقدة المُحقق، والآلة الافتراضية (zkVM أو وقت تشغيل الدائرة).
محرك الإثبات مسؤول عن تنفيذ الحسابات خارج السلسلة وتوليد دليل تشفيري يثبت أن الحساب تم بشكل صحيح. يقوم هذا المحرك بأخذ بيانات الإدخال، ويقوم بتشغيلها من خلال منطق أو برنامج محدد، ويخرج دليلاً مختصراً من عدم المعرفة. عادةً ما يكون الإثبات عملية ثقيلة، تتطلب موارد حسابية مثل وحدات المعالجة المركزية أو وحدات معالجة الرسوميات، اعتمادًا على نوع نظام الإثبات المستخدم.
تم نشر عقد التحقق على السلسلة وهو مصمم ليكون خفيف الوزن. الغرض الوحيد منه هو التحقق من صحة الدليل المقدم. يحتفظ بمفتاح التحقق، الذي يتم اشتقاقه رياضيًا من نفس المنطق المستخدم من قبل المُثبت. عندما يستلم العقد الذكي دليلاً، فإنه يتحقق منه مقابل المفتاح ويؤكد ما إذا كانت النتيجة صحيحة. هذه العملية سريعة وغير مكلفة مقارنةً بتشغيل الحساب الكامل على السلسلة.
تحدد zkVM أو الدائرة الحسابية منطق البرنامج. إنها تعمل كبيئة تشغيل للمدعي. في بعض الأنظمة، تكون هذه دائرة مخصصة مكتوبة بلغة DSL منخفضة المستوى، بينما تستخدم أنظمة أخرى آلات افتراضية كاملة يمكنها تفسير الشيفرات في لغات أعلى مستوى. معًا، تمكّن هذه المكونات التنفيذ خارج السلسلة بدون ثقة والتحقق الموجز على السلسلة.
ظهرت عدة أدوات وأطر لدعم تطوير المعالجات المساعدة ZK. Circom هي واحدة من أقدم وأكثر لغات الدوائر استخدامًا. تتيح للمطورين تعريف الدوائر الحسابية باستخدام صيغة تعبيرية. ثم يتم تجميع هذه الدوائر إلى أنظمة إثبات مثل Groth16 أو PLONK. تشتهر Circom بمرونتها ولكن لديها منحنى تعلم حاد وتتطلب تصميم دائرة يدوي.
نوير هي لغة أحدث مصممة لجعل تطوير ZK متاحًا. تم تطويرها بواسطة أزتيك، نوير هي لغة مشابهة لـ Rust تقوم بإخفاء الكثير من تعقيد أنظمة القيود. إنها تقوم بالتجميع تلقائيًا إلى دوائر معرفة صفرية، مما يسهل كتابة برامج خاصة بصياغة قابلة للقراءة.
بعيدًا عن اللغات، تكتسب zkVMs اهتمامًا لقدرتها على تشغيل الشيفرة العامة في بيئة صديقة لـ ZK. تقدم Risc Zero واحدة من أكثر تطبيقات zkVM تقدمًا. فهي تحاكي مجموعة تعليمات RISC-V وتسمح للمطورين بتشغيل أي برنامج مكتوب بلغة Rust أو C كدليل على عدم المعرفة. SP1، الذي طوّرته Succinct، يتبع نهجًا مشابهًا ولكنه يهدف إلى تحسين الأداء وقابلية النقل عبر أنظمة الإثبات.
تمثل هذه البيئات أهمية قصوى لأنها تحدد مدى تعبير وكفاءة وقابلية تركيب المعالجات المساعدة ZK. بينما تظل الدوائر ذات المستوى المنخفض مفيدة للتطبيقات الحساسة للأداء، فإن zkVMs تمكّن من اعتماد أوسع من قبل المطورين وسرعة أكبر في التكرار.
لفهم كيفية عمل وحدة المعالجة المساعدة ZK في الممارسة العملية، ضع في اعتبارك تدفق تنفيذ نظام مثل Axiom أو Bonsai من Risc Zero.
في نموذج Axiom، يقوم المطور بتعريف استعلام حول بيانات Ethereum التاريخية - على سبيل المثال، التحقق مما إذا كان المستخدم يمتلك رصيدًا محددًا في كتلة سابقة. يتم إرسال هذا الاستعلام إلى المعالج المساعد خارج السلسلة الخاص بـ Axiom. يقوم المعالج المساعد بجلب البيانات ذات الصلة على السلسلة، ومعالجة الاستعلام، وتنفيذ المنطق باستخدام zkVM. بمجرد اكتمال الحساب، يقوم المعالج المساعد بإنشاء دليل عدم المعرفة الذي يشهد على صحة النتيجة. يتم تقديم هذا الدليل على السلسلة إلى عقد التحقق، الذي يتحقق منه ويسمح لعقد ذكي باستخدام النتيجة بثقة كاملة.
يتبع Bonsai من Risc Zero هيكلًا مشابهًا ولكنه يعمم العملية. يكتب المطورون منطق تطبيقاتهم بلغة عالية المستوى مثل Rust. يتم تحويل هذا الرمز إلى صورة zkVM ويتم تنفيذها خارج السلسلة باستخدام بنية Bonsai التحتية. بعد التنفيذ، يتم إنشاء إثبات يمكن نشره مرة أخرى إلى أي سلسلة كتلة عبر مُحقق على السلسلة.
تتيح هذه المعمارية للمطورين بناء منطق قوي ومُقلل من الثقة دون تحميل البلوكشين. كما أنها تتيح إثباتات قابلة لإعادة الاستخدام والتركيب يمكن أن تخدم عدة عقود أو تطبيقات.
تتمثل قوة المعالج المساعد ZK في نموذج الثقة الذي يمكّنه. على عكس الأوراق المركزية أو مقدمي الحسابات خارج السلسلة، فإن المعالجات المساعدة ZK لا تتطلب من المستخدمين الوثوق بالكيان الذي يقوم بالعملية الحسابية. بدلاً من ذلك، تُنقل الثقة إلى الرياضيات.
جوهر هذه الثقة يأتي من هيكل إثباتات عدم المعرفة. تم تصميم هذه الإثباتات بحيث تؤدي أي حساب غير صالح، حتى بت واحد غير صحيح واحد، إلى فشل التحقق. لا يمكن خداع عقد التحقق لقبول نتيجة زائفة، بشرط أن تظل الافتراضات التشفيرية صحيحة.
علاوة على ذلك، بما أن المتحقق يحتاج فقط إلى المدخلات العامة، والدليل، ومفتاح التحقق، فلا يوجد اعتماد على هوية أو سلوك المبرهن. يمكن لأي طرف ثالث توليد الدليل، وطالما أنه يمر بالتحقق، يتم قبوله. هذا يعني أن المبرهنين يمكن أن يكونوا لامركزيين، بلا إذن، وحتى مدفوعين، وهي ميزة يتم استكشافها بشكل أعمق في شبكات الدليل.
من خلال دمج الضمانات التشفيرية مع حتمية البلوكشين، تمكّن وحدات المعالجة المساعدة ZK طبقة تنفيذ جديدة خالية من الثقة لا تعتمد على الخدمات المركزية أو السمعة أو توافق التوقيع المتعدد.
تجد المعالجات المساعدة ZK جاذبية حقيقية في المجالات التي تحتاج فيها الحسابات إلى تقليل الثقة، والكفاءة من حيث التكلفة، أو الخصوصية. في DeFi، يمكنها حساب أسعار المتوسطات الزمنية المرجحة، وأصول الحيازة على مر الزمن، أو نماذج المخاطر المخصصة دون الحاجة إلى تخزين جميع البيانات على السلسلة. وهذا يمكّن من عقد مالي أذكى دون زيادة تكاليف الغاز أو زيادة حجم البلوكشين.
في تطبيقات السلاسل المتقاطعة، يمكن أن تعمل وحدات المعالجة الموازية ZK كعملاء خفيفين. بدلاً من تشغيل عقد كاملة لكل سلسلة، يمكن للتطبيقات التحقق من دليل مختصر لحالة سلسلة أخرى. هذا يبسط بشكل كبير الجسور وبروتوكولات الرسائل، مما يحسن كل من الأمان والتشغيل المتداخل.
تقوم أنظمة الطبقة الثانية أيضًا بتبني المعالجات المساعدة ZK كوسيلة لتحسين منطق التجميع. بدلاً من تشغيل كل تفاعل داخل دائرة التجميع، يمكن للتجميعات تفويض مهام محددة، مثل كشف الاحتيال، والتحقق من الأوراكل، أو المنطق المحدد من قبل المستخدم، إلى معالجات ZK المساعدة الخارجية. وهذا يقلل من تكاليف الإثبات ويجعل التجميعات أكثر قابلية للتعديل.
تظهر المعالجات المساعدة ZK كعناصر بنية تحتية أساسية. فهي توسع ما يمكن أن تفعله البلوكشين دون المساومة على اللامركزية أو الأداء. مع نضوج الأدوات وبيئات التشغيل، من المحتمل أن تصبح خيارات افتراضية في حزمة تطوير أي تطبيق لامركزي متقدم.