🔥 حملة قائمة Gate.io #EIGEN# محدودة الوقت في النار، شارك في جوائز بقيمة 20،000 دولار!
إيداع #EIGEN# إلى تقسيم 13,000 دولار
تجارة #EIGEN# لتقسيم إضافي 4,000$
حصريًا للمستخدمين الجدد: شارك في جائزة بقيمة 3,000 دولار
🚀 انضم الآن: https://www.gate.io/questionnaire/5209
التفاصيل: https://www.gate.io/announcements/article/39599
بوتيرين: نظرة ثاقبة على قراءات متقاطعة L2 للمحافظ وحالات الاستخدام الأخرى
المؤلف: Vitalik Buterin Compilation: Vernacular Blockchain
في مقالتي السابقة حول التحولات الثلاثة ، أوجزت بعض الأسباب الرئيسية التي تجعل من المفيد البدء بالتفكير صراحة في دعم L1 + cross-L2 وأمن المحفظة والخصوصية باعتبارها سمات أساسية ضرورية لمكدس النظام البيئي. يمكن تصميمها بشكل فردي بواسطة محفظة واحدة.
سيركز هذا المنشور بشكل مباشر أكثر على الجوانب الفنية لمشكلة فرعية معينة ، مثل: كيفية قراءة L1 بسهولة أكبر من L2 أو L2 من L1 أو L2 من L2 آخر. تعتبر معالجة هذه المشكلة أمرًا بالغ الأهمية لتمكين بنيات فصل الأصول / مخزن المفاتيح ، ولكن لديها أيضًا حالات استخدام قيّمة في مناطق أخرى ، وعلى الأخص تحسين سلاسل المكالمات عبر L2 الموثوقة ، بما في ذلك حالات الاستخدام مثل نقل الأصول بين L1 و L2. ** كتالوج هذا المقال ** ما هو الهدف؟ كيف يبدو الدليل المتقاطع؟ ما نوع مخطط الإثبات الذي يمكننا استخدامه؟ دليل ميركل ZK SNARKs شهادة KZG مخصصة دليل شجرة Verkle البلمرة قراءة الحالة المباشرة كيف يتعلم L2 أحدث جذر لحالة Ethereum؟ محافظ على سلاسل غير L2s حماية الخصوصية لخص
1. ما هو الهدف؟
بمجرد أن يصبح L2 سائدًا ، سيمتلك المستخدمون أصولًا عبر L2s متعددة ، وربما L1 أيضًا. بمجرد أن تصبح محافظ العقود الذكية (multisig أو الاسترداد الاجتماعي أو غير ذلك) سائدة ، ستتغير المفاتيح اللازمة للوصول إلى حسابات معينة بمرور الوقت ولن تكون المفاتيح القديمة بحاجة إلى أن تكون صالحة. بمجرد حدوث هذين الأمرين ، سيحتاج المستخدمون إلى طريقة لتغيير المفاتيح التي يمكنها الوصول إلى العديد من الحسابات الموجودة في العديد من الأماكن المختلفة دون إجراء عدد كبير جدًا من المعاملات. على وجه الخصوص ، نحن بحاجة إلى طريقة للتعامل مع العناوين غير الواقعية: العناوين التي لم يتم "تسجيلها" على السلسلة بأي شكل من الأشكال ، ولكنها لا تزال بحاجة إلى تلقي الأموال والاحتفاظ بها بشكل آمن. نعتمد جميعًا على العناوين المغايرة للواقع: عند استخدام Ethereum لأول مرة ، يمكنك إنشاء عنوان ETH يمكن لشخص ما استخدامه للدفع لك دون "تسجيل" العنوان على السلسلة (يتطلب هذا دفع رسوم txfee ، لذا تمتلك بالفعل بعض ETH). بالنسبة إلى EOA ، تبدأ جميع العناوين بعنوان غير واقعي. مع محافظ العقود الذكية ، لا تزال العناوين الواقعية ممكنة بفضل CREATE2 إلى حد كبير ، والذي يسمح لك بالحصول على عنوان ETH لا يمكن ملؤه إلا من خلال عقد ذكي برمز يطابق تجزئة معينة.
! [Aprx6619C0RKWypR8IvDnS15p0E7CekwuSR506Fu.png] (https://img.gateio.im/social/moments-40baef27dd-7deb37c94e-dd1a6f-62a40f "7054363")
خوارزمية حساب العنوان EIP-1014 (CREATE2)
ومع ذلك ، تقدم محافظ العقود الذكية تحديًا جديدًا: إمكانية الوصول إلى التغييرات الرئيسية. هذا العنوان هو تجزئة لرمز البدء ويمكن أن يحتوي فقط على مفتاح التحقق الأولي للمحفظة. سيتم تخزين مفتاح التحقق الحالي في مخزن المحفظة ، لكن سجل التخزين هذا لن ينتشر بطريقة سحرية إلى L2s الأخرى. إذا كان لدى المستخدم العديد من العناوين في العديد من L2s ، بما في ذلك العناوين غير المعروفة لـ L2 التي يستخدمها (لأنها غير واقعية) ، فيبدو أن هناك طريقة واحدة فقط للسماح للمستخدمين بتغيير مفاتيحهم: بنية فصل الأصول / مخزن المفاتيح. كل مستخدم لديه (1) "عقد مخزن مفاتيح" (إما في L1 أو L2 محدد) يخزن مفاتيح التحقق لجميع المحافظ وقواعد تغيير المفاتيح ، و (2) "عقود المحفظة" التي تقرأ عبر السلاسل لمفاتيح التحقق.
! [lW50aExDpfi7AxsZTmeUXmvctJqoQOEall2aRroH.png] (https://img.gateio.im/social/moments-40baef27dd-c0773c167e-dd1a6f-62a40f "7054365")
هناك طريقتين لاداء ذلك:
إصدار خفيف الوزن (يتحقق فقط من المفاتيح المحدثة): تخزن كل محفظة مفتاح التحقق محليًا وتحتوي على وظيفة يمكن استدعاؤها للتحقق من إثبات عبر السلسلة للحالة الحالية لمخزن المفاتيح وتحديث مفتاح التحقق المخزن محليًا لمطابقته. عند استخدام المحفظة لأول مرة على L2 معين ، يجب استدعاء هذه الوظيفة للحصول على مفتاح المصادقة الحالي من مخزن المفاتيح. -Pros: يتم استخدام البراهين عبر السلسلة بشكل مقتصد ، لذلك لا يهم إذا كانت البراهين عبر السلسلة باهظة الثمن. لا يمكن استخدام جميع الأموال إلا مع المفتاح الحالي ، لذلك يظل آمنًا.
2. كيف يبدو الإثبات عبر السلسلة؟
لإثبات مدى التعقيد الكامل ، سوف نستكشف أصعب حالة: مخزن المفاتيح على L2 واحد ، والمحفظة على L2 مختلف. فقط نصف هذا التصميم مطلوب إذا كان مخزن المفاتيح في المحفظة على L1.
! [mFcDC57SfmM6ukDMLPTiulzhHoj3ovGykyS3erqq.png] (https://img.gateio.im/social/moments-40baef27dd-11797fe649-dd1a6f-62a40f "7054368")
افترض أن مخزن المفاتيح موجود على Linea وأن المحفظة موجودة على Kakarot. يتضمن الدليل الكامل لمفتاح المحفظة ما يلي:
3. ما هي أنواع مخططات الإثبات التي يمكننا استخدامها؟
هناك خمسة خيارات رئيسية: -برهان العرجاء -العام ZK-SNARKs
! [QChCpk7vF9XJVLBnjaWrgsQj2V5F2W13XHrB1t3C.png] (https://img.gateio.im/social/moments-40baef27dd-c1a1fb55be-dd1a6f-62a40f "7054369")
يشير "التجميع" إلى تجميع جميع الأدلة المقدمة من المستخدمين داخل كل كتلة في إثبات ميتا واحد كبير يجمع كل البراهين. هذا ممكن مع SNARK و KZG ، ولكن ليس مع شوكات Merkle (يمكنك الجمع بين شوكات Merkle قليلاً ، ولكنها توفر لك فقط السجل (txs لكل كتلة) / السجل (إجمالي عدد ملفات تخزين المفاتيح) ، في الممارسة العملية ربما يكون 15-30٪ في المنتصف ، لذلك ربما لا يستحق السعر). يصبح التجميع مفيدًا فقط عندما يكون للسيناريو عدد كبير من المستخدمين ، لذلك من الناحية العملية ، يمكن أن يؤدي تنفيذ الإصدار 1 إلى حذف التجميع وتنفيذه في الإصدار 2.
4. كيف ستعمل براهين ميركل؟
هذا سهل: ما عليك سوى اتباع الرسم التخطيطي في القسم السابق. بتعبير أدق ، كل "دليل" (بافتراض حالة إثبات أقصى صعوبة من مستوى L2 إلى L2 آخر) سوف يحتوي على: فرع Merkle يشهد على جذر حالة L2 الذي يحتفظ بمخزن المفاتيح ، نظرًا لأحدث جذر حالة من Ethereum المعروف لـ L2. يحتفظ مخزن المفاتيح بجذر حالة L2 المخزن في فتحة تخزين معروفة في عنوان معروف (يمثل العقد الموجود على L1 L2) ، لذلك يمكن ترميز المسار عبر الشجرة. فرع Merkle يشهد على مفتاح التحقق الحالي ، بالنظر إلى جذر الحالة لـ L2 الذي يحتفظ بمخزن المفاتيح. هنا مرة أخرى ، يتم تخزين مفتاح المصادقة في فتحة تخزين معروفة في عنوان معروف ، لذلك يمكن أن يكون المسار مشفرًا. لسوء الحظ ، فإن Ethereum Proofs of State معقدة ، ولكن المكتبات موجودة للتحقق من صحتها ، وإذا كنت تستخدم هذه المكتبات ، فإن هذه الآلية ليست معقدة للغاية في التنفيذ. ** المشكلة الأكبر هي التكلفة. ** براهين Merkle طويلة جدًا ، وللأسف فإن شجرة باتريشيا أطول بحوالي 3.9 مرة من اللازم (على وجه الدقة: دليل Merkle المثالي لشجرة تحمل كائنات N يبلغ طولها 32 \ * log2 (N) بايت ، ولأن أشجار باتريشيا Ethereum لديها 16 ورقة لكل طفل ، والدليل على هذه الأشجار هو 32 \ * 15 \ * log16 (N) ~ = 125 \ * log2 (N) بايت طويلة). في حالة بها حوالي 250 مليون حساب (~ 2²⁸) ، فإن هذا يجعل كل برهان 125 \ * 28 = 3500 بايت ، أو حوالي 56000 غاز ، بالإضافة إلى التكلفة الإضافية لفك التشفير والتحقق من التجزئة. معًا ، سينتهي الاثنان بتكلفة حوالي 100000 إلى 150.000 غاز (إذا تم استخدامه لكل معاملة ، باستثناء التحقق من التوقيع) - أعلى بكثير من السعر الأساسي الحالي البالغ 21000 غاز لكل معاملة. ومع ذلك ، إذا تم التحقق من الدليل على المستوى 2 ، فإن التناقض يزداد سوءًا. يعد الحساب داخل L2 رخيصًا لأن الحساب يتم خارج السلسلة وفي نظام بيئي به عدد أقل بكثير من العقد L1. من ناحية أخرى ، يجب نشر البيانات إلى L1. لذا فإن المقارنة ليست 21 ألف غاز مقابل 15 ألف غاز ؛ إنها 21 ألف غاز L2 مقابل 100 ألف غاز L1. يمكننا حساب ما يعنيه هذا من خلال النظر إلى المقارنة بين تكلفة الغاز L1 وتكلفة الغاز L2:
! [Byb1nBD9GFmqUZfya6w68RN3uqYxZ5oP1pdQqapA.png] (https://img.gateio.im/social/moments-40baef27dd-ff1cddecd8-dd1a6f-62a40f "7054370")
حاليًا ، L1 أغلى بـ 15-25 مرة من L2 للإرسال البسيط و 20-50 مرة أكثر تكلفة لمبادلات الرموز. الإرسال البسيط هو كمية كبيرة نسبيًا من البيانات ، لكن مقدار التبادل الحسابي أكبر بكثير. لذلك ، تعتبر المقايضة معيارًا أفضل للتكلفة التقريبية لحساب L1 مقابل حساب L2. مع أخذ كل هذا في الاعتبار ، إذا افترضنا نسبة تكلفة 30x بين التكلفة الحسابية L1 والتكلفة الحسابية L2 ، يبدو أن هذا يعني أن تكلفة وضع إثبات Merkle على L2 يمكن أن تكون مساوية لـ 50 معاملة عادية. بالطبع ، يؤدي استخدام أشجار Merkle الثنائية إلى تقليل التكلفة بمعامل ~ 4 ، ولكن حتى ذلك الحين ، في معظم الحالات ، تكون التكلفة مرتفعة للغاية - إذا كنا على استعداد للتضحية بعدم التوافق مع شجرة الحالة السداسية الحالية لـ Ethereum ، فنحن نبحث عن خيارات أفضل.
5. كيف سيعمل برهان ZK-SNARK؟
من السهل أيضًا فهم استخدام ZK-SNARKs من الناحية المفاهيمية: ما عليك سوى استبدال براهين Merkle في الرسم التخطيطي أعلاه بإثباتات ZK-SNARK التي تثبت وجود هذه البراهين من Merkle. تتطلب ZK-SNARK 400000 غاز تقريبًا للحساب ، والتي تستغرق حوالي 400 بايت (مقارنة بـ: تتطلب المعاملة الأساسية 21000 غاز و 100 بايت ، والتي يمكن تقليلها إلى 25 كلمة تقريبًا بعد الضغط في المهرجان المستقبلي). لذلك ، من وجهة نظر حسابية ، فإن تكلفة ZK-SNARKs هي 19 ضعف تكلفة المعاملات الأساسية اليوم ، ومن وجهة نظر البيانات ، فإن تكلفة ZK-SNARKs هي 4 أضعاف تكلفة المعاملات الأساسية اليوم و 16 مرة تكلفة أوقات المعاملات الأساسية المستقبلية. هذه الأرقام هي تحسن كبير مقارنة بإثبات ميركل ، لكنها لا تزال باهظة الثمن. هناك طريقتان لتحسين هذا: (1) أدلة KZG ذات الأغراض الخاصة ، أو (2) التجميع ، على غرار تجميع ERC-4337 ولكن باستخدام الرياضيات الأكثر رواجًا. يمكننا دراسة كليهما في نفس الوقت.
6. كيف ستعمل براهين KZG ذات الأغراض الخاصة؟
تحذير ، هذا القسم رياضي أكثر من الأقسام الأخرى. هذا لأننا نتخطى أدوات الأغراض العامة ، ونبني بعضًا أرخص منها للأغراض الخاصة ، لذلك علينا أن نذهب "تحت غطاء المحرك" أكثر. إذا لم تكن الرياضيات العميقة هي الشيء الذي تفضله ، فانتقل مباشرة إلى القسم التالي. أولاً ، ملخص لكيفية عمل التزامات KZG: يمكننا تمثيل مجموعة من البيانات [D \ _1 ... D \ _n] باستخدام برهان KZG لكثير الحدود المشتق من البيانات: على وجه التحديد ، متعدد الحدود P ، حيث P (w) = D \ _1 ، P (w²) = D \ _2 ... P (wⁿ) = D \ _n. w هنا هو "الجذر الموحد" ، قيمة wN = 1 لبعض حجم مجال التقييم N (كل هذا يتم في حقول محدودة). للالتزام بـ P ، نقوم بإنشاء نقطة منحنى بيضاوي الشكل com (P) = P₀ \ * G + P₁ \ * S₁ + ... + Pk \ * Sk. هنا: -G هي نقطة توليد المنحنى -Pi هو معامل ith لكثير الحدود P -Si هي النقطة i في الإعداد الموثوق به لإثبات أن P (z) = a ، نقوم بإنشاء حاصل كثير الحدود Q = (P - a) / (X - z) ، وإنشاء التزام com (Q). من الممكن فقط إنشاء مثل هذا كثير الحدود إذا كانت P (z) تساوي بالفعل a. للتحقق من الإثبات ، نتحقق من المعادلة Q \ * (X - z) = P - a عن طريق إجراء فحص منحنى بيضاوي على الإثبات com (Q) والالتزام متعدد الحدود com (P): نتحقق من e (com (Q) ) ، كوم (X - z))؟ = e (com (P) - com (a)، com (1)) تتضمن بعض الخصائص الرئيسية التي يجب معرفتها ما يلي:
! [2In3vl05wne1uejML5EFsLGZefUPFuio7vwqEyHJ.png] (https://img.gateio.im/social/moments-40baef27dd-b5b508b148-dd1a6f-62a40f "7054371")
لذلك ، يتطلب الإثبات الكامل:
7. كيف ستعمل شجرة Verkle؟
تتضمن أشجار Verkle بشكل أساسي تجميع التزامات KZG معًا (أو التزامات IPA ، والتي يمكن أن تكون أكثر كفاءة وتستخدم تشفيرًا أبسط): لتخزين قيم 2⁴⁸ ، فإنك تلتزم KZG بقائمة من قيم 2²⁴ ، كل منها هو في حد ذاته التزام KZG بـ 2²⁴ القيمة. تعتبر أشجار Verkle بشدة لأشجار ولاية Ethereum ، لأنه يمكن استخدام أشجار Verkle لإجراء تعيينات قيمة المفتاح ، وليس القوائم فقط (في الأساس ، يمكنك إنشاء شجرة بحجم 2²⁵⁶ ولكن تبدأ فارغة ، فقط إذا قمت بملء أجزاء معينة من شجرة عندما تحتاج بالفعل لملئها).
! [mRvhYA6NB4YbDQSuqD8YBm8I6mvsm1fdJ8wJ9OP3.png] (https://img.gateio.im/social/moments-40baef27dd-1c259f1ce7-dd1a6f-62a40f "7054372")
كيف تبدو شجرة فيكر. في الواقع ، يمكنك إعطاء كل عقدة عرض 256 == 2⁸ للأشجار القائمة على IPA و 2²⁴ للأشجار القائمة على KZG. البراهين في أشجار Verkle أطول إلى حد ما مما كانت عليه في KZG ؛ يمكن أن يصل طولها إلى مئات البايتات. يصعب أيضًا التحقق منها ، خاصة إذا حاولت تجميع العديد من البراهين في واحدة. في الواقع ، يجب اعتبار أشجار Verkle مثل أشجار Merkle ، ولكن أكثر جدوى من دون التشويش (بسبب انخفاض تكلفة البيانات) ، و SNARKing أرخص (بسبب انخفاض تكلفة الإثبات). أكبر ميزة لأشجار Verkle هي أنها يمكن أن تنسق هياكل البيانات: يمكن استخدام البراهين Verkle مباشرة لحالات L1 أو L2 ، وليس لها بنية تراكب ، وتستخدم نفس الآلية تمامًا لـ L1 و L2. بمجرد أن تصبح أجهزة الكمبيوتر الكمومية مشكلة ، أو بمجرد أن يثبت تفرّع Merkle فعاليته الكافية ، يمكن استبدال أشجار Verkle في مكانها بأشجار تجزئة ثنائية بوظائف التجزئة الملائمة لـ SNARK.
8. المجاميع
إذا احتاج N من المستخدمين الذين أجروا معاملات N (أو بشكل أكثر واقعية ، N ERC-4337 UserOperations) إلى إثبات مطالبات عبر سلسلة N ، فيمكننا توفير الكثير من المال من خلال تجميع هذه الأدلة: دمج هذه المعاملات في كتلة أو منشئ الحزمة يمكن أن يؤدي ذلك إلى إنشاء دليل يثبت كل هذه الادعاءات في نفس الوقت. قد يعني هذا:
! [oxeYy0EtfGLg1F2UMJ3TgOJhNwBa3VbcyNHTzD1z.png] (https://img.gateio.im/social/moments-40baef27dd-28eca75ea3-dd1a6f-62a40f "7054373")
رسم تخطيطي من منشور تنفيذ محفظة BLS يوضح سير العمل للتوقيعات المجمعة لـ BLS في إصدار مبكر من ERC-4337. قد يبدو سير العمل لتجميع البراهين عبر السلسلة متشابهًا جدًا.
9. قراءة الحالة المباشرة
الاحتمال الأخير ، المتاح أيضًا فقط لقراءة L2 للقراءة L1 (وليس قراءة L1 L2) ، هو تعديل L2 بحيث يتم إجراء مكالمات ثابتة مباشرة للعقود على L1. يمكن القيام بذلك باستخدام أكواد التشغيل أو التجميع المسبق ، والذي يسمح بإجراء مكالمات إلى L1 ، حيث تقدم العنوان المستهدف والغاز وبيانات الاتصال ، ويعيد الإخراج ، ولكن نظرًا لأن هذه المكالمات ثابتة ، فلا يمكنها في الواقع تغيير أي حالة L1. يجب أن يعرف L2 أن L1 قد عالج الإيداع بالفعل ، لذلك لا يوجد شيء على الإطلاق يمنع تنفيذ مثل هذا الشيء ؛ هذا في الغالب يمثل تحديًا تقنيًا للتنفيذ (انظر: هذا من RFP المتفائل لدعم المكالمات الثابتة إلى L1). لاحظ أنه إذا كان مخزن المفاتيح على L1 ، وكان L2 يدمج مكالمات L1 الثابتة ، فلا يلزم تقديم أي شهادة على الإطلاق! ومع ذلك ، إذا لم تدمج L2 مكالمات L1 الثابتة ، أو إذا كان مخزن المفاتيح على L2 (والذي قد يتعين القيام به في النهاية بمجرد أن يصبح L1 مكلفًا للغاية بالنسبة للمستخدمين لاستخدامه ولو قليلاً) ، فستكون هناك حاجة إلى إثبات.
10. كيف يتعلم L2 أحدث جذر لحالة Ethereum؟
تتطلب جميع المخططات المذكورة أعلاه L2 للوصول إلى أقرب جذر حالة L1 أو أقرب حالة L1 بأكملها. لحسن الحظ ، جميع L2s لديها بالفعل بعض الوظائف للوصول إلى أحدث حالة L1. هذا لأنهم يحتاجون إلى هذه الوظيفة للتعامل مع الرسائل من L1 إلى L2 ، وخاصة الإيداعات. في الواقع ، إذا كانت L2 تحتوي على وظيفة إيداع ، فيمكنك استخدام L2 كما هي لنقل جذر حالة L1 إلى عقد على L2: فقط اجعل العقد على L1 يتصل بكود تشغيل BLOCKHASH ، وقم بتمريره إلى L2 كرسالة إيداع . يمكن استقبال رأس الكتلة الكاملة على جانب L2 واستخراج جذر حالتها. ومع ذلك ، يفضل أن يكون لكل L2 طريقة واضحة للوصول مباشرة إلى أحدث حالة L1 كاملة أو أقرب جذر حالة L1. يتمثل التحدي الرئيسي في تحسين طريقة تلقي L2 لأحدث جذر حالة L1 في تحقيق الأمان وزمن انتقال منخفض في نفس الوقت:
! [GbGQTaEGhOoBoi5Tpp6I1A4Rx8PSFhPGoT1R87ZC.png] (https://img.gateio.im/social/moments-40baef27dd-e9c54e3e46-dd1a6f-62a40f "7054374")
يمكن أن تعتمد كتل سلسلة L2 ليس فقط على كتل L2 السابقة ، ولكن أيضًا على كتل L1. إذا تعافى L1 عبر مثل هذا الارتباط ، فسوف يتعافى L2 أيضًا. من الجدير بالذكر أن هذه هي أيضًا الطريقة التي تم بها تصور الإصدارات السابقة (pre-Dank) من التجزئة للعمل ؛ انظر هنا للحصول على الكود.
11. ما مقدار الاتصال بـ Ethereum الذي تحتاجه سلسلة أخرى للاحتفاظ بمخزن مفاتيح متجذر في محفظة Ethereum أو L2؟
من المستغرب ، ليس هذا العدد الكبير. لا يحتاج الأمر إلى أن يكون تراكميًا في الواقع: إذا كان L3 أو التحقق من الصحة ، فلا بأس من الاحتفاظ بالمحفظة هناك ، طالما أنك تحتفظ بمخزن المفاتيح في L1 أو ZK rollup. ما تحتاجه حقًا هو السلسلة للوصول المباشر إلى جذر حالة Ethereum ، والتزام تقني واجتماعي لتكون على استعداد لإعادة التنظيم إذا أعادت Ethereum تنظيم ، و Hard fork إذا كان Ethereum هارد فورك. من الأسئلة البحثية المثيرة للاهتمام تحديد المدى الذي يمكن أن يكون لسلسلة ما فيه هذا الشكل من الاتصال مع سلاسل أخرى متعددة (مثل Ethereum و Zcash). يمكن القيام بذلك بسذاجة: إذا أعيد تنظيم Ethereum أو Zcash ، يمكن لسلسلتك الموافقة على إعادة التنظيم (وهارد فورك إذا كان Ethereum أو Zcash hard forks) ، لكن مشغلي العقدة ومجتمعك عادة ما يكون لديهم تبعيات تكنولوجية وسياسية مرتين. لذلك ، يمكن استخدام هذه التقنية للاتصال ببعض السلاسل الأخرى ، ولكن بتكلفة متزايدة. تتميز مخططات ZK المبنية على جسر بخصائص تقنية جذابة ، ولكن نقطة ضعفها الرئيسية هي أنها ليست قوية بنسبة 51٪ من الهجمات أو الهارد فورك. قد تكون هناك حلول أكثر ذكاءً أيضًا.
12. حماية الخصوصية
من الناحية المثالية ، نريد أيضًا الحفاظ على الخصوصية. إذا كان لديك العديد من المحافظ التي يديرها نفس مخزن المفاتيح ، فنحن نرغب في التأكد مما يلي:
! [yrW7UPhndSkx5MiegIH0LVCvfbWhbBRPlfOxuDdy.png] (https://img.gateio.im/social/moments-40baef27dd-8e4f32459a-dd1a6f-62a40f "7054375")
يتمثل التحدي الرئيسي في هذا النهج حاليًا في أن التجميع يتطلب من المُجمِّع إنشاء SNARK تكراري ، وهو بطيء جدًا حاليًا. مع KZG ، يمكننا استخدام هذا العمل (انظر أيضًا: نسخة أكثر رسمية من هذا العمل في ورقة Caulk) على أدلة غير مفهرسة تكشف عن KZG كنقطة انطلاق. ومع ذلك ، فإن تجميع البراهين العمياء مشكلة مفتوحة تتطلب مزيدًا من الاهتمام. لسوء الحظ ، فإن قراءة L1 مباشرة من داخل L2 لا تحافظ على الخصوصية ، على الرغم من أن تنفيذ وظيفة القراءة المباشرة لا يزال مفيدًا للغاية ، سواء لتقليل زمن الوصول أو بسبب فائدتها للتطبيقات الأخرى.
13. ملخص
للحصول على محفظة استرداد اجتماعية عبر سلسلة ، فإن سير العمل الأكثر واقعية هو المحفظة التي تحتفظ بمخزن مفاتيح في مكان واحد ، ومحفظة تحتفظ بالمحافظ في العديد من المواقع ، حيث تقرأ المحفظة مخزن المفاتيح (i) لتحديث مفتاح المصادقة محليًا عرض ، أو (2) في عملية التحقق من صحة كل معاملة. العنصر الأساسي الذي يجعل هذا ممكنًا هو البراهين المتقاطعة. نحن بحاجة إلى العمل على تحسين هذه البراهين. يبدو أن ZK-SNARKs أو حلول KZG المخصصة التي تنتظر إثبات Verkle هي أفضل الخيارات. على المدى الطويل ، يعد بروتوكول التجميع (حيث تقوم الحزم بإنشاء أدلة مجمعة كجزء من إنشاء حزمة من جميع إجراءات المستخدم المرسلة من قبل المستخدمين) ضروريًا لتقليل التكاليف. من المحتمل أن يتم دمج هذا في النظام البيئي ERC-4337 ، على الرغم من أن التغييرات في ERC-4337 قد تكون مطلوبة. يجب تحسين L2 لتقليل زمن انتقال قراءة حالة L1 (أو على الأقل جذر الحالة) من داخل L2. إنه مثالي لـ L2s لقراءة حالة L1 مباشرة ، مما يوفر مساحة إثبات. لا يمكن أن تكون المحافظ على L2 فقط ، بل يمكنك أيضًا وضع محافظ على أنظمة ذات مستوى أقل من الاتصال بـ Ethereum (L3 ، أو حتى الموافقة فقط على تضمين جذر حالة Ethereum وسلسلة مفترقات مستقلة). ومع ذلك ، يجب أن يكون مخزن المفاتيح على L1 أو ZK rollup L2 عالي الأمان. يوفر استخدام L1 الكثير من التعقيد ، ولكن حتى ذلك يمكن أن يكون مكلفًا للغاية على المدى الطويل ، لذلك يجب استخدام مخزن المفاتيح في L2. سيتطلب الحفاظ على الخصوصية عملاً إضافيًا ويجعل خيارات معينة أكثر صعوبة. ولكن ربما ينبغي علينا اللجوء إلى حلول الحفاظ على الخصوصية على أي حال ، على الأقل التأكد من أن كل ما توصلنا إليه متوافق مع الحفاظ على الخصوصية.