$XRP 2014 · 35 min

El Algoritmo de Consenso del Protocolo Ripple

The Ripple Protocol Consensus Algorithm

Por David Schwartz, Noah Youngs and Arthur Britto

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

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

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

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

El Consenso del Protocolo Ripple">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

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

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

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

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

El Consenso del Protocolo Ripple">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., 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.

Preguntas frecuentes

¿Qué es el whitepaper del XRP Ledger?
El whitepaper del XRP Ledger describe el Algoritmo de Consenso del Protocolo Ripple (RPCA), un mecanismo de consenso con tolerancia a fallos bizantinos que permite pagos transfronterizos rápidos y de bajo costo sin minería.
¿Cómo funciona el consenso de XRP?
XRP utiliza un modelo de consenso federado donde nodos validadores de confianza (la Lista de Nodos Únicos) votan sobre la validez de las transacciones. El consenso se alcanza en 3-5 segundos sin minería de prueba de trabajo.
¿Quién escribió el whitepaper del XRP Ledger y cuándo?
El whitepaper de consenso del XRP Ledger fue redactado por David Schwartz, Noah Youngs y Arthur Britto. Se publicó en 2014, aunque el XRP Ledger en sí se lanzó en 2012.
¿Cuál es la innovación técnica central de XRP?
La innovación central de XRP es el Algoritmo de Consenso del Protocolo Ripple (RPCA), que logra el consenso mediante rondas de votación iterativas entre validadores de confianza en lugar de minería. Esto permite la liquidación en 3-5 segundos con un consumo energético mínimo.
¿En qué se diferencia XRP de Bitcoin?
XRP no utiliza minería: logra el consenso mediante un modelo federado de validadores de confianza, liquidando transacciones en 3-5 segundos frente a los ~10 minutos de Bitcoin. XRP fue pre-minado con un suministro fijo de 100 mil millones de tokens.
¿Cuál es el modelo de suministro de XRP?
XRP tiene un suministro fijo de 100 mil millones de tokens, todos creados en el génesis. Ripple Labs posee una parte significativa en custodia, liberando hasta 1.000 millones de XRP mensualmente. Las pequeñas comisiones de transacción se queman, haciendo que XRP sea ligeramente deflacionario.
¿Cuáles son los principales casos de uso de XRP?
XRP está diseñado principalmente para pagos transfronterizos y remesas. Las instituciones financieras utilizan RippleNet para liquidación bruta en tiempo real, intercambio de divisas y gestión de liquidez en corredores internacionales.
¿Qué problema resuelve XRP?
XRP resuelve la ineficiencia de las transferencias internacionales de dinero, que tradicionalmente tardan 3-5 días hábiles a través de la banca corresponsal (SWIFT). El XRP Ledger permite la liquidación casi instantánea a una fracción del costo.
¿Cómo funciona el modelo de seguridad de XRP?
La seguridad de XRP depende de la Lista de Nodos Únicos (UNL): un conjunto de validadores de confianza que cada operador de nodo configura. Mientras menos del 20% de los validadores en cualquier UNL sean defectuosos, la red mantiene seguridad y disponibilidad.
¿Cuál es el estado actual del ecosistema de XRP?
El ecosistema de XRP incluye RippleNet para pagos institucionales, un ecosistema DeFi en expansión con un AMM (Creador de Mercado Automatizado) añadido de forma nativa, soporte para NFT mediante XLS-20, cadenas laterales y una creciente adopción institucional tras la conclusión del litigio de Ripple con la SEC.