إجماع إكسونوم: كيف يعمل؟

ExonumTM هو إطار عمل blockchain الخاص مفتوح المصدر. اليوم سوف نخبرك كيف تعمل خوارزمية الإجماع.


الصورة: Bitfury

لماذا هناك حاجة إلى خوارزميات الإجماع


قبل الانتقال إلى قصة كيفية عمل خوارزمية إجماع Exonum TM ، دعنا نتحدث عن سبب الحاجة إلى هذه الخوارزميات في سلاسل المفاتيح.

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

هذا ضروري لحماية blockchain والمعلومات المخزنة فيه من الخداع. على سبيل المثال ، في blockchain المبني على Exonum TM ، والمنفَّذ على السكك الحديدية الروسية ، يتم تسجيل المعلومات حول العمليات مع قطع غيار للسيارات والقطارات. يضمن blockchain موثوقية البيانات الموجودة في الكتلة ، والذي يسمح للشركة بمراقبة مسار قطع الغيار من المورد والكشف عن المنتجات المقلدة في الوقت المناسب. سنخبر المزيد عن هذا وغيرها من الحالات.

ما المهام التي حلناها من خلال إنشاء خوارزمية إجماع Exonum


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

مرة أخرى في منتصف الثمانينات ، ثبت أنه لضمان استقرار النظام الموزع ، يجب أن يعمل في ظروف التزامن الجزئي. في نفس الوقت ، يجب أن تحتوي خوارزمية الإجماع على المعايير التالية:

  • Liveness - يجب أن تكون قادرة على قبول كتلة جديدة في أي وقت معين.
  • الاتساق - يجب أن تكون قاعدة بيانات المعاملات على جميع عقد الشبكة متطابقة.
  • مقاومة الرقابة - يجب ألا تعطي العقد الأفضلية لأي معاملات أو تتجاهلها.

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

كيف تعمل خوارزمية إيكسونوم


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

مهمة المدققين هي التصويت لإدراج كتل جديدة في blockchain. كما قلنا أعلاه ، يمكن أن تعمل شبكة Exonum TM بثبات حتى لو كان ثلث العقد جميعها بيزنطية. وفقًا لذلك ، لتحقيق توافق الآراء ، يجب أن توافق الكتلة على أكثر من 2/3 من عقد شبكة blockchain. ويمكن تأكيد هذا البيان رياضيا.

نفترض أن الشبكة لديها مدقق العقد ح (صادقة) و f البيزنطية (الخاطئ). بعد ذلك ، يمكن تمثيل العدد الإجمالي للمدققين كـ N = h + f. جميع المصادقين يقررون "الفائز" بناءً على قاعدة العتبة.

ينص على: يجب أن يكون عدد الأصوات للفائز أكبر من أو يساوي α * N ، حيث α هو الرقم في النطاق من 0 إلى 1. وبالتالي ، فإن الغالبية المطلقة من الأصوات يتم تحقيقها عند α> 1/2.

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

لاستبعاد موقف مشابه ، من الضروري مراعاة شرطين:

  • يجب أن يكون المدققون الصادقون قادرين على اتخاذ الخيارات دون مشاركة العقد البيزنطية. يتم تحديد هذا الشرط بواسطة خاصية حيوية ، والتي تحدثنا عنها أعلاه. رياضيا ، يتم التعبير عنها بعدم المساواة التالية: h ≥ α * N.
  • لا يمكن للمرشح الذي صوتت لصالحه أقلية من المدققين الشرفاء التغلب على العتبة في α * N. وهذا ما تمليه معايير التناسق. يتم التعبير عن الشرط على النحو التالي: [h / 2] + f <α * N ، حيث [h / 2] هي الجزء الصحيح من الرقم h / 2.

نتيجةً لذلك ، حصلنا على سلسلة عدم المساواة التالية: h> 2f و α> 2/3 و N ≥ 3f + 1. ويترتب على ذلك ، من أجل تأكيد حظر المعاملة ، يجب أن تحصل على أكثر من ثلثي أصوات المدقق.

بعد ذلك ، دعنا نتحدث عن كيفية تصويت المدققين في سلسلة المفاتيح Exonum TM . بعبارات عامة ، يكون المخطط كما يلي:



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

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

هذه العقدة ، التي تلقى الاقتراح أكثر من 2/3 موافقات من المدققين ، تفقد فرصة التصويت لمقترحات المدققين الآخرين ولا يمكنها تغيير اقتراحها . هذه الحالة تسمى إثبات القفل .

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

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

لتقييم إمكانيات توافق Exonum TM ، قمنا باختبار تشغيل blockchain على أساس تكوينين: في أحد مراكز البيانات والعديد من مراكز البيانات الموزعة جغرافيًا. أثناء الاختبارات ، تم تقييم معلمة TPS - عدد المعاملات في الثانية - لعدد مختلف من المدققين. بعد ذلك ، سنقدم رسومات بيانية للتغيرات في أداء الشبكة في المجموعات الرئيسية للعمل مع العملات المشفرة (الرسم البياني الأسود) والطوابع الزمنية (الرسم البياني الأزرق).


TPS كدالة لعدد المدققين في حالة مركز بيانات واحد


TPS كدالة لعدد المدققين في حالة العديد من مراكز البيانات

في المتوسط ​​، تمكنت Exchain سلسلة block من المعالجة من 2 إلى 13 ألف معاملة في الثانية ، اعتمادًا على تكوين الشبكة.

حيث يتم استخدام Exonum بالفعل


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

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

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

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

نأمل أن تجد blockchain لدينا تطبيقًا في مهام أخرى وفي صناعات أخرى. نعمل حاليًا على تطبيق Exonum TM في أنظمة إدارة التصويت والحقوق والمزادات الرقمية. يمكن الاطلاع على عروض توضيحية لبعض هذه الحلول على موقع Exonum TM الرسمي .

Source: https://habr.com/ru/post/ar440586/


All Articles