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

الأقفال الزمنية: تأخير المعاملات وإجراءات الحوكمة

يفرض القفل الزمني انتظار المعاملة أو إجراء العقد حتى بلوغ كتلة أو طابع زمني أو مدة محددة. تعرّف إلى جهة فرض التأخير والمسارات التي قد تتجاوزه.

آخر تحديث

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

إجابة مباشرة

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

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

تأتي القيمة الأمنية من التأخير القابل للإنفاذ. ففي الحوكمة، يمنح التأخير المراقبين والمستخدمين وقتًا لفحص الحمولة المنتظرة، وإصدار التنبيه، والإلغاء أو الإيقاف عبر مسار مصرح به، أو الخروج عند وجود مسار خروج فعلي. وتزول الفائدة إذا وجد أي مسار ذي صلاحيات يستطيع تغيير النظام نفسه من دون المرور بالقفل.

آلية العمل

  1. تحدد الآلية ساعة القياس. قد يكون الحد ارتفاع الكتلة أو طابعًا زمنيًا مشتقًا من السلسلة أو وقتًا مقاسًا منذ حدث سابق على السلسلة. هذه قيم بروتوكول وليست وعدًا بوقت مدني دقيق.
  2. يرتبط الإجراء المقفل بشرط. يحدد القفل المطلق ارتفاعًا أو وقتًا مستقبليًا. ويقيس القفل النسبي مدة من حدث مثل تأكيد المخرج المراد إنفاقه. ويسجل متحكم الحوكمة عملية مجدولة ووقت جاهزيتها.
  3. تفرض الطبقة المعنية الانتظار. يمكن لقواعد الإجماع رفض معاملة مبكرة أو إنفاق نص برمجي قبل أوانه. ويمكن للعقد الذكي رفض استدعاء دالة مبكر. أما العد التنازلي في موقع إلكتروني وحده فليس قفلًا زمنيًا لأن الواجهة قابلة للتجاوز.
  4. يغيّر النضج الأهلية لا النية. بعد تحقق الشرط قد يصبح الإجراء صالحًا أو جاهزًا، لكنه لا يُبث أو يُنفذ تلقائيًا بالضرورة. ما زال على طرف ما إرساله، وتظل جميع اختبارات التفويض والصلاحية الأخرى مطبقة.
  5. تعتمد التغطية على السلطة. في الحوكمة، يجب أن يملك القفل العقد المستهدف أو الأدوار اللازمة فيه، ويجب أيضًا تأخير كل مسار مميز مكافئ. وتحدد صلاحيات المقترح والملغي والمنفذ والمسؤول من يستطيع الجدولة أو الإيقاف أو التنفيذ أو إعادة الضبط.

يوضح Bitcoin الفرق على مستوى المعاملة. تحدد BIP 65 التعليمة CHECKLOCKTIMEVERIFY التي قد تبقي مخرجًا غير قابل للإنفاق حتى يتحقق شرط مطلق لارتفاع الكتلة أو الوقت. وتعطي BIP 68 لأرقام تسلسل المدخلات المؤهلة معنى قفل نسبيًا تفرضه قواعد الإجماع، ويقاس من عمر المخرج الجاري إنفاقه. هذه القواعد ليست قائمة انتظار عقد حوكمة.

يوضح TimelockController من OpenZeppelin تأخير الحوكمة. يجدول المقترح عملية محددة بتأخير لا يقل عن الحد الأدنى. وبعد انتهاء المؤقت تنتقل من الانتظار إلى الجاهزية، ثم يجب على منفذ تنفيذها. يخضع الإلغاء وإدارة الأدوار لقواعد العقد، كما يجب أن يمر تغيير الحد الأدنى للتأخير عبر القفل نفسه.

أمثلة

ترقية بروتوكول في قائمة الانتظار

توافق منظمة DAO على ترقية، فيجدول الحاكم داخل القفل العنوان المستهدف والقيمة وبيانات الاستدعاء والاعتماد والملح بدقة. وخلال التأخير، تستطيع أدوات المراقبة مقارنة الحمولة بالمقترح ومحاكاة آثارها. وعندما تصبح العملية جاهزة، يرسلها منفذ مصرح له.

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

مسار معاملة مؤجل

يمكن لنص برمجي إتاحة مسار إنفاق قبل موعد نهائي ومسار استرداد بعده. وتفرض السلسلة الشرط عند التحقق من الإنفاق. لا يؤدي بلوغ الحد إلى نقل الأموال تلقائيًا؛ فعلى الطرف المؤهل إنشاء معاملة صالحة وبثها، ويظل التأكيد معتمدًا على الرسوم والإدراج في كتلة.

المخاطر وقائمة المراجعة

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

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

هل يُنفذ القفل تلقائيًا عند انتهاء الوقت؟

لا يحدث ذلك عادة. فالنضج يجعل الإجراء مؤهلًا فحسب. وما زال يلزم بث المعاملة أو استدعاء المنفذ لعقد الحوكمة.

هل يجعل القفل الحوكمة آمنة؟

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

هل تعتمد كل الأقفال على الوقت المدني؟

لا. يستخدم بعضها ارتفاع الكتلة، وبعضها طوابع السلسلة الزمنية، وبعضها عمرًا نسبيًا. فترات الكتل المتوقعة والطوابع الزمنية ليست جداول دقيقة.

هل يمكن تبادل أقفال المعاملات وأقفال الحوكمة؟

لا. يشترك النوعان في تأخير الأهلية، لكن قواعد معاملات الإجماع وشروط النصوص البرمجية وقوائم انتظار الحوكمة تحمي إجراءات مختلفة ويجب مراجعتها وفق مواصفاتها الخاصة.

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

المصادر

التنقل

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