فيالجزء 1،لقد فحصنا كيف يعمل الاتفاق الكلاسيكي PBFT وكيف تعمل الإصدارات السابقة من HotStuff. كما نظرنا إلى كيفية حل MonadBFT لمشكلة تفرع الذيل في HotStuff وهو مشكلة تحدث أحيانًا حيث تترك الكتل الصالحة خلفًا في الأنظمة المتسلسلة.
هذه المشكلة التي تتعلق بالتفريع تخلق مشكلتين كبيرتين: 1) إنها تخلط بالمكافآت لبناة الكتل الصادقين و2) يمكن أن تعطل الشبكة بشكل محتمل.
تقدم MonadBFT قاعدة إعادة الاقتراح وآليات التصويت بدون تأييد للقضاء على مشكلة الفorking الذيلية، مضمنة أن أي كتلة معتمدة بشكل صحيح من مقترح صادق ستصل دائمًا إلى السلسلة.
في الجزء 2 نستكشف السمات الأخريان لـ MonadBFT وهي 1) النهوض الظني و 2) الاستجابة التفاؤلية. سنستكشف أيضًا تداعيات MonadBFT على المطورين.
بالإضافة إلى مقاومة الشوكة الذيلية، ميزة رئيسية أخرى لـ MonadBFT هي النهاية المضاربة داخل جولة واحدة.
من الناحية العملية، يعني ذلك أن العملاء والمستخدمين يمكنهم تلقي تأكيد لصفقتهم فورًا بعد أن يحصل كتلة على أغلبية سوبر، حتى قبل اكتمال الجولة التالية.
تذكر أنه في بروتوكولات الأساسية HotStuff، لا يُعتبر الكتلة عادةً نهائية (لا يمكن عكسها) حتى يمر بمرحلتين على الأقل (مثل Fast-Hotstuff & Diem-BFT): مرحلة للحصول على شهادة النصاب (قفل الكتلة بـ ≥2f+1 أصوات)، ومرحلة ثانية حيث يبني القائد التالي على ذلك QC ويُلتزم بالكتلة.
هذا التزام مرحلتين ضروري لضمان السلامة: بمجرد أن يقوم عدد كاف من العقداء الصادقين بقفل كتلة، لا يمكن لكتلة تعارضية أن تجمع نصابًا، والتزام في الجولة التالية يجعله دائمًا. لذلك، عادةً ما يتعين على العميل الانتظار حتى تتم إنتاج الكتلة التالية أو الجولة التالية قبل أن يعرفوا أن الصفقة السابقة نهائية.
يسمح MonadBFT بشكل أساسي للمعاملة بأن تعتبر نهائية بما فيه الكفاية (آمنة للاعتماد عليها) بعد جولة واحدة فقط من التصويت. يُطلق عليها النهائية المحتملة.
عندما يقترح الزعيم كتلة ويصوت المحققون لتشكيل نظام تحكم كيو سي لتلك الكتلة، تكون تلك الكتلة الآن في حالة تصويت (مقفلة بواسطة نصاب). في MonadBFT، سيقوم المحققون بتنفيذ معاملات الكتلة بمجرد تشكيل نظام تحكم كيو سي وحتى يرسلون تأكيدًا أوليًا للعملاء يشير إلى أن الكتلة قد تمت قبولها (بشكل تخميني). هذا يشبه القول: "لدينا غالبية ساحقة توافق على هذه الكتلة. مالم يحدث شيء غير متوقع للغاية، فاعتبر هذه الكتلة مؤكدة."
هذه الرد الفوري متفائل. لم يتم تأكيد الكتلة في دفتر الأستاذ حتى الآن. سيحدث ذلك عندما يأتي الاقتراح التالي وينهيه (QC-on QC)، ولكن في الظروف الطبيعية، لن يلغي أي شيء ذلك. السيناريو الوحيد الذي يمكن أن يعيد تنفيذ كتلة تم تنفيذها تخيليًا هو إذا تردد القائد (أي اقترح كتلتين مختلفتين في نفس الارتفاع لتقسيم الصوت).
يمكنك أن تعتبر النهوض الظني كنتيجة جميلة لمقاومة الكلل. تضمن مقاومة الكلل أنه حتى لو تعطل القائد التالي، لن يتم التخلي عن الاقتراح الحالي (بفضل قواعد إعادة الاقتراح و NEC). لذلك، الوقت الوحيد الذي يتم فيه إسقاط كتلة تم تنفيذها بشكل ظني هو إذا كان الطالب الأصلي متناقضًا (خطأ في التوقيع المزدوج يمكن إثبات أنه شرير)، وهي: 1) يمكن اكتشافها من خلال QCs المتعارضة، 2) قابلة للخصم و 3) نادرة للغاية.
في البروتوكولات السابقة، لم يضمنوا أن الزعيم التالي سيعيد اقتراح الكتلة السابقة، لذا كان من الممكن حدوث تشعب في الأذيل، مما يعرض افتراضات التكهن للخطر.
في معظم بروتوكولات التوافق، هناك انتظار مدمج بعد كل جولة مثل فترة تخزين مؤقت أو مهلة. يهدف ذلك إلى التأكد من وصول جميع الرسائل قبل المضي قدمًا. إنه آلية وقائية مخصصة للتعامل مع أسوأ سيناريو مثل عندما يتعطل القائد أو لا يرسل شيئًا على الإطلاق.
هذه المهلات الزمنية غالبًا ما تكون محافظة بشكل زائد. إذا كان الشبكة تعمل بشكل طبيعي وجميع المحققين يتصرفون بشكل صحيح، فإن الانتظار الثابت يصبح زيادة غير ضرورية. كان يمكن أن تكون الكتل قد تم تثبيتها بسرعة أكبر، ولكن البروتوكول كان يمنع تقدم العملية مجرد احتياط.
يقدم MonadBFT استجابة متفائلة مما يعني أن البروتوكول يمكن أن يتقدم على الفور استنادًا إلى رسائل الشبكة، بدلاً من الاعتماد دائمًا على المواقيت الثابتة. يمكن تلخيص مبدأ التصميم هنا باسم "سريع عندما يمكن، صبور عندما يجب".
تم تصميم MonadBFT بحيث في الحالة العادية وحتى في حالة الاستعادة من خطأ، فإنه لا يتوقف لفترة زمنية محددة إذا لم يكن لديه لذلك.
في الواقع، هذا يعني أنه إذا كان تأخر الشبكة بين العقد هو، على سبيل المثال، 100 مللي ثانية، فإن الاتفاق يمكن أن ينتهي بشكل محتمل في جولة مجرد عدة مئات من الجيلات الزمنية (بالإضافة إلى التكاليف الحوسبة والتجميع).
لا تنتظر، على سبيل المثال، ثانية كاملة "وقت الفتحة" إذا لم يكن هناك حاجة لذلك. هذا على عكس شبكة Ethereum الرئيسية التي تتبعنموذج الفتحة والحقبةفي Ethereum، إنتاج الكتل ثابت بفاصل زمني قدره 12 ثانية. حتى لو كان الجميع جاهزين في وقتٍ سابق، ينتظر البروتوكول.
يزيل نهج MonadBFT التأخير غير الضروري. إنه يحتفظ بهيكل HotStuff المجزأ ولكنه يزيل قاعدة الـ "يجب عليك الانتظار Δ ثانية" الصارمة في الحالة العادية. هذا يعني أنه يمكن أن يفوق الأنظمة المحددة زمنيًا في الاستجابة دون التضحية بالسلامة.
يقوم MonadBFT على سلالة بروتوكولات الاتفاق في عائلة HotStuff، ولكنه يبرز من خلال تحقيق توليفة من الخصائص المرغوبة التي لم تتمكن التصاميم السابقة من دمجها بشكل كامل دون التضحية بالتجارة. كانت البروتوكولات السابقة غالبًا ما تمت تحسينها لبعض الأبعاد مثل إنتاجية التسلسل الزمني أو الاتصال الخطي ولكن كان عليها التضحية بالبعض الآخر. يدير MonadBFT بشكل فريد القدرة على دمج تعقيد الرسائل الخطية، والتزام خطوط الأنابيب، ومقاومة الإخلال القوي، والاستجابة الفورية دون تأخيرات ثابتة، وآليات الاسترداد الفعالة، كل ذلك مع الحفاظ على النهوض السريع والضمانات العالية للحياة. يلخص الجدول أدناه كيفية مقارنة MonadBFT ببروتوكولات BFT الأخرى التي تدور قادتها عبر هذه الأبعاد الحرجة:
بالنسبة للمطورين، يعني MonadBFT بعض الأمور:
بالنسبة للمستخدمين النهائيين: لن يعرف مستخدم العادي عن أي من الأمور التي ناقشناها هنا، لكنه يشعر بتأثيرها. مع MonadBFT كأساس لـ Monad السلسلة، يمكن للمستخدمين أن يتوقعوا جميع الصفات الجميلة أدناه دون التضحية باللامركزية ومقاومة الرقابة.
لإعادة التلخيص، يقدم MonadBFT أربع ابتكارات أساسية في أعلى نمط التوافق Pipelined HotStuff:
مقاومة الفرع المعلق: يعتبر MonadBFT أول بروتوكول BFT مجزأ يقضي على هجمات الفروع المعلقة. يتحقق ذلك عن طريق الطلب من القائد التالي إعادة اقتراح آخر كتلة تم التصويت عليها إذا فشل القائد السابق، أو إظهار شهادة عدم التأييد (NEC) كدليل على عدم دعم الكتلة. يضمن هذا عدم تخلي عن أي كتلة تمت تأييدها من قبل أغلبية كبيرة، مما يحمي مكافآت القادة الصادقين ويمنع إعادة تنظيم البيانات الضار واستخراج MEV عبر الكتل.
الاستقرار التكهني في جولة واحدة: يمكن للمحققين تأكيد كتلة بعد جولة واحدة من التواصل (اقتراح زعيم وتصويتات واحدة)، مما يمنح العملاء ضمانًا فوريًا بالإدراج. سيعود هذا التأكيد التكهني فقط إذا تضاعف الزعيم (فعل يمكن إثباته ومعاقبته)، مما يجعله افتراضًا آمنًا في الممارسة.
الاستجابة المتفائلة: يعمل البروتوكول بسرعة الشبكة دون تأخير ذاتي. يقوم القادة بالتقدم في التوافق بمجرد استلام الأصوات اللازمة، وتحدث التغييرات بمجرد رصد تجمع من المهلات، بدلاً من الانتظار لفترة زمنية ثابتة. يقلل هذا التصميم المتفائل لأوقات الانتظار ويزيد من الإنتاجية، مع معالجة اللازمات والأخطاء بقوة عند حدوثها.
الاتصال الخطي: على المسار السعيد (معنى أن القائد صادق)، تعقيد الرسالة والمصادقة يكون خطيًا بناءً على عدد الموثقين. يحتفظ MonadBFT بنمط الاتصال الفعال لـ HotStuff، باستخدام توقيعات مجمعة وبث بسيط من القائد إلى الموثقين، مما يتيح للبروتوكول أن يتوسع إلى مئات الموثقين دون عقبات في الأداء.
Пригласить больше голосов
فيالجزء 1،لقد فحصنا كيف يعمل الاتفاق الكلاسيكي PBFT وكيف تعمل الإصدارات السابقة من HotStuff. كما نظرنا إلى كيفية حل MonadBFT لمشكلة تفرع الذيل في HotStuff وهو مشكلة تحدث أحيانًا حيث تترك الكتل الصالحة خلفًا في الأنظمة المتسلسلة.
هذه المشكلة التي تتعلق بالتفريع تخلق مشكلتين كبيرتين: 1) إنها تخلط بالمكافآت لبناة الكتل الصادقين و2) يمكن أن تعطل الشبكة بشكل محتمل.
تقدم MonadBFT قاعدة إعادة الاقتراح وآليات التصويت بدون تأييد للقضاء على مشكلة الفorking الذيلية، مضمنة أن أي كتلة معتمدة بشكل صحيح من مقترح صادق ستصل دائمًا إلى السلسلة.
في الجزء 2 نستكشف السمات الأخريان لـ MonadBFT وهي 1) النهوض الظني و 2) الاستجابة التفاؤلية. سنستكشف أيضًا تداعيات MonadBFT على المطورين.
بالإضافة إلى مقاومة الشوكة الذيلية، ميزة رئيسية أخرى لـ MonadBFT هي النهاية المضاربة داخل جولة واحدة.
من الناحية العملية، يعني ذلك أن العملاء والمستخدمين يمكنهم تلقي تأكيد لصفقتهم فورًا بعد أن يحصل كتلة على أغلبية سوبر، حتى قبل اكتمال الجولة التالية.
تذكر أنه في بروتوكولات الأساسية HotStuff، لا يُعتبر الكتلة عادةً نهائية (لا يمكن عكسها) حتى يمر بمرحلتين على الأقل (مثل Fast-Hotstuff & Diem-BFT): مرحلة للحصول على شهادة النصاب (قفل الكتلة بـ ≥2f+1 أصوات)، ومرحلة ثانية حيث يبني القائد التالي على ذلك QC ويُلتزم بالكتلة.
هذا التزام مرحلتين ضروري لضمان السلامة: بمجرد أن يقوم عدد كاف من العقداء الصادقين بقفل كتلة، لا يمكن لكتلة تعارضية أن تجمع نصابًا، والتزام في الجولة التالية يجعله دائمًا. لذلك، عادةً ما يتعين على العميل الانتظار حتى تتم إنتاج الكتلة التالية أو الجولة التالية قبل أن يعرفوا أن الصفقة السابقة نهائية.
يسمح MonadBFT بشكل أساسي للمعاملة بأن تعتبر نهائية بما فيه الكفاية (آمنة للاعتماد عليها) بعد جولة واحدة فقط من التصويت. يُطلق عليها النهائية المحتملة.
عندما يقترح الزعيم كتلة ويصوت المحققون لتشكيل نظام تحكم كيو سي لتلك الكتلة، تكون تلك الكتلة الآن في حالة تصويت (مقفلة بواسطة نصاب). في MonadBFT، سيقوم المحققون بتنفيذ معاملات الكتلة بمجرد تشكيل نظام تحكم كيو سي وحتى يرسلون تأكيدًا أوليًا للعملاء يشير إلى أن الكتلة قد تمت قبولها (بشكل تخميني). هذا يشبه القول: "لدينا غالبية ساحقة توافق على هذه الكتلة. مالم يحدث شيء غير متوقع للغاية، فاعتبر هذه الكتلة مؤكدة."
هذه الرد الفوري متفائل. لم يتم تأكيد الكتلة في دفتر الأستاذ حتى الآن. سيحدث ذلك عندما يأتي الاقتراح التالي وينهيه (QC-on QC)، ولكن في الظروف الطبيعية، لن يلغي أي شيء ذلك. السيناريو الوحيد الذي يمكن أن يعيد تنفيذ كتلة تم تنفيذها تخيليًا هو إذا تردد القائد (أي اقترح كتلتين مختلفتين في نفس الارتفاع لتقسيم الصوت).
يمكنك أن تعتبر النهوض الظني كنتيجة جميلة لمقاومة الكلل. تضمن مقاومة الكلل أنه حتى لو تعطل القائد التالي، لن يتم التخلي عن الاقتراح الحالي (بفضل قواعد إعادة الاقتراح و NEC). لذلك، الوقت الوحيد الذي يتم فيه إسقاط كتلة تم تنفيذها بشكل ظني هو إذا كان الطالب الأصلي متناقضًا (خطأ في التوقيع المزدوج يمكن إثبات أنه شرير)، وهي: 1) يمكن اكتشافها من خلال QCs المتعارضة، 2) قابلة للخصم و 3) نادرة للغاية.
في البروتوكولات السابقة، لم يضمنوا أن الزعيم التالي سيعيد اقتراح الكتلة السابقة، لذا كان من الممكن حدوث تشعب في الأذيل، مما يعرض افتراضات التكهن للخطر.
في معظم بروتوكولات التوافق، هناك انتظار مدمج بعد كل جولة مثل فترة تخزين مؤقت أو مهلة. يهدف ذلك إلى التأكد من وصول جميع الرسائل قبل المضي قدمًا. إنه آلية وقائية مخصصة للتعامل مع أسوأ سيناريو مثل عندما يتعطل القائد أو لا يرسل شيئًا على الإطلاق.
هذه المهلات الزمنية غالبًا ما تكون محافظة بشكل زائد. إذا كان الشبكة تعمل بشكل طبيعي وجميع المحققين يتصرفون بشكل صحيح، فإن الانتظار الثابت يصبح زيادة غير ضرورية. كان يمكن أن تكون الكتل قد تم تثبيتها بسرعة أكبر، ولكن البروتوكول كان يمنع تقدم العملية مجرد احتياط.
يقدم MonadBFT استجابة متفائلة مما يعني أن البروتوكول يمكن أن يتقدم على الفور استنادًا إلى رسائل الشبكة، بدلاً من الاعتماد دائمًا على المواقيت الثابتة. يمكن تلخيص مبدأ التصميم هنا باسم "سريع عندما يمكن، صبور عندما يجب".
تم تصميم MonadBFT بحيث في الحالة العادية وحتى في حالة الاستعادة من خطأ، فإنه لا يتوقف لفترة زمنية محددة إذا لم يكن لديه لذلك.
في الواقع، هذا يعني أنه إذا كان تأخر الشبكة بين العقد هو، على سبيل المثال، 100 مللي ثانية، فإن الاتفاق يمكن أن ينتهي بشكل محتمل في جولة مجرد عدة مئات من الجيلات الزمنية (بالإضافة إلى التكاليف الحوسبة والتجميع).
لا تنتظر، على سبيل المثال، ثانية كاملة "وقت الفتحة" إذا لم يكن هناك حاجة لذلك. هذا على عكس شبكة Ethereum الرئيسية التي تتبعنموذج الفتحة والحقبةفي Ethereum، إنتاج الكتل ثابت بفاصل زمني قدره 12 ثانية. حتى لو كان الجميع جاهزين في وقتٍ سابق، ينتظر البروتوكول.
يزيل نهج MonadBFT التأخير غير الضروري. إنه يحتفظ بهيكل HotStuff المجزأ ولكنه يزيل قاعدة الـ "يجب عليك الانتظار Δ ثانية" الصارمة في الحالة العادية. هذا يعني أنه يمكن أن يفوق الأنظمة المحددة زمنيًا في الاستجابة دون التضحية بالسلامة.
يقوم MonadBFT على سلالة بروتوكولات الاتفاق في عائلة HotStuff، ولكنه يبرز من خلال تحقيق توليفة من الخصائص المرغوبة التي لم تتمكن التصاميم السابقة من دمجها بشكل كامل دون التضحية بالتجارة. كانت البروتوكولات السابقة غالبًا ما تمت تحسينها لبعض الأبعاد مثل إنتاجية التسلسل الزمني أو الاتصال الخطي ولكن كان عليها التضحية بالبعض الآخر. يدير MonadBFT بشكل فريد القدرة على دمج تعقيد الرسائل الخطية، والتزام خطوط الأنابيب، ومقاومة الإخلال القوي، والاستجابة الفورية دون تأخيرات ثابتة، وآليات الاسترداد الفعالة، كل ذلك مع الحفاظ على النهوض السريع والضمانات العالية للحياة. يلخص الجدول أدناه كيفية مقارنة MonadBFT ببروتوكولات BFT الأخرى التي تدور قادتها عبر هذه الأبعاد الحرجة:
بالنسبة للمطورين، يعني MonadBFT بعض الأمور:
بالنسبة للمستخدمين النهائيين: لن يعرف مستخدم العادي عن أي من الأمور التي ناقشناها هنا، لكنه يشعر بتأثيرها. مع MonadBFT كأساس لـ Monad السلسلة، يمكن للمستخدمين أن يتوقعوا جميع الصفات الجميلة أدناه دون التضحية باللامركزية ومقاومة الرقابة.
لإعادة التلخيص، يقدم MonadBFT أربع ابتكارات أساسية في أعلى نمط التوافق Pipelined HotStuff:
مقاومة الفرع المعلق: يعتبر MonadBFT أول بروتوكول BFT مجزأ يقضي على هجمات الفروع المعلقة. يتحقق ذلك عن طريق الطلب من القائد التالي إعادة اقتراح آخر كتلة تم التصويت عليها إذا فشل القائد السابق، أو إظهار شهادة عدم التأييد (NEC) كدليل على عدم دعم الكتلة. يضمن هذا عدم تخلي عن أي كتلة تمت تأييدها من قبل أغلبية كبيرة، مما يحمي مكافآت القادة الصادقين ويمنع إعادة تنظيم البيانات الضار واستخراج MEV عبر الكتل.
الاستقرار التكهني في جولة واحدة: يمكن للمحققين تأكيد كتلة بعد جولة واحدة من التواصل (اقتراح زعيم وتصويتات واحدة)، مما يمنح العملاء ضمانًا فوريًا بالإدراج. سيعود هذا التأكيد التكهني فقط إذا تضاعف الزعيم (فعل يمكن إثباته ومعاقبته)، مما يجعله افتراضًا آمنًا في الممارسة.
الاستجابة المتفائلة: يعمل البروتوكول بسرعة الشبكة دون تأخير ذاتي. يقوم القادة بالتقدم في التوافق بمجرد استلام الأصوات اللازمة، وتحدث التغييرات بمجرد رصد تجمع من المهلات، بدلاً من الانتظار لفترة زمنية ثابتة. يقلل هذا التصميم المتفائل لأوقات الانتظار ويزيد من الإنتاجية، مع معالجة اللازمات والأخطاء بقوة عند حدوثها.
الاتصال الخطي: على المسار السعيد (معنى أن القائد صادق)، تعقيد الرسالة والمصادقة يكون خطيًا بناءً على عدد الموثقين. يحتفظ MonadBFT بنمط الاتصال الفعال لـ HotStuff، باستخدام توقيعات مجمعة وبث بسيط من القائد إلى الموثقين، مما يتيح للبروتوكول أن يتوسع إلى مئات الموثقين دون عقبات في الأداء.