التنسيق الموزع: بروتوكولات الإجماع

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

لفهم كيف يمكن لجميع الجهات الفاعلة في الشبكة التنسيق والاتفاق بشأن الحالة التاريخية لشبكة blockchain ، سنتعرف على الإجماع. لا يتم استخدام الإجماع الموزع فقط في blockchain ، لكي نكون واضحين. تستخدم أي خدمة إنترنت تحتاج إلى تنسيق خوادمها في جميع أنحاء العالم (وهي جميع خدمات الإنترنت الرئيسية) آليات إجماع موزعة لتحقيق ذلك. يأخذ Blockchain الإجماع الموزع التقليدي خطوة أخرى إلى الأمام. سنرى ما هي هذه الخطوة بمجرد أن نفهم المبادئ التاريخية والأساسية للحوسبة الموزعة.

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

تطوير الحوسبة الموزعة

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

على المستوى الأساسي ، “تُستخدم بروتوكولات الإجماع للسماح لأجهزة الكمبيوتر بالعمل معًا” و “السماح للخوادم المختلفة بالاتفاق على حالة النظام”. (Software Engineering Daily). بالنسبة لمصنعي الطائرات ، سيستمر بروتوكول توافق الآراء الجيد في العمل مع بعض الأخطاء. بهذه الطريقة ، إذا فشل شيء أو شيئين ، فلن يفشل النظام بأكمله. تسمى قدرة بروتوكول الإجماع على التكيف مع الفشل المرونة.

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

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

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

  • عدد الجدران
  • أنواع الأثاث
  • وضع الأثاث
  • عدد الاشخاص
  • نوع الضوء في الغرفة

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

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

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

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

إلى جانب الحالة ، يعتمد الإجماع الموزع على بعض المفاهيم ، مثل:

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

    رسم تخطيطي للأنظمة المركزية واللامركزية والموزعة

  • الوقت تعتبر فكرة الوقت مهمة جدًا في النظام الموزع لأنها تخلق نوعًا من الترتيب للنظام الأكبر. يعد ترتيب الأحداث التي تحدث في النظام أمرًا مهمًا بشكل خاص. فكر في إعداد وجبة الإفطار ، على سبيل المثال. إذا قمت بخلط ترتيب سلسلة من الإجراءات ، مثل تناول البيض قبل طهيه ، فقد يؤدي ذلك إلى حدوث فوضى وارتباك. هذا مقال من Dean Eigenmann يناقش مفهوم الوقت والساعات والنظام في الأنظمة الموزعة.
  • الفترات المتعلقة بفكرة الوقت ، يتطلب كل بروتوكول إجماع فترات نشاط منفصلة. ربما تنتظر العقدة أن تسمع من قائد ، ربما يتم إعداد سلسلة من المعاملات للكتلة ، وربما تمر العقد حول أحدث حالة متفق عليها. هذه الفترات حاسمة لأي بروتوكول إجماع . في أنظمة blockchain ، تدور هذه الفترات عادةً حول إنشاء ونشر المعاملات في كتلة.
  • التسامح مع الخطأ هذا وصف رسمي للمرونة: كم عدد الأخطاء التي يمكن أن يتحملها النظام قبل أن ينهار تمامًا؟ بعبارة أخرى ، كم عدد العقد السيئة التي يمكن أن يكون لدينا في النظام قبل أن يتوقف النظام عن نشر الحالة؟ اقترحت ليزلي لامبورت مجموعة فرعية من التسامح مع الخطأ تسمى التسامح البيزنطي للخطأ.بشكل أساسي ، أكبر قدر من الأخطاء يمكن أن تمتصه الشبكة الموزعة هو الثلث. لذلك ، إذا كان 2/3 من النظام لا يزال متاحًا ومنسقًا ، فلا يزال بإمكان النظام العمل. بسبب هذه التجربة الفكرية الشهيرة ، قد ترى التسامح مع الخطأ يشار إليه باسم تحمل الخطأ البيزنطي أو تحمل الخطأ البيزنطي العملي. ومع ذلك ، فهو مشابه لكيفية أن المستطيل ليس مربعًا ولكن المربع مستطيل: ليس كل التسامح مع الخطأ هو التسامح البيزنطي مع الخطأ.

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

الخاتمه 

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

القسم التالي هو نظرة عامة ممتازة على نظام بروتوكول إجماع أساسي يسمى Raft. الطوافة هي خوارزمية إجماع مبسطة نشعر أنها تجعلها أكثر سهولة في الفهم. ومع ذلك ، فإن Raft هو بروتوكول إجماع جاهز للإنتاج تستخدمه مشاريع كبرى مثل MongoDB. أنشأ موقع الويب The Secret Lives of Data تجولًا استثنائيًا لـ Raft ، والذي نأمل أن يوضح الإجماع بطريقة ملموسة.

روابط إضافية

أساسي

متقدم

  • Github: ورش عمل P2P يحتوي هذا الموقع على سلسلة من التمارين للتعرف على بناء شبكات P2P

إضافة تعليق