Ako ste ikad imali posla s Bitcoinom, možda ste patili od sat vremena (ili u najgorem slučaju cjelodnevnih) vremena transakcija. Bitcoin postaje uobičajeno zaostaci od 150.000+ nepotvrđenih transakcija u vrijeme velikog obima transakcija, i kad ovo spojimo s njegovim pretjeranim naknadama, čudo je kako ćete to ikada iskoristiti za platite taj obrok od 5 komada u KFC-u.
Munjska mreža je tu da vam pomogne u tome. Ovaj je koncept zamisao Thaddeusa Dryje i Josepha Poona, a dvojac ga je predstavio s bijeli papir još 2015. Ako niste previše zainteresirani za čitanje dugačke papirnate krede pune tehnološkog žargona, ovdje ćemo vam to laički objasniti.
Što je Lightning Network?
Na svojoj najosnovnijoj razini, gromobranska mreža je metoda kojom korisnici Bitcoina mogu razmijeniti vrijednost valute s Bitcoin blockchaina. To se postiže korištenjem nekoliko složenih algoritama koji komuniciraju s osnovnom skriptom Bitcoina, a omogućuje, tačno, munjevita brza plaćanja u djeliću naknada za transakcije. Kao takav, predstavljen je kao neophodan alat za skalabilnost, koji će bitcoin trebati ako želi biti održiva opcija plaćanja u budućnosti. Ova se praksa može proširiti na atomske zamjene s više lanaca. Te su zamjene u praksi iste, osim što se odvijaju između dvije različite valute / blockchaina. Ovdje detaljnije prelazimo preko atomskih zamjena.
Sad kad smo pokrili previše previše jednostavno objašnjenje, vrijeme je za duže.
Lightning Network: kako to radi
Otvaranje dvostranog kanala plaćanja
Da biste započeli s upotrebom munjevne mreže, želite postaviti kanal za plaćanje. Kanali plaćanja su transakcijski put kroz koji gromobranska mreža prenosi vrijednost. Da biste ga uspostavili, morate otvoriti transakciju za ovaj kanal izravno na blockchainu.
“Ali mislio sam da si rekao da se sve ovo odvija izvan lanca?” Ne brinite – i dalje je tako, ali prvo morate obavijestiti Bitcoin mrežu da otvarate transakciju. Nakon što to učinite, vi i druga strana s kojom obavljate transakcije vodit ćete vlastitu bilancu razmjena koje napravite na kanalu. Transakcije i ažurirani saldi računa evidentirat će se na ovoj knjizi svaki put kad se sredstva premještaju, a nakon što budete vodili svoje poslovanje na kanalu, konačni rezultat emitirat ćete u blockchain da zatvorite račun.
Novčanici s više potpisa
“Dakle, ako se kanali plaćanja odvijaju izvan lanca, gdje / kako se upravlja sredstvima dok se ne zabilježe na blockchain?” Kakvo lijepo pitanje. Da bi koristile kanal plaćanja, obje strane trebaju poslati svoja sredstva na adresu novčanika s više potpisa.
Recimo da su Molly i Steve kladili se na ishod Super Bowla. Svaki se kladi na 1 BTC i želi biti siguran da će drugi držati svoj kraj dogovora, pa deponiraju oba svoja sredstva u novčanik s više potpisa. Ovaj novčanik funkcionira poput sefa za depozite, dok skup privatnih ključeva za transakcije funkcionira poput kombinacija koje omogućuju bilo kojoj strani pristup sredstvima. Sredstva će ostati zaključana u novčaniku dok:
- i Molly i Steve potpisuju završnu transakciju s ovim privatnim ključevima,
- jedna strana odluči sama finalizirati transakciju ili
- doseže se vremensko ograničenje i transakcija se automatski predaje. Kad se to dogodi, sredstva će se vratiti natrag u pojedinačne novčanike bilo koje strane.
Da bi uspješno postavili novčanik s više potpisa, i Molly i Steve stvaraju vrijednost (u biti, tajni ključ za otključavanje transakcija) koju zatim koriste za stvaranje hasha i međusobno slanje. Držite se ovih podataka – od vitalne je važnosti za razumijevanje kako transakcije obveza funkcioniraju kasnije.
Jednom kad Molly i Steve polože svoja sredstva u novčanik s više potpisa, tada mogu stvoriti ono što se naziva otvorena transakcija i emitirati ga na blockchain. Nakon što se ovo emitira, serija transakcije obveza zatim se koriste za upravljanje sredstvima.
Prijenos vrijednosti transakcijama obveza
Ispalo je da je Molly dobila okladu, ali je dobra, pa kaže kako joj Steve duguje samo 0,5 BTC umjesto 1. Da bi pokrenuli prijenos ovog bogatstva, Molly i Steve ažurirali bi svoje stanje na kanalu za plaćanje potpisivanjem obveze transakcija. Transakcije kojima se preuzimaju obveze dijele sredstva između oba sudionika prema njihovom međusobnom dogovoru – u osnovi te transakcije djeluju poput IOU-a koji će se isplatiti nakon zatvaranja kanala plaćanja.
Primjerice, da bi razmijenila vrijednosti, Molly potpisuje transakciju koja šalje 1,5 BTC sebi i 0,5 na novu adresu novčanika s više potpisa. Zatim ona potpisuje ovu transakciju i šalje hash Steveu. Zauzvrat, Steve potpisuje transakciju obveze kojom se preslikava Molly’s, pri čemu sebi šalje 0,5 BTC i 1,5 u drugi novčanik s više potpisa. Zatim to potpisuje i šalje hash ove transakcije Molly.
Dakle, imamo: a) originalna 2 BTC koji sjede u novčaniku s više potpisa s kanalom za plaćanje, b) .5 BTC koji sjede u novčaniku s više potpisa koji se plaća Steveu, i c) 1,5 BTC koji sjede u više potpisa novčanik koji se plaća Molly. U stvari, kad bilo koja strana pošalje odgovarajuće hashove transakcija, bilanca u višestrukom potpisu platnog kanala ažurirat će se jer su se obje strane složile s prijenosom. Viola, valute su razmijenjene bez upotrebe Bitcoin-ovog blockchaina.
Vrijednosti iz ovih novčanika mogu se otključati samo pod tri uvjeta:
- istekne određeno vrijeme,
- bilo koja strana otključava sredstva iz novčanika s više potpisa s vrijednošću (ključem) novčanika, ili
- obje strane odluče se zajedno potpisati na transakciji.
Važno je napomenuti da će, ako jedna strana odluči zatvoriti kanal i odjaviti se samo za transakciju, morat će pričekati unaprijed određeno vrijeme (diktirano ugovorom) od trenutka potpisivanja transakcije. da primi svoja sredstva. To se može činiti pretjeranim, ali nužno je spriječiti varanje putem kanala plaćanja – malo više o tome.
Ponavljajuća plaćanja / ažuriranje kanala
Što ako Molly i Steve žele nastaviti ažurirati kanal ili izvršiti više razmjena?
Da to dodatno ilustriramo, recimo da je Steve Molly plaćao redovnu uslugu, poput šišanja. Steve položi 0,2 BTC u njihov novčanik s više potpisa i svaki put kad dovede svoje brave u red, potpisuje transakciju obveze s Molly za 0,001 BTC i šalje je na novu adresu s više potpisa. Da bi to učinio, morao bi ponoviti korake koje smo upravo prešli, bez otvaranja transakcije na mreži, što je postignuto do trenutka potpisivanja prve transakcije obveze.
Dakle, da bi se obrađivale periodične isplate, stanja na računu u multi-sigu moraju se svaki put ažurirati. Da bi to učinio, svaki put kad bi se Steve ošišao, novčaniku s više potpisa potpisao bi novu svotu novca koju je postavio da plati Molly. Ali pritom on stvara novu vrijednost i novi hash za ovu novu transakciju. Molly čini isto, a kada obje strane razmijene nove hashove, uključuju i stare vrijednosti (ključeve) za prethodnu transakciju.
Zapravo to osigurava da niti jedna strana ne može prevariti drugu. Ako nakon zatvaranja kanala za plaćanje Steve pokuša prevariti Molly iz plaćanja plasiranjem starog iznosa transakcije, on je u nevolji.
Na primjer, ako kada zatvori kanal, Steve duguje Molly 1 BTC od originalnih 2 BTC-a koja je položio, ali potpiše originalnu transakciju kako bi sebi dao izvorni iznos, Molly ga može nazvati na nju jer ima vrijednosti iz svih prethodnih transakcija . Štoviše, Steve mora pričekati prije nego što se njegova transakcija očisti u skladu s vremenskim okvirom o kojem su se obje strane dogovorile prije obavljanja posla, dok je Molly’s instant. Dakle, ako vidi da joj je za svoje usluge plaćeno 0 BTC, može se odjaviti na 2 BTC u novčaniku s više potpisa jer ima ključ za ovu transakciju, a time i mogućnost otključavanja sredstava.
Dakle, ako jedna stranka pokuša prevariti drugu, suprotnoj se stranci dodjeljuju sva sredstva zlonamjerne stranke. Ova je kazna namijenjena odvraćanju loših aktera od zlouporabe raspodjele zajedničkog fonda platnog kanala.
Uz to, operateri čvorova i rudari koji uoče ovu faul igru mogu djelovati u Mollyno ime ako ona nije na mreži da primijeti varanje. Kao naknadu, tim anđelima čuvarima se dodjeljuje nagrada (naknada) u transakcijskoj valuti za njihove usluge.
Zatvaranje kanala plaćanja
Kad su Molly i Steve spremni zatvoriti svoje račune, oni jednostavno potpišu transakciju svojim privatnim ključevima kako bi svoje posljednje stanje na računu emitirali u blockchain. U ovom će ga trenutku rudari provjeriti po običaju i pohraniti u javnu knjigu. Kao i kod transakcije otvaranja, i ova transakcija zatvaranja jedina je interakcija koju će bilo koja strana imati s Bitcoinovim blockchainom.
Dvije strane također mogu odrediti datum isteka duljine ugovora. Na primjer, pomoću algoritma nLockTime mogli bi otvoriti kanal plaćanja na 30 dana, nakon čega će se kanal zatvoriti i konačni saldi bit će emitirani na blockchain. Međutim, svaki put kad stranke žele ažurirati svoje bilance, datum isteka se smanjuje. Dakle, ako su Molly i Steve kladili na više nogometnih utakmica tijekom sezone, svaki put kad bi se uplaćivalo oklade, nLockTime ugovor imao bi novi, skraćeni datum isteka (npr. Ako bi prva transakcija obveze bila finalizirana za 30 dana, druga transakcija bi se isplatila za 29, zatim bi se treća isplatila za 28 i tako dalje).
Svrha ugovora nLockTime je jednostavna: održava ažurna stanja na računu i sprječava jednu stranku da krivotvori izvod računa. Kao što smo ranije prešli, svaki put kada se dogovori transakcija obveze, staro stanje računa zamjenjuje se novim, a svaka uključena strana ima evidenciju o tom novom stanju, kao i staru vrijednost transakcije (ključ). Ako bilo koja stranka pokuša prevariti drugu, lažna stranka bit će kažnjena.
Višekanalna plaćanja i ugovori s zaključanim vremenom
“Što ako Molly i Steve žele međusobno slati Bitcoin, ali nemaju otvoren kanal za plaćanje?” Pa, mogu proći posrednika. Nazvat ćemo ovog tipa Chuck-pozdravi Chucka.
Ispalo je da i Molly i Steve imaju otvorene kanale plaćanja s Chuckom, pa umjesto da otvore novi kanal, odlučili su nam svoje dvosmjerne kanale plaćanja za trgovanje putem Chucka.
Ovo je teoretski trgovina s povjerenjem, pa trik olakšava razmjenu na siguran način. Da bi to učinila, Lightning Network provodi ugovore zaključane vremenskim ograničenjem (HTLC).
Recimo da Molly želi dati Steveu 0,5 BTC-a jer je ona baš jako draga – ozbiljno, kakva breskva. Da bi to učinio, Steve mora stvoriti niz kriptografskih brojeva koji se nazivaju vrijednost (u osnovi kôd za potvrdu ili ključ). Zatim stvara hash te vrijednosti koji će poslati Molly. Da bismo pojednostavili ovu napisanu ilustraciju, vrijednost ćemo predstaviti s V, a hash s H.
Kad Molly primi H, podijeli ga s Chuckom. U ovom trenutku Molly će Chucku poslati 0,5 BTC samo ako otkrije V. Da bi dobio V, Chuck šalje Steveu 0,5 vlastitog BTC-a u zamjenu za V. Jednom kad dobije ovaj broj, V šalje Molly koja zatim šalje 0,5 BTC za Chucka. Eto vam ga – Molly je efektivno prenijela 0,5 BTC Steveu.
U slučaju da ste se izgubili, evo kako je to krenulo prema dolje:
Steve stvara V i H → Steve šalje H Molly → Molly šalje H Chucku → Chuck šalje BTC Steveu → Steve šalje V Chucku → Chuck šalje V Mollyju → Molly šalje BTC Chucku
Dakle, vrijednost (V) služi kao potvrdni kod / ključ za hash (H), što predstavlja potvrdu / zaključavanje za transakciju.
“To je sve u redu, ali kako Molly zna da je vrijednost koju joj Chuck šalje legitimna i što sprječava Stevea da pobjegne s BTC Chuckom?”
Opet, dobra pitanja. Baš kao što nLockTime drži sve iskrene u dvosmjernom kanalu plaćanja, tako i Ugovori zaključani raspršivanjem drže stranke odgovornima u ovom modelu.
Kod HTLC-a, Bitcoin sredstva kojima se transakcija zaključavaju se ponovno u novčaniku s više potpisa i mogu se otključati tek a) nakon što se prikažu vrijednost (V) i hash (H) ili b) ugovor istječe nakon isteka razdoblja.
Zapravo to znači da, kad Molly i Chuck postignu dogovor da Molly plati Steveu, zaključa Bitcoin koji duguje Chucku u novčanik s više potpisa koristeći HTLC. Jednom kada Chuck plati Steveu i primi V, on tada može unijeti V i H u HTLC da bi mu se nadoknadio Bitcoin Molly predan ugovoru. Alternativno, ako Chuck ne uspije održati kraj dogovora i ugovor istekne nakon, recimo, tjedan dana, tada se Mollyin Bitcoin oslobađa i vraća u svoj osobni novčanik.
Ista interakcija odvija se na vlastitom kanalu plaćanja Chucka i Stevea. Chuck se ne može odreći svog Bitcoina Steveu dok Steve ne otkrije V. Jednom kada Steve otkrije V u multi-sig ugovoru, Chuck sada ima V i Steve dobiva svoj BTC.
Taj bi se postupak, teoretski, mogao provoditi kroz višestruke kanale plaćanja i više pojedinaca.
Završetak: Zašto je mreža munje važna
Komplicirana je to tema. Sinteza ovih podataka u probavljive dijelove bila je dovoljno teška, pa vas pozdravljam što ste se tako dugo držali.
Za TL; DR rekapitulaciju: Lightning Network je izvanlančani sustav koji omogućava pojedincima da više puta zamijene valute bez da sve ove transakcije stavljaju u lanac. Umjesto toga, na blockchainu se bilježe samo dvije transakcije (i otvaranje i zatvaranje), dok se sve ostale transakcije, koliko ih može biti, obrađuju kroz sekundarni sloj izvanlančnih čvorova..
Postoji nekoliko ključnih prednosti ovog modela:
Učinkovite mikrotransakcije: Mreža munje usmjerena je prema mikrotransakcijama. Umjesto da mora plaćati pretjerane naknade koje bi mogle premašiti vrijednost koja se prenosi, Lighting Network omogućuje korisnicima slanje malih iznosa valute jedni drugima bez potrebe da izravno prolaze kroz Bitcoin mrežu. Još uvijek moraju platiti naknadu za rad čvora, ali to je malo u usporedbi s uobičajenom mrežnom naknadom za Bitcoin.
Rješenja za skalabilnost i kašnjenje: Idući uz prethodnu točku, Lightning Network smanjio bi napuhavanje mreže. Smanjivanje broja lančanih transakcija znači manje posla za rudare, što zauzvrat znači brže vrijeme transakcija i niže naknade. Ako se svaka transakcija ne mora staviti na javnu knjigu blockchaina, mreža bi radila mnogo uglađenije. Nadalje, transakcije Lightning Network-a bile bi mnogo brže od onih na lancu.
Vjerojatno se pitate kako bi se svaki prosječni korisnik mogao pravilno kretati postupkom u više koraka koji smo upravo opisali. Pa, Dryja, Poon i drugi rade na aplikacijama / sučeljima koja za vas odrađuju sve složene korake – sve što trebate je pritisnuti nekoliko gumba.
Trenutno se razvijaju Lightning Networks za Bitcoin, Litecoin i Vertcoin. Mreža munja još uvijek postoji testnet, a niti jedan glavni mrežni datum lansiranja još nije potvrđen u vrijeme ove publikacije.