خوارزمية إجماع بروتوكول ريبل

Par David Schwartz, Noah Youngs and Arthur Britto · 2014

Abstract

Bien que plusieurs algorithmes de consensus existent pour le Probleme des Generaux Byzantins, en particulier en ce qui concerne les systemes de paiement distribues, beaucoup souffrent d'une latence elevee induite par l'exigence que tous les noeuds du reseau communiquent de maniere synchrone. Dans ce travail, nous presentons un nouvel algorithme de consensus qui contourne cette exigence en utilisant des sous-reseaux collectivement fiables au sein du reseau plus large. Nous montrons que la "confiance" requise pour prevenir les attaques Sybil n'est en fait pas globale, mais plutot locale a chaque noeud du reseau.

L'algorithme de consensus du protocole Ripple (RPCA) est applique toutes les quelques secondes par tous les noeuds, afin de maintenir la correction et l'accord du reseau. Une fois le consensus atteint, le ledger actuel est considere comme "ferme" et devient le dernier ledger ferme. Cet algorithme est unique en ce qu'il atteint le consensus avec une faible latence tout en maintenant de fortes garanties contre les defaillances byzantines, ce qui le rend adapte aux systemes de reglement financier en temps reel.

Abstract

على الرغم من وجود عدة خوارزميات إجماع لمسألة الجنرالات البيزنطيين (Byzantine Generals Problem)، وتحديداً فيما يتعلق بأنظمة الدفع الموزعة، فإن العديد منها يعاني من زمن استجابة مرتفع ناتج عن متطلب تواصل جميع العقد داخل الشبكة بشكل متزامن. في هذا العمل، نقدم خوارزمية إجماع جديدة تتجاوز هذا المتطلب من خلال استخدام شبكات فرعية موثوقة جماعياً ضمن الشبكة الأكبر. نوضح أن "الثقة" المطلوبة لمنع هجمات Sybil ليست في الواقع عالمية، بل محلية لكل عقدة في الشبكة.

يتم تطبيق خوارزمية إجماع بروتوكول Ripple (RPCA) كل بضع ثوانٍ بواسطة جميع العقد، من أجل الحفاظ على صحة الشبكة واتفاقها. بمجرد الوصول إلى الإجماع، يُعتبر السجل الحالي "مغلقاً" ويصبح آخر سجل مغلق. هذه الخوارزمية فريدة من نوعها حيث تحقق الإجماع بزمن استجابة منخفض مع الحفاظ على ضمانات قوية ضد الإخفاقات البيزنطية، مما يجعلها مناسبة لأنظمة التسوية المالية في الوقت الفعلي.

Introduction

Un systeme de paiement distribue doit implementer un algorithme de consensus pour traiter correctement les paiements en temps opportun, meme en presence d'acteurs defaillants ou malveillants. Bitcoin atteint le consensus en utilisant la preuve de travail (proof-of-work), qui exige que tous les noeuds depensent des ressources de calcul pour resoudre des puzzles cryptographiques. Bien que cette approche fournisse de solides garanties de securite, elle souffre d'inconvenients importants, notamment une consommation energetique elevee, un faible debit de transactions et de longues latences de confirmation pouvant s'etendre a une heure ou plus pour les transactions de grande valeur.

L'algorithme de consensus du protocole Ripple propose une nouvelle approche du consensus distribue qui ne necessite pas de preuve de travail. Au lieu de cela, les noeuds du reseau s'accordent collectivement sur des ensembles de transactions par un processus de vote qui atteint le consensus en quelques secondes. Ce mecanisme de consensus est specifiquement concu pour les exigences d'un reseau de paiement mondial, ou une faible latence et un debit eleve sont essentiels pour un deploiement pratique.

L'innovation cle du RPCA est qu'il ne necessite pas que tous les noeuds du reseau s'accordent entre eux. Au lieu de cela, chaque noeud maintient une Liste de Noeuds Uniques (Unique Node List, UNL) d'autres noeuds en lesquels il a confiance pour ne pas s'entendre. Tant que les UNL choisies par les noeuds ont un chevauchement suffisant et que moins d'un pourcentage seuil de noeuds sont defaillants, le reseau atteindra le consensus. Cette approche fournit les garanties de securite necessaires a un systeme de paiement tout en atteignant une latence de consensus mesuree en secondes plutot qu'en minutes ou en heures.

Introduction

يجب أن ينفذ نظام الدفع الموزع خوارزمية إجماع لمعالجة المدفوعات بشكل صحيح وفي الوقت المناسب حتى في وجود جهات فاعلة معيبة أو خبيثة. يحقق Bitcoin الإجماع باستخدام إثبات العمل (proof-of-work)، الذي يتطلب من جميع العقد إنفاق موارد حسابية لحل الألغاز التشفيرية. في حين أن هذا النهج يوفر ضمانات أمنية قوية، إلا أنه يعاني من عيوب كبيرة تشمل استهلاك الطاقة العالي، وانخفاض إنتاجية المعاملات، وأوقات تأكيد طويلة يمكن أن تمتد إلى ساعة أو أكثر للمعاملات عالية القيمة.

توفر خوارزمية إجماع بروتوكول Ripple نهجاً جديداً للإجماع الموزع لا يتطلب إثبات العمل. بدلاً من ذلك، تتفق العقد في الشبكة بشكل جماعي على مجموعات المعاملات من خلال عملية تصويت تحقق الإجماع في غضون ثوانٍ. تم تصميم آلية الإجماع هذه خصيصاً لمتطلبات شبكة مدفوعات عالمية، حيث يكون زمن الاستجابة المنخفض والإنتاجية العالية ضروريين للنشر العملي.

الابتكار الرئيسي في RPCA هو أنه لا يتطلب موافقة جميع العقد في الشبكة مع بعضها البعض. بدلاً من ذلك، تحتفظ كل عقدة بقائمة عقد فريدة (Unique Node List أو UNL) من العقد الأخرى التي تثق بها في عدم التواطؤ. طالما أن قوائم UNL المختارة من قبل العقد لديها تداخل كافٍ، وأن أقل من نسبة حد معينة من العقد معيبة، فإن الشبكة ستصل إلى الإجماع. يوفر هذا النهج ضمانات الأمان اللازمة لنظام الدفع مع تحقيق زمن إجماع يُقاس بالثواني بدلاً من الدقائق أو الساعات.

Definition of Consensus

Dans les systemes distribues, le consensus designe le processus par lequel un reseau de noeuds parvient a un accord sur un etat partage, malgre la presence de participants defaillants ou malveillants. Un algorithme de consensus doit satisfaire trois proprietes fondamentales : la correction (deux noeuds corrects ne prennent pas de decisions differentes), l'accord (tous les noeuds corrects parviennent a la meme decision) et la terminaison (tous les noeuds corrects finissent par prendre une decision). Ces proprietes garantissent que le systeme distribue se comporte comme s'il s'agissait d'un noeud unique et fiable.

Le defi pour atteindre le consensus provient de la non-fiabilite inherente des systemes distribues. Les noeuds peuvent tomber en panne, les messages peuvent etre retardes ou perdus, et les noeuds byzantins peuvent se comporter de maniere arbitraire ou malveillante. Le Probleme des Generaux Byzantins, formalise par Lamport, Shostak et Pease, capture ce defi : comment un groupe de processus peut-il parvenir a un accord lorsqu'une fraction d'entre eux peut etre defaillante et que la communication n'est pas fiable ?

Les resultats classiques en informatique distribuee etablissent des limites fondamentales sur ce que les algorithmes de consensus peuvent realiser. Le resultat d'impossibilite FLP montre qu'aucun algorithme deterministe ne peut garantir le consensus dans un systeme asynchrone si meme un seul noeud peut echouer. Les algorithmes de consensus pratiques doivent donc faire des compromis entre la surete (ne jamais atteindre un consensus incorrect) et la vivacite (toujours progresser). La preuve de travail de Bitcoin privilegie la surete par rapport a la vivacite, tandis que le RPCA atteint un equilibre plus adapte aux systemes de paiement en completant les tours de consensus en temps borne tout en maintenant de fortes garanties de surete sous des hypotheses de pannes realistes.

Definition of Consensus

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

ينشأ التحدي في تحقيق الإجماع من عدم الموثوقية المتأصلة في الأنظمة الموزعة. قد تتعطل العقد، وقد تتأخر الرسائل أو تُفقد، وقد تتصرف العقد البيزنطية بشكل تعسفي أو خبيث. مسألة الجنرالات البيزنطيين (Byzantine Generals Problem)، التي صاغها Lamport وShostak وPease، تلتقط هذا التحدي: كيف يمكن لمجموعة من العمليات التوصل إلى اتفاق عندما قد يكون بعضها معيباً وعندما يكون الاتصال غير موثوق؟

تحدد النتائج الكلاسيكية في الحوسبة الموزعة حدوداً أساسية لما يمكن أن تحققه خوارزميات الإجماع. تُظهر نتيجة استحالة FLP أنه لا يمكن لأي خوارزمية حتمية ضمان الإجماع في نظام غير متزامن إذا كان حتى عقدة واحدة يمكن أن تفشل. لذلك يجب على خوارزميات الإجماع العملية إجراء مقايضات بين السلامة (عدم الوصول أبداً إلى إجماع خاطئ) والحيوية (تحقيق التقدم دائماً). يعطي إثبات العمل في Bitcoin الأولوية للسلامة على الحيوية، بينما يحقق RPCA توازناً أكثر ملاءمة لأنظمة الدفع من خلال إكمال جولات الإجماع في وقت محدد مع الحفاظ على ضمانات سلامة قوية في ظل افتراضات أعطال واقعية.

Existing Consensus Algorithms

Plusieurs algorithmes de consensus ont ete proposes pour resoudre le Probleme des Generaux Byzantins dans les systemes distribues. L'algorithme Practical Byzantine Fault Tolerance (PBFT), introduit par Castro et Liskov, peut tolerer jusqu'a f fautes byzantines dans un systeme de 3f+1 noeuds. PBFT atteint le consensus par plusieurs tours d'echange de messages entre tous les noeuds, avec une complexite de communication de O(n^2), ou n est le nombre de noeuds. Bien que PBFT fournisse de solides garanties de surete et une latence relativement faible pour les petits reseaux, il ne s'adapte pas bien aux grands reseaux en raison de la surcharge de communication quadratique.

Paxos et ses variantes, developpes par Lamport, fournissent un consensus dans les systemes asynchrones mais supposent des defaillances par arret plutot que des fautes byzantines. Paxos atteint le consensus par une serie de tours au cours desquels les proposants suggerent des valeurs et les accepteurs votent. Bien que Paxos puisse tolerer des retards de messages arbitraires et des arrets de processus, il necessite une ingenierie soigneuse pour gerer les defaillances byzantines et peut souffrir de livelock dans certains scenarios.

L'algorithme de consensus proof-of-work de Bitcoin adopte une approche fondamentalement differente en rendant les attaques byzantines economiquement irrealisables. Les noeuds rivalisent pour resoudre des puzzles cryptographiques, le gagnant proposant le prochain bloc de transactions. Bien que cette approche s'adapte a des reseaux de taille arbitraire et gere les fautes byzantines, elle presente de serieux inconvenients : une consommation d'energie massive (estimee a plus de 150 millions de dollars par an pour le reseau Bitcoin), de longues latences de confirmation (souvent 40-60 minutes pour les transactions de grande valeur) et un debit limite (environ 7 transactions par seconde). Ces limitations rendent le proof-of-work inadapte a de nombreuses applications de systemes de paiement necessitant un reglement rapide et des volumes de transactions eleves.

Existing Consensus Algorithms

تم اقتراح عدة خوارزميات إجماع لحل مسألة الجنرالات البيزنطيين في الأنظمة الموزعة. يمكن لخوارزمية Practical Byzantine Fault Tolerance (PBFT)، التي قدمها Castro وLiskov، تحمل ما يصل إلى f عطل بيزنطي في نظام مكون من 3f+1 عقدة. يحقق PBFT الإجماع من خلال جولات متعددة من تبادل الرسائل بين جميع العقد، بتعقيد اتصال قدره O(n^2)، حيث n هو عدد العقد. في حين يوفر PBFT ضمانات سلامة قوية وزمن استجابة منخفض نسبياً للشبكات الصغيرة، إلا أنه لا يتوسع بشكل جيد للشبكات الكبيرة بسبب عبء الاتصال التربيعي.

يوفر Paxos ومتغيراته، التي طورها Lamport، إجماعاً في الأنظمة غير المتزامنة ولكنه يفترض أعطال التعطل بدلاً من الأعطال البيزنطية. يحقق Paxos الإجماع من خلال سلسلة من الجولات يقترح فيها المقترحون قيماً ويصوت عليها القابلون. في حين يمكن لـ Paxos تحمل تأخيرات الرسائل التعسفية وتعطل العمليات، فإنه يتطلب هندسة دقيقة للتعامل مع الأعطال البيزنطية ويمكن أن يعاني من القفل الحي (livelock) في سيناريوهات معينة.

تتخذ خوارزمية إجماع proof-of-work في Bitcoin نهجاً مختلفاً جذرياً من خلال جعل الهجمات البيزنطية غير مجدية اقتصادياً. تتنافس العقد لحل الألغاز التشفيرية، حيث يقترح الفائز الكتلة التالية من المعاملات. في حين أن هذا النهج يتوسع إلى أحجام شبكات تعسفية ويتعامل مع الأعطال البيزنطية، فإن له عيوباً خطيرة: استهلاك هائل للطاقة (يُقدر بأكثر من 150 مليون دولار سنوياً لشبكة Bitcoin)، وأوقات تأكيد طويلة (غالباً 40-60 دقيقة للمعاملات عالية القيمة)، وإنتاجية محدودة (حوالي 7 معاملات في الثانية). تجعل هذه القيود proof-of-work غير مناسب للعديد من تطبيقات أنظمة الدفع التي تتطلب تسوية سريعة وأحجام معاملات عالية.

Ripple Protocol Consensus Algorithm

L'algorithme de consensus du protocole Ripple (RPCA) commence par chaque serveur prenant toutes les transactions valides qu'il a vues et qui n'ont pas encore ete appliquees comme transactions candidates. Les serveurs suivent ensuite un protocole multi-tours ou ils travaillent iterativement vers un accord sur un ensemble de transactions a appliquer au ledger actuel. A chaque tour, les serveurs font des propositions consistant en les transactions qu'ils estiment devoir etre incluses dans le prochain ledger.

Pendant chaque tour de consensus, les serveurs communiquent leurs propositions aux autres serveurs de leur Unique Node List (UNL). Les serveurs calculent ensuite quelles transactions apparaissent dans un pourcentage seuil des propositions. Initialement, ce seuil est fixe a 50 %, ce qui signifie qu'une transaction doit apparaitre dans les propositions d'au moins la moitie de l'UNL d'un serveur pour etre consideree pour le tour suivant. Au fur et a mesure que le consensus progresse a travers les tours successifs, ce seuil augmente progressivement (typiquement a 60 %, 70 %, et finalement 80 %).

Lorsqu'une transaction atteint le seuil de supermajority de 80 % de soutien dans l'UNL d'un serveur, elle est incluse dans la proposition de ce serveur pour le tour de consensus final. Toutes les transactions qui atteignent ce seuil a travers le reseau sont appliquees au ledger, qui est ensuite hache cryptographiquement et signe. Ce ledger nouvellement valide devient le dernier ledger ferme, et le processus recommence avec le prochain ensemble de transactions candidates.

Le processus de consensus se termine generalement en 5 secondes ou moins, la plupart des transactions ne necessitant qu'un seul tour de consensus pour atteindre le seuil de supermajority. Les transactions qui n'atteignent pas le consensus en un tour restent candidates pour les tours suivants. Cette conception garantit que le reseau progresse continuellement tout en maintenant de fortes garanties de surete, car aucune transaction ne peut etre appliquee au ledger sans le soutien d'une supermajority de validateurs de confiance.

Ripple Protocol Consensus Algorithm

تبدأ خوارزمية إجماع بروتوكول Ripple (RPCA) بأخذ كل خادم لجميع المعاملات الصالحة التي رآها والتي لم يتم تطبيقها بعد كمعاملات مرشحة. ثم تتبع الخوادم بروتوكولاً متعدد الجولات حيث تعمل بشكل تكراري نحو الاتفاق على مجموعة من المعاملات لتطبيقها على السجل الحالي. في كل جولة، تقدم الخوادم مقترحات تتكون من المعاملات التي تعتقد أنها يجب أن تُدرج في السجل التالي.

خلال كل جولة إجماع، تنقل الخوادم مقترحاتها إلى الخوادم الأخرى في قائمة العقد الفريدة (Unique Node List أو UNL) الخاصة بها. ثم تحسب الخوادم المعاملات التي تظهر في نسبة حد معينة من المقترحات. في البداية، يتم تعيين هذا الحد عند 50%، مما يعني أن المعاملة يجب أن تظهر في مقترحات نصف UNL الخادم على الأقل لتُعتبر للجولة التالية. مع تقدم الإجماع عبر الجولات المتتالية، يزداد هذا الحد تدريجياً (عادةً إلى 60%، 70%، وأخيراً 80%).

عندما تحقق معاملة حد الأغلبية العظمى البالغ 80% من الدعم في UNL الخادم، يتم تضمينها في مقترح ذلك الخادم لجولة الإجماع النهائية. يتم تطبيق جميع المعاملات التي تصل إلى هذا الحد عبر الشبكة على السجل، الذي يتم بعد ذلك تجزئته تشفيرياً وتوقيعه. يصبح هذا السجل المصادق عليه حديثاً آخر سجل مغلق، وتبدأ العملية مرة أخرى مع المجموعة التالية من المعاملات المرشحة.

تكتمل عملية الإجماع عادةً في 5 ثوانٍ أو أقل، حيث تتطلب معظم المعاملات جولة إجماع واحدة فقط لتحقيق حد الأغلبية العظمى. تبقى المعاملات التي لا تحقق الإجماع في جولة واحدة مرشحة للجولات اللاحقة. يضمن هذا التصميم أن الشبكة تحقق تقدماً مستمراً مع الحفاظ على ضمانات سلامة قوية، حيث لا يمكن تطبيق أي معاملة على السجل دون دعم الأغلبية العظمى من المصادقين الموثوقين.

Formal Analysis of Convergence

La correction du RPCA depend de maniere critique du chevauchement entre les UNL choisies par les differents noeuds du reseau. Soit UNL_i la liste de noeuds uniques du noeud i, et soit UNL_i ∩ UNL_j l'ensemble des noeuds qui apparaissent a la fois dans UNL_i et UNL_j. Pour que le reseau maintienne le consensus, nous exigeons que pour deux noeuds quelconques i et j, l'intersection de leurs UNL soit suffisamment grande par rapport a la taille maximale de l'une ou l'autre UNL.

Probability of consensus failure versus UNL size chart showing security thresholds for the Ripple Protocol Consensus Algorithm

Specifiquement, le protocole garantit la surete lorsque |UNL_i ∩ UNL_j| / max(|UNL_i|, |UNL_j|) 1/5 pour toutes les paires de noeuds i et j. Cette condition garantit que meme si des noeuds byzantins tentent de faire en sorte que differentes parties du reseau atteignent des decisions de consensus differentes, le chevauchement des noeuds de confiance empeche une bifurcation (fork). Si cette condition est remplie et que moins de 1/5 des noeuds dans une UNL sont byzantins, alors tous les noeuds corrects atteindront la meme decision de consensus.

La preuve formelle procede en montrant que si deux noeuds pouvaient atteindre des decisions de consensus differentes, il devrait exister une transaction T qui apparait dans le ledger final d'un noeud mais pas dans celui de l'autre. Pour que cela se produise, T devrait avoir obtenu 80 % de soutien dans l'UNL du premier noeud mais moins de 80 % de soutien dans l'UNL du second noeud. Cependant, etant donne l'exigence de chevauchement et la contrainte sur les noeuds byzantins, on peut montrer que ce scenario est impossible : si T atteint 80 % de soutien dans UNL_i, elle doit atteindre au moins 60 % de soutien dans toute UNL_j qui satisfait la condition de chevauchement, et avec suffisamment de tours de consensus, cela convergera vers 80 % ou sera rejete par les deux noeuds.

La propriete de vivacite -- que le consensus sera finalement atteint -- decoule de l'observation que le seuil d'inclusion augmente de maniere deterministe a travers les tours de consensus. Meme en presence de noeuds byzantins et de retards reseau, le protocole garantit que les transactions soutenues par une supermajority de noeuds honnetes seront finalement incluses, tandis que les transactions manquant d'un tel soutien seront exclues. Le temps borne pour le consensus (typiquement 5 secondes) fournit des garanties pratiques de vivacite adaptees aux applications de systemes de paiement.

Formal Analysis of Convergence

تعتمد صحة RPCA بشكل حاسم على التداخل بين قوائم UNL المختارة من قبل العقد المختلفة في الشبكة. ليكن UNL_i قائمة العقد الفريدة للعقدة i، وليكن UNL_i ∩ UNL_j مجموعة العقد التي تظهر في كل من UNL_i وUNL_j. للحفاظ على إجماع الشبكة، نشترط أنه لأي عقدتين i وj، يجب أن يكون تقاطع قوائم UNL الخاصة بهما كبيراً بما فيه الكفاية مقارنة بالحجم الأقصى لأي من القائمتين.

Probability of consensus failure versus UNL size chart showing security thresholds for the Ripple Protocol Consensus Algorithm

على وجه التحديد، يضمن البروتوكول السلامة عندما |UNL_i ∩ UNL_j| / max(|UNL_i|, |UNL_j|) 1/5 لجميع أزواج العقد i وj. يضمن هذا الشرط أنه حتى لو حاولت العقد البيزنطية التسبب في وصول أجزاء مختلفة من الشبكة إلى قرارات إجماع مختلفة، فإن التداخل في العقد الموثوقة يمنع الانقسام (fork). إذا تحقق هذا الشرط وكانت أقل من 1/5 من العقد في أي UNL بيزنطية، فإن جميع العقد الصحيحة ستصل إلى نفس قرار الإجماع.

يتقدم البرهان الرسمي بإظهار أنه إذا تمكنت عقدتان من الوصول إلى قرارات إجماع مختلفة، فيجب أن توجد معاملة T تظهر في السجل النهائي لعقدة واحدة ولكن ليس في الأخرى. لحدوث ذلك، يجب أن تكون T قد حققت 80% من الدعم في UNL العقدة الأولى ولكن أقل من 80% من الدعم في UNL العقدة الثانية. ومع ذلك، بالنظر إلى متطلب التداخل والقيد على العقد البيزنطية، يمكن إثبات أن هذا السيناريو مستحيل: إذا حققت T دعم 80% في UNL_i، فيجب أن تحقق دعم 60% على الأقل في أي UNL_j تستوفي شرط التداخل، ومع جولات كافية من الإجماع، سيتقارب هذا إلى 80% أو سيتم رفضه من قبل كلتا العقدتين.

خاصية الحيوية -- أن الإجماع سيتم الوصول إليه في نهاية المطاف -- تنبع من ملاحظة أن حد الإدراج يزداد بشكل حتمي عبر جولات الإجماع. حتى في وجود عقد بيزنطية وتأخيرات في الشبكة، يضمن البروتوكول أن المعاملات المدعومة من الأغلبية العظمى للعقد الصادقة ستُدرج في النهاية، بينما ستُستبعد المعاملات التي تفتقر إلى هذا الدعم. يوفر الوقت المحدد للإجماع (عادةً 5 ثوانٍ) ضمانات حيوية عملية مناسبة لتطبيقات أنظمة الدفع.

Unique Node Lists

La Liste de Noeuds Uniques (Unique Node List, UNL) est un composant fondamental du RPCA qui le distingue des autres algorithmes de consensus. Chaque noeud du reseau Ripple maintient une UNL composee d'autres noeuds en lesquels il a confiance pour ne pas s'entendre afin de frauder le reseau. De maniere critique, cette confiance est locale plutot que globale : differents noeuds peuvent avoir differentes UNL, et il n'y a aucune exigence d'un ensemble de validateurs convenu globalement. Cette conception permet au reseau de se developper organiquement tout en maintenant la decentralisation.

XRP Ledger network topology diagram showing two UNL node clusters with connectivity overlap

L'UNL sert de mecanisme de prevention des attaques Sybil sans necessiter de preuve de travail. Dans un systeme de vote naif, un attaquant pourrait creer de nombreux noeuds pseudonymes pour obtenir une influence disproportionnee. En exigeant que chaque noeud choisisse explicitement les autres noeuds en lesquels il a confiance, le RPCA garantit que la creation d'identites supplementaires ne procure aucun avantage a moins que ces identites ne puissent convaincre les noeuds existants de les ajouter a leurs UNL. Cela deplace le probleme de la resistance Sybil de la depense de calcul vers les relations de reputation et de confiance.

Pour que le reseau fonctionne correctement, les UNL doivent etre choisies de maniere a avoir un chevauchement suffisant, comme decrit dans l'analyse formelle. En pratique, cela signifie que bien que chaque operateur de noeud ait une autonomie dans la selection de son UNL, il doit s'assurer que sa liste inclut des validateurs qui sont egalement approuves par d'autres parties du reseau. Ripple fournit une UNL par defaut composee de validateurs operes par des entites diverses, mais les operateurs de noeuds sont libres de modifier cette liste en fonction de leur propre evaluation de confiance.

Le mecanisme UNL fournit egalement une voie naturelle vers une decentralisation progressive. Dans les premieres etapes du reseau, un ensemble plus centralise de validateurs peut etre approprie pour assurer la stabilite et la fiabilite. A mesure que le reseau murit et que des operateurs plus divers demontrent leur fiabilite, les UNL peuvent evoluer pour inclure un ensemble plus large de validateurs, augmentant la resilience et la decentralisation du reseau sans compromettre ses proprietes de securite.

Unique Node Lists

قائمة العقد الفريدة (Unique Node List أو UNL) هي مكون أساسي في RPCA يميزه عن خوارزميات الإجماع الأخرى. تحتفظ كل عقدة في شبكة Ripple بقائمة UNL تتكون من عقد أخرى تثق بها في عدم التواطؤ للاحتيال على الشبكة. بشكل حاسم، هذه الثقة محلية وليست عالمية: يمكن أن يكون لدى العقد المختلفة قوائم UNL مختلفة، ولا يوجد متطلب لمجموعة متفق عليها عالمياً من المصادقين. يسمح هذا التصميم للشبكة بالنمو عضوياً مع الحفاظ على اللامركزية.

XRP Ledger network topology diagram showing two UNL node clusters with connectivity overlap

تعمل UNL كآلية لمنع هجمات Sybil دون الحاجة إلى إثبات العمل. في نظام تصويت بسيط، يمكن للمهاجم إنشاء العديد من العقد المستعارة للحصول على تأثير غير متناسب. من خلال مطالبة كل عقدة باختيار العقد الأخرى التي تثق بها بشكل صريح، يضمن RPCA أن إنشاء هويات إضافية لا يوفر أي ميزة ما لم تتمكن تلك الهويات من إقناع العقد الموجودة بإضافتها إلى قوائم UNL الخاصة بها. ينقل هذا مشكلة مقاومة Sybil من الإنفاق الحسابي إلى السمعة وعلاقات الثقة.

لكي تعمل الشبكة بشكل صحيح، يجب اختيار قوائم UNL بحيث يكون لديها تداخل كافٍ، كما هو موضح في التحليل الرسمي. عملياً، هذا يعني أنه بينما يتمتع كل مشغل عقدة بالاستقلالية في اختيار UNL الخاصة به، يجب عليه التأكد من أن قائمته تتضمن مصادقين يحظون بثقة أجزاء أخرى من الشبكة أيضاً. توفر Ripple قائمة UNL افتراضية تتكون من مصادقين تشغلهم كيانات متنوعة، لكن مشغلي العقد أحرار في تعديل هذه القائمة بناءً على تقييم الثقة الخاص بهم.

توفر آلية UNL أيضاً مساراً طبيعياً نحو اللامركزية التدريجية. في المراحل الأولى من الشبكة، قد تكون مجموعة أكثر مركزية من المصادقين مناسبة لضمان الاستقرار والموثوقية. مع نضج الشبكة وإثبات المزيد من المشغلين المتنوعين لجدارتهم بالثقة، يمكن أن تتطور قوائم UNL لتشمل مجموعة أوسع من المصادقين، مما يزيد من مرونة الشبكة ولامركزيتها دون المساس بخصائصها الأمنية.

Simulation Code

Pour valider l'analyse theorique du RPCA et evaluer ses performances dans diverses conditions, des simulations approfondies ont ete menees a l'aide d'un logiciel de simulation sur mesure. Le cadre de simulation modelise un reseau de noeuds, chacun maintenant sa propre UNL et participant au protocole de consensus. Le code implemente l'algorithme RPCA complet, incluant la proposition de transactions, les tours de vote avec des seuils croissants et la validation du ledger.

Les parametres cles varies dans les simulations comprennent la taille du reseau (allant de 10 a 1 000 noeuds), le pourcentage de noeuds byzantins (de 0 % a 20 %), la taille de l'UNL (typiquement entre 5 et 50 noeuds) et les configurations de topologie reseau. Pour chaque configuration de parametres, plusieurs executions de simulation ont ete menees avec differentes graines aleatoires afin d'assurer la validite statistique des resultats. Les simulations ont suivi des metriques incluant la latence du consensus, la probabilite de bifurcation (fork) et le debit de transactions.

Les resultats de simulation confirment les predictions theoriques concernant la convergence et la surete. Dans toutes les configurations ou la condition de chevauchement de l'UNL etait satisfaite et ou les noeuds byzantins representaient moins de 20 % de chaque UNL, le reseau a atteint le consensus avec succes sans bifurcation. La latence du consensus est restee constamment faible (se terminant typiquement en 3-5 secondes simulees) independamment de la taille du reseau, demontrant la scalabilite de l'algorithme. Meme avec 15 % de noeuds byzantins tentant activement de perturber le consensus, le reseau a maintenu la correction tant que l'exigence de chevauchement de l'UNL etait respectee.

Des simulations supplementaires ont explore des cas limites et des scenarios de defaillance, incluant des partitions reseau, des changements soudains dans la composition de l'UNL et des attaques coordonnees par des noeuds byzantins. Ces simulations ont fourni des informations sur la robustesse du protocole et ont eclaire les meilleures pratiques recommandees pour la selection de l'UNL et l'exploitation du reseau. Le code de simulation complet a ete mis a disposition pour permettre la verification independante et la recherche approfondie.

Simulation Code

للتحقق من صحة التحليل النظري لـ RPCA وتقييم أدائه في ظل ظروف مختلفة، أُجريت عمليات محاكاة مكثفة باستخدام برنامج محاكاة مصمم خصيصاً. يُنمذج إطار المحاكاة شبكة من العقد، كل منها تحتفظ بقائمة UNL الخاصة بها وتشارك في بروتوكول الإجماع. ينفذ الكود خوارزمية RPCA الكاملة، بما في ذلك اقتراح المعاملات، وجولات التصويت ذات الحدود المتزايدة، والتحقق من صحة السجل.

تشمل المعلمات الرئيسية المتغيرة في المحاكاة حجم الشبكة (من 10 إلى 1,000 عقدة)، ونسبة العقد البيزنطية (من 0% إلى 20%)، وحجم UNL (عادةً بين 5 و50 عقدة)، وتكوينات طوبولوجيا الشبكة. لكل تكوين معلمات، أُجريت عمليات محاكاة متعددة ببذور عشوائية مختلفة لضمان الصلاحية الإحصائية للنتائج. تتبعت المحاكاة مقاييس تشمل زمن استجابة الإجماع، واحتمال الانقسام (fork)، وإنتاجية المعاملات.

تؤكد نتائج المحاكاة التنبؤات النظرية المتعلقة بالتقارب والسلامة. في جميع التكوينات التي استُوفي فيها شرط تداخل UNL وشكلت العقد البيزنطية أقل من 20% من كل UNL، وصلت الشبكة بنجاح إلى الإجماع دون انقسامات. ظل زمن استجابة الإجماع منخفضاً باستمرار (يكتمل عادةً في 3-5 ثوانٍ محاكاة) بغض النظر عن حجم الشبكة، مما يوضح قابلية الخوارزمية للتوسع. حتى مع وجود 15% من العقد البيزنطية تحاول بنشاط تعطيل الإجماع، حافظت الشبكة على الصحة طالما تم استيفاء متطلب تداخل UNL.

استكشفت محاكاة إضافية الحالات الحدية وسيناريوهات الفشل، بما في ذلك تقسيم الشبكة، والتغييرات المفاجئة في تكوين UNL، والهجمات المنسقة من قبل العقد البيزنطية. قدمت هذه المحاكاة رؤى حول متانة البروتوكول وأفادت في تحديد أفضل الممارسات الموصى بها لاختيار UNL وتشغيل الشبكة. تم توفير كود المحاكاة الكامل للسماح بالتحقق المستقل والبحث الإضافي.

Discussion

Compare au consensus proof-of-work de Bitcoin, le RPCA offre plusieurs avantages significatifs pour les applications de systemes de paiement. Plus remarquablement, la latence du consensus est reduite de 40-60 minutes (le temps typiquement recommande pour les transactions Bitcoin de grande valeur) a environ 5 secondes. Cette amelioration rend le RPCA adapte aux points de vente et autres applications ou un reglement quasi instantane est requis. De plus, le RPCA necessite des ressources de calcul minimales par rapport au proof-of-work, eliminant la consommation massive d'energie associee au minage de Bitcoin.

Cependant, ces avantages s'accompagnent d'hypotheses de confiance differentes. Alors que la securite de Bitcoin repose uniquement sur l'hypothese qu'aucun attaquant ne controle plus de 50 % de la puissance de calcul du reseau, le RPCA exige que les noeuds choisissent des UNL avec un chevauchement suffisant et que les noeuds byzantins ne depassent pas le seuil au sein de ces UNL. Cela transfere une certaine responsabilite aux operateurs de noeuds pour prendre des decisions de confiance prudentes. En pratique, ce compromis est acceptable pour de nombreux cas d'utilisation de systemes de paiement ou les institutions participantes ont des relations de confiance existantes.

La topologie du reseau et la strategie de selection de l'UNL ont un impact significatif sur les proprietes du systeme de consensus. Une topologie hautement centralisee ou tous les noeuds incluent les memes validateurs dans leurs UNL maximise la surete mais peut reduire la vivacite si ces validateurs deviennent indisponibles. Inversement, une topologie hautement decentralisee avec un chevauchement minimal de l'UNL peut ameliorer la vivacite mais risque des echecs de consensus si le chevauchement devient trop faible. Trouver l'equilibre optimal necessite une consideration attentive du scenario de deploiement specifique et de la tolerance au risque.

Les travaux futurs pourraient explorer des algorithmes de selection UNL adaptatifs qui maintiennent automatiquement les exigences de chevauchement tout en maximisant la decentralisation, des mecanismes permettant aux noeuds d'ajuster dynamiquement leurs UNL en fonction du comportement observe des validateurs, et des extensions de l'algorithme de consensus qui pourraient tolerer des pourcentages encore plus eleves de noeuds byzantins. Ces ameliorations pourraient renforcer davantage la robustesse et l'applicabilite du RPCA pour les systemes de paiement distribues a grande echelle.

Discussion

مقارنةً بإجماع proof-of-work في Bitcoin، يقدم RPCA عدة مزايا مهمة لتطبيقات أنظمة الدفع. والأبرز من ذلك، يتم تقليل زمن الإجماع من 40-60 دقيقة (الوقت الموصى به عادةً لمعاملات Bitcoin عالية القيمة) إلى حوالي 5 ثوانٍ. يجعل هذا التحسين RPCA مناسباً لنقاط البيع والتطبيقات الأخرى التي تتطلب تسوية شبه فورية. بالإضافة إلى ذلك، يتطلب RPCA موارد حسابية ضئيلة مقارنة بـ proof-of-work، مما يلغي الاستهلاك الهائل للطاقة المرتبط بتعدين Bitcoin.

ومع ذلك، تأتي هذه المزايا مع افتراضات ثقة مختلفة. بينما يعتمد أمان Bitcoin فقط على افتراض أن لا مهاجم يتحكم في أكثر من 50% من القوة الحسابية للشبكة، يتطلب RPCA أن تختار العقد قوائم UNL ذات تداخل كافٍ وأن لا تتجاوز العقد البيزنطية الحد الأقصى ضمن هذه القوائم. ينقل هذا بعض المسؤولية إلى مشغلي العقد لاتخاذ قرارات ثقة حكيمة. عملياً، هذه المقايضة مقبولة للعديد من حالات استخدام أنظمة الدفع حيث تكون للمؤسسات المشاركة علاقات ثقة قائمة.

تؤثر طوبولوجيا الشبكة واستراتيجية اختيار UNL بشكل كبير على خصائص نظام الإجماع. تعمل الطوبولوجيا المركزية للغاية حيث تتضمن جميع العقد نفس المصادقين في قوائم UNL الخاصة بها على تعظيم السلامة ولكنها قد تقلل من الحيوية إذا أصبح هؤلاء المصادقون غير متاحين. على العكس، قد تحسن الطوبولوجيا اللامركزية للغاية ذات التداخل الأدنى في UNL من الحيوية ولكنها قد تخاطر بفشل الإجماع إذا أصبح التداخل ضئيلاً جداً. يتطلب إيجاد التوازن الأمثل دراسة متأنية لسيناريو النشر المحدد وتحمل المخاطر.

يمكن أن تستكشف الأعمال المستقبلية خوارزميات اختيار UNL التكيفية التي تحافظ تلقائياً على متطلبات التداخل مع تعظيم اللامركزية، وآليات للعقد لتعديل قوائم UNL الخاصة بها ديناميكياً بناءً على سلوك المصادقين الملاحظ، وتوسعات لخوارزمية الإجماع يمكنها تحمل نسب أعلى من العقد البيزنطية. يمكن أن تعزز هذه التحسينات متانة وقابلية تطبيق RPCA لأنظمة الدفع الموزعة واسعة النطاق.

Conclusion

L'algorithme de consensus du protocole Ripple represente une avancee significative dans le consensus distribue pour les systemes de paiement. En utilisant des sous-reseaux collectivement fiables plutot que d'exiger un accord global entre tous les noeuds, le RPCA atteint le consensus en quelques secondes tout en maintenant de fortes garanties contre les defaillances byzantines. L'analyse formelle demontre que tant que les UNL sont choisies avec un chevauchement suffisant et que les noeuds byzantins restent en dessous du seuil, le reseau atteindra un consensus correct sans bifurcation.

Les implications pratiques de ce travail s'etendent au-dela du reseau de paiement Ripple. Le RPCA demontre que le compromis traditionnel entre latence du consensus et garanties de securite peut etre surmonte par une conception de protocole soignee et l'utilisation de relations de confiance locales. Cette approche peut s'averer applicable a d'autres systemes distribues ou une faible latence est critique et ou les participants ont des relations de confiance existantes, tels que les systemes de reglement interbancaires, le suivi de la chaine d'approvisionnement et d'autres applications d'infrastructure financiere.

Le deploiement du RPCA dans les systemes de production a valide les caracteristiques de performance et la robustesse de l'algorithme. Le reseau Ripple traite des milliers de transactions par seconde avec une latence de consensus constante de 3-5 secondes, demontrant que les proprietes theoriques se traduisent efficacement en fonctionnement reel. A mesure que le reseau continue d'evoluer et d'incorporer des validateurs supplementaires d'operateurs divers, il fournit un exemple pratique de la facon dont un systeme de consensus decentralise peut maintenir a la fois la securite et la performance a grande echelle.

Conclusion

تمثل خوارزمية إجماع بروتوكول Ripple تقدماً كبيراً في الإجماع الموزع لأنظمة الدفع. من خلال استخدام شبكات فرعية موثوقة جماعياً بدلاً من طلب اتفاق عالمي بين جميع العقد، يحقق RPCA الإجماع في غضون ثوانٍ مع الحفاظ على ضمانات قوية ضد الإخفاقات البيزنطية. يوضح التحليل الرسمي أنه طالما يتم اختيار قوائم UNL بتداخل كافٍ وتبقى العقد البيزنطية دون الحد الأقصى، فإن الشبكة ستصل إلى إجماع صحيح دون انقسامات.

تمتد الآثار العملية لهذا العمل إلى ما هو أبعد من شبكة مدفوعات Ripple. يوضح RPCA أن المقايضة التقليدية بين زمن الإجماع وضمانات الأمان يمكن التغلب عليها من خلال تصميم بروتوكول دقيق واستخدام علاقات الثقة المحلية. قد يثبت هذا النهج قابليته للتطبيق على أنظمة موزعة أخرى حيث يكون زمن الاستجابة المنخفض حاسماً ولدى المشاركين علاقات ثقة قائمة، مثل أنظمة التسوية بين البنوك، وتتبع سلسلة التوريد، وتطبيقات البنية التحتية المالية الأخرى.

أثبت نشر RPCA في أنظمة الإنتاج خصائص أداء الخوارزمية ومتانتها. تعالج شبكة Ripple آلاف المعاملات في الثانية بزمن إجماع ثابت يتراوح بين 3-5 ثوانٍ، مما يوضح أن الخصائص النظرية تترجم بفعالية إلى التشغيل في العالم الحقيقي. مع استمرار الشبكة في التطور ودمج مصادقين إضافيين من مشغلين متنوعين، فإنها توفر مثالاً عملياً على كيف يمكن لنظام إجماع لامركزي الحفاظ على الأمان والأداء معاً على نطاق واسع.

References

Lamport, L., Shostak, R., et Pease, M. (1982). "The Byzantine Generals Problem." ACM Transactions on Programming Languages and Systems, 4(3):382-401. Cet article fondateur a formalise le probleme d'atteindre le consensus dans les systemes distribues avec des composants defaillants et a etabli les fondements theoriques des systemes tolerants aux fautes byzantines.

Castro, M., et Liskov, B. (1999). "Practical Byzantine Fault Tolerance." Proceedings of the Third Symposium on Operating Systems Design and Implementation (OSDI). Ce travail a introduit PBFT, demontrant que la tolerance aux fautes byzantines pouvait etre atteinte avec des performances pratiques, bien qu'avec une complexite de communication O(n^2) limitant la scalabilite.

Nakamoto, S. (2008). "Bitcoin: A Peer-to-Peer Electronic Cash System." Ce livre blanc a introduit le consensus par preuve de travail comme solution au probleme de la double depense dans la monnaie numerique, permettant un consensus decentralise sans parties de confiance au prix d'une latence elevee et d'une consommation energetique importante.

Lamport, L. (1998). "The Part-Time Parliament." ACM Transactions on Computer Systems, 16(2):133-169. Cet article a presente l'algorithme Paxos, qui atteint le consensus dans les systemes asynchrones sous des defaillances par arret, influencant les conceptions de protocoles de consensus ulterieures.

Fischer, M. J., Lynch, N. A., et Paterson, M. S. (1985). "Impossibility of Distributed Consensus with One Faulty Process." Journal of the ACM, 32(2):374-382. Le resultat d'impossibilite FLP a etabli des limites fondamentales sur ce que les algorithmes de consensus peuvent realiser dans les systemes asynchrones, faconnant l'espace de conception des protocoles de consensus pratiques.

References

Lamport, L., Shostak, R., and Pease, M. (1982). "The Byzantine Generals Problem." ACM Transactions on Programming Languages and Systems, 4(3):382-401. صاغت هذه الورقة الرائدة مشكلة الوصول إلى الإجماع في الأنظمة الموزعة ذات المكونات المعيبة وأسست الأساس النظري للأنظمة المتسامحة مع الأعطال البيزنطية.

Castro, M., and Liskov, B. (1999). "Practical Byzantine Fault Tolerance." Proceedings of the Third Symposium on Operating Systems Design and Implementation (OSDI). قدم هذا العمل PBFT، موضحاً أن التسامح مع الأعطال البيزنطية يمكن تحقيقه بأداء عملي، وإن كان بتعقيد اتصال 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 حدوداً أساسية لما يمكن أن تحققه خوارزميات الإجماع في الأنظمة غير المتزامنة، مشكّلةً فضاء التصميم لبروتوكولات الإجماع العملية.