Blockchain–urile reprezintă pe înțelesul nostru baze de date care în loc că să fie stocate pe un server central ce poate fi accesat de toți utilizatorii, înregistrările de pe blockchain sunt stocate pe computerele utilizatorilor de peste tot din lume. Acest fapt face din blockchain o bază de date distribuită cu o arhitectură peer–to–peer. “Distribuit” înseamnă că datele sunt stocate în locații multiple iar “peer–to–peer” înseamnă că nu există o autoritate centrală care deține o copie master a datelor.
Blockchain este tehnologia ce securizează stocarea de criptomonede, tranzacțiile între criptomonede și relațiile informatice ce susțin scopul fiecărui proiect criptografic. Blockchain stochează informațiile electronic în format digital. Un blockchain conține liste de înregistrări (sau date) în continuă creștere, numite blocuri, care sunt legate și securizate cu ajutorul criptografiei. Ca structură de date, un blockchain este o listă simplu înlănțuită, în care legăturile între elemente se fac prin hash.
Astfel, fiecare bloc conține de obicei o legătură către un bloc anterior (un hash al blocului anterior), un timestamp și datele tranzacției. Blocurile au anumite capacități de stocare și, atunci când sunt umplute, sunt închise și legate de blocul umplut anterior, formând un lanț de date cunoscut sub numele de blockchain. Toate informațiile noi care urmează acelui bloc nou adăugat sunt compilate într-un bloc nou format, care va fi apoi adăugat la lanț odată ce este completat. Prin design, blockchainurile sunt rezistente la modificarea datelor. Blockchainul este „un registru transparent și distribuit care poate înregistra tranzacții între două părți în mod eficient, verificabil și permanent”.
Blockchain–ul lui Satoshi Nakamoto nu este prima bază de date distribuită și nu este prima bază de date peer–to–peer. De fapt, nu este primul blockchain. În schimb, reprezintă baza pentru prima criptomonedă modernă fiind punctul de pornire pentru toate blockchain–urile de după el.
Să zicem că vrem să stocăm datele unei mâini de poker într–o bază de date. Începem atribuind fiecărei cărți din pachet un număr: 1 pentru as de pică, 2 pentru 2 de pică, 2 pentru 3 de pică, și tot așa până la 52, regele de inimă. Mâna ta poate arăta așa:
Înregistrare | Valoarea cărții |
---|---|
1 | 12 |
2 | 44 |
3 | 4 |
4 | 31 |
5 | 27 |
Gândește–te la numerele înregistrate ca la numerele rândurilor dintr–o foaie de calcul. Programatorii bazelor de date le denumesc înregistrări, iar programatorii de blockchain le numesc blocuri. Rând, înregistrare, bloc – toate fac referire la o singură bucată de date.
Mâna adversarului tău ar ocupa rândurile de la 6 la 10, iar o altă mână ar putea fi stocată pe rândurile de la 11 la 15 și așa mai departe. Așadar, dacă vrei să specifici despre ce mână vorbești, transmiți doar bazei de date care rând deține prima carte.
Bineînțeles că într–o bază de date distribuită peer–to–peer, și alți utilizatori ar putea să își joace mâinile în același timp cu tine. Astfel că este puțin probabil să îți apară pe rânduri consecutive. Putem să adăugăm indicatoare pentru cărțile anterioare și următoare pentru a lega datele din lanț:
Înregistrare | Valoarea cărții | Cartea anterioară | Cartea următoare |
---|---|---|---|
15 | 12 | 0 | 37 |
37 | 44 | 15 | 118 |
118 | 4 | 37 | 121 |
121 | 31 | 118 | 199 |
199 | 27 | 121 | 999 |
Prima carte din mâna ta este stocată pe rândul 15. Valoarea cărții este 12, asta înseamnă că e regina de pică. Nu mai există un rând anterior în mâna ta, așa că am pus 0 pe coloana “Carte anterioară”. Următoarea carte este stocată pe rândul 37.
Acum ne uităm pe rândul 37. Și acest rând specifică o singură carte și indică spre rândul unde poate fi găsită cartea anterioară (15) și de asemenea indică spre următoarea carte, care este stocată pe rândul 118.
În informatică, această structură este cunoscută ca listă dublu înlănțuită pentru că leagă și înainte și înapoi. Indicatoarele sunt stocate în baza de date ca date pe lângă valorile cărților.
Nimic nu ne poate opri – nici măcar hackerii – să schimbăm valorile cărților. Pe o astfel de bază de date este simplu să trișezi. Oricine cu acces la baza de date ar putea schimba valorile primelor patru cărți ale mâinii tale la 1, 14, 27, 40 – adică patru ași.
Putem să adăugăm protecție împotriva erorilor de date și hackerilor într-o coloană. Pentru fiecare rând, vom adăuga o coloană ce conține suma valorilor cărților, astfel:
Înregistrare | Valoarea cărții | Cartea anterioară | Următoarea carte | Sumă de control |
---|---|---|---|---|
15 | 12 | 0 | 37 | 12 |
37 | 44 | 15 | 118 | 56 |
118 | 4 | 37 | 121 | 48 |
121 | 31 | 118 | 199 | 35 |
199 | 27 | 121 | 999 | 58 |
Vezi cum funcționează? Pentru a doua carte a noastră, suma de control este 56, care reprezintă suma valorilor pentru primele două cărți, 12 și 44. Suma de control pentru a treia carte este suma următoarelor două cărți. De fiecare dată când citim valoarea unei cărți putem să calculăm suma de control din baza de date. Dacă nu sunt la fel, știm că datele au fost modificate.
Cipurile de memorie din calculatorul tău și din smartphone detectează erorile de utilizare ale sistemului. Acest sistem este de asemenea folosit pentru găsirea erorilor de pe hard drive–ul tău.
Acest sistem simplu de sumă de control este esențial pentru tehnologia de blockchain iar studenții la informatică din anul întâi sunt bine familiarizați cu el.
În același timp este ridicol de vulnerabil pentru hacker pentru că oricine are suficiente drepturi de acces să schimbe valorile cărților poate de asemenea să modifice o realizare pentru sumele de control pentru a–și acoperi urmele. Sau un hacker poate să modifice indicatoarele pentru “cartea anterioară” și “cartea următoare” ca să înlocuiască o carte a mâinii tale cu o carte stocată pe un rând diferit.
Nakamoto a anticipa aceste vulnerabilități în arhitectura sa de blockchain. În loc să implice o simplă adunare pentru a crea sume de control și pentru a urmări verigi in lanțul de date, a folosit un proces criptografic numit “hashing”
Hashing–ul creează un identificator unic combinând valoarea înregistrării anterioare cu valoarea înregistrării curente într–un proces matematic unidirecțional ce are ca rezultat o valoare hash care arată cam așa 06C4D99F32047. Se numește unidirecțională pentru că nu există un proces matematic de verificare pentru a transforma 06C4D99F32047 înapoi în datele sale originale.
Într–un blockchain, valoarea hash pentru fiecare bloc se bazează pe valoarea hash anterioară a blocului, care la rândul său se bazează pe valoarea hash de dinainte lui, și tot înapoi până la blocul 0 al lui Nakamoto. Poți să calculezi valoarea hash pentru fiecare bloc și să o compari cu valoarea hash care este stocată în bloc. Dacă nu se potrivesc, atunci datele au fost modificate.
Într–o bază de date convențională, datele se pot modifica, apoi se pot calcula noile valori hash și se pot injecta în blocurile sau înregistrările următoare pentru a ascunde efectele. Acest lucru nu se poate aplica pe o bază de date peer–to–peer, pentru că hackerul ar trebui să schimbe în mod simultan copii ale bazei de date care sunt stocate în rețeaua de sute de mii de computere.
O consecință este aceea că este posibil să adaugi blocuri noi de date la blockchain, blocurile anterioare nu pot fi șterse sau alterate. Acest lucru înseamnă ca nu poți să trimiți 100.000$ în Bitcoin și să ștergi tranzacția.
Fiecare tranzacție de pe blockchain este validată folosind mecanismul hash.
Mai mult decât atât, Nakamoto a stabilit criptarea pentru a se asigura că datele stocate în blockchain sunt vizibile de către fiecare utilizator dar descifrabilă doar pentru cei care au avut cheile de decriptare potrivite. Fără cheie, tot ce vezi este o șir de caractere fără noimă.
Tehnologia Blockchain face datele private, permanente și verificabile. Înregistrarea datelor și tranzacțiilor este publică, însă criptarea le protejează de privirile indiscrete și alterare. De aceea blockchain–ul Bitcoin este adesea menționat ca “registrul deschis” al Bitcoin.
Hashing–ul și criptarea consumă multe resurse de calcul. Este un proces încet. În toată lumea, întreaga rețea de Blockchain a Bitcoin este limitată la un nivel de procesare de de 4,6 Tranzacții Per Secundă. Companiile de carduri de credit procesează în mod obișnuit o medie de 1.700 Tranzacții Per Secundă și susțin că au capacitatea de a suporta 56.000 TPS. Limita de 4,6 TPS este principala sursă a problemei de scalabilitate a Bitcoin iar informaticienii lucrează constant să îmbunătățească asta.
Se spune că rețeaua de computere care validează tranzacțiile cu Bitcoin consumă mai multă electricitate decât Elveția.
Multe din nodurile de validare a tranzacțiilor Bitcoin dețin întregul blockchain, care în prezent este de aproximativ de 250 GB de date. Aceste mai sunt cunoscute ca noduri depline. Rețeaua de asemenea include noduri SPV care realizează o verificare simplificată a plății. Nu există nici o cale directă de numărare a nodurilor. Un website numit Bitnodes furnizează un număr actualizat de noduri care se află în prezent online și care pot fi accesibile, însă o căutare rapidă pe Google demonstrează că experții furnizează estimări ale numărului de noduri între 6.000 și 200.000. Nimeni nu știe cu adevărat câte sunt de fapt.
Blockchain–ul cu cea mai răspândită folosire este Ethereum, ce include modificări care îl face mai flexibil decât blockcain–ul Bitcoin. Ethereum are propria sa criptomonedă – Ether – însă dezvoltatorii au creat pe acest blockchain multe criptomonede adiționale care rulează pe el. Această platformă are diverse tipuri de utilizare în lumea reală pe lângă banii virtuali.
Unul din principalele beneficii ale Ethereum este acela că deține programe executabile pe lângă de date. Aceste programe sunt cunoscute sub denumirea de “contracte inteligente.” De exemplu, un contract inteligent creat pentru o zece ar putea să însumeze toate jetoanele Ether adăugate contului tău în această lună și să trimită 10% la biserică sub formă de donație.
Ca și blockchain–ul Bitcoin, Ethereum este inviolabil. Producătorul de ceasuri de lux Brieling oferă deținătorilor de ceasuri certificate digitale care furnizează autenticitate. Dacă vinzi ceasul, poți să transferi certificatul noului deținător, stabilind un lanț verificabil de proprietate. Tehnologia poate fi de asemenea utilizată pentru a urmări proveniența mâncării din magazinele de alimente, prin urmărirea fiecărui transfer. Tot mai multor oameni le pasă de sursele etice, iar blockchain–ul poate lua parte la asta.
În 2020, Associated Press a postat minut cu minut rezultatele alegerilor prezidențiale din America pe blockchain–ul Ethereum pentru a crea o înregistrare imuabilă a numărătorii verificate oficial a voturilor.
Blockchain–ul Ethereum poate suporta aproximativ 30 TPS. Dezvoltatorii fac eforturi pentru versiunile viitoare ale Ethereum care vor folosi o tehnică numită fragmentare pentru a rula blockchain–uri multiple în același timp, cu tranzacții consolidate postate asincron pe blockchain–ul central. Dezvoltatorii speră că noile versiuni ale blockchain–ului Ethereum vor putea realiza 100.000 TPS.
Pentru că Ethereum rulează contracte inteligente, este utilizat ca platformă pentru multe aplicații legate de blockchain. Cele mai multe aplicații descentralizate bazate pe blockchain – în special aplicațiile financiare descentralizare – se bazează pe lanțul principal al Etheruem sau pe blockchain–urile private Ethereum.
Ethereum este de asemenea în topul preferințelor corporațiilor care caută să implementeze economii pe bază de jeton. De exemplu, o companie ar putea să implementeze un program de loialitate în care clienții primesc Monede Acme la fiecare cumpărare. Apoi ar putea exista un magazin de cadouri în care Monedele Acme să poate fi tranzacționate în schimbul diverselor beneficii. Compania ar putea crea o rețea de companii care de asemenea acceptă Monede Acme, oferind jetoanelor o valoare de facto deși acestea nu pot fi schimbate în euro sau dolari.
O specificație Ethereum ERC–721 definește un protocol pentru crearea de jetoane nefungibile. Acesta stă la baza pieței NFT–urilor.
Bitcoin și Ethereum sunt blockchain–urile cu cea mai largă răspândire în utilizare, însă acum sunt sute și mii mai multe, toate bazându–se pe conceptul original al lui Nakamoto. Blockchain–urile pot fi publice cum este blockchain–ul Bitcoin sau private, folosite pentru managementul intern al datelor.
Cercetătorii au creat multe variații pentru arhitectura de bază a blockchain–ului. Multe includ inovații pentru susținerea procesării rapide, scalabilitate mai mare și taxe de tranzacții mai scăzute. Mecanismul de consens, coordonarea și sublanțurile subordonate, blockchain–urile private alte tehnologii cheie sunt acum parte din proiecte din întreaga lume.
Marele avantaj al unui blockchain public, deschis, fără permisiuni este că nu este necesar controlul accesului pentru a evita utilizatorii cu intenții rele. Acest lucru înseamnă că diverse aplicații pot fi adăugate la rețea fără aprobarea sau încrederea altor utilizatori, folosind blockchainul ca protocol de transport. In cazul Bitcoin și al altor criptomonede, evitarea controlului de acces este posibilă prin solicitarea „dovezii de lucru”, proof-of-work. Mai exact, calculatoarele trebuie să rezolve puzzle-uri matematice pentru a valida tranzacțiile.
Care este definiția blockchain–ului ? Cum funcționează tehnologia blockchain ? Sperăm că această explicație a blockchain–ului te–a ajutat să înțelegi mai bine și să apreciezi această arhitectură de baze de date peer–to–peer remarcabilă precum și aplicațiile sale.
Coșul tău este în prezent gol.