Kriptovalute

Izvor: SIS Wiki
Skoči na: orijentacija, traži

Sadržaj

Uvodno

Kriptovaluta je medij razmjene vrijednosti koristeći kriptografiju da bi postigla sigurnost transakcija i kontrolirala stvaranje novih jedinica. Pojam „kriptovaluta“ moguće je danas čuti u sve više popularnih medija poput Fortune, Bloomberg, Wall Street Journal, TechCrunch gdje je on sagledan sa različitih stajališta, kako investicijsko-financijskih tako i tehnoloških kao jedan od najvećih tehnoloških inovacija našeg vremena u pogledu prijenosa vrijednosti(informacije) i sigurnosti. U ovom radu će se detaljno razmotriti većina principa kriptovaluta, a da bi to bilo moguće potrebno je krenuti od početka koncepta takvog novca, te time i objasniti aspekte kriptografije i same valute(novca) kao takve.


Kriptografija

Jezgra kriptovaluta je dakako kriptografija. Prema Wikipediji kriptografija je praksa i proučavanje tehnika za sigurnu komunikaciju u prisustvu treći stranaka. Pokriva razna područja u informacijskoj sigurnosti poput integriteta podataka, tajnosti, autentifikacije i drugih. Moderna kriptografija zasniva se na temeljima matematike, računalne znanosti i elektrotehnike. [1]

U kontekstu kriptovaluta može se promatrati kao kriptosistem. Kriptosistem je kombinacija troje elemenata:

Enkripcijski pogon je dio softvera koji pokreće enkripciju sa selektiranim algoritmom (kasnije će biti govora detaljnije o samom algoritmu) te nakon toga algoritam ključa (eng. keying algorithm) kreira i upravlja ključevima koji su potrebni za enkripciju i dekripciju podataka. Operacijske procedure se brinu o međudjelovanju svij dijelova te kako je rezultat formatiran i koja je ekstenzija (ako postoji). [2]

U sljedećim poglavljima bit će opisan specifični kriptosistem koji djeluje kod kriptovaluta i podložne tehnologije

Novac

Da bismo mogli dublje ući u samu tematiku kriptovaluta koje su kao takve najprije zamišljene da obnašaju funkciju novca trebamo ukratko opisati što je to zapravo novac. U raznim interakcijama i razgovorima sa ljudima, pokušavajući im objasniti kriptovalute, shvatio sam da puno njih uopće ne razumije novac. Iako tema ovog rada nema toliki naglasak na samim financijskim i ekonomskim činjenicama, smatram da je bitno ukratko opisati zašto bi se kriptovalute koje esencijalno nemaju fizički oblik mogle smatrati predmetom razmjene vrijednosti odnosno novcem [3].

Da bi nešto mogli nazivati valutom odnosno novcem treba zadovoljavati sljedeće kriterije:

Funkcije novca.png

Medij razmjene

Posrednik ili posredstvo korišteno u trgovini da bi se izbjegle neugodnosti/loše strane klaisčnog barter sustava. U tom pogledu, novac je u funkciji posrednika između proizvoda ili usluga kojima ljudi žele trgovati. Što čini dobar medij razmjene:

Obraćunska jedinica

Standardna mjera za vrijednost dobara. Jedinica koja nam omogućuje da uspoređujemo:

Zapremnina vrijednosti

Pospremanje vrijednosti je mehanizam koji omogućuje da se „bogatstvo“ pospremi i povrati u nekom budućem vremenu sa nekom predvidivošću buduće vrijednosti.

Problem Bizantskih Generala

Prije nego što uronimo u samu blockchain tehnologiju i mehanizme kriptovaluta malo ćemo reći nešto o generalnim idejama digitalnog novca i problematike koja je postojala i prije ere Bitcoina i ostalih modernih kriptovaluta.

Problem izgradnje i dizajna kompletno distribuiranog ali povjerljivog (eng. Trusted) sustava nije nešto novo u računalnoj znanosti. To je zapravo izazov u distribuiranim sustavima koji su bez centralne kontrole te kod kojih se želi postići što veća razina povjerenja. Generalno problem proučavanja tolerancije kvarova (eng. fault-tolerance). Zamislite, na primjer, računalni sustav sa distribuiranim komponentama koje moraju između sebe komunicirati određene informacije ali te informacije bi mogle biti kompromitirane ili uopće ne doći na odredište. [3]

Problem Bizantskih Generala predstavljen je prvo od strane Marhsall Pease , Robert Shostak i Leslie Lamport 1982. godine. [4]

Pokušaji rješavanja problema sa strane novca i valuta su:

Bitcoin, o kojem ćemo više i detaljnije govoriti u sljedećim poglavljima, je do sada, najbolja solucija za predstavljeni PBG i ima najveću primjenu.

Što je problem bizantskih generala

„Zamislimo da je nekoliko divizija Bizantske vojske kampirano ispred neprijateljskog grada gdje je svaka divizija zapovjedana od svojih generala. Generali komuniciraju jedni sa drugima samo sa glasnicima. Nakon analiziranja neprijatelja svi generali moraju odlučiti o jedinstvenom planu akcije. No neki od tih generala mogu biti izdajice kojima je cilj spriječiti lojalne generale od izvršavanja plana i donošenja „konsenzusa“ odnosno slaganja oko plana napada. Generalima je potreban algoritam koji će im garantirati [5]:

1.Svi lojalni generali poduzimaju jednak/isti plan akcija

2.Mali broj izdajica ili korumpiranih generala ne može prisiliti lojalne generale da prihvate loš plan

PBG.png

U prethodnom scenariju jedan izdajica(General 3) bi mogao prouzročiti da napad propadne jer bi se jedan od sudionika mogao povući kad bi trebao napasti. Izdajica u ovom slučaju sprječava grupu da postigne konsenzus.

Ovo je jezgra problema bilo kojeg decentraliziranog sustava pa tako i kriptovaluta.

Kriptovalutna javna knjiga (ledger): Blockchain

Blockchain je transkacijska baza podataka koja je dijeljena između svih čvorova koji sudjeluju u sustavu baziranom na Bitcoin protokolu. Kompletna kopija blockchaina bilo koje kriptovalute sadrži svaku transakciju koja se ikada dogodila u njezinom postojanju. Sa tom informacijom moguće je pronaći koja je vrijednost ili informacija pripadala bilo kojoj adresi u bilo kojem trenutku u prošlosti.[6]

Esencijalno, blockchain je zapravo mehanizam koji rješava problem bizantskih generala i to na sljedeći način. Nakon što je korisnik skinuo Bitcoin klijent na svoje računalo on započinje skidati sve podatke od osnutka mreže (genesis blok) te se tu tada javlja problem sinkronizacije, odnosno postizanja distribuiranog konsenzusa.

Sinkronizacija Blockchaina

Rudarenje

Kod tradicionalnih novčanih sistema, vlade jednostavno izdaju više novaca kada im je to potrebno. Međutim, kod bitcoina, novac nije izdan nego je otkriven. Računala diljem svijeta „rudare“ za bitcoin i pritom se međusobno natječu.

Ljudi šalju bitcoinove jedni drugima preko cijele bitcoin mreže cijelo vrijeme, ali da netko ne prati te transakcije i ne vodi evidenciju o njima, nitko ne bi znao tko ima koliko novca. Bitcoin mreža to spriječava na način da se sve transakcije obavljene u određenom periodu sakupljaju i stavljaju u lanac blokova (eng. block chain). Posao rudara je u tom slučaju potvrđivanje i zapisivanje transakcija u glavnu knjigu (eng. General ledger), a kao nagradu rudar dobi svotu bitcoina. Ono što rudar mora napraviti jest:

  1. Rudari kreiraju datoteku koja sadrži
  • Hash zadnjeg bloka u postojećem blockchainu
  • Blok novih transakcija koje su skupljene u bitcoin mreži (broadcast)
  • Nasumični broj (nonce/salt) kojeg rudar pogađa
  1. Primjenjuje se kriptografska funkcija SHA256 nad prethodnom datotekom podataka te je izlaz HASH.
  2. HASH se revidira prema određenom uzorku (kod Bitcoina, koliko početnih nula ima) te ako je točan, dobiva se nagrada i blok ide u blockchain, a ako nije tada se vraća na 1. korak i ponovo pogađa novi Nonce.

Rudar.png

Stvaranje hash-eva

Glavna knjiga je dugi lanac blokova. Ona se može koristiti za provjeru bilo koje transakcije napravljene između bilo kojih bitcoin adresa u bilo kojem vremenu. Kada je novi transakcijski blok napravljen, on se dodaje u lanac blokova, što stvara podosta dugu listu svih transakcija ikad napravljenih na bitcoin mreži. Nova kopija glavne knjige je konstantno dana svima koji sudjeluju kako bi mogli znati što se događa.

Međutim, glavna knjiga mora biti sigurna, a sve to je pohranjeno digitalno. Kako onda možemo biti sigurni da će lanac blokova ostati nedotaknut i da ga nikada nitko neće moći izmijeniti? U tome ulogu imaju rudari.

Hash.png

Kada je transakcijski blok stvoren, rudari ga stavljaju u proces obrade. Oni uzimaju informacije pohranjene u bloku i primjenjuju na to matematičku formulu, pretvarajući informacije u nešto puno kraće, naizgled nasumični niz brojeva i slova. To je hash. Taj hash je pohranjen zajedno sa blokom na kraju lanca blokova.

Hashevi imaju neke zanimljive karakteristike. Vrlo je lako proizvesti hash iz podataka kao što je bitcoin block, ali je gotovo nemoguće otkriti koji su to podatci gledajući samo hash. Vrlo lako je proizvesti hash iz velike količine podataka, ali svaki hash je unikatan. Ako se promijeni samo jedno slovo ili brojka, hash se kompletno mijenja.

Međutim, rudari ne koriste samo transakcijski blok kako bi generirali hash, već koriste i neke druge podatke. Jedan od tih podataka jest hash zadnjeg bloka pohranjenog u lancu blokova.

Hash2.png

Zbog toga što je hash svakog bloka napravljen pomoću hasha bloka prije njega, taj blok postaje digitalni oblik pečata. On potvrđuje da je taj blok, i svaki blok poslije njega, legitiman jer ukoliko biste ga dirali, svi bi to znali. Ako pokušate krivotvoriti transakciju mijenjajući blok koji je već pohranjen u lancu blokova, to će promijeniti hash tog bloka. Ako bi netko išao provjeravati autentičnost bloka pokrećući hash funkciju na njemu, otkrio bi da je hash drugačiji od onoga bloka koji je već pohranjen pokraj njega u lancu blokova. Blok bi bio krivotvoren.

Zbog toga što je hash svakog bloka korišten za stvaranje sljedećeg bloka u lancu, mijenjanje jednog bloka bi izazvalo promjenu sljedećeg bloka. To znači da bi mijenjanje bilo kojeg bloka izazvalo lančanu reakciju koja bi se protezala sve do kraja lanca.

Konkurencija

Na ovaj način rudari zapečate blok. Svi se međusobno natječu pomoću softwarea napisanog specifično za to. Svaki put kada je hash uspješno kreiran, rudari dobe 25 bitcoinova, lanac blokova je ažuriran i svi na mreži čuju za to. To je jedan od poticaja da se nastavi rudariti i da transakcije funkcioniraju.

Problem jest što je vrlo lako kreirati hash od tih podataka. Računala su izuzetno dobra u tome. Zbog toga je Bitcoin mreža morala učiniti stvari težima, inače bi svi stvarali tisuće hasheva svake sekunde, a svi bitcoinovi bi bili „iskopani“ u par minuta.Bitcoin protokol namjerno otežava situaciju pomoću nečega što se zove „dokaz rada“ (eng. Proof of work).

Hash3.png

Bitcoin protokol neće prihvatiti bilo kakav hash. On zahtjeva da hash određenog bloka izgleda na određen način: mora imati određen broj nula (0) na početku. Ne postoji način pomoću kojeg bi mogli znati kako će hash izgledati prije nego ga stvorimo, a svaki puta kada se u mješavinu doda novi komadić podatka, hash će izgledati potpuno drugačije.

Rudarima nije dopušteno mijenjati podatke unutar transakcijskog bloka, ali moraju mijenjati podatke koje koriste kako bi kreirali drugačiji hash. To rade koristeći drugi, nasumični, dio podatka zvan „nonce“. Koristi se sa transakcijskim podatcima kako bi se stvorio hash. Ako hash ne odgovara određenom formatu, nonce se mijenja i cijela stvar se ponavlja. Potrebno je mnogo pokušaja kako bi se pronašao nonce koji odgovara, a svi rudari na mreži rade istu stvar u isto vrijeme. Na taj način rudari zarađuju bitoinove.

Bitcoin

Bitcoin je peer-to-peer sustav plaćanja i digitalna valuta koja je proizašla kao projekt OpenSource softwarea kojeg je 2009. osmislio Satoshi Nakamoto. Bitcoin je kriptovaluta jer koristi kriptografiju kako bi kontrolirala stvaranje i transfer novaca odnosno valute. [7]

Bitcoin se koristi za kupovinu u elektroničkom obliku. U tom se smislu ne razlikuje ni od jedne druge valute (kune, dolara, eura…) kojom se također trguje digitalno.

Međutim, bitcoinova najznačajnija karakteristika i ujedno najveća razlika od ostalih valuta jest što je decentraliziran. Niti jedna institucija ne kontrolira bitcoin mrežu. Trenutni pobornici bitcoina to smatraju enormnim plusom, budući da do oscilacija vrijednosti dolazi jedino zbog ljudi.

Bitcoin je nastao kao produkt ideje software developera Satoshi Nakamoto-a; elektroničko plaćanje na temelju matematičkih dokaza. Ideja mu je bila stvaranje valute bez centralne vlasti, s elektroničkim prijenosom (i to uglavnom instantnim), s vrlo malim ili nikakvim transakcijskim troškovima.

Zbog toga bitcoin ne izdaje nitko. Bitcoin nije fizički izdan u sjeni centralnih banaka, gdje ga ljudi ne mogu prebrojati i gdje banke postavljaju svoja pravila. Upravo te banke, kada upadnu u dug, jednostavno izdaju više novca što rezultira smanjenjem vrijednosti novca, tj. inflacijom.

Umjesto toga, bitcoin je stvoren digitalno, od strane zajednice kojoj se svatko može pridružiti.

Bitcoinovi su rudareni (Mined) pomoću računala, tj. korištenjem procesorskog vremena i distribuirani u bitcoin mreži. Mreža također procesira transakcije napravljene pomoću bitcoina, što rezultira stvaranjem vlastite platne mreže.

Bitcoin protokol, tj. algoritam pomoću kojeg cijeli sustav funkcionira, ograničen je na izdaju 21 milijuna bitcoinova. Međutim, svaki bitcoin ima puno veću vrijednost nego tradicionalna valuta te je zbog toga podijeljen na manje dijelove, od kojih je najmanja milijunti dio, “Satoshi”, nazvan po izumitelju bitcoina.

Karakteristike Bitcoina

1. Decentraliziran je

Bitcoin mrežu ne kontrolira nijedna vlast. Svaki stroj koji „rudari“ bitcoinove i procesira transakcije je dio mreže i svi rade zajedno. To znači, u teoriji, da nijedna banka (država) ne može mijenjati monetarnu politiku i uzrokovati kolaps ili jednostavno odlučiti da će uzeti bitcoinove od ljudi (kao što je Centralna europska banka 2013. odlučila uzeti stanovnicima Cipra). Ukoliko dio mreže iz nekog razloga padne, novac će nastaviti teći.

2. Jednostavno je otvoriti račun

U tradicionalnim bankama otvaranje računa iziskuje puno papirologije, a slaganje trgovačkog računa za plaćanje puno vremena. Za bitcoin račun (adresu) potrebno je nekoliko sekundi, bez troškova, bez dodatnih pitanja.

3. Anoniman je

Djelomično je anoniman. Korisnik može posjedovati više bitcoin adresa i one nisu povezane s imenima, adresama, ni bilo kakvim osobnim podatcima. Međutim…

4. Potpuno je transparentan

…bitcoin pohranjuje podatke o apsolutno svakoj transakciji koja se ikad dogodila unutar mreže te ih pohranjuje u tzv. Block chain. Block chain govori sve. Ako posjedujete adresu, svatko može vidjeti koliko je bitcoinova pohranjeno na toj adresi. Međutim, nitko ne zna kome pripada. Naravno, postoje načini kako vaše aktivnosti bolje „skriti“, kao primjerice, korištenjem više adresa i nepovezivanjem svih transakcija na jednu adresu.

5. Transakcijski troškovi su zanemarivi

Bitcoin ne zahtijeva nikakvu naknadu, dok bi u banci prijenos novca zahtijevao plaćanje određene naknade, pogotovo ako se radi o internacionalnom plaćanju. Trenutno postoje neke trgovine koje uzimaju malu proviziju zbog toga što su uvele bitcoin kao sredstvo plaćanja, ali s vremenom će i to nestati.

6. Mreža je brza

Novac možete slati bilo gdje i on će stići nekoliko minuta kasnije, čim Bitcoin mreža procesira plaćanje.

7. Prijenos je nepovratan

Kada jednom pošaljete bitcoinove, ne možete ih „opozvati“, kao što to možete napraviti u bankama. To otvara vrata sigurnosti kod trgovaca. Jedini način kako možete vratiti novac je da vam osoba kojoj ste poslali pošalje natrag.

Više o samom bitcoinu možete pročitati ovdje

Alternativne kriptovalute (Altcoins)

Litecoin

Lite.png

Kriptovalute i sigurnost

Kriptovalute su imale masivan rast u popularnosti i volumenu transakcija. Kako im je ipak najveća vrijednost utilizirana u platnoj mreži odnosno prijenosu monetarne vrijednosti, javlja se visoki financijski rizik. Kriptovalute su ipak tehnologija te je kao takva veoma podložna sigurnosnim napadima i incdidentima. Da bi se ublažio rizik, kriptovalute zahtjevaju dubinsku analizu rizika svih svojih komponenanta koje sudjeluju sa financijskim i socijalnim mrežama. Sam Bitcoin protokol (kod) "poprilično" je siguran odnosno do sada još nisu pronađeni veći sigurnosni proboji koji bi se odrazili na ranjivosti u algoritmima i izvornom kodu. Najveći sigurnosni rizici manifestirali su se unutar cijelog sustava odnosno rudarske mreže te ćemo ovdje navesti te iste.

Trenutni rizici i ranjivosti

Denial of Service (DoS)

Korisnik ne može provoditi transakcije. Za vrijeme napada, kupovna moć bitcoina ili bilo koje kriptovalute ne postoji te je valuta samim time beskorisna. Uz to, ovakvi napadi mogu prouzročiti kritične padove sistema, pogotovo u financijskoj industriji.

Double Spend Attack

Jedan od napada koji također može prouzročiti ozbiljnu prijetnju integritetu mreže. U double spend napadu transakcija je emitirana kroz mrežu, dobra i usluge mogu bti razmjenjeni, a u nekom kasnijem trenutku (do 1h) transakcija još uvijek "lebdi" u mreži. Takva transkacija može biti prozvana kao nevažeća tako što se kreira ista takva nova i validna transkacija koja koristi iste inpute. Točnije ovakav napad se odrađuje na 2 načina:

U bilo koja od 2 slučaja, dobra ili usluge su naplaćeni i izmjenjeni no ne postoji zapis orginalne transkacije iliviše nije važeći.


Doublespend.jpg


Napad 51%

Jedan od napada o kojem se najviše priča te postoji najveća zabrinutost. Ukoliko bi jedna stranka u mreži imala više od 50% udjela hashin snage to bi im omogučilo mnogo lakše DoS i Double Spend napade zbog toga što ta stranka rudari uvijek više od pola novog bloka.

Konfirmacije.png

Privatnost

Tradicinonalni bankovni modeli dostižu jednu razinu privatnosti tako što ograničavaju pristup informacijama samo uključenim strankama i povjerljivoj trećoj stranci. Nužnost da se sve transakcije objave javno onemogućava prije spomenutu metodu no privatnost se još uvijek može postići tako što se prekida tok informacija na drugom mjestu: javni ključevi(računi) se čuvaju anonimno. Javnost može vidjeti da netko šalje neki iznos nekome ali bez informacije koja povezuje pošiljatelja i primatelja sa njihovim identiteom. Sličan princip ja na burzama, gdje se vrijeme i vrijednost određene dionice obznanjuju svima ali bez informacije o uključenim strankama.

Privatnost.png


Kao dodatna sigurnosna mjera, novi par ključeva bi se trebao iskoristiti za svaku transakciju da ih se nebi moglo povezati sa određenim korisnikom. Neka povezivanja neće biti moguća jer multi-input transakcije će nužno otkriti neki dio informacija o određenom korinsiku. Postoji jedino veliki rizik, ukoliko se otkrije privatni ključ korisnika, povezivanje sa istim bi moglo otkriti sve transakcije koje su ikad pripadale istom korisniku. [10]

Trgovanje Kriptovalutama

Vjerojatno najveća domena kriptovaluta koja se zasniva na klasičnom trgovanju između pojedinih stranaka na određenim mjestima zvanim kriptomjenjačnice. Ovdje pojedinci ili stranke mogu kupovati i prodavati svoje kriptovalute za druge kriptovalute ili samo obične valute (EUR, USD, YEN).

U sljedećem videu pokazano je na koji način funkcionira jedna takva mjenjačnica i objašnjeno kako trgovati financijskim instrumentima, u ovom slučaju bitcoinima i GH/s (gigahasehvima) na platformi CEX.io. Uživajte!

https://www.youtube.com/watch?v=XexrXX5HU2I

Hrvatski Bitcoin Portal

Centralno mjesto u Hrvatskoj i regiji na kojem možete pronaći novosti, informacije i edukaciju iz područja Kriptovaluta i Bitcoin tehnologije

Hrvatski Bitcoin Portal


Literatura

[1] http://en.wikipedia.org/wiki/Cryptography

[2] Cryptography for dummies

[3] Nicosia – AA – course materials

[4] http://research.microsoft.com/en-us/um/people/lamport/pubs/reaching.pdf

[5] https://www.andrew.cmu.edu/course/15-749/READINGS/required/resilience/lamport82.pdf

[6] https://en.bitcoin.it/wiki/Block_chain

[7] http://en.wikipedia.org/wiki/Bitcoin

[8] http://www.coindesk.com/

[9] http://static1.squarespace.com/static/53168f6ce4b0ee73efea0c2a/t/53c5cc86e4b0cf6b53648339/1405471878208/Bitcoin+Mining+Security-+Deja+vu+Security+-+2014.pdf

[10] https://bitcoin.org/bitcoin.pdf

Osobni alati
Imenski prostori
Inačice
Radnje
Orijentacija
Traka s alatima