تحليل تجريد الحساب متعدد السلاسل: الاختلافات الرئيسية بين ERC-4337 و AA الأصلي

تحليل تجريد الحساب عبر سلاسل متعددة: استكشاف مستقبل البنية التحتية للتشفير

مؤخراً، عُقد مؤتمر مجتمع الإيثيريوم (EthCC 7) في بروكسل، بلجيكا، وهو أكبر حدث سنوي للإيثيريوم في أوروبا، مع التركيز على التكنولوجيا والمجتمع. شهد المؤتمر أكثر من 350 من قادة الرأي البارزين في صناعة blockchain يقدمون كلماتهم، حيث ألقى أحد المطورين كلمة بعنوان "كشف المستقبل: تحليل تجريد الحسابات متعددة السلاسل".

النقاط الرئيسية في الخطاب

  • تجريد الحساب (AA) يشمل بشكل رئيسي نقطتين رئيسيتين هما تجريد التوقيع وتجريد الدفع. تجريد التوقيع يسمح للمستخدمين باختيار أي آلية تحقق يفضلونها، بينما يسمح تجريد الدفع باستخدام خيارات دفع متعددة للمعاملات. توفر هذه المرونة تجربة مستخدم أكثر أمانًا وكفاءة.

  • في ERC-4337 و AA الأصلية، فإن دالة نقطة الدخول في مرحلة "التحقق" ثابتة، بينما في مرحلة "التنفيذ"، فإن نقطة الدخول ثابتة فقط في AA الأصلية. قيود التحقق من المعاملات وخطوات تنفيذ المعاملات لها خصائصها وقيودها الخاصة في تنفيذات مختلفة.

  • تنفيذ ERC-4337 على سلاسل متوافقة مع EVM، هناك اختلافان رئيسيان: اختلافات البروتوكول في تصميم Rollup واختلافات في طريقة حساب العناوين، مما يؤدي إلى تفاصيل تطوير يصعب ملاحظتها عند تنفيذ ERC-4337 بين L1 و L2.

التشفير البنية التحتية المستقبلية؟ تجريد الحساب المتعدد السلاسل解析

تجريد الحساب مقدمة

ما هو تجريد الحساب

تجريد الحساب (AA) يشمل نقطتين رئيسيتين:

  1. تجريد التوقيع: يمكن للمستخدمين اختيار أي آلية تحقق يفضلونها، وليس فقط بعض خوارزميات التوقيع الرقمي (مثل ECDSA).

  2. تجريد الدفع: يمكن للمستخدمين استخدام خيارات دفع متعددة للمعاملات، مثل استخدام أصول ERC-20 بدلاً من الأصول الأصلية للدفع، أو السماح لطرف ثالث بتمويل المعاملة.

تقدم هذه المرونة تجربة مستخدم أكثر أمانًا وأفضل. الهدف من تجريد الحساب هو تحقيق هذين النقطتين الرئيسيتين بطرق متعددة.

مقدمة عن ERC-4337

حاليًا، توجد بعض القيود على الحسابات المملوكة خارجيًا (EOA) في بروتوكول الإيثيريوم، مثل طريقة التوقيع الثابتة وتصميم الدفع. يقوم ERC-4337 بحل هذه المشكلات من خلال تقديم إدارة حسابات ومعالجة معاملات أكثر مرونة.

  • هيكل userOp: في ERC-4337، يقوم المستخدم بإرسال هيكل userOp إلى Bundler. يقوم Bundler بجمع عدة userOp، ومن خلال استدعاء دالة handleOps، يرسلها إلى عقد EntryPoint.

  • عقد EntryPoint: يتعامل هذا العقد مع المعاملات مثل نظام التشغيل، وتتمثل الوظائف الرئيسية في:

    • استدعاء دالة validate في عقد الحساب، للتأكد من حصول userOp على تفويض من مالك الحساب.
    • تحصيل الرسوم.
    • استدعاء دالة execute في عقد الحساب، لتنفيذ العملية المستهدفة لـ userOp.

مقدمة عن AA الأصلية

في الإيثيريوم، يتم تقسيم الحسابات إلى حسابات EOA وحسابات العقود. ومع ذلك، في AA الأصلية، كل حساب هو عقد، وآلية معالجة المعاملات مدمجة مباشرة في بروتوكول سلسلة الكتل.

تصميم AA في شبكات blockchain المختلفة:

  • تجريد حساب ERC-4337: Ethereum ، Arbitrum ، التفاؤل ، القاعدة ، Linea ، التمرير ، Polygon PoS
  • تجريد الحساب الأصلي يتبع ERC-4337: عصر StarkNet و zkSync
  • تجريد الحساب الأصلي المصمم للخصوصية: Aztec

التشفير الأساسي للبنية التحتية المستقبلية؟ تحليل تجريد الحساب المتعدد السلاسل

الفرق بين ERC-4337 و AA الأصلي

أدوار نظام التشغيل

يجب على AA OS حل المشكلات التالية:

  • من يقرر سعر الغاز؟
  • من يقرر ترتيب المعاملات؟ أين توجد ذاكرة الانتظار؟
  • من الذي ي Trigger دالة نقطة الدخول؟
  • ما الذي يحدد عملية معالجة المعاملات؟

في ERC-4337، يتم تنفيذ هذه الأدوار بالتعاون مع Bundler وEntryPoint Contract.

في AA الأصلي، يرسل المستخدمون userOps الخاصة بهم إلى مشغل/ترتيب الخادم الرسمي بدلاً من Bundler وعقد EntryPoint.

في StarkNet، يتحمل Sequencer مسؤولية معالجة كل هذه المهام.

في zkSync، الفرق الرئيسي بين Era وغيرها من تنفيذات AA هو أن المشغل يحتاج إلى العمل مع bootloader (عقد النظام). يفتح Bootloader كتلة جديدة، ويحدد معلماتها (بما في ذلك معلمات الكتلة ومعلمات الغاز الأخرى)، ويستقبل المعاملات من المشغل للتحقق منها.

واجهة العقد

نظرًا لوجود ثلاث خطوات، فإن واجهة عقد الحساب متشابهة في تنفيذها المختلف، ولا يمكن استدعاء هذه الدوال المدخلة إلا من قبل AA OS:

  • ERC-4337: التحقق من عمليات المستخدم
  • zkSync: التحقق من المعاملات، دفع المعاملات، تنفيذ المعاملات
  • StarkNet: تنفيذ، تحقق، تحقق_إعلان، تحقق_نشر

في ERC-4337 و AA الأصلي، فإن دالة نقطة الدخول في مرحلة "التحقق" ثابتة، بينما في مرحلة "التنفيذ"، فإن نقطة الدخول ثابتة فقط في AA الأصلي.

قيود خطوات التحقق

بسبب عدم وجود قيود على تكلفة التحقق من المعاملات (بشكل أساسي، التحقق من المعاملات هو استدعاء دالة العرض)، يمكن للمهاجمين تنفيذ هجمات DoS على تجمع الذاكرة، مما يؤدي إلى تدمير المجمع (EIP-4337) أو المشغل/الترتيب (AA الأصلي).

تعرف EIP-4337 على الأوامر التي تم حظرها وكيفية تقييد الوصول إلى التخزين. قامت zkSync Era بتخفيف بعض قيود استخدام الأوامر:

  • منطق العقد يمكنه الوصول فقط إلى فتحة التخزين الخاصة به. إذا كان عنوان عقد الحساب هو العنوان A، فإنه يمكنه الوصول إلى:

  • فتحة التخزين التابعة للعنوان A

  • فتحة التخزين الخاصة بعنوان A آخر

  • تخزين الخزانات keccak256(A || X) المرتبطة بأي عنوان آخر: هذا يعني استخدام العنوان مباشرة كمفتاح في الخريطة (على سبيل المثال، mapping (address => value))، وهو ما يعادل الوصول إلى الخزانة keccak256(A || X). على سبيل المثال، رصيد الأصول في عقد ERC-20.

  • منطق العقد الذكي لا يمكنه الوصول إلى المتغيرات العالمية، مثل رقم الكتلة. كما أن StarkNet لا يسمح أيضًا بالعقود الخارجية بالاتصال.

قيود خطوات التنفيذ

في zkSync، يتطلب تنفيذ استدعاءات النظام التحقق من وجود علامات النظام. على سبيل المثال، الطريقة الوحيدة لزيادة nonce هي التفاعل مع NonceHolder، بينما يتطلب نشر العقد التفاعل مع ContractDeployer. تضمن علامات النظام أن مطوري الحسابات يتفاعلون بوعي مع عقود النظام.

في ERC-4337 و StarkNet ، لا توجد قيود خاصة في مرحلة التنفيذ.

رقم عشوائي

  • في ERC-4337، يميز تصميم نقطة الدخول بين قيمة المفتاح البالغ 192 بت والقيمة العشوائية البالغة 64 بت.
  • في zkSync، يدير عقد نظام NonceHolder nonce، لضمان الزيادة الصارمة، أي زيادة الرقم العشوائي بمقدار 1.
  • في StarkNet، nonce أيضًا في زيادة صارمة، ولكن لا يوجد nonce مجرّد يتم إدارته بواسطة عقد محدد.

استخدام المعاملة الأولى للنشر

  • يحتوي ERC-4337 على حقل initcode في هيكل userOp لنشر المرسل (عقد الحساب) في أول userOp له.
  • في StarkNet و zkSync، يجب على المستخدمين إرسال أول معاملة إلى المشغل/المُرتب لنشر عقد الحساب.

تصميم خاص في zkSync

إذا قمت بنقل ETH مباشرة من EOA في Ethereum إلى zkSync، دون الحاجة إلى نشر عقد حساب مخصص، فستتلقى حسابًا افتراضيًا بعنوان مشابه. يمكن لهذا الحساب العمل مثل EOA في Ethereum، كما أنه يتم التحكم فيه بواسطة المفتاح الخاص لـ EOA المقابل.

نوع الحساب هذا هو الإصدار None وليس version1. لا يمكنك استدعاء دالة DefaultAccount لأنه لم يتم نشر أي كود في مساحة النواة.

مستقبل البنية التحتية للتشفير؟ تحليل تجريد الحساب متعدد السلاسل

الفرق بين 4337 في L1 و 4337 في L2

هناك اختلافان رئيسيان في تنفيذ ERC-4337 على سلاسل متوافقة مع EVM: اختلافات في البروتوكول واختلافات في العناوين.

اختلاف البروتوكول

في تصميم Rollup، تحتاج L2 إلى رفع البيانات إلى L1 من أجل الأمان والتسوية. في سياق ERC-4337، يجب أن تشمل التكاليف المتعلقة بهذه العملية، مثل رسوم الأمان L1 ورسوم blob، في Gas التحقق المسبق. إن تحديد التكاليف المناسبة للرفع في Gas التحقق المسبق هو تحدٍ كبير.

اختلاف العنوان

تختلف طريقة ترميز العناوين في دالة create الخاصة بـ zkSync ERA عن تلك المستخدمة في Ethereum و OP. بالإضافة إلى ذلك، تستخدم StarkNet دالة تجزئة فريدة لحساب العناوين. في سياق ERC-4337 على سلاسل متوافقة مع EVM، نفترض عادةً أن حساب العناوين متسق عبر جميع السلاسل. ومع ذلك، هناك تفاصيل يصعب ملاحظتها قد تؤدي إلى اختلاف عناوين عقود الحساب بين تنفيذ ERC-4337 في Ethereum و L2.

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

التشفير البنية التحتية للمستقبل؟ تجريد الحسابات متعددة السلاسل

شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 2
  • مشاركة
تعليق
0/400
OnChainArchaeologistvip
· 07-09 19:30
أحب العبث بهذه الأشياء
شاهد النسخة الأصليةرد0
PriceOracleFairyvip
· 07-09 19:30
مه، aa مجرد رياضيات eth الأنيقة... لكن تلك التجريدات التوقيعية تبدو شهيّة نوعًا ما بصراحة
شاهد النسخة الأصليةرد0
  • تثبيت