Bitcoin je često nepraktično koristiti zbog sporosti i skupoće transakcija tog blockchaina, te ga većina ljudi koristi kao osnovu za trgovanje na burzama ili kao digitalno zlato. Koncept poznat pod imenom Lightning Network (LN) reklamira se kao rješenje tog problema skalabilnosti.

Osnove Lightning Networka

Lightning Network je prvi puta opisan početkom 2015 u odgovarajućem whitepaperu. Osmislili su ga Joseph Poon i Thaddeus Dryja, no zapravo je sam autor Bitcoina, Satoshi Nakamoto, iza koncepta kao što možemo vidjeti iz njegovog e-maila Mikeu Hearnu iz 2013.

Ukratko, LN se zasniva na principu payment channela (platnih kanala) koji su zapravo multi-sig walleti (multiple signature walleti – novčanici od više potpisa). Multi sig walleti su Bitcoin adrese kod kojih je za trošenje sredstava potrebno više privatnih ključeva, tj. više korisnika mora istovremeno odobriti slanje. Multi-sig wallete možete usporediti s bankovnim trezorima koji zahtjevaju okretanje dva ključa istovremeno da bi se otvorili.

Trezor s dva ključa

Primjerice, multi-sig wallet može biti zajednička bitcoin adresa nekog kućanstva. Muž i žena oboje imaju zajedničku bilancu BTCa, a za trošenje sredstava s iste oboje trebaju potvrditi transakciju svojim privatnim ključem inače sredstva nije moguće potrošiti.

Svrha payment channela je redovito vršenje manjih plaćanja i izbjegavanje visokih troškova transakcija. Npr. poslodavac-posloprimac, potrošač-pružač usluga poput struje ili vode, kupac-kafić, itd. Ideja je da kupac može otvoriti platni kanal (payment channel) sa svojim kafićem i tada mu redovito prenositi uplate prema potrebi bez čekanja potvrde transakcija (trenutno je potrebno počekati minimalno 10 minuta, a najčešće 60 minuta prilikom trošenja Bitcoina u nekom dućanu).

Kako Lightning Network funkcionira?

Alice i Bob

Objasnimo na primjeru, korak po korak.

Naš imaginarni scenarij je sljedeći: Bob želi platiti Alice da mu piše članke. Dogovor je 10 BTC ukupno za 100 članaka, ili 0.1 po članku.

U tradicionalnom Bitcoin sustavu to bi zahtjevalo 100 transakcija od kojih bi svaka trajala u prosjeku sat vremena i koštala od $1 do $100, ovisno o zakrčenosti mreže. Da uštede na troškovima i vremenu, odlučuju se za LN.

Korak 1: Otvaranje kanala

Bob šalje transakciju za otvaranje kanala
Bob šalje transakciju za otvaranje kanala

Bob kreira regularnu Bitcoin transackiju na glavnom lancu u kojoj definira sljedeće:

  • s kime otvara kanal
  • koliko BTC-a želi poslati u taj kanal (10 BTC)
  • nakon koliko vremena (npr. tjedan dana) ima pravo da preuzme poslanih 10 BTC na nazad na vlastitu adresu ako se Alice ne očituje

Potonje je zapravo odvojena pod-transakcija u glavnoj transakciji s “timelock” funkcijom (vremenskim zaključavanjem) koja kaže da unatoč tome što su je potvrdila oba potrebna sudionika, ona ne može biti važeća do kad zadano vrijeme ne istekne.

Dakle, Bob šalje Alice dvije transakcije: jednu u kojoj predlaže otvorenje platnog kanala i šalje 10 BTC u multi-sig adresu koja se otvorenjem kreira, i drugu u kojoj tih 10 BTC šalje nazad sebi ali tek nakon 7 dana ako se Alice ne očituje.

Korak 2: Prihvaćanje otvaranja kanala

Alice prihvaća i potpisuje
Alice prihvaća i potpisuje

Alice prima dvije predložene transakcije iz kojih je vidljivo da Bob nudi 10 BTC u multi-sig adresi za njih dvoje s tjedan dana zaključavanja za neočitovanje, nakon čega se sredstva vraćaju Bobu. Alice to prihvaća i potpisuje transakcije. Transakcije tada potpisane sjede u LN-u i čekaju na slanje na blockchain.

Potpisane transakcije čekaju
Potpisane transakcije čekaju

Tek kada transakciju potpišu obje strane potrebne za potvrdu se ta transakcija šalje u glavni Bitcoin blockchain.

Bitno je definirati dva termina: potpisana transakcija i poslana transakcija. Potpisana je ona koju oba čvora prihvate, ali je ne šalju na mrežu. Poslana transakcija se šalje na blockchain i otvara/zatvara platni kanal.

Potpisivanje i slanje prve otvara kanal i uzrokuje prebačaj 10 BTC s Bobovog računa na multi-sig račun koji se kreirao. Potpisivanje druge, iako odmah potvrđuje prijenos svih 10 BTC nazad na Bobov račun, postaje aktivno tek nakon tjedan dana.

Kanal je otvoren, transakcije su u blockchainu
Kanal je otvoren, transakcije su u blockchainu

Alice i Bob ovime imaju tjedan dana da urade prvi dio posla.

3. Slanje prve transakcije

Alice je napisala prvi članak i Bobu se članak sviđa. On plaća 0.1 BTC prema dogovoru tako da čini sljedeće:

  • generira novu transakciju u kojoj kaže “S multi-sig adrese šaljem Alice 0.1 od ukupno 10 BTC a 9.9 BTC šaljem sebi”, a uz tu transakciju generira još jednu: “Ako Alice ne potvrdi ovu transakciju za tjedan dana, imam pravo uzeti svih 10BTC, uključujući još neposlanih 0.1 BTC, nazad na svoj račun”
  • šalje transakcije Alice na potpis putem Lightning Network čvora, bez da ih šalje na glavni blockchain. Prisjetimo se: transakcije se šalju na glavni blockchain tek kada ih obje strane potpišu i pošalju.
  • Alice prima transakcije i provjerava uvjete: “0.1 BTC za članak, OK, imam tjedan dana da prihvatim i dobiti ću 0.1 BTC, to znači da imam tjedan dana da pošaljem novi članak.”
Bob šalje prvu transakciju
Bob šalje prvu transakciju

S Bobove strane, ovo stanje je potpisano i spremno za obvezivanje s Alicine strane.

Alice ne mora potpisati transakcije koje joj Bob nanovo šalje. Alice ne smije nipošto potpisati i poslati tu skupnu transakciju na blockchain već je ostavlja “na stolu”, kako se ne bi uzrokovalo podmirenje transakcije i zatvorio platni kanal.

To “ostavljanje na stolu” je zapravo dio koji rješava Lightning Network čvor tj. LN wallet kojeg Alice koristi – softver te uvjete prihvaća i potpisuje, ali na Lightning Network sloju, ne na glavnom sloju Bitcoin blockchaina. Nakon potvrde da prihvaća, novo stanje multi-sig walleta postaje trenutno.

Alice potpisuje
Alice potpisuje

Transakcija u trenutnom stanju je nepromjenjiva i uvjeti opisani u njoj moraju se ostvariti prije nego dođe do ikakve promjene: ili tjedan dana mora isteći, ili Alice mora potvrditi (potpisati i poslati transakciju) preuzimanje samo 0.1 BTC od ukupnih 10 u kanalu.

4. Slanje druge transakcije

Alice za 3 dana šalje novi članak i na Bobu je da pošalje novih 0.1 BTC. Budući da nije moguće promijeniti prošlu transakciju već je samo moguće generirati noviju koja ima ažurnije stanje, Bob ne može poslati još 0.1 BTC već radi sljedeće:

Bob generira novu transakciju u kojoj kaže: “S multi-sig adrese šaljem Alice 0.2 od ukupno 10 BTC, a 9.8 BTC šaljem sebi.” Uz tu transakciju generira još jednu: “Ako alice ne pošalje ovu transakciju za tjedan dana, imam pravo preuzeti svih 10 BTC iz kanala.”

Nove transakcija od Boba prepisuje staru
Nove transakcija od Boba prepisuje staru

Alice sada ima priliku ili potpisati transakciju i poslati je, preuzeti 0.2 BTC i time završiti radni odnos, ili nastaviti radni odnos, poslati daljnje članke i dobivati nove inkrementalne transakcije, ili ne reagirati na tjedan dana i izgubiti sve.

Alice potpisue drugu transakciju
Alice potpisue drugu transakciju

5. Smanjenje plaće

U drugom je članku Alice optužila konkurentsku firmu za plagijat bez da je situaciju dovoljno istražila. To je naškodilo ugledu tvrtke i Bob joj da bi je upozorio odluči smanjiti plaću za zadnje poslani članak na pola.

Bob generira novu transakciju u kojoj kaže: “S multi-sig adrese šaljem Alice 0.15 od ukupno 10 BTC, a 9.85 BTC šaljem sebi.” Uz tu transakciju generira još jednu: “Ako alice ne pošalje ovu transakciju za tjedan dana, imam pravo preuzeti svih 10 BTC iz kanala.”

Smanjenje plaće od strane Boba
Smanjenje plaće od strane Boba

Ovime sada Alice ima priliku napraviti jedno od sljedećeg:

  • može poslati zadnju potpisanu transakciju – onu za 0.2 BTC, i time uzeti više nego joj Bob trenutno nudi ali time završiti radni odnos
  • može prihvatiti ovo smanjenje, potpisati novu transakciju i nastaviti radni odnos
  • može ne reagirati na tjedan dana i izgubiti sve

5.a. Alice vara

Pretpostavimo da je Alice prihvatila smanjenje, ali zbog incidenta oko drugog članka radni odnos trajno narušen i Alice želi izaći.

Što ako Alice odluči potpisati i poslati onu transakciju prije smanjenja, onu u kojoj je još uvijek imala 0.2 BTC, i tako završiti posao?

Alice cilja poslati stariju transakciju
Alice cilja poslati stariju transakciju

Lightning Network je podešen tako da potpisane (ali ne poslane) transakcije transakcije rangira po starosti. Pokušaj slanja transakcije koja nije ažurna, dakle one od 0.2 BTC za Alice, je prekršaj i sustav pošiljatelja takve transakcije kažnjava aktivacijom reclaim transakcije – one “pod-transakcije” koju je Bob definirao za slučaj da se Alice ne oglasi tjedan dana.

Taj sigurnosni sustav sprječava da se transakcija koja ne smije biti poslana bude poslana, ali ima druge implikacije – upravo zbog toga korisnici trebaju biti stalno spojeni na internet da bi njihovi čvorovi mogli komunicirati oko ovakvih situacija. Da bi se spriječila potreba za konstantnim bivanjem online, uvodi se koncept Watchtowera koji ćemo pokriti u odvojenom članku.

5.b. Bob vara

Pretpostavimo sada da je Bob onaj koji želi varati. Recimo da je Alice poslala 3. članak, ali Bob da je kazni odluči ne platiti taj članak. Alice ne zna hoće li za ikoji drugi članak biti plaćena i želi završiti radni odnos. Alice može jednostavno poslati zadnju potpisanu transakciju i prenijeti će joj se 0.15 BTC. Izgubiti će količinu novca koja odgovara radu na jednom (trećem) članku.

Zadnja transakcija je OK za slanje na blockchain
Zadnja transakcija je OK za slanje na blockchain

No što ako se Bob na to dodatno uvrijedi i odluči u sustav poslati još jednu transakciju u kojoj kaže: “Iz multi-sig adrese šaljem 0 na Alice, i 10 BTC na sebe, i ako se za tjedan dana Alice ne očituje, svejedno sve ide meni”.

Tu je vrlo bitan koncept potpisanih i poslanih transakcija koje smo spomenuli prije. Transakcija da bi bila važeća u LN multi-sig adresi mora biti potpisana od obje strane, ali ne poslana (slanje je šalje na blockchain i zatvara kanal). Ako Alice ne potpiše ovu izmjenu stanja, Bob je nemoćan – zadnja predložena i potpisana transakcija je još uvijek važeća, i to je upravo ona za 0.15 BTC na Alice.

Alice odbija Bobovu prijevaru
Alice odbija Bobovu prijevaru

Time je Alice sigurna i ne može izgubiti više novca nego je izgubila na pisanju trećeg članka.

5.c. Svi članci su poslani i plaćeni

Alternativa koja je najbolja za sve je da Alice odradi svoj posao savršeno, a Bob redovito šalje inkrementalne transakcije u LN prema odrađenom poslu. Uzmemo li u obzir još koji gaf s Alicine strane, pretpostavimo da je Bob poslao ukupno 9.9 BTC na Alice, i 0.1 BTC sebi. Oboje su s tim prijedlogom zadovoljni, te Alice potpisuje i šalje tu transakciju.

Alice potpisuje i šalje zadnju transakciju
Alice potpisuje i šalje zadnju transakciju

Dešava se sljedeće:

  • Alice potpisuje i šalje transakciju, i transakcija se šalje u blockchain
  • Transakcija, budući da je prava, uzrokuje transakcijski trošak. No budući da se radi o samo jednoj, a ne 100 transakcija koje ta jedna transakcija sadrži, cijeli prijenos košta samo koliko jedna transakcija košta.
  • U roku od 10 minuta do sat vremena transakcija će biti finalizirana na Bitcoin blockchainu i novci će biti preneseni a kanal zatvoren.
Konačna transakcija je u blockchainu
Konačna transakcija je u blockchainu

Bitno je napomenuti da iako taj proces trenutno zvuči komplicirano, radi se na maskiranju te kompleksnosti od korisnika. Očekuje se da će te payment channels (platne kanale) LN novčanici sami kreirati u pozadini bez znanja korisnika, tako da će promjena od trenutnog sistema biti neprimjetna.

Mreža i dodatni čvorovi

U primjeru gore Alice i Bob imaju jasno definirani odnos koji ima ciljani završetak. U teoriji, platni kanali će ostajati otvoreni u nedogled kako bi moglo doći do routinga – spajanja čvorova jednih s drugima preko drugih čvorova. To je korisno ako recimo Bob ima posao i za Roka koji je grafički dizajner. Ako Bob posluje i s Rokom u kanalu od 10 BTC, a Alice jednom zatreba (mimo posla s Bobom) neki rad od Roka, ona može Roku poslati novac preko LN-a bez da otvara kanal s njime – Bob im može biti posrednik jer vrti Lightning Network node koji to omogućuje.

Slanje Roku preko Boba
Slanje Roku preko Boba

Kada Alice šalje Roku 0.1 BTC preko LN-a, i LN je uspješno samostalno našao put do Roka kroz Boba (to traženje puta je jedan od problema u LN-u na kojem se trenutno radi) ona prvo šalje Bobu 0.1 BTC, a Bob šalje 0.1 svojih BTC Roku. Taj lanac akcija simulira direktno slanje od Alice k Roku. Problem kod ovog dijela je to da Bob mora imati otvoreni kanal od 0.1 BTC ili više i s Alice i s Rokom da bi mogao pomoći pri ovom prijenosu. Ako Alice poželi ponovno poslati neki iznos Roku preko Boba, ona to ne može prije nego joj Bob plati novi članak i napuni kanal u njenom smjeru. Ovaj video to dobro objašnjava.

Ovo je argument za vječitu otvorenost kanala i trajno zaključavanje sredstava u LN-u jer se pretpostavlja da će raširenost LNa biti tolika da će biti moguće platiti nekome na drugom kraju svijeta bez obzira na broj skokova do njegovog čvora. No sve to to ima svoj set problema koje ćemo detaljno razraditi u naknadnom članku.

Zaključak

U osnovi, LN je praktično rješenje za neke probleme koji trenutno u Bitcoin mreži ne postoje. Čini li ga to efikasnim načinom za skaliranje BTC-a? Mi smatramo da ne zbog nekih naoko nerješivih problema koje ćemo detaljno proučiti naknadno, ali vjerujemo da je svejedno zanimljiva nadogradnja na standardni protokol.

3 COMMENTS

  1. Lightning network is banker’s attempt to create a system that will hide behind name of Bitcoin, to make people think they are using a decentralised system, but Lighting is not a Bitcoin system, it is not decentralised, it is not even a blockchain.

  2. Also, the only reason Bitcoin BTC (not the Bitcoin system itself) is having issues with slow confirmations and very high fees, is because this was created artificially and intentionally by the people in Bitcoin Core developer team, who work for Blockstream corporation (which is funded by bankers), they are the ones that created scaling issue and lack of capacity, Bitcoin system itself does not have such problem at all.

    And for people that are not aware of this, Bitcoin Cash, a fork of Bitcoin BTC which was created on 1st August 2017, is actual Bitcoin system with increased capacity (larger blocks) which already solved the issue that was created by those people from Blockstream.

    Bitcoin Cash is working as actual Bitcoin system, this Lighting network that Blockstream is working on, is actually a centralised system that bankers can use to maintain their monopoly and control over everyone’s finances (the way they have been doing it all this time).

    Bitcoin Cash is the real Bitcoin system, also because with SegWit fork that Bitcoin BTC went through soon after the Bitcoin Cash was created, does not comply with Bitcoin system rules.

    Feel free to watch more about this very topic of Bitcoin BTC vs Bitcoin BCH, and Lighitng network on my channel here: https://www.youtube.com/channel/UCKqVuMDIfxjtooRKCS-G0hg

LEAVE A REPLY

Please enter your comment!
Please enter your name here