Finančni trgi

Prispevki

Kako deluje bitcoin? Najboljša razlaga za vsakogar

Kako deluje bitcoin? Najboljša razlaga za vsakogar
September 15
08:06 2017

Bitcoin je nevtralen digitalni denar, ki je decentraliziran in uporablja kriptografijo za doseganje varnosti. Poglejmo, kaj natančno to pomeni.

Maja je na borzi Bitstamp kupila nekaj bitcoinov, sedaj pa jih želi poslati Lovru. Da bi jih sploh lahko poslala, mora Lovro imeti svojo digitalno denarnico in naslov, kamor lahko Maja pošlje nekaj svojih bitcoinov. Te denarnice (angl. wallet) so kot nekakšni e-mail naslovi, do katerih ima dostop samo lastnik (oz. tisti, ki ima zasebni ključ oz. geslo za to denarnico), sami naslovi pa so javni; lahko jih damo komur koli in nihče ne bo mogel potrošiti bitcoinov, ki jih imamo na tem naslovu.

V denarnici imamo lahko več takšnih naslovov, podobno kot imamo lahko več e-mail naslovov v odjemalcu elektronske pošte. Vsak tak naslov v denarnici izhaja iz kombinacije dveh ključev – zasebnega ključa, ki ga pozna samo lastnik, in javnega ključa, iz katerega se dejansko ta naslov izračuna z uporabo kriptografije. Sliši se zapleteno, ampak z vidika Lovra, ki želi prejeti bitcoine, je dovolj, da ima svojo denarnico, v kateri lahko z enim klikom ustvari zasebni ključ (64 naključnih črk in številk) in ga varno shrani, hkrati pa dobi tudi naslov, na katerega mu Maja lahko nakaže svoje bitcoine.

Pri uporabi bitcoina je zelo pomembno, da zasebnega ključa ne damo nikomur, saj mu s tem v bistvu omogočimo popoln dostop do vseh bitcoinov na tem naslovu. Zato moramo biti zelo previdni pri shranjevanju zasebnih ključev, da ne bi prišli v roke nepridipravom, ki bi z veseljem preusmerili vse naše bitcoine v svoje denarnice. Prav tako pa nikakor ne smemo izgubiti zasebnega ključa, saj potem nikoli več ne bi mogli dostopati do bitcoinov na tem naslovu. To je, kot bi imeli kilogram zlata v neuničljivem sefu, ki ga nihče na svetu ne more odpreti, sami pa bi izgubili ključ.

Cilj bitcoin denarnic je poenostavitev shranjevanja zasebnih ključev. Lovro ima lahko v denarnici več različnih zasebnih ključev in z njimi povezanih naslovov, kamor mu lahko Maja pošlje svoje bitcoine. Ker je Lovro premišljen, svojo denarnico zavaruje z dobrim geslom, ki ga zapiše na papir in shrani doma v sefu, hkrati pa naredi tudi varnostno kopijo denarnice. Če se mu slučajno pokvari računalnik in ne more več dostopati do denarnice, jo lahko obnovi na novem računalniku, z uporabo gesla, ki ga je zapisal. To geslo je ponavadi 12 (ali 24) naključno izbranih besed, kar pomeni, da je takšno geslo nemogoče razvozlati.

Sedaj, ko si je Lovro uredil denarnico in poskrbel za dodatne varnostne ukrepe, mu Maja lahko pošlje nekaj bitcoinov na naslov, ki ji ga iz svoje denarnice pošlje Lovro. Ker je trenutno cena bitcoina precej visoka, se dogovorita, da mu bo Maja poslala tisočinko bitcoina, kar pomeni približno 4 evre. Bitcoin je zelo deljiva valuta, saj ima kar osem ničel za celim številom. Ta najmanjša enota (100-milijoninka bitcoina) se imenuje Satoshi, po očetu bitcoina.

Lovro sedaj pošlje Maji svoj naslov, kamor mu bo Maja nakazala tisočinko bitcoina (100 tisoč Satoshijev), v vrednosti približno 4 evre. Da bi Maja lahko izvedla transakcijo, tudi ona potrebuje denarnico. Ker je kupila svoje bitcoine na borzi, ima na svojem trgovalnem računu tudi svojo denarnico. Prek svoje denarnice (na spletni strani borze) vnese Lovrov bitcoin naslov in število bitcoinov, ki jih želi poslati.

Blockchain spreminja finančni svet

Ta transakcija bo torej vsebovala podatke o pošiljatelju (Majin bitcoin naslov iz njene denarnice), količino bitcoinov, ki jih želi poslati in pa podatke o prejemniku (Lovrov bitcoin naslov). Da dejansko pride do transakcije, jo mora Maja najprej podpisati s svojim zasebnim ključem v denarnici. Na srečo se to zgodi samodejno, zato Maji ni treba skrbeti glede tega.

Sedaj je transakcija podpisana in poslana na celotno bitcoin omrežje. Naloga bitcoin omrežja, v katerem so vse denarnice in vsi rudarji, je, da beleži vse transakcije, preveri njihovo pravilnost in jih nato tudi odobri. Vloga denarnic je, da spremljajo in beležijo vse potrjene transakcije, s tem pa lahko enostavno preračunajo, koliko bitcoinov vsebuje vsaka posamezna denarnica (ali natančneje, vsak bitcoin naslov). Naloga t. i. rudarjev pa je, da vse opravljene transakcije preverijo in potrdijo njihovo pravilnost.

Preverjanje transakcij je razmeroma preprosto. Rudarji morajo preveriti, ali ima Maja res toliko bitcoinov, kot jih želi poslati Lovru. To preverijo tako, da pogledajo, od kod je Maja dobila te bitcoine. Ker so vse transakcije javne, je to zelo enostavno narediti. Rudarji torej spremljajo vse transakcije in zato natančno vedo, s katerega bitcoin naslova je bila transakcija opravljena – za celotno zgodovino obstoja bitcoina.

Rudarji združujejo nove transakcije, med katerimi je tudi Majina, v t. i. bloke, ki vsebujejo okoli tisoč transakcij. Zdaj stvar postane zanimiva. Ker so rudarji tisti, ki potrjujejo transakcije, imajo dejansko moč vnesti svojo izmišljeno transakcijo in jo hkrati tudi potrditi. Rudarji bi torej lahko videli Majin bitcoin naslov, opazili, da je na njem nekaj bitcoinov, in te bitcoine v novi transakciji nakazali na svoj naslov. Seveda to ni mogoče, saj mora Maja vsako transakcijo s svojih bitcoin naslovov najprej podpisati z zasebnim ključem, ki ga ima samo ona.

Drugi način t. i. napada rudarjev pa je v obliki dvojne potrošnje. Ker rudarji potrjujejo vse transakcije, bi si lahko z enega izmed svojih naslovov nakazali bitcoine na druga dva naslova hkrati. Recimo, da je na prvem naslovu en bitcoin, zlonamerni rudar pa si ta bitcoin v celoti nakaže na dva naslova. Če mu uspe takšno transakcijo odobriti, je iz nič ustvaril dodatni bitcoin, ki ga potem lahko tudi proda in pri tem zasluži. Vendar je bitcoin sistem odporen tudi na take napade.

Pred takimi napadi se bitcoin sistem brani z uporabo določene vrste konsenza. Ker se morajo vsi rudarji strinjati, da so transakcije v bloku pravilne, morajo nekako doseči soglasje. Glede na to, da so vse transakcije javne, bi v popolnoma poštenem svetu vsi samo potrdili transakcijo, če ustreza pravilom (pošiljatelj ima dovolj sredstev in pošilja na veljaven naslov). Bitcoin sistem pa predpostavlja, da nihče na tem svetu ni pošten, zato morajo rudarji dokazati, da so potrošili nekaj svoje procesorske moči in energije, da so potrdili blok transakcij.

Ta proces potrjevanja blokov (in transakcij, ki so v teh blokih) se imenuje rudarjenje. Ko je Maja poslala tisočinko bitcoina Lovru, je poslala to transakcijo vsem rudarjem. Ti rudarji nato dodajo Majino transakcijo v blok in pričnejo z rudarjenjem. Rudarjenje je iskanje rešitve matematičnega problema, ki ga morajo rudarji rešiti, da bi dokazali, da so res potrošili svojo procesorsko moč in s tem tudi energijo.

Ti matematični problemi, ki jih rudarji rešujejo, izhajajo iz kriptografije. Rudarji vzamejo trenutni blok in ga uporabijo kot vhodne informacije za določeni kriptografski algoritem (SHA256). Značilnost tega algoritma je, da mu lahko kot vhodne informacije ponudimo karkoli, od besed “revija Alfa” do poljubno velike datoteke. Algoritem bo vsakič v nekaj milisekundah izvrgel natanko 64 črk in številk, ki so videti popolnoma naključne. Kljub temu da je teh 64 znakov videti naključnih, je izhod algoritma determinističen, kar pomeni, da bo rezultat popolnoma enak vsakič, ko bomo v algoritem SHA256 vnesli identično vsebino. Najpomembnejša značilnost teh kriptografskih algoritmov pa je, da so enostranski, torej iz vhodnih podatkov zelo hitro dobimo 64 znakov, iz teh 64 znakov pa je nemogoče razbrati vhodne podatke.

Ker je izračunavanje rezultatov algoritma iz vhodnih podatkov, ki so v primeru bitcoina celotna vsebina bloka (posledično vseh novih transakcij, vključenih v ta blok), si je Satoshi Nakamoto izmislil preprosto rešitev tega problema. Rudarji morajo uporabiti algoritem SHA256 tako, da se bo rezultat (teh 64 znakov) začel z določenim številom znakov, enakim nič, recimo prvih 18 znakov mora biti nič. To lahko rudarji dosežejo tako, da kot dodatni vhodni podatek uporabijo še eno število, ki ga spreminjajo tako dolgo, da kombinacija vhodnih podatkov bloka in tega števila pripelje do želenega rezultata – 64 znakov, ki pa se začnejo z določenim številom ničel.

To pomeni, da morajo rudarji preizkusiti ogromno različnih možnosti tega števila, ki služi kot dodatni vhodni podatek pri rudarjenju blokov, s tem pa uporabljajo veliko procesorske moči in s tem posledično tudi električne energije. Zakaj pa bi si sploh želeli, da se toliko energije porabi za preprosto potrjevanje transakcij in zakaj rudarji to sploh počnejo?

Takoj ko rudar (posamezni računalnik, strežnik ali posebna oprema, specializirana za rudarjenje) najde rešitev v obliki unikatnega števila, ki v kombinaciji z blokom transakcij reši ta algoritem, ga pošlje po celotnem bitcoin omrežju, vsem denarnicam in rudarjem, ki sami zelo hitro (v nekaj milisekundah) preverijo, ali je ta rudar res našel pravo rešitev in nato potrjeni blok transakcij sprejmejo kot pravilnega in veljavnega. Vse transakcije v tem bloku so tako prvič potrjene in zato veljavne. Lovro je s tako potrditvijo bloka, samo deset minut po tem, ko mu je Maja poslala tisočinko bitcoina, na svoj naslov prejel svoje prve bitcoine.

Rudarji za potrjevanje blokov (in posledično transakcij) prejmejo nagrado – ampak samo tisti, ki prvi rešijo matematični problem. Zato vsi rudarji želijo imeti čim močnejše procesorje, da bi lahko s čim večjo verjetnostjo našli številko, ki je ključ za rešitev algoritma. Sprva so rudarji uporabljali klasične računalniške procesorje (CPU), nato so potrebovali še hitrejše procesorje, zato so začeli uporabljati procesorje na grafičnih karticah (GPU), sedaj pa uporabljajo posebna vezja, ki znajo preračunavati samo algoritem SHA256 in popolnoma nič drugega. Ta vezja so lahko do stokrat hitrejša od grafičnih kartic, te pa so lahko stokrat hitrejše od klasičnih računalniških procesorjev. Bitka za hitrost je intenzivna, kar je bila voda na mlin izdelovalcem grafičnih kartic (Nvidia in AMD), katerih delnice so v preteklih dveh letih eksponentno narasle.

Nagrada, ki jo prejme rudar, ki prvi odkrije rešitev problema, trenutno znaša 12,5 bitcoina, kar je približno 45 tisoč evrov. Velikost nagrade s časom pada.

»Ob nastanku bitcoina je bila nagrada 50 bitcoinov za uspešno potrditev bloka (za najdeno rešitev problema), nato je bila leta 2012 razpolovljena na 25 bitcoinov, sredi 2016 pa znova razpolovljena na 12,5.«

Tudi v prihodnje se bo nagrada zmanjševala za faktor 2, na približno vsaka štiri leta. Leta 2140 nagrad za rudarje ne bo več; za potrjevanje transakcij bodo rudarji prejemali samo še transakcijske stroške.

Da bi razumeli, zakaj je sploh potrebne toliko energije za preprosto potrjevanje transakcij, poglejmo, kako nastane veriga blokov oz. blockchain. Ko je Maja nakazala nekaj denarja Lovru, je bila ta transakcija dodana v blok. Ker so transakcije javne, je preprosto slediti, kdo ima koliko bitcoinov, saj lahko preprosto povežemo vse transakcije za nazaj – vse do začetka bitcoina. Bloki so tudi povezani med seboj, in sicer kronološko.

Ta blok, v katerem je tudi transakcija od Maje k Lovru in je bila pravkar potrjena, je povezana s preteklim blokom, ki vsebuje pretekle transakcije (približno tisoč transakcij izpred približno 20 minut). Tudi ta prejšnji blok je povezan s svojim predhodnikom in tako dalje, vse do prvega bloka, ki ga je ustvaril Satoshi Nakamoto.

Kako varna sploh je blockchain tehnologija?

Vsi bloki so med seboj povezani tako, da je njihov rezultat problema (64 znakov, kjer je prvih nekaj znakov nič) uporabljen kot vhodni parameter pri naslednjem bloku. Ko je tudi naslednji blok potrjen in je znan rezultat problema, je ta spet uporabljen kot vhodni parameter pri naslednjem bloku in tako naprej. S tem nastane neprekinjena veriga med seboj povezanih blokov.

To je zelo domiselna rešitev oziroma omejitev potencialnih prevar, ki bi jih utegnili zagrešiti rudarji. Če rudar želi spremeniti izbrano transakcijo v zadnjem bloku, se bo zaradi značilnosti kriptografskega algoritma rezultat problema tega bloka “porušil”. Vsaka minimalna sprememba bloka pomeni, da mora rudar znova poiskati rešitev, kar pa ga seveda stane procesorske moči in posledično električne energije. Dokler ta prevarantski rudar poskuša najti novo rešitev prirejenega bloka, vsi ostali rudarji nadaljujejo z potrjevanjem novih transakcij v novih blokih in jih dodajajo v blockchain.

Verjetnost, da bi zlonamernemu rudarju uspelo najti rešitev problema za prejšnji blok transakcij, ki ga je spremenil, in tudi za novega, ki ga vsi rudarji preračunavajo, je zelo majhna. Drugače povedano, ta rudar bi moral imeti na voljo več kot polovico procesorske moči celotnega bitcoin omrežja, da bi mu to lahko uspelo. To pomeni, da bi moral investirati na milijone evrov v opremo in plačevati ogromne zneske za električno energijo. Pa tudi, če bi mu uspelo, bi to prevlado drugi rudarji opazili in primerno ukrepali. Strošek, ki bi ga takšen napadalec utrpel, je precej večji kot potencialna nagrada, ki jo lahko dobi, zato kaj takega še ni uspelo nobenemu rudarju in zelo verjetno tudi nobenemu ne bo (dokler ne izdelamo kvantnih računalnikov).

Vsak novi potrjeni blok še dodatno potrdi vse bloke pred seboj. Če bi rudar želel spremeniti transakcije v predzadnjem bloku (kjer sta bila še dva za njim potrjena), bi moral za kar tri bloke zaporedoma sam najti rešitev problema. Vsak nadaljnji potrjeni blok dodatno zahteva še toliko več procesorske moči, zato se vsi nekako strinjajo, da je po šestih potrditvah (po približno eni uri) transakcija veljavna do te mere, da je nihče nikoli več ne bo mogel spremeniti.

Blockchain v bitcoin sistemu zato omogoča potrjevanje transakcij brez osrednje avtoritete, ki bi ji morali vsi zaupati, zato nekateri imenujejo bitcoin tudi valuta, ki deluje brez zaupanja. Hkrati bitcoinov blockchain doseže konsenz v celotnem omrežju z uporabo dokazila o opravljenem delu (angl. Proof of Work), v obliki objave rezultata matematičnega problema, ki ga hitro lahko potrdijo vsi ostali. S tako obliko konsenza nastane še ena zelo uporabna lastnost bitcoina – nespremenljivost potrjenih transakcij.

»Blockchain tehnologija omogoča, da je bitcoin valuta, ki ne potrebuje zaupanja med uporabniki in je hkrati zelo varna ter hitra.«

Majina transakcija je bila torej v desetih minutah dodana v blockchain, s prvim potrdilom bloka, z vsako nadaljnjo potrditvijo novega bloka pa je njena transakcija vedno bolj globoko v blockchainu, kar pomeni, da je nihče nikoli več ne bo mogel spremeniti. Lovro, ki je prejel Majine bitcoine, je prav tako lahko prepričan, da so ti bitcoini sedaj na njegovem naslovu, na varnem v njegovi denarnici.

Prednosti in slabosti

Kljub temu da je celoten proces razmeroma kompleksen, so transakcije na blockchainu precej hitrejše in lahko tudi cenejše kot pa je nakazilo prek banke ali uporaba PayPala ali kreditne kartice. Stroški slednjih dveh se gibljejo med dvema in tremi odstotki, kar lahko za podjetje, ki ima nizke marže, pomeni ogromno. Namreč, če podjetje prodaja izdelek s 5-odstotno maržo, strošek prejetja plačila pa znaša 2 odstotka vrednosti, se marža skorajda razpolovi. To v visoko konkurenčnem svetu seveda ni sprejemljivo, saj takšna razlika lahko pomeni razliko med uspehom ali stečajem podjetja.

V primeru bitcoina bi to podjetje plačalo minimalne stroške transakcije, ki so trenutno okoli tri evre. Pri izdelkih, vrednih nekaj tisoč evrov, je razlika med uporabo bitcoinov ali kreditnih kartic za transakcije lahko ogromna. Tukaj pa hitro ugotovimo trenutno pomanjkljivost bitcoin sistema, namreč, bitcoin ni najbolj privlačen za transakcije manjših vrednosti. Dodatna pomanjkljivost bitcoin sistema je tudi v številu transakcij, ki se lahko odvijejo vsako minuto.

Trenutna omejitev glede števila transakcij je omejena z velikostjo bloka: več transakcij ko lahko rudarji dodajo v posamezni blok, večja je zmogljivost bitcoinovega omrežja. Sistem plačilne kartice Visa lahko vsako sekundo potrdi skoraj 100 tisoč transakcij, medtem ko se bitcoinu ustavi pri manj kot desetih. Prav zaradi tega se je poleti odvijala prava bitka med rudarji, saj so nekateri želeli ublažiti to omejitev, medtem ko so bili drugi proti. Zato je prišlo do nestrinjanja glede tega, kateri standard bo uporabljen pri novih blokih, kar je pripeljalo do dveh različnih bitcoinovih blockchainov. Večina se je strinjala, da se velikost blokov poveča in s tem poveča število transakcij, manjšina pa je ostala pri prejšnjem standardu. S tem sta nastala dva bitcoina: bitcoin in bitcoin cash.

Maji ni bilo treba razmišljati o tem, kako bodo njeni bitcoini prispeli do Lovra, saj njena denarnica poskrbi za uporabo pravih standardov. Kljub temu take komplikacije v bitcoin omrežju kažejo na nezrelost sistema, ki pa res zelo hitro dozoreva.

Z ublaženo omejitvijo velikosti bloka se bo povečalo tudi število transakcij, ki jih rudarji lahko potrdijo vsakih deset minut, kar bo naredilo bitcoin za še bolj privlačno plačilno sredstvo. Tudi stroški transakcij se bodo posledično znižali, zato bo bitcoin (znova) primeren tudi za manjše transakcije. Razvijajo se tudi nadgradnje bitcoin sistema, pri katerih bodo manjše transakcije združene v eno, kar bo še dodatno pospešilo omrežje, znižalo stroške in omogočilo precej večje število transakcij. Trenutni glavni težavi bitcoina (omejeno število transakcij na minuto in visoki stroški za manjše transakcije) sta v bistvu samo inženirski težavi, ki bosta v prihodnjih mesecih in letih rešeni. Takrat se bo bitcoin lahko postavil ob bok sistemu Vise oziroma ga celo prehitel.

Kljub temu bo minilo še kar nekaj časa, preden bo bitcoin postal zanimiv kot plačilno sredstvo za širšo javnost v razvitih državah. Enostavnost uporabe bo verjetno glavni dejavnik pri širši uporabi. Dokler bo treba ustvariti denarnico, v njej shranjevati javne in zasebne ključe in pošiljati naokoli bitcoin naslove, da bi sploh lahko prejeli bitcoine, bo uporaba bitcoina kot plačilnega sredstva omejena. Ko pa bo bitcoin tako preprosto uporabljati kot kreditno kartico (ali mogoče še enostavneje), bodo ljudje morda bolj množično uporabljali najpomembnejše kriptovalute kot plačilno sredstvo.

About Author

Luka Gubo

Luka Gubo

je kvantitativni analitik pri podjetju Finančni Trgi d.o.o. in upravljavec sklada FT Quant, in ima dolgoletne izkušnje na področju razvoja kvantitativnih modelov in investicijskih strategij. Njegov fokus je implementacija ugotovitev priznanih svetovnih akademikov v prakso, kar pomeni razvoj investicijskih pristopov, ki imajo visoke tveganju prilagojene donose. Zagovarja popolno transparentnost delovanja in čim bolj sistematično odločanje v investicijskem procesu. Za slovenske medije je pogosto vir informacij ali v obliki posvetov ali pisanja prispevkov in kolumn. Njegovi prispevki in komentarji so bili objavljeni v vseh večjih slovenskih medijih (Planet Siol.net, 24ur.com, Delo, Dnevnik, Finance, RTV Slo, Radio Slovenija, Val202, idr.)

Related Articles

Nova finančna revija ALFA

Naročite se na najbolj informativen tromesečnik za finančne navdušence!

Naročnina na revijo

Prodajne lokacije

Za oglaševalce