
Remus Cernea, deputat în Parlamentul României și posibil candidat din partea Partidului Verde la alegerile prezidențiale din 2014, a declarat acum ceva timp că acceptă donații în bitcoin pentru campania prezidențială. Susține că este o premieră mondială. E în trend. In lipsa unui program electoral coerent și pragmatic ar putea să se axeze pe diversificarea metodelor de colectare de fonduri măcar.
Cu cât mai fistichii, cu atât mai bine: artefacte în World of Warcraft, vieți în Candy Crush Saga, reîncărcare credit pe cartela telefonică.
Restaurantul “La Conu’ Iancu” din București acceptă plata în bitcoin.
In decembrie 2013 cineva posta pe okazii.ro că vinde o casă în Pipera și că acceptă plata în bitcoin (echivalentul a 365.000 de euro în moneda bitcoin).
Acestea sunt doar câteva dintre știrile referitoare la Bitcoin apărute în ultima vreme. Predomină, firește, preluările din presa internațională ce acoperă subiecte de genul “Se dezumflă bula Bitcoin?”, “Primul Bancomat Bitcoin în SUA”, “Crește Bitcoin”, “Scade Bitcoin” și tot așa.
Dar ce este până la urmă Bitcoin?
Simplist vorbind, din punctul de vedere al utilizatorului este o monedă digitală folosită pentru plăți online – “cash for the internet” după cum spun cei de pe bitcoin.org.
O poți obține ori în urma procesului de “mining” (punem PC-ul să râșnească niște blocuri de date și în schimb primim bitcoini), ori ca plată pentru anumite produse și servicii sau o putem chiar cumpăra de la unul dintre multele “exchange-uri” online (site-uri unde se pot cumpăra/vinde bitcoini folosind valute convenționale sau alte monede virtuale). Mai știm că valoarea monezii a fluctuat foarte mult de-a lungul timpului, dar tocmai această volatilitate ne lasă cumva impresia că prețul pentru un bitcoin va ajunge să explodeze. Așadar, dacă adunăm mulți bitcoini acum, o să fim cel puțin bogați cândva.
O să încerc să explic puțin mai detaliat și cât mai ușor de înțeles ideile principale din spatele protocolului Bitcoin.
Bitcoin nu este doar o monedă digitală, este de fapt un întreg sistem de plată electronică, descentralizat, “peer-to-peer”.
“Bitcoin” (cu majusculă) se referă la tehnologia în sine, protocolul și rețeaua ce permite acest sistem de plată, iar “bitcoin” este numele monezii în sine. Termenul general acceptat este de criptomoneda, pentru că algoritmul folosit pentru validarea tranzacțiilor și controlul asupra creării de monezi noi utilizează criptografia.
Conceptul de “criptomonedă” a fost descris prima oară de Wei Dai în 1998, iar Bitcoin este prima implementare a acestui concept. Tehnologia Bitcoin a fost dezvoltată în 2008 și publicată în 2009 de Satoshi Nakamoto. Satoshi Nakamoto este un pseudonim pentru dezvoltatorul sau grupul de dezvoltatori inițiali ai protocolului Bitcoin, identitatea reală a acestuia nefiind cunoscută până acum.
De aici și numele pentru subdiviziunea bitcoinului: 1 satoshi = 10−8 bitcoini (adică 100 milioane satoshi = 1 bitcoin).
Fiecare utilizator își instalează o aplicație, un “portofel” digital, pe calculator sau pe telefonul mobil. Folosindu-se de acest portofel digital în care își păstrează bitcoinii, utilizatorul poate să trimită sau să primească bitcoini de la alți utilizatori.
Totodată, prin procesul de „mining”, utilizatorii pot câștiga bitcoini. Aceasta este de fapt modalitatea prin care se generează monezi noi.
Care este mecanismul din spatele Bitcoin?
In lumea fizică, dacă am o carte, pot să o dau unei singure persoane o singură dată la un moment dat. In lumea digitală, dacă am un fișier PDF al aceleiași cărți, pot să îl dau unui număr nelimitat de persoane de oricâte ori doresc.
Același lucru se întâmpla până recent și monedelor digitale. Dacă vroiam să fac o monedă digitală, mă loveam de problema unicității tranzacțiilor – cine verifică că nu dau aceeași monedă la mai mulți (sau că nu o înmulțesc artificial pentru mine). Pînă la urmă, și un fișier PDF, și o monedă digitală sunt tot un șir de biți. Problema principală? Unicitatea și securitatea.
Cum se rezolvă problema unicității și securității banilor în lumea fizică? Băncile. Banca Națională este singura care îi emite și monetăria îi înseriază, deci se asigură că sunt unici. Alte bănci se ocupă cu stocarea și tranzacționarea lor, activitate reglementată de BNR.
În lumea Bitcoin nu s-a dorit acest lucru. Bitcoin s-a vrut a fi un sistem descentralizat de plată într-o monedă nouă digitală, așa că au trebuit controlate 2 aspecte: securizarea tranzacțiior și emiterea monezilor. Ambele au fost rezolvate prin crearea unei rețele peer-to-peer, similară cu BitTorrent.
Reluăm problema unicității. Să spunem că eu am un bitcoin (șir de biți) pe care i-l dau lui Cristi.Cum pot fi impiedicat să trimit același șir de biți și lui Bogdan, și altora de câte ori vreau?Sau cum poate fi cineva împiedicat să falsifice un asemenea șir de biți pentru a fura de la mine? O soluție ar fi să anunț pe toată lumea din rețea că eu, Sorin,îi dau lui Cristi un bitcoin. Voi semna acest mesaj cu o cheie criptografică pentru a se putea verifica că într-adevăr mesajul a venit de la mine. În acest fel toată lumea e sigură că doar eu aș fi putut să trimit acel mesaj, iar eu, la randul meu nu aș putea să neg și să spun că nu am vrut să îi trimit banii.
Rămâne problema trimiterii aceluiași mesaj de mai multe ori. Cristi poate primi 10 copii ale aceluiași mesaj, semnat de mine, fără să însemne însă că i-am trimis 10 bitcoini. Cum poate fi rezolvată această problemă? Prima idee ar fi să se aloce fiecărui bitcoin o serie unică, serie care să fie inclusă în mesajul tranzacției. Pentru asta ar fi nevoie de o “bancă”, o entitate terță de încredere care să furnizeze aceste serii, care să țină socoteala banilor fiecăruia și care să valideze tranzacțiile. Dar nu ar mai fi o soluție descentralizată.
Cum s-ar putea elimina banca? Se poate crea un registru comun și unic în care să se înregistreze toate tranzacțiile, ce bitcoini aparțin cui, registru care va fi public și accesibil fiecărui utilizator. Acest registru se numește “block chain” și conține toate tranzacțiile efectuate de la începuturile Bitcoin-ului și până acum. Fiecare utilizator va descărca o copie a acestui block chain. Acest lucru se întâmplă prima oară când începe să folosească bitcoin, după ce își instalează aplicația “wallet”.
În acest caz, când eu voi trimite un mesaj semnat de mine de tipul “Îi dau lui Cristi un bitcoin cu seria 222333″, Cristi va putea verifica, consultând block chain-ul că într-adevăr acel bitcoin este al meu și că pot să i-l dau. În clipa în care tranzacția se validează, fiecare utilizator își va actualiza propria copie a block-chain-ului, banii trimiși aparținând acum lui Cristi.
Mai este de rezolvat problema “double spending-ului simultan”. Dacă eu trimit același mesaj și lui Cristi și lui Bogdan în același timp, până ca block chain-ul să fie actualizat, fiecare mă verifică în copia proprie a block chain-ului, vede că într-adevăr dețin bitcoin-ul și fiecare validează tranzacția. Este o perioadă foarte scurtă de timp în care aș putea face asta, până la actualizarea block chain-ului, dar dacă reușesc cumva să întârzii propagarea mesajelor în rețea în așa fel încât Cristi și Bogdan să nu își actualizeze registrul în timp util, este posibil să reușesc. Pentru a elimina și această posibilitate, nu doar Cristi și Bogdan își vor verifica tranzacțiile,ci și ceilalți membri ai rețelei vor valida tranzacțiile din rețea.
Aici apare ideea de „Proof of work”. Teoretic, pot crea un sistem automat care să genereze un număr mare de entități distincte („utilizatori falși”) în rețeaua bitcoin, care să fie controlate de mine și să valideze tranzacțiile în mod eronat în funcție de interesele mele.
Trebuie implementat un mecanism astfel încât validarea tranzacției să fie costisitoare din punct de vedere al puterii de calcul. În felul acesta nu va mai conta numărul de entități controlate, ci puterea de calcul pe care o am la dispoziție. Mai exact, pentru ca cineva să poată influența rezultatul validărilor, va trebui să dispună de o putere de calcul mai mare decât a tuturor celorlalți membri ai rețelei la un loc, ceea ce este practic imposibil. La modul superficial, iată cum funcționează acest mecanism:
-> când un utilizator validează tranzacțiile care sunt în așteptare în lista lui, el trebuie să anunțe întreaga rețea de validitatea lor;
-> nu i se permite însă să facă asta, până nu rezolvă o problemă ce necesită putere de calcul ca proof of work;
-> dificultatea problemei este ajustată automat, în așa fel încât un bloc de tranzacții să se valideze în medie o dată la 10 minute.
Mai multe detalii despre algoritm puteți găsi în nota de la sfârșitul articolului.
Producerea acestui “proof of work” reprezintă de fapt “mining-ul”. Iar pentru ca utilizatorii să fie dispuși să lucreze la acest “proof of work” este nevoie de un stimulent. Așa că la fiecare validare a unui bloc, utilizatorul care a reușit validarea va primi un număr de bitcoini. Există de asemenea și un „transaction fee” dar care deocamdată este 0.
La început se ofereau 50 bitcoini/bloc validat. Acum se oferă 25 bitcoini/bloc, urmând ca in 2017 să fie oferiți 12,5 bitcoin, această bonificație înjumătățindu-se periodic din 4 în 4 ani.
Se estimează că în 2140 vor fi 21 milioane de bitcoini în circulație, iar generarea de monezi noi se va opri. În acel moment, utilizatorii care validează tranzacții vor fi răsplătiți doar cu un procent din valoarea tranzacției validate.
Validarea tranzacțiilor la fiecare 10 minute introduce și un efect secundar: imposibilitatea confirmării plăților instant. Dacă alegem să plătim pentru cafea cu bitcoini de exemplu, chelnerul va trebui să aștepte 10 minute pentru a se asigura că tranzacția este validă. Mai mult decât atât, în cazul sumelor importante, se recomandă așteptarea mai multor validări succesive pentru un spor de securitate. Se consideră 6 confirmări succesive ca fiind suficente pentru o garanție totală a validității tranzației. Însă aceste 6 validări pot însemna 60 de minute.

Acest mining și reward-ul pe care îl aduce au declanșat o adevărată isterie în comunitatea bitcoin, mulți utilizatori văzând-o ca pe o metodă de îmbogățire rapidă. O „goană după aur” a zilelor noastre. Pe măsură ce valoarea unui bitcoin a început să crească, tot mai mulți utilizatori și-au pus calculatoarele la treabă.
Inițial era destul de ușor să obții bitcoini în urma mining-ului, puterea de calcul a procesorului fiind suficientă pentru acest lucru. Însă pe măsură ce numărul utilizatorilor a crescut, crescând implicit și puterea de calcul a rețelei bitcoin,și algoritmul și-a sporit dificultatea. După cum spuneam mai sus, dificultatea se ajustează automat (în sus sau în jos), în așa fel încât să se valideze un bloc de date la fiecare 10 minute. În curând, procesoarele n-au mai fost suficient de rapide pentru validarea blocurilor. Așa că au început să fie folosite plăcile video, care sunt mai eficiente pentru operațiile cu virgula mobilă. Cererea ajunsese să fie atât de mare, încât anuminte modele, cunoscute pentru performanța lor în decodarea blocurilor, nu mai erau de găsit în magazine. Încet încet însă, și acestea au fost depăsite de FPGA-uri și ulterior ASIC-uri – cip-uri dedicate, construite să facă o singură operație: să găsească nonce-ul (variabila „n”) pentru validarea unui bloc de date (vezi nota de la final). S-au format grupuri de utilizatori (pool-uri) care „minau” împreună pentru o eficiență mai mare, urmând să împartă reward-ul la final.
Însă de fiecare dată rețeaua își ajustează automat dificultatea. Pentru un utilizator obișnuit, care „minează” singur, a ajuns să fie mai scump curentul consumat decât reward-ul primit.
Bitcoin a generat o adevarată „industrie” colaterală: producători de ASIC-uri pentru mining, site-uri pentru înscrierea în „pool-urile” de mining, „burse” unde se pot cumpăra bitcoini folosind bani convenționali, site-uri care calculează în cât timp un utilizator și-ar putea amortiza investiția în hardware pentru mining, aplicații de tip „wallet” pentru terminalale mobile, „wallet-uri” de hartie (un QR code ce conține cheia privată pentru un bitcoin) și multe monede alternative.
Deoarece devine din ce în ce mai dificil să se obțină bitcoini în urma mining-ului, au început să apară monede alternative, care folosesc aceleași principii generale, însă, cel puțin momentan sunt mai ușor de obținut (de exemplu „litecoin”). Există „exchange-uri” ce permit convertirea acestor monezi în bitcoini.
Un număr tot mai mare de utilizatori „sapă” după aceste monede noi, însă este greu de prezis care dintre ele vor dăinui și care vor dispărea, ceea ce implică un risc considerabil.
Tododată, din princina speculațiilor, a reacțiilor diferitelor guverne vis a vis de Bitcoin și a temerilor referitoare la securitatea acestuia (atacurile recente asupra MtGox), există ovariatie foarte mare a prețului bitcoin. Personal, nu mi-aș păstra banii de pensie în bitcoin și nici nu aș investi in hardware si energie pentru mining, însă aș accepta să fiu platit în bitcoin pentru diverse servicii. E posibil să fie o investiție ce să se dovedească fructuoasă. Sau poate nu, dar măcar nu m-ar ruina.
Oricum, chiar dacă nu o să ne îmbogățească pe toți, chiar dacă nu o să ducă la desfiițtarea băncilor așa cum le știm, chiar dacă o să servească sau nu la crearea de noi instrumente financiare, cel mai important este că Bitcoin ne-a pus puțin pe gânduri. Și asta nu poate fi niciodată un lucru rău.
NOTĂ:
Funcția folosită este SHA256, funcție hash folosită în criptografie (returnează un rezultat în sistem hexazecimal).
ex: h= funția SHA256
t = lista tranzacțiilor validate de un utilizator
n = variabilă numerică
Funcția h, aplicată pentru și n [h(t,n)] va returna un șir hexazecimal.
Problema care trebuie rezolvată este găsirea unui „n” în așa fel încât rezultatul lui h(t,n) să înceapă cu un anume număr de zerouri. Cu cât este mai mare numărul de zerouri, cu atât mai greu este de determinat “n”.
Practic, acest număr de zerouri stabilește dificultatea operației. Această dificultate este ajustată automat, în așa fel încât un bloc de tranzacții să se valideze în medie o dată la 10 minute.
Multumiri lui Michael Nielsen pentru detalierea ideilor principale din spatele protocolului Bitcoin pe blogul sau.
























