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

 

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

 

تساعد هذه الخدمة المميكنة على اكتشاف الثغرات آلياً وتصنيفها كدرجات تبعاً لخطورتها بالرمز اليها بحرف (A أو B أو C) لتوفير الأمان للتطبيقات اللامركزية (dApps).

 

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

 

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

 

ونشر متصفح دك دك غو تدوينة تقول: “رؤيتنا هي إعلاء مفهوم الثقة على الإنترنت”.

 

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

 

التقييمات

 

ويبقى السؤال: كيف تقيم أمبرداتا تطبيقات الإيثريوم؟

 

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

 

وكلما زادت الثغرات التي يكشفها فحص الأمان لأمبرداتا كلما قلت قيمة الحرف التي ستصنف به في التطبيق وستمتد هذه القيم من A+ الى F.

 

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


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

 

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

 

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

 

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

 

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

 

يقول موريس:” الثغرات التي وردت لم تكن تتيح سبلاً لمهاجمتنا.. فنحن ندركها جيداً ونتعامل معها بجدية حين ترد إلينا تلك الثغرات من المستخدمين”.

 

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

كيف تحصل على A+

 

الأخطاء عالية الخطورة ستضر بتقييم التطبيق من حيث الأمان لأنها تجعله أكثر عرضة لأخطاء الكود والاستغلال.

 

وتعد ثغرة الفيض (Integer overflow) واحدة من أكثر هذه الثغرات شيوعاً، إذ أن التعاملات الجارية خلال العقد الذكي قد تولد قيماً تتجاوز حدود الكود، وتؤدي إلى سلوك غريب وغير متوقع وفي اسوأ الأحوال قد تتسبب في خسارة الأموال.

 

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

 

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

 

ويتميز تطبيق الإيثريوم الشهير بالغ الشهرة، كريبتو كيتيز Cryptokitties بأنه لا يحتوي على أيٍ من هذه الثغرات الاربع مما يجعل تقييمه A+ على أداة أمبرداتا، وقد أعزى مبرمجه فابيانو سورياني هذا في حواره مع موقع كوين ديسك إلى “إجراء العديد من الاختبارات عليه”.

 

وأن “المصادر الخاملة” كالمقاطع التعليمية والدروس المكتوبة لشرح برمجة تلك التطبيقات ليست كافية لتأمين تطبيق الإيثريوم.

 

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

انها مجموعة جديدة من المشاكل

 

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

 

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

 

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

 

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

 

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

 

يقول إسبانيول لكوين ديسك: “إنها مجموعة من المشاكل التي طرأت مؤخراً والتي لم يصل لها وعي الناس فيما يتعلق بمدى قوة الكود المستخدم في البرمجة”.

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