Tässä esityksessä käydään pääpiirteittäin läpi XRP Ledgerin konsensusmekanismi, mikä sen tarkoitus on ja kuinka se toimii. Esityksessä ei mennä teknisiin yksityiskohtiin, vaan ennemminkin kuvaillaa prosessia mahdollisimman yksinkertaisesti.
2. Mikä on konsensusmekanismin tarkoitus
Konsensusprotokollien tarkoitus on estää niin kutsuttu “double-spend problem”[1] eli
saman virtuaalivaluutan käyttö kahteen kertaan. Vaikein osa tätä ongelmaa, etenkin
hajautetuissa järjestelmissä on transaktioiden asettaminen järjestykseen, ilman
keskitettyä tahoa, erityisesti tilanteessa missä kaksi tai useampi yhtälailla toisensa
poissulkevaa transaktiota tapahtuu lähes samanaikaisesti[2].
3. Konsensus keskitetyssä tilikirjassa
Perinteinen pankki ei pohjimmiltaan ole muuta, kuin tietokanta sen asiakkaiden
tileistä, saldoista ja maksu historiasta. Yksinkertaistettuna tämä tarkoittaa sitä, että
pankin serverillä pidetään yhtä kopiota tilikirjasta, jota pankki päivittää asiakkaiden
tekemien “ehdotusten” mukaisesti, tilikirjaan tehtävät muutokset pystyy näin ollen
tekemään vain pankki. Konsensuksen eli tehtävien muutosten oikeellisuuden validointi
ei näin ollen ole vaikea tehtävä, koska tilikirjoja on vain yksi ja siihen tehtävistä
muutoksista päättää yksi taho. Tällöin konsensusmekanismille ei ole varsinaista
tarvetta.
4. Konsensus hajautetussa tilikirjassa
Hajautettu tilikirja järjestelmä voi koostua kahdesta tai sadoista servereistä, joista
jokainen järjestelmän serveri ylläpitää omaa kopiotaan jaetusta tilikirjasta. Tämän
järjestelyn kanssa ongelmaksi muodostuu kaikkien, jopa satojen kopioiden pitäminen
ajan tasalla sekä tilikirjaan tehtävien muutosten hyväksymisestä. Tätä hyväksymis
prosessia kutsutaan konsensusmekanismiksi.
Bitcoin käyttämää konsensusmekanismiä kutsutaan nimellä Proof of Work, joka
perustuu serverien tekemään matemaattiseen työhön eli laskentaan. XRP Ledger sen
sijaan käyttää erityistä konsensus algoritmia, Ripple Procol Consensus
Agorithm(RPCA). RPCA perustuu maksujen järjestämiseen ja tämän järjestyksen
hyväksymiseen konsensus prosessissa kaikkien järjestelmän servereiden
toimesta(super majority yli 80%),[3]
5. RPCA pääperiaatteet
XRP Ledgerin konsensusmekanismin ydinperiaatteena on, että pienellä määrällä
luottoa päästään pitkälle. Jokainen verkossa toimiva serveri valitsee itselleen joukon
luotettuja servereitä, näitä servereitä voivat ylläpitää yritykset, yliopistot, julkiset tahot,
joku henkilökohtaisesti tuntemasi henkilö tai tuntematon taho, jonka ylläpitämä severi
on todettu luotettavaksi. Tämä valittu joukko luotettavia servereitä lisätään oman
serverin UNL:ään eli Unique Node List. Ripple Inc ylläpitämää UNL:ä voidaan käyttää
suoraan tai pohjana oman UNL:n rakentamisessa.
Rippled ohjelmisto sisältää automaattisia tarkistuksia, jotka havaitsevat, jos UNL
listalla olevat serverit toimivat järjestelmän sääntöjen vastaisesti, jolloin ne voidaan
poistaa listalta.
6. RPCA konsensus kierros (1)
XRP ledgerissä konsensus luo uuden version pääkirjasta aina muutaman sekunnin
välein. Uusinta versiota kutsutaan nimellä Viimeisin Suljettu Pääkirja(Last Closed
Ledger) Konsensus prosessi koostuu useammasta kierroksesta, joista jokaisessa
päästään lähemmäksi lopullista konsensusta ja uuden VSP:n luontia.
Jokainen XRP serveri lähettää saamansa muutosehdotukset(transaktiot) muille verkon
servereille.
7. RPCA konsensus kierros (2)
Konsensuskierroksen aikana tapahtuu seuraavaa.
1. Serveri vastaanottaa transaktioita muilta servereiltä.
2. Vastaanotetut transaktiot lisätään kandidaatti listaan.
3. Serveri vastaanottaa UNL servereiltä näiden muodostamia kandidaatti listoja.
4. Serveri vertaa omalla kandidaatti listalla olevia transaktioita, muiden listalla
oleviin transaktioihin.
5. Jos listoilla on samoja transaktioita ne saavat äänen, transaktioita verrataan
kunnes ajastin on kulunut loppuun. Serveri lisää ne transaktiot uuteen kandidaatti
listaan, jotka saavat yli 50% äänistä.
8. RPCA konsensus kierros (3)
1. Kohdan 5 prosessi toistuu, useaan kertaan siten, että jokaisella kerralla
vaadittavien äänien prosentti luku kasvaa.
2. Vertailu prosessi päättyy, kun kaikilla kandidaattilistan transaktioilla
äänestystulos on joko kyllä tai ei eli 80-100% tai 0% annetuista äänistä..
3. Serveri lopettaa konsensusprosessin ja ilmoittaa verkolle päässeensä
konsensukseen.
4. Ei äänen saaneet transaktiot hylätään ja uusi VSP luodaan. Hylätyt transaktiot
pysyvät kandidaatti listalla ja osallistuvat uuteen konsensus kierrokseen.[3]