Heimdall

Wszechwidzący i wszechosłyszący ochraniacz Matic

Kredyty: Pepakura Helmet Heimdall firmy GimpeeIndustries

Matic Network ma trójwarstwową architekturę bezpieczeństwa, w którą zaangażowane są następujące podmioty:

1) Producenci bloków - łańcuch BOR Baka: biorą udział w grupowaniu transakcji w blokach, aby zapewnić krótszy czas potwierdzenia

2) Warstwa walidatora - alias Heimdall: Są to węzły walidatora, które grupują bloki produkowane przez producentów bloków i pchają je do Ethereum

3) Obserwatorzy sieci - są uczestnikami Ethereum i wykorzystują dowody oszustwa, aby zakwestionować każdą transakcję, którą uznają za nieuczciwą w łańcuchach bocznych.

Matic Network - uproszczony schemat architektury

Aby uzyskać lepszy kontekst dotyczący architektury Matic, zapoznaj się z artykułem:

Przygotuj się na głębokie zanurzenie w Heimdall!

Heimdall to duża grupa węzłów walidacyjnych, które służą jako pomost łączący łańcuch Ethereum i Bor. Każdy może zostać walidatorem i uruchomić węzeł walidatora w łańcuchu Matic, stawiając na łańcuch Ethereum.

Obowiązki podmiotów zatwierdzających w ramach Heimdall obejmują:

  1. Weryfikacja transakcji w blokach utworzonych przez węzły producenta bloku
  2. Tworzenie korzenia Merkle zawierającego co najmniej 256 bloków
  3. Osiągnięcie konsensusu między walidatorami i zepchnięcie korzenia Merkle do Ethereum
  4. Komunikowanie się z innymi węzłami walidatora i osiąganie konsensusu w sprawie zestawu bloków, które mają zostać uwzględnione w punkcie kontrolnym
  5. Wszyscy walidatorzy po otrzymaniu punktu kontrolnego sprawdzają, czy odpytuje ich węzły producenta bloku, czy korzeń Merkle w punkcie kontrolnym pasuje do korzenia Merkle, który wyprodukowali dla tego samego zestawu bloków
  6. Przesunięcie punktu kontrolnego do łańcucha głównego po jego zatwierdzeniu przez 2/3 większości walidatorów na Heimdall
Tak wygląda punkt kontrolny

Łańcuch Heimdall dba o to, aby węzły producentów bloków nie popełniły żadnego oszustwa, dlatego nie ufają żadnej informacji otrzymanej od Bora. Heimdall opiera się wyłącznie na Ethereum jako źródle prawdy, ponieważ wszystko, począwszy od przychodzących nowych walidatorów, wychodzących z walidatorów, po dystrybucję nagród do walidatorów itp. Dzieje się w łańcuchu Ethereum. Po wykonaniu czynności związanej z walidatorem na inteligentnej umowie, walidator może przesłać transakcję WalidatorJoin lub validatorExit lub validatorUpdate na Heimdall. Wszyscy walidatorzy sprawdzają inteligentną umowę, która zarządza walidatorami i sprawdza transakcje na Heimdall.

Oto niektóre z problemów, które napotkaliśmy podczas projektowania węzła walidatora:

  1. Ethereum i Heimdall są na pewno przyjaciółmi, ale nie dzielą się ze sobą „stanami”, dlatego dzielenie się informacjami między tymi dwoma rozłącznymi łańcuchami jest trudne.
  2. Ethereum przechowuje wszystkie informacje o tym, kogo Heimdall wyznaczył jako osoby zatwierdzające, ale nie ma pojęcia, który podmiot zatwierdzający zdecyduje wnioskodawcę o następnym punkcie kontrolnym.
  3. Walidatorzy na Heimdall muszą udowodnić, że uzgodnili punkt kontrolny, podpisując się na nim. Podpisy byłyby sprawdzane w łańcuchu, Tendermint używał 25519krzywej jak bitcoin, podczas gdy Ethereum używa secp256k1, więc musiała zostać wykonana zmiana schematu podpisu w łańcuchu Tendermint, aby był kompatybilny z Ethereum.
  4. Dane o inteligentnych zmianach kontraktu, gdy walidatory wchodzą, wychodzą i pojawiają się nowe zmiany stanu. W jaki sposób nowo zsynchronizowany węzeł ma sprawdzać transakcje wymagające interakcji z innym łańcuchem w takich przypadkach?

Utrzymanie synchronizacji między Ethereum i Heimdall jest trudne, ale nie niemożliwe. W trakcie opracowywania opracowaliśmy kilka metod rozwiązania tych problemów. Aby wykonać tę pracę elegancko, zajęło nam wiele iteracji na desce kreślarskiej.

Oto jak działa teraz wysyłanie punktu kontrolnego przez Heimdall:

  1. Wnioskodawca wybrany z puli walidatora tworzy punkt kontrolny, obliczając korzeń Merkle co najmniej 256 bloków podczas weryfikacji transakcji w blokach.
  2. Wnioskodawca proponuje punkt kontrolny dla wszystkich walidatorów. Punkt kontrolny zawiera meta informacje na jego temat, dzięki czemu wszystkie inne weryfikatory mogą go zweryfikować.
  3. Wszyscy walidatorzy po otrzymaniu punktu kontrolnego sprawdzają, czy korzeń Merkle dla podanych bloków pasuje do tego, co mają.
  4. Jeśli punkt kontrolny jest prawidłowy, weryfikatorzy używający plotek silnika konsensusowego Tendermint głosują między sobą.
  5. Gdy punkt kontrolny otrzyma głosy od 2/3 wszystkich walidatorów, punkt kontrolny jest w kolejce na Heimdall i wysłany do Ethereum.
  6. To wtedy wnioskodawca podnosi głosy i przekazuje je na Ethereum, udowadniając inteligentny kontrakt, że punkt kontrolny osiągnął konsensus w sprawie Heimdall.
  7. Inteligentna umowa dotycząca łańcucha Ethereum prowadzi rejestr liczby otrzymanych punktów kontrolnych i tego, kto je przesłał, oraz innych istotnych danych.
  8. Gdy transakcja na Ethereum zakończy się powodzeniem, wnioskodawca wysyła kolejną transakcję na Heimdall o nazwie ACK; który zawiera numer punktu kontrolnego, który został przypisany do punktu kontrolnego przez inteligentną umowę wszystkim podmiotom zatwierdzającym, że transakcja punktu kontrolnego została zaakceptowana przez Ethereum.
  9. Wszyscy są tak sceptyczni wobec Heimdall, że sami sprawdzają w Ethereum, czy punkt kontrolny ma rację, czy nie, i dopiero wtedy przetwarzają transakcję. Wynika to z powiedzenia: „Nie ufaj. Zweryfikuj ”do rozruchu.
  10. I wreszcie punkt kontrolny zostaje potwierdzony na Heimdall

Ale ale… Ale co jeśli wnioskodawca nie przedstawi punktu kontrolnego?

11. Po określonym czasie kolejni walidatorzy w linii wysyłają transakcję NoAck do wszystkich walidatorów, sygnalizując, że punkt kontrolny nie był od dawna poddawany inteligentnej umowie i chcą wysłać punkt kontrolny.

12. Heimdall sprawdza, czy jest to prawdą, i umożliwia kolejnemu wnioskodawcy w celu ponownego uruchomienia procesu

Ten dwufazowy punkt kontrolny pozwala nam z łatwością zsynchronizować oba łańcuchy i pomaga nam karać wnioskodawców, którzy nie przesłali punktu kontrolnego, i nagradza dobrych walidatorów.

Mamy nadzieję, że ten post zawiera omówienie interakcji warstwy Validator z Ethereum. Będziemy kontynuować tę serię, aby dać ci głębszy wgląd w Heimdall.

Niech Heimdall będzie królował długo!

Połącz się z nami

Strona internetowa | GitHub | Twitter | Telegram | Reddit | Youtube

Poprzednie publikacje