Algorand: escalamiento de acuerdos bizantinos para criptomonedas

بقلم Jing Chen and Silvio Micali · 2017

وضع فردي arxiv.org

خلاصة

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

Resumen

Un libro de contabilidad público es una secuencia de datos a prueba de manipulaciones que todos pueden leer y ampliar. Los libros públicos tienen innumerables y convincentes usos. Pueden asegurar, a simple vista, todo tipo de transacciones —como títulos, ventas y pagos— en el orden exacto en que ocurren. Los libros públicos no sólo frenan la corrupción, sino que también permiten aplicaciones muy sofisticadas, como criptomonedas y smart contracts. Se proponen revolucionar la forma en que una sociedad democrática opera. Sin embargo, tal como se implementan actualmente, su escalabilidad es deficiente y no pueden alcanzar su potencial. Algorand es una forma verdaderamente democrática y eficiente de implementar un libro de contabilidad público. A diferencia del anterior implementaciones basadas en prueba de trabajo, requiere una cantidad insignificante de cálculo, y genera un historial de transacciones que no se “bifurcará” con una probabilidad abrumadoramente alta. Algorand se basa en un acuerdo bizantino de transmisión de mensajes (novedoso y súper rápido). Para ser más concretos, describiremos Algorand únicamente como una plataforma monetaria.

مقدمة

أصبح المال افتراضيًا بشكل متزايد. وتشير التقديرات إلى أن حوالي 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، يستطيع الخصم القيام بذلك يفسد المستخدمين الذين يريد السيطرة عليهم على الفور.

Introducción

El dinero es cada vez más virtual. Se ha estimado que alrededor del 80% de los Estados Unidos Los dólares hoy solo existen como asientos contables [5]. Otros instrumentos financieros están siguiendo el ejemplo. En un mundo ideal, en el que pudiéramos contar con una entidad central de confianza universal, inmune Ante todos los posibles ciberataques, el dinero y otras transacciones financieras podrían ser únicamente electrónicas. Desafortunadamente, no vivimos en un mundo así. En consecuencia, las criptomonedas descentralizadas, como como Bitcoin [29], y sistemas “smart contract”, como Ethereum, se han propuesto [4]. en El corazón de estos sistemas es un libro de contabilidad compartido que registra de manera confiable una secuencia de transacciones, ∗Esta es la versión más formal (y asincrónica) del artículo ArXiv del segundo autor [24], un artículo basado en el de Gorbunov y Micali [18]. Las tecnologías de Algorand son objeto de las siguientes solicitudes de patente: 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,931tan variados como pagos y contratos, de forma a prueba de manipulaciones. La tecnología elegida para garantizar dicha inviolabilidad es el blockchain. Las cadenas de bloques están detrás de aplicaciones como criptomonedas [29], aplicaciones financieras [4] e Internet de las cosas [3]. Varias técnicas para gestionar libros de contabilidad basados en blockchain se han propuesto: prueba de trabajo [29], prueba de participación [2], práctica tolerancia a fallos bizantinos [8], o alguna combinación. Sin embargo, en la actualidad, la gestión de los libros de contabilidad puede resultar ineficiente. Por ejemplo, Bitcoin proof-of-work El enfoque (basado en el concepto original de [14]) requiere una gran cantidad de cálculos y es un desperdicio. y escala mal [1]. Además, de facto concentra el poder en muy pocas manos. Por lo tanto, deseamos proponer un nuevo método para implementar un libro de contabilidad público que ofrezca la conveniencia y eficiencia de un sistema centralizado administrado por una autoridad confiable e inviolable, sin las ineficiencias y debilidades de las implementaciones descentralizadas actuales. Llamamos a nuestro enfoque Algorand, porque utilizamos aleatoriedad algorítmica para seleccionar, según el libro mayor construido hasta ahora, un conjunto de verificadores que están a cargo de construir el siguiente bloque de transacciones válidas. Naturalmente, Nos aseguramos de que dichas selecciones sean demostrablemente inmunes a manipulaciones e impredecibles hasta el momento. en el último momento, sino también que, en última instancia, sean universalmente claras. El enfoque de Algorand es bastante democrático, en el sentido de que ni en principio ni de facto crea diferentes clases de usuarios (como “mineros” y “usuarios comunes” en Bitcoin). En Algorand “todos el poder reside en el conjunto de todos los usuarios”. Una propiedad notable de Algorand es que su historial de transacciones puede bifurcarse sólo con cantidades muy pequeñas. probabilidad (por ejemplo, una entre un billón, es decir, o incluso 10-18). Algorand también puede abordar algunos temas legales. y preocupaciones políticas. El enfoque Algorand se aplica a blockchains y, más generalmente, a cualquier método de generación una secuencia de bloques a prueba de manipulaciones. De hecho, propusimos un nuevo método, alternativo y más eficiente que blockchains, eso puede ser de interés independiente. 1.1 Supuestos y problemas técnicos de Bitcoin Bitcoin es un sistema muy ingenioso y ha inspirado una gran cantidad de investigaciones posteriores. Sin embargo, También es problemático. Resumamos sus supuestos subyacentes y sus problemas técnicos, que En realidad, son compartidos por prácticamente todas las criptomonedas que, como Bitcoin, se basan en proof-of-work. Para este resumen, basta recordar que, en Bitcoin, un usuario puede poseer varias claves públicas de un esquema de firma digital, que el dinero está asociado con claves públicas y que un pago es un Firma digital que transfiere una cierta cantidad de dinero de una clave pública a otra. Esencialmente, Bitcoin organiza todos los pagos procesados en una cadena de bloques, B1, B2, . . ., cada uno compuesto por múltiples pagos, de modo que todos los pagos de B1, tomados en cualquier orden, seguidos de los de B2, en cualquier orden, etc., constituyen una secuencia de pagos válidos. Cada bloque se genera, en promedio, cada 10 minutos. Esta secuencia de bloques es una cadena, porque está estructurada de manera que garantice que cualquier cambio, incluso en un solo bloque, se filtra en todos los bloques posteriores, lo que facilita la detección de cualquier alteración de el historial de pagos. (Como veremos, esto se consigue incluyendo en cada bloque un código criptográfico hash del anterior). Dicha estructura de bloques se denomina blockchain. Supuesto: mayoría honesta de potencia computacional Bitcoin asume que no hay ningún malicioso entidad (ni una coalición de entidades maliciosas coordinadas) controla la mayoría de los procesos computacionales. energía dedicada a la generación de bloques. De hecho, dicha entidad podría modificar el blockchain,y así reescribir el historial de pagos, como le plazca. En particular, podría realizar un pago \(\wp\), obtener los beneficios pagados y luego “borrar” cualquier rastro de \(\wp\). Problema técnico 1: Desperdicio computacional Enfoque proof-of-work de Bitcoin para bloquear La generación requiere una cantidad extraordinaria de cálculos. Actualmente, con sólo unos pocos cientos miles de claves públicas en el sistema, las 500 supercomputadoras más poderosas solo pueden reunir apenas el 12,8% por ciento de la potencia computacional total requerida de los jugadores Bitcoin. esto La cantidad de cálculo aumentaría considerablemente si un número significativamente mayor de usuarios se unieran al sistema. Problema técnico 2: concentración de poder Hoy, debido a la exorbitante cantidad de cálculo requerido, un usuario, que intenta generar un nuevo bloque usando un escritorio normal (y mucho menos un teléfono celular), espera perder dinero. De hecho, para calcular un nuevo bloque con una computadora común, el costo esperado de la electricidad necesaria para impulsar el cálculo excede la recompensa esperada. Utilizando únicamente grupos de computadoras especialmente construidas (que no hacen nada más que "extraer nuevos bloques"), uno podría esperar obtener ganancias generando nuevos bloques. En consecuencia, hoy existen, de facto, dos clases disjuntas de usuarios: usuarios comunes, que solo realizan pagos, y grupos de minería especializados, que solo buscan nuevos bloques. Por lo tanto, no debería sorprender que, hasta hace poco, la potencia informática total de los bloques La generación se encuentra dentro de sólo cinco grupos. En tales condiciones, el supuesto de que la mayoría de los el poder computacional es honesto se vuelve menos creíble. Problema técnico 3: ambigüedad En Bitcoin, blockchain no es necesariamente único. De hecho su última porción a menudo se bifurca: el blockchain puede ser, digamos, B1,. . . , Bk, B′ k+1, B′ k+2, según un usuario, y B1, . . . , Bk, B′′ k+1, B′′ k+2, B′′ k+3 según otro usuario. Sólo después de varios bloques agregado a la cadena, ¿se puede estar razonablemente seguro de que los primeros k + 3 bloques serán los mismos? para todos los usuarios. Por tanto, no se puede confiar inmediatamente en los pagos contenidos en el último bloque de la cadena. Es más prudente esperar y ver si el bloque se vuelve lo suficientemente profundo en el blockchain y, por tanto, suficientemente estable. Por otra parte, también se han planteado preocupaciones sobre la aplicación de la ley y la política monetaria sobre Bitcoin.1 1.2 Algorand, en pocas palabras Configuración Algorand trabaja en un entorno muy difícil. Brevemente, (a) Entornos sin permiso y con permiso. Algorand funciona de manera eficiente y segura incluso en un entorno totalmente sin permisos, donde arbitrariamente muchos usuarios pueden unirse al sistema en cualquier momento, sin ningún tipo de investigación o permiso de ningún tipo. Por supuesto, Algorand funciona Aún mejor en un entorno autorizado. 1El (pseudo) anonimato que ofrecen los pagos Bitcoin puede utilizarse indebidamente para el lavado de dinero y/o la financiación. de personas criminales u organizaciones terroristas. Los billetes tradicionales o lingotes de oro, que en principio ofrecen una perfecta anonimato, debería plantear el mismo desafío, pero la fisicalidad de estas monedas ralentiza sustancialmente el movimiento del dinero. transferencias, a fin de permitir cierto grado de supervisión por parte de los organismos encargados de hacer cumplir la ley. La capacidad de “imprimir dinero” es uno de los poderes básicos de un Estado nación. Por lo tanto, en principio, la masiva La adopción de una moneda con flotación independiente puede limitar este poder. Sin embargo, actualmente Bitcoin está lejos de ser una amenaza para las políticas monetarias gubernamentales y, debido a sus problemas de escalabilidad, puede que nunca lo sea.(b) Entornos muy conflictivos. Algorand resiste a un Adversario muy poderoso, que puede (1) corromper instantáneamente a cualquier usuario que desee, en cualquier momento que desee, siempre que, en un entorno sin permisos, 2/3 del dinero en el sistema pertenece al usuario honesto. (En un entorno autorizado, independientemente del dinero, basta con que 2/3 de los usuarios sean honestos.) (2) controlar totalmente y coordinar perfectamente a todos los usuarios corruptos; y (3) programar la entrega de todos los mensajes, siempre que cada mensaje sea enviado por un usuario honesto llega al 95% de los usuarios honestos en un tiempo \(\lambda\)m, que depende únicamente del tamaño de m. Propiedades principales A pesar de la presencia de nuestro poderoso adversario, en Algorand • La cantidad de cálculo requerida es mínima. Básicamente, no importa cuántos usuarios haya presentes en el sistema, cada uno de los mil quinientos usuarios debe realizar como máximo unos segundos de cálculo. • Se genera un nuevo bloque en menos de 10 minutos y, de facto, nunca saldrá del blockchain. Por ejemplo, en la expectativa, el tiempo para generar un bloque en la primera realización es menor que Λ + 12,4\(\lambda\), donde Λ es el tiempo necesario para propagar un bloque, en un chisme entre pares manera, no importa qué tamaño de bloque se elija, y \(\lambda\) es el tiempo para propagar 1.500 mensajes 200Blong. (Dado que en un sistema verdaderamente descentralizado, Λ es esencialmente una latencia intrínseca, en Algorand el factor limitante en la generación de bloques es la velocidad de la red). La segunda realización tiene en realidad ha sido probado experimentalmente (¿por ?), lo que indica que un bloque se genera en menos de 40 segundos. Además, el blockchain de Algorand puede bifurcarse sólo con una probabilidad insignificante (es decir, menos de un en un billón), y así los usuarios pueden transmitir los pagos contenidos en un nuevo bloque tan pronto como el Aparece el bloque. • Todo el poder reside en los propios usuarios. Algorand es un verdadero sistema distribuido. En particular, no hay entidades exógenas (como los “mineros” en Bitcoin), que puedan controlar qué transacciones son reconocidos. Técnicas de Algorand. 1. Un nuevo y rápido protocolo de acuerdo bizantino. Algorand genera un nuevo bloque vía un nuevo protocolo de acuerdo bizantino (BA) binario criptográfico, de paso de mensajes, BA⋆. Protocolo BA⋆ no sólo satisface algunas propiedades adicionales (que discutiremos pronto), sino que también es muy rápido. En términos generales, su versión de entrada binaria consiste en un bucle de 3 pasos, en el que un jugador i envía un único envía un mensaje mi a todos los demás jugadores. Ejecutado en red completa y síncrona, con más siendo honestos más de 2/3 de los jugadores, con probabilidad > 1/3, después de cada bucle el protocolo termina en acuerdo. (Hacemos hincapié en que el protocolo BA⋆satisface la definición original de acuerdo bizantino de Pease, Shostak y Lamport [31], sin debilitamientos). Algorand aprovecha este protocolo BA binario para llegar a un acuerdo, en nuestras diferentes comunicaciones modelo, en cada nuevo bloque. Luego se certifica el bloque acordado, mediante un número prescrito de firma digital de los verificadores correspondientes, y se propaga a través de la red. 2. Ordenación criptográfica. Aunque es muy rápido, el protocolo BA⋆se beneficiaría de una mayor velocidad cuando lo juegan millones de usuarios. En consecuencia, Algorand elige a los jugadores de BA⋆para serun subconjunto mucho más pequeño del conjunto de todos los usuarios. Para evitar un tipo diferente de concentración de poder problema, cada nuevo bloque Br será construido y acordado, mediante una nueva ejecución de BA⋆, por un conjunto separado de verificadores seleccionados, SV r. En principio, seleccionar un conjunto de este tipo podría ser tan difícil como seleccionando Br directamente. Atravesamos este problema potencial mediante un enfoque que denominamos abarcar la perspicaz sugerencia de Maurice Herlihy, la clasificación criptográfica. La clasificación es la práctica de seleccionar funcionarios al azar de un gran conjunto de personas elegibles [6]. (Se practicó la clasificación a lo largo de los siglos: por ejemplo, por las repúblicas de Atenas, Florencia y Venecia. En la justicia moderna En estos sistemas, la selección aleatoria se utiliza a menudo para elegir a los jurados. El muestreo aleatorio también se ha utilizado recientemente. defendido para las elecciones por David Chaum [9].) En un sistema descentralizado, por supuesto, elegir el Las monedas aleatorias necesarias para seleccionar aleatoriamente los miembros de cada conjunto de verificador SV r son problemáticas. Por tanto, recurrimos a la criptografía para seleccionar cada conjunto de verificadores, de la población de todos los usuarios, de una manera que se garantiza que será automática (es decir, que no requiere intercambio de mensajes) y aleatoria. En esencia, utilizamos una función criptográfica para determinar automáticamente, a partir del bloque anterior Br−1, un usuario, el líder, encargado de proponer el nuevo bloque Br, y el verificador establece SV r, en encargado de llegar a un acuerdo sobre el bloque propuesto por el dirigente. Dado que los usuarios malintencionados pueden afectar la composición de Br−1 (por ejemplo, eligiendo algunos de sus pagos), construimos y utilizamos especialmente entradas adicionales para demostrar que el líder para el bloque r y el conjunto de verificador SV r son de hecho elegidos al azar. 3. La Cantidad (Semilla) Qr. Usamos el último bloque Br−1 en blockchain para determinar automáticamente el siguiente conjunto de verificadores y el líder a cargo de construir el nuevo bloque Hno. El desafío de este enfoque es que, con sólo elegir un pago ligeramente diferente en el En la ronda anterior, nuestro poderoso adversario obtiene un tremendo control sobre el siguiente líder. Incluso si el sólo controlaba 1/1000 de los jugadores/dinero en el sistema, podía garantizar que todos los líderes estuvieran malicioso. (Consulte la Sección 4.1 de Intuición). Este desafío es fundamental para todos los enfoques proof-of-stake, y, hasta donde sabemos, hasta el momento no se ha resuelto satisfactoriamente. Para enfrentar este desafío, construimos intencionalmente y actualizamos continuamente un sistema separado y cuidadosamente cantidad definida, Qr, que probablemente no sólo es impredecible, sino que tampoco puede ser influenciada por nuestro poderoso adversario. Podemos referirnos a Qr como la r-ésima semilla, ya que es de Qr que Algorand selecciona, mediante clasificación criptográfica secreta, todos los usuarios que desempeñarán un papel especial en la generación del bloque r. 4. Clasificación critográfica secreta y credenciales secretas. Utilizar aleatoriamente y sin ambigüedades el último bloque actual, Br-1, para elegir el conjunto de verificadores y el líder a cargo. de construir el nuevo bloque, Br, no es suficiente. Dado que Br−1 debe conocerse antes de generar Br, También se debe conocer la última cantidad no influenciable Qr−1 contenida en Br−1. En consecuencia, entonces son los verificadores y el líder encargado de calcular el bloque Br. Así, nuestro poderoso adversario podría corromperlos a todos inmediatamente, antes de que entablen cualquier discusión sobre Br, para obtener control total sobre el bloque que certifican. Para evitar este problema, los líderes (y en realidad también los verificadores) aprenden en secreto su papel, pero pueden calcular una credencial adecuada, capaz de demostrar a todos que efectivamente tienen ese rol. cuando Si un usuario se da cuenta en privado de que es el líder del siguiente bloque, primero reúne en secreto su propio nuevo bloque propuesto, y luego lo difunde (para que pueda ser certificado) junto con su propio credencial. De esta manera, aunque el Adversario se dará cuenta inmediatamente de quién es el líder del próximo bloque es, y aunque puede corromperlo de inmediato, será demasiado tarde para que el Adversario Influir en la elección de un nuevo bloque. De hecho, ya no puede “revocar” el mensaje del líder.de lo que un gobierno poderoso puede volver a encerrar en la botella un mensaje difundido viralmente por WikiLeaks. Como veremos, no podemos garantizar la unicidad del líder, ni que todos estén seguros de quién es el líder. es, ¡incluido el propio líder! Pero en Algorand se garantizará un progreso inequívoco. 5. Reemplazabilidad de jugadores. Después de proponer un nuevo bloque, el líder también podría “morir” (o ser corrompido por el Adversario), porque su trabajo está hecho. Pero, para los verificadores en SV r, las cosas son menos sencillo. En efecto, siendo el encargado de certificar el nuevo bloque Br con suficientes firmas, primero deben ejecutar un acuerdo bizantino sobre el bloque propuesto por el líder. El problema es que, No importa cuán eficiente sea, BA⋆requiere múltiples pasos y la honestidad de > 2/3 de sus jugadores. Esto es un problema porque, por razones de eficiencia, el conjunto de jugadores de BA⋆ consiste en el pequeño conjunto SV r seleccionados aleatoriamente entre el conjunto de todos los usuarios. Así, nuestro poderoso Adversario, aunque incapaz de corrompe 1/3 de todos los usuarios, ¡ciertamente puede corromper a todos los miembros de SV r! Afortunadamente, demostraremos que el protocolo BA⋆, ejecutado mediante la propagación de mensajes entre pares, es reemplazable por el jugador. Este novedoso requisito significa que el protocolo debe aplicarse correctamente y logra un consenso de manera eficiente incluso si cada uno de sus pasos es ejecutado por un proceso totalmente nuevo y aleatorio. conjunto de jugadores seleccionados independientemente. Así, con millones de usuarios, cada pequeño grupo de jugadores asociado a un paso de BA⋆muy probablemente tenga una intersección vacía con el siguiente conjunto. Además, los conjuntos de jugadores de diferentes pasos de BA⋆probablemente tendrán resultados totalmente diferentes. cardinalidades. Además, los miembros de cada grupo no saben quién será el próximo grupo de jugadores. ser, y no pasar en secreto ningún estado interno. La propiedad del jugador reemplazable es realmente crucial para derrotar al dinámico y muy poderoso Adversario que imaginamos. Creemos que los protocolos de jugadores reemplazables resultarán cruciales en muchos Contextos y aplicaciones. En particular, serán cruciales para ejecutar de forma segura pequeños subprotocolos. incrustado en un universo más grande de jugadores con un adversario dinámico, quien, siendo capaz de corromper incluso una pequeña fracción del total de jugadores, no tiene dificultad en corromper a todos los jugadores en el grupo más pequeño. subprotocolo. Una propiedad/técnica adicional: la honestidad perezosa Un usuario honesto sigue lo prescrito. instrucciones, que incluyen estar en línea y ejecutar el protocolo. Desde entonces, Algorand solo tiene una modesta requisito de computación y comunicación, estar en línea y ejecutar el protocolo “en el antecedentes” no es un sacrificio importante. Por supuesto, algunas “ausencias” entre jugadores honestos, como aquellas debido a una pérdida repentina de conectividad o la necesidad de reiniciar, se toleran automáticamente (porque siempre podemos considerar que esos pocos jugadores sean temporalmente maliciosos). Señalemos, sin embargo, que Algorand se puede adaptar simplemente para que funcione en un nuevo modelo, en el que los usuarios honestos puedan ser fuera de línea la mayor parte del tiempo. Nuestro nuevo modelo se puede presentar informalmente de la siguiente manera. Honestidad perezosa. En términos generales, un usuario i es vago pero honesto si (1) sigue todas las instrucciones prescritas. instrucciones, cuando se le pide que participe en el protocolo, y (2) se le pide que participe al protocolo sólo en raras ocasiones y con la debida antelación. Con una noción tan relajada de honestidad, podemos estar aún más seguros de que las personas honestas serán a mano cuando los necesitemos, y Algorand garantizan que, cuando este sea el caso, El sistema funciona de forma segura incluso si, en un momento dado, la mayoría de los jugadores participantes son maliciosos.1.3 Trabajo estrechamente relacionado Los enfoques de prueba de trabajo (como los citados [29] y [4]) son bastante ortogonales a los nuestros. Así son los enfoques basados en el acuerdo bizantino de transmisión de mensajes o en la práctica tolerancia a fallos bizantinos (como el citado [8]). De hecho, estos protocolos no pueden ejecutarse entre el conjunto de todos los usuarios y no pueden, en nuestro modelo, estar restringido a un conjunto adecuadamente pequeño de usuarios. De hecho, nuestro poderoso adversario mi corrompe inmediatamente a todos los usuarios involucrados en un pequeño conjunto encargado de ejecutar un protocolo BA. Nuestro enfoque podría considerarse relacionado con la prueba de participación [2], en el sentido de que el "poder" de los usuarios en la construcción de bloques es proporcional al dinero que poseen en el sistema (a diferencia de, digamos, el dinero que han puesto en “escrow”). El artículo más cercano al nuestro es el Sleepy Consensus Model of Pass and Shi [30]. Para evitar el cálculo pesado requerido en el enfoque proof-of-work, su artículo se basa (y amablemente) créditos) Clasificación criptográfica secreta de Algorand. Con este aspecto crucial en común, varios Existen diferencias significativas entre nuestros artículos. En particular, (1) Su configuración sólo está permitida. Por el contrario, Algorand también es un sistema sin permisos. (2) Usan un protocolo estilo Nakamoto y, por lo tanto, su blockchain se bifurca con frecuencia. aunque prescindiendo de proof-of-work, en su protocolo se le pide a un líder seleccionado en secreto que alargue el válido más largo (en un sentido más rico) blockchain. Por lo tanto, las bifurcaciones son inevitables y hay que esperar a que el bloque está lo suficientemente “profundo” en la cadena. De hecho, para lograr sus objetivos con un adversario capaces de corrupciones adaptativas, requieren que un bloque tenga una profundidad poli(N), donde N representa el Número total de usuarios del sistema. Observe que, incluso suponiendo que se pudiera producir un bloque en un minuto, si hubiera N = 1 millón de usuarios, entonces habría que esperar unos 2 millones de años para un bloque se convierta en N 2 de profundidad, y durante aproximadamente 2 años para que un bloque alcance N 2 de profundidad. Por el contrario, El blockchain de Algorand se bifurca solo con una probabilidad insignificante, a pesar de que el Adversario es corrupto. usuarios de forma inmediata y adaptable, y se puede confiar inmediatamente en sus nuevos bloques. (3) No manejan acuerdos bizantinos individuales. En cierto sentido, sólo garantizan “eventual consenso sobre una secuencia creciente de valores”. El suyo es un protocolo de replicación estatal, más bien que uno de BA, y no se puede utilizar para llegar a un acuerdo bizantino sobre un valor de interés individual. Por el contrario, Algorand también se puede utilizar sólo una vez, si así se desea, para permitir a millones de usuarios acceder rápidamente llegar a un acuerdo bizantino sobre un valor de interés específico. (4) Requieren relojes débilmente sincronizados. Es decir, los relojes de todos los usuarios están compensados por un pequeño tiempo. δ. Por el contrario, en Algorand, los relojes sólo necesitan tener (esencialmente) la misma "velocidad". (5) Su protocolo funciona con usuarios perezosos pero honestos o con la mayoría honesta de usuarios en línea. Amablemente le dan crédito a Algorand por plantear el problema de los usuarios honestos que se desconectan en masa y por presentando como respuesta el modelo de honestidad perezosa. Su protocolo no sólo funciona en los perezosos modelo de honestidad, sino también en su modelo adversario somnoliento, donde un adversario elige qué usuarios están en línea y cuáles fuera de línea, siempre que, en todo momento, la mayoría de los usuarios en línea sean honestos.2 2La versión original de su artículo en realidad consideraba sólo la seguridad en su modelo adversario y somnoliento. el versión original de Algorand, que precede a la suya, también preveía explícitamente asumir que una mayoría dada de los Los jugadores en línea siempre son honestos, pero lo excluyen explícitamente de su consideración, a favor del modelo de honestidad perezosa. (Por ejemplo, si en algún momento la mitad de los usuarios honestos deciden desconectarse, entonces la mayoría de los usuarios en línea puede muy bien ser malicioso. Por lo tanto, para evitar que esto suceda, el Adversario debería forzar la mayor parte de sus jugadores corruptos también se desconecten, lo que claramente va en contra de sus propios intereses.) Observe que un protocolo con una mayoría de jugadores perezosos pero honestos funciona bien si la mayoría de los usuarios en línea son siempre maliciosos. Esto es así, porque un número suficiente de jugadores honestos, sabiendo que van a ser cruciales en algún momento excepcional, elegirán no desconectarse en esos momentos, ni pueden ser forzados a desconectarse por el Adversario, ya que no sabe quién es el Los jugadores honestos cruciales podrían serlo.(6) Requieren una mayoría simple y honesta. Por el contrario, la versión actual de Algorand requiere una mayoría honesta de 2/3. Otro artículo cercano a nosotros es Ouroboros: A Provably Secure Proof-of-Stake Blockchain Protocol, por Kiayias, Russell, David y Oliynykov [20]. Además, su sistema apareció después del nuestro. También utiliza clasificación criptográfica para prescindir de la prueba de trabajo de manera demostrable. Sin embargo, sus El sistema es, nuevamente, un protocolo al estilo Nakamoto, en el que las bifurcaciones son inevitables y frecuentes. (Sin embargo, en su modelo, los bloqueos no tienen por qué ser tan profundos como en el modelo de consenso somnoliento). Además, su sistema se basa en los siguientes supuestos: en palabras de los propios autores, “(1) el La red es altamente sincrónica, (2) la mayoría de las partes interesadas seleccionadas están disponibles según sea necesario. para participar en cada época, (3) las partes interesadas no permanecen desconectadas durante largos períodos de tiempo, (4) la adaptabilidad de las corrupciones está sujeta a un pequeño retraso que se mide en rondas lineales en el parámetro de seguridad”. Por el contrario, Algorand, con una probabilidad abrumadora, no tiene bifurcación y no se basa en ninguno de estos 4 supuestos. En particular, en Algorand, el Adversario puede corrompe instantáneamente a los usuarios que quiere controlar.

المقدمات

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

Preliminares

2.1 Primitivas criptográficas Hashing ideal. Nos basaremos en una función criptográfica hash eficientemente computable, H, que asigna cadenas arbitrariamente largas a cadenas binarias de longitud fija. Siguiendo una larga tradición, modelamos H como un oracle aleatorio, esencialmente una función que asigna cada cadena posible s a una secuencia aleatoria y cadena binaria seleccionada independientemente (y luego fijada), H(s), de la longitud elegida. En este artículo, H tiene salidas de 256 bits de longitud. De hecho, dicha longitud es lo suficientemente corta como para hacer que el sistema eficiente y lo suficientemente largo para que el sistema sea seguro. Por ejemplo, queremos que H sea resistente a las colisiones. Es decir, debería ser difícil encontrar dos cadenas diferentes xey tales que H(x) = H(y). Cuando H es un oracle aleatorio con salidas de 256 bits de longitud, encontrar dicho par de cadenas es realmente difícil. (Probar al azar y confiar en la paradoja del cumpleaños requeriría 2256/2 = 2128 ensayos.) Firma Digital. Las firmas digitales permiten a los usuarios autenticar información entre sí sin compartir ninguna clave secreta. Un esquema de firma digital consta de tres rápidos algoritmos: un generador de claves probabilísticas G, un algoritmo de firma S y un algoritmo de verificación V. Dado un parámetro de seguridad k, un número entero suficientemente alto, un usuario i usa G para producir un par de Claves de k bits (es decir, cadenas): una clave pki "pública" y una clave de firma "secreta" coincidente. Fundamentalmente, un La clave pública no “traiciona” su correspondiente clave secreta. Es decir, incluso dado el conocimiento de pki, no otro que yo es capaz de calcular el esquí en menos de un tiempo astronómico. El usuario i utiliza ski para firmar mensajes digitalmente. Para cada mensaje posible (cadena binaria) m, primero hashes m y luego ejecuta el algoritmo S en las entradas H(m) y ski para producir la cadena de k bits sigpki(m) \(\triangleq\)S(H(m), esquí) .3 3Dado que H es resistente a colisiones, es prácticamente imposible que, al firmar uno “accidentalmente” un signo diferente. mensaje m′.La cadena binaria sigpki(m) se conoce como la firma digital de m (relativa a pki) y puede ser denotado más simplemente por sigi(m), cuando la clave pública pki se desprende del contexto. Cualquiera que conozca pki puede utilizarlo para verificar las firmas digitales producidas por i. Específicamente, en ingresa (a) la clave pública pki de un jugador i, (b) un mensaje m, y (c) una cadena s, es decir, la supuesta i firma digital del mensaje m, el algoritmo de verificación V genera SÍ o NO. Las propiedades que requerimos de un esquema de firma digital son: 1. Siempre se verifican las firmas legítimas: Si s = sigi(m), entonces V (pki, m, s) = Y ES; y 2. Las firmas digitales son difíciles de falsificar: sin conocimientos de esquí, el tiempo para encontrar una cadena como que V (pki, m, s) = Y ES, para un mensaje m nunca firmado por i, es astronómicamente largo. (Siguiendo los estrictos requisitos de seguridad de Goldwasser, Micali y Rivest [17], esto es cierto incluso si se puede obtener la firma de cualquier otro mensaje.) En consecuencia, para evitar que alguien más firme mensajes en su nombre, un jugador debe conservar su clave de firma secreta (de ahí el término "clave secreta") y para permitir que cualquiera verifique los mensajes Si firma, tengo interés en hacer pública su clave pki (de ahí el término “clave pública”). En general, un mensaje m no se puede recuperar a partir de su firma sigi(m). Para tratar virtualmente con firmas digitales que satisfacen la propiedad de “recuperabilidad” conceptualmente conveniente (es decir, Para garantizar que el firmante y el mensaje sean fácilmente computables a partir de una firma, definimos SIGpki(m) = (i, m, sigpki(m)) y SIGi(m) = (i, m, sigi(m)), si pki está claro. Firma digital única. También consideramos esquemas de firma digital (G, S, V) que satisfacen los siguiente propiedad adicional. 3. Unicidad. Es difícil encontrar cadenas pk′, m, s y s′ tales que ̸= s′ y V (pk′, m, s) = V (pk′, m, s′) = 1. (Tenga en cuenta que la propiedad de unicidad también se aplica a las cadenas pk′ que no se generan legítimamente claves públicas. Sin embargo, en particular, la propiedad de unicidad implica que, si se utilizara la generador de claves especificado G para calcular una clave pública pk junto con una clave secreta coincidente sk, y por lo tanto sabía sk, también le sería esencialmente imposible encontrar dos números digitales diferentes. firmas de un mismo mensaje en relación con pk.) Observaciones • Desde firmas únicas hasta funciones aleatorias verificables. En relación con lo digital esquema de firma con la propiedad de unicidad, el mapeo m \(\to\) H(sigi(m)) se asocia a cada cadena posible m, una cadena única, seleccionada aleatoriamente, de 256 bits, y la exactitud de esta El mapeo se puede probar con la firma sigi(m). Es decir, el esquema ideal de hashing y firma digital que satisface esencialmente la propiedad de unicidad. proporcionar una implementación elemental de una función aleatoria verificable, tal como se introdujo y por Micali, Rabin y Vadhan [27]. (Su implementación original fue necesariamente más compleja, ya que no se basaron en el hashing ideal).• Tres necesidades diferentes de firmas digitales. En Algorand, un usuario i depende de lo digital firmas para (1) Autenticar mis propios pagos. En esta aplicación, las claves pueden ser "a largo plazo" (es decir, utilizadas para firmar muchos mensajes durante un largo período de tiempo) y provienen de un esquema de firma ordinario. (2) Generar credenciales que demuestren que i tiene derecho a actuar en algunos pasos s de una ronda r. Aquí, Las claves pueden ser de largo plazo, pero deben provenir de un esquema que satisfaga la propiedad de unicidad. (3) Autenticar el mensaje que envío en cada paso en el que actúa. Aquí las claves deben ser efímero (es decir, destruido después de su primer uso), pero puede provenir de un esquema de firma ordinario. • Una simplificación de pequeño coste. Para simplificar, imaginamos que cada usuario i tenga una única clave a largo plazo. En consecuencia, dicha clave debe provenir de un esquema de firma con la unicidad propiedad. Esta simplicidad tiene un pequeño coste computacional. De hecho, normalmente son digitales únicos. Las firmas son ligeramente más caras de producir y verificar que las firmas ordinarias. 2.2 El libro público idealizado Algorand intenta imitar el siguiente sistema de pago, basado en un libro de contabilidad público idealizado. 1. El Estado Inicial. El dinero está asociado con claves públicas individuales (generadas de forma privada y propiedad de los usuarios). Dejando pk1, . . . , pkj sean las claves públicas iniciales y a1, . . . , aj sus respectivos cantidades iniciales de unidades monetarias, entonces el estado inicial es S0 = (pk1, a1), . . . , (pkj, aj), que se supone que es de conocimiento común en el sistema. 2. Pagos. Sea pk una clave pública que actualmente tiene \(\geq\)0 unidades monetarias, pk′ otra pública clave, y a′ un número no negativo no mayor que a. Entonces, un pago (válido) \(\wp\)es un pago digital firma, relativa a pk, que especifica la transferencia de a′ unidades monetarias de pk a pk′, juntas con alguna información adicional. En símbolos, \(\wp\)= SIGpk(pk, pk′, a′, I, H(I)), donde represento cualquier información adicional que se considere útil pero no confidencial (por ejemplo, tiempo información y un identificador de pago), y cualquier información adicional que se considere confidencial (p. ej., el motivo del pago, posiblemente las identidades de los propietarios de pk y pk′, etc.). Nos referimos a pk (o su propietario) como pagador, a cada pk′ (o su propietario) como beneficiario y a a′ como el monto del pago \(\wp\). Unirse gratis mediante pagos. Tenga en cuenta que los usuarios pueden unirse al sistema cuando lo deseen generando sus propios pares de claves pública/secreta. En consecuencia, la clave pública pk′ que aparece en el pago \(\wp\)anterior puede ser una clave pública recién generada que nunca había “poseído” dinero antes. 3. El libro mayor mágico. En el Sistema Idealizado, todos los pagos son válidos y aparecen en un formato a prueba de manipulaciones. lista L de conjuntos de pagos “publicados en el cielo” para que todos los vean: L = PAGO 1, PAGO 2, . . . ,Cada bloque PAY r+1 consta del conjunto de todos los pagos realizados desde la aparición del bloque PAGAR r. En el sistema ideal, aparece un nuevo bloque después de un período de tiempo fijo (o finito). Discusión. • Más pagos generales y resultados de transacciones no gastadas. De manera más general, si una clave pública pk posee una cantidad a, entonces un pago válido \(\wp\)de pk puede transferir las cantidades a′ 1, un' 2, . . ., respectivamente a las teclas pk′ 1, paquete′ 2, . . ., siempre que P ja' j \(\leq\)a. En Bitcoin y sistemas similares, el dinero propiedad de un paquete de clave pública se segrega en montos, y un pago \(\wp\)realizado por pk debe transferir dicho monto segregado a en su totalidad. Si pk desea transferir sólo una fracción a′ < a de a a otra clave, entonces también debe transferir la saldo, el resultado de la transacción no gastada, a otra clave, posiblemente pk mismo. Algorand también funciona con claves que tienen cantidades segregadas. Sin embargo, para centrarse en el aspectos novedosos de Algorand, es conceptualmente más sencillo ceñirse a nuestras formas de pago más simples y claves que tienen asociada una única cantidad. • Estado actual. El Esquema Idealizado no proporciona directamente información sobre la situación actual. estado del sistema (es decir, aproximadamente cuántas unidades monetarias tiene cada clave pública). Esta información es deducible del Magic Ledger. En el sistema ideal, un usuario activo almacena y actualiza continuamente la información de estado más reciente, o tendría que reconstruirlo, ya sea desde cero o desde la última vez que lo hizo. lo calculó. (En la próxima versión de este documento, aumentaremos Algorand para permitir su usuarios reconstruir el estado actual de manera eficiente.) • Seguridad y “Privacidad”. Las firmas digitales garantizan que nadie pueda falsificar un pago mediante otro usuario. En un pago \(\wp\), las claves públicas y el importe no están ocultas, pero sí la sensible información que soy. De hecho, solo H(I) aparece en \(\wp\), y dado que H es una función ideal hash, H(I) es un valor aleatorio de 256 bits y, por lo tanto, no hay forma de determinar qué era mejor que mediante simplemente adivinándolo. Sin embargo, para probar lo que yo era (por ejemplo, para probar el motivo del pago), el el pagador puede simplemente revelar I. La exactitud de la I revelada puede verificarse calculando H(I) y comparando el valor resultante con el último elemento de \(\wp\). De hecho, dado que H es resistente a colisiones, es difícil encontrar un segundo valor I′ tal que H(I) = H(I′). 2.3 Nociones y notaciones básicas Claves, usuarios y propietarios A menos que se especifique lo contrario, cada clave pública (“clave” para abreviar) es de largo plazo y relativa a un esquema de firma digital con la propiedad de unicidad. Una clave pública a la que me uno el sistema cuando otra clave pública j que ya está en el sistema realiza un pago a i. Para el color, personificamos las claves. Nos referimos a una clave i como “él”, decimos que es honesto, que envía y recibe mensajes, etc. Usuario es sinónimo de clave. Cuando queremos distinguir una clave de la persona a la que pertenece, utilizamos respectivamente los términos “clave digital” y “propietario”. Sistemas sin permiso y con permiso. Un sistema no tiene permiso si una clave digital está libre unirse en cualquier momento y un propietario puede poseer varias claves digitales; y está permitido, de lo contrario.Representación única Cada objeto en Algorand tiene una representación única. En particular, cada conjunto {(x, y, z, . . .) : x \(\in\)X, y \(\in\)Y, z \(\in\)Z, . . .} está ordenado de una manera preespecificada: por ejemplo, primero lexicográficamente en x, luego en y, etc. Relojes de la misma velocidad No existe un reloj global: cada usuario tiene su propio reloj. Relojes de usuario No es necesario sincronizarlo de ninguna manera. Sin embargo, suponemos que todos tienen la misma velocidad. Por ejemplo, cuando son las 12:00 p.m. según el reloj de un usuario i, pueden ser las 2:30 p.m. según el reloj de un usuario i. el reloj de otro usuario j, pero cuando serán las 12:01 según el reloj de i, serán las 2:31 según al reloj de j. Es decir, “un minuto es igual (suficientemente, esencialmente igual) para cada usuario”. Rondas Algorand está organizado en unidades lógicas, r = 0, 1, . . ., llamadas rondas. Usamos consistentemente superíndices para indicar rondas. Para indicar que una cantidad no numérica Q (por ejemplo, una cadena, una clave pública, un conjunto, una firma digital, etc.) se refiere a una r redonda, simplemente escribimos Qr. Sólo cuando Q sea un número genuino (a diferencia de una cadena binaria interpretable como un número), no escribimos Q(r), de modo que el símbolo r no pueda interpretarse como el exponente de Q. En (el comienzo de una) ronda r > 0, el conjunto de todas las claves públicas es PKr y el estado del sistema es Sr = norte yo, un(r) yo, . . .  : i \(\in\)PKro , donde un(r) yo es la cantidad de dinero disponible para la clave pública i. Tenga en cuenta que PKr es deducible de Sr, y que Sr también puede especificar otros componentes para cada clave pública i. Para la ronda 0, PK0 es el conjunto de claves públicas iniciales y S0 es el estado inicial. Tanto PK0 como Se supone que S0 es de conocimiento común en el sistema. Para simplificar, al comienzo de la ronda r, entonces son PK1, . . . , PKr y S1, . . . , Sr. En una ronda r, el estado del sistema pasa de Sr a Sr+1: simbólicamente, Ronda r: Sr −→Sr+1. Pagos En Algorand, los usuarios realizan pagos continuamente (y los difunden de la forma descrito en la subsección 2.7). Un pago \(\wp\) de un usuario i \(\in\)PKr tiene el mismo formato y semántica como en el Sistema Ideal. Es decir, \(\wp\)= SIGi(i, i′, a, I, H(I)) . El pago \(\wp\) es válido individualmente en una ronda r (es un pago redondo r, para abreviar) si (1) su monto a es menor o igual que a(r) i, y (2) no aparece en ningún conjunto de pagos oficial PAY r′ para r′ < r. (Como se explica a continuación, la segunda condición significa que \(\wp\) aún no ha entrado en vigor. Un conjunto de pagos redondos de i es colectivamente válido si la suma de sus montos es como máximo a(r) yo. Conjuntos de pago Un conjunto de pagos redondo r P es un conjunto de pagos redondos r tales que, para cada usuario i, los pagos de i en P (posiblemente ninguno) son colectivamente válidos. El conjunto de todos los pagos de la ronda r es PAY(r). Una r redonda el conjunto de pagos P es máximo si ningún superconjunto de P es un conjunto de pagos redondo-r. De hecho, sugerimos que un pago \(\wp\) también especifique una ronda \(\rho\), \(\wp\)= SIGi(\(\rho\), i, i′, a, I, H(I)) , y no puede ser válido en ninguna ronda fuera de [\(\rho\), \(\rho\) + k], para algún entero fijo no negativo k.4 4Esto simplifica verificar si \(\wp\) se ha vuelto “efectivo” (es decir, simplifica determinar si algún pago PAGAR r contiene \(\wp\). Cuando k = 0, si \(\wp\)= SIGi(r, i, i′, a, I, H(I)) y \(\wp\)/\(\in\)PAY r, entonces debo volver a enviar \(\wp\).Pagos oficiales Para cada ronda r, Algorand selecciona públicamente (de la manera que se describe más adelante) un solo pago (posiblemente vacío), PAY r, el pago oficial de la ronda. (Esencialmente, PAY r representa los pagos redondos-r que “realmente” han ocurrido). Como en el Sistema Ideal (y Bitcoin), (1) la única forma para que un nuevo usuario j ingrese al sistema es ser el destinatario de un pago perteneciente al conjunto de pagos oficial PAY r de una ronda r determinada; y (2) EL PAGO r determina el estado de la siguiente ronda, Sr+1, a partir del de la ronda actual, Sr. Simbólicamente, PAGO r : Sr −→Sr+1. Específicamente, 1. el conjunto de claves públicas de la ronda r + 1, PKr+1, consta de la unión de PKr y el conjunto de todas claves de beneficiario que aparecen, por primera vez, en los pagos de PAY r; y 2. la cantidad de dinero a(r+1) yo que posee un usuario i en la ronda r + 1 es la suma de ai(r), es decir, el cantidad de dinero que poseí en la ronda anterior (0 si i ̸\(\in\)PKr)— y la suma de las cantidades pagado a i de acuerdo con los pagos de PAY r. En resumen, al igual que en el Sistema Ideal, cada estatus Sr+1 es deducible del historial de pagos anterior: PAGA 0, . . . , PAGAR r. 2.4 Bloques y bloques probados En Algorand0, el bloque Br correspondiente a una ronda r especifica: r mismo; el conjunto de pagos de ronda r, PAGAR r; una cantidad Qr, por explicar, y el hash del bloque anterior, H(Br−1). Así, partiendo de algún bloque fijo B0, tenemos un blockchain tradicional: B1 = (1, PAGO 1, Q0, H(B0)), B2 = (2, PAGO 2, Q1, H(B1)), B3 = (3, PAGAR 3, Q2, H(B2)), . . . En Algorand, la autenticidad de un bloque en realidad está garantizada por una información separada, un “certificado de bloque” CERT r, que convierte a Br en un bloque probado, Br. El Libro Mayor Mágico, por lo tanto, se implementa mediante la secuencia de los bloques probados, B1, B2, . . . Discusión Como veremos, CERT r consta de un conjunto de firmas digitales para H(Br), las de un mayoría de los miembros de SV r, junto con una prueba de que cada uno de esos miembros pertenece efectivamente a SV r. Por supuesto, podríamos incluir los certificados CERT r en los propios bloques, pero resultaría conceptualmente más limpio para mantenerlo separado). En Bitcoin cada bloque debe satisfacer una propiedad especial, es decir, debe “contener una solución de un cripto rompecabezas”, lo que hace que la generación de bloques sea computacionalmente intensiva y ambas bifurcaciones sean inevitables. y no raro. Por el contrario, el blockchain de Algorand tiene dos ventajas principales: se genera con cálculo mínimo y no se bifurcará con una probabilidad abrumadoramente alta. Cada bloque Bi es finalice de forma segura tan pronto como entre en blockchain.2.5 Probabilidad de falla aceptable Para analizar la seguridad de Algorand especificamos la probabilidad, F, con la que estamos dispuestos a aceptar que algo sale mal (por ejemplo, que un conjunto de verificadores SV r no tiene una mayoría honesta). Como en el caso de la longitud de salida de la función criptográfica hash H, también F es un parámetro. Pero, como en ese caso, nos resulta útil establecer F en un valor concreto, para obtener una interpretación más intuitiva. comprender el hecho de que es realmente posible, en Algorand, disfrutar simultáneamente de suficiente seguridad y suficiente eficiencia. Para enfatizar que F es un parámetro que se puede configurar como se desee, en la primera y segundas realizaciones que establecemos respectivamente F = 10-12 y F = 10-18. Discusión Tenga en cuenta que 10-12 es en realidad menos de uno en un billón, y creemos que tal La elección de F es adecuada en nuestra aplicación. Enfaticemos que 10−12 no es la probabilidad con el que el Adversario puede falsificar los pagos de un usuario honesto. Todos los pagos son digitales. firmado y, por lo tanto, si se utilizan las firmas digitales adecuadas, la probabilidad de falsificar un pago es mucho menor que 10−12 y, de hecho, es esencialmente 0. El mal evento que estamos dispuestos a tolerar con probabilidad F es que Algorand se bifurca blockchain. Observe que, con nuestra configuración de F y rondas de un minuto de duración, se espera que ocurra una bifurcación en el blockchain de Algorand con la menor frecuencia posible. (aproximadamente) una vez cada 1,9 millones de años. Por el contrario, en Bitcoin, las bifurcaciones ocurren con bastante frecuencia. Una persona más exigente puede establecer F en un valor más bajo. Con este fin, en nuestra segunda realización consideramos establecer F en 10−18. Tenga en cuenta que, suponiendo que se genera un bloque cada segundo, 1018 es el número estimado de segundos que ha tardado el Universo hasta el momento: desde el Big Bang hasta el presente tiempo. Por lo tanto, con F = 10−18, si se genera un bloque en un segundo, se debería esperar que para la edad de el Universo para ver una bifurcación. 2.6 El modelo adversario Algorand está diseñado para ser seguro en un modelo muy conflictivo. Expliquemos. Usuarios honestos y maliciosos Un usuario es honesto si sigue todas las instrucciones de su protocolo, y es perfectamente capaz de enviar y recibir mensajes. Un usuario es malicioso (es decir, bizantino, en el sentido lenguaje de computación distribuida) si puede desviarse arbitrariamente de sus instrucciones prescritas. El adversario El Adversario es un algoritmo eficiente (técnicamente de tiempo polinómico), personificado por el color, que puede convertir inmediatamente en malicioso a cualquier usuario que quiera, en cualquier momento que quiera (sujeto). sólo hasta un límite superior al número de usuarios que puede corromper). El Adversario controla totalmente y coordina perfectamente a todos los usuarios maliciosos. Él toma todas las acciones en su nombre, incluyendo recibir y enviar todos sus mensajes, y puede permitirles desviarse de sus instrucciones prescritas de manera arbitraria. O simplemente puede aislar a un usuario corrupto que envía y recibir mensajes. Aclaremos que nadie más se entera automáticamente de que un usuario i es malicioso, aunque su malicia puede traslucirse por las acciones que el Adversario le hace realizar. Este poderoso adversario, sin embargo, • No tiene un poder computacional ilimitado y no puede forjar con éxito la tecnología digital. firma de un usuario honesto, salvo con probabilidad insignificante; y• No puede interferir de ninguna manera con el intercambio de mensajes entre usuarios honestos. Además, su capacidad para atacar a usuarios honestos está limitada por uno de los siguientes supuestos. Honestidad Mayoría del dinero Consideramos un continuo de Mayoría Honesta del Dinero (HMM) supuestos: es decir, para cada entero no negativo k y real h > 1/2, HHMk > h: los usuarios honestos en cada ronda r poseían una fracción mayor que h de todo el dinero en el sistema en la ronda r −k. Discusión. Suponiendo que todos los usuarios malintencionados coordinan perfectamente sus acciones (como si estuvieran controlados por una sola entidad, el Adversario) es una hipótesis bastante pesimista. Coordinación perfecta entre también. para muchos individuos es difícil de lograr. Quizás la coordinación sólo se produzca dentro de grupos separados. de jugadores maliciosos. Pero como no se puede estar seguro del nivel de coordinación, los usuarios malintencionados podemos disfrutar, más vale prevenir que lamentar. Asumir que el Adversario puede corromper a los usuarios de forma secreta, dinámica e inmediata también es pesimista. Después de todo, de manera realista, tomar el control total de las operaciones de un usuario debería llevar algún tiempo. El supuesto HMMk > h implica, por ejemplo, que si se implementa una ronda (en promedio) Entonces, en un minuto, la mayor parte del dinero en una ronda determinada permanecerá en manos honestas durante al menos dos horas, si k = 120, y al menos una semana, si k = 10.000. Tenga en cuenta que los supuestos de HMM y la mayoría honesta de potencia informática anterior Los supuestos están relacionados en el sentido de que, dado que la potencia informática se puede comprar con dinero, Si los usuarios malintencionados poseen la mayor parte del dinero, entonces pueden obtener la mayor parte de la potencia informática. 2.7 El modelo de comunicación Prevemos que la propagación de mensajes —es decir, “chismes entre pares”5— sea el único medio de comunicación. Supuesto Temporal: Entrega Oportuna de Mensajes en Toda la Red. Para En la mayor parte de este artículo asumimos que cada mensaje propagado llega a casi todos los usuarios honestos. de manera oportuna. Eliminaremos esta suposición en la Sección 10, donde tratamos la red. particiones, ya sean naturales o inducidas adversamente. (Como veremos, sólo asumimos entrega oportuna de mensajes dentro de cada componente conectado de la red). Una forma concreta de capturar la entrega oportuna de mensajes propagados (en toda la red) es lo siguiente: Para toda accesibilidad \(\rho\) > 95% y tamaño de mensaje \(\mu\) \(\in\)Z+, existe \(\lambda\) \(\rho\),\(\mu\) tal que, si un usuario honesto propaga el mensaje m de \(\mu\)-byte en el momento t, entonces m alcanza, en el tiempo t + \(\lambda\) \(\rho\),μ, al menos una fracción \(\rho\) de los usuarios honestos. 5Esencialmente, como en Bitcoin, cuando un usuario propaga un mensaje m, cada usuario activo i recibe m por primera vez, selecciona aleatoriamente e independientemente un número adecuadamente pequeño de usuarios activos, sus "vecinos", a quienes reenvía m, posiblemente hasta que reciba un reconocimiento de ellos. La propagación de m termina cuando ningún usuario recibe m por primera vez.La propiedad anterior, sin embargo, no puede soportar nuestro protocolo Algorand, sin prever explícitamente y por separado un mecanismo para obtener el último blockchain, por parte de otro usuario/depósito/etc. De hecho, para construir un nuevo bloque Br no sólo se debe contar con un conjunto adecuado de verificadores que reciban oportunamente la ronda r. mensajes, sino también los mensajes de rondas anteriores, para conocer Br-1 y todos los demás mensajes anteriores. bloques, lo cual es necesario para determinar si los pagos en Br son válidos. lo siguiente en cambio, basta con asumirlo. Supuesto de propagación de mensajes (MP): Para todo \(\rho\) > 95% y \(\mu\) \(\in\)Z+, existe \(\lambda\) \(\rho\),\(\mu\) tal que, para todos los tiempos t y todos los mensajes de \(\mu\)-byte m propagados por un usuario honesto antes de t −\(\lambda\) \(\rho\),\(\mu\), m es recibido, en el tiempo t, por al menos una fracción \(\rho\) de los usuarios honestos. El protocolo Algorand ′ en realidad instruye a cada uno de un pequeño número de usuarios (es decir, los verificadores de un paso dado de una ronda en Algorand ′, para propagar un mensaje separado de un tamaño (pequeño) prescrito, y necesitamos limitar el tiempo necesario para cumplir estas instrucciones. Lo hacemos enriqueciendo al MP suposición de la siguiente manera. Para todo n, \(\rho\) > 95% y \(\mu\) \(\in\)Z+, existe \(\lambda\)n,\(\rho\),\(\mu\) tal que, para todos los tiempos t y todos los \(\mu\)-byte mensajes m1, . . . , mn, cada uno propagado por un usuario honesto antes de t −\(\lambda\)n,\(\rho\),\(\mu\), m1, . . . , se reciben mn, en el tiempo t, por al menos una fracción \(\rho\) de los usuarios honestos. Nota • El supuesto anterior es deliberadamente simple, pero también más sólido de lo necesario en nuestro artículo.6 • Por simplicidad, asumimos \(\rho\) = 1 y, por lo tanto, dejamos de mencionar \(\rho\). • Asumimos pesimistamente que, siempre que no viole el supuesto MP, el Adversario controla totalmente la entrega de todos los mensajes. En particular, sin que los honestos se den cuenta usuarios, el Adversario puede decidir arbitrariamente qué jugador honesto recibe qué mensaje cuando, y acelerar arbitrariamente la entrega de cualquier mensaje que desee.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.

El Protocolo BA BA⋆ en un entorno tradicional

Como ya se destacó, el acuerdo bizantino es un ingrediente clave de Algorand. En efecto, es a través el uso de un protocolo BA tal que Algorand no se vea afectado por las bifurcaciones. Sin embargo, para estar seguros contra nuestra poderoso adversario, Algorand debe confiar en un protocolo BA que satisfaga la nueva capacidad de reemplazo del jugador. restricción. Además, para que Algorand sea eficiente, dicho protocolo BA debe ser muy eficiente. Los protocolos BA se definieron por primera vez para un modelo de comunicación idealizado, sincrónico completo. redes (redes SC). Este modelo permite un diseño y análisis más simples de los protocolos BA. 6Dado el porcentaje honesto h y la probabilidad de falla aceptable F, Algorand calcula un límite superior, N, al número máximo de miembros de verificadores en un paso. Por lo tanto, el supuesto de MP sólo necesita ser válido para n \(\leq\)N. Además, como se indicó, la suposición de MP se mantiene sin importar cuántos otros mensajes puedan propagarse junto con él. los mj. Sin embargo, como veremos, en Algorand los mensajes en se propagan en un tiempo esencialmente no superpuesto. intervalos, durante los cuales se propaga un solo bloque o, como máximo, N verificadores propagan un bloque pequeño (por ejemplo, 200B). mensaje. Por lo tanto, podríamos reformular el supuesto de MP de una manera más débil, pero también más compleja. 7Por ejemplo, puede aprender inmediatamente los mensajes enviados por jugadores honestos. Así, un usuario malintencionado i′, que es Cuando se le pide que propague un mensaje simultáneamente con un usuario honesto i, siempre puede elegir su propio mensaje m′ basándose en el mensaje m realmente propagado por i. Esta capacidad está relacionada con la prisa, en el lenguaje de la computación distribuida. literatura.En consecuencia, en esta sección, presentamos un nuevo protocolo BA, BA⋆, para redes SC e ignoramos la cuestión de la reemplazabilidad de los jugadores por completo. El protocolo BA⋆ es una aportación de valor independiente. De hecho, es el protocolo BA criptográfico más eficiente para redes SC conocido hasta el momento. Para usarlo dentro de nuestro protocolo Algorand, modificamos BA⋆ un poco, para tener en cuenta nuestros diferentes modelo de comunicación y contexto, pero asegúrese, en la sección X, de resaltar cómo se utiliza BA⋆ dentro de nuestro protocolo actual Algorand ′. Comenzamos recordando el modelo en el que opera BA⋆ y la noción de acuerdo bizantino. 3.1 Redes completas sincrónicas y adversarios coincidentes En una red SC, hay un reloj común, que hace tictac en cada integral en tiempos r = 1, 2,. . . En cada momento par, haga clic en r, cada jugador i envía instantánea y simultáneamente un único mensaje señor i,j (posiblemente el mensaje vacío) a cada jugador j, incluido él mismo. cada señor i,j se recibe en ese momento haga clic en r + 1 por parte del jugador j, junto con la identidad del remitente i. Nuevamente, en un protocolo de comunicación, un jugador es honesto si sigue todas sus instrucciones prescritas. instrucciones y maliciosas en caso contrario. Todos los jugadores maliciosos están totalmente controlados y perfectamente coordinado por el Adversario, quien, en particular, recibe inmediatamente todos los mensajes dirigidos a jugadores maliciosos y elige los mensajes que envían. El adversario puede convertir inmediatamente en malicioso a cualquier usuario honesto que desee en cualquier momento. quiere, sujeto únicamente a un posible límite superior t para el número de jugadores maliciosos. Es decir, el Adversario “no puede interferir con los mensajes ya enviados por un usuario honesto i”, que será Entregado como de costumbre. El Adversario también tiene la capacidad adicional de ver instantáneamente, en cada ronda par, el mensajes que envían los jugadores actualmente honestos, y utilizar instantáneamente esta información para elegir los mensajes que los jugadores maliciosos envían al mismo tiempo marcan. Observaciones • Poder Adversario. La configuración anterior es muy conflictiva. De hecho, en el acuerdo bizantino En la literatura, muchos entornos son menos conflictivos. Sin embargo, algunos escenarios más conflictivos han También se ha considerado, donde el Adversario, después de ver los mensajes enviados por un jugador honesto, en un momento dado haga clic en r, tiene la capacidad de borrar todos estos mensajes de la red, inmediatamente corrupto i, elija el mensaje que envía el ahora malicioso i en el momento de hacer clic en r y haga que Entregado como de costumbre. El poder previsto del Adversario coincide con el que tiene en nuestro entorno. • Abstracción Física. El modelo de comunicación previsto abstrae un modelo más físico, en el que cada par de jugadores (i, j) está unido por una línea de comunicación separada y privada li,j. Es decir, nadie más puede inyectar, interferir u obtener información sobre los mensajes enviados. li,j. La única manera que tiene el Adversario de tener acceso a li,j es corromper a i o j. • Privacidad y Autenticación. En las redes SC se garantiza la privacidad y autenticación de los mensajes. por suposición. Por el contrario, en nuestra red de comunicación, donde los mensajes se propagan De igual a igual, la autenticación está garantizada mediante firmas digitales y la privacidad es inexistente. Así, para adoptar el protocolo BA⋆ en nuestro entorno, cada mensaje intercambiado debe estar firmado digitalmente. (identificando además el estado en el que fue enviado). Afortunadamente, los protocolos de BA que utilizamos considere usar en Algorand no requiere privacidad de mensajes.3.2 La noción de un acuerdo bizantino La noción de acuerdo bizantino fue introducida por Pease Shostak y Lamport [31] para el Caso binario, es decir, cuando cada valor inicial consta de un bit. Sin embargo, se amplió rápidamente. a valores iniciales arbitrarios. (Ver las encuestas de Fischer [16] y Chor y Dwork [10].) Por un BA protocolo, nos referimos a uno de valor arbitrario. Definición 3.1. En una red síncrona, sea P un protocolo de n jugadores, cuyo conjunto de jugadores es común conocimiento entre los jugadores, t un entero positivo tal que n \(\geq\)2t + 1. Decimos que P es un valor arbitrario (respectivamente, binario) (n, t) -Protocolo de acuerdo bizantino con solidez \(\sigma\) \(\in\)(0, 1) si, para cada conjunto de valores V que no contiene el símbolo especial \(\bot\) (respectivamente, para V = {0, 1}), en un ejecución en la que como máximo t de los jugadores son maliciosos y en la que cada jugador i comienza con un valor inicial vi \(\in\)V , cada jugador honesto j se detiene con probabilidad 1, generando un valor outi \(\in\)V \(\cup\){\(\bot\)} de modo que se satisfagan, con probabilidad al menos \(\sigma\), las dos condiciones siguientes: 1. Acuerdo: Existe out \(\in\)V \(\cup\){\(\bot\)} tal que outi = out para todos los jugadores honestos i. 2. Consistencia: si, para algún valor v \(\in\)V, vi = v para todos los jugadores honestos, entonces out = v. Nos referimos a out como la salida de P y a cada outi como la salida del jugador i. 3.3 La notación BA # En nuestros protocolos de BA, un jugador debe contar cuántos jugadores le enviaron un mensaje determinado en un paso dado. En consecuencia, para cada valor posible v que podría enviarse,

s

yo(v) (o simplemente #i(v) cuando s está claro) es el número de jugadores j de los cuales he recibido v en el paso s. Recordando que un jugador i recibe exactamente un mensaje de cada jugador j, si el número de jugadores es n, entonces, para todos i y s, P v#s yo(v) = norte. 3.4 El protocolo binario BA BBA⋆ En esta sección presentamos un nuevo protocolo BA binario, BBA⋆, que se basa en la honestidad de más de dos tercios de los jugadores y es muy rápido: no importa lo que puedan hacer los jugadores maliciosos, cada ejecución de su bucle principal hace que los jugadores se pongan de acuerdo con una probabilidad de 1/3. Cada jugador tiene su propia clave pública de un esquema de firma digital que satisface la firma única. propiedad. Dado que este protocolo está diseñado para ejecutarse en una red completa síncrona, no hay Necesito que un jugador firme cada uno de sus mensajes. Las firmas digitales se utilizan para generar un bit aleatorio suficientemente común en el Paso 3. (En Algorand, Las firmas digitales también se utilizan para autenticar todos los demás mensajes). El protocolo requiere una configuración mínima: una cadena aleatoria común r, independiente de los jugadores llaves. (En Algorand, r en realidad se reemplaza por la cantidad Qr.) El protocolo BBA⋆ es un bucle de 3 pasos, donde los jugadores intercambian repetidamente valores booleanos y Diferentes jugadores pueden salir de este bucle en diferentes momentos. Un jugador i sale de este bucle propagándose, en algún paso, ya sea un valor especial 0∗ o un valor especial 1∗, instruyendo así a todos los jugadores a "fingir" que reciben respectivamente 0 y 1 de i en todos los pasos futuros. (Dicho alternativamente: asumirque el último mensaje recibido por un jugador j de otro jugador i fue un poco b. Luego, en cualquier paso en el que no recibe ningún mensaje de i, j actúa como si le hubiera enviado el bit b.) El protocolo utiliza un contador \(\gamma\), que representa cuántas veces se ha ejecutado su bucle de 3 pasos. Al comienzo de BBA⋆, \(\gamma\) = 0. (Se puede pensar en \(\gamma\) como un contador global, pero en realidad aumenta por cada jugador individual cada vez que se ejecuta el bucle.) Hay n \(\geq\)3t + 1, donde t es el número máximo posible de jugadores maliciosos. un binario la cadena x se identifica con el número entero cuya representación binaria (con posibles ceros iniciales) es x; y lsb(x) denota el bit menos significativo de x. Protocolo BBA⋆ (Comunicación) Paso 1. [Paso Coin-Fixed-To-0] Cada jugador i envía bi. 1.1 Si #1 i (0) \(\geq\)2t + 1, luego i establece bi = 0, envía 0∗, genera outi = 0, y SE DETIENE. 1.2 Si #1 i (1) \(\geq\)2t + 1, entonces, entonces i establece bi = 1. 1.3 De lo contrario, establezco bi = 0. (Comunicación) Paso 2. [Paso de moneda fijada a 1] Cada jugador i envía bi. 2.1 Si #2 i (1) \(\geq\)2t + 1, entonces i establece bi = 1, envía 1∗, salidas outi = 1, y SE DETIENE. 2.2 Si #2 i (0) \(\geq\)2t + 1, luego establezco bi = 0. 2.3 De lo contrario, establezco bi = 1. (Comunicación) Paso 3. [Paso lanzado genuinamente con moneda] Cada jugador i envía bi y SIGi(r, \(\gamma\)). 3.1 Si #3 i (0) \(\geq\)2t + 1, entonces i establece bi = 0. 3.2 Si #3 i (1) \(\geq\)2t + 1, entonces i establece bi = 1. 3.3 De lo contrario, dejando Si = {j \(\in\)N que le han enviado a i un mensaje adecuado en este paso 3 }, i establece bi = c \(\triangleq\)lsb(minj\(\in\)Si H(SIGi(r, \(\gamma\)))); aumenta \(\gamma\)i en 1; y regresa al Paso 1. Teorema 3.1. Siempre que n \(\geq\)3t + 1, BBA⋆ es un protocolo binario (n, t)-BA con solidez 1. En [26] se proporciona una demostración del teorema 3.1. Su adaptación a nuestro entorno y su reemplazabilidad del jugador. La propiedad es novedosa. Observación histórica Los protocolos BA binarios probabilísticos fueron propuestos por primera vez por Ben-Or en configuraciones asincrónicas [7]. El protocolo BBA⋆ es una adaptación novedosa, a nuestro entorno de clave pública, del Protocolo binario BA de Feldman y Micali [15]. Su protocolo fue el primero en funcionar de la manera esperada. número constante de pasos. Funcionó haciendo que los propios jugadores implementaran una moneda común, una noción propuesta por Rabin, quien la implementó a través de una parte externa de confianza [32].3.5 Consenso Graduado y el Protocolo CG Recordemos, para los valores arbitrarios, una noción de consenso mucho más débil que el acuerdo bizantino. Definición 3.2. Sea P un protocolo en el que el conjunto de todos los jugadores es de conocimiento común y cada uno El jugador i conoce en privado un valor inicial arbitrario v′. yo. Decimos que P es un protocolo de consenso graduado (n, t) si, en cada ejecución con n jugadores, en la mayoría de los cuales son maliciosos, cada jugador honesto deja de generar un par valor-grado (vi, gi), donde gi \(\in\){0, 1, 2}, para satisfacer las tres condiciones siguientes: 1. Para todos los jugadores honestos i y j, |gi −gj| \(\leq\)1. 2. Para todos los jugadores honestos i y j, gi, gj > 0 ⇒vi = vj. 3. Si v′ 1 = \(\cdots\) = v′ n = v para algún valor v, luego vi = v y gi = 2 para todos los jugadores honestos i. Nota histórica La noción de consenso gradual se deriva simplemente de la de consenso gradual. transmitido, presentado por Feldman y Micali en [15], al fortalecer la noción de un cruzado acuerdo, presentado por Dolev [12] y perfeccionado por Turpin y Coan [33].8 En [15], los autores también proporcionaron un protocolo de transmisión graduado de 3 pasos (n, t), Gradecast, para n\(\geq\)3t+1. Posteriormente se encontró un protocolo de transmisión graduado (n, t) más complejo para n > 2t+1. por Katz y Koo [19]. El siguiente protocolo de dos pasos GC consta de los dos últimos pasos de Gradecast, expresados en nuestro notación. Para enfatizar este hecho, y para coincidir con los pasos del protocolo Algorand ′ de la sección 4.1, respectivamente nombre 2 y 3 los pasos de GC. Protocolo GC Paso 2. Cada jugador que envío v′ Yo a todos los jugadores. Paso 3. Cada jugador i envía a todos los jugadores la cadena x si y solo si #2 yo (x) \(\geq\)2t + 1. Determinación de la producción. Cada jugador i genera el par (vi, gi) calculado de la siguiente manera: • Si, para alguna x, #3 i (x) \(\geq\)2t + 1, entonces vi = x y gi = 2. • Si, para alguna x, #3 i (x) \(\geq\)t + 1, entonces vi = x y gi = 1. • En caso contrario, vi = \(\bot\) y gi = 0. Teorema 3.2. Si n \(\geq\)3t + 1, entonces GC es un protocolo de transmisión graduado (n, t). La prueba se deriva inmediatamente de la del protocolo de calificaciones en [15] y, por lo tanto, se omite.9 8En esencia, en un protocolo de transmisión gradual, (a) el aporte de cada jugador es la identidad de un distinguido jugador, el remitente, que tiene un valor arbitrario v como entrada privada adicional, y (b) las salidas deben satisfacer el mismas propiedades 1 y 2 del consenso graduado, más la siguiente propiedad 3′: si el remitente es honesto, entonces vi = v y gi = 2 para todo jugador honesto i. 9De hecho, en su protocolo, en el paso 1, el remitente envía su propio valor privado v a todos los jugadores, y cada jugador i permite v′ Estoy compuesto por el valor que realmente recibió del remitente en el paso 1.3.6 El Protocolo BA⋆ Ahora describimos el protocolo BA de valor arbitrario BA⋆ a través del protocolo BA binario BBA⋆ y el protocolo de consenso graduado GC. A continuación, el valor inicial de cada jugador i es v′ yo. Protocolo BA⋆ Pasos 1 y 2. Cada jugador i ejecuta GC, en la entrada v′ i, para calcular un par (vi, gi). Paso 3,. . . Cada jugador i ejecuta BBA⋆—con entrada inicial 0, si gi = 2, y 1 en caso contrario—por lo que para calcular el bit outi. Determinación de la producción. Cada jugador i genera vi, si outi = 0, y \(\bot\) en caso contrario. Teorema 3.3. Siempre que n \(\geq\)3t + 1, BA⋆es un protocolo (n, t)-BA con solidez 1. Prueba. Primero demostramos la coherencia y luego el acuerdo. Prueba de coherencia. Supongamos que, para algún valor v \(\in\)V , v′ i = v. Entonces, por la propiedad 3 de Consenso calificado, después de la ejecución de GC, todos los jugadores honestos salen (v, 2). En consecuencia, 0 es la parte inicial de todos los jugadores honestos al final de la ejecución de BBA⋆. Así, por el Acuerdo propiedad del acuerdo bizantino binario, al final de la ejecución de BA⋆, outi = 0 para todos los honestos jugadores. Esto implica que la producción de cada jugador honesto i en BA⋆es vi = v. ✷ Prueba de Acuerdo. Dado que BBA⋆ es un protocolo BA binario, ya sea (A) outi = 1 para todo jugador honesto i, o (B) outi = 0 para todo jugador honesto i. En el caso A, todos los jugadores honestos generan \(\bot\) en BA⋆ y, por lo tanto, se cumple el acuerdo. Consideremos ahora el caso B. En En este caso, en la ejecución de BBA⋆, el bit inicial de al menos un jugador honesto i es 0. (De hecho, si El bit inicial de todos los jugadores honestos fuera 1, entonces, según la propiedad de consistencia de BBA⋆, tendríamos outj = 1 para todos los j honestos). En consecuencia, después de la ejecución de GC, i genera el par (v, 2) para algunos valor v. Por tanto, según la propiedad 1 del consenso graduado, gj > 0 para todos los jugadores honestos j. En consecuencia, por propiedad 2 del consenso graduado, vj = v para todos los jugadores honestos j. Esto implica que, al final de BA⋆, todo jugador honesto j produce v. Por lo tanto, el acuerdo también se cumple en el caso B. ✷ Dado que se mantienen tanto la coherencia como el acuerdo, BA⋆ es un protocolo BA de valor arbitrario. Nota histórica Turpin y Coan fueron los primeros en demostrar que, para n \(\geq\)3t+1, cualquier binario (n, t)-BA El protocolo se puede convertir en un protocolo de valor arbitrario (n, t) -BA. La reducción del valor arbitrario. Del acuerdo bizantino al acuerdo bizantino binario a través del consenso graduado es más modular y más limpio y simplifica el análisis de nuestro protocolo Algorand Algorand ′. Generalizando BA⋆para uso en Algorand Algorand funciona incluso cuando toda la comunicación se realiza a través de chismeando. Sin embargo, aunque se presenta en una red de comunicación tradicional y familiar, para Para permitir una mejor comparación con el estado de la técnica y una comprensión más fácil, el protocolo BA⋆funciona también en redes de chismes. De hecho, en nuestras realizaciones detalladas de Algorand, lo presentaremos directamente para las redes de chismes. También señalaremos que satisface la reemplazabilidad del jugador. propiedad que es crucial para que Algorand esté seguro en el modelo muy adversario previsto.

Cualquier protocolo reemplazable por un reproductor BA que funcione en una red de comunicación chismosa puede ser empleado de forma segura dentro del sistema inventivo Algorand. En particular, Micali y Vaikunthanatan Hemos ampliado BA⋆ para que funcione de manera muy eficiente también con una mayoría simple de jugadores honestos. eso El protocolo también podría usarse en 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.

Dos realizaciones de Algorand

Como se analizó, en un nivel muy alto, una ronda de Algorand idealmente se desarrolla de la siguiente manera. Primero, al azar El usuario seleccionado, el líder, propone y hace circular un nuevo bloque. (Este proceso incluye inicialmente seleccionar algunos líderes potenciales y luego garantizar que, al menos una buena fracción del tiempo, emerge un solo líder común.) En segundo lugar, se selecciona un comité de usuarios seleccionado al azar, y llega a un acuerdo bizantino sobre el bloque propuesto por el líder. (Este proceso incluye que cada paso del protocolo BA es dirigido por un comité seleccionado por separado). El bloque acordado luego es firmado digitalmente por un umbral determinado (TH) de miembros del comité. Estas firmas digitales Se circulan para que todos tengan la seguridad de cuál es el nuevo bloque. (Esto incluye hacer circular el credencial de los firmantes y autenticar solo el hash del nuevo bloque, asegurando que todos Se garantiza que aprenderá el bloque, una vez que se aclare su hash). En las dos secciones siguientes, presentamos dos realizaciones de Algorand, Algorand ′ 1 y Algorand ′ 2, que funcionan bajo el supuesto de que la mayoría de los usuarios son honestos. En la Sección 8 mostramos cómo adoptar estos encarnaciones para trabajar bajo una suposición honesta de mayoría del dinero. Algorand ′ 1 sólo prevé que > 2/3 de los miembros del comité sean honestos. Además, en Algorand ′ 1, el número de pasos para llegar a un acuerdo bizantino tiene un límite suficientemente alto número, de modo que se garantiza que se llegará a un acuerdo con una probabilidad abrumadora en un plazo número fijo de pasos (pero potencialmente requiere más tiempo que los pasos de Algorand ′ 2). en el caso remoto en el que aún no se llega a un acuerdo en el último paso, el comité acuerda la bloque vacío, que siempre es válido. Algorand ′ 2 prevé que el número de miembros honestos de un comité sea siempre mayor que el o igual a un umbral fijo tH (que garantiza que, con una probabilidad abrumadora, al menos 2/3 de los miembros del comité son honestos). Además, Algorand ′ 2 permite que el acuerdo bizantino alcanzarse en un número arbitrario de pasos (pero potencialmente en un tiempo más corto que Algorand ′ 1). Es fácil derivar muchas variantes de estas realizaciones básicas. En particular, es fácil, dado Algorand ′ 2, para modificar Algorand ′ 1 para permitir llegar a un acuerdo bizantino de forma arbitraria número de pasos. Ambas realizaciones comparten los siguientes núcleos, notaciones, nociones y parámetros comunes. 4.1 Un núcleo común Objetivos Idealmente, para cada ronda r, Algorand satisfaría las siguientes propiedades: 1. Perfecta corrección. Todos los usuarios honestos coinciden en el mismo bloque Br. 2. Integridad 1. Con probabilidad 1, el conjunto de pagos de Br, PAY r, es máximo.10 10Debido a que se define que los pagos contienen pagos válidos y que los usuarios honestos solo realizan pagos válidos, un máximo PAY r contiene los pagos "actualmente pendientes" de todos los usuarios honestos.Por supuesto, garantizar por sí solo la corrección perfecta es trivial: cada uno elige siempre el payset PAY r para estar vacío. Pero en este caso, el sistema tendría una completitud 0. Desafortunadamente, Garantizar tanto la exactitud como la integridad 1 no es fácil en presencia de información maliciosa. usuarios. Algorand adopta así un objetivo más realista. Informalmente, sea h el porcentaje de usuarios que son honestos, h > 2/3, el objetivo de Algorand es Garantizando, con abrumadora probabilidad, perfecta corrección e integridad cerca de h. Privilegiar la corrección sobre la integridad parece una opción razonable: los pagos no procesados en Una ronda se puede procesar en la siguiente, pero se deben evitar los tenedores, si es posible. Acuerdo bizantino liderado La corrección perfecta se puede garantizar de la siguiente manera. al principio de la ronda r, cada usuario i construye su propio bloque candidato Br i, y luego todos los usuarios llegan a Byzantine acuerdo sobre un bloque de candidatos. Según nuestra introducción, el protocolo BA empleado requiere una mayoría honesta de 2/3 y es jugador reemplazable. Cada uno de sus pasos puede ser ejecutado por un pequeño y conjunto de verificadores seleccionados al azar, que no comparten ninguna variable interna. Desafortunadamente, este enfoque no ofrece garantías de integridad. Esto es así porque el candidato Lo más probable es que los bloques de usuarios honestos sean totalmente diferentes entre sí. Así, en definitiva El bloque acordado siempre puede ser uno con un pago no máximo. De hecho, siempre puede ser el bloque vacío, B\(\varepsilon\), es decir, el bloque cuyo payset está vacío. Será el predeterminado, vacío. Algorand ′ evita este problema de integridad de la siguiente manera. Primero, se selecciona un líder para la ronda r, \(\ell\)r. Luego, \(\ell\)r propaga su propio bloque candidato, Br \(\ell\)r. Finalmente, los usuarios llegan a un acuerdo sobre el bloque en realidad reciben de \(\ell\)r. Porque, siempre que \(\ell\)r sea honesto, Perfecta Corrección e Integridad 1 ambos se mantienen, Algorand ′ asegura que \(\ell\)r es honesto con una probabilidad cercana a h. (Cuando el líder es malicioso, no nos importa si el bloque acordado tiene un conjunto de pagos vacío. Después de todo, un El líder malicioso \(\ell\)r siempre puede elegir maliciosamente a Br. \(\ell\)r para ser el bloque vacío, y luego honestamente propagarlo, obligando así a los usuarios honestos a aceptar el bloque vacío). Selección de líder En Algorand, el bloque r tiene la forma Br = (r, PAY r, Qr, H(Br−1). Como ya se mencionó en la introducción, la cantidad Qr−1 se construye cuidadosamente para que sea esencialmente no manipulable por nuestro muy poderoso Adversario. (Más adelante en esta sección, veremos proporcionar alguna intuición sobre por qué este es el caso.) Al comienzo de una ronda r, todos los usuarios saben blockchain hasta ahora, B0, . . . , Br−1, de donde deducen el conjunto de usuarios de cada ronda anterior: que es, PK1, . . . , PKr-1. Un líder potencial de la ronda r es un usuario i tal que .H SIGi r, 1, Qr−1 \(\leq\)p. Expliquemos. Tenga en cuenta que, dado que la cantidad Qr−1 es parte del bloque Br−1, y el subyacente El esquema de firma satisface la propiedad de unicidad, SIGi. r, 1, Qr−1 es una cadena binaria únicamente asociado a i y r. Por lo tanto, dado que H es un oracle aleatorio, H SIGi r, 1, Qr−1 es un aleatorio de 256 bits cadena larga asociada únicamente a i y r. El símbolo "." frente a h SIGi r, 1, Qr−1 es el punto decimal (en nuestro caso, binario), de modo que ri \(\triangleq\).H SIGi r, 1, Qr−1 es la expansión binaria de a Número aleatorio de 256 bits entre 0 y 1 asociado únicamente a i y r. Así, la probabilidad de que ri es menor o igual que p es esencialmente p. (Nuestro mecanismo de selección de líderes potenciales ha sido inspirado en el esquema de micropagos de Micali y Rivest [28].) La probabilidad p se elige de modo que, con una probabilidad abrumadora (es decir, 1 −F), al menos una El verificador potencial es honesto. (De hecho, se elige p como la probabilidad más pequeña).Tenga en cuenta que, dado que i es el único capaz de calcular sus propias firmas, sólo él puede determinar si es un verificador potencial de la ronda 1. Sin embargo, al revelar su propia credencial, \(\sigma\)r yo \(\triangleq\)SIGi r, 1, Qr−1 , puedo demostrarle a cualquiera que soy un verificador potencial de la ronda r. El líder \(\ell\)r se define como el líder potencial cuya credencial hashed es más pequeña que la hashed credencial de todos los demás líderes potenciales j: es decir, H(\(\sigma\)r,s \(\ell\)r ) \(\leq\)H(\(\sigma\)r,s j). Tenga en cuenta que, dado que un \(\ell\)r malicioso no puede revelar su credencial, el líder correcto de la ronda r puede nunca se sabrá, y que, salvo vínculos improbables, \(\ell\)r es de hecho el único líder de la ronda r. Por último, mencionemos un último pero importante detalle: un usuario i puede ser un líder potencial (y por tanto el líder) de una ronda r sólo si perteneció al sistema durante al menos k rondas. Esto garantiza la no manipulabilidad de Qr y de todas las cantidades Q futuras. De hecho, uno de los líderes potenciales en realidad determinará Qr. Selección del verificador Cada paso s > 1 de la ronda r es ejecutado por un pequeño conjunto de verificadores, SV r,s. Nuevamente, cada verificador i \(\in\)SV r,s se selecciona aleatoriamente entre los usuarios que ya están en el sistema k rondas antes de r, y nuevamente a través de la cantidad especial Qr−1. Específicamente, i \(\in\)PKr−k es un verificador en SV r,s, si .H SIGi r, s, Qr−1 \(\leq\)p′. Una vez más, sólo yo sé si pertenece al SV r,s, pero, si es así, podría demostrarlo mediante exhibiendo su credencial \(\sigma\)r,s yo \(\triangleq\)H(SIGi r, s, Qr−1 ). Un verificador i \(\in\)SV r,s envía un mensaje, mr,s yo, en paso s de la ronda r, y este mensaje incluye su credencial \(\sigma\)r,s i , para permitir a los verificadores del Nido paso para reconocer que el señor yo es un mensaje de paso legítimo. La probabilidad p′ se elige de manera que se asegure que, en SV r,s, siendo #good el número de usuarios honestos y #bad el número de usuarios maliciosos, con una probabilidad abrumadora los siguientes Se cumplen dos condiciones. Para la realización Algorand ′ 1: (1) #bueno > 2 \(\cdot\) #malo y (2) #bueno + 4 \(\cdot\) #malo < 2n, donde n es la cardinalidad esperada de SV r,s. Para la realización Algorand ′ 2: (1) #bueno > tH y (2) #bueno + 2#malo < 2tH, donde tH es un umbral especificado. Estas condiciones implican que, con una probabilidad suficientemente alta, (a) en el último paso del BA protocolo, habrá al menos un número determinado de jugadores honestos para firmar digitalmente el nuevo bloque Br, (b) sólo un bloque por ronda puede tener el número necesario de firmas, y (c) el BA utilizado El protocolo tiene (en cada paso) la mayoría honesta requerida de 2/3. Aclarando la generación de bloques Si el líder redondo-r \(\ell\)r es honesto, entonces el bloque correspondiente es de la forma hermano = r, PAGAR r, SIG\(\ell\)r Qr−1 , h Br-1 , donde el salario PAY r es máximo. (Recuerde que todos los pagos son, por definición, colectivamente válidos). De lo contrario (es decir, si \(\ell\)r es malicioso), Br tiene una de las dos formas posibles siguientes: hermano = r, PAGAR r, SIGi qr-1 , h Br-1 y Br = Br \(\varepsilon\) \(\triangleq\) r, \(\emptyset\), Qr−1, H Br-1 .En la primera forma, el PAGO r es un conjunto de pagos (no necesariamente máximo) y puede ser el PAGO r = \(\emptyset\); y yo soy un líder potencial de la ronda r. (Sin embargo, es posible que no sea el líder \(\ell\)r. Esto de hecho puede suceder si \(\ell\)r mantiene en secreto su credencial y no se revela.) La segunda forma surge cuando, en la ejecución de la ronda r del protocolo BA, todos los jugadores honestos genera el valor predeterminado, que es el bloque vacío Br \(\varepsilon\) en nuestra aplicación. (Por definición, la posible Las salidas de un protocolo BA incluyen un valor predeterminado, indicado genéricamente por \(\bot\). Ver sección 3.2.) Tenga en cuenta que, aunque los paysets están vacíos en ambos casos, Br = r, \(\emptyset\), SIGi qr-1 , h Br-1 y hermano \(\varepsilon\) son bloques sintácticamente diferentes y surgen en dos situaciones diferentes: respectivamente, “todos transcurrió sin problemas en la ejecución del protocolo BA”, y “algo salió mal en el Protocolo BA y se emitió el valor predeterminado”. Describamos ahora intuitivamente cómo se produce la generación del bloque Br en la ronda r de Algorand ′. En el primer paso, cada jugador elegible, es decir, cada jugador i \(\in\)PKr−k, verifica si es un potencial líder. Si este es el caso, entonces se me pregunta, utilizando todos los pagos que ha visto hasta ahora, y el actual blockchain, B0, . . . , Br−1, para preparar en secreto un conjunto de pagos máximo, PAY r yo y en secreto reúne su bloque candidato, Br = r, PAGAR r yo, SIGi qr-1 , h Br-1 . Es decir, no sólo él incluir en br i , como segundo componente, el conjunto de pagos recién preparado, pero también, como tercer componente, su propia firma de Qr−1, el tercer componente del último bloque, Br−1. Finalmente, propaga su mensaje redondo-r-paso-1, señor,1 i , que incluye (a) su bloque candidato Br i , (b) su firma apropiada de su bloque de candidatos (es decir, su firma del hash del Hno. i , y (c) su propia credencial \(\sigma\)r,1 yo, probando que de hecho es un verificador potencial de la ronda r. (Tenga en cuenta que, hasta que un i honesto produzca su mensaje mr,1 Yo, el Adversario no tiene idea de que soy un verificador potencial. Si quisiera corromper a líderes potenciales honestos, el Adversario también podría jugadores honestos al azar corruptos. Sin embargo, una vez que ve al señor,1 i, ya que contiene la credencial de i, el El adversario sabe y podría corromperme, pero no puede impedir que mr,1 i , que se propaga viralmente, de llegar a todos los usuarios del sistema). En el segundo paso, cada verificador seleccionado j \(\in\)SV r,2 intenta identificar al líder de la ronda. Específicamente, j toma las credenciales del paso 1, \(\sigma\)r,1 i1 , . . . , \(\sigma\)r,1 en , contenido en el mensaje adecuado del paso 1 mr,1 yo ha recibido; hashestablece todos, es decir, calcula H  \(\sigma\)r,1 i1  , . . . , h  \(\sigma\)r,1 en  ; encuentra la credencial, \(\sigma\)r,1 \(\ell\)j , cuyo hash es lexicográficamente mínimo; y considera \(\ell\)r j para ser el líder de la ronda r. Recordemos que cada credencial considerada es una firma digital de Qr−1, que SIGi r, 1, Qr−1 es determinado únicamente por i y Qr−1, que H es aleatorio oracle y, por tanto, que cada H(SIGi r, 1, Qr−1 es una cadena aleatoria de 256 bits de longitud única para cada líder potencial i de la ronda r. De esto podemos concluir que, si la cadena de 256 bits Qr−1 fuera aleatoria e independientemente seleccionado, entonces serían las credenciales hashed de todos los líderes potenciales de la ronda r. De hecho, todos Los líderes potenciales están bien definidos, al igual que sus credenciales (ya sean realmente calculadas o calculadas). no). Además, el conjunto de líderes potenciales de la ronda r es un subconjunto aleatorio de los usuarios de la ronda r −k, y un líder potencial honesto siempre construye y propaga adecuadamente su mensaje, señor yo, que contiene la credencial de i. Por lo tanto, dado que el porcentaje de usuarios honestos es h, no importa cuál sea el líderes potenciales maliciosos podrían hacer (por ejemplo, revelar u ocultar sus propias credenciales), el mínimo La credencial de líder potencial hashed pertenece a un usuario honesto, quien necesariamente es identificado por todos. ser el líder \(\ell\)r de la ronda r. En consecuencia, si la cadena de 256 bits Qr-1 fuera aleatoria y seleccionado independientemente, con probabilidad exactamente h (a) el líder \(\ell\)r es honesto y (b) \(\ell\)j = \(\ell\)r para todos verificadores honestos del paso 2 j. En realidad, las credenciales hashed se seleccionan, sí, al azar, pero dependen de Qr-1, que esno seleccionados de forma aleatoria e independiente. Sin embargo, demostraremos en nuestro análisis que Qr−1 es suficientemente no manipulable para garantizar que el líder de una ronda sea honesto con la probabilidad h′ suficientemente cerca de h: es decir, h′ > h2(1 + h −h2). Por ejemplo, si h = 80%, entonces h′ > 0,7424. Habiendo identificado al líder de la ronda (lo que hacen correctamente cuando el líder \(\ell\)r es honesto), La tarea de los verificadores del paso 2 es comenzar a ejecutar el BA utilizando como valores iniciales lo que ellos creen. ser el bloque del líder. En realidad, para minimizar la cantidad de comunicación requerida, un verificador j \(\in\)SV r,2 no utiliza como valor de entrada v′ j al protocolo bizantino, el bloque Bj que en realidad ha recibido de \(\ell\)j (el usuario j cree que es el líder), pero el líder, pero el hash de ese bloque, es decir, v′ j = H(Bi). Por lo tanto, al finalizar el protocolo BA, los verificadores del último paso no calcula el bloque redondo-r deseado Br, sino que calcula (autentica y propagar) H(Br). En consecuencia, dado que H(Br) está firmado digitalmente por un número suficiente de verificadores del último paso del protocolo BA, los usuarios del sistema se darán cuenta de que H(Br) es el hash del nuevo bloque. Sin embargo, también deben recuperar (o esperar, ya que la ejecución es bastante asincrónica) el bloquear Br en sí, que el protocolo garantiza que esté realmente disponible, sin importar cuál sea el adversario podría servir. Asincronía y sincronización Algorand ′ 1 y Algorand ′ 2 tienen un grado significativo de asincronía. Esto es así porque el Adversario tiene una gran libertad para programar la entrega de los mensajes que se envían. propagado. Además, ya sea que el número total de pasos en una ronda esté limitado o no, existe la varianza contribuye por el número de pasos realmente tomados. Tan pronto como conozca los certificados de B0,. . . , Br−1, un usuario i calcula Qr−1 y comienza a trabajar en la ronda r, comprobando si es un líder potencial o un verificador en algunos pasos de la ronda r. Suponiendo que debo actuar en el paso s, a la luz de la asincronía discutida, me baso en varios estrategias para asegurar que tenga suficiente información antes de actuar. Por ejemplo, podría esperar a recibir al menos un número determinado de mensajes de los verificadores de el paso anterior, o esperar un tiempo suficiente para asegurarse de que recibe los mensajes de suficiente muchos verificadores del paso anterior. La semilla Qr y el parámetro retrospectivo k Recuerde que, idealmente, las cantidades Qr deberían aleatorios e independientes, aunque bastará con que sean lo suficientemente no manipulables por el Adversario. A primera vista, podríamos elegir Qr−1 para que coincida con H PAGAR r-1 , y así evitar especifique Qr−1 explícitamente en Br−1. Un análisis elemental revela, sin embargo, que los usuarios malintencionados pueden aprovechar este mecanismo de selección.11 Algunos esfuerzos adicionales muestran que miles de otros 11Estamos al comienzo de la ronda r −1. Por lo tanto, Qr−2 = PAY r−2 se conoce públicamente y el Adversario se conoce en privado. sabe quiénes son los líderes potenciales que controla. Supongamos que el Adversario controla el 10% de los usuarios, y que, con una probabilidad muy alta, un usuario malintencionado w es el líder potencial de la ronda r −1. Es decir, suponer que h SIGw r-2, 1, Qr-2 es tan pequeño que es muy improbable que un líder potencial honesto sea realmente el líder de la ronda r −1. (Recuerde que, dado que elegimos líderes potenciales mediante un mecanismo secreto de clasificación criptográfica, El Adversario no sabe quiénes son los líderes potenciales honestos.) El Adversario, por lo tanto, está en la envidiable posición de elegir el pago PAY ′ que desea y hacer que se convierta en el pago oficial de la ronda r −1. Sin embargo, él puede hacer más. También puede asegurar que, con alta probabilidad, () uno de sus usuarios maliciosos será el líder también de la ronda r, para que pueda seleccionar libremente cuál será el PAGO r. (Y así sucesivamente. Al menos durante mucho tiempo, es decir, siempre y cuando estos eventos de alta probabilidad realmente ocurran.) Para garantizar (), el Adversario actúa de la siguiente manera. Deja PAGAR ′ sea el pago que prefiera el adversario para la ronda r −1. Luego, calcula H(PAY ′) y comprueba si, para algunos ya el jugador malicioso z, SIGz(r, 1, H(PAY ′)) es particularmente pequeño, es decir, lo suficientemente pequeño como para que con niveles muy altos probabilidad z será el líder de la ronda r. Si este es el caso, entonces le indica a w que elija su bloque candidato para seralternativas, basadas en cantidades de bloques tradicionales, son fácilmente explotables por el adversario para garantizar que los líderes maliciosos son muy frecuentes. En cambio, definimos específica e inductivamente nuestra marca. nueva cantidad Qr para poder demostrar que no es manipulable por el Adversario. Es decir, Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), si Br no es el bloque vacío, y Qr \(\triangleq\)H(Qr−1, r) en caso contrario. La intuición de por qué funciona esta construcción de Qr es la siguiente. Supongamos por un momento que Qr−1 se selecciona verdaderamente de forma aleatoria e independiente. Entonces, ¿lo será también Qr? Cuando \(\ell\)r es honesto el La respuesta es (en términos generales) sí. Esto es así porque H(SIG\(\ell\)r( \(\cdot\) ), r) : {0, 1}256 −→{0, 1}256 es una función aleatoria. Sin embargo, cuando \(\ell\)r es malicioso, Qr ya no se define unívocamente a partir de Qr−1 y \(\ell\)r. Hay al menos dos valores separados para Qr. Uno sigue siendo Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), y el otro es H(Qr−1, r). Primero argumentemos que, si bien la segunda opción es algo arbitraria, una segunda elección es absolutamente obligatoria. La razón de esto es que un \(\ell\)r malicioso siempre puede causar bloques candidatos totalmente diferentes para ser recibidos por los verificadores honestos del segundo paso.12 Una vez Si este es el caso, es fácil garantizar que el bloque finalmente acordado a través del protocolo BA de La ronda r será la predeterminada y, por lo tanto, no contendrá la firma digital Qr-1 de nadie. pero el sistema debe continuar y para ello necesita un líder para la ronda r. Si este líder es automáticamente y seleccionado abiertamente, entonces el Adversario lo corromperá trivialmente. Si es seleccionado por el anterior Qr−1 mediante el mismo proceso, \(\ell\)r volverá a ser el líder en la ronda r+1. Proponemos específicamente utilizar el mismo mecanismo secreto de clasificación criptográfica, pero aplicado a una nueva cantidad Q: a saber, H(Qr−1,r). Al tener esta cantidad como salida de H se garantiza que la salida sea aleatoria, e incluyendo r como segunda entrada de H, mientras que todos los demás usos de H tienen una o más de 3 entradas, “garantiza” que dicho Qr se selecciona de forma independiente. Nuevamente, nuestra elección específica de la alternativa Qr No importa, lo que importa es que \(\ell\)r tiene dos opciones para Qr y, por lo tanto, puede duplicar sus posibilidades. tener otro usuario malicioso como próximo líder. Las opciones para Qr pueden ser incluso más numerosas para el Adversario que controla un \(\ell\)r malicioso. Por ejemplo, sean x, y y z tres líderes potenciales maliciosos de la ronda r tales que h \(\sigma\)r,1 x  <H \(\sigma\)r,1 y  1. Observe que n1 << n, ya que necesitamos al menos un miembro honesto y honesto en SV r,1, pero al menos una mayoría de miembros honestos en cada SV r,s para s > 1. • h \(\in\)(0, 1): una constante mayor que 2/3. h es el índice de honestidad en el sistema. Es decir, el La fracción de usuarios honestos o dinero honesto, dependiendo del supuesto utilizado, en cada PKr es al menos h. • H: una función criptográfica hash, modelada como una oracle aleatoria. • \(\bot\): Una cadena especial de la misma longitud que la salida de H. • F \(\in\)(0, 1): el parámetro que especifica la probabilidad de error permitida. Una probabilidad \(\leq\)F es se considera “insignificante”, y una probabilidad \(\geq\)1 −F se considera “abrumadora”. • ph \(\in\)(0, 1): la probabilidad de que el líder de una ronda r, \(\ell\)r, sea honesto. Idealmente ph = h. con En caso de existencia del Adversario, el valor de ph será determinado en el análisis. • k \(\in\)Z+: el parámetro retrospectivo. Es decir, la ronda r −k es donde están los verificadores para la ronda r. elegido entre —es decir, SV r \(\subseteq\)PKr−k.15 • p1 \(\in\)(0, 1): para el primer paso de la ronda r, se elige un usuario en la ronda r −k para estar en SV r,1 con probabilidad p1 \(\triangleq\) n1 |P Kr−k|. • p \(\in\)(0, 1): para cada paso s > 1 de la ronda r, se elige un usuario en la ronda r −k para estar en SV r,s con probabilidad p \(\triangleq\) norte |P Kr−k|. • CERT r: el certificado del Br. Es un conjunto de firmas tH de H(Br) de verificadores adecuados en redondo r. • Br \(\triangleq\)(Br, CERT r) es un bloque probado. Un usuario i conoce Br si posee (y verifica con éxito) ambas partes del bloque probado. Tenga en cuenta que el CERT visto por diferentes usuarios puede ser diferente. • τ r i: la hora (local) en la que un usuario conoce a Br. En el protocolo Algorand cada usuario tiene su propio reloj. No es necesario sincronizar los relojes de diferentes usuarios, pero deben tener la misma velocidad. Sólo a efectos del análisis, consideramos un reloj de referencia y medimos el tiempo de los jugadores. tiempos relacionados con respecto al mismo. • ar,s yo y \(\beta\)r,s i: respectivamente, la hora (local) en la que un usuario i inicia y finaliza su ejecución de los Pasos de redondo r. • Λ y \(\lambda\): esencialmente, los límites superiores de, respectivamente, el tiempo necesario para ejecutar el Paso 1 y el tiempo necesario para cualquier otro paso del protocolo Algorand. El parámetro Λ limita el tiempo para propagar un único bloque de 1 MB. (En nuestra notación, Λ = \(\lambda\) \(\rho\),1MB. Recordando nuestra notación, que establecemos \(\rho\) = 1 por simplicidad, y que los bloques son elegido para que tenga como máximo 1 MB de longitud, tenemos Λ = \(\lambda\)1,1,1 MB.) 15Estrictamente hablando, “r −k” debería ser “max{0, r −k}”.El parámetro \(\lambda\) limita el tiempo para propagar un mensaje pequeño por verificador en un Paso s > 1. (Usando, como en Bitcoin, firmas de curvas elípticas con claves de 32B, un mensaje de verificación tiene una longitud de 200B. Así, en nuestra notación, \(\lambda\) = \(\lambda\)n,\(\rho\),200B.) Suponemos que Λ = O(\(\lambda\)). Nociones • Selección de verificador. Para cada ronda r y paso s > 1, SV r,s \(\triangleq\){i \(\in\)PKr−k : .H(SIGi(r, s, Qr−1)) \(\leq\)p}. cada uno El usuario i \(\in\)PKr−k calcula de forma privada su firma utilizando su clave a largo plazo y decide si i \(\in\)SV r,s o no. Si i \(\in\)SV r,s, entonces SIGi(r, s, Qr−1) es la credencial (r, s) de i, denotada de forma compacta por \(\sigma\)r,s yo. Para el primer paso de la ronda r, SV r,1 y \(\sigma\)r,1 yo se definen de manera similar, con p reemplazado por p1. el Los verificadores en SV r,1 son líderes potenciales. • Selección de líderes. El usuario i \(\in\)SV r,1 es el líder de la ronda r, denotada por \(\ell\)r, si H(\(\sigma\)r,1 i ) \(\leq\)H(\(\sigma\)r,1 j ) para todo potencial líderes j \(\in\)SV r,1. Siempre que se comparan los hashes de las credenciales de dos jugadores, en el improbable En caso de empates, el protocolo siempre rompe los lazos lexicográficamente de acuerdo con el (público a largo plazo). claves de los) líderes potenciales. Por definición, el valor hash de la credencial del jugador \(\ell\)r también es el más pequeño entre todos los usuarios en PKr−k. Tenga en cuenta que un líder potencial no puede decidir en privado si es el líder o no, sin ver las credenciales de los otros líderes potenciales. Dado que los valores hash son uniformes al azar, cuando SV r,1 no está vacío, \(\ell\)r siempre existe y es honesto con probabilidad al menos h. El parámetro n1 es lo suficientemente grande como para garantizar que cada SV r,1 no está vacío con una probabilidad abrumadora. • Estructura de bloques. Un bloque no vacío tiene la forma Br = (r, PAY r, SIG\(\ell\)r(Qr−1), H(Br−1)) y un bloque vacío es de la forma Br ǫ = (r, \(\emptyset\), Qr−1, H(Br−1)). Tenga en cuenta que un bloque no vacío aún puede contener un conjunto de pagos vacío PAY r, si no se produce ningún pago en esta ronda o si el líder es malicioso. Sin embargo, un bloque no vacío implica que la identidad de \(\ell\)r, su credencial \(\sigma\)r,1 \(\ell\)r y SIG\(\ell\)r(Qr−1) han sido revelados oportunamente. El protocolo garantiza que, si el líder es honesto, entonces el bloque no estará vacío con una probabilidad abrumadora. • Semilla Qr. Si Br no está vacío, entonces Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), en caso contrario Qr \(\triangleq\)H(Qr−1, r). Parámetros • Relaciones entre varios parámetros. — Los verificadores y líderes potenciales de la ronda r se seleccionan entre los usuarios de PKr−k, donde k se elige de modo que el adversario no pueda predecir Qr−1 en la ronda r −k −1 con probabilidad mejor que F: de lo contrario, podrá introducir usuarios maliciosos para la ronda r −k, todos los cuales serán líderes/verificadores potenciales en la ronda r, logrando

tener un líder malicioso o una mayoría maliciosa en SV r,s para algunos pasos deseados por él. — Para el Paso 1 de cada ronda r, se elige n1 de manera que con una probabilidad abrumadora, SV r,1 ̸= \(\emptyset\). • Ejemplos de opciones de parámetros importantes. — Las salidas de H tienen una longitud de 256 bits. — h = 80%, n1 = 35. — Λ = 1 minuto y \(\lambda\) = 10 segundos. • Inicialización del protocolo. El protocolo comienza en el momento 0 con r = 0. Como no existe "B-1" o "CERT -1", sintácticamente B-1 es un parámetro público con su tercer componente especificando Q-1, y todos los usuarios conozca B−1 en el tiempo 0.

Algorand ′

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

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

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

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

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

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

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

Algorand ′

1 En esta sección, construimos una versión de Algorand ′ que funciona bajo el siguiente supuesto. Supuesto honesto de la mayoría de los usuarios: Más de 2/3 de los usuarios en cada PKr son honestos. En la Sección 8, mostramos cómo reemplazar el supuesto anterior con la deseada Mayoría Honesta de Suposición de dinero. 5.1 Notaciones y parámetros adicionales Notaciones • m \(\in\)Z+: el número máximo de pasos en el protocolo BA binario, múltiplo de 3. • Lr \(\leq\)m/3: una variable aleatoria que representa el número de ensayos de Bernoulli necesarios para ver un 1, cuando cada ensayo es 1 con probabilidad ph 2 y hay como máximo m/3 ensayos. Si todas las pruebas fallan entonces Lr\(\triangleq\)m/3. Lr se utilizará para limitar el tiempo necesario para generar el bloque Br. • tH = 2n 3 + 1: el número de firmas necesarias en las condiciones finales del protocolo. • CERT r: el certificado del Br. Es un conjunto de firmas tH de H(Br) de verificadores adecuados en redondo r. Parámetros • Relaciones entre varios parámetros. — Para cada paso s > 1 de la ronda r, se elige n de modo que, con una probabilidad abrumadora, |VHS r,s| > 2|MSV r,s| y |VHS r,s| + 4|MSV r,s| < 2n. Cuanto más cercano a 1 esté el valor de h, menor debe ser n. En particular, utilizamos (variantes de) Chernofflimits para garantizar que las condiciones deseadas se mantengan con una probabilidad abrumadora. — m se elige de modo que Lr < m/3 con una probabilidad abrumadora. • Ejemplos de opciones de parámetros importantes. —F = 10−12. — n \(\approx\)1500, k = 40 y m = 180.5.2 Implementación de claves efímeras en Algorand ′ 1 Como ya se mencionó, deseamos que un verificador i \(\in\)SV r,s firme digitalmente su mensaje mr,s yo de paso s en la ronda r, relativa a una clave pública efímera pkr,s i, usando una clave secreta efímera skr,s yo eso él rápidamente destruye después de usarlo. Por lo tanto, necesitamos un método eficiente para garantizar que cada usuario pueda verificar que pkr,s yo es de hecho la clave a utilizar para verificar la firma del señor i yo. Lo hacemos mediante un (al mejor según nuestro conocimiento) nuevo uso de esquemas de firma basados en la identidad. En un nivel alto, en tal esquema, una autoridad central A genera una clave maestra pública, PMK, y una clave maestra secreta correspondiente, SMK. Dada la identidad, U, de un jugador U, A calcula, a través de SMK, una clave de firma secreta skU relativa a la clave pública U, y de forma privada proporciona skU a U. (De hecho, en un esquema de firma digital basado en identidad, ¡la clave pública de un usuario U es la propia U!) De esta manera, si A destruye SMK después de calcular las claves secretas de los usuarios que desea habilitar para produce firmas digitales y no guarda ninguna clave secreta calculada, entonces U es el único que puede firmar digitalmente mensajes relativos a la clave pública U. Por lo tanto, cualquiera que conozca el "nombre de U", conoce automáticamente la clave pública de U y, por lo tanto, puede verificar las firmas de U (posiblemente usando también el clave maestra pública PMK). En nuestra aplicación, la autoridad A es el usuario i, y el conjunto de todos los posibles usuarios U coincide con el par de paso redondo (r, s) en —digamos— S = {i}\(\times\){r′, . . . , r′ +106}\(\times\){1, . . . , m+3}, donde r′ es un dato ronda, y m + 3 el límite superior del número de pasos que pueden ocurrir dentro de una ronda. esto camino, pkr, s yo \(\triangleq\)(i, r, s), para que todos vean la firma de i SIGr,s pkr yo (señor, s yo) puedo, con abrumador probabilidad, verifíquela inmediatamente para el primer millón de rondas r después de r′. En otras palabras, primero genero PMK y SMK. Luego, publicita que PMK es el amo de i. clave pública para cualquier ronda r \(\in\)[r′, r′ + 106], y utiliza SMK para producir y almacenar el secreto de forma privada clave skr,s yo para cada tripleta (i, r, s) \(\in\)S. Hecho esto, destruye SMK. Si determina que no es parte de SV r,s, entonces puedo dejar skr,s yo solo (ya que el protocolo no requiere que se autentique cualquier mensaje en el Paso s de la ronda r). De lo contrario, primero uso skr,s yo para firmar digitalmente su mensaje mr,s yo, y luego destruye skr,s yo. Tenga en cuenta que puedo publicar su primera clave maestra pública cuando ingresa por primera vez al sistema. Es decir, el mismo pago \(\wp\) que trae i al sistema (en una ronda r′ o en una ronda cercana a r′), también puede especifique, a petición de i, que la clave maestra pública de i para cualquier ronda r \(\in\)[r′, r′ + 106] es PMK —por ejemplo, mediante incluyendo un par de la forma (PMK, [r′, r′ + 106]). También tenga en cuenta que, dado que m + 3 es el número máximo de pasos en una ronda, suponiendo que una ronda toma un minuto, el alijo de claves efímeras así producidas durará casi dos años. al mismo Con el tiempo, estas claves secretas efímeras no tardarán mucho en producirse. Usando una curva elíptica basada En un sistema con 32B de claves, cada clave secreta se calcula en unos pocos microsegundos. Por tanto, si m + 3 = 180, entonces, las 180 millones de claves secretas se pueden calcular en menos de una hora. Cuando la ronda actual se acerca a r′ + 106, para manejar los próximos millones de rondas, i genera un nuevo par (PMK′, SMK′) e informa cuál será su próximo alijo de claves efímeras mediante —por ejemplo— teniendo SIGi(PMK′, [r′ + 106 + 1, r′ + 2 \(\cdot\) 106 + 1]) entrar en un nuevo bloque, ya sea como “transacción” separada o como información adicional que es parte de un pago. Al hacerlo, Les informo a todos que deben usar PMK′ para verificar mis firmas efímeras en el próximo millones de rondas. Etcétera. (Tenga en cuenta que, siguiendo este enfoque básico, otras formas de implementar claves efímeras sin El uso de firmas basadas en identidad es ciertamente posible. Por ejemplo, a través de Merkle trees.16) 16En este método, genero un par de claves secretas públicas (pkr,s yo, skr, s yo ) para cada par de pasos redondos (r, s) en —digamos—Ciertamente son posibles otras formas de implementar claves efímeras, por ejemplo, a través de Merkle trees. 5.3 Coincidiendo con los pasos de Algorand ′ 1 con los de BA⋆ Como decíamos, una ronda en Algorand′ 1 tiene como máximo m + 3 pasos. Paso 1. En este paso, cada líder potencial i calcula y propaga su bloque candidato Br yo, junto con su propia credencial, \(\sigma\)r,1 yo. Recuerde que esta credencial identifica explícitamente a i. Esto es así porque \(\sigma\)r,1 yo \(\triangleq\)SIGi(r, 1, Qr−1). El verificador potencial también propaga, como parte de su mensaje, su firma digital adecuada de H(Br). yo). Al no tratarse de un pago o de una credencial, esta firma de i es relativa a su público efímero. llave pkr,1 i: es decir, propaga sigpkr,1 yo (H(Br yo )). Dadas nuestras convenciones, en lugar de propagar Br yo y sigpkr,1 yo (H(Br i )), podría haber propagado SIGpkr,1 yo (H(Br yo )). Sin embargo, en nuestro análisis necesitamos tener acceso explícito a sigpkr,1 yo (H(Br yo )). Pasos 2. En este paso, cada verificador i establece \(\ell\)r Ser el líder potencial cuya credencial hashed es el más pequeño, y Br i será el bloque propuesto por \(\ell\)r yo. Dado que, en aras de la eficiencia, desea ponerse de acuerdo sobre H(Br), en lugar de hacerlo directamente sobre Br, propaga el mensaje que habría propagado en el primer paso de BA⋆con valor inicial v′ yo = H(Br yo). Es decir, propaga v′ yo, tras firmarlo efímeramente, claro. (Es decir, después de firmarlo en relación con el efímero derecho clave pública, que en este caso es pkr,2 i .) Por supuesto también, también transmito su propia credencial. Dado que el primer paso de BA⋆consiste en el primer paso del protocolo de consenso graduado GC, Paso 2 de Algorand ′ corresponde al primer paso de GC. Pasos 3. En este paso, cada verificador i \(\in\)SV r,2 ejecuta el segundo paso de BA⋆. Es decir, envía el El mismo mensaje que habría enviado en el segundo paso de GC. Una vez más, mi mensaje es efímero. firmado y acompañado de mi credencial. (De ahora en adelante, omitiremos decir que un verificador firma efímeramente su mensaje y también propaga su credencial.) Paso 4. En este paso, cada verificador i \(\in\)SV r,4 calcula la salida de GC, (vi, gi), y efímeramente firma y envía el mismo mensaje que habría enviado en el tercer paso de BA⋆, es decir, en el primer paso de BBA⋆, con el bit inicial 0 si gi = 2 y 1 en caso contrario. Paso s = 5, . . . , m + 2. Tal paso, si alguna vez se alcanza, corresponde al paso s −1 de BA⋆ y, por tanto, a paso s −3 de BBA⋆. Dado que nuestro modelo de propagación es suficientemente asíncrono, debemos tener en cuenta la posibilidad que, en medio de tal paso s, un verificador i \(\in\)SV r,s es alcanzado por información que lo prueba ese bloque Br ya ha sido elegido. En este caso, i detiene su propia ejecución de la ronda r de Algorand ′, y comienza a ejecutar sus instrucciones de ronda-(r + 1). {r', . . . , r′ + 106} \(\times\) {1, . . . , metro + 3}. Luego ordena estas claves públicas de forma canónica, almacena la j-ésima pública ingresa la j-ésima hoja de un Merkle tree y calcula el valor raíz Ri, que publica. Cuando quiere firmar un mensaje relativo a la clave pkr,s yo , no solo proporciono la firma real, sino también la ruta de autenticación para pkr,s yo en relación con Ri. Observe que esta ruta de autenticación también prueba que pkr,s yo se almacena en la j-ésima hoja. El resto del Los detalles se pueden completar fácilmente.En consecuencia, las instrucciones de un verificador i \(\in\)SV r,s, además de las instrucciones correspondientes al Paso s −3 de BBA⋆, incluya verificar si la ejecución de BBA⋆ se ha detenido en una etapa anterior Paso s′. Dado que BBA⋆sólo puede detenerse en un paso Coin-Fixed-to-0 o en un paso Coin-Fixed-to-1, el las instrucciones distinguen si A (Condición final 0): s′ −2 ≡0 mod 3, o B (Condición final 1): s′ −2 ≡1 mod 3. De hecho, en el caso A, el bloque Br no está vacío y, por lo tanto, se necesitan instrucciones adicionales para asegúrese de que i reconstruya adecuadamente Br, junto con su certificado adecuado CERT r. En el caso B, el bloque Br está vacío y, por lo tanto, se me indica que establezca Br = Br \(\varepsilon\) = (r, \(\emptyset\), H(Qr−1, r), H(Br−1)), y para calcular CERT r. Si, durante la ejecución del paso s, no veo ninguna evidencia de que el bloque Br ya haya sido generado, luego envía el mismo mensaje que habría enviado en el paso s −3 de BBA⋆. Paso m + 3. Si durante el paso m + 3, i \(\in\)SV r,m+3 ve que el bloque Br ya fue generado en un paso previo s′, luego procede tal como se explicó anteriormente. De lo contrario, en lugar de enviar el mismo mensaje que habría enviado en el paso m de BBA⋆, i es recibió instrucciones, basándose en la información que poseía, de calcular Br y su correspondiente certificado CERT r. Recuerde, de hecho, que elevamos en m + 3 el número total de pasos de una ronda. 5.4 El protocolo real Recuerde que, en cada paso s de una ronda r, un verificador i \(\in\)SV r,s utiliza su par de claves secretas públicas de largo plazo para presentar su credencial, \(\sigma\)r,s yo \(\triangleq\)SIGi(r, s, Qr−1), así como SIGi qr-1 en caso s = 1. Verificador i utiliza su efímera clave secreta skr,s yo para firmar su mensaje (r, s) mr,s yo. Por simplicidad, cuando r y s son claro, escribimos esigi(x) en lugar de sigpkr,s i (x) para denotar la firma efímera propia de un valor x en el paso s de la ronda r, y escriba ESIGi(x) en lugar de SIGpkr,s i (x) para denotar (i, x, esigi(x)). Paso 1: bloquear la propuesta Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza su propio Paso 1 de la ronda r tan pronto como conoce Br−1. • El usuario i calcula Qr−1 a partir del tercer componente de Br−1 y comprueba si i \(\in\)SV r,1 o no. • Si i /\(\in\)SV r,1, entonces i detiene su propia ejecución del Paso 1 de inmediato. • Si i \(\in\)SV r,1, es decir, si i es un líder potencial, entonces cobra los pagos redondos r que han se le ha propagado hasta el momento y calcula un pago máximo PAY r yo de ellos. A continuación, él calcula su “bloque de candidatos” fr. i = (r, PAGAR r i , SIGi(Qr−1), H(Br−1)). Finalmente, calcula el mensaje señor,1 yo = (Hermano yo , esigi(H(Br i )), \(\sigma\)r,1 i ), destruye su efímera clave secreta skr,1 yo, y luego propaga mr,1 yo.Observación. En la práctica, para acortar la ejecución global del Paso 1, es importante que el (r, 1)- Los mensajes se propagan selectivamente. Es decir, para cada usuario i en el sistema, para el primer (r, 1)- mensaje que alguna vez recibe y verifica con éxito,17 el jugador i lo propaga como de costumbre. Para todos los otros (r, 1): mensajes que el jugador i recibe y verifica con éxito, los propaga solo si el hash El valor de la credencial que contiene es el más pequeño entre los valores hash de las credenciales contenidas. en todos los mensajes (r, 1) que ha recibido y verificado con éxito hasta el momento. Además, como sugiere Según Georgios Vlachos, es útil que cada líder potencial i también propague su credencial \(\sigma\)r,1 yo por separado: esos pequeños mensajes viajan más rápido que los bloques, aseguran la propagación oportuna del mr,1 j's donde las credenciales contenidas tienen valores hash pequeños, mientras que aquellas con valores hash grandes desaparecer rápidamente. Paso 2: El primer paso del Protocolo de Consenso Graduado GC Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza su propio Paso 2 de la ronda r tan pronto como conoce Br−1. • El usuario i calcula Qr−1 a partir del tercer componente de Br−1 y comprueba si i \(\in\)SV r,2 o no. • Si i /\(\in\)SV r,2 entonces i detiene su propia ejecución del Paso 2 de inmediato. • Si i \(\in\)SV r,2, entonces después de esperar un tiempo t2 \(\triangleq\) \(\lambda\) + Λ, i actúa de la siguiente manera. 1. Encuentra al usuario \(\ell\)tal que H(\(\sigma\)r,1 \(\ell\)) \(\leq\)H(\(\sigma\)r,1 j ) para todas las credenciales \(\sigma\)r,1 j que son parte de los mensajes (r, 1) verificados con éxito que ha recibido hasta ahora.a 2. Si ha recibido de \(\ell\) un mensaje válido mr,1 \(\ell\) = (Hermano \(\ell\), esig\(\ell\)(H(Br \(\ell\))), \(\sigma\)r,1 \(\ell\)),b entonces me pongo v′ yo \(\triangleq\)H(Br \(\ell\)); de lo contrario establezco v′ yo \(\triangleq\) \(\bot\). 3. Calculo el mensaje mr,2 yo \(\triangleq\)(ESIGi(v′ i), \(\sigma\)r,2 i ),c destruye su efímera clave secreta skr,2 i y luego propaga mr,2 yo. aEsencialmente, el usuario i decide en privado que el líder de la ronda r es el usuario \(\ell\). bNuevamente, las firmas del jugador \(\ell\) y los hashes se verifican con éxito y PAGA r \(\ell\)en Br \(\ell\)es un pago válido para round r —aunque no compruebo si PAY r \(\ell\)es máximo para \(\ell\)o no. cEl mensaje señor,2 yo señala a ese jugador que considero v′ i debe ser el hash del siguiente bloque, o considera el siguiente bloque para estar vacío. 17Es decir, todas las firmas son correctas y tanto el bloque como su hash son válidos —aunque no compruebo si el pago incluido es máximo para su proponente o no.

Paso 3: el segundo paso de GC Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza su propio Paso 3 de la ronda r tan pronto como conoce Br−1. • El usuario i calcula Qr−1 a partir del tercer componente de Br−1 y comprueba si i \(\in\)SV r,3 o no. • Si i /\(\in\)SV r,3, entonces i detiene su propia ejecución del Paso 3 de inmediato. • Si i \(\in\)SV r,3, entonces después de esperar un tiempo t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ, i actúa de la siguiente manera. 1. Si existe un valor v′ ̸= \(\bot\) tal que, entre todos los mensajes válidos mr,2 j él ha recibido, más de 2/3 de ellos son de la forma (ESIGj(v′), \(\sigma\)r,2 j ), sin contradicción alguna,a luego calcula el mensaje mr,3 yo \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 yo). De lo contrario, calcula mr,3 yo \(\triangleq\) (ESIGi(\(\bot\)), \(\sigma\)r,3 yo). 2. Destruyo su efímera clave secreta skr,3 i y luego propaga mr,3 yo. aEs decir, no ha recibido dos mensajes válidos que contengan ESIGj(v′) y un ESIGj(v′′) diferente respectivamente, de un jugador j. Aquí y de aquí en adelante, excepto en las Condiciones Finales que se definen más adelante, siempre que un jugador honesto quiere mensajes de una forma determinada, los mensajes que se contradicen entre sí nunca se cuentan ni se consideran válidos.Paso 4: Salida de GC y el primer paso de BBA⋆ Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza su propio Paso 4 de la ronda r tan pronto como conoce Br−1. • El usuario i calcula Qr−1 a partir del tercer componente de Br−1 y comprueba si i \(\in\)SV r,4 o no. • Si i /\(\in\)SV r,4, entonces i detiene su propia ejecución del Paso 4 de inmediato. • Si i \(\in\)SV r,4, entonces después de esperar un tiempo t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ, i actúa de la siguiente manera. 1. Calcula vi y gi, la salida de GC, de la siguiente manera. (a) Si existe un valor v′ ̸= \(\bot\) tal que, entre todos los mensajes válidos mr,3 j el tiene recibidos, más de 2/3 de ellos son de la forma (ESIGj(v′), \(\sigma\)r,3 j ), luego establece vi \(\triangleq\)v′ y gi \(\triangleq\)2. (b) En caso contrario, si existe un valor v′ ̸= \(\bot\) tal que, entre todos los mensajes válidos señor,3 j ha recibido, más de 1/3 de ellos son de la forma (ESIGj(v′), \(\sigma\)r,3 j), entonces establece vi \(\triangleq\)v′ y gi \(\triangleq\)1.a (c) En caso contrario, establece vi \(\triangleq\)H(Br ǫ ) y gi \(\triangleq\)0. 2. Calcula bi, la entrada de BBA⋆, de la siguiente manera: bi \(\triangleq\)0 si gi = 2, y bi \(\triangleq\)1 en caso contrario. 3. Calcula el mensaje mr,4 yo \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 i ), destruye su efímero clave secreta skr,4 i y luego propaga mr,4 yo. aSe puede demostrar que v′ en el caso (b), si existe, debe ser única.

Paso s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ≡0 mod 3: un paso de BBA⋆ con moneda fijada a 0 Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza sus propios Pasos de la ronda r tan pronto como conoce Br−1. • El usuario i calcula Qr−1 a partir del tercer componente de Br−1 y comprueba si i \(\in\)SV r,s. • Si i /\(\in\)SV r,s, entonces i detiene su propia ejecución del Paso s inmediatamente. • Si i \(\in\)SV r,s entonces actúa de la siguiente manera. – Espera hasta que haya transcurrido un tiempo ts \(\triangleq\)ts−1 + 2\(\lambda\) = (2s −3)\(\lambda\) + Λ. – Condición final 0: Si, durante dicha espera y en cualquier momento, existe una cadena v ̸= \(\bot\)y un paso s′ tal que (a) 5 \(\leq\)s′ \(\leq\)s, s′ −2 ≡0 mod 3, es decir, el paso s′ es un paso fijo con moneda a 0, (b) he recibido al menos tH = 2n 3 + 1 mensajes válidos mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ),a y (c) He recibido un mensaje válido mr,1 j = (Hermano j , esigj(H(Br j )), \(\sigma\)r,1 j ) con v = H(Br j), entonces, detengo su propia ejecución de los Pasos s (y de hecho de la ronda r) inmediatamente sin propagar cualquier cosa; establece Br = Br j; y establece su propio CERT r para que sea el conjunto de mensajes señor,s′−1 j del subpaso (b).b – Condición final 1: Si, durante dicha espera y en cualquier momento, existe una paso s′ tal que (a’) 6 \(\leq\)s′ \(\leq\)s, s′ −2 ≡1 mod 3, es decir, el paso s′ es un paso fijo con moneda a 1, y (b’) he recibido al menos tH mensajes válidos mr,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ),c entonces, detengo su propia ejecución de los Pasos s (y de hecho de la ronda r) inmediatamente sin propagar cualquier cosa; establece Br = Br ǫ ; y establece su propio CERT r para que sea el conjunto de mensajes señor,s′−1 j del subpaso (b’). – De lo contrario, al final de la espera, el usuario i hace lo siguiente. Establece vi como el voto mayoritario de los vj en los segundos componentes de todos los votos válidos. señor, s-1 j que ha recibido. Calcula bi de la siguiente manera. Si más de 2/3 de todos los mr,s−1 válidos j que ha recibido son de la forma (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), luego establece bi \(\triangleq\)0. De lo contrario, si más de 2/3 de todos los mr,s−1 válidos j que ha recibido son de la forma (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), luego establece bi \(\triangleq\)1. De lo contrario, establece bi \(\triangleq\)0. Calcula el mensaje mr,s yo \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), destruye su efímero clave secreta skr,s i y luego propaga mr,s yo. aUn mensaje de este tipo del jugador j se cuenta incluso si el jugador i también ha recibido un mensaje de j firmando por 1. Cosas similares para la condición final 1. Como se muestra en el análisis, esto se hace para garantizar que todos los usuarios honestos sepan Br dentro del tiempo \(\lambda\) entre sí. El usuario i ahora conoce a Br y sus propios acabados redondos. Todavía ayuda a propagar mensajes como usuario genérico, pero no inicia ninguna propagación como verificador (r, s). En particular, ha ayudado a difundir todos los mensajes en su CERT r, que es suficiente para nuestro protocolo. Tenga en cuenta que también debería establecer bi \(\triangleq\)0 para el protocolo BA binario, pero bi De todos modos, no es necesario en este caso. Cosas similares para todas las instrucciones futuras. cEn este caso, no importa cuáles sean los vj.Paso s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ≡1 mod 3: un paso de BBA⋆ con moneda fijada a 1 Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza sus propios Pasos de la ronda r tan pronto como conoce Br−1. • El usuario i calcula Qr−1 a partir del tercer componente de Br−1 y comprueba si i \(\in\)SV r,s o no. • Si i /\(\in\)SV r,s, entonces i detiene su propia ejecución del Paso s inmediatamente. • Si i \(\in\)SV r,s entonces hace lo siguiente. – Espera hasta que haya transcurrido un tiempo ts \(\triangleq\)(2s −3)\(\lambda\) + Λ. – Condición final 0: Las mismas instrucciones que los pasos Coin-Fixed-To-0. – Condición final 1: Las mismas instrucciones que los pasos Coin-Fixed-To-0. – De lo contrario, al final de la espera, el usuario i hace lo siguiente. Establece vi como el voto mayoritario de los vj en los segundos componentes de todos los votos válidos. señor, s-1 j que ha recibido. Calcula bi de la siguiente manera. Si más de 2/3 de todos los mr,s−1 válidos j que ha recibido son de la forma (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), luego establece bi \(\triangleq\)0. De lo contrario, si más de 2/3 de todos los mr,s−1 válidos j que ha recibido son de la forma (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), luego establece bi \(\triangleq\)1. En caso contrario, establece bi \(\triangleq\)1. Calcula el mensaje mr,s yo \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), destruye su efímero clave secreta skr,s i y luego propaga mr,s yo.

Paso s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 mod 3: un paso de BBA⋆ genuinamente lanzado al aire Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza sus propios Pasos de la ronda r tan pronto como conoce Br−1. • El usuario i calcula Qr−1 a partir del tercer componente de Br−1 y comprueba si i \(\in\)SV r,s o no. • Si i /\(\in\)SV r,s, entonces i detiene su propia ejecución del Paso s inmediatamente. • Si i \(\in\)SV r,s entonces hace lo siguiente. – Espera hasta que haya transcurrido un tiempo ts \(\triangleq\)(2s −3)\(\lambda\) + Λ. – Condición final 0: Las mismas instrucciones que los pasos Coin-Fixed-To-0. – Condición final 1: Las mismas instrucciones que los pasos Coin-Fixed-To-0. – De lo contrario, al final de la espera, el usuario i hace lo siguiente. Establece vi como el voto mayoritario de los vj en los segundos componentes de todos los votos válidos. señor, s-1 j que ha recibido. Calcula bi de la siguiente manera. Si más de 2/3 de todos los mr,s−1 válidos j que ha recibido son de la forma (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), luego establece bi \(\triangleq\)0. De lo contrario, si más de 2/3 de todos los mr,s−1 válidos j que ha recibido son de la forma (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), luego establece bi \(\triangleq\)1. De lo contrario, sea SV r,s−1 yo ser el conjunto de (r, s −1)-verificadores de quienes ha recibido una mensaje señor, s-1 j . Él establece bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1 yo H(\(\sigma\)r,s−1 j )). Calcula el mensaje mr,s yo \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), destruye su efímero clave secreta skr,s i y luego propaga mr,s yo.

Paso m + 3: El último paso de BBA⋆a Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza su propio Paso m + 3 de la ronda r tan pronto como conoce Br−1. • El usuario i calcula Qr−1 a partir del tercer componente de Br−1 y comprueba si i \(\in\)SV r,m+3 o no. • Si i /\(\in\)SV r,m+3, entonces i detiene su propia ejecución del Paso m + 3 de inmediato. • Si i \(\in\)SV r,m+3 entonces hace lo siguiente. – Espera hasta que haya transcurrido un tiempo tm+3 \(\triangleq\)tm+2 + 2\(\lambda\) = (2m + 3)\(\lambda\) + Λ. – Condición final 0: Las mismas instrucciones que los pasos Coin-Fixed-To-0. – Condición final 1: Las mismas instrucciones que los pasos Coin-Fixed-To-0. – De lo contrario, al final de la espera, el usuario i hace lo siguiente. Él establece i \(\triangleq\)1 y Br \(\triangleq\)Br ǫ. Calcula el mensaje mr,m+3 yo = (ESIGi(outi), ESIGi(H(Br)), \(\sigma\)r,m+3 yo ), destruye su clave secreta efímera skr,m+3 yo y luego propaga mr,m+3 yo para certificar Br.b aCon una probabilidad abrumadora, BBA⋆ha terminado antes de este paso, y especificamos este paso para que esté completo. Un certificado b del Paso m + 3 no tiene que incluir ESIGi(outi). Lo incluimos sólo por uniformidad: el Los certificados ahora tienen un formato uniforme sin importar en qué paso se generen.Reconstrucción del bloque Round-r por parte de no verificadores Instrucciones para cada usuario i en el sistema: El usuario i comienza su propia ronda tan pronto como lo sepa. Br-1, y espera información del bloque de la siguiente manera. – Si, durante dicha espera y en cualquier momento, existe una cadena v y un paso s′ tal eso (a) 5 \(\leq\)s′ \(\leq\)m + 3 con s′ −2 ≡0 mod 3, (b) he recibido al menos tH mensajes válidos mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ), y (c) He recibido un mensaje válido mr,1 j = (Hermano j , esigj(H(Br j )), \(\sigma\)r,1 j ) con v = H(Br j), entonces, detengo su propia ejecución de la ronda r inmediatamente; establece Br = Br j; y establece su propio CERT r ser el conjunto de mensajes mr,s′−1 j del subpaso (b). – Si, durante dicha espera y en cualquier momento, existe un paso s′ tal que (a’) 6 \(\leq\)s′ \(\leq\)m + 3 con s′ −2 ≡1 mod 3, y (b’) he recibido al menos tH mensajes válidos mr,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ), entonces, detengo su propia ejecución de la ronda r inmediatamente; establece Br = Br ǫ; y establece su propio CERT r ser el conjunto de mensajes mr,s′−1 j del subpaso (b’). – Si, durante dicha espera y en cualquier momento, he recibido al menos tH mensajes válidos señor,m+3 j = (ESIGj(1), ESIGj(H(Br ǫ )), \(\sigma\)r,m+3 j ), entonces detengo su propia ejecución de la ronda r inmediatamente, establece Br = Br ǫ y establece su propio CERT r como el conjunto de mensajes mr,m+3 j por 1 y H(Br ǫ). 5.5 Análisis de Algorand ′ 1 Introducimos las siguientes notaciones para cada ronda r \(\geq\)0, utilizadas en el análisis. • Sea T r el momento en que el primer usuario honesto conoce Br−1. • Sea Ir+1 el intervalo [T r+1, T r+1 + \(\lambda\)]. Tenga en cuenta que T 0 = 0 por la inicialización del protocolo. Para cada s \(\geq\)1 y i \(\in\)SV r,s, recuerde que \(\alpha\)r, s yo y \(\beta\)r,s yo son respectivamente la hora de inicio y la hora de finalización de los pasos s del jugador i. Además, recuerde que ts = (2s −3)\(\lambda\) + Λ para cada 2 \(\leq\)s \(\leq\)m + 3. Además, sean I0 \(\triangleq\){0} y t1 \(\triangleq\)0. Finalmente, recuerde que Lr \(\leq\)m/3 es una variable aleatoria que representa el número de ensayos de Bernoulli. necesario para ver un 1, cuando cada prueba es 1 con probabilidad ph 2 y hay como máximo m/3 ensayos. si todo las pruebas fallan entonces Lr \(\triangleq\)m/3. En el análisis ignoramos el tiempo de cálculo, ya que de hecho es insignificante en relación con el tiempo necesario. para propagar mensajes. En cualquier caso, al usar \(\lambda\) y Λ ligeramente mayores, el tiempo de cálculo puede incorporarse directamente al análisis. La mayoría de las afirmaciones siguientes son válidas “con abrumadora probabilidad”, y es posible que no enfaticemos repetidamente este hecho en el análisis.5.6 Teorema principal Teorema 5.1. Las siguientes propiedades se mantienen con una probabilidad abrumadora para cada ronda r \(\geq\)0: 1. Todos los usuarios honestos coinciden en el mismo bloque Br. 2. Cuando el líder \(\ell\)r es honesto, el bloque Br es generado por \(\ell\)r, Br contiene un pago máximo recibido por \(\ell\)r por tiempo \(\alpha\)r,1 \(\ell\)r , T r+1 \(\leq\)T r + 8\(\lambda\) + Λ y todos los usuarios honestos conocen Br en el tiempo intervalo Ir+1. 3. Cuando el líder \(\ell\)r es malicioso, T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ y todos los usuarios honestos saben Br en el intervalo de tiempo Ir+1. 4. ph = h2(1 + h −h2) para Lr, y el líder \(\ell\)r es honesto con probabilidad al menos ph. Antes de demostrar nuestro teorema principal, hagamos dos observaciones. Observaciones. • Generación de bloques y latencia verdadera. El tiempo para generar el bloque Br se define como T r+1 −T r. Es decir, se define como la diferencia entre la primera vez que un usuario honesto aprende Br y la primera vez que un usuario honesto aprende Br−1. Cuando el líder de la ronda r es honesto, la Propiedad 2 es nuestra El teorema principal garantiza que el tiempo exacto para generar Br es 8\(\lambda\) + Λ tiempo, sin importar qué el valor preciso de h > 2/3 puede ser. Cuando el líder es malicioso, la Propiedad 3 implica que el El tiempo esperado para generar Br está limitado por ( 12 ph + 10)\(\lambda\) + Λ, de nuevo no importa la precisión valor de h.18 Sin embargo, el tiempo esperado para generar Br depende del valor preciso de h. De hecho, según la Propiedad 4, ph = h2(1 + h −h2) y el líder es honesto con probabilidad al menos ph, por lo tanto 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\) + Λ). Por ejemplo, si h = 80%, entonces E[T r+1 −T r] \(\leq\)12,7\(\lambda\) + Λ. • \(\lambda\) frente a Λ. Tenga en cuenta que el tamaño de los mensajes enviados por los verificadores en un paso Algorand ′ está dominado por la longitud de las claves de firma digital, que pueden permanecer fijas, incluso cuando el número de usuarios es enorme. También tenga en cuenta que, en cualquier paso s > 1, el mismo número esperado n de verificadores se puede utilizar ya sea que el número de usuarios sea 100K, 100M o 100M. Esto es así porque n únicamente depende de hy F. En resumen, por lo tanto, salvo una necesidad repentina de aumentar la longitud de la clave secreta, el valor de \(\lambda\) debe permanecer igual sin importar cuán grande sea el número de usuarios en el futuro previsible. Por el contrario, para cualquier tasa de transacción, el número de transacciones crece con el número de usuarios. Por lo tanto, para procesar todas las transacciones nuevas de manera oportuna, el tamaño de un bloque debe también crece con el número de usuarios, lo que hace que Λ también crezca. Por lo tanto, a largo plazo, deberíamos haber \(\lambda\) << Λ. En consecuencia, es apropiado tener un coeficiente mayor para \(\lambda\), y en realidad un coeficiente de 1 para Λ. Demostración del teorema 5.1. Probamos las propiedades 1 a 3 por inducción: suponiendo que se cumplan para la ronda r −1 (sin pérdida de generalidad, se cumplen automáticamente para la “ronda -1” cuando r = 0), los probamos para redondo r. 18Efectivamente, E[T r+1 −T r] \(\leq\)(6E[Lr] + 10)\(\lambda\) + Λ = (6 \(\cdot\) 2 ph + 10)\(\lambda\) + Λ = ( 12 ph + 10)\(\lambda\) + Λ.Dado que Br−1 está definido únicamente por la hipótesis inductiva, el conjunto SV r,s está definido únicamente para cada paso s de la ronda r. Por la elección de n1, SV r,1 ̸= \(\emptyset\) con abrumadora probabilidad. nosotros ahora Enuncie los siguientes dos lemas, demostrados en las Secciones 5.7 y 5.8. Durante toda la inducción y en En las pruebas de los dos lemas, el análisis de la ronda 0 es casi el mismo que el del paso inductivo, y resaltaremos las diferencias cuando ocurran. Lema 5.2. [Lema de integridad] Suponiendo que las propiedades 1 a 3 se mantienen para la ronda r-1, cuando el líder \(\ell\)r es honesto, con una probabilidad abrumadora, • Todos los usuarios honestos están de acuerdo en el mismo bloque Br, que es generado por \(\ell\)r y contiene un máximo pago recibido por \(\ell\)r en el momento \(\alpha\)r,1 \(\ell\)r \(\in\)Ir; y • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ y todos los usuarios honestos conocen Br en el intervalo de tiempo Ir+1. Lema 5.3. [Lema de solidez] Suponiendo que las propiedades 1 a 3 se mantienen para la ronda r −1, cuando el líder \(\ell\)r es malicioso, con una probabilidad abrumadora, todos los usuarios honestos coinciden en el mismo bloque Br, T r+1 \(\leq\) T r + (6Lr + 10)\(\lambda\) + Λ y todos los usuarios honestos conocen Br en el intervalo de tiempo Ir+1. Las propiedades 1 a 3 se mantienen aplicando los lemas 5.2 y 5.3 a r = 0 y al paso inductivo. Finalmente, Reformulamos la Propiedad 4 como el siguiente lema, demostrado en la Sección 5.9. Lema 5.4. Dadas las propiedades 1 a 3 para cada ronda antes de r, ph = h2(1 + h −h2) para Lr, y la El líder \(\ell\)r es honesto con probabilidad al menos ph. Combinando los tres lemas anteriores, se cumple el teorema 5.1. ■ El siguiente lema establece varias propiedades importantes sobre la ronda r dada la inductiva. hipótesis, y se utilizará en las pruebas de los tres lemas anteriores. Lema 5.5. Supongamos que las propiedades 1 a 3 se mantienen para la ronda r −1. Para cada paso s \(\geq\)1 de la ronda r y cada verificador honesto i \(\in\)HSV r,s, tenemos que (a) \(\alpha\)r,s yo \(\in\)Ir; (b) si el jugador i ha esperado una cantidad de tiempo ts, entonces \(\beta\)r,s yo \(\in\)[T r + ts, T r + \(\lambda\) + ts] para r > 0 y \(\beta\)r,s yo = ts para r = 0; y (c) si el jugador i ha esperado una cantidad de tiempo ts, entonces en el tiempo \(\beta\)r,s Yo, ha recibido todos los mensajes. enviado por todos los verificadores honestos j \(\in\)HSV r,s′ para todos los pasos s′ < s. Además, para cada paso s \(\geq\)3, tenemos que (d) no existen dos jugadores diferentes i, i′ \(\in\)SV r,s y dos valores diferentes v, v′ del mismo longitud, tal que ambos jugadores han esperado una cantidad de tiempo ts, más de 2/3 de todo el mensajes válidos mr,s−1 j El jugador que recibo ha firmado por v, y más de 2/3 de todos los válidos. mensajes señor, s-1 j El jugador que recibe i′ ha firmado por v′. Prueba. La propiedad (a) se deriva directamente de la hipótesis inductiva, ya que el jugador i conoce Br−1 en el intervalo de tiempo Ir y comienza sus propios pasos de inmediato. La propiedad (b) se sigue directamente de (a): ya que El jugador i ha esperado una cantidad de tiempo ts antes de actuar, \(\beta\)r,s. yo = \(\alpha\)r,s yo + ts. Tenga en cuenta que \(\alpha\)r,s yo = 0 para r = 0. Ahora demostramos la propiedad (c). Si s = 2, entonces por la Propiedad (b), para todos los verificadores j \(\in\)HSV r,1 tenemos \(\beta\)r,s yo = \(\alpha\)r,s yo + ts \(\geq\)T r + ts = T r + \(\lambda\) + Λ \(\geq\) \(\beta\)r,1 j + Λ.Dado que cada verificador j \(\in\)HSV r,1 envía su mensaje en el tiempo \(\beta\)r,1 j y el mensaje llega a todos los honestos usuarios en como máximo Λ tiempo, por tiempo \(\beta\)r,s yo jugador he recibido los mensajes enviados por todos los verificadores en HSV r,1 como se desee. Si s > 2, entonces ts = ts−1 + 2\(\lambda\). Por la propiedad (b), para todos los pasos s′ < s y todos los verificadores j \(\in\)HSV r,s′, \(\beta\)r,s yo = \(\alpha\)r,s yo + 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\). Dado que cada verificador j \(\in\)HSV r,s′ envía su mensaje en el instante \(\beta\)r,s′ j y el mensaje llega a todos los honestos usuarios en como máximo \(\lambda\) tiempo, por tiempo \(\beta\)r,s yo jugador he recibido todos los mensajes enviados por todos los verificadores honestos en HSV r,s′ para todos s′ < s. Por tanto, se cumple la propiedad (c). Finalmente, demostramos la propiedad (d). Tenga en cuenta que los verificadores j \(\in\)SV r,s−1 firman como máximo dos cosas en Paso s −1 usando sus claves secretas efímeras: un valor vj de la misma longitud que la salida del hash función, y también un poco bj \(\in\){0, 1} si s −1 \(\geq\)4. Por eso en el enunciado del lema requerimos que v y v′ tengan la misma longitud: muchos verificadores pueden haber firmado ambos un valor hash v y un bit b, por lo que ambos pasan el umbral de 2/3. Supongamos, en aras de la contradicción, que existen los verificadores deseados i, i′ y los valores v, v′. Tenga en cuenta que algunos verificadores maliciosos en MSV r,s−1 pueden haber firmado tanto v como v′, pero cada uno honesto El verificador en HSV r,s−1 ha firmado como máximo uno de ellos. Por la propiedad (c), tanto i como i′ han recibido todos los mensajes enviados por todos los verificadores honestos en HSV r,s−1. Sea HSV r,s−1(v) el conjunto de verificadores (r, s −1) honestos que han firmado v, MSV r,s−1 yo el conjunto de verificadores (r, s −1) maliciosos de los cuales he recibido un mensaje válido, y MSV r,s−1 yo (v) el subconjunto de MSV r,s−1 yo de quien he recibido una firma de mensaje válida v. Por los requisitos para i y v, tenemos relación \(\triangleq\)|HSV r,s−1(v)| + |VMS r,s−1 yo (v)| |VHS r,s−1| + |VMS r,s−1 yo |

2 3. (1) Primero mostramos |VMS r,s−1 yo (v)| \(\leq\)|VHS r,s−1(v)|. (2) Suponiendo lo contrario, por las relaciones entre los parámetros, con una probabilidad abrumadora |VHS r,s−1| > 2|MSV r,s−1| \(\geq\)2|VSM r,s−1 yo |, por lo tanto relación < |HSV r,s−1(v)| + |VMS r,s−1 yo (v)| 3|VSM r,s−1 yo | < 2|MSV r,s−1 yo (v)| 3|VSM r,s−1 yo | \(\leq\)2 3, Contradicción con la desigualdad 1. A continuación, por la desigualdad 1 tenemos 2|VHS r,s−1| + 2|MSV r,s−1 yo | < 3|VHS r,s−1(v)| + 3|MSV r,s−1 yo (v)| \(\leq\) 3|VHS r,s−1(v)| + 2|MSV r,s−1 yo | + |VMS r,s−1 yo (v)|. Combinando con la desigualdad 2, 2|VHS r,s−1| < 3|VHS r,s−1(v)| + |VMS r,s−1 yo (v)| \(\leq\)4|VHS r,s−1(v)|, lo que implica |VHS r,s−1(v)| > 1 2|VHS r,s−1|.De manera similar, por los requisitos para i′ y v′, tenemos |VHS r,s−1(v′)| > 1 2|VHS r,s−1|. Dado que un verificador honesto j \(\in\)HSV r,s−1 destruye su efímera clave secreta skr,s−1 j antes de propagar En su mensaje, el Adversario no puede falsificar la firma de j por un valor que j no firmó, después aprender que j es un verificador. Por lo tanto, las dos desigualdades anteriores implican |HSV r,s−1| \(\geq\)|VHS r,s−1(v)| + |VHS r,s−1(v′)| > |HSV r,s−1|, una contradicción. En consecuencia, los i, i′, v, v′ deseados no existen, y La propiedad (d) se mantiene. ■ 5.7 El lema de la completitud Lema 5.2. [Lema de integridad, reformulado] Suponiendo que las propiedades 1–3 se mantienen para la ronda r−1, cuando el líder \(\ell\)r es honesto, con una probabilidad abrumadora, • Todos los usuarios honestos están de acuerdo en el mismo bloque Br, que es generado por \(\ell\)r y contiene un máximo pago recibido por \(\ell\)r en el momento \(\alpha\)r,1 \(\ell\)r \(\in\)Ir; y • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ y todos los usuarios honestos conocen Br en el intervalo de tiempo Ir+1. Prueba. Según la hipótesis inductiva y el Lema 5.5, para cada paso s y verificador i \(\in\)HSV r,s, \(\alpha\)r, s yo \(\in\)Ir. A continuación analizamos el protocolo paso a paso. Paso 1. Por definición, todo verificador honesto i \(\in\)HSV r,1 propaga el mensaje deseado mr,1 yo en tiempo \(\beta\)r,1 yo = \(\alpha\)r,1 yo, donde señor,1 yo = (Hermano yo , esigi(H(Br i )), \(\sigma\)r,1 yo), hermano i = (r, PAGAR r i , SIGi(Qr−1), H(Br−1)), y PAGAR r i es un conjunto de pagos máximo entre todos los pagos que i ha visto en el tiempo \(\alpha\)r,1 yo. Paso 2. Fijar arbitrariamente un verificador honesto i \(\in\)HSV r,2. Según el Lema 5.5, cuando el jugador i termina esperando en el momento \(\beta\)r,2 yo = \(\alpha\)r,2 yo + t2, ha recibido todos los mensajes enviados por los verificadores en HSV r,1, incluidos señor, 1 \(\ell\)r. Según la definición de \(\ell\)r, no existe otro jugador en PKr−k cuya credencial sea hash el valor es menor que H(\(\sigma\)r,1 \(\ell\)r). Por supuesto, el Adversario puede corromper a \(\ell\)r después de ver que H(\(\sigma\)r,1 \(\ell\)r) es muy pequeño, pero para entonces el jugador \(\ell\)r ha destruido su clave efímera y el mensaje mr,1 \(\ell\)r ha sido propagado. Por lo tanto, el verificador i establece que su propio líder sea el jugador \(\ell\)r. En consecuencia, en el momento \(\beta\)r,2 yo, verificador i propaga mr,2 yo = (ESIGi(v′ i), \(\sigma\)r,2 i ), donde v′ yo = H(Br \(\ell\)r). Cuando r = 0, la única diferencia es que \(\beta\)r,2 yo = t2 en lugar de estar en un rango. Se pueden decir cosas similares para pasos futuros y No los enfatizaré nuevamente. Paso 3. Fijar arbitrariamente un verificador honesto i \(\in\)HSV r,3. Según el Lema 5.5, cuando el jugador i termina esperando en el momento \(\beta\)r,3 yo = \(\alpha\)r,3 yo + t3, ha recibido todos los mensajes enviados por los verificadores en HSV r,2. Por las relaciones entre los parámetros, con abrumadora probabilidad |HSV r,2| > 2|MSV r,2|. Además, ningún verificador honesto firmaría mensajes contradictorios, y el Adversario no puede falsificar la firma de un verificador honesto después de que éste haya destruido su correspondiente clave secreta efímera. Por lo tanto, más de 2/3 de todos los mensajes (r, 2) válidos que he recibido son de verificadores honestos y de la forma mr,2 j = (ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,2 j ), sin contradicción. En consecuencia, en el momento \(\beta\)r,3 yo jugador que propaga mr,3 yo = (ESIGi(v′), \(\sigma\)r,3 i ), donde v′ = H(Br \(\ell\)r).Paso 4. Fijar arbitrariamente un verificador honesto i \(\in\)HSV r,4. Según el Lema 5.5, el jugador i ha recibido todos mensajes enviados por los verificadores en HSV r,3 cuando termina de esperar en el momento \(\beta\)r,4 yo = \(\alpha\)r,4 yo +t4. Similar a Paso 3, más de 2/3 de todos los mensajes (r, 3) válidos que he recibido son de verificadores honestos y de la forma señor,3 j = (ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,3 j). En consecuencia, el jugador i establece vi = H(Br \(\ell\)r), gi = 2 y bi = 0. En el momento \(\beta\)r,4 yo = \(\alpha\)r,4 yo +t4 se propaga señor,4 yo = (ESIGi(0), ESIGi(H(Br \(\ell\)r)), \(\sigma\)r,4 yo). Paso 5. Fijar arbitrariamente un verificador honesto i \(\in\)HSV r,5. Según el Lema 5.5, el jugador que tendría recibido todos los mensajes enviados por los verificadores en HSV r,4 si ha esperado hasta el momento \(\alpha\)r,5 yo +t5. Tenga en cuenta que |VHS r,4| \(\geq\)tH.19 También tenga en cuenta que todos los verificadores en HSV r,4 han firmado para H(Br \(\ell\)r). Como |MSV r,4| < tH, no existe v′ ̸= H(Br \(\ell\)r) que podría haber sido firmado por tH verificadores en SV r,4 (que necesariamente serían maliciosos), por lo que el jugador i no se detiene antes de haber recibido mensajes válidos mr,4 j = (ESIGj(0), ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,4 j). Sea T el momento en que ocurre este último evento. Algunos de esos mensajes pueden ser de jugadores malintencionados, pero debido a |MSV r,4| < tH, al menos uno de ellos es de un verificador honesto en HSV r,4 y se envía después de un tiempo T r +t4. En consecuencia, T \(\geq\)T r +t4 > T r +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 \(\ell\)r +Λ, y para cuando T el jugador i también haya recibido el mensaje señor,1 \(\ell\)r. Según la construcción del protocolo, el jugador i se detiene en el momento \(\beta\)r,5 yo = T sin propagar cualquier cosa; establece Br = Br \(\ell\)r; y establece su propio CERT r como el conjunto de (r, 4) mensajes para 0 y H(Br \(\ell\)r) que ha recibido. Paso s > 5. De manera similar, para cualquier paso s > 5 y cualquier verificador i \(\in\)HSV r,s, el jugador i tendría recibido todos los mensajes enviados por los verificadores en HSV r,4 si ha esperado hasta el momento \(\alpha\)r,s yo + ts. por el Mismo análisis, el jugador i se detiene sin propagar nada, estableciendo Br = Br \(\ell\)r (y estableciendo el suyo propio CERT r correctamente). Por supuesto, es posible que los verificadores maliciosos no se detengan y propaguen datos arbitrarios. mensajes, sino porque |MSV r,s| < tH, por inducción ningún otro v′ podría ser firmado por los verificadores tH en cualquier paso 4 \(\leq\)s′ < s, por lo tanto los verificadores honestos sólo se detienen porque han recibido tH válido (r, 4) -mensajes para 0 y H(Br) \(\ell\)r). Reconstrucción del Bloque Ronda-r. El análisis del Paso 5 se aplica a un honesto genérico. usuario i casi sin ningún cambio. De hecho, el jugador i comienza su propia ronda r en el intervalo Ir y sólo se detendrá en un momento T cuando haya recibido tH mensajes (r, 4) válidos para H(Br) \(\ell\)r). otra vez porque al menos uno de esos mensajes es de verificadores honestos y se envía después del tiempo T r + t4, el jugador i tiene también recibió mr,1 \(\ell\)r por el tiempo T. Así establece Br = Br \(\ell\)r con el CERT r adecuado. Sólo queda demostrar que todos los usuarios honestos terminan su ronda r dentro del intervalo de tiempo Ir+1. Según el análisis del Paso 5, todo verificador honesto i \(\in\)HSV r,5 conoce Br en o antes de \(\alpha\)r,5 yo + t5 \(\leq\) Tr + \(\lambda\) + t5 = Tr + 8\(\lambda\) + Λ. Dado que T r+1 es el momento en que el primer usuario honesto conoce Br, tenemos Tr+1 \(\leq\)Tr + 8\(\lambda\) + Λ como se desee. Además, cuando el jugador conoce a Br, ya ha ayudado a propagar los mensajes en su CERT r. Tenga en cuenta que todos esos mensajes serán recibidos por todos los usuarios honestos dentro del tiempo \(\lambda\), incluso si 19Estrictamente hablando, esto sucede con una probabilidad muy alta pero no necesariamente abrumadora. Sin embargo, esto La probabilidad afecta ligeramente el tiempo de ejecución del protocolo, pero no afecta su corrección. Cuando h = 80%, entonces |VHS r,4| \(\geq\)tH con probabilidad 1 −10−8. Si este evento no ocurre, entonces el protocolo continuará por otro 3 pasos. Como la probabilidad de que esto no ocurra en dos pasos es insignificante, el protocolo terminará en el Paso 8. En Como se esperaba, entonces, el número de pasos necesarios es casi 5.El jugador fue el primero en propagarlos. Además, siguiendo el análisis anterior tenemos Tr+1 \(\geq\)Tr + t4 \(\geq\) \(\beta\)r,1 \(\ell\)r + Λ, por lo tanto todos los usuarios honestos han recibido mr,1 \(\ell\)r por tiempo T r+1 + \(\lambda\). En consecuencia, todos los usuarios honestos conocen Br en el intervalo de tiempo Ir+1 = [T r+1, T r+1 + \(\lambda\)]. Finalmente, para r = 0 en realidad tenemos T 1 \(\leq\)t4 + \(\lambda\) = 6\(\lambda\) + Λ. Combinando todo junto, El lema 5.2 se cumple. ■ 5.8 El lema de la solidez Lema 5.3. [Lema de solidez, reformulado] Suponiendo que las propiedades 1 a 3 se mantienen para la ronda r −1, cuando el líder \(\ell\)r es malicioso, con una probabilidad abrumadora, todos los usuarios honestos coinciden en el mismo bloque Br, T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ y todos los usuarios honestos conocen Br en el intervalo de tiempo Ir+1. Prueba. Consideramos las dos partes del protocolo, GC y BBA⋆, por separado. GC. Por la hipótesis inductiva y por el Lema 5.5, para cualquier paso s \(\in\){2, 3, 4} y cualquier paso honesto verificador i \(\in\)HSV r,s, cuando el jugador i actúa en el momento \(\beta\)r,s yo = \(\alpha\)r,s yo + ts, ha recibido todos los mensajes enviados por todos los verificadores honestos en los pasos s′ < s. Distinguimos dos posibles casos para el paso 4. Caso 1. Ningún verificador i \(\in\)HSV r,4 establece gi = 2. En este caso, por definición bi = 1 para todos los verificadores i \(\in\)HSV r,4. Es decir, comienzan con un acuerdo sobre 1 en el protocolo binario BA. Es posible que no tengan un acuerdo sobre sus vi, pero esto no importa como veremos en el binario BA. Caso 2. Existe un verificador ˆi \(\in\)HSV r,4 tal que gˆi = 2. En este caso demostramos que (1) gi \(\geq\)1 para todo i \(\in\)HSV r,4, (2) existe un valor v′ tal que vi = v′ para todo i \(\in\)HSV r,4, y (3) existe un mensaje válido mr,1 \(\ell\) de algún verificador \(\ell\) \(\in\)SV r,1 tal que v′ = H(Br \(\ell\)). De hecho, dado que el jugador ˆi es honesto y establece gˆi = 2, más de 2/3 de todos los mensajes válidos mr,3 j ha recibido son por el mismo valor v′ ̸= \(\bot\), y ha puesto vˆi = v′. Por la Propiedad (d) en el Lema 5.5, para cualquier otro verificador (r, 4) i honesto, no puede ser más de 2/3 de todos los mensajes válidos mr,3 j que i′ ha recibido son del mismo valor v′′ ̸= v′. En consecuencia, si i establece gi = 2, debe ser que i también ha visto > 2/3 de la mayoría para v′ y establece vi = v′, como se desee. Consideremos ahora un verificador arbitrario i \(\in\)HSV r,4 con gi < 2. Similar al análisis de Propiedad (d) en el Lema 5.5, debido a que el jugador ˆi ha visto > 2/3 de mayoría para v′, más de 1 2|VHS r,3| honesto (r, 3)-los verificadores han firmado v′. Porque he recibido todos los mensajes de verificadores honestos (r, 3) de tiempo \(\beta\)r,4 yo = \(\alpha\)r,4 yo + t4, en particular ha recibido más de 1 2|VHS r,3| mensajes de ellos para v′. Porque |HSV r,3| > 2|MSV r,3|, i ha visto > 1/3 de mayoría para v′. En consecuencia, jugador i establece gi = 1 y se cumple la propiedad (1). ¿El jugador i necesariamente establece vi = v′? Supongamos que existe un valor diferente v′′ ̸= \(\bot\)tal que El jugador i también ha visto > 1/3 de mayoría para v′′. Algunos de esos mensajes pueden ser de origen malicioso. verificadores, pero al menos uno de ellos es de algún verificador honesto j \(\in\)HSV r,3: de hecho, porque |VHS r,3| > 2|MSV r,3| y he recibido todos los mensajes de HSV r,3, el conjunto de malware Los verificadores de quienes he recibido un mensaje (r, 3) válido cuentan para < 1/3 de todos los válidos. mensajes que ha recibido.Por definición, el jugador j debe haber visto > 2/3 de la mayoría para v′′ entre todos los mensajes (r, 2) válidos. él ha recibido. Sin embargo, ya sabemos que algunos otros verificadores honestos (r, 3) han visto 2/3 de mayoría para v′ (porque firmaron v′). Según la propiedad (d) del Lema 5.5, esto no puede sucede y tal valor v′′ no existe. Por lo tanto, el jugador i debe haber configurado vi = v′ como deseaba, y la propiedad (2) se mantiene. Finalmente, dado que algunos verificadores honestos (r, 3) han visto > 2/3 de mayoría para v′, algunos (en realidad, más de la mitad de los verificadores (r, 2) honestos firmaron por v′ y propagaron sus mensajes. Según la construcción del protocolo, aquellos verificadores (r, 2) honestos deben haber recibido una evaluación válida. mensaje señor,1 \(\ell\) de algún jugador \(\ell\) \(\in\)SV r,1 con v′ = H(Br \(\ell\)), por lo que se cumple la propiedad (3). BBA⋆. Nuevamente distinguimos dos casos. Caso 1. Todos los verificadores i \(\in\)HSV r,4 tienen bi = 1. Esto sucede siguiendo el Caso 1 del CG. Como |MSV r,4| < tH, en este caso no hay verificador en SV r,5 podría recopilar o generar tH mensajes (r, 4) válidos para el bit 0. Por lo tanto, no hay ningún verificador honesto en HSV r,5 Se detendría porque conoce un bloque que no está vacío. Además, aunque hay al menos tH mensajes (r, 4) válidos para el bit 1, s′ = 5 no satisface s′ −2 ≡1 mod 3, por lo tanto ningún verificador honesto en HSV r,5 se detendría porque sabe Br = Br ǫ. En cambio, cada verificador i \(\in\)HSV r,5 actúa en el momento \(\beta\)r,5 yo = \(\alpha\)r,5 yo + t5, cuando haya recibido todo mensajes enviados por HSV r,4 siguiendo el Lema 5.5. Así, el jugador i ha visto > 2/3 de mayoría para 1 y establece bi = 1. En el paso 6, que es un paso de moneda fijada en 1, aunque s′ = 5 satisface s′ −2 ≡0 mod 3, hay no existen mensajes (r, 4) válidos para el bit 0, por lo que ningún verificador en HSV r,6 se detendría porque él conoce un bloque no vacío Br. Sin embargo, con s′ = 6, s′ −2 ≡1 mod 3 y existen |VHS r,5| \(\geq\)tH mensajes válidos (r, 5) para el bit 1 de HSV r,5. Para cada verificador i \(\in\)HSV r,6, siguiendo el Lema 5.5, en o antes del tiempo \(\alpha\)r,6 yo + t6 jugador i ha recibido todos los mensajes de HSV r,5, por lo tanto me detengo sin propagar nada y configuro Br = Br ǫ. Su CERT r es el conjunto de tH mensajes (r, 5) válidos mr,5 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 j) recibido por él cuando se detiene. A continuación, deje que el jugador i sea un verificador honesto en un paso s > 6 o un usuario honesto genérico (es decir, no verificador). De manera similar a la prueba del Lema 5.2, el jugador i establece Br = Br ǫ y establece el suyo CERT r será el conjunto de tH mensajes (r, 5) válidos mr,5 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 j) él tiene recibido. Finalmente, similar al Lema 5.2, Tr+1 \(\leq\) mín. i\(\in\)HSV r,6 \(\alpha\)r,6 yo + t6 \(\leq\)T r + \(\lambda\) + t6 = T r + 10\(\lambda\) + Λ, y todos los usuarios honestos conocen Br en el intervalo de tiempo Ir+1, porque el primer usuario honesto que Sabe que Br ha ayudado a propagar los mensajes (r, 5) en su CERT r. Caso 2. Existe un verificador ˆi \(\in\)HSV r,4 con bˆi = 0. Esto sucede después del Caso 2 de GC y es el caso más complejo. Según el análisis de GC, en este caso existe un mensaje válido mr,1 \(\ell\) tal que vi = H(Br \(\ell\)) para todo i \(\in\)HSV r,4. Nota que los verificadores en HSV r,4 pueden no tener un acuerdo sobre sus bi. Para cualquier paso s \(\in\){5, . . . , m + 3} y verificador i \(\in\)HSV r,s, por el Lema 5.5 jugador i habría recibió todos los mensajes enviados por todos los verificadores honestos en HSV r,4 \(\cup\) \(\cdots\) \(\cup\)HSV r,s−1 si ha esperado por tiempo ts.Consideremos ahora el siguiente evento E: existe un paso s∗\(\geq\)5 tal que, por primera vez tiempo en el binario BA, algún jugador i∗\(\in\)SV r,s∗ (ya sea malicioso u honesto) debería detenerse sin propagar nada. Usamos “should stop” para enfatizar el hecho de que, si el jugador i∗ es malicioso, entonces puede fingir que no debe detenerse según el protocolo y propagar mensajes elegidos por el adversario. Además, según la construcción del protocolo, ya sea (E.a) i∗es capaz de recopilar o generar al menos tH mensajes válidos mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ) para los mismos v y s′, con 5 \(\leq\)s′ \(\leq\)s∗ y s′ −2 ≡0 mod 3; o (E.b) i∗es capaz de recopilar o generar al menos tH mensajes válidos mr,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ) para el mismo s′, con 6 \(\leq\)s′ \(\leq\)s∗ y s′ −2 ≡1 mod 3. Porque los mensajes honestos (r, s′ −1) son recibidos por todos los verificadores (r, s′) honestos antes de han terminado de esperar en los Pasos s′, y debido a que el Adversario recibe todo a más tardar el Usuarios honestos, sin pérdida de generalidad tenemos s′ = s∗ y el jugador i∗ es malicioso. Tenga en cuenta que No requerimos que el valor v en E.a sea el hash de un bloque válido: como quedará claro en el análisis, v = H(Br \(\ell\)) en este subevento. A continuación analizamos primero el caso 2 después del evento E, y luego mostramos que el valor de s∗es esencialmente distribuido en consecuencia a Lr (por lo tanto, el evento E ocurre antes del Paso m + 3 con abrumador probabilidad dadas las relaciones de los parámetros). Para empezar, para cualquier paso 5 \(\leq\)s < s∗, cada verificador honesto i \(\in\)HSV r,s ha esperado el tiempo ts y ha establecido vi como el voto mayoritario de la mensajes (r, s−1) válidos que ha recibido. Desde que el jugador i recibió todos los mensajes honestos (r, s−1) siguiendo el Lema 5.5, ya que todos los verificadores honestos en HSV r,4 han firmado H(Br \(\ell\)) siguiente caso 2 de GC, y desde |HSV r,s−1| > 2|MSV r,s−1| para cada s, por inducción tenemos ese jugador i ha establecido vi = H(Br \(\ell\)). Lo mismo vale para todo verificador honesto i \(\in\)HSV r,s∗ que no se detiene sin propagar cualquier cosa. Ahora consideramos el Paso s∗ y distinguimos cuatro subcasos. Caso 2.1.a. El evento E.a ocurre y existe un verificador honesto i′ \(\in\)HSV r,s∗ que debería También parar sin propagar nada. En este caso, tenemos s∗−2 ≡0 mod 3 y el Paso s∗ es un paso Coin-Fixed-To-0. Por definición, el jugador i′ ha recibido al menos tH mensajes (r, s∗−1) válidos de la forma (ESIGj(0), ESIGj(v), \(\sigma\)r,s∗−1 j ). Dado que todos los verificadores en HSV r,s∗−1 han firmado H(Br \(\ell\)) y |MSV r,s∗−1| < tH, tenemos v = H(Br \(\ell\)). Dado que al menos tH −|MSV r,s∗−1| \(\geq\)1 de los (r, s∗−1)-mensajes recibidos por i′ para 0 y v son enviados por verificadores en HSV r,s∗−1 después del tiempo T r +ts∗−1 \(\geq\)T r +t4 \(\geq\)T r +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 \(\ell\) +Λ, jugador i′ ha recibido mr,1 \(\ell\) en el momento en que recibe esos (r, s∗−1)-mensajes. Así jugador i′ se detiene sin propagar nada; establece Br = Br \(\ell\); y establece su propio CERT r como el conjunto de mensajes válidos (r, s∗−1) para 0 y v que ha recibido. A continuación, demostramos que cualquier otro verificador i \(\in\)HSV r,s∗ se ha detenido en Br = Br \(\ell\), o ha establecido bi = 0 y propagado (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s yo). De hecho, porque el Paso s∗ es la primera vez que algún verificador debe detenerse sin propagar nada, no existe un paso s′ < s∗ con s′ −2 ≡1 mod 3 tal que tH (r, s′ −1)-verificadores tengan signo 1. En consecuencia, ningún verificador en HSV r,s∗ se detiene con Br = Br ǫ.Además, como todos los verificadores honestos en los pasos {4, 5, . . . , s∗−1} han firmado H(Br \(\ell\)), no hay no existe un paso s′ \(\leq\)s∗ con s′ −2 ≡0 mod 3 tal que tH (r, s′ −1)-verificadores hayan firmado algunos v′′ ̸= H(Br \(\ell\)) —de hecho, |MSV r,s′−1| < tH. En consecuencia, ningún verificador en HSV r,s∗se detiene con Br ̸= Br ǫ y Br ̸= Br \(\ell\). Es decir, si un jugador i \(\in\)HSV r,s∗ se ha detenido sin propagando cualquier cosa, debe haber establecido Br = Br \(\ell\). Si un jugador i \(\in\)HSV r,s∗ ha esperado el tiempo ts∗ y ha propagado un mensaje en el tiempo \(\beta\)r,s∗ yo = \(\alpha\)r,s∗ yo + ts∗, ha recibido todos los mensajes de HSV r,s∗−1, incluyendo al menos tH −|MSV r,s∗−1| de ellos para 0 y v. Si he visto > 2/3 de mayoría por 1, entonces él ha visto más de 2(tH −|MSV r,s∗−1|) (r, s∗−1)-mensajes válidos para 1, con más que 2tH −3|MSV r,s∗−1| de ellos de verificadores (r, s∗−1) honestos. Sin embargo, esto implica |VHS r,s∗−1| \(\geq\)tH−|MSV r,s∗−1|+2tH−3|MSV r,s∗−1| > 2n−4|MSV r,s∗−1|, contradiciendo el hecho de que |VHS r,s∗−1| + 4|MSV r,s∗−1| < 2n, que proviene de las relaciones de los parámetros. En consecuencia, no veo > 2/3 mayoría para 1, y establece bi = 0 porque el paso s∗ es un paso fijado con moneda a 0. como tenemos visto, vi = H(Br \(\ell\)). Así i propaga (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s i ) como queríamos espectáculo. Para el Paso s∗+ 1, dado que el jugador i′ ha ayudado a propagar los mensajes en su CERT r en o antes del tiempo \(\alpha\)r,s∗ yo' + ts∗, todos los verificadores honestos en HSV r,s∗+1 han recibido al menos tH mensajes válidos (r, s∗−1) para el bit 0 y el valor H(Br \(\ell\)) en o antes de que hayan terminado esperando. Además, los verificadores en HSV r,s∗+1 no se detendrán antes de recibir aquellos (r, s∗−1)- mensajes, porque no existe ningún otro tH válido (r, s′ −1)-mensajes para el bit 1 con s′ −2 ≡1 mod 3 y 6 \(\leq\)s′ \(\leq\)s∗+ 1, según la definición del Paso s∗. En particular, paso s∗+ 1 en sí mismo es un paso Coin-Fixed-To-1, pero no se ha propagado ningún verificador honesto en HSV r,s∗ un mensaje para 1, y |MSV r,s∗| < tH. Así, todos los verificadores honestos en HSV r,s∗+1 se detienen sin propagar nada y establecen Br = hermano \(\ell\): como antes, han recibido mr,1 \(\ell\) antes de recibir los mensajes (r, s∗−1) deseados.20 Lo mismo puede decirse de todos los verificadores honestos en pasos futuros y de todos los usuarios honestos en general. En particular, todos saben Br = Br \(\ell\) dentro del intervalo de tiempo Ir+1 y Tr+1 \(\leq\) \(\alpha\)r,s∗ yo' + ts∗\(\leq\)T r + \(\lambda\) + ts∗. Caso 2.1.b. El evento E.b ocurre y existe un verificador honesto i′ \(\in\)HSV r,s∗ que debería También parar sin propagar nada. En este caso tenemos s∗−2 ≡1 mod 3 y el paso s∗ es un paso fijo con moneda a 1. El análisis es similar al Caso 2.1.a y se han omitido muchos detalles. 20 Si \(\ell\) es malicioso, podría enviar al señor 1 \(\ell\) tarde, esperando que algunos usuarios/verificadores honestos no hayan recibido mr,1 \(\ell\) todavía cuando reciban el certificado deseado para ello. Sin embargo, dado que el verificador ˆi \(\in\)HSV r,4 ha establecido bˆi = 0 y vˆi = H(Br \(\ell\)), como antes tenemos que más de la mitad de los verificadores honestos i \(\in\)HSV r,3 han fijado vi = H(Br \(\ell\)). Esto implica además más de la mitad de los verificadores honestos i \(\in\)HSV r,2 han fijado vi = H(Br \(\ell\)), y todos esos verificadores (r, 2) han recibido mr,1 \(\ell\). como el El adversario no puede distinguir a un verificador de un no verificador, no puede apuntar a la propagación de mr,1 \(\ell\) a (r, 2)-verificadores sin que los no verificadores lo vean. De hecho, con alta probabilidad, más de la mitad (o una buena fracción constante) de todos los usuarios honestos han visto mr,1 \(\ell\) después de esperar t2 desde el comienzo de su propia ronda r. De aquí en adelante, el tiempo \(\lambda\)′ necesario para mr,1 \(\ell\) para llegar a los usuarios honestos restantes es mucho menor que Λ, y por simplicidad no escríbalo en el análisis. Si 4\(\lambda\) \(\geq\) \(\lambda\)′ entonces el análisis se realiza sin ningún cambio: al final del Paso 4, todos los usuarios honestos habrían recibido mr,1 \(\ell\). Si el tamaño del bloque se vuelve enorme y 4\(\lambda\) < \(\lambda\)′, entonces en los Pasos 3 y 4, el protocolo podría pedir a cada verificador que esperara \(\lambda\)′/2 en lugar de 2\(\lambda\), y el análisis continúa manteniéndose.Como antes, el jugador i′ debe haber recibido al menos tH mensajes (r, s∗−1) válidos de la forma (ESIGj(1), ESIGj(vj), \(\sigma\)r,s∗−1 j ). Nuevamente por la definición de s∗, no existe un paso 5 \(\leq\)s′ < s∗con s′ −2 ≡0 mod 3, donde al menos tH (r, s′ −1)-verificadores tienen signo 0 y lo mismo v. Así el jugador i′ se detiene sin propagar nada; establece Br = Br ǫ; y conjuntos su propio CERT r es el conjunto de mensajes (r, s∗−1) válidos para el bit 1 que ha recibido. Además, cualquier otro verificador i \(\in\)HSV r,s∗ se ha detenido en Br = Br ǫ , o ha puesto bi = 1 y propagado (ESIGi(1), ESIGi(vi), \(\sigma\)r,s∗ yo ). Dado que el jugador i′ ha ayudado a propagar los mensajes (r, s∗−1) en su CERT r en el tiempo \(\alpha\)r,s∗ yo' + ts∗, nuevamente todos los verificadores honestos en HSV r,s∗+1 se detiene sin propagar nada y establece Br = Br ǫ . Del mismo modo, todo honesto. los usuarios saben Br = Br ǫ dentro del intervalo de tiempo Ir+1 y Tr+1 \(\leq\) \(\alpha\)r,s∗ yo' + ts∗\(\leq\)T r + \(\lambda\) + ts∗. Caso 2.2.a. El evento E.a ocurre y no existe un verificador honesto i′ \(\in\)HSV r,s∗que También debería parar sin propagar nada. En este caso, tenga en cuenta que el jugador i∗ podría tener un CERT r válido i∗compuesto por el tH deseado (r, s∗−1) -mensajes que el Adversario puede recopilar o generar. Sin embargo, los maliciosos Es posible que los verificadores no ayuden a propagar esos mensajes, por lo que no podemos concluir que la información honesta los usuarios los recibirán en el tiempo \(\lambda\). De hecho, |MSV r,s∗−1| de esos mensajes pueden ser de verificadores maliciosos (r, s∗−1), que no propagaron sus mensajes en absoluto y solo enviaron a los verificadores maliciosos en el paso s∗. Similar al Caso 2.1.a, aquí tenemos s∗−2 ≡0 mod 3, el Paso s∗ es un paso Coin-Fixed-To-0, y los mensajes (r, s∗−1) en CERT r i∗son para el bit 0 y v = H(Br \(\ell\)). De hecho, todo honesto Los verificadores (r, s∗−1) firman v, por lo que el adversario no puede generar tH mensajes (r, s∗−1) válidos. para una v′ diferente. Además, todos los verificadores (r, s∗) honestos han esperado el tiempo ts∗ y no ven > 2/3 de la mayoría para el bit 1, nuevamente porque |HSV r,s∗−1| + 4|MSV r,s∗−1| < 2n. Así, todo verificador honesto i \(\in\)HSV r,s∗conjuntos bi = 0, vi = H(Br \(\ell\)) por mayoría de votos, y propaga mr,s∗ yo = (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s∗ yo ) en el momento \(\alpha\)r,s∗ yo + ts∗. Consideremos ahora los verificadores honestos en el paso s∗+ 1 (que es un paso de moneda fijada en 1). si el El adversario realmente envía los mensajes en CERT r i∗a algunos de ellos y les hace detenerse, entonces similar al Caso 2.1.a, todos los usuarios honestos saben Br = Br \(\ell\)dentro del intervalo de tiempo Ir+1 y Tr+1 \(\leq\)Tr + \(\lambda\) + ts∗+1. De lo contrario, todos los verificadores honestos en el Paso s∗+1 han recibido todos los mensajes (r, s∗) para 0 y H(Br \(\ell\)) de HSV r,s∗después del tiempo de espera ts∗+1, lo que conduce a una mayoría > 2/3, porque |VHS r,s∗| > 2|MSV r,s∗|. Así, todos los verificadores en HSV r,s∗+1 propagan sus mensajes para 0 y H(Br \(\ell\)) en consecuencia. Tenga en cuenta que los verificadores en HSV r,s∗+1 no se detienen en Br = Br \(\ell\), porque el paso s∗+ 1 no es un paso de moneda fijada a 0. Consideremos ahora los verificadores honestos en el paso s∗+2 (que es un paso de moneda genuinamente lanzada al aire). Si el Adversario envía los mensajes en CERT r i∗a algunos de ellos y hace que se detengan, por otra parte, todos los usuarios honestos saben Br = Br \(\ell\) dentro del intervalo de tiempo Ir+1 y T r+1 \(\leq\)T r + \(\lambda\) + ts∗+2.De lo contrario, todos los verificadores honestos en el Paso s∗+ 2 han recibido todos los mensajes (r, s∗+ 1) para 0 y H(Br \(\ell\)) de HSV r,s∗+1 después del tiempo de espera ts∗+2, lo que conduce a una mayoría > 2/3. Así todos ellos propagan sus mensajes para 0 y H(Br \(\ell\)) en consecuencia: eso es lo que hacen En este caso, no “lanzar una moneda”. Nuevamente, tenga en cuenta que no paran sin propagarse, porque el Paso s∗+ 2 no es un paso Coin-Fixed-To-0. Finalmente, para los verificadores honestos en el Paso s∗+3 (que es otro paso de Coin-Fixed-To-0), todos de ellos habrían recibido al menos tH mensajes válidos para 0 y H(Br \(\ell\)) de HSV s∗+2, si realmente esperan el tiempo ts∗+3. Por lo tanto, si el adversario envía o no los mensajes en CERT r i∗a cualquiera de ellos, todos los verificadores en HSV r,s∗+3 terminan en Br = Br \(\ell\), sin propagar cualquier cosa. Dependiendo de cómo actúe el Adversario, algunos de ellos pueden tener su propio CERT r que consta de esos (r, s∗−1) mensajes en CERT r i∗, y los demás tienen su propio CERT r que consta de esos mensajes (r, s∗+ 2). En cualquier caso, todos los usuarios honestos. saber Br = Br \(\ell\) dentro del intervalo de tiempo Ir+1 y T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3. Caso 2.2.b. El evento E.b ocurre y no existe un verificador honesto i′ \(\in\)HSV r,s∗que También debería parar sin propagar nada. El análisis en este caso es similar a los del Caso 2.1.b y Caso 2.2.a, por lo que muchos detalles han sido omitidos. En particular, CERT r i∗consiste en los tH mensajes (r, s∗−1) deseados para el bit 1 que el Adversario puede recolectar o generar, s∗−2 ≡1 mod 3, el Paso s∗es un Paso Coin-Fixed-To-1, y ningún verificador honesto (r, s∗) podría haber visto > 2/3 de mayoría para 0. Por lo tanto, cada verificador i \(\in\)HSV r,s∗ establece bi = 1 y propaga mr,s∗ yo = (ESIGi(1), ESIGi(vi), \(\sigma\)r,s∗ yo ) en el momento \(\alpha\)r,s∗ yo + ts∗. Similar al Caso 2.2.a, en como máximo 3 pasos más (es decir, el protocolo alcanza el Paso s∗+3, que es otro paso Coin-Fixed-To-1), todos los usuarios honestos saben Br = Br ǫ dentro del intervalo de tiempo Ir+1. Además, T r+1 puede ser \(\leq\)T r+\(\lambda\)+ts∗+1, o \(\leq\)T r+\(\lambda\)+ts∗+2, o \(\leq\)T r + \(\lambda\) + ts∗+3, dependiendo de cuándo es la primera vez que un verificador honesto puede detener sin propagarse. Combinando los cuatro subcasos, tenemos que todos los usuarios honestos conocen Br dentro del intervalo de tiempo Ir+1, con T r+1 \(\leq\)T r + \(\lambda\) + ts∗ en los Casos 2.1.a y 2.1.b, y T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 en los Casos 2.2.a y 2.2.b. Queda por el límite superior s∗ y por lo tanto T r+1 para el Caso 2, y lo hacemos considerando cómo muchas veces los pasos de la moneda genuinamente lanzada se ejecutan en el protocolo: es decir, De hecho, algunos verificadores honestos han lanzado una moneda al aire. En particular, arregle arbitrariamente un paso s′ de moneda genuinamente lanzada (es decir, 7 \(\leq\)s′ \(\leq\)m + 2 y s′ −2 ≡2 mod 3), y sea \(\ell\)′ \(\triangleq\)arg minj\(\in\)SV r,s′−1 H(\(\sigma\)r,s′−1 j ). Por ahora supongamos s′ < s∗, porque de lo contrario ningún verificador honesto lanza una moneda en el Paso s′, de acuerdo con lo anterior discusiones. Según la definición de SV r,s′−1, el valor hash de la credencial de \(\ell\)′ es también el más pequeño entre todos los usuarios en PKr-k. Dado que la función hash es una oracle aleatoria, idealmente el jugador \(\ell\)′ es honesto con probabilidad al menos h. Como mostraremos más adelante, incluso si el Adversario hace lo mejor que puede para predecir el salida del oracle aleatorio e inclina la probabilidad, el jugador \(\ell\)′ sigue siendo honesto con la probabilidadal menos ph = h2(1 + h −h2). A continuación consideramos el caso en el que eso realmente sucede: es decir, \(\ell\)′ \(\in\)HSV r,s′−1. Tenga en cuenta que cada verificador honesto i \(\in\)HSV r,s′ ha recibido todos los mensajes de HSV r,s′−1 por tiempo \(\alpha\)r,s′ yo + ts′. Si el jugador i necesita lanzar una moneda (es decir, no ha visto > 2/3 de la mayoría durante el mismo bit b \(\in\){0, 1}), luego establece bi = lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )). Si existe otro honesto verificador i′ \(\in\)HSV r,s′ que ha visto > 2/3 de mayoría para un bit b \(\in\){0, 1}, entonces por Propiedad (d) del Lema 5.5, ningún verificador honesto en HSV r,s′ habría visto > 2/3 de mayoría por un tiempo b′ ̸= b. Desde lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )) = b con probabilidad 1/2, todos los verificadores honestos en HSV r,s′ alcanzan un acuerdo sobre b con probabilidad 1/2. Por supuesto, si dicho verificador i′ no existe, entonces todos verificadores honestos en HSV r,s′ están de acuerdo en el bit lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )) con probabilidad 1. Combinando la probabilidad para \(\ell\)′ \(\in\)HSV r,s′−1, tenemos que los verificadores honestos en HSV r,s′ llegar a un acuerdo sobre un bit b \(\in\){0, 1} con probabilidad al menos ph 2 = h2(1+h−h2) 2 . Además, por inducción en el voto mayoritario como antes, todos los verificadores honestos en HSV r,s′ tienen sus vi establecidos ser H(Br \(\ell\)). Por lo tanto, una vez que se llega a un acuerdo sobre b en el Paso s′, T r+1 es ya sea \(\leq\)T r + \(\lambda\) + ts′+1 o \(\leq\)T r + \(\lambda\) + ts′+2, dependiendo de si b = 0 o b = 1, siguiendo el análisis de los Casos 2.1.a y 2.1.b. en En particular, no se ejecutará ningún otro paso de moneda genuinamente lanzada: es decir, los verificadores en Dichos pasos aún verifican que son los verificadores y, por lo tanto, esperan, pero todos se detendrán sin propagar cualquier cosa. En consecuencia, antes del Paso s∗, el número de veces que se ejecutan los pasos Coin-GenuinelyFlipped se distribuye según la variable aleatoria Lr. Dejándose pasar ser el último paso de moneda genuinamente lanzada según Lr, mediante la construcción del protocolo tenemos s′ = 4 + 3Lr. ¿Cuándo debe el Adversario realizar el Paso s∗ si quiere retrasar T r+1 tanto como posible? Incluso podemos suponer que el Adversario conoce de antemano la realización de Lr. si s∗> s′ entonces es inútil, porque los verificadores honestos ya han llegado a un acuerdo en Paso s′. Sin duda, en este caso s∗ sería s′ +1 o s′ +2, nuevamente dependiendo de si b = 0 o b = 1. Sin embargo, estos son en realidad los Casos 2.1.a y 2.1.b, y el T r+1 resultante es exactamente el igual que en ese caso. Más precisamente, T r+1 \(\leq\)T r + \(\lambda\) + ts∗\(\leq\)T r + \(\lambda\) + ts′+2. Si s∗< s′ −3 —es decir, s∗ está antes del penúltimo paso de la moneda genuinamente lanzada— entonces por el análisis de los Casos 2.2.a y 2.2.b, T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 < T r + \(\lambda\) + ts′. Es decir, el Adversario en realidad está haciendo que el acuerdo sobre Br se realice más rápido. Si s∗= s′ −2 o s′ −1, es decir, el paso Coin-Fixed-To-0 o el paso Coin-Fixed-To-1 inmediatamente antes del Paso s′; luego, mediante el análisis de los cuatro subcasos, los verificadores honestos en Los pasos s′ ya no pueden lanzar monedas porque se han detenido sin propagarse, o haber visto > 2/3 de mayoría para el mismo bit b. Por lo tanto tenemos T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 \(\leq\)T r + \(\lambda\) + ts′+2.En resumen, no importa cuál sea, tenemos T r+1 \(\leq\)T r + \(\lambda\) + ts′+2 = T r + \(\lambda\) + t3Lr+6 = Tr + \(\lambda\) + (2(3Lr + 6) −3)\(\lambda\) + Λ = Tr + (6Lr + 10)\(\lambda\) + Λ, como queríamos mostrar. El peor caso es cuando s∗= s′ −1 y ocurre el Caso 2.2.b. Combinando los casos 1 y 2 del protocolo binario BA, se cumple el lema 5.3. ■ 5.9 Seguridad de la semilla Qr y probabilidad de un líder honesto Queda por demostrar el Lema 5.4. Recuerde que los verificadores de la ronda r se toman de PKr−k y se eligen según la cantidad Qr−1. El motivo de la introducción del parámetro retrospectivo k es asegurarse de que, en la ronda r −k, cuando el Adversario pueda agregar nuevos usuarios maliciosos para PKr−k, no puede predecir la cantidad Qr−1 excepto con una probabilidad insignificante. Tenga en cuenta que el La función hash es una oracle aleatoria y Qr−1 es una de sus entradas al seleccionar verificadores para la ronda r. Por lo tanto, no importa cuántos usuarios maliciosos se agreguen a PKr-k, desde el punto de vista del Adversario cada uno de ellos todavía está seleccionado para ser verificador en un paso de la ronda r con la probabilidad requerida p (o p1 para el Paso 1). Más precisamente, tenemos el siguiente lema. Lema 5.6. Con k = O(log1/2 F), para cada ronda r, con una probabilidad abrumadora el Adversario no consultó Qr−1 al oracle aleatorio en la ronda r −k. Prueba. Procedemos por inducción. Supongamos que para cada ronda \(\gamma\) < r, el Adversario no consultó Q\(\gamma\)−1 al oracle aleatorio en la ronda \(\gamma\) −k.21 Considere el siguiente juego mental jugado por el Adversario en la ronda r −k, tratando de predecir Qr−1. En el Paso 1 de cada ronda \(\gamma\) = r −k, . . . , r −1, dado un Q\(\gamma\)−1 específico no consultado al azar oracle, ordenando los jugadores i \(\in\)PK\(\gamma\)−k según los valores de hash H(SIGi(\(\gamma\), 1, Q\(\gamma\)−1)) Cada vez más, obtenemos una permutación aleatoria sobre PK\(\gamma\)−k. Por definición, el líder \(\ell\) \(\gamma\) es el primer usuario en la permutación y es honesto con probabilidad h. Además, cuando PK\(\gamma\)−k es grande suficiente, para cualquier número entero x \(\geq\)1, la probabilidad de que los primeros x usuarios en la permutación sean todos malicioso pero el (x + 1)st es honesto es (1 −h)xh. Si \(\ell\) \(\gamma\) es honesto, entonces Q\(\gamma\) = H(SIG\(\ell\) \(\gamma\)(Q\(\gamma\)−1), \(\gamma\)). Como el adversario no puede falsificar la firma de \(\ell\) \(\gamma\), Q\(\gamma\) se distribuye uniformemente al azar desde el punto de vista del Adversario y, excepto con probabilidad exponencialmente pequeña,22 no fue consultado a H en la ronda r −k. Dado que cada Q\(\gamma\)+1, Q\(\gamma\)+2, . . . , Qr−1 respectivamente es la salida de H con Q\(\gamma\), Q\(\gamma\)+1, . . . , Qr−2 como una de las entradas, todos parecen aleatorios para el Adversario y el Adversario no podría haber consultado Qr−1 a H en redondear r −k. En consecuencia, el único caso en el que el adversario puede predecir Qr−1 con buena probabilidad en la ronda r−k es cuando todos los líderes \(\ell\)r−k, . . . , \(\ell\)r−1 son maliciosos. Consideremos nuevamente una ronda \(\gamma\) \(\in\){r−k . . . , r-1} y la permutación aleatoria sobre PK\(\gamma\)−k inducida por los valores hash correspondientes. si por algunos x \(\geq\)2, los primeros x −1 usuarios en la permutación son todos maliciosos y el x-ésimo es honesto, entonces el El adversario tiene x opciones posibles para Q\(\gamma\): cualquiera de la forma H(SIGi(Q\(\gamma\)−1, \(\gamma\))), donde i es una de 21 Como k es un número entero pequeño, sin pérdida de generalidad se puede suponer que las primeras k rondas del protocolo se ejecutan en un entorno seguro y la hipótesis inductiva es válida para esas rondas. 22Es decir, exponencial en la longitud de la salida de H. Tenga en cuenta que esta probabilidad es mucho menor que F.los primeros usuarios maliciosos x−1, al convertir al jugador i en el líder real de la ronda \(\gamma\); o H(Q\(\gamma\)−1, \(\gamma\)), por forzando B\(\gamma\) = B\(\gamma\) ǫ . De lo contrario, el líder de la ronda \(\gamma\) será el primer usuario honesto en la permutación. y Qr−1 se vuelve impredecible para el Adversario. ¿Cuál de las x opciones anteriores de Q\(\gamma\) debería perseguir el adversario? Para ayudar al adversario Responda esta pregunta, en el juego mental en realidad lo hacemos más poderoso de lo que realmente es, como sigue. En primer lugar, en realidad, el Adversario no puede calcular el hash de la cuenta de un usuario honesto. firma, por lo que no puede decidir, para cada Q\(\gamma\), el número x(Q\(\gamma\)) de usuarios maliciosos al principio de la permutación aleatoria en la ronda \(\gamma\) + 1 inducida por Q\(\gamma\). En el juego mental, le damos la números x(Q\(\gamma\)) gratis. En segundo lugar, en realidad, tener los primeros x usuarios en la permutación todos Ser malicioso no significa necesariamente que todos puedan convertirse en líderes, porque el hash Los valores de sus firmas también deben ser menores que p1. Hemos ignorado esta limitación en el ámbito mental. juego, dándole al Adversario aún más ventajas. Es fácil ver que en el juego mental, la opción óptima para el Adversario, denotada por ˆQ\(\gamma\), es el que produce la secuencia más larga de usuarios maliciosos al comienzo del proceso aleatorio permutación en ronda \(\gamma\) + 1. De hecho, dado un Q\(\gamma\) específico, el protocolo no depende de Q\(\gamma\)−1 ya y el Adversario sólo puede centrarse en la nueva permutación en la ronda \(\gamma\) + 1, que tiene la misma distribución para el número de usuarios maliciosos al principio. En consecuencia, en cada ronda \(\gamma\), el ˆQ\(\gamma\) mencionado anteriormente le da el mayor número de opciones para Q\(\gamma\)+1 y por lo tanto maximiza la probabilidad de que los líderes consecutivos sean todos maliciosos. Por lo tanto, en el juego mental el Adversario sigue una Cadena de Markov desde la ronda r −k para redondear r −1, siendo el espacio de estados {0} \(\cup\){x : x \(\geq\)2}. El estado 0 representa el hecho de que el El primer usuario en la permutación aleatoria en la ronda actual \(\gamma\) es honesto, por lo tanto el Adversario falla el juego de predicción de Qr−1; y cada estado x \(\geq\)2 representa el hecho de que los primeros x −1 usuarios en el Las permutaciones son maliciosas y el x-ésimo es honesto, por lo que el Adversario tiene x opciones para Q\(\gamma\). el Las probabilidades de transición P(x, y) son las siguientes. • P(0, 0) = 1 y P(0, y) = 0 para cualquier y \(\geq\)2. Es decir, el adversario falla el juego una vez que la primera El usuario en la permutación se vuelve honesto. • P(x, 0) = hx para cualquier x \(\geq\)2. Es decir, con probabilidad hx, todas las x permutaciones aleatorias tienen sus primeros usuarios son honestos, por lo que el Adversario falla el juego en la siguiente ronda. • Para cualquier x \(\geq\)2 e y \(\geq\)2, P(x, y) es la probabilidad de que, entre las x permutaciones aleatorias inducido por las opciones x de Q\(\gamma\), la secuencia más larga de usuarios maliciosos al comienzo de algunas de ellas son y −1, por lo que el Adversario tiene y opciones para Q\(\gamma\)+1 en la siguiente ronda. Es decir, P(x, y) = y-1 x yo=0 (1 −h)ih !x − y-2 x yo=0 (1 −h)ih !x = (1 −(1 −h)y)x −(1 −(1 −h)y−1)x. Tenga en cuenta que el estado 0 es el único estado absorbente en la matriz de transición P, y todos los demás estados x tiene una probabilidad positiva de llegar a 0. Estamos interesados en acotar superiormente el número k de rondas necesarias para que la Cadena de Markov converja a 0 con una probabilidad abrumadora: es decir, no No importa en qué estado comience la cadena, con una probabilidad abrumadora el adversario pierde el juego. y no logra predecir Qr−1 en la ronda r −k. Considere la matriz de transición P (2) \(\triangleq\)P \(\cdot\) P después de dos rondas. Es fácil ver que P (2)(0, 0) = 1 y P (2)(0, x) = 0 para cualquier x \(\geq\)2. Para cualquier x \(\geq\)2 e y \(\geq\)2, como P(0, y) = 0, tenemos 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).Haciendo ¯h \(\triangleq\)1 −h, tenemos P(x, y) = (1 −¯hy)x −(1 −¯hy−1)x y P(2)(x, y) = x z\(\geq\)2 [(1 −¯hz)x −(1 −¯hz−1)x][(1 −¯hy)z −(1 −¯hy−1)z]. A continuación calculamos el límite de P (2)(x,y) P(x,y) cuando h llega a 1, es decir, ¯h llega a 0. Tenga en cuenta que el valor más alto El orden de ¯h en P(x, y) es ¯hy−1, con coeficiente x. En consecuencia, Lim h \(\to\) 1 P(2)(x, y) P(x, y) = límite ¯h \(\to\) 0 P(2)(x, y) P(x,y) = límite ¯h \(\to\) 0 P(2)(x, y) x¯hy−1 + O(¯hy) = Lim ¯h \(\to\) 0 pag z\(\geq\)2[x¯hz−1 + O(¯hz)][z¯hy−1 + O(¯hy)] x¯hy−1 + O(¯hy) = límite ¯h \(\to\) 0 2x¯hy + O(¯hy+1) x¯hy−1 + O(¯hy) = Lim ¯h \(\to\) 0 2x¯hy x¯hy−1 = lím ¯h \(\to\) 0 2¯h = 0. Cuando h es suficientemente cercano a 1,23 tenemos P(2)(x, y) P(x,y) \(\leq\)1 2 para cualquier x \(\geq\)2 y y \(\geq\)2. Por inducción, para cualquier k > 2, P (k) \(\triangleq\)P k es tal que • P (k)(0, 0) = 1, P (k)(0, x) = 0 para cualquier x \(\geq\)2, y • para cualquier x \(\geq\)2 e 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. Como P(x, y) \(\leq\)1, después de 1−log2 F rondas, la probabilidad de transición a cualquier estado y \(\geq\)2 es insignificante, comenzando con cualquier estado x \(\geq\)2. Aunque hay muchos estados de este tipo y, es fácil ver que Lim y→+∞ P(x, y) P(x, y + 1) = Lim y→+∞ (1 −¯hy)x −(1 −¯hy−1)x (1 −¯hy+1)x −(1 −¯hy)x = Lim y→+∞ ¯hy−1 −¯hy ¯hy −¯hy+1 = 1 ¯h = 1 1-h. Por lo tanto, cada fila x de la matriz de transición P disminuye como una secuencia geométrica con tasa 1 1-h > 2 cuando y es lo suficientemente grande, y lo mismo se aplica a P (k). En consecuencia, cuando k es lo suficientemente grande pero aún del orden de log1/2 F, P y\(\geq\)2 P (k)(x, y) < F para cualquier x \(\geq\)2. Es decir, con una probabilidad abrumadora el Adversario pierde el juego y no logra predecir Qr−1 en la ronda r −k. Para h \(\in\)(2/3, 1], un más Un análisis complejo muestra que existe una constante C ligeramente mayor que 1/2, tal que es suficiente para tomar k = O(logC F). Por tanto, se cumple el Lema 5.6. ■ Lema 5.4. (reformulado) Dadas las propiedades 1 a 3 para cada ronda antes de r, ph = h2(1 + h −h2) para Lr, y el líder \(\ell\)r es honesto con probabilidad al menos ph. 23Por ejemplo, h = 80% como lo sugieren las elecciones específicas de parámetros.

Prueba. Siguiendo el Lema 5.6, el Adversario no puede predecir Qr−1 en la ronda r −k excepto con probabilidad insignificante. Tenga en cuenta que esto no significa que la probabilidad de que un líder honesto sea h para cada ronda. De hecho, dado Qr-1, dependiendo de cuántos usuarios maliciosos haya al comienzo de la permutación aleatoria de PKr−k, el Adversario puede tener más de una opción para Qr y por lo tanto puede aumentar la probabilidad de que haya un líder malicioso en la ronda r + 1; nuevamente le estamos dando algunas ventajas poco realistas como en el Lema 5.6, para simplificar el análisis. Sin embargo, para cada Qr−1 que el Adversario no consultó a H en la ronda r −k, para cualquier x \(\geq\)1, con probabilidad (1 −h)x−1h, el primer usuario honesto ocurre en la posición x en el resultado permutación aleatoria de PKr−k. Cuando x = 1, la probabilidad de que haya un líder honesto en la ronda r + 1 es de hecho h; mientras que cuando x = 2, el Adversario tiene dos opciones para Qr y la probabilidad resultante es h2. Sólo considerando estos dos casos tenemos que la probabilidad de que un líder honesto en ronda r + 1 es al menos h \(\cdot\) h + (1 −h)h \(\cdot\) h2 = h2(1 + h −h2) como se desee. Tenga en cuenta que la probabilidad anterior sólo considera la aleatoriedad en el protocolo de la ronda r −k para redondear r. Cuando se tiene en cuenta toda la aleatoriedad desde la ronda 0 hasta la ronda r, Qr−1 es aún menos predecible para el Adversario y la probabilidad de un líder honesto en la ronda r + 1 es de menos h2(1 + h −h2). Reemplazando r + 1 con r y desplaza todo hacia atrás una ronda, el líder \(\ell\)r es honesto con una probabilidad de al menos h2(1 + h −h2), como se desee. De manera similar, en cada paso de una moneda lanzada genuinamente al aire, el “líder” de ese paso, es decir, el verificador. en SV r,s cuya credencial tiene el valor hash más pequeño, es honesta con probabilidad al menos h2(1 + h-h2). Así, ph = h2(1 + h −h2) para Lr y el Lema 5.4 se cumple. ■

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 En esta sección, construimos una versión de Algorand ′ que funciona bajo el siguiente supuesto. Supuesto honesto de la mayoría de los usuarios: Más de 2/3 de los usuarios en cada PKr son honestos. En la Sección 8, mostramos cómo reemplazar el supuesto anterior con la deseada Mayoría Honesta de Suposición de dinero. 6.1 Notaciones y parámetros adicionales para Algorand ′ 2 Notaciones • \(\mu\) \(\in\)Z+: un límite superior pragmático para el número de pasos que, con una probabilidad abrumadora, En realidad, se tomará en una ronda. (Como veremos, el parámetro \(\mu\) controla cuántos efímeros claves que un usuario prepara con antelación para cada ronda.) • Lr: una variable aleatoria que representa el número de ensayos de Bernoulli necesarios para ver un 1, cuando cada la prueba es 1 con probabilidad ph 2 . Lr se utilizará para limitar el tiempo necesario para generar bloque br. • tH: un límite inferior para el número de verificadores honestos en un paso s > 1 de la ronda r, tal que con probabilidad abrumadora (dados n y p), hay > tH verificadores honestos en SV r,s. Parámetros • Relaciones entre varios parámetros. — Para cada paso s > 1 de la ronda r, se elige n de modo que, con una probabilidad abrumadora,

|VHS r,s| > tH y |VHS r,s| + 2|MSV r,s| < 2tH. Tenga en cuenta que las dos desigualdades anteriores juntas implican |HSV r,s| > 2|MSV r,s|: es decir, hay Hay una mayoría honesta de 2/3 entre los verificadores seleccionados. Cuanto más cercano a 1 esté el valor de h, menor debe ser n. En particular, utilizamos (variantes de) Chernofflimits para garantizar que las condiciones deseadas se mantengan con una probabilidad abrumadora. • Ejemplos de opciones de parámetros importantes. - F = 10-18. — n \(\approx\)4000, tH \(\approx\)0,69n, k = 70. 6.2 Implementación de claves efímeras en Algorand ′ 2 Recuerde que un verificador i \(\in\)SV r,s firma digitalmente su mensaje mr,s yo del paso s en la ronda r, en relación con una clave pública efímera pkr,s i, usando una clave secreta efímera skr,s yo que rápidamente destruye después de usarlo. Cuando el número de pasos posibles que puede tomar una ronda está limitado a un determinado entero \(\mu\), ya hemos visto cómo manejar prácticamente claves efímeras. Por ejemplo, como nosotros lo he explicado en Algorand ′ 1 (donde \(\mu\) = m + 3), para manejar todas sus posibles claves efímeras, desde una ronda r′ a una ronda r′ + 106, i genera un par (PMK, SMK), donde PMK public master clave de un esquema de firma basado en identidad, y SMK su correspondiente clave maestra secreta. Usuario yo publicita PMK y utiliza SMK para generar la clave secreta de cada posible clave pública efímera (y destruye SMK después de haberlo hecho). El conjunto de claves públicas efímeras de i para lo relevante rondas es S = {i} \(\times\) {r′, . . . , r′ + 106} \(\times\) {1, . . . , \(\mu\)}. (Como se analizó, a medida que se acerca la ronda r′ + 106, "Actualizo" su par (PMK, SMK).) En la práctica, si \(\mu\) es lo suficientemente grande, una ronda de Algorand ′ 2 no tomará más de \(\mu\) pasos. en principio, sin embargo, existe la remota posibilidad de que, durante alguna ronda r el número de pasos realmente tomado excederá \(\mu\). Cuando esto suceda, no podría firmar su mensaje, Sr. yo para cualquier paso s > \(\mu\), porque ha preparado de antemano sólo \(\mu\) claves secretas para la ronda r. Además, él no pudo preparar y publicar un nuevo alijo de claves efímeras, como se discutió antes. De hecho, hacer por lo tanto, necesitaría insertar una nueva clave maestra pública PMK′ en un nuevo bloque. Pero, ¿debería redondearse r? Si toma más y más pasos, no se generarán nuevos bloques. Sin embargo, existen soluciones. Por ejemplo, puedo usar la última clave efímera de la ronda r, pkr,μ yo , como sigue. Genera otro alijo de pares de claves para la ronda r, por ejemplo, (1) generando otro par de claves maestras (PMK, SMK); (2) usar este par para generar otras, digamos, 106 claves efímeras, sk r,μ+1 yo , . . . , sk r,μ+106 yo , correspondiente a los pasos \(\mu\)+1, ..., \(\mu\)+106 de la ronda r; (3) usando skr,μ yo a digitalmente signo PMK (y cualquier mensaje (r, \(\mu\)) si i \(\in\)SV r,\(\mu\)), relativo a pkr,\(\mu\) yo ; y (4) borrar SMK y skr, \(\mu\) yo . ¿Debería convertirme en verificador en un paso \(\mu\) + s con s \(\in\){1, . . . , 106}, luego firmo digitalmente su (r, \(\mu\) + s)- mensaje señor, \(\mu\)+s yo en relación con su nuevo paquete de claves r,μ+s yo = (i, r, \(\mu\) + s). Por supuesto, para verificar esta firma. de i, otros deben estar seguros de que esta clave pública corresponde a la nueva clave maestra pública PMK de i. Así, además de esta firma, i transmite su firma digital de PMK en relación con pkr,μ yo . Por supuesto, este enfoque se puede repetir tantas veces como sea necesario, si se redondea r continuar ¡Para más y más pasos! La última clave secreta efímera se utiliza para autenticar un nuevo público maestro. clave y, por lo tanto, otro alijo de claves efímeras para la ronda r. Etcétera.6.3 El protocolo real Algorand ′ 2 Recuerde nuevamente que, en cada paso s de una ronda r, un verificador i \(\in\)SV r,s usa su secreto público de largo plazo. par de claves para producir su credencial, \(\sigma\)r,s yo \(\triangleq\)SIGi(r, s, Qr−1), así como SIGi qr-1 en el caso s = 1. El verificador i utiliza su par de claves efímeras (pkr,s yo, skr, s i ), para firmar cualquier otro mensaje m que pueda ser requerido. Para simplificar, escribimos esigi(m), en lugar de sigpkr,s. i (m), para denotar lo efímero propio de i firma de m en este paso y escriba ESIGi(m) en lugar de SIGpkr,s i (m) \(\triangleq\)(i, m, esigi(m)). Paso 1: bloquear la propuesta Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza su propio Paso 1 de la ronda r tan pronto como haya CERT r−1, que permite i calcular sin ambigüedades H(Br−1) y Qr−1. • El usuario i utiliza Qr−1 para comprobar si i \(\in\)SV r,1 o no. Si i /\(\in\)SV r,1, no hace nada para el Paso 1. • Si i \(\in\)SV r,1, es decir, si i es un líder potencial, entonces hace lo siguiente. (a) Si he visto B0, . . . , Br−1 mismo (cualquier Bj = Bj ǫ se puede derivar fácilmente de su valor hash en CERT j y por lo tanto se supone "visto"), luego cobra los pagos redondos r que han se le ha propagado hasta el momento y calcula un pago máximo PAY r yo de ellos. (b) Si no he visto todo B0, . . . , Br−1 todavía, luego establece PAY r yo = \(\emptyset\). (c) A continuación, i calcula su “bloque de candidatos” Br. i = (r, PAGAR r i , SIGi(Qr−1), H(Br−1)). (c) Finalmente, i calcula el mensaje mr,1 yo = (Hermano yo , esigi(H(Br i )), \(\sigma\)r,1 i ), destruye su efímero clave secreta skr,1 i y luego propaga dos mensajes, mr,1 yo y (SIGi(Qr−1), \(\sigma\)r,1 yo), por separado pero simultáneamente.a aCuando i es el líder, SIGi(Qr−1) permite que otros calculen Qr = H(SIGi(Qr−1), r).

Propagación selectiva Para acortar la ejecución global del Paso 1 y toda la ronda, es importante que (r, 1)- Los mensajes se propagan selectivamente. Es decir, para cada usuario j en el sistema, • Para el primer mensaje (r, 1) que recibe y verifica con éxitoa, si contiene un bloque o es solo una credencial y una firma de Qr−1, el jugador j lo propaga como de costumbre. • Para todos los demás mensajes (r, 1) que el jugador j recibe y verifica con éxito, propaga solo si el valor hash de la credencial que contiene es el más pequeño entre los valores hash de las credenciales contenidas en todos los mensajes (r, 1) que ha recibido y verificado con éxito para lejos. • Sin embargo, si j recibe dos mensajes diferentes de la forma mr,1 yo del mismo jugador i,b él descarta el segundo sin importar cuál sea el valor hash de la credencial de i. Tenga en cuenta que, bajo propagación selectiva, es útil que cada líder potencial i propague su credencial \(\sigma\)r,1 yo por separado del señor 1 i :c esos pequeños mensajes viajan más rápido que los bloques, asegúrese propagación oportuna del mr,1 i es donde las credenciales contenidas tienen valores pequeños hash, mientras que hacer que aquellos con valores hash grandes desaparezcan rápidamente. aEs decir, todas las firmas son correctas y, si es de la forma mr,1 i, tanto el bloque como su hash son válidos —Aunque j no comprueba si el conjunto de pagos incluido es máximo para i o no. bLo que significa que soy malicioso. cAgradecemos a Georgios Vlachos por sugerir esto.Paso 2: El primer paso del Protocolo de Consenso Graduado GC Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza su propio Paso 2 de la ronda r tan pronto como haya CERT r-1. • El usuario i espera un tiempo máximo t2 \(\triangleq\) \(\lambda\) + Λ. Mientras espero, actúo de la siguiente manera. 1. Después de esperar el tiempo 2\(\lambda\), encuentra al usuario \(\ell\)tal que H(\(\sigma\)r,1 \(\ell\)) \(\leq\)H(\(\sigma\)r,1 j) para todos credenciales \(\sigma\)r,1 j que son parte de los mensajes (r, 1) verificados con éxito que ha recibido hasta ahora.a 2. Si el tiene recibido un bloquear Br-1, cual partidos el hash valor H(Br−1) contenido en CERT r−1,b y si ha recibido de \(\ell\)un mensaje válido mr,1 \(\ell\) = (hermano \(\ell\), esig\(\ell\)(H(Br \(\ell\))), \(\sigma\)r,1 \(\ell\)),c entonces dejo de esperar y establezco v′ yo \(\triangleq\)(H(Br \(\ell\)), \(\ell\)). 3. De lo contrario, cuando se acaba el tiempo t2, i establece v′ yo \(\triangleq\) \(\bot\). 4. Cuando el valor de v′ Se ha configurado i, calcula Qr−1 a partir de CERT r−1 y verifica si i \(\in\)SV r,2 o no. 5. Si i \(\in\)SV r,2, i calcula el mensaje mr,2 yo \(\triangleq\)(ESIGi(v′ i), \(\sigma\)r,2 i ),d destruye su efímero clave secreta skr,2 i y luego propaga mr,2 yo. De lo contrario, me detengo sin propagarme. cualquier cosa. aEsencialmente, el usuario i decide en privado que el líder de la ronda r es el usuario \(\ell\). bPor supuesto, si CERT r−1 indica que Br−1 = Br−1 ǫ , entonces ya he “recibido” Br−1 en el momento en que él ha CERT r-1. cNuevamente, las firmas del jugador \(\ell\) y los hashes se verifican con éxito y PAGAN r \(\ell\)en Br \(\ell\)es un pago válido para round r —aunque no compruebo si PAY r \(\ell\)es máximo para \(\ell\)o no. si hermano \(\ell\)contiene un conjunto de pagos vacío, entonces en realidad no hay necesidad de que i vea Br−1 antes de verificar si Br \(\ell\)es válido o no. dEl mensaje mr,2 yo indica que el jugador i considera el primer componente de v′ i será el hash del siguiente bloque, o considera que el siguiente bloque está vacío.

Paso 3: el segundo paso de GC Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza su propio Paso 3 de la ronda r tan pronto como haya CERT r-1. • El usuario i espera un tiempo máximo t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ. Mientras espero, actúo como sigue. 1. Si existe un valor v tal que haya recibido al menos tH mensajes válidos mr,2 j de la forma (ESIGj(v), \(\sigma\)r,2 j ), sin contradicción alguna,a luego deja de esperar y pone v′ = v. 2. De lo contrario, cuando se acaba el tiempo t3, establece v′ = \(\bot\). 3. Cuando se ha establecido el valor de v′, i calcula Qr−1 a partir de CERT r−1 y verifica si i \(\in\)SV r,3 o no. 4. Si i \(\in\)SV r,3, entonces i calcula el mensaje mr,3 yo \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 i ), destruye su clave secreta efímera skr,3 i y luego propaga mr,3 yo. De lo contrario, me detengo sin propagar cualquier cosa. aEs decir, no ha recibido dos mensajes válidos que contengan ESIGj(v) y un ESIGj(ˆv) diferente respectivamente, de un jugador j. Aquí y de aquí en adelante, excepto en las Condiciones Finales que se definen más adelante, siempre que un jugador honesto quiere mensajes de una forma determinada, los mensajes que se contradicen entre sí nunca se cuentan ni se consideran válidos.

Paso 4: Salida de GC y el primer paso de BBA⋆ Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza su propio Paso 4 de la ronda r tan pronto como termina su propio Paso 3. • El usuario i espera una cantidad máxima de tiempo 2\(\lambda\).a Mientras espera, i actúa de la siguiente manera. 1. Calcula vi y gi, la salida de GC, de la siguiente manera. (a) Si existe un valor v′ ̸= \(\bot\) tal que haya recibido al menos tH mensajes válidos señor,3 j = (ESIGj(v′), \(\sigma\)r,3 j ), luego deja de esperar y establece vi \(\triangleq\)v′ y gi \(\triangleq\)2. b) Si ha recibido al menos los mensajes válidos mr,3 j = (ESIGj(\(\bot\)), \(\sigma\)r,3 j ), luego se detiene esperando y establece vi \(\triangleq\) \(\bot\) y gi \(\triangleq\)0.b (c) En caso contrario, cuando se acabe el tiempo 2\(\lambda\), si existe un valor v′ ̸= \(\bot\) tal que tenga recibido al menos ⌈tH 2 ⌉mensajes válidos mr,j j = (ESIGj(v′), \(\sigma\)r,3 j ), luego establece vi \(\triangleq\)v′ y gi \(\triangleq\)1.c (d) De lo contrario, cuando se acaba el tiempo 2\(\lambda\), establece vi \(\triangleq\) \(\bot\) y gi \(\triangleq\)0. 2. Cuando se han establecido los valores vi y gi, i calcula bi, la entrada de BBA⋆, de la siguiente manera: bi \(\triangleq\)0 si gi = 2, y bi \(\triangleq\)1 en caso contrario. 3. i calcula Qr−1 a partir de CERT r−1 y comprueba si i \(\in\)SV r,4 o no. 4. Si i \(\in\)SV r,4, calcula el mensaje mr,4 yo \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 i ), destruye su clave secreta efímera skr,4 i , y propaga mr,4 yo. De lo contrario, me detengo sin propagarme. cualquier cosa. aPor lo tanto, la cantidad total máxima de tiempo desde que i comienza su Paso 1 de la ronda r podría ser t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ. bEl hecho de que el paso (b) esté o no en el protocolo no afecta su exactitud. Sin embargo, la presencia del Paso (b) permite que el Paso 4 finalice en menos de 2\(\lambda\) si un número suficiente de verificadores del Paso 3 han “firmado \(\bot\)”. cSe puede demostrar que v′ en este caso, si existe, debe ser única.Paso s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ≡0 mod 3: un paso de BBA⋆ con moneda fijada a 0 Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza sus propios Pasos de la ronda r tan pronto como termina su propio Paso s −1. • El usuario i espera una cantidad máxima de tiempo 2\(\lambda\).a Mientras espera, i actúa de la siguiente manera. – Condición final 0: Si en algún punto existe una cadena v ̸= \(\bot\) y un paso s′ tal que (a) 5 \(\leq\)s′ \(\leq\)s, s′ −2 ≡0 mod 3, es decir, el paso s′ es un paso fijo con moneda a 0, (b) he recibido al menos tH mensajes válidos mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ),b y (c) he recibido un mensaje válido (SIGj(Qr−1), \(\sigma\)r,1 j ) siendo j el segundo componente de v, entonces, i deja de esperar y finaliza su propia ejecución de los Pasos s (y de hecho de la ronda r) inmediatamente sin propagar nada como verificador (r, s); establece que H(Br) sea el primero componente de v; y establece su propio CERT r como el conjunto de mensajes mr,s′−1 j del paso (b) junto con (SIGj(Qr−1), \(\sigma\)r,1 j ).c – Condición final 1: Si en algún punto existe un paso s′ tal que (a’) 6 \(\leq\)s′ \(\leq\)s, s′ −2 ≡1 mod 3, es decir, el paso s′ es un paso fijo con moneda a 1, y (b’) he recibido al menos tH mensajes válidos mr,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ),d entonces, i deja de esperar y finaliza su propia ejecución del Paso s (y de hecho de la ronda r) correctamente. lejos sin propagar nada como verificador (r, s); establece Br = Br ǫ ; y establece el suyo CERT r será el conjunto de mensajes mr,s′−1 j del subpaso (b’). – Si en cualquiera punto el tiene recibido en menos tH válido señor, s-1 j es de el forma (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), luego deja de esperar y establece bi \(\triangleq\)1. – Si en cualquiera punto el tiene recibido en menos tH válido señor, s-1 j es de el forma (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), pero no están de acuerdo en la misma v, entonces se detiene esperando y establece bi \(\triangleq\)0. – En caso contrario, cuando se acaba el tiempo 2\(\lambda\), i establece bi \(\triangleq\)0. – Cuando se ha establecido el valor bi, i calcula Qr−1 a partir de CERT r−1 y comprueba si i \(\in\)SV r,s. – Si i \(\in\)SV r,s, i calcula el mensaje mr,s yo \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) siendo vi el valor que ha calculado en el Paso 4, destruye su efímera clave secreta skr,s yo, y luego propaga señor, s yo. De lo contrario, me detengo sin propagar nada. aPor lo tanto, la cantidad total máxima de tiempo desde que i comienza su Paso 1 de la ronda r podría ser ts \(\triangleq\)ts−1 + 2\(\lambda\) = (2s −3)\(\lambda\) + Λ. bDicho mensaje del jugador j se cuenta incluso si el jugador i también ha recibido un mensaje de j firmando por 1. Cosas similares para la condición final 1. Como se muestra en el análisis, esto es para garantizar que todos los usuarios honestos sepan CERT r dentro del tiempo \(\lambda\) entre sí. El usuario i ahora conoce H(Br) y sus propios acabados redondos r. Sólo necesita esperar hasta que Br esté realmente bloqueado. propagado a él, lo que puede llevar algún tiempo adicional. Todavía ayuda a propagar mensajes como usuario genérico. pero no inicia ninguna propagación como verificador (r, s). En particular, ha ayudado a difundir todos los mensajes en su CERT r, que es suficiente para nuestro protocolo. Tenga en cuenta que también debería establecer bi \(\triangleq\)0 para el protocolo BA binario, pero bi no es necesario en este caso de todos modos. Cosas similares para todas las instrucciones futuras. dEn este caso, no importa cuáles sean los vj. 65Paso s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ≡1 mod 3: un paso de BBA⋆ con moneda fijada a 1 Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza sus propios Pasos de la ronda r tan pronto como termina su propio Paso s −1. • El usuario i espera un tiempo máximo de 2\(\lambda\). Mientras espero, actúo de la siguiente manera. – Condición final 0: Las mismas instrucciones que en un paso Coin-Fixed-To-0. – Condición final 1: Las mismas instrucciones que en un paso Coin-Fixed-To-0. – Si en cualquiera punto el tiene recibido en menos tH válido señor, s-1 j es de el forma (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), luego deja de esperar y establece bi \(\triangleq\)0.a – En caso contrario, cuando se acaba el tiempo 2\(\lambda\), i establece bi \(\triangleq\)1. – Cuando se ha establecido el valor bi, i calcula Qr−1 a partir de CERT r−1 y comprueba si i \(\in\)SV r,s. – Si i \(\in\)SV r,s, i calcula el mensaje mr,s yo \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) siendo vi el valor que ha calculado en el Paso 4, destruye su efímera clave secreta skr,s yo, y luego propaga señor, s yo. De lo contrario, me detengo sin propagar nada. aTenga en cuenta que recibir tH mensajes válidos (r, s −1) firmados para 1 significaría la Condición Final 1. Paso s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 mod 3: un paso de BBA⋆ genuinamente lanzado al aire Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza sus propios Pasos de la ronda r tan pronto como termina su propio paso s −1. • El usuario i espera un tiempo máximo de 2\(\lambda\). Mientras espero, actúo de la siguiente manera. – Condición final 0: Las mismas instrucciones que en un paso Coin-Fixed-To-0. – Condición final 1: Las mismas instrucciones que en un paso Coin-Fixed-To-0. – Si en cualquiera punto el tiene recibido en menos tH válido señor, s-1 j es de el forma (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), luego deja de esperar y establece bi \(\triangleq\)0. – Si en cualquiera punto el tiene recibido en menos tH válido señor, s-1 j es de el forma (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), luego deja de esperar y establece bi \(\triangleq\)1. – De lo contrario, cuando se acabe el tiempo 2\(\lambda\), dejar que SV r,s−1 yo ser el conjunto de (r, s −1)-verificadores de a quien ha recibido un mensaje válido mr,s−1 j , i establece bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1 yo H(\(\sigma\)r,s−1 j )). – Cuando se ha establecido el valor bi, i calcula Qr−1 a partir de CERT r−1 y comprueba si i \(\in\)SV r,s. – Si i \(\in\)SV r,s, i calcula el mensaje mr,s yo \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) siendo vi el valor que ha calculado en el Paso 4, destruye su efímera clave secreta skr,s yo, y luego propaga señor, s yo. De lo contrario, me detengo sin propagar nada. Observación. En principio, como se considera en la subsección 6.2, el protocolo puede tomar arbitrariamente muchos pasos en alguna ronda. Si esto sucede, como se discutió, un usuario i \(\in\)SV r,s con s > \(\mu\) ha agotado

su alijo de claves efímeras pregeneradas y tiene que autenticar su mensaje (r, s) mr,s yo por un “cascada” de claves efímeras. Por lo tanto, el mensaje se vuelve un poco más largo y la transmisión de estos es más larga. Los mensajes tardarán un poco más. En consecuencia, después de tantos pasos de una ronda determinada, el valor de el parámetro \(\lambda\) aumentará ligeramente automáticamente. (Pero vuelve al \(\lambda\) original una vez que se introduce un nuevo Se produce un bloque y comienza una nueva ronda.) Reconstrucción del bloque Round-r por parte de no verificadores Instrucciones para cada usuario i en el sistema: El usuario i comienza su propia ronda r tan pronto como haya CERT r-1. • Sigo las instrucciones de cada paso del protocolo, participo en la propagación de todos. mensajes, pero no inicia ninguna propagación en un paso si no es un verificador en el mismo. • i termina su propia ronda r ingresando ya sea la Condición Final 0 o la Condición Final 1 en alguna paso, con el correspondiente CERT r. • A partir de ahí, comienza su ronda r + 1 mientras espera recibir el bloque Br real (a menos que ya lo recibió), cuyo hash H(Br) ha sido fijado por CERT r. De nuevo, si CERT r indica que Br = Br ǫ, i conoce a Br en el momento en que tiene CERT r. 6.4 Análisis de Algorand ′ 2 El análisis de Algorand ′ 2 se deriva fácilmente del de Algorand ′ 1. Esencialmente, en Algorand ′ 2, con probabilidad abrumadora, (a) todos los usuarios honestos están de acuerdo en el mismo bloque Br; el líder de un nuevo El bloque es honesto con probabilidad al menos 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 جولة القادمة على أي حال! إذا، بدلا من ذلك، يتم اختياره ليكون مدققًا في إحدى هذه الجولات، ثم يجهز نفسه (على سبيل المثال، عن طريق الحصول على جميع المعلومات اللازمة) للعمل كمدقق نزيه في الجولة المناسبة. ومن خلال هذا التصرف، فإن المتحقق الكسول ولكن الصادق لن يفوته سوى المشاركة في النشر من الرسائل. لكن نشر الرسالة عادة ما يكون قويا. علاوة على ذلك، فإن الدافعين والمستفيدين من من المتوقع أن تكون المدفوعات التي تم نشرها مؤخرًا عبر الإنترنت لمشاهدة ما يحدث لمدفوعاتها، وبالتالي سيشاركون في نشر الرسالة إذا كانوا صادقين.

Manejo de usuarios honestos sin conexión

Como decíamos, un usuario honesto sigue todas las instrucciones prescritas, entre las que se incluye la de estar en línea. y ejecutar el protocolo. Esto no es una carga importante en Algorand, ya que el cálculo y El ancho de banda requerido por un usuario honesto es bastante modesto. Sin embargo, señalemos que Algorand puede modificarse fácilmente para que funcione en dos modelos, en los que los usuarios honestos pueden estar desconectados en grandes números. Antes de discutir estos dos modelos, señalemos que, si el porcentaje de jugadores honestos fueran 95%, Algorand aún podría ejecutarse configurando todos los parámetros asumiendo que h = 80%. En consecuencia, Algorand continuaría funcionando correctamente incluso si como máximo la mitad de los jugadores honestos decidió desconectarse (de hecho, un caso importante de “absentismo”). De hecho, en cualquier momento, al menos El 80% de los jugadores online serían honestos. De la participación continua a la honestidad perezosa Como vimos, Algorand ′ 1 y Algorand ′ 2 elegir el parámetro retrospectivo k. Demostremos ahora que elegir k adecuadamente grande permite eliminar el requisito de Participación Continua. Este requisito garantiza una propiedad crucial: a saber, que el protocolo BA subyacente BBA⋆tiene una mayoría honesta adecuada. Expliquemos ahora lo perezoso La honestidad proporciona una forma alternativa y atractiva de satisfacer esta propiedad.

Recuerde que un usuario i es vago pero honesto si (1) sigue todas las instrucciones prescritas, cuando se le pide que participe en el protocolo, y (2) se le pide que participe únicamente en el protocolo muy raramente —por ejemplo, una vez a la semana— con un aviso previo adecuado y potencialmente recibiendo recompensas cuando participa. Para permitir que Algorand trabaje con dichos reproductores, basta con “elegir los verificadores del ronda actual entre los usuarios que ya están en el sistema en una ronda mucho anterior”. En efecto, recuerda que los verificadores para una ronda r se eligen entre los usuarios de la ronda r −k, y las selecciones se realizan en función sobre la cantidad Qr−1. Tenga en cuenta que una semana consta de aproximadamente 10.000 minutos y suponga que un Una ronda dura aproximadamente (por ejemplo, en promedio) 5 minutos, por lo que una semana tiene aproximadamente 2000 rondas. asumir que, en algún momento, un usuario desea planificar su tiempo y saber si va a estar un verificador en la próxima semana. El protocolo ahora elige los verificadores para una ronda r entre los usuarios en redondee r −k −2, 000, y las selecciones se basan en Qr−2,001. En la ronda r, el jugador que ya conozco los valores Qr−2.000, . . . , Qr−1, ya que en realidad son parte de blockchain. Entonces, para cada M entre 1 y 2000, i es un verificador en un paso s de la ronda r + M si y sólo si .H SIGi r + M, s, Qr+M−2,001 \(\leq\)p. Así, para comprobar si va a ser llamado a actuar como verificador en las próximas 2.000 rondas, debo calcular \(\sigma\)M,s yo = SIGi r + M, s, Qr+M−2,001 para M = 1 a 2, 000 y para cada paso s, y verifique si .H(\(\sigma\)M,s yo ) \(\leq\)p para algunos de ellos. Si calcular una firma digital toma un milisegundo, entonces Toda esta operación le llevará aproximadamente 1 minuto de cálculo. Si no es seleccionado como verificador En cualquiera de estas rondas, entonces puede desconectarse con una “conciencia honesta”. ¿Había estado continuamente hubiera participado, ¡básicamente habría dado 0 pasos en las siguientes 2000 rondas de todos modos! Si, en cambio, es seleccionado para ser verificador en una de estas rondas, luego se prepara (por ejemplo, obteniendo todos la información necesaria) para actuar como un verificador honesto en la ronda adecuada. Al actuar así, un verificador potencial perezoso pero honesto sólo deja de participar en la propagación. de mensajes. Pero la propagación de mensajes suele ser sólida. Además, los pagadores y los beneficiarios de Se espera que los pagos propagados recientemente estén en línea para observar qué sucede con sus pagos. y así participarán en la propagación del mensaje, si son honestos.

البروتوكول 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، ويكون تنفيذ الجولة مشابهًا لما سبق شرحه.

Protocolo Algorand ′ con Mayoría Honesta de Dinero

Ahora, finalmente, mostramos cómo reemplazar el supuesto de la Mayoría Honesta de Usuarios con el supuesto mucho más Suposición significativa de Mayoría Honesta del Dinero. La idea básica es (en formato proof-of-stake) “seleccionar un usuario i \(\in\)PKr−k para que pertenezca a SV r,s con un peso (es decir, poder de decisión) proporcional a la cantidad de dinero que posee yo.”24 Según nuestra suposición HMM, podemos elegir si esa cantidad debe poseerse en la ronda r −k o al (inicio de) la ronda r. Suponiendo que no nos importe la participación continua, optamos por la última elección. (Para eliminar la participación continua, habríamos optado por la primera opción. Mejor dicho, por la cantidad de dinero que se posee en la ronda r −k −2, 000.) Hay muchas maneras de implementar esta idea. La forma más sencilla sería mantener cada tecla como máximo 1 unidad de dinero y luego seleccionar al azar n usuarios i de PKr−k tal que a(r) yo = 1. 24Deberíamos decir PKr−k−2.000 para reemplazar la participación continua. Por simplicidad, ya que uno puede desear requerir participación continua de todos modos, usamos PKr−k como antes, para llevar un parámetro menos.

La siguiente implementación más simple La siguiente implementación más simple puede ser exigir que cada clave pública posea una cantidad máxima de dinero M, para algún M fijo. El valor M es lo suficientemente pequeño en comparación con la cantidad total de dinero en el sistema, de modo que la probabilidad de que una clave pertenezca al conjunto de verificador de más de un el paso en —digamos— k rondas es insignificante. Entonces, una clave i \(\in\)PKr−k, poseer una cantidad de dinero a(r) yo en la ronda r, se elige que pertenezca a SV r,s si .H SIGi r, s, Qr−1 \(\leq\)p \(\cdot\) a(r) yo m . Y todo continúa como antes. Una implementación más compleja La última implementación "obligó a un participante rico en el sistema a poseer muchas claves". Una implementación alternativa, que se describe a continuación, generaliza la noción de estatus y considera cada usuario i constará de K + 1 copias (i, v), cada una de las cuales se selecciona independientemente para ser un verificador, y será dueño de su propia llave efímera (pkr,s i,v, skr,s i,v) en un paso s de una ronda r. El valor K depende sobre la cantidad de dinero a(r) yo propiedad de i en la ronda r. Veamos ahora con mayor detalle cómo funciona dicho sistema. Número de copias Sea n la cardinalidad esperada objetivo de cada conjunto de verificadores, y sea a(r) yo Sea la cantidad de dinero que posee un usuario i en la ronda r. Sea Ar la cantidad total de dinero que se posee por los usuarios en PKr−k en la ronda r, es decir, ar = x i\(\in\)PKr−k un(r) yo. Si i es un usuario en PKr−k, entonces las copias de i son (i, 1), . . . , (yo, K + 1), donde k = $ n \(\cdot\) a(r) yo ar % . Ejemplo. Sea n = 1.000, Ar = 109 y a(r) yo = 3,7 millones. Entonces, k = 103 \(\cdot\) (3,7 \(\cdot\) 106) 109  = ⌊3.7⌋= 3 . Verificadores y Credenciales Sea yo un usuario en PKr−k con K + 1 copias. Para cada v = 1, . . . , K, copia (i, v) pertenece automáticamente a SV r,s. Es decir, mi credencial es \(\sigma\)r,s i,v \(\triangleq\)SIGi((i, v), r, s, Qr−1), pero la condición correspondiente pasa a ser .H(\(\sigma\)r,s i,v) \(\leq\)1, que es siempre cierto. Para la copia (i, K + 1), para cada paso s de la ronda r, i verifica si .H SIGi (yo, K + 1), r, s, Qr−1 \(\leq\)a(r) yo norte Ar-K.

Si es así, la copia (i, K + 1) pertenece a SV r,s. Para probarlo, propago la credencial. \(\sigma\)r,1 i,K+1 = SIGi (yo, K + 1), r, s, Qr−1 . Ejemplo. Como en el ejemplo anterior, sea n = 1K, a(r) yo = 3,7M, Ar = 1B, y i tiene 4 copias: (i, 1), . . . , (yo, 4). Entonces, las primeras 3 copias pertenecen a SV r,s automáticamente. Para el cuarto, conceptualmente, Algorand ′ lanza de forma independiente una moneda sesgada, cuya probabilidad de obtener Cara es 0,7. Copiar (i, 4) se selecciona si y sólo si el lanzamiento de la moneda es Cara. (Por supuesto, este lanzamiento de moneda sesgado se implementa hashing, firmando y comparando, como Lo he hecho todo el tiempo en este artículo, para permitirme probar su resultado.) Negocios como siempre Habiendo explicado cómo se seleccionan los verificadores y cómo se obtienen sus credenciales. Calculado en cada paso de una ronda r, la ejecución de una ronda es similar a la ya explicada.

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

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

Manejo de bifurcaciones

Habiendo reducido la probabilidad de bifurcaciones a 10−12 o 10−18, es prácticamente innecesario manejar ellos en la remota posibilidad de que ocurran. Algorand, sin embargo, también puede emplear varias bifurcaciones. Procedimientos de resolución, con o sin constancia de trabajo. Una forma posible de indicar a los usuarios que resuelvan las bifurcaciones es la siguiente: • Siga la cadena más larga si un usuario ve varias cadenas. • Si hay más de una cadena más larga, siga aquella que tenga un bloque no vacío al final. si Todos tienen bloques vacíos al final, considere sus penúltimos bloques. • Si hay más de una cadena más larga con bloques no vacíos al final, digamos que las cadenas son de longitud r, siga aquel cuyo líder del bloque r tenga la credencial más pequeña. Si hay vínculos, siga aquel cuyo bloque r tenga el valor hash más pequeño. Si todavía hay empates, siga las aquel cuyo bloque r está ordenado lexicográficamente como el primero.

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

وكما قلنا، فإننا نفترض أن أوقات انتشار الرسائل بين جميع المستخدمين في الشبكة محددة بـ 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. ونأمل أن ننقل هذه التكنولوجيا إلى المستوى التالي. وفي الوقت نفسه السفر والرفقة هي متعة كبيرة، ونحن ممتنون للغاية لها.

Manejo de particiones de red

Como se dijo, asumimos que los tiempos de propagación de los mensajes entre todos los usuarios de la red están limitados por \(\lambda\) y Λ. Esta no es una suposición sólida, ya que la Internet actual es rápida y sólida, y los valores reales de estos parámetros son bastante razonables. Aquí, señalemos que Algorand ′ 2 continúa funcionando incluso si Internet ocasionalmente se divide en dos partes. El caso cuando Internet está dividida en más de dos partes. 10.1 Particiones Físicas En primer lugar, la partición puede deberse a motivos físicos. Por ejemplo, un gran terremoto puede terminarán por romper por completo la conexión entre Europa y América. En este caso, el Los usuarios malintencionados también están particionados y no hay comunicación entre las dos partes. Así

Habrá dos Adversarios, uno para la parte 1 y el otro para la parte 2. Cada Adversario todavía intenta romper el protocolo por su parte. Supongamos que la partición ocurre en medio de la ronda r. Entonces cada usuario sigue siendo seleccionado como verificador basado en PKr−k, con la misma probabilidad que antes. Sea HSV r,s yo y MSV r,s yo respectivamente sea el conjunto de verificadores honestos y maliciosos en un paso s en la parte i \(\in\){1, 2}. tenemos |VHS r,s 1 | + |MSV r,s 1 | + |VHS r,s 2 | + |MSV r,s 2 | = |VHS r,s| + |MSV r,s|. Tenga en cuenta que |HSV r,s| + |MSV r,s| < |VHS r,s| + 2|MSV r,s| < 2tH con una probabilidad abrumadora. Si alguna parte i tiene |HSV r,s yo | + |MSV r,s yo | \(\geq\)tH con probabilidad no despreciable, por ejemplo, 1%, entonces el probabilidad de que |HSV r,s 3-i| + |MSV r,s 3-i| \(\geq\)tH es muy bajo, por ejemplo, 10−16 cuando F = 10−18. En este caso, también podemos tratar la parte más pequeña como si estuviera fuera de línea, porque no habrá suficientes verificadores en esta parte para generar firmas tH para certificar un bloque. Consideremos la parte más amplia, digamos la parte 1, sin pérdida de generalidad. Aunque |HSV r,s| < tH con probabilidad insignificante en cada paso s, cuando la red está particionada, |HSV r,s 1 | puede ser menor que tH con alguna probabilidad no despreciable. En este caso el adversario podrá, con alguna otra probabilidad no despreciable, fuerce el protocolo binario BA en una bifurcación en la ronda r, con un bloque no vacío Br y el bloque vacío Br ǫ ambos con tH firmas válidas.25 Por ejemplo, en un Pasos Coin-Fixed-To-0, todos los verificadores en HSV r,s 1 firmó para el bit 0 y H(Br), y propagó sus mensajes. Todos los verificadores en MSV r,s 1 También firmaron 0 y H(Br), pero retuvieron sus mensajes. porque |VHS r,s 1 | + |MSV r,s 1 | \(\geq\)tH, el sistema tiene suficientes firmas para certificar al Hno. Sin embargo, desde el Los verificadores maliciosos retienen sus firmas, los usuarios ingresan al paso s + 1, que es un paso Coin-Fixed-To1. Porque |HSV r,s 1 | < tH debido a la partición, los verificadores en HSV r,s+1 1 no lo vi firmas para el bit 0 y todos firmaron para el bit 1. Todos los verificadores en MSV r,s+1 1 hizo lo mismo. porque |VHS r,s+1 1 | + |MSV r,s+1 1 | \(\geq\)tH, el sistema tiene suficientes firmas para certificar a Br ǫ. El adversario luego crea una bifurcación liberando las firmas de MSV r,s 1 para 0 y H(Br). En consecuencia, habrá dos Qr, definidas por los bloques correspondientes de la ronda r. Sin embargo, la bifurcación no continuará y sólo una de las dos ramas podrá crecer en la ronda r + 1. Instrucciones adicionales para Algorand ′ 2. Al ver un bloque Br no vacío y el bloque vacío bloque Br ǫ , sigue al no vacío (y el Qr definido por él). De hecho, al indicar a los usuarios que utilicen el bloque no vacío en el protocolo, si una gran cantidad cantidad de usuarios honestos en PKr+1−k se dan cuenta de que hay una bifurcación al comienzo de la ronda r +1, entonces la El bloque vacío no tendrá suficientes seguidores y no crecerá. Supongamos que el adversario logra dividir a los usuarios honestos para que algunos usuarios honestos vean Br (y quizás Br ǫ), y algunos sólo ven hermano ǫ. Debido a que el Adversario no puede decir cuál de ellos será un verificador siguiendo a Br y cuál será un verificador siguiendo al Hno. ǫ , los usuarios honestos se dividen aleatoriamente y cada uno de ellos sigue se convierte en un verificador (ya sea con respecto a Br o con respecto a Br ǫ) en un paso s > 1 con probabilidad pág. Para los usuarios maliciosos, cada uno de ellos puede tener dos oportunidades de convertirse en verificador, una con Br y el otro con Br ǫ, cada uno con probabilidad p de forma independiente. Sea HSV r+1,s 1;Br sea el conjunto de verificadores honestos en el paso s de la ronda r+1 después de Br. Otras notaciones como HSV r+1,s 1;Brǫ , MSV r+1,s 1;Br y MSV r+1,s 1;Brǫ se definen de manera similar. Por Chernoffbound, es fácil 25No es posible tener una bifurcación con dos bloques no vacíos con o sin particiones, excepto con cantidades insignificantes. probabilidad.para ver que con abrumadora probabilidad, |VHS r+1,s 1;Br | + |VHS r+1,s 1;Brǫ | + |MSV r+1,s 1;Br | + |MSV r+1,s 1;Brǫ | < 2tH. En consecuencia, las dos sucursales no pueden tener las firmas adecuadas que certifiquen un bloque para la ronda. r + 1 en el mismo paso s. Además, dado que las probabilidades de selección para dos pasos s y s′ son las iguales y las selecciones son independientes, también con una probabilidad abrumadora |VHS r+1,s 1;Br | + |MSV r+1,s 1;Br | + |VHS r+1,s′ 1;Brǫ | + |MSV r+1,s′ 1;Brǫ | < 2tH, para dos pasos cualesquiera s y s′. Cuando F = 10−18, por unión ligada, siempre y cuando el Adversario no pueda particionar a los usuarios honestos durante mucho tiempo (digamos 104 pasos, que son más de 55 horas con \(\lambda\) = 10 segundos26), con alta probabilidad (digamos 1−10−10) como máximo una rama tendrá las firmas adecuadas para certificar un bloque en la ronda r + 1. Finalmente, si la partición física ha creado dos partes con aproximadamente el mismo tamaño, entonces la probabilidad de que |HSV r,s yo | + |MSV r,s yo | \(\geq\)tH es pequeño para cada parte i. Tras un análisis similar, incluso si el Adversario logra crear una bifurcación con alguna probabilidad no despreciable en cada parte para la ronda r, como máximo una de las cuatro ramas puede crecer en la ronda r + 1. 10.2 Partición adversaria En segundo lugar, la partición puede ser causada por el Adversario, de modo que los mensajes propagados por los usuarios honestos en una parte no llegará directamente a los usuarios honestos de la otra parte, pero el Adversario puede reenviar mensajes entre las dos partes. Aún así, una vez que un mensaje de uno parte llega a un usuario honesto en la otra parte, se propagará en esta última como de costumbre. si el El adversario está dispuesto a gastar mucho dinero, es posible que pueda hackear el Internet y particionarlo así por un tiempo. El análisis es similar al de la parte más grande de la partición física anterior (la más pequeña parte se puede considerar que tiene población 0): el Adversario puede ser capaz de crear una bifurcación y cada usuario honesto sólo ve una de las ramas, pero como máximo una rama puede crecer. 10.3 Particiones de red en suma Aunque pueden ocurrir particiones de red y puede ocurrir una bifurcación en una ronda debajo de las particiones, No hay ninguna ambigüedad persistente: una bifurcación dura muy poco y, de hecho, dura como máximo una ronda. en todas las partes de la partición excepto como máximo una, los usuarios no pueden generar un nuevo bloque y, por lo tanto, (a) darse cuenta de que hay una partición en la red y (b) nunca confiar en bloques que "desaparecerán". Agradecimientos En primer lugar, nos gustaría agradecer a Sergey Gorbunov, coautor del citado sistema Democoin. Nuestro más sincero agradecimiento a Maurice Herlihy por muchas discusiones esclarecedoras, por señalar señaló que la canalización mejorará el rendimiento de Algorand y mejorará en gran medida el 26 Tenga en cuenta que un usuario finaliza un paso s sin esperar 2\(\lambda\) tiempo sólo si ha visto al menos tH firmas para el mismo mensaje. Cuando no hay suficientes firmas, cada paso durará 2\(\lambda\).

exposición de una versión anterior de este artículo. Muchas gracias a Sergio Rajsbaum, por sus comentarios sobre una versión anterior de este documento. Muchas gracias a Vinod Vaikuntanathan por varias discusiones profundas. y percepciones. Muchas gracias a Yossi Gilad, Rotem Hamo, Georgios Vlachos y Nickolai Zeldovich. por comenzar a probar estas ideas y por muchos comentarios y discusiones útiles. Silvio Micali quisiera agradecer personalmente a Ron Rivest por innumerables debates y orientación. en investigación criptográfica durante más de 3 décadas, por ser coautor del citado sistema de micropagos que ha inspirado uno de los mecanismos de selección de verificadores de Algorand. Esperamos llevar esta tecnología al siguiente nivel. Mientras tanto el viaje y el compañerismo Son muy divertidos, por lo que estamos muy agradecidos.