Kakarot: un'introduzione al primo zkEVM modulare

May 09 2023
TL; DR: Kakarot è uno zkEVM di tipo 3 (presto tipo 2.5), costruito sopra CairoVM.

TL; DR: Kakarot è uno zkEVM di tipo 3 (presto tipo 2.5), costruito sopra CairoVM. Il progetto, iniziato nell'ottobre 2022, ha diversi obiettivi in ​​mente: open-source fin dal primo giorno, accogliere contributi e, cosa più ambiziosa, creare uno zkEVM in meno di 10.000 righe di codice. Abbiamo raggiunto questo obiettivo in soli sei mesi. Rilasceremo un testnet alla fine dell'estate 2023.

Un glossario è disponibile alla fine dell'articolo per il contesto su EVM, zkRollups e zkEVM.

Un primer incompleto sul CairoVM

CairoVM è una macchina virtuale che consente un'esecuzione dimostrabile . Funge da base per Starknet , un rollup di validità Layer 2 (L2) generico nell'ecosistema Ethereum. La capacità di CairoVM di rappresentare l'esecuzione come polinomi consente di dimostrare ogni transazione su Starknet utilizzando STARK. Ciò richiede agli sviluppatori di creare applicazioni decentralizzate (dApp) al Cairo, il linguaggio di programmazione associato.

Nelle parole del team dietro Cairo, Lior Goldberg e Shahar Papini e Michael Riabzev:

Presentiamo Cairo, un'architettura CPU compatibile con STARK completa di Turing praticamente efficiente. Descriviamo un singolo insieme di equazioni polinomiali per l'affermazione che l'esecuzione di un programma su questa architettura è valida. Data un'affermazione che si desidera dimostrare, Cairo consente di scrivere un programma che descriva quell'affermazione, invece di scrivere un insieme di equazioni polinomiali.

Da asporto: i programmi scritti al Cairo sono dimostrabili, il che consente un vantaggio rivoluzionario: scrivere programmi dimostrabili in un linguaggio di alto livello. Di conseguenza, gli sviluppatori che cercano di sfruttare la proprietà di scalabilità della crittografia a conoscenza zero non hanno più bisogno di scrivere circuiti.

Quindi, la riscrittura della Ethereum Virtual Machine (EVM) al Cairo risulterebbe in una zkEVM?

La chiamata alle armi di Shahar o come tutto ebbe inizio

Shahar Papini , il co-inventore del Cairo, ha twittato il 20 luglio 2022:

L'idea era semplice: l'EVM è un'architettura VM matura e ben definita. 142 codici operativi, 9 precompilazioni e un processo democratico per aggiornare questi codici operativi o precompilazioni. Se lo si costruisse al Cairo, si otterrebbe uno zkEVM “gratis”, cioè si otterrebbe la proprietà di scalabilità della conoscenza zero come diretta conseguenza? Avviso spoiler, sì.

Da lì, l'idea ha preso piede nella comunità di Starknet. Abdel , a capo del team di esplorazione di Starkware e parte del team di sviluppatori di base di Ethereum, ha iniziato a implementarlo nell'ottobre 2022. Più o meno nello stesso periodo, la comunità di builder open source di Starknet, riunitasi con l'aiuto di Onlydust, ha avviato un progetto simile in parallelo . . Il primo ha assorbito il secondo durante lo StarknetCC di Lisbona.

Entro la fine del 2022, Kakarot aveva implementato il 100% dei codici operativi EVM.

Una casa di hacker a Lisbona, una settimana di lavoro dedicato e una decina di persone che costruiscono uno zkEVM. È nato il core team di Kakarot. Ci siamo resi conto che questo era fattibile e potente. Un'ingenua implementazione di un zkEVM che si adatta a meno di 5.000 righe di codice. Nessun circuito, nessun polinomio. Solo codice espressivo di alto livello.

Con l'aiuto della Starknet Foundation e di Onlydust, abbiamo intrapreso questa avventura. I nostri valori erano l'open source, i contributi aperti e la strategia tecnica guidata dalla comunità. Clément e io abbiamo guidato e coordinato questo sforzo. Oggi, Kakarot ha più di 40 contributori unici. Mentre Kakarot si sta incorporando per cristallizzare lo sforzo intorno alla costruzione di uno zkEVM di livello produttivo, i nostri valori perdurano: open-source per sempre e aperti a contributi esterni (+ premi per contributo - unisciti a noi! ).

A partire da maggio 2023, Kakarot ha raggiunto il 100% di equivalenza del bytecode (equivalente al tipo 3 zkEVM) e ha implementato 8 precompilazioni EVM su 9 . Presto li avrà tutti e nove, arrivando così al tipo 2.5, come da tipologia Vitalik. Di conseguenza, le dApp scritte in Solidity o in qualsiasi altro linguaggio supportato da EVM possono essere implementate su Kakarot senza richiedere alcuna modifica al codice esistente.

Qual è il prossimo? Una duplice scommessa: porta l'EVM su Starknet e crea un prodotto zkEVM-Rollup-as-a-Service

Quando abbiamo analizzato il mercato, abbiamo notato che rispetto ad altri zkEVM, Kakarot è un perdente: un team di meno di 10 persone con un budget e un marchio significativamente inferiori. La distribuzione come zkEVM L2 generico sembrava rischiosa. Quindi, quali altre strategie sembravano valide? Porta la compatibilità EVM su Starknet e sfrutta il ridimensionamento frattale.

Crediamo fermamente che il Cairo si rivelerà la migliore cassetta degli attrezzi per l'ingegneria a conoscenza zero nei prossimi anni. Riteniamo inoltre che l'EVM rimarrà il livello di astrazione più comune per gli sviluppatori. Questo è il motivo per cui stiamo portando la compatibilità EVM su Starknet. Presto, i team saranno in grado di implementare la loro dApp Solidity su Starknet, attraverso Kakarot.

Inoltre, pensiamo che le catene di app (o L3 specifiche per app) emergeranno prima di quanto le persone si aspettino. La trazione che lo stack OP sta guadagnando è un buon esempio. Sfruttando la natura modulare di Kakarot (base di codice piccola e flessibile, adattabile a qualsiasi catena Cairo), siamo autorizzati a creare uno strumento zkRollup-as-a-service.
Un clic: uno zkEVM distribuito come L3 su Starknet per un'app specifica. Ambiente EVM, gas basso ed esecuzione rapida. Sicurezza crittografica.

Per dare un'occhiata al nostro stack, dai un'occhiata a Madara , un sequencer Starknet basato su Substrate. Madara + Kakarot = Substrato e zkEVM L3 basati su CairoVM !

Contesto e glossario

  • EVM (Ethereum Virtual Machine): l'EVM è una macchina virtuale completa di Turing che esegue contratti intelligenti sulla blockchain di Ethereum. Funge da ambiente di runtime per questi contratti, elaborando le istruzioni e gestendo lo stato della rete. Gli sviluppatori possono scrivere smart contract in linguaggi come Solidity, che vengono poi compilati nel bytecode EVM ed eseguiti dalla macchina virtuale.
  • zkRollups: gli zkRollups sono soluzioni di ridimensionamento di livello 2 per reti blockchain, in particolare Ethereum. Raggruppano più transazioni in un'unica prova, che viene quindi pubblicata sulla catena principale. Utilizzando prove a conoscenza zero, zkRollups consente un throughput maggiore e costi di transazione inferiori mantenendo un elevato livello di sicurezza e decentralizzazione.
  • zkEVM (Zero-Knowledge Ethereum Virtual Machine): una zkEVM è un'implementazione EVM che incorpora sistemi a prova di zero-knowledge. Consente l'esecuzione di contratti intelligenti con maggiore privacy e scalabilità sfruttando tecniche crittografiche per dimostrare la correttezza delle transazioni senza rivelarne i dettagli.

Unisciti al nostro GitHub , abbiamo molti repository da esplorare! Il principale è Kakarot (implementazione Cairo 0.x) . Abbiamo anche una community aperta di Telegram:https://t.me/KakarotZkEvm.