कॉन्सेंसस (कंप्यूटर विज्ञान)

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

समस्या विवरण
कॉन्सेंसस की समस्या के लिए एकल डेटा मान के लिए कई प्रक्रियाओं (या एजेंटों) के बीच सहमति की आवश्यकता होती है। कुछ प्रक्रियाएँ (एजेंट) अन्य तरीकों से विफल या अविश्वसनीय हो सकती हैं, इसलिए कॉन्सेंसस प्रोटोकॉल दोष-सहिष्णु या लचीला होना चाहिए। प्रक्रियाओं को किसी तरह अपने उम्मीदवार मूल्यों को सामने रखना चाहिए, एक दूसरे के साथ संवाद करना चाहिए और एकल कॉन्सेंसस मान पर सहमत होना चाहिए।

मल्टी-एजेंट सिस्टम के नियंत्रण में कॉन्सेंसस की समस्या एक मूलभूत समस्या है। कॉन्सेंसस उत्पन्न करने का एक तरीका सभी प्रक्रियाओं (एजेंटों) के लिए बहुमत मान पर सहमत होना है। इस संदर्भ में, बहुमत के लिए कम से कम आधे से अधिक उपलब्ध वोटों की आवश्यकता होती है (जहां प्रत्येक प्रक्रिया को एक वोट दिया जाता है)। हालाँकि, एक या अधिक दोषपूर्ण प्रक्रियाएँ परिणामी परिणाम को इस तरह बिगाड़ सकती हैं कि कॉन्सेंसस नहीं बन सकती है या गलत तरीके से पहुँच सकती है।

कॉन्सेंसस की समस्याओं को हल करने वाले प्रोटोकॉल सीमित संख्या में दोषपूर्ण प्रक्रियाओं (कंप्यूटिंग) से निपटने के लिए डिज़ाइन किए गए हैं। उपयोगी होने के लिए इन प्रोटोकॉल को कई आवश्यकताओं को पूरा करना होगा। उदाहरण के लिए, एक तुच्छ प्रोटोकॉल में सभी प्रक्रियाओं का आउटपुट बाइनरी मान 1 हो सकता है। यह उपयोगी नहीं है और इस प्रकार आवश्यकता को इस तरह संशोधित किया गया है कि आउटपुट किसी तरह इनपुट पर निर्भर होना चाहिए। अर्थात्, कॉन्सेंसस प्रोटोकॉल का आउटपुट मान किसी प्रक्रिया का इनपुट मान होना चाहिए। एक और आवश्यकता यह है कि एक प्रक्रिया केवल एक बार आउटपुट मान पर निर्णय ले सकती है और यह निर्णय अपरिवर्तनीय है। किसी प्रक्रिया को निष्पादन में सही कहा जाता है यदि उसमें विफलता का अनुभव नहीं होता है। रुकने की विफलताओं को सहन करने वाले एक कॉन्सेंसस प्रोटोकॉल को निम्नलिखित गुणों को पूरा करना चाहिए।
 * समाप्ति: अंततः, प्रत्येक सही प्रक्रिया कुछ मान तय करती है।
 * अखंडता: यदि सभी सही प्रक्रियाएं समान मान प्रस्तावित करती हैं $$v$$, तो कोई भी सही प्रक्रिया तय करनी होगी $$v$$.
 * समझौता: प्रत्येक सही प्रक्रिया को समान मान पर सहमत होना चाहिए।

एप्लिकेशन के अनुसार, अखंडता की परिभाषा में बदलाव उचित हो सकते हैं। उदाहरण के लिए, एक कमजोर प्रकार की अखंडता तब होगी जब निर्णय मान किसी सही प्रक्रिया द्वारा प्रस्तावित मान के बराबर हो - जरूरी नहीं कि सभी हों। साहित्य में वैधता के रूप में जानी जाने वाली एक शर्त भी है जो उस संपत्ति को संदर्भित करती है कि एक प्रक्रिया द्वारा भेजा गया संदेश वितरित किया जाना चाहिए।

एक प्रोटोकॉल जो एन प्रक्रियाओं के बीच कॉन्सेंसस की सही ढंग से गारंटी दे सकता है, जिनमें से अधिकांश टी विफल हो जाती है, उसे टी-लचीला कहा जाता है।

कॉन्सेंसस प्रोटोकॉल के प्रदर्शन का मूल्यांकन करने में रुचि के दो कारक चल रहे समय और संदेश जटिलता हैं। बिग ओ अंकन  में रनिंग टाइम कुछ इनपुट पैरामीटर्स (आमतौर पर प्रक्रियाओं की संख्या और/या इनपुट डोमेन के आकार) के फ़ंक्शन के रूप में संदेश एक्सचेंज के राउंड की संख्या में दिया जाता है। संदेश जटिलता प्रोटोकॉल द्वारा उत्पन्न संदेश ट्रैफ़िक की मात्रा को संदर्भित करती है। अन्य कारकों में मेमोरी उपयोग और संदेशों का आकार सम्मिलित हो सकते हैं।

गणना के मॉडल
गणना के अलग-अलग मॉडल "कॉन्सेंसस समस्या" को परिभाषित कर सकते हैं। कुछ मॉडल पूरी तरह से जुड़े ग्राफ़ से निपट सकते हैं, जबकि अन्य छल्ले और पेड़ों से निपट सकते हैं। कुछ मॉडलों में संदेश प्रमाणीकरण की स्वीकृति है, जबकि अन्य में प्रक्रियाएँ पूरी तरह से गुमनाम हैं। साझा मेमोरी मॉडल जिसमें प्रक्रियाएं साझा मेमोरी में वस्तुओं तक पहुंच कर संचार करती हैं, वे भी अनुसंधान का एक महत्वपूर्ण क्षेत्र हैं।

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

दो अलग-अलग प्रमाणीकरण मॉडल को प्रायः मौखिक संचार और लिखित संचार मॉडल कहा जाता है। मौखिक संचार मॉडल में, सूचना का तत्काल स्रोत ज्ञात होता है, जबकि मजबूत, लिखित संचार मॉडल में, रिसीवर के हर कदम पर न केवल संदेश का तत्काल स्रोत पता चलता है, बल्कि संदेश का संचार इतिहास भी पता चलता है।

कॉन्सेंसस के इनपुट और आउटपुट
पैक्सोस (कंप्यूटर विज्ञान) जैसे सबसे पारंपरिक एकल-मान कॉन्सेंसस प्रोटोकॉल में, सहयोगी नोड्स एक पूर्णांक जैसे एकल मान पर सहमत होते हैं जो परिवर्तनीय आकार का हो सकता है ताकि डेटाबेस के लिए प्रतिबद्ध लेनदेन जैसे उपयोगी मेटा डेटा को एन्कोड किया जा सके।

एकल-मान कॉन्सेंसस समस्या का एक विशेष मामला, जिसे बाइनरी कॉन्सेंसस कहा जाता है, इनपुट और इसलिए आउटपुट डोमेन को एकल बाइनरी अंक {0,1} तक सीमित करता है। हालांकि अपने आप में अत्यधिक उपयोगी नहीं, बाइनरी कॉन्सेंसस प्रोटोकॉल प्रायः विशेष रूप से असिंक्रोनाइज़ कॉन्सेंसस के लिए अधिक सामान्य कॉन्सेंसस प्रोटोकॉल में बिल्ड-ब्लॉक के रूप में उपयोगी होते हैं।

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

दुर्घटना और बीजान्टिन विफलताएँ
एक प्रक्रिया दो प्रकार की विफलताओं से गुजर सकती है, एक क्रैश विफलता या एक बीजान्टिन विफलता। क्रैश विफलता तब होती है जब कोई प्रक्रिया अचानक बंद हो जाती है और फिर से शुरू नहीं होती है। बीजान्टिन विफलताएँ ऐसी विफलताएँ हैं जिनमें बिल्कुल कोई शर्त नहीं लगाई जाती है। उदाहरण के लिए, वे किसी विरोधी के दुर्भावनापूर्ण कार्यों के परिणामस्वरूप घटित हो सकते हैं। एक प्रक्रिया जो बीजान्टिन विफलता का अनुभव करती है वह अन्य प्रक्रियाओं को विरोधाभासी या विरोधाभासी डेटा भेज सकती है, या यह सो सकती है और फिर लंबी देरी के बाद गतिविधि फिर से शुरू कर सकती है। दो प्रकार की विफलताओं में से, बीजान्टिन विफलताएँ कहीं अधिक विघटनकारी हैं।

इस प्रकार, बीजान्टिन विफलताओं को सहन करने वाला एक कॉन्सेंसस प्रोटोकॉल हर संभावित त्रुटि के प्रति लचीला होना चाहिए।

बीजान्टिन विफलताओं को सहन करने वाली कॉन्सेंसस का एक मजबूत संस्करण सत्यनिष्ठा बाधा को मजबूत करके दिया गया है:


 * अखंडता: यदि एक सही प्रक्रिया निर्णय लेती है $$v$$, तब $$v$$ किसी सही प्रक्रिया द्वारा प्रस्तावित किया गया होगा।

असिंक्रोनाइज़ और सिंक्रोनाइज़ सिस्टम
एसिंक्रोनाइज़ या सिंक्रोनाइज़ सिस्टम के मामले में कॉन्सेंसस की समस्या पर विचार किया जा सकता है। जबकि वास्तविक दुनिया संचार प्रायः स्वाभाविक रूप से असिंक्रोनाइज़ होते हैं, सिंक्रोनाइज़ सिस्टम को मॉडल करना अधिक व्यावहारिक और प्रायः आसान होता है यह देखते हुए कि एसिंक्रोनाइज़ सिस्टम में स्वाभाविक रूप से सिंक्रोनाइज़ की तुलना में अधिक समस्याएं सम्मिलित होती हैं।

सिंक्रोनाइज़ सिस्टम में, यह माना जाता है कि सभी संचार राउंड में आगे बढ़ते हैं। एक दौर में, एक प्रक्रिया अन्य प्रक्रियाओं से सभी संदेश प्राप्त करते हुए, आवश्यक सभी संदेश भेज सकती है। इस प्रकार, एक दौर का कोई भी संदेश उसी दौर में भेजे गए किसी भी संदेश को प्रभावित नहीं कर सकता है।

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

एक असिंक्रोनाइज़ मॉडल में, कुछ प्रकार की विफलताओं को एक तुल्यकालिक कॉन्सेंसस प्रोटोकॉल द्वारा नियंत्रित किया जा सकता है। उदाहरण के लिए, संचार लिंक के नुकसान को एक ऐसी प्रक्रिया के रूप में देखा जा सकता है जिसे बीजान्टिन विफलता का सामना करना पड़ा है।

यादृच्छिक कॉन्सेंसस एल्गोरिदम नेटवर्क में सेवा हमलावर के बुद्धिमान इनकार जैसे सबसे खराब स्थिति वाले शेड्यूलिंग परिदृश्यों के तहत भी अत्यधिक संभावना के साथ सुरक्षा और जीवंतता दोनों प्राप्त करके एफएलपी असंभव परिणाम को दरकिनार कर सकते हैं।

स्वीकृति बनाम स्वीकृति रहित कॉन्सेंसस
कॉन्सेंसस एल्गोरिदम परंपरागत रूप से मानते हैं कि भाग लेने वाले नोड्स का सेट तय हो गया है और शुरुआत में दिया गया है: यानी, कुछ पूर्व (मैन्युअल या स्वचालित) कॉन्फ़िगरेशन प्रक्रिया ने प्रतिभागियों के एक विशेष ज्ञात समूह को स्वीकृति दी है जो समूह के सदस्यों के रूप में एक दूसरे को प्रमाणित कर सकते हैं। प्रमाणित सदस्यों के साथ इस तरह के एक अच्छी तरह से परिभाषित, बंद समूह की अनुपस्थिति में, एक खुली कॉन्सेंसस समूह के खिलाफ एक सिबिल हमला एक बीजान्टिन कॉन्सेंसस एल्गोरिथ्म को भी हरा सकता है, बस दोष सहिष्णुता सीमा को खत्म करने के लिए पर्याप्त आभासी प्रतिभागियों का निर्माण करके।

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

समझौते की समस्याओं की समतुल्यता
हित की तीन समझौता समस्याएं इस प्रकार हैं।

विश्वसनीय प्रसारण समाप्त करना
का एक संग्रह $$n$$ प्रक्रियाएं, से क्रमांकित $$0$$ को $$n - 1,$$ एक दूसरे को संदेश भेजकर संवाद करें। प्रक्रिया $$0$$ एक मान संचारित करना होगा $$v$$ ऐसी सभी प्रक्रियाओं के लिए:


 * 1) यदि प्रक्रिया $$0$$ सही है, तो हर सही प्रक्रिया प्राप्त होती है $$v$$
 * 2) किन्हीं दो सही प्रक्रियाओं के लिए, प्रत्येक प्रक्रिया को समान मान प्राप्त होता है।

इसे जनरल की समस्या के नाम से भी जाना जाता है।

कॉन्सेंसस
कॉन्सेंसस प्रोटोकॉल के लिए औपचारिक आवश्यकताओं में सम्मिलित हो सकते हैं:


 * समझौता: सभी सही प्रक्रियाओं को समान मान पर सहमत होना चाहिए।
 * कमज़ोर वैधता: प्रत्येक सही प्रक्रिया के लिए, उसका आउटपुट किसी सही प्रक्रिया का इनपुट होना चाहिए।
 * मजबूत वैधता: यदि सभी सही प्रक्रियाओं को समान इनपुट मान प्राप्त होता है, तो उन्हें उस मान को आउटपुट करना होगा।
 * समाप्ति: सभी प्रक्रियाओं को अंततः आउटपुट मान पर निर्णय लेना होगा

कमजोर इंटरैक्टिव संगति
आंशिक रूप से समकालिक प्रणाली में n प्रक्रियाओं के लिए (सिस्टम समकालिकता की अच्छी और बुरी अवधि के बीच वैकल्पिक होता है), प्रत्येक प्रक्रिया एक निजी मान चुनती है। सार्वजनिक मान निर्धारित करने और निम्नलिखित आवश्यकताओं के साथ एक कॉन्सेंसस वेक्टर उत्पन्न करने के लिए प्रक्रियाएं राउंड द्वारा एक-दूसरे के साथ संवाद करती हैं:
 * 1) यदि कोई सही प्रक्रिया भेजता है $$v$$, तो सभी सही प्रक्रियाएं या तो प्राप्त होती हैं $$v$$ या कुछ भी नहीं (अखंडता संपत्ति)
 * 2) एक सही प्रक्रिया द्वारा एक राउंड में भेजे गए सभी संदेश सभी सही प्रक्रियाओं (संगति संपत्ति) द्वारा एक ही राउंड में प्राप्त होते हैं।

यह दिखाया जा सकता है कि इन समस्याओं की विविधताएँ इस मायने में समतुल्य हैं कि एक प्रकार के मॉडल में किसी समस्या का समाधान दूसरे प्रकार के मॉडल में किसी अन्य समस्या का समाधान हो सकता है। उदाहरण के लिए, सिंक्रोनाइज़ प्रमाणित संदेश पासिंग मॉडल में कमजोर बीजान्टिन सामान्य समस्या का समाधान कमजोर इंटरैक्टिव संगति के समाधान की ओर ले जाता है। एक इंटरएक्टिव कंसिस्टेंसी एल्गोरिदम प्रत्येक प्रक्रिया को उसके कॉन्सेंसस वेक्टर में बहुमत मान को उसके कॉन्सेंसस मान के रूप में चुनकर कॉन्सेंसस की समस्या को हल कर सकता है।

यह दिखाया जा सकता है कि इन समस्याओं की विविधताएँ इस मायने में समतुल्य हैं कि एक प्रकार के मॉडल में किसी समस्या का समाधान दूसरे प्रकार के मॉडल में किसी अन्य समस्या का समाधान हो सकता है। उदाहरण के लिए, सिंक्रोनाइज़ प्रमाणित संदेश पासिंग मॉडल में कमजोर बीजान्टिन सामान्य समस्या का समाधान कमजोर इंटरैक्टिव संगति के समाधान की ओर ले जाता है। एक इंटरएक्टिव कंसिस्टेंसी एल्गोरिदम प्रत्येक प्रक्रिया को उसके कॉन्सेंसस वेक्टर में बहुमत मान को उसके कॉन्सेंसस मान के रूप में चुनकर कॉन्सेंसस की समस्या को हल कर सकता है।

कुछ समझौते की समस्याओं के लिए समाधानयोग्यता परिणाम
एक टी-रेज़िलिएंट अनाम सिंक्रोनाइज़ प्रोटोकॉल है जो बीजान्टिन जनरल्स समस्या को हल करता है, अगर $$\tfrac{t}{n} < \tfrac{1}{3}$$ और कमजोर बीजान्टिन जनरलों का मामला कहाँ $$t$$ विफलताओं की संख्या है और $$n$$ प्रक्रियाओं की संख्या है.

के साथ सिस्टम के लिए $$n$$ प्रोसेसर, जिनमें से $$f$$ बीजान्टिन हैं, यह दिखाया गया है कि कोई एल्गोरिदम मौजूद नहीं है जो कॉन्सेंसस की समस्या को हल करता है $$n \leq 3f$$ मौखिक-संदेश मॉडल में. प्रमाण का निर्माण पहले तीन-नोड मामले के लिए असंभवता दिखाकर किया जाता है $$n=3$$ और प्रोसेसर के विभाजन के बारे में बहस करने के लिए इस परिणाम का उपयोग करें। लिखित-संदेश मॉडल में ऐसे प्रोटोकॉल होते हैं जो सहन कर सकते हैं $$n=f+1$$.

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

कुछ कॉन्सेंसस प्रोटोकॉल
लेस्ली लामपोर्ट द्वारा पैक्सोस कॉन्सेंसस एल्गोरिथ्म, और इसके वेरिएंट जैसे रफ़ का उपयोग व्यापक रूप से वितरित वितरित और क्लाउड कंप्यूटिंग सिस्टम में किया जाता है। ये एल्गोरिदम आम तौर पर प्रगति करने के लिए एक निर्वाचित नेता पर समकालिक रूप से निर्भर होते हैं और केवल दुर्घटनाओं को सहन करते हैं, बीजान्टिन विफलताओं को नहीं।

बहुपद समय बाइनरी कॉन्सेंसस प्रोटोकॉल का एक उदाहरण जो बीजान्टिन विफलताओं को सहन करता है, गारे और बर्मन द्वारा चरण किंग एल्गोरिदम है। [14] एल्गोरिथ्म n प्रक्रियाओं और f विफलताओं तक एक तुल्यकालिक संदेश पासिंग मॉडल में कॉन्सेंसस को हल करता है, बशर्ते n > 4f। फेज़ किंग एल्गोरिथम में, f + 1 चरण होते हैं, प्रति चरण 2 राउंड होते हैं। प्रत्येक प्रक्रिया अपने पसंदीदा आउटपुट का ट्रैक रखती है (प्रारंभ में प्रक्रिया के अपने इनपुट मान के बराबर)। प्रत्येक चरण के पहले दौर में प्रत्येक प्रक्रिया अन्य सभी प्रक्रियाओं के लिए अपना पसंदीदा मान प्रसारित करती है। इसके बाद यह सभी प्रक्रियाओं से मान प्राप्त करता है और यह निर्धारित करता है कि कौन सा मान बहुसंख्यक मान है और उसकी गिनती क्या है। चरण के दूसरे दौर में, जिस प्रक्रिया की आईडी वर्तमान चरण संख्या से मेल खाती है उसे चरण का राजा नामित किया जाता है। राजा पहले दौर में देखे गए बहुमत मान को प्रसारित करता है और टाई ब्रेकर के रूप में कार्य करता है। फिर प्रत्येक प्रक्रिया अपना पसंदीदा मान निम्नानुसार अद्यतन करती है। यदि पहले दौर में देखी गई प्रक्रिया के बहुमत मान की गिनती n/2 + f से अधिक है, तो प्रक्रिया उस बहुमत मान के लिए अपनी प्राथमिकता बदल देती है; अन्यथा यह चरण राजा के मान का उपयोग करता है। एफ + 1 चरणों के अंत में प्रक्रियाएं अपने पसंदीदा मानों को आउटपुट करती हैं।

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

कई पीयर-टू-पीयर ऑनलाइन रीयल-टाइम रणनीति गेम किसी गेम में खिलाड़ियों के बीच गेम की स्थिति को प्रबंधित करने के लिए एक कॉन्सेंसस प्रोटोकॉल के रूप में संशोधित लॉकस्टेप प्रोटोकॉल का उपयोग करते हैं। प्रत्येक गेम एक्शन के परिणामस्वरूप गेम में अन्य सभी खिलाड़ियों के लिए गेम स्टेट डेल्टा का प्रसारण होता है, साथ ही कुल गेम स्टेट का हैश भी होता है। प्रत्येक खिलाड़ी अपने खेल राज्य में डेल्टा लागू करके और खेल राज्य हैश की तुलना करके परिवर्तन को मान्य करता है। यदि हैश सहमत नहीं होते हैं तो एक वोट डाला जाता है, और जिन खिलाड़ियों का खेल राज्य अल्पमत में है, उन्हें खेल से अलग कर दिया जाता है और हटा दिया जाता है (जिसे डीसिंक के रूप में जाना जाता है)।

एक अन्य प्रसिद्ध दृष्टिकोण को एमएसआर-प्रकार एल्गोरिदम कहा जाता है जिसका उपयोग कंप्यूटर विज्ञान से लेकर नियंत्रण सिद्धांत तक व्यापक रूप से किया गया है।

स्वीकृति रहित कॉन्सेंसस प्रोटोकॉल
बिटकॉइन अपने खुले पीयर-टू-पीयर नेटवर्क में स्वीकृति रहित कॉन्सेंसस प्राप्त करने के लिए कार्य के प्रमाण, एक कठिनाई समायोजन फ़ंक्शन और एक पुनर्गठन फ़ंक्शन का उपयोग करता है। बिटकॉइन के ब्लॉकचेन या वितरित बहीखाते का विस्तार करने के लिए, खनिक एक क्रिप्टोग्राफ़िक पहेली को हल करने का प्रयास करते हैं, जहां समाधान खोजने की संभावना प्रति सेकंड हैश में खर्च किए गए कम्प्यूटेशनल प्रयास के समानुपाती होती है। जो नोड सबसे पहले ऐसी पहेली को हल करता है, उसके लेनदेन के अगले ब्लॉक का प्रस्तावित संस्करण बही में जोड़ा जाता है और अंततः अन्य सभी नोड्स द्वारा स्वीकार किया जाता है। चूँकि नेटवर्क में कोई भी नोड प्रूफ़-ऑफ़-वर्क समस्या को हल करने का प्रयास कर सकता है, सिबिल हमला सैद्धांतिक रूप से तब तक संभव नहीं है जब तक कि हमलावर के पास नेटवर्क के 50% से अधिक कम्प्यूटेशनल संसाधन न हों।

अन्य क्रिप्टोकरेंसी (यानी NEO, STRATIS, ...) हिस्सेदारी के प्रमाण का उपयोग करते हैं, जिसमें नोड्स ब्लॉक को जोड़ने और हिस्सेदारी के अनुपात में संबंधित पुरस्कार अर्जित करने के लिए प्रतिस्पर्धा करते हैं, या मौजूदा क्रिप्टोकरेंसी को कुछ समय अवधि के लिए आवंटित और लॉक या स्टेक किया जाता है। 'कार्य का प्रमाण' प्रणाली की तुलना में 'हिस्सेदारी का प्रमाण' का एक फायदा, बाद वाले द्वारा मांग की जाने वाली उच्च ऊर्जा खपत है। उदाहरण के तौर पर, बिटकॉइन माइनिंग (2018) में गैर-नवीकरणीय ऊर्जा स्रोतों की खपत चेक गणराज्य या जॉर्डन के पूरे देशों के समान मात्रा में होने का अनुमान है।

कुछ क्रिप्टोकरेंसी, जैसे कि रिपल, बहीखाता को मान्य करने के लिए नोड्स को मान्य करने की एक प्रणाली का उपयोग करती हैं। रिपल द्वारा उपयोग की जाने वाली यह प्रणाली, जिसे रिपल प्रोटोकॉल कंसेंसस एल्गोरिथम (आरपीसीए) कहा जाता है, राउंड में काम करती है:


 * चरण 1: प्रत्येक सर्वर वैध उम्मीदवार लेनदेन की एक सूची संकलित करता है;
 * चरण 2: प्रत्येक सर्वर अपनी विशिष्ट नोड्स सूची (यूएनएल) से आने वाले सभी उम्मीदवारों को एकीकृत करता है और उनकी सत्यता पर वोट करता है;
 * चरण 3: न्यूनतम सीमा पार करने वाले लेनदेन को अगले दौर में भेज दिया जाता है;
 * चरण 4: अंतिम दौर में 80% सहमति की आवश्यकता है।

प्रवेश में बाधाएं लगाने और सिबिल हमलों का विरोध करने के लिए स्वीकृति रहित कॉन्सेंसस प्रोटोकॉल में उपयोग किए जाने वाले अन्य भागीदारी नियमों में अधिकार का प्रमाण, स्थान का प्रमाण, जलने का प्रमाण, या बीते समय का प्रमाण सम्मिलित है।

उपरोक्त स्वीकृति रहित भागीदारी नियमों के विपरीत, जिनमें से सभी प्रतिभागियों को किसी कार्रवाई या संसाधन में निवेश की मात्रा के अनुपात में पुरस्कृत करते हैं, व्यक्तित्व के प्रमाण प्रोटोकॉल का उद्देश्य प्रत्येक वास्तविक मानव प्रतिभागी को आर्थिक निवेश की परवाह किए बिना स्वीकृति रहित कॉन्सेंसस में मतदान शक्ति की एक इकाई देना है। व्यक्तित्व के प्रमाण के लिए कॉन्सेंसस शक्ति के एक-व्यक्ति वितरण को प्राप्त करने के लिए प्रस्तावित दृष्टिकोण में भौतिक छद्म नाम वाली पार्टियां सामाजिक नेटवर्क छद्म नाम से सरकार द्वारा जारी पहचान और बायोमेट्रिक्स सम्मिलित हैं।

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

समवर्ती वस्तु की कॉन्सेंसस संख्या को सिस्टम में प्रक्रियाओं की अधिकतम संख्या के रूप में परिभाषित किया गया है जो प्रतीक्षा-मुक्त कार्यान्वयन में दिए गए ऑब्जेक्ट द्वारा कॉन्सेंसस तक पहुंच सकती है। $$n$$ की कॉन्सेंसस संख्या वाली वस्तुएँ $$n$$ या उससे कम की कॉन्सेंसस संख्या वाली किसी भी वस्तु को लागू कर सकती हैं, लेकिन उच्च कॉन्सेंसस संख्या वाली किसी भी वस्तु को लागू नहीं कर सकती हैं। सर्वसम्मत संख्याएँ वह बनाती हैं जिसे मौरिस हेर्लिही का सिंक्रनाइज़ेशन ऑब्जेक्ट का पदानुक्रम कहा जाता है। पदानुक्रम के अनुसार, पढ़ने/लिखने वाले रजिस्टर 2-प्रक्रिया प्रणाली में भी कॉन्सेंसस का समाधान नहीं कर सकते हैं। स्टैक और कतार जैसी डेटा संरचनाएं केवल दो प्रक्रियाओं के बीच कॉन्सेंसस का समाधान कर सकती हैं। हालाँकि, कुछ समवर्ती वस्तुएँ सार्वभौमिक हैं (तालिका में $$\infty$$ के साथ अंकित है जिसका अर्थ है कि वे किसी भी संख्या में प्रक्रियाओं के बीच कॉन्सेंसस को हल कर सकते हैं और वे एक ऑपरेशन अनुक्रम के माध्यम से किसी भी अन्य कॉन्सेंसस का अनुकरण कर सकते हैं।

यह भी देखें

 * एकसमान सहमति
 * क्वांटम बीजान्टिन समझौता
 * बीजान्टिन दोष टॉलरेंस

अग्रिम पठन

 * Bashir, Imran. "Blockchain कॉन्सेंसस." Blockchain कॉन्सेंसस - An Introduction to Classical, Blockchain, and Quantum कॉन्सेंसस Protocols. ISBN 978-1-4842-8178-9 Apress, Berkeley, CA, 2022.
 * Bashir, Imran. "Blockchain कॉन्सेंसस." Blockchain कॉन्सेंसस - An Introduction to Classical, Blockchain, and Quantum कॉन्सेंसस Protocols. ISBN 978-1-4842-8178-9 Apress, Berkeley, CA, 2022.
 * Bashir, Imran. "Blockchain कॉन्सेंसस." Blockchain कॉन्सेंसस - An Introduction to Classical, Blockchain, and Quantum कॉन्सेंसस Protocols. ISBN 978-1-4842-8178-9 Apress, Berkeley, CA, 2022.