Ovaj je članak dio Dva Točka Nula serijala u kojem objašnjavamo koncepte iz Ethereuma 2.0, sada poznatog pod imenom Serenity. U ovom ćemo dijelu objasniti koncept Beacon lanca.

Znanje koje vam je potrebno za razumijevanje sadržaja koji slijedi je samo ovaj kratki članak o validatorima. Do sada vjerojatno znate razliku proof of stake i proof of work algoritma za osiguranje mreže, ali ako vam je i to nepoznato, svakako preporučamo pročitati ovaj uvod.

Zavalite se u fotelju: noge u zrak i kava u ruke – naučimo nešto novo!

Beacon Lanac

Beacon lanac je novi blockchain u središtu sljedeće verzije Ethereuma.

Jedna od odgovornosti ovog lanca je bilježenje aktivnih Validatora koji grade blockchain umjesto trenutnih rudara. Druga je spremanje referenci na stanje shardova.

Odgovornost 1: Portal za Staking

Ulazak u Proof of Stake raditi će se preko registracijskog ugovora na trenutnom Proof of Work Ethereum lancu jer je u planu da ta dva lanca žive jedan uz drugog neko dogledno vrijeme (cca 2 godine).

Taj će pametni ugovor prihvaćati točno 32 ethera kroz jednu registracijsku funkciju koja će emitirati “event” (događaj) koji će biti ekvivalentan članskoj iskaznici tog validatora. Bitno je napomenuti da će ovo biti jednosmjerna razmjena, dakle, možete samo poslati 32 ethera na beacon chain registracijski ugovor, ne i nazad. I ako vam to zvuči čudno i kao da će istovremeno postojati dva različita ethera, u pravu ste, no više o tome u priči o dva ethera.

Napomenimo i da će se nakon pune tranzicije u PoS sustav tj. jednom kad se PoW lanac prebaci u legacy shard ili arhivni ugovor (više o tome u Dva Točka Nula: Legacy Shard) sve ovo odvijati isključivo na beacon chainu i generalno biti puno uređenije i manje konfuzno.

Jednom kad je registriran na beacon lancu, validator može biti nasumično odabran da validira jedan do dva sharda (za detalje o tom aspektu, vidi članak o validatorima). Validator će spajati podatke iz shardova kojima je dodijeljen s podacima s Beacon lanca i predlagati novi block ili potvrditi / odbiti blokove nekih drugih validatora, tako dugo dok sam taj validator ne dođe na red da predlaže (jedan ciklus).

Da ponovimo: beacon chain nema podatke – neće spremati stanja računa, lokacije tokena, stanje dappova niti bilo kakve druge informacije koje Ethereum lanac trenutno sprema. Prvo, sprema popis validatora u sustavu. Drugo, sprema atestacije.

Odgovornost 2: Spremanje atestacija

Čega…?

Atestacije su potvrđeni i od strane validatora potpisani hashevi koji predstavljaju trenutno stanje nekog sharda. Pojednostavimo tu kompleksnu tvrdnju.

Kada nešto hashirate, pretvarate to u niz slova i brojki koji se u potpunosti mijenja kad se u originalu desi i najmanja promjena. Npr. ako otvorite ovaj hash generator i napišete “Hell”, hash ispod polja za upis biti će potpuno drugačiji ako dodate “o” da biste dobili “Hello”.

Ako promijenite i samo jedan jedini piksel u Full HD slici i hashirate je, hash će biti potpuno drugačiji od onoga koji dobivate kada hashirate originalnu sliku. To znači da i najmanja promjena uzrokuje vrlo očite efekte.

Da ne ulazimo previše u koncept shardova, smatrajte ih podacima na kojima izvršavamo određene operacije (poput promjena stanja računa, popisa tko ima koliko tokena, promjena vlasništva NFTova itd.). Shardovi su blockchainov tvrdi disk. Svaki put kada se stanje nekog sharda promijeni – čak i ako se radi o samo jednom računu – njegov se hash mijenja u potpunosti. Taj se hash sprema na beacon lancu kao kontrolna točka (atestacija) za trenutno stanje tog sharda. Drugim riječima, kad god se dogodi neka promjena u podacima nekog sharda, ta se promjena sprema na beacon lanac u obliku novog hasha. Time shardovi mogu pratiti međusobne promjene preko beacon lanca što omogućuje asinkronu komunikaciju između shardova. Zašto je to bitno i kako funkcionira biti će objašnjeno u Dva Točka Nula: Sharding članku.

Odavde dolazi beacon (svjetiljka) u beacon lancu. Kao svjetionik u maglovitoj luci, beacon u beacon chainu pomaže shardovima da se međusobno nađu, i validatorima da ih obrađuju.

Beacon čvorovi i Validatori

Sada se vjerojatno pitate kako će sve to utjecati na čvorove za rudarenje i validaciju, i mijenja li se i njihova terminologija. Odgovor je: da 😱

Postoje dva tipa “čvorova” kojih sada treba biti svjesni, svaki s podtipovima koje nećemo pokriti u ovom članku.

Beacon čvorovi validiraju validatore, spajaju njihove potpise (tj. kad se radi o mnogo validatora, oni šalju svoje javne ključeve koje je potrebno spojiti i obraditi odjednom), preuzimaju potrebne podatke s kojima gradimo nove blokove i šalju te podatke validatorima. Beacon čvorovi su ekvivalentni rudarima u trenutnom sustavu, ali za to ne bivaju nagrađeni.

Validator klijenti mogu, s druge strane, u teoriji biti jako maleni programi koji se vrte čak i na mobilnim uređajima – poput onoga kakav se gradi u Nimbus-u. To su programi čija je jedina funkcija da ostanu spojeni na internet i drže Ether stakeanim (uloženim) – stabilna internet veza je potrebna jer validator treba redovito potpisivati blokove i atestacije i slati ih u mrežu za provjeru drugima. Validatori grade blokove od podataka koje im prosljeđuje beacon čvor na koji su povezani. Validatori također trpe posljedice izgradnje krivih blokova, ili bivanja offline: u tom se slučaju dešava slashing – rezanje uloga, tj. gubljenje dijela uloga od 32 ethera. Validatori u početku neće raditi na nečemu poput mobitela (često pisanje na i čitanje s diska ubilo bi i disk i bateriju). Na optimizacijama će se raditi kasnije.

Postoje i drugi tipovi čvorova – “laki” klijenti, “ultralaki” klijenti, stateless čvorovi, čvorovi punih arhiva koji služe za vraćanje podataka koji su odstranjeni iz blockchaina zbog neplaćanja najma prostora (više o tome u Dva Točka Nula: Najam), itd. Kroz sve njih proći ćemo detaljno.

Nimbusova implementacija

Nimbus tim trenutno radi na više komponenti Beacon Chain specifikacije.

Glavnina odrađenog posla je u nim-beacon-chain repozitoriju koji je odvojen od glavnog Nimbus repozitorija jer je potonji zasebna implementacija za testiranje krajem prosinca 2018, te će tek kasnije biti spojen s glavnim proizvodom za demonstraciju i spajanje s klijentima drugih timova u ožujku 2019.

Trenutno najveće blokade kod finalizacije Nimbusa su nedefinirani dijelovi specifikacije. Svi timovi koji trenutno rade na klijentima za Ethereum 2.0 protokol žele kvalitetnu komunikaciju kako između članova tako i između klijenata i bez detaljnih specifikacija to nije moguće. Šema postizanja nasumičnosti (vidi Dva Točka Nula: nasumičnost) također nije potpuno razjašnjena. Nadalje, ni način na koji se bira koji lanac odabrati u slučaju konfliktnih blokova nije u potpunosti definiran.

Trenutno svi timovi rade ovo:

Zaključak

U prva dva dijela Dva Točka Nula serijala bilo je mnogo sadržaja za absorbirati – Validatori i Beacon lanac su u srži novog Ethereuma i bitno je da ih shvatite u potpunosti.

Ubuduće, članci će biti daleko manji i specifičniji ali generalni aspekti novog sustava predstavljenog do sada vjerojatno neće prolaziti kroz veće promjene i čine dobru podlogu za objašnjavanje tih koncepata drugima – probajte! Ukoliko još uvijek nešto ne shvaćate, slobodno me kontaktirajte na Twitteru.

Ukratko: Beacon chain je glavni lanac Ethereuma 2.0 na koji se svi shardovi spajaju i preko kojeg komuniciraju. Kroz Beacon lanac se ulazi u staking sustav, sustav ulaganja (vidi Dva Točka Nula: Ekonomija), ali taj je lanac isto tako način na koji se postiže komunikacija među shardovima koji služe kao baza podataka blockchaina i spremaju svoje hasheve u beacon lanac. Beacon čvorovi su graditelji novih blokova preko validatora koji ih predlažu ili potvrđuju.

U sljedećem dijelu objasniti ćemo priču o dva ethera (i ne, ne mislim pritom na Ethereum Classic!)

LEAVE A REPLY

Please enter your comment!
Please enter your name here