top of page

KRYPTOKEISARIT

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

4. Iotan uusi konsensus ehdotus ja nykyinen Coordicide ratkaisu Shimmer

Updated: Jun 11, 2020


//Huom! Iotan teknologinen roadmap ja visio on osin muuttunut tekstin kirjoitushetkestä. Tätä tekstiä ei ole päivitetty, joten teksti saattaa sisältää selvästi vanhentunutta ja täten virheellistä tietoa. Suunnitelmana on päivittää teksti, kun aikataulu sallii. Kiitos ymmärryksestä.//


Hans Moog kohautti hiljattain esittelemällä uuden ehdotuksen Iotan konsensusmekanismiksi ja ehdotus oli esitetty harvinaisesti selkeällä blogi postaus sarjana matemaattisen paperin sijasta. Iotaan sijoittavan kannattaa lukea blogipostaukset sillä suht monimutkainen asia on siinä esitetty erinomaisen ymmärrettävästi. (mikä tarkoittaa että ehkä jo kolmannella luku kerralla saattaa päästä jyvälle). Tässä linkki blogiin: https://medium.com/@hans_94488

Kuitenkin ajattelin kirjoittaa aiheesta lyhyesti suomeksi, keskittyen ensiksikin hieman laajemmin siihen miten ratkaisu suhtauu aiempiin ratkaisuihin ja sen jälkeen siihen mitä tapahtui esittelyn jälkeen. Tämä teksti pohjaa aiempiin teksteihin joten kannattaa ensin lukea Iotan esittely, Iotan tekniikka ja Mitä on kryptosijoittaminen tekstit, sekä katsoa jokin YouTube video siitä miten Tangle (=IOTA:n DAG verkko) toimii. Käyn siis ensin läpi aiempaa uutta konsensusehdotusta Shimmer:iä. Hanssin konsensus ehdotus ei tule korvaamaan Shimmeriä lähiaikoina, vaan ensin IF:n tutkijatiimi viimeistelee Shimmerin tutkimukset, ja vasta tämän jälkeen aloittaa edes tarkastelemaan tarkemmin Hanssin ehdotusta.

Aiemmin muilla kryptovaluutoilla on ollut monenlaisia konsensusmekanismeja. Lohkoketjuilla konsensus toimii niin että vuorotellen joku louhijoista saa toimia konsensuksen diktaattorina ja lisätä vuorollaan oman palikkansan ketjun päähän. Mikäli muut louhijat jatkavat tästä palikasta palikka hyväksytään konsensukseksi. Lohkoketjut kisaavat useimmiten laskentatehosta ja tämän vuoksi tällaisessa konsensuksessa käytetään termiä Proof of Work (PoW).


Osassa kryptovaluutoissa käytetään demokraattisempaa tapaa muodostaa konsensus esimerkiksi äänestämällä. Äänestyksen ongelmana on mm. se että jos jokaisen noden täytyy keskustella jokaisen muun noden kanssa ja kysyä muiden mielipidettä, on konsensuksen muodostamien sitä työläämpää mitä useampi node verkossa on. Lisäksi äänestykseen pohjautuvan konsensuksen tulisi pystyä mm. torjumaan hyökkäys missä hyökkääjä naamioituu useaksi nodeksi ja yrittää sillä keinoin saada itselleen voimakkaamman vaikutusmahdollisuuden. Aiempia ratkaisuja tälle naamioitumishyökkäykselle on mm. rajaamalla nodet luotettuihin tahoihin (kuten Librassa tai Ripplessä). Yksi tapa on myös pakottaa jokaisen äänestäjän laittamaan peliin rahaa tietty summa, jolloin se että luo "tyhjästä" tuhansia nodeja maksaa hyökkääjälle paljon. Joskus efektiä voidaan vielä vahvistaa sillä että hyökkääjäksi havaittu node menettää rahansa. Tällainen valuuttaan pohjaava konsensus on nimeltään Proof of stake eli PoS. (Ensimmäinen PoS on ilmeisesti Cfb:n eli Sergey Ivancheglo keksimä. Cfb on yksi Iotan perustajajäsenistä ja tätä mekanismia käytettiin Iotaa edeltävässä verkossa. Kuitenkaan PoS ei aivan sellaisenaan sovellu IoT maailmaan missä yksittäisillä IoT laitteilla ei yleensä riittävästi valuuttaa osallistuakseen konsensukseen. Myös ongelma on miten rangaista hyökkääjä nodeja? Jos rangaistuksena menettää rahaa, se raha häviää tai kuka sen saa?)


Hajautetussa verkossa nodella ei ole mitään absoluuttista tapaa varmistua siitä että useampi muu node ei ole yhden laitteen esittämä. Siispä ainoa tapa estää em. hyökkäys on laittaa nodet kilpailemaan jostain resurssista joka on niukkaa. Laskentatehon (PoW) ja itse kryptovaluutan (PoS) lisäksi ehdotettuja ratkaisuja on esimerkiksi kaistalaajuus (Network bound proof of work = NbPoW), mitä IF:n tutkijaryhmä on myös tutkinut. Kuitenkin vain kaistalaajuuteen pohjaava ratkaisu toimii vain silloin kun kaistalaajuus on saturoitunut, eli käytännössä vain hyvin pitkälle viedyssä IoT maailmassa. Muulloin resurssi ei ole niukka ja riitä aiheuttamaan riittävää kilpailua. NbPoW on siis epävakaa ja vaikeasti ennakoitava. Muita ehdotuksia on mm. Proof of Location, jossa laitteen on osoitettava että se on tietyssä sijainnissa. Tällainen voi suhteellinsen helposti toimia IoT maailmassa ja mesh-verkossa, mutta internetissä on vaikeampaa osoittaa että laitteen sijainti ei ole "tyhjästä" luotu. IF on esitellyt aikaisemmin suhteellisen yksinkertaisen ratkaisun joka yhdistää näitä kahta ja kulkee nimellä Azimuth. Siinä mesh-verkossa oleva laite kommunikoi toisen laitteen kanssa ja huomioi mistä suunnasta toisen laitteen kommunikaatio tulee. Sitten luodaan keinotekoinen rajoite kaistalaajuudelle kustakin suunnasta tulevien viestien suhteen. Yhdistetään siis NbPoW ja PoL. Tässä ratkaisussa pystytään estämään ettei yksittäinen laite spämmää verkkoa täyteen, mutta se ei siis ole konsensusmekanismi itsessään, ainoastaan keino tunnistaa mesh-verkossa että laite ei naamioidu useaksi nodeksi. Konsensus mekanismi määrää lisäksi sen kuinka suuri äänivalta kenelläkin nodella on. Vaikea sanoa voisiko Azimuth pohjalle rakentaa konsensusmekanismin joka toimisi mesh-verkoissa, mutta toisaalta laajalle levinneet mesh-verkot ovat muutenkin vielä aikalailla tulevaisuuden teknologiaa. Tässä linkki yksinkertaiselle selitykselle Azimuthista.


Mutta palataan vähän lähemmäksi. IOTA:n edellinen uusi konsensus (Hans:in ehdotusta edeltävä) on siis nimeltään Shimmer ja se toi ajatteluun muutaman uuden ajatuksen. Ensinnäkin ymmärrettiin että kilpaillun resurssin ei tarvitse suoraan olla yhteydessä reaalimaailmaan. Shimmer käyttää täysin keksittyä resurssia nimeltään"mana" ja sen pohjalta määritetään kuinka suuri äänivalta kullakin nodella on verkossa. Kun resurssi luodaan tyhjästä sille voidaan luoda mitä tahansa haluttuja ominaisuuksia ja tämän vuoksi tarjoutuu paljon eri tapoja optimoida ratkaisua. Ymmärrettiin myös että jotta resurssi sopisi hyvin konsensuksen pohjaksi sen pitäisi olla vaikeasti kerättävissä, mutta helposti menetettävissä mikäli toimii verkon periaatteita vastaan (=yrittää hyökätä verkkoon). Näin ollen hyökkääjä menettää nopeasti valtansa silloin kun hyökkäys paljastuu, ja lisäksi hyökkäys tulee hyökkääjälle kalliimmaksi. Mana on osittain linkitettynä itse kryptovaluuttaan niin että ne jotka hallinnoivat suurimpia määriä valuuttaa keräävät myös eniten manaa. Mana ei kuitenkaan ole sama kuin PoS vaan on vain tietyllä tapaa siihen linkitetty. Sinulla voi siis olla paljon Iotaa ilman yhtään manaa. Manasta myöhemmin lisää.


Shimmerissä on useita eri mekanismi jotka tekevät verkosta turvallisemman. Monet mekanismit on tarkoitettu torjumaan juuri tietyn tyyppistä hyökkäystä. Mekanismit voidaan jaotella kolmelle eri tasolle. Ensimmäinen taso on kommunikaatiotaso (gossip-layer), joka tarkoittaa sitä miten eri nodet linkittyvät keskenään ja välittävät keskenään tietoa. Toinen taso on Tangle joka siis tarkoittaa sitä miten nodet tallentavat datan ja järjestävät sen. Kolmas taso on konsensus, mikä tarkoittaa sitä miten nodet valitsevat kahdesta ristiriitaisesta tilisiirrosta sen joka jää voimaan yleisenä verkon totuutena.

Kommunikaatiotaso (gossip layer) muodostuu Shimmerissä niin että jokainen node on yhteydessä kahdeksaan muuhun nodeen. Tieto esim. uusista tilisiirroista välittyy nodelta toiselle kunnes kaikki tietävät uudesta tapahtumasta. Yksittäinen node ei siis keskustele kaikkien muiden noden kanssa, vaan nodet muodostavat verkkomaisen kuvion. Yksi tapa hyökätä yksittäiseen nodeen on ympyröidä tämä hyökkääjän nodeilla ja eristää noden tiedon saanti muusta verkosta. Tällöin hyökätty node saa kaiken tiedon vain hyökkääjän kautta ja on täysin sen armoilla. Shimmerissä on mekanismi joilla tehdään mahdollisimman vaikeaksi tehdä tällainen hyökkäys.


Mekanismi toimii (tiivistetysti) seuraavasti: Noden pariutuu vain sellaisen noden kanssa joka on "sijainniltaan" lähimpänä. Tämä ei siis tarkoita fyysistä sijaintia, vaan "sijainti" verkossa määräytyy kolmessa eri ulottuvuudessa x,y,z. Yksi akseli on manan määrä, yksi akseli on julkisesti näkyvillä muille nodeille mutta vaihtuu säännöllisin väliajoin ja yksi akseli on salattu (ja myös ajoittain vaihtuva). Node siis pariutuu toisen noden kanssa joka on mahdollisimman lähellä tässä 3d "tilassa". Näin olle korkean manan omaavat nodet muodostavat oman porukkansa. Valitun noden lähelle pääseminen tarkoittaa että pitää olla ensinnäkin saman verran manaa, mutta lisäksi täytyy sijaintiaan vaihtamalla "louhia" uusia salattuja sijainteja ja yrittää muodostaa yhä uudelleen yhteyttä kyseiseen nodeen sillä koskaan ei tiedä missä toinen node on salatulla akselilla. Kuitenkin koska sekä salattu että julkinen sijainti muuttuu väliajoin, node voi päättää hyväksyä vain sellaisia nodeja parikseen jotka ovat muuttaneet julkista sijaintiaan ennen kuin hän itse. Näin ollen sijaintia louhivaa nodea ei oteta pariksi koska hänen sijaintinsa on liian tuore. Julkista sijaintia käytetään siis näyttämään että node toimii verkon sääntöjen mukaisesti ja salattua sijaintia käytetään suojaamaan omaa nodea. Gossip tasoon liittyy lukuisia muita eri hyökkäys taktiikoita ja monia eri keinoja estää tällaiset hyökkäykset.


Tangleen kohdistuvat hyökkäykset liittyvät lähinnä siihen että yritetään sotkea datan järjestäytyminen ja hidastaa verkkoa. Tähän liittyy vahvasti se algoritmi jolla nodet valitsevat sijainnin mihin haluavat linkittää oman tilisiirtonsa. Nodet saavat linkittää tilisiirtonsa mihin haluavat, mutta tavoitteena on löytää algoritmi joka hyödyttää sekä nodeja itseään eniten niin että kaikki haluavat käyttää algoritmia, mutta samalla tekee verkosta nopean, turvallisen ja hyvin järjestäytyneen.


Itse konsensusmekanismi on se mikä saa useimmiten suurimman huomion kryptovaluutoissa sillä se useimmiten määrittää eniten protokolla nopeutta. Shimmerissä konsensusmekanismi on äänestykseen perustuva (Fast probabilistic consensus = FPC) , mutta se ei ole absoluuttinen kuten on yleensä totuttu vaan todennäköisyyteen pohjaava. Käytännössä ristiriitatilanteessa (eli kun esim. 500 iotaa siirretään tilitä A jossa on 500 iotaa yhtä aikaa sekä tilille B että C), node valitsee aluksi kannattavansa sitä tilisiirtoa minkä on havainnut ensin. Tämän jälkeen node kysyy satunnaisesti tietyltä määrältä muita nodeja heidän mielipidettään ja asettaa oman mielipiteensä näiden mukaiseksi. (Node siis kysyy satunnaisilta muilta nodeilta verkossa mielipidettä, ei vain niiltä joihin on linkittynyt kommunikaatiokerroksessa). Tämä toistetaan riittävän monta kertaa kunnes verkossa vallitsee konsensus (lähes kaikki ovat samaa mieltä). Jo muutaman kierroksen jälkeen tilastollisesti pienikin ero kasvaa suureksi. Lopulta jää yleensä vain hyökkääjä joka ei hyväksy uutta konsensusta ja hän joko vaihtaa mielipiteensä konsensukseen tai joutuu eroamaan verkosta. Mana ilmeisesti vaikuttaa ainakin siihen kuinka painavasti noden mielipide vaikuttaa verkossa, ja mahdollisesti manaa voidaan myös käyttää rangaistuskeinona mikäli joku äänestää toistuvasti selvästi poikkeavasti muista. Manan käyttö konsensusmekanismissa on osittain vielä avoin ja pian julkaistava White paper päivitys tuo tähän lisää selvyyttä. Nykyinen white paper on puoli vuotta vanha ja sen jälkeen ratkaisu on kehittynyt paljon.


Yllä kuvattuun konsensukseen voisi hyökätä kohtalaisen helposti yrittämällä pienellä määrällä nodeja äänestää aina sitä puolta joka on häviämässä ja tällä tavoin jumittaa konsensusta. Tämä vuoksi verkkoon on laadittu satunnaiselementti niin että joka kierroksella se piste josta verkko alkaa kaatua toisen vaihtoehdon kannalle muuttuu ja tämä piste saadaan tietää vasta kun äänet on annettu. Asiaa voi havainnollistaa niin näin: Kuvittele että yrität tasapainottaa sauvaa poikittain sormen päällä. Mikäli joka sekunti sauvan tasapainopiste vaihtaisi paikkaa olisi tasapainotus lähes mahdotonta. Mikäli joutuisit lisäksi ensin päättämään mihin suuntaan lähdet korjaamaan tasapainoa ja vasta sitten saisit tietää mihin tasapainopiste hyppäsi olisi sauvan tasapainottaminen lähes mahdotonta. FPC on erittäin vahvasti matemaattisesti todistettu ja nykyään voidaan olla jo aika varmoja että konsensus itsessään toimii. Shimmeriin liittyy vielä paljon muuta mitä en yllä sivunnutkaan mm. kokonaan toinen konsensus mekanismi vaihtoehto, jonka voi mahdollisesti yhdistää FPC:een nimeltään Cellular Automata (CA). Tämä toimii vähän kuin FPC, mutta nodet kysyvätkin mielipidettään vain lähinaapureiltaan ja äänestystä ei ole rajattu kierroksiin vaan se tapahtuu synkronoimattomasti eli sitä mukaa kun nodet ehtivät. Tämä ei ilmeisesti yksistään tuo riittävää luotettavuutta verkkoon mutta voi mahdollisesti nopeuttaa konsensuksen saavuttamista. CA on siis vielä paljon nopeampi kuin FPC, mutta se on hyvin riippuvainen verkon topologiasta (eli siitä miten nodet ovat linkittyneet keskenään). CA on myös huomattavasti vaikeampaa todistaa matemaattisesti ja sen todistukset perustuvat lähinnä simulointeihin. Se mikä osuus CA:lla on lopullisessa konsensusmekanismissa selviää whitepaper päivityksessä. Käytännössä mikäli Shimmer kiinnostaa enemmän voisin suositella odottamaan tuota päivitystä ja sen jälkeen perkaamaan paperin huolella ja ajatuksella läpi.


Siinä oli kuvattu joitain keskeisiä osuuksia Shimmeristä. Shimmeriä yritetään saada Q1 2020 testinettiin. Todennäköisesti myöhemmin vuonna 2020 saadaan huolella modulaarisesti suunniteltu ja viimeisen päälle optimoitu versio "Bee" testinettiin ja 2020-2021 vuodenvaihteessa todennäköisesti validointi on valmis ja pääverkko siirretään Bee:hen. Bee on kirjoitettu Rust kielellä joka on tullut viime aikoina suosituksi kryptovaluuttojen keskuudessa. Rust ei salli monia hutilointeja mitä esim. C-kieli sallii, mutta on silti suorituskyvyltään lähellä C:tä. Mobulaarisuus on myös muotia kryptomaailmassa ja sillä pyritään tekemään ohjelman päivittiäminen tulevaisuudessa helpommaksi. Bee ohjelmoidaan erittäin tarkan ennakkoanalyysin ja suunnittelun kautta.




Mihin Shimmer sitten pystyy? Ainakin kymmeniin tuhansiin siirtoihin sekunnissa jo pelkällä versiolla jota ei oltu optimoitu. Käytännössä hajautettujen DLT verkkojen maksiminopeus nykyään on alle 100 siirtoa sekunnissa, ja joillain vähemmän hajautetuilla DLT:llä muutamia tuhansia siirtoja. Näissä tuhansia siirtoja käsittelevissä verkoissa verkon päätäntävalta on jotenkin keskitetty ja useimmiten myös nodet ovat ainakin osittain luotettuja tahoja. Visa pystyy käsittelemään noin 4000 tilisiirtoa sekunnissa vaikka on hyvin vanhaa teknologiaa. Useampi kymmen tuhatta tilisiirtoa on riittävästi useammaksi vuodeksi eteenpäin ja valtava hyppäys nykyiseen muutamaan kymmeneen. Käytännössä vihdoin Iotan pohjalle voidaan rakentaa paljon eri tuotteita, ja täysin ilmaiset, luotettavat ja nopeat tilisiirrot mahdollistavat internetin kautta toimivien IoT ratkaisujen luomisen. Lisäksi jatkossa on suunniteltu shardin ratkaisua joka luo edelleen valtavan hypyn suorituskykyyn. (Shardin tarkoittaa verkon jakamista pieniin osiin, niin että tietyn osan nodet säilyttävät oman osansa verkon tiedosta. Tästä huolimatta osien tulisi keskustella keskenään ja hyökkääjälle tulisi olla edelleen vaikeata vaikuttaa yhden verkon osan konsensukseen). Epäselvää vielä on voiko Shimmeriä yhdistää shardingiin ja asiasta on eriäviä mielipiteitä. Iotan shardin tutkimuksesta on annettu vain hyvin vähän tietoa.


Mihin Shimmer sitten ei pysty? Vaikka shimmer vähentää ylimääräistä kommunikaatiota valtavasti todennäköisyyteen pohjaavalla konsensus mallillaan, nodet joutuvat silti lähettämään suuren määrän viestejä yhtä konsensusta kohden. Tämä siis hidastaa verkkoa ja toisaalta mahdollistaa tulevaisuudessa sen että joku voi kehittää vielä paremman ratkaisun. Lisäksi mikäli verkko jostain syystä jakautuu täysin kahteen eri osaan, shimmer ei pysty palauttamaan osia yhteen. Tämä ei ole kovin suuri puute nyt, mutta vaikeuttaa ilmeisesti shardin ratkaisun toteutusta. Suurin puute Shimmerissä on kuitenkin se että Shimmer ei sovi mesh-verkkoihin. (=paikallinen verkko)


Shimmerissä noden täytyy pystyä kysymään muilta satunnaisilta nodeilta heidän mielipidettään mikä on helppoa internetissä, mutta mesh-verkossa noden kommunikaatiomahdollisuudet rajoittuvat jo fyysisesti niihin nodeihin jotka ovat tarpeeksi lähellä tavoittaakseen noden signaalit. Aiemmissa teksteissä on käsitelty sitä miksi IoT maailma ei pärjää pelkällä internetillä ja miksi IoT maailman tuottama data ei vain yksinkertaisesti mahdu siirtymään muuta reittiä kuin mesh-verkkojen kautta.

Tähän voisi todeta että IoT mesh-verkot ovat vielä hyvin kaukana, ja jos Shimmer riittää nykypäivään niin onko asialla juuri nyt mitään merkitystä. Kuitenkin mikäli haluat rakentaa nykypäivänäkin IoT laitteen joka toimii esim. akulla tai aurinkopaneelilla laitteen energian kulutus kiinnostaa kovasti. Tällöin haluat todennäköisesti tehdä laitteesta ASIC pohjaisen (eli tilata tehtaalta sirun joka on valmistettu poistaen kaikki ylimääräinen. Tämä siru toteuttaa vain ja ainoastaan annettua tehtävää ja saavuttaa sillä monin kertaisen energiasäästön.). Kuitenkin mikäli on näköpiirissä että Iota vaihtaa konsensustaan muutaman vuoden sisään, ei ASIC sirun toiminnan päivittäminen myöhemmin ole enää fyysisesti mahdollista. Ennen kuin IoT laitteiden vallankumous saadaan kunnolla käyntiin (ja myös mesh-verkot sun muut), tarvitaan DLT-ratkaisu joka on niin lähellä täydellisyyttä että mikäli joku keksii muutaman vuoden päästä paremman, sillä ei ole merkitystä. Tarvitaan siis ratkaisu joka on riittävän nopea, riittävän turvallinen ja riittävän kevyt, että voidaan unohtaa koko DLT trilemma ja julistaa voittaja. Jos joku keksii vielä nopeamman, tai kevyemmän tekniikan se ei kiinnosta niin paljoa että maailma vaihtaisi tähän ratkaisuun, sillä DLT trilemmaa ei enää ole. IoT laitteiden leviämistä ei silloin enää rajoita DLT tekniikan kypsymättömyys. Tietysti vuosikymmenen aikana kilpaileva tekniikka voi levitä, mutta sinä aikana kun IoT laite on oletettu toimivan voidaan myös olettaa että sen käyttämä standardi ei korvaudu uudella. Silloin ei ole ongelmaa tehdä laitteita jotka käyttävät tätä standardia ja ovat ASIC pohjaisia.

Ja tällä (pitkähköllä) alustuksella päästään Tangle Multiverseen.


Hypetyksen jälkeen täytyy heti aluksi todeta että Tangle Multiverse (TM) on ehdotus, vailla vahvaa tieteellistä analyysiä ja simulaatiokokeita. Se voi hyvin osoittautua toimimattomaksi. TM toiminta on hyvin esitetty em. blogi postauksissa joten käyn sen toimintaa läpi vain hyvin lyhyesti.


Ensinnäkin kyse on konsensusmekanismista, eli se korvaa FPC:n mikäli se todetaan toimivaksi. Lisäksi se muuttaa paljon Tanglen rakennetta. Se voi lisäksi vaatia esimerkiksi gossip layer suojamekanismien muuttamista. TM ei ole erikseen kolmatta konsensuksen tasoa (vrt. FPC) vaan konsensus muodostetaan Tangle tasolla. Aivan Iota:n kehityksen alkutaipaleella ajateltiin että konsensus muodostuu "itsestään" Tangle tasolla, mikäli Tanglen järjestäytymisen algoritmit saadaan kohdilleen ja lisäksi on riittävän suuri määrä tilisiirtoja sekunnissa. Tämä oli periaattessa totta, mutta silloin enemmistön tilisiirroista tulisi olla muiden kuin hyökkääjien lähettämiä, mikä osoittautui epärealistiseksi. TM:ssa on palattu aiempaan ajatukseen mutta löydetty keino sivuuttaa tuo aiempi ongelma. TM:en on luotu niin ikään manaan pohjaava konsensusmalli jossa konsensus muodustu "itsestään" laitteiden tilisiirtojen myötä (=virtual voting). Siinä on lisäksi muokattu Tanglen rakennetta niin että verkko käyttäytyy konfliktin tullessa eri lailla kuin nyt. Nykyään konflikti saa Tanglen DAG rakenteen haarautumaan kahteen haaraan, ja se haara joka häviää konsensuksessa hylätään Tanglesta. (Haara voi jäädä noden muistiin, mutta se ei vaikuta enää Tanglen kehittymiseen). TM:ssa tämä rakenne on muutettu niin että konfliktin tullessa Tangle "kopioidaan" kahteen eri versioon. Tilisiirrot jotka linkittyvät haaroihin voivat joko puoltaa tai vastustaa tilisiirtoa, ja siten mikäli tilisiirto vastustaa edellistä, se voi jäädä itse voimaan mikäli vastustettu tilisiirto häviää konsensuksen. Kopioiminen on vain matemaattinen malli ja itse dataa ei tarvitse kopioida, joten malli on hyvin energiaa säästävä. Asiaa on ehkä tässä turha kuvata enempää koska Hans on jo tehnyt työn ja selittänyt konsensuksensa paremmin kuin tässä mitenkään pystyisin. Siis lue blogi.


Joka tapauksessa TMon mekanismiltaan erittäin yksinkertainen konsensus. TM ei ole samalla lailla todennäköisyyteen pohjaava kuin Shimmer, vaan siinä jokaisen ääni on eksaktisti kirjoitettu Tangleen tilisiirron muodossa. TM on siten erittäin sopiva myös mesh-verkkoihin ja shardingiin. Shimmerissä verkkoa hidasti konsensukseen vaadittava nodejen äänten vaihto, TM:ssä äänestykseen vaaditaan 0 ääntä/node, sillä äänestys tapahtuu tilisiirtojen kautta. Hans ehti simuloida konsensustaan ennen blogin kirjoittamista ja sai tuloksena yli puolimiljoonaa tilisiirtoa sekunnissa ilman shardingia ja ilman optimointia. Energiatehokkuutta ajatelleen TM on hyvin lähellä täysin optimaalista konsensusmekanismia. Yksinkertaisesti sanottua mikäli TM toimii Iota on ratkaissut DLT trilemman. Ei kuitenkaan vain ratkaissut sitä, vaan sen lisäksi Iota on ratkaissut trilemman niin lähellä täydellisyyttä olevalla tavalla että parempi ratkaisu ei enää voi olla merkittävästi parempi.


Koska hypetys oli ymmärrettävästi kovaa, oli mielenkiintoista seurata keskustelua joka seurasi TM julkistamisesta. Ensinnäkin Iotan tutkimusryhmän johtaja Sergey Popov (Iotan perustaja jäsen) muistutti heti alkuun että ehdotus vaatii paljon analysointia ja tutkimusta ennen kuin voidaan arvioida sen turvallisuutta käytännössä. Voi hyvin olla että tarkempi tutkimus osoittaa ettei malli toimi. Samalla hän totesi että: "Ensin viimeistellään Shimmer ja sitten tutkitaan TM tarkemmin." Hans toi esityksensä hieman tarkoituksellisestikin provosoivaan tyyliin yrittäen saada kommunityn mukaan ratkaisun analyysiin, ja Sergey pyrki rauhoittamaan hypeä löytämällä konsensuksesta heikkouksia. Itse konsensuksesta ei tässä alkukähinässä todettu heikkouksia, mutta kritiikki kohdistui manan käyttöön konsensuksen pohjana. Muutama kommunity jäsen taho alkoi jo todistamaan matemaattisesti TM pätevyyttä konsensusmekanismina.


Suurin avoin tutkimuskysymys oli alkuvaiheessa siinä että mana on Shimmer ratkaisussa gossip kerroksessa välittyvä ja säilyvä ominaisuus. Nodet siis viestivät keskenään siitä kuinka paljon kenelläkin on manaa, ja mikäli joku todistetusti on hyökkääjä, verkko viestii tämän tiedon kaikille nodeille. Nodet osaavat silloin vähentää kyseisen noden manaa systeemissä sovitun määrän. Tämä johtaa epätäydellisessä verkossa kuitenkin siihen että osa nodeista voi arvioida tietyn noden määrän eri suuruiseksi. Satunnaisuuteen pohjaavassa FPC algoritmissä tällä ei ole merkitystä sillä koska kaikki kysyvät satunnaisesti toistensa mielipidettä satunnaisuus tasaa manan paikalliset vaihtelut ja algoritmi keikahtaa joka tapauksessa jompaan kumpaan suuntaan. (Tämä siis tapahtuu vain silloin mikäli konfliktissa olevat tilisiirrot on lähetetty lähes samaan aikaan. Mikäli vanha ja uusi tilisiirto ovat ristiriidassa nodet suosivat jo lähtökohtaisesti sitä tilisiirtoa joka tehtiin ensin.)

Kuitenkin TM on eksaktimpi konsensusmekanismi joten paikallisilla vaihteluilla voi olla enemmän merkitystä ja hyökkää voi onnistua käyttämään näitä vaihteluita hyödykseen. Onko näin, on suuri kysymys ja keskustelussa se oli merkittävin kritiikki TM suhteen. Näin siis mikäli TM aikoo pohjautua samalle manalle mitä Shimmer käyttää. Hans myös alkoi pohtia keskustelussa että olisiko mahdollista suunnitella Mana niin ettei se ole vain gossip kerroksen ominaisuus ja tätä tekstiä kirjoittaessa tuli jo ensimmäinen ehdotus uudesta manasta joka voitaisiin sitoa Tangleen niin että kaikki näkisivät samasta vertailupisteestä sen kuinka paljon kenelläkin on manaa ja koko ongelman poistuisi. Tässä ratkaisuehdotuksessa Hans käytti nodejen paikallisia kelloja niin että joka transaktiossa kirjattiin noden paikallisen kellon kellonaika ja sen pohjalta laskettiin transaktiosta kertyvä mana. Tätä tietoa on helppo valehdella, mutta muutamilla säännöillä saatiin transaktiot huomioimaan vain ne tilisiirrot joidenka kellot ovat noden itsensä mielestä järkeviä ja näin ollen hyökkääjä ei kellonaikaa valehtelemalla saavuta sen suurempaa hyötyä kuin kirjaamalla oikean kellonajan. Tästä on lisätietoa täällä.


Siinä oli siis analyysiä siitä mitä uusi konsensus ehdotus voi tarkoittaa. Joka tapauksessa vaikka itse konsensusehdotus ei toimisi, tuo uusi tapa järjestää Tangle voi tehdä Iotasta huomattavasti paremman järjestelmän. Uusi datastruktuuri voidaan todennäköisesti yhdistää FPC:en ja ilmeisesti juuri nyt tätä testataan parhaillaan. Nopeuden lisäksi uudella datastruktuurilla Tangle ei enää muodosta konfliktien vuoksi haaroja joiden johdosta protokollan mukaisia "rehellisiä" tilisiirtoja joudutaan torjumaan. Aiemmin mikäli "rehellinen" siirto linkittyi konfliktin häviävän osapuolen haaraan se jouduttiin hylkäämään haaran mukana sillä se linkittyi konfliktin väärälle puolelle.





Koska TM on pääverkossa? Aikataulusta voi arvioida sen verran että Shimmer vie tutkimusryhmän ajan ainakin ensi vuoden alkuun täysin. Sen jälkeen voi osa ajasta järjestyä TM tutkimukseen. Shardin tulee todennäköisesti linkittymään TM mikäli TM toimii. joten molempien päivittäminen pääverkkoon yhtä aikaan on järkevää (ottaen huomioon validointiin tarvittava pitkä aika). Optimistinen Elon Musk tyylinen arvio on että mikäli ei vakavampia ongelmia TM suhteen tule esiin, voi tutkimusvaihe viedä vuoden siitä kun pääsee alkuun, ja sen jälkeen koodaus voi olla hyvin lyhyt (esim. 6kk tai jopa alle). Tämän jälkeen validointi voi hyvin viedä 9-12kk. Hyvin lonkalta heitettyjä aikatauluja, mutta jos jotain pitää arvioida optimistisesti niin näin. On myös hyvä huomioida että TM on jo ollut testiverkossa, siis ennen kuin Shimmer. Tästä ei pidetty isoa ääntä sillä Hans halusi vain testata miten TM toimii käytännössä. Tämä lähinnä todistaa sen että TM on erittäin yksinkertainen ja nopea koodata.


Joka tapauksessa selvää on että Iotaa seuratessa kehitysken nopeus pääsee jatkuvasti yllättymään. Kuvittelin TM tyyppisen lopullisen ratkaisuehdotuksen saavuttamiseen kuluvan helposti vielä yli 5v, mutta yllättäen ensimmäinen ehdotus joka ratkaisee kaiken kerralla putkahtaa ulos. Erittäin mielenkiintoista mitä tapahtuu seuraavan vuoden aikana kun TM tarkempi analyysi alkaa.


Siihen päättyi tähän asti suunniteltu "Iotaa aloittelijalle" kirjoitussarja. Seuraavaksi tulisi pureutua tarkemmin muihin suurimpiin kryptovaluuttoihin.

Lopuksi vielä pieni härnäävä laskelma. Pitääkö nyt siis lähteä myymään taloaan ja ostelemaan kryptovaluuttoja?


Iotan arvo oli kirjoitus päivänä 6.12.2019 0,20€/miota. Market cap 564 miljoonaa. Bitcoinin arvo on 7413€ ja market cap on 134 miljardia. Market cap on siis 238 kertainen.

Bitcoinilla voi vain spekuloida ja se ei tuo juuri taloudellista lisäarvoa maailmaan. Mikäli Iota onnistuu lopullisesti ratkomaan kryptotrilemman ja 10v kuluttua joka puolella on IoT laitteita jotka kommunikoivat Tanglen välityksellä on minusta turhaa kysyä voiko Iota nousta yhtä suureksi kuin Bitcoin.


Voi olla että tulevaisuudessa suurin osa taloudesta ja arvon vaihdosta toimii ihmisestä riippumatta koneiden välillä. Ei kuitenkaan katsota asiaa nyt niin, vaan ajatellaan hyvin maltillisesti asiaa. Jollain kohtuu pitkällä, mutta pitkäjänteiselle sijoittajalle kohtuullisella aikataululla Iotan arvo voi nousta vaikkapa 4x Bitcoinin nykyarvoon nähden. (Bitcoin maksimi arvo on ollut 20 000, siis noin 3x nykyarvoon nähden). Se tarkoittaisi 952x nousua Iotan nykyarvoon nähden.


Kyseessä on erittäin suuren riskin sijoitusta, joten en missään nimessä suosittele sijoittamaan enempää kuin voit varmasti hävitä. Toisaalta ei myöskään ole tarvetta sijoittaa mahdottomia summia ellei välttämättä pyri Forbes listoille. Ajattelen itse asiaa pettymyksen minimoimisen kautta. On joku tavoite jonka saavuttamisen jälkeen ei taloudellinen vaurastuminen tuo juuri lisää onnellisuutta elämään. Mikäli sen saavuttaa ei kovin paljoa voi harmittaa ettei laittanut enempää. Toisaalta on joku summa rahaa minkä voi menettää tällaisiin spekulatiivisiin korkean riskin kohteisiin, mikäli muutoin sijoittaa järjevästi ja pitkäjänteisesti.

61 views0 comments
bottom of page