Algorand:扩展加密货币的拜占庭协议

بقلم 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] 存在。其他金融工具也纷纷效仿。 在一个理想的世界中,我们可以依靠一个普遍信任的中央实体,免疫 对于所有可能的网络攻击,金钱和其他金融交易可以完全电子化。 不幸的是,我们并不生活在这样的世界中。因此,去中心化的加密货币,例如 如Bitcoin [29],以及“smart contract”系统,例如Ethereum,已被提议为[4]。 在 这些系统的核心是一个共享账本,它可靠地记录一系列交易, *这是第二作者[24]的ArXiv论文的更正式(异步)版本,一篇论文 它本身基于 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。 区块链支持以下应用程序 加密货币 [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是一个非常巧妙的系统,启发了大量后续研究。然而,它 也是有问题的。让我们总结一下它的基本假设和技术问题—— 实际上,基本上所有基于 proof-of-work 的加密货币都共享这些加密货币,例如 Bitcoin。 对于此摘要,只需回想一下,在 Bitcoin 中,用户可能拥有多个公钥 在数字签名方案中,金钱与公钥相关联,并且付款是 将一定数量的资金从一个公钥转移到另一个公钥的数字签名。本质上, Bitcoin 将所有已处理的付款组织在区块链中,B1、B2、. 。 ., 每个由多个组成 付款,使得 B1 的所有付款以任何顺序进行,然后是 B2 的所有付款以任何顺序进行, 等等,构成了一系列有效的支付。每个区块平均每 10 分钟生成一次。 这个区块序列是一条链,因为它的结构是为了确保任何变化,即使是 在单个块中,渗透到所有后续块中,从而更容易发现任何更改 付款历史记录。 (正如我们将看到的,这是通过在每个块中包含一个加密货币来实现的 前一个的hash。)这样的块结构被称为blockchain。 假设:诚实的大多数计算能力 Bitcoin 假设没有恶意 实体(也不是协调的恶意实体的联盟)控制着大部分计算 专门用于区块生成的电力。事实上,这样的实体能够修改 blockchain,从而根据需要重写付款历史记录。特别是,它可以进行付款\(\wp\), 获得所支付的利益,然后“抹掉”任何 \(\wp\) 的痕迹。 技术问题1: 计算浪费 Bitcoin 的 proof-of-work 阻止方法 生成需要大量的计算。目前,仅有几百人 系统中数千个公钥,前500名最强大的超级计算机只能聚集 仅占 Bitcoin 玩家所需总计算能力的 12.8%。这个 如果更多的用户加入系统,计算量将大大增加。 技术问题2:权力集中 今天,由于数量过多 需要计算,用户试图使用普通桌面(更不用说一个 手机),预计会赔钱。事实上,为了用普通计算机计算一个新的块, 计算所需电力的预期成本超出了预期奖励。 仅使用专门构建的计算机池(除了“挖掘新块”之外不执行任何操作),一台 可能期望通过生成新区块来获利。因此,今天事实上有两个 不相交的用户类别:仅进行支付的普通用户和专门的矿池, 只搜索新块。 因此,截至最近,块的总计算能力不足为奇。 一代仅集中在五个池内。在这种情况下,假设大多数 诚实的计算能力变得不那么可信。 技术问题3:歧义 在 Bitcoin 中,blockchain 不一定是唯一的。确实 它的最新部分经常分叉:blockchain 可能是——比如说——B1,. 。 。 , Bk, B′ k+1,B′ k+2,根据 一个用户,B1,. 。 。 , Bk, B′′ k+1,B′′ k+2,B′′ 根据另一位用户的说法,k+3。只有在几个块之后 已添加到链中,是否可以合理确定前 k + 3 个块将是相同的 对于所有用户。因此,人们不能立即依赖最后一个区块中包含的付款 链条。更谨慎的做法是等待,看看区块是否足够深入 blockchain 因此足够稳定。 另外,还提出了对 Bitcoin.1 的执法和货币政策担忧。 1.2 Algorand,简而言之 设置 Algorand 在非常艰难的环境中工作。简而言之, (a) 免许可和许可环境。 Algorand 甚至可以高效、安全地工作 在完全无需许可的环境中,允许任意多个用户加入 系统随时进行,无需任何审查或任何形式的许可。当然,Algorand 有效 在许可的环境中甚至更好。 1Bitcoin 付款提供的(伪)匿名可能会被滥用于洗钱和/或融资 犯罪分子或恐怖组织。传统的纸币或金条,原则上可以提供完美的 匿名性,应该会带来同样的挑战,但这些货币的物理性大大减慢了货币流通速度 转移,以便执法机构能够进行一定程度的监督。 “印钞”的能力是民族国家最基本的权力之一。因此,原则上,大规模 采用独立浮动的货币可能会削弱这种力量。然而,目前 Bitcoin 还远未实现 对政府货币政策构成威胁,但由于其可扩展性问题,可能永远不会构成威胁。(b) 非常敌对的环境。 Algorand 抵御非常强大的对手,他可以 (1) 在任何他想要的时间立即腐蚀任何他想要的用户,前提是,在 无许可环境下,系统中2/3的资金属于诚实用户。 (在一个 许可的环境下,不考虑钱,只要有2/3的用户是诚实的就够了。) (2) 完全控制并完美协调所有腐败用户;和 (3) 安排所有消息的传送,前提是每条消息 m 由诚实用户发送 在 \(\lambda\)m 时间内达到 95% 的诚实用户,这完全取决于 m 的大小。 主要性能 尽管存在我们强大的对手,在 Algorand • 所需的计算量极小。本质上,无论有多少用户 在系统中,一千五百个用户中的每一个必须执行最多几秒钟的操作 计算。 • 新区块在 10 分钟内生成,并且实际上永远不会离开 blockchain。 例如,预计第一个实施例中生成块的时间会更少 比 Λ + 12.4\(\lambda\),其中 Λ 是在点对点八卦中传播区块所需的时间 时尚,无论选择什么块大小,\(\lambda\) 是传播 1,500 个 200Blong 消息的时间。 (因为在真正去中心化的系统中,Λ 本质上是一种内在的延迟,在 Algorand 块生成的限制因素是网络速度。)第二个实施例有 实际上经过实验测试(通过?),表明在不到 40 的时间内生成了一个块 秒。 此外,Algorand 的 blockchain 的分叉概率可以忽略不计(即小于 1) 以一万亿计),因此用户可以在新区块中立即进行支付 块出现。 • 所有权力都属于用户自己。 Algorand 是一个真正的分布式系统。特别是, 不存在可以控制哪些交易的外源实体(如 Bitcoin 中的“矿工”) 被认可。 Algorand 的技术。 1. 一种新的、快速的拜占庭协议。 Algorand 通过生成一个新块 一种新的加密、消息传递、二进制拜占庭协议 (BA) 协议,BA⋆。协议 BA⋆不仅满足一些附加属性(我们将很快讨论),而且速度也非常快。 粗略地说,它的二进制输入版本由一个 3 步循环组成,其中玩家 i 发送一个 向所有其他玩家发送消息 mi。在完整同步的网络中执行,具有更多 超过 2/3 的玩家是诚实的,概率 > 1/3,在每次循环后协议结束 协议。 (我们强调协议 BA⋆满足拜占庭协议的原始定义 Pease、Shostak 和 Lamport [31] 的版本,没有任何削弱。) Algorand 利用这个二进制 BA 协议在我们不同的通信中达成一致 模型,在每个新块上。然后通过规定数量的区块来验证商定的区块 适当验证者的数字签名,并通过网络传播。 2. 密码排序。虽然速度非常快,但 BA⋆ 协议将受益于进一步的 数百万用户播放时的速度。因此,Algorand 选择 BA⋆ 的球员为所有用户集合的一个小得多的子集。避免不同类型的权力集中 问题,每个新区块 Br 将通过新的 BA⋆ 执行来构建并达成一致, 由一组单独选定的验证者,SV r。原则上,选择这样一个集合可能会像 直接选择Br。我们通过一种我们称之为“拥抱”的方法来解决这个潜在的问题 莫里斯 \(\cdot\) 赫利希(Maurice Herlihy)富有洞察力的建议,密码抽签。排序的做法是 从大量符合条件的个人中随机选择官员[6]。 (进行了排序 跨越几个世纪:例如,雅典、佛罗伦萨和威尼斯共和国。在现代司法中 系统中,通常采用随机选择来选择陪审团。最近还进行了随机抽样 David Chaum [9] 提倡选举。)当然,在去中心化系统中,选择 随机选择每个验证者集合 SV r 的成员所需的随机硬币是有问题的。 因此,我们求助于密码学,以便从所有用户群体中选择每个验证者集, 以保证自动(即不需要消息交换)和随机的方式。 本质上,我们使用密码学函数来自动确定,从前一个块 Br−1,用户,领导者,负责提议新区块 Br,验证者集合 SV r,在 负责就领导者提出的区块达成一致。由于恶意用户可能会影响 Br−1 的组成(例如,通过选择它的一些付款),我们专门构建和使用 额外的输入,以证明第 r 个区块的领导者和验证者集 SV r 确实是 随机选择的。 3. 数量(种子) Qr.我们使用 blockchain 中的最后一个块 Br−1 自动确定下一个验证者集和负责构建新区块的领导者 Br。这种方法的挑战在于,只需在支付方式中选择略有不同的支付方式 上一轮,我们强大的对手对下一个领导者获得了巨大的控制权。即使他 只控制系统中1/1000的玩家/金钱,他可以保证所有的领导者 恶意的。 (参见直觉第 4.1 节。)这一挑战是所有 proof-of-stake 方法的核心, 据我们所知,到目前为止,这个问题还没有得到令人满意的解决。 为了应对这一挑战,我们有目的地构建并不断更新一个单独的、仔细的 定义的数量 Qr,可以证明,它不仅是不可预测的,而且也是不可影响的,由我们 强大的对手。我们可以将 Qr 称为第 r 个种子,因为 Algorand 从 Qr 中选择, 通过秘密密码抽签,所有在生成中扮演特殊角色的用户 第 r 个块。 4. 秘密密码分类和秘密凭证。随机且明确地使用当前最后一个区块 Br−1,以选择验证者集和负责的领导者 仅仅构建新区块 Br 还不够。由于在生成 Br 之前必须知道 Br−1, Br−1 中包含的最后一个不受影响的量 Qr−1 也必须已知。据此,所以 是负责计算区块 Br 的验证者和领导者。因此,我们强大的对手 在他们参与任何有关 Br 的讨论之前,可能会立即腐蚀他们所有人,以便获得 完全控制他们认证的区块。 为了防止这个问题,领导者(实际上也是验证者)秘密地了解他们的角色,但可以 计算一个适当的凭证,能够向每个人证明确实具有该角色。当 用户私下意识到他是下一个区块的领导者,首先他秘密地组装他的 自己提议的新区块,然后将其与他自己的区块一起传播(以便可以被认证) 凭证。这样,虽然对手会立即意识到谁是下一个领导者 阻止是,尽管他可以立即腐蚀他,但对手要阻止他就为时已晚了。 影响新区块的选择。确实,他不能再“回拨”领导的消息了强大的政府无法将维基解密病毒式传播的信息放回瓶子里。 正如我们将看到的,我们不能保证领导者的唯一性,也不能保证每个人都确定谁是领导者 就是,包括领导本人!但是,在 Algorand 中,将保证取得明确的进展。 5. 球员可替换性。在他提出一个新的区块后,领导者可能会“死”(或者被 被对手腐蚀了),因为他的工作已经完成了。但是,对于 SV r 中的验证者来说,事情就少了 简单。事实上,负责用足够多的签名来验证新区块 Br, 他们必须首先在领导者提议的区块上运行拜占庭协议。问题是, 无论效率如何,BA⋆需要多个步骤以及> 2/3的玩家的诚实。 这是一个问题,因为出于效率原因,BA⋆的参与者集由小集SV r组成 从所有用户集中随机选择。因此,我们强大的对手虽然无法 腐败了所有用户的1/3,当然可以腐败SV r的所有成员! 幸运的是,我们将证明通过以点对点方式传播消息来执行的协议 BA⋆ 是玩家可替换的。这一新颖的要求意味着协议正确且 即使每个步骤都是由全新的、随机的执行,也能有效地达成共识 以及独立挑选的球员。因此,对于数百万用户来说,每一小部分玩家 与 BA 的一个步骤相关联,很可能与下一组有空的交集。 另外,BA⋆不同阶段的玩家集合可能会有完全不同的 基数。此外,每组的成员都不知道下一组的玩家是谁 是,并且不秘密传递任何内部状态。 可替换球员的属性实际上对于击败动态且非常强大的球员至关重要 我们设想的对手。我们相信可替换球员协议将在许多方面发挥至关重要的作用 上下文和应用程序。特别是,它们对于安全执行小型子协议至关重要 嵌入到一个更大的玩家世界中,对手是一个充满活力的对手,他们甚至能够腐败 玩家总数中的一小部分,不难腐蚀较小范围内的所有玩家 子协议。 附加属性/技术:懒惰的诚实 诚实的用户遵循他的规定 说明,其中包括在线和运行协议。因为 Algorand 仅具有适度的 计算和通信要求,在线并运行协议“ 背景”并不是重大牺牲。当然,诚实的玩家中也有一些“缺席”,比如 由于突然失去连接或需要重新启动,会被自动容忍(因为 我们总是可以认为这样的少数玩家暂时是恶意的)。然而,我们要指出的是, Algorand 可以简单地进行调整,以便在新模型中工作,在该模型中诚实的用户 大部分时间都在离线状态。我们的新模型可以非正式地介绍如下。 懒惰的诚实。粗略地说,用户 i 是懒惰但诚实的,如果 (1) 他遵循他的所有规定 当他被要求参加协议时的指示,并且 (2) 他被要求参加 很少会遵守该协议,并且会提前发出适当的通知。 有了如此宽松的诚实观念,我们可能会更加确信诚实的人会 当我们需要它们时就在手边,并且 Algorand 保证,在这种情况下, 即使在给定时间点,系统也可以安全运行 大多数参与的玩家都是恶意的。1.3 密切相关的工作 工作量证明方法(如引用的 [29] 和 [4])与我们的方法非常正交。也是如此 基于消息传递拜占庭协议或实用拜占庭容错的方法 (如引用的 [8])。事实上,这些协议不能在所有用户组中运行,也不能, 在我们的模型中,仅限于一小部分用户。事实上,我们的强大对手是我的 立即破坏一小部分负责实际运行 BA 协议的所有用户。 我们的方法可以被认为与权益证明 [2] 有关,从某种意义上说,用户的“权力” 区块建设中的资金与他们在系统中拥有的资金成正比(而不是——比如说—— 他们存入“托管”的资金)。 最接近我们的论文是 Pass 和 Shi [30] 的 Sleepy Consensus Model。为了避免 proof-of-work 方法需要大量计算,他们的论文依赖于(并且友善地 学分)Algorand 的秘密密码抽签。有了这个关键的共同点,几个 我们的论文之间存在显着差异。特别是, (1) 它们的设置仅被允许。相比之下,Algorand 也是一个无需许可的系统。 (2) 他们使用中本风格的协议,因此他们的 blockchain 经常分叉。虽然 放弃 proof-of-work,在他们的协议中,要求秘密选出的领导人延长 最长有效(更丰富的意义上)blockchain。因此,分叉是不可避免的,人们必须等待 该区块在链中足够“深入”。 事实上,与对手一起实现他们的目标 能够自适应损坏,它们需要一个深度为 Poly(N) 的块,其中 N 代表 系统中的用户总数。请注意,即使假设可以生成一个块 一分钟内,如果有 N = 1M 用户,则需要等待大约 2M 年 一个区块变成 N 2 深,大约需要 2 年时间才能让一个区块变成 N 深。相比之下, Algorand 的 blockchain 分叉的概率可以忽略不计,即使对手腐败 用户可以立即自适应地使用它的新块,并且可以立即依赖它。 (3) 他们不处理单独的拜占庭协议。 从某种意义上说,他们只是保证 “最终就一系列不断增长的价值观达成共识”。他们的协议是状态复制协议,而不是 比 BA 更重要,并且不能用于就个人利益价值达成拜占庭协议。 相比之下,如果需要的话,Algorand 也只能使用一次,以使数百万用户能够快速 就特定的利息价值达成拜占庭协议。 (4) 它们需要弱同步时钟。也就是说,所有用户的时钟都偏移了一个小时间 δ。相比之下,在 Algorand 中,时钟只需要(本质上)具有相同的“速度”。 (5) 他们的协议适用于懒惰但诚实的用户或诚实的大多数在线用户。 他们善意地赞扬 Algorand 提出了诚实用户集体下线的问题,并感谢 对此提出了懒惰诚实模型。他们的协议不仅适用于懒惰的人 诚实模型,但也在他们的对抗性昏昏欲睡模型中,对手选择哪些用户 哪些是在线的,哪些是离线的,前提是大多数在线用户在任何时候都是诚实的。2 2他们论文的原始版本实际上只考虑了对抗性昏昏欲睡模型中的安全性。 的 Algorand 的原始版本(先于他们的版本)也明确设想假设给定的大多数 在线玩家总是诚实的,但明确地将其排除在考虑范围之外,转而支持懒惰的诚实模型。 (例如,如果在某个时间点,一半的诚实用户选择下线,那么大多数用户 网上的内容很可能是恶意的。因此,为了防止这种情况发生,对手应该强迫他的大部分 腐败的玩家也会下线,这显然违背了他自己的利益。)请注意,一个拥有多数票的协议 如果大多数在线用户总是恶意的,那么懒惰但诚实的玩家就可以正常工作。之所以如此,是因为 足够数量的诚实玩家知道自己在某个罕见的时间点将发挥至关重要的作用,因此会选择 在那些时刻不要离线,也不能被对手强迫离线,因为他不知道谁是 诚实的玩家可能是至关重要的。(6) 他们需要简单诚实的多数。相比之下,当前版本的 Algorand 需要 2/3 诚实的多数。 我们身边的另一篇论文是 Ouroboros:一种可证明安全的权益证明区块链协议, 作者:Kiayias、Russell、David 和 Oliynykov [20]。他们的系统也出现在我们的系统之后。它还 使用密码抽签以可证明的方式免除工作量证明。然而,他们的 系统又是一种中本风格的协议,其中分叉是不可避免且频繁的。 (然而,在他们的模型中,区块不需要像昏昏欲睡的共识模型那么深。) 而且, 他们的系统依赖于以下假设:用作者自己的话说,“(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 是具有 256 位长输出的随机 oracle 时,找到任何这样的字符串对确实是 困难。 (随机尝试并依赖生日悖论,需要 2256/2 = 2128 试验。) 数字签名。 数字签名允许用户相互验证信息 无需共享任何共享密钥。 数字签名方案由三个快速 算法:概率密钥生成器 G、签名算法 S 和验证算法 V。 给定一个安全参数 k(一个足够大的整数),用户 i 使用 G 生成一对 k 位密钥(即字符串):“公共”密钥 pki 和匹配的“秘密”签名密钥 ski。至关重要的是,一个 公钥不会“背叛”其相应的秘密密钥。也就是说,即使了解 pki,也不能 除了我之外,还有人能够在不到天文时间的时间内计算出滑雪。 用户 i 使用ski 对消息进行数字签名。对于每个可能的消息(二进制字符串)m, i 首先 hashes m,然后对输入 H(m) 和 ski 运行算法 S,以生成 k 位字符串 sigpki(m) \(\triangleq\)S(H(m), 滑雪) .3 3 由于 H 具有抗碰撞能力,因此实际上不可能通过签署 m 来“意外地签署”不同的 消息 m′。二进制串 sigpki(m) 被称为 i 对 m 的数字签名(相对于 pki),可以表示为 当公钥 pki 从上下文中清晰可见时,更简单地表示为 sigi(m)。 每个知道 pki 的人都可以用它来验证 i 生成的数字签名。具体来说,关于 输入 (a) 玩家 i 的公钥 pki,(b) 消息 m,以及 (c) 字符串 s,即 i 被称为 消息 m 的数字签名,验证算法 V 输出 YES 或 NO。 我们要求数字签名方案具有以下属性: 1. 合法签名总是经过验证的:如果 s = sigi(m),则 V (pki, m, s) = Y ES;和 2. 数字签名很难伪造:在不了解滑雪知识的情况下,找到这样的字符串的时间 对于从未由 i 签名的消息 m,V (pki, m, s) = Y ES 的长度是天文数字。 (遵循 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′ 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 中,用户 i 依赖数字 签名为 (1) 验证我自己的付款。在此应用程序中,密钥可以是“长期的”(即,用于 在很长一段时间内对许多消息进行签名)并且来自普通的签名方案。 (2) 生成凭证,证明 i 有权在第 r 轮的某些步骤 s 中采取行动。在这里, 密钥可以是长期的,但必须来自满足唯一性属性的方案。 (3) 验证i在其执行的每个步骤中发送的消息。 这里,键必须是 短暂的(即在第一次使用后被销毁),但可以来自普通的签名方案。 • 小成本的简化。为简单起见,我们设想每个用户 i 都有一个长期密钥。因此,这样的密钥必须来自具有唯一性的签名方案 财产。这种简单性的计算成本很小。事实上,通常独特的数字 签名的生成和验证成本比普通签名稍高。 2.2 理想化的公共账本 Algorand 尝试模仿以下基于理想化公共分类账的支付系统。 1. 初始状态。金钱与个人公钥(私人生成和 归用户所有)。令 pk1, . 。 。 , pkj 是初始公钥,a1, . 。 。 , aj 各自的 初始金额单位,则初始状态为 S0 = (pk1, a1), . 。 。 , (pkj, aj), 假设这是系统中的常识。 2. 付款。设 pk 为当前拥有 \(\geq\)0 货币单位的公钥,pk′ 为另一个公钥 key,a′是不大于a的非负数。那么,(有效)支付 \(\wp\) 是一个数字 签名,相对于pk,指定a′货币单位从pk到pk′的转移,一起 以及一些附加信息。在符号中, \(\wp\)= SIGpk(pk, pk′, a′, I, H(I)), 其中 I 代表任何被认为有用但不敏感的附加信息(例如,时间 信息和付款标识符),以及任何被视为敏感的其他信息(例如, 付款原因,可能是 pk 和 pk' 所有者的身份,等等)。 我们将 pk(或其所有者)称为付款人,将每个 pk'(或其所有者)称为收款人,将 a' 称为收款人 付款金额\(\wp\)。 通过付款免费加入。请注意,用户可以随时通过以下方式加入系统 生成自己的公钥/密钥对。相应地,出现在中的公钥pk' 上面的支付\(\wp\)可能是新生成的公钥,从未“拥有”任何钱 之前。 3.魔法账本。在理想化系统中,所有付款都是有效的,并以防篡改的方式显示 L组付款清单“贴在天上”供大家查看: L = 支付 1,支付 2,. 。 。 ,每个区块 PAY r+1 包含自区块出现以来所有支付的集合 支付 r。在理想的系统中,一个新的块会在固定(或有限)的时间后出现。 讨论。 • 更一般的支付和未花费的交易输出。 更一般地,如果公钥 pk 拥有金额 a,那么 pk 的有效支付 \(\wp\) 可以转移金额 a′ 1、a′ 2、. 。 ., 分别对应键 pk′ 1、pk′ 2、. 。 .,只要P j a′ j\(\leq\)a。 在 Bitcoin 和类似系统中,公钥 pk 拥有的资金被分成单独的 金额,并且 pk 进行的支付 \(\wp\) 必须全部转移这样的隔离金额 a。 如果 pk 希望仅将 a 的一小部分 a′ < a 转移到另一个密钥,那么它还必须将 余额,未使用的交易输出,到另一个密钥,可能是 pk 本身。 Algorand 也适用于具有隔离金额的密钥。然而,为了集中精力 Algorand 的新颖方面,从概念上讲,坚持我们更简单的付款方式更简单 以及具有与其关联的单一金额的密钥。 • 当前状态。理想化方案不直接提供有关当前情况的信息 系统的状态(即每个公钥有多少货币单位)。此信息 可以从魔法账本中推断出来。 在理想的系统中,活跃用户不断存储和更新最新的状态信息, 否则他就必须重建它,要么从头开始,要么从上次他 计算了一下。 (在本文的下一版本中,我们将增强 Algorand 以使其能够 用户以有效的方式重建当前状态。) • 安全和“隐私”。 数字签名保证任何人都无法伪造付款 另一个用户。在支付\(\wp\)中,公钥和金额不是隐藏的,而是敏感的 信息我是。事实上,只有 H(I) 出现在 \(\wp\) 中,并且由于 H 是理想的 hash 函数,因此 H(I) 是一个随机的 256 位值,因此无法找出我比 只是猜测而已。然而,为了证明我是什么(例如,证明付款的原因) 付款人可以直接透露 I。所透露的 I 的正确性可以通过计算 H(I) 来验证 并将结果值与 \(\wp\) 的最后一项进行比较。事实上,由于 H 具有碰撞弹性, 很难找到第二个值 I′ 使得 H(I) = H(I′)。 2.3 基本概念和符号 密钥、用户和所有者 除非另有说明,每个公钥(简称“密钥”)都是长期的,并且与具有唯一性的数字签名方案相关。我加入的公钥 当系统中已有另一个公钥 j 向 i 付款时,系统将执行此操作。 对于颜色,我们将钥匙拟人化。我们将密钥 i 称为“他”,表示我是诚实的,我发送 并接收消息等。 User 是 key 的同义词。当我们想要区分一个键时 对于它所属的人,我们分别使用术语“数字密钥”和“所有者”。 免许可和许可系统。 如果数字密钥是免费的,则系统是无需许可的 随时加入,一个所有者可以拥有多个数字钥匙;并获得许可,否则。独特的表现 Algorand 中的每个对象都有一个唯一的表示。特别是, 每个集合 {(x, y, z, . . .) : x \(\in\)X, y \(\in\)Y, z \(\in\)Z, . 。 .} 以预先指定的方式排序:例如,first 按字典顺序先在 x 中,然后在 y 中,依此类推。 同速时钟 没有全局时钟:相反,每个用户都有自己的时钟。用户时钟 不需要以任何方式同步。然而,我们假设它们都具有相同的速度。 例如,当根据用户i的时钟是中午12点时,根据用户i的时钟,可能是下午2:30 另一个用户j的时钟,但是当根据i的时钟为12:01时,根据i的时钟为2:31 到j的时钟。也就是说,“一分钟对于每个用户来说都是相同的(充分、本质上相同)”。 回合 Algorand 以逻辑单元组织,r = 0, 1, . 。 .,称为回合。 我们一贯使用上标来表示轮次。表示非数字量 Q (例如,字符串、公钥、集合、数字签名等)指的是一轮r,我们简单地写成Qr。 仅当 Q 是一个真正的数字(而不是可解释为数字的二进制字符串)时,才执行 我们写成Q(r),这样符号r就不能被解释为Q的指数。 在(a的开始)r > 0轮时,所有公钥的集合是PKr,系统状态是 锶= n 我,一个(r) 我,. 。 。  : i \(\in\) PKro , 其中a(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 节中描述)。用户 i \(\in\)PKr 的支付 \(\wp\) 具有相同的格式和语义 就像在理想系统中一样。即, \(\wp\)= SIGi(i, i′, a, I, H(I)) 。 付款 \(\wp\) 在第 r 轮中单独有效(简称为第 r 轮付款),如果 (1) 其金额 a 小于或等于 a(r) i ,并且 (2) 它不会出现在任何官方支付集 PAY r′ 中,因为 r′ < r。 (如下所述,第二个条件意味着 \(\wp\) 尚未生效。 如果 i 的一组 r 轮付款的金额之和最多为 a(r),则它们集体有效 我。 支付方式 r 轮支付集 P 是 r 轮支付的集合,使得对于每个用户 i,支付 P 中的 i 个(可能没有)集体有效。所有 r 轮支付集的集合是 PAY(r)。一轮R 如果 P 的超集不是第 r 轮支付集,则支付集 P 是最大的。 我们实际上建议支付 \(\wp\)也指定一轮 \(\rho\), \(\wp\)= SIGi(\(\rho\), i, i′, a, I, H(I)) , 对于某个固定的非负整数 k.4,在 [\(\rho\), \(\rho\) + k] 之外的任何一轮都无效 4这简化了检查\(\wp\)是否已变得“有效”(即,它简化了确定某些支付集是否 PAY r 包含 \(\wp\)。当 k = 0 时,如果 \(\wp\)= SIGi(r, i, i′, a, I, H(I)) 且 \(\wp\)/\(\varepsilon\)PAY r,则 i 必须重新提交 \(\wp\)。官方支付 对于每一轮 r,Algorand 公开选择(以稍后描述的方式) 单个(可能是空的)支付集,PAY r,该轮的官方支付集。 (本质上,PAY r 代表 “实际”发生的 R 轮付款。) 与理想系统(和Bitcoin)一样,(1)新用户j进入系统的唯一途径 是属于给定回合 r 的官方支付集 PAY r 的付款的接收者;和 (2) PAY r 根据本轮的状态 Sr 确定下一轮的状态 Sr+1。 象征性地, 支付 r : Sr −→Sr+1。 具体来说, 1.第r+1轮的公钥集合PKr+1,由PKr和所有的集合的并集组成 首次出现在 PAY r 付款中的收款人密钥;和 2.金额a(r+1) 我 用户 i 在第 r + 1 轮中拥有的资产是 ai(r) 的总和,即 我在上一轮中拥有的金额(如果 i ̸\(\varepsilon\)PKr 则为 0)— 以及金额总和 根据PAY r的付款方式支付给i。 总之,就像在理想系统中一样,每个状态 Sr+1 都可以从之前的付款历史中扣除: 支付0,. 。 。 , 支付 r。 2.4 区块和已验证的区块 在 Algorand0 中,对应于一轮 r 的块 Br 指定: 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。因此,魔法账本 通过已证明的块的顺序来实现, B1、B2、. 。 。 讨论 正如我们将看到的,CERT r 由一组 H(Br) 的数字签名组成, SV r 的大多数成员,以及每个成员确实属于的证明 到 SV r。当然,我们可以将证书 CERT r 包含在块本身中,但是会发现它 概念上更清晰,以将其分开。) 在 Bitcoin 中,每个块必须满足一个特殊属性,即必须“包含 加密难题”,这使得区块生成需要大量计算,并且分叉不可避免 而且并不罕见。相比之下,Algorand 的 blockchain 有两个主要优点:它是用 最小的计算量,并且它不会以极高的概率分叉。每个块Bi是 一旦进入blockchain,就安全地结束。2.5 可接受的故障概率 为了分析 Algorand 的安全性,我们指定概率 F,我们愿意使用该概率 接受出现问题的情况(例如,验证者集 SV r 没有诚实多数)。 与加密 hash 函数 H 的输出长度的情况一样,F 也是一个参数。 但是,在这种情况下,我们发现将 F 设置为一个具体值很有用,以便获得更直观的结果 掌握这样一个事实:在 Algorand 中,确实可以同时享受足够的安全 和足够的效率。为了强调F是可以根据需要设置的参数,在第一个 和第二实施例我们分别设置 F = 10−12 和 F = 10−18 。 讨论 请注意,10−12 实际上小于万亿分之一,我们相信这样的 在我们的应用中选择 F 就足够了。让我们强调 10−12 不是概率 对手可以用它伪造诚实用户的付款。所有付款均以数字方式进行 签名,因此,如果使用正确的数字签名,伪造付款的概率为 远低于 10−12,事实上,本质上是 0。我们愿意容忍的坏事件 概率 F 是 Algorand 的 blockchain 分叉。请注意,我们设置 F 和 在一分钟长的回合中,预计 Algorand 的 blockchain 中出现分叉的频率为 (大约)190 万年一次。相比之下,在 Bitcoin 中,分叉经常发生。 要求较高的人可以将F设置为较低的值。为此,在我们的第二实施例中 我们考虑将 F 设置为 10−18。注意,假设每秒生成一个区块,1018 是迄今为止宇宙所花费的估计秒数:从大爆炸到现在 时间。因此,在 F = 10−18 的情况下,如果一秒内生成一个区块,则应该预期其年龄为 宇宙看到一个叉子。 2.6 对抗模型 Algorand 被设计为在非常对抗的模型中是安全的。让我们解释一下。 诚实用户和恶意用户 如果用户遵循所有协议说明,则他是诚实的,并且 完全有能力发送和接收消息。用户是恶意的(即拜占庭,在 分布式计算的用语)如果他可以任意偏离他规定的指令。 对手 对手是一种高效的(技术上多项式时间)算法,以颜色拟人化,他可以在任何他想要的时间立即对任何他想要的用户进行恶意攻击(主题 仅限于他可以破坏的用户数量的上限)。 对手完全控制并完美协调所有恶意用户。他采取一切行动 代表他们,包括接收和发送他们的所有消息,并可以让他们偏离 他们以任意方式规定的指示。或者他可以简单地隔离发送损坏的用户 并接收消息。让我们澄清一下,没有其他人会自动得知用户 i 是恶意的, 尽管我的恶意可能会通过对手让他采取的行动而显现出来。 然而这个强大的对手, • 不具备无限的计算能力,无法成功伪造数字 诚实用户的签名,除非概率可以忽略不计;和• 不能以任何方式干扰诚实用户之间的消息交换。 此外,他攻击诚实用户的能力受到以下假设之一的限制。 诚信占多数金钱 我们考虑诚实多数货币 (HMM) 的连续体 假设:即对于每个非负整数 k 且实数 h > 1/2, HHMk > h:每轮 r 中的诚实用户拥有的所有资金中的一部分大于 h 系统在 r −k 轮。 讨论。 假设所有恶意用户完美地协调他们的行动(就好像被控制一样) 由单一实体(即对手)造成的)是一个相当悲观的假设。之间也完美协调 很多个人是很难实现的。也许协调只发生在不同的群体中 的恶意玩家。但是,由于无法确定恶意用户的协调程度 可能会享受,我们最好是安全而不是后悔。 假设攻击者也可以秘密地、动态地、立即地破坏用户 悲观的。毕竟,实际上,完全控制用户的操作应该需要一些时间。 例如,假设 HMMk > h 意味着,如果实施一轮(平均) 那么,在一分钟内,某一轮的大部分资金将留在诚实的手中 如果 k = 120,则至少 2 小时;如果 k = 10, 000,则至少 1 周。 请注意,HMM 假设和之前的诚实多数计算能力 假设是相关的,因为计算能力可以用金钱购买, 如果恶意用户拥有大部分资金,那么他们就可以获得大部分算力。 2.7 沟通模式 我们设想消息传播——即“点对点八卦”5——是唯一的手段 沟通。 临时假设:全网消息及时传递。 对于 本文的大部分内容我们假设每条传播的消息都到达了几乎所有诚实的用户 及时。我们将在第 10 节中删除这个假设,在第 10 节中我们处理网络 分区,无论是自然发生的还是敌对引起的。 (正如我们将看到的,我们只假设 在网络的每个连接组件内及时传递消息。) 捕获传播消息(在整个网络中)的及时传递的一种具体方法是 以下: 对于所有可达性 \(\rho\) > 95% 且消息大小 \(\mu\) \(\in\)Z+,存在 \(\lambda\) \(\rho\),\(\mu\) 使得, 如果诚实的用户在时间 t 传播 \(\mu\) 字节消息 m, 那么到时间 t + \(\lambda\) \(\rho\),μ 时,m 至少达到诚实用户的一小部分 \(\rho\)。 5本质上,如Bitcoin中,当用户传播消息m时,每个活跃用户i第一次接收m, 随机且独立地选择适当少量的活跃用户,即他的“邻居”,他将 m 转发给他们, 可能直到他收到他们的确认为止。当没有用户接收时 m 的传播终止 m 第一次。然而,如果没有明确且单独地设想一种由另一个用户/存储库等获取最新的 blockchain 的机制,则上述属性无法支持我们的 Algorand 协议。 事实上,构建一个新的区块 Br 不仅需要一组适当的验证者及时接收轮次 r 消息,还有前几轮的消息,以便知道 Br−1 和所有其他先前的消息 块,这是确定 Br 中的付款是否有效所必需的。 以下 假设就足够了。 消息传播 (MP) 假设: 对于所有 \(\rho\) > 95% 且 \(\mu\) \(\in\)Z+,存在 \(\lambda\) \(\rho\),\(\mu\) 这样,对于所有时间 t 以及诚实用户在 t −\(\lambda\) \(\rho\),μ 之前传播的所有 \(\mu\) 字节消息 m, m 在时间 t 之前被至少一小部分 \(\rho\) 的诚实用户接收。 协议 Algorand ' 实际上指示一小部分用户中的每一个(即,一个 Algorand ' 中一轮的给定步骤,传播(小)规定大小的单独消息, 我们需要限制完成这些指示所需的时间。我们通过充实议员来做到这一点 假设如下。 对于所有 n、\(\rho\) > 95% 且 \(\mu\) \(\in\)Z+,存在 \(\lambda\)n,\(\rho\),\(\mu\),使得对于所有时间 t 和所有 \(\mu\) 字节 消息 m1, . 。 。 , mn,每个都由诚实用户在 t −\(\lambda\)n,\(\rho\),μ, m1,... 之前传播。 。 。 , mn 收到, 到时间 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 协议 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 传播的。用分布式计算的术语来说,这种能力与冲刺有关 文学。因此,在本节中,我们为 SC 网络引入一种新的 BA 协议 BA⋆,并忽略 完全是球员可替换性的问题。 BA⋆协议是具有独立价值的贡献。 事实上,它是迄今为止已知的 SC 网络最有效的加密 BA 协议。 为了在我们的 Algorand 协议中使用它,我们稍微修改 BA⋆,以考虑到我们的不同 沟通模型和上下文,但请确保在第 X 节中强调如何使用 BA⋆ 在我们实际的协议 Algorand ' 内。 我们首先回顾一下 BA⋆ 的运作模式和拜占庭协议的概念。 3.1 同步完整网络和匹配对手 在 SC 网络中,有一个公共时钟,在每个积分时间 r = 1, 2,... 处滴答作响。 。 。 在每次点击 r 时,每个玩家 i 都会立即同时发送一个 留言先生 i,j(可能是空消息)发送给每个玩家 j,包括他自己。每个先生 收到 i,j 此时,玩家 j 单击 r + 1 以及发送者 i 的身份。 再次强调,在通信协议中,如果玩家遵循所有规定,那么他就是诚实的 指令,以及其他恶意行为。所有恶意玩家均被完全控制且完美 由对手协调,特别是立即收到所有发送给 恶意玩家,并选择他们发送的消息。 攻击者可以在任何奇怪的时间立即对任何诚实的用户进行恶意点击 他希望,仅受限于恶意玩家数量的可能上限。也就是说, 对手“不能干扰诚实用户 i 已经发送的消息”,这将是 照常交付。 对手还具有额外的能力,可以在每个偶数轮中立即看到 当前诚实玩家发送的消息,并立即使用该信息进行选择 恶意玩家同时发送的消息会打勾。 备注 • 对手的力量。上面的设定是非常对抗性的。事实上,在拜占庭协议中 文学作品中,许多场景都不太具有敌意。然而,一些更具对抗性的设置 也被考虑过,对手在看到诚实玩家发送的消息后,我 在给定时间单击 r,可以立即从网络上删除所有这些消息 损坏i,选择当前恶意i在单击r时发送的消息,并让它们 照常交付。对手的预期力量与他在我们的环境中所拥有的力量相匹配。 • 物理抽象。设想的通信模型抽象出一个更物理的模型, 其中每对玩家 (i, j) 通过单独的私有通信线路 li,j 连接。 也就是说,没有其他人可以注入、干扰或获取有关通过该消息发送的消息的信息 李杰。对手获取 li,j 的唯一方法是破坏 i 或 j。 • 隐私和身份验证。在 SC 网络中,消息隐私和身份验证得到保证 通过假设。相比之下,在我们的通信网络中,消息被传播 点对点之间,身份验证由数字签名保证,并且不存在隐私。 因此,要在我们的设置中采用协议 BA⋆,每条交换的消息都应该进行数字签名 (进一步确定发送的状态)。幸运的是,我们的 BA 协议 考虑在 Algorand 中使用不需要消息隐私。3.2 拜占庭协议的概念 拜占庭协议的概念是由 Pease Shostak 和 Lamport [31] 提出的 二进制情况,即每个初始值都由一位组成。不过很快就被延长了 为任意初始值。 (参见 Fischer [16] 以及 Chor 和 Dwork [10] 的调查。) 协议,我们指的是任意值协议。 定义 3.1。在同步网络中,设P为n个玩家协议,其玩家集是公共的 玩家之间的知识,t 是一个正整数,使得 n \(\geq\)2t + 1。 我们说 P 是一个 任意值(分别为二进制) (n, t) - 健全性 \(\sigma\) \(\varepsilon\)(0, 1) 的拜占庭协议 如果,对于每组不包含特殊符号 \(\bot\) 的值 V(分别,对于 V = {0, 1}),在 执行过程中,最多 t 个玩家是恶意的,并且每个玩家 i 都以 初始值 vi \(\in\)V ,每个诚实玩家 j 以概率 1 停止,输出一个值 outi \(\in\)V \(\cup\){\(\bot\)} 从而以至少 \(\sigma\) 的概率满足以下两个条件: 1. 协议:对于所有诚实玩家 i,存在 out \(\varepsilon\)V \(\cup\){\(\bot\)} 使得 outi = out。 2. 一致性:如果对于某个值 v \(\in\)V ,对于所有诚实的玩家 vi = v,则 out = v。 我们将 out 称为 P 的输出,将每个 outi 称为玩家 i 的输出。 3.3 BA 符号 # 在我们的 BA 协议中,玩家需要计算有多少玩家向他发送了给定消息 给定的步骤。因此,对于可能发送的每个可能值 v,

s

我(五) (或者当 s 清楚时只是#i(v))是 i 在步骤 s 中从其接收 v 的玩家 j 的数量。 回想一下,玩家 i 从每个玩家 j 接收到一条消息,如果 玩家是 n,那么,对于所有 i 和 s,P v#s i(v) = n。 3.4 二进制 BA 协议 BBA⋆ 在本节中,我们提出一个新的二进制 BA 协议 BBA⋆,它依赖于更多的诚实性 超过三分之二的玩家并且速度非常快:无论恶意玩家可能做什么, 每次执行其主循环都会使玩家以 1/3 的概率达成一致。 每个玩家都有自己的数字签名方案的公钥,满足唯一签名 财产。由于该协议旨在在同步完整网络上运行,因此没有 需要一个玩家我签署他的每条消息。 数字签名用于在步骤 3 中生成足够通用的随机位。(在 Algorand 中, 数字签名也用于验证所有其他消息。) 该协议需要一个最小的设置:一个公共随机字符串 r,独立于玩家的 键。 (在 Algorand 中,r 实际上被数量 Qr 代替。) BBA⋆协议是一个三步循环,玩家反复交换布尔值,并且 不同的玩家可能会在不同的时间退出这个循环。玩家 i 通过传播退出这个循环, 在某个步骤中,要么是特殊值 0,要么是特殊值 1,从而指示所有玩家 “假装”他们在以后的所有步骤中分别从 i 接收 0 和 1。 (或者说:假设玩家 j 从另一个玩家 i 收到的最后一条消息有点 b。然后,在任意一步 其中他没有收到来自 i 的任何消息,j 的行为就好像我向他发送了位 b。) 该协议使用计数器 \(\gamma\),表示其 3 步循环已执行的次数。 BBA⋆开始时,\(\gamma\) = 0。(人们可能认为\(\gamma\)是一个全局计数器,但实际上它是增加的 每次执行循环时由每个单独的玩家执行。) 有 n \(\geq\)3t + 1,其中 t 是恶意玩家的最大可能数量。一个二进制 字符串 x 用二进制表示形式(可能有前导 0)为 x 的整数来标识; lsb(x) 表示 x 的最低有效位。 协议BBA⋆ (通信) 步骤1. [币固定为0步骤] 每个玩家i发送bi。 1.1 如果#1 i (0) \(\geq\)2t + 1,则i设置bi = 0,发送0,输出outi = 0, 并停止。 1.2 如果#1 i(1)\(\geq\)2t+1,那么,则i设bi=1。 1.3 否则,i 设置 bi = 0。 (通信) 步骤2. [硬币固定为1步骤] 每个玩家i发送bi。 2.1 如果#2 i(1)\(\geq\)2t+1,则i设bi=1, 发送 1, 输出outi = 1, 并停止。 2.2 如果#2 i(0)\(\geq\)2t+1,则设bi=0。 2.3 否则,i 设置 bi = 1。 (通信)步骤3.[硬币翻转步骤]每个玩家i发送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 中向 i 发送了正确的消息}, 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⋆协议是对我们的公钥设置的新颖改编 Feldman 和 Micali [15] 的二进制 BA 协议。他们的协议是第一个按预期工作的协议 恒定的步数。它的工作原理是让玩家自己实现一个共同的硬币, 拉宾提出的概念,他通过外部受信任方 [32] 实施了该概念。3.5 分级共识和GC协议 让我们回想一下,对于任意值,共识的概念比拜占庭协议弱得多。 定义 3.2。设 P 是一个协议,其中所有参与者的集合都是共同知识,并且每个参与者 玩家 i 私下知道任意初始值 v′ 岛 我们说 P 是一个 (n, t) 分级共识协议,如果在 n 个玩家的每次执行中, 其中大多数 t 都是恶意的,每个诚实的玩家 i 都会停止输出价值等级对 (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\) = v′ 对于某个值 v,n = v,则对于所有诚实玩家 i,vi = v 且 gi = 2。 历史注释 分级共识的概念只是源自分级共识的概念。 广播,由 Feldman 和 Micali 在 [15] 中提出,通过强化十字军的概念 协议,由 Dolev [12] 引入,并由 Turpin 和 Coan [33].8 完善 在 [15] 中,作者还提供了一个 3 步(n,t)分级广播协议,gradecast,用于 n\(\geq\)3t+1。后来发现了 n > 2t+1 的更复杂的 (n, t) 分级广播协议 作者:Katz 和 Koo [19]。 下面的两步协议 GC 由 Gradecast 的最后两步组成,用我们的表达式表示 符号。为了强调这一事实,并匹配第 4.1 节协议 Algorand ' 的步骤,我们 分别命名2和3的GC步骤。 气相色谱协议 步骤 2. 每个玩家 i 发送 v′ 我对所有玩家。 步骤 3. 每个玩家 i 向所有玩家发送字符串 x 当且仅当 #2 i(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)分级的广播协议。 该证明紧随 [15] 中协议等级广播的证明,因此被省略。9 8本质上,在分级广播协议中,(a) 每个玩家的输入都是杰出玩家的身份 玩家,发送者,具有任意值 v 作为附加私有输入,并且 (b) 输出必须满足 与分级共识的属性 1 和 2 相同,加上以下属性 3′:如果发送者是诚实的,则 vi = v 且 对于所有诚实的玩家 i,gi = 2。 9确实,在他们的协议中,在步骤 1 中,发送者将自己的私有值 v 发送给所有玩家,并且每个玩家都让 v′ i 由他在步骤 1 中实际从发送者收到的值组成。3.6 协议 BA⋆ 现在我们通过二进制 BA 协议 BBA⋆ 来描述任意值 BA 协议 BA⋆ 以及 分级共识协议 GC。下面,每个玩家i的初始值为v′ 岛 协议 BA⋆ 步骤 1 和 2. 每个玩家 i 在输入 v′ 上执行 GC i,从而计算一对(vi,gi)。 步骤 3,. 。 。每个玩家 i 执行 BBA⋆——如果 gi = 2,初始输入为 0,否则为 1——所以 来计算位outi。 输出确定。如果 outi = 0,则每个玩家 i 输出 vi,否则输出 \(\bot\)。 定理3.3。每当 n \(\geq\)3t + 1 时,BA⋆是一个稳健性为 1 的 (n, t)-BA 协议。 证明。我们首先证明一致性,然后证明一致性。 一致性证明。假设对于某个值 v \(\in\)V , v′ i = v. 那么,根据性质 3 分级共识,GC执行后,所有诚实玩家输出(v,2)。因此,0 是 BBA⋆执行结束时所有诚实玩家的最初一点。因此,根据协议 二进制拜占庭协议的属性,在 BA⋆ 执行结束时,对于所有诚实的人,outi = 0 玩家。这意味着 BA⋆ 中每个诚实玩家 i 的输出是 vi = v。 ✷ 协议证明。由于 BBA⋆ 是一个二进制 BA 协议, (A) 对于所有诚实玩家 i,outi = 1,或者 (B) 对于所有诚实的玩家 i,outi = 0。 在情况 A 中,所有诚实玩家都输出 \(\bot\) 为 BA⋆,因此协议成立。现在考虑情况 B。 这种情况下,在执行BBA⋆时,至少一个诚实玩家i的初始位为0。(事实上,如果 所有诚实玩家的初始位为 1,然后,根据 BBA⋆ 的一致性属性,我们将有 对于所有诚实的 j,outj = 1。)因此,在执行 GC 后,i 对某些输出对 (v, 2) 因此,根据分级共识的属性 1,对于所有诚实的玩家 j,gj > 0。因此,通过 分级共识的属性 2,对于所有诚实的玩家 j,vj = v。这意味着,在年底 BA⋆,每个诚实玩家 j 输出 v。因此,协议在情况 B 中也成立。 ✷ 由于一致性和一致性都成立,所以 BA⋆ 是一个任意值的 BA 协议。 历史注释 Turpin 和 Coan 第一个证明,对于 n \(\geq\)3t+1,任何二元 (n, t)-BA 协议可以转换为任意值 (n, t)-BA 协议。减少任意值 通过分级共识的拜占庭协议到二进制拜占庭协议更加模块化, 更干净,并简化了对 Algorand 协议 Algorand ' 的分析。 泛化 BA⋆用于 Algorand Algorand 即使所有通信都是通过 八卦。然而,尽管呈现在传统且熟悉的通信网络中,所以 为了更好地与现有技术进行比较并更容易理解,协议 BA⋆works 也在八卦网络中。事实上,在 Algorand 的详细实施例中,我们将呈现它 直接用于八卦网络。我们还应该指出,它满足球员的可替换性 在设想的非常对抗性的模型中,对于 Algorand 的安全至关重要的财产。

任何在八卦通信网络中工作的 BA 播放器可替换协议都可以是 在本发明的Algorand系统中安全地使用。特别是 Micali 和 Vaikunthanatan 已将 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 假设委员会中诚实成员的数量总是大于 或等于固定阈值 tH (这保证了,以压倒性的概率,至少 2/3的委员会成员是诚实的)。另外,Algorand ′ 2 允许拜占庭协议 可以通过任意数量的步骤达到(但可能比 Algorand ' 更短的时间 1)。 很容易得出这些基本实施例的许多变体。特别是,这很容易,因为 Algorand ′ 2、修改Algorand′ 1 以便能够任意达成拜占庭协议 步数。 两个实施例共享以下共同核心、符号、概念和参数。 4.1 共同核心 目标 理想情况下,对于每一轮 r,Algorand 将满足以下属性: 1. 完美的正确性。所有诚实的用户都同意同一个区块。 2. 完整性 1. 在概率 1 的情况下,Br、PAY r 的支付集最大。10 10由于支付集被定义为包含有效支付,并且诚实的用户只进行有效支付,因此最大 PAY r 包含所有诚实用户的“当前未偿”付款。当然,仅仅保证完美的正确性是微不足道的:每个人总是选择官方的 付款集 PAY r 为空。但在这种情况下,系统的完整性为 0。不幸的是, 保证完美的正确性和完整性 1 在存在恶意的情况下并不容易 用户。 Algorand 因此采用了更现实的目标。非正式地,让 h 表示百分比 诚实的用户中,h > 2/3,Algorand 的目标是 以压倒性的概率保证接近 h 的完美正确性和完整性。 优先考虑正确性而不是完整性似乎是一个合理的选择:付款未在 一轮可以在下一轮中处理,但如果可能的话,应该避免分叉。 领导拜占庭协议 完美的正确性可以保证如下。一开始 在第r轮中,每个用户i构建自己的候选块Br i ,然后所有用户都到达拜占庭 就一个候选区块达成一致。根据我们的介绍,所采用的 BA 协议需要 2/3 诚实多数,并且是玩家可替换的。它的每个步骤都可以由一个小的和 随机选择一组验证者,他们不共享任何内部变量。 不幸的是,这种方法没有完整性保证。之所以如此,是因为候选人 诚实用户的群体很可能彼此完全不同。因此,最终 商定的区块可能总是具有非最大支付集的区块。事实上,它可能永远是 空块,B\(\varepsilon\),即支付集为空的块。我们将默认为空。 Algorand ' 避免了这种完整性问题,如下所示。首先,选择 r 轮的领导者 \(\ell\)r。 然后,\(\ell\)r 传播他自己的候选块 Br \(\ell\)r。最后,用户就区块达成一致 他们实际上是从 \(\ell\)r 收到的。因为,只要 \(\ell\)r 是诚实的,就具有完美的正确性和完整性 1 都成立,Algorand ′ 确保 \(\ell\)r 是诚实的,概率接近 h。 (当领导者 恶意的,我们不关心商定的区块是否是一个具有空支付集的区块。毕竟,一个 恶意领导者 \(\ell\)r 可能总是恶意选择 Br \(\ell\)r 是空块,然后诚实地 传播它,从而迫使诚实的用户就空块达成一致。) 领导者选拔 在 Algorand 中,第 r 个块的形式为 Br = (r, PAY r, Qr, H(Br−1)。 正如引言中已经提到的,数量 Qr−1 被仔细构造为 基本上无法被我们非常强大的对手操纵。 (在本节后面,我们将 提供一些关于为什么会出现这种情况的直觉。)在一轮 r 开始时,所有用户都知道 blockchain 到目前为止,B0,. 。 。 , Br−1,他们从中推导出前一轮的用户集: 是,PK1,. 。 。 , PKr−1。第 r 轮的潜在领导者是用户 i,使得 .H 西吉 r, 1, Qr−1 \(\leq\)p。 让我们解释一下。 请注意,由于数量 Qr−1 是块 Br−1 的一部分,并且底层 签名方案满足唯一性属性 SIGi r, 1, Qr−1 是唯一的二进制字符串 与 i 和 r 相关。因此,由于 H 是随机的 oracle,H 西吉 r, 1, Qr−1 是一个随机的256位 与 i 和 r 唯一关联的长字符串。符号“.”在H前面 西吉 r, 1, Qr−1 是 小数(在我们的例子中为二进制)点,因此 ri \(\triangleq\).H 西吉 r, 1, Qr−1 是 a 的二元展开式 与 i 和 r 唯一关联的 0 到 1 之间的随机 256 位数字。因此概率 ri 小于或等于 p 本质上是 p。 (我们的潜在领导者选择机制已经 受到 Micali 和 Rivest [28] 的小额支付计划的启发。) 选择概率 p,以便以压倒性的(即 1 −F)概率,至少有一个 潜在的验证者是诚实的。 (事实上,p 被选为此类概率中最小的。)请注意,由于 i 是唯一能够计算自己签名的人,因此他独自一人可以 确定他是否是第一轮的潜在验证者。但是,通过透露他自己的凭据, \(\sigma\)r 我\(\triangleq\)SIGi r, 1, Qr−1 ,我可以向任何人证明自己是 r 轮的潜在验证者。 领导者 \(\ell\)r 被定义为潜在领导者,其 hashed 凭证小于 hashed 所有其他潜在领导者 j 的凭证:即 H(\(\sigma\)r,s \(\ell\)r ) \(\leq\)H(\(\sigma\)r,s j)。 请注意,由于恶意 \(\ell\)r 可能不会透露他的凭证,因此第 r 轮的正确领导者可能会 永远不会被知道,除非有不可能的联系,\(\ell\)r确实是r轮的唯一领导者。 最后让我们提出最后一个但重要的细节:用户 i 可以成为潜在的领导者(因此 仅当他属于该系统至少 k 轮时,才是 r 轮的领导者。这保证了 Qr 和所有未来 Q 量的不可操纵性。事实上,潜在的领导者之一 实际上将确定 Qr。 验证者选择 r 轮的每个步骤 s > 1 都由一小组验证者 SV r,s 执行。 同样,每个验证者 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 我,在 r 轮的步骤 s,该消息包含他的凭证 \(\sigma\)r,s i ,以便使验证者能够 下一步要认识到 Mr,s 我 是合法的step-s消息。 选择概率 p' 以确保在 SV r,s 中,令 #good 为 诚实用户和#bad 恶意用户的数量,以下的概率是压倒性的 两个条件成立。 对于实施例Algorand' 1: (1) #好 > 2 \(\cdot\) #坏并且 (2) #good + 4 \(\cdot\) #bad < 2n,其中 n 是 SV r,s 的预期基数。 对于实施例Algorand' 2: (1) #good > tH 且 (2) #good + 2#bad < 2tH,其中 tH 是指定阈值。 这些条件意味着,以足够高的概率,(a) 在 BA 的最后一步中 协议中,至少会有给定数量的诚实玩家对新区块 Br 进行数字签名, (b) 每轮只有一个区块可能具有必要数量的签名,以及 (c) 使用的 BA 协议(在每一步)拥有所需的 2/3 诚实多数。 澄清区块生成 如果 r 轮领导者 \(\ell\)r 是诚实的,则相应的区块 是这样的形式 溴= r, PAY r, SIG\(\ell\)r Qr−1 , H Br−1 , 其中支付集 PAY r 是最大的。 (回想一下,根据定义,所有支付集集体有效。) 否则(即,如果 \(\ell\)r 是恶意的),Br 具有以下两种可能形式之一: 溴= r、支付 r、SIGi Qr−1 , H Br−1 和 溴 = 溴 \(\varepsilon\) \(\triangleq\) r, \(\emptyset\), Qr−1, H Br−1 。在第一种形式中,PAY r 是一个(不一定是最大的)支付集,它可能是 PAY r = \(\emptyset\);我是 r 轮的潜在领导者。 (然而,我可能不是领导者\(\ell\)r。如果如果 \(\ell\)r 对他的凭证保密并且不暴露自己。) 第二种形式出现在 BA 协议的 R 轮执行中,所有诚实的参与者 输出默认值,即空块Br \(\varepsilon\) 在我们的应用中。 (根据定义,可能的 BA 协议的输出包括默认值,一般用 \(\bot\) 表示。参见第 3.2 节。) 请注意,虽然两种情况下的支付集都是空的,但 Br = r, \(\emptyset\), SIGi Qr−1 , H Br−1 和溴 \(\varepsilon\) 是语法上不同的块,出现在两种不同的情况下:分别是“所有 BA 协议的执行过程非常顺利”,并且“在执行过程中出现了问题” BA协议,默认值为output”。 现在让我们直观地描述一下Algorand′的第r轮区块Br的生成是如何进行的。 第一步,每个符合条件的玩家,即每个玩家 i \(\in\) PKr−k,检查他是否是潜在的 领导者。如果是这种情况,那么我会被问到,使用他迄今为止看到的所有付款,以及 当前 blockchain,B0,. 。 。 ,Br−1,秘密准备最大支付集,PAY r 我,并且偷偷地 组装他的候选块,Br = r,支付 r 我,SIGi Qr−1 , H Br−1 。也就是说,他不仅 包含在 Br 中 i ,作为其第二个组成部分,即刚刚准备好的支付集,而且,作为其第三个组成部分, 他自己的 Qr−1 签名,最后一个区块 Br−1 的第三个组成部分。最后他宣扬自己的 round-r-step-1 消息,先生,1 i ,其中包括 (a) 他的候选块 Br i , (b) 他的正确签名 他的候选块的(即他对 Br 的 hash 的签名) i 和 (c) 他自己的凭证 \(\sigma\)r,1 我,证明 他确实是 r 轮的潜在验证者。 (请注意,直到诚实的 i 发出他的消息 mr,1 i ,对手不知道我是 潜在的验证者。如果他想腐蚀诚实的潜在领导人,对手也可以 腐败的随机诚实玩家。然而,一旦他看到 Mr,1 i ,因为它包含 i 的凭证, 对手知道并可能腐蚀 i,但无法阻止 mr,1 i ,通过病毒传播,来自 覆盖系统中的所有用户。) 在第二步中,每个选定的验证者 j \(\in\)SV r,2 尝试识别该轮的领导者。 具体来说,j 采用第 1 步凭证 \(\sigma\)r,1 i1 , . 。 。 , \(\sigma\)r,1 中,包含在正确的步骤 1 消息 mr,1 中 我 他已经收到; hashes 全部,即计算 H  \(\sigma\)r,1 i1  , . 。 。 , H  \(\sigma\)r,1 在  ;找到凭证, \(\sigma\)r,1 \(\ell\)j ,其 hash 按字典顺序最小;并考虑 \(\ell\)r j 成为 r 轮的领导者。 回想一下,每个考虑的凭证都是 Qr−1 的数字签名,即 SIGi r, 1, Qr−1 是 由 i 和 Qr−1 唯一确定,H 是随机的 oracle,因此每个 H(SIGi r, 1, Qr−1 是 r 轮中每个潜在领导者 i 唯一的随机 256 位长字符串。 由此我们可以得出结论,如果 256 位字符串 Qr−1 本身是随机且独立的 选择后,r 轮所有潜在领导者的 hashed 证书将被选中。事实上,所有 潜在的领导者是明确定义的,他们的资历也是如此(无论是实际计算的还是 不是)。此外,第 r 轮的潜在领导者集合是第 r 轮用户的随机子集 r −k,作为一个诚实的潜在领导者,我总是正确地构建和传播他的信息,先生 我, 其中包含我的凭据。因此,由于诚实用户的百分比为 h,无论 恶意的潜在领导者可能会这样做(例如,透露或隐藏自己的凭据),最低限度 hashed 潜在领导者凭证属于诚实的用户,每个人都必然会识别他 成为 r 轮的领导者 \(\ell\)r。因此,如果 256 位字符串 Qr−1 本身是随机的并且 独立选择,概率为 h (a) 领导者 \(\ell\)r 是诚实的,并且 (b) \(\ell\)j = \(\ell\)r 对于所有人 诚实的第 2 步验证者 j. 实际上,hashed 凭证是随机选择的,但取决于 Qr−1,即不是随机和独立选择的。然而,我们将在分析中证明 Qr−1 是 足够不可操纵以保证一轮的领导者在概率上是诚实的 h′ 足够接近 h:即 h′ > h2(1 + h −h2)。例如,如果 h = 80%,则 h′ > .7424。 确定了本轮的领导者(当领导者 \(\ell\)r 诚实时,他们正确地做到了这一点), 步骤 2 验证者的任务是开始执行 BA,使用他们认为的初始值 成为领导者的块。实际上,为了尽量减少所需的沟通量, 验证者 j \(\in\)SV r,2 不使用,作为他的输入值 v′ j 到拜占庭协议,块 Bj 他实际上已经收到了来自\(\ell\)j(用户j认为是领导者)的信息,但是领导者,但是 该块的 hash,即 v′ j = H(Bi)。因此,在 BA 协议终止后,验证者 最后一步的不计算所需的 round-r 块 Br,而是计算(验证和 传播)H(Br)。因此,由于 H(Br) 是由足够多的验证者进行数字签名的 BA协议的最后一步,系统中的用户将意识到H(Br)是新的hash 块。然而,它们还必须检索(或等待,因为执行是完全异步的) 阻止 Br 本身,协议确保其确实可用,无论对手如何 可能会。 异步和定时 Algorand ′ 1 和 Algorand ′ 2 具有显着程度的异步性。 之所以如此,是因为对手在安排消息传递方面有很大的自由度 传播。另外,一轮中的总步数是否有上限,还有 方差由实际采取的步数贡献。 一旦他获得了 B0 的证书,. 。 。 , Br−1,用户 i 计算 Qr−1 并开始工作 在第r轮上,检查他是否是潜在的领导者,或者是第r轮的某些步骤中的验证者。 假设我必须在步骤 s 采取行动,鉴于所讨论的异步性,我依赖于各种 确保他在采取行动之前拥有足够的信息的策略。 例如,他可能会等待从验证者处接收至少给定数量的消息 上一步,或者等待足够的时间以确保他收到足够的消息 上一步的许多验证者。 种子 Qr 和回溯参数 k 回想一下,理想情况下,Qr 的数量应该 随机且独立,尽管它们足够不可被操纵 对手。 乍一看,我们可以选择 Qr−1 与 H 一致 支付 r−1 ,从而避免 在 Br−1 中明确指定 Qr−1。然而,基本分析表明,恶意用户可能 利用这种选择机制。11 一些额外的努力表明,无数其他 11我们正处于第 r -1 轮的开始。因此,Qr−2 = PAY r−2 是公开的,而对手则是私下的 知道他控制的潜在领导者是谁。 假设攻击者控制 10% 的用户,并且 恶意用户 w 很有可能成为第 r -1 轮的潜在领导者。也就是说,假设 H 信号发生器 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 以便能够证明它是不可被对手操纵的。即, 如果 Br 不是空块,则 Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r),否则 Qr \(\triangleq\)H(Qr−1, r)。 Qr 的这种构造为何有效的直觉如下。暂时假设 Qr−1 是真正随机且独立选择的。那么Qr也会如此吗?当 \(\ell\)r 诚实时 答案是(粗略地说)是的。之所以如此是因为 H(SIG\(\ell\)r( \(\cdot\) ), r) : {0, 1}256 −→{0, 1}256 是一个随机函数。然而,当 \(\ell\)r 是恶意的时,Qr 不再由 Qr−1 唯一定义 和\(\ell\)r。 Qr 至少有两个单独的值。继续为 Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), 另一个是H(Qr−1,r)。首先我们要论证的是,虽然第二个选择有些武断, 第二选择是绝对强制性的。原因是恶意的 \(\ell\)r 总是会导致 第二步的诚实验证者将接收完全不同的候选块。12 一旦 确实如此,通过 BA 协议很容易确保该区块最终达成一致 r 轮将是默认轮次,因此不会包含任何人的 Qr−1 数字签名。但是 该系统必须继续下去,为此,它需要 r 轮的领导者。如果这个领导者自动 并公开选择,那么对手就会轻易地腐蚀他。如果是之前选择的 Qr−1 通过相同的过程,\(\ell\)r 将再次成为 r+1 轮中的领先者。我们特别建议 使用相同的秘密加密抽签机制,但应用于新的 Q 数量:即, H(Qr−1, r)。通过将此量作为 H 的输出,可以保证输出是随机的, 并通过将 r 作为 H 的第二个输入,而 H 的所有其他用途都有一个或 3 个以上输入, “保证”这样的 Qr 是独立选择的。同样,我们对替代 Qr 的具体选择 没关系,重要的是\(\ell\)r对于Qr有两种选择,这样他的机会就可以加倍 让另一个恶意用户作为下一个领导者。 对于控制恶意 \(\ell\)r 的对手来说,Qr 的选项甚至可能更多。 例如,令 x、y 和 z 为 r 轮的三个恶意潜在领导者,使得 H \(\sigma\)r,1 x  <H \(\sigma\)r,1 y  1)。 请注意 n1 << n,因为我们在 SV r,1 中至少需要一个诚实的诚实成员,但至少 每个 SV r,s 中的大多数诚实成员都为 s > 1。 • h \(\varepsilon\)(0, 1):大于2/3的常数。 h是系统中的诚实率。也就是说, 每个 PKr 中诚实用户或诚实资金的比例(取决于所使用的假设)是 至少h。 • H:加密hash 函数,建模为随机oracle。 • \(\bot\):与H 的输出长度相同的特殊字符串。 • F \(\varepsilon\)(0, 1):指定允许错误概率的参数。 概率 \(\leq\)F 是 被认为是“可以忽略不计的”,并且概率\(\geq\)1−F被认为是“压倒性的”。 • ph \(\in\)(0, 1):一轮 r 的领导者\(\ell\)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):对于第 r 轮的每个步骤 s > 1,第 r −k 轮中的用户被选择在 SV r,s 中,其中 概率 p \(\triangleq\) n |P Kr−k|。 • CERT r:Br 的证书。它是来自适当验证者的 H(Br) 的一组 tH 签名 朗德河 • Br \(\triangleq\)(Br, CERT r) 是一个经过验证的块。 如果用户拥有(并成功验证)已证明区块的两个部分,则他知道 Br。 请注意,不同用户看到的 CERT r 可能不同。 • τ r i :用户 i 认识的(本地)时间。在 Algorand 协议中,每个用户都有自己的 自己的时钟。不同用户的时钟不需要同步,但速度必须相同。 仅出于分析目的,我们考虑参考时钟并测量球员的 与之相关的时间。 • \(\alpha\)r,s 我 和 \(\beta\)r,s i :分别是用户 i 开始和结束执行步骤 s 的(本地)时间 朗德河 • Λ 和 \(\lambda\):实质上分别是执行步骤 1 和步骤 1 所需时间的上限 Algorand 协议的任何其他步骤所需的时间。 参数 Λ 设定传播单个 1MB 块的时间上限。 (在我们的符号中, Λ = \(\lambda\) \(\rho\),1MB。回想一下我们的符号,为了简单起见,我们设置 \(\rho\) = 1,并且块是 选择最多 1MB 长,我们有 Λ = \(\lambda\)1,1,1MB。) 15严格来说,“r −k”应该是“max{0, r −k}”。参数 \(\lambda\) 限制了步骤 s > 1 中每个验证者传播一条小消息的时间。 (如 Bitcoin 所示,使用具有 32B 密钥的椭圆曲线签名,验证器消息的长度为 200B。 因此,在我们的符号中,\(\lambda\) = \(\lambda\)n,\(\rho\),200B。) 我们假设 Λ = O(\(\lambda\))。 观念 • 验证者选择。 对于每一轮 r 和步骤 s > 1,SV r,s \(\triangleq\){i \(\in\)PKr−k : .H(SIGi(r, s, Qr−1)) \(\leq\)p}。每个 用户 i \(\in\)PKr−k 使用他的长期密钥私下计算他的签名,并决定是否 i \(\in\)SV r,s 与否。如果 i \(\in\)SV r,s,则 SIGi(r, s, Qr−1) 是 i 的 (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 i ) \(\leq\)H(\(\sigma\)r,1 j) 为所有潜力 领导者 j \(\in\)SV r,1。每当比较两个玩家的资历的 hashes 时,在不太可能的情况下 发生联系时,协议总是根据(长期公共 )潜在领导者的关键。 根据定义,玩家\(\ell\)r的凭证的hash值也是所有用户中最小的 PKr−k。请注意,潜在领导者不能私下决定他是否是领导者, 没有看到其他潜在领导人的资历。 由于 hash 值是随机均匀的,因此当 SV r,1 非空时,\(\ell\)r 始终存在且为 诚实的概率至少为 h。参数n1足够大,以保证每个 SV r,1 以压倒性概率非空。 • 块结构。 非空块的形式为 Br = (r, PAY r, SIG\(\ell\)r(Qr−1), H(Br−1)),并且空块 其形式为 Br \(\varepsilon\) = (r, \(\emptyset\), Qr−1, H(Br−1))。 请注意,如果没有付款发生,非空块仍可能包含空支付集 PAY r 本轮或者领导者是否恶意。然而,非空块意味着 \(\ell\)r,他的凭证 \(\sigma\)r,1 \(\ell\)r 和 SIG\(\ell\)r(Qr−1) 都已及时揭示。协议保证 如果领导者是诚实的,那么该区块将以压倒性的概率非空。 • 种子Qr。 如果 Br 非空,则 Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r),否则 Qr \(\triangleq\)H(Qr−1, r)。 参数 • 各种参数之间的关系。 — r 轮的验证者和潜在领导者是从 PKr−k 中的用户中选出的, 其中 k 的选择使得对手无法在 r −k −1 轮预测 Qr−1 概率优于F:否则,他将能够引入恶意用户 对于 r -k 轮,所有这些都将成为 r 轮中的潜在领导者/验证者,并成功

对于某些步骤 s 所期望的,在 SV r,s 中拥有恶意领导者或恶意多数 他。 — 对于每轮 r 的步骤 1,选择 n1 以便以压倒性的概率获得 SV r,1 ̸= \(\emptyset\)。 • 重要参数的选择示例。 — H 的输出长度为 256 位。 — h = 80%,n1 = 35。 — Λ = 1 分钟且 \(\lambda\) = 10 秒。 • 协议的初始化。 协议从时间 0 开始,r = 0。由于不存在“B−1”或“CERT −1”, 从语法上讲,B−1 是一个公共参数,其第三个组件指定 Q−1,并且所有用户 在时间 0 知道 B−1。

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 ' 版本。 诚实的大多数用户假设:每个 PKr 中超过 2/3 的用户是诚实的。 在第 8 节中,我们展示了如何用所需的诚实多数来替换上述假设 金钱假设。 5.1 附加符号和参数 符号 • m \(\in\)Z+:二进制BA协议中的最大步数,3的倍数。 • Lr \(\leq\)m/3:随机变量,代表看到 1 所需的伯努利试验次数, 当每次试验为 1 时,概率为 ph 2 并且最多有 m/3 次试验。如果所有试验都失败了 Lr \(\triangleq\)m/3。 Lr 将用于确定生成区块 Br 所需时间的上限。 • tH = 2n 3 + 1:协议结束条件所需的签名数量。 • CERT r:Br 的证书。它是来自适当验证者的 H(Br) 的一组 tH 签名 朗德河 参数 • 各种参数之间的关系。 — 对于第 r 轮的每一步 s > 1,选择 n 使得以压倒性的概率, |HSV r,s| > 2|MSV r,s| 和 |HSV r,s| + 4|MSV r,s| < 2n。 h的值越接近1,n需要越小。特别是,我们使用(变体 of) Chernoffbounds 以确保所需条件以压倒性概率成立。 — m 的选择使得 Lr < m/3 以压倒性的概率出现。 • 重要参数的选择示例。 — F = 10−12。 — n \(\approx\)1500,k = 40,m = 180。5.2 在 Algorand ' 中实现临时密钥 1 正如已经提到的,我们希望验证者 i \(\in\)SV r,s 对他的消息 mr,s 进行数字签名 我 步骤的 r 轮中的 s,相对于临时公钥 pkr,s i ,使用临时秘密密钥 skr,s 我 那个 他在使用后立即销毁。因此,我们需要一种有效的方法来确保每个用户都可以 验证 pkr,s 我 确实是用来验证我的 Mr,s 签名的密钥 我。我们这样做是通过(尽最大努力 据我们所知)基于身份的签名方案的新用途。 在较高层面上,在这样的方案中,中央机构 A 生成一个公共主密钥 PMK, 以及相应的秘密主密钥 SMK。给定玩家 U 的身份 U,A 计算, 通过SMK,得到一个相对于公钥U的秘密签名密钥skU,并私下将skU给 U.(事实上,在基于身份的数字签名方案中,用户U的公钥就是U本身!) 这样,如果 A 在计算出他想要启用的用户的密钥后销毁 SMK 产生数字签名,并且不保留任何计算出的密钥,那么 U 是唯一一个 可以对与公钥 U 相关的消息进行数字签名。因此,任何知道“U 的名字”的人, 自动知道 U 的公钥,因此可以验证 U 的签名(也可能使用 公共主密钥 PMK)。 在我们的应用中,权限 A 是用户 i,所有可能用户 U 的集合与 比如说 S = {i}\(\times\){r′, 中的圆步对 (r, s)。 。 。 , r′ +106}\(\times\){1, . 。 。 , m+3},其中 r′ 是给定的 一轮,m + 3 是一轮内可能发生的步数的上限。这个 方式,pkr,s 我 \(\triangleq\)(i, r, s),这样每个人都看到i的签名SIGr,s PKR,S 我(先生,s 我)可以,以压倒性的 概率,立即在 r' 之后的前一百万轮 r 中验证它。 换句话说,i首先生成PMK和SMK。然后,他公开PMK是i的主人 任意一轮 r \(\in\)[r′, r′ + 106] 的公钥,并使用 SMK 私下生成和存储秘密 关键 skr,s 我 对于每个三元组 (i, r, s) \(\in\)S。完成后,他摧毁了 SMK。如果他确定自己不是 SV r,s 的一部分,那么我可能会离开 skr,s 我 单独(因为协议不要求他验证 r) 轮步骤 s 中的任何消息。否则,我首先使用 skr,s 我 对他的消息进行数字签名 Mr,s 我 , 和 然后摧毁skr,s 我。 请注意,当他第一次进入系统时,我可以公开他的第一个公共主密钥。也就是说, 将 i 带入系统的相同支付 \(\wp\)(在 r′ 轮或接近 r′ 轮),也可能 根据 i 的要求,指定 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]) 输入一个新块,或者作为 单独的“交易”或作为付款一部分的一些附加信息。通过这样做, 我通知每个人,他/她应该在接下来的时间里使用 PMK′ 来验证我的临时签名 万发。等等。 (请注意,遵循此基本方法,无需其他方法即可实现临时密钥 使用基于身份的签名当然是可能的。例如,通过 Merkle trees.16) 16在这个方法中,我生成一个公私密钥对(pkr,s 我,skr,s 我 ) 对于 —say— 中的每个回合步对 (r, s)当然也可以采用其他方式实现临时密钥,例如通过 Merkle trees。 5.3 匹配 Algorand ′ 的步骤 1 与BA⋆的那些 正如我们所说,一轮在 Algorand ' 1 最多有 m + 3 步。 步骤 1. 在这一步中,每个潜在领导者 i 计算并传播他的候选区块 Br 我, 连同他自己的凭证,\(\sigma\)r,1 我。 回想一下,这个凭证明确地标识了 i。之所以如此,是因为 \(\sigma\)r,1 我 \(\triangleq\)SIGi(r, 1, Qr−1)。 潜在验证者 i 还传播其正确的数字签名 H(Br 我)。 不涉及付款或凭证,i 的此签名与他的短暂公共相关 密钥 pkr,1 i :也就是说,他传播 sigpkr,1 我 (H(Br 我))。 鉴于我们的惯例,而不是传播 Br 我 和 sigpkr,1 我 (H(Br 我)),他本可以 传播的 SIGpkr,1 我 (H(Br 我))。 然而,在我们的分析中,我们需要显式访问 sigpkr,1 我 (H(Br 我))。 步骤 2. 在这一步中,每个验证者 i 设置 \(\ell\)r 我将成为具有 hashed 证书的潜在领导者 是最小的,并且 Br i 是 \(\ell\)r 提出的区块 我。因为,为了效率,我们 希望就 H(Br) 达成一致,而不是直接就 Br 达成一致,我传播他想要的信息 在 BA⋆ 的第一步中以初始值 v′ 传播 我 = H(Br 我)。也就是说,他传播 v′ 我, 当然,是在短暂签署之后。 (即,在相对于正确的临时签名后 公钥,在本例中为 pkr,2 i .) 当然,我也传输了他自己的凭证。 由于 BA⋆ 的第一步包含了分级共识协议 GC 的第一步, Algorand '的2对应于GC的第一步。 步骤3. 在这一步中,每个验证者i \(\in\)SV r,2 执行BA⋆的第二步。也就是说,他发送 他会在 GC 第二步中发送相同的消息。再说一次,我的信息是短暂的 签名并附有我的证书。 (从现在开始,我们将省略验证者 短暂地签署他的消息并传播他的凭证。) 步骤 4. 在这一步中,每个验证器 i \(\in\)SV r,4 计算 GC 的输出 (vi, gi),并且短暂地 签署并发送与他在 BA⋆第三步中发送的相同的消息,即在 BBA⋆的第一步,如果gi = 2则初始位为0,否则为1。 步骤 s = 5,. 。 。 , m + 2。这样的步骤,如果达到的话,对应于 BA⋆ 的步骤 s -1,因此 BBA⋆的步骤s -3。 由于我们的传播模型足够异步,因此我们必须考虑以下可能性 在这样的步骤 s 的中间,通过证明他的信息到达验证者 i \(\in\)SV r,s 该块 Br 已被选择。在这种情况下,i 停止自己执行第 r 轮 Algorand ′,并开始执行他的回合(r + 1)指令。 {r′,. 。 。 , r′ + 106} \(\times\) {1, . 。 。 ,m+3}。 然后他以规范的方式对这些公钥进行排序,存储第 j 个公钥 键入 Merkle tree 的第 j 个叶子,并计算他公开的根值 Ri。当他想要签名的时候 与密钥 pkr,s 相关的消息 我 , i 不仅提供了实际的签名,还提供了 pkr,s 的验证路径 我 相对于Ri。请注意,此身份验证路径还证明了 pkr,s 我 存储在第 j 个叶子中。其余的 详细信息可以轻松填写。因此,除了相应的指令之外,验证器 i \(\in\)SV r,s 的指令 BBA⋆的步骤s -3,包括检查BBA⋆的执行是否在先前已停止 步骤s′。由于 BBA⋆ 只能在 Coin-Fixed-0 Step 或 Coin-Fixed-1 Step 中停止, 指令区分是否 A(结束条件 0):s′ -2 ≡0 mod 3,或 B(结束条件1):s′ -2 ≡1 mod 3。 事实上,在情况 A 中,块 Br 是非空的,因此需要额外的指令来 确保我正确重建 Br 及其正确的证书 CERT r。在情况 B 中, 块 Br 为空,因此指示 i 设置 Br = Br \(\varepsilon\) = (r, \(\emptyset\), H(Qr−1, r), H(Br−1)), 并计算 CERT r。 如果在执行步骤 s 的过程中,我没有看到任何证据表明块 Br 已经 生成后,他发送的消息与他在 BBA⋆的步骤 s -3 中发送的消息相同。 步骤 m + 3。如果在步骤 m + 3 期间,i \(\in\)SV r,m+3 看到块 Br 已经在 先前的步骤 s',然后他按照上面所解释的进行。 否则,我不会发送他在 BBA⋆的步骤 m 中发送的相同消息,而是 根据他掌握的信息,指示计算 Br 及其相应的 证书 CERT r。 事实上,回想一下,我们将一轮的总步数设置为 m + 3。 5.4 实际协议 回想一下,在第 r 轮的每个步骤 s 中,验证者 i \(\in\)SV r,s 使用他的长期公钥对 出示他的凭证 \(\sigma\)r,s 我 \(\triangleq\)SIGi(r, s, Qr−1),以及 SIGi Qr−1 如果 s = 1。验证者 i 使用他的临时密钥 skr,s 我 签署他的 (r, s) 消息 mr,s 我。为简单起见,当 r 和 s 为 清楚,我们写 esigi(x) 而不是 sigpkr,s i (x) 表示 i 的值的固有临时签名 x 在第 r 轮的步骤 s 中,并写入 ESIGi(x) 而不是 SIGpkr,s i (x) 表示 (i, x, esigi(x))。 第 1 步:区块提案 对每个用户 i \(\in\)PKr−k 的说明:用户 i 一旦他开始他自己的第 r 轮步骤 1 知道 Br−1。 • 用户 i 根据 Br−1 的第三个分量计算 Qr−1 并检查 i \(\in\)SV r,1 或 不。 • 如果i /\(\varepsilon\)SV r,1,则i 立即停止自己执行步骤1。 • 如果 i \(\in\)SV r,1,即,如果 i 是潜在领导者,那么他将收取具有以下特征的第 r 轮付款: 到目前为止已传播给他并计算最大支付集 PAY r 我来自他们。接下来,他 计算他的“候选块” Br 我 = (r, 支付 r i , SIGi(Qr−1), H(Br−1))。最后,他计算出 消息先生,1 我 = (Br i , esigi(H(Br i )), \(\sigma\)r,1 i ), 销毁他的临时密钥 skr,1 我,然后 传播 mr,1 我。评论。 在实践中,为了缩短步骤 1 的全局执行时间,重要的是 (r, 1)- 消息是有选择地传播的。 也就是说,对于系统中的每个用户 i,对于第一个 (r, 1)- 他收到并成功验证的消息,17 玩家 i 像往常一样传播它。对于所有的 其他 (r, 1) - 玩家 i 收到并成功验证的消息,只有在 hash 时他才会传播它 它包含的凭证的值是所包含凭证的 hash 值中最小的 到目前为止,他已收到并成功验证的所有 (r, 1) 消息中。此外,按照建议 作者:Georgios Vlachos,每个潜在领导者 i 也传播他的凭证 \(\sigma\)r,1 是有用的 我 分别:这些小消息的传播速度比块更快,确保 mr,1 的及时传播 j 的 其中包含的凭据具有较小的 hash 值,而使那些具有较大的 hash 值 很快消失。 第二步:分级共识协议GC的第一步 对每个用户 i \(\in\)PKr−k 的说明:用户 i 一旦他开始他自己的第 r 轮步骤 2 知道 Br−1。 • 用户 i 根据 Br−1 的第三个分量计算 Qr−1 并检查 i 是否 \(\in\)SV r,2 或 不。 • 如果i /\(\varepsilon\)SV r,2 则i 立即停止自己执行步骤2。 • 如果i \(\in\)SV r,2,则在等待一段时间t2 \(\triangleq\) \(\lambda\) + Λ 后,i 的行为如下。 1. 他找到用户\(\ell\)使得H(\(\sigma\)r,1 \(\ell\)) \(\leq\)H(\(\sigma\)r,1 j ) 对于所有凭证 \(\sigma\)r,1 j 是的一部分 到目前为止他收到的已成功验证的 (r, 1) 消息。 2. 如果他收到来自 \(\ell\) 的有效消息 mr,1 \(\ell\) = (Br \(\ell\), esig\(\ell\)(H(Br \(\ell\))), \(\sigma\)r,1 \(\ell\)),b 则 i 集 v′ 我 \(\triangleq\)H(Br \(\ell\));否则我设置 v′ 我\(\triangleq\) \(\bot\)。 3.我计算消息mr,2 我 \(\triangleq\)(ESIGi(v′ i), \(\sigma\)r,2 i ),c 销毁了他的临时密钥 斯克罗,2 i ,然后传播 mr,2 我。 a本质上,用户i私下决定r轮的领导者是用户\(\ell\)。 b再次,玩家\(\ell\)的签名和hashes都已成功验证,并且PAY r \(\ell\) 溴 \(\ell\) 是有效的支付集 回合 r — 尽管我不检查是否 PAY r \(\ell\) 是否为 \(\ell\) 的最大值。 c消息 mr,2 我 表示玩家 i 考虑 v′ i 是下一个块的 hash ,或者考虑下一个 块为空。 17也就是说,所有签名都是正确的,并且该块及其 hash 都是有效的 - 尽管我没有检查 所包含的支付集对于其提议者来说是否是最大的。

步骤3:GC第二步 对每个用户 i \(\in\)PKr−k 的说明:用户 i 一旦他开始他自己的第 r 轮步骤 3 知道 Br−1。 • 用户 i 根据 Br−1 的第三个分量计算 Qr−1 并检查 i \(\in\)SV r,3 或 不。 • 如果i /\(\varepsilon\)SV r,3,则i 立即停止自己执行步骤3。 • 如果i \(\in\)SV r,3,则在等待一段时间t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ 后,i 的行为如下。 1. 如果存在一个值 v′ ̸= \(\bot\),使得所有有效消息中 mr,2 j 他已收到, 其中超过 2/3 的形式为 (ESIGj(v′), \(\sigma\)r,2 j ), 没有任何矛盾, a 然后他计算消息 mr,3 我 \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 我)。否则,他计算 mr,3 我 \(\triangleq\) (ESIGi(\(\bot\)), \(\sigma\)r,3 我)。 2. 我销毁了他的临时密钥 skr,3 i ,然后传播 mr,3 我。 a即他没有收到两条分别包含ESIGj(v′)和不同ESIGj(v′′)的有效消息, 来自玩家 j。从现在开始,除了稍后定义的结束条件外,每当诚实的玩家 想要给定形式的消息,相互矛盾的消息永远不会被计算或被认为是有效的。步骤4:GC的输出和BBA的第一步⋆ 对每个用户 i \(\in\)PKr−k 的说明:用户 i 一旦他开始他自己的第 r 轮步骤 4 知道 Br−1。 • 用户 i 根据 Br−1 的第三个分量计算 Qr−1 并检查 i \(\in\)SV r,4 或 不。 • 如果i /\(\varepsilon\)SV r,4,则i 立即停止自己执行步骤4。 • 如果i \(\in\)SV r,4,则在等待一段时间t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ 后,i 的行为如下。 1. 他计算 GC 的输出 vi 和 gi,如下所示。 (a) 如果存在一个值 v′ ̸= \(\bot\),使得在所有有效消息中 mr,3 j 他有 收到的,其中超过 2/3 的形式为 (ESIGj(v′), \(\sigma\)r,3 j ), 然后他设置 vi \(\triangleq\)v′ 和 gi \(\triangleq\)2。 (b) 否则,如果存在一个值 v′ ̸= \(\bot\),使得在所有有效消息中 先生,3 j 他收到的,超过 1/3 的形式是 (ESIGj(v′), \(\sigma\)r,3 j ), 那么 他设置 vi \(\triangleq\)v′ 和 gi \(\triangleq\)1.a (c) 否则,他设置 vi \(\triangleq\)H(Br \(\varepsilon\) ) 和 gi \(\triangleq\)0。 2. 他计算 BBA⋆的输入 bi,如下: 如果 gi = 2,则 bi \(\triangleq\)0,否则 bi \(\triangleq\)1。 3. 他计算消息 mr,4 我 \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 i ), 毁掉了他短暂的 密钥 skr,4 i ,然后传播 mr,4 我。 a可以证明,情况(b)中的v′如果存在,则必定是唯一的。

步骤 s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ≡0 mod 3:BBA⋆的硬币固定至 0 步骤 对每个用户 i \(\in\)PKr−k 的说明:用户 i 一旦他开始,就开始他自己的第 r 轮步骤 s 知道 Br−1。 • 用户i 根据Br−1 的第三个分量计算Qr−1 并检查i 是否\(\in\)SV r,s。 • 如果i /\(\varepsilon\)SV r,s,则i 立即停止自己执行步骤s。 • 如果i \(\in\)SV r,s 那么他的行为如下。 – 他等待一段时间 ts \(\triangleq\)ts−1 + 2\(\lambda\) = (2s −3)\(\lambda\) + Λ 过去。 – 结束条件 0:如果在等待期间的任意时间点,存在 字符串 v ̸= \(\bot\) 和步骤 s′ 使得 (a) 5 \(\leq\) s′ \(\leq\) s, s′ −2 eq 0 mod 3 — 也就是说,步骤 s′ 是一个 Coin-Fixed-To-0 步骤, (b) i 至少收到了 tH = 2n 3 + 1 条有效消息 mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ),a 和 (c) 我收到一条有效消息 mr,1 j = (Br j , esigj(H(Br j )), \(\sigma\)r,1 j ) 其中 v = H(Br j), 然后,我立即停止自己执行步骤 s(实际上是回合 r),而无需 传播任何东西;设 Br = Br j ;并将自己的 CERT r 设置为消息集 mr,s′−1 j 子步骤(b).b – 结束条件 1:如果在等待期间的任意时间点,存在 步骤 s' 使得 (a’) 6 \(\leq\)s′ \(\leq\)s, s′ -2 eq 1 mod 3 — 即,步骤 s′ 是 Coin-Fixed-To-1 步骤,并且 (b’) i 已收到至少 tH 条有效消息 mr,s’−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ),c 然后,我立即停止自己执行步骤 s(实际上是回合 r),而无需 传播任何东西;设 Br = Br \(\varepsilon\) ;并将自己的 CERT r 设置为消息集 mr,s′−1 j 子步骤(b’)的。 – 否则,在等待结束时,用户 i 执行以下操作。 他将 vi 设置为所有有效投票的第二部分中 vj 的多数票 先生,s−1 j 他已经收到了。 他计算 bi 如下。 如果超过所有有效 mr,s−1 的 2/3 j 他收到的是以下形式的 (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ),然后他设置 bi \(\triangleq\)0。 否则,如果超过所有有效 mr,s−1 的 2/3 j 他收到的是以下形式的 (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ),然后他设置 bi \(\triangleq\)1。 否则,他设置 bi \(\triangleq\)0。 他计算了消息 mr,s 我 \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), 毁掉了他短暂的 密钥 skr,s i ,然后传播 mr,s 我。 a 即使玩家 i 也收到了来自 j 的签名为 1 的消息,来自玩家 j 的此类消息也会被计数。 结束条件 1 也有类似的情况。如分析所示,这样做是为了确保所有诚实的用户都知道 Br 彼此相距 \(\lambda\) 时间内。 b 用户 i 现在知道 Br 并且他自己的 r 轮结束。他仍然以普通用户的身份帮助传播消息,但是 不作为 (r, s) 验证者发起任何传播。特别是,他帮助传播了他的所有信息 CERT r,这对于我们的协议来说已经足够了。注意,他还应该为二进制 BA 协议设置 bi \(\triangleq\)0,但是 bi 无论如何,在这种情况下是不需要的。类似的事情适用于所有未来的指示。 c在这种情况下,vj 是什么并不重要。步骤 s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ≡1 mod 3:BBA⋆的硬币固定到 1 步骤 对每个用户 i \(\in\)PKr−k 的说明:用户 i 一旦他开始,就开始他自己的第 r 轮步骤 s 知道 Br−1。 • 用户 i 根据 Br−1 的第三个分量计算 Qr−1 并检查 i 是否 \(\in\)SV r,s 或 不。 • 如果i /\(\varepsilon\)SV r,s,则i 立即停止自己执行步骤s。 • 如果 i \(\in\)SV r,s 那么他执行以下操作。 – 他等待一段时间 ts \(\triangleq\)(2s −3)\(\lambda\) + Λ 过去。 – 结束条件 0:与 Coin-Fixed-To-0 步骤相同的指令。 – 结束条件 1:与 Coin-Fixed-To-0 步骤相同的说明。 – 否则,在等待结束时,用户 i 执行以下操作。 他将 vi 设置为所有有效投票的第二部分中 vj 的多数票 先生,s−1 j 他已经收到了。 他计算 bi 如下。 如果超过所有有效 mr,s−1 的 2/3 j 他收到的是以下形式的 (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ),然后他设置 bi \(\triangleq\)0。 否则,如果超过所有有效 mr,s−1 的 2/3 j 他收到的是以下形式的 (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ),然后他设置 bi \(\triangleq\)1。 否则,他设置 bi \(\triangleq\)1。 他计算了消息 mr,s 我 \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), 毁掉了他短暂的 密钥 skr,s i ,然后传播 mr,s 我。

步骤 s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 mod 3:BBA⋆的硬币真实翻转步骤 对每个用户 i \(\in\)PKr−k 的说明:用户 i 一旦他开始,就开始他自己的第 r 轮步骤 s 知道 Br−1。 • 用户 i 根据 Br−1 的第三个分量计算 Qr−1 并检查 i 是否 \(\in\)SV r,s 或 不。 • 如果i /\(\varepsilon\)SV r,s,则i 立即停止自己执行步骤s。 • 如果 i \(\in\)SV r,s 那么他执行以下操作。 – 他等待一段时间 ts \(\triangleq\)(2s −3)\(\lambda\) + Λ 过去。 – 结束条件 0:与 Coin-Fixed-To-0 步骤相同的指令。 – 结束条件 1:与 Coin-Fixed-To-0 步骤相同的说明。 – 否则,在等待结束时,用户 i 执行以下操作。 他将 vi 设置为所有有效投票的第二部分中 vj 的多数票 先生,s−1 j 他已经收到了。 他计算 bi 如下。 如果超过所有有效 mr,s−1 的 2/3 j 他收到的是以下形式的 (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ),然后他设置 bi \(\triangleq\)0。 否则,如果超过所有有效 mr,s−1 的 2/3 j 他收到的是以下形式的 (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ),然后他设置 bi \(\triangleq\)1。 否则,令 SV r,s−1 我 是(r,s -1)验证者的集合,他从这些验证者那里收到了有效的 消息 mr,s−1 j 。他设置 bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1 我 H(\(\sigma\)r,s−1 j ))。 他计算了消息 mr,s 我 \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), 毁掉了他短暂的 密钥 skr,s i ,然后传播 mr,s 我。

步骤 m + 3:BBA⋆a的最后一步 对每个用户 i \(\in\)PKr−k 的说明:用户 i 一旦他开始他自己的第 r 轮步骤 m + 3 知道 Br−1。 • 用户 i 根据 Br−1 的第三个分量计算 Qr−1 并检查 i \(\in\)SV r,m+3 或 不。 • 如果i /\(\varepsilon\)SV r,m+3,则i 立即停止自己执行步骤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 步骤相同的说明。 – 否则,在等待结束时,用户 i 执行以下操作。 他设置了 i \(\triangleq\)1 和 Br \(\triangleq\)Br ǫ。 他计算消息 mr,m+3 我 = (ESIGi(outi), ESIGi(H(Br)), \(\sigma\)r,m+3 我 ),毁了他的 临时密钥 skr,m+3 我 ,然后传播 mr,m+3 我 证明 Br.b a极有可能 BBA⋆在此步骤之前已结束,为了完整性,我们指定此步骤。 b 步骤 m + 3 中的证书不必包含 ESIGi(outi)。我们将其包含在内只是为了统一: 现在,无论在哪个步骤生成证书,它们都具有统一的格式。非验证者重建 Round-r 区块 系统中每个用户 i 的说明: 用户 i 一旦知道就开始自己的回合 r Br−1,并等待块信息如下。 – 如果在这样的等待期间和任何时间点,存在一个字符串 v 和一个步骤 s′,这样 那个 (a) 5 \(\leq\) s′ \(\leq\) m + 3 其中 s′ −2 ≡0 mod 3, (b) i 已收到至少 tH 条有效消息 mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ),以及 (c) 我收到一条有效消息 mr,1 j = (Br j , esigj(H(Br j )), \(\sigma\)r,1 j ) 其中 v = H(Br j), 然后,i立即停止自己执行r轮;设 Br = Br j;并设置了自己的 CERT r 是消息集 mr,s′−1 j 子步骤(b)的。 – 如果在等待期间的任意时间点,存在步骤 s',使得 (a’) 6 \(\leq\)s′ \(\leq\)m + 3 其中 s′ -2 ≡1 mod 3,并且 (b’) i 已收到至少 tH 条有效消息 mr,s’−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ), 然后,i立即停止自己执行r轮;设 Br = Br ǫ;并设置了自己的 CERT r 是消息集 mr,s′−1 j 子步骤(b’)的。 – 如果在等待期间的任何时间点,i 至少收到了 tH 条有效消息 先生,米+3 j = (ESIGj(1), ESIGj(H(Br \(\varepsilon\) )), \(\sigma\)r,m+3 j ),然后我停止自己执行 r 轮 立即设置 Br = Br ϫ ,并将自己的 CERT r 设置为消息集 mr,m+3 j 为 1 和 H(Br )。 5.5 Algorand ' 的分析 1 我们为分析中使用的每轮 r \(\geq\) 0 引入以下符号。 • 令Tr 为第一个诚实用户知道Br−1 的时间。 • 设Ir+1 为区间[T r+1, T r+1 + \(\lambda\)]。 注意协议初始化时T 0 = 0。对于每个 s \(\geq\)1 且 i \(\in\)SV r,s,回想一下 \(\alpha\)r,s 我 和 \(\beta\)r,s 我 分别是玩家i的步骤s的开始时间和结束时间。而且, 回想一下,对于每个 2 \(\leq\) s \(\leq\) m + 3,ts = (2s −3)\(\lambda\) + Λ。此外,令 I0 \(\triangleq\){0} 且 t1 \(\triangleq\)0。 最后,回想一下 Lr \(\leq\)m/3 是代表伯努利试验次数的随机变量 需要看到 1,当每次试验都是 1 的概率 ph 2 并且最多有 m/3 次试验。如果全部 试验失败则 Lr \(\triangleq\)m/3。 在分析中我们忽略计算时间,因为它实际上相对于所需的时间可以忽略不计 来传播消息。无论如何,通过使用稍大的 \(\lambda\) 和 Λ,计算时间可以 直接纳入分析。下面的大多数陈述都“压倒性地” 概率”,我们在分析中可能不会反复强调这一事实。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 \(\leq\)T r + 8\(\lambda\) + Λ 并且所有诚实用户此时都知道 Br 间隔Ir+1。 3. 当领导者 \(\ell\)r 恶意时,T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ 并且所有诚实用户都知道 Br 在时间间隔Ir+1内。 4. Lr 的 ph = h2(1 + h −h2),并且领导者 \(\ell\)r 是诚实的,概率至少为 ph。 在证明我们的主要定理之前,让我们先说两点。 评论。 • 块生成和真实延迟。生成块Br的时间定义为T r+1 −T r。 也就是说,它被定义为某个诚实用户第一次学习 Br 和 一些诚实的用户第一次学习 Br−1。当 R 轮领导者诚实时,我们的属性 2 主定理保证生成 Br 的准确时间是 8\(\lambda\) + Λ 时间,无论怎样 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\(\lambda\) + Λ) + (1 −h2(1 + h −h2))(( 12 h2(1 + h −h2) + 10)\(\lambda\) + Λ)。 例如,如果 h = 80%,则 E[T r+1 -T r] \(\leq\)12.7\(\lambda\) + Λ。 • \(\lambda\) 与Λ。请注意,验证者在步骤 Algorand ' 中发送的消息的大小是主导的 通过数字签名密钥的长度,即使数字签名密钥的数量可以保持固定, 用户数量巨大。另请注意,在任何步骤 s > 1 中,验证者的预期数量 n 相同 无论用户数是100K、100M、100M都可以使用。之所以如此,是因为 n 仅 取决于 h 和 F。因此,总而言之,除非突然需要增加密钥长度, 无论用户数量有多大,\(\lambda\) 的值都应该保持不变 可预见的未来。 相比之下,对于任何交易率,交易数量随着交易数量的增加而增长。 用户。因此,为了及时处理所有新交易,块的大小应该 也随着用户数量的增长而增长,导致 Λ 也增长。因此,从长远来看,我们应该 \(\lambda\) << Λ。因此, \(\lambda\) 的系数宜取较大,实际上是一个系数 Λ 为 1。 定理 5.1 的证明。我们通过归纳法证明性质 1-3:假设它们在 r −1 轮中成立 (不失一般性,当 r = 0 时,它们自动成立“round -1”),我们证明它们 朗德河 18确实,E[T r+1 −T r] \(\leq\)(6E[Lr] + 10)\(\lambda\) + Λ = (6 \(\cdot\) 2 ph + 10)\(\lambda\) + Λ = ( 12 ph + 10)\(\lambda\) + Λ。由于 Br−1 由归纳假设唯一定义,因此集合 SV r,s 被唯一定义 对于第 r 轮的每个步骤 s。通过n1的选择,SV r,1 ̸=\(\emptyset\)以压倒性的概率。我们现在 陈述以下两个引理,在第 5.7 节和第 5.8 节中证明。在整个归纳过程中 两个引理的证明,第0轮的分析几乎与归纳步骤相同, 当差异发生时我们会强调它们。 引理 5.2。 [完整性引理] 假设属性 1-3 在 r−1 轮中成立,当领导者 \(\ell\)r 是诚实的,具有压倒性的概率, • 所有诚实的用户都同意同一个区块 Br,该区块由 \(\ell\)r 生成并包含最大 \(\ell\)r 在时间 \(\alpha\)r,1 收到的付款集 \(\ell\)r \(\in\)Ir;和 • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ 并且所有诚实用户在时间间隔Ir+1 内都知道Br。 引理 5.3。 [健全性引理] 假设属性 1-3 在 r -1 轮中成立,当领导者 \(\ell\)r 是恶意的,以压倒性的概率,所有诚实用户都同意同一个区块 Br,T r+1 \(\leq\) T r + (6Lr + 10)\(\lambda\) + Λ 并且所有诚实用户在时间间隔 Ir+1 内都知道 Br。 通过将引理 5.2 和 5.3 应用于 r = 0 和归纳步骤,性质 1-3 成立。最后, 我们将性质 4 重述为以下引理,并在第 5.9 节中证明。 引理 5.4。给定 r 之前每一轮的属性 1-3,Lr 的 ph = h2(1 + h −h2),并且 领导者 \(\ell\)r 是诚实的,概率至少为 ph。 将以上三个引理结合在一起,定理 5.1 成立。 ■ 下面的引理陈述了关于 r 轮的几个重要属性,给定电感 假设,并将用于上述三个引理的证明。 引理 5.5。假设属性 1-3 对于 r -1 轮成立。对于第 r 轮的每个步骤 s \(\geq\)1 且 每个诚实的验证者 i \(\in\) HSV r,s,我们有 (a) \(\alpha\)r,s 我 \(\varepsilon\)Ir; (b) 如果玩家 i 等待了一段时间 ts,则 \(\beta\)r,s 我 \(\varepsilon\)[T r + ts, T r + \(\lambda\) + ts] 对于 r > 0 且 \(\beta\)r,s 我 = ts,r = 0;和 (c) 如果玩家 i 等待了时间 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 j i 收到的玩家已经为 v 签名,且超过所有有效玩家的 2/3 消息 mr,s−1 j 球员 i′ 收到 v′ 的签名。 证明。性质 (a) 直接从归纳假设得出,因为玩家 i 知道 Br−1 时间间隔 Ir 并立即开始自己的步骤 s。性质 (b) 直接从 (a) 得出:因为 玩家 i 在行动之前等待了一段时间 ts,\(\beta\)r,s 我 = \(\alpha\)r,s 我 + ts。注意 \(\alpha\)r,s 我 = 0 为 r = 0。 我们现在证明性质(c)。如果 s = 2,则根据性质 (b),对于所有验证者 j \(\in\) HSV r,1 我们有 \(\beta\)r,s 我 = \(\alpha\)r,s 我 + ts \(\geq\)T r + ts = T r + \(\lambda\) + Λ \(\geq\) \(\beta\)r,1 j + Λ。由于每个验证者 j \(\in\)HSV r,1 在时间 \(\beta\)r,1 发送他的消息 j 并且消息到达所有诚实的人 最多 Λ 时间内的用户,时间为 \(\beta\)r,s 我 玩家 i 已收到所有验证者发送的消息 HSV r,1 根据需要。 如果 s > 2,则 ts = ts−1 + 2\(\lambda\)。根据性质 (b),对于所有步骤 s′ < s 且所有验证者 j \(\in\) HSV r,s′, \(\beta\)r,s 我 = \(\alpha\)r,s 我 + ts \(\geq\)T r + ts = T r + ts−1 + 2\(\lambda\) \(\geq\)T r + ts′ + 2\(\lambda\) = T r + \(\lambda\) + ts′ + \(\lambda\) \(\geq\) \(\beta\)r,s′ j + \(\lambda\)。 由于每个验证者 j \(\in\)HSV r,s′ 在时间 \(\beta\)r,s′ 发送他的消息 j 并且消息到达所有诚实的人 最多 \(\lambda\) 时间内的用户,到时间 \(\beta\)r,s 我 玩家 i 已收到所有诚实验证者发送的所有消息 在 HSV r,s' 中,对于所有 s' < s。因此性质(c)成立。 最后,我们证明性质(d)。请注意,验证者 j \(\in\)SV r,s−1 最多签署两个东西 步骤 s -1 使用它们的临时密钥:与输出相同长度的值 vj hash 函数,如果 s −1 \(\geq\)4,则还有一点 bj \(\in\){0, 1}。这就是为什么在引理的陈述中 我们要求 v 和 v′ 具有相同的长度:许多验证者可能都签署了 hash 值 v 和位 b,因此都通过了 2/3 阈值。 为了矛盾起见,假设存在所需的验证者 i、i′ 和值 v、v′。 请注意,MSV r,s−1 中的一些恶意验证者可能同时签署了 v 和 v′,但每个诚实的验证者 HSV r,s−1 中的验证者最多签署了其中一个。根据性质 (c),i 和 i′ 均已收到 HSV r,s−1 中所有诚实验证者发送的所有消息。 令 HSV r,s−1(v) 为已签署 v、MSV r,s−1 的诚实 (r, s −1) 验证者集合 我 集合 i 收到有效消息的恶意 (r, s −1) 验证者的数量,以及 MSV r,s−1 我 (五) MSV r,s−1 的子集 我 我从谁那里收到了有效的消息签名 v. 根据以下要求 i 和 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(v′)| > 1 2|HSV r,s−1|。 由于诚实的验证者 j \(\in\)HSV r,s−1 破坏了他的临时密钥 skr,s−1 j 传播前 在他的消息中,攻击者无法伪造 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' 不存在,并且 性质 (d) 成立。 ■ 5.7 完整性引理 引理 5.2。 [完整性引理,重述] 假设属性 1-3 对于 r−1 轮成立,当 领导者 \(\ell\)r 是诚实的,有压倒性的概率, • 所有诚实的用户都同意同一个区块 Br,该区块由 \(\ell\)r 生成并包含最大 \(\ell\)r 在时间 \(\alpha\)r,1 收到的付款集 \(\ell\)r \(\in\)Ir;和 • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ 并且所有诚实用户在时间间隔Ir+1 内都知道Br。 证明。根据归纳假设和引理 5.5,对于每个步骤 s 和验证器 i \(\in\) HSV r,s, \(\alpha\)r,s 我 \(\varepsilon\)Ir。下面我们一步步分析该协议。 步骤1。 根据定义,每个诚实验证者 i \(\in\) HSV r,1 传播所需的消息 mr,1 我 在 时间\(\beta\)r,1 我 =\(\alpha\)r,1 我 ,其中 mr,1 我 = (Br i , esigi(H(Br i )), \(\sigma\)r,1 i ), Br 我 = (r, 支付 r i , SIGi(Qr−1), H(Br−1)), 并支付 i 是我在时间 \(\alpha\)r,1 之前看到的所有付款中的最大付款集 我。 步骤2。 任意固定一个诚实验证者 i \(\in\) HSV r,2。根据引理 5.5,当玩家 i 完成时 在时间 \(\beta\)r,2 等待 我 =\(\alpha\)r,2 我 + t2,他已经收到HSV r,1中验证者发送的所有消息,包括 先生,1 \(\ell\)r 。根据 \(\ell\)r 的定义,PKr−k 中不存在其凭证为 hash 的其他玩家 值小于 H(\(\sigma\)r,1 \(\ell\)r)。当然,对手在看到 H(\(\sigma\)r,1 \(\ell\)r) 非常小,但那时玩家 \(\ell\)r 已经销毁了他的临时密钥和消息 mr,1 \(\ell\)r 已被传播。因此验证者 i 将自己的领导者设置为玩家 \(\ell\)r。因此,在时间 \(\beta\)r,2 我, 验证者 i 传播 mr,2 我 = (ESIGi(v′ i), \(\sigma\)r,2 i ), 其中 v′ 我 = H(Br \(\ell\)r)。当 r = 0 时,唯一的区别 是 \(\beta\)r,2 我 = t2 而不是在一个范围内。对于未来的步骤也可以说类似的话,我们 不会再强调它们。 步骤 3. 任意固定一个诚实验证者 i \(\in\) HSV r,3。根据引理 5.5,当玩家 i 完成时 在时间 \(\beta\)r,3 等待 我 =\(\alpha\)r,3 我 + t3,他已收到 HSV r,2 中验证者发送的所有消息。 通过参数之间的关系,以压倒性的概率 |HSV r,2| > 2|MSV r,2|。此外,没有诚实的验证者会签署相互矛盾的消息,而对手 在诚实验证者销毁其对应的签名后,无法伪造该签名 临时密钥。因此,我收到的所有有效 (r, 2) 消息中超过 2/3 来自 诚实的验证者,形式为 mr,2 j = (ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,2 j ), 不矛盾。 因此,在时间 \(\beta\)r,3 我 玩家 i 传播 mr,3 我 = (ESIGi(v′), \(\sigma\)r,3 i ), 其中 v′ = H(Br \(\ell\)r)。步骤 4。 任意固定一个诚实验证者 i \(\in\) HSV r,4。根据引理 5.5,玩家 i 已收到所有 当 HSV r,3 中的验证者在时间 \(\beta\)r,4 完成等待时发送的消息 我 =\(\alpha\)r,4 我 + t4。类似于 步骤 3,i 收到的所有有效 (r, 3) 消息中超过 2/3 来自诚实的验证者,并且 mr,3 形式的 j = (ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,3 j)。 因此,玩家 i 设置 vi = H(Br \(\ell\)r), gi = 2 且 bi = 0。在时间 \(\beta\)r,4 我 =\(\alpha\)r,4 我 +t4 他传播 先生,4 我 = (ESIGi(0), ESIGi(H(Br \(\ell\)r)), \(\sigma\)r,4 我)。 步骤 5。 任意固定一个诚实验证者 i \(\in\) HSV r,5。 根据引理 5.5,我将拥有的玩家 如果他一直等到时间 \(\alpha\)r,5,则接收到 HSV r,4 中验证者发送的所有消息 我 + t5。请注意 |HSV r,4| \(\geq\)tH.19 另请注意,HSV r,4 中的所有验证者均已签署 H(Br \(\ell\)r)。 作为 |MSV r,4| < tH,不存在任何 v′ ̸= H(Br \(\ell\)r) 可能由 tH 签署 SV r,4 中的验证者(必然是恶意的),因此玩家 i 在他完成之前不会停止 收到了 tH 个有效消息 mr,4 j = (ESIGj(0), ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,4 j)。设 T 为时间 后一个事件发生。其中一些消息可能来自恶意玩家,但因为 |MSV r,4| < tH,其中至少有一个来自 HSV r,4 中的诚实验证者,并且在时间之后发送 Tr+t4。因此,T \(\geq\)T r +t4 > T r +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 \(\ell\)r +Λ,到时间 T 时,玩家 i 也收到了 消息先生,1 \(\ell\)r 。通过构建协议,玩家 i 在时间 \(\beta\)r,5 处停止 我 = T 无 传播任何东西;设 Br = Br \(\ell\)r;并将他自己的 CERT r 设置为 (r, 4) 消息的集合 0 和 H(Br \(\ell\)r) 他已经收到了。 步骤 s > 5。 类似地,对于任何步骤 s > 5 和任何验证者 i \(\in\) HSV r,s,玩家 i 将有 如果他一直等到时间 \(\alpha\)r,s,则接收到 HSV r,4 中验证者发送的所有消息 我 + ts。由 同样的分析,玩家 i 停止而不传播任何内容,设置 Br = Br \(\ell\)r(并设置自己的 CERT 正确)。当然,恶意验证者可能不会停止,并且可能会任意传播 消息,但因为 |MSV r,s| < tH,通过归纳,tH 验证者无法签署其他 v′ 在任何步骤 4 \(\leq\) s′ < s 中,因此诚实的验证者只会停止,因为他们已经收到了有效的 tH (r, 4)-0 和 H(Br \(\ell\)r)。 Round-r 街区的重建。 第 5 步的分析适用于一般诚实 用户 i 几乎没有任何变化。事实上,玩家 i 在间隔 Ir 中开始自己的回合 r,并且 仅当他收到 H(Br) 的 tH 个有效 (r, 4) 消息时,才会在时间 T 停止 \(\ell\)r)。再次因为 这些消息中至少有一条来自诚实的验证者,并且在时间 T r + t4 之后发送,玩家 i 有 还收到了 Mr,1 \(\ell\)r 到时间 T。因此他设置 Br = Br \(\ell\)r 与适当的 CERT r。 剩下的只是证明所有诚实用户在时间间隔 Ir+1 内完成他们的 r 轮。 通过第 5 步的分析,每个诚实验证者 i \(\in\)HSV r,5 都知道 \(\alpha\)r,5 上或之前的 Br 我 + t5 \(\leq\) Tr + \(\lambda\) + t5 = Tr + 8\(\lambda\) + Λ。由于 T r+1 是第一个诚实用户 ir 知道 Br 的时间,所以我们有 T r+1 \(\leq\)T r + 8\(\lambda\) + Λ 根据需要。而且,当玩家ir认识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 \(\ell\)r + Λ,因此所有诚实用户都收到了 mr,1 \(\ell\)r 乘以时间 T r+1 + \(\lambda\)。据此, 所有诚实的用户都知道时间间隔 Ir+1 = [T r+1, T r+1 + \(\lambda\)] 内的 Br。 最后,对于 r = 0,我们实际上有 T 1 \(\leq\)t4 + \(\lambda\) = 6\(\lambda\) + Λ。将一切结合在一起, 引理 5.2 成立。 ■ 5.8 健全性引理 引理 5.3。 [可靠性引理,重述] 假设属性 1-3 对于 r -1 轮成立,当 领导者\(\ell\)r是恶意的,以压倒性的概率,所有诚实的用户都同意同一个区块 Br,T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ 并且所有诚实用户在时间间隔 Ir+1 内都知道 Br。 证明。我们分别考虑协议的两个部分,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。 在这种情况下,根据定义,对于所有验证者 i \(\in\) HSV r,4,bi = 1。也就是说,他们从一个 就二进制 BA 协议中的 1 达成一致。他们可能没有就他们的 vi 达成一致, 但这并不重要,正如我们将在二进制 BA 中看到的那样。 情况 2. 存在一个验证器 ˆi \(\in\)HSV r,4 使得 gˆi = 2。 在这种情况下,我们表明 (1) 对于所有 i \(\in\)HSV r,4,gi \(\geq\)1, (2) 存在一个值 v′,使得 vi = v′ 对于所有 i \(\in\)HSV r,4,并且 (3) 存在有效消息 mr,1 \(\ell\) 来自一些验证者 \(\ell\) \(\in\)SV r,1 使得 v′ = H(Br \(\ell\))。 事实上,由于玩家 ˆi 是诚实的并且设置 gˆi = 2,所以超过所有有效消息的 2/3 mr,3 j 他收到了相同的值 v′ ̸= \(\bot\),并且他设置了 vˆi = v′。 根据引理 5.5 中的性质 (d),对于任何其他诚实的 (r, 4) 验证者 i,它不可能比 超过所有有效消息的 2/3 mr,3 j i′ 收到的值具有相同的值 v′′ ̸= v′。 因此,如果 i 设置 gi = 2,则 i 也必须看到 v′ 的多数票数 > 2/3,并且设置 vi = v′,根据需要。 现在考虑任意验证者 i \(\in\) HSV r,4 且 gi < 2。与 Property 的分析类似 (d) 在引理 5.5 中,因为玩家 ˆi 已经看到 v′ 超过 2/3 多数,超过 1 2|HSV r,3|诚实的 (r, 3)-验证者已签署 v′。因为我已经收到了诚实的 (r, 3) 验证者的所有消息 时间\(\beta\)r,4 我 =\(\alpha\)r,4 我 + t4,他特别收到了超过 1 2|HSV r,3|来自他们的消息 对于 v′。因为 |HSV r,3| > 2|MSV r,3|, i 看到 v′ 占 > 1/3 多数。据此,玩家 i 设 gi = 1,且性质 (1) 成立。 玩家 i 是否一定设置 vi = v′?假设存在一个不同的值 v′′ ̸= \(\bot\),使得 玩家 i 也看到 v′′ 的投票率超过 1/3。其中一些消息可能来自恶意 验证者,但至少其中一个来自某个诚实的验证者 j \(\in\)HSV r,3:确实,因为 |HSV r,3| > 2|MSV r,3|我已收到来自 HSV r,3(一组恶意软件)的所有消息 我收到有效 (r, 3) 消息的验证者占所有有效消息的 < 1/3 他收到的消息。根据定义,玩家 j 必须在所有有效 (r, 2) 消息中看到超过 2/3 的 v′′ 消息 他已经收到了。然而,我们已经发现其他一些诚实的 (r, 3) 验证者已经看到 v′ 的 2/3 多数(因为他们签署了 v′)。根据引理 5.5 的性质 (d),这不能 发生并且这样的值 v'' 不存在。因此玩家 i 必须根据需要设置 vi = v′, 且性质(2)成立。 最后,考虑到一些诚实的 (r, 3) 验证者已经看到超过 2/3 的大多数 v',一些(实际上, 超过一半的)诚实的(r,2)验证者已经签署了 v' 并传播了他们的消息。 通过构建协议,那些诚实的 (r, 2) 验证者必须收到有效的 留言先生,1 \(\ell\) 来自某个玩家 \(\ell\) \(\varepsilon\)SV r,1 且 v′ = H(Br \(\ell\)),因此性质(3)成立。 BBA⋆。 我们再次区分两种情况。 情况 1. 所有验证者 i \(\in\) HSV r,4 都有 bi = 1。 这发生在 GC 的情况 1 之后。作为 |MSV r,4| < tH,在这种情况下 SV r,5 中没有验证器 可以收集或生成位 0 的有效 (r, 4) 消息。因此,HSV r,5 中没有诚实的验证者 会停下来,因为他知道一个非空块 Br。 此外,虽然位 1 至少有 tH 个有效 (r, 4) 消息,但 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 发送的消息遵循引理 5.5。因此,玩家 i 看到 1 的票数超过 2/3 并设置 bi = 1。 在步骤 6 中,这是一个 Coin-Fixed-To-1 步骤,虽然 s′ = 5 满足 s′ −2 ≡0 mod 3,但有 不存在位 0 的有效 (r, 4) 消息,因此 HSV r,6 中的验证器不会停止,因为 他知道一个非空块 Br。然而,当 s′ = 6 时,s′ −2 ≡1 mod 3 且确实存在 |HSV r,5| \(\geq\)tH 来自 HSV r,5 的位 1 的有效 (r, 5) 消息。 对于每个验证者 i \(\in\) HSV r,6,遵循引理 5.5,在时间 \(\alpha\)r,6 或之前 我 + t6 玩家我 已收到来自 HSV r,5 的所有消息,因此我停止传播任何内容并设置 溴 = 溴 ǫ。他的 CERT r 是第 tH 个有效 (r, 5) 消息 mr,5 的集合 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 j) 当他停下来时,他收到了。 接下来,让玩家 i 成为步骤 s > 6 中的诚实验证者或一般诚实用户(即, 非验证者)。类似于引理5.2的证明,玩家i设置Br = Br ǫ 并设定了自己的 CERT r 是 tH 个有效 (r, 5) 消息 mr,5 的集合 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 j) 他有 收到。 最后,与引理 5.2 类似, Tr+1\(\leq\) 分钟 i\(\in\)HSV r,6 \(\alpha\)r,6 我 + t6 \(\leq\) T r + \(\lambda\) + t6 = T r + 10\(\lambda\) + Λ, 并且所有诚实用户在时间间隔 Ir+1 内都知道 Br,因为第一个诚实用户 i 知道 Br 帮助在他的 CERT r 中传播 (r, 5) 消息。 情况 2. 存在一个验证者 ˆi \(\in\)HSV r,4 且 bˆi = 0。 这种情况发生在 GC 的情况 2 之后,并且是更复杂的情况。通过GC分析, 在这种情况下,存在有效消息 mr,1 \(\ell\) 使得 vi = H(Br \(\ell\)) 对于所有 i \(\in\) HSV r,4。注意事项 HSV r,4 中的验证者可能无法就他们的 bi 达成一致。 对于任何步骤 s \(\in\){5, . 。 。 , m + 3} 且验证者 i \(\in\)HSV r,s,根据引理 5.5 玩家 i 将有 收到 HSV r,4 中所有诚实验证者发送的所有消息 \(\cup\) \(\cdots\) \(\cup\)HSV r,s−1 如果他已经等待 时间 ts。我们现在考虑以下事件 E:存在一个步骤 s\(\geq\)5,使得对于第一个 在二进制 BA 中的时间,某个玩家 i\(\in\)SV r,s(无论是恶意的还是诚实的)应该停止 不传播任何东西。我们使用“应该停止”来强调这样一个事实:如果玩家 i 是恶意的,那么他可能会假装按照协议他不应该停止,并且 传播对手选择的消息。 此外,通过协议的构建, (E.a) i能够收集或生成至少 tH 个有效消息 mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ) 对于相同的 v 和 s′,其中 5 \(\leq\) s′ \(\leq\) s 且 s′ −2 ≡0 mod 3;或 (E.b) i 能够收集或生成至少 tH 个有效消息 mr,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ) 对于相同的 s′,其中 6 \(\leq\) s′ \(\leq\) s 且 s′ −2 ≡1 mod 3。 因为诚实的 (r, s' -1) 消息在被发送之前被所有诚实的 (r, s') 验证者接收到。 在步骤 s' 中完成等待,并且因为对手在不迟于 诚实的用户,不失一般性,我们有 s′ = s 并且玩家 i 是恶意的。请注意 我们不要求 E.a 中的值 v 是有效块的 hash :这一点将会变得清楚 分析中,v = H(Br \(\ell\))在此子事件中。 下面我们首先分析事件E之后的情况2,然后表明s的值本质上是 根据 Lr 进行分配(因此事件 E 发生在步骤 m + 3 之前,具有压倒性的优势) 给定参数关系的概率)。首先,对于任何步骤 5 \(\leq\)s < s, 每个诚实的验证者 i \(\in\) HSV r,s 都等待时间 ts 并设置 vi 为大多数投票者 他收到的有效 (r, s−1) 消息。由于玩家 i 已收到所有诚实的 (r, s−1) 消息 遵循引理 5.5,因为 HSV r,4 中的所有诚实验证者都签署了 H(Br \(\ell\)) 以下案例 GC 的 2,并且由于 |HSV r,s−1| > 2|MSV r,s−1|对于每个 s,通过归纳我们有该玩家 i 已设定 vi = H(Br \(\ell\))。 这同样适用于每个诚实的验证者 i \(\in\) HSV r,s,他们不会在不传播的情况下停止 任何东西。现在我们考虑步骤 s 并区分四个子情况。 案例 2.1.a.事件 E.a 发生并且存在一个诚实的验证者 i′ \(\in\)HSV r,s 谁应该 也停止不传播任何东西。 在这种情况下,我们有 s−2 ≡0 mod 3 并且步骤 s 是一个 Coin-Fixed-To-0 步骤。 由 定义,玩家 i′ 已收到至少 tH 条有效的 (r, s−1) 消息,其形式为 (ESIGj(0), ESIGj(v), \(\sigma\)r,s−1 j )。由于 HSV r,s−1 中的所有验证者都签署了 H(Br \(\ell\)) 和 |MSV r,s−1| < tH,我们有 v = H(Br \(\ell\))。 因为至少 tH −|MSV r,s−1| i′ 收到的 0 和 v 的 (r, s−1) 消息中的 \(\geq\)1 条 由 HSV r,s−1 中的验证者在时间 T r +ts−1 \(\geq\)T r +t4 \(\geq\)T r +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 后发送 \(\ell\) +Λ, 玩家 i′ 已收到 mr,1 \(\ell\) 当他收到那些 (r, s−1) 消息时。因此玩家 i′ 停止而不传播任何东西;设 Br = Br \(\ell\);并将他自己的 CERT r 设置为 他收到的 0 和 v 的有效 (r, s−1) 消息集。 接下来,我们证明,任何其他验证器 i \(\in\) 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′ \(\leq\) s * 且 s′ −2 ≡0 mod 3 使得 tH (r, s′ −1) 验证者已签名 一些 v′′ ̸= H(Br \(\ell\)) —确实,|MSV r,s′−1| < tH。因此,HSV r,s 中没有验证者停止 与 Br ̸= Br ϫ 和 Br ̸= Br \(\ell\)。也就是说,如果一个玩家 i \(\in\) HSV r,s 已经停止而没有 传播任何东西,他一定设置了 Br = Br \(\ell\)。 如果玩家 i \(\in\) HSV r,s 已等待时间 ts 并在时间传播消息 \(\beta\)r,s 我 = \(\alpha\)r,s 我 + ts,他已经收到了来自 HSV r,s−1 的所有消息,至少包括 tH -|MSV r,s−1|其中 0 和 v。 如果我看到 1 的票数超过 2/3,那么他 已经看到超过 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 \(\ell\))。因此 i 传播 (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s i ) 如我们所愿 显示。 对于步骤 s+ 1,由于玩家 i′ 已帮助在其 CERT r 中传播消息 在时间 \(\alpha\)r,s 或之前 我′ + ts,HSV r,s+1 中的所有诚实验证者至少收到 tH 位 0 和值 H(Br \(\ell\)) 完成后或之前 等待。此外,HSV r,s+1 中的验证器在收到这些 (r,s−1)- 之前不会停止 消息,因为对于位 1 不存在任何其他有效的 (r, s′ -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 = 溴 \(\ell\):和以前一样,他们收到了 mr,1 \(\ell\) 在他们收到所需的 (r, s−1)-消息之前。20 对于未来步骤中的所有诚实验证者和一般的所有诚实用户来说,也可以这样说。 特别是,他们都知道 Br = Br \(\ell\)在时间间隔 Ir+1 内并且 T r+1 \(\leq\) \(\alpha\)r,s 我′ + ts\(\leq\)T r + \(\lambda\) + ts。 案例2.1.b。事件 E.b 发生并且存在一个诚实的验证者 i′ \(\in\)HSV r,s 谁应该 也停止不传播任何东西。 在这种情况下,我们有 s−2 ≡1 mod 3 并且步骤 s 是一个 Coin-Fixed-To-1 步骤。分析 与案例2.1.a类似,省略了很多细节。 20如果\(\ell\)是恶意的,他可能会派出mr,1 \(\ell\) 迟到了,希望一些诚实的用户/验证者还没有收到 mr,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\)),那些 (r, 2)-验证者都收到了 mr,1 \(\ell\)。作为 对手无法区分验证者和非验证者,他无法瞄准 mr,1 的传播 \(\ell\) 至 (r, 2)-验证者 而不让非验证者看到它。事实上,很有可能超过一半(或一个很好的常数分数) 所有诚实用户都见过 mr,1 \(\ell\) 等待t2后从自己的回合r开始。从现在开始, mr,1 所需时间 \(\lambda\)′ \(\ell\) 到达剩余的诚实用户比 Λ 小得多,为了简单起见,我们不 在分析中写出来。如果 4\(\lambda\) \(\geq\) \(\lambda\)′ 则分析继续进行,没有任何变化:在步骤 4 结束时,所有 诚实的用户会收到 mr,1 \(\ell\)。如果块的大小变得巨大且 4\(\lambda\) < \(\lambda\)′,则在步骤 3 和 4 中, 协议可以要求每个验证者等待 \(\lambda\)′/2 而不是 2\(\lambda\),并且分析继续成立。和之前一样,玩家 i′ 必须至少收到 tH 条有效的 (r, s−1) 消息,其形式为 (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j )。再次根据 s 的定义,不存在步骤 5 \(\leq\)s′ < s,其中 s′ −2 ≡0 mod 3,其中至少 tH (r, s′ −1) 验证者已签署 0 且 相同的 v。因此玩家 i′ 停止而不传播任何东西;设 Br = Br ǫ;和集 他自己的 CERT r 是他收到的第 1 位的有效 (r, s−1) 消息集。 此外,任何其他验证器 i \(\in\) HSV r,s 要么以 Br = Br 停止 \(\varepsilon\) ,或已设定 bi = 1 并传播 (ESIGi(1), ESIGi(vi), \(\sigma\)r,s 我 )。由于玩家 i′ 帮助传播了 在时间 \(\alpha\)r,s 之前,他的 CERT r 中的 (r, s−1) 消息 我′ + ts,再次是所有诚实的验证者 HSV r,s+1 停止而不传播任何东西并设置 Br = Br ǫ .同样,所有诚实的人 用户知道 Br = Br ϫ 在时间间隔 Ir+1 内并且 T r+1 \(\leq\) \(\alpha\)r,s 我′ + ts\(\leq\)T r + \(\lambda\) + ts。 案例 2.2.a.事件 E.a 发生并且不存在诚实的验证者 i′ \(\in\)HSV r,swho 也应该停止而不传播任何东西。 在这种情况下,请注意玩家 i 可能拥有有效的 CERT r i由所需的 tH 组成 (r, s−1) - 对手能够收集或生成的消息。然而,恶意 验证者可能无助于传播这些消息,因此我们不能得出结论说诚实的人 用户将在 \(\lambda\) 时间内收到它们。事实上,|MSV r,s−1|这些消息可能来自 恶意(r,s−1)验证者,他们根本不传播他们的消息,只发送 在步骤 s 中将它们发送给恶意验证者。 与情况 2.1.a 类似,这里我们有 s−2 ≡0 mod 3,步骤 s 是一个 Coin-Fixed-To-0 步骤, 以及 CERT r 中的 (r, s−1) 消息 i 代表位 0 且 v = H(Br \(\ell\))。确实,大家都诚实 (r, s−1)-验证者对 v 进行签名,因此对手无法生成 tH 条有效的 (r, s−1)-消息 对于不同的 v′。 此外,所有诚实的 (r, s) 验证者都等待了 ts 时间,并且没有看到 > 2/3 的多数 对于位 1,同样是因为 |HSV r,s−1| + 4|MSV r,s−1| < 2n。因此,每一个诚实的验证者 i \(\in\)HSV r,s设 bi = 0, vi = H(Br \(\ell\)) 以多数票通过,并传播 mr,s 我 = (ESIGi(0)、ESIGi(H(Br \(\ell\))), \(\sigma\)r,s 我 ) 在时间 \(\alpha\)r,s 我 + ts。 现在考虑步骤 s+ 1 中的诚实验证者(这是一个 Coin-Fixed-To-1 步骤)。如果 攻击者实际上在 CERT r 中发送消息 i对其中一些并导致他们 停止,然后类似于情况2.1.a,所有诚实的用户都知道Br = Br \(\ell\)在时间间隔内 Ir+1 和 T r+1 \(\leq\)T r + \(\lambda\) + ts+1。 否则,步骤 s+1 中的所有诚实验证者都已收到 0 和 的所有 (r, s) 消息 H(溴 \(\ell\)) 来自 HSV r,s 在等待时间 ts+1 后,这导致 > 2/3 多数,因为 |HSV r,s| > 2|MSV r,s|。因此,HSV r,s+1 中的所有验证者将其消息传播为 0 和 H(Br \(\ell\))相应地。请注意,HSV r,s+1 中的验证器不会以 Br = Br 停止 \(\ell\), 因为步骤 s+ 1 不是一个 Coin-Fixed-To-0 步骤。 现在考虑步骤 s+2 中的诚实验证者(这是一个真正翻转硬币的步骤)。 如果攻击者在 CERT r 中发送消息 i对其中一些人并导致他们停止, 那么所有诚实的用户都知道 Br = Br \(\ell\)在时间间隔 Ir+1 内并且 T r+1 \(\leq\)T r + \(\lambda\) + ts+2。否则,步骤 s+ 2 中的所有诚实验证者都已收到所有 (r, s+ 1) 消息 0 和 H(Br \(\ell\)) 在等待时间 ts+2 后从 HSV r,s+1 中生成,这导致 > 2/3 多数。 因此,它们都传播 0 和 H(Br \(\ell\)) 相应地:他们就是这么做的 在这种情况下,不是“抛硬币”。再次注意,它们不会停止传播, 因为步骤 s+ 2 不是一个 Coin-Fixed-To-0 步骤。 最后,对于步骤 s+3 中的诚实验证者(这是另一个 Coin-Fixed-To-0 步骤),所有 他们中的至少 tH 人会收到 0 和 H(Br \(\ell\)) 来自 HSV s+2, 如果他们真的等待时间ts+3。因此,无论对手是否发送消息 在 CERT 中 i对于其中任何一个,HSV r,s+3 中的所有验证器都以 Br = Br 停止 \(\ell\),无 传播任何东西。根据对手的行为方式,其中一些人可能会 他们自己的 CERT r 由 CERT r 中的 (r, s−1) 消息组成 i,其他有 他们自己的 CERT r 由那些 (r, s+ 2) 消息组成。无论如何,所有诚实的用户 知道 Br = Br \(\ell\)在时间间隔 Ir+1 内并且 T r+1 \(\leq\)T r + \(\lambda\) + ts+3。 案例 2.2.b。事件 E.b 发生并且不存在诚实验证者 i′ \(\in\)HSV r,swho 也应该停止而不传播任何东西。 本案例的分析与案例2.1.b和案例2.2.a类似,因此有很多细节 已被省略。特别是,CERT i 由 tH 个所需的 (r, s−1) 消息组成 对于对手能够收集或生成的位 1,s−2 ≡1 mod 3,步骤 s 是 a Coin-Fixed-To-1 步骤,并且任何诚实的 (r, s) 验证者都无法看到 0 的多数票超过 2/3。 因此,每个验证者 i \(\in\) HSV r,s 设置 bi = 1 并传播 mr,s 我 = (ESIGi(1), ESIGi(vi), \(\sigma\)r,s 我 ) 在时间 \(\alpha\)r,s 我 + ts。与案例 2.2.a 类似,最多多 3 个步骤(即协议 到达步骤 s+3,这是另一个 Coin-Fixed-To-1 步骤),所有诚实的用户都知道 Br = Br に 在时间间隔Ir+1内。而且,T r+1 可以\(\leq\)T r+\(\lambda\)+ts+1,或者\(\leq\)T r+\(\lambda\)+ts+2, 或 \(\leq\)T r + \(\lambda\) + ts+3,取决于诚实验证者第一次能够停止的时间 无需传播。 结合四个子情况,我们可以得到在时间间隔内所有诚实用户都知道 Br Ir+1,与 在情况 2.1.a 和 2.1.b 中,T r+1 \(\leq\)T r + \(\lambda\) + ts,并且 在情况 2.2.a 和 2.2.b 中,T r+1 \(\leq\)T r + \(\lambda\) + ts+3。 对于情况 2,它仍然是上限 s,因此 T r+1,我们通过考虑如何做到这一点 很多时候,Coin-Genuinely-Flipped 步骤实际上是在协议中执行的:也就是说, 一些诚实的验证者实际上已经掷硬币了。 特别是,任意固定一个硬币真实翻转步骤 s′(即 7 \(\leq\) s′ \(\leq\) m + 2 且 s′ −2 ≡2 mod 3),令 \(\ell\)′ \(\triangleq\)arg minj\(\in\)SV r,s′−1 H(\(\sigma\)r,s′−1 j )。现在让我们假设 s′ < s, 因为否则的话,根据之前的说法,没有诚实的验证者会在步骤 s' 中实际掷硬币 讨论。 根据 SV r,s′−1 的定义,\(\ell\)′ 凭证的 hash 值也是其中最小的 PKr−k 中的所有用户。由于 hash 函数是随机的 oracle,理想情况下玩家 \(\ell\)′ 是诚实的 概率至少为 h。正如我们稍后将展示的,即使对手尽力预测 随机 oracle 的输出并倾斜概率,玩家 \(\ell\)′ 仍然对概率诚实至少 ph = h2(1 + h −h2)。下面我们考虑确实发生这种情况的情况:也就是说, \(\ell\)′ \(\varepsilon\) HSV r,s′−1。 请注意,每个诚实的验证者 i \(\in\) HSV r,s′ 已收到来自 HSV r,s′−1 的所有消息 时间\(\alpha\)r,s′ 我 + ts′。 如果玩家 i 需要掷硬币(即,他没有看到超过 2/3 的多数票) 相同的位 b \(\in\){0, 1}),那么他设置 bi = lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ ))。如果存在另一个诚实的人 验证者 i′ \(\in\)HSV r,s′ 已经看到 b \(\in\){0, 1} 位的超过 2/3 多数,然后通过属性 引理 5.5 的 (d),HSV r,s' 中没有诚实的验证者会暂时看到 > 2/3 多数 b′ ̸= b。由于 lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )) = b 以 1/2 的概率,HSV r,s′ 中所有诚实的验证者都达到 以 1/2 的概率就 b 达成一致。当然,如果这样的验证器 i′ 不存在,那么所有 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 = h2(1+h−h2) 2 。而且, 通过像以前一样的多数投票归纳,HSV r,s' 中所有诚实的验证者都有他们的 vi 集 为 H(Br \(\ell\))。因此,一旦在步骤 s' 中就 b 达成一致,则 T r+1 为 \(\leq\)T r + \(\lambda\) + ts′+1 或 \(\leq\)T r + \(\lambda\) + 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 尽可能多,他应该什么时候进行步骤 s 可能吗?我们甚至可以假设对手提前知道 Lr 的实现。如果 s> 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 + \(\lambda\) + ts\(\leq\)T r + \(\lambda\) + ts′+2。 如果 s< s′ -3 —即 s 在倒数第二个硬币真实翻转步骤之前 — 则通过 案例2.2.a和2.2.b的分析, T r+1 \(\leq\)T r + \(\lambda\) + ts+3 < T r + \(\lambda\) + 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 + \(\lambda\) + ts+3 \(\leq\)T r + \(\lambda\) + ts′+2。总而言之,无论 s 是什么,我们都有 T r+1 \(\leq\)T r + \(\lambda\) + ts′+2 = T r + \(\lambda\) + t3Lr+6 = Tr + \(\lambda\) + (2(3Lr + 6) −3)\(\lambda\) + Λ = T r + (6Lr + 10)\(\lambda\) + Λ, 正如我们想要展示的那样。最坏的情况是当 s*= s′ −1 且情况 2.2.b 发生时。 结合二进制 BA 协议的情况 1 和情况 2,引理 5.3 成立。 ■ 5.9 种子 Qr 的安全性和诚实领导者的概率 引理 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,对手以压倒性的概率获胜 没有在 r −k 轮时向随机 oracle 查询 Qr−1。 证明。我们通过归纳法进行。假设对于每一轮 \(\gamma\) < r,对手没有查询 Q\(\gamma\)−1 到第 \(\gamma\) -k.21 轮的随机 oracle 考虑以下心理游戏 对手在 r −k 轮尝试预测 Qr−1。 在每轮的第 1 步中 \(\gamma\) = r −k, 。 。 。 , r −1, 给定一个特定的 Q\(\gamma\)−1,未查询到随机数 oracle,根据 hash 值 H(SIGi(\(\gamma\), 1, Q\(\gamma\)−1)) 对玩家 i \(\in\)PK\(\gamma\)−k 进行排序 我们越来越多地获得 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\))。由于对手无法伪造签名 从对手的角度来看,Q\(\gamma\) 的 \(\ell\) \(\gamma\) 是随机均匀分布的,并且,除了 以指数小概率,22 在 r −k 轮没有被查询到 H。 由于每个 Q\(\gamma\)+1,Q\(\gamma\)+2,. 。 。 、Qr−1 分别是 H 与 Q\(\gamma\)、Q\(\gamma\)+1、... 的输出。 。 。 , Qr−2 作为输入之一, 它们对对手来说都是随机的,并且对手无法在以下时间查询 Qr−1 到 H 轮 r −k。 因此,对手可以在回合中以良好概率预测 Qr−1 的唯一情况 r−k 是当所有领导者 \(\ell\)r−k, . 。 。 , \(\ell\)r−1 是恶意的。再次考虑一轮 \(\gamma\) \(\in\){r−k 。 。 。 , r−1} 以及由相应的 hash 值引起的 PK\(\gamma\)−k 上的随机排列。如果对于某些 x \(\geq\)2,排列中的前 x −1 个用户都是恶意的,第 x 个是诚实的,那么 对手对 Q\(\gamma\) 有 x 种可能的选择: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 对于对手来说变得不可预测。 对手应该采用 Q\(\gamma\) 的上述 x 个选项中的哪一个?去帮助对手 回答这个问题,在心理游戏中我们实际上让他比实际更强大 是,如下。首先,实际上,对手无法计算诚实用户的 hash 签名,因此无法确定对于每个Q\(\gamma\),一开始的恶意用户数x(Q\(\gamma\)) 由 Q\(\gamma\) 引起的第 \(\gamma\) + 1 轮中的随机排列。在心理游戏中,我们给他 免费计算 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) 如下。 • 对于任何y \(\geq\)2,P(0, 0) = 1 且P(0, y) = 0。也就是说,对手一旦第一次失败,游戏就失败了。 排列中的用户变得诚实。 • 对于任何x \(\geq\)2,P(x, 0) = hx。也就是说,以概率 hx,所有 x 随机排列都有 他们的第一个用户是诚实的,因此对手在下一轮游戏中失败。 • 对于任何 x \(\geq\)2 且 y \(\geq\)2,P(x, y) 是 x 随机排列中的概率 由 Q\(\gamma\) 的 x 个选项引发,开始时的最长恶意用户序列 其中一些是 y −1,因此对手在下一轮中对于 Q\(\gamma\)+1 有 y 个选项。也就是说, P(x, y) = y−1 X 我=0 (1−h)ih !x - y−2 X 我=0 (1−h)ih !x = (1 −(1 −h)y)x −(1 −(1 −h)y−1)x。 请注意,状态 0 是过渡矩阵 P 中唯一的吸收状态,其他所有状态 x 具有变为 0 的正概率。我们感兴趣的是确定 k 的上限 马尔可夫链以压倒性的概率收敛到 0 所需的轮数:也就是说,没有 无论链从哪个状态开始,对手都以压倒性的概率输掉比赛 并且无法在 r −k 轮预测 Qr−1。 考虑两轮后的转移矩阵 P (2) \(\triangleq\)P \(\cdot\) P。容易看出 P (2)(0, 0) = 1 对于任何 x \(\geq\)2,P (2)(0, x) = 0。对于任何 x \(\geq\)2 且 y \(\geq\)2,当 P(0, y) = 0 时,我们有 P (2)(x, y) = P(x, 0)P(0, y) + X z\(\geq\)2 P(x, z)P(z, y) = X z\(\geq\)2 P(x,z)P(z,y)。令 ¯h \(\triangleq\)1 −h,我们有 P(x, y) = (1 −́hy)x −(1 −́hy−1)x 和 P (2)(x, y) = X z\(\geq\)2 [(1−́hz)x−(1−́hz−1)x][(1−́hy)z−(1−́hy−1)z]。 下面我们计算 P (2)(x,y) 的极限 P(x,y) 当 h 变为 1 时,即 ¯h 变为 0。请注意,最高 P(x, y) 中 ̅h 的阶为 ̅hy−1,系数为 x。据此, 林 小时→1 P (2)(x,y) P(x,y) = 林 ́h \(\to\) 0 P (2)(x,y) P(x,y) = 林 ́h \(\to\) 0 P (2)(x,y) 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 2x ̄hy x́hy−1 = lim h \(\to\) 0 2h = 0。 当 h 足够接近 1,23 时,我们有 P (2)(x,y) P(x,y) \(\leq\)1 2 对于任意 x \(\geq\)2 且 y \(\geq\)2。通过归纳法,对于任何 k > 2,P (k) \(\triangleq\)P k 使得 • P (k)(0, 0) = 1,对于任何 x \(\geq\)2,P (k)(0, x) = 0,并且 • 对于任意 x \(\geq\)2 且 y \(\geq\)2, P (k)(x, y) = P (k−1)(x, 0)P(0, y) + X z\(\geq\)2 P (k−1)(x, z)P(z, y) = X z\(\geq\)2 P (k−1)(x, z)P(z, y) \(\leq\) X z\(\geq\)2 P(x,z) 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 开始。虽然这样的状态 y 有很多,但很容易看出 林 y→+∞ P(x,y) P(x, y + 1) = 林 y→+∞ (1−́hy)x−(1−́hy−1)x (1−́hy+1)x−(1−́hy)x= 林 y→+∞ ́hy−1 -́hy ́hy -́hy+1 = 1 h = 1 1 小时。 因此,转移矩阵 P 的每一行 x 作为几何序列以速率减小 1 1−h > 2 当y足够大时,P(k)也是如此。因此,当 k 足够大但仍然 log1/2 F, P 量级 对于任何 x \(\geq\)2,y\(\geq\)2 P (k)(x, y) < F。也就是说,以压倒性的概率 对手输掉了比赛并且未能在 r −k 轮预测 Qr−1。对于 h \(\in\)(2/3, 1],更多 复分析表明存在一个略大于 1/2 的常数 C,因此满足 取 k = O(logC F)。因此引理 5.6 成立。 ■ 引理 5.4。 (重述)给定 r 之前每轮的属性 1-3,Lr 的 ph = h2(1 + h −h2), 并且领导者 \(\ell\)r 是诚实的,概率至少为 ph。 23例如,根据参数的具体选择,h = 80%。

证明。遵循引理 5.6,对手无法在 r −k 轮预测 Qr−1,除非 概率可以忽略不计。请注意,这并不意味着诚实领导者的概率为 h 每轮。事实上,给定 Qr−1,取决于在开始时有多少恶意用户 PKr−k 的随机排列,对手对于 Qr 和 Qr 可能有多个选项 因此可以增加第 r + 1 轮中恶意领导者的概率——我们再次给他 引理5.6中一些不切实际的优点,以简化分析。 然而,对于每个 Qr−1 ,对手在 r −k 轮时没有向 H 查询,对于 任何 x \(\geq\)1,第一个诚实用户出现在结果中的位置 x 的概率为 (1 −h)x−1h PKr−k 的随机排列。当 x = 1 时,第 r + 1 轮中诚实领导者的概率为 确实是h;而当 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) 的概率是诚实的。 类似地,在每个硬币真实翻转步骤 s 中,该步骤的“领导者”——即验证者 在 SV r,s 中,其凭证具有最小 hash 值,其诚实概率至少为 h2(1 + h−h2)。因此 Lr 的 ph = h2(1 + h −h2) 且引理 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 ' 版本。 诚实的大多数用户假设:每个 PKr 中超过 2/3 的用户是诚实的。 在第 8 节中,我们展示了如何用所需的诚实多数来替换上述假设 金钱假设。 6.1 Algorand ′ 的附加符号和参数 2 符号 \(\mu\) \(\varepsilon\)Z+:步数的实用上限,以压倒性的概率, 实际上将在一轮中进行。 (正如我们将看到的,参数 \(\mu\) 控制有多少个短暂的 用户为每轮提前准备的密钥。) • Lr:随机变量,代表看到 1 所需的伯努利试验次数,当每次试验 试验次数为 1,概率为 ph 2. Lr 将用于确定生成所需时间的上限 块 Br。 • tH:第 r 轮步骤 s > 1 中诚实验证者数量的下界,使得 压倒性概率(给定 n 和 p),SV r,s 中有 > tH 个诚实验证者。 参数 • 各种参数之间的关系。 — 对于第 r 轮的每一步 s > 1,选择 n 使得以压倒性的概率,

|HSV r,s| > tH 和 |HSV r,s| + 2|MSV r,s| <2tH。 请注意,上面的两个不等式一起意味着 |HSV r,s| > 2|MSV r,s|:即有 是选定验证者中 2/3 的诚实多数。 h的值越接近1,n需要越小。特别是,我们使用(变体 of) Chernoffbounds 以确保所需条件以压倒性概率成立。 • 重要参数的选择示例。 — F = 10−18。 — n 约 4000,tH 约 0.69n,k = 70。 6.2 在 Algorand ' 中实现临时密钥 2 回想一下,验证者 i \(\in\)SV r,s 对他的消息 mr,s 进行了数字签名 我 r 轮中步骤 s 的数量,相对于 临时公钥 pkr,s i ,使用临时秘密密钥 skr,s 我 他立即摧毁 使用后。 当一轮可能采取的步数受到给定的限制时 整数 \(\mu\),我们已经了解了如何实际处理临时密钥。例如,当我们 已在 Algorand ' 中解释 1(其中 \(\mu\) = m + 3),处理所有可能的临时密钥,从 一轮 r′ 到一轮 r′ + 106,i 生成一对 (PMK, SMK),其中 PMK 公共主控 基于身份的签名方案的密钥,SMK 其相应的秘密主密钥。用户我 公开 PMK 并使用 SMK 生成每个可能的临时公钥的秘密密钥 (并在这样做后销毁 SMK)。相关的 i 的临时公钥集 轮次为 S = {i} \(\times\) {r′, . 。 。 , r′ + 106} \(\times\) {1, . 。 。 ,μ}。 (正如所讨论的,随着 r' + 106 轮的临近, 我“刷新”了他的配对(PMK、SMK)。) 实际上,如果 \(\mu\) 足够大,则一轮 Algorand ′ 2 不会采取超过 \(\mu\) 步。在 然而,原则上,存在一种极小的可能性,即对于某一轮 r 的步数 实际取值将超过μ。当这种情况发生时,我将无法签署他的信息,先生 我 为了 任何步骤 s > \(\mu\),因为他提前为 r 轮准备了 \(\mu\) 个密钥。而且,他 正如之前所讨论的,无法准备和公开新的临时密钥存储。事实上,要做 因此,他需要在新块中插入新的公共主密钥 PMK'。但是,应该舍入 r 采取越来越多的步骤,不会生成新的块。 然而,解决方案是存在的。例如,我可以使用 r 轮的最后一个临时密钥,pkr,μ 我 , 如下。他为 r 轮生成另一个密钥对存储 — 例如,通过 (1) 生成另一个 主密钥对(PMK、SMK); (2) 使用这对生成另一个,例如 106 个临时密钥, 斯克 r,μ+1 我 , . 。 。 , sk r,μ+106 我 ,对应第r轮的步骤μ+1,...,μ+106; (3) 使用 skr,μ 我 以数字方式 符号 PMK(以及任何 (r, \(\mu\)) 消息,如果 i \(\in\)SV r,\(\mu\)),相对于 pkr,\(\mu\) 我 ; (4) 擦除 SMK 和 skr,μ 我 。 我是否应该成为步骤 \(\mu\) + s 中的验证者,其中 s \(\in\){1, . 。 。 , 106},然后我对他的 (r, \(\mu\) + s)- 进行数字签名 消息 mr,μ+s 我 相对于他的新关键PK r,μ+s 我 = (i, r, \(\mu\) + s)。当然,要验证这个签名 对于 i,其他人需要确定该公钥对应于 i 的新公共主密钥 PMK。 因此,除了这个签名之外,i 还传输他相对于 pkr,μ 的 PMK 数字签名 我 。 当然,如果 r 轮继续,这种方法可以根据需要重复多次 越来越多的步骤!最后一个临时密钥用于验证新的主公钥 密钥,因此也是 r 轮的临时密钥的另一个存储。等等。6.3 实际协议 Algorand ′ 2 再次回想一下,在 r 轮的每一步 s 中,验证者 i \(\in\)SV r,s 使用他的长期公开秘密 生成其凭证的密钥对 \(\sigma\)r,s 我 \(\triangleq\)SIGi(r, s, Qr−1),以及 SIGi Qr−1 如果 s = 1。 验证者 i 使用他的临时密钥对,(pkr,s 我,skr,s i ), 签署任何其他可能的消息 m 需要。为了简单起见,我们写 esigi(m),而不是 sigpkr,s i (m),表示 i 的固有短暂性 这一步中m的签名,并写ESIGi(m)而不是SIGpkr,s i (m) \(\triangleq\)(i, m, esigi(m))。 第 1 步:区块提案 对每个用户 i \(\in\)PKr−k 的说明:用户 i 一旦完成,就开始自己的第 r 轮步骤 1 CERT r−1,它允许 i 明确计算 H(Br−1) 和 Qr−1。 • 用户i 使用Qr−1 来检查i 是否属于SV r,1。如果 i /\(\varepsilon\)SV r,1,他对步骤 1 不执行任何操作。 • 如果i \(\in\)SV r,1,也就是说,如果i 是潜在的领导者,那么他会执行以下操作。 (a) 如果我见过 B0,. 。 。 , Br−1 本身(任何 Bj = Bj ϫ 可以很容易地从它的 hash 值中推导出来 在 CERT j 中,因此被假定为“已看到”),然后他收集 R 轮付款 到目前为止已传播给他并计算最大支付集 PAY r 我来自他们。 (b) 如果我还没有看到所有 B0,. 。 。 , Br−1 还没有,那么他设置 PAY r 我=\(\emptyset\)。 (c) 接下来,我计算他的“候选块”Br 我 = (r, 支付 r i , SIGi(Qr−1), H(Br−1))。 (c) 最后,我计算消息 mr,1 我 = (Br i , esigi(H(Br i )), \(\sigma\)r,1 i ), 毁掉了他短暂的 密钥 skr,1 i ,然后传播两条消息 mr,1 我 和 (SIGi(Qr−1), \(\sigma\)r,1 我), 分别但同时.a a当 i 是领导者时,SIGi(Qr−1) 允许其他人计算 Qr = H(SIGi(Qr−1), r)。

选择性传播 为了缩短步骤 1 和整个回合的全局执行时间,重要的是 (r, 1)- 消息是有选择地传播的。也就是说,对于系统中的每个用户 j, • 对于他收到并成功验证的第一条 (r, 1) 消息,a 是否包含 一个区块 or 只是一个凭证和 Qr−1 的签名,玩家 j 像往常一样传播它。 • 对于玩家 j 收到并成功验证的所有其他 (r, 1) 消息,他传播 仅当它包含的凭证的 hash 值是 hash 值中最小的时候才使用它 他已收到并成功验证的所有 (r, 1) 消息中包含的凭据 远。 • 然而,如果j 收到两个不同的消息,其形式为mr,1 我 来自同一个玩家 i,b he 无论 i 凭证的 hash 值是多少,都会丢弃第二个。 请注意,在选择性传播下,每个潜在领导者 i 传播他的信息是有用的 凭证 \(\sigma\)r,1 我 与 mr,1 分开 i :c 这些小消息的传输速度比块快,确保 及时传播 mr,1 i 所包含的凭据具有较小的 hash 值,而 使 hash 值较大的那些快速消失。 a 也就是说,所有签名都是正确的,如果是 mr,1 的形式 i ,该块及其 hash 均有效 —尽管 j 不检查包含的支付集对于 i 是否是最大的。 b这意味着我是恶意的。 c我们感谢 Georgios Vlachos 的建议。第二步:分级共识协议GC的第一步 对每个用户 i \(\in\)PKr−k 的说明:用户 i 一旦完成,就开始自己的第 r 轮步骤 2 CERT r−1。 • 用户i 等待的最长时间为t2 \(\triangleq\) \(\lambda\) + Λ。在等待期间,我的行为如下。 1. 等待时间 2\(\lambda\) 后,他找到用户 \(\ell\),使得 H(\(\sigma\)r,1 \(\ell\)) \(\leq\)H(\(\sigma\)r,1 j) 对于所有人 凭证 \(\sigma\)r,1 j 这是他收到的已成功验证的 (r, 1) 消息的一部分 到目前为止.a 2.如果 他 有 收到 一个 块 Br−1, 其中 比赛 的 hash 值 H(Br−1) H(Br−1) 包含在 CERT r−1,b 中,并且如果他已从 \(\ell\) 收到有效消息 mr,1 \(\ell\) = (Br \(\ell\), esig\(\ell\)(H(Br \(\ell\))), \(\sigma\)r,1 \(\ell\)),c 然后 i 停止等待并设置 v′ 我 \(\triangleq\)(H(Br \(\ell\)),\(\ell\))。 3. 否则,当时间t2用完时,i设置v′ 我\(\triangleq\) \(\bot\)。 4. 当v′的值 i 已设置,i 根据 CERT r−1 计算 Qr−1 并检查是否 i \(\in\)SV r,2 与否。 5. 如果 i \(\in\)SV r,2,则 i 计算消息 mr,2 我 \(\triangleq\)(ESIGi(v′ i), \(\sigma\)r,2 i ),d 摧毁了他的短暂 密钥 skr,2 i ,然后传播 mr,2 我。 否则,我会停止而不传播 任何东西。 a本质上,用户i私下决定r轮的领导者是用户\(\ell\)。 b当然,如果CERT r−1 表明 Br−1 = Br−1 に ,那么当他收到时,我就已经“收到”了 Br−1 CERT r−1。 c再次,玩家\(\ell\)的签名和hashes都已成功验证,并且PAY r \(\ell\) 溴 \(\ell\) 是有效的支付集 回合 r — 尽管我不检查是否 PAY r \(\ell\) 是否为 \(\ell\) 的最大值。如果溴 \(\ell\)包含一个空的支付集,那么 实际上,在验证 Br 是否存在之前,i 不需要看到 Br−1 \(\ell\) 是否有效。 d消息 mr,2 我 表示玩家 i 考虑 v′ 的第一个分量 i 是下一个块的 hash ,或者 认为下一个块是空的。

步骤3:GC第二步 对每个用户 i \(\in\)PKr−k 的说明:用户 i 一旦完成,就开始自己的第 r 轮步骤 3 CERT r−1。 • 用户i 等待的最长时间为t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ。在等待时,我充当 接下来。 1.如果存在一个值v使得他至少收到了tH条有效消息mr,2 j 的 形式 (ESIGj(v), \(\sigma\)r,2 j ), 没有任何矛盾, a 然后他停止等待并设置 v′ = v。 2. 否则,当时间 t3 结束时,他设置 v′ = \(\bot\)。 3. 设置 v′ 的值后,i 根据 CERT r−1 计算 Qr−1 并检查是否 i \(\in\)SV r,3 与否。 4. 如果 i \(\in\)SV r,3,则 i 计算消息 mr,3 我 \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 i ), 毁掉他的 临时密钥 skr,3 i ,然后传播 mr,3 我。 否则,我就停止了 传播任何东西。 a即他没有收到两条分别包含ESIGj(v)和不同ESIGj(ˆv)的有效消息, 来自玩家 j。从现在开始,除了稍后定义的结束条件外,每当诚实的玩家 想要给定形式的消息,相互矛盾的消息永远不会被计算或被认为是有效的。

步骤4:GC的输出和BBA的第一步⋆ 对每个用户 i \(\in\)PKr−k 的说明:用户 i 一旦他开始他自己的第 r 轮步骤 4 完成他自己的第3步。 • 用户i 等待的最长时间为2\(\lambda\).a 在等待期间,i 的操作如下。 1. 他计算 GC 的输出 vi 和 gi,如下所示。 (a) 如果存在一个值 v′ ̸= \(\bot\) 使得他至少收到了 tH 条有效消息 先生,3 j = (ESIGj(v′), \(\sigma\)r,3 j ),然后他停止等待并设置 vi \(\triangleq\)v′ 和 gi \(\triangleq\)2。 (b) 如果他至少收到了 tH 条有效消息 mr,3 j = (ESIGj(\(\bot\)), \(\sigma\)r,3 j ),然后他停下来 等待并设置 vi \(\triangleq\) \(\bot\) 和 gi \(\triangleq\)0.b (c) 否则,当时间 2\(\lambda\) 耗尽时,如果存在值 v′ ̸= \(\bot\),则有 至少收到 ⌈tH 2 ⌉有效消息 mr,j j = (ESIGj(v′), \(\sigma\)r,3 j ), 然后他设置 vi \(\triangleq\)v′ 和 gi \(\triangleq\)1.c (d) 否则,当时间 2\(\lambda\) 耗尽时,他设置 vi \(\triangleq\) \(\bot\) 和 gi \(\triangleq\)0。 2. 当vi和gi的值设置完毕后,i计算BBA⋆的输入bi,如下: 如果 gi = 2,则 bi \(\triangleq\)0,否则 bi \(\triangleq\)1。 3. i 根据 CERT r−1 计算 Qr−1 并检查 i 是否 \(\in\)SV r,4 。 4. 如果 i \(\in\)SV r,4,他计算消息 mr,4 我 \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 i ), 毁掉他的 临时密钥 skr,4 i ,并传播 mr,4 我。否则,我会停止而不传播 任何东西。 因此,自 i 开始第 r 轮步骤 1 以来的最大总时间可能是 t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ。 b 步骤(b)是否在协议中并不影响其正确性。然而,步骤(b)的存在 如果有足够多的第 3 步验证者“签名\(\bot\)”,则第 4 步可以在不到 2\(\lambda\) 的时间内结束。 c可以证明,这种情况下的v′,如果存在的话,一定是唯一的。步骤 s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ≡0 mod 3:BBA⋆的硬币固定至 0 步骤 对每个用户 i \(\in\)PKr−k 的说明:用户 i 一旦他开始,就开始他自己的第 r 轮步骤 s 完成他自己的步骤 s -1。 • 用户i 等待的最长时间为2\(\lambda\).a 在等待期间,i 的操作如下。 – 结束条件 0:如果在任意点存在字符串 v ̸= \(\bot\) 和步骤 s′,使得 (a) 5 \(\leq\) s′ \(\leq\) s, s′ −2 eq 0 mod 3 — 也就是说,步骤 s′ 是一个 Coin-Fixed-To-0 步骤, (b) i 已收到至少 tH 条有效消息 mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ),b 和 (c) i 已收到有效消息 (SIGj(Qr−1), \(\sigma\)r,1 j ) 其中 j 是第二个 v 的分量, 然后,i 停止等待并结束自己对步骤 s 的执行(实际上是 r 轮) 立即作为 (r, s) 验证者传播任何内容;将 H(Br) 设为第一个 v 的分量;并将自己的 CERT r 设置为消息集 mr,s′−1 j 步骤(b)的 与 (SIGj(Qr−1), \(\sigma\)r,1 j).c – 结束条件 1:如果在任意点存在步骤 s′,使得 (a’) 6 \(\leq\)s′ \(\leq\)s, s′ -2 eq 1 mod 3 — 即,步骤 s′ 是 Coin-Fixed-To-1 步骤,并且 (b’) i 已收到至少 tH 条有效消息 mr,s’−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ),d 然后,i 停止等待并结束自己对步骤 s 的执行(实际上是第 r 轮) 不作为 (r, s) 验证者传播任何内容;设 Br = Br \(\varepsilon\) ;并设定了自己的 CERT r 是消息集 mr,s′−1 j 子步骤(b’)的。 – 如果 在 任何 点 他 有 收到 在 至少 tH 有效 先生,s−1 j 的 的 的 形式 (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ),然后他停止等待并设置 bi \(\triangleq\)1。 – 如果 在 任何 点 他 有 收到 在 至少 tH 有效 先生,s−1 j 的 的 的 形式 (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ),但他们在同一个 v 上不一致,然后他停下来 等待并设置 bi \(\triangleq\)0。 – 否则,当时间 2\(\lambda\) 耗尽时,i 设置 bi \(\triangleq\)0。 – 设置值 bi 后,i 根据 CERT r−1 计算 Qr−1 并检查是否 i \(\in\)SV r,s。 – 如果 i \(\in\)SV r,s,i 计算消息 mr,s 我 \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) 与 vi 是 他在步骤 4 中计算出的值会破坏他的临时密钥 skr,s 我,然后 传播先生,s 我。否则,我会停止而不传播任何内容。 因此,自 i 开始第 r 轮第 1 步以来的最大总时间可以是 ts \(\triangleq\)ts−1 + 2\(\lambda\) = (2s -3)\(\lambda\) + Λ。 b 即使玩家 i 也收到了来自 j 的签名为 1 的消息,来自玩家 j 的此类消息也会被计数。 结束条件1类似。如分析所示,这是为了确保所有诚实的用户都知道 CERT r 彼此之间的时间间隔为 \(\lambda\)。 cUser i 现在知道 H(Br) 并且他自己的 r 轮结束。他只需要等到实际的区块 Br 出现 传播给他,这可能需要一些额外的时间。他仍然以普通用户的身份帮助传播消息, 但不会作为 (r, s) 验证者启动任何传播。特别是,他帮助传播了所有信息 他的 CERT r,这对于我们的协议来说已经足够了。注意,他还应该为二进制 BA 协议设置 bi \(\triangleq\)0,但是 无论如何,在这种情况下不需要 bi。类似的事情适用于所有未来的指示。 d在这种情况下,vj 是什么并不重要。 65步骤 s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ≡1 mod 3:BBA⋆的硬币固定到 1 步骤 对每个用户 i \(\in\)PKr−k 的说明:用户 i 一旦他开始,就开始他自己的第 r 轮步骤 s 完成他自己的步骤 s -1。 • 用户i 等待的最长时间为2\(\lambda\)。在等待期间,我的行为如下。 – 结束条件 0:与 Coin-Fixed-To-0 步骤中的指令相同。 – 结束条件 1:与 Coin-Fixed-To-0 步骤中的指令相同。 – 如果 在 任何 点 他 有 收到 在 至少 tH 有效 先生,s−1 j 的 的 的 形式 (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ),然后他停止等待并设置 bi \(\triangleq\)0.a – 否则,当时间 2\(\lambda\) 耗尽时,i 设置 bi \(\triangleq\)1。 – 设置值 bi 后,i 根据 CERT r−1 计算 Qr−1 并检查是否 i \(\in\)SV r,s。 – 如果 i \(\in\)SV r,s,i 计算消息 mr,s 我 \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) 与 vi 是 他在步骤 4 中计算出的值会破坏他的临时密钥 skr,s 我,然后 传播先生,s 我。否则,我会停止而不传播任何内容。 a注意,接收到签名为 1 的 tH 个有效 (r, s −1) 消息意味着结束条件 1。 步骤 s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 mod 3:BBA⋆的硬币真实翻转步骤 对每个用户 i \(\in\)PKr−k 的说明:用户 i 一旦他开始,就开始他自己的第 r 轮步骤 s 完成自己的步骤 s −1。 • 用户i 等待的最长时间为2\(\lambda\)。在等待期间,我的行为如下。 – 结束条件 0:与 Coin-Fixed-To-0 步骤中的指令相同。 – 结束条件 1:与 Coin-Fixed-To-0 步骤中的指令相同。 – 如果 在 任何 点 他 有 收到 在 至少 tH 有效 先生,s−1 j 的 的 的 形式 (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ),然后他停止等待并设置 bi \(\triangleq\)0。 – 如果 在 任何 点 他 有 收到 在 至少 tH 有效 先生,s−1 j 的 的 的 形式 (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ),然后他停止等待并设置 bi \(\triangleq\)1。 – 否则,当时间 2\(\lambda\) 耗尽时,令 SV r,s−1 我 是 (r, s −1) 验证者的集合 他已收到有效消息 mr,s−1 j , i 设 bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1 我 H(\(\sigma\)r,s−1 j ))。 – 设置值 bi 后,i 根据 CERT r−1 计算 Qr−1 并检查是否 i \(\in\)SV r,s。 – 如果 i \(\in\)SV r,s,i 计算消息 mr,s 我 \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) 与 vi 是 他在步骤 4 中计算出的值会破坏他的临时密钥 skr,s 我,然后 传播先生,s 我。否则,我会停止而不传播任何内容。 评论。 原则上,正如第 6.2 小节所考虑的,协议可以采用任意多个 某轮中的步骤。如果发生这种情况,正如所讨论的,用户 i \(\in\)SV r,s 且 s > \(\mu\) 已耗尽

他储存了预先生成的临时密钥,并且必须验证他的 (r, s) 消息 mr,s 我 由一个 临时密钥的“级联”。因此我的消息变得有点长并且传输的时间更长 消息将需要更多时间。因此,在给定回合的这么多步骤之后, 参数 \(\lambda\) 会自动稍微增加。 (但是一旦新的 \(\lambda\) 它就会恢复到原来的 \(\lambda\) 区块生成并开始新一轮。) 非验证者重建 Round-r 区块 系统中每个用户 i 的说明: 用户 i 一旦完成,就开始自己的回合 r CERT r−1。 • i遵循协议每一步的指示,参与所有的传播 消息,但如果他不是步骤中的验证者,则不会在步骤中发起任何传播。 • i 通过在某些情况下输入结束条件 0 或结束条件 1 来结束自己的回合 r 步骤,使用相应的 CERT r。 • 从那时起,他在等待接收实际区块 Br 的同时开始他的回合 r + 1(除非 他已经收到了),其 hash H(Br) 已被 CERT r 确定。再说一遍,如果 CERT r 表示 Br = Br ϫ,i 在获得 CERT r 后就知道 Br。 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 جولة القادمة على أي حال! إذا، بدلا من ذلك، يتم اختياره ليكون مدققًا في إحدى هذه الجولات، ثم يجهز نفسه (على سبيل المثال، عن طريق الحصول على جميع المعلومات اللازمة) للعمل كمدقق نزيه في الجولة المناسبة. ومن خلال هذا التصرف، فإن المتحقق الكسول ولكن الصادق لن يفوته سوى المشاركة في النشر من الرسائل. لكن نشر الرسالة عادة ما يكون قويا. علاوة على ذلك، فإن الدافعين والمستفيدين من من المتوقع أن تكون المدفوعات التي تم نشرها مؤخرًا عبر الإنترنت لمشاهدة ما يحدث لمدفوعاتها، وبالتالي سيشاركون في نشر الرسالة إذا كانوا صادقين.

处理线下诚实用户

正如我们所说,诚实的用户会遵循所有规定的指示,其中包括在线指示 并运行协议。这在 Algorand 中并不是一个主要负担,因为计算和 诚实用户所需的带宽相当适中。然而,让我们指出 Algorand 可以 可以轻松修改,以便在两种模型中工作,其中允许诚实的用户离线 数量巨大。 在讨论这两个模型之前,让我们指出,如果诚实玩家的百分比 是 95%,Algorand 仍然可以运行,设置所有参数,假设 h = 80%。 因此,即使最多一半的诚实玩家,Algorand也会继续正常工作 选择了离线(确实是“旷工”的一个重大案例)。事实上,在任何时候,至少 80%的在线玩家都是诚实的。 从持续参与到懒惰诚实 正如我们所见,Algorand ′ 1 和 Algorand ′ 2 选择 回顾参数k。现在让我们证明,选择适当大的 k 可以使我们删除 持续参与要求。这个要求确保了一个关键的属性:即 底层 BA 协议 BBA⋆拥有适当的诚实多数。现在让我们解释一下如何偷懒 诚实提供了一种替代且有吸引力的方式来满足这一特性。

回想一下,用户 i 是懒惰但诚实的,如果 (1) 他遵循所有规定的指示,当 他被要求参加该协议,并且 (2) 他被要求仅参加该协议 很少——例如每周一次——并有适当的提前通知,并且可能会收到重大的 当他参与时奖励。 为了允许 Algorand 与此类玩家合作,只需“选择 本轮中的用户已在更早一轮的系统中。”确实,请记住 r 轮的验证者是从 r −k 轮的用户中选出的,并且选择是基于 关于数量 Qr−1。请注意,一周大约包含 10,000 分钟,并假设 一轮大约需要(例如,平均)5 分钟,所以一周大约有 2,000 轮。假设 在某个时间点,用户希望计划他的时间并知道他是否会 下周将进行验证。该协议现在从以下用户中选择第 r 轮的验证者 轮 r −k −2, 000,选择基于 Qr−2,001。在 r 轮,我已经认识的玩家 值 Qr−2,000, . 。 。 ,Qr−1,因为它们实际上是 blockchain 的一部分。然后,对于每个M 在 1 到 2,000 之间,i 是第 r + M 轮步骤 s 中的验证者当且仅当 .H 西吉 r + M, s, Qr+M−2,001 \(\leq\)p。 因此,为了检查他是否会在接下来的 2,000 轮中被要求充当验证者,我必须 计算 \(\sigma\)M,s 我 = SIGi r + M, s, Qr+M−2,001 对于 M = 1 到 2, 000 以及对于每个步骤 s,并检查 是否.H(\(\sigma\)M,s 我 ) \(\leq\)p 对于其中一些。如果计算数字签名需要一毫秒,那么 整个操作将花费他大约 1 分钟的计算时间。如果他没有被选为验证者 在任何一轮中,他都可以带着“诚实的良心”下线。如果他不断地 参加的话,接下来的2000回合他基本上就走0步了!相反,如果 他被选为其中一轮的验证者,然后他做好准备(例如,通过获得所有 必要的信息)在适当的回合中充当诚实的验证者。 通过这样的行为,一个懒惰但诚实的潜在验证者 i 只会错过参与传播的机会 的消息。但消息传播通常是稳健的。此外,付款人和收款人 最近传播的支付预计将在线观察他们的支付发生了什么, 因此,如果他们是诚实的,他们就会参与消息传播。

البروتوكول 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,其权重(即决策能力)与 我拥有的金钱数额。”24 根据我们的 HMM 假设,我们可以选择是否应该在 r −k 轮拥有该金额 或在 r 轮(开始)时。假设我们不介意持续参与,我们选择 后者的选择。 (为了消除持续参与,我们会选择前一种选择。 更好的说法是,在 r −k −2, 000 轮拥有的资金量。) 有很多方法可以实现这个想法。最简单的方法是按住每个键 最多 1 个货币单位,然后从 PKr−k 中随机选择 n 个用户 i,使得 a(r) 我 = 1。 24我们应该说 PKr−k−2,000 来代替持续参与。为简单起见,因为人们可能希望要求 不管怎样继续参与,我们还是像以前一样使用PKr−k,这样可以少带一个参数。

下一个最简单的实现 下一个最简单的实现可能是要求每个公钥拥有最大数量 货币 M,对于某个固定的 M。与货币总量相比,M 的值足够小 系统中的货币,这样一个密钥属于多个验证者集合的概率 比如说,k 轮中的步骤可以忽略不计。那么,一个密钥 i \(\in\) PKr−k,拥有一定数量的货币 a(r) 我 在第 r 轮中,被选择属于 SV r,s 如果 .H 西吉 r, s, Qr−1 \(\leq\)p \(\cdot\) a(r) 我 中号 。 一切都像以前一样进行。 更复杂的实现 最后的实现“迫使系统中的富有参与者拥有许多密钥”。 下面描述的另一种实现概括了状态的概念并考虑 每个用户 i 由 K + 1 个副本 (i, v) 组成,每个副本被独立选择为验证者, 并将拥有自己的临时密钥(pkr,s i,v,skr,s i,v) 在 r 轮的步骤 s 中。 K 值取决于 关于金额 a(r) 我 由 i 在 r 轮中拥有。 现在让我们更详细地看看这样的系统是如何工作的。 份数 令 n 为每个验证器集的目标预期基数,并令 a(r) 我 是用户 i 在第 r 轮拥有的资金量。令 Ar 为拥有的货币总量 由 r 轮 PKr−k 中的用户,即 氩气= X i\(\in\)P Kr−k 一个(r) 我。 如果 i 是 PKr−k 中的用户,则 i 的副本为 (i, 1),…。 。 。 , (i, K + 1),其中 K = $ n \(\cdot\) a(r) 我 氩气 % 。 例子。设 n = 1, 000,Ar = 109,a(r) 我 = 370 万。然后, K = 103 \(\cdot\) (3.7 \(\cdot\) 106) 109  = ⌊3.7⌋= 3 。 验证者和凭证 令 i 为 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 轮的每个步骤 s,i 检查是否 .H 西吉 (i, K + 1), r, s, Qr−1 \(\leq\)a(r) 我 n Ar-K。

如果是,则副本 (i, K + 1) 属于 SV r,s。为了证明这一点,我传播了凭证 \(\sigma\)r,1 i,K+1 = SIGi (i, K + 1), r, s, Qr−1 。 例子。 与前面的示例一样,令 n = 1K, a(r) 我 = 3.7M,Ar = 1B,i 有 4 副本:(i, 1), . 。 。 ,(一世,4)。那么,前 3 个副本自动属于 SV r,s。对于第四个来说, 从概念上讲,Algorand ′ 独立地掷出一枚有偏差的硬币,正面朝上的概率为 0.7。复制 当且仅当抛硬币是正面时才选择 (i, 4)。 (当然,这种有偏见的抛硬币是通过hashing、签名和比较来实现的——正如我们 在这篇论文中我一直在做——以便让我能够证明他的结果。) 一切如常 解释了如何选择验证者及其凭证 在一轮 r 的每个步骤中计算,一轮的执行与已经解释的类似。

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

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

处理分叉

将分叉概率降低到 10−12 或 10−18 后,实际上没有必要处理 它们发生的可能性很小。 然而,Algorand 也可以使用各种分叉 解决程序,有或没有工作证明。 指导用户解决分叉的一种可能方法如下: • 如果用户看到多个链,则遵循最长的链。 • 如果有多个最长的链,则在该链的末尾添加一个非空块。如果 它们的末尾都有空块,考虑它们的倒数第二个块。 • 如果有多个最长的链末尾有非空块,则称这些链是 长度为 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. ونأمل أن ننقل هذه التكنولوجيا إلى المستوى التالي. وفي الوقت نفسه السفر والرفقة هي متعة كبيرة، ونحن ممتنون للغاية لها.

处理网络分区

如前所述,我们假设网络中所有用户之间的消息传播时间的上限为 \(\lambda\) 和 Λ。这不是一个强有力的假设,因为当今的互联网快速且强大,并且 这些参数的实际值是相当合理的。在此,我们指出 Algorand ′ 2 即使互联网偶尔被分成两部分,它仍然可以继续工作。情况当 互联网被分为两个以上的部分也是类似的。 10.1 物理分区 首先,分区可能是物理原因造成的。例如,一场大地震可能会 最终彻底切断了欧洲和美洲之间的联系。在这种情况下, 恶意用户也被分区,并且两部分之间没有通信。因此

将有两个对手,一个用于第 1 部分,另一个用于第 2 部分。每个对手仍然试图 破坏协议本身的一部分。 假设分区发生在 r 轮的中间。那么每个用户仍然被选为 基于 PKr−k 的验证器,概率与之前相同。设 HSV r,s 我 和 MSV r,s 我 分别 是第 i 部分 \(\in\){1, 2} 中步骤 s 中诚实和恶意验证者的集合。我们有 |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 以压倒性的概率。 如果 i 的某个部分有 |HSV r,s 我 | + |MSV r,s 我 | \(\geq\)tH 以不可忽略的概率,例如 1%,则 |HSV r,s 的概率 3−i| + |MSV r,s 3−i| \(\geq\)tH 非常低,例如,当 F = 10−18 时,为 10−16。在这种情况下, 我们不妨将较小的部分视为离线,因为没有足够的验证者 这部分生成签名来证明一个块。 让我们考虑较大的部分,即不失一般性的第一部分。虽然 |HSV r,s| < tH 在每个步骤 s 中的概率可忽略不计,当网络分区时,|HSV r,s 1 |可能是 小于 tH 的概率不可忽略。 在这种情况下,对手可能会用一些 其他不可忽略的概率,迫使二进制 BA 协议在 r 轮中进入分叉,其中包含非空块 Br 和空块 Br ϫ 都具有 TH 有效签名。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 | < tH 由于分区,HSV 中的验证器 r,s+1 1 没看到tH 位 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 和空块时 嵌段Br \(\varepsilon\) ,跟随非空的(以及由它定义的 Qr)。 事实上,通过指示用户使用协议中的非空块,如果一个大的块 PKr+1−k 中的诚实用户数量意识到在第 r+1 轮开始时有一个分叉,然后 空块将没有足够的追随者并且不会增长。假设对手设法 对诚实用户进行分区,以便一些诚实用户看到 Br(也许 Br ϫ),有的只看到 溴 ǫ。因为对手无法判断其中哪一个将成为 Br 之后的验证者,哪一个将成为 Br 的验证者 将成为以下 Br 的验证者 \(\varepsilon\) , 诚实用户被随机划分并且每一个仍然 成为验证者(无论是关于 Br 还是关于 Br \(\varepsilon\)) 在步骤 s > 1 的概率 p。对于恶意用户来说,他们每个人可能有两次成为验证者的机会,一次是 Br 和另一个带有 Br 的 \(\varepsilon\),每个都有概率 p 独立。 设 HSV r+1,s 1;溴 是 Br 之后的第 r+1 轮步骤 s 中的诚实验证者集合。其他符号 例如HSV r+1,s 1;Brǫ , MSV r+1,s 1;溴 和 MSV r+1,s 1;Brǫ 也有类似的定义。通过 Chernoffbound,这很容易 25无论有或没有分区,都不可能有一个带有两个非空块的分叉,除非可以忽略不计。 概率。以压倒性的概率看到, |HSV r+1,s 1;Br | + |HSV r+1,s 1;Brǫ | + |MSV r+1,s 1;Br | + |MSV r+1,s 1;Brǫ | <2tH。 因此,两个分支不能同时拥有证明一个区块的正确签名。 r + 1 在同一步骤 s 中。此外,由于两个步骤 s 和 s' 的选择概率是 相同并且选择是独立的,也具有压倒性的概率 |HSV r+1,s 1;Br | + |MSV r+1,s 1;Br | + |HSV r+1,s′ 1;Brǫ | + |MSV r+1,s′ 1;Brǫ | <2tH, 对于任意两个步骤 s 和 s'。当 F = 10−18 时,根据并集界限,只要对手不能 对诚实用户进行长时间分区(例如 104 步,超过 55 小时,且 \(\lambda\) = 10 秒26),最多有一个分支具有高概率(例如 1−10−10)具有 tH 个正确的签名 验证第 r + 1 轮中的区块。 最后,如果物理分区创建了两个大小大致相同的部分,则 |HSV r,s 的概率 我 | + |MSV r,s 我 | \(\geq\)tH 对于每个部分 i 都很小。经过类似的分析, 即使对手设法以每个部分都有不可忽略的概率创建一个分叉 对于第 r 轮,在第 r + 1 轮中最多可以生长四个分支之一。 10.2 对抗性划分 其次,分区可能是由Adversary造成的,从而导致消息传播 一部分的诚实用户不会直接到达另一部分的诚实用户,但是 对手能够在两个部分之间转发消息。尽管如此,一旦有人发来一条消息 一部分到达另一部分的诚实用户,它将像往常一样在后者中传播。如果 对手愿意花很多钱,可以想象他可能能够破解 像这样上网并分区一段时间。 分析与上面物理分区中较大部分的分析类似(较小的部分) 部分可以被视为人口为 0):对手也许能够创建一个分叉并 每个诚实的用户只能看到其中一个分支,但最多只能生长一个分支。 10.3 网络分区总和 虽然网络分区可能会发生,并且分区下可能会发生一轮分叉,但是 没有任何挥之不去的歧义:分叉的寿命非常短暂,实际上最多只能持续一轮。在 分区的所有部分除了最多一个之外,用户无法生成新块,因此 (a) 认识到网络中存在分区,并且 (b) 永远不要依赖会“消失”的区块。 致谢 我们首先要感谢谢尔盖 \(\cdot\) 戈尔布诺夫 (Sergey Gorbunov),他是所引用的 Democoin 系统的合著者。 最诚挚的感谢莫里斯 \(\cdot\) 赫利希 (Maurice Herlihy),他进行了许多富有启发性的讨论,指出了 指出流水线将提高 Algorand 的吞吐量性能,并大大提高 26请注意,只有当用户至少看到了 tH 个签名时,他才无需等待 2\(\lambda\) 时间即可完成步骤 s。 同一条消息。当没有足够的签名时,每一步将持续2\(\lambda\)时间。

对本文早期版本的阐述。非常感谢 Sergio Rajsbaum 的评论 本文的早期版本。非常感谢 Vinod Vaikuntanathan 的多次深入讨论 和见解。非常感谢 Yossi Gilad、Rotem Hamo、Georgios Vlachos 和 Nickolai Zeldovich 感谢您开始测试这些想法,并获得许多有用的评论和讨论。 Silvio Micali 谨亲自感谢 Ron Rivest 的无数讨论和指导 从事密码学研究超过 30 年,共同创作了所引用的小额支付系统 这启发了 Algorand 的验证者选择机制之一。 我们希望将这项技术提升到一个新的水平。同时,旅行和陪伴 非常有趣,我们对此非常感激。