2. Uvod
• Cilj ove prezentacije je skicirati kako radi
protokol Bitcoin bez ulaženja u tehničke
detalje. Prvo će se prikazati kako korisnici
doživljavaju plaćanje putem banke, a zatim
konstruirati sustav koji postiže isti rezultat, ali
bez posrednika.
• Ovo predavanje prvi je puta održano 10.
ožujka 2016. u klubu MaMa.
2
3. Plaćanje putem banke
• Slijedi gruba skica načina plaćanja putem banke. Poanta nije u
točnom prikazu rada bankarskog sustava nego općeniti prikaz
rada centraliziranog sustava da bi se vidjelo što Bitcoin radi
drugačije i koliko teško je to postići.
• Pretpostavimo da su sve prikazane osobe klijenti jedne banke
te da međusobno žele slati novčane transakcije. Da bi se
novac prenio od jedne osobe na drugu, potrebno je da
pošiljatelj da nalog banci da određeni iznos prenese s
njegovog računa na račun druge osobe te da tu transakciju
autorizira. Banka, koja ima pregleda i kontrolu nad svim
klijentima i računima, umanji iznos na računu prve osobe za
poslanu svotu, odnosno uveća račun druge osobe za tu istu
svotu.
3
5. Digitalna valuta 1
• Pokušajmo realizirati digitalnu valutu bez posrednika.
Zamislimo da korisnik V.I.D. želi poslati novac korisniku P.P.
Pošiljatelj tad konstruira poruku: “Ja V.I.D. šaljem P.P. 100
novaca” te tu poruku potpiše i pošalje. Primatelj prihvaća da
ta poruka vrijedi 100 novaca. Iako trivijalan, ovaj sustav ima
dvije dobre strane. Zbog potpisa na poruci pošiljatelj ne može
kasnije poreći svoju transakciju. Taj potpis pruža i određenu
zaštitu od krivotvorenja. No što pošiljatelja sprječava da
pošalje neograničen broj takvih poruka?
5
7. Digitalna valuta 2
• Da bismo sprječili kopiranje poruke, pokušajmo uvesti pravilo
da svaka transakcija mora imati jedinstven serijski broj. Tad bi
poruka izgledala ovako “Ja V.I.D. šaljem P.P. 100 novaca s
brojem 01”. U tom slučaju primatelj može lako provjeriti je li
novac iz transakcije već primljen. Serijski brojevi osiguravaju
da se novac ne može kopirati. No što ako pošiljatelj istu
transakciju pošalje na različite primatelje? Npr. “Ja V.I.D.
šaljem A.A. 100 novaca s brojem 01”. Serijski broj kaže da se
radi o istoj transakciji (novčanici) koja je već poslana
(potrošena) pa ju drugi korisnik nebi smio primiti.
7
9. Digitalna valuta 3
• Da bi primatelj mogao prihvatiti transakciju mora biti siguran
da nitko drugi u sustavu nije primio identičnu.U bankarskom
sustavu banka ima pregled na stanjem svih računa svojih
klijenata. U sustavu bez posrednika svaki sudionik mora imati
pregled stanja svih računa sudionika. Dakle, transakciju “Ja
V.I.D. šaljem P.P. 100 novaca s brojem 01” potrebno je poslati
svim sudionicima u mreži, ne samo primatelju. Ovo sprječava
pošiljatelja da transakciju pošalje prvo jednom, a zatim
drugom primatelju. No što ako različiti primatelji istovremeno
dobiju identičnu transakciju?
9
11. Digitalna valuta 4
• Što ako periodički (npr. svakih 10 minuta) slučajno odaberemo
jednog sudionika mreže da nam kaže koje su se transakcije
dogodile u prethodnom vremenskom intervalu? Ostali će
sudionici sukladno tome osvježiti lokalno stanje cijele mreže.
Ovo rješava pokušaj slanja identične transakcije različitim
sudionicima (dvostruka potrošnja). Ako slučajno odabrani
sudionik nije primio neku od transakcija potrebno ju je
ponoviti. No, zašto vjerovati odabranom sudioniku? Što ako
sudionik kontrolira većinu mreže uz pomoć lažnih identiteta?
Željeli bismo da nam sudionik (matematički) dokaže da je
uložio određeni trud u verificiranje transakcija i da nas ne želi
prevariti.
11
13. Digitalna valuta 5
• Zamislimo da su sve transakcije dijelovi slagalice. Svi sudionici
prikupljaju dijelove slagalice (transakcije) te od njih
pokušavaju složiti pravokutnik. Sudionik koji to prvi uspije
svoje transakcije objavljuje mreži uz pripadajuću slagalicu.
Ostali se sudionici lako mogu uvjeriti da slagalice tvore
pravokutnik te dobivene transakcije uvrštavaju u svoje lokalne
kopije stanja mreže. Primjetimo da je slagalicu teško za
sastaviti no lako je provjeriti da je rezultat ispravan. Onaj tko
prvi objavi rješenje slagalice, tzv. dokaz rada, na svoj račun
dobiva 25 novaca kao naknadu za trud. Traženje dokaza rada
naziva se i rudarenje. Rudarenjem novi novac ulazi u sustav.
Što je sudionika više, to je rudarenje teže. Naknada od 25
novaca motivira sudionike mreže da ostanu pošteni.
13
15. Tako radi Bitcoin
• Bitcoin adrese umjesto imena
• Digitalni potpisi (ECDSA)
• Za dokaz rada koristi se SHA256
• Nema serijskih brojeva
• Transakcije se skupljaju u blokove (liste) sa
zaglavljima i referencom na prethodni blok te
tvore lanac blokova (blockchain)
15