Problema de scalabilitate a criptovalutelor iese din ce în ce mai mult la suprafață, odată ce aceste valute devin cunoscute și răspândite. Evoluția Bitcoin și Ethereum este de-a dreptul impresionantă; dar adevărul e că inițial criptovalutele n-au fost concepute pentru utilizarea și adaptarea la scară largă. Atunci când numărul tranzacțiilor era mai mic, acestea puteau fi gestionate mai ușor; dar cu cât devin mai populare, apar o serie de probleme legate de ele.
Scalabilitatea
Pentru ca bitcoin și ethereum să devină competitive față de sistemele obișnuite ca Visa și PayPal de exemplu, trebuie să se dezvolte considerabil atunci când vine vorba de timpii de tranzacționare. În timp ce PayPal poate efectua 193 de tranzacții pe secundă, iar Visa se descurcă și cu 1667 pe secundă, Ethereum este capabilă de 20 de tranzacții / s, iar Bitcoin numai de 7 tranzacții / s! Aceste cifre pot fi îmbunătățite doar dacă problema de scalabilitate a criptovalutelor va fi rezolvată.
Dacă am clasifica principalele probleme de scalabilitate a criptovalutelor, acestea ar fi următoarele:
- Timpul necesar pentru adăugarea unei tranzacții în bloc
- Timpul necesar pentru realizarea consensului
În cazul Bitcoin și Ethereum, o tranzacție este împlinită atunci când un miner introduce datele tranzacției în blocurile pe care le-a minat. Să presupunem deci că Ioana dorește să-i trimită 4 BTC lui Radu; ea le va trimite minerilor datele tranzacției, pe urmă minerii le adaugă în bloc și astfel tranzacția poate fi considerată completă.
Cu cât sunt mai mari taxele tranzacției, cu atât mai repede o vor include minerii în blocul lor. În cazul celor care dispun de cantități însemnate de bitcoin acest lucru este în regulă; dar nu pare cea mai viabilă opțiune financiară. Dacă plătești cea mai mică taxă de tranzacție posibilă, trebuie să aștepți timpul mediu de 13 minute pentru finalizarea tranzacției. Adesea, pentru efectuarea tranzacțiilor era nevoie să aștepți până ce ajungea să fie minat următorul bloc (la bitcoin, în medie 10 minute), fiindcă blocurile vechi erau pline (de tranzacții). Limita de dimensiune a blocului Bitcoin era de 1 mb (a fost extinsă între timp); ceea ce limitează serios capacitatea de împlinire a tranzacțiilor.
Ce se întâmplă în cazul Ethereum?
Teoretic, Ethereum ar trebui să proceseze 1000 de tranzacții pe secundă. Practic însă, în fiecare bloc Ethereum există o limită de 6,7 milioane GAS. Ca să înțelegem ce este ”GAS”-ul, să ne imaginăm următorul scenariu. Corina întocmește un contract smart lui George. Acesta observă că elementele contractului vor costa o cantitate X de gas. Gas-ul seminifică cantitatea acelui efort de calcul pe care George trebuie să-l investească în contractul smart. În acord cu acestea, George va percepe de la Corina cantitatea de gas consumată.
De vreme ce fiecare bloc are o limită gas, minerii îi pot adăuga doar tranzacții al căror consum de gas este egal sau mai mic cu/decât această limită gas a blocului. Momentan, toate valutele bazate pe blockchain sunt construite sub forma unor rețele peer-to-peer. Participanții – mai precis nodurile – nu beneficiază de niciun privilegiu special, scopul fiind crearea unei rețele egalitare. Aici nu există nicio autoritate centrală sau vreo ierarhie.
Toate criptovalutele descentralizate sunt construite în acest fel, pentru a rămâne fidele principiului pe baza căruia au fost create. Ideea constă în realizarea unui sistem valutar unde toată lumea este considerată egală și nu există niciun organism de control care poate stabili valoarea valutei potrivit propriilor capricii. Acest lucru este valabil în cazul Bitcoin și Ethereum. Dar dacă nu există nicio entitate centrală, cum poate afla toată lumea din rețea dacă o anumită tranzacție a avut loc? Rețeaua urmează un protocol de răspândire (gossip). Imaginează-ți cum se răspândește o bârfă. Să presupunem că Ioana îi trimite 3 ETH lui Claudiu. Cele mai apropiate noduri vor afla acest lucru și îl vor spune nodurilor care le sunt cel mai aproape; acestea îl vor zice vecinilor și vestea se răspândește până ce n-o află toată lumea. Mai în glumă, nodurile îndeplinesc rolul unor rude enervante, dornice să afle tot.
Sistemul trustless
Nu uita că nodurile urmează un sistem trustless. Asta înseamnă că din moment ce un nod A spune că o tranzacție este valabilă, asta nu înseamnă că nodul B va crede neapărat acest lucru. Nodul B efectuează propriul set de calcule pentru a verifica dacă tranzacția este într-adevăr valabilă. Acest lucru presupune că fiecare nod trebuie să dispună de copia blockchain, pentru a-și ușura calculele. În acest fel este încetinit întregul proces, așadar problemele de scalabilitate a criptovalutelor sunt reale.
Problema este că față de celelalte tehnologii, în rețeaua criptovalutelor numărul de noduri crește continuu, iar întregul proces devine proporțional mai lent. Consensul este realizat în mod linear, să presupunem deci că există 3 noduri: A, B și C.
Pentru a realiza consensul, A efectuează calculele și le verifică, pe urmă B procedează la fel, asemenea lui C. Dacă însă apare un nod nou în sistem, „D” să zicem, acesta va fi unul în plus în sistemul de consens, iar durata totală va crește. Pe măsură ce criptovalutele au devenit din ce în ce mai populare, timpii de tranzacție mai mari. Aceasta este mai ales problema Ethereum, fiindcă dintre toate criptomonedele Ethereum are cele mai multe noduri. În cadrul isteriei ICO, toată lumea își dorea o parte din Ethereum, ceea ce a dus la creșterea numărului de noduri din rețea. Din mai 2017 Ethereum avea 25.000 de noduri, față de 7.000 ale Bitcoin. Aceasta a fost o creștere semnificativă, în perioada aprilie-mai numărul nodurilor crescând cu 81%.
Care ar putea fi soluția pentru problema de scalabilitate a criptovalutelor?
Ethereum și Bitcoin au propus o serie de soluții pe care le-au și implementat sau urmează să le aplice. Cele mai importante dintre ele sunt: Segwit, creșterea mărimii blocului, Sharding, Proof of Stake, state channels în afara lanțului, Plasma. Segwit (Segregated Witness) presupune că toate datele semnăturii fiecărei tranzacții se mută de pe lanțul principal, pe cel lateral. Problema sistemului datelor de semnătură este că e foarte voluminos. De fapt, 65% din totalul datelor tranzacției iau naștere din cauza semnăturii; iar aceste date sunt utile doar în cadrul procesului inițial de verificare, mai târziu nefiind deloc nevoie de ele.
Ce s-a întâmplat deci prin activarea Segwit? Datele de semnătură trec mai departe, de pe lanțul principal pe blocul extins al lanțului paralel, eliberând mult spațiu în blocul însuși pentru efectuarea altor tranzacții. Ideea era ca datele de semnătură să fie ordonate pe lanțul lateral sub forma unui arbore Merkle. Rădăcina Merkle a tranzacțiilor este plasată în bloc alături de tranzacțiile de monede. În orice caz, în realizarea acestora dezvoltatorii s-au lovit de ceva neașteptat. Ei au observat că prin mutarea rădăcinii Merkle într-un anumit loc, cresc cumva limita totală a dimensiunii blocului, fără a crește intenționat limita mărimii blocului.
Fundamental, dublarea valorii tranzacțiilor într-un bloc va dubla și numărul tranzacțiilor, iar asta dublează la rândul său cantitatea datelor de semnătură, care se regăsesc în toate aceste tranzacții. În acest fel tranzacțiile ar deveni și mai voluminoase, iar timpii de tranzacții s-ar prelungi enorm. Astfel se deschid porțile în fața unor părți rău intenționate care doresc să umple blockchain-ul de spam. Segwit rezolvă acest lucru prin schimbarea calculării hash-ului semnăturii, făcând întregul proces mult mai eficient.
Creșterea dimensiunii blocului
Din moment ce problema principală a Bitcoin și Ethereum era mărimea limitată de bloc, de ce nu le-au crescut pur și simplu? Bitcoin nu trebuia să impună limita de 1 MB; însă Satoshi a fost obligat s-o facă pentru că nu dorea ca Bitcoin să fie deranjat de tranzacții spam. Chiar dacă pare o idee bună, implementarea sa este departe de a fi. De fapt această chestiune a generat multe dispute în cadrul comunității Bitcoin, existând mulți susținători atât ai creșterii mărimii blocului, cât și mulți care erau împotrivă.
Din cauza problemei de scalabilitate a criptovalutelor mulți se tem că mărirea dimensiunii blocului va crește centralizarea: de vreme ce crește mărimea rețelei, cantitatea puterii de procesare necesară minatului va crește și ea. În acest fel toate mining pools mici vor fi eliminate, oportunitatea minatului fiind oferită doar mining pools de dimensiuni mari. Dar asta crește centralizarea, ceea ce este contrar esenței Bitcoin.
Bitcoin trebuie să crească și să devină mai accesibil oamenilor obișnuiți.
Dacă mărimea blocului nu se modifică, sunt mari șanse ca taxele de tranzacție să crească din ce în ce mai mult. În caz că se va întâmpla așa, lumea obișnuită nu-l va ptea folosi în niciun caz, ci doar bogații și companiile uriașe. Acesta n-a fost niciodată scopul Bitcoin. Creșterea mărimii blocului este într-adevăr în folosul minerului: dimensiunea mărită a blocului înseamnă că va crește și numărul de tranzacții pe bloc, ceea ce crește în schimb suma taxelor de tranzacție pe care minerul o poate obține din minatul blocului. Schimbările nu se fac dintr-odată ci treptat, cu timpul. Marea teamă a oamenilor este că la modificarea mărimii blocului se întâmplă prea multe dintr-odată; și astfel apar tulburări serioase în sistem.
Înțelegerea de la New York a avut loc pe 21 mai 2017, iar în cadrul ei s-a decis activarea Segwit și creșterea mărimii blocului la 2 MB. În acest fel s-a dorit asigurarea uei soluții pentru rezolvarea problemei de scalabilitate a criptovalutelor.