रिपल प्रोटोकॉल सर्वसम्मति एल्गोरिथ्म
Abstract
Byzantine Generals Problemに対するいくつかの合意アルゴリズムが存在するが、特に分散型決済システムに関連して、その多くはネットワーク内のすべてのノードが同期的に通信する必要があるという要件に起因する高い遅延の問題を抱えている。本研究では、より大きなネットワーク内で集合的に信頼されたサブネットワークを活用することにより、この要件を回避する新しい合意アルゴリズムを提示する。Sybil攻撃を防止するために必要な「信頼」は、実際にはグローバルなものではなく、ネットワーク内の各ノードに対してローカルであることを示す。
Rippleプロトコル合意アルゴリズム(RPCA)は、ネットワークの正確性と合意を維持するために、すべてのノードによって数秒ごとに適用される。合意に達すると、現在の台帳は「閉鎖」されたとみなされ、最後に閉鎖された台帳(last-closed ledger)となる。このアルゴリズムは、Byzantine障害に対する強力な保証を維持しながら低い遅延で合意を達成するという点で独自であり、リアルタイムの金融決済システムに適している。
Abstract
हालांकि Byzantine Generals Problem के लिए कई सहमति एल्गोरिदम मौजूद हैं, विशेष रूप से वितरित भुगतान प्रणालियों के संबंध में, उनमें से कई नेटवर्क के सभी नोड्स को समकालिक रूप से संवाद करने की आवश्यकता के कारण उच्च विलंबता से ग्रस्त हैं। इस कार्य में, हम एक नवीन सहमति एल्गोरिदम प्रस्तुत करते हैं जो बड़े नेटवर्क के भीतर सामूहिक रूप से विश्वसनीय उप-नेटवर्क का उपयोग करके इस आवश्यकता को दरकिनार करता है। हम दिखाते हैं कि Sybil हमलों को रोकने के लिए आवश्यक "विश्वास" वास्तव में वैश्विक नहीं है, बल्कि नेटवर्क में प्रत्येक नोड के लिए स्थानीय है।
Ripple प्रोटोकॉल सहमति एल्गोरिदम (RPCA) नेटवर्क की शुद्धता और सहमति बनाए रखने के लिए सभी नोड्स द्वारा हर कुछ सेकंड में लागू किया जाता है। एक बार सहमति प्राप्त हो जाने पर, वर्तमान लेजर को "बंद" माना जाता है और यह अंतिम-बंद लेजर बन जाता है। यह एल्गोरिदम अद्वितीय है क्योंकि यह Byzantine विफलताओं के खिलाफ मजबूत गारंटी बनाए रखते हुए कम विलंबता के साथ सहमति प्राप्त करता है, जो इसे वास्तविक समय वित्तीय निपटान प्रणालियों के लिए उपयुक्त बनाता है।
Introduction
分散型決済システムは、障害のあるまたは悪意のあるアクターが存在する状況でも、適時に正しく決済を処理するために合意アルゴリズムを実装しなければならない。ビットコインはプルーフ・オブ・ワーク(proof-of-work)を使用して合意を達成しており、これはすべてのノードが暗号パズルを解くために計算リソースを消費することを要求する。このアプローチは強力なセキュリティ保証を提供するが、高いエネルギー消費、低いトランザクションスループット、高額取引では1時間以上に及ぶ可能性がある長い確認遅延など、重大な欠点がある。
Rippleプロトコル合意アルゴリズムは、プルーフ・オブ・ワークを必要としない分散型合意への新しいアプローチを提供する。代わりに、ネットワーク内のノードは数秒で合意を達成する投票プロセスを通じて、トランザクションセットに集合的に同意する。この合意メカニズムは、実用的な展開に低い遅延と高いスループットが不可欠なグローバル決済ネットワークの要件に合わせて特別に設計されている。
RPCAの重要なイノベーションは、ネットワーク内のすべてのノードが互いに同意する必要がないという点である。代わりに、各ノードは共謀しないと信頼する他のノードのUnique Node List(UNL)を維持する。ノードが選択したUNLが十分な重複を持ち、閾値パーセンテージ未満のノードのみが障害を持つ場合、ネットワークは合意に達する。このアプローチは、合意遅延を分や時間ではなく秒単位で測定しながら、決済システムに必要なセキュリティ保証を提供する。
Introduction
एक वितरित भुगतान प्रणाली को दोषपूर्ण या दुर्भावनापूर्ण अभिकर्ताओं की उपस्थिति में भी भुगतानों को सही और समय पर संसाधित करने के लिए एक सहमति एल्गोरिदम लागू करना होगा। Bitcoin प्रूफ-ऑफ-वर्क (proof-of-work) का उपयोग करके सहमति प्राप्त करता है, जिसमें सभी नोड्स को क्रिप्टोग्राफिक पहेलियों को हल करने के लिए कम्प्यूटेशनल संसाधन खर्च करने की आवश्यकता होती है। हालांकि यह दृष्टिकोण मजबूत सुरक्षा गारंटी प्रदान करता है, इसमें महत्वपूर्ण कमियां हैं जिनमें उच्च ऊर्जा खपत, कम लेनदेन थ्रूपुट और लंबी पुष्टि विलंबता शामिल है जो उच्च-मूल्य लेनदेन के लिए एक घंटे या उससे अधिक तक बढ़ सकती है।
Ripple प्रोटोकॉल सहमति एल्गोरिदम वितरित सहमति के लिए एक नया दृष्टिकोण प्रदान करता है जिसमें प्रूफ-ऑफ-वर्क की आवश्यकता नहीं होती। इसके बजाय, नेटवर्क में नोड्स एक मतदान प्रक्रिया के माध्यम से लेनदेन सेट पर सामूहिक रूप से सहमत होते हैं जो सेकंडों में सहमति प्राप्त करती है। यह सहमति तंत्र विशेष रूप से एक वैश्विक भुगतान नेटवर्क की आवश्यकताओं के लिए डिज़ाइन किया गया है, जहां व्यावहारिक तैनाती के लिए कम विलंबता और उच्च थ्रूपुट आवश्यक हैं।
RPCA में प्रमुख नवाचार यह है कि इसमें नेटवर्क के सभी नोड्स को एक-दूसरे से सहमत होने की आवश्यकता नहीं होती। इसके बजाय, प्रत्येक नोड अन्य नोड्स की एक Unique Node List (UNL) बनाए रखता है जिन पर वह मिलीभगत न करने का भरोसा करता है। जब तक नोड्स द्वारा चुनी गई UNL में पर्याप्त ओवरलैप होता है, और नोड्स का एक सीमा प्रतिशत से कम दोषपूर्ण होता है, तब तक नेटवर्क सहमति प्राप्त करेगा। यह दृष्टिकोण भुगतान प्रणाली के लिए आवश्यक सुरक्षा गारंटी प्रदान करता है जबकि सहमति विलंबता को मिनटों या घंटों के बजाय सेकंडों में मापा जाता है।
Definition of Consensus
分散システムにおいて、合意とは、障害のあるまたは悪意のある参加者が存在する状況でも、ノードのネットワークが共有状態について合意に達するプロセスを指す。合意アルゴリズムは3つの基本的な性質を満たさなければならない:正確性(2つの正しいノードが異なる決定をしない)、合意(すべての正しいノードが同じ決定に達する)、そして終了(すべての正しいノードが最終的に決定を下す)。これらの性質は、分散システムが単一の信頼できるノードであるかのように動作することを保証する。
合意を達成する上での課題は、分散システムの本質的な不安定性に起因する。ノードがクラッシュする可能性があり、メッセージが遅延または喪失する可能性があり、Byzantineノードは任意にまたは悪意を持って振る舞う可能性がある。Lamport、Shostak、Peaseが定式化したByzantine Generals Problemは、この課題を捉えている:一部が障害を持つ可能性があり、通信が不安定な状況で、プロセスのグループはどのように合意に達することができるのか?
分散コンピューティングの古典的な結果は、合意アルゴリズムが達成できることの根本的な限界を確立している。FLP不可能性結果は、たった1つのノードが障害を起こす可能性がある非同期システムにおいて、いかなる決定論的アルゴリズムも合意を保証できないことを示している。したがって、実用的な合意アルゴリズムは、安全性(誤った合意に決して達しない)と活性(常に進行する)の間でトレードオフを行わなければならない。ビットコインのプルーフ・オブ・ワークは活性よりも安全性を優先するが、RPCAは現実的な障害仮定の下で強力な安全性保証を維持しながら、限られた時間内に合意ラウンドを完了することで、決済システムにより適したバランスを達成している。
Definition of Consensus
वितरित प्रणालियों में, सहमति उस प्रक्रिया को संदर्भित करती है जिसके द्वारा नोड्स का एक नेटवर्क दोषपूर्ण या दुर्भावनापूर्ण प्रतिभागियों की उपस्थिति के बावजूद एक साझा स्थिति पर सहमति पर पहुंचता है। एक सहमति एल्गोरिदम को तीन मूलभूत गुणों को संतुष्ट करना चाहिए: शुद्धता (कोई भी दो सही नोड अलग-अलग निर्णय नहीं लेते), सहमति (सभी सही नोड एक ही निर्णय पर पहुंचते हैं), और समाप्ति (सभी सही नोड अंततः निर्णय लेते हैं)। ये गुण सुनिश्चित करते हैं कि वितरित प्रणाली ऐसे व्यवहार करती है जैसे कि वह एक एकल, विश्वसनीय नोड हो।
सहमति प्राप्त करने की चुनौती वितरित प्रणालियों की अंतर्निहित अविश्वसनीयता से उत्पन्न होती है। नोड्स क्रैश हो सकते हैं, संदेश विलंबित या खो सकते हैं, और Byzantine नोड्स मनमाने ढंग से या दुर्भावनापूर्ण तरीके से व्यवहार कर सकते हैं। Byzantine Generals Problem, जिसे Lamport, Shostak और Pease ने औपचारिक रूप दिया, इस चुनौती को पकड़ती है: प्रक्रियाओं का एक समूह कैसे सहमति पर पहुंच सकता है जब कुछ अंश दोषपूर्ण हो सकता है और जब संचार अविश्वसनीय हो?
वितरित कंप्यूटिंग में शास्त्रीय परिणाम इस बात की मूलभूत सीमाएं स्थापित करते हैं कि सहमति एल्गोरिदम क्या हासिल कर सकते हैं। FLP असंभवता परिणाम दिखाता है कि कोई भी नियतात्मक एल्गोरिदम एक असमकालिक प्रणाली में सहमति की गारंटी नहीं दे सकता यदि एक भी नोड विफल हो सकता है। इसलिए व्यावहारिक सहमति एल्गोरिदम को सुरक्षा (कभी भी गलत सहमति नहीं पहुंचना) और जीवंतता (हमेशा प्रगति करना) के बीच समझौता करना होगा। Bitcoin का proof-of-work जीवंतता पर सुरक्षा को प्राथमिकता देता है, जबकि RPCA यथार्थवादी दोष धारणाओं के तहत मजबूत सुरक्षा गारंटी बनाए रखते हुए सीमित समय में सहमति दौर पूरा करके भुगतान प्रणालियों के लिए अधिक उपयुक्त संतुलन प्राप्त करता है।
Existing Consensus Algorithms
分散システムにおけるByzantine Generals Problemを解決するために、いくつかの合意アルゴリズムが提案されている。CastroとLiskovが導入したPractical Byzantine Fault Tolerance(PBFT)アルゴリズムは、3f+1個のノードからなるシステムにおいて最大f個のByzantine障害を許容できる。PBFTはすべてのノード間での複数ラウンドのメッセージ交換を通じて合意を達成し、通信計算量はO(n^2)である(nはノード数)。PBFTは強力な安全性保証と小規模ネットワークでの比較的低い遅延を提供するが、二次的な通信オーバーヘッドのため大規模ネットワークへの拡張性に課題がある。
Lamportが開発したPaxosとその変種は、非同期システムにおいて合意を提供するが、Byzantine障害ではなくクラッシュ障害を仮定している。Paxosは、提案者が値を提案し受諾者が投票する一連のラウンドを通じて合意を達成する。Paxosは任意のメッセージ遅延とプロセスクラッシュを許容できるが、Byzantine障害を処理するには慎重なエンジニアリングが必要であり、特定のシナリオではライブロック(livelock)が発生する可能性がある。
ビットコインのプルーフ・オブ・ワーク合意アルゴリズムは、Byzantine攻撃を経済的に不可能にするという根本的に異なるアプローチを取っている。ノードは暗号パズルを解くために競争し、勝者が次のトランザクションブロックを提案する。このアプローチは任意のネットワークサイズに拡張でき、Byzantine障害を処理するが、深刻な欠点がある:膨大なエネルギー消費(ビットコインネットワークで年間1億5千万ドル以上と推定)、長い確認遅延(高額取引では40〜60分であることが多い)、そして限られたスループット(毎秒約7トランザクション)。これらの制限により、プルーフ・オブ・ワークは迅速な決済と高いトランザクション量を必要とする多くの決済システムアプリケーションには不適切である。
Existing Consensus Algorithms
वितरित प्रणालियों में Byzantine Generals Problem को हल करने के लिए कई सहमति एल्गोरिदम प्रस्तावित किए गए हैं। Practical Byzantine Fault Tolerance (PBFT) एल्गोरिदम, जिसे Castro और Liskov ने पेश किया, 3f+1 नोड्स की प्रणाली में f Byzantine दोषों तक सहन कर सकता है। PBFT सभी नोड्स के बीच संदेश विनिमय के कई दौरों के माध्यम से सहमति प्राप्त करता है, जिसमें O(n^2) की संचार जटिलता होती है, जहां n नोड्स की संख्या है। हालांकि PBFT छोटे नेटवर्क के लिए मजबूत सुरक्षा गारंटी और अपेक्षाकृत कम विलंबता प्रदान करता है, द्विघात संचार ओवरहेड के कारण यह बड़े नेटवर्क के लिए अच्छी तरह से स्केल नहीं करता।
Paxos और इसके संस्करण, Lamport द्वारा विकसित, असमकालिक प्रणालियों में सहमति प्रदान करते हैं लेकिन Byzantine दोषों के बजाय क्रैश विफलताओं को मानते हैं। Paxos दौरों की एक श्रृंखला के माध्यम से सहमति प्राप्त करता है जिसमें प्रस्तावक मूल्य सुझाते हैं और स्वीकर्ता उन पर मतदान करते हैं। हालांकि Paxos मनमानी संदेश विलंबता और प्रक्रिया क्रैश को सहन कर सकता है, इसमें Byzantine विफलताओं को संभालने के लिए सावधानीपूर्वक इंजीनियरिंग की आवश्यकता होती है और कुछ परिदृश्यों में livelock से ग्रस्त हो सकता है।
Bitcoin का proof-of-work सहमति एल्गोरिदम Byzantine हमलों को आर्थिक रूप से अव्यवहार्य बनाकर एक मौलिक रूप से भिन्न दृष्टिकोण अपनाता है। नोड्स क्रिप्टोग्राफिक पहेलियों को हल करने के लिए प्रतिस्पर्धा करते हैं, विजेता लेनदेन का अगला ब्लॉक प्रस्तावित करता है। हालांकि यह दृष्टिकोण मनमाने नेटवर्क आकार तक स्केल करता है और Byzantine दोषों को संभालता है, इसमें गंभीर कमियां हैं: भारी ऊर्जा खपत (Bitcoin नेटवर्क के लिए प्रति वर्ष 150 मिलियन डॉलर से अधिक अनुमानित), लंबी पुष्टि विलंबता (उच्च-मूल्य लेनदेन के लिए अक्सर 40-60 मिनट), और सीमित थ्रूपुट (लगभग 7 लेनदेन प्रति सेकंड)। ये सीमाएं proof-of-work को कई भुगतान प्रणाली अनुप्रयोगों के लिए अनुपयुक्त बनाती हैं जिनमें तेजी से निपटान और उच्च लेनदेन मात्रा की आवश्यकता होती है।
Ripple Protocol Consensus Algorithm
Rippleプロトコル合意アルゴリズム(RPCA)は、各サーバーがまだ適用されていないすべての有効なトランザクションを候補トランザクションとして収集することから始まる。その後、サーバーは現在の台帳に適用するトランザクションセットについて合意に向けて反復的に作業するマルチラウンドプロトコルに従う。各ラウンドで、サーバーは次の台帳に含めるべきだと考えるトランザクションからなる提案を作成する。
各合意ラウンド中、サーバーは自身のUnique Node List(UNL)内の他のサーバーに提案を伝達する。その後、サーバーはどのトランザクションが閾値パーセンテージ以上の提案に含まれているかを計算する。初期段階ではこの閾値は50%に設定されており、トランザクションが次のラウンドで考慮されるには、サーバーのUNLの少なくとも半分の提案に含まれている必要がある。合意が連続するラウンドを経るにつれ、この閾値は段階的に引き上げられる(通常60%、70%、そして最終的に80%)。
トランザクションがサーバーのUNLにおいて80%の絶対多数支持の閾値を達成すると、そのトランザクションは最終合意ラウンドに対するサーバーの提案に含まれる。ネットワーク全体でこの閾値に達したすべてのトランザクションは台帳に適用され、台帳は暗号学的にハッシュされ署名される。この新たに検証された台帳が最後に閉鎖された台帳となり、次の候補トランザクションセットでプロセスが再び開始される。
合意プロセスは通常5秒以内に完了し、ほとんどのトランザクションは絶対多数の閾値を達成するために1回の合意ラウンドのみを必要とする。1回のラウンドで合意を達成しなかったトランザクションは、後続のラウンドの候補として残る。この設計は、信頼された検証者の絶対多数の支持なしにはいかなるトランザクションも台帳に適用できないため、強力な安全性保証を維持しながらネットワークが継続的に進行することを保証する。
Ripple Protocol Consensus Algorithm
Ripple प्रोटोकॉल सहमति एल्गोरिदम (RPCA) प्रत्येक सर्वर द्वारा उन सभी वैध लेनदेन को लेकर शुरू होता है जो उसने देखे हैं और जो अभी तक कैंडिडेट लेनदेन के रूप में लागू नहीं किए गए हैं। सर्वर फिर एक बहु-दौर प्रोटोकॉल का पालन करते हैं जहां वे वर्तमान लेजर पर लागू किए जाने वाले लेनदेन के एक सेट पर सहमति की ओर पुनरावृत्त रूप से काम करते हैं। प्रत्येक दौर में, सर्वर उन लेनदेन से युक्त प्रस्ताव बनाते हैं जिन्हें वे अगले लेजर में शामिल किया जाना चाहिए।
प्रत्येक सहमति दौर के दौरान, सर्वर अपने Unique Node List (UNL) में अन्य सर्वरों को अपने प्रस्ताव संप्रेषित करते हैं। सर्वर तब गणना करते हैं कि कौन से लेनदेन प्रस्तावों के एक सीमा प्रतिशत में दिखाई देते हैं। शुरू में, यह सीमा 50% पर निर्धारित होती है, जिसका अर्थ है कि एक लेनदेन को अगले दौर के लिए विचार किए जाने हेतु सर्वर की UNL के कम से कम आधे प्रस्तावों में दिखाई देना चाहिए। जैसे-जैसे सहमति क्रमिक दौरों के माध्यम से आगे बढ़ती है, यह सीमा क्रमिक रूप से बढ़ती है (आमतौर पर 60%, 70%, और अंत में 80%)।
जब कोई लेनदेन सर्वर की UNL में 80% समर्थन की सुपरमेजॉरिटी सीमा प्राप्त करता है, तो इसे अंतिम सहमति दौर के लिए उस सर्वर के प्रस्ताव में शामिल किया जाता है। नेटवर्क भर में इस सीमा तक पहुंचने वाले सभी लेनदेन लेजर पर लागू किए जाते हैं, जिसे फिर क्रिप्टोग्राफिक रूप से हैश और हस्ताक्षरित किया जाता है। यह नव सत्यापित लेजर अंतिम-बंद लेजर बन जाता है, और प्रक्रिया कैंडिडेट लेनदेन के अगले सेट के साथ फिर से शुरू होती है।
सहमति प्रक्रिया आमतौर पर 5 सेकंड या उससे कम में पूरी होती है, अधिकांश लेनदेन को सुपरमेजॉरिटी सीमा प्राप्त करने के लिए केवल एक सहमति दौर की आवश्यकता होती है। एक दौर में सहमति प्राप्त नहीं करने वाले लेनदेन बाद के दौरों के लिए कैंडिडेट बने रहते हैं। यह डिज़ाइन सुनिश्चित करता है कि नेटवर्क मजबूत सुरक्षा गारंटी बनाए रखते हुए निरंतर प्रगति करता है, क्योंकि कोई भी लेनदेन विश्वसनीय वैलिडेटरों के सुपरमेजॉरिटी समर्थन के बिना लेजर पर लागू नहीं किया जा सकता।
Formal Analysis of Convergence
RPCAの正確性は、ネットワーク内の異なるノードが選択したUNL間の重複に決定的に依存する。UNL_iをノードiのUnique Node Listとし、UNL_i ∩ UNL_jをUNL_iとUNL_jの両方に含まれるノードの集合とする。ネットワークが合意を維持するためには、任意の2つのノードiとjに対して、それらのUNLの共通部分がいずれかのUNLの最大サイズに対して十分に大きい必要がある。

具体的には、プロトコルはすべてのノードペアiとjに対して|UNL_i ∩ UNL_j| / max(|UNL_i|, |UNL_j|) 1/5である場合に安全性を保証する。この条件は、Byzantineノードがネットワークの異なる部分に異なる合意決定をさせようとしても、信頼ノードの重複がフォークを防止することを保証する。この条件が成立し、いずれのUNLにおいてもByzantineノードが1/5未満であれば、すべての正しいノードは同じ合意決定に達する。
形式的証明は、2つのノードが異なる合意決定に達する可能性がある場合、一方のノードの最終台帳には含まれるがもう一方には含まれないトランザクションTが存在しなければならないことを示すことによって進む。これが発生するためには、Tが最初のノードのUNLで80%の支持を達成しているが、2番目のノードのUNLでは80%未満の支持しか得ていない必要がある。しかし、重複要件とByzantineノードの制約を考慮すると、このシナリオは不可能であることが示される:TがUNL_iで80%の支持を達成した場合、重複条件を満たすいかなるUNL_jでも少なくとも60%の支持を達成しなければならず、十分な合意ラウンドを経れば80%に収束するか、両方のノードによって拒否される。
活性の性質——合意が最終的に達成されること——は、包含のための閾値が合意ラウンドを通じて決定論的に増加するという観察から導かれる。Byzantineノードとネットワーク遅延が存在しても、プロトコルは誠実なノードの絶対多数が支持するトランザクションが最終的に含まれ、そのような支持を欠くトランザクションが除外されることを保証する。合意のための限られた時間(通常5秒)は、決済システムアプリケーションに適した実用的な活性保証を提供する。
Formal Analysis of Convergence
RPCA की शुद्धता नेटवर्क में विभिन्न नोड्स द्वारा चुनी गई UNL के बीच ओवरलैप पर गंभीर रूप से निर्भर करती है। UNL_i को नोड i की unique node list और UNL_i ∩ UNL_j को UNL_i और UNL_j दोनों में दिखाई देने वाले नोड्स के सेट के रूप में मानें। नेटवर्क को सहमति बनाए रखने के लिए, हम आवश्यक करते हैं कि किन्हीं भी दो नोड्स i और j के लिए, उनके UNL का प्रतिच्छेदन किसी भी UNL के अधिकतम आकार के सापेक्ष पर्याप्त रूप से बड़ा होना चाहिए।

विशेष रूप से, प्रोटोकॉल सुरक्षा की गारंटी देता है जब |UNL_i ∩ UNL_j| / max(|UNL_i|, |UNL_j|) 1/5 सभी नोड जोड़ियों i और j के लिए। यह शर्त सुनिश्चित करती है कि भले ही Byzantine नोड्स नेटवर्क के विभिन्न भागों को अलग-अलग सहमति निर्णय लेने का कारण बनाने का प्रयास करें, विश्वसनीय नोड्स का ओवरलैप फोर्क को रोकता है। यदि यह शर्त पूरी होती है और किसी भी UNL में 1/5 से कम नोड्स Byzantine हैं, तो सभी सही नोड्स एक ही सहमति निर्णय पर पहुंचेंगे।
औपचारिक प्रमाण यह दिखाकर आगे बढ़ता है कि यदि दो नोड्स अलग-अलग सहमति निर्णय ले सकते, तो कोई लेनदेन T अवश्य होना चाहिए जो एक नोड के अंतिम लेजर में दिखाई देता है लेकिन दूसरे में नहीं। इसके लिए, T को पहले नोड की UNL में 80% समर्थन प्राप्त होना चाहिए लेकिन दूसरे नोड की UNL में 80% से कम समर्थन। हालांकि, ओवरलैप आवश्यकता और Byzantine नोड्स पर बाधा को देखते हुए, यह दिखाया जा सकता है कि यह परिदृश्य असंभव है: यदि T UNL_i में 80% समर्थन प्राप्त करता है, तो इसे ओवरलैप शर्त को संतुष्ट करने वाली किसी भी UNL_j में कम से कम 60% समर्थन प्राप्त करना चाहिए, और सहमति के पर्याप्त दौरों के साथ, यह 80% में अभिसरित होगा या दोनों नोड्स द्वारा अस्वीकार किया जाएगा।
जीवंतता गुण -- कि सहमति अंततः प्राप्त होगी -- इस अवलोकन से अनुसरण करता है कि शामिल करने की सीमा सहमति दौरों के माध्यम से नियतात्मक रूप से बढ़ती है। Byzantine नोड्स और नेटवर्क विलंब की उपस्थिति में भी, प्रोटोकॉल सुनिश्चित करता है कि ईमानदार नोड्स के सुपरमेजॉरिटी द्वारा समर्थित लेनदेन अंततः शामिल किए जाएंगे, जबकि ऐसे समर्थन की कमी वाले लेनदेन बाहर रखे जाएंगे। सहमति के लिए सीमित समय (आमतौर पर 5 सेकंड) भुगतान प्रणाली अनुप्रयोगों के लिए उपयुक्त व्यावहारिक जीवंतता गारंटी प्रदान करता है।
Unique Node Lists
Unique Node List(UNL)は、RPCAを他の合意アルゴリズムと区別する根本的な構成要素である。Rippleネットワークの各ノードは、ネットワークを欺くために共謀しないと信頼する他のノードからなるUNLを維持する。重要なのは、この信頼がグローバルではなくローカルであるということである:異なるノードは異なるUNLを持つことができ、グローバルに合意された検証者セットは要求されない。この設計により、分散化を維持しながらネットワークが有機的に拡張できる。

UNLは、プルーフ・オブ・ワークなしにSybil攻撃防止メカニズムとして機能する。単純な投票システムでは、攻撃者は不均衡な影響力を得るために多数の偽名ノードを作成できる。各ノードが信頼する他のノードを明示的に選択することを要求することにより、RPCAは、それらのアイデンティティが既存のノードを説得してUNLに追加されない限り、追加のアイデンティティを作成しても何の利点も得られないことを保証する。これにより、Sybil耐性の問題は計算的支出から評判と信頼関係に移行する。
ネットワークが正しく機能するためには、形式的分析で説明したように、UNLが十分な重複を持つように選択されなければならない。実際には、各ノード運営者がUNL選択において自律性を持ちながらも、ネットワークの他の部分でも信頼されている検証者をリストに含めることを保証しなければならないことを意味する。Rippleは多様なエンティティが運営する検証者からなるデフォルトUNLを提供するが、ノード運営者は独自の信頼評価に基づいてこのリストを自由に変更できる。
UNLメカニズムはまた、段階的な分散化への自然な道筋を提供する。ネットワークの初期段階では、安定性と信頼性を確保するために、より集中化された検証者セットが適切かもしれない。ネットワークが成熟し、より多様な運営者がその信頼性を実証するにつれて、UNLはセキュリティ特性を損なうことなく、ネットワークの耐障害性と分散化を高めるより広範な検証者セットを含むように進化できる。
Unique Node Lists
Unique Node List (UNL) RPCA का एक मूलभूत घटक है जो इसे अन्य सहमति एल्गोरिदम से अलग करता है। Ripple नेटवर्क में प्रत्येक नोड एक UNL बनाए रखता है जिसमें अन्य नोड्स शामिल होते हैं जिन पर वह नेटवर्क को धोखा देने के लिए मिलीभगत न करने का भरोसा करता है। महत्वपूर्ण रूप से, यह विश्वास वैश्विक के बजाय स्थानीय है: विभिन्न नोड्स की अलग-अलग UNL हो सकती हैं, और वैलिडेटरों के विश्व स्तर पर सहमत सेट की कोई आवश्यकता नहीं है। यह डिज़ाइन नेटवर्क को विकेंद्रीकरण बनाए रखते हुए स्वाभाविक रूप से बढ़ने की अनुमति देता है।

UNL प्रूफ-ऑफ-वर्क की आवश्यकता के बिना Sybil हमला रोकथाम तंत्र के रूप में कार्य करता है। एक भोले मतदान प्रणाली में, एक हमलावर असमानुपातिक प्रभाव प्राप्त करने के लिए कई छद्मनामी नोड्स बना सकता है। प्रत्येक नोड से स्पष्ट रूप से यह चुनने की आवश्यकता करके कि वह किन अन्य नोड्स पर भरोसा करता है, RPCA सुनिश्चित करता है कि अतिरिक्त पहचान बनाने से कोई लाभ नहीं होता जब तक कि वे पहचान मौजूदा नोड्स को अपनी UNL में जोड़ने के लिए मना नहीं सकतीं। यह Sybil प्रतिरोध की समस्या को कम्प्यूटेशनल व्यय से प्रतिष्ठा और विश्वास संबंधों में स्थानांतरित करता है।
नेटवर्क को सही ढंग से कार्य करने के लिए, UNL को इस प्रकार चुना जाना चाहिए कि उनमें पर्याप्त ओवरलैप हो, जैसा कि औपचारिक विश्लेषण में वर्णित है। व्यवहार में, इसका अर्थ है कि जहां प्रत्येक नोड ऑपरेटर को अपनी UNL चुनने में स्वायत्तता है, उन्हें यह सुनिश्चित करना होगा कि उनकी सूची में ऐसे वैलिडेटर शामिल हैं जिन पर नेटवर्क के अन्य भागों द्वारा भी भरोसा किया जाता है। Ripple विविध संस्थाओं द्वारा संचालित वैलिडेटरों से युक्त एक डिफ़ॉल्ट UNL प्रदान करता है, लेकिन नोड ऑपरेटर अपने स्वयं के विश्वास मूल्यांकन के आधार पर इस सूची को संशोधित करने के लिए स्वतंत्र हैं।
UNL तंत्र प्रगतिशील विकेंद्रीकरण की ओर एक स्वाभाविक मार्ग भी प्रदान करता है। नेटवर्क के प्रारंभिक चरणों में, स्थिरता और विश्वसनीयता सुनिश्चित करने के लिए वैलिडेटरों का एक अधिक केंद्रीकृत सेट उपयुक्त हो सकता है। जैसे-जैसे नेटवर्क परिपक्व होता है और अधिक विविध ऑपरेटर अपनी विश्वसनीयता प्रदर्शित करते हैं, UNL वैलिडेटरों के एक व्यापक सेट को शामिल करने के लिए विकसित हो सकते हैं, जिससे इसकी सुरक्षा गुणों से समझौता किए बिना नेटवर्क की लचीलापन और विकेंद्रीकरण बढ़ता है।
Simulation Code
RPCAの理論的分析を検証し、さまざまな条件下でのパフォーマンスを評価するために、カスタムビルドのシミュレーションソフトウェアを使用して大規模なシミュレーションが実施された。シミュレーションフレームワークは、それぞれ独自のUNLを維持し合意プロトコルに参加するノードのネットワークをモデル化する。コードは、トランザクション提案、閾値が増加する投票ラウンド、台帳検証を含む完全なRPCAアルゴリズムを実装している。
シミュレーションで変更された主要なパラメータには、ネットワークサイズ(10から1,000ノード)、Byzantineノードの割合(0%から20%)、UNLサイズ(通常5から50ノード)、およびネットワークトポロジー構成が含まれる。各パラメータ構成に対して、結果の統計的妥当性を確保するために異なるランダムシードを使用して複数のシミュレーション実行が行われた。シミュレーションは合意遅延、フォーク確率、トランザクションスループットを含むメトリクスを追跡した。
シミュレーション結果は、収束と安全性に関する理論的予測を確認している。UNL重複条件が満たされ、Byzantineノードが各UNLの20%未満であるすべての構成において、ネットワークはフォークなしに正常に合意に達した。合意遅延はネットワークサイズに関係なく一貫して低く維持され(通常3〜5秒のシミュレーション時間内に完了)、アルゴリズムのスケーラビリティを実証した。合意を妨害しようと積極的に試みる15%のByzantineノードが存在しても、UNL重複要件が満たされている限り、ネットワークは正確性を維持した。
追加のシミュレーションは、ネットワーク分割、UNL構成の突然の変更、Byzantineノードによる協調攻撃を含むエッジケースと障害シナリオを探索した。これらのシミュレーションはプロトコルの堅牢性に関する洞察を提供し、UNL選択とネットワーク運用に関する推奨ベストプラクティスの策定に寄与した。独立した検証とさらなる研究を可能にするため、完全なシミュレーションコードが公開されている。
Simulation Code
RPCA के सैद्धांतिक विश्लेषण को मान्य करने और विभिन्न स्थितियों में इसके प्रदर्शन का मूल्यांकन करने के लिए, कस्टम-निर्मित सिमुलेशन सॉफ्टवेयर का उपयोग करके व्यापक सिमुलेशन आयोजित किए गए। सिमुलेशन फ्रेमवर्क नोड्स के एक नेटवर्क का मॉडल बनाता है, जिनमें से प्रत्येक अपना स्वयं का UNL बनाए रखता है और सहमति प्रोटोकॉल में भाग लेता है। कोड पूर्ण RPCA एल्गोरिदम को लागू करता है, जिसमें लेनदेन प्रस्ताव, बढ़ते सीमा मानों के साथ मतदान दौर और लेजर सत्यापन शामिल हैं।
सिमुलेशन में विविध किए गए प्रमुख पैरामीटरों में नेटवर्क आकार (10 से 1,000 नोड्स तक), Byzantine नोड्स का प्रतिशत (0% से 20% तक), UNL आकार (आमतौर पर 5 से 50 नोड्स के बीच) और नेटवर्क टोपोलॉजी कॉन्फ़िगरेशन शामिल हैं। प्रत्येक पैरामीटर कॉन्फ़िगरेशन के लिए, परिणामों की सांख्यिकीय वैधता सुनिश्चित करने के लिए विभिन्न यादृच्छिक बीजों के साथ कई सिमुलेशन रन आयोजित किए गए। सिमुलेशन ने सहमति विलंबता, फोर्क संभावना और लेनदेन थ्रूपुट सहित मेट्रिक्स को ट्रैक किया।
सिमुलेशन परिणाम अभिसरण और सुरक्षा के संबंध में सैद्धांतिक भविष्यवाणियों की पुष्टि करते हैं। सभी कॉन्फ़िगरेशन जहां UNL ओवरलैप शर्त संतुष्ट थी और Byzantine नोड्स प्रत्येक UNL के 20% से कम थे, नेटवर्क ने बिना फोर्क के सफलतापूर्वक सहमति प्राप्त की। सहमति विलंबता नेटवर्क आकार की परवाह किए बिना लगातार कम रही (आमतौर पर 3-5 सिमुलेटेड सेकंड में पूरी), जो एल्गोरिदम की स्केलेबिलिटी प्रदर्शित करती है। 15% Byzantine नोड्स सक्रिय रूप से सहमति को बाधित करने का प्रयास करने पर भी, जब तक UNL ओवरलैप आवश्यकता पूरी होती रही, नेटवर्क ने शुद्धता बनाए रखी।
अतिरिक्त सिमुलेशन ने एज केस और विफलता परिदृश्यों का पता लगाया, जिनमें नेटवर्क विभाजन, UNL संरचना में अचानक परिवर्तन और Byzantine नोड्स द्वारा समन्वित हमले शामिल हैं। इन सिमुलेशन ने प्रोटोकॉल की मजबूती के बारे में अंतर्दृष्टि प्रदान की और UNL चयन और नेटवर्क संचालन के लिए अनुशंसित सर्वोत्तम प्रथाओं की जानकारी दी। स्वतंत्र सत्यापन और आगे के अनुसंधान की अनुमति देने के लिए पूर्ण सिमुलेशन कोड उपलब्ध कराया गया है।
Discussion
ビットコインのプルーフ・オブ・ワーク合意と比較して、RPCAは決済システムアプリケーションにいくつかの重要な利点を提供する。最も注目すべきは、合意遅延が40〜60分(高額ビットコイン取引に通常推奨される時間)から約5秒に短縮されることである。この改善により、RPCAはほぼ即時の決済が必要なPOS(販売時点)やその他のアプリケーションに適している。さらに、RPCAはプルーフ・オブ・ワークと比較して最小限の計算リソースしか必要とせず、ビットコインマイニングに伴う膨大なエネルギー消費を排除する。
しかし、これらの利点には異なる信頼仮定が伴う。ビットコインのセキュリティが、いかなる攻撃者もネットワークの計算能力の50%以上を制御しないという仮定のみに依存するのに対し、RPCAはノードが十分な重複を持つUNLを選択し、ByzantineノードがこれらのUNL内で閾値を超えないことを要求する。これにより、慎重な信頼決定を行う責任の一部がノード運営者に移る。実際には、参加機関が既存の信頼関係を持つ多くの決済システムユースケースにおいて、このトレードオフは許容可能である。
ネットワークトポロジーとUNL選択戦略は、合意システムの特性に大きく影響する。すべてのノードがUNLに同じ検証者を含む高度に集中化されたトポロジーは安全性を最大化するが、それらの検証者が利用不可になった場合、活性が低下する可能性がある。逆に、UNLの重複が最小限の高度に分散化されたトポロジーは活性を改善する可能性があるが、重複が疎になりすぎると合意障害のリスクがある。最適なバランスを見つけるには、特定のデプロイメントシナリオとリスク許容度の慎重な考慮が必要である。
将来の研究では、分散化を最大化しながら重複要件を自動的に維持する適応的UNL選択アルゴリズム、観察された検証者の行動に基づいてノードがUNLを動的に調整するメカニズム、そしてさらに高い割合のByzantineノードを許容できる合意アルゴリズムの拡張を探求できる可能性がある。これらの強化により、大規模分散型決済システムに対するRPCAの堅牢性と適用可能性がさらに向上する可能性がある。
Discussion
Bitcoin के proof-of-work सहमति की तुलना में, RPCA भुगतान प्रणाली अनुप्रयोगों के लिए कई महत्वपूर्ण फायदे प्रदान करता है। सबसे उल्लेखनीय रूप से, सहमति विलंबता 40-60 मिनट (उच्च-मूल्य Bitcoin लेनदेन के लिए आमतौर पर अनुशंसित समय) से घटाकर लगभग 5 सेकंड कर दी गई है। यह सुधार RPCA को पॉइंट-ऑफ-सेल और अन्य अनुप्रयोगों के लिए उपयुक्त बनाता है जहां लगभग तत्काल निपटान की आवश्यकता होती है। इसके अतिरिक्त, RPCA को proof-of-work की तुलना में न्यूनतम कम्प्यूटेशनल संसाधनों की आवश्यकता होती है, जो Bitcoin माइनिंग से जुड़ी भारी ऊर्जा खपत को समाप्त करता है।
हालांकि, ये फायदे विभिन्न विश्वास धारणाओं के साथ आते हैं। जबकि Bitcoin की सुरक्षा केवल इस धारणा पर निर्भर करती है कि कोई भी हमलावर नेटवर्क की 50% से अधिक कम्प्यूटेशनल शक्ति को नियंत्रित नहीं करता, RPCA के लिए आवश्यक है कि नोड्स पर्याप्त ओवरलैप वाली UNL चुनें और Byzantine नोड्स इन UNL के भीतर सीमा से अधिक न हों। यह कुछ जिम्मेदारी नोड ऑपरेटरों पर स्थानांतरित करता है कि वे विवेकपूर्ण विश्वास निर्णय लें। व्यवहार में, यह समझौता कई भुगतान प्रणाली उपयोग मामलों के लिए स्वीकार्य है जहां भाग लेने वाली संस्थाओं के मौजूदा विश्वास संबंध हैं।
नेटवर्क टोपोलॉजी और UNL चयन रणनीति सहमति प्रणाली के गुणों को महत्वपूर्ण रूप से प्रभावित करती है। एक अत्यधिक केंद्रीकृत टोपोलॉजी जहां सभी नोड्स अपनी UNL में समान वैलिडेटर शामिल करते हैं, सुरक्षा को अधिकतम करती है लेकिन उन वैलिडेटरों के अनुपलब्ध होने पर जीवंतता कम कर सकती है। इसके विपरीत, न्यूनतम UNL ओवरलैप वाली अत्यधिक विकेंद्रीकृत टोपोलॉजी जीवंतता में सुधार कर सकती है लेकिन ओवरलैप बहुत कम होने पर सहमति विफलताओं का जोखिम उठा सकती है। इष्टतम संतुलन खोजने के लिए विशिष्ट तैनाती परिदृश्य और जोखिम सहनशीलता पर सावधानीपूर्वक विचार की आवश्यकता होती है।
भविष्य का कार्य अनुकूली UNL चयन एल्गोरिदम का पता लगा सकता है जो विकेंद्रीकरण को अधिकतम करते हुए स्वचालित रूप से ओवरलैप आवश्यकताओं को बनाए रखते हैं, नोड्स के लिए देखे गए वैलिडेटर व्यवहार के आधार पर अपनी UNL को गतिशील रूप से समायोजित करने के तंत्र, और सहमति एल्गोरिदम के विस्तार जो Byzantine नोड्स के और भी अधिक प्रतिशत को सहन कर सकते हैं। ये सुधार बड़े पैमाने पर वितरित भुगतान प्रणालियों के लिए RPCA की मजबूती और प्रयोज्यता को और बढ़ा सकते हैं।
Conclusion
Rippleプロトコル合意アルゴリズムは、決済システムのための分散型合意における重要な進歩を表している。すべてのノード間のグローバルな合意を要求する代わりに、集合的に信頼されたサブネットワークを活用することにより、RPCAはByzantine障害に対する強力な保証を維持しながら数秒で合意を達成する。形式的分析は、UNLが十分な重複で選択され、Byzantineノードが閾値以下に維持される限り、ネットワークがフォークなしに正しい合意に達することを実証している。
本研究の実用的な意味合いは、Ripple決済ネットワークを超えて広がる。RPCAは、合意遅延とセキュリティ保証の間の従来のトレードオフが、慎重なプロトコル設計とローカルな信頼関係の利用を通じて克服できることを示している。このアプローチは、低い遅延が重要であり参加者が既存の信頼関係を持つ他の分散システム、例えば銀行間決済システム、サプライチェーン追跡、その他の金融インフラアプリケーションに適用可能であると考えられる。
本番システムにおけるRPCAの展開は、アルゴリズムのパフォーマンス特性と堅牢性を検証した。Rippleネットワークは、一貫した3〜5秒の合意遅延で毎秒数千のトランザクションを処理しており、理論的特性が実世界の運用に効果的に反映されることを実証している。ネットワークが進化を続け、多様な運営者からの追加の検証者を組み込むにつれ、分散型合意システムがスケールにおいてセキュリティとパフォーマンスの両方を維持できる方法の実用的な事例を提供している。
Conclusion
Ripple प्रोटोकॉल सहमति एल्गोरिदम भुगतान प्रणालियों के लिए वितरित सहमति में एक महत्वपूर्ण प्रगति का प्रतिनिधित्व करता है। सभी नोड्स के बीच वैश्विक सहमति की आवश्यकता के बजाय सामूहिक रूप से विश्वसनीय उप-नेटवर्क का उपयोग करके, RPCA Byzantine विफलताओं के खिलाफ मजबूत गारंटी बनाए रखते हुए सेकंडों में सहमति प्राप्त करता है। औपचारिक विश्लेषण प्रदर्शित करता है कि जब तक UNL पर्याप्त ओवरलैप के साथ चुनी जाती हैं और Byzantine नोड्स सीमा से नीचे रहते हैं, नेटवर्क बिना फोर्क के सही सहमति प्राप्त करेगा।
इस कार्य के व्यावहारिक निहितार्थ Ripple भुगतान नेटवर्क से परे फैलते हैं। RPCA प्रदर्शित करता है कि सहमति विलंबता और सुरक्षा गारंटी के बीच पारंपरिक समझौते को सावधानीपूर्वक प्रोटोकॉल डिज़ाइन और स्थानीय विश्वास संबंधों के उपयोग के माध्यम से दूर किया जा सकता है। यह दृष्टिकोण अन्य वितरित प्रणालियों पर लागू हो सकता है जहां कम विलंबता महत्वपूर्ण है और प्रतिभागियों के मौजूदा विश्वास संबंध हैं, जैसे अंतर-बैंक निपटान प्रणालियां, आपूर्ति श्रृंखला ट्रैकिंग और अन्य वित्तीय अवसंरचना अनुप्रयोग।
उत्पादन प्रणालियों में RPCA की तैनाती ने एल्गोरिदम की प्रदर्शन विशेषताओं और मजबूती को मान्य किया है। Ripple नेटवर्क 3-5 सेकंड की लगातार सहमति विलंबता के साथ प्रति सेकंड हजारों लेनदेन संसाधित करता है, जो प्रदर्शित करता है कि सैद्धांतिक गुण वास्तविक-विश्व संचालन में प्रभावी रूप से अनुवादित होते हैं। जैसे-जैसे नेटवर्क विकसित होना और विविध ऑपरेटरों से अतिरिक्त वैलिडेटर शामिल करना जारी रखता है, यह एक व्यावहारिक उदाहरण प्रदान करता है कि कैसे एक विकेंद्रीकृत सहमति प्रणाली बड़े पैमाने पर सुरक्षा और प्रदर्शन दोनों बनाए रख सकती है।
References
Lamport, L., Shostak, R., and Pease, M. (1982). "The Byzantine Generals Problem." ACM Transactions on Programming Languages and Systems, 4(3):382-401. この画期的な論文は、障害のあるコンポーネントを持つ分散システムにおいて合意に達する問題を定式化し、Byzantine fault-tolerantシステムの理論的基盤を確立した。
Castro, M., and Liskov, B. (1999). "Practical Byzantine Fault Tolerance." Proceedings of the Third Symposium on Operating Systems Design and Implementation (OSDI). この研究はPBFTを導入し、Byzantine fault toleranceが実用的なパフォーマンスで達成できることを実証したが、O(n^2)の通信計算量がスケーラビリティを制限した。
Nakamoto, S. (2008). "Bitcoin: A Peer-to-Peer Electronic Cash System." このホワイトペーパーは、デジタル通貨における二重支出問題の解決策としてプルーフ・オブ・ワーク合意を導入し、高い遅延とエネルギー消費を代償として、信頼できる当事者なしに分散型合意を可能にした。
Lamport, L. (1998). "The Part-Time Parliament." ACM Transactions on Computer Systems, 16(2):133-169. この論文は、クラッシュ障害の下で非同期システムにおいて合意を達成するPaxosアルゴリズムを提示し、その後の合意プロトコル設計に影響を与えた。
Fischer, M. J., Lynch, N. A., and Paterson, M. S. (1985). "Impossibility of Distributed Consensus with One Faulty Process." Journal of the ACM, 32(2):374-382. FLP不可能性結果は、非同期システムにおいて合意アルゴリズムが達成できることの根本的な限界を確立し、実用的な合意プロトコルの設計空間を形成した。
References
Lamport, L., Shostak, R., and Pease, M. (1982). "The Byzantine Generals Problem." ACM Transactions on Programming Languages and Systems, 4(3):382-401. इस मौलिक पत्र ने दोषपूर्ण घटकों वाली वितरित प्रणालियों में सहमति प्राप्त करने की समस्या को औपचारिक रूप दिया और Byzantine दोष-सहिष्णु प्रणालियों के लिए सैद्धांतिक आधार स्थापित किया।
Castro, M., and Liskov, B. (1999). "Practical Byzantine Fault Tolerance." Proceedings of the Third Symposium on Operating Systems Design and Implementation (OSDI). इस कार्य ने PBFT पेश किया, यह प्रदर्शित करते हुए कि Byzantine दोष सहिष्णुता व्यावहारिक प्रदर्शन के साथ प्राप्त की जा सकती है, हालांकि O(n^2) संचार जटिलता स्केलेबिलिटी को सीमित करती है।
Nakamoto, S. (2008). "Bitcoin: A Peer-to-Peer Electronic Cash System." इस श्वेतपत्र ने डिजिटल मुद्रा में दोहरे खर्च की समस्या के समाधान के रूप में proof-of-work सहमति पेश की, जो उच्च विलंबता और ऊर्जा खपत की कीमत पर विश्वसनीय पक्षों के बिना विकेंद्रीकृत सहमति को सक्षम बनाती है।
Lamport, L. (1998). "The Part-Time Parliament." ACM Transactions on Computer Systems, 16(2):133-169. इस पत्र ने Paxos एल्गोरिदम प्रस्तुत किया, जो क्रैश विफलताओं के तहत असमकालिक प्रणालियों में सहमति प्राप्त करता है, जिसने बाद के सहमति प्रोटोकॉल डिज़ाइनों को प्रभावित किया।
Fischer, M. J., Lynch, N. A., and Paterson, M. S. (1985). "Impossibility of Distributed Consensus with One Faulty Process." Journal of the ACM, 32(2):374-382. FLP असंभवता परिणाम ने असमकालिक प्रणालियों में सहमति एल्गोरिदम क्या प्राप्त कर सकते हैं इसकी मूलभूत सीमाएं स्थापित कीं, जिसने व्यावहारिक सहमति प्रोटोकॉल के लिए डिज़ाइन स्थान को आकार दिया।