*أرسل العنوان الأصلي :استكشاف جسر Ethereum الكنسي ونظام إثباته
يتكون الكسوف من ثلاث طبقات:
يوضح الرسم البياني أدناه كيفية تفاعل هذه الوحدات:
ستركز بقية هذه المقالة على جسر Eclipse's Ethereum، كما هو موضح في الرسم البياني. سوف تقوم Blobstream بترحيل الشهادات الموقعة من قبل أداة التحقق من صحة Celestia التي تم تعيينها لتأكيد Ethereum بأن البيانات الخاصة بمجموعة فتحات Eclipse قد تم نشرها بشكل صحيح. يسمح هذا لجسر Eclipse بالتحقق من البيانات المقدمة لإثباتات الاحتيال ضد جذور البيانات الموقعة من Celestia. وفي بقية هذا القسم، سنوضح العمليات التي يتم من خلالها:
يتم تلخيص التدفق عندما يقوم المستخدم بالإيداع في Eclipse عبر جسر Ethereum الأصلي على النحو التالي:
يوضح الرسم البياني أدناه التفاعلات بين Ethereum وCelestia ومنفذ SVM أثناء تدفق الإيداع الموصوف أعلاه:
يتم تلخيص تدفق نشر دفعات من فتحات Eclipse إلى Celestia كنقاط بيانات أدناه:
يشرح الرسم البياني أدناه من Celestia كيفية تخزين التزام البيانات داخل كتلة Celestia معينة في رأس الكتلة:
على غرار لغات L2 الأخرى التي تستخدم أدلة الاحتيال (Arbitrum، وFuel، وغيرها الكثير)، تتطلب عمليات السحب من Eclipse فترة تحدي يمكن خلالها للمحققين تقديم أدلة الاحتيال في حالة انتقال حالة غير صالحة:
في هذا القسم الأخير، سنتناول بالتفصيل تصميم نظام مكافحة الاحتيال من Eclipse، المستوحى من أناتولي ياكوفينكو وجون أدلر. بشكل عام، لأي دليل على الاحتيال، يجب على المدقق:
في حالة Eclipse، (1) تقوم Celestia بدمج النقط من مجموعات الكتل التي ينشرها منفذ SVM الخاص بـ Eclipse، مما يسمح بإثباتات إدراج المعاملة عبر شهود Merkle. بالنسبة إلى (2)، على عكس L2s المستندة إلى EVM، والتي تنشر جذر Merkle لشجرة الحالة العالمية، لأسباب تتعلق بالأداء، لا يقوم Eclipse بتحديث شجرة حالة عالمية على أساس كل معاملة على حدة، ولكننا سنشرح كيف نضمن صحة المدخلات بمزيد من التفاصيل أدناه. أخيرًا، في الحالة (3)، يقوم برنامج التحقق الخاص بـ Eclipse بإنشاء دليل zk للمخرجات (المخرجات) لمعاملة معينة، على عكس نهج لعبة التحقق التفاعلية الشائع عبر L2s المستندة إلى EVM.
يمكن تمثيل جميع معاملات Eclipse على أنها تأخذ قائمة بحسابات الإدخال، وتنفذ معاملة، وتنتج قائمة بحسابات المخرجات الناتجة:
الملاحظة الحاسمة لتصميمنا المضاد للاحتيال هي أنه بالنسبة لتنفيذ المعاملة، يجب دائمًا أن يكون أي S_InputAccount هو S_OutputAccount لبعض المعاملات السابقة. يتيح لنا ذلك الإشارة إلى المعاملة الأخيرة في السلسلة التي أنتجت حساب إدخال معين بدلاً من تقديم شاهد Merkle إلى شجرة الحالة العالمية. نتيجة لتصميمنا، نقدم أنواعًا إضافية من اتهامات الاحتيال، مثل الإشارة إلى عدم صحة المعاملة السابقة أو أن حساب الإدخال "تم إنفاقه" بالفعل من خلال بعض المعاملات اللاحقة. نحن نصف هذه العملية بمزيد من التفصيل أدناه:
بالإضافة إلى ذلك، فإن دفعات بيانات المعاملات المرسلة إلى Celestia قد تم ترحيل التزاماتها إلى عقد Ethereum. وتتكون الالتزامات من:
كما هو موضح أعلاه، هناك عدة طرق يمكن من خلالها اكتشاف أن الدُفعة غير صحيحة:
إذا تبين أن أي دفعة التزام غير صحيحة، فسيقوم عقد Eclipse Bridge بإعادة الجسر إلى آخر التزام دفعة صحيح يمكن إثباته. لاحظ أن المعاملات لا تتم إزالتها أبدًا من السلسلة، حتى في حالة الاحتيال، لذلك يجب إعادة حساب الالتزام فقط.
تهدف هذه المقالة إلى تقديم دليل رفيع المستوى لجسر Eclipse المخفض للثقة على Ethereum وشرح بعض التفاصيل حول تصميمنا المضاد للاحتيال. نظرًا للطبيعة النمطية لـ L2 الخاص بنا ونشأة مجموعتنا التكنولوجية، سنستمر في إصدار المقالات والوثائق حول الجوانب المختلفة لـ Eclipse في الأسابيع المقبلة.
للمشاركة في Eclipse Testnet، يرجى اتباع تعليماتنا هنا. يمكنك الاتصال بنا على Twitter أو Discord لطرح استفسارات محددة حول Testnet أو الجسر أو الأسئلة الفنية.
[1]: العقدة التي تحسب نتائج معاملات SVM وتطبق الإخراج النهائي على حالة Eclipse الجديدة
[2]: عامل يقوم بتمرير الأحداث على السلسلة بين Ethereum وEclipse
[3]: لاحظ أن المنفذ، وليس المُسلسل، هو من ينشر هذا. إذا تم تضمينها في البيانات التي نشرها جهاز التسلسل، فسيضيف ذلك تعقيدًا يمكن أن يتخطاه جهاز التسلسل، مما يجعل من المستحيل على المنفذ القيام بعمله بشكل صحيح. ويمكن تعويض ذلك في تصميم مقاوم للاحتيال، ولكنه سيضيف المزيد من التعقيد. الميزة الثانية المتمثلة في قيام المنفذ فقط بنشر عملية العد هي أنه يجعل من السهل السماح بنشر تجاوزات المعاملة إلى Celestia، إذا رغبت في ذلك.
[4]: يمكن تمثيل حسابات SVM بتجزئة فريدة. الطريقة الوحيدة لتعديل هذا التجزئة هي من خلال المعاملة.
[5]: للقيام بذلك بدون كمية زائدة من التجزئة، سنقوم بإجراء تتبع على كل برنامج تم تنفيذه لمعرفة الأجزاء التي تم الوصول إليها بالفعل من كل نظام مستخدم. هذا ممكن، لكنه سيتطلب تعديل مترجم BPF الخاص بـ Solana.
[6]: يتضمن ذلك بيانات المعاملات التي فشل تنفيذها.
Partager
*أرسل العنوان الأصلي :استكشاف جسر Ethereum الكنسي ونظام إثباته
يتكون الكسوف من ثلاث طبقات:
يوضح الرسم البياني أدناه كيفية تفاعل هذه الوحدات:
ستركز بقية هذه المقالة على جسر Eclipse's Ethereum، كما هو موضح في الرسم البياني. سوف تقوم Blobstream بترحيل الشهادات الموقعة من قبل أداة التحقق من صحة Celestia التي تم تعيينها لتأكيد Ethereum بأن البيانات الخاصة بمجموعة فتحات Eclipse قد تم نشرها بشكل صحيح. يسمح هذا لجسر Eclipse بالتحقق من البيانات المقدمة لإثباتات الاحتيال ضد جذور البيانات الموقعة من Celestia. وفي بقية هذا القسم، سنوضح العمليات التي يتم من خلالها:
يتم تلخيص التدفق عندما يقوم المستخدم بالإيداع في Eclipse عبر جسر Ethereum الأصلي على النحو التالي:
يوضح الرسم البياني أدناه التفاعلات بين Ethereum وCelestia ومنفذ SVM أثناء تدفق الإيداع الموصوف أعلاه:
يتم تلخيص تدفق نشر دفعات من فتحات Eclipse إلى Celestia كنقاط بيانات أدناه:
يشرح الرسم البياني أدناه من Celestia كيفية تخزين التزام البيانات داخل كتلة Celestia معينة في رأس الكتلة:
على غرار لغات L2 الأخرى التي تستخدم أدلة الاحتيال (Arbitrum، وFuel، وغيرها الكثير)، تتطلب عمليات السحب من Eclipse فترة تحدي يمكن خلالها للمحققين تقديم أدلة الاحتيال في حالة انتقال حالة غير صالحة:
في هذا القسم الأخير، سنتناول بالتفصيل تصميم نظام مكافحة الاحتيال من Eclipse، المستوحى من أناتولي ياكوفينكو وجون أدلر. بشكل عام، لأي دليل على الاحتيال، يجب على المدقق:
في حالة Eclipse، (1) تقوم Celestia بدمج النقط من مجموعات الكتل التي ينشرها منفذ SVM الخاص بـ Eclipse، مما يسمح بإثباتات إدراج المعاملة عبر شهود Merkle. بالنسبة إلى (2)، على عكس L2s المستندة إلى EVM، والتي تنشر جذر Merkle لشجرة الحالة العالمية، لأسباب تتعلق بالأداء، لا يقوم Eclipse بتحديث شجرة حالة عالمية على أساس كل معاملة على حدة، ولكننا سنشرح كيف نضمن صحة المدخلات بمزيد من التفاصيل أدناه. أخيرًا، في الحالة (3)، يقوم برنامج التحقق الخاص بـ Eclipse بإنشاء دليل zk للمخرجات (المخرجات) لمعاملة معينة، على عكس نهج لعبة التحقق التفاعلية الشائع عبر L2s المستندة إلى EVM.
يمكن تمثيل جميع معاملات Eclipse على أنها تأخذ قائمة بحسابات الإدخال، وتنفذ معاملة، وتنتج قائمة بحسابات المخرجات الناتجة:
الملاحظة الحاسمة لتصميمنا المضاد للاحتيال هي أنه بالنسبة لتنفيذ المعاملة، يجب دائمًا أن يكون أي S_InputAccount هو S_OutputAccount لبعض المعاملات السابقة. يتيح لنا ذلك الإشارة إلى المعاملة الأخيرة في السلسلة التي أنتجت حساب إدخال معين بدلاً من تقديم شاهد Merkle إلى شجرة الحالة العالمية. نتيجة لتصميمنا، نقدم أنواعًا إضافية من اتهامات الاحتيال، مثل الإشارة إلى عدم صحة المعاملة السابقة أو أن حساب الإدخال "تم إنفاقه" بالفعل من خلال بعض المعاملات اللاحقة. نحن نصف هذه العملية بمزيد من التفصيل أدناه:
بالإضافة إلى ذلك، فإن دفعات بيانات المعاملات المرسلة إلى Celestia قد تم ترحيل التزاماتها إلى عقد Ethereum. وتتكون الالتزامات من:
كما هو موضح أعلاه، هناك عدة طرق يمكن من خلالها اكتشاف أن الدُفعة غير صحيحة:
إذا تبين أن أي دفعة التزام غير صحيحة، فسيقوم عقد Eclipse Bridge بإعادة الجسر إلى آخر التزام دفعة صحيح يمكن إثباته. لاحظ أن المعاملات لا تتم إزالتها أبدًا من السلسلة، حتى في حالة الاحتيال، لذلك يجب إعادة حساب الالتزام فقط.
تهدف هذه المقالة إلى تقديم دليل رفيع المستوى لجسر Eclipse المخفض للثقة على Ethereum وشرح بعض التفاصيل حول تصميمنا المضاد للاحتيال. نظرًا للطبيعة النمطية لـ L2 الخاص بنا ونشأة مجموعتنا التكنولوجية، سنستمر في إصدار المقالات والوثائق حول الجوانب المختلفة لـ Eclipse في الأسابيع المقبلة.
للمشاركة في Eclipse Testnet، يرجى اتباع تعليماتنا هنا. يمكنك الاتصال بنا على Twitter أو Discord لطرح استفسارات محددة حول Testnet أو الجسر أو الأسئلة الفنية.
[1]: العقدة التي تحسب نتائج معاملات SVM وتطبق الإخراج النهائي على حالة Eclipse الجديدة
[2]: عامل يقوم بتمرير الأحداث على السلسلة بين Ethereum وEclipse
[3]: لاحظ أن المنفذ، وليس المُسلسل، هو من ينشر هذا. إذا تم تضمينها في البيانات التي نشرها جهاز التسلسل، فسيضيف ذلك تعقيدًا يمكن أن يتخطاه جهاز التسلسل، مما يجعل من المستحيل على المنفذ القيام بعمله بشكل صحيح. ويمكن تعويض ذلك في تصميم مقاوم للاحتيال، ولكنه سيضيف المزيد من التعقيد. الميزة الثانية المتمثلة في قيام المنفذ فقط بنشر عملية العد هي أنه يجعل من السهل السماح بنشر تجاوزات المعاملة إلى Celestia، إذا رغبت في ذلك.
[4]: يمكن تمثيل حسابات SVM بتجزئة فريدة. الطريقة الوحيدة لتعديل هذا التجزئة هي من خلال المعاملة.
[5]: للقيام بذلك بدون كمية زائدة من التجزئة، سنقوم بإجراء تتبع على كل برنامج تم تنفيذه لمعرفة الأجزاء التي تم الوصول إليها بالفعل من كل نظام مستخدم. هذا ممكن، لكنه سيتطلب تعديل مترجم BPF الخاص بـ Solana.
[6]: يتضمن ذلك بيانات المعاملات التي فشل تنفيذها.