You are on page 1of 8

Razvoj Softvera 2 0(0):1–8 DOI: N/A

Kriptovalute

Uroš Jovanović 1047/2013

Matematički fakultet
Studentski trg 16, 11000 Beograd
mi10062@matf.bg.ac.rs

Sažetak Ovim radom biće opisani osnovni pojmovi i koncepti kriptovaluta. O ekonom-
skom aspektu kriptovaluta biće nešto više reči u završnom delu dok će generalno
veći deo pažnje biti posvećen kriptovalutama u kontekstu informacionih tehnologija.
Ključne reči: kriptovalute, kriptografija, digitalni novac, biktoin

1. Uvod
Kriptovalute (eng."cryptocurrency") su specijalan oblik digitalne, odnosno virtualne va-
lute. Iako kriptovalute formalno jesu sredstvo razmene, za razliku od "realnih" valuta još
uvek nisu strogo regulisane zakonom u većini država a u pojedinim su i zabranjene. Začet-
nik, a ujedno i glavni predstavnik kriptovaluta, jeste Bitkoin (eng."Bitcoin"). Sam termin
Bitkoin označava istoimenu organizaciju, softver i protokol dok se terminom bitkoin oz-
načava jedinica mere (skraćeno BTC). Principi i algoritmi na kojima su zasnovane sve
ostale kriptovalute generalno potiču od Bitkoina, te će on biti glavna tema daljeg izla-
ganja.

2. Istorija Bitkoina
2.1. Inicijalni razvoj
‘Bitkoin, kao koncept, se prvi put spominje 2008. godine u članku "Bitcoin: A Peer-
to-Peer Electronic Cash System"[1] izdatom od strane autora (ili organizacije) poznatog
jedino pod pseudonimom "Satoshi Nakamoto". Početkom 2009. godine ista organizacija
pokreće projekat otvorenog koda pod nazivom Bitcoin-Qt i prvi bitkoini se puštaju u
promet. Prvih godina postojanja bitkoin nije imao skoro nikakvu vrednost a aktivnosti
su bile jako slabe i uglavnom su se svodile na razmene bitkoina izmedju kriptografskih
entuzijasta.1

2.2. Uspon Bitkoin mreže


Sredinom 2011. godine Bitkoin dobija na popularnosti i dolazi do prvog masivnog skoka
vrednosti (1BTC = 32$) ubrzo ispraćenog prvim masivnim padom. U narednom periodu
vrednost stabilno raste da bi tokom kiparske finansijske krize (2012-2013) dostigla maksi-
mum od čak 266$. Broj korisnika kao i broj transakcija počinje naglo da raste, otvaraju se
prve onlajn menjačnice kriptovaluta, dok pojedine trgovinske radnje počinju da prihvataju
bitkoine kao validno sredstvo plaćanja.
1
Korisnik Bitkoin mreže "laszlo" se vodi kao osoba koja je napravila prvu Bitkoin transakciju.
Kupio je 2 pice za 10.000 bitkoina u vrednosti od 25$ (22. maj 2010.)
2 Uroš Jovanović 1047/2013

2.3. Globalno prihvatanje Bitkoina


Oktobra 2013. godine kineski internet gigant "Baidu" počinje da prihvata bitkoine za
svoje usluge bezbednosnih servisa. Ubrzo se otvara i prva BTC menjačnica u Kini "BTC
China" koja nadjačava do tada najpopularniju menjačnicu "Mt.Gox"(Japan) i evropski
"Bitstamp". U Kanadi se istog meseca postavlja prvi bitkoin bankomat. Polovinom novem-
bra 2013. USS (United States Senate) priznaje kriptovalute kao legitimno finansijsko sred-
stvo. Istog dana vrednost bitkoina skače na rekordnih 1100$. No, ovaj skok nije uspeo
dugo da se održi, kako je već početkom decembra 2013. Narodna banka Kine zabranila
svim finanskijskim institucijama upotrebu bitkoina. Isključenjem Kine vrednost bitkoina
se skoro prepolovila.

2.4. Zatvaranje menjačnice "Mt.Gox"


Početkom februara 2014. godine, jedna od najvećih Bitkoin menjačnica je suspendovana
zbog navodnih tehničkih problema. Par nedelja kasnije "Mt.Gox" prijavljuje da je izgubljeno
oko 850.000 bitkoina (473.000.000$ u to vreme), najverovatnije zlonamernim upadom
hakera. Ogorčeni ovom vešću, korisnici menjačnice podižu tužbu protiv "Mt.Gox" pod
sumnjom da je cela stvar iscenirana. Krajem februara 2014. godine, "Mt.Gox" proglašava
bankrot i zatvara se. Zatvaranje ove menjačnice se negativno odrazilo na vrednost bitkoina
koji za svega par nedelja pada sa 800$ na 400$.

Slika 1. Vrednost bitkoina od marta 2012. do pada "Mt.Gox" februara 2014.

Trenutno, vrednost bitkoina je delimično stabilizovana na oko 550$ a procenjuje se da


je u opticaju preko 12 miliona bitkoina u mreži. Kako se konkretno generišu novi bitkoini
i detalji koji stoje iza celokupnog sistema biće opisani u sledećem odeljku.
Kriptovalute 3

3. Osnovni koncepti i algoritmi

Bitkoin je koncipiran kao transparentan, decentralizovan (peer-to-peer), elektronski sis-


tem transakcija koji se ne oslanja na poverenje već na složene kriptografske algoritme.
Za razliku od tradicionalnih sistema, ovde ne postoji centralna banka koja izdaje novac
ili obrad̄uje i čuva transakcije, niti postoji jedinstveni vlasnik Bitkoin mreže kao celine.
Kako je onda moguća bilo kakva sigurna razmena u ovakvom sistemu?

3.1. Transakcije

Recimo da korisnik Alice želi da pošalje korisniku Bob 5BTC. Informacija o ovoj transak-
ciji se automatski emituje svim korisnicima na mreži tj. svaki korisnik ima na uvid svoje
i transakcije svih ostalih korisnika Bitkoina što je još jedna ključna razlika u odnosu na
centralizovan sistem. Prvo pitanje koje se nameće je kako drugi korisnici znaju da je in-
formacija o pokrenutoj transakciji validna?
Svaka transakcija sadrži digitalni potpis korisnika koji ju je započeo. Digitalni potpis
se, bez ulaženja u detalje algoritma, generiše iz kombinacije same transakcione poruke i
privatnog ključa korisnika. Lako se zaključuje da je potpis drugačiji u svakoj poruci što
praktično čini falsifikovanje neizvodivim bez originalnog privatnog ključa. Svaki koris-
nik ujedno poseduje i javni ključ koji je u nekakvoj matematičkoj relaciji sa privatnim.
Triplet (poruka, potpis, javni ključ) se koristi kao ulaz odred̄ene matematičke funkcije
koja odred̄uje da li je data kombinacija moguća ili ne. Na ovaj način ostali čvorovi u
mreži mogu da provere validnost transakcije bez informacije o privatnom ključu.

Slika 2. Ilustracija procesa generisanja i provere validnosti potpisa

Konkretno, Bitkoin koristi ECDSA (eng."Eliptic Curve Digital Signature Algorithm")[2]


za generisanje digitalnih potpisa. Kao ulaz se zapravo ne koristi sama transakciona poruka
već heš poruke. Za heširanje se u većini slučajeva koristi SHA-256 dok se algoritam
RIPEMD-160 koristi kada su kraće heš sekvence poželjnije. Na primer, adresa na koju ko-
risnik prima i sa koje šalje bitkoine je zapravo generisana od dvostruko heširanog (SHA-
256, potom RIPEMD-160 kako bi se dobio kraći zapis) javnog ključa korisnika.
4 Uroš Jovanović 1047/2013

Primer Bitkoin adrese: 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy

3.2. Bitkoin novčanik


Kriptovalute se čuvaju u digitalnim novčanicima. Digitalni novčanik predstavlja softver
koji sadrži kolekciju privatnih i javnih ključeva vlasnika. Jedan korisnik može generisati
proizvoljan broj Bitkoin adresa odnosno parova privatni-javni ključ. Verovatnoća gener-
isanja iste Bitkoin adrese je zanemarljivo mala2 , te se nikakve provere ne vrše, što znači
da se ceo proces može odviti bez konektovanja na mrežu (offline), što je ujedno i najsig-
urniji način. Balans bitkoina korisnika se ne čuva ekplicitno u formi finalne vrednosti,
već je potrebno proći kroz ceo niz svih potvrd̄enih transakcija (u celoj mreži) i sabrati
vrednosti nepotrošenih bitkoina koji referišu ka javnim ključevima korisnika. Bitkoini
se zapravo ne šalju (u strogo formalnom kontekstu), već se samo menja vlasništvo nad
njima. Gubitkom informacija o privatnom i javnom ključu, korisnik gubi referencu ka
svojim bitkoinima i oni ostaju nepovratno izgubljeni. S toga je važno praviti redovne
bezbednosne kopije novčanika a isti se može i dodatno kriptovati radi većeg stepena za-
štite. Iako same datoteke koje čuvaju podatke o ključevima nisu velike, Bitkoin novčanik
može zauzeti značajan prostor, jer konstantna sinhronizacija sa mrežom podrazumeva ču-
vanje podataka o svim ikada izvršenim transakcijama. Alternativa lokalnom su veb bazi-
rani novčanici, koji ne zahtevaju čuvanje lokalne kopije transakcije, no, intuitivno, stepen
bezbednosti je znatno niži. Bitkoini se takod̄e mogu čuvati i u fizičkim oblicima poput
kovanica i papira sa QR kodovima, no ovakvi načini čuvanja i distribucije su slabo zastu-
pljeni.

3.3. Ulančani blokovi


Već smo spomenuli da se informacija o transakcijama širi (kopira) do svakog čvora u
mreži. Kako se u svakom momentu započne veliki broj transakcija, one mogu stizati u ra-
zličitom poretku do individualnog čvora u zavisnosti od vremena propagacije kroz mrežu.
Ovo otvara mogućnosti raznoraznih prevara, te je potreban adekvatan način sinhronizacije
redosleda transakcija izmed̄u svih čvorova. Naivno rešenje bi bilo proslediti informaciju
o vremenu započete transakcije, no taj podatak se vrlo lako može lažirati od strane inici-
jatora transakcije a i kolizije u toj soluciji su svakako i dalje moguće.
Bitkoin sistem čuva istoriju transakcija u tzv. ulančanim blokovima (eng."block chain")
gde svaki blok sadrži referencu ka prethodnom, sve do prvog generisanog bloka transak-
cija. Za sve transakcije unutar jednog bloka se smatra da su se dogodile u isto vreme.
Tako da, kada grupa nepotvrd̄enih transakcija stigne u isto vreme do jednog čvora, biće
smeštene u jedan novi blok i čvor će emitovati svoj predlog za novi blok ostalim čvorovima.
Med̄utim, kako redosled transakcija varira od čvora do čvora, različiti čvorovi će imati ra-
zličite predloge za novi blok istovremeno - koji blok izabrati kao zvanični novi blok?
Rešenje ovog problema je od fundamentalnog značaja kako za Bitkoin tako i za sve ostale
kriptovalute.
Osnovna zamisao rešenja je da svaki blok sadrži odgovor na posebno kriptografsko
pitanje. Sadržaj potencijalno novog bloka se, zajedno sa nasumično generisanim brojem,
2
Broj mogućih Bitkoin adresa je 2160 . Kada bi svako zrno peska na Zemlji predstavljalo još jednu
Zemlju, ukupan broj zrna peska bi bio manji od navedenog broja mogućih adresa.
Kriptovalute 5

hešira SHA-256 algoritmom. Ostali čvorovi potom kolektivno nagad̄aju taj nasumično
generisani broj pokušavajući da dobiju heš vrednost koja je ispod neke ciljne vrednosti.
Kada se takav broj nad̄e, čvor koji je pogodio kombinaciju se progrlašava "nalazačem"
novog bloka i njegov predlog se dodaje u Bitkoin lanac blokova. Ovakav mehanizam
nasumičnosti omogućava normalnu raspodelu verovatnoće pronalaska novog bloka u za-
visnosti od vremena. Bitkoin mreža u proseku pronad̄e (reši) jedan blok na svakih 10
minuta.

Slika 3. Raspodela verovatnoće pronalaska novog bloka.

3.4. Rudarenje bitkoina

Jednom kućnom računaru bi bile potrebne godine da pogodi kombinaciju i reši jedan
blok. Med̄utim, u Bitkoin mreži svaki čvor zapravo predstavlja jedan ili više računara
koji rade u simultanoj igri nagad̄anja poznatijoj kao "rudarenje" bitkoina (eng. bitcoin
mining). Nalazač novog bloka biva nagrad̄en sa 50BTC što je ujedno jedini izvor novih
bitkoina, kao i motivacija za korisnike da aktivno učestvuju u procesu obrade transakcija.
Tokom 2011. izračunato je da je faktor sreće rešavanja novog bloka od strane individ-
ualnog korisnika prevelik, te su u tu svrhu korisnici grupisani u tzv. "zajednice rudara"
(eng."mining pools"). Na ovaj način više korisnika kao celina rešava jedan blok. Po
pronalasku bloka, nagrada se deli i distribuira učesnicima u odnosu na doprinos. Moguća
je i naplata takse (uglavnom do 1%) od strane organizatora zajednice. Generalno, postoji
tri načina raspodele nagrade:

- Proporcionalno Nagrada se proporcionalno deli učesnicima po doprinosu.


- PPS (eng."pay-per-share") Svaki udeo u obradi se automatski nagrad̄uje (po očeki-
vanoj vrednosti tog udela)
- Varijacije . . .
6 Uroš Jovanović 1047/2013

"Alati" za rudarenje bitkoina su specijalizovani programi koji upošljavaju hardver


računara u svrhe rešavanja blokova. Neki od poznatijih su CGMiner, Phoenix,MultiMiner,BFGMiner
itd. Brzina obrade se izražava u heševima po sekundi (h/s), mada se češće koriste gabarit-
nije mere poput Mh/s ili Gh/s. Moguće je uposliti CPU ili GPU pa čak i oba istovremeno,
no grafičke karte su u praksi pokazale bolje rezultate.

Pojavom ASIC (eng."Application Specific Integrated Circuit") specijalizovanog hard-


vera za rudarenje, regularni računari i komponente su potpuno potisnuti iz Bitkoin trke.
Primera radi, grafička karta visokih performansi može ostvariti do 1Gh/s dok pojedini
ASIC hardveri idu i preko 1000Gh/s, pritom trošeći manje struje nego GPU. Sa druge
strane, GPU rudarenje je i dalje aktivno za neke alternativne kriptovalute (poput La-
jtkoina) o kojima će biti nešto više reči u nastavku.

Spomenuli smo već da je prosečno vreme rešavanja bitkoin bloka 10 minuta tj. na
svakih 10 minuta se novih 50BTC generiše u mreži. Prosečno vreme, a samim tim i priliv
novih bitkoina, moraju ostati stabilni, što predstavlja izazov naglim skokom popularnosti
i procesorske moći korisnika. Da bi se izborio sa ovim problemom, Bitkoin uvodi po-
jam težine rudarenja (eng. "mining difficulty"). Na svakih 2016 blokova težina se menja
u skladu sa stanjem u mreži. Moguće je i da se težina smanji ukoliko je to potrebno.
Težina rudarenja direktno utiče na prethodno pomenutu ciljnu heš vrednost pri nagad̄anju
nasumičnog broja.

Slika 4. Priliv bitkoina(plavo),težina obrade(crveno),brzina obrade(zeleno)


Kriptovalute 7

Još jedna ključna stvar Bitkoin algoritma je da postoji gornja granica za broj gener-
isanih bitkoina. Cifra od 50BTC kao nagrada za pronalaženje nije konstantna i već od
2014. godine se prepolovila na 25 a na svake 4 godine (ili 210.000 blokova) će nastaviti
da se polovi. Algoritam garantuje da nikada neće postojati više od 21 milion bitkoina u
opticaju.[3]

3.5. Pouzdanost Bitkoin mreže

Jedan od osnovnih problema koji se nameće kod svih oblika digitalnih valuta jeste pre-
vara dvostrukog utroška (eng."double spending fraud") koja podrazumeva trošenje jednog
digitalnog žetona (tokena) dva puta. Bitkoin efektivno prevazilazi ovaj problem prethodno
objašnjenim sistemom ulančanih blokova transakcija. Svaka transakcija koja referiše na
već "potrošena" sredstva se odbacuje od strane mreže kao nevalidna. Kako je spisak
transakcija javno dostupan, postavlja se pitanje da li je moguće fabrikovati informaciju
o nekom bloku? Primera radi, osoba A želi da upiše podatak u mrežu da je primila
100.000BTC. Da bi osoba A imala bar 50% šansi za ovakav poduhvat, mora da nadjača
50% procesorske snage celokupne mreže, što je praktično neisplativo zbog cene koju bi
osoba A morala da plati u vidu potrebnog hardvera. Uprkos svim merama predostrožnosti
u algoritmu, greške su svakako moguće. Tome nabolje svedoči nemili dogad̄aj marta 2013.
kada se lanac blokova razdvojio na 2 dela te je, u periodu od 6 sati, pola mreže obrad̄ivalo
jedan, a pola drugi lanac.[4]

4. Alternativne kriptovalute

Kako je Bitkoin projekat otvorenog koda, postoje razne alternative ovoj kriptovaluti,
grupno imenovane altkoini (eng."altcoins"). U suštni su u pitanju varijacije samog Bitkoin
algoritma poput različitog prosečnog vremena pronalaska novog bloka, gornje granice
generisanja, kao i korišenja drugih heš algoritama. Jedan od najpopularnijih altkoina jeste
Lajtkoin (eng."Litecoin"). Tehnički gledano identičan Bitkoinu, Lajtkoin donosi par bit-
nih razlika:

– Novi blokovi se nalaze na svakih 2.5 minuta


– Gornja granica generisanih lajtkoina je 84 miliona
– Lajtkoin koristi scrypt[5] algoritam pri obradi blokova

Scrypt algoritam spada u tzv. memorijski teške (eng."memory-hard") algoritme te je,


za razliku od SHA256, znatno teže i skuplje napraviti ASIC hardver za obradu scrypt
enkriptovanih blokova. Iz tog razloga se Lajtkoini i dalje pretežno rudare grafičkim kar-
tama (GPU) 3 med̄utim, izvesno je da će ASIC preuzeti vod̄stvo u nekom momentu. Pored
Lajtkoina popularne alternative su i FeatherCoin, Namecoin, Dogecoin itd.

3
Tokom naglog skoka vrednosti kriptovaluta u novembru 2013. došlo je do velike nestašice AMD
grafičkih karti visokih performansi.
8 Uroš Jovanović 1047/2013

5. Ekonomski aspekt kriptovaluta


Po formalnoj definiciji novac je sredstvo razmene, čuvar vrednosti i jedinica obračuna.
Kriptovalute ispunjavaju samo prvu funkciju, s toga se ne mogu smatrati, u strogo for-
malnom kontekstu, pravim novcem. Uprkos tome, novembra 2013. je registrovano oko
1000 fizičkih i čak 35000 internet radnji koje su prihvatale bitkoin kao sredstvo plaćanja.
Funkciju čuvara vrednosti u najvećoj meri ograničava velika oscilacija vrednosti i stručn-
jaci upozoravaju da je rizično kupovati i čuvati kriptovalute. Mnogi ekonomisti nazivaju
Bitkoin "spekulativnim mehurom" kao nešto trenutno popularno i čije je "pucanje" ne-
minovno, dok drugi navode da je nagli skok vrednosti ove valute normalan ekonom-
ski razvoj. Do neslaganja u još većoj meri dolazi pri pokušajima predvid̄anja vrednosti
bitkoina gde se prognoze kreću od 10$/BTC do čak 40000$/BTC u skorijoj budućnosti.
Veliki problem koji kriptovalute nameću je porast sajberkriminala. Bitkoini se ko-
risti za pranje novca, kao i za kupovinu droge, oružja i trgovinu ljudima na crnim tržiš-
tima Interneta. Bezbednosne agencije širom sveta prate ulančane blokove u cilju detekcije
ovakvih transakcija.

6. Zaključak
Kriptovalute, kao nov koncept, su i dalje u procesu razumevanja i prihvatanja od strane
potrošača, trgovaca i finansijskih institucija. Sa razvojem Bitkoina i njegovih derivata,
kao i generalnim porastom interesovanja za upotrebu istih, izvesno je da će problemi
i rizici koji se trenutno nameću biti eliminisani u budućnosti. Pored svih kontroverzi i
skepticizma koji prate kriptovalute, jasno je da njihova pojava i mogućnost da opstanu
u ovom periodu označava početak jednog novog poglavlja u digitalnom a i finansijskom
svetu.

Bibliografija
1. Satoshi Nakamoto. Bitcoin: A peer-to-peer electronic cash system. 2008. url: https://
bitcoin.org/bitcoin.pdf.
2. Don Johnson, Alfred Menezes, and Scott Vanstone. The eliptic curve digital signature algorithm
(ecdsa). url: http://cs.ucsb.edu/~koc/ccs130h/notes/ecdsa-cert.pdf.
3. Controlled supply. url: https://en.bitcoin.it/wiki/Controlled_Currency_
Supply.
4. Bitcoin network shaken by blockchain fork. url: http://bitcoinmagazine.com/
3668/bitcoin-network-shaken-by-blockchain-fork/.
5. Colin Percival. Stronger key derivation via sequential memory-hard functions. url: http:
//www.tarsnap.com/scrypt/scrypt.pdf.
6. http://en.wikipedia.org/wiki/Bitcoin.
7. Scott Driscoll. How bitcoin works under hood. url: http://www.imponderablethings.
com/2013/07/how-bitcoin-works-under-hood.html.

You might also like