Kriptovalute i BitCoin

Nastavljamo editorijal o elektronskom plaćanju, i nakon opšteg uvoda bacamo se na ono zbog čega je ovaj editorijal i nastao – kriptovalute. Pored generalne priče o elektronskom novcu i kriptovalutama, proći ćemo i kroz najosnovnije pojmove iz kriptografije koje je poželjno znati zbog razumevanja funkcionisanja elektronskog novca, ali i kroz decentralizovane kriptovalute kao što je Bitcoin. Potrudili smo se da opise osnovnih koncepata prikaž

Ivan Todorović
Da bismo razumeli šta je elektronski novac, moramo prvo imati jasnu sliku o tome šta je uobičajeni novac koji svakodnevno koristimo. Novac je na prvom mestu roba, i to se često kaže da se radi o robi nad robama, koja u „prikrivenom stanju“ u sebi sadrži sve druge robe. Novac je takođe i dogovor, koji može biti dobrovoljan ili prisilan, svestan ili nesvestan, može fluktuirati u vremenu ili biti fiksan.

Sama novčanica predstavlja ugovor, najtvrđu obligaciju kojom se država ili drugi izdavalac obavezuje da donosiocu isporuči robu ili drugu valutu. Novčanica sadrži sve elemente ugovora, kao što su potpis, broj ugovora (to jest broj novčanice), itd. Neke od osnovnih funkcija novca su da služi kao sredstvo za obračun, da predstavlja zajedničku meru vrednosti i jedinicu za razmenu, sredstvo plaćanja, likvidnu imovinu, okvir za tržišnu razmenu, uzročni faktor ekonomije, kontrolor ekonomije itd.

Uopšteno, šta je elektronski novac?
Suština elektronskog novca je da se novac iz fizičke forme pretvori u elektronsku informaciju. U prošlom tekstu pomenuli smo probleme sa fizičkim novcem: proizvodnja, prenos, skladištenje i obezbeđivanje predstavljaju vrlo primetan trošak za banke i finansijske institucije, vreme fizičkog prenosa i cena rada zaposlenih koji nije zanemarivo, i slično. Elektronski novac se u najširem smislu može definisati kao novac koji se kreće kroz elektronske komunikacione kanale, i to van uobičajenih kanala plaćanja koje banke tradicionalno podržavaju. Banka može da emituje elektronski novac u vidu „brojeva“ koji nose određenu vrednost, ali korisnik u takvom scenariju mora imati račun sa koga će se povlačiti stvarni novac, kao i odgovarajući softver na računaru za komunikaciju sa bankom (makar to bio i običan web browser koji podržava šifrovanu komunikaciju). U slučaju kriptovaluta, kod njih ne postoji centralno telo, odnosno banka koja ih emituje i kontroliše, što je svojevrstan eksperiment koji se do sada pokazao solidno uspešnim.
 

Prednosti elektronskog novca su očigledne: umesto papira, vrednosti se smeštaju u nizove bajtova; e-novac je lako prenosiv kroz mrežu i samim tim ne poznaje granice; može se „programirati“, pratiti i ograničavati, a gubici se nadomešćuju jednostavnom zamenom. Naravno, postoje neki zahtevi koji se moraju ispuniti: mora postojati sigurnost od krađe i falsifikata, e-novac mora biti univerzalno prihvatljiv i naslediti sve dobre osobine tradicionalnog novca, mora biti prenosiv i garantovati privatnost i anonimnost, i naposletku, mora imati neograničeno trajanje i omogućavati denominaciju – plaćanje u razlomljenim iznosima (recimo 125,75 dinara) i sa više novčanica (recimo 1000 dinara kao deset novčanica po sto dinara). Neki od ovih parametara su u konfliktu: proverljivost i neporecivost se „sudaraju“ sa privatnošću i anonimnošću, dok fizički novac garantuje anonimnost i zato se naročito praktikuje kod poslova „na crno“. Potpunu privatnost jako je teško ostvariti, a i kada bi se ostvarila, postalo bi praktično nemoguće sprečiti „pranje“ novca.
Uticaj elektronskog novca na ekonomiju
Elektronski novac može napraviti jako velik uticaj na ekonomije zemalja. Kada bi se ponašao kao klasičan novac, ne bi bilo problema po državu jer bi ga kontrolisala centralna banka. Međutim, ako se zbog uspešnosti proširi preko granice, koje su posledice? Takođe, ako je privatno emitovan, kako ga učiniti kredibilnim u očima javnosti? Konkurencija banaka može dovesti do toga banka emitent elektronskog novca krene loše da posluje, i tada će svi pokušati da se oslobode njene elektronske valute, što neminovno dovodi do bankrotstva eminenta. Ako već postoji veliki broj korisnika takve elektronske valute, kako u tom slučaju sprečiti paniku?

Svakako, velika efikasnost elektronskog novca dovodi do povećanja rizika monetarne nestabilnosti. Pitanje je da li elektronski novac može biti nezavistan od države. Digitalne kriptovalute koje su danas u upotrebi (recimo Bitcoin) nisu emitovane od strane centralnih banaka i ne predstavljaju prostu digitalnu apstrakciju fizičkog novca (odnosno, plaćanjem kriptovalutama se ne vrši automatsko povlačenje realnih sredstava sa nečijeg računa), zbog čega nemaju čvrstu „zaleđinu“ u vidu nacionalnih valute. Ovo je jedan od razloga njihovih velikih oscilacija vrednosti.
 Kriptovalute se nazivaju tako iz konkretnog razloga – stub oslonac njihovog funkcionisanja predstavlja kriptografija, to jest nauka o šiframa. Dobro poznavanje kriptografskih tehnika traži jaku matematičku podlogu – treba znati apstraktnu algebru i pojmove kao što su matematička grupa, konačno polje, najveći zajednički delilac, izračunavanje logaritma i drugo. Ovo naravno nisu nikakva nova znanja – još je starogrčki matematičar Euklid pre dve hiljade i trista godina postavio teorijske osnove u svojim radovima, i oni su predstavljali jedna od najznačajnijih matematičkih dela sve do kraja 19. veka. Nećemo se baviti matematičkim teoremama pošto je apstraktna algebra pokrivena na većini tehničkih i prirodno-matematičkih fakulteta. Pozabavićemo se najosnovnijim pojmovima iz kriptografije sa stanovišta korisnika kriptovaluta.

Postoje dve osnovne tehnike koje se koriste za implementaciju bezbednosnih servisa – to su šifrovanje i digitalni potpis. Osnovni element zaštite predstavlja šifarski sistem, koji obuhvata par transformacija podataka – šifrovanje i dešifrovanje. Šifrovanje je, naravno, postupak pretvaranja izvorne vrednosti (nazovimo je “otvoreni tekst”) u šifrovani podatak (“šifrat”). Obrnuto, dešifrovanje je prevođenje šifrata u otvoreni tekst, odnosno početnu vrednost. Da bi se otvoreni tekst pretvorio u šifrat, koristi se nezavisna veličina – takozvani ključ šifrovanja. Obrnuto, za dešifrovanje koristi se ključ dešifrovanja, a dužina ključa zavisi od samog šifarskog sistema. Šifarski sistemi mogu se podeliti na simetrične, odnosno one koji koriste isti ključ za šifrovanje i dešifrovanje, i asimetrične kod kojih se za to koriste različiti ključevi. Asimetrični su poznati i kao sistemi sa javnim i tajnim ključem. Digitalni potpis se zasniva upravo na asimetričnom šifarskom sistemu, zbog čega je izuzetno značajno poznavati njihovu suštinu, uprkos nešto složijoj matematici.

Primer simetričnog šifarskog sistema je čuvenova Cezarova šifra, gde se svaki znak u tekstu menjao znakom čija je abecedna vrednost za tri veća od izvornog znaka. Dešifrovanje se vršilo obrnutom operacijom, odnosno oduzimanjem, koristeći ključ iste vrednosti. Prednost simetričnog sistema ogleda se u njegovoj velikoj brzini, ali postoji problem sa razmenom ključa. Recimo, ako poruku šifrujete nekim ključem, drugoj strani morate dostaviti taj ključ kako bi ona mogla dešifrovati poruku, bilo da se radi o razmeni elektronskim putem (koristeći nesiguran kanal) ili fizičkim susretom. Ovo je ponekad jako teško ili nemoguće izvesti (recimo, u ratno stanje). Ako postoji N učesnika u komunikaciji i zahteva se da svaki može tajno komunicirati sa svakim, to iziskuje postojanje reda veličine N na kvadrat ključeva, što za veliki broj učesnika može predstavljati ogroman problem (recimo, za milion učesnika treba da postoji gotovo bilion ključeva). Ko će da uskladišti toliku količinu ključeva i da obezbedi da oni ne budu kompromitovani? Rešenje problema leži u asimetričnim šifarskim sistemima.
Kriptografija sa javnim i tajnim ključem
Grupa entuzijasta sa američkih univerziteta je krajem sedamdesetih godina prošlog veka izašla sa rešenjem problema generisanja i razmene ključeva kod simetričnih šifarskih sistema. Naime, asimetrični sistem za svakog učesnika u komunikaciji definiše dva ključa – jedan javni, koji učesnik postavlja javno dostupnim, i jedan tajni koji čuva samo za sebe. Samim tim se broj potrebnih ključeva značajno smanjuje – umesto gotovo N na kvadrat ključeva, potrebno je postojanje samo dva puta N ključeva.

Suština sistema sa javnim i tajnim ključem je sledeća – ova dva ključa se izaberu na takav način da budu u posebnoj matematičkoj vezi, a rezultat je takav da poruka šifrovana jednim od ta dva ključa (recimo javnim) može biti dešifrovana samo komplementarnim ključem (recimo tajnim). U kriptografskim lekcijama i primerima često se koriste dva fiktivna učesnika A i B, od milošte zvana Alisa i Bob (ili u domaćim prevodima, Ana i Boban). Recimo, Ana hoće da pošalje Bobanu šifrovanu poruku, ali tako da niko drugi ne može da je dešifruje. Ana će onda svoju izvornu poruku (otvoreni tekst) šifrovati Bobovim javnim ključem koji je svima poznat, a samo će Bob svojim tajnim ključem moći da dešifruje tu poruku. Jako je bitno naglasiti da tajnost komunikacije, bilo da se radi o simetričnom ili asimetričnom sistemu, nipošto ne leži u tajnosti algoritma, već isključivo u tajnosti ključa. Algoritmi koji se koriste su potpuno javni i široko poznati. Razlog je krajnje praktičan – kod poznatih algoritama će na površinu brzo isplivati njihove slabosti, što će opet dovesti do razvoja unapređenih verzija (slično kao kod open-source softvera). Dakle, tajnost leži u tome što napadač ne poznaje ključ, a ne algoritam!
 Digitalni potpis i elektronski sertifikati
Potpuno isti koncept javnog i tajnog ključa se koristi i za digitalni potpis, s tim što se za “potpisivanje” koristi tajni, a ne javni ključ. Recimo, Ana hoće da “potpiše” poruku tako da bilo koji primalac sa sigurnošću zna da poruka potiče od Ane. Zato će Ana poruku šifrovati svojim tajnim ključem, a ostali će moći da je dešifruju samo Aninim javnim ključem koji je poznat svima. Na ovaj način poruka neće biti tajna, ali je garantovano njeno poreklo, što je suština digitalnog potpisa koja obezbeđuje integritet i neporecivost. U sistemu sa simetričnim ključem, nije moguće obezbediti princip neporecivosti.

U praksi, šifrovanje i digitalni potpis se koriste zajedno. Recimo, Ana hoće da pošalje poruku Bobanu. Ona će je šifrovati Bobanovim javnim ključem, a potom dobijenu vrednost šifrovati svojim tajnim ključem (odnosno digitalno je potpisati). Na prijemnoj strani, Boban će paket dešifrovati Aninim javnim ključem, nakon čega će znati da je poruka zaista stigla od Ane, ono što je dešifrovao će ponovo dešifrovati, ovoga puta svojim tajnim ključem, i doći do izvorne poruke. Moguć je i obrnut pristup – prvo potpis pa tek onda šifrovanje. Obe metode imaju prednosti i mane u koje nećemo zalaziti.

Ovako opisana procedura jako je uprošćena i u praksi bi se mogla lako zloupotrebiti napadima presretanja (takozvani “čovek u sredini”). Konkretne implementacije (bilo hardverske ili softverske) obavezno su pojačane dodatnim mehanizmima provere i zaštite, ali suština ostaje – asimetrični šifarski sistem sa javnim i tajnim ključem obezbeđuje da učesnici mogu da komuniciraju bez poznavanja zajedničkog tajnog ključa, i omogućuje implementaciju digitalnog potpisa. Da ne bude sve sjajno, postoji jedna mana – asimetrični sistemi su, zbog kompleksnije matematike zasnovane na eksponencijalnoj aritmetici, reda veličine hiljadu puta sporiji od simetričnih. Zbog toga se često koriste da bi dve strane, koristeći nesiguran komunikacioni kanal, samo razmenile jednu tajnu vrednost (tajnu za one koji eventualni prisluškuju ovu komunikaciju). Razmenjena vrednost, poznata samo dvema stranama koje su učestvovale u komunikaciji, potom se koristi kao tajni ključ za komunikaciju daleko bržim simetričnim šifarskim sistemom. Ako vas interesuju detalji, potražite na Internetu opise Difi-Helmanovog i RSA algoritma.

Ako ste u poslednje vreme slušali o elektronskim sertifikatima na Internetu, iza njih stoji upravo digitalni potpis. Najprostije rečeno, ako postoji glavno sertifikaciono telo (firma ili neprofitna organizacija), ono se uzima kao autoritet koji drugim licima izdaje elektronske sertifikate (skup informacija o pravnom licu) i potpisuje ih svojim tajnim ključem. Učesnici u komunikaciji će od drugih učesnika preuzimati njihove sertifikate, a validnost sertifikata proveravati dešifrovanjem koristeći javni ključ sertifikacionog autoriteta. Ako se sve poklapa, na taj način znaće da je sertifikat validan i da se druga strana u komunikaciji pravilno predstavila. Naravno, ovo iziskuje da sertifikacioni autoritet stvarno mora biti entitet od poverenja. Primer sertifikacionog autoriteta je firma VeriSign, sada u vlasništvu Symantec-a.
Heš funkcije
Da bi se razumele kriptovalute, pored načina funkcionisanja digitalnog potpisa korisno je znati šta su heš funkcije. Najjednostavnije rečeno i u idealnom slučaju, kriptografska heš funkcija je ona funkcija koja od ulaznog niza vrednosti (proizvoljne dužine) generiše izlaznu vrednost fiksne dužine (najčešće vrlo kratke u odnosu na ulaznu dužinu), i to na takav način da se iz izlazne vrednosti nikako ne može rekonstruisati ulazna vrednost osim metodom grube sile (to jest tako da napadač pokušava da propusti sve moguće kombinacije ulaza kroz heš funkciju sve dok ne dobije vrednost heš funkcije koji mu je poznat, recimo tako što je presreo komunikaciju). Zbog ovoga se kriptografske heš funkcije često nazivaju jednosmernim funkcijama. Drugi kriterijum je da se za malu razliku ulazne vrednosti (bilo u dužini ili sadržaju) rezultujuća vrednost statistički mora značajno razlikovati, ponovo u cilju onemogućavanja rekonstrukcije ulazne vrednosti samo na osnovu rezultata heš funkcije. Dakle, heš vrednost predstavlja jedinstveni sažetak neke ulazne vrednosti, odnosno u konkretnom slučaju niza bajtova. Ako se desi da se za dva različita ulaza dobije ista heš vrednost, takav slučaj se naziva kolizija, a heš funkcija koja pati od kolizija nije bezbedna za korišćenje.

Primer kriptografske heš funkcije je algoritam MD5, koji se često sreće na Internetu, naročito na sajtovima koji nude download fajlova. Uz fajlove se pridruži njihova MD5 vrednost, dobijena tako što je kompletan sadržaj fajla, u bajtovima, propušten kroz MD5 funkciju. MD5 vrednost je kratka i iznosi samo 16 bajtova (bez obzira na veličinu fajla). Kada preuzmete fajl, vi ćete na vašem računaru izračunati MD5 vrednost fajla i uporediti ga sa onim što piše na sajtu. Ako se vrednosti poklapaju, sigurni ste da je fajl preuzet u originalu, da u transferu nije došlo do oštećenja niti da je iko namerno menjao njegovu vrednost u pokušaju da se to ne primeti. Doduše, MD5 funkcija nije savršena i pati od određenih problema, pa su je nasledile naprednije funkcije kao što su one iz familije SHA, ali je suština ista. U praksi, sve aktuelne heš funkcije pate od kolizija, ali ih je izuzetno teško pronaći (odnosno moguće su samo u vrlo specifičnim i poznatim slučajevima), pa se i dalje koriste bez problema.
Heš funkcije i digitalni potpis
U kakvoj su vezi heš funkcije i digitalni potpis? Jednostavno, digitalni potpis neke poruke biće dugačak onoliko koliko je dugačka izvorna poruka. S obzirom da se digitalni potpis šalje prijemnoj strani zajedno sa šifrovanom porukom, u slučaju dugačkih prenosa stvara se dodatni saobraćaj ili dodatno zauzima skladišteni prostor. Zbog toga se umesto digitalnog potpisa poruci pridružuje potpis njene heš vrednosti, odnosno sažetka.

Prijemna strana će dešifrovati poruku, izračunati njenu heš vrednost, a onda je uporediti sa heš vrednošću koja je stigla digitalno potpisana. Ako bi napadač presreo ovakav saobraćaj, mogao bi da dođe do heš vrednosti jer digitalni potpis ne služi za sakrivanje vrednosti već za potvrdu pošiljaoca, ali svejedno iz heš vrednosti ne bi mogao da rekonstruiše originalnu poruku. Zbog toga se u praksi ne koristi potpisivanje same poruke kao pratnja šifrovanoj poruci, već samo potpisivanje njene kratke heš vrednosti.
 Kriptovaluta na primeru Bitcoina
Napokon, posle suvog teoretisanja dođosmo i do konkretne kriptovalute – popularnog Bitcoina, koji je istovremeno prva praktična implementacija koncepta kriptovalute. Bitcoin je primer decentralizovane kriptovalute – koristi kriptografiju za kreiranje i upravljanje novčićima i ne bazira se na obećanju banke ili neke druge institucije, odnosno ne predstavlja puku digitalnu predstavu fizičkog novca. Zbog toga može podložan velikim oscilacijama vrednosti, jer njegova realna upotreba faktički zavisi od dogovora učesnika, tj. korisnika ove valute i interesa koji su u Bitcoinu prepoznali.
Interesantno, originalni autor (ili autori) Bitcoina krije se iza pseudonima Satoshi Nakamoto i njegov (njihov?) stvarni identitet još nije poznat. Ipak, uzevši ogroman potencijal Bitcoina na globalnom nivou, jasno je da tu vreba velika opasnost pošto je poznato da su stvarni vladari sveta najveće finansijske organizacije, a ne Amerika i Rusija, tako da nas ne čudi rešenost autora da mu identitet ne bude otkriven. Međutim, ostavimo se teorija zavere i okrenimo se funkcionisanju Bitcoina iz perspektive korisnika.

Korisnik Bitcoina, gledano “ispod haube”, ima jednu ili više takozvanih Bitcoin adresa, sa kojih se šalju i primaju Bitcoin novčići koristeći odgovarajući softver (bilo web sajt ili softver koji glumi “digitalni novčanik”). Bitcoin adresa nije ništa drugo dojavni ključ (konkretno, niz od oko 33 znaka), a vlasnik adrese čuva odgovarajući tajni ključ u svom “digitalnom novčaniku”, softveru na računaru ili mobilnom uređaju. Naravno, digitalni novčanik mora na neki način biti zaštićen, recimo lozinkom. Svaka Bitcoin transakcija potpisuje se privatnim ključem korisnika koji je inicirao transakciju.
Prodavci Bitcoina zapravo prodaju tajni ključ kao deo novčića, odnosno banknote. Sam Bitcoin je u stvari lanac digitalno potpisanih transakcija – transfer drugom vlasniku novčića vrši se digitalnim potpisivanjem prvog vlasnika, a primalac može verifikovati svaku prethodnu transakciju i tako proveriti lanac vlasništva. Nećemo zalaziti u same detalje implementacije, ali ćemo reći da se kreiranje ili “kopanje” Bitcoina, famozni Bitcoin mining, između ostalog zasniva na “razbijanju” heša po SHA-256 algoritmu.

Sam naziv “rudarenja” Bitcoina nastao je kao analogija pravim kopačima zlata koji su trošili svoje resurse kako bi “stvarali” novo zlato za puštanje u opticaj, s tim što se u ovom slučaju troše resursi kao što su računarska snaga i električna energija. Ceo proces je izuzetno spor jer iza njega stoji jaka kriptografija, koja ujedno sprečava štancovanje novčića, a način generisanja onemogućava falsifikovanje. Dovoljno je reći da su najsnažniji x86 procesori i dalje prespori za generisanje Bitcoin novčića, pa se za ovakve poslove koriste brze grafičke kartice koje se vezuju u grupe (i troše mnogo struje). Najozbiljniji “igrači” koriste programabilna FPGA kola isprogramirana striktno za algoritme “kopanja” Bitcoina.
Uprkos raznim glasinama o hakovanju Bitcoina koje su se mogle čuti prethodnih godina, to nije istina – kriptografske metode koje se koriste u implementaciji podjednako su snažne kao one koje se koriste u bankarskim i vojnim primenama. Svi problemi sa vrednošću koje je Bitcoin do sada imao nastali su zbog konverzija u druge valute, odnosno zbog nepouzdanih web menjačnica od kojih su mnoge ovu kriptovalutu tretirale kao prolaznu modu i način da se brzo zgrne keš dok se može. Jačanje pouzdanih i ozbiljnih sajtova za trgovinu Bitcoinima (kao što su Intersango i Mt.Gox) pomoglo da ova kriptovaluta stane na noge što se tiče praktične primene.

Osim mogućnosti plaćanja robe i usluga na svetskim onlajn prodavnicama bez oslanjanja na PayPal i platne kartice, jedna od očiglednih primena decentralizovane kriptovalute je mogućnost slanja svuda po svetu bez ograničenja, s obzirom da se prosto radi o šifrovanim elektronskim informacijama. Recimo, umesto da šaljete novac rodbini na drugom kraju sveta koristeći npr. Western Union i njihov bezobrazno visok procenat ugradnje, možete poslati Bitcoine koje će rodbina prodati za papirni novac kod lokalnog Bitcoin menjača. Naravno, velikim finansijskim igračima koji okreću milijarde samo na ubiranju procenata od transakcija diže se kosa na glavi na pomen mogućnosti zaobilaženja njihove decenijama razrađivanje “mašinerije”, tako da će biti jako interesantno videti dokle će Bitcoin dogurati sa svojim slobodarskim idejama. Takođe, tu je i (teorijska) mogućnost anonimnosti – uobičajena elektronska plaćanja podrazumevaju podizanje i uplaćivanje realnog novca na bankarskim računima, što se evidentira (naročito u slučaju pravnih lica) i država i te kako prati tok novca. Kod Bitcoina se razmenjuju informacije bez evidencije banaka i država, a jedini dodir sa “realnim svetom” je razmena za fizički novac u onlajn menjačnicama.

S obzirom da je ovaj eksperiment još uvek mlad u poređenju sa tradicionalnim finansijskim konceptima (postoji tek pet godina), još uvek je teško prognozirati budućnost. Ono što svakako obećava je da sve više onlajn servisa prima Bitcoine kao sredstvo plaćanja, a zanimljivo je da Banka Silicijumske doline već neko vreme prihvata Bitcoine kao regularnu valutu. Naravno, ne očekujemo da ćemo moći plaćati Bitcoinom u lokalnim prodavnicama bilo kada u dogledno vreme, ali je svakako lepo što ovako nešto postoji (odnosno nije, ako ste bankster) kao alternativa bankarskim računima i postojećim sistemima novčane razmene.

Ostani u toku

Prijavi se na newsletter listu i jednom nedeljno cemo ti poslati email sa najnovijim testovima i vestima iz sveta tehnologije.

Hvala!

Uspešno ste se prijavili na na naš newsletter! Proverite vaš email nalog kako bi potvrdili prijavu.

Možda vam se svidi