Wprowadzenie
W poprzednim wpisie na blogu krótko przedstawiliśmy nasz protokół, ZKCross, który ma na celu bezproblemowe połączenie Web2 i Web3 bez dodawania zbędnej złożoności. Podkreśliliśmy również bieżące problemy nękające branżę Web3, które utrudniają prawdziwą decentralizację, wydajność i dostępność dla programistów. Ten wpis na blogu zagłębi się w to, jak planujemy przezwyciężyć te problemy i osiągnąć nasz cel płynnego połączenia Web2 i Web3.
Zanim przejdziemy do szczegółów, przypomnijmy sobie, czym jest ZKCross!
Czym jest ZKCross?
ZKCross to przełomowa platforma, której celem jest zniwelowanie luki między dwiema wersjami Internetu, Web2 i Web3. Wykorzystuje maszynę wirtualną WebAssembly o nazwie zkVM i „warstwę zk-shadow”, co ułatwia współpracę różnych części platformy. To podejście pozwala programistom Web2 na korzystanie z języków programowania, takich jak C/C++, Java lub Python.
Nasza platforma wykorzystuje również unikalną warstwę, która bezproblemowo łączy środowiska on-chain i off-chain. Ta warstwa, znana jako „warstwa zk-shadow”, ułatwia połączenie między zkWASM a warstwą on-chain poprzez kontrakty zk-proxy. W rezultacie pozwala nam to przełamać barierę między Web2 i Web3, jednocześnie ułatwiając wysoką przepustowość i dostępność dla każdego użytkownika lub dewelopera.
Cuda technologii zerowej wiedzy
Technologia Zero Knowledge (ZK) odnosi się do klasy protokołów, które pozwalają jednej stronie (dowodzącemu) zademonstrować wiedzę o tajemnicy drugiej stronie (weryfikatorowi) bez ujawniania jakichkolwiek informacji o samej tajemnicy. Koncepcja ta została wprowadzona pod koniec lat 80. i od tego czasu znalazła wiele zastosowań, w tym uwierzytelnianie kryptograficzne. Dowód ZK zazwyczaj obejmuje serię interakcji między dowodzącym a weryfikatorem, podczas których dowodzący przekonuje weryfikatora o znajomości tajemnicy bez jej ujawniania.
Aby protokół mógł zostać uznany za dowód ZK, musi spełniać wymogi kompletności, solidności i zerowej wiedzy. Kompletność oznacza, że uczciwy dowodzący zawsze przekona uczciwego weryfikatora o prawdziwości udowadnianego stwierdzenia. Solidność oznacza, że nieuczciwy dowodzący nie może przekonać weryfikatora o fałszywym stwierdzeniu z dużym prawdopodobieństwem. Wreszcie, zerowa wiedza oznacza, że protokół nie ujawnia weryfikatorowi żadnych informacji o tajemnicy poza tym, że dowodzący ją zna. Oznacza to, że nawet jeśli atakujący przechwyci całą komunikację między dowodzącym a weryfikatorem, nie dowie się niczego o tajemnicy.
Ograniczenia rozwoju ZK dApp
Tworzenie aplikacji ZK może być trudne ze względu na ograniczenia w wyborze języka programowania. Wiele blockchainów używa specjalistycznego języka programowania o nazwie Solidity, dostosowanego do pisania inteligentnych kontraktów. Nie jest to najbardziej przyjazny dla użytkownika język i ma stromą krzywą uczenia się, która może stanowić wyzwanie dla nieznanych programistów Web2. co prowadzi do obaw o dostępność dla tych programistów.
Aby sprostać temu wyzwaniu, deweloperzy badają nowe rozwiązania, które pozwalają na większą elastyczność języka programowania podczas tworzenia aplikacji ZK. Jedno podejście polega na użyciu maszyny wirtualnej WebAssembly (WASM), która umożliwia deweloperom kodowanie w preferowanych przez nich językach programowania wysokiego poziomu, takich jak C/C++, Java lub Python. Pozwala to deweloperom Web2 wykorzystać swoje istniejące umiejętności i doświadczenie do tworzenia aplikacji ZK bez nauki nowych języków programowania. Ponadto opracowywane są narzędzia i struktury (np. ZKCross SDK), które abstrahują część złożoności pisania inteligentnych kontraktów, ułatwiając deweloperom tworzenie bezpiecznych aplikacji ZK.
zkVM, święta trójca rozwoju
ZKVM to skrót od Zero-Knowledge Virtual Machine, technologii używanej w protokole ZKCross, która pomaga programistom Web2 pisać inteligentne kontrakty dla Web3 bez konieczności nauki nowych języków programowania. ZkVM wykorzystuje maszynę wirtualną WASM, która pozwala programistom Web2 kodować w preferowanych przez nich językach programowania. WASM jest niezwykle popularny w aplikacjach internetowych i jest używany we wszystkich znaczących silnikach internetowych. Tak więc korzystanie z zkVM pozwala milionom programistów tworzyć aplikacje gotowe na Web3 bez konieczności stromej nauki. Z drugiej strony zkVM wykorzystuje zk-SNARKs; dowód kryptograficzny, który pozwala jednej stronie udowodnić drugiej stronie znajomość określonej informacji bez ujawniania jakichkolwiek informacji na jej temat. SNARKs zapewniają sposób na walidację obliczeń na blockchainie bez ujawniania poufnych (osobistych) danych, takich jak dane osobowe.
Jedną z głównych zalet SNARK-ów jest ich zwięzłość. W przeciwieństwie do innych typów dowodów ZK, które mogą być bardzo kosztowne obliczeniowo i wymagają wielu rund interakcji między dowodzącym a weryfikatorem, SNARK-y mogą być wysoce wydajne i wymagają tylko jednego dowodu, który można szybko zweryfikować.
Kolejną zaletą SNARK-ów jest ich skalowalność. SNARK-ów można używać do weryfikacji poprawności dużych obliczeń bez ujawniania szczegółów samych obliczeń. Dzięki temu są one szczególnie przydatne do weryfikacji poprawności inteligentnych kontraktów w sieciach blockchain, gdzie obliczenia mogą być bardzo złożone i wymagać wielu zasobów obliczeniowych.
Zalety ZkVM
zkVM oferuje szereg korzyści dla programistów chcących tworzyć zdecentralizowane aplikacje.
Wysoka elastyczność: Dzięki zkVM programiści mogą pisać inteligentne kontrakty w preferowanym języku programowania wysokiego poziomu, C/C++, Java lub Python, zamiast ograniczać się do określonych języków programowania.
Lepsza skalowalność: zkVM umożliwia szybsze wykonywanie transakcji i większą przepustowość, co jest niezbędne do tworzenia skalowalnych, zdecentralizowanych aplikacji.
Zobaczyliśmy modułowość i kompozycyjność: Dzięki zkVM programiści mogą szybko tworzyć złożone, zdecentralizowane aplikacje przy użyciu różnych modułów, nie martwiąc się o kwestie zgodności języka lub platformy.
Zwiększone bezpieczeństwo: zkVM wykorzystuje dowody ZK, znane jako SNARK, w celu zapewnienia wysokiego poziomu bezpieczeństwa poprzez umożliwienie weryfikacji obliczeń bez ujawniania poufnych danych.
Decentralizacja: zkVM promuje decentralizację, umożliwiając wykonywanie inteligentnych kontraktów w sposób rozproszony na wielu węzłach, eliminując w ten sposób potrzebę istnienia organów centralnych.
W kolejnych wpisach na blogu nasz wyjątkowy i rewolucyjny ekosystem zostanie dokładniej opisany, z uwzględnieniem przypadków użycia, szczegółowej analizy architektury i wielu innych aspektów!


