يعد أمان العقود الذكية أحد أهم الموضوعات في تقنية البلوكشين , ولكن أظهرت جميع أنظمة العقود الذكية الحالية بعض أنواع الثغرات ، سواء كانت مدعومة من قبل الإيثيريوم أو الآيوس , وتسببت هذه الثغرات في خسائر فادحة للمشاريع والمستخدمين ، وأثارت الشكوك حول أمان تقنية البلوكشين.
الفصل 1: مقدمة
لا تحدث الثغرات الأمنية في العقود الذكية بسبب البلوكشين ولكن معظمها مشاكل برمجية ناجمة عن مطوري العقود الذكية, على سبيل المثال بعض مطوري العقود الذكية في الإيثيريوم ليسوا على دراية جيدة في لغة Solidity التي تكتب بها العقود مما يزيد من مخاطر الثغرات, بالطبع تحدث بعض الثغرات الأمنية بسبب ميزات معينة لمنصات العقود الذكية نفسها. علاوةً على ذلك ، نظراً لأن البيانات الموجودة على البلوكشين مقاومة بطبيعتها للتلاعب، لا يمكن إغلاق هذه الثغرات عن طريق الترقيات أو التراجع عن البيانات. لذلك ، أصبح من المهم للغاية لمطوري العقود الذكية أن يكون لديهم فهم كامل لأنظمة العقود الذكية الموجودة على منصات البلوكشين.
تستخدم أنتولوجي حاليًا NeoVM لتشغيل عقودها الذكية, أي يمكن للمطورين استخدام اللغات البرمجية التي يجيدونها ، على سبيل المثال #C و Python لكتابة العقود الذكية دون الحاجة إلى تعلم لغة جديدة ، مما يجعل تطوير العقود الذكية أسهل بكثير, ومع ذلك وجدنا وجمعنا من ممارستنا بعض المشكلات الأمنية المحتملة عند تطوير العقود الذكية على أنتولوجي إذا استطعنا منع هذه المشكلات ، فيمكننا مساعدة المشاريع والمستخدمين في تجنب الخسائر.
الفصل 2: هجمات الاتصال عبر العقود
في هذه المقالة سنتحدث عن هجمات الاتصال عبر العقود ، وهو نوع من الثغرات المحتملة التي قد تحدث عند تطوير العقود الذكية على أنتولوجي , قد يحتاج المطورون إلى أرقام عشوائية عند كتابة العقود الذكية. عادة يمكنهم استخدام Ontology Oracle للوصول إلى مصادر بيانات خارجية موثوقة , بشكل مبسط يحتاج بعض المطورين إلى الحصول على البلوك هاش الحالية كرقم عشوائي. في هذه المقالة ، سنقوم بشكل أساسي بتحليل مشكلات الأمان المحتملة لتطوير العقود الذكية والحلول عند استخدام البلوك هاش الحالي كرقم عشوائي.
2.1 العقود مع الثغرات:
يوجد أدناه نموذج كود بسيط يستخدم البلوك هاش الحالي كرقم عشوائي ، سنسمي هذا العقد “A”:
يمكننا أن نرى أن العقد A يستخدم ()getRandomNumber للحصول على البلوك هاش الحالي كمصدر للرقم العشوائي وإجراء بعض التعديلات. يمكن للمستخدمين الحصول على حوافز إذا كانت أرقامهم التخمينية تتطابق مع الأرقام التي تم إنشاؤها بواسطة العقد.
2.2 هجمات الثغرات
للوهلة الأولى ، يبدو أن العقد “A” يعمل بشكل جيد نظراً لأن الهاش الحالية لا يمكن التنبؤ بها من قبل أي شخص باستثناء العقدة التي تنشئ الكتلة , ومع ذلك يمكن للمهاجمين كتابة عقد ذكي آخر لاستدعاء ومهاجمة العقد A. يوضح الكود التالي كيف يهاجم العقد B العقد A:
كما هو واضح ، يكتب المهاجمون عقداً ذكياً آخر لاستدعاء العقد A , باستخدام نفس خوارزمية توليد الأرقام العشوائية مثل العقد A ، يتم تنفيذ العقد B في نفس كتلة العقد A. وبذلك يكون العقد B قادراً على الحصول على الرقم العشوائي الذي تم إنشاؤه بواسطة العقد A ثم يستمر في الفوز عن طريق توليد الرقم العشوائي نفسه.
الفصل 3: منع هجمات الاتصال عبر العقود
كيف يمنع مطورو العقود الذكية مثل هذه الهجمات؟ يمكننا أن نرى أنه يمكن منع الهجوم عن طريق منع العقد B من استدعاء العقد A. يمكن لمطوري العقود الذكية في أنتولوجي استخدام GetCallingScriptHash () و GetEntryScriptHash () لحل هذه المشكلة. فيما يلي العقد C ، الذي تم تعديله بناءً على العقد A ويمكنه منع مثل هذه الهجمات.
يمكن لـ GetCallingScriptHash () الحصول على هاش العقد المستخدم في استدعاء العقد الذكي الحالي ، ويمكن لـ GetEallingScriptHash () الحصول على هاش العقد لإدخال عقد الاستدعاء. عندما لا يكون هاش العقد المستخدم للاتصال بالعقد الحالي هو نفس هاش العقد المتصل ، يُعتبر المتصل بالعقد الذكي الحالي عقداً ذكياً آخر ، بدلاً من المستخدم الذي يستخدم عنوان المحفظة للاتصال بالعقد. بهذه الطريقة ، يمكننا منع هجمات الاتصال عبر العقود.
الفصل 4: الخاتمة
هذه المقالة أدرجت نوعاً واحداً من الهجمات المحتملة التي قد يواجهها مطورو عقود انتولوجي الذكية هذا النوع من الهجوم يصعب اكتشافه. قد لا يتمكن المطورون الذين ليس لديهم فهم جيد للعقود الذكية من التنبؤ بهذه الهجمات ومنعها. السبب الرئيسي هو أن المطورين يستخدمون طريقة مبسطة لاختيار أرقام عشوائية. في مقالاتنا حول التكنولوجيا المستقبلية ، سنتحدث عن المزيد من أنواع هجمات الثغرات لمساعدة مطوري عقود انتولوجي في تجنب الثغرات المحتملة.
يمكن لمطوري العقود الذكية في أنتولوجي أيضاً استخدام VaaS-ONT ، وهي عبارة عن منصة تحقق رسمية تلقائية للعقد الذكي مدمجة في SmartX ، لتحديد مكان الكود المحفوف بالمخاطر ومعرفة السبب في نقرة واحدة ، والتي يمكنها التحقق من ثغرات الأمان الشائعة وخصائص الأمان ، وصحة وظيفة العقود الذكية أو تطبيقات البلوكشين، وبالتالي تحسين الأمان.
هل أنت مطور؟ تأكد من انضمامك إلى مجتمعنا التقني على ديسكورد . أيضًا يمكنك ألقاء نظرة على مركز المطورين على موقعنا على الإنترنت ، حيث يمكنك العثور على أدوات المطورين والوثائق والمزيد.
اقرأ الجزء الثاني من هنا
اقرأ الجزء الثالث من هنا
اقرأ الجزء الرابع من هنا
رابط تعريفي شامل من الغروب العربي على التلغرام التابع لعملة أنتولوجي
مرتبط:
المنصات والمحافظ لـ ONT & ONG