Kako lahko sami ustvarite svojo kriptovaluto

Nina Breznik
Kolumna
Published in
3 min readMar 19, 2018

Številni finančni strokovnjaki verjamejo, da so digitalne kriptovalute denar prihodnosti, zato se vse več podjetij odloča za izdajo kriptožetonov — enot svoje kriptovalute. Podjetje s tem pridobi svež denar za razvoj, vlagatelji pa z nakupom kriptožetonov nekega podjetja (ali organizacije), ki jih lahko tudi vnovčijo za nakup njegovih storitev, stavijo, da bo to uspešno in da bo njegova vrednost rasla. Kriptovalute so torej plačilno sredstvo in tudi naložbena
možnost.

Da bi lahko ustvarili svojo kriptovaluto, jo je treba zgraditi. Zakaj zgraditi? Zato, ker je temelj vsake kriptovalute računalniški program, ki ga je potrebno sestaviti, da lahko izvaja, kar smo vanj zapisali.

Najbolj preprosto je, če kriptovaluto zgradimo na verigi podatkovnih blokov Ethereum. Program, ki ga razvijemo, se v svetu Ethereuma imenuje kriptografska pametna pogodba (smart contract), napisan pa je lahko v različnih posebnih jezikih, ki jih razume Ethereumov virtualni stroj. Eden teh jezikov je Solidity, ki je dokaj berljiv programski jezik, tako da je primeren tudi za začetnike, ki potrebujejo malce predznanja v programskem jeziku Javascript.

Prejšnji teden je v Parizu potekala ethCC konferenca, kjer smo se zbrali programerji, ki oblikujemo rešitve v okolju Ethereum. Zadnje leto skupaj s še štirimi programerji iz Francije, Združenih držav Amerike, Kanade in Nemčije sodelujem pri razvoju spletnega orodja za oblikovanje kriptografskih pogodb v programskem jeziku Solidity. Odprtokodno orodje se imenuje Remix in uporabnikom omogoča pisanje pogodb, iskanje in odpravo napak v
njihovih programih, testiranje delovanja in tudi objavo pogodb v omrežju Ethereum. Na konferenci smo dvakrat izvedli delavnico, na kateri smo uporabnikom pomagali zgraditi aplikacijo in dve pogodbi — eno za novo kriptovaluto in drugo za izvedbo javnega razpisa, kjer lahko uporabniki prijavijo svoje predloge, potem vsi uporabniki javno glasujejo za predloge in
na koncu zmagovalec prejme celotna razpisana sredstva v novi kriptovaluti.

V nadaljevanju bom pojasnila, kako zgradite lastno kriptovaluto. Za to lahko uporabite obstoječo predlogo oziroma standard, ki ga potem prilagodite vašim potrebam — na primer, opredelite lahko, koliko enot želite ustvariti, ali bodo vse enote vaše valute ustvarjene naenkrat ali boste rudarili nove enote vsake denimo tri mesece. V nadaljevanju lahko opredelite, kdo ima pravice do razporejanja enot — z drugimi besedami, v programu oziroma pogodbi lahko določite, da bodo vse enote vaše valute po tem, ko bodo ustvarjene,
prenesene na vašo kripto denarnico in jih boste potem vi porazdelili med uporabnike. Lahko pa na primer opredelite, da bodo enote porazdeljene enakomerno med več denarnic ali kako drugače določite pravila uporabe.

No, zdaj lahko vidite, zakaj se ta program imenuje pogodba. Določiti je potrebno veliko pravil, ki spominjajo na pravni jezik, razlika je dejansko bolj ali manj v tem, da pogodbe ne pišemo v slovenskem ali angleškem jeziku, ampak v tem primeru uporabljamo programski jezik Solidity. Tega nato Ethereumov virtualni stroj pretvori v jezik, ki ga razumejo računalniki, ki
nato program tudi izvedejo. Ena trenutno najbolj razširjenih predlog za kriptovalute je ERC 20. Pogodbo nato preprosto skopirate in prilepite v orodje Remix, kjer na desni strani v zavihku Prevod (Compile) kliknete Začni s prevajanjem (Start to compile), kjer bo vaša pogodba avtomatično prevedena iz jezika Solidity v računalniku razumljiv jezik. Nato kliknite na drug zavihek, imenovan Zagon (Run), kjer izberete okolje Javascript VM ter kliknite Ustvari (Create) in vaša kriptovaluta bo ustvarjena.

Temelj vsake kriptovalute je računalniški program, ki ga je potrebno zgraditi, da lahko izvaja, kar smo vanj zapisali. Je nekakšna kriptografska pametna pogodba, saj je potrebno v njem določiti veliko pravil.

Nina Breznik je programerka pri Ethereum Foundation ter soustanoviteljica
FairyDust.agency in WizardAmigos.com šole za programiranje.

--

--

Nina Breznik
Kolumna

Tooling for learning and developing Solidity smart contracts @smartcontract.codes (Ethereum Foundation), p2p databases (Dat) & community@wizardamigos she/her