Introducere

Scalabilitatea se referă, în linii mari, la capacitatea unui sistem de a crește pentru a face față cererii tot mai mari. În calcul, ați putea crește performanța mașinii dvs. prin modernizarea hardware-ului acestuia, astfel încât să fie mai rapid să efectuați anumite sarcini. Când vorbim de scalabilitate în blockchain, ne referim la creșterea capacității acestora de a gestiona mai multe tranzacții.

Protocoale precum Bitcoin au multe puncte forte, dar scalabilitatea nu este unul dintre ele. Dacă Bitcoin ar fi rulat într-o bază de date deținută la nivel central, ar fi relativ ușor pentru un administrator să mărească viteza și debitul. Dar propunerile de valoare ale Bitcoin (adică rezistența la cenzură) necesită ca mulți participanți să sincronizeze o copie a blockchain-ului.


Problema scalabilității blockchain

Rularea unui nod Bitcoin este relativ ieftină și chiar și dispozitivele simple o pot face. Dar, deoarece miile de noduri trebuie să rămână la curent unele cu altele, există anumite limitări ale capacității lor.

Sunt plasate limite pentru numărul de tranzacții care pot fi procesate în lanț, pentru a nu permite bazei de date să crească la dimensiuni greoaie. Dacă devine prea mare prea repede, nodurile nu vor putea ține pasul. În plus, dacă blocurile sunt prea mari, ele nu pot fi transmise rapid în rețea.

Drept urmare, ne aflăm într-un fel de blocaj. Un blockchain poate fi văzut ca un serviciu de tren care pleacă la intervale stabilite. Există doar locuri limitate în fiecare vagon, iar pentru a obține un bilet, călătorii trebuie să liciteze pentru a garanta un loc. Dacă toată lumea încearcă să se urce în tren în același timp, prețul va fi mare. În mod similar, o rețea înfundată cu tranzacții în așteptare va cere utilizatorilor să plătească taxe mai mari pentru a-și vedea tranzacția inclusă în timp util.

O soluție ar fi să facem vagoane mai mari. Acest lucru ar însemna mai multe locuri, un randament mai mare și prețuri mai ieftine ale biletelor. Dar nu există nicio garanție că scaunele nu se vor umple așa cum s-au făcut cândva. Cărucioarele nu pot fi lărgite permanent, la fel cum blocurile sau limitele de gaz bloc nu se pot scala la infinit. Acesta din urmă face ca nodurile să rămână mai costisitoare în rețea, deoarece vor avea nevoie de hardware mai costisitor pentru a rămâne sincronizate.

Creatorul Ethereum, Vitalik Buterin, a inventat Scalability Trilema pentru a descrie provocarea cu care se confruntă blockchain-urile. El teoretizează că protocoalele trebuie să facă compromisuri între scalabilitate, securitate și descentralizare. Acestea sunt oarecum în dezacord între ele - concentrându-se prea mult pe două dintre proprietăți, a treia va fi slabă.

Din acest motiv, mulți văd scalabilitatea ca pe ceva ce trebuie realizat în afara lanțului, în timp ce securitatea și descentralizarea ar trebui să fie maximizate pe blockchain-ul în sine.


Ce sunt soluțiile de scalare în afara lanțului?

Scalare în afara lanțului se referă la abordări care permit executarea tranzacțiilor fără a umfla blockchain-ul. Protocoalele care se conectează la lanț permit utilizatorilor să trimită și să primească fonduri, fără ca tranzacțiile să apară pe lanțul principal. Ne vom scufunda în două dintre cele mai notabile progrese pe acest front: sidechains și canale de plată.


O introducere în lanțurile laterale

Ce este un sidechain?

Un sidechain este un blockchain separat. Cu toate acestea, nu este o platformă independentă, deoarece este legată într-un fel de lanțul principal. Lanțul principal și lanțul lateral sunt interoperabile, ceea ce înseamnă că activele pot circula liber de la unul la altul.

Există mai multe moduri de a vă asigura că fondurile pot fi portate. În unele cazuri, activele sunt mutate din lanțul principal prin depunerea la o adresă specială. Nu sunt cu adevărat trimise - sunt în schimb blocate la adresă și o sumă corespunzătoare este emisă pe sidechain. O opțiune mai simplă (deși centralizată) este să trimiteți fonduri unui custode, care schimbă depozitul cu fonduri pe sidechain.


Cum funcționează un sidechain?

Să presupunem că prietena noastră Alice are cinci bitcoini. Ea vrea să le schimbe cu cinci unități echivalente pe un sidechain Bitcoin - să le numim sidecoins. Sidechain-ul în cauză folosește un peg bidirecțional, ceea ce înseamnă că utilizatorii își pot transfera activele din lanțul principal în sidechain și invers.

Amintiți-vă că sidechain-ul este un blockchain separat. Deci, va avea diferite blocuri, noduri și mecanisme de validare. Pentru a-și obține monedele secundare, Alice își trimitea cinci bitcoini la o altă adresă. Ar putea fi deținut de cineva care își va credita apoi adresa sidechain-ului cu cinci monede secundare odată ce primește bitcoinii. Alternativ, ar putea avea un fel de configurație minimizată de încredere în care monedele secundare sunt creditate automat după ce software-ul detectează o plată.


Sidechain scaling


Alice și-a convertit acum monedele în monede secundare, dar poate oricând să inverseze procesul pentru a-și recupera bitcoinii. Acum că a intrat în sidechain, este liberă să tranzacționeze pe acest blockchain separat. Ea poate trimite monede secundare sau le poate primi de la alții, așa cum ar face-o în lanțul principal.

Ea ar putea, de exemplu, să-i plătească lui Bob o monedă secundară pentru un hanorac Binance. Când vrea să se întoarcă la Bitcoin, ar putea trimite cele patru monede secundare rămase la o adresă specială. După confirmarea tranzacției, patru bitcoini vor fi deblocați și livrați la o adresă pe care o controlează pe lanțul principal.


De ce sunt folosite sidechain-urile?

S-ar putea să vă întrebați ce rost are asta. De ce nu folosește Alice pur și simplu blockchain-ul Bitcoin?

Răspunsul este că sidechain-ul poate fi capabil de lucruri pe care Bitcoin nu le poate face. Blockchain-urile sunt sisteme atent concepute de compromisuri. Deși Bitcoin este cea mai sigură și descentralizată criptomonedă, nu este cea mai bună în ceea ce privește debitul. Deși tranzacțiile cu Bitcoin sunt mai rapide decât metodele convenționale, acestea sunt încă relativ lente în comparație cu alte sisteme blockchain. Blocurile sunt extrase la fiecare zece minute, iar taxele pot crește semnificativ atunci când rețeaua este aglomerată.

Desigur, probabil că nu este nevoie de acest nivel de securitate pentru plățile mici de zi cu zi. Dacă Alice plătește pentru o cafea, nu va aștepta confirmarea tranzacției. Ea avea să țină coada, iar băutura ei avea să fie rece în momentul în care i-ar fi fost predată.

Sidechains-urile nu sunt supuse acelorași reguli. De fapt, nici măcar nu au nevoie să folosească Proof of Work pentru a funcționa. Puteți utiliza orice mecanism de consens, puteți avea încredere într-un singur validator sau puteți modifica orice număr de parametri. Puteți adăuga upgrade-uri care nu există în lanțul principal, puteți produce blocuri mai mari și puteți impune soluții rapide.

Interesant este că sidechains-urile ar putea avea chiar erori critice fără a afecta lanțul de bază. Acest lucru le permite să fie folosite ca platforme pentru experimentare și să lanseze funcții care altfel ar necesita consensul majorității rețelei.

Cu condiția ca utilizatorii să fie mulțumiți de compromisuri, sidechain-urile ar putea fi un pas integral către o scalare eficientă. Nu există nicio cerință ca nodurile lanțului principal să stocheze fiecare tranzacție din lanțul lateral. Alice ar putea intra în sidechain cu o singură tranzacție Bitcoin, poate efectua sute de tranzacții sidecoin și apoi ieși din sidechain. În ceea ce privește blockchain-ul Bitcoin, ea a efectuat doar două - unul pentru a intra și unul pentru a ieși.

Plasma lui Ethereum este similară, dar are unele diferențe majore. Citiți mai multe despre asta: Ce este Ethereum Plasma?


O introducere în canalele de plată

Ce este un canal de plată?

Canalele de plată servesc aceluiași scop ca și sidechain-urile în ceea ce privește scalabilitatea, dar sunt fundamental foarte diferite. La fel ca și sidechain-urile, ele împing tranzacțiile din lanțul principal pentru a preveni umflarea blockchain-ului. Spre deosebire de sidechain-uri, totuși, ele nu necesită un blockchain separat pentru a funcționa.

Un canal de plată folosește un contract inteligent pentru a permite utilizatorilor să facă tranzacții fără a-și publica tranzacțiile în blockchain. Face acest lucru prin utilizarea unui acord aplicat prin software între doi participanți.


Cum funcționează un canal de plată?

În modele precum populara rețea Lightning, două părți ar depune mai întâi monede la o adresă pe care o dețin în comun. Aceasta este o adresă cu mai multe semnături, una care necesită două semnături pentru ca fondurile să fie cheltuite. Deci, dacă Alice și Bob au creat o astfel de adresă, fondurile ar putea fi mutate numai cu acordul ambilor.

Să presupunem că fiecare depune 10 BTC la o adresă care deține acum 20 BTC. Le-ar fi ușor să țină un bilanț care începe să spună că Alice și Bob au ambii câte 10 BTC fiecare. Dacă Alice ar fi vrut să-i dea lui Bob o monedă, ar putea să o actualizeze pentru a citi că Alice are 9 BTC, Bob are 11 BTC. Nu ar trebui să publice în blockchain, deoarece continuă să actualizeze aceste solduri.


how a payment channel works


Când vine momentul, însă, să spunem că Alice are 5 BTC, iar Bob are 15 BTC. Ei ar putea apoi să creeze o tranzacție care să trimită aceste solduri la adresele deținute de părți, să o semneze și să o difuzeze.

Alice și Bob ar fi putut înregistra zece, o sută sau o mie de tranzacții în bilanțul lor. Dar în ceea ce privește blockchain-ul, ei au efectuat doar două operațiuni în lanț: una pentru tranzacția inițială de finanțare și una pentru realocarea soldurilor atunci când sunt finalizate. În afară de aceste două, toate celelalte tranzacții sunt gratuite și aproape instantanee, deoarece apar în afara lanțului. Nu există nicio taxă de miner de plătit și nicio confirmare de blocare de așteptat.

Desigur, exemplul discutat mai sus necesită cooperarea ambelor părți, ceea ce nu este o situație ideală pentru străini. Cu toate acestea, mecanismele speciale pot fi folosite pentru a pedepsi orice încercare de a înșela, astfel încât părțile să poată interacționa în siguranță între ele, fără încredere.


Dirijarea plăților

Evident, canalele de plată sunt convenabile pentru două părți care anticipează un volum mare de tranzacții. Dar devine mai bine. O rețea a acestor canale poate fi dezvoltată, ceea ce înseamnă că Alice ar putea plăti o petrecere la care nu este conectată direct. Dacă Bob are un canal deschis cu Carol, Alice o poate plăti cu condiția să existe suficientă capacitate. Ea va împinge fonduri pe partea de canal a lui Bob, care, la rândul său, le va împinge către Carol. Dacă Carol este conectată cu un alt participant, Dan, același lucru se poate face.

O astfel de rețea evoluează într-o topologie distribuită în care toată lumea se conectează la mai mulți colegi. De multe ori vor exista mai multe rute către o destinație, iar utilizatorii o vor putea alege pe cea mai eficientă.


Gânduri de închidere

Am discutat două abordări de scalabilitate care permit efectuarea tranzacțiilor fără a încărca blockchain-ul de bază. Atât sidechain-urile, cât și tehnologia canalului de plată nu s-au maturizat încă, dar sunt din ce în ce mai mult valorificate de utilizatorii care doresc să evite deficiențele tranzacțiilor la nivel de bază.

Pe măsură ce timpul trece și mai mulți utilizatori se alătură rețelei, este important ca descentralizarea să fie menținută. Acest lucru este realizabil doar prin aplicarea limitelor de creștere a blockchain-ului, astfel încât noile noduri să se poată alătura cu ușurință. Susținătorii soluțiilor de scalabilitate în afara lanțului consideră că, în timp, lanțul principal va fi folosit doar pentru a deconta tranzacții de mare valoare sau pentru a legătura/închide sidechain-urile și deschiderea/închiderea canalelor.