تعلم كيف يجمع Aztec بين التنفيذ الخاص والعام على L2

المحتوى التعليميicon

تعلّم مع Aztec (AZTEC): العقود الذكية ذات الخصوصية المُقدَّمة على Ethereum L2

المقدمة: Aztec هي طبقة ثانية تعتمد على الخصوصية، وتتيح للمطورين إنشاء عقود ذكية ذات حالة خاصة وعامة، وتنفيذ خاص وعام، مما يمكّن تطبيقات "الخصوصية الانتقائية" التي تشعر وكأنها DeFi عادية—دون كشف كل شيء على السلسلة.

ما هو Aztec؟

أزتيك هي شبكة من الطبقة الثانية تركز على الخصوصية من التصميم مع دعم التوافق العام عند الحاجة.
الفكرة الأساسية بسيطة:
  • تنفيذ خاص وحالة خاصة للإجراءات الحساسة للمستخدمين (الأرصدة، الهوية، النية، الاستراتيجية).
  • تنفيذ عام وحالة عامة للأمور التي يجب أن تكون مرئية عالميًا (سيولة عامة، منطق عقد عام، حالة مشتركة).
لذلك، بدلاً من اختيار "الجميع عام" أو "الجميع خاص"، يدعم Aztec التطبيقات الهجينة.

كيف تعمل المعاملة على Aztec

يقوم Aztec بفصل التنفيذ إلى بيئتين منفصلتين:
  1. بيئة التنفيذ الخاصة (PXE) — تعمل من جانب المستخدم

يتم تنفيذ الوظائف الخاصة على جانب العميل داخل PXE (تُنطق "بيكسي") لتعظيم الخصوصية.
PXE:
  • ينفذ الوظائف الخاصة محليًا
  • يحمل المفاتيح + الملاحظات
  • يُنشئ أدلة معرفة صفرية للعمليات الخاصة
  • مُضمن في aztec.js (TypeScript)، قابل للتشغيل في Node أو المتصفح
  1. الآلة الافتراضية العامة (AVM) — تعمل على عقد Aztec

تُنفَّذ الوظائف العامة على الشبكة في الآلة الافتراضية لـ Aztec (AVM)، وهي مفهوميًا مشابهة لـ EVM (لذلك فإن "الحدس الكفء للغاز" تنطبق أكثر مثل Solidity).

قاعدة التنفيذ الاتجاهي (مهمة)

تتدفق المعاملة من خاص → عام:
  • يمكن للوظائف الخاصة تأجيل تشغيل الوظائف العامة.
  • لا يمكن للوظائف العامة استدعاء الوظائف الخاصة.
هذا الفصل مقصود: لا ينبغي أن يتمكن الشبكة العامة من "الوصول إلى" التنفيذ الخاص.

الحالة الخاصة مقابل الحالة العامة: الملاحظات، والمقومات، والأشجار

يستخدم Aztec نماذج حالة مختلفة حسب الخصوصية:

الحالة الخاصة = ملاحظات على نمط UTXO

يتم تخزين الحالة الخاصة كملاحظات (قطع بيانات مشابهة لـ UTXO). للحفاظ على الخصوصية:
  • يتم إلحاق الملاحظات في شجرة UTXO تُضاف إليها فقط
  • عندما يتم "إنفاق/حذف" ملاحظة، يتم إنشاء مُلغٍ
  • يتم تخزين الـ Nullifiers في شجرة nullifier منفصلة
هذا يسمح للشبكة بفرض مبدأ "الإنفاق مرة واحدة" دون كشف المحتويات الخاصة للملاحظات.

الحالة العامة = تخزين عام مشابه للحساب

يتصرف الحالة العامة بشكل أكثر شبهاً بإيثريوم:
  • مُخزّن في شجرة بيانات عامة
  • تم التحديث مباشرة ومرئي على السلسلة
ملاحظة للمطور:
  • عمل الحالة الخاصة = التزامات + مُحِلّات (إثبات الصلاحية دون كشف البيانات)
  • عمل الحالة العامة = تحديثات مباشرة (سلوك تخزين البلوكشين العادي)

التجريد الحسابي: كل حساب هو عقد ذكي

يحتوي Aztec على تجريد حسابات أصلي على مستوى البروتوكول:
  • لا توجد حسابات EOA (لا توجد حسابات "زوج مفاتيح" بسيطة)
  • كل حساب هو عقد ذكي
  • يمكن للمطورين تحديد قواعدهم الخاصة لـ:
    • المصادقة (التوقيعات، التوقيع المتعدد، مفاتيح المرور، المنطق المخصص)
    • سياسات التفويض (الحدود، الأذونات، مفاتيح الجلسات)
    • nonce / حماية من إعادة الإرسال
    • استراتيجية دفع الرسوم (دفع الرسوم بعملات مختلفة، نماذج الرعاية، إلخ)

لماذا يساعد هذا في مواجهة هجوم DoS (مشكلة "التحقق مكلف")

نموذج Aztec يدفع التحقق المعقد إلى جانب العميل:
  • يقوم العميل بالتحقق من توليد دليل ZK يفيد بأن "التحقق نجح"
  • يتحقق المُرتب من دليل بحجم ثابت
  • لذلك لا تزداد تعقيدات التحقق على تكلفة التحقق من الشبكة
هذا يمكّن من منطق حسابات "المستخدم المتقدم" دون إبطاء السلسلة.

المفاتيح في حسابات Aztec (التركيز على الخصوصية)

كل حساب Aztec مدعوم بثلاثة أزواج مفاتيح:
  • زوج المفاتيح Nullifier: يستخدم لحساب قيم إلغاء الملاحظات
  • زوج مفتاح العرض الوارد: يستخدم لتشفير الملاحظات للمرسل إليه
  • زوج مفتاح العرض الصادر: يستخدم لتشفير الملاحظات لإرسالها
بما أن الحسابات هي عقود ذكية، فهي لا تمتلك تلقائيًا زوجًا من المفاتيح التوقيعية—المصادقة تعتمد على تصميم عقد الحساب.

شهود المصادقة: أكثر أمانًا من "الموافقات اللانهائية"

يحلّ Aztec نمط "الموافقة اللانهائية" الخطر بشهادات المصادقة (AuthWit):
  • بدلاً من منح إذن غير محدود إلى الأبد،
  • يُصرح المستخدمون بإجراءات محددة مع معلمات محددة
تم تصميم هذا لتقليل مخاطر الموافقة المستمرة مع تمكين تجربة مستخدم جيدة (التجميع، الأتمتة).

ابنِ على Aztec باستخدام Noir

يتم كتابة العقود الذكية الخاصة بـ Aztec باستخدام Noir، وهي لغة مركزة على ZK لكتابة برامج/عقود قابلة للإثبات. تحذير رئيسي من الوثائق: يمكن كتابة الوظائف الخاصة بطرق غير مُحسَّنة بشكل ضار، لأن الإثبات يختلف في تصور الأداء عن التنفيذ العادي—لذلك فإن تعلم "كيفية كتابة Noir فعّال" أمر مهم.