Categories
Kryptowaluty

Czym jest technologia Zero Knowledge? Nowy trend w świecie krypto!


Technologia Zero Knowledge (ZK) od kilku lat pozycjonuje się jako lider w skalowalności blockchainów. Wraz z dojrzewaniem rozwiązań skalowania, wiele adaptacji ZK ujawnia się, jednak wiele osób może mieć trudności z zrozumieniem, jak działają te rozwiązania. W tym artykule mamy nadzieję zdemistyfikować technologię ZK, aby nasi czytelnicy mogli lepiej zrozumieć przyszłość  kryptowalut.

Co to jest ZK Rollup?

Rollup to rozwiązanie skalowania warstwy L2, które działa poza główną warstwą L1 (w większości przypadków Ethereum, ale wkrótce także na Celestii). To rozwiązanie wykonuje transakcje poza łańcuchem bloków, co oznacza, że nie musi konkurować o cenne miejsce w blokach na warstwie L1. Po wykonaniu transakcji zostanie wysłana partia danych transakcyjnych (Optymistyczna) lub dowód wykonania (ZK) na warstwę L1, gdzie zostanie rozliczona.

Dlatego też rozwiązania skalowania warstwy L2 są zabezpieczane tymi samymi środkami bezpieczeństwa co na warstwie L1, ponieważ warstwa dostępności danych (DA) lub warstwa rozliczeniowa działa jako źródło prawdy dla rollup.

ZK Rollupy to w szczególności rozwiązanie, które wykorzystuje dowody poprawności, aby skalować obliczenia: każda partia transakcji jest dostarczana z kryptograficznym dowodem (SNARK, Kimchi, STARK itp.), który jest weryfikowany przez inteligentny kontrakt Ethereum, często nazywany mostem L2. W ten sposób każda pojedyncza transakcja jest w pełni weryfikowana przez wszystkie węzły Ethereum przed sfinalizowaniem bloku.

Co to jest zkEVM i jak działa?

zkEVM to wirtualna maszyna, która wykonuje inteligentne kontrakty EVM zgodnie z obliczeniami ZKproof. Istnieje wiele typów zk(E)VM, które różnią się stopniem zgodności z EVM, czyli zgodnością na poziomie Solidity/Vyper lub kodu bajtowego EVM, a także stopniem pełnej zgodności ze specyfikacją EVM.

Aby wdrożyć inteligentny kontrakt na łańcuchu Ethereum, kod Solidity/Vyper musi zostać skompilowany na kod bajtowy EVM. Dla większości istniejących zkEVM, takich jak Hermez i ZKSync, różny kod bajtowy jest uruchamiany przez interpreter/kompilator, który odzwierciedla wszystkie funkcje kodu bajtowego EVM, ale nie jest to kod bajtowy w pełni równoważny z EVM.

W przypadku pełno-wymiarowego zkEVM, dowód poprawności śladu wykonania EVM jest wykonywany w obwodzie. Głównym celem zkEVM jest udowodnienie poprawności i spójności każdej instrukcji w śladzie wykonania. W ten sposób budowane są opkod EVM dla opkodu zkEVM.

Wykorzystanie różnych typów zkEVM ma znaczenie z powodu kompatybilności narzędzi z EVM i na poziomie kompromisu bezpieczeństwa, ponieważ dodanie dodatkowych warstw złożoności powoduje pojawienie się nowych podatności.

Sposób działania tych rozwiązań jest stosunkowo prosty.

Należy zauważyć, że kod inteligentnego kontraktu napisany w językach wysokiego poziomu, takich jak Solidity/Vyper, musi zostać skompilowany na kod bajtowy EVM, aby mógł być wdrożony na łańcuchu Ethereum. Aby zapewnić kompatybilność z EVM, kod Solidity/Vyper jest przekształcany w kod bajtowy maszyny wirtualnej, a następnie dowód poprawności śladu wykonania jest wykonywany w obwodzie.

W większości istniejących rozwiązań zkEVM, takich jak Hermez i ZKSync, różny kod bajtowy jest uruchamiany przez interpreter/kompilator, który odzwierciedla wszystkie funkcje kodu bajtowego EVM, ale nie jest to kod bajtowy w pełni równoważny z EVM. Dlatego ZK Rollupy kompatybilne z EVM kompilują Solidity/Vyper na kod bajtowy docelowej maszyny wirtualnej, a nie na EVM.

 

Dlaczego to ma znaczenie?

To ma znaczenie z powodu kompatybilności narzędzi z EVM i na poziomie kompromisu bezpieczeństwa, ponieważ dodanie dodatkowych warstw złożoności powoduje pojawienie się nowych podatności.

Mając to na uwadze, wykorzystajmy diagram Vitalika, który przedstawia różne rodzaje zkEVM i wtyka istniejące rozwiązania:

Główną częścią Scroll jest ich zkEVM, który jest wykorzystywany do dowodzenia poprawności wykonania EVM na ich ZK Rollup. Budowali go równolegle z grupą Explorations (PSE) w ramach Ethereum Foundation (która również pracuje nad ZK-EVM, który dąży do pełnej równoważności Ethereum).

ZkEVM Scroll’a będzie w stanie udowodnić poprawność śladu wykonania pobranego z Geth (klient wykonania Ethereum w Go – szeroko stosowany). Ich podejście jest ściśle związane z Ethereum. Dzięki temu dostosowaniu do Ethereum, umożliwiają minimalizację dodatkowych powierzchni ataku (poprzez ponowne wykorzystanie kodu i trzymanie się jak najbardziej specyfikacji Ethereum), jednocześnie maksymalizując kompatybilność z istniejącymi narzędziami.

Projekt Polygon ma unikalny projekt, ponieważ używa tłumacza, który przetwarza kody operacyjne EVM na ich własny język asemblera zwany zkASM, który następnie jest weryfikowany za pomocą ZK. Oznacza to, że jest on kompatybilny z EVM, ale używa wewnętrznej logiki do weryfikacji kodu EVM.

Podejście ZKSync i Hermez do budowania zkVM jest dość podobne – oba dążą do kompatybilności z EVM, czyli zgodności z Solidity/Vyper. Zamiast podejścia Scroll, w którym przetwarza się inteligentne kontrakty Solidity i kompiluje się je na kod bajtowy EVM, kod Solidity jest przetwarzany i kompilowany na kod bajtowy zkSync. 

Bajtkod wirtualnej maszyny jest inny niż EVM bytecode. Dla programisty to nie robi dużo różnicy, ale wprowadza to pewne przeszkody i potencjalne podatności w systemie, podobne do przypadku Hermez. Mimo to, po prostu bierze się kod, kompiluje go i otrzymuje się kod bajtowy, który można wdrożyć. 

Ten kod bajtowy jest zoptymalizowany do pracy w systemach ZK. ZKSync obsługuje Solidity na poziomie kodu źródłowego, co przyspiesza czas dowodzenia ZKP dzięki przyjaznemu językowi/VM dla ZK.

ZKSync pracuje także nad rozwiązaniem typu validium dla swojego DA, zwanym ZKPorter, który przechowuje dane wywołania i zapewnia dostępność podstawowych danych transakcyjnych potrzebnych do odtworzenia stanu poza siecią Ethereum. Dane te pozostają dostępne dzięki PoS, gdzie stakeholderzy to posiadacze tokenów zkSync.

Najbliżej uruchomienia głównego łańcucha znajduje się Hermez, który planuje to w ciągu następnych kilku miesięcy.

Starkware posiada projekt Warp dla kompilacji języka Solidity do języka Cairo firmy Starkware, przekształcając StarkNet w system „zgodny z EVM”. Na razie Starkware używa specjalizowanego zkVM ze swoim własnym językiem dziedzinowym (Cairo), który jest przyjazny dla tworzenia aplikacji na zkVM.

Podsumowując, każdy zkEVM dokonuje różnych kompromisów, aby osiągnąć korzyści pod względem kompatybilności lub wydajności. Ostatecznie to od deweloperów aplikacji zależy, co jest najlepsze dla ich konkretnego zastosowania, a istnieje miejsce dla kilku różnych typów rozwiązań dla tego samego problemu, jakim jest tworzenie zkEVM odpowiednich dla określonego typu produktu.

Kilka słów od Kantoru

 

Dziękujemy za twój czas! Jeżeli jesteś zainteresowany dywersyfikacją swojego majątku poprzez zakup topowych kryptowalut, lepiej nie mogłeś trafić.

Zapraszamy Cię do naszego kantoru online, lub jeśli ci wygodniej do naszego stacjonarnego kantoru kryptowalut..Prosto i intuicyjnie przeprowadzimy Cię przez cały proces zakupowy.

Jeżeli masz jakiekolwiek pytania odnośnie zakupu swoich pierwszych kryptowalut,  zapraszamy do kontaktu. Z chęcią odpowiemy na twoje pytania:)

PS. Zapraszamy do zajrzenia na naszą stronę i sprawdzenia poprzednich artykułów.

Do zobaczenia!

 

 

 

 

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *