Algorand: การปรับขนาดข้อตกลง Byzantine สำหรับ Cryptocurrencies

بقلم Jing Chen and Silvio Micali · 2017

وضع فردي arxiv.org

خلاصة

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

บทคัดย่อ

บัญชีแยกประเภทสาธารณะเป็นลำดับข้อมูลที่ป้องกันการปลอมแปลงที่ทุกคนสามารถอ่านและเพิ่มได้ บัญชีแยกประเภทสาธารณะมีประโยชน์มากมายและน่าสนใจ พวกเขาสามารถรักษาความปลอดภัยได้ทุกชนิด ของธุรกรรม เช่น ชื่อ การขาย และการชำระเงิน ในลำดับที่แน่นอนที่เกิดขึ้น บัญชีแยกประเภทสาธารณะไม่เพียงแต่ควบคุมการทุจริตเท่านั้น แต่ยังเปิดใช้งานแอปพลิเคชันที่ซับซ้อนมาก เช่น สกุลเงินดิจิตอลและ smart contracts พวกเขายืนหยัดที่จะปฏิวัติวิถีสังคมประชาธิปไตย ดำเนินการ อย่างไรก็ตาม ตามที่ดำเนินการอยู่ในปัจจุบัน สิ่งเหล่านี้มีขนาดได้ไม่ดีและไม่สามารถบรรลุศักยภาพได้ Algorand เป็นวิธีการที่เป็นประชาธิปไตยและมีประสิทธิภาพอย่างแท้จริงในการดำเนินการบัญชีแยกประเภทสาธารณะ ไม่เหมือนเมื่อก่อน การใช้งานโดยอิงตามหลักฐานการทำงานนั้น ต้องใช้การคำนวณจำนวนเล็กน้อย และ สร้างประวัติการทำธุรกรรมที่จะไม่ "แยก" ด้วยความน่าจะเป็นสูงอย่างท่วมท้น Algorand อิงตามข้อตกลงไบเซนไทน์ในการส่งข้อความ (แบบใหม่และเร็วเป็นพิเศษ) เพื่อความเป็นรูปธรรม เราจะอธิบาย Algorand ว่าเป็นแพลตฟอร์มเงินเท่านั้น

مقدمة

أصبح المال افتراضيًا بشكل متزايد. وتشير التقديرات إلى أن حوالي 80٪ من الولايات المتحدة الدولارات اليوم موجودة فقط كإدخالات دفتر الأستاذ [5]. وتحذو الأدوات المالية الأخرى حذوها. في عالم مثالي، حيث يمكننا الاعتماد على كيان مركزي موثوق به عالميًا، يتمتع بالمناعة في مواجهة جميع الهجمات السيبرانية المحتملة، يمكن أن تكون الأموال والمعاملات المالية الأخرى إلكترونية فقط. ولسوء الحظ، نحن لا نعيش في مثل هذا العالم. وبناء على ذلك، فإن العملات المشفرة اللامركزية، مثل مثل Bitcoin [29]، وأنظمة "smart contract"، مثل Ethereum، تم اقتراحها [4]. في قلب هذه الأنظمة هو دفتر أستاذ مشترك يسجل بشكل موثوق سلسلة من المعاملات، ∗ هذه هي النسخة الأكثر رسمية (وغير المتزامنة) من ورقة ArXiv للمؤلف الثاني [24]، وهي ورقة بحثية نفسها مبنية على نظرية جوربونوف وميكالي [18]. تقنيات Algorand هي الهدف مما يلي طلبات براءات الاختراع: US62/117,138 US62/120,916 US62/142,318 US62/218,817 US62/314,601 PCT/US2016/018300 US62/326,865 62/331,654 US62/333,340 US62/343,369 US62/344,667 US62/346,775 US62/351,011 US62/653,482 US62/352,195 US62/363,970 US62/369,447 US62/378,753 US62/383,299 US62/394,091 US62/400,361 US62/403,403 US62/410,721 US62/416,959 US62/422,883 US62/455,444 US62/458,746 US62/459,652 US62/460,928 US62/465,931متنوعة مثل المدفوعات والعقود، بطريقة لا يمكن التلاعب بها. التكنولوجيا المفضلة ل ضمان عدم التلاعب هو blockchain. تقف Blockchains وراء تطبيقات مثل العملات المشفرة [29]، والتطبيقات المالية [4]، وإنترنت الأشياء [3]. عدة تقنيات لإدارة دفاتر الأستاذ المستندة إلى blockchain: إثبات العمل [29]، إثبات الحصة [2]، التسامح البيزنطي العملي مع الأخطاء [8]، أو مزيج من ذلك. ومع ذلك، في الوقت الحالي، قد تكون إدارة دفاتر الأستاذ غير فعالة. على سبيل المثال، Bitcoin proof-of-work النهج (المبني على المفهوم الأصلي لـ [14]) يتطلب قدرًا هائلاً من العمليات الحسابية، وهو أمر مهدر والمقاييس سيئة [1]. وبالإضافة إلى ذلك، فهو يركز السلطة فعلياً في أيدي عدد قليل جداً من الناس. ولذلك نرغب في طرح طريقة جديدة لتنفيذ دفتر الأستاذ العام الذي يقدم راحة وكفاءة نظام مركزي تديره سلطة موثوقة لا تنتهك حرمتها أوجه القصور والضعف في التطبيقات اللامركزية الحالية. نحن نسمي نهجنا Algorand، لأننا نستخدم العشوائية الخوارزمية للاختيار، بناءً على دفتر الأستاذ الذي تم إنشاؤه حتى الآن، مجموعة من المدققين المسؤولين عن إنشاء المجموعة التالية من المعاملات الصحيحة. بطبيعة الحال، نحن نضمن أن مثل هذه الاختيارات محصنة ضد التلاعب ولا يمكن التنبؤ بها حتى اللحظة الأخيرة، ولكن أيضًا أنها واضحة عالميًا في نهاية المطاف. يعتبر نهج Algorand ديمقراطيًا تمامًا، بمعنى أنه لا من حيث المبدأ ولا من حيث الواقع ينشئ فئات مختلفة من المستخدمين (مثل "عمال المناجم" و"المستخدمين العاديين" في Bitcoin). في Algorand "الكل القوة تكمن في مجموعة جميع المستخدمين. إحدى الخصائص البارزة لـ Algorand هي أن سجل معاملاتها قد يتفرع فقط مع عدد صغير جدًا الاحتمالية (على سبيل المثال، واحد في تريليون، أو حتى 10−18). يمكن لـ Algorand أيضًا معالجة بعض الأمور القانونية والمخاوف السياسية. ينطبق أسلوب Algorand على blockchains وبشكل أعم على أي طريقة لتوليد تسلسل من الكتل لا يمكن التلاعب به. لقد طرحنا في الواقع طريقة جديدة — بديلة لـ و أكثر كفاءة من blockchains — التي قد تكون ذات فائدة مستقلة. 1.1 Bitcoin افتراضات ومشاكل فنية Bitcoin هو نظام مبتكر للغاية وقد ألهم قدرًا كبيرًا من الأبحاث اللاحقة. ومع ذلك، فإنه هو أيضا مشكلة. دعونا نلخص الافتراضات الأساسية والمشاكل الفنية - والتي تتم مشاركتها فعليًا بواسطة جميع العملات المشفرة التي، مثل Bitcoin، تعتمد على proof-of-work. بالنسبة لهذا الملخص، يكفي أن نتذكر أنه في Bitcoin، قد يمتلك المستخدم مفاتيح عامة متعددة لمخطط التوقيع الرقمي، أن الأموال مرتبطة بالمفاتيح العامة، وأن الدفع عبارة عن التوقيع الرقمي الذي ينقل مبلغًا من المال من مفتاح عام إلى آخر. في الأساس، Bitcoin ينظم كافة المدفوعات التي تمت معالجتها في سلسلة من الكتل، B1، B2، . . .، يتكون كل منها من عدة المدفوعات، بحيث يتم أخذ جميع دفعات B1 بأي ترتيب، تليها دفعات B2 بأي ترتيب، وما إلى ذلك، تشكل سلسلة من المدفوعات الصحيحة. يتم إنشاء كل كتلة، في المتوسط، كل 10 دقائق. هذا التسلسل من الكتل هو سلسلة، لأنه منظم بحيث يضمن عدم حدوث أي تغيير، حتى في كتلة واحدة، يتسرب إلى جميع الكتل اللاحقة، مما يسهل اكتشاف أي تغيير تاريخ الدفع. (كما سنرى، يتم تحقيق ذلك من خلال تضمين كل كتلة تشفيرًا hash للبنية السابقة.) ويشار إلى بنية الكتلة هذه باسم blockchain. الافتراض: الأغلبية الصادقة من القوة الحسابية Bitcoin يفترض أنه لا يوجد أي ضرر يتحكم الكيان (ولا تحالف الكيانات الخبيثة المنسقة) في غالبية العمليات الحسابية السلطة المكرسة لمنع الجيل. في الواقع، سيكون مثل هذا الكيان قادرًا على تعديل blockchain،وبالتالي إعادة كتابة تاريخ الدفع، كما يحلو لك. على وجه الخصوص، يمكنها إجراء دفعة \(\wp\)، احصل على الفوائد المدفوعة، ثم "امسح" أي أثر لـ \(\wp\). المشكلة الفنية 1: النفايات الحسابية طريقة Bitcoin proof-of-work للحظر يتطلب التوليد قدرًا غير عادي من الحسابات. حاليا، مع بضع مئات فقط الآلاف من المفاتيح العامة في النظام، لا يمكن لأقوى 500 جهاز كمبيوتر عملاق سوى حشدها مجرد 12.8% من إجمالي القوة الحسابية المطلوبة من مشغلات Bitcoin. هذا سيزداد مقدار العمليات الحسابية بشكل كبير، في حالة انضمام عدد أكبر من المستخدمين إلى النظام بشكل ملحوظ. المشكلة الفنية 2: تركيز الطاقة اليوم، وذلك بسبب كمية هائلة من يتطلب الحساب أن يحاول المستخدم إنشاء كتلة جديدة باستخدام سطح مكتب عادي (ناهيك عن ملف الهاتف الخليوي)، يتوقع أن يخسر المال. في الواقع، لحساب كتلة جديدة باستخدام جهاز كمبيوتر عادي، التكلفة المتوقعة للكهرباء اللازمة لتشغيل الحساب تتجاوز المكافأة المتوقعة. فقط باستخدام مجموعات من أجهزة الكمبيوتر المصممة خصيصًا (والتي لا تفعل شيئًا سوى "استخراج كتل جديدة")، أولاً قد تتوقع تحقيق الربح من خلال إنشاء كتل جديدة. وبناء على ذلك، يوجد اليوم، بحكم الأمر الواقع، اثنان فئات منفصلة من المستخدمين: المستخدمون العاديون، الذين يقومون بالدفع فقط، ومجموعات التعدين المتخصصة، التي تبحث فقط عن كتل جديدة. لذلك لا ينبغي أن يكون مفاجئًا أن إجمالي قوة الحوسبة للكتلة حتى الآونة الأخيرة يقع التوليد ضمن خمسة مجمعات فقط. في مثل هذه الظروف، فإن الافتراض بأن أغلبية القوة الحسابية صادقة تصبح أقل مصداقية. المشكلة الفنية 3: الغموض في Bitcoin، blockchain ليس بالضرورة فريدًا. في الواقع غالبًا ما يكون الجزء الأخير متشعبًا: قد يكون blockchain - على سبيل المثال - B1، . . . ، بك، ب' ك+1، ب' ك+2، وفقًا لـ مستخدم واحد، وB1، . . . ، بك، ب '' ك +1، ب '' ك+2، ب '' ك+3 بحسب مستخدم آخر. إلا بعد عدة كتل لها إذا تمت إضافتها إلى السلسلة، فهل يمكن للمرء أن يكون متأكدًا بشكل معقول من أن الكتل الأولى k + 3 ستكون هي نفسها لجميع المستخدمين. وبالتالي، لا يمكن للمرء الاعتماد على الفور على المدفوعات الواردة في الكتلة الأخيرة من السلسلة. ومن الأفضل الانتظار ومعرفة ما إذا كانت الكتلة قد أصبحت عميقة بما فيه الكفاية في أم لا blockchain وبالتالي فهو مستقر بدرجة كافية. بشكل منفصل، أثيرت أيضًا مخاوف تتعلق بإنفاذ القانون والسياسة النقدية بشأن Bitcoin.1 1.2 Algorand باختصار الإعداد Algorand يعمل في بيئة صعبة للغاية. باختصار، (أ) البيئات المسموح بها وغير المسموح بها. Algorand يعمل بكفاءة وأمان في بيئة غير مسموح بها تمامًا، حيث يُسمح للعديد من المستخدمين بشكل تعسفي بالانضمام إلى النظام في أي وقت، دون أي تدقيق أو إذن من أي نوع. بالطبع، Algorand يعمل حتى أفضل في بيئة مسموح بها. 1قد يتم إساءة استخدام ميزة إخفاء الهوية (الزائفة) التي تقدمها مدفوعات Bitcoin لغسل الأموال و/أو التمويل من الأفراد الإجراميين أو المنظمات الإرهابية. الأوراق النقدية التقليدية أو سبائك الذهب، والتي من حيث المبدأ تقدم الكمال وينبغي أن يشكل عدم الكشف عن هويته نفس التحدي، ولكن الطبيعة المادية لهذه العملات تؤدي إلى إبطاء تدفق الأموال بشكل كبير عمليات النقل، وذلك للسماح بدرجة معينة من المراقبة من قبل وكالات إنفاذ القانون. تعد القدرة على "طباعة النقود" إحدى القوى الأساسية للدولة القومية. من حيث المبدأ، لذلك، ضخمة واعتماد عملة معومة بشكل مستقل قد يحد من هذه السلطة. ومع ذلك، في الوقت الحالي، Bitcoin أبعد ما يكون عن الوجود وهو يشكل تهديداً للسياسات النقدية الحكومية، ونظراً لمشاكل قابلية التوسع، فقد لا يكون كذلك أبداً.(ب) البيئات شديدة الخصومة. Algorand يقاوم خصمًا قويًا جدًا، من يستطيع ذلك (1) إتلاف أي مستخدم يريده على الفور، في أي وقت يريده، بشرط أن يكون ذلك في بيئة غير مسموح بها، ثلثي الأموال الموجودة في النظام مملوكة للمستخدم الصادق. (في أ بيئة مرخصة، بغض النظر عن المال، يكفي أن يكون ثلثا المستخدمين صادقين.) (2) السيطرة الكاملة والتنسيق التام على جميع المستخدمين الفاسدين؛ و (3) جدولة تسليم كافة الرسائل، على أن تكون كل رسالة مرسلة من قبل مستخدم صادق يصل إلى 95% من المستخدمين الصادقين خلال فترة زمنية μm، والتي تعتمد فقط على حجم m. الخصائص الرئيسية على الرغم من وجود خصمنا القوي، في Algorand • مقدار الحساب المطلوب هو الحد الأدنى. في الأساس، بغض النظر عن عدد المستخدمين الموجود في النظام، يجب على كل مستخدم من ألف وخمسمائة مستخدم أن يؤدي بضع ثوانٍ على الأكثر حساب. • يتم إنشاء كتلة جديدة في أقل من 10 دقائق، ولن تترك أبدًا blockchain بحكم الأمر الواقع. على سبيل المثال، في حالة التوقع، يكون الوقت اللازم لإنشاء كتلة في النموذج الأول أقل من Λ + 12.4\(\alpha\)، حيث Λ هو الوقت اللازم لنشر الكتلة، في ثرثرة نظير إلى نظير الموضة، بغض النظر عن حجم الكتلة التي قد يختارها المرء، و lect هو الوقت المناسب لنشر 1500 رسالة 200Blong. (نظرًا لأنه في النظام اللامركزي حقًا، Λ هو في الأساس زمن انتقال جوهري، في Algorand العامل المحدد في إنشاء الكتلة هو سرعة الشبكة.) التجسيد الثاني له في الواقع تم اختباره تجريبيًا (بواسطة؟)، مما يشير إلى أنه تم إنشاء الكتلة في أقل من 40 ثواني. بالإضافة إلى ذلك، قد يحدث تفرع لـ Algorand blockchain فقط مع احتمال ضئيل (أي أقل من واحد في تريليون)، وبالتالي يمكن للمستخدمين الاعتماد على المدفوعات الواردة في كتلة جديدة بمجرد تظهر الكتلة. • كل السلطة تكمن في المستخدمين أنفسهم. Algorand هو نظام موزع حقيقي. على وجه الخصوص، لا توجد كيانات خارجية (مثل "المعدنين" في Bitcoin)، يمكنها التحكم في المعاملات يتم التعرف عليها. تقنيات Algorand. 1. بروتوكول اتفاقية بيزنطية جديدة وسريعة. Algorand ينشئ كتلة جديدة عبر بروتوكول جديد للتشفير، وتمرير الرسائل، واتفاقية بيزنطية ثنائية (BA)، BA⋆. بروتوكول لا يلبي بعض الخصائص الإضافية فقط (التي سنناقشها قريبًا)، ولكنه أيضًا سريع جدًا. بشكل تقريبي، تتكون نسخة الإدخال الثنائي من حلقة مكونة من 3 خطوات، حيث يرسل اللاعب رسالة واحدة أرسل رسالة إلى جميع اللاعبين الآخرين. يتم تنفيذها في شبكة كاملة ومتزامنة، مع المزيد أكثر من ثلثي اللاعبين صادقين، مع احتمال > 1/3، بعد كل حلقة ينتهي البروتوكول فيها اتفاق. (نؤكد على أن البروتوكول يلبي التعريف الأصلي للاتفاقية البيزنطية من Pease وShostak وLamport [31]، دون أي إضعاف.) يستفيد Algorand من بروتوكول BA الثنائي هذا للتوصل إلى اتفاق في اتصالاتنا المختلفة نموذج، على كل كتلة جديدة. يتم بعد ذلك التصديق على الكتلة المتفق عليها عبر عدد محدد من التوقيع الرقمي للمحققين المناسبين، ونشره عبر الشبكة. 2. فرز التشفير. على الرغم من أنه سريع جدًا، إلا أن البروتوكول BA⋆ سيستفيد من المزيد السرعة عندما يلعبها ملايين المستخدمين. وبناء على ذلك، Algorand يختار لاعبي BA⋆ ليكونوامجموعة فرعية أصغر بكثير من مجموعة جميع المستخدمين. لتجنب نوع مختلف من تركيز السلطة المشكلة، سيتم إنشاء كل كتلة جديدة Br والاتفاق عليها، من خلال تنفيذ جديد لـ BA⋆، بواسطة مجموعة منفصلة من المحققين المختارين، SV r. من حيث المبدأ، قد يكون اختيار مثل هذه المجموعة أمرًا صعبًا اختيار Br مباشرة. نحن نجتاز هذه المشكلة المحتملة من خلال نهج نطلق عليه اسم "الاحتضان". الاقتراح الثاقب لموريس هيرليهي، فرز التشفير. الفرز هو ممارسة اختيار المسؤولين بشكل عشوائي من مجموعة كبيرة من الأفراد المؤهلين [6]. (تم ممارسة الفرز عبر القرون: على سبيل المثال، من قبل جمهوريات أثينا وفلورنسا والبندقية. في القضاء الحديث في الأنظمة، غالبًا ما يُستخدم الاختيار العشوائي لاختيار هيئة المحلفين. كما تم أخذ عينات عشوائية في الآونة الأخيرة دعا إلى الانتخابات ديفيد شوم [9].) في النظام اللامركزي، بالطبع، اختيار تعتبر العملات المعدنية العشوائية اللازمة لاختيار أعضاء كل مجموعة تحقق بشكل عشوائي (SV r) مشكلة. وبالتالي فإننا نلجأ إلى التشفير من أجل اختيار كل مجموعة من أدوات التحقق من مجموعة جميع المستخدمين، بطريقة مضمونة لتكون تلقائية (أي لا تتطلب تبادل الرسائل) وعشوائية. في الأساس، نستخدم وظيفة تشفير لتحديد الكتلة السابقة تلقائيًا Br−1، المستخدم، القائد، المسؤول عن اقتراح الكتلة الجديدة Br، ومجموعة المدقق SV r، في تهمة التوصل إلى اتفاق بشأن الكتلة التي اقترحها الزعيم. نظرًا لأن المستخدمين الضارين يمكن أن يؤثروا تكوين Br−1 (على سبيل المثال، عن طريق اختيار بعض دفعاته)، نقوم ببنائه واستخدامه بشكل خاص مدخلات إضافية لإثبات أن قائد الكتلة r ومجموعة التحقق SV r موجودان بالفعل تم اختياره عشوائيا. 3. الكمية (البذرة) ريال قطري. نستخدم الكتلة الأخيرة Br−1 في blockchain من أجل يحدد تلقائيا مجموعة التحقق التالية والقائد المسؤول عن بناء الكتلة الجديدة ر. التحدي الذي يواجه هذا النهج هو أنه بمجرد اختيار دفعة مختلفة قليلاً في في الجولة السابقة، يكتسب خصمنا القوي سيطرة هائلة على القائد التالي. حتى لو كان يتحكم فقط في 1/1000 من اللاعبين/الأموال في النظام، ويمكنه التأكد من أن جميع القادة كذلك ضارة. (راجع قسم الحدس 4.1.) يعد هذا التحدي أساسيًا لجميع أساليب proof-of-stake، وعلى حد علمنا، لم يتم حل المشكلة بشكل مرضٍ حتى الآن. ولمواجهة هذا التحدي، قمنا عمدًا ببناء نظام منفصل وبعناية وتحديثه باستمرار كمية محددة، Qr، والتي من المؤكد أنها ليست فقط غير قابلة للتنبؤ، ولكنها أيضًا غير قابلة للتأثير من خلال معرفتنا. خصم قوي. قد نشير إلى Qr باعتباره البذرة r، حيث أنه من Qr الذي يختاره Algorand، عبر فرز التشفير السري، سيلعب جميع المستخدمين دورًا خاصًا في إنشاء ملف كتلة ر. 4. الفرز السري للتشفير وبيانات الاعتماد السرية. عشوائياً وبشكل لا لبس فيه استخدام الكتلة الأخيرة الحالية، Br−1، من أجل اختيار مجموعة التحقق والقائد المسؤول بناء الكتلة الجديدة، Br، ليس كافيا. بما أنه يجب معرفة Br−1 قبل إنشاء Br، يجب أن تكون الكمية الأخيرة غير المؤثرة Qr−1 الموجودة في Br−1 معروفة أيضًا. وفقا لذلك، لذلك هم القائمون على التحقق والقائد المسؤول عن حساب الكتلة Br. وهكذا، خصمنا القوي قد يفسدهم جميعًا على الفور، قبل أن ينخرطوا في أي نقاش حول Br، حتى يحصلوا على السيطرة الكاملة على الكتلة التي يشهدون عليها. ولمنع حدوث هذه المشكلة، يعرف القادة (والمسؤولون عن التحقق أيضًا) سرًا عن دورهم، لكن يمكنهم فعل ذلك حساب بيانات الاعتماد المناسبة، القادرة على إثبات كل من لديه هذا الدور بالفعل. متى يدرك المستخدم سرًا أنه قائد الكتلة التالية، فيقوم أولاً بتجميع مجموعته سرًا الكتلة الجديدة المقترحة الخاصة به، ثم ينشرها (بحيث يمكن التصديق عليها) مع كتلته الخاصة بيانات الاعتماد. بهذه الطريقة، على الرغم من أن الخصم سيدرك على الفور من هو القائد التالي الكتلة موجودة، وعلى الرغم من أنه يستطيع إفساده على الفور، إلا أنه سيكون قد فات الأوان على الخصم أن يفعل ذلك التأثير على اختيار كتلة جديدة. في الواقع، لم يعد بإمكانه "الرد" على رسالة القائدمن أن تتمكن حكومة قوية من إعادة الرسالة التي انتشرت بسرعة عبر موقع ويكيليكس إلى القمقم. وكما سنرى، لا يمكننا أن نضمن تفرد القائد، ولا أن يكون الجميع متأكدين من هو القائد هو، بما في ذلك الزعيم نفسه! ولكن، في Algorand، سيتم ضمان التقدم الذي لا لبس فيه. 5. إمكانية استبدال اللاعب. وبعد أن يقترح كتلة جديدة، قد "يموت" القائد أيضًا (أو يموت). أفسده الخصم)، لأن مهمته قد انتهت. لكن بالنسبة للمحققين في SV r، فالأمور أقل بسيط. في الواقع، كونه مسؤولاً عن التصديق على الكتلة الجديدة Br بعدد كاف من التوقيعات، يجب عليهم أولاً تنفيذ الاتفاق البيزنطي بشأن الكتلة التي يقترحها القائد. المشكلة هي أن، بغض النظر عن مدى كفاءتها، تتطلب BA خطوات متعددة وأمانة > 2/3 من لاعبيها. هذه مشكلة، لأنه، لأسباب تتعلق بالكفاءة، تتكون مجموعة المشغلات من BA⋆ من المجموعة الصغيرة SV r تم اختياره عشوائيًا من بين مجموعة جميع المستخدمين. وهكذا، فإن خصمنا القوي، على الرغم من عدم قدرته على ذلك فاسد 1/3 من جميع المستخدمين، يمكنه بالتأكيد إفساد جميع أعضاء SV r! لحسن الحظ، سنثبت أن البروتوكول BA⋆، الذي يتم تنفيذه عن طريق نشر الرسائل بطريقة نظير إلى نظير، يمكن استبداله بواسطة اللاعب. هذا الشرط الجديد يعني أن البروتوكول بشكل صحيح و يصل إلى الإجماع بكفاءة حتى لو تم تنفيذ كل خطوة من خطواته بطريقة جديدة تمامًا وعشوائية وتم اختيار مجموعة من اللاعبين بشكل مستقل. وهكذا، مع الملايين من المستخدمين، كل مجموعة صغيرة من اللاعبين المرتبطة بخطوة BA⋆ على الأرجح تحتوي على تقاطع فارغ مع المجموعة التالية. بالإضافة إلى ذلك، من المحتمل أن تكون مجموعات اللاعبين ذوي الخطوات المختلفة لـ BA مختلفة تمامًا أصل. علاوة على ذلك، فإن أعضاء كل مجموعة لا يعرفون من ستكون المجموعة التالية من اللاعبين كن، ولا تمر سرا بأي حالة داخلية. تعد خاصية اللاعب القابل للاستبدال أمرًا بالغ الأهمية لهزيمة الديناميكية والقوية جدًا العدو الذي نتصوره. نعتقد أن بروتوكولات اللاعب القابل للاستبدال ستكون حاسمة في الكثير السياقات والتطبيقات. وعلى وجه الخصوص، سيكون لها دور حاسم في تنفيذ البروتوكولات الفرعية الصغيرة بشكل آمن جزء لا يتجزأ من عالم أكبر من اللاعبين الذين لديهم خصم ديناميكي قادر على إفساد حتى جزء صغير من إجمالي اللاعبين، ليس لديه صعوبة في إفساد جميع اللاعبين في الأصغر البروتوكول الفرعي. خاصية/تقنية إضافية: الصدق الكسول المستخدم الصادق يتبع تعليماته التعليمات، والتي تتضمن الاتصال بالإنترنت وتشغيل البروتوكول. نظرًا لأن Algorand لديه متواضع فقط متطلبات الحساب والاتصال، والبقاء على الإنترنت وتشغيل البروتوكول "في "الخلفية" ليست تضحية كبيرة. وبطبيعة الحال، هناك عدد قليل من "الغيابات" بين اللاعبين الشرفاء، مثل هؤلاء بسبب فقدان الاتصال المفاجئ أو الحاجة إلى إعادة التشغيل، يتم التسامح معها تلقائيًا (لأن يمكننا دائمًا اعتبار هؤلاء اللاعبين القلائل ضارين مؤقتًا). ولكن دعونا نشير، أن Algorand يمكن تعديله ببساطة للعمل في نموذج جديد، حيث يكون المستخدمون الصادقون غير متصل في معظم الأوقات. يمكن تقديم نموذجنا الجديد بشكل غير رسمي على النحو التالي. الصدق كسول. بشكل تقريبي، يكون المستخدم كسولًا ولكن صادقًا إذا (1) اتبع جميع تعليماته التعليمات، عندما يُطلب منه المشاركة في البروتوكول، و(2) يُطلب منه المشاركة نادراً ما يتم الالتزام بالبروتوكول، وبإشعار مسبق مناسب. مع مثل هذا المفهوم المريح للصدق، قد نكون أكثر ثقة في أن الأشخاص الصادقين سيكونون كذلك في متناول اليد عندما نحتاج إليها، ويضمن Algorand أنه، في هذه الحالة، يعمل النظام بشكل آمن حتى لو، في وقت معين، غالبية اللاعبين المشاركين ضارون.1.3 العمل ذو الصلة الوثيقة تعتبر أساليب إثبات العمل (مثل [29] و[4]) متعامدة تمامًا مع أساليبنا. كذلك هم الأساليب القائمة على الاتفاق البيزنطي لتمرير الرسائل أو التسامح العملي مع الخطأ البيزنطي (مثل المذكور [8]). في الواقع، لا يمكن تشغيل هذه البروتوكولات بين مجموعة جميع المستخدمين ولا يمكن، في نموذجنا، يقتصر على مجموعة صغيرة مناسبة من المستخدمين. في الواقع، خصمنا القوي قم بإفساد جميع المستخدمين المشاركين في مجموعة صغيرة مكلفة بتشغيل بروتوكول مكتبة الإسكندرية على الفور. يمكن اعتبار نهجنا متعلقًا بإثبات الحصة [2]، بمعنى أن "قوة" المستخدمين في بناء الكتل يتناسب مع الأموال التي يمتلكونها في النظام (على عكس - على سبيل المثال - إلى الأموال التي وضعوها في "الضمان"). الورقة الأقرب إلينا هي نموذج الإجماع النعسان لباس وشي [30]. لتجنب العمليات الحسابية الثقيلة المطلوبة في نهج proof-of-work، تعتمد ورقتهم على (ويرجى الاعتمادات) فرز التشفير السري لـ Algorand. مع هذا الجانب الحاسم المشترك، عدة توجد اختلافات كبيرة بين أوراقنا. على وجه الخصوص، (١) لا يجوز ضبطها إلا مأذونا بها. على النقيض من ذلك، Algorand هو أيضًا نظام غير مسموح به. (2) يستخدمون بروتوكولًا على طراز ناكاموتو، وبالتالي blockchain شوكاتهم بشكل متكرر. على الرغم من الاستغناء عن proof-of-work، في بروتوكولهم يُطلب من القائد المختار سرًا إطالة الأطول صلاحية (بمعنى أكثر ثراءً) blockchain. وبالتالي، لا يمكن تجنب الشوكات ويجب على المرء أن ينتظر ذلك فالكتلة "عميقة" بشكل كافٍ في السلسلة. في الواقع، لتحقيق أهدافهم مع الخصم قادرة على الفساد التكيفي، فهي تتطلب أن تكون الكتلة عميقة متعدد (N)، حيث تمثل N إجمالي عدد المستخدمين في النظام. لاحظ أنه حتى على افتراض إمكانية إنتاج كتلة في دقيقة واحدة، إذا كان هناك N = 1M مستخدم، فسيتعين على المرء الانتظار لمدة 2 مليون سنة تقريبًا كتلة لتصبح N2-deep، ولمدة عامين تقريبًا حتى تصبح الكتلة N-deep. على النقيض من ذلك، تشعبات Algorand blockchain فقط مع احتمال ضئيل، على الرغم من أن الخصم فاسد المستخدمين بشكل فوري وقابل للتكيف، ويمكن الاعتماد على كتله الجديدة على الفور. (3) لا يتعاملون مع الاتفاقيات البيزنطية الفردية. بمعنى أنهم يضمنون فقط "الإجماع النهائي على سلسلة متزايدة من القيم". إن بروتوكولهم هو بروتوكول النسخ المتماثل للدولة، بدلاً من ذلك من درجة البكالوريوس، ولا يمكن استخدامها للتوصل إلى اتفاق بيزنطي بشأن قيمة الفائدة الفردية. على النقيض من ذلك، يمكن أيضًا استخدام Algorand مرة واحدة فقط، إذا رغبت في ذلك، لتمكين الملايين من المستخدمين من التوصل إلى اتفاق بيزنطي بشأن قيمة محددة للفائدة. (4) أنها تتطلب ساعات متزامنة بشكل ضعيف. وهذا يعني أن ساعات جميع المستخدمين يتم تعويضها بوقت صغير δ. على النقيض من ذلك، في Algorand، تحتاج الساعات فقط (بشكل أساسي) إلى نفس "السرعة". (5) يعمل بروتوكولهم مع مستخدمين كسالى لكن صادقين أو مع أغلبية صادقة من مستخدمي الإنترنت. إنهم ينسبون الفضل إلى Algorand لإثارة مسألة المستخدمين الصادقين الذين ليسوا متصلين بالإنترنت بشكل جماعي، ول طرح نموذج الصدق الكسول في الرد. بروتوكولهم لا يعمل فقط في الكسالى نموذج الصدق، ولكن أيضًا في نموذجهم الخصامي النعاس، حيث يختار الخصم المستخدمين متصلين بالإنترنت وغير متصلين بالإنترنت، بشرط أن يكون غالبية مستخدمي الإنترنت صادقين في جميع الأوقات 2النسخة الأصلية من ورقتهم لم تأخذ في الاعتبار سوى الأمان في نموذجهم العدائي الهادئ. ال النسخة الأصلية من Algorand، والتي تسبق نسختهم، تتصور صراحة أيضًا افتراض أن أغلبية معينة من اللاعبون عبر الإنترنت دائمًا ما يكونون صادقين، لكنهم استبعدوه صراحةً من الاعتبار، لصالح نموذج الصدق الكسول. (على سبيل المثال، إذا اختار نصف المستخدمين الصادقين في وقت ما عدم الاتصال بالإنترنت، فإن غالبية المستخدمين عبر الإنترنت قد تكون ضارة جدًا. وبالتالي، لمنع حدوث ذلك، يجب على الخصم أن يجبر معظم قواته اللاعبين الفاسدين ليخرجوا عن الخط أيضًا، وهو ما يتعارض بشكل واضح مع مصلحته الخاصة.) لاحظ أن البروتوكول ذو الأغلبية من اللاعبين الكسالى ولكن الصادقين يعمل بشكل جيد إذا كان غالبية المستخدمين عبر الإنترنت ضارين دائمًا. هذا هو الحال، لأن إن عددًا كافيًا من اللاعبين الشرفاء، الذين يعلمون أنهم سيكونون حاسمين في وقت ما نادرًا، سوف ينتخبون ألا يخرجوا عن الخط في تلك اللحظات، ولا يمكن أن يجبرهم الخصم على الخروج من الخط، لأنه لا يعرف من قد يكون اللاعبون الصادقون حاسمين.(6) أنها تتطلب أغلبية صادقة بسيطة. على النقيض من ذلك، يتطلب الإصدار الحالي من Algorand أغلبية صادقة بنسبة 2/3. ورقة بحثية أخرى قريبة منا هي Ouroboros: بروتوكول Blockchain لإثبات الملكية الآمن والمثبت، بواسطة كيياس، راسل، ديفيد، وأولينيكوف [20]. كما ظهر نظامهم بعد نظامنا. إنه أيضًا يستخدم فرز التشفير للاستغناء عن إثبات العمل بطريقة يمكن إثباتها. ومع ذلك، بهم النظام هو، مرة أخرى، بروتوكول على طراز ناكاموتو، حيث تكون التفرعات متكررة ولا يمكن تجنبها. (ومع ذلك، في نموذجهم، لا تحتاج الكتل إلى عمق نموذج الإجماع الهادئ). علاوة على ذلك، يعتمد نظامهم على الافتراضات التالية: على حد تعبير المؤلفين أنفسهم، “(1) ال الشبكة متزامنة للغاية، (2) غالبية أصحاب المصلحة المختارين متاحون حسب الحاجة للمشاركة في كل عصر، (3) لا يظل أصحاب المصلحة غير متصلين بالإنترنت لفترات طويلة من الزمن، (4) تخضع قدرة التكيف مع الفساد إلى تأخير بسيط يتم قياسه بجولات خطية المعلمة الأمنية." على النقيض من ذلك، فإن Algorand، مع احتمالية ساحقة، خالية من التشعبات، و لا يعتمد على أي من هذه الافتراضات الأربعة. على وجه الخصوص، في Algorand، يستطيع الخصم القيام بذلك يفسد المستخدمين الذين يريد السيطرة عليهم على الفور.

การแนะนำ

เงินกลายเป็นเสมือนจริงมากขึ้น มีการประเมินว่าประมาณ 80% ของประเทศสหรัฐอเมริกา ดอลลาร์ในวันนี้มีอยู่เป็นรายการบัญชีแยกประเภทเท่านั้น [5] เครื่องมือทางการเงินอื่นๆ เป็นไปตามนั้น ในโลกอุดมคติ ซึ่งเราสามารถพึ่งพาเอนทิตีศูนย์กลางที่เชื่อถือได้ในระดับสากล นั่นคือภูมิคุ้มกัน สำหรับการโจมตีทางไซเบอร์ที่เป็นไปได้ทั้งหมด เงินและธุรกรรมทางการเงินอื่น ๆ อาจเป็นแบบอิเล็กทรอนิกส์เท่านั้น น่าเสียดายที่เราไม่ได้อยู่ในโลกเช่นนี้ ดังนั้น cryptocurrencies แบบกระจายอำนาจเช่นนี้ เนื่องจาก Bitcoin [29] และระบบ “smart contract” เช่น Ethereum ได้รับการเสนอ [4] ณ หัวใจสำคัญของระบบเหล่านี้คือบัญชีแยกประเภทที่ใช้ร่วมกันซึ่งบันทึกลำดับธุรกรรมได้อย่างน่าเชื่อถือ ∗นี่เป็นรายงาน ArXiv เวอร์ชันที่เป็นทางการมากกว่า (และอะซิงโครนัส) โดยผู้เขียนคนที่สอง [24] บทความ อิงตามของ Gorbunov และ Micali [18] เทคโนโลยีของ Algorand มีวัตถุประสงค์ดังต่อไปนี้ การยื่นขอรับสิทธิบัตร: US62/117,138 US62/120,916 US62/142,318 US62/218,817 US62/314,601 PCT/US2016/018300 US62/326,865 62/331,654 US62/333,340 US62/343,369 US62/344,667 US62/346,775 US62/351,011 US62/653,482 US62/352,195 US62/363,970 US62/369,447 US62/378,753 US62/383,299 US62/394,091 US62/400,361 US62/403,403 US62/410,721 US62/416,959 US62/422,883 US62/455,444 US62/458,746 US62/459,652 US62/460,928 US62/465,931แตกต่างกันไปตามการชำระเงินและสัญญา ในลักษณะป้องกันการปลอมแปลง เทคโนโลยีทางเลือกในการ รับประกันการงัดแงะดังกล่าวคือ blockchain Blockchains อยู่เบื้องหลังแอปพลิเคชันเช่น สกุลเงินดิจิตอล [29] แอปพลิเคชันทางการเงิน [4] และอินเทอร์เน็ตของสรรพสิ่ง [3] เทคนิคหลายประการ เพื่อจัดการบัญชีแยกประเภทตาม blockchain ได้รับการเสนอ: หลักฐานการทำงาน [29], หลักฐานการมีส่วนร่วม [2], ความทนทานต่อความผิดพลาดของไบแซนไทน์ในทางปฏิบัติ [8] หรือการรวมกันบางอย่าง อย่างไรก็ตาม ในปัจจุบัน บัญชีแยกประเภทอาจไม่มีประสิทธิภาพในการจัดการ ตัวอย่างเช่น Bitcoin ของ proof-of-work วิธีการ (ตามแนวคิดดั้งเดิมของ [14]) ต้องใช้การคำนวณจำนวนมาก สิ้นเปลือง และปรับขนาดได้ไม่ดี [1] นอกจากนี้โดยพฤตินัยแล้ว มันยังรวมพลังไว้ในมือเพียงไม่กี่คนเท่านั้น ดังนั้นเราจึงต้องการที่จะนำเสนอวิธีการใหม่ในการดำเนินการบัญชีแยกประเภทสาธารณะที่นำเสนอ ความสะดวกและประสิทธิภาพของระบบรวมศูนย์ที่ดำเนินการโดยหน่วยงานที่เชื่อถือได้และไม่อาจขัดขืนได้ โดยไม่มี ความไร้เหตุผลและจุดอ่อนของการใช้งานแบบกระจายอำนาจในปัจจุบัน เราเรียกแนวทางของเรา Algorand เนื่องจากเราใช้การสุ่มอัลกอริทึมในการเลือก โดยอิงจากบัญชีแยกประเภทที่สร้างขึ้นจนถึงตอนนี้ ชุดของผู้ตรวจสอบที่รับผิดชอบในการสร้างบล็อกถัดไปของธุรกรรมที่ถูกต้อง โดยธรรมชาติแล้ว เรารับรองว่าการเลือกดังกล่าวได้รับการยกเว้นจากการบิดเบือนและคาดเดาไม่ได้จนกว่าจะพิสูจน์ได้ นาทีสุดท้ายแต่ท้ายที่สุดแล้วพวกเขาก็ชัดเจนในระดับสากลด้วย แนวทางของ Algorand ค่อนข้างเป็นประชาธิปไตย ในแง่ที่ว่าไม่ว่าจะในหลักการหรือโดยพฤตินัยก็ตาม สร้างคลาสที่แตกต่างกันของผู้ใช้ (เป็น “คนงานเหมือง” และ “ผู้ใช้ทั่วไป” ใน Bitcoin) ใน Algorand “ทั้งหมด อำนาจย่อมอยู่กับกลุ่มผู้ใช้ทุกคน” คุณสมบัติที่โดดเด่นอย่างหนึ่งของ Algorand คือประวัติการทำธุรกรรมอาจแยกได้เพียงเล็กน้อยเท่านั้น ความน่าจะเป็น (เช่น หนึ่งในล้านล้าน นั่นคือ หรือแม้กระทั่ง 10−18) Algorand สามารถแก้ไขปัญหาทางกฎหมายบางประการได้เช่นกัน และความกังวลทางการเมือง วิธีการ Algorand นำไปใช้กับ blockchains และโดยทั่วไปกับวิธีการใด ๆ ของการสร้าง ลำดับของบล็อกป้องกันการงัดแงะ จริงๆ แล้วเราได้เสนอวิธีการใหม่ —ทางเลือกของ และ มีประสิทธิภาพมากกว่า blockchains— ที่อาจเป็นที่สนใจโดยอิสระ 1.1 Bitcoin ข้อสันนิษฐานและปัญหาทางเทคนิค Bitcoin เป็นระบบที่ชาญฉลาดมากและเป็นแรงบันดาลใจให้กับการวิจัยในภายหลังจำนวนมาก ยังไงก็ตาม ก็เป็นปัญหาเช่นกัน ให้เราสรุปสมมติฐานพื้นฐานและปัญหาทางเทคนิค—ซึ่ง จริงๆ แล้วมีการแชร์โดยสกุลเงินดิจิทัลทั้งหมดซึ่งเหมือนกับ Bitcoin อิงตาม proof-of-work สำหรับการสรุปนี้ ควรจำไว้ว่าใน Bitcoin ผู้ใช้อาจเป็นเจ้าของกุญแจสาธารณะหลายอัน ของรูปแบบลายเซ็นดิจิทัล เงินนั้นเชื่อมโยงกับกุญแจสาธารณะ และการชำระเงินคือ ลายเซ็นดิจิทัลที่โอนเงินจำนวนหนึ่งจากคีย์สาธารณะหนึ่งไปยังอีกคีย์หนึ่ง โดยพื้นฐานแล้ว Bitcoin จัดระเบียบการชำระเงินที่ประมวลผลแล้วทั้งหมดในบล็อก B1, B2, . . แต่ละอันประกอบด้วยหลายรายการ การชำระเงิน โดยที่การชำระเงินทั้งหมดของ B1 ดำเนินการในลำดับใดๆ ตามด้วยการชำระเงินของ B2 ในลำดับใดๆ ฯลฯ ถือเป็นลำดับการชำระเงินที่ถูกต้อง แต่ละบล็อกจะถูกสร้างขึ้นโดยเฉลี่ยทุกๆ 10 นาที ลำดับของบล็อกนี้เป็นลูกโซ่ เนื่องจากมีโครงสร้างเพื่อให้แน่ใจว่ามีการเปลี่ยนแปลงใดๆ ก็ตาม ในบล็อกเดียว จะแทรกซึมเข้าไปในบล็อกต่อๆ ไปทั้งหมด ทำให้ง่ายต่อการมองเห็นการเปลี่ยนแปลงใดๆ ประวัติการชำระเงิน (ดังที่เราจะได้เห็น สิ่งนี้สามารถทำได้โดยการรวมการเข้ารหัสไว้ในแต่ละบล็อก hash จากอันก่อนหน้า) โครงสร้างบล็อกดังกล่าวเรียกว่า blockchain ข้อสันนิษฐาน: พลังการคำนวณส่วนใหญ่ที่ซื่อสัตย์ Bitcoin ถือว่าไม่มีอันตราย เอนทิตี (หรือแนวร่วมของเอนทิตีที่เป็นอันตรายที่ประสานงานกัน) ควบคุมการประมวลผลส่วนใหญ่ พลังที่อุทิศให้กับการสร้างบล็อก ที่จริงแล้ว เอนทิตีดังกล่าวจะสามารถแก้ไข blockchain,และเขียนประวัติการชำระเงินใหม่ตามต้องการ โดยเฉพาะอย่างยิ่งมันสามารถชำระเงินได้ \(\wp\) รับผลประโยชน์ที่จ่ายไป จากนั้น "ลบ" ร่องรอยใดๆ ของ \(\wp\) ปัญหาทางเทคนิค 1: ขยะทางคอมพิวเตอร์ Bitcoin proof-of-work วิธีการบล็อก การสร้างต้องใช้การคำนวณจำนวนมากเป็นพิเศษ ปัจจุบันมีเพียงไม่กี่ร้อยเท่านั้น พับลิกคีย์นับพันในระบบ ซูเปอร์คอมพิวเตอร์ที่ทรงพลังที่สุด 500 อันดับแรกทำได้เพียงรวบรวมเท่านั้น เพียงร้อยละ 12.8% ของพลังการคำนวณทั้งหมดที่ต้องการจากผู้เล่น Bitcoin นี้ ปริมาณการคำนวณจะเพิ่มขึ้นอย่างมาก หากมีผู้ใช้เข้าร่วมระบบมากขึ้นอย่างมีนัยสำคัญ ปัญหาทางเทคนิค 2: ความเข้มข้นของพลัง วันนี้เนื่องจากมีปริมาณมากเกินไป ต้องใช้การคำนวณ ผู้ใช้พยายามสร้างบล็อกใหม่โดยใช้เดสก์ท็อปธรรมดา (ไม่ต้องพูดถึง a โทรศัพท์มือถือ) คาดว่าจะสูญเสียเงิน แท้จริงแล้ว สำหรับการคำนวณบล็อกใหม่ด้วยคอมพิวเตอร์ธรรมดา ค่าใช้จ่ายที่คาดหวังของไฟฟ้าที่จำเป็นในการคำนวณเกินกว่ารางวัลที่คาดหวัง ใช้เฉพาะกลุ่มคอมพิวเตอร์ที่สร้างขึ้นเป็นพิเศษ (ซึ่งไม่ทำอะไรเลยนอกจาก "ขุดบล็อกใหม่") หนึ่งเครื่อง อาจคาดหวังการทำกำไรจากการสร้างบล็อกใหม่ ดังนั้น วันนี้จึงมีสองโดยพฤตินัย คลาสของผู้ใช้ที่แยกจากกัน: ผู้ใช้ทั่วไปที่ชำระเงินเท่านั้น และกลุ่มการขุดเฉพาะ ที่ค้นหาเฉพาะบล็อกใหม่เท่านั้น ดังนั้นจึงไม่น่าแปลกใจเลยที่เมื่อเร็ว ๆ นี้ พลังการประมวลผลทั้งหมดสำหรับบล็อก รุ่นอยู่ในกลุ่มเพียงห้ากลุ่ม ในสภาวะดังกล่าวให้สันนิษฐานว่าส่วนใหญ่ พลังการคำนวณที่ซื่อสัตย์จะน่าเชื่อถือน้อยลง ปัญหาทางเทคนิค 3: ความคลุมเครือ ใน Bitcoin blockchain ไม่จำเป็นต้องซ้ำกัน แน่นอน ส่วนล่าสุดมักจะแยก: blockchain อาจเป็น —say— B1, . . . , บีเค, บี′ k+1, บี′ k+2 ตาม ผู้ใช้หนึ่งรายและ B1, . . . , บีเค, บี'' k+1, บี'' k+2, บี'' k+3 ตามผู้ใช้รายอื่น หลังจากผ่านไปหลายบล็อคแล้ว เมื่อเพิ่มเข้าไปในลูกโซ่แล้ว จะแน่ใจได้อย่างไรว่าบล็อก k + 3 แรกจะเหมือนกัน สำหรับผู้ใช้ทุกคน ดังนั้นจึงไม่มีใครสามารถพึ่งพาการชำระเงินที่อยู่ในบล็อกสุดท้ายของได้ทันที ห่วงโซ่ ควรระมัดระวังมากกว่าที่จะรอดูว่าบล็อกนั้นลึกลงไปในนั้นหรือไม่ blockchain และมีเสถียรภาพเพียงพอ นอกจากนี้ ยังมีการหยิบยกข้อกังวลเกี่ยวกับการบังคับใช้กฎหมายและนโยบายการเงินเกี่ยวกับ Bitcoin.1 อีกด้วย 1.2 Algorand โดยสรุป การตั้งค่า Algorand ทำงานในสภาวะที่ยากลำบากมาก สั้นๆ, (a) สภาพแวดล้อมที่ไม่ได้รับอนุญาตและได้รับอนุญาต Algorand ทำงานได้อย่างมีประสิทธิภาพและปลอดภัย ในสภาพแวดล้อมที่ไม่ได้รับอนุญาตโดยสิ้นเชิง ซึ่งผู้ใช้จำนวนมากได้รับอนุญาตให้เข้าร่วมโดยพลการ ได้ตลอดเวลา โดยไม่ต้องมีการตรวจสอบหรืออนุญาตใดๆ แน่นอนว่า Algorand ได้ผล ดียิ่งขึ้นในสภาพแวดล้อมที่ได้รับอนุญาต 1การไม่เปิดเผยตัวตน (หลอก) ที่นำเสนอโดย Bitcoin การชำระเงินอาจถูกนำไปใช้ในทางที่ผิดเพื่อการฟอกเงินและ/หรือการจัดหาเงินทุน ของอาชญากรหรือองค์กรก่อการร้าย ธนบัตรหรือทองคำแท่งแบบดั้งเดิมซึ่งโดยหลักการแล้วสมบูรณ์แบบ การไม่เปิดเผยตัวตนควรก่อให้เกิดความท้าทายเช่นเดียวกัน แต่ลักษณะทางกายภาพของสกุลเงินเหล่านี้ทำให้เงินช้าลงอย่างมาก การโอนเพื่อให้สามารถติดตามตรวจสอบโดยหน่วยงานบังคับใช้กฎหมายได้ในระดับหนึ่ง ความสามารถในการ “พิมพ์เงิน” เป็นหนึ่งในอำนาจขั้นพื้นฐานของรัฐชาติ โดยหลักการแล้วจึงยิ่งใหญ่ การยอมรับสกุลเงินที่หมุนเวียนอย่างอิสระอาจบั่นทอนอำนาจนี้ อย่างไรก็ตาม ในปัจจุบัน Bitcoin ยังห่างไกลจากความเป็นอยู่ ภัยคุกคามต่อนโยบายการเงินของรัฐบาล และเนื่องจากปัญหาด้านความสามารถในการขยายขนาด อาจไม่เป็นเช่นนั้นเลย(b) สภาพแวดล้อมที่ขัดแย้งกันอย่างมาก Algorand ต้านทานศัตรูที่ทรงพลังมากที่สามารถต้านทานได้ (1) สร้างความเสื่อมเสียแก่ผู้ใช้ใด ๆ ที่เขาต้องการทันทีในเวลาใดก็ได้ที่เขาต้องการ โดยมีเงื่อนไขว่าใน สภาพแวดล้อมที่ไม่ได้รับอนุญาต เงิน 2/3 ในระบบเป็นของผู้ใช้ที่ซื่อสัตย์ (ในก สภาพแวดล้อมที่ได้รับอนุญาต โดยไม่คำนึงถึงเงิน ถือว่า 2/3 ของผู้ใช้มีความซื่อสัตย์) (2) ควบคุมและประสานงานผู้ใช้ที่เสียหายทั้งหมดอย่างสมบูรณ์แบบ; และ (3) กำหนดเวลาการส่งข้อความทั้งหมด โดยมีเงื่อนไขว่าแต่ละข้อความ m ส่งโดยผู้ใช้ที่ซื่อสัตย์ เข้าถึงผู้ใช้ที่ซื่อสัตย์ถึง 95% ภายในระยะเวลา แลม ซึ่งขึ้นอยู่กับขนาดของ ม. เท่านั้น คุณสมบัติหลัก แม้จะมีศัตรูที่ทรงพลังของเราปรากฏตัวใน Algorand • จำนวนการคำนวณที่ต้องการมีเพียงเล็กน้อย โดยพื้นฐานแล้วไม่ว่าผู้ใช้จะมีจำนวนเท่าใดก็ตาม ที่มีอยู่ในระบบ ผู้ใช้แต่ละรายจาก 1500 คนจะต้องดำเนินการในเวลาไม่เกินไม่กี่วินาที การคำนวณ • บล็อกใหม่จะถูกสร้างขึ้นในเวลาน้อยกว่า 10 นาที และโดยพฤตินัยจะไม่มีวันออกจาก blockchain ตัวอย่างเช่น ตามความคาดหวัง เวลาในการสร้างบล็อกในรูปลักษณ์แรกจะน้อยกว่า มากกว่า Λ + 12.4แล โดยที่ Λ คือเวลาที่จำเป็นในการเผยแพร่บล็อกในการซุบซิบแบบ peer-to-peer แฟชั่น ไม่ว่าใครจะเลือกบล็อกขนาดใดก็ตาม และ \(\lambda\) คือเวลาที่จะเผยแพร่ข้อความขนาดยาว 1,500,200 ข้อความ (เนื่องจากในระบบการกระจายอำนาจอย่างแท้จริง Λ โดยพื้นฐานแล้วคือเวลาแฝงที่แท้จริงใน Algorand ปัจจัยจำกัดในการสร้างบล็อกคือความเร็วเครือข่าย) รูปลักษณ์ที่สองมี จริง ๆ แล้วได้รับการทดสอบทดลอง (โดย ?) ซึ่งบ่งชี้ว่าบล็อกถูกสร้างขึ้นในเวลาน้อยกว่า 40 วินาที นอกจากนี้ Algorand ของ blockchain อาจแยกได้ด้วยความน่าจะเป็นเพียงเล็กน้อยเท่านั้น (เช่น น้อยกว่าหนึ่ง ในล้านล้าน) และผู้ใช้สามารถส่งต่อการชำระเงินที่มีอยู่ในบล็อกใหม่ได้ทันทีที่ บล็อกปรากฏขึ้น • อำนาจทั้งหมดอยู่ที่ตัวผู้ใช้เอง Algorand เป็นระบบกระจายที่แท้จริง โดยเฉพาะอย่างยิ่ง ไม่มีหน่วยงานภายนอก (ในฐานะ "นักขุด" ใน Bitcoin) ที่สามารถควบคุมธุรกรรมใดได้ ได้รับการยอมรับ เทคนิคของ Algorand 1. โปรโตคอลข้อตกลงไบเซนไทน์ใหม่และรวดเร็ว Algorand สร้างบล็อกใหม่ผ่าน โปรโตคอลการเข้ารหัสลับแบบใหม่ การส่งข้อความ ข้อตกลงไบเซนไทน์แบบไบนารี (BA) BA⋆ พิธีสาร BA⋆ไม่เพียงแต่ตอบสนองคุณสมบัติเพิ่มเติมบางอย่างเท่านั้น (ซึ่งเราจะพูดถึงเร็วๆ นี้) แต่ยังรวดเร็วมากอีกด้วย กล่าวโดยคร่าวๆ เวอร์ชันอินพุตไบนารี่ประกอบด้วยการวนซ้ำ 3 ขั้นตอน ซึ่งผู้เล่นที่ฉันส่งเพียงครั้งเดียว ส่งข้อความ mi ถึงผู้เล่นคนอื่นๆ ทั้งหมด ดำเนินการในเครือข่ายที่สมบูรณ์และซิงโครนัสและอีกมากมาย ผู้เล่นมากกว่า 2/3 ที่มีความซื่อสัตย์ โดยมีความน่าจะเป็น > 1/3 หลังจากแต่ละวงสิ้นสุดโปรโตคอล ข้อตกลง (เราเน้นย้ำว่าระเบียบการ BA⋆ เป็นไปตามคำจำกัดความดั้งเดิมของข้อตกลงไบแซนไทน์ ของ Pease, Shostak และ Lamport [31] โดยไม่มีจุดอ่อนใดๆ) Algorand ใช้ประโยชน์จากโปรโตคอล BA ไบนารีนี้เพื่อบรรลุข้อตกลงในการสื่อสารที่แตกต่างของเรา โมเดลในแต่ละบล็อกใหม่ บล็อกที่ตกลงกันไว้จะได้รับการรับรองตามจำนวนที่กำหนด ลายเซ็นดิจิทัลของผู้ตรวจสอบที่เหมาะสม และเผยแพร่ผ่านเครือข่าย 2. การเรียงลำดับการเข้ารหัส แม้ว่าจะรวดเร็วมาก แต่โปรโตคอล BA⋆ ก็จะได้รับประโยชน์เพิ่มเติม ความเร็วเมื่อเล่นโดยผู้ใช้หลายล้านคน ดังนั้น Algorand จึงเลือกผู้เล่นของ BA⋆ ให้เป็นชุดย่อยที่เล็กกว่ามากของกลุ่มผู้ใช้ทั้งหมด เพื่อหลีกเลี่ยงการรวมตัวของอำนาจที่แตกต่างกัน ปัญหา แต่ละบล็อกใหม่ Br จะถูกสร้างขึ้นและตกลงกัน ผ่านการดำเนินการใหม่ของ BA⋆ โดยชุดผู้ตรวจสอบที่เลือกแยกกัน SV r. โดยหลักการแล้วการเลือกชุดดังกล่าวอาจจะยากพอๆ กัน การเลือก Br โดยตรง เราแก้ไขปัญหาที่อาจเกิดขึ้นนี้ด้วยแนวทางที่เรายึดถือ คำแนะนำอันชาญฉลาดของ Maurice Herlihy การเรียงลำดับการเข้ารหัส การเรียงลำดับคือการปฏิบัติของ สุ่มเลือกเจ้าหน้าที่จากบุคคลที่มีสิทธิ์จำนวนมาก [6] (มีการฝึกฝนการเรียงลำดับ ตลอดหลายศตวรรษ เช่น โดยสาธารณรัฐเอเธนส์ ฟลอเรนซ์ และเวนิส ในการพิจารณาคดีสมัยใหม่ ระบบการสุ่มเลือกมักใช้ในการเลือกคณะลูกขุน การสุ่มตัวอย่างก็เพิ่งเกิดขึ้นเช่นกัน สนับสนุนการเลือกตั้งโดย David Chaum [9].) แน่นอนว่าในระบบกระจายอำนาจ การเลือก เหรียญสุ่มที่จำเป็นในการสุ่มเลือกสมาชิกของชุดผู้ตรวจสอบแต่ละชุด SV r เป็นปัญหา ดังนั้นเราจึงใช้การเข้ารหัสเพื่อเลือกชุดผู้ตรวจสอบแต่ละชุดจากประชากรของผู้ใช้ทั้งหมด ในลักษณะที่รับประกันว่าเป็นไปโดยอัตโนมัติ (เช่น ไม่ต้องมีการแลกเปลี่ยนข้อความ) และสุ่ม โดยพื้นฐานแล้ว เราใช้ฟังก์ชันการเข้ารหัสเพื่อกำหนดโดยอัตโนมัติจากบล็อกก่อนหน้า Br−1 ผู้ใช้ ผู้นำ รับผิดชอบในการเสนอบล็อกใหม่ Br และผู้ตรวจสอบตั้งค่า SV r ใน เรียกเก็บเงินเพื่อบรรลุข้อตกลงในบล็อกที่เสนอโดยผู้นำ เนื่องจากผู้ใช้ที่เป็นอันตรายสามารถส่งผลกระทบได้ องค์ประกอบของ Br−1 (เช่น โดยการเลือกการชำระเงินบางส่วน) เราสร้างและใช้งานเป็นพิเศษ อินพุตเพิ่มเติมเพื่อพิสูจน์ว่าตัวนำสำหรับบล็อก rth และชุดตัวตรวจสอบ SV r เป็นจริง สุ่มเลือก 3. ปริมาณ (เมล็ด) Qr. เราใช้บล็อกสุดท้าย Br−1 ใน blockchain เพื่อที่จะ กำหนดชุดตรวจสอบถัดไปและผู้นำที่รับผิดชอบในการสร้างบล็อกใหม่โดยอัตโนมัติ บ. ความท้าทายของแนวทางนี้คือ โดยเพียงแค่เลือกการชำระเงินที่แตกต่างกันเล็กน้อยใน รอบที่แล้ว ศัตรูที่ทรงพลังของเราจะควบคุมผู้นำคนต่อไปได้อย่างมหาศาล แม้ว่าเขา ควบคุมผู้เล่น/เงินในระบบได้เพียง 1/1000 เท่านั้น เขาสามารถมั่นใจได้ว่าผู้นำทั้งหมดจะเป็นเช่นนั้น เป็นอันตราย (ดูสัญชาตญาณมาตรา 4.1) ความท้าทายนี้เป็นศูนย์กลางของแนวทาง proof-of-stake ทั้งหมด และเท่าที่ทราบมาจนถึงตอนนี้ก็ยังไม่ได้รับการแก้ไขอย่างน่าพอใจ เพื่อตอบสนองความท้าทายนี้ เราตั้งใจสร้างและปรับปรุงอย่างต่อเนื่อง แยกต่างหากและระมัดระวัง ปริมาณที่กำหนด (Qr) ซึ่งพิสูจน์ได้ว่าไม่เพียงแต่คาดเดาไม่ได้ แต่ยังวัดไม่ได้ด้วย ศัตรูที่ทรงพลัง เราอาจเรียก Qr ว่าเป็นเมล็ดที่ r เนื่องจากมาจาก Qr ที่ Algorand เลือก ผ่านการเรียงลำดับการเข้ารหัสลับ ผู้ใช้ทั้งหมดที่จะมีบทบาทพิเศษในยุคของ บล็อกที่ 1 4. การเรียงลำดับด้วยการเข้ารหัสลับและข้อมูลประจำตัวที่เป็นความลับ สุ่มและไม่คลุมเครือโดยใช้บล็อกสุดท้ายปัจจุบัน Br−1 เพื่อเลือกชุดผู้ตรวจสอบและผู้นำที่รับผิดชอบ การสร้างบล็อกใหม่ Br นั้นยังไม่เพียงพอ เนื่องจากต้องรู้จัก Br−1 ก่อนสร้าง Br ปริมาณ Qr−1 ที่ไม่สามารถประเมินได้สุดท้ายที่มีอยู่ใน Br−1 จะต้องทราบด้วย ตามนั้นครับ เป็นผู้ตรวจสอบและเป็นผู้นำที่รับผิดชอบในการคำนวณบล็อก Br. ดังนั้นศัตรูผู้ทรงพลังของเรา อาจทำให้ทุกคนเสียหายทันที ก่อนที่พวกเขาจะพูดคุยเรื่อง Br เพื่อให้ได้มา ควบคุมบล็อกที่พวกเขารับรองได้อย่างสมบูรณ์ เพื่อป้องกันปัญหานี้ ผู้นำ (และผู้ตรวจสอบด้วย) แอบเรียนรู้เกี่ยวกับบทบาทของตน แต่ก็สามารถทำได้ คำนวณข้อมูลประจำตัวที่เหมาะสม สามารถพิสูจน์ให้ทุกคนที่มีบทบาทนั้นได้อย่างแท้จริง เมื่อ ผู้ใช้ตระหนักเป็นการส่วนตัวว่าเขาเป็นผู้นำในบล็อกถัดไป อันดับแรกเขาแอบรวบรวมบล็อกของเขา เสนอบล็อกใหม่ของตนเองแล้วเผยแพร่ (เพื่อให้ได้รับการรับรอง) ร่วมกับบล็อกของตนเอง หนังสือรับรอง ด้วยวิธีนี้แม้ว่าฝ่ายตรงข้ามจะรู้ได้ทันทีว่าใครคือผู้นำคนต่อไป ถูกบล็อก และถึงแม้ว่าเขาจะทำให้เขาเสียหายได้ในทันที แต่ก็สายเกินไปที่ฝ่ายตรงข้ามจะทำได้ มีอิทธิพลต่อการเลือกบล็อกใหม่ แท้จริงแล้วเขาไม่สามารถ "โทรกลับ" ข้อความของผู้นำได้อีกต่อไปเกินกว่าที่รัฐบาลที่มีอำนาจจะสามารถนำข้อความที่ WikiLeaks แพร่กระจายแบบไวรัลกลับเข้าไปในขวดได้ ดังที่เราจะได้เห็น เราไม่สามารถรับประกันเอกลักษณ์ของผู้นำได้ และทุกคนก็ไม่แน่ใจว่าใครเป็นผู้นำ รวมถึงตัวผู้นำเองด้วย! แต่ใน Algorand รับประกันความก้าวหน้าที่ชัดเจน 5. ความสามารถในการเปลี่ยนผู้เล่น หลังจากที่เขาเสนอบล็อกใหม่ ผู้นำอาจจะ "ตาย" เช่นกัน (หรือเป็น) ถูกปรปักษ์เสียหาย) เพราะงานของเขาเสร็จแล้ว แต่สำหรับผู้ตรวจสอบใน SV r สิ่งต่างๆ ยังน้อยอยู่ เรียบง่าย โดยแท้จริงแล้ว มีหน้าที่รับรองบล็อกใหม่ Br พร้อมด้วยลายเซ็นมากมายเพียงพอ พวกเขาจะต้องดำเนินการตามข้อตกลงไบแซนไทน์ในบล็อกที่ผู้นำเสนอก่อน ปัญหาก็คือว่า ไม่ว่าจะมีประสิทธิภาพเพียงใด BA⋆ต้องการหลายขั้นตอนและความซื่อสัตย์ของผู้เล่น> 2/3 นี่เป็นปัญหา เพราะด้วยเหตุผลด้านประสิทธิภาพ ชุดผู้เล่นของ BA⋆ ประกอบด้วยชุดเล็ก SV r สุ่มเลือกจากชุดผู้ใช้ทั้งหมด ดังนั้นศัตรูผู้ทรงพลังของเราถึงแม้จะทำไม่ได้ก็ตาม เสียหาย 1/3 ของผู้ใช้ทั้งหมด สามารถทำให้สมาชิก SV r ทุกคนเสียหายได้อย่างแน่นอน! โชคดีที่เราจะพิสูจน์ได้ว่าโปรโตคอล BA⋆ ซึ่งดำเนินการโดยการเผยแพร่ข้อความในลักษณะเพียร์โทเพียร์นั้นเป็นสิ่งที่ผู้เล่นสามารถแทนที่ได้ ข้อกำหนดใหม่นี้หมายความว่าโปรโตคอลถูกต้องและ บรรลุฉันทามติอย่างมีประสิทธิภาพแม้ว่าแต่ละขั้นตอนจะดำเนินการโดยขั้นตอนใหม่ทั้งหมดและแบบสุ่ม และเลือกชุดผู้เล่นอย่างอิสระ ดังนั้นด้วยจำนวนผู้ใช้หลายล้านคน แต่ละกลุ่มผู้เล่นเล็กๆ ที่เกี่ยวข้องกับขั้นตอนของ BA ⋆ส่วนใหญ่น่าจะมีจุดตัดว่างกับเซตถัดไป นอกจากนี้ ชุดของผู้เล่นที่มีขั้นตอนต่างกันของ BA⋆ อาจจะมีความแตกต่างกันโดยสิ้นเชิง ภาวะคาร์ดินัล นอกจากนี้สมาชิกของแต่ละชุดยังไม่รู้ว่าผู้เล่นชุดต่อไปจะเป็นใคร เป็นและไม่แอบผ่านสภาพภายในใด ๆ คุณสมบัติของผู้เล่นที่ทดแทนได้นั้นมีความสำคัญอย่างยิ่งในการเอาชนะความไดนามิกและทรงพลังมาก ศัตรูที่เราจินตนาการ เราเชื่อว่าโปรโตคอลของผู้เล่นที่ทดแทนได้จะพิสูจน์ได้ว่ามีความสำคัญในหลายๆ อย่าง บริบทและการประยุกต์ โดยเฉพาะอย่างยิ่ง สิ่งเหล่านี้จะมีความสำคัญอย่างยิ่งในการรันโปรโตคอลย่อยขนาดเล็กอย่างปลอดภัย ฝังอยู่ในจักรวาลที่ใหญ่ขึ้นของผู้เล่นพร้อมกับศัตรูที่มีพลังซึ่งสามารถทำลายล้างได้ เป็นส่วนเล็กๆ ของผู้เล่นทั้งหมด ไม่มีความยุ่งยากในการทำให้ผู้เล่นในกลุ่มเล็กๆ เสียหายทั้งหมด โปรโตคอลย่อย คุณสมบัติ/เทคนิคเพิ่มเติม: Lazy Honesty ผู้ใช้ที่ซื่อสัตย์ปฏิบัติตามคำสั่งของเขา คำแนะนำซึ่งรวมถึงการออนไลน์และเรียกใช้โปรโตคอล เนื่องจาก Algorand มีเพียงความเรียบง่ายเท่านั้น ข้อกำหนดด้านการคำนวณและการสื่อสาร ออนไลน์และใช้งานโปรโตคอล “ใน พื้นหลัง” ไม่ใช่การเสียสละครั้งใหญ่ แน่นอนว่ามี "การขาดหายไป" บ้างในหมู่ผู้เล่นที่ซื่อสัตย์เช่นเดียวกับพวกเขา เนื่องจากการสูญเสียการเชื่อมต่ออย่างกะทันหันหรือจำเป็นต้องรีบูตเครื่อง จะต้องได้รับการยอมรับโดยอัตโนมัติ (เพราะ เราถือว่าผู้เล่นไม่กี่คนดังกล่าวเป็นอันตรายชั่วคราวได้เสมอ) ให้เราชี้ให้เห็นว่าอย่างไรก็ตาม Algorand นั้นสามารถปรับเปลี่ยนได้อย่างง่ายดายเพื่อให้ทำงานในรูปแบบใหม่ซึ่งผู้ใช้ที่ซื่อสัตย์จะเป็น มักจะไม่เป็นเช่นนั้น รุ่นใหม่ของเราสามารถแนะนำอย่างไม่เป็นทางการได้ดังนี้ ขี้เกียจซื่อสัตย์. พูดโดยคร่าวๆ ผู้ใช้ที่ฉันขี้เกียจแต่ซื่อสัตย์ถ้า (1) เขาปฏิบัติตามที่เขากำหนดไว้ทั้งหมด คำแนะนำ เมื่อเขาถูกขอให้เข้าร่วมในระเบียบการ และ (2) เขาถูกขอให้เข้าร่วม ถึงโปรโตคอลเพียงเล็กน้อยเท่านั้น และมีการแจ้งล่วงหน้าที่เหมาะสม ด้วยแนวคิดที่ผ่อนคลายในเรื่องความซื่อสัตย์ เราอาจมั่นใจมากขึ้นว่าคนที่ซื่อสัตย์จะเป็นเช่นไร พร้อมเสมอเมื่อเราต้องการ และ Algorand รับประกันว่า เมื่อเป็นกรณีนี้ ระบบทำงานอย่างปลอดภัย แม้ว่า ณ เวลาที่กำหนด ผู้เล่นที่เข้าร่วมส่วนใหญ่เป็นคนที่เป็นอันตราย1.3 งานที่เกี่ยวข้องอย่างใกล้ชิด วิธีการพิสูจน์การทำงาน (เช่น [29] และ [4] ที่อ้างถึง) ค่อนข้างตั้งฉากกับแนวทางของเรา ก็เช่นกัน วิธีการตามข้อตกลงไบเซนไทน์ในการส่งข้อความหรือการยอมรับข้อบกพร่องของไบแซนไทน์ในทางปฏิบัติ (เช่นที่อ้างถึง [8]) แท้จริงแล้ว โปรโตคอลเหล่านี้ไม่สามารถทำงานในกลุ่มผู้ใช้ทั้งหมดได้ และไม่สามารถ ในโมเดลของเรา ให้จำกัดเฉพาะผู้ใช้กลุ่มเล็กๆ ที่เหมาะสม อันที่จริงศัตรูที่ทรงพลังของเราของฉัน สร้างความเสียหายให้กับผู้ใช้ทั้งหมดที่เกี่ยวข้องกับชุดเล็ก ๆ ที่ถูกกล่าวหาว่าใช้งานโปรโตคอล BA จริง ๆ ทันที แนวทางของเราถือได้ว่าเกี่ยวข้องกับหลักฐานการมีส่วนได้ส่วนเสีย [2] ในแง่ที่ว่า "อำนาจ" ของผู้ใช้ ในการสร้างบล็อกจะเป็นสัดส่วนกับเงินที่พวกเขาเป็นเจ้าของในระบบ (ตรงข้ามกับ —พูด— ถึง เงินที่พวกเขาใส่ไว้ใน “เอสโครว์”) บทความที่ใกล้เคียงที่สุดของเราคือ Sleepy Consensus Model ของ Pass และ Shi [30] เพื่อหลีกเลี่ยง การคำนวณจำนวนมากที่จำเป็นในแนวทาง proof-of-work เอกสารของพวกเขาอาศัย (และกรุณา เครดิต) Algorand การเรียงลำดับการเข้ารหัสลับ โดยมีประเด็นสำคัญหลายประการที่เหมือนกันหลายประการ มีความแตกต่างที่สำคัญระหว่างเอกสารของเรา โดยเฉพาะอย่างยิ่ง (1) การตั้งค่าของพวกเขาได้รับอนุญาตเท่านั้น ในทางตรงกันข้าม Algorand ก็เป็นระบบที่ไม่ได้รับอนุญาตเช่นกัน (2) พวกเขาใช้โปรโตคอลสไตล์ Nakamoto และทำให้ blockchain ของพวกเขาแยกบ่อยครั้ง แม้ว่า แจกจ่าย proof-of-work ในระเบียบการของพวกเขา ผู้นำที่ได้รับการคัดเลือกอย่างลับๆ จะถูกขอให้ยืดเวลา ใช้ได้ยาวนานที่สุด (ในแง่ที่สมบูรณ์ยิ่งขึ้น) blockchain ดังนั้นจึงหลีกเลี่ยงไม่ได้ที่จะต้องใช้ส้อมและต้องรอ บล็อกนั้นมี "ความลึก" เพียงพอในห่วงโซ่ แท้จริงแล้วการบรรลุเป้าหมายร่วมกับศัตรู ความสามารถในการเสียหายแบบปรับตัวได้ พวกเขาต้องการบล็อกที่มีความลึกแบบโพลี (N) โดยที่ N แสดงถึง จำนวนผู้ใช้ทั้งหมดในระบบ โปรดสังเกตว่า แม้จะสมมติว่าสามารถสร้างบล็อกได้ ในหนึ่งนาที หากมีผู้ใช้ N = 1 ล้านคน ก็จะต้องรอประมาณ 2 ล้านปี บล็อกจะกลายเป็น N ลึก และใช้เวลาประมาณ 2 ปีกว่าบล็อกจะกลายเป็น N ลึก ในทางตรงกันข้าม blockchain ของ Algorand ส้อมด้วยความน่าจะเป็นเพียงเล็กน้อยเท่านั้น แม้ว่าฝ่ายตรงข้ามจะเสียหาย ผู้ใช้ทันทีและปรับเปลี่ยนได้ และสามารถพึ่งพาบล็อกใหม่ได้ทันที (3) พวกเขาไม่ได้จัดการข้อตกลงไบเซนไทน์แต่ละรายการ ในแง่หนึ่งพวกเขารับประกันเท่านั้น “ฉันทามติในที่สุดเกี่ยวกับลำดับค่านิยมที่เพิ่มขึ้น” พวกเขาเป็นโปรโตคอลการจำลองแบบของรัฐ กว่า BA one และไม่สามารถใช้เพื่อบรรลุข้อตกลง Byzantine เกี่ยวกับมูลค่าดอกเบี้ยส่วนบุคคลได้ ในทางตรงกันข้าม Algorand สามารถใช้เพียงครั้งเดียว หากต้องการ เพื่อให้ผู้ใช้หลายล้านคนสามารถใช้งานได้อย่างรวดเร็ว บรรลุข้อตกลงไบเซนไทน์เกี่ยวกับมูลค่าดอกเบี้ยเฉพาะ (4) พวกเขาต้องการนาฬิกาที่ซิงโครไนซ์อย่างอ่อน นั่นคือนาฬิกาของผู้ใช้ทุกคนจะถูกตั้งเวลาเพียงเล็กน้อย δ. ในทางตรงกันข้าม ใน Algorand นาฬิกาจำเป็นต้องมี "ความเร็ว" ที่เท่ากัน (โดยพื้นฐานแล้ว) เท่านั้น (5) โปรโตคอลของพวกเขาใช้งานได้กับผู้ใช้ที่ขี้เกียจแต่ซื่อสัตย์หรือกับผู้ใช้ออนไลน์ส่วนใหญ่ที่ซื่อสัตย์ พวกเขากรุณาให้เครดิต Algorand สำหรับการหยิบยกปัญหาของผู้ใช้ที่ซื่อสัตย์ออกไปเป็นจำนวนมาก และสำหรับ หยิบยกโมเดลความซื่อสัตย์ที่เกียจคร้านมาตอบสนอง โปรโตคอลของพวกเขาไม่เพียงแต่ใช้งานได้กับคนขี้เกียจเท่านั้น รูปแบบความซื่อสัตย์ แต่ยังอยู่ในรูปแบบง่วงนอนของฝ่ายตรงข้ามด้วย โดยที่ฝ่ายตรงข้ามเลือกว่าผู้ใช้รายใด ออนไลน์และเป็นของออฟไลน์ โดยมีเงื่อนไขว่าผู้ใช้ออนไลน์ส่วนใหญ่มีความซื่อสัตย์ตลอดเวลา2 2รายงานฉบับดั้งเดิมถือว่าเป็นเพียงการรักษาความปลอดภัยในรูปแบบง่วงนอนของฝ่ายตรงข้ามเท่านั้น ที่ เวอร์ชันดั้งเดิมของ Algorand ซึ่งอยู่ก่อนหน้าเวอร์ชันของพวกเขา ยังมองเห็นอย่างชัดเจนโดยสมมติว่าส่วนใหญ่ที่กำหนด ผู้เล่นออนไลน์มีความซื่อสัตย์อยู่เสมอ แต่ได้แยกออกจากการพิจารณาอย่างชัดเจน เพื่อสนับสนุนโมเดลความซื่อสัตย์ที่ขี้เกียจ (ตัวอย่างเช่น หาก ณ จุดใดจุดหนึ่งของผู้ใช้ที่ซื่อสัตย์เลือกที่จะออฟไลน์ ผู้ใช้ส่วนใหญ่ ออนไลน์อาจเป็นอันตรายได้ ดังนั้น เพื่อป้องกันไม่ให้สิ่งนี้เกิดขึ้น ปฏิปักษ์ควรบังคับส่วนใหญ่ของเขา ผู้เล่นที่เสียหายให้ไปออฟไลน์ด้วย ซึ่งเห็นได้ชัดว่าขัดต่อผลประโยชน์ของตนเอง) โปรดสังเกตว่าโปรโตคอลที่มีเสียงข้างมาก ของผู้เล่นที่เกียจคร้านแต่ซื่อสัตย์จะทำงานได้ดีหากผู้ใช้ออนไลน์ส่วนใหญ่มักเป็นอันตราย ที่เป็นเช่นนี้ก็เพราะว่า ผู้เล่นที่ซื่อสัตย์จำนวนเพียงพอ โดยรู้ว่าพวกเขาจะมีความสำคัญในช่วงเวลาที่หายาก จะเลือก ย่อมไม่หลุดพ้นไปในขณะนั้น และมิให้ปรปักษ์บังคับให้หลุดพ้นได้ เพราะไม่รู้ว่าใครเป็นผู้ ผู้เล่นที่ซื่อสัตย์ที่สำคัญอาจเป็นได้(6) พวกเขาต้องการเสียงส่วนใหญ่ที่ซื่อสัตย์ ในทางตรงกันข้าม Algorand ต้องใช้เวอร์ชันปัจจุบัน 2/3 ส่วนใหญ่ที่ซื่อสัตย์ เอกสารอีกฉบับที่อยู่ใกล้เราคือ Ouroboros: โปรโตคอล Blockchain ที่พิสูจน์ได้ว่ามีความปลอดภัยที่พิสูจน์ได้ โดย Kiayias, Russell, David และ Oliynykov [20] ระบบของพวกเขาก็ปรากฏตามหลังเราด้วย มันยัง ใช้การเรียงลำดับด้วยความเย็นเพื่อแจกจ่ายหลักฐานการทำงานในลักษณะที่พิสูจน์ได้ อย่างไรก็ตามของพวกเขา ระบบเป็นโปรโตคอลสไตล์ Nakamoto อีกครั้งซึ่งทางแยกเป็นสิ่งที่หลีกเลี่ยงไม่ได้และบ่อยครั้ง (อย่างไรก็ตาม ในโมเดลของพวกเขา บล็อกไม่จำเป็นต้องลึกเท่ากับโมเดลฉันทามติที่ง่วงนอน) นอกจากนี้ ระบบของพวกเขาขึ้นอยู่กับสมมติฐานดังต่อไปนี้: ตามคำพูดของผู้เขียนเอง "(1) เครือข่ายมีการซิงโครไนซ์สูง (2) ผู้มีส่วนได้ส่วนเสียส่วนใหญ่ที่ได้รับการคัดเลือกพร้อมให้บริการตามความจำเป็น ที่จะเข้าร่วมในแต่ละยุค (3) ผู้มีส่วนได้ส่วนเสียจะไม่ถูกเปิดเผยเป็นเวลานาน (4) การปรับตัวของการทุจริตอาจมีความล่าช้าเล็กน้อยซึ่งวัดเป็นเส้นตรง พารามิเตอร์ความปลอดภัย” ในทางตรงกันข้าม Algorand มีความน่าจะเป็นอย่างล้นหลาม ไม่มีการฟอร์ค และ ไม่ได้ขึ้นอยู่กับสมมติฐานทั้ง 4 ข้อนี้ โดยเฉพาะอย่างยิ่งใน Algorand ฝ่ายตรงข้ามสามารถทำได้ สร้างความเสียหายให้กับผู้ใช้ที่เขาต้องการควบคุมทันที

المقدمات

2.1 بدايات التشفير التجزئة المثالية. يجب أن نعتمد على دالة تشفير حاسوبية فعالة hash، H، التي يرسم سلاسل طويلة بشكل تعسفي إلى سلاسل ثنائية ذات طول ثابت. بعد تقليد طويل، نحن نصمم H كدالة عشوائية oracle، وهي في الأساس دالة تقوم بتعيين كل سلسلة ممكنة بشكل عشوائي و سلسلة ثنائية مختارة بشكل مستقل (ثم ثابتة)، H(s)، من الطول المختار. في هذه الورقة، H لديه مخرجات طويلة 256 بت. في الواقع، هذا الطول قصير بما يكفي لجعله كفاءة النظام وطويلة بما يكفي لجعل النظام آمنًا. على سبيل المثال، نريد أن يكون H مقاومًا للتصادم. وهذا يعني أنه يجب أن يكون من الصعب العثور على سلسلتين مختلفتين x وy بحيث يكون H(x) = H(y). عندما يكون H عشوائيًا oracle بمخرجات طويلة 256 بت، فإن العثور على أي زوج من هذه السلاسل هو بالفعل صعب. (المحاولة العشوائية، والاعتماد على مفارقة عيد الميلاد، سوف تتطلب 2256/2 = 2128 المحاكمات.) التوقيع الرقمي. تسمح التوقيعات الرقمية للمستخدمين بمصادقة المعلومات لبعضهم البعض دون مشاركة أي مشاركة أي مفاتيح سرية. يتكون نظام التوقيع الرقمي من ثلاثة سريعة الخوارزميات: مولد المفاتيح الاحتمالية G، وخوارزمية التوقيع S، وخوارزمية التحقق V. بالنظر إلى معلمة الأمان k، وهو عدد صحيح مرتفع بدرجة كافية، يستخدم المستخدم i G لإنتاج زوج من مفاتيح k-bit (أي السلاسل): مفتاح pki "عام" ومفتاح توقيع "سري" مطابق. بشكل حاسم، أ المفتاح العام لا "يخون" مفتاحه السري المقابل. وهذا هو، حتى في ضوء معرفة pki، لا شخص آخر غيري قادر على حساب التزلج في أقل من زمن فلكي. المستخدم الأول يستخدم التزلج لتوقيع الرسائل رقميًا. لكل رسالة محتملة (سلسلة ثنائية) m، i أولاً hashes m ثم يقوم بتشغيل الخوارزمية S على المدخلات H(m) والتزلج لإنتاج سلسلة k-bit sigpki(m) \(\triangleq\)S(H(m), تزلج) .3 3 نظرًا لأن H مرن ضد الاصطدام، فمن المستحيل عمليًا أنه من خلال التوقيع على شخص ما "يوقع بطريق الخطأ" علامة مختلفة رسالة م'.يشار إلى السلسلة الثنائية sigpki(m) بالتوقيع الرقمي لـ m (بالنسبة إلى pki)، ويمكن أن تكون يُشار إليه ببساطة بـ sigi(m)، عندما يكون المفتاح العام pki واضحًا من السياق. يمكن لأي شخص يعرف pki استخدامه للتحقق من التوقيعات الرقمية التي تنتجها i. على وجه التحديد، على المدخلات (أ) المفتاح العام pki الخاص بالمشغل i، و(ب) الرسالة m، و(ج) السلسلة s، أي المزعومة التوقيع الرقمي للرسالة m، ستخرج خوارزمية التحقق V إما نعم أو لا. الخصائص التي نطلبها من نظام التوقيع الرقمي هي: 1. يتم التحقق دائمًا من صحة التوقيعات: إذا كانت s = sigi(m)، فإن V (pki, m, s) = Y ES؛ و 2. من الصعب تزوير التوقيعات الرقمية: دون معرفة التزلج، يكون الوقت المناسب للعثور على سلسلة من هذا القبيل أن V (pki, m, s) = Y ES، بالنسبة للرسالة m التي لم يتم التوقيع عليها من قبل i، طويلة بشكل فلكي. (في أعقاب متطلبات الأمان القوية لـ Goldwasser وMicali وRivest [17]، هذا صحيح حتى لو أمكن الحصول على توقيع أي رسالة أخرى.) وعليه، لمنع أي شخص آخر من توقيع الرسائل نيابة عنه، يجب أن أحتفظ باللاعب الخاص به التوقيع على مفتاح التزلج السري (ومن هنا جاء مصطلح "المفتاح السري")، ولتمكين أي شخص من التحقق من الرسائل لقد قام بالتوقيع، ولدي مصلحة في نشر مفتاح pki الخاص به (ومن هنا جاء مصطلح "المفتاح العام"). بشكل عام، لا يمكن استرجاع الرسالة m من توقيعها sigi(m). من أجل التعامل عمليا مع التوقيعات الرقمية التي تلبي خاصية "قابلية الاسترجاع" الملائمة من الناحية المفاهيمية (أي إلى نحن نضمن أن الموقّع والرسالة يمكن حسابهما بسهولة من التوقيع SIGpki(m) = (i, m, sigpki(m)) و SIGi(m) = (i, m, sigi(m)))، إذا كان pki واضحًا. التوقيع الرقمي الفريد. نحن نعتبر أيضًا أنظمة التوقيع الرقمي (G، S، V) التي تلبي متطلبات بعد خاصية إضافية. 3. التفرد. من الصعب العثور على سلاسل pk′ وm وs وs′ بهذه الطريقة ق̸= س' و V (pk′, m, s) = V (pk′, m, s′) = 1. (لاحظ أن خاصية التفرد تنطبق أيضًا على السلاسل pk′ التي لم يتم إنشاؤها بشكل قانوني المفاتيح العامة. على وجه الخصوص، فإن خاصية التفرد تعني أنه إذا استخدم الشخص مولد المفتاح المحدد G لحساب المفتاح العام pk مع المفتاح السري المطابق sk، وبالتالي، عرف SK، سيكون من المستحيل عليه أيضًا العثور على جهازين رقميين مختلفين توقيعات نفس الرسالة بالنسبة إلى pk.) ملاحظات • من التوقيعات الفريدة إلى وظائف عشوائية يمكن التحقق منها. نسبة إلى الرقمية مخطط التوقيع مع خاصية التفرد، يرتبط التعيين m \(\to\) H(sigi(m)) بـ كل سلسلة محتملة m، سلسلة فريدة ومختارة عشوائيًا مكونة من 256 بت، وصحة ذلك يمكن إثبات التعيين باستخدام التوقيع sigi(m). وهذا يعني أن نظام hash المثالي للتوقيع الرقمي يلبي خاصية التفرد بشكل أساسي توفير تنفيذ أولي لوظيفة عشوائية يمكن التحقق منها، كما تم تقديمها وبواسطة ميكالي ورابين وفادهان [27]. (كان تنفيذها الأصلي بالضرورة أكثر تعقيدًا، نظرًا لأنهم لم يعتمدوا على hashing المثالي.)• ثلاثة احتياجات مختلفة للتوقيعات الرقمية. في Algorand، يعتمد المستخدم على الرقمي التوقيعات ل (1) المصادقة على المدفوعات الخاصة بي. في هذا التطبيق، يمكن أن تكون المفاتيح "طويلة الأجل" (أي تستخدم ل التوقيع على العديد من الرسائل على مدى فترة طويلة من الزمن) وتأتي من نظام التوقيع العادي. (2) إنشاء بيانات اعتماد تثبت أنه يحق لي التصرف في بعض الخطوات من الجولة r. هنا، يمكن أن تكون المفاتيح طويلة المدى، ولكن يجب أن تأتي من مخطط يلبي خاصية التفرد. (3) التحقق من صحة الرسالة التي يرسلها في كل خطوة يقوم بها. هنا، يجب أن تكون المفاتيح سريعة الزوال (أي يتم تدميرها بعد استخدامها لأول مرة)، ولكن يمكن أن تأتي من نظام التوقيع العادي. • تبسيط بتكلفة صغيرة. من أجل التبسيط، نتصور أن يكون لدى كل مستخدم مفتاح واحد طويل المدى. وبناء على ذلك، يجب أن يأتي مثل هذا المفتاح من مخطط التوقيع مع التفرد الملكية. هذه البساطة لها تكلفة حسابية صغيرة. عادة، في الواقع، رقمية فريدة من نوعها يعد إنتاج التوقيعات والتحقق منها أكثر تكلفة قليلاً من التوقيعات العادية. 2.2 دفتر الأستاذ العام المثالي يحاول Algorand تقليد نظام الدفع التالي، استنادًا إلى دفتر الأستاذ العام المثالي. 1. الحالة الأولية. يرتبط المال بالمفاتيح العامة الفردية (التي تم إنشاؤها بشكل خاص و المملوكة للمستخدمين). السماح pk1، . . . ، pkj يكون المفاتيح العامة الأولية وa1، . . . ، كل منهما المبالغ الأولية من وحدات المال، ثم الحالة الأولية هي S0 = (pk1، a1)، . . . ، (بكج، اج)، والتي من المفترض أن تكون معرفة عامة في النظام. 2. المدفوعات. دع pk يكون مفتاحًا عامًا يحتوي حاليًا على \(\geq\)0 وحدة نقدية، وpk′ عام آخر مفتاح، و'a' رقم غير سالب لا يزيد عن a. إذن، الدفع (الصالح) \(\wp\)هو رقمي التوقيع، بالنسبة إلى pk، يحدد نقل الوحدات النقدية من pk إلى pk′، معًا مع بعض المعلومات الإضافية. في الرموز، \(\wp\)= SIGpk(pk, pk′, a′, I, H(I)), حيث أمثل أي معلومات إضافية تعتبر مفيدة ولكنها ليست حساسة (على سبيل المثال، الوقت المعلومات ومعرف الدفع)، وأي معلومات إضافية تعتبر حساسة (على سبيل المثال، سبب الدفع، ربما هويات أصحاب pk وpk'، وما إلى ذلك). نشير إلى pk (أو مالكه) باعتباره الدافع، وإلى كل pk′ (أو مالكه) باعتباره المستفيد، وإلى a′ باسم مبلغ الدفع \(\wp\). الانضمام مجاني عن طريق الدفع. لاحظ أنه يمكن للمستخدمين الانضمام إلى النظام متى أرادوا ذلك إنشاء أزواج المفاتيح العامة/السرية الخاصة بهم. وبناء على ذلك، فإن المفتاح العام pk′ الذي يظهر في قد تكون الدفعة المذكورة أعلاه عبارة عن مفتاح عام تم إنشاؤه حديثًا ولم "يمتلك" أي أموال على الإطلاق من قبل. 3. دفتر الأستاذ السحري. في النظام المثالي، جميع المدفوعات صالحة وتظهر بشكل مانع للتلاعب قائمة L من مجموعات المدفوعات "المعلنة في السماء" ليراها الجميع: L = ادفع 1، ادفع 2، . . . ,تتكون كل كتلة PAY r+1 من مجموعة جميع المدفوعات التي تم إجراؤها منذ ظهور الكتلة دفع ص. في النظام المثالي، تظهر كتلة جديدة بعد فترة زمنية ثابتة (أو محدودة). مناقشة. • المزيد من المدفوعات العامة ومخرجات المعاملات غير المنفقة. وبشكل أكثر عمومية، إذا كان المفتاح العام يمتلك pk مبلغًا a، فإن دفعة صالحة \(\wp\)من pk قد تحول المبالغ a′ 1، أ' 2، . . ., على التوالي إلى المفاتيح pk' 1، بك' 2، . . .، طالما P ي أ ' ي \(\geq\)أ. في Bitcoin والأنظمة المشابهة، يتم فصل الأموال المملوكة لمفتاح عام pk إلى أجزاء منفصلة المبالغ، والدفعة \(\wp\) التي تتم بواسطة pk يجب أن تحول مثل هذا المبلغ المنفصل a بالكامل. إذا كان pk يرغب في نقل جزء فقط من a′ < a من a إلى مفتاح آخر، فيجب عليه أيضًا نقل الرصيد، ومخرجات المعاملة غير المنفقة، إلى مفتاح آخر، ربما pk نفسه. Algorand يعمل أيضًا مع المفاتيح ذات المبالغ المنفصلة. ومع ذلك، من أجل التركيز على جوانب جديدة من Algorand، من الأسهل من الناحية المفاهيمية الالتزام بأشكال الدفع الأبسط لدينا والمفاتيح التي لها مبلغ واحد مرتبط بها. • الوضع الحالي. لا يقدم المخطط المثالي معلومات مباشرة حول التيار حالة النظام (أي عدد الوحدات المالية التي يمتلكها كل مفتاح عام). هذه المعلومات يمكن استنتاجه من دفتر الأستاذ السحري. في النظام المثالي، يقوم المستخدم النشط باستمرار بتخزين وتحديث أحدث معلومات الحالة، أو كان سيتعين عليه إعادة بنائه، إما من الصفر، أو من آخر مرة قام فيها بذلك حسبتها. (في الإصدار التالي من هذه الورقة، سنقوم بزيادة Algorand لتمكينها المستخدمين لإعادة بناء الوضع الحالي بطريقة فعالة.) • الأمن و"الخصوصية". تضمن التوقيعات الرقمية عدم تمكن أي شخص من تزوير الدفع عن طريقها مستخدم آخر. في الدفع \(\wp\)، لا يتم إخفاء المفاتيح العامة والمبلغ، بل الحساس المعلومات أنا. في الواقع، يظهر H(I) فقط في \(\wp\)، وبما أن H دالة hash مثالية، فإن H(I) هي قيمة عشوائية تبلغ 256 بت، وبالتالي لا توجد طريقة لمعرفة ما الذي كنت أفضل منه من خلال مجرد تخمين ذلك. ومع ذلك، لإثبات ما كنت عليه (على سبيل المثال، لإثبات سبب الدفع) فإن قد يكشف الدافع فقط عن I. يمكن التحقق من صحة ما تم الكشف عنه عن طريق حساب H(I) ومقارنة القيمة الناتجة بالعنصر الأخير من \(\wp\). في الواقع، نظرًا لأن H مرن ضد الاصطدام، من الصعب العثور على قيمة ثانية I ′ بحيث تكون H(I) = H(I′). 2.3 المفاهيم الأساسية والرموز المفاتيح والمستخدمين والمالكين ما لم يُنص على خلاف ذلك، فإن كل مفتاح عام ("مفتاح" للاختصار) يكون طويل الأجل ويتعلق بنظام التوقيع الرقمي الذي يتمتع بخاصية التفرد. مفتاح عام أنضم إليه النظام عندما يقوم مفتاح عام آخر j موجود بالفعل في النظام بإجراء الدفع إلى i. بالنسبة للون، نقوم بتخصيص المفاتيح. نحن نشير إلى المفتاح i بـ "هو"، لنقول أنني صادق، وأنني أرسل ويستقبل الرسائل وما إلى ذلك. المستخدم مرادف للمفتاح. عندما نريد التمييز بين المفتاح و الشخص الذي ينتمي إليه، نستخدم على التوالي مصطلح "المفتاح الرقمي" و"المالك". الأنظمة غير المصرح بها والمصرح بها. النظام غير مسموح به، إذا كان المفتاح الرقمي مجانيًا للانضمام في أي وقت ويمكن للمالك امتلاك مفاتيح رقمية متعددة؛ وجوازه، وإلا.التمثيل الفريد كل كائن في Algorand له تمثيل فريد. على وجه الخصوص، كل مجموعة {(x, y, z, . . .) : x \(\in\)X, y \(\in\)Y, z \(\in\)Z, . . .} يتم ترتيبها بطريقة محددة مسبقًا: على سبيل المثال، أولاً معجميًا في x، ثم في y، وما إلى ذلك. ساعات بنفس السرعة لا توجد ساعة عالمية: بل كل مستخدم لديه ساعته الخاصة. ساعات المستخدم لا يلزم أن تكون متزامنة بأي شكل من الأشكال. ولكننا نفترض أن جميعها لها نفس السرعة. على سبيل المثال، عندما تكون الساعة 12 ظهرًا وفقًا لساعة المستخدم i، فقد تكون الساعة 2:30 ظهرًا وفقًا لساعة المستخدم. ساعة مستخدم آخر j، ولكن عندما تكون الساعة 12:01 وفقًا لساعة i، ستكون 2:31 وفقًا لساعة i إلى ساعة j. وهذا يعني أن "الدقيقة الواحدة هي نفسها (بشكل كافٍ، ونفس الشيء) لكل مستخدم". جولات Algorand منظم في وحدات منطقية، r = 0, 1, . . .، تسمى جولات. نحن نستخدم باستمرار الحروف الفوقية للإشارة إلى الجولات. للإشارة إلى أن كمية غير رقمية Q (على سبيل المثال، سلسلة، مفتاح عام، مجموعة، توقيع رقمي، وما إلى ذلك) تشير إلى شكل دائري r، نكتب ببساطة Qr. فقط عندما يكون Q رقمًا حقيقيًا (على عكس سلسلة ثنائية يمكن تفسيرها كرقم)، افعل ذلك نكتب Q(r)، بحيث لا يمكن تفسير الرمز r على أنه أس Q. عند (بداية a) الجولة r > 0، تكون مجموعة كافة المفاتيح العامة هي PKr، وحالة النظام هي ريال = ن أنا، أ (ص) أنا . . .  : أنا \(\in\)PKro , حيث (ص) أنا هو مقدار المال المتاح للمفتاح العام أنا. لاحظ أن PKr يمكن استنتاجه من Sr، وقد يحدد ذلك Sr أيضًا مكونات أخرى لكل مفتاح عام. بالنسبة للجولة 0، PK0 هي مجموعة المفاتيح العامة الأولية، وS0 هي الحالة الأولية. كل من PK0 و من المفترض أن تكون S0 معرفة شائعة في النظام. للتبسيط، في بداية الجولة r، هكذا هي PK1، . . . ، PKr وS1، . . . ، الأب. في جولة r، تنتقل حالة النظام من Sr إلى Sr+1: رمزيًا، الجولة r: Sr −→Sr+1. المدفوعات في Algorand، يقوم المستخدمون بتسديد الدفعات باستمرار (ونشرها بطريقة الموصوفة في القسم الفرعي 2.7). الدفع \(\wp\)من المستخدم i \(\in\)PKr له نفس التنسيق والدلالات كما هو الحال في النظام المثالي. وهي، \(\wp\)= SIGi(i, i′, a, I, H(I)) . الدفع \(\wp\) صالح بشكل فردي عند جولة r (هو دفعة مستديرة r، باختصار) إذا (1) مبلغها ا أقل من أو يساوي أ(ص) i و (2) لا يظهر في أي مجموعة دفع رسمية PAY r′ for r′ < r. (كما هو موضح أدناه، الشرط الثاني يعني أن \(\wp\)لم تصبح فعالة بالفعل. تكون مجموعة الدفعات الدائرية لـ i صالحة بشكل جماعي إذا كان مجموع مبالغها على الأكثر a(r) أنا. مجموعات الدفع مجموعة الدفع المستديرة P عبارة عن مجموعة من الدفعات الدائرية بحيث تكون المدفوعات لكل مستخدم i من i في P (ربما لا شيء) صالحة بشكل جماعي. مجموعة جميع مجموعات الدفع المستديرة هي PAY(r). جولة ص تكون مجموعة الدفع P هي الحد الأقصى إذا لم تكن هناك مجموعة شاملة من P عبارة عن مجموعة دفع دائرية. نقترح في الواقع أن الدفعة \(\wp\) تحدد أيضًا الجولة \(\rho\), \(\wp\)= SIGi(\(\rho\), i, i′, a, I, H(I)) ، ولا يمكن أن تكون صالحة في أي جولة خارج [\(\rho\), \(\rho\) + k]، بالنسبة لبعض الأعداد الصحيحة الثابتة غير السالبة k.4 4 وهذا يبسط التحقق مما إذا كانت \(\wp\) قد أصبحت "فعالة" (أي أنه يبسط تحديد ما إذا كانت بعض مجموعة الدفعات PAY r يحتوي على \(\wp\). عندما تكون k = 0، إذا كانت \(\wp\)= SIGi(r, i, i′, a, I, H(I)) و \(\wp\)/\(\in\)PAY r، فيجب علي إعادة تقديم \(\wp\).مجموعات الدفع الرسمية لكل جولة r، يقوم Algorand بالاختيار بشكل عام (بطريقة موضحة لاحقًا) مجموعة دفع واحدة (ربما فارغة)، PAY r، مجموعة الدفع الرسمية للجولة. (في الأساس، يمثل PAY r المدفوعات المستديرة التي حدثت "في الواقع".) كما في النظام المثالي (و Bitcoin)، (1) الطريقة الوحيدة لمستخدم جديد j للدخول إلى النظام أن تكون متلقيًا لدفعة تنتمي إلى مجموعة الدفع الرسمية PAY r لجولة معينة؛ و (2) يحدد PAY r حالة الجولة التالية، Sr+1، من حالة الجولة الحالية، Sr. رمزياً، PAY r : Sr −→Sr+1. على وجه التحديد، 1. مجموعة المفاتيح العامة للجولة r + 1، PKr+1، تتكون من اتحاد PKr ومجموعة الكل مفاتيح المستفيد التي تظهر، لأول مرة، في مدفوعات PAY r؛ و 2. مقدار المال أ(ص+1) أنا أن المستخدم الذي أملكه في الجولة r + 1 هو مجموع ai(r) - أي مبلغ المال الذي امتلكته في الجولة السابقة (0 إذا i̸\(\in\)PKr) — ومجموع المبالغ تدفع لي وفقا لمدفوعات PAY r. باختصار، كما هو الحال في النظام المثالي، كل حالة Sr+1 قابلة للخصم من تاريخ الدفع السابق: ادفع 0، . . . ، دفع ص. 2.4 الكتل والكتل المثبتة في Algorand0، تحدد الكتلة Br المقابلة لـ r الدائرية: r نفسها؛ مجموعة الدفعات جولة ص، دفع ص؛ كمية Qr، سيتم شرحها، وhash للكتلة السابقة، H(Br−1). وهكذا، بدءًا من الكتلة الثابتة B0، لدينا blockchain التقليدية: B1 = (1، الدفع 1، Q0، H(B0))، B2 = (2، دفع 2، Q1، H(B1))، B3 = (3، الدفع 3، Q2، H(B2))، . . . في Algorand، يتم التحقق من صحة الكتلة فعليًا من خلال جزء منفصل من المعلومات، "شهادة الكتلة" CERT r، التي تحول Br إلى كتلة مثبتة، Br. دفتر الأستاذ السحري، لذلك، يتم تنفيذه من خلال تسلسل الكتل المثبتة، ب1، ب2، . . . مناقشة وكما سنرى، يتكون CERT r من مجموعة من التوقيعات الرقمية لـ H(Br)، وتلك الخاصة بـ a أغلبية أعضاء SV r، مع إثبات أن كل واحد من هؤلاء الأعضاء ينتمي بالفعل إلى SV ص. يمكننا بالطبع تضمين شهادات CERT r في الكتل نفسها، لكن يمكننا العثور عليها أنظف من الناحية المفاهيمية لإبقائها منفصلة.) في Bitcoin يجب أن تستوفي كل كتلة خاصية خاصة، أي يجب أن "تحتوي على حل لمشكلة ما". لغز التشفير "، مما يجعل إنشاء الكتل مكثفًا من الناحية الحسابية والشوكات أمرًا لا مفر منه وليس نادرا. على النقيض من ذلك، يتمتع Algorand blockchain بميزتين رئيسيتين: يتم إنشاؤه باستخدام الحد الأدنى من الحساب، ولن يتشعب مع احتمالية عالية للغاية. كل كتلة ثنائية نهائي بأمان بمجرد دخوله إلى blockchain.2.5 احتمال الفشل المقبول لتحليل أمان Algorand، نحدد الاحتمال F، الذي نحن على استعداد لتحليله تقبل حدوث خطأ ما (على سبيل المثال، أن مجموعة التحقق SV r لا تتمتع بأغلبية صادقة). كما في حالة طول الإخراج لوظيفة التشفير hash H، فإن F أيضًا هي معلمة. ولكن، كما في هذه الحالة، نجد أنه من المفيد تعيين F على قيمة محددة، وذلك للحصول على فكرة أكثر سهولة إدراك حقيقة أنه من الممكن بالفعل، في Algorand، التمتع بأمان كافٍ في نفس الوقت والكفاءة الكافية. للتأكيد على أن F هي المعلمة التي يمكن تعيينها حسب الرغبة، في البداية والتجسيدات الثانية التي وضعناها على التوالي و = 10−12 و و = 10−18 . مناقشة لاحظ أن 10−12 هو في الواقع أقل من واحد في تريليون، ونحن نعتقد أن مثل هذا اختيار F مناسب في طلبنا. دعونا نؤكد أن 10−12 ليس هو الاحتمال التي يمكن للخصم من خلالها تزوير مدفوعات مستخدم صادق. جميع المدفوعات رقمية موقعة، وبالتالي، إذا تم استخدام التوقيعات الرقمية المناسبة، فإن احتمال تزوير الدفع يكون ضعيفًا أقل بكثير من 10−12، وهي في الواقع 0. الحدث السيئ الذي نحن على استعداد لتحمله مع الاحتمال F هو شوكات Algorand blockchain. لاحظ أنه من خلال إعدادنا لـ F و جولات مدتها دقيقة واحدة، من المتوقع حدوث شوكة في Algorand blockchain بشكل نادر مثل (تقريبًا) مرة واحدة كل 1.9 مليون سنة. على النقيض من ذلك، في Bitcoin، يحدث الشوك في كثير من الأحيان. قد يقوم الشخص الأكثر تطلبًا بتعيين F إلى قيمة أقل. تحقيقا لهذه الغاية، في تجسيدنا الثاني نحن نفكر في ضبط F على 10−18. لاحظ أنه، على افتراض أنه يتم إنشاء كتلة كل ثانية، 1018 هو العدد المقدر للثواني التي استغرقها الكون حتى الآن: منذ الانفجار الكبير حتى الوقت الحاضر الوقت. وهكذا، مع F = 10−18، إذا تم إنشاء كتلة في الثانية، ينبغي للمرء أن يتوقع لعمر الكون لرؤية شوكة. 2.6 النموذج العدائي تم تصميم Algorand ليكون آمنًا في نموذج عدائي للغاية. دعونا نشرح. المستخدمين الصادقين والضارين يكون المستخدم صادقًا إذا اتبع جميع تعليمات البروتوكول الخاصة به، و قادر تمامًا على إرسال واستقبال الرسائل. المستخدم خبيث (أي بيزنطي، في لغة الحوسبة الموزعة) إذا كان بإمكانه الانحراف بشكل تعسفي عن تعليماته الموصوفة. الخصم The Adversary عبارة عن خوارزمية فعالة (متعددة الحدود من الناحية الفنية)، مشخصة بالألوان، ويمكنها على الفور جعل أي مستخدم ضارًا يريده، في أي وقت يريد (الموضوع فقط إلى الحد الأعلى لعدد المستخدمين الذين يمكنه إفسادهم). يتحكم الخصم بشكل كامل في جميع المستخدمين الضارين وينسقهم بشكل مثالي. فهو يتخذ كافة الإجراءات نيابة عنهم، بما في ذلك استقبال وإرسال جميع رسائلهم، ويمكن السماح لهم بالانحراف عنها تعليماتهم المقررة بطرق تعسفية. أو يمكنه ببساطة عزل إرسال المستخدم التالف واستقبال الرسائل. دعونا نوضح أنه لا يمكن لأي شخص آخر أن يعلم تلقائيًا أن المستخدم ضار، على الرغم من أن خبثه قد يظهر من خلال الإجراءات التي جعله الخصم يتخذها. لكن هذا العدو القوي • ليس لديه قوة حسابية لا حدود لها ولا يمكنه تزوير الرقمية بنجاح توقيع مستخدم صادق، إلا مع احتمال ضئيل؛ و• لا يجوز التدخل بأي شكل من الأشكال في تبادل الرسائل بين المستخدمين الشرفاء. علاوة على ذلك، فإن قدرته على مهاجمة المستخدمين الشرفاء مقيدة بأحد الافتراضات التالية. الصدق أغلبية المال نحن نعتبر سلسلة متواصلة من الأغلبية الصادقة من المال (HMM) الافتراضات: أي لكل عدد صحيح غير سالب k و الحقيقي h > 1/2، HHMk > h: المستخدمون الصادقون في كل جولة يمتلكون جزءًا أكبر من h من إجمالي الأموال الموجودة النظام في الجولة r -k. مناقشة. على افتراض أن جميع المستخدمين الضارين ينسقون أفعالهم بشكل مثالي (كما لو تم التحكم فيها بواسطة كيان واحد، الخصم) هي فرضية متشائمة إلى حد ما. التنسيق المثالي بين أيضا يصعب تحقيق الكثير من الأفراد. ربما يحدث التنسيق فقط ضمن مجموعات منفصلة من اللاعبين الخبيثين ولكن بما أنه لا يمكن للمرء التأكد من مستوى التنسيق بين المستخدمين الضارين قد نستمتع، من الأفضل أن نكون آمنين من أن نأسف. بافتراض أن الخصم يمكنه إفساد المستخدمين سرًا وديناميكيًا وعلى الفور، فهو أيضًا متشائم. ففي النهاية، من الناحية الواقعية، فإن السيطرة الكاملة على عمليات المستخدم يجب أن تستغرق بعض الوقت. يفترض الافتراض HMMk > h، على سبيل المثال، أنه في حالة تنفيذ جولة (في المتوسط). وفي دقيقة واحدة، ستبقى غالبية الأموال في جولة معينة في أيدٍ أمينة ساعتين على الأقل إذا كان k = 120، وأسبوع واحد على الأقل إذا كان k = 10000. لاحظ أن افتراضات HMM والأغلبية الصادقة السابقة لقوة الحوسبة ترتبط الافتراضات بمعنى أنه بما أن القدرة الحاسوبية يمكن شراؤها بالمال، إذا كان المستخدمون الضارون يمتلكون معظم الأموال، فيمكنهم الحصول على معظم قوة الحوسبة. 2.7 نموذج التواصل إننا نتصور أن نشر الرسالة — أي «الثرثرة بين الأقران»5 — هو الوسيلة الوحيدة للتواصل. الاتصالات. الافتراض المؤقت: تسليم الرسائل في الوقت المناسب في الشبكة بأكملها. ل نفترض في معظم أجزاء هذه الورقة أن كل رسالة يتم نشرها تصل إلى جميع المستخدمين الصادقين تقريبًا في الوقت المناسب. وسنقوم بإزالة هذا الافتراض في القسم 10، حيث نتعامل مع الشبكة التقسيمات سواء كانت طبيعية أو مستحثة بشكل عدائي. (كما سنرى، نحن نفترض فقط تسليم الرسائل في الوقت المناسب داخل كل مكون متصل بالشبكة.) إحدى الطرق الملموسة لالتقاط تسليم الرسائل المنتشرة في الوقت المناسب (في الشبكة بأكملها) هي ما يلي: بالنسبة لجميع إمكانية الوصول \(\rho\) > 95% وحجم الرسالة μ \(\in\)Z+، يوجد π\(\rho\),μ بحيث، إذا قام مستخدم صادق بنشر رسالة μ بايت m في الوقت t، ثم يصل m، بمرور الوقت، إلى جزء صغير على الأقل من المستخدمين الصادقين. 5 بشكل أساسي، كما في Bitcoin، عندما يقوم مستخدم بنشر رسالة m، فإن كل مستخدم نشط يستقبل m للمرة الأولى، يختار عشوائيًا وبشكل مستقل عددًا صغيرًا مناسبًا من المستخدمين النشطين، "جيرانه"، الذين يرسل إليهم م، ربما حتى يحصل على اعتراف منهم. ينتهي نشر m عندما لا يتلقى أي مستخدم م لأول مرة.ومع ذلك، لا يمكن للخاصية المذكورة أعلاه أن تدعم بروتوكول Algorand الخاص بنا، دون تصور صريح ومنفصل لآلية للحصول على أحدث blockchain - بواسطة مستخدم/مستودع آخر/إلخ. في الواقع، لبناء كتلة جديدة Br لا ينبغي فقط أن تتلقى مجموعة مناسبة من المدققين الجولة r في الوقت المناسب الرسائل، ولكن أيضًا رسائل الجولات السابقة، وذلك لمعرفة Br−1 وجميع الرسائل السابقة الأخرى الكتل، وهو أمر ضروري لتحديد ما إذا كانت الدفعات في Br صالحة. ما يلي الافتراض بدلا من ذلك يكفي. افتراض نشر الرسالة (MP): بالنسبة لجميع \(\rho\) > 95% و μ \(\in\)Z+، يوجد \(\alpha\),μ بحيث أنه في جميع الأوقات t وجميع الرسائل ذات البايتات m يتم نشرها بواسطة مستخدم صادق قبل t −\(\alpha\) \(\rho\),μ, يتم استلام m، بحلول الوقت t، بواسطة جزء صغير على الأقل \(\rho\) من المستخدمين الصادقين. البروتوكول Algorand ′ يوجه في الواقع كل عدد صغير من المستخدمين (أي القائمين على التحقق من خطوة معينة من الجولة في Algorand ′، لنشر رسالة منفصلة ذات حجم محدد (صغير)، ونحن بحاجة إلى تحديد الوقت اللازم للوفاء بهذه التعليمات. نحن نفعل ذلك من خلال إثراء النائب الافتراض على النحو التالي. بالنسبة لجميع n و \(\rho\) > 95% و μ \(\in\)Z+، يوجد lectn,\(\rho\),μ بحيث أنه في جميع الأوقات t وجميع البايتات الرسائل م1، . . . ، mn، يتم نشر كل منها من قبل مستخدم صادق قبل t −\(\alpha\)n,\(\rho\),μ, m1, . . . ، تم استلام مليون، بحلول الوقت t، على الأقل جزء صغير \(\rho\) من المستخدمين الصادقين. ملاحظة • إن الافتراض أعلاه بسيط عن عمد، ولكنه أيضًا أقوى مما هو مطلوب في بحثنا.6 • للتبسيط، نفترض أن \(\rho\) = 1، وبالتالي نسقط ذكر \(\rho\). • نفترض تشاؤماً أنه، بشرط عدم مخالفة الفرضية النائبة، هو الخصم يتحكم تماما في تسليم كافة الرسائل. على وجه الخصوص، دون أن يلاحظها أحد من قبل صادقين للمستخدمين، يمكن للخصم أن يقرر بشكل تعسفي أي لاعب صادق يتلقى أي رسالة متى، وتسريع تسليم أي رسالة يريدها بشكل تعسفي.7

เบื้องต้น

2.1 การเข้ารหัสลับเบื้องต้น การแฮชในอุดมคติ เราจะพึ่งพาฟังก์ชัน hash การเข้ารหัสลับที่สามารถคำนวณได้อย่างมีประสิทธิภาพ H ซึ่ง จับคู่สตริงที่ยาวตามอำเภอใจกับสตริงไบนารีที่มีความยาวคงที่ ตามประเพณีอันยาวนาน เราสร้างแบบจำลอง H เป็นแบบสุ่ม oracle โดยพื้นฐานแล้วฟังก์ชันที่แมปแต่ละสตริงที่เป็นไปได้ s กับการสุ่มและ สตริงไบนารีที่เลือกอย่างอิสระ (และแก้ไขแล้ว) H(s) ของความยาวที่เลือก ในบทความนี้ H มีเอาต์พุตยาว 256 บิต แท้จริงแล้วความยาวดังกล่าวสั้นพอที่จะทำให้ ระบบมีประสิทธิภาพและยาวนานเพียงพอที่จะทำให้ระบบมีความปลอดภัย ตัวอย่างเช่น เราต้องการให้ H มีความยืดหยุ่นในการชนกัน กล่าวคือ มันควรจะเป็นเรื่องยากที่จะหาสตริง x และ y สองสตริงที่แตกต่างกันเพื่อให้ H(x) = H(y) เมื่อ H เป็น oracle แบบสุ่มที่มีเอาต์พุตยาว 256 บิต การค้นหาคู่ของสตริงดังกล่าวย่อมเป็นเช่นนั้น ความยากลำบาก (ลองสุ่มแล้วอาศัยความขัดแย้งวันเกิดจะได้ 2256/2 = 2128 การทดลอง) การลงนามแบบดิจิทัล ลายเซ็นดิจิทัลช่วยให้ผู้ใช้สามารถตรวจสอบข้อมูลระหว่างกันได้ โดยไม่ต้องแชร์คีย์ลับใดๆ ร่วมกัน รูปแบบลายเซ็นดิจิทัลประกอบด้วยสามอย่างรวดเร็ว อัลกอริธึม: ตัวสร้างคีย์ความน่าจะเป็น G อัลกอริธึมการลงนาม S และอัลกอริธึมการตรวจสอบ V เมื่อกำหนดพารามิเตอร์ความปลอดภัย k ซึ่งเป็นจำนวนเต็มที่สูงพอสมควร ผู้ใช้ i ใช้ G เพื่อสร้างคู่ของ คีย์ k-bit (เช่น สตริง): pki คีย์ "สาธารณะ" และสกีคีย์เซ็นชื่อ "ลับ" ที่ตรงกัน สิ่งสำคัญที่สุดคือ รหัสสาธารณะไม่ได้ "ทรยศ" รหัสลับที่เกี่ยวข้อง นั่นคือแม้จะได้รับความรู้เกี่ยวกับ pki แล้วก็ตาม อีกอย่างหนึ่งคือฉันสามารถคำนวณสกีได้ในเวลาน้อยกว่าทางดาราศาสตร์ ผู้ใช้ฉันใช้สกีเพื่อเซ็นข้อความแบบดิจิทัล สำหรับแต่ละข้อความที่เป็นไปได้ (สตริงไบนารี่) m อันดับแรก hashes m จากนั้นรันอัลกอริทึม S บนอินพุต H(m) และ ski เพื่อสร้างสตริง k-bit sigpki(m) \(\triangleq\)S(H(m), สกี) .3 3เนื่องจาก H ทนทานต่อการชน จึงเป็นไปไม่ได้ในทางปฏิบัติที่การลงนาม m จะเป็นการ "ส่งสัญญาณ" ที่แตกต่างโดยไม่ได้ตั้งใจ ข้อความม'สตริงไบนารี่ sigpki(m) เรียกว่าลายเซ็นดิจิทัลของ i ของ m (สัมพันธ์กับ pki) และสามารถเป็น แสดงได้ง่ายยิ่งขึ้นด้วย sigi(m) เมื่อกุญแจสาธารณะ pki นั้นชัดเจนจากบริบท ทุกคนที่รู้จัก pki สามารถใช้มันเพื่อตรวจสอบลายเซ็นดิจิทัลที่สร้างโดย i โดยเฉพาะเปิด อินพุต (a) คีย์สาธารณะ pki ของผู้เล่น i, (b) ข้อความ m และ (c) สตริง s นั่นคือฉันถูกกล่าวหาว่า ลายเซ็นดิจิทัลของข้อความ m อัลกอริธึมการยืนยัน V จะส่งเอาต์พุต YES หรือ NO คุณสมบัติที่เราต้องการจากแผนลายเซ็นดิจิทัลคือ: 1. ลายเซ็นที่ถูกต้องตามกฎหมายจะได้รับการตรวจสอบเสมอ: ถ้า s = sigi(m) ดังนั้น V (pki, m, s) = Y ES; และ 2. ลายเซ็นดิจิทัลนั้นปลอมแปลงได้ยาก: หากปราศจากความรู้เรื่องการเล่นสกีก็ถึงเวลาที่จะค้นหาสตริงเช่นนั้น V (pki, m, s) = Y ES สำหรับข้อความที่ m ไม่เคยลงนามโดย i นั้นยาวมาก (ตามข้อกำหนดด้านความปลอดภัยที่เข้มงวดของ Goldwasser, Micali และ Rivest [17] นี่เป็นเรื่องจริง แม้ว่าจะสามารถรับลายเซ็นของข้อความอื่นก็ตาม) ด้วยเหตุนี้ เพื่อป้องกันไม่ให้ใครก็ตามเซ็นข้อความในนามของเขา ผู้เล่นคนหนึ่งจะต้องรักษาเขาไว้ การลงนามความลับของสกีที่สำคัญ (ดังนั้นคำว่า "รหัสลับ") และเพื่อให้ทุกคนสามารถตรวจสอบข้อความได้ เขาลงนาม ฉันมีความสนใจในการเผยแพร่ pki คีย์ของเขา (เพราะฉะนั้นคำว่า "คีย์สาธารณะ") โดยทั่วไป ข้อความ m ไม่สามารถเรียกได้จากลายเซ็น sigi(m) เพื่อที่จะจัดการได้อย่างแท้จริง ด้วยลายเซ็นดิจิทัลที่ตอบสนองคุณสมบัติ "ความสามารถในการเรียกคืน" ที่สะดวกตามแนวคิด (เช่น ถึง รับประกันว่าผู้ลงนามและข้อความสามารถคำนวณได้อย่างง่ายดายจากลายเซ็น เรากำหนดไว้ SIGpki(ม.) = (i, m, sigpki(ม.)) และ SIGi(m) = (i, m, sigi(m)) ถ้า pki ชัดเจน การลงนามดิจิทัลที่ไม่ซ้ำใคร นอกจากนี้เรายังพิจารณารูปแบบลายเซ็นดิจิทัล (G, S, V ) ที่เป็นไปตามข้อกำหนด ดังต่อไปนี้ทรัพย์สินเพิ่มเติม 3. เอกลักษณ์ เป็นการยากที่จะหาสตริง pk′, m, s และ s′ เช่นนั้น ส ̸= ส′ และ V (pk′, m, s) = V (pk′, m, s′) = 1 (โปรดทราบว่าคุณสมบัติเฉพาะนั้นมีไว้สำหรับสตริง pk′ ที่ไม่ได้สร้างขึ้นอย่างถูกกฎหมายด้วย กุญแจสาธารณะ อย่างไรก็ตาม โดยเฉพาะอย่างยิ่ง คุณสมบัติเอกลักษณ์บ่งบอกว่า ถ้าใครใช้ ตัวสร้างคีย์ที่ระบุ G เพื่อคำนวณคีย์สาธารณะ pk พร้อมกับคีย์ลับที่ตรงกัน sk และด้วยเหตุนี้ เมื่อรู้จัก sk มันคงเป็นไปไม่ได้เลยที่เขาจะค้นพบดิจิทัลสองแบบที่แตกต่างกัน ลายเซ็นของข้อความเดียวกันที่เกี่ยวข้องกับ pk) หมายเหตุ • จากลายเซ็นเฉพาะไปจนถึงฟังก์ชันสุ่มที่ตรวจสอบได้ สัมพันธ์กับดิจิทัล รูปแบบลายเซ็นที่มีคุณสมบัติเฉพาะตัว การแมป m \(\to\) H(sigi(m)) เชื่อมโยงถึง แต่ละสตริง m ที่เป็นไปได้ สตริง 256 บิตที่ไม่ซ้ำใคร สุ่มเลือก และความถูกต้องของสิ่งนี้ การทำแผนที่สามารถพิสูจน์ได้ด้วยลายเซ็น sigi(m) นั่นคือ hashing ในอุดมคติและโครงร่างลายเซ็นดิจิทัลที่ตอบสนองคุณสมบัติที่เป็นเอกลักษณ์โดยพื้นฐานแล้ว จัดให้มีการใช้งานเบื้องต้นของฟังก์ชันสุ่มที่ตรวจสอบได้ ตามที่แนะนำและโดย มิกาลี ราบิน และวาดาน [27]. (การนำไปปฏิบัติดั้งเดิมนั้นจำเป็นต้องซับซ้อนกว่านี้ เนื่องจากพวกเขาไม่ได้พึ่งพาอุดมคติ hashing)• ความต้องการที่แตกต่างกันสามประการสำหรับลายเซ็นดิจิทัล ใน Algorand ผู้ใช้ที่ฉันพึ่งพาดิจิทัล ลายเซ็นสำหรับ (1) ตรวจสอบการชำระเงินของตัวเอง ในแอปพลิเคชันนี้ คีย์อาจเป็น "ระยะยาว" (เช่น ใช้เพื่อ ลงนามข้อความจำนวนมากในช่วงเวลานาน) และมาจากรูปแบบลายเซ็นทั่วไป (2) การสร้างข้อมูลรับรองเพื่อพิสูจน์ว่าฉันมีสิทธิ์ดำเนินการในบางขั้นตอนของรอบ r ที่นี่ คีย์อาจเป็นระยะยาวได้ แต่ต้องมาจากรูปแบบที่ตอบสนองคุณสมบัติที่เป็นเอกลักษณ์ (3) ตรวจสอบข้อความที่ฉันส่งในแต่ละขั้นตอนที่เขาดำเนินการ ที่นี่ต้องมีกุญแจ ชั่วคราว (เช่น ถูกทำลายหลังจากการใช้งานครั้งแรก) แต่อาจมาจากรูปแบบลายเซ็นธรรมดา • ลดความซับซ้อนด้วยต้นทุนเพียงเล็กน้อย เพื่อความเรียบง่าย เราจินตนาการว่าผู้ใช้แต่ละคน i จะมีคีย์ระยะยาวเพียงคีย์เดียว ดังนั้นคีย์ดังกล่าวจะต้องมาจากรูปแบบลายเซ็นที่มีเอกลักษณ์เฉพาะตัว ทรัพย์สิน ความเรียบง่ายดังกล่าวมีต้นทุนการคำนวณเพียงเล็กน้อย โดยทั่วไปแล้ว ในความเป็นจริงแล้ว ดิจิทัลที่มีเอกลักษณ์เฉพาะตัว ลายเซ็นมีราคาแพงกว่าเล็กน้อยในการผลิตและตรวจสอบมากกว่าลายเซ็นทั่วไป 2.2 บัญชีแยกประเภทสาธารณะในอุดมคติ Algorand พยายามเลียนแบบระบบการชำระเงินต่อไปนี้ โดยอิงตามบัญชีแยกประเภทสาธารณะในอุดมคติ 1. สถานะเริ่มต้น เงินมีความเกี่ยวข้องกับกุญแจสาธารณะส่วนบุคคล (สร้างขึ้นโดยส่วนตัวและ เป็นเจ้าของโดยผู้ใช้) ให้ pk1, . . . , pkj เป็นกุญแจสาธารณะเริ่มต้นและ a1, . . , aj ตามลำดับ จำนวนเงินเริ่มต้นของหน่วยเงิน จากนั้นสถานะเริ่มต้นคือ S0 = (พีเค 1, เอ 1), . . . , (pkj, aj) , ซึ่งถือเป็นความรู้ทั่วไปในระบบ 2. การชำระเงิน ให้ pk เป็นกุญแจสาธารณะในปัจจุบันที่มีหน่วยเงิน \(\geq\)0 และ pk′ สาธารณะอีกอันหนึ่ง คีย์ และ a′ เป็นจำนวนที่ไม่เป็นลบซึ่งไม่มากกว่า a จากนั้น การชำระเงิน (ถูกต้อง) \(\wp\) จะเป็นดิจิทัล ลายเซ็นสัมพันธ์กับ pk โดยระบุการโอน a′ หน่วยการเงินจาก pk ไปยัง pk′ พร้อมกัน พร้อมข้อมูลเพิ่มเติมบางอย่าง ในสัญลักษณ์ \(\wp\)= SIGpk(pk, pk′, a′, I, H(I)), โดยที่ฉันแสดงข้อมูลเพิ่มเติมใด ๆ ที่ถือว่ามีประโยชน์แต่ไม่ละเอียดอ่อน (เช่น เวลา ข้อมูลและตัวระบุการชำระเงิน) และฉันข้อมูลเพิ่มเติมใด ๆ ที่ถือว่าละเอียดอ่อน (เช่น เหตุผลในการชำระเงิน อาจเป็นข้อมูลประจำตัวของเจ้าของ pk และ pk′ เป็นต้น) เราเรียก pk (หรือเจ้าของ) ว่าเป็นผู้ชำระเงิน โดยเรียก pk′ (หรือเจ้าของ) แต่ละรายว่าเป็นผู้รับเงิน และ a′ เป็น จำนวนเงินที่ชำระ \(\wp\) เข้าร่วมฟรีผ่านการชำระเงิน โปรดทราบว่าผู้ใช้สามารถเข้าร่วมระบบได้ทุกเมื่อที่ต้องการ สร้างคู่คีย์สาธารณะ/คีย์ลับของตนเอง ดังนั้นรหัสสาธารณะ pk′ ที่ปรากฏใน การชำระเงิน\(\wp\)ด้านบนอาจเป็นรหัสสาธารณะที่สร้างขึ้นใหม่ซึ่งไม่เคย "เป็นเจ้าของ" เงินใดๆ ก่อน 3. บัญชีแยกประเภทเวทย์มนตร์ ในระบบอุดมคติ การชำระเงินทั้งหมดถูกต้องและปรากฏอยู่ในหลักฐานการงัดแงะ รายการ L ชุดการชำระเงิน “โพสต์บนท้องฟ้า” ให้ทุกคนเห็น: L = จ่าย 1, จ่าย 2, . . . ,แต่ละบล็อก PAY r+1 ประกอบด้วยชุดการชำระเงินทั้งหมดที่ทำตั้งแต่การปรากฏตัวของบล็อก จ่ายอาร์ ในระบบอุดมคติ บล็อกใหม่จะปรากฏขึ้นหลังจากระยะเวลาที่กำหนด (หรือจำกัด) การอภิปราย. • การชำระเงินทั่วไปเพิ่มเติมและธุรกรรมที่ยังไม่ได้ใช้ โดยทั่วไปถ้าเป็นกุญแจสาธารณะ pk เป็นเจ้าของจำนวนเงิน a ดังนั้นการชำระเงินที่ถูกต้อง \(\wp\)ของ pk อาจโอนจำนวนเงิน a′ 1, อ' 2, . . ., ตามลำดับกับคีย์ pk′ 1, พีเค' 2, . . . ตราบใดที่ P เจ' เจ \(\leq\)a ใน Bitcoin และระบบที่คล้ายกัน เงินที่เป็นของกุญแจสาธารณะ pk จะถูกแยกออกเป็นสองส่วน จำนวนเงินและการชำระเงิน\(\wp\)ที่ทำโดย pk จะต้องโอนจำนวนเงินที่แยกออกมาดังกล่าว a ทั้งหมด หาก pk ต้องการถ่ายโอนเพียงเศษส่วน a′ < a ของ a ไปยังคีย์อื่น ก็จะต้องถ่ายโอน the ด้วย ยอดคงเหลือ, เอาต์พุตธุรกรรมที่ยังไม่ได้ใช้, ไปยังคีย์อื่น, อาจเป็น pk เอง Algorand ยังใช้งานได้กับคีย์ที่มีจำนวนแยกกัน อย่างไรก็ตามเพื่อที่จะให้ความสำคัญกับการ แง่มุมใหม่ๆ ของ Algorand ตามแนวคิดแล้ว ง่ายกว่าที่จะยึดติดกับรูปแบบการชำระเงินที่ง่ายกว่าของเรา และกุญแจที่มีจำนวนเดียวที่เกี่ยวข้องกัน • สถานะปัจจุบัน โครงการอุดมคติไม่ได้ให้ข้อมูลเกี่ยวกับปัจจุบันโดยตรง สถานะของระบบ (เช่น เกี่ยวกับจำนวนหน่วยเงินที่คีย์สาธารณะแต่ละคีย์มี) ข้อมูลนี้ สามารถสรุปได้จาก Magic Ledger ในระบบอุดมคติ ผู้ใช้ที่ใช้งานอยู่จะจัดเก็บและอัปเดตข้อมูลสถานะล่าสุดอย่างต่อเนื่อง หรือมิฉะนั้นเขาจะต้องสร้างมันขึ้นมาใหม่ ไม่ว่าจะตั้งแต่เริ่มต้นหรือจากครั้งสุดท้ายที่เขา คำนวณมัน (ในเวอร์ชันถัดไปของบทความนี้ เราจะเพิ่ม Algorand เพื่อเปิดใช้งาน ผู้ใช้เพื่อสร้างสถานะปัจจุบันใหม่อย่างมีประสิทธิภาพ) • ความปลอดภัยและ “ความเป็นส่วนตัว” ลายเซ็นดิจิทัลรับประกันว่าจะไม่มีใครสามารถปลอมแปลงการชำระเงินได้ ผู้ใช้รายอื่น ในการชำระเงิน \(\wp\) กุญแจสาธารณะและจำนวนเงินจะไม่ถูกซ่อน แต่เป็นความลับ ข้อมูลฉันเป็น อันที่จริง มีเพียง H(I) เท่านั้นที่ปรากฏใน \(\wp\) และเนื่องจาก H เป็นฟังก์ชัน hash ในอุดมคติ ดังนั้น H(I) เป็นค่าสุ่ม 256 บิต ดังนั้นจึงไม่มีทางที่จะรู้ว่าอะไรดีกว่าฉัน แค่เดาเท่านั้น แต่เพื่อพิสูจน์ว่าฉันเป็นใคร (เช่น เพื่อพิสูจน์เหตุผลในการชำระเงิน) ผู้ชำระเงินอาจเพียงเปิดเผย I ความถูกต้องของข้อมูลที่เปิดเผยสามารถตรวจสอบได้โดยการคำนวณ H(I) และเปรียบเทียบค่าผลลัพธ์กับรายการสุดท้ายของ \(\wp\) อันที่จริง เนื่องจาก H มีความยืดหยุ่นในการชนกัน เป็นการยากที่จะหาค่าที่สอง I′ โดยที่ H(I) = H(I′) 2.3 แนวคิดพื้นฐานและสัญลักษณ์ คีย์ ผู้ใช้ และเจ้าของ คีย์สาธารณะแต่ละคีย์ ("คีย์" เรียกสั้น ๆ ) คีย์สาธารณะแต่ละคีย์จะมีระยะยาวและสัมพันธ์กับรูปแบบลายเซ็นดิจิทัลที่มีคุณสมบัติเฉพาะตัว เว้นแต่จะระบุไว้เป็นอย่างอื่น รหัสสาธารณะที่ฉันเข้าร่วม ระบบเมื่อมีคีย์สาธารณะ j อื่นอยู่แล้วในระบบชำระเงินให้กับ i สำหรับสี เรากำหนดลักษณะเฉพาะของกุญแจ เราเรียกคีย์ i ว่า "เขา" บอกว่าฉันซื่อสัตย์ที่ฉันส่งไป และรับข้อความ ฯลฯ User เป็นคำพ้องความหมายสำหรับคีย์ เมื่อเราต้องการแยกแยะคีย์จาก บุคคลที่เป็นเจ้าของ เราใช้คำว่า "กุญแจดิจิทัล" และ "เจ้าของ" ตามลำดับ ระบบที่ไม่ได้รับอนุญาตและได้รับอนุญาต ระบบไม่ได้รับอนุญาตหากกุญแจดิจิทัลว่าง เพื่อเข้าร่วมได้ตลอดเวลาและเจ้าของสามารถเป็นเจ้าของกุญแจดิจิทัลได้หลายอัน และได้รับอนุญาตเป็นอย่างอื่นการนำเสนอที่ไม่ซ้ำใคร แต่ละอ็อบเจ็กต์ใน Algorand มีการแสดงที่เป็นเอกลักษณ์ โดยเฉพาะอย่างยิ่ง แต่ละเซต {(x, y, z, . . .) : x \(\in\)X, y \(\in\)Y, z \(\in\)Z, . . .} ถูกเรียงลำดับในลักษณะที่กำหนดไว้ล่วงหน้า: เช่น อันดับแรก พจนานุกรมใน x จากนั้นใน y เป็นต้น นาฬิกาความเร็วเดียวกัน ไม่มีนาฬิกาทั่วโลก แต่ผู้ใช้แต่ละคนมีนาฬิกาของตัวเอง นาฬิกาของผู้ใช้ ไม่จำเป็นต้องซิงโครไนซ์แต่อย่างใด อย่างไรก็ตาม เราถือว่าพวกมันทั้งหมดมีความเร็วเท่ากัน ตัวอย่างเช่น เมื่อเป็นเวลา 12.00 น. ตามนาฬิกาของผู้ใช้ i อาจเป็น 14.30 น. ตามเวลา นาฬิกาของผู้ใช้อื่น j แต่เมื่อเป็น 12:01 ตามนาฬิกาของฉันจะเป็น 2:31 ตาม ไปที่นาฬิกาของเจ นั่นคือ “หนึ่งนาทีจะเท่ากัน (โดยพื้นฐานแล้วเหมือนกัน) สำหรับผู้ใช้ทุกคน” รอบ Algorand ถูกจัดเรียงเป็นหน่วยทางลอจิคัล r = 0, 1, . ., เรียกว่ารอบ. เราใช้ตัวยกเพื่อระบุรอบอย่างสม่ำเสมอ เพื่อระบุว่าปริมาณที่ไม่ใช่ตัวเลข Q (เช่น สตริง คีย์สาธารณะ ชุด ลายเซ็นดิจิทัล ฯลฯ) หมายถึงรอบ r เราเพียงแค่เขียน Qr เฉพาะเมื่อ Q เป็นตัวเลขแท้ (ตรงข้ามกับสตริงไบนารี่ที่สามารถตีความได้ว่าเป็นตัวเลข) ให้ทำ เราเขียน Q(r) ดังนั้นสัญลักษณ์ r จึงไม่สามารถตีความได้ว่าเป็นเลขชี้กำลังของ Q ที่ (จุดเริ่มต้นของ a) รอบ r > 0 ชุดของกุญแจสาธารณะทั้งหมดคือ PKr และสถานะของระบบคือ ซีเนียร์ = n ฉัน เป็น(r) ฉัน , . . .  : ฉัน \(\in\)PKro , ที่ไหน (r) ฉัน คือจำนวนเงินที่มีให้กับกุญแจสาธารณะ i โปรดทราบว่า PKr สามารถอนุมานได้จาก Sr และ Sr นั้นอาจระบุส่วนประกอบอื่น ๆ สำหรับกุญแจสาธารณะแต่ละตัว i สำหรับรอบ 0 PK0 คือชุดของคีย์สาธารณะเริ่มต้น และ S0 คือสถานะเริ่มต้น ทั้ง PK0 และ S0 ถือเป็นความรู้ทั่วไปในระบบ เพื่อความง่าย เมื่อเริ่มรอบ r ดังนั้น คือ PK1, . . . , PKr และ S1, . . . , ซีเนียร์ ในรอบ r สถานะของระบบจะเปลี่ยนจาก Sr เป็น Sr+1: ในเชิงสัญลักษณ์ รอบ r: Sr −→Sr+1 การชำระเงิน ใน Algorand ผู้ใช้ชำระเงินอย่างต่อเนื่อง (และเผยแพร่ในลักษณะดังกล่าว) อธิบายไว้ในหัวข้อย่อย 2.7) การชำระเงิน \(\wp\) ของผู้ใช้ i \(\in\)PKr มีรูปแบบและความหมายเหมือนกัน เช่นเดียวกับในระบบอุดมคติ กล่าวคือ \(\wp\)= SIGi(i, i′, a, I, H(I)) . การชำระเงิน \(\wp\) ใช้ได้เป็นรายบุคคลในรอบ r (เป็นการชำระแบบรอบ r หรือเรียกสั้น ๆ ) หาก (1) จำนวนเงิน a น้อยกว่าหรือเท่ากับ a(r) i และ (2) ไม่ปรากฏในชุดการจ่ายเงินอย่างเป็นทางการใดๆ PAY r′ สำหรับ r′ < r (ตามที่อธิบายไว้ด้านล่าง เงื่อนไขที่สองหมายความว่า \(\wp\) ยังไม่มีผลบังคับใช้ ชุดการจ่ายแบบปัดเศษของ i จะมีผลรวมหากผลรวมของจำนวนเงินนั้นไม่เกิน a(r) ฉัน ชุดจ่ายเงิน ชุดการจ่ายเงินแบบ Round-r P คือชุดของการชำระเงินแบบ Round-r โดยที่การชำระเงินสำหรับผู้ใช้แต่ละราย i ของ i ใน P (อาจไม่มีเลย) ใช้ได้โดยรวม ชุดของการจ่ายเงินทุกรอบคือ PAY(r) รอบ-r payset P จะเป็นค่าสูงสุด หากไม่มี superset ของ P เป็น payset แบบปัดเศษ จริงๆ แล้ว เราแนะนำว่าการชำระเงิน \(\wp\)ยังระบุรอบ \(\rho\), \(\wp\)= SIGi(\(\rho\), i, i′, a, I, H(I)) , และไม่สามารถใช้ในรอบใดๆ ภายนอก [\(\rho\), \(\rho\) + k] สำหรับจำนวนเต็มคงที่ที่ไม่ใช่ลบ k.4 4วิธีนี้ทำให้การตรวจสอบง่ายขึ้นว่า \(\wp\) กลายเป็น "มีประสิทธิภาพ" หรือไม่ (เช่น ทำให้การพิจารณาว่าชุดจ่ายเงินบางชุดง่ายขึ้นหรือไม่ PAY r มี \(\wp\) เมื่อ k = 0 ถ้า \(\wp\)= SIGi(r, i, i′, a, I, H(I)) และ \(\wp\)/\(\in\)PAY r แล้วฉันต้องส่ง \(\wp\) ใหม่การจ่ายเงินอย่างเป็นทางการ สำหรับทุกรอบ r Algorand จะเลือกแบบสาธารณะ (ในลักษณะที่อธิบายไว้ในภายหลัง) ชุดจ่ายเงินเดียว (อาจว่างเปล่า), PAY r, ชุดจ่ายเงินอย่างเป็นทางการของรอบ (โดยพื้นฐานแล้ว PAY r แสดงถึง การชำระรอบที่ "เกิดขึ้นจริง" ) เช่นเดียวกับในระบบอุดมคติ (และ Bitcoin) (1) วิธีเดียวที่ผู้ใช้ใหม่ j จะเข้าสู่ระบบได้ คือการเป็นผู้รับการชำระเงินที่อยู่ในชุดการชำระเงินอย่างเป็นทางการ PAY r ของรอบที่กำหนด r; และ (2) PAY r กำหนดสถานะของรอบต่อไป Sr+1 จากรอบปัจจุบัน Sr ในเชิงสัญลักษณ์ จ่าย r : Sr −→Sr+1 โดยเฉพาะ 1. ชุดกุญแจสาธารณะของรอบ r + 1, PKr+1 ประกอบด้วยการรวมกันของ PKr และชุดของทั้งหมด รหัสผู้รับเงินที่ปรากฏเป็นครั้งแรกในการชำระเงิน PAY r; และ 2. จำนวนเงิน a(r+1) ฉัน ที่ผู้ใช้ที่ฉันเป็นเจ้าของในรอบ r + 1 คือผลรวมของ ai(r) —i.e. จำนวนเงินที่ฉันเป็นเจ้าของในรอบที่แล้ว (0 ถ้า i ̸\(\in\)PKr)— และผลรวมของจำนวนเงิน จ่ายให้กับฉันตามการชำระเงินของ PAY r โดยสรุป เช่นเดียวกับในระบบอุดมคติ แต่ละสถานะ Sr+1 สามารถหักจากประวัติการชำระเงินครั้งก่อนได้: จ่าย 0, . . . , จ่าย r. 2.4 บล็อกและบล็อกที่พิสูจน์แล้ว ใน Algorand0 บล็อก Br สอดคล้องกับรอบ r ระบุ: r ตัวมันเอง; ชุดการชำระเงินของ รอบ r, จ่าย r; ปริมาณ Qr ที่จะอธิบาย และ hash ของบล็อกก่อนหน้า H(Br−1) ดังนั้น เริ่มต้นจากบล็อกคงที่ B0 เรามี blockchain แบบเดิม: B1 = (1, จ่าย 1, Q0, H(B0)), B2 = (2, จ่าย 2, Q1, H(B1)), B3 = (3, จ่าย 3, Q2, H(B2)), . . . ใน Algorand ความถูกต้องของบล็อกนั้นได้รับการรับรองโดยข้อมูลที่แยกต่างหาก “ใบรับรองบล็อก” CERT r ซึ่งเปลี่ยน Br ให้เป็นบล็อกที่ได้รับการพิสูจน์แล้ว Br. ดังนั้นบัญชีแยกประเภทเวทย์มนตร์ ถูกนำมาใช้ตามลำดับของบล็อกที่พิสูจน์แล้ว บี1 บี2 . . . การอภิปราย ดังที่เราจะได้เห็น CERT r ประกอบด้วยชุดลายเซ็นดิจิทัลสำหรับ H(Br) ของ a สมาชิกส่วนใหญ่ของ SV r พร้อมด้วยหลักฐานว่าสมาชิกแต่ละคนเป็นสมาชิกจริงๆ ถึง SV อาร์ แน่นอนว่าเราสามารถรวมใบรับรอง CERT r ไว้ในบล็อกได้ แต่ก็พบว่า สะอาดยิ่งขึ้นเพื่อแยกมันออกจากกัน) ใน Bitcoin แต่ละบล็อกจะต้องเป็นไปตามคุณสมบัติพิเศษ กล่าวคือ ต้อง "ประกอบด้วยวิธีแก้ปัญหาของ crypto puzzle” ซึ่งทำให้การสร้างบล็อกมีความเข้มข้นในการคำนวณและทางแยกเป็นสิ่งที่หลีกเลี่ยงไม่ได้ และไม่หายาก ในทางตรงกันข้าม blockchain ของ Algorand มีข้อดีหลักสองประการ: มันถูกสร้างขึ้นด้วย การคำนวณขั้นต่ำ และจะไม่แยกความเป็นไปได้สูงอย่างท่วมท้น แต่ละบล็อกบินั้น สิ้นสุดอย่างปลอดภัยทันทีที่เข้าสู่ blockchain2.5 ความน่าจะเป็นของความล้มเหลวที่ยอมรับได้ เพื่อวิเคราะห์ความปลอดภัยของ Algorand เราระบุความน่าจะเป็น F ที่เรายินดี ยอมรับว่ามีบางอย่างผิดพลาด (เช่น ชุดผู้ตรวจสอบ SV r ไม่มีเสียงส่วนใหญ่ที่ซื่อสัตย์) เช่นเดียวกับในกรณีของความยาวเอาต์พุตของฟังก์ชันการเข้ารหัส hash H F ก็เป็นพารามิเตอร์เช่นกัน แต่ในกรณีนั้น เราพบว่าการตั้งค่า F ให้เป็นค่าที่เป็นรูปธรรมนั้นมีประโยชน์ เพื่อให้ได้สัญชาตญาณมากขึ้น เข้าใจถึงความจริงที่ว่าเป็นไปได้จริงใน Algorand ที่จะเพลิดเพลินกับการรักษาความปลอดภัยที่เพียงพอไปพร้อมๆ กัน และประสิทธิภาพที่เพียงพอ เพื่อเน้นย้ำว่า F เป็นพารามิเตอร์ที่สามารถตั้งค่าได้ตามต้องการในตอนแรก และรูปลักษณ์ที่สองที่เรากำหนดไว้ตามลำดับ ฉ = 10−12 และ ฉ = 10−18 . การอภิปราย โปรดทราบว่าจริงๆ แล้ว 10−12 นั้นน้อยกว่าหนึ่งในล้านล้าน และเราเชื่อว่า a การเลือก F นั้นเพียงพอในใบสมัครของเรา ให้เราเน้นว่า 10−12 ไม่ใช่ความน่าจะเป็น ซึ่งฝ่ายตรงข้ามสามารถปลอมแปลงการชำระเงินของผู้ใช้ที่ซื่อสัตย์ได้ การชำระเงินทั้งหมดเป็นแบบดิจิทัล ลงนาม ดังนั้น หากใช้ลายเซ็นดิจิทัลที่เหมาะสม ความน่าจะเป็นในการปลอมการชำระเงินก็คือ ต่ำกว่า 10−12 มาก และแท้จริงแล้วคือ 0 เหตุการณ์เลวร้ายที่เรายินดีจะยอมรับ ด้วยความน่าจะเป็น F คือทางแยกของ Algorand blockchain โปรดสังเกตว่า ด้วยการตั้งค่าของเราเป็น F และ รอบยาวหนึ่งนาที คาดว่าทางแยกจะเกิดขึ้นใน Algorand's blockchain ไม่บ่อยนัก (ประมาณ) หนึ่งครั้งใน 1.9 ล้านปี ในทางตรงกันข้าม ใน Bitcoin การ fork เกิดขึ้นค่อนข้างบ่อย คนที่มีความต้องการมากกว่าอาจตั้งค่า F ให้เป็นค่าที่ต่ำกว่า ด้วยเหตุนี้ ในรูปลักษณ์ที่สองของเรา เราพิจารณาตั้งค่า F เป็น 10−18 โปรดทราบว่า สมมติว่ามีการสร้างบล็อกทุกวินาที 1,018 คือจำนวนวินาทีโดยประมาณที่เอกภพทำได้ตั้งแต่บิกแบงจนถึงปัจจุบัน เวลา. ดังนั้น เมื่อ F = 10−18 ถ้าบล็อกถูกสร้างขึ้นในหนึ่งวินาที เราควรจะคาดหวังได้ว่าจะมีอายุเท่ากับ จักรวาลจะเห็นทางแยก 2.6 โมเดลปฏิปักษ์ Algorand ได้รับการออกแบบให้มีความปลอดภัยในรูปแบบที่ไม่เป็นมิตร ให้เราอธิบาย ผู้ใช้ที่ซื่อสัตย์และเป็นอันตราย ผู้ใช้จะซื่อสัตย์หากเขาปฏิบัติตามคำแนะนำโปรโตคอลทั้งหมดของเขาและ สามารถส่งและรับข้อความได้อย่างสมบูรณ์แบบ ผู้ใช้เป็นอันตราย (เช่น Byzantine ในไฟล์ คำพูดของการคำนวณแบบกระจาย) หากเขาสามารถเบี่ยงเบนไปจากคำสั่งที่เขากำหนดโดยพลการ ศัตรู ฝ่ายตรงข้ามเป็นอัลกอริธึมที่มีประสิทธิภาพ (ในทางเทคนิคพหุนาม-เวลา) ซึ่งสร้างขึ้นตามสี ซึ่งสามารถสร้างอันตรายให้กับผู้ใช้คนใดก็ตามที่เขาต้องการได้ทันที ในเวลาใดก็ได้ที่เขาต้องการ (หัวเรื่อง เฉพาะขอบเขตบนของจำนวนผู้ใช้ที่เขาสามารถคอร์รัปชั่นได้) Adversary ควบคุมและประสานงานผู้ใช้ที่เป็นอันตรายทั้งหมดได้อย่างสมบูรณ์แบบ เขาดำเนินการทั้งหมด ในนามของตนรวมทั้งรับและส่งข้อความของตนทั้งหมดและสามารถปล่อยให้เบี่ยงเบนไปจากได้ คำแนะนำที่กำหนดไว้โดยพลการ หรือเขาสามารถแยกการส่งผู้ใช้ที่เสียหายออกไปได้ และรับข้อความ ให้เราชี้แจงว่าไม่มีใครเรียนรู้โดยอัตโนมัติว่าผู้ใช้ที่ฉันเป็นอันตราย แม้ว่าความมุ่งร้ายของฉันอาจเกิดขึ้นได้จากการกระทำของปฏิปักษ์ที่ทำให้เขาทำ ศัตรูที่ทรงพลังนี้อย่างไรก็ตาม • ไม่มีพลังในการคำนวณที่ไม่จำกัด และไม่สามารถปลอมแปลงดิจิทัลได้สำเร็จ ลายเซ็นของผู้ใช้ที่ซื่อสัตย์ ยกเว้นความน่าจะเป็นเล็กน้อย และ• ไม่สามารถแทรกแซงการแลกเปลี่ยนข้อความระหว่างผู้ใช้ที่ซื่อสัตย์ในทางใดทางหนึ่ง นอกจากนี้ ความสามารถของเขาในการโจมตีผู้ใช้ที่ซื่อสัตย์นั้นถูกผูกไว้ด้วยสมมติฐานข้อใดข้อหนึ่งต่อไปนี้ เงินส่วนใหญ่ที่ซื่อสัตย์ เราพิจารณาความต่อเนื่องของ Honest Majority of Money (HMM) สมมติฐาน: กล่าวคือ สำหรับจำนวนเต็มที่ไม่ใช่ลบแต่ละตัว k และจำนวนจริง h > 1/2 HHMk > h: ผู้ใช้ที่ซื่อสัตย์ในทุกรอบ r เป็นเจ้าของเศษส่วนที่มากกว่า h ของเงินทั้งหมด ระบบที่รอบ r −k การอภิปราย. สมมติว่าผู้ใช้ที่เป็นอันตรายทั้งหมดประสานการกระทำของตนได้อย่างสมบูรณ์แบบ (ราวกับถูกควบคุม โดยเอนทิตีเดียวคือปฏิปักษ์) เป็นสมมติฐานที่ค่อนข้างมองโลกในแง่ร้าย การประสานงานที่สมบูรณ์แบบระหว่างกันด้วย บุคคลจำนวนมากเป็นเรื่องยากที่จะบรรลุเป้าหมาย บางทีการประสานงานอาจเกิดขึ้นเฉพาะภายในกลุ่มที่แยกจากกันเท่านั้น ของผู้เล่นตัวร้าย แต่เนื่องจากไม่มีใครแน่ใจเกี่ยวกับระดับการประสานงานของผู้ใช้ที่เป็นอันตราย อาจจะสนุกได้ เราควรปลอดภัยดีกว่าเสียใจ สมมติว่าฝ่ายตรงข้ามสามารถโจมตีผู้ใช้อย่างลับๆ ไดนามิก และเสียหายได้ทันทีเช่นกัน ในแง่ร้าย ท้ายที่สุดแล้ว ตามความเป็นจริงแล้ว การควบคุมการดำเนินงานของผู้ใช้อย่างสมบูรณ์ควรใช้เวลาสักระยะหนึ่ง สมมติฐาน HMMk > h บ่งบอกเป็นนัย เช่น หากมีการใช้รอบ (โดยเฉลี่ย) ภายในหนึ่งนาที เงินส่วนใหญ่ในรอบที่กำหนดจะยังคงอยู่ในมือของผู้ที่ซื่อสัตย์ อย่างน้อยสองชั่วโมง ถ้า k = 120 และอย่างน้อยหนึ่งสัปดาห์ ถ้า k = 10, 000 โปรดทราบว่าสมมติฐาน HMM และพลังการประมวลผลส่วนใหญ่ที่ซื่อสัตย์ก่อนหน้านี้ สมมติฐานมีความเกี่ยวข้องในแง่ที่ว่า เนื่องจากพลังการประมวลผลสามารถซื้อได้ด้วยเงิน หากผู้ใช้ที่เป็นอันตรายเป็นเจ้าของเงินส่วนใหญ่ พวกเขาก็จะสามารถรับพลังการประมวลผลส่วนใหญ่ได้ 2.7 รูปแบบการสื่อสาร เรามองเห็นการเผยแพร่ข้อความ —เช่น “การนินทาแบบเพื่อนต่อเพื่อน”5— เป็นเพียงวิธีเดียวในการ การสื่อสาร ข้อสันนิษฐานชั่วคราว: การส่งข้อความในเครือข่ายทั้งหมดอย่างทันท่วงที สำหรับ ส่วนใหญ่ของบทความนี้เราถือว่าข้อความที่เผยแพร่ทุกข้อความเข้าถึงผู้ใช้ที่ซื่อสัตย์เกือบทั้งหมด ในเวลาที่เหมาะสม เราจะลบสมมติฐานนี้ในมาตรา 10 ที่เราจัดการกับเครือข่าย พาร์ทิชันทั้งที่เกิดขึ้นตามธรรมชาติหรือถูกชักนำให้เกิดปฏิปักษ์ (ดังที่เราจะได้เห็นเราเพียงสันนิษฐานเท่านั้น การส่งข้อความภายในแต่ละองค์ประกอบที่เชื่อมต่อของเครือข่ายอย่างทันท่วงที) วิธีหนึ่งที่เป็นรูปธรรมในการจับภาพการส่งข้อความที่เผยแพร่อย่างทันท่วงที (ในเครือข่ายทั้งหมด) คือ ต่อไปนี้: สำหรับความสามารถในการเข้าถึงทั้งหมด \(\rho\) > 95% และขนาดข้อความ \(\mu\) \(\in\)Z+ จะมี \(\gamma\) \(\rho\),\(\mu\) อยู่เช่นนั้น ถ้าผู้ใช้จริงเผยแพร่ข้อความ \(\mu\)-ไบต์ m ณ เวลา t จากนั้น m ถึง ตามเวลา t + \(\gamma\) \(\rho\),\(\mu\) อย่างน้อยก็เศษส่วน \(\rho\) ของผู้ใช้ที่ซื่อสัตย์ 5โดยพื้นฐานแล้ว เช่นเดียวกับใน Bitcoin เมื่อผู้ใช้เผยแพร่ข้อความ m ผู้ใช้ที่ใช้งานอยู่ทุกคนที่ฉันได้รับ m เป็นครั้งแรก สุ่มและสุ่มเลือกผู้ใช้งานจำนวนน้อยที่เหมาะสมซึ่งเป็น "เพื่อนบ้าน" ของเขาซึ่งเขาส่งต่อให้ m อาจจะจนกว่าเขาจะได้รับการยอมรับจากพวกเขา การแพร่กระจายของ m สิ้นสุดลงเมื่อไม่มีผู้ใช้ได้รับ ม. เป็นครั้งแรกอย่างไรก็ตาม คุณสมบัติข้างต้นไม่สามารถรองรับโปรโตคอล Algorand ของเราได้ หากไม่มีการมองเห็นกลไกในการรับ blockchain ล่าสุดอย่างชัดเจนและแยกจากกัน — โดยผู้ใช้/คลังข้อมูล/อื่นๆ อื่น ในความเป็นจริง การสร้างบล็อกใหม่ Br ไม่เพียงแต่ชุดผู้ตรวจสอบที่เหมาะสมจะได้รับ Round-r ในเวลาที่เหมาะสมเท่านั้น ข้อความ แต่ยังรวมถึงข้อความของรอบที่แล้วด้วย เพื่อจะได้ทราบ Br−1 และข้อความอื่นๆ ทั้งหมดก่อนหน้านี้ บล็อกซึ่งจำเป็นในการพิจารณาว่าการชำระเงินใน Br นั้นถูกต้องหรือไม่ ต่อไปนี้ สมมติฐานกลับประสบผลสำเร็จ สมมติฐานการเผยแพร่ข้อความ (MP): สำหรับ \(\rho\) ทั้งหมด > 95% และ \(\mu\) \(\in\)Z+ จะมี \(\gamma\) \(\rho\),\(\mu\) อยู่ เช่นนั้นตลอดเวลา t และข้อความ \(\mu\)-byte ทั้งหมด m เผยแพร่โดยผู้ใช้ที่ซื่อสัตย์ก่อน t −\(\gamma\) \(\rho\),\(\mu\), m ได้รับตามเวลา t อย่างน้อยก็เศษส่วน \(\rho\) ของผู้ใช้ที่ซื่อสัตย์ โปรโตคอล Algorand ′ จริงๆ แล้วแนะนำผู้ใช้แต่ละรายในจำนวนเล็กน้อย (เช่น ผู้ตรวจสอบของ กำหนดขั้นตอนของรอบใน Algorand ′ เพื่อเผยแพร่ข้อความแยกต่างหากในขนาดที่กำหนด (เล็ก) และเราต้องจำกัดเวลาที่จำเป็นเพื่อปฏิบัติตามคำแนะนำเหล่านี้ เราทำเช่นนั้นโดยการเพิ่มคุณค่าให้กับ MP สมมติฐานดังต่อไปนี้ สำหรับทั้งหมด n, \(\rho\) > 95% และ \(\mu\) \(\in\)Z+ จะมี \(\lambda\)n,\(\rho\),\(\mu\) ในลักษณะที่ว่า สำหรับทุกเวลา t และ \(\mu\)-ไบต์ทั้งหมด ข้อความ m1, . . . , mn แต่ละรายการเผยแพร่โดยผู้ใช้ที่ซื่อสัตย์ก่อน t −\(\gamma\)n,\(\rho\),\(\mu\), m1, . . , ล้านที่ได้รับ ตามเวลา t อย่างน้อยก็เศษ \(\rho\) ของผู้ใช้ที่ซื่อสัตย์ หมายเหตุ • สมมติฐานข้างต้นจงใจเรียบง่าย แต่ยังแข็งแกร่งเกินความจำเป็นในรายงานของเรา6 • เพื่อความง่าย เราถือว่า \(\rho\) = 1 และเลิกกล่าวถึง \(\rho\) • เราสันนิษฐานในแง่ร้ายว่า หากเขาไม่ละเมิดสมมติฐานของ MP นั่นก็คือปฏิปักษ์ ควบคุมการส่งข้อความทั้งหมดโดยสิ้นเชิง โดยเฉพาะโดยไม่ถูกสังเกตจากคนซื่อสัตย์ ผู้ใช้ ฝ่ายตรงข้าม เขาสามารถตัดสินใจได้โดยพลการว่าผู้เล่นที่ซื่อสัตย์คนใดจะได้รับข้อความใดเมื่อใด และเร่งส่งข้อความใด ๆ ที่เขาต้องการโดยพลการ7

بروتوكول مكتبة الإسكندرية ⋆ في بيئة تقليدية

كما تم التأكيد عليه سابقًا، تعد الاتفاقية البيزنطية عنصرًا أساسيًا في Algorand. في الواقع، لقد تم ذلك استخدام بروتوكول BA الذي لا يتأثر Algorand بالشوكات. ومع ذلك، لتكون آمنة ضدنا يجب أن يعتمد الخصم القوي، Algorand على بروتوكول BA الذي يلبي إمكانية استبدال اللاعب الجديد القيد. بالإضافة إلى ذلك، لكي يكون Algorand فعالاً، يجب أن يكون بروتوكول مكتبة الإسكندرية فعالاً للغاية. تم تعريف بروتوكولات BA لأول مرة لنموذج اتصال مثالي متزامن كامل الشبكات (شبكات SC). يسمح هذا النموذج بتصميم وتحليل أبسط لبروتوكولات مكتبة الإسكندرية. 6بالنظر إلى النسبة المئوية الصادقة h واحتمال الفشل المقبول F، Algorand يحسب الحد الأعلى، N، إلى الحد الأقصى لعدد أعضاء التحقق في الخطوة. وبالتالي، فإن افتراض MP يحتاج فقط إلى الاحتفاظ بـ n \(\geq\)N. بالإضافة إلى ذلك، وكما ذكرنا، فإن افتراض MP يظل ساريًا بغض النظر عن عدد الرسائل الأخرى التي قد يتم نشرها جنبًا إلى جنب إم جي. ومع ذلك، كما سنرى، في Algorand يتم نشر الرسائل في وقت غير متداخل بشكل أساسي الفواصل الزمنية، التي يتم خلالها نشر كتلة واحدة، أو على الأكثر تقوم أدوات التحقق N بنشر كتلة صغيرة (على سبيل المثال، 200B) رسالة. وبالتالي، يمكننا إعادة صياغة افتراض MP بطريقة أضعف، ولكن أيضًا أكثر تعقيدًا. 7على سبيل المثال، يمكنه أن يتعلم على الفور الرسائل التي يرسلها اللاعبون الصادقون. وهكذا، مستخدم ضار أنا ′، من هو عندما يُطلب منك نشر رسالة في وقت واحد مع مستخدم صادق، يمكنني دائمًا اختيار رسالته الخاصة بناءً على ذلك الرسالة m تم نشرها بالفعل بواسطة i. ترتبط هذه القدرة بالاندفاع، بلغة الحساب الموزع الأدب.وبناء على ذلك، في هذا القسم، نقدم بروتوكول BA جديد، BA⋆، لشبكات SC وتجاهل مسألة استبدال اللاعب تمامًا. البروتوكول BA⋆ هو مساهمة ذات قيمة منفصلة. في الواقع، إنه بروتوكول التشفير الأكثر كفاءة لشبكات SC المعروفة حتى الآن. لاستخدامه ضمن بروتوكول Algorand الخاص بنا، نقوم بتعديل BA⋆ قليلاً، وذلك لمراعاة اختلافاتنا نموذج وسياق الاتصال، ولكن تأكد، في القسم X، من تسليط الضوء على كيفية استخدام BA⋆ ضمن بروتوكولنا الفعلي Algorand ′. نبدأ بالتذكير بالنموذج الذي تعمل به شركة BA⋆ وفكرة الاتفاقية البيزنطية. 3.1 شبكات كاملة متزامنة ومطابقة الخصوم في شبكة SC، هناك ساعة مشتركة، تدق في كل الأوقات التكاملية r = 1، 2، . . . في كل مرة تنقر فيها على r، يرسل كل لاعب رسالة فردية على الفور وفي نفس الوقت رسالة السيد i,j (ربما الرسالة الفارغة) لكل لاعب j، بما في ذلك نفسه. كل السيد تم استلام i,j في الوقت المناسب، انقر فوق r + 1 بواسطة اللاعب j، مع هوية المرسل i. مرة أخرى، في بروتوكول الاتصال، يكون اللاعب صادقًا إذا اتبع كل ما هو موصوف له التعليمات، والخبيثة خلاف ذلك. يتم التحكم في جميع اللاعبين الخبيثين بشكل كامل وكامل يتم تنسيقها من قبل الخصم، الذي، على وجه الخصوص، يتلقى على الفور جميع الرسائل الموجهة إليه اللاعبين الضارين، ويختار الرسائل التي يرسلونها. يمكن للخصم أن يتسبب على الفور في إلحاق الضرر بأي مستخدم صادق يريده في أي وقت غريب يريد، مع مراعاة الحد الأقصى المحتمل لعدد اللاعبين الخبيثين. هذا هو، الخصم "لا يمكنه التدخل في الرسائل التي أرسلها مستخدم صادق بالفعل"، وهو ما سيكون تسليمها كالمعتاد. يتمتع الخصم أيضًا بقدرة إضافية على الرؤية الفورية، في كل جولة زوجية، لل الرسائل التي يرسلها اللاعبون الصادقون حاليًا، ويستخدمون هذه المعلومات على الفور للاختيار الرسائل التي يرسلها اللاعبون الضارون في نفس الوقت تضع علامة. ملاحظات • قوة الخصم. الإعداد أعلاه عدائي للغاية. وبالفعل في الاتفاقية البيزنطية الأدب، العديد من الإعدادات أقل خصومة. ومع ذلك، هناك بعض الإعدادات الخصومة كما تم أخذ بعين الاعتبار، حيث يقوم الخصم، بعد رؤية الرسائل المرسلة من قبل لاعب صادق أي في وقت معين، انقر فوق r، لديه القدرة على مسح كل هذه الرسائل من الشبكة، على الفور فاسد، اختر الرسالة التي أرسلها الآن ضارًا في الوقت المناسب، انقر فوق r، واحصل عليها تسليمها كالمعتاد. إن القوة المتصورة للخصم تطابق تلك الموجودة في بيئتنا. • التجريد المادي. نموذج الاتصال المتوخى يلخص نموذجا أكثر مادية، يتم فيها ربط كل زوج من اللاعبين (i، j) بخط اتصال منفصل وخاص li،j. أي أنه لا يمكن لأي شخص آخر حقن الرسائل المرسلة أو التدخل فيها أو الحصول على معلومات حولها لي، ي. الطريقة الوحيدة التي يمكن للخصم من خلالها الوصول إلى li,j هي إفساد i أو j. • الخصوصية والمصادقة. في شبكات SC يتم ضمان خصوصية الرسائل والمصادقة عليها بالافتراض. وعلى النقيض من ذلك، في شبكة اتصالاتنا، حيث يتم نشر الرسائل من نظير إلى نظير، يتم ضمان المصادقة عن طريق التوقيعات الرقمية، والخصوصية معدومة. وبالتالي، لاعتماد البروتوكول BA⋆ في إعداداتنا، يجب توقيع كل رسالة متبادلة رقميًا (مزيد من تحديد الدولة التي تم إرسالها إليها). لحسن الحظ، بروتوكولات مكتبة الإسكندرية التي نحن فكر في استخدام Algorand ولا يتطلب خصوصية الرسالة.3.2 فكرة الاتفاق البيزنطي تم تقديم فكرة الاتفاقية البيزنطية بواسطة بيز شوستاك ولامبورت [31] لـ الحالة الثنائية، أي عندما تتكون كل قيمة أولية من بت. ومع ذلك، تم تمديده بسرعة إلى القيم الأولية التعسفية. (راجع استطلاعات Fischer [16] وChor وDwork [10].) البروتوكول، نعني بروتوكولًا ذا قيمة تعسفية. التعريف 3.1. في شبكة متزامنة، دع P يكون بروتوكول n-player، ومجموعة المشغلات الخاصة به شائعة المعرفة بين اللاعبين، t عدد صحيح موجب مثل n \(\geq\)2t + 1. نقول أن P هو قيمة تعسفية (ثنائية على التوالي) (n، t) -بروتوكول الاتفاقية البيزنطية مع السلامة \(\sigma\) \(\in\)(0, 1) إذا، لكل مجموعة من القيم V لا تحتوي على الرمز الخاص \(\bot\)(على التوالي، لـ V = {0, 1})، في التنفيذ الذي يكون فيه معظم اللاعبين ضارين ويبدأ فيه كل لاعب بـ القيمة الأولية vi \(\in\)V ، يتوقف كل لاعب صادق j مع الاحتمال 1، ويخرج قيمة خارج \(\in\)V \(\cup\){\(\bot\)} وذلك لتحقيق الشرطين التاليين، مع احتمال لا يقل عن \(\sigma\): 1. الاتفاقية: يوجد \(\in\)V \(\cup\){\(\bot\)} بحيث يكون outi = outi لجميع اللاعبين الشرفاء i. 2. الاتساق: إذا، بالنسبة لبعض القيمة v \(\in\)V ، vi = v لجميع اللاعبين الصادقين، فإن out = v. نشير إلى outi بمخرجات P، وإلى كل outi بمخرجات اللاعب i. 3.3 تدوين مكتبة الإسكندرية # في بروتوكولات BA الخاصة بنا، يُطلب من اللاعب حساب عدد اللاعبين الذين أرسلوا له رسالة معينة خطوة معينة. وفقًا لذلك، لكل قيمة محتملة v يمكن إرسالها،

س

ط (ت) (أو فقط #i(v) عندما يكون s واضحًا) هو عدد اللاعبين j الذين تلقيت منهم v في الخطوات s. مع التذكير بأن اللاعب أتلقى رسالة واحدة بالضبط من كل لاعب j, إذا كان عدد اللاعبين هو n، إذن، لكل i و s، P ضد #س ط (الخامس) = ن. 3.4 بروتوكول BA الثنائي BBA⋆ في هذا القسم نقدم بروتوكول BA الثنائي الجديد، BBA⋆، والذي يعتمد على صدق المزيد أكثر من ثلثي اللاعبين وهو سريع جدًا: بغض النظر عما قد يفعله اللاعبون الخبيثون، كل تنفيذ للحلقة الرئيسية يجعل اللاعبين يتفقون مع الاحتمال 1/3. كل لاعب لديه مفتاحه العام الخاص بنظام التوقيع الرقمي الذي يلبي التوقيع الفريد الملكية. نظرًا لأن هذا البروتوكول مخصص للتشغيل على شبكة كاملة متزامنة، فلا يوجد ضرورة قيام اللاعب بالتوقيع على كل رسالة من رسائله. يتم استخدام التوقيعات الرقمية لإنشاء بت عشوائي مشترك بدرجة كافية في الخطوة 3. (في Algorand، تُستخدم التوقيعات الرقمية لمصادقة جميع الرسائل الأخرى أيضًا.) يتطلب البروتوكول الحد الأدنى من الإعداد: سلسلة عشوائية مشتركة r، مستقلة عن اللاعبين مفاتيح. (في Algorand، يتم استبدال r فعليًا بالكمية Qr.) بروتوكول BBA⋆ عبارة عن حلقة مكونة من 3 خطوات، حيث يقوم اللاعبون بتبادل القيم المنطقية بشكل متكرر، و يمكن للاعبين المختلفين الخروج من هذه الحلقة في أوقات مختلفة. لاعب يخرج من هذه الحلقة عن طريق الانتشار، في خطوة ما، إما قيمة خاصة 0∗ أو قيمة خاصة 1∗، وبالتالي إرشاد جميع اللاعبين إلى "يتظاهرون" أنهم يتلقون على التوالي 0 و1 من i في جميع الخطوات المستقبلية. (وقال بدلا من ذلك: افترضأن آخر رسالة تلقاها اللاعب j من لاعب آخر كنت قليلاً ب. ثم في أي خطوة حيث لا يتلقى أي رسالة من i، j يتصرف كما لو أنني أرسلت له البت b.) يستخدم البروتوكول عدادًا \(\gamma\)، يمثل عدد مرات تنفيذ الحلقة المكونة من 3 خطوات. في بداية BBA⋆، \(\gamma\) = 0. (قد يفكر المرء في \(\gamma\) كعداد عالمي، لكنه في الواقع متزايد بواسطة كل لاعب على حدة في كل مرة يتم فيها تنفيذ الحلقة.) يوجد n \(\geq\)3t + 1، حيث t هو الحد الأقصى لعدد اللاعبين الضارين. ثنائي يتم تعريف السلسلة x بالعدد الصحيح الذي يكون تمثيله الثنائي (مع البادئات المحتملة 0) هو x؛ ويشير lsb(x) إلى الجزء الأقل أهمية من x. بروتوكول BBA⋆ (الاتصال) الخطوة 1. [خطوة العملة الثابتة إلى 0] أرسل كل لاعب ثنائيًا. 1.1 إذا رقم 1 i (0) \(\geq\)2t + 1، ثم أقوم بتعيين bi = 0، وإرسال 0∗، والمخرجات outi = 0، ويتوقف. 1.2 إذا رقم 1 i (1) \(\geq\)2t + 1، ثم أقوم بتعيين bi = 1. 1.3 بخلاف ذلك، i تحدد bi = 0. (الاتصال) الخطوة 2. [خطوة العملة الثابتة إلى 1] أرسل كل لاعب ثنائيًا. 2.1 إذا رقم 2 أنا (1) \(\geq\)2t + 1، ثم أقوم بتعيين ثنائية = 1، يرسل 1∗، المخرجات = 1، ويتوقف. 2.2 إذا رقم 2 ط (0) \(\geq\)2t + 1، ثم قمت بتعيين ثنائية = 0. 2.3 بخلاف ذلك، i تحدد bi = 1. (الاتصال) الخطوة 3. [الخطوة مقلوبة العملة بشكل حقيقي] أرسل لكل لاعب ثنائية وSIGi(r, \(\gamma\)). 3.1 إذا رقم 3 i (0) \(\geq\)2t + 1، ثم أقوم بتعيين bi = 0. 3.2 إذا رقم 3 i (1) \(\geq\)2t + 1، ثم أقوم بتعيين bi = 1. 3.3 بخلاف ذلك، دع Si = {j \(\in\)N الذين أرسلوا لي رسالة مناسبة في هذه الخطوة 3 }، i يحدد bi = c \(\triangleq\)lsb(minj\(\in\)Si H(SIGi(r, \(\gamma\)))); يزيد \(\gamma\)i بمقدار 1؛ ويعود إلى الخطوة 1. نظرية 3.1. عندما يكون n \(\geq\)3t + 1، فإن BBA⋆ هو بروتوكول ثنائي (n، t)-BA مع سلامة 1. تم تقديم دليل على النظرية 3.1 في [26]. تكيفه مع محيطنا وإمكانية استبداله باللاعب الملكية جديدة. ملاحظة تاريخية تم اقتراح بروتوكولات BA الثنائية الاحتمالية لأول مرة بواسطة Ben-Or في الإعدادات غير المتزامنة [7]. بروتوكول BBA⋆ هو تعديل جديد لإعداد المفتاح العام الخاص بنا لـ بروتوكول BA الثنائي لفيلدمان وميكالي [15]. كان البروتوكول الخاص بهم هو أول بروتوكول يعمل بطريقة متوقعة عدد ثابت من الخطوات لقد نجح الأمر من خلال جعل اللاعبين أنفسهم ينفذون عملة مشتركة، فكرة اقترحها رابين ونفذها عبر جهة خارجية موثوقة [32].3.5 الإجماع المتدرج وبروتوكول GC دعونا نتذكر، بالنسبة للقيم التعسفية، أن فكرة الإجماع أضعف بكثير من الاتفاق البيزنطي. التعريف 3.2. دع P يكون بروتوكولًا تكون فيه مجموعة جميع اللاعبين معرفة مشتركة، ولكل منهم اللاعب الذي يعرف بشكل خاص القيمة الأولية التعسفية v' أنا. نقول أن P هو بروتوكول إجماع متدرج (n، t) إذا كان في كل تنفيذ مع n لاعبين معظمها خبيث، كل لاعب نزيه يتوقف عن إخراج زوج من الدرجة القيمة (vi، gi)، حيث gi \(\in\){0, 1, 2}، وذلك لتحقيق الشروط الثلاثة التالية: 1. لجميع اللاعبين الصادقين i وj، |gi −gj| \(\geq\)1. 2. لجميع اللاعبين الصادقين i وj, gi, gj > 0 ⇒vi = vj. 3. إذا كان الخامس ' 1 = \(\cdots\) = v' n = v لبعض القيمة v، ثم vi = v و gi = 2 لجميع اللاعبين الصادقين i. ملاحظة تاريخية إن فكرة الإجماع المتدرج مشتقة ببساطة من فكرة الإجماع المتدرج البث، الذي طرحه فيلدمان وميكالي في [15]، من خلال تعزيز فكرة الصليبية الاتفاقية، كما قدمها دوليف [12]، وصقلها توربين وكوان [33].8 في [15]، قدم المؤلفون أيضًا بروتوكول بث متدرج من 3 خطوات (n، t)، Gradecast، لـ ن \(\geq\)3t+1. تم العثور لاحقًا على بروتوكول بث متدرج أكثر تعقيدًا (n, t) لـ n > 2t+1 بواسطة كاتز وكو [19]. يتكون بروتوكول GC التالي المكون من خطوتين من الخطوتين الأخيرتين من Gradecast، المعبر عنهما في ملفنا تدوين. للتأكيد على هذه الحقيقة، ولمطابقة خطوات البروتوكول Algorand ′ من القسم 4.1، نحن قم بتسمية 2 و 3 خطوات GC على التوالي. بروتوكول جي سي الخطوة 2. أرسل لكل لاعب حرف v′ أنا لجميع اللاعبين. الخطوة 3. أرسل كل لاعب إلى جميع اللاعبين السلسلة x إذا وفقط إذا كان رقم 2 أنا (خ) \(\geq\)2t + 1. تحديد الإخراج. يقوم كل لاعب بإخراج الزوج (vi، gi) المحسوب على النحو التالي: • إذا، بالنسبة لبعض x، رقم 3 i (x) \(\geq\)2t + 1، ثم vi = x وgi = 2. • إذا، بالنسبة لبعض x، رقم 3 i (x) \(\geq\)t + 1، ثم vi = x وgi = 1. • وإلا، vi = \(\bot\) و gi = 0. نظرية 3.2. إذا كان n \(\geq\)3t + 1، فإن GC هو بروتوكول بث متدرج (n، t). يتبع الدليل مباشرة إثبات البروتوكول في [15]، وبالتالي تم حذفه.9 8في جوهر الأمر، في بروتوكول البث المتدرج، (أ) مدخلات كل لاعب هي هوية مميزة اللاعب، المرسل، الذي له قيمة عشوائية v كمدخل خاص إضافي، و(ب) يجب أن تستوفي المخرجات نفس الخصائص 1 و2 من الإجماع المتدرج، بالإضافة إلى الخاصية التالية 3′: إذا كان المرسل صادقًا، فإن vi = v و gi = 2 لجميع اللاعبين الشرفاء i. 9في الواقع، في البروتوكول الخاص بهم، في الخطوة 1، يرسل المرسل قيمته الخاصة v إلى جميع اللاعبين، وكل لاعب أسمح له v' أنا تتكون من القيمة التي تلقاها بالفعل من المرسل في الخطوة 1.3.6 البروتوكول BA⋆ نحن الآن نصف بروتوكول BA ذو القيمة التعسفية BA⋆عبر بروتوكول BA الثنائي BBA⋆و بروتوكول الإجماع المتدرج GC. أدناه، القيمة الأولية لكل لاعب i هي v′ أنا. البروتوكول ب⋆ الخطوتين 1 و2. كل لاعب i ينفذ GC، عند الإدخال v′ i، وذلك لحساب زوج (vi، gi). الخطوة 3، . . . يقوم كل لاعب بتنفيذ BBA⋆—مع الإدخال الأولي 0، إذا كان gi = 2، و1 بخلاف ذلك— لذا أما لحساب بت outi. تحديد الإخراج. كل لاعب يخرج i، إذا كان outi = 0، و\(\bot\)خلاف ذلك. نظرية 3.3. عندما يكون n \(\geq\)3t + 1، يكون BA⋆ عبارة عن بروتوكول (n, t)-BA مع سلامة 1. دليل. نثبت أولاً الاتساق، ثم الاتفاق. إثبات الاتساق. افترض أنه بالنسبة لبعض القيمة v \(\in\)V , v′ i = v. ثم، حسب الخاصية 3 من إجماع متدرج، بعد تنفيذ GC، يتم إخراج جميع اللاعبين الصادقين (الخامس، 2). وبناء على ذلك، 0 هو الجزء الأولي من جميع اللاعبين الصادقين في نهاية تنفيذ BBA⋆. وهكذا بموجب الاتفاقية خاصية الاتفاقية البيزنطية الثنائية، في نهاية تنفيذ BA⋆، outi = 0 لجميع الشرفاء اللاعبين. هذا يعني أن ناتج كل لاعب صادق i في BA⋆is vi = v. ✷ إثبات الاتفاق. نظرًا لأن BBA⋆ هو بروتوكول BA ثنائي أيضًا (أ) outi = 1 لجميع اللاعبين الشرفاء i، أو (ب) outi = 0 لجميع اللاعبين الشرفاء i. في الحالة أ، يخرج جميع اللاعبين الصادقين \(\bot\)in BA⋆، وبالتالي تظل الاتفاقية سارية. لننظر الآن في الحالة ب في هذه الحالة، في تنفيذ BBA⋆، البت الأولي للاعب صادق واحد على الأقل i هو 0. (في الواقع، إذا الجزء الأولي من جميع اللاعبين الصادقين كان 1، إذن، بواسطة خاصية الاتساق لـ BBA⋆، سيكون لدينا outj = 1 لجميع الصادقين j.) وفقًا لذلك، بعد تنفيذ GC، أقوم بإخراج الزوج (v، 2) للبعض القيمة v. وهكذا، حسب الخاصية 1 للإجماع المتدرج، gj > 0 لجميع اللاعبين الصادقين j. وبناء على ذلك، بواسطة الخاصية 2 للإجماع المتدرج، vj = v لجميع اللاعبين الصادقين j. وهذا يعني أنه في نهاية BA⋆، كل لاعب صادق j يخرج v. وبالتالي، تسري الاتفاقية أيضًا في الحالة B. ✷ وبما أن كلا من الاتساق والاتفاق ثابتان، فإن BA⋆ هو بروتوكول BA ذو قيمة تعسفية. ملاحظة تاريخية كان توربين وكوان أول من أظهر أنه بالنسبة لـ n \(\geq\)3t+1، فإن أي ثنائي (n, t) -BA يمكن تحويل البروتوكول إلى قيمة تعسفية (n، t) -بروتوكول BA. تخفيض القيمة التعسفية تعتبر الاتفاقية البيزنطية إلى الاتفاقية البيزنطية الثنائية عبر الإجماع المتدرج أكثر نمطية و أكثر نظافة، ويبسط تحليل بروتوكول Algorand Algorand ′. تعميم BA⋆للاستخدام في Algorand Algorand يعمل حتى عندما تكون جميع الاتصالات عبر النميمة. ومع ذلك، على الرغم من تقديمه في شبكة اتصالات تقليدية ومألوفة، إلا أنه لتمكين مقارنة أفضل مع التقنية السابقة وفهم أسهل، يعمل بروتوكول BA⋆works أيضا في شبكات النميمة. وفي الواقع، في تجسيداتنا التفصيلية لـ Algorand، سنقدمها مباشرة لشبكات النميمة. يجب أن نشير أيضًا إلى أنه يرضي إمكانية استبدال اللاعب الخاصية التي تعد ضرورية لـ Algorand لتكون آمنة في النموذج المتعارض للغاية.

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

พิธีสาร BA ⋆ในการตั้งค่าแบบดั้งเดิม

ตามที่ได้เน้นย้ำไปแล้ว ข้อตกลงไบเซนไทน์เป็นองค์ประกอบสำคัญของ Algorand จริงอยู่ว่ามันผ่านไปแล้ว การใช้โปรโตคอล BA ที่ Algorand ไม่ได้รับอิทธิพลจากส้อม อย่างไรก็ตามเพื่อความปลอดภัยของเรา ฝ่ายตรงข้ามที่ทรงพลัง Algorand ต้องพึ่งพาโปรโตคอล BA ที่ตอบสนองความสามารถในการเปลี่ยนผู้เล่นใหม่ ข้อ จำกัด นอกจากนี้ เพื่อให้ Algorand มีประสิทธิภาพ โปรโตคอล BA ดังกล่าวจะต้องมีประสิทธิภาพอย่างมาก โปรโตคอล BA ถูกกำหนดครั้งแรกสำหรับรูปแบบการสื่อสารในอุดมคติ ซิงโครนัสสมบูรณ์ เครือข่าย (เครือข่าย SC) โมเดลดังกล่าวช่วยให้การออกแบบและการวิเคราะห์โปรโตคอล BA ง่ายขึ้น 6เมื่อพิจารณาจากเปอร์เซ็นต์ h ที่แท้จริงและความน่าจะเป็นความล้มเหลวที่ยอมรับได้ F, Algorand คำนวณขอบเขตบน, N, จนถึงจำนวนสมาชิกของผู้ตรวจสอบสูงสุดในขั้นตอนเดียว ดังนั้นสมมติฐานของ MP จำเป็นต้องคงไว้เพียง n \(\leq\)N เท่านั้น นอกจากนี้ตามที่ระบุไว้ ข้อสันนิษฐานของ MP ยังคงอยู่ไม่ว่าจะมีข้อความอื่น ๆ อีกกี่ข้อความที่สามารถเผยแพร่ควบคู่ไปกับก็ตาม เอ็มเจ ดังที่เราจะได้เห็นใน Algorand ข้อความที่ ได้รับการเผยแพร่ในเวลาที่ไม่ทับซ้อนกัน ช่วงเวลา ในระหว่างที่มีการแพร่กระจายบล็อกเดียวหรือผู้ตรวจสอบ N ส่วนใหญ่เผยแพร่ขนาดเล็ก (เช่น 200B) ข้อความ ดังนั้นเราจึงสามารถย้ำสมมติฐานของ MP ด้วยวิธีที่อ่อนแอกว่า แต่ก็ซับซ้อนกว่าเช่นกัน 7ตัวอย่างเช่น เขาสามารถเรียนรู้ข้อความที่ผู้เล่นซื่อสัตย์ส่งมาได้ทันที ดังนั้นผู้ใช้ที่เป็นอันตราย i′ ซึ่งเป็น ขอให้เผยแพร่ข้อความพร้อมกันกับผู้ใช้ที่ซื่อสัตย์ i สามารถเลือกข้อความของตัวเองได้ตลอดเวลา m′ ตาม ข้อความ m เผยแพร่จริงโดย i ความสามารถนี้เกี่ยวข้องกับการวิ่ง ในสำนวนของการคำนวณแบบกระจาย วรรณกรรมดังนั้น ในส่วนนี้ เราจึงแนะนำโปรโตคอล BA ใหม่ BA⋆ สำหรับเครือข่าย SC และไม่สนใจ ปัญหาเรื่องการเปลี่ยนตัวผู้เล่นโดยสิ้นเชิง โปรโตคอล BA⋆เป็นการมีส่วนร่วมของค่าที่แยกจากกัน แท้จริงแล้ว มันเป็นโปรโตคอล BA เข้ารหัสที่มีประสิทธิภาพมากที่สุดสำหรับเครือข่าย SC ที่รู้จักกันจนถึงตอนนี้ หากต้องการใช้ภายในโปรโตคอล Algorand ของเรา เราจะแก้ไข BA⋆ เล็กน้อย เพื่อที่จะคำนึงถึงความแตกต่างของเรา รูปแบบการสื่อสารและบริบท แต่ต้องแน่ใจว่าในส่วน X เพื่อเน้นวิธีการใช้ BA⋆ ภายในโปรโตคอลจริงของเรา Algorand ′ เราเริ่มต้นด้วยการนึกถึงแบบจำลองที่BA⋆ดำเนินการและแนวคิดของข้อตกลงไบแซนไทน์ 3.1 เครือข่ายที่สมบูรณ์แบบซิงโครนัสและการจับคู่ฝ่ายตรงข้าม ในเครือข่าย SC มีนาฬิกาทั่วไป โดยทำเครื่องหมายที่แต่ละเวลารวม r = 1, 2, . . ในแต่ละช่วงเวลาให้คลิก r ผู้เล่นแต่ละคนที่ฉันจะส่งหนึ่งรายการพร้อมกันทันที ส่งข้อความถึงคุณ i,j (อาจเป็นข้อความว่างเปล่า) ถึงผู้เล่นแต่ละคน j รวมถึงตัวเขาเองด้วย นายแต่ละคน i,j ได้รับแล้ว ในเวลาคลิก r + 1 โดยผู้เล่น j พร้อมด้วยตัวตนของผู้ส่ง i อีกครั้งในโปรโตคอลการสื่อสาร ผู้เล่นจะต้องซื่อสัตย์หากเขาปฏิบัติตามคำสั่งทั้งหมดของเขา คำแนะนำและเป็นอันตรายอย่างอื่น ผู้เล่นที่เป็นอันตรายทั้งหมดได้รับการควบคุมอย่างสมบูรณ์และสมบูรณ์แบบ ประสานงานโดยฝ่ายตรงข้ามซึ่งโดยเฉพาะจะได้รับข้อความทั้งหมดที่จ่าหน้าถึงทันที ผู้เล่นที่เป็นอันตราย และเลือกข้อความที่พวกเขาส่ง ฝ่ายตรงข้ามสามารถสร้างอันตรายให้กับผู้ใช้ที่ซื่อสัตย์ที่เขาต้องการได้ทันทีเมื่อคลิกในเวลาคี่ เขาต้องการ ขึ้นอยู่กับขอบเขตบนที่เป็นไปได้เท่านั้นกับจำนวนผู้เล่นที่เป็นอันตราย นั่นคือ ฝ่ายตรงข้าม "ไม่สามารถรบกวนข้อความที่ส่งโดยผู้ใช้ที่ซื่อสัตย์ i" ซึ่งจะเป็นได้ จัดส่งตามปกติ ฝ่ายตรงข้ามมีความสามารถเพิ่มเติมในการมองเห็นได้ทันทีในแต่ละรอบคู่ ข้อความที่ผู้เล่นที่ซื่อสัตย์ในปัจจุบันส่งและใช้ข้อมูลนี้เพื่อเลือกทันที ข้อความที่ผู้เล่นที่เป็นอันตรายส่งพร้อมกันถูกทำเครื่องหมาย หมายเหตุ • อำนาจของฝ่ายตรงข้าม การตั้งค่าข้างต้นเป็นปฏิปักษ์อย่างมาก แท้จริงแล้วในข้อตกลงไบแซนไทน์ วรรณกรรม การตั้งค่าหลายอย่างมีความขัดแย้งน้อยกว่า อย่างไรก็ตาม มีการตั้งค่าฝ่ายตรงข้ามเพิ่มเติมบางประการ ยังได้รับการพิจารณาว่าฝ่ายตรงข้ามหลังจากเห็นข้อความที่ส่งมาจากผู้เล่นที่ซื่อสัตย์แล้ว ในเวลาที่กำหนดให้คลิก r มีความสามารถในการลบข้อความเหล่านี้ทั้งหมดออกจากเครือข่ายได้ทันที เสียหายฉันเลือกข้อความที่ฉันส่งที่เป็นอันตรายตอนนี้คลิก r และให้พวกเขา จัดส่งตามปกติ พลังที่จินตนาการไว้ของฝ่ายตรงข้ามตรงกับที่เขามีในสภาพแวดล้อมของเรา • สิ่งที่เป็นนามธรรมทางกายภาพ รูปแบบการสื่อสารที่จินตนาการไว้จะเป็นนามธรรมของแบบจำลองทางกายภาพมากขึ้น โดยที่ผู้เล่นแต่ละคู่ (i, j) เชื่อมโยงกันด้วยสายสื่อสารส่วนตัวที่แยกจากกัน li,j นั่นคือไม่มีใครสามารถแทรกแซงหรือรับข้อมูลเกี่ยวกับข้อความที่ส่งไปได้ ลี เจ วิธีเดียวที่ฝ่ายตรงข้ามจะสามารถเข้าถึง li,j ได้คือการทำให้ i หรือ j เสียหาย • ความเป็นส่วนตัวและการรับรองความถูกต้อง ในเครือข่าย SC รับประกันความเป็นส่วนตัวและการรับรองความถูกต้องของข้อความ โดยสมมติฐาน ในทางตรงกันข้าม ในเครือข่ายการสื่อสารของเราซึ่งมีการเผยแพร่ข้อความ จากเพียร์ทูเพียร์ การรับรองความถูกต้องรับประกันด้วยลายเซ็นดิจิทัล และไม่มีความเป็นส่วนตัว ดังนั้น เพื่อนำโปรโตคอล BA⋆ มาใช้กับการตั้งค่าของเรา แต่ละข้อความที่แลกเปลี่ยนควรมีการเซ็นชื่อแบบดิจิทัล (ระบุสถานะที่ถูกส่งต่อไป) โชคดีที่ระเบียบการบริติชแอร์เวย์ที่เรา พิจารณาใช้ใน Algorand ไม่ต้องการความเป็นส่วนตัวของข้อความ3.2 แนวคิดของข้อตกลงไบเซนไทน์ แนวคิดเรื่องข้อตกลงไบแซนไทน์ได้รับการเสนอโดย Pease Shostak และ Lamport [31] สำหรับ กรณีไบนารี นั่นคือเมื่อทุกค่าเริ่มต้นประกอบด้วยบิต อย่างไรก็ตาม ได้มีการขยายออกไปอย่างรวดเร็ว เป็นค่าเริ่มต้นตามอำเภอใจ (ดูการสำรวจของ Fischer [16] และ Chor และ Dwork [10].) โดย BA โปรโตคอล เราหมายถึงหนึ่งค่าที่กำหนดเอง คำจำกัดความ 3.1 ในเครือข่ายซิงโครนัส ให้ P เป็นโปรโตคอล n-player ซึ่งชุดผู้เล่นเป็นเรื่องธรรมดา ความรู้ในหมู่ผู้เล่น t จำนวนเต็มบวก โดยที่ n \(\geq\)2t + 1 เราบอกว่า P คือ an ค่าตามอำเภอใจ (ตามลำดับไบนารี่) (n, t) - โปรโตคอลข้อตกลงไบแซนไทน์ที่มีความสมบูรณ์ \(\sigma\) \(\in\) (0, 1) ถ้าสำหรับทุกชุดของค่า V ที่ไม่มีสัญลักษณ์พิเศษ \(\bot\) (ตามลำดับ สำหรับ V = {0, 1}) ใน การดำเนินการที่ผู้เล่นส่วนใหญ่เป็นอันตรายและผู้เล่นทุกคนที่ฉันเริ่มต้นด้วย ค่าเริ่มต้น vi \(\in\)V ผู้เล่นที่ซื่อสัตย์ทุกคน j หยุดด้วยความน่าจะเป็น 1 โดยส่งออกค่า outi \(\in\)V \(\cup\){\(\bot\)} เพื่อให้เป็นไปตามเงื่อนไขสองประการต่อไปนี้ด้วยความน่าจะเป็นอย่างน้อย \(\sigma\): 1. ข้อตกลง: มี \(\in\)V \(\cup\){\(\bot\)} อยู่ ซึ่ง outi = out สำหรับผู้เล่นที่ซื่อสัตย์ทุกคน i 2. ความสม่ำเสมอ: ถ้าสำหรับค่าบางค่า v \(\in\)V , vi = v สำหรับผู้เล่นที่ซื่อสัตย์ทุกคน แล้ว out = v เราเรียก out ว่าเป็นเอาต์พุตของ P และเรียก outi แต่ละรายการว่าเป็นเอาต์พุตของผู้เล่น 3.3 สัญกรณ์ BA # ในระเบียบการ BA ของเรา ผู้เล่นจะต้องนับจำนวนผู้เล่นที่ส่งข้อความถึงเขา ขั้นตอนที่กำหนด ดังนั้น สำหรับแต่ละค่าที่เป็นไปได้ v ที่อาจถูกส่งไป

ฉัน(วี) (หรือเพียงแค่ #i(v) เมื่อ s ชัดเจน) คือจำนวนผู้เล่น j ที่ฉันได้รับ v ในขั้นตอน s จำได้ว่าผู้เล่นคนหนึ่งฉันได้รับข้อความหนึ่งข้อความจากผู้เล่นแต่ละคน j ถ้าเป็นจำนวน ผู้เล่นคือ n ดังนั้นสำหรับทุก i และ s, P วี #ส ผม(วี) = n. 3.4 ไบนารี BA Protocol BBA⋆ ในส่วนนี้เราจะนำเสนอโปรโตคอล BA ไบนารีใหม่ BBA⋆ ซึ่งอาศัยความซื่อสัตย์มากกว่า มากกว่าสองในสามของผู้เล่นและเร็วมาก ไม่ว่าผู้เล่นที่เป็นอันตรายจะทำอะไรก็ตาม การดำเนินการของลูปหลักแต่ละครั้งจะทำให้ผู้เล่นตกลงกับความน่าจะเป็น 1/3 ผู้เล่นแต่ละคนมีกุญแจสาธารณะของตนเองสำหรับรูปแบบลายเซ็นดิจิทัลที่สอดคล้องกับลายเซ็นที่เป็นเอกลักษณ์ ทรัพย์สิน เนื่องจากโปรโตคอลนี้มีวัตถุประสงค์เพื่อให้ทำงานบนเครือข่ายแบบซิงโครนัสที่สมบูรณ์ จึงไม่มี ต้องการผู้เล่นที่จะลงนามในข้อความของเขาแต่ละข้อความ ลายเซ็นดิจิทัลใช้เพื่อสร้างบิตสุ่มทั่วไปเพียงพอในขั้นตอนที่ 3 (ใน Algorand ลายเซ็นดิจิทัลจะใช้ในการตรวจสอบข้อความอื่นๆ ทั้งหมดเช่นกัน) โปรโตคอลต้องการการตั้งค่าขั้นต่ำ: สตริงสุ่มทั่วไป r โดยไม่ขึ้นกับผู้เล่น กุญแจ (ใน Algorand จริงๆ แล้ว r จะถูกแทนที่ด้วยปริมาณ Qr) Protocol BBA⋆เป็นการวนซ้ำ 3 ขั้นตอนที่ผู้เล่นแลกเปลี่ยนค่าบูลีนซ้ำ ๆ และ ผู้เล่นที่แตกต่างกันอาจออกจากวงนี้ในเวลาที่แตกต่างกัน ผู้เล่นที่ฉันออกจากวงนี้โดยการแพร่กระจาย ในบางขั้นตอน ไม่ว่าจะเป็นค่าพิเศษ 0∗ หรือค่าพิเศษ 1∗ ดังนั้นจึงแนะนำให้ผู้เล่นทุกคน “แกล้งทำเป็น” พวกเขาได้รับ 0 และ 1 จาก i ตามลำดับในขั้นตอนต่อๆ ไป (อีกนัยหนึ่งกล่าวว่า: สมมติว่าข้อความสุดท้ายที่ผู้เล่น j ได้รับจากผู้เล่นคนอื่น ฉันค่อนข้างจะ b แล้วในขั้นตอนใดก็ตาม โดยที่เขาไม่ได้รับข้อความใด ๆ จาก i, j ทำท่าเหมือนกับว่าฉันส่งบิตไปให้เขา b.) โปรโตคอลใช้ตัวนับ \(\gamma\) ซึ่งแสดงถึงจำนวนครั้งที่ดำเนินการวนซ้ำ 3 ขั้นตอน ที่จุดเริ่มต้นของ BBA⋆ \(\gamma\) = 0 (บางคนอาจคิดว่า \(\gamma\) เป็นตัวนับทั่วโลก แต่จริงๆ แล้วเพิ่มขึ้น โดยผู้เล่นแต่ละคนทุกครั้งที่มีการวนซ้ำ) มี n \(\geq\)3t + 1 โดยที่ t คือจำนวนผู้เล่นที่เป็นอันตรายสูงสุดที่เป็นไปได้ ไบนารี สตริง x ถูกระบุด้วยจำนวนเต็มที่มีการแทนค่าไบนารี่ (โดยมี 0 นำหน้าที่เป็นไปได้) คือ x; และ lsb(x) หมายถึงบิตที่มีนัยสำคัญน้อยที่สุดของ x พิธีสาร BBA⋆ (การสื่อสาร) ขั้นตอนที่ 1. [ขั้นตอน Coin-Fixed-To-0] ผู้เล่นแต่ละคนที่ฉันส่งไป 1.1 ถ้า #1 i (0) \(\geq\)2t + 1 จากนั้นฉันตั้งค่า bi = 0 ส่ง 0∗ เอาต์พุต outi = 0 และหยุด 1.2 ถ้า #1 i (1) \(\geq\)2t + 1 จากนั้น i ตั้งค่า bi = 1 1.3 อย่างอื่น ผมตั้งค่า bi = 0 (การสื่อสาร) ขั้นตอนที่ 2 [ขั้นตอน Coin-Fixed-To-1] ผู้เล่นแต่ละคนที่ฉันส่ง Bi 2.1 ถ้า #2 i (1) \(\geq\)2t + 1 จากนั้นฉันตั้งค่า bi = 1 ส่ง 1∗, เอาต์พุตออก = 1, และหยุด 2.2 ถ้า #2 i (0) \(\geq\)2t + 1 จากนั้นฉันตั้งค่า bi = 0 2.3 อย่างอื่น ผมกำหนด bi = 1 (การสื่อสาร) ขั้นตอนที่ 3 [ขั้นตอนการพลิกเหรียญอย่างแท้จริง] ผู้เล่นแต่ละคนที่ฉันส่ง bi และ SIGi(r, \(\gamma\)) 3.1 ถ้า #3 i (0) \(\geq\)2t + 1 จากนั้น i กำหนดให้ bi = 0 3.2 ถ้า #3 i (1) \(\geq\)2t + 1 จากนั้น i กำหนดให้ bi = 1 3.3 มิฉะนั้น ให้ Si = {j \(\in\)N ที่ส่งข้อความที่ถูกต้องให้ฉันในขั้นตอนที่ 3 } ฉันตั้งค่า bi = c \(\triangleq\)lsb(minj\(\in\)Si H(SIGi(r, \(\gamma\)))); เพิ่ม\(\gamma\)i 1; และกลับสู่ขั้นตอนที่ 1 ทฤษฎีบท 3.1 เมื่อใดก็ตามที่ n \(\geq\)3t + 1 BBA⋆เป็นโปรโตคอลไบนารี (n, t)-BA ที่มีความสมบูรณ์ 1 การพิสูจน์ทฤษฎีบท 3.1 ให้ไว้ใน [26] การปรับให้เข้ากับการตั้งค่าของเรา และความสามารถในการเปลี่ยนผู้เล่นได้ ทรัพย์สินเป็นเรื่องแปลกใหม่ หมายเหตุทางประวัติศาสตร์ โปรโตคอล BA ไบนารีที่น่าจะเป็นถูกเสนอครั้งแรกโดย Ben-Or ใน การตั้งค่าแบบอะซิงโครนัส [7] Protocol BBA⋆เป็นการดัดแปลงแบบใหม่ให้เข้ากับการตั้งค่าคีย์สาธารณะของเรา โปรโตคอล BA ไบนารีของ Feldman และ Micali [15] ระเบียบวิธีของพวกเขาเป็นสิ่งแรกที่ทำงานตามที่คาดหวัง จำนวนขั้นตอนคงที่ มันทำงานโดยให้ผู้เล่นใช้เหรียญทั่วไป แนวคิดที่เสนอโดย Rabin ซึ่งนำไปใช้ผ่านฝ่ายที่เชื่อถือได้ภายนอก [32]3.5 ฉันทามติแบบให้คะแนนและพิธีสาร GC ให้เราระลึกถึงคุณค่าตามอำเภอใจ แนวคิดฉันทามติที่อ่อนแอกว่าข้อตกลงไบเซนไทน์มาก คำจำกัดความ 3.2 ให้ P เป็นโปรโตคอลที่ชุดของผู้เล่นทุกคนเป็นความรู้ทั่วไปและแต่ละชุด ผู้เล่น โดยส่วนตัวแล้วฉันรู้ค่าเริ่มต้นโดยพลการ v′ ฉัน เราบอกว่า P เป็นโปรโตคอลฉันทามติแบบให้คะแนน (n, t) หากในทุกการดำเนินการที่มีผู้เล่น n คน ที่ ซึ่งส่วนใหญ่เป็นอันตราย ผู้เล่นที่ซื่อสัตย์ทุกคนฉันหยุดส่งออกคู่ระดับมูลค่า (vi, gi) โดยที่ gi \(\in\){0, 1, 2} เพื่อให้เป็นไปตามเงื่อนไขสามประการต่อไปนี้: 1. สำหรับผู้เล่นตัวจริงทุกคน i และ j |gi −gj| \(\leq\)1 2. สำหรับผู้เล่นที่ซื่อสัตย์ทุกคน i และ j, gi, gj > 0 ⇒vi = vj 3. ถ้า v′ 1 = \(\cdots\) = วี′ n = v สำหรับค่า v บางส่วน จากนั้น vi = v และ gi = 2 สำหรับผู้เล่นที่ซื่อสัตย์ทุกคน i หมายเหตุทางประวัติศาสตร์ แนวคิดของการให้คะแนนอย่างเป็นเอกฉันท์นั้นได้มาจากแนวคิดของการให้คะแนนอย่างเป็นเอกฉันท์ ออกอากาศ นำเสนอโดย Feldman และ Micali ใน [15] โดยการเสริมสร้างแนวคิดของสงครามครูเสด ตามที่แนะนำโดย Dolev [12] และปรับปรุงโดย Turpin และ Coan [33].8 ใน [15] ผู้เขียนยังได้จัดเตรียมโปรโตคอลการออกอากาศแบบให้คะแนน 3 ขั้นตอน (n, t) เกรดแคสต์ สำหรับ n \(\geq\)3t+1 พบโปรโตคอลการออกอากาศแบบให้คะแนนที่ซับซ้อนมากขึ้น (n, t) สำหรับ n > 2t+1 ในภายหลัง โดย แคทซ์ และคู [19]. GC โปรโตคอลสองขั้นตอนต่อไปนี้ประกอบด้วยสองขั้นตอนสุดท้ายของ gradecast ดังที่แสดงในของเรา สัญกรณ์ เพื่อเน้นย้ำข้อเท็จจริงนี้ และเพื่อให้ตรงกับขั้นตอนของโปรโตคอล Algorand ′ ของหัวข้อ 4.1 เรา ตั้งชื่อขั้นตอนที่ 2 และ 3 ของ GC ตามลำดับ พิธีสาร GC ขั้นตอนที่ 2 ผู้เล่นแต่ละคนที่ฉันส่ง v′ ฉันถึงผู้เล่นทุกคน ขั้นตอนที่ 3 ผู้เล่นแต่ละคนที่ฉันส่งสตริง x ให้กับผู้เล่นทุกคนถ้าหาก #2 ผม (x) \(\geq\)2t + 1 การกำหนดเอาท์พุท ผู้เล่นแต่ละคน i ส่งออกคู่ (vi, gi) ที่คำนวณดังนี้: • ถ้าสำหรับ x บางอัน #3 i (x) \(\geq\)2t + 1 จากนั้น vi = x และ gi = 2 • ถ้าสำหรับ x บางอัน #3 i (x) \(\geq\)t + 1 จากนั้น vi = x และ gi = 1 • อย่างอื่น vi = \(\bot\) และ gi = 0 ทฤษฎีบท 3.2 ถ้า n \(\geq\)3t + 1 ดังนั้น GC จะเป็นโปรโตคอลการออกอากาศแบบให้คะแนน (n, t) การพิสูจน์จะตามมาจากโปรโตคอล gradecast ใน [15] ทันที และละเว้นไว้ 9 8โดยพื้นฐานแล้ว ในโปรโตคอลการออกอากาศแบบแบ่งระดับ (ก) ข้อมูลของผู้เล่นทุกคนคืออัตลักษณ์ของผู้มีความโดดเด่น ผู้เล่น ผู้ส่ง ซึ่งมีค่า v เป็นอินพุตส่วนตัวเพิ่มเติม และ (b) เอาต์พุตต้องเป็นไปตามข้อกำหนด คุณสมบัติเดียวกัน 1 และ 2 ของคะแนนฉันทามติ บวกคุณสมบัติต่อไปนี้ 3′: หากผู้ส่งซื่อสัตย์ ดังนั้น vi = v และ gi = 2 สำหรับผู้เล่นที่ซื่อสัตย์ทุกคน i 9แท้จริงแล้ว ในโปรโตคอลของพวกเขา ในขั้นตอนที่ 1 ผู้ส่งส่งมูลค่าส่วนตัวของเขาเอง v ไปยังผู้เล่นทุกคน และผู้เล่นแต่ละคนที่ฉันอนุญาต วี' ฉันประกอบด้วยมูลค่าที่เขาได้รับจริงจากผู้ส่งในขั้นตอนที่ 13.6 พิธีสาร BA⋆ ตอนนี้เราอธิบายโปรโตคอล BA มูลค่าตามอำเภอใจผ่านโปรโตคอล BA ไบนารี BBA⋆และ โปรโตคอลฉันทามติแบบให้คะแนน GC ด้านล่างนี้คือค่าเริ่มต้นของผู้เล่นแต่ละคน i คือ v′ ฉัน พิธีสารBA⋆ ขั้นตอนที่ 1 และ 2 ผู้เล่นแต่ละคนที่ฉันเรียกใช้งาน GC บนอินพุต v′ ฉัน เพื่อคำนวณคู่ (vi, gi) ขั้นตอนที่ 3, . . . ผู้เล่นแต่ละคนที่ฉันรัน BBA⋆—ด้วยอินพุตเริ่มต้น 0 ถ้า gi = 2 และ 1 มิฉะนั้น— ดังนั้น ในการคำนวณบิต outi การกำหนดเอาท์พุท ผู้เล่นแต่ละคน i ส่งออก vi ถ้า outi = 0 และ \(\bot\) มิฉะนั้น ทฤษฎีบท 3.3 เมื่อใดก็ตามที่ n \(\geq\)3t + 1 BA⋆เป็นโปรโตคอล (n, t)-BA ที่มีความสมบูรณ์ 1 หลักฐาน ก่อนอื่นเราพิสูจน์ความสม่ำเสมอ จากนั้นจึงตกลง หลักฐานความสม่ำเสมอ สมมติว่าสำหรับค่าบางค่า v \(\in\)V , v′ i = v จากนั้นตามคุณสมบัติ 3 ของ ฉันทามติอย่างให้คะแนน หลังจากการดำเนินการของ GC ผู้เล่นที่ซื่อสัตย์ทุกคนก็เอาท์พุต (v, 2) ดังนั้น 0 คือ บิตเริ่มต้นของผู้เล่นที่ซื่อสัตย์ทุกคนในตอนท้ายของการดำเนินการ BBA⋆ ดังนั้นตามข้อตกลง คุณสมบัติของข้อตกลงไบเซนไทน์ไบนารี เมื่อสิ้นสุดการดำเนินการของ BA⋆, outi = 0 สำหรับทุกความซื่อสัตย์ ผู้เล่น นี่หมายความว่าผลลัพธ์ของผู้เล่นที่ซื่อสัตย์แต่ละคน i ใน BA⋆is vi = v ✷ หลักฐานข้อตกลง เนื่องจาก BBA⋆เป็นโปรโตคอล BA แบบไบนารีเช่นกัน (A) outi = 1 สำหรับผู้เล่นที่ซื่อสัตย์ทุกคน i หรือ (B) outi = 0 สำหรับผู้เล่นที่ซื่อสัตย์ทุกคน i. ในกรณี A ผู้เล่นที่ซื่อสัตย์ทุกคนจะส่งออก \(\bot\) ใน BA⋆ และด้วยเหตุนี้ ข้อตกลงจึงถืออยู่ พิจารณากรณี B. In ในกรณีนี้ ในการดำเนินการ BBA⋆ บิตเริ่มต้นของผู้เล่นที่ซื่อสัตย์อย่างน้อยหนึ่งคน i จะเป็น 0 (อันที่จริง ถ้า บิตเริ่มต้นของผู้เล่นที่ซื่อสัตย์ทั้งหมดคือ 1 จากนั้นด้วยคุณสมบัติความสม่ำเสมอของ BBA⋆ เราจะได้ outj = 1 สำหรับทุก j.) ดังนั้น หลังจากดำเนินการ GC แล้ว i จะเอาท์พุตคู่ (v, 2) สำหรับบางค่า ค่า v ดังนั้น ตามคุณสมบัติ 1 ของคะแนนฉันทามติ gj > 0 สำหรับผู้เล่นที่ซื่อสัตย์ทุกคน j ตามนั้น โดย คุณสมบัติ 2 ของคะแนนฉันทามติ vj = v สำหรับผู้เล่นที่ซื่อสัตย์ทุกคน j นี่ก็หมายความว่าในตอนท้ายของ BA⋆ ผู้เล่นที่ซื่อสัตย์ทุกคน j เอาท์พุต v ดังนั้นข้อตกลงจึงถือเป็นกรณี B ✷ เนื่องจากทั้งความสอดคล้องและข้อตกลงถือ BA⋆เป็นโปรโตคอล BA ที่มีมูลค่าตามอำเภอใจ หมายเหตุทางประวัติศาสตร์ เทอร์ปินและโคอันเป็นคนแรกที่แสดงให้เห็นว่า สำหรับ n \(\geq\)3t+1 ไบนารีใดๆ (n, t)-BA โปรโตคอลสามารถแปลงเป็นโปรโตคอลค่าใดก็ได้ (n, t) -BA การลดค่าตามอำเภอใจ ข้อตกลงไบเซนไทน์กับข้อตกลงไบเซนไทน์แบบไบนารีผ่านฉันทามติแบบให้คะแนนเป็นแบบแยกส่วนมากกว่าและ สะอาดยิ่งขึ้น และลดความยุ่งยากในการวิเคราะห์โปรโตคอล Algorand ของเรา Algorand ′ การสรุปBA⋆สำหรับใช้ใน Algorand Algorand ทำงานได้แม้ว่าการสื่อสารทั้งหมดจะผ่านก็ตาม นินทา อย่างไรก็ตามแม้จะนำเสนอในรูปแบบเครือข่ายการสื่อสารแบบดั้งเดิมและคุ้นเคยก็ตาม เพื่อให้การเปรียบเทียบที่ดีขึ้นกับงานศิลปะก่อนหน้าและความเข้าใจที่ง่ายขึ้น โปรโตคอล BA⋆works ในเครือข่ายซุบซิบด้วย ในความเป็นจริง ในรูปลักษณ์โดยละเอียดของเราของ Algorand เราจะนำเสนอมัน โดยตรงสำหรับเครือข่ายซุบซิบ นอกจากนี้เรายังจะชี้ให้เห็นว่าสิ่งนี้ทำให้สามารถเปลี่ยนผู้เล่นได้ คุณสมบัติที่มีความสำคัญสำหรับ Algorand ให้มีความปลอดภัยในรูปแบบที่เป็นปฏิปักษ์ที่คิดไว้

โปรโตคอลที่เปลี่ยนผู้เล่น BA ใด ๆ ที่ทำงานอยู่ในเครือข่ายการสื่อสารซุบซิบสามารถทำได้ ทำงานอย่างปลอดภัยภายในระบบ Algorand ที่สร้างสรรค์ โดยเฉพาะมิคาลีและไวกุนธนาธาน ได้ขยายขอบเขต BA⋆ ให้ทำงานอย่างมีประสิทธิภาพอย่างมากกับผู้เล่นที่ซื่อสัตย์ส่วนใหญ่ นั่น โปรโตคอลก็สามารถใช้ใน Algorand ได้เช่นกัน

نموذجان من Algorand

كما تمت مناقشته، على مستوى عالٍ جدًا، تستمر جولة Algorand بشكل مثالي على النحو التالي. أولا، بشكل عشوائي يقوم المستخدم المحدد، القائد، باقتراح وتعميم كتلة جديدة. (تتضمن هذه العملية في البداية اختيار عدد قليل من القادة المحتملين ثم التأكد من ذلك، على الأقل لجزء كبير من الوقت، أ يظهر قائد مشترك واحد.) ثانيًا، يتم اختيار لجنة من المستخدمين يتم اختيارها عشوائيًا، و يصل إلى اتفاق بيزنطي بشأن الكتلة التي اقترحها القائد. (وتتضمن هذه العملية ذلك يتم تشغيل كل خطوة من بروتوكول مكتبة الإسكندرية من قبل لجنة مختارة بشكل منفصل.) الكتلة المتفق عليها ثم يتم توقيعها رقميًا بواسطة عتبة معينة (TH) من أعضاء اللجنة. هذه التوقيعات الرقمية ويتم تعميمها حتى يطمئن الجميع على ما هي الكتلة الجديدة. (وهذا يشمل تعميم بيانات اعتماد الموقعين، والمصادقة فقط على hash للكتلة الجديدة، مما يضمن أن الجميع من المؤكد أن تتعلم الكتلة، بمجرد توضيح hash.) في القسمين التاليين نقدم نموذجين لـ Algorand، Algorand ′ 1 و Algorand ′ 2, التي تعمل في ظل افتراض غالبية المستخدمين الصادقين. في القسم 8 نبين كيفية اعتماد هذه تجسيدات للعمل في ظل افتراض الأغلبية الصادقة من المال. Algorand ′ 1 يتصور فقط أن أكثر من 2/3 من أعضاء اللجنة صادقون. بالإضافة إلى ذلك، في Algorand ′ 1، تم تحديد عدد الخطوات للتوصل إلى الاتفاق البيزنطي عند مستوى مرتفع مناسب الرقم، بحيث يتم ضمان التوصل إلى هذا الاتفاق باحتمالية ساحقة خلال فترة عدد ثابت من الخطوات (ولكن من المحتمل أن يتطلب وقتًا أطول من خطوات Algorand ′) 2). في الحالة البعيدة التي لم يتم فيها التوصل بعد إلى اتفاق بشأن الخطوة الأخيرة، توافق اللجنة على كتلة فارغة، وهي صالحة دائمًا. Algorand ′ 2 يتصور أن عدد الأعضاء الشرفاء في اللجنة يكون دائمًا أكبر من أو يساوي عتبة ثابتة tH (والتي تضمن ذلك، مع احتمال كبير، على الأقل 2/3 أعضاء اللجنة صادقون). بالإضافة إلى ذلك، Algorand ′ 2 ـ يسمح بالموافقة البيزنطية على يمكن الوصول إليه في عدد عشوائي من الخطوات (ولكن من المحتمل أن يكون في وقت أقصر من Algorand ′) 1). من السهل استخلاص العديد من المتغيرات لهذه النماذج الأساسية. على وجه الخصوص، فمن السهل، نظرا Algorand ′ 2، لتعديل Algorand ′ 1 ـ حتى يتمكن البيزنطيون من التوصل إلى اتفاق تعسفي عدد الخطوات. يشترك كلا النموذجين في الجوهر المشترك التالي، والرموز، والمفاهيم، والمعلمات. 4.1 جوهر مشترك الأهداف من الناحية المثالية، لكل جولة r، Algorand سوف تلبي الخصائص التالية: 1. الصواب التام. يتفق جميع المستخدمين الصادقين على نفس الكتلة Br. 2. الاكتمال 1. مع الاحتمال 1، تكون مجموعة الدفعات Br، PAY r، هي الحد الأقصى.10 10 نظرًا لأن مجموعات الدفع مصممة بحيث تحتوي على مدفوعات صالحة، والمستخدمين الصادقين يقومون بإجراء مدفوعات صالحة فقط، وهو الحد الأقصى يحتوي PAY r على المدفوعات "المستحقة حاليًا" لجميع المستخدمين الصادقين.وبطبيعة الحال، فإن ضمان الصحة الكاملة وحده أمر تافه: فالجميع يختار دائمًا المسؤول payset PAY r لتكون فارغة. ولكن في هذه الحالة، سيكون للنظام اكتمال 0. لسوء الحظ، إن ضمان الصحة الكاملة والكمال 1 ليس بالأمر السهل في ظل وجود البرامج الخبيثة المستخدمين. Algorand وبالتالي يتبنى هدفًا أكثر واقعية. بشكل غير رسمي، ترك h يدل على النسبة المئوية من المستخدمين الصادقين، h > 2/3، الهدف من Algorand هو ضمان، مع احتمالية ساحقة، صحة واكتمال تام بالقرب من ح. ويبدو أن تفضيل الصحة على الاكتمال هو خيار معقول: فالمدفوعات لا تتم معالجتها يمكن معالجة جولة واحدة في الجولة التالية، ولكن ينبغي تجنب الشوكات، إن أمكن. الاتفاق البيزنطي بقيادة يمكن ضمان الصحة المثالية على النحو التالي. في البداية من الجولة r، يقوم كل مستخدم ببناء الكتلة المرشحة الخاصة به Br i، ثم يصل جميع المستخدمين إلى البيزنطية الاتفاق على كتلة مرشح واحد. وفقا لمقدمتنا، يتطلب بروتوكول مكتبة الإسكندرية المستخدمة أغلبية صادقة بنسبة 2/3 ويمكن استبدال اللاعب. يمكن تنفيذ كل خطوة من خطواتها بواسطة صغيرة و مجموعة مختارة عشوائياً من المدققين، الذين لا يشتركون في أي متغيرات داخلية. لسوء الحظ، هذا النهج ليس لديه ضمانات الاكتمال. هذا هو الحال، لأن المرشح من المرجح أن تكون كتل المستخدمين الصادقين مختلفة تمامًا عن بعضها البعض. وهكذا في نهاية المطاف قد تكون الكتلة المتفق عليها دائمًا ذات مجموعة دفعات غير الحد الأقصى. في الواقع، قد يكون دائما الكتلة الفارغة، B\(\varepsilon\)، أي الكتلة التي تكون مجموعة دفعاتها فارغة. حسنا يكون الافتراضي، واحد فارغ. Algorand ′ يتجنب مشكلة الاكتمال هذه على النحو التالي. أولاً، يتم تحديد القائد للجولة r، \(\ell\)r. بعد ذلك، يقوم \(\ell\)r بنشر كتلة مرشحه، Br \(\ell\)ص. وأخيرًا، يتوصل المستخدمون إلى اتفاق بشأن الحظر يتلقون فعلا من \(\ell\)r. لأنه كلما كان \(\ell\)r صادقًا، كان الصواب والكمال 1 كلاهما يحمل، Algorand ′ يضمن أن \(\ell\)r صادق مع احتمال قريب من h. ( عندما يكون القائد ضارة، لا يهمنا ما إذا كانت الكتلة المتفق عليها تحتوي على مجموعة دفع فارغة. بعد كل شيء، أ قد يختار القائد الخبيث \(\ell\)r دائمًا Br بشكل ضار \(\ell\)ص أن تكون كتلة فارغة، ثم بصراحة نشرها، وبالتالي إجبار المستخدمين الصادقين على الموافقة على الكتلة الفارغة.) اختيار القائد في Algorand's، تكون الكتلة r على الشكل Br = (r, PAY r, Qr, H(Br−1). كما ذكرنا سابقًا في المقدمة، تم تصميم الكمية Qr−1 بعناية بحيث تكون كذلك بشكل أساسي غير قابل للتلاعب من قبل خصمنا القوي للغاية. (سنأتي لاحقًا في هذا القسم قدم بعض الحدس حول سبب حدوث ذلك.) في بداية الجولة r، يعرف جميع المستخدمين blockchain حتى الآن، B0، . . . ، Br−1، والتي يستنتجون منها مجموعة المستخدمين في كل جولة سابقة: ذلك هو، PK1، . . . ، PKr−1. القائد المحتمل للجولة r هو مستخدم من هذا القبيل .ح سيجي ص، 1، Qr−1 \(\geq\)ص . دعونا نشرح. لاحظ أنه بما أن الكمية Qr−1 هي جزء من الكتلة Br−1 والجزء الأساسي منها مخطط التوقيع يلبي خاصية التفرد، SIGi ص، 1، Qr−1 هي سلسلة ثنائية بشكل فريد المرتبطة ط و ص. وبالتالي، نظرًا لأن H عشوائي oracle، فإن H سيجي ص، 1، Qr−1 هو عشوائي 256 بت سلسلة طويلة مرتبطة بشكل فريد بـ i وr. الرمز "." أمام ح سيجي ص، 1، Qr−1 هو النقطة العشرية (في حالتنا، ثنائية)، بحيث تكون ri \(\triangleq\).H سيجي ص، 1، Qr−1 هو التوسع الثنائي ل رقم عشوائي 256 بت بين 0 و1 يرتبط بشكل فريد بـ i وr. وبالتالي احتمال ذلك ri أقل من أو يساوي p هو في الأساس p. (كانت آلية اختيار القائد المحتمل لدينا هي: مستوحاة من نظام الدفع الصغير لـ Micali وRivest [28].) يتم اختيار الاحتمال p بحيث يكون احتمال واحد على الأقل، مع احتمال ساحق (أي 1 −F). المدقق المحتمل صادق. (إذا كانت الحقيقة، فقد تم اختيار p ليكون أصغر احتمال من هذا القبيل.)لاحظ أنه بما أنني الشخص الوحيد القادر على حساب توقيعاته، فهو وحده يستطيع ذلك تحديد ما إذا كان هو المدقق المحتمل للجولة الأولى. ومع ذلك، من خلال الكشف عن أوراق اعتماده، ص أنا \(\triangleq\)SIGI ص، 1، Qr−1 ، يمكنني أن أثبت لأي شخص أنه متحقق محتمل من الجولة r. يتم تعريف القائد \(\ell\)r على أنه القائد المحتمل الذي تكون مؤهلاته __PH_0003__ed أصغر من hashed بيانات الاعتماد لجميع القادة المحتملين الآخرين j: أي H(\(\sigma\)r,s) \(\ell\)r ) \(\geq\)H(\(\sigma\)r,s ي). لاحظ أنه نظرًا لأن \(\ell\)r الخبيث قد لا يكشف عن بيانات اعتماده، فإن القائد الصحيح للجولة r قد يفعل ذلك لا يُعرف أبدًا، وذلك باستثناء العلاقات غير المحتملة، \(\ell\)r هو بالفعل القائد الوحيد للجولة r. دعونا أخيرًا نطرح تفصيلًا أخيرًا ولكنه مهم: يمكن للمستخدم أن يكون قائدًا محتملاً (وبالتالي القائد) للجولة r فقط إذا كان ينتمي إلى النظام لمدة k على الأقل. هذا يضمن عدم القدرة على التلاعب بـ Qr وجميع كميات Q المستقبلية. في الواقع، أحد القادة المحتملين سيحدد في الواقع ريال قطري. اختيار المدقق يتم تنفيذ كل خطوة s > 1 من الجولة r بواسطة مجموعة صغيرة من أدوات التحقق، SV r,s. مرة أخرى، يتم اختيار كل مدقق i \(\in\)SV r,s بشكل عشوائي من بين المستخدمين الموجودين بالفعل في جولات النظام k قبل r، ومرة أخرى عبر الكمية الخاصة Qr−1. على وجه التحديد، i \(\in\)PKr−k هو أداة التحقق في SV r,s، إذا .ح سيجي ص، ق، Qr−1 \(\geq\)ص' . مرة أخرى، أنا الوحيد الذي يعرف ما إذا كان ينتمي إلى SV r,s، ولكن إذا كان هذا هو الحال، فيمكنه إثبات ذلك عن طريق عرض أوراق اعتماده \(\sigma\)r،s أنا \(\triangleq\)H(سيجي ص، ق، Qr−1 ). يرسل المدقق i \(\in\)SV r,s رسالة، يا سيد، s أنا، في الخطوات s من الجولة r، وتتضمن هذه الرسالة بيانات اعتماده \(\sigma\)r,s i، وذلك لتمكين القائمين على التحقق من خطوة العش للتعرف على أن السيد، ق أنا هي رسالة مشروعة. يتم اختيار الاحتمالية p′ للتأكد من أنه في SV r,s، يكون #good هو عدد عدد المستخدمين الصادقين وعدد المستخدمين الضارين #سيء، مع احتمال كبير بما يلي عقد شرطين. للتجسيد Algorand ′ 1: (1) #جيد > 2 \(\cdot\) #سيء و (2) #جيد + 4 \(\cdot\) #سيئ < 2n، حيث n هي العلاقة الأساسية المتوقعة لـ SV r,s. للتجسيد Algorand ′ 2: (١) #حسن > ث و (2) #جيد + 2#سيئ <2tH، حيث tH هو عتبة محددة. تشير هذه الشروط إلى أنه، مع وجود احتمالية عالية بما فيه الكفاية، (أ) في الخطوة الأخيرة من مكتبة الإسكندرية البروتوكول، سيكون هناك على الأقل عدد محدد من اللاعبين الشرفاء للتوقيع رقميًا على الكتلة الجديدة Br، (ب) يجوز أن تحتوي كتلة واحدة فقط في كل جولة على العدد اللازم من التوقيعات، و(ج) شهادة البكالوريوس المستخدمة يتمتع البروتوكول (في كل خطوة) بالأغلبية الصادقة المطلوبة بنسبة 2/3. توضيح إنشاء الكتلة إذا كان زعيم الجولة r \(\ell\)r صادقًا، فإن الكتلة المقابلة هو من النموذج ر = ص، دفع ص، SIG\(\ell\)r Qr−1 ، ح ر−1 , حيث يكون payset PAY r هو الحد الأقصى. (تذكر أن جميع مجموعات الدفع، بحكم تعريفها، صالحة بشكل جماعي.) بخلاف ذلك (أي إذا كان \(\ell\)r ضارًا)، فإن Br له أحد الشكلين المحتملين التاليين: ر = ص، دفع ص، سيجي ريال قطري−1 ، ح ر−1 و ر = ر \(\varepsilon\) \(\triangleq\) ص، \(\emptyset\)، Qr−1، H ر−1 .في النموذج الأول، PAY r عبارة عن مجموعة رواتب (غير ضرورية الحد الأقصى) وقد تكون PAY r = \(\emptyset\)؛ وأنا كذلك زعيم محتمل للجولة ص. (ومع ذلك، قد لا أكون القائد. قد يحدث هذا بالفعل إذا \(\ell\)r يخفي أوراق اعتماده ولا يكشف عن نفسه.) ينشأ النموذج الثاني عندما يكون جميع اللاعبين الشرفاء في التنفيذ الدائري لبروتوكول BA إخراج القيمة الافتراضية، وهي الكتلة الفارغة Br \(\varepsilon\) في طلبنا. (بالتعريف: الممكن تشتمل مخرجات بروتوكول BA على قيمة افتراضية، يُشار إليها عمومًا بالرمز \(\bot\). انظر القسم 3.2.) لاحظ أنه على الرغم من أن مجموعات الدفع فارغة في كلتا الحالتين، فإن Br = ص، \(\emptyset\)، سيجي ريال قطري−1 ، ح ر−1 و ر \(\varepsilon\) عبارة عن كتل مختلفة نحويًا وتنشأ في حالتين مختلفتين: على التوالي، "جميع" سارت الأمور بسلاسة كافية في تنفيذ بروتوكول مكتبة الإسكندرية"، و"حدث خطأ ما في بروتوكول BA، وكانت القيمة الافتراضية هي الإخراج". دعونا الآن نصف بشكل حدسي كيف يستمر توليد الكتلة Br في الجولة r من Algorand ′. في الخطوة الأولى، يقوم كل لاعب مؤهل، أي كل لاعب i \(\in\)PKr−k، بالتحقق مما إذا كان لاعبًا محتملاً زعيم. إذا كان هذا هو الحال، فسيتم سؤالي باستخدام جميع المدفوعات التي شاهدها حتى الآن، و الحالي blockchain، B0، . . . ، Br−1، لإعداد مجموعة الدفع القصوى سرًا، PAY r أنا، وسرا يجمع كتلة مرشحه، Br = ص، دفع ص أنا، سيجي ريال قطري−1 ، ح ر−1 . أي أنه لا يفعل ذلك فقط تضمين في ر أنا، باعتباره المكون الثاني، مجموعة الرواتب التي تم إعدادها للتو، ولكن أيضًا، باعتباره المكون الثالث، توقيعه الخاص لـ Qr−1، المكون الثالث للكتلة الأخيرة، Br−1. وأخيرا، نشر له رسالة مستديرة ص-خطوة-1، السيد،1 i، والذي يتضمن (أ) مرشحه كتلة Br ط، (ب) توقيعه الصحيح من كتلة مرشحه (أي توقيعه على hash من الأخ i و (ج) أوراق اعتماده \(\sigma\)r,1 أنا، إثبات أنه بالفعل متحقق محتمل من الجولة r. (لاحظ أنه حتى يصدر الصادق رسالته السيد 1 أنا، الخصم ليس لديه أدنى فكرة عن أنني المدقق المحتمل إذا كان يرغب في إفساد القادة المحتملين الصادقين، فقد يفعل الخصم ذلك أيضًا لاعبين نزيهين عشوائيين فاسدين. ومع ذلك، بمجرد أن يرى السيد،1 i، نظرًا لأنه يحتوي على بيانات الاعتماد الخاصة بي، فإن الخصم يعرف ويمكنه إفساد أنا، لكنه لا يستطيع منع السيد،1 أنا، والذي يتم نشره فيروسيًا، من الوصول إلى جميع المستخدمين في النظام.) في الخطوة الثانية، يحاول كل مدقق محدد j \(\in\)SV r,2 تحديد قائد الجولة. على وجه التحديد، يأخذ j بيانات اعتماد الخطوة 1، \(\sigma\)r,1 i1،. . . ، ص،1 في ، الواردة في رسالة الخطوة 1 المناسبة السيد،1 أنا لقد نال؛ hashes جميعها، أي أنها تحسب H  ص،1 i1  ، . . . ، ح  ص،1 في  ; يجد أوراق الاعتماد، ص،1 \(\ell\)j ، الذي hash هو الحد الأدنى المعجمي؛ ويعتبر \(\ell\)r j ليكون قائد الجولة r. تذكر أن كل بيانات اعتماد تعتبر بمثابة توقيع رقمي لـ Qr−1، وهو SIGi ص، 1، Qr−1 هو يتم تحديده بشكل فريد بواسطة i وQr−1، وأن H عشوائي oracle، وبالتالي فإن كل H(SIGi ص، 1، Qr−1 عبارة عن سلسلة عشوائية طويلة بطول 256 بت فريدة لكل قائد محتمل i للجولة r. من هذا يمكننا أن نستنتج أنه إذا كانت السلسلة ذات 256 بت Qr−1 نفسها عشوائية ومستقلة المحدد، وبالتالي ستكون أوراق اعتماد hashed لجميع القادة المحتملين للجولة r. في الواقع، كل شيء فالقادة المحتملون محددون جيدًا، وكذلك مؤهلاتهم (سواء كانت محسوبة فعليًا أو محسوبة). لا). علاوة على ذلك، فإن مجموعة القادة المحتملين للجولة r هي مجموعة فرعية عشوائية من مستخدمي الجولة r −k، والقائد المحتمل الصادق، أقوم دائمًا ببناء رسالته ونشرها بشكل صحيح أنا، الذي يحتوي على بيانات الاعتماد الخاصة بي. وبالتالي، نظرًا لأن النسبة المئوية للمستخدمين الصادقين هي h، بغض النظر عن الأمر الحد الأدنى الذي قد يفعله القادة المحتملون الخبثاء (على سبيل المثال، الكشف عن أوراق اعتمادهم أو إخفاءها). hashed تنتمي بيانات اعتماد القائد المحتمل إلى مستخدم صادق، والذي يتم التعرف عليه بالضرورة من قبل الجميع ليكون القائد \(\ell\)r للجولة r. وفقًا لذلك، إذا كانت السلسلة ذات 256 بت Qr−1 نفسها عشوائيًا و تم اختياره بشكل مستقل، مع احتمال بالضبط ح (أ) القائد \(\ell\)r صادق و (ب) \(\ell\)j = \(\ell\)r للجميع المتحققون الصادقون من الخطوة 2 ي. في الواقع، تم اختيار بيانات الاعتماد hashed بشكل عشوائي، ولكنها تعتمد على Qr−1، وهولم يتم اختيارها بشكل عشوائي ومستقل. ومع ذلك، سنثبت في تحليلنا أن Qr−1 هو غير قابلة للتلاعب بدرجة كافية لضمان أن يكون زعيم الجولة صادقًا في الاحتمالية h′ قريبة بما فيه الكفاية من h: وهي h′ > h2(1 + h −h2). على سبيل المثال، إذا كانت h = 80%، فإن h′ > .7424. بعد تحديد قائد الجولة (وهو ما يفعلونه بشكل صحيح عندما يكون القائد \(\ell\)r صادقًا)، تتمثل مهمة مدققي الخطوة الثانية في البدء في تنفيذ مكتبة الإسكندرية باستخدام ما يعتقدون أنه قيم أولية لتكون كتلة الزعيم. في الواقع، من أجل تقليل حجم الاتصالات المطلوبة، لا يستخدم المدقق j \(\in\)SV r,2 قيمة الإدخال v ′ ي إلى البروتوكول البيزنطي، كتلة بج ذلك لقد استلم بالفعل من \(\ell\)j (المستخدم j يعتقد أنه القائد)، ولكن القائد، ولكن hash من تلك الكتلة، أي v' ي = ح (ثنائية). وهكذا، عند إنهاء بروتوكول مكتبة الإسكندرية، تم التحقق من الخطوة الأخيرة لا تحسب الكتلة الدائرية المرغوبة Br، ولكن احسب (المصادقة و نشر) H (Br). وفقًا لذلك، نظرًا لأن H(Br) تم توقيعه رقميًا بواسطة عدد كافٍ من المدققين في الخطوة الأخيرة من بروتوكول BA، سيدرك المستخدمون في النظام أن H(Br) هو hash للجديد كتلة. ومع ذلك، يجب عليهم أيضًا استرداد (أو الانتظار، نظرًا لأن التنفيذ غير متزامن تمامًا) block Br نفسه، والذي يضمن البروتوكول أنه متاح بالفعل، بغض النظر عن الخصم قد تفعل. عدم التزامن والتوقيت Algorand ′ 1 و Algorand ′ 2 لديهم درجة كبيرة من عدم التزامن. وذلك لأن الخصم لديه حرية كبيرة في جدولة تسليم الرسائل الجارية نشر. بالإضافة إلى ذلك، سواء تم تحديد العدد الإجمالي للخطوات في الجولة أم لا، فهناك حد أقصى ويساهم التباين بعدد الخطوات المتخذة بالفعل. بمجرد أن يتعلم شهادات B0، . . . ، Br−1، مستخدم يحسب Qr−1 ويبدأ العمل في الجولة r، للتحقق مما إذا كان قائدًا محتملاً، أو مدققًا في بعض خطوات الجولة r. بافتراض أنني يجب أن أتصرف في الخطوات، في ضوء عدم التزامن الذي تمت مناقشته، فإنني أعتمد على العديد من الخطوات استراتيجيات للتأكد من أن لديه معلومات كافية قبل أن يتصرف. على سبيل المثال، قد ينتظر حتى يتلقى على الأقل عددًا معينًا من الرسائل من جهات التحقق الخطوة السابقة أو الانتظار لوقت كافي للتأكد من وصوله للرسائل بشكل كافي العديد من التحقق من الخطوة السابقة. البذرة Qr ومعلمة الرجوع للخلف k تذكر أنه من الناحية المثالية، يجب أن تكون الكميات Qr عشوائية ومستقلة، على الرغم من أنه يكفي أن تكون غير قابلة للتلاعب بها بشكل كافٍ الخصم. للوهلة الأولى، يمكننا اختيار Qr−1 ليتزامن مع H دفع ص−1 ، وبالتالي تجنب ذلك حدد Qr−1 بشكل صريح في Br−1. ومع ذلك، يكشف التحليل الأولي أن المستخدمين الضارين قد يقومون بذلك الاستفادة من آلية الاختيار هذه.11 بعض الجهود الإضافية تظهر أن عددًا لا يحصى من الآخرين 11نحن في بداية الجولة r −1. وبالتالي، فإن Qr−2 = PAY r−2 معروف علنًا، والخصم معروف بشكل خاص يعرف من هم القادة المحتملين الذين يسيطر عليهم. افترض أن الخصم يتحكم في 10% من المستخدمين، و أنه، مع وجود احتمال كبير جدًا، يكون المستخدم الضار w هو القائد المحتمل للجولة r −1. يعني افترض ذلك ح سيجو ص −2، 1، Qr−2 إنه صغير جدًا لدرجة أنه من غير المحتمل جدًا أن يكون القائد المحتمل الصادق هو في الواقع زعيم الجولة ص −1. (تذكر أنه بما أننا نختار القادة المحتملين عبر آلية فرز مشفرة سرية، فالخصم لا يعرف من هم القادة المحتملون الصادقون.) الخصم إذن هو في المحسود موقف اختيار مجموعة الدفع PAY ′ التي يريدها، وهل تصبح مجموعة الدفع الرسمية للجولة r −1. ومع ذلك، يمكنه أن يفعل المزيد. ويمكنه أيضًا التأكد، مع وجود احتمال كبير، أن () أحد مستخدميه الضارين سيكون هو القائد أيضًا من الجولة r، حتى يتمكن من اختيار ما سيكون PAY r بحرية. (وهكذا. على الأقل لفترة طويلة، أي، طالما أن هذه الأحداث ذات الاحتمالية العالية تحدث بالفعل.) لضمان ()، يتصرف الخصم على النحو التالي. دع الدفع ′ تكون مجموعة الدفع التي يفضلها الخصم للجولة r −1. بعد ذلك، يقوم بحساب H(PAY ′) والتحقق من ذلك بالنسبة للبعض المشغل الضار بالفعل z، SIGz(r, 1, H(PAY ′)) صغير بشكل خاص، أي صغير بما يكفي بحيث يكون ذو قيمة عالية جدًا احتمال z سيكون زعيم الجولة r. إذا كان الأمر كذلك، فإنه يوجه w لاختيار كتلة مرشحهيمكن للخصم استغلال البدائل المبنية على كميات الكتل التقليدية بسهولة لضمان ذلك أن القادة الخبيثين متكررون جدًا. وبدلاً من ذلك، فإننا نحدد علامتنا التجارية بشكل محدد واستقرائي كمية جديدة Qr حتى نتمكن من إثبات أنه غير قابل للتلاعب من قبل الخصم. وهي، Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r)، إذا لم يكن Br هو الكتلة الفارغة، وQr \(\triangleq\)H(Qr−1, r) بخلاف ذلك. الحدس لماذا يعمل هذا البناء لـ Qr على النحو التالي. افترض للحظة أن يتم اختيار Qr−1 بشكل عشوائي ومستقل. ثم، وسوف يكون ذلك ريال قطري؟ عندما يكون \(\ell\)r صادقًا الإجابة هي (تقريبًا) نعم. هذا بسبب H(SIG\(\ell\)r( \(\cdot\) ), r) : {0, 1}256 −→{0, 1}256 هي وظيفة عشوائية. عندما يكون \(\ell\)r خبيثًا، لم يعد Qr محددًا بشكل موحد من Qr−1 و\(\ell\)ر. هناك قيمتان منفصلتان على الأقل لـ Qr. واحد لا يزال Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), والآخر هو H(Qr−1, r). دعونا أولاً نقول أنه على الرغم من أن الاختيار الثاني اعتباطي إلى حد ما، الاختيار الثاني إلزامي تمامًا. والسبب في ذلك هو أن الخبيث يمكن أن يسبب دائمًا كتل مرشحة مختلفة تمامًا ليتم استلامها من قبل المدققين الصادقين في الخطوة الثانية.12 مرة واحدة في هذه الحالة، من السهل التأكد من أن الكتلة تم الاتفاق عليها في النهاية عبر بروتوكول مكتبة الإسكندرية ستكون الجولة r هي الافتراضية، وبالتالي لن تحتوي على التوقيع الرقمي لأي شخص بـ Qr−1. لكن يجب أن يستمر النظام، ولهذا يحتاج إلى قائد للجولة r. إذا كان هذا الزعيم تلقائيا ويختار علانية، فإن العدو سوف يفسده تافهة. إذا تم تحديده من قبل السابق Qr−1 عبر نفس العملية، من \(\ell\)r سوف يكون القائد مرة أخرى في الجولة r+1. ونحن نقترح على وجه التحديد ل استخدام نفس آلية فرز التشفير السرية، ولكن يتم تطبيقها على كمية Q جديدة: وهي: ح (Qr−1، ص). من خلال جعل هذه الكمية هي مخرجات H يضمن أن المخرجات عشوائية، ومن خلال تضمين r كمدخل ثانٍ لـ H، في حين أن جميع الاستخدامات الأخرى لـ H تحتوي على واحد أو أكثر من 3 مدخلات، "تضمن" أن يتم اختيار Qr بشكل مستقل. مرة أخرى، اختيارنا المحدد للبديل Qr لا يهم، ما يهم هو أن \(\ell\)r لديه خياران لـ Qr، وبالتالي يمكنه مضاعفة فرصه أن يكون هناك مستخدم ضار آخر كزعيم التالي. قد تكون خيارات Qr أكثر عددًا بالنسبة للخصم الذي يتحكم في \(\ell\)r الخبيث. على سبيل المثال، لنفترض أن x وy وz هم ثلاثة قادة محتملين ضارين للجولة r بحيث تكون ح ص،1 س  <ح ص،1 ذ  <ح ص،1 ض  و ح  ص،1 ض  صغيرة بشكل خاص. وهذا صغير جدًا لدرجة أن هناك فرصة جيدة لأن يكون H  ص،1 ض  هو أصغر من __PH_0004__ed مؤهلات كل قائد محتمل صادق. ثم، من خلال مطالبة x بإخفاء صورته الاعتماد، لدى الخصم فرصة جيدة لأن يصبح y قائد الجولة r −1. هذا يعني أن لديه خيارًا آخر لـ Qr: وهو SIGy ريال قطري−1 . وبالمثل، يجوز للخصم اطلب من كل من x وy حجب بيانات اعتمادهما، حتى يصبح z قائد الجولة r −1 والحصول على خيار آخر لـ Qr: وهو SIGz ريال قطري−1 . ومع ذلك، بالطبع، كل من هذه الخيارات وغيرها لديها فرصة غير معدومة للفشل، لأن لا يستطيع الخصم التنبؤ بـ hash من التوقيعات الرقمية للمستخدمين المحتملين الصادقين. ر−1 أنا = (r −1, PAY ′, H(Br−2). وإلا، لديه مستخدمين ضارين آخرين x وy لمواصلة إنشاء دفعة جديدة \(\wp\) ′، من واحد إلى آخر، حتى بالنسبة لبعض المستخدمين الضارين z (أو حتى لبعض المستخدمين الثابتين z) H (SIGz (PAY ′ \(\cup\){\(\wp\)})) هو صغيرة بشكل خاص أيضًا. ستتوقف هذه التجربة بسرعة كبيرة. وعندما يفعل ذلك يطلب الخصم أن يقترح الكتلة المرشحة Br−1 أنا = (ص −1، الدفع ′ \(\cup\){\(\wp\)}، H(Br−2). 12 على سبيل المثال، لتبسيط الأمر (ولكنه متطرف)، "عندما يكون وقت الخطوة الثانية على وشك الانتهاء"، يمكن لـ \(\ell\)r أرسل بريدًا إلكترونيًا مباشرًا إلى كتلة مرشح مختلفة Bi إلى كل مستخدم. وبهذه الطريقة، أيًا كان القائمون على التحقق من الخطوة الثانية، فهم سوف تتلقى كتل مختلفة تماما.يُظهر التحليل الدقيق الشبيه بسلسلة ماركوف أنه بغض النظر عن الخيارات التي يختارها الخصم للقيام بالجولة r −1، طالما أنه لا يستطيع إدخال مستخدمين جدد في النظام، فلا يمكنه تقليل احتمالية أن يكون المستخدم الصادق هو قائد الجولة r + 40 أقل بكثير من h. هذا هو السبب الذي نطالبه بأن يكون القادة المحتملون للجولة r هم المستخدمين الموجودين بالفعل في الجولة r −k. إنها طريقة للتأكد من أنه عند الجولة r −k، لا يمكن للخصم أن يغير احتمالية ذلك كثيرًا المستخدم الصادق يصبح قائد الجولة r. في الواقع، بغض النظر عن المستخدمين الذين قد يضيفهم إلى النظام في الجولات من r −k إلى r، فإنهم غير مؤهلين ليصبحوا قادة محتملين (ومن باب أولى زعيم) من الجولة ص. وبالتالي فإن معلمة الرجوع إلى الخلف k هي في النهاية معلمة أمان. (على الرغم من، كما سنرى في القسم 7، يمكن أيضًا أن يكون نوعًا من "معلمة الراحة" أيضًا.) مفاتيح سريعة الزوال على الرغم من أن تنفيذ بروتوكولنا لا يمكن أن يولد شوكة إلا باستخدام مع احتمال ضئيل، يمكن للخصم إنشاء شوكة، عند الكتلة r، بعد المشروع تم إنشاء الكتلة r. تقريبًا، بمجرد إنشاء Br، يعرف الخصم من هو المتحقق من كل خطوة من الجولة ص هي. وبالتالي، يمكنه بالتالي إفسادهم جميعًا وإجبارهم على التصديق على كتلة جديدة و ر. نظرًا لأن هذا الحظر المزيف قد يتم نشره فقط بعد الحظر الشرعي، فقد تم نشره من قبل المستخدمين الاهتمام لن ينخدع.[13] ومع ذلك، ص سيكون Br صحيحًا من الناحية النحوية ونحن تريد منع من تصنيعها. ونحن نفعل ذلك عن طريق قاعدة جديدة. بشكل أساسي، قام أعضاء المدقق بتعيين SV r,s للخطوة s من الجولة r استخدم المفاتيح العامة المؤقتة pkr،s أنا لتوقيع رسائلهم رقميا. هذه المفاتيح مخصصة للاستخدام الفردي فقط والمفاتيح السرية المقابلة لها skr,s أنا يتم تدميرها بمجرد استخدامها. بهذه الطريقة، إذا كان المدقق هو بعد تلفه لاحقًا، لا يستطيع الخصم إجباره على التوقيع على أي شيء آخر لم يوقع عليه في الأصل. وبطبيعة الحال، يجب علينا التأكد من أنه من المستحيل على الخصم أن يحسب مفتاحًا جديدًا العلاقات العامة، ق أنا وإقناع مستخدم صادق بأنه هو المفتاح المؤقت الصحيح لأداة التحقق i \(\in\)SV r,s لاستخدامه في الخطوات. 4.2 ملخص مشترك للرموز والمفاهيم والمعلمات التدوينات • r \(\geq\)0 : الرقم الدائري الحالي. • s \(\geq\)1: رقم الخطوة الحالية في الجولة r. • Br: الكتلة المتولدة في الجولة r. • PKr: مجموعة المفاتيح العامة بنهاية الجولة r −1 وفي بداية الجولة r. • Sr: حالة النظام بنهاية الجولة r −1 وفي بداية الجولة r.14 • PAY r: مجموعة الدفعات الموجودة في Br. • \(\ell\)r: زعيم الجولة ص. \(\ell\)r يختار مجموعة الدفع PAY r للجولة r (ويحدد Qr التالي). • Qr: بذرة الجولة r، الكمية (أي السلسلة الثنائية) التي يتم إنشاؤها في نهاية الجولة r ويستخدم لاختيار أدوات التحقق للجولة r + 1. Qr مستقل عن مجموعات الدفع في الكتل ولا يمكن التلاعب بها بواسطة \(\ell\)r. 13 فكر في إفساد مذيع الأخبار لشبكة تلفزيونية كبرى، وإنتاج وبث شريط إخباري اليوم تظهر فوز الوزيرة كلينتون في الانتخابات الرئاسية الأخيرة. معظمنا سوف يتعرف على أنها خدعة. لكن قد يتم خداع شخص ما بعد خروجه من الغيبوبة. 14في النظام غير المتزامن، مفهوم "نهاية الجولة r −1" و"بداية الجولة r" تحتاج إلى أن يتم تحديدها بعناية. رياضياً، يتم حساب PKr وSr من الحالة الأولية S0 والكتل ب1، . . . ، ر−1.• SV r,s: مجموعة أدوات التحقق المختارة للخطوات s من الجولة r. • SV r : مجموعة أدوات التحقق المختارة للجولة r، SV r = \(\cup\)s\(\geq\)1SV r,s. • MSV r,s وHSV r,s: على التوالي، مجموعة أدوات التحقق الخبيثة ومجموعة أدوات التحقق الصادقة في SV ص، ق. MSV r,s \(\cup\)HSV r,s = SV r,s و MSV r,s ∩HSV r,s = \(\emptyset\). • n1 \(\in\)Z+ و n \(\in\)Z+: على التوالي، الأعداد المتوقعة للقادة المحتملين في كل SV r,1, والأعداد المتوقعة للمحققين في كل SV r,s، لـ s > 1. لاحظ أن n1 << n، لأننا نحتاج على الأقل إلى عضو صادق وصادق واحد في SV r,1، ولكن على الأقل أغلبية الأعضاء الشرفاء في كل SV r,s لـ s > 1. • h \(\in\)(0, 1): ثابت أكبر من 2/3. h هي نسبة الصدق في النظام. وهذا هو، جزء من المستخدمين الصادقين أو الأموال الصادقة، اعتمادًا على الافتراض المستخدم، في كل PKr على الأقل ح. • H: دالة مشفرة hash، تم تصميمها كدالة عشوائية oracle. • \(\bot\): سلسلة خاصة بنفس طول مخرج H. • F \(\in\)(0, 1): المعلمة التي تحدد احتمالية الخطأ المسموح بها. الاحتمال \(\geq\)F هو تعتبر "ضئيلة"، ويعتبر الاحتمال \(\geq\)1 −F "ساحقًا". • ph \(\in\)(0, 1): احتمال أن يكون زعيم الجولة r، \(\ell\)r، صادقًا. من الناحية المثالية الرقم الهيدروجيني = ح. مع بوجود الخصم سيتم تحديد قيمة ph في التحليل. • k \(\in\)Z+ : معامل الرجوع إلى الوراء. وهذا يعني أن الجولة r −k هي المكان الذي توجد فيه أدوات التحقق من الجولة r تم اختياره من - أي SV r \(\subseteq\)PKr−k.15 • p1 \(\in\)(0, 1): بالنسبة للخطوة الأولى من الجولة r، يتم اختيار مستخدم في الجولة r −k ليكون في SV r,1 مع الاحتمال ص1 \(\triangleq\) ن1 |P كر−ك|. • p \(\in\)(0, 1): لكل خطوة s > 1 من الجولة r، يتم اختيار مستخدم في الجولة r −k ليكون في SV r,s مع الاحتمال ص \(\triangleq\) ن |P كر−ك|. • CERT r: شهادة Br. إنها مجموعة من التوقيعات لـ H(Br) من المدققين المناسبين في جولة ص. • Br \(\triangleq\)(Br, CERT r) عبارة عن كتلة مثبتة. أعرف المستخدم Br إذا كان يمتلك (ويتحقق بنجاح) كلا الجزأين من الكتلة المثبتة. لاحظ أن اختبار CERT الذي يراه مستخدمون مختلفون قد يكون مختلفًا. • τ ص i : الوقت (المحلي) الذي أعرف فيه المستخدم Br. في البروتوكول Algorand لكل مستخدم خاصته الساعة الخاصة. لا يلزم مزامنة ساعات المستخدمين المختلفة، ولكن يجب أن تكون لها نفس السرعة. فقط لغرض التحليل، نأخذ في الاعتبار ساعة مرجعية ونقيس أداء اللاعبين. الأوقات ذات الصلة فيما يتعلق به. • \(\alpha\)r,s أنا و \(\beta\)r,s i : على التوالي الوقت (المحلي) الذي يبدأ فيه المستخدم i وينتهي تنفيذه للخطوة s جولة ص. • Λ و : بشكل أساسي، الحدود العليا للوقت اللازم لتنفيذ الخطوة 1 و الوقت اللازم لأي خطوة أخرى في بروتوكول Algorand. تحدد المعلمة Λ الحدود العليا لوقت نشر كتلة واحدة بحجم 1 ميجابايت. (في تدويننا، Λ = \(\rho\),1 ميجابايت. مع التذكير بتدويننا، قمنا بتعيين \(\rho\) = 1 للبساطة، وأن الكتل كذلك تم اختياره ليكون بطول 1 ميجابايت على الأكثر، لدينا Λ = Λ1,1,1 ميجابايت.) 15بالمعنى الدقيق للكلمة، "r −k" يجب أن يكون "max{0, r −k}".تحدد المعلمة lect الحد العلوي من وقت نشر رسالة صغيرة واحدة لكل مدقق في الخطوة s > 1. (باستخدام، كما في Bitcoin، توقيعات المنحنى الناقص مع مفاتيح 32B، يبلغ طول رسالة التحقق 200B. وهكذا، في تدويننا، \(\alpha\) = lectn,\(\rho\),200B.) نحن نفترض أن Λ = O(π). مفاهيم • اختيار المدقق. لكل جولة r والخطوة s > 1، SV r,s \(\triangleq\){i \(\in\)PKr−k : .H(SIGi(r, s, Qr−1)) \(\geq\)p}. كل يقوم المستخدم i \(\in\)PKr−k بحساب توقيعه بشكل خاص باستخدام مفتاحه طويل المدى ويقرر ما إذا كان أنا \(\in\)SV r,s أم لا. إذا كنت \(\in\)SV r,s، فإن SIGi(r, s, Qr−1) هو i's (r, s) - بيانات الاعتماد، يُشار إليها بشكل مضغوط بواسطة \(\sigma\)r،s أنا. للخطوة الأولى من الجولة r، SV r،1 و\(\sigma\)r،1 أنا يتم تعريفها بالمثل، مع استبدال p بـ p1. ال المدققون في SV r,1 هم قادة محتملون. • اختيار القائد. المستخدم i \(\in\)SV r,1 هو زعيم الجولة r، يُشار إليه بـ \(\ell\)r، إذا كان H(\(\sigma\)r,1 ط ) \(\geq\)H(\(\sigma\)r,1 ي) لجميع الإمكانات القادة j \(\in\)SV r,1. عندما تتم مقارنة hashes لأوراق اعتماد لاعبين، في أمر غير محتمل في حالة وجود روابط، يقوم البروتوكول دائمًا بقطع الروابط معجميًا وفقًا لـ (عام طويل الأمد مفاتيح) القادة المحتملين. بحكم التعريف، فإن قيمة hash لبيانات اعتماد اللاعب هي أيضًا الأصغر بين جميع المستخدمين في PKr−ك. لاحظ أن القائد المحتمل لا يمكنه أن يقرر بشكل خاص ما إذا كان هو القائد أم لا، دون رؤية أوراق اعتماد القادة المحتملين الآخرين. نظرًا لأن قيم hash موحدة بشكل عشوائي، عندما تكون SV r,1 غير فارغة، فإن \(\ell\)r موجود دائمًا ويكون صادق مع احتمال على الأقل ح. المعلمة n1 كبيرة بما يكفي للتأكد من أن كل منها SV r,1 غير فارغ مع احتمالية ساحقة. • هيكل الكتلة. الكتلة غير الفارغة هي من الشكل Br = (r، PAY r، SIG\(\ell\)r(Qr−1)، H(Br−1))، وكتلة فارغة هو من النموذج Br ɫ = (ص، \(\emptyset\)، Qr−1، H(Br−1)). لاحظ أن الكتلة غير الفارغة قد لا تزال تحتوي على مجموعة دفع فارغة PAY r، في حالة عدم حدوث أي دفعة هذه الجولة أو إذا كان القائد خبيثًا. ومع ذلك، فإن الكتلة غير الفارغة تعني أن هوية \(\ell\)r، أوراق اعتماده \(\sigma\)r،1 تم الكشف عن \(\ell\)r وSIG\(\ell\)r(Qr−1) في الوقت المناسب. يضمن البروتوكول أنه إذا كان القائد صادقًا، فستكون الكتلة غير فارغة مع احتمالية ساحقة. • البذور ريال قطري. إذا كان Br غير فارغ، إذن Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r)، وإلا Qr \(\triangleq\)H(Qr−1, r). المعلمات • العلاقات بين مختلف المعالم. - يتم اختيار القائمين على التحقق والقادة المحتملين للجولة r من المستخدمين في PKr−k، حيث يتم اختيار k بحيث لا يتمكن الخصم من التنبؤ بـ Qr−1 مرة أخرى عند الجولة r −k −1 باحتمال أفضل من F: وإلا فإنه سيكون قادرًا على إدخال مستخدمين ضارين بالنسبة للجولة r −k، وجميعهم سيكونون قادة/محققين محتملين في الجولة r، وينجحون في ذلك

وجود زعيم خبيث أو أغلبية خبيثة في SV r,s لبعض الخطوات التي يرغب فيها له. — بالنسبة للخطوة 1 من كل جولة r، يتم اختيار n1 بحيث يكون SV r,1 ̸= \(\emptyset\) باحتمال كبير. • أمثلة على اختيارات المعلمات الهامة. — يبلغ طول مخرجات H 256 بت. — ح = 80%، ن1 = 35. — Λ = 1 دقيقة و lect = 10 ثواني. • تهيئة البروتوكول. يبدأ البروتوكول في الوقت 0 مع r = 0. وبما أنه لا يوجد "B−1" أو "CERT −1"، من الناحية النحوية، B−1 هي معلمة عامة مع مكونها الثالث الذي يحدد Q−1، وجميع المستخدمين تعرف على B−1 في الوقت 0.

สองรูปลักษณ์ของ Algorand

ตามที่กล่าวไว้แล้ว ในระดับที่สูงมาก รอบที่ Algorand จะดำเนินไปอย่างเหมาะสมดังนี้ ขั้นแรกให้สุ่ม ผู้ใช้ที่เลือกซึ่งเป็นผู้นำเสนอและหมุนเวียนบล็อกใหม่ (กระบวนการนี้รวมถึงในขั้นต้นด้วย เลือกผู้นำที่มีศักยภาพสักสองสามคน จากนั้นตรวจสอบให้แน่ใจว่าอย่างน้อยก็มีส่วนที่ดีของเวลา ก ผู้นำร่วมคนเดียวปรากฏตัวออกมา) ประการที่สอง คณะกรรมการผู้ใช้ที่ได้รับการสุ่มเลือกจะถูกเลือก และ บรรลุข้อตกลงไบแซนไทน์ในบล็อกที่ผู้นำเสนอ (กระบวนการนี้รวมถึงสิ่งนั้นด้วย แต่ละขั้นตอนของโปรโตคอล BA ดำเนินการโดยคณะกรรมการที่ได้รับการคัดเลือกแยกต่างหาก) บล็อกที่ตกลงกันไว้ จากนั้นจะมีการลงนามแบบดิจิทัลโดยเกณฑ์ที่กำหนด (TH) ของสมาชิกคณะกรรมการ ลายเซ็นดิจิทัลเหล่านี้ มีการหมุนเวียนเพื่อให้ทุกคนมั่นใจได้ว่าเป็นบล็อกใหม่ (ซึ่งรวมถึงการหมุนเวียนของ ข้อมูลรับรองของผู้ลงนาม และรับรองความถูกต้องเพียง hash ของบล็อกใหม่ เพื่อให้มั่นใจว่าทุกคน รับประกันว่าจะเรียนรู้บล็อก เมื่อ hash ถูกทำให้ชัดเจน) ในสองส่วนถัดไป เราจะนำเสนอสองรูปลักษณ์ของ Algorand, Algorand ′ 1 และ Algorand ′ 2, ที่ทำงานภายใต้สมมติฐานของผู้ใช้ส่วนใหญ่ที่ซื่อสัตย์ ในส่วนที่ 8 เราจะแสดงวิธีนำสิ่งเหล่านี้ไปใช้ รูปลักษณ์ที่จะทำงานภายใต้สมมติฐานที่ซื่อสัตย์โดยส่วนใหญ่ของเงิน Algorand ′ 1 เพียงจินตนาการว่า > 2/3 ของสมาชิกคณะกรรมการมีความซื่อสัตย์ นอกจากนี้ใน Algorand ′ 1 จำนวนขั้นตอนในการบรรลุข้อตกลงไบเซนไทน์ถูกจำกัดไว้ที่ระดับสูงพอสมควร จำนวน ดังนั้นข้อตกลงดังกล่าวจึงรับประกันว่าจะบรรลุข้อตกลงด้วยความน่าจะเป็นอย่างล้นหลามภายใน จำนวนขั้นตอนคงที่ (แต่อาจต้องใช้เวลานานกว่าขั้นตอนของ Algorand ′ 2). ใน กรณีระยะไกลที่ยังไม่บรรลุข้อตกลงในขั้นตอนสุดท้าย คณะกรรมการเห็นชอบด้วย บล็อกว่างซึ่งใช้ได้เสมอ Algorand ′ 2 คิดว่าจำนวนสมาชิกที่ซื่อสัตย์ในคณะกรรมการจะมีมากกว่าเสมอ หรือเท่ากับเกณฑ์คงที่ (ซึ่งรับประกันว่า อย่างน้อยก็มีความน่าจะเป็นอย่างท่วมท้น) 2/3 ของกรรมการมีความซื่อสัตย์) นอกจากนี้ Algorand ′ 2 อนุญาตให้มีข้อตกลงไบแซนไทน์ สามารถเข้าถึงได้ในจำนวนขั้นตอนที่กำหนดเอง (แต่อาจใช้เวลาน้อยกว่า Algorand ′ 1). เป็นเรื่องง่ายที่จะได้มาซึ่งแวเรียนต์จำนวนมากของรูปลักษณ์พื้นฐานเหล่านี้ โดยเฉพาะอย่างยิ่งมันเป็นเรื่องง่าย Algorand ′ 2 เพื่อแก้ไข Algorand ′ 1 เพื่อให้สามารถบรรลุข้อตกลงไบเซนไทน์ได้ตามอำเภอใจ จำนวนขั้นตอน ทั้งสองรูปลักษณ์มีแกนกลาง สัญลักษณ์ แนวคิด และพารามิเตอร์ร่วมกันดังต่อไปนี้ 4.1 แกนกลางทั่วไป วัตถุประสงค์ ตามหลักการแล้ว สำหรับแต่ละรอบ r Algorand จะเป็นไปตามคุณสมบัติต่อไปนี้: 1. ความถูกต้องสมบูรณ์แบบ ผู้ใช้ที่ซื่อสัตย์ทุกคนเห็นด้วยกับบล็อกเดียวกัน Br. 2. ความสมบูรณ์ 1. ด้วยความน่าจะเป็น 1 ชุดการจ่ายเงินของ Br, PAY r มีค่าสูงสุด 10 10เนื่องจากชุดการจ่ายเงินถูกกำหนดให้มีการชำระเงินที่ถูกต้อง และผู้ใช้ที่ซื่อสัตย์จะชำระเงินที่ถูกต้องเท่านั้น PAY r ประกอบด้วยการชำระเงิน "ค้างชำระในปัจจุบัน" ของผู้ใช้ที่ซื่อสัตย์ทั้งหมดแน่นอนว่าการรับประกันความถูกต้องสมบูรณ์แบบเพียงอย่างเดียวนั้นเป็นเรื่องเล็กน้อย ทุกคนมักจะเลือกสิ่งที่เป็นทางการเสมอ payset PAY r ให้ว่างเปล่า แต่ในกรณีนี้ระบบก็จะมีความสมบูรณ์เป็น 0 น่าเสียดาย การรับประกันทั้งความถูกต้องและครบถ้วนสมบูรณ์ 1 ไม่ใช่เรื่องง่ายเมื่อมีผู้ประสงค์ร้าย ผู้ใช้ Algorand จึงใช้วัตถุประสงค์ที่สมจริงยิ่งขึ้น อย่างไม่เป็นทางการ ให้ h แทนเปอร์เซ็นต์ ของผู้ใช้ที่มีความซื่อสัตย์ h > 2/3 เป้าหมายของ Algorand คือ รับประกันความน่าจะเป็นอย่างล้นหลาม ความถูกต้องสมบูรณ์แบบและครบถ้วนใกล้เคียงกับ h สิทธิพิเศษความถูกต้องเหนือความครบถ้วนดูเหมือนเป็นทางเลือกที่สมเหตุสมผล: การชำระเงินไม่ได้รับการประมวลผล รอบหนึ่งสามารถดำเนินการได้ในรอบถัดไป แต่ควรหลีกเลี่ยงทางแยกหากเป็นไปได้ ข้อตกลงนำไบแซนไทน์ สามารถรับประกันความถูกต้องสมบูรณ์แบบได้ดังนี้ ในช่วงเริ่มต้น ของรอบ r ผู้ใช้แต่ละคนที่ฉันสร้างบล็อกผู้สมัครของตัวเอง Br ฉัน จากนั้นผู้ใช้ทั้งหมดจะเข้าถึง Byzantine ข้อตกลงในหนึ่งกลุ่มผู้สมัคร ตามการแนะนำของเรา ต้องใช้ระเบียบวิธี BA ที่ใช้ ส่วนใหญ่ซื่อสัตย์ 2/3 และสามารถเปลี่ยนผู้เล่นได้ แต่ละขั้นตอนสามารถดำเนินการได้โดยกลุ่มเล็กๆ และ ชุดผู้ตรวจสอบที่เลือกแบบสุ่ม ซึ่งไม่มีตัวแปรภายในใด ๆ ร่วมกัน น่าเสียดายที่แนวทางนี้ไม่รับประกันความสมบูรณ์ ที่เป็นเช่นนี้เพราะว่าผู้สมัคร การบล็อกของผู้ใช้ที่ซื่อสัตย์มักจะมีความแตกต่างกันโดยสิ้นเชิง ดังนั้นในที่สุด การบล็อกที่ตกลงไว้อาจเป็นหนึ่งเดียวกับการจ่ายเงินที่ไม่สูงสุดเสมอ จริงๆแล้วมันอาจจะเป็นเสมอไป บล็อกว่าง B\(\varepsilon\) นั่นคือบล็อกที่ชุดการจ่ายเงินว่างเปล่า เป็นค่าเริ่มต้นอันว่างเปล่า Algorand ′ หลีกเลี่ยงปัญหาความสมบูรณ์นี้ดังนี้ ขั้นแรก มีการเลือกผู้นำสำหรับรอบ r, ër จากนั้น ër เผยแพร่บล็อกผู้สมัครของเขาเอง Br lr. ในที่สุดผู้ใช้ก็บรรลุข้อตกลงในบล็อก พวกเขาได้รับจาก ër จริงๆ เพราะทุกครั้งที่มีความซื่อสัตย์ความถูกต้องสมบูรณ์และความสมบูรณ์ 1 ถือทั้งคู่ Algorand ′ ทำให้แน่ใจได้ว่า ër ซื่อสัตย์กับความน่าจะเป็นที่ใกล้กับ h (เมื่อผู้นำเป็น เป็นอันตราย เราไม่สนใจว่าบล็อกที่ตกลงกันไว้นั้นเป็นบล็อคที่มีการจ่ายเงินว่างเปล่าหรือไม่ ท้ายที่สุดแล้ว ผู้นำที่ประสงค์ร้าย ër อาจเลือก Br ในทางที่มุ่งร้ายเสมอ ërเป็นบล็อกว่างแล้วบอกตามตรง เผยแพร่จึงบังคับให้ผู้ใช้ที่ซื่อสัตย์เห็นด้วยกับบล็อกว่าง) การคัดเลือกผู้นำ ใน Algorand บล็อก r อยู่ในรูปแบบ Br = (r, PAY r, Qr, H(Br−1) ดังที่ได้กล่าวไปแล้วในบทนำ ปริมาณ Qr−1 ได้รับการสร้างขึ้นอย่างระมัดระวังเพื่อที่จะเป็น โดยพื้นฐานแล้วไม่สามารถจัดการได้โดยศัตรูที่ทรงพลังมากของเรา (ต่อไปในส่วนนี้เราจะ ให้สัญชาตญาณว่าทำไมถึงเป็นเช่นนี้) เมื่อเริ่มต้นรอบ r ผู้ใช้ทุกคนจะทราบดี blockchain จนถึงตอนนี้ B0, . . . , Br−1 ซึ่งพวกเขาอนุมานชุดผู้ใช้ของทุกรอบก่อนหน้า: นั่น คือ PK1, . . . , PKr−1 ผู้นำที่มีศักยภาพของ Round r คือผู้ใช้ i เช่นนั้น .H ซิจี r, 1, Qr−1 \(\leq\)p ให้เราอธิบาย โปรดสังเกตว่า เนื่องจากปริมาณ Qr−1 เป็นส่วนหนึ่งของบล็อก Br−1 และปริมาณที่อยู่ข้างใต้ รูปแบบลายเซ็นเป็นไปตามคุณสมบัติที่เป็นเอกลักษณ์ SIGi r, 1, Qr−1 เป็นสตริงไบนารี่ที่ไม่ซ้ำใคร เกี่ยวข้องกับฉันและอาร์ ดังนั้น เนื่องจาก H เป็นการสุ่ม oracle, H ซิจี r, 1, Qr−1 เป็นการสุ่ม 256 บิต สตริงยาวที่เกี่ยวข้องกับ i และ r โดยเฉพาะ สัญลักษณ์ “” ด้านหน้าของ H ซิจี r, 1, Qr−1 คือ จุดทศนิยม (ในกรณีของเราคือไบนารี่) ดังนั้น ri \(\triangleq\).H ซิจี r, 1, Qr−1 คือการขยายตัวแบบไบนารีของ a ตัวเลขสุ่ม 256 บิตระหว่าง 0 ถึง 1 ที่เกี่ยวข้องกับ i และ r โดยเฉพาะ ดังนั้นความน่าจะเป็นนั้น ri น้อยกว่าหรือเท่ากับ p โดยพื้นฐานแล้วคือ p (กลไกการคัดเลือกผู้นำที่มีศักยภาพของเราคือ แรงบันดาลใจจากรูปแบบการชำระเงินแบบไมโครของ Micali และ Rivest [28].) ความน่าจะเป็น p ถูกเลือกเพื่อให้มีความน่าจะเป็นอย่างท่วมท้น (เช่น 1 −F) อย่างน้อยหนึ่งค่า ผู้ตรวจสอบที่มีศักยภาพมีความซื่อสัตย์ (หากข้อเท็จจริง เลือก p ให้เป็นความน่าจะเป็นที่น้อยที่สุด)โปรดทราบว่าเนื่องจากฉันเป็นเพียงคนเดียวที่สามารถคำนวณลายเซ็นของเขาเองได้ เขาคนเดียวจึงสามารถทำได้ ตรวจสอบว่าเขาเป็นผู้ตรวจสอบที่มีศักยภาพของรอบที่ 1 หรือไม่ อย่างไรก็ตาม ด้วยการเปิดเผยข้อมูลประจำตัวของเขาเอง ซิร ฉัน \(\triangleq\)SIGi r, 1, Qr−1 ฉันสามารถพิสูจน์ให้ทุกคนเห็นว่าเป็นผู้ตรวจสอบที่มีศักยภาพของรอบ r ผู้นำ ër ถูกกำหนดให้เป็นผู้นำที่มีศักยภาพซึ่งข้อมูลประจำตัว hashed น้อยกว่าที่ hashed หนังสือรับรองของผู้ที่มีศักยภาพเป็นผู้นำคนอื่นๆ ทั้งหมด j: นั่นคือ H(\(\sigma\)r,s มอร์ ) \(\leq\)H(\(\sigma\)r,s เจ) โปรดทราบว่า เนื่องจากผู้ประสงค์ร้าย ër อาจไม่เปิดเผยข้อมูลประจำตัวของเขา ผู้นำที่ถูกต้องของรอบ r อาจ ไม่เคยมีใครรู้ และนั่น ยกเว้นความสัมพันธ์ที่ไม่น่าจะเป็นไปได้ ër เป็นผู้นำเพียงคนเดียวของรอบ r ในที่สุดเราจะนำเสนอรายละเอียดสุดท้ายแต่สำคัญ: ผู้ใช้ที่ฉันสามารถเป็นผู้นำที่มีศักยภาพได้ (และด้วยเหตุนี้ ผู้นำ) ของรอบ r เฉพาะในกรณีที่เขาอยู่ในระบบอย่างน้อย k รอบ นี้รับประกัน การไม่สามารถจัดการได้ของ Qr และปริมาณ Q ในอนาคตทั้งหมด อันที่จริงแล้วหนึ่งในผู้นำที่มีศักยภาพ จะกำหนดคิวอาร์จริงๆ การเลือกผู้ตรวจสอบ แต่ละขั้นตอน s > 1 ของรอบ r จะถูกดำเนินการโดยชุดตรวจสอบขนาดเล็ก SV r,s อีกครั้ง แต่ละ veriifier i \(\in\)SV r,s จะถูกสุ่มเลือกจากผู้ใช้ที่อยู่ในระบบ k รอบ ก่อน r และอีกครั้งผ่านปริมาณพิเศษ Qr−1 โดยเฉพาะอย่างยิ่ง i \(\in\)PKr−k เป็นตัวยืนยันใน SV r,s ถ้า .H ซิจี r, s, Qr−1 \(\leq\)p′ . อีกครั้งหนึ่ง มีเพียงฉันเท่านั้นที่รู้ว่าเขาเป็นของ SV r,s หรือไม่ แต่ถ้าเป็นกรณีนี้ เขาพิสูจน์ได้โดย แสดงหนังสือรับรองของเขา \(\sigma\)r, s ฉัน \(\triangleq\)H(SIGi r, s, Qr−1 ). ผู้ตรวจสอบ i \(\in\)SV r,s ส่งข้อความ mr,s ฉัน ใน ขั้นตอนที่ s ของรอบ r และข้อความนี้รวมข้อมูลรับรอง \(\sigma\)r,s ของเขาด้วย ฉัน เพื่อที่จะเปิดใช้งานผู้ตรวจสอบ f ขั้นทำรังให้รู้ว่าคุณนาย ฉัน เป็นข้อความขั้นตอนที่ถูกต้องตามกฎหมาย ความน่าจะเป็น p′ ถูกเลือกเพื่อให้แน่ใจว่า ใน SV r,s ให้ #good เป็นจำนวนของ ผู้ใช้ที่ซื่อสัตย์และ #bad จำนวนผู้ใช้ที่เป็นอันตราย โดยมีความน่าจะเป็นอย่างล้นหลามดังต่อไปนี้ ถือสองเงื่อนไข สำหรับศูนย์รวม Algorand ′ 1: (1) #ดี > 2 \(\cdot\) #ไม่ดี และ (2) #ดี + 4 \(\cdot\) #ไม่ดี < 2n โดยที่ n คือจำนวนเชิงการนับที่คาดหวังของ SV r,s สำหรับศูนย์รวม Algorand ′ 2: (1) #ดี > ทและ (2) #ดี + 2#ไม่ดี < 2tH โดยที่ th เป็นเกณฑ์ที่กำหนด เงื่อนไขเหล่านี้บอกเป็นนัยว่า ด้วยความเป็นไปได้สูงพอสมควร (a) ในขั้นตอนสุดท้ายของ BA โปรโตคอล อย่างน้อยก็จะมีผู้เล่นที่ซื่อสัตย์จำนวนหนึ่งให้ลงนามแบบดิจิทัลในบล็อกใหม่ Br (b) เพียงหนึ่งบล็อกต่อรอบอาจมีจำนวนลายเซ็นที่จำเป็น และ (c) BA ที่ใช้ โปรโตคอลมี (ในแต่ละขั้นตอน) เสียงข้างมากที่ซื่อสัตย์ 2/3 ที่จำเป็น ชี้แจงการสร้างบล็อก ถ้าผู้นำ Round-r ër ซื่อสัตย์ บล็อกที่เกี่ยวข้อง อยู่ในรูปแบบ บร = r, จ่าย r, SIGLRr Qr−1 , เอช เบอร์−1 , โดยที่ payset PAY r มีค่าสูงสุด (โปรดจำไว้ว่าชุดการจ่ายเงินทั้งหมดมีผลใช้ได้โดยรวม) อย่างอื่น (เช่น ถ้า ër เป็นอันตราย) Br จะมีรูปแบบใดรูปแบบหนึ่งจากสองรูปแบบต่อไปนี้: บร = r, จ่าย r, SIgi คิวอาร์−1 , เอช เบอร์−1 และ บร = บร \(\varepsilon\) \(\triangleq\) r, \(\emptyset\), Qr−1, H เบอร์−1 .ในรูปแบบแรก PAY r คือชุดการจ่ายเงิน (สูงสุดที่ไม่จำเป็น) และอาจเป็น PAY r = \(\emptyset\); และฉันคือ ผู้นำที่มีศักยภาพของรอบ r (แต่ผมอาจไม่ใช่หัวหน้านะ เรื่องนี้อาจจะเกิดขึ้นได้ถ้าถ้า (หมอเก็บความลับข้อมูลประจำตัวของเขาไว้และไม่เปิดเผยตัวเอง) รูปแบบที่สองเกิดขึ้นเมื่อในการดำเนินการตามระเบียบการของ BA ผู้เล่นที่ซื่อสัตย์ทุกคน ส่งออกค่าเริ่มต้นซึ่งเป็นบล็อกว่าง Br \(\varepsilon\)ในใบสมัครของเรา (โดยนิยามแล้วเป็นไปได้. เอาต์พุตของโปรโตคอล BA จะมีค่าเริ่มต้น ซึ่งแสดงโดยทั่วไปด้วย \(\bot\) ดูหัวข้อ 3.2.) โปรดทราบว่าแม้ว่าชุดการจ่ายเงินจะว่างเปล่าในทั้งสองกรณี แต่ Br = r, \(\emptyset\), SIGI คิวอาร์−1 , เอช เบอร์−1 และบรา \(\varepsilon\) เป็นบล็อกที่แตกต่างกันทางวากยสัมพันธ์และเกิดขึ้นในสองสถานการณ์ที่แตกต่างกัน: ตามลำดับ “ทั้งหมด ดำเนินไปอย่างราบรื่นเพียงพอในการดำเนินการตามโปรโตคอล BA” และ “มีบางอย่างผิดพลาดใน โปรโตคอล BA และค่าเริ่มต้นคือเอาต์พุต” ตอนนี้ให้เราอธิบายอย่างสังหรณ์ใจว่าการสร้างบล็อก Br ดำเนินไปอย่างไรในรอบ r ของ Algorand ′ ในขั้นตอนแรก ผู้เล่นแต่ละคนที่มีสิทธิ์ นั่นคือ ผู้เล่นแต่ละคน i \(\in\)PKr−k ตรวจสอบว่าเขามีศักยภาพหรือไม่ ผู้นำ หากเป็นกรณีนี้ ฉันจะถูกขอให้ใช้การชำระเงินทั้งหมดที่เขาเห็นมาและ ปัจจุบัน blockchain, B0, . . . , Br−1 เพื่อแอบเตรียมชุดการชำระเงินสูงสุด PAY r ฉัน และอย่างลับๆ ประกอบบล็อกผู้สมัครของเขา Br = r จ่าย r ฉัน , SIGI คิวอาร์−1 , เอช เบอร์−1 . นั่นคือไม่เพียงแต่เขาเท่านั้น รวมไว้ใน Br i เป็นองค์ประกอบที่สองของชุดจ่ายเงินที่เพิ่งเตรียมไว้ แต่ยังเป็นองค์ประกอบที่สามด้วย ลายเซ็นของเขาเองของ Qr−1 ซึ่งเป็นองค์ประกอบที่สามของบล็อกสุดท้าย Br−1 ในที่สุดเขาก็เผยแพร่ของเขา ข้อความรอบ-r-ขั้นตอน-1 คุณ 1 ฉัน ซึ่งรวมถึง (ก) บล็อกผู้สมัครของเขา Br ฉัน , (b) ลายเซ็นที่ถูกต้องของเขา ของบล็อกผู้สมัครของเขา (เช่น ลายเซ็นของเขา hash ของ Br ฉัน และ (c) หนังสือรับรองของเขาเอง \(\sigma\)r,1 ฉัน, พิสูจน์ ว่าเขาเป็นผู้ตรวจสอบที่มีศักยภาพของรอบ r จริงๆ (โปรดทราบว่า จนกว่าฉันจะซื่อสัตย์ ฉันส่งข้อความถึงนาย 1) ฉัน ปฏิปักษ์ไม่มีเบาะแสว่าฉันเป็น ผู้ตรวจสอบศักยภาพ หากเขาต้องการจะทำให้ผู้นำที่ซื่อสัตย์เสื่อมเสีย ปฏิปักษ์ก็อาจทำได้เช่นกัน ผู้เล่นที่ซื่อสัตย์สุ่มทุจริต อย่างไรก็ตาม เมื่อเขาได้พบกับนาย 1 ฉัน เนื่องจากมีข้อมูลประจำตัวของฉัน ฝ่ายตรงข้ามรู้และอาจทุจริตได้ แต่ไม่สามารถป้องกันนายได้1 ฉัน ซึ่งมีการแพร่กระจายของไวรัสจาก เข้าถึงผู้ใช้งานทุกคนในระบบ) ในขั้นตอนที่สอง ผู้ตรวจสอบที่เลือกแต่ละคน j \(\in\)SV r,2 จะพยายามระบุผู้นำของรอบ โดยเฉพาะอย่างยิ่ง j ใช้ข้อมูลรับรองขั้นตอนที่ 1, \(\sigma\)r,1 i1 , . . . , \(\sigma\)r,1 ใน ซึ่งมีอยู่ในข้อความขั้นตอนที่ 1 ที่เหมาะสม mr,1 ฉัน เขาได้รับ; hashes ทั้งหมดนั่นคือคำนวณ H  ซิร,1 i1  , . . . , เอช  ซิร,1 ใน  ; ค้นหาหนังสือรับรอง ซิร,1 ëj ซึ่ง hash เป็นคำศัพท์ขั้นต่ำ; และถือว่า LRr j เป็นผู้นำของรอบ r โปรดจำไว้ว่าข้อมูลประจำตัวที่พิจารณาแต่ละรายการนั้นเป็นลายเซ็นดิจิทัลของ Qr−1 ซึ่ง SIGi นั้น r, 1, Qr−1 คือ ถูกกำหนดโดยไม่ซ้ำกันโดย i และ Qr−1 ว่า H นั้นเป็นแบบสุ่ม oracle และด้วยเหตุนี้ แต่ละ H(SIGi r, 1, Qr−1 เป็นสตริงสุ่มแบบยาว 256 บิตที่ไม่ซ้ำกันสำหรับผู้นำที่มีศักยภาพ i แต่ละคนของรอบ r จากนี้เราสามารถสรุปได้ว่า ถ้าสตริง 256 บิต Qr−1 เป็นตัวของตัวเองแบบสุ่มและเป็นอิสระ เลือกไว้ ยิ่งกว่านั้นจะเป็นข้อมูลรับรอง hashed ของผู้นำที่มีศักยภาพทั้งหมดในรอบ r ในความเป็นจริงทั้งหมด ผู้ที่อาจเป็นผู้นำนั้นได้รับการกำหนดอย่างดี และข้อมูลประจำตัวของพวกเขาก็เช่นกัน (ไม่ว่าจะคำนวณจริงหรือ ไม่) นอกจากนี้ ชุดของผู้นำที่มีศักยภาพของรอบ r ยังเป็นสับเซตแบบสุ่มของผู้ใช้ของรอบ r −k และผู้นำที่มีศักยภาพที่ซื่อสัตย์ ฉันมักจะสร้างและเผยแพร่ข้อความของเขาอย่างเหมาะสมเสมอ ฉัน ซึ่งมีข้อมูลรับรองของฉัน ดังนั้น เนื่องจากเปอร์เซ็นต์ของผู้ใช้ที่ซื่อสัตย์คือ h ไม่ว่าจะอย่างไรก็ตาม ผู้ที่อาจเป็นผู้นำที่เป็นอันตรายอาจทำ (เช่น เปิดเผยหรือปกปิดข้อมูลประจำตัวของตนเอง) น้อยที่สุด hashed ข้อมูลรับรองที่มีศักยภาพในการเป็นผู้นำเป็นของผู้ใช้ที่ซื่อสัตย์ ซึ่งทุกคนจำเป็นต้องระบุตัวตน เพื่อเป็นผู้นำของรอบr ดังนั้น ถ้าสตริง 256 บิต Qr−1 เป็นตัวสุ่มและ เลือกอย่างอิสระ โดยมีความน่าจะเป็นอย่างแน่นอน h (a) ผู้นำ ër ซื่อสัตย์และ (b) ëj = ër สำหรับทุกคน ผู้ตรวจสอบขั้นตอนที่ 2 อย่างซื่อสัตย์ ในความเป็นจริง หนังสือรับรอง hashed ใช่ เป็นการสุ่มเลือก แต่ขึ้นอยู่กับ Qr−1 ซึ่งก็คือไม่ใช่การสุ่มและคัดเลือกอย่างอิสระ อย่างไรก็ตาม เราจะพิสูจน์ในการวิเคราะห์ของเราว่า Qr−1 เป็นเช่นนั้น ไม่สามารถจัดการได้อย่างเหมาะสมเพื่อรับประกันว่าผู้นำของรอบจะซื่อสัตย์กับความน่าจะเป็น h′ ใกล้เคียงกับ h มากพอ กล่าวคือ h′ > h2(1 + h −h2) ตัวอย่างเช่น ถ้า h = 80% แล้ว h′ > .7424 โดยระบุผู้นำของรอบแล้ว (ซึ่งจะทำอย่างถูกต้องเมื่อผู้นำ ër ซื่อสัตย์) งานของผู้ตรวจสอบขั้นตอนที่ 2 คือการเริ่มดำเนินการ BA โดยใช้ค่าเริ่มต้นในสิ่งที่พวกเขาเชื่อ เพื่อเป็นแกนนำของผู้นำ จริงๆ แล้ว เพื่อลดปริมาณการสื่อสารที่จำเป็นให้เหลือน้อยที่สุด ผู้ตรวจสอบ j \(\in\)SV r,2 ไม่ได้ใช้ เนื่องจากเป็นค่าอินพุต v′ j ไปยังโปรโตคอล Byzantine บล็อก Bj นั้น เขาได้รับจริงๆ จาก ëj (ผู้ใช้ j เชื่อว่าเป็นผู้นำ) แต่เป็นผู้นำ แต่ hash ของบล็อกนั้น นั่นคือ v′ เจ = H(บี) ดังนั้น เมื่อยกเลิกโปรโตคอล BA ผู้ตรวจสอบ ของขั้นตอนสุดท้ายไม่ได้คำนวณบล็อก round-r Br ที่ต้องการ แต่คำนวณ (authenticate and เผยแพร่) H(Br) ดังนั้น เนื่องจาก H(Br) ได้รับการลงนามแบบดิจิทัลโดยผู้ตรวจสอบจำนวนมากเพียงพอ ขั้นตอนสุดท้ายของโปรโตคอล BA ผู้ใช้ในระบบจะทราบว่า H(Br) คือ hash ของใหม่ บล็อก อย่างไรก็ตาม พวกเขายังต้องดึงข้อมูล (หรือรอ เนื่องจากการดำเนินการค่อนข้างไม่พร้อมกัน) บล็อก Br เอง ซึ่งโปรโตคอลทำให้มั่นใจได้ว่าจะพร้อมใช้งานจริง ไม่ว่าฝ่ายตรงข้ามจะเป็นอย่างไรก็ตาม อาจจะทำ ความไม่ตรงกันและการกำหนดเวลา Algorand ′ 1 และ Algorand ′ 2 มีระดับความไม่ตรงกันอย่างมีนัยสำคัญ ที่เป็นเช่นนี้เพราะปฏิปักษ์มีละติจูดมากในการจัดตารางเวลาการส่งข้อความ แพร่กระจาย นอกจากนี้ไม่ว่าจำนวนก้าวทั้งหมดในแต่ละรอบจะจำกัดหรือไม่ก็ตาม ความแปรปรวนมีส่วนช่วยตามจำนวนขั้นตอนที่ดำเนินการจริง ทันทีที่เขาเรียนรู้ใบรับรองของ B0 . . , Br−1 ผู้ใช้ที่ฉันคำนวณ Qr−1 และเริ่มทำงาน ในรอบ r ตรวจสอบว่าเขาเป็นผู้นำที่มีศักยภาพหรือเป็นผู้ตรวจสอบในบางขั้นตอนของรอบ r สมมติว่าฉันต้องดำเนินการในขั้นตอน s เนื่องจากความไม่ซิงโครนัสที่กล่าวถึง ฉันอาศัยปัจจัยต่างๆ กลยุทธ์เพื่อให้แน่ใจว่าเขามีข้อมูลที่เพียงพอก่อนดำเนินการ ตัวอย่างเช่น เขาอาจรอรับข้อความอย่างน้อยตามจำนวนที่กำหนดจากผู้ตรวจสอบ ขั้นที่แล้ว หรือรอสักระยะ เพื่อให้ได้รับข้อความอย่างเพียงพอ ผู้ตรวจสอบจำนวนมากของขั้นตอนก่อนหน้า Seed Qr และพารามิเตอร์ Look-Back k จำไว้ว่าตามหลักการแล้ว ปริมาณ Qr ควรจะเป็น สุ่มและเป็นอิสระ แม้ว่าพวกเขาจะไม่ถูกควบคุมโดย ฝ่ายตรงข้าม เมื่อมองแวบแรก เราสามารถเลือก Qr−1 ให้ตรงกับ H จ่าย r−1 และด้วยเหตุนี้จึงหลีกเลี่ยงที่จะ ระบุ Qr−1 อย่างชัดเจนใน Br−1 อย่างไรก็ตาม การวิเคราะห์เบื้องต้นเผยให้เห็นว่าผู้ใช้ที่เป็นอันตรายอาจทำได้ ใช้ประโยชน์จากกลไกการคัดเลือกนี้11 ความพยายามเพิ่มเติมบางอย่างแสดงให้เห็นว่ามีกลไกอื่นๆ มากมาย 11เราอยู่ที่จุดเริ่มต้นของรอบ r −1 ดังนั้น Qr−2 = PAY r−2 จึงเป็นที่รู้จักอย่างเปิดเผย และปฏิปักษ์เป็นการส่วนตัว รู้ว่าใครคือผู้นำที่มีศักยภาพที่เขาควบคุม สมมติว่าฝ่ายตรงข้ามควบคุมผู้ใช้ 10% และ ด้วยความน่าจะเป็นที่สูงมาก ผู้ใช้ที่เป็นอันตราย w เป็นผู้นำที่มีศักยภาพของรอบ r −1 นั่นก็คือ สมมุติว่า ฮ เอสไอจี r −2, 1, Qr−2 มีขนาดเล็กมากจนไม่น่าเป็นไปได้อย่างยิ่งที่ผู้นำที่ซื่อสัตย์จะเป็นเช่นนั้นจริงๆ ผู้นำของรอบ r −1 (โปรดจำไว้ว่า เนื่องจากเราเลือกผู้นำที่มีศักยภาพผ่านกลไกการเรียงลำดับการเข้ารหัสลับ ปฏิปักษ์ไม่รู้ว่าใครเป็นผู้นำที่ซื่อสัตย์) ปฏิปักษ์จึงอยู่ในที่น่าอิจฉา ตำแหน่งในการเลือกชุดการจ่ายเงิน PAY ′ ที่เขาต้องการ และให้กลายเป็นชุดการจ่ายเงินอย่างเป็นทางการของรอบ r −1 อย่างไรก็ตาม เขาสามารถทำได้มากกว่านี้ เขายังสามารถมั่นใจได้ว่า มีความเป็นไปได้สูงที่ () ผู้ใช้ที่เป็นอันตรายรายหนึ่งของเขาจะเป็นผู้นำ ของรอบ r ด้วย เพื่อให้เขาสามารถเลือกได้ว่า PAY r จะเป็นอย่างไร (และอื่นๆ อย่างน้อยก็เป็นเวลานานๆ นั่นก็คือ ตราบใดที่เหตุการณ์ความน่าจะเป็นสูงเหล่านี้เกิดขึ้นจริง) เพื่อรับประกัน () ฝ่ายตรงข้ามจะดำเนินการดังต่อไปนี้ ให้จ่าย ′ เป็นค่าตอบแทนที่ฝ่ายตรงข้ามชอบสำหรับรอบ r −1 จากนั้น เขาจะคำนวณ H(PAY ′) และตรวจสอบว่าสำหรับบางส่วนหรือไม่ ผู้เล่นที่เป็นอันตรายอยู่แล้ว z, SIGz(r, 1, H(PAY ′)) มีขนาดเล็กเป็นพิเศษ นั่นคือ เล็กพอที่จะมีค่าสูงมาก ความน่าจะเป็น z จะเป็นผู้นำของรอบ r หากเป็นกรณีนี้ เขาสั่งให้ w เลือกกลุ่มผู้สมัครของเขาที่จะเป็นทางเลือกอื่นซึ่งขึ้นอยู่กับปริมาณบล็อกแบบดั้งเดิมนั้นฝ่ายตรงข้ามสามารถหาประโยชน์ได้อย่างง่ายดายเพื่อให้มั่นใจ ที่ผู้นำใจร้ายมีบ่อยมาก เรากลับกำหนดแบรนด์ของเราอย่างเจาะจงและจูงใจแทน ปริมาณใหม่ Qr เพื่อที่จะสามารถพิสูจน์ได้ว่าฝ่ายตรงข้ามไม่สามารถจัดการได้ กล่าวคือ Qr \(\triangleq\)H(SIGër(Qr−1), r) ถ้า Br ไม่ใช่บล็อกว่าง และ Qr \(\triangleq\)H(Qr−1, r) มิฉะนั้น สัญชาตญาณว่าทำไมการก่อสร้างงาน Qr จึงมีดังต่อไปนี้ สมมติสักครู่ว่า Qr−1 ถูกเลือกแบบสุ่มและเป็นอิสระอย่างแท้จริง แล้วจะเป็น Qr ไหม? เมื่อ LRr ซื่อสัตย์ คำตอบคือ (พูดประมาณ) ใช่ ที่เป็นเช่นนี้ก็เพราะว่า H(SIGLRr( \(\cdot\) ), r) : {0, 1}256 −→{0, 1}256 เป็นฟังก์ชันสุ่ม อย่างไรก็ตาม เมื่อ ër เป็นอันตราย Qr จะไม่ถูกกำหนดจาก Qr−1 อีกต่อไป และ LRr มีค่าแยกกันอย่างน้อยสองค่าสำหรับ Qr หนึ่งยังคงเป็น Qr \(\triangleq\)H(SIGër(Qr−1), r) และอีกอันคือ H(Qr−1, r) ก่อนอื่นให้เราโต้แย้งว่า แม้ว่าตัวเลือกที่สองจะค่อนข้างจะไร้เหตุผล ทางเลือกที่สองเป็นสิ่งจำเป็นอย่างยิ่ง เหตุผลก็คือผู้ประสงค์ร้ายสามารถก่อเหตุได้เสมอ บล็อกผู้สมัครที่แตกต่างกันโดยสิ้นเชิงที่จะได้รับโดยผู้ตรวจสอบที่ซื่อสัตย์ของขั้นตอนที่สอง 12 หนึ่งครั้ง ในกรณีนี้ มันเป็นเรื่องง่ายที่จะตรวจสอบให้แน่ใจว่าในที่สุดบล็อกก็ตกลงกันผ่านโปรโตคอล BA ของ รอบ r จะเป็นค่าดีฟอลต์ และจะไม่มีลายเซ็นดิจิทัลของ Qr−1 ของใครเลย แต่ ระบบจะต้องดำเนินต่อไป และเพื่อสิ่งนี้ มันต้องมีผู้นำในรอบ r หากผู้นำคนนี้เป็นไปโดยอัตโนมัติ และเลือกอย่างเปิดเผย แล้วปฏิปักษ์ก็จะทำร้ายเขาเล็กน้อย หากถูกเลือกโดยก่อนหน้านี้ Qr−1 ผ่านกระบวนการเดียวกัน มากกว่า ër จะเป็นผู้นำในรอบ r+1 อีกครั้ง เราเสนอให้โดยเฉพาะ ใช้กลไกการเรียงลำดับการเข้ารหัสลับแบบเดียวกัน แต่นำไปใช้กับปริมาณ Q ใหม่: กล่าวคือ H(Qr−1, r) การให้ปริมาณนี้เป็นเอาท์พุตของ H รับประกันว่าเอาท์พุตจะเป็นแบบสุ่ม และโดยการรวม r เป็นอินพุตที่สองของ H ในขณะที่การใช้ H อื่น ๆ ทั้งหมดมีอินพุตหนึ่งหรือ 3+ “รับประกัน” ว่า Qr ดังกล่าวได้รับการคัดเลือกอย่างอิสระ อีกครั้ง ตัวเลือก Qr ทางเลือกเฉพาะของเรา ไม่สำคัญ สิ่งที่สำคัญคือ ër มีทางเลือกสองทางสำหรับ Qr และด้วยเหตุนี้เขาจึงสามารถเพิ่มโอกาสเป็นสองเท่าได้ เพื่อให้มีผู้ใช้ที่เป็นอันตรายรายอื่นเป็นผู้นำคนต่อไป ตัวเลือกสำหรับ Qr อาจมีมากมายสำหรับฝ่ายตรงข้ามที่ควบคุม ër ที่เป็นอันตราย ตัวอย่างเช่น ให้ x, y และ z เป็นผู้นำที่มีศักยภาพอันตรายสามคนของรอบ r เช่นนั้น ฮ ซิร,1 x  < ฮ ซิร,1 ย  < ฮ ซิร,1 z  และเอช  ซิร,1 z  มีขนาดเล็กเป็นพิเศษ นั่นคือน้อยมากจนมีโอกาสที่ดีที่ H  ซิร,1 z  คือ น้อยกว่าข้อมูลรับรอง hashed ของผู้ที่มีศักยภาพเป็นผู้นำที่ซื่อสัตย์ทุกคน จากนั้นโดยขอให้ x ซ่อนของเขา หนังสือรับรอง ฝ่ายตรงข้ามมีโอกาสที่ดีที่จะให้ y เป็นผู้นำของรอบ r −1 นี้ บ่งบอกเป็นนัยว่าเขามีทางเลือกอื่นสำหรับ Qr: คือ SIGy คิวอาร์−1 . ปฏิปักษ์ก็อาจทำเช่นเดียวกัน ขอให้ทั้ง x และ y ระงับข้อมูลประจำตัวของตน เพื่อให้ z เป็นผู้นำของรอบ r −1 และได้รับตัวเลือกอื่นสำหรับ Qr: คือ SIGz คิวอาร์−1 . อย่างไรก็ตาม แน่นอนว่าแต่ละตัวเลือกเหล่านี้และตัวเลือกอื่นๆ มีโอกาสล้มเหลวไม่เป็นศูนย์ เพราะว่า ฝ่ายตรงข้ามไม่สามารถคาดเดา hash ของลายเซ็นดิจิทัลของผู้ใช้ที่ซื่อสัตย์ได้ เบอร์−1 ฉัน = (r −1, PAY ′, H(Br−2) มิฉะนั้น เขามีผู้ใช้ที่เป็นอันตรายอีกสองคน x และ y เพื่อสร้างการชำระเงินใหม่ต่อไป \(\wp\)′ จากที่หนึ่งไปยังอีกที่หนึ่ง จนกระทั่งสำหรับผู้ใช้ที่เป็นอันตรายบางราย z (หรือแม้แต่สำหรับผู้ใช้คงที่บางราย z) H (SIGz (PAY ′ \(\cup\){\(\wp\)})) คือ เล็กมากเช่นกัน การทดลองนี้จะหยุดลงอย่างรวดเร็ว และเมื่อปฏิปักษ์ร้องขอให้เสนอ บล็อกผู้สมัคร Br−1 ฉัน = (r −1, จ่าย ′ \(\cup\){\(\wp\)}, H(Br−2) 12เช่น เพื่อให้ง่าย (แต่สุดโต่ง) “เมื่อเวลาของขั้นตอนที่สองกำลังจะหมดลง” ër สามารถ ส่งอีเมลถึงบล็อกผู้สมัคร Bi ที่แตกต่างกันโดยตรงไปยังผู้ใช้แต่ละคน i ด้วยวิธีนี้ ไม่ว่าใครก็ตามที่เป็นผู้ตรวจสอบขั้นตอนที่ 2 อาจเป็นพวกเขา จะได้รับบล็อกที่แตกต่างกันโดยสิ้นเชิงการวิเคราะห์อย่างรอบคอบเหมือน Markov-chain แสดงให้เห็นว่า ไม่ว่าฝ่ายตรงข้ามจะเลือกตัวเลือกใดก็ตาม ที่จะทำในรอบ r −1 ตราบใดที่เขาไม่สามารถฉีดผู้ใช้ใหม่เข้าสู่ระบบได้ เขาไม่สามารถลดค่าได้ ความน่าจะเป็นของผู้ใช้ที่ซื่อสัตย์ที่จะเป็นผู้นำของรอบ r + 40 ต่ำกว่า h มาก นี่คือสาเหตุที่ทำให้ ซึ่งเราเรียกร้องให้ผู้นำที่มีศักยภาพของรอบ r เป็นผู้ใช้ที่มีอยู่แล้วในรอบ r −k มันเป็นวิธีที่จะทำให้แน่ใจว่า ในรอบ r −k ปฏิปักษ์ไม่สามารถเปลี่ยนแปลงความน่าจะเป็นที่ ผู้ใช้ที่ซื่อสัตย์จะเป็นผู้นำของ Round r ในความเป็นจริงไม่ว่าเขาจะเพิ่มผู้ใช้คนใดก็ตาม ระบบในรอบ r −k ถึง r พวกเขาไม่มีคุณสมบัติที่จะเป็นผู้นำที่มีศักยภาพ (และ fortiori ผู้นำ) ของรอบ r ดังนั้นพารามิเตอร์การมองย้อนกลับ k ในที่สุดจึงเป็นพารามิเตอร์ความปลอดภัย (ถึงแม้ว่า ดังที่เราจะเห็นในหัวข้อที่ 7 มันสามารถเป็น “พารามิเตอร์ความสะดวกสบาย” ได้เช่นกัน) กุญแจชั่วคราว แม้ว่าการดำเนินการตามโปรโตคอลของเราไม่สามารถสร้างทางแยกได้ ยกเว้นด้วย ความน่าจะเป็นเล็กน้อย ฝ่ายตรงข้ามสามารถสร้างทางแยกที่บล็อก rth หลังจากถูกต้องตามกฎหมาย บล็อก r ถูกสร้างขึ้นแล้ว โดยคร่าวๆ เมื่อ Br ถูกสร้างขึ้น ฝ่ายตรงข้ามจะได้เรียนรู้ว่าใครเป็นผู้ตรวจสอบแต่ละขั้นตอน ของรอบ r คือ ดังนั้นเขาจึงสามารถทุจริตทั้งหมดและบังคับให้พวกเขารับรองบล็อกใหม่ได้ ฉ บ. เนื่องจากบล็อกปลอมนี้อาจเผยแพร่ได้หลังจากบล็อกที่ถูกต้องเท่านั้น นั่นคือผู้ใช้ที่เผยแพร่ไปแล้ว การเอาใจใส่จะไม่ถูกหลอก13 อย่างไรก็ตาม ฉ Br จะถูกทางวากยสัมพันธ์และเรา ต้องการป้องกันไม่ให้ถูกผลิต เราทำเช่นนั้นโดยใช้กฎใหม่ โดยพื้นฐานแล้ว สมาชิกของผู้ตรวจสอบจะตั้งค่า SV r,s ของขั้นตอน s ของรอบ r ใช้กุญแจสาธารณะชั่วคราว pkr,s ฉัน เพื่อเซ็นข้อความแบบดิจิทัล คีย์เหล่านี้เป็นคีย์แบบใช้ครั้งเดียวเท่านั้นและมีคีย์ลับที่เกี่ยวข้อง skr,s ฉัน จะถูกทำลายทันทีที่ใช้ ด้วยวิธีนี้ ถ้ามีผู้ตรวจสอบ เสียหายในภายหลัง ฝ่ายตรงข้ามไม่สามารถบังคับให้เขาลงนามสิ่งอื่นใดที่เขาไม่ได้ลงนามในตอนแรก โดยปกติแล้ว เราต้องแน่ใจว่าเป็นไปไม่ได้ที่ฝ่ายตรงข้ามจะคำนวณคีย์ใหม่ g ประชาสัมพันธ์ ฉัน และโน้มน้าวผู้ใช้โดยสุจริตว่านี่คือคีย์ชั่วคราวที่ถูกต้องของตัวตรวจสอบ i \(\in\)SV r,s ที่จะใช้ในขั้นตอน s 4.2 สรุปทั่วไปของสัญกรณ์ แนวคิด และพารามิเตอร์ สัญกรณ์ • r \(\geq\)0: หมายเลขรอบปัจจุบัน • s \(\geq\)1: หมายเลขขั้นตอนปัจจุบันในรอบ r • Br: บล็อกที่สร้างขึ้นในรอบ r • PKr: ชุดของกุญแจสาธารณะในตอนท้ายของรอบ r −1 และที่จุดเริ่มต้นของรอบ r • Sr: สถานะของระบบเมื่อสิ้นสุดรอบ r −1 และเมื่อเริ่มรอบ r.14 • PAY r: ชุดการจ่ายเงินที่อยู่ใน Br. • ër: ผู้นำแบบ Round-R ër เลือกชุดการจ่ายเงิน PAY r ของรอบ r (และกำหนด Qr ถัดไป) • Qr: เมล็ดของรอบ r ซึ่งเป็นปริมาณ (เช่น สตริงไบนารี่) ที่สร้างขึ้นเมื่อสิ้นสุดรอบ r และใช้เพื่อเลือกผู้ตรวจสอบสำหรับรอบ r + 1 Qr ไม่ขึ้นอยู่กับชุดการจ่ายเงินในบล็อก และไม่สามารถถูกควบคุมโดย LRr ได้ 13พิจารณาสร้างความเสียหายให้กับผู้ประกาศข่าวของเครือข่ายโทรทัศน์รายใหญ่ และผลิตและออกอากาศรายการข่าวในปัจจุบัน แสดงให้เห็นเลขาธิการคลินตันชนะการเลือกตั้งประธานาธิบดีครั้งล่าสุด พวกเราส่วนใหญ่จะรับรู้ว่ามันเป็นเรื่องหลอกลวง แต่ คนที่ออกจากอาการโคม่าอาจถูกหลอกได้ 14ในระบบที่ไม่ซิงโครนัส แนวคิดเรื่อง "จุดสิ้นสุดของรอบ r −1" และ "จุดเริ่มต้นของรอบ r" จำเป็นต้องกำหนดอย่างรอบคอบ ในทางคณิตศาสตร์ PKr และ Sr คำนวณจากสถานะเริ่มต้น S0 และบล็อก บี1, . . . , Br−1• SV r,s: ชุดของตัวตรวจสอบที่เลือกสำหรับขั้นตอน s ของรอบ r • SV r: ชุดของตัวตรวจสอบที่เลือกสำหรับรอบ r, SV r = \(\cup\)s\(\geq\)1SV r,s • MSV r,s และ HSV r,s: ตามลำดับ ชุดของตัวตรวจสอบที่เป็นอันตรายและชุดของตัวตรวจสอบที่ซื่อสัตย์ ใน SV r,s MSV r,s \(\cup\)HSV r,s = SV r,s และ MSV r,s ∩HSV r,s = \(\emptyset\) • n1 \(\in\)Z+ และ n \(\in\)Z+: ตามลำดับ จำนวนที่คาดหวังของผู้นำที่มีศักยภาพในแต่ละ SV r,1 และจำนวนผู้ตรวจสอบที่คาดหวังในแต่ละ SV r,s สำหรับ s > 1 โปรดสังเกตว่า n1 << n เนื่องจากเราต้องการสมาชิกที่ซื่อสัตย์และซื่อสัตย์อย่างน้อยหนึ่งคนใน SV r,1 แต่อย่างน้อย สมาชิกที่ซื่อสัตย์ส่วนใหญ่ในแต่ละ SV r,s สำหรับ s > 1 • h \(\in\)(0, 1): ค่าคงที่มากกว่า 2/3 h คืออัตราส่วนความซื่อสัตย์ในระบบ นั่นก็คือ เศษของผู้ใช้ที่ซื่อสัตย์หรือเงินที่ซื่อสัตย์ ขึ้นอยู่กับสมมติฐานที่ใช้ในแต่ละ PKr อย่างน้อยชั่วโมง • H: ฟังก์ชันการเข้ารหัสลับ hash ซึ่งจำลองเป็นแบบสุ่ม oracle • \(\bot\): สตริงพิเศษที่มีความยาวเท่ากับเอาต์พุตของ H. • F \(\in\)(0, 1): พารามิเตอร์ที่ระบุความน่าจะเป็นของข้อผิดพลาดที่อนุญาต ความน่าจะเป็น \(\leq\)F คือ ถือว่า "เล็กน้อย" และความน่าจะเป็น \(\geq\)1 −F ถือว่า "ล้นหลาม" • ph \(\in\)(0, 1): ความน่าจะเป็นที่ผู้นำของรอบ r, ër มีความเที่ยงตรง ตามหลักการแล้ว ph = h ด้วย การมีอยู่ของฝ่ายตรงข้าม ค่า ph จะถูกกำหนดในการวิเคราะห์ • k \(\in\)Z+: พารามิเตอร์การมองย้อนกลับ นั่นคือ รอบ r −k คือตำแหน่งที่ตัวยืนยันสำหรับรอบ r อยู่ เลือกจาก —ได้แก่ SV r \(\subseteq\)PKr−k.15 • p1 \(\in\)(0, 1): สำหรับขั้นตอนแรกของรอบ r ผู้ใช้ในรอบ r −k จะถูกเลือกให้อยู่ใน SV r,1 ด้วย ความน่าจะเป็น p1 \(\triangleq\) n1 |P Kr−k|. • p \(\in\)(0, 1): สำหรับแต่ละขั้นตอน s > 1 ของรอบ r ผู้ใช้ในรอบ r −k จะถูกเลือกให้อยู่ใน SV r,s โดยมี ความน่าจะเป็น p \(\triangleq\) n |P Kr−k|. • CERT r: ใบรับรองสำหรับ Br. เป็นชุดลายเซ็นต์ของ H(Br) จากผู้ตรวจสอบที่เหมาะสม รอบร. • Br \(\triangleq\)(Br, CERT r) เป็นบล็อกที่ได้รับการพิสูจน์แล้ว ผู้ใช้ที่ฉันรู้จัก Br ว่าเขาครอบครอง (และยืนยันได้สำเร็จ) ทั้งสองส่วนของบล็อกที่พิสูจน์แล้วหรือไม่ โปรดทราบว่า CERT ที่ผู้ใช้รายอื่นเห็นอาจแตกต่างกัน • τ ร i : เวลา (ท้องถิ่น) ที่ผู้ใช้ที่ฉันรู้จัก Br ในโปรโตคอล Algorand ผู้ใช้แต่ละคนมีของเขา นาฬิกาของตัวเอง นาฬิกาของผู้ใช้ที่แตกต่างกันไม่จำเป็นต้องซิงโครไนซ์ แต่ต้องมีความเร็วเท่ากัน เพื่อจุดประสงค์ในการวิเคราะห์เท่านั้น เราจะพิจารณานาฬิกาอ้างอิงและวัดผลผู้เล่น เวลาที่เกี่ยวข้องด้วยความเคารพ • \(\alpha\)r,s ฉัน และ \(\beta\)r,s i : เวลา (ท้องถิ่น) ตามลำดับที่ผู้ใช้ที่ฉันเริ่มต้นและสิ้นสุดการดำเนินการตามขั้นตอน s ของ รอบร. • Λ และ แลมบ์: โดยพื้นฐานแล้ว คือขอบเขตบนของเวลาที่ต้องใช้ในการดำเนินการขั้นตอนที่ 1 และตามลำดับ เวลาที่จำเป็นสำหรับขั้นตอนอื่นใดของโปรโตคอล Algorand พารามิเตอร์ Λ ขอบเขตบนของเวลาในการเผยแพร่บล็อกขนาด 1MB เดียว (ในสัญกรณ์ของเรา Λ = แลร์,1MB. เมื่อนึกถึงสัญกรณ์ของเรา ที่เราตั้งค่า \(\rho\) = 1 เพื่อความเรียบง่าย และบล็อกนั้นก็คือ เลือกให้มีความยาวสูงสุด 1MB เรามี Λ = แลมบ์ดา 1,1,1MB) 15ถ้าพูดอย่างเคร่งครัด “r −k” ควรเป็น “สูงสุด{0, r −k}”พารามิเตอร์ แล เหนือเวลาในการเผยแพร่ข้อความขนาดเล็กหนึ่งข้อความต่อผู้ตรวจสอบในขั้นตอน s > 1 (การใช้ลายเซ็นเส้นโค้งวงรีที่มีคีย์ 32B เช่นเดียวกับใน Bitcoin ข้อความยืนยันจะมีความยาว 200B ดังนั้นในสัญกรณ์ของเรา แล = แลม, \(\rho\), 200B.) เราถือว่า Λ = O(แล) แนวคิด • การเลือกผู้ตรวจสอบ สำหรับแต่ละรอบ r และขั้นตอน s > 1, SV r,s \(\triangleq\){i \(\in\)PKr−k : .H(SIGi(r, s, Qr−1)) \(\leq\)p} แต่ละ ผู้ใช้ i \(\in\)PKr−k คำนวณลายเซ็นของเขาเป็นการส่วนตัวโดยใช้คีย์ระยะยาวของเขาและตัดสินใจว่า ฉัน \(\in\)SV r,s หรือไม่ ถ้า i \(\in\)SV r,s แล้ว SIGi(r, s, Qr−1) จะเป็น i (r, s) -credential แทนด้วยเครื่องหมายย่อ โดย \(\sigma\)r,s ฉัน สำหรับขั้นตอนแรกของรอบ r, SV r,1 และ \(\sigma\)r,1 ฉัน ถูกกำหนดในทำนองเดียวกัน โดยที่ p แทนที่ด้วย p1 ที่ ผู้ตรวจสอบใน SV r,1 เป็นผู้นำที่มีศักยภาพ • การคัดเลือกผู้นำ ผู้ใช้ i \(\in\)SV r,1 เป็นผู้นำของรอบ r เขียนแทนด้วย ër ถ้า H(\(\sigma\)r,1 ผม ) \(\leq\)H(\(\sigma\)r,1 j ) เพื่อศักยภาพทั้งหมด ผู้นำ j \(\in\)SV r,1 เมื่อใดก็ตามที่มีการเปรียบเทียบ hashes ของข้อมูลประจำตัวของผู้เล่นสองคน ในสถานการณ์ที่ไม่น่าเป็นไปได้ ในกรณีที่มีความสัมพันธ์ โปรโตคอลจะตัดความสัมพันธ์ตามพจนานุกรมเสมอตาม (สาธารณะระยะยาว กุญแจของ) ผู้นำที่มีศักยภาพ ตามคำจำกัดความแล้ว ค่า hash ของข้อมูลประจำตัวของผู้เล่น ër ก็มีค่าน้อยที่สุดในบรรดาผู้ใช้ทั้งหมดใน PKr−k โปรดทราบว่าผู้ที่มีศักยภาพเป็นผู้นำไม่สามารถตัดสินใจเป็นการส่วนตัวได้ว่าเขาเป็นผู้นำหรือไม่ โดยไม่เห็นข้อมูลรับรองของผู้ที่อาจเป็นผู้นำคนอื่นๆ เนื่องจากค่า hash เป็นค่าเดียวกันโดยการสุ่ม เมื่อ SV r,1 ไม่ว่างเปล่า ดังนั้น ër จึงมีอยู่เสมอและเป็น ซื่อสัตย์กับความน่าจะเป็นอย่างน้อย h พารามิเตอร์ n1 มีขนาดใหญ่พอที่จะทำให้มั่นใจว่าแต่ละรายการ SV r,1 ไม่ว่างเปล่าและมีความน่าจะเป็นอย่างท่วมท้น • โครงสร้างบล็อก บล็อกที่ไม่ว่างจะมีรูปแบบ Br = (r, PAY r, SIGër(Qr−1), H(Br−1)) และบล็อกว่าง อยู่ในรูปแบบ Br ǫ = (r, \(\emptyset\), Qr−1, H(Br−1)) โปรดทราบว่าบล็อกที่ไม่ว่างเปล่าอาจยังคงมีชุดการจ่ายเงินว่าง PAY r หากไม่มีการชำระเงินเกิดขึ้น รอบนี้หรือถ้าผู้นำมีเจตนาร้าย อย่างไรก็ตาม บล็อกที่ไม่ว่างเปล่าแสดงถึงตัวตนของ ër หนังสือรับรองของเขา \(\sigma\)r,1 ër และ SIGër(Qr−1) ทั้งหมดได้รับการเปิดเผยอย่างทันท่วงที โปรโตคอลรับประกัน ว่าถ้าผู้นำมีความซื่อสัตย์ บล็อกก็จะไม่ว่างเปล่าและมีความเป็นไปได้อย่างท่วมท้น • เมล็ดพันธุ์คิวอาร์ ถ้า Br ไม่ว่างเปล่า ดังนั้น Qr \(\triangleq\)H(SIGër(Qr−1), r) มิฉะนั้น Qr \(\triangleq\)H(Qr−1, r) พารามิเตอร์ • ความสัมพันธ์ระหว่างพารามิเตอร์ต่างๆ — ผู้ตรวจสอบและผู้ที่อาจเป็นผู้นำของรอบ r จะถูกเลือกจากผู้ใช้ใน PKr−k โดยที่ k ถูกเลือกเพื่อให้ปฏิปักษ์ไม่สามารถทำนาย Qr−1 ย้อนกลับไปที่รอบ r −k −1 ด้วยความน่าจะเป็นที่ดีกว่า F: ไม่เช่นนั้นเขาจะสามารถแนะนำผู้ใช้ที่เป็นอันตรายได้ สำหรับรอบ r −k ซึ่งทั้งหมดจะเป็นผู้นำ/ผู้ตรวจสอบในรอบ r สำเร็จ

มีผู้นำที่ประสงค์ร้ายหรือเสียงส่วนใหญ่ที่ประสงค์ร้ายใน SV r สำหรับบางขั้นตอนที่ต้องการ เขา — สำหรับขั้นตอนที่ 1 ของแต่ละรอบ r จะมีการเลือก n1 เพื่อให้มีความน่าจะเป็นอย่างท่วมท้น SV r,1 ̸= \(\emptyset\) • ตัวอย่างตัวเลือกของพารามิเตอร์ที่สำคัญ — ผลลัพธ์ของ H มีความยาว 256 บิต — ชั่วโมง = 80%, n1 = 35 — Λ = 1 นาที และ แล = 10 วินาที • การเริ่มต้นของโปรโตคอล โปรโตคอลเริ่มต้นที่เวลา 0 โดย r = 0 เนื่องจากไม่มี “B−1” หรือ “CERT −1” ทางวากยสัมพันธ์ B−1 เป็นพารามิเตอร์สาธารณะที่มีองค์ประกอบที่สามระบุ Q−1 และผู้ใช้ทั้งหมด ทราบ B−1 ณ เวลา 0

Algorand ′

1 في هذا القسم، قمنا بإنشاء نسخة من Algorand ′ تعمل وفقًا للافتراض التالي. افتراض الأغلبية الصادقة من المستخدمين: أكثر من 2/3 من المستخدمين في كل PKr صادقون. في القسم 8، نوضح كيفية استبدال الافتراض أعلاه بالأغلبية الصادقة المطلوبة افتراض المال. 5.1 تدوينات ومعلمات إضافية التدوينات • m \(\in\)Z+: الحد الأقصى لعدد الخطوات في بروتوكول BA الثنائي، وهو مضاعف 3. • Lr \(\geq\)m/3: متغير عشوائي يمثل عدد تجارب برنولي اللازمة لرؤية الرقم 1، عندما تكون كل تجربة 1 مع احتمال ph 2 وهناك تجارب m/3 على الأكثر. إذا فشلت كل التجارب إذن ل \(\triangleq\)م/3. سيتم استخدام Lr لتحديد الوقت اللازم لإنشاء الكتلة Br. • ث = 2ن 3+1: عدد التوقيعات المطلوبة في شروط إنهاء البروتوكول. • CERT r: شهادة Br. إنها مجموعة من التوقيعات لـ H(Br) من المدققين المناسبين في جولة ص. المعلمات • العلاقات بين مختلف المعالم. — لكل خطوة s > 1 من الجولة r، يتم اختيار n بحيث، مع احتمالية ساحقة، |HSV ص، ق| > 2|MSV r,s| و |HSV ص، ق| + 4|MSV r,s| <2ن. كلما اقتربت قيمة h من 1، كلما كانت قيمة n أصغر. على وجه الخصوص، نستخدم (variants of) Chernofbounds لضمان استمرار الظروف المرغوبة باحتمالية ساحقة. — يتم اختيار m بحيث يكون Lr < m/3 باحتمالية ساحقة. • أمثلة على اختيارات المعلمات الهامة. - و = 10−12. — ن \(\approx\)1500، ك = 40 و م = 180.5.2 تنفيذ المفاتيح المؤقتة في Algorand ′ 1 كما ذكرنا سابقًا، نرغب في أن يقوم المدقق بتوقيع رسالته رقميًا السيد، s أنا من الخطوة s في الجولة r، نسبةً إلى المفتاح العمومي سريع الزوال pkr,s i، باستخدام مفتاح سري سريع الزوال skr,s أنا ذلك يدمر على الفور بعد الاستخدام. وبالتالي نحن بحاجة إلى طريقة فعالة للتأكد من أن كل مستخدم يستطيع ذلك التحقق من أن pkr,s أنا هو بالفعل المفتاح الذي يجب استخدامه للتحقق من توقيع السيد أنا. نحن نفعل ذلك من خلال (للأفضل من معرفتنا) الاستخدام الجديد لمخططات التوقيع القائمة على الهوية. على مستوى عالٍ، في مثل هذا المخطط، تقوم السلطة المركزية "أ" بإنشاء مفتاح رئيسي عام، PMK، والمفتاح الرئيسي السري المقابل، SMK. بالنظر إلى الهوية، U، للاعب U، A يحسب، عبر SMK، مفتاح التوقيع السري skU نسبة إلى المفتاح العام U، ويمنح skU بشكل خاص U. (في الواقع، في نظام التوقيع الرقمي القائم على الهوية، المفتاح العام للمستخدم U هو U نفسه!) بهذه الطريقة، إذا قام A بتدمير SMK بعد حساب المفاتيح السرية للمستخدمين الذين يريد تمكينهم ينتج توقيعات رقمية، ولا يحتفظ بأي مفتاح سري محسوب، فإن U هو الوحيد الذي يمكنه التوقيع رقميًا على الرسائل المتعلقة بالمفتاح العام U. وبالتالي، فإن أي شخص يعرف "اسم U"، يعرف تلقائيًا المفتاح العام لـ U، وبالتالي يمكنه التحقق من توقيعات U (ربما باستخدام أيضًا المفتاح الرئيسي العام PMK). في تطبيقنا، السلطة A هي المستخدم i، ومجموعة جميع المستخدمين المحتملين U تتزامن معهم زوج الخطوة المستديرة (r, s) في —على سبيل المثال— S = {i}\(\times\){r′, . . . ، ص' +106}\(\times\){1، . . . ، m+3}، حيث r' معطى جولة، وm + 3 الحد العلوي لعدد الخطوات التي قد تحدث خلال الجولة. هذا الطريق، pkr،s أنا \(\triangleq\)(i, r, s)، بحيث يرى الجميع توقيع i SIGr,s بي كي آر، ق أنا (السيد، ق ط) يمكن، مع الساحقة الاحتمالية، تحقق منها على الفور في أول مليون طلقة r بعد r′. بمعنى آخر، أقوم أولاً بإنشاء PMK وSMK. ثم يعلن أن PMK هو سيده المفتاح العام لأي جولة r \(\in\)[r′, r′ + 106]، ويستخدم SMK لإنتاج السر وتخزينه بشكل خاص مفتاح سكر، ق أنا لكل ثلاثية (i، r، s) \(\in\)S. بعد ذلك، قام بتدمير SMK. إذا قرر أنه ليس كذلك جزءًا من SV r,s، فيمكنني ترك skr,s أنا وحده (حيث أن البروتوكول لا يتطلب أن يقوم بالتصديق أي رسالة في الخطوة s من الجولة r). بخلاف ذلك، أستخدم skr,s لأول مرة أنا للتوقيع رقميا على رسالته السيد، ق أنا و ثم يدمر skr,s أنا. لاحظ أنه يمكنني نشر مفتاحه الرئيسي العام الأول عندما يدخل النظام لأول مرة. هذا هو، نفس الدفعة \(\wp\) التي تجلب i إلى النظام (عند جولة r' أو عند جولة قريبة من r′)، قد تكون أيضًا تحديد، بناءً على طلبي، أن المفتاح الرئيسي العام الخاص بـ i لأي جولة r \(\in\)[r′, r′ + 106] هو PMK - على سبيل المثال، بواسطة بما في ذلك زوج من النموذج (PMK، [r′، r′ + 106]). لاحظ أيضًا أنه نظرًا لأن m + 3 هو الحد الأقصى لعدد الخطوات في الجولة، بافتراض أن الجولة يستغرق دقيقة واحدة، ومخبأة المفاتيح سريعة الزوال التي تم إنتاجها ستستمر لمدة عامين تقريبًا. في نفس الوقت بمرور الوقت، لن يستغرق إنتاج هذه المفاتيح السرية سريعة الزوال وقتًا طويلاً. باستخدام منحنى الاهليلجي على أساس نظام يحتوي على 32B مفتاح، يتم حساب كل مفتاح سري في بضع ميكروثانية. وبالتالي، إذا كان م + 3 = 180، ومن ثم يمكن حساب جميع المفاتيح السرية البالغ عددها 180 مليونًا في أقل من ساعة واحدة. عندما تقترب الجولة الحالية من r′ + 106، للتعامل مع المليون جولة التالية، أي ينشئ زوجًا جديدًا (PMK′, SMK′) ويبلغه بمخبأه التالي من المفاتيح المؤقتة —على سبيل المثال — إدخال SIGi(PMK′, [r′ + 106 + 1, r′ + 2 \(\cdot\) 106 + 1]) في كتلة جديدة، إما كـ "معاملة" منفصلة أو كبعض المعلومات الإضافية التي تشكل جزءًا من الدفع. وبذلك، أبلغ الجميع أنه يجب عليه/عليها استخدام PMK′ للتحقق من توقيعاتي المؤقتة في المرة التالية مليون طلقة. وهكذا. (لاحظ أنه باتباع هذا النهج الأساسي، هناك طرق أخرى لتنفيذ مفاتيح سريعة الزوال بدون من المؤكد أن استخدام التوقيعات القائمة على الهوية أمر ممكن. على سبيل المثال، عبر Merkle trees.16) 16في هذه الطريقة، أقوم بإنشاء زوج مفاتيح سري (pkr,s أنا، سكر، ق أنا ) لكل زوج من الخطوات المستديرة (r، s) في - على سبيل المثال -من المؤكد أن الطرق الأخرى لتنفيذ المفاتيح المؤقتة ممكنة — على سبيل المثال، عبر Merkle trees. 5.3 مطابقة خطوات Algorand ′ 1 مع تلك BA⋆ كما قلنا، جولة في Algorand ′ 1 لديه على الأكثر م + 3 خطوات. الخطوة 1. في هذه الخطوة، يقوم كل قائد محتمل بحساب ونشر كتلة مرشحه Br أنا، مع أوراق اعتماده الخاصة، \(\sigma\)r،1 أنا. تذكر أن بيانات الاعتماد هذه تحدد صراحةً i. هذا هو الحال، لأن \(\sigma\)r,1 أنا \(\triangleq\)SIGi(ص، 1، Qr−1). وينشر المدقق المحتمل أيضًا، كجزء من رسالته، توقيعه الرقمي الصحيح لـ H(Br أنا). لا يتعامل مع الدفع أو بيانات الاعتماد، فإن توقيع i هذا يتعلق بجمهوره سريع الزوال مفتاح بي كيه،1 i : أي أنه ينشر sigpkr,1 ط (ح(ر ط)). نظرًا لاتفاقياتنا، بدلاً من نشر Br أنا و سيغبكر،1 ط (ح(ر أنا )) ، كان يمكن أن يكون نشر SIGpkr،1 ط (ح(ر ط)). ومع ذلك، في تحليلنا نحن بحاجة إلى الوصول بوضوح إلى سيجبكر،1 ط (ح(ر ط)). الخطوات 2. في هذه الخطوة، يقوم كل مدقق بتعيين \(\ell\)r سأكون القائد المحتمل الذي يتمتع بأوراق اعتماده hashed هو الأصغر، وBr أنا أن أكون الكتلة التي اقترحها \(\ell\)r أنا. منذ ذلك الحين، من أجل الكفاءة، نحن أرغب في الاتفاق على H(Br)، بدلاً من الاتفاق مباشرة على Br، أقوم بنشر الرسالة التي قد تكون لديه تم نشره في الخطوة الأولى من BA⋆ بالقيمة الأولية v ′ ط = ح(ر أنا). أي أنه ينشر v′ أنا، بعد التوقيع عليه سريع الزوال، بطبيعة الحال. (أي بعد التوقيع عليه نسبة إلى اليمين الزائل المفتاح العام، وهو في هذه الحالة pkr,2 أنا.) وبطبيعة الحال أيضا، أنا أيضا ينقل بيانات اعتماده. نظرًا لأن الخطوة الأولى من BA⋆ تتكون من الخطوة الأولى من بروتوكول الإجماع المتدرج GC، فإن الخطوة 2 من Algorand ′ يتوافق مع الخطوة الأولى من GC. الخطوات 3. في هذه الخطوة، يقوم كل مدقق i\(\in\)SV r,2 بتنفيذ الخطوة الثانية من BA⋆. أي أنه يرسل نفس الرسالة التي كان سيرسلها في الخطوة الثانية من GC. مرة أخرى، رسالتي سريعة الزوال موقعة ومرفقة ببيانات اعتمادي. (من الآن فصاعدا، سنحذف قول ذلك محققا يوقع رسالته بشكل سريع الزوال وينشر أيضًا أوراق اعتماده.) الخطوة 4. في هذه الخطوة، كل مدقق i \(\in\)SV r,4 يحسب مخرجات GC، (vi، gi)، وبشكل مؤقت يوقع ويرسل نفس الرسالة التي كان سيرسلها في الخطوة الثالثة من BA⋆، أي في الخطوة الأولى من BBA⋆، مع البت الأولي 0 إذا كان gi = 2، و1 بخلاف ذلك. الخطوة ق = 5، . . . ، m + 2. مثل هذه الخطوة، إذا تم الوصول إليها، تتوافق مع الخطوة s −1 من BA⋆، وبالتالي الخطوة −3 من BBA⋆. وبما أن نموذج الانتشار لدينا غير متزامن بما فيه الكفاية، فيجب علينا أن نأخذ في الاعتبار الاحتمال أنه، في منتصف هذه الخطوات، يتم الوصول إلى المدقق من خلال معلومات تثبت أنه لقد تم بالفعل اختيار تلك الكتلة Br. في هذه الحالة، أوقف تنفيذه لجولة r Algorand ′، ويبدأ في تنفيذ تعليمات الجولة (r + 1). {ص'، . . . ، ص' + 106} \(\times\) {1، . . . ، م + 3}. ثم يقوم بطلب هذه المفاتيح العامة بطريقة قانونية، ويخزنها بشكل عام أدخل المفتاح في الورقة j لـ Merkle tree، ويحسب القيمة الجذرية Ri، التي ينشرها. عندما يريد التوقيع رسالة تتعلق بالمفتاح pkr,s أنا ، لا أقوم بتوفير التوقيع الفعلي فحسب، بل يوفر أيضًا مسار المصادقة لـ pkr,s أنا نسبة إلى ري. لاحظ أن مسار المصادقة هذا يثبت أيضًا أن pkr,s أنا يتم تخزينه في ورقة j. بقية يمكن ملء التفاصيل بسهولة.وعليه فإن تعليمات المدقق i \(\in\)SV r,s بالإضافة إلى التعليمات المقابلة لها إلى الخطوة −3 من BBA⋆، بما في ذلك التحقق مما إذا كان تنفيذ BBA⋆ قد توقف في فترة سابقة الخطوة س'. نظرًا لأن BBA⋆ لا يمكن إيقافه إلا في خطوة عملة ثابتة إلى 0 أو في خطوة عملة ثابتة إلى 1، فإن تعليمات تميز ما إذا كان A (حالة النهاية 0): s′ −2 ≡0 mod 3، أو B (حالة النهاية 1): s′ −2 ≡1 mod 3. في الواقع، في الحالة A، تكون الكتلة Br غير فارغة، وبالتالي تكون هناك حاجة إلى تعليمات إضافية تأكد من أنني أقوم بإعادة بناء Br بشكل صحيح، بالإضافة إلى شهادته المناسبة CERT r. في الحالة ب، الكتلة Br فارغة، وبالتالي يُطلب مني ضبط Br = Br \(\varepsilon\) = (ص، \(\emptyset\)، H(Qr−1، r)، H(Br−1))، ولحساب CERT ص. إذا، أثناء تنفيذه للخطوات s، لم أرى أي دليل على أن الكتلة Br قد تم بالفعل تم إنشاؤه، ثم يرسل نفس الرسالة التي كان سيرسلها في الخطوة s −3 من BBA⋆. الخطوة m + 3. إذا كان i \(\in\)SV r,m+3، خلال الخطوة m + 3، يرى أن الكتلة Br قد تم إنشاؤها بالفعل في خطوة سابقة s′، ثم يتابع تمامًا كما هو موضح أعلاه. بخلاف ذلك، فبدلاً من إرسال نفس الرسالة التي كان سيرسلها في الخطوة م من BBA⋆، أنا كذلك أوعز إليه، بناءً على المعلومات التي بحوزته، بحساب Br وما يقابله شهادة CERT ص. تذكر، في الواقع، أننا حددنا العدد الإجمالي لخطوات الجولة بـ m + 3. 5.4 البروتوكول الفعلي تذكر أنه في كل خطوة من جولة r، يستخدم المدقق i \(\in\)SV r,s زوج مفاتيح السرية العامة طويل المدى الخاص به لإنتاج أوراق اعتماده، \(\sigma\)r،s أنا \(\triangleq\)SIGi(r, s, Qr−1)، وكذلك SIGi ريال قطري−1 في الحالة s = 1. التحقق i يستخدم مفتاحه السري سريع الزوال skr,s أنا للتوقيع على رسالته (ص، ق) السيد، ق أنا. للتبسيط، عندما يكون r وs واضح أننا نكتب esigi(x) بدلاً من sigpkr,s i (x) للإشارة إلى التوقيع المؤقت المناسب لقيمة ما x في الخطوات s من الجولة r، واكتب ESIGi(x) بدلاً من SIGpkr,s i (x) للدلالة على (i، x، esigi(x)). الخطوة 1: حظر الاقتراح تعليمات لكل مستخدم i \(\in\)PKr−k: يبدأ المستخدم i الخطوة 1 الخاصة به من الجولة r بمجرد أن يعرف Br−1. • المستخدم i يحسب Qr−1 من المكون الثالث لـ Br−1 ويتحقق مما إذا كان i \(\in\)SV r,1 أو لا. • إذا i /\(\in\)SV r,1، فسوف أقوم بإيقاف تنفيذ الخطوة 1 على الفور. • إذا كان i \(\in\)SV r,1، أي إذا كنت قائدًا محتملاً، فإنه يقوم بجمع مدفوعات الجولة r التي لها تم نشره له حتى الآن ويحسب الحد الأقصى لمجموعة الدفع PAY r أنا منهم. التالي هو يحسب له "كتلة المرشح" Br أنا = (ص، دفع ص أنا، SIGi(Qr−1)، H(Br−1)). وأخيرا، وقال انه يحسب الرسالة السيد،1 أنا = (ر أنا، esigi(H(Br أنا )))، \(\sigma\)ص،1 i )، يدمر مفتاحه السري سريع الزوال skr،1 أنا، وبعد ذلك ينشر السيد،1 أنا.ملاحظة. من الناحية العملية، لتقصير التنفيذ العالمي للخطوة 1، من المهم أن (r, 1)- يتم نشر الرسائل بشكل انتقائي. وهذا يعني أنه بالنسبة لكل مستخدم i في النظام، للمرة الأولى (r, 1) - الرسالة التي يتلقاها ويتحقق منها بنجاح، أقوم بنشرها كالمعتاد. لجميع أخرى (r, 1) - الرسائل التي يتلقاها اللاعب ويتحقق منها بنجاح، ويقوم بنشرها فقط إذا كان hash قيمة بيانات الاعتماد التي تحتوي عليها هي الأصغر بين قيم hash لبيانات الاعتماد الموجودة في جميع الرسائل (ص، 1) التي تلقاها وتم التحقق منها بنجاح حتى الآن. علاوة على ذلك، كما اقترح بواسطة جورجيوس فلاشوس، من المفيد أن يقوم كل قائد محتمل بنشر أوراق اعتماده \(\sigma\)r,1 أنا بشكل منفصل: تنتقل هذه الرسائل الصغيرة بشكل أسرع من الكتل، مما يضمن نشر السيد 1 في الوقت المناسب ي حيث تحتوي بيانات الاعتماد المضمنة على قيم hash صغيرة، بينما تحتوي بيانات الاعتماد المضمنة على قيم hash كبيرة تختفي بسرعة. الخطوة 2: الخطوة الأولى لبروتوكول الإجماع المتدرج GC تعليمات لكل مستخدم i \(\in\)PKr−k: يبدأ المستخدم i الخطوة 2 الخاصة به من الجولة r بمجرد أن يعرف Br−1. • المستخدم i يحسب Qr−1 من المكون الثالث لـ Br−1 ويتحقق مما إذا كان i \(\in\)SV r,2 أو لا. • إذا i /\(\in\)SV r,2 فسوف أقوم بإيقاف تنفيذ الخطوة 2 على الفور. • إذا كان i \(\in\)SV r,2، فبعد الانتظار لفترة زمنية t2 \(\triangleq\)lect + Λ، i يتصرف كما يلي. 1. يجد المستخدم \(\ell\) بحيث H(\(\sigma\)r,1 \(\ell\)) \(\geq\)H(\(\sigma\)r,1 j ) لجميع أوراق الاعتماد \(\sigma\)r,1 ي التي هي جزء من تم التحقق بنجاح (r, 1) من الرسائل التي تلقاها حتى الآن 2. إذا كان قد تلقى من \(\ell\)رسالة صالحة السيد,1 \(\ell\) = (ر \(\ell\)، esig\(\ell\)(H(Br \(\ell\))))، \(\sigma\)ص،1 \(\ell\))،ب ثم أقوم بتعيين v' أنا \(\triangleq\)H(ر \(\ell\)); وإلا فإنني أقوم بتعيين v' أنا \(\triangleq\) \(\bot\). 3. أنا أحسب الرسالة السيد،2 أنا \(\triangleq\)(ESIGi(v') أنا)، \(\sigma\)ص،2 i)،c يدمر مفتاحه السري سريع الزوال سكر،2 أنا، ثم ينشر السيد،2 أنا. بشكل أساسي، يقرر المستخدم i بشكل خاص أن قائد الجولة r هو المستخدم \(\ell\). مرة أخرى، تم التحقق من توقيعات اللاعب \(\ell\) و__PH_0002__es جميعها بنجاح، ويتم الدفع \(\ell\)في ر \(\ell\)هي مجموعة دفع صالحة لـ round r - على الرغم من أنني لا أتحقق مما إذا كان PAY r \(\ell\)هو الحد الأقصى لـ \(\ell\)أو لا. ج الرسالة السيد،2 أنا الإشارات التي يعتبرها اللاعب v′ i ليكون hash للكتلة التالية، أو يعتبر التالي كتلة لتكون فارغة. 17أي أن جميع التوقيعات صحيحة وكل من الكتلة و hash صالحة - على الرغم من أنني لم أتحقق منها ما إذا كانت مجموعة الدفعات المضمنة هي الحد الأقصى لمقترحها أم لا.

الخطوة 3: الخطوة الثانية من GC تعليمات لكل مستخدم i \(\in\)PKr−k: يبدأ المستخدم i الخطوة 3 الخاصة به من الجولة r بمجرد أن يعرف Br−1. • المستخدم i يحسب Qr−1 من المكون الثالث لـ Br−1 ويتحقق مما إذا كان i \(\in\)SV r,3 أو لا. • إذا i /\(\in\)SV r,3، فسوف أقوم بإيقاف تنفيذ الخطوة 3 على الفور. • إذا i \(\in\)SV r,3، فبعد الانتظار لفترة من الوقت t3 \(\triangleq\)t2 + 2lect = 3lect + Λ، i أتصرف كما يلي. 1. إذا كانت هناك قيمة v′̸= \(\bot\) بحيث يكون من بين جميع الرسائل الصالحة mr,2 ي لقد تلقى، أكثر من 2/3 منها من الشكل (ESIGj(v′), \(\sigma\)r,2 ي)، دون أي تناقض، أ ثم يقوم بحساب الرسالة السيد،3 أنا \(\triangleq\)(ESIGi(v′),\(\sigma\)r,3 أنا). وإلا فإنه يحسب السيد،3 أنا \(\triangleq\) (ESIGi(\(\bot\))، \(\sigma\)r،3 أنا). 2. أنا أدمر مفتاحه السري سريع الزوال skr،3 أنا، ومن ثم نشر السيد،3 أنا. أي أنه لم يتلق رسالتين صالحتين تحتويان على ESIGj(v') وESIGj(v'') مختلفين على التوالي، من اللاعب j. هنا ومن هنا فصاعدًا، باستثناء شروط النهاية التي سيتم تحديدها لاحقًا، عندما يكون اللاعب صادقًا يريد رسائل ذات شكل معين، فالرسائل المتعارضة مع بعضها البعض لا يتم احتسابها أو اعتبارها صالحة.الخطوة 4: إخراج GC والخطوة الأولى من BBA⋆ تعليمات لكل مستخدم i \(\in\)PKr−k: يبدأ المستخدم i الخطوة 4 الخاصة به من الجولة r بمجرد أن يعرف Br−1. • المستخدم i يحسب Qr−1 من المكون الثالث لـ Br−1 ويتحقق مما إذا كان i \(\in\)SV r,4 أو لا. • إذا i /\(\in\)SV r,4، فسوف يتوقف عن تنفيذ الخطوة 4 على الفور. • إذا i \(\in\)SV r,4، فبعد الانتظار لفترة من الوقت t4 \(\triangleq\)t3 + 2lect = 5lect + Λ، i أتصرف كما يلي. 1. يقوم بحساب vi وgi، مخرجات GC، على النحو التالي. (أ) إذا كانت هناك قيمة v′̸= \(\bot\) بحيث يكون من بين جميع الرسائل الصالحة mr,3 ي لديه تم استلامها، أكثر من 2/3 منها من الشكل (ESIGj(v′), \(\sigma\)r,3 ي)، ثم يضبط السادس \(\triangleq\)v′ وجي \(\triangleq\)2. (ب) بخلاف ذلك، إذا كانت هناك قيمة v'̸= \(\bot\) بحيث يكون من بين جميع الرسائل الصالحة السيد،3 ي لقد حصل على أكثر من ثلثها من الشكل (ESIGj(v′), \(\sigma\)r,3 ي)، ثم يقوم بتعيين vi \(\triangleq\)v ′ و gi \(\triangleq\)1.a (ج) بخلاف ذلك، يقوم بتعيين vi \(\triangleq\)H(Br ƒ) وجي \(\triangleq\)0. 2. يقوم بحساب ثنائي، مدخلات BBA⋆، على النحو التالي: ثنائية \(\triangleq\)0 إذا كانت gi = 2، وbi \(\triangleq\)1 بخلاف ذلك. 3. يقوم بحساب الرسالة السيد،4 أنا \(\triangleq\)(ESIGi(bi)، ESIGi(vi)، \(\sigma\)r،4 ط)، يدمر له سريع الزوال المفتاح السري Skr،4 أنا، ومن ثم نشر السيد،4 أنا. أيمكن إثبات أن حرف v في الحالة (ب)، إن وجد، يجب أن يكون فريدًا.

الخطوة s، 5 \(\geq\)s \(\geq\)m + 2، s −2 ≡0 mod 3: خطوة ثابتة بالعملة إلى 0 من BBA⋆ تعليمات لكل مستخدم i \(\in\)PKr−k: المستخدم i يبدأ خطواته الخاصة من الجولة r بمجرد أن يعرف Br−1. • يحسب المستخدم i Qr−1 من المكون الثالث لـ Br−1 ويتحقق مما إذا كان i \(\in\)SV r,s. • إذا i /\(\in\)SV r,s، فسوف أقوم بإيقاف تنفيذ الخطوة s على الفور. • إذا كان i \(\in\)SV r,s فإنه يتصرف على النحو التالي. – ينتظر حتى مرور فترة زمنية t \(\triangleq\)ts−1 + 2lect = (2s −3)lect + Λ. – شرط النهاية 0: إذا كان هناك، أثناء هذا الانتظار وفي أي وقت، أ السلسلة v̸= \(\bot\) والخطوة s′ هكذا (أ) 5 s′s′ \(\geq\)s, s′ −2 ≡0 mod 3 — أي أن الخطوة s′ هي خطوة ثابتة بالعملة إلى 0، (ب) لقد تلقيت ما لا يقل عن tH = 2 ن 3 + 1 رسائل صالحة السيد، s′−1 ي = (ESIGj(0)، ESIGj(v)، \(\sigma\)r،s'−1 ي ) ، أ و (ج) لقد تلقيت رسالة صالحة يا سيد 1 ي = (ر ي، esigj(H(Br ي )))، \(\sigma\)ص،1 ي ) مع v = H(Br ي)، ثم أوقف تنفيذه للخطوة s (وفي الواقع للجولة r) على الفور بدون نشر أي شيء؛ مجموعات ر = ر ي ; ويقوم بتعيين CERT r الخاص به ليكون مجموعة الرسائل السيد، ق′−1 ي من الخطوة الفرعية (ب).ب – شرط الانتهاء 1: إذا كان هناك، أثناء هذا الانتظار وفي أي وقت، أ الخطوة ′ هكذا (أ') 6 \(\geq\)s′ \(\geq\)s, s′ −2 ≡1 mod 3 — أي أن الخطوة s′ هي خطوة ثابتة بالعملة إلى 1، و (ب') لقد تلقيت على الأقل رسائل صالحة mr,s'−1 ي = (ESIGj(1)، ESIGj(vj)، \(\sigma\)r,s'−1 ي ) ،ج ثم أوقف تنفيذه للخطوة s (وفي الواقع للجولة r) على الفور بدون نشر أي شيء؛ مجموعات ر = ر ƒ ; ويقوم بتعيين CERT r الخاص به ليكون مجموعة الرسائل السيد، ق′−1 ي من الخطوة الفرعية (ب'). – بخلاف ذلك، في نهاية الانتظار، يقوم المستخدم i بما يلي. لقد حدد السادس ليكون أغلبية أصوات VJ's في المكونات الثانية من جميع الأصوات الصحيحة السيد، ق−1 ي لقد حصل عليه. انه يحسب ثنائية على النحو التالي. إذا كان أكثر من 2/3 من جميع السيد، ق -1 صالح ي لقد تلقاها هي من النموذج (ESIGj(0)، ESIGj(vj)، \(\sigma\)r،s−1 ي )، ثم يقوم بتعيين ثنائية \(\triangleq\)0. بخلاف ذلك، إذا كان أكثر من 2/3 من جميع mr,s−1 الصالحة ي لقد تلقاها هي من النموذج (ESIGj(1)، ESIGj(vj)، \(\sigma\)r،s−1 ي )، ثم يقوم بتعيين ثنائية \(\triangleq\)1. وإلا، فإنه يحدد ثنائية \(\triangleq\)0. انه يحسب الرسالة السيد، ق أنا \(\triangleq\)(ESIGi(bi)، ESIGi(vi)، \(\sigma\)r،s ط)، يدمر له سريع الزوال المفتاح السري skr,s أنا، ومن ثم نشر السيد، ق أنا. aمثل هذه الرسالة من اللاعب j يتم احتسابها حتى إذا تلقى اللاعب i أيضًا رسالة من j بالتوقيع برقم 1. أشياء مماثلة لحالة النهاية 1. كما هو موضح في التحليل، يتم ذلك للتأكد من أن جميع المستخدمين الصادقين يعرفون ذلك Br خلال الوقت π من بعضها البعض. المستخدم يعرف الآن Br ونهاياته الدائرية الخاصة. لا يزال يساعد في نشر الرسائل كمستخدم عام، ولكن لا يبدأ أي انتشار باعتباره مدققًا (r، s). وعلى وجه الخصوص، فقد ساعد في نشر جميع الرسائل في بلده CERT r، وهو ما يكفي لبروتوكولنا. لاحظ أنه يجب عليه أيضًا تعيين bi \(\triangleq\)0 لبروتوكول BA الثنائي، ولكن bi ليست هناك حاجة في هذه الحالة على أي حال. أشياء مماثلة لجميع التعليمات المستقبلية. cفي هذه الحالة، لا يهم ما هي VJ.الخطوة s، 6 \(\geq\)s \(\geq\)m + 2، s −2 ≡1 mod 3: خطوة ثابتة بالعملة إلى 1 من BBA⋆ تعليمات لكل مستخدم i \(\in\)PKr−k: المستخدم i يبدأ خطواته الخاصة من الجولة r بمجرد أن يعرف Br−1. • المستخدم i يحسب Qr−1 من المكون الثالث لـ Br−1 ويتحقق مما إذا كان i \(\in\)SV r,s أو لا. • إذا i /\(\in\)SV r,s، فسوف أقوم بإيقاف تنفيذ الخطوة s على الفور. • إذا كان i \(\in\)SV r,s فإنه يقوم بما يلي. - ينتظر حتى مرور فترة زمنية t \(\triangleq\)(2s −3)\(\alpha\) + Λ. - حالة الانتهاء 0: نفس تعليمات خطوات العملة الثابتة إلى 0. – شرط النهاية 1: نفس تعليمات خطوات العملة الثابتة إلى 0. – بخلاف ذلك، في نهاية الانتظار، يقوم المستخدم i بما يلي. لقد حدد السادس ليكون أغلبية أصوات VJ's في المكونات الثانية من جميع الأصوات الصحيحة السيد، ق−1 ي لقد حصل عليه. انه يحسب ثنائية على النحو التالي. إذا كان أكثر من 2/3 من جميع السيد، ق -1 صالح ي لقد تلقاها هي من النموذج (ESIGj(0)، ESIGj(vj)، \(\sigma\)r،s−1 ي )، ثم يقوم بتعيين ثنائية \(\triangleq\)0. بخلاف ذلك، إذا كان أكثر من 2/3 من جميع mr,s−1 الصالحة ي لقد تلقاها هي من النموذج (ESIGj(1)، ESIGj(vj)، \(\sigma\)r،s−1 ي )، ثم يقوم بتعيين ثنائية \(\triangleq\)1. بخلاف ذلك، يقوم بتعيين ثنائية \(\triangleq\)1. انه يحسب الرسالة السيد، ق أنا \(\triangleq\)(ESIGi(bi)، ESIGi(vi)، \(\sigma\)r،s ط)، يدمر له سريع الزوال المفتاح السري skr,s أنا، ومن ثم نشر السيد، ق أنا.

الخطوة s، 7 \(\geq\)s \(\geq\)m + 2، s −2 ≡2 mod 3: خطوة مقلوبة بشكل حقيقي من BBA⋆ تعليمات لكل مستخدم i \(\in\)PKr−k: المستخدم i يبدأ خطواته الخاصة من الجولة r بمجرد أن يعرف Br−1. • المستخدم i يحسب Qr−1 من المكون الثالث لـ Br−1 ويتحقق مما إذا كان i \(\in\)SV r,s أو لا. • إذا i /\(\in\)SV r,s، فسوف أقوم بإيقاف تنفيذ الخطوة s على الفور. • إذا كان i \(\in\)SV r,s فإنه يقوم بما يلي. - ينتظر حتى مرور فترة زمنية t \(\triangleq\)(2s −3)\(\alpha\) + Λ. - حالة الانتهاء 0: نفس تعليمات خطوات العملة الثابتة إلى 0. – شرط النهاية 1: نفس تعليمات خطوات العملة الثابتة إلى 0. – بخلاف ذلك، في نهاية الانتظار، يقوم المستخدم i بما يلي. لقد حدد السادس ليكون أغلبية أصوات VJ's في المكونات الثانية من جميع الأصوات الصحيحة السيد، ق−1 ي لقد حصل عليه. انه يحسب ثنائية على النحو التالي. إذا كان أكثر من 2/3 من جميع السيد، ق -1 صالح ي لقد تلقاها هي من النموذج (ESIGj(0)، ESIGj(vj)، \(\sigma\)r،s−1 ي )، ثم يقوم بتعيين ثنائية \(\triangleq\)0. بخلاف ذلك، إذا كان أكثر من 2/3 من جميع mr,s−1 الصالحة ي لقد تلقاها هي من النموذج (ESIGj(1)، ESIGj(vj)، \(\sigma\)r،s−1 ي )، ثم يقوم بتعيين ثنائية \(\triangleq\)1. بخلاف ذلك، دع SV r,s−1 أنا تكون مجموعة (r, s −1)-المدققين الذين حصل منهم على صلاحية رسالة السيد، ق−1 ي . يقوم بتعيين bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1 أنا ح(\(\sigma\)ص,ق−1 ي )). انه يحسب الرسالة السيد، ق أنا \(\triangleq\)(ESIGi(bi)، ESIGi(vi)، \(\sigma\)r،s ط)، يدمر له سريع الزوال المفتاح السري skr,s أنا، ومن ثم نشر السيد، ق أنا.

الخطوة م + 3: الخطوة الأخيرة من BBA⋆a تعليمات لكل مستخدم i \(\in\)PKr−k: المستخدم i يبدأ خطوته الخاصة m + 3 من الجولة r بمجرد أن يعرف Br−1. • المستخدم i يحسب Qr−1 من المكون الثالث لـ Br−1 ويتحقق مما إذا كان i \(\in\)SV r,m+3 أو لا. • إذا i /\(\in\)SV r,m+3، فسوف أقوم بإيقاف تنفيذ الخطوة m + 3 على الفور. • إذا كان i \(\in\)SV r,m+3 فإنه يفعل ما يلي. – ينتظر حتى مرور فترة من الزمن t+3 \(\triangleq\)tm+2 + 2lect = (2m + 3)lect + Λ. - حالة الانتهاء 0: نفس تعليمات خطوات العملة الثابتة إلى 0. – شرط النهاية 1: نفس تعليمات خطوات العملة الثابتة إلى 0. – بخلاف ذلك، في نهاية الانتظار، يقوم المستخدم i بما يلي. انه يحدد \(\triangleq\)1 وBr \(\triangleq\)Br ƒ. يقوم بحساب الرسالة mr,m+3 أنا = (ESIGi(outi)، ESIGi(H(Br)))، \(\sigma\)r،m+3 أنا )، يدمر له مفتاح سري سريع الزوال، skr،m+3 أنا ، ثم يقوم بنشر السيد، م+3 أنا للتصديق على Br.b مع احتمال كبير أن BBA⋆ قد انتهى قبل هذه الخطوة، ونحدد هذه الخطوة للاكتمال. ليس من الضروري أن تتضمن شهادة البكالوريوس من الخطوة m + 3 ESIGi(outi). نحن ندرجه للتوحيد فقط: أصبحت الشهادات الآن ذات تنسيق موحد بغض النظر عن الخطوة التي يتم إنشاؤها فيها.إعادة بناء كتلة Round-r من قبل غير المتحققين تعليمات لكل مستخدم i في النظام: يبدأ المستخدم i جولته الخاصة بمجرد معرفته Br−1، وينتظر معلومات الكتلة على النحو التالي. – إذا كان هناك، أثناء هذا الانتظار وفي أي وقت، سلسلة v وخطوة s′ هكذا ذلك (أ) 5 \(\geq\)s′ \(\geq\)m + 3 مع s′ −2 ≡0 mod 3، (ب) لقد تلقيت على الأقل رسائل صالحة mr,s′−1 ي = (ESIGj(0)، ESIGj(v)، \(\sigma\)r،s'−1 ي )، و (ج) لقد تلقيت رسالة صالحة يا سيد 1 ي = (ر ي، esigj(H(Br ي )))، \(\sigma\)ص،1 ي ) مع v = H(Br ي)، ثم أوقف تنفيذه للجولة r على الفور؛ مجموعات ر = ر ي؛ ويضع بلده CERT ص لتكون مجموعة الرسائل mr,s′−1 ي من الخطوة الفرعية (ب). – إذا كانت هناك، أثناء هذا الانتظار وفي أي وقت، خطوة من هذا القبيل (أ') 6 \(\geq\)s′ \(\geq\)m + 3 مع s′ −2 ≡1 mod 3، و (ب') لقد تلقيت على الأقل رسائل صالحة mr,s'−1 ي = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s'−1 ي )، ثم أوقف تنفيذه للجولة r على الفور؛ مجموعات ر = ر ƒ؛ ويضع بلده CERT ص لتكون مجموعة الرسائل mr,s′−1 ي من الخطوة الفرعية (ب'). – إذا تلقيت، أثناء هذا الانتظار وفي أي وقت، رسائل صالحة على الأقل السيد،م+3 ي = (ESIGj(1)، ESIGj(H(Br ɫ )))، \(\sigma\)r،m+3 ي )، ثم أوقف تنفيذه للجولة r على الفور، مجموعات Br = Br ƒ ، ويقوم بتعيين CERT r الخاص به ليكون مجموعة الرسائل mr,m+3 ي لمدة 1 و ح(ر ƒ). 5.5 تحليل Algorand ′ 1 نقدم الرموز التالية لكل جولة r \(\geq\)0، المستخدمة في التحليل. • ليكن T r هو الوقت الذي يعرف فيه أول مستخدم صادق Br−1. • ليكن Ir+1 هو الفاصل الزمني [T r+1, T r+1 + lect]. لاحظ أن T 0 = 0 عند تهيئة البروتوكول. لكل s \(\geq\)1 وi \(\in\)SV r,s، تذكر ذلك \(\alpha\)r,s أنا و \(\beta\)r,s أنا هما على التوالي وقت البدء ووقت الانتهاء لخطوات اللاعب i. علاوة على ذلك، تذكَّر أن ts = (2s −3)lect + Λ لكل 2 \(\geq\)s \(\geq\)m + 3. بالإضافة إلى ذلك، دع I0 \(\triangleq\){0} وt1 \(\triangleq\)0. وأخيرًا، تذكر أن Lr \(\geq\)m/3 هو متغير عشوائي يمثل عدد تجارب برنولي مطلوب لرؤية 1، عندما تكون كل تجربة 1 مع احتمال ph 2 وهناك تجارب m/3 على الأكثر. إذا كان كل شيء تفشل التجارب إذن Lr \(\triangleq\)m/3. في التحليل، نتجاهل وقت الحساب، لأنه في الواقع لا يكاد يذكر بالنسبة للوقت اللازم لنشر الرسائل. على أي حال، باستخدام أكبر قليلا Λ و Λ، يمكن أن يكون وقت الحساب ممكنا يتم دمجها في التحليل مباشرة. معظم العبارات أدناه تحمل "ساحقة الاحتمالية"، وقد لا نؤكد على هذه الحقيقة مرارًا وتكرارًا في التحليل.5.6 النظرية الرئيسية نظرية 5.1. الخصائص التالية تحمل احتمالية ساحقة لكل جولة r \(\geq\)0: 1. يتفق جميع المستخدمين الصادقين على نفس الكتلة Br. 2. عندما يكون القائد \(\ell\)r صادقًا، يتم إنشاء الكتلة Br بواسطة \(\ell\)r، وتحتوي Br على مجموعة دفع قصوى تم استلامه بواسطة \(\ell\)r بالوقت \(\alpha\)r,1 \(\ell\)r , T r+1 \(\geq\)T r + 8lect + Λ وجميع المستخدمين الصادقين يعرفون Br في ذلك الوقت الفاصل الزمني Ir+1. 3. عندما يكون القائد \(\ell\)r خبيثًا، T r+1 \(\geq\)T r + (6Lr + 10)\(\alpha\) + Λ وجميع المستخدمين الصادقين يعرفون Br في الفاصل الزمني Ir+1. 4. ph = h2(1 + h −h2) لـ Lr، والقائد \(\ell\)r صادق مع احتمال ph على الأقل. قبل إثبات نظريتنا الرئيسية، دعونا نبدي ملاحظتين. ملاحظات. • إنشاء الكتل والكمون الحقيقي. يتم تعريف الوقت اللازم لإنشاء الكتلة Br بأنه T r+1 −T r. وهذا يعني أنه يتم تعريفه على أنه الفرق بين المرة الأولى التي يتعلم فيها بعض المستخدمين الصادقين Br و في المرة الأولى التي يتعلم فيها بعض المستخدمين الصادقين Br−1. عندما يكون قائد الجولة صادقًا، الخاصية 2 لدينا تضمن النظرية الرئيسية أن الوقت المحدد لتوليد Br هو 8 Λ + Λ، مهما كان الأمر قد تكون القيمة الدقيقة لـ h > 2/3. عندما يكون القائد خبيثًا، تشير الخاصية 3 إلى أن الوقت المتوقع لإنشاء Br محدد بـ (12 ph + 10)\(\alpha\) + Λ، مرة أخرى بغض النظر عن الدقة قيمة h.18 ومع ذلك، فإن الوقت المتوقع لتوليد Br يعتمد على القيمة الدقيقة لـ h. في الواقع، من خلال الخاصية 4، ph = h2(1 + h −h2) والقائد صادق في الاحتمالية على الأقل الرقم الهيدروجيني، وبالتالي E[T r+1 −T r] \(\geq\)h2(1 + h −h2) \(\cdot\) (8lect + Λ) + (1 −h2(1 + h −h2))(( 12 h2(1 + h −h2) + 10)π + Λ). على سبيل المثال، إذا كانت h = 80%، فإن E[T r+1 −T r] \(\geq\)12.7lect + Λ. • Λ مقابل Λ. لاحظ أن حجم الرسائل المرسلة من قبل القائمين على التحقق في الخطوة Algorand ′ هو المهيمن من خلال طول مفاتيح التوقيع الرقمي، والتي يمكن أن تظل ثابتة، حتى عندما يكون عددها المستخدمين هائلة. لاحظ أيضًا أنه في أي خطوة s > 1، يكون هناك نفس العدد المتوقع n من المدققين يمكن استخدامه سواء كان عدد المستخدمين 100 ألف أو 100 مليون أو 100 مليون. وذلك لأن n فقط يعتمد على h وF. باختصار، باستثناء الحاجة المفاجئة لزيادة طول المفتاح السري، يجب أن تظل قيمة  كما هي بغض النظر عن حجم عدد المستخدمين في المستقبل المنظور. على النقيض من ذلك، بالنسبة لأي معدل معاملة، فإن عدد المعاملات ينمو مع عدد المعاملات المستخدمين. لذلك، لمعالجة جميع المعاملات الجديدة في الوقت المناسب، يجب أن يكون حجم الكتلة تنمو أيضًا مع عدد المستخدمين، مما يتسبب في نمو Λ أيضًا. وهكذا، على المدى الطويل، ينبغي أن يكون لدينا Λ << Λ. وبناءً على ذلك، فمن المناسب أن يكون هناك معامل أكبر لـ lect، وفي الواقع معامل من 1 لـ Λ. إثبات النظرية 5.1. نثبت الخصائص 1–3 بالاستقراء: بافتراض أنها تنطبق على الجولة r −1 (دون فقدان العمومية، يتم الاحتفاظ بها تلقائيًا لـ "الجولة -1" عندما يكون r = 0)، ونثبتها جولة ص. 18في الواقع، E[T r+1 −T r] \(\geq\)(6E[Lr] + 10)Λ + Λ = (6 \(\cdot\) 2 الرقم الهيدروجيني + 10) \(\alpha\) + Λ = ( 12 الرقم الهيدروجيني + 10) \(\alpha\) + Λ.نظرًا لأن Br−1 يتم تعريفه بشكل فريد من خلال الفرضية الاستقرائية، فإن المجموعة SV r,s يتم تعريفها بشكل فريد لكل خطوة من الجولة r. باختيار n1، SV r،1 ̸= \(\emptyset\) مع احتمالية ساحقة. نحن الآن اذكر المعينتين التاليتين، الموضحتين في القسمين 5.7 و5.8. طوال فترة الحث وفي براهين الليما، تحليل الجولة 0 هو تقريبا نفس الخطوة الاستقرائية، وسوف نسلط الضوء على الاختلافات عند حدوثها. ليما 5.2. [اكتمال Lemma] افتراض الخصائص 1–3 يتم الاحتفاظ به للجولة r−1، عندما يكون القائد \(\ell\)r صادق، مع احتمالية ساحقة، • يتفق جميع المستخدمين الصادقين على نفس الكتلة Br، التي تم إنشاؤها بواسطة \(\ell\)r وتحتوي على الحد الأقصى تم استلام مجموعة الدفع بواسطة \(\ell\)r حسب الوقت \(\alpha\)r,1 \(\ell\)r \(\in\)Ir؛ و • T r+1 \(\geq\)T r + 8lect + Λ وجميع المستخدمين الصادقين يعرفون Br في الفاصل الزمني Ir+1. ليما 5.3. [سلامة Lemma] افتراض الخصائص 1–3 يتم الاحتفاظ بها للجولة r −1، عندما يكون القائد \(\ell\)r خبيث، مع احتمالية ساحقة، يتفق جميع المستخدمين الصادقين على نفس الكتلة Br، T r+1 \(\geq\) T r + (6Lr + 10) lect + Λ وجميع المستخدمين الصادقين يعرفون Br في الفترة الزمنية Ir+1. يتم الاحتفاظ بالخصائص 1–3 من خلال تطبيق Lemmas 5.2 و5.3 على r = 0 وعلى الخطوة الاستقرائية. وأخيرا، نعيد صياغة الخاصية 4 على النحو التالي، كما تم إثباته في القسم 5.9. ليما 5.4. الخصائص المعطاة 1–3 لكل جولة قبل r، ph = h2(1 + h −h2) لـ Lr، و الزعيم \(\ell\)r صادق مع احتمالية ph على الأقل. من خلال الجمع بين العناصر الثلاثة المذكورة أعلاه معًا، فإن النظرية 5.1 صحيحة. ■ تنص lemma أدناه على العديد من الخصائص المهمة حول الجولة r بالنظر إلى الاستقرائي الفرضية، وسيتم استخدامها في البراهين على الثلاثة المذكورة أعلاه. ليما 5.5. افترض أن الخصائص 1–3 موجودة للجولة r −1. لكل خطوة s \(\geq\)1 من الجولة r و كل محقق صادق في HSV r،s، لدينا ذلك (أ) \(\alpha\)r،s أنا \(\in\)الأير؛ (ب) إذا انتظر اللاعب فترة من الوقت، ثم \(\beta\)r,s أنا \(\in\)[T r + ts, T r + lect + ts] لـ r > 0 و \(\beta\) ص، ق أنا = نهاية الخبر لص = 0؛ و (ج) إذا انتظر اللاعب فترة من الوقت، ثم بمرور الوقت \(\beta\)r,s أنا، لقد تلقى جميع الرسائل مرسلة من جميع المدققين الصادقين j \(\in\)HSV r,s′ لجميع الخطوات s' < s. علاوة على ذلك، لكل خطوة s \(\geq\)3، لدينا ذلك (د) لا يوجد لاعبان مختلفان i, i' \(\in\)SV r,s وقيمتين مختلفتين v, v' لهما نفس الشيء الطول، بحيث يكون كلا اللاعبين قد انتظرا مقدارًا من الوقت، أكثر من ثلثي إجمالي الوقت رسائل صالحة السيد، ق−1 ي لقد وقع اللاعب الذي أتلقاه على v، وأكثر من 2/3 من جميع اللاعبين الصالحين رسائل السيد، ق−1 ي اللاعب الذي أستقبله وقع على v′. دليل. الخاصية (أ) تتبع مباشرة من الفرضية الاستقرائية، حيث أن اللاعب الذي أعرفه Br−1 في الفاصل الزمني Ir ويبدأ خطواته الخاصة على الفور. الخاصية (ب) تتبع مباشرة من (أ): منذ لقد انتظرت وقتًا طويلًا قبل التمثيل، \(\beta\)r,s أنا = \(\alpha\)r,s أنا + نهاية الخبر. لاحظ أن \(\alpha\)r,s أنا = 0 ل ص = 0. نثبت الآن الخاصية (ج). إذا كانت s = 2، فمن خلال الخاصية (b)، بالنسبة لجميع أدوات التحقق j \(\in\)HSV r,1 لدينا \(\beta\) ص، ق أنا = \(\alpha\)r,s أنا + ts \(\geq\)T r + ts = T r + lect + Λ \(\geq\) \(\beta\)r,1 ي + Λ.نظرًا لأن كل مدقق j \(\in\)HSV r,1 يرسل رسالته في الوقت \(\beta\)r,1 ي والرسالة تصل إلى كل صادق المستخدمين في وقت Λ على الأكثر، حسب الوقت \(\beta\)r,s أنا لقد تلقيت الرسائل المرسلة من قبل جميع المتحققين في HSV r,1 حسب الرغبة. إذا كانت s > 2، فإن ts = ts−1 + 2\(\alpha\). حسب الخاصية (ب)، لجميع الخطوات s′ < s وجميع أدوات التحقق j \(\in\)HSV r,s′, \(\beta\) ص، ق أنا = \(\alpha\)r,s أنا + ts \(\geq\)T r + ts = T r + ts−1 + 2lect \(\geq\)T r + ts′ + 2lect = T r + lect + ts′ + lect \(\geq\) \(\beta\)r,s′ ي + lect. نظرًا لأن كل مدقق j \(\in\)HSV r,s′ يرسل رسالته في الوقت \(\beta\)r,s′ ي والرسالة تصل إلى كل صادق المستخدمين في وقت lect على الأكثر، حسب الوقت \(\beta\)r,s أنا لقد تلقيت جميع الرسائل المرسلة من جميع المدققين الصادقين في HSV r,s' لجميع s' < s. وبالتالي فإن الخاصية (ج) تحمل. وأخيرا نثبت الخاصية (د). لاحظ أن المدققين j \(\in\)SV r,s−1 يسجلون شيئين على الأكثر الخطوة s −1 باستخدام مفاتيحها السرية المؤقتة: قيمة vj بنفس طول مخرجات الدالة hash، وكذلك القليل bj \(\in\){0, 1} إذا كانت s −1 \(\geq\)4. ولهذا السبب في بيان ليما نحن نشترط أن يكون لـ v وv′ نفس الطول: ربما وقع العديد من المدققين على القيمة hash v والقليل b، وبالتالي يتجاوز كلاهما عتبة 2/3. افترض، من أجل التناقض، وجود أدوات التحقق المرغوبة i، i' والقيم v، v'. لاحظ أن بعض أدوات التحقق الخبيثة في MSV r,s−1 ربما تكون قد وقعت على كل من v وv′، ولكن كل منهما صادق قام المدقق في HSV r,s−1 بالتوقيع على واحد منهم على الأكثر. بواسطة الخاصية (ج)، تم استلام كل من i وi′ جميع الرسائل المرسلة من قبل جميع المتحققين الصادقين في HSV r,s−1. افترض أن HSV r,s−1(v) هي مجموعة المدققين الصادقين (r, s −1) الذين وقعوا على v, MSV r,s−1 أنا المجموعة من المدققين الخبيثين (r, s −1) الذين تلقيت منهم رسالة صالحة، وMSV r,s−1 أنا (ت) ال مجموعة فرعية من MSV r,s−1 أنا الذي تلقيت منه رسالة صالحة بالتوقيع v. حسب متطلبات أنا و الخامس، لدينا النسبة \(\triangleq\)|HSV r,s−1(v)| + |MSV r,s−1 أنا (ت)| |HSV r,s−1| + |MSV r,s−1 أنا |

2 3. (1) نعرض أولا |MSV r,s−1 أنا (ت)| \(\geq\)|HSV r,s−1(v)|. (2) بافتراض خلاف ذلك، من خلال العلاقات بين المعلمات، مع احتمالية ساحقة |HSV r,s−1| > 2|MSV r,s−1| \(\geq\)2|MSV r,s−1 أنا | هكذا النسبة < | HSV r,s−1(v)| + |MSV r,s−1 أنا (ت)| 3|MSV r,s−1 أنا | < 2|MSV r,s−1 أنا (ت)| 3|MSV r,s−1 أنا | \(\geq\)2 3، تناقض عدم المساواة 1. بعد ذلك، من خلال عدم المساواة 1 لدينا 2|HSV r,s−1| + 2|MSV r,s−1 أنا | < 3|HSV r,s−1(v)| + 3|MSV r,s−1 أنا (ت)| \(\geq\) 3|HSV r,s−1(v)| + 2|MSV r,s−1 أنا | + |MSV r,s−1 أنا (ت)|. الجمع مع عدم المساواة 2، 2|HSV r,s−1| < 3|HSV r,s−1(v)| + |MSV r,s−1 أنا (ت)| \(\geq\)4|HSV r,s−1(v)|, مما يعني |HSV r,s−1(v)| > 1 2|HSV r,s−1|.وبالمثل، وفقًا لمتطلبات i' وv'، لدينا |HSV r,s−1(v′)| > 1 2|HSV r,s−1|. نظرًا لأن المدقق الصادق j \(\in\)HSV r,s−1 يدمر مفتاحه السري سريع الزوال skr,s−1 ي قبل الانتشار رسالته، لا يستطيع الخصم تزوير توقيع j بقيمة لم يوقعها j بعد ذلك تعلم أن j هو المدقق. وبالتالي، فإن المتباينتين أعلاه تشيران إلى |HSV r,s−1| \(\geq\)|HSV r,s−1(v)| + |HSV r,s−1(v′)| > |HSV r,s−1|، تناقض. وبناء على ذلك، فإن i، i′، v، v′ المرغوب فيه غير موجود، و الخاصية (د) تحمل. ■ 5.7 ليما الاكتمال ليما 5.2. [اكتمال Lemma، تمت إعادة صياغته] بافتراض أن الخصائص 1–3 مثبتة للجولة r−1، عندما القائد \(\ell\)r صادق، مع احتمالية ساحقة، • يتفق جميع المستخدمين الصادقين على نفس الكتلة Br، التي تم إنشاؤها بواسطة \(\ell\)r وتحتوي على الحد الأقصى تم استلام مجموعة الدفع بواسطة \(\ell\)r حسب الوقت \(\alpha\)r,1 \(\ell\)r \(\in\)Ir؛ و • T r+1 \(\geq\)T r + 8lect + Λ وجميع المستخدمين الصادقين يعرفون Br في الفاصل الزمني Ir+1. دليل. بواسطة الفرضية الاستقرائية وLemma 5.5، لكل خطوة s والمتحقق i \(\in\)HSV r,s، \(\alpha\)r,s أنا \(\in\)إير. أدناه نقوم بتحليل البروتوكول خطوة بخطوة. الخطوة 1. بحكم التعريف، كل مدقق صادق i \(\in\)HSV r,1 ينشر الرسالة المطلوبة mr,1 أنا في الوقت \(\beta\)r,1 أنا = \(\alpha\)r,1 أنا، حيث السيد،1 أنا = (ر أنا، esigi(H(Br أنا )))، \(\sigma\)ص،1 ط)، ر أنا = (ص، دفع ص أنا، SIGi(Qr−1)، H(Br−1))، ودفع ص i هو الحد الأقصى لمجموعة الدفع من بين جميع المدفوعات التي رأيتها بحلول الوقت \(\alpha\)r,1 أنا. الخطوة 2. قم بإصلاح مدقق صادق بشكل تعسفي i \(\in\)HSV r,2. بواسطة Lemma 5.5، عندما أنتهي من اللاعب الانتظار في الوقت \(\beta\)r,2 أنا = \(\alpha\)r,2 أنا + t2، لقد تلقى جميع الرسائل المرسلة من قبل المدققين في HSV r،1، بما في ذلك السيد،1 \(\ell\)ر . حسب تعريف \(\ell\)r، لا يوجد لاعب آخر في PKr−k بيانات اعتماده hash القيمة أصغر من H(\(\sigma\)r,1 \(\ell\)ر). بالطبع، يمكن للخصم أن يفسد \(\ell\)r بعد رؤية أن H(\(\sigma\)r,1 \(\ell\)ص ) صغير جدًا، ولكن بحلول ذلك الوقت يكون اللاعب \(\ell\)r قد دمر مفتاحه سريع الزوال والرسالة السيد،1 \(\ell\)ص تم نشرها. ومن ثم، يقوم المتحقق بتعيين قائده ليكون اللاعب رقم 1. وبناء على ذلك، في الوقت \(\beta\)r,2 أنا، التحقق من نشر السيد،2 أنا = (ESIGi(v′ أنا)، \(\sigma\)ص،2 أنا )، حيث الخامس ' ط = ح(ر \(\ell\)ر). عندما يكون r = 0، يكون الفرق الوحيد هل هذا \(\beta\)r,2 أنا = t2 بدلاً من أن تكون في النطاق. ويمكن قول أشياء مماثلة عن الخطوات المستقبلية ونحن لن أؤكد عليها مرة أخرى. الخطوة 3. قم بإصلاح مدقق صادق بشكل تعسفي i \(\in\)HSV r,3. بواسطة Lemma 5.5، عندما أنتهي من اللاعب الانتظار في الوقت \(\beta\)r,3 أنا = \(\alpha\)r,3 أنا + t3، لقد تلقى جميع الرسائل المرسلة من قبل المدققين في HSV r،2. من خلال العلاقات بين المعلمات، مع احتمالية ساحقة |HSV r,2| > 2|MSV ص،2|. علاوة على ذلك، لا يجوز لأي مدقق نزيه أن يوقع على الرسائل المتناقضة، والخصم ولا يجوز له تزوير توقيع مدقق نزيه بعد أن أتلف الأخير مقابله مفتاح سري سريع الزوال. وبالتالي فإن أكثر من ثلثي جميع الرسائل الصالحة (r, 2) التي تلقيتها هي من المدققون الصادقون ومن النموذج السيد،2 ي = (ESIGj(H(Br \(\ell\)ص)))، \(\sigma\)ص،2 ي) دون أي تناقض. وبناء على ذلك، في الوقت \(\beta\)r,3 أنا لاعب أنا نشر السيد،3 أنا = (ESIGi(v′),\(\sigma\)r,3 i )، حيث v′ = H(Br \(\ell\)ر).الخطوة 4. قم بإصلاح مدقق صادق بشكل تعسفي i \(\in\)HSV r,4. بواسطة Lemma 5.5, لقد تلقيت اللاعب كل شيء الرسائل المرسلة من قبل المدققين في HSV r,3 عندما ينتهي من الانتظار في الوقت \(\beta\)r,4 أنا = \(\alpha\)r,4 أنا + ت4. مماثلة ل الخطوة 3، أكثر من 2/3 من جميع الرسائل الصالحة (r, 3) التي تلقيتها هي من محققين صادقين و من النموذج السيد،3 ي = (ESIGj(H(Br \(\ell\)ص)))، \(\sigma\)ص،3 ي). وبناء على ذلك، فإن اللاعب i يحدد vi = H(Br \(\ell\)r)، gi = 2 وbi = 0. في الوقت \(\beta\)r,4 أنا = \(\alpha\)r,4 أنا +t4 انه ينتشر السيد,4 أنا = (ESIGi(0)، ESIGi(H(Br \(\ell\)ص)))، \(\sigma\)ص،4 أنا). الخطوة 5. تثبيت مدقق صادق بشكل تعسفي i \(\in\)HSV r,5. بواسطة Lemma 5.5, اللاعب الذي سأحصل عليه تلقى جميع الرسائل المرسلة من قبل المدققين في HSV r,4 إذا كان قد انتظر حتى الوقت \(\alpha\)r,5 أنا + ت5. لاحظ ذلك |HSV ص،4| \(\geq\)tH.19 لاحظ أيضًا أن جميع القائمين على التحقق في HSV r,4 قد وقعوا على H(Br) \(\ell\)ر). كـ |MSV r,4| < tH، لا يوجد أي v′̸= H(Br \(\ell\)r) التي كان من الممكن أن تكون موقعة بواسطة tH المدققون في SV r,4 (والذين سيكونون بالضرورة خبيثين)، لذا فإن اللاعب i لا يتوقف قبل أن يفعل ذلك تلقى رسائل صالحة السيد،4 ي = (ESIGj(0)، ESIGj(H(Br \(\ell\)ص)))، \(\sigma\)ص،4 ي). دع T يكون الوقت الذي يحدث الحدث الأخير. قد تكون بعض هذه الرسائل من لاعبين ضارين، ولكن بسبب |MSV ص،4| < tH، واحد منهم على الأقل من مدقق صادق في HSV r،4 ويتم إرساله بعد مرور الوقت تي ص +t4. وبناء على ذلك، T \(\geq\)T r +t4 > T r +lect+Λ \(\geq\) \(\beta\)r,1 \(\ell\)r +Λ، وبمرور الوقت، تلقيت أيضًا لاعب T الرسالة السيد،1 \(\ell\)ر . من خلال بناء البروتوكول، يتوقف اللاعب i عند الوقت \(\beta\)r,5 أنا = ت بدون نشر أي شيء؛ مجموعات ر = ر \(\ell\)ص؛ ويقوم بتعيين CERT r الخاص به ليكون مجموعة (r، 4) - رسائل لـ 0 و ح(ر \(\ell\)ص) الذي حصل عليه. الخطوة > 5. وبالمثل، بالنسبة لأي خطوة s > 5 وأي أداة تحقق i \(\in\)HSV r,s، اللاعب الذي سأحصل عليه تلقى جميع الرسائل المرسلة من قبل المدققين في HSV r,4 إذا كان قد انتظر حتى الوقت \(\alpha\)r,s أنا + نهاية الخبر. بواسطة نفس التحليل، يتوقف اللاعب i دون نشر أي شيء، ويتم ضبط Br = Br \(\ell\)ص (ووضع خاصته CERT ص بشكل صحيح). وبطبيعة الحال، فإن أدوات التحقق الخبيثة قد لا تتوقف وقد تنتشر بشكل اعتباطي الرسائل، ولكن لأن |MSV r,s| < tH، عن طريق الحث لا يمكن توقيع أي حرف v آخر بواسطة المدققين في أي خطوة 4 \(\geq\)s′ < s، وبالتالي يتوقف المدققون الصادقون فقط لأنهم حصلوا على قيمة صحيحة (ص، 4)-رسائل لـ 0 وH(Br \(\ell\)ر). إعادة بناء كتلة Round-r. ينطبق تحليل الخطوة 5 على الصدق العام المستخدم أنا تقريبا دون أي تغيير. في الواقع، يبدأ اللاعب i جولته r في الفترة الفاصلة بين Ir و سوف يتوقف فقط في وقت T عندما يتلقى رسائل صالحة (r, 4) لـ H(Br) \(\ell\)ر). مرة أخرى لأن واحدة على الأقل من هذه الرسائل هي من محققين صادقين ويتم إرسالها بعد مرور الوقت T r + t4، اللاعب الذي أملكه كما استقبل السيد 1 \(\ell\)r بالزمن T. وبالتالي فهو يحدد Br = Br \(\ell\)r مع CERT المناسب. يبقى فقط أن نبين أن جميع المستخدمين الصادقين ينهون جولتهم r خلال الفاصل الزمني Ir+1. من خلال تحليل الخطوة 5، كل مدقق صادق i \(\in\)HSV r,5 يعرف Br عند \(\alpha\)r أو قبله،5 أنا + t5 \(\geq\) تي ص +  + t5 = تي ص + 8 + Λ. وبما أن T r+1 هو الوقت الذي يعرف فيه أول مستخدم صادق Br، فقد فعلنا ذلك تي ص +1 \(\geq\)T ص + 8 Λ + Λ حسب الرغبة. علاوة على ذلك، عندما يعرف اللاعب Br، فقد ساعد بالفعل في نشر الرسائل CERT الخاص به ص. لاحظ أن جميع هذه الرسائل سيتم استلامها من قبل جميع المستخدمين الصادقين في غضون الوقت المناسب، حتى لو 19. بالمعنى الدقيق للكلمة، يحدث هذا باحتمالية عالية جدًا ولكن ليس بالضرورة ساحقة. ومع ذلك، هذا يؤثر الاحتمال بشكل طفيف على وقت تشغيل البروتوكول، لكنه لا يؤثر على صحته. عندما ح = 80٪، ثم |HSV ص،4| \(\geq\)tH مع الاحتمال 1 −10−8. إذا لم يحدث هذا الحدث، فسوف يستمر البروتوكول لآخر 3 خطوات. وبما أن احتمال عدم حدوث ذلك في خطوتين ضئيل، فإن البروتوكول سينتهي عند الخطوة 8. توقعًا، فإن عدد الخطوات المطلوبة هو 5 خطوات تقريبًا.كان اللاعب ir أول لاعب قام بنشرها. وعلاوة على ذلك، في أعقاب التحليل أعلاه لدينا تي ص+1 \(\geq\)T ص + t4 \(\geq\) \(\beta\)r,1 \(\ell\)r + Λ، وبالتالي فقد حصل جميع المستخدمين الصادقين على mr,1 \(\ell\)r بالزمن T r+1 + lect. وبناء على ذلك، يعرف جميع المستخدمين الصادقين Br في الفترة الزمنية Ir+1 = [T r+1, T r+1 + lect]. أخيرًا، بالنسبة لـ r = 0 لدينا بالفعل T 1 \(\geq\)t4 + lect = 6lect + Λ. الجمع بين كل شيء معا، يحمل ليما 5.2. ■ 5.8 السلامة ليما ليما 5.3. [سلامة Lemma، تمت إعادة صياغتها] بافتراض أن الخصائص 1–3 مثبتة للجولة r −1، عندما القائد \(\ell\)r خبيث، مع احتمالية ساحقة، يتفق جميع المستخدمين الصادقين على نفس الكتلة Br، T r+1 \(\geq\)T r + (6Lr + 10)lect + Λ وجميع المستخدمين الصادقين يعرفون Br في الفاصل الزمني Ir+1. دليل. نحن نعتبر جزأين من البروتوكول، GC وBBA⋆، بشكل منفصل. جي سي. بواسطة الفرضية الاستقرائية وبواسطة Lemma 5.5، لأي خطوة s \(\in\){2, 3, 4} وأي خطوة صادقة التحقق من \(\in\)HSV r,s، عندما يتصرف اللاعب i في الوقت \(\beta\)r,s أنا = \(\alpha\)r,s أنا + تيسي، لقد تلقى جميع الرسائل المرسلة من قبل جميع المدققين الصادقين في الخطوات s' < s. نحن نميز بين حالتين محتملتين للخطوة 4. الحالة 1. لا يوجد أداة تحقق i \(\in\)HSV r,4 مجموعات gi = 2. في هذه الحالة، حسب التعريف bi = 1 لجميع أدوات التحقق i \(\in\)HSV r,4. أي أنهم يبدأون بـ اتفاق على 1 في بروتوكول BA الثنائي. قد لا يكون لديهم اتفاق بشأن السادس، ولكن هذا لا يهم كما سنرى في مكتبة الإسكندرية الثنائية. الحالة 2. يوجد محقق ˆi \(\in\)HSV r,4 بحيث gˆi = 2. وفي هذه الحالة نبين ذلك (1) gi \(\geq\)1 للجميع i \(\in\)HSV r,4, (2) توجد قيمة v ′ بحيث vi = v ′ للجميع i \(\in\)HSV r,4 و (3) توجد رسالة صالحة يا سيد،1 \(\ell\) من بعض أدوات التحقق \(\ell\) \(\in\)SV r,1 بحيث v′ = H(Br \(\ell\)). في الواقع، نظرًا لأن اللاعب ˆi صادق ويحدد gˆi = 2، فإن أكثر من 2/3 من جميع الرسائل الصالحة mr,3 ي لقد حصل عليها بنفس القيمة v′ ̸= \(\bot\)، وقد قام بتعيين vˆi = v′. حسب الخاصية (د) في Lemma 5.5، بالنسبة لأي مدقق صادق آخر (r، 4) i، لا يمكن أن يكون الأمر أكثر من ذلك من 2/3 من جميع الرسائل الصالحة السيد،3 ي التي تلقيتها هي بنفس القيمة v′′ ̸= v′. وفقًا لذلك، إذا قمت بتعيين gi = 2، فيجب أن أكون قد رأيت> 2/3 أغلبية لـ v' أيضًا وقمت بتعيينها vi = v'، حسب الرغبة. الآن فكر في أداة التحقق التعسفية i \(\in\)HSV r,4 مع gi <2. على غرار تحليل الخاصية (د) في Lemma 5.5، لأن اللاعب ˆi قد رأى > 2/3 أغلبية لـ v′، أكثر من 1 2|HSV ص،3| صادق (ص، 3) - وقع المدققون على حرف v ′. لأنني تلقيت جميع الرسائل من قبل المدققين الصادقين (ص، 3). الوقت \(\beta\)r,4 أنا = \(\alpha\)r,4 أنا + t4، وقد حصل على وجه الخصوص على أكثر من 1 2|HSV ص،3| رسائل منهم لـ v'. لأن |HSV r,3| > 2|MSV r,3|، لقد رأيت > 1/3 أغلبية لـ v'. وبناء على ذلك أيها اللاعب أقوم بتعيين gi = 1، وتبقى الخاصية (1) ثابتة. هل اللاعب الذي قمت بتعيينه بالضرورة vi = v'؟ افترض أن هناك قيمة مختلفة v′′ ̸= \(\bot\)هكذا اللاعب الذي رأيته أيضًا > أغلبية 1/3 لـ v''. قد تكون بعض هذه الرسائل من الخبيثة المحققين، ولكن واحد منهم على الأقل هو من بعض المحققين الصادقين j \(\in\) HSV r، 3: في الواقع، لأن |HSV ص،3| > 2|MSV r,3| ولقد تلقيت كافة الرسائل من HSV r,3، مجموعة البرامج الضارة المحققون الذين تلقيت منهم رسالة صالحة (r، 3) - تمثل أقل من 1/3 من جميع الرسائل الصالحة الرسائل التي تلقاها.حسب التعريف، يجب أن يكون اللاعب j قد رأى > 2/3 أغلبية لـ v ′ ′ بين جميع الرسائل الصالحة (r، 2) لقد تلقى. ومع ذلك، لدينا بالفعل ما شاهده بعض المحققين الصادقين الآخرين (r، 3). أغلبية 2/3 لصالح v' (لأنهم وقعوا على v'). حسب الخاصية (د) من Lemma 5.5، لا يمكن ذلك يحدث وهذه القيمة v'' غير موجودة. لذلك يجب على اللاعب أن يضبط vi = v′ حسب الرغبة، والملكية (2) تحمل. أخيرًا، نظرًا لأن بعض المدققين الصادقين (r, 3) قد رأوا أغلبية تزيد عن 2/3 لصالح v'، فإن البعض (في الواقع، أكثر من نصف) المدققين الصادقين (r, 2) وقعوا على v′ وقاموا بنشر رسائلهم. من خلال بناء البروتوكول، يجب أن يكون هؤلاء المدققون الصادقون (r، 2) قد حصلوا على شهادة صالحة رسالة السيد،1 \(\ell\) من بعض اللاعبين \(\ell\) \(\in\)SV r,1 مع v′ = H(Br \(\ell\))، وبالتالي فإن الخاصية (3) تحمل. بابا⋆. نميز مرة أخرى بين حالتين. الحالة 1. جميع أدوات التحقق i \(\in\)HSV r,4 لها ثنائية = 1. يحدث هذا بعد الحالة 1 من GC. كـ |MSV r,4| < tH، في هذه الحالة لا يوجد مدقق في SV r,5 يمكنه جمع أو إنشاء رسائل صالحة (r, 4) للبتة 0. وبالتالي، لا يوجد مدقق صادق في HSV r,5 سيتوقف لأنه يعرف كتلة غير فارغة Br. علاوة على ذلك، على الرغم من وجود رسائل صالحة (r, 4) على الأقل للبتة 1، فإن s′ = 5 غير مرضية s′ −2 ≡1 mod 3، وبالتالي لن يتوقف أي مدقق صادق في HSV r,5 لأنه يعرف Br = Br ƒ. وبدلاً من ذلك، فإن كل أداة تحقق i \(\in\)HSV r,5 تعمل في الوقت \(\beta\)r,5 أنا = \(\alpha\)r,5 أنا + t5، بحلول الوقت الذي حصل فيه على كل شيء الرسائل المرسلة بواسطة HSV r,4 بعد Lemma 5.5. هكذا رأيت اللاعب> 2/3 أغلبية لـ 1 ومجموعات ثنائية = 1. في الخطوة 6 وهي خطوة عملة ثابتة إلى 1، على الرغم من أن s′ = 5 يرضي s′ −2 ≡0 mod 3، هناك لا توجد رسائل صالحة (r, 4) للبت 0، وبالتالي لن يتوقف أي مدقق في HSV r,6 بسبب إنه يعرف كتلة غير فارغة Br. ومع ذلك، مع s′ = 6، s′ −2 ≡1 mod 3 وهناك وجود |HSV ص،5| \(\geq\)tH صالحة (r, 5) - رسائل للبت 1 من HSV r,5. لكل أداة تحقق i \(\in\)HSV r,6، بعد Lemma 5.5، في الوقت \(\alpha\)r,6 أو قبله أنا + لاعب t6 أنا لقد تلقى جميع الرسائل من HSV r,5، وبالتالي أتوقف دون نشر أي شيء أو مجموعات ر = ر ƒ. CERT r الخاص به هو مجموعة الرسائل الصالحة (r, 5) mr,5 ي = (ESIGj(1)، ESIGj(vj)، \(\sigma\)r،5 ي) يستقبله عندما يتوقف. بعد ذلك، اسمح للاعب أن يكون إما مدققًا صادقًا في الخطوة s > 6 أو مستخدمًا صادقًا عامًا (أي، غير محقق). على غرار إثبات Lemma 5.2، يقوم اللاعب i بتعيين Br = Br ƒ ويضع خاصته CERT r هي مجموعة الرسائل الصالحة (r, 5) mr,5 ي = (ESIGj(1)، ESIGj(vj)، \(\sigma\)r،5 ي) لديه تلقى. وأخيرا، على غرار Lemma 5.2، تي ص+1 \(\geq\) دقيقة أنا\(\in\)HSV ص،6 \(\alpha\)r،6 أنا + t6 \(\geq\)T r + lect + t6 = T r + 10lect + Λ، وجميع المستخدمين الصادقين يعرفون Br في الفترة الزمنية Ir+1، لأن المستخدم الصادق الأول هو الذي يعرف أن Br قد ساعد في نشر الرسائل (r, 5) في CERT r. الحالة 2. يوجد مُحقق ˆi \(\in\)HSV r,4 مع bˆi = 0. يحدث هذا بعد الحالة 2 من GC وهي الحالة الأكثر تعقيدًا. من خلال تحليل جي سي، في هذه الحالة توجد رسالة صالحة السيد،1 \(\ell\) بحيث يكون vi = H(Br \(\ell\)) للجميع i \(\in\)HSV r,4. ملاحظة أن القائمين على التحقق في HSV r,4 قد لا يكون لديهم اتفاق بشأن ثنائية. لأي خطوة s \(\in\){5, . . . ، m + 3} والتحقق من i \(\in\)HSV r،s، بواسطة Lemma 5.5 player كنت سأحصل عليه تلقى جميع الرسائل المرسلة من قبل جميع المتحققين الصادقين في HSV r,4 \(\cup\) \(\cdots\) \(\cup\)HSV r,s−1 إذا كان قد انتظر للوقت نهاية الخبر.نحن الآن نعتبر الحدث التالي E: هناك خطوة s∗\(\geq\)5 بحيث أنه في المرة الأولى الوقت في مكتبة الإسكندرية الثنائية، يجب أن يتوقف بعض اللاعبين i∗\(\in\)SV r,s∗ (سواء كان خبيثًا أو صادقًا) دون نشر أي شيء. نستخدم "يجب أن يتوقف" للتأكيد على حقيقة أنه إذا كان اللاعب i∗ خبيث، فيجوز له أن يتظاهر بأنه لا ينبغي أن يتوقف حسب البروتوكول و نشر الرسائل التي يختارها الخصم. وعلاوة على ذلك، من خلال بناء البروتوكول، سواء (E.a) i∗ قادر على جمع أو إنشاء رسائل صالحة على الأقل mr,s′−1 ي = (ESIGj(0)، ESIGj(v)، \(\sigma\)r,s'−1 ي ) لنفس v و s′، مع 5 \(\geq\)s′ \(\geq\)s∗ و s′ −2 ≡0 mod 3؛ أو (E.b) i∗ قادر على جمع أو إنشاء رسائل صالحة على الأقل mr,s′−1 ي = (ESIGj(1)، ESIGj(vj)، \(\sigma\)r,s'−1 ي ) لنفس s′، مع 6 χs′ ′s∗و s′ −2 ≡1 mod 3. لأن الرسائل الصادقة (r, s′ −1) يتم استلامها من قبل جميع المدققين الصادقين (r, s′) قبل أن تم الانتهاء من الانتظار في الخطوات s'، ولأن الخصم يتلقى كل شيء في موعد لا يتجاوز مستخدمون صادقون، دون فقدان العمومية، لدينا s′ = s∗ واللاعب ضار. لاحظ ذلك لم نشترط أن تكون القيمة v في E.a هي hash لكتلة صالحة: كما سيتضح في التحليل، v = H(Br \(\ell\)) في هذا الحدث الفرعي. أدناه نقوم أولاً بتحليل الحالة 2 بعد الحدث E، ثم نبين أن قيمة s∗ هي في الأساس يتم توزيعها وفقًا لـ Lr (وبالتالي فإن الحدث E يحدث قبل الخطوة m + 3 بأغلبية ساحقة الاحتمال نظرا للعلاقات للمعلمات). للبدء، بالنسبة لأي خطوة 5 \(\geq\)s < s∗، لقد انتظر كل مدقق صادق i HSV r,s الوقت ts وحدد vi ليكون صوت الأغلبية في صالح (r, s−1)-الرسائل التي تلقاها. منذ أن تلقيت اللاعب جميع الرسائل الصادقة (r، s−1). بعد Lemma 5.5، نظرًا لأن جميع المدققين الصادقين في HSV r,4 وقعوا على H(Br) \(\ell\)) الحالة التالية 2 من GC، ومنذ |HSV r,s−1| > 2|MSV r,s−1| لكل ثانية، عن طريق الاستقراء لدينا هذا اللاعب أنا تم تعيينه السادس = ح(ر \(\ell\)). وكذلك الأمر بالنسبة لكل محقق صادق لا يتوقف إلا وينشر أي شيء. الآن نفكر في الخطوة s∗ ونميز بين أربع حالات فرعية. الحالة 2.1.أ. يحدث الحدث E.a ويوجد مدقق صادق وهو الذي يجب عليه توقف أيضًا دون نشر أي شيء. في هذه الحالة، لدينا s∗−2 ≡0 mod 3 والخطوة s∗ هي خطوة عملة ثابتة إلى 0. بواسطة التعريف، اللاعب i ′ قد تلقى على الأقل رسائل صالحة (r، s∗−1) من النموذج (ESIGj(0)، ESIGj(v)، \(\sigma\)r،s∗−1 ي ). نظرًا لأن جميع المدققين في HSV r,s∗−1 قد وقعوا على H(Br \(\ell\)) و |MSV r,s∗−1| < tH، لدينا v = H(Br \(\ell\)). منذ على الأقل tH −|MSV r,s∗−1| \(\geq\)1 من (r، s∗−1) - الرسائل المستلمة بواسطة i ′ لـ 0 و v يتم إرسالها بواسطة المدققين في HSV r,s∗−1 بعد الوقت T r +ts∗−1 \(\geq\)T r +t4 \(\geq\)T r +lect+Λ \(\geq\) \(\beta\)r,1 \(\ell\) +Λ، اللاعب i′ قد تلقى السيد,1 \(\ell\) بحلول الوقت الذي يتلقى فيه تلك الرسائل (r, s∗−1). هكذا اللاعب أنا أتوقف دون نشر أي شيء؛ مجموعات ر = ر \(\ell\)؛ ويقوم بتعيين CERT r الخاص به ليكون مجموعة من الرسائل الصالحة (r, s∗−1) لـ 0 وv التي تلقاها. بعد ذلك، نوضح أن أي محقق آخر i HSV r,s قد توقف عند Br = Br \(\ell\)، أو قام بتعيين bi = 0 وتم نشره (ESIGi(0)، ESIGi(H(Br \(\ell\))))، \(\sigma\)r،s أنا). في الواقع، لأن الخطوة s∗ هذه هي المرة الأولى التي يتوقف فيها أحد القائمين على التحقق دون نشر أي شيء، لكن لا يحدث ذلك توجد خطوة s′ < s∗مع s′ −2 ≡1 mod 3 بحيث يكون tH (r, s′ −1)-المتحققون قد وقعوا 1. وبناء على ذلك، لا يوجد مدقق في HSV r,s∗ يتوقف عند Br = Br ƒ.علاوة على ذلك، كما هو الحال بالنسبة لجميع المتحققين الصادقين في الخطوات {4، 5، . . . ، s∗−1} وقعوا على H(Br \(\ell\))، هناك لا لا توجد خطوة s′ \(\geq\)s∗ مع s′ −2 ≡0 mod 3 بحيث يتم توقيع المدققين tH (r, s′ −1) بعض v′′̸= H(Br \(\ell\)) - في الواقع، |MSV r,s′−1| < ر. وبناءً على ذلك، لم يتوقف أي مدقق في HSV r,s∗ مع ر ̸= ر ɫ وBr̸= ر \(\ell\). وهذا يعني أنه إذا توقف اللاعب بدونه نشر أي شيء، لا بد أنه قد وضع Br = Br \(\ell\). إذا كان اللاعب قد انتظر وقتًا وقام بنشر رسالة في ذلك الوقت \(\beta\) ص، ق∗ أنا = \(\alpha\)r,s∗ أنا + ts∗، لقد تلقى جميع الرسائل من HSV r,s∗−1، بما في ذلك على الأقل tH −|MSV r,s∗−1| منهم ل 0 و v. إذا رأيت > 2/3 أغلبية لـ 1، فهو شاهد أكثر من 2(tH −|MSV r,s∗−1|) صالحة (r, s∗−1)-رسائل لـ 1، مع المزيد من 2tH −3|MSV r,s∗−1| منهم من المتحققين الصادقين (ص، ق∗−1). ومع ذلك، فإن هذا يعني |HSV r,s∗−1| \(\geq\)tH−|MSV r,s∗−1|+2tH−3|MSV r,s∗−1| > 2n−4|MSV r,s∗−1|، متناقض حقيقة ذلك |HSV r,s∗−1| + 4|MSV r,s∗−1| <2 ن، والذي يأتي من العلاقات للمعلمات. وبناء على ذلك، لا أرى> 2/3 الأغلبية لـ 1، وقام بتعيين bi = 0 لأن الخطوة s∗ هي خطوة عملة ثابتة إلى 0. كما لدينا ينظر، السادس = H(Br \(\ell\)). وهكذا أقوم بالنشر (ESIGi(0)، ESIGi(H(Br \(\ell\))))، \(\sigma\)r،s ط) كما أردنا عرض. بالنسبة للخطوة s∗+ 1، منذ أن ساعد اللاعب i′ في نشر الرسائل في CERT r الخاص به في أو قبل الوقت \(\alpha\)r,s∗ أنا ′ + ts∗، جميع المتحققين الصادقين في HSV r,s∗+1 حصلوا على الأقل tH صالحة (r, s∗−1) - رسائل للبتة 0 والقيمة H(Br) \(\ell\)) في أو قبل الانتهاء منها الانتظار. علاوة على ذلك، لن يتوقف المدققون في HSV r,s∗+1 قبل استلام تلك (r, s∗−1)- الرسائل، لأنه لا توجد أي رسائل أخرى صحيحة (r, s′ −1) من tH للبتة 1 مع s′ −2 ≡1 mod 3 و 6 \(\geq\)s′ \(\geq\)s∗+ 1، حسب تعريف الخطوة s∗. على وجه الخصوص، الخطوة s∗+ 1 بحد ذاتها عبارة عن خطوة ثابتة للعملة إلى 1، لكن لم يتم نشر أي محقق صادق في HSV r,s∗ رسالة لـ 1 و |MSV r,s∗| < ر. وبالتالي فإن جميع المتحققين الصادقين في HSV r,s∗+1 يتوقفون دون نشر أي شيء ويقومون بتعيين Br = ر \(\ell\): كما في السابق، لقد حصلوا على السيد،1 \(\ell\) قبل أن يتلقوا الرسائل المطلوبة (r, s∗−1).20 ويمكن قول الشيء نفسه بالنسبة لجميع المتحققين الصادقين في الخطوات المستقبلية وجميع المستخدمين الصادقين بشكل عام. على وجه الخصوص، أنهم جميعا يعرفون Br = Br \(\ell\)خلال الفاصل الزمني Ir+1 و تي ص+1 \(\geq\) \(\alpha\)r,s∗ أنا ′ + ts∗\(\leq\)T r + \(\alpha\) + ts∗. الحالة 2.1.ب. يحدث الحدث E.b ويوجد مدقق صادق وهو الذي يجب عليه توقف أيضًا دون نشر أي شيء. في هذه الحالة لدينا s∗−2 ≡1 mod 3 والخطوة s∗ هي خطوة ثابتة بالعملة إلى 1. التحليل يشبه الحالة 2.1.أ وتم حذف العديد من التفاصيل. 20إذا كان \(\ell\)خبيثًا، فقد يرسل السيد 1 \(\ell\) متأخرًا، على أمل أن بعض المستخدمين/المتحققين الشرفاء لم يتلقوا السيد 1 \(\ell\) بعد عند حصولهم على الشهادة المطلوبة لذلك. ومع ذلك، بما أن المدقق ˆi \(\in\)HSV r,4 قد قام بتعيين bˆi = 0 و vˆi = H(Br \(\ell\))، كما قبل أن يكون لدينا أكثر من نصف المتحققين الصادقين i \(\in\)HSV r,3 قد حددوا vi = H(Br) \(\ell\)). وهذا يعني المزيد أكثر من نصف المتحققين الصادقين i \(\in\)HSV r,2 قاموا بتعيين vi = H(Br \(\ell\))، وهؤلاء (ص، 2) - المدققون حصلوا جميعًا على السيد، 1 \(\ell\). كما لا يستطيع الخصم التمييز بين المتحقق وغير المتحقق، ولا يمكنه استهداف انتشار السيد،1 \(\ell\) إلى (ص، 2) -المحققون دون أن يراها غير المدققين. في الواقع، مع احتمال كبير، أكثر من النصف (أو جزء ثابت جيد) من جميع المستخدمين الشرفاء شاهدوا السيد 1 \(\ell\) بعد انتظار t2 من بداية جولتهم r. من هنا فصاعدا، الوقت π′ اللازم للسيد,1 \(\ell\) للوصول إلى المستخدمين الصادقين المتبقين هو أصغر بكثير من Λ، ومن أجل البساطة لا نفعل ذلك اكتبها في التحليل إذا كانت 4 \(\geq\) \(\geq\) ′، فسيتم إجراء التحليل دون أي تغيير: بحلول نهاية الخطوة 4، كل شيء كان المستخدمون الصادقون قد تلقوا السيد 1 \(\ell\). إذا أصبح حجم الكتلة هائلاً و4 lect < lect ′، ففي الخطوتين 3 و4، يمكن للبروتوكول أن يطلب من كل مدقق الانتظار حتى 2 ′/2 بدلاً من 2 \(\alpha\)، ويستمر التحليل في الصمود.كما كان من قبل، يجب أن يكون اللاعب i' قد تلقى على الأقل رسائل صالحة (r, s∗−1) من النموذج (ESIGj(1), ESIGj(vj), \(\sigma\)r,s∗−1 ي ). مرة أخرى، وفقًا لتعريف s∗، لا توجد خطوة 5 \(\geq\)s′ < s∗with s′ −2 ≡0 mod 3، حيث على الأقل tH (r, s′ −1) - وقع المدققون على 0 و نفس الشيء ضد. وهكذا يتوقف اللاعب دون نشر أي شيء؛ مجموعات ر = ر ƒ؛ ومجموعات CERT الخاص به r هو مجموعة الرسائل الصالحة (r, s∗−1) للبتة 1 التي تلقاها. علاوة على ذلك، فإن أي محقق آخر i HSV r,s قد توقف عند Br = Br ɫ، أو تم تعيين ثنائية = 1 ونشرها (ESIGi(1)، ESIGi(vi)، \(\sigma\)r،s∗ أنا ). منذ أن ساعد اللاعب i′ في الانتشار (r, s∗−1)-الرسائل في CERT الخاص به r حسب الوقت \(\alpha\)r,s∗ أنا ′ + ts∗، مرة أخرى جميع المدققين الصادقين في HSV r,s∗+1 توقف دون نشر أي شيء وقم بتعيين Br = Br . وبالمثل، كل صادق يعرف المستخدمون Br = Br ƒ خلال الفاصل الزمني Ir+1 و تي ص+1 \(\geq\) \(\alpha\)r,s∗ أنا ′ + ts∗\(\leq\)T r + \(\alpha\) + ts∗. الحالة 2.2.أ. يحدث الحدث E.a ولا يوجد مدقق صادق يجب أيضًا أن يتوقف دون نشر أي شيء. في هذه الحالة، لاحظ أن اللاعب يمكن أن يكون لديه CERT r صالح ط∗تتكون من الـTH المطلوب (r, s∗−1)-الرسائل التي يستطيع الخصم جمعها أو إنشاؤها. ومع ذلك الخبيثة وقد لا يساعد القائمون على التحقق في نشر هذه الرسائل، لذا لا يمكننا أن نستنتج أن هؤلاء هم الصادقون سوف يستلمها المستخدمون في الوقت المناسب. في الواقع، |MSV r,s∗−1| من تلك الرسائل قد تكون من المتحققون الخبيثون (r, s∗−1)، الذين لم ينشروا رسائلهم على الإطلاق ويرسلون فقط لهم إلى المحققين الخبيثة في الخطوة ∗. على غرار الحالة 2.1.a، لدينا هنا s∗−2 ≡0 mod 3، الخطوة s∗ هي خطوة من عملة ثابتة إلى 0، والرسائل (r, s∗−1) في CERT r i∗ للبت 0 و v = H(Br \(\ell\)). في الواقع، كل صادق (r, s∗−1) - يوقع المتحققون v، وبالتالي لا يمكن للخصم إنشاء رسائل صالحة (r, s∗−1) لحرف v مختلف. علاوة على ذلك، فإن جميع المدققين الصادقين (r, s∗) انتظروا وقتًا ts∗ ولم يروا أكثر من 2/3 أغلبية للبت 1، مرة أخرى لأن |HSV r,s∗−1| + 4|MSV r,s∗−1| <2ن. وهكذا كل مدقق صادق أنا \(\in\)HSV r،s∗sets bi = 0، vi = H(Br \(\ell\)) بأغلبية الأصوات، وينشر السيد، ق∗ أنا = (ESIGi(0)، ESIGi(H(Br \(\ell\))))، \(\sigma\)r،s∗ أنا ) في الوقت \(\alpha\)r,s∗ أنا + نهاية الخبر∗. الآن فكر في أدوات التحقق الصادقة في الخطوة s∗+ 1 (وهي خطوة ثابتة على العملة إلى 1). إذا يرسل الخصم بالفعل الرسائل في CERT r إلى بعضهم وأسبب لهم ذلك توقف، ثم على غرار الحالة 2.1.a، يعرف جميع المستخدمين الصادقين Br = Br \(\ell\)في الفترة الزمنية الأشعة تحت الحمراء +1 و تي ص+1 \(\geq\)T ص + \(\alpha\) + ts∗+1. بخلاف ذلك، فإن جميع المتحققين الصادقين في الخطوة s∗+1 قد تلقوا جميع رسائل (r, s∗) لـ 0 و ح(ر \(\ell\)) من HSV r,s∗بعد وقت الانتظار ts∗+1، مما يؤدي إلى> 2/3 أغلبية، لأن |HSV r,s∗| > 2|MSV r,s∗|. وبالتالي فإن جميع المدققين في HSV r,s∗+1 ينشرون رسائلهم 0 و ح(ر \(\ell\)) وفقا لذلك. لاحظ أن أدوات التحقق في HSV r,s∗+1 لا تتوقف عند Br = Br \(\ell\)، لأن الخطوة s∗+ 1 ليست خطوة عملة ثابتة إلى 0. الآن فكر في أدوات التحقق الصادقة في الخطوة s∗+2 (وهي خطوة مقلوبة بشكل حقيقي). إذا أرسل الخصم الرسائل في CERT r إلى بعضهم فيوقفهم، ثم مرة أخرى يعرف جميع المستخدمين الشرفاء Br = Br \(\ell\)خلال الفاصل الزمني Ir+1 و تي ص+1 \(\geq\)T ص + \(\alpha\) + ts∗+2.بخلاف ذلك، فإن جميع المتحققين الصادقين في الخطوة s∗+ 2 قد تلقوا جميع رسائل (r, s∗+ 1) الخاصة بـ 0 و ح(ر \(\ell\)) من HSV r,s∗+1 بعد وقت الانتظار ts∗+2، مما يؤدي إلى> 2/3 أغلبية. وهكذا ينشر كل منهم رسائلهم لـ 0 وH(Br \(\ell\)) وعليه: أي يفعلون لا "اقلب العملة" في هذه الحالة. مرة أخرى، لاحظ أنها لا تتوقف دون الانتشار، لأن الخطوة s∗+ 2 ليست خطوة عملة ثابتة إلى 0. أخيرًا، بالنسبة للمتحققين الصادقين في الخطوة s∗+3 (وهي خطوة أخرى من العملات الثابتة إلى 0)، كل شيء منهم قد تلقوا على الأقل رسائل صالحة لـ 0 وH(Br \(\ell\)) من HSV s∗+2، إذا كانوا ينتظرون حقًا الوقت ts∗+3. وبالتالي، ما إذا كان الخصم يرسل الرسائل أم لا في CERT ص i∗ لأي منهم، جميع المدققين في HSV r,s∗+3 يتوقفون عند Br = Br \(\ell\)، بدون نشر أي شيء. اعتمادًا على كيفية تصرفات الخصم، قد يكون لدى البعض منهم CERT r الخاصة بهم والتي تتكون من تلك الرسائل (r، s∗−1) في CERT r أنا∗، والآخرون لديهم CERT الخاصة بهم تتكون من تلك الرسائل (r، s∗+ 2). في أي حال، جميع المستخدمين صادقين تعرف ر = ر \(\ell\)خلال الفاصل الزمني Ir+1 و تي ص+1 \(\geq\)T ص + \(\alpha\) + ts∗+3. الحالة 2.2.ب. يحدث الحدث E.b ولا يوجد مدقق صادق يجب أيضًا أن يتوقف دون نشر أي شيء. التحليل في هذه الحالة مشابه لتلك الموجودة في الحالة 2.1.ب والحالة 2.2.أ، وبالتالي هناك الكثير من التفاصيل تم حذفها. على وجه الخصوص، CERT ص i∗ يتكون من الرسائل المطلوبة (r، s∗−1). بالنسبة للبتة 1 التي يستطيع الخصم جمعها أو توليدها، s∗−2 ≡1 mod 3، الخطوة s∗ هي خطوة العملة الثابتة إلى 1، ولا يمكن لأي مدقق صادق (r، s∗) أن يرى أكثر من 2/3 أغلبية لـ 0. وبالتالي، فإن كل أداة تحقق i \(\in\)HSV r,s∗sets bi = 1 وتنشر mr,s∗ أنا = (ESIGi(1)، ESIGi(vi)، \(\sigma\)r،s∗ أنا ) في الوقت \(\alpha\)r,s∗ أنا + نهاية الخبر∗. على غرار الحالة 2.2.أ، في 3 خطوات إضافية على الأكثر (أي البروتوكول يصل إلى الخطوة s∗+3، وهي خطوة أخرى من العملات الثابتة إلى 1)، جميع المستخدمين الصادقين يعرفون Br = Br ƒ خلال الفاصل الزمني Ir+1. علاوة على ذلك، قد يكون T r+1 \(\geq\)T r++ts∗+1، أو \(\geq\)T r++ts∗+2، أو \(\geq\)T r + lect + ts∗+3، اعتمادًا على متى تكون المرة الأولى التي يتمكن فيها المدقق الصادق من التوقف دون نشر. من خلال الجمع بين الحالات الفرعية الأربع، لدينا أن جميع المستخدمين الصادقين يعرفون B خلال الفترة الزمنية الأشعة تحت الحمراء +1، مع T r +1 \(\geq\)T r + lect + ts∗ في الحالتين 2.1.a و2.1.b، و T r +1 \(\geq\)T r + lect + ts∗+3 في الحالتين 2.2.أ و2.2.ب. يبقى الحد العلوي s∗ وبالتالي T r+1 للحالة 2، ونحن نفعل ذلك من خلال النظر في كيفية في كثير من الأحيان يتم تنفيذ خطوات العملة المقلوبة فعليًا في البروتوكول: أي، وفي الواقع، قام بعض المحققين الصادقين بقلب العملة المعدنية. على وجه الخصوص، قم بإصلاح خطوة العملة المعكوسة بشكل تعسفي s' (على سبيل المثال، 7 \(\geq\)s′ \(\geq\)m + 2 و s′ −2 ≡2 mod 3)، ودع \(\ell\)′ \(\triangleq\)arg minj\(\in\)SV r,s′−1 H(\(\sigma\)r,s′−1 ي ). الآن دعونا نفترض s' < s∗، لأنه بخلاف ذلك لن يقوم أي مدقق نزيه برمي العملة المعدنية في الخطوات ′، وفقًا لما سبق المناقشات. من خلال تعريف SV r,s′−1، قيمة hash لبيانات اعتماد \(\ell\)′ هي أيضًا الأصغر بين كافة المستخدمين في PKr−k. نظرًا لأن الدالة hash عشوائية oracle، فمن المثالي أن يكون اللاعب \(\ell\)′ صادقًا مع احتمال على الأقل ح. كما سنبين لاحقا، حتى لو بذل الخصم قصارى جهده للتنبؤ إخراج العشوائي oracle وإمالة الاحتمال، اللاعب \(\ell\)′ لا يزال صادقًا مع الاحتماليةعلى الأقل ph = h2(1 + h −h2). أدناه نعتبر الحالة عندما يحدث ذلك بالفعل: أي، \(\ell\)′ \(\in\)HSV r,s′−1. لاحظ أن كل مدقق صادق i \(\in\)HSV r,s′ قد تلقى جميع الرسائل من HSV r,s′−1 بواسطة الوقت \(\alpha\)r,s' أنا + تيسي'. إذا احتاج اللاعب إلى رمي عملة معدنية (أي أنه لم ير أغلبية تزيد عن 2/3) نفس البتة b \(\in\){0, 1})، ثم يقوم بتعيين bi = lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )). إذا كان هناك صادق آخر المدقق i′ \(\in\)HSV r,s′ الذي رأى > أغلبية 2/3 للقليل b \(\in\){0, 1}، ثم عن طريق الخاصية (د) من Lemma 5.5، لم يكن هناك مدقق صادق في HSV r,s′ ليرى أكثر من 2/3 أغلبية لبعض الوقت ب′̸= ب. منذ lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )) = b مع احتمال 1/2، جميع المتحققين الصادقين في نطاق HSV r,s′ اتفاق على ب مع احتمال 1/2. وبطبيعة الحال، إذا لم يكن مثل هذا المتحقق موجودا، فهذا يعني أن كل شيء يتفق المدققون الصادقون في HSV r,s′ على البتة lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )) مع احتمال 1. بدمج احتمالية \(\ell\)′ \(\in\)HSV r,s′−1، لدينا أن المتحققين الصادقين في HSV r,s′ التوصل إلى اتفاق بشأن البت b \(\in\){0, 1} مع احتمال ph على الأقل 2 = ح2(1+ح−ح2) 2 . علاوة على ذلك، من خلال الاستقراء على تصويت الأغلبية كما كان من قبل، فإن جميع المتحققين الصادقين في HSV r,s' لديهم مجموعة السادس الخاصة بهم أن يكون ح(ر \(\ell\)). وبالتالي، بمجرد التوصل إلى اتفاق بشأن b في الخطوة s′، يكون T r+1 كذلك إما \(\geq\)T r + lect + ts′+1 أو \(\geq\)T r + lect + ts′+2، اعتمادًا على ما إذا كان b = 0 أو b = 1، بعد تحليل الحالتين 2.1.a و2.1.b. في على وجه الخصوص، لن يتم تنفيذ أي خطوة أخرى مقلوبة العملة بشكل حقيقي: أي أن القائمين على التحقق في ولا تزال مثل هذه الخطوات تتحقق من أنهم هم المتحققون، وبالتالي ينتظرون، لكنهم جميعًا سيتوقفون دون ذلك نشر أي شيء. وفقًا لذلك، قبل الخطوة s∗، يتم توزيع عدد مرات تنفيذ خطوات Coin-GenuinelyFlipped وفقًا للمتغير العشوائي Lr. ترك الخطوة s′ تكون الخطوة الأخيرة التي تم قلب العملة بشكل حقيقي وفقًا لـ Lr، من خلال إنشاء البروتوكول لدينا ق′ = 4 + 3Lr. متى يجب على الخصم أن يجعل الخطوة تحدث إذا أراد تأخير T r+1 بنفس القدر ممكن؟ يمكننا حتى أن نفترض أن الخصم يعرف إدراك Lr مقدمًا. إذا s∗> s′ فلا فائدة منه، لأن المحققين الصادقين قد توصلوا بالفعل إلى اتفاق في الخطوة س'. من المؤكد أنه في هذه الحالة s∗ ستكون s′ +1 أو s′ +2، مرة أخرى اعتمادًا على ما إذا كانت b = 0 أو b = 1. ومع ذلك، هذه هي الحالتان 2.1.a و2.1.b، والناتج T r+1 هو بالضبط نفس كما في هذه الحالة. وبشكل أكثر دقة، T r+1 \(\geq\)T r + lect + ts∗\(\geq\)T r + lect + ts'+2. إذا كانت s∗< s′ −3 — أي s∗ موجودة قبل الخطوة الثانية الأخيرة التي تم قلب العملة بها بالفعل — إذن بواسطة تحليل الحالتين 2.2.أ و2.2.ب، T r+1 \(\geq\)T r + lect + ts∗+3 < T r + lect + ts′. وهذا يعني أن الخصم يجعل الاتفاق على Br يحدث بشكل أسرع. إذا كانت s∗= s′ −2 أو s′ −1 —أي خطوة العملة الثابتة إلى 0 أو خطوة العملة الثابتة إلى 1 مباشرة قبل الخطوة s′ — ثم من خلال تحليل الحالات الفرعية الأربع، المتحققون الصادقون فيها لم تعد الخطوات قادرة على رمي العملات المعدنية بعد الآن، لأنها إما توقفت دون أن تنتشر، أو شاهدت أكثر من 2/3 أغلبية لنفس البت ب. لذلك لدينا T r+1 \(\geq\)T r + lect + ts∗+3 \(\geq\)T r + lect + ts'+2.باختصار، بغض النظر عن ما هو موجود، لدينا تي ص+1 \(\geq\)T ص + روس + ts'+2 = تي ص + LA + t3Lr+6 = تي ص + Λ + (2(3Lr + 6) −3)Λ + Λ = تي ص + (6 لتر + 10) Λ + Λ، كما أردنا أن نظهر. أسوأ الحالات هي عندما تحدث s∗= s′ −1 والحالة 2.2.b. الجمع بين الحالتين 1 و 2 من بروتوكول BA الثنائي، يحمل Lemma 5.3. ■ 5.9 أمن البذرة Qr واحتمال وجود قائد صادق يبقى أن نثبت Lemma 5.4. تذكر أن أدوات التحقق في الجولة r مأخوذة من PKr−k و يتم اختيارها وفقا للكمية Qr−1. سبب تقديم معلمة الرجوع إلى الخلف k هو التأكد من ذلك، عند الجولة r −k، عندما يكون الخصم قادرًا على إضافة مستخدمين ضارين جدد إلى PKr−k، لا يمكنه التنبؤ بالكمية Qr−1 إلا باحتمال ضئيل. لاحظ أن الدالة hash هي دالة عشوائية oracle وQr−1 هي أحد مدخلاتها عند اختيار أدوات التحقق للجولة r. وبالتالي، بغض النظر عن كيفية إضافة المستخدمين الضارين إلى PKr−k، من وجهة نظر الخصم لا يزال يتم اختيار واحد منهم ليكون المدقق في خطوة الجولة r مع الاحتمال المطلوب p (أو ص1 للخطوة 1). بتعبير أدق، لدينا ليما التالية. ليما 5.6. مع k = O(log1/2 F)، لكل جولة r، مع احتمالية ساحقة للخصم لم يستعلم عن Qr−1 إلى oracle العشوائي عند الجولة r −k. دليل. نمضي قدما عن طريق الاستقراء. افترض أنه في كل جولة \(\gamma\) < r، لم يستعلم الخصم Q\(\gamma\)−1 إلى oracle العشوائي في الجولة \(\gamma\) −k.21 فكر في اللعبة الذهنية التالية التي لعبها الخصم عند الجولة r −k، في محاولة للتنبؤ بـ Qr−1. في الخطوة 1 من كل جولة \(\gamma\) = r −k, . . . ، r −1، في ضوء Q\(\gamma\)−1 محدد لم يتم الاستعلام عنه بشكل عشوائي oracle، من خلال ترتيب اللاعبين i \(\in\)PK\(\gamma\)−k وفقًا لقيم hash H(SIGi(\(\gamma\), 1, Q\(\gamma\)−1)) على نحو متزايد، نحصل على التقليب العشوائي على PK\(\gamma\)−k. بحكم التعريف، الزعيم \(\ell\) \(\gamma\) هو المستخدم الأول في التقليب وهو صادق في الاحتمالية h. علاوة على ذلك، عندما يكون PK\(\gamma\)−k كبيرًا يكفي، بالنسبة لأي عدد صحيح x \(\geq\)1، احتمال أن يكون مستخدمو x الأوائل في التقليب جميعهم خبيث ولكن (x + 1)st صادق هو (1 −h)xh. إذا كانت \(\ell\) \(\gamma\) صادقة، فإن Q\(\gamma\) = H(SIG\(\ell\) \(\gamma\)(Q\(\gamma\)−1), \(\gamma\)). حيث أن الخصم لا يستطيع تزوير التوقيع من \(\ell\) \(\gamma\)، يتم توزيع Q\(\gamma\) بشكل موحد عشوائيًا من وجهة نظر الخصم، باستثناء مع احتمال صغير بشكل كبير، لم يتم الاستعلام عن H عند الجولة r -k. منذ كل Q\(\gamma\)+1، Q\(\gamma\)+2، . . . ، Qr−1 على التوالي هو إخراج H مع Q\(\gamma\)، Q\(\gamma\)+1، . . . ، Qr−2 كأحد المدخلات، تبدو جميعها عشوائية بالنسبة للخصم ولا يمكن للخصم الاستعلام عن Qr−1 إلى H عند جولة ص -ك. وبناءً على ذلك، فهي الحالة الوحيدة التي يستطيع فيها الخصم التنبؤ بـ Qr−1 باحتمالية جيدة عند الجولة r−k هو عندما يكون جميع القادة \(\ell\)r−k, . . . ، \(\ell\)r−1 ضارة. فكر مرة أخرى في الجولة \(\gamma\) \(\in\){r−k . . . ، ص−1} والتقليب العشوائي على PK\(\gamma\)−k الناجم عن قيم hash المقابلة. إذا للبعض x \(\geq\)2، أول مستخدمي x −1 في التقليب جميعهم ضارون وx-th صادقون، ثم لدى الخصم x اختيارات ممكنة لـ Q\(\gamma\): أي من النموذج H(SIGi(Q\(\gamma\)−1, \(\gamma\)))، حيث i هو واحد من 21 بما أن k عدد صحيح صغير، دون فقدان العمومية يمكن للمرء أن يفترض أنه تم تشغيل الجولات k الأولى من البروتوكول في ظل بيئة آمنة وتصح الفرضية الاستقرائية لتلك الجولات. 22أي الأسي في طول ناتج H. لاحظ أن هذا الاحتمال أصغر بكثير من F.أول مستخدمي x−1 الضارين، من خلال جعل اللاعب i هو القائد الفعلي للجولة \(\gamma\)؛ أو H(Q\(\gamma\)−1, \(\gamma\)) بواسطة إجبار B\(\gamma\) = B\(\gamma\) . وبخلاف ذلك، سيكون قائد الجولة \(\gamma\) هو أول مستخدم صادق في عملية التقليب ويصبح Qr−1 غير قابل للتنبؤ بالخصم. أي من الخيارات x المذكورة أعلاه في Q\(\gamma\) يجب على الخصم اتباعها؟ لمساعدة الخصم أجب على هذا السؤال، في اللعبة الذهنية نجعله أقوى مما هو عليه بالفعل هو، على النحو التالي. أولاً وقبل كل شيء، في الواقع، لا يستطيع الخصم حساب hash للمستخدم الصادق التوقيع، وبالتالي لا يمكن تحديد عدد x(Q\(\gamma\)) للمستخدمين الضارين في البداية لكل Q\(\gamma\) من التقليب العشوائي في الجولة \(\gamma\) + 1 الناجم عن Q\(\gamma\). في اللعبة العقلية، نعطيه أرقام x(Q\(\gamma\)) مجانا. ثانيًا، في الواقع، وجود أول x من المستخدمين في عملية التقليب كونهم خبيثين لا يعني بالضرورة أنه من الممكن أن يصبحوا جميعًا قادة، لأن hash يجب أيضًا أن تكون قيم توقيعاتهم أقل من p1. لقد تجاهلنا هذا القيد العقلي اللعبة، مما يمنح الخصم المزيد من المزايا. من السهل أن نرى أنه في اللعبة الذهنية، الخيار الأمثل للخصم، والذي يُشار إليه بـ ˆQ\(\gamma\)، هو الذي ينتج أطول تسلسل للمستخدمين الضارين في بداية العشوائية التقليب في الجولة \(\gamma\) + 1. في الواقع، بالنظر إلى Q\(\gamma\) محدد، لا يعتمد البروتوكول على Q\(\gamma\)−1 بعد الآن ويمكن للخصم التركيز فقط على التقليب الجديد في الجولة \(\gamma\) + 1، والتي تحتوي على نفس التوزيع لعدد المستخدمين الضارين في البداية. وفقا لذلك، في كل جولة \(\gamma\)، فإن ˆQ\(\gamma\) المذكورة أعلاه تمنحه أكبر عدد من الخيارات لـ Q\(\gamma\)+1 وبالتالي يزيدها إلى الحد الأقصى احتمال أن يكون القادة المتعاقبون جميعهم خبيثين. لذلك، في اللعبة الذهنية، يتبع الخصم سلسلة ماركوف من الجولة r −k لتقريب r −1، مع مساحة الحالة {0} \(\cup\){x : x \(\geq\)2}. تمثل الحالة 0 حقيقة أن المستخدم الأول في التبديل العشوائي في الجولة الحالية \(\gamma\) يكون صادقًا، وبالتالي يفشل الخصم في لعبة للتنبؤ Qr−1؛ وتمثل كل حالة x \(\geq\)2 حقيقة أن المستخدمين x −1 الأوائل في التقليب خبيث وx صادق، وبالتالي لدى الخصم خيارات x لـ Q\(\gamma\). ال احتمالات الانتقال P(x, y) هي كما يلي. • P(0, 0) = 1 و P(0, y) = 0 لأي y \(\geq\)2. وهذا يعني أن الخصم يفشل في اللعبة مرة واحدة المستخدم في التقليب يصبح صادقا. • P(x, 0) = hx لأي x \(\geq\)2. أي أنه مع الاحتمال hx، فإن جميع التباديل العشوائية x موجودة كان مستخدموهم الأوائل صادقين، وبالتالي يفشل الخصم في اللعبة في الجولة التالية. • بالنسبة لأي x \(\geq\)2 وy \(\geq\)2، P(x, y) هو احتمال أنه من بين التباديل العشوائية x الناجم عن خيارات x لـ Q\(\gamma\)، أطول تسلسل للمستخدمين الضارين في بداية بعضها هو y −1، وبالتالي لدى الخصم خيارات y لـ Q\(\gamma\)+1 في الجولة التالية. هذا هو، ف(س، ص) = ص−1 X أنا = 0 (1 - ح) اه !x - ص−2 X أنا = 0 (1 - ح) اه !x = (1 −(1 −h)y)x −(1 −(1 −h)y−1)x. لاحظ أن الحالة 0 هي حالة الامتصاص الفريدة في مصفوفة الانتقال P، وفي كل حالة أخرى x لديه احتمال إيجابي للذهاب إلى 0. نحن مهتمون بالحد الأعلى للرقم k الجولات اللازمة لسلسلة ماركوف لتتقارب إلى 0 مع احتمالية ساحقة: أي لا بغض النظر عن الحالة التي تبدأ فيها السلسلة، مع احتمال كبير أن يخسر الخصم اللعبة ويفشل في التنبؤ Qr−1 عند الجولة r −k. ضع في اعتبارك مصفوفة الانتقال P (2) \(\triangleq\)P \(\cdot\) P بعد جولتين. من السهل أن نرى أن P (2)(0, 0) = 1 وP (2)(0, x) = 0 لأي x \(\geq\)2. لأي x \(\geq\)2 و y \(\geq\)2، حيث أن P(0, y) = 0، لدينا P (2)(x, y) = P(x, 0)P(0, y) + X ض\(\geq\)2 ف(س، ض) ف(ض، ص) = X ض\(\geq\)2 ف(س، ض) ف(ض، ص).بترك ¯h \(\triangleq\)1 −h، لدينا P(x, y) = (1 −¯hy)x −(1 −¯hy−1)x و ف (2)(س، ص) = X ض\(\geq\)2 [(1 −¯hz)x −(1 −¯hz−1)x][(1 −¯hy)z −(1 −¯hy−1)z]. أدناه نحسب نهاية P (2)(x,y) ف (س، ص) كما h يذهب إلى 1 —أي، ¯h يذهب إلى 0. لاحظ أن الأعلى ترتيب ¯h في P(x, y) هو ¯hy−1، مع معامل x. وبناء على ذلك، ليم ح → 1 ف (2)(س، ص) ف(س، ص) = ليم ¯ح→0 ف (2)(س، ص) ف(س، ص) = ليم ¯ح→0 ف (2)(س، ص) x¯hy−1 + O(¯hy) = ليم ¯ح→0 ص z\(\geq\)2[x¯hz−1 + O(¯hz)][z¯hy−1 + O(¯hy)] x¯hy−1 + O(¯hy) = ليم ¯ح→0 2x¯hy + O(¯hy+1) x¯hy−1 + O(¯hy) = ليم ¯ح→0 2x¯hy x¯hy−1 = lim ¯ح→0 2¯ح = 0. عندما يكون h قريبًا بدرجة كافية من 1,23 يكون لدينا ف (2)(س، ص) ف(س، ص) \(\geq\)1 2 لأي x \(\geq\)2 و y \(\geq\)2. عن طريق الاستقراء، لأي k > 2، P (k) \(\triangleq\)P k هكذا • P (k)(0, 0) = 1، P (k)(0, x) = 0 لأي x \(\geq\)2، و • لأي x \(\geq\)2 وy \(\geq\)2، P (ك)(x, y) = P (k−1)(x, 0)P(0, y) + X ض\(\geq\)2 P (k−1)(x, z)P(z, y) = X ض\(\geq\)2 ف (ك−1)(س، ض)ف(ض، ص) \(\geq\) X ض\(\geq\)2 ف(س، ض) 2k−2 \(\cdot\) ف(ض، ص) = ف (2)(س، ص) 2k−2 \(\geq\)P(س، ص) 2ك−1 . نظرًا لأن P (x، y) \(\geq\)1، بعد جولات 1−log2 F، فإن احتمال الانتقال إلى أي حالة y \(\geq\)2 لا يكاد يذكر، بدءًا من أي حالة x \(\geq\)2. على الرغم من وجود العديد من هذه الحالات، فمن السهل رؤية ذلك ليم ص →+∞ ف(س، ص) ف(س، ص + 1) = ليم ص →+∞ (1 −¯hy)x −(1 −¯hy−1)x (1 −¯hy+1)x −(1 −¯hy)x = ليم ص →+∞ ¯hy−1 −¯hy ¯هي −¯هي+1 = 1 ¯ ح = 1 1 - ح. لذلك فإن كل صف x من مصفوفة الانتقال P يتناقص كتسلسل هندسي بمعدل 1 1−ح> 2 عندما تكون y كبيرة بدرجة كافية، وينطبق الشيء نفسه على P (k). وفقا لذلك، عندما تكون k كبيرة بما فيه الكفاية ولكن لا تزال بترتيب log1/2 F، P y\(\geq\)2 P (k)(x, y) < F لأي x \(\geq\)2. وهذا هو، مع احتمال كبير يخسر الخصم اللعبة ويفشل في التنبؤ Qr−1 عند الجولة r −k. لـ h \(\in\)(2/3, 1]، أكثر يظهر التحليل المعقد أن هناك ثابت C أكبر بقليل من 1/2، بحيث يكون كافيًا ليأخذ k = O(logC F). وهكذا يحمل Lemma 5.6. ■ ليما 5.4. (أعيد ذكرها) الخصائص المعطاة 1–3 لكل جولة قبل r، ph = h2(1 + h −h2) لـ Lr، والقائد \(\ell\)r صادق مع احتمال ph على الأقل. 23 على سبيل المثال، h = 80% كما هو مقترح من خلال الاختيارات المحددة للمعلمات.

دليل. بعد Lemma 5.6، لا يستطيع الخصم التنبؤ بعودة Qr−1 إلى الجولة r −k إلا مع احتمال ضئيل. لاحظ أن هذا لا يعني أن احتمالية وجود قائد نزيه ضئيلة كل جولة. في الواقع، نظرًا لـ Qr−1، اعتمادًا على عدد المستخدمين الضارين الموجودين في البداية التقليب العشوائي لـ PKr−k، قد يكون لدى الخصم أكثر من خيار لـ Qr و وبالتالي يمكن أن يزيد من احتمال وجود زعيم خبيث في الجولة r + 1 — مرة أخرى نعطيه بعض المزايا غير الواقعية كما في Lemma 5.6، وذلك لتبسيط التحليل. ومع ذلك، بالنسبة لكل Qr−1 لم يتم الاستعلام عنه إلى H بواسطة الخصم عند الجولة r −k، لـ أي x \(\geq\)1، مع احتمال (1 −h)x−1h ظهور أول مستخدم صادق في الموضع x في النتيجة الناتجة التقليب العشوائي لـ PKr−k. عندما يكون x = 1، يكون احتمال وجود قائد صادق في الجولة r + 1 هو في الواقع ح؛ بينما عندما تكون x = 2، يكون لدى الخصم خياران لـ Qr والاحتمال الناتج هو h2. فقط من خلال النظر في هاتين الحالتين، لدينا احتمال وجود زعيم صادق في الجولة r + 1 يكون على الأقل h \(\cdot\) h + (1 −h)h \(\cdot\) h2 = h2(1 + h −h2) حسب الرغبة. لاحظ أن الاحتمال أعلاه يأخذ في الاعتبار فقط العشوائية في البروتوكول من الجولة r -k لجولة ص. عندما تؤخذ كل العشوائية من الجولة 0 إلى الجولة r في الاعتبار، فإن Qr−1 يكون حتى أنه أقل قابلية للتنبؤ من قبل الخصم، كما أن احتمال وجود زعيم صادق في الجولة r + 1 هو عند الأقل h2(1 + h −h2). استبدال r + 1 بـ r وإزاحة كل شيء مرة أخرى بمقدار جولة واحدة، القائد \(\ell\)r صادق مع احتمالية لا تقل عن h2(1 + h −h2)، حسب الرغبة. وبالمثل، في كل خطوة من خطوات قلب العملة بشكل حقيقي، يكون "قائد" تلك الخطوة - وهو المتحقق في SV r,s التي تحتوي بيانات اعتمادها على أصغر قيمة hash، تكون صادقة مع احتمالية لا تقل عن h2(1 + ح -ح2). وبالتالي ph = h2(1 + h −h2) لـ Lr وLemma 5.4. ■

Algorand ′

1 ในส่วนนี้ เราสร้างเวอร์ชันของ Algorand ′ ที่ทำงานภายใต้สมมติฐานต่อไปนี้ ข้อสันนิษฐานของผู้ใช้ส่วนใหญ่ที่ซื่อสัตย์: มากกว่า 2/3 ของผู้ใช้ในแต่ละ PKr มีความซื่อสัตย์ ในส่วนที่ 8 เราจะแสดงวิธีแทนที่สมมติฐานข้างต้นด้วย Honest Majority ที่ต้องการ สมมติฐานเรื่องเงิน 5.1 สัญลักษณ์และพารามิเตอร์เพิ่มเติม สัญกรณ์ • m \(\in\)Z+: จำนวนขั้นตอนสูงสุดในโปรโตคอล BA ไบนารี ซึ่งเป็นผลคูณของ 3 • Lr \(\leq\)m/3: ตัวแปรสุ่มที่แสดงถึงจำนวนการทดลองเบอร์นูลลีที่จำเป็นในการดู 1 เมื่อการทดลองแต่ละครั้งมีค่า 1 ด้วยความน่าจะเป็น ph 2 และมีการทดลองสูงสุด m/3 หากการทดลองทั้งหมดล้มเหลว ซ้าย \(\triangleq\)m/3 Lr จะถูกใช้เพื่อขอบเขตบนของเวลาที่จำเป็นในการสร้างบล็อก Br • TH = 2n 3 + 1: จำนวนลายเซ็นที่จำเป็นในเงื่อนไขการสิ้นสุดของโปรโตคอล • CERT r: ใบรับรองสำหรับ Br. เป็นชุดลายเซ็นต์ของ H(Br) จากผู้ตรวจสอบที่เหมาะสม รอบร. พารามิเตอร์ • ความสัมพันธ์ระหว่างพารามิเตอร์ต่างๆ — สำหรับแต่ละขั้นตอน s > 1 ของรอบ r, n จะถูกเลือก ดังนั้น ด้วยความน่าจะเป็นอย่างล้นหลาม |HSV r,s| > 2|MSV r,s| และ |HSV r,s| + 4|MSV r,s| <2น. ยิ่งค่า h ใกล้ 1 มากเท่าใด n ก็ต้องมีค่าน้อยลงเท่านั้น โดยเฉพาะเราใช้ (variants ของ) ขอบเขตเชอร์โนฟเพื่อให้แน่ใจว่าเงื่อนไขที่ต้องการมีความน่าจะเป็นอย่างล้นหลาม — m ถูกเลือกโดยที่ Lr < m/3 มีความน่าจะเป็นอย่างท่วมท้น • ตัวอย่างตัวเลือกของพารามิเตอร์ที่สำคัญ — ฉ = 10−12. — n asym1500, k = 40 และ m = 1805.2 การใช้คีย์ชั่วคราวใน Algorand ′ 1 ดังที่ได้กล่าวไปแล้ว เราหวังว่าผู้ตรวจสอบ i \(\in\)SV r,s จะลงนามข้อความของเขาแบบดิจิทัล mr,s ฉัน ของขั้นตอน s ในรอบ r สัมพันธ์กับคีย์สาธารณะชั่วคราว pkr,s ฉัน ใช้คีย์ลับชั่วคราว skr,s ฉัน นั่น เขาทำลายทันทีหลังใช้ ดังนั้นเราจึงจำเป็นต้องมีวิธีการที่มีประสิทธิภาพเพื่อให้แน่ใจว่าผู้ใช้ทุกคนสามารถทำได้ ตรวจสอบว่า pkr,s ฉัน เป็นกุญแจสำคัญในการใช้ตรวจสอบลายเซ็นของนาย ฉัน เราทำเช่นนั้นโดย a (ให้ดีที่สุด ความรู้ของเรา) การใช้รูปแบบลายเซ็นตามข้อมูลประจำตัวแบบใหม่ ในระดับสูง ในรูปแบบดังกล่าว หน่วยงานกลาง A จะสร้างคีย์หลักสาธารณะ PMK และรหัสลับที่เกี่ยวข้อง SMK เมื่อพิจารณาถึงตัวตน U ของผู้เล่น U การคำนวณ ผ่าน SMK ซึ่งเป็นคีย์ลายเซ็นลับ skU ที่สัมพันธ์กับคีย์สาธารณะ U และมอบ skU ให้กับแบบส่วนตัว U. (อันที่จริง ในรูปแบบลายเซ็นดิจิทัลตามข้อมูลประจำตัว กุญแจสาธารณะของผู้ใช้ U คือ U นั่นเอง!) ด้วยวิธีนี้ หาก A ทำลาย SMK หลังจากคำนวณคีย์ลับของผู้ใช้ที่เขาต้องการเปิดใช้งาน สร้างลายเซ็นดิจิทัล และไม่เก็บรหัสลับที่คำนวณไว้ ดังนั้น U จึงเป็นคนเดียวที่ สามารถเซ็นข้อความแบบดิจิทัลที่เกี่ยวข้องกับกุญแจสาธารณะ U ได้ ดังนั้นใครก็ตามที่รู้จัก "ชื่อ U" รู้กุญแจสาธารณะของ U โดยอัตโนมัติ และสามารถตรวจสอบลายเซ็นของ U ได้ (อาจใช้ the PMK คีย์หลักสาธารณะ) ในแอปพลิเคชันของเรา สิทธิ์ A คือผู้ใช้ i และชุดของผู้ใช้ที่เป็นไปได้ทั้งหมด U เกิดขึ้นพร้อมกัน คู่ขั้นบันได (r, s) ใน —say— S = {i}\(\times\){r′, . . , r′ +106}\(\times\){1, . . . , m+3} โดยที่ r′ ถูกกำหนดไว้ ปัดเศษ และ m + 3 ขอบเขตบนของจำนวนก้าวที่อาจเกิดขึ้นภายในหนึ่งรอบ นี้ ทาง pkr,s ฉัน \(\triangleq\)(i, r, s) เพื่อให้ทุกคนเห็นลายเซ็นต์ i SIGr,s พีเคอาร์เอส ฉัน (นายส ฉัน ) สามารถทำได้อย่างท่วมท้น ความน่าจะเป็น ให้ตรวจสอบทันทีสำหรับล้านรอบแรก r ต่อไปนี้ r′ กล่าวอีกนัยหนึ่ง ฉันจะสร้าง PMK และ SMK ก่อน แล้วเขาก็ประชาสัมพันธ์ว่า PMK คือผมเจ้านาย กุญแจสาธารณะสำหรับทุกรอบ r \(\in\)[r′, r′ + 106] และใช้ SMK เพื่อสร้างและจัดเก็บความลับเป็นการส่วนตัว คีย์ skr,s ฉัน สำหรับแต่ละสาม (i, r, s) \(\in\)S เสร็จแล้วเขาทำลาย SMK หากเขาตัดสินแล้วว่าไม่ใช่ เป็นส่วนหนึ่งของ SV r,s จากนั้นฉันก็อาจทิ้ง skr,s ไว้ ฉัน เพียงอย่างเดียว (เนื่องจากโปรโตคอลไม่ต้องการให้เขาตรวจสอบสิทธิ์) ข้อความใด ๆ ในขั้นตอนที่ s ของรอบ r) อย่างอื่นฉันใช้ skr,s ก่อน ฉัน เพื่อลงนามข้อความของเขาแบบดิจิทัล ฉัน และ จากนั้นทำลาย skr,s ฉัน โปรดทราบว่าฉันสามารถเผยแพร่คีย์หลักสาธารณะคีย์แรกของเขาได้เมื่อเขาเข้าสู่ระบบครั้งแรก นั่นคือ การจ่ายแบบเดียวกัน \(\wp\)ที่นำ i เข้าสู่ระบบ (ที่รอบ r′ หรือที่รอบที่ใกล้กับ r′) ก็อาจจะเช่นกัน ระบุตามคำร้องขอของฉันว่า i เป็นคีย์หลักสาธารณะสำหรับรอบใด ๆ r \(\in\)[r′, r′ + 106] คือ PMK — เช่น โดย รวมถึงคู่ของแบบฟอร์ม (PMK, [r′, r′ + 106]) โปรดทราบด้วยว่า เนื่องจาก m + 3 คือจำนวนก้าวสูงสุดในรอบ โดยสมมติว่าเป็นรอบ ใช้เวลาสักครู่ กุญแจชั่วคราวที่ผลิตออกมาจะคงอยู่ได้เกือบสองปี ในเวลาเดียวกัน เวลา กุญแจลับชั่วคราวเหล่านี้จะใช้เวลาไม่นานในการสร้าง การใช้เส้นโค้งรูปไข่ ระบบที่มีคีย์ 32B แต่ละคีย์ลับจะถูกคำนวณภายในเวลาไม่กี่ไมโครวินาที ดังนั้น ถ้า m + 3 = 180 ดังนั้นคีย์ลับทั้งหมด 180M จึงสามารถคำนวณได้ภายในเวลาไม่ถึงหนึ่งชั่วโมง เมื่อรอบปัจจุบันเข้าใกล้ r′ + 106 เพื่อรองรับล้านรอบถัดไป i สร้างคู่ใหม่ (PMK′, SMK′) และแจ้งให้ทราบว่ากุญแจชั่วคราวถัดไปของเขาคืออะไร —ตัวอย่าง— ให้ SIGi(PMK′, [r′ + 106 + 1, r′ + 2 \(\cdot\) 106 + 1]) เข้าบล็อกใหม่ โดยอาจเป็น a “ธุรกรรม” แยกกันหรือเป็นข้อมูลเพิ่มเติมบางส่วนที่เป็นส่วนหนึ่งของการชำระเงิน โดยการทำเช่นนั้น ฉันแจ้งให้ทุกคนทราบว่าเขา/เธอควรใช้ PMK′ เพื่อตรวจสอบลายเซ็นชั่วคราวของฉันในครั้งต่อไป ล้านรอบ และอื่นๆ (โปรดทราบว่า การปฏิบัติตามแนวทางพื้นฐานนี้ จะมีวิธีอื่นๆ ในการนำคีย์ชั่วคราวไปใช้โดยไม่ต้องใช้ การใช้ลายเซ็นตามข้อมูลประจำตัวเป็นไปได้อย่างแน่นอน ตัวอย่างเช่น ผ่าน Merkle trees.16) 16ในวิธีนี้ ฉันสร้างคู่คีย์ลับสาธารณะ (pkr,s ฉัน , skr, s ฉัน ) สำหรับแต่ละคู่แบบปัดเศษ (r, s) ใน —say—วิธีอื่นๆ ในการนำคีย์ชั่วคราวไปใช้นั้นเป็นไปได้อย่างแน่นอน เช่น ผ่าน Merkle trees 5.3 จับคู่ขั้นตอนของ Algorand ′ 1 กับ BA⋆ อย่างที่เราบอกไป รอบใน Algorand ′ 1 มีมากที่สุด m + 3 ขั้นตอน ขั้นตอนที่ 1 ในขั้นตอนนี้ ผู้ที่มีศักยภาพเป็นผู้นำแต่ละคน ฉันจะคำนวณและเผยแพร่บล็อกผู้สมัครของเขา Br ฉัน พร้อมด้วยหนังสือรับรองของเขาเอง \(\sigma\)r,1 ฉัน โปรดจำไว้ว่าข้อมูลรับรองนี้ระบุถึง i อย่างชัดเจน ที่เป็นเช่นนี้ เพราะ \(\sigma\)r,1 ฉัน \(\triangleq\)SIGi(r, 1, Qr−1) ผู้ตรวจสอบที่เป็นไปได้ฉันยังเผยแพร่ลายเซ็นดิจิทัลที่เหมาะสมของ H(Br ซึ่งเป็นส่วนหนึ่งของข้อความของเขาด้วย ฉัน) ไม่ได้เกี่ยวข้องกับการชำระเงินหรือหนังสือรับรอง ลายเซ็นของฉันนี้สัมพันธ์กับสาธารณะชั่วคราวของเขา คีย์ pkr,1 ฉัน : นั่นคือเขาเผยแพร่ siggpkr,1 ฉัน (H(Br ฉัน )) ตามแบบแผนของเรา แทนที่จะเผยแพร่บรา ฉัน และ sigpkr,1 ฉัน (H(Br ฉัน )) เขาสามารถมีได้ เผยแพร่ SIGpkr,1 ฉัน (H(Br ฉัน )) อย่างไรก็ตาม ในการวิเคราะห์ของเรา เราจำเป็นต้องเข้าถึงได้อย่างชัดเจน ซิกพีอาร์,1 ฉัน (H(Br ฉัน )) ขั้นตอนที่ 2 ในขั้นตอนนี้ แต่ละผู้ยืนยันที่ฉันตั้งค่า ër ฉันเป็นผู้นำที่มีศักยภาพซึ่งมีใบรับรอง hashed มีขนาดเล็กที่สุดและ Br i เป็นบล็อกที่เสนอโดย LRr ฉัน เนื่องจากเพื่อประโยชน์ด้านประสิทธิภาพ เราจึง ต้องการเห็นด้วยกับ H(Br) แทนที่จะเห็นด้วยกับ Br โดยตรง ฉันเผยแพร่ข้อความที่เขาต้องการ แพร่กระจายในขั้นตอนแรกของ BA⋆ด้วยค่าเริ่มต้น v′ ผม = H(br ฉัน) นั่นคือเขาเผยแพร่ v′ ฉัน หลังจากเซ็นสัญญาชั่วคราวแน่นอน (กล่าวคือหลังจากลงนามแล้วสัมพันธ์กับช่วงเวลาชั่วคราวที่ถูกต้อง พับลิกคีย์ ซึ่งในกรณีนี้คือ pkr,2 ฉัน .) แน่นอน ฉันก็ส่งข้อมูลรับรองของเขาเองด้วย เนื่องจากขั้นตอนแรกของ BA⋆ประกอบด้วยขั้นตอนแรกของโปรโตคอลฉันทามติแบบให้คะแนน GC ขั้นตอน 2 ของ Algorand ′ สอดคล้องกับขั้นตอนแรกของ GC ขั้นตอนที่ 3 ในขั้นตอนนี้ แต่ละผู้ตรวจสอบ i \(\in\)SV r,2 ดำเนินการขั้นตอนที่สองของ BA⋆ นั่นคือเขาส่ง ข้อความเดียวกับที่เขาจะส่งในขั้นตอนที่สองของ GC อีกครั้งข้อความของฉันเป็นเพียงชั่วคราว ลงนามและมาพร้อมกับหนังสือรับรองของฉัน (ตั้งแต่บัดนี้เป็นต้นไปเราจะละเว้นการกล่าวคำยืนยันนั้น ลงนามในข้อความของเขาชั่วคราวและเผยแพร่หนังสือรับรองของเขาด้วย) ขั้นที่ 4 ในขั้นตอนนี้ ผู้ตรวจสอบทุกตัว i \(\in\)SV r,4 จะคำนวณเอาท์พุตของ GC, (vi, gi) และแบบชั่วคราว ลงนามและส่งข้อความเดียวกันกับที่เขาจะส่งในขั้นตอนที่สามของBA⋆ นั่นคือใน ขั้นตอนแรกของ BBA⋆ ด้วยบิตเริ่มต้น 0 ถ้า gi = 2 และ 1 เป็นอย่างอื่น ขั้นตอน ส = 5, . . . , m + 2 ขั้นตอนดังกล่าวหากไปถึงจะสอดคล้องกับขั้นตอน s −1 ของ BA⋆ และด้วยเหตุนี้ ขั้นตอนที่ s −3 ของ BBA⋆ เนื่องจากโมเดลการขยายพันธุ์ของเราเป็นแบบอะซิงโครนัสเพียงพอ เราจึงต้องคำนึงถึงความเป็นไปได้ด้วย ว่าในระหว่างขั้นตอน s นั้น ผู้ตรวจสอบ i \(\in\)SV r,s เข้าถึงได้ด้วยข้อมูลที่พิสูจน์เขา บล็อก Br นั้นได้ถูกเลือกแล้ว ในกรณีนี้ ฉันหยุดการดำเนินการรอบ r ของเขาเอง Algorand ′ และเริ่มดำเนินการตามคำสั่งการปัดเศษ (r + 1) {r', . . . , r′ + 106} \(\times\) {1, . . . , ม. + 3} จากนั้นเขาก็สั่งกุญแจสาธารณะเหล่านี้ด้วยวิธีที่เป็นที่ยอมรับ และจัดเก็บสาธารณะ jth ป้อน jth leaf ของ Merkle tree และคำนวณค่ารูต Ri ซึ่งเขาเผยแพร่ เมื่อเขาต้องการลงนาม ข้อความที่เกี่ยวข้องกับคีย์ pkr,s ฉัน ฉันไม่เพียงแต่จัดเตรียมลายเซ็นจริงเท่านั้น แต่ยังรวมถึงเส้นทางการรับรองความถูกต้องสำหรับ pkr,s ด้วย ฉัน สัมพันธ์กับริ โปรดสังเกตว่าเส้นทางการรับรองความถูกต้องนี้ยังพิสูจน์ว่า pkr,s ฉัน ถูกเก็บไว้ในใบไม้ jth ส่วนที่เหลือ สามารถกรอกรายละเอียดได้อย่างง่ายดายตามนั้น คำแนะนำของผู้ตรวจสอบ i \(\in\)SV r,s นอกเหนือจากคำแนะนำที่เกี่ยวข้องกัน ไปยังขั้นตอนที่ s −3 ของ BBA⋆ รวมถึงการตรวจสอบว่าการดำเนินการของ BBA⋆ ได้หยุดลงก่อนหน้านี้หรือไม่ ขั้นตอน เนื่องจาก BBA⋆สามารถหยุดได้เพียงขั้นตอน Coin-Fixed-to-0 หรือในขั้นตอน Coin-Fixed-to-1 เท่านั้น คำแนะนำแยกแยะได้ว่า A (เงื่อนไขการสิ้นสุด 0): s′ −2 ≡0 mod 3 หรือ B (เงื่อนไขการสิ้นสุด 1): s′ −2 ≡1 mod 3 ในความเป็นจริง ในกรณี A บล็อก Br ไม่ว่างเปล่า และจำเป็นต้องมีคำแนะนำเพิ่มเติม ตรวจสอบให้แน่ใจว่าฉันสร้าง Br ใหม่อย่างถูกต้อง พร้อมด้วยใบรับรอง CERT r ที่เหมาะสม ในกรณี ข บล็อก Br ว่างเปล่า ดังนั้นฉันจึงได้รับคำสั่งให้ตั้งค่า Br = Br \(\varepsilon\) = (r, \(\emptyset\), H(Qr−1, r), H(Br−1)) และเพื่อคำนวณ CERT r หากในระหว่างดำเนินการตามขั้นตอน s ฉันไม่เห็นหลักฐานใด ๆ ที่แสดงว่าบล็อก Br มีอยู่แล้ว ถูกสร้างขึ้น จากนั้นเขาก็ส่งข้อความเดียวกับที่เขาจะส่งในขั้นตอน s −3 ของ BBA⋆ ขั้นตอนที่ m + 3 หากในระหว่างขั้นตอน m + 3 i \(\in\)SV r,m+3 เห็นว่าบล็อก Br ถูกสร้างขึ้นแล้ว ขั้นตอนก่อนหน้า s′ จากนั้นเขาก็ดำเนินการตามที่อธิบายไว้ข้างต้น มิฉะนั้น แทนที่จะส่งข้อความแบบเดียวกับที่เขาจะส่งในขั้นตอน m ของ BBA ⋆ ฉันก็เป็นเช่นนั้น ได้รับคำสั่งตามข้อมูลที่อยู่ในความครอบครองของเขาให้คำนวณ Br และข้อมูลที่เกี่ยวข้อง ใบรับรอง CERT r. จำได้ว่าในความเป็นจริง เรากำหนดขอบเขตบนด้วย m + 3 ซึ่งเป็นจำนวนก้าวทั้งหมดของรอบ 5.4 พิธีสารจริง ระลึกว่าในแต่ละขั้นตอนของรอบ r ผู้ตรวจสอบ i \(\in\)SV r,s ใช้คู่กุญแจลับสาธารณะระยะยาวของเขา เพื่อสร้างหนังสือรับรองของเขา \(\sigma\)r, s ฉัน \(\triangleq\)SIGi(r, s, Qr−1) เช่นเดียวกับ SIGi คิวอาร์−1 ในกรณี s = 1. ผู้ตรวจสอบ i ใช้รหัสลับชั่วคราวของเขา skr,s ฉัน เพื่อลงนามในข้อความของเขา (r, s) คุณ ฉัน เพื่อความง่าย เมื่อ r และ s เป็น ชัดเจน เราเขียน esigi(x) มากกว่า sigpkr,s i (x) เพื่อแสดงถึงลายเซ็นชั่วคราวที่เหมาะสมของค่า x ในขั้นตอน s ของรอบ r และเขียน ESIGi(x) แทน SIGpkr,s i (x) เพื่อแสดงถึง (i, x, esigi(x)) ขั้นตอนที่ 1: บล็อกข้อเสนอ คำแนะนำสำหรับผู้ใช้ทุกคน i \(\in\)PKr−k: ผู้ใช้ i เริ่มต้นขั้นตอนที่ 1 ของตัวเองของรอบ r ทันทีที่เขา รู้จัก Br−1 • ผู้ใช้ i คำนวณ Qr−1 จากองค์ประกอบที่สามของ Br−1 และตรวจสอบว่า i \(\in\)SV r,1 หรือ ไม่. • ถ้า i /\(\in\)SV r,1, แล้วฉันจะหยุดการดำเนินการขั้นตอนที่ 1 ของเขาเองทันที • ถ้า i \(\in\)SV r,1 นั่นคือ ถ้า i เป็นผู้นำที่มีศักยภาพ เขาจะเรียกเก็บเงินตามรอบที่มี ได้รับการเผยแพร่ไปยังเขาจนถึงตอนนี้และคำนวณ payset สูงสุด PAY r ฉันมาจากพวกเขา ต่อไปเขา คำนวณ "กลุ่มผู้สมัคร" ของเขา i = (r, จ่าย r ผม , SIGI(Qr−1), H(Br−1)) ในที่สุดเขาก็คำนวณ ข้อความคุณ1 ฉัน = (พี่ ฉัน , esigi(H(Br ผม )), \(\sigma\)r,1 i ) ทำลายคีย์ลับชั่วคราวของเขา skr,1 ฉัน แล้ว เผยแพร่นาย 1 ฉันหมายเหตุ. ในทางปฏิบัติ เพื่อลดระยะเวลาการดำเนินการทั่วโลกของขั้นตอนที่ 1 ให้สั้นลง สิ่งสำคัญคือ (r, 1)- ข้อความถูกเผยแพร่แบบเลือกสรร นั่นคือสำหรับผู้ใช้ทุกคนที่อยู่ในระบบ สำหรับครั้งแรก (r, 1)- ข้อความที่เขาได้รับและยืนยันได้สำเร็จ ผู้เล่น 17 คนก็เผยแพร่ตามปกติ สำหรับทั้งหมด อื่น ๆ (r, 1) - ข้อความที่ผู้เล่นที่ฉันได้รับและยืนยันได้สำเร็จ เขาเผยแพร่เฉพาะในกรณีที่ hash ค่าของข้อมูลรับรองที่มีอยู่นั้นน้อยที่สุดในบรรดาค่า hash ของข้อมูลรับรองที่มีอยู่ ในข้อความทั้งหมด (r, 1) ที่เขาได้รับและได้รับการยืนยันเรียบร้อยแล้ว นอกจากนี้ตามที่แนะนำ โดย Georgios Vlachos มันมีประโยชน์ที่ผู้นำที่มีศักยภาพแต่ละคน i จะเผยแพร่ข้อมูลรับรองของเขาด้วย \(\sigma\)r,1 ฉัน แยกจากกัน: ข้อความเล็กๆ เหล่านั้นเดินทางเร็วกว่าบล็อก ทำให้แน่ใจได้ว่าการเผยแพร่ mr,1 จะเป็นไปอย่างทันท่วงที เจ โดยที่ข้อมูลประจำตัวที่มีอยู่มีค่า hash น้อย ในขณะที่ทำให้มีค่า hash ขนาดใหญ่ หายไปอย่างรวดเร็ว ขั้นตอนที่ 2: ขั้นตอนแรกของ GC ของโปรโตคอลฉันทามติแบบให้คะแนน คำแนะนำสำหรับผู้ใช้ทุกคน i \(\in\)PKr−k: ผู้ใช้ i เริ่มต้นขั้นตอนที่ 2 ของตัวเองของรอบ r ทันทีที่เขา รู้จัก Br−1 • ผู้ใช้ i คำนวณ Qr−1 จากองค์ประกอบที่สามของ Br−1 และตรวจสอบว่า i \(\in\)SV r,2 หรือ ไม่. • ถ้า i /\(\in\)SV r,2 แล้วฉันจะหยุดการดำเนินการขั้นตอนที่ 2 ของเขาเองทันที • ถ้า i \(\in\)SV r,2 หลังจากรอเป็นระยะเวลาหนึ่ง t2 \(\triangleq\)แล + Λ ฉันจะทำหน้าที่ดังนี้ 1. เขาค้นหาผู้ใช้ ëเช่นนั้น H(\(\sigma\)r,1 มอร์) \(\leq\)H(\(\sigma\)r,1 j ) สำหรับข้อมูลรับรองทั้งหมด \(\sigma\)r,1 เจ ที่เป็นส่วนหนึ่งของ ข้อความที่ได้รับการยืนยันเรียบร้อยแล้ว (r, 1) ที่เขาได้รับจนถึงขณะนี้ 2. หากได้รับข้อความที่ถูกต้องจากคุณ 1 ฎ = (พี่ มอร์, ซิกล์(H(Br ̵)), \(\sigma\)r,1 ̵), b จากนั้นฉันจะตั้งค่า วี' ฉัน \(\triangleq\)H(br ë); มิฉะนั้นฉันจะตั้งค่า v′ ฉัน \(\triangleq\) \(\bot\) 3. ฉันคำนวณข้อความคุณ 2 ฉัน \(\triangleq\)(ESIGi(วี′ ผม), \(\sigma\)r,2 i ),c ทำลายรหัสลับชั่วคราวของเขา เอสเคอาร์,2 ฉัน แล้วเผยแพร่นาย 2 ฉัน โดยพื้นฐานแล้ว ผู้ใช้ i ตัดสินใจเป็นการส่วนตัวว่าผู้นำของรอบ r คือผู้ใช้ ë b ขอย้ำอีกครั้งว่าลายเซ็นของผู้เล่น ë และ hashes ได้รับการตรวจสอบเรียบร้อยแล้ว และชำระเงิน r ริน Br ëเป็นชุดการจ่ายเงินที่ถูกต้องสำหรับ รอบ r —แม้ว่าฉันจะไม่ได้ตรวจสอบว่า PAY r หรือไม่ ̵ เป็นค่าสูงสุดสำหรับ ̃ หรือไม่ คข้อความคุณนาย2 ฉัน ส่งสัญญาณว่าผู้เล่นที่ฉันถือว่า v′ i เป็น hash ของบล็อกถัดไป หรือพิจารณาบล็อกถัดไป บล็อกให้ว่างเปล่า 17นั่นคือ ลายเซ็นทั้งหมดถูกต้อง และทั้งบล็อกและ hash ของมันนั้นถูกต้อง แม้ว่าฉันจะไม่ได้ตรวจสอบก็ตาม ไม่ว่าค่าตอบแทนที่รวมไว้จะเป็นจำนวนสูงสุดสำหรับผู้เสนอหรือไม่

ขั้นตอนที่ 3: ขั้นตอนที่สองของ GC คำแนะนำสำหรับผู้ใช้ทุกคน i \(\in\)PKr−k: ผู้ใช้ i เริ่มต้นขั้นตอนที่ 3 ของตัวเองของรอบ r ทันทีที่เขา รู้จัก Br−1 • ผู้ใช้ i คำนวณ Qr−1 จากองค์ประกอบที่สามของ Br−1 และตรวจสอบว่า i \(\in\)SV r,3 หรือ ไม่. • ถ้า i /\(\in\)SV r,3, แล้วฉันจะหยุดการดำเนินการขั้นตอนที่ 3 ของเขาเองทันที • ถ้า i \(\in\)SV r,3 หลังจากรอเป็นระยะเวลาหนึ่ง t3 \(\triangleq\)t2 + 2\(\lambda\) = 3l + Λ ฉันจะทำหน้าที่ดังนี้ 1. หากมีค่า v′ ̸= \(\bot\)เช่นนั้น ในบรรดาข้อความที่ถูกต้อง mr,2 เจ เขาได้รับ มากกว่า 2/3 อยู่ในรูปแบบ (ESIGj(v′), \(\sigma\)r,2 j ) โดยไม่มีความขัดแย้งใดๆ ก จากนั้นเขาก็คำนวณข้อความคุณ 3 ฉัน \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 ฉัน) มิฉะนั้นเขาจะคำนวณนาย 3 ฉัน \(\triangleq\) (ESIGi(\(\bot\)), \(\sigma\)r,3 ฉัน) 2. ฉันทำลายคีย์ลับชั่วคราวของเขา skr3 ฉัน แล้วเผยแพร่นาย 3 ฉัน aนั่นคือเขายังไม่ได้รับข้อความที่ถูกต้องสองข้อความที่มี ESIGj(v′) และ ESIGj(v′′) ที่แตกต่างกันตามลำดับ จากผู้เล่นเจ ที่นี่และต่อจากนี้ ยกเว้นในเงื่อนไขการสิ้นสุดที่กำหนดไว้ในภายหลัง เมื่อใดก็ตามที่เป็นผู้เล่นที่ซื่อสัตย์ ต้องการข้อความในรูปแบบที่กำหนด ข้อความที่ขัดแย้งกันจะไม่นับหรือถือว่าถูกต้องขั้นตอนที่ 4: ผลลัพธ์ของ GC และขั้นตอนแรกของ BBA⋆ คำแนะนำสำหรับผู้ใช้ทุกคน i \(\in\)PKr−k: ผู้ใช้ i เริ่มต้นขั้นตอนที่ 4 ของตัวเองของรอบ r ทันทีที่เขา รู้จัก Br−1 • ผู้ใช้ i คำนวณ Qr−1 จากองค์ประกอบที่สามของ Br−1 และตรวจสอบว่า i \(\in\)SV r,4 หรือ ไม่. • ถ้า i /\(\in\)SV r,4 แล้ว i เขาจะหยุดการดำเนินการขั้นตอนที่ 4 ทันที • หาก i \(\in\)SV r,4 หลังจากรอเป็นระยะเวลาหนึ่ง t4 \(\triangleq\)t3 + 2แล = 5แล + Λ ฉันจะทำหน้าที่ดังต่อไปนี้ 1. เขาคำนวณ vi และ gi ซึ่งเป็นผลลัพธ์ของ GC ดังนี้ (a) ถ้ามีค่า v′ ̸= \(\bot\)เช่นนั้น ในบรรดาข้อความที่ถูกต้อง mr,3 เจ เขามี ได้รับมากกว่า 2/3 อยู่ในรูปแบบ (ESIGj(v′), \(\sigma\)r,3 j ) จากนั้นเขาก็ตั้งค่า vi \(\triangleq\)v′ และ gi \(\triangleq\)2. (b) มิฉะนั้น ถ้ามีค่า v′ ̸= \(\bot\)เช่นนั้น ในบรรดาข้อความที่ถูกต้องทั้งหมด นาย 3 เจ เขาได้รับ มากกว่า 1/3 อยู่ในรูปแบบ (ESIGj(v′), \(\sigma\)r,3 เจ ) จากนั้น เขาตั้งค่า vi \(\triangleq\)v′ และ gi \(\triangleq\)1.a (c) อย่างอื่นเขากำหนด vi \(\triangleq\)H(Br ǫ ) และ gi \(\triangleq\)0 2. เขาคำนวณ bi ซึ่งเป็นอินพุตของ BBA⋆ ดังนี้: bi \(\triangleq\)0 ถ้า gi = 2 และ bi \(\triangleq\)1 มิฉะนั้น 3. เขาคำนวณข้อความ คุณ4 ฉัน \(\triangleq\)(ESIGi(ไบ), ESIGi(vi), \(\sigma\)r,4 i ) ทำลายช่วงเวลาชั่วคราวของเขา รหัสลับ skr,4 ฉัน แล้วเผยแพร่นาย 4 ฉัน aพิสูจน์ได้ว่า v′ ในกรณี (b) ถ้ามี จะต้องไม่ซ้ำกัน

ขั้นตอนที่ s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ≡0 mod 3: ขั้นตอน Coin-Fixed-To-0 ของ BBA⋆ คำแนะนำสำหรับผู้ใช้ทุกคน i \(\in\)PKr−k: ผู้ใช้ i เริ่มต้น Step s ของตัวเองของรอบ r ทันทีที่เขา รู้จัก Br−1 • ผู้ใช้ i คำนวณ Qr−1 จากองค์ประกอบที่สามของ Br−1 และตรวจสอบว่า i \(\in\)SV r,s หรือไม่ • หาก i /\(\in\)SV r,s ฉันจะหยุดการดำเนินการ Step s ของเขาทันที • ถ้า i \(\in\)SV r,s แล้วเขาจะทำหน้าที่ดังต่อไปนี้ – เขารอจนกระทั่งผ่านไประยะเวลาหนึ่ง ts \(\triangleq\)ts−1 + 2\(\lambda\) = (2s −3)\(\lambda\) + Λ – เงื่อนไขการสิ้นสุด 0: หากในระหว่างการรอดังกล่าวและ ณ เวลาใด ๆ มี a string v ̸= \(\bot\)และขั้นตอน s′ เช่นนั้น (a) 5 \(\leq\)s′ \(\leq\)s, s′ −2 ≡0 mod 3 —นั่นคือ ขั้นตอน s′ เป็นขั้นตอน Coin-Fixed-To-0 (b) ฉันได้รับอย่างน้อยแล้ว = 2น 3 + 1 ข้อความที่ถูกต้อง mr,s′−1 เจ = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 เจ ) และ (ค) ฉันได้รับข้อความที่ถูกต้อง คุณ 1 เจ = (พี่ j , esigj(H(Br เจ )), \(\sigma\)r,1 เจ ) ด้วย โวลต์ = H(Br เจ) จากนั้น ฉันจะหยุดการดำเนินการขั้นตอน s ของเขาเอง (และในความเป็นจริงของรอบ r) ทันทีโดยไม่ต้อง เผยแพร่สิ่งใด ๆ เซต Br = Br เจ ; และกำหนดให้ CERT r ของเขาเองเป็นชุดข้อความ นาย,s′−1 เจ ของขั้นตอนย่อย (ข)ข – เงื่อนไขการสิ้นสุดที่ 1: หากในระหว่างการรอดังกล่าวและ ณ เวลาใดก็ตาม มี ขั้นตอนที่ s′ เช่นนั้น (a’) 6 \(\leq\)s′ \(\leq\)s, s′ −2 ≡1 mod 3 —นั่นคือ Step s′ เป็นขั้นตอน Coin-Fixed-To-1 และ (b’) ฉันได้รับข้อความที่ถูกต้องอย่างน้อย mr,s′−1 เจ = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 เจ ),ค จากนั้น ฉันจะหยุดการดำเนินการขั้นตอน s ของเขาเอง (และในความเป็นจริงของรอบ r) ทันทีโดยไม่ต้อง เผยแพร่สิ่งใด ๆ เซต Br = Br ; และกำหนดให้ CERT r ของเขาเองเป็นชุดข้อความ นาย,s′−1 เจ ของขั้นตอนย่อย (b’) – มิฉะนั้น เมื่อสิ้นสุดการรอ ผู้ใช้จะดำเนินการดังต่อไปนี้ เขากำหนดให้ vi เป็นคะแนนเสียงข้างมากของ vj ในองค์ประกอบที่สองของคะแนนเสียงที่ถูกต้องทั้งหมด นายส−1 เจ เขาได้รับแล้ว เขาคำนวณไบดังนี้ ถ้ามากกว่า 2/3 ของ mr,s−1 ที่ถูกต้องทั้งหมด เจ ที่เขาได้รับนั้นเป็นแบบอย่าง (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 เจ ) จากนั้นเขาก็ตั้งค่า bi \(\triangleq\)0 มิฉะนั้น ถ้ามากกว่า 2/3 ของ mr,s−1 ที่ถูกต้องทั้งหมด เจ ที่เขาได้รับนั้นเป็นแบบอย่าง (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 เจ ) จากนั้นเขาก็ตั้งค่า bi \(\triangleq\)1 มิฉะนั้นเขาจะตั้งค่า bi \(\triangleq\)0 เขาคำนวณข้อความของคุณนาย ฉัน \(\triangleq\)(ESIGi(ไบ), ESIGi(vi), \(\sigma\)r,s i ) ทำลายช่วงเวลาชั่วคราวของเขา รหัสลับ skr,s ฉัน แล้วเผยแพร่นายส ฉัน aข้อความดังกล่าวจากผู้เล่น j จะถูกนับแม้ว่าผู้เล่น i จะได้รับข้อความจากการลงนาม j สำหรับ 1 ก็ตาม สิ่งที่คล้ายกันสำหรับเงื่อนไขการสิ้นสุด 1 ดังที่แสดงในการวิเคราะห์ การดำเนินการนี้ทำเพื่อให้แน่ใจว่าผู้ใช้ที่ซื่อสัตย์ทุกคนทราบ Br ภายในเวลา แล จากกัน bUser ตอนนี้ฉันรู้จัก Br และรอบสุดท้ายของเขาแล้ว เขายังคงช่วยเผยแพร่ข้อความในฐานะผู้ใช้ทั่วไปแต่ ไม่ได้เริ่มต้นการแพร่กระจายใด ๆ ในฐานะ (r, s) - ผู้ตรวจสอบ โดยเฉพาะเขาได้ช่วยเผยแพร่ข้อความทั้งหมดในตัวเขา CERT r ซึ่งเพียงพอสำหรับโปรโตคอลของเรา โปรดทราบว่าเขาควรตั้งค่า bi \(\triangleq\)0 สำหรับโปรโตคอล BA ไบนารี่ด้วย แต่ตั้งค่าเป็น bi ไม่จำเป็นในกรณีนี้อยู่แล้ว สิ่งที่คล้ายกันสำหรับคำแนะนำทั้งหมดในอนาคต cในกรณีนี้ มันไม่สำคัญว่าวีเจจะเป็นอะไรขั้นตอนที่ s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ≡1 mod 3: ขั้นตอนแบบ Coin-Fixed-To-1 ของ BBA⋆ คำแนะนำสำหรับผู้ใช้ทุกคน i \(\in\)PKr−k: ผู้ใช้ i เริ่มต้น Step s ของตัวเองของรอบ r ทันทีที่เขา รู้จัก Br−1 • ผู้ใช้ i คำนวณ Qr−1 จากองค์ประกอบที่สามของ Br−1 และตรวจสอบว่า i \(\in\)SV r,s หรือ ไม่. • หาก i /\(\in\)SV r,s ฉันจะหยุดการดำเนินการ Step s ของเขาทันที • ถ้า i \(\in\)SV r,s แล้วเขาจะทำดังต่อไปนี้ – เขารอจนกระทั่งผ่านไประยะเวลาหนึ่ง ts \(\triangleq\)(2s −3)\(\lambda\) + Λ – เงื่อนไขการสิ้นสุด 0: คำแนะนำเดียวกันกับขั้นตอน Coin-Fixed-To-0 – เงื่อนไขการสิ้นสุด 1: คำแนะนำเดียวกันกับขั้นตอน Coin-Fixed-To-0 – มิฉะนั้น เมื่อสิ้นสุดการรอ ผู้ใช้จะดำเนินการดังต่อไปนี้ เขากำหนดให้ vi เป็นคะแนนเสียงข้างมากของ vj ในองค์ประกอบที่สองของคะแนนเสียงที่ถูกต้องทั้งหมด นายส−1 เจ เขาได้รับแล้ว เขาคำนวณไบดังนี้ ถ้ามากกว่า 2/3 ของ mr,s−1 ที่ถูกต้องทั้งหมด เจ ที่เขาได้รับนั้นเป็นแบบอย่าง (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 เจ ) จากนั้นเขาก็ตั้งค่า bi \(\triangleq\)0 มิฉะนั้น ถ้ามากกว่า 2/3 ของ mr,s−1 ที่ถูกต้องทั้งหมด เจ ที่เขาได้รับนั้นเป็นแบบอย่าง (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 เจ ) จากนั้นเขาก็ตั้งค่า bi \(\triangleq\)1 มิฉะนั้นเขาจะตั้งค่า bi \(\triangleq\)1 เขาคำนวณข้อความของคุณนาย ฉัน \(\triangleq\)(ESIGi(ไบ), ESIGi(vi), \(\sigma\)r,s i ) ทำลายช่วงเวลาชั่วคราวของเขา รหัสลับ skr,s ฉัน แล้วเผยแพร่นายส ฉัน

ขั้นตอนที่ s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 mod 3: ขั้นตอนการพลิกเหรียญอย่างแท้จริงของ BBA⋆ คำแนะนำสำหรับผู้ใช้ทุกคน i \(\in\)PKr−k: ผู้ใช้ i เริ่มต้น Step s ของตัวเองของรอบ r ทันทีที่เขา รู้จัก Br−1 • ผู้ใช้ i คำนวณ Qr−1 จากองค์ประกอบที่สามของ Br−1 และตรวจสอบว่า i \(\in\)SV r,s หรือ ไม่. • หาก i /\(\in\)SV r,s ฉันจะหยุดการดำเนินการ Step s ของเขาทันที • ถ้า i \(\in\)SV r,s แล้วเขาจะทำดังต่อไปนี้ – เขารอจนกระทั่งผ่านไประยะเวลาหนึ่ง ts \(\triangleq\)(2s −3)\(\lambda\) + Λ – เงื่อนไขการสิ้นสุด 0: คำแนะนำเดียวกันกับขั้นตอน Coin-Fixed-To-0 – เงื่อนไขการสิ้นสุด 1: คำแนะนำเดียวกันกับขั้นตอน Coin-Fixed-To-0 – มิฉะนั้น เมื่อสิ้นสุดการรอ ผู้ใช้จะดำเนินการดังต่อไปนี้ เขากำหนดให้ vi เป็นคะแนนเสียงข้างมากของ vj ในองค์ประกอบที่สองของคะแนนเสียงที่ถูกต้องทั้งหมด นายส−1 เจ เขาได้รับแล้ว เขาคำนวณไบดังนี้ ถ้ามากกว่า 2/3 ของ mr,s−1 ที่ถูกต้องทั้งหมด เจ ที่เขาได้รับนั้นเป็นแบบอย่าง (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 เจ ) จากนั้นเขาก็ตั้งค่า bi \(\triangleq\)0 มิฉะนั้น ถ้ามากกว่า 2/3 ของ mr,s−1 ที่ถูกต้องทั้งหมด เจ ที่เขาได้รับนั้นเป็นแบบอย่าง (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 เจ ) จากนั้นเขาก็ตั้งค่า bi \(\triangleq\)1 มิฉะนั้น ให้ SV r,s−1 ฉัน เป็นเซตของ (r, s −1) - ผู้ตรวจสอบที่เขาได้รับความถูกต้อง ส่งข้อความถึงคุณ s−1 เจ . เขาตั้งค่า bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1 ฉัน H(\(\sigma\)r,s−1 เจ )). เขาคำนวณข้อความของคุณนาย ฉัน \(\triangleq\)(ESIGi(ไบ), ESIGi(vi), \(\sigma\)r,s i ) ทำลายช่วงเวลาชั่วคราวของเขา รหัสลับ skr,s ฉัน แล้วเผยแพร่นายส ฉัน

ขั้นตอนที่ m + 3: ขั้นตอนสุดท้ายของ BBA⋆a คำแนะนำสำหรับผู้ใช้ทุกคน i \(\in\)PKr−k: ผู้ใช้ i เริ่มขั้นตอนของตนเอง m + 3 ของรอบ r ทันทีที่เขา รู้จัก Br−1 • ผู้ใช้ i คำนวณ Qr−1 จากองค์ประกอบที่สามของ Br−1 และตรวจสอบว่า i \(\in\)SV r,m+3 หรือ ไม่. • ถ้า i /\(\in\)SV r,m+3 ฉันจะหยุดการดำเนินการขั้นตอน m + 3 ของเขาเองทันที • ถ้า i \(\in\)SV r,m+3 แล้วเขาจะทำดังต่อไปนี้ – เขารอจนกระทั่งผ่านไประยะเวลาหนึ่ง tm+3 \(\triangleq\)tm+2 + 2\(\lambda\) = (2m + 3)\(\lambda\) + Λ – เงื่อนไขการสิ้นสุด 0: คำแนะนำเดียวกันกับขั้นตอน Coin-Fixed-To-0 – เงื่อนไขการสิ้นสุด 1: คำแนะนำเดียวกันกับขั้นตอน Coin-Fixed-To-0 – มิฉะนั้น เมื่อสิ้นสุดการรอ ผู้ใช้จะดำเนินการดังต่อไปนี้ เขากำหนด \(\triangleq\)1 และ Br \(\triangleq\)Br ī. เขาคำนวณข้อความ mr,m+3 ฉัน = (ESIGi(ออกิ), ESIGi(H(Br)), \(\sigma\)r,m+3 ฉัน ) ทำลายของเขา คีย์ลับชั่วคราว skr,m+3 ฉัน แล้วเผยแพร่ mr,m+3 ฉัน เพื่อรับรอง Br.b aด้วยความน่าจะเป็นอย่างท่วมท้น BBA⋆ได้สิ้นสุดลงก่อนขั้นตอนนี้ และเราระบุขั้นตอนนี้เพื่อความสมบูรณ์ ใบรับรอง ba จากขั้นตอน m + 3 ไม่จำเป็นต้องรวม ESIGi(outi) เรารวมไว้เพื่อความสม่ำเสมอเท่านั้น: ขณะนี้ใบรับรองมีรูปแบบที่เหมือนกันไม่ว่าจะสร้างในขั้นตอนใดก็ตามการสร้าง Round-r Block ขึ้นมาใหม่โดยผู้ที่ไม่ใช่ผู้ตรวจสอบ คำแนะนำสำหรับผู้ใช้ทุกคน i ในระบบ: ผู้ใช้ i เริ่มรอบ r ของตนเองทันทีที่ทราบ Br−1 และรอข้อมูลบล็อกดังนี้ – หากในระหว่างการรอและ ณ เวลาใดก็ตาม มีสตริง v และขั้นตอน s′ ดังกล่าวอยู่ นั่น (a) 5 \(\leq\)s′ \(\leq\)m + 3 โดยมี s′ −2 ≡0 mod 3 (b) ฉันได้รับข้อความที่ถูกต้องอย่างน้อย mr,s′−1 เจ = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 เจ ) และ (ค) ฉันได้รับข้อความที่ถูกต้อง คุณ 1 เจ = (พี่ j , esigj(H(Br เจ )), \(\sigma\)r,1 เจ ) ด้วย โวลต์ = H(Br เจ) จากนั้นฉันก็หยุดการดำเนินการรอบ r ของเขาเองทันที เซต Br = Br เจ; และกำหนด CERT r ของเขาเอง เป็นชุดข้อความ mr,s′−1 เจ ของขั้นตอนย่อย (b) – หากในระหว่างการรอคอยและ ณ จุดใดเวลาหนึ่ง มีขั้นตอนเช่นนั้นอยู่ (a’) 6 \(\leq\)s′ \(\leq\)m + 3 โดยมี s′ −2 ≡1 mod 3 และ (b’) ฉันได้รับข้อความที่ถูกต้องอย่างน้อย mr,s′−1 เจ = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 เจ ) จากนั้นฉันก็หยุดการดำเนินการรอบ r ของเขาเองทันที เซต Br = Br ǫ; และกำหนด CERT r ของเขาเอง เป็นชุดข้อความ mr,s′−1 เจ ของขั้นตอนย่อย (b’) – หากในระหว่างการรอและ ณ เวลาใดก็ตาม ฉันได้รับข้อความที่ถูกต้องเป็นอย่างน้อย คุณม+3 เจ = (ESIGj(1), ESIGj(H(Br ī )), \(\sigma\)r,m+3 เจ ) จากนั้นฉันก็หยุดการประมวลผลรอบ r ของเขาเอง ทันที ให้ตั้ง Br = Br ǫ และตั้งค่า CERT r ของเขาเองให้เป็นชุดข้อความ mr,m+3 เจ สำหรับ 1 และ H(br ǫ) 5.5 การวิเคราะห์ Algorand ′ 1 เราแนะนำสัญลักษณ์ต่อไปนี้สำหรับแต่ละรอบ r \(\geq\)0 ซึ่งใช้ในการวิเคราะห์ • ให้ T r เป็นเวลาที่ผู้ใช้ที่ซื่อสัตย์คนแรกรู้จัก Br−1 • ให้ Ir+1 เป็นช่วง [T r+1, T r+1 + \(\lambda\)] โปรดทราบว่า T 0 = 0 โดยการเริ่มต้นของโปรโตคอล สำหรับแต่ละ s \(\geq\)1 และ i \(\in\)SV r,s ให้จำไว้ เอลอาร์ส ฉัน และ \(\beta\)r,s ฉัน คือเวลาเริ่มต้นและเวลาสิ้นสุดของผู้เล่น i's step s ตามลำดับ นอกจากนี้ จำได้ว่า ts = (2s −3)\(\lambda\) + Λ สำหรับแต่ละ 2 \(\leq\)s \(\leq\)m + 3 นอกจากนี้ ให้ I0 \(\triangleq\){0} และ t1 \(\triangleq\)0 สุดท้ายนี้ จำไว้ว่า Lr \(\leq\)m/3 เป็นตัวแปรสุ่มที่แสดงถึงจำนวนการทดลองเบอร์นูลลี จำเป็นต้องดู 1 เมื่อการทดลองแต่ละครั้งคือ 1 โดยมีความน่าจะเป็น ph 2 และมีการทดลองสูงสุด m/3 ถ้าทั้งหมด การทดลองล้มเหลวจากนั้น Lr \(\triangleq\)m/3 ในการวิเคราะห์ เราไม่สนใจเวลาในการคำนวณ เนื่องจากจริงๆ แล้วมีเวลาน้อยมากเมื่อเทียบกับเวลาที่ต้องการ เพื่อเผยแพร่ข้อความ ไม่ว่าในกรณีใด หากใช้ แลมบ์ดา และ Λ ที่มีขนาดใหญ่ขึ้นเล็กน้อย เวลาในการคำนวณก็สามารถทำได้ เข้าสู่การวิเคราะห์โดยตรง ข้อความด้านล่างส่วนใหญ่ถือ “อย่างล้นหลาม ความน่าจะเป็น” และเราอาจไม่ได้เน้นย้ำข้อเท็จจริงนี้ซ้ำๆ ในการวิเคราะห์5.6 ทฤษฎีบทหลัก ทฤษฎีบท 5.1 คุณสมบัติต่อไปนี้มีความน่าจะเป็นอย่างล้นหลามสำหรับแต่ละรอบ r \(\geq\)0: 1. ผู้ใช้ที่ซื่อสัตย์ทุกคนเห็นด้วยกับบล็อกเดียวกัน Br. 2. เมื่อผู้นำ ër ซื่อสัตย์ บล็อก Br จะถูกสร้างขึ้นโดย ër โดยที่ Br จะมีค่าตอบแทนสูงสุด ได้รับโดย LRr ตามเวลา \(\alpha\)r,1 ër , T r+1 \(\leq\)T r + 8แล + Λ และผู้ใช้ที่ซื่อสัตย์ทุกคนรู้จัก Br ในเวลานั้น ช่วงเวลา Ir+1 3. เมื่อผู้นำ ër เป็นอันตราย T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ และผู้ใช้ที่ซื่อสัตย์ทุกคนจะรู้ Br ในช่วงเวลา Ir+1 4. ph = h2(1 + h −h2) สำหรับ Lr และตัวนำ ër ซื่อสัตย์กับความน่าจะเป็นอย่างน้อย ph ก่อนที่จะพิสูจน์ทฤษฎีบทหลักของเรา ขอให้เราตั้งข้อสังเกตไว้สองประการ หมายเหตุ. • Block-Generation และ True Latency เวลาในการสร้างบล็อก Br ถูกกำหนดให้เป็น T r+1 −T r นั่นคือ มันถูกกำหนดให้เป็นความแตกต่างระหว่างครั้งแรกที่ผู้ใช้ที่ซื่อสัตย์บางคนเรียนรู้ Br และ ครั้งแรกที่ผู้ใช้ที่ซื่อสัตย์เรียนรู้ Br−1 เมื่อผู้นำรอบนั้นซื่อสัตย์ ทรัพย์สินที่ 2 ของเรา ทฤษฎีบทหลักรับประกันว่าเวลาที่แน่นอนในการสร้าง Br คือเวลา 8 แล + Λ ไม่ว่าจะเป็นอะไรก็ตาม ค่าที่แน่นอนของ h > 2/3 อาจเป็นได้ เมื่อผู้นำมีเจตนาร้าย คุณสมบัติที่ 3 หมายความว่า เวลาที่คาดว่าจะสร้าง Br นั้นมีขอบเขตบน ( 12 ph + 10)\(\lambda\) + Λ อีกครั้งไม่ว่าจะแม่นยำแค่ไหนก็ตาม ค่า h.18 อย่างไรก็ตาม เวลาที่คาดว่าจะสร้าง Br ขึ้นอยู่กับค่าที่แน่นอนของ h โดยแท้จริงแล้ว โดยคุณสมบัติ 4, ph = h2(1 + h −h2) และผู้นำมีความซื่อสัตย์กับความน่าจะเป็นเป็นอย่างน้อย ph ดังนั้น E[T r+1 −T r] \(\leq\)h2(1 + h −h2) \(\cdot\) (8แล + Λ) + (1 −h2(1 + h −h2))(( 12 h2(1 + h −h2) + 10)แล + Λ) ตัวอย่างเช่น ถ้า h = 80% แล้ว E[T r+1 −T r] \(\leq\)12.7แล + Λ • แลมบ์ดา กับ Λ. โปรดทราบว่าขนาดของข้อความที่ส่งโดยผู้ตรวจสอบในขั้นตอน Algorand ′ นั้นถูกครอบงำ ตามความยาวของคีย์ลายเซ็นดิจิทัลซึ่งสามารถแก้ไขได้แม้ว่าจะมีจำนวนก็ตาม ผู้ใช้มีมหาศาล โปรดทราบด้วยว่าในขั้นตอนใดๆ > 1 จำนวนผู้ตรวจสอบที่คาดหวังไว้จะเท่ากัน สามารถใช้ได้ไม่ว่าจำนวนผู้ใช้จะเป็น 100K, 100M หรือ 100M ที่เป็นเช่นนี้ก็เพราะว่า n เพียงอย่างเดียว ขึ้นอยู่กับ h และ F โดยสรุปแล้ว หากไม่จำเป็นต้องเพิ่มความยาวของคีย์ลับอย่างกะทันหัน ค่าของ \(\gamma\) ควรคงเดิมไม่ว่าจำนวนผู้ใช้จะมากเพียงใด อนาคตอันใกล้ ในทางตรงกันข้าม สำหรับอัตราธุรกรรมใดๆ จำนวนธุรกรรมจะเพิ่มขึ้นตามจำนวน ผู้ใช้ ดังนั้นเพื่อประมวลผลธุรกรรมใหม่ทั้งหมดให้ทันเวลา ขนาดของบล็อกควรจะเป็น ยังเติบโตตามจำนวนผู้ใช้งาน ทำให้ Λ เติบโตขึ้นด้วย ดังนั้นในระยะยาวเราควรจะมี แล << Λ. ดังนั้นจึงเป็นเรื่องเหมาะสมที่จะมีโคอีfficientที่ใหญ่กว่าสำหรับ แล และจริงๆ แล้ว coefficient จาก 1 สำหรับ Λ. การพิสูจน์ทฤษฎีบท 5.1 เราพิสูจน์คุณสมบัติ 1–3 โดยการเหนี่ยวนํา: สมมติว่าคุณสมบัติเหล่านั้นคงไว้เป็นรอบ r −1 (โดยไม่สูญเสียลักษณะทั่วไป มันจะถือเป็น "รอบ -1" โดยอัตโนมัติเมื่อ r = 0) เราพิสูจน์มันแล้ว รอบร. 18แท้จริงแล้ว E[T r+1 −T r] \(\leq\)(6E[Lr] + 10)แล + Λ = (6 \(\cdot\) 2 ค่า pH + 10)แล + Λ = ( 12 ค่าพีเอช + 10)แล + Λเนื่องจาก Br−1 ถูกกำหนดอย่างไม่ซ้ำกันโดยสมมติฐานอุปนัย เซต SV r,s จึงถูกกำหนดอย่างไม่ซ้ำกัน สำหรับแต่ละขั้นตอนของรอบ r โดยการเลือก n1, SV r,1 ̸= \(\emptyset\) ด้วยความน่าจะเป็นอย่างล้นหลาม เราตอนนี้ ระบุบทแทรกสองบทต่อไปนี้ ซึ่งพิสูจน์แล้วในส่วนที่ 5.7 และ 5.8 ตลอดการปฐมนิเทศและใน การพิสูจน์บทแทรกทั้งสองบทการวิเคราะห์รอบ 0 เกือบจะเหมือนกับขั้นตอนอุปนัย และเราจะเน้นถึงความแตกต่างเมื่อเกิดขึ้น เลมมา 5.2 [ความสมบูรณ์ของเล็มมา] สมมติคุณสมบัติ 1–3 ค้างไว้รอบ r−1 เมื่อผู้นำ ër เป็นคนซื่อสัตย์ ด้วยความน่าจะเป็นอย่างล้นหลาม • ผู้ใช้จริงทุกคนเห็นด้วยกับบล็อกเดียวกัน Br ซึ่งสร้างโดย ër และมีค่าสูงสุด ชุดจ่ายเงินที่ได้รับโดย ër ตามเวลา \(\alpha\)r, 1 ër \(\in\)Ir; และ • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ และผู้ใช้จริงทุกคนจะทราบ Br ในช่วงเวลา Ir+1 เลมมา 5.3 [Soundness Lemma] สมมติคุณสมบัติ 1–3 ค้างไว้รอบ r −1 เมื่อผู้นำ ër เป็นอันตราย ด้วยความน่าจะเป็นอย่างล้นหลาม ผู้ใช้ที่ซื่อสัตย์ทุกคนเห็นด้วยกับบล็อกเดียวกัน Br, T r+1 \(\leq\) T r + (6Lr + 10)\(\lambda\) + Λ และผู้ใช้ที่ซื่อสัตย์ทุกคนทราบ Br ในช่วงเวลา Ir+1 คุณสมบัติ 1–3 คงไว้โดยการใช้บทแทรก 5.2 และ 5.3 กับ r = 0 และกับขั้นตอนอุปนัย สุดท้ายนี้ เรากล่าวย้ำคุณสมบัติ 4 ว่าเป็นบทแทรกต่อไปนี้ ซึ่งพิสูจน์แล้วในส่วนที่ 5.9 เลมมา 5.4 ให้คุณสมบัติ 1–3 สำหรับแต่ละรอบก่อน r, ph = h2(1 + h −h2) สำหรับ Lr และ ผู้นำ ër ซื่อสัตย์กับความน่าจะเป็นอย่างน้อย ph เมื่อรวมบทแทรกสามบทข้างต้นเข้าด้วยกัน ทฤษฎีบท 5.1 ก็ถือได้ ■ บทแทรกด้านล่างระบุคุณสมบัติที่สำคัญหลายประการเกี่ยวกับรอบ r เมื่อพิจารณาจากอุปนัย สมมติฐาน และจะนำไปใช้ในการพิสูจน์บทแทรกสามบทข้างต้น เลมมา 5.5 สมมติว่าคุณสมบัติ 1–3 คงไว้สำหรับรอบ r −1 สำหรับแต่ละขั้นตอน s \(\geq\)1 ของรอบ r และ ผู้ตรวจสอบที่ซื่อสัตย์แต่ละคน i \(\in\)HSV r,s เรามีสิ่งนั้น (ก) \(\alpha\)r, s ฉัน \(\in\)ฉัน; (b) ถ้าผู้เล่นฉันรอมาเป็นระยะเวลา ts แล้ว \(\beta\)r,s ฉัน \(\in\)[T r + ts, T r + \(\lambda\) + ts] สำหรับ r > 0 และ \(\beta\)r,s ฉัน = ts สำหรับ r = 0; และ (c) ถ้าผู้เล่นฉันรอมาเป็นระยะเวลา ts แล้วตามเวลา \(\beta\)r,s ฉัน เขาได้รับข้อความทั้งหมดแล้ว ส่งโดยผู้ตรวจสอบที่ซื่อสัตย์ทุกคน j \(\in\)HSV r,s′ สำหรับทุกขั้นตอน s′ < s ยิ่งไปกว่านั้น สำหรับแต่ละขั้นตอน s \(\geq\)3 เรามีสิ่งนั้น (d) ไม่มีผู้เล่นที่แตกต่างกันสองคน i, i′ \(\in\)SV r,s และค่าที่ต่างกันสองค่า v, v′ ที่เหมือนกัน ความยาวจนผู้เล่นทั้งสองคนต้องรอเป็นระยะเวลา ts มากกว่า 2/3 ของทั้งหมด ข้อความที่ถูกต้อง mr,s−1 เจ ผู้เล่นที่ฉันได้รับได้ลงนามใน v และมากกว่า 2/3 ของทั้งหมดที่ถูกต้อง ข้อความคุณ, s−1 เจ ผู้เล่นที่ฉันได้รับได้เซ็นสัญญากับ v′ การพิสูจน์. คุณสมบัติ (a) ตามมาจากสมมติฐานอุปนัยโดยตรง เนื่องจากผู้เล่นที่ฉันรู้จัก Br−1 ใน ช่วงเวลา Ir และเริ่มก้าวของเขาเองทันที คุณสมบัติ (b) ติดตามโดยตรงจาก (a): เนื่องจาก ผู้เล่น ฉันรอมาระยะหนึ่งแล้วก่อนที่จะลงมือ \(\beta\)r,s ฉัน = \(\alpha\)r,s ฉัน + ทีเอส โปรดทราบว่า \(\alpha\)r,s ฉัน = 0 สำหรับ ร = 0 ตอนนี้เราพิสูจน์คุณสมบัติ (c) ถ้า s = 2 ดังนั้นโดยคุณสมบัติ (b) สำหรับผู้ตรวจสอบทั้งหมด j \(\in\)HSV r,1 เรามี \(\beta\)r,s ฉัน = \(\alpha\)r,s ฉัน + ts \(\geq\)T r + ts = T r + แล + Λ \(\geq\) \(\beta\)r,1 เจ + Λ.เนื่องจากผู้ตรวจสอบแต่ละคน j \(\in\)HSV r,1 ส่งข้อความของเขาในเวลา \(\beta\)r,1 เจ และข้อความไปถึงความซื่อสัตย์ทั้งหมด ผู้ใช้ในเวลาสูงสุด Λ ตามเวลา \(\beta\)r, s ฉัน ผู้เล่นที่ฉันได้รับข้อความที่ส่งมาจากผู้ตรวจสอบทั้งหมด HSV r,1 ตามต้องการ ถ้า s > 2 แล้ว ts = ts−1 + 2แล ตามคุณสมบัติ (b) สำหรับทุกขั้นตอน s′ < s และผู้ตรวจสอบทั้งหมด j \(\in\)HSV r,s′, \(\beta\)r,s ฉัน = \(\alpha\)r,s ฉัน + ts \(\geq\)T r + ts = T r + ts−1 + 2แล \(\geq\)T r + ts′ + 2แล = T r + แล + ts′ + แลม \(\geq\) \(\beta\)r,s′ เจ + แล. เนื่องจากผู้ตรวจสอบแต่ละคน j \(\in\)HSV r,s′ ส่งข้อความของเขาในเวลา \(\beta\)r,s′ เจ และข้อความไปถึงความซื่อสัตย์ทั้งหมด ผู้ใช้ในเวลาสูงสุด , ตามเวลา \(\beta\)r, s ฉัน ผู้เล่น ฉันได้รับข้อความทั้งหมดที่ส่งมาจากผู้ตรวจสอบที่ซื่อสัตย์ทุกคน ใน HSV r,s′ สำหรับทุก s′ < s ดังนั้นทรัพย์สิน (c) ถืออยู่ ในที่สุด เราก็พิสูจน์คุณสมบัติ (d) โปรดทราบว่าผู้ตรวจสอบ j \(\in\)SV r,s−1 ลงชื่อไม่เกินสองสิ่ง ขั้นตอนที่ s −1 โดยใช้คีย์ลับชั่วคราว: ค่า vj ที่มีความยาวเท่ากับเอาต์พุตของ ฟังก์ชัน hash และบิต bj \(\in\){0, 1} ถ้า s −1 \(\geq\)4 นั่นคือเหตุผลในบทแทรก เราต้องการให้ v และ v′ มีความยาวเท่ากัน: ผู้ตรวจสอบหลายคนอาจลงนามทั้งค่า hash v และบิต b ดังนั้น ทั้งคู่จึงผ่านเกณฑ์ 2/3 สมมุติเพื่อประโยชน์แห่งความขัดแย้งว่ามีตัวตรวจสอบที่ต้องการ i, i′ และค่า v, v′ อยู่ โปรดทราบว่าผู้ตรวจสอบที่เป็นอันตรายบางรายใน MSV r,s−1 อาจลงนามทั้ง v และ v′ แต่แต่ละคนก็ซื่อสัตย์ ผู้ตรวจสอบใน HSV r,s−1 ได้ลงนามมากที่สุดหนึ่งฉบับ โดยทรัพย์สิน (c) ทั้งฉันและฉันได้รับ ข้อความทั้งหมดที่ส่งโดยผู้ตรวจสอบที่ซื่อสัตย์ทุกคนใน HSV r,s−1 ให้ HSV r,s−1(v) เป็นเซตของผู้ตรวจสอบที่ซื่อสัตย์ (r, s −1) ซึ่งลงนามใน v, MSV r,s−1 ฉัน ชุด ของผู้ตรวจสอบที่เป็นอันตราย (r, s −1) ซึ่งฉันได้รับข้อความที่ถูกต้องและ MSV r, s−1 ฉัน (v) ที่ เซตย่อยของ MSV r,s−1 ฉัน จากผู้ที่ฉันได้รับข้อความลงนามที่ถูกต้อง v. ตามข้อกำหนดสำหรับ ฉันและวี เรามี อัตราส่วน \(\triangleq\)|HSV r,s−1(v)| + |MSV r,s−1 ฉัน (ก)| |HSV r,s−1| + |MSV r,s−1 ฉัน |

2 3. (1) เราแสดงก่อน |MSV r,s−1 ฉัน (ก)| \(\leq\)|HSV r,s−1(v)| (2) สมมติเป็นอย่างอื่นโดยความสัมพันธ์ระหว่างพารามิเตอร์ที่มีความน่าจะเป็นอย่างท่วมท้น |HSV r,s−1| > 2|MSV r,s−1| \(\geq\)2|MSV r,s−1 ฉัน | ดังนั้น อัตราส่วน < |HSV r,s−1(v)| + |MSV r,s−1 ฉัน (ก)| 3|MSV r,s−1 ฉัน | < 2|MSV r,s−1 ฉัน (ก)| 3|MSV r,s−1 ฉัน | \(\leq\)2 3, ความไม่เท่าเทียมกันที่ขัดแย้งกัน 1. ต่อไป โดยอสมการ 1 เรามี 2|HSV r,s−1| + 2|MSV r,s−1 ฉัน | < 3|HSV r,s−1(v)| + 3|MSV r,s−1 ฉัน (ก)| \(\leq\) 3|HSV r,s−1(v)| + 2|MSV r,s−1 ฉัน | + |MSV r,s−1 ฉัน (ก)|. เมื่อรวมกับความไม่เท่าเทียมกัน 2 2|HSV r,s−1| < 3|HSV r,s−1(v)| + |MSV r,s−1 ฉัน (ก)| \(\leq\)4|HSV r,s−1(v)|, ซึ่งหมายถึง |HSV r,s−1(v)| > 1 2|HSV r,s−1|ในทำนองเดียวกัน ตามข้อกำหนดสำหรับ i′ และ v′ เรามี |HSV r,s−1(วี′)| > 1 2|HSV r,s−1| เนื่องจากผู้ตรวจสอบที่ซื่อสัตย์ j \(\in\)HSV r,s−1 ทำลายคีย์ลับชั่วคราวของเขา skr,s−1 เจ ก่อนที่จะแพร่กระจาย ข้อความของเขา ปฏิปักษ์ไม่สามารถปลอมลายเซ็นของ j สำหรับค่าที่ j ไม่ได้ลงนามหลังจากนั้น การเรียนรู้ว่า j เป็นผู้ยืนยัน ดังนั้น อสมการทั้งสองข้างต้นจึงหมายถึง |HSV r,s−1| \(\geq\)|HSV r,s−1(v)| + |HSV r,s−1(วี′)| > |HSV r,s−1| ซึ่งเป็นข้อขัดแย้ง ดังนั้นจึงไม่มีสิ่งที่ต้องการ i, i′, v, v′ และ ทรัพย์สิน (ง) ถือครอง ■ 5.7 ความสมบูรณ์เลมมา เลมมา 5.2 [ความสมบูรณ์ของเล็มมา ปรับปรุงใหม่] สมมุติว่าคุณสมบัติ 1–3 คงไว้สำหรับรอบ r−1 เมื่อ ผู้นำ ër เป็นคนซื่อสัตย์ มีความเป็นไปได้อย่างล้นหลาม • ผู้ใช้จริงทุกคนเห็นด้วยกับบล็อกเดียวกัน Br ซึ่งสร้างโดย ër และมีค่าสูงสุด ชุดจ่ายเงินที่ได้รับโดย ër ตามเวลา \(\alpha\)r, 1 ër \(\in\)Ir; และ • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ และผู้ใช้จริงทุกคนจะทราบ Br ในช่วงเวลา Ir+1 การพิสูจน์. ตามสมมติฐานอุปนัยและบทแทรก 5.5 สำหรับแต่ละขั้นตอน s และตัวตรวจสอบ i \(\in\)HSV r,s เอลอาร์ส ฉัน \(\in\)ไอร์ ด้านล่างเราจะวิเคราะห์โปรโตคอลทีละขั้นตอน ขั้นตอนที่ 1 ตามคำจำกัดความ ผู้ตรวจสอบที่ซื่อสัตย์ทุกคน i \(\in\)HSV r,1 จะเผยแพร่ข้อความที่ต้องการ mr,1 ฉัน ที่ เวลา \(\beta\)r,1 ฉัน = แอลอาร์,1 ฉัน ที่ไหน คุณ1 ฉัน = (พี่ ฉัน , esigi(H(Br ผม )), \(\sigma\)r,1 ฉัน ) Br i = (r, จ่าย r ผม , SIGI(Qr−1), H(Br−1)), และจ่าย r ฉันเป็นค่าตอบแทนสูงสุดในบรรดาการชำระเงินทั้งหมดที่ฉันเห็นตามเวลา \(\alpha\)r,1 ฉัน ขั้นตอนที่ 2 แก้ไขผู้ตรวจสอบที่ซื่อสัตย์โดยพลการ i \(\in\)HSV r,2 โดย Lemma 5.5 เมื่อผู้เล่นทำเสร็จแล้ว รอเวลา \(\beta\)r,2 ฉัน = แอลอาร์,2 ฉัน + t2 เขาได้รับข้อความทั้งหมดที่ส่งโดยผู้ตรวจสอบใน HSV r,1 รวมถึง นาย 1 lr. ตามคำจำกัดความของ ër ไม่มีผู้เล่นคนอื่นใน PKr−k ที่มีข้อมูลรับรอง hash ค่าน้อยกว่า H(\(\sigma\)r,1 ër) แน่นอนว่าปฏิปักษ์สามารถทำให้เสื่อมทราม ër ได้หลังจากเห็นว่า H(\(\sigma\)r,1 ) มีขนาดเล็กมาก แต่เมื่อถึงเวลานั้น ผู้เล่น ër ได้ทำลายกุญแจชั่วคราวของเขาและข้อความ mr,1 lr ได้รับการเผยแพร่ ดังนั้นจึงเป็นการยืนยันว่าฉันได้ตั้งผู้นำของเขาเองให้เป็นผู้เล่นแล้ว ดังนั้น ณ เวลา \(\beta\)r,2 ฉัน ผู้ตรวจสอบฉันเผยแพร่นาย 2 ฉัน = (ESIGi(วี′ ผม), \(\sigma\)r,2 ฉัน ) โดยที่ v′ ผม = H(br ër) เมื่อ r = 0 จะเกิดผลต่างเพียงอย่างเดียว นั่นคือ \(\beta\)r,2 ฉัน = t2 แทนที่จะอยู่ในช่วง สิ่งที่คล้ายกันสามารถพูดได้สำหรับขั้นตอนในอนาคตและเรา จะไม่เน้นย้ำพวกเขาอีก ขั้นตอนที่ 3 แก้ไขผู้ตรวจสอบที่ซื่อสัตย์โดยพลการ i \(\in\)HSV r,3 โดย Lemma 5.5 เมื่อผู้เล่นทำเสร็จแล้ว รอเวลา \(\beta\)r,3 ฉัน = แอลอาร์,3 ฉัน + t3 เขาได้รับข้อความทั้งหมดที่ส่งโดยผู้ตรวจสอบใน HSV r,2 โดยความสัมพันธ์ระหว่างพารามิเตอร์ต่างๆ ที่มีความน่าจะเป็นอย่างล้นหลาม |HSV r,2| > 2|MSV r,2|. ยิ่งไปกว่านั้น ไม่มีผู้ตรวจสอบที่ซื่อสัตย์คนใดจะลงนามในข้อความที่ขัดแย้งและปฏิปักษ์ ไม่สามารถปลอมลายเซ็นของผู้ตรวจสอบที่ซื่อสัตย์ได้หลังจากที่คนหลังได้ทำลายผู้ตรวจสอบที่เกี่ยวข้องแล้ว กุญแจลับชั่วคราว ดังนั้นมากกว่า 2/3 ของข้อความที่ถูกต้อง (r, 2) ทั้งหมดที่ฉันได้รับมาจาก ผู้ตรวจสอบที่ซื่อสัตย์และอยู่ในแบบฟอร์ม mr,2 เจ = (ESIGj(H(Br ër)), \(\sigma\)r,2 j ) โดยไม่มีความขัดแย้ง ดังนั้น ณ เวลา \(\beta\)r,3 ฉัน ผู้เล่นที่ฉันเผยแพร่นาย 3 ฉัน = (ESIGi(v′), \(\sigma\)r,3 i ) โดยที่ v′ = H(Br ër)ขั้นตอนที่ 4 แก้ไขผู้ตรวจสอบที่ซื่อสัตย์โดยพลการ i \(\in\)HSV r,4 โดย Lemma 5.5 ผู้เล่นที่ฉันได้รับทั้งหมด ข้อความที่ส่งโดยผู้ตรวจสอบใน HSV r,3 เมื่อเขารอเสร็จแล้วที่เวลา \(\beta\)r,4 ฉัน = \(\alpha\)อาร์,4 ฉัน +t4. คล้ายกับ ขั้นตอนที่ 3 มากกว่า 2/3 ของข้อความที่ถูกต้อง (r, 3) ทั้งหมดที่ฉันได้รับมาจากผู้ตรวจสอบที่ซื่อสัตย์และ ของแบบฟอร์มนาย3 เจ = (ESIGj(H(Br ër)), \(\sigma\)r,3 เจ) ดังนั้น ผู้เล่น i ตั้งค่า vi = H(Br ër), gi = 2 และ bi = 0 ณ เวลา \(\beta\)r,4 ฉัน = \(\alpha\)อาร์,4 ฉัน +t4 เขาแพร่กระจาย นาย4 ฉัน = (ESIGi(0), ESIGi(H(Br ër)), \(\sigma\)r,4 ฉัน) ขั้นตอนที่ 5 แก้ไขผู้ตรวจสอบที่ซื่อสัตย์โดยพลการ i \(\in\)HSV r,5 โดย Lemma 5.5 ผู้เล่นที่ผมอยากได้ ได้รับข้อความทั้งหมดที่ส่งโดยผู้ตรวจสอบใน HSV r,4 หากเขารอจนถึงเวลา \(\alpha\)r,5 ฉัน +t5. โปรดทราบว่า |HSV r,4| \(\geq\)tH.19 โปรดทราบว่าผู้ตรวจสอบทั้งหมดใน HSV r,4 ได้ลงนามใน H(Br ër) เป็น |MSV r,4| < tH ไม่มี v′ ̸= H(Br lr) ที่อาจได้รับการลงนามโดย th ผู้ตรวจสอบใน SV r,4 (ซึ่งจำเป็นต้องเป็นอันตราย) ดังนั้นผู้เล่น ฉันจะไม่หยุดก่อนที่เขาจะทำเช่นนั้น ได้รับข้อความที่ถูกต้องแล้วคุณ 4 เจ = (ESIGj(0), ESIGj(H(Br ër)), \(\sigma\)r,4 เจ) ให้ T เป็นเวลาที่ เหตุการณ์หลังเกิดขึ้น ข้อความเหล่านั้นบางส่วนอาจมาจากผู้เล่นที่เป็นอันตราย แต่เนื่องจาก |MSV r,4| < อย่างน้อยหนึ่งในนั้นมาจากผู้ตรวจสอบที่ซื่อสัตย์ใน HSV r,4 และถูกส่งตามเวลา ที อาร์ +ที4. ดังนั้น T \(\geq\)T r +t4 > T r +แล+Λ \(\geq\) \(\beta\)r,1 LRr +Λ และตามเวลาที่ผู้เล่น T ฉันก็ได้รับเช่นกัน ข้อความคุณ1 lr. โดยการสร้างโปรโตคอล ผู้เล่น ฉัน หยุดที่เวลา \(\beta\)r,5 ฉัน = T ไม่มี เผยแพร่สิ่งใด ๆ เซต Br = Br lr; และตั้งค่า CERT r ของเขาเองให้เป็นชุดของ (r, 4) - ข้อความสำหรับ 0 และ H(br lr) ที่เขาได้รับ ขั้นตอนที่ > 5 ในทำนองเดียวกัน สำหรับขั้นตอนใดๆ ที่ s > 5 และตัวตรวจสอบใดๆ i \(\in\)HSV r,s ผู้เล่น ฉันจะมี ได้รับข้อความทั้งหมดที่ส่งโดยผู้ตรวจสอบใน HSV r,4 หากเขารอจนถึงเวลา \(\alpha\)r,s ฉัน + ทีเอส โดย การวิเคราะห์เดียวกัน ผู้เล่นฉันหยุดโดยไม่เผยแพร่อะไรเลย การตั้งค่า Br = Br ër (และตั้งค่าของเขาเอง CERT r อย่างถูกต้อง) แน่นอนว่าผู้ตรวจสอบที่เป็นอันตรายไม่สามารถหยุดและอาจแพร่กระจายโดยพลการ ข้อความ แต่เนื่องจาก |MSV r,s| < tH โดยการเหนี่ยวนำไม่มี v′ อื่นใดที่สามารถลงนามโดยผู้ตรวจสอบได้ ในขั้นตอนที่ 4 \(\leq\)s′ < s ดังนั้นผู้ตรวจสอบที่ซื่อสัตย์จึงหยุดเพียงเพราะพวกเขาได้รับความถูกต้องแล้ว (r, 4) - ข้อความสำหรับ 0 และ H (Br ër) การสร้างบล็อก Round-r ใหม่ การวิเคราะห์ขั้นตอนที่ 5 นำไปใช้กับความซื่อสัตย์ทั่วไป ผู้ใช้ฉันเกือบจะไม่มีการเปลี่ยนแปลงใด ๆ อันที่จริง ผู้เล่น i เริ่มรอบของตัวเอง r ในช่วงเวลา Ir และ จะหยุดที่เวลา T เมื่อเขาได้รับข้อความที่ถูกต้อง (r, 4) สำหรับ H (Br ër) อีกครั้งเพราะ อย่างน้อยหนึ่งในข้อความเหล่านั้นมาจากผู้ตรวจสอบที่ซื่อสัตย์และถูกส่งหลังจากเวลาผ่านไป T r + t4 ผู้เล่นที่ฉันมี รับนาย1ด้วย ër ตามเวลา T ดังนั้นเขาจึงกำหนดให้ Br = Br lr ด้วย CERT r ที่เหมาะสม เหลือเพียงการแสดงให้ผู้ใช้ที่ซื่อสัตย์ทุกคนจบรอบ r ภายในระยะเวลา Ir+1 จากการวิเคราะห์ขั้นตอนที่ 5 ผู้ตรวจสอบที่ซื่อสัตย์ทุกคน i \(\in\)HSV r,5 รู้ Br บนหรือก่อน \(\alpha\)r,5 ฉัน + t5 \(\leq\) T r + แล + t5 = T r + 8แล + Λ เนื่องจาก T r+1 คือเวลาที่ผู้ใช้ที่ซื่อสัตย์คนแรก ir รู้จัก Br เราก็เลยมี T r+1 \(\leq\)T r + 8แล + Λ ตามต้องการ ยิ่งไปกว่านั้น เมื่อผู้เล่นรู้จัก Br เขาได้ช่วยเผยแพร่ข้อความไปแล้ว CERT r ของเขา โปรดทราบว่าข้อความเหล่านั้นทั้งหมดจะได้รับจากผู้ใช้ที่ซื่อสัตย์ทุกคนภายในเวลา \(\lambda\) แม้ว่าก็ตาม 19พูดอย่างเคร่งครัด สิ่งนี้เกิดขึ้นโดยมีความเป็นไปได้สูงมาก แต่ก็ไม่ได้เกินความจำเป็นเสมอไป อย่างไรก็ตามสิ่งนี้ ความน่าจะเป็นจะส่งผลต่อเวลาการทำงานของโปรโตคอลเล็กน้อย แต่ไม่ส่งผลต่อความถูกต้อง เมื่อ h = 80% แล้ว |HSV r,4| \(\geq\)tH ด้วยความน่าจะเป็น 1 −10−8 หากเหตุการณ์นี้ไม่เกิดขึ้น โปรโตคอลก็จะดำเนินต่อไปอีกเหตุการณ์หนึ่ง 3 ขั้นตอน เนื่องจากความน่าจะเป็นที่สิ่งนี้จะไม่เกิดขึ้นในสองขั้นตอนนั้นมีน้อยมาก โปรโตคอลจะสิ้นสุดที่ขั้นตอนที่ 8 ใน ความคาดหวังจำนวนขั้นตอนที่ต้องการคือเกือบ 5ผู้เล่น ir เป็นผู้เล่นคนแรกที่เผยแพร่สิ่งเหล่านี้ ยิ่งกว่านั้นตามการวิเคราะห์ข้างต้นที่เรามี T r+1 \(\geq\)T r + t4 \(\geq\) \(\beta\)r,1 LRr + Λ ดังนั้นผู้ใช้ที่ซื่อสัตย์ทุกคนจึงได้รับ mr,1 ërตามเวลา T r+1 + แล ดังนั้น ผู้ใช้ที่ซื่อสัตย์ทุกคนรู้จัก Br ในช่วงเวลา Ir+1 = [T r+1, T r+1 + แล] ในที่สุด สำหรับ r = 0 เรามี T 1 \(\leq\)t4 + แล = 6แล + Λ ผสมผสานทุกอย่างเข้าด้วยกัน แผ่นแทรก 5.2 ถือ ■ 5.8 ความสมบูรณ์ของเล็มมา เลมมา 5.3 [ความสมบูรณ์ของเล็มมา ปรับปรุงใหม่] สมมุติว่าคุณสมบัติ 1–3 คงไว้สำหรับรอบ r −1 เมื่อ ผู้นำ lr เป็นคนที่เป็นอันตราย ด้วยความน่าจะเป็นอย่างล้นหลาม ผู้ใช้ที่ซื่อสัตย์ทุกคนเห็นด้วยกับบล็อกเดียวกัน Br, T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ และผู้ใช้ที่ซื่อสัตย์ทุกคนจะทราบ Br ในช่วงเวลา Ir+1 การพิสูจน์. เราพิจารณาทั้งสองส่วนของโปรโตคอล GC และ BBA⋆ แยกกัน GC. ตามสมมติฐานอุปนัยและบทแทรก 5.5 สำหรับขั้นตอนใดๆ s \(\in\){2, 3, 4} และความซื่อสัตย์ใดๆ ตรวจสอบ i \(\in\)HSV r,s เมื่อผู้เล่น i ทำหน้าที่ ณ เวลา \(\beta\)r,s ฉัน = \(\alpha\)r,s ฉัน + ts เขาได้รับข้อความที่ส่งทั้งหมดแล้ว โดยผู้ตรวจสอบที่ซื่อสัตย์ทุกคนในขั้นตอน s′ < s เราแยกความแตกต่างสองกรณีที่เป็นไปได้สำหรับขั้นตอนที่ 4 กรณีที่ 1 ไม่มีการยืนยัน i \(\in\)HSV r,4 เซ็ต gi = 2 ในกรณีนี้ ตามคำจำกัดความ bi = 1 สำหรับผู้ตรวจสอบทั้งหมด i \(\in\)HSV r,4 นั่นคือพวกเขาเริ่มต้นด้วย ข้อตกลงในวันที่ 1 ในโปรโตคอล BA ไบนารี พวกเขาอาจไม่มีข้อตกลงเกี่ยวกับ vi ของพวกเขา แต่นั่นไม่สำคัญอย่างที่เราเห็นในไบนารี่ BA กรณีที่ 2 มีตัวยืนยัน ˆi \(\in\)HSV r,4 อยู่ โดยที่ gˆi = 2 ในกรณีนี้ เราแสดงให้เห็นแล้วว่า (1) gi \(\geq\)1 สำหรับ i \(\in\)HSV r,4 ทั้งหมด (2) มีค่า v′ อยู่ โดยที่ vi = v′ สำหรับ i \(\in\)HSV r,4 ทั้งหมด และ (3) มีข้อความที่ถูกต้องคือ mr,1 ฎ จากผู้ตรวจสอบบางราย ë\(\in\)SV r,1 โดยที่ v′ = H(Br ë) เนื่องจากผู้เล่น ˆi ซื่อสัตย์และตั้งค่า gˆi = 2 มากกว่า 2/3 ของข้อความที่ถูกต้องทั้งหมด mr,3 เจ เขาได้รับเป็นค่าเดียวกัน v′ ̸= \(\bot\) และเขาได้ตั้งค่า vˆi = v′ โดยคุณสมบัติ (d) ในบทแทรก 5.5 สำหรับผู้ตรวจสอบที่ซื่อสัตย์ (r, 4) อื่น ๆ จะไม่สามารถเป็นได้มากไปกว่านี้ มากกว่า 2/3 ของข้อความที่ถูกต้องทั้งหมด mr,3 เจ ที่ฉันได้รับนั้นมีค่าเท่ากัน v′′ ̸= v′ ดังนั้น หากฉันตั้งค่า gi = 2 จะต้องเห็นว่าฉันเห็น > 2/3 ส่วนใหญ่สำหรับ v′ ด้วยเช่นกัน และตั้งค่า vi = v′ ตามต้องการ ตอนนี้ให้พิจารณาตัวยืนยันโดยพลการ i \(\in\)HSV r,4 ด้วย gi < 2 คล้ายกับการวิเคราะห์คุณสมบัติ (d) ในบทแทรก 5.5 เนื่องจากผู้เล่น ˆi ได้เห็น > 2/3 ส่วนใหญ่สำหรับ v′ มากกว่า 1 2|HSV r,3| ซื่อสัตย์ (r, 3) - ผู้ตรวจสอบได้ลงนาม v′ เพราะฉันได้รับข้อความทั้งหมดจากผู้ตรวจสอบที่ซื่อสัตย์ (r, 3) โดย เวลา \(\beta\)r,4 ฉัน = \(\alpha\)อาร์,4 ฉัน +t4 โดยเฉพาะเขาได้รับมากกว่า 1 2|HSV r,3| ข้อความจากพวกเขา สำหรับวี' เพราะ |HSV r,3| > 2|MSV r,3|, ฉันได้เห็นแล้ว > 1/3 ส่วนใหญ่สำหรับ v′ ตามนั้นครับ ผู้เล่น ฉันตั้งค่า gi = 1 และทรัพย์สิน (1) ถืออยู่ ผู้เล่นจำเป็นต้องตั้งค่า vi = v′ หรือไม่? สมมติว่ามีค่าที่แตกต่างกัน v′′ ̸= \(\bot\)เช่นนั้น ผู้เล่นที่ฉันเคยเห็น > 1/3 ส่วนใหญ่สำหรับ v′′ ข้อความเหล่านั้นบางส่วนอาจมาจากที่เป็นอันตราย ผู้ตรวจสอบ แต่อย่างน้อยหนึ่งในนั้นมาจากผู้ตรวจสอบที่ซื่อสัตย์บางคน j \(\in\)HSV r,3: แน่นอน เพราะ |HSV r,3| > 2|MSV r,3| และฉันได้รับข้อความทั้งหมดจาก HSV r,3 กลุ่มผู้ประสงค์ร้าย ผู้ตรวจสอบที่ฉันได้รับข้อความที่ถูกต้อง (r, 3) นับเป็น < 1/3 ของข้อความที่ถูกต้องทั้งหมด ข้อความที่เขาได้รับตามคำจำกัดความ ผู้เล่น j ต้องเห็น > 2/3 ส่วนใหญ่สำหรับ v′′ ในบรรดาข้อความที่ถูกต้อง (r, 2) ทั้งหมด เขาได้รับ. อย่างไรก็ตาม เรามีผู้ตรวจสอบที่ซื่อสัตย์ (r, 3) คนอื่นๆ ได้เห็นแล้ว 2/3 ส่วนใหญ่สำหรับ v′ (เพราะพวกเขาเซ็นชื่อ v′) โดยคุณสมบัติ (d) ของ Lemma 5.5 สิ่งนี้ไม่สามารถทำได้ เกิดขึ้นและไม่มีค่าดังกล่าว v′′ อยู่ ดังนั้นผู้เล่นฉันต้องตั้งค่า vi = v′ ตามต้องการ และทรัพย์สิน (2) ถือครอง ท้ายที่สุด เมื่อพิจารณาว่าผู้ตรวจสอบที่ซื่อสัตย์ (r, 3) บางคนได้เห็น > 2/3 ส่วนใหญ่สำหรับ v′ บางคน (จริงๆ แล้ว มากกว่าครึ่งหนึ่งของ) ผู้ตรวจสอบที่ซื่อสัตย์ (r, 2) ได้ลงนามใน v′ และเผยแพร่ข้อความของพวกเขา โดยการสร้างเกณฑ์วิธี ผู้ตรวจสอบที่ซื่อสัตย์ (r, 2) เหล่านั้นจะต้องได้รับใบรับรองที่ถูกต้อง ส่งข้อความถึงคุณ1 ฎ จากผู้เล่นบางคน ë\(\in\)SV r,1 โดยมี v′ = H(Br ̵) ดังนั้นทรัพย์สิน (3) ถืออยู่ บีบีเอ⋆. เราแยกสองกรณีอีกครั้ง กรณีที่ 1 ผู้ตรวจสอบทั้งหมด i \(\in\)HSV r,4 มี bi = 1 สิ่งนี้เกิดขึ้นหลังจากกรณีที่ 1 ของ GC เป็น |MSV r,4| < tH ในกรณีนี้ไม่มีผู้ยืนยันใน SV r,5 สามารถรวบรวมหรือสร้างข้อความที่ถูกต้อง (r, 4) สำหรับบิต 0 ดังนั้นจึงไม่มีผู้ตรวจสอบที่ซื่อสัตย์ใน HSV r,5 จะหยุดเพราะเขารู้จักบล็อกที่ไม่ว่างเปล่า Br. ยิ่งไปกว่านั้น แม้ว่าจะมีข้อความที่ถูกต้อง (r, 4) เป็นอย่างน้อยสำหรับบิต 1 แต่ s′ = 5 ก็ไม่เป็นไปตามนั้น s′ −2 ≡1 mod 3 ดังนั้น จึงไม่มีผู้ตรวจสอบที่ซื่อสัตย์ใน HSV r,5 จะหยุดลงเพราะเขารู้ว่า Br = Br ī. ในทางกลับกัน ผู้ตรวจสอบทุกราย i \(\in\)HSV r,5 ทำหน้าที่ ณ เวลา \(\beta\)r,5 ฉัน = \(\alpha\)อาร์,5 ฉัน +t5 โดยเมื่อเขาได้รับครบแล้ว ข้อความที่ส่งโดย HSV r,4 ตามบทแทรก 5.5 ดังนั้นผู้เล่นฉันจึงเห็น > 2/3 ส่วนใหญ่สำหรับ 1 และกำหนดให้ bi = 1 ในขั้นตอนที่ 6 ซึ่งเป็นขั้นตอน Coin-Fixed-To-1 แม้ว่า s′ = 5 จะเป็นไปตาม s′ −2 ≡0 mod 3 ก็ตาม ไม่มีข้อความที่ถูกต้อง (r, 4) สำหรับบิต 0 ดังนั้นจึงไม่มีผู้ตรวจสอบใน HSV r,6 ที่จะหยุดเพราะว่า เขารู้จักบล็อกที่ไม่ว่างเปล่า Br อย่างไรก็ตาม ด้วย s′ = 6, s′ −2 ≡1 mod 3 และมีอยู่จริง |HSV r,5| \(\geq\)tH ข้อความที่ถูกต้อง (r, 5) สำหรับบิต 1 จาก HSV r,5 สำหรับทุกผู้ตรวจสอบ i \(\in\)HSV r,6 ตามบทแทรก 5.5 ในหรือก่อนเวลา \(\alpha\)r,6 ฉัน + ผู้เล่น t6 ฉัน ได้รับข้อความทั้งหมดจาก HSV r,5 ดังนั้นฉันจึงหยุดโดยไม่เผยแพร่สิ่งใดและตั้งค่า บร = บร ī. CERT r ของเขาคือชุดของข้อความที่ถูกต้อง (r, 5) mr,5 เจ = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 เจ) เขาได้รับเมื่อเขาหยุด ถัดไป ให้ฉันเป็นผู้ตรวจสอบที่ซื่อสัตย์ในขั้นตอนที่ > 6 หรือเป็นผู้ใช้ที่ซื่อสัตย์ทั่วไป (เช่น ไม่ใช่ผู้ตรวจสอบ) คล้ายกับการพิสูจน์ Lemma 5.2 ผู้เล่น i ตั้งค่า Br = Br ǫและกำหนดของเขาเอง CERT r เป็นชุดของข้อความที่ถูกต้อง (r, 5) mr,5 เจ = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 เจ) เขามี ได้รับ. สุดท้ายก็คล้ายกับ Lemma 5.2 ที อาร์+1 \(\leq\) นาที i\(\in\)HSV r,6 \(\alpha\)r,6 ฉัน + t6 \(\leq\)T r + แล + t6 = T r + 10แล + Λ, และผู้ใช้ที่ซื่อสัตย์ทุกคนจะรู้จัก Br ในช่วงเวลา Ir+1 เพราะผู้ใช้ที่ซื่อสัตย์คนแรกคือใคร รู้ว่า Br ได้ช่วยเผยแพร่ข้อความ (r, 5) ใน CERT r ของเขา กรณีที่ 2 มีตัวยืนยัน ˆi \(\in\)HSV r,4 โดยมี bˆi = 0 สิ่งนี้เกิดขึ้นหลังจากกรณีที่ 2 ของ GC และเป็นกรณีที่มีความซับซ้อนมากขึ้น โดยการวิเคราะห์ของ GC พบว่า ในกรณีนี้มีข้อความที่ถูกต้อง mr,1 ฎ โดยที่ vi = H(Br ̵) สำหรับ i \(\in\)HSV r,4 ทั้งหมด หมายเหตุ ว่าผู้ตรวจสอบใน HSV r,4 อาจไม่มีข้อตกลงเกี่ยวกับ Bi's ของตน สำหรับขั้นตอนใดๆ s \(\in\){5, . . . , m + 3} และตัวตรวจสอบ i \(\in\)HSV r,s โดยผู้เล่น Lemma 5.5 ฉันจะมี ได้รับข้อความทั้งหมดที่ส่งโดยผู้ตรวจสอบที่ซื่อสัตย์ทุกคนใน HSV r,4 \(\cup\) \(\cdots\) \(\cup\)HSV r,s−1 หากเขารออยู่ เป็นเวลา tsตอนนี้เราพิจารณาเหตุการณ์ต่อไปนี้ E: มีขั้นตอน s∗\(\geq\)5 เช่นนั้น สำหรับขั้นตอนแรก เวลาในไบนารี BA ผู้เล่นบางคน i∗\(\in\)SV r,s∗ (ไม่ว่าจะเป็นอันตรายหรือซื่อสัตย์) ควรหยุด โดยไม่ต้องเผยแพร่อะไรเลย เราใช้คำว่า "ควรหยุด" เพื่อเน้นย้ำความจริงที่ว่า หากผู้เล่น i∗ เป็นอันตรายแล้วอาจแสร้งทำเป็นว่าไม่ควรหยุดตามระเบียบและ เผยแพร่ข้อความที่ฝ่ายตรงข้ามเลือก อีกทั้งโดยการสร้างโปรโตคอลอีกด้วย (E.a) ฉันสามารถรวบรวมหรือสร้างข้อความที่ถูกต้องได้อย่างน้อย mr,s′−1 เจ = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 เจ ) สำหรับ v และ s′ เดียวกัน โดยมี 5 \(\leq\)s′ \(\leq\)s∗ และ s′ −2 ≡0 mod 3; หรือ (E.b) ฉัน∗สามารถรวบรวมหรือสร้างข้อความที่ถูกต้องได้อย่างน้อย mr,s′−1 เจ = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 เจ ) สำหรับ s′ เดียวกัน โดยมี 6 \(\leq\)s′ \(\leq\)s∗ และ s′ −2 ≡1 mod 3 เนื่องจากข้อความที่ซื่อสัตย์ (r, s′ −1) ได้รับจากผู้ตรวจสอบที่ซื่อสัตย์ (r, s′) ทั้งหมดก่อนหน้าพวกเขา เสร็จสิ้นการรอคอยในขั้นตอน s′ และเนื่องจากปฏิปักษ์ได้รับทุกสิ่งไม่ช้ากว่านั้น ผู้ใช้ที่ซื่อสัตย์ โดยไม่สูญเสียความทั่วไป เรามี s′ = s∗และผู้เล่น i∗เป็นอันตราย โปรดทราบว่า เราไม่ต้องการให้ค่า v ใน E.a เป็น hash ของบล็อกที่ถูกต้อง เนื่องจากจะชัดเจนขึ้น ในการวิเคราะห์ v = H(Br ̵) ในกิจกรรมย่อยนี้ ด้านล่างนี้ เราจะวิเคราะห์กรณีที่ 2 ตามเหตุการณ์ E ก่อน แล้วจึงแสดงว่าค่าของ s∗ นั้นสำคัญมาก กระจายไปตาม Lr (เหตุการณ์ E เกิดขึ้นก่อนขั้นตอน m + 3 อย่างท่วมท้น) ความน่าจะเป็นที่กำหนดความสัมพันธ์สำหรับพารามิเตอร์) เริ่มต้นด้วย สำหรับขั้นตอนใดๆ ที่ 5 \(\leq\)s < s∗ ผู้ตรวจสอบที่ซื่อสัตย์ทุกคน i \(\in\)HSV r,s ได้รอเวลา ts และกำหนดให้ vi เป็นเสียงข้างมากของ ถูกต้อง (r, s−1) - ข้อความที่เขาได้รับ เนื่องจากผู้เล่นฉันได้รับข้อความที่ซื่อสัตย์ (r, s−1) ทั้งหมด ตามบทแทรก 5.5 เนื่องจากผู้ตรวจสอบที่ซื่อสัตย์ทุกคนใน HSV r,4 ได้ลงนาม H(Br ̵) ต่อไปนี้กรณี 2 ของ GC และตั้งแต่ |HSV r,s−1| > 2|MSV r,s−1| สำหรับแต่ละ s โดยการเหนี่ยวนำเรามีผู้เล่นคนนั้น i ได้ตั้งค่าแล้ว วี = H(br ë) สิ่งเดียวกันนี้ใช้ได้กับผู้ตรวจสอบที่ซื่อสัตย์ทุกคน i \(\in\)HSV r,s∗ ซึ่งไม่หยุดโดยไม่เผยแพร่ อะไรก็ได้ ตอนนี้เราพิจารณาขั้นตอน s∗ และแยกแยะกรณีย่อยสี่กรณี กรณี 2.1.ก. เหตุการณ์ E.a เกิดขึ้นและมีผู้ยืนยันอย่างตรงไปตรงมาว่า i′ \(\in\)HSV r,s∗ใครควร ก็หยุดไม่เผยแพร่อะไรทั้งนั้น ในกรณีนี้ เรามี s∗−2 ≡0 mod 3 และขั้นตอน s∗เป็นขั้นตอน Coin-Fixed-To-0 โดย คำจำกัดความ ผู้เล่นที่ i′ ได้รับข้อความที่ถูกต้อง (r, s∗−1) ของแบบฟอร์มอย่างน้อย (ESIGj(0), ESIGj(v), \(\sigma\)r,s∗−1 เจ ). เนื่องจากผู้ตรวจสอบทั้งหมดใน HSV r,s∗−1 ได้ลงนาม H(Br ̵) และ |MSV r,s∗−1| < tH เรามี v = H(Br ë) เนื่องจากอย่างน้อย tH −|MSV r,s∗−1| \(\geq\)1ของ (r, s∗−1) - ข้อความที่ได้รับโดย i′ สำหรับ 0 และ v ถูกส่งโดยผู้ตรวจสอบใน HSV r,s∗−1 หลังจากเวลา T r +ts∗−1 \(\geq\)T r +t4 \(\geq\)T r +แล+Λ \(\geq\) \(\beta\)r,1 ฎ +Λ, ผู้เล่นที่ฉันได้รับ mr,1 ฎ เมื่อถึงเวลาที่เขาได้รับข้อความ (r, s∗−1) เหล่านั้น ดังนั้นผู้เล่น ฉันหยุดโดยไม่เผยแพร่อะไรเลย เซต Br = Br ̵;; และกำหนดให้ CERT r ของเขาเองเป็น ชุดของข้อความที่ถูกต้อง (r, s∗−1) สำหรับ 0 และ v ที่เขาได้รับ ต่อไป เราจะแสดงว่า ผู้ตรวจสอบอื่นๆ i \(\in\)HSV r,s∗ หยุดโดยที่ Br = Br ̵, หรือ ได้ตั้งค่า bi = 0 และเผยแพร่ (ESIGi(0), ESIGi(H(Br ë)), \(\sigma\)r,s ฉัน) แน่นอน เพราะขั้นตอนs∗ เป็นครั้งแรกที่ผู้ตรวจสอบควรหยุดโดยไม่เผยแพร่สิ่งใดๆ เลย แต่กลับไม่เป็นเช่นนั้น มีขั้นตอน s′ < s∗กับ s′ −2 ≡1 mod 3 โดยที่ tH (r, s′ −1) -ผู้ตรวจสอบได้ลงนาม 1 ดังนั้น จึงไม่มีผู้ยืนยันใน HSV r,s∗หยุดด้วย Br = Br ī.ยิ่งไปกว่านั้น ในฐานะผู้ตรวจสอบที่ซื่อสัตย์ทุกคนในขั้นตอนที่ {4, 5, . . , s∗−1} ได้ลงนาม H(Br ̵) มีแล้ว ไม่มีขั้นตอน s′ \(\leq\)s∗กับ s′ −2 ≡0 mod 3 ซึ่งผู้ตรวจสอบ tH (r, s′ −1) ได้ลงนามแล้ว บ้าง v′′ ̸= H(Br ë) —แท้จริงแล้ว |MSV r,s′−1| < TH. ดังนั้น จึงไม่มีผู้ยืนยันใน HSV r,s∗stop ด้วย Br ̸= Br ǫ และ Br ̸= Br ฎ. นั่นคือหากผู้เล่น i \(\in\)HSV r,s∗ หยุดโดยไม่มี เผยแพร่อะไรเขาก็ต้องตั้ง Br = Br ฎ. หากผู้เล่น i \(\in\)HSV r,s∗ รอเวลา ts∗ และเผยแพร่ข้อความในตอนนั้น \(\beta\)r,s∗ ฉัน = \(\alpha\)r,s∗ ฉัน + ts∗ เขาได้รับข้อความทั้งหมดจาก HSV r,s∗−1 รวมถึงอย่างน้อย TH −|MSV r,s∗−1| ของพวกเขาสำหรับ 0 และ v หากฉันเห็น > 2/3 ส่วนใหญ่สำหรับ 1 แสดงว่าเขา ได้เห็นข้อความที่ถูกต้องมากกว่า 2(tH −|MSV r,s∗−1|) (r, s∗−1) สำหรับ 1 โดยมีมากกว่านั้น มากกว่า 2tH −3|MSV r,s∗−1| ของพวกเขาจากผู้ซื่อสัตย์ (r, s∗−1) - ผู้ตรวจสอบ อย่างไรก็ตาม นี่หมายถึง |HSV r,s∗−1| \(\geq\)tH−|MSV r,s∗−1|+2tH−3|MSV r,s∗−1| > 2n−4|MSV r,s∗−1|, ขัดแย้งกัน ความจริงที่ว่า |HSV r,s∗−1| + 4|MSV r,s∗−1| <2n, ซึ่งมาจากความสัมพันธ์ของพารามิเตอร์ ดังนั้น ฉันไม่เห็น > 2/3 ส่วนใหญ่สำหรับ 1 และเขาตั้งค่า bi = 0 เพราะขั้นตอน s∗ เป็นขั้นตอน Coin-Fixed-To-0 ตามที่เรามี เห็นแล้ว vi = H(Br ë) ดังนั้นฉันจึงเผยแพร่ (ESIGi(0), ESIGi(H(Br ë)), \(\sigma\)r,s ผม ) ตามที่เราต้องการ แสดง สำหรับขั้นตอน s∗+ 1 เนื่องจากผู้เล่น i′ ได้ช่วยเผยแพร่ข้อความใน CERT r ของเขา ในหรือก่อนเวลา \(\alpha\)r,s∗ ฉัน' + ts∗ ผู้ตรวจสอบที่ซื่อสัตย์ทุกคนใน HSV r,s∗+1 ได้รับอย่างน้อย ข้อความที่ถูกต้อง (r, s∗−1) สำหรับบิต 0 และค่า H(Br ̵) ในหรือก่อนที่จะเสร็จสิ้น กำลังรอ นอกจากนี้ ผู้ตรวจสอบใน HSV r,s∗+1 จะไม่หยุดก่อนรับ (r, s∗−1)- ข้อความ เนื่องจากไม่มีข้อความที่ถูกต้อง (r, s′ −1) อื่นใดสำหรับบิต 1 ด้วย s′ −2 ≡1 mod 3 และ 6 \(\leq\)s′ \(\leq\)s∗+ 1 โดยนิยามของขั้นตอน s∗ โดยเฉพาะขั้นตอน s∗+ 1 นั้นเป็นขั้นตอน Coin-Fixed-To-1 แต่ไม่มีผู้ตรวจสอบที่ซื่อสัตย์ใน HSV r,s∗ ได้แพร่กระจาย ข้อความสำหรับ 1 และ |MSV r,s∗| < TH. ดังนั้นผู้ตรวจสอบที่ซื่อสัตย์ทุกคนใน HSV r,s∗+1 หยุดโดยไม่เผยแพร่อะไรเลยและตั้งค่า Br = บ ̵: เหมือนเมื่อก่อนพวกเขาได้รับนาย 1 แล้ว ฎ ก่อนที่พวกเขาจะได้รับข้อความที่ต้องการ (r, s∗−1)-20 สิ่งเดียวกันนี้อาจกล่าวได้สำหรับผู้ตรวจสอบที่ซื่อสัตย์ทุกคนในขั้นตอนต่อๆ ไปและผู้ใช้ที่ซื่อสัตย์โดยทั่วไป โดยเฉพาะพวกเขาทุกคนรู้จัก Br = Br ่ภายในช่วงเวลา Ir+1 และ T r+1 \(\leq\) \(\alpha\)r,s∗ ฉัน' + ts∗\(\leq\)T r + แล + ts∗ กรณี 2.1.ข. เหตุการณ์ E.b เกิดขึ้นและมีผู้ยืนยันอย่างตรงไปตรงมาว่า i′ \(\in\)HSV r,s∗ใครควร ก็หยุดไม่เผยแพร่อะไรทั้งนั้น ในกรณีนี้เรามี s∗−2 ≡1 mod 3 และขั้นตอน s∗เป็นขั้นตอน Coin-Fixed-To-1 การวิเคราะห์ คล้ายกับกรณีที่ 2.1.a และละเว้นรายละเอียดหลายอย่าง 20หากมีเจตนาร้าย เขาอาจจะส่งนาย1ออกไป ฎ ล่าช้า หวังว่าผู้ใช้/ผู้ตรวจสอบที่ซื่อสัตย์บางคนยังไม่ได้รับ mr,1 ฎ ยัง เมื่อพวกเขาได้รับใบรับรองที่ต้องการแล้ว อย่างไรก็ตาม เนื่องจากตัวตรวจสอบ ˆi \(\in\)HSV r,4 ได้ตั้งค่า bˆi = 0 และ vˆi = H(Br ë) เช่น ก่อนที่เราจะมีผู้ตรวจสอบที่ซื่อสัตย์มากกว่าครึ่งหนึ่ง i \(\in\)HSV r,3 ได้ตั้งค่า vi = H(Br ë) นี่ยังหมายความอีกว่า กว่าครึ่งหนึ่งของผู้ตรวจสอบที่ซื่อสัตย์ i \(\in\)HSV r,2 ได้ตั้งค่า vi = H(Br ë) และผู้ตรวจสอบ (r, 2) ทั้งหมดได้รับ mr, 1 แล้ว ฎ. ในฐานะที่เป็น ฝ่ายตรงข้ามไม่สามารถแยกแยะผู้ตรวจสอบจากผู้ไม่ยืนยันได้ เขาไม่สามารถกำหนดเป้าหมายการแพร่กระจายของนาย1 ฎ ถึง (r, 2) - ผู้ตรวจสอบ โดยไม่ให้ผู้ไม่ยืนยันเห็นมัน จริงๆแล้วมีโอกาสสูงเกินครึ่ง (หรือเศษส่วนคงที่ที่ดี) ของผู้ใช้ที่ซื่อสัตย์ทุกคนได้เห็นคุณ 1 ฎ หลังจากรอ t2 มาตั้งแต่เริ่มรอบ r ของตัวเองแล้ว ทั้งนี้ ตั้งแต่บัดนี้เป็นต้นไป เวลา แล ′ ที่จำเป็นสำหรับนาย 1 ฎ การเข้าถึงผู้ใช้ที่ซื่อสัตย์ที่เหลืออยู่นั้นมีขนาดเล็กกว่า Λ มากและเพื่อความเรียบง่ายเราไม่ทำ เขียนมันออกมาในการวิเคราะห์ ถ้า 4แล \(\geq\)แลต การวิเคราะห์ดำเนินไปโดยไม่มีการเปลี่ยนแปลงใดๆ: เมื่อสิ้นสุดขั้นตอนที่ 4 ทั้งหมด ผู้ใช้ที่ซื่อสัตย์จะได้รับ mr,1 ฎ. หากขนาดของบล็อกใหญ่ขึ้นและ 4แล < แล' ดังนั้นในขั้นตอนที่ 3 และ 4 โปรโตคอลสามารถขอให้ผู้ตรวจสอบแต่ละคนรอ \(\gamma\)′/2 แทนที่จะเป็น 2แล และการวิเคราะห์ยังคงดำเนินต่อไปเหมือนเมื่อก่อน ผู้เล่น i′ ต้องได้รับข้อความที่ถูกต้อง (r, s∗−1) ของแบบฟอร์มอย่างน้อย (ESIGj(1), ESIGj(vj), \(\sigma\)r,s∗−1 เจ ). อีกครั้งตามคำจำกัดความของ s∗ ไม่มีขั้นตอนใดอยู่ 5 \(\leq\)s′ < s∗กับ s′ −2 ≡0 mod 3 โดยที่อย่างน้อย tH (r, s′ −1) -ผู้ตรวจสอบได้ลงนาม 0 และ v เดียวกัน ดังนั้นผู้เล่นจึงหยุดโดยไม่เผยแพร่อะไรเลย เซต Br = Br ǫ; และชุด CERT r ของเขาเองจะเป็นชุดของข้อความที่ถูกต้อง (r, s∗−1) สำหรับบิต 1 ที่เขาได้รับ ยิ่งไปกว่านั้น ตัวตรวจสอบอื่นๆ i \(\in\)HSV r,s∗ ได้หยุดโดยที่ Br = Br ǫ หรือตั้งไว้ว่า bi = 1 และเผยแพร่ (ESIGi(1), ESIGi(vi), \(\sigma\)r,s∗ ฉัน ). เนื่องจากผู้เล่นฉันได้ช่วยเผยแพร่ ข้อความ (r, s∗−1) ใน CERT ของเขา r ตามเวลา \(\alpha\)r,s∗ ฉัน' + ts∗ ผู้ตรวจสอบที่ซื่อสัตย์ทุกคนเข้ามาอีกครั้ง HSV r,s∗+1 หยุดโดยไม่มีการแพร่กระจายใดๆ และตั้งค่า Br = Br ī. ในทำนองเดียวกันทุกคนซื่อสัตย์ ผู้ใช้รู้ว่า Br = Br ǫ ภายในระยะเวลา Ir+1 และ T r+1 \(\leq\) \(\alpha\)r,s∗ ฉัน' + ts∗\(\leq\)T r + แล + ts∗ กรณี 2.2.ก. เหตุการณ์ E.a เกิดขึ้นและไม่มีผู้ตรวจสอบที่ซื่อสัตย์ i′ \(\in\)HSV r,s∗who ควรหยุดโดยไม่เผยแพร่สิ่งใดๆ ในกรณีนี้ โปรดทราบว่าผู้เล่น i∗ อาจมี CERT r ที่ถูกต้อง ฉัน∗ประกอบด้วยสิ่งที่ต้องการ (r, s∗−1)-ข้อความที่ฝ่ายตรงข้ามสามารถรวบรวมหรือสร้างได้ อย่างไรก็ตามผู้ที่เป็นอันตราย ผู้ตรวจสอบอาจไม่ช่วยเผยแพร่ข้อความเหล่านั้น ดังนั้นเราจึงไม่สามารถสรุปได้ว่าผู้ซื่อสัตย์ ผู้ใช้จะได้รับทันเวลา แล ในความเป็นจริง |MSV r,s∗−1| ข้อความเหล่านั้นอาจมาจาก ผู้ตรวจสอบที่เป็นอันตราย (r, s∗−1) ซึ่งไม่ได้เผยแพร่ข้อความของตนเลยและเพียงส่งเท่านั้น ไปยังผู้ตรวจสอบที่เป็นอันตรายในขั้นตอนs∗ คล้ายกับกรณี 2.1.a ที่นี่เรามี s∗−2 ≡0 mod 3 ขั้นตอน s∗ เป็นขั้นตอน Coin-Fixed-To-0 และ (r, s∗−1) - ข้อความใน CERT r i∗ อยู่ที่บิต 0 และ v = H(Br ë) จริงใจทุกคนจริงๆ (r, s∗−1) - ผู้ตรวจสอบลงชื่อ v ดังนั้นฝ่ายตรงข้ามจึงไม่สามารถสร้างข้อความที่ถูกต้องได้ (r, s∗−1) สำหรับ v′ ที่แตกต่างกัน ยิ่งไปกว่านั้น ผู้ตรวจสอบที่ซื่อสัตย์ (r, s∗) ทุกคนต้องรอเวลา ts∗ และไม่เห็น > 2/3 ส่วนใหญ่ สำหรับบิต 1 อีกครั้งเพราะ |HSV r,s∗−1| + 4|MSV r,s∗−1| <2น. ดังนั้นผู้ตรวจสอบที่ซื่อสัตย์ทุกคน i \(\in\)HSV r,s∗sets bi = 0, vi = H(Br ë) ด้วยคะแนนเสียงข้างมาก และเผยแพร่ mr,s∗ ฉัน = (ESIGi(0), ESIGi(H(Br ë)), \(\sigma\)r,s∗ ฉัน ) ที่เวลา \(\alpha\)r,s∗ ฉัน + ts∗ ตอนนี้ให้พิจารณาผู้ตรวจสอบที่ซื่อสัตย์ในขั้นตอน s∗+ 1 (ซึ่งเป็นขั้นตอน Coin-Fixed-To-1) ถ้า ฝ่ายตรงข้ามส่งข้อความใน CERT r จริงๆ ฉัน∗กับบางคนและทำให้พวกเขาเป็นเช่นนั้น หยุด แล้วก็คล้ายกับกรณี 2.1.a ผู้ใช้ที่ซื่อสัตย์ทุกคนรู้ว่า Br = Br ∆ภายในช่วงเวลา IR+1 และ T r+1 \(\leq\)T r + แล + ts∗+1 มิฉะนั้น ผู้ตรวจสอบที่ซื่อสัตย์ทุกคนในขั้นตอน s∗+1 จะได้รับข้อความ (r, s∗) ทั้งหมดสำหรับ 0 และ เอช(บรา ë) จาก HSV r,s∗ หลังจากเวลาที่รอคอย ts∗+1 ซึ่งนำไปสู่ > 2/3 ส่วนใหญ่ เนื่องจาก |HSV r,s∗| > 2|MSV r,s∗|. ดังนั้นผู้ตรวจสอบทั้งหมดใน HSV r,s∗+1 จึงเผยแพร่ข้อความของตนเพื่อ 0 และ H(br ̵) ตามนั้น โปรดทราบว่าผู้ตรวจสอบใน HSV r,s∗+1 ไม่ได้หยุดด้วย Br = Br ̵, เพราะขั้นตอน s∗+ 1 ไม่ใช่ขั้นตอน Coin-Fixed-To-0 ตอนนี้ให้พิจารณาผู้ตรวจสอบที่ซื่อสัตย์ในขั้นตอน s∗+2 (ซึ่งเป็นขั้นตอนการพลิกเหรียญอย่างแท้จริง) หากฝ่ายตรงข้ามส่งข้อความใน CERT r ฉัน∗กับบางคนแล้วทำให้พวกเขาหยุด ผู้ใช้ที่ซื่อสัตย์ทุกคนจะรู้อีกครั้งว่า Br = Br ่ภายในช่วงเวลา Ir+1 และ T r+1 \(\leq\)T r + แล + ts∗+2มิฉะนั้น ผู้ตรวจสอบที่ซื่อสัตย์ทุกคนในขั้นตอน s∗+ 2 จะได้รับข้อความ (r, s∗+ 1) ทั้งหมดสำหรับ 0 และ H(br ë) จาก HSV r,s∗+1 หลังจากเวลาที่รอ ts∗+2 ซึ่งนำไปสู่ > 2/3 ส่วนใหญ่ ดังนั้นพวกเขาทั้งหมดจึงเผยแพร่ข้อความของพวกเขาสำหรับ 0 และ H(Br ̵) ตามนั้น: นั่นคือสิ่งที่พวกเขาทำ ไม่ใช่ "พลิกเหรียญ" ในกรณีนี้ ขอย้ำอีกครั้งว่าพวกมันจะไม่หยุดโดยไม่แพร่กระจาย เพราะขั้นตอน s∗+ 2 ไม่ใช่ขั้นตอน Coin-Fixed-To-0 สุดท้ายนี้ สำหรับผู้ตรวจสอบที่ซื่อสัตย์ในขั้นตอน s∗+3 (ซึ่งเป็นอีกขั้นตอน Coin-Fixed-To-0) ทั้งหมด ในจำนวนนี้จะได้รับข้อความที่ถูกต้องอย่างน้อยสำหรับ 0 และ H(Br ë) จาก HSV s∗+2, หากพวกเขารอเวลาจริงๆ ts∗+3 ดังนั้นไม่ว่าฝ่ายตรงข้ามจะส่งข้อความมาหรือไม่ก็ตาม ใน CERT r i∗ สำหรับพวกเขาคนใดคนหนึ่ง ผู้ตรวจสอบทั้งหมดใน HSV r,s∗+3 หยุดโดย Br = Br ̵, ไม่มี เผยแพร่สิ่งใดๆ ขึ้นอยู่กับว่าปฏิปักษ์กระทำอย่างไร บางส่วนอาจมี CERT r ของตนเองประกอบด้วยข้อความ (r, s∗−1) เหล่านั้นใน CERT r ฉัน∗ และคนอื่นๆ มี CERT r ของตนเองประกอบด้วยข้อความ (r, s∗+ 2) เหล่านั้น ไม่ว่าในกรณีใด ผู้ใช้บริการที่ซื่อสัตย์ทุกท่าน รู้ Br = Br ่ภายในช่วงเวลา Ir+1 และ T r+1 \(\leq\)T r + แล + ts∗+3 กรณี 2.2.ข. เหตุการณ์ E.b เกิดขึ้นและไม่มีผู้ตรวจสอบที่ซื่อสัตย์ i′ \(\in\)HSV r,s∗who ควรหยุดโดยไม่เผยแพร่สิ่งใดๆ การวิเคราะห์ในกรณีนี้จะคล้ายคลึงกับกรณีที่ 2.1.b และกรณีที่ 2.2.a จึงมีรายละเอียดมากมาย ได้รับการละเว้น โดยเฉพาะ CERT r i∗ประกอบด้วยข้อความที่ต้องการ (r, s∗−1) สำหรับบิต 1 ที่ฝ่ายตรงข้ามสามารถรวบรวมหรือสร้างได้ s∗−2 ≡1 mod 3 ขั้นตอน s∗คือ ขั้นตอน Coin-Fixed-To-1 และไม่มีผู้ตรวจสอบ (r, s∗) ที่ซื่อสัตย์คนใดที่เคยเห็น > 2/3 ส่วนใหญ่สำหรับ 0 ดังนั้น ทุกผู้ตรวจสอบ i \(\in\)HSV r,s∗ จะตั้งค่า bi = 1 และเผยแพร่ mr,s∗ ฉัน = (ESIGi(1), ESIGi(vi), ซิร,ส∗ ฉัน ) ที่เวลา \(\alpha\)r,s∗ ฉัน + ts∗ คล้ายกับกรณี 2.2.a โดยเพิ่มได้สูงสุด 3 ขั้นตอน (เช่น โปรโตคอล ถึงขั้นตอน s∗+3 ซึ่งเป็นอีกขั้นตอน Coin-Fixed-To-1) ผู้ใช้ที่ซื่อสัตย์ทุกคนจะรู้ว่า Br = Br ī ภายในระยะเวลา Ir+1 ยิ่งกว่านั้น T r+1 อาจเป็น \(\leq\)T r+แล+ts∗+1 หรือ \(\leq\)T r+แล+ts∗+2 หรือ \(\leq\)T r + แล + ts∗+3 ขึ้นอยู่กับว่าเมื่อใดคือครั้งแรกที่ผู้ตรวจสอบที่ซื่อสัตย์สามารถหยุดได้ โดยไม่ต้องแพร่กระจาย เมื่อรวมกรณีย่อยสี่กรณีเข้าด้วยกัน เราพบว่าผู้ใช้ที่ซื่อสัตย์ทุกคนทราบ Br ภายในระยะเวลา Ir+1 ด้วย T r+1 \(\leq\)T r + แล + ts∗ ในกรณี 2.1.a และ 2.1.b และ T r+1 \(\leq\)T r + แล + ts∗+3 ในกรณี 2.2.a และ 2.2.b มันยังคงอยู่ที่ขอบเขตบน s∗ และด้วยเหตุนี้ T r+1 สำหรับกรณีที่ 2 และเราทำเช่นนั้นโดยพิจารณาว่า หลายครั้งที่ขั้นตอน Coin-Genuinely-Flipped ถูกดำเนินการจริงในโปรโตคอล: นั่นคือ ผู้ตรวจสอบที่ซื่อสัตย์บางคนได้พลิกเหรียญจริง ๆ โดยเฉพาะอย่างยิ่ง แก้ไขขั้นตอนที่พลิกเหรียญอย่างแท้จริง s′ (เช่น 7 \(\leq\)s′ \(\leq\)m + 2 และ s′ −2 ≡2 mod 3) และให้ ë \(\triangleq\)arg minj\(\in\)SV r,s′−1 H(\(\sigma\)r,s′−1 เจ ). ตอนนี้ให้เราสมมติ s′ < s∗, เพราะไม่อย่างนั้นไม่มีผู้ตรวจสอบที่ซื่อสัตย์คนใดที่จะพลิกเหรียญในขั้นตอนที่ s′ ตามที่ระบุไว้ก่อนหน้านี้ การอภิปราย ตามคำจำกัดความของ SV r,s′−1 ค่า hash ของหนังสือรับรองของ ë ก็มีค่าน้อยที่สุดเช่นกัน ผู้ใช้ทั้งหมดใน PKr−k เนื่องจากฟังก์ชัน hash เป็นการสุ่ม oracle ดังนั้น ผู้เล่น ë จะซื่อสัตย์กับ ความน่าจะเป็นอย่างน้อย h ดังที่เราจะแสดงในภายหลัง แม้ว่าปฏิปักษ์จะพยายามทำนายเหตุการณ์นี้อย่างเต็มที่ก็ตาม ผลลัพธ์ของการสุ่ม oracle และเอียงความน่าจะเป็น ผู้เล่น ë ยังคงซื่อสัตย์กับความน่าจะเป็นอย่างน้อย ph = h2(1 + h −h2) ด้านล่างเราจะพิจารณากรณีที่สิ่งนั้นเกิดขึ้นจริง: นั่นคือ ë \(\in\)HSV r,s′−1 โปรดทราบว่าผู้ตรวจสอบที่ซื่อสัตย์ทุกคน i \(\in\)HSV r,s′ ได้รับข้อความทั้งหมดจาก HSV r,s′−1 โดย เวลา \(\alpha\)r,s′ ฉัน + ทีเอส' หากผู้เล่นฉันต้องหงายเหรียญ (เช่น เขาไม่ได้เห็น > 2/3 ส่วนใหญ่สำหรับ บิตเดียวกัน b \(\in\){0, 1}) จากนั้นเขาตั้งค่า bi = lsb(H(\(\sigma\)r,s′−1 l' )). หากมีความจริงอีกประการหนึ่ง ผู้ตรวจสอบ i′ \(\in\)HSV r,s′ ที่ได้เห็น > 2/3 ส่วนใหญ่สำหรับบิต b \(\in\){0, 1} แล้วโดยคุณสมบัติ (d) ของเลมมา 5.5 ไม่มีผู้ตรวจสอบที่ซื่อสัตย์ใน HSV r,s′ จะเห็น > 2/3 ส่วนใหญ่เพียงเล็กน้อย ข′ ̸= ข. เนื่องจาก lsb(H(\(\sigma\)r,s′−1 l' )) = b ด้วยความน่าจะเป็น 1/2 ผู้ตรวจสอบที่ซื่อสัตย์ทุกคนเข้าถึง HSV r,s′ ข้อตกลงบน b ด้วยความน่าจะเป็น 1/2 แน่นอน ถ้าไม่มีตัวยืนยัน i′ เช่นนั้นแล้ว ก็ทั้งหมด ผู้ตรวจสอบที่ซื่อสัตย์ใน HSV r,s′ เห็นด้วยกับบิต lsb(H(\(\sigma\)r,s′−1 l' )) ด้วยความน่าจะเป็น 1. เมื่อรวมความน่าจะเป็นของ ë \(\in\)HSV r,s′−1 เราพบว่าผู้ตรวจสอบที่ซื่อสัตย์ใน HSV r,s′ บรรลุข้อตกลงด้วยบิต b \(\in\){0, 1} โดยมีความน่าจะเป็นอย่างน้อย ph 2 = h2(1+h−h2) 2 . นอกจากนี้ โดยการชักนำให้ลงคะแนนเสียงข้างมากเหมือนเมื่อก่อน ผู้ตรวจสอบที่ซื่อสัตย์ทุกคนใน HSV r,s′ จะมีชุด vi ของพวกเขา จะเป็น H(Br ë) ดังนั้น เมื่อบรรลุข้อตกลงเกี่ยวกับ b ในขั้นตอน s′ แล้ว T r+1 ก็คือ \(\leq\)T r + แลม + ts′+1 หรือ \(\leq\)T r + แลม + ts′+2 ขึ้นอยู่กับว่า b = 0 หรือ b = 1 ตามการวิเคราะห์กรณี 2.1.a และ 2.1.b ใน โดยเฉพาะอย่างยิ่ง จะไม่มีการดำเนินการขั้นตอน Coin-Genuinely-Flipped อีกต่อไป นั่นคือ ผู้ตรวจสอบใน ขั้นตอนดังกล่าวยังคงตรวจสอบว่าพวกเขาเป็นผู้ตรวจสอบแล้วจึงรอ แต่ทั้งหมดจะหยุดโดยไม่ต้อง เผยแพร่สิ่งใดๆ ดังนั้น ก่อนขั้นตอน s∗ จำนวนครั้งที่ขั้นตอน Coin-GenuinelyFlipped ถูกดำเนินการจะถูกกระจายตามตัวแปรสุ่ม Lr ปล่อยให้ขั้นตอน s' เป็นขั้นตอนสุดท้ายที่พลิกเหรียญอย่างแท้จริงตาม Lr โดยการสร้างโปรโตคอล เรามี s' = 4 + 3Lr. เมื่อใดที่ฝ่ายตรงข้ามควรทำให้สเต็ปเกิดขึ้นหากเขาต้องการหน่วงเวลา T r+1 มากเท่ากับ เป็นไปได้เหรอ? เรายังสามารถสันนิษฐานได้ว่าฝ่ายตรงข้ามรู้ถึงการตระหนักถึง Lr ล่วงหน้า ถ้า s∗> s′ ดังนั้นมันจึงไม่มีประโยชน์ เพราะผู้ตรวจสอบที่ซื่อสัตย์ได้บรรลุข้อตกลงใน ขั้นตอน เพื่อให้มั่นใจว่า ในกรณีนี้ s∗ จะเป็น s′ +1 หรือ s′ +2 อีกครั้ง ขึ้นอยู่กับว่า b = 0 หรือ b = 1 อย่างไรก็ตาม นี่คือกรณี 2.1.a และ 2.1.b และผลลัพธ์ T r+1 ก็คือ เช่นเดียวกับในกรณีนั้น แม่นยำยิ่งขึ้น T r+1 \(\leq\)T r + แล + ts∗\(\leq\)T r + แล + ts′+2 ถ้า s∗< s′ −3 —นั่นคือ s∗ อยู่ก่อนขั้นตอน Coin-Genuinely-Flipped สุดท้ายที่สอง— แล้วโดย การวิเคราะห์กรณี 2.2.a และ 2.2.b T r+1 \(\leq\)T r + แล + ts∗+3 < T r + แล + ts′ นั่นคือฝ่ายตรงข้ามกำลังทำให้ข้อตกลงเกี่ยวกับ Br เกิดขึ้นเร็วขึ้น ถ้า s∗= s′ −2 หรือ s′ −1 —นั่นคือ ขั้นตอน Coin-Fixed-To-0 หรือขั้นตอน Coin-Fixed-To-1 ทันทีก่อนขั้นตอน s′— จากนั้นด้วยการวิเคราะห์กรณีย่อยสี่กรณี ผู้ตรวจสอบที่ซื่อสัตย์เข้ามา ขั้นตอนที่ s′ ไม่ต้องพลิกเหรียญอีกต่อไป เพราะพวกเขาหยุดโดยไม่แพร่กระจาย หรือเคยเห็น > 2/3 ส่วนใหญ่สำหรับบิต b เดียวกัน ดังนั้นเราจึงมี T r+1 \(\leq\)T r + แล + ts∗+3 \(\leq\)T r + แล + ts′+2โดยสรุป ไม่ว่า s∗ คืออะไร เราก็มี T r+1 \(\leq\)T r + แล + ts′+2 = T r + แล + t3Lr+6 = T r + แล + (2(3Lr + 6) −3)แล + Λ = T r + (6Lr + 10)แล + Λ, ตามที่เราต้องการจะแสดง กรณีที่เลวร้ายที่สุดคือเมื่อ s∗= s′ −1 และกรณีที่ 2.2.b เกิดขึ้น การรวมกรณีที่ 1 และ 2 ของโปรโตคอล BA ไบนารีเข้าด้วยกัน Lemma 5.3 ถือไว้ ■ 5.9 ความปลอดภัยของ Seed Qr และความน่าจะเป็นของผู้นำที่ซื่อสัตย์ มันยังคงต้องพิสูจน์ Lemma 5.4 จำได้ว่าผู้ตรวจสอบในรอบ r นำมาจาก PKr−k และ ถูกเลือกตามปริมาณ Qr−1 เหตุผลในการแนะนำพารามิเตอร์การมองย้อนกลับ k คือเพื่อให้แน่ใจว่า ย้อนกลับไปที่รอบ r −k เมื่อฝ่ายตรงข้ามสามารถเพิ่มผู้ใช้ที่เป็นอันตรายรายใหม่ได้ สำหรับ PKr−k เขาไม่สามารถทำนายปริมาณ Qr−1 ได้ ยกเว้นความน่าจะเป็นเล็กน้อย โปรดทราบว่า ฟังก์ชัน hash เป็นการสุ่ม oracle และ Qr−1 เป็นหนึ่งในอินพุตเมื่อเลือกตัวตรวจสอบสำหรับรอบ r ดังนั้นไม่ว่าผู้ใช้ที่เป็นอันตรายจะถูกเพิ่มเข้าไปใน PKr−k แค่ไหนก็ตาม จากมุมมองของฝ่ายตรงข้าม หนึ่งในนั้นยังคงถูกเลือกให้เป็นผู้ตรวจสอบในขั้นตอนของรอบ r ด้วยความน่าจะเป็นที่ต้องการ p (หรือ p1 สำหรับขั้นตอนที่ 1) แม่นยำยิ่งขึ้น เรามีบทแทรกต่อไปนี้ เลมมา 5.6 ด้วย k = O(log1/2 F) สำหรับแต่ละรอบ r โดยมีความน่าจะเป็นอย่างท่วมท้นที่ฝ่ายตรงข้าม ไม่ได้สอบถาม Qr−1 ไปยัง oracle แบบสุ่ม ย้อนกลับไปที่รอบ r −k การพิสูจน์. เราดำเนินการโดยการเหนี่ยวนำ สมมติว่าในแต่ละรอบ \(\gamma\) < r ฝ่ายตรงข้ามไม่ได้สอบถาม Q\(\gamma\)−1 สุ่ม oracle กลับมาที่รอบ \(\gamma\) −k.21 พิจารณาเกมทางจิตต่อไปนี้ที่เล่นโดย ฝ่ายตรงข้ามที่รอบ r −k พยายามทำนาย Qr−1 ในขั้นตอนที่ 1 ของแต่ละรอบ \(\gamma\) = r −k, . . , r −1 โดยกำหนด Q\(\gamma\)−1 ที่เฉพาะเจาะจงซึ่งไม่ได้ถูกสอบถามไปยังการสุ่ม oracle โดยการสั่งผู้เล่น i \(\in\)PK\(\gamma\)−k ตามค่า hash H(SIGi(\(\gamma\), 1, Q\(\gamma\)−1)) มากขึ้นเรื่อยๆ เราได้รับการเรียงสับเปลี่ยนแบบสุ่มบน PK\(\gamma\)−k ตามคำนิยามแล้ว ผู้นำ ë\(\gamma\) คือ ผู้ใช้รายแรกในการเรียงสับเปลี่ยนและซื่อสัตย์กับความน่าจะเป็น h ยิ่งกว่านั้นเมื่อ PK\(\gamma\)−k มีขนาดใหญ่ เพียงพอแล้ว สำหรับจำนวนเต็ม x \(\geq\)1 ใดๆ ความน่าจะเป็นที่ผู้ใช้ x แรกในการเรียงสับเปลี่ยนล้วนเป็นทั้งหมด เป็นอันตราย แต่ (x + 1)st มีความซื่อสัตย์คือ (1 −h)xh ถ้า ë\(\gamma\) ซื่อสัตย์ แล้ว Q\(\gamma\) = H(SIGLR\(\gamma\)(Q\(\gamma\)−1), \(\gamma\)) เนื่องจากฝ่ายตรงข้ามไม่สามารถปลอมลายเซ็นได้ ของ ë\(\gamma\), Q\(\gamma\) จะถูกกระจายอย่างสม่ำเสมอโดยการสุ่มจากมุมมองของฝ่ายตรงข้าม และ ยกเว้น ด้วยความน่าจะเป็นเพียงเล็กน้อยแบบเอ็กซ์โพเนนเชียล 22 ไม่ถูกสอบถามถึง H ที่รอบ r -k เนื่องจากแต่ละ คิว\(\gamma\)+1, คิว\(\gamma\)+2, . . , Qr−1 ตามลำดับคือผลลัพธ์ของ H ด้วย Q\(\gamma\), Q\(\gamma\)+1, . . , Qr−2 เป็นหนึ่งในอินพุต พวกเขาทั้งหมดดูสุ่มไปที่ปฏิปักษ์และปฏิปักษ์ไม่สามารถสอบถาม Qr−1 ถึง H ที่ รอบ r -k ดังนั้น เป็นกรณีเดียวที่ฝ่ายตรงข้ามสามารถทำนาย Qr−1 ด้วยความน่าจะเป็นที่ดีในรอบนั้น r−k คือเมื่อผู้นำทั้งหมด ër−k, . . . , ër−1 เป็นอันตราย พิจารณารอบอีกครั้ง \(\gamma\) \(\in\){r−k . . , r−1} และการเรียงสับเปลี่ยนแบบสุ่มเหนือ PK\(\gamma\) − k เกิดจากค่า hash ที่สอดคล้องกัน ถ้าสำหรับบางคน x \(\geq\)2 ผู้ใช้ x −1 คนแรกในการเรียงสับเปลี่ยนล้วนเป็นอันตรายและ x-th นั้นซื่อสัตย์ จากนั้น ฝ่ายตรงข้ามมี x ตัวเลือกที่เป็นไปได้สำหรับ Q\(\gamma\): รูปแบบใดรูปแบบหนึ่ง H(SIGi(Q\(\gamma\)−1, \(\gamma\))) โดยที่ i เป็นหนึ่งใน 21เนื่องจาก k เป็นจำนวนเต็มขนาดเล็ก โดยไม่สูญเสียลักษณะทั่วไป เราสามารถสรุปได้ว่า k รอบแรกของโปรโตคอลกำลังทำงานอยู่ ภายใต้สภาพแวดล้อมที่ปลอดภัยและมีสมมติฐานอุปนัยสำหรับรอบเหล่านั้น 22นั่นคือ เอ็กซ์โปเนนเชียลในความยาวของเอาท์พุตของ H โปรดทราบว่าความน่าจะเป็นนี้น้อยกว่า F มากผู้ใช้ที่เป็นอันตราย x−1 คนแรก โดยทำให้ผู้เล่น i เป็นผู้นำที่แท้จริงของรอบ \(\gamma\); หรือ H(Q\(\gamma\)−1, \(\gamma\)) โดย บังคับให้B\(\gamma\) = B\(\gamma\) ī. มิฉะนั้นผู้นำของรอบ \(\gamma\) จะเป็นผู้ใช้ที่ซื่อสัตย์คนแรกในการเรียงสับเปลี่ยน และ Qr−1 เป็นสิ่งที่คาดเดาไม่ได้สำหรับปฏิปักษ์ ตัวเลือก x ใดข้างต้นของQ\(\gamma\)ที่ฝ่ายตรงข้ามควรติดตาม? เพื่อช่วยเหลือศัตรู ตอบคำถามนี้ ในเกมทางจิต เราทำให้เขามีพลังมากกว่าเขาจริงๆ คือดังนี้ ประการแรก ในความเป็นจริงแล้วฝ่ายตรงข้ามไม่สามารถคำนวณ hash ของผู้ใช้ที่ซื่อสัตย์ได้ ลายเซ็นต์ จึงไม่สามารถตัดสินใจสำหรับแต่ละ Q\(\gamma\) ได้ว่าจำนวน x(Q\(\gamma\)) ของผู้ใช้ที่เป็นอันตรายในตอนเริ่มต้น ของการเรียงสับเปลี่ยนแบบสุ่มในรอบ \(\gamma\) + 1 ที่เกิดจาก Q\(\gamma\) ในเกมทางจิตเราให้เขา ตัวเลข x(Q\(\gamma\)) ฟรี ประการที่สอง ในความเป็นจริง มีผู้ใช้ x คนแรกในการเรียงสับเปลี่ยนทั้งหมด การเป็นคนใจร้ายไม่ได้หมายความว่าพวกเขาทุกคนจะถูกทำให้เป็นผู้นำได้ เพราะว่า hash ค่าของลายเซ็นต้องน้อยกว่า p1 ด้วย เราละเลยข้อจำกัดนี้ในจิตใจ เกมทำให้ฝ่ายตรงข้ามได้เปรียบมากยิ่งขึ้น มันง่ายที่จะเห็นว่าในเกมทางจิต ตัวเลือกที่ดีที่สุดสำหรับฝ่ายตรงข้าม แสดงโดย ˆQ\(\gamma\) คือสิ่งที่สร้างลำดับผู้ใช้ที่เป็นอันตรายที่ยาวที่สุดในช่วงเริ่มต้นของการสุ่ม การเรียงสับเปลี่ยนในรอบ \(\gamma\) + 1 โดยแท้จริงแล้ว เมื่อกำหนด Q\(\gamma\) ที่เฉพาะเจาะจง โปรโตคอลไม่ได้ขึ้นอยู่กับ Q\(\gamma\)−1 อีกต่อไปและฝ่ายตรงข้ามสามารถมุ่งความสนใจไปที่การเรียงสับเปลี่ยนใหม่ในรอบ \(\gamma\) + 1 ได้เพียงอย่างเดียวซึ่งมี การกระจายเดียวกันสำหรับจำนวนผู้ใช้ที่เป็นอันตรายตั้งแต่เริ่มต้น ตามนั้นในแต่ละรอบ \(\gamma\) ที่กล่าวมาข้างต้น ˆQ\(\gamma\) ทำให้เขามีทางเลือกจำนวนมากที่สุดสำหรับ Q\(\gamma\)+1 และจึงขยายให้สูงสุด ความน่าจะเป็นที่ผู้นำต่อเนื่องกันล้วนเป็นอันตราย ดังนั้น ในเกมทางจิต ฝ่ายตรงข้ามกำลังติดตาม Markov Chain จากรอบ r -k เพื่อปัดเศษ r −1 โดยมีปริภูมิสถานะเป็น {0} \(\cup\){x : x \(\geq\)2} สถานะ 0 แสดงถึงความจริงที่ว่า ผู้ใช้รายแรกในการเรียงสับเปลี่ยนแบบสุ่มในรอบปัจจุบัน \(\gamma\) เป็นคนซื่อสัตย์ ดังนั้นฝ่ายตรงข้ามจึงล้มเหลว เกมทำนาย Qr−1; และแต่ละสถานะ x \(\geq\)2 แสดงถึงความจริงที่ว่าผู้ใช้ x −1 คนแรกใน การเรียงสับเปลี่ยนเป็นอันตรายและ x-th นั้นซื่อสัตย์ ดังนั้นฝ่ายตรงข้ามจึงมีตัวเลือก x สำหรับQ\(\gamma\) ที่ ความน่าจะเป็นของการเปลี่ยนแปลง P(x, y) มีดังนี้ • P(0, 0) = 1 และ P(0, y) = 0 สำหรับ y ใดๆ \(\geq\)2 นั่นคือฝ่ายตรงข้ามล้มเหลวในเกมครั้งแรก ผู้ใช้ในการเรียงสับเปลี่ยนกลายเป็นความซื่อสัตย์ • P(x, 0) = hx สำหรับ x \(\geq\)2 ใดๆ นั่นคือ ด้วยความน่าจะเป็น hx การเรียงสับเปลี่ยนสุ่ม x ทั้งหมดมี ผู้ใช้กลุ่มแรกมีความซื่อสัตย์ ดังนั้นฝ่ายตรงข้ามจึงล้มเหลวในเกมในรอบถัดไป • สำหรับ x \(\geq\)2 และ y \(\geq\)2 ใดๆ P(x, y) คือความน่าจะเป็นที่ระหว่างการเรียงสับเปลี่ยนแบบสุ่มของ x เกิดจากตัวเลือก x ของ Q\(\gamma\) ซึ่งเป็นลำดับที่ยาวที่สุดของผู้ใช้ที่เป็นอันตรายในตอนต้น บางส่วนเป็น y −1 ดังนั้นฝ่ายตรงข้ามจึงมีตัวเลือก y สำหรับ Q\(\gamma\)+1 ในรอบถัดไป นั่นคือ ป(x, ย) = ย−1 เอ็กซ์ ผม=0 (1 −ซ)เอ่อ !x - ย−2 เอ็กซ์ ผม=0 (1 −ซ)เอ่อ !x = (1 −(1 −h)y)x −(1 −(1 −h)y−1)x โปรดทราบว่าสถานะ 0 คือสถานะการดูดซับเฉพาะในเมทริกซ์ทรานซิชัน P และสถานะอื่นๆ ทุกสถานะ x มีความน่าจะเป็นเชิงบวกที่จะเป็น 0 เราสนใจขอบเขตบนของจำนวน k ของ รอบที่จำเป็นสำหรับ Markov Chain เพื่อบรรจบกันเป็น 0 ด้วยความน่าจะเป็นอย่างท่วมท้น นั่นคือ ไม่ เรื่องที่สถานะเริ่มต้นของห่วงโซ่ ด้วยความน่าจะเป็นที่ฝ่ายตรงข้ามจะแพ้ในเกม และล้มเหลวในการทำนาย Qr−1 ที่รอบ r −k พิจารณาเมทริกซ์ทรานซิชัน P (2) \(\triangleq\)P \(\cdot\) P หลังจากผ่านไปสองรอบ จะสังเกตได้ง่ายว่า P (2)(0, 0) = 1 และ P (2)(0, x) = 0 สำหรับ x \(\geq\)2 ใดๆ สำหรับ x \(\geq\)2 และ y \(\geq\)2 ใดๆ โดยที่ P(0, y) = 0 เรามี P (2)(x, y) = P(x, 0)P(0, y) + เอ็กซ์ z\(\geq\)2 P(x, z)P(z, y) = เอ็กซ์ z\(\geq\)2 P(x, z)P(z, y)ปล่อยให้ èh \(\triangleq\)1 −h เราได้ P(x, y) = (1 −′hy)x −(1 −′hy−1)x และ ป (2)(x, y) = เอ็กซ์ z\(\geq\)2 [(1 −เลเยอร์เฮิร์ตซ์)x −(1 −เลเยอร์เฮิร์ตซ์−1)x][(1 −เลเยอร์ไฮ)z −(1 −เลเยอร์ไฮ−1)z] ด้านล่างเราคำนวณขีดจำกัดของ P (2)(x,y) ป (x,ย) เมื่อ h ไปที่ 1 —นั่นคือ ′h ไปที่ 0 โปรดทราบว่าค่าสูงสุด ลำดับของ aph ใน P(x, y) คือ aphy−1 โดยมี coefficient x ดังนั้น ลิม ชั่วโมง→1 P (2)(x, ย) ป(x, ย) = ลิม Âh \(\to\) 0 P (2)(x, ย) ป(x, ย) = ลิม Âh \(\to\) 0 P (2)(x, ย) x′hy−1 + O(′hy) = ลิม Âh \(\to\) 0 ป z\(\geq\)2[xÂhz−1 + O(Âhz)][zÂhy−1 + O(Âhy)] x′hy−1 + O(′hy) = ลิม Âh \(\to\) 0 2x′hy + O(′hy+1) x′hy−1 + O(′hy) = ลิม Âh \(\to\) 0 2xhy x′hy−1 = ลิม Âh \(\to\) 0 2Âh = 0 เมื่อ h เข้าใกล้ 1,23 มากพอ เราก็จะได้ P (2)(x, ย) ป(x, ย) \(\leq\)1 2 สำหรับ x \(\geq\)2 และ y \(\geq\)2 ใดๆ โดยการเหนี่ยวนํา สำหรับ k > 2 ใดๆ P (k) \(\triangleq\)P k เป็นเช่นนั้น • P (k)(0, 0) = 1, P (k)(0, x) = 0 สำหรับ x \(\geq\)2 ใดๆ และ • สำหรับ x \(\geq\)2 และ y \(\geq\)2 ใดๆ P (k)(x, y) = P (k−1)(x, 0)P(0, y) + เอ็กซ์ z\(\geq\)2 P (k−1)(x, z)P(z, y) = เอ็กซ์ z\(\geq\)2 P (k−1)(x, z)P(z, y) \(\leq\) เอ็กซ์ z\(\geq\)2 พี(x, ซ) 2k−2 \(\cdot\) P(z, y) = P (2)(x, y) 2k−2 \(\leq\)P(x, y) 2k−1 . เมื่อ P(x, y) \(\leq\)1 หลังจาก 1−log2 F รอบ ความน่าจะเป็นในการเปลี่ยนผ่านไปสู่สถานะใดๆ y \(\geq\)2 นั้นน้อยมาก เริ่มต้นด้วยสถานะใดๆ x \(\geq\)2 แม้ว่าจะมีสถานะดังกล่าวอยู่มากมาย แต่ก็เห็นได้ง่าย ลิม ย→+∞ ป(x, ย) ป(x, y + 1) = ลิม ย→+∞ (1 −เลเยอร์ไฮ)x −(1 −เลเยอร์ไฮ−1)x (1 −′hy+1)x −(1 −′hy)x = ลิม ย→+∞ ′hy−1 −′hy ′ไฮ −′ไฮ+1 = 1 Âh = 1 1 −ชม. ดังนั้นแต่ละแถว x ของเมทริกซ์การเปลี่ยนแปลง P จะลดลงเป็นลำดับเรขาคณิตพร้อมอัตรา 1 1−ชั่วโมง > 2 เมื่อ y มีขนาดใหญ่พอ และค่า P (k) ก็จะเท่ากัน ดังนั้น เมื่อ k มีขนาดใหญ่พอแต่ยังคงอยู่ ตามลำดับ log1/2 F, P y\(\geq\)2 P (k)(x, y) < F สำหรับ x \(\geq\)2 ใดๆ นั่นคือมีความน่าจะเป็นอย่างล้นหลาม ฝ่ายตรงข้ามแพ้ในเกมและล้มเหลวในการทำนาย Qr−1 ที่รอบ r −k สำหรับ h \(\in\)(2/3, 1] มากขึ้น การวิเคราะห์ที่ซับซ้อนแสดงให้เห็นว่ามีค่าคงที่ C มากกว่า 1/2 เล็กน้อย ดังนั้นจึงได้ผล เพื่อรับ k = O(logC F) ดังนั้น Lemma 5.6 จึงถืออยู่ ■ เลมมา 5.4 (ปรับปรุงใหม่) ให้คุณสมบัติ 1–3 สำหรับแต่ละรอบก่อน r, ph = h2(1 + h −h2) สำหรับ Lr, และผู้นำ ër มีความซื่อสัตย์กับความน่าจะเป็นอย่างน้อย ph 23ตัวอย่างเช่น h = 80% ตามที่แนะนำโดยตัวเลือกพารามิเตอร์เฉพาะ

หลักฐาน หลังจากบทแทรก 5.6 ฝ่ายตรงข้ามไม่สามารถทำนาย Qr−1 ย้อนกลับไปที่รอบ r −k ยกเว้น ความน่าจะเป็นเล็กน้อย โปรดทราบว่านี่ไม่ได้หมายความว่าความน่าจะเป็นของผู้นำที่ซื่อสัตย์จะเป็นเช่นนั้น แต่ละรอบ อันที่จริง ให้ Qr−1 ขึ้นอยู่กับจำนวนผู้ใช้ที่เป็นอันตรายในตอนเริ่มต้น การเรียงสับเปลี่ยนแบบสุ่มของ PKr−k ฝ่ายตรงข้ามอาจมีได้มากกว่าหนึ่งตัวเลือกสำหรับ Qr และ จึงสามารถเพิ่มความน่าจะเป็นของผู้นำที่เป็นอันตรายได้ในรอบ r + 1 - เราให้เขาอีกครั้ง ข้อดีบางอย่างที่ไม่สมจริงเช่นเดียวกับใน Lemma 5.6 เพื่อให้การวิเคราะห์ง่ายขึ้น อย่างไรก็ตาม สำหรับแต่ละ Qr−1 ที่ฝ่ายตรงข้ามไม่ได้สอบถามถึง H ที่รอบ r −k สำหรับ x \(\geq\)1 ใดๆ ด้วยความน่าจะเป็น (1 −h)x−1h ผู้ใช้ที่ซื่อสัตย์คนแรกเกิดขึ้นที่ตำแหน่ง x ในผลลัพธ์ การเรียงสับเปลี่ยนแบบสุ่มของ PKr−k เมื่อ x = 1 ความน่าจะเป็นของผู้นำที่ซื่อสัตย์ในรอบ r + 1 คือ แน่นอนชั่วโมง; ในขณะที่เมื่อ x = 2 ฝ่ายตรงข้ามมีสองตัวเลือกสำหรับ Qr และความน่าจะเป็นผลลัพธ์คือ h2. เมื่อพิจารณาทั้งสองกรณีนี้แล้ว เราจึงมีโอกาสเป็นผู้นำที่ซื่อสัตย์ในรอบนั้น r + 1 มีค่าอย่างน้อย h \(\cdot\) h + (1 −h)h \(\cdot\) h2 = h2(1 + h −h2) ตามต้องการ โปรดทราบว่าความน่าจะเป็นข้างต้นพิจารณาเฉพาะการสุ่มในโปรโตคอลจากรอบ r −k เพื่อปัดเศษ r เมื่อพิจารณาความสุ่มทั้งหมดจากรอบ 0 ถึงรอบ r แล้ว Qr−1 จะเป็น ฝ่ายตรงข้ามคาดเดาได้น้อยกว่าและความน่าจะเป็นของผู้นำที่ซื่อสัตย์ในรอบ r + 1 อยู่ที่ h2(1 + h −h2) น้อยที่สุด แทนที่ r + 1 ด้วย r และเลื่อนทุกอย่างกลับไปหนึ่งรอบ ซึ่งเป็นผู้นำ ër ซื่อสัตย์กับความน่าจะเป็นอย่างน้อย h2(1 + h −h2) ตามที่ต้องการ ในทำนองเดียวกัน ในแต่ละขั้นตอน Coin-Genuinely-Flipped s “ผู้นำ” ของขั้นตอนนั้น — นั่นคือผู้ตรวจสอบ ใน SV rs ซึ่งหนังสือรับรองมีค่า hash น้อยที่สุด มีความเที่ยงตรงกับความน่าจะเป็นอย่างน้อย h2(1 + ชั่วโมง −h2) ดังนั้น ph = h2(1 + h −h2) สำหรับ Lr และ Lemma 5.4 ถือเป็น ■

Algorand ′

2 في هذا القسم، قمنا بإنشاء نسخة من Algorand ′ تعمل وفقًا للافتراض التالي. افتراض الأغلبية الصادقة من المستخدمين: أكثر من 2/3 من المستخدمين في كل PKr صادقون. في القسم 8، نوضح كيفية استبدال الافتراض أعلاه بالأغلبية الصادقة المطلوبة افتراض المال. 6.1 تدوينات ومعلمات إضافية لـ Algorand ′ 2 التدوينات • μ \(\in\)Z+: حد أعلى عملي لعدد الخطوات التي، مع احتمالية ساحقة، سوف تؤخذ فعلا في جولة واحدة. (كما سنرى، تتحكم المعلمة μ في عدد العناصر سريعة الزوال المفاتيح التي يعدها المستخدم مسبقًا لكل جولة.) • Lr: متغير عشوائي يمثل عدد تجارب برنولي اللازمة لرؤية 1 عند كل منها التجربة هي 1 مع احتمال ph 2 . سيتم استخدام Lr للحد الأعلى من الوقت اللازم للتوليد كتلة ر. • tH: الحد الأدنى لعدد المتحققين الصادقين في الخطوة s > 1 من الجولة r، بحيث يكون مع الاحتمالية الساحقة (مع الأخذ في الاعتبار n وp)، يوجد متحققون صادقون في SV r,s. المعلمات • العلاقات بين مختلف المعالم. — لكل خطوة s > 1 من الجولة r، يتم اختيار n بحيث، مع احتمالية ساحقة،

|HSV ص، ق| > ث و |HSV ص، ق| + 2|MSV r,s| <2ث. لاحظ أن المتباينتين أعلاه تشيران معًا إلى |HSV r,s| > 2|MSV r,s|: أي هناك هي أغلبية 2/3 صادقة بين المدققين المختارين. كلما اقتربت قيمة h من 1، كلما كانت قيمة n أصغر. على وجه الخصوص، نستخدم (variants of) Chernofbounds لضمان استمرار الظروف المرغوبة باحتمالية ساحقة. • أمثلة على اختيارات المعلمات الهامة. - و = 10−18. — ن \(\approx\)4000، ث \(\approx\)0.69ن، ك = 70. 6.2 تنفيذ المفاتيح المؤقتة في Algorand ′ 2 تذكر أن المدقق i \(\in\)SV r,s يوقع رقميا على رسالته mr,s أنا من الخطوات s في الجولة r، نسبة إلى مفتاح عام سريع الزوال pkr,s i، باستخدام مفتاح سري سريع الزوال skr,s أنا أنه يدمر على الفور بعد الاستخدام. عندما يتم تحديد عدد الخطوات المحتملة التي قد تتخذها الجولة بواسطة معين عدد صحيح μ، لقد رأينا بالفعل كيفية التعامل عمليًا مع المفاتيح المؤقتة. على سبيل المثال، كما نحن لقد أوضحت في Algorand ′ 1 (حيث μ = m + 3)، للتعامل مع جميع مفاتيحه المؤقتة الممكنة، من من جولة r′ إلى جولة r′ + 106، أقوم بإنشاء زوج (PMK، SMK)، حيث يكون PMK سيدًا عامًا مفتاح نظام التوقيع القائم على الهوية، وSMK مفتاحه الرئيسي السري المقابل. المستخدم ط ينشر PMK ويستخدم SMK لإنشاء المفتاح السري لكل مفتاح عام سريع الزوال (ويدمر SMK بعد القيام بذلك). مجموعة المفاتيح العامة سريعة الزوال للمتعلقات ذات الصلة الجولات هي S = {i} \(\times\) {r′, . . . ، ص' + 106} \(\times\) {1، . . . ، ." (كما تمت مناقشته، مع اقتراب الجولة r′ + 106، أنا "أنعش" زوجه (PMK، SMK).) من الناحية العملية، إذا كانت μ كبيرة بما يكفي، فإن الجولة Algorand ′ 2 لن يستغرق أكثر من μ خطوات. في ومع ذلك، من حيث المبدأ، هناك احتمال بعيد أن يكون هناك عدد من الخطوات لبعض الجولات المتخذة فعلا سوف تتجاوز μ. عندما يحدث هذا، لن أتمكن من التوقيع على رسالته يا سيدي أنا ل أي خطوة s > μ، لأنه قام بإعداد المفاتيح السرية فقط للجولة r مسبقًا. علاوة على ذلك، هو لم يتمكن من إعداد ونشر مجموعة جديدة من المفاتيح سريعة الزوال، كما تمت مناقشته من قبل. في الواقع، للقيام به لذلك، سيحتاج إلى إدراج مفتاح رئيسي عام جديد PMK′ في كتلة جديدة. ولكن، ينبغي جولة ص اتخاذ المزيد والمزيد من الخطوات، لن يتم إنشاء كتل جديدة. ومع ذلك، الحلول موجودة. على سبيل المثال، قد أستخدم آخر مفتاح سريع الزوال للجولة r، pkr، μ أنا , على النحو التالي. يقوم بإنشاء مجموعة أخرى من أزواج المفاتيح للجولة r — على سبيل المثال، عن طريق (1) إنشاء زوج آخر زوج المفاتيح الرئيسي (PMK، SMK)؛ (2) استخدام هذا الزوج لإنشاء 106 مفاتيح سريعة الزوال، على سبيل المثال، كورونا ص، μ+1 أنا ، . . . , كورونا ص، μ+106 أنا ، المقابلة للخطوات μ+1، ...، μ+106 من الجولة r؛ (3) باستخدام skr، μ أنا إلى رقميا قم بتسجيل PMK (وأي رسالة (r, μ) إذا كان i \(\in\)SV r,μ)، نسبة إلى pkr,μ أنا ; و(4) محو SMK وskr,μ أنا . هل يجب أن أصبح مدققًا في خطوة μ + s مع s \(\in\){1, . . . ، 106}، ثم أوقعه رقميًا (r، μ + s)- رسالة السيد، μ+s أنا نسبة إلى مفتاحه الجديد pk ص، μ+س أنا = (ط، ص، μ + ق). بالطبع، للتحقق من هذا التوقيع بالنسبة لـ i، يحتاج الآخرون إلى التأكد من أن هذا المفتاح العام يتوافق مع المفتاح الرئيسي العام الجديد PMK الخاص بـ i. وبالتالي، بالإضافة إلى هذا التوقيع، أقوم بنقل توقيعه الرقمي لـ PMK نسبةً إلى pkr,μ أنا . بالطبع، يمكن تكرار هذا النهج، عدة مرات حسب الضرورة، في حالة استمرار الجولة لمزيد والمزيد من الخطوات! يتم استخدام المفتاح السري الأخير للمصادقة على جمهور رئيسي جديد المفتاح، وبالتالي مجموعة أخرى من المفاتيح سريعة الزوال للجولة r. وهكذا.6.3 البروتوكول الفعلي Algorand ′ 2 تذكر مرة أخرى أنه في كل خطوة من الجولة r، يستخدم المدقق سره العام طويل المدى زوج المفاتيح لإنتاج بيانات الاعتماد الخاصة به، \(\sigma\)r،s أنا \(\triangleq\)SIGi(r, s, Qr−1)، وكذلك SIGi ريال قطري−1 في حالة ق = 1. يستخدم أداة التحقق زوج المفاتيح سريع الزوال، (pkr،s أنا، سكر، ق i )، للتوقيع على أي رسالة أخرى قد تكون كذلك مطلوب. للتبسيط، نكتب esigi(m)، بدلاً من sigpkr,s أنا (م)، للدلالة على أنا سريع الزوال قم بتوقيع m في هذه الخطوة، واكتب ESIGi(m) بدلاً من SIGpkr,s أنا (م) \(\triangleq\)(أنا، م، esigi(م)). الخطوة 1: حظر الاقتراح تعليمات لكل مستخدم i \(\in\)PKr−k: يبدأ المستخدم i الخطوة 1 الخاصة به من الجولة r بمجرد قيامه بذلك CERT r−1، والذي يسمح لي بحساب H(Br−1) وQr−1 بشكل لا لبس فيه. • يستخدم المستخدم i Qr−1 للتحقق مما إذا كان i \(\in\)SV r,1 أم لا. إذا i /\(\in\)SV r,1، فإنه لا يفعل شيئًا للخطوة 1. • إذا كان i \(\in\)SV r,1، أي إذا كنت قائدًا محتملاً، فإنه يقوم بما يلي. (أ) إذا رأيت B0، . . . ، Br−1 نفسه (أي Bj = Bj يمكن استخلاصها بسهولة من قيمتها hash في CERT j ومن ثم يُفترض أنه "تم رؤيته")، ثم يقوم بجمع مدفوعات الجولة r التي لها تم نشره له حتى الآن ويحسب الحد الأقصى لمجموعة الدفع PAY r أنا منهم. (ب) إذا لم أر كل B0، . . . ، Br−1 حتى الآن، ثم يقوم بتعيين PAY r أنا = \(\emptyset\). (ج) بعد ذلك، أقوم بحساب "كتلة مرشحه" Br أنا = (ص، دفع ص أنا، SIGi(Qr−1)، H(Br−1)). (ج) أخيرًا، أقوم بحساب الرسالة السيد،1 أنا = (ر أنا، esigi(H(Br أنا )))، \(\sigma\)ص،1 ط)، يدمر له سريع الزوال المفتاح السري skr,1 i، ثم يقوم بنشر رسالتين، السيد،1 أنا و (SIGi(Qr−1), \(\sigma\)r,1 أنا)، بشكل منفصل ولكن في وقت واحد أعندما أكون القائد، يسمح SIGi(Qr−1) للآخرين بحساب Qr = H(SIGi(Qr−1), r).

الانتشار الانتقائي لتقصير التنفيذ الشامل للخطوة 1 والجولة بأكملها، من المهم أن (r, 1)- يتم نشر الرسائل بشكل انتقائي. أي أنه لكل مستخدم j في النظام، • بالنسبة للرسالة الأولى (r, 1) التي يتلقاها ويتحقق منها بنجاح، سواء كانت تحتوي على كتلة أو مجرد بيانات اعتماد وتوقيع Qr−1، يقوم اللاعب j بنشرها كالمعتاد. • بالنسبة لجميع الرسائل الأخرى (r, 1) التي يتلقاها اللاعب j ويتحقق منها بنجاح، يقوم بنشرها فقط إذا كانت قيمة hash لبيانات الاعتماد التي تحتوي عليها هي الأصغر بين قيم hash من أوراق الاعتماد الواردة في جميع (ص، 1) - الرسائل التي تلقاها والتحقق منها بنجاح بعيدا. • ومع ذلك، إذا تلقى j رسالتين مختلفتين من النموذج mr,1 أنا من نفس اللاعب i,b he يتجاهل القيمة الثانية بغض النظر عن قيمة hash لبيانات اعتماد i. لاحظ أنه في ظل الانتشار الانتقائي، من المفيد أن يقوم كل قائد محتمل بنشر قائده بيانات الاعتماد \(\sigma\)r,1 أنا بشكل منفصل عن السيد،1 i :c تلك الرسائل الصغيرة تنتقل بشكل أسرع من الكتل، تأكد نشر في الوقت المناسب للسيد،1 i حيث تحتوي بيانات الاعتماد المضمنة على قيم hash صغيرة، بينما اجعل تلك ذات القيم الكبيرة hash تختفي بسرعة. أي أن جميع التوقيعات صحيحة، وإذا كانت بصيغة السيد،1 i، كل من الكتلة وhash صالحة - على الرغم من أن j لا يتحقق مما إذا كانت مجموعة الدفعات المضمنة هي الحد الأقصى لـ i أم لا. ب مما يعني أنني خبيث. نشكر جورجيوس فلاشوس على اقتراحه هذا.الخطوة 2: الخطوة الأولى لبروتوكول الإجماع المتدرج GC تعليمات لكل مستخدم i \(\in\)PKr−k: يبدأ المستخدم i الخطوة 2 الخاصة به من الجولة r بمجرد قيامه بذلك CERT ص -1. • ينتظر المستخدم i الحد الأقصى من الوقت t2 \(\triangleq\)lect + Λ. أثناء الانتظار، أتصرف على النحو التالي. 1. بعد الانتظار للوقت 2، وجد المستخدم \(\ell\)مثل أن H(\(\sigma\)r,1 \(\ell\)) \(\geq\)H(\(\sigma\)r,1 ي) للجميع أوراق الاعتماد \(\sigma\)r,1 ي التي تعد جزءًا من الرسائل التي تم التحقق منها بنجاح (r, 1) والتي تلقاها حتى الآن.أ 2. إذا هو لديه تلقى أ كتلة ر−1، الذي مباريات ال hash قيمة ح (ر −1) الواردة في CERT r−1,b وإذا تلقى من \(\ell\)a رسالة صالحة السيد,1 \(\ell\) = (ر \(\ell\)، esig\(\ell\)(H(Br \(\ell\))))، \(\sigma\)ص،1 \(\ell\))،c ثم أتوقف عن الانتظار وأضبط v' أنا \(\triangleq\)(ح(ر \(\ell\))، \(\ell\)). 3. بخلاف ذلك، عندما ينفد الوقت t2، أقوم بتعيين v' أنا \(\triangleq\) \(\bot\). 4. عندما تكون قيمة v′ لقد تم تعييني، أقوم بحساب Qr−1 من CERT r−1 والتحقق من ذلك أنا \(\in\)SV r,2 أم لا. 5. إذا كان i \(\in\)SV r,2، فأنا أحسب الرسالة mr,2 أنا \(\triangleq\)(ESIGi(v') أنا)، \(\sigma\)ص،2 أنا)،د يدمر له سريع الزوال المفتاح السري skr,2 أنا، ثم ينشر السيد،2 أنا. خلاف ذلك، أتوقف دون نشر أي شيء. بشكل أساسي، يقرر المستخدم i بشكل خاص أن قائد الجولة r هو المستخدم \(\ell\). بالطبع، إذا كان CERT r−1 يشير إلى أن Br−1 = Br−1 ƒ ، فقد "استلمت" بالفعل Br−1 في اللحظة التي حصل فيها على ذلك CERT ص -1. cمرة أخرى، تم التحقق بنجاح من توقيعات اللاعب \(\ell\) وhashes، ويتم الدفع \(\ell\)في ر \(\ell\)هي مجموعة دفع صالحة لـ round r - على الرغم من أنني لا أتحقق مما إذا كان PAY r \(\ell\)هو الحد الأقصى لـ \(\ell\)أو لا. إذا ر \(\ell\)يحتوي على مجموعة دفعات فارغة، إذن ليست هناك حاجة في الواقع إلى رؤية Br−1 قبل التحقق مما إذا كان Br \(\ell\)صالحة أم لا. دالرسالة السيد،2 أنا إشارات إلى أن اللاعب i يعتبر المكون الأول لـ v' i ليكون hash للكتلة التالية، أو يعتبر الكتلة التالية فارغة.

الخطوة 3: الخطوة الثانية من GC تعليمات لكل مستخدم i \(\in\)PKr−k: يبدأ المستخدم i الخطوة 3 الخاصة به من الجولة r بمجرد قيامه بذلك CERT ص -1. • ينتظر المستخدم i الحد الأقصى من الوقت t3 \(\triangleq\)t2 + 2ạ = 3ạ + Λ. أثناء الانتظار، أقوم بدور يتبع. 1. إذا كانت هناك قيمة v بحيث أنه تلقى على الأقل رسائل صالحة mr,2 ي من النموذج (ESIGj(v)، \(\sigma\)r،2 ي) دون أي تناقض، ثم ينقطع عن الانتظار ويغرب الخامس' = الخامس. 2. بخلاف ذلك، عند انتهاء الوقت t3، يقوم بتعيين v′ = \(\bot\). 3. عند تعيين قيمة v′، أقوم بحساب Qr−1 من CERT r−1 والتحقق مما إذا كان أنا \(\in\)SV r,3 أم لا. 4. إذا كان i \(\in\)SV r,3، فأنا أحسب الرسالة mr,3 أنا \(\triangleq\)(ESIGi(v′),\(\sigma\)r,3 ط)، يدمر له مفتاح سري سريع الزوال skr،3 أنا، ومن ثم نشر السيد،3 أنا. خلاف ذلك، أتوقف دون نشر أي شيء. أي أنه لم يتلق رسالتين صالحتين تحتويان على ESIGj(v) وESIGj(ˆv) مختلفين على التوالي، من اللاعب j. هنا ومن هنا فصاعدًا، باستثناء شروط النهاية التي سيتم تحديدها لاحقًا، عندما يكون اللاعب صادقًا يريد رسائل ذات شكل معين، فالرسائل المتعارضة مع بعضها البعض لا يتم احتسابها أو اعتبارها صالحة.

الخطوة 4: إخراج GC والخطوة الأولى من BBA⋆ تعليمات لكل مستخدم i \(\in\)PKr−k: يبدأ المستخدم i الخطوة 4 الخاصة به من الجولة r بمجرد أن ينهي الخطوة 3 الخاصة به. • المستخدم i ينتظر الحد الأقصى من الوقت 2 .أ أثناء الانتظار، يتصرف كما يلي. 1. يقوم بحساب vi وgi، مخرجات GC، على النحو التالي. (أ) إذا كانت هناك قيمة v'̸= \(\bot\) بحيث يكون قد تلقى على الأقل رسائل صالحة السيد،3 ي = (ESIGj(v′),\(\sigma\)r,3 j )، ثم يتوقف عن الانتظار ويضبط vi \(\triangleq\)v′ وgi \(\triangleq\)2. (ب) إذا كان قد تلقى على الأقل رسائل صالحة السيد،3 ي = (ESIGj(\(\bot\)), \(\sigma\)r,3 ي)، ثم يتوقف انتظار وضبط vi \(\triangleq\) \(\bot\) وgi \(\triangleq\)0.b (ج) بخلاف ذلك، عندما ينفد الوقت 2، إذا كانت هناك قيمة v' ̸= \(\bot\) بحيث يكون لديه تلقى على الأقل ⌈tH 2 ⌉رسائل صالحة السيد،ي ي = (ESIGj(v′),\(\sigma\)r,3 j )، ثم يقوم بتعيين vi \(\triangleq\)v' وجي \(\triangleq\)1.c (د) بخلاف ذلك، عندما ينفد الوقت 2lect، فإنه يحدد vi \(\triangleq\) \(\bot\) وgi \(\triangleq\)0. 2. عندما يتم تعيين القيم vi وgi، i يحسب bi، مدخل BBA⋆، على النحو التالي: ثنائية \(\triangleq\)0 إذا كانت gi = 2، وbi \(\triangleq\)1 بخلاف ذلك. 3. أنا أحسب Qr−1 من CERT r−1 وأتحقق مما إذا كان i \(\in\)SV r,4 أم لا. 4. إذا كان i \(\in\)SV r,4، فإنه يحسب الرسالة mr,4 أنا \(\triangleq\)(ESIGi(bi)، ESIGi(vi)، \(\sigma\)r،4 ط)، يدمر له مفتاح سري سريع الزوال skr،4 أنا، وينشر السيد،4 أنا. خلاف ذلك، أتوقف دون نشر أي شيء. وبالتالي، فإن الحد الأقصى لإجمالي مقدار الوقت منذ أن بدأت خطوته 1 من الجولة r يمكن أن يكون t4 \(\triangleq\)t3 + 2lect = 5lect + Λ. بسواء كانت الخطوة (ب) موجودة في البروتوكول أم لا، فإن ذلك لا يؤثر على صحتها. إلا أن وجود الخطوة (ب) يسمح للخطوة 4 بالانتهاء في أقل من 2\(\times\) إذا قام العديد من مدققي الخطوة 3 بالتوقيع على "\(\bot\)". جيمكن إثبات أن حرف v في هذه الحالة، إذا كان موجودًا، يجب أن يكون فريدًا.الخطوة s، 5 \(\geq\)s \(\geq\)m + 2، s −2 ≡0 mod 3: خطوة ثابتة بالعملة إلى 0 من BBA⋆ تعليمات لكل مستخدم i \(\in\)PKr−k: المستخدم i يبدأ خطواته الخاصة من الجولة r بمجرد أن أنهى خطوته الخاصة −1. • المستخدم i ينتظر الحد الأقصى من الوقت 2 .أ أثناء الانتظار، يتصرف كما يلي. – شرط النهاية 0: إذا كان هناك في أي نقطة سلسلة v ̸= \(\bot\) وخطوة s′ بحيث (أ) 5 s′s′ \(\geq\)s, s′ −2 ≡0 mod 3 — أي أن الخطوة s′ هي خطوة ثابتة بالعملة إلى 0، (ب) لقد تلقيت على الأقل رسائل صالحة mr,s′−1 ي = (ESIGj(0)، ESIGj(v)، \(\sigma\)r،s'−1 ي ) ،ب و (ج) لقد تلقيت رسالة صالحة (SIGj(Qr−1), \(\sigma\)r,1 j ) مع j كونها الثانية مكون الخامس, ثم أتوقف عن الانتظار وأنهي تنفيذه للخطوة s (وفي الواقع للجولة r) على الفور دون نشر أي شيء باعتباره مدققًا (r, s)؛ يحدد H(Br) ليكون الأول مكون من الخامس؛ ويقوم بتعيين CERT r الخاص به ليكون مجموعة الرسائل mr,s′−1 ي من الخطوة (ب) مع (SIGj(Qr−1), \(\sigma\)r,1 ي).ج – شرط النهاية 1: إذا كان هناك في أي وقت خطوة s′ من هذا القبيل (أ') 6 \(\geq\)s′ \(\geq\)s, s′ −2 ≡1 mod 3 — أي أن الخطوة s′ هي خطوة ثابتة بالعملة إلى 1، و (ب') لقد تلقيت على الأقل رسائل صالحة mr,s'−1 ي = (ESIGj(1)، ESIGj(vj)، \(\sigma\)r,s'−1 ي ) ،د بعد ذلك، أتوقف عن الانتظار وأنهي تنفيذه للخطوة s (وفي الواقع للجولة r) بشكل صحيح بعيدًا دون نشر أي شيء باعتباره مُحققًا (r, s)؛ مجموعات ر = ر ƒ ; ويضع بلده CERT r هي مجموعة الرسائل mr,s′−1 ي من الخطوة الفرعية (ب'). - إذا في أي نقطة هو لديه تلقى في الأقل ث صالح السيد، ق−1 ي ق من ال شكل (ESIGj(1)، ESIGj(vj)، \(\sigma\)r،s−1 ي )، ثم يتوقف عن الانتظار ويضبط ثنائية \(\triangleq\)1. - إذا في أي نقطة هو لديه تلقى في الأقل ث صالح السيد، ق−1 ي ق من ال شكل (ESIGj(0)، ESIGj(vj)، \(\sigma\)r،s−1 ي )، لكنهم لا يتفقون على نفس الشيء، ثم يتوقف الانتظار ويحدد ثنائية \(\triangleq\)0. - بخلاف ذلك، عندما ينفد الوقت 2\(\alpha\)، أقوم بتعيين bi \(\triangleq\)0. - عند تعيين القيمة bi، أقوم بحساب Qr−1 من CERT r−1 والتحقق من ذلك أنا \(\in\)SV ص، ق. - إذا كان i \(\in\)SV r,s، أقوم بحساب الرسالة mr,s أنا \(\triangleq\)(ESIGi(bi)، ESIGi(vi)، \(\sigma\)r،s ط) مع وجود السادس القيمة التي حسبها في الخطوة 4، تدمر مفتاحه السري سريع الزوال skr,s أنا، وبعد ذلك ينشر السيد، ق أنا. وإلا فإنني أتوقف دون نشر أي شيء. وبالتالي، فإن الحد الأقصى لإجمالي مقدار الوقت منذ أن بدأت خطوته 1 من الجولة r يمكن أن يكون ts \(\triangleq\)ts−1 + 2lect = (2s −3) lect + Λ. bيتم احتساب هذه الرسالة من اللاعب j حتى لو تلقى اللاعب i أيضًا رسالة من j بالتوقيع برقم 1. أشياء مماثلة لحالة النهاية 1. كما هو موضح في التحليل، هذا للتأكد من أن جميع المستخدمين الصادقين يعرفون ذلك CERT r خلال الوقت π من بعضها البعض. المستخدم يعرف الآن H(Br) ونهاياته الدائرية الخاصة. إنه يحتاج فقط إلى الانتظار حتى تصبح الكتلة Br فعليًا نشر له، الأمر الذي قد يستغرق بعض الوقت الإضافي. لا يزال يساعد في نشر الرسائل كمستخدم عام، لكنه لا يبدأ أي انتشار كمتحقق (r, s). وعلى وجه الخصوص، ساعد في نشر جميع الرسائل في له CERT ص، وهو ما يكفي لبروتوكولنا. لاحظ أنه يجب عليه أيضًا تعيين bi \(\triangleq\)0 لبروتوكول BA الثنائي، ولكن ليست هناك حاجة إلى bi في هذه الحالة على أي حال. أشياء مماثلة لجميع التعليمات المستقبلية. في هذه الحالة، لا يهم ما هي VJ. 65الخطوة s، 6 \(\geq\)s \(\geq\)m + 2، s −2 ≡1 mod 3: خطوة ثابتة بالعملة إلى 1 من BBA⋆ تعليمات لكل مستخدم i \(\in\)PKr−k: المستخدم i يبدأ خطواته الخاصة من الجولة r بمجرد أن أنهى خطوته الخاصة −1. • ينتظر المستخدم الحد الأقصى من الوقت 2 . أثناء الانتظار، أتصرف على النحو التالي. – شرط النهاية 0: نفس التعليمات الموجودة في خطوة العملة الثابتة إلى 0. – شرط النهاية 1: نفس التعليمات الموجودة في خطوة العملة الثابتة إلى 0. - إذا في أي نقطة هو لديه تلقى في الأقل ث صالح السيد، ق−1 ي ق من ال شكل (ESIGj(0)، ESIGj(vj)، \(\sigma\)r،s−1 ي )، ثم يتوقف عن الانتظار ويضبط bi \(\triangleq\)0.a - بخلاف ذلك، عندما ينفد الوقت 2π، أقوم بتعيين bi \(\triangleq\)1. - عند تعيين القيمة bi، أقوم بحساب Qr−1 من CERT r−1 والتحقق من ذلك أنا \(\in\)SV ص، ق. - إذا كان i \(\in\)SV r,s، أقوم بحساب الرسالة mr,s أنا \(\triangleq\)(ESIGi(bi)، ESIGi(vi)، \(\sigma\)r،s ط) مع وجود السادس القيمة التي حسبها في الخطوة 4، تدمر مفتاحه السري سريع الزوال skr,s أنا، وبعد ذلك ينشر السيد، ق أنا. وإلا فإنني أتوقف دون نشر أي شيء. لاحظ أن تلقي رسائل صالحة (r, s −1) - توقيع الرسائل لـ 1 يعني حالة النهاية 1. الخطوة s، 7 \(\geq\)s \(\geq\)m + 2، s −2 ≡2 mod 3: خطوة مقلوبة بشكل حقيقي من BBA⋆ تعليمات لكل مستخدم i \(\in\)PKr−k: المستخدم i يبدأ خطواته الخاصة من الجولة r بمجرد أن ينهي خطوته s −1. • ينتظر المستخدم الحد الأقصى من الوقت 2 . أثناء الانتظار، أتصرف على النحو التالي. – شرط النهاية 0: نفس التعليمات الموجودة في خطوة العملة الثابتة إلى 0. – شرط النهاية 1: نفس التعليمات الموجودة في خطوة العملة الثابتة إلى 0. - إذا في أي نقطة هو لديه تلقى في الأقل ث صالح السيد، ق−1 ي ق من ال شكل (ESIGj(0)، ESIGj(vj)، \(\sigma\)r،s−1 ي )، ثم يتوقف عن الانتظار ويضبط bi \(\triangleq\)0. - إذا في أي نقطة هو لديه تلقى في الأقل ث صالح السيد، ق−1 ي ق من ال شكل (ESIGj(1)، ESIGj(vj)، \(\sigma\)r،s−1 ي )، ثم يتوقف عن الانتظار ويضبط ثنائية \(\triangleq\)1. - خلاف ذلك، عندما ينفد الوقت 2، السماح لـ SV r,s−1 أنا تكون مجموعة (r, s −1)-المدققين من الذي تلقى رسالة صالحة السيد، ق−1 ي ، أقوم بتعيين bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1 أنا ح(\(\sigma\)ص,ق−1 ي )). - عند تعيين القيمة bi، أقوم بحساب Qr−1 من CERT r−1 والتحقق من ذلك أنا \(\in\)SV ص، ق. - إذا كان i \(\in\)SV r,s، أقوم بحساب الرسالة mr,s أنا \(\triangleq\)(ESIGi(bi)، ESIGi(vi)، \(\sigma\)r،s ط) مع وجود السادس القيمة التي حسبها في الخطوة 4، تدمر مفتاحه السري سريع الزوال skr,s أنا، وبعد ذلك ينشر السيد، ق أنا. وإلا فإنني أتوقف دون نشر أي شيء. ملاحظة. من حيث المبدأ، كما هو مذكور في القسم الفرعي 6.2، قد يأخذ البروتوكول عددًا كبيرًا من الأشخاص بشكل تعسفي خطوات في بعض الجولة. في حالة حدوث ذلك، كما تمت مناقشته، فإن المستخدم i \(\in\)SV r,s مع s > μ قد استنفد

مخبأه من المفاتيح المؤقتة التي تم إنشاؤها مسبقًا ويجب عليه مصادقة رسالته (r, s) mr,s أنا بواسطة أ "سلسلة" من المفاتيح سريعة الزوال. وهكذا تصبح رسالتي أطول قليلاً وأرسلها لفترة أطول سوف تستغرق الرسائل وقتًا أطول قليلاً. وبناء على ذلك، بعد العديد من الخطوات لجولة معينة، قيمة ستزداد المعلمة lect بشكل طفيف تلقائيًا. (لكنه يعود إلى الأصل π مرة واحدة جديدة يتم إنتاج الكتلة وتبدأ جولة جديدة.) إعادة بناء كتلة Round-r من قبل غير المتحققين تعليمات لكل مستخدم i في النظام: يبدأ المستخدم i جولته الخاصة بمجرد قيامه بذلك CERT ص -1. • أتبع تعليمات كل خطوة من خطوات البروتوكول، وأشارك في نشره للجميع الرسائل، لكنه لا يبدأ أي نشر في خطوة إذا لم يكن مدققا فيها. • أنهي جولته r بإدخال إما حالة النهاية 0 أو حالة النهاية 1 في البعض الخطوة، مع CERT ص المقابلة. • من الآن فصاعدا، يبدأ جولته r + 1 أثناء انتظار استلام الكتلة الفعلية Br (ما لم لقد استلمها بالفعل)، وتم تثبيت hash H(Br) بواسطة CERT r. مرة أخرى، إذا يشير CERT r إلى أن Br = Br à، أنا أعرف Br في اللحظة التي حصل فيها على CERT r. 6.4 تحليل Algorand ′ 2 تحليل Algorand ′ 2 مشتق بسهولة من Algorand ′ 1. بشكل أساسي، في Algorand ′ 2، مع احتمالية ساحقة، (أ) يتفق جميع المستخدمين الصادقين على نفس الكتلة Br؛ زعيم جديد الكتلة صادقة مع احتمالية على الأقل ph = h2(1 + h −h2).

Algorand ′

2 ในส่วนนี้ เราสร้างเวอร์ชันของ Algorand ′ ที่ทำงานภายใต้สมมติฐานต่อไปนี้ ข้อสันนิษฐานของผู้ใช้ส่วนใหญ่ที่ซื่อสัตย์: มากกว่า 2/3 ของผู้ใช้ในแต่ละ PKr มีความซื่อสัตย์ ในส่วนที่ 8 เราจะแสดงวิธีแทนที่สมมติฐานข้างต้นด้วย Honest Majority ที่ต้องการ สมมติฐานเรื่องเงิน 6.1 สัญลักษณ์และพารามิเตอร์เพิ่มเติมสำหรับ Algorand ′ 2 สัญกรณ์ • \(\mu\) \(\in\)Z+: ขอบเขตบนเชิงปฏิบัติของจำนวนขั้นตอนที่มีความน่าจะเป็นอย่างท่วมท้น จะถ่ายจริงในรอบเดียว (ดังที่เราจะเห็น พารามิเตอร์ \(\mu\) ควบคุมจำนวนข้อมูลชั่วคราว คีย์ที่ผู้ใช้เตรียมไว้ล่วงหน้าในแต่ละรอบ) • Lr: ตัวแปรสุ่มที่แสดงถึงจำนวนการทดลองเบอร์นูลลีที่จำเป็นในการดู 1 เมื่อแต่ละครั้ง การทดลองคือ 1 ด้วยความน่าจะเป็น ph 2. Lr จะถูกใช้เพื่อขอบเขตบนของเวลาที่จำเป็นในการสร้าง บล็อกเบอร์ • th: ขอบเขตล่างสำหรับจำนวนผู้ตรวจสอบที่ซื่อสัตย์ในขั้นตอน s > 1 ของรอบ r โดยที่ ความน่าจะเป็นอย่างท่วมท้น (ให้ n และ p) มี > ผู้ตรวจสอบที่ซื่อสัตย์ใน SV r,s พารามิเตอร์ • ความสัมพันธ์ระหว่างพารามิเตอร์ต่างๆ — สำหรับแต่ละขั้นตอน s > 1 ของรอบ r, n จะถูกเลือก ดังนั้น ด้วยความน่าจะเป็นอย่างล้นหลาม

|HSV r,s| > ที และ |HSV r,s| + 2|MSV r,s| < 2tH โปรดทราบว่าอสมการทั้งสองข้างต้นรวมกันหมายถึง |HSV r,s| > 2|MSV r,s|: นั่นคือตรงนั้น เป็นเสียงข้างมากที่ซื่อสัตย์ 2/3 ของผู้ตรวจสอบที่เลือก ยิ่งค่า h ใกล้ 1 มากเท่าใด n ก็ต้องมีค่าน้อยลงเท่านั้น โดยเฉพาะเราใช้ (variants ของ) ขอบเขตเชอร์โนฟเพื่อให้แน่ใจว่าเงื่อนไขที่ต้องการมีความน่าจะเป็นอย่างล้นหลาม • ตัวอย่างตัวเลือกของพารามิเตอร์ที่สำคัญ — ฉ = 10−18. — n \(\mu\)4000, tH \(\mu\)0.69n, k = 70 6.2 การใช้คีย์ชั่วคราวใน Algorand ′ 2 จำได้ว่าผู้ตรวจสอบ i \(\in\)SV r,s ลงนามข้อความของเขาแบบดิจิทัล mr,s ฉัน ของขั้นตอน s ในรอบ r สัมพันธ์กับ กุญแจสาธารณะชั่วคราว pkr,s ฉัน ใช้คีย์ลับชั่วคราว skr,s ฉัน ที่เขาทำลายทันที หลังจากใช้งาน เมื่อจำนวนขั้นตอนที่เป็นไปได้ที่รอบอาจใช้นั้นถูกจำกัดด้วยจำนวนที่กำหนด จำนวนเต็ม \(\mu\) เราได้เห็นวิธีจัดการกับคีย์ชั่วคราวแล้ว เช่นอย่างที่เรา ได้อธิบายไว้ใน Algorand ′ 1 (โดยที่ \(\mu\) = m + 3) เพื่อจัดการคีย์ชั่วคราวที่เป็นไปได้ทั้งหมดจาก รอบ r′ ถึงรอบ r′ + 106 ฉันสร้างคู่ (PMK, SMK) โดยที่ PMK ปรมาจารย์สาธารณะ คีย์ของรูปแบบลายเซ็นตามข้อมูลประจำตัว และ SMK เป็นคีย์หลักลับที่เกี่ยวข้อง ผู้ใช้ฉัน เผยแพร่ PMK และใช้ SMK เพื่อสร้างคีย์ลับของคีย์สาธารณะชั่วคราวที่เป็นไปได้แต่ละรายการ (และทำลาย SMK หลังจากทำเช่นนั้น) ชุดกุญแจสาธารณะชั่วคราวของ i สำหรับผู้เกี่ยวข้อง รอบคือ S = {i} \(\times\) {r′, . . , r′ + 106} \(\times\) {1, . . . , \(\mu\)} (ตามที่กล่าวไว้ เมื่อรอบ r′ + 106 ใกล้เข้ามา ฉัน "รีเฟรช" คู่ของเขา (PMK, SMK)) ในทางปฏิบัติ ถ้า \(\mu\) มีขนาดใหญ่พอ รอบของ Algorand ′ 2 จะต้องไม่เกิน \(\mu\) ขั้นตอน ใน อย่างไรก็ตาม โดยหลักการแล้ว มีความเป็นไปได้ที่ระยะไกลสำหรับบางรอบคือจำนวนก้าว ที่ถ่ายจริงจะเกิน \(\mu\) เมื่อสิ่งนี้เกิดขึ้น ฉันจะไม่สามารถลงนามในข้อความของคุณนายได้ ฉัน สำหรับ ขั้นตอนใดก็ได้ s > \(\mu\) เนื่องจากเขาได้เตรียมคีย์ลับไว้ล่วงหน้าเฉพาะ \(\mu\) สำหรับรอบ r เท่านั้น นอกจากนี้เขา ไม่สามารถจัดเตรียมและเผยแพร่กุญแจชั่วคราวชุดใหม่ตามที่กล่าวไว้ก่อนหน้านี้ ในความเป็นจริงที่จะทำ ดังนั้นเขาจะต้องแทรกคีย์สาธารณะใหม่ PMK′ ลงในบล็อกใหม่ แต่ควรปัดเศษ r ทำตามขั้นตอนมากขึ้นเรื่อยๆ จะไม่มีการสร้างบล็อกใหม่ อย่างไรก็ตาม ยังมีวิธีแก้ปัญหาอยู่ ตัวอย่างเช่น ฉันอาจใช้คีย์ชั่วคราวตัวสุดท้ายของ round r, pkr,\(\mu\) ฉัน , ดังต่อไปนี้ เขาสร้างคู่คีย์อีกชุดหนึ่งสำหรับรอบ r —เช่น โดย (1) สร้างอีกคู่หนึ่ง คู่คีย์หลัก (PMK, SMK); (2) การใช้คู่นี้เพื่อสร้างอีกอัน เช่น 106 คีย์ชั่วคราว สค r,\(\mu\)+1 ฉัน , . . . , ถาม r,\(\mu\)+106 ฉัน สอดคล้องกับขั้นตอน \(\mu\)+1, ..., \(\mu\)+106 ของรอบ r; (3) การใช้ skr,\(\mu\) ฉัน สู่ดิจิทัล ลงชื่อ PMK (และข้อความ (r, \(\mu\)) ใดๆ หาก i \(\in\)SV r,\(\mu\)) สัมพันธ์กับ pkr,\(\mu\) ฉัน ; และ (4) การลบ SMK และ skr,\(\mu\) ฉัน . ฉันควรจะเป็นผู้ตรวจสอบในขั้นตอน \(\mu\) + s ด้วย s \(\in\){1, . . . , 106} จากนั้นฉันจะเซ็นชื่อแบบดิจิทัลของเขา (r, \(\mu\) + s)- ส่งข้อความถึงคุณ,\(\mu\)+s ฉัน สัมพันธ์กับ pk คีย์ใหม่ของเขา r,\(\mu\)+s ฉัน = (i, r, \(\mu\) + s) แน่นอนว่าต้องตรวจสอบลายเซ็นนี้ ของ i คนอื่นๆ ต้องแน่ใจว่าคีย์สาธารณะนี้สอดคล้องกับ PMK คีย์สาธารณะใหม่ของ i ดังนั้น นอกเหนือจากลายเซ็นนี้แล้ว ฉันยังส่งลายเซ็นดิจิทัลของ PMK ของเขาโดยสัมพันธ์กับ pkr,\(\mu\) ฉัน . แน่นอนว่าแนวทางนี้สามารถทำซ้ำได้บ่อยเท่าที่จำเป็น โดยควรปัด r ต่อไป เพื่อก้าวที่มากขึ้นเรื่อยๆ! รหัสลับชั่วคราวสุดท้ายจะใช้ในการตรวจสอบสิทธิ์สาธารณะหลักใหม่ กุญแจ และกุญแจชั่วคราวอีกอันสำหรับรอบ r และอื่นๆ6.3 พิธีสารจริง Algorand ′ 2 ระลึกอีกครั้งว่าในแต่ละขั้นตอน s ของรอบ r ผู้ตรวจสอบ i \(\in\)SV r,s ใช้ความลับสาธารณะระยะยาวของเขา คู่คีย์เพื่อสร้างหนังสือรับรองของเขา \(\sigma\)r, s ฉัน \(\triangleq\)SIGi(r, s, Qr−1) เช่นเดียวกับ SIGi คิวอาร์−1 ในกรณีที่ s = 1 ผู้ตรวจสอบฉันใช้คู่กุญแจชั่วคราวของเขา (pkr, s ฉัน , skr, s i ) เพื่อลงนามในข้อความอื่นใดที่อาจเป็น จำเป็น เพื่อความง่าย เราเขียน esigi(m) แทน sigpkr,s ฉัน (ม.) เพื่อแสดงว่าฉันเป็นเพียงชั่วคราว ลายเซ็นของ m ในขั้นตอนนี้ และเขียน ESIGi(m) แทน SIGpkr,s i (m) \(\triangleq\)(i, m, esigi(m)) ขั้นตอนที่ 1: บล็อกข้อเสนอ คำแนะนำสำหรับผู้ใช้ทุกคน i \(\in\)PKr−k: ผู้ใช้ i เริ่มขั้นตอนที่ 1 ของตัวเองของรอบ r ทันทีที่เขามี CERT r−1 ซึ่งช่วยให้ i คำนวณ H(Br−1) และ Qr−1 ได้อย่างชัดเจน • ผู้ใช้ i ใช้ Qr−1 เพื่อตรวจสอบว่า i \(\in\)SV r,1 หรือไม่ ถ้า i /\(\in\)SV r,1 เขาไม่ทำอะไรเลยในขั้นตอนที่ 1 • ถ้าฉัน \(\in\)SV r,1 นั่นคือ ถ้าฉันเป็นผู้นำที่มีศักยภาพ เขาก็จะทำสิ่งต่อไปนี้ (ก) ถ้าฉันได้เห็น B0 ​​แล้ว . . , Br−1 เอง (ใดๆ Bj = Bj ǫ สามารถหามาได้อย่างง่ายดายจากค่า hash ของมัน ใน CERT j และถือว่า "เห็นแล้ว") จากนั้นเขาจะรวบรวมการชำระเงินรอบที่มี ได้รับการเผยแพร่ไปยังเขาจนถึงตอนนี้และคำนวณ payset สูงสุด PAY r ฉันมาจากพวกเขา (b) ถ้าฉันไม่เห็น B0 ​​ทั้งหมด . . , Br−1 แล้วเขาก็ตั้งค่า PAY r ฉัน = \(\emptyset\) (c) ต่อไป ฉันจะคำนวณ “candidate block” Br i = (r, จ่าย r ผม , SIGI(Qr−1), H(Br−1)) (c) สุดท้ายนี้ ฉันคำนวณข้อความ mr,1 ฉัน = (พี่ ฉัน , esigi(H(Br ผม )), \(\sigma\)r,1 i ) ทำลายช่วงเวลาชั่วคราวของเขา รหัสลับ skr,1 i แล้วเผยแพร่สองข้อความ mr,1 ฉัน และ (SIGi(Qr−1), \(\sigma\)r,1 ฉัน) แยกกันแต่พร้อมกัน ก aเมื่อฉันเป็นผู้นำ SIGi(Qr−1) ยอมให้ผู้อื่นคำนวณ Qr = H(SIGi(Qr−1), r)

การขยายพันธุ์แบบคัดเลือก เพื่อย่นระยะเวลาการดำเนินการทั่วโลกของขั้นตอนที่ 1 และรอบทั้งหมดให้สั้นลง สิ่งสำคัญคือ (r, 1)- ข้อความถูกเผยแพร่แบบเลือกสรร นั่นคือสำหรับผู้ใช้ j ทุกคนในระบบ • สำหรับข้อความแรก (r, 1) ที่เขาเคยได้รับและยืนยันได้สำเร็จ ก ว่าข้อความนั้นมี บล็อกหรือเป็นเพียงข้อมูลประจำตัวและลายเซ็นของ Qr−1 ผู้เล่น j จะเผยแพร่ตามปกติ • สำหรับข้อความอื่นๆ (r, 1) ทั้งหมดที่ผู้เล่น j ได้รับและยืนยันได้สำเร็จ เขาจะเผยแพร่ เฉพาะในกรณีที่ค่า hash ของข้อมูลรับรองที่มีอยู่นั้นน้อยที่สุดในบรรดาค่า hash ของข้อมูลรับรองที่มีอยู่ในข้อความทั้งหมด (r, 1) ที่เขาได้รับและตรวจสอบได้สำเร็จ ไกล • อย่างไรก็ตาม ถ้า j ได้รับข้อความสองข้อความที่แตกต่างกันในรูปแบบ mr,1 ฉัน จากผู้เล่นคนเดียวกัน i,b he ละทิ้งอันที่สองไม่ว่าค่า hash ของข้อมูลประจำตัวของ i จะเป็นเท่าใด โปรดทราบว่าภายใต้การคัดเลือกเผยแพร่ จะมีประโยชน์ที่ผู้ที่มีศักยภาพเป็นผู้นำแต่ละคนจะเผยแพร่ของตน หนังสือรับรอง \(\sigma\)r,1 ฉัน แยกจากนาย 1 i :c ข้อความเล็กๆ เหล่านั้นเดินทางเร็วกว่าบล็อกแน่นอน การขยายพันธุ์นาย 1 อย่างทันท่วงที ฉัน โดยที่ข้อมูลประจำตัวที่มีอยู่มีค่า hash น้อยในขณะที่ ทำให้ค่าที่มีค่า hash มากหายไปอย่างรวดเร็ว กกล่าวคือ ลายเซ็นทั้งหมดถูกต้อง และหากอยู่ในแบบ นาย 1 i ทั้งบล็อกและ hash นั้นถูกต้อง —แม้ว่า j จะไม่ตรวจสอบว่า payset ที่รวมไว้นั้นสูงสุดสำหรับ i หรือไม่ bซึ่งหมายความว่าฉันเป็นอันตราย cเราขอขอบคุณ Georgios Vlachos ที่แนะนำสิ่งนี้ขั้นตอนที่ 2: ขั้นตอนแรกของ GC ของโปรโตคอลฉันทามติแบบให้คะแนน คำแนะนำสำหรับผู้ใช้ทุกคน i \(\in\)PKr−k: ผู้ใช้ i เริ่มขั้นตอนที่ 2 ของตัวเองของรอบ r ทันทีที่มี ใบรับรองr−1 • ผู้ใช้ i รอเป็นระยะเวลาสูงสุด t2 \(\triangleq\)แล + Λ ระหว่างรอผมก็ทำดังนี้ครับ 1. หลังจากรอเวลา 2แล เขาพบผู้ใช้ ëเช่นนั้น H(\(\sigma\)r,1 มอร์) \(\leq\)H(\(\sigma\)r,1 เจ ) สำหรับทุกคน หนังสือรับรอง\(\sigma\)r,1 เจ ซึ่งเป็นส่วนหนึ่งของข้อความที่ได้รับการตรวจสอบ (r, 1) เรียบร้อยแล้ว จนถึงตอนนี้ 2. ถ้า เขา มี ได้รับ ก บล็อก เบอร์-1, ซึ่ง ไม้ขีด ที่ hash ค่า H(Br−1) อยู่ใน CERT r−1,b และหากเขาได้รับจาก la ข้อความที่ถูกต้อง mr,1 ฎ = (นาย มอร์, ซิกล์(H(Br ̵)), \(\sigma\)r,1 ̵) c จากนั้นฉันก็หยุดรอและตั้งค่า v′ ฉัน \(\triangleq\)(H(Br ë), ë) 3. มิฉะนั้น เมื่อหมดเวลา t2 ฉันจะตั้งค่า v′ ฉัน \(\triangleq\) \(\bot\) 4. เมื่อค่าของ v′ ฉันตั้งค่าไว้แล้ว ฉันคำนวณ Qr−1 จาก CERT r−1 และตรวจสอบว่า ฉัน \(\in\)SV r,2 หรือไม่ 5. ถ้าฉัน \(\in\)SV r,2 ฉันจะคำนวณข้อความ mr,2 ฉัน \(\triangleq\)(ESIGi(วี′ ผม), \(\sigma\)r,2 i ) d ทำลายช่วงเวลาชั่วคราวของเขา รหัสลับ skr,2 ฉัน แล้วเผยแพร่นาย 2 ฉัน ไม่อย่างนั้นฉันก็หยุดโดยไม่เผยแพร่ อะไรก็ได้ โดยพื้นฐานแล้ว ผู้ใช้ i ตัดสินใจเป็นการส่วนตัวว่าผู้นำของรอบ r คือผู้ใช้ ë bแน่นอน ถ้า CERT r−1 ระบุว่า Br−1 = Br−1 ī แล้วฉันก็ "ได้รับ" Br−1 ทันทีที่เขามี ใบรับรองr−1 cอีกครั้ง ลายเซ็นของผู้เล่น ë และ hashes ได้รับการตรวจสอบเรียบร้อยแล้ว และชำระเงิน ริน Br ëเป็นชุดการจ่ายเงินที่ถูกต้องสำหรับ รอบ r —แม้ว่าฉันจะไม่ได้ตรวจสอบว่า PAY r หรือไม่ ̵ เป็นค่าสูงสุดสำหรับ ̃ หรือไม่ ถ้า Br tellประกอบด้วยชุดการจ่ายเงินที่ว่างเปล่า จริงๆ แล้วไม่จำเป็นต้องเห็น Br−1 ก่อนที่จะตรวจสอบว่า Br ่ถูกต้องหรือไม่ งข้อความคุณนาย2 ฉัน ส่งสัญญาณว่าผู้เล่น i พิจารณาองค์ประกอบแรกของ v′ ฉันเป็น hash ของบล็อกถัดไป หรือ ถือว่าบล็อกถัดไปว่างเปล่า

ขั้นตอนที่ 3: ขั้นตอนที่สองของ GC คำแนะนำสำหรับผู้ใช้ทุกคน i \(\in\)PKr−k: ผู้ใช้ i เริ่มต้นขั้นตอนที่ 3 ของตัวเองของรอบ r ทันทีที่เขามี ใบรับรองr−1 • ผู้ใช้ i รอเป็นระยะเวลาสูงสุด t3 \(\triangleq\)t2 + 2แล = 3แล + Λ ระหว่างรอฉันก็ทำหน้าที่เป็น ดังต่อไปนี้ 1. หากมีค่า v อยู่จนเขาได้รับข้อความที่ถูกต้อง mr,2 เป็นอย่างน้อย เจ ของ แบบฟอร์ม (ESIGj(v), \(\sigma\)r,2 j ) โดยไม่มีข้อขัดแย้งใด ๆ ก แล้วเขาก็หยุดรอและออกเดินทาง วี' = โวลต์ 2. มิฉะนั้น เมื่อหมดเวลา t3 เขาจะตั้งค่า v′ = \(\bot\) 3. เมื่อตั้งค่า v′ ไว้แล้ว ฉันจะคำนวณ Qr−1 จาก CERT r−1 และตรวจสอบว่า ฉัน \(\in\)SV r,3 หรือไม่ 4. ถ้าฉัน \(\in\)SV r,3 ฉันจะคำนวณข้อความ mr,3 ฉัน \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 ผม ) ทำลายของเขา คีย์ลับชั่วคราว skr,3 ฉัน แล้วเผยแพร่นาย 3 ฉัน ไม่อย่างนั้นฉันก็หยุดโดยไม่มี เผยแพร่สิ่งใดๆ aนั่นคือ เขาไม่ได้รับข้อความที่ถูกต้องสองข้อความที่มี ESIGj(v) และ ESIGj(ˆv) ที่แตกต่างกันตามลำดับ จากผู้เล่นเจ ที่นี่และต่อจากนี้ ยกเว้นในเงื่อนไขการสิ้นสุดที่กำหนดไว้ในภายหลัง เมื่อใดก็ตามที่เป็นผู้เล่นที่ซื่อสัตย์ ต้องการข้อความในรูปแบบที่กำหนด ข้อความที่ขัดแย้งกันจะไม่นับหรือถือว่าถูกต้อง

ขั้นตอนที่ 4: ผลลัพธ์ของ GC และขั้นตอนแรกของ BBA⋆ คำแนะนำสำหรับผู้ใช้ทุกคน i \(\in\)PKr−k: ผู้ใช้ i เริ่มต้นขั้นตอนที่ 4 ของตัวเองของรอบ r ทันทีที่เขา เสร็จสิ้นขั้นตอนที่ 3 ของเขาเอง • ผู้ใช้ ฉันรอเป็นเวลาสูงสุด 2แล.a ขณะรอ ฉันดำเนินการดังนี้ 1. เขาคำนวณ vi และ gi ซึ่งเป็นผลลัพธ์ของ GC ดังนี้ (ก) หากมีค่า v′ ̸= \(\bot\) แสดงว่าเขาได้รับข้อความที่ถูกต้องอย่างน้อย นาย 3 เจ = (ESIGj(v′), \(\sigma\)r,3 j ) จากนั้นเขาก็หยุดรอและตั้งค่า vi \(\triangleq\)v′ และ gi \(\triangleq\)2 (b) หากเขาได้รับข้อความที่ถูกต้องอย่างน้อย mr,3 เจ = (ESIGj(\(\bot\)), \(\sigma\)r,3 j ) จากนั้นเขาก็หยุด รอและตั้งค่า vi \(\triangleq\) \(\bot\)และ gi \(\triangleq\)0.b (ค) มิฉะนั้น เมื่อเวลา 2แล หมดลง ถ้ามีค่า v′ ̸= \(\bot\)เช่นนั้น ได้รับอย่างน้อย ⌈tH 2 ⌉ข้อความที่ถูกต้อง mr,j เจ = (ESIGj(v′), \(\sigma\)r,3 j ) จากนั้นเขาก็ตั้งค่า vi \(\triangleq\)v′ และ gi \(\triangleq\)1.c (d) มิฉะนั้น เมื่อเวลา 2แล หมดลง เขาจะกำหนดให้ vi \(\triangleq\) \(\bot\) และ gi \(\triangleq\)0 2. เมื่อตั้งค่า vi และ gi แล้ว ฉันจะคำนวณ bi ซึ่งเป็นอินพุตของ BBA⋆ ดังนี้: bi \(\triangleq\)0 ถ้า gi = 2 และ bi \(\triangleq\)1 มิฉะนั้น 3. ฉันคำนวณ Qr−1 จาก CERT r−1 และตรวจสอบว่า i \(\in\)SV r,4 หรือไม่ 4. ถ้า i \(\in\)SV r,4, เขาคำนวณข้อความ mr,4 ฉัน \(\triangleq\)(ESIGi(ไบ), ESIGi(vi), \(\sigma\)r,4 ผม ) ทำลายของเขา คีย์ลับชั่วคราว skr,4 ฉัน และเผยแพร่นาย 4 ฉัน ไม่อย่างนั้นฉันก็หยุดโดยไม่เผยแพร่ อะไรก็ได้ ดังนั้น ระยะเวลารวมสูงสุดนับตั้งแต่ฉันเริ่มขั้นตอนที่ 1 ของรอบ r อาจเป็น t4 \(\triangleq\)t3 + 2แล = 5แล + Λ bไม่ว่าขั้นตอน (b) จะอยู่ในโปรโตคอลหรือไม่ก็ตามก็ไม่ส่งผลต่อความถูกต้อง อย่างไรก็ตาม การมีอยู่ของขั้นตอน (b) อนุญาตให้ขั้นตอนที่ 4 สิ้นสุดในเวลาน้อยกว่า 2′ หากผู้ตรวจสอบขั้นตอนที่ 3 จำนวนมากเพียงพอได้ "ลงนาม \(\bot\)" สามารถพิสูจน์ได้ว่า v′ ในกรณีนี้ ถ้ามี จะต้องไม่ซ้ำกันขั้นตอนที่ s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ≡0 mod 3: ขั้นตอน Coin-Fixed-To-0 ของ BBA⋆ คำแนะนำสำหรับผู้ใช้ทุกคน i \(\in\)PKr−k: ผู้ใช้ i เริ่มต้น Step s ของตัวเองของรอบ r ทันทีที่เขา เสร็จสิ้นขั้นตอน s −1 ของเขาเอง • ผู้ใช้ ฉันรอเป็นเวลาสูงสุด 2แล.a ขณะรอ ฉันดำเนินการดังนี้ – เงื่อนไขการสิ้นสุด 0: หาก ณ จุดใดมีสตริง v ̸= \(\bot\) และขั้นตอน s′ เช่นนั้น (a) 5 \(\leq\)s′ \(\leq\)s, s′ −2 ≡0 mod 3 —นั่นคือ ขั้นตอน s′ เป็นขั้นตอน Coin-Fixed-To-0 (b) ฉันได้รับข้อความที่ถูกต้องอย่างน้อย mr,s′−1 เจ = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 เจ )ข และ (c) ฉันได้รับข้อความที่ถูกต้อง (SIGj(Qr−1), \(\sigma\)r,1 j ) โดยที่ j เป็นอันที่สอง องค์ประกอบของวี จากนั้นฉันก็หยุดรอและสิ้นสุดการดำเนินการตามขั้นตอน s ของเขาเอง (และอันที่จริงคือรอบ r) ทันทีโดยไม่ต้องเผยแพร่สิ่งใด ๆ ในฐานะผู้ตรวจสอบ (r, s) กำหนดให้ H(Br) เป็นลำดับแรก องค์ประกอบของวี; และกำหนดให้ CERT r ของเขาเองเป็นชุดของข้อความ mr,s′−1 เจ ของขั้นตอน (b) ร่วมกับ (SIGj(Qr−1), \(\sigma\)r,1 เจ ).ค – เงื่อนไขการสิ้นสุดที่ 1: หาก ณ จุดใดมีขั้นตอนเช่นนั้น (a’) 6 \(\leq\)s′ \(\leq\)s, s′ −2 ≡1 mod 3 —นั่นคือ Step s′ เป็นขั้นตอน Coin-Fixed-To-1 และ (b’) ฉันได้รับข้อความที่ถูกต้องอย่างน้อย mr,s′−1 เจ = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 เจ )ง จากนั้น ฉันหยุดรอและสิ้นสุดการดำเนินการขั้นตอน s ของเขาเอง (และในความเป็นจริงของรอบ r) อย่างถูกต้อง ออกไปโดยไม่เผยแพร่สิ่งใด ๆ ในฐานะผู้ตรวจสอบ (r, s) เซต Br = Br ; และกำหนดของเขาเอง CERT r เป็นชุดของข้อความ mr,s′−1 เจ ของขั้นตอนย่อย (b’) – ถ้า ที่ ใด ๆ จุด เขา มี ได้รับ ที่ น้อยที่สุด ที ถูกต้อง นายส−1 เจ ของ ของ ที่ แบบฟอร์ม (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 เจ ) จากนั้นเขาก็หยุดรอและตั้งค่า bi \(\triangleq\)1 – ถ้า ที่ ใด ๆ จุด เขา มี ได้รับ ที่ น้อยที่สุด ที ถูกต้อง นายส−1 เจ ของ ของ ที่ แบบฟอร์ม (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 เจ )แต่ตนไม่เห็นด้วยกับข้อvแล้วเขาก็หยุด รอและตั้งค่า bi \(\triangleq\)0 – มิฉะนั้น เมื่อเวลา 2แล หมดลง ฉันจะตั้งค่า bi \(\triangleq\)0 – เมื่อตั้งค่า bi แล้ว ฉันจะคำนวณ Qr−1 จาก CERT r−1 และตรวจสอบว่า ฉัน \(\in\)SV r,s – ถ้าฉัน \(\in\)SV r,s ฉันจะคำนวณข้อความ mr,s ฉัน \(\triangleq\)(ESIGi(ไบ), ESIGi(vi), \(\sigma\)r,s i ) โดยที่ vi เป็น ค่าที่เขาคำนวณได้ในขั้นตอนที่ 4 จะทำลายคีย์ลับชั่วคราวของเขา skr,s ฉัน แล้ว เผยแพร่นายส ฉัน ไม่อย่างนั้นฉันก็หยุดโดยไม่เผยแพร่อะไรเลย ดังนั้น ระยะเวลารวมสูงสุดตั้งแต่ฉันเริ่มขั้นตอนที่ 1 ของรอบ r อาจเป็น ts \(\triangleq\)ts−1 + 2แล = (2 วินาที −3)แล + Λ bข้อความดังกล่าวจากผู้เล่น j จะถูกนับแม้ว่าผู้เล่น i จะได้รับข้อความจากการลงนาม j สำหรับ 1 ก็ตาม สิ่งที่คล้ายกันสำหรับเงื่อนไขการสิ้นสุด 1 ดังที่แสดงในการวิเคราะห์ นี่คือเพื่อให้แน่ใจว่าผู้ใช้ที่ซื่อสัตย์ทุกคนทราบ CERT r ภายในเวลา lam จากกัน cUser ตอนนี้ฉันรู้จัก H(Br) และการตกแต่งรอบของเขาเองแล้ว เขาแค่ต้องรอจนกว่าบล็อก Br จริง ๆ จะมาถึง แพร่กระจายไปยังเขาซึ่งอาจต้องใช้เวลาเพิ่มเติมอีกระยะหนึ่ง เขายังคงช่วยเผยแพร่ข้อความในฐานะผู้ใช้ทั่วไป แต่ไม่ได้เริ่มต้นการแพร่กระจายใด ๆ ในฐานะผู้ตรวจสอบ (r, s) โดยเฉพาะเขาได้ช่วยเผยแพร่ข้อความทั้งหมดมาใน CERT r ของเขา ซึ่งเพียงพอสำหรับโปรโตคอลของเรา โปรดทราบว่าเขาควรตั้งค่า bi \(\triangleq\)0 สำหรับโปรโตคอล BA ไบนารีด้วย แต่ bi ไม่จำเป็นในกรณีนี้อยู่แล้ว สิ่งที่คล้ายกันสำหรับคำแนะนำทั้งหมดในอนาคต dในกรณีนี้ มันไม่สำคัญว่า vj คืออะไร 65ขั้นตอนที่ s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ≡1 mod 3: ขั้นตอนแบบ Coin-Fixed-To-1 ของ BBA⋆ คำแนะนำสำหรับผู้ใช้ทุกคน i \(\in\)PKr−k: ผู้ใช้ i เริ่มต้น Step s ของตัวเองของรอบ r ทันทีที่เขา เสร็จสิ้นขั้นตอน s −1 ของเขาเอง • ผู้ใช้ฉันรอเป็นระยะเวลาสูงสุด 2 \(\gamma\) ระหว่างรอผมก็ทำดังนี้ครับ – เงื่อนไขการสิ้นสุด 0: คำแนะนำเดียวกันกับในขั้นตอน Coin-Fixed-To-0 – เงื่อนไขการสิ้นสุด 1: คำแนะนำเดียวกันกับในขั้นตอน Coin-Fixed-To-0 – ถ้า ที่ ใด ๆ จุด เขา มี ได้รับ ที่ น้อยที่สุด ที ถูกต้อง นายส−1 เจ ของ ของ ที่ แบบฟอร์ม (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 เจ ) จากนั้นเขาก็หยุดรอและตั้งค่า bi \(\triangleq\)0.a – มิฉะนั้น เมื่อเวลา 2แล หมดลง ฉันจะตั้งค่า bi \(\triangleq\)1 – เมื่อตั้งค่า bi แล้ว ฉันจะคำนวณ Qr−1 จาก CERT r−1 และตรวจสอบว่า ฉัน \(\in\)SV r,s – ถ้าฉัน \(\in\)SV r,s ฉันจะคำนวณข้อความ mr,s ฉัน \(\triangleq\)(ESIGi(ไบ), ESIGi(vi), \(\sigma\)r,s i ) โดยที่ vi เป็น ค่าที่เขาคำนวณได้ในขั้นตอนที่ 4 จะทำลายคีย์ลับชั่วคราวของเขา skr,s ฉัน แล้ว เผยแพร่นายส ฉัน ไม่อย่างนั้นฉันก็หยุดโดยไม่เผยแพร่อะไรเลย โปรดทราบว่าการรับข้อความที่ถูกต้อง (r, s −1) การลงนามสำหรับ 1 จะหมายถึงการสิ้นสุดเงื่อนไข 1 ขั้นตอนที่ s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 mod 3: ขั้นตอนการพลิกเหรียญอย่างแท้จริงของ BBA⋆ คำแนะนำสำหรับผู้ใช้ทุกคน i \(\in\)PKr−k: ผู้ใช้ i เริ่มต้น Step s ของตัวเองของรอบ r ทันทีที่เขา เสร็จสิ้นขั้นตอนของเขาเอง s −1 • ผู้ใช้ฉันรอเป็นระยะเวลาสูงสุด 2 \(\gamma\) ระหว่างรอผมก็ทำดังนี้ครับ – เงื่อนไขการสิ้นสุด 0: คำแนะนำเดียวกันกับในขั้นตอน Coin-Fixed-To-0 – เงื่อนไขการสิ้นสุด 1: คำแนะนำเดียวกันกับในขั้นตอน Coin-Fixed-To-0 – ถ้า ที่ ใด ๆ จุด เขา มี ได้รับ ที่ น้อยที่สุด ที ถูกต้อง นายส−1 เจ ของ ของ ที่ แบบฟอร์ม (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 เจ ) จากนั้นเขาก็หยุดรอและตั้งค่า bi \(\triangleq\)0 – ถ้า ที่ ใด ๆ จุด เขา มี ได้รับ ที่ น้อยที่สุด ที ถูกต้อง นายส−1 เจ ของ ของ ที่ แบบฟอร์ม (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 เจ ) จากนั้นเขาก็หยุดรอและตั้งค่า bi \(\triangleq\)1 – มิฉะนั้น เมื่อเวลา 2แล หมดลง ให้ SV r,s−1 ฉัน เป็นเซตของ (r, s −1) - ผู้ตรวจสอบจาก ซึ่งเขาได้รับข้อความที่ถูกต้อง Mr,s−1 เจ ฉันตั้งค่า bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1 ฉัน H(\(\sigma\)r,s−1 เจ )). – เมื่อตั้งค่า bi แล้ว ฉันจะคำนวณ Qr−1 จาก CERT r−1 และตรวจสอบว่า ฉัน \(\in\)SV r,s – ถ้าฉัน \(\in\)SV r,s ฉันจะคำนวณข้อความ mr,s ฉัน \(\triangleq\)(ESIGi(ไบ), ESIGi(vi), \(\sigma\)r,s i ) โดยที่ vi เป็น ค่าที่เขาคำนวณได้ในขั้นตอนที่ 4 จะทำลายคีย์ลับชั่วคราวของเขา skr,s ฉัน แล้ว เผยแพร่นายส ฉัน ไม่อย่างนั้นฉันก็หยุดโดยไม่เผยแพร่อะไรเลย หมายเหตุ. ตามหลักการ ตามที่พิจารณาในหัวข้อย่อย 6.2 โปรโตคอลอาจใช้หลายรายการตามอำเภอใจ ขั้นตอนในบางรอบ หากสิ่งนี้เกิดขึ้น ตามที่กล่าวไว้ ผู้ใช้ i \(\in\)SV r,s ที่มี s > \(\mu\) ได้หมดลงแล้ว

ที่เก็บคีย์ชั่วคราวที่สร้างไว้ล่วงหน้าของเขา และต้องตรวจสอบสิทธิ์ (r, s) ข้อความของเขา ฉัน โดย “น้ำตก” ของกุญแจชั่วคราว ดังนั้นข้อความของฉันจึงยาวขึ้นเล็กน้อยและส่งสัญญาณได้นานขึ้น ข้อความจะใช้เวลาอีกสักหน่อย ดังนั้น หลังจากหลายขั้นตอนของรอบที่กำหนด มูลค่าของ พารามิเตอร์ แล จะเพิ่มขึ้นเล็กน้อยโดยอัตโนมัติ (แต่มันจะกลับคืนสู่แบบเดิม lam อีกครั้งหนึ่ง บล็อกถูกสร้างขึ้นและเริ่มรอบใหม่) การสร้าง Round-r Block ขึ้นมาใหม่โดยผู้ที่ไม่ใช่ผู้ตรวจสอบ คำแนะนำสำหรับผู้ใช้ทุกคน i ในระบบ: ผู้ใช้ i เริ่มรอบ r ของตนเองทันทีที่มี ใบรับรองr−1 • ฉันปฏิบัติตามคำแนะนำของแต่ละขั้นตอนของระเบียบการ มีส่วนร่วมในการเผยแพร่ทั้งหมด ข้อความ แต่ไม่ได้เริ่มต้นการแพร่กระจายใด ๆ ในขั้นตอนหนึ่งหากเขาไม่ใช่ผู้ยืนยันในนั้น • ฉันจบรอบของตัวเองด้วยการเข้าสู่เงื่อนไขการสิ้นสุด 0 หรือเงื่อนไขการสิ้นสุด 1 ในบางข้อ ขั้นตอนด้วย CERT r ที่สอดคล้องกัน • จากนั้น เขาเริ่มรอบ r + 1 ขณะที่รอรับบล็อก Br จริง (เว้นแต่ เขาได้รับมันแล้ว) ซึ่ง hash H(Br) ถูกตรึงไว้โดย CERT r อีกครั้งหาก CERT r ระบุว่า Br = Br ǫ ฉันรู้จัก Br ทันทีที่เขามี CERT r 6.4 การวิเคราะห์ Algorand ′ 2 การวิเคราะห์ของ Algorand ′ 2 ได้มาอย่างง่ายดายจาก Algorand ′ 1. โดยพื้นฐานแล้ว ใน Algorand ′ 2 ด้วย ความน่าจะเป็นอย่างล้นหลาม (a) ผู้ใช้ที่ซื่อสัตย์ทุกคนเห็นด้วยกับบล็อกเดียวกัน Br; ผู้นำคนใหม่ บล็อกจะซื่อสัตย์กับความน่าจะเป็นอย่างน้อย ph = h2(1 + h −h2)

التعامل مع المستخدمين الصادقين غير المتصلين

كما قلنا، المستخدم الصادق يتبع جميع التعليمات الموصوفة له، والتي تشمل تعليمات الاتصال بالإنترنت وتشغيل البروتوكول. هذا ليس عبئًا كبيرًا في Algorand، منذ الحساب و النطاق الترددي المطلوب من المستخدم الصادق متواضع جدًا. ومع ذلك، دعونا نشير إلى أن Algorand يمكنه ذلك يمكن تعديلها بسهولة بحيث تعمل في نموذجين، حيث يُسمح للمستخدمين الصادقين بأن يكونوا غير متصلين بالإنترنت أعداد كبيرة. قبل مناقشة هذين النموذجين، دعونا نشير إلى أنه إذا كانت نسبة اللاعبين الشرفاء كانت 95%، ولا يزال من الممكن تشغيل Algorand لتعيين كافة المعلمات بافتراض أن h = 80% بدلاً من ذلك. وبناءً على ذلك، سيستمر Algorand في العمل بشكل صحيح حتى لو كان نصف اللاعبين الصادقين على الأكثر اختار عدم الاتصال (في الواقع، حالة كبيرة من "التغيب"). في الواقع، في أي وقت من الأوقات، على الأقل 80% من اللاعبين عبر الإنترنت سيكونون صادقين. من المشاركة المستمرة إلى الصدق الكسول كما رأينا، Algorand ′ 1 و Algorand ′ 2 اختر معلمة الرجعة k دعونا الآن نوضح أن اختيار k كبير بشكل صحيح يمكّن الشخص من الإزالة شرط المشاركة المستمرة. ويضمن هذا المطلب خاصية حاسمة: وهي، أن بروتوكول BA الأساسي BBA⋆ لديه أغلبية صادقة مناسبة. دعونا الآن نشرح مدى كسول يوفر الصدق طريقة بديلة وجذابة لإرضاء هذه الخاصية.

تذكر أن المستخدم يكون كسولًا ولكن صادقًا إذا (1) اتبع جميع تعليماته الموصوفة ومتى يُطلب منه المشاركة في البروتوكول، و(2) يُطلب منه المشاركة في البروتوكول فقط نادرًا جدًا - على سبيل المثال، مرة واحدة في الأسبوع - مع إشعار مسبق مناسب، ومن المحتمل أن تتلقى إشعارًا مهمًا مكافأة عندما يشارك. للسماح لـ Algorand بالعمل مع هؤلاء اللاعبين، يكفي فقط "اختيار أدوات التحقق من الجولة الحالية بين المستخدمين الموجودين بالفعل في النظام في جولة سابقة بكثير." في الواقع، تذكر ذلك يتم اختيار أدوات التحقق من الجولة r من المستخدمين في الجولة r −k، ويتم إجراء التحديدات بناءً على ذلك على الكمية Qr−1. لاحظ أن الأسبوع يتكون من 10000 دقيقة تقريبًا، وافترض أن أ تستغرق الجولة تقريبًا (على سبيل المثال، في المتوسط) 5 دقائق، لذا فإن الأسبوع يحتوي على 2000 طلقة تقريبًا. افترض أنه، في وقت ما، يرغب المستخدم في تخطيط وقته ومعرفة ما إذا كان سيفعل ذلك أم لا المدقق في الأسبوع المقبل. يختار البروتوكول الآن جهات التحقق لجولة r من المستخدمين في مستدير r −k −2,000، والاختيارات مبنية على Qr−2,001. في الجولة ص، لاعب أعرفه بالفعل القيم Qr−2,000، . . . ، Qr−1، نظرًا لأنهم في الواقع جزء من blockchain. ثم لكل م بين 1 و2000، i هو المتحقق في خطوة s من الجولة r + M إذا وفقط إذا .ح سيجي ص + M، ق، Qr+M−2,001 \(\geq\)ص . وبالتالي، للتحقق مما إذا كان سيتم استدعاؤه للعمل كمدقق في الجولات الـ 2000 القادمة، لا بد لي من التحقق من ذلك. حساب \(\sigma\)M,s أنا = سيجي ص + M، ق، Qr+M−2,001 لـ M = 1 إلى 2000 ولكل خطوة s، وتحقق سواء كان .H(\(\sigma\)M,s أنا ) \(\geq\)p بالنسبة لبعضهم. إذا كانت عملية حساب التوقيع الرقمي تستغرق ميلي ثانية واحدة، إذن ستستغرق هذه العملية بأكملها حوالي دقيقة واحدة من الحساب. إذا لم يتم اختياره كمحقق في أي من هذه الجولات، يمكنه أن يخرج عن الخط "بضمير صادق". لو كان بشكل مستمر لو شارك، لكان قد اتخذ 0 خطوة في الـ 2000 جولة القادمة على أي حال! إذا، بدلا من ذلك، يتم اختياره ليكون مدققًا في إحدى هذه الجولات، ثم يجهز نفسه (على سبيل المثال، عن طريق الحصول على جميع المعلومات اللازمة) للعمل كمدقق نزيه في الجولة المناسبة. ومن خلال هذا التصرف، فإن المتحقق الكسول ولكن الصادق لن يفوته سوى المشاركة في النشر من الرسائل. لكن نشر الرسالة عادة ما يكون قويا. علاوة على ذلك، فإن الدافعين والمستفيدين من من المتوقع أن تكون المدفوعات التي تم نشرها مؤخرًا عبر الإنترنت لمشاهدة ما يحدث لمدفوعاتها، وبالتالي سيشاركون في نشر الرسالة إذا كانوا صادقين.

การจัดการผู้ใช้ Offline ที่ซื่อสัตย์

ดังที่เราได้กล่าวไปแล้ว ผู้ใช้ที่ซื่อสัตย์จะปฏิบัติตามคำแนะนำที่กำหนดไว้ทั้งหมด ซึ่งรวมถึงคำแนะนำในการออนไลน์ด้วย และเรียกใช้โปรโตคอล นี่ไม่ใช่ภาระสำคัญใน Algorand เนื่องจากการคำนวณและ แบนด์วิธที่ต้องการจากผู้ใช้ที่ซื่อสัตย์นั้นค่อนข้างเรียบง่าย แต่ให้เราชี้ให้เห็นว่า Algorand สามารถทำได้ ปรับเปลี่ยนได้ง่ายเพื่อให้ทำงานได้เป็น 2 รูปแบบ โดยที่ผู้ใช้จริงได้รับอนุญาตให้เข้าใช้งาน ตัวเลขที่ดี ก่อนที่จะพูดถึงทั้งสองรุ่นนี้ ให้เราชี้ให้เห็นว่า หากเปอร์เซ็นต์ของผู้เล่นที่ซื่อสัตย์ คือ 95%, Algorand ยังคงสามารถรันได้โดยตั้งค่าพารามิเตอร์ทั้งหมดโดยสมมติว่า h = 80% แทน ดังนั้น Algorand จะยังคงทำงานได้อย่างถูกต้องต่อไป แม้ว่าจะเป็นผู้เล่นที่ซื่อสัตย์เกือบครึ่งหนึ่งก็ตาม เลือกที่จะไป (อันที่จริงเป็นกรณีสำคัญของ "การขาดงาน") ที่จริงแล้ว ณ จุดใดเวลาหนึ่งอย่างน้อยที่สุด 80% ของผู้เล่นออนไลน์จะซื่อสัตย์ จากการมีส่วนร่วมอย่างต่อเนื่องสู่ความซื่อสัตย์ที่ขี้เกียจ อย่างที่เราเห็น Algorand ′ 1 และ Algorand ′ 2 เลือก พารามิเตอร์การมองย้อนกลับ k ตอนนี้ให้เราแสดงให้เห็นว่าการเลือก k ขนาดใหญ่อย่างถูกต้องจะทำให้สามารถลบออกได้ ข้อกำหนดการมีส่วนร่วมอย่างต่อเนื่อง ข้อกำหนดนี้ทำให้มั่นใจได้ว่ามีคุณสมบัติที่สำคัญ: กล่าวคือ ว่าโปรโตคอล BA พื้นฐาน BBA ⋆มีเสียงข้างมากที่ซื่อสัตย์อย่างเหมาะสม ให้เราอธิบายว่าขี้เกียจแค่ไหน ความซื่อสัตย์เป็นอีกทางเลือกหนึ่งและน่าดึงดูดใจในการสร้างความพึงพอใจให้กับสถานที่ให้บริการแห่งนี้

โปรดจำไว้ว่าผู้ใช้ ฉันขี้เกียจแต่ซื่อสัตย์ ถ้า (1) เขาปฏิบัติตามคำแนะนำทั้งหมดที่กำหนดไว้ เมื่อใด เขาถูกขอให้เข้าร่วมในระเบียบการ และ (2) เขาถูกขอให้เข้าร่วมในระเบียบการเท่านั้น น้อยมาก —เช่น สัปดาห์ละครั้ง— โดยต้องแจ้งให้ทราบล่วงหน้าอย่างเหมาะสม และอาจได้รับอย่างมีนัยสำคัญ รางวัลเมื่อเขาเข้าร่วม เพื่อให้ Algorand ทำงานร่วมกับผู้เล่นดังกล่าวได้ ก็เพียงพอที่จะ "เลือกผู้ตรวจสอบของ รอบปัจจุบันในหมู่ผู้ใช้ที่อยู่ในระบบในรอบก่อนหน้านี้มาก” จริงสิ จำไว้เลย ผู้ตรวจสอบสำหรับรอบ r จะถูกเลือกจากผู้ใช้ในรอบ r −k และการเลือกจะทำขึ้นตาม กับปริมาณ Qr−1 โปรดทราบว่าหนึ่งสัปดาห์ประกอบด้วยประมาณ 10,000 นาที และสมมติว่า a รอบใช้เวลาประมาณ (เช่น โดยเฉลี่ย) 5 นาที ดังนั้นในหนึ่งสัปดาห์จึงมีประมาณ 2,000 รอบ สมมติ ในบางช่วงเวลา ผู้ใช้ฉันต้องการวางแผนเวลาของเขาและรู้ว่าเขาจะเป็นอย่างไร ผู้ตรวจสอบในสัปดาห์หน้า โปรโตคอลจะเลือกผู้ตรวจสอบสำหรับรอบ r จากผู้ใช้ใน รอบ r −k −2, 000 และการเลือกจะขึ้นอยู่กับ Qr−2,001 ที่รอบ r ผู้เล่นที่ฉันรู้จักอยู่แล้ว ค่า Qr−2,000, . . , Qr−1 เนื่องจากจริงๆ แล้วพวกมันเป็นส่วนหนึ่งของ blockchain แล้วสำหรับเอ็มแต่ละคน ระหว่าง 1 ถึง 2,000 i เป็นตัวยืนยันในขั้นตอน s ของรอบ r + M ถ้าหาก .H ซิจี r + M, s, Qr+M−2,001 \(\leq\)p ดังนั้นเพื่อจะตรวจสอบว่าจะถูกเรียกมาเป็นผู้ตรวจสอบในอีก 2,000 รอบข้างหน้าหรือไม่ ผมจะต้อง คำนวณ\(\sigma\)M,s ฉัน = เอสไอจี r + M, s, Qr+M−2,001 สำหรับ M = 1 ถึง 2,000 และสำหรับแต่ละขั้นตอน s และตรวจสอบ ไม่ว่าจะเป็น .H(\(\sigma\)M,s ฉัน ) \(\leq\)p สำหรับบางส่วน หากการประมวลผลลายเซ็นดิจิทัลใช้เวลาหนึ่งมิลลิวินาที การดำเนินการทั้งหมดนี้จะใช้เวลาคำนวณประมาณ 1 นาที ถ้าเขาไม่เลือกเป็นผู้ตรวจสอบ ในรอบใดรอบหนึ่งเขาก็สามารถไปแบบออฟไลน์ด้วย "มโนธรรมที่ซื่อสัตย์" มีเขาอย่างต่อเนื่อง เข้าร่วม เขาจะต้องเดิน 0 ก้าวใน 2,000 รอบถัดไปอยู่แล้ว! ถ้าแทน เขาได้รับเลือกให้เป็นผู้ตรวจสอบในรอบใดรอบหนึ่ง จากนั้นเขาก็เตรียมตัวเองให้พร้อม (เช่น โดยการได้รับทั้งหมด ข้อมูลที่จำเป็น) เพื่อทำหน้าที่เป็นผู้ตรวจสอบที่ซื่อสัตย์ในรอบที่เหมาะสม ด้วยการกระทำเช่นนั้น ผู้ตรวจสอบศักยภาพที่เกียจคร้านแต่ซื่อสัตย์ ฉันแค่พลาดการมีส่วนร่วมในการเผยแพร่เท่านั้น ของข้อความ แต่โดยทั่วไปแล้วการเผยแพร่ข้อความจะมีประสิทธิภาพ อีกทั้งผู้ชำระเงินและผู้รับเงินของ การชำระเงินที่เผยแพร่เมื่อเร็วๆ นี้คาดว่าจะออนไลน์เพื่อดูว่าเกิดอะไรขึ้นกับการชำระเงินของพวกเขา และพวกเขาจะมีส่วนร่วมในการเผยแพร่ข้อความหากพวกเขาซื่อสัตย์

البروتوكول Algorand ′ مع الأغلبية الصادقة من المال

نعرض الآن، أخيرًا، كيفية استبدال افتراض الأغلبية الصادقة من المستخدمين بافتراض أكثر من ذلك بكثير افتراض الأغلبية الصادقة من المال. الفكرة الأساسية هي (بنكهة proof-of-stake) "لتحديد مستخدم i \(\in\)PKr−k لينتمي إلى SV r,s بوزن (أي قوة القرار) يتناسب مع مقدار الأموال التي يملكها ط."24 من خلال افتراضنا HMM، يمكننا اختيار ما إذا كان ينبغي امتلاك هذا المبلغ عند الجولة r -k أو في (بداية) الجولة ص. على افتراض أننا لا نمانع في المشاركة المستمرة، فإننا نختار ذلك الاختيار الأخير. (لإزالة المشاركة المستمرة، كنا قد اخترنا الخيار الأول. والأفضل من ذلك، بالنسبة لمبلغ الأموال المملوكة بالجولة r −k −2,000.) هناك طرق عديدة لتنفيذ هذه الفكرة. إن أبسط طريقة هي الاحتفاظ بكل مفتاح وحدة واحدة من المال على الأكثر، ثم حدد عشوائيًا n من المستخدمين i من PKr−k بحيث يكون a(r) أنا = 1. 24 يجب أن نقول PKr−k−2,000 لاستبدال المشاركة المستمرة. من أجل البساطة، حيث قد يرغب المرء في الطلب المشاركة المستمرة على أي حال، نستخدم PKr−k كما كان من قبل، وذلك لحمل معلمة واحدة أقل.

التنفيذ الأبسط التالي قد يكون التنفيذ الأبسط التالي هو المطالبة بأن يمتلك كل مفتاح عام حدًا أقصى من المال M، بالنسبة لبعض M الثابتة. قيمة M صغيرة بما يكفي مقارنة بالمبلغ الإجمالي المال في النظام، بحيث ينتمي احتمال المفتاح إلى مجموعة التحقق المكونة من أكثر من واحد خطوة - على سبيل المثال - جولات k لا تذكر. ثم المفتاح i \(\in\)PKr−k، يمتلك مبلغًا من المال a(r) أنا في الجولة r، تم اختياره لينتمي إلى SV r,s if .ح سيجي ص، ق، Qr−1 \(\geq\)ص \(\cdot\) أ(ص) أنا م . وكل العائدات كما كان من قبل. تنفيذ أكثر تعقيدًا التنفيذ الأخير "أجبر مشاركًا ثريًا في النظام على امتلاك العديد من المفاتيح". التنفيذ البديل، الموصوف أدناه، يعمم مفهوم الحالة والنظر يجب أن يتكون كل مستخدم i من نسخ K + 1 (i، v)، ويتم اختيار كل منها بشكل مستقل ليكون مدققًا، وسيمتلك مفتاحه المؤقت (pkr,s أنا، الخامس، skr، ق i,v) في خطوة s من الجولة r. تعتمد القيمة K على مبلغ من المال (ص) أنا مملوكة لـ i في الجولة r. دعونا الآن نرى كيف يعمل مثل هذا النظام بمزيد من التفصيل. عدد النسخ دع n هو الأصل المتوقع المستهدف لكل مجموعة متحقق، ودع a(r) أنا يكون مقدار المال الذي يملكه المستخدم i في الجولة r. دع Ar يكون المبلغ الإجمالي للأموال المملوكة بواسطة المستخدمين في PKr−k عند الجولة r، أي ع = X أنا\(\in\)P كر−ك أ (ص) أنا. إذا كنت مستخدمًا في PKr−k، فإن نسخ i هي (i, 1)، . . . ، (ط، ك + 1)، حيث ك = $ ن \(\cdot\) أ(ص) أنا آر % . مثال. دع n = 1,000، Ar = 109، وa(r) أنا = 3.7 مليون. ثم، ك = 103 \(\cdot\) (3.7 \(\cdot\) 106) 109  = ⌊3.7⌋= 3 . المدققون وبيانات الاعتماد دعني أكون مستخدمًا في PKr−k بنسخ K + 1. لكل v = 1، . . . ، K، نسخة (i، v) تنتمي إلى SV r،s تلقائيًا. وهذا يعني أن أوراق اعتمادي هي ص، ق i,v \(\triangleq\)SIGi((i, v), r, s, Qr−1)، لكن الشرط المقابل يصبح .H(\(\sigma\)r,s ط، الخامس) \(\geq\)1، وهو صحيح دائما. بالنسبة للنسخة (i، K + 1)، لكل خطوة s من الجولة r، أقوم بالتحقق مما إذا كان .ح سيجي (i، K + 1)، r، s، Qr−1 \(\geq\)أ (ص) أنا ن ع -ك .

إذا كان الأمر كذلك، فإن النسخة (i, K + 1) تنتمي إلى SV r,s. لإثبات ذلك، أقوم بنشر بيانات الاعتماد ص،1 ط، ك + 1 = سيجي (i، K + 1)، r، s، Qr−1 . مثال. كما في المثال السابق، دع n = 1K، a(r) أنا = 3.7M، Ar = 1B، ولدي 4 النسخ: (ط، ١)، . . . ، (ط، 4). بعد ذلك، تعود النسخ الثلاث الأولى إلى SV r,s تلقائيًا. بالنسبة للرابعة، من الناحية النظرية، Algorand ′ تدحرج بشكل مستقل عملة متحيزة، والتي يكون احتمال ظهورها 0.7. نسخ يتم تحديد (i، 4) إذا وفقط إذا كانت رمية العملة هي الصورة. (وبطبيعة الحال، يتم تنفيذ هذا الوجه المتحيز للعملة عن طريق hashing، والتوقيع، والمقارنة - كما نحن لقد فعلت كل شيء في هذه الورقة - حتى أتمكن من إثبات نتائجه.) العمل كالمعتاد بعد أن شرحت كيفية اختيار المدققين وكيف تكون أوراق اعتمادهم يتم حسابه في كل خطوة من الجولة r، ويكون تنفيذ الجولة مشابهًا لما سبق شرحه.

พิธีสาร Algorand ′ ด้วยเงินส่วนใหญ่ที่ซื่อสัตย์

ในที่สุดเราก็แสดงวิธีแทนที่สมมติฐานผู้ใช้ส่วนใหญ่ที่ซื่อสัตย์ด้วยข้อสันนิษฐานอื่นๆ อีกมากมาย สมมติฐานเงินส่วนใหญ่ที่ซื่อสัตย์ที่มีความหมาย แนวคิดพื้นฐานคือ (ใน proof-of-stake รสชาติ) “เพื่อเลือกผู้ใช้ i \(\in\)PKr−k ให้เป็นของ SV r,s โดยมีน้ำหนัก (เช่น อำนาจการตัดสินใจ) เป็นสัดส่วนกับ จำนวนเงินที่ i เป็นเจ้าของ”24 ตามสมมติฐาน HMM ของเรา เราสามารถเลือกได้ว่าจำนวนนั้นควรเป็นเจ้าของที่รอบ r −k หรือไม่ หรือที่ (จุดเริ่มต้นของ) รอบ r สมมติว่าเราไม่รังเกียจที่จะมีส่วนร่วมอย่างต่อเนื่อง เราก็เลือก ทางเลือกหลัง (หากต้องการยกเลิกการเข้าร่วมอย่างต่อเนื่อง เราจะเลือกใช้ตัวเลือกเดิม พูดได้ดีกว่าสำหรับจำนวนเงินที่มีอยู่ในรอบ r −k −2, 000) มีหลายวิธีในการนำแนวคิดนี้ไปใช้ วิธีที่ง่ายที่สุดคือการกดปุ่มแต่ละปุ่มค้างไว้ มากที่สุด 1 หน่วยของเงิน แล้วเลือกสุ่ม n ผู้ใช้ i จาก PKr−k โดยที่ a(r) ฉัน = 1. 24เราควรพูดว่า PKr−k−2,000 เพื่อที่จะทดแทนการมีส่วนร่วมอย่างต่อเนื่อง เพื่อความเรียบง่ายเนื่องจากใครๆ ก็อาจจะต้องการ การมีส่วนร่วมอย่างต่อเนื่อง เราใช้ PKr−k เหมือนเมื่อก่อน เพื่อให้มีพารามิเตอร์น้อยลงหนึ่งตัว

การใช้งานที่ง่ายที่สุดครั้งต่อไป การใช้งานที่ง่ายที่สุดถัดไปอาจเป็นการเรียกร้องให้แต่ละคีย์สาธารณะเป็นเจ้าของจำนวนเงินสูงสุด ของเงิน M สำหรับ M คงที่บางส่วน ค่า M นั้นน้อยพอเมื่อเทียบกับจำนวนทั้งหมด เงินในระบบ โดยความน่าจะเป็นที่คีย์จะเป็นของชุดผู้ตรวจสอบมากกว่าหนึ่งชุด ก้าวเข้ามา —พูด— k รอบนั้นน้อยมาก จากนั้น กุญแจ i \(\in\)PKr−k ซึ่งมีเงินอยู่จำนวนหนึ่ง a(r) ฉัน ในรอบ r ถูกเลือกให้เป็นของ SV r,s if .H ซิจี r, s, Qr−1 \(\leq\)p \(\cdot\) ก(r) ฉัน ม . และทุกอย่างดำเนินไปดังเดิม การใช้งานที่ซับซ้อนมากขึ้น การใช้งานครั้งล่าสุด "บังคับให้ผู้เข้าร่วมที่มีฐานะร่ำรวยในระบบต้องเป็นเจ้าของคีย์จำนวนมาก" การนำไปปฏิบัติทางเลือกที่อธิบายไว้ด้านล่างนี้เป็นการสรุปแนวคิดเกี่ยวกับสถานะและพิจารณา ผู้ใช้แต่ละคน i จะประกอบด้วยสำเนา K + 1 ชุด (i, v) ซึ่งแต่ละชุดจะถูกเลือกอย่างอิสระให้เป็นผู้ตรวจสอบ และจะเป็นเจ้าของกุญแจชั่วคราวของเขาเอง (pkr,s ฉัน,v,skr,s i,v) ในขั้น s ของรอบ r ค่า K ขึ้นอยู่กับ กับจำนวนเงิน a(r) ฉัน ฉันเป็นเจ้าของในรอบ r ตอนนี้เรามาดูกันว่าระบบดังกล่าวทำงานอย่างไรในรายละเอียดมากขึ้น จำนวนสำเนา ให้ n เป็นจำนวนเชิงการนับที่คาดไว้ที่เป็นเป้าหมายของชุดตัวตรวจสอบแต่ละชุด และให้ a(r) ฉัน เป็นจำนวนเงินที่ผู้ใช้ i เป็นเจ้าของในรอบ r ให้ Ar เป็นจำนวนเงินทั้งหมดที่มี โดยผู้ใช้ใน PKr−k ที่รอบ r นั่นคือ อาร์= เอ็กซ์ ฉัน\(\in\)P Kr−k ก(ร) ฉัน หากฉันเป็นผู้ใช้ใน PKr−k สำเนาของฉันคือ (i, 1) . . , (i, K + 1) โดยที่ เค = $ n \(\cdot\) ก(r) ฉัน อาร์ % . ตัวอย่าง. ให้ n = 1, 000, Ar = 109 และ a(r) ฉัน = 3.7 ล้าน. จากนั้น เค = 103 \(\cdot\) (3.7 \(\cdot\) 106) 109  = ⌊3.7⌋= 3 . ผู้ตรวจสอบและข้อมูลรับรอง ให้ฉันเป็นผู้ใช้ใน PKr−k ด้วยสำเนา K + 1 สำหรับแต่ละ v = 1, . . , K, copy (i, v) เป็นของ SV r,s โดยอัตโนมัติ นั่นคือข้อมูลประจำตัวของฉันคือ \(\sigma\)r,s i,v \(\triangleq\)SIGi((i, v), r, s, Qr−1) แต่เงื่อนไขที่สอดคล้องกันกลายเป็น .H(\(\sigma\)r,s i,v) \(\leq\)1 ซึ่งก็คือ จริงเสมอ สำหรับการคัดลอก (i, K + 1) สำหรับแต่ละขั้นตอนของรอบ r ฉันจะตรวจสอบว่า .H ซิจี (i, K + 1), r, s, Qr−1 \(\leq\)a(r) ฉัน n อาร์-เค

ถ้าเป็นเช่นนั้น สำเนา (i, K + 1) เป็นของ SV r,s เพื่อพิสูจน์ ฉันจึงเผยแพร่หนังสือรับรอง ซิร,1 ผม,K+1 = SIGI (i, K + 1), r, s, Qr−1 . ตัวอย่าง. ดังตัวอย่างที่แล้ว ให้ n = 1K, a(r) ฉัน = 3.7M, Ar = 1B และฉันมี 4 สำเนา: (i, 1), . . . , (ฉัน, 4) จากนั้น 3 สำเนาแรกจะเป็นของ SV r,s โดยอัตโนมัติ สำหรับอันที่ 4 นั้น ตามแนวคิด Algorand ′ หมุนเหรียญเอนเอียงอย่างอิสระ ซึ่งความน่าจะเป็นของหัวคือ 0.7 คัดลอก (i, 4) จะถูกเลือกก็ต่อเมื่อการโยนเหรียญเป็นแบบหัวเท่านั้น (แน่นอนว่าการพลิกเหรียญแบบเอนเอียงนี้ถูกนำไปใช้โดย hashing ลงนาม และเปรียบเทียบ — ในขณะที่เรา ได้กระทำมาโดยตลอดในบทความนี้ เพื่อให้ข้าพเจ้าสามารถพิสูจน์ผลของเขาได้) ดำเนินธุรกิจตามปกติ ต้องอธิบายว่าผู้ตรวจสอบได้รับการคัดเลือกอย่างไรและหนังสือรับรองของพวกเขาเป็นอย่างไร เมื่อคำนวณในแต่ละขั้นตอนของรอบ r การดำเนินการของรอบจะคล้ายกับที่อธิบายไว้แล้ว

التعامل مع الانقسامات

بعد تقليل احتمالية الشوكات إلى 10−12 أو 10−18، أصبح من غير الضروري عمليًا التعامل معها لهم في احتمال بعيد أن يحدث. ومع ذلك، يمكن لـ Algorand أيضًا استخدام شوكات مختلفة إجراءات الحل، مع أو بدون إثبات العمل. إحدى الطرق الممكنة لإرشاد المستخدمين لحل الشوكات هي كما يلي: • اتبع أطول سلسلة إذا رأى المستخدم سلاسل متعددة. • إذا كان هناك أكثر من سلسلة أطول، اتبع السلسلة التي تحتوي على كتلة غير فارغة في النهاية. إذا كل منهم لديه كتل فارغة في النهاية، والنظر في الكتل الثانية الأخيرة. • إذا كان هناك أكثر من سلسلة أطول مع كتل غير فارغة في النهاية، فلنفترض أن السلاسل موجودة من الطول r، اتبع الشخص الذي يمتلك قائد الكتلة r أصغر بيانات اعتماد. إذا كانت هناك روابط، اتبع الكتلة التي تحتوي كتلتها r نفسها على أصغر قيمة hash. إذا كان لا يزال هناك روابط، اتبع الشخص الذي تم ترتيب كتلته r أولاً من الناحية المعجمية.

การจัดการ Fork

เมื่อลดความน่าจะเป็นของส้อมลงเหลือ 10−12 หรือ 10−18 ก็ไม่จำเป็นต้องจัดการในทางปฏิบัติ ในโอกาสอันห่างไกลที่จะเกิดขึ้น อย่างไรก็ตาม Algorand สามารถใช้ fork ได้หลากหลาย ขั้นตอนการแก้ปัญหาโดยมีหรือไม่มีหลักฐานการทำงาน วิธีหนึ่งที่เป็นไปได้ในการแนะนำให้ผู้ใช้แก้ไขส้อมมีดังนี้: • เดินตามสายโซ่ที่ยาวที่สุดหากผู้ใช้เห็นสายโซ่หลายเส้น • หากมีโซ่ที่ยาวที่สุดมากกว่าหนึ่งเส้น ให้ต่อสายโซ่ที่มีบล็อกไม่ว่างที่ส่วนท้าย ถ้า ทั้งหมดมีบล็อกว่างในตอนท้าย ลองพิจารณาบล็อกที่สองสุดท้าย • หากมีโซ่ที่ยาวที่สุดมากกว่าหนึ่งเส้นและมีบล็อกที่ไม่ว่างที่ส่วนท้าย แสดงว่าโซ่นั้นยาวที่สุด ที่มีความยาว r ให้ทำตามอันที่ผู้นำของบล็อก r มีหนังสือรับรองน้อยที่สุด หากมีความผูกพัน ติดตามอันที่บล็อก r มีค่า hash น้อยที่สุด หากยังมีความผูกพันติดตาม. บล็อก r ถูกเรียงลำดับตามพจนานุกรมคำแรก

التعامل مع أقسام الشبكة

وكما قلنا، فإننا نفترض أن أوقات انتشار الرسائل بين جميع المستخدمين في الشبكة محددة بـ lect وΛ. وهذا ليس افتراضًا قويًا، حيث أن الإنترنت اليوم سريع وقوي القيم الفعلية لهذه المعلمات معقولة جدًا. وهنا دعونا نشير إلى أن Algorand ′ 2 يستمر في العمل حتى لو تم تقسيم الإنترنت أحيانًا إلى قسمين. الحالة عندما يتم تقسيم الإنترنت إلى أكثر من قسمين متشابهين. 10.1 الأقسام المادية بادئ ذي بدء، قد يكون سبب التقسيم لأسباب مادية. على سبيل المثال، قد يحدث زلزال ضخم وينتهي الأمر بكسر كامل للعلاقة بين أوروبا وأمريكا. في هذه الحالة، يتم أيضًا تقسيم المستخدمين الضارين ولا يوجد اتصال بين الجزأين. هكذا

سيكون هناك خصمان، أحدهما للجزء الأول والآخر للجزء الثاني. ولا يزال كل خصم يحاول كسر البروتوكول في الجزء الخاص به. افترض أن القسم يحدث في منتصف الجولة r. ثم لا يزال يتم تحديد كل مستخدم باعتباره المدقق على أساس PKr−k، مع نفس الاحتمال كما كان من قبل. دع HSV r،s أنا وMSV ص، ق أنا على التوالي كن مجموعة من المحققين الصادقين والخبثاء في خطوة من الجزء i \(\in\){1, 2}. لدينا |HSV ص، ق 1 | + |MSV r,s 1 | + |HSV r,s 2 | + |MSV r,s 2 | = |HSV r,s| + |MSV r,s|. لاحظ أن |HSV r,s| + |MSV r,s| < |HSV r,s| + 2|MSV r,s| < 2tH مع احتمالية ساحقة. إذا كان لدي جزء ما |HSV r,s أنا | + |MSV r,s أنا | \(\geq\)tH باحتمال لا يُذكر، على سبيل المثال، 1%، ثم احتمال أن |HSV r,s 3−ط| + |MSV r,s 3−ط| \(\geq\)tH منخفض جدًا، على سبيل المثال، 10−16 عندما F = 10−18. في هذه الحالة، ومن الأفضل أن نتعامل مع الجزء الأصغر على أنه غير متصل بالإنترنت، لأنه لن يكون هناك ما يكفي من المحققين هذا الجزء لإنشاء التوقيعات للتصديق على الكتلة. دعونا نفكر في الجزء الأكبر، مثلًا الجزء الأول دون فقدان العمومية. بالرغم من أن |HSV r,s| < tH مع احتمال ضئيل في كل خطوة s، عندما يتم تقسيم الشبكة، |HSV r,s 1 | قد يكون أقل من tH مع بعض الاحتمال غير المهمل. في هذه الحالة يجوز للخصم مع البعض احتمال آخر لا يستهان به، فرض بروتوكول BA الثنائي في شوكة في الجولة r، مع كتلة غير فارغة Br وكتلة فارغة Br ƒ كلاهما له توقيعان صالحان.25 على سبيل المثال، في أ خطوات العملة الثابتة إلى 0، جميع أدوات التحقق في HSV r,s 1 تم التوقيع على البت 0 وH(Br)، ونشرهما الرسائل. جميع أدوات التحقق في MSV r,s 1 وقعوا أيضًا على 0 وH(Br)، لكنهم حجبت رسائلهم. لان |HSV ص، ق 1 | + |MSV r,s 1 | \(\geq\)tH، يحتوي النظام على توقيعات كافية لاعتماد Br. ومع ذلك، منذ قامت أدوات التحقق الخبيثة بحجب توقيعاتهم، وقام المستخدمون بإدخال الخطوة s + 1، وهي خطوة "عملة ثابتة إلى 1". لأن |HSV r,s 1 | < tH بسبب القسم، المدققون في HSV r,s+1 1 لم أرى ال التوقيعات للبت 0 وجميعهم وقعوا للبت 1. جميع المدققين في MSV r,s+1 1 فعلت نفس الشيء. لان |HSV r,s+1 1 | + |MSV r,s+1 1 | \(\geq\)tH، يحتوي النظام على توقيعات كافية لاعتماد Br ƒ. الخصم ثم يقوم بإنشاء شوكة عن طريق تحرير توقيعات MSV r,s 1 ل0 وH(Br). وبناء على ذلك، سيكون هناك اثنان من Qr، محددين بالكتل المقابلة من الجولة r. ومع ذلك، لن تستمر الشوكة وقد ينمو فرع واحد فقط في جولة r + 1. تعليمات إضافية لـ Algorand ′ 2. عند رؤية كتلة غير فارغة Br والفارغة كتلة ر ƒ ، اتبع غير الفارغ (والقر المعرف به). في الواقع، من خلال توجيه المستخدمين إلى استخدام الكتلة غير الفارغة في البروتوكول، إذا كانت كبيرة يدرك عدد من المستخدمين الصادقين في PKr+1−k أن هناك شوكة في بداية الجولة r +1، ثم لن تحتوي الكتلة الفارغة على عدد كافٍ من المتابعين ولن تنمو. افترض أن الخصم تمكن من ذلك قم بتقسيم المستخدمين الصادقين بحيث يرى بعض المستخدمين الصادقين Br (وربما Br ƒ)، والبعض يرى فقط ر ƒ. لأن الخصم لا يستطيع معرفة أي واحد منهم سيكون المدقق الذي يتبع Br وأي منهم سيكون المدقق يتبع Br ƒ، يتم تقسيم المستخدمين الصادقين عشوائيًا ولا يزال كل واحد منهم على حاله يصبح مدققًا (إما فيما يتعلق بـ Br أو فيما يتعلق بـ Br ƒ) في الخطوة s > 1 مع الاحتمال ص. بالنسبة للمستخدمين الضارين، قد يكون لكل واحد منهم فرصتان ليصبح مدققًا، إحداهما Br والآخر مع Br ƒ، كل منها باحتمال p بشكل مستقل. دع HSV r+1,s 1;ر كن مجموعة المتحققين الصادقين في خطوات الجولة r+1 التالية لـ Br. تدوينات أخرى مثل HSV r+1,s 1؛Br، MSV r+1,s 1;ر وMSV r+1,s 1;Br يتم تعريفها بالمثل. من خلال تشيرنوفابوند، الأمر سهل 25. لا يجوز وجود شوكة ذات كتلتين غير فارغتين بفواصل أو بدونها، إلا مع القليل الاحتمالية.لنرى ذلك باحتمالية ساحقة، |HSV r+1,s 1;ر | + |HSV r+1,s 1;ب | + |MSV r+1,s 1;ر | + |MSV r+1,s 1;ب | <2ث. وبناء على ذلك، لا يمكن أن يكون لدى كلا الفرعين التوقيعات الصحيحة التي تثبت كتلة الجولة r + 1 في نفس الخطوة s. علاوة على ذلك، بما أن احتمالات الاختيار للخطوتين s وs' هي نفسه والاختيارات مستقلة، وأيضًا ذات احتمالية ساحقة |HSV r+1,s 1;ر | + |MSV r+1,s 1;ر | + |HSV r+1,s' 1;Br | + |MSV r+1,s' 1;Br | <2ث، لأي خطوتين s و s′. عندما يكون F = 10−18، من خلال الاتحاد المقيد، طالما أن الخصم لا يستطيع ذلك تقسيم المستخدمين الصادقين لفترة طويلة (على سبيل المثال 104 خطوة، أي أكثر من 55 ساعة مع 10 = 10) ثواني 26)، مع احتمال كبير (على سبيل المثال 1−10−10) على الأكثر فرع واحد سيكون له التوقيعات الصحيحة للتصديق على كتلة في الجولة ص + 1. أخيرًا، إذا كان القسم الفعلي قد أنشأ جزأين بنفس الحجم تقريبًا، فإن احتمال أن |HSV r,s أنا | + |MSV r,s أنا | \(\geq\)tH صغير لكل جزء i. وبعد تحليل مماثل، حتى لو تمكن الخصم من إنشاء شوكة مع بعض الاحتمالية التي لا يمكن إهمالها في كل جزء بالنسبة للجولة r، قد ينمو أحد الفروع الأربعة على الأكثر في الجولة r + 1. 10.2 التقسيم العدائي ثانيًا، قد يكون سبب التقسيم هو الخصم، بحيث يتم نشر الرسائل من قبل المستخدمين الصادقين في جزء واحد لن يصل إلى المستخدمين الصادقين في الجزء الآخر بشكل مباشر، ولكن الخصم قادر على إعادة توجيه الرسائل بين الجزأين. لا يزال, مرة واحدة رسالة من واحد يصل الجزء إلى مستخدم صادق في الجزء الآخر، وسيتم نشره في الأخير كالمعتاد. إذا الخصم على استعداد لإنفاق الكثير من المال، ومن المتصور أنه قد يكون قادرًا على اختراق الإنترنت وتقسيمه هكذا لفترة من الوقت. التحليل مشابه للجزء الأكبر في القسم المادي أعلاه (الأصغر يمكن اعتبار الجزء أن عدد سكانه 0): قد يكون الخصم قادرًا على إنشاء شوكة و يرى كل مستخدم صادق فرعًا واحدًا فقط، ولكن قد ينمو فرع واحد على الأكثر. 10.3 أقسام الشبكة في المجموع على الرغم من أن أقسام الشبكة يمكن أن تحدث وقد يحدث شوكة في جولة واحدة تحت الأقسام، إلا أن هناك لا يوجد أي غموض طويل الأمد: فالشوكة قصيرة العمر للغاية، وفي الواقع تدوم لجولة واحدة على الأكثر. في جميع أجزاء القسم باستثناء جزء واحد على الأكثر، لا يمكن للمستخدمين إنشاء كتلة جديدة وبالتالي (أ) إدراك وجود قسم في الشبكة و (ب) عدم الاعتماد مطلقًا على الكتل التي "ستختفي". شكر وتقدير نود أن نشكر أولاً سيرجي جوربونوف، المؤلف المشارك لنظام Democoin المذكور. خالص الشكر لموريس هيرليهي، على العديد من المناقشات المفيدة، وعلى الإشارة من أن خطوط الأنابيب ستعمل على تحسين أداء إنتاجية Algorand، ولتحسين كبير في 26لاحظ أن المستخدم ينهي الخطوة دون الانتظار لمدة 2\(\times\) فقط إذا كان قد رأى على الأقل التوقيعات الخاصة بالـ نفس الرسالة. عندما لا يكون هناك ما يكفي من التوقيعات، ستستمر كل خطوة لمدة 2\(\times\).

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

การจัดการพาร์ติชันเครือข่าย

ดังที่กล่าวไว้ เราถือว่าเวลาการแพร่กระจายของข้อความระหว่างผู้ใช้ทั้งหมดในเครือข่ายนั้นมีขอบเขตบนด้วย แลมบ์ดา และ Λ นี่ไม่ใช่สมมติฐานที่ชัดเจน เนื่องจากอินเทอร์เน็ตในปัจจุบันมีความรวดเร็วและแข็งแกร่ง และ ค่าที่แท้จริงของพารามิเตอร์เหล่านี้ค่อนข้างสมเหตุสมผล ที่นี่ให้เราชี้ให้เห็นว่า Algorand ′ 2 ยังคงทำงานต่อไปแม้ว่าอินเทอร์เน็ตจะถูกแบ่งพาร์ติชันออกเป็นสองส่วนเป็นครั้งคราวก็ตาม กรณีเมื่อ อินเทอร์เน็ตจะถูกแบ่งพาร์ติชันมากกว่าสองส่วนคล้ายคลึงกัน 10.1 พาร์ติชันทางกายภาพ ประการแรก พาร์ติชันอาจเกิดจากสาเหตุทางกายภาพ เช่น แผ่นดินไหวใหญ่อาจเกิดขึ้น ท้ายที่สุดก็ทำลายความสัมพันธ์ระหว่างยุโรปและอเมริกาโดยสิ้นเชิง ในกรณีนี้ ผู้ใช้ที่เป็นอันตรายจะถูกแบ่งพาร์ติชันด้วย และไม่มีการสื่อสารระหว่างทั้งสองส่วน ดังนั้น

จะมีศัตรูอยู่สองคน คนหนึ่งสำหรับส่วนที่ 1 และอีกคนหนึ่งสำหรับส่วนที่ 2 ฝ่ายตรงข้ามแต่ละคนยังคงพยายาม ทำลายโปรโตคอลในส่วนของตัวเอง สมมติว่าพาร์ติชันเกิดขึ้นในช่วงกลางของรอบ r จากนั้นผู้ใช้แต่ละคนยังคงถูกเลือกเป็น ผู้ตรวจสอบขึ้นอยู่กับ PKr−k โดยมีความน่าจะเป็นเท่าเดิม ให้ HSV r,s ฉัน และ MSV r, s ฉัน ตามลำดับ เป็นกลุ่มของผู้ตรวจสอบที่ซื่อสัตย์และประสงค์ร้ายในขั้นตอนในส่วนที่ i \(\in\){1, 2} เรามี |HSV r,s 1 | + |MSV r,s 1 | + |HSV r,s 2 | + |MSV r,s 2 | = |HSV r,s| + |MSV r,s|. โปรดทราบว่า |HSV r,s| + |MSV r,s| < |HSV r,s| + 2|MSV r,s| < 2tH ด้วยความน่าจะเป็นอย่างล้นหลาม หากบางส่วนฉันมี |HSV r,s ฉัน | + |MSV r,s ฉัน | \(\geq\)tH ที่มีความน่าจะเป็นที่ไม่มีนัยสำคัญ เช่น 1% จากนั้น ความน่าจะเป็นที่ |HSV r,s 3−ฉัน| + |MSV r,s 3−ฉัน| \(\geq\)tH ต่ำมาก เช่น 10−16 เมื่อ F = 10−18 ในกรณีนี้ เราอาจถือว่าส่วนที่เล็กกว่านั้นหายไปเช่นกัน เพราะจะไม่มีผู้ตรวจสอบเพียงพอใน ส่วนนี้จะสร้างลายเซ็นเพื่อรับรองบล็อก ให้เราพิจารณาส่วนที่ใหญ่กว่า เช่น ตอนที่ 1 โดยไม่สูญเสียความทั่วไป แม้ว่า |HSV r,s| < มีความน่าจะเป็นเล็กน้อยในแต่ละขั้นตอน เมื่อเครือข่ายถูกแบ่งพาร์ติชัน |HSV r,s 1 | อาจจะ น้อยกว่าด้วยความน่าจะเป็นที่ไม่สามารถละเลยได้ ในกรณีนี้ปฏิปักษ์อาจทำได้บ้าง ความน่าจะเป็นอื่นๆ ที่ไม่สามารถละเลยได้ บังคับให้โปรโตคอลไบนารี่ BA เข้าสู่ทางแยกในรอบ r โดยมีบล็อกที่ไม่มีช่องว่าง Br และบล็อกว่าง Br ǫ ทั้งสองมีลายเซ็นที่ถูกต้อง25 เช่น ใน ขั้นตอน Coin-Fixed-To-0 s ผู้ตรวจสอบทั้งหมดใน HSV r, s 1 ลงนามในบิต 0 และ H(Br) และเผยแพร่พวกมัน ข้อความ ผู้ตรวจสอบทั้งหมดใน MSV r,s 1 ลงนาม 0 และ H(Br) ด้วย แต่ระงับข้อความของพวกเขา เพราะว่า |HSV r,s 1 | + |MSV r,s 1 | \(\geq\)tHระบบมีลายเซ็นเพียงพอที่จะรับรอง Br. อย่างไรก็ตาม เนื่องจาก ผู้ตรวจสอบที่เป็นอันตรายระงับลายเซ็น ผู้ใช้เข้าสู่ขั้นตอน s + 1 ซึ่งเป็นขั้นตอน Coin-Fixed-To1 เพราะ |HSV r,s 1 | < เนื่องจากพาร์ติชัน ตัวตรวจสอบใน HSV r,s+1 1 ไม่เห็นท่าน ลายเซ็นสำหรับบิต 0 และทั้งหมดลงนามในบิต 1 ผู้ตรวจสอบทั้งหมดใน MSV r,s+1 1 ทำเช่นเดียวกัน เพราะว่า |HSV r,s+1 1 | + |MSV r,s+1 1 | \(\geq\)tHระบบมีลายเซ็นเพียงพอที่จะรับรอง Br ī. ศัตรู จากนั้นสร้างทางแยกโดยปล่อยลายเซ็นของ MSV r,s 1 สำหรับ 0 และ H(Br) ดังนั้น จะมี Qr สองตัว ซึ่งกำหนดโดยบล็อกที่สอดคล้องกันของรอบ r อย่างไรก็ตาม ทางแยกจะไม่ดำเนินต่อไปและมีเพียงหนึ่งในสองกิ่งเท่านั้นที่สามารถเติบโตได้ในรอบ r + 1 คำแนะนำเพิ่มเติมสำหรับ Algorand ′ 2. เมื่อเห็นบล็อกที่ไม่ว่าง Br และบล็อกว่าง บล็อกเบอร์ ǫ ทำตามอันที่ไม่ว่างเปล่า (และ Qr กำหนดโดยมัน) โดยแนะนำให้ผู้ใช้ใช้บล็อกที่ไม่ว่างเปล่าในโปรโตคอล หากมีขนาดใหญ่ จำนวนผู้ใช้ที่ซื่อสัตย์ใน PKr+1−k ตระหนักว่ามีทางแยกที่จุดเริ่มต้นของรอบ r +1 จากนั้น บล็อกว่างจะมีผู้ติดตามไม่เพียงพอและจะไม่เติบโต สมมติว่าฝ่ายตรงข้ามจัดการได้ แบ่งพาร์ติชันผู้ใช้ที่ซื่อสัตย์เพื่อให้ผู้ใช้ที่ซื่อสัตย์บางคนเห็น Br (และบางทีอาจ Br ǫ) และบางคนก็มองเห็นเท่านั้น บ ī. เพราะปฏิปักษ์ไม่สามารถบอกได้ว่าคนใดในพวกเขาจะเป็นผู้ยืนยันที่ติดตาม Br และคนไหน จะเป็นผู้ตรวจสอบติดตาม Br ǫ ผู้ใช้ที่ซื่อสัตย์จะถูกแบ่งพาร์ติชันแบบสุ่มและแต่ละคนยังคงอยู่ กลายเป็นผู้ยืนยัน (ไม่ว่าจะเกี่ยวกับ Br หรือเกี่ยวกับ Br ǫ) ในขั้นที่ s > 1 ด้วยความน่าจะเป็น พี สำหรับผู้ใช้ที่เป็นอันตราย แต่ละคนอาจมีโอกาสสองครั้งในการเป็นผู้ยืนยัน Br และอีกอันกับ Br ǫ แต่ละอันมีความน่าจะเป็น p เป็นอิสระต่อกัน ให้ HSV r+1,s 1;บรา เป็นกลุ่มผู้ตรวจสอบที่ซื่อสัตย์ในขั้นตอนที่ s ของรอบ r+1 ตาม Br. สัญกรณ์อื่น ๆ เช่น HSV r+1,s 1;Brū , MSV r+1,s 1;บรา และ MSV r+1,s 1;บริ้ มีการกำหนดไว้เช่นเดียวกัน โดย Chernoffbound มันเป็นเรื่องง่าย 25การมีทางแยกที่มีสองบล็อกที่ไม่ว่างนั้นเป็นไปไม่ได้โดยมีหรือไม่มีพาร์ติชั่น ยกเว้นที่มีเล็กน้อย ความน่าจะเป็นเพื่อดูว่ามีความเป็นไปได้อย่างล้นหลาม |HSV r+1,s 1;br | + |HSV r+1,s 1;บรา | + |MSV r+1,s 1;br | + |MSV r+1,s 1;บรา | < 2tH ดังนั้นทั้งสองสาขาจึงไม่สามารถมีลายเซ็นที่ถูกต้องรับรองบล็อกสำหรับรอบได้ r + 1 ในขั้นตอนเดียวกัน s ยิ่งไปกว่านั้น เนื่องจากความน่าจะเป็นในการเลือกสำหรับสองขั้นตอน s และ s′ คือ เหมือนกันและการเลือกมีความเป็นอิสระ อีกทั้งยังมีความน่าจะเป็นอย่างล้นหลามอีกด้วย |HSV r+1,s 1;br | + |MSV r+1,s 1;br | + |HSV r+1,s′ 1;บริ้ | + |MSV r+1,s′ 1;บริ้ | <2thH, สำหรับสองขั้นตอนใดๆ s และ s′ เมื่อ F = 10−18 โดยผูกมัด ตราบเท่าที่ปฏิปักษ์ทำไม่ได้ แบ่งพาร์ติชั่นผู้ใช้ที่ซื่อสัตย์เป็นเวลานาน (เช่น 104 ขั้นตอนซึ่งมากกว่า 55 ชั่วโมงโดยที่ แล = 10 วินาทีที่ 26) ซึ่งมีความเป็นไปได้สูง (เช่น 1−10−10) มากที่สุดหนึ่งสาขาจะมีลายเซ็นที่ถูกต้อง เพื่อรับรองบล็อกในรอบ r + 1 ท้ายที่สุด หากฟิสิคัลพาร์ติชันสร้างสองส่วนที่มีขนาดเท่ากันโดยประมาณ แล้ว ความน่าจะเป็นที่ |HSV r,s ฉัน | + |MSV r,s ฉัน | \(\geq\)tH มีขนาดเล็กสำหรับแต่ละส่วน i หลังจากการวิเคราะห์ที่คล้ายกัน แม้ว่าฝ่ายตรงข้ามจะสามารถสร้างทางแยกที่มีความน่าจะเป็นที่ไม่สามารถละเลยได้ในแต่ละส่วนก็ตาม สำหรับรอบ r กิ่งก้านสูงสุด 1 ใน 4 ต้นอาจเติบโตได้ในรอบ r + 1 10.2 พาร์ทิชันฝ่ายตรงข้าม ประการที่สอง พาร์ติชันอาจเกิดจากฝ่ายตรงข้าม ดังนั้นข้อความจึงแพร่กระจาย โดยผู้ใช้ที่ซื่อสัตย์ส่วนหนึ่งจะไม่เข้าถึงผู้ใช้ที่ซื่อสัตย์ในอีกส่วนหนึ่งโดยตรงแต่ ฝ่ายตรงข้ามสามารถส่งต่อข้อความระหว่างทั้งสองส่วนได้ ถึงกระนั้นก็มีข้อความจากคนหนึ่ง ส่วนหนึ่งจะเข้าถึงผู้ใช้ที่ซื่อสัตย์ ส่วนอีกส่วนหนึ่งก็จะเผยแพร่ในส่วนหลังตามปกติ ถ้า ฝ่ายตรงข้ามยินดีจ่ายเงินเป็นจำนวนมาก เป็นไปได้ว่าเขาอาจจะสามารถแฮ็กข้อมูลได้ อินเตอร์เน็ตแล้วแบ่งพาร์ติชั่นแบบนี้สักพัก การวิเคราะห์จะคล้ายคลึงกับการวิเคราะห์ส่วนที่ใหญ่กว่าในฟิสิคัลพาร์ติชันด้านบน (การวิเคราะห์ที่เล็กกว่า ส่วนหนึ่งถือได้ว่ามีประชากร 0): ฝ่ายตรงข้ามอาจสร้างทางแยกและได้ ผู้ใช้ที่ซื่อสัตย์แต่ละคนจะเห็นเพียงสาขาเดียว แต่อาจมีสาขาเดียวที่สามารถเติบโตได้ 10.3 พาร์ติชันเครือข่ายในผลรวม แม้ว่าพาร์ติชั่นเครือข่ายสามารถเกิดขึ้นได้และทางแยกในรอบเดียวอาจเกิดขึ้นภายใต้พาร์ติชั่นที่นั่น ไม่มีความกำกวมที่ยืดเยื้อ: ทางแยกมีอายุสั้นมากและในความเป็นจริงจะอยู่ได้ไม่เกินรอบเดียว ใน ทุกส่วนของพาร์ติชั่นยกเว้นส่วนใหญ่ ผู้ใช้ไม่สามารถสร้างบล็อกใหม่ได้ ดังนั้น (a) ตระหนักว่ามีพาร์ติชันในเครือข่ายและ (b) ไม่เคยพึ่งพาบล็อกที่จะ "หายไป" รับทราบ ก่อนอื่นเราขอขอบคุณ Sergey Gorbunov ผู้ร่วมเขียนระบบ Democoin ที่อ้างถึง ขอขอบคุณอย่างจริงใจที่สุดต่อ Maurice Herlihy สำหรับการอภิปรายที่ให้ความรู้มากมายสำหรับการชี้แนะ การวางท่อจะปรับปรุงประสิทธิภาพการรับส่งข้อมูลของ Algorand และสำหรับการปรับปรุงอย่างมาก 26โปรดทราบว่าผู้ใช้เสร็จสิ้นขั้นตอนหนึ่งโดยไม่ต้องรอเป็นเวลา2\(\gamma\)เฉพาะในกรณีที่เขาเห็นลายเซ็นของ ข้อความเดียวกัน เมื่อมีลายเซ็นไม่เพียงพอ แต่ละขั้นตอนจะคงอยู่เป็นเวลา 2แล

การนำเสนอบทความฉบับก่อนหน้านี้ ขอบคุณมากสำหรับ Sergio Rajsbaum สำหรับความคิดเห็นของเขาเกี่ยวกับ เอกสารฉบับก่อนหน้านี้ ขอขอบคุณ Vinod Vaikuntanathan สำหรับการพูดคุยอย่างลึกซึ้งหลายครั้ง และข้อมูลเชิงลึก ขอขอบคุณ Yossi Gilad, Rotem Hamo, Georgios Vlachos และ Nickolai Zeldovich สำหรับการเริ่มต้นทดสอบแนวคิดเหล่านี้ และสำหรับความคิดเห็นและการอภิปรายที่เป็นประโยชน์มากมาย Silvio Micali ขอขอบคุณ Ron Rivest เป็นการส่วนตัวสำหรับการสนทนาและคำแนะนำมากมาย ในการวิจัยด้านการเข้ารหัสมานานกว่า 3 ทศวรรษ สำหรับการเขียนร่วมระบบการชำระเงินแบบไมโครที่อ้างถึง ที่เป็นแรงบันดาลใจให้เกิดกลไกการคัดเลือกผู้ตรวจสอบของ Algorand เราหวังว่าจะนำเทคโนโลยีนี้ไปสู่อีกระดับหนึ่ง ขณะเดียวกันการเดินทางและมิตรภาพ สนุกมากซึ่งเรารู้สึกขอบคุณมาก