Lohkotila on rajallinen: Bitcoin-lohkoketju voi käsitellä enintään noin 10 tapahtumaa sekunnissa. Tämän ratkaisemiseksi Bitcoinin tekninen yhteisö kehittää toisen tason protokollia, jotka käsittelevät tapahtumia “ketjun ulkopuolelta”, kuten Lightning Network ja sivuketjut. Näillä tapahtumilla on taitavia salaustemppuja, jotta ne sopisivat säännöllisesti Bitcoin-lohkoketjuun yhtenä tapahtumana.
Nyt uusi toisen kerroksen protokolla on tulossa taisteluun. Valtaketjut, ensimmäisenä ehdotti Soulin Bitcoin Meetup järjestäjä ja Epäselvä Podcast isäntä Ruben Somsen kääntää Bitcoin-tapahtuman käsitteen päähänsä. Sen sijaan, että lähetettäisiin kolikoita osoitteesta osoitteeseen, statechain-käyttäjät lähettävät vain yksityisen avaimen, jota voidaan käyttää kolikoiden käyttämiseen.
Tästä syystä se ei ole niin hullua kuin miltä se kuulostaa.
Miksi tilaketjut ovat turvallisia (enemmän tai vähemmän)
Yksinkertaistettuna, Bitcoin-tapahtuma on vain viesti, joka kertoo mitkä kolikot (“UTXO”) siirtyvät mistä osoitteista (“syötteet”) mihin osoitteisiin (”lähdöt”). Tämä viesti on kryptografisesti allekirjoitettu lähetysosoitteita vastaavilla yksityisillä avaimilla, mikä osoittaa, että näiden kolikoiden omistaja on luonut tapahtuman. Nippu (tapahtuma plus allekirjoitukset) lähetetään sitten Bitcoin-verkon kautta, jotta kaivosmies sisällyttäisi sen lopulta Bitcoin-lohkoon..
Teknisesti on mahdollista lähettää vain yksityiset avaimet maksuna sen sijaan: Tämän avulla yksityisen avaimen vastaanottaja voi käyttää niihin liittyviä kolikoita. Mutta se ei ole turvallinen. Jos lähettäjä – olkaamme alkuperäisiä ja kutsumme häntä Aliceiksi – lähettää yksityisen avaimen vastaanottajalle – miksi ei kutsua häntä “Bobiksi”? – Bob ei voi mitenkään olla varma, että Alice ei säilyttänyt kopiota avaimesta. Jos hän säilytti kopion avaimesta, jota tässä yhteydessä kutsumme “väliaikaiseksi avaimeksi”, Alice voi silti käyttää kolikkoa blockchainiin, joten kolikko ei ole ollenkaan yksinomaan Bob.
Statechainsin ensimmäinen ratkaisu tähän ongelmaan on lisätä toinen avain sekoitukseen. Lukitsemalla kolikko kahdesta kahdesta monen allekirjoituksen (multisig) kokoonpanoon, sitä voidaan siirtää lohkoketjussa vain, jos molemmat avaimet allekirjoittavat sopimuksen.
Tämän toisen avaimen muodostaa puolueeton puolue Victor, josta tulee valtioketjun avustaja. Victorilla on erittäin tärkeä tehtävä. Victorin on allekirjoitettava tapahtuma vain ja vain, jos väliaikaisen avaimen viimeinen vastaanottaja pyytää häntä.
Oletetaan, että Alice perustaa statechainin, jonka Victor on ohjaaja. Alice luo väliaikaisen avaimen, Victor luo Victorin avaimen, ja he käyttävät kahta avainta luodakseen multisig-osoitteen. Alice lähettää sitten yhden bitcoinin tähän osoitteeseen, “lukitsemalla sen” Alicen ja Victorin väliin. Nyt, jos Alice haluaa lähettää kolikon Bobille, hän voi luoda tapahtuman, allekirjoittaa sen väliaikaisella avaimella ja pyytää Victoriakin allekirjoittamaan sen. Molemmilla allekirjoituksilla Alice voi lähettää tapahtuman lähettämällä kolikon Bobille tavallisena blockchain-tapahtumana.
Mutta se tietysti menettää valtioketjun pisteen. Alicella on parempi idea. Sen sijaan Alice lähettää väliaikaisen avaimen Bobille ja kertoo Victorille, että hän teki sen. Tämä tekee Bobista viimeisen väliaikaisen avaimen vastaanottajan. Bob voi nyt ottaa yhteyttä Victoriin ja pyytää häneltä allekirjoitusta kolikon siirtämiseen.
Alicella on edelleen itse väliaikainen avain. Kuitenkin nyt, jos hän pyytäisi Victoria auttamaan allekirjoittamaan kaupan kolikon siirtämiseksi, Victor kieltäytyisi. Alice ei enää omista kolikkoa Victorin kannalta. Ja koska hänellä on vain väliaikainen avain, hän ei todellakaan pysty siirtämään sitä yksin.
Jos Bob haluaa koskaan siirtää kolikot jollekin toiselle – sanoa Carol -, hän voisi tietysti toistaa statechain-temppun. Kun hän lähettää väliaikaisen avaimen Carolille ja kertoo Victorille, Victor tekee siitä lähtien yhteistyötä vain Carolin kanssa ja tekee kolikon tosiasiallisesti Carolista. Tämä prosessi voidaan toistaa mielivaltaisesti useita kertoja, välittämällä väliaikainen avain Danille, Erinille, Frankille ja niin edelleen ilman, että tarvitsisi koskaan blockchain-tapahtumaa.
Ei luota Victoriin
Edellä kuvattu skenaario ei oikeastaan poista kaikkea luottamusta järjestelmästä. Pikemminkin Victoriin kohdistuu paljon luottamusta.
Ensinnäkin, jos Victor ei allekirjoita blockchain-tapahtumaa pyydettäessä, kolikkoa ei voida siirtää lainkaan. (Ehkä Victorin tietokone kaatui, tai hän pääsi bussiin, tai ehkä Victor – tietoisena voimastaan - kiristää viimeisen väliaikaisen avaimen vastaanottajan maksamaan hänelle osan kolikosta vastineeksi allekirjoituksesta.)
Tämä ongelma voidaan ratkaista – mutta tässä tilaketjun suunnittelu muuttuu hieman monimutkaisemmaksi.
Kun Alice perustaa alun perin ketjun, Alice ottaa varotoimen. Jo ennen kolikon lähettämistä multisig-osoitteeseen hän luo “varmuuskopiotapahtuman”, joka lähettää kolikon tästä multisig-osoitteesta uuteen osoitteeseen.
Kolikko voidaan käyttää tästä uudesta osoitteesta kahdella ehdolla. Joko Victor ja väliaikaisen avaimen omistaja allekirjoittavat tapahtuman, kuten normaalisti, tai Alice voi käyttää kolikoita yksin, esimerkiksi viikon kuluttua.
Alice ei lähetä tätä varmuuskopiotapahtumaa Bitcoin-verkkoon. Sen sijaan hän antaa sen Victorille, pyytää häntä allekirjoittamaan kaupan ja pyytää häntä palauttamaan sen hänelle.
Vasta sen jälkeen, kun Alice on saanut tämän allekirjoitetun (mutta vielä lähettämättä) varmuuskopiotapahtuman Victorilta, hän lähettää kolikonsa multisig-osoitteeseen. Tällä tavalla, vaikka Victor katoaisi, hän voi lähettää varmuuskopiotapahtuman ja vaatia kolikot takaisin viikon kuluttua.
Kun Alice haluaa lähettää väliaikaisen avaimen Bobille, hän ottaa ensin yhteyttä Victoriin ja pyytää häntä allekirjoittamaan uuden varmuuskopiotapahtuman Bobille ja antamaan sen hänelle. Joten kun Bob saa väliaikaisen avaimen Alicelta, hänellä on jo vapaasti lähetetty, mutta allekirjoitettu varmuuskopio Victorilta, jolloin hän voi lunastaa kolikon, jos Victor katoaa.
Viimeisenä kosketuksena Alice ja Bob (ja kaikki seuraavat väliaikaisen avaimen omistajat) käyttävät salamaverkolle suunniteltua temppua nimeltä Eltoo. Eltoo antaisi Bobille mahdollisuuden “ohittaa” Alicen varmuuskopiotapahtuman omalla varmuuskopiotapahtumallaan. Joten jos Alice yrittää koskaan huijata lähettämällä vanhan varmuuskopiotapahtuman, Bob voi joko käyttää viikkoa, jonka Alice odottaa odottavansa yhteistyössä Victorin kanssa ja lunastaa kolikon, tai hän voi yksinkertaisesti ohittaa Alicen päivitystapahtuman omalla saadakseen rahan.
Ensimmäinen ongelma ratkaistu.
Luottamus Victoriin (vähän)
Vaikka Victorin katoamisen ongelma on ratkaistu, on toinenkin ongelma: Victor voi huijata. Hän voisi salaliittaa yksityisen avaimen edellisen omistajan, kuten Alice, kanssa varastamaan kolikon Bobilta, Carolilta, Danilta, Erinilta, Frankilta tai keneltä tahansa, joka oli väliaikaisen avaimen viimeinen vastaanottaja. (Hän voisi myöhemmin myös tehdä yhteistyötä Bobin kanssa varastamaan Carolilta, Danilta, Eriniltä, Frankilta … ja niin edelleen.)
Tätä ongelmaa ei oikeastaan voida ratkaista kokonaan – ja tämä on ehkä tilaketjujen suurin haittapuoli. Mutta riski voidaan minimoida.
Yksi askel kohti tämän riskin minimointia on “jakaa” Victor ja korvata hänet useilla kokonaisuuksilla. “Victor’s key” on jaettu. Siten siitä tulee oma multisig-kokoonpano, jossa esimerkiksi kahdeksan osallistujaa, esimerkiksi 12: sta, on tehtävä yhteistyötä väliaikaisen avaimen haltijan kanssa kolikon siirtämiseksi. Yhteistoiminnan kahdeksan “voittajan” kanssa pitäisi olla vaikeampi kuin yhteistyö vain yhden Victorin kanssa.
Toiseksi, ulkomaailmalle voidaan tehdä selväksi, jos nämä “Victors” huijaavat. Tämä tapahtuu luomalla pohjimmiltaan uusi, miniatyyrilohkoketju – todellakin “statechain” – jossa Alice, Bob, Carol ja muut allekirjoittavat viestin vahvistaen lähettäneensä kolikon ja kenelle. Jos Voittajat tekevät yhteistyötä Alicen kanssa viettääkseen kolikon sen jälkeen, kun hän on allekirjoittanut sen Bobille valtioketjussa, kaikki näkevät. (Yksityiskohtia siitä, miltä tämä miniatyyrilohkoketju itse näyttäisi, ei ole vielä selvitetty, mutta tämä ei ole kovin vaikea ratkaista ongelma.)
Kolmanneksi nämä “voittajat” voivat olla tunnettuja kokonaisuuksia; esimerkiksi ryhmä Bitcoin-yrityksiä. Näillä yrityksillä olisi maine linjalla, ja siksi heillä on jotain menetettävää huijaamalla – vaikka ne voisivat ansaita kolikon tekemällä niin. Vaikka se ei olekaan salauksellisesti täydellinen, tämä tekee oletusketjuista tietoturvaolettamuksen samanlaiseksi kuin liitetyt sivuketjut, kuten Blockstream’s Liquid tai RSK Labsin RSK: n nykyinen toteutus.
Ja siinä se on!
Valtaketjujen avulla voit lähettää yksityisiä avaimia ketjun ulkopuolella kolikoiden lähettämisen sijaan uusiin osoitteisiin.
Statechainien (ja potentiaalisten ratkaisujen) rajoitukset
Vaaditun luottamuksen lisäksi voittajiin olemaan salaamattomia edellisen statechain-osallistujan kanssa, statechainilla on joitain rajoituksia.
Rajoitukset
Ensimmäinen asia on huomata, että kuten tässä artikkelissa selitetään, tilaketjut vaativat kahta protokollapäivitystä: Schnorr-allekirjoitukset ja Sighash_Anyprevout (tai jotain vastaavaa). Molemmat näistä päivityksistä ovat kesken, mutta eivät todennäköisesti ole kiistanalaisia.
Toinen rajoitus on, että tilaketjut sallivat vain kokonaisen UTXO: n siirron; Alicen kolikko tämän artikkelin yhteydessä. Koska Alice lukitsi alun perin tarkalleen yhden bitcoinin ja hän lähettää tätä bitcoinia vastaavan väliaikaisen avaimen, hänen on toimitettava koko kolikko, samoin Bobin, Carolin ja muiden. Tämä on melko iso rajoitus verrattuna normaaliin Bitcoin-tapahtumaan, jossa mikä tahansa kolikon osa voidaan käyttää, loput palautetaan lähettäjälle muutoksena.
Ratkaisut
Silti tämä ei välttämättä ole showstopper. Ensinnäkin, tilaketjut voidaan yhdistää toiseen temppuun, jota kutsutaan “atomivaihdoksi”. Tämä siirto antaisi Alicelle mahdollisuuden vaihtaa koko kolikonsa Zachin kanssa, jolla on kaksi puolirahaa, siten, ettei kummankaan tarvitse luottaa toiseen, ettei se vetäydy kaupasta puolivälissä. Kaikki tämä voi tapahtua ilman ketjutapahtumaa. Tämä lisää joustavuutta.
Toiseksi jopa kokonaisen UTXO: n siirtäminen voi olla erittäin hyödyllistä joissakin yhteyksissä. Ehkä mielenkiintoisinta, että se antaisi osallistujille mahdollisuuden siirtää kokonaisia salamakanavia. Tasapainottamalla Lightning-kanavan täsmälleen oikeaan määrään (esimerkiksi maksamalla ensin itselleen toisella kanavalla), Alice voi silti maksaa Bobille murto-osan kolikosta. Bonuksena tämä voisi antaa Bobille avata Lightning-kanavat välittömästi ilman, että tarvitaan ketjun rahoitustapahtumaa (joka vie aikaa ja maksuja).
Lisäksi, koska salamatapahtumilla on päinvastainen ongelma – suurten arvojen siirtoja on vaikeampaa suorittaa kuin pienempiä -, tilaketjut ja salamaverkko voivat täydentää toisiaan melko hienosti.
Tietosuojakysymykset
Ei ole myöskään vielä selvää, kuinka paljon yksityisyyden tilaketjut voisivat tarjota tarkalleen. Pahimmassa tapauksessa voittajat ja muut osallistujat tietävät tarkalleen kuka maksoi kenelle. (Vaikka todellisuudessa nämä olisivat edelleen julkisia avaimia, eivät oikeita nimiä.) On olemassa tapoja parantaa tätä voittajien suhteen. Esimerkiksi sokeiden allekirjoitusten (salaustemppu, jonka eCash-keksijä David Chaum ehdotti ensimmäisen kerran 1980-luvulla) käytöstä on esimerkiksi lisäetuna mahdollisuus siirtää vastuu tapahtumista Victorsilta käyttäjille itselleen. (Voittajat eivät tietenkään edes tiedä, mitä he allekirjoittavat.)
Muiden osallistujien yksityisyys voitaisiin puolestaan ratkaista myös atomivaihtosopimuksilla, mikä auttaisi hämärtämään omistusketjua. Luultavasti on enemmän ratkaisuja yksityisyyden parantamiseen, kuten CoinJoin-mukautukset. (Tätä käytetään myös esimerkiksi yksityisyyttä säilyttävässä Wasabi Walletissa.) Mutta yksityiskohtia ei ole vielä laadittu.
Ketjun aiemmat osallistujat ovat myös huolestuneita yrittäessään huijata yrittämällä lunastaa kolikoita varmuuskopioinnin kautta. Vaikka tämä ei todennäköisesti onnistuisi, se maksaa vain (ketjussa) tapahtumamaksun, joten opportunistinen huijauskäyttäytyminen saattaa rajoittaa valtion ketjujen potentiaalia.
Lopuksi, tilaketjut ovat tietysti suhteellisen uusi käsite; vertaisarviointi on käynnissä.
Kiitos Ruben Somsenille tiedoista ja palautteesta. Lisätietoja statechainsista, katso hänen selittäjä Mediumissa tai hänen esityksensä osoitteessa Breaking Bitcoin Amsterdamissa.