Algoritma Konsensus Protokol Ripple

Por David Schwartz, Noah Youngs and Arthur Britto · 2014

Abstract

Embora existam vários algoritmos de consenso para o Byzantine Generals Problem, especificamente no que diz respeito a sistemas de pagamento distribuídos, muitos sofrem de alta latência induzida pelo requisito de que todos os nós dentro da rede se comuniquem de forma síncrona. Neste trabalho, apresentamos um algoritmo de consenso inovador que contorna esse requisito ao utilizar sub-redes coletivamente confiáveis dentro da rede maior. Mostramos que a "confiança" necessária para prevenir ataques Sybil não é, de fato, global, mas sim local a cada nó na rede.

O algoritmo de consenso do protocolo Ripple (RPCA) é aplicado a cada poucos segundos por todos os nós, a fim de manter a correção e o acordo da rede. Uma vez alcançado o consenso, o livro-razão atual é considerado "fechado" e se torna o último livro-razão fechado (last-closed ledger). Este algoritmo é único no sentido de que alcança consenso com baixa latência enquanto mantém fortes garantias contra falhas Byzantine, tornando-o adequado para sistemas de liquidação financeira em tempo real.

Abstract

Meskipun sudah ada beberapa algoritma konsensus untuk Masalah Jenderal Bizantium, khususnya pada sistem pembayaran terdistribusi, banyak di antaranya mengalami latensi tinggi akibat persyaratan bahwa semua node dalam jaringan harus berkomunikasi secara sinkron. Dalam karya ini, kami memperkenalkan algoritma konsensus baru yang mengatasi persyaratan tersebut dengan memanfaatkan subjaringan yang dipercaya secara kolektif di dalam jaringan yang lebih besar. Kami menunjukkan bahwa "kepercayaan" yang diperlukan untuk mencegah serangan Sybil pada kenyataannya bukan bersifat global, melainkan lokal pada setiap node dalam jaringan.

Algoritma konsensus protokol Ripple (RPCA) diterapkan setiap beberapa detik oleh semua node untuk menjaga ketepatan dan keselarasan jaringan. Setelah konsensus tercapai, ledger saat ini dianggap "tertutup" dan menjadi ledger tertutup terakhir. Algoritma ini unik karena mampu mencapai konsensus dengan latensi rendah sambil mempertahankan jaminan kuat terhadap kegagalan Byzantine, sehingga cocok untuk sistem penyelesaian keuangan waktu nyata.

Introduction

Um sistema de pagamento distribuído deve implementar um algoritmo de consenso para processar pagamentos corretamente e de maneira oportuna, mesmo na presença de atores defeituosos ou maliciosos. O Bitcoin alcança consenso usando prova de trabalho (proof-of-work), que exige que todos os nós gastem recursos computacionais resolvendo quebra-cabeças criptográficos. Embora essa abordagem forneça fortes garantias de segurança, ela sofre de desvantagens significativas, incluindo alto consumo de energia, baixa taxa de transferência de transações e longas latências de confirmação que podem se estender a uma hora ou mais para transações de alto valor.

O algoritmo de consenso do protocolo Ripple fornece uma nova abordagem para o consenso distribuído que não requer prova de trabalho. Em vez disso, os nós na rede concordam coletivamente sobre conjuntos de transações através de um processo de votação que alcança consenso em questão de segundos. Este mecanismo de consenso é projetado especificamente para os requisitos de uma rede de pagamentos global, onde baixa latência e alta taxa de transferência são essenciais para a implantação prática.

A inovação-chave no RPCA é que ele não exige que todos os nós na rede concordem entre si. Em vez disso, cada nó mantém uma Lista de Nós Únicos (Unique Node List, UNL) de outros nós em que confia para não conspirar. Desde que as UNLs escolhidas pelos nós tenham sobreposição suficiente e menos de uma porcentagem limite de nós sejam defeituosos, a rede alcançará consenso. Esta abordagem fornece as garantias de segurança necessárias para um sistema de pagamento enquanto alcança latência de consenso medida em segundos em vez de minutos ou horas.

Introduction

Sistem pembayaran terdistribusi harus menerapkan algoritma konsensus agar pembayaran dapat diproses secara benar dan tepat waktu bahkan ketika ada pelaku yang rusak atau berniat jahat. Bitcoin mencapai konsensus menggunakan proof-of-work, yang mengharuskan semua node mengeluarkan sumber daya komputasi untuk memecahkan teka-teki kriptografis. Walaupun pendekatan ini memberikan jaminan keamanan yang kuat, pendekatan ini memiliki kelemahan signifikan, termasuk konsumsi energi tinggi, throughput transaksi rendah, serta latensi konfirmasi panjang yang dapat mencapai satu jam atau lebih untuk transaksi bernilai tinggi.

Algoritma konsensus protokol Ripple menawarkan pendekatan baru terhadap konsensus terdistribusi tanpa memerlukan proof-of-work. Sebagai gantinya, node dalam jaringan secara kolektif menyepakati himpunan transaksi melalui proses pemungutan suara yang mencapai konsensus dalam hitungan detik. Mekanisme ini dirancang khusus untuk kebutuhan jaringan pembayaran global, di mana latensi rendah dan throughput tinggi sangat penting untuk implementasi praktis.

Inovasi utama RPCA adalah tidak mengharuskan semua node dalam jaringan saling menyetujui secara langsung. Sebaliknya, setiap node memelihara Unique Node List (UNL) berisi node lain yang dipercaya tidak akan berkolusi. Selama UNL yang dipilih antar-node memiliki tumpang tindih yang memadai, dan persentase node yang rusak berada di bawah ambang tertentu, jaringan akan mencapai konsensus. Pendekatan ini menyediakan jaminan keamanan yang dibutuhkan sistem pembayaran sekaligus mencapai latensi konsensus dalam hitungan detik, bukan menit atau jam.

Definition of Consensus

Em sistemas distribuídos, consenso refere-se ao processo pelo qual uma rede de nós chega a um acordo sobre um estado compartilhado, apesar da presença de participantes defeituosos ou maliciosos. Um algoritmo de consenso deve satisfazer três propriedades fundamentais: correção (nenhum par de nós corretos decide de forma diferente), acordo (todos os nós corretos alcançam a mesma decisão) e terminação (todos os nós corretos eventualmente decidem). Essas propriedades garantem que o sistema distribuído se comporte como se fosse um nó único e confiável.

O desafio em alcançar o consenso decorre da inerente falta de confiabilidade dos sistemas distribuídos. Os nós podem falhar, as mensagens podem ser atrasadas ou perdidas, e os nós Byzantine podem se comportar de forma arbitrária ou maliciosa. O Byzantine Generals Problem, formalizado por Lamport, Shostak e Pease, captura esse desafio: como um grupo de processos pode chegar a um acordo quando alguma fração pode ser defeituosa e quando a comunicação não é confiável?

Os resultados clássicos em computação distribuída estabelecem limites fundamentais sobre o que os algoritmos de consenso podem alcançar. O resultado de impossibilidade FLP mostra que nenhum algoritmo determinístico pode garantir o consenso em um sistema assíncrono se mesmo um único nó puder falhar. Os algoritmos de consenso práticos devem, portanto, fazer compensações entre segurança (nunca alcançar um consenso incorreto) e vivacidade (sempre progredir). A prova de trabalho do Bitcoin prioriza a segurança sobre a vivacidade, enquanto o RPCA alcança um equilíbrio mais adequado para sistemas de pagamento ao completar rodadas de consenso em tempo limitado enquanto mantém fortes garantias de segurança sob suposições realistas de falha.

Definition of Consensus

Dalam sistem terdistribusi, konsensus merujuk pada proses ketika jaringan node mencapai kesepakatan atas satu keadaan bersama, meskipun ada peserta yang rusak atau berniat jahat. Algoritma konsensus harus memenuhi tiga sifat fundamental: correctness (dua node benar tidak boleh memutuskan hal yang berbeda), agreement (semua node benar mencapai keputusan yang sama), dan termination (semua node benar pada akhirnya mengambil keputusan). Sifat-sifat ini memastikan sistem terdistribusi berperilaku seolah-olah merupakan satu node tunggal yang andal.

Tantangan utama dalam mencapai konsensus berasal dari sifat tidak andal bawaan pada sistem terdistribusi. Node dapat crash, pesan dapat tertunda atau hilang, dan node Byzantine dapat bertindak sewenang-wenang atau jahat. Masalah Jenderal Bizantium, yang diformalkan oleh Lamport, Shostak, dan Pease, menangkap tantangan ini: bagaimana sekelompok proses mencapai kesepakatan ketika sebagian dapat rusak dan komunikasi tidak andal?

Hasil-hasil klasik dalam komputasi terdistribusi menetapkan batas dasar atas apa yang dapat dicapai oleh algoritma konsensus. Hasil ketidakmungkinan FLP menunjukkan bahwa tidak ada algoritma deterministik yang dapat menjamin konsensus dalam sistem asinkron jika bahkan satu node saja dapat gagal. Karena itu, algoritma konsensus praktis harus membuat trade-off antara safety (tidak pernah mencapai konsensus yang salah) dan liveness (selalu terus maju). Proof-of-work Bitcoin memprioritaskan safety dibanding liveness, sementara RPCA mencapai keseimbangan yang lebih sesuai untuk sistem pembayaran dengan menyelesaikan ronde konsensus dalam waktu terbatas sambil mempertahankan jaminan safety yang kuat di bawah asumsi kegagalan yang realistis.

Existing Consensus Algorithms

Vários algoritmos de consenso foram propostos para resolver o Byzantine Generals Problem em sistemas distribuídos. O algoritmo de Practical Byzantine Fault Tolerance (PBFT), introduzido por Castro e Liskov, pode tolerar até f falhas Byzantine em um sistema de 3f+1 nós. O PBFT alcança consenso através de múltiplas rodadas de troca de mensagens entre todos os nós, com complexidade de comunicação de O(n^2), onde n é o número de nós. Embora o PBFT forneça fortes garantias de segurança e latência relativamente baixa para redes pequenas, ele não escala bem para redes grandes devido à sobrecarga de comunicação quadrática.

O Paxos e suas variantes, desenvolvidos por Lamport, fornecem consenso em sistemas assíncronos, mas assumem falhas por crash em vez de falhas Byzantine. O Paxos alcança consenso através de uma série de rodadas nas quais proponentes sugerem valores e aceitadores votam neles. Embora o Paxos possa tolerar atrasos arbitrários de mensagens e falhas de processos, ele requer engenharia cuidadosa para lidar com falhas Byzantine e pode sofrer de livelock em certos cenários.

O algoritmo de consenso por prova de trabalho do Bitcoin adota uma abordagem fundamentalmente diferente ao tornar os ataques Byzantine economicamente inviáveis. Os nós competem para resolver quebra-cabeças criptográficos, e o vencedor propõe o próximo bloco de transações. Embora essa abordagem escale para tamanhos de rede arbitrários e lide com falhas Byzantine, ela tem graves desvantagens: consumo massivo de energia (estimado em mais de 150 milhões de dólares por ano para a rede Bitcoin), longas latências de confirmação (frequentemente 40-60 minutos para transações de alto valor) e taxa de transferência limitada (aproximadamente 7 transações por segundo). Essas limitações tornam a prova de trabalho inadequada para muitas aplicações de sistemas de pagamento que exigem liquidação rápida e altos volumes de transações.

Existing Consensus Algorithms

Sejumlah algoritma konsensus telah diusulkan untuk menyelesaikan Masalah Jenderal Bizantium dalam sistem terdistribusi. Algoritma Practical Byzantine Fault Tolerance (PBFT), yang diperkenalkan oleh Castro dan Liskov, mampu menoleransi hingga f kesalahan Byzantine dalam sistem berisi 3f+1 node. PBFT mencapai konsensus melalui beberapa ronde pertukaran pesan antar semua node, dengan kompleksitas komunikasi O(n^2), di mana n adalah jumlah node. Meskipun PBFT memberikan jaminan safety yang kuat dan latensi relatif rendah untuk jaringan kecil, PBFT tidak berskala baik pada jaringan besar karena overhead komunikasi kuadratik.

Paxos dan variannya, yang dikembangkan oleh Lamport, menyediakan konsensus dalam sistem asinkron tetapi mengasumsikan kegagalan crash, bukan kegagalan Byzantine. Paxos mencapai konsensus melalui serangkaian ronde ketika proposer mengusulkan nilai dan acceptor memberikan suara. Walaupun Paxos dapat mentoleransi penundaan pesan arbitrer dan crash proses, Paxos memerlukan rekayasa yang cermat untuk menangani kegagalan Byzantine dan dapat mengalami livelock pada skenario tertentu.

Algoritma konsensus proof-of-work Bitcoin mengambil pendekatan yang secara fundamental berbeda, yakni membuat serangan Byzantine tidak layak secara ekonomi. Node bersaing memecahkan teka-teki kriptografis, dan pemenang mengusulkan blok transaksi berikutnya. Walaupun pendekatan ini dapat diskalakan ke ukuran jaringan arbitrer dan menangani kegagalan Byzantine, pendekatan ini memiliki kekurangan serius: konsumsi energi masif (diperkirakan lebih dari 150 juta dolar AS per tahun untuk jaringan Bitcoin), latensi konfirmasi panjang (sering 40-60 menit untuk transaksi bernilai tinggi), dan throughput terbatas (sekitar 7 transaksi per detik). Keterbatasan ini membuat proof-of-work kurang cocok bagi banyak aplikasi sistem pembayaran yang memerlukan penyelesaian cepat dan volume transaksi tinggi.

Ripple Protocol Consensus Algorithm

O Algoritmo de Consenso do Protocolo Ripple (RPCA) começa com cada servidor coletando todas as transações válidas que viu e que ainda não foram aplicadas como transações candidatas. Os servidores então seguem um protocolo de múltiplas rodadas onde trabalham iterativamente em direção a um acordo sobre um conjunto de transações para aplicar ao livro-razão atual. Em cada rodada, os servidores fazem propostas consistindo nas transações que acreditam que devem ser incluídas no próximo livro-razão.

Durante cada rodada de consenso, os servidores comunicam suas propostas a outros servidores em sua Lista de Nós Únicos (UNL). Os servidores então calculam quais transações aparecem em uma porcentagem limite de propostas. Inicialmente, esse limite é definido em 50%, significando que uma transação deve aparecer em propostas de pelo menos metade da UNL de um servidor para ser considerada na próxima rodada. À medida que o consenso progride através de rodadas sucessivas, esse limite aumenta incrementalmente (tipicamente para 60%, 70% e finalmente 80%).

Quando uma transação alcança o limite de supermaioria de 80% de apoio na UNL de um servidor, ela é incluída na proposta desse servidor para a rodada final de consenso. Todas as transações que alcançam esse limite em toda a rede são aplicadas ao livro-razão, que é então criptograficamente hashado e assinado. Este livro-razão recém-validado se torna o último livro-razão fechado, e o processo recomeça com o próximo conjunto de transações candidatas.

O processo de consenso tipicamente se completa em 5 segundos ou menos, com a maioria das transações exigindo apenas uma rodada de consenso para alcançar o limite de supermaioria. As transações que não alcançam consenso em uma rodada permanecem como candidatas para rodadas subsequentes. Este design garante que a rede progrida continuamente enquanto mantém fortes garantias de segurança, já que nenhuma transação pode ser aplicada ao livro-razão sem o apoio de supermaioria dos validadores confiáveis.

Ripple Protocol Consensus Algorithm

Ripple Protocol Consensus Algorithm (RPCA) dimulai dengan setiap server mengambil semua transaksi valid yang telah dilihat tetapi belum diterapkan sebagai transaksi kandidat. Server kemudian mengikuti protokol multi-ronde, bekerja secara iteratif menuju kesepakatan atas himpunan transaksi yang akan diterapkan ke ledger saat ini. Pada setiap ronde, server membuat proposal yang terdiri dari transaksi yang menurut mereka perlu dimasukkan ke ledger berikutnya.

Selama setiap ronde konsensus, server mengomunikasikan proposalnya ke server lain dalam Unique Node List (UNL) mereka. Server lalu menghitung transaksi mana yang muncul dalam persentase ambang proposal. Pada awalnya, ambang ini ditetapkan di 50%, artinya transaksi harus muncul dalam proposal dari setidaknya setengah UNL server agar dipertimbangkan pada ronde berikutnya. Seiring konsensus berkembang melalui ronde berturut-turut, ambang ini meningkat secara bertahap (umumnya menjadi 60%, 70%, dan akhirnya 80%).

Ketika transaksi mencapai ambang supermajority 80% dukungan dalam UNL server, transaksi tersebut dimasukkan ke proposal server untuk ronde konsensus akhir. Semua transaksi yang mencapai ambang ini di seluruh jaringan diterapkan ke ledger, lalu ledger di-hash dan ditandatangani secara kriptografis. Ledger yang baru divalidasi ini menjadi ledger tertutup terakhir, dan proses dimulai kembali dengan himpunan transaksi kandidat berikutnya.

Proses konsensus biasanya selesai dalam 5 detik atau kurang, dengan sebagian besar transaksi hanya membutuhkan satu ronde konsensus untuk mencapai ambang supermajority. Transaksi yang belum mencapai konsensus dalam satu ronde tetap menjadi kandidat untuk ronde berikutnya. Desain ini memastikan jaringan terus membuat kemajuan sambil mempertahankan jaminan safety yang kuat, karena tidak ada transaksi yang dapat diterapkan ke ledger tanpa dukungan supermajority dari validator tepercaya.

Formal Analysis of Convergence

A correção do RPCA depende criticamente da sobreposição entre as UNLs escolhidas por diferentes nós na rede. Seja UNL_i a lista de nós únicos do nó i, e seja UNL_i ∩ UNL_j o conjunto de nós que aparecem tanto em UNL_i quanto em UNL_j. Para que a rede mantenha o consenso, exigimos que para quaisquer dois nós i e j, a interseção de suas UNLs seja suficientemente grande em relação ao tamanho máximo de qualquer uma das UNLs.

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

Especificamente, o protocolo garante segurança quando |UNL_i ∩ UNL_j| / max(|UNL_i|, |UNL_j|) 1/5 para todos os pares de nós i e j. Esta condição garante que mesmo se os nós Byzantine tentarem fazer com que diferentes partes da rede cheguem a diferentes decisões de consenso, a sobreposição em nós confiáveis previne uma bifurcação. Se esta condição for mantida e menos de 1/5 dos nós em qualquer UNL forem Byzantine, então todos os nós corretos chegarão à mesma decisão de consenso.

A prova formal prossegue mostrando que se dois nós pudessem chegar a diferentes decisões de consenso, deve existir alguma transação T que aparece no livro-razão final de um nó mas não no do outro. Para que isso ocorra, T deve ter alcançado 80% de apoio na UNL do primeiro nó mas menos de 80% de apoio na UNL do segundo nó. No entanto, dado o requisito de sobreposição e a restrição sobre nós Byzantine, pode-se mostrar que este cenário é impossível: se T alcançar 80% de apoio em UNL_i, deve alcançar pelo menos 60% de apoio em qualquer UNL_j que satisfaça a condição de sobreposição, e com rodadas suficientes de consenso, isso convergirá para 80% ou será rejeitado por ambos os nós.

A propriedade de vivacidade -- que o consenso eventualmente será alcançado -- segue da observação de que o limite para inclusão aumenta deterministicamente ao longo das rodadas de consenso. Mesmo na presença de nós Byzantine e atrasos de rede, o protocolo garante que as transações apoiadas por uma supermaioria de nós honestos eventualmente serão incluídas, enquanto as transações que carecem de tal apoio serão excluídas. O tempo limitado para consenso (tipicamente 5 segundos) fornece garantias práticas de vivacidade adequadas para aplicações de sistemas de pagamento.

Formal Analysis of Convergence

Kebenaran RPCA sangat bergantung pada tingkat tumpang tindih antara UNL yang dipilih oleh node-node berbeda dalam jaringan. Misalkan UNL_i menyatakan unique node list milik node i, dan UNL_i ∩ UNL_j menyatakan himpunan node yang muncul pada UNL_i dan UNL_j sekaligus. Agar jaringan mempertahankan konsensus, untuk setiap pasangan node i dan j, irisan UNL keduanya harus cukup besar relatif terhadap ukuran UNL yang lebih besar.

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

Secara spesifik, protokol menjamin safety ketika |UNL_i ∩ UNL_j| / max(|UNL_i|, |UNL_j|) 1/5 untuk semua pasangan node i dan j. Kondisi ini memastikan bahwa sekalipun node Byzantine berusaha membuat bagian-bagian jaringan mencapai keputusan konsensus yang berbeda, tumpang tindih node tepercaya mencegah terjadinya fork. Jika kondisi ini terpenuhi dan kurang dari 1/5 node dalam setiap UNL bersifat Byzantine, maka semua node benar akan mencapai keputusan konsensus yang sama.

Pembuktian formal menunjukkan bahwa jika dua node dapat mencapai keputusan konsensus berbeda, harus ada transaksi T yang muncul di ledger final satu node tetapi tidak pada node lainnya. Agar hal ini terjadi, T harus mencapai dukungan 80% di UNL node pertama namun kurang dari 80% di UNL node kedua. Namun, dengan syarat tumpang tindih dan batas node Byzantine, skenario ini terbukti mustahil: jika T mencapai 80% dukungan di UNL_i, T harus mencapai setidaknya 60% dukungan di UNL_j mana pun yang memenuhi kondisi tumpang tindih, dan dengan ronde konsensus yang cukup, dukungan ini akan konvergen ke 80% atau ditolak oleh kedua node.

Properti liveness, yaitu konsensus pada akhirnya tercapai, berasal dari pengamatan bahwa ambang inklusi meningkat secara deterministik sepanjang ronde konsensus. Bahkan dengan keberadaan node Byzantine dan keterlambatan jaringan, protokol memastikan transaksi yang didukung supermajority node jujur pada akhirnya akan dimasukkan, sementara transaksi yang tidak memiliki dukungan tersebut akan dikeluarkan. Waktu konsensus yang terbatas (umumnya sekitar 5 detik) memberikan jaminan liveness praktis yang sesuai untuk aplikasi sistem pembayaran.

Unique Node Lists

A Lista de Nós Únicos (UNL) é um componente fundamental do RPCA que o distingue de outros algoritmos de consenso. Cada nó na rede Ripple mantém uma UNL consistindo de outros nós em que confia para não conspirar para fraudar a rede. Criticamente, esta confiança é local em vez de global: diferentes nós podem ter diferentes UNLs, e não há requisito de um conjunto de validadores globalmente acordado. Este design permite que a rede escale organicamente enquanto mantém a descentralização.

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

A UNL serve como mecanismo de prevenção de ataques Sybil sem exigir prova de trabalho. Em um sistema de votação ingênuo, um atacante poderia criar muitos nós pseudônimos para obter influência desproporcional. Ao exigir que cada nó escolha explicitamente em quais outros nós confia, o RPCA garante que a criação de identidades adicionais não fornece nenhuma vantagem a menos que essas identidades possam convencer os nós existentes a adicioná-las às suas UNLs. Isso desloca o problema da resistência Sybil do gasto computacional para relacionamentos de reputação e confiança.

Para que a rede funcione corretamente, as UNLs devem ser escolhidas de modo que tenham sobreposição suficiente, conforme descrito na análise formal. Na prática, isso significa que embora cada operador de nó tenha autonomia na seleção de sua UNL, deve garantir que sua lista inclua validadores que também são confiados por outras partes da rede. O Ripple fornece uma UNL padrão consistindo de validadores operados por entidades diversas, mas os operadores de nós são livres para modificar esta lista com base em sua própria avaliação de confiança.

O mecanismo UNL também fornece um caminho natural em direção à descentralização progressiva. Nos estágios iniciais da rede, um conjunto mais centralizado de validadores pode ser apropriado para garantir estabilidade e confiabilidade. À medida que a rede amadurece e mais operadores diversos demonstram sua confiabilidade, as UNLs podem evoluir para incluir um conjunto mais amplo de validadores, aumentando a resiliência e descentralização da rede sem comprometer suas propriedades de segurança.

Unique Node Lists

Unique Node List (UNL) adalah komponen fundamental RPCA yang membedakannya dari algoritma konsensus lain. Setiap node dalam jaringan Ripple memelihara UNL yang berisi node lain yang dipercaya tidak akan berkolusi untuk menipu jaringan. Hal kritisnya adalah kepercayaan ini bersifat lokal, bukan global: node yang berbeda dapat memiliki UNL yang berbeda, dan tidak ada keharusan atas satu set validator yang disepakati secara global. Desain ini memungkinkan jaringan bertumbuh secara organik sambil tetap mempertahankan desentralisasi.

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

UNL berfungsi sebagai mekanisme pencegahan serangan Sybil tanpa membutuhkan proof-of-work. Dalam sistem voting naif, penyerang bisa membuat banyak identitas pseudonim untuk memperoleh pengaruh berlebihan. Dengan mengharuskan setiap node secara eksplisit memilih node mana yang dipercaya, RPCA memastikan pembuatan identitas tambahan tidak memberi keuntungan kecuali identitas tersebut dapat meyakinkan node yang ada untuk memasukkannya ke UNL mereka. Dengan demikian, masalah ketahanan Sybil bergeser dari pengeluaran komputasi ke reputasi dan relasi kepercayaan.

Agar jaringan berfungsi dengan benar, UNL harus dipilih sehingga memiliki tumpang tindih yang memadai, sebagaimana dijelaskan dalam analisis formal. Dalam praktiknya, ini berarti meskipun setiap operator node memiliki otonomi untuk memilih UNL sendiri, mereka harus memastikan daftar tersebut mencakup validator yang juga dipercaya oleh bagian lain jaringan. Ripple menyediakan UNL default yang terdiri dari validator yang dioperasikan oleh entitas beragam, tetapi operator node bebas menyesuaikan daftar ini berdasarkan penilaian kepercayaan mereka sendiri.

Mekanisme UNL juga menyediakan jalur alami menuju desentralisasi progresif. Pada tahap awal jaringan, kumpulan validator yang lebih terpusat mungkin tepat untuk memastikan stabilitas dan keandalan. Saat jaringan matang dan operator yang lebih beragam membuktikan kredibilitasnya, UNL dapat berevolusi untuk mencakup kumpulan validator yang lebih luas, meningkatkan ketahanan dan desentralisasi jaringan tanpa mengorbankan properti keamanannya.

Simulation Code

Para validar a análise teórica do RPCA e avaliar seu desempenho sob várias condições, simulações extensas foram conduzidas usando software de simulação personalizado. O framework de simulação modela uma rede de nós, cada um mantendo sua própria UNL e participando do protocolo de consenso. O código implementa o algoritmo RPCA completo, incluindo proposta de transações, rodadas de votação com limites crescentes e validação do livro-razão.

Os parâmetros-chave variados nas simulações incluem tamanho da rede (variando de 10 a 1.000 nós), a porcentagem de nós Byzantine (de 0% a 20%), tamanho da UNL (tipicamente entre 5 e 50 nós) e configurações de topologia de rede. Para cada configuração de parâmetros, múltiplas execuções de simulação foram conduzidas com diferentes sementes aleatórias para garantir a validade estatística dos resultados. As simulações rastrearam métricas incluindo latência de consenso, probabilidade de bifurcação e taxa de transferência de transações.

Os resultados da simulação confirmam as previsões teóricas sobre convergência e segurança. Em todas as configurações onde a condição de sobreposição de UNL foi satisfeita e os nós Byzantine compreendiam menos de 20% de cada UNL, a rede alcançou consenso com sucesso sem bifurcações. A latência de consenso permaneceu consistentemente baixa (tipicamente completando em 3-5 segundos simulados) independentemente do tamanho da rede, demonstrando a escalabilidade do algoritmo. Mesmo com 15% de nós Byzantine tentando ativamente interromper o consenso, a rede manteve a correção desde que o requisito de sobreposição de UNL fosse atendido.

Simulações adicionais exploraram casos extremos e cenários de falha, incluindo partições de rede, mudanças repentinas na composição da UNL e ataques coordenados por nós Byzantine. Essas simulações forneceram insights sobre a robustez do protocolo e informaram as melhores práticas recomendadas para seleção de UNL e operação de rede. O código de simulação completo foi disponibilizado para permitir verificação independente e pesquisa adicional.

Simulation Code

Untuk memvalidasi analisis teoritis RPCA dan mengevaluasi kinerjanya di berbagai kondisi, simulasi ekstensif dilakukan menggunakan perangkat lunak simulasi khusus. Kerangka simulasi memodelkan jaringan node, masing-masing memelihara UNL sendiri dan berpartisipasi dalam protokol konsensus. Kode tersebut mengimplementasikan algoritma RPCA secara lengkap, termasuk proposal transaksi, ronde voting dengan ambang yang meningkat, dan validasi ledger.

Parameter kunci yang divariasikan dalam simulasi meliputi ukuran jaringan (dari 10 hingga 1.000 node), persentase node Byzantine (dari 0% hingga 20%), ukuran UNL (umumnya antara 5 dan 50 node), serta konfigurasi topologi jaringan. Untuk setiap konfigurasi parameter, beberapa kali simulasi dijalankan dengan random seed berbeda untuk memastikan validitas statistik hasil. Simulasi melacak metrik seperti latensi konsensus, probabilitas fork, dan throughput transaksi.

Hasil simulasi mengonfirmasi prediksi teoritis mengenai konvergensi dan safety. Pada semua konfigurasi ketika kondisi tumpang tindih UNL terpenuhi dan node Byzantine kurang dari 20% dari setiap UNL, jaringan berhasil mencapai konsensus tanpa fork. Latensi konsensus tetap rendah secara konsisten (umumnya selesai dalam 3-5 detik simulasi) terlepas dari ukuran jaringan, menunjukkan skalabilitas algoritma. Bahkan dengan 15% node Byzantine yang aktif mencoba mengganggu konsensus, jaringan tetap mempertahankan correctness selama syarat tumpang tindih UNL terpenuhi.

Simulasi tambahan mengeksplorasi kasus tepi dan skenario kegagalan, termasuk partisi jaringan, perubahan mendadak komposisi UNL, serta serangan terkoordinasi oleh node Byzantine. Simulasi ini memberikan wawasan tentang ketangguhan protokol dan menjadi dasar rekomendasi praktik terbaik untuk pemilihan UNL serta operasi jaringan. Kode simulasi lengkap telah dipublikasikan untuk memungkinkan verifikasi independen dan riset lanjutan.

Discussion

Comparado ao consenso por prova de trabalho do Bitcoin, o RPCA oferece várias vantagens significativas para aplicações de sistemas de pagamento. Mais notavelmente, a latência de consenso é reduzida de 40-60 minutos (o tempo tipicamente recomendado para transações Bitcoin de alto valor) para aproximadamente 5 segundos. Esta melhoria torna o RPCA adequado para ponto de venda e outras aplicações onde a liquidação quase instantânea é necessária. Além disso, o RPCA requer recursos computacionais mínimos em comparação com a prova de trabalho, eliminando o consumo massivo de energia associado à mineração de Bitcoin.

No entanto, essas vantagens vêm com diferentes suposições de confiança. Enquanto a segurança do Bitcoin depende apenas da suposição de que nenhum atacante controla mais de 50% do poder computacional da rede, o RPCA exige que os nós escolham UNLs com sobreposição suficiente e que os nós Byzantine não excedam o limite dentro dessas UNLs. Isso transfere alguma responsabilidade para os operadores de nós para tomar decisões de confiança prudentes. Na prática, essa compensação é aceitável para muitos casos de uso de sistemas de pagamento onde as instituições participantes têm relacionamentos de confiança existentes.

A topologia de rede e a estratégia de seleção de UNL impactam significativamente as propriedades do sistema de consenso. Uma topologia altamente centralizada onde todos os nós incluem os mesmos validadores em suas UNLs maximiza a segurança, mas pode reduzir a vivacidade se esses validadores ficarem indisponíveis. Por outro lado, uma topologia altamente descentralizada com sobreposição mínima de UNL pode melhorar a vivacidade, mas poderia arriscar falhas de consenso se a sobreposição se tornar muito esparsa. Encontrar o equilíbrio ideal requer consideração cuidadosa do cenário de implantação específico e da tolerância ao risco.

Trabalhos futuros poderiam explorar algoritmos adaptativos de seleção de UNL que mantenham automaticamente os requisitos de sobreposição enquanto maximizam a descentralização, mecanismos para que os nós ajustem dinamicamente suas UNLs com base no comportamento observado dos validadores, e extensões ao algoritmo de consenso que possam tolerar porcentagens ainda mais altas de nós Byzantine. Essas melhorias poderiam aumentar ainda mais a robustez e aplicabilidade do RPCA para sistemas de pagamento distribuídos em larga escala.

Discussion

Dibandingkan konsensus proof-of-work pada Bitcoin, RPCA menawarkan sejumlah keunggulan penting untuk aplikasi sistem pembayaran. Yang paling menonjol, latensi konsensus turun dari 40-60 menit (waktu yang umumnya direkomendasikan untuk transaksi Bitcoin bernilai tinggi) menjadi sekitar 5 detik. Peningkatan ini membuat RPCA cocok untuk point-of-sale dan aplikasi lain yang membutuhkan penyelesaian hampir seketika. Selain itu, RPCA memerlukan sumber daya komputasi minimal dibanding proof-of-work, sehingga menghilangkan konsumsi energi masif yang terkait dengan penambangan Bitcoin.

Namun, keunggulan ini datang dengan asumsi kepercayaan yang berbeda. Keamanan Bitcoin bergantung pada asumsi bahwa tidak ada penyerang yang mengendalikan lebih dari 50% daya komputasi jaringan, sedangkan RPCA mensyaratkan node memilih UNL dengan tumpang tindih memadai dan node Byzantine tidak melampaui ambang di dalam UNL tersebut. Hal ini memindahkan sebagian tanggung jawab kepada operator node untuk membuat keputusan kepercayaan yang bijak. Dalam praktik, trade-off ini dapat diterima untuk banyak kasus penggunaan pembayaran ketika institusi yang berpartisipasi sudah memiliki hubungan kepercayaan.

Topologi jaringan dan strategi pemilihan UNL sangat memengaruhi sifat sistem konsensus. Topologi sangat terpusat, ketika semua node memasukkan validator yang sama dalam UNL mereka, memaksimalkan safety tetapi dapat mengurangi liveness jika validator tersebut tidak tersedia. Sebaliknya, topologi sangat terdesentralisasi dengan tumpang tindih UNL minimal dapat meningkatkan liveness namun berisiko menyebabkan kegagalan konsensus jika tumpang tindih menjadi terlalu jarang. Menemukan keseimbangan optimal membutuhkan pertimbangan cermat terhadap skenario deployment spesifik dan toleransi risiko.

Pekerjaan mendatang dapat mengeksplorasi algoritma pemilihan UNL adaptif yang otomatis mempertahankan persyaratan tumpang tindih sambil memaksimalkan desentralisasi, mekanisme agar node menyesuaikan UNL secara dinamis berdasarkan perilaku validator yang diamati, dan ekstensi algoritma konsensus yang dapat mentoleransi persentase node Byzantine lebih tinggi. Peningkatan ini dapat semakin memperkuat ketangguhan dan penerapan RPCA untuk sistem pembayaran terdistribusi berskala besar.

Conclusion

O Algoritmo de Consenso do Protocolo Ripple representa um avanço significativo no consenso distribuído para sistemas de pagamento. Ao utilizar sub-redes coletivamente confiáveis em vez de exigir acordo global entre todos os nós, o RPCA alcança consenso em questão de segundos enquanto mantém fortes garantias contra falhas Byzantine. A análise formal demonstra que desde que as UNLs sejam escolhidas com sobreposição suficiente e os nós Byzantine permaneçam abaixo do limite, a rede alcançará consenso correto sem bifurcações.

As implicações práticas deste trabalho se estendem além da rede de pagamentos Ripple. O RPCA demonstra que a compensação tradicional entre latência de consenso e garantias de segurança pode ser superada através de design cuidadoso do protocolo e do uso de relacionamentos de confiança locais. Esta abordagem pode se mostrar aplicável a outros sistemas distribuídos onde a baixa latência é crítica e os participantes têm relacionamentos de confiança existentes, como sistemas de liquidação interbancária, rastreamento de cadeia de suprimentos e outras aplicações de infraestrutura financeira.

A implantação do RPCA em sistemas de produção validou as características de desempenho e robustez do algoritmo. A rede Ripple processa milhares de transações por segundo com latência de consenso consistente de 3-5 segundos, demonstrando que as propriedades teóricas se traduzem efetivamente para a operação no mundo real. À medida que a rede continua a evoluir e incorporar validadores adicionais de operadores diversos, ela fornece um exemplo prático de como um sistema de consenso descentralizado pode manter tanto a segurança quanto o desempenho em escala.

Conclusion

Ripple Protocol Consensus Algorithm merupakan kemajuan penting dalam konsensus terdistribusi untuk sistem pembayaran. Dengan memanfaatkan subjaringan yang dipercaya secara kolektif alih-alih menuntut kesepakatan global dari semua node, RPCA mencapai konsensus dalam hitungan detik sambil mempertahankan jaminan kuat terhadap kegagalan Byzantine. Analisis formal menunjukkan bahwa selama UNL dipilih dengan tumpang tindih yang cukup dan node Byzantine tetap di bawah ambang, jaringan akan mencapai konsensus yang benar tanpa fork.

Implikasi praktis karya ini melampaui jaringan pembayaran Ripple. RPCA menunjukkan bahwa trade-off tradisional antara latensi konsensus dan jaminan keamanan dapat diatasi melalui desain protokol yang cermat serta penggunaan relasi kepercayaan lokal. Pendekatan ini berpotensi diterapkan pada sistem terdistribusi lain yang membutuhkan latensi rendah dan memiliki peserta dengan relasi kepercayaan yang sudah ada, seperti penyelesaian antarbank, pelacakan rantai pasok, dan aplikasi infrastruktur keuangan lainnya.

Penerapan RPCA di sistem produksi telah memvalidasi karakteristik kinerja dan ketangguhan algoritma ini. Jaringan Ripple memproses ribuan transaksi per detik dengan latensi konsensus konsisten 3-5 detik, menunjukkan bahwa properti teoritisnya efektif diterjemahkan ke operasi dunia nyata. Seiring jaringan terus berkembang dan menambah validator dari operator yang beragam, RPCA menjadi contoh praktis bagaimana sistem konsensus terdesentralisasi dapat mempertahankan keamanan dan performa pada skala besar.

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 artigo seminal formalizou o problema de alcançar consenso em sistemas distribuídos com componentes defeituosos e estabeleceu a base teórica para 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 trabalho introduziu o PBFT, demonstrando que a Byzantine fault tolerance poderia ser alcançada com desempenho prático, embora com complexidade de comunicação O(n^2) limitando a escalabilidade.

Nakamoto, S. (2008). "Bitcoin: A Peer-to-Peer Electronic Cash System." Este whitepaper introduziu o consenso por prova de trabalho como solução para o problema do gasto duplo em moeda digital, permitindo consenso descentralizado sem partes confiáveis ao custo de alta latência e consumo de energia.

Lamport, L. (1998). "The Part-Time Parliament." ACM Transactions on Computer Systems, 16(2):133-169. Este artigo apresentou o algoritmo Paxos, que alcança consenso em sistemas assíncronos sob falhas por crash, influenciando designs subsequentes 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. O resultado de impossibilidade FLP estabeleceu limites fundamentais sobre o que os algoritmos de consenso podem alcançar em sistemas assíncronos, moldando o espaço de design para protocolos de consenso práticos.

References

Lamport, L., Shostak, R., dan Pease, M. (1982). "The Byzantine Generals Problem." ACM Transactions on Programming Languages and Systems, 4(3):382-401. Makalah seminal ini memformalisasi masalah pencapaian konsensus dalam sistem terdistribusi dengan komponen yang rusak, serta meletakkan fondasi teoretis bagi sistem yang toleran terhadap kesalahan Byzantine.

Castro, M., dan Liskov, B. (1999). "Practical Byzantine Fault Tolerance." Proceedings of the Third Symposium on Operating Systems Design and Implementation (OSDI). Karya ini memperkenalkan PBFT dan menunjukkan bahwa toleransi kesalahan Byzantine dapat dicapai dengan performa praktis, walaupun kompleksitas komunikasi O(n^2) membatasi skalabilitas.

Nakamoto, S. (2008). "Bitcoin: A Peer-to-Peer Electronic Cash System." Whitepaper ini memperkenalkan konsensus proof-of-work sebagai solusi untuk masalah double-spending pada mata uang digital, memungkinkan konsensus terdesentralisasi tanpa pihak tepercaya dengan biaya latensi tinggi dan konsumsi energi besar.

Lamport, L. (1998). "The Part-Time Parliament." ACM Transactions on Computer Systems, 16(2):133-169. Makalah ini memperkenalkan algoritma Paxos, yang mencapai konsensus dalam sistem asinkron di bawah kegagalan crash, dan memengaruhi desain protokol konsensus setelahnya.

Fischer, M. J., Lynch, N. A., dan Paterson, M. S. (1985). "Impossibility of Distributed Consensus with One Faulty Process." Journal of the ACM, 32(2):374-382. Hasil ketidakmungkinan FLP menetapkan batas fundamental mengenai apa yang dapat dicapai algoritma konsensus dalam sistem asinkron, sehingga membentuk ruang desain protokol konsensus praktis.