Tiedonanto: Tämän artikkelin kirjoittaja on Ethereum-projekti
Viime viikolla Adam Back ja Austin Hill tulivat ulos ilmoitus Let’s Talk Bitcoinissa, jossa he ilmoittivat uusimmasta projektistaan: “sivuketjut”. Ajatus, jonka he kuvasivat, mahdollistaisi vaihtoehtoisten lohkoketjujen olemassaolon, ehkä erilaisilla säännöillä, jotka sallivat erilaisia lisäominaisuuksia tai tapahtumatyyppejä, mutta valuuttayksiköllä, jonka arvo on sidottu bitcoinin arvoon. Tarkoituksena on sallia kokeilu Bitcoin-protokollan eri laajennuksilla käyttämällä erillisiä verkkoja riskien välttämiseksi itse Bitcoinille samalla käytettäessä samaa taustalla olevaa rahayksikköä. Heti kun idea julkistettiin, konseptista on ollut paljon julkista kiinnostusta, ja se on tuonut uutta toivoa siitä, että Bitcoin-protokolla voi tulla paljon tehokkaammaksi kuin nykyään.
Konepellin alle
Sivuketjujen idea ei ole uusi; konsepti on ollut käytössä ainakin viime vuodesta joulukuussa, ja idean edeltäjä on ollut olemassa useita vuosia ennen sitä. Edeltäjä, yksisuuntaisena sidonnaisuutena tunnettu protokolla, oli mekanismi, jota teoriassa käytettiin siirtymisen hallitsemiseksi “Bitcoin 1.0”: sta “Bitcoin 2.0”: ksi, ja se toimi seuraavasti. Oletetaan, että Bitcoin 1.0: ssa on jo laskettu liikkeeseen 13 miljoonaa rahayksikköä kaivostoiminnan kautta, ja 8 miljoonaa on vielä jäljellä annettavaksi. BTC2.0: n jakelumalli vapauttaisi kaivostoiminnan avulla 8 miljoonaa yksikköä täsmälleen saman aikataulun mukaan kuin BTC1.0 sen jälkeen, mutta loput 13 miljoonaa jaettaisiin mekanismin kautta, joka tunnetaan nimellä “palamisen todistaminen”..
Pohjimmiltaan otettaisiin yksi BTC1.0-yksikkö, lähetettäisiin se käyttämättömään osoitteeseen (esim. 111111111111111111111114oLvT2) ja lähetettäisiin salaus todiste siitä, että tämä tapahtuma tapahtui, allekirjoitettuna samalla yksityisellä avaimella, joka lähetti tapahtuman, tapahtumaksi Bitcoin 2.0. Bitcoin 2.0 -protokollan mukaan tämä antaisi käyttäjälle oikeuden saada yksi 2.0-yksikkö. Tätä kutsutaan “yksisuuntaiseksi tapiksi”, koska yhden BTC2.0: n arvo voi olla enintään yhtä BTC1.0; muuten ihmiset sovittelevat eron muuntamalla bitcoinit 1: 1-nopeudella. Sen lisäksi, että myydään BTC2.0 BTC1.0: lle markkinoilla, ei ole mitään tapaa palata takaisin, joten jos kokeilu epäonnistuu, BTC2.0: n arvo voi pudota nollaan.
Bitcoin-sivuketjut käyttävät tämän järjestelmän parannettua versiota, nimeltään “kaksisuuntainen kiinnittäminen”, joka toimii seuraavasti. Saadakseen yhden BTC2.0-yksikön, sinun on otettava yksi BTC1.0-yksikkö ja lähetettävä se “komentosarjaan”, jota kutsumme X: ksi ja jätämme toistaiseksi kuvaamattomaksi. Bitcoinin komentosarja on osoite, joka sen sijaan, että se olisi yksityisen avaimen omistuksessa, toimii lähinnä lukituslaatikkona, joka avaa bitcoinit vain annettaessa tapahtuma, joka täyttää tietyt ehdot. Esimerkiksi voi olla komentosarja, joka vapauttaa varat ensimmäiselle henkilölle, joka toimittaa viisinumeroisen alkuluvun, joka koostuu kokonaan numeroista 3 ja 5. Tapahtuman tekeminen ja salaustodistuksen julkaiseminen tällaisen tapahtuman tekemisestä Bitcoin 2.0 -lohkoketju oikeuttaa käyttäjän yhteen BTC2.0-yksikköön.
Nyt X: n määritelmä on yksinkertainen: X vapauttaa varat (muista, että tämä on yksi BTC1.0-yksikkö), jos hänelle annetaan kelvollinen salausnäyttö siitä, että lähettäjä tuhosi yhden BTC2.0-yksikön. Siten on olemassa mekanismi BTC 1.0: n muuntamiseksi BTC2.0: ksi, ja juuri tämä mekanismi luo toisen mekanismin, jonka arvo on rajoitettu luodun BTC2.0: n kokonaismäärään, jota voidaan käyttää muuntamaan BTC2.0 takaisin BTC1.0: ksi. . Siksi kaksisuuntainen tappi.
Mekanismi, jota nämä “salaustodisteet” käyttävät, perustuu Bitcoinissa käytettyyn kryptografiseen rakenteeseen, jota kutsutaan Merkle-puuksi. Bitcoin-lohkossa sen sijaan, että jokaisella tapahtumalla olisi vain lohko suoraan, vain yksi 32-tavuinen hash sisältyy tosiasiallisesti lohkon otsikkoon. Tämä 32-tavuinen hash on itse laskettu kahdesta muusta 32-tavuisesta hashista, joista kukin tulee kahdesta muusta 32-tavuisesta hashista, ja niin edelleen, kunnes lopulta alareunan arvot ovat itse tapahtumia. Juuri tämän mekanismin tarkoitus on sallia kompaktien todisteiden olemassaolo siitä, että tietty tapahtuma on tietyssä lohkossa; tarvitsee vain yhden hajautushaaran, joka kulkee kyseisestä tapahtumasta juurisolmuun, tai yhteensä 10 hajautusta 1000 tapahtumalle tai 20 hajautusta miljoonalle tapahtumalle. Tätä on mahdotonta väärentää; jos yrität muuttaa edes yksittäistä tapahtumaa puussa, muutokset etenevät ylöspäin hashien läpi, kunnes lopulta juurisolmu päätyy täysin erilaiseksi.
Tämä ei kuitenkaan ratkaise ongelmaa kokonaan; kaikki se kertoo sinulle, että joku lohko, jossain, sisältää tietyn tapahtuman. Se ei kerro sinulle, että kauppa on pääketjussa; todellisuudessa samat tapahtumassa käytetyt bitcoinit olisi voitu jo lähettää eri lähteisiin, mikä teki tapahtumasta pätemättömän. On kaksi tapaa ratkaista tämä. Yksi ja ylivoimaisesti yksinkertaisempi lähestymistapa on, että Bitcoin 2.0: n todistemekanismi pyytää paitsi Merklen puuhaaraa myös lohkoketjua menemään kuusi lohkoa, aivan kuten kauppias, joka pyytää kuutta vahvistusta, käyttämällä kaivosvoimaa pätevyyden valtakirjana. Paremman turvallisuuden takaamiseksi voidaan tarvita paljon suurempi määrä lohkoja, kuten kuusikymmentä. Tämä lähestymistapa on yksinkertainen ja näyttää täyttävän kaikki vaaditut parametrit.
Haasteet
Edellä kuvattu mekanismi on kuitenkin kuvattu erittäin epätäydellinen. Kun tavallinen kauppias pyytää kuutta vahvistusta, kaksoiskulutushyökkäyksen käynnistäminen kauppiasta vastaan edellyttää kuuden lohkon tuottamista nopeammin kuin muu verkko reaaliajassa yhdistettynä. Tehtävä, joka vaatii vähintään 30 verkon verkko-osaa toimia mihin tahansa ei vähäinen menestysprosentti. Edellä kuvatulla kaksisuuntaisella kiinnitysmekanismilla pahantahtoinen kaivosmies, jolla on jopa yksi hashpower, voi lopulta tuottaa kuusi lohkoa tai jopa kuusikymmentä lohkoa ja käyttää sitten näitä lohkoja vilpillisesti vaatiakseen kaikki BTC1.0: t, jotka on asetettu BTC2.0-lukituslaatikot (tai toiseen suuntaan vaativat petollisesti rajoittamattoman määrän BTC2.0: ta). Yksi mahdollinen mieleen tuleva laastari on vaatia lukituslaatikon luonut henkilö avaamaan se, mikä rajoittaa henkilölle mahdollisesti aiheutettavien vahinkojen määrää, mutta tämä ei ratkaise ongelmaa, koska haitallinen kaivosmies voi helposti salaa kenenkään kanssa muu. Perusongelma, että lohkoketjun validointiin ei ole mitään keinoa, joka ei päivity itsestään ajan myötä, on joko hyvin vaikea ratkaista tai todennäköisesti ei voida ratkaista samalla kun pysyt puhtaasti Bitcoinin “staattisen lukituslaatikon” komentosarjojen paradigmassa.
Toinen lähestymistapa, jolla voidaan ratkaista tämä ongelma ilman liiallisia vaikeuksia, on monimutkaisempi ja häiritsevämpi. Se edellyttää, että Bitcoin 1.0: n “kevyt asiakas” kutsutaan Bitcoin 2.0: ksi. Kevyttä asiakasta voidaan kuvata helpoimmin pitkäaikaiseksi ”sopimukseksi”, joka on lohkoketjussa oleva ohjelma, jolla on suuri määrä sisäistä tilaa ja joka suoritetaan joka kerta, kun sille lähetetään tapahtuma, joka hyväksyisi lohkot ja tarkistaisi lohkojen otsikot tarkalleen samalla tavalla kuin matkapuhelimesi Bitcoin-asiakas tekisi. Tämä sopimus pitäisi sitten juoksevan luettelon kaikista Bitcoin 1.0: n lohkootsikoista, ja yhden BTC2.0: n saamiseksi sinun on toimitettava salausnäyttö siitä, että olet tehnyt vaaditun tapahtuman BTC1.0: ssa sopimukseen tietoturvan ohella 0,1 BTC2,0: n talletus.
Sopimus tarkistaa, että todiste on pätevä, päätyy lohkoon, joka on sopimuksen omassa sisäisessä minilohkoketjussa, ja odottaa sitten jotain kahdesta tapahtuneesta. Ensinnäkin, kun sopimukseen lisätään vielä 60 Bitcoin 1.0 -lohkoa, se vapauttaisi yhden BTC2.0-yksikön lähettäjälle sekä vakuuden. Vaihtoehtoisesti, jos joku muu lähettää salaustodistuksen siitä, että tapahtuma on mistä tahansa syystä pätemätön (esim. Se käyttää bitcoineja, joita ei ole olemassa) tuona aikana, hän saa vakuuden.
Tämä ratkaisi turvallisuusongelman, mutta sillä on yksi tärkeä puute: sitä ei voida tehdä Bitcoin-protokollassa sellaisenaan. Se on melko helppo toteuttaa protokollan kaltaisessa muodossa Ethereum, koska se on suunniteltu erityisesti sopimuksia varten, mutta Bitcoinin komentosarjatoiminnot eivät salli sellaisten sopimusten olemassaoloa, joilla on sisäinen tila, joten tämän tekeminen Bitcoinin sisällä edellyttäisi erittäin merkittävää muutosta Bitcoin 1.0 -protokollaan. Viime kädessä Austin Hillin ja Adam Backin lähestymistapa ei ehkä näytä tarkalleen kummallakaan näistä strategioista; ongelman pelkkä monimutkaisuus osoittaa kuitenkin, että edessä on vielä monia haasteita.
Kaivostoiminta
Toinen tärkeä kysymys on: miten nämä sivuketjut varmistetaan? Vakiomekanismi lohkoketjun kiinnittämiseksi on kaivostoiminta, mutta kaivos vaatii mekanismin kaivostyöläisten palkitsemiseksi kyseisessä ketjussa. Sivuketjussa jokainen sivuketjun valuutan yksikkö on tuettava script-lockboxilla, joka sisältää BTC-yksikön Bitcoin-lohkoketjussa, joten ei ole yksinkertaista mahdollisuutta antaa sivuketjun valuuttayksiköitä tyhjästä. Tähän on kaksi mahdollisuutta: seisokki (eli prosenttiosuus vuodessa kaikista sivuketjun BTC: stä) ja transaktiopalkkiot. Molemmat tarjoavat kuitenkin melko pienen määrän tuloja, joten ei ole lainkaan varmaa, että tavallinen vanha itsenäinen kaivostoiminta ratkaisee ongelman.
On kaksi tapaa kiertää asiaa. Yksi lähestymistapa on varmistaa, että sivuketju varmistetaan osuustodistuksella, ja transaktiomaksuista saatavat pienet tulot korvataan osallistuville sidosryhmille korolla. Tätä lähestymistapaa olisi kuitenkin erittäin vaikea toteuttaa sivuketjussa, koska osuustodistuksen validointiin liittyvät laskelmat ovat todennäköisesti liian monimutkaisia, jotta ne voidaan toteuttaa tehokkaasti suoraan lohkoketjussa. Toista lähestymistapaa, jota Adam Back ja Austin Hill edistävät, kutsutaan “sulautumiseksi”; kaivostyöläiset sisällyttävät Bitcoin-lohkoihin tietoja sekä Bitcoin-lohkosta että Namecoin-lohkosta, jolloin kaivostyöläiset voivat tarjota turvallisuutta molemmille ketjuille samanaikaisesti samalla laskentaponnistuksella.
Kuitenkin, kuten Bitcoin-kehittäjä Peter Todd väitti, sulautumis-louhinnan käsitteellä on kuitenkin yksi erittäin tärkeä tietoturva-aukko: ellei suurin osa Bitcoin-kaivostyöläisistä suostu yhdistämään tiettyä ketjua, ketju ei ole kiistatta lainkaan turvallinen. Ymmärtääksesi miksi, ota ensin huomioon perinteisemmän altcoinin tapaus, esimerkissämme SHA256: n suorittaminen yksinkertaisuuden vuoksi (jos altcoin käyttää mukautettua algoritmia, Litecoin-kaivostyöläiset voivat vetää hyökkäyksen sijaan). Jos altcoinilla on 5 Bitcoinin hashpoweria, niin jotta hyökätä ketjuun kaksinkertaisen kulutuksen avulla, vähintään 5 Bitcoin-verkon voimasta on väliaikaisesti ohjattava kaivostoimintaan altcoinilla. Tämä on potentiaalisesti mahdollista, mutta on kallis siirto: Hyökkäyksen ollessa paikallaan, Bitcoin-kaivostyöläiset menettäisivät tuloja Bitcoinin kaivoksesta. Yhdistämisen louhiman sivuketjun tapauksessa sivuketjun pääradalla kaivaminen tai sen hyökkääminen on kuitenkin ilmaista, joten vaihtoehtoisen ketjun hyökkäykselle ei olisi taloudellista estettä. Tämä ei ole pelkkä arvelu; todellisuudessa on ollut todellisia esimerkkejä kaivosalueista, jotka hyökkäävät yhdistettyjen ketjujen ketjuihin.
Turvallisuuden lisäksi tämä riippuvuus sulautumisesta luo myös toisen huolestuttavan rajoituksen sivuketjuidealle: Vaikka kryptovaluutta on kiistatta luvaton innovaatio, sivuketjun luominen vaatii 50 Bitcoinin luvan ja aktiivisen avun kaivosalueen operaattorit. Nämä rajoitukset yhdessä viittaavat siihen, että vaikka sivuketjuprotokolla on hyvä monissa käyttötapauksissa, se ei todellakaan ole ihanteellinen kaikille.
Lupaus
Jos sivuketjuihin liittyvät tekniset kysymykset voidaan ratkaista, mikä on niiden lupaus? Tällä hetkellä kryptovaluutan kehitys voidaan olennaisesti luokitella neljään neljännekseen. Ensimmäinen kvadrantti koostuu projekteista, joissa käytetään Bitcoin-valuuttaa ja Bitcoin-lohkoketjua – lähinnä itse Bitcoinia. Toinen kvadrantti on protokollia, jotka käyttävät Bitcoin-lohkoketjua, mutta eivät Bitcoin-valuuttaa; Mastercoin, värilliset kolikot ja vastapuoli ovat erinomaisia esimerkkejä tästä. Kolmas kvadrantti käyttää sekä itsenäistä valuuttaa että itsenäistä lohkoketjua; tämä sisältää sovelluksia, kuten (ottaa hyvin erilaisia esimerkkejä) Ripple, Litecoin ja NXT. Sivuketjujen kanssa viimeinen kvadrantti on myös täytetty: käyttämällä itsenäistä verkkoa, mutta käyttämällä Bitcoinia valuuttana.
On mielenkiintoista nähdä, mitkä sovellukset, jotka kapealla toimivat parhaiten. Kaikille uusille ekosysteemeille se ei todennäköisesti ole oikea lähestymistapa; ei ole mitään järkeä täysin itsenäiselle verkostolle, kuten Ripple tai Ethereum, sitoa tärkein sisäinen tunnus Bitcoiniin taloudellisesti ja altistaa molemmat toistensa hintaliikkeille. Tällaisten merkittävien ponnistelujen yhteydessä on myös järkevää kokeilla erilaisia rahapolitiikkoja; Ethereumin eetterillä on lineaarinen emissiomalli, joka vapauttaa jatkuvasti tietyn määrän kiinteitä valuuttayksiköitä vuosittain, kun taas Ripple vapautti kaikki 100 miljardia XRP-yksikköä Ripple-organisaatiolle kerralla, ja organisaatio vapauttaa ne ajan mittaan kehittäjille, sijoittajille ja hajautettuihin laskentaprojekteihin osallistuvat ihmiset. Haarukalle, joka on tarkoitettu toimimaan merkittävänä protokollamuutoksena, kuten päivittäminen SHA256: sta SHA3: ksi tai kvanttitietokoneiden tapauksessa ECDSA: sta Lamport-allekirjoituksiin tai NTRU: ksi, sillä on ehdottomasti täysin järkevää. Kaiken keskellä olevan asian selvittäminen riippuu tapauskohtaisesti.
Ethereumin tapauksessa on pidettävä mielessä erityinen huomio: Ethereum on yleiskäyttöinen kryptografinen konsensusalusta, ei erityinen ”altcoin”. Näin ollen Ethereum-alustalla voi olla useita erilaisia valuuttoja sopimuksina; voi olla tylsää vanhaa kiinteän toimituksen valuuttaa, valuuttaa, jolla on hajautetun autonomisen organisaation hallinnoimaa rahapolitiikkaa, valuuttoja, jotka ovat olemassa tieteellisen tutkimuksen tukemiseksi tai perustulon tuottamiseksi, ja jopa valuuttoja, joissa on sisäänrakennettu kaksisuuntainen vaihtomekanismi. toimivat sivuketjuina. Ethereumia ei siis voida tarkasti siipikaristaa joko sivuketjun kvadranttiin tai Ripple / Litecoin / NXT-kvadranttiin; se on olemassa molemmissa.
Todellakin on erittäin todennäköistä, että heti kun Ethereum-geneesilohko käynnistyy, Bitcoinille, Litecoinille ja Dogecoinille on sivuketjuja, jotka toteutetaan sopimuksina kolmen kuukauden kuluessa. Jos sivuketjut voidaan toteuttaa onnistuneesti ja turvallisesti, tämä tarkoittaa, että Ethereumista voi jopa tulla ensisijainen tapa BTC: n, LTC: n tai DOGE: n tallentamiseen käyttämällä tehokkaita moniallekirjoitustallennussopimuksia, jotka sisältävät ominaisuuksia, kuten peruutusrajat. Yleiskäyttöisten ketjujen, tehokkaiden erikoiskäyttöisten altcoiinien, lähes keskitettyjen OpenTransaction-palvelimien, sivuketjujen ja itse Bitcoinin välisten sopimusten välillä yksi asia on tulossa selväksi: krypto-valuutat pystyvät toimimaan yhdessä kuin koskaan ennen.