Johdanto
Skaalautuvuus viittaa laajasti järjestelmän kykyyn kasvaa vastaamaan kasvavaan kysyntään. Tietojenkäsittelyssä voit parantaa koneesi suorituskykyä päivittämällä sen laitteiston, jotta se on nopeampi suorittamaan tiettyjä tehtäviä. Kun puhumme lohkoketjujen skaalautuvuudesta, tarkoitamme niiden kapasiteetin kasvattamista, jotta ne voivat käsitellä useampia transaktioita.
Bitcoinin kaltaisilla protokollilla on monia vahvuuksia, mutta skaalautuvuus ei ole yksi niistä. Jos Bitcoinia ajettaisiin keskitetysti omistetussa tietokannassa, järjestelmänvalvojan olisi suhteellisen helppo lisätä nopeutta ja suorituskykyä. Mutta Bitcoinin arvolupaus (eli sensuurin vastustuskyky) edellyttää, että monet osallistujat synkronoivat kopion lohkoketjusta.
Lohkoketjun skaalautuvuuden ongelma
Bitcoin-solmun ylläpitäminen on suhteellisen halpaa, ja jopa yksinkertaiset laitteet voivat tehdä sen. Mutta koska tuhansien solmujen on pysyttävä ajan tasalla keskenään, niiden kapasiteetille on tiettyjä rajoituksia.
Ketjussa käsiteltävien transaktioiden määrälle on asetettu ylärajoja, jotta tietokanta ei kasvaisi liian suureksi. Jos siitä tulee liian suuri liian nopeasti, solmut eivät pysy perässä. Lisäksi jos lohkot ovat liian suuria, niitä ei voida välittää nopeasti koko verkolle.
Tämän seurauksena on syntynyt pullonkaula. Lohkoketjua voidaan pitää junana, joka lähtee tietyin väliajoin. Jokaisessa vaunussa on vain rajoitetusti paikkoja, ja lipun saamiseksi matkustajien on tehtävä tarjous paikan takaamiseksi. Jos kaikki yrittävät päästä junaan samanaikaisesti, hinta on korkea. Samalla lailla verkko, joka on tukossa odottavien transaktioiden vuoksi, vaatii käyttäjiä maksamaan korkeampia maksuja, jotta heidän transaktionsa sisällytetään hyvissä ajoin.
Eräs ratkaisu olisi tehdä vaunuista isompia. Tämä lisäisi paikkojen määrää, parantaisi suorituskykyä ja alentaisi lippujen hintoja. Ei kuitenkaan ole mitään takeita siitä, että paikat eivät vain täyttyisi kuten ennen. Vaunuja ei voi jatkuvasti laajentaa, aivan kuten lohkoja tai lohkon gas-rajoja ei voida skaalata äärettömästi. Jälkimmäinen tekee solmujen pysymisestä verkossa kalliimpaa, koska ne tarvitsevat kalliimpia laitteistoja pysyäkseen synkronoituna.
Ethereumin luoja Vitalik Buterin kehitti idean skaalautuvuuden trilemmasta kuvaamaan lohkoketjujen kohtaamaa haastetta. Hän teoretisoi, että protokollien on tehtävä kompromisseja skaalautuvuuden, turvallisuuden ja hajauttamisen välillä. Nämä ovat jonkin verran ristiriidassa keskenään – kun keskitytään liikaa kahteen ominaisuuteen, kolmas heikkenee.
Tästä syystä monet pitävät skaalautuvuutta ketjun ulkopuolella saavutettavana asiana, kun taas turvallisuus ja hajauttaminen tulisi maksimoida itse lohkoketjussa.
Mitä ovat ketjun ulkopuoliset skaalausratkaisut?
Ketjun ulkopuolinen skaalaus viittaa lähestymistapoihin, jotka mahdollistavat transaktioiden suorittamisen lohkoketjua paisuttamatta. Ketjuun liitettyjen protokollien avulla käyttäjät voivat lähettää ja vastaanottaa varoja ilman, että transaktiot näkyvät pääketjussa. Keskitymme seuraavaksi kahteen merkittävimpään edistysaskeleeseen tällä rintamalla: sivuketjuihin ja maksukanaviin.
Johdatus sivuketjuihin
Mikä on sivuketju?
Sivuketju on erillinen lohkoketju. Se ei kuitenkaan ole itsenäinen alusta, koska se on jollain tavalla sidottu pääketjuun. Pääketju ja sivuketju ovat yhteentoimivia, mikä tarkoittaa, että varat voivat virrata vapaasti yhdestä toiseen.
On olemassa useita tapoja varmistaa, että varat voidaan siirtää. Joissakin tapauksissa varat siirretään pääketjusta tallettamalla ne erityiseen osoitteeseen. Niitä ei oikeasti lähetetä – ne lukitaan sen sijaan tähän osoitteeseen, ja vastaava summa luodaan sivuketjussa. Suoraviivaisempi (vaikkakin keskitetty vaihtoehto) on lähettää varat säilyttäjälle, joka vaihtaa talletuksen sivuketjun varoiksi.
Miten sivuketju toimii?
Oletetaan, että ystävällämme Alicella on viisi bitcoinia. Hän haluaa vaihtaa ne viiteen vastaavaan yksikköön Bitcoinin sivuketjussa – kutsukaamme niitä sivukolikoiksi. Kyseinen sivuketju käyttää kaksisuuntaista sidontaa, mikä tarkoittaa, että käyttäjät voivat siirtää omaisuuttaan pääketjusta sivuketjuun ja päinvastoin.
Muista, että sivuketju on erillinen lohkoketju. Näin ollen sen lohkot, solmut ja vahvistusmekanismit ovat erilaiset. Saadakseen sivukolikkonsa Alice lähettäisi viisi bitcoiniaan toiseen osoitteeseen. Sen saattaa omistaa joku, joka sitten hyvittää Alicen sivuketjuosoitteeseen viisi sivukolikkoa sen jälkeen, kun hän on vastaanottanut bitcoinit. Vaihtoehtoisesti osoitteeseen voi liittyä jonkinlainen luottamuksen minimoima asetus, jossa sivukolikot hyvitetään automaattisesti sen jälkeen, kun ohjelmisto havaitsee maksun.
Alice on nyt muuttanut kolikkonsa sivukolikoiksi, mutta hän voi aina kääntää prosessin saadakseen bitcoininsa takaisin. Nyt kun hänen varansa ovat sivuketjussa, hän voi vapaasti käydä kauppaa tässä erillisessä lohkoketjussa. Hän voi lähettää sivukolikoita tai vastaanottaa niitä muilta, aivan kuten hän tekisi pääketjussa.
Alice voisi esimerkiksi maksaa Bobille yhden sivukolikon Binance-hupparista. Kun hän haluaa siirtää varansa takaisin Bitcoiniin, hän voi lähettää jäljellä olevat neljä sivukolikkoa erityiseen osoitteeseen. Kun transaktio on vahvistettu, neljä bitcoinia avataan ja toimitetaan osoitteeseen, jota hän hallitsee pääketjussa.
Miksi sivuketjuja käytetään?
Saatat ihmetellä, mitä järkeä tässä on. Miksi Alice ei vain käytä Bitcoin-lohkoketjua?
Vastaus on, että sivuketju voi pystyä asioihin, joita Bitcoin ei voi tehdä. Lohkoketjut ovat huolellisesti suunniteltuja kompromissijärjestelmiä. Vaikka Bitcoin onkin turvallisin ja hajautetuin kryptovaluutta, se ei ole suorituskyvyltään paras vaihtoehto. Vaikka Bitcoinin transaktiot ovat nopeampia kuin perinteiset menetelmät, se on silti suhteellisen hidas verrattuna muihin lohkoketjujärjestelmiin. Lohkoja louhitaan kymmenen minuutin välein, ja maksut voivat kasvaa merkittävästi, kun verkko on ruuhkautunut.
Tosin tämänasteinen turvallisuustaso ei välttämättä ole tarpeellinen pienien päivittäisten maksujen yhteydessä. Jos Alice maksaa kahvin, hänen ei ole mitään järkeä jäädä odottelemaan transaktion vahvistumista. Tämä estäisi jonoa liikkumasta, ja hänen juomansa olisi kylmä, kun hän saisi sen.
Sivuketjuja eivät sido samat säännöt. Itse asiassa niiden ei tarvitse edes käyttää työntodistemekanismia toimiakseen. Näissä ketjuissa voidaan käyttää mitä tahansa konsensusmekanismia, luottaa yhteen vahvistajaan tai säätää mitä tahansa määrää parametreja. Niihin voidaan myös lisätä päivityksiä, joita ei ole pääketjussa, niissä voidaan tuottaa suurempia lohkoja ja ratkaisut voidaan toteuttaa nopeasti.
Mielenkiintoista on, että sivuketjuissa voi olla jopa kriittisiä vikoja ilman, että tämä vaikuttaa taustalla olevaan ketjuun. Tämä mahdollistaa niiden käytön kokeilualustoina ja sellaisten ominaisuuksien käyttöönoton, jotka muuten vaatisivat verkon enemmistön yksimielisyyttä.
Edellyttäen, että käyttäjät ovat tyytyväisiä kompromisseihin, sivuketjut voivat olla olennainen askel kohti tehokasta skaalausta. Pääketjun solmujen ei tarvitse tallettaa jokaista transaktiota sivuketjusta. Alice voisi päästä käyttämään sivuketjua yhden Bitcoin-transaktion avulla, suorittaa satoja sivukolikkotransaktioita ja poistua sitten sivuketjusta. Mitä tulee Bitcoin-lohkoketjuun, hän on suorittanut vain kaksi transaktiota – yhden päästäkseen ketjuun ja yhden poistuakseen siitä.
Ethereumin plasma on samantyylinen, mutta siihen liittyy joitain suuria eroja. Saat siitä lisätietoja seuraavasta artikkelista: Mikä on Ethereum Plasma?
Johdatus maksukanaviin
Mikä on maksukanava?
Skaalautuvuuteen liittyen maksukanavat palvelevat samaa tarkoitusta kuin sivuketjut, mutta ne ovat pohjimmiltaan hyvin erilaisia. Sivuketjujen tapaan ne siirtävät transaktiot pois pääketjusta estääkseen lohkoketjua kasvamasta liikaa. Sivuketjuista poiketen ne eivät kuitenkaan vaadi erillistä lohkoketjua toimiakseen.
Maksukanava käyttää älysopimusta, jonka avulla käyttäjät voivat käydä kauppaa julkaisematta transaktioitaan lohkoketjuun. Tämä hoidetaan käyttämällä ohjelmistopohjaista sopimusta kahden osallistujan välillä.
Miten maksukanava toimii?
Suositun Lightning Networkin kaltaisissa malleissa kaksi osapuolta tallettaisi ensin kolikoita yhdessä omistamaansa osoitteeseen. Tämä on moniallekirjoitusosoite, joka vaatii kaksi allekirjoitusta varojen käyttämiseen. Niinpä jos Alice ja Bob loisivat tällaisen osoitteen, varoja voitaisiin siirtää pois vain molempien suostumuksella.
Oletetaan, että kumpikin tallettaa 10 BTC:tä osoitteeseen, jossa on nyt 20 BTC:tä. He voisivat helposti ylläpitää tasetta, joka alkaa sillä, että Alicella ja Bobilla on molemmilla 10 BTC:tä. Jos Alice haluaisi antaa Bobille kolikon, he voisivat päivittää taseen lukemaan, että Alicella on 9 BTC:tä ja Bobilla 11 BTC:tä. Heidän ei tarvitse julkaista näitä transaktioita lohkoketjuun, kun he jatkavat näiden saldojen päivittämistä.
Oletetaan, että kun transaktioiden julkaisun aika koittaa, Alicella on 5 BTC:tä ja Bobilla 15 BTC:tä. He voivat sitten luoda transaktion, joka lähettää nämä saldot osapuolten omistamiin osoitteisiin, allekirjoittaa sen ja julkaisee sen.
Alice ja Bob olisivat voineet kirjata taseeseensa kymmenen, sata tai tuhat transaktiota. Mutta mitä tulee lohkoketjuun, he ovat suorittaneet vain kaksi ketjun sisäistä toimintoa: yhden alkuperäisen rahoitustransaktion yhteydessä ja toisen saldojen uudelleenkohdentamisen yhteydessä. Näitä kahta lukuun ottamatta kaikki muut transaktiot ovat ilmaisia ja lähes välittömiä, koska ne tapahtuvat ketjun ulkopuolella. Heidän ei tarvitse maksaa louhintamaksua eikä odottaa lohkovahvistuksia.
Tietenkin edellä kuvattu esimerkki vaatii molempia osapuolia tekemään yhteistyötä, mikä ei ole ihanteellinen tilanne tuntemattomille vastapuolille. Erityisiä mekanismeja voidaan kuitenkin käyttää rankaisemaan kaikista huijausyrityksistä, jotta osapuolet voivat olla turvallisesti vuorovaikutuksessa keskenään ilman luottamusta.
Maksujen reititys
On selvää, että maksukanavat ovat käteviä kahdelle osapuolelle, jotka odottavat tekevänsä suuria määriä transaktioita. Mutta tässä ei ole vielä kaikki. Näiden kanavien verkkoa voidaan täydentää, mikä tarkoittaa, että Alice voisi maksaa taholle, johon hän ei ole suoraan yhteydessä. Jos Bobilla on kanava auki Carolin kanssa, Alice voi maksaa hänelle, jos kapasiteettia on riittävästi. Hän työntää varat Bobin puolelle kanavaa, joka puolestaan työntää ne Carolille. Jos Carol on yhteydessä toiseen osallistujaan, Daniin, tämä toiminto voidaan toistaa.
Tällainen verkko kehittyy hajautetuksi topologiaksi, jossa kaikki muodostavat yhteyden useisiin vertaisryhmiin. Määränpäähän on usein useita reittejä, ja käyttäjät voivat valita niistä tehokkaimman.
Yhteenveto
Olemme keskustelleet kahdesta skaalautuvuusmenetelmästä, jotka mahdollistavat transaktioiden tekemisen rasittamatta taustalla olevaa lohkoketjua. Niin sivuketjut kuin maksukanavatekniikkakaan eivät ole vielä kypsyneet, mutta käyttäjät, jotka haluavat välttää aluskerroksen transaktioihin liittyvät puutteet, hyödyntävät näitä tekniikoita yhä enemmän.
Ajan myötä, kun yhä useammat käyttäjät liittyvät verkkoon, on tärkeää, että hajauttamista ylläpidetään. Tämä on saavutettavissa vain asettamalla rajoituksia lohkoketjun kasvulle, jotta uudet solmut voivat helposti liittyä verkkoon. Ketjun ulkopuolisten skaalautuvuusratkaisujen kannattajat uskovat, että ajan myötä pääketjua käytetään vain arvokkaiden transaktioiden selvittämiseen tai sivuketjuihin siirtymiseen tai niistä poistumiseen ja kanavien avaamiseen/sulkemiseen.