العقود الذكية: كيف تعمل وأين تفشل قبل أن تضع أموالك

مدة القراءة
20 دقيقة للقراءة
جدول المحتويات

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

العقد الذكي يُنفَّذ تلقائيًا عند تحقق الشروط بلا وسيط

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

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

كيف يعمل

العقد شيفرة منشورة على عنوان في الشبكة، لها حالة مخزّنة ودوال يمكن استدعاؤها. حين ترسل معاملة تستدعي دالة، تنفّذها كل عقدة في الشبكة وتصل إلى النتيجة نفسها، ثم تُسجَّل الحالة الجديدة.

الشرطان اللذان يجعلان هذا ممكنًا: التنفيذ حتمي، أي أن المدخلات نفسها تعطي النتيجة نفسها دائمًا؛ وكل خطوة لها كلفة محسوبة تدفعها مع المعاملة، وهو ما يمنع البرامج اللانهائية من تعطيل الشبكة.

هذا يفسّر قيدًا يستغرب منه القادمون من البرمجة التقليدية: العقد لا يستطيع طلب بيانات من خارج الشبكة بنفسه. أي معلومة خارجية (سعر، نتيجة، توقيت) يجب أن يدخلها طرف ثالث، وهذا الطرف يصبح نقطة ثقة داخل نظام صُمّم ليقلّل الثقة.

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

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

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

القراءة ليست كالكتابة

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

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

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

مثال رقمي على التنفيذ والرسوم

لنفترض عقد ضمان يجمع 12 دفعة، قيمة كل منها 250 وحدة رقمية، ولا يحول المال إلى البائع إلا إذا بلغ المجموع 2750 قبل الموعد. وصلت الدفعات كلها، فأصبح الرصيد 3000. حين يستدعي المشتري الدالة النهائية، يفحص العقد الموعد والمبلغ وحالة التسليم ثم يغير الحالة ويرسل المال وفق التعليمات.

إجمالي الدفعات = 12 × 250 = 3000 وحدة
الحد المطلوب = 2750 وحدة
الفائض فوق الحد = 3000 - 2750 = 250 وحدة

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

لنفترض أيضًا أن المعاملة استهلكت 42000 وحدة غاز، وكان سعر الغاز 20 غوي، وسعر العملة الأصلية للشبكة 2500 دولار. تصبح الكلفة التقريبية:

الرسوم بالعملة الأصلية = 42000 × 20 ÷ 1000000000
الرسوم = 0.00084 من العملة الأصلية
القيمة الدولارية التقريبية = 0.00084 × 2500 = 2.10 دولار

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

لماذا يجب أن يصل الجميع إلى النتيجة نفسها؟

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

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

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

مصدر البيانات يعيد الثقة من باب آخر

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

لا يكفي سؤال من يقدم السعر. افحص كذلك:

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

العقد لا يستيقظ وحده

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

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

أين يفشل

منطق صحيح لسيناريو خاطئ. أشهر أنواع الخلل ليس خطأً برمجيًا بل افتراضًا لم يتحقق: عقد يفترض أن السعر الذي يقرؤه لا يمكن التلاعب به خلال المعاملة الواحدة، أو أن دالة لن تُستدعى مرة أخرى قبل أن تنتهي الأولى. الشيفرة تعمل كما كُتبت، والافتراض هو ما انكسر.

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

العقود المترابطة. عقد يعتمد على عقد آخر يرث افتراضاته. خلل في مكوّن بعيد قد ينتقل عبر السلسلة إلى عقد لا علاقة له بالمشكلة.

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

لا يقتصر الفشل على إعادة الدخول. تظهر المخاطر في طبقات متعددة:

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

القابلية للتركيب توسع المنفعة ونطاق العطل

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

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

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

الشيفرة الثابتة ليست الوصف الكامل دائمًا

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

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

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

الصلاحيات التي تستحق القراءة

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

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

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

الشيفرة المنشورة لا تساوي الشيفرة المقروءة

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

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

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

ما الذي يعنيه «مدقَّق»

التدقيق مراجعة بشرية للشيفرة خلال وقت محدود وبنطاق محدد. هو مفيد ويقلّل الاحتمالات، ولا يثبت خلو العقد من الخلل. وقعت حوادث كبرى في عقود مدقَّقة، لأن التدقيق يفحص الشيفرة ولا يستطيع فحص كل تفاعل ممكن مع بقية الشبكة.

اقرأ في تقرير التدقيق ثلاثة أشياء: تاريخه، ونطاقه (أي ملفات فُحصت)، وهل عُولجت الملاحظات المرتفعة. تقرير قديم على نسخة سابقة من الشيفرة لا يغطي ما نُشر اليوم.

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

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

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

سيناريو تداول يكشف حدود وقف الخسارة

لنفترض أن متداولًا يدرس رمزًا يتداول عند 2.84 دولار في مجمع لامركزي يعمل على مدار الساعة. قيمة حسابه 12500 دولار، وحدد مخاطرة سعرية قدرها 0.60%، ووضع مستوى إبطال عند 2.61 دولار.

المخاطرة المسموحة = 12500 × 0.006 = 75 دولارًا
المخاطرة في الرمز = 2.84 - 2.61 = 0.23 دولار
الكمية القصوى = 75 ÷ 0.23 = 326 رمزًا بعد التقريب إلى الأسفل
قيمة المركز = 326 × 2.84 = 925.84 دولارًا
الخسارة المخططة عند 2.61 = 326 × 0.23 = 74.98 دولارًا

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

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

لنفترض مجمعًا مبسطًا يحتوي 500000 دولار من الأصل المقابل و175000 رمز قبل الرسوم. السعر اللحظي التقريبي 2.857 دولار. إذا دخل مشتر بمبلغ 10000 دولار وفق نموذج حاصل الضرب الثابت ومن دون رسوم للتبسيط، تتغير الاحتياطيات:

حاصل الضرب = 500000 × 175000 = 87500000000
الاحتياطي الجديد للأصل المقابل = 500000 + 10000 = 510000
الاحتياطي الجديد للرمز = 87500000000 ÷ 510000 = 171568.63
الرموز المستلمة = 175000 - 171568.63 = 3431.37
متوسط سعر الشراء = 10000 ÷ 3431.37 = 2.914 دولار تقريبًا

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

حاسبة حجم المركز

القاعدة الأولى في إدارة المخاطر: حدّد كم تقبل أن تخسر، ودَع الحجم يُحسب منها.

حجم المركز (وحدات)
20,000
قيمة المركز
$22,000
مبلغ المخاطرة
$100
بلوت الفوركس القياسي
0.2

الموافقة ليست تحويلًا لكنها قد تسمح به لاحقًا

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

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

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

افصل بين 8 مخاطر قبل اتخاذ القرار

يساعد التقسيم على منع عبارة العقد مدقق من ابتلاع بقية الصورة.

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

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

فحص عملي قبل التفاعل

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

بعد ذلك اتبع ترتيبًا ثابتًا:

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

ما الذي يحدث بعد الفشل؟

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

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

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

الخطأ الشائع

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

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

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

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

العقود الذكية: كيف تعمل وأين تفشل في قرار واحد

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

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

أسئلة شائعة

هل يمكن تعديل عقد ذكي بعد نشره؟

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

ما الفرق بينه وبين العقد القانوني؟

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

هل العقد المفتوح المصدر آمن؟

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

هل التدقيق يضمن استرداد الأموال عند حدوث خلل؟

لا. التدقيق مراجعة أمنية وليس تأمينًا أو تعهدًا بالتعويض. يعتمد الاسترداد على مكان الأصول وصلاحيات العقد وقرار الحوكمة وأي ترتيبات قانونية أو مالية منفصلة.

هل ينفذ العقد الذكي نفسه تلقائيًا؟

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

ماذا يحدث إذا اختفت واجهة الموقع؟

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

هل تعمل كل العقود الذكية بالطريقة نفسها؟
ما أول معلومة أفحصها قبل شراء رمز جديد؟

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

تعلّم التداول بمنهج واضح، لا بالتخمين.

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