Heimdall

Vatični in zaščitni zavetnik Matic

Zasluge: Pepakura čelada Heimdall podjetja GimpeeIndustries

Matic Network ima triplastno varnostno arhitekturo, v katero so vključeni naslednji subjekti:

1) Proizvajalci blokov —aka BOR veriga: vključeni so v paketne transakcije v blokih, da se zagotovi hitrejši čas potrditve

2) Validatorski sloj - aka Heimdall: To so validacijska vozlišča, ki povežejo bloke, ki jih proizvedejo proizvajalci blokov in jih potisnejo v Ethereum

3) Mrežni opazovalci - igralci so na Ethereumu in uporabljajo dokaze za goljufije, da izpodbijajo vsako transakcijo, za katero menijo, da je lažna.

Matic Network - poenostavljen arhitekturni diagram

Za boljši kontekst Maticine arhitekture glejte članek:

Nastavite se globoko potopite v Heimdall!

Heimdall je velika skupina valiatorskih vozlišč, ki služijo kot most za povezavo verige Ethereum in Bor. Vsakdo lahko postane validator in zažene voznik validatorja v verigi Matic z nalaganjem na verigo Ethereum.

Odgovornosti preveriteljev v okviru Heimdall-a vključujejo naslednje:

  1. Preverjanje transakcij v blokih, ki jih ustvarijo vozlišča proizvajalcev blokov
  2. Ustvarjanje korenine Merkle iz 256 ali več blokov
  3. Doseganje konsenza med valiatorji in potiskanje korenine Merkle do Ethereuma
  4. Komuniciranje z drugimi vozlišči za preverjanje veljavnosti in doseganje soglasja glede niza blokov, ki jih je treba vključiti v kontrolno točko
  5. Vsi preveritelji, ko prejmejo kontrolno točko, preverijo, ali poizvedujejo o svojih vozliščih proizvajalcev blokov, če se koren Merkle na kontrolni točki ujema s korenom Merkle, ki so ga izdelali za isti niz blokov
  6. Potisnite kontrolno točko na glavno verigo, potem ko jo je potrdila 2/3 večina veljavnikov v Heimdall-u
Tako izgleda kontrolna točka

Veriga Heimdall skrbi, da vozlišča proizvajalcev blokov ne zagrešijo nobenih goljufij, zato ne zaupajo nobeni informaciji, ki jo prejmejo od Bora. Heimdall se zanaša le na Ethereum kot vir resnice, saj se vse, od prihajajočih novih validatorjev, do izstopa iz validatorjev, do distribucije nagrad do validatorjev itd., Zgodi v verigi Ethereum. Po izvedbi dejanja, povezanega z validatorjem, na pametni pogodbi lahko validator predloži transakcijo validatorJoin ali validatorExit ali validatorUpdate na Heimdall. Vsi potrjevalci poizvedujejo po pametni pogodbi, ki upravlja potrjevalce in potrjuje transakcije v Heimdall-u.

Tukaj je nekaj težav, s katerimi smo se soočali pri načrtovanju vozlišča validatorja:

  1. Ethereum in Heimdall sta zagotovo prijatelja, vendar si med seboj ne delita "stanj", zato je izmenjava informacij med tema dvema ločenima verigama težavna.
  2. Ethereum hrani vse informacije o tem, kdo je Heimdall imenoval za potrditelje, vendar nima pojma, kateri validator bo odločil predlagatelja za naslednjo kontrolno točko.
  3. Valiatorji v Heimdallu morajo dokazati, da so se na kontrolni točki dogovorili s podpisom. Podpise bi preverjal verižno, Tendermint je uporabljal 25519 krivulje kot bitcoin, medtem ko Ethereum uporablja secp256k1, zato je bilo treba spremeniti shemo podpisov v verigi Tendermint, da bi postala Ethereum združljiva.
  4. Podatki o spremembah pametnih pogodb, ko vstopijo, izstopijo in se pojavijo nove spremembe države. Kako naj bi novo sinhronizirano vozlišče potrdilo transakcije, ki vključujejo interakcijo z drugo verigo v takih primerih?

Vzdrževanje sinhronizacije med Ethereumom in Heimdallom je težko, ni pa nemogoče. Med razvojem smo iznašli več pristopov za reševanje teh vprašanj. Potrebno je bilo veliko iteracij na risalni plošči, da smo to delo naredili elegantno.

Tukaj je opisano, kako trenutno pošiljanje kontrolne točke prek Heimdall-a:

  1. Predlagatelj, izbran iz baze validatorja, ustvari kontrolno točko tako, da izračuna koren Merkle od 256 blokov ali več, medtem ko preverja transakcije znotraj blokov.
  2. Predlagatelj vsem kontrolnikom predlaga kontrolno točko. Kontrolna točka vsebuje meta informacije o njej, tako da jih lahko potrdijo tudi vsi drugi preveritelji.
  3. Vsi preveritelji, ko prejmejo kontrolno točko, preverijo, ali se koren Merkle za dane bloke ujema s tistim, kar imajo.
  4. Če je kontrolna točka pravilna, potrjevalci, ki uporabljajo tračeve s soglasjem Tendermint, glasujejo drug drugemu.
  5. Ko kontrolna točka prejme glasove 2/3 + vseh validatorjev, se kontrolna točka postavi na vrsto Heimdall, ki jo pošljejo v Ethereum.
  6. Takrat predlagatelj pobere glasove in jih odda na Ethereum, s čimer dokaže pametno pogodbo, da je kontrolna točka dosegla soglasje glede Heimdalla.
  7. Pametna pogodba o verigi Ethereum vodi evidenco o tem, koliko kontrolnih točk je bilo prejetih in kdo jih je predložil ter druge bistvene podatke.
  8. Ko je transakcija na Ethereumu uspešna, predlagatelj pošlje še eno transakcijo v Heimdall, imenovano ACK; ki vsebuje številko kontrolne točke, ki je bila s pametno pogodbo dodeljena kontrolni točki vsem potrjevalcem, da je Ethereum transakcijo kontrolne točke sprejel.
  9. Vsi so tako skeptični na Heimdall, da sami z Ethereumom preverijo, ali je kontrolna točka prava ali ne, in šele nato obdelajo transakcijo. Sledi pregovor - "Ne zaupaj. Preveri “do zagona.
  10. In končno je na Heimdallu potrjena kontrolna točka

Ampak vendar ... Kaj pa če predlagatelj ne predloži kontrolne točke?

11. Po določenem intervalu naslednji valiatorji v vrstici pošljejo transakcijo NoAck vsem validatorjem, kar pomeni, da kontrolna točka že dolgo ni bila predložena pametni pogodbi in želijo poslati kontrolno točko.

12. Heimdall preveri, ali je to res, in naslednjim predlagateljem v vrstici dovoli, da ponovno zažene postopek

Ta dvofazna kontrolna točka nam omogoča enostavno sinhronizacijo obeh verig in pomaga kaznovati predlagatelje, ki niso oddali kontrolne točke in nagraditi dobre potrditelje.

Upamo, da vam je ta objava dala pregled nad tem, kako plast Validator vpliva na Ethereum. Nadaljevali bomo to serijo, da vam omogočimo globlji vpogled v Heimdall.

Naj Heimdall kraljuje dolgo!

Povežite se z nami

Spletna stran | GitHub | Twitter | Telegram | Reddit | YouTube

Prejšnje publikacije