3.3 Likviden dokaz o deleˇ zu
3.3.1 Ustvarjanje blokov
Uporabniki lahko svoje ˇzetone delegirajo delegatom, ˇce sami ne ˇzelijo ali niso zmoˇzni aktivno sodelovati v algoritmu soglasja. Delegati potrebujejo znanje o gostovanju in raˇcunalniˇski varnosti za upravljanje vozliˇsˇca v omreˇzju. Z delegacijo se prenese samo pravica za ustvarjanje blokov, v zameno pa dobijo sorazmeren del nagrade iz izbranega vozliˇsˇca. Uporabnik lahko delegirane ˇzetone ˇse vedno uporablja enako kot nedelegirane, vendar bo vsaka sprememba stanja vplivala na ˇstevilo delegiranih ˇzetonov.
Da bi vozliˇsˇce uˇcinkoviteje spremljalo stanje raˇcunov za razdelitev pravic do ustvar-janja blokov, so delegirani ˇzetoni zdruˇzeni v zvitke. Vsak zvitek pripada doloˇcenemu delegatu, pravice do peˇcenja pa bodo nakljuˇcno dodeljene tem zvitkom. Velikost zvitka je trenutno doloˇcena na 8000 XTZ, vendar se bo kmalu posodobila na 2000 XTZ.
Delegat pri ustvarjanju blokov sodeluje v treh vlogah:
• pek (ang. baker) ustvarja nove bloke;
• potrjevalec (ang. endorsers) potrjuje veljavne bloke drugih pekov;
• obtoˇzevalec (ang. accuser) spremlja delo drugih pekov in potrjevalcev in prijavi nepravilno vedenje.
Slika 3.1: Diagram akterjev in operacij pri ustvarjanju blokov.
Na enake tri komponente je po modulih razdeljena tudi programska oprema, ki jo delegati gostujejo na vozliˇsˇcih. Vloge delegata in najbolj pogoste operacije so pri-kazane na sliki 3.1. Ko pek ustvarja nove bloke, to dejanje imenujemo peka (ang.
baking). Peki so nakljuˇcno izbrani s seznama vseh vozliˇsˇc, ki so se razglasila za de-legate, sorazmerno s koliˇcino teza, ki ga imajo. Za vsak blok je izbranih veˇc pekov, ki imajo pravico ustvariti blok po prednostnem seznamu. Pek z najviˇsjo prioriteto bo prvi poskusil ustvariti blok. ˇCe mu to ne uspe v doloˇcenem ˇcasovnem roku, bo moˇznost dobil naslednji pek v prioritetnem seznamu. Blok, ki ga ustvari pek, ki nima prednosti, bo neveljaven in ga bo omreˇzje zavrnilo. Preden pek ustvari blok, mora izbrati in validirati vse vsebovane transakcije. Nato lahko zapeˇce naslednji blok in ga doda v verigo ter spremembo stanja v verigi sporoˇci omreˇzju.
Pek je lahko oznaˇcen kot aktiven ali pasiven, a pasivnega peka ni mogoˇce izbrati za peko ali potrjevanje. Pek postane pasiven v ciklu n, ˇce v preteklih petih ciklih ni ustvaril nobenega bloka ali potrditve. Ta mehanizem skrbi, da se novi bloki in potrditve ne dodeljujejo delegatom, ki ne vzdrˇzujejo svojih vozliˇsˇc. ˇCe ima delegat majhno delegacijo, bo morda oznaˇcen kot pasiven, ˇceprav ima delujoˇce vozliˇsˇce. V tem primeru mora v Tezosovem omreˇzju ponovno registrirati vozliˇsˇce, da ni izkljuˇcen iz seznama vozliˇsˇc za dodeljevanje blokov.
Ce pek ravna nepoˇsteno, ima protokol vgrajen mehanizem, zaradi katerega lahkoˇ izgubi svoj varnostni depozit. Za ustvarjanje bloka mora namreˇc zamrzniti del svojih ˇ
zetonov, ki mu bodo ob praviˇcnem delovanju vrnjeni. Za vsak ustvarjen blok mora zamrzniti 512 XTZ in za vsako potrditev bloka 64 XTZ. Ko delegat speˇce ali potrdi
Diplomska naloga 13 nov blok, se varnostni depozit samodejno prenese na depozitni raˇcun, kjer je zamr-znjen za pet ciklov, nato pa se samodejno prenese nazaj na pekov glavni raˇcun. Zaradi varnostnih depozitov je v omreˇzju ves ˇcas v ta namen zaklenjenih pribliˇzno 8,5 % vseh tezov. To pomeni tudi, da mora imeti vsak delegat v lasti veˇc kot 8,5 % vseh delegira-nih tezov, saj lahko za varnostni depozit porabi le svoje ˇzetone. ˇCe ima delegat v lasti premajhen odstotek vseh delegiranih ˇzetonov, bo izgubil del potencialne nagrade do-deljenih blokov, ki jih brez sredstev za varnostni depozit ne more ustvariti ali potrditi.
S tem mehanizmom si decentralizirana skupina pekov poˇsteno razdeli delo v omreˇzju in hkrati kaznuje nepoˇstene akterje.
Za pravilno ustvarjen blok prejme pek poleg omreˇzne nagrade tudi vsoto vseh provizij za transakcije v bloku. Omreˇzna nagrada se izraˇcuna po naslednji formuli:
Brb =ne×Bre Kjer velja, da je:
• Brb nagrada omreˇzja za ustvarjen blok;
• ne ˇstevilo potrjevalcev ustvarjenega bloka;
• Bre pekova nagrada za vsako potrditev bloka.
Za blok z visoko prioriteto veljaBre = 1,25XT Z in za blok z nizko prioriteto Bre= 0,1875XT Z [26]. ˇCe izraˇcunamo omreˇzno nagrado za blok z visoko prioriteto, dobimo 40 XTZ:
Brb = 32×1,2500 = 40
Potrjevalci lahko preverijo bloke, ki so jih izdelali drugi peki, tako da v omreˇzje poˇsljejo operacijo potrdi (ang. endorse). Vsak blok ima lahko do 32 potrditvenih reˇz, ki jih zapolni 32 razliˇcnih potrjevalcev; ker pa se pravice potrjevanja dodeljujejo nakljuˇcno, je mogoˇce, da bo lahko potrjevalec doloˇcen blok potrdil veˇc kot enkrat.
Potrjevalci so nagrajeni za vsako potrditev bloka po naslednji formuli:
Er=ns×Erb Kjer velja:
• Er nagrada omreˇzja za potrjen blok;
• ns ˇstevilo zapolnjenih potrditvenih reˇz;
• Erb potrjevalˇceva nagrada za vsako potrditev bloka.
Za blok z visoko prioriteto velja Erb = 1,25 XT Z in za blok z nizko prioritetoErb = 0,833333 XT Z [26]. Skupna nagrada za potrditev bloka z visoko prioriteto je enaka kot omreˇzna nagrada za ustvarjen blok. Ta vrednost se razdeli med vse potrjevalce sorazmerno z njihovim ˇstevilom zapolnjenih reˇz.
Obtoˇzbe lahko vloˇzi vsak obtoˇzevalec, ˇce ugotovi, da sta bili na bloku za isto potrditveno reˇzo izvedeni dve potrditvi ali ˇce je pek ustvaril dva bloka z isto viˇsino.
Obtoˇzeni pek ali potrjevalec izgubi celoten varnostni depozit in nagrade, ki jih je zasluˇzil pred obtoˇzbo v ciklu. Polovica ˇzetonov se v tem primeru zavrˇze, polovica pa gre obtoˇzevalcu v obliki nagrade za ustvarjen blok. Obtoˇzevalec lahko namreˇc obtoˇzbo sproˇzi le, ko je na vrsti, da ustvari nov blok, v katerega doda operacijo obtoˇzi (ang.
accuse).
Ustvarjeni bloki so zdruˇzeni v cikle. Vsak cikel vsebuje 4096 blokov, kar pomeni, da traja pribliˇzno tri dni. Stanje zvitkov se zajame vsakih 256 blokov, s tem se pravice peˇcenja posodobijo ˇsestnajstkrat na cikel. Vse spremenljivke se lahko z glasovanjem spreminja. Mehanizem ustvarjanja blokov upoˇstevamo v fazi analize 5.1 in testira-nja 5.6 vozliˇsˇca, kjer doloˇcamo zahteve za merjenje uspeˇsnosti in razloˇzimo rezultat zanesljivosti vozliˇsˇca.