Lyhyt tietopaketti suomen kielellä XRP ledgerin toiminnasta. XRP ledgeristä ei juuri ole tietoa saatavilla suomeksi, joten ajatuksenani on luoda materiaalia aiheen ympärille suomen kielellä.
2. Alkusanat
Sisältö.
Käyn tässä materiaalissa läpi XRP Ledgerin
historiaa ja avain konsepteja läpi suomen
kielellä, koska aiheesta ei tunnu olevan juuri
tietoa muulla kuin englannin kielellä.
Tarkoituksena on laajentaa materiaalia
tulevaisuudessa kattamaan aihepiiriä vielä
enemmän teknisellä tasolla.
2
3. Historia
Jo alkuvaiheessa tiimi päätti erottautua Bitcoinin
Proof of work mallista. He päätyivät kehittämään
uudenlaisen mekanismin , jossa luotetaan
vertaisverkon jäsenten väliseen konsensukseen.
Tämä eliminoi “51%” hyökkäyksen sekä louhinnan.
Elokuussa 2012 tiimin liittyy fintech veteraani Chris
Larsen. Tämän jälkeen Chris ja Jed lähestyivät Ryania
ideallaan liittää heidän digitaalinen valuuttansa
osaksi hänen kehittämäänsä luotto järjestelmää.
Ryan suostui ehdotukseen ja yhdessä he
muodostivat uuden yrityksen OpenCoin myöh. Ripple
labs inc.
Ripple labs Inc.
Alkuperäinen konsepti, josta myöhemmin kehittyi
XRP ledger juontaa juurensa Ryan Fuggerin vuonna
2004 konseptoimasta ja vuonna 2005 julkaistusta
vertaislaina järjestelmästä Ripplepay. Järjestelmä
mahdollisti luoton myöntämisen perheenjäsenten ja
ystävien kesken sekä maksamisen internetissä.
Vuoden 2011 keväällä Arthur Britto, Jed McCaleb,
and David Schwartz muodostivat tiimin ja seuraavan
vuoden ajan he työstivät ensimmäistä versiota XRP
ledgeristä.
3
4. Lyhyt kuvaus toiminnasta
XRP ledger käyttää muunneltua PBFT(Practical Byzantine Fault
Tolerance) konsensus algoritmiä nimeltään The Ripple Protocol
consensus algorithm(RPCA). Erona useisiin PBFT algoritmeihin
on siinä käytetyt aliverkot. Jokainen järjestelmän noodi
määrittelee oman listan(Unique Node List) muita noodeja, joihin
se “luottaa”.
Tämä järjestely pienentää huomattavasti järjestelmän
kokemaa viivettä, jonka konsensus prosessi aiheuttaa,
kuitenkaan heikentämättä järjestelmän turvallisuutta tai
hajautettua luonnetta.
Järjestelmällä kestää keskimäärin 3-5 sekuntia uuden pääkirja
version varmistamiseen eli siirrot tapahtuvat tässä ajassa. XRP
ledger kykenee toteuttamaan yli 1500 siirtoa sekunnissa ja
ulkoisilla maksukanavilla(payment channels) määrä nousee yli
50000 siirtoon sekunnissa.
XRP ledger (XRPL) on hajautettu kryptografinen pääkirja, jota
ylläpitää kasvava joukko vertaisverkossa toimivia noodeja, joista
käytetään nimitystä validators(varmentajat). Toinen osuva nimitys
voisi olla järjestelijät, koska niiden ainoa tehtävä on järjestää lähes
samaan aikaan tulevat transaktiot saapumis järjsetykseen ja näin
estää kahteen kertaan tapahtuvat siirrot(double spend attack).
XRPL:ä on oma natiivi kryptovaluuttansa XRP ja sitä käytetään
muun muassa transaktio maksujen maksamiseen, tilin reservi tason
ylläpitämiseen sekä suojaamaan järjestelmää
palvelunestohyökkäyksiltä.
Näiden järjestelmän sisäisten tehtävien lisäksi XRP:tä käytetään
nykyään silta valuuttana eri valuuttojen välillä kansainvälisissä
rahansiirroissa. Alunperin XRP ledger sisälsi 100 miljardia XRP:tä,
mutta jokaisen transaktion myötä pieni osa(noin 0.001 xrp/siirto)
tuhotaan.
4
6. Mikä on konsensus
Konsensus on minkä tahansa hajautetun maksujärjestelmän tärkein osa.
Perinteisissä keskitetyissä maksujärjestelmissä, yhdellä päätäntävallan
omaavalla taholla on viime kädessä valta määrätä koska ja miten maksut
tapahtuvat. Hajautetuissa järjestelmissä määritelmän mukaan, ei ole
keskitettyä tahoa joka voisi yksipuolisesti tehdä päätöksiä. Sen sijaan
hajautetut järjestelmät kuten XRP Ledger, määrittelevät joukon sääntöjä,
joita käyttäjät noudattavat. Jotta jokainen käyttäjä voi sopia samoista
sarjoista tapahtumia, millä tahansa ajanhetkellä. Tätä joukkoa sääntöjä
kutsutaan konsensus protokollaksi.
6
7. Konsensus protokollan
ominaisuuksia
XRP ledgerin käyttämän konsensus protokollallan keskeisimmät toimintaperiaatteet.
o Kuka tahansa, joka käyttää XRP Ledgeriä, voi sopia sen uusimmasta tilasta ja mitkä tapahtumat
ovat tapahtuneet missä järjestyksessä.
o Kaikki hyväksytyt tapahtumat käsitellään ilman keskusoperaattoria tai yhden ainoan vikapisteen
kautta.
o Pääkirja jatkaa etenemistään vaikka osallistujia liittyy, lähtee tai toimii väärin.
o Kuitenkin jos liian moni osallistujista ei ole tavoitettavissa tai toimiii haitallisesti, verkko
lopettaa etenemisen, ennemmin kuin haarautuu tai varmistaa vääriä tapahtumia .
o Tapahtumien vahvistaminen ei vaadi resurssien tuhlausta tai sen kilpailukykyistä käyttöä, toisin
kuin useimmissa lohkoketju järjestelmissä.
o Ominaisuudet voidaan summata seuraaviin periaatteisiin tärkeysjärjestyksessä: Correctness,
Agreement, Forward Progress(Oikeellisuus, Yksimielisyys, Eteneminen)
7
8. Konsensus kierrokset
XRP ledgerin konsensus etenee kierroksittain, luoden uuden validoidun pääkirja version muutaman
sekunnin välein.
o Aluksi noodi ottaa kaikki ennen konsensus kierroksen alkua saamansa transaktiot ja muodostaa
niistä julkisen kandidaattilistan “candidate set”.
o Jokainen noodi yhdistää muilta noodeilta(UNL) saamansa kandidaatti listat ja äänestää jokaisen
transaktion oikeellisuudesta.
o Transaktiot, jotka saavat vaadittavan minimimäärän ääniä(raja kasvaa jokaisella kierroksella)
päästetään seuraavalle kierrokselle. Transaktiot, jotka eivät saa riittävästi ääniä joko hylätään
tai siirretään seuraavaan kaditaattilistaan.
o Konsensuksen viimeisellä kierroksella kaikki transaktiot, joilla on minimissään 80% äänistä,
liitetään seuraavaan pääkirja versioon.
o Tämän jälkeen konsensus prosessi alkaa alusta uudella kandidaatti listalla.
8
10. Jaettu pääkirja
XRP Ledger vertaisverkko tarjoaa globaalin jaetun pääkirjan, joka antaa
sovelluksille vahvistettua tietoa sen sisältämän sisällön tilasta. Tämä
sisällön tilaa koskeva informaatio on:
⊗ Tilien asetukset
⊗ Tilien saldot
⊗ Osto/myynti toimeksiannot XRPL:n hajautetussa sisäisessä
pörssissä
⊗ Verkon asetukset esim. Siirtomaksu ja minimi reserve määrä
⊗ Aikaleima
10
13. Avainten formaatti
Yksityisavain(master_seed)
Luodaan käyttämällä elliptisiin
käyriin perustuvaa julkisen
avaimen salaumenetelmää
“ecdsa- secp256k1” tai
“ed25519”
Ja lopputulos on muotoa
sXXXXXXX…(YKSITYISAVAINTA EI
SAA KOSKAA JAKAA KENENKÄÄN
KANSSA!)
Julkinen avain(public_key)
Julkinen avain johdetaan
suoraan yksityisavaimesta
ja saadaan merkkijono joka
on muotoa aXXXXXXX…
Tilin osoite(account_id)
Luodaan ottamalla
RIPEMD160 tiiviste julkisen
avaimen sha-256
tiivisteestä. Joka on
muotoa rXXXXXXX…
13
14. Kolme tapaa luoda yksityis avain ja
tili osoite
On kolme eri tyyppistä informaatiota, jonka avulla käyttäjä voi “omistaa” XRP ledger tilin. Suurinosa
lompakko sovelluksista käyttää tyyppiä sXXXXXXXXXX… ja sitä kutsutaan nimellä master seed.
Jotku (kuten Ledger nano) käyttävät sana listaa eli mnemonic. Kolmas ei niin turvallinen tapa on
käyttää tunnuslausetta eli passphrase joka voi olla esimerkiksi valittu lause tietystä kirjasta.
Esimerkkejä
Master seed: "ssDnE686zQKZaZ9AD4s9Do1pZ8BwG” josta johdetaan osoite: "rUYQnzbQDYrbukRjDNcJU95U4kx99KkV6A"
Nmemonic: ” novel matter final only nice cheese address crad surface purpose saddle mango endless mixed trial tape wrap“
josta johdetaan osoite “r9JynAPy1xUEW2bAYK36fy5dKKNNNKK1Z5"
Tunnuslause: ”time is not a line but a dimension like the dimensions of space” josta johdetaan family seed:
“snoPBrXtMeMyMHUVTgbuqAfg1SUTb” ja osoite: “rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh”
14
17. XRP maksu
XRP:llä tehdyt maksut ovat suoria
vertaismaksuja eli ne kulkevat suoraan
lähettäjän tililtä vastaanottajan
tilille.
XRP Ledger perusmaksut
IOU maksu
IOU:lla tehdyt maksut eivät mene suoraan
lähettäjältä vastaanottajalle, vaan ne kulkevat
IOU:n liikkeellelaskijan(Gateway) tilin kautta.
Lisäksi IOU:n vastaanottaminen vaatii, että
vastaanottaja on avannut luottolinjan(trust line)
IOU:n liikkeellelaskijan tilille. Ilman tätä
käyttäjän hyväksyntää ei käyttäjän tilille voida
lähettää IOU:ta.(IOU:sta lisää myöhemmin)
17
18. Yhdistelmä maksutyypit
Suorien XRP ja IOU maksujen lisäksi XRP Ledger mahdollistaa maksut,
joiden suorittaminen sisältää ehtoja:
⊗ Valuuttojen väliset maksut
⊗ Shekkimaksu
⊗ Sulkutili(escrow)
⊗ Osittaismaksu(Partial payment)
⊗ Maksukanava(Payment channel)
Lisäksi kaikki muutokset, kuten luotto linjan avaus toteutetaan
transaktiolla.
18