Lightning Network je verjetno najbolj pričakovana tehnološka inovacija, ki bo uporabljena na vrhu Bitcoinov. Plačilna plast, ki sta jo pred približno letom dni predlagala Joseph Poon in Tadge Dryja, obljublja, da bo podpirala tako rekoč neomejeno število transakcij zunaj verige med uporabniki, skoraj brez stroškov – ob izkoriščanju varnosti, ki jo ponuja Bitcoin.
Vsaj tri podjetja – Poon in Dryja Strela, Blockstream in Blockchain – trenutno delajo na izvedbah tehnologije. Toda malo ljudi zunaj te majhne tehnološke fronte v celoti razume, kako naj bi “prihodnost mikroplačil” povečala zmožnosti Bitcoina.
V tej tridelni seriji Bitcoin Magazine predstavlja osnovne gradnike Lightning Network in prikazuje, kako se ujemajo za uresničitev te prihajajoče protokolarne plasti.
Prvi del te serije je zajemal osnovne gradnike in razložil, kako se ti uporabljajo za vzpostavitev dvosmernih plačilnih kanalov. Drugi del je pojasnil, kako se oblikuje omrežje in kako pogodbe Hash Timelock (HTLC) povezujejo različne kanale v omrežju. Ta tretji in zadnji del serije pojasnjuje, kako so HTLC-ji umeščeni v dvosmerne plačilne kanale, da se zagotovi, da lahko transakcije potekajo popolnoma zunaj verige.
Mreža strele
Doslej sta Alice in Bob odprla dvosmerni plačilni kanal, ki sta ga oba financirala s petimi bitcoini. Naredili so dve transakciji naprej in nazaj, pri trenutnem stanju kanala pa lahko Alice in Bob zase zahtevata pet bitcoinov, tako da “spustite kanal” na verigi blokov.
Zdaj želijo v kanal vključiti HTLC. To naj bi zagotovilo, da če bo Carol od Boba zahtevala bitcoin v zameno za njeno vrednost, bo Bob v zameno zajamčen Bitcoin od Alice.
Tako kot prejšnji korak, Alice in Bob začneta z ustvarjanjem vsake nove transakcije s prevzemom obveznosti. Te transakcije s prevzemi so v marsičem zelo podobne prejšnjim transakcijam s prevzemi. Vključujejo običajni izhod in izhod na zabaven več-naslovni naslov s časovno zaporo CSV (CheckSequenceVerify) in posebno hash-lock. Podobno kot v prejšnjem koraku Alice in Bob izmenjata svoje stare skrivnosti, da učinkovito razveljavita stari kanal. In ko se izmenjata, lahko Alice in Bob podpišeta polovico transakcij z obveznostmi in ju lahko kadar koli spustita na verigo blokov.
Vse znano ozemlje. Razen ene spremembe. Tako transakcije zavez Alice kot Boba zdaj vključujejo en nov izhod, vreden en bitcoin. (To pomeni, da je tehtnica 4-5-1; štirje za Alice, pet za Boba in eden za nov izhod.)
Ta novi izhod je v bistvu HTLC. In še bolj zabaven je kot vsi drugi izhodi do zdaj, saj ga lahko odklenete na tri načine.
Prvič, novi izhod (tako v transakcijah Alice kot v Bobovih zavezah) sprosti bitcoin pod pogojem, da sta Bobov podpis in vrednost vključena v naslednjo transakcijo. Ne glede na to, ali Alice ali Bob podpišeta in oddaja transakcijo s prevzemom obveznosti, lahko le Bob odklene ta izhod – če vključi vrednost. Vendar obstaja ena majhna razlika med obema transakcijama zavez: če Bob spusti kanal, gre za časovno zaporo CSV. Počakati bo moral 1000 blokov. (Če Alice pusti kanal, lahko ta bitcoin zahteva takoj.)
Razlog, da mora Bob počakati 1000 blokov, če spusti kanal, je zelo podoben tistemu, kar smo videli že prej: Alici omogoča, da sprejme ta bitcoin, če bo Bob kdaj poskušal podpisati in oddati staro stanje kanala. Tu nastopi drugi način za odklepanje rezultatov. Alice lahko “ukrade” sredstva, če priskrbi Bobovo (najnovejšo) skrivnost.
To igro lahko igrata dva: če Alice kdaj skuša prevarati in oddajati ta kanal, ko je že zastarel, lahko Bob ta bitcoin zahteva z uporabo Aliceine skrivnosti. (Vrednosti mu niti ne bi bilo treba navesti.)
In tretjič, tako kot pri katerem koli drugem HTLC, imata obe transakciji prevzema tudi običajni odmik za časovno omejitev CLTV za Alice. Če Bob ne vključi vrednosti v – recimo – dveh tednih (na primer, ker je ni dobil od Carol), lahko Alice zahteva svoj Bitcoin nazaj. Še enkrat, ali bo Alice ali Bob spustil kanal, za to možnost ni pomembno.
Torej, kje nas je vse to pripeljalo?
Tako Alice kot Bob imata polovično veljavno transakcijo. Če Alice svojo transakcijo s prevzemom spusti na verigo blokov, Bob takoj pošlje pet bitcoinov. Poleg tega lahko počaka na 1.000 blokov in zase zahteva štiri bitcoine. Poleg tega ima Bob dva tedna časa, da poda vrednost in zahteva bitcoin v “HTLC output”. (Če vrednosti ne predloži v dveh tednih, lahko Alice ta bitcoin zahteva nazaj.)
Bob medtem lahko kadar koli opusti tudi svojo transakcijo z zavezo in Alice takoj pošlje štiri bitcoin. Nato bi čakal 1000 blokov, da bi z enega naslova zahteval še pet bitcoinov in še en bitcoin iz izhoda HTLC, če navede vrednost. (Če vrednosti ne predloži v dveh tednih, jo lahko Alice povrne.)
In seveda, če bosta Alice ali Bob kadar koli v prihodnosti poskušala varati in podpisati in oddajati ta kanal, ko bo zastarel, lahko oba popolnoma blokirata drugega in ukradeta vse bitkoine na kanalu..
Urejanje stanja
Na tej točki bo Bob zagotovo prejel bitcoin v zameno za vrednost (ob predpostavki, da jo ima). Vse, kar mora storiti, je podpisati in predvajati transakcijo z obveznostmi, ki jo je prejel od Alice, vključiti vrednost v naslednjo transakcijo ter jo podpisati in oddati..
Alice to ve. Nikakor ne more prevarati Boba iz njegovega bitcoina – tudi če bi z drugimi sredstvi ugotovila, kakšna je vrednost.
Kot taka bi se lahko tudi preprosto “naselila” zunaj kanala. Bob lahko preprosto dodeli vrednost Alice, Alice pa se lahko dogovori, da bo stanje kanala posodobila v bolj normalno stanje brez HTLC-ja in končnega roka.
Ob predpostavki, da hočeta obe strani obdržati kanal odprt, bi to seveda storili: manj težav je, kot če bi morali spustiti kanal na verigi blokov.
Zapiranje kanala
In končno, tu je resnična moč mreže Lightning: Skoraj vse, kar je opisano v teh treh člankih, običajno sploh ne bo treba nikoli udariti v verigo Bitcoin.
Če hočeta tako Alice kot tudi Bob “mirno” zapreti kanal, lahko preprosto ustvarite transakcijo iz prvotne otvoritvene transakcije, da preglasite vse, kar se je zgodilo od začetne transakcije. Od te zaključne transakcije si pošljejo svoj pravičen delež kanala, kot ga predstavlja najnovejše stanje kanala.
Konkretno to pomeni, da lahko, če želi Alice zapreti kanal, na tej točki preprosto ustvari transakcijo, s katero si plača štiri bitcoine, Bob pa šest, in prosi Boba, naj transakcijo podpiše in odda. Ker ni razloga, da ga ne bi, bo verjetno sodeloval in zaprl kanal.
Na koncu bosta prek Bitcoin omrežja predvajani samo dve transakciji in vključeni v blok: transakcije odpiranja in zapiranja. To bo veljalo tudi, če bosta Alice in Bob vmes opravila milijonkratne transakcije, kar bo razbremenilo veliko breme stran od verige blokov.
Hvala Rusty Russell in Joseph Poon za informacije in dodane povratne informacije.