العملات الرقمية

البلوكشين تحت الاختبار

ما هو نظام البلوكشين

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

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

  • ما هو نظام البلوكشين
  • سمات البلوكشين
  • أنواع البلوكشين
  • المكونات الأساسية لنظام البلوكشين
  • كيف تعمل منظومة البلوكشين
  • ميزات البلوكشين
  • أبرز التحديات التي تواجه أنظمة البلوكشين
  • مراحل اختبار شبكة البلوكشين
  • الاختبارات الرئيسية التي يتم إجرائها على شبكة البلوكشين
  • أشهر الأدوات المستخدمة في إجراء الاختبارات على نظام البلوكشين

سمات البلوكشين

كل ميزة من ميزات البلوكشين يمكن الاستفادة منها في تطوير الأنشطة الحياتية مثل :

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

أنواع البلوكشين

تنقسم شبكات البلوكشين إلى ثلاثة أنواع رئيسية هي :

الشبكات المجتمعة Consortium

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

الشبكات العامة Public

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

الشبكات الخاصة Private

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


هذا الجدول يعقد مقارنة شاملة بين الأنواع الثلاثة الأشهر لشبكات البلوكشين :

  من يستطيع الاشتراك بالشبكة
العامة أي شخص
الخاصة الأفراد المنتمين لشركة واحدة
المجتمعة مجموعة شركات
  القيود وهوية المشتركين
العامة # لا توجد قيود # ليست تابعة لكيان محدد
الخاصة # لا يحق لأحد خارج الشركة المشاركة في الشبكة # تابعة لكيان معروف
المجتمعة # لا يحق سوى للشركات بالاشتراك في الشبكة وفق اتفاق مسبق # تابعة لكيانات معروفة
  الأمان
العامة # تستخدم تقنية إجماع العقد لتأمين محتوياتها # تستخدم كذلك إجراءات مثل Proof Of Work
الخاصة # مسبقة التأمين بفضل تقييد عملية الاشتراك # تستخدم آلية إجماع العقد أيضا
المجتمعة # مسبقة التأمين بفضل تقييد عملية الاشتراك # تستخدم آلية إجماع العقد أيضا
  سرعة التداول
العامة بطيئة
الخاصة سريعة
المجتمعة سريعة

المكونات الأساسية لنظام البلوكشين


يتكون أي نظام بلوكشين من أربعة ركائز أساسية هي :

تطبيق خاص بالعقدة Node Application

يجب أن يكون هناك تطبيقا موحدا مثبتا على كل عقدة مشتركة في الشبكة ؛ حتى تتمكن من التعامل مع شبكة البلوكشين .

البيانات الموحدة Shared Ledger

كل عقدة تقوم بتثبيت التطبيق ؛ تتمكن تلقائيا من فتح البيانات ( الكتل ) الموجودة على الشبكة وكل العقد تمتلك نسخة كاملة من البيانات الموجودة على الشبكة .

خوارزمية الإجماع Consensus Algorithm

خوارزمية تمكن كل العقد المتواجدة على الشبكة من إجراء عملية المصادقة عند إضافة كتلة جديدة أو تعديل الكتل الموجودة .

منظومة افتراضية Virtual Machine

لكي تتم لإدارة شبكة معقدة كهذه ؛ لابد من وجود منظومة إدارة متكاملة تتمتع بذكاء اصطناعي عالي يستطيع ربط العقد ببعضها ويكون مرتبطا بالتطبيق المثبت على العقد .

كيف تعمل منظومة البلوكشين

الشكل التالي يوضح آلية عمل منظومة البلوكشين ككل في ضوء ما تقدم من ذكر مكونات نظام البلوكشين

ميزات البلوكشين

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

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

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

أبرز التحديات التي تواجه أنظمة البلوكشين

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

عدم وجود أدوات لاختبار كفاءة تطبيقات البلوكشين Lack of Blockchain Testing Tools : بما أن نظام البلوكشين ليس معتمدا بكثرة لدى الكثير من الجهات ؛ فإن أغلب أدواته وتطبيقاته لا سيما التطبيقات الخاصة بالعقد ؛ تفتقر إلى الأدوات التي يمكن استخدامها للتحقق من كفاءة تلك التطبيقات ، ولا يوجد جهات كذلك قامت بفحص تلك التطبيقات ونشر تقارير عن كفاءة تلك التطبيقات .

عدم وجود استراتيجية واضحة لاختبار كفاءة النظام Defining Test Strategy : هذه نتيجة طبيعية جدا لافتقار مستخدمي البلوكشين للأدوات والتقارير التي تمكنهم من تحديد استراتيجية واضحة لفحص كفاءة نظام البلوكشين وإدارة التعاملات داخل النظام .

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

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

الأداء والأحمال Performance and Load : الفحص الدقيق لهذين المتغيرين يعطي في النهاية شيئا أشبه بمؤشر الأداء الذي يمكن الرجوع إليه في حالة حدوث مشكلة للشبكة .

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

مراحل اختبار شبكة البلوكشين

تمر عملية اختبار كفاءة شبكة البلوكشين بأربعة مراحل رئيسية هي : 

مرحلة البدء Initiation   

يتم إجراء هذه المرحلة على خطوتين هما :

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

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

مرحلة التصميم Design

تتكون هذه المرحلة من أربعة خطوات رئيسية هي :

إنشاء حالة الاختبار : يقوم فريق ضمان الجودة بكتابة تقرير مفصل بخصوص مراحل وأدوات وطرق إجراء الاختبارات بكل دقة ورفعها لخبير تحليل الأعمال Business Analyst(BA) ؛ من أجل اعتماد الخطة بشكل نهائي .

إنشاء بيانات الاختبار : بيانات الاختبار هذه هي المعايير والمقاييس وكل المعلومات التي يحتاجها الفريق لإجراء الاختبار ؛ وقد تتم عملية إنشاء البيانات بشكل يدوي أو آلي .

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

مؤشرات الأداء : أية اختبارات تحتاج إلى وجود مؤشرات للأداء والتي تمثل المرجعية المستخدمة لتحديد نجاح أو فشل المنظومة ككل .

مرحلة الاختبار

يتم إجراء اختبارات لكل مكونات النظام وعلى كافة المستويات على النحو التالي :

اختبار واجهة برمجة التطبيقات API : يتم اختبار التطبيقات أولا للتأكد من ملاءمتها لبيئة العمل التي تم تصميمها مسبقا .

اختبار الكتل Block : يجب اختبار كل كتلة على حدة ؛ لضمان عدم حدوث مشاكل في النظام مستقبلا ؛ لأن الكتلة هي المكون الرئيس لنظام البلوكشين بكامله .

الاختبار الوظيفي Functional Testing : يتم إجراء الاختبار أيضا على جميع التعاملات التي تجري على الشبكة مثل إجراء الاختبارات على العقود الذكية .

اختبار الأداء Performance : يشمل اختبار نقل البيانات عبر الشبكة وسرعة إجراء المعاملات المختلفة وسهولة إضافة الكتل الجديدة ومدى دقة عمليات المصادقة والتحقق وفقا لحجم الشبكة .

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

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

اختبار العقود الذكية Smart Contract : تعتمد فكرة هذا الاختبار على فحص آلية عمل العقود الذكية ومدى ملاءمتها للشبكة ومقدار توافقها مع مكونات الشبكة خصوصا العقد .

التقرير النهائي

بعد الانتهاء من تنفيذ المشروع ؛ يجب رفع تقرير نهائي بخصوص كل ما تم إنجازه في المشروع لا سيما تقارير الاختبارات التي تم إجراؤها على المشروع وتشمل :

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

الاختبارات الرئيسية التي يتم إجرائها على شبكة البلوكشين

الاختبارات الوظيفية Functional Testing

تكمن أهمية إجراء الاختبار الوظيفي في أنه يساعد على تحديد متطلبات المشروع بدقة شديدة ؛ لأنه يعنى بفحص المكونات الرئيسية للشبكة مثل :

1 – حجم الكتلة الواحدة وحجم الشبكة ككل .

2 – إضافة الكتل .

3 – عملية نقل البيانات .

اختبارات التكامل Integration Testing

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

اختبارت الأداء Performance Testing

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

اختبارات العقد Node Testing

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

اختبارات واجهات التطبيقات API testing

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

أشهر الأدوات المستخدمة في إجراء الاختبارات على نظام البلوكشين

سأتناول بإيجاز شديد ذكر طائفة من أشهر الأدوات التي يحتاجها جميع مستخدمي نظام البلوكشين ؛ لإجراء الاختبارات المطلوبة مثل :

أداة الاختبار Ethereum Tester

هذه الأداة مصممة خصيصا لاختبار العملات الرقمية مثل عملة Ethereum  وهي عبارة عن تطبيق مفتوح المصدر وهذا التطبيق موجود على منصة GitHub ويمكن تخصيص هذه الأداة باستخدام واجهة التطبيقات API المتواجدة على شبكة  البلوكشين .

أداة الاختبار Ganache

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

أداة الاختبار Hyperledger Composer

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

  • اختبارات درجة التفاعل interactive Testing .
  • اختبارات الوحدة الآلية automated unit .
  • اختبارات النظام System testing .

الوسوم

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.

زر الذهاب إلى الأعلى
إغلاق