

zkEVM, czyli Zero-knowledge Ethereum Virtual Machine. Maszyna wirtualna, generująca dowody zerowej wiedzy w celu weryfikacji programów. Czym jest, jak działa oraz jakie ma powiązanie z Layer 2 Ethereum – to temat naszej dzisiejszej lekcji. Zaczynamy!
Definicja zkEVM
ZkEVM to część Zero-knowledge rollups – rozwiązań, które skalują warstwę drugą Ethereum. Poprawiają przepustowość, przenosząc obliczenia i przechowując je poza łańcuchem głównym. Zk-rollupy przesyłają dane transakcyjne do Ethereum wraz z dowodami zerowej wiedzy, weryfikując jednocześnie ważność transakcji w trybie off-chain. Co ważne, zkEVM mają możliwość budowania inteligentnych kontraktów w taki sposób, który obsługuje technologię zerowej wiedzy. Wcześniejsze zk-rollupy nie miały takiej możliwości. Były ograniczone i służyły głównie do wymiany tokenów i płatności. Jednakże, wraz z rozwojem technologicznym i wprowadzeniem wirtualnych maszyn kompatybilnych z zkEVM, zk-rollupy zaczęły wspierać Ethereum dApps.
ZkEVM są kompatybilne z EVM. Żeby dokładnie zrozumieć, jak działają, musimy wyjaśnić, czym jest EVM. EVM, czyli Ethereum Virtual Machine – środowisko runtime, w którym powstają inteligentne kontrakty, wdrożone w sieci Ethereum.
Możesz sobie wyobrazić, że EVM-y to taki światowy komputer, który zasila dAppsy, działające na blockchainie Ethereum. Wszystkie technologie kompatybilne z EVM to takie, które mogą uruchamiać programy stworzone do działania w środowisku EVM. zkEVM są jedną z takich technologii, ponieważ mogą uruchamiać inteligentne kontrakty w środowisku Ethereum bez modyfikacji logiki bazowej.
Jak działa EVM i zkEVM?
Aby zrozumieć, jak działa zkEVM musimy najpierw przyjrzeć się działaniu samego EVM. Ethereum Virtual Machine – maszyna stanowa, która przechodzi ze „starego stanu” do nowego, bazując na danych wejściowych. Realizując inteligentny kontrakt w tym ekosystemie, wywołujemy zmianę EVM. Branżowo nazywamy to „przejściem stanu”. Co zatem dzieje się podczas transakcji wykonywanej za pomocą inteligentnego kontraktu w EVM? Przyglądnijmy się.
- Kod bajtowy danego inteligentnego kontraktu przechodzi do EVM i jest wykonywany przez węzeł peer-to-peer. Węzły używają identycznych danych wejściowych do transakcji. Mamy więc gwarancję, że każdy z węzłów osiągnie ten sam wynik i osiągnie konsensus.
- EVM Opcodes (inaczej: bytecodes) mogą współpracować z pamięcią, magazynem i stosem ekosystemu EVM. Wykonują operacje odczytu i zapisu.
- Opcodes EVM wykonują dokładne obliczenia, bazując na danych wejściowych uzyskanych z magazynu stanu. W efekcie EVM przechodzi na nowy stan (tzw. przejście stanu, o którym pisaliśmy wcześniej).
Biorąc pod uwagę powyższe informacje, łatwiej będzie Ci zrozumieć zkEVM. One również są wirtualną maszyną (podobnie jak EVM), która przechodzi pomiędzy stanami, nawiązując do operacji, które wykonuje program. Z tą jednak różnicą, że zkEVM idzie dalej – wytwarza dowód, który jest dla nas poświadczeniem poprawności dokonanych obliczeń. Udowadnia, że wykonane wcześniej operacje podążały za danymi wejściowymi i regułami przyjętymi w protokole. Podsumowując:
- zkEVM generuje dla nas dowód zerowej wiedzy, aby zweryfikować elementy na różnych etapach obliczeń.
- Ma dostęp do bajkodu i odpowiada nam na pytanie, czy odpowiedni kod programu został załadowany poprawnie i z jakiego adresu pochodzi.
- zkEVM informuje, czy program poprał właściwe wartości z odpowiedniego stanu, przed dokonaniem jakichkolwiek obliczeń.
- I finalnie – czy opcody były wykonywane jeden po drugim, bez pomijania któregokolwiek etapu.
Jak zbudowany jest zkEVM?
W środowisku zkEVM wyróżniamy aż trzy części:
- Część wykonawczą, gdzie inteligentne kontrakty są uruchamiane w środowisku zkEVM. Na tym etapie zkEVM pobiera stany początkowe i bieżące transakcje, aby na końcowym etapie wprowadzić aktualny stan.
- Obwód udowadniający. To tutaj następuje produkcja dowodów zerowej wiedzy, które weryfikują ważność transakcji, obliczonych w części wykonawczej.
- Weryfikacja. Czyli nasza ostatnia część, w której zk-rollupy przekazują dowody ważności do inteligentnych kontraktów, wdrożonych na L1 Ethereum w celu weryfikacji. Następnie weryfikator jeszcze raz przeprowadza obliczenia i potwierdza, że są one poprawne.
Ciekawostka: Kody operacyjne zkEVM to maszynowe instrukcje niskopoziomowe, których używamy do wykonywania programów w zk-rollupie. Są one niezbędne, ponieważ zwykłe kody operacyjne EVM są nieefektywne w przypadku dowodów zerowej wiedzy.
zkEVM jako ważny element ekosystemu EVM
W pełni funkcjonalny zkEVm zachęci do rozwoju projekty, zbudowane na zk-rollupy, które będą kompatybilne z EVM. A to niesie już za sobą stos innych korzyści. Zaliczymy do nich:
- Zwiększy przepustowość i skalowalność.
- Zmniejszy koszty.
- Przyśpieszy finalizację na blockchainie i zwiększy jego efektywność.
- Pomoże zwiększyć wykorzystanie efektów sieciowych, jakie daje Ethereum.
Rodzaje zkEVM
Warto wiedzieć, że obecnie projekty zkEVM dzielą się na dwie kategorie.
- zkVM, które wspierają natywne kody operacyjne EVM.
- zkVM, które do działania używają niestandardowych kodów operacyjnych EVM.
Poniżej wyjaśnimy sobie, jakie są i jak działają różne protokoły zkEVM.
Polygon zkEVM
Polygon Hermez, czyli Polygon zk-rollup, ze wbudowaną maszyną wirtualną o zerowej wiedzy. Ma wspierać kompatybilność EVM. Aby to zrobić, kod bajtowy EVM musi być kompatybilny z mikroopkodami i zostać wykonany w uVM (również maszyna wirtualna, wykorzystująca dowody SNARK i STARK). Polygon Hermez zkEVM wykorzystuje dowód STARK do wygenerowania dowodów ważności dla przejścia stanów. STARK weryfikuje poprawność dowodów STARK i przekazuje je do Ethereum w celu ponownej weryfikacji.
zkSyncEVM
To nic innego jak kompatybilny z EVM zk-rollup. Został opracowany przez Matter Labs i jest zasilany przez własny zkEVM. Osiąga kompatybilność z Ethereum na poziomie używanego języka programowania, a nie bajtkodu.
Scroll zkEVM
Jest ciągle w fazie rozwoju. Zgodnie z informacjami uzyskanymi od deweloperów, Scroll zkEVM będzie używał tzw. akumulatora kryptograficznego, aby w pełni zweryfikować poprawność przechowywania. W efekcie udowodni, że kod bajtowy kontraktu został poprawnie załadowany z podanego wcześniej adresu.
AppliedZKp zkEVM
AppliedZKP ma opracować zk-rollup kompatybilny z EVM, a także mechanizm do generowania dowodów ważności dla bloków Ethereum. Cały projekt jest finansowany przez Ethereum Foundation.
Podsumowanie
Większość zkEVM wciąż jest na etapie badań, produkcji i szukania optymalnych rozwiązań. Jednak rosnące zapotrzebowanie na dowody zerowej wiedzy na pewno przyśpieszy cały ten proces.