يعد أمان العقود الذكية أحد أهم الموضوعات في تقنية البلوكشين , ولكن أظهرت جميع أنظمة العقود الذكية الحالية بعض أنواع الثغرات ، سواء كانت مدعومة من قبل الإيثيريوم أو الآيوس , وتسببت هذه الثغرات في خسائر فادحة للمشاريع والمستخدمين ، وأثارت الشكوك حول أمان تقنية البلوكشين.
الفصل 1: مقدمة
في المقال الأول ، تحدثنا عن هجمات الاتصال عبر العقود، وهو نوع من الثغرات المحتملة التي قد تحدث عند تطوير العقود الذكية على أنتولوجي. الآن أنت تعرف كيفية منع مثل هذا الهجوم ، سنستمر في تقديم نوع آخر من التهديدات الأمنية وحلها.
ولكن قبل ذلك ، سوف نقدم بإيجاز كيف يتم تنفيذ المعاملات وكيف يتم فرض الرسوم بعدأن قامت العقدة التي توّلد الكتل بتجميع المعاملات في كتل على بلوكشين انتولوجي. يمكن تقسيم العملية إلى أربع خطوات:
- يتم تأكيد الكتل عن طريق التحقق من توافق الآراء .
- يتم تنفيذ المعاملات في الكتل محليا .
- يتم فرض رسوم على كل معاملة ، وعدم كفاية الرسوم يؤدي إلى فشل المعاملة .
- بعد تنفيذ المعاملات بنجاح ، سيتم تخزين حالة المعاملة في السجل (دفتر الاستاذ) , إذا فشلت المعاملة ، فلن يتم تخزين حالة المعاملة.
كما يتضح ، يحدث تنفيذ المعاملة قبل فرض رسوم المعاملات في الكتلة. نحن نعلم أيضا أن رسوم المعاملات في انتولوجي يتم دفعها بـ ONG ، وأن كل معاملة تفرض رسوما تبلغ 0.01 ONG. عملية تنفيذ المعاملة وطريقة فرض رسوم المعاملة تعمل بشكل جيد باتباع منطق التنفيذ العادي. ومع ذلك ، في حالات خاصة ، قد يؤدي عدم الانتباه عند كتابة العقود الذكية إلى نوع جديد من تهديد الأمان: الهجوم الذي يفرض فشل عمليات التحويل.
الفصل 2: الهجوم الذي يفرض فشل عمليات التحويل
يتبنى بلوكشين أنتولوجي نظام ثنائي الرموز من ONT و ONG ، ويدعم كلاً من التوكن المميزة المتجانسة وغير المتجانسة ، بما في ذلك التوكن المميزة OEP-4 و OEP-5 و OEP-8. عادة ستستخدم dApps نوعا واحدا من التوكن المميز ، على سبيل المثال ، ONG. يمكننا أن نرى أن ONG استخدم في ال dApps و لدفع الرسوم.
يحتاج المطورون إلى إيلاء اهتمام خاص لهذه المشكلة ، لأنها قد تسبب هجوما بفرض فشل المعاملات.
مثال: دعنا نقول أن هناك لعبة تخمين بسيطة حيث يستخدم المستخدمون ONG لتخمين الأرقام وإرسال معاملات تخمين الرقم. سيحصل المستخدمون الذين يخمنون الرقم الصحيح على مبلغ معين من ONG كمكافآت ، وإلا ، فإن المستخدم سيفقد ONG الذي يستخده لتخمين الرقم. لكل عملية تخمين ، يحتاج المستخدمون إلى دفع بعض رسوم ONG كرسوم للمعاملات. يوجد أدناه نموذج كود بسيط لعقد ذكي:
الكود البسيط يستخدم التعليمة البرمجية _rollANumber للحصول على رقم عشوائي. إذا كان الرقم الذي تم تخمينه من المستخدم مطابقًا للرقم العشوائي ، فستتضاعف المكافآت التي يتلقاها المستخدم ثلاث مرات.
وفقا لمنطق تنفيذ المعاملة الخاص ببلوكشين أنتولوجي، سيتم تنفيذ معاملة المستخدم قبل تحصيل رسوم المعاملة ، وما إذا كانت حالة المعاملة سيتم تخزينها ستعتمد على نتيجة تنفيذ المعاملة. في المثال أعلاه ، يستخدم المستخدم الضار كل ONG في حسابه لتخمين الرقم ، إذا كان تخمينه صحيح ، فسيحصل على مكافآت ويدفع رسوم المعاملة. ولكن إذا كان المستخدم قد خمن بشكل غير صحيح ، حيث استخدم كل ONG لديه لتخمين الرقم ، فلن يكون لدى المستخدم أي ONG لدفع رسوم المعاملات وبالتالي ستفشل المعاملة. نتيجة لذلك ، لن يفقد المستخدم ONG. من الواضح أن المستخدم الضار سيفوز في كل وقت.
الفصل 3: منع الهجوم الذي يفرض فشل عمليات التحويل
كيف يمنع مطورو العقود الذكية مثل هذه الهجمات؟ أحد الخيارات القابلة للتطبيق هو التحقق مما إذا كان المستخدم الذي يستدعي العقد لديه ما يكفي من ONG كرسوم للمعاملات في البداية. في نموذج التعليمات البرمجية أعلاه ، يمكن لمطوري العقود الذكية حل هذه المشكلة عن طريق إضافة بعض القيود في العقد ، أي أنه لا يُسمح للمستخدمين باستخدام كل ONG في حساباتهم ويجب أن يكون هناك مايكفي من ONG لدفع رسوم المعاملات.
نموذج التعليمات البرمجية كالتالي:
يمكننا أن نرى أن مطور العقود الذكية هنا يضيف _avoidForceTxFailureAttack للتحقق مما إذا كان لدى المستخدم ما يكفي من ONG لدفع رسوم التخمين والمعاملات.
في العقد ، تكون هذه الطريقة في بداية منطق التنفيذ ، مما يعني أنه إذا لم يكن لدى المستخدم ما يكفي من ONG في حسابه لدفع رسوم المعاملات ، فسوف تفشل المعاملة تلقائيًا. من خلال القيام بذلك ، يمكن لمطوري العقود الذكية منع المستخدمين الضارين من الاستفادة من الثغرة لمهاجمة العقد.
الفصل 4: الكلمة الأخيرة
قدمت هذه المقالة النوع الثاني من الهجوم المحتمل الذي قد يواجهه مطورو عقود انتولوجي الذكية و منحتهم الحل. في مقالاتنا حول التكنولوجيا المستقبلية ، سنتحدث عن المزيد من أنواع هجمات الثغرات لمساعدة مطوري عقود انتولوجي في تجنب الثغرات المحتملة.
يمكن لمطوري العقود الذكية في أنتولوجي أيضاً استخدام VaaS-ONT ، وهي عبارة عن منصة تحقق رسمية تلقائية للعقد الذكي مدمجة في SmartX ، لتحديد مكان الكود المحفوف بالمخاطر ومعرفة السبب في نقرة واحدة ، والتي يمكنها التحقق من ثغرات الأمان الشائعة وخصائص الأمان ، وصحة وظيفة العقود الذكية أو تطبيقات البلوكشين، وبالتالي تحسين الأمان.
هل أنت مطور؟ تأكد من انضمامك إلى مجتمعنا التقني على ديسكورد . أيضًا يمكنك ألقاء نظرة على مركز المطورين على موقعنا على الإنترنت ، حيث يمكنك العثور على أدوات المطورين والوثائق والمزيد.
اقرأ الجزء الأول من هنا
اقرأ الجزء الثالث من هنا
اقرأ الجزء الرابع من هنا
رابط تعريفي شامل من الغروب العربي على التلغرام التابع لعملة أنتولوجي
مرتبط:
المنصات والمحافظ لـ ONT & ONG