V uvodnem delu diplomske naloge so predstavljeni domena, cilji, sorodna dela in struk-tura diplome. Drugo poglavje vsebuje pregled stanja kriptovalut s kratko zgodovino tehnologije verige blokov. Tretje poglavje zajema teorijo celotnega Tezosovega sistema.
Zaˇcne se z razlago razliˇcnih protokolov, ki ga sestavljajo, nato predstavi Tezosov al-goritem soglasja – likviden dokaz o deleˇzu, ki zajema podroˇcje ustvarjanja blokov,
Diplomska naloga 3 nagrad in stroˇskov. Nadaljuje se z opisom posameznih faz glasovanja in zakljuˇci s podpoglavjem o pametnih pogodbah. Cetrto poglavje predstavi orodja in tehnolo-ˇ gije v Tezosovem sistemu. Sprva se poglobi v arhitekturo vozliˇsˇca, nato pa naˇsteje ˇse razliˇcne tehnologije pametnih pogodb. Peto poglavje opisuje analizo, naˇcrtovanje, nameˇsˇcanje, vzdrˇzevanje in testiranje strojne in programske opreme Tezosovega vo-zliˇsˇca. Zadnjo poglavje na podoben naˇcin predela ˇse postopek objave in interakcije dveh pametnih pogodb. Vsebuje tudi pregled stroˇskov vseh izvedenih operacij. V zakljuˇcku so navedene sklepne ugotovitve diplomske naloge.
Poglavje 2
Pregled stanja
Tehnologija verige blokov je od leta 2009, ko je bila objavljena prva verzija Bitcoinove programske opreme, moˇcno napredovala [37]. Z napredkom se je spremenilo tudi javno mnenje o tehnologiji. Bitcoin se je najprej razˇsiril v krogu kriptografov, ki so ga spre-jeli z zanimanjem in sodelovanjem. Tako se je oblikovala prva skupina uporabnikov, ki so s sodelovanjem v P2P omreˇzju pomagali vzpostaviti prvo digitalno, decentra-lizirano in javno knjigo transakcij. Rudarjenje nagrad je bilo na zaˇcetku enostavno tudi z vsakdanjo raˇcunalniˇsko opremo in mnogi uporabniki so se gibanju prikljuˇcili iz radovednosti.
Skeptiki so zaˇceli Bitcoin primerjati s piramidno shemo, kjer je Satoshi Nakamoto na samem vrhu. Cena Bitcoina je z visokim nihanjem vseeno rasla, ko so se oblikovale prve spletne menjalnice leta 2010, kjer so lahko uporabniki virtualne ˇzetone kupovali in prodajali za pravi denar. Zaradi anonimne narave uporabnikov je bila v oˇceh medijev celotna tehnologija verige blokov primerna samo za nelegalne dejavnosti. Leta 2011 so se oblikovali prvi alternativni ˇzetoni, ki so z razliˇcnimi pristopi poskuˇsali izboljˇsati Bitcoin [30]. Prevare in vdori med projekti alternativnih ˇzetonov so bili pogosti, kar je upoˇcasnjevalo sprejetje tehnologije verige blokov. Kljub temu so visoki potencialni donosi in osnovna ideja decentralizacije pripeljali mnoˇzico novih uporabnikov. Do leta 2014 je cena Bitcoina iz 0,09 USD zrasla na veˇc kot 1000 USD [31]. Belo knjigo Ethereuma je Vitalik Buterin objavil leta 2013, ko je predstavil idejo za verigo blokov z vgrajenim programskim jezikom, ki se lahko uporablja za pisanje pametnih pogodb.
Leta 2015 pa je izˇsla prva verzija programske opreme. Ethereum je z inovacijami pametnih pogodb in aktivno decentralizirano organizacijo oblikoval drugo generacijo kriptovalut, medtem pa se je razvoj Bitcoina zaradi nesoglasja med rudarji in razvijalci upoˇcasnil. Funkcija Bitcoina se je iz digitalnega denarja preoblikovala v finanˇcno sredstvo za shranjevanje vrednosti, varovanje pred inflacijo in trˇzno negotovostjo.
5
Med vzponom prve in druge generacije so okoljevarstveniki zaˇceli opozarjati na koliˇcino elektriˇcne energije, ki je porabljena za dokaz o delu. Tako se je pojavila priloˇznost za tretjo generacijo kriptovalut, ki za algoritem soglasja uporablja alterna-tivne pristope z manjˇso porabo energije. Med prvimi projekti, ki so poskusili oblikovati novo generacijo verige blokov, je bil tudi Tezos in z njim se je izboljˇsalo tudi javno mnenje o tehnologiji verige blokov. Zagotovil je tudi upravljanje decentralizirane orga-nizacije na verigi blokov in formalizacijo programske kode. Tehnologija verige blokov danes igra pomembno vlogo na podroˇcju dobavnih verig in ˇcezmejnih plaˇcil. Upo-rablja se tudi za varovanje osebnih in zdravstvenih podatkov ter sledljivost izdelkov [37]. Odprtokodne decentralizirane aplikacije oblikujejo zaupanje uporabnikov z viˇsjo stopnjo preglednosti in predvidljivosti od centraliziranih aplikacij.
Pregled stanja tehnologije verige blokov nam pomaga razumeti, zakaj smo za ana-lizo izbrali Tezos in kaj je vplivalo na nekatere odloˇcitve pri oblikovanju nove generacije kriptovalut. Tabela 2.1 v ta namen prikazuje tudi lastnosti Bitcoina, Ethereuma in Tezosa. Tezos je v primerjavi s sistemi Bitcoin in Ethereum boljˇsi na podroˇcjih:
• nadgradljivost, saj z upravljanjem decentralizirane organizacije na verigi blokov omogoˇca redne in usklajene nadgradnje protokola;
• razˇsirljivost, saj so samostojne programske komponente oblikovane v nadgradlji-vih modulih;
• poraba energije, saj uporablja uˇcinkovitejˇsi algoritem soglasja;
• formalizacija kode, saj lahko s sklepanjem temeljnih resnic in manipulacijo for-malnih izrazov, ki predstavljajo ukaze v kodi, izpeljemo dokaz pravilnosti kode.
Bitcoin Ethereum Tezos
Simbol BTC ETH XTZ
Zaˇcetek delovanja jan 2009 jul 2015 sep 2018
Algoritem soglasja PoW PoW LPoS
Letna poraba energije 160 TWh 75 TWh 0.000277 TWh
Upravljanje izven verige izven verige na verigi
Formalizacija kode ne ne da
Povpreˇcen ˇcas bloka 10 min 13 sek 1 min
Najveˇcja velikost bloka 1 MB 80 KB 500 kB
Tabela 2.1: Tabela lastnosti razliˇcnih tehnologij verige blokov.
Poglavje 3 Tezos
Da bi laˇzje razumeli delovanje Tezosovega sistema, moramo najprej predstaviti kratko zgodovino, terminologijo in glavne protokole, ki ga oblikujejo. Tezos je decentralizirana veriga blokov, ki omogoˇca neposredne transakcije in sluˇzi kot platforma za izvrˇsevanje pametnih pogodb [36]. Izvorna kriptovaluta na verigi blokov je tez s simbolom XTZ.
Uporablja odprtokoden algoritem za usklajevanje informacij imenovan dokaz o deleˇzu.
Tezos je bil prviˇc omenjen 3. avgusta 2014 v dokumentu [32], ki je opisoval takratne probleme Bitcoin omreˇzja in predlagane reˇsitve. Bela knjiga [33] je bila objavljena 2. septembra 2014. Oba dokumenta je napisal Arthur Breitman in jih objavil pod psevdonimom LM Goodman. Aprila 2017 je bila v ˇSvici ustanovljena neprofitna or-ganizacija, namenjena podpori pri razvoju Tezosa in sorodnih tehnologij, imenovana Tezos Foundation. Organizacija je julija 2017 na zaˇcetni ponudbi kovancev (ang. ini-tial coin offering ali ICO) zbrala 232 milijonov dolarjev [34]. Prvo testno omreˇzje je bilo vzpostavljeno v juliju 2018, glavno omreˇzje pa deluje od septembra 2018.
3.1 Samonadgrajujoˇ ca veriga blokov
Protokol verige blokov sestavljajo trije neodvisni protokoli:
• omreˇzni protokol odkriva nove bloke in posreduje transakcije;
• transakcijski protokol doloˇca pravila veljavne transakcije;
• protokol soglasja skrbi za usklajevanje informacij v verigi blokov.
Transakcijski protokol in protokol soglasja skupaj lahko imenujemo tudi protokol verige blokov [33]. Posamezne protokole lahko loˇceno nadgradimo ali zamenjamo, saj neodvisno opravljajo svoje naloge. Za tovrstne spremembe poteka glasovanje na verigi blokov, ki je bolj podrobno opisano v poglavju 3.4.
7
3.1.1 Omreˇ zni protokol in omreˇ zna lupina
Tezos implementira omreˇzni protokol v omreˇzni lupini, ki ne vpliva na transakcij-ski protokol ali na protokol soglasja [32]. Omreˇzna lupina tako neodvisno povezuje omreˇzje enakovrednih vrstnikov in s tem omogoˇca nemoteno delovanje protokola ve-rige blokov. Najzahtevnejˇsa funkcija omreˇzne lupine je, da zavaruje vozliˇsˇca pred napadom za zavrnitev storitve. Za izboljˇsanje raˇcunalniˇske varnosti na vozliˇsˇcu je kljuˇcno razumeti lastnosti omreˇzne lupine, saj moramo vedeti, katerim napadom smo z izbranim omreˇznim protokolom izpostavljeni. Ker je IP naslov in namen streˇznika v omreˇzju enakovrednih vrstnikov enostavno odkriti, moramo za zaˇsˇcito pred vdorom namestiti dodatno varnostno programsko opremo, namen katere je opisan v petem poglavju pri postavitvi vozliˇsˇca. Omreˇzni protokol oblikuje koncepta transakcije in blokov, transakcija pa je zapis spremembe globalnega stanja v omreˇzju. Vozliˇsˇce lahko transakcijo ustvari samo ali pa je poslana iz drugega vozliˇsˇca. ˇCe je transakcija ve-ljavna, je posredovana naprej po omreˇzju. Novo ustvarjene transakcije zdruˇzujemo v bloke, ti pa so povezani v verigo blokov. Bloki, katerih ˇcasovni ˇzig je le nekaj minut v prihodnosti, se v vozliˇsˇcu hranijo, ostali pa so zavrˇzeni. Protokol mora upoˇstevati, da lahko na drugih vozliˇsˇcih pride do ˇcasovnega zamika in da je lahko ˇcasovni ˇzig v bloku ponarejen. Da ˇsˇciti pred napadom za zavrnitev storitve, doloˇca tudi primerno velikost transakcij in blokov.
V omreˇzju se lahko zaradi nesoglasja med vozliˇsˇci iz verige blokov oblikuje veˇc vilic (ang. forks). Vsakemu bloku pripiˇsemo ustreznost, ki doloˇca kakovost verige, ki vodi do tega bloka. To merilo se izraˇcuna s pravili v protokolu soglasja. V vozliˇsˇcu ne hranimo celotnega drevesa blokov, saj bi bili s tem izpostavljeni napadu za zavrnitev storitve, kjer napadalec proizvede veliko ˇstevilo nizko ocenjenih veljavnih vej. Omreˇzna lupina vzdrˇzuje le najbolj primerno verigo blokov, ki je znana vozliˇsˇcu. Pri tem mora upoˇstevati, da lahko zlonamerno vozliˇsˇce posreduje ponarejeno oceno veljavnosti nove veje. Poslediˇcno sosednje vozliˇsˇce procesira bloke na napaˇcni verigi, vendar protokol narekuje, da nizko ocenjene verige proizvedejo manjˇse ˇstevilo blokov. Vozliˇsˇce po nekaj prejetih blokih odkrije ponarejeno oceno verige. Omreˇzni protokol poskuˇsa povezati ˇ
cim veˇcje ˇstevilo vozliˇsˇc, vendar zazna odklopljena in blokira zlonamerna vozliˇsˇca.
Spremembe v omreˇznem protokolu so razmeroma nesporne. Sprva se lahko po-javijo nesoglasja, vendar so na sploˇsno interesi razliˇcnih akterjev v sistemu na tem podroˇcju usklajeni. Prav tako ni nujno, da vsi akterji sledijo spremembam soˇcasno.
Ceprav zdravo omreˇˇ zje zahteva poenoten pristop ter konkurenˇcne inovacije omreˇznega protokola, na sploˇsno krepijo kriptovaluto.
Diplomska naloga 9
3.1.2 Transakcijski protokol
Translacijski protokol opisuje pravila veljavne transakcije [32]. V njem so zapisane vse informacije o verigi blokov, zlasti tiste, ki so pomembne za interakcijo med vozliˇsˇci.
Opisuje dejavnosti verige blokov in transakcij. Vsaka transakcija vsebuje poljubno mnogo operacij, ki premaknejo tez med raˇcuni ali izvedejo kodo pametne pogodbe.
Spremembe protokola transakcij so bolj sporne kot spremembe omreˇznega pro-tokola. Medtem ko lahko majhna skupina akterjev enostransko zamenja algoritem v omreˇzni lupini, je sprememba protokola transakcij bolj zapletena. Zahteva sodelovanje veˇcine rudarjev, kar imenujemo mehka vilica (ang. soft fork). Mehka vilica pogosto ne vpliva na lahke odjemalce konˇcnih uporabnikov, temveˇc le na kljuˇcne akterje v sistemu, ki upravljajo vozliˇsˇca.
Teˇzavnost posodabljanja posameznih protokolov moramo upoˇstevati pri naˇ crto-vanju vzdrˇzevanja vozliˇsˇca, da ne zamudimo kljuˇcnih posodobitev. V poglavju 5.5 je naveden primer, kjer smo morali prekiniti delovanje vozliˇsˇca in posodobiti programsko opremo pred mehko vilico v omreˇzju, da smo lahko nadaljevali s peko blokov brez prekinitev.
3.1.3 Protokol soglasja
Protokol soglasja omogoˇca, da platforma doseˇze soglasje pri globalnem stanju verige blokov [32]. Opisuje, kako vozliˇsˇca skupaj doloˇcijo in gradijo na najbolj kakovostni verigi blokov. Doloˇca tudi, kdaj je posamezno vozliˇsˇce na vrsti, da proizvede nov blok. Vsak protokol soglasja za doloˇcanje teh pravil uporablja algoritmom soglasja.
V Tezosovem primeru je to likviden dokaz o deleˇzu (ang. liquid proof of stake ali LPoS), ki je opisan v poglavju 3.3. Z uporabo tega protokola poteka tudi glasovanje za vsako spremembo, dodatek ali nadgradnjo Tezosove verige blokov. Da lahko glasovanje poteka na decentraliziran naˇcin v verigi blokov, mora programski jezik OCaml [10], ki ga uporablja Tezos, prepoznati tri glavne elemente na verigi blokov: transakcije, bloki in razliˇcni protokoli. Kateri koli modul, ki je napisan v OCalm in je implementiran v verigi blokov, se lahko posodobi.
Protokol soglasja je osrednji protokol, ki ga je najteˇzje spreminjati; pogosto zahteva trdo vilico (ang. hard fork), ki razveljavi stare bloke. Trda vilica zahteva, da vsi akterji v sistemu programsko opremo posodobijo na najnovejˇso verzijo.