El Algoritmo de Consenso del Protocolo Ripple

Tác giả David Schwartz, Noah Youngs and Arthur Britto · 2014

Abstract

Mặc dù đã có nhiều thuật toán đồng thuận cho Bài toán các tướng Byzantine, đặc biệt trong bối cảnh hệ thống thanh toán phân tán, nhiều thuật toán vẫn gặp độ trễ cao do yêu cầu tất cả các nút trong mạng phải giao tiếp đồng bộ. Trong công trình này, chúng tôi trình bày một thuật toán đồng thuận mới vượt qua yêu cầu đó bằng cách tận dụng các mạng con được tin cậy tập thể bên trong mạng lớn hơn. Chúng tôi chỉ ra rằng "niềm tin" cần thiết để ngăn chặn tấn công Sybil thực chất không phải là toàn cục, mà là cục bộ theo từng nút trong mạng.

Thuật toán đồng thuận giao thức Ripple (RPCA) được áp dụng vài giây một lần bởi tất cả các nút để duy trì tính đúng đắn và sự nhất quán của mạng. Khi đạt đồng thuận, sổ cái hiện tại được coi là "đã đóng" và trở thành sổ cái đóng gần nhất. Thuật toán này khác biệt ở chỗ đạt đồng thuận với độ trễ thấp trong khi vẫn duy trì các bảo đảm mạnh trước lỗi Byzantine, phù hợp cho các hệ thống thanh toán tài chính thời gian thực.

Abstract

Si bien existen varios algoritmos de consenso para el Byzantine Generals Problem, específicamente en lo que respecta a los sistemas de pago distribuidos, muchos sufren de alta latencia inducida por el requisito de que todos los nodos dentro de la red se comuniquen de manera sincrónica. En este trabajo, presentamos un algoritmo de consenso novedoso que elude este requisito mediante la utilización de subredes de confianza colectiva dentro de la red más amplia. Demostramos que la "confianza" requerida para prevenir ataques Sybil no es, de hecho, global, sino local a cada nodo en la red.

El algoritmo de consenso del protocolo Ripple (RPCA) es aplicado cada pocos segundos por todos los nodos, con el fin de mantener la corrección y el acuerdo de la red. Una vez que se alcanza el consenso, el libro mayor actual se considera "cerrado" y se convierte en el último libro mayor cerrado (last-closed ledger). Este algoritmo es único en el sentido de que logra consenso con baja latencia mientras mantiene fuertes garantías contra fallos Byzantine, haciéndolo adecuado para sistemas de liquidación financiera en tiempo real.

Introduction

Một hệ thống thanh toán phân tán phải triển khai thuật toán đồng thuận để xử lý thanh toán chính xác và kịp thời ngay cả khi có tác nhân lỗi hoặc độc hại. Bitcoin đạt đồng thuận bằng proof-of-work, yêu cầu tất cả các nút tiêu tốn tài nguyên tính toán để giải các bài toán mật mã. Dù cách tiếp cận này cung cấp bảo đảm bảo mật mạnh, nó có các hạn chế đáng kể như tiêu thụ năng lượng cao, thông lượng giao dịch thấp và độ trễ xác nhận dài, có thể kéo dài đến một giờ hoặc hơn với giao dịch giá trị cao.

Thuật toán đồng thuận giao thức Ripple đưa ra một cách tiếp cận mới cho đồng thuận phân tán mà không cần proof-of-work. Thay vào đó, các nút trong mạng cùng thống nhất trên các tập giao dịch thông qua cơ chế bỏ phiếu đạt đồng thuận chỉ trong vài giây. Cơ chế này được thiết kế riêng cho yêu cầu của một mạng thanh toán toàn cầu, nơi độ trễ thấp và thông lượng cao là điều kiện bắt buộc để triển khai thực tế.

Đổi mới cốt lõi của RPCA là không yêu cầu mọi nút trong mạng phải đồng ý trực tiếp với nhau. Thay vào đó, mỗi nút duy trì một Unique Node List (UNL) gồm các nút khác mà nó tin rằng sẽ không thông đồng. Miễn là các UNL do các nút chọn có độ chồng lấn đủ lớn và số nút lỗi thấp hơn một ngưỡng nhất định, mạng sẽ đạt đồng thuận. Cách làm này giữ được các bảo đảm bảo mật cần thiết cho hệ thống thanh toán đồng thời rút ngắn độ trễ đồng thuận xuống mức giây thay vì phút hoặc giờ.

Introduction

Un sistema de pago distribuido debe implementar un algoritmo de consenso para procesar pagos correctamente y de manera oportuna, incluso en presencia de actores defectuosos o maliciosos. Bitcoin logra consenso mediante prueba de trabajo (proof-of-work), que requiere que todos los nodos gasten recursos computacionales resolviendo rompecabezas criptográficos. Si bien este enfoque proporciona fuertes garantías de seguridad, sufre de inconvenientes significativos, incluyendo alto consumo de energía, bajo rendimiento de transacciones y largas latencias de confirmación que pueden extenderse a una hora o más para transacciones de alto valor.

El algoritmo de consenso del protocolo Ripple proporciona un nuevo enfoque para el consenso distribuido que no requiere prueba de trabajo. En su lugar, los nodos en la red acuerdan colectivamente sobre conjuntos de transacciones a través de un proceso de votación que alcanza consenso en cuestión de segundos. Este mecanismo de consenso está diseñado específicamente para los requisitos de una red de pagos global, donde la baja latencia y el alto rendimiento son esenciales para el despliegue práctico.

La innovación clave en RPCA es que no requiere que todos los nodos en la red estén de acuerdo entre sí. En su lugar, cada nodo mantiene una Lista de Nodos Únicos (Unique Node List, UNL) de otros nodos en los que confía para no confabularse. Siempre que las UNL elegidas por los nodos tengan suficiente superposición y menos de un porcentaje umbral de nodos sean defectuosos, la red alcanzará consenso. Este enfoque proporciona las garantías de seguridad necesarias para un sistema de pago mientras logra una latencia de consenso medida en segundos en lugar de minutos u horas.

Definition of Consensus

Trong hệ thống phân tán, đồng thuận là quá trình một mạng các nút đi đến thống nhất về một trạng thái chung, bất chấp sự hiện diện của các thành phần lỗi hoặc độc hại. Một thuật toán đồng thuận phải thỏa mãn ba thuộc tính nền tảng: tính đúng đắn (không có hai nút đúng đưa ra quyết định khác nhau), sự nhất trí (mọi nút đúng đều đi đến cùng một quyết định), và tính kết thúc (mọi nút đúng cuối cùng đều đưa ra quyết định). Các thuộc tính này bảo đảm hệ thống phân tán hành xử như thể nó là một nút duy nhất và đáng tin cậy.

Khó khăn của đồng thuận đến từ tính không đáng tin cậy vốn có của hệ thống phân tán. Nút có thể gặp sự cố, thông điệp có thể bị trễ hoặc thất lạc, và nút Byzantine có thể hành xử tùy ý hoặc độc hại. Bài toán các tướng Byzantine, được Lamport, Shostak và Pease hình thức hóa, mô tả đúng thách thức này: làm thế nào một nhóm tiến trình đạt được thống nhất khi một phần có thể bị lỗi và truyền thông không đáng tin cậy?

Các kết quả cổ điển trong tính toán phân tán đặt ra giới hạn nền tảng cho những gì thuật toán đồng thuận có thể đạt được. Kết quả bất khả thi FLP cho thấy không thuật toán tất định nào có thể bảo đảm đồng thuận trong hệ bất đồng bộ nếu chỉ một nút cũng có thể lỗi. Vì vậy, các thuật toán đồng thuận thực tế phải đánh đổi giữa an toàn (không bao giờ đạt đồng thuận sai) và tính sống (luôn tiếp tục tiến triển). Proof-of-work của Bitcoin ưu tiên an toàn hơn tính sống, trong khi RPCA đạt cân bằng phù hợp hơn cho hệ thống thanh toán bằng cách hoàn tất các vòng đồng thuận trong thời gian hữu hạn mà vẫn duy trì bảo đảm an toàn mạnh dưới các giả định lỗi thực tế.

Definition of Consensus

En sistemas distribuidos, el consenso se refiere al proceso mediante el cual una red de nodos llega a un acuerdo sobre un estado compartido, a pesar de la presencia de participantes defectuosos o maliciosos. Un algoritmo de consenso debe satisfacer tres propiedades fundamentales: corrección (ningún par de nodos correctos decide de manera diferente), acuerdo (todos los nodos correctos alcanzan la misma decisión) y terminación (todos los nodos correctos eventualmente deciden). Estas propiedades aseguran que el sistema distribuido se comporte como si fuera un nodo único y confiable.

El desafío en lograr el consenso proviene de la inherente falta de fiabilidad de los sistemas distribuidos. Los nodos pueden fallar, los mensajes pueden retrasarse o perderse, y los nodos Byzantine pueden comportarse de manera arbitraria o maliciosa. El Byzantine Generals Problem, formalizado por Lamport, Shostak y Pease, captura este desafío: ¿cómo puede un grupo de procesos llegar a un acuerdo cuando alguna fracción puede ser defectuosa y cuando la comunicación no es confiable?

Los resultados clásicos en computación distribuida establecen límites fundamentales sobre lo que los algoritmos de consenso pueden lograr. El resultado de imposibilidad FLP muestra que ningún algoritmo determinista puede garantizar el consenso en un sistema asíncrono si incluso un solo nodo puede fallar. Los algoritmos de consenso prácticos deben, por lo tanto, hacer compensaciones entre seguridad (nunca alcanzar un consenso incorrecto) y vivacidad (siempre progresar). La prueba de trabajo de Bitcoin prioriza la seguridad sobre la vivacidad, mientras que RPCA logra un equilibrio más adecuado para sistemas de pago al completar rondas de consenso en tiempo limitado mientras mantiene fuertes garantías de seguridad bajo supuestos de fallo realistas.

Existing Consensus Algorithms

Nhiều thuật toán đồng thuận đã được đề xuất để giải Bài toán các tướng Byzantine trong hệ thống phân tán. Thuật toán Practical Byzantine Fault Tolerance (PBFT), do Castro và Liskov giới thiệu, có thể chịu tối đa f lỗi Byzantine trong hệ gồm 3f+1 nút. PBFT đạt đồng thuận qua nhiều vòng trao đổi thông điệp giữa tất cả các nút, với độ phức tạp truyền thông O(n^2), trong đó n là số nút. Dù PBFT có bảo đảm an toàn mạnh và độ trễ tương đối thấp với mạng nhỏ, nó không mở rộng tốt lên mạng lớn do chi phí truyền thông bậc hai.

Paxos và các biến thể của nó, do Lamport phát triển, đạt đồng thuận trong hệ bất đồng bộ nhưng giả định lỗi sập (crash) thay vì lỗi Byzantine. Paxos vận hành qua các vòng mà bên đề xuất đưa ra giá trị và bên chấp nhận bỏ phiếu. Dù có thể chịu trễ thông điệp tùy ý và lỗi sập tiến trình, Paxos cần thiết kế cẩn thận để xử lý lỗi Byzantine và có thể gặp livelock trong một số tình huống.

Thuật toán đồng thuận proof-of-work của Bitcoin theo một hướng tiếp cận khác về bản chất: làm cho tấn công Byzantine trở nên không khả thi về kinh tế. Các nút cạnh tranh giải bài toán mật mã, nút thắng sẽ đề xuất khối giao dịch tiếp theo. Cách làm này mở rộng được đến quy mô mạng tùy ý và xử lý được lỗi Byzantine, nhưng có nhược điểm nghiêm trọng: tiêu thụ năng lượng rất lớn (ước tính hơn 150 triệu USD mỗi năm cho mạng Bitcoin), độ trễ xác nhận dài (thường 40-60 phút cho giao dịch giá trị cao), và thông lượng hạn chế (khoảng 7 giao dịch mỗi giây). Các hạn chế này khiến proof-of-work không phù hợp với nhiều ứng dụng thanh toán cần quyết toán nhanh và khối lượng giao dịch cao.

Existing Consensus Algorithms

Se han propuesto varios algoritmos de consenso para resolver el Byzantine Generals Problem en sistemas distribuidos. El algoritmo de Practical Byzantine Fault Tolerance (PBFT), introducido por Castro y Liskov, puede tolerar hasta f fallos Byzantine en un sistema de 3f+1 nodos. PBFT logra consenso a través de múltiples rondas de intercambio de mensajes entre todos los nodos, con una complejidad de comunicación de O(n^2), donde n es el número de nodos. Si bien PBFT proporciona fuertes garantías de seguridad y latencia relativamente baja para redes pequeñas, no escala bien a redes grandes debido a la sobrecarga de comunicación cuadrática.

Paxos y sus variantes, desarrollados por Lamport, proporcionan consenso en sistemas asíncronos pero asumen fallos por caída en lugar de fallos Byzantine. Paxos logra consenso a través de una serie de rondas en las que los proponentes sugieren valores y los aceptadores votan sobre ellos. Si bien Paxos puede tolerar retrasos arbitrarios de mensajes y caídas de procesos, requiere ingeniería cuidadosa para manejar fallos Byzantine y puede sufrir de bloqueo activo (livelock) en ciertos escenarios.

El algoritmo de consenso por prueba de trabajo de Bitcoin adopta un enfoque fundamentalmente diferente al hacer que los ataques Byzantine sean económicamente inviables. Los nodos compiten para resolver rompecabezas criptográficos, y el ganador propone el siguiente bloque de transacciones. Si bien este enfoque escala a tamaños de red arbitrarios y maneja fallos Byzantine, tiene graves inconvenientes: consumo masivo de energía (estimado en más de 150 millones de dólares por año para la red Bitcoin), largas latencias de confirmación (a menudo 40-60 minutos para transacciones de alto valor) y rendimiento limitado (aproximadamente 7 transacciones por segundo). Estas limitaciones hacen que la prueba de trabajo sea inadecuada para muchas aplicaciones de sistemas de pago que requieren liquidación rápida y altos volúmenes de transacciones.

Ripple Protocol Consensus Algorithm

Thuật toán Đồng thuận Giao thức Ripple (RPCA) bắt đầu khi mỗi máy chủ lấy tất cả các giao dịch hợp lệ mà nó đã thấy nhưng chưa được áp dụng làm giao dịch ứng viên. Các máy chủ sau đó tuân theo một giao thức nhiều vòng, lặp dần để đạt đồng thuận về tập giao dịch sẽ áp dụng cho sổ cái hiện tại. Trong mỗi vòng, máy chủ đưa ra đề xuất gồm các giao dịch mà nó cho rằng nên được đưa vào sổ cái tiếp theo.

Trong mỗi vòng đồng thuận, máy chủ truyền đề xuất của mình đến các máy chủ khác trong Unique Node List (UNL) của nó. Sau đó, máy chủ tính giao dịch nào xuất hiện trong một tỷ lệ ngưỡng của các đề xuất. Ban đầu ngưỡng này là 50%, nghĩa là giao dịch phải xuất hiện trong đề xuất từ ít nhất một nửa UNL của máy chủ thì mới được xét ở vòng sau. Khi đồng thuận tiến qua các vòng liên tiếp, ngưỡng này tăng dần (thường lên 60%, 70% và cuối cùng 80%).

Khi một giao dịch đạt ngưỡng siêu đa số 80% ủng hộ trong UNL của máy chủ, giao dịch đó sẽ được đưa vào đề xuất của máy chủ cho vòng đồng thuận cuối. Tất cả các giao dịch đạt ngưỡng này trên toàn mạng được áp dụng vào sổ cái, sau đó sổ cái được băm và ký bằng mật mã. Sổ cái mới được xác thực này trở thành sổ cái đóng gần nhất, và quy trình bắt đầu lại với tập giao dịch ứng viên tiếp theo.

Quy trình đồng thuận thường hoàn tất trong 5 giây hoặc ít hơn, với phần lớn giao dịch chỉ cần một vòng đồng thuận để đạt ngưỡng siêu đa số. Giao dịch chưa đạt đồng thuận trong một vòng sẽ tiếp tục là ứng viên cho các vòng sau. Thiết kế này bảo đảm mạng liên tục tiến triển trong khi vẫn giữ an toàn mạnh, vì không giao dịch nào có thể được áp dụng vào sổ cái nếu không có sự ủng hộ siêu đa số từ các validator đáng tin cậy.

Ripple Protocol Consensus Algorithm

El Algoritmo de Consenso del Protocolo Ripple (RPCA) comienza con cada servidor tomando todas las transacciones válidas que ha visto y que aún no se han aplicado como transacciones candidatas. Los servidores luego siguen un protocolo de múltiples rondas donde trabajan iterativamente hacia un acuerdo sobre un conjunto de transacciones para aplicar al libro mayor actual. En cada ronda, los servidores hacen propuestas que consisten en las transacciones que creen que deberían incluirse en el siguiente libro mayor.

Durante cada ronda de consenso, los servidores comunican sus propuestas a otros servidores en su Lista de Nodos Únicos (UNL). Los servidores luego calculan qué transacciones aparecen en un porcentaje umbral de propuestas. Inicialmente, este umbral se establece en 50%, lo que significa que una transacción debe aparecer en propuestas de al menos la mitad de la UNL de un servidor para ser considerada en la siguiente ronda. A medida que el consenso progresa a través de rondas sucesivas, este umbral aumenta incrementalmente (típicamente a 60%, 70% y finalmente 80%).

Cuando una transacción alcanza el umbral de supermayoría del 80% de apoyo en la UNL de un servidor, se incluye en la propuesta de ese servidor para la ronda final de consenso. Todas las transacciones que alcanzan este umbral en toda la red se aplican al libro mayor, que luego se firma y se le aplica un hash criptográfico. Este libro mayor recién validado se convierte en el último libro mayor cerrado, y el proceso comienza de nuevo con el siguiente conjunto de transacciones candidatas.

El proceso de consenso típicamente se completa en 5 segundos o menos, con la mayoría de las transacciones requiriendo solo una ronda de consenso para alcanzar el umbral de supermayoría. Las transacciones que no alcanzan consenso en una ronda permanecen como candidatas para rondas posteriores. Este diseño asegura que la red progrese continuamente mientras mantiene fuertes garantías de seguridad, ya que ninguna transacción puede aplicarse al libro mayor sin el apoyo de supermayoría de los validadores de confianza.

Formal Analysis of Convergence

Tính đúng đắn của RPCA phụ thuộc quyết định vào độ chồng lấn giữa các UNL do các nút khác nhau chọn trong mạng. Gọi UNL_i là unique node list của nút i, và UNL_i ∩ UNL_j là tập các nút xuất hiện trong cả UNL_i và UNL_j. Để mạng duy trì đồng thuận, với mọi cặp nút i và j, giao của hai UNL phải đủ lớn so với kích thước lớn hơn giữa hai UNL đó.

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

Cụ thể, giao thức bảo đảm an toàn khi |UNL_i ∩ UNL_j| / max(|UNL_i|, |UNL_j|) 1/5 cho mọi cặp i, j. Điều kiện này bảo đảm rằng ngay cả khi các nút Byzantine cố làm các phần khác nhau của mạng đạt các quyết định đồng thuận khác nhau, phần chồng lấn các nút đáng tin vẫn ngăn được phân nhánh. Nếu điều kiện này đúng và số nút Byzantine trong bất kỳ UNL nào nhỏ hơn 1/5, thì mọi nút đúng sẽ đi đến cùng một quyết định đồng thuận.

Chứng minh hình thức cho thấy rằng nếu hai nút có thể đi đến hai quyết định đồng thuận khác nhau, phải tồn tại một giao dịch T xuất hiện trong sổ cái cuối của một nút nhưng không có trong nút kia. Để điều này xảy ra, T phải đạt 80% ủng hộ trong UNL của nút thứ nhất nhưng dưới 80% trong UNL của nút thứ hai. Tuy nhiên, với yêu cầu chồng lấn và ràng buộc tỷ lệ Byzantine, kịch bản này là bất khả: nếu T đạt 80% trong UNL_i, nó phải đạt ít nhất 60% trong bất kỳ UNL_j nào thỏa điều kiện chồng lấn; và với đủ số vòng đồng thuận, mức này sẽ hội tụ về 80% hoặc bị cả hai nút loại bỏ.

Thuộc tính tính sống, tức đồng thuận cuối cùng sẽ đạt được, đến từ việc ngưỡng đưa vào tăng một cách tất định qua các vòng đồng thuận. Ngay cả khi có nút Byzantine và độ trễ mạng, giao thức vẫn bảo đảm các giao dịch được siêu đa số nút trung thực ủng hộ cuối cùng sẽ được đưa vào, còn các giao dịch không có mức ủng hộ đó sẽ bị loại. Thời gian đồng thuận hữu hạn (thường khoảng 5 giây) mang lại bảo đảm tính sống thực tế phù hợp với các ứng dụng thanh toán.

Formal Analysis of Convergence

La corrección de RPCA depende críticamente de la superposición entre las UNL elegidas por diferentes nodos en la red. Sea UNL_i la lista de nodos únicos del nodo i, y sea UNL_i ∩ UNL_j el conjunto de nodos que aparecen tanto en UNL_i como en UNL_j. Para que la red mantenga el consenso, requerimos que para cualquier par de nodos i y j, la intersección de sus UNL sea suficientemente grande en relación con el tamaño máximo de cualquiera de las UNL.

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

Específicamente, el protocolo garantiza seguridad cuando |UNL_i ∩ UNL_j| / max(|UNL_i|, |UNL_j|) 1/5 para todos los pares de nodos i y j. Esta condición asegura que incluso si los nodos Byzantine intentan causar que diferentes partes de la red alcancen diferentes decisiones de consenso, la superposición en nodos de confianza previene una bifurcación. Si esta condición se cumple y menos de 1/5 de los nodos en cualquier UNL son Byzantine, entonces todos los nodos correctos alcanzarán la misma decisión de consenso.

La prueba formal procede mostrando que si dos nodos pudieran alcanzar diferentes decisiones de consenso, debe existir alguna transacción T que aparece en el libro mayor final de un nodo pero no en el del otro. Para que esto ocurra, T debe haber alcanzado el 80% de apoyo en la UNL del primer nodo pero menos del 80% de apoyo en la UNL del segundo nodo. Sin embargo, dado el requisito de superposición y la restricción sobre nodos Byzantine, se puede demostrar que este escenario es imposible: si T alcanza el 80% de apoyo en UNL_i, debe alcanzar al menos el 60% de apoyo en cualquier UNL_j que satisfaga la condición de superposición, y con suficientes rondas de consenso, esto convergerá al 80% o será rechazado por ambos nodos.

La propiedad de vivacidad --que el consenso eventualmente se alcanzará-- se deriva de la observación de que el umbral para inclusión aumenta de manera determinista a través de las rondas de consenso. Incluso en presencia de nodos Byzantine y retrasos de red, el protocolo asegura que las transacciones apoyadas por una supermayoría de nodos honestos eventualmente serán incluidas, mientras que las transacciones que carecen de tal apoyo serán excluidas. El tiempo limitado para el consenso (típicamente 5 segundos) proporciona garantías prácticas de vivacidad adecuadas para aplicaciones de sistemas de pago.

Unique Node Lists

Unique Node List (UNL) là thành phần cốt lõi của RPCA, tạo nên điểm khác biệt với các thuật toán đồng thuận khác. Mỗi nút trong mạng Ripple duy trì một UNL gồm các nút khác mà nó tin rằng sẽ không thông đồng để gian lận mạng. Điểm then chốt là niềm tin này mang tính cục bộ, không phải toàn cục: các nút khác nhau có thể có UNL khác nhau, và không có yêu cầu phải tồn tại một tập validator thống nhất toàn mạng. Thiết kế này cho phép mạng mở rộng tự nhiên trong khi vẫn giữ tính phi tập trung.

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

UNL đóng vai trò cơ chế chống tấn công Sybil mà không cần proof-of-work. Trong hệ bỏ phiếu ngây thơ, kẻ tấn công có thể tạo nhiều danh tính giả để giành ảnh hưởng không cân xứng. Bằng cách buộc mỗi nút phải chỉ rõ nó tin nút nào, RPCA bảo đảm việc tạo thêm danh tính không mang lại lợi thế trừ khi các danh tính đó thuyết phục được các nút hiện có thêm chúng vào UNL. Nhờ đó, bài toán kháng Sybil được chuyển từ chi phí tính toán sang quan hệ uy tín và tin cậy.

Để mạng hoạt động đúng, UNL phải được chọn sao cho có độ chồng lấn đủ lớn như đã nêu trong phân tích hình thức. Trong thực tế, điều này có nghĩa là dù mỗi nhà vận hành nút có quyền tự chủ khi chọn UNL, họ vẫn cần bảo đảm danh sách của mình bao gồm các validator cũng được các phần khác của mạng tin cậy. Ripple cung cấp một UNL mặc định gồm các validator do nhiều thực thể vận hành, nhưng nhà vận hành có thể điều chỉnh danh sách này theo đánh giá tin cậy riêng.

Cơ chế UNL cũng tạo ra con đường tự nhiên hướng đến phi tập trung dần theo thời gian. Ở giai đoạn đầu của mạng, tập validator tập trung hơn có thể phù hợp để bảo đảm ổn định và độ tin cậy. Khi mạng trưởng thành và nhiều nhà vận hành đa dạng chứng minh được uy tín, UNL có thể tiến hóa để bao gồm tập validator rộng hơn, tăng khả năng chống chịu và mức độ phi tập trung mà không làm suy giảm các thuộc tính bảo mật.

Unique Node Lists

La Lista de Nodos Únicos (UNL) es un componente fundamental de RPCA que lo distingue de otros algoritmos de consenso. Cada nodo en la red Ripple mantiene una UNL que consiste en otros nodos en los que confía para no confabularse y defraudar la red. De manera crítica, esta confianza es local en lugar de global: diferentes nodos pueden tener diferentes UNL, y no hay requisito de un conjunto de validadores acordado globalmente. Este diseño permite que la red escale orgánicamente mientras mantiene la descentralización.

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

La UNL sirve como mecanismo de prevención de ataques Sybil sin requerir prueba de trabajo. En un sistema de votación ingenuo, un atacante podría crear muchos nodos seudónimos para obtener influencia desproporcionada. Al requerir que cada nodo elija explícitamente en qué otros nodos confía, RPCA asegura que la creación de identidades adicionales no proporciona ninguna ventaja a menos que esas identidades puedan convencer a los nodos existentes de agregarlas a sus UNL. Esto desplaza el problema de la resistencia Sybil del gasto computacional a las relaciones de reputación y confianza.

Para que la red funcione correctamente, las UNL deben elegirse de tal manera que tengan suficiente superposición, como se describe en el análisis formal. En la práctica, esto significa que aunque cada operador de nodo tiene autonomía para seleccionar su UNL, debe asegurar que su lista incluya validadores que también son confiados por otras partes de la red. Ripple proporciona una UNL predeterminada que consiste en validadores operados por entidades diversas, pero los operadores de nodos son libres de modificar esta lista basándose en su propia evaluación de confianza.

El mecanismo UNL también proporciona un camino natural hacia la descentralización progresiva. En las etapas tempranas de la red, un conjunto más centralizado de validadores puede ser apropiado para asegurar estabilidad y confiabilidad. A medida que la red madura y más operadores diversos demuestran su confiabilidad, las UNL pueden evolucionar para incluir un conjunto más amplio de validadores, aumentando la resiliencia y descentralización de la red sin comprometer sus propiedades de seguridad.

Simulation Code

Để kiểm chứng phân tích lý thuyết của RPCA và đánh giá hiệu năng dưới nhiều điều kiện, các mô phỏng quy mô lớn đã được thực hiện bằng phần mềm mô phỏng tùy biến. Khung mô phỏng mô hình hóa một mạng các nút, mỗi nút duy trì UNL riêng và tham gia giao thức đồng thuận. Mã nguồn triển khai đầy đủ thuật toán RPCA, bao gồm đề xuất giao dịch, các vòng bỏ phiếu với ngưỡng tăng dần và xác thực sổ cái.

Các tham số chính được thay đổi trong mô phỏng gồm kích thước mạng (từ 10 đến 1.000 nút), tỷ lệ nút Byzantine (từ 0% đến 20%), kích thước UNL (thường từ 5 đến 50 nút), và cấu hình topology mạng. Với mỗi cấu hình tham số, nhiều lần chạy mô phỏng được thực hiện với các random seed khác nhau để bảo đảm độ tin cậy thống kê của kết quả. Các mô phỏng theo dõi các chỉ số như độ trễ đồng thuận, xác suất phân nhánh, và thông lượng giao dịch.

Kết quả mô phỏng xác nhận các dự đoán lý thuyết về hội tụ và an toàn. Trong mọi cấu hình mà điều kiện chồng lấn UNL được thỏa và tỷ lệ Byzantine trong mỗi UNL dưới 20%, mạng đạt đồng thuận thành công mà không xảy ra phân nhánh. Độ trễ đồng thuận luôn thấp (thường hoàn tất trong 3-5 giây mô phỏng) bất kể kích thước mạng, cho thấy tính mở rộng của thuật toán. Ngay cả khi 15% nút Byzantine chủ động phá hoại đồng thuận, mạng vẫn giữ được tính đúng đắn miễn là điều kiện chồng lấn UNL được đáp ứng.

Các mô phỏng bổ sung cũng khảo sát các trường hợp biên và kịch bản lỗi, gồm phân vùng mạng, thay đổi đột ngột thành phần UNL, và tấn công phối hợp của các nút Byzantine. Các mô phỏng này cung cấp thêm hiểu biết về độ vững chắc của giao thức và định hình các thực hành tốt nhất được khuyến nghị cho lựa chọn UNL và vận hành mạng. Toàn bộ mã mô phỏng đã được công bố để cho phép kiểm chứng độc lập và nghiên cứu tiếp theo.

Simulation Code

Para validar el análisis teórico de RPCA y evaluar su rendimiento bajo diversas condiciones, se realizaron simulaciones extensas utilizando software de simulación personalizado. El marco de simulación modela una red de nodos, cada uno manteniendo su propia UNL y participando en el protocolo de consenso. El código implementa el algoritmo RPCA completo, incluyendo la propuesta de transacciones, rondas de votación con umbrales crecientes y validación del libro mayor.

Los parámetros clave variados en las simulaciones incluyen el tamaño de la red (desde 10 hasta 1,000 nodos), el porcentaje de nodos Byzantine (de 0% a 20%), el tamaño de la UNL (típicamente entre 5 y 50 nodos) y configuraciones de topología de red. Para cada configuración de parámetros, se realizaron múltiples ejecuciones de simulación con diferentes semillas aleatorias para asegurar la validez estadística de los resultados. Las simulaciones rastrearon métricas incluyendo latencia de consenso, probabilidad de bifurcación y rendimiento de transacciones.

Los resultados de la simulación confirman las predicciones teóricas respecto a la convergencia y seguridad. En todas las configuraciones donde se satisfizo la condición de superposición de UNL y los nodos Byzantine comprendían menos del 20% de cada UNL, la red alcanzó consenso exitosamente sin bifurcaciones. La latencia de consenso se mantuvo consistentemente baja (típicamente completándose en 3-5 segundos simulados) independientemente del tamaño de la red, demostrando la escalabilidad del algoritmo. Incluso con un 15% de nodos Byzantine intentando activamente interrumpir el consenso, la red mantuvo la corrección siempre que se cumplió el requisito de superposición de UNL.

Simulaciones adicionales exploraron casos límite y escenarios de fallo, incluyendo particiones de red, cambios repentinos en la composición de la UNL y ataques coordinados por nodos Byzantine. Estas simulaciones proporcionaron información sobre la robustez del protocolo e informaron las mejores prácticas recomendadas para la selección de UNL y la operación de la red. El código de simulación completo se ha puesto a disposición para permitir la verificación independiente e investigación adicional.

Discussion

So với đồng thuận proof-of-work của Bitcoin, RPCA mang lại nhiều lợi thế đáng kể cho các ứng dụng hệ thống thanh toán. Nổi bật nhất là độ trễ đồng thuận giảm từ 40-60 phút (thời gian thường được khuyến nghị cho giao dịch Bitcoin giá trị cao) xuống khoảng 5 giây. Cải thiện này khiến RPCA phù hợp cho điểm bán hàng và các ứng dụng đòi hỏi quyết toán gần như tức thời. Ngoài ra, RPCA yêu cầu tài nguyên tính toán tối thiểu so với proof-of-work, loại bỏ mức tiêu thụ năng lượng khổng lồ gắn với hoạt động đào Bitcoin.

Tuy nhiên, các lợi thế này đi kèm giả định tin cậy khác. Trong khi bảo mật của Bitcoin chỉ dựa trên giả định không có kẻ tấn công nào kiểm soát quá 50% năng lực tính toán toàn mạng, RPCA yêu cầu các nút chọn UNL có độ chồng lấn đủ lớn và số nút Byzantine không vượt ngưỡng trong các UNL đó. Điều này chuyển một phần trách nhiệm sang nhà vận hành nút trong việc đưa ra quyết định tin cậy thận trọng. Trong thực tế, đánh đổi này chấp nhận được trong nhiều bối cảnh thanh toán nơi các tổ chức tham gia vốn đã có quan hệ tin cậy.

Topology mạng và chiến lược chọn UNL ảnh hưởng mạnh đến đặc tính của hệ đồng thuận. Topology tập trung cao, nơi mọi nút cùng dùng chung validator trong UNL, tối đa hóa an toàn nhưng có thể làm giảm tính sống nếu các validator đó không khả dụng. Ngược lại, topology phi tập trung cao với độ chồng lấn UNL thấp có thể cải thiện tính sống nhưng làm tăng rủi ro thất bại đồng thuận nếu chồng lấn trở nên quá thưa. Việc tìm điểm cân bằng tối ưu đòi hỏi cân nhắc kỹ kịch bản triển khai cụ thể và mức chấp nhận rủi ro.

Các hướng nghiên cứu tương lai có thể gồm thuật toán chọn UNL thích nghi tự động duy trì điều kiện chồng lấn trong khi tối đa hóa phi tập trung, cơ chế để nút điều chỉnh UNL động theo hành vi validator quan sát được, và mở rộng thuật toán đồng thuận để chịu được tỷ lệ nút Byzantine cao hơn nữa. Những cải tiến này có thể tiếp tục nâng cao độ vững chắc và phạm vi ứng dụng của RPCA cho các hệ thống thanh toán phân tán quy mô lớn.

Discussion

En comparación con el consenso por prueba de trabajo de Bitcoin, RPCA ofrece varias ventajas significativas para aplicaciones de sistemas de pago. Más notablemente, la latencia de consenso se reduce de 40-60 minutos (el tiempo típicamente recomendado para transacciones Bitcoin de alto valor) a aproximadamente 5 segundos. Esta mejora hace que RPCA sea adecuado para punto de venta y otras aplicaciones donde se requiere liquidación casi instantánea. Además, RPCA requiere recursos computacionales mínimos en comparación con la prueba de trabajo, eliminando el consumo masivo de energía asociado con la minería de Bitcoin.

Sin embargo, estas ventajas vienen con diferentes supuestos de confianza. Mientras que la seguridad de Bitcoin se basa únicamente en el supuesto de que ningún atacante controla más del 50% del poder computacional de la red, RPCA requiere que los nodos elijan UNL con suficiente superposición y que los nodos Byzantine no excedan el umbral dentro de estas UNL. Esto transfiere cierta responsabilidad a los operadores de nodos para tomar decisiones de confianza prudentes. En la práctica, esta compensación es aceptable para muchos casos de uso de sistemas de pago donde las instituciones participantes tienen relaciones de confianza existentes.

La topología de red y la estrategia de selección de UNL impactan significativamente las propiedades del sistema de consenso. Una topología altamente centralizada donde todos los nodos incluyen los mismos validadores en sus UNL maximiza la seguridad pero puede reducir la vivacidad si esos validadores no están disponibles. Por el contrario, una topología altamente descentralizada con superposición mínima de UNL puede mejorar la vivacidad pero podría arriesgar fallos de consenso si la superposición se vuelve demasiado escasa. Encontrar el equilibrio óptimo requiere una consideración cuidadosa del escenario de despliegue específico y la tolerancia al riesgo.

El trabajo futuro podría explorar algoritmos adaptativos de selección de UNL que mantengan automáticamente los requisitos de superposición mientras maximizan la descentralización, mecanismos para que los nodos ajusten dinámicamente sus UNL basándose en el comportamiento observado de los validadores, y extensiones al algoritmo de consenso que puedan tolerar porcentajes aún más altos de nodos Byzantine. Estas mejoras podrían aumentar aún más la robustez y aplicabilidad de RPCA para sistemas de pago distribuidos a gran escala.

Conclusion

Thuật toán Đồng thuận Giao thức Ripple là một bước tiến quan trọng của đồng thuận phân tán cho hệ thống thanh toán. Bằng cách sử dụng các mạng con được tin cậy tập thể thay vì yêu cầu đồng thuận toàn cục giữa mọi nút, RPCA đạt đồng thuận trong vài giây mà vẫn giữ bảo đảm mạnh trước lỗi Byzantine. Phân tích hình thức cho thấy rằng khi UNL được chọn với độ chồng lấn đủ lớn và tỷ lệ nút Byzantine nằm dưới ngưỡng, mạng sẽ đạt đồng thuận đúng mà không phân nhánh.

Ý nghĩa thực tiễn của công trình này vượt ra ngoài mạng thanh toán Ripple. RPCA cho thấy đánh đổi truyền thống giữa độ trễ đồng thuận và bảo đảm bảo mật có thể được vượt qua bằng thiết kế giao thức cẩn thận và việc khai thác quan hệ tin cậy cục bộ. Cách tiếp cận này có thể áp dụng cho các hệ phân tán khác nơi độ trễ thấp là yếu tố then chốt và các bên tham gia có quan hệ tin cậy sẵn có, như thanh toán liên ngân hàng, theo dõi chuỗi cung ứng, và các hạ tầng tài chính khác.

Việc triển khai RPCA trong môi trường sản xuất đã xác nhận đặc tính hiệu năng và độ vững chắc của thuật toán. Mạng Ripple xử lý hàng nghìn giao dịch mỗi giây với độ trễ đồng thuận ổn định 3-5 giây, chứng minh rằng các thuộc tính lý thuyết có thể chuyển hóa hiệu quả thành vận hành thực tế. Khi mạng tiếp tục phát triển và bổ sung thêm validator từ các nhà vận hành đa dạng, nó trở thành ví dụ thực tiễn về cách một hệ đồng thuận phi tập trung có thể duy trì đồng thời bảo mật và hiệu năng ở quy mô lớn.

Conclusion

El Algoritmo de Consenso del Protocolo Ripple representa un avance significativo en el consenso distribuido para sistemas de pago. Al utilizar subredes de confianza colectiva en lugar de requerir acuerdo global entre todos los nodos, RPCA alcanza consenso en cuestión de segundos mientras mantiene fuertes garantías contra fallos Byzantine. El análisis formal demuestra que siempre que las UNL se elijan con suficiente superposición y los nodos Byzantine permanezcan por debajo del umbral, la red alcanzará consenso correcto sin bifurcaciones.

Las implicaciones prácticas de este trabajo se extienden más allá de la red de pagos Ripple. RPCA demuestra que la compensación tradicional entre latencia de consenso y garantías de seguridad puede superarse a través del diseño cuidadoso del protocolo y el uso de relaciones de confianza locales. Este enfoque puede resultar aplicable a otros sistemas distribuidos donde la baja latencia es crítica y los participantes tienen relaciones de confianza existentes, como sistemas de liquidación interbancaria, seguimiento de cadena de suministro y otras aplicaciones de infraestructura financiera.

El despliegue de RPCA en sistemas de producción ha validado las características de rendimiento y robustez del algoritmo. La red Ripple procesa miles de transacciones por segundo con una latencia de consenso consistente de 3-5 segundos, demostrando que las propiedades teóricas se traducen efectivamente a la operación en el mundo real. A medida que la red continúa evolucionando e incorporando validadores adicionales de operadores diversos, proporciona un ejemplo práctico de cómo un sistema de consenso descentralizado puede mantener tanto la seguridad como el rendimiento a escala.

References

Lamport, L., Shostak, R., và Pease, M. (1982). "The Byzantine Generals Problem." ACM Transactions on Programming Languages and Systems, 4(3):382-401. Công trình nền tảng này đã hình thức hóa bài toán đạt đồng thuận trong hệ phân tán có thành phần lỗi và đặt nền móng lý thuyết cho các hệ chịu lỗi Byzantine.

Castro, M., và Liskov, B. (1999). "Practical Byzantine Fault Tolerance." Proceedings of the Third Symposium on Operating Systems Design and Implementation (OSDI). Công trình này giới thiệu PBFT, cho thấy chịu lỗi Byzantine có thể đạt được với hiệu năng thực tiễn, dù độ phức tạp truyền thông O(n^2) giới hạn khả năng mở rộng.

Nakamoto, S. (2008). "Bitcoin: A Peer-to-Peer Electronic Cash System." Whitepaper này giới thiệu đồng thuận proof-of-work như lời giải cho bài toán chi tiêu kép trong tiền tệ số, cho phép đồng thuận phi tập trung không cần bên tin cậy nhưng đánh đổi bằng độ trễ cao và tiêu thụ năng lượng lớn.

Lamport, L. (1998). "The Part-Time Parliament." ACM Transactions on Computer Systems, 16(2):133-169. Bài báo này trình bày thuật toán Paxos, đạt đồng thuận trong hệ bất đồng bộ dưới lỗi sập và có ảnh hưởng lớn đến thiết kế các giao thức đồng thuận về sau.

Fischer, M. J., Lynch, N. A., và Paterson, M. S. (1985). "Impossibility of Distributed Consensus with One Faulty Process." Journal of the ACM, 32(2):374-382. Kết quả bất khả thi FLP thiết lập giới hạn cơ bản về những gì thuật toán đồng thuận có thể đạt trong hệ bất đồng bộ, qua đó định hình không gian thiết kế cho các giao thức đồng thuận thực tế.

References

Lamport, L., Shostak, R., and Pease, M. (1982). "The Byzantine Generals Problem." ACM Transactions on Programming Languages and Systems, 4(3):382-401. Este artículo seminal formalizó el problema de alcanzar consenso en sistemas distribuidos con componentes defectuosos y estableció la base teórica para los sistemas 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). Este trabajo introdujo PBFT, demostrando que la Byzantine fault tolerance podía lograrse con rendimiento práctico, aunque con una complejidad de comunicación de O(n^2) que limitaba la escalabilidad.

Nakamoto, S. (2008). "Bitcoin: A Peer-to-Peer Electronic Cash System." Este libro blanco introdujo el consenso por prueba de trabajo como solución al problema del doble gasto en moneda digital, permitiendo el consenso descentralizado sin partes de confianza a costa de alta latencia y consumo de energía.

Lamport, L. (1998). "The Part-Time Parliament." ACM Transactions on Computer Systems, 16(2):133-169. Este artículo presentó el algoritmo Paxos, que logra consenso en sistemas asíncronos bajo fallos por caída, influyendo en los diseños posteriores de protocolos de consenso.

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. El resultado de imposibilidad FLP estableció límites fundamentales sobre lo que los algoritmos de consenso pueden lograr en sistemas asíncronos, moldeando el espacio de diseño para protocolos de consenso prácticos.