Scală cu viteză: rețeaua Bitcoin Lightning explicată
Publicat: 2022-03-11Rețeaua Bitcoin Lightning este o soluție independentă care este anunțată ca soluție la toate problemele care împiedică adoptarea Bitcoin de la curent. Pretinde că rezolvă problema sumbră de scalare, face tranzacții instantanee, păstrează taxele de tranzacție minuscule și îți scoate tranzacțiile de pe blockchain. Cum poate un sistem independent de Bitcoin de bază să ofere aceste îmbunătățiri? Cum poate încălca regulile convenționale ale Bitcoin oferind tranzacții sigure cu zero confirmări? Ce este Bitcoin Lightning Network?
În acest articol, vom explora ce este cu adevărat Bitcoin Lightning Network, cum poate oferi garanțiile pe care le oferă și starea sa actuală.
Notă: Acest articol presupune familiaritatea cu Bitcoin. Dacă nu sunteți familiarizat cu modul în care funcționează criptomonedele sau aveți nevoie de o actualizare, citiți Criptomonede pentru neînțeles: Bitcoin și dincolo.
Condiție preliminară: Problema scalării Bitcoin
Dacă sunteți conștient de problema de scalare Bitcoin, nu ezitați să omiteți această secțiune, dar dacă nu sunteți sau aveți nevoie de o actualizare, citiți mai departe.
Bitcoin are o problemă de scalare. Bitcoin este conceput pentru a stoca toate tranzacțiile într-o structură de date numită bloc. Un bloc conține informații despre blocul anterior, date diverse despre recompensele miniere, iar cea mai mare parte a blocului este doar date de tranzacție. Blocurile sunt, de asemenea, fixate la o dimensiune de maxim 1 MB. Acest ultim bit este locul în care este problema.
Deoarece blocurile au o dimensiune de 1 MB și un bloc este creat la fiecare 10 minute, presupunând că tranzacțiile nu sunt SegWit (apare mai târziu), rețeaua poate procesa maximum între 3,3 și 7 tranzacții pe secundă. Pentru o monedă concepută pentru a fi utilizată în masă de miliarde de oameni și de mașinile lor, 7 tranzacții pe secundă pur și simplu nu sunt la egalitate. Visa, pe de altă parte, pretinde că poate procesa 24.000 de tranzacții pe secundă.
Pe măsură ce numărul de tranzacții începe să crească, tranzacția dvs. individuală concurează cu toate celelalte pentru includerea într-un spațiu limitat de bloc și astfel, probabilitatea de a o include pe a dvs. în bloc începe să scadă. Deoarece minerii pot decide în mod arbitrar ce tranzacții să includă într-un bloc, în aceste ocazii, singura modalitate de a-i stimula pe mineri să includă tranzacția dvs. este prin creșterea taxei de tranzacție. Cu toate acestea, acest lucru începe să facă tranzacțiile prohibitiv de costisitoare, cum ar fi această tranzacție de 192 de octeți pentru 92,98 USD, unde taxa de tranzacție a fost de 14,86 USD.
Deci, cum „scalăm” Bitcoin? Există trei școli majore de gândire sau, așa cum îmi place să le numesc, bătălii din Great Scaling Bitcoin Flamewars:
- Creșterea dimensiunii blocului: 2X, 8X, …, ∞X
- Tranzacții mai mici: SegWit și colab.
- Sidechains: rețeaua Bitcoin Lightning
Creșterea dimensiunii blocului Bitcoin
Acesta este destul de simplu de înțeles: dacă limita de blocare de 1 MB este problema, mărește-o! Dezbaterea pe această temă a fost acerbă și continuă. În cele din urmă, pe 1 august 2017, Bitcoin (BTC) a fost bifurcat și s-a născut Bitcoin Cash (BCH). Diferența majoră dintre cele două este că BCH are blocuri de 8 MB. Acest lucru menține blocurile în mare parte goale și taxele foarte mici.
Cu toate acestea, blocurile de 8 MB înseamnă că dimensiunea totală a blockchain-ului BCH va crește probabil într-un ritm mult mai rapid, ceea ce face din costurile de stocare o barieră semnificativ mai mare la intrarea în scena minerilor. Argumentul este că acest lucru ar reduce numărul total de mineri, care asigură și blockchain-ul, reducând descentralizarea și securitatea generală a rețelei Bitcoin.
O altă critică la adresa blocurilor mai mari este că nu rezolvă problema în sine; mai degrabă, corectează temporar problema. Va exista întotdeauna o limită maximă cu blocuri mai mari, iar limita maximă va fi întotdeauna mult mai mică decât limita țintă pe care încercăm să o atingem: 24.000 de tranzacții pe secundă. Chiar și cu blocurile sale mai mari de 8 MB, BCH are o limită de 61 de tranzacții pe secundă.
Tranzacții mai mici: Martor separat
Alte soluții subliniază că formatul actual de tranzacție nu este cel mai eficient și urmăresc să împacheteze mai multe tranzacții în același bloc. Cel mai notabil dintre acestea se numește Segregated Witness (SegWit), propus prin BIP 91 și activat în blocul 481824 pe 25 august 2017. SegWit face acum parte din Bitcoin, bucură-te!

SegWit preia datele de semnătură din tranzacții și le stochează într-o structură separată de blocul de tranzacții, reducând astfel tranzacțiile individuale și utilizând mai bine spațiul limitat din fiecare bloc. Această structură este apoi opțională la sincronizarea blockchain-ului, ceea ce duce la o dimensiune redusă a discului omis.
Acest lucru are ca rezultat, de asemenea, o soluție la problema maleabilității tranzacțiilor, iar tranzacțiile care cheltuiesc doar ieșirile SegWit nu mai sunt vulnerabile.
Rețeaua Bitcoin Lightning
Rețeaua Lightning este o rețea de nivel al doilea care transmite tranzacții semnate, dar nedifuzate, între egali și se bazează pe blockchain-ul Bitcoin doar pentru decontarea finală a fondurilor. Aceasta înseamnă că tranzacțiile nu se limitează deloc la dimensiunea blocului, timpii de confirmare sunt irelevante și blockchain-ul Bitcoin nu trebuie să stocheze fiecare tranzacție care are loc vreodată.
Cine a dezvoltat Bitcoin Lightning Network? A fost descris pentru prima dată într-o carte albă scrisă de Joseph Poon și Thaddeus Dryja, dar de atunci a evoluat într-un efort comunitar cu persoane terțe și chiar companii care contribuie la specificații și implementări.
Mai multe informații mai târziu.
SegWit vs. Mărimea blocului crescută vs. Bitcoin Lightning Network
Care este cel mai bun, atunci? Nu am dovezi empirice pe care să-mi bazez răspunsul, deci aceasta este o opinie: deși cred că o utilizare mai bună a spațiului bloc (la SegWit) este un lucru bun, cred că o creștere a dimensiunii blocului ar fi ca și cum am împinge țintă către viitor. Dacă utilizarea Bitcoin ar crește substanțial, ne-am trezi chiar de la început dezbaterea despre o altă creștere a dimensiunii blocului.
Dezacord? Lasă un comentariu mai jos!
Acestea fiind spuse, deși cred că o rețea alternativă de decontare precum Bitcoin Lightning este o idee minunată, aștept și să văd cum funcționează în lumea reală. Deocamdată, nu este chiar în starea pe care eu și tatăl meu am putea-o folosi.
Explicația rețelei Bitcoin Lightning
Am menționat deja că Lightning Network este o rețea de nivel al doilea care transmite tranzacții semnate, dar nedifuzate, între egali și se bazează pe blockchain-ul Bitcoin doar pentru decontarea finală a fondurilor.
Să aruncăm o privire la cum ar funcționa asta în viața reală.
Noduri și canale de fulger
Un nod Lightning funcționează la fel și spre deosebire de un nod Bitcoin, prin aceea că funcționează într-o rețea, validează tranzacțiile și comunică cu alte noduri, dar face lucruri pe care nodurile Bitcoin din trecut nu le fac: deține fonduri, acționează ca un intermediar financiar automat. , monitorizează în mod activ „canalele” Lightning pentru comportamentul rău intenționat și reacționează defensiv (acesta este explicat în detaliu mai târziu), etc.
Pentru a îndeplini aceste funcții, nodurile au nevoie de bani.
Notă: Aceste exemple presupun inițial că toată lumea rulează un nod Bitcoin Lightning Network care este conectat la internet 24/7, ceea ce, evident, nu va fi cazul. Această presupunere va fi ruptă în secțiunea Lightning Wallet vs. Lightning Node.
Crearea unui canal fulger
Să presupunem că tu și prietenul tău Bob aveți o relație care implică o sumă destul de mare de tranzacții financiare. Ieșiți împreună din când în când la prânz sau vizionați un film. Uneori, unul dintre voi are lipsă de bani, iar uneori celălalt și, de obicei, ajungeți să vă veniți unul pe celălalt după aceea.
Cu toate acestea, fiind avocați cripto, amândoi decideți să încercați Lightning și să creați un nou canal mutual pe care îl finanțați în mod egal cu jumătate de bitcoin fiecare (adică o mulțime de prânzuri).
Crearea unui nou canal Lightning este ca și cum ai crea un portofel bitcoin cu semnături multiple care necesită ambele semnături pentru a aproba o tranzacție, dar cu o singură diferență; fiecare primește o „tranzacție de angajament”, semnată, dar încă nedifuzată, conform cărții albe Lightning Network, care vă returnează depozitele inițiale. În acest fel, dacă prietenia voastră trece printr-o perioadă dificilă, sau oricare dintre voi are nevoie de bani, puteți închide unilateral canalul prin difuzarea acestei tranzacții și fiecare primește sumele care îi revin.

Efectuați tranzacții fulgerătoare cu persoanele cărora le aveți canale
Să zicem că ieși din nou la prânz într-o zi și ajungi să îi datorezi lui Bob echivalentul a 8.000 de satoshis (0,31 USD când scriu asta). În acest moment, dacă utilizați Bitcoin pentru a deconta această sumă, veți ajunge să plătiți 0,10 USD și să așteptați o oră, făcând acest lucru imposibil.
Cu Lightning, totuși, puteți face acest lucru gratuit, pur și simplu înlocuind „Tranzacția de angajament” cu o nouă tranzacție pe care să o păstrați amândoi. Doar că de data aceasta, Bob are 8.000 de satoshi în plus, iar tu ai mai puțin. (Dacă vă gândiți să înșelați difuzând vechea tranzacție în acest moment, așteptați până la secțiunea despre Închiderea unui canal .)
Puteți difuza tranzacția și închide canalul, totuși, închiderea canalului ar suporta taxe de tranzacție și, deoarece niciunul dintre voi nu are nevoie imediat de suma, puteți pur și simplu să păstrați canalul și să îl utilizați pentru a achita datorii viitoare.
Efectuați tranzacții fulgerătoare cu persoane cărora nu aveți canale
Să spunem că într-o zi, Bob îl invită pe altul dintre prietenii săi, Alice, și după o oră intensă de mâncat sandvișuri, amândoi sunteți datori lui Alice pentru că magazinul a acceptat doar Coinye (o criptomonedă defunctă abandonată după ce Kanye West a dat în judecată), ceea ce Alice s-a întâmplat. a avea.
Acum, presupunând că Bob are un canal deschis cu Alice, cu Lightning, o puteți plăti și pe Alice prin Bob. Nodul tău calculează ruta optimă între tine și Alice – în acest caz, cu Bob ca intermediar financiar – iar intermediarii pot plăti cu toții bani înainte, cu o mică taxă dacă aleg.
Închiderea unui canal: două căi bune și o cale rea
Există trei moduri de a închide un canal Lightning:
- În colaborare: oricare dintre părțile din canal inițiază închiderea unui canal Bitcoin Lightning, iar cealaltă aprobă. Nu există blocare de timp, iar banii sunt gata de cheltuit imediat ce aprobarea este confirmată. Acesta este „cel mai bun” mod de a închide un canal.
- Unilateral: oricare dintre părțile din canal poate închide un canal Bitcoin Lightning atunci când una dintre părți dorește, chiar dacă cealaltă parte nu aprobă. Acest lucru are ca rezultat o blocare a timpului în care cealaltă parte poate contesta beneficiarul cu o tranzacție „Remediere împotriva încălcării” (vezi scenariul 3 de mai jos), dar să presupunem că nu se întâmplă. După expirarea termenului de blocare, fondurile pot fi utilizate gratuit. Aceasta este o modalitate „acceptabilă” de a închide un canal.
- Remediu pentru încălcarea încălcării: Deoarece tranzacțiile fulger sunt o listă marcată de timp de tranzacții semnate în care împărțirea fondurilor variază, este posibil ca una dintre părți să încerce să trișeze (încălcarea încrederii) prin închiderea unilaterală a unui canal cu o tranzacție veche în care deține mai multe fonduri (vezi scenariul 2). Acest lucru are ca rezultat o blocare a timpului și, în această perioadă, partea vătămată nu poate doar să-și recupereze propriile fonduri, ci și să treacă întreaga capacitate a canalului folosind o tranzacție „Breach Remedy”, așa cum este descris în cartea albă Bitcoin Lightning Network.
Lightning Node vs. Lightning Wallet
În exemplul de mai sus, am folosit termenul „nod” Lightning, ceea ce te-ar face să crezi că va trebui să-ți menții nodul activ și funcțional 24/7 pe internet. Și da, ai avea dreptate. Rețeaua Lightning este proiectată astfel încât nodurile să fie mereu online, asigurându-se că rețeaua funcționează aproape de capacitatea maximă. Și, dacă nimeni nu este online pentru a monitoriza o încercare de înșelăciune și aceasta reușește, canalul se va închide la fel ca o închidere unilaterală obișnuită, lăsându-vă fără fonduri.
Cu toate acestea, cartea albă Lightning Network descrie un remediu pentru această problemă:
… ar trebui să monitorizeze periodic blockchain-ul pentru a vedea dacă contrapartea cuiva a difuzat o Tranzacție de angajament invalidată sau să delege o terță parte să facă acest lucru. O terță parte poate fi delegată doar prin acordarea tranzacției de remediere a încălcării acestei terțe părți. Aceștia pot fi stimulați să urmărească difuzarea blockchain-ului unei astfel de tranzacții în caz de răutate a contrapartidei, oferind acestor terți o taxă în rezultat. Întrucât terțul poate lua măsuri numai atunci când contrapartea acționează cu răutate, această terță parte nu are nicio putere de a forța închiderea canalului.
Aceste terțe părți sunt adesea numite turnuri de veghe și ar trebui să elimine povara mereu online de la utilizatori.
Starea rețelei de fulgere
Bitcoin Lightning Network din 27 martie 2019:
- Are peste 7,5 mii de noduri
- Are aproape 40 de mii de canale deschise
- Puțin peste 1 mie BTC în capacitate
Crește într-un ritm de:
- 25 de noduri pe oră
- 304 canale pe oră
Există o mulțime de implementări de noduri Lightning Network, chiar și un Eclair Lightning Wallets pe Play Store. Este încă experimental, îi lipsește lustruirea și caracteristica importantă de a primi fonduri, dar după părerea mea, deși ecosistemul este mic, crește sănătos.
Specificații și implementări
Specificația Bitcoin Lightning Network este în starea Request for Comments (RFC) și este construită dintr-o serie de documente numite Basis of Lightning Technology (BOLTS). BOLTS se schimbă constant de la această publicare și binevenită contribuție.
Există, de asemenea, câteva implementări compatibile cu BOLT ale nodurilor Lightning Network:
- LND: Prescurtare pentru Lightning Network Daemon, aceasta este o implementare bazată în principal pe Go.
- Eclair: O implementare bazată în principal pe Scala.
- C-fulger: O implementare bazată în principal pe C.
Pentru mai multe resurse, consultați concluzia acestui articol.
Avantaje și critici ale rețelei de iluminat
Deci, ce putem realiza cu Lightning Network?
- Adevărate micro-tranzacții (fracții de cenți)
- Cele mai mici comisioane imaginabile (fracțiuni de cenți)
- Un grad de confidențialitate (fără înregistrări blockchain)
Cu toate acestea, așa cum am spus mai devreme, există o serie de critici la adresa rețelei Lightning, unele dintre acestea sunt valide și prezintă provocări încă nerezolvate cu care se confruntă Lightning:
- Rutare și centralizare: Deoarece rețeaua Lightning este într-un flux constant, cu schimbările, deschiderea și închiderea stărilor canalelor în fiecare zi și existența unui stoc centralizat de istorie la care să reveniți, rutele de plată trebuie calculate din nou de fiecare dată. Acest lucru este grozav atunci când rețeaua este mică, dar când devine suficient de mare, nodul dvs. mic care rulează pe un hardware mic s-ar putea să nu aibă puterea de procesare pentru a calcula ruta. Soluția la această problemă poate fi un supernod centralizat cu cunoștințe avansate pe care le puteți interoga. Acest lucru este descris mai detaliat aici.
- Prea multe împrumuturi: cel mai bine descris în această postare, care la făcut chiar și pe Vitalik Buterin, co-fondatorul Ethereum, să participe. Acest lucru spune în esență că, deoarece un lanț de 10 hamei pentru a plăti 10 dolari necesită ca toată lumea să plătească 10 dolari înainte, ai ajunge să mute 100 USD în fonduri. La un moment dat, mutarea unor cantități mari devine imposibilă. Încă nu a fost stabilit dacă acest lucru este adevărat sau nu în lumea reală, dar acesta este totuși un argument convingător.
Am ratat vreo critică? Vă rog să-mi spuneți în comentariile de mai jos.
Lecturi și resurse suplimentare
Sper că în sfârșit înțelegeți ce este cu adevărat Lightning Network. Sub toate acestea, este doar un sistem de mesagerie bazat pe schimbul de jetoane criptografice. Nu este încă perfect sau utilizabil pe scară largă, dar asta nu înseamnă că nu este o piesă de inginerie impresionantă.
Recomand să citiți cartea albă originală Bitcoin Lightning Network. De asemenea, aș putea recomanda o listă de lecturi și aplicații suplimentare, cărți și lucrări, dar utilizatorul GitHub Ben Congdon a făcut deja acest lucru, așa că recomand să verifici bcongdon/awesome-lightning-network
. Multumesc Ben! În calitate de dezvoltator Bitcoin, vă datorați să citiți cât mai multe despre această nouă tehnologie.
Dacă toate acestea au fost prea multe informații, să încheiem asta cu o notă amuzantă. Iată un videoclip distractiv cu presupusul Satoshi Craig Wright care încearcă să vorbească despre vremurile bune ale bitcoin.