El Algoritmo de Consenso del Protocolo Ripple

โดย David Schwartz, Noah Youngs and Arthur Britto · 2014

โหมดเดี่ยว PDF ripple.com

Abstract

แม้ว่าจะมีอัลกอริทึมฉันทามติหลายแบบสำหรับปัญหานายพลไบแซนไทน์ โดยเฉพาะในบริบทของระบบการชำระเงินแบบกระจาย แต่หลายแนวทางยังมีความหน่วงสูงจากข้อกำหนดที่ว่าโหนดทั้งหมดในเครือข่ายต้องสื่อสารกันแบบซิงโครนัส งานนี้นำเสนออัลกอริทึมฉันทามติแบบใหม่ที่หลีกเลี่ยงข้อกำหนดดังกล่าว โดยอาศัยเครือข่ายย่อยที่ได้รับความไว้วางใจร่วมกันภายในเครือข่ายขนาดใหญ่กว่า เราแสดงให้เห็นว่า "ความไว้วางใจ" ที่จำเป็นต่อการป้องกันการโจมตี Sybil ไม่ได้เป็นแบบทั่วโลก แต่เป็นแบบเฉพาะที่ในระดับแต่ละโหนด

Ripple Protocol Consensus Algorithm (RPCA) ถูกนำมาใช้ทุก ๆ ไม่กี่วินาทีโดยทุกโหนด เพื่อรักษาความถูกต้องและความสอดคล้องของเครือข่าย เมื่อได้ฉันทามติแล้ว ledger ปัจจุบันจะถือว่า "ปิด" และกลายเป็น last-closed ledger อัลกอริทึมนี้โดดเด่นตรงที่ให้ฉันทามติได้ด้วยความหน่วงต่ำ ขณะยังคงการรับประกันที่แข็งแรงต่อความล้มเหลวแบบ Byzantine จึงเหมาะกับระบบชำระบัญชีทางการเงินแบบเรียลไทม์

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

ระบบการชำระเงินแบบกระจายจำเป็นต้องมีอัลกอริทึมฉันทามติเพื่อประมวลผลการชำระเงินให้ถูกต้องและทันเวลา แม้ในสภาพที่มีผู้มีส่วนร่วมที่ผิดพลาดหรือประสงค์ร้าย Bitcoin บรรลุฉันทามติด้วย proof-of-work ซึ่งกำหนดให้ทุกโหนดใช้ทรัพยากรคอมพิวเตอร์ในการแก้ปริศนาการเข้ารหัส แม้วิธีนี้จะให้การรับประกันความปลอดภัยที่แข็งแรง แต่ก็มีข้อเสียสำคัญ ได้แก่ การใช้พลังงานสูง ปริมาณธุรกรรมต่อเวลาต่ำ และความหน่วงในการยืนยันที่ยาวนาน ซึ่งอาจนานถึงหนึ่งชั่วโมงหรือมากกว่านั้นสำหรับธุรกรรมมูลค่าสูง

Ripple Protocol Consensus Algorithm เสนอแนวทางใหม่ของฉันทามติแบบกระจายที่ไม่ต้องอาศัย proof-of-work แทนที่จะทำเช่นนั้น โหนดในเครือข่ายจะร่วมกันตกลงบนชุดธุรกรรมผ่านกระบวนการโหวตที่ได้ฉันทามติภายในไม่กี่วินาที กลไกนี้ออกแบบมาโดยเฉพาะสำหรับข้อกำหนดของเครือข่ายการชำระเงินระดับโลก ซึ่งความหน่วงต่ำและปริมาณงานสูงเป็นเงื่อนไขสำคัญต่อการใช้งานจริง

นวัตกรรมหลักของ RPCA คือไม่ต้องให้ทุกโหนดในเครือข่ายเห็นพ้องกันทั้งหมด แต่ให้แต่ละโหนดเก็บ Unique Node List (UNL) ของโหนดอื่นที่ตนเชื่อว่าจะไม่สมรู้ร่วมคิด ตราบใดที่ UNL ของโหนดต่าง ๆ มีการทับซ้อนเพียงพอ และจำนวนโหนดที่ผิดพลาดต่ำกว่าเกณฑ์ที่กำหนด เครือข่ายจะบรรลุฉันทามติได้ แนวทางนี้ให้การรับประกันความปลอดภัยที่ระบบการชำระเงินต้องการ พร้อมกับความหน่วงฉันทามติระดับวินาทีแทนนาทีหรือชั่วโมง

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

ในระบบแบบกระจาย ฉันทามติคือกระบวนการที่เครือข่ายของโหนดตกลงร่วมกันบนสถานะเดียวกัน แม้จะมีผู้เข้าร่วมที่ผิดพลาดหรือประสงค์ร้าย อัลกอริทึมฉันทามติต้องมีคุณสมบัติพื้นฐานสามประการ ได้แก่ correctness (โหนดที่ถูกต้องสองโหนดต้องไม่ตัดสินใจต่างกัน), agreement (โหนดที่ถูกต้องทั้งหมดต้องตัดสินใจเหมือนกัน), และ termination (โหนดที่ถูกต้องทั้งหมดต้องตัดสินใจได้ในที่สุด) คุณสมบัติเหล่านี้ทำให้ระบบกระจายทำงานเสมือนเป็นโหนดเดียวที่เชื่อถือได้

ความท้าทายของการบรรลุฉันทามติมาจากความไม่น่าเชื่อถือโดยธรรมชาติของระบบกระจาย โหนดอาจล่ม ข้อความอาจล่าช้าหรือสูญหาย และโหนด Byzantine อาจมีพฤติกรรมตามอำเภอใจหรือเป็นอันตราย ปัญหานายพลไบแซนไทน์ที่ Lamport, Shostak และ Pease นิยามไว้อย่างเป็นทางการ สะท้อนความท้าทายนี้โดยตรง: กลุ่มโปรเซสจะตกลงร่วมกันได้อย่างไรเมื่อบางส่วนอาจผิดพลาดและการสื่อสารไม่น่าเชื่อถือ

ผลลัพธ์คลาสสิกในงานคำนวณแบบกระจายชี้ให้เห็นขอบเขตพื้นฐานของสิ่งที่อัลกอริทึมฉันทามติทำได้ ผลลัพธ์ความเป็นไปไม่ได้ของ FLP แสดงว่าไม่มีอัลกอริทึมเชิงกำหนดใดรับประกันฉันทามติได้ในระบบอะซิงโครนัส หากแม้แต่โหนดเดียวมีโอกาสล้มเหลว ดังนั้นอัลกอริทึมฉันทามติภาคปฏิบัติจึงต้องแลกเปลี่ยนระหว่าง safety (ไม่บรรลุฉันทามติที่ผิด) และ liveness (ระบบยังคงเดินหน้าได้เสมอ) proof-of-work ของ Bitcoin ให้ความสำคัญกับ safety มากกว่า liveness ขณะที่ RPCA สร้างสมดุลที่เหมาะกับระบบชำระเงินมากกว่า โดยปิดรอบฉันทามติได้ภายในเวลาจำกัดและยังคงการรับประกัน safety ที่แข็งแรงภายใต้สมมติฐานความผิดพลาดที่สมจริง

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

มีการเสนออัลกอริทึมฉันทามติหลายแบบเพื่อแก้ปัญหานายพลไบแซนไทน์ในระบบแบบกระจาย อัลกอริทึม Practical Byzantine Fault Tolerance (PBFT) ที่ Castro และ Liskov นำเสนอ สามารถทนต่อความผิดพลาดแบบ Byzantine ได้สูงสุด f ตัว ในระบบที่มี 3f+1 โหนด PBFT บรรลุฉันทามติผ่านหลายรอบของการแลกเปลี่ยนข้อความระหว่างทุกโหนด โดยมีความซับซ้อนด้านการสื่อสาร O(n^2) เมื่อ n คือจำนวนโหนด แม้ PBFT จะให้ safety ที่แข็งแรงและความหน่วงค่อนข้างต่ำในเครือข่ายขนาดเล็ก แต่ไม่ขยายตัวได้ดีในเครือข่ายขนาดใหญ่เนื่องจากภาระการสื่อสารแบบกำลังสอง

Paxos และอนุพันธ์ซึ่งพัฒนาโดย Lamport ให้ฉันทามติในระบบอะซิงโครนัส แต่ตั้งสมมติฐานความผิดพลาดแบบ crash แทน Byzantine Paxos ทำงานผ่านชุดรอบที่ proposer เสนอค่าและ acceptor โหวต แม้ Paxos จะทนต่อความล่าช้าของข้อความแบบไม่จำกัดและการล่มของโปรเซสได้ แต่การรับมือความผิดพลาดแบบ Byzantine ต้องใช้การออกแบบวิศวกรรมอย่างระมัดระวัง และในบางสถานการณ์อาจเกิด livelock

ฉันทามติแบบ proof-of-work ของ Bitcoin ใช้แนวทางที่ต่างออกไปโดยสิ้นเชิง คือทำให้การโจมตี Byzantine ไม่คุ้มค่าทางเศรษฐศาสตร์ โหนดแข่งขันกันแก้ปริศนาการเข้ารหัส โดยผู้ชนะจะเสนอ block ธุรกรรมถัดไป แม้แนวทางนี้จะสเกลได้กับขนาดเครือข่ายตามต้องการและรองรับความผิดพลาดแบบ Byzantine แต่มีข้อเสียรุนแรง ได้แก่ การใช้พลังงานมหาศาล (มีการประเมินว่าเกิน 150 ล้านดอลลาร์ต่อปีสำหรับเครือข่าย Bitcoin), ความหน่วงในการยืนยันยาวนาน (มัก 40-60 นาทีสำหรับธุรกรรมมูลค่าสูง), และ throughput ที่จำกัด (ประมาณ 7 ธุรกรรมต่อวินาที) ข้อจำกัดเหล่านี้ทำให้ proof-of-work ไม่เหมาะกับหลายกรณีใช้งานระบบชำระเงินที่ต้องการการชำระบัญชีรวดเร็วและปริมาณธุรกรรมสูง

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

Ripple Protocol Consensus Algorithm (RPCA) เริ่มต้นจากการที่เซิร์ฟเวอร์แต่ละตัวรวบรวมธุรกรรมที่ถูกต้องทั้งหมดที่ตนพบและยังไม่ถูกนำไปใช้ ให้เป็นธุรกรรมผู้สมัคร จากนั้นเซิร์ฟเวอร์จะทำตามโปรโตคอลหลายรอบ โดยทำงานแบบวนซ้ำเพื่อให้ได้ข้อตกลงร่วมกันบนชุดธุรกรรมที่จะนำไปใช้กับ ledger ปัจจุบัน ในแต่ละรอบ เซิร์ฟเวอร์จะยื่นข้อเสนอที่ประกอบด้วยธุรกรรมที่ตนเชื่อว่าควรถูกบรรจุใน ledger ถัดไป

ระหว่างแต่ละรอบของฉันทามติ เซิร์ฟเวอร์จะสื่อสารข้อเสนอของตนไปยังเซิร์ฟเวอร์อื่นใน Unique Node List (UNL) ของตน แล้วจึงคำนวณว่าธุรกรรมใดปรากฏในสัดส่วนถึงเกณฑ์ของข้อเสนอ ตอนเริ่มต้นเกณฑ์นี้ตั้งไว้ที่ 50% หมายความว่าธุรกรรมต้องปรากฏในข้อเสนอจากอย่างน้อยครึ่งหนึ่งของ UNL ของเซิร์ฟเวอร์ จึงจะถูกพิจารณาในรอบถัดไป เมื่อฉันทามติดำเนินผ่านหลายรอบ เกณฑ์นี้จะเพิ่มขึ้นทีละขั้น (โดยทั่วไปเป็น 60%, 70% และสุดท้าย 80%)

เมื่อธุรกรรมใดถึงเกณฑ์ supermajority ที่ 80% ของการสนับสนุนภายใน UNL ของเซิร์ฟเวอร์ ธุรกรรมนั้นจะถูกใส่ไว้ในข้อเสนอสำหรับรอบฉันทามติสุดท้ายของเซิร์ฟเวอร์ ธุรกรรมทั้งหมดที่ถึงเกณฑ์นี้ทั่วทั้งเครือข่ายจะถูกนำไปใช้กับ ledger จากนั้น ledger จะถูก hash และลงลายมือชื่อเชิงคริปโตกราฟี ledger ที่ผ่านการตรวจสอบใหม่นี้จะกลายเป็น last-closed ledger และกระบวนการจะเริ่มใหม่กับชุดธุรกรรมผู้สมัครถัดไป

กระบวนการฉันทามติโดยทั่วไปเสร็จสิ้นใน 5 วินาทีหรือน้อยกว่า โดยธุรกรรมส่วนใหญ่ต้องใช้เพียงหนึ่งรอบเพื่อถึงเกณฑ์ supermajority ธุรกรรมที่ยังไม่ถึงฉันทามติในรอบหนึ่งจะคงสถานะผู้สมัครสำหรับรอบถัดไป การออกแบบนี้ทำให้เครือข่ายเดินหน้าต่อเนื่องพร้อมรักษา safety ที่แข็งแรง เนื่องจากไม่มีธุรกรรมใดถูกนำเข้า ledger ได้หากไม่มีการสนับสนุนระดับ supermajority จาก validator ที่เชื่อถือได้

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

ความถูกต้องของ RPCA ขึ้นอยู่กับระดับการทับซ้อนของ UNL ที่โหนดต่าง ๆ ในเครือข่ายเลือกอย่างมีนัยสำคัญ กำหนดให้ UNL_i คือ unique node list ของโหนด i และ UNL_i ∩ UNL_j คือเซตของโหนดที่อยู่ทั้งใน UNL_i และ UNL_j เพื่อให้เครือข่ายคงฉันทามติได้ ต้องมีเงื่อนไขว่าคู่โหนดใด ๆ i และ j มีขนาดจุดตัดของ UNL มากพอเมื่อเทียบกับขนาดที่ใหญ่ที่สุดของ UNL ทั้งสอง

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

โดยเฉพาะ โปรโตคอลรับประกัน safety เมื่อ |UNL_i ∩ UNL_j| / max(|UNL_i|, |UNL_j|) 1/5 สำหรับทุกคู่โหนด i และ j เงื่อนไขนี้ทำให้แม้โหนด Byzantine พยายามผลักดันให้ส่วนต่าง ๆ ของเครือข่ายตัดสินใจไม่ตรงกัน การทับซ้อนของโหนดที่เชื่อถือได้ก็ยังป้องกันการแตก fork ได้ หากเงื่อนไขนี้เป็นจริงและสัดส่วนโหนด Byzantine ใน UNL ใด ๆ ต่ำกว่า 1/5 โหนดที่ถูกต้องทั้งหมดจะลงเอยด้วยการตัดสินใจฉันทามติแบบเดียวกัน

หลักฐานเชิงรูปแบบดำเนินโดยแสดงว่า หากสองโหนดสามารถไปถึงการตัดสินใจฉันทามติที่ต่างกันได้ จะต้องมีธุรกรรม T ที่อยู่ใน ledger สุดท้ายของโหนดหนึ่งแต่ไม่อยู่ในอีกโหนดหนึ่ง การเกิดเหตุเช่นนี้ต้องการให้ T ได้รับการสนับสนุน 80% ใน UNL ของโหนดแรก แต่ต่ำกว่า 80% ใน UNL ของโหนดที่สอง อย่างไรก็ตาม ภายใต้ข้อกำหนดการทับซ้อนและข้อจำกัดจำนวนโหนด Byzantine สถานการณ์นี้พิสูจน์ได้ว่าเป็นไปไม่ได้: หาก T ได้ 80% ใน UNL_i ก็ต้องได้อย่างน้อย 60% ใน UNL_j ที่เข้าเงื่อนไขการทับซ้อน และเมื่อมีรอบฉันทามติเพียงพอ ค่าดังกล่าวจะลู่เข้าไปที่ 80% หรือถูกปฏิเสธโดยทั้งสองโหนด

คุณสมบัติ liveness ซึ่งหมายถึงการได้ฉันทามติในที่สุด มาจากข้อเท็จจริงว่าเกณฑ์การรวมธุรกรรมเพิ่มขึ้นแบบเชิงกำหนดผ่านแต่ละรอบฉันทามติ แม้จะมีโหนด Byzantine และความหน่วงเครือข่าย โปรโตคอลยังคงรับประกันว่าธุรกรรมที่ได้รับการสนับสนุนระดับ supermajority จากโหนดสุจริตจะถูกบรรจุในที่สุด ส่วนธุรกรรมที่ขาดการสนับสนุนดังกล่าวจะถูกตัดออก เวลาฉันทามติที่มีขอบเขต (โดยทั่วไปประมาณ 5 วินาที) จึงให้การรับประกัน liveness เชิงปฏิบัติที่เหมาะกับงานระบบชำระเงิน

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) เป็นองค์ประกอบหลักของ RPCA ที่ทำให้แตกต่างจากอัลกอริทึมฉันทามติอื่น ๆ แต่ละโหนดในเครือข่าย Ripple จะดูแล UNL ของตนเอง ซึ่งประกอบด้วยโหนดอื่นที่ตนเชื่อว่าจะไม่สมรู้ร่วมคิดเพื่อฉ้อโกงเครือข่าย ประเด็นสำคัญคือความไว้วางใจนี้เป็นแบบเฉพาะที่ ไม่ใช่แบบทั่วโลก: โหนดต่างกันสามารถมี UNL ต่างกันได้ และไม่จำเป็นต้องมีชุด validator เดียวที่ทุกฝ่ายตกลงร่วมกันทั้งเครือข่าย การออกแบบนี้ช่วยให้เครือข่ายขยายตัวอย่างเป็นธรรมชาติพร้อมรักษาความเป็นกระจายอำนาจ

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

UNL ทำหน้าที่เป็นกลไกป้องกันการโจมตี Sybil โดยไม่ต้องพึ่ง proof-of-work ในระบบโหวตแบบง่าย ผู้โจมตีสามารถสร้างตัวตนปลอมจำนวนมากเพื่อเพิ่มอิทธิพลอย่างไม่สมส่วน แต่เมื่อ RPCA บังคับให้แต่ละโหนดต้องเลือกอย่างชัดเจนว่าจะเชื่อโหนดใด การสร้างตัวตนเพิ่มจึงไม่ให้ประโยชน์ เว้นแต่ตัวตนเหล่านั้นจะโน้มน้าวโหนดที่มีอยู่ให้เพิ่มเข้ามาใน UNL ได้ ปัญหาการต้านทาน Sybil จึงย้ายจากการใช้ทรัพยากรคำนวณไปสู่เรื่องชื่อเสียงและความสัมพันธ์เชิงความไว้วางใจ

เพื่อให้เครือข่ายทำงานได้อย่างถูกต้อง UNL ต้องถูกเลือกให้มีการทับซ้อนเพียงพอตามที่ระบุไว้ใน formal analysis ในทางปฏิบัติ แม้ผู้ดำเนินการโหนดแต่ละรายจะมีอิสระในการเลือก UNL ของตนเอง แต่ต้องทำให้แน่ใจว่ารายชื่อดังกล่าวรวม validator ที่ส่วนอื่นของเครือข่ายไว้วางใจด้วย Ripple มี UNL เริ่มต้นที่ประกอบด้วย validator จากหลายองค์กรที่หลากหลาย แต่ผู้ดำเนินการโหนดสามารถปรับเปลี่ยนรายชื่อตามการประเมินความไว้วางใจของตนเองได้

กลไก UNL ยังเปิดเส้นทางตามธรรมชาติสู่การกระจายอำนาจแบบค่อยเป็นค่อยไป ในช่วงแรกของเครือข่าย การมีชุด validator ที่รวมศูนย์กว่าอาจเหมาะสมต่อความเสถียรและความน่าเชื่อถือ เมื่อเครือข่ายเติบโตและผู้ดำเนินการที่หลากหลายพิสูจน์ความน่าเชื่อถือได้มากขึ้น UNL ก็สามารถพัฒนาให้รวม validator ที่กว้างขึ้น เพิ่มทั้งความยืดหยุ่นและความเป็นกระจายอำนาจ โดยไม่ลดทอนคุณสมบัติความปลอดภัย

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

เพื่อยืนยันการวิเคราะห์เชิงทฤษฎีของ RPCA และประเมินประสิทธิภาพภายใต้เงื่อนไขที่หลากหลาย ได้มีการจำลองอย่างครอบคลุมด้วยซอฟต์แวร์จำลองที่พัฒนาขึ้นเฉพาะทาง กรอบการจำลองจำลองเครือข่ายของโหนดซึ่งแต่ละโหนดดูแล UNL ของตนเองและเข้าร่วมในโปรโตคอลฉันทามติ โค้ดครอบคลุมการทำงาน RPCA แบบครบถ้วน ทั้งการเสนอธุรกรรม รอบโหวตที่เพิ่มเกณฑ์ตามลำดับ และการตรวจสอบ ledger

พารามิเตอร์สำคัญที่ถูกปรับในการจำลอง ได้แก่ ขนาดเครือข่าย (ตั้งแต่ 10 ถึง 1,000 โหนด), สัดส่วนโหนด Byzantine (0% ถึง 20%), ขนาด UNL (โดยทั่วไป 5 ถึง 50 โหนด), และการกำหนด topology ของเครือข่าย สำหรับแต่ละชุดพารามิเตอร์ มีการรันจำลองหลายครั้งด้วย random seed ที่ต่างกันเพื่อรับรองความน่าเชื่อถือเชิงสถิติของผลลัพธ์ การจำลองติดตามตัวชี้วัดสำคัญ เช่น ความหน่วงฉันทามติ ความน่าจะเป็นของการเกิด fork และ throughput ของธุรกรรม

ผลการจำลองยืนยันการคาดการณ์ทางทฤษฎีเกี่ยวกับการลู่เข้าและ safety ในทุกการกำหนดค่าที่เงื่อนไขการทับซ้อนของ UNL เป็นจริง และสัดส่วนโหนด Byzantine ต่ำกว่า 20% ของแต่ละ UNL เครือข่ายสามารถบรรลุฉันทามติได้โดยไม่เกิด fork ความหน่วงฉันทามติคงอยู่ในระดับต่ำอย่างสม่ำเสมอ (โดยทั่วไปเสร็จในเวลา 3-5 วินาทีจำลอง) ไม่ขึ้นกับขนาดเครือข่าย ซึ่งแสดงถึงความสามารถในการขยายตัวของอัลกอริทึม แม้มีโหนด Byzantine 15% พยายามรบกวนฉันทามติอย่างจริงจัง เครือข่ายก็ยังคง correctness ได้ ตราบใดที่เงื่อนไขการทับซ้อนของ UNL ยังถูกต้อง

การจำลองเพิ่มเติมยังครอบคลุมกรณีขอบและสถานการณ์ล้มเหลว เช่น การแบ่งพาร์ทิชันของเครือข่าย การเปลี่ยนองค์ประกอบ UNL อย่างฉับพลัน และการโจมตีแบบประสานงานโดยโหนด Byzantine ผลลัพธ์เหล่านี้ให้ข้อมูลเชิงลึกเกี่ยวกับความทนทานของโปรโตคอล และช่วยกำหนดแนวปฏิบัติที่แนะนำสำหรับการเลือก UNL และการปฏิบัติการเครือข่าย โค้ดจำลองทั้งหมดถูกเผยแพร่เพื่อรองรับการตรวจสอบอิสระและการวิจัยต่อยอด

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

เมื่อเทียบกับฉันทามติแบบ proof-of-work ของ Bitcoin แล้ว RPCA มีข้อได้เปรียบสำคัญหลายประการสำหรับงานระบบการชำระเงิน จุดเด่นที่สุดคือความหน่วงฉันทามติลดลงจาก 40-60 นาที (เวลาที่มักแนะนำสำหรับธุรกรรม Bitcoin มูลค่าสูง) เหลือประมาณ 5 วินาที การปรับปรุงนี้ทำให้ RPCA เหมาะกับงาน point-of-sale และกรณีใช้งานอื่นที่ต้องการการชำระบัญชีเกือบทันที นอกจากนี้ RPCA ใช้ทรัพยากรคำนวณต่ำมากเมื่อเทียบกับ proof-of-work จึงลดปัญหาการใช้พลังงานมหาศาลที่สัมพันธ์กับการขุด Bitcoin

อย่างไรก็ตาม ข้อได้เปรียบดังกล่าวมาพร้อมสมมติฐานความไว้วางใจที่ต่างออกไป ความปลอดภัยของ Bitcoin อาศัยเพียงสมมติฐานว่าไม่มีผู้โจมตีรายใดควบคุมกำลังคำนวณเกิน 50% ของเครือข่าย ขณะที่ RPCA ต้องการให้โหนดเลือก UNL ที่มีการทับซ้อนเพียงพอ และจำนวนโหนด Byzantine ไม่เกินเกณฑ์ภายใน UNL เหล่านั้น สิ่งนี้ย้ายความรับผิดชอบบางส่วนไปยังผู้ดำเนินการโหนดให้ตัดสินใจด้านความไว้วางใจอย่างรอบคอบ ในทางปฏิบัติ trade-off นี้ยอมรับได้สำหรับหลายกรณีใช้งานด้านการชำระเงินที่องค์กรผู้เข้าร่วมมีความสัมพันธ์ความไว้วางใจกันอยู่แล้ว

topology ของเครือข่ายและกลยุทธ์การเลือก UNL ส่งผลอย่างมีนัยสำคัญต่อคุณสมบัติของระบบฉันทามติ topology ที่รวมศูนย์สูง ซึ่งทุกโหนดใช้ validator ชุดเดียวกันใน UNL จะเพิ่ม safety ได้สูงสุด แต่สามารถลด liveness ได้หาก validator ชุดนั้นไม่พร้อมใช้งาน ในทางกลับกัน topology ที่กระจายอำนาจสูงและมีการทับซ้อน UNL ต่ำ อาจช่วย liveness แต่เสี่ยงต่อความล้มเหลวของฉันทามติหากการทับซ้อนเบาบางเกินไป การหาจุดสมดุลที่เหมาะสมจึงต้องพิจารณาร่วมกันทั้งบริบทการใช้งานจริงและระดับความเสี่ยงที่ยอมรับได้

งานในอนาคตอาจสำรวจอัลกอริทึมเลือก UNL แบบปรับตัวที่รักษาเงื่อนไขการทับซ้อนโดยอัตโนมัติพร้อมเพิ่มความเป็นกระจายอำนาจให้มากที่สุด กลไกที่ให้โหนดปรับ UNL แบบไดนามิกจากพฤติกรรม validator ที่สังเกตได้ และส่วนขยายของอัลกอริทึมฉันทามติที่ทนต่อสัดส่วนโหนด Byzantine ที่สูงขึ้นได้อีก การพัฒนาเหล่านี้จะช่วยเพิ่มทั้งความแข็งแรงและความสามารถในการประยุกต์ใช้ RPCA ในระบบการชำระเงินแบบกระจายขนาดใหญ่

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

Ripple Protocol Consensus Algorithm เป็นความก้าวหน้าสำคัญของฉันทามติแบบกระจายสำหรับระบบการชำระเงิน ด้วยการใช้เครือข่ายย่อยที่ได้รับความไว้วางใจร่วมกัน แทนการบังคับให้ทุกโหนดต้องตกลงกันแบบทั่วทั้งเครือข่าย RPCA จึงบรรลุฉันทามติได้ภายในไม่กี่วินาที พร้อมคงการรับประกันที่แข็งแรงต่อความล้มเหลวแบบ Byzantine การวิเคราะห์เชิงรูปแบบยืนยันว่า หาก UNL ถูกเลือกให้มีการทับซ้อนเพียงพอ และจำนวนโหนด Byzantine อยู่ต่ำกว่าเกณฑ์ เครือข่ายจะบรรลุฉันทามติที่ถูกต้องโดยไม่เกิด fork

นัยเชิงปฏิบัติของงานนี้ไม่ได้จำกัดอยู่แค่เครือข่ายการชำระเงินของ Ripple เท่านั้น RPCA แสดงให้เห็นว่าการแลกเปลี่ยนแบบดั้งเดิมระหว่างความหน่วงฉันทามติกับการรับประกันความปลอดภัย สามารถก้าวข้ามได้ด้วยการออกแบบโปรโตคอลอย่างรอบคอบและการใช้ความสัมพันธ์ความไว้วางใจแบบเฉพาะที่ แนวทางนี้มีศักยภาพสำหรับระบบแบบกระจายอื่นที่ต้องการความหน่วงต่ำและมีผู้เข้าร่วมที่มีความไว้วางใจต่อกันอยู่แล้ว เช่น ระบบชำระบัญชีระหว่างธนาคาร การติดตามห่วงโซ่อุปทาน และงานโครงสร้างพื้นฐานทางการเงินอื่น ๆ

การนำ RPCA ไปใช้งานจริงในระบบ production ได้ยืนยันทั้งสมรรถนะและความทนทานของอัลกอริทึม เครือข่าย Ripple ประมวลผลธุรกรรมได้หลายพันรายการต่อวินาที พร้อมความหน่วงฉันทามติที่สม่ำเสมอที่ 3-5 วินาที แสดงให้เห็นว่าคุณสมบัติเชิงทฤษฎีสามารถแปลงเป็นผลลัพธ์จริงได้อย่างมีประสิทธิภาพ เมื่อเครือข่ายพัฒนาอย่างต่อเนื่องและเพิ่ม validator จากผู้ดำเนินการที่หลากหลายมากขึ้น RPCA จึงเป็นตัวอย่างเชิงปฏิบัติของระบบฉันทามติแบบกระจายอำนาจที่รักษาได้ทั้งความปลอดภัยและประสิทธิภาพในระดับสเกลใหญ่

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., และ Pease, M. (1982). "The Byzantine Generals Problem." ACM Transactions on Programming Languages and Systems, 4(3):382-401. งานคลาสสิกนี้ได้ทำให้ปัญหาการบรรลุฉันทามติในระบบกระจายที่มีองค์ประกอบผิดพลาดเป็นรูปแบบทางการ และวางรากฐานเชิงทฤษฎีให้กับระบบที่ทนต่อความผิดพลาดแบบ Byzantine

Castro, M., และ Liskov, B. (1999). "Practical Byzantine Fault Tolerance." Proceedings of the Third Symposium on Operating Systems Design and Implementation (OSDI). งานนี้แนะนำ PBFT และแสดงให้เห็นว่าความทนทานต่อ Byzantine fault สามารถทำได้จริงในทางปฏิบัติ แม้จะมีความซับซ้อนด้านการสื่อสาร O(n^2) ที่จำกัดการขยายตัว

Nakamoto, S. (2008). "Bitcoin: A Peer-to-Peer Electronic Cash System." เอกสาร whitepaper นี้เสนอฉันทามติแบบ proof-of-work เพื่อแก้ปัญหา double-spending ในสกุลเงินดิจิทัล ทำให้เกิดฉันทามติแบบกระจายศูนย์โดยไม่ต้องพึ่งผู้มีอำนาจที่เชื่อถือได้ แต่แลกมาด้วยความหน่วงสูงและการใช้พลังงานมาก

Lamport, L. (1998). "The Part-Time Parliament." ACM Transactions on Computer Systems, 16(2):133-169. บทความนี้นำเสนออัลกอริทึม Paxos ซึ่งบรรลุฉันทามติในระบบอะซิงโครนัสภายใต้ความล้มเหลวแบบ crash และมีอิทธิพลต่อการออกแบบโปรโตคอลฉันทามติในเวลาต่อมา

Fischer, M. J., Lynch, N. A., และ Paterson, M. S. (1985). "Impossibility of Distributed Consensus with One Faulty Process." Journal of the ACM, 32(2):374-382. ผลลัพธ์ความเป็นไปไม่ได้ของ FLP ได้กำหนดขอบเขตพื้นฐานของสิ่งที่อัลกอริทึมฉันทามติทำได้ในระบบอะซิงโครนัส และกำหนดทิศทางพื้นที่ออกแบบของโปรโตคอลฉันทามติเชิงปฏิบัติ

References

Lamport, L., Shostak, R., and Pease, M. (1982). "The Byzantine Generals Problem." ACM Transactions on Programming Languages and Systems, 4(3):382-401. 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.