تكنولوجيا “بلوك تشين” هل هي الحل الأمثل لجميع التطبيقات؟


دكتور/عمرو جلال
محاضر وخبير تكنولوجيا المعلومات.

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

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

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

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

النظام الموزع (distributed system):

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

برنامج الهاشنج (hashing program):

هو برنامج كمبيوتر يقوم بتطبيق معادلات رياضية محددة على مدخلاته بحيث يكون نتيجتها مخرجات تسمى hash code. وبالشروط التالية:

  1. ان لا تتغير المخرجات طالما لم تتغير المدخلات.
  2. أن لا توجد طريقة يمكن بها استنتاج المدخلات من المخرجات.

فمثلا يمكن ان تكون المدخلات لبرنامج الهاشنج ملف اكسيل مكون من قائمة ضخمة من 200 صفحة بها أسماء كبار عملاء البنك ويكون الhash code هو شيء مشابه للكود “11232423458696345343204823475320”

وفى حالة تغيير حرف واحد في اسم من أسماء القائمة فإن الhash code يمكن ان يصبح مثلا “63452421234596340044204821234567”.

وهناك العديد من برامج الهاشنج تعتمد على أنواع مختلفة من الخوارزميات algorithms  ومن أشهرها:

  • Sha256
  • MD5
  • NTLM

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

وهناك العديد من الاستخدامات لبرامج الهاشنج منها مثلا برامج كشف الفيروسات ونظم تسجيل حقوق الملكية الفكرية وغيرها

تعتمد تكنولوجيا البلوك تشين على استخدام النظم الموزعة (distributed systems) لنشر بيانات أتفق أكثر من طرف على التشارك فيها وبحيث لا يمكن الغاء أو تعديل أي بيان منها وانما فقط يمكن إضافة بيانات جديدة بشروط يحددها منشئ النظام منذ بداية إطلاق النظام.

وللتأكد من ان البيانات التي يتم مشاركتها والموجودة على أكثر من جهاز كمبيوتر من أجهزة النظام الموزع لم يتم التلاعب بها يتم استخدام برنامج هاشنج لاستخراج hash code لكل بلوك من هذه البيانات.

وعند إضافة بلوك جديد من البيانات يتم استخدام (ال hash code الخاص ببلوك البيانات الأول + بلوك البيانات الجديد) كمدخلات لبرنامج ال hashing وذلك لاستخراج ال hash code الجديد وبذلك تشكل مجموعة بلوكات البيانات سلسلة (ال hash code الخاص بالبلوك الأول+ البلوك الثاني = ال hash code الخاص بالبلوك الثاني) ثم (ال hash code الخاص بالبلوك الثاني+ البلوك الثالث = ال hash code الخاص بالبلوك الثالث) وهكذا بحيث نضمن انه لا يمكن التلاعب بأي بيان من البيانات.

وعادة ما يتم كتابة البرنامج الذي يقوم بتنفيذ البلوك تشين بلغة لا تحتاج الى compilation مثل Java script مثلا مما يسمح لمستخدمي النظام بقراءة الكود وإتاحة أكبر قدر من الشفافية.

كما ان عمليات التسجيل في البلوك تشين عادة يتم تسجيلها مع timestamp بحيث يمكن معرفة تسلسلها بطريقة سهلة ومؤكدة.

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

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

كما يحدد منشئ النظام كيفية التعرف على كل طرف (authentication) وهل يتم الإفصاح عن هوية كل مستخدم ام يتم التعرف فقط على Public key لكل مستخدم.

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

وبناءا على ما سبق يتضح ان منشئ كل block chain يكون لديه الفرصة لتحديد مجموعة كبيرة من المحددات للنظام نوجزها فيما يلي:

  • من له حق الانضمام ومن له حق الاطلاع على بيان ومن له حق التصويت على صحة بيان ومن من حقه المشاركة في عملية التعدين.
  • اللغة التي سيكتب بها النظام.
  • البلوك الأول وماذا سيكتب به. وما هو حجم البلوك وهل هناك حد اقصى لعدد البلوكات وما هي السرعة المسموح بها في إضافة بلوك جديد.
  • نوع ال hashing المستخدم وقواعد استخراج ال hash code وهل سيكون هناك مقابل لمن يستخرجه بشكل صحيح لكل بلوك وما قيمة المقابل وهل هو ثابت ام متغير
  • قواعد اختيار الفائز بمقابل التعدين هل هي مثلا proof of work ام proof of stake ام خلاف ذلك.
  • نوع البيانات التي يمكن اضافتها في صورة بلوك وهل هي مشفرة ام لا ومن له حق الاطلاع عليها ومن له حق السماح بالاطلاع.

كل القواعد السابقة تحدد شكل وأسلوب عمل ال block chain التي يمكن بنائها طبقا لمتطلبات منشئ النظام والتطبيق الذي يريد تنفيذه.

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

ومن اهم المزايا التي يمكن ان تتوفر في مثل هذا النظام:

  • الشفافية الكاملة حيث ان كل معاملة سيتم تنفيذها يمكن ان يسجل بها أطرافها وقيمتها ووقت تنفيذها بشكل لا يمكن التلاعب فيه
  • المصداقية حيث ان كل بيان تم اضافته واضح لدى جميع الأطراف الأسلوب الذي تم اتباعه لإضافته وهناك تأكد شبه كامل من صحته.
  • درجة عالية من الامان لان النظام الذي يعمل بهذا الأسلوب لم يكتشف حتى الان أسلوب لاختراقه.
  • الثقة لأن تلف أحد الأجهزة المشاركة في الشبكة او اختراقه لن يؤثر على عمل النظام ككل بل ويمكن استكمال العمل بدون أي تأثير على البيانات حتى عند خروج أي نسبة من الأجهزة من الخدمة بشرط بقاء 3 أجهزة على الأقل.
  • ويضاف الى ذلك ميزة كبرى وهي امكانيه انشاء نظام لا يمكن لأي طرف من الأطراف إيقاف تنفيذه وذلك باستخدام الsmart contracts حيث يتم استبدال البيانات التي يتم كتابتها في بلوك البيانات بأوامر موجهة الى النظام تكتب بلغة خاصة مثل solidity  وهذه الميزة تفتح الافاق لتنفيذ العديد من التطبيقات التي لم يكن من الممكن الوصول اليها دون وجود هذا النوع من التكنولوجيا.

ومما سبق يمكن بوضوح قول ان استخدام block chain يكون مفيدا إذا توفر في التطبيق المطلوب شرطين أساسيين وهما:

  1. ان يكون هناك بيان مطلوب مشاركته بين أكثر من جهة
  2. ان يكون البيان المطلوب تشاركه ممنوع تعديله او الغاء أي جزء منه

وجدير بالذكر ان عدم توفر أيا من الشرطين السابقين يمنعنا من استخدام ال Block chain حيث سيضيف استخدامها في هذه الحالة أعباء بدون ضرورة حقيقية لاستخدام هذا الأسلوب. ومن هذه الأعباء ما يلي:

  • بطيء ال block chain عن أساليب العمل العادية.
  • عدم توافر الخبرات الفنية اللازمة بدرجة كافية.
  • استخدام كمية أكبر من الطاقة وكمية أكبر من processing power على مستوى النظام.
  • تعقد إجراءات تنفيذ العمل.

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

شاهد أيضاً

جائحة كورونا وأنماط شخصيات الموظفين

شريف عز الدين – استشاري تطوير أفراد لقد عشنا جميعاً التأثيرات التي أدت إليها جائحة …