
Autore: Kernel Ventures Turbo Guo
Redattore(i): Kernel Ventures Rose, Kernel Ventures Mandy, Kernel Ventures Joshua
TLDR: il coprocessore ZK è una soluzione per le dApp per utilizzare risorse di calcolo fuori catena. Questo articolo esplora le soluzioni esistenti, le varie applicazioni e lo sviluppo futuro dei coprocessori. I principali argomenti trattati sono i seguenti:
zkVM di RISC Zero è una soluzione coprocessore ZK che consente ai contratti on-chain che chiamano zkVM off-chain di eseguire codice Rust specifico e restituire i risultati alla catena, fornendo al contempo zkp per la verifica on-chain della correttezza del calcolo.
Esistono diverse soluzioni per i coprocessori ZK. Oltre a zkVM, gli utenti possono anche scrivere circuiti ZK personalizzati per i loro programmi o utilizzare framework predefiniti per scrivere circuiti, consentendo così ai contratti di utilizzare risorse informatiche fuori catena.
Il coprocessore ZK può svolgere un ruolo nella DeFi, ad esempio scaricando i calcoli AMM off-chain per acquisire un valore simile al MEV o abilitando una logica complessa e ad alta intensità di calcolo per gli AMM. Il coprocessore ZK può anche facilitare i calcoli dei tassi di interesse in tempo reale per i protocolli di prestito, rendendo trasparenti, tra le altre cose, i calcoli dei margini. zkAMM ha due approcci di implementazione, uno che utilizza zkVM e l'altro che utilizza zkOracle.
Il coprocessore ZK ha anche altri potenziali casi d'uso, come i portafogli che lo utilizzano per eseguire la verifica dell'identità fuori catena. Può consentire calcoli più complessi per i giochi on-chain e ridurre il gas richiesto per la governance DAO, tra le altre applicazioni.
Il panorama dei coprocessori ZK è ancora incerto, ma rispetto agli utenti che scrivono i propri circuiti, utilizzare una soluzione per l'interfacciamento delle risorse off-chain è più user-friendly. Tuttavia, la questione di quali fornitori di servizi di calcolo siano integrati dietro quella soluzione di “interfaccia”, se i tradizionali fornitori di servizi cloud o le reti decentralizzate di condivisione delle risorse, è un altro argomento importante di discussione.
1. Scopo e applicazione dei coprocessori ZK

Fonte: Kernel Ventures
Il nucleo del coprocessore ZK è spostare il calcolo on-chain off-chain, utilizzando prove ZK per garantire l'affidabilità del calcolo off-chain, consentendo ai contratti intelligenti di gestire facilmente una grande quantità di calcoli verificando al contempo l'affidabilità del calcolo. Questo è simile all'idea di zkRollups, ma i Rollup utilizzano risorse di elaborazione fuori catena a livello di protocollo della catena, mentre i coprocessori ZK vengono utilizzati dalle dApp per utilizzare risorse fuori catena.
Utilizzando RISC Zero come esempio per spiegare una soluzione di coprocessori ZK, RISC Zero ha sviluppato l'architettura del coprocessore Bonsai ZK, il cui nucleo è zkVM di RISC Zero. Gli sviluppatori possono generare zkp su zkVM per "un certo codice Rust eseguito correttamente". Con zkVM, il processo specifico di implementazione di un coprocessore ZK è:
Gli sviluppatori inviano una richiesta al contratto di inoltro di Bonsai, ovvero per eseguire il programma richiesto dallo sviluppatore in zkVM.
Il contratto di inoltro invia la richiesta al pool di richieste fuori catena.
Bonsai esegue la richiesta in zkVM off-chain, esegue calcoli su larga scala e quindi genera una ricevuta.
Queste prove, note anche come "ricevute", vengono pubblicate nuovamente nella catena da Bonsai attraverso il contratto di staffetta.

Fonte: RISCZero
Nel Bonsai il programma collaudato si chiama Programma Ospite e la ricevuta serve a dimostrare che il programma ospite è stato eseguito correttamente. La ricevuta include un giornale e un sigillo. Nello specifico, il giornale trasporta l'output pubblico dell'applicazione zkVM, mentre il sigillo serve per dimostrare la validità della ricevuta, cioè per dimostrare che il programma ospite è stato eseguito correttamente. Il sigillo stesso è uno zkSTARK generato dal prover. La verifica della ricevuta garantisce che il giornale sia costruito utilizzando il circuito corretto, ecc.
Bonsai semplifica il processo per gli sviluppatori di compilare il codice Rust nel bytecode zkVM, caricare programmi, eseguirli nella VM e ricevere feedback di prova, consentendo agli sviluppatori di concentrarsi maggiormente sulla progettazione logica. Consente non solo la logica contrattuale parziale, ma l'intera logica contrattuale di funzionare fuori catena. RISC Zero utilizza anche le continuazioni, suddividendo la generazione di una prova di grandi dimensioni in parti più piccole, consentendo la generazione di prove per programmi di grandi dimensioni senza consumare memoria eccessiva. Oltre a RISC Zero, ci sono altri progetti come IronMill, =nil; Foundation e Marlin che forniscono soluzioni generali simili.
2. Applicazione dei coprocessori ZK nella DeFi
2.1 AMM - Bonsai come coprocessore
zkUniswap è un AMM che sfrutta le risorse di calcolo fuori catena. La sua caratteristica principale è scaricare parte del calcolo dello swap off-chain, utilizzando Bonsai. Gli utenti avviano una richiesta di scambio sulla catena. Il contratto di inoltro di Bonsai ottiene la richiesta, avvia il calcolo fuori catena e, al termine, restituisce il risultato del calcolo e la prova alla funzione di callback dell'EVM. Se la prova viene verificata con successo, lo scambio viene eseguito.
Tuttavia, lo scambio non viene completato in una volta sola. I processi di richiesta ed esecuzione si svolgono in transazioni diverse, il che comporta determinati rischi. Cioè, tra l'invio della richiesta e il completamento dello scambio, lo stato del pool potrebbe cambiare. Poiché la verifica si basa sullo stato del pool al momento dell'invio della richiesta, se una richiesta è ancora in sospeso e lo stato del pool cambia, la verifica non sarà valida. Questa è una considerazione importante nella progettazione e nella sicurezza di tali sistemi.
Per risolvere questo problema, gli sviluppatori hanno progettato un blocco del pool. Quando un utente avvia una richiesta, tutte le operazioni diverse dalla risoluzione dello scambio vengono temporaneamente bloccate finché il calcolo fuori catena non attiva con successo lo scambio in catena o lo scambio scade (il limite di tempo sarà preimpostato). Con un limite di tempo in vigore, anche se ci sono problemi con il relè o con lo zkp, la piscina non verrà bloccata a tempo indeterminato. Il limite di tempo specifico potrebbe essere di pochi minuti.
zkUniswap ha un design unico per acquisire MEV, poiché gli sviluppatori mirano a trarre vantaggio dal protocollo MEV. Teoricamente, gli zkAMM hanno anche MEV, poiché la prima persona che invia uno scambio può bloccarlo e azionare altri, portando a guerre del gas, e i costruttori possono comunque dare priorità alla sequenza delle transazioni. Tuttavia, zkUniswap prende per sé i profitti MEV utilizzando un metodo noto come asta olandese graduale a tasso variabile (VRGDA). Questo approccio consente a zkUniswap di estrarre il valore MEV per il protocollo.
Il concetto di zkUniswap è piuttosto interessante. Implica l’abbassamento del prezzo degli asset bloccati in un’asta e, se gli asset bloccati vengono venduti rapidamente, il protocollo riconosce una domanda elevata e aumenta automaticamente il prezzo. Se la vendita dei beni bloccati rallenta, il protocollo abbassa il prezzo. Questo approccio innovativo potrebbe potenzialmente diventare una nuova fonte di entrate. In sostanza, il protocollo introduce un meccanismo unico per dare priorità alle transazioni e la concorrenza sui prezzi avvantaggia direttamente il progetto attraverso questo meccanismo.
2.2 AMM - zkOracle come coprocessore
Oltre a utilizzare zkVM, alcuni hanno proposto di utilizzare zkOracle per utilizzare risorse di calcolo off-chain. Vale la pena notare che zkOracle è un oracolo I/O (input e output) che gestisce sia input che output. In generale, esistono due tipi di oracoli, uno è l'oracolo di input e l'altro è l'oracolo di output. L'oracolo di input elabora (calcola) i dati off-chain e li inserisce nella catena, mentre l'oracolo di output elabora (calcola) i dati on-chain e li fornisce fuori catena. L'oracolo I/O (zkOracle) esegue prima l'output, quindi l'input, consentendo alla catena di utilizzare risorse di calcolo off-chain.
Da un lato, zkOracle utilizza i dati on-chain come fonte di dati e, dall'altro, utilizza ZK per garantire che i calcoli dei nodi Oracle siano onesti, ottenendo così la funzione di un coprocessore. Pertanto, il calcolo principale di AMM può essere collocato all'interno di zkOracle, consentendo la funzionalità AMM tradizionale e consentendo allo stesso tempo operazioni più complesse e ad alta intensità di calcolo utilizzando zkOracle.

Fonte: github littlewwww/zkAMM
2.3 Calcolo del tasso di prestito, calcolo del margine e altre applicazioni
Mettendo da parte il metodo di implementazione, con l'aggiunta dei coprocessori ZK si possono ottenere molte funzionalità. Ad esempio, i protocolli di prestito possono adeguare i tassi di interesse in base a parametri in tempo reale anziché a condizioni predefinite. Ad esempio, aumentando il tasso di interesse per attirare l’offerta quando la domanda di prestito è forte e abbassando il tasso di interesse quando la domanda diminuisce. Ciò richiede che il protocollo di prestito ottenga una grande quantità di dati on-chain in tempo reale, preelabori i dati e calcoli i parametri off-chain (a meno che il costo on-chain non sia estremamente basso).
Anche calcoli complessi come la determinazione dei saldi dei margini, dei profitti/perdite non realizzati e così via possono utilizzare coprocessori per l'esecuzione. Il vantaggio dell'utilizzo dei coprocessori è che rendono queste applicazioni più trasparenti e verificabili. La logica del motore del margine non è più una scatola nera segreta. Sebbene i calcoli vengano eseguiti off-chain, gli utenti possono fidarsi pienamente della correttezza della loro esecuzione. Questo approccio è applicabile anche al calcolo delle opzioni.
3. Altre applicazioni dei coprocessori ZK
3.1 Portafoglio - Utilizzo di Bonsai come coprocessore
Bonfire Wallet utilizza zkVM per scaricare il calcolo della verifica dell'identità off-chain. L'obiettivo di questo portafoglio è consentire agli utenti di creare portafogli masterizzatori utilizzando informazioni biometriche (impronte digitali) o hardware ybikey crittografato. Nello specifico, Bonfire Wallet utilizza WebAuthn, uno standard comune di autenticazione web, per consentire agli utenti di completare la verifica dell'identità web direttamente con i dispositivi senza password. Pertanto, in Bonfire Wallet, gli utenti generano una chiave pubblica con WebAuthn (non on-chain, ma per WebAuthn) e quindi la utilizzano per creare un portafoglio. Ogni portafoglio Burner ha un contratto on-chain, che contiene la chiave pubblica di WebAuthn. Il contratto deve verificare la firma WebAuthn dell'utente. Ma questo calcolo è grande, quindi Bonsai viene utilizzato per scaricare questo calcolo off-chain, attraverso un programma guest zkVM per verificare la firma off-chain e produrre zkp per la verifica on-chain.

Fonte: Portafoglio Falò
3.2 Recupero dati on-chain - Circuiti ZK scritti dagli utenti
Axiom è un'applicazione che non utilizza zkVM ma utilizza una soluzione coprocessore diversa. Introduciamo innanzitutto ciò che Axiom si propone di fare. Sfrutta un coprocessore ZK per consentire ai contratti di accedere alle informazioni storiche sulla catena. In realtà, consentire ai contratti di leggere i dati storici è piuttosto impegnativo, perché i contratti intelligenti in genere ottengono dati on-chain in tempo reale, che possono essere molto costosi. È difficile per i contratti accedere a preziosi dati on-chain come i saldi storici dei conti o i record delle transazioni.

Fonte: demo Axiom
I nodi Axiom accedono ai dati on-chain richiesti ed eseguono il calcolo specificato off-chain, quindi generano una prova a conoscenza zero per il calcolo, dimostrando che il risultato è calcolato correttamente sulla base di dati on-chain validi. Questa prova viene verificata sulla catena, garantendo che il contratto possa fidarsi di questo risultato.
Per generare zkp per il calcolo fuori catena, è necessario compilare i programmi nei circuiti ZK. In precedenza abbiamo menzionato l'utilizzo di zkVM anche a questo scopo, ma Axiom ha suggerito che esistono molte soluzioni per questo ed è necessario bilanciare prestazioni, flessibilità ed esperienza di sviluppo:
Circuiti personalizzati: se gli sviluppatori personalizzano i circuiti per i loro programmi, le prestazioni saranno sicuramente le migliori, ma ci vuole tempo per lo sviluppo;
eDSL/DSL: gli sviluppatori continuano a scrivere i loro circuiti, ma ci sono alcuni framework opzionali per aiutare gli sviluppatori a risolvere i problemi relativi a zk, bilanciando così prestazioni ed esperienza di sviluppo.
zkVM: gli sviluppatori eseguono direttamente ZK su una macchina virtuale esistente, il che è molto conveniente, ma Axiom ritiene che sia inefficiente.
Pertanto, Axiom ha scelto la seconda opzione e fornisce agli utenti una serie di moduli ZK ottimizzati, consentendo loro di progettare i propri circuiti.
Progetti simili ad Axiom includono Herodotus, che mira a essere un middleware per la messaggistica cross-chain. Poiché l'elaborazione delle informazioni avviene fuori catena, è ragionevole consentire a diverse catene di ottenere i dati elaborati. Un altro progetto, Space and Time, utilizza un'architettura simile per implementare l'indicizzazione dei dati.
3.3 Giochi on-chain, governance DAO e altre applicazioni
Oltre a quanto sopra, i giochi on-chain, la governance DAO può anche utilizzare coprocessori ZK. RISC Zero ritiene che qualsiasi calcolo che richieda più di 250.000 gas sarebbe più economico utilizzando un coprocessore ZK, ma il modo in cui viene calcolato resta da indagare ulteriormente. La governance DAO può anche utilizzare coprocessori ZK, poiché coinvolge più persone e più contratti, il che richiede un'elevata intensità di calcolo. RISC Zero afferma che l'utilizzo di Bonsai può ridurre le tariffe del gas del 50%. Molti progetti ZKML, come Modulus Labs e Giza, utilizzano la stessa soluzione dei coprocessori ZK, ma il concetto di coprocessori ZK è più ampio.
Vale la pena ricordare che ci sono alcuni progetti ausiliari nel campo dei coprocessori ZK, come ezkl, che fornisce compilatori per circuiti ZK, toolkit per l'implementazione di ZK e strumenti per scaricare i calcoli on-chain off-chain.
4. Prospettive future
I coprocessori forniscono applicazioni on-chain con risorse computazionali esterne simili al "cloud", offrendo calcoli abbondanti e convenienti, mentre l'elaborazione on-chain si concentra sui calcoli essenziali. In pratica, zkVM può essere eseguito anche sul cloud. Essenzialmente, i coprocessori ZK rappresentano un approccio architetturale che sposta il calcolo on-chain off-chain, con una fonte illimitata di risorse computazionali off-chain.
In sostanza, le risorse informatiche fuori catena possono essere fornite dai tradizionali fornitori di servizi cloud, anche dalla condivisione decentralizzata delle risorse informatiche e dai dispositivi locali. Queste tre direzioni hanno ciascuna le loro caratteristiche. I fornitori di servizi cloud tradizionali possono fornire soluzioni informatiche fuori catena relativamente mature, la “robustezza” delle future risorse informatiche decentralizzate potrebbe essere più forte e anche l’elaborazione locale ha un grande potenziale. Ma attualmente, molti progetti di coprocessori ZK si trovano in una fase di fornitore di servizi closed source perché l’ecosistema per questi servizi non si è completamente formato e la specializzazione dei servizi tra i diversi progetti deve ancora essere definita. Due possibili scenari per il futuro sono:
Ogni parte del coprocessore ZK ha un gran numero di progetti in competizione tra loro.
Un singolo progetto con un’eccellente esperienza di servizio può dominare il mercato.
Dal punto di vista dello sviluppatore, quando si utilizzano coprocessori ZK, potrebbero interagire solo con un singolo progetto di "interfaccia". Questo è simile al motivo per cui Amazon Web Services detiene una quota di mercato sostanziale, poiché gli sviluppatori tendono ad abituarsi a un metodo di distribuzione specifico. Tuttavia, la questione di quali fornitori di servizi informatici (società cloud tradizionali, condivisione decentralizzata delle risorse) siano integrati dietro questo progetto di “interfaccia” di risorse computazionali fuori catena è un altro argomento che vale la pena discutere.
Kernel Ventures è un fondo di criptovaluta guidato da una comunità di ricerca e sviluppo con oltre 70 investimenti in fase iniziale, concentrati su infrastrutture, middleware, dApp, in particolare ZK, Rollup, DEX, Blockchain modulare e verticali che accompagneranno il prossimo miliardo di utenti nel settore delle criptovalute come astrazione dell'account, disponibilità dei dati, scalabilità e così via. Negli ultimi sette anni, ci siamo impegnati a supportare la crescita delle principali comunità di sviluppo e delle associazioni Blockchain universitarie in tutto il mondo.
RIFERIMENTO:
Una guida ai coprocessori ZK per la scalabilità: https://www.risczero.com/news/a-guide-to-zk-coprocessors-for-scalability
Definizione di zkOracle per Ethereum: https://ethresear.ch/t/defining-zkoracle-for-ethereum/15131
zkUniswap: uno zkAMM unico nel suo genere: https://ethresear.ch/t/zkuniswap-a-first-of-its-kind-zkamm/16839
Cos'è un coprocessore ZK?: https://blog.axiom.xyz/what-is-a-zk-coprocessor/
Una breve introduzione ai coprocessori: https://crypto.mirror.xyz/BFqUfBNVZrqYau3Vz9WJ-BACw5FT3W30iUX3mPlKxtA
Ultime applicazioni basate su Hyper Oracle (bonus: cose che puoi creare ora): https://mirror.xyz/hyperoracleblog.eth/Tik3nBI9mw05Ql_aHKZqm4hNxfxaEQdDAKn7JKcx0xQ
Portafoglio Bonfire: https://ethglobal.com/showcase/bonfire-wallet-n1dzp



