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

द्वारा Jing Chen and Silvio Micali · 2017

सिंगल मोड arxiv.org

सारांश

सार्वजनिक बही-खाता डेटा का एक छेड़छाड़-रोधी अनुक्रम है जिसे हर कोई पढ़ सकता है और बढ़ा सकता है। सार्वजनिक बहीखातों के असंख्य और आकर्षक उपयोग हैं। वे स्पष्ट दृष्टि से सभी प्रकार की सुरक्षा कर सकते हैं लेन-देन - जैसे शीर्षक, बिक्री और भुगतान - ठीक उसी क्रम में जिसमें वे घटित होते हैं। सार्वजनिक बहीखाता न केवल भ्रष्टाचार पर अंकुश लगाता है, बल्कि बहुत परिष्कृत अनुप्रयोगों को भी सक्षम बनाता है - जैसे क्रिप्टोकरेंसी और smart contracts। वे एक लोकतांत्रिक समाज में क्रांति लाने के लिए खड़े हैं संचालित होता है. हालाँकि, जैसा कि वर्तमान में लागू किया गया है, वे खराब पैमाने पर हैं और अपनी क्षमता हासिल नहीं कर सकते हैं। Algorand सार्वजनिक बहीखाता को लागू करने का वास्तव में लोकतांत्रिक और कुशल तरीका है। पहले के विपरीत कार्य के प्रमाण के आधार पर कार्यान्वयन के लिए नगण्य मात्रा में गणना की आवश्यकता होती है, और एक लेन-देन इतिहास उत्पन्न करता है जो अत्यधिक संभावना के साथ "कांटा" नहीं करेगा। Algorand (एक उपन्यास और सुपर फास्ट) संदेश-पासिंग बीजान्टिन समझौते पर आधारित है। संक्षिप्तता के लिए, हम Algorand को केवल एक धन मंच के रूप में वर्णित करेंगे।

บทคัดย่อ

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

परिचय

पैसा तेजी से आभासी होता जा रहा है। यह अनुमान लगाया गया है कि संयुक्त राज्य अमेरिका का लगभग 80% डॉलर आज केवल बही प्रविष्टियों [5] के रूप में मौजूद हैं। अन्य वित्तीय साधन भी इसका अनुसरण कर रहे हैं। एक आदर्श दुनिया में, जिसमें हम सार्वभौमिक रूप से भरोसेमंद केंद्रीय इकाई, प्रतिरक्षा पर भरोसा कर सकते हैं सभी संभावित साइबर हमलों के लिए, धन और अन्य वित्तीय लेनदेन पूरी तरह से इलेक्ट्रॉनिक हो सकते हैं। दुर्भाग्य से, हम ऐसी दुनिया में नहीं रहते हैं। तदनुसार, विकेंद्रीकृत क्रिप्टोकरेंसी, जैसे जैसे Bitcoin [29], और "smart contract" सिस्टम, जैसे Ethereum, प्रस्तावित किए गए हैं [4]। पर इन प्रणालियों का हृदय एक साझा खाता बही है जो लेन-देन के क्रम को विश्वसनीय रूप से रिकॉर्ड करता है, ∗यह दूसरे लेखक [24], एक पेपर द्वारा ArXiv पेपर का अधिक औपचारिक (और अतुल्यकालिक) संस्करण है स्वयं गोर्बुनोव और मिकाली [18] पर आधारित है। Algorand की प्रौद्योगिकियाँ निम्नलिखित का उद्देश्य हैं पेटेंट आवेदन: US62/117,138 US62/120,916 US62/142,318 US62/218,817 US62/314,601 PCT/US2016/018300 यूएस62/326,865 62/331,654 यूएस62/333,340 यूएस62/343,369 यूएस62/344,667 यूएस62/346,775 यूएस62/351,011 यूएस62/653,482 US62/352,195 US62/363,970 US62/369,447 US62/378,753 US62/383,299 US62/394,091 US62/400,361 US62/403,403 US62/410,721 US62/416,959 US62/422,883 US62/455,444 US62/458,746 US62/459,652 US62/460,928 US62/465,931भुगतान और अनुबंधों के रूप में विविध, छेड़छाड़ रहित तरीके से। पसंद की तकनीक ऐसी छेड़छाड़रोधी गारंटी blockchain है। ब्लॉकचेन जैसे अनुप्रयोगों के पीछे हैं क्रिप्टोकरेंसी [29], वित्तीय अनुप्रयोग [4], और इंटरनेट ऑफ थिंग्स [3]। कई तकनीकें blockchain-आधारित बही-खातों को प्रबंधित करने के लिए प्रस्तावित किया गया है: कार्य का प्रमाण [29], हिस्सेदारी का प्रमाण [2], व्यावहारिक बीजान्टिन दोष-सहिष्णुता [8], या कुछ संयोजन। हालाँकि, वर्तमान में, बही-खाता प्रबंधन करने में अक्षम हो सकते हैं। उदाहरण के लिए, Bitcoin का proof-of-work दृष्टिकोण ([14] की मूल अवधारणा पर आधारित) के लिए बड़ी मात्रा में गणना की आवश्यकता होती है, यह बेकार है और स्केल ख़राब [1]। इसके अलावा, यह वास्तव में बहुत कम हाथों में शक्ति केंद्रित करता है। इसलिए हम सार्वजनिक बही-खाता को लागू करने के लिए एक नई विधि सामने रखना चाहते हैं जो प्रदान करता है एक विश्वसनीय और अनुल्लंघनीय प्राधिकारी द्वारा संचालित केंद्रीकृत प्रणाली की सुविधा और दक्षता, बिना वर्तमान विकेंद्रीकृत कार्यान्वयन की अक्षमताएं और कमजोरियां। हम अपना दृष्टिकोण कहते हैं Algorand, क्योंकि हम अब तक बनाए गए बहीखाते के आधार पर चयन करने के लिए एल्गोरिथम यादृच्छिकता का उपयोग करते हैं, सत्यापनकर्ताओं का एक समूह जो वैध लेनदेन के अगले ब्लॉक के निर्माण के प्रभारी हैं। स्वाभाविक रूप से, हम यह सुनिश्चित करते हैं कि इस तरह के चयन हेरफेर से सुरक्षित और अप्रत्याशित हों अंतिम मिनट, लेकिन यह भी कि वे अंततः सार्वभौमिक रूप से स्पष्ट हैं। Algorand का दृष्टिकोण काफी लोकतांत्रिक है, इस अर्थ में कि यह न तो सैद्धांतिक रूप से और न ही वास्तव में उपयोगकर्ताओं के विभिन्न वर्ग बनाता है (Bitcoin में "खनिक" और "सामान्य उपयोगकर्ता" के रूप में)। Algorand में “सभी शक्ति सभी उपयोगकर्ताओं के समूह के पास रहती है।” Algorand की एक उल्लेखनीय संपत्ति यह है कि इसका लेनदेन इतिहास केवल बहुत छोटे से ही कांटा जा सकता है संभाव्यता (उदाहरण के लिए, ट्रिलियन में से एक, यानी, या यहां तक कि 10−18)। Algorand कुछ कानूनी समाधान भी दे सकता है और राजनीतिक चिंताएँ। Algorand दृष्टिकोण blockchain पर लागू होता है और, अधिक सामान्यतः, उत्पादन की किसी भी विधि पर लागू होता है ब्लॉकों का छेड़छाड़रोधी अनुक्रम। हमने वास्तव में एक नई विधि सामने रखी है - और का विकल्प 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 सबसे शक्तिशाली सुपर कंप्यूटर ही जुटा सकते हैं Bitcoin खिलाड़ियों से आवश्यक कुल कम्प्यूटेशनल शक्ति का मात्र 12.8% प्रतिशत। यह गणना की मात्रा बहुत बढ़ जाएगी, यदि अधिक उपयोगकर्ता सिस्टम में शामिल हो जाएं। तकनीकी समस्या 2: शक्ति का संकेन्द्रण आज अत्यधिक मात्रा के कारण गणना की आवश्यकता है, एक उपयोगकर्ता, एक साधारण डेस्कटॉप का उपयोग करके एक नया ब्लॉक उत्पन्न करने का प्रयास कर रहा है (अकेले एक को छोड़ दें)। सेल फोन), पैसे खोने की उम्मीद है। दरअसल, एक साधारण कंप्यूटर के साथ एक नए ब्लॉक की गणना करने के लिए, गणना को बिजली देने के लिए आवश्यक बिजली की अपेक्षित लागत अपेक्षित इनाम से अधिक है। केवल विशेष रूप से निर्मित कंप्यूटरों के पूल का उपयोग करना (जो "नए ब्लॉकों को माइन करने" के अलावा कुछ नहीं करते हैं), एक नए ब्लॉक उत्पन्न करके लाभ कमाने की उम्मीद कर सकते हैं। तदनुसार, आज वस्तुतः दो हैं उपयोगकर्ताओं के असंयुक्त वर्ग: सामान्य उपयोगकर्ता, जो केवल भुगतान करते हैं, और विशेष खनन पूल, वह केवल नए ब्लॉक की खोज करता है। इसलिए यह आश्चर्य की बात नहीं होनी चाहिए कि, हाल ही में, ब्लॉक के लिए कुल कंप्यूटिंग शक्ति पीढ़ी केवल पाँच पूलों के भीतर है। ऐसी स्थितियों में, यह धारणा कि अधिकांश कम्प्यूटेशनल शक्ति ईमानदार है कम विश्वसनीय हो जाता है। तकनीकी समस्या 3: अस्पष्टता Bitcoin में, blockchain आवश्यक रूप से अद्वितीय नहीं है। सचमुच इसका नवीनतम भाग अक्सर द्विभाजित होता है: blockchain हो सकता है - मान लीजिए- B1,। . . , बीके, बी' के+1, बी' k+2, के अनुसार एक उपयोगकर्ता, और B1, . . . , बीके, बी'' के+1, बी'' के+2, बी'' एक अन्य उपयोगकर्ता के अनुसार k+3। कई ब्लॉक होने के बाद ही श्रृंखला में जोड़ा गया है, क्या कोई यथोचित रूप से आश्वस्त हो सकता है कि पहले k + 3 ब्लॉक समान होंगे सभी उपयोगकर्ताओं के लिए. इस प्रकार, कोई भी अंतिम ब्लॉक में शामिल भुगतानों पर तुरंत भरोसा नहीं कर सकता है श्रृंखला. यह इंतजार करना और देखना अधिक विवेकपूर्ण है कि क्या ब्लॉक पर्याप्त गहराई तक जाता है blockchain और इस प्रकार पर्याप्त रूप से स्थिर। अलग से, कानून-प्रवर्तन और मौद्रिक-नीति संबंधी चिंताओं को भी Bitcoin.1 के बारे में उठाया गया है 1.2 Algorand, संक्षेप में सेटिंग Algorand बहुत कठिन सेटिंग में काम करता है। संक्षेप में, (ए) अनुमति रहित और अनुमति प्राप्त वातावरण। Algorand कुशलतापूर्वक और सुरक्षित रूप से भी काम करता है पूरी तरह से अनुमति रहित वातावरण में, जहां मनमाने ढंग से कई उपयोगकर्ताओं को इसमें शामिल होने की अनुमति दी जाती है सिस्टम को किसी भी समय, बिना किसी जाँच या किसी भी प्रकार की अनुमति के। बेशक, Algorand काम करता है अनुमति प्राप्त वातावरण में और भी बेहतर। 1Bitcoin भुगतान द्वारा दी गई (छद्म) गुमनामी का दुरुपयोग मनी लॉन्ड्रिंग और/या वित्तपोषण के लिए किया जा सकता है आपराधिक व्यक्तियों या आतंकवादी संगठनों का. पारंपरिक बैंकनोट या सोने की छड़ें, जो सिद्धांत रूप में उत्तम हैं गुमनामी को भी वही चुनौती पेश करनी चाहिए, लेकिन इन मुद्राओं की भौतिकता पैसे को काफी हद तक धीमा कर देती है स्थानांतरण, ताकि कानून-प्रवर्तन एजेंसियों द्वारा कुछ हद तक निगरानी की अनुमति दी जा सके। "पैसा छापने" की क्षमता किसी राष्ट्र राज्य की सबसे बुनियादी शक्तियों में से एक है। सिद्धांत रूप में, इसलिए, बड़े पैमाने पर स्वतंत्र रूप से चलने वाली मुद्रा को अपनाने से इस शक्ति में कमी आ सकती है। हालाँकि, वर्तमान में, Bitcoin होने से बहुत दूर है यह सरकारी मौद्रिक नीतियों के लिए ख़तरा है, और, इसकी स्केलेबिलिटी समस्याओं के कारण, यह कभी नहीं हो सकता है।(बी) बहुत प्रतिकूल वातावरण। Algorand एक बहुत शक्तिशाली प्रतिद्वंद्वी का सामना कर सकता है, जो कर सकता है (1) किसी भी उपयोगकर्ता को जब चाहे, तुरंत भ्रष्ट कर सकता है, बशर्ते कि, ए में अनुमति रहित वातावरण, सिस्टम में 2/3 पैसा ईमानदार उपयोगकर्ता का है। (ए में अनुमति प्राप्त वातावरण, पैसे की परवाह किए बिना, यह पर्याप्त है कि 2/3 उपयोगकर्ता ईमानदार हैं।) (2) सभी भ्रष्ट उपयोगकर्ताओं को पूरी तरह से नियंत्रित और समन्वयित करना; और (3) सभी संदेशों की डिलीवरी शेड्यूल करें, बशर्ते कि प्रत्येक संदेश एक ईमानदार उपयोगकर्ता द्वारा भेजा गया हो एक समय \(\lambda\)m के भीतर 95% ईमानदार उपयोगकर्ताओं तक पहुँच जाता है, जो पूरी तरह से m के आकार पर निर्भर करता है। मुख्य गुण हमारे शक्तिशाली प्रतिद्वंद्वी की उपस्थिति के बावजूद, Algorand में • आवश्यक गणना की मात्रा न्यूनतम है. मूलतः, इससे कोई फर्क नहीं पड़ता कि कितने उपयोगकर्ता हैं सिस्टम में मौजूद, पंद्रह सौ उपयोगकर्ताओं में से प्रत्येक को अधिकतम कुछ सेकंड का प्रदर्शन करना होगा गणना. • एक नया ब्लॉक 10 मिनट से भी कम समय में तैयार हो जाता है, और वास्तव में यह blockchain को कभी नहीं छोड़ेगा। उदाहरण के लिए, अपेक्षा में, पहले अवतार में ब्लॉक उत्पन्न करने का समय कम है Λ + 12.4\(\lambda\) से, जहां Λ एक सहकर्मी से सहकर्मी गपशप में एक ब्लॉक को प्रचारित करने के लिए आवश्यक समय है फैशन, इससे कोई फर्क नहीं पड़ता कि कोई कौन सा ब्लॉक आकार चुन सकता है, और \(\lambda\) 1,500 200Blong संदेशों को प्रसारित करने का समय है। (चूंकि वास्तव में विकेन्द्रीकृत प्रणाली में, Λ अनिवार्य रूप से एक आंतरिक विलंबता है Algorand ब्लॉक जेनरेशन में सीमित कारक नेटवर्क स्पीड है।) दूसरे अवतार में है वास्तव में प्रयोगात्मक रूप से परीक्षण किया गया (? द्वारा), यह दर्शाता है कि एक ब्लॉक 40 से कम में उत्पन्न होता है सेकंड. इसके अलावा, Algorand का blockchain केवल नगण्य संभावना (यानी, एक से कम) के साथ कांटा जा सकता है एक ट्रिलियन में), और इस प्रकार उपयोगकर्ता जितनी जल्दी हो सके एक नए ब्लॉक में निहित भुगतान पर रिले कर सकते हैं ब्लॉक प्रकट होता है. • सारी शक्ति स्वयं उपयोगकर्ताओं के पास रहती है। Algorand एक वास्तविक वितरित प्रणाली है। विशेष रूप से, कोई बहिर्जात संस्थाएं नहीं हैं (Bitcoin में "खनिक" के रूप में), जो लेनदेन को नियंत्रित कर सकें पहचाने जाते हैं. Algorand की तकनीकें। 1. एक नया और तेज़ बीजान्टिन समझौता प्रोटोकॉल। Algorand के माध्यम से एक नया ब्लॉक उत्पन्न करता है एक नया क्रिप्टोग्राफ़िक, संदेश-पासिंग, बाइनरी बीजान्टिन समझौता (बीए) प्रोटोकॉल, बीए⋆। प्रोटोकॉल BA⋆न केवल कुछ अतिरिक्त गुणों को संतुष्ट करता है (जिन पर हम जल्द ही चर्चा करेंगे), बल्कि यह बहुत तेज़ भी है। मोटे तौर पर कहा जाए तो, इसके बाइनरी-इनपुट संस्करण में 3-स्टेप लूप होता है, जिसमें मैं एक प्लेयर को सिंगल भेजता हूं अन्य सभी खिलाड़ियों को संदेश भेजें। अधिक के साथ पूर्ण और समकालिक नेटवर्क में निष्पादित 2/3 से अधिक खिलाड़ी ईमानदार हैं, संभावना > 1/3 के साथ, प्रत्येक लूप के बाद प्रोटोकॉल समाप्त होता है समझौता. (हम इस बात पर जोर देते हैं कि प्रोटोकॉल बीजान्टिन समझौते की मूल परिभाषा को संतुष्ट करता है) पीज़, शोस्ताक और लामपोर्ट [31], बिना किसी कमज़ोरी के।) Algorand हमारे विभिन्न संचार में सहमति तक पहुंचने के लिए इस बाइनरी बीए प्रोटोकॉल का लाभ उठाता है मॉडल, प्रत्येक नए ब्लॉक पर। इसके बाद सहमत ब्लॉक को एक निर्धारित संख्या के माध्यम से प्रमाणित किया जाता है उचित सत्यापनकर्ताओं के डिजिटल हस्ताक्षर, और नेटवर्क के माध्यम से प्रचारित। 2. क्रिप्टोग्राफ़िक सॉर्टिशन। हालाँकि बहुत तेज़, प्रोटोकॉल BA⋆ को आगे से फ़ायदा होगा लाखों उपयोगकर्ताओं द्वारा खेले जाने पर गति। तदनुसार, Algorand BA⋆के खिलाड़ियों को चुनता हैसभी उपयोगकर्ताओं के समूह का एक बहुत छोटा उपसमूह। एक अलग प्रकार की शक्ति की एकाग्रता से बचने के लिए समस्या, प्रत्येक नए ब्लॉक Br का निर्माण और सहमति BA⋆ के एक नए निष्पादन के माध्यम से की जाएगी, चयनित सत्यापनकर्ताओं के एक अलग सेट द्वारा, एसवी आर। सिद्धांत रूप में, ऐसे सेट का चयन करना उतना ही कठिन हो सकता है सीधे Br का चयन करना। हम इस संभावित समस्या का समाधान उस दृष्टिकोण से करते हैं जिसे हम गले लगाना कहते हैं मौरिस हर्लिही का व्यावहारिक सुझाव, क्रिप्टोग्राफ़िक सॉर्टिशन। वर्गीकरण का अभ्यास है पात्र व्यक्तियों के एक बड़े समूह में से यादृच्छिक रूप से अधिकारियों का चयन करना [6]। (सॉर्टिशन का अभ्यास किया गया था सदियों से: उदाहरण के लिए, एथेंस, फ़्लोरेंस और वेनिस के गणराज्यों द्वारा। आधुनिक न्यायिक में सिस्टम में, जूरी को चुनने के लिए अक्सर यादृच्छिक चयन का उपयोग किया जाता है। हाल ही में रैंडम सैंपलिंग भी की गई है डेविड चाउम द्वारा चुनाव की वकालत [9]।) एक विकेन्द्रीकृत प्रणाली में, निश्चित रूप से, चुनना प्रत्येक सत्यापनकर्ता सेट एसवी आर के सदस्यों को यादृच्छिक रूप से चुनने के लिए आवश्यक यादृच्छिक सिक्के समस्याग्रस्त हैं। इस प्रकार हम सभी उपयोगकर्ताओं की आबादी से प्रत्येक सत्यापनकर्ता सेट का चयन करने के लिए क्रिप्टोग्राफी का सहारा लेते हैं, एक तरह से जो स्वचालित होने की गारंटी देता है (यानी, किसी संदेश के आदान-प्रदान की आवश्यकता नहीं) और यादृच्छिक। संक्षेप में, हम पिछले ब्लॉक से स्वचालित रूप से निर्धारित करने के लिए एक क्रिप्टोग्राफ़िक फ़ंक्शन का उपयोग करते हैं Br−1, एक उपयोगकर्ता, नेता, नए ब्लॉक Br का प्रस्ताव करने का प्रभारी, और सत्यापनकर्ता सेट SV r, में नेता द्वारा प्रस्तावित ब्लॉक पर सहमति तक पहुंचने का आरोप। चूँकि दुर्भावनापूर्ण उपयोगकर्ता प्रभावित कर सकते हैं Br−1 की संरचना (उदाहरण के लिए, इसके कुछ भुगतानों को चुनकर), हम विशेष रूप से निर्माण और उपयोग करते हैं अतिरिक्त इनपुट ताकि यह साबित हो सके कि आरटी ब्लॉक के लिए लीडर और सत्यापनकर्ता सेट एसवी आर वास्तव में हैं बेतरतीब ढंग से चुना गया. 3. मात्रा (बीज) Qr. हम blockchain में अंतिम ब्लॉक Br−1 का उपयोग करते हैं स्वचालित रूप से अगले सत्यापनकर्ता सेट और नए ब्लॉक के निर्माण के प्रभारी नेता का निर्धारण करें ब्र. इस दृष्टिकोण के साथ चुनौती यह है कि, इसमें थोड़ा अलग भुगतान चुनकर पिछले दौर में, हमारा शक्तिशाली प्रतिद्वंद्वी अगले नेता पर जबरदस्त नियंत्रण हासिल कर लेता है। भले ही वह सिस्टम में केवल 1/1000 खिलाड़ियों/पैसे को नियंत्रित किया, वह यह सुनिश्चित कर सका कि सभी नेता हैं दुर्भावनापूर्ण. (अंतर्ज्ञान अनुभाग 4.1 देखें।) यह चुनौती सभी proof-of-stake दृष्टिकोणों के लिए केंद्रीय है, और, जहां तक हमारी जानकारी है, इसे अब तक संतोषजनक ढंग से हल नहीं किया जा सका है। इस चुनौती का सामना करने के लिए, हम जानबूझकर एक अलग और सावधानीपूर्वक निर्माण करते हैं और लगातार अद्यतन करते हैं परिभाषित मात्रा, Qr, जो न केवल अप्रत्याशित है, बल्कि हमारे द्वारा प्रभावशाली भी नहीं है शक्तिशाली प्रतिद्वंद्वी. हम Qr को rth बीज के रूप में संदर्भित कर सकते हैं, क्योंकि यह Qr से है जिसे Algorand चुनता है, गुप्त क्रिप्टोग्राफ़िक सॉर्टिशन के माध्यम से, सभी उपयोगकर्ता जो की पीढ़ी में एक विशेष भूमिका निभाएंगे आरटीएच ब्लॉक. 4. गुप्त क्रिप्टोग्राफ़िक सॉर्टिशन और गुप्त क्रेडेंशियल्स। सत्यापनकर्ता सेट और प्रभारी नेता को चुनने के लिए यादृच्छिक रूप से और स्पष्ट रूप से वर्तमान अंतिम ब्लॉक, Br−1 का उपयोग करें। नए ब्लॉक, बीआर का निर्माण पर्याप्त नहीं है। चूँकि Br उत्पन्न करने से पहले Br−1 ज्ञात होना चाहिए, Br−1 में निहित अंतिम गैर-प्रभावकारी मात्रा Qr−1 भी ज्ञात होनी चाहिए। तदनुसार, तो ब्लॉक ब्र की गणना करने के लिए सत्यापनकर्ता और प्रभारी नेता हैं। इस प्रकार, हमारा शक्तिशाली प्रतिद्वंद्वी इससे पहले कि वे ब्र के बारे में किसी भी चर्चा में शामिल हों, उन सभी को तुरंत भ्रष्ट कर सकते हैं, ताकि प्राप्त किया जा सके उनके द्वारा प्रमाणित ब्लॉक पर पूर्ण नियंत्रण। इस समस्या को रोकने के लिए, नेता (और वास्तव में सत्यापनकर्ता भी) गुप्त रूप से अपनी भूमिका सीखते हैं, लेकिन सीख सकते हैं एक उचित क्रेडेंशियल की गणना करें, जो हर किसी को यह साबित करने में सक्षम हो कि वास्तव में वह भूमिका है। कब एक उपयोगकर्ता को निजी तौर पर पता चलता है कि वह अगले ब्लॉक के लिए नेता है, पहले वह गुप्त रूप से अपने ब्लॉक को इकट्ठा करता है स्वयं प्रस्तावित नया ब्लॉक, और फिर अपने स्वयं के साथ मिलकर इसे प्रसारित करता है (ताकि प्रमाणित किया जा सके) साख. इस तरह, हालांकि प्रतिद्वंद्वी को तुरंत एहसास हो जाएगा कि अगला नेता कौन है ब्लॉक है, और यद्यपि वह उसे तुरंत भ्रष्ट कर सकता है, लेकिन प्रतिद्वंद्वी के लिए बहुत देर हो चुकी होगी नये ब्लॉक के चुनाव को प्रभावित करें। वास्तव में, वह अब नेता के संदेश को "वापस कॉल" नहीं कर सकताएक शक्तिशाली सरकार विकीलीक्स द्वारा वायरल रूप से फैलाए गए संदेश को वापस बोतल में बंद कर सकती है। जैसा कि हम देखेंगे, हम नेता की विशिष्टता की गारंटी नहीं दे सकते, न ही हर कोई निश्चित है कि नेता कौन है है, जिसमें स्वयं नेता भी शामिल हैं! लेकिन, Algorand में, स्पष्ट प्रगति की गारंटी दी जाएगी। 5. प्लेयर रिप्लेसमेंटेबिलिटी। एक नए ब्लॉक का प्रस्ताव करने के बाद, नेता "मर" भी सकता है (या हो सकता है)। विरोधी द्वारा भ्रष्ट), क्योंकि उसका काम पूरा हो गया है। लेकिन, एसवी आर में सत्यापनकर्ताओं के लिए चीजें कम हैं सरल. दरअसल, पर्याप्त संख्या में हस्ताक्षरों के साथ नए ब्लॉक बीआर को प्रमाणित करने का प्रभारी होने के नाते, उन्हें पहले नेता द्वारा प्रस्तावित ब्लॉक पर बीजान्टिन समझौता चलाना होगा। समस्या यह है कि, इससे कोई फर्क नहीं पड़ता कि यह कितना कुशल है, BA⋆ को कई कदमों और इसके 2/3 खिलाड़ियों की ईमानदारी की आवश्यकता होती है। यह एक समस्या है, क्योंकि, दक्षता कारणों से, BA⋆ के प्लेयर सेट में छोटा सेट SV r होता है सभी उपयोगकर्ताओं के समूह के बीच यादृच्छिक रूप से चुना गया। इस प्रकार, हमारा शक्तिशाली प्रतिद्वंद्वी, हालांकि असमर्थ है सभी उपयोगकर्ताओं में से 1/3 भ्रष्ट, निश्चित रूप से एसवी आर के सभी सदस्यों को भ्रष्ट कर सकते हैं! सौभाग्य से हम यह साबित कर देंगे कि प्रोटोकॉल BA⋆, जो पीयर-टॉपियर फैशन में संदेशों को प्रसारित करके निष्पादित होता है, प्लेयर-रिप्लेसेबल है। इस नवीन आवश्यकता का अर्थ है कि प्रोटोकॉल सही ढंग से और भले ही इसका प्रत्येक चरण पूरी तरह से नए और बेतरतीब ढंग से क्रियान्वित किया जाता है, फिर भी यह सर्वसम्मति तक प्रभावी ढंग से पहुंचता है और स्वतंत्र रूप से चयनित, खिलाड़ियों का सेट। इस प्रकार, लाखों उपयोगकर्ताओं के साथ, खिलाड़ियों का प्रत्येक छोटा समूह BA⋆के एक चरण से संबद्ध, संभवतः अगले सेट के साथ रिक्त प्रतिच्छेदन है। इसके अलावा, BA⋆ के विभिन्न चरणों के खिलाड़ियों के सेट में संभवतः पूरी तरह से अलग-अलग होंगे कार्डिनलिटीज़ इसके अलावा, प्रत्येक सेट के सदस्यों को यह नहीं पता होता है कि खिलाड़ियों का अगला सेट कौन होगा हो, और किसी भी आंतरिक स्थिति को गुप्त रूप से पारित न करें। बदली-खिलाड़ी संपत्ति वास्तव में गतिशील और बहुत शक्तिशाली को हराने के लिए महत्वपूर्ण है हम जिस प्रतिद्वंद्वी की परिकल्पना करते हैं। हमारा मानना है कि बदले जाने योग्य खिलाड़ी प्रोटोकॉल कई मामलों में महत्वपूर्ण साबित होंगे संदर्भ और अनुप्रयोग. विशेष रूप से, वे छोटे उप-प्रोटोकॉल को सुरक्षित रूप से निष्पादित करने के लिए महत्वपूर्ण होंगे एक गतिशील प्रतिद्वंद्वी के साथ खिलाड़ियों के एक बड़े ब्रह्मांड में अंतर्निहित, जो भ्रष्ट करने में भी सक्षम है कुल खिलाड़ियों का एक छोटा सा हिस्सा, छोटे खिलाड़ियों को भ्रष्ट करने में कोई कठिनाई नहीं है उप-प्रोटोकॉल. एक अतिरिक्त संपत्ति/तकनीक: आलसी ईमानदारी एक ईमानदार उपयोगकर्ता अपने निर्धारित का पालन करता है निर्देश, जिसमें ऑनलाइन होना और प्रोटोकॉल चलाना शामिल है। चूंकि, Algorand में केवल मामूली है गणना और संचार की आवश्यकता, ऑनलाइन होना और प्रोटोकॉल चलाना “में पृष्ठभूमि" कोई बड़ा बलिदान नहीं है। बेशक, ईमानदार खिलाड़ियों के बीच कुछ "अनुपस्थितियाँ" हैं कनेक्टिविटी के अचानक ख़त्म होने या रिबूट करने की आवश्यकता के कारण, स्वचालित रूप से सहन किया जाता है (क्योंकि हम ऐसे कुछ खिलाड़ियों को हमेशा अस्थायी रूप से दुर्भावनापूर्ण मान सकते हैं)। हालाँकि, आइए बताते हैं उस Algorand को आसानी से अनुकूलित किया जा सकता है ताकि एक नए मॉडल में काम किया जा सके, जिसमें ईमानदार उपयोगकर्ता हों अधिकांश समय ऑफ़लाइन. हमारे नए मॉडल को अनौपचारिक रूप से इस प्रकार पेश किया जा सकता है। आलसी ईमानदारी. मोटे तौर पर कहें तो, एक उपयोगकर्ता आलसी-लेकिन-ईमानदार है यदि (1) वह अपने सभी निर्धारित नियमों का पालन करता है निर्देश, जब उसे प्रोटोकॉल में भाग लेने के लिए कहा जाता है, और (2) उसे भाग लेने के लिए कहा जाता है प्रोटोकॉल के लिए शायद ही कभी, और एक उपयुक्त अग्रिम सूचना के साथ। ईमानदारी की ऐसी सहज धारणा के साथ, हम ईमानदार लोगों की तुलना में और भी अधिक आश्वस्त हो सकते हैं जब हमें उनकी आवश्यकता होती है, तो वे उपलब्ध होते हैं, और Algorand गारंटी देते हैं कि, जब ऐसा मामला हो, सिस्टम सुरक्षित रूप से संचालित होता है, भले ही, किसी निश्चित समय पर, भाग लेने वाले अधिकांश खिलाड़ी दुर्भावनापूर्ण हैं।1.3 निकट से संबंधित कार्य कार्य का प्रमाण दृष्टिकोण (जैसे उद्धृत [29] और [4]) हमारे लिए काफी रूढ़िवादी हैं। वैसे ही हैं संदेश-पारित करने वाले बीजान्टिन समझौते या व्यावहारिक बीजान्टिन दोष सहिष्णुता पर आधारित दृष्टिकोण (उद्धृत [8] की तरह)। वास्तव में, ये प्रोटोकॉल सभी उपयोगकर्ताओं के समूह के बीच नहीं चलाए जा सकते हैं और न ही, हमारे मॉडल में, उपयोगकर्ताओं के एक उपयुक्त छोटे समूह तक ही सीमित रहें। वास्तव में, हमारे शक्तिशाली प्रतिद्वंद्वी मेरे वास्तव में बीए प्रोटोकॉल चलाने के लिए चार्ज किए गए एक छोटे से सेट में शामिल सभी उपयोगकर्ताओं को तुरंत भ्रष्ट कर दें। हमारे दृष्टिकोण को हिस्सेदारी के प्रमाण [2] से संबंधित माना जा सकता है, इस अर्थ में कि उपयोगकर्ताओं की "शक्ति" ब्लॉक बिल्डिंग में सिस्टम में उनके पास मौजूद पैसे के समानुपाती होता है (जैसा कि कहा जाता है- के विपरीत)। जो पैसा उन्होंने "एस्क्रो" में लगाया है)। हमारे सबसे करीब का पेपर पास और शि [30] का स्लीपी कंसेंसस मॉडल है। से बचने के लिए proof-of-work दृष्टिकोण में भारी गणना की आवश्यकता होती है, उनका पेपर (और कृपया) पर निर्भर करता है क्रेडिट) Algorand की गुप्त क्रिप्टोग्राफ़िक सॉर्टिशन। इस महत्वपूर्ण पहलू को समान रूप से रखते हुए, अनेक हमारे पेपरों के बीच महत्वपूर्ण अंतर मौजूद हैं। विशेष रूप से, (1) उनकी सेटिंग की केवल अनुमति है। इसके विपरीत, Algorand भी एक अनुमति रहित प्रणाली है। (2) वे नाकामोटो-शैली प्रोटोकॉल का उपयोग करते हैं, और इस प्रकार उनके blockchain बार-बार फोर्क होते हैं। हालाँकि proof-of-work को त्यागते हुए, उनके प्रोटोकॉल में एक गुप्त रूप से चयनित नेता को लंबा करने के लिए कहा जाता है सबसे लंबे समय तक वैध (अधिक समृद्ध अर्थ में) blockchain। इस प्रकार, कांटे अपरिहार्य हैं और व्यक्ति को इसके लिए इंतजार करना होगा ब्लॉक श्रृंखला में पर्याप्त रूप से "गहरा" है। दरअसल, एक प्रतिद्वंद्वी के साथ अपने लक्ष्यों को प्राप्त करने के लिए अनुकूली भ्रष्टाचारों में सक्षम, उन्हें पॉली (एन) गहराई वाले एक ब्लॉक की आवश्यकता होती है, जहां एन का प्रतिनिधित्व करता है सिस्टम में उपयोगकर्ताओं की कुल संख्या. ध्यान दें, यह मानते हुए भी कि एक ब्लॉक का उत्पादन किया जा सकता है एक मिनट में, यदि N = 1M उपयोगकर्ता होते, तो लगभग 2M वर्षों तक प्रतीक्षा करनी पड़ती एक ब्लॉक को एन 2-डीप बनने में, और एक ब्लॉक को एन-डीप बनने में लगभग 2 साल लगते हैं। इसके विपरीत, Algorand का blockchain केवल नगण्य संभावना के साथ घूमता है, भले ही प्रतिद्वंद्वी भ्रष्ट हो उपयोगकर्ता तुरंत और अनुकूल रूप से, और इसके नए ब्लॉक पर तुरंत भरोसा किया जा सकता है। (3) वे व्यक्तिगत बीजान्टिन समझौतों को संभाल नहीं पाते हैं। एक तरह से, वे केवल गारंटी देते हैं "मूल्यों के बढ़ते अनुक्रम पर अंततः सहमति"। बल्कि उनका एक राज्य प्रतिकृति प्रोटोकॉल है बीए की तुलना में, और ब्याज के व्यक्तिगत मूल्य पर बीजान्टिन समझौते तक पहुंचने के लिए इसका उपयोग नहीं किया जा सकता है। इसके विपरीत, Algorand का उपयोग केवल एक बार ही किया जा सकता है, यदि चाहें तो लाखों उपयोगकर्ताओं को शीघ्रता से सक्षम बनाया जा सकता है ब्याज के एक विशिष्ट मूल्य पर बीजान्टिन समझौते पर पहुँचें। (4) उन्हें कमजोर सिंक्रनाइज़ घड़ियों की आवश्यकता होती है। अर्थात्, सभी उपयोगकर्ताओं की घड़ियाँ थोड़े समय के लिए निर्धारित होती हैं δ. इसके विपरीत, Algorand में, घड़ियों की केवल (अनिवार्य रूप से) समान "गति" होनी चाहिए। (5) उनका प्रोटोकॉल आलसी-लेकिन-ईमानदार उपयोगकर्ताओं या ऑनलाइन उपयोगकर्ताओं के ईमानदार बहुमत के साथ काम करता है। वे ईमानदार उपयोगकर्ताओं के मुद्दे को सामूहिक रूप से उठाने के लिए Algorand को श्रेय देते हैं, और इसके लिए प्रतिक्रिया में आलसी ईमानदारी मॉडल को सामने रखना। उनका प्रोटोकॉल न केवल आलसी में काम करता है ईमानदारी मॉडल, लेकिन उनके प्रतिकूल नींद मॉडल में भी, जहां एक प्रतिद्वंद्वी चुनता है कि कौन से उपयोगकर्ता हैं ऑनलाइन हैं और जो ऑफ़लाइन हैं, बशर्ते कि, हर समय, अधिकांश ऑनलाइन उपयोगकर्ता ईमानदार हों।2 2उनके पेपर के मूल संस्करण में वास्तव में उनके प्रतिकूल नींद वाले मॉडल में केवल सुरक्षा पर विचार किया गया था। द Algorand का मूल संस्करण, जो उनके पूर्ववर्ती है, में भी स्पष्ट रूप से यह मानते हुए परिकल्पना की गई है कि दिए गए बहुमत ऑनलाइन खिलाड़ी हमेशा ईमानदार होते हैं, लेकिन आलसी ईमानदारी मॉडल के पक्ष में इसे स्पष्ट रूप से विचार से बाहर रखा जाता है। (उदाहरण के लिए, यदि किसी समय आधे ईमानदार उपयोगकर्ता ऑफ़लाइन जाना चुनते हैं, तो अधिकांश उपयोगकर्ता ऑनलाइन दुर्भावनापूर्ण हो सकता है। इस प्रकार, ऐसा होने से रोकने के लिए, प्रतिद्वंद्वी को अपना अधिकांश बल लगाना चाहिए भ्रष्ट खिलाड़ियों को भी ऑफ़लाइन जाना होगा, जो स्पष्ट रूप से उनके अपने हित के विरुद्ध है।) ध्यान दें कि बहुमत के साथ एक प्रोटोकॉल यदि अधिकांश ऑन-लाइन उपयोगकर्ता हमेशा दुर्भावनापूर्ण होते हैं तो आलसी-लेकिन-ईमानदार खिलाड़ियों का समूह ठीक काम करता है। ऐसा इसलिए है, क्योंकि पर्याप्त संख्या में ईमानदार खिलाड़ी, यह जानते हुए कि किसी दुर्लभ समय में वे महत्वपूर्ण होंगे, चुनाव करेंगे उन क्षणों में ऑफ़लाइन नहीं जाना है, न ही उन्हें प्रतिद्वंद्वी द्वारा ऑफ़लाइन होने के लिए मजबूर किया जा सकता है, क्योंकि वह नहीं जानता कि कौन है महत्वपूर्ण ईमानदार खिलाड़ी हो सकते हैं।(6) उन्हें साधारण ईमानदार बहुमत की आवश्यकता है। इसके विपरीत, Algorand के वर्तमान संस्करण की आवश्यकता है 2/3 ईमानदार बहुमत। हमारे करीब एक और पेपर है ऑरोबोरोस: ए प्रोवेबली सिक्योर प्रूफ-ऑफ-स्टेक ब्लॉकचेन प्रोटोकॉल, कियियास, रसेल, डेविड और ओलिन्यकोव द्वारा [20]। साथ ही उनका सिस्टम हमारे बाद सामने आया। यह भी सिद्ध तरीके से काम का सबूत देने के लिए क्रिप्टोग्राफ़िक सॉर्टिशन का उपयोग करता है। हालाँकि, उनके सिस्टम, फिर से, एक नाकामोटो-शैली प्रोटोकॉल है, जिसमें कांटे अपरिहार्य और लगातार होते हैं। (हालांकि, उनके मॉडल में, ब्लॉक को स्लीपी-सर्वसम्मति मॉडल जितना गहरा होने की आवश्यकता नहीं है।) इसके अलावा, उनकी प्रणाली निम्नलिखित धारणाओं पर निर्भर करती है: स्वयं लेखकों के शब्दों में, “(1) द नेटवर्क अत्यधिक समकालिक है, (2) चयनित हितधारकों का बहुमत आवश्यकतानुसार उपलब्ध है प्रत्येक युग में भाग लेने के लिए, (3) हितधारक लंबे समय तक कार्यालय में नहीं रहते हैं, (4) भ्रष्टाचार की अनुकूलता एक छोटी देरी के अधीन है जिसे राउंड लीनियर में मापा जाता है सुरक्षा पैरामीटर।” इसके विपरीत, Algorand अत्यधिक संभावना के साथ, कांटा-मुक्त है, और इन चार धारणाओं में से किसी पर भी भरोसा नहीं करता। विशेष रूप से, Algorand में, प्रतिद्वंद्वी सक्षम है जिन उपयोगकर्ताओं को वह नियंत्रित करना चाहता है उन्हें तुरंत भ्रष्ट कर देता है।

การแนะนำ

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

प्रारंभिक

2.1 क्रिप्टोग्राफ़िक आदिम आदर्श हैशिंग. हम एक कुशल गणना योग्य क्रिप्टोग्राफ़िक hash फ़ंक्शन, H पर भरोसा करेंगे, जो कि मनमाने ढंग से लंबी स्ट्रिंग्स को निश्चित लंबाई की बाइनरी स्ट्रिंग्स में मैप करता है। हम एक लंबी परंपरा का अनुसरण करते हुए मॉडल बनाते हैं H एक यादृच्छिक oracle के रूप में, अनिवार्य रूप से एक फ़ंक्शन प्रत्येक संभावित स्ट्रिंग को यादृच्छिक रूप से मैप करता है और चुनी गई लंबाई की स्वतंत्र रूप से चयनित (और फिर तय की गई) बाइनरी स्ट्रिंग, एच(एस)। इस पेपर में, H के पास 256-बिट लंबे आउटपुट हैं। दरअसल, ऐसी लंबाई बनाने के लिए काफी कम है सिस्टम कुशल और सिस्टम को सुरक्षित बनाने के लिए पर्याप्त लंबा। उदाहरण के लिए, हम चाहते हैं कि H टकराव-लचीला हो। अर्थात्, दो अलग-अलग स्ट्रिंग x और y को इस प्रकार खोजना कठिन होना चाहिए कि H(x) = H(y)। जब H 256-बिट लंबे आउटपुट के साथ एक यादृच्छिक oracle है, तो स्ट्रिंग की ऐसी किसी भी जोड़ी को ढूंढना वास्तव में है कठिन. (यादृच्छिक रूप से प्रयास करने और जन्मदिन विरोधाभास पर भरोसा करने के लिए 2256/2 = 2128 की आवश्यकता होगी परीक्षण।) डिजिटल हस्ताक्षर. डिजिटल हस्ताक्षर उपयोगकर्ताओं को एक दूसरे को जानकारी प्रमाणित करने की अनुमति देते हैं किसी भी गुप्त कुंजी को साझा किए बिना। एक डिजिटल हस्ताक्षर योजना में तीन चरण शामिल हैं एल्गोरिदम: एक संभाव्य कुंजी जनरेटर जी, एक हस्ताक्षर एल्गोरिथ्म एस, और एक सत्यापन एल्गोरिदम वी। सुरक्षा पैरामीटर k को देखते हुए, एक पर्याप्त उच्च पूर्णांक, एक उपयोगकर्ता i एक जोड़ी बनाने के लिए G का उपयोग करता है के-बिट कुंजी (यानी, स्ट्रिंग्स): एक "सार्वजनिक" कुंजी पीकी और एक मिलान "गुप्त" साइनिंग कुंजी स्की। महत्वपूर्ण रूप से, ए सार्वजनिक कुंजी अपनी संबंधित गुप्त कुंजी के साथ "विश्वासघात" नहीं करती है। यानी पीकेआई का ज्ञान भी दिया, नहीं मेरे अलावा एक और खगोलीय समय से भी कम समय में स्की की गणना करने में सक्षम है। उपयोगकर्ता I संदेशों पर डिजिटल रूप से हस्ताक्षर करने के लिए स्की का उपयोग करता है। प्रत्येक संभावित संदेश (बाइनरी स्ट्रिंग) के लिए, मैं पहले hashes m और फिर इनपुट H(m) और स्की पर एल्गोरिदम S चलाता है ताकि k-बिट स्ट्रिंग का उत्पादन किया जा सके सिगपकी(एम) \(\triangleq\)एस(एच(एम), स्की) .3 3चूंकि एच टकराव-लचीला है, इसलिए यह व्यावहारिक रूप से असंभव है कि, एम पर हस्ताक्षर करके कोई "गलती से हस्ताक्षर" कर दे। संदेश एम'.बाइनरी स्ट्रिंग sigpki(m) को i के m के डिजिटल हस्ताक्षर (pki के सापेक्ष) के रूप में संदर्भित किया जाता है, और हो सकता है इसे अधिक सरलता से सिगी(एम) द्वारा दर्शाया जाता है, जब सार्वजनिक कुंजी पीकेआई संदर्भ से स्पष्ट होती है। पीकेआई को जानने वाला हर कोई इसका उपयोग आई द्वारा उत्पादित डिजिटल हस्ताक्षरों को सत्यापित करने के लिए कर सकता है। विशेष रूप से, पर इनपुट (ए) एक खिलाड़ी की सार्वजनिक कुंजी पीकेआई, (बी) एक संदेश एम, और (सी) एक स्ट्रिंग एस, यानी, मैं कथित हूं संदेश m के डिजिटल हस्ताक्षर, सत्यापन एल्गोरिथ्म V या तो हाँ या नहीं आउटपुट देता है। डिजिटल हस्ताक्षर योजना के लिए हमें जिन संपत्तियों की आवश्यकता है वे हैं: 1. वैध हस्ताक्षर हमेशा सत्यापित होते हैं: यदि s = sigi(m), तो V (pki, m, s) = Y ES; और 2. डिजिटल हस्ताक्षर बनाना कठिन है: स्की के ज्ञान के बिना ऐसी स्ट्रिंग ढूंढने का समय वह V (pki, m, s) = Y ES, एक संदेश के लिए m जिस पर i द्वारा कभी हस्ताक्षर नहीं किया गया है, खगोलीय रूप से लंबा है। (गोल्डवेसर, मिकाली और रिवेस्ट [17] की मजबूत सुरक्षा आवश्यकता के बाद, यह सच है भले ही कोई किसी अन्य संदेश के हस्ताक्षर प्राप्त कर सकता है।) तदनुसार, किसी अन्य को उसकी ओर से संदेशों पर हस्ताक्षर करने से रोकने के लिए, मुझे उसका एक खिलाड़ी रखना होगा हस्ताक्षर कुंजी स्की रहस्य (इसलिए शब्द "गुप्त कुंजी"), और किसी को भी संदेशों को सत्यापित करने में सक्षम बनाना वह हस्ताक्षर करता है, मुझे उसकी कुंजी पीकी (इसलिए शब्द "सार्वजनिक कुंजी") को प्रचारित करने में रुचि है। सामान्य तौर पर, एक संदेश m को उसके हस्ताक्षर sigi(m) से पुनर्प्राप्त नहीं किया जा सकता है। वस्तुतः सौदा करने के लिए डिजिटल हस्ताक्षरों के साथ जो वैचारिक रूप से सुविधाजनक "पुनर्प्राप्ति" संपत्ति (यानी, को) को संतुष्ट करते हैं हम गारंटी देते हैं कि हस्ताक्षरकर्ता और संदेश की गणना हस्ताक्षर से आसानी से की जा सकती है SIGpki(m) = (i, m, sigpki(m)) और SIGi(m) = (i, m, sigi(m)), यदि pki स्पष्ट है। अद्वितीय डिजिटल हस्ताक्षर. हम डिजिटल हस्ताक्षर योजनाओं (जी, एस, वी) को भी संतुष्ट करने पर विचार करते हैं अतिरिक्त संपत्ति के बाद. 3. विशिष्टता. ऐसे तार pk', m, s, और s' ढूँढना कठिन है s ̸= s′ और वी (पीके′, एम, एस) = वी (पीके′, एम, एस′) = 1. (ध्यान दें कि अद्वितीयता गुण उन स्ट्रिंग्स pk′ के लिए भी लागू होता है जो वैध रूप से उत्पन्न नहीं होती हैं सार्वजनिक कुंजियाँ. विशेष रूप से, हालांकि, विशिष्टता संपत्ति का तात्पर्य यह है कि, यदि किसी ने इसका उपयोग किया है एक मिलान गुप्त कुंजी एसके के साथ एक सार्वजनिक कुंजी पीके की गणना करने के लिए निर्दिष्ट कुंजी जेनरेटर जी, और इस प्रकार एसके को पता था, उसके लिए दो अलग-अलग डिजिटल ढूंढना भी अनिवार्य रूप से असंभव होगा पीके के सापेक्ष एक ही संदेश के हस्ताक्षर।) टिप्पणियाँ • अद्वितीय हस्ताक्षरों से लेकर सत्यापन योग्य यादृच्छिक कार्यों तक। एक डिजिटल से संबंधित विशिष्टता गुण के साथ हस्ताक्षर योजना, मैपिंग m \(\to\) H(sigi(m)) से संबद्ध है प्रत्येक संभावित स्ट्रिंग एम, एक अद्वितीय, यादृच्छिक रूप से चयनित, 256-बिट स्ट्रिंग, और इसकी शुद्धता मैपिंग को सिग्नेचर sigi(m) देकर सिद्ध किया जा सकता है। यानी आदर्श hashing और डिजिटल हस्ताक्षर योजना अनिवार्य रूप से विशिष्टता संपत्ति को संतुष्ट करती है एक सत्यापन योग्य यादृच्छिक फ़ंक्शन का प्रारंभिक कार्यान्वयन प्रदान करें, जैसा कि प्रस्तुत किया गया है और इसके द्वारा मिकाली, राबिन, और वधान [27]। (उनका मूल कार्यान्वयन आवश्यक रूप से अधिक जटिल था, चूँकि वे आदर्श hashing पर भरोसा नहीं करते थे।)• डिजिटल हस्ताक्षर के लिए तीन अलग-अलग आवश्यकताएँ। Algorand में, एक उपयोगकर्ता i डिजिटल पर निर्भर है के लिए हस्ताक्षर (1) अपने स्वयं के भुगतानों को प्रमाणित करना। इस एप्लिकेशन में, कुंजियाँ "दीर्घकालिक" हो सकती हैं (अर्थात, उपयोग की जाती हैं)। लंबी अवधि में कई संदेशों पर हस्ताक्षर करें) और एक सामान्य हस्ताक्षर योजना से आते हैं। (2) यह साबित करने वाले क्रेडेंशियल उत्पन्न करना कि मैं राउंड आर के कुछ चरणों पर कार्य करने का हकदार हूं। यहाँ, कुंजियाँ दीर्घकालिक हो सकती हैं, लेकिन विशिष्टता संपत्ति को संतुष्ट करने वाली योजना से आनी चाहिए। (3) प्रत्येक चरण में मेरे द्वारा भेजे गए संदेश को प्रमाणित करना जिसमें वह कार्य करता है। यहाँ, चाबियाँ होनी चाहिए अल्पकालिक (अर्थात, उनके पहले उपयोग के बाद नष्ट हो गया), लेकिन एक साधारण हस्ताक्षर योजना से आ सकता है। • एक छोटी लागत वाला सरलीकरण। सरलता के लिए, हम कल्पना करते हैं कि प्रत्येक उपयोगकर्ता के पास एक ही दीर्घकालिक कुंजी हो। तदनुसार, ऐसी कुंजी विशिष्टता के साथ एक हस्ताक्षर योजना से आनी चाहिए संपत्ति. ऐसी सरलता की कम कम्प्यूटेशनल लागत होती है। आमतौर पर, वास्तव में, अद्वितीय डिजिटल सामान्य हस्ताक्षरों की तुलना में हस्ताक्षर बनाना और सत्यापित करना थोड़ा अधिक महंगा है। 2.2 आदर्शीकृत सार्वजनिक बहीखाता Algorand एक आदर्श सार्वजनिक बहीखाता के आधार पर निम्नलिखित भुगतान प्रणाली की नकल करने का प्रयास करता है। 1. प्रारंभिक स्थिति. पैसा व्यक्तिगत सार्वजनिक कुंजी (निजी रूप से उत्पन्न और) से जुड़ा हुआ है उपयोगकर्ताओं के स्वामित्व में)। देना pk1, . . . , pkj प्रारंभिक सार्वजनिक कुंजी और a1, हो। . . , ए जे उनके संबंधित प्रारंभिक मात्रा में धन इकाइयाँ, तो प्रारंभिक स्थिति है S0 = (pk1, a1), . . . , (पीकेजे, एजे) , जिसे सिस्टम में सामान्य ज्ञान माना जाता है। 2. भुगतान. मान लीजिए pk एक सार्वजनिक कुंजी है जिसमें वर्तमान में \(\geq\)0 धन इकाइयाँ हैं, pk' एक अन्य सार्वजनिक कुंजी है कुंजी, और a′ एक गैर-ऋणात्मक संख्या, a से बड़ी नहीं। फिर, एक (वैध) भुगतान \(\wp\) एक डिजिटल है हस्ताक्षर, पीके के सापेक्ष, पीके से पीके तक 'मौद्रिक इकाइयों' के हस्तांतरण को एक साथ निर्दिष्ट करना कुछ अतिरिक्त जानकारी के साथ. प्रतीकों में, \(\wp\)= SIGpk(pk, pk′, a′, I, H(I)), जहां मैं किसी भी अतिरिक्त जानकारी का प्रतिनिधित्व करता हूं जो उपयोगी मानी जाती है लेकिन संवेदनशील नहीं है (उदाहरण के लिए, समय)। जानकारी और भुगतान पहचानकर्ता), और मैं संवेदनशील समझी जाने वाली कोई भी अतिरिक्त जानकारी (जैसे, भुगतान का कारण, संभवतः पीके और पीके' के मालिकों की पहचान, इत्यादि)। हम पीके (या उसके मालिक) को भुगतानकर्ता के रूप में, प्रत्येक पीके' (या उसके मालिक) को भुगतानकर्ता के रूप में, और ए' को संदर्भित करते हैं। भुगतान की राशि \(\wp\). भुगतान के माध्यम से मुफ़्त में शामिल होना। ध्यान दें कि उपयोगकर्ता जब चाहें तब सिस्टम से जुड़ सकते हैं अपने स्वयं के सार्वजनिक/गुप्त कुंजी जोड़े तैयार करना। तदनुसार, सार्वजनिक कुंजी pk′ जो दिखाई देती है उपरोक्त भुगतान एक नव निर्मित सार्वजनिक कुंजी हो सकती है जिसके पास कभी भी कोई पैसा "स्वामित्व" नहीं था पहले. 3. जादुई बहीखाता। आदर्शीकृत प्रणाली में, सभी भुगतान वैध होते हैं और छेड़छाड़-रोधी रूप में दिखाई देते हैं सभी के देखने के लिए भुगतान के सेटों की सूची "आकाश पर पोस्ट की गई": एल = वेतन 1, वेतन 2,। . . ,प्रत्येक ब्लॉक PAY r+1 में ब्लॉक की उपस्थिति के बाद से किए गए सभी भुगतानों का सेट शामिल होता है भुगतान आर. आदर्श प्रणाली में, एक निश्चित (या सीमित) समय के बाद एक नया ब्लॉक प्रकट होता है। बहस। • अधिक सामान्य भुगतान और अव्ययित लेनदेन आउटपुट। अधिक सामान्यतः, यदि कोई सार्वजनिक कुंजी हो pk के पास एक राशि a है, तो एक वैध भुगतान \(\wp\)of pk राशि a' को स्थानांतरित कर सकता है 1, ए' 2, . . ., क्रमशः कुंजियों के लिए pk' 1, पीके' 2, . . ., जब तक पी जे ए' जे \(\leq\)ए. Bitcoin और इसी तरह की प्रणालियों में, सार्वजनिक कुंजी पीके के स्वामित्व वाले पैसे को अलग-अलग भागों में विभाजित किया जाता है रकम, और पीके द्वारा किए गए भुगतान को ऐसी अलग की गई राशि को पूरी तरह से स्थानांतरित करना होगा। यदि pk किसी अन्य कुंजी में a का केवल एक अंश a′ < a स्थानांतरित करना चाहता है, तो उसे भी स्थानांतरित करना होगा शेष, अव्ययित लेनदेन आउटपुट, किसी अन्य कुंजी के लिए, संभवतः पीके ही। Algorand अलग-अलग मात्रा वाली कुंजियों के साथ भी काम करता है। हालाँकि, पर ध्यान केंद्रित करने के लिए Algorand के नवीन पहलू, हमारे भुगतान के सरल रूपों पर टिके रहना अवधारणात्मक रूप से सरल है और कुंजियाँ जिनके साथ एक ही राशि जुड़ी हुई है। • वर्तमान स्थिति. आदर्शीकृत योजना सीधे तौर पर वर्तमान के बारे में जानकारी प्रदान नहीं करती है सिस्टम की स्थिति (अर्थात, प्रत्येक सार्वजनिक कुंजी में कितनी धन इकाइयाँ हैं)। यह जानकारी मैजिक लेजर से अनुमान लगाया जा सकता है। आदर्श प्रणाली में, एक सक्रिय उपयोगकर्ता नवीनतम स्थिति की जानकारी लगातार संग्रहीत और अद्यतन करता है, या अन्यथा उसे इसका पुनर्निर्माण करना होगा, या तो खरोंच से, या पिछली बार से इसकी गणना की. (इस पेपर के अगले संस्करण में, हम Algorand को बढ़ाएंगे ताकि इसे सक्षम किया जा सके) उपयोगकर्ता वर्तमान स्थिति को कुशल तरीके से पुनर्निर्मित करें।) • सुरक्षा और "गोपनीयता"। डिजिटल हस्ताक्षर यह गारंटी देते हैं कि कोई भी भुगतान में फर्जीवाड़ा नहीं कर सकता अन्य उपयोगकर्ता. भुगतान \(\wp\) में, सार्वजनिक कुंजी और राशि छिपी नहीं होती, बल्कि संवेदनशील होती है जानकारी मैं है. वास्तव में, केवल H(I) \(\wp\) में दिखाई देता है, और चूँकि H एक आदर्श hash फ़ंक्शन है, H(I) एक यादृच्छिक 256-बिट मान है, और इस प्रकार यह पता लगाने का कोई तरीका नहीं है कि मैं किससे बेहतर था बस इसका अनुमान लगा रहा हूँ। फिर भी, यह साबित करने के लिए कि मैं क्या था (उदाहरण के लिए, भुगतान का कारण साबित करने के लिए)। भुगतानकर्ता केवल I प्रकट कर सकता है। प्रकट I की सत्यता को H(I) की गणना करके सत्यापित किया जा सकता है और परिणामी मूल्य की तुलना \(\wp\) के अंतिम आइटम से करें। वास्तव में, चूँकि H टकराव प्रतिरोधी है, दूसरा मान I′ ढूँढना कठिन है जैसे कि H(I) = H(I′)। 2.3 बुनियादी धारणाएँ और संकेतन कुंजियाँ, उपयोगकर्ता और स्वामी जब तक अन्यथा निर्दिष्ट न किया जाए, प्रत्येक सार्वजनिक कुंजी (संक्षिप्त रूप में "कुंजी") अद्वितीय गुण वाली डिजिटल हस्ताक्षर योजना के लिए दीर्घकालिक और सापेक्ष होती है। मैं एक सार्वजनिक कुंजी से जुड़ता हूं सिस्टम जब सिस्टम में पहले से मौजूद एक अन्य सार्वजनिक कुंजी j, i को भुगतान करता है। रंग के लिए, हम कुंजियों का मानवीकरण करते हैं। हम एक कुंजी i को "वह" के रूप में संदर्भित करते हैं, कहते हैं कि मैं ईमानदार हूं, कि मैं भेजता हूं और संदेश आदि प्राप्त करता है। उपयोगकर्ता कुंजी का पर्याय है। जब हम किसी कुंजी को अलग करना चाहते हैं वह व्यक्ति जिसके पास यह है, हम क्रमशः "डिजिटल कुंजी" और "मालिक" शब्द का उपयोग करते हैं। अनुमति रहित और अनुमति प्राप्त प्रणालियाँ। यदि कोई डिजिटल कुंजी मुफ़्त है तो सिस्टम अनुमति रहित है किसी भी समय शामिल होने के लिए और एक मालिक के पास कई डिजिटल कुंजियाँ हो सकती हैं; और इसकी अनुमति है, अन्यथा।अनोखा प्रतिनिधित्व Algorand में प्रत्येक ऑब्जेक्ट का एक अद्वितीय प्रतिनिधित्व होता है। विशेष रूप से, प्रत्येक सेट {(x, y, z,...) : x \(\in\)X, y \(\in\)Y, z \(\in\)Z, . . .} को पूर्व-निर्दिष्ट तरीके से आदेश दिया गया है: उदाहरण के लिए, सबसे पहले शब्दकोष की दृष्टि से x में, फिर y में, आदि। समान गति वाली घड़ियाँ कोई वैश्विक घड़ी नहीं है: बल्कि, प्रत्येक उपयोगकर्ता की अपनी घड़ी होती है। उपयोगकर्ता घड़ियाँ किसी भी तरह से सिंक्रनाइज़ करने की आवश्यकता नहीं है. हालाँकि, हम मानते हैं कि उन सभी की गति समान है। उदाहरण के लिए, जब किसी उपयोगकर्ता की घड़ी के अनुसार दोपहर के 12 बजे हैं, तो उसके अनुसार दोपहर के 2:30 हो सकते हैं दूसरे उपयोगकर्ता j की घड़ी, लेकिन जब i की घड़ी के अनुसार 12:01 होगा, तो उसके अनुसार 2:31 होगा जे की घड़ी के लिए. अर्थात्, "प्रत्येक उपयोगकर्ता के लिए एक मिनट समान (पर्याप्त रूप से, अनिवार्य रूप से समान) है"। दौर Algorand को तार्किक इकाइयों, r = 0, 1, में व्यवस्थित किया गया है। . ., जिसे राउंड कहा जाता है। हम राउंड को इंगित करने के लिए लगातार सुपरस्क्रिप्ट का उपयोग करते हैं। यह इंगित करने के लिए कि एक गैर-संख्यात्मक मात्रा Q (उदाहरण के लिए, एक स्ट्रिंग, एक सार्वजनिक कुंजी, एक सेट, एक डिजिटल हस्ताक्षर, आदि) एक राउंड आर को संदर्भित करता है, हम बस क्यूआर लिखते हैं। केवल तभी जब Q एक वास्तविक संख्या हो (एक संख्या के रूप में व्याख्या की जाने वाली बाइनरी स्ट्रिंग के विपरीत), ऐसा करें हम Q(r) लिखते हैं, ताकि प्रतीक r की व्याख्या Q के प्रतिपादक के रूप में न की जा सके। (ए की शुरुआत) राउंड आर > 0 पर, सभी सार्वजनिक कुंजियों का सेट पीकेआर है, और सिस्टम स्थिति है श्री = एन मैं, ए(आर) मैं , . . .  : मैं पीकेआरओ , जहां ए(आर) मैं सार्वजनिक कुंजी के लिए उपलब्ध धनराशि है I ध्यान दें कि पीकेआर से कटौती योग्य है सीनियर, और वह सीनियर प्रत्येक सार्वजनिक कुंजी के लिए अन्य घटकों को भी निर्दिष्ट कर सकता है। राउंड 0 के लिए, PK0 प्रारंभिक सार्वजनिक कुंजियों का सेट है, और S0 प्रारंभिक स्थिति है। दोनों PK0 और S0 को सिस्टम में सामान्य ज्ञान माना जाता है। सरलता के लिए, राउंड आर की शुरुआत में, इसलिए PK1 हैं, . . . , पीकेआर और एस1, . . . , सीनियर एक राउंड आर में, सिस्टम स्थिति सीनियर से सीनियर+1 में परिवर्तित हो जाती है: प्रतीकात्मक रूप से, राउंड आर: सीनियर −→एसआर+1। भुगतान Algorand में, उपयोगकर्ता लगातार भुगतान करते हैं (और उन्हें रास्ते में प्रसारित करते हैं) उपधारा 2.7 में वर्णित है)। किसी उपयोगकर्ता के भुगतान \(\wp\) i \(\in\)PKr का प्रारूप और शब्दार्थ समान है जैसा कि आदर्श प्रणाली में होता है। अर्थात्, \(\wp\)= SIGi(i, i′, a, I, H(I)) . भुगतान \(\wp\) राउंड आर पर व्यक्तिगत रूप से मान्य है (संक्षेप में, राउंड-आर भुगतान है) यदि (1) इसकी राशि a, a(r) से कम या उसके बराबर है i, और (2) यह किसी भी आधिकारिक भुगतान PAY r' for r' < r में प्रकट नहीं होता है। (जैसा कि नीचे बताया गया है, दूसरी शर्त का मतलब है कि \(\wp\)पहले से ही प्रभावी नहीं हुआ है। I के राउंड-आर भुगतान का एक सेट सामूहिक रूप से मान्य है यदि उनकी राशियों का योग अधिकतम a(r) है मैं . भुगतान सेट राउंड-आर पेसेट पी, राउंड-आर भुगतानों का एक सेट है, जैसे कि प्रत्येक उपयोगकर्ता के लिए, भुगतान पी में आई (संभवतः कोई नहीं) सामूहिक रूप से मान्य हैं। सभी राउंड-आर पेसेट का सेट PAY(r) है। एक राउंड-आर यदि P का कोई भी सुपरसेट राउंड-आर पेसेट नहीं है, तो पेसेट P अधिकतम है। हम वास्तव में सुझाव देते हैं कि भुगतान \(\wp\) में एक राउंड \(\rho\) भी निर्दिष्ट होता है, \(\wp\)= SIGi(\(\rho\), i, i′, a, I, H(I)) , और कुछ निश्चित गैर-नकारात्मक पूर्णांक k.4 के लिए [\(\rho\), \(\rho\) + k] के बाहर किसी भी दौर में मान्य नहीं हो सकता 4इससे यह जाँचना सरल हो जाता है कि क्या \(\wp\)"प्रभावी" हो गया है (अर्थात्, यह यह निर्धारित करना सरल कर देता है कि क्या कुछ भुगतान PAY r में \(\wp\) शामिल है। जब k = 0, यदि \(\wp\)= SIGi(r, i, i′, a, I, H(I)) , और \(\wp\)/\(\in\)PAY r, तो मुझे \(\wp\) पुनः सबमिट करना होगा।आधिकारिक भुगतान प्रत्येक राउंड आर के लिए, Algorand सार्वजनिक रूप से चयन करता है (बाद में वर्णित तरीके से) एक एकल (संभवतः खाली) पेसेट, PAY r, राउंड का आधिकारिक पेसेट। (अनिवार्य रूप से, PAY r दर्शाता है राउंड-आर भुगतान जो "वास्तव में" हुआ है।) जैसा कि आदर्श सिस्टम (और Bitcoin) में होता है, (1) नए उपयोगकर्ता j के लिए सिस्टम में प्रवेश करने का एकमात्र तरीका किसी दिए गए राउंड आर के आधिकारिक भुगतान PAY r से संबंधित भुगतान का प्राप्तकर्ता होना चाहिए; और (2) PAY r वर्तमान राउंड, सीनियर से अगले राउंड, सीनियर+1 की स्थिति निर्धारित करता है। प्रतीकात्मक रूप से, भुगतान r : Sr −→Sr+1. विशेष रूप से, 1. राउंड आर + 1, पीकेआर+1 की सार्वजनिक कुंजी के सेट में पीकेआर का मिलन और सभी का सेट शामिल है भुगतानकर्ता कुंजियाँ जो पहली बार PAY r के भुगतान में दिखाई देती हैं; और 2. धन की राशि a(r+1) मैं राउंड आर + 1 में जो उपयोगकर्ता मेरे पास है, वह एआई(आर) का योग है - यानी, पिछले दौर में मेरे पास मौजूद धनराशि (0 यदि मैं ̸\(\in\)PKr) - और राशियों का योग PAY r के भुगतान के अनुसार मुझे भुगतान किया गया। संक्षेप में, आदर्श प्रणाली की तरह, प्रत्येक स्थिति Sr+1 पिछले भुगतान इतिहास से घटाई जा सकती है: भुगतान 0, . . . , भुगतान आर. 2.4 ब्लॉक और सिद्ध ब्लॉक Algorand0 में, ब्लॉक Br एक राउंड r विशिष्टताओं के अनुरूप है: r स्वयं; के भुगतान का सेट राउंड आर, पे आर; एक मात्रा Qr, जिसे समझाया जाना है, और पिछले ब्लॉक का hash, H(Br−1)। इस प्रकार, कुछ निश्चित ब्लॉक B0 से शुरू करके, हमारे पास एक पारंपरिक blockchain है: बी1 = (1, भुगतान 1, क्यू0, एच(बी0)), बी2 = (2, भुगतान 2, क्यू1, एच(बी1)), बी3 = (3, वेतन 3, क्यू2, एच(बी2)), . . . Algorand में, किसी ब्लॉक की प्रामाणिकता वास्तव में जानकारी के एक अलग टुकड़े द्वारा प्रमाणित की जाती है, एक "ब्लॉक सर्टिफिकेट" CERT r, जो Br को एक सिद्ध ब्लॉक, Br में बदल देता है। जादुई बहीखाता, इसलिए, सिद्ध ब्लॉकों के अनुक्रम द्वारा कार्यान्वित किया जाता है, बी1, बी2, . . . चर्चा जैसा कि हम देखेंगे, CERT r में H(Br) के लिए डिजिटल हस्ताक्षरों का एक सेट शामिल है एसवी आर के अधिकांश सदस्य, एक प्रमाण के साथ कि उनमें से प्रत्येक सदस्य वास्तव में संबंधित है एसवी आर को. बेशक, हम प्रमाणपत्र CERT r को ब्लॉक में ही शामिल कर सकते हैं, लेकिन इसे खोजें इसे अलग रखने के लिए वैचारिक रूप से अधिक स्वच्छ।) Bitcoin में प्रत्येक ब्लॉक को एक विशेष संपत्ति को संतुष्ट करना होगा, अर्थात, "इसमें एक समाधान होना चाहिए" क्रिप्टो पहेली", जो ब्लॉक पीढ़ी को कम्प्यूटेशनल रूप से गहन बनाती है और फोर्क्स दोनों को अपरिहार्य बनाती है और दुर्लभ नहीं. इसके विपरीत, Algorand के blockchain के दो मुख्य लाभ हैं: यह किसके साथ उत्पन्न होता है न्यूनतम गणना, और यह अत्यधिक उच्च संभावना के साथ कांटा नहीं करेगा। प्रत्येक ब्लॉक Bi है जैसे ही यह blockchain में प्रवेश करता है, सुरक्षित रूप से समाप्त हो जाता है।2.5 स्वीकार्य विफलता की संभावना Algorand की सुरक्षा का विश्लेषण करने के लिए हम संभाव्यता, F निर्दिष्ट करते हैं, जिसके साथ हम तैयार हैं स्वीकार करें कि कुछ गलत हो गया है (उदाहरण के लिए, एक सत्यापनकर्ता सेट एसवी आर के पास ईमानदार बहुमत नहीं है)। जैसा कि क्रिप्टोग्राफ़िक hash फ़ंक्शन H की आउटपुट लंबाई के मामले में, F भी एक पैरामीटर है। लेकिन, उस मामले में, हमें F को एक ठोस मान पर सेट करना उपयोगी लगता है, ताकि अधिक सहज ज्ञान प्राप्त किया जा सके इस तथ्य को समझें कि Algorand में, एक साथ पर्याप्त सुरक्षा का आनंद लेना वास्तव में संभव है और पर्याप्त दक्षता. इस बात पर जोर देने के लिए कि एफ वह पैरामीटर है जिसे पहले इच्छानुसार सेट किया जा सकता है और दूसरा अवतार हम क्रमशः निर्धारित करते हैं एफ = 10−12 और एफ = 10−18 . चर्चा ध्यान दें कि 10−12 वास्तव में एक ट्रिलियन में से एक से भी कम है, और हमारा मानना है कि ऐसा है हमारे आवेदन में एफ का विकल्प पर्याप्त है। आइए हम इस बात पर ज़ोर दें कि 10−12 प्रायिकता नहीं है जिससे विरोधी किसी ईमानदार उपयोगकर्ता के भुगतान में जालसाजी कर सकता है। सभी भुगतान डिजिटल रूप से होते हैं हस्ताक्षरित, और इस प्रकार, यदि उचित डिजिटल हस्ताक्षर का उपयोग किया जाता है, तो भुगतान में जालसाजी की संभावना है 10−12 से बहुत कम, और वास्तव में, अनिवार्य रूप से 0 है। वह बुरी घटना जिसे हम सहन करने को तैयार हैं प्रायिकता F के साथ यह है कि Algorand के blockchain कांटे हैं। ध्यान दें कि, एफ और की हमारी सेटिंग के साथ एक मिनट लंबे राउंड में, Algorand के blockchain में शायद ही कभी कांटा आने की उम्मीद होती है (लगभग) 1.9 मिलियन वर्षों में एक बार। इसके विपरीत, Bitcoin में, कांटा अक्सर होता है। अधिक मांग वाला व्यक्ति F को कम मान पर सेट कर सकता है। इस प्रयोजन के लिए, हमारे दूसरे अवतार में हम F को 10−18 पर सेट करने पर विचार करते हैं। ध्यान दें, यह मानते हुए कि हर सेकंड एक ब्लॉक उत्पन्न होता है, 1018 ब्रह्मांड द्वारा अब तक लिए गए सेकंडों की अनुमानित संख्या है: बिग बैंग से लेकर वर्तमान तक समय. इस प्रकार, F = 10−18 के साथ, यदि एक ब्लॉक एक सेकंड में उत्पन्न होता है, तो किसी को इसकी आयु की अपेक्षा करनी चाहिए एक कांटा देखने के लिए ब्रह्मांड. 2.6 प्रतिकूल मॉडल Algorand को बहुत प्रतिकूल मॉडल में सुरक्षित रहने के लिए डिज़ाइन किया गया है। आइये समझाते हैं. ईमानदार और दुर्भावनापूर्ण उपयोगकर्ता एक उपयोगकर्ता ईमानदार है यदि वह अपने सभी प्रोटोकॉल निर्देशों का पालन करता है, और संदेश भेजने और प्राप्त करने में पूरी तरह सक्षम है। एक उपयोगकर्ता दुर्भावनापूर्ण है (अर्थात, बीजान्टिन, में वितरित कंप्यूटिंग की भाषा में) यदि वह अपने निर्धारित निर्देशों से मनमाने ढंग से विचलन कर सकता है। विरोधी एडवर्सरी एक कुशल (तकनीकी रूप से बहुपद-समय) एल्गोरिदम है, जो रंग के लिए विशिष्ट है, जो किसी भी उपयोगकर्ता को जब चाहे, किसी भी समय दुर्भावनापूर्ण बना सकता है (विषय) केवल उपयोगकर्ताओं की संख्या की ऊपरी सीमा तक ही वह भ्रष्ट हो सकता है)। विरोधी सभी दुर्भावनापूर्ण उपयोगकर्ताओं को पूरी तरह से नियंत्रित और समन्वयित करता है। वह सभी कार्य करता है उनकी ओर से, जिसमें उनके सभी संदेश प्राप्त करना और भेजना शामिल है, और उन्हें इससे भटकने दे सकते हैं मनमाने तरीके से उनके निर्धारित निर्देश। या वह बस एक दूषित उपयोगकर्ता भेजने को अलग कर सकता है और संदेश प्राप्त कर रहे हैं। आइए स्पष्ट करें कि कोई भी अन्य व्यक्ति स्वचालित रूप से यह नहीं जान पाता कि i उपयोगकर्ता दुर्भावनापूर्ण है, हालाँकि विरोधी द्वारा उसके द्वारा किए गए कार्यों से मेरी दुर्भावना प्रकट हो सकती है। हालाँकि, यह शक्तिशाली प्रतिद्वंद्वी, • इसमें असीमित कम्प्यूटेशनल शक्ति नहीं है और यह डिजिटल को सफलतापूर्वक नहीं बना सकता है नगण्य संभावना को छोड़कर, एक ईमानदार उपयोगकर्ता के हस्ताक्षर; और• ईमानदार उपयोगकर्ताओं के बीच संदेशों के आदान-प्रदान में किसी भी तरह से हस्तक्षेप नहीं किया जा सकता। इसके अलावा, ईमानदार उपयोगकर्ताओं पर हमला करने की उसकी क्षमता निम्नलिखित धारणाओं में से एक से बंधी है। ईमानदारी अधिकांश धन हम धन के ईमानदार बहुमत (एचएमएम) की निरंतरता पर विचार करते हैं धारणाएँ: अर्थात्, प्रत्येक गैर-नकारात्मक पूर्णांक k और वास्तविक h > 1/2 के लिए, एचएचएमके > एच: प्रत्येक दौर में ईमानदार उपयोगकर्ताओं के पास सभी धन के एच से अधिक हिस्सा होता है राउंड r −k पर सिस्टम। बहस। यह मानते हुए कि सभी दुर्भावनापूर्ण उपयोगकर्ता अपने कार्यों को पूरी तरह से समन्वयित करते हैं (जैसे कि नियंत्रित हों)। एक इकाई द्वारा, विरोधी) एक निराशावादी परिकल्पना है। आपस में उत्तम समन्वय भी कई व्यक्तियों को हासिल करना मुश्किल है। शायद समन्वय केवल अलग-अलग समूहों के भीतर ही होता है दुर्भावनापूर्ण खिलाड़ियों का. लेकिन, चूँकि दुर्भावनापूर्ण उपयोगकर्ताओं के समन्वय के स्तर के बारे में कोई निश्चित नहीं हो सकता आनंद ले सकते हैं, खेद जताने से बेहतर होगा कि हम सुरक्षित रहें। यह मानते हुए कि विरोधी गुप्त रूप से, गतिशील रूप से और तुरंत उपयोगकर्ताओं को भ्रष्ट कर सकता है निराशावादी. आख़िरकार, वास्तविक रूप से, उपयोगकर्ता के संचालन पर पूर्ण नियंत्रण लेने में कुछ समय लगना चाहिए। उदाहरण के लिए, धारणा HMMk > h का तात्पर्य यह है कि, यदि एक राउंड (औसतन) लागू किया जाता है एक मिनट में, किसी दिए गए दौर में अधिकांश पैसा ईमानदार हाथों में रहेगा कम से कम दो घंटे, यदि k = 120, और कम से कम एक सप्ताह, यदि k = 10,000। ध्यान दें कि एचएमएम धारणाएं और कंप्यूटिंग शक्ति का पिछला ईमानदार बहुमत धारणाएँ इस अर्थ में संबंधित हैं कि, चूँकि कंप्यूटिंग शक्ति पैसे से खरीदी जा सकती है, यदि दुर्भावनापूर्ण उपयोगकर्ताओं के पास अधिकांश धन है, तो वे अधिकांश कंप्यूटिंग शक्ति प्राप्त कर सकते हैं। 2.7 संचार मॉडल हम संदेश प्रसार की परिकल्पना करते हैं - यानी, "पीयर-टू-पीयर गपशप"5- इसका एकमात्र साधन है संचार. अस्थायी धारणा: संपूर्ण नेटवर्क में संदेशों की समय पर डिलीवरी। के लिए इस पेपर के अधिकांश भाग में हम मानते हैं कि प्रत्येक प्रचारित संदेश लगभग सभी ईमानदार उपयोगकर्ताओं तक पहुंचता है समयानुकूल ढंग से. हम धारा 10 में इस धारणा को हटा देंगे, जहां हम नेटवर्क से निपटते हैं विभाजन, या तो स्वाभाविक रूप से घटित होते हैं या प्रतिकूल रूप से प्रेरित होते हैं। (जैसा कि हम देखेंगे, हम केवल मान लेते हैं नेटवर्क के प्रत्येक जुड़े घटक के भीतर संदेशों की समय पर डिलीवरी।) प्रचारित संदेशों (संपूर्ण नेटवर्क में) की समय पर डिलीवरी को पकड़ने का एक ठोस तरीका है निम्नलिखित: सभी पहुंच क्षमता \(\rho\) > 95% और संदेश आकार \(\mu\) \(\in\)Z+ के लिए, \(\lambda\) \(\rho\),\(\mu\) मौजूद है जैसे कि, यदि कोई ईमानदार उपयोगकर्ता समय t पर \(\mu\)-बाइट संदेश m प्रसारित करता है, तब m, समय t + \(\lambda\) \(\rho\),\(\mu\) तक, ईमानदार उपयोगकर्ताओं के कम से कम एक अंश \(\rho\) तक पहुँच जाता है। 5अनिवार्य रूप से, जैसा कि Bitcoin में है, जब कोई उपयोगकर्ता एक संदेश m प्रसारित करता है, तो प्रत्येक सक्रिय उपयोगकर्ता को पहली बार m प्राप्त होता है, बेतरतीब ढंग से और स्वतंत्र रूप से सक्रिय उपयोगकर्ताओं की एक छोटी संख्या, उसके "पड़ोसियों" का चयन करता है, जिन्हें वह आगे भेजता है, संभवतः जब तक वह उनसे पावती प्राप्त नहीं कर लेता। जब कोई उपयोगकर्ता प्राप्त नहीं करता तो m का प्रसार समाप्त हो जाता है मैं पहली बार.हालाँकि, उपरोक्त संपत्ति हमारे Algorand प्रोटोकॉल का समर्थन नहीं कर सकती है, बिना स्पष्ट रूप से और अलग से किसी अन्य उपयोगकर्ता/डिपॉजिटरी/आदि द्वारा नवीनतम blockchain प्राप्त करने के लिए एक तंत्र की परिकल्पना किए बिना। वास्तव में, एक नए ब्लॉक के निर्माण के लिए न केवल सत्यापनकर्ताओं का एक उचित सेट समय पर राउंड-आर प्राप्त करना चाहिए संदेश, बल्कि पिछले दौर के संदेश भी, ताकि Br−1 और अन्य सभी पिछले दौर को जान सकें ब्लॉक, जो यह निर्धारित करने के लिए आवश्यक है कि Br में भुगतान वैध हैं या नहीं। निम्नलिखित इसके बजाय धारणा पर्याप्त है। संदेश प्रसार (एमपी) धारणा: सभी \(\rho\) > 95% और \(\mu\) \(\in\)Z+ के लिए, \(\lambda\) \(\rho\),\(\mu\) मौजूद है ऐसा कि, सभी समय t और सभी \(\mu\)-बाइट संदेशों के लिए m को t −\(\lambda\) \(\rho\),\(\mu\) से पहले एक ईमानदार उपयोगकर्ता द्वारा प्रचारित किया जाता है। एम को समय टी के अनुसार, ईमानदार उपयोगकर्ताओं के कम से कम एक अंश \(\rho\) द्वारा प्राप्त किया जाता है। प्रोटोकॉल Algorand 'वास्तव में उपयोगकर्ताओं की एक छोटी संख्या में से प्रत्येक को निर्देश देता है (अर्थात, किसी के सत्यापनकर्ताओं को) (छोटे) निर्धारित आकार के एक अलग संदेश को प्रसारित करने के लिए, Algorand ′ में एक राउंड का चरण दिया गया है, और हमें इन निर्देशों को पूरा करने के लिए आवश्यक समय निर्धारित करने की आवश्यकता है। हम एमपी को समृद्ध बनाकर ऐसा करते हैं अनुमान इस प्रकार है. सभी n, \(\rho\) > 95%, और \(\mu\) \(\in\)Z+ के लिए, \(\lambda\)n,\(\rho\),\(\mu\) मौजूद है, जैसे कि, सभी समय t और सभी \(\mu\)-बाइट के लिए संदेश एम1, . . . , mn, प्रत्येक को t −\(\lambda\)n,\(\rho\),\(\mu\), m1, से पहले एक ईमानदार उपयोगकर्ता द्वारा प्रचारित किया जाता है। . . , एमएन प्राप्त हुए हैं, समय t के अनुसार, ईमानदार उपयोगकर्ताओं के कम से कम एक अंश \(\rho\) द्वारा। नोट • उपरोक्त धारणा जानबूझकर सरल है, लेकिन हमारे पेपर में आवश्यकता से अधिक मजबूत भी है।6 • सरलता के लिए, हम \(\rho\) = 1 मानते हैं, और इस प्रकार \(\rho\) का उल्लेख करना छोड़ देते हैं। • हम निराशावादी रूप से यह मानते हैं, बशर्ते कि वह सांसद की धारणा, प्रतिद्वंद्वी का उल्लंघन न करे सभी संदेशों की डिलीवरी को पूरी तरह से नियंत्रित करता है। विशेष रूप से, ईमानदार लोगों की नज़र में आए बिना उपयोगकर्ता, विरोधी मनमाने ढंग से यह तय कर सकता है कि कौन सा ईमानदार खिलाड़ी कब कौन सा संदेश प्राप्त करेगा, और मनमाने ढंग से अपने इच्छित किसी भी संदेश के वितरण में तेजी लाता है।7

เบื้องต้น

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

पारंपरिक सेटिंग में बीए प्रोटोकॉल बीए⋆

जैसा कि पहले ही जोर दिया गया है, बीजान्टिन समझौता Algorand का एक प्रमुख घटक है। सचमुच, यह हो चुका है ऐसे BA प्रोटोकॉल का उपयोग जिससे Algorand फोर्क्स द्वारा अप्रभावित रहे। हालाँकि, हमारे विरुद्ध सुरक्षित रहने के लिए शक्तिशाली प्रतिद्वंद्वी, Algorand को BA प्रोटोकॉल पर भरोसा करना चाहिए जो नए खिलाड़ी-प्रतिस्थापन को संतुष्ट करता है बाधा. इसके अलावा, Algorand के कुशल होने के लिए, ऐसा BA प्रोटोकॉल बहुत कुशल होना चाहिए। बीए प्रोटोकॉल को सबसे पहले एक आदर्श संचार मॉडल, समकालिक पूर्णता के लिए परिभाषित किया गया था नेटवर्क (एससी नेटवर्क)। ऐसा मॉडल बीए प्रोटोकॉल के सरल डिजाइन और विश्लेषण की अनुमति देता है। 6 ईमानदार प्रतिशत एच और स्वीकार्य विफलता संभावना एफ को देखते हुए, Algorand ऊपरी सीमा, एन की गणना करता है, एक चरण में सत्यापनकर्ताओं की अधिकतम संख्या तक। इस प्रकार, एमपी धारणा को केवल n \(\leq\)N के लिए बनाए रखने की आवश्यकता है। इसके अलावा, जैसा कि कहा गया है, एमपी की धारणा यह मायने नहीं रखती कि इसके साथ कितने अन्य संदेश भी प्रचारित किए जा सकते हैं एम.जे. हालाँकि, जैसा कि हम देखेंगे, Algorand में संदेशों को अनिवार्य रूप से गैर-अतिव्यापी समय में प्रचारित किया जाता है अंतराल, जिसके दौरान या तो एक एकल ब्लॉक का प्रचार किया जाता है, या अधिकतम एन सत्यापनकर्ता एक छोटे से प्रचारित करते हैं (उदाहरण के लिए, 200बी) संदेश. इस प्रकार, हम एमपी धारणा को कमजोर, लेकिन अधिक जटिल तरीके से दोहरा सकते हैं। 7उदाहरण के लिए, वह ईमानदार खिलाड़ियों द्वारा भेजे गए संदेशों को तुरंत जान सकता है। इस प्रकार, एक दुर्भावनापूर्ण उपयोगकर्ता i', जो है एक ईमानदार उपयोगकर्ता के साथ एक संदेश को एक साथ प्रचारित करने के लिए कहा गया, मैं हमेशा उसके आधार पर अपना संदेश चुन सकता हूं संदेश m वास्तव में i द्वारा प्रचारित किया गया है। वितरित-गणना की भाषा में, यह क्षमता शीघ्रता से संबंधित है साहित्य.तदनुसार, इस खंड में, हम एससी नेटवर्क और अनदेखी के लिए एक नया बीए प्रोटोकॉल, बीए⋆ पेश करते हैं खिलाड़ी प्रतिस्थापनीयता का मुद्दा पूरी तरह से। प्रोटोकॉल BA⋆ अलग मूल्य का योगदान है। वास्तव में, यह SC नेटवर्क के लिए अब तक ज्ञात सबसे कुशल क्रिप्टोग्राफ़िक BA प्रोटोकॉल है। हमारे Algorand प्रोटोकॉल के भीतर इसका उपयोग करने के लिए, हम BA⋆a बिट को संशोधित करते हैं, ताकि हमारे अलग-अलग को ध्यान में रखा जा सके संचार मॉडल और संदर्भ, लेकिन सुनिश्चित करें कि, अनुभाग X में, BA⋆ का उपयोग कैसे किया जाता है, इस पर प्रकाश डाला जाए हमारे वास्तविक प्रोटोकॉल Algorand के भीतर। हम उस मॉडल को याद करके शुरू करते हैं जिसमें BA⋆संचालित होता है और बीजान्टिन समझौते की धारणा। 3.1 सिंक्रोनस कम्प्लीट नेटवर्क और मैचिंग एडवर्सरीज SC नेटवर्क में, एक सामान्य घड़ी होती है, जो प्रत्येक अभिन्न समय r = 1, 2, पर टिक करती है। . . प्रत्येक सम समय पर आर क्लिक करें, प्रत्येक खिलाड़ी तुरंत और साथ ही एक सिंगल भेजता है संदेश श्रीमान i,j (संभवतः खाली संदेश) प्रत्येक खिलाड़ी j को, जिसमें स्वयं भी शामिल है। प्रत्येक श्रीमान i,j प्राप्त हो गया है समय पर प्रेषक i की पहचान के साथ खिलाड़ी j द्वारा r + 1 पर क्लिक करें। फिर, एक संचार प्रोटोकॉल में, एक खिलाड़ी ईमानदार होता है यदि वह अपने सभी निर्धारित नियमों का पालन करता है निर्देश, और अन्यथा दुर्भावनापूर्ण। सभी दुर्भावनापूर्ण खिलाड़ी पूरी तरह से नियंत्रित और परिपूर्ण हैं विरोधी द्वारा समन्वित, जो, विशेष रूप से, संबोधित सभी संदेशों को तुरंत प्राप्त करता है दुर्भावनापूर्ण खिलाड़ी, और उनके द्वारा भेजे गए संदेशों को चुनते हैं। विरोधी किसी भी ईमानदार उपयोगकर्ता को किसी भी विषम समय में तुरंत क्लिक करके दुर्भावनापूर्ण बना सकता है वह चाहता है, केवल दुर्भावनापूर्ण खिलाड़ियों की संख्या में संभावित ऊपरी सीमा के अधीन। अर्थात्, विरोधी "एक ईमानदार उपयोगकर्ता द्वारा पहले से भेजे गए संदेशों में हस्तक्षेप नहीं कर सकता", जो होगा हमेशा की तरह वितरित किया गया। प्रतिद्वंद्वी के पास प्रत्येक सम दौर में तुरंत देखने की अतिरिक्त क्षमता भी होती है संदेश जो वर्तमान में ईमानदार खिलाड़ी भेजते हैं, और चुनने के लिए तुरंत इस जानकारी का उपयोग करते हैं दुर्भावनापूर्ण खिलाड़ी एक ही समय में जो संदेश भेजते हैं, वे टिक जाते हैं। टिप्पणियाँ • विरोधी शक्ति. उपरोक्त सेटिंग बहुत प्रतिकूल है. दरअसल, बीजान्टिन समझौते में साहित्य में, कई सेटिंग्स कम प्रतिकूल हैं। हालाँकि, कुछ और प्रतिकूल सेटिंग्स हैं इस पर भी विचार किया गया, जहां प्रतिद्वंद्वी, एक ईमानदार खिलाड़ी द्वारा भेजे गए संदेशों को देखने के बाद किसी निश्चित समय पर क्लिक आर, नेटवर्क से इन सभी संदेशों को तुरंत मिटाने की क्षमता रखता है भ्रष्ट i, वह संदेश चुनें जो अब दुर्भावनापूर्ण i समय पर भेजता है, r पर क्लिक करें, और उन्हें प्राप्त करें हमेशा की तरह वितरित किया गया। प्रतिद्वंद्वी की परिकल्पित शक्ति हमारी सेटिंग में उसके पास मौजूद शक्ति से मेल खाती है। • शारीरिक अमूर्तन. परिकल्पित संचार मॉडल एक अधिक भौतिक मॉडल का सार प्रस्तुत करता है, जिसमें खिलाड़ियों की प्रत्येक जोड़ी (i, j) एक अलग और निजी संचार लाइन li,j से जुड़ी हुई है। अर्थात्, कोई भी अन्य व्यक्ति भेजे गए संदेशों के बारे में जानकारी नहीं डाल सकता, हस्तक्षेप नहीं कर सकता या जानकारी हासिल नहीं कर सकता ली, जे. प्रतिद्वंद्वी के लिए li,j तक पहुंच पाने का एकमात्र तरीका i या j को भ्रष्ट करना है। • गोपनीयता और प्रमाणीकरण. SC नेटवर्क में संदेश गोपनीयता और प्रमाणीकरण की गारंटी होती है अनुमान से. इसके विपरीत, हमारे संचार नेटवर्क में, जहां संदेशों का प्रचार-प्रसार किया जाता है सहकर्मी से सहकर्मी तक, डिजिटल हस्ताक्षर द्वारा प्रमाणीकरण की गारंटी दी जाती है, और गोपनीयता अस्तित्वहीन है। इस प्रकार, हमारी सेटिंग में प्रोटोकॉल BA⋆ को अपनाने के लिए, आदान-प्रदान किए गए प्रत्येक संदेश को डिजिटल रूप से हस्ताक्षरित किया जाना चाहिए (आगे उस राज्य की पहचान करना जहां इसे भेजा गया था)। सौभाग्य से, बीए प्रोटोकॉल जो हम Algorand में उपयोग करने पर विचार करें, संदेश गोपनीयता की आवश्यकता नहीं है।3.2 बीजान्टिन समझौते की धारणा बीजान्टिन समझौते की धारणा पीज़ शोस्ताक और लामपोर्ट [31] द्वारा प्रस्तुत की गई थी बाइनरी केस, यानी, जब प्रत्येक प्रारंभिक मान में एक बिट होता है। हालाँकि, इसे तुरंत बढ़ा दिया गया मनमाने प्रारंभिक मूल्यों के लिए। (फिशर [16] और चोर और डवर्क [10] के सर्वेक्षण देखें।) एक बीए द्वारा प्रोटोकॉल, हमारा मतलब एक मनमाना-मूल्य वाला है। परिभाषा 3.1. एक सिंक्रोनस नेटवर्क में, मान लीजिए कि P एक एन-प्लेयर प्रोटोकॉल है, जिसका प्लेयर सेट सामान्य है खिलाड़ियों के बीच ज्ञान, t एक धनात्मक पूर्णांक जैसे कि n \(\geq\)2t + 1। हम कहते हैं कि P एक है मनमाना-मूल्य (क्रमशः, बाइनरी) (एन, टी)-सुदृढ़ता के साथ बीजान्टिन समझौता प्रोटोकॉल \(\sigma\) \(\in\)(0, 1) यदि, मानों के प्रत्येक सेट के लिए V में विशेष प्रतीक \(\bot\) नहीं है (क्रमशः, V = {0, 1} के लिए), एक में निष्पादन जिसमें अधिकांश खिलाड़ी दुर्भावनापूर्ण होते हैं और जिसमें प्रत्येक खिलाड़ी की शुरुआत एक से होती है प्रारंभिक मूल्य vi \(\in\)V , प्रत्येक ईमानदार खिलाड़ी j संभाव्यता 1 के साथ रुकता है, एक मान आउटपुट करता है \(\in\)V \(\cup\){\(\bot\)} ताकि, कम से कम \(\sigma\) संभावना के साथ, निम्नलिखित दो शर्तों को पूरा किया जा सके: 1. समझौता: \(\in\)V \(\cup\){\(\bot\)} इस प्रकार मौजूद है कि सभी ईमानदार खिलाड़ियों के लिए आउटआई = आउट है। 2. संगति: यदि, किसी मान v \(\in\)V के लिए, सभी ईमानदार खिलाड़ियों के लिए vi = v, तो आउट = v। हम आउट को पी के आउटपुट के रूप में संदर्भित करते हैं, और प्रत्येक आउट को प्लेयर आई के आउटपुट के रूप में संदर्भित करते हैं। 3.3 बीए नोटेशन # हमारे बीए प्रोटोकॉल में, एक खिलाड़ी को यह गिनना आवश्यक है कि कितने खिलाड़ियों ने उसे दिया गया संदेश भेजा है एक दिया गया कदम. तदनुसार, भेजे जा सकने वाले प्रत्येक संभावित मान v के लिए,

एस

मैं(v) (या सिर्फ #i(v) जब s स्पष्ट है) खिलाड़ियों j की संख्या है जिनसे मुझे चरण s में v प्राप्त हुआ है। याद दिला दें कि एक खिलाड़ी i को प्रत्येक खिलाड़ी j से ठीक एक संदेश प्राप्त होता है, यदि की संख्या प्लेयर्स n है, तो, सभी i और s के लिए, P वी #एस मैं(v) = एन. 3.4 बाइनरी बीए प्रोटोकॉल बीबीए⋆ इस अनुभाग में हम एक नया बाइनरी बीए प्रोटोकॉल, बीबीए⋆ प्रस्तुत करते हैं, जो अधिक की ईमानदारी पर निर्भर करता है दो-तिहाई खिलाड़ियों से अधिक और यह बहुत तेज़ है: चाहे दुर्भावनापूर्ण खिलाड़ी कुछ भी करें, इसके मुख्य लूप का प्रत्येक निष्पादन खिलाड़ियों को प्रायिकता 1/3 के साथ सहमति में लाता है। प्रत्येक खिलाड़ी के पास अद्वितीय हस्ताक्षर को संतुष्ट करने वाली डिजिटल हस्ताक्षर योजना की अपनी सार्वजनिक कुंजी होती है संपत्ति. चूंकि इस प्रोटोकॉल का उद्देश्य सिंक्रोनस पूर्ण नेटवर्क पर चलना है, इसलिए ऐसा नहीं है मुझे एक खिलाड़ी की आवश्यकता है जो उसके प्रत्येक संदेश पर हस्ताक्षर करे। चरण 3 में पर्याप्त रूप से सामान्य यादृच्छिक बिट उत्पन्न करने के लिए डिजिटल हस्ताक्षर का उपयोग किया जाता है। (Algorand में, डिजिटल हस्ताक्षर का उपयोग अन्य सभी संदेशों को प्रमाणित करने के लिए भी किया जाता है।) प्रोटोकॉल के लिए न्यूनतम सेट-अप की आवश्यकता होती है: एक सामान्य यादृच्छिक स्ट्रिंग आर, खिलाड़ियों से स्वतंत्र चाबियाँ. (Algorand में, r को वास्तव में मात्रा Qr द्वारा प्रतिस्थापित किया जाता है।) प्रोटोकॉल बीबीए⋆ एक 3-चरणीय लूप है, जहां खिलाड़ी बार-बार बूलियन मानों का आदान-प्रदान करते हैं, और अलग-अलग खिलाड़ी अलग-अलग समय पर इस लूप से बाहर निकल सकते हैं। एक खिलाड़ी जो प्रचारित करके इस लूप से बाहर निकलता है, कुछ कदम पर, या तो एक विशेष मान 0∗या एक विशेष मान 1∗, जिससे सभी खिलाड़ियों को निर्देश दिया जाता है "दिखावा करें" वे भविष्य के सभी चरणों में i से क्रमशः 0 और 1 प्राप्त करते हैं। (वैकल्पिक रूप से कहा गया: मान लीजिएकि एक खिलाड़ी जे को दूसरे खिलाड़ी से प्राप्त अंतिम संदेश थोड़ा बी था। फिर, किसी भी चरण में जिसमें उसे i से कोई संदेश प्राप्त नहीं होता है, j ऐसा व्यवहार करता है मानो मैंने उसे बिट b भेजा हो।) प्रोटोकॉल एक काउंटर \(\gamma\) का उपयोग करता है, जो दर्शाता है कि इसके 3-चरणीय लूप को कितनी बार निष्पादित किया गया है। BBA⋆ की शुरुआत में, \(\gamma\) = 0. (कोई \(\gamma\) को एक वैश्विक काउंटर के रूप में सोच सकता है, लेकिन यह वास्तव में बढ़ा हुआ है प्रत्येक व्यक्तिगत खिलाड़ी द्वारा हर बार जब लूप निष्पादित होता है।) वहाँ n \(\geq\)3t + 1 है, जहाँ t दुर्भावनापूर्ण खिलाड़ियों की अधिकतम संभव संख्या है। एक बाइनरी स्ट्रिंग x की पहचान उस पूर्णांक से की जाती है जिसका द्विआधारी प्रतिनिधित्व (संभावित अग्रणी 0s के साथ) x है; और lsb(x) x के सबसे कम महत्वपूर्ण बिट को दर्शाता है। प्रोटोकॉल बीबीए⋆ (संचार) चरण 1. [सिक्का-निर्धारित-टू-0 चरण] प्रत्येक खिलाड़ी को मैं द्वि भेजता हूं। 1.1 यदि #1 i (0) \(\geq\)2t + 1, फिर मैं bi = 0 सेट करता हूं, 0∗ भेजता हूं, आउटपुट आउटपुट = 0, और रुक जाता है. 1.2 यदि #1 i (1) \(\geq\)2t + 1, तब, फिर मैं bi = 1 सेट करता हूं। 1.3 अन्यथा, मैं bi = 0 सेट करता हूँ। (संचार) चरण 2. [सिक्का-निर्धारित-से-1 चरण] प्रत्येक खिलाड़ी को मैं द्वि भेजता हूं। 2.1 यदि #2 i (1) \(\geq\)2t + 1, तो मैं bi = 1 सेट करता हूं, 1∗ भेजता है, आउटपुट आउटआई = 1, और रुक जाता है. 2.2 यदि #2 i (0) \(\geq\)2t + 1, फिर मैंने bi = 0 सेट किया। 2.3 अन्यथा, मैं द्वि = 1 सेट करता हूँ। (संचार) चरण 3. [सिक्का-वास्तविक-फ़्लिप्ड चरण] प्रत्येक खिलाड़ी को मैं bi और 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 में एक उचित संदेश भेजा है, देते हुए, मैं bi = c \(\triangleq\)lsb(minj\(\in\)Si H(SIGi(r, \(\gamma\)))) सेट करता हूं; \(\gamma\)i को 1 से बढ़ाता है; और चरण 1 पर वापस आता है। प्रमेय 3.1. जब भी n \(\geq\)3t + 1, BBA⋆ सुदृढ़ता 1 के साथ एक बाइनरी (n, t)-BA प्रोटोकॉल है। प्रमेय 3.1 का प्रमाण [26] में दिया गया है। यह हमारी सेटिंग के अनुरूप है, और इसकी प्लेयर-प्रतिस्थापनीयता संपत्ति नवीन हैं. ऐतिहासिक टिप्पणी संभाव्य बाइनरी बीए प्रोटोकॉल सबसे पहले बेन-ऑर द्वारा प्रस्तावित किए गए थे अतुल्यकालिक सेटिंग्स [7]। प्रोटोकॉल बीबीए⋆ हमारी सार्वजनिक-कुंजी सेटिंग का एक नया अनुकूलन है फेल्डमैन और मिकाली का बाइनरी बीए प्रोटोकॉल [15]। उनका प्रोटोकॉल अपेक्षित तरीके से काम करने वाला पहला था चरणों की निरंतर संख्या. इसने खिलाड़ियों को स्वयं एक सामान्य सिक्का लागू करने के द्वारा काम किया, राबिन द्वारा प्रस्तावित एक धारणा, जिसने इसे एक बाहरी विश्वसनीय पार्टी [32] के माध्यम से लागू किया।3.5 श्रेणीबद्ध आम सहमति और प्रोटोकॉल जीसी आइए, मनमाने मूल्यों के लिए, बीजान्टिन समझौते की तुलना में आम सहमति की धारणा को बहुत कमजोर याद रखें। परिभाषा 3.2. मान लीजिए कि P एक प्रोटोकॉल है जिसमें सभी खिलाड़ियों का सेट सामान्य ज्ञान है, और प्रत्येक प्लेयर I निजी तौर पर एक मनमाना प्रारंभिक मान v' जानता है मैं. हम कहते हैं कि P एक (n, t)-ग्रेडेड सर्वसम्मति प्रोटोकॉल है, यदि, n खिलाड़ियों के साथ प्रत्येक निष्पादन में जिनमें से अधिकांश दुर्भावनापूर्ण हैं, प्रत्येक ईमानदार खिलाड़ी एक मूल्य-ग्रेड जोड़ी (vi, gi) का आउटपुट रोक देता है, जहां gi \(\in\){0, 1, 2}, ताकि निम्नलिखित तीन शर्तों को पूरा किया जा सके: 1. सभी ईमानदार खिलाड़ियों के लिए i और j, |gi −gj| \(\leq\)1. 2. सभी ईमानदार खिलाड़ियों के लिए i और j, gi, gj > 0 ⇒vi = vj. 3. यदि v' 1 = \(\cdots\) = वी' कुछ मान v के लिए n = v, फिर सभी ईमानदार खिलाड़ियों के लिए vi = v और gi = 2। ऐतिहासिक नोट श्रेणीबद्ध सर्वसम्मति की धारणा केवल श्रेणीबद्ध सर्वसम्मति से ली गई है प्रसारण, फेल्डमैन और मिकाली द्वारा [15] में एक क्रूसेडर की धारणा को मजबूत करके प्रस्तुत किया गया समझौता, जैसा कि डोलेव [12] द्वारा प्रस्तुत किया गया था, और टर्पिन और कोआन [33].8 द्वारा परिष्कृत किया गया था [15] में, लेखकों ने 3-चरण (एन, टी)-ग्रेडेड प्रसारण प्रोटोकॉल, ग्रेडकास्ट भी प्रदान किया है n \(\geq\)3t+1. n > 2t+1 के लिए एक अधिक जटिल (n, t)-ग्रेडेड-ब्रॉडकास्टिंग प्रोटोकॉल बाद में पाया गया है काट्ज़ और कू द्वारा [19]। निम्नलिखित दो-चरणीय प्रोटोकॉल GC में ग्रेडकास्ट के अंतिम दो चरण शामिल हैं, जो हमारे में व्यक्त किए गए हैं अंकन. इस तथ्य पर जोर देने के लिए, और अनुभाग 4.1 के प्रोटोकॉल Algorand ′ के चरणों का मिलान करने के लिए, हम GC के क्रमशः 2 और 3 चरणों के नाम बताइए। प्रोटोकॉल जीसी चरण 2. प्रत्येक खिलाड़ी को मैं v′ भेजता हूं मैं सभी खिलाड़ियों को. चरण 3. प्रत्येक खिलाड़ी मैं सभी खिलाड़ियों को स्ट्रिंग x भेजता हूं यदि और केवल यदि #2 मैं (x) \(\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 और सभी ईमानदार खिलाड़ियों के लिए जीआई = 2। 9दरअसल, उनके प्रोटोकॉल में, चरण 1 में, प्रेषक सभी खिलाड़ियों को अपना निजी मूल्य v भेजता है, और प्रत्येक खिलाड़ी को मैं देता हूं वी′ इसमें वह मूल्य शामिल है जो उसने वास्तव में चरण 1 में प्रेषक से प्राप्त किया है।3.6 प्रोटोकॉल BA⋆ अब हम बाइनरी बीए प्रोटोकॉल बीबीए⋆और के माध्यम से मनमाने मूल्य वाले बीए प्रोटोकॉल बीए⋆ का वर्णन करते हैं ग्रेडेड-सर्वसम्मति प्रोटोकॉल जीसी। नीचे, प्रत्येक खिलाड़ी का प्रारंभिक मान i है v′ मैं. प्रोटोकॉल BA⋆ चरण 1 और 2। प्रत्येक खिलाड़ी इनपुट v′ पर GC निष्पादित करता है मैं, ताकि एक जोड़ी (vi, gi) की गणना की जा सके। चरण 3, . . . प्रत्येक खिलाड़ी I BBA⋆ निष्पादित करता है - प्रारंभिक इनपुट 0 के साथ, यदि gi = 2, और 1 अन्यथा - तो बिट आउटी की गणना करने के लिए। आउटपुट निर्धारण. प्रत्येक खिलाड़ी i आउटपुट vi देता है, यदि आउटआई = 0 है, और \(\bot\)अन्यथा। प्रमेय 3.3. जब भी n \(\geq\)3t + 1, BA⋆ एक (n, t)-BA प्रोटोकॉल है जिसमें सुदृढ़ता 1 है। सबूत. हम पहले संगति साबित करते हैं, और फिर सहमति। संगति का प्रमाण. मान लें कि, किसी मान v \(\in\)V , v′ के लिए मैं = वी. फिर, संपत्ति 3 से श्रेणीबद्ध सर्वसम्मति, जीसी के निष्पादन के बाद, सभी ईमानदार खिलाड़ी आउटपुट (v, 2)। तदनुसार, 0 है बीबीए⋆ के निष्पादन के अंत में सभी ईमानदार खिलाड़ियों का प्रारंभिक बिट। इस प्रकार, समझौते द्वारा बाइनरी बीजान्टिन समझौते की संपत्ति, BA⋆ के निष्पादन के अंत में, सभी ईमानदारों के लिए आउटआई = 0 खिलाड़ी. इसका तात्पर्य यह है कि BA⋆ में प्रत्येक ईमानदार खिलाड़ी i का आउटपुट vi = v है। ✷ समझौते का प्रमाण. चूँकि BBA⋆ एक बाइनरी BA प्रोटोकॉल है (ए) सभी ईमानदार खिलाड़ियों के लिए आउटआई = 1, या (बी) सभी ईमानदार खिलाड़ियों के लिए आउटआई = 0। मामले A में, सभी ईमानदार खिलाड़ी BA⋆ में आउटपुट देते हैं, और इस प्रकार समझौता कायम रहता है। अब केस बी पर विचार करें इस मामले में, BBA⋆ के निष्पादन में, कम से कम एक ईमानदार खिलाड़ी i का प्रारंभिक बिट 0 है। (वास्तव में, यदि सभी ईमानदार खिलाड़ियों की प्रारंभिक बिट 1 थी, फिर, बीबीए⋆ की संगति संपत्ति द्वारा, हमारे पास होगा सभी ईमानदार जे के लिए आउटजे = 1।) तदनुसार, जीसी के निष्पादन के बाद, मैं कुछ के लिए जोड़ी (v, 2) आउटपुट करता हूं मूल्य v. इस प्रकार, श्रेणीबद्ध सर्वसम्मति की संपत्ति 1 के अनुसार, सभी ईमानदार खिलाड़ियों के लिए gj > 0। तदनुसार, द्वारा श्रेणीबद्ध सर्वसम्मति की संपत्ति 2, सभी ईमानदार खिलाड़ियों के लिए वीजे = वी। इसका तात्पर्य यह है कि, के अंत में BA⋆, प्रत्येक ईमानदार खिलाड़ी j आउटपुट v देता है। इस प्रकार, समझौता B के मामले में भी लागू होता है। ✷ चूँकि संगति और सहमति दोनों मान्य हैं, BA⋆ एक मनमाना-मूल्य वाला BA प्रोटोकॉल है। ऐतिहासिक नोट टर्पिन और कोआन यह दिखाने वाले पहले व्यक्ति थे कि, n \(\geq\)3t+1 के लिए, कोई भी बाइनरी (n, t)-BA प्रोटोकॉल को मनमाना-मूल्य (एन, टी)-बीए प्रोटोकॉल में परिवर्तित किया जा सकता है। कमी मनमाना-मूल्य श्रेणीबद्ध सर्वसम्मति के माध्यम से बाइनरी बीजान्टिन समझौते के लिए बीजान्टिन समझौता अधिक मॉड्यूलर और है क्लीनर, और हमारे Algorand प्रोटोकॉल Algorand 'के विश्लेषण को सरल बनाता है। Algorand में उपयोग के लिए BA⋆ को सामान्यीकृत करना Algorand सभी संचार माध्यम से होने पर भी काम करता है गपशप करना. हालाँकि, हालाँकि इसे एक पारंपरिक और परिचित संचार नेटवर्क में प्रस्तुत किया गया है पिछली कला के साथ बेहतर तुलना और आसान समझ को सक्षम करने के लिए, प्रोटोकॉल BA⋆काम करता है गपशप नेटवर्क में भी. वास्तव में, Algorand के हमारे विस्तृत अवतार में, हम इसे प्रस्तुत करेंगे सीधे गपशप नेटवर्क के लिए। हम यह भी इंगित करेंगे कि यह खिलाड़ी की प्रतिस्थापनीयता को संतुष्ट करता है वह संपत्ति जो Algorand के लिए परिकल्पित अत्यंत प्रतिकूल मॉडल में सुरक्षित होना महत्वपूर्ण है।

गपशप संचार नेटवर्क में काम करने वाला कोई भी बीए प्लेयर-प्रतिस्थापन योग्य प्रोटोकॉल हो सकता है आविष्कारी Algorand प्रणाली में सुरक्षित रूप से नियोजित। विशेष रूप से, मिकाली और वैकुंठतनन ईमानदार खिलाड़ियों के एक साधारण बहुमत के साथ भी बहुत कुशलता से काम करने के लिए BA⋆ का विस्तार किया है। वह प्रोटोकॉल का उपयोग Algorand में भी किया जा सकता है।

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

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

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

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

Algorand के दो अवतार

जैसा कि चर्चा की गई है, बहुत उच्च स्तर पर, Algorand का एक दौर आदर्श रूप से निम्नानुसार आगे बढ़ता है। सबसे पहले, एक यादृच्छिक रूप से चयनित उपयोगकर्ता, नेता, एक नया ब्लॉक प्रस्तावित और प्रसारित करता है। (इस प्रक्रिया में प्रारंभ में शामिल है कुछ संभावित नेताओं का चयन करना और फिर यह सुनिश्चित करना कि, कम से कम समय का एक अच्छा हिस्सा, ए एकल आम नेता उभरता है।) दूसरा, उपयोगकर्ताओं की एक यादृच्छिक रूप से चयनित समिति का चयन किया जाता है, और नेता द्वारा प्रस्तावित ब्लॉक पर बीजान्टिन समझौते पर पहुँचता है। (इस प्रक्रिया में वह भी शामिल है बीए प्रोटोकॉल का प्रत्येक चरण एक अलग से चयनित समिति द्वारा चलाया जाता है।) सहमत ब्लॉक फिर समिति के सदस्यों की दी गई सीमा (टीएच) द्वारा डिजिटल रूप से हस्ताक्षरित किया जाता है। ये डिजिटल हस्ताक्षर प्रसारित किया जाता है ताकि सभी को आश्वस्त किया जा सके कि नया ब्लॉक कौन सा है। (इसमें प्रसारित करना शामिल है हस्ताक्षरकर्ताओं की साख, और नए ब्लॉक के केवल hash को प्रमाणित करना, यह सुनिश्चित करना कि हर कोई ब्लॉक को सीखने की गारंटी दी जाती है, एक बार इसका hash स्पष्ट हो जाता है।) अगले दो अनुभागों में, हम Algorand, Algorand 'के दो अवतार प्रस्तुत करते हैं। 1 और Algorand' 2, यह बहुसंख्यक-ईमानदार-उपयोगकर्ताओं की धारणा के तहत काम करता है। धारा 8 में हम बताते हैं कि इन्हें कैसे अपनाया जाए ईमानदार-बहुमत-पैसे की धारणा के तहत काम करने के अवतार। Algorand ' 1 में केवल यह परिकल्पना की गई है कि > समिति के 2/3 सदस्य ईमानदार हैं। इसके अलावा, में Algorand ' 1, बीजान्टिन समझौते तक पहुँचने के लिए चरणों की संख्या उपयुक्त रूप से उच्च रखी गई है संख्या, ताकि समझौते पर अत्यधिक संभावना के साथ पहुंचने की गारंटी हो चरणों की निश्चित संख्या (लेकिन संभावित रूप से Algorand के चरणों की तुलना में अधिक समय की आवश्यकता होती है) 2). में दूरस्थ मामले जिनमें अंतिम चरण तक सहमति नहीं बनी है, समिति इस पर सहमत है खाली ब्लॉक, जो हमेशा वैध होता है। Algorand ' 2 की परिकल्पना है कि किसी समिति में ईमानदार सदस्यों की संख्या सदैव अधिक होती है या एक निश्चित सीमा tH के बराबर (जो इसकी गारंटी देता है, कम से कम अत्यधिक संभावना के साथ समिति के 2/3 सदस्य ईमानदार हैं)। इसके अलावा, Algorand' 2 बीजान्टिन समझौते की अनुमति देता है मनमाने ढंग से चरणों की संख्या में पहुंचा जा सकता है (लेकिन संभावित रूप से Algorand से कम समय में) 1). इन मूल अवतारों के कई प्रकार प्राप्त करना आसान है। विशेष रूप से, यह आसान है, दिया गया है Algorand ' 2, Algorand को संशोधित करने के लिए ' 1 ताकि मनमाने ढंग से बीजान्टिन समझौते तक पहुंचने में सक्षम हो सके चरणों की संख्या. दोनों अवतार निम्नलिखित सामान्य कोर, नोटेशन, धारणाएं और पैरामीटर साझा करते हैं। 4.1 एक सामान्य कोर उद्देश्य आदर्श रूप से, प्रत्येक राउंड r के लिए, Algorand निम्नलिखित गुणों को संतुष्ट करेगा: 1. उत्तम शुद्धता. सभी ईमानदार उपयोगकर्ता एक ही ब्लॉक पर सहमत हैं ब्र. 2. पूर्णता 1. संभाव्यता 1 के साथ, Br, PAY r का भुगतान अधिकतम है।10 10क्योंकि पेसेट को वैध भुगतान शामिल करने के लिए परिभाषित किया गया है, और ईमानदार उपयोगकर्ताओं को केवल वैध भुगतान करने के लिए, अधिकतम PAY r में सभी ईमानदार उपयोगकर्ताओं के "वर्तमान में बकाया" भुगतान शामिल हैं।निःसंदेह, अकेले पूर्ण शुद्धता की गारंटी देना तुच्छ है: हर कोई हमेशा अधिकारी को ही चुनता है पेसेट पे आर खाली होना। लेकिन इस मामले में, सिस्टम की पूर्णता 0 होगी। दुर्भाग्य से, दुर्भावनापूर्ण की उपस्थिति में पूर्ण शुद्धता और पूर्णता 1 दोनों की गारंटी देना आसान नहीं है उपयोगकर्ता. Algorand इस प्रकार अधिक यथार्थवादी उद्देश्य अपनाता है। अनौपचारिक रूप से, h को प्रतिशत दर्शाने देना ईमानदार उपयोगकर्ताओं की संख्या, h > 2/3, Algorand का लक्ष्य है ज़बरदस्त संभावना के साथ गारंटी, सही शुद्धता और एच के करीब पूर्णता। पूर्णता पर शुद्धता को प्राथमिकता देना एक उचित विकल्प प्रतीत होता है: भुगतान संसाधित नहीं होते हैं एक राउंड को अगले में संसाधित किया जा सकता है, लेकिन यदि संभव हो तो कांटे से बचना चाहिए। बीजान्टिन समझौते का नेतृत्व किया पूर्ण शुद्धता की गारंटी इस प्रकार दी जा सकती है। शुरुआत में राउंड आर में, प्रत्येक उपयोगकर्ता अपना स्वयं का उम्मीदवार ब्लॉक ब्र बनाता है मैं , और फिर सभी उपयोगकर्ता बीजान्टिन तक पहुँचते हैं एक उम्मीदवार ब्लॉक पर सहमति. हमारे परिचय के अनुसार, नियोजित बीए प्रोटोकॉल की आवश्यकता है 2/3 ईमानदार बहुमत और खिलाड़ी को बदला जा सकता है। इसके प्रत्येक चरण को एक छोटे और द्वारा क्रियान्वित किया जा सकता है सत्यापनकर्ताओं का बेतरतीब ढंग से चयनित सेट, जो कोई आंतरिक चर साझा नहीं करता है। दुर्भाग्य से, इस दृष्टिकोण की पूर्णता की कोई गारंटी नहीं है। ऐसा इसलिए है, क्योंकि उम्मीदवार ईमानदार उपयोगकर्ताओं के ब्लॉक संभवतः एक-दूसरे से पूरी तरह भिन्न होते हैं। इस प्रकार, अंततः सहमत ब्लॉक हमेशा गैर-अधिकतम भुगतान वाला हो सकता है। वास्तव में, यह हमेशा हो सकता है खाली ब्लॉक, B\(\varepsilon\), यानी वह ब्लॉक जिसका पेसेट खाली है। ठीक है, डिफ़ॉल्ट हो, खाली हो। Algorand ′ इस पूर्णता समस्या से निम्नानुसार बचता है। सबसे पहले, राउंड आर, \(\ell\)आर के लिए एक नेता का चयन किया जाता है। फिर, \(\ell\)r अपने स्वयं के उम्मीदवार ब्लॉक, ब्र का प्रचार करता है \(\ell\)r. अंत में, उपयोगकर्ता ब्लॉक पर सहमति पर पहुंचते हैं वे वास्तव में \(\ell\)r से प्राप्त करते हैं। क्योंकि, जब भी \(\ell\)r ईमानदार होता है, पूर्ण शुद्धता और पूर्णता होती है 1 दोनों धारण करते हैं, Algorand ′ यह सुनिश्चित करता है कि \(\ell\)r, h के निकट संभाव्यता के साथ ईमानदार है। (जब नेता हो दुर्भावनापूर्ण, हमें इसकी परवाह नहीं है कि सहमत ब्लॉक खाली पेसेट वाला है या नहीं। आख़िरकार, ए दुर्भावनापूर्ण नेता \(\ell\)r हमेशा दुर्भावनापूर्ण रूप से ब्र को चुन सकता है \(\ell\)r खाली ब्लॉक होना, और फिर ईमानदारी से इसे प्रचारित करें, इस प्रकार ईमानदार उपयोगकर्ताओं को खाली ब्लॉक पर सहमत होने के लिए मजबूर करें।) नेता चयन Algorand में, rवाँ ब्लॉक Br = (r, PAY r, Qr, H(Br−1) के रूप का है। जैसा कि परिचय में पहले ही उल्लेख किया गया है, मात्रा Qr−1 का सावधानीपूर्वक निर्माण किया गया है हमारे अत्यंत शक्तिशाली प्रतिद्वंद्वी द्वारा अनिवार्य रूप से गैर-हेरफेर योग्य। (बाद में इस अनुभाग में, हम करेंगे ऐसा क्यों है इसके बारे में कुछ अंतर्ज्ञान प्रदान करें।) एक राउंड आर की शुरुआत में, सभी उपयोगकर्ता जानते हैं blockchain अब तक, B0, . . . , Br−1, जिससे वे प्रत्येक पिछले दौर के उपयोगकर्ताओं का सेट निकालते हैं: वह है, PK1, . . . , पीकेआर−1. राउंड आर का एक संभावित नेता एक ऐसा उपयोगकर्ता है .एच सिगी आर, 1, क्यूआर−1 \(\leq\)p . आइये समझाते हैं. ध्यान दें, चूँकि मात्रा Qr−1 ब्लॉक Br−1 और अंतर्निहित का हिस्सा है हस्ताक्षर योजना विशिष्टता संपत्ति, SIGi को संतुष्ट करती है आर, 1, क्यूआर−1 विशिष्ट रूप से एक बाइनरी स्ट्रिंग है मैं और आर से संबंधित. इस प्रकार, चूँकि H एक यादृच्छिक oracle है, H सिगी आर, 1, क्यूआर−1 एक यादृच्छिक 256-बिट है लंबी स्ट्रिंग विशिष्ट रूप से i और r से संबद्ध है। प्रतीक "।" एच के सामने सिगी आर, 1, क्यूआर−1 है दशमलव (हमारे मामले में, बाइनरी) बिंदु, ताकि ri \(\triangleq\).H सिगी आर, 1, क्यूआर−1 a का द्विआधारी विस्तार है 0 और 1 के बीच यादृच्छिक 256-बिट संख्या विशिष्ट रूप से i और r से संबद्ध है। इस प्रकार संभावना है कि ri, p से कम या उसके बराबर है, मूलतः p है। (हमारा संभावित-नेता चयन तंत्र रहा है मिकाली और रिवेस्ट की सूक्ष्म भुगतान योजना [28] से प्रेरित।) संभाव्यता p को इसलिए चुना गया है ताकि, अत्यधिक (अर्थात, 1 −F) संभाव्यता के साथ, कम से कम एक संभावित सत्यापनकर्ता ईमानदार है। (यदि वास्तव में, p को ऐसी सबसे छोटी संभावना के रूप में चुना गया है।)ध्यान दें, चूंकि केवल मैं ही अपने हस्ताक्षरों की गणना करने में सक्षम हूं, वह अकेला ही ऐसा कर सकता है निर्धारित करें कि क्या वह राउंड 1 का संभावित सत्यापनकर्ता है। हालाँकि, अपनी स्वयं की साख प्रकट करके, \(\sigma\)r मैं \(\triangleq\)SIGi आर, 1, क्यूआर−1 , मैं किसी को भी राउंड आर का संभावित सत्यापनकर्ता साबित कर सकता हूं। नेता \(\ell\)r को संभावित नेता के रूप में परिभाषित किया गया है जिसकी hashed साख उससे छोटी है अन्य सभी संभावित नेताओं की hashed क्रेडेंशियल j: यानी, H(\(\sigma\)r,s \(\ell\)r ) \(\leq\)H(\(\sigma\)r,s ज ). ध्यान दें, चूंकि एक दुर्भावनापूर्ण \(\ell\)r अपनी साख प्रकट नहीं कर सकता है, राउंड आर का सही नेता ऐसा कर सकता है कभी ज्ञात नहीं होगा, और यह कि, असंभव संबंधों को छोड़कर, \(\ell\)r वास्तव में राउंड आर का एकमात्र नेता है। आइए अंततः एक अंतिम लेकिन महत्वपूर्ण विवरण प्रस्तुत करें: एक उपयोगकर्ता मैं एक संभावित नेता हो सकता हूं (और इस प्रकार)। राउंड आर का नेता) केवल तभी जब वह कम से कम के राउंड के लिए सिस्टम से संबंधित हो। यह गारंटी देता है क्यूआर और सभी भविष्य की क्यू-मात्राओं की गैर-हेरफेरशीलता। वास्तव में, संभावित नेताओं में से एक वास्तव में क्यूआर निर्धारित करेगा। सत्यापनकर्ता चयन राउंड आर के प्रत्येक चरण एस > 1 को सत्यापनकर्ताओं, एसवी आर, एस के एक छोटे सेट द्वारा निष्पादित किया जाता है। फिर से, प्रत्येक सत्यापनकर्ता i \(\in\)SV r,s को सिस्टम k राउंड में पहले से मौजूद उपयोगकर्ताओं के बीच यादृच्छिक रूप से चुना जाता है r से पहले, और फिर विशेष मात्रा Qr−1 के माध्यम से। विशेष रूप से, i \(\in\)PKr−k SV r,s में एक सत्यापनकर्ता है, यदि .एच सिगी आर, एस, क्यूआर−1 \(\leq\)p′ . एक बार फिर, केवल मैं ही जानता हूं कि वह एसवी आर,एस से संबंधित है या नहीं, लेकिन, यदि यह मामला है, तो वह इसे साबित कर सकता है अपनी साख का प्रदर्शन \(\sigma\)r,s मैं \(\triangleq\)H(SIGi आर, एस, क्यूआर−1 ). एक सत्यापनकर्ता i \(\in\)SV r,s एक संदेश भेजता है, श्रीमान, एस मैं, में राउंड आर के चरण एस, और इस संदेश में उसका क्रेडेंशियल \(\sigma\)r,s शामिल है मैं, ताकि सत्यापनकर्ताओं को सक्षम किया जा सके उस श्रीमान को पहचानने के लिए नेस्ट स्टेप मैं एक वैध कदम-एस संदेश है. संभाव्यता p′ को इसलिए चुना गया है ताकि यह सुनिश्चित किया जा सके कि, SV r,s में, #good की संख्या हो ईमानदार उपयोगकर्ताओं और #बुरे दुर्भावनापूर्ण उपयोगकर्ताओं की संख्या, अत्यधिक संभावना के साथ निम्नलिखित दो शर्तें कायम हैं. अवतार के लिए Algorand ' 1: (1) #अच्छा > 2 \(\cdot\) #बुरा और (2) #अच्छा + 4 \(\cdot\) #बुरा <2एन, जहां एन एसवी आर,एस की अपेक्षित कार्डिनैलिटी है। अवतार के लिए Algorand ' 2: (1) #अच्छा > वें और (2) #अच्छा + 2#बुरा <2टीएच, जहां टीएच एक निर्दिष्ट सीमा है। इन शर्तों का अर्थ है कि, पर्याप्त रूप से उच्च संभावना के साथ, (ए) बीए के अंतिम चरण में प्रोटोकॉल, नए ब्लॉक ब्र पर डिजिटल हस्ताक्षर करने के लिए कम से कम ईमानदार खिलाड़ियों की संख्या दी जाएगी, (बी) प्रति राउंड केवल एक ब्लॉक में आवश्यक संख्या में हस्ताक्षर हो सकते हैं, और (सी) प्रयुक्त बीए प्रोटोकॉल में (प्रत्येक चरण पर) आवश्यक 2/3 ईमानदार बहुमत होता है। ब्लॉक जनरेशन को स्पष्ट करना यदि राउंड-आर लीडर \(\ell\)r ईमानदार है, तो संबंधित ब्लॉक स्वरूप का है ब्र = आर, भुगतान आर, हस्ताक्षर\(\ell\)आर क्यूआर−1 , एच ब्र−1 , जहां पेसेट PAY r अधिकतम है। (याद रखें कि सभी भुगतान, परिभाषा के अनुसार, सामूहिक रूप से वैध हैं।) अन्यथा (अर्थात, यदि \(\ell\)r दुर्भावनापूर्ण है), Br के निम्नलिखित दो संभावित रूपों में से एक है: ब्र = आर, भुगतान आर, सिगी Qr−1 , एच ब्र−1 और ब्र = ब्र \(\varepsilon\) \(\triangleq\) r, \(\emptyset\), Qr−1, H ब्र−1 .पहले रूप में, PAY r एक (अनिवार्य रूप से अधिकतम) भुगतान सेट है और यह PAY r = \(\emptyset\) हो सकता है; और मैं हूं राउंड आर के एक संभावित नेता। (हालाँकि, मैं नेता नहीं हो सकता \(\ell\)r। यह वास्तव में हो सकता है यदि \(\ell\)r अपनी पहचान गुप्त रखता है और खुद को प्रकट नहीं करता है।) दूसरा रूप तब उत्पन्न होता है, जब बीए प्रोटोकॉल के राउंड-आर निष्पादन में, सभी ईमानदार खिलाड़ी डिफ़ॉल्ट मान आउटपुट करें, जो खाली ब्लॉक Br है \(\varepsilon\) हमारे आवेदन में। (परिभाषा के अनुसार, संभव BA प्रोटोकॉल के आउटपुट में एक डिफ़ॉल्ट मान शामिल होता है, जिसे सामान्यतः \(\bot\) द्वारा दर्शाया जाता है। अनुभाग 3.2 देखें।) ध्यान दें, यद्यपि दोनों मामलों में भुगतान सेट खाली हैं, Br = आर, \(\emptyset\), सिगी Qr−1 , एच ब्र−1 और ब्र \(\varepsilon\) वाक्यात्मक रूप से अलग-अलग ब्लॉक हैं और दो अलग-अलग स्थितियों में उत्पन्न होते हैं: क्रमशः, "सभी बीए प्रोटोकॉल के निष्पादन में काफी आसानी से चला गया", और "इसमें कुछ गलत हो गया बीए प्रोटोकॉल, और डिफ़ॉल्ट मान आउटपुट था"। आइए अब हम सहज रूप से वर्णन करें कि ब्लॉक Br की पीढ़ी Algorand 'के दौर में कैसे आगे बढ़ती है। पहले चरण में, प्रत्येक पात्र खिलाड़ी, अर्थात, प्रत्येक खिलाड़ी \(\in\)PKr−k, जाँचता है कि क्या वह एक संभावित खिलाड़ी है नेता. यदि यह मामला है, तो मुझसे पूछा गया है कि उसने अब तक देखे गए सभी भुगतानों का उपयोग किया है, और वर्तमान blockchain, B0, . . . , Br−1, गुप्त रूप से अधिकतम भुगतान सेट तैयार करने के लिए, PAY r मैं, और गुप्त रूप से अपने उम्मीदवार ब्लॉक, Br = को इकट्ठा करता है आर, भुगतान आर मैं, सिगी Qr−1 , एच ब्र−1 . अर्थात्, केवल वह ही नहीं है ब्र में शामिल करें मैं, इसके दूसरे घटक के रूप में हाल ही में तैयार किया गया पेसेट, लेकिन इसके तीसरे घटक के रूप में भी, Qr−1 के अपने हस्ताक्षर, अंतिम ब्लॉक का तीसरा घटक, Br−1। अंत में, उन्होंने अपना प्रचार किया राउंड-आर-स्टेप-1 संदेश, श्रीमान,1 i, जिसमें (ए) उसका उम्मीदवार ब्लॉक ब्र शामिल है मैं, (बी) उसके उचित हस्ताक्षर उनके उम्मीदवार ब्लॉक का (अर्थात्, ब्र. के hash पर उनके हस्ताक्षर)। मैं, और (सी) उसकी अपनी साख \(\sigma\)r,1 मैं, साबित कर रहा हूँ वह वास्तव में राउंड आर का एक संभावित सत्यापनकर्ता है। (ध्यान दें, जब तक कोई ईमानदार व्यक्ति अपना संदेश प्रस्तुत नहीं करता, श्रीमान,1 मैं, प्रतिद्वंद्वी को कोई सुराग नहीं है कि मैं एक हूं संभावित सत्यापनकर्ता. यदि वह ईमानदार संभावित नेताओं को भ्रष्ट करना चाहे, तो विरोधी भी ऐसा कर सकता है भ्रष्ट यादृच्छिक ईमानदार खिलाड़ी। हालाँकि, एक बार वह श्रीमान को देखता है,1 i, चूंकि इसमें i का क्रेडेंशियल शामिल है, इसलिए विरोधी जानता है और मुझे भ्रष्ट कर सकता है, लेकिन श्रीमान को रोक नहीं सकता i , जिसे वायरल रूप से प्रचारित किया जाता है सिस्टम में सभी उपयोगकर्ताओं तक पहुँचना।) दूसरे चरण में, प्रत्येक चयनित सत्यापनकर्ता j \(\in\)SV r,2 राउंड के लीडर की पहचान करने का प्रयास करता है। विशेष रूप से, j चरण-1 क्रेडेंशियल लेता है, \(\sigma\)r,1 मैं1 , . . . , \(\sigma\)r,1 में, उचित चरण-1 संदेश में निहित है श्रीमान,1 मैं उसे प्राप्त हुआ है; hashes ये सभी, यानी H की गणना करते हैं  \(\sigma\)r,1 मैं1  , . . . , एच  \(\sigma\)r,1 में  ; क्रेडेंशियल ढूँढता है, \(\sigma\)r,1 \(\ell\)j , जिसका hash शब्दकोष की दृष्टि से न्यूनतम है; और \(\ell\)r पर विचार करता है जे राउंड आर का लीडर होगा। याद रखें कि प्रत्येक माना गया क्रेडेंशियल Qr−1, यानी SIGi का एक डिजिटल हस्ताक्षर है आर, 1, क्यूआर−1 है i और Qr−1 द्वारा विशिष्ट रूप से निर्धारित, कि H यादृच्छिक oracle है, और इस प्रकार प्रत्येक H(SIGi) आर, 1, क्यूआर−1 राउंड आर के प्रत्येक संभावित लीडर आई के लिए अद्वितीय एक यादृच्छिक 256-बिट लंबी स्ट्रिंग है। इससे हम यह निष्कर्ष निकाल सकते हैं कि, यदि 256-बिट स्ट्रिंग Qr−1 स्वयं यादृच्छिक और स्वतंत्र रूप से होती चयनित, तो राउंड आर के सभी संभावित नेताओं की hashed क्रेडेंशियल होंगी। वास्तव में, सभी संभावित नेताओं को अच्छी तरह से परिभाषित किया गया है, और उनकी साख भी (चाहे वास्तव में गणना की गई हो या नहीं). इसके अलावा, राउंड आर के संभावित नेताओं का सेट राउंड के उपयोगकर्ताओं का एक यादृच्छिक उपसमूह है आर −के, और एक ईमानदार संभावित नेता मैं हमेशा अपने संदेश का उचित ढंग से निर्माण और प्रचार करता हूं श्रीमान मैं , जिसमें i का क्रेडेंशियल शामिल है। इस प्रकार, चूंकि ईमानदार उपयोगकर्ताओं का प्रतिशत h है, इससे कोई फर्क नहीं पड़ता दुर्भावनापूर्ण संभावित नेता ऐसा कर सकते हैं (उदाहरण के लिए, अपनी स्वयं की साख प्रकट करना या छिपाना), न्यूनतम hashed संभावित-नेता की साख एक ईमानदार उपयोगकर्ता की होती है, जिसे हर कोई आवश्यक रूप से पहचानता है राउंड आर का लीडर \(\ell\)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। दौर के नेता की पहचान करने के बाद (जो वे तब सही ढंग से करते हैं जब नेता ईमानदार हो), चरण-2 सत्यापनकर्ताओं का कार्य प्रारंभिक मानों के रूप में उनका विश्वास करते हुए बीए को निष्पादित करना शुरू करना है नेता का ब्लॉक होना. दरअसल, आवश्यक संचार की मात्रा को कम करने के लिए, एक सत्यापनकर्ता j \(\in\)SV r,2 का उपयोग नहीं करता है, क्योंकि उसका इनपुट मान v′ है बीजान्टिन प्रोटोकॉल के लिए जे, ब्लॉक बी.जे वह वास्तव में \(\ell\)j (उपयोगकर्ता j को नेता मानता है) से प्राप्त हुआ है, लेकिन नेता, लेकिन उस ब्लॉक का hash, अर्थात, v′ जे = एच(बीआई). इस प्रकार, बीए प्रोटोकॉल की समाप्ति पर, सत्यापनकर्ता अंतिम चरण में वांछित राउंड-आर ब्लॉक बीआर की गणना न करें, बल्कि गणना करें (प्रमाणित करें और प्रचारित करें) एच(बीआर)। तदनुसार, चूंकि एच(बीआर) पर पर्याप्त रूप से कई सत्यापनकर्ताओं द्वारा डिजिटल हस्ताक्षर किए गए हैं BA प्रोटोकॉल के अंतिम चरण में, सिस्टम में उपयोगकर्ताओं को एहसास होगा कि H(Br) नए का hash है ब्लॉक. हालाँकि, उन्हें पुनः प्राप्त भी करना होगा (या प्रतीक्षा करनी होगी, क्योंकि निष्पादन काफी अतुल्यकालिक है)। Br को स्वयं ब्लॉक करें, जो प्रोटोकॉल सुनिश्चित करता है कि वास्तव में उपलब्ध है, इससे कोई फर्क नहीं पड़ता कि प्रतिद्वंद्वी क्या है कर सकता हूँ. अतुल्यकालिकता और समय Algorand ' 1 और Algorand' 2 में अतुल्यकालिकता की महत्वपूर्ण डिग्री है। ऐसा इसलिए है क्योंकि प्रतिद्वंद्वी के पास संदेशों की डिलीवरी को शेड्यूल करने में बड़ी छूट है प्रचारित किया गया। इसके अलावा, एक राउंड में चरणों की कुल संख्या सीमित है या नहीं, यह भी है भिन्नता वास्तव में उठाए गए कदमों की संख्या से योगदान करती है। जैसे ही उसे B0 का प्रमाणपत्र पता चलता है। . . , Br−1, एक उपयोगकर्ता i Qr−1 की गणना करता है और काम करना शुरू कर देता है राउंड आर पर, जाँच कर रहा है कि क्या वह एक संभावित नेता है, या राउंड आर के कुछ चरणों में एक सत्यापनकर्ता है। यह मानते हुए कि मुझे चर्चा की गई अतुल्यकालिकता के आलोक में चरणों पर कार्य करना चाहिए, मैं विभिन्न पर भरोसा करता हूं यह सुनिश्चित करने के लिए रणनीतियाँ कि कार्य करने से पहले उसके पास पर्याप्त जानकारी हो। उदाहरण के लिए, वह सत्यापनकर्ताओं से कम से कम एक निश्चित संख्या में संदेश प्राप्त करने की प्रतीक्षा कर सकता है पिछला चरण, या यह सुनिश्चित करने के लिए पर्याप्त समय तक प्रतीक्षा करें कि उसे पर्याप्त रूप से संदेश प्राप्त हों पिछले चरण के कई सत्यापनकर्ता। बीज Qr और लुक-बैक पैरामीटर k याद रखें कि, आदर्श रूप से, Qr की मात्रा होनी चाहिए यादृच्छिक और स्वतंत्र, हालांकि यह उनके लिए पर्याप्त रूप से गैर-हेरफेर योग्य होगा विरोधी. पहली नज़र में, हम H से मेल खाने के लिए Qr−1 चुन सकते हैं भुगतान r−1 , और इस प्रकार से बचें Br−1 में स्पष्ट रूप से Qr−1 निर्दिष्ट करें। हालाँकि, एक प्रारंभिक विश्लेषण से पता चलता है कि दुर्भावनापूर्ण उपयोगकर्ता हो सकते हैं इस चयन तंत्र का लाभ उठाएं।11 कुछ अतिरिक्त प्रयासों से पता चलता है कि असंख्य अन्य 11हम राउंड आर -1 की शुरुआत में हैं। इस प्रकार, Qr−2 = PAY r−2 सार्वजनिक रूप से ज्ञात है, और प्रतिद्वंद्वी निजी तौर पर वह जानता है कि उसके द्वारा नियंत्रित किये जाने वाले संभावित नेता कौन हैं। मान लें कि विरोधी 10% उपयोगकर्ताओं को नियंत्रित करता है, और कि, बहुत अधिक संभावना के साथ, एक दुर्भावनापूर्ण उपयोगकर्ता w राउंड r −1 का संभावित नेता है। यानी मान लीजिये एच एसआईजीडब्ल्यू आर −2, 1, क्यूआर−2 यह इतना छोटा है कि यह बेहद असंभव है कि कोई ईमानदार संभावित नेता वास्तव में होगा राउंड आर −1 का नेता। (याद रखें, चूँकि हम संभावित नेताओं को एक गुप्त क्रिप्टोग्राफ़िक सॉर्टिशन तंत्र के माध्यम से चुनते हैं, प्रतिद्वंद्वी को यह नहीं पता कि ईमानदार संभावित नेता कौन हैं।) इसलिए, प्रतिद्वंद्वी ईर्ष्यालु है वह जो भुगतान सेट PAY ′ चाहता है उसे चुनने की स्थिति, और क्या यह राउंड आर −1 का आधिकारिक भुगतान बन गया है। हालाँकि, वह और अधिक कर सकता है. वह यह भी सुनिश्चित कर सकता है कि, उच्च संभावना के साथ, () उसका कोई दुर्भावनापूर्ण उपयोगकर्ता नेता होगा राउंड आर का भी, ताकि वह स्वतंत्र रूप से चयन कर सके कि PAY r क्या होगा। (और इसी तरह। कम से कम लंबे समय तक, यानी, जब तक ये उच्च-संभावना वाली घटनाएं वास्तव में घटित होती हैं।) गारंटी देने के लिए (), प्रतिद्वंद्वी निम्नानुसार कार्य करता है। भुगतान करने दो'' राउंड आर −1 के लिए प्रतिद्वंद्वी द्वारा पसंद किया जाने वाला भुगतान सेट हो। फिर, वह H(PAY ′) की गणना करता है और जाँचता है कि क्या, कुछ के लिए पहले से ही दुर्भावनापूर्ण प्लेयर z, SIGz(r, 1, H(PAY ′)) विशेष रूप से छोटा है, यानी इतना छोटा कि बहुत अधिक के साथ प्रायिकता z राउंड आर का लीडर होगा। यदि यह मामला है, तो वह डब्ल्यू को अपना उम्मीदवार ब्लॉक चुनने का निर्देश देता हैयह सुनिश्चित करने के लिए पारंपरिक ब्लॉक मात्राओं पर आधारित विकल्पों का प्रतिद्वंद्वी द्वारा आसानी से उपयोग किया जा सकता है दुर्भावनापूर्ण नेता बहुत बार होते हैं। इसके बजाय हम अपने ब्रांड को विशेष रूप से और आगमनात्मक रूप से परिभाषित करते हैं नई मात्रा क्यूआर ताकि यह साबित करने में सक्षम हो सके कि यह प्रतिद्वंद्वी द्वारा गैर-हेरफेर योग्य है। अर्थात्, Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), यदि Br खाली ब्लॉक नहीं है, और Qr \(\triangleq\)H(Qr−1, r) अन्यथा। क्यूआर का यह निर्माण क्यों काम करता है इसका अंतर्ज्ञान इस प्रकार है। एक पल के लिए मान लीजिए कि Qr−1 वास्तव में यादृच्छिक रूप से और स्वतंत्र रूप से चुना गया है। तो फिर, क्या क्यूआर भी ऐसा ही होगा? जब \(\ell\)r ईमानदार है उत्तर (मोटे तौर पर) हाँ है। ऐसा इसलिए है क्योंकि H(SIG\(\ell\)r( \(\cdot\) ), r) : {0, 1}256 −→{0, 1}256 एक यादृच्छिक कार्य है. हालाँकि, जब \(\ell\)r दुर्भावनापूर्ण होता है, तो Qr अब Qr−1 से एकतरफा परिभाषित नहीं होता है और \(\ell\)r. Qr के लिए कम से कम दो अलग-अलग मान हैं। एक Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r) बना रहता है। और दूसरा H(Qr−1, r) है। आइए पहले हम यह तर्क दें कि, जबकि दूसरा विकल्प कुछ हद तक मनमाना है, दूसरा विकल्प बिल्कुल अनिवार्य है। इसका कारण यह है कि एक दुर्भावनापूर्ण \(\ell\)r हमेशा कारण बन सकता है दूसरे चरण के ईमानदार सत्यापनकर्ताओं द्वारा पूरी तरह से अलग-अलग उम्मीदवार ब्लॉक प्राप्त किए जाएंगे।12 एक बार इस मामले में, यह सुनिश्चित करना आसान है कि ब्लॉक अंततः बीए प्रोटोकॉल के माध्यम से सहमत हो गया है राउंड आर डिफ़ॉल्ट होगा, और इस प्रकार इसमें Qr−1 के किसी के डिजिटल हस्ताक्षर शामिल नहीं होंगे। लेकिन सिस्टम को जारी रहना चाहिए, और इसके लिए इसे राउंड आर के लिए एक नेता की आवश्यकता है। यदि यह नेता स्वचालित रूप से है और खुले तौर पर चुना गया, तो विरोधी उसे तुच्छ रूप से भ्रष्ट कर देगा। यदि यह पिछले द्वारा चयनित है Qr−1 उसी प्रक्रिया के माध्यम से, \(\ell\)r फिर से राउंड r+1 में अग्रणी होगा। हम विशेष रूप से प्रस्ताव करते हैं उसी गुप्त क्रिप्टोग्राफ़िक सॉर्टिशन तंत्र का उपयोग करें, लेकिन एक नई क्यू-मात्रा पर लागू करें: अर्थात्, H(Qr−1, r). इस मात्रा को H का आउटपुट मानकर यह गारंटी देता है कि आउटपुट यादृच्छिक है, और H के दूसरे इनपुट के रूप में r को शामिल करके, जबकि H के अन्य सभी उपयोगों में एक या 3+ इनपुट हैं, "गारंटी" देता है कि ऐसा क्यूआर स्वतंत्र रूप से चुना गया है। फिर से, वैकल्पिक क्यूआर की हमारी विशिष्ट पसंद इससे कोई फर्क नहीं पड़ता, फर्क यह है कि \(\ell\)r के पास Qr के लिए दो विकल्प हैं, और इस प्रकार वह अपनी संभावनाओं को दोगुना कर सकता है अगले नेता के रूप में किसी अन्य दुर्भावनापूर्ण उपयोगकर्ता को रखना। दुर्भावनापूर्ण \(\ell\)r को नियंत्रित करने वाले प्रतिद्वंद्वी के लिए Qr के विकल्प और भी अधिक हो सकते हैं। उदाहरण के लिए, मान लें कि x, y और z राउंड आर के तीन दुर्भावनापूर्ण संभावित नेता हैं एच \(\sigma\)r,1 एक्स  < एच \(\sigma\)r,1 य  < एच \(\sigma\)r,1 z  और एच  \(\sigma\)r,1 z  विशेष रूप से छोटा है. यानी इतना छोटा कि इसकी अच्छी संभावना है कि एच  \(\sigma\)r,1 z  है प्रत्येक ईमानदार संभावित नेता की hashed साख से छोटा। फिर, x से उसे छिपाने के लिए कहकर क्रेडेंशियल, प्रतिद्वंद्वी के पास वाई राउंड आर -1 का नेता बनने का अच्छा मौका है। यह तात्पर्य यह है कि उसके पास Qr के लिए एक और विकल्प है: अर्थात्, SIGy Qr−1 . इसी प्रकार, प्रतिद्वंद्वी भी ऐसा कर सकता है x और y दोनों से उनकी साख वापस लेने के लिए कहें, ताकि z राउंड r −1 का लीडर बन जाए और Qr के लिए एक और विकल्प प्राप्त कर रहा है: अर्थात्, SIGz Qr−1 . बेशक, हालांकि, इनमें से प्रत्येक और अन्य विकल्पों के विफल होने की एक गैर-शून्य संभावना है, क्योंकि प्रतिद्वंद्वी ईमानदार संभावित उपयोगकर्ताओं के डिजिटल हस्ताक्षरों के hash का अनुमान नहीं लगा सकता। ब्र−1 मैं = (r −1, PAY ′, H(Br−2)। अन्यथा, उसके पास दो अन्य दुर्भावनापूर्ण उपयोगकर्ता x और y हैं जो नया भुगतान उत्पन्न करते रहते हैं \(\wp\)′, एक से दूसरे तक, जब तक, कुछ दुर्भावनापूर्ण उपयोगकर्ता z के लिए (या यहां तक कि कुछ निश्चित उपयोगकर्ता z के लिए) H (SIGz (PAY ′ \(\cup\){\(\wp\)})) है विशेष रूप से छोटा भी. यह प्रयोग बहुत जल्दी बंद हो जाएगा. और जब ऐसा होता है तो विरोधी प्रस्ताव देने के लिए कहता है उम्मीदवार ब्लॉक Br−1 मैं = (r −1, PAY ′ \(\cup\){\(\wp\)}, H(Br−2). 12उदाहरण के लिए, इसे सरल (लेकिन चरम) रखने के लिए, "जब दूसरे चरण का समय समाप्त होने वाला हो", \(\ell\)r कर सकता है प्रत्येक उपयोगकर्ता को सीधे एक अलग उम्मीदवार ब्लॉक Bi ईमेल करें। इस तरह, चरण-2 सत्यापनकर्ता कोई भी हों, वे पूरी तरह से अलग-अलग ब्लॉक प्राप्त होंगे।एक सावधानीपूर्वक, मार्कोव-श्रृंखला-जैसे विश्लेषण से पता चलता है कि, इससे कोई फर्क नहीं पड़ता कि प्रतिद्वंद्वी कौन सा विकल्प चुनता है राउंड आर −1 पर बनाने के लिए, जब तक वह सिस्टम में नए उपयोगकर्ताओं को शामिल नहीं कर सकता, वह कम नहीं कर सकता एक ईमानदार उपयोगकर्ता के राउंड आर + 40 का लीडर बनने की संभावना एच से काफी नीचे है। यही कारण है हम मांग करते हैं कि राउंड आर के संभावित नेता राउंड आर −k में पहले से मौजूद उपयोगकर्ता हों। यह सुनिश्चित करने का एक तरीका है कि, राउंड r -k पर, प्रतिद्वंद्वी इस संभावना को बहुत अधिक नहीं बदल सकता है कि एक ईमानदार उपयोगकर्ता राउंड आर का नेता बन जाता है। वास्तव में, इससे कोई फर्क नहीं पड़ता कि वह कौन से उपयोगकर्ता जोड़ सकता है राउंड आर −के से आर तक सिस्टम में, वे संभावित नेता बनने के लिए अयोग्य हैं (और एक फोर्टियोरी) नेता) राउंड आर के। इस प्रकार लुक-बैक पैरामीटर k अंततः एक सुरक्षा पैरामीटर है। (हालांकि, जैसा कि हम धारा 7 में देखेंगे, यह एक प्रकार का "सुविधा पैरामीटर" भी हो सकता है।) क्षणिक कुंजियाँ हालाँकि हमारे प्रोटोकॉल का निष्पादन एक कांटा उत्पन्न नहीं कर सकता है, सिवाय इसके नगण्य संभावना, प्रतिद्वंद्वी वैध के बाद, आरटी ब्लॉक पर एक कांटा उत्पन्न कर सकता है ब्लॉक आर उत्पन्न हो गया है। मोटे तौर पर, एक बार Br उत्पन्न हो जाने के बाद, प्रतिद्वंद्वी को यह पता चल जाता है कि प्रत्येक चरण के सत्यापनकर्ता कौन हैं राउंड आर के हैं. इस प्रकार, वह उन सभी को भ्रष्ट कर सकता है और उन्हें एक नए ब्लॉक को प्रमाणित करने के लिए बाध्य कर सकता है च ब्र. चूँकि यह नकली ब्लॉक केवल वैध ब्लॉक के बाद ही प्रचारित किया जा सकता है, जो उपयोगकर्ता रहे हैं ध्यान देने से मूर्ख नहीं बनाया जा सकेगा।13 फिर भी, एफ Br वाक्यात्मक दृष्टि से सही होगा और हम बनने से रोकना चाहते हैं. हम एक नये नियम के जरिये ऐसा करते हैं. अनिवार्य रूप से, सत्यापनकर्ता के सदस्य एक चरण के एसवी आर, एस सेट करते हैं राउंड आर के लिए अल्पकालिक सार्वजनिक कुंजी पीकेआर, एस का उपयोग करें मैं उनके संदेशों पर डिजिटल हस्ताक्षर करने के लिए। ये कुंजियाँ केवल एकल उपयोग के लिए हैं और उनसे संबंधित गुप्त कुंजियाँ skr,s हैं मैं एक बार उपयोग करने के बाद नष्ट हो जाते हैं। इस तरह, यदि कोई सत्यापनकर्ता है बाद में भ्रष्ट हो जाने पर, विरोधी उसे किसी अन्य चीज़ पर हस्ताक्षर करने के लिए बाध्य नहीं कर सकता जिस पर उसने मूल रूप से हस्ताक्षर नहीं किए थे। स्वाभाविक रूप से, हमें यह सुनिश्चित करना चाहिए कि प्रतिद्वंद्वी के लिए नई कुंजी जी की गणना करना असंभव है पीआर,एस मैं और एक ईमानदार उपयोगकर्ता को विश्वास दिलाएं कि यह चरण एस में उपयोग करने के लिए सत्यापनकर्ता आई \(\in\)एसवी आर,एस की सही अल्पकालिक कुंजी है। 4.2 नोटेशन, धारणाओं और पैरामीटर्स का सामान्य सारांश संकेतन • आर \(\geq\)0: वर्तमान राउंड संख्या। • s \(\geq\)1: राउंड आर में वर्तमान चरण संख्या। • बीआर: राउंड आर में उत्पन्न ब्लॉक। • पीकेआर: राउंड आर -1 के अंत तक और राउंड आर की शुरुआत में सार्वजनिक कुंजियों का सेट। • सीनियर: राउंड आर −1 के अंत तक और राउंड आर.14 की शुरुआत में सिस्टम की स्थिति • PAY r: Br में निहित भुगतान। • \(\ell\)r: राउंड-आर लीडर। \(\ell\)r राउंड आर का पेसेट PAY r चुनता है (और अगला Qr निर्धारित करता है)। • क्यूआर: राउंड आर का बीज, एक मात्रा (यानी, बाइनरी स्ट्रिंग) जो राउंड आर के अंत में उत्पन्न होती है और इसका उपयोग राउंड आर + 1 के लिए सत्यापनकर्ताओं को चुनने के लिए किया जाता है। क्यूआर ब्लॉक में भुगतान सेट से स्वतंत्र है और \(\ell\)r द्वारा हेरफेर नहीं किया जा सकता। 13 एक प्रमुख टीवी नेटवर्क के समाचार एंकर को भ्रष्ट करने और आज एक न्यूज़रील का निर्माण और प्रसारण करने पर विचार करें पिछले राष्ट्रपति चुनाव में सचिव क्लिंटन को जीतते हुए दिखाया गया है। हममें से अधिकांश लोग इसे एक धोखा के रूप में पहचानेंगे। लेकिन कोमा से बाहर आने वाले किसी व्यक्ति को मूर्ख बनाया जा सकता है। 14 ऐसी प्रणाली में जो समकालिक नहीं है, "राउंड आर -1 का अंत" और "राउंड आर की शुरुआत" की धारणा सावधानीपूर्वक परिभाषित करने की आवश्यकता है। गणितीय रूप से, PKr और Sr की गणना प्रारंभिक स्थिति S0 और ब्लॉक से की जाती है बी1, . . . , ब्र−1.• एसवी आर,एस: राउंड आर के चरण एस के लिए चुने गए सत्यापनकर्ताओं का सेट। • एसवी आर: राउंड आर, एसवी आर = \(\cup\)s\(\geq\)1SV आर, एस के लिए चुने गए सत्यापनकर्ताओं का सेट। • एमएसवी आर,एस और एचएसवी आर,एस: क्रमशः, दुर्भावनापूर्ण सत्यापनकर्ताओं का सेट और ईमानदार सत्यापनकर्ताओं का सेट एसवी आर,एस में। एमएसवी आर,एस \(\cup\)एचएसवी आर,एस = एसवी आर,एस और एमएसवी आर,एस ∩एचएसवी आर,एस = \(\emptyset\). • n1 \(\in\)Z+ और n \(\in\)Z+: क्रमशः, प्रत्येक SV r,1 में संभावित नेताओं की अपेक्षित संख्या, और s > 1 के लिए प्रत्येक SV r,s में सत्यापनकर्ताओं की अपेक्षित संख्या। ध्यान दें कि n1 << n, चूँकि हमें SV r,1 में कम से कम एक ईमानदार ईमानदार सदस्य की आवश्यकता है, लेकिन कम से कम एस > 1 के लिए प्रत्येक एसवी आर, एस में अधिकांश ईमानदार सदस्य। • h \(\in\)(0, 1): 2/3 से बड़ा स्थिरांक। h सिस्टम में ईमानदारी का अनुपात है। अर्थात प्रत्येक पीकेआर में उपयोग की गई धारणा के आधार पर ईमानदार उपयोगकर्ताओं या ईमानदार धन का अंश है कम से कम एच. • एच: एक क्रिप्टोग्राफ़िक hash फ़ंक्शन, जिसे यादृच्छिक oracle के रूप में तैयार किया गया है। • \(\bot\): H के आउटपुट के समान लंबाई की एक विशेष स्ट्रिंग। • एफ \(\in\)(0, 1): अनुमत त्रुटि संभावना निर्दिष्ट करने वाला पैरामीटर। एक प्रायिकता \(\leq\)F है "नगण्य" माना जाता है, और एक संभावना \(\geq\)1 −F को "भारी" माना जाता है। • ph \(\in\)(0, 1): संभावना है कि एक राउंड r, \(\ell\)r का नेता ईमानदार है। आदर्शतः ph = h. साथ प्रतिद्वंद्वी के अस्तित्व, पीएच का मान विश्लेषण में निर्धारित किया जाएगा। • k \(\in\)Z+: लुक-बैक पैरामीटर। यानी, राउंड आर −k वह जगह है जहां राउंड आर के लिए सत्यापनकर्ता हैं से चुना गया - अर्थात्, SV r \(\subseteq\)PKr−k.15 • p1 \(\in\)(0, 1): राउंड r के पहले चरण के लिए, राउंड r −k में एक उपयोगकर्ता को SV r,1 में चुना जाता है संभाव्यता p1 \(\triangleq\) n1 |पी क्र−क|. • p \(\in\)(0, 1): राउंड r के प्रत्येक चरण s > 1 के लिए, राउंड r −k में एक उपयोगकर्ता को SV r,s में चुना जाता है। संभाव्यता पी \(\triangleq\) एन |पी क्र−क|. • CERT r: ब्र के लिए प्रमाणपत्र। यह उचित सत्यापनकर्ताओं से H(Br) के TH हस्ताक्षरों का एक सेट है गोल आर. • Br \(\triangleq\)(Br, CERT r) एक सिद्ध ब्लॉक है। एक उपयोगकर्ता जिसे मैं Br जानता हूं यदि उसके पास सिद्ध ब्लॉक के दोनों भाग हैं (और सफलतापूर्वक सत्यापित हैं)। ध्यान दें कि अलग-अलग उपयोगकर्ताओं द्वारा देखा गया CERT अलग-अलग हो सकता है। • τ आर i : वह (स्थानीय) समय जब मैं एक उपयोगकर्ता को जानता हूं Br. Algorand प्रोटोकॉल में प्रत्येक उपयोगकर्ता का अपना होता है अपनी घड़ी. विभिन्न उपयोगकर्ताओं की घड़ियों को सिंक्रनाइज़ करने की आवश्यकता नहीं है, लेकिन उनकी गति समान होनी चाहिए। केवल विश्लेषण के उद्देश्य से, हम एक संदर्भ घड़ी पर विचार करते हैं और खिलाड़ियों की क्षमता को मापते हैं इसके संबंध में संबंधित समय. • \(\alpha\)r,s मैं और \(\beta\)r,s i: क्रमशः (स्थानीय) समय जब उपयोगकर्ता i अपने चरण का निष्पादन प्रारंभ और समाप्त करता है गोल आर. • Λ और \(\lambda\): अनिवार्य रूप से, क्रमशः, चरण 1 और को निष्पादित करने के लिए आवश्यक समय की ऊपरी सीमा Algorand प्रोटोकॉल के किसी अन्य चरण के लिए आवश्यक समय। पैरामीटर Λ एकल 1एमबी ब्लॉक को प्रचारित करने के समय को ऊपरी सीमा में रखता है। (हमारे नोटेशन में, Λ = \(\lambda\) \(\rho\),1MB. हमारे अंकन को याद करते हुए, हमने सरलता के लिए \(\rho\) = 1 निर्धारित किया है, और वह ब्लॉक हैं अधिकतम 1एमबी-लंबा चुना गया, हमारे पास Λ = \(\lambda\)1,1,1एमबी है।) 15सख्ती से कहें तो, "r −k" "max{0, r −k}" होना चाहिए।पैरामीटर \(\lambda\) चरण s > 1 में प्रति सत्यापनकर्ता एक छोटे संदेश को प्रसारित करने के समय को ऊपरी सीमा में रखता है। (Bitcoin की तरह, 32B कुंजियों के साथ अण्डाकार वक्र हस्ताक्षरों का उपयोग करके, एक सत्यापनकर्ता संदेश 200B लंबा होता है। इस प्रकार, हमारे अंकन में, \(\lambda\) = \(\lambda\)n,\(\rho\),200B.) हम मानते हैं कि Λ = O(\(\lambda\)). धारणाएँ • सत्यापनकर्ता चयन. प्रत्येक राउंड r और चरण s > 1 के लिए, SV r,s \(\triangleq\){i \(\in\)PKr−k : .H(SIGi(r, s, Qr−1)) \(\leq\)p}। प्रत्येक उपयोगकर्ता i \(\in\)PKr−k निजी तौर पर अपनी दीर्घकालिक कुंजी का उपयोग करके अपने हस्ताक्षर की गणना करता है और निर्णय लेता है कि क्या i \(\in\)SV r,s या नहीं। यदि i \(\in\)SV r,s, तो SIGi(r, s, Qr−1) i's (r, s)-क्रेडेंशियल है, जिसे संक्षिप्त रूप से दर्शाया गया है \(\sigma\)r,s द्वारा मैं . राउंड r, SV r,1 और \(\sigma\)r,1 के पहले चरण के लिए मैं समान रूप से परिभाषित किए गए हैं, जिसमें p को p1 द्वारा प्रतिस्थापित किया गया है। द एसवी आर,1 में सत्यापनकर्ता संभावित नेता हैं। • नेता चयन. उपयोगकर्ता i \(\in\)SV r,1 राउंड r का लीडर है, जिसे \(\ell\)r द्वारा दर्शाया जाता है, यदि H(\(\sigma\)r,1) मैं ) \(\leq\)H(\(\sigma\)r,1 j ) सभी संभावनाओं के लिए नेता जे \(\in\)एसवी आर,1. जब भी दो खिलाड़ियों के hashes की तुलना की जाती है, तो असंभावित स्थिति में संबंधों की घटना, प्रोटोकॉल हमेशा दीर्घकालिक सार्वजनिक के अनुसार संबंधों को तोड़ता है संभावित नेताओं की चाबियाँ। परिभाषा के अनुसार, प्लेयर \(\ell\)r के क्रेडेंशियल का hash मान भी सभी उपयोगकर्ताओं के बीच सबसे छोटा है पीकेआर−के. ध्यान दें कि एक संभावित नेता निजी तौर पर यह तय नहीं कर सकता कि वह नेता है या नहीं, अन्य संभावित नेताओं की साख देखे बिना। चूंकि hash मान यादृच्छिक रूप से एक समान होते हैं, जब SV r,1 गैर-रिक्त होता है, तो \(\ell\)r हमेशा मौजूद होता है और होता है संभाव्यता के साथ ईमानदार कम से कम ज. पैरामीटर n1 इतना बड़ा है कि यह सुनिश्चित किया जा सके कि प्रत्येक एसवी आर,1 अत्यधिक संभावना के साथ गैर-रिक्त है। • ब्लॉक संरचना. एक गैर-रिक्त ब्लॉक Br = (r, PAY r, SIG\(\ell\)r(Qr−1), H(Br−1)) के रूप का होता है, और एक खाली ब्लॉक ब्र रूप का है ǫ = (r, \(\emptyset\), Qr−1, H(Br−1)). ध्यान दें कि यदि कोई भुगतान नहीं होता है, तो एक गैर-रिक्त ब्लॉक में अभी भी एक खाली पेसेट PAY r हो सकता है यह दौर या यदि नेता दुर्भावनापूर्ण है। हालाँकि, एक गैर-रिक्त ब्लॉक का तात्पर्य है कि की पहचान \(\ell\)r, उसकी साख \(\sigma\)r,1 \(\ell\)r और SIG\(\ell\)r(Qr−1) सभी का समय पर खुलासा किया गया है। प्रोटोकॉल गारंटी देता है कि, यदि नेता ईमानदार है, तो अत्यधिक संभावना के साथ ब्लॉक खाली नहीं होगा। • बीज Qr. यदि Br गैर-रिक्त है, तो Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), अन्यथा Qr \(\triangleq\)H(Qr−1, r)। पैरामीटर्स • विभिन्न मापदंडों के बीच संबंध। - राउंड आर के सत्यापनकर्ताओं और संभावित नेताओं को पीकेआर−के में उपयोगकर्ताओं से चुना जाता है, जहां k को चुना गया है ताकि प्रतिद्वंद्वी r -k -1 के दौर में Qr−1 की भविष्यवाणी न कर सके एफ से बेहतर संभावना के साथ: अन्यथा, वह दुर्भावनापूर्ण उपयोगकर्ताओं को पेश करने में सक्षम होगा राउंड आर −के के लिए, ये सभी राउंड आर में सफल होने वाले संभावित नेता/सत्यापनकर्ता होंगे

कुछ कदमों के लिए एसवी आर,एस में एक दुर्भावनापूर्ण नेता या दुर्भावनापूर्ण बहुमत होना वांछित है उसे. - प्रत्येक राउंड r के चरण 1 के लिए, n1 को चुना जाता है ताकि अत्यधिक संभावना के साथ, SV r,1 ̸= \(\emptyset\)। • महत्वपूर्ण मापदंडों के उदाहरण विकल्प। — H के आउटपुट 256-बिट लंबे हैं। - एच = 80%, एन1 = 35। - Λ = 1 मिनट और \(\lambda\) = 10 सेकंड। • प्रोटोकॉल का आरंभीकरण. प्रोटोकॉल समय 0 पर r = 0 के साथ शुरू होता है। चूँकि "B−1" या "CERT −1" मौजूद नहीं है, वाक्यविन्यास की दृष्टि से B−1 एक सार्वजनिक पैरामीटर है जिसका तीसरा घटक Q−1 और सभी उपयोगकर्ताओं को निर्दिष्ट करता है समय 0 पर B−1 जानें।

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

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

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

Algorand '

1 इस अनुभाग में, हम निम्नलिखित धारणा के तहत काम करते हुए Algorand ' का एक संस्करण बनाते हैं। अधिकांश उपयोगकर्ता ईमानदार हैं। धारणा: प्रत्येक पीकेआर में 2/3 से अधिक उपयोगकर्ता ईमानदार हैं। धारा 8 में, हम दिखाते हैं कि उपरोक्त धारणा को वांछित ईमानदार बहुमत से कैसे बदला जाए धन संबंधी धारणा. 5.1 अतिरिक्त सूचनाएँ और पैरामीटर्स संकेतन • m \(\in\)Z+: बाइनरी बीए प्रोटोकॉल में चरणों की अधिकतम संख्या, 3 का गुणक। • एलआर \(\leq\)एम/3: 1 देखने के लिए आवश्यक बर्नौली परीक्षणों की संख्या का प्रतिनिधित्व करने वाला एक यादृच्छिक चर, जब प्रत्येक परीक्षण संभाव्यता पीएच के साथ 1 है 2 और अधिकतम एम/3 परीक्षण हैं। यदि सभी परीक्षण विफल हो जाएं तो एलआर \(\triangleq\)एम/3. Lr का उपयोग ब्लॉक Br उत्पन्न करने के लिए आवश्यक समय को ऊपरी सीमा में करने के लिए किया जाएगा। • tH = 2n 3 + 1: प्रोटोकॉल की अंतिम शर्तों में आवश्यक हस्ताक्षरों की संख्या। • CERT r: ब्र के लिए प्रमाणपत्र। यह उचित सत्यापनकर्ताओं से H(Br) के TH हस्ताक्षरों का एक सेट है गोल आर. पैरामीटर्स • विभिन्न मापदंडों के बीच संबंध। - राउंड आर के प्रत्येक चरण s > 1 के लिए, n को चुना गया है ताकि, अत्यधिक संभावना के साथ, |एचएसवी आर,एस| > 2|एमएसवी आर,एस| और |एचएसवी आर,एस| + 4|एमएसवी आर,एस| <2एन. h का मान 1 के जितना करीब होगा, n उतना ही छोटा होना चाहिए। विशेष रूप से, हम (वेरिएंट) का उपयोग करते हैं का) चेर्नोफ़िबाउंड यह सुनिश्चित करने के लिए कि वांछित स्थितियाँ अत्यधिक संभावना के साथ बनी रहें। — m को इस प्रकार चुना गया है कि Lr < m/3 अत्यधिक संभावना के साथ। • महत्वपूर्ण मापदंडों के उदाहरण विकल्प। — एफ = 10−12. - n \(\approx\)1500, k = 40 और m = 180।5.2 Algorand में अल्पकालिक कुंजियाँ लागू करना 1 जैसा कि पहले ही उल्लेख किया गया है, हम चाहते हैं कि एक सत्यापनकर्ता i\(\in\)SV r,s डिजिटल रूप से अपने संदेश पर हस्ताक्षर करे mr,s मैं कदम का राउंड आर में एस, एक अल्पकालिक सार्वजनिक कुंजी पीकेआर, एस के सापेक्ष मैं, एक क्षणिक गुप्त कुंजी skr,s का उपयोग कर रहा हूँ मैं वह वह उपयोग के बाद तुरंत नष्ट कर देता है। इस प्रकार हमें यह सुनिश्चित करने के लिए एक कुशल विधि की आवश्यकता है कि प्रत्येक उपयोगकर्ता ऐसा कर सके सत्यापित करें कि pkr,s मैं यह वास्तव में श्रीमान के हस्ताक्षर को सत्यापित करने के लिए उपयोग की जाने वाली कुंजी है मैं . हम ऐसा (सर्वोत्तम से) करके करते हैं हमारे ज्ञान का) पहचान-आधारित हस्ताक्षर योजनाओं का नया उपयोग। उच्च स्तर पर, ऐसी योजना में, एक केंद्रीय प्राधिकरण ए एक सार्वजनिक मास्टर कुंजी, पीएमके, उत्पन्न करता है। और संबंधित गुप्त मास्टर कुंजी, एसएमके। एक खिलाड़ी यू की पहचान, यू को देखते हुए, ए गणना करता है, एसएमके के माध्यम से, सार्वजनिक कुंजी यू के सापेक्ष एक गुप्त हस्ताक्षर कुंजी एसकेयू, और निजी तौर पर एसकेयू देता है यू. (वास्तव में, एक पहचान-आधारित डिजिटल हस्ताक्षर योजना में, उपयोगकर्ता यू की सार्वजनिक कुंजी यू ही है!) इस तरह, यदि A उन उपयोगकर्ताओं की गुप्त कुंजियों की गणना करने के बाद SMK को नष्ट कर देता है जिन्हें वह सक्षम करना चाहता है डिजिटल हस्ताक्षर तैयार करता है, और कोई गणना की गई गुप्त कुंजी नहीं रखता है, तो यू एकमात्र ऐसा व्यक्ति है जो सार्वजनिक कुंजी यू के सापेक्ष संदेशों पर डिजिटल रूप से हस्ताक्षर कर सकते हैं। इस प्रकार, जो कोई भी "यू का नाम" जानता है, यू की सार्वजनिक कुंजी को स्वचालित रूप से जानता है, और इस प्रकार यू के हस्ताक्षरों को सत्यापित कर सकता है (संभवतः इसका उपयोग भी कर सकता है)। सार्वजनिक मास्टर कुंजी पीएमके)। हमारे एप्लिकेशन में, प्राधिकरण A उपयोगकर्ता i है, और सभी संभावित उपयोगकर्ताओं का सेट U से मेल खाता है राउंड-स्टेप जोड़ी (आर, एस) में -कहें- एस = {आई}\(\times\){आर',। . . , r′ +106}\(\times\){1, . . . , m+3}, जहां r′ दिया गया है राउंड, और एम + 3 एक राउंड के भीतर होने वाले चरणों की संख्या के ऊपरी हिस्से में। यह रास्ता, पीकेआर, एस मैं \(\triangleq\)(i, r, s), ताकि हर कोई i का हस्ताक्षर देख सके SIGr,s पीकेआर, एस मैं (श्रीमान, एस मैं ) जबरदस्त तरीके से कर सकता हूं संभाव्यता, तुरंत इसे r′ के बाद पहले मिलियन राउंड r के लिए सत्यापित करें। दूसरे शब्दों में, मैं सबसे पहले पीएमके और एसएमके उत्पन्न करता हूं। फिर, वह प्रचारित करते हैं कि पीएमके मेरा मालिक है किसी भी दौर r \(\in\)[r′, r′ + 106] के लिए सार्वजनिक कुंजी, और गुप्त उत्पादन और भंडारण के लिए SMK का उपयोग करता है कुंजी एस.के.आर.,एस मैं प्रत्येक त्रिक (i, r, s) \(\in\)S के लिए। ऐसा करने पर, वह एसएमके को नष्ट कर देता है। यदि वह यह निश्चित कर ले कि वह ऐसा नहीं है एसवी आर,एस का हिस्सा, तो मैं एसकेआर,एस छोड़ सकता हूं मैं अकेले (क्योंकि प्रोटोकॉल के लिए आवश्यक नहीं है कि वह प्रमाणीकरण करे राउंड आर के चरण एस में कोई भी संदेश)। अन्यथा, मैं सबसे पहले skr,s का उपयोग करता हूँ मैं अपने संदेश पर डिजिटल हस्ताक्षर करने के लिए श्रीमान, एस मैं , और फिर skr,s को नष्ट कर देता है मैं . ध्यान दें कि जब वह पहली बार सिस्टम में प्रवेश करेगा तो मैं उसकी पहली सार्वजनिक मास्टर कुंजी का प्रचार कर सकता हूँ। अर्थात्, वही भुगतान \(\wp\) जो i को सिस्टम में लाता है (एक राउंड r' पर या r' के करीब एक राउंड पर), यह भी हो सकता है मेरे अनुरोध पर, निर्दिष्ट करें कि किसी भी राउंड r \(\in\)[r′, r′ + 106] के लिए i की सार्वजनिक मास्टर कुंजी PMK है - उदाहरण के लिए, द्वारा फॉर्म की एक जोड़ी सहित (पीएमके, [आर', आर' + 106])। यह भी ध्यान दें, चूँकि m + 3 एक चक्कर में चरणों की अधिकतम संख्या है, इसलिए इसे एक चक्कर माना जाता है एक मिनट लगता है, इस प्रकार उत्पादित क्षणिक कुंजियों का भंडार लगभग दो वर्षों तक चलेगा। उसी समय समय के साथ, इन अल्पकालिक गुप्त कुंजियों को तैयार करने में मुझे बहुत अधिक समय नहीं लगेगा। अण्डाकार-वक्र आधारित का उपयोग करना 32B कुंजियों वाला सिस्टम, प्रत्येक गुप्त कुंजी की गणना कुछ माइक्रोसेकंड में की जाती है। इस प्रकार, यदि m + 3 = 180, तब सभी 180M गुप्त कुंजियों की गणना एक घंटे से भी कम समय में की जा सकती है। जब वर्तमान दौर अगले मिलियन राउंड को संभालने के लिए r' + 106 के करीब पहुंच रहा हो, i एक नई (PMK′, SMK′) जोड़ी बनाता है, और सूचित करता है कि उसकी क्षणिक कुंजियों का अगला भंडार क्या है —उदाहरण के लिए—SIGi(PMK′, [r′ + 106 + 1, r′ + 2 \(\cdot\) 106 + 1]) होने पर एक नया ब्लॉक दर्ज करें, या तो a के रूप में अलग "लेन-देन" या कुछ अतिरिक्त जानकारी के रूप में जो भुगतान का हिस्सा है। ऐसा करने से, मैं सभी को सूचित करता हूं कि उन्हें अगले में मेरे अल्पकालिक हस्ताक्षरों को सत्यापित करने के लिए पीएमके' का उपयोग करना चाहिए लाख चक्कर. और इसी तरह। (ध्यान दें कि, इस बुनियादी दृष्टिकोण का पालन करते हुए, अल्पकालिक कुंजियों को लागू करने के अन्य तरीके बिना पहचान-आधारित हस्ताक्षरों का उपयोग निश्चित रूप से संभव है। उदाहरण के लिए, Merkle trees.16 के माध्यम से) 16 इस पद्धति में, मैं एक सार्वजनिक-गुप्त कुंजी जोड़ी (pkr,s) उत्पन्न करता हूं मैं , एसकेआर,एस मैं ) प्रत्येक राउंड-स्टेप जोड़ी (आर, एस) के लिए - मान लीजिए-अल्पकालिक कुंजियों को लागू करने के अन्य तरीके निश्चित रूप से संभव हैं - उदाहरण के लिए, Merkle trees के माध्यम से। 5.3 Algorand के चरणों का मिलान 1 BA⋆ वालों के साथ जैसा कि हमने कहा, Algorand में एक राउंड 1 में अधिकतम m + 3 चरण हैं। चरण 1. इस चरण में, प्रत्येक संभावित नेता अपने उम्मीदवार ब्लॉक ब्र की गणना और प्रचार करता है मैं , अपनी स्वयं की साख के साथ, \(\sigma\)r,1 मैं . याद रखें कि यह क्रेडेंशियल स्पष्ट रूप से i की पहचान करता है। ऐसा इसलिए है, क्योंकि \(\sigma\)r,1 मैं \(\triangleq\)SIGi(r, 1, Qr−1). संभावित सत्यापनकर्ता, अपने संदेश के भाग के रूप में, H(Br) के अपने उचित डिजिटल हस्ताक्षर का भी प्रचार करता है मैं ). किसी भुगतान या क्रेडेंशियल से संबंधित नहीं, मेरा यह हस्ताक्षर उसकी अल्पकालिक जनता से संबंधित है कुंजी पीकेआर,1 i : अर्थात, वह sigpkr,1 का प्रचार करता है मैं (एच(ब्र मैं )). हमारे सम्मेलनों को देखते हुए, ब्र. का प्रचार करने के बजाय मैं और sigpkr,1 मैं (एच(ब्र मैं )), वह कर सकता था प्रचारित SIGpkr,1 मैं (एच(ब्र मैं )). हालाँकि, हमारे विश्लेषण में हमें स्पष्ट पहुंच की आवश्यकता है sigpkr,1 मैं (एच(ब्र मैं )). चरण 2. इस चरण में, प्रत्येक सत्यापनकर्ता i \(\ell\)r सेट करता है मैं संभावित नेता हूं जिसकी hashed साख है सबसे छोटा है, और ब्र i को \(\ell\)r द्वारा प्रस्तावित ब्लॉक होना चाहिए मैं . चूंकि, दक्षता के लिए, हम मैं सीधे Br के बजाय H(Br) पर सहमत होना चाहता हूँ, मैं उसके संदेश का प्रचार करता हूँ प्रारंभिक मान v′ के साथ BA⋆ के पहले चरण में प्रचारित किया गया मैं = एच(ब्र मैं ). अर्थात वह v′ का प्रचार करता है मैं, बेशक, क्षणिक रूप से इस पर हस्ताक्षर करने के बाद। (अर्थात्, सही क्षणिक के सापेक्ष इस पर हस्ताक्षर करने के बाद सार्वजनिक कुंजी, जो इस मामले में पीकेआर,2 है मैं .) निःसंदेह, मैं भी अपना परिचय पत्र प्रसारित करता हूँ। चूँकि BA⋆ का पहला चरण ग्रेडेड सर्वसम्मति प्रोटोकॉल GC का पहला चरण शामिल है, चरण Algorand ′ का 2 GC के पहले चरण से मेल खाता है। चरण 3. इस चरण में, प्रत्येक सत्यापनकर्ता i \(\in\)SV r,2 BA⋆ के दूसरे चरण को निष्पादित करता है। यानी वह भेजता है यही संदेश उसने जीसी के दूसरे चरण में भी भेजा होगा। फिर, मेरा संदेश क्षणिक है हस्ताक्षरित और मेरे क्रेडेंशियल के साथ। (अब से, हम यह कहना छोड़ देंगे कि एक सत्यापनकर्ता क्षणिक रूप से अपने संदेश पर हस्ताक्षर करता है और अपनी साख का प्रचार भी करता है।) चरण 4. इस चरण में, प्रत्येक सत्यापनकर्ता i \(\in\)SV r,4 GC, (vi, gi) के आउटपुट की गणना करता है, और क्षणिक रूप से हस्ताक्षर करता है और वही संदेश भेजता है जो उसने BA⋆ के तीसरे चरण में भेजा होगा, अर्थात BBA⋆ का पहला चरण, प्रारंभिक बिट 0 के साथ यदि gi = 2, और 1 अन्यथा। चरण s = 5, . . . , एम + 2। ऐसा कदम, यदि कभी पहुंचा है, तो बीए⋆ के चरण एस −1 से मेल खाता है, और इस प्रकार BBA⋆ का चरण s −3। चूँकि हमारा प्रसार मॉडल पर्याप्त रूप से अतुल्यकालिक है, इसलिए हमें संभावना को ध्यान में रखना चाहिए कि, ऐसे चरण s के बीच में, एक सत्यापनकर्ता i \(\in\)SV r,s तक उसे साबित करने वाली जानकारी पहुँच जाती है वह ब्लॉक Br पहले ही चुना जा चुका है। इस मामले में, मैं राउंड आर के अपने निष्पादन को रोक देता हूं Algorand ', और अपने राउंड-(आर + 1) निर्देशों को निष्पादित करना शुरू कर देता है। {आर', । . . , आर' + 106} \(\times\) {1, . . . , एम + 3}. फिर वह इन सार्वजनिक कुंजियों को विहित तरीके से ऑर्डर करता है, jth सार्वजनिक को संग्रहीत करता है Merkle tree के jth पत्ते में कुंजी, और मूल मान Ri की गणना करता है, जिसे वह प्रचारित करता है। जब वह हस्ताक्षर करना चाहे कुंजी पीकेआर,एस से संबंधित एक संदेश मैं , मैं न केवल वास्तविक हस्ताक्षर प्रदान करता हूं, बल्कि पीकेआर,एस के लिए प्रमाणीकरण पथ भी प्रदान करता हूं मैं री के सापेक्ष. ध्यान दें कि यह प्रमाणीकरण पथ यह भी सिद्ध करता है कि pkr,s मैं जेवें पत्ते में संग्रहित है। शेष विवरण आसानी से भरा जा सकता है।तदनुसार, एक सत्यापनकर्ता के निर्देश i \(\in\)SV r,s, संबंधित निर्देशों के अतिरिक्त BBA⋆ के चरण s −3 में, यह जांचना शामिल है कि क्या BBA⋆ का निष्पादन पहले रुका हुआ है कदम एस'. चूंकि बीबीए केवल कॉइन-फिक्स्ड-टू-0 चरण या कॉइन-फिक्स्ड-टू-1 चरण में ही रुक सकता है, निर्देश भेद करते हैं कि क्या ए (अंतिम स्थिति 0): एस′ −2 ≡0 मॉड 3, या बी (अंतिम शर्त 1): एस′ −2 ≡1 मॉड 3। वास्तव में, ए के मामले में, ब्लॉक बी गैर-रिक्त है, और इस प्रकार अतिरिक्त निर्देश आवश्यक हैं सुनिश्चित करें कि मैं उचित प्रमाणपत्र सीईआरटी आर के साथ, बीआर का उचित ढंग से पुनर्निर्माण करता हूं। मामले बी में, ब्लॉक Br खाली है, और इस प्रकार मुझे Br = Br सेट करने का निर्देश दिया गया है \(\varepsilon\) = (आर, \(\emptyset\), एच(क्यूआर−1, आर), एच(बीआर−1)), और CERT r की गणना करने के लिए। यदि, चरणों के निष्पादन के दौरान, मुझे कोई सबूत नहीं दिखता कि ब्लॉक Br पहले से ही है उत्पन्न हो गया है, तो वह वही संदेश भेजता है जो उसने BBA⋆ के चरण s −3 में भेजा होगा। चरण m + 3। यदि, चरण m + 3 के दौरान, i \(\in\)SV r,m+3 देखता है कि ब्लॉक Br पहले ही उत्पन्न हो चुका था एक पूर्व कदम s', फिर वह ऊपर बताए अनुसार आगे बढ़ता है। अन्यथा, बजाय इसके कि वह वही संदेश भेजता जो उसने BBA⋆ के चरण m में भेजा होता, i है अपने पास मौजूद जानकारी के आधार पर, Br और उसके संगत की गणना करने का निर्देश दिया प्रमाणित CERT आर. वास्तव में, याद रखें कि हम एक दौर के चरणों की कुल संख्या को m + 3 से बढ़ाते हैं। 5.4 वास्तविक प्रोटोकॉल याद रखें कि, राउंड आर के प्रत्येक चरण में, एक सत्यापनकर्ता i \(\in\)SV r,s अपनी दीर्घकालिक सार्वजनिक-गुप्त कुंजी जोड़ी का उपयोग करता है उसकी साख, \(\sigma\)r,s प्रस्तुत करने के लिए मैं \(\triangleq\)SIGi(r, s, Qr−1), साथ ही SIGi Qr−1 मामले में s = 1. सत्यापनकर्ता i अपनी क्षणिक गुप्त कुंजी skr,s का उपयोग करता है मैं उसके (आर, एस)-संदेश श्रीमान, एस पर हस्ताक्षर करने के लिए मैं . सरलता के लिए, जब r और s हों स्पष्ट है, हम sigpkr,s के बजाय esigi(x) लिखते हैं i (x) किसी मूल्य के i के उचित क्षणिक हस्ताक्षर को दर्शाने के लिए राउंड आर के चरण एस में एक्स, और एसआईजीपीकेआर, एस के बजाय ईएसआईजीआई (एक्स) लिखें i (x) को निरूपित करने के लिए (i, x, esigi(x))। चरण 1: प्रस्ताव को ब्लॉक करें प्रत्येक उपयोगकर्ता i \(\in\)PKr−k के लिए निर्देश: उपयोगकर्ता i जैसे ही राउंड आर का अपना चरण 1 शुरू करता है Br−1 जानता है. • उपयोगकर्ता i, Br−1 के तीसरे घटक से Qr−1 की गणना करता है और जाँचता है कि क्या i \(\in\)SV r,1 या नहीं. • यदि i /\(\in\)SV r,1, तो मैं चरण 1 के अपने निष्पादन को तुरंत रोक देता हूं। • अगर मैं \(\in\)एसवी आर,1, यानी, अगर मैं एक संभावित नेता हूं, तो वह राउंड-आर भुगतान एकत्र करता है अब तक उसे प्रचारित किया गया है और अधिकतम भुगतान सेट PAY r की गणना की गई है मैं उनसे. अगला, वह अपने "उम्मीदवार ब्लॉक" ब्र की गणना करता है मैं = (आर, भुगतान आर i , SIGi(Qr−1), H(Br−1)). अंत में, वह गणना करता है संदेश श्रीमान,1 मैं = (ब्र मैं , ईएसजीआई(एच(बीआर मैं )), \(\sigma\)r,1 i), उसकी क्षणिक गुप्त कुंजी skr,1 को नष्ट कर देता है मैं , और फिर प्रचारित श्रीमान,1 मैं .टिप्पणी। व्यवहार में, चरण 1 के वैश्विक निष्पादन को छोटा करने के लिए, यह महत्वपूर्ण है कि (आर, 1)- संदेशों को चुनिंदा तरीके से प्रचारित किया जाता है। अर्थात्, सिस्टम में प्रत्येक उपयोगकर्ता के लिए, पहले (आर, 1) के लिए- संदेश जो वह कभी भी प्राप्त करता है और सफलतापूर्वक सत्यापित करता है, 17 खिलाड़ी मैं इसे हमेशा की तरह प्रचारित करता हूं। सभी के लिए अन्य (आर, 1)-संदेश जो खिलाड़ी मुझे प्राप्त होता है और सफलतापूर्वक सत्यापित करता है, वह इसे केवल तभी प्रचारित करता है जब hash इसमें शामिल क्रेडेंशियल का मान इसमें शामिल क्रेडेंशियल के hash मानों में सबसे छोटा है कुल मिलाकर (आर, 1)-संदेश उसे अब तक प्राप्त हुए हैं और सफलतापूर्वक सत्यापित किए गए हैं। इसके अलावा, जैसा कि सुझाव दिया गया है जॉर्जियोस व्लाचोस द्वारा, यह उपयोगी है कि प्रत्येक संभावित नेता अपनी साख का प्रचार भी करता है,1 मैं अलग से: वे छोटे संदेश ब्लॉकों की तुलना में तेजी से यात्रा करते हैं, श्रीमान का समय पर प्रसार सुनिश्चित करते हैं,1 j's जहां सम्मिलित क्रेडेंशियल में छोटे hash मान होते हैं, जबकि बड़े hash मान वाले क्रेडेंशियल बनाएं जल्दी से गायब हो जाओ. चरण 2: ग्रेडेड सर्वसम्मति प्रोटोकॉल जीसी का पहला चरण प्रत्येक उपयोगकर्ता i \(\in\)PKr−k के लिए निर्देश: उपयोगकर्ता i जैसे ही राउंड आर का अपना चरण 2 शुरू करता है Br−1 जानता है. • उपयोगकर्ता i, Br−1 के तीसरे घटक से Qr−1 की गणना करता है और जाँचता है कि क्या i \(\in\)SV r,2 या नहीं. • यदि i /\(\in\)SV r,2 तो मैं चरण 2 के अपने निष्पादन को तुरंत रोक देता हूं। • यदि i \(\in\)SV r,2, तो कुछ समय t2 \(\triangleq\) \(\lambda\) + Λ की प्रतीक्षा करने के बाद, i निम्नानुसार कार्य करता है। 1. वह उपयोगकर्ता को ऐसे पाता है कि H(\(\sigma\)r,1 \(\ell\)) \(\leq\)H(\(\sigma\)r,1 j ) सभी क्रेडेंशियल्स के लिए \(\sigma\)r,1 जे जिसका हिस्सा हैं सफलतापूर्वक सत्यापित (आर, 1)-संदेश उसे अब तक प्राप्त हुए हैं।ए 2. यदि उसे श्रीमान्,1 से कोई वैध संदेश प्राप्त हुआ हो \(\ell\) = (ब्र \(\ell\), esig\(\ell\)(H(Br \(\ell\))), \(\sigma\)r,1 \(\ell\)),बी फिर मैं सेट करता हूं वी′ मैं \(\triangleq\)H(Br \(\ell\)); अन्यथा मैं v' सेट करता हूं मैं \(\triangleq\) \(\bot\). 3. मैं संदेश की गणना करता हूं श्रीमान,2 मैं \(\triangleq\)(ESIGi(v′ मैं), \(\sigma\)r,2 i ),c उसकी क्षणिक गुप्त कुंजी को नष्ट कर देता है एसकेआर,2 i , और फिर श्रीमान,2 का प्रचार करता है मैं . अनिवार्य रूप से, उपयोगकर्ता i निजी तौर पर निर्णय लेता है कि राउंड आर का नेता उपयोगकर्ता \(\ell\) है। फिर, खिलाड़ी \(\ell\) के हस्ताक्षर और hashes सभी सफलतापूर्वक सत्यापित हैं, और भुगतान करें \(\ell\)ब्र में \(\ell\)के लिए एक वैध भुगतान सेट है राउंड आर - हालाँकि मैं यह जाँच नहीं करता कि PAY r है या नहीं \(\ell\)के लिए अधिकतम है या नहीं। सीसंदेश श्रीमान,2 मैं संकेत है कि मैं उस खिलाड़ी को v' मानता हूं मैं अगले ब्लॉक का hash हूं, या अगले पर विचार करता हूं ब्लॉक खाली होना. 17अर्थात, सभी हस्ताक्षर सही हैं और ब्लॉक और उसके hash दोनों वैध हैं - हालाँकि मैं जाँच नहीं करता हूँ क्या सम्मिलित भुगतान उसके प्रस्तावक के लिए अधिकतम है या नहीं।

चरण 3: जीसी का दूसरा चरण प्रत्येक उपयोगकर्ता i \(\in\)PKr−k के लिए निर्देश: उपयोगकर्ता i जैसे ही राउंड आर का अपना चरण 3 शुरू करता है Br−1 जानता है. • उपयोगकर्ता i, Br−1 के तीसरे घटक से Qr−1 की गणना करता है और जाँचता है कि क्या i \(\in\)SV r,3 या नहीं. • यदि i /\(\in\)SV r,3, तो मैं चरण 3 के अपने निष्पादन को तुरंत रोक देता हूं। • यदि i \(\in\)SV r,3, तो कुछ समय प्रतीक्षा करने के बाद t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ, 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. मैं उसकी अल्पकालिक गुप्त कुंजी स्क्र,3 को नष्ट कर देता हूं मैं , और फिर श्रीमान,3 का प्रचार करता हूँ मैं . अर्थात्, उसे क्रमशः ESIGj(v′) और एक भिन्न ESIGj(v′′) वाले दो वैध संदेश प्राप्त नहीं हुए हैं, एक खिलाड़ी से जे. यहां और यहां से आगे, बाद में परिभाषित अंतिम स्थितियों को छोड़कर, जब भी कोई ईमानदार खिलाड़ी हो किसी दिए गए रूप के संदेश चाहता है, एक-दूसरे का खंडन करने वाले संदेशों को कभी भी गिना या मान्य नहीं माना जाता है।चरण 4: जीसी का आउटपुट और बीबीए⋆ का पहला चरण प्रत्येक उपयोगकर्ता i \(\in\)PKr−k के लिए निर्देश: उपयोगकर्ता i जैसे ही राउंड आर का अपना चरण 4 शुरू करता है Br−1 जानता है. • उपयोगकर्ता i, Br−1 के तीसरे घटक से Qr−1 की गणना करता है और जाँचता है कि क्या i \(\in\)SV r,4 या नहीं. • यदि i /\(\in\)SV r,4, तो मैं चरण 4 के अपने निष्पादन को तुरंत रोक देता है। • यदि i \(\in\)SV r,4, तो कुछ समय प्रतीक्षा करने के बाद t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ, i निम्नानुसार कार्य करता है। 1. वह जीसी के आउटपुट vi और gi की गणना निम्नानुसार करता है। (ए) यदि कोई मान मौजूद है v′ ̸= \(\bot\)ऐसा है कि, सभी वैध संदेशों के बीच mr,3 जे उसके पास है प्राप्त हुए, उनमें से 2/3 से अधिक फॉर्म (ESIGj(v'), \(\sigma\)r,3 के हैं j ), फिर वह सेट हो जाता है vi \(\triangleq\)v′ और gi \(\triangleq\)2. (बी) अन्यथा, यदि कोई मान मौजूद है v′ ̸= \(\bot\)ऐसा है कि, सभी वैध संदेशों के बीच श्रीमान,3 जे उसे प्राप्त हुआ है, उनमें से 1/3 से अधिक फॉर्म (ESIGj(v'), \(\sigma\)r,3 के हैं जे ), फिर वह vi \(\triangleq\)v′ और gi \(\triangleq\)1.a सेट करता है (सी) अन्यथा, वह vi \(\triangleq\)H(Br) सेट करता है ǫ ) और gi \(\triangleq\)0. 2. वह BBA⋆ के इनपुट bi की गणना इस प्रकार करता है: bi \(\triangleq\)0 यदि gi = 2, और bi \(\triangleq\)1 अन्यथा। 3. वह संदेश की गणना करता है श्रीमान,4 मैं \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 i ), उसके क्षणभंगुर को नष्ट कर देता है गुप्त कुंजी skr,4 मैं , और फिर श्रीमान,4 का प्रचार करता हूँ मैं . यह साबित किया जा सकता है कि मामले (बी) में वी', यदि मौजूद है, तो अद्वितीय होना चाहिए।

चरण s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ≡0 mod 3: BBA⋆ का एक कॉइन-फिक्स्ड-टू-0 चरण प्रत्येक उपयोगकर्ता के लिए निर्देश i \(\in\)PKr−k: उपयोगकर्ता i जैसे ही राउंड आर का अपना चरण शुरू करता है Br−1 जानता है. • उपयोगकर्ता i, Br−1 के तीसरे घटक से Qr−1 की गणना करता है और जाँचता है कि क्या i \(\in\)SV r,s है। • यदि i /\(\in\)SV r,s है, तो मैं स्टेप s के अपने निष्पादन को तुरंत रोक देता है। • यदि i \(\in\)SV r,s है तो वह निम्नानुसार कार्य करता है। - वह तब तक प्रतीक्षा करता है जब तक कि समय ts \(\triangleq\)ts−1 + 2\(\lambda\) = (2s −3)\(\lambda\) + Λ बीत न जाए। - समाप्ति शर्त 0: यदि, ऐसी प्रतीक्षा के दौरान और किसी भी समय, कोई मौजूद हो स्ट्रिंग v ̸= \(\bot\)और एक चरण s′ ऐसा कि (ए) 5 \(\leq\)s′ \(\leq\)s, s′ −2 ≡0 mod 3—अर्थात्, चरण s′ एक कॉइन-फिक्स्ड-टू-0 चरण है, (बी) मुझे कम से कम tH प्राप्त हुआ है = 2एन 3 + 1 वैध संदेश mr,s′−1 जे = (ईएसआईजीजे(0), ESIGj(v), \(\sigma\)r,s′−1 जे ),ए और (सी) मुझे एक वैध संदेश प्राप्त हुआ है श्रीमान, 1 जे = (ब्र j , esigj(H(Br जे )), \(\sigma\)r,1 जे ) वी = एच (बीआर) के साथ जे ), फिर, मैं स्टेप एस (और वास्तव में राउंड आर) के उसके स्वयं के निष्पादन को तुरंत बिना रोक देता हूं किसी भी चीज़ का प्रचार करना; सेट Br = Br जे ; और संदेशों के सेट के रूप में अपना स्वयं का CERT r सेट करता है श्रीमान,एस′−1 जे उप-चरण (बी).बी - समाप्ति शर्त 1: यदि, ऐसी प्रतीक्षा के दौरान और किसी भी समय, कोई मौजूद हो कदम ऐसे कि (ए') 6 \(\leq\)s′ \(\leq\)s, s′ −2 ≡1 mod 3—अर्थात, चरण s′ एक कॉइन-फिक्स्ड-टू-1 चरण है, और (बी') मुझे कम से कम वैध संदेश प्राप्त हुए हैं श्रीमान, एस′−1 जे = (ईएसआईजीजे(1), ईएसआईजीजे(वीजे), \(\sigma\)r,s′−1 जे ),सी फिर, मैं स्टेप एस (और वास्तव में राउंड आर) के उसके स्वयं के निष्पादन को तुरंत बिना रोक देता हूं किसी भी चीज़ का प्रचार करना; सेट Br = Br ǫ ; और संदेशों के सेट के रूप में अपना स्वयं का CERT r सेट करता है श्रीमान,एस′−1 जे उप-चरण (बी') का। - अन्यथा, प्रतीक्षा के अंत में, उपयोगकर्ता i निम्नलिखित कार्य करता है। वह सभी वैध के दूसरे घटकों में वीआई को वीजे का बहुमत वोट मानता है श्रीमान,s−1 जे उसे प्राप्त हो गया है. वह द्वि की गणना इस प्रकार करता है। यदि सभी वैध mr,s−1 के 2/3 से अधिक जे उसे जो प्राप्त हुआ है वह फॉर्म का है (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 जे ), फिर वह द्वि \(\triangleq\)0 सेट करता है। अन्यथा, यदि सभी वैध mr,s−1 के 2/3 से अधिक है जे उसे जो प्राप्त हुआ है वह फॉर्म का है (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 जे ), फिर वह द्वि \(\triangleq\)1 सेट करता है। अन्यथा, वह द्वि \(\triangleq\)0 सेट करता है। वह संदेश की गणना करता है श्रीमान मैं \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), उसके क्षणभंगुर को नष्ट कर देता है गुप्त कुंजी skr,s मैं , और फिर श्रीमान का प्रचार करता हूं मैं . खिलाड़ी j से ऐसा संदेश गिना जाता है, भले ही खिलाड़ी I को भी 1 के लिए हस्ताक्षर करने वाले j से एक संदेश प्राप्त हुआ हो। समाप्ति स्थिति 1 के लिए समान बातें। जैसा कि विश्लेषण में दिखाया गया है, यह सुनिश्चित करने के लिए किया जाता है कि सभी ईमानदार उपयोगकर्ताओं को पता चले Br समय के भीतर \(\lambda\) एक दूसरे से। बस उपयोगकर्ता मैं अब बीआर को जानता हूं और उसका अपना राउंड आर खत्म हो गया है। वह अभी भी एक सामान्य उपयोगकर्ता के रूप में संदेशों के प्रचार-प्रसार में मदद करता है, लेकिन (आर, एस)-सत्यापनकर्ता के रूप में कोई प्रचार शुरू नहीं करता है। विशेष रूप से, उन्होंने अपने सभी संदेशों को प्रचारित करने में मदद की है CERT r, जो हमारे प्रोटोकॉल के लिए पर्याप्त है। ध्यान दें कि उसे बाइनरी बीए प्रोटोकॉल के लिए bi \(\triangleq\)0 भी सेट करना चाहिए, लेकिन bi वैसे भी इस मामले में इसकी आवश्यकता नहीं है। भविष्य के सभी निर्देशों के लिए समान बातें। इस मामले में, इससे कोई फर्क नहीं पड़ता कि वीजे क्या हैं।चरण s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ≡1 मॉड 3: बीबीए का एक सिक्का-निर्धारित-से-1 चरण⋆ प्रत्येक उपयोगकर्ता के लिए निर्देश i \(\in\)PKr−k: उपयोगकर्ता i जैसे ही राउंड आर का अपना चरण शुरू करता है Br−1 जानता है. • उपयोगकर्ता i, Br−1 के तीसरे घटक से Qr−1 की गणना करता है और जाँचता है कि क्या i \(\in\)SV r,s या नहीं. • यदि i /\(\in\)SV r,s है, तो मैं स्टेप s के अपने निष्पादन को तुरंत रोक देता है। • यदि i \(\in\)SV r,s है तो वह निम्न कार्य करता है। - वह तब तक प्रतीक्षा करता है जब तक कि समय ts \(\triangleq\)(2s −3)\(\lambda\) + Λ बीत न जाए। - समाप्ति शर्त 0: कॉइन-फिक्स्ड-टू-0 चरणों के समान निर्देश। - अंतिम शर्त 1: कॉइन-फिक्स्ड-टू-0 चरणों के समान निर्देश। - अन्यथा, प्रतीक्षा के अंत में, उपयोगकर्ता i निम्नलिखित कार्य करता है। वह सभी वैध के दूसरे घटकों में वीआई को वीजे का बहुमत वोट मानता है श्रीमान,s−1 जे उसे प्राप्त हो गया है. वह द्वि की गणना इस प्रकार करता है। यदि सभी वैध mr,s−1 के 2/3 से अधिक जे उसे जो प्राप्त हुआ है वह फॉर्म का है (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 जे ), फिर वह द्वि \(\triangleq\)0 सेट करता है। अन्यथा, यदि सभी वैध mr,s−1 के 2/3 से अधिक है जे उसे जो प्राप्त हुआ है वह फॉर्म का है (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 जे ), फिर वह द्वि \(\triangleq\)1 सेट करता है। अन्यथा, वह द्वि \(\triangleq\)1 सेट करता है। वह संदेश की गणना करता है श्रीमान मैं \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), उसके क्षणभंगुर को नष्ट कर देता है गुप्त कुंजी skr,s मैं , और फिर श्रीमान का प्रचार करता हूं मैं .

चरण s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 मॉड 3: बीबीए का एक सिक्का-वास्तविक-फ़्लिप्ड चरण⋆ प्रत्येक उपयोगकर्ता के लिए निर्देश i \(\in\)PKr−k: उपयोगकर्ता i जैसे ही राउंड आर का अपना चरण शुरू करता है Br−1 जानता है. • उपयोगकर्ता i, Br−1 के तीसरे घटक से Qr−1 की गणना करता है और जाँचता है कि क्या i \(\in\)SV r,s या नहीं. • यदि i /\(\in\)SV r,s है, तो मैं स्टेप s के अपने निष्पादन को तुरंत रोक देता है। • यदि i \(\in\)SV r,s है तो वह निम्न कार्य करता है। - वह तब तक प्रतीक्षा करता है जब तक कि समय ts \(\triangleq\)(2s −3)\(\lambda\) + Λ बीत न जाए। - समाप्ति शर्त 0: कॉइन-फिक्स्ड-टू-0 चरणों के समान निर्देश। - अंतिम शर्त 1: कॉइन-फिक्स्ड-टू-0 चरणों के समान निर्देश। - अन्यथा, प्रतीक्षा के अंत में, उपयोगकर्ता i निम्नलिखित कार्य करता है। वह सभी वैध के दूसरे घटकों में वीआई को वीजे का बहुमत वोट मानता है श्रीमान,s−1 जे उसे प्राप्त हो गया है. वह द्वि की गणना इस प्रकार करता है। यदि सभी वैध mr,s−1 के 2/3 से अधिक जे उसे जो प्राप्त हुआ है वह फॉर्म का है (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 जे ), फिर वह द्वि \(\triangleq\)0 सेट करता है। अन्यथा, यदि सभी वैध mr,s−1 के 2/3 से अधिक है जे उसे जो प्राप्त हुआ है वह फॉर्म का है (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 जे ), फिर वह द्वि \(\triangleq\)1 सेट करता है। अन्यथा, मान लीजिए SV r,s−1 मैं (r, s −1)-सत्यापकों का समुच्चय बनें जिनसे उसे एक वैध प्राप्त हुआ है संदेश mr,s−1 जे . वह bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1) सेट करता है मैं H(\(\sigma\)r,s−1 जे )). वह संदेश की गणना करता है श्रीमान मैं \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), उसके क्षणभंगुर को नष्ट कर देता है गुप्त कुंजी skr,s मैं , और फिर श्रीमान का प्रचार करता हूं मैं .

चरण एम + 3: बीबीएए का अंतिम चरण प्रत्येक उपयोगकर्ता i \(\in\)PKr−k के लिए निर्देश: उपयोगकर्ता i जैसे ही राउंड आर का अपना चरण m + 3 शुरू करता है Br−1 जानता है. • उपयोगकर्ता i, Br−1 के तीसरे घटक से Qr−1 की गणना करता है और जाँचता है कि क्या i \(\in\)SV r,m+3 या नहीं. • यदि i /\(\in\)SV r,m+3, तो मैं चरण m + 3 के अपने निष्पादन को तुरंत रोक देता हूं। • यदि i \(\in\)SV r,m+3 तो वह निम्न कार्य करता है। - वह तब तक प्रतीक्षा करता है जब तक कि tm+3 \(\triangleq\)tm+2 + 2\(\lambda\) = (2m + 3)\(\lambda\) + Λ समय बीत न जाए। - समाप्ति शर्त 0: कॉइन-फिक्स्ड-टू-0 चरणों के समान निर्देश। - अंतिम शर्त 1: कॉइन-फिक्स्ड-टू-0 चरणों के समान निर्देश। - अन्यथा, प्रतीक्षा के अंत में, उपयोगकर्ता i निम्नलिखित कार्य करता है। वह \(\triangleq\)1 और Br \(\triangleq\)Br निर्धारित करता है .. . वह संदेश की गणना mr,m+3 करता है मैं = (ESIGi(outi), ESIGi(H(Br)), \(\sigma\)r,m+3 मैं ), उसका नाश कर देता है क्षणिक गुप्त कुंजी skr,m+3 मैं , और फिर mr,m+3 का प्रचार करता है मैं Br.b को प्रमाणित करने के लिए अत्यधिक संभावना के साथ बीबीए⋆ इस चरण से पहले समाप्त हो गया है, और हम पूर्णता के लिए इस चरण को निर्दिष्ट करते हैं। चरण एम + 3 से बीए प्रमाणपत्र में ईएसआईजीआई (आउटी) शामिल करना आवश्यक नहीं है। हम इसे केवल एकरूपता के लिए शामिल करते हैं: द प्रमाणपत्रों का प्रारूप अब एक समान है, चाहे वे किसी भी चरण में तैयार किए गए हों।गैर-सत्यापनकर्ताओं द्वारा राउंड-आर ब्लॉक का पुनर्निर्माण सिस्टम में प्रत्येक उपयोगकर्ता i के लिए निर्देश: जैसे ही उपयोगकर्ता i को पता चलता है, वह अपना स्वयं का राउंड आर शुरू कर देता है Br−1, और निम्नानुसार ब्लॉक जानकारी की प्रतीक्षा करता है। - यदि, ऐसी प्रतीक्षा के दौरान और किसी भी समय, एक स्ट्रिंग v और एक चरण s' मौजूद है वह (ए) 5 \(\leq\)s′ \(\leq\)m + 3 s′ −2 ≡0 मॉड 3 के साथ, (बी) मुझे कम से कम tH वैध संदेश प्राप्त हुए हैं mr,s′−1 जे = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 जे ), और (सी) मुझे एक वैध संदेश प्राप्त हुआ है श्रीमान, 1 जे = (ब्र j , esigj(H(Br जे )), \(\sigma\)r,1 जे ) वी = एच (बीआर) के साथ जे ), फिर, मैं राउंड आर के अपने निष्पादन को तुरंत रोक देता हूं; सेट Br = Br जे; और अपना स्वयं का CERT r सेट करता है संदेशों का सेट होना mr,s′−1 जे उप-चरण (बी) का। – यदि, ऐसी प्रतीक्षा के दौरान और किसी भी समय, कोई कदम ऐसा मौजूद हो (ए') 6 \(\leq\)s′ \(\leq\)m + 3 s′ −2 ≡1 मॉड 3 के साथ, और (बी') मुझे कम से कम वैध संदेश प्राप्त हुए हैं श्रीमान, एस′−1 जे = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 जे ), फिर, मैं राउंड आर के अपने निष्पादन को तुरंत रोक देता हूं; सेट Br = Br ǫ; और अपना स्वयं का CERT r सेट करता है संदेशों का सेट होना mr,s′−1 जे उप-चरण (बी') का। - यदि, ऐसी प्रतीक्षा के दौरान और किसी भी समय, मुझे कम से कम वैध संदेश प्राप्त हुए हों श्रीमान,एम+3 जे = (ESIGj(1), ESIGj(H(Br ǫ )), \(\sigma\)r,m+3 जे ), फिर मैं राउंड आर के अपने निष्पादन को रोक देता हूं तुरंत, Br = Br सेट करता है ǫ, और अपने स्वयं के CERT r को संदेशों के सेट mr,m+3 के रूप में सेट करता है जे 1 के लिए और एच(ब्र ज़ू ). 5.5 Algorand का विश्लेषण' 1 हम विश्लेषण में प्रयुक्त प्रत्येक दौर r \(\geq\)0 के लिए निम्नलिखित नोटेशन प्रस्तुत करते हैं। • मान लीजिए कि T वह समय है जब पहला ईमानदार उपयोगकर्ता Br−1 को जानता है। • मान लीजिए कि Ir+1 अंतराल है [T r+1, T r+1 + \(\lambda\)]। ध्यान दें कि प्रोटोकॉल के आरंभीकरण से T 0 = 0। प्रत्येक s \(\geq\)1 और i \(\in\)SV r,s के लिए, उसे याद करें \(\alpha\)r,s मैं और \(\beta\)r,s मैं क्रमशः खिलाड़ी I के चरणों का प्रारंभ समय और समाप्ति समय हैं। इसके अलावा, याद रखें कि प्रत्येक 2 \(\leq\)s \(\leq\)m + 3 के लिए ts = (2s −3)\(\lambda\) + Λ। इसके अलावा, मान लीजिए I0 \(\triangleq\){0} और t1 \(\triangleq\)0। अंत में, याद रखें कि Lr \(\leq\)m/3 एक यादृच्छिक चर है जो बर्नौली परीक्षणों की संख्या का प्रतिनिधित्व करता है 1 देखने की आवश्यकता है, जब प्रत्येक परीक्षण प्रायिकता पीएच के साथ 1 है 2 और अधिकतम एम/3 परीक्षण हैं। यदि सभी परीक्षण विफल हो जाता है तो Lr \(\triangleq\)m/3। विश्लेषण में हम गणना समय को नजरअंदाज कर देते हैं, क्योंकि यह वास्तव में आवश्यक समय के सापेक्ष नगण्य है संदेशों का प्रचार-प्रसार करना। किसी भी स्थिति में, थोड़े बड़े \(\lambda\) और Λ का उपयोग करके, गणना समय बढ़ाया जा सकता है सीधे विश्लेषण में शामिल किया जाए। नीचे दिए गए अधिकांश कथन “जबरदस्त” हैं संभाव्यता," और हम विश्लेषण में इस तथ्य पर बार-बार जोर नहीं दे सकते।5.6 मुख्य प्रमेय प्रमेय 5.1. निम्नलिखित गुण प्रत्येक दौर r \(\geq\)0 के लिए अत्यधिक संभावना रखते हैं: 1. सभी ईमानदार उपयोगकर्ता एक ही ब्लॉक पर सहमत हैं ब्र. 2. जब नेता \(\ell\)r ईमानदार होता है, तो ब्लॉक Br \(\ell\)r द्वारा उत्पन्न होता है, Br में अधिकतम भुगतान सेट होता है समय \(\alpha\)r,1 द्वारा \(\ell\)r द्वारा प्राप्त किया गया \(\ell\)r , T r+1 \(\leq\)T r + 8\(\lambda\) + Λ और सभी ईमानदार उपयोगकर्ता उस समय Br को जानते हैं अंतराल आईआर+1. 3. जब नेता \(\ell\)r दुर्भावनापूर्ण है, तो T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ और सभी ईमानदार उपयोगकर्ता Br को जानते हैं समय अंतराल में Ir+1. 4. Lr के लिए ph = h2(1 + h −h2), और नेता \(\ell\)r कम से कम ph की संभावना के साथ ईमानदार है। अपने मुख्य प्रमेय को सिद्ध करने से पहले, आइए हम दो टिप्पणियाँ करें। टिप्पणी। • ब्लॉक-जेनरेशन और ट्रू लेटेंसी। ब्लॉक Br उत्पन्न करने का समय T r+1 −T r निर्धारित किया गया है। अर्थात्, इसे पहली बार कुछ ईमानदार उपयोगकर्ता द्वारा Br सीखने और के बीच का अंतर माना जाता है। पहली बार कोई ईमानदार उपयोगकर्ता Br−1 सीखता है। जब राउंड-आर नेता ईमानदार होता है, संपत्ति 2 हमारी मुख्य प्रमेय गारंटी देता है कि Br उत्पन्न करने का सटीक समय 8\(\lambda\) + Λ समय है, चाहे कुछ भी हो h > 2/3 का सटीक मान हो सकता है। जब नेता दुर्भावनापूर्ण होता है, तो संपत्ति 3 का तात्पर्य है कि Br उत्पन्न करने का अपेक्षित समय (12) से अधिक है ph + 10)\(\lambda\) + Λ, फिर भी सटीक कोई फर्क नहीं पड़ता h.18 का मान हालाँकि, Br उत्पन्न करने का अपेक्षित समय h के सटीक मान पर निर्भर करता है। वास्तव में, संपत्ति 4 द्वारा, ph = h2(1 + h −h2) और नेता कम से कम संभाव्यता के साथ ईमानदार है पीएच, इस प्रकार E[T r+1 −T r] \(\leq\)h2(1 + h −h2) \(\cdot\) (8\(\lambda\) + Λ) + (1 −h2(1 + h −h2))(( 12 h2(1 + h −h2) + 10)\(\lambda\) + Λ). उदाहरण के लिए, यदि h = 80%, तो E[T r+1 −T r] \(\leq\)12.7\(\lambda\) + Λ। • \(\lambda\) बनाम Λ. ध्यान दें कि सत्यापनकर्ताओं द्वारा चरण Algorand 'में भेजे गए संदेशों का आकार हावी है डिजिटल हस्ताक्षर कुंजियों की लंबाई से, जो कि संख्या होने पर भी स्थिर रह सकती है उपयोगकर्ता बहुत अधिक हैं। यह भी ध्यान दें कि, किसी भी चरण s > 1 में, सत्यापनकर्ताओं की समान अपेक्षित संख्या n है इसका उपयोग किया जा सकता है चाहे उपयोगकर्ताओं की संख्या 100K, 100M, या 100M हो। ऐसा इसलिए है क्योंकि n केवल एच और एफ पर निर्भर करता है। कुल मिलाकर, गुप्त कुंजी लंबाई बढ़ाने की अचानक आवश्यकता को छोड़कर, \(\lambda\) का मान वही रहना चाहिए चाहे इसमें उपयोगकर्ताओं की संख्या कितनी भी अधिक क्यों न हो निकट भविष्य. इसके विपरीत, किसी भी लेनदेन दर के लिए, लेनदेन की संख्या संख्या के साथ बढ़ती है उपयोगकर्ता. इसलिए, सभी नए लेनदेन को समय पर संसाधित करने के लिए एक ब्लॉक का आकार होना चाहिए उपयोगकर्ताओं की संख्या के साथ-साथ Λ भी बढ़ता है। इस प्रकार, लंबे समय में, हमें ऐसा करना चाहिए \(\lambda\) << Λ. तदनुसार, \(\lambda\) के लिए एक बड़ा गुणांक और वास्तव में एक गुणांक होना उचित है Λ के लिए 1 का. प्रमेय 5.1 का प्रमाण. हम गुण 1-3 को प्रेरण द्वारा सिद्ध करते हैं: यह मानते हुए कि वे राउंड आर -1 के लिए मान्य हैं (व्यापकता की हानि के बिना, जब r = 0 होता है तो वे स्वचालित रूप से "राउंड -1" को पकड़ लेते हैं), हम उन्हें इसके लिए सिद्ध करते हैं गोल आर. 18दरअसल, ई[टी आर+1 −टी आर] \(\leq\)(6ई[एलआर] + 10)\(\lambda\) + Λ = (6 \(\cdot\) 2 पीएच + 10)\(\lambda\) + Λ = ( 12 पीएच + 10)\(\lambda\) + Λ.चूंकि Br−1 को आगमनात्मक परिकल्पना द्वारा विशिष्ट रूप से परिभाषित किया गया है, इसलिए सेट SV r,s को विशिष्ट रूप से परिभाषित किया गया है राउंड आर के प्रत्येक चरण के लिए। n1, SV r,1 ̸= \(\emptyset\) की पसंद से अत्यधिक संभावना के साथ। हम अब धारा 5.7 और 5.8 में सिद्ध निम्नलिखित दो सूत्र बताएं। प्रेरण के दौरान और अंदर दो लेम्माओं के प्रमाण, राउंड 0 के लिए विश्लेषण लगभग आगमनात्मक चरण के समान है, और जब अंतर घटित होंगे तो हम उन्हें उजागर करेंगे। लेम्मा 5.2. [पूर्णता लेम्मा] गुण 1-3 को राउंड आर−1 के लिए होल्ड मान लिया जाए, जब लीडर \(\ell\)r ईमानदार है, अत्यधिक संभावना के साथ, • सभी ईमानदार उपयोगकर्ता एक ही ब्लॉक Br पर सहमत हैं, जो \(\ell\)r द्वारा उत्पन्न होता है और इसमें अधिकतम होता है \(\ell\)r द्वारा समय \(\alpha\)r,1 द्वारा प्राप्त भुगतान \(\ell\)r \(\in\)Ir; और • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ और सभी ईमानदार उपयोगकर्ता समय अंतराल Ir+1 में Br को जानते हैं। लेम्मा 5.3. [साउंडनेस लेम्मा] यह मानते हुए कि गुण 1-3 राउंड आर -1 के लिए हैं, जब नेता \(\ell\)r दुर्भावनापूर्ण है, अत्यधिक संभावना के साथ, सभी ईमानदार उपयोगकर्ता एक ही ब्लॉक पर सहमत हैं Br, T r+1 \(\leq\) T r + (6Lr + 10)\(\lambda\) + Λ और सभी ईमानदार उपयोगकर्ता समय अंतराल Ir+1 में Br को जानते हैं। लेम्मास 5.2 और 5.3 को आर = 0 और आगमनात्मक चरण पर लागू करने से गुण 1-3 कायम रहते हैं। अंततः, हम संपत्ति 4 को निम्नलिखित प्रमेय के रूप में पुनः प्रस्तुत करते हैं, जो धारा 5.9 में साबित हुआ है। लेम्मा 5.4. आर से पहले प्रत्येक दौर के लिए गुण 1-3 दिए गए हैं, एलआर के लिए पीएच = एच2(1 + एच −एच2), और नेता \(\ell\)r संभाव्यता के प्रति कम से कम ph ईमानदार है। उपरोक्त तीन नींबू को एक साथ मिलाकर, प्रमेय 5.1 कायम रहता है। ■ नीचे दिया गया लेम्मा आगमनात्मक दिए गए राउंड आर के बारे में कई महत्वपूर्ण गुण बताता है परिकल्पना, और उपरोक्त तीन नींबू के प्रमाण में उपयोग किया जाएगा। लेम्मा 5.5. मान लें कि गुण 1-3 राउंड आर −1 के लिए हैं। राउंड आर के प्रत्येक चरण s \(\geq\)1 के लिए प्रत्येक ईमानदार सत्यापनकर्ता i\(\in\)HSV r,s, हमारे पास वह है (ए) \(\alpha\)r,s मैं \(\in\)इर; (बी) यदि खिलाड़ी I ने ts की मात्रा तक प्रतीक्षा की है, तो \(\beta\)r,s मैं \(\in\)[T r + ts, T r + \(\lambda\) + ts] r > 0 और के लिए \(\beta\)r,s मैं = ts के लिए r = 0; और (सी) यदि खिलाड़ी I ने समय ts तक प्रतीक्षा की है, तो समय \(\beta\)r,s तक मैं, उसे सभी संदेश प्राप्त हो गए हैं सभी ईमानदार सत्यापनकर्ताओं द्वारा भेजा गया j \(\in\)HSV r,s′ सभी चरणों s′ < s के लिए। इसके अलावा, प्रत्येक चरण s \(\geq\)3 के लिए, हमारे पास वह है (डी) दो अलग-अलग खिलाड़ी i, i′ \(\in\)SV r,s और दो अलग-अलग मान v, v′ मौजूद नहीं हैं। लंबाई, ऐसी कि दोनों खिलाड़ियों ने कुल समय के 2/3 से अधिक समय तक प्रतीक्षा की है वैध संदेश m,s−1 जे मुझे प्राप्त खिलाड़ी ने वी के लिए हस्ताक्षर किए हैं, और सभी वैध के 2/3 से अधिक संदेश mr,s−1 जे मुझे प्राप्त होने वाले खिलाड़ी ने v' के लिए हस्ताक्षर किए हैं। सबूत। संपत्ति (ए) सीधे आगमनात्मक परिकल्पना से अनुसरण करती है, क्योंकि खिलाड़ी मैं Br−1 को जानता हूं समय अंतराल Ir और तुरंत अपना कदम शुरू करता है। संपत्ति (बी) सीधे (ए) से अनुसरण करती है: चूंकि खिलाड़ी मैंने अभिनय करने से पहले काफी समय तक इंतजार किया है, \(\beta\)r,s मैं = \(\alpha\)r,s मैं + टी.एस. ध्यान दें कि \(\alpha\)r,s मैं = 0 के लिए आर = 0. अब हम संपत्ति (सी) साबित करते हैं। यदि s = 2, तो संपत्ति (बी) द्वारा, सभी सत्यापनकर्ताओं के लिए j \(\in\)HSV r,1 हमारे पास है \(\beta\)r,s मैं = \(\alpha\)r,s मैं + ts \(\geq\)T r + ts = T r + \(\lambda\) + Λ \(\geq\) \(\beta\)r,1 जे + Λ.चूँकि प्रत्येक सत्यापनकर्ता j \(\in\)HSV r,1 समय \(\beta\)r,1 पर अपना संदेश भेजता है जे और संदेश सभी ईमानदारों तक पहुंचे अधिकतम Λ समय में उपयोगकर्ता, समय \(\beta\)r,s के अनुसार मैं प्लेयर मुझे सभी सत्यापनकर्ताओं द्वारा भेजे गए संदेश प्राप्त हो गए हैं एचएसवी आर,1 इच्छानुसार। यदि s > 2, तो ts = ts−1 + 2\(\lambda\). संपत्ति (बी) द्वारा, सभी चरणों s′ < s और सभी सत्यापनकर्ताओं j \(\in\)HSV r,s′ के लिए, \(\beta\)r,s मैं = \(\alpha\)r,s मैं + ts \(\geq\)T r + ts = T r + ts−1 + 2\(\lambda\) \(\geq\)T r + ts′ + 2\(\lambda\) = T r + \(\lambda\) + ts′ + \(\lambda\) \(\geq\) \(\beta\)r,s′ जे + \(\lambda\). चूँकि प्रत्येक सत्यापनकर्ता j \(\in\)HSV r,s′ अपना संदेश \(\beta\)r,s′ पर भेजता है। जे और संदेश सभी ईमानदारों तक पहुंचे अधिकतम \(\lambda\) समय में उपयोगकर्ता, समय \(\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 मैं (v) द MSV r,s−1 का उपसमुच्चय मैं जिनसे मुझे वी. के लिए आवश्यकताओं पर हस्ताक्षर करते हुए एक वैध संदेश प्राप्त हुआ है मैं और वी, हमारे पास है अनुपात \(\triangleq\)|HSV r,s−1(v)| + |एमएसवी आर,एस−1 मैं (v)| |HSV r,s−1| + |एमएसवी आर,एस−1 मैं |

2 3. (1) हम पहले दिखाते हैं |एमएसवी आर,एस−1 मैं (v)| \(\leq\)|HSV r,s−1(v)| (2) अन्यथा मान लेना, मापदंडों के बीच संबंधों के आधार पर, अत्यधिक संभावना के साथ |HSV r,s−1| > 2|MSV r,s−1| \(\geq\)2|MSV r,s−1 मैं |, इस प्रकार अनुपात < |HSV r,s−1(v)| + |एमएसवी आर,एस−1 मैं (v)| 3|एमएसवी आर,एस−1 मैं | < 2|MSV r,s−1 मैं (v)| 3|एमएसवी आर,एस−1 मैं | \(\leq\)2 3, असमानता का खंडन 1. अगला, असमानता 1 से हमारे पास है 2|HSV r,s−1| + 2|MSV r,s−1 मैं | < 3|HSV r,s−1(v)| + 3|एमएसवी आर,एस−1 मैं (v)| \(\leq\) 3|HSV r,s−1(v)| + 2|MSV r,s−1 मैं | + |एमएसवी आर,एस−1 मैं (v)|. असमानता 2 के साथ संयोजन, 2|HSV r,s−1| < 3|HSV r,s−1(v)| + |एमएसवी आर,एस−1 मैं (v)| \(\leq\)4|HSV r,s−1(v)|, जिसका तात्पर्य है |HSV r,s−1(v)| > 1 2|HSV r,s−1|.इसी प्रकार, i' और v' की आवश्यकताओं के अनुसार, हमारे पास है |HSV r,s−1(v′)| > 1 2|HSV r,s−1|. चूँकि एक ईमानदार सत्यापनकर्ता j \(\in\)HSV r,s−1 उसकी अल्पकालिक गुप्त कुंजी skr,s−1 को नष्ट कर देता है जे प्रचारित करने से पहले उनका संदेश, प्रतिद्वंद्वी उस मूल्य के लिए जे के हस्ताक्षर को जाली नहीं बना सकता है जिसके बाद जे ने हस्ताक्षर नहीं किया था यह सीखना कि j एक सत्यापनकर्ता है। इस प्रकार, उपरोक्त दो असमानताएँ |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. [पूर्णता लेम्मा, पुनः कहा गया] मान लिया गया कि गुण 1-3 गोल r−1 के लिए हैं, जब नेता \(\ell\)r ईमानदार है, अत्यधिक संभावना के साथ, • सभी ईमानदार उपयोगकर्ता एक ही ब्लॉक Br पर सहमत हैं, जो \(\ell\)r द्वारा उत्पन्न होता है और इसमें अधिकतम होता है \(\ell\)r द्वारा समय \(\alpha\)r,1 द्वारा प्राप्त भुगतान \(\ell\)r \(\in\)Ir; और • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ और सभी ईमानदार उपयोगकर्ता समय अंतराल Ir+1 में Br को जानते हैं। सबूत। आगमनात्मक परिकल्पना और लेम्मा 5.5 द्वारा, प्रत्येक चरण s और सत्यापनकर्ता i \(\in\)HSV r,s के लिए, \(\alpha\)r,s मैं  इर. नीचे हम चरण दर चरण प्रोटोकॉल का विश्लेषण करते हैं। चरण 1. परिभाषा के अनुसार, प्रत्येक ईमानदार सत्यापनकर्ता i\(\in\)HSV r,1 वांछित संदेश का प्रचार करता है श्रीमान,1 मैं पर समय \(\beta\)r,1 मैं = \(\alpha\)r,1 मैं , कहाँ श्रीमान ,1 मैं = (ब्र मैं , ईएसजीआई(एच(बीआर मैं )), \(\sigma\)r,1 मैं ), ब्र मैं = (आर, भुगतान आर i , SIGi(Qr−1), H(Br−1)), और भुगतान करें आर समय \(\alpha\)r,1 के अनुसार मैंने जो भी भुगतान देखे हैं उनमें से मैं एक अधिकतम भुगतान सेट है मैं . चरण 2. \(\in\)एचएसवी आर,2 में मनमाने ढंग से एक ईमानदार सत्यापनकर्ता तय करें। लेम्मा 5.5 द्वारा, जब प्लेयर आई पूरा हो जाता है समय पर प्रतीक्षा कर रहे हैं \(\beta\)r,2 मैं = \(\alpha\)r,2 मैं +टी2, उसे एचएसवी आर,1 सहित सत्यापनकर्ताओं द्वारा भेजे गए सभी संदेश प्राप्त हो गए हैं श्रीमान,1 \(\ell\)r . \(\ell\)r की परिभाषा के अनुसार, PKr−k में कोई अन्य खिलाड़ी मौजूद नहीं है जिसका क्रेडेंशियल hash है मान H(\(\sigma\)r,1) से छोटा है \(\ell\)r ). निःसंदेह, विरोधी यह देखने के बाद कि H(\(\sigma\)r,1) को भ्रष्ट कर सकता है \(\ell\)r ) बहुत छोटा है, लेकिन उस समय तक खिलाड़ी \(\ell\)r ने अपनी क्षणिक कुंजी और संदेश श्रीमान,1 को नष्ट कर दिया है \(\ell\)r प्रचारित किया गया है. इस प्रकार सत्यापनकर्ता अपने नेता को खिलाड़ी \(\ell\)r के रूप में निर्धारित करता है। तदनुसार, समय \(\beta\)r,2 पर मैं , सत्यापनकर्ता मैं श्रीमान, 2 का प्रचार करता हूँ मैं = (ESIGi(v′ मैं), \(\sigma\)r,2 i ), जहां v' मैं = एच(ब्र \(\ell\)r). जब r = 0, एकमात्र अंतर क्या वह \(\beta\)r,2 है मैं = t2 एक सीमा में होने के बजाय। ऐसी ही बातें भविष्य के कदमों और हमारे लिए भी कही जा सकती हैं दोबारा उन पर जोर नहीं देंगे. चरण 3. \(\in\)HSV r,3 में मनमाने ढंग से एक ईमानदार सत्यापनकर्ता तय करें। लेम्मा 5.5 द्वारा, जब प्लेयर आई पूरा हो जाता है समय पर प्रतीक्षा कर रहे हैं \(\beta\)r,3 मैं = \(\alpha\)r,3 मैं +टी3, उसे एचएसवी आर,2 में सत्यापनकर्ताओं द्वारा भेजे गए सभी संदेश प्राप्त हो गए हैं। मापदंडों के बीच संबंधों द्वारा, अत्यधिक संभावना के साथ |एचएसवी आर,2| > 2|एमएसवी आर,2| इसके अलावा, कोई भी ईमानदार सत्यापनकर्ता विरोधाभासी संदेशों और प्रतिद्वंद्वी पर हस्ताक्षर नहीं करेगा किसी ईमानदार सत्यापनकर्ता द्वारा उसके अनुरूप नष्ट कर दिए जाने के बाद उसके हस्ताक्षर नहीं बनाए जा सकते क्षणभंगुर गुप्त कुंजी. इस प्रकार मुझे प्राप्त सभी वैध (आर, 2)-संदेशों में से 2/3 से अधिक संदेश यहीं से प्राप्त हुए हैं ईमानदार सत्यापनकर्ता और श्रीमान, 2 जे = (ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,2 जे ), बिना किसी विरोधाभास के। तदनुसार, समय \(\beta\)r,3 पर मैं खिलाड़ी मैं प्रचार करता हूँ श्रीमान, 3 मैं = (ESIGi(v′), \(\sigma\)r,3 i ), जहां v′ = H(Br \(\ell\)r).चरण 4. \(\in\)एचएसवी आर,4 में मनमाने ढंग से एक ईमानदार सत्यापनकर्ता तय करें। लेम्मा 5.5 द्वारा, प्लेयर आई को सभी प्राप्त हो गए हैं एचएसवी आर,3 में सत्यापनकर्ताओं द्वारा भेजे गए संदेश जब वह समय \(\beta\)r,4 पर प्रतीक्षा कर रहा हो मैं = \(\alpha\)r,4 मैं +टी4. के समान चरण 3, मुझे प्राप्त सभी वैध (आर, 3)-संदेशों में से 2/3 से अधिक संदेश ईमानदार सत्यापनकर्ताओं से हैं और फॉर्म का श्रीमान,3 जे = (ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,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\)r)), \(\sigma\)r,4 मैं ). चरण 5. \(\in\)HSV r,5 में मनमाने ढंग से एक ईमानदार सत्यापनकर्ता तय करें। लेम्मा 5.5 तक, प्लेयर मेरे पास होगा एचएसवी आर,4 में सत्यापनकर्ताओं द्वारा भेजे गए सभी संदेश प्राप्त हुए यदि उसने समय \(\alpha\)r,5 तक प्रतीक्षा की है मैं +टी5. ध्यान दें |एचएसवी आर,4| \(\geq\)tH.19 यह भी ध्यान दें कि HSV r,4 में सभी सत्यापनकर्ताओं ने H(Br) के लिए हस्ताक्षर किए हैं \(\ell\)r). जैसे |एमएसवी आर,4| < tH, कोई v′ ̸= H(Br) मौजूद नहीं है \(\ell\)r) जिस पर tH द्वारा हस्ताक्षर किये जा सकते थे एसवी आर,4 में सत्यापनकर्ता (जो आवश्यक रूप से दुर्भावनापूर्ण होंगे), इसलिए खिलाड़ी मैं उसके पहले नहीं रुकता श्रीमान, 4 को वैध संदेश प्राप्त हुए जे = (ESIGj(0), ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,4 ज ). माना T वह समय है जब बाद वाली घटना घटती है. उनमें से कुछ संदेश दुर्भावनापूर्ण खिलाड़ियों के हो सकते हैं, लेकिन क्योंकि |एमएसवी आर,4| < tH, उनमें से कम से कम एक एचएसवी आर,4 में एक ईमानदार सत्यापनकर्ता से है और समय के बाद भेजा जाता है टी आर +टी4. तदनुसार, T \(\geq\)T r +t4 > T r +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 \(\ell\)r +Λ, और समय के अनुसार टी प्लेयर मुझे भी प्राप्त हुआ है संदेश श्रीमान,1 \(\ell\)r . प्रोटोकॉल के निर्माण से, खिलाड़ी i समय \(\beta\)r,5 पर रुक जाता है मैं = टी बिना किसी भी चीज़ का प्रचार करना; सेट Br = Br \(\ell\)r; और अपने स्वयं के CERT r को (r, 4)-संदेशों के सेट के रूप में सेट करता है 0 और एच(ब्र \(\ell\)r) जो उसे प्राप्त हुआ है। चरण एस > 5. इसी तरह, किसी भी चरण s > 5 और किसी भी सत्यापनकर्ता i \(\in\)HSV r,s, प्लेयर के लिए मेरे पास होगा एचएसवी आर,4 में सत्यापनकर्ताओं द्वारा भेजे गए सभी संदेश प्राप्त हुए यदि उसने समय \(\alpha\)r,s तक प्रतीक्षा की है मैं + टी.एस. द्वारा वही विश्लेषण, प्लेयर I बिना कुछ प्रचारित किए रुक जाता है, Br = Br सेट कर देता है \(\ell\)r (और अपनी खुद की सेटिंग सीईआरटी आर ठीक से)। बेशक, दुर्भावनापूर्ण सत्यापनकर्ता रुक नहीं सकते और मनमाना प्रचार कर सकते हैं संदेश, लेकिन क्योंकि |MSV r,s| < tH, प्रेरण द्वारा tH सत्यापनकर्ताओं द्वारा किसी अन्य v' पर हस्ताक्षर नहीं किया जा सकता है किसी भी चरण 4 \(\leq\)s′ < s में, इस प्रकार ईमानदार सत्यापनकर्ता केवल इसलिए रुकते हैं क्योंकि उन्हें tH वैध प्राप्त हुआ है (आर, 4)-0 और एच(बीआर) के लिए संदेश \(\ell\)r). राउंड-आर ब्लॉक का पुनर्निर्माण। चरण 5 का विश्लेषण सामान्य ईमानदार पर लागू होता है उपयोगकर्ता मैं लगभग बिना किसी बदलाव के। दरअसल, खिलाड़ी I अंतराल Ir और में अपना राउंड R शुरू करता है केवल उस समय T पर रुकेगा जब उसे H(Br) के लिए tH वैध (r, 4)-संदेश प्राप्त होंगे \(\ell\)r). फिर से क्योंकि उनमें से कम से कम एक संदेश ईमानदार सत्यापनकर्ताओं का है और समय T r + t4, प्लेयर I के बाद भेजा गया है श्रीमान,1 भी प्राप्त हुआ \(\ell\)r समय T के अनुसार। इस प्रकार वह Br = Br निर्धारित करता है \(\ell\)r उचित CERT r के साथ। यह केवल यह दिखाना बाकी है कि सभी ईमानदार उपयोगकर्ता अपना राउंड आर समय अंतराल Ir+1 के भीतर समाप्त करते हैं। चरण 5 के विश्लेषण से, \(\in\)HSV r,5 का प्रत्येक ईमानदार सत्यापनकर्ता Br को \(\alpha\)r,5 पर या उससे पहले जानता है। मैं + t5 \(\leq\) टी आर + \(\lambda\) + टी5 = टी आर + 8\(\lambda\) + Λ. चूँकि T r+1 वह समय है जब पहला ईमानदार उपयोगकर्ता ir Br को जानता है, हमारे पास है टी आर+1 \(\leq\)टी आर + 8\(\lambda\) + Λ इच्छानुसार. इसके अलावा, जब खिलाड़ी ब्र को जानता है, तो वह पहले ही संदेशों को प्रसारित करने में मदद कर चुका होता है उसका सीईआरटी आर. ध्यान दें कि वे सभी संदेश सभी ईमानदार उपयोगकर्ताओं को समय के भीतर प्राप्त होंगे, भले ही 19सख्ती से कहें तो, ऐसा बहुत अधिक संभावना के साथ होता है लेकिन जरूरी नहीं कि यह बहुत ज्यादा हो। हालाँकि, यह संभाव्यता प्रोटोकॉल के चलने के समय को थोड़ा प्रभावित करती है, लेकिन इसकी शुद्धता को प्रभावित नहीं करती है। जब h = 80%, तब |एचएसवी आर,4| \(\geq\)tH प्रायिकता 1 −10−8 के साथ। यदि यह घटना घटित नहीं होती है, तो प्रोटोकॉल दूसरे के लिए जारी रहेगा 3 कदम. चूँकि यह संभावना कि यह दो चरणों में घटित नहीं होगा, नगण्य है, प्रोटोकॉल चरण 8 पर समाप्त हो जाएगा। उम्मीद है, तो, आवश्यक कदमों की संख्या लगभग 5 है।प्लेयर आईआर उनका प्रचार करने वाले पहले खिलाड़ी थे। इसके अलावा, ऊपर दिए गए विश्लेषण के बाद हमारे पास यह है टी आर+1 \(\geq\)टी आर + टी4 \(\geq\) \(\beta\)r,1 \(\ell\)r + Λ, इस प्रकार सभी ईमानदार उपयोगकर्ताओं को श्रीमान,1 प्राप्त हुआ है \(\ell\)r समय के अनुसार T r+1 + \(\lambda\). तदनुसार, सभी ईमानदार उपयोगकर्ता समय अंतराल Ir+1 = [T r+1, T r+1 + \(\lambda\)] में Br को जानते हैं। अंततः, r = 0 के लिए हमारे पास वास्तव में T 1 \(\leq\)t4 + \(\lambda\) = 6\(\lambda\) + Λ है। सब कुछ एक साथ मिलाकर, लेम्मा 5.2 धारण करता है। ■ 5.8 द साउंडनेस लेम्मा लेम्मा 5.3. [साउंडनेस लेम्मा, पुनः कहा गया] मान लें कि गुण 1-3 राउंड आर -1 के लिए हैं, जब नेता \(\ell\)r दुर्भावनापूर्ण है, अत्यधिक संभावना के साथ, सभी ईमानदार उपयोगकर्ता एक ही ब्लॉक पर सहमत हैं Br, T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ और सभी ईमानदार उपयोगकर्ता समय अंतराल Ir+1 में Br को जानते हैं। सबूत। हम प्रोटोकॉल के दो भागों, जीसी और बीबीए⋆ पर अलग से विचार करते हैं। जी.सी. आगमनात्मक परिकल्पना द्वारा और लेम्मा 5.5 द्वारा, किसी भी चरण s \(\in\){2, 3, 4} और किसी भी ईमानदार के लिए सत्यापनकर्ता i \(\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 पर समझौता। हो सकता है कि उनके पास अपने vi's पर कोई सहमति न हो, लेकिन इससे कोई फर्क नहीं पड़ता जैसा कि हम बाइनरी बीए में देखेंगे। केस 2. एक सत्यापनकर्ता ˆi \(\in\)HSV r,4 मौजूद है जैसे कि gˆi = 2। इस मामले में, हम उसे दिखाते हैं (1) सभी i \(\in\)HSV r,4 के लिए gi \(\geq\)1, (2) एक मान v′ मौजूद है जैसे कि सभी i \(\in\)HSV r,4 के लिए vi = v′, और (3) एक वैध संदेश मौजूद है श्रीमान,1 \(\ell\) कुछ सत्यापनकर्ताओं से \(\ell\) \(\in\)SV r,1 जैसे कि v′ = H(Br \(\ell\)). दरअसल, चूंकि खिलाड़ी ˆi ईमानदार है और gˆi = 2 सेट करता है, सभी वैध संदेशों में से 2/3 से अधिक श्रीमान,3 जे उसे समान मान v′ ̸= \(\bot\) प्राप्त हुआ है, और उसने vˆi = v′ निर्धारित किया है। लेम्मा 5.5 में संपत्ति (डी) द्वारा, किसी अन्य ईमानदार (आर, 4)-सत्यापनकर्ता के लिए, यह इससे अधिक नहीं हो सकता सभी वैध संदेशों के 2/3 से अधिक श्रीमान,3 जे जो i' को प्राप्त हुआ है वह समान मान v'' ̸= v' के लिए है। तदनुसार, यदि मैं gi = 2 सेट करता हूं, तो यह होना चाहिए कि मैंने v′ के लिए > 2/3 बहुमत भी देखा है और सेट किया है vi = v', इच्छानुसार। अब gi < 2 के साथ एक मनमाना सत्यापनकर्ता i \(\in\)HSV r,4 पर विचार करें। संपत्ति के विश्लेषण के समान (डी) लेम्मा 5.5 में, क्योंकि खिलाड़ी ˆi ने v′ के लिए > 2/3 बहुमत देखा है, 1 से अधिक 2|एचएसवी आर,3| ईमानदार (आर, 3)-सत्यापनकर्ताओं ने वी' पर हस्ताक्षर किए हैं। क्योंकि मुझे सभी संदेश ईमानदार (आर, 3)-सत्यापिकाओं द्वारा प्राप्त हुए हैं समय \(\beta\)r,4 मैं = \(\alpha\)r,4 मैं +t4, उसे विशेष रूप से 1 से अधिक प्राप्त हुआ है 2|एचएसवी आर,3| उनसे संदेश v' के लिए. क्योंकि |HSV r,3| > 2|एमएसवी आर,3|, मैंने वी′ के लिए > 1/3 बहुमत देखा है। तदनुसार, खिलाड़ी मैं gi = 1 सेट करता हूं, और संपत्ति (1) कायम रहती है। क्या प्लेयर I आवश्यक रूप से vi = v′ सेट करता है? मान लें कि एक अलग मान मौजूद है v'' ̸= \(\bot\)ऐसा कि खिलाड़ी मैंने v'' के लिए > 1/3 बहुमत भी देखा है। उनमें से कुछ संदेश दुर्भावनापूर्ण हो सकते हैं सत्यापनकर्ता, लेकिन उनमें से कम से कम एक कुछ ईमानदार सत्यापनकर्ता जे \(\in\)एचएसवी आर,3 से है: वास्तव में, क्योंकि |एचएसवी आर,3| > 2|एमएसवी आर,3| और मुझे एचएसवी आर,3, दुर्भावनापूर्ण सेट से सभी संदेश प्राप्त हुए हैं वे सत्यापनकर्ता जिनसे मुझे एक वैध (आर, 3)-संदेश प्राप्त हुआ है, सभी वैध के <1/3 के लिए गिना जाता है उसे जो संदेश मिले हैं.परिभाषा के अनुसार, खिलाड़ी j ने सभी वैध (r, 2)-संदेशों के बीच v' के लिए > 2/3 बहुमत देखा होगा उसे प्राप्त हो गया है. हालाँकि, हमारे पास पहले से ही कुछ अन्य ईमानदार (आर, 3)-सत्यापकर्ताओं ने देखा है v′ के लिए 2/3 बहुमत (क्योंकि उन्होंने v′ पर हस्ताक्षर किए हैं)। लेम्मा 5.5 की संपत्ति (डी) के अनुसार, ऐसा नहीं हो सकता होता है और ऐसा कोई मान v' मौजूद नहीं है। इस प्रकार खिलाड़ी को मुझे इच्छानुसार vi = v′ सेट करना होगा, और संपत्ति (2) धारण करती है। अंत में, यह देखते हुए कि कुछ ईमानदार (आर, 3)-सत्यापनकर्ताओं ने वी' के लिए > 2/3 बहुमत देखा है, कुछ (वास्तव में, आधे से अधिक) ईमानदार (आर, 2)-सत्यापनकर्ताओं ने वी' के लिए हस्ताक्षर किए हैं और अपने संदेशों का प्रचार किया है। प्रोटोकॉल के निर्माण से, उन ईमानदार (आर, 2)-सत्यापिकाओं को एक वैध प्राप्त हुआ होगा संदेश श्रीमान,1 \(\ell\) कुछ खिलाड़ी से \(\ell\) \(\in\)SV r,1 v′ = H(Br के साथ \(\ell\)), इस प्रकार संपत्ति (3) कायम है। बीबीए⋆. हम फिर से दो मामलों में अंतर करते हैं। केस 1. सभी सत्यापनकर्ताओं i \(\in\)HSV r,4 में bi = 1 है। यह जीसी के केस 1 के बाद होता है। जैसे |एमएसवी आर,4| < tH, इस मामले में SV r,5 में कोई सत्यापनकर्ता नहीं है बिट 0 के लिए वैध (आर, 4)-संदेश एकत्र या उत्पन्न कर सकता है। इस प्रकार, एचएसवी आर,5 में कोई ईमानदार सत्यापनकर्ता नहीं है। रुक जाएगा क्योंकि वह एक गैर-रिक्त ब्लॉक ब्र को जानता है। इसके अलावा, हालांकि बिट 1 के लिए कम से कम tH वैध (r, 4)-संदेश हैं, s′ = 5 संतुष्ट नहीं करता है s' −2 ≡1 mod 3, इस प्रकार HSV r,5 में कोई भी ईमानदार सत्यापनकर्ता नहीं रुकेगा क्योंकि वह Br = Br जानता है .. . इसके बजाय, प्रत्येक सत्यापनकर्ता i \(\in\)HSV r,5 समय \(\beta\)r,5 पर कार्य करता है मैं = \(\alpha\)r,5 मैं + t5, जब तक उसे सब कुछ प्राप्त हो जाएगा लेम्मा 5.5 के बाद एचएसवी आर,4 द्वारा भेजे गए संदेश। इस प्रकार खिलाड़ी ने 1 के लिए > 2/3 बहुमत देखा है और द्वि = 1 सेट करता है। चरण 6 में जो एक कॉइन-फिक्स्ड-टू-1 चरण है, हालांकि s′ = 5 संतोषजनक s′ −2 ≡0 mod 3, वहाँ बिट 0 के लिए वैध (आर, 4)-संदेश मौजूद नहीं हैं, इस प्रकार एचएसवी आर, 6 में कोई सत्यापनकर्ता नहीं रुकेगा क्योंकि वह एक गैर-रिक्त ब्लॉक ब्र को जानता है। हालाँकि, s′ = 6, s′ −2 ≡1 मॉड 3 के साथ और वहाँ मौजूद हैं |एचएसवी आर,5| \(\geq\)tH वैध (आर, 5)-एचएसवी आर,5 से बिट 1 के लिए संदेश। लेम्मा 5.5 का पालन करते हुए प्रत्येक सत्यापनकर्ता i \(\in\)HSV r,6 के लिए, समय \(\alpha\)r,6 पर या उससे पहले मैं + t6 प्लेयर I एचएसवी आर,5 से सभी संदेश प्राप्त हुए हैं, इसलिए मैं बिना कुछ प्रचारित किए रुक जाता हूं और सेट कर देता हूं ब्र = ब्र .. . उनका CERT r, tH वैध (r, 5)-संदेशों mr,5 का सेट है जे = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 जे ) जब वह रुकता है तो उसे प्राप्त होता है। इसके बाद, खिलाड़ी को या तो चरण 6 में एक ईमानदार सत्यापनकर्ता या एक सामान्य ईमानदार उपयोगकर्ता होने दें (यानी, गैर-सत्यापनकर्ता)। लेम्मा 5.2 के प्रमाण के समान, प्लेयर i Br = Br सेट करता है और अपना खुद का सेट करता है CERT r tH मान्य (r, 5)-संदेशों mr,5 का सेट होगा जे = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 जे ) उसके पास है प्राप्त. अंततः, लेम्मा 5.2 के समान, टी आर+1 \(\leq\) मि i\(\in\)HSV r,6 \(\alpha\)r,6 मैं + t6 \(\leq\)T r + \(\lambda\) + t6 = T r + 10\(\lambda\) + Λ, और सभी ईमानदार उपयोगकर्ता समय अंतराल Ir+1 में Br को जानते हैं, क्योंकि पहला ईमानदार उपयोगकर्ता वह है जो जानता है कि Br ने अपने CERT r में (r, 5)-संदेशों को प्रचारित करने में मदद की है। केस 2. bˆi = 0 के साथ एक सत्यापनकर्ता ˆi \(\in\)HSV r,4 मौजूद है। यह जीसी के केस 2 के बाद होता है और यह अधिक जटिल मामला है। जीसी के विश्लेषण से, इस मामले में एक वैध संदेश मौजूद है श्रीमान,1 \(\ell\) ऐसा कि vi = H(Br \(\ell\)) सभी i \(\in\)HSV r,4 के लिए। नोट हो सकता है कि एचएसवी आर,4 में सत्यापनकर्ताओं के पास अपने द्विआधारी विकल्प पर सहमति न हो। किसी भी चरण s \(\in\){5, के लिए। . . , एम + 3} और सत्यापनकर्ता आई \(\in\)एचएसवी आर,एस, लेम्मा 5.5 प्लेयर द्वारा मेरे पास होगा HSV r,4 \(\cup\) \(\cdots\) \(\cup\)HSV r,s−1 में सभी ईमानदार सत्यापनकर्ताओं द्वारा भेजे गए सभी संदेश प्राप्त हुए यदि उसने प्रतीक्षा की है समय के लिए टी.एस.अब हम निम्नलिखित घटना E पर विचार करते हैं: एक चरण s∗\(\geq\)5 मौजूद है, जैसे कि, पहले के लिए बाइनरी बीए में समय, कुछ खिलाड़ी i∗\(\in\)SV r,s∗(चाहे दुर्भावनापूर्ण या ईमानदार) को रोकना चाहिए बिना कुछ प्रचारित किये. हम इस तथ्य पर जोर देने के लिए "रुकना चाहिए" का उपयोग करते हैं कि, यदि खिलाड़ी i∗ दुर्भावनापूर्ण है, तो वह दिखावा कर सकता है कि उसे प्रोटोकॉल के अनुसार नहीं रुकना चाहिए और विरोधी की पसंद के संदेशों का प्रचार करें। इसके अलावा, प्रोटोकॉल के निर्माण द्वारा, या तो (ई.ए) i∗कम से कम tH वैध संदेश एकत्र करने या उत्पन्न करने में सक्षम है mr,s′−1 जे = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 जे ) समान v और s′ के लिए, 5 \(\leq\)s′ \(\leq\)s∗and s′ −2 ≡0 mod 3 के साथ; या (ई.बी.) i∗कम से कम tH वैध संदेश एकत्र करने या उत्पन्न करने में सक्षम है mr,s′−1 जे = (ईएसआईजीजे(1), ईएसआईजीजे(वीजे), \(\sigma\)r,s′−1 जे ) समान s' के लिए, 6 \(\leq\)s' \(\leq\)s∗and s' −2 ≡1 mod 3 के साथ। क्योंकि ईमानदार (आर, एस′ −1)-संदेश सभी ईमानदार (आर, एस′)-सत्यापनकर्ताओं को उनसे पहले प्राप्त होते हैं चरण s' में प्रतीक्षा पूरी हो चुकी है, और क्योंकि प्रतिद्वंद्वी को सब कुछ देर से ही प्राप्त होता है ईमानदार उपयोगकर्ता, व्यापकता की हानि के बिना हमारे पास s′ = s∗और प्लेयर i∗दुर्भावनापूर्ण है। ध्यान दें हमें वैध ब्लॉक के hash होने के लिए E.a में मान v की आवश्यकता नहीं थी: क्योंकि यह स्पष्ट हो जाएगा विश्लेषण में, v = H(Br \(\ell\)) इस उप-घटना में। नीचे हम पहले घटना E के बाद केस 2 का विश्लेषण करते हैं, और फिर दिखाते हैं कि s∗ का मान अनिवार्य रूप से है एलआर के अनुसार वितरित किया गया (इस प्रकार घटना ई चरण एम + 3 से पहले जबरदस्त तरीके से घटित होती है संभाव्यता मापदंडों के लिए संबंध दिए गए हैं)। आरंभ करने के लिए, किसी भी चरण 5 \(\leq\)s < s∗ के लिए, प्रत्येक ईमानदार सत्यापनकर्ता I \(\in\)HSV r,s ने समय ts का इंतजार किया है और vi को बहुसंख्यक वोट के रूप में निर्धारित किया है उसे प्राप्त वैध (r, s−1)-संदेश। चूँकि खिलाड़ी i को सभी ईमानदार (r, s−1)-संदेश प्राप्त हुए हैं लेम्मा 5.5 का अनुसरण करते हुए, चूंकि एचएसवी आर,4 में सभी ईमानदार सत्यापनकर्ताओं ने एच(बीआर) पर हस्ताक्षर किए हैं \(\ell\)) निम्नलिखित मामला GC का 2, और चूँकि |HSV r,s−1| > 2|MSV r,s−1| प्रत्येक एस के लिए, प्रेरण द्वारा हमारे पास वह खिलाड़ी है I सेट हो गया है vi = H(Br \(\ell\)). यही बात हर ईमानदार सत्यापनकर्ता पर भी लागू होती है जो प्रचार किए बिना नहीं रुकता कुछ भी. अब हम चरण s∗ पर विचार करते हैं और चार उप-मामलों में अंतर करते हैं। केस 2.1.ए. घटना E.a घटित होती है और एक ईमानदार सत्यापनकर्ता मौजूद होता है I′ \(\in\)HSV r,s∗जिसे करना चाहिए बिना कुछ प्रचारित किये भी रुकें। इस मामले में, हमारे पास s∗−2 ≡0 mod 3 है और चरण s∗ एक कॉइन-फिक्स्ड-टू-0 चरण है। द्वारा परिभाषा, खिलाड़ी i′ को फॉर्म के कम से कम tH वैध (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| (r, s∗−1) में से \(\geq\)1-0 और v के लिए i′ द्वारा प्राप्त संदेश समय के बाद HSV r,s∗−1 में सत्यापनकर्ताओं द्वारा भेजे जाते हैं T r +ts∗−1 \(\geq\)T r +t4 \(\geq\)T r +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 \(\ell\) +Λ, प्लेयर आई' को मिस्टर,1 प्राप्त हुआ है \(\ell\) जब तक वह उन (r, s∗−1)-संदेशों को प्राप्त करता है। इस प्रकार खिलाड़ी मैं बिना किसी बात का प्रचार किये रुक जाता हूँ; सेट Br = Br \(\ell\); और अपना स्वयं का CERT r निर्धारित करता है 0 और v के लिए वैध (r, s∗−1)-संदेशों का सेट जो उसे प्राप्त हुआ है। इसके बाद, हम दिखाते हैं कि, कोई भी अन्य सत्यापनकर्ता i \(\in\)HSV r,s∗ या तो Br = Br के साथ रुक गया है \(\ell\), या bi = 0 सेट किया है और प्रचारित किया है (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s मैं ). वास्तव में, क्योंकि चरण s∗ यह पहली बार है कि किसी सत्यापनकर्ता को कुछ भी प्रचारित किए बिना रुकना चाहिए, ऐसा नहीं है एक चरण s′ < s∗s′ −2 ≡1 mod 3 के साथ मौजूद है ताकि tH (r, s′ −1)-सत्यापियों ने 1 पर हस्ताक्षर किए हों। तदनुसार, HSV r,s∗ में कोई भी सत्यापनकर्ता Br = Br पर नहीं रुकता है .. .इसके अलावा, चरण {4, 5, में सभी ईमानदार सत्यापनकर्ताओं के रूप में। . . , s∗−1} ने H(Br) पर हस्ताक्षर किये हैं \(\ell\)), वहाँ है ऐसा कोई चरण s′ \(\leq\)s∗s′ −2 ≡0 mod 3 के साथ मौजूद नहीं है, जैसे कि tH (r, s′ −1)-सत्यापनकर्ताओं ने हस्ताक्षर किए हैं कुछ v′′ ̸= H(Br \(\ell\)) —वास्तव में, |MSV r,s′−1| < वें. तदनुसार, एचएसवी में कोई सत्यापनकर्ता नहीं रुकता ब्र के साथ ̸= ब्र ̸ और ब्र ̸= ब्र \(\ell\). यानी, अगर कोई खिलाड़ी i \(\in\)HSV r,s∗ के बिना रुक गया है किसी भी चीज़ का प्रचार करते हुए उसने Br = Br निर्धारित किया होगा \(\ell\). यदि कोई खिलाड़ी i \(\in\)HSV r,s∗ ने समय ts∗ का इंतजार किया है और समय पर एक संदेश प्रसारित किया है \(\beta\)r,s∗ मैं = \(\alpha\)r,s∗ मैं + ts∗, उसे HSV r,s∗−1 से सभी संदेश प्राप्त हुए हैं, जिनमें कम से कम शामिल हैं tH −|MSV r,s∗−1| उनमें से 0 और वी के लिए. यदि मैंने 1 के लिए > 2/3 बहुमत देखा है, तो वह 2(tH −|MSV r,s∗−1|) से अधिक वैध (r, s∗−1)-1 के लिए संदेश देखे हैं, अधिक के साथ 2tH −3|MSV r,s∗−1| से अधिक उनमें से ईमानदार (r, s∗−1)-सत्यापनकर्ताओं से। हालाँकि, इसका तात्पर्य यह है |HSV r,s∗−1| \(\geq\)tH−|MSV r,s∗−1|+2tH−3|MSV r,s∗−1| > 2n−4|MSV r,s∗−1|, विरोधाभासी तथ्य यह है कि |HSV r,s∗−1| + 4|MSV r,s∗−1| <2एन, जो मापदंडों के संबंधों से आता है। तदनुसार, मुझे > 2/3 नहीं दिख रहा है 1 के लिए बहुमत, और वह bi = 0 सेट करता है क्योंकि चरण s∗ एक कॉइन-फिक्स्ड-टू-0 चरण है। जैसा कि हमारे पास है देखा, vi = H(Br \(\ell\)). इस प्रकार मैं (ESIGi(0), ESIGi(H(Br) का प्रचार करता हूं \(\ell\))), \(\sigma\)r,s i ) जैसा हम चाहते थे दिखाओ. चरण s∗+ 1 के लिए, चूंकि खिलाड़ी i′ ने अपने CERT r में संदेशों को प्रसारित करने में मदद की है समय पर या उससे पहले \(\alpha\)r,s∗ मैं' + ts∗, HSV r,s∗+1 में सभी ईमानदार सत्यापनकर्ताओं को कम से कम प्राप्त हुआ है tH मान्य (r, s∗−1)-बिट 0 और मान H(Br) के लिए संदेश \(\ell\)) उनके पूरा होने पर या उससे पहले इंतज़ार कर रहा हूँ. इसके अलावा, एचएसवी r,s∗+1 में सत्यापनकर्ता उन्हें प्राप्त करने से पहले नहीं रुकेंगे (r, s∗−1)- संदेश, क्योंकि बिट 1 के लिए कोई अन्य tH मान्य (r, s′ −1)-संदेश मौजूद नहीं है s′ −2 ≡1 mod 3 और 6 \(\leq\)s′ \(\leq\)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 \(\leq\) \(\alpha\)r,s∗ मैं' + ts∗\(\leq\)T r + \(\lambda\) + ts∗. केस 2.1.बी. घटना ई.बी घटित होती है और एक ईमानदार सत्यापनकर्ता मौजूद है I′ \(\in\)HSV r,s∗किसे करना चाहिए बिना कुछ प्रचारित किये भी रुकें। इस मामले में हमारे पास s∗−2 ≡1 mod 3 है और चरण s∗ एक कॉइन-फिक्स्ड-टू-1 चरण है। विश्लेषण केस 2.1.ए के समान है और कई विवरण छोड़ दिए गए हैं। 20यदि द्वेषपूर्ण है, तो वह श्रीमान को भेज सकता है,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\) अपने स्वयं के दौर आर की शुरुआत से टी2 की प्रतीक्षा करने के बाद। यहाँ से, श्रीमान,1 के लिए आवश्यक समय \(\lambda\)′ \(\ell\) शेष ईमानदार उपयोगकर्ताओं तक पहुँचने के लिए Λ की तुलना में बहुत छोटा है, और सरलता के लिए हम ऐसा नहीं करते हैं इसे विश्लेषण में लिखें. यदि 4\(\lambda\) \(\geq\) \(\lambda\)′ तो विश्लेषण बिना किसी बदलाव के चलता है: चरण 4 के अंत तक, सभी ईमानदार उपयोगकर्ताओं को श्रीमान,1 प्राप्त होगा \(\ell\). यदि ब्लॉक का आकार बहुत बड़ा हो जाता है और 4\(\lambda\) < \(\lambda\)′ हो जाता है, तो चरण 3 और 4 में, प्रोटोकॉल प्रत्येक सत्यापनकर्ता को 2\(\lambda\) के बजाय \(\lambda\)′/2 के लिए प्रतीक्षा करने के लिए कह सकता है, और विश्लेषण जारी रहेगा।पहले की तरह, खिलाड़ी i′ को फॉर्म के कम से कम tH वैध (r, s∗−1)-संदेश प्राप्त होने चाहिए (ESIGj(1), ESIGj(vj), \(\sigma\)r,s∗−1 जे ). फिर से, s∗ की परिभाषा के अनुसार, कोई चरण मौजूद नहीं है 5 \(\leq\)s′ < s∗with s′ −2 ≡0 mod 3, जहां कम से कम tH (r, s′ −1)-सत्यापिकाओं ने 0 पर हस्ताक्षर किए हैं और वही v. इस प्रकार खिलाड़ी i' बिना कुछ प्रचारित किए रुक जाता है; सेट Br = Br ǫ; और सेट उसका अपना CERT r बिट 1 के लिए वैध (r, s∗−1)-संदेशों का सेट होना चाहिए जो उसे प्राप्त हुआ है। इसके अलावा, कोई भी अन्य सत्यापनकर्ता i \(\in\)HSV r,s∗ या तो Br = Br के साथ बंद हो गया है ǫ , या द्वि = सेट किया है 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 \(\leq\) \(\alpha\)r,s∗ मैं' + ts∗\(\leq\)T r + \(\lambda\) + ts∗. केस 2.2.ए. घटना E.a घटित होती है और कोई ईमानदार सत्यापनकर्ता मौजूद नहीं है I′ \(\in\)HSV r,s∗who बिना किसी बात का प्रचार किये भी रुक जाना चाहिए. इस मामले में, ध्यान दें कि खिलाड़ी के पास वैध CERT r हो सकता है i∗वांछित से मिलकर (r, s∗−1)-संदेश विरोधी एकत्र या उत्पन्न करने में सक्षम है। हालाँकि, दुर्भावनापूर्ण सत्यापनकर्ता उन संदेशों को प्रचारित करने में मदद नहीं कर सकते हैं, इसलिए हम यह निष्कर्ष नहीं निकाल सकते कि यह ईमानदार है उपयोगकर्ता उन्हें समय पर प्राप्त करेंगे। वास्तव में, |MSV r,s∗−1| उन संदेशों में से हो सकता है दुर्भावनापूर्ण (r, s∗−1)-सत्यापनकर्ता, जिन्होंने अपने संदेशों का बिल्कुल भी प्रचार नहीं किया और केवल भेजा उन्हें चरण s∗ में दुर्भावनापूर्ण सत्यापनकर्ताओं के पास भेजें। केस 2.1.ए के समान, यहां हमारे पास s∗−2 ≡0 mod 3 है, चरण s∗ एक कॉइन-फिक्स्ड-टू-0 चरण है, और (r, s∗−1)-CERT r में संदेश i∗बिट 0 के लिए हैं और v = H(Br \(\ell\)). सचमुच, सभी ईमानदार (r, s∗−1)-सत्यापनकर्ता v पर हस्ताक्षर करते हैं, इस प्रकार प्रतिद्वंद्वी tH वैध (r, s∗−1)-संदेश उत्पन्न नहीं कर सकता है एक अलग v' के लिए। इसके अलावा, सभी ईमानदार (आर, एस∗)-सत्यापनकर्ताओं ने समय का इंतजार किया है∗और > 2/3 बहुमत नहीं दिख रहा है बिट 1 के लिए, फिर से क्योंकि |HSV r,s∗−1| + 4|MSV r,s∗−1| <2एन. इस प्रकार प्रत्येक ईमानदार सत्यापनकर्ता i \(\in\)HSV r,s∗सेट bi = 0, vi = H(Br \(\ell\)) बहुमत वोट से, और प्रचारित करता है mr,s∗ मैं = (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s∗ मैं ) समय पर \(\alpha\)r,s∗ मैं + ts∗. अब चरण s∗+ 1 (जो एक कॉइन-फिक्स्ड-टू-1 चरण है) में ईमानदार सत्यापनकर्ताओं पर विचार करें। यदि विरोधी वास्तव में CERT r में संदेश भेजता है मैं उनमें से कुछ के लिए और उन्हें कारण बनता है रुकें, फिर केस 2.1.ए के समान, सभी ईमानदार उपयोगकर्ता Br = Br जानते हैं \(\ell\)समय अंतराल के भीतर आईआर+1 और T r+1 \(\leq\)T r + \(\lambda\) + ts∗+1. अन्यथा, चरण s∗+1 के सभी ईमानदार सत्यापनकर्ताओं को 0 और के लिए सभी (r, s∗)-संदेश प्राप्त हुए हैं एच(ब्र \(\ell\)) HSV r,s∗ से प्रतीक्षा समय ts∗+1 के बाद, जिससे > 2/3 बहुमत प्राप्त होता है, क्योंकि |एचएसवी आर,एस∗| > 2|एमएसवी आर,एस∗|. इस प्रकार 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 और T r+1 \(\leq\)T r + \(\lambda\) + 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) के लिए कम से कम tH वैध संदेश प्राप्त हुए होंगे \(\ell\)) HSV s∗+2 से, यदि वे वास्तव में समय का इंतजार करते हैं ts∗+3। इस प्रकार, विरोधी संदेश भेजता है या नहीं CERT में आर i∗उनमें से किसी के लिए, HSV r,s∗+3 में सभी सत्यापनकर्ता Br = Br पर रुकते हैं \(\ell\), बिना किसी भी चीज़ का प्रचार करना. यह इस बात पर निर्भर करता है कि विरोधी कैसे कार्य करता है, उनमें से कुछ का व्यवहार हो सकता है उनका अपना CERT r जिसमें CERT r में वे (r, s∗−1)-संदेश शामिल हैं i∗, और अन्य के पास है उनका अपना CERT r उन (r, s∗+ 2)-संदेशों से युक्त है। किसी भी मामले में, सभी ईमानदार उपयोगकर्ता जानिए Br = Br \(\ell\)समय अंतराल के भीतर Ir+1 और T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3. केस 2.2.बी. घटना ई.बी घटित होती है और कोई ईमानदार सत्यापनकर्ता मौजूद नहीं है I′ \(\in\)HSV r,s∗who बिना किसी बात का प्रचार किये भी रुक जाना चाहिए. इस मामले में विश्लेषण केस 2.1.बी और केस 2.2.ए के समान है, इस प्रकार कई विवरण हैं छोड़ दिया गया है. विशेष रूप से, सीईआरटी आर i∗ में वांछित (r, s∗−1)-संदेश शामिल हैं बिट 1 के लिए जिसे विरोधी एकत्रित या उत्पन्न करने में सक्षम है, s∗−2 ≡1 mod 3, चरण s∗ एक है कॉइन-फिक्स्ड-टू-1 चरण, और कोई भी ईमानदार (आर, एस∗)-सत्यापनकर्ता 0 के लिए > 2/3 बहुमत नहीं देख सका। इस प्रकार, प्रत्येक सत्यापनकर्ता i \(\in\)HSV r,s∗ bi = 1 सेट करता है और mr,s∗ को प्रचारित करता है मैं = (ईएसआईजीआई(1), ईएसआईजीआई(vi), \(\sigma\)r,s∗ मैं ) समय पर \(\alpha\)r,s∗ मैं + ts∗. केस 2.2.ए के समान, अधिकतम 3 और चरणों में (अर्थात, प्रोटोकॉल चरण s∗+3 तक पहुंचता है, जो एक और कॉइन-फिक्स्ड-टू-1 चरण है), सभी ईमानदार उपयोगकर्ता Br = Br जानते हैं .. समय अंतराल के भीतर Ir+1. इसके अलावा, T r+1 \(\leq\)T r+\(\lambda\)+ts∗+1, या \(\leq\)T r+\(\lambda\)+ts∗+2 हो सकता है, या \(\leq\)T r + \(\lambda\) + ts∗+3, यह इस पर निर्भर करता है कि पहली बार एक ईमानदार सत्यापनकर्ता कब रुकने में सक्षम होता है बिना प्रचार किये. चार उप-मामलों को मिलाकर, हमारे पास यह है कि सभी ईमानदार उपयोगकर्ता समय अंतराल के भीतर Br को जानते हैं आईआर+1, साथ T r+1 \(\leq\)T r + \(\lambda\) + ts∗मामलों 2.1.a और 2.1.b में, और T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 केस 2.2.a और 2.2.b में। यह केस 2 के लिए ऊपरी सीमा s∗और इस प्रकार T r+1 पर बना हुआ है, और हम इस पर विचार करके ऐसा करते हैं कि कैसे कई बार कॉइन-जेनुइनली-फ़्लिप्ड चरण वास्तव में प्रोटोकॉल में निष्पादित होते हैं: अर्थात, कुछ ईमानदार सत्यापनकर्ताओं ने वास्तव में सिक्का उछाल दिया है। विशेष रूप से, मनमाने ढंग से एक सिक्का-वास्तविक-फ़्लिप्ड चरण s′ (यानी, 7 \(\leq\)s′ \(\leq\)m + 2 और s′ −2 ≡2 mod 3), और मान लीजिए \(\ell\)′ \(\triangleq\)arg minj\(\in\)SV r,s′−1 H(\(\sigma\)r,s′−1 जे ). अभी के लिए आइए मान लें कि s′ < s∗, क्योंकि अन्यथा कोई भी ईमानदार सत्यापनकर्ता वास्तव में चरण s' में सिक्का नहीं उछालता, जैसा कि पिछले विचार विमर्श. SV r,s′−1 की परिभाषा के अनुसार, \(\ell\)′ की साख का hash मान भी सबसे छोटा है 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' मैं + ts′. अगर खिलाड़ी को सिक्का उछालने की जरूरत है (यानी, उसने > 2/3 बहुमत नहीं देखा है) वही बिट b \(\in\){0, 1}), फिर वह bi = lsb(H(\(\sigma\)r,s′−1) सेट करता है \(\ell\)′ )). अगर कोई और ईमानदार मौजूद है सत्यापनकर्ता i′ \(\in\)HSV r,s′ जिसने बिट b \(\in\){0, 1} के लिए > 2/3 बहुमत देखा है, फिर संपत्ति द्वारा (डी) लेम्मा 5.5 में, एचएसवी आर, एस' में किसी भी ईमानदार सत्यापनकर्ता ने थोड़ी देर के लिए > 2/3 बहुमत नहीं देखा होगा बी′ ̸= बी. चूँकि lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )) = बी संभावना 1/2 के साथ, एचएसवी आर, एस' में सभी ईमानदार सत्यापनकर्ता पहुंचते हैं संभाव्यता 1/2 के साथ बी पर एक समझौता। निःसंदेह, यदि ऐसा कोई सत्यापनकर्ता मौजूद नहीं है, तो सब कुछ एचएसवी r,s′ में ईमानदार सत्यापनकर्ता बिट lsb(H(\(\sigma\)r,s′−1) पर सहमत हैं \(\ell\)′ )) प्रायिकता 1 के साथ। \(\ell\)′ \(\in\)HSV r,s′−1 के लिए संभाव्यता को संयोजित करने पर, हमें पता चलता है कि HSV r,s′ में ईमानदार सत्यापनकर्ता हैं कम से कम ph संभावना के साथ बिट b \(\in\){0, 1} पर एक समझौते पर पहुंचें 2 = h2(1+h−h2) 2 . इसके अलावा, पहले की तरह बहुमत के मत पर शामिल करके, एचएसवी आर,एस' में सभी ईमानदार सत्यापनकर्ताओं के पास अपना वीआई सेट है H(Br) होना \(\ell\)). इस प्रकार, चरण s′ में एक बार b पर समझौता हो जाने पर, T r+1 है या तो \(\leq\)T r + \(\lambda\) + ts′+1 या \(\leq\)T r + \(\lambda\) + ts′+2, मामले 2.1.ए और 2.1.बी के विश्लेषण के बाद, यह इस पर निर्भर करता है कि बी = 0 या बी = 1। में विशेष रूप से, आगे कोई सिक्का-वास्तविक-फ़्लिप्ड चरण निष्पादित नहीं किया जाएगा: यानी, सत्यापनकर्ता ऐसे कदम अभी भी जांचते हैं कि वे सत्यापनकर्ता हैं और इस प्रकार प्रतीक्षा करते हैं, लेकिन वे सभी बिना रुके रुक जाएंगे किसी भी चीज़ का प्रचार करना. तदनुसार, चरण s∗ से पहले, कॉइन-जेनुइनलीफ्लिप्ड चरणों को निष्पादित करने की संख्या को यादृच्छिक चर Lr के अनुसार वितरित किया जाता है। लेटिंग स्टेप एस' एलआर के अनुसार, प्रोटोकॉल के निर्माण द्वारा अंतिम सिक्का-वास्तविक-फ़्लिप्ड चरण बनें हमारे पास है एस′ = 4 + 3एलआर. यदि विरोधी टी आर+1 को अधिक से अधिक विलंबित करना चाहता है तो उसे कदम कब उठाना चाहिए संभव? हम यह भी मान सकते हैं कि प्रतिद्वंद्वी को एलआर का एहसास पहले से ही पता है। यदि s∗> s' तो यह बेकार है, क्योंकि ईमानदार सत्यापनकर्ता पहले ही एक समझौते पर पहुंच चुके हैं कदम एस'. निश्चित रूप से, इस मामले में s∗s∗s′ +1 या s′ +2 होगा, यह फिर से इस पर निर्भर करता है कि b = 0 है या नहीं या बी = 1. हालाँकि, यह वास्तव में मामले 2.1.ए और 2.1.बी हैं, और परिणामी टी आर+1 बिल्कुल वैसा ही है उस मामले में भी वैसा ही। अधिक सटीक रूप से, T r+1 \(\leq\)T r + \(\lambda\) + ts∗\(\leq\)T r + \(\lambda\) + ts′+2. यदि s∗< s′ −3—अर्थात, s∗ दूसरे-आखिरी कॉइन-जेनुइनली-फ़्लिप्ड चरण से पहले है—तो इसके द्वारा मामले 2.2.ए और 2.2.बी का विश्लेषण, T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 < T r + \(\lambda\) + ts′. अर्थात्, विरोधी वास्तव में Br पर समझौते को तेजी से पूरा कर रहा है। यदि s∗= s′ −2 या s′ −1—अर्थात, कॉइन-फिक्स्ड-टू-0 चरण या कॉइन-फिक्स्ड-टू-1 चरण चरण s' से ठीक पहले - फिर चार उप-मामलों के विश्लेषण से, ईमानदार सत्यापनकर्ता स्टेप्स' को अब सिक्कों को पलटने की सुविधा नहीं मिलती, क्योंकि वे या तो बिना प्रचार-प्रसार के बंद हो गए हैं, या एक ही बिट के लिए > 2/3 बहुमत देखा है बी। इसलिए हमारे पास है T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 \(\leq\)T r + \(\lambda\) + ts′+2.संक्षेप में, चाहे जो भी हो, हमारे पास है T r+1 \(\leq\)T r + \(\lambda\) + ts′+2 = T r + \(\lambda\) + t3Lr+6 = टी आर + \(\lambda\) + (2(3एलआर + 6) −3)\(\lambda\) + Λ = टी आर + (6एलआर + 10)\(\lambda\) + Λ, जैसा हम दिखाना चाहते थे. सबसे खराब स्थिति तब होती है जब s∗= s′ −1 और स्थिति 2.2.b होती है। बाइनरी बीए प्रोटोकॉल के केस 1 और 2 को मिलाकर, लेम्मा 5.3 कायम है। ■ 5.9 बीज क्यूआर की सुरक्षा और एक ईमानदार नेता की संभावना लेम्मा 5.4 को सिद्ध करना बाकी है। याद रखें कि राउंड आर में सत्यापनकर्ता पीकेआर−के और से लिए गए हैं मात्रा Qr−1 के अनुसार चुना जाता है। लुक-बैक पैरामीटर k शुरू करने का कारण यह सुनिश्चित करना है कि, राउंड आर -के पर, जब प्रतिद्वंद्वी नए दुर्भावनापूर्ण उपयोगकर्ताओं को जोड़ने में सक्षम हो PKr−k के लिए, वह नगण्य संभावना को छोड़कर मात्रा Qr−1 की भविष्यवाणी नहीं कर सकता है। ध्यान दें कि hash फ़ंक्शन एक यादृच्छिक oracle है और राउंड आर के लिए सत्यापनकर्ताओं का चयन करते समय Qr−1 इसके इनपुट में से एक है। इस प्रकार, इससे कोई फर्क नहीं पड़ता कि पीकेआर−के में कितने दुर्भावनापूर्ण उपयोगकर्ता जोड़े गए हैं, प्रतिद्वंद्वी के दृष्टिकोण से प्रत्येक उनमें से एक को अभी भी आवश्यक संभाव्यता पी (या) के साथ राउंड आर के एक चरण में सत्यापनकर्ता के रूप में चुना गया है चरण 1 के लिए p1)। अधिक सटीक रूप से, हमारे पास निम्नलिखित लेम्मा है। लेम्मा 5.6. k = O(log1/2 F) के साथ, प्रत्येक राउंड r के लिए, अत्यधिक संभावना के साथ प्रतिद्वंद्वी राउंड r −k पर यादृच्छिक oracle से Qr−1 से पूछताछ नहीं की। सबूत। हम प्रेरण द्वारा आगे बढ़ते हैं। मान लें कि प्रत्येक दौर \(\gamma\) < r के लिए, प्रतिद्वंद्वी ने पूछताछ नहीं की Q\(\gamma\)−1 से यादृच्छिक oracle पर वापस दौर \(\gamma\) −k.21 द्वारा खेले गए निम्नलिखित मानसिक खेल पर विचार करें राउंड r −k पर प्रतिद्वंद्वी, Qr−1 की भविष्यवाणी करने की कोशिश कर रहा है। प्रत्येक दौर के चरण 1 में \(\gamma\) = r −k, . . . , r −1, एक विशिष्ट Q\(\gamma\)−1 दिया गया है जिसे यादृच्छिक रूप से नहीं पूछा गया है oracle, खिलाड़ियों को \(\in\)PK\(\gamma\)−k को hash मान H(SIGi(\(\gamma\), 1, Q\(\gamma\)−1)) के अनुसार क्रमबद्ध करके तेजी से, हम PK\(\gamma\)−k पर एक यादृच्छिक क्रमपरिवर्तन प्राप्त करते हैं। परिभाषा के अनुसार, नेता \(\ell\) \(\gamma\) है क्रमपरिवर्तन में पहला उपयोगकर्ता और संभाव्यता एच के प्रति ईमानदार है। इसके अलावा, जब 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\) प्रतिद्वंद्वी के दृष्टिकोण से यादृच्छिक रूप से समान रूप से वितरित किया जाता है, सिवाय इसके कि घातांकीय रूप से कम संभावना के साथ, 22 से राउंड r −k पर H से पूछताछ नहीं की गई। प्रत्येक के बाद से Q\(\gamma\)+1, Q\(\gamma\)+2, . . . , Qr−1 क्रमशः Q\(\gamma\), Q\(\gamma\)+1, के साथ H का आउटपुट है। . . , इनपुट में से एक के रूप में Qr−2, वे सभी प्रतिद्वंद्वी को यादृच्छिक लगते हैं और प्रतिद्वंद्वी H पर Qr−1 से प्रश्न नहीं पूछ सकता था गोल आर −क. तदनुसार, यह एकमात्र मामला है जहां प्रतिद्वंद्वी राउंड में अच्छी संभावना के साथ Qr−1 की भविष्यवाणी कर सकता है r−k तब होता है जब सभी नेता \(\ell\)r−k, . . . , \(\ell\)r−1 दुर्भावनापूर्ण हैं। फिर से एक गोल \(\gamma\) \(\in\){r−k पर विचार करें। . . , r−1} और संबंधित hash मानों से प्रेरित PK\(\gamma\)−k पर यादृच्छिक क्रमपरिवर्तन। अगर कुछ के लिए x \(\geq\)2, क्रमपरिवर्तन में पहले x −1 उपयोगकर्ता सभी दुर्भावनापूर्ण हैं और x-th ईमानदार है, फिर प्रतिद्वंद्वी के पास Q\(\gamma\) के लिए x संभावित विकल्प हैं: या तो H(SIGi(Q\(\gamma\)−1, \(\gamma\))) के रूप में, जहां i इनमें से एक है 21चूंकि k एक छोटा पूर्णांक है, व्यापकता के नुकसान के बिना कोई यह मान सकता है कि प्रोटोकॉल के पहले k राउंड चलाए गए हैं एक सुरक्षित वातावरण में और आगमनात्मक परिकल्पना उन दौरों के लिए मान्य है। 22अर्थात, H के आउटपुट की लंबाई में घातीय है। ध्यान दें कि यह संभावना F से बहुत छोटी है।पहले x−1 दुर्भावनापूर्ण उपयोगकर्ता, खिलाड़ियों को वास्तव में राउंड \(\gamma\) का लीडर बनाकर; या H(Q\(\gamma\)−1, \(\gamma\)), द्वारा मजबूरन B\(\gamma\) = B\(\gamma\) .. . अन्यथा, राउंड का नेता क्रमपरिवर्तन में पहला ईमानदार उपयोगकर्ता होगा और Qr−1 प्रतिद्वंद्वी के लिए अप्रत्याशित हो जाता है। प्रतिद्वंद्वी को Q\(\gamma\) के उपरोक्त x विकल्पों में से कौन सा विकल्प अपनाना चाहिए? शत्रु की सहायता करना इस प्रश्न का उत्तर दें, मानसिक खेल में हम वास्तव में उसे वास्तव में उससे अधिक शक्तिशाली बनाते हैं है, इस प्रकार. सबसे पहले, वास्तव में, प्रतिद्वंद्वी एक ईमानदार उपयोगकर्ता के hash की गणना नहीं कर सकता है हस्ताक्षर, इस प्रकार, प्रत्येक Q\(\gamma\) के लिए, शुरुआत में दुर्भावनापूर्ण उपयोगकर्ताओं की संख्या x(Q\(\gamma\)) तय नहीं कर सकता है Q\(\gamma\) द्वारा प्रेरित दौर \(\gamma\) + 1 में यादृच्छिक क्रमपरिवर्तन का। मानसिक खेल में, हम उसे देते हैं संख्या x(Q\(\gamma\)) निःशुल्क। दूसरा, वास्तव में, क्रमपरिवर्तन में पहले x उपयोगकर्ता होना दुर्भावनापूर्ण होने का मतलब यह नहीं है कि उन सभी को नेता बनाया जा सकता है, क्योंकि hash उनके हस्ताक्षरों का मान भी p1 से कम होना चाहिए। हमने मानसिक रूप से इस बाधा को नजरअंदाज कर दिया है खेल, प्रतिद्वंद्वी को और भी अधिक लाभ देता है। यह देखना आसान है कि मानसिक खेल में, प्रतिद्वंद्वी के लिए इष्टतम विकल्प, जिसे ˆQ\(\gamma\) द्वारा दर्शाया जाता है, वह है जो रैंडम की शुरुआत में दुर्भावनापूर्ण उपयोगकर्ताओं का सबसे लंबा अनुक्रम उत्पन्न करता है राउंड \(\gamma\) + 1 में क्रमपरिवर्तन। वास्तव में, एक विशिष्ट Q\(\gamma\) दिया गया है, प्रोटोकॉल Q\(\gamma\)−1 पर निर्भर नहीं करता है अब और प्रतिद्वंद्वी केवल \(\gamma\) + 1 दौर में नए क्रमपरिवर्तन पर ध्यान केंद्रित कर सकता है, जिसमें है शुरुआत में दुर्भावनापूर्ण उपयोगकर्ताओं की संख्या के लिए समान वितरण। तदनुसार, प्रत्येक दौर में \(\gamma\), उपर्युक्त ˆQ\(\gamma\) उसे Q\(\gamma\)+1 के लिए विकल्पों की सबसे बड़ी संख्या देता है और इस प्रकार अधिकतम होता है संभावना यह है कि लगातार सभी नेता दुर्भावनापूर्ण हैं। इसलिए, मानसिक खेल में प्रतिद्वंद्वी राउंड आर -के से मार्कोव चेन का अनुसरण कर रहा है r −1 को पूर्णांकित करने के लिए, अवस्था स्थान {0} \(\cup\){x : x \(\geq\)2} के साथ। राज्य 0 इस तथ्य को दर्शाता है कि वर्तमान दौर में यादृच्छिक क्रमपरिवर्तन में पहला उपयोगकर्ता ईमानदार है, इस प्रकार प्रतिद्वंद्वी विफल रहता है Qr−1 की भविष्यवाणी के लिए खेल; और प्रत्येक स्थिति x \(\geq\)2 इस तथ्य का प्रतिनिधित्व करती है कि पहले x −1 उपयोगकर्ता क्रमपरिवर्तन दुर्भावनापूर्ण है और x-th ईमानदार है, इस प्रकार प्रतिद्वंद्वी के पास Q\(\gamma\) के लिए x विकल्प हैं। द संक्रमण संभावनाएँ P(x, y) इस प्रकार हैं। • किसी भी y \(\geq\)2 के लिए P(0, 0) = 1 और P(0, y) = 0। अर्थात्, प्रतिद्वंद्वी पहली बार खेल को विफल कर देता है क्रमपरिवर्तन में उपयोगकर्ता ईमानदार हो जाता है। • किसी भी x \(\geq\)2 के लिए P(x, 0) = hx। अर्थात्, संभाव्यता hx के साथ, सभी x यादृच्छिक क्रमपरिवर्तन होते हैं उनके पहले उपयोगकर्ता ईमानदार हैं, इस प्रकार प्रतिद्वंद्वी अगले दौर में खेल को विफल कर देता है। • किसी भी x \(\geq\)2 और y \(\geq\)2 के लिए, P(x, y) संभावना है कि, x यादृच्छिक क्रमपरिवर्तन के बीच Q\(\gamma\) के x विकल्पों से प्रेरित, शुरुआत में दुर्भावनापूर्ण उपयोगकर्ताओं का सबसे लंबा अनुक्रम उनमें से कुछ y −1 है, इस प्रकार प्रतिद्वंद्वी के पास अगले दौर में Q\(\gamma\)+1 के लिए y विकल्प हैं। अर्थात्, पी(एक्स, वाई) = y−1 एक्स मैं=0 (1 −एच)आईएच !x − y−2 एक्स मैं=0 (1 −एच)आईएच !x = (1 −(1 −h)y)x −(1 −(1 −h)y−1)x. ध्यान दें कि अवस्था 0 संक्रमण मैट्रिक्स P और अन्य सभी अवस्थाओं में अद्वितीय अवशोषण अवस्था है x के 0 पर जाने की सकारात्मक संभावना है। हम संख्या k की ऊपरी सीमा तय करने में रुचि रखते हैं मार्कोव श्रृंखला को अत्यधिक संभावना के साथ 0 पर एकत्रित करने के लिए आवश्यक राउंड: यानी, नहीं इससे कोई फर्क नहीं पड़ता कि श्रृंखला किस राज्य से शुरू होती है, इस बात की अत्यधिक संभावना है कि प्रतिद्वंद्वी खेल हार जाए और राउंड r −k पर Qr−1 की भविष्यवाणी करने में विफल रहता है। दो राउंड के बाद संक्रमण मैट्रिक्स P (2) \(\triangleq\)P \(\cdot\) P पर विचार करें। यह देखना आसान है कि P (2)(0, 0) = 1 और किसी भी x \(\geq\)2 के लिए P (2)(0, x) = 0. किसी भी x \(\geq\)2 और y \(\geq\)2 के लिए, जैसे P(0, y) = 0, हमारे पास है पी (2)(एक्स, वाई) = पी(एक्स, 0)पी(0, वाई) + एक्स z\(\geq\)2 पी(एक्स, जेड)पी(जेड, वाई) = एक्स z\(\geq\)2 पी(एक्स, जेड)पी(जेड, वाई).मान लीजिए ¯h \(\triangleq\)1 −h, हमारे पास है P(x, y) = (1 −¯hy−1)x और पी (2)(एक्स, वाई) = एक्स z\(\geq\)2 [(1 −¯hz)x -(1 −¯hz−1)x][(1 −¯hy)z -(1 −¯hy−1)z]। नीचे हम P (2)(x,y) की सीमा की गणना करते हैं पी (एक्स,वाई) जैसे h, 1 पर जाता है—अर्थात, ¯h 0 पर जाता है। ध्यान दें कि उच्चतम P(x, y) में ¯h का क्रम ¯hy−1 है, गुणांक x के साथ। तदनुसार, लिम ज→1 पी (2)(एक्स, वाई) पी(एक्स, वाई) = लिम ¯h \(\to\) 0 पी (2)(एक्स, वाई) पी(एक्स, वाई) = लिम ¯h \(\to\) 0 पी (2)(एक्स, वाई) x¯hy−1 + O(¯hy) = लिम ¯h \(\to\) 0 पी z\(\geq\)2[x¯hz−1 + O(¯hz)][z¯hy−1 + O(¯hy)] x¯hy−1 + O(¯hy) = लिम ¯h \(\to\) 0 2x¯hy + O(¯hy+1) x¯hy−1 + O(¯hy) = लिम ¯h \(\to\) 0 2x¯hy x¯hy−1 = lim ¯h \(\to\) 0 2¯h = 0. जब h पर्याप्त रूप से 1,23 के करीब होता है तो हमारे पास होता है पी (2)(एक्स, वाई) पी(एक्स, वाई) \(\leq\)1 2 किसी भी x \(\geq\)2 और y \(\geq\)2 के लिए। प्रेरण द्वारा, किसी भी k > 2 के लिए, P (k) \(\triangleq\)P k ऐसा है • किसी भी x \(\geq\)2 के लिए P (k)(0, 0) = 1, P (k)(0, x) = 0, और • किसी भी x \(\geq\)2 और y \(\geq\)2 के लिए, P (k)(x, y) = P (k−1)(x, 0)P(0, y) + एक्स z\(\geq\)2 P (k−1)(x, z)P(z, y) = एक्स z\(\geq\)2 P (k−1)(x, z)P(z, y) \(\leq\) एक्स z\(\geq\)2 पी(एक्स, जेड) 2k−2 \(\cdot\) पी(जेड, वाई) = पी (2)(एक्स, वाई) 2k−2 \(\leq\)P(x, y) 2k−1 . चूंकि P(x, y) \(\leq\)1, 1−log2 F राउंड के बाद, किसी भी अवस्था y \(\geq\)2 में संक्रमण की संभावना नगण्य है, किसी भी अवस्था x \(\geq\)2 से शुरू करना। हालाँकि ऐसे कई राज्य हैं, यह देखना आसान है लिम y→+∞ पी(एक्स, वाई) पी(एक्स, वाई + 1) = लिम y→+∞ (1 −¯hy)x -(1 −¯hy−1)x (1 −¯hy+1)x −(1 −¯hy)x = लिम y→+∞ ¯hy−1 −¯hy ¯hy −¯hy+1 = 1 ¯ह = 1 1 −एच. इसलिए संक्रमण मैट्रिक्स P की प्रत्येक पंक्ति x दर के साथ एक ज्यामितीय अनुक्रम के रूप में घटती है 1 1−h > 2 जब y काफी बड़ा हो, और यही बात P (k) के लिए भी लागू होती है। तदनुसार, जब k काफी बड़ा है लेकिन फिर भी लॉग 1/2 एफ, पी के क्रम पर y\(\geq\)2 P (k)(x, y) < F किसी भी x \(\geq\)2 के लिए। यानी अत्यधिक संभावना के साथ प्रतिद्वंद्वी गेम हार जाता है और राउंड r -k पर Qr−1 की भविष्यवाणी करने में विफल रहता है। h \(\in\)(2/3, 1] के लिए, और अधिक जटिल विश्लेषण से पता चलता है कि 1/2 से थोड़ा बड़ा एक स्थिरांक C मौजूद है, जैसे कि यह पर्याप्त है k = O(logC F) लेने के लिए। इस प्रकार लेम्मा 5.6 कायम है। ■ लेम्मा 5.4. (पुनः कहा गया) r से पहले प्रत्येक दौर के लिए गुण 1-3 दिए गए हैं, Lr के लिए ph = h2(1 + h −h2), और नेता \(\ell\)r संभाव्यता के साथ कम से कम ph ईमानदार है। 23 उदाहरण के लिए, h = 80%, जैसा कि मापदंडों के विशिष्ट विकल्पों द्वारा सुझाया गया है।

सबूत. लेम्मा 5.6 के बाद, प्रतिद्वंद्वी राउंड आर -के पर क्यूआर-1 की भविष्यवाणी नहीं कर सकता, सिवाय इसके कि नगण्य संभावना. ध्यान दें कि इसका मतलब यह नहीं है कि एक ईमानदार नेता की संभावना कम है प्रत्येक दौर. दरअसल, Qr−1 दिया गया है, यह इस बात पर निर्भर करता है कि शुरुआत में कितने दुर्भावनापूर्ण उपयोगकर्ता हैं PKr−k के यादृच्छिक क्रमपरिवर्तन से, प्रतिद्वंद्वी के पास Qr और के लिए एक से अधिक विकल्प हो सकते हैं इस प्रकार राउंड आर + 1 में एक दुर्भावनापूर्ण नेता की संभावना बढ़ सकती है - फिर से हम उसे दे रहे हैं लेम्मा 5.6 में कुछ अवास्तविक लाभ, ताकि विश्लेषण को सरल बनाया जा सके। हालाँकि, प्रत्येक Qr−1 के लिए जो राउंड r −k पर प्रतिद्वंद्वी द्वारा H से नहीं पूछा गया था, के लिए कोई भी 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) है। ध्यान दें कि उपरोक्त संभावना केवल राउंड आर -के से प्रोटोकॉल में यादृच्छिकता पर विचार करती है आर को गोल करने के लिए जब राउंड 0 से राउंड आर तक सभी यादृच्छिकता को ध्यान में रखा जाता है, तो Qr−1 होता है प्रतिद्वंद्वी के लिए पूर्वानुमान और भी कम है और राउंड आर + 1 में एक ईमानदार नेता की संभावना है न्यूनतम h2(1 + h −h2). r + 1 को r से प्रतिस्थापित करना और सभी चीज़ों को एक राउंड पीछे खिसकाना, नेता \(\ell\)r इच्छानुसार कम से कम h2(1 + h −h2) संभाव्यता के साथ ईमानदार है। इसी तरह, प्रत्येक कॉइन-जेनुइनली-फ़्लिप्ड चरण में, उस चरण का "नेता" - वह सत्यापनकर्ता है SV r,s में जिसका क्रेडेंशियल सबसे छोटा hash मान है, कम से कम h2(1 +) संभाव्यता के साथ ईमानदार है h −h2). इस प्रकार Lr के लिए ph = h2(1 + h −h2) और लेम्मा 5.4 कायम है। ■

Algorand ′

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

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

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

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

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

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

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

Algorand '

2 इस खंड में, हम निम्नलिखित धारणा के तहत काम करते हुए Algorand ' का एक संस्करण बनाते हैं। अधिकांश उपयोगकर्ता ईमानदार हैं। धारणा: प्रत्येक पीकेआर में 2/3 से अधिक उपयोगकर्ता ईमानदार हैं। धारा 8 में, हम दिखाते हैं कि उपरोक्त धारणा को वांछित ईमानदार बहुमत से कैसे बदला जाए धन संबंधी धारणा. 6.1 Algorand के लिए अतिरिक्त नोटेशन और पैरामीटर 2 संकेतन • \(\mu\) \(\in\)Z+: चरणों की संख्या के लिए एक व्यावहारिक ऊपरी सीमा, जो अत्यधिक संभावना के साथ, वास्तव में एक राउंड में लिया जाएगा। (जैसा कि हम देखेंगे, पैरामीटर \(\mu\) कितने अल्पकालिक को नियंत्रित करता है उपयोगकर्ता प्रत्येक दौर के लिए पहले से कुंजी तैयार करता है।) • एलआर: एक यादृच्छिक चर जो प्रत्येक को 1 देखने के लिए आवश्यक बर्नौली परीक्षणों की संख्या का प्रतिनिधित्व करता है प्रायिकता ph के साथ परीक्षण 1 है 2 . एलआर का उपयोग उत्पन्न करने के लिए आवश्यक समय को ऊपरी सीमा में करने के लिए किया जाएगा ब्लॉक ब्र. • वें: राउंड आर के चरण एस > 1 में ईमानदार सत्यापनकर्ताओं की संख्या के लिए निचली सीमा, जैसे कि अत्यधिक संभावना (एन और पी को देखते हुए), एसवी आर, एस में > वें ईमानदार सत्यापनकर्ता हैं। पैरामीटर्स • विभिन्न मापदंडों के बीच संबंध। - राउंड आर के प्रत्येक चरण s > 1 के लिए, n को चुना गया है ताकि, अत्यधिक संभावना के साथ,

|एचएसवी आर,एस| > वें और |एचएसवी आर,एस| + 2|एमएसवी आर,एस| <2टीएच. ध्यान दें कि उपरोक्त दोनों असमानताएँ एक साथ |HSV r,s| दर्शाती हैं > 2|एमएसवी आर,एस|: यानी, वहाँ चयनित सत्यापनकर्ताओं के बीच 2/3 ईमानदार बहुमत है। h का मान 1 के जितना करीब होगा, n उतना ही छोटा होना चाहिए। विशेष रूप से, हम (वेरिएंट) का उपयोग करते हैं का) चेर्नोफ़िबाउंड यह सुनिश्चित करने के लिए कि वांछित स्थितियाँ अत्यधिक संभावना के साथ बनी रहें। • महत्वपूर्ण मापदंडों के उदाहरण विकल्प। — एफ = 10−18. - n \(\approx\)4000, th \(\approx\)0.69n, k = 70. 6.2 Algorand में अल्पकालिक कुंजियाँ लागू करना 2 याद रखें कि एक सत्यापनकर्ता i\(\in\)SV r,s डिजिटल रूप से अपने संदेश पर हस्ताक्षर करता है mr,s मैं राउंड आर में चरण एस के सापेक्ष एक अल्पकालिक सार्वजनिक कुंजी पीकेआर,एस मैं, एक क्षणिक गुप्त कुंजी skr,s का उपयोग कर रहा हूँ मैं जिसे वह तुरंत नष्ट कर देता है उपयोग करने के बाद. जब एक राउंड में उठाए जाने वाले संभावित कदमों की संख्या किसी दिए गए द्वारा सीमित हो जाती है पूर्णांक \(\mu\), हम पहले ही देख चुके हैं कि अल्पकालिक कुंजियों को व्यावहारिक रूप से कैसे संभालना है। उदाहरण के लिए, जैसे हम Algorand में समझाया है'' 1 (जहाँ \(\mu\) = m + 3), उसकी सभी संभावित क्षणिक कुंजियों को संभालने के लिए, से एक राउंड आर' से एक राउंड आर' + 106, मैं एक जोड़ी (पीएमके, एसएमके) उत्पन्न करता हूं, जहां पीएमके सार्वजनिक मास्टर है पहचान आधारित हस्ताक्षर योजना की कुंजी, और एसएमके इसकी संबंधित गुप्त मास्टर कुंजी। उपयोगकर्ता मैं पीएमके का प्रचार करता है और प्रत्येक संभावित अल्पकालिक सार्वजनिक कुंजी की गुप्त कुंजी उत्पन्न करने के लिए एसएमके का उपयोग करता है (और ऐसा करने के बाद SMK को नष्ट कर देता है)। प्रासंगिक के लिए i की अल्पकालिक सार्वजनिक कुंजियों का सेट राउंड S = {i} \(\times\) {r', है। . . , आर' + 106} \(\times\) {1, . . . , \(\mu\)}. (जैसा कि चर्चा की गई है, जैसे-जैसे राउंड आर' + 106 करीब आता है, मैं उसकी जोड़ी (पीएमके, एसएमके) को "ताज़ा" करता हूं।) व्यवहार में, यदि \(\mu\) पर्याप्त बड़ा है, तो Algorand ′ का एक चक्र 2 \(\mu\) कदम से अधिक नहीं लगेगा। में सिद्धांत रूप में, हालाँकि, इस बात की बहुत कम संभावना है कि, कुछ राउंड के लिए चरणों की संख्या होगी वास्तव में लिया गया \(\mu\) से अधिक होगा। जब ऐसा होगा तो मैं उनके संदेश पर हस्ताक्षर नहीं कर पाऊंगा श्रीमान मैं के लिए कोई भी चरण s > \(\mu\), क्योंकि उसने राउंड आर के लिए केवल \(\mu\) गुप्त कुंजियाँ पहले से तैयार कर रखी हैं। इसके अलावा, वह जैसा कि पहले चर्चा की गई थी, अल्पकालिक कुंजियों का एक नया भंडार तैयार और प्रचारित नहीं किया जा सका। वास्तव में, करने के लिए इसलिए, उसे एक नए ब्लॉक में एक नई सार्वजनिक मास्टर कुंजी PMK′ डालने की आवश्यकता होगी। लेकिन, आर को गोल करना चाहिए अधिक से अधिक कदम उठाएं, कोई नया ब्लॉक उत्पन्न नहीं होगा। हालाँकि, समाधान मौजूद हैं। उदाहरण के लिए, मैं राउंड आर, पीकेआर,\(\mu\) की अंतिम क्षणिक कुंजी का उपयोग कर सकता हूं मैं , इस प्रकार. वह राउंड आर के लिए कुंजी-जोड़ियों का एक और भंडार उत्पन्न करता है - उदाहरण के लिए, (1) एक और उत्पन्न करके मास्टर कुंजी जोड़ी (पीएमके, एसएमके); (2) इस जोड़ी का उपयोग अन्य, मान लीजिए, 106 क्षणिक कुंजियाँ उत्पन्न करने के लिए, एसके आर,\(\mu\)+1 मैं , . . . , एसके आर,\(\mu\)+106 मैं , राउंड आर के चरण \(\mu\)+1, ..., \(\mu\)+106 के अनुरूप; (3) skr,\(\mu\) का उपयोग करना मैं डिजिटल रूप से पीएमके पर हस्ताक्षर करें (और कोई (आर, \(\mu\))-संदेश यदि मैं \(\in\)एसवी आर,\(\mu\)), पीकेआर,\(\mu\) के सापेक्ष मैं ; और (4) SMK और skr,\(\mu\) को मिटाना मैं . क्या मुझे s \(\in\){1, के साथ \(\mu\) + s चरण में एक सत्यापनकर्ता बनना चाहिए। . . , 106}, फिर मैं डिजिटल रूप से उसके (आर, \(\mu\) + एस) पर हस्ताक्षर करता हूं - संदेश श्री,\(\mu\)+s मैं उसकी नई कुंजी पीके के सापेक्ष आर,\(\mu\)+एस मैं = (i, r, \(\mu\) + s). बेशक, इस हस्ताक्षर को सत्यापित करने के लिए मैं, अन्य लोगों को यह सुनिश्चित करने की आवश्यकता है कि यह सार्वजनिक कुंजी मेरी नई सार्वजनिक मास्टर कुंजी पीएमके से मेल खाती है। इस प्रकार, इस हस्ताक्षर के अलावा, मैं पीकेआर,\(\mu\) के सापेक्ष पीएमके के अपने डिजिटल हस्ताक्षर प्रसारित करता हूं मैं . बेशक, इस दृष्टिकोण को दोहराया जा सकता है, जितनी बार आवश्यक हो, राउंड आर जारी रहना चाहिए अधिक से अधिक चरणों के लिए! अंतिम अल्पकालिक गुप्त कुंजी का उपयोग नए मास्टर पब्लिक को प्रमाणित करने के लिए किया जाता है कुंजी, और इस प्रकार राउंड आर के लिए क्षणिक कुंजियों का एक और भंडार। और इसी तरह।6.3 वास्तविक प्रोटोकॉल Algorand ' 2 फिर से याद करें कि, राउंड आर के प्रत्येक चरण में, एक सत्यापनकर्ता i \(\in\)SV r,s अपने दीर्घकालिक सार्वजनिक-गुप्त का उपयोग करता है उसकी साख, \(\sigma\)r,s बनाने के लिए कुंजी जोड़ी मैं \(\triangleq\)SIGi(r, s, Qr−1), साथ ही SIGi Qr−1 मामले में एस = 1. सत्यापनकर्ता मैं उसकी क्षणिक कुंजी जोड़ी, (पीकेआर, एस) का उपयोग करता हूं मैं , एसकेआर,एस i ), किसी अन्य संदेश पर हस्ताक्षर करने के लिए m जो हो सकता है आवश्यक. सरलता के लिए, हम sigpkr,s के बजाय esigi(m) लिखते हैं i (m), i के उचित क्षणभंगुर को दर्शाने के लिए इस चरण में m का हस्ताक्षर करें, और SIGpkr,s के स्थान पर ESIGi(m) लिखें i (m) \(\triangleq\)(i, m, esigi(m)). चरण 1: प्रस्ताव को ब्लॉक करें प्रत्येक उपयोगकर्ता i \(\in\)PKr−k के लिए निर्देश: उपयोगकर्ता i जैसे ही राउंड आर का अपना पहला चरण शुरू करता है 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, अर्थात, यदि मैं एक संभावित नेता है, तो वह निम्नलिखित कार्य करता है। (ए) अगर मैंने बी0 देखा है। . . , Br−1 स्वयं (कोई भी Bj = Bj ǫ को इसके hash मान से आसानी से प्राप्त किया जा सकता है सीईआरटी जे में और इस प्रकार इसे "देखा गया" माना जाता है), फिर वह राउंड-आर भुगतान एकत्र करता है अब तक उसे प्रचारित किया गया है और अधिकतम भुगतान सेट PAY r की गणना की गई है मैं उनसे. (बी) यदि मैंने सभी B0 नहीं देखे हैं। . . , Br−1 अभी तक, फिर वह PAY r सेट करता है मैं = \(\emptyset\). (सी) इसके बाद, मैं उसके "उम्मीदवार ब्लॉक" ब्र की गणना करता हूं मैं = (आर, भुगतान आर i , SIGi(Qr−1), H(Br−1)). (सी) अंत में, मैं संदेश की गणना करता हूं श्रीमान, 1 मैं = (ब्र मैं , ईएसजीआई(एच(बीआर मैं )), \(\sigma\)r,1 i ), उसके क्षणभंगुर को नष्ट कर देता है गुप्त कुंजी skr,1 i , और फिर दो संदेश प्रसारित करता है, श्रीमान,1 मैं और (SIGi(Qr−1), \(\sigma\)r,1 मैं ), अलग-अलग लेकिन एक साथ.ए जब मैं नेता होता हूं, तो SIGi(Qr−1) दूसरों को Qr = H(SIGi(Qr−1), r) की गणना करने की अनुमति देता है।

चयनात्मक प्रचार चरण 1 और पूरे दौर के वैश्विक निष्पादन को छोटा करने के लिए, यह महत्वपूर्ण है कि (आर, 1)- संदेशों को चुनिंदा तरीके से प्रचारित किया जाता है। अर्थात्, सिस्टम में प्रत्येक उपयोगकर्ता j के लिए, • पहले के लिए (आर, 1)-संदेश जिसे वह कभी प्राप्त करता है और सफलतापूर्वक सत्यापित करता है, क्या इसमें शामिल है एक ब्लॉक या सिर्फ एक क्रेडेंशियल और Qr−1 का हस्ताक्षर है, प्लेयर j इसे हमेशा की तरह प्रचारित करता है। • अन्य सभी (आर, 1)-संदेशों के लिए जो खिलाड़ी जे प्राप्त करता है और सफलतापूर्वक सत्यापित करता है, वह प्रचारित करता है यह केवल तभी होगा जब इसमें शामिल क्रेडेंशियल का hash मान hash मानों में सबसे छोटा हो सभी (आर, 1)-संदेशों में निहित क्रेडेंशियल्स में से उसे प्राप्त किया गया है और सफलतापूर्वक सत्यापित किया गया है दूर. हालाँकि, यदि j को mr,1 फॉर्म के दो अलग-अलग संदेश प्राप्त होते हैं मैं एक ही खिलाड़ी से i,b he दूसरे को खारिज कर देता है, चाहे मेरे क्रेडेंशियल का hash मान कुछ भी हो। ध्यान दें कि, चयनात्मक प्रचार के तहत यह उपयोगी है कि प्रत्येक संभावित नेता अपना प्रचार करे क्रेडेंशियल \(\sigma\)r,1 मैं श्रीमान से अलग,1 मैं :c वे छोटे संदेश ब्लॉकों की तुलना में तेजी से यात्रा करते हैं, सुनिश्चित करें श्रीमान् का समय पर प्रचार-प्रसार,1 i वह जगह है जहां निहित क्रेडेंशियल में छोटे hash मान हैं, जबकि बड़े hash मानों को तुरंत गायब कर दें। अर्थात्, सभी हस्ताक्षर सही हैं और, यदि यह श्रीमान, 1 के रूप में है i, ब्लॉक और उसके hash दोनों वैध हैं -हालाँकि j यह जाँच नहीं करता है कि शामिल भुगतान सेट i के लिए अधिकतम है या नहीं। bजिसका अर्थ है कि मैं दुर्भावनापूर्ण हूं। हम यह सुझाव देने के लिए जॉर्जियोस व्लाचोस को धन्यवाद देते हैं।चरण 2: ग्रेडेड सर्वसम्मति प्रोटोकॉल जीसी का पहला चरण प्रत्येक उपयोगकर्ता i \(\in\)PKr−k के लिए निर्देश: उपयोगकर्ता i जैसे ही राउंड आर का अपना चरण 2 शुरू करता है CERT r−1. • उपयोगकर्ता i अधिकतम समय t2 \(\triangleq\) \(\lambda\) + Λ प्रतीक्षा करता है। प्रतीक्षा करते समय, मैं निम्नानुसार कार्य करता हूँ। 1. समय 2\(\lambda\) की प्रतीक्षा करने के बाद, वह उपयोगकर्ता को ढूंढता है \(\ell\)जैसे कि H(\(\sigma\)r,1) \(\ell\)) \(\leq\)H(\(\sigma\)r,1 जे ) सभी के लिए क्रेडेंशियल्स \(\sigma\)r,1 जे जो उसे प्राप्त सफलतापूर्वक सत्यापित (आर, 1)-संदेशों का हिस्सा हैं अब तक.ए 2. यदि वह है प्राप्त ए ब्लॉक ब्र−1, जो मेल खाता है द hash मूल्य एच(बीआर−1) CERT r−1,b में निहित है और यदि उसे \(\ell\)a वैध संदेश mr,1 से प्राप्त हुआ है \(\ell\) = (ब्र \(\ell\), esig\(\ell\)(H(Br \(\ell\))), \(\sigma\)r,1 \(\ell\)),c फिर मैं प्रतीक्षा करना बंद कर देता हूं और v′ सेट करता हूं मैं \(\triangleq\)(एच(ब्र \(\ell\)), \(\ell\)). 3. अन्यथा, जब समय t2 समाप्त हो जाता है, तो मैं v' सेट करता हूं मैं \(\triangleq\) \(\bot\). 4. जब v' का मान i सेट कर दिया गया है, मैं CERT r−1 से Qr−1 की गणना करता हूं और जांचता हूं कि क्या i \(\in\)SV r,2 या नहीं। 5. यदि i \(\in\)SV r,2, तो मैं संदेश mr,2 की गणना करता हूं मैं \(\triangleq\)(ESIGi(v′ मैं), \(\sigma\)r,2 i ),d उसके क्षणभंगुर को नष्ट कर देता है गुप्त कुंजी skr,2 i , और फिर श्रीमान,2 का प्रचार करता है मैं . अन्यथा, मैं बिना प्रचार किये ही रुक जाता हूँ कुछ भी. अनिवार्य रूप से, उपयोगकर्ता i निजी तौर पर निर्णय लेता है कि राउंड आर का नेता उपयोगकर्ता \(\ell\) है। बेशक, यदि CERT r−1 इंगित करता है कि Br−1 = Br−1 .. , तो मुझे वह क्षण पहले ही "प्राप्त" हो चुका है CERT r−1. फिर, खिलाड़ी \(\ell\) के हस्ताक्षर और hashes सभी सफलतापूर्वक सत्यापित हैं, और भुगतान करें \(\ell\)ब्र में \(\ell\)के लिए एक वैध भुगतान सेट है राउंड आर - हालाँकि मैं यह जाँच नहीं करता कि PAY r है या नहीं \(\ell\)के लिए अधिकतम है या नहीं। यदि ब्र \(\ell\)तब इसमें एक खाली भुगतान सेट होता है यह सत्यापित करने से पहले कि क्या Br है, वास्तव में मुझे Br−1 देखने की कोई आवश्यकता नहीं है \(\ell\)वैध है या नहीं। dसंदेश श्रीमान,2 मैं संकेत है कि खिलाड़ी मैं v′ का पहला घटक मानता हूं मैं अगले ब्लॉक का hash बनूंगा, या अगले ब्लॉक को खाली मानता है।

चरण 3: जीसी का दूसरा चरण प्रत्येक उपयोगकर्ता i \(\in\)PKr−k के लिए निर्देश: उपयोगकर्ता i जैसे ही राउंड आर का अपना चरण 3 शुरू करता है CERT r−1. • उपयोगकर्ता i अधिकतम समय तक प्रतीक्षा करता है t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ। प्रतीक्षा करते समय, मैं कार्य करता हूँ अनुसरण करता है। 1. यदि कोई मान v मौजूद है जैसे कि उसे कम से कम tH वैध संदेश mr,2 प्राप्त हुए हों जे का फॉर्म (ESIGj(v), \(\sigma\)r,2 जे ), बिना किसी विरोधाभास के, फिर वह इंतजार करना बंद कर देता है और सेट हो जाता है वी′ = वी. 2. अन्यथा, जब समय t3 समाप्त हो जाता है, तो वह v′ = \(\bot\) सेट कर देता है। 3. जब v′ का मान निर्धारित किया गया है, तो मैं CERT r−1 से Qr−1 की गणना करता हूं और जांचता हूं कि क्या i \(\in\)SV r,3 या नहीं। 4. यदि i \(\in\)SV r,3, तो मैं संदेश mr,3 की गणना करता हूं मैं \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 i ), उसे नष्ट कर देता है क्षणिक गुप्त कुंजी skr,3 मैं , और फिर श्रीमान,3 का प्रचार करता हूँ मैं . अन्यथा, मैं बिना रुके रुक जाता हूँ किसी भी चीज़ का प्रचार करना. अर्थात, उसे क्रमशः ESIGj(v) और एक अलग ESIGj(ˆv) वाले दो वैध संदेश प्राप्त नहीं हुए हैं, एक खिलाड़ी से जे. यहां और यहां से आगे, बाद में परिभाषित अंतिम स्थितियों को छोड़कर, जब भी कोई ईमानदार खिलाड़ी हो किसी दिए गए रूप के संदेश चाहता है, एक-दूसरे का खंडन करने वाले संदेशों को कभी भी गिना या मान्य नहीं माना जाता है।

चरण 4: जीसी का आउटपुट और बीबीए⋆ का पहला चरण प्रत्येक उपयोगकर्ता i \(\in\)PKr−k के लिए निर्देश: उपयोगकर्ता i जैसे ही राउंड आर का अपना चरण 4 शुरू करता है अपना स्वयं का चरण 3 समाप्त करता है। • उपयोगकर्ता i अधिकतम 2\(\lambda\) समय तक प्रतीक्षा करता है। प्रतीक्षा करते समय, i निम्नानुसार कार्य करता है। 1. वह जीसी के आउटपुट vi और gi की गणना निम्नानुसार करता है। (ए) यदि कोई मान मौजूद है v′ ̸= \(\bot\)जैसे कि उसे कम से कम tH वैध संदेश प्राप्त हुए हों श्रीमान,3 जे = (ESIGj(v′), \(\sigma\)r,3 j ), फिर वह प्रतीक्षा करना बंद कर देता है और vi \(\triangleq\)v′ और gi \(\triangleq\)2 सेट करता है। (बी) यदि उसे कम से कम वैध संदेश प्राप्त हुए हैं श्रीमान,3 जे = (ESIGj(\(\bot\)), \(\sigma\)r,3 j ), फिर वह रुक जाता है प्रतीक्षा कर रहा है और vi \(\triangleq\) \(\bot\)and gi \(\triangleq\)0.b सेट करता है (सी) अन्यथा, जब समय 2\(\lambda\) समाप्त हो जाता है, यदि कोई मान मौजूद है v′ ̸= \(\bot\)जैसे कि उसके पास है कम से कम ⌈tH प्राप्त हुआ 2 ⌉मान्य संदेश श्रीमान, जे जे = (ESIGj(v′), \(\sigma\)r,3 j ), फिर वह vi \(\triangleq\)v′ सेट करता है और जीआई \(\triangleq\)1.सी (डी) अन्यथा, जब समय 2\(\lambda\) समाप्त हो जाता है, तो वह vi \(\triangleq\) \(\bot\)और gi \(\triangleq\)0 सेट करता है। 2. जब vi और gi मान सेट कर दिए जाते हैं, तो मैं BBA⋆ के इनपुट bi की गणना इस प्रकार करता हूं: bi \(\triangleq\)0 यदि gi = 2, और bi \(\triangleq\)1 अन्यथा। 3. मैं CERT r−1 से Qr−1 की गणना करता हूं और जांचता हूं कि i \(\in\)SV r,4 है या नहीं। 4. यदि i \(\in\)SV r,4, तो वह संदेश mr,4 की गणना करता है मैं \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 i ), उसे नष्ट कर देता है क्षणिक गुप्त कुंजी skr,4 मैं , और श्रीमान 4 का प्रचार करता हूँ मैं . अन्यथा, मैं बिना प्रचार किये ही रुक जाता हूँ कुछ भी. इस प्रकार, राउंड आर के चरण 1 को शुरू करने के बाद से अधिकतम कुल समय t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ हो सकता है। bचाहे चरण (बी) प्रोटोकॉल में है या नहीं, इसकी शुद्धता पर कोई प्रभाव नहीं पड़ता है। हालाँकि, चरण (बी) की उपस्थिति चरण 4 को 2\(\lambda\) से कम समय में समाप्त करने की अनुमति देता है यदि पर्याप्त रूप से कई चरण-3 सत्यापनकर्ताओं ने "हस्ताक्षर \(\bot\)" किया है। cयह साबित किया जा सकता है कि इस मामले में v', यदि मौजूद है, तो अद्वितीय होना चाहिए।चरण s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ≡0 mod 3: BBA⋆ का एक कॉइन-फिक्स्ड-टू-0 चरण प्रत्येक उपयोगकर्ता के लिए निर्देश i \(\in\)PKr−k: उपयोगकर्ता i जैसे ही राउंड आर का अपना चरण शुरू करता है अपना स्वयं का चरण −1 समाप्त करता है। • उपयोगकर्ता i अधिकतम 2\(\lambda\) समय तक प्रतीक्षा करता है। प्रतीक्षा करते समय, i निम्नानुसार कार्य करता है। - समाप्ति शर्त 0: यदि किसी बिंदु पर एक स्ट्रिंग v ̸= \(\bot\)और एक चरण s′ मौजूद है जैसे कि (ए) 5 \(\leq\)s′ \(\leq\)s, s′ −2 ≡0 mod 3—अर्थात्, चरण s′ एक कॉइन-फिक्स्ड-टू-0 चरण है, (बी) मुझे कम से कम tH वैध संदेश प्राप्त हुए हैं mr,s′−1 जे = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 जे ),बी और (सी) मुझे एक वैध संदेश (SIGj(Qr−1), \(\sigma\)r,1) प्राप्त हुआ है j ) जिसमें j दूसरा है v का घटक, फिर, मैं इंतजार करना बंद कर देता हूं और चरण एस (और वास्तव में राउंड आर) का अपना निष्पादन समाप्त कर देता हूं किसी भी चीज़ को (आर, एस)-सत्यापनकर्ता के रूप में प्रचारित किए बिना तुरंत; H(Br) को प्रथम सेट करता है v का घटक; और अपने स्वयं के CERT r को संदेशों के सेट mr,s′−1 के रूप में सेट करता है जे चरण का (बी) (SIGj(Qr−1), \(\sigma\)r,1 के साथ जे ).सी - अंतिम शर्त 1: यदि किसी भी बिंदु पर कोई ऐसा चरण मौजूद है (ए') 6 \(\leq\)s′ \(\leq\)s, s′ −2 ≡1 mod 3—अर्थात, चरण s′ एक कॉइन-फिक्स्ड-टू-1 चरण है, और (बी') मुझे कम से कम वैध संदेश प्राप्त हुए हैं श्रीमान, एस′−1 जे = (ईएसआईजीजे(1), ईएसआईजीजे(वीजे), \(\sigma\)r,s′−1 जे ),डी फिर, मैं इंतजार करना बंद कर देता हूं और स्टेप एस (और वास्तव में राउंड आर) का अपना निष्पादन ठीक से समाप्त कर देता हूं किसी भी चीज़ को (आर, एस)-सत्यापनकर्ता के रूप में प्रचारित किए बिना दूर; सेट Br = Br ǫ ; और अपना खुद का सेट करता है CERT r संदेशों का सेट mr,s′−1 होगा जे उप-चरण (बी') का। – यदि पर कोई भी बिंदु वह है प्राप्त पर कम से कम वें वैध श्रीमान,s−1 जे का का द प्रपत्र (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 जे ), फिर वह इंतजार करना बंद कर देता है और द्वि \(\triangleq\)1 सेट करता है। – यदि पर कोई भी बिंदु वह है प्राप्त पर कम से कम वें वैध श्रीमान,s−1 जे का का द प्रपत्र (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 जे ), लेकिन वे एक ही वी पर सहमत नहीं हैं, फिर वह रुक जाता है प्रतीक्षा कर रहा है और द्वि \(\triangleq\)0 सेट करता है। - अन्यथा, जब समय 2\(\lambda\) समाप्त हो जाता है, तो मैं bi \(\triangleq\)0 सेट करता हूं। - जब मान bi सेट किया गया है, तो मैं CERT r−1 से Qr−1 की गणना करता हूं और जांचता हूं कि क्या मैं \(\in\)एसवी आर,एस। - यदि मैं \(\in\)एसवी आर,एस, तो मैं संदेश श्रीमान की गणना करता हूं मैं \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) vi होने के साथ चरण 4 में उसने जो मूल्य गणना की है, वह उसकी क्षणिक गुप्त कुंजी स्क्र, को नष्ट कर देता है मैं , और फिर प्रचार श्रीमान, एस मैं . अन्यथा, मैं बिना किसी बात का प्रचार किये रुक जाता हूँ। इस प्रकार, राउंड आर के चरण 1 को शुरू करने के बाद से अधिकतम कुल समय ts \(\triangleq\)ts−1 + 2\(\lambda\) = हो सकता है (2s −3)\(\lambda\) + Λ. bखिलाड़ी j से ऐसा संदेश गिना जाता है, भले ही खिलाड़ी i को भी 1 के लिए हस्ताक्षर करने वाले j से एक संदेश प्राप्त हुआ हो। समाप्ति शर्त 1 के लिए समान बातें। जैसा कि विश्लेषण में दिखाया गया है, यह सुनिश्चित करने के लिए है कि सभी ईमानदार उपयोगकर्ताओं को पता हो CERT r समय के भीतर \(\lambda\) एक दूसरे से। क्यूसर मैं अब एच(बीआर) और उसके स्वयं के राउंड आर को जानता हूं। उसे बस तब तक इंतजार करना होगा जब तक वास्तव में ब्लॉक Br न हो जाए उसे प्रचारित किया गया, जिसमें कुछ अतिरिक्त समय लग सकता है। वह अभी भी एक सामान्य उपयोगकर्ता के रूप में संदेशों के प्रचार-प्रसार में मदद करता है, लेकिन (आर, एस)-सत्यापनकर्ता के रूप में कोई प्रचार शुरू नहीं करता है। विशेष रूप से, उन्होंने सभी संदेशों को प्रचारित करने में मदद की है उसका CERT r, जो हमारे प्रोटोकॉल के लिए पर्याप्त है। ध्यान दें कि उसे बाइनरी बीए प्रोटोकॉल के लिए bi \(\triangleq\)0 भी सेट करना चाहिए, लेकिन वैसे भी इस मामले में bi की आवश्यकता नहीं है। भविष्य के सभी निर्देशों के लिए समान बातें। इस मामले में, इससे कोई फर्क नहीं पड़ता कि वीजे क्या हैं। 65चरण s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ≡1 मॉड 3: बीबीए का एक सिक्का-निर्धारित-से-1 चरण⋆ प्रत्येक उपयोगकर्ता के लिए निर्देश i \(\in\)PKr−k: उपयोगकर्ता i जैसे ही राउंड आर का अपना चरण शुरू करता है अपना स्वयं का चरण −1 समाप्त करता है। • उपयोगकर्ता i अधिकतम 2\(\lambda\) समय तक प्रतीक्षा करता है। प्रतीक्षा करते समय, मैं निम्नानुसार कार्य करता हूँ। - समाप्ति शर्त 0: कॉइन-फिक्स्ड-टू-0 चरण के समान निर्देश। - अंतिम शर्त 1: कॉइन-फिक्स्ड-टू-0 चरण के समान निर्देश। – यदि पर कोई भी बिंदु वह है प्राप्त पर कम से कम वें वैध श्रीमान,s−1 जे का का द प्रपत्र (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 जे ), फिर वह इंतजार करना बंद कर देता है और द्वि \(\triangleq\)0.a सेट करता है - अन्यथा, जब समय 2\(\lambda\) समाप्त हो जाता है, तो मैं bi \(\triangleq\)1 सेट करता हूं। - जब मान bi सेट किया गया है, तो मैं CERT r−1 से Qr−1 की गणना करता हूं और जांचता हूं कि क्या मैं \(\in\)एसवी आर,एस। - यदि मैं \(\in\)एसवी आर,एस, तो मैं संदेश श्रीमान की गणना करता हूं मैं \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) vi होने के साथ चरण 4 में उसने जो मूल्य गणना की है, वह उसकी क्षणिक गुप्त कुंजी स्क्र, को नष्ट कर देता है मैं , और फिर प्रचार श्रीमान, एस मैं . अन्यथा, मैं बिना किसी बात का प्रचार किये रुक जाता हूँ। ध्यान दें कि 1 के लिए हस्ताक्षर करने वाले tH वैध (r, s −1)-संदेश प्राप्त करने का मतलब शर्त 1 को समाप्त करना होगा। चरण s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 मॉड 3: बीबीए का एक सिक्का-वास्तविक-फ़्लिप्ड चरण⋆ प्रत्येक उपयोगकर्ता के लिए निर्देश i \(\in\)PKr−k: उपयोगकर्ता i जैसे ही राउंड आर का अपना चरण शुरू करता है अपना चरण s −1 समाप्त करता है। • उपयोगकर्ता i अधिकतम 2\(\lambda\) समय तक प्रतीक्षा करता है। प्रतीक्षा करते समय, मैं निम्नानुसार कार्य करता हूँ। - समाप्ति शर्त 0: कॉइन-फिक्स्ड-टू-0 चरण के समान निर्देश। - अंतिम शर्त 1: कॉइन-फिक्स्ड-टू-0 चरण के समान निर्देश। – यदि पर कोई भी बिंदु वह है प्राप्त पर कम से कम वें वैध श्रीमान,s−1 जे का का द प्रपत्र (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 जे ), फिर वह इंतजार करना बंद कर देता है और द्वि \(\triangleq\)0 सेट करता है। – यदि पर कोई भी बिंदु वह है प्राप्त पर कम से कम वें वैध श्रीमान,s−1 जे का का द प्रपत्र (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 जे ), फिर वह इंतजार करना बंद कर देता है और द्वि \(\triangleq\)1 सेट करता है। - अन्यथा, जब समय 2\(\lambda\) समाप्त हो जाता है, तो SV r,s−1 दे देता है मैं (r, s −1)-सत्यापनकर्ताओं का समुच्चय बनें जिनसे उन्हें एक वैध संदेश प्राप्त हुआ है mr,s−1 जे , मैं bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1) सेट करता हूं मैं H(\(\sigma\)r,s−1 जे )). - जब मान bi सेट किया गया है, तो मैं CERT r−1 से Qr−1 की गणना करता हूं और जांचता हूं कि क्या मैं \(\in\)एसवी आर,एस। - यदि मैं \(\in\)एसवी आर,एस, तो मैं संदेश श्रीमान की गणना करता हूं मैं \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) vi होने के साथ चरण 4 में उसने जो मूल्य गणना की है, वह उसकी क्षणिक गुप्त कुंजी स्क्र, को नष्ट कर देता है मैं , और फिर प्रचार श्रीमान, एस मैं . अन्यथा, मैं बिना किसी बात का प्रचार किये रुक जाता हूँ। टिप्पणी। सिद्धांत रूप में, जैसा कि उपधारा 6.2 में माना गया है, प्रोटोकॉल मनमाने ढंग से कई ले सकता है किसी दौर में कदम. क्या ऐसा होना चाहिए, जैसा कि चर्चा की गई है, एक उपयोगकर्ता i \(\in\)SV r,s s > \(\mu\) के साथ समाप्त हो गया है

पूर्व-निर्मित क्षणिक कुंजियों का उसका भंडार और उसके (आर, एस)-संदेश श्रीमान, एस को प्रमाणित करना है मैं ए द्वारा क्षणिक कुंजियों का "कैस्केड"। इस प्रकार मेरा संदेश थोड़ा लंबा हो जाता है और ये लंबे समय तक प्रसारित होता है संदेशों में थोड़ा अधिक समय लगेगा. तदनुसार, किसी दिए गए दौर के इतने सारे चरणों के बाद, का मान पैरामीटर \(\lambda\) स्वचालित रूप से थोड़ा बढ़ जाएगा। (लेकिन एक बार नया होने पर यह मूल \(\lambda\) पर वापस आ जाता है ब्लॉक निर्मित होता है और एक नया दौर शुरू होता है।) गैर-सत्यापनकर्ताओं द्वारा राउंड-आर ब्लॉक का पुनर्निर्माण सिस्टम में प्रत्येक उपयोगकर्ता i के लिए निर्देश: उपयोगकर्ता i जैसे ही अपना राउंड आर शुरू करता है CERT r−1. • मैं प्रोटोकॉल के प्रत्येक चरण के निर्देशों का पालन करता हूं, सभी के प्रसार में भाग लेता हूं संदेश, लेकिन एक चरण में कोई प्रचार शुरू नहीं करता है यदि वह इसमें सत्यापनकर्ता नहीं है। • मैं कुछ में अंतिम स्थिति 0 या अंतिम स्थिति 1 दर्ज करके अपना स्वयं का राउंड आर समाप्त करता हूं चरण, संगत CERT r के साथ। • वहां से, वह वास्तविक ब्लॉक Br प्राप्त करने की प्रतीक्षा करते हुए अपना राउंड r + 1 शुरू करता है (जब तक कि वह इसे पहले ही प्राप्त कर चुका है), जिसका hash H(Br) CERT r द्वारा पिन कर दिया गया है। फिर, यदि CERT r इंगित करता है कि Br = Br ǫ, मैं ब्र को उसी क्षण जानता हूं जब उसके पास सीईआरटी आर है। 6.4 Algorand का विश्लेषण' 2 Algorand का विश्लेषण' 2 आसानी से Algorand से प्राप्त होता है' 1. मूलतः, Algorand में 2, साथ अत्यधिक संभावना, (ए) सभी ईमानदार उपयोगकर्ता एक ही ब्लॉक बीआर पर सहमत हैं; एक नए के नेता ब्लॉक कम से कम ph = h2(1 + h −h2) संभाव्यता के साथ ईमानदार है।

Algorand ′

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

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

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

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

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

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

ऑनलाइन ईमानदार उपयोगकर्ताओं को संभालना

जैसा कि हमने कहा, एक ईमानदार उपयोगकर्ता अपने सभी निर्धारित निर्देशों का पालन करता है, जिसमें ऑनलाइन रहना भी शामिल है और प्रोटोकॉल चला रहा है। गणना के बाद से Algorand में यह कोई बड़ा बोझ नहीं है एक ईमानदार उपयोगकर्ता के लिए आवश्यक बैंडविड्थ काफी मामूली है। फिर भी, हम बता दें कि Algorand कर सकता है आसानी से संशोधित किया जा सकता है ताकि दो मॉडलों में काम किया जा सके, जिसमें ईमानदार उपयोगकर्ताओं को ऑनलाइन रहने की अनुमति है महान संख्या. इन दोनों मॉडलों पर चर्चा करने से पहले, आइए हम बताते हैं कि ईमानदार खिलाड़ियों का प्रतिशत क्या है 95% थे, Algorand को अभी भी h = 80% मानते हुए सभी पैरामीटर सेट करते हुए चलाया जा सकता है। तदनुसार, Algorand अधिकतम आधे ईमानदार खिलाड़ियों के बावजूद भी ठीक से काम करना जारी रखेगा कार्यालय में जाने का निर्णय लिया (वास्तव में, "अनुपस्थिति" का एक बड़ा मामला)। वास्तव में, कम से कम किसी भी समय ऑनलाइन 80% खिलाड़ी ईमानदार होंगे। निरंतर भागीदारी से लेकर आलसी ईमानदारी तक जैसा कि हमने देखा, Algorand ' 1 और Algorand' 2 चुनें लुक-बैक पैरामीटर k. आइए अब दिखाते हैं कि k को उचित रूप से बड़ा चुनने से उसे हटाने में मदद मिलती है सतत भागीदारी की आवश्यकता. यह आवश्यकता एक महत्वपूर्ण संपत्ति सुनिश्चित करती है: अर्थात्, अंतर्निहित बीए प्रोटोकॉल बीबीए के पास उचित ईमानदार बहुमत है। आइए अब बताते हैं कि कितना आलसी है ईमानदारी इस संपत्ति को संतुष्ट करने का एक वैकल्पिक और आकर्षक तरीका प्रदान करती है।

याद रखें कि एक उपयोगकर्ता i आलसी-लेकिन-ईमानदार है यदि (1) वह अपने सभी निर्धारित निर्देशों का पालन करता है उसे प्रोटोकॉल में भाग लेने के लिए कहा जाता है, और (2) उसे केवल प्रोटोकॉल में भाग लेने के लिए कहा जाता है बहुत ही कम - उदाहरण के लिए, सप्ताह में एक बार - उपयुक्त अग्रिम सूचना के साथ, और संभावित रूप से महत्वपूर्ण प्राप्त करने के साथ जब वह भाग लेता है तो पुरस्कार देता है। Algorand को ऐसे खिलाड़ियों के साथ काम करने की अनुमति देने के लिए, बस "सत्यापनकर्ताओं को चुनना" पर्याप्त है सिस्टम में पहले से मौजूद उपयोगकर्ताओं के बीच मौजूदा दौर बहुत पहले दौर में है।'' वास्तव में, उसे याद रखें राउंड आर के लिए सत्यापनकर्ताओं को राउंड आर -के में उपयोगकर्ताओं से चुना जाता है, और चयन इसके आधार पर किया जाता है मात्रा Qr−1 पर. ध्यान दें कि एक सप्ताह में लगभग 10,000 मिनट होते हैं, और मान लें कि a राउंड में लगभग (उदाहरण के लिए, औसतन) 5 मिनट लगते हैं, इसलिए एक सप्ताह में लगभग 2,000 राउंड होते हैं। मान लीजिये कि, किसी समय, एक उपयोगकर्ता मैं अपने समय की योजना बनाना चाहता हूं और जानना चाहता हूं कि वह होने वाला है या नहीं आने वाले सप्ताह में एक सत्यापनकर्ता। प्रोटोकॉल अब उपयोगकर्ताओं में से राउंड आर के लिए सत्यापनकर्ताओं को चुनता है राउंड r −k −2,000, और चयन Qr−2,001 पर आधारित हैं। राउंड आर में, खिलाड़ी को मैं पहले से ही जानता हूं मान Qr−2,000, . . . , Qr−1, क्योंकि वे वास्तव में blockchain का हिस्सा हैं। फिर, प्रत्येक एम के लिए 1 और 2,000 के बीच, मैं राउंड आर + एम के चरण एस में एक सत्यापनकर्ता हूं यदि और केवल यदि .एच सिगी आर + एम, एस, क्यूआर+एम−2,001 \(\leq\)p . इस प्रकार, यह जांचने के लिए कि क्या उसे अगले 2,000 राउंड में सत्यापनकर्ता के रूप में कार्य करने के लिए बुलाया जाएगा, मुझे यह करना होगा \(\sigma\)M,s की गणना करें मैं = सिगी आर + एम, एस, क्यूआर+एम−2,001 एम = 1 से 2,000 के लिए और प्रत्येक चरण के लिए, और जाँच करें चाहे .H(\(\sigma\)M,s मैं ) उनमें से कुछ के लिए \(\leq\)p। यदि डिजिटल हस्ताक्षर की गणना करने में एक मिलीसेकंड लगता है इस पूरे ऑपरेशन में उसे गणना करने में लगभग 1 मिनट का समय लगेगा। यदि उसे सत्यापनकर्ता के रूप में नहीं चुना गया है इनमें से किसी भी दौर में, वह "ईमानदार विवेक" के साथ ऑफ़लाइन हो सकता है। उसके पास लगातार था भाग लिया, वैसे भी उसने अगले 2,000 राउंड में अनिवार्य रूप से 0 कदम उठाए होंगे! यदि, इसके बजाय, उसे इन राउंड में से एक में सत्यापनकर्ता बनने के लिए चुना जाता है, फिर वह खुद को तैयार करता है (उदाहरण के लिए, सभी प्राप्त करके) आवश्यक जानकारी) उचित दौर में एक ईमानदार सत्यापनकर्ता के रूप में कार्य करने के लिए। ऐसा अभिनय करके, एक आलसी-लेकिन-ईमानदार संभावित सत्यापनकर्ता केवल प्रचार-प्रसार में भाग लेने से चूक जाता है संदेशों का. लेकिन संदेश प्रसार आम तौर पर मजबूत होता है। इसके अलावा, भुगतानकर्ता और प्राप्तकर्ता हाल ही में प्रचारित भुगतानों के ऑनलाइन होने की उम्मीद है ताकि यह देखा जा सके कि उनके भुगतानों का क्या होता है, और इस प्रकार यदि वे ईमानदार हैं, तो वे संदेश प्रसार में भाग लेंगे।

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

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

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

प्रोटोकॉल Algorand ′ ईमानदार बहुमत धन के साथ

अब हम अंततः यह दिखाएंगे कि अधिकांश उपयोगकर्ताओं की ईमानदार धारणा को और भी अधिक के साथ कैसे बदला जाए धन की सार्थक ईमानदार बहुमत धारणा। मूल विचार है (proof-of-stake स्वाद में) "एक उपयोगकर्ता का चयन करने के लिए i \(\in\)PKr−k जो SV r,s से संबंधित है, जिसका वजन (यानी, निर्णय शक्ति) आनुपातिक है i के स्वामित्व वाली धनराशि।"24 हमारी एचएमएम धारणा के अनुसार, हम यह चुन सकते हैं कि क्या उस राशि का स्वामित्व राउंड r −k पर होना चाहिए या (शुरुआत में) राउंड आर पर। यह मानते हुए कि हमें निरंतर भागीदारी से कोई आपत्ति नहीं है, हम इसका विकल्प चुनते हैं बाद वाला विकल्प. (निरंतर भागीदारी को हटाने के लिए, हमने पूर्व विकल्प को चुना होगा। बेहतर कहा गया है, राउंड आर −के −2,000 पर स्वामित्व वाली धनराशि के लिए।) इस विचार को लागू करने के कई तरीके हैं। सबसे सरल तरीका यह होगा कि प्रत्येक कुंजी को पकड़ कर रखा जाए अधिक से अधिक 1 यूनिट पैसे और फिर PKr−k से यादृच्छिक n उपयोगकर्ताओं का चयन करें जैसे कि a(r) मैं = 1. 24हमें निरंतर भागीदारी को प्रतिस्थापित करने के लिए PKr−k−2,000 कहना चाहिए। सरलता के लिए, चूँकि कोई आवश्यकता चाह सकता है वैसे भी निरंतर भागीदारी, हम पहले की तरह PKr−k का उपयोग करते हैं, ताकि एक पैरामीटर कम रखा जा सके।

अगला सरलतम कार्यान्वयन अगला सरल कार्यान्वयन यह मांग करना हो सकता है कि प्रत्येक सार्वजनिक कुंजी के पास अधिकतम राशि हो धन एम का, कुछ निश्चित एम के लिए। एम का मूल्य कुल राशि की तुलना में काफी छोटा है सिस्टम में पैसा, ऐसी संभावना कि एक कुंजी एक से अधिक के सत्यापनकर्ता सेट से संबंधित हो कदम बढ़ाना -कहना- k राउंड नगण्य है। फिर, एक कुंजी i \(\in\)PKr−k, जिसके पास धनराशि a(r) है मैं राउंड आर में, एसवी आर से संबंधित होने के लिए चुना गया है, यदि .एच सिगी आर, एस, क्यूआर−1 \(\leq\)पी \(\cdot\) ए(आर) मैं एम . और सब कुछ पहले की तरह चलता है। एक अधिक जटिल कार्यान्वयन अंतिम कार्यान्वयन ने "सिस्टम में एक अमीर भागीदार को कई चाबियाँ रखने के लिए मजबूर किया"। नीचे वर्णित एक वैकल्पिक कार्यान्वयन, स्थिति और विचार की धारणा को सामान्यीकृत करता है प्रत्येक उपयोगकर्ता i में K + 1 प्रतियां (i, v) शामिल हैं, जिनमें से प्रत्येक को स्वतंत्र रूप से सत्यापनकर्ता के रूप में चुना गया है, और उसकी अपनी क्षणिक कुंजी (पीकेआर,एस) होगी मैं, वी, एसकेआर, एस i,v) एक राउंड r के चरण s में। K का मान निर्भर करता है धन की राशि पर a(r) मैं दौर आर में मैं के स्वामित्व में। आइए अब अधिक विस्तार से देखें कि ऐसी प्रणाली कैसे काम करती है। प्रतियों की संख्या मान लीजिए n प्रत्येक सत्यापनकर्ता सेट की लक्षित अपेक्षित कार्डिनैलिटी है, और मान लीजिए a(r) मैं राउंड आर पर किसी उपयोगकर्ता के स्वामित्व वाली धनराशि हो। माना कि Ar स्वामित्व वाली कुल धनराशि है PKr−k में उपयोगकर्ताओं द्वारा राउंड r पर, अर्थात, अर= एक्स i\(\in\)P क्र−k ए(आर) मैं . यदि i PKr−k में एक उपयोगकर्ता है, तो i की प्रतियां (i, 1), हैं। . . , (i, K + 1), कहाँ के = $ एन \(\cdot\) ए(आर) मैं अर % . उदाहरण। माना n = 1,000, Ar = 109, और a(r) मैं = 3.7 मिलियन. फिर, के = 103 \(\cdot\) (3.7 \(\cdot\) 106) 109  = ⌊3.7⌋= 3 . सत्यापनकर्ता और क्रेडेंशियल मान लीजिए कि मैं K + 1 प्रतियों के साथ PKr−k में एक उपयोगकर्ता हूं। प्रत्येक v = 1 के लिए। . . , K, कॉपी (i, v) स्वचालित रूप से SV r,s से संबंधित है। यानी कि आई का क्रेडेंशियल है \(\sigma\)r,s i,v \(\triangleq\)SIGi((i, v), r, s, Qr−1), लेकिन संबंधित स्थिति .H(\(\sigma\)r,s) बन जाती है i,v) \(\leq\)1, जो है हमेशा सच. कॉपी (i, K + 1) के लिए, राउंड आर के प्रत्येक चरण के लिए, मैं जाँच करता हूँ कि क्या .एच सिगी (i, K + 1), r, s, Qr−1 \(\leq\)ए(आर) मैं एन अर −K .

यदि हां, तो कॉपी (i, K + 1) SV r,s से संबंधित है। इसे साबित करने के लिए, मैं क्रेडेंशियल का प्रचार करता हूं \(\sigma\)r,1 i,K+1 = SIGi (i, K + 1), r, s, Qr−1 . उदाहरण। पिछले उदाहरण की तरह, मान लीजिए n = 1K, a(r) मैं = 3.7एम, एआर = 1बी, और मेरे पास 4 है प्रतिलिपियाँ: (i, 1), . . . , (i, 4). फिर, पहली 3 प्रतियां स्वचालित रूप से एसवी आर,एस की हो जाती हैं। चौथे के लिए, संकल्पनात्मक रूप से, Algorand 'स्वतंत्र रूप से एक पक्षपाती सिक्का उछालता है, जिसके शीर्ष की संभावना 0.7 है। प्रतिलिपि (i, 4) तभी चुना जाता है जब सिक्का उछाला जाता है और हेड होता है। (बेशक, यह पक्षपाती सिक्का फ़्लिप hashइंग, हस्ताक्षर और तुलना द्वारा कार्यान्वित किया जाता है - जैसा कि हम मैंने इस पेपर में सब कुछ किया है - ताकि मैं उसके परिणाम को साबित करने में सक्षम हो सकूं।) हमेशा की तरह व्यवसाय यह समझाने के बाद कि सत्यापनकर्ताओं का चयन कैसे किया जाता है और उनकी साख कैसे होती है राउंड आर के प्रत्येक चरण पर गणना की गई, राउंड का निष्पादन पहले से बताए गए के समान है।

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

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

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

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

Fork को संभालना

कांटे की संभावना को 10−12 या 10−18 तक कम करने के बाद, इसे संभालना व्यावहारिक रूप से अनावश्यक है उनके घटित होने की दूर-दूर तक सम्भावना है। हालाँकि, Algorand विभिन्न कांटे भी नियोजित कर सकता है समाधान प्रक्रियाएँ, कार्य के प्रमाण के साथ या उसके बिना। उपयोगकर्ताओं को फोर्क्स को हल करने का निर्देश देने का एक संभावित तरीका इस प्रकार है: • यदि कोई उपयोगकर्ता एकाधिक श्रृंखलाएँ देखता है तो सबसे लंबी श्रृंखला का अनुसरण करें। • यदि एक से अधिक लंबी श्रृंखलाएं हैं, तो अंत में एक गैर-रिक्त ब्लॉक वाली श्रृंखला का अनुसरण करें। यदि उन सभी के अंत में खाली ब्लॉक हैं, उनके दूसरे-अंतिम ब्लॉक पर विचार करें। • यदि अंत में गैर-रिक्त ब्लॉकों के साथ एक से अधिक लंबी श्रृंखलाएं हैं, तो मान लें कि श्रृंखलाएं हैं लंबाई r का, उस व्यक्ति का अनुसरण करें जिसके ब्लॉक r के नेता की साख सबसे छोटी है। यदि संबंध हैं, उसका अनुसरण करें जिसके ब्लॉक r में सबसे छोटा hash मान है। यदि अभी भी संबंध हैं, तो इसका पालन करें वह जिसका ब्लॉक आर को पहले शब्दकोषीय रूप से क्रमबद्ध किया गया है।

การจัดการ Fork

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

नेटवर्क विभाजन को संभालना

जैसा कि कहा गया है, हम मानते हैं कि नेटवर्क में सभी उपयोगकर्ताओं के बीच संदेशों का प्रसार समय \(\lambda\) और Λ द्वारा ऊपरी सीमा पर है। यह कोई मजबूत धारणा नहीं है, क्योंकि आज का इंटरनेट तेज़ और मजबूत है, और इन मापदंडों के वास्तविक मूल्य काफी उचित हैं। यहां, हम बता दें कि Algorand ' 2 भले ही इंटरनेट कभी-कभी दो भागों में विभाजित हो जाए तब भी काम करना जारी रखता है। मामला जब इंटरनेट को दो से अधिक भागों में विभाजित किया गया है। 10.1 भौतिक विभाजन सबसे पहले, विभाजन भौतिक कारणों से हो सकता है। उदाहरण के लिए, कोई बड़ा भूकम्प आ सकता है अंततः यूरोप और अमेरिका के बीच संबंध पूरी तरह से टूट जाएगा। इस मामले में, दुर्भावनापूर्ण उपयोगकर्ता भी विभाजित हो जाते हैं और दोनों भागों के बीच कोई संचार नहीं होता है। इस प्रकार

वहाँ दो शत्रु होंगे, एक भाग 1 के लिए और दूसरा भाग 2 के लिए। प्रत्येक शत्रु अभी भी प्रयास करता है प्रोटोकॉल को अपने ही हिस्से में तोड़ें. मान लीजिए कि विभाजन गोल आर के मध्य में होता है। फिर भी प्रत्येक उपयोगकर्ता को एक के रूप में चुना जाता है PKr−k पर आधारित सत्यापनकर्ता, पहले जैसी ही संभावना के साथ। मान लीजिए एचएसवी आर, एस मैं और एमएसवी आर,एस मैं क्रमशः भाग i \(\in\){1, 2} के चरण s में ईमानदार और दुर्भावनापूर्ण सत्यापनकर्ताओं का समूह बनें। हमारे पास है |एचएसवी आर,एस 1 | + |एमएसवी आर,एस 1 | + |एचएसवी आर,एस 2 | + |एमएसवी आर,एस 2 | = |एचएसवी आर,एस| + |एमएसवी आर,एस| ध्यान दें कि |HSV r,s| + |एमएसवी आर,एस| < |एचएसवी आर,एस| + 2|एमएसवी आर,एस| <2टीएच अत्यधिक संभावना के साथ। यदि कुछ भाग मेरे पास है |HSV r,s मैं | + |एमएसवी आर,एस मैं | \(\geq\)tH गैर-नगण्य संभावना के साथ, उदाहरण के लिए, 1%, फिर संभावना है कि |HSV r,s 3−i| + |एमएसवी आर,एस 3−i| \(\geq\)tH बहुत कम है, उदाहरण के लिए, 10−16 जब F = 10−18 है। इस मामले में, हम छोटे हिस्से को भी ऑफ़लाइन मान सकते हैं, क्योंकि इसमें पर्याप्त सत्यापनकर्ता नहीं होंगे यह भाग किसी ब्लॉक को प्रमाणित करने के लिए TH हस्ताक्षर उत्पन्न करता है। आइए व्यापकता को खोए बिना बड़े भाग, मान लीजिए भाग 1 पर विचार करें। हालाँकि |एचएसवी आर,एस| < प्रत्येक चरण s में नगण्य संभावना के साथ, जब नेटवर्क विभाजित होता है, |HSV r,s 1 | हो सकता है कुछ गैर-नगण्य संभावना के साथ tH से कम। इस मामले में, प्रतिद्वंद्वी कुछ के साथ हो सकता है अन्य गैर-नगण्य संभावना, बाइनरी बीए प्रोटोकॉल को एक गैर-खाली ब्लॉक बीआर और खाली ब्लॉक बीआर के साथ राउंड आर में एक कांटा में मजबूर करें ǫ दोनों के पास वैध हस्ताक्षर हैं।25 उदाहरण के लिए, ए में कॉइन-फिक्स्ड-टू-0 चरण एस, एचएसवी आर, एस में सभी सत्यापनकर्ता 1 बिट 0 और H(Br) के लिए हस्ताक्षर किए, और उनका प्रचार किया संदेश. MSV r,s में सभी सत्यापनकर्ता 1 0 और H(Br) पर भी हस्ताक्षर किए, लेकिन उनके संदेशों को रोक दिया। क्योंकि |एचएसवी आर,एस 1 | + |एमएसवी आर,एस 1 | \(\geq\)tH, सिस्टम में Br को प्रमाणित करने के लिए पर्याप्त हस्ताक्षर हैं। हालाँकि, जब से दुर्भावनापूर्ण सत्यापनकर्ताओं ने अपने हस्ताक्षर रोक लिए, उपयोगकर्ता चरण s + 1 दर्ज करते हैं, जो एक कॉइन-फिक्स्ड-टू1 चरण है। क्योंकि |एचएसवी आर,एस 1 | < tH विभाजन के कारण, HSV r,s+1 में सत्यापनकर्ता 1 नहीं देखा बिट 0 के लिए हस्ताक्षर और उन सभी ने बिट 1 के लिए हस्ताक्षर किए। MSV r,s+1 में सभी सत्यापनकर्ता 1 वैसा ही किया. क्योंकि |एचएसवी आर,एस+1 1 | + |एमएसवी आर,एस+1 1 | \(\geq\)tH, सिस्टम में Br को प्रमाणित करने के लिए पर्याप्त हस्ताक्षर हैं .. . विरोधी फिर MSV r,s के हस्ताक्षर जारी करके एक कांटा बनाता है 1 0 और H(Br) के लिए। तदनुसार, दो क्यूआर होंगे, जो राउंड आर के संबंधित ब्लॉकों द्वारा परिभाषित होंगे। हालाँकि, कांटा जारी नहीं रहेगा और दो शाखाओं में से केवल एक ही राउंड आर + 1 में बढ़ सकती है। Algorand के लिए अतिरिक्त निर्देश ' 2. एक गैर-रिक्त ब्लॉक Br और खाली देखते समय ब्लॉक ब्र ǫ, गैर-रिक्त वाले का अनुसरण करें (और इसके द्वारा परिभाषित Qr)। दरअसल, उपयोगकर्ताओं को प्रोटोकॉल में गैर-रिक्त ब्लॉक के साथ जाने का निर्देश देकर, यदि कोई बड़ा हो PKr+1−k में ईमानदार उपयोगकर्ताओं की संख्या को एहसास होता है कि राउंड r +1 की शुरुआत में एक कांटा है, फिर खाली ब्लॉक में पर्याप्त अनुयायी नहीं होंगे और वृद्धि नहीं होगी। मान लें कि प्रतिद्वंद्वी सफल हो जाता है ईमानदार उपयोगकर्ताओं को विभाजित करें ताकि कुछ ईमानदार उपयोगकर्ता Br (और शायद Br) देख सकें ǫ), और कुछ केवल देखते हैं ब्र .. . क्योंकि विरोधी यह नहीं बता सकता कि उनमें से कौन ब्र का अनुसरण करने वाला सत्यापनकर्ता होगा और कौन सा ब्र का अनुसरण करने वाला एक सत्यापनकर्ता होगा ǫ, ईमानदार उपयोगकर्ताओं को बेतरतीब ढंग से विभाजित किया गया है और उनमें से प्रत्येक अभी भी है एक सत्यापनकर्ता बन जाता है (या तो Br के संबंध में या Br के संबंध में)। ǫ) संभाव्यता के साथ एक चरण s > 1 में पी. दुर्भावनापूर्ण उपयोगकर्ताओं के लिए, उनमें से प्रत्येक के पास सत्यापनकर्ता बनने के दो मौके हो सकते हैं, एक के साथ ब्र और दूसरा ब्र के साथ , प्रत्येक स्वतंत्र रूप से संभाव्यता पी के साथ। मान लीजिए HSV r+1,s है 1;ब्र ब्र के बाद राउंड आर+1 के चरण एस में ईमानदार सत्यापनकर्ताओं का सेट बनें। अन्य संकेतन जैसे एचएसवी आर+1,एस 1;ब्रू , एमएसवी आर+1,एस 1;ब्र और एमएसवी आर+1,एस 1;ब्रू समान रूप से परिभाषित हैं। चेर्नोफ़िबाउंड द्वारा, यह आसान है 25दो गैर-रिक्त ब्लॉकों के साथ एक कांटा रखना नगण्य को छोड़कर, विभाजन के साथ या उसके बिना संभव नहीं है संभाव्यता.यह देखने के लिए कि अत्यधिक संभावना के साथ, |एचएसवी आर+1,एस 1;ब्र | + |एचएसवी आर+1,एस 1;ब्रू | + |एमएसवी आर+1,एस 1;ब्र | + |एमएसवी आर+1,एस 1;ब्रू | <2टीएच. तदनुसार, दोनों शाखाओं में राउंड के लिए ब्लॉक को प्रमाणित करने वाले उचित हस्ताक्षर नहीं हो सकते हैं एक ही चरण में r + 1। इसके अलावा, चूँकि दो चरणों s और s' के लिए चयन संभावनाएँ हैं वही और चयन स्वतंत्र हैं, अत्यधिक संभावना के साथ भी |एचएसवी आर+1,एस 1;ब्र | + |एमएसवी आर+1,एस 1;ब्र | + |एचएसवी आर+1,एस′ 1;ब्रू | + |एमएसवी आर+1,एस′ 1;ब्रू | < 2टीएच, किन्हीं दो चरणों s और s' के लिए। जब एफ = 10−18, संघ द्वारा बाध्य, जब तक कि प्रतिद्वंद्वी ऐसा नहीं कर सकता ईमानदार उपयोगकर्ताओं को लंबे समय तक विभाजित करें (मान लीजिए 104 चरण, जो \(\lambda\) = 10 के साथ 55 घंटे से अधिक है) सेकंड26), उच्च संभावना के साथ (मान लीजिए 1−10−10) अधिकतम एक शाखा में उचित हस्ताक्षर होंगे राउंड आर + 1 में एक ब्लॉक को प्रमाणित करने के लिए। अंत में, यदि भौतिक विभाजन ने लगभग समान आकार के दो भाग बनाए हैं, तो संभावना है कि |HSV r,s मैं | + |एमएसवी आर,एस मैं | \(\geq\)tH प्रत्येक भाग i के लिए छोटा है। इसी तरह के विश्लेषण के बाद, भले ही प्रतिद्वंद्वी प्रत्येक भाग में कुछ गैर-नगण्य संभावना के साथ एक कांटा बनाने में कामयाब हो जाए राउंड आर के लिए, राउंड आर + 1 में चार शाखाओं में से अधिकतम एक शाखा बढ़ सकती है। 10.2 प्रतिकूल विभाजन दूसरा, विभाजन विरोधी के कारण हो सकता है, ताकि संदेश प्रसारित हो सकें एक भाग के ईमानदार उपयोगकर्ताओं द्वारा सीधे दूसरे भाग के ईमानदार उपयोगकर्ताओं तक नहीं पहुँचेगा, लेकिन विरोधी दो भागों के बीच संदेश अग्रेषित करने में सक्षम है। फिर भी एक बार एक का सन्देश एक हिस्सा दूसरे हिस्से में एक ईमानदार उपयोगकर्ता तक पहुंचता है, इसे बाद में हमेशा की तरह प्रचारित किया जाएगा। यदि विरोधी बहुत सारा पैसा खर्च करने को तैयार है, यह संभव है कि वह हैक करने में सक्षम हो इंटरनेट और इसे कुछ देर के लिए इस तरह से विभाजित करें। विश्लेषण उपरोक्त भौतिक विभाजन (छोटे हिस्से) के बड़े हिस्से के समान है भाग को जनसंख्या 0 के रूप में माना जा सकता है): प्रतिद्वंद्वी एक कांटा बनाने में सक्षम हो सकता है प्रत्येक ईमानदार उपयोगकर्ता केवल एक शाखा देखता है, लेकिन अधिकतम एक शाखा बढ़ सकती है। 10.3 योग में नेटवर्क विभाजन हालाँकि नेटवर्क विभाजन हो सकता है और विभाजन के तहत एक दौर में एक कांटा हो सकता है कोई लंबे समय तक रहने वाली अस्पष्टता नहीं है: एक कांटा बहुत अल्पकालिक होता है, और वास्तव में अधिकतम एक दौर तक ही रहता है। में अधिकतम एक को छोड़कर विभाजन के सभी हिस्सों में, उपयोगकर्ता एक नया ब्लॉक उत्पन्न नहीं कर सकते हैं और इस प्रकार (ए) एहसास करें कि नेटवर्क में एक विभाजन है और (बी) कभी भी उन ब्लॉकों पर भरोसा न करें जो "गायब" हो जाएंगे। आभार हम सबसे पहले उद्धृत डेमोकॉइन प्रणाली के सह-लेखक सर्गेई गोर्बुनोव को धन्यवाद देना चाहेंगे। कई ज्ञानवर्धक चर्चाओं के लिए, इंगित करने के लिए मौरिस हेर्लिही को हार्दिक धन्यवाद पाइपलाइनिंग से Algorand के थ्रूपुट प्रदर्शन में सुधार होगा, और काफी सुधार होगा 26 ध्यान दें कि एक उपयोगकर्ता 2\(\lambda\) समय की प्रतीक्षा किए बिना एक चरण पूरा करता है, यदि उसने कम से कम TH हस्ताक्षर देखे हों वही संदेश. जब पर्याप्त हस्ताक्षर नहीं होंगे, तो प्रत्येक चरण 2\(\lambda\) समय तक चलेगा।

इस पेपर के पुराने संस्करण का प्रदर्शन। सर्जियो राज्सबाम को उनकी टिप्पणियों के लिए बहुत धन्यवाद इस पेपर का एक पुराना संस्करण. कई गहन चर्चाओं के लिए विनोद वैकुंठनाथन को बहुत धन्यवाद और अंतर्दृष्टि. योसी गिलाद, रोटेम हामो, जॉर्जियोस व्लाचोस और निकोलाई ज़ेल्डोविच को बहुत धन्यवाद इन विचारों का परीक्षण शुरू करने के लिए, और कई उपयोगी टिप्पणियों और चर्चाओं के लिए। सिल्वियो मिकाली असंख्य चर्चाओं और मार्गदर्शन के लिए रॉन रिवेस्ट को व्यक्तिगत रूप से धन्यवाद देना चाहते हैं उद्धृत माइक्रोपेमेंट प्रणाली के सह-लेखन के लिए 3 दशकों से अधिक समय से क्रिप्टोग्राफ़िक अनुसंधान में जिसने Algorand के सत्यापनकर्ता चयन तंत्रों में से एक को प्रेरित किया है। हम इस तकनीक को अगले स्तर पर लाने की उम्मीद करते हैं। इस बीच यात्रा और साथ बहुत मज़ेदार हैं, जिसके लिए हम बहुत आभारी हैं।

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

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

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

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