ABONAMENTE VIDEO REDACȚIA
RO
EN
×
▼ LISTĂ EDIȚII ▼
Numărul 68
Abonament PDF

Bitcoin și Blockchain: Introducere teoretică și principii generale

Dan Sabadis
Team Lead @ SDL
PROGRAMARE


Pentru a discuta și înţelege ce este Bitcoin, trebuie mai întâi să dăm răspuns unei întrebări fundamentale: Ce sunt banii? Ce face ca o monedă, de aur spre exemplu, să fie considerată valoroasă de majoritatea oamenilor? Există câteva proprietăţi clasice ale banilor, enumerate mai jos:

  1. O moneda este autentică, nu contrafăcută. Acest lucru înseamnă că există doar o singură autoritate care poate tipări bancnotele sau emite monedele. Ceilalți care încearcă să tipărească același tip de bani sunt de obicei pasibili de pedeapsă drastică.

  2. Banii se pot cheltui doar o singură dată. Pentru banii digitali este mai greu de respectat această proprietate decât pentru monedele clasice sau banii de hârtie. Din fericire, s-a găsit o soluţie la această problemă extrem de grea. O vom explora mai jos și într-unul din numerele următoare ale revistei. (Bitcoin are răspunsul la problema cheltuirii duble.)

  3. Banii se pot cheltui doar de către proprietarul lor de drept. În modelele financiare cripto-digitale este mai greu să ne însușim banii cripto-digitali ai celorlalţi decât în modelul financiar clasic. Toate exemplele celebre promovate în mass-media cu burse Bitcoin ce sunt deturnate de hackeri se întâmplă deoarece proprietarii de Bitcoin au încredere în aceste burse și le oferă banii (Bitcoin) pentru pariuri financiare.

  4. Banii își păstrează valoarea de-a lungul timpului. Dacă folosim un sistem de schimb (troc) cu niște cereale sau animale drept monedă de schimb (să zicem porumb, grâu sau oi), în câteva luni, aceste medii de schimb își vor pierde mult din valoare din cauza biodegradării sau a dăunătorilor. Hârtia și mai ales aurul, se deteriorează mult mai încet cu trecerea timpului.

  5. Banii sunt puţini: cu cât banii sunt mai puţini, cu atât sunt mai valoroși.

Toate proprietăţile de mai sus sunt respectate până la un punct de metalele preţioase precum aurul sau argintul. Totuși, unii economiști au identificat câteva probleme cu banii din metalele preţioase. Acești bani pot fi falsificaţi ușor și insidios prin inflaţie. Acest aspect a fost spre exemplu clar documentat prin analiza compoziţiei chimice a monedelor de aur din Imperiul Roman. Unii împăraţi, care aveau nevoie de bani pentru construcţii scumpe sau expediţii militare, au ales să emită bani punând din ce în ce mai mult cupru în monedele iniţiale de aur pur. Această calitate a aliajului de aur ce descrește inexorabil s-a numit inflaţie și e constatată încă din antichitate.

Aproape o mie de ani mai târziu, în imperiul chinez, Mandarinii au avut o altă idee minunată: imperiul tipărește bancnote (banc-note=note bancare) de hârtie care reprezintă un contract (o obligaţie) în baza căruia împăratul va plăti proprietarilor valoarea în aur sau argint menţionată pe hârtie. Astfel, s-au rezolvat multe probleme de securitate. În loc să călătorească cu bagaje mari de argint în teritorii periculoase, un comerciant avea nevoie să călătorească doar cu niște hârtii în buzunare. Aceste hârtii puteau fi preschimbate înapoi în metal preţios în locuri speciale, numite bănci. Același sistem a fost adoptat și de faimoșii cavaleri templieri, pentru pelerinii în Ţara Sfântă.

Din cauza inovaţiei aduse de banii de hârtie, problema inflaţiei a devenit și mai presantă, deoarece tipărirea de bani este mult mai ușoară decât crearea de aliaje de aur și cupru. Cele mai celebre exemple de inflație sunt cele ale Republicii Germane din Weimar în 1923 sau mai recent în Zimbabwe, iar cei din România își pot aminti de perioada "gri" a anilor 90.

Din perspectiva Libertarienilor, problema spinoasă a inflaţiei are o soluție! Tipărirea banilor nu ar trebui să fie responsabilitatea guvernului, ci a indivizilor! Nu ar trebui să ne încredem în banii "fiat"! Banii fiat sunt cei tipăriţi de guvern fără a avea o acoperire în metal preţios (de obicei aur, cum a fost cazul pana la destrămarea acordurilor de la Bretton Woods în 1971). Aceste probleme ridicate de libertarieni sunt mai mult decât întemeiate. În prezent toate guvernele lumii printează bani la o rată anuala de aproximativ 2% raportată la masa monetară existentă. Acest lucru înseamnă o inflaţie de 2% și presupune că orice salariu să spunem de 1000 Euro câștigat în ianuarie va fi cu 2% mai puţin valoros în decembrie!

Mai mult, a existat și problema salvării de la faliment a băncilor, salvare efectuată de către toate guvernele în timpul crizei financiare din 2008. Cei care muncesc au devenit și mai îndatoraţi pentru a plăti greșelile unui grup mic de oameni care oricum profitau de regulile financiare în vigoare deja (și încă mai profită). E vorba evident de bancherii cu conexiuni înalte, cei consideraţi prea mari ca să eșueze.

În 2007-2008, o persoană numită Satoshi Nakamoto (cel mai probabil un pseudonim) a inventat un sistem care să rezolve problemele descrise mai sus: este vorba de o colecţie de programe de calculator care au proprietăţile banilor (vedeţi punctele a-e de mai sus) și care sunt protejate de inflaţie. Această suită de programe poate fi găsită pe GitHub, implementată în limbajul C++ (linkul este oferit mai jos). Multe din idei nu au fost inovaţii, ci îmbunătăţiri ale muncii unor criptografi care erau deja pasionaţi de banii digitali, cum ar fi Wei Dai, Nick Szabo sau Hal Finney. Reușita a constat în faptul că toate aceste principii au fost integrate holistic în programul Bitcoin ce s-a dovedit a fi funcţional.

Principiile sunt valabile și azi, nouă ani mai târziu, și s-au dezvoltat pe piaţa financiară într-o afacere de peste 200 de miliarde de dolari. Deja reprezintă 1% din totalitatea tranzacțiilor financiare și începe să se răspândească și să fie resimțit în sistemul financiar global.

Primul principiu al acestor programe este că băncile sunt complet descentralizate (spre deosebire de sistemul bancar clasic centralizat cu care suntem obișnuiţi: sedii locale, centre regionale, sediile principale, toate supravegheate de Banca Centrală sau Națională, puternic legată de stat). În acest moment, orice pasionat de IT din lume poate instala pe propriul laptop programul Bitcoin Core Server (numit Nod de acum încolo) și poate rula propria sa bancă de unde poate monitoriza toate tranzacţiile financiare de la începutul Bitcoin-ului (adică 3 ianuarie 2009 când a fost realizată prima tranzacţie Bitcoin) până în prezent. La momentul redactării acestui articol există aproximativ 50000 de calculatoare ce rulează Noduri Bitcoin în toată lumea. Unele dintre ele se închid chiar când voi citiţi aceste rânduri, în timp ce altele de abia pornesc. Per total, există 5000 de calculatoare specializate în rularea Bitcoin Node ce funcţionează 24 ore/zi. Dacă un guvern puternic cum este cel al SUA, Rusia sau China ar dori să anihileze Bitcoinul, ar trebui să oprească Internetul, ceea ce este imposibil. Ar implica o situație în care oricare dintre noi să primească o vizită de la un procuror sau de la o agenţie de informaţii și să ni se ceară să dezinstalăm acest program deoarece o autoritate mai mare dorește acest lucru. Acest scenariu este improbabil, dar nu imposibil!

Al doilea principiu este cel al secretizării. Orice monede pe care le aveţi ar trebui să fie doar ale voastre sau ale persoanei căreia vreţi să i le trimiteţi. A trimite sau a primi banii nu ar trebui să permită nimănui să vă identifice! Dacă aplicăm acest principiu în univerul Bitcoin ne vom referi la conceptul de pseudo-anonimitate. Este doar pseudo, deoarece aproape toate tranzacţiile de informaţii sunt publice: detaliile despre sumele cheltuite, durata operaţiunii, adresa sursei și a destinatarului, toate sunt salvate și replicate pe toate calculatoarele Nod! Un asemenea nivel al transparenţei este o premieră pentru instituţiile financiare clasice. Tranzacţiile sunt totuși anonime, deoarece datele despre persoana fizică nu sunt stocate în Nod, existând doar adrese-identificator ciudate precum: mngsQSr4ZomX11Voujush1sifxiBadXvFK

Al treilea principiu și cel mai greu de înţeles este că emiterea ("printarea") de bani este onestă! Cum se produc banii? Aceștia (adică Bitcoin) sunt creaţi de către primul Nod ce rezolvă într-o întrecere o problemă grea de matematică. Pe baza unor date de intrare (input) stabilite fără echivoc, se caută un număr încurcat si amestecat (hash), adica o valoare care este mai mică decât o anumita ţinta (Target). Imediat cum se afla acest numar tinta se transmite către toate celelalte noduri (care au fost mai lente pentru ca n-au aflat inca soluţia) alături de datele de intrare și de un asa numit Nonce! Deoarece toate aceste lucruri pot suna prea criptic pentru cineva neinitiat, este nevoie de o explicaţie detaliată.

Să presupunem că aveţi o pereche de zaruri pe care trebuie să le aruncaţi pentru ca mai apoi să calculaţi suma numerelor. Suma numerelor va fi cuprinsă între 12 și 2. Dacă aruncaţi cele două zaruri până când ajungeţi la un număr mai mic de sau egal cu 12, putem cădea toţi de acord că după prima încercare aţi reușit să vă atingeţi scopul. Dacă vi se cere să aruncaţi zarurile până când suma este mai mică sau egală cu 5, atunci veţi arunca zarurile destul de mult dacă nu aveţi noroc. Dacă vi se cere să aruncaţi zarurile până când suma este mai mică sau egală cu 2, atunci veţi depune cel mai mare efort. În acest ultim caz pentru fiecare încercare veţi avea 1:36 șanse. Acum gândiţi-vă că aveţi miliarde de zaruri "digitale", așa cum de fapt are orice proprietar de Nod Bitcoin. Tot ce trebuie să faceţi este să le aruncaţi cât de repede posibil într-un interval de 10 minute, până când se obţine suma sub un nivel stabilit de comun acord între Noduri. Câștigătorul publică rezultatul și numărul încercărilor de care a fost nevoie pentru a ajunge la sumă. Numărul de încercări de care este nevoie până nimerim răspunsul se numește Nonce. Ţinta este pragul magic suficient de mic care face problema atât de dificilă. Numerele de intrare (input) pentru problemă sunt, pe de o parte, tranzacţiile financiare care așteaptă să fie validate, iar, pe de altă parte, un număr agregat ce reprezintă blocul anterior de tranzacţii și care a fost rezolvat și validat de câștigătorul anterior. Dacă zarurile nu pot fi măsluite și procesul de aruncare de zaruri este complet vizibil pentru oricine, putem fi de acord că onestitatea este asigurată: câștigătorul este cel care a atins primul pragul după un număr de încercări și erori. Imediat ce câștigătorul publică rezultatele către celelalte Noduri Bitcoin perdante, toți trec la rezolvarea următoarei probleme, în următorul interval de 10 minute! Acest proces este costisitor și consumă multă energie electrică de către calculatoarele care rulează Noduri Bitcoin. Mulţi dintre cei care atacă acest sistem scot în evidenţă că Bitcoin-ul irosește cantităţi enorme de energie electrică, de fapt o cantitate similară celei consumate de Irlanda (o țară de aproximativ 4 milioane de oameni). Un contra-argument este că întregul Internet și toate calculatoarele din lume consumă mult mai multă energie decât reţeaua Bitcoin, dar nimeni nu ar lua în calcul ca toate calculatoarele sau tot Internetul să se oprească deoarece consumă prea multă electricitate. Consumul de energie electrică a Bitcoin Nodes este un motiv de îngrijorare reală, dar nu unul major. Acesta este prețul ce trebuie plătit pentru a elimina trișorii și merită plătit! Ca un detaliu comic, cei mai mulţi dintre detractorii Bitcoin-ului sunt economiști liberali de școală veche (anii 60-80) ce se manifestă împotriva Chinei și care nu înţeleg cum a putut ieși China câștigătoare din jocul capitalist. Am vești bune pentru ei: aproximativ 80% din Bitcoin este generat de calculatoare ce rulează în China lângă baraje, utilizând curent hidroelectric, deci China ar trebui să fie ţara cel mai puternic afectată de "sindromul de irosire al energiei electrice din cauza Bitcoin".

Revenind la al treilea principiu, acum avem o idee asupra modului în care putem constrânge calculatoarele să fie oneste. Oricine rezolvă algoritmul hash (similar cu aruncatul a miliarde de zaruri, de miliarde de ori pe secundă până când se atinge pragul) câștigă marele premiu, care în momentul de față este 12.5 Bitcoin. Acum nouă ani la începuturile Bitcoin, fiecare Nod câștigător era recompensat cu 50 Bitcoin la fiecare 10 minute. După patru ani, recompensa a fost înjumătăţită la 25, iar după alţi patru ani, a fost iar înjumătăţită la 12.5. La fiecare patru ani, recompensa pentru rezolvarea problemei de matematică se va înjumătăţi până în 2140 când nu se vor mai tipări Bitcoin-uri noi, iar suma maximă atinsă de Bitcoin va fi de 21 de milioane. Amintiţi-vă că recompensa este acordată către niște proprietari de calculatoare - cu probabilitate de 80% din China - la fiecare 10 minute, deci pe când veţi fi terminat de citit acest articol, un alt fericit câștigător va fi mai bogat cu 100 de mii de dolari americani.

Poate aţi detectat un paradox minor. Dacă banii sunt emiși în încercarea de a rezolva probleme matematice ale căror tranzacţii de intrare folosesc banii emiși în trecut, de unde vin acei bani iniţiali? Ei bine, majoritatea au fost emiși și mai în trecut și ne întoarcem pas cu pas în timp până când ajungem la Blocul Geneza, creat pe 3 ianuarie 2009, și care a emis 50 Bitcoini din nimic, fără o listă anterioară de tranzacţii ce trebuie validate. Orice moneda Bitcoin este emisă pe baza sursei originare a celor 50 Bitcoin din Blocul Geneza.

Acum putem vedea că un bloc de tranzacţii este acceptat drept valid de toate nodurile dacă cel care publică acest bloc de tranzacţii publică cel mai rapid în același timp și soluţia matematică cerută. Soluţia poate fi orice număr mai mic sau egal cu numărul magic ţintă. Calculele pentru soluție sunt greu de realizat, dar verificarea rezultatului este extrem de simplă. Orice Nod are nevoie doar de câteva micro-secunde pentru a verifica soluţia. Soluția e greu de aflat, ia aproximativ 10 minute, dar i se verifică ușor corectitudinea! De asemenea, greutatea problemei este ajustabilă în timp: la fiecare două săptămâni se calculează media de timp necesară rezolvării problemei matematice. Dacă a fost prea ușor pentru Noduri să rezolve problema, atunci numărul țintă va fi automat micșorat, sau dacă a fost prea greu, atunci numărul țintă este mărit. În general, cum apar calculatoare din ce în ce mai bune pentru rezolvarea acestui tip particular de probleme, numărul țintă scade, iar dificultatea problemei crește aproape constant. Oricine câștigă concursul nu doar confirmă un bloc de tranzacţii ca fiind valid, ci câștigă și banii proaspăt emiși, aflaţi azi după cum am menționat la valoarea 12.5 Bitcoin. Pe lângă banii tipăriți, Nodul victorios are dreptul și la comisioanele de tranzacție ale tuturor tranzacțiilor incluse în blocul câștigător. Acest proces se repetă la fiecare 10 minute și se întâmplă continuu de nouă ani! Un bloc de tranzacţii este legat de blocul anterior de tranzacţii, deoarece una din intrările utilizate pentru acea problemă matematică este un număr agregat (hash) ce reprezintă blocul anterior de tranzacţii.

Acest șir de blocuri de tranzacţii ce crește mereu seamănă cu un lanţ (chain), de unde și denumirea de Blockchain!

Mai menţionam un lucru legat de Blockchain: ce se întâmplă dacă două Noduri diferite rezolvă problema aproximativ în același timp? În acest caz, se vor publica două blocuri diferite și aproximativ jumătate din reţeaua Bitcoin va accepta un bloc ca fiind valid, iar cealaltă jumătate va accepta al doilea bloc ca legitim. Toate Nodurile vor începe să lucreze imediat la următoarea problemă, iar jumătatea de reţea care va fi mai înceată (și va pierde întrecerea permanentă) își va respinge ultimul bloc acceptat și va accepta ultimele două blocuri ale celeilalte jumătăți de reţea care a câștigat. Acest scenariu se întâmplă aproximativ o dată pe zi. Scenariu câștigului concomitent poate fi continuat chiar mai departe: se poate întâmpla ca cele două jumătăţi de reţea să găsească iar o soluţie aproximativ în același timp. Acest lucru este întâlnit aproximativ o dată la două săptămâni. Atunci vom avea o reţea împărţită în patru lanţuri paralele care vor lucra și concura împreună pentru a găsi soluţia. Cine câștigă va avea ultimele din blocurile sale acceptate, iar blocurile paralele calculate de celelalte noduri pierzătoare vor fi înlăturate.

În linii mari, acesta este modul de funcţionare a Blockchain-ului și Bitcoin-ului. Organizarea tranzacţiilor în blocuri legate unele de altele și distribuite în toată reţeaua într-un mod acceptat de către toţi membrii reţelei este o inovaţie absolută. Are aplicabilitate în multe cazuri, dincolo de pieţele financiare. Cel mai bun exemplu ar fi democraţia electronică și procesul de vot electronic unde Blockchain-ul ar putea schimba total regulile jocului.

Multor bancheri le este frică de Bitcoin, deoarece se infiltrează prea mult în sistemul universal acceptat. Tot așa mulţi oameni naivi încă folosesc Bitcoin nu ca mediu de schimb, ci pentru valoarea stocata în el (adică pariind pe preţul său viitor). În opinia multora (inclusiv a mea), această nouă organizare financiară este atât de revoluționară încât se impune următorul exerciţiu de gândire: Gândiți-vă care ar fi prima întrebare pe care "un extraterestru prietenos" ar pune-o umanităţii la prima noastră întâlnire. Un fizician ar spune că am fi întrebați: Aţi descoperit gravitaţia? Un biolog s-ar gândi la: Aţi descoperit evoluţia? Ce credeți că s-ar aștepta un economist să fie întrebat? Cel mai probabil, în câțiva ani se va gândi că întrebarea ar trebui să fie: Aţi descoperit capitalismul bazat pe Blockchain? Dincolo de acest joc al presupunerilor, este o realitate faptul că auzim din ce în ce mai mult vorbindu-se de Bitcoin la știri.

La final, aș dori să citez dintr-un articol despre Bitcoin publicat în ,,Medium" de Nassim Taleb, un speculator financiar devenit filozof, un om care menţine viu spiritul levantin:

"Bitcoin reprezintă banii care nu sunt deţinuţi de niciun guvern. Dar, se vor întreba unii, nu am avut noi aur, argint, alte metale, alt tip de bani fără a fi nevoie de guvern? Nu chiar. Când tranzacţionezi aur spre exemplu, faci o tranzacţie locală în Hong Kong și primești un bon de piaţă pe care poate vrei să îl muţi în New Jersey. Băncile controlează jocul custodiei aurului, iar guvernele controlează băncile (sau, ca să ne exprimăm mai diplomatic, bancherii sunt strâns legaţi de oficialii guvernamentali). Deci Bitcoin are un mare avantaj asupra aurului: accesul nu necesită un custode specific. Niciun guvern nu poate controla codul din capul tău.

La final, Bitcoin-ul va mai trece prin multe împotmoliri. Poate că va eșua; dar va fi ușor reinventat, deoarece știm deja cum funcţionează. În stadiul actual, poate să nu fie convenabil pentru tranzacţii, să nu fie suficient de bun pentru a ne cumpăra espresso macchiato decafeinizat la lanțul de cafenea favorit care ne amintește mereu să protejam mediul. Se poate ca deocamdată să fie prea volatil. Dar este prima monedă organică.

Prin simpla-i existenţă Bitcoin este o poliţă de asigurare ce amintește guvernelor că ultimul lucru aflat sub controlul lor, adică banii, nu mai reprezintă monopolul lor absolut. Acest lucru ne dă nouă tuturor o asigurare împotriva unui viitor orwellian."

Link-uri utile:

  1. git clone https://github.com/bitcoin/bitcoin.git

  2. https://bitcoin.org/en/developer-guide#block-chain-overview

  3. https://bitcoinplay.net/58-insane-facts-about-bitcoin/

  4. https://medium.com/opacity/bitcoin-1537e616a074

  5. https://www.amazon.com/Mastering-Bitcoin-Programming-Open-Blockchain/dp/1491954388/ref=dp_ob_title_bk

Conferință

Sponsori

  • comply advantage
  • ntt data
  • 3PillarGlobal
  • Betfair
  • Telenav
  • Accenture
  • Siemens
  • Bosch
  • FlowTraders
  • MHP
  • Connatix
  • UIPatj
  • MetroSystems
  • Globant
  • Colors in projects