Cenni storici sul coprocessore

Nel campo informatico tradizionale, un coprocessore è un'unità di elaborazione responsabile della gestione di altri aspetti complicati per il cervello della CPU. Il coprocessore è molto comune nel campo dei computer. Ad esempio, Apple ha lanciato il coprocessore di movimento M7 nel 2013, che ha notevolmente migliorato la sensibilità al movimento dei dispositivi intelligenti. La famosa GPU è il coprocessore proposto da Nvidia nel 2007, che è responsabile della gestione di compiti come il rendering grafico per la CPU. La GPU accelera le applicazioni in esecuzione sulla CPU scaricando alcune parti del codice ad alta intensità di calcolo e dispendiose in termini di tempo, un'architettura nota come elaborazione "eterogenea"/"ibrida".

Il coprocessore può scaricare alcuni codici complessi con requisiti prestazionali singoli o requisiti prestazionali estremamente elevati, consentendo alla CPU di gestire parti più flessibili e modificabili.

Sulla catena Ethereum ci sono due problemi che ostacolano seriamente lo sviluppo delle applicazioni:

  1. Poiché l'operazione richiede una commissione sul gas elevata, un trasferimento ordinario è codificato su un limite di 21.000 gas. Ciò mostra il risultato finale della commissione sul gas della rete Ethereum. Altre operazioni, incluso lo stoccaggio, costeranno più gas, il che limiterà le applicazioni sulla catena In termini di ambito di sviluppo, la maggior parte dei codici contrattuali riguardano solo le operazioni relative agli asset. Una volta coinvolte operazioni complesse, sarà necessaria una grande quantità di gas, il che rappresenta un serio ostacolo all'adozione di massa di applicazioni e utenti.

  2. Poiché il contratto intelligente esiste nella macchina virtuale, il contratto intelligente può effettivamente accedere solo ai dati degli ultimi 256 blocchi. Soprattutto nell'aggiornamento Pectra del prossimo anno, introdotto dalla proposta EIP-4444, il nodo completo non memorizzerà più i blocchi precedenti. bloccano i dati, la mancanza di dati ha portato al ritardo nell’emergere di applicazioni innovative basate sui dati. Dopotutto, le applicazioni def come Tiktok, Instagram, multi-data, LLM, ecc. sono tutte costruite sulla base dei dati Lens si basa su Il motivo per cui il protocollo social dei dati lancerà Layer 3 Momoka è perché pensiamo che la blockchain sia un flusso di dati molto fluido Dopo tutto, la catena è aperta e trasparente, ma in realtà non è così è solo che i dati delle risorse token scorrono senza intoppi, ma le risorse dei dati sono dovute a L'imperfezione delle strutture sottostanti è ancora un grosso ostacolo, che limiterà seriamente anche l'emergere di prodotti di "adozione di massa".

Attraverso questo fatto, abbiamo scoperto che sia i suoi calcoli che i dati sono le ragioni che limitano l'emergere del nuovo paradigma informatico "Adozione di massa". Tuttavia, questo è un difetto della stessa blockchain di Ethereum e non è stata progettata per gestire grandi quantità di calcoli e attività ad alta intensità di dati. Ma come ottenere la compatibilità con queste applicazioni informatiche e ad alta intensità di dati? Qui dobbiamo introdurre un coprocessore. La stessa catena Ethereum funge da CPU e il coprocessore è simile a una GPU. La catena stessa può gestire alcuni dati di risorse non informatici e ad alta intensità di dati e operazioni semplici le applicazioni desiderano utilizzare dati o calcoli in modo flessibile. Le risorse possono utilizzare coprocessori. Con l’esplorazione della tecnologia ZK, al fine di garantire che i coprocessori eseguano calcoli e utilizzino i dati off-chain senza fiducia, è naturale che la maggior parte dei coprocessori venga sviluppata con ZK come livello sottostante.

Per ZK Coporcessor, il suo confine applicativo è così ampio da poter coprire qualsiasi scenario di applicazione DAPP reale, come social network, giochi, blocchi Defi, sistemi di controllo del rischio basati su dati on-chain, Oracle, archiviazione dati, formazione linguistica su modelli di grandi dimensioni e inferenza, ecc. In teoria, tutto ciò che le applicazioni Web2 possono fare può essere ottenuto con il coprocessore ZK, ed Ethereum funge da livello di regolamento finale per proteggere la sicurezza delle applicazioni.

Nel mondo tradizionale, non esiste una definizione chiara di coprocessore. Finché un chip separato può essere utilizzato come ausiliario per assistere nel completamento delle attività, viene chiamato coprocessore. L'attuale definizione di coprocessori ZK nel settore non è esattamente la stessa ZK-Query, ZK-Oracle, ZKM, ecc. Sono tutti coprocessori che possono aiutare a interrogare dati completi sulla catena, dati affidabili fuori dalla catena. , e i risultati del calcolo fuori dalla catena, a giudicare da questa definizione, layer2 è effettivamente considerato un coprocessore di Ethereum Di seguito confronteremo anche le somiglianze e le differenze tra Layer2 e il coprocessore ZK generale.

Elenco dei progetti di coprocessori

Alcuni progetti del coprocessore ZK, fonte: Gate Ventures

Allo stato attuale, il co-processing relativamente noto nel settore è diviso in tre parti, vale a dire i tre principali scenari applicativi di indicizzazione dei dati on-chain, macchine Oracle e ZKML. Il progetto incluso in tutti e tre gli scenari è General-ZKM e la macchina virtuale in esecuzione fuori catena è Sono diversi Ad esempio, Delphinus si concentra su zkWASM, mentre Risc Zero si concentra sull'architettura Risc-V.

Architettura della tecnologia coprocessore

Prendiamo come esempio il coprocessore General ZK per analizzarne l'architettura e consentire ai lettori di comprendere le somiglianze e le differenze nella tecnologia e nella progettazione dei meccanismi di questa macchina virtuale generica e per giudicare la tendenza futura dello sviluppo dei coprocessori, che ruota principalmente attorno a Risc Three sono stati analizzati progetti tra cui Zero, Lagrange e Succinct.

Risc Zero

In Risc Zero, il suo coprocessore ZK si chiama Bonsai.

Architettura bonsai, fonte: Risc Zero

Componenti bonsai, fonte: Risc Zero

In Bonsai è stato costruito un set completo di componenti a prova di conoscenza zero indipendenti dalla catena. L'obiettivo è diventare un coprocessore indipendente dalla catena. Basato sull'architettura del set di istruzioni Risc-V, ha una grande versatilità e linguaggi supportati. Inclusi Rust, C++, Solidity, Go, ecc. Le sue funzioni principali includono:

  1. ZkVM universale in grado di eseguire qualsiasi macchina virtuale in un ambiente a conoscenza zero/verificabile.

  2. Sistema di generazione di prove ZK che può essere integrato direttamente in qualsiasi contratto o catena intelligente

  3. Un rollup generico che distribuisce qualsiasi calcolo di una prova su Bonsai alla catena, consentendo ai minatori della rete di eseguire la generazione di prove.

I suoi componenti includono:

  1. Rete di prover: attraverso l'API Bonsai, il prover riceve il codice ZK che deve essere verificato nella rete, quindi esegue l'algoritmo di prova per generare la prova ZK. Questa rete sarà aperta a tutti in futuro.

  2. Pool di richieste: questo pool memorizza le richieste di certificazione avviate dagli utenti (simile al mempool di Ethereum, utilizzato per archiviare temporaneamente le transazioni). Quindi questo pool di richieste verrà ordinato dal sequenziatore per generare blocchi e molte delle richieste di certificazione verranno suddivise migliorare l’efficienza della prova.

  3. Motore di rollup: questo motore raccoglierà i risultati delle prove raccolti nella rete dei prover, quindi li impacchetterà in Root Proof e li caricherà sulla rete principale di Ethereum in modo che i validatori della catena possano verificarli in qualsiasi momento.

  4. Image Hub: questa è una piattaforma di sviluppo visiva in cui è possibile archiviare funzioni e applicazioni complete. Pertanto, gli sviluppatori possono richiamare l'API corrispondente tramite contratti intelligenti. Pertanto, i contratti intelligenti sulla catena hanno la capacità di richiamare programmi fuori catena.

  5. State Store: Bonsai ha anche introdotto l'archiviazione dello stato fuori catena, che viene archiviata sotto forma di coppie chiave-valore nel database, che può ridurre i costi di archiviazione in catena e cooperare con la piattaforma ImageHub per ridurre la complessità dei contratti intelligenti.

  6. Mercato dimostrativo: ZK dimostra il livello medio e superiore della catena industriale e il mercato della potenza di calcolo viene utilizzato per far incontrare i lati della domanda e dell'offerta di potenza di calcolo.

Lagrangiano

L'obiettivo di Lagrange è quello di costruire un co-processore e un database verificabile che includa dati storici sulla blockchain e possa utilizzare senza problemi questi dati per creare applicazioni trustless. Ciò consente lo sviluppo di applicazioni informatiche e ad alta intensità di dati.

Ciò comporta due funzioni:

  1. Database verificabile: indicizzando l'archiviazione del contratto intelligente sulla catena, lo stato on-chain generato dal contratto intelligente viene inserito nel database. In sostanza, l'archiviazione, lo stato e i blocchi della blockchain vengono ricostruiti e quindi archiviati in modo aggiornato in un database off-chain per un facile recupero.

  2. Calcolo basato sul principio MapReduce: il principio MapReduce consiste nell'utilizzare la separazione dei dati e il calcolo parallelo multiistanza su database di grandi dimensioni e infine integrare insieme i risultati. Questa architettura che supporta l'esecuzione parallela si chiama zkMR di Lagrange.

Nella progettazione del database, coinvolge un totale di tre parti di dati on-chain, vale a dire dati di archiviazione del contratto, dati sullo stato EOA e dati di blocco.

Struttura del database Lagrange, fonte: Lagrange

Quanto sopra è la struttura di mappatura dei dati memorizzati nel suo contratto. Le variabili di stato del contratto sono memorizzate qui e ogni contratto ha un Trie di archiviazione indipendente. Questo Trie è memorizzato sotto forma di un albero MPT in Ethereum. Sebbene l’albero MPT sia semplice, la sua efficienza è molto bassa, motivo per cui gli sviluppatori principali di Ethereum promuovono lo sviluppo degli alberi Verkel. In Lagrange, ogni nodo può essere "dimostrato" utilizzando SNARK/STARK, e il nodo genitore contiene la prova del nodo figlio, che richiede l'uso della tecnologia di prova ricorsiva.

Stato del conto, fonte: Lagrange

I conti sono EOA e conti contrattuali, che possono essere archiviati sotto forma di Account/Storage Root (spazio di archiviazione per variabili contrattuali) per rappresentare lo stato dell'account, ma sembra che Lagrange non abbia completamente progettato questa parte e in realtà debba aggiungere State Trie (La radice dello spazio di archiviazione dello stato dell'account esterno).

Struttura dei dati a blocchi, fonte: Lagrange

Nella nuova struttura dati, Lagrange ha creato una struttura dati a blocchi che è amichevole per le prove di SNARK. Ogni foglia di questo albero è un'intestazione di blocco. La dimensione di questo numero è fissa. Se Ethereum produce un blocco una volta ogni 12 secondi, allora questo database può essere utilizzato per circa 25 anni.

Nella macchina virtuale ZKMR di Lagrange, il suo calcolo prevede due passaggi:

  1. Mappa: una macchina distribuita mappa interi dati e genera coppie chiave-valore.

  2. Riduci: i computer distribuiti calcolano le prove separatamente e quindi uniscono tutte le prove.

In breve, ZKMR può combinare prove di calcoli più piccoli per creare prove dell’intero calcolo. Ciò consente a ZKMR di scalare in modo efficiente per eseguire prove computazionali complesse su set di dati di grandi dimensioni che richiedono più passaggi o livelli di calcolo. Ad esempio, se Uniswap viene distribuito su 100 catene, se si desidera calcolare il prezzo TWAP di un determinato token su 100 catene, saranno necessari molti calcoli e integrazioni. A questo punto, ZKMR può calcolare ciascuna catena separatamente e poi combinare Prendiamo una prova di calcolo completa.

Processo operativo del coprocessore Lagrange, fonte: Lagrange

Quanto sopra è il suo processo di esecuzione:

  1. Il contratto intelligente dello sviluppatore si registra prima su Lagrange, quindi invia una richiesta di prova al contratto intelligente on-chain di Lagrange. In questo momento, il contratto proxy è responsabile dell'interazione con il contratto dello sviluppatore.

  2. Lagrange off-chain effettua una co-verifica suddividendo le richieste in piccoli compiti parallelizzabili e distribuendoli a diversi prover.

  3. Questo prover è in realtà una rete e la sicurezza della sua rete è garantita dalla tecnologia Restaking di EigenLayer.

Conciso

L'obiettivo di Succinct Network è integrare fatti programmabili in ogni parte dello stack di sviluppo blockchain (inclusi L2, coprocessori, ponti a catena incrociata, ecc.).

Processo operativo conciso, fonte: Conciso

Succinct può accettare codici che includono Solidity e linguaggio specializzato (DSL) nel campo a conoscenza zero e trasmetterli al co-processore Succinct fuori dalla catena. Succinct completa l'indice dei dati della catena di destinazione, quindi invia la richiesta di certificazione al mercato di certificazione, che può supportare CPU, minatori di GPU e chip ETC presentano prove nella rete di prove. La sua caratteristica è che il mercato delle prove è compatibile con vari sistemi di prova, perché ci sarà un lungo periodo di tempo in cui vari sistemi di prova coesisteranno in futuro.

Lo ZKVM off-chain di Succinct si chiama SP (Succinct Processor), che può supportare il linguaggio Rust e altri linguaggi LLVM. Le sue caratteristiche principali includono:

  1. Ricorsione + verifica: la tecnologia di verifica ricorsiva basata sulla tecnologia STARK può migliorare esponenzialmente l'efficienza della compressione ZK.

  2. Supporta il wrapper da SNARK a STARK: in grado di adottare i vantaggi di SNARK e STARK allo stesso tempo, risolvendo il problema del compromesso tra dimensione della prova e tempo di verifica.

  3. Architettura zkVM incentrata sulla precompilazione: per alcuni algoritmi comuni come SHA256, Keccak, ECDSA, ecc., possono essere compilati in anticipo per ridurre il tempo di generazione della prova di runtime e il tempo di verifica.

Confrontare

Quando confrontiamo i coprocessori ZK per scopi generali, facciamo principalmente confronti che soddisfano il primo principio dell'adozione di massa. Spiegheremo anche perché è importante:

  1. Problemi di indicizzazione/sincronizzazione dei dati: solo i dati on-chain completi e le funzioni di indicizzazione sincronizzata possono soddisfare i requisiti delle applicazioni basate su big data, altrimenti il ​​suo ambito di applicazione sarà relativamente unico.

  2. Basato sulla tecnologia: le tecnologie SNARK e STARK hanno punti decisionali diversi. Nel medio termine, la tecnologia SNARK sarà la principale e, nel lungo termine, la tecnologia STARK sarà la principale.

  3. Se supportare la ricorsione: solo supportando la ricorsione possiamo comprimere i dati in misura maggiore e ottenere una prova parallela dei calcoli. Pertanto, il raggiungimento della ricorsione completa è il punto forte tecnico del progetto.

  4. Sistema di prova: il sistema di prova influisce direttamente sulle dimensioni e sui tempi di generazione delle prove. Questa è la parte più costosa della tecnologia ZK. Attualmente, il mercato della potenza del cloud computing ZK e la rete di prova sono quelli principali.

  5. Cooperazione ecologica: in grado di giudicare se la sua direzione tecnica è riconosciuta dagli utenti di fascia B attraverso il terzo lato della domanda reale.

  6. Supporto a VC e stato del finanziamento: potrebbe essere in grado di indicare il successivo supporto delle risorse.

Fonte: Gate Ventures

In effetti, il percorso tecnico complessivo è molto chiaro, quindi la maggior parte delle tecnologie sono convergenti. Ad esempio, tutte utilizzano wrapper da STARK a SNARK, che possono sfruttare i vantaggi di STARK e SNARK allo stesso tempo, ridurre i tempi di generazione delle prove e di verifica. e resistere agli attacchi quantistici. Poiché la ricorsività dell'algoritmo ZK può influenzare notevolmente le prestazioni di ZK, attualmente tutti e tre i progetti hanno funzioni ricorsive. La generazione di prove dell’algoritmo ZK è quella in cui si consumano più costi e tempo. Pertanto, tutti e tre i progetti fanno affidamento sulla forte domanda di potenza di calcolo ZK per costruire una rete di dimostratori e un mercato della potenza di cloud computing. In considerazione di ciò, quando gli attuali percorsi tecnici sono molto simili, potrebbe essere più necessario sfondare il team e il VC dietro di loro per aiutare le risorse della cooperazione ecologica ad occupare quote di mercato.

Somiglianze e differenze tra coprocessore e Layer2

Diversamente da Layer2, il coprocessore è orientato all'applicazione, mentre Layer2 è ancora orientato all'utente. Il coprocessore può essere utilizzato come componente di accelerazione o componente modulare per formare i seguenti scenari applicativi:

  1. In quanto componenti di macchine virtuali fuori catena di ZK Layer2, questi Layer2 possono sostituire le proprie VM con coprocessori.

  2. Come coprocessore per applicazioni sulla catena pubblica per scaricare la potenza di calcolo fuori catena.

  3. Come oracolo per applicazioni sulla catena pubblica per ottenere dati verificabili da altre catene.

  4. Agisce come un ponte incrociato tra le due catene per trasmettere messaggi.

Questi scenari applicativi sono solo un elenco parziale. Per il coprocessore, dobbiamo capire che offre il potenziale della sincronizzazione in tempo reale dei dati e del Trusted Computing ad alte prestazioni e a basso costo lungo l'intera catena e può ricostruire in modo sicuro. quasi tutti i blocchi attraverso il coprocessore. Tutto il middleware della catena. Inclusi Chainlink e The Graph stanno attualmente sviluppando i propri oracoli e query ZK; i principali ponti cross-chain come Wormhole, Layerzero, ecc. stanno anche sviluppando una tecnologia di bridge cross-chain basata sulla formazione LLM (oracoli modello di grandi dimensioni) fuori catena; e ragionamento affidabile, ecc.

Problemi affrontati dai coprocessori

  1. C'è resistenza all'ingresso degli sviluppatori. La tecnologia ZK è teoricamente fattibile, ma ci sono ancora molte difficoltà tecniche e la comprensione esterna è difficile da comprendere. Pertanto, quando nuovi sviluppatori entrano nell'ecosistema, devono padroneggiare linguaggi e strumenti di sviluppo specifici. , potrebbe esserci una resistenza maggiore.

  2. Il percorso è in una fase molto iniziale. Le prestazioni di zkVM sono molto complesse e coinvolgono molteplici dimensioni (inclusi hardware, prestazioni a nodo singolo e multi-nodo, utilizzo della memoria, costo di ricorsione, selezione della funzione hash e altri fattori attualmente presenti). progetti in costruzione in varie dimensioni Il percorso è in una fase molto iniziale e lo schema non è ancora chiaro.

  3. I prerequisiti come l'hardware non sono ancora stati implementati. Dal punto di vista dell'hardware, l'attuale hardware tradizionale è costruito utilizzando ASIC e FPGA. I produttori includono Ingonyama, Cysic, ecc., che sono ancora in fase di laboratorio e non sono ancora stati commercializzati. Riteniamo che l'hardware sia la tecnologia ZK Prerequisiti per l'implementazione su larga scala.

  4. I percorsi tecnici sono simili ed è difficile avere un vantaggio tecnologico tra generazioni. Al momento, la competizione principale sono le risorse di VC dietro di esso e le capacità BD del team, e se può conquistare la nicchia ecologica delle applicazioni tradizionali e delle catene pubbliche. .

Riepilogo e prospettive

La tecnologia ZK è estremamente versatile e ha anche aiutato l’ecosistema Ethereum a passare da un orientamento al valore decentralizzato a un orientamento al valore senza fiducia. “Non fidarti, verificalo”, questa frase è la migliore pratica della tecnologia ZK. La tecnologia ZK può ricostruire una serie di scenari applicativi come bridge cross-chain, oracoli, query on-chain, calcoli off-chain, macchine virtuali, ecc. E il coprocessore ZK per scopi generali è uno degli strumenti per implementare la tecnologia ZK . Per ZK Coporcessor, il suo confine applicativo è così ampio da poter coprire qualsiasi scenario di applicazione DAPP reale. In teoria, tutto ciò che le applicazioni Web2 possono fare può essere ottenuto con il coprocessore ZK.

Curva di penetrazione tecnologica, fonte: Gartner

Sin dai tempi antichi, lo sviluppo della tecnologia è rimasto indietro rispetto all'immaginazione umana di una vita migliore (come Chang'e che vola sulla luna o Apollo che mette piede sulla luna). Se una cosa è veramente innovativa, sovversiva e necessaria, allora la tecnologia lo farà sicuramente realizzalo, ci vuole solo una domanda sul tempo. Riteniamo che il coprocessore universale ZK segua questa tendenza di sviluppo. Abbiamo due indicatori per il coprocessore ZK "Mass Adoption": un database dimostrabile in tempo reale lungo l'intera catena e un calcolo off-chain a basso costo. Se la quantità di dati è sufficiente e la sincronizzazione in tempo reale è abbinata a calcoli verificabili fuori catena a basso costo, il paradigma di sviluppo del software può essere completamente cambiato. Tuttavia, questo obiettivo è lentamente iterativo, quindi ci concentriamo sulla ricerca di tendenze o valore orientamenti coerenti con questi due punti del progetto, e l'implementazione dei chip informatici ZK è il prerequisito per l'applicazione commerciale su larga scala dei coprocessori ZK. Questo ciclo è privo di innovazione ed è il periodo finestra per costruire veramente la prossima generazione di "Mass Tecnologia e applicazioni di adozione. Ci aspettiamo che nel prossimo ciclo Durante il ciclo, la catena industriale ZK possa essere commercializzata, quindi ora è il momento di concentrarsi nuovamente su alcune tecnologie che possono davvero consentire a Web3 di trasportare un miliardo di interazioni di persone sulla catena.