Müəllif: Kernel Ventures Turbo Guo

Redaktor(lar): Kernel Ventures Rose, Kernel Ventures Mandy, Kernel Ventures Joshua

TLDR: ZK ko-prosessoru, dApp-ların off-chain kompüter resurslarından istifadə etməsi üçün bir həll yoludur. Bu məqalə mövcud həlləri, müxtəlif tətbiqləri və ko-prosessorların gələcək inkişafını araşdırır. Əsas müzakirə olunan mövzular bunlardır:

  1. RISC Zero-nun zkVM-i, on-chain müqavilələrinin off-chain zkVM-i çağırmasına imkan verən bir ZK ko-prosessor həllidir ki, bu da spesifik Rust kodunu işlətməyə və nəticələri zəncərə qaytarmağa imkan tanıyır, eyni zamanda hesablamanın düzgünlüyünü on-chain təsdiq üçün zkp təqdim edir.

  2. ZK koprosessorlar üçün müxtəlif həllər mövcuddur. zkVM-dən əlavə tərtibatçılar öz proqramları üçün fərdiləşdirilmiş ZK sxemləri yaza və ya əvvəlcədən hazırlanmış framework-lərdən istifadə edərək sxemlər qura bilər; bununla da kontraktlar oflayn hesablama resurslarından istifadə edə bilir.

  3. ZK koprosessorlar DeFi-də rol oynaya bilər: məsələn, dəyəri MEV-ə bənzər şəkildə ələ keçirmək üçün AMM hesablamalarını oflayn yükləmək və ya AMM-lər üçün mürəkkəb və hesablama baxımından ağır məntiq təmin etmək. ZK koprosessorlar həmçinin kredit protokolları üçün real-time faiz dərəcəsi hesablamalarını asanlaşdıra bilər, marja hesablamalarını isə şəffaf edir və s. zkAMM-in iki həyata keçirmə yanaşması var: biri zkVM-dən istifadə, digəri isə zkOracle.

  4. ZK koprosessorların başqa potensial istifadələri də var; məsələn, ondan istifadə edən wallet-lər oflayn şəxsiyyət yoxlanışını yerinə yetirə bilər. O, on-çeyn oyunlar üçün daha mürəkkəb hesablamalar etməyə imkan verə və DAO governance üçün tələb olunan qazı azalda bilər; digər tətbiqlər də mümkündür.

  5. ZK koprosessorlar üzrə mənzərə hələ qeyri-müəyyəndir, amma istifadəçilərin öz sxemlərini yazması ilə müqayisədə, oflayn resurs interfeysinin təmin etdiyi bir həll daha istifadəçi dostudur. Bununla belə, “interfeys” kimi çıxış edən bu həllin arxasında hansı hesablama xidmət provayderlərinin inteqrasiya olunduğu — ənənəvi bulud provayderləri, yoxsa deklareləşdirilmiş resurs paylaşım şəbəkələri — yenə də müzakirəyə dəyər əsas mövzudur.

1. ZK koprosessorların məqsədi və tətbiqi

Mənbə: Kernel Ventures

ZK koprosessorun əsas məqsədi on-çeyn hesablamanı oflayn-a köçürməkdir: oflayn hesablamanın etibarlılığını təmin etmək üçün ZK sübutlarından istifadə etməklə, smart kontraktların çox miqdarda hesablamanı asanlıqla idarə etməsinə və hesablamanın etibarlılığını yoxlamağa imkan yaradır. Bu, zkRollup-ların ideyasına bənzəyir, amma Rollup-lar zəncirin protokol səviyyəsində oflayn hesablama resurslarından istifadə edir; ZK koprosessorlar isə dApps tərəfindən oflayn resursları istifadə etmək üçün işlədilir.

ZK koprosessorların bir həllini izah etmək üçün RISC Zero nümunəsindən istifadə edək. RISC Zero Bonsai ZK koprosessor arxitekturasını hazırlayıb; onun əsasını RISC Zero-nun zkVM-i təşkil edir. Tərtibatçılar zkVM-də “müəyyən Rust kodunun düzgün icra edilməsi” üçün zkp yarada bilərlər. zkVM-dən istifadə etməklə ZK koprosessorun həyata keçirilməsinin konkret prosesi belədir:

  1. Tərtibatçılar Bonsai-nin relay (keçid) kontağına sorğu göndərir, yəni tərtibatçının tələb etdiyi proqramı zkVM-də işə salmaq üçün.

  2. Relay kontağı sorğunu oflayn request pool-a (sorğu hovuzuna) göndərir.

  3. Bonsai sorğunu oflayn zkVM-də icra edir, böyük miqyaslı hesablamalar aparır və sonra bir receipt (qəbz) yaradır.

  4. Bu sübutlar, həmçinin “receipt”lər adlanır, Bonsai tərəfindən relay kontağı vasitəsilə zəncirə geri dərc olunur.

Mənbə: RISC Zero

Bonsai-də sübut olunan proqram “Guest Program” adlanır və receipt (qəbz) bu qonaq proqramın düzgün icra edildiyini sübut etmək üçün istifadə olunur. Receipt jurnal (journal) və seal (möhür) daxil edir. Konkret olaraq jurnal zkVM tətbiqinin public output-u daşıyır, seal isə receipt-in etibarlılığını sübut etmək üçün istifadə olunur — yəni qonaq proqramın düzgün icra edildiyini göstərmək üçün. Sealın özü provayder tərəfindən yaradılan zkSTARK-dır. Receipt-in doğrulanması jurnalın düzgün sxem əsasında qurulduğunu və s. təmin edir.

Bonsai tərtibatçılara Rust kodunu zkVM baytkoduna kompilyasiya etməyi, proqramları yükləməyi, VM-də icra etməyi və sübut geri-rəyini almağı asanlaşdırır; bununla da tərtibatçılar daha çox məntiqi dizayna fokuslana bilir. O, yalnız qismən kontrakt məntiqini deyil, kontrakt məntiqinin bütövlükdə oflayn işləməsini təmin edir. RISC Zero həmçinin continuations-dan istifadə edir: böyük sübutun yaradılmasını daha kiçik hissələrə bölür, bununla da həddindən artıq yaddaş sərf etmədən böyük proqramlar üçün sübut istehsalını mümkün edir. RISC Zero-dan əlavə IronMill, =nil; Foundation və Marlin kimi oxşar ümumi həllər təqdim edən digər layihələr də var.

2. DeFi-də ZK koprosessorların tətbiqi

2.1 AMM - Koprosessor kimi Bonsai

zkUniswap oflayn hesablama resurslarından istifadə edən bir AMM-dir. Onun əsas xüsusiyyəti swap hesablamasının bir hissəsini Bonsai ilə oflayn-a yükləməkdir. İstifadəçilər onlayn swap sorğusu başlatır. Bonsai-nin relay kontağı sorğunu alır, oflayn hesablama işə salır və tamamlandıqdan sonra hesablama nəticəsini və sübutu EVM-in callback funksiyasına qaytarır. Sübut uğurla doğrulandıqdan sonra swap icra olunur.

Amma swap bir dəfəyə tamamlana bilmir. Sorğu və icra prosesləri fərqli tranzaksiyalarda baş verir və bu, müəyyən risklər yaradır. Yəni sorğunun təqdim edilməsi ilə swap-ın tamamlanması arasında hovuzun (pool) vəziyyəti dəyişə bilər. Doğrulama sorğunun təqdim edilmə anındakı hovuz vəziyyətinə əsaslandığı üçün, əgər sorğu hələ pending (gözləmədə) vəziyyətdədirsə və hovuzun vəziyyəti dəyişərsə, doğrulama etibarsız olacaq. Bu, belə sistemlərin dizaynı və təhlükəsizliyi üçün mühüm nəzər nöqtəsidir.

Bu problemi həll etmək üçün tərtibatçılar pool lock (hovuz kilidi) dizayn ediblər. İstifadəçi sorğu başlatdıqda, oflayn hesablama onlayn swap-un icrasını uğurla tetikləənədək və ya swap vaxtı bitənədək (vaxt limiti əvvəlcədən təyin olunacaq) swap-un yekunlaşdırılması istisna olmaqla bütün əməliyyatlar müvəqqəti olaraq kilidlənir. Vaxt limiti olduğuna görə, relay və ya zkp ilə bağlı problemlər olsa belə, pool sonsuza qədər kilidlənməyəcək. Konkrekt vaxt limiti bir neçə dəqiqə ola bilər.

zkUniswap MEV-i ələ keçirmək üçün unikallaşdırılmış dizayna malikdir, çünki tərtibatçılar protokolun MEV-dən fayda qazanmasını hədəfləyir. Nəzəri olaraq zkAMM-lərdə də MEV var: swap göndərən birinci şəxs onu kilidləyə və digərlərini qabaqlaya (front-run) bilər, nəticədə “qaz müharibələri” yarana bilər və builder-lar tranzaksiyaların sıralanmasını yenə də prioritetləşdirə bilir. Amma zkUniswap “Variable Rate Gradual Dutch Auction (VRGDA)” adlı bir üsulla MEV mənfəətini protokol üçün özünə götürür. Bu yanaşma zkUniswap-a protokol üçün MEV dəyərini çıxarmağa imkan verir.

zkUniswap-ın konsepti olduqca maraqlıdır. O, hərracda kilidlənmiş aktivlərin qiymətini aşağı salmağı nəzərdə tutur və əgər kilidlənmiş aktivlər tez satılarsa, protokol yüksək tələbi görüb qiyməti avtomatik artırır. Kilidlənmiş aktivlərin satışı yavaşlayarsa, protokol qiyməti aşağı salır. Bu yenilikçi yanaşma potensial olaraq yeni gəlir mənbəyinə çevrilə bilər. Əsasən protokol tranzaksiyaların prioritetləşdirilməsi üçün unikal mexanizm təqdim edir və qiymətləndirmə üzrə rəqabət bu mexanizm vasitəsilə layihəyə birbaşa fayda verir.

2.2 AMM - Koprosessor kimi zkOracle

zkVM-dən istifadə etməklə yanaşı, bəziləri oflayn hesablama resurslarından yararlanmaq üçün zkOracle-dan istifadəni də təklif edib; bunu qeyd etmək lazımdır ki, zkOracle həm I/O (input və output) oracle-dır və həm giriş, həm də çıxışı idarə edir. Ümumiyyətlə iki növ oracle var: biri input oracle, digəri isə output oracle. Input oracle oflayn məlumatı emal edir (hesablayır) və onu on-çeynə yerləşdirir; output oracle isə on-çeyn məlumatını emal edir (hesablayır) və onu oflayn-a təqdim edir. I/O oracle (zkOracle) əvvəl çıxışı (output) edir, sonra girişi (input); bununla da zəncir oflayn hesablama resurslarından istifadə edə bilir.

Bir tərəfdən zkOracle on-çeyn məlumatını data source (məlumat mənbəyi) kimi istifadə edir, digər tərəfdən isə oracle node-larının hesablamalarının dürüst (honest) olmasını təmin etmək üçün ZK tətbiq edir; nəticədə koprosessor funksiyası əldə olunur. Buna görə AMM-in əsas hesablamasını zkOracle daxilində yerləşdirmək mümkündür: bu da ənənəvi AMM funksionallığını qoruyur, eyni zamanda zkOracle ilə daha mürəkkəb və hesablama baxımından daha ağır əməliyyatları mümkün edir.

Mənbə: github fewwwww/zkAMM

2.3 Faiz dərəcəsi hesablanması, marja hesablanması və digər tətbiqlər

İcra üsulunu bir kənara qoysaq, ZK koprosessorların əlavə olunması ilə bir çox funksionallıq əldə etmək olar. Məsələn, kredit (lending) protokolları faiz dərəcələrini əvvəlcədən təyin edilmiş şərtlərdən yox, real-time parametrlərə əsasən dəyişə bilər. Məsələn, borclanma tələbi güclü olduqda təklifi cəlb etmək üçün faiz dərəcəsini artırmaq, tələbat azaldıqda isə faiz dərəcəsini endirmək. Bunun üçün kredit protokolu real-time-da kifayət qədər böyük həcmdə on-çeyn məlumat almalı, məlumatı əvvəlcədən emal etməli və parametrləri oflayn hesablamaq lazımdır (on-çeyn dəyəri çox aşağı olmadıqca).

Marja balanslarının, reallaşmamış mənfəət/zərərlərin və s. müəyyən edilməsi kimi mürəkkəb hesablamalar da icra üçün koprosessorlardan istifadə edə bilər. Koprosessorlardan istifadə etməyin üstünlüyü bu tətbiqləri daha şəffaf və yoxlana bilən etməsidir. Marja mühərrikinin məntiqi artıq gizli qara qutu deyil. Hesablamalar oflayn aparılsa da, istifadəçilər icranın düzgünlüyünə tam etibar edə bilərlər. Bu yanaşma opsiyon hesablamalarına da tətbiq olunur.

3. ZK koprosessorların digər tətbiqləri

3.1 Wallet - Koprosessor kimi Bonsai-dən istifadə

Bonfire Wallet şəxsiyyət yoxlanışının (identity verification) hesablamasını oflayn yükləmək üçün zkVM-dən istifadə edir. Bu wallet-in məqsədi istifadəçilərə biometrik məlumatlar (barmaq izləri) və ya şifrələnmiş hardware yubikey vasitəsilə burner wallet-lər yaratmağa imkan verməkdir. Xüsusilə Bonfire Wallet WebAuthn-dan istifadə edir — bu, yayğın bir veb identifikasiya (auth) standartıdır — istifadəçilərə şifrə olmadan cihazlar vasitəsilə web kimlik yoxlanışını birbaşa tamamlamasına imkan vermək üçün. Beləliklə Bonfire Wallet-də istifadəçilər WebAuthn ilə (on-chain deyil, WebAuthn üçün) WebAuthn public key yaradır və sonra onu wallet yaratmaq üçün istifadə edir. Hər Burner wallet-in on-chain-da bir kontraktı var və bu kontrakt WebAuthn public key-ni saxlayır. Kontrakt istifadəçinin WebAuthn imzasını doğrulamalıdır. Amma bu hesablamalar böyükdür, buna görə də Bonsai bu hesablamanı oflayn yükləmək üçün zkVM qonaq proqramından istifadə edir: imzanı oflayn yoxlamaq, sonra onlayn doğrulama üçün zkp yaratmaq üçün.

Mənbə: Bonfire Wallet

3.2 On-Chain Data Retrieval - İstifadəçilər tərəfindən yazılmış ZK sxemləri (circuit-lər)

Axiom zkVM istifadə etmir, fərqli bir koprosessor həllindən istifadə edən bir tətbiqdir. Gəlin əvvəlcə Axiom-un nə etməyə çalışdığını təqdim edək. O, tarixən on-çeyn məlumatına kontraktların çıxış əldə etməsini təmin etmək üçün ZK koprosessorlardan istifadə edir. Reallıqda tarixi məlumatın oxunmasını mümkün etmək olduqca çətindir, çünki smart kontraktlar adətən real-time on-çeyn məlumat əldə edir və bu çox bahalı ola bilər. Kontraktların tarixi hesab balansları və ya tranzaksiya qeydləri kimi dəyərli on-çeyn dataya çıxış əldə etməsi çətindir.

Mənbə: Axiom demo

Axiom node-ları tələb olunan on-çeyn dataya daxil olur və göstərilən hesablamanı oflayn aparır; sonra həmin hesablamaya görə sıfır bilik (zero-knowledge) sübutu yaradır və nəticənin düzgün hesablandığını etibarlı on-çeyn məlumatına əsasən sübut edir. Bu sübut on-çeyndə doğrulanır və bununla da kontraktın bu nəticəyə etibar edə bilməsi təmin olunur.

Oflayn hesablama üçün zkp yaratmaq məqsədilə proqramları ZK sxemlərinə (circuit-lərə) kompilyasiya etmək lazımdır. Daha əvvəl bunun üçün zkVM-dən istifadəni də qeyd etmişdik, amma Axiom bildirmişdir ki, bunun üçün bir çox həll var və performans, çeviklik və inkişaf təcrübəsini balanslaşdırmaq lazımdır:

  1. Fərdiləşdirilmiş sxemlər: əgər tərtibatçılar proqramları üçün sxemləri fərdiləşdirsə, performans mütləq ən yaxşı olacaq, amma onu hazırlamaq vaxt tələb edir;

  2. eDSL/DSL: tərtibatçılar yenə də sxemlərini yazır, amma zk ilə bağlı problemləri həll etmək üçün bəzi əlavə (optional) çərçivələr var; bununla da performans və inkişaf təcrübəsi balanslanır.

  3. zkVM: tərtibatçılar mövcud bir virtual maşın üzərində birbaşa ZK işlədə bilir; bu çox rahatdır, amma Axiom bunun səmərəsiz olduğunu düşünür.

Buna görə Axiom ikinci variantı seçdi və istifadəçilərə öz sxemlərini qurmağa imkan verən optimallaşdırılmış ZK modullarının dəstini təqdim edir.

Axiom-a bənzər layihələrə Herodotus daxildir; o, çarpaz zəncir mesajlaşması üçün middleware təmin etməyi hədəfləyir. Çünki məlumat emalı oflayn aparılır, müxtəlif zəncirlərin emal olunmuş məlumatı əldə etməsinə icazə vermək məntiqlidir. Digər bir layihə olan Space and Time isə məlumat indeksləşdirməsini həyata keçirmək üçün oxşar arxitekturaldan istifadə edir.

3.3 On-Chain Games, DAO Governance və digər tətbiqlər

Yuxarıdakılardan əlavə, on-çeyn oyunlar və DAO governance də ZK koprosessorlardan istifadə edə bilər. RISC Zero hesab edir ki, 250k gas-dan daha çox hesablama tələb edən hər hansı hesablamanı ZK koprosessor daha ucuz edir, amma bu hesablamanın necə aparıldığı hələ araşdırılmalıdır. DAO governance də ZK koprosessorlardan istifadə edə bilər, çünki burada bir neçə insan və bir neçə kontrakt iştirak edir və bu, çox hesablama tələb edir. RISC Zero iddia edir ki, Bonsai-dən istifadə qaz ödənişlərini 50% azalda bilər. Modulus Labs və Giza kimi bir çox ZKML layihəsi ZK koprosessorlarla eyni həlli istifadə edir, amma “ZK koprosessor” anlayışı daha genişdir.

Qeyd etməyə dəyər ki, ZK koprosessorlar sahəsində ezkl kimi bəzi əlavə layihələr də var: onlar ZK sxemləri üçün kompilyatorlar, ZK deploy etmək üçün toolkits və on-çeyn hesablamanı oflayn-a yükləmək üçün alətlər təqdim edir.

4. Gələcək Perspektiv

Koprosessorlar on-çeyn tətbiqlərə “bulud”a bənzər xarici hesablama resursları təqdim edir; bu resurslar sərfəli və bol hesablamalar təklif edir, on-çeyn emalda isə əsas hesablamalara diqqət yönəldilir. Praktikada zkVM də buludda işləyə bilər. Əsasən ZK koprosessorlar on-çeyn hesablamanı oflayn-a köçürən arxitektur yanaşmadır; oflayn hesablama resurslarının mənbəyi isə sonsuzdur.

Əsasən, oflayn hesablama resursları ənənəvi bulud provayderləri tərəfindən təmin edilə bilər, hətta deklareləşdirilmiş hesablama resurs paylaşımı və yerli cihazlar da. Bu üç istiqamətin hər birinin öz xüsusiyyətləri var. Ənənəvi bulud provayderləri nisbətən yetkin oflayn hesablama həlləri təqdim edə bilər; gələcək deklareləşdirilmiş hesablama resurslarının “dayanıqlılığı” daha güclü ola bilər; yerli hesablama da böyük potensiala malikdir. Lakin hazırda bir çox ZK koprosessor layihəsi qapalı mənbəli xidmət provayderi mərhələsindədir, çünki bu xidmətlər üçün ekosistem hələ tam formalaşmayıb və müxtəlif layihələr arasında xidmət ixtisaslaşması müəyyən edilməyib. Gələcək üçün iki mümkün ssenari var:

  1. ZK koprosessorun hər bir hissəsində bir-biri ilə rəqabət aparan çoxlu sayda layihə var.

  2. Xidmət təcrübəsi əla olan tək bir layihə bazarı ələ keçirə bilər.

Tərtibatçının baxışından, ZK koprosessorlardan istifadə edərkən onlar yalnız bir “interfeys” layihəsi ilə əlaqə saxlaya bilər. Bu, Amazon Web Services-in böyük bazar payına sahib olmasının səbəbinə bənzəyir: tərtibatçılar müəyyən deployment (yerləşdirmə) metoduna vərdiş etdikdən sonra onu dəyişməyə meylli olmur. Lakin arxada hansı hesablama xidmət provayderlərinin (ənənəvi bulud şirkətləri, deklareləşdirilmiş resurs paylaşımı) bu oflayn hesablama resursu “interfeysi”nə inteqrasiya edildiyi sualı başqa bir müzakirə mövzusudur.

Kernel Ventures 70-dən çox erkən mərhələ investisiyası olan, infrastruktur, middleware, dApps, xüsusən ZK, Rollup, DEX, Modular Blockchain və kriptoda növbəti milyard istifadəçini cəlb edəcək şaquli sahələr (məs: Account Abstraction, Data Availability, Scalability və s.) üzərində fokuslanan tədqiqat & inkişaf yönümlü kripto VC fondudur. Keçən yeddi il ərzində dünya üzrə əsas dev icmalarının və University Blockchain Assosiasiyalarının böyüməsini dəstəkləməyə sadiq qalmışıq.

İSTİNAD:

  1. Miqyaslana bilmə üçün ZK koprosessorlar üzrə bələdçi: https://www.risczero.com/news/a-guide-to-zk-coprocessors-for-scalability

  2. Ethereum üçün zkOracle-un tərifi: https://ethresear.ch/t/defining-zkoracle-for-ethereum/15131

  3. zkUniswap: ilk növ olan zkAMM: https://ethresear.ch/t/zkuniswap-a-first-of-its-kind-zkamm/16839

  4. ZK koprosessor nədir?:https://blog.axiom.xyz/what-is-a-zk-coprocessor/

  5. Koprosessorlara qısa giriş: https://crypto.mirror.xyz/BFqUfBNVZrqYau3Vz9WJ-BACw5FT3W30iUX3mPlKxtA

  6. Hyper Oracle (Bonus: İndi qura biləcəyiniz şeylər) üzərində qurulan ən son tətbiqlər: https://mirror.xyz/hyperoracleblog.eth/Tik3nBI9mw05Ql_aHKZqm4hNxfxaEQdDAKn7JKcx0xQ

  7. Bonfire Wallet:https://ethglobal.com/showcase/bonfire-wallet-n1dzp