ملف العدد
نظام إثبات العمل (خوارزمية التوافق) في سلاسل الكتل
العدد 147 | حزيران (يونيو)-2019

بقلم غيث منصور
مهندس معلوماتية

تُعد سلاسل الكتل Blockchains وما يرافقها من مصطلحات ومفاهيم حديثًا شائعًا هذه الأيام، ولكن العديد يخطئون في فهمها وفي فهم حالات استعمالها وتطبيقاتها. ويحسُن بنا بداية أن نشير إلى لبنة أساسية في هذا العالم تعدُّ حجر الزاوية لفهم هذه المصطلحات. هذه اللبنة هي مفهوم نظام إثبات العمل proof of work.

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

أدخل هال فيني Hal Finney فكرة نظام إثبات العمل القابل لإعادة الاستعمال إلى عالم الأموال في عام 2004، وبناءً على هذه الفكرة، أصبحت البتكوين Bitcoin أول تطبيق عملي لهذه الفكرة في عام 2009 –وكان هال فيني أول متلقٍّ لعملية تحويل باستعمال البتكوين- وذلك عن طريق مؤسسها ساتوشي ناكاموتو Satoshi Nakamoto الذي لم تعرف هويته الحقيقية حتى الآن.

ما هي سلاسل الكتل؟

تعرَّف سلسلة الكتل بأنها تتالٍ من مجموعات من العمليات والمناقلات، تسمى كلُّ مجموعة منها كتلة، ويؤلف هذا التتالي سجلًّا موزعًا ومفتوحًا لكل أعضاء وعقد شبكة هذه السلسة. وكانت البتكوين أول مثال على سلاسل الكتل والعملات التعموية، ثم تلاها: إيثيريوم Ethereum، وستيلار Stellar، وريبل Ripple وغيرها كثير، كما هو واضح في الشكل (1):

 

الشكل 1: رموز العملات الإلكترونية الشائعة

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

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

ما الذي يحدث حقيقة؟

تُجمع التحويلات ضمن مجموعات تسمى كتلًا blocks، ثم يتحقق منقبون "miners" من شرعية وصحة عمليات التحويل، عن طريق حل مسألة رياضية تثبت قيامهم بالعمل المطلوب، وهذا ما يسمى "نظام إثبات العمل".

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

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

تتعلق طبيعة المسائل المطروحة بدالة رياضية تسمى "دالة الاختزال"، ولها عدة أمثلة (تستعمل البتكوين مثلًا دالة الاختزال SHA-256)، ويمكن عن طريق هذه الدالة استنتاج سلسلة طويلة من الأرقام التي تعبِّر عن كتلة من المعطيات الممثلة بأحرف وأرقام، وفي سلاسل الكتل يحتوي خرجُ دالة الاختزال لأحد الكتل ناتجَ دالة الاختزال للكتلة السابقة (الشكل 2). ونظرًا لخاصية تأثير الانهيار الثلجي، فإن أي تعديل على كتلة المعطيات الأساسية التي تشكل دخل الدالة سيؤدي إلى أن يكون الخرج مختلفًا تمامًا بحيث لا يقبل التشبيه أو الاستنتاج. ومهما كان طول كتلة معطيات الدخل، فإن دالة بصمة معينة تعطي دائمًا خرجًا ذا طول موحد، وهي دالة غير قابلة للعكس، أي لا يمكن عن طريقها استنتاج الدخل الذي يعطي خرجًا ما، وإنما يمكن فقط مقارنة الخرج الناتج عن دخل معين مع خرج آخر، وإثبات أن معطيات الدخل متطابقة. يقوم المنقب بالبحث عن قيمة ما إذا دمجها في الكتلة المعنية، وأجرى عليها دالة الاختزال، فسيكون الخرج على الشكل المطلوب، فإذا حصل على قيمة صحيحة يسلِّمها للشبكة، وعند المصادقة عليها ينال الجائزة، وتطرح كتلة جديدة إلى الشبكة.

الشكل 2: تسلسل الكتل في الشبكة وتنفيذ دالة الاختزال

إن استنتاج ناتج دالة الاختزال لأي كتلة معطيات أمر سهل نسبيًّا لأغلب حواسيب هذه الأيام، ويتطلب تعقيده وضع حل لمسألة "القادة البيزنطيين". تحدِّد شبكة سلسلة الكتل - ولتكن البتكوين مثلًا - درجة الصعوبة بحيث يستغرق الحل قرابة 10 دقائق، وهي المدة المحددة لإنشاء كتلة جديدة. ويجري تحديد صعوبة المسألة بوضع هدف معين يجب أن يحققه ناتج دالة الاختزال يسمى "الهدف"، وكلما كانت درجة الصعوبة أعلى، كانت قيمة إنشاء الكتلة أعلى وجائزتها أكبر، وهذا مما يدفع المنقبين إلى تطوير قدراتهم الحاسوبية باستمرار في محاولة لزيادة فرص الربح والتنقيب، ويتم تعديل قيمة درجة الصعوبة كل 14 يومًا تقريبًا.

أهمية نظام إثبات العمل

يساعد نظام إثبات العمل على حل العديد من المشاكل؛ منها:

أي نسخة من التاريخ هي النسخة الصحيحة؟

من المهم جدًّا في أي شبكة موزعة معرفةُ: رصيد كل شخص، ومَن قام بعملية التحويل، ومَن هو المتلقي، والتاريخ الذي يحفظ هذه المعلومات. وهنا يأتي دور نظام إثبات العمل؛ فهو قادر على إنشاء توافق بين مجموعة كبيرة جدًّا من المتعاملين الذين لا يعرف بعضهم بعضًا، ومن ثَم لا يثق بعضهم ببعض، وقادر أيضًا على حماية حقوق كل منهم.

المحافظة على توقيت موحد للشبكة

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

مشاكل نظام إثبات العمل

لا يخرج حال نظام إثبات العمل عن حال غيره من الأنظمة من حيث احتواؤه على بعض المشاكل والثغرات، وأهم هذه المشاكل: الاستهلاك الزائد للموارد، وعدم الفائدة، وهجوم 51%.

مشكلة الاستهلاك الزائد للموارد"huge expenditures": يعتمد نظام إثبات العمل على تشغيل معالجات ذات قدرات حاسوبية عالية متخصصة للقيام بالعمليات المطولة، وهذه المعالجات تستهلك قدرًا كبيرًا من الطاقة الكهربائية، حيث يقدر الاستهلاك الكلي لشبكة البتكوين حول العالم من الطاقة الكهربائية بما يعادل استهلاك دولة نيجيريا كاملة. وفي مقال نشر في كانون الأول الماضي في موقع cointelegraph، قُدّر استهلاك شبكة البتكوين حول العالم بإجمالي يعادل 0.14% من الاستهلاك العالمي للطاقة. توضح الخريطة في الشكل (3) توزع الدول التي تستهلك طاقة أقل من التي تستهلكها شبكة البتكوين (وهي الدول الملونة بالبرتقالي)، علمًا أن البتكوين هي واحدة من مئات وربما آلاف شبكات سلاسل الكتل، وهذا العدد مرشح للزيادة باستمرار. يضاف إلى هذا زيادة التكاليف الناجمة عن حاجة مراكز التنقيب إلى أنظمة تبريد وتهوية قوية جدًّا.

الشكل 3: خريطة استهلاك الطاقة العالمية مقارنة مع استهلاك شبكة البتكوين

 

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

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

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

الشكل 4: التلاعب بالشبكة وتسجيل تحويلات مالية غير حقيقية

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

الشكل 5: نشوء فرعين للسلسلة واستغلال بروتوكول الشبكة لاعتماد الفرع المزيف

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

الشكل 6: إلغاء الفرع الحقيقي من السلسلة واعتماد الفرع المزيف بسبب الهجوم

 

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

الخاتمة

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

قد ترغب كذلك بقراءة
ملف العدد
تطبيقات سلسلة الكتل لنقلة مجتمعية
البتكوين: نظام نقدي إلكتروني (نِدّ لنِدّ) لامركزي
مقدمة إلى سلسلة الكتل
سلسلة الكتل تحتضن الشبكات الاجتماعية