Specjalizacja czy generalizacja, która z nich jest przyszłością ZK? Spróbuję odpowiedzieć na to pytanie za pomocą diagramu:
![Specjalistyczne ZK vs. Ogólne ZK](https://coindarwin.com/wp-content/uploads/2024/08/Specialized_ZK_vs_General_ZK-coindarwin.webp)
Jak pokazano na diagramie, czy jest możliwe, abyśmy w przyszłości zbiegli do magicznego optymalnego punktu w układzie współrzędnych kompromisu?
Nie, przyszłość weryfikowalnych obliczeń poza łańcuchem to ciągła krzywa, która zaciera granice między wyspecjalizowanymi i ogólnymi ZK. Pozwólcie, że wyjaśnię historyczną ewolucję tych terminów i sposób, w jaki zbiegną się one w przyszłości.
Dwa lata temu „wyspecjalizowana” infrastruktura ZK oznaczała niskopoziomowe frameworki obwodów, takie jak circom, Halo2 i arkworks. Aplikacje ZK zbudowane przy użyciu tych frameworków były zasadniczo ręcznie napisanymi obwodami ZK. Były szybkie i opłacalne w przypadku określonych zadań, ale zazwyczaj trudne do opracowania i utrzymania. Są one podobne do różnych wyspecjalizowanych układów scalonych (fizycznych płytek krzemowych) w dzisiejszym przemyśle układów scalonych, takich jak układy NAND i układy kontrolerów.
Jednak w ciągu ostatnich dwóch lat wyspecjalizowana infrastruktura ZK stopniowo stawała się coraz bardziej „uogólniona”.
Mamy teraz ZKML, koprocesor ZK i frameworki ZKSQL, które oferują łatwe w użyciu i wysoce programowalne pakiety SDK do tworzenia różnych kategorii aplikacji ZK bez pisania ani jednej linii kodu obwodu ZK. Przykładowo, koprocesor ZK umożliwia inteligentnym kontraktom zaufany dostęp do historycznych stanów, zdarzeń i transakcji blockchain oraz wykonywanie dowolnych obliczeń na tych danych. ZKML umożliwia inteligentnym kontraktom wykorzystywanie wyników wnioskowania AI w sposób pozbawiony zaufania w celu obsługi szerokiej gamy modeli uczenia maszynowego.
Te rozwinięte frameworki znacznie poprawiają programowalność w swoich docelowych domenach, zachowując jednocześnie wysoką wydajność i niskie koszty dzięki cienkim warstwom abstrakcji (SDK/API), które są zbliżone do układów bare-metal.
Są one podobne do GPU, TPU i FPGA na rynku układów scalonych: programowalni specjaliści domenowi.
ZKVM również poczynił ogromne postępy w ciągu ostatnich dwóch lat. Warto zauważyć, że wszystkie ZKVM ogólnego przeznaczenia są zbudowane na niskopoziomowych, wyspecjalizowanych frameworkach ZK. Pomysł polega na tym, że można pisać aplikacje ZK w językach wysokiego poziomu (nawet bardziej przyjaznych dla użytkownika niż SDK/API), które kompilują się do kombinacji wyspecjalizowanych układów i zestawów instrukcji (RISC-V lub podobnych do WASM). Są one jak układy CPU w przemyśle układów scalonych.
ZKVM jest warstwą abstrakcji ponad niskopoziomowymi frameworkami ZK, podobnie jak koprocesory ZK.
Jak powiedziała kiedyś pewna mądra osoba, warstwa abstrakcji może rozwiązać wszystkie problemy informatyczne, ale jednocześnie tworzy kolejny problem. Kompromisy to podstawa. Zasadniczo w przypadku ZKVM wybieramy między wydajnością a ogólnością.
Dwa lata temu wydajność „bare-metal” ZKVM była rzeczywiście słaba. Jednak w ciągu zaledwie dwóch lat wydajność ZKVM znacznie się poprawiła.
Dlaczego?
Ponieważ te „ogólnego przeznaczenia” maszyny ZKVM stały się bardziej „wyspecjalizowane”. Kluczowym powodem poprawy wydajności jest „prekompilacja”. Te prekompilacje to wyspecjalizowane obwody ZK zdolne do obliczania popularnych programów wysokiego poziomu, takich jak SHA2 i różne weryfikacje podpisów, znacznie szybciej niż dzielenie ich na fragmenty obwodów instrukcji.
Tak więc trend jest teraz dość wyraźny.
Wyspecjalizowana infrastruktura ZK staje się coraz bardziej ogólna, podczas gdy ogólne maszyny ZKVM stają się coraz bardziej wyspecjalizowane.
Optymalizacje obu rozwiązań w ciągu ostatnich kilku lat pozwoliły osiągnąć lepszy punkt kompromisu niż wcześniej: postęp w jednym punkcie bez poświęcania drugiego. Dlatego obie strony czują, że „zdecydowanie jesteśmy przyszłością”.
Jednak mądrość informatyki mówi nam, że w pewnym momencie napotkamy „optymalną ścianę Pareto” (zielona przerywana linia), gdzie nie możemy poprawić jednej wydajności bez poświęcania innej.
Pojawia się zatem pytanie za milion dolarów:
Czy jedna technologia całkowicie zastąpi inną we właściwym czasie?
Zapożyczając spostrzeżenia z branży układów scalonych: wielkość rynku procesorów wynosi 126 miliardów dolarów, podczas gdy cała branża układów scalonych (w tym wszystkie „wyspecjalizowane” układy scalone) wynosi 515 miliardów dolarów. Jestem przekonany, że z perspektywy mikro, historia się tu powtórzy i układy te nie zastąpią się nawzajem.
Biorąc to pod uwagę, dziś nikt nie powiedziałby: „Hej, używam komputera w całości napędzanego przez procesor ogólnego przeznaczenia” lub „Hej, to jest fantazyjny robot napędzany przez wyspecjalizowane układy scalone”.
Tak, rzeczywiście powinniśmy spojrzeć na tę kwestię z perspektywy makro, a w przyszłości pojawi się krzywa kompromisu pozwalająca deweloperom na elastyczny wybór w zależności od ich potrzeb.
W przyszłości wyspecjalizowana infrastruktura ZK i ogólna ZKVM mogą ze sobą współpracować. Może to być realizowane w różnych formach. Najprostsza metoda jest osiągalna już teraz. Na przykład, można użyć koprocesora ZK do wygenerowania pewnych wyników obliczeń w historii transakcji blockchain, ale logika biznesowa obliczeń na tych danych jest bardzo złożona i nie może być po prostu wyrażona w SDK/API.
To, co można zrobić, to uzyskać wysokowydajne i tanie dowody ZK danych i pośrednich wyników obliczeń, a następnie zagregować je do maszyny wirtualnej ogólnego przeznaczenia za pomocą dowodów rekurencyjnych.
Chociaż uważam tego rodzaju debatę za interesującą, wiem, że wszyscy budujemy tę asynchroniczną przyszłość obliczeniową napędzaną przez weryfikowalne obliczenia poza łańcuchem dla blockchain. Wierzę, że w miarę pojawiania się w nadchodzących latach przypadków masowej adopcji przez użytkowników, debata ta w końcu dobiegnie końca.