Prostor v bloku je omejen: Bitcoin blockchain lahko obdela največ 10 transakcij na sekundo, največ. Da bi to rešili, Bitcoinova tehnična skupnost razvija protokole druge plasti, ki obdelujejo transakcije “zunaj verige”, kot so Lightning Network in stranske verige. Z uporabo pametnih kriptografskih trikov se te transakcije združujejo, da se občasno poravnajo na verigi Bitcoin kot ena transakcija..
Zdaj v obračun vstopa nov protokol druge plasti. Državne verige, prvi predlagal Srečanje Bitcoinov v Seulu organizator in Neokrnjeni podcast gostitelj Ruben Somsen, zastavlja koncept Bitcoin transakcije. Namesto da kovanci pošiljajo z naslova na naslov, uporabniki državne verige preprosto pošljejo zasebni ključ, s katerim lahko kovance porabite.
Evo, zakaj to ni tako noro, kot se sliši.
Zakaj so državne verige varne (bolj ali manj)
Poenostavljeno, Bitcoin transakcija je le sporočilo, ki pravi, kateri kovanci (»UTXO«) se premikajo s katerih naslovov (»vhodi«) na katere naslove (»izhodi«). To sporočilo je kriptografsko podpisano z zasebnimi ključi, ki ustrezajo naslovom pošiljatelja, kar dokazuje, da je lastnik teh kovancev ustvaril transakcijo. Snop (transakcija s podpisi) se nato pošlje po Bitcoin omrežju, da ga rudar sčasoma vključi v Bitcoinov blok.
Tehnično je mogoče le plačilo zasebnih ključev poslati kot plačilo: to prejemniku zasebnega ključa omogoča porabo pripadajočih kovancev. Vendar ni varno. Če pošiljatelj – bodimo izvirni in jo pokličimo »Alice« – prejemniku pošlje zasebni ključ – zakaj ga ne bi poklical »Bob«? – Bob nikakor ne more biti prepričan, da Alice ni obdržala kopije ključa. Če je obdržala kopijo ključa, ki ga bomo v tem kontekstu imenovali »prehodni ključ«, lahko Alice še vedno porabi kovanec za verigo blokov, zato kovanec sploh ni izključno Bobov.
Prva rešitev te težave pri Statechains je dodajanje drugega ključa mešanici. Če kovanec zaklenete v nastavitev z dvema podpisoma z več podpisi (multisig), ga lahko v verigi blokov premaknete le, če se obe tipki podpišeta.
Ta drugi ključ ustvari nevtralna stranka Victor, ki postane pospeševalec državne verige. Victor ima zelo pomembno nalogo. Victor mora podpisati transakcijo, če in samo, če to zahteva zadnji prejemnik prehodnega ključa.
Recimo, da Alice vzpostavi državno verigo z Victorjem kot moderatorjem. Alice generira prehodni ključ, Victor generira Victorjev ključ in s svojimi dvema ključema ustvarijo naslov multisig. Nato Alice na ta naslov pošlje en bitcoin, ki ga “zaklene” med Alice in Victorjem. Zdaj, če želi Alice kovanec poslati Bobu, bi lahko ustvarila transakcijo, jo podpisala s prehodnim ključem in prosila Victorja, naj jo tudi podpiše. Z obema podpisoma lahko Alice oddaja transakcijo in kovanec pošlje Bobu kot običajno transakcijo z verigo blokov.
Toda to seveda pogreša bistvo državne verige. Alice ima boljšo idejo. Alice namesto tega pošlje prehodni ključ Bobu in pove Victorju, da je to storila. Zaradi tega je Bob zadnji prejemnik prehodnega ključa. Bob se lahko zdaj obrne na Victorja in ga prosi za podpis, ki bo pomagal pri premikanju kovanca.
Tudi Alice ima prehodni ključ tudi sama. Zdaj pa, če bi prosila Victorja, naj pomaga pri podpisu transakcije za premik kovanca, Victor zavrne. Alice ni več lastnica kovanca, kar zadeva Victorja. In ker ima le prehodni ključ, ga dejansko ne more premakniti sama.
Če bi Bob kdaj hotel kovance premakniti nekomu drugemu – recimo Carol – bi seveda lahko ponovil trik z državno verigo. Ko Carol pošlje prehodni ključ in pove Victorju, bo Victor od takrat naprej samo sodeloval s Carol in dejansko naredil kovanec Carol’s. Ta postopek lahko ponovimo poljubno večkrat, tako da prehodni ključ posredujemo Danu, Erin, Franku itd., Ne da bi kdaj zahtevali transakcijo verige blokov..
Ne zaupam Victorju
Zgoraj opisani scenarij dejansko ne odstrani vsakega zaupanja iz sistema. Victorju namesto tega zaupajo precej.
Prvič, če Victor na zahtevo ne podpiše transakcije z verigo blokov, kovanca sploh ni mogoče premakniti. (Morda se je Victorju zrušil računalnik, ali ga je zadel avtobus, ali pa je Victor, ki se zaveda svoje moči, izsiljuje zadnjega prejemnika prehodnega ključa, da mu v zameno za podpis plača del kovanca.)
Ta problem je mogoče rešiti – toda tu je zasnova državne verige nekoliko bolj zapletena.
Ko sprva vzpostavi državno verigo, Alice sprejme previdnostni korak. Še preden pošlje kovanec na naslov multisig, ustvari “rezervno transakcijo”, ki kovanec s tega naslova multisig pošlje na nov naslov.
Kovanec lahko porabite s tega novega naslova pod dvema pogojema. Tako Victor kot lastnik prehodnega ključa podpišeta transakcijo, kot običajno, ali pa Alice kovance lahko porabi sama po recimo enem tednu.
Alice te varnostne transakcije ne oddaja v Bitcoin omrežje. Namesto tega jo da Victorju, ga prosi, naj podpiše transakcijo, in naj ji jo vrne.
Šele potem, ko je Alice od Victorja prejela to podpisano (vendar še ne predvajano) rezervno transakcijo, pošlje svoj kovanec na naslov multisig. Na ta način, tudi če Victor izgine, lahko predvaja rezervno transakcijo in po enem tednu zahteva kovance.
Zdaj, ko želi Alice poslati prehodni ključ Bobu, najprej stopi v stik z Victorjem in ga prosi, naj podpiše novo rezervno transakcijo za Boba in mu jo da. Torej, ko Bob od Alice dobi prehodni ključ, ima od Victorja neprenosano, a podpisano rezervno transakcijo, ki mu omogoča, da zahteva kovanec, če Victor izgine.
Kot zadnji zaključek Alice in Bob (in vsi nadaljnji lastniki prehodnega ključa) uporabljajo trik, zasnovan za strelovodno mrežo, imenovan Eltoo. Eltoo bi Bobu dovolil, da s svojo rezervno transakcijo “preglasi” Aliceino rezervno transakcijo. Torej, če Alice kdaj poskusi varati z oddajanjem svoje stare rezervne transakcije, lahko Bob bodisi izkoristi teden, ko mora Alice počakati, da sodeluje z Victorjem in zahteva kovanec, ali pa preprosto preglasi Aliceino posodobitveno transakcijo s svojo, da dobi denar.
Prva težava rešena.
Zaupanje Victorju (malo)
Medtem ko je problem z izginotjem Victorja rešen, obstaja še en problem: Victor bi lahko varal. Lahko je dogovarjal s prejšnjim lastnikom zasebnega ključa, kot je Alice, da bi ukradel kovanec Bobu, Carol, Danu, Erin, Franku ali tistemu, ki je bil zadnji prejemnik prehodnega ključa. (Kasneje je lahko z Bob-om tudi stopil v krajo, da bi ukradel Carol, Dan, Erin, Frank … itd.)
Te težave dejansko ni mogoče rešiti v celoti – in to je morda največja pomanjkljivost državnih verig. Toda tveganje je mogoče čim bolj zmanjšati.
Korak k zmanjšanju tega tveganja je, da Victorja “razdelimo” in nadomestimo z več entitetami. “Viktorjev ključ” je razdeljen. Tako postane lastna multisig postavitev, kjer mora recimo osem udeležencev od recimo 12-ih sodelovati z imetnikom prehodnega ključa, da kovanec premakne. Sodelovanje z osmimi “Victorji” bi moralo biti težje kot dogovarjanje z enim Victorjem.
Drugič, zunanjemu svetu je lahko očitno, če ti “Victors” varajo. To se naredi tako, da se v bistvu ustvari nova, miniaturna veriga blokov – v resnici “državna veriga” – kjer Alice, Bob, Carol in drugi podpišejo sporočilo, ki potrjuje, da so kovanec poslali komu. Če se Victors dogovorijo z Alice, da bi kovanec zapravila, potem ko ga je podpisala Bobu na državni verigi, vsi vidijo. (Podrobnosti o tem, kako natančno bi izgledal ta miniaturni blockchain, še niso obdelane, vendar to ni zelo težko rešiti.)
Tretjič, ti “zmagovalci” bi lahko bili dobro znani subjekti; na primer skupina Bitcoin podjetij. Ta podjetja bi imela svoj ugled na liniji in bi zato z varanjem imela kaj izgubiti – četudi bi s tem lahko zaslužila kovanec. Čeprav ni kriptografsko popoln, je zaradi tega predpostavka o varnosti za državne verige podobna zveznim stranskim verigam, kot je Blockstream’s Liquid ali trenutna izvedba RSK Labs RSK.
In to je to!
Državne verige vam omogočajo, da zasebne ključe pošiljate zunaj verige, namesto da pošiljate kovance na nove naslove.
Omejitve državnih verig (in potencialne rešitve)
Poleg zahtevanega zaupanja v “Victors”, da ne bodo v tajnosti s prejšnjim udeležencem državne verige, imajo državne verige nekatere omejitve.
Omejitve
Najprej je treba opozoriti, da, kot je razloženo v tem članku, državne verige potrebujejo dve nadgradnji protokola: Schnorr podpisi in Sighash_Anyprevout (ali kaj podobnega). Obe nadgradnji sta v teku, vendar verjetno ne bosta sporni.
Druga omejitev je, da državne verige omogočajo samo prenos celotnih UTXO; Alicein kovanec v kontekstu tega članka. Ker je Alice sprva zaklenila natanko en bitcoin in je poslala prehodni ključ, ki ustreza temu bitcoinu, mora predati celoten kovanec, prav tako Bob, Carol in drugi. To je precej velika omejitev v primerjavi z običajno Bitcoin transakcijo, pri kateri je mogoče porabiti kateri koli delček kovanca, preostanek pa vrniti pošiljatelju kot spremembo.
Rešitve
Kljub temu to ni nujno showstopper. Za enega lahko državne verige kombiniramo z drugim trikom, imenovanim »atomske zamenjave«. Ta poteza bi Alice omogočila, da bi svoj cel kovanec zamenjala z Zachom, ki ima dva polovična kovanca, tako, da nobenemu ni treba zaupati drugemu, da se ne bi umaknil iz trgovine na pol poti. Vse to se lahko zgodi brez potrebe po transakciji na verigi. To povečuje prilagodljivost.
Drugič, celo prenos celotnih UTXO je v nekaterih okoliščinah lahko zelo koristen. Morda je najbolj zanimivo, da bi udeležencem omogočil prenos celotnih kanalov Lightning. Če izenači kanal Lightning na točno pravi znesek (na primer tako, da se najprej plača v drugem kanalu), lahko Alice še vedno plača Bobu delček kovanca. Kot bonus bi lahko to omogočilo, da Bob takoj odpre kanale Lightning, ne da bi zahteval transakcijo financiranja na verigi (kar zahteva čas in pristojbine).
Poleg tega, ker imajo Lightning transakcije ravno nasproten problem – prenose velikih vrednosti je težje dokončati kot manjše, bi se lahko verige držav in Lightning Network precej lepo dopolnjevale.
Vprašanja o zasebnosti
Prav tako še ni jasno, koliko lahko države verige zasebnosti natančno ponudijo. V najslabšem primeru bi Victors in drugi udeleženci v državni verigi natančno vedeli, kdo je komu plačal. (Čeprav bi v resnici to še vedno bili javni ključi, ne pa resnična imena.) Obstajajo načini za izboljšanje tega, ko gre za Victors. Uporaba slepih podpisov (kriptografski trik, ki ga je prvi izumil izumitelj eCash David Chaum v osemdesetih letih prejšnjega stoletja), ima še dodatno prednost, da lahko odgovornost za transakcije s strani Victors prenese na uporabnike same. (Victors v idealnem primeru sploh ne bi vedeli, kaj bi podpisali.)
Zasebnost drugih udeležencev pa bi lahko rešili tudi z atomskimi zamenjavami, kar bi pomagalo zakrivati lastniško verigo. Verjetno obstaja več rešitev za izboljšanje zasebnosti, na primer prilagoditve CoinJoin. (To na primer uporablja tudi denarnica Wasabi Wallet, ki varuje zasebnost.) Toda podrobnosti je treba še razdelati.
Obstaja tudi nekaj pomislekov glede preteklih udeležencev v verigi, ki so poskušali goljufati tako, da so s pomočjo rezervne transakcije zahtevali kovance. Čeprav to verjetno ne bi uspelo, bi poskusil le strošek transakcije (v verigi), zato oportunistično varanje lahko omeji potencial državnih verig.
Končno so državne verige seveda razmeroma nov koncept; strokovni pregled je v teku.
Hvala Rubenu Somsenu za informacije in povratne informacije. Za več informacij o državnih verigah glejte njegovo razlagalec na Medium ali njegova predstavitev na Breaking Bitcoin v Amsterdamu.