
Bitcoin whitepaper:Peer-to-peer sistem elektronskog novca
Ceo rad Satoshija Nakamota iz 2008. godine preveden na srpski: kako peer-to-peer sistem elektronskog novca sprečava dvostruku potrošnju bez banke u sredini.
Sadržaj
Ovo je prevod na srpski rada „Bitcoin: A Peer-to-Peer Electronic Cash System“, koji je Satoshi Nakamoto objavio 31. oktobra 2008. Original na engleskom i danas stoji na istoj adresi. Prevod prati original rečenicu po rečenicu, sa istim odeljcima, slikama, formulama i kodom. Kako je rad nastao i zašto je važan, objašnjava tekst Whitepaper o Bitcoinu.
Rad je kratak, ali gust. Oslanja se na pojmove koje su objasnili tekstovi pre njega: heš, ključeve i potpise, dvostruku potrošnju, rudarenje i nagradu za blok. Ako ti neki odeljak bude težak, vrati se na njih. Odeljak 11 je račun verovatnoće sa formulama. Ako te formule ne zanimaju, preskoči ga i pređi na zaključak.
Sažetak. Čisto peer-to-peer verzija elektronskog novca omogućila bi da se plaćanja preko interneta šalju direktno od jedne strane drugoj, a da ne prolaze kroz finansijsku instituciju. Digitalni potpisi su deo rešenja, ali se glavne prednosti gube ako je i dalje potrebna treća strana od poverenja da spreči dvostruku potrošnju. Predlažemo rešenje problema dvostruke potrošnje pomoću peer-to-peer mreže. Mreža transakcijama daje vremenske žigove tako što ih hešira u neprekidan lanac dokaza o radu (proof-of-work) zasnovanog na hešu. Tako nastaje zapis koji ne može da se promeni bez ponovnog izvođenja dokaza o radu. Najduži lanac nije samo dokaz o redosledu događaja kojima je mreža bila svedok, nego i dokaz da potiče od najvećeg skupa procesorske snage. Dok god većinu procesorske snage kontrolišu čvorovi koji ne sarađuju u napadu na mrežu, oni će stvarati najduži lanac i biti brži od napadača. Sama mreža traži minimalnu strukturu. Poruke se emituju po principu najbolje moguće isporuke, a čvorovi mogu po volji da napuste mrežu i da joj se vrate, i tada prihvataju najduži lanac dokaza o radu kao dokaz o onome što se desilo dok ih nije bilo.
1. Uvod
Trgovina na internetu oslanja se gotovo isključivo na finansijske institucije, koje kao treće strane od poverenja obrađuju elektronska plaćanja. Iako sistem dovoljno dobro radi za većinu transakcija, i dalje trpi zbog slabosti koje su svojstvene modelu zasnovanom na poverenju. Potpuno nepovratne transakcije zapravo nisu moguće, jer finansijske institucije ne mogu da izbegnu posredovanje u sporovima. Trošak posredovanja povećava troškove transakcija, ograničava najmanji iznos transakcije koji se još isplati i ukida mogućnost malih, usputnih transakcija. Postoji i širi trošak, a to je gubitak mogućnosti da se nepovratno plati za usluge koje se ne mogu vratiti. Kad plaćanje može da se poništi, potreba za poverenjem se širi. Trgovci moraju da budu oprezni prema kupcima i da ih gnjave traženjem više podataka nego što bi im inače trebalo. Određeni procenat prevara prihvata se kao neizbežan. Ovi troškovi i neizvesnosti u plaćanju mogu da se izbegnu uživo, upotrebom fizičkog novca, ali ne postoji mehanizam za plaćanje preko komunikacionog kanala bez strane od poverenja.
Potreban je sistem elektronskog plaćanja zasnovan na kriptografskom dokazu umesto na poverenju, koji bi svakim dvema stranama koje to žele omogućio da transakciju obave direktno jedna sa drugom, bez treće strane od poverenja. Transakcije koje je računarski nepraktično poništiti zaštitile bi prodavce od prevara, a uobičajeni mehanizmi deponovanja novca kod treće strane (escrow) lako bi mogli da se uvedu radi zaštite kupaca. U ovom radu predlažemo rešenje problema dvostruke potrošnje pomoću peer-to-peer distribuiranog servera vremenskih žigova, koji stvara računarski dokaz o hronološkom redosledu transakcija. Sistem je bezbedan dok god pošteni čvorovi zajedno kontrolišu više procesorske snage od bilo koje grupe čvorova napadača koji sarađuju.
2. Transakcije
Elektronski novčić definišemo kao lanac digitalnih potpisa. Svaki vlasnik prenosi novčić sledećem tako što digitalno potpiše heš prethodne transakcije i javni ključ sledećeg vlasnika i to doda na kraj novčića. Primalac može da proveri potpise i tako proveri lanac vlasništva.
Transakcije
Sliku možeš da pomeraš levo-desno.
Izvor: Satoshi Nakamoto, „Bitcoin: A Peer-to-Peer Electronic Cash System“ (otvara se u novom prozoru), 31. oktobar 2008, slika na strani 2. Oznake na slici smo preveli na srpski.
Problem je, naravno, u tome što primalac ne može da proveri da neko od vlasnika nije dvaput potrošio novčić. Uobičajeno rešenje je da se uvede centralna vlast od poverenja, odnosno kovnica, koja svaku transakciju proverava na dvostruku potrošnju. Posle svake transakcije novčić mora da se vrati kovnici, koja izdaje nov novčić, i samo za novčiće koje je kovnica izdala direktno veruje se da nisu dvaput potrošeni. Problem sa ovim rešenjem je u tome što sudbina celog novčanog sistema zavisi od firme koja vodi kovnicu, jer svaka transakcija mora da prođe kroz nju, baš kao kod banke.
Potreban nam je način da primalac zna da prethodni vlasnici nisu potpisali nijednu raniju transakciju. Za naše potrebe važi najranija transakcija, pa nas kasniji pokušaji dvostruke potrošnje ne zanimaju. Jedini način da se potvrdi da neka transakcija ne postoji jeste da se zna za sve transakcije. U modelu sa kovnicom, kovnica je znala za sve transakcije i odlučivala je koja je stigla prva. Da bi se to postiglo bez strane od poverenja, transakcije moraju da se javno objave [1], a potreban nam je i sistem u kome se učesnici slažu oko jedinstvene istorije redosleda kojim su transakcije primljene. Primaocu je potreban dokaz da se u trenutku svake transakcije većina čvorova slagala da je ona primljena prva.
3. Server vremenskih žigova
Rešenje koje predlažemo počinje serverom vremenskih žigova. Server vremenskih žigova radi tako što uzme heš bloka stavki kojima treba dati vremenski žig i taj heš široko objavi, na primer u novinama ili u poruci na Usenetu [2-5]. Vremenski žig dokazuje da su podaci očigledno morali da postoje u tom trenutku, inače ne bi mogli da uđu u heš. Svaki vremenski žig u svom hešu sadrži prethodni vremenski žig, pa tako nastaje lanac u kome svaki sledeći vremenski žig učvršćuje one pre njega.
Server vremenskih žigova
Sliku možeš da pomeraš levo-desno.
Izvor: Satoshi Nakamoto, „Bitcoin: A Peer-to-Peer Electronic Cash System“ (otvara se u novom prozoru), 31. oktobar 2008, slika na strani 2. Oznake na slici smo preveli na srpski.
4. Dokaz o radu
Da bismo napravili distribuirani server vremenskih žigova na peer-to-peer osnovi, umesto novina ili poruka na Usenetu moraćemo da koristimo sistem dokaza o radu sličan Hashcashu Adama Beka (Adam Back) [6]. Dokaz o radu se sastoji u traženju vrednosti čiji heš, na primer algoritmom SHA-256, počinje određenim brojem nultih bitova. Prosečan potreban rad raste eksponencijalno sa brojem traženih nultih bitova, a proverava se izračunavanjem samo jednog heša.
U našoj mreži vremenskih žigova dokaz o radu ostvarujemo tako što povećavamo nonce u bloku sve dok se ne nađe vrednost koja hešu bloka daje tražene nulte bitove. Kad je procesorski rad uložen da blok zadovolji dokaz o radu, blok ne može da se promeni bez ponovnog izvođenja tog rada. Kako se kasniji blokovi nadovezuju na njega, rad potreban za izmenu tog bloka uključivao bi i ponovno izvođenje svih blokova posle njega.
Dokaz o radu
Sliku možeš da pomeraš levo-desno.
Izvor: Satoshi Nakamoto, „Bitcoin: A Peer-to-Peer Electronic Cash System“ (otvara se u novom prozoru), 31. oktobar 2008, slika na strani 3. Oznake na slici smo preveli na srpski.
Dokaz o radu rešava i problem kako odrediti ko se broji kad se odlučuje većinom. Kad bi se većina zasnivala na pravilu „jedna IP adresa, jedan glas“, mogao bi da je izigra svako ko može da zauzme mnogo IP adresa. Dokaz o radu je u suštini pravilo „jedan procesor, jedan glas“. Odluku većine predstavlja najduži lanac, u koji je uloženo najviše rada na dokazu o radu. Ako većinu procesorske snage kontrolišu pošteni čvorovi, pošteni lanac će rasti najbrže i prestići svaki lanac koji mu konkuriše. Da bi izmenio neki raniji blok, napadač bi morao ponovo da izvede dokaz o radu za taj blok i za sve blokove posle njega, a zatim da sustigne i prestigne rad poštenih čvorova. Kasnije ćemo pokazati da verovatnoća da sporiji napadač sustigne pošteni lanac eksponencijalno opada kako se dodaju novi blokovi.
Da bi se nadoknadili sve brži hardver i promenljivo interesovanje za pokretanje čvorova tokom vremena, težinu dokaza o radu određuje pokretni prosek, čiji je cilj prosečan broj blokova na sat. Ako se blokovi stvaraju prebrzo, težina raste.
5. Mreža
Koraci za rad mreže su sledeći:
- Nove transakcije se emituju svim čvorovima.
- Svaki čvor skuplja nove transakcije u blok.
- Svaki čvor radi na pronalaženju teškog dokaza o radu za svoj blok.
- Kad čvor pronađe dokaz o radu, emituje blok svim čvorovima.
- Čvorovi prihvataju blok samo ako su sve transakcije u njemu ispravne i ako već nisu potrošene.
- Čvorovi pokazuju da su prihvatili blok tako što rade na stvaranju sledećeg bloka u lancu, a heš prihvaćenog bloka koriste kao prethodni heš.
Čvorovi uvek smatraju najduži lanac ispravnim i nastavljaju da rade na njegovom produžavanju. Ako dva čvora istovremeno emituju različite verzije sledećeg bloka, neki čvorovi mogu prvo da prime jednu, a neki drugu. U tom slučaju rade na onoj koju su primili prvu, ali čuvaju i drugu granu za slučaj da ona postane duža. Nerešen ishod se razrešava kad se pronađe sledeći dokaz o radu i jedna grana postane duža. Čvorovi koji su radili na drugoj grani tada prelaze na dužu.
Emitovanje novih transakcija ne mora obavezno da stigne do svih čvorova. Dok god stigne do mnogo čvorova, transakcije će uskoro ući u neki blok. Emitovanje blokova takođe podnosi izgubljene poruke. Ako čvor ne primi neki blok, zatražiće ga kad primi sledeći blok i shvati da mu je jedan promakao.
6. Podsticaj
Po dogovoru, prva transakcija u bloku je posebna transakcija koja započinje nov novčić, čiji je vlasnik tvorac bloka. To čvorovima daje podsticaj da podržavaju mrežu i omogućava da se novčići prvi put puste u opticaj, jer ne postoji centralna vlast koja bi ih izdavala. Postojano dodavanje stalne količine novih novčića slično je radu rudara zlata, koji troše resurse da bi zlato dodali u opticaj. U našem slučaju troše se procesorsko vreme i struja.
Podsticaj može da se finansira i naknadama za transakcije. Ako je izlazna vrednost transakcije manja od ulazne, razlika je naknada za transakciju, koja se dodaje vrednosti podsticaja bloka u kome je ta transakcija. Kad unapred određen broj novčića uđe u opticaj, podsticaj može potpuno da pređe na naknade za transakcije i da bude potpuno bez inflacije.
Podsticaj može da pomogne da čvorovi ostanu pošteni. Ako pohlepni napadač uspe da skupi više procesorske snage od svih poštenih čvorova zajedno, morao bi da bira da li će je iskoristiti da prevari ljude tako što bi ukrao nazad svoja plaćanja ili da njome stvara nove novčiće. Trebalo bi da mu se više isplati da igra po pravilima, i to pravilima koja mu donose više novih novčića nego svima ostalima zajedno, nego da potkopava sistem i valjanost sopstvenog bogatstva.
7. Oslobađanje prostora na disku
Kad je poslednja transakcija nekog novčića zakopana pod dovoljno blokova, potrošene transakcije pre nje mogu da se odbace, da bi se uštedeo prostor na disku. Da bi to bilo moguće, a da se heš bloka ne naruši, transakcije se heširaju u Merklovo stablo [7][2][5], a u heš bloka ulazi samo koren stabla. Stari blokovi se tada mogu sažeti tako što se odseku grane stabla. Unutrašnji heševi ne moraju da se čuvaju.
Oslobađanje prostora na disku
Sliku možeš da pomeraš levo-desno.
Izvor: Satoshi Nakamoto, „Bitcoin: A Peer-to-Peer Electronic Cash System“ (otvara se u novom prozoru), 31. oktobar 2008, slika na strani 4. Oznake na slici smo preveli na srpski.
Zaglavlje bloka bez transakcija imalo bi oko 80 bajtova. Ako pretpostavimo da blokovi nastaju na svakih 10 minuta, 80 bajtova * 6 * 24 * 365 = 4,2 MB godišnje. Pošto su se računari 2008. godine obično prodavali sa 2 GB RAM-a, a Murov zakon predviđa sadašnji rast od 1,2 GB godišnje, skladištenje ne bi trebalo da bude problem čak i ako zaglavlja blokova moraju da se drže u memoriji.
8. Pojednostavljena provera plaćanja
Plaćanja je moguće proveriti i bez pokretanja punog čvora mreže. Korisnik treba da čuva samo kopiju zaglavlja blokova najdužeg lanca dokaza o radu, koju dobija tako što šalje upite čvorovima mreže dok se ne uveri da ima najduži lanac, i da pribavi Merklovu granu koja povezuje transakciju sa blokom u kome je ona dobila vremenski žig. Transakciju ne može sam da proveri, ali kad je poveže sa mestom u lancu, vidi da ju je neki čvor mreže prihvatio, a blokovi dodati posle nje dodatno potvrđuju da ju je mreža prihvatila.
Pojednostavljena provera plaćanja
Sliku možeš da pomeraš levo-desno.
Izvor: Satoshi Nakamoto, „Bitcoin: A Peer-to-Peer Electronic Cash System“ (otvara se u novom prozoru), 31. oktobar 2008, slika na strani 5. Oznake na slici smo preveli na srpski.
Zato je provera pouzdana dok god pošteni čvorovi kontrolišu mrežu, ali je ranjivija ako mrežu nadjača napadač. Dok čvorovi mreže mogu sami da proveravaju transakcije, napadačeve izmišljene transakcije mogu da zavaraju pojednostavljeni način sve dok napadač uspeva da nadjačava mrežu. Jedan način zaštite bio bi da se prihvataju upozorenja čvorova mreže kad otkriju neispravan blok, posle kojih bi korisnikov program preuzeo ceo blok i transakcije na koje se upozorenje odnosi, da bi potvrdio nedoslednost. Firme koje često primaju uplate verovatno će i dalje hteti da pokreću sopstvene čvorove, radi nezavisnije bezbednosti i brže provere.
9. Kombinovanje i deljenje vrednosti
Iako bi bilo moguće raditi sa svakim novčićem posebno, bilo bi nezgrapno praviti zasebnu transakciju za svaki cent u prenosu. Da bi vrednost mogla da se deli i spaja, transakcije sadrže više ulaza i izlaza. Obično će postojati ili jedan ulaz iz veće prethodne transakcije ili više ulaza koji spajaju manje iznose, i najviše dva izlaza, jedan za plaćanje i jedan koji pošiljaocu vraća kusur, ako ga ima.
Kombinovanje i deljenje vrednosti
Sliku možeš da pomeraš levo-desno.
Izvor: Satoshi Nakamoto, „Bitcoin: A Peer-to-Peer Electronic Cash System“ (otvara se u novom prozoru), 31. oktobar 2008, slika na strani 5. Oznake na slici smo preveli na srpski.
Treba primetiti da grananje, kad jedna transakcija zavisi od nekoliko transakcija, a one zavise od još mnogo drugih, ovde nije problem. Nikad nije potrebno izdvojiti potpunu, samostalnu kopiju istorije neke transakcije.
10. Privatnost
Tradicionalni bankarski model postiže određen nivo privatnosti tako što pristup podacima ograničava na strane u transakciji i na treću stranu od poverenja. Potreba da se sve transakcije javno objave isključuje taj način, ali privatnost i dalje može da se sačuva ako se tok podataka prekine na drugom mestu, tako što javni ključevi ostaju anonimni. Javnost može da vidi da neko šalje neki iznos nekom drugom, ali bez podataka koji transakciju povezuju sa bilo kim. To je slično nivou podataka koje objavljuju berze, gde su vreme i veličina pojedinačnih trgovina, takozvana „traka“, javni, ali se ne kaže ko su bile strane.
Privatnost
Sliku možeš da pomeraš levo-desno.
Izvor: Satoshi Nakamoto, „Bitcoin: A Peer-to-Peer Electronic Cash System“ (otvara se u novom prozoru), 31. oktobar 2008, slika na strani 6. Oznake na slici smo preveli na srpski.
Kao dodatni zaštitni zid, za svaku transakciju treba koristiti nov par ključeva, da se transakcije ne bi povezale sa zajedničkim vlasnikom. Neko povezivanje je ipak neizbežno kod transakcija sa više ulaza, jer one nužno otkrivaju da su svi ulazi pripadali istom vlasniku. Rizik je u tome što bi, ako se otkrije vlasnik nekog ključa, povezivanje moglo da otkrije i druge transakcije koje su pripadale istom vlasniku.
11. Proračuni
Razmatramo slučaj u kome napadač pokušava da stvori drugi lanac brže od poštenog lanca. Čak i kad bi u tome uspeo, sistem time ne bi postao otvoren za proizvoljne izmene, kao što su stvaranje vrednosti ni iz čega ili uzimanje novca koji nikad nije pripadao napadaču. Čvorovi neće prihvatiti neispravnu transakciju kao plaćanje, a pošteni čvorovi nikad neće prihvatiti blok koji takve transakcije sadrži. Napadač može samo da pokuša da izmeni neku svoju transakciju i da uzme nazad novac koji je nedavno potrošio.
Trka između poštenog lanca i lanca napadača može da se opiše kao binomna slučajna šetnja. Uspeh je kad se pošteni lanac produži za jedan blok i njegova prednost poraste za +1, a neuspeh je kad se lanac napadača produži za jedan blok i razlika se smanji za -1.
Verovatnoća da napadač nadoknadi određeni zaostatak slična je problemu propasti kockara. Zamislimo kockara sa neograničenim kreditom koji počinje u minusu i igra potencijalno beskonačan broj partija da bi pokušao da izađe na nulu. Verovatnoću da on ikada izađe na nulu, odnosno da napadač ikada sustigne pošteni lanac, možemo da izračunamo ovako [8]:
- = verovatnoća da pošteni čvor pronađe sledeći blok
- = verovatnoća da napadač pronađe sledeći blok
- = verovatnoća da će napadač ikada sustići pošteni lanac ako zaostaje z blokova
S obzirom na našu pretpostavku da je p > q, verovatnoća eksponencijalno opada kako raste broj blokova koje napadač mora da nadoknadi. Kad su izgledi protiv njega, ako na samom početku ne napravi srećan skok napred, šanse mu postaju zanemarljivo male što više zaostaje.
Sada razmatramo koliko dugo primalac nove transakcije mora da čeka pre nego što bude dovoljno siguran da pošiljalac ne može da promeni transakciju. Pretpostavljamo da je pošiljalac napadač koji želi da primalac neko vreme veruje da mu je platio, a zatim da plaćanje preusmeri nazad sebi kad prođe neko vreme. Primalac će biti upozoren kad se to desi, ali pošiljalac se nada da će tada biti prekasno.
Primalac pravi nov par ključeva i daje javni ključ pošiljaocu neposredno pre potpisivanja. Tako pošiljalac ne može da unapred pripremi lanac blokova, radeći na njemu neprekidno dok ne bude dovoljno srećan da dovoljno odmakne, i da tek tada izvrši transakciju. Kad je transakcija poslata, nepošteni pošiljalac počinje da u tajnosti radi na paralelnom lancu koji sadrži drugu verziju njegove transakcije.
Primalac čeka da transakcija bude dodata u blok i da se posle nje nadoveže z blokova. On ne zna koliko je tačno napadač napredovao, ali ako pretpostavimo da su pošteni blokovi nastajali za prosečno očekivano vreme po bloku, mogući napredak napadača imaće Poasonovu raspodelu sa očekivanom vrednošću:
Da bismo dobili verovatnoću da napadač i sada može da sustigne pošteni lanac, Poasonovu gustinu za svaki iznos napretka koji je mogao da ostvari množimo verovatnoćom da od te tačke može da ga sustigne:
Preuređujemo izraz da ne bismo sabirali beskonačni rep raspodele...
Prevodimo u C kod...
#include <math.h>
double AttackerSuccessProbability(double q, int z)
{
double p = 1.0 - q;
double lambda = z * (q / p);
double sum = 1.0;
int i, k;
for (k = 0; k <= z; k++)
{
double poisson = exp(-lambda);
for (i = 1; i <= k; i++)
poisson *= lambda / i;
sum -= poisson * (1 - pow(q / p, z - k));
}
return sum;
}
Kad izračunamo nekoliko rezultata, vidimo da verovatnoća eksponencijalno opada sa z.
q=0.1
z=0 P=1.0000000
z=1 P=0.2045873
z=2 P=0.0509779
z=3 P=0.0131722
z=4 P=0.0034552
z=5 P=0.0009137
z=6 P=0.0002428
z=7 P=0.0000647
z=8 P=0.0000173
z=9 P=0.0000046
z=10 P=0.0000012
q=0.3
z=0 P=1.0000000
z=5 P=0.1773523
z=10 P=0.0416605
z=15 P=0.0101008
z=20 P=0.0024804
z=25 P=0.0006132
z=30 P=0.0001522
z=35 P=0.0000379
z=40 P=0.0000095
z=45 P=0.0000024
z=50 P=0.0000006
Rešavamo za P manje od 0,1%...
P < 0.001
q=0.10 z=5
q=0.15 z=8
q=0.20 z=11
q=0.25 z=15
q=0.30 z=24
q=0.35 z=41
q=0.40 z=89
q=0.45 z=340
12. Zaključak
Predložili smo sistem za elektronske transakcije koji se ne oslanja na poverenje. Počeli smo od uobičajenog okvira novčića napravljenih od digitalnih potpisa, koji daje snažnu kontrolu vlasništva, ali je nepotpun bez načina da se spreči dvostruka potrošnja. Da bismo to rešili, predložili smo peer-to-peer mrežu koja dokazom o radu beleži javnu istoriju transakcija, koju napadaču vrlo brzo postaje računarski nepraktično da promeni ako pošteni čvorovi kontrolišu većinu procesorske snage. Mreža je otporna u svojoj nestrukturiranoj jednostavnosti. Čvorovi rade svi u isto vreme, uz malo koordinacije. Ne moraju da budu poznati, jer se poruke ne usmeravaju ni na jedno određeno mesto i dovoljno je da budu isporučene po principu najbolje moguće isporuke. Čvorovi mogu po volji da napuste mrežu i da joj se vrate, i tada prihvataju lanac dokaza o radu kao dokaz o onome što se desilo dok ih nije bilo. Oni glasaju svojom procesorskom snagom. Ispravne blokove prihvataju tako što rade na njihovom produžavanju, a neispravne odbacuju tako što odbijaju da rade na njima. Sva potrebna pravila i podsticaji mogu da se sprovedu ovim mehanizmom konsenzusa.
Literatura
- W. Dai, „b-money“, http://www.weidai.com/bmoney.txt, 1998.
- H. Massias, X. S. Avila i J.-J. Quisquater, „Design of a secure timestamping service with minimal trust requirements“, u: 20th Symposium on Information Theory in the Benelux, maj 1999.
- S. Haber, W. S. Stornetta, „How to time-stamp a digital document“, u: Journal of Cryptology, tom 3, br. 2, str. 99-111, 1991.
- D. Bayer, S. Haber, W. S. Stornetta, „Improving the efficiency and reliability of digital time-stamping“, u: Sequences II: Methods in Communication, Security and Computer Science, str. 329-334, 1993.
- S. Haber, W. S. Stornetta, „Secure names for bit-strings“, u: Proceedings of the 4th ACM Conference on Computer and Communications Security, str. 28-35, april 1997.
- A. Back, „Hashcash - a denial of service counter-measure“, http://www.hashcash.org/papers/hashcash.pdf, 2002.
- R. C. Merkle, „Protocols for public key cryptosystems“, u: Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, str. 122-133, april 1980.
- W. Feller, „An introduction to probability theory and its applications“, 1957.
Šta dalje?
Rad iz 2008. opisuje kako mreža radi. Ko danas kupuje bitcoine, najčešće to radi preko menjačnice, a menjačnica traži ličnu kartu. Zašto je tako i šta to znači za tebe, čitaš u sledećem tekstu, Šta su KYC i AML i zašto menjačnica traži ličnu kartu?
- Bitcoin whitepaper: peer-to-peer sistem elektronskog novca
Tekst 13 od 14
