Loading Posts...

Geneza Bitcoin (II): HashCash, blocul motor al Bitcoin conceput de Adam Back

hashcash_bitcoin

– Articol de Colecție –

Suntem la data de 28 martie 1997, iar cei aproximativ 2000 de abonați la lista de email cypherpunk primesc un email cu header-ul de mai sus. Expeditorul este un britanic în vârstă de 26 de ani care își termina studiile post-doctorat la Universitatea din Exeter, un tânăr criptograf și contribuitor prolific la respectiva listă de email: Dr. Adam Back. Email-ul conținea o descriere și implementarea în primă fază a ceea ce el numea “o schemă a timbrelor poștale bazată pe coliziunea parțială a hash-ului” – un fel de echivalent al timbrelor pentru email, bazat pe un extraordinar truc criptografic.

Citește și Geneza Bitcoin: eCash, împlinirea visului mișcării cypherpunk

“Ideea de a folosi hash-uri parțiale este că acestea pot efectua calcule la un preț arbitrar”, spunea Back despre avantajele sistemului său, “și pot fi și verificate instantaneu”.

Propunerea criptografului, care ocupă acum poziția de CEO al companiei Blockstream, nu a atras imediat atenția abonaților la lista de email; un singur cititor a răspuns, acesta având o întrebare tehnică referitoare la algoritmul de hash ales. Cu toate acestea, tehnologia din spatele HashCash — Proof of Work — avea să fie în următoarul deceniu un model pentru cercetările în domeniul banilor digitali.

“Prețuri prin procesare sau combaterea mesajelor junk”

HashCash nu a fost prima soluție de această natură.

La începutul anilor 1990, promisiunea Internetului și în particular avantajele unui sistem de poștă electronică au devenit evidente entuziaștilor IT. Totuși, pionierii Internetului au realizat că email-ul, așa cum fusese numit sistemul de poștă electronică, prezenta și el anumite provocări.

“În particular, ușurința și costul scăzut al trimiterii mesajelor electronice, coroborat cu simplitatea transmiterii aceluiași mesaj la mai mulți destinatari, invită la abuzuri”, scriau în 1992 cercetătorii de la IBM Dr. Cynthia Dwork și Dr. Moni Naor, în white paper-ul lor intitulat “Pricing via Processing or Combatting Junk Mail” (n.r. Prețuri prin procesare sau combaterea mesajelor junk).

Și într-adevăr, pe măsură ce email-ul a crescut în popularitate, le fel s-a întâmplat și cu spam-ul.

Era nevoie de o soluție – au agreat utilizatorii de Internet – iar aceasta era expusă în documentul redactat de Dwork și Naor.

Cei doi au propus un sistem unde expeditorii trebuiau să atașeze niște date în toate email-urile pe care le trimiteau. Aceste date reprezentau soluțiile unei probleme matematice, unice pentru fiecare email în parte. Mai precis, Dwork și Naor au propus trei puzzle-uri candidate care puteau fi utilizate pentru acest scop, toate fiind bazate pe criptografia cheii publice și pe scheme de semnături.

Adăugarea unei soluții la un email nu era ceva dificil, iar în mod ideal necesita doar câteva secunde din puterea de procesare a unui PC obișnuit. În același timp, validitatea soluției putea fi verificată cu ușurință de către destinatar. Dar, și aici este și trucul, chiar dacă era vorba de o cantitate infimă de putere de procesare, aceasta devenea o piedică pentru agențiile de publicitate, pentru escroci sau pentru hackerii care încercau să trimită mii sau chiar milioane de mesaje deodată. Spam-ul, după cum spunea teoria, putea fi realizat doar la un cost prohibitiv și era deci neprofitabil.

“Ideea de bază este de a-i solicita unui utilizator să calculeze o funcție de dificultate moderată, dar nu de nerezolvat, pentru a obține acces la resursă, astfel prevenindu-se folosirea neserioasă”, au explicat Dwork și Naor.

Dwork și Naor  nu au propus termenul, însă tipul de soluție prezentat de ei a devenit cunoscut sub numele de sistem “Proof of Work” (dovadă de lucru). Utilizatorii trebuiau să demonstreze că PC-urile lor au efectuat munca respectivă, pentru a arăta că au folosit într-adevăr resursele reale.

Era o soluție îndrăzneață, care a apărut însă înainte de timpul ei. Propunerea nu a trecut niciodată de nivelul unui cerc relativ mic de pasionați ai calculatoarelor.

Adam Back și cypherpunks

Cam în aceeași perioadă în care Dwork și Naor și-au publicat white-paper-ul, un grup de adepți ai intimității orientați spre liberalism a recunoscut, de asemenea, potențialul enorm al Internetului. Mulțimea condusă de ideologie a început să se organizeze printr-o listă de email axată pe tehnologiile care consolidau intimitatea. Similar lui Dwork și Naor, acești “Cypherpunks” – după cum aveau să fie numiți – au apelat la relativ noua știință a criptografiei pentru a-și atinge țelurile.

De-a lungul anilor, Adam Back — care a obținut doctoratul în 1996 – a devenit unul dintre cei mai activi participanți ai listei, contribuind cu zeci de email-uri în fiecare lună. Aidoma celor mai mulți cypherpunks, criptograful era pasionat de subiecte ca intimitatea, libera exprimare și liberalismul, și s-a implicat în discuții tehnice referitoare la email-uri anonime, sisteme de fișiere criptate, bani electronici – care fuseseră introduși de Dr. David Chaum – și multe altele.

Pentru un timp însă, Back a fost cunoscut cel mai bine poate pentru imprimarea și vânzarea de tricouri cu “muniție”: erau niște tricouri care aveau imprimate un protocol de criptare, intenția fiind de a evidenția decizia absurdă a guvernului S.U.A. de a considera programul de criptare PGP al lui Phil Zimmermann ca fiind o “muniție”, așa cum este ea definită de politica de export americană. Cine purta un tricou al lui Back când trecea granița pentru a părăsi Statele Unite devenea din punct de vedere tehnic un “exportator de muniție”.

tricou_adam_backTricourile cu muniție marcă Adam Back

Ca mulți alții, Back nu aflase de propunerea Proof of Work concepută de Dwork și Naor. Însă, la jumătatea anilor 1990 a început să se gândească la ceva similar pentru a combate spam-ul, devenind uneori foarte vocal pe lista de email a mișcării Cypherpunk.

“Un beneficiu secundar al utilizării PGP constă în faptul că această formă de criptare ar trebui să îl pună în dificultate pe spammer – el probabil că va putea cripta mai puține mesaje pe secundă decât ar putea spama cu o conexiune T3”, afirma Back. De exemplu, în contextul adăugării unui nivel mai înalt de intimitate pentru utilizatorii de email; ideea era oarecum asemănătoare cu cea a lui Dwork și Naor.

Lista de email a mișcării Cypherpunk a crescut exponențial în următorii cinci ani. Ceea ce demarase ca o platformă de discuții online pentru un grup de oameni care se reuniseră inițial la un start-up din Zona Golfului San Fancisco devenise un mic fenomen pe Internet, cu mii de abonați și cu atâtea email-uri zilnice, încât nimeni nu le-a putut reține numărul.

Cam prin 1997 – când lista de email atingea maximul de popularitate – Back a prezentat pentru prima dată propunerea HashCash.

HashCash

HashCash este ceva similar propunerii anti-spam a lui Dwork și Naor și are același scop, chiar dacă Back a propus și unele utilizări adiționale, cum ar fi contorizarea anonimă a abuzurilor de email. Dar, așa cum sugerează și numele, HashCash nu se baza pe puzzle-urile criptografice la care au apelat Dwork și Naor; el funcționa pe baza hashing-ului.

Hashing-ul este un truc criptografic care preia orice date – indiferent dacă este vorba de o singură literă sau de o carte întreagă – și le transformă în ceea ce pare un număr aleatoriu de o lungime predeterminată.

De exemplu, un hash SHA-256 al propoziției Aceasta este o propoziție se prezintă în forma următorului număr hexazecimal:

A1238F378BFC4401CA47758E06D2304655197CE7D461835603426D16594D7129

Care poate fi convertit ca număr zecimal:

161351435513925268120271117142621048708525124231212971318636610922897711341

Sau astfel, în binar:

hash_binar

În același timp, un hash SHA-256 al propoziției Aceasta, este o propoziție întoarce următorul număr hexazecimal:

BC0FD2D314D1B5B248FBB1A31E0524CC44868E7CE5709583E10F4FE692B61101

După cum se poate vedea, inserarea unei virgule în propoziție schimbă complet hash-ul. Și, foarte important, hash-ul oricăreia dintre cele două propoziții a fost 100% impredictibil; chiar dacă a fost obținut hash-ul primei propoziții, din rezultat nu se poate întoarce hash-ul celei de-a doua. Singura modalitate de a ajunge la cele două valori este prin calcularea hash-urilor ambelor propoziții.

HashCash aplică acest truc matematic într-un mod inteligent.

Cu HashCash, metadatele unui email (ex.: câmpurile “From” sau “To”) sunt formalizate ca protocol. Adițional, expeditorul unui email trebuie să adauge un număr aleatoriu la aceste metadate: un “provizoriu” (nonce). Apoi, din toate metadatele, inclusiv din provizoriu, se calculează hash-ul, astfel că rezultatul arată asemănător numerelor aleatorii de mai sus.

Iată care este trucul: nu toate hash-urile sunt considerate “valide”. În schimb, versiunea binară a hash-ului trebuie să înceapă cu un număr predeterminat de zerouri. De exemplu, 20 de zerouri. Expeditorul poate genera un hash care începe cu 20 de zerouri prin includerea unui provizoriu care, în mod aleatoriu, adaugă ceea ce este corect. Însă, expeditorul nu poate să știe în avans cum va arăta provizoriul.

Drept urmare, pentru generarea unui hash valid, expeditorul are o singură opțiune: încercare și eroare (trial and error), numită și forță brută (brute force). El trebuie să încerce încontinuu provizorii diferiți până când găsește combinația validă; altfel, email-ul său va fi respins de către clientul de email al destinatarului. Asemănător soluției lui Dwork și Naor, aceasta necesită resurse de calcul: este un sistem Proof of Work.

“Dacă nu există un hash de 20 biți […] aveți un program care îl respinge cu o notificare unde se explică expedierea necesară și de unde se poate obține softul”, scria Back pe lista de email cypherpunk. “Asta i-ar scoate peste noapte pe spammeri din afacere, întrucât 1.000.000 x 20 = 100 de ani de MIP (n.r. milioane de instrucțiuni pe secundă), ceea ce va reprezenta o putere de calcul peste ce dețin ei”.

Notabil, sistemul Proof of Work al lui Back este mai aleatoriu decât cel utilizat de Dwork și Naor. Soluția celor doi necesita rezolvarea unui puzzle, adică un PC mai rapid l-ar fi rezolvat întodeauna într-un timp mai scurt decât un PC lent. Dar, statistic, HashCash ar fi permis și PC-urilor lente să găsească soluția corectă uneori.

(Prin analogie, dacă un om aleargă mai repede ca altul, primul va câștiga cursa de fiecare dată. Însă dacă cineva cumpără mai multe bilete la Loto decât altcineva, statistica spune că și cel din urmă va câștiga uneori, doar ca nu la fel de des).

Raritate digitală

La fel ca propunerea lui Dwork și Naor, HashCash – care a fost elaborat de Back într-un white paper în 2002 – niciodată nu a devenit extrem de popular. El a fost implementat pe platforma open source SpamAssassin care ținea de Apache, iar Microsoft a încercat ideea Proof of Work în formatul incompatibil “email postmark”. Și Back, alături de alți academicieni, a venit de-a lungul anilor cu diverse aplicații alternative pentru soluția sa, dar cele mai multe nu au prezentat niciun interes. Pentru majoritatea aplicațiilor potențiale, lipsa efectului de rețea a fost un obstacol de nedepășit.

Cu toate acestea, Dwork și Naor pe de-o parte, dar și Back, de cealaltă parte, au introdus ceva nou. În timp ce una dintre cele mai puternice caracteristici a produselor digitale este ușurința cu care pot fi copiate, Proof of Work a fost în esență primul concept asemănător cu raritatea virtuală, care nu s-a bazat pe o entitate centrală: el a corelat date digitale cu resursele limitate ale puterii de calcul din lumea reală.

Și raritatea, desigur, este necesară banilor. Într-adevăr, în particular, Back a plasat în mod explicit HashCash în categoria banilor, prin intermediul contribuțiilor sale la lista de email cypherpunk și prin white paper, îndreptându-l către singurii bani digitali pe care-i văzuse lumea până atunci: eCash-ul produs de DigiCash-ul lui Chaum.

“HashCash poate oferi o măsură substitut până când DigiCash devine utilizat mai vast”, a susținut Back în lista de email. “HashCash este gratuit tot ce aveți de făcut este să ardeți câteva cicluri cu PC-ul. El este în concordanță cu cultura netă a discursului liber, unde cel cu dificultăți financiare poate fi un duce între milionari, oficiali ai guvernului ieșiți la pensie, etc. cu care s-ar afla pe picior de egalitate. HashCash ne poate oferi o metodă de rezervă pentru controlarea spam-ului dacă DigiCash se strică (este scos în afara legii sau i se impune să păstreze în escrow identitățile utilizatorilor)”.

Totuși, în pofida numelui, HashCash nu a reușit să funcționeze ca bani în adevăratul sens al cuvântului (după cum nu a putut nici propunerea lui Dwork și Naor). Poate, cel mai important, orice Proof of Work primit este inutil destinatarului. Spre diferență de bani, HashCash nu putea fi cheltuit din nou în altă parte. În plus, pe măsură ce viteza computerelor a crescut în fiecare an, acestea puteau produce în timp din ce în ce mai multe dovezi de lucru, cu un cost tot mai mic; astfel, HashCash ar fi fost lovit de (hiper)inflație.

Ceea ce a oferit însă dovada de lucru, mai mult decât orice altceva, a fost o bază nouă pentru cercetările din domeniul banilor digitali. Multe dintre cele mai notabile propuneri ulterioare de bani digitali erau construite pe HashCash, de obicei prin permiterea reutilizării dovezii de lucru. Cel mai bun exemplu în acest sens este modelul Reusable Proof of Work — RPOW — conceput de Hal Finney.

Bitcoin

În sfârșit, desigur, Proof of Work a devenit piatra de temelie pentru Bitcoin, HashCash numărându-se printre puținele exemple citate în white paper-ul Bitcoin.

Totuși, în Bitcoin, HashCash (sau, mai degrabă, o versiune a acestuia) este utilizat mult diferit decât s-ar fi gândit majoritatea. Spre deosebire de HashCash și de celelalte propuneri bazate pe HashCash, raritatea conferită nu este folosită în sensul de bani. În schimb, HashCash determină o competiție. Minerul care produce primul o dovadă de lucru validă – un hash al unui bloc Bitcoin – decide ce tranzacții sunt acceptate. Cel puțin la nivel teoretic, toți participanții pot participa în mod egal: analog exemplului loteriei, chiar și minerii mici ar putea statistic să fie primii care produc o dovadă de lucru.

Mai departe, odată ce un bloc nou este minat și se confirmă un set de tranzacții, este improbabil ca aceste tranzacții să fie anulate. Un atacator ar trebui să dovedească cel puțin la fel de multă muncă pe cât este necesar în primul rând pentru a găsi un bloc, iar la asta s-ar adăuga o cantitate de muncă pentru fiecare alt bloc găsit, lucru care în mod normal crește exponențial în dificultate de-a lungul timpului. Resursele din lumea reală care trebuie utilizate pentru a trișa depășesc de departe profitul potențial care ar fi obținut trișând, motiv pentru care destinatarii tranzacțiilor Bitcoin nu au de ce să se îngrijoreze că aceste tranzacții nu ar fi unele finale.

Acesta este modul prin care, în Bitcoin, HashCash a împușcat doi iepuri dintr-un foc. El a rezolvat problema dublei cheltuiri într-o manieră descentralizată, oferind în același timp un truc pentru a scoate în circulație monede noi, fără a apela la un emitent central.

HashCash nu a realizat primul sistem de bani electronici – eCash este acesta – iar Proof of Work nu a putut funcționa într-adevăr ca bani. Fără acestea însă, un sistem descentralizat de bani electronici ar fi fost imposibil de conceput.

Cum ţi s-a părut acest articol? Gazeta Bitcoin te invită să ne scrii un comentariu pe iBitcoin.ro!

2
HeartHeart
0
HahaHaha
0
WowWow
0
SadSad
0
AngryAngry
Voted Thanks!

Gazeta Bitcoin

Redacția de știri.

Leave a Reply

Loading Posts...