الانتقال إلى المحتوى

مخاطر وحدات التوقيع المتعدد: ما الصلاحيات التي تتجاوز العتبة؟

يمكن للوحدة المفعلة تنفيذ عمليات من حساب متعدد التوقيع من دون جمع عتبة المالكين المعتادة. تعرّف على تدقيق الوحدات وGuard وFallback Handler والترقيات ومسارات الاسترداد.

آخر تحديث

لأغراض تعليمية فقط؛ لا يشكل ذلك نصيحة استثمارية أو توصية استثمارية. قد تؤدي الاستثمارات إلى خسائر.

الإجابة المباشرة

الوحدة المفعلة هي مسار تفويض مستقل. في الحسابات الذكية المشابهة لـ Safe، تستطيع الوحدة المعتمدة استدعاء execTransactionFromModule وتنفيذ CALL أو DELEGATECALL من دون جمع توقيعات المالكين المعتادة بنظام M-of-N لذلك الإجراء. لذلك تصف العتبة المعروضة مسار تنفيذ واحدًا فقط، لا الحد الأمني الكامل للحساب.

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

آلية العمل

يفوض المالكون أولًا enableModule عبر معاملة Safe عادية. يخزن الحساب الوحدة في سجل الوحدات المفعلة. لاحقًا تتحقق الوحدة بنفسها من المتصل وقواعدها، ثم تستدعي execTransactionFromModule؛ ويتأكد الحساب من أن المتصل مفعل وينفذ العملية المطلوبة. عندئذ يعتمد الأمان أيضًا على شفرة الوحدة وإعداداتها ومسؤوليها ومفاتيح ترقيتها وتبعياتها الخارجية.

يختلف Guard المعاملات عن Module Guard. يفحص الأول استدعاءات execTransaction العادية، بينما يفحص الثاني الاستدعاءات التي تبدأها الوحدات. يستطيع Guard رفض التنفيذ، لكن تعطله أو تقييده المفرط قد يسبب أيضًا حجب الخدمة. تحقق من النوع المثبت، وما الذي يفحصه، وكيفية استرداده أو إزالته.

يعد Fallback Handler نقطة توسعة أخرى. عندما لا تطابق calldata أي دالة أساسية في الحساب، يمرر الحساب الاستدعاء إلى Handler المحدد ويلحق به عنوان المتصل الأصلي. يمكن للـ Handler إضافة التحقق من التوقيع واستدعاءات الرموز الراجعة، لكن المنطق أو الإعداد غير الآمن ينشئ سطحًا إضافيًا للصلاحيات والتفسير.

مثال

تستخدم خزينة عتبة مالكين 3-of-5 وتفعل وحدة مخصصات للمدفوعات المعتادة. الوحدة قابلة للترقية، ومسؤول ترقيتها محفظة ساخنة واحدة. إذا اختُرق ذلك المفتاح، فقد يرقي المهاجم الوحدة ويستخدم مسار تنفيذها وينقل أصول الخزينة من دون الحصول على 3 توقيعات. تظل عتبة 3-of-5 كما هي، لكنها لا تحكم هذا المسار.

ينبغي أن يحدد التدقيق عنوان الوحدة وتنفيذها الموثق، والوكيل والمسؤول، وحدود الإنفاق، والأهداف ومحددات الدوال المسموح بها، وما إذا كان DELEGATECALL مسموحًا، وModule Guard المثبت، وFallback Handler، والمعاملة الدقيقة اللازمة لتعطيل الوحدة. تحقق من هذه القيم في عقود الحساب والوكلاء ذات الصلة على كل سلسلة، ولا تعتمد على واجهة المحفظة وحدها.

المخاطر

  • مخاطر الصلاحية: قد تنقل الوحدة الضعيفة أو الخبيثة الأصول، أو توافق على المنفقين، أو تغير حالة الحساب عبر DELEGATECALL، أو تستدعي عقودًا أخرى ذات امتيازات. الواجهة محدودة الوظائف لا تثبت أن الصلاحية على السلسلة محدودة.
  • مخاطر التحكم والترقية: قد يقلص وكيل الوحدة أو المسؤول أو أوراكل أو منفذ الأتمتة أو مفتاح الاسترداد ترتيبًا ظاهريًا 3-of-5 إلى مجموعة تحكم فعلية أصغر. تتبع كل مسار ترقية وإعداد حتى الموقّعين النهائيين وفترات التأخير.
  • مخاطر التوافر: قد يحجب Guard معطل المعاملات الصحيحة، بينما قد تعمل الوحدة المخترقة أسرع من تنسيق المالكين لإزالتها. اختبر التعطيل والاسترداد، وراقب تغييرات الوحدة وGuard وHandler، واحتفظ بمسار استجابة لا يعتمد على المكون المراد إزالته.

مفاهيم خاطئة شائعة

  • الخطأ 1: «الحساب 3-of-5، لذا يحتاج كل تحويل إلى 3 توقيعات». تنطبق العتبة على المسار العادي الذي يفوضه المالكون؛ وقد تستخدم الوحدات المفعلة سياسة تفويض مختلفة.
  • الخطأ 2: «يحمي Guard واحد كل مسارات التنفيذ». يغطي Guard المعاملات العادية وModule Guard نقاط دخول مختلفة، وتعتمد التغطية على العقد المثبت وقواعده.
  • الخطأ 3: «تنتهي المخاطر عند إزالة الوحدة من الواجهة». تحقق في كل سلسلة من سجل الوحدات المفعلة، وتخزين Handler وGuard، وتنفيذ الوكيل، ومعاملات التغيير المنفذة.

مواضيع ذات صلة

المصادر

التنقل

ابحث في الويكي...