top of page

KRYPTOKEISARIT

Blogi: Welcome
Blogi: Blog2
  • Writer's pictureDiligence dude

Ripple - XRP

14.12.2019

Mihin arvio perustuu: Ripple alkuperäinen whitepaper "The Ripple Consensus Algorithm), 99Bitcoins video Ripplestä, sekä muutama muu youtube video ja uutisartikkeli. Huom. ei (vielä) luettu viimeisintä tieteellistä analyysiä protokollasta: "Analysis of XRP Ledger Consensus Protocol"


Visio

Suurin osa pankeista käyttää rahanvaihtoon systeemiä joka on rakennettu yli 40 vuotta sitten. Näihin kuuluu mm. Swift, Western Union, MoneyGram. Kaikki edeltävät ovat hitaita, kalliita ja rajoitettuja systeemejä Ongelmana on myös että pankit eivät ole kaikki kytkettynä toisiinsa, vaan tilisiirrot pankista toiseen tapahtuvat usean muun pankin kautta. Tämä tekee kansainvälisistä tilisiirroista erityisen kalliita ja hitaita. Silloin kun tilisiirto vaatii valuutan vaihtoa toiseksi tilanne hankaloituu entisestään sillä kyseisellä pankilla ei välttämättä ole haluttua valuuttaa ja valuutta täytyy muuntaa toiseksi jonkun toisen valuutan kautta (esim. dollarin kautta).


Ripple nopeuttaa pankkien välistä valuutan vaihtoa ja rahaliikennettä tarjoamalla yhteisen luotettavan verkon kaikille pankeille jotka verkkoon haluavat osallistua. Ei tarvita yksittäisten pankkien välisiä keskinäisiä sopimuksia. Ripple mainostaa olevansa "Internet of value".


RippleLabs

for-profit yritys joka hallinnoi RippleNet:iä


Ripple:n idea on syntynyt jo 2004, ja vuonna 2012 Jeb McCaleb ja Chris Larsen perustivat Open Coin josta tuli myöhemmin RippleNet

Ripple keskittyy ainoastaan pankkien ja maksupalveluiden välisiin tilisiirtoihin, ei siis ihmisten välisiin, tai IoT tilisiirtoihin.


RippleNet

perustuu Ripple Transaction Protocol (=RTXP vrt. HTTP) jolla arvoa voidaan siirtää ympäri maailmaa. Validoija nodet ympäri maailmaa varmistavat että transaktion noudattaa RTXP protokollaa. Periaatteessa kuka tahansa voi pyörittää validator nodea, mutta käytännössä tämä vaatii että kuulut ns. "luotettuihin tahoihin". Yritykset/pankit jotka haluavat käyttää RippleNet:iä käyttävät gateway nodeja päästäkseen verkkoon. Gateway nodeja pyörittävät yleensä pankit ja niiden kautta pääsee verkkoon sisään. (Vrt. yritys ottaa yhteyttä pankkiin/luottoyhtiöön päästäkseen kiinni rahoitusjärjestelmään). RippleNet on siis nykyiselle pankkien arvonsiirtojärjestelmälle vaihtoehto.


Ripple tuotteet kuten: xRapid, xVia, xCurrent – yhtiöitä varten optimoituja ratkaisuja siirtää rahaa ympäri maailmaa. Nopeasti ja helposti yhdistettävissä tavanomaiseen pankkitoimintaan ja asiakas ei edes huomaa eroa.


Ripple tarjoaa kaksi eri tokenia:

IOU, tokeneita jotka voidaan tallettaa jokaiseen Ripple lompakkoon. IOU on virtuaalinen velkakirja joka sitoo sen luonutta tahoa maksamaan määrättyä asiaa takaisin. IOU on määrätyn muotoinen (esim. USD.Facebook, mikä tarkoittaa että Facebook maksaa takaisin dollareina). IOU:t voivat olla mitä tahansa (esim. lehmiä). IOU luo luottamukseen perustuvan velan sen kahden eri tahon välillä. IOU ei siis ole kryptovaluutta ja eri IOU:ta ei voida yhdistää. Tähän liittyy termi "trust line", mikä tarkoittaa että kahdella eri taholla on sopimus luottaa toisen tahoon ja antaa velkaa tiettyyn rajaan (=trust line) asti.


XRP RippleLab:n luoma kryptovaluutta joka toimii tavanomaisen kryptovaluutan tavoin. Pankki voi siis joko vaihtaa halutun valuutan XRP:ksi ja lähettää sen toiselle pankille, tai vain vaihtaa kahden pankin välillä IOU:ta. Vaikka IOU perustuu puhtaasti kahden tahon väliseen luottamukseen pankki voi silti haluta käyttää IOU:ta sillä XRP:n arvo on heilahtelevaa ja sitä ei hyväksytä kaikkialla maailmassa (kryptovaluuttalainsäädäntö).

XRP on nopea ja suhteellisen skaalautuva. Transaktion lähetys kestää 4s, ja XRP kykenee käsittelemään noin 1500 tps. Tämä mitä ilmeisimmin riittää Ripple:n käyttötarkoitukseen.


Teknologia:

Verkko koostuu nodeista ja validoija nodeista. Validoija nodet muodostavat konsensuksen ja nodet toimivat lähinnä transaktioiden välittäjinä ja "tarkastavat" ettei transaktiot ole mahdottomia. Konsensus siis vaaditaan vain jotta voidaan kahden eri konfliktissa olevan transaktion (douple spend) välillä valita kumpi tapahtui ensin (ja on siis validi).


Datastruktuuri:

Ripple ei käytä lohkoketjua tai DAG:ia, vaan ehkä yksinkertaisinta mahdollista datastruktuuria jossa alusta vain tallettaa peräkkäisiä versioita tilastaan (=Ledger) joissa määritellään kenellä on ja kuinka paljon tokeneita. Viimeisin tila Last-Closed Ledger (=LCL) kuvastaa verkon nykytilaa. Open Ledger on jokaisen validoija noden käsitys siitä tilasta joka tulee seuraavaksi LCL tilaksi, mutta Open Ledger tila on vain spekulatiivinen ja sitä ei siis ole validoitu.


Konsensus:

Itse konsensus ei perustu PoW tai PoS ratkaisuihin, vaan on osittaiseen luottamukseen. Käytännössä tämä tarkoittaa sitä että jokaisella validoija nodella on lista muista validoija nodeista, joihin kyseinen node luottaa. Lista on nimeltään Unique Node List (UNL). Jokaisella luotetulla nodella on oma UNL, ja node saa itse päättää kuka kuuluu sen UNL:iin. Luotetut nodet eivät saa kompensaatiota noden pyörittämisestä.


Hyvä video konsensuksesta löytyy: https://www.youtube.com/watch?v=1cHbKVlaOTA


Sama selitettynä suomeksi:

Muutaman sekunnin välein muodostetaan uusi LCL ja tästä alkaa aina uusi äänestyskierros.

Äänestyskierroksen alussa uusi XRP transaktio lähetetään verkon läpi se päätyy luotetulle nodelle joka tarkastaa että transaktio on validi (tilillä on riittävä määrä tokeneita etc) ja lähettää validin transaktion muille validoija nodeille. Kaikki transaktiot jotka validoija node saa muilta nodeilta muodostavat äänestyskierroksen alussa "candidate set". Nämä transaktionit odottavat siis validointia ja ovat vasta ehdotuksia.


Validointi tapahtuu yksi kierros kerrallaan niin että joka kierroksella validoida node kerää ääniä "candidate set" tansaktioille. Node tarkastaa aina keneltä saatu transaktio lähetettiin. Mikäli ehdotus tulee nodelta joka ei kuulu validoija noden UNL, tämä ehdotus ei saa sillä hetkellä ääntä. Mikäli ehdotuksen lähettänyt validoija node kuitenkin kuuluu kyseisen noden UNL:iin, saa kyseinen ehdotus yhden äänen. Node saa siis saman transaktion useammalta eri taholta ja aina kun lähettänyt taho kuuluu validoija noden omaan UNL:iin, ja tämä taho ei ole lähettänyt kyseistä transaktiota aiemmin saa transaktio yhden uuden äänen.


Äänestyskierros on jaettu useampaan vaiheeseen. Ensimmäinen vaihe päättyy kun ennalta sovittu aika loppuu ja tällöin validoija nodet tarkistavat mitkä transaktionit sen cadidate set:stä ovat saaneet riittävän määrän ääniä, (ensimmäisellä kierroksella esim. riittää että yli 50% validoija noden UNL listan nodeista on puoltanut transaktiota). Tämän jälkeen alkaa toinen vaihe jolloin node pakkaa ensimmäisen kierroksen transaktionit pakettiin ja lähettää nämä uudelleen eteenpäin muiden nodejen validoitaviksi. Toinen vaihe päättyy jälleen tietyn ajan päästä ja toisessa vaiheessa vaaditaan korkeampi prosentuaalinen osuus jotta transaktio pääsee seuraavaan vaiheeseen. Viimeisessä vaiheessa vaaditaan että vähintään 80% UNL listan nodeista on hyväksynyt transaktion. Tällöin transaktio voidaan vahvistaa ja liittää uuteen LCL:iin ja aloittaa kokonaan uusi äänestyskierros.


XRP

100 miljardia XRP yhteensä.

20 miljardia Ripplen perustajille

7 miljardia Ripple labs

40 miljardia myyty yrityksille ja yksityishenkilöille (sis. 20 miljardia perustajille)

53 miljardia pakattuna smart contractiin joka luo aina yhden miljardin kuussa Ripple Labs:lle kunnes kaikki rahat on luotu.


Drop = 0.000001 XRP.


XRP tili vaatii min 20 XRP deposit, jotta ihmiset eivät spämmäisi verkkoa tileillään.


XRP varannat vähenevät ajan myötä. Valuutalla on transaktion fee joka "kuluttaa" valuuttaa hiljalleen vähemmäksi. Transaktion fee ei siis mene validoija nodeille vaan häviää olemasta.


Muiden pohdintaa:

Mikäi sijoitat Rippleen lyöt vetoa että pankit ja rahoituspalvelut alkavat käyttää RippleNet tulevaisuudessa enemmän ja nimenomaan XRP:tä ei IOU:ta.


Onko Ripple keskitetty valuutta?

Ripplen kohdalla on käyty kovaa vääntöä asiasta. RippleLabs ei kontrolloi RTXP:tä, mutta ylläpitävät sitä. Validoija nodet valitsevat mitä koodia pyörittävät. RippleLabs:lla on kuitenkin paljon vaikutusvaltaa RTXP:en ja RippleLabs on kuin XRP:n keskuspankki. RTXP on open source, mutta Ripple tuotteet eivät ole. Validoijat voivat pyörittää verkkoa ilman RippleLabs:ia, mutta kaikki kehitystyö tulee nykyisin RippleLabs:in kautta.


Validoija nodeja on vain vähän (kirjoituksen aikaan noin 200) ja se on murto-osa esim. bitcoinin validoijien määrästä, tämä luo riskiä validoija nodejen vallan keskittymisestä. Ripple protokolla on valvottu RippleLabs:n toimesta jotta verkko täyttää lainsäätäjien vaatimukset rahanpesun ja rikollisen toiminnen valvomisesta. Protokolla ei siis ole resistentti sensuurille. Verkkoon voi myös liittyä vain Gateway:n kautta.


Oma analyysi:

Ripple ei yritä ratkaista kryptotrilemmaa tai tarjota laajalaista kryptovaluuttaa. Se on yhden yrityksen kapealle sektorille luoma tuote, joka on mahdollista toteuttaa nykyisellä kryptovaluutta teknologialla. Tps ja verkon nopeus ovat riittäviä pankkien välisiin tilisiirtoihin ja osittaiseen luottamukseen perustuva ratkaisu toimii erinomaisesti silloin kun toimintaympäristön tulee muutoinkin olla tarkoin valvottu (pankkilainsäädäntö). Ripple on monin verroin tehokkaampi kuin aiemmat pankkien väliset tavat tehdä tilisiirtoja. Tämä ei kuitenkaan johdu vain Ripplen erinomaisuudesta, vaan siitä että pankkien välisen arvon siirron teknologia on pitkäksi aikaa jämähtänyt paikoilleen. Todennäköisesti alan suuret toimijat vastaavat lähiaikoina omalla teknologisesti päivitetyllä ratkaisullaan ja tämän vuoksi on vaikea sanoa miten Ripplelle käy.


Rippleä on moitittu paljon siitä että se on keskitetty kryptovaluutta ja tämä kysymys jakautuu kahteen haaraan. Itse konsensus mekanismiin ja toisaalta hallinnolliseen puoleen. Hallinnollisesti Ripple on selvästi keskitetty ja hallinnollinen rakenne on muodostettu niin että maksimoidaan Ripplen omistajien vauraus. Vain pieni osa XRP valuutasta on kierrossa ja markkinoilla. Omistajilla on valtavat omaisuudet valuuttaa, mutta he eivät voi myöskään myydä sitä kaikkea kovinkaan nopeasti laskematta liikaa XRP:n arvoa. Vaikka valuuttaa ei voi luoda lisää, teoriassa omistajilla on mahdollisuus kaksinkertaistaa markkinoilla olevan XRP:n määrä milloin tahansa, ja tämän lisäksi RippleLabs:lle "luodaan" jatkuvasti lisää XRP:tä. Sitten on vielä "tarpeeton" transaktion fee, joka kuluttaa markkinoilla olevan XRP:n osuutta ja pienentää sitä suhteessa omistajien holdauksessa olevaan osuuteen tai RippleLabs varattuun XRP osuuteen nähden. Käytännössä hallinnollisessa rakenteessa ja XRP:n jaon periaatteissa paistaa karkeasti läpi omistajien ahneus. Tämä voi säikäyttää pankkeja ja sijoittajia ja saada näitä suosimaan vähemmän hallinnollisesti keskitettyjä ratkaisuja.


Konsensus on sen sijaan mielenkiintoisempi. On vaikeammin hahmotettavissa kuinka keskitetty se on. Pankkimaailmasas konsensus toimii hyvin. Kuvitellaan että olet englantilainen suuri pankki (esim. HSBC) ja haluat vaihtaa valuttaa Zimbabwessa olevan pienen pankin kanssa. RippleNet avulla riittää että luotat Amerikkalaiseen JPMorgan:iin, ja muutamaan muuhun suureen pankkiin ja annat näiden pankkien validoida tilisiirron Zimbabwen pankin kanssa. Lisäksi koska siirto on nopea ja halpa voit tehdä siirron vaikka osissa ja näin edelleen pienentää riskiä. Mitä luotetumpi taho olet, sitä useamman noden UNL listalla olet ja sen painavampi sana sinulla on verkossa. Näin ollen "minimaalinen" luottamus luotettuihin tahoihin luo luottoa koko RippleNet konsensukseen ja myös tahoihin joihin et muutoin voisi luottaa. Mikäli joku luo äkkiä 1000 uutta validoija nodea, niillä ei ole luottamusta, joten ne ohitetaan konsensuksen muodostamisessa.


En usko että konsensukseen sisältyvä luottamuksen vaatimus on ongelma pankkien välisissä tilisiirroissa. RippleNet ei myöskään tule todennäköisesti yrittämään sellaisenaan laajentaa toimintaansa muuhun kuin pankkien välisiin tilisiirtoihin. Lainsäädäntö vaatii että verkko on tarkassa valvonnassa ja että tilisiirrot on raportoitavissa ja jäljitettävissä. Mikäli epämääräisiä tahoja ilmaantuisi verkkoon, valvovien viranomaisten tulisi saada tieto tästä ja selvitettävä asia. Ripple:llä ei siis ole taloudellisia intressejä laajentaa itseään yleiseksi kryptovaluutaksi.


Mutta voisiko Ripple:n ajatusta käyttää laajemmin kryptovaluutoissa, tai jopa IoT maailmassa? Mitä edes on luottamus DLT:ssä? Ripplen ratkaisussa on osin samoja piirteitä kuin shimmerissä (äänestykseen perustuva, ja kaikki nodet eivät kysy mielipidettään toisiltaan), toisaalta Iota pohti aiemmin Economic Clustering ratkaisua joka yhdistäisi shardinging osittaiseen luottamukseen perustuvaan järjestelmään (econimic incentive). Ripple haastaa ajattelemaan DLT ratkaisujen peruskysymyksiä.


Ripplen konsensusmekanismi ei sellaisenaan muutoinkaan sovellu kovin laaja-alaiseksi DLT ratkaisuksi sillä siinä äänestävien nodejen määrä on hyvin rajoitettu. Nyt äänestäviä nodeja on noin 200 ja verkko pääsee 1500tps lukemiin. UNL:n koko on oltava yli 0,2 x äänestävien nodejen määrä, jotta voidaan estää verkon jakautuminen kahdeksi eri haaraksi (fork), joten mitä enemmän äänestäviä nodeja sen enemmän nodejen välistä tiedon siirtoa ja sitä matalampi tps. Kuitenkin ajattelin tässä yhteydessä pohtia myös yleisesti sitä voisiko osittaiseen luottamukseen perustuva ratkaisu ratkaista DLT trilemman?


  • tähän siis päättyy tiukasti Rippleen liittyvä analyysi


Luottamus:

Jos pitäisi yhdellä sanalla kertoa mistä DLT:ssä on kysymys sana olisi varmaan luottamus. Data jaetaan ylipäätään useammalle koneelle jotta lisättäisiin dataan kohdistuvaa luottamusta. Kun yksikään osapuoli ei yksin kykene muuttamaan dataa, voidaan dataa pitää luotettavampana kuin yhdelle taholle talletettua dataa. Tämän vuoksi DLT ratkaisu ei siis ole useimmiten jotain joka muokkaa nykyisin keskitetysti järjestettyä ratkaisua paremmaksi, vaan lisääntyneellä luottamuksella pystytään ratkomaan ongelmia joita aiemmin ei pystytty ratkaisemaan koska dataan ei voitu luottaa. Esimerkiksi DLT kasino ei välttämättä ole sen parempi kuin keskitetty kasino, mikäli ei ole ongelmana luottaa siihen miten kasino käsittelee dataa. DLT ratkaisu vaatii aina enemmän laskentatehoa, talletustilaa ja kommunikaatiota kuin keskitetty ratkaisu. Tämä perusajatus on hyvä sisäistää kun arvio osittaiseen luottamukseen perustuvia ratkaisuja.


Luottamus dataan syntyy eri tavoin erilaisissa DLT ratkaisuissa. PoW ratkaisussa alustan käyttäjä luotetaan siihen että louhijoiden enemmistön (laskentatehollisesti) taloudelliset intressit kannustavat estämään doublespend. PoS ratkaisuissa luotetaan siihen että ne joilla on suurin omaisuus kyseistä valuuttaa hyötyvät taloudellisesti siitä että estävät doublespend tapahtumasta. Molemmissa ratkaisuissa lisäksi luotetaan siihen että he toimivat taloudellisten intressiensä mukaisesti. Ripple:n ratkaisussa luotetaan siihen että tietyt tahot joihin käyttäjä luottaa ensinnäkin haluavat, ja toisaala kykenevät estäään doublespend tapahtumasta. Ripplen ratkaisun erottaa kahdesta edeltävästä ratkaisusta se että tällaisessa osittaiseen luottamukseen pohjaavassa ratkaisussa sinun on tunnettava ne tahot joihin luotat ja joiden kanssa keskustelet. Lisäksi luotat siihen että näillä tahoilla on riittävän suuri äänivalta konsensuksessa. Luottamus ei siis synny kokonaan järjestelmästä itsestään vaan osin myös käyttäjän tuntemista tahoista.


Seuraavaksi lähdetään arviomaan kolmea eri mallia: täysin keskitetty, osittaiseen luottamukseen pohjaava ja hajautettu. Arvioidaan mikä ratkaisu on paras missäkin tilanteessa. (Huom. Käytetyt termit ovat tässä osin harhaanjohtavia, sillä hajautettu voi tarkoittaa hyvin montaa eri asiaa. Nyt kuitenkin puhutaan esim. PoS ja PoW pohjaavista ratkaisuista hajautettuna).


  1. Meshnet verkoissa node ei kykene ottaamaan suoraa yhteyttä ennalta määrättyyn luotettuun tahoon vaan pieni IoT laite on ennalta arvaamattomassa ympäristössä. Tällöin ainoastaan hajautettu ratkaisu jossa luottamus nousee protokollasta itsestään on riittävä.

  2. Mikäli IoT laite kykenee ottamaan yhteyden internettiin, on käytännössä aina mahdollista ottaa yhteys myös luotettuun tahoon. Kaikki kolme ratkaisumallia on tällöin mahdollisia ja ratkaisun paremmuus riippuu ongelmasta. Mikäli halutaan että monen erilaiset laitteet jakavat dataa ja palveluita keskenään ja halutaan luoda "luottamuksen kerros" johon kaikki eri lähtökohdista olevat laitteet voivat yhdessä luottaa, on käytännöllisintä mikäli luottamus syntyy itse protokollasta. Kuitenkin on myös mahdollista luoda osittaiseen luottamukseen pohjaava ratkaisu, mikäli tällä saavutetaan merkittäviä hyötyjä esim. tehokkuudessa. Keskitetyt ratkaisut luovat herkästi muureja eri toimijoiden välille.

  3. Mikäli laite on yhteydessä internettiin ja toimii vain harvojen tahojen kesken ja kaikki jakavat saman tahon joihin luottavat riittävästi, on keskitetty ratkaisu todennäköisesti paras. Kaikki kolme ratkaisua ovat mahdollisia, mutta keskitetty ratkaisu voittaa kilpailun yksinkertaisuudellaan ja tehokkuudellaan.


Kohta 2 on se tilanne joka vastaa nykyistä IoT maailmaa. On tarve saada monet eri laitteet "keskustelemaan" keskenään, ja tarvitaan protokolla joka luo yhteisen luottamuksen laitteiden tuottamaan dataan. Osittaiseen luottamukseen pohjatessa vältetään monet ongelmat mm. noden indentiteettiin liittyen (ei tarvita PoS, tai PoW) ja tällaisen protokollan luominen on helpompaa. Osittaiseen luottamukseen pohjaava järjestelmä ei kuitenkaan välttämättä ole itsessään nopeampi kuin täysin hajautettu, sillä maksimi tps ja tilisiirron vahvistamisaika riippuu protokollan algoritmeistä, ei siitä pohjaako algoritmit osittaiseen luottamukseen. Suurimpia rajoittavia tekijöitä algoritmien nopeudessa on mm. kuinka paljon nodejen välistä kommunikaatiota ja laskentatehoa algoritmi vaatii. Aiemmin pidettiin kryptotrilemmaa lähes mahdottomana ratkaista ja ajateltiin että vain luopumalla yhdestä trilemman osatekijästä: turvallisuus, hajautus tai skaalautuvuus voidaan saadaan kahta muuta lisää. Nyt kuitenkin kehitys on ollut niin nopeaa, että on selvästi nähtävissä kuinka on mahdollista yhdistää kaikki kolme samaan protokollaan yhä enenemissä määrin.


Osittaiseen luottamukseen pohjaava ratkaisu tuo myös paljon uusia ongelmia. Mistä IoT laite tietää mitkä ovat sen luotettuja tahoja? Mikäli tahot on ennalta määritelty, mitä jos luotettu taho poistuu verkosta? Kuinka IoT laite saa silloin tietää uuden luotetun tahon? Mikäli tämä tieto haetaan esim. valmistajan nettisivuilta, tuo tämä mukanaan yhden keskitetyn tahon johon hakkeri voi hyökätä. Yksinkertaisinta on mikäli kaikki IoT laitteet voivat liittyä samaan verkkoon joka luo luottamuksen dataan itse protokollan kautta. Tällöin protokolla voi levittäytyä kaikkein laajiten eri toimintaympäristöihin ja tarjota suurimman hyödyn. Varsinkin kun kehitystä seuratessa huomaa että tällaiset "kaiken" ratkaisevat ehdotukset eivät ole enää kaukaista tulevaisuutta, vaan ensimmäisiä alkaa jo olla kehitteillä, voi kohtalaisella varmuudella sanoa että läpimurron tekevä protokolla ei ole osittaiseen luottamukseen perustuva.

120 views0 comments
bottom of page