مسح لغة ZK: نوار ، o1js ، سيركوم ، ليو ، القاهرة ، لورك

مقدمة

إثباتات اللغة الخاصة بالمجال (DSL) في المعرفة الصفرية (ZK).[4] يلعب دورا حيويا في هذا المجال. في جوهرها ، تحل براهين ZK التحدي المتمثل في إثبات وجود سمات معينة في البيانات السرية دون الكشف عن أي معلومات إضافية. ومع ذلك ، فإن ترجمة الأفكار عالية المستوى إلى براهين ملموسة يمكن أن تكون معقدة. هذا هو المكان الذي تلعب فيه DSLs دورا ، حيث تربط المفاهيم المجردة بتمثيل الدوائر المطلوبة لإثبات النظام.

نظام الإثبات[5] هي طريقة أو اتفاقية تسمح لأحد الأطراف بإثبات صحة بيان أو مطالبة لطرف آخر دون الكشف عن أي معلومات حساسة. يتضمن مجموعة من القواعد والإجراءات التي تمكن المدقق من إقناع المدقق بحقيقة بيان معين ، مثل صحة الحساب أو امتلاك معرفة معينة ، دون الكشف عن أي أسرار أو بيانات أساسية.

ومع ذلك ، لا يمكن لأنظمة الإثبات التعامل مباشرة مع المفاهيم عالية المستوى. بدلا من ذلك ، يجب تحويلها إلى دوائر تمثل الخصائص المطلوبة. يمثل هذا التحول من المفاهيم عالية المستوى إلى الدوائر تحديات. هذا هو المكان الذي تلعب فيه لغة الدوائر. تحل لغات الدوائر هذه المشكلة من خلال توفير طريقة منظمة ورسمية للتعبير عن الأفكار عالية المستوى.

على مدى العقد الماضي ، كانت هناك زيادة كبيرة في عدد وتنوع لغات الدوائر. تطوير العديد من لغات الدوائر ، مثل نوار ، القاهرة[6] وليو ، مما يشير إلى مدى نشاط الحقل. يسمح لنا هذا الانتشار للغات بمقارنة ومقارنة خصائصها وتشابهها واختلافها. يوفر الفحص الشامل لهذه اللغات فهما أعمق للمشهد العام للغة الدائرة.

TLDR;

Noir - تم تطويره بواسطة Aztec ، وهو يستخلص تعقيد التشفير ويجعل من الممكن للمطورين من أي خلفية كتابة دوائر ZK.

** - o1js ** - مكتبة نوع تم تطويرها بواسطة مختبرات O (1). يسمح للمطورين بكتابة العقود الذكية. يتكامل بشكل جيد مع مكتبات وأدوات Java و Type الموجودة.

**– **سيركوم**[7] ** - مصمم لتطوير دائرة ZKP. توفير الدقة والوضوح ، وتركز ميزاته بشكل أساسي على هذا المجال بالذات.

** - الأسد ** - يوفر بيئة سهلة الاستخدام للمطورين. يتم استخدام بنية مترجم تم التحقق من صحتها رسميا مع التركيز على الكشف المبكر عن الأخطاء ومنعها.

**–**القاهرة**[8] ** - التركيز على الكفاءة وقابلية التوسع. يتم دعم قابلية التشغيل البيني من خلال واجهات قياسية يمكن دمجها مع منصات blockchain والعقود الذكية والأنظمة خارج السلسلة.

Lurk - يحل قيود SNARKs التقليدية من خلال الاستفادة من Lisp لتنفيذ دائرة مشتركة.

مسرد

نظرا لأننا سنتطرق إلى المفاهيم الفنية ، فإليك مسردا لبعض المصطلحات المعقدة التي قد تواجهها في النصوص اللاحقة:

التمثيل الوسيط للدائرة المجردة (Acer) :* التمثيل الوسيط لدائرة ZK التي يستخدمها Noir والتي يمكن تجميعها في نظام قيود من الدرجة الأولى (R1CS).

**• بوابات مخصصة: ** بوابات منطقية متخصصة مصممة لعمليات تشفير فعالة وآمنة في دوائر ZK.

• SHA-256: دالة تجزئة تشفير تأخذ مدخلا وتنتج مخرجات ذات حجم ثابت.

فحص بيدرسن-ميركل: باستخدام تقنيات التحقق من التشفير الخاصة بوعد بيدرسن وميركل تري، يمكن التحقق من سلامة البيانات واتساقها.

• اكتمال تورينج: خاصية لنظام الحوسبة التي يمكنها محاكاة آلة تورينج وتكون قادرة على حل أي مشكلة قابلة للحساب مع الوقت والموارد الكافية.

أسلوب النجاح المستمر (CPS) :* تقنية برمجة تقسم عملية التقييم إلى خطوات يمكن التحكم فيها من أجل تنفيذ موحد وفعال.

عناصر الحقل :* عناصر في مجال رياضي محدود ، يشيع استخدامها في مخططات التشفير والحسابات.

أسود

أسود[9] هي لغة خاصة بالمجال (DSL) صممها Aztec لتبسيط إنشاء دوائر ZK وبرامج ZK دون الحاجة إلى معرفة واسعة بالتشفير أو لتصبح مشفرا. هدفها الرئيسي هو تمكين المطورين من أي خلفية من كتابة دوائر ZK (صفر المعرفة). يعطي Noir الأولوية للأمان والبساطة والأداء. يوفر بناء جملة عالي المستوى يشبه الصدأ يستخلص أمان التشفير ويبسط استخدام أوليات التشفير مع الحفاظ على الأداء العالي.

**إمكانيات التحجيم مع دليل ZK **

تتمثل إحدى مزايا Noir في أن لديها القدرة على توسيع نطاق التطبيقات التي يمكنها الاستفادة من ميزات الحفاظ على الخصوصية التي توفرها أدلة ZK. تعزز هذه البراهين الخصوصية وتوفر تحققا فعالا. يتم تجميع Noir في تمثيل وسيط يسمى التمثيل الوسيط للدائرة المجردة (Acer) ، والذي يمكن تجميعه بشكل أكبر في نظام قيود يسمى R1CS (قيد من الدرجة الأولى). يسمح هذا الفصل بين نظام الإثبات الخلفي واللغة ل Noir بدعم مجموعة متنوعة من أنظمة الإثبات ، بما في ذلك Aztec Brettenberg و Turbo Plonk وعمليات التكامل المستقبلية المحتملة مثل Groth16 و Halo 2.

التحسين والمكتبة القياسية

يمكن للمطورين تحسين الدوائر على مستوى نظام التصديق لتحسين السرعة والأمان ومجموعة متنوعة من ميزات التطبيق من خلال الاستفادة من البوابات المخصصة ، وهو نوع من البوابات المنطقية المصممة خصيصا لأداء عمليات التشفير بكفاءة وأمان. توفر اللغة مكتبة قياسية بوظائف محسنة مثل فحوصات SHA-256 و Pedersen-Merkle ، والتي تستخدم التزامات Pedersen وأشجار Merkle للتحقق من سلامة البيانات واتساقها.

!

رسومات بيانية توضح بناء جملة لغة نوير ### **تنظيم الكود ومهارات العرض التقديمي **

يدعم Noir تنظيم التعليمات البرمجية من خلال الوحدات النمطية والصناديق الخارجية ، مما يجعل من السهل إنشاء مكتبات لبرامج Noir. يوفر أنواع البيانات المركبة مثل المصفوفات والمجموعات والهياكل ، مما يسمح للمطورين بتجميع البيانات وتنفيذ الوظائف المشتركة. تدعم اللغة أيضا هياكل تدفق التحكم مثل الحلقات ، وعبارات if ، وعوامل التشغيل المنطقية والبت. يتم تطوير الأدوية الجنيسة والوظائف من الدرجة الأولى بنشاط لزيادة تعزيز القدرات التعبيرية لنوير.

من المهم ملاحظة أن نوير لا يزال يتطور. قد يكون لها بعض القيود والأخطاء المحتملة. يكرر فريق التطوير باستمرار اللغة ويلتزم بالتحسين المستمر.

o1js

O1JS[10] هي مكتبة نوع تم تصميمها بواسطة (0) 1Labs لكتابة العقود الذكية باستخدام لغة برمجة Snark. إنه يستفيد من التقنيات المفتوحة الحالية مثل Node .js والمتصفحات لجعلها أكثر سهولة وملاءمة للمطورين. من خلال البناء على Type ، يسمح o1js للمطورين بالاستفادة من معرفتهم الحالية بمكتبات وأدوات Java و Type.

التكاملات

يتكامل o1js بسلاسة مع مكتبات وأدوات Java و Type ، مما يوفر للمطورين ميزات قوية ودعما مجتمعيا مكثفا. يزيد هذا التكامل من الإنتاجية ويقلل من منحنى التعلم لاعتماد بيئات تطوير جديدة.

**دعم كود VS **

يوفر الدعم ل Visual Studio Code (VS Code) ، وهو محرر كود شائع. يمكن للمطورين الاستفادة من ميزات مثل إكمال التعليمات البرمجية وتمييز بناء الجملة وتصحيح الأخطاء لتحسين تجربة التطوير الشاملة.

المكتبة القياسية

يوفر O1JS مكتبة قياسية شاملة تتضمن أنواعا أساسية مثل عناصر المجال و un-64 و un-32 والمفاتيح العامة والمفاتيح الخاصة والتوقيعات. تأتي هذه الأنواع مع طرق مضمنة تبسط معالجة أنظمة التشفير والبيانات الاختيارية والمنحنيات المنطقية والإهليلجية.

سيركوم

Circom ، اختصار ل Circuit Compiler ، هي لغة قوية خاصة بالمجال (DSL) مصممة لتطوير دائرة إثبات المعرفة الصفرية (ZKP) ، تم إنشاؤها بواسطة Jordi Balyna وفريق iden3.

تعريف الدائرة التعبيرية

من خلال تركيبها التعبيري ، تسمح Circom للمطورين بتحديد الدوائر لتطبيقات ZKP بطريقة دقيقة وواضحة. ومع ذلك ، قد يكون من الصعب فهم بناء الجملة والدلالات الخاصة ب Circom لأولئك الجدد على Circom وأولئك الذين ليسوا على دراية بمفاهيم DSL أو ZKP. بالنسبة لمطوري الدوائر المبتدئين أو المطورين الذين لديهم خلفية في لغات البرمجة للأغراض العامة ، قد يتطلب الأمر جهدا ووقتا إضافيين.

حدود النطاق

بينما تتفوق Circom في تطوير دوائر ZKP ، من المهم ملاحظة أن ميزاتها تركز بشكل أساسي في هذا المجال بالذات. نتيجة لذلك ، قد يجد المطورون الذين يبحثون عن لغة أكثر عمومية للتعامل مع مجموعة واسعة من مهام الحوسبة Circom محدودة إلى حد ما. لتلبية احتياجات التطوير الأوسع ، قد يكون من الضروري استخدام Circom جنبا إلى جنب مع لغات أو أطر البرمجة الأخرى.

شرح لكيفية عمل سيركوم. ### الأدوات وقيود النظام البيئي

يتم دعم Circom من خلال مجموعة متنوعة من أدوات التطوير ولديها نظام بيئي متنام ، على الرغم من أن توافر أدواتها ومواردها قد لا يزال محدودا نسبيا مقارنة بلغات وأطر البرمجة الأكثر رسوخا. قد يواجه المطورون تحديات في العثور على وثائق شاملة ومكتبات ودعم المجتمع لحالات استخدام محددة أو ميزات متقدمة. يمكن أن يكون لهذا القيد تأثير على سرعة تطوير سيركوم وتبني المجتمع.

اعتبارات التوافق

يركز توافق Circom بشكل أساسي على أنظمة إثبات المعرفة الصفرية الشائعة مثل snarkjs و libsnark. في حين أن هذا يسمح لها بالتكامل بسلاسة مع هذه الأنظمة ، إلا أنها تقدم أيضا تبعيات على ميزاتها وقيودها المحددة. قد يواجه المطورون الذين يفضلون أو يحتاجون إلى أنظمة ZKP أخرى مشكلات في التوافق أو يحتاجون إلى جهد إضافي لتكييف ودمج الدوائر التي تنشئها Circom في أنظمتهم المفضلة.

ليو

ليو[11] هي لغة برمجة مصممة خصيصا لتطوير تطبيقات إثبات المعرفة الصفرية. يهدف إلى توفير بيئة سهلة الاستخدام للمطورين ، وخاصة أولئك الذين لديهم خبرة سابقة في النظام البيئي blockchain. يشبه LEO Rust ويحتوي على بعض العناصر الشبيهة بجافا المصممة لخلق الألفة والراحة في تطوير التطبيقات.

من السمات البارزة ل Leo مترجمها ، الذي يحول البرامج إلى تنسيق إثبات منخفض المستوى يسمى R1CS. ما يميز مترجم Leo هو عملية التحقق الرسمية الصارمة التي يخضع لها. هذا التحقق ضروري لأن الأخطاء يمكن أن تحدث في مراحل مختلفة ، بما في ذلك البرمجة والتدقيق والتجميع. من خلال التأكد رياضيا من أن المترجم يتبع نية المبرمج ، يهدف Leo إلى تقليل مخاطر التغاضي عن الأخطاء أو استغلالها ، خاصة في سياقات L2 أو ZK-rollups أو البرامج الاحتكارية في منصة LEO.

تدرك قواعد لغة الأسد أنه على الرغم من بذل قصارى الجهود ، فإن الأخطاء أمر لا مفر منه ، ويؤكد فريق Leo على أهمية منع الأخطاء واكتشافها مبكرا ، خاصة في الأنظمة التي تتعامل مع عمليات نقل القيمة المهمة. لمعالجة هذا الأمر ، تضخ بنية المترجم التي تم التحقق من صحتها رسميا ثقة إضافية وتقلل من احتمالية حدوث انحرافات غير مقصودة عن سلوك البرنامج المتوقع.

بالإضافة إلى اللغة والمترجم ، يقدم Leo مجموعة متنوعة من أدوات وميزات تجربة المطور. تم تصميم هذه المكونات لتعزيز عملية التطوير وتبسيط المهام وزيادة الكفاءة. بالاعتماد على سبع سنوات من الخبرة ومراقبة تطور نظام Ethereum البيئي ، يهدف فريق Leo إلى توفير بيئة سهلة الاستخدام مماثلة لتطور الأدوات مثل المستكشفين وأطر النشر مثل Truffle و Ganache والموارد الأخرى التي تبسط تطوير التطبيقات واختبارها.

القاهرة

القاهرة[12] يوفر بناء جملة يبسط عملية بناء دوائر ZKP. مستوحاة من لغات البرمجة التقليدية ، تسمح القاهرة للمطورين بالاستفادة من مهاراتهم البرمجية الحالية عند تصميم أنظمة ZK. من خلال نهجها التصريحي ، تجعل القاهرة من الممكن تطبيع البيانات والحسابات المنطقية ، مما يسهل تمثيل سيناريوهات العالم الحقيقي في سياق براهين المعرفة الصفرية.

الكفاءة وقابلية التوسع

الأداء هو عامل رئيسي في نظام ZK. تحل القاهرة هذه المشكلة من خلال التركيز على الكفاءة وقابلية التوسع. تستخدم اللغة تقنيات التحسين مثل تقليل القيود وإزالة الحلقة لتقليل الحمل الحسابي المرتبط بدوائر ZKP. من خلال تحسين تصميم الدائرة ، تحقق القاهرة إنشاء إثبات أسرع والتحقق من التطبيقات التي تتطلب إنتاجية عالية وزمن انتقال منخفض.

قابلية التشغيل البيني والتكامل

تم تصميم القاهرة للتكامل مع البنية التحتية للبرمجيات الحالية ، مما يمكن المطورين من الجمع بين قدرات ZKP والتقنيات الأخرى. تدعم اللغة قابلية التشغيل البيني من خلال واجهات قياسية ، مما يسمح بالتكامل مع منصات blockchain والعقود الذكية والأنظمة خارج السلسلة. تفتح هذه المرونة الباب أمام إمكانية تنفيذ ميزات الخصوصية المحسنة في التطبيقات اللامركزية والأنظمة المالية وبروتوكولات التحقق من صحة البيانات.

بنية وحدة المعالجة المركزية في القاهرة SNARK في مثال واحد ### ** المجتمع والنظام البيئي **

يعزز مشروع القاهرة مجتمعا من المطورين والباحثين والمتحمسين الذين يساهمون في تطويره. يساعد توفر الوثائق والبرامج التعليمية ونماذج التعليمات البرمجية في عملية الإعداد ، مما يسمح للمطورين بفهم المفاهيم والبدء في إنشاء أنظمة ZK. بالإضافة إلى ذلك، تستفيد القاهرة من النظام البيئي الأوسع لستارك وير، والذي يوفر الدعم والأدوات والتطورات البحثية لتعزيز اللغة وقدراتها.

كامنة

ربض[13] يهدف إلى حل قيود SNARKs والدوائر التقليدية من خلال الاستفادة من Lisp ، وهي لغة برمجة وظيفية ، لتنفيذ الدوائر ذات الأغراض العامة. باستخدام Lisp ، يقدم Lurk وظيفة عامة تسمى "" يمكنها تقييم أي تعبير بيانات في دائرة snark.

الكود هو البيانات، والبيانات هي الرمز

أحد المبادئ الأساسية ل Lurk هو تمثيل البرنامج كبيانات ذات محتوى قابل للعنونة. يسمح هذا النهج بالتقييم الفعال والتحقق من صحة برامج Lurk. تعمل إمكانية عنونة المحتوى على تبسيط عملية التحليل ، ويمكن استخدام البيانات الناتجة مباشرة في مثبتات SNARK دون الحاجة إلى خطوة تجميع منفصلة.

**تنفيذ Lisp في SNARKs **

لإنشاء دائرة للأغراض العامة ، استفاد Lurk من "سلبيات" تخصيص ذاكرة Lisp. يجمع المخصص بين تعبيرين ويولد مرجعا للتعبير الناتج عن طريق التجزئة. من خلال إثبات أن تعبيرين مجزأة لنفس المرجع ، يمكن ل Lurk إجراء عمليات حسابية في دائرة snark.

استمرار أسلوب التمرير

يستخدم Lurk أسلوب اجتياز الاستمرارية (CPS) ، والذي يقسم عملية التقييم إلى خطوات يمكن التحكم فيها. تصبح كل خطوة تقييم عملية حسابية قابلة للمعالجة ، مما يتيح التنفيذ الموحد والفعال. يساعد تضمين الاستمراريات الصريحة في دوائر SNARK على متابعة عملية التقييم خطوة بخطوة.

** يعطي تورينج اكتمالا وقدرات متكررة **

من خلال استخدام Lisp ، يحقق Lurk اكتمال Turing ويدعم العودية اللانهائية في دوائر SNARK. تسمح هذه القدرة المهمة بإثبات الحسابات المعقدة وتنفيذ دوائر للأغراض العامة قادرة على إجراء حسابات تعسفية.

التأثيرات والتطبيقات

قدرات Lurk لها آثار واسعة النطاق. من خلال دعم العودية اللانهائية ، والدورات ، والتدفقات التي يتم التحكم فيها بشكل مشروط ، يتيح Lurk إجراء حسابات معقدة في دوائر SNARK. هذا يفتح مجموعة متنوعة من التطبيقات لحسابات التحقق ومعالجة البيانات الخاصة وتنفيذ برامج Turing-complete.

خاتمة

يتنوع اختيار اللغات الخاصة بالمجال (DSLs) ومن المتوقع أن يستمر في النمو مع استمرار حالات استخدام براهين المعرفة الصفرية (ZKs) في التوسع عبر النظم الإيكولوجية blockchain. في الوقت الحالي ، لا يزال السباق لإنشاء لغة مهيمنة لبناء تطبيقات ZK في مراحله المبكرة ، مما يشير إلى أنه يمكننا توقع المزيد من التحسينات في هذا المجال.

ومع ذلك ، فإن أحد القيود الشائعة لمعظم DSLs هو عدم وجود تأثيرات الشبكة من المجتمعات الكبيرة والمكتبات القوية. يمكن أن يؤدي وجود مجتمع نابض بالحياة ومكتبات شاملة إلى تحسين تجربة المطور بشكل كبير. على الرغم من أنه يمكن معالجة هذا القصور بمرور الوقت ، فمن المهم للفرق المشاركة في تطوير DSL إعطاء الأولوية للتوافق مع المكتبات الأخرى ، مستعيرا من النهج الذي اتبعه o1js.

من خلال ضمان التوافق مع المكتبات الحالية ، يمكن ل DSLs الاستفادة من المعرفة والموارد الجماعية لمجتمع المطورين الأوسع ، مما يتيح تكاملا أسهل وتطويرا أسرع ومرونة أكبر في تنفيذ تطبيقات ZK. سيعزز هذا النهج التعاوني تطوير نظام بيئي أقوى حول DSLs لصالح المطورين ويدفع في النهاية اعتماد وفعالية تقنية ZK.

شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • تعليق
  • مشاركة
تعليق
0/400
لا توجد تعليقات
  • تثبيت