Kakarot : une introduction au premier zkEVM modulaire
TL;DR : Kakarot est un zkEVM de type 3 (bientôt de type 2.5), construit au-dessus de CairoVM. Le projet, qui a débuté en octobre 2022, a plusieurs objectifs en tête : open-source dès le premier jour, accueillir les contributions, et surtout, créer un zkEVM en moins de 10 000 lignes de code. Nous avons atteint cet objectif en seulement six mois. Nous publierons un testnet à la fin de l'été 2023.
Un glossaire est disponible à la fin de l'article pour le contexte sur EVM, zkRollups et zkEVM.
Une introduction incomplète sur CairoVM
CairoVM est une machine virtuelle qui permet une exécution prouvable . Il sert de base à Starknet , un cumul de validité de couche 2 (L2) à usage général dans l'écosystème Ethereum. La capacité de CairoVM à représenter l'exécution sous forme de polynômes permet à chaque transaction sur Starknet d'être prouvée à l'aide de STARK. Cela nécessite que les développeurs construisent des applications décentralisées (dApps) au Caire, le langage de programmation associé.
Dans les mots de l'équipe derrière Cairo, Lior Goldberg et Shahar Papini et Michael Riabzev :
Nous présentons Cairo, une architecture CPU pratiquement efficace et compatible avec STARK. Nous décrivons un seul ensemble d'équations polynomiales pour l'énoncé que l'exécution d'un programme sur cette architecture est valide. Étant donné une déclaration que l'on souhaite prouver, Cairo permet d'écrire un programme qui décrit cette déclaration, au lieu d'écrire un ensemble d'équations polynomiales.
À emporter : les programmes écrits au Caire sont prouvables, ce qui offre un avantage révolutionnaire : écrire des programmes prouvables dans un langage de haut niveau. Par conséquent, les développeurs qui cherchent à tirer parti de la propriété d'évolutivité de la cryptographie à connaissance nulle n'ont plus besoin d'écrire de circuits.
Alors, la réécriture de la machine virtuelle Ethereum (EVM) au Caire entraînerait-elle un zkEVM ?
L'appel aux armes de Shahar ou comment tout a commencé
Shahar Papini , le co-inventeur du Caire, a tweeté le 20 juillet 2022 :
L'idée était simple : l'EVM est une architecture de machine virtuelle mature et bien définie. 142 opcodes, 9 précompiles et un processus démocratique pour mettre à jour ces opcodes ou précompiles. Si on le construisait au Caire, obtiendrait-on un zkEVM « gratuitement », c'est-à-dire obtiendrait la propriété d'échelle de la connaissance nulle comme conséquence directe ? Alerte spoiler, oui.
À partir de là, l'idée a gagné du terrain dans la communauté Starknet. Abdel , le responsable de l'équipe d'exploration de Starkware et membre de l'équipe principale de développeurs d'Ethereum, a commencé à l'implémenter en octobre 2022. À peu près au même moment, la communauté des constructeurs open source de Starknet - réunie avec l'aide d'Onlydust - a lancé un projet similaire en parallèle . . Le premier a absorbé le second lors du StarknetCC à Lisbonne.
À la fin de 2022, Kakarot avait implémenté 100 % des opcodes EVM.
Une hacker house à Lisbonne, une semaine de travail acharné, et une dizaine de personnes construisant un zkEVM. L'équipe centrale de Kakarot est née. Nous avons réalisé que c'était faisable et puissant. Une implémentation naïve d'un zkEVM qui tient dans moins de 5 000 lignes de code. Pas de circuits, pas de polynômes. Juste du code expressif de haut niveau.
Avec l'aide de la Fondation Starknet et Onlydust, nous nous sommes lancés dans cette aventure. Nos valeurs étaient l'open source, les contributions ouvertes et une stratégie technique axée sur la communauté. Clément et moi avons dirigé et coordonné cet effort. Aujourd'hui, Kakarot compte plus de 40 contributeurs uniques. Alors que Kakarot intègre pour cristalliser l'effort autour de la construction d'un zkEVM de qualité production, nos valeurs perdurent : open-source pour toujours et ouvert aux contributions extérieures (+ récompenses par contribution - rejoignez-nous ! ).
En mai 2023, Kakarot avait atteint 100 % d'équivalence de bytecode (équivalent au zkEVM de type 3) et mis en œuvre 8 précompilations EVM sur 9 . Il en comptera bientôt neuf, atteignant ainsi le type 2.5, selon la typologie de Vitalik. En conséquence, les dApps écrites en Solidity ou tout autre langage pris en charge par EVM peuvent être déployées sur Kakarot sans nécessiter de modifications du code existant.
Et après? Un double pari : apporter l'EVM à Starknet et créer un produit zkEVM-Rollup-as-a-Service
Lorsque nous avons analysé le marché, nous avons remarqué que par rapport aux autres zkEVM, Kakarot est un outsider - une équipe de moins de 10 personnes avec un budget et une marque nettement plus petits. Le déploiement en tant que zkEVM L2 à usage général semblait risqué. Alors, quelles autres stratégies semblaient valables ? Apportez la compatibilité EVM à Starknet et tirez parti de la mise à l'échelle fractale.
Nous sommes convaincus que Cairo s'avérera être la meilleure boîte à outils pour l'ingénierie sans connaissance dans les années à venir. Nous pensons également que l'EVM restera la couche d'abstraction la plus courante pour les développeurs. C'est pourquoi nous apportons la compatibilité EVM à Starknet. Bientôt, les équipes pourront déployer leur Solidity dApp sur Starknet, via Kakarot.
De plus, nous pensons que les chaînes d'applications (ou les L3 spécifiques aux applications) émergeront plus tôt que prévu. La traction que la pile OP a gagnée en est un bon exemple. En tirant parti de la nature modulaire de Kakarot (base de code petite et flexible, adaptable à n'importe quelle chaîne Cairo), nous sommes en mesure de créer un outil zkRollup-as-a-service.
Un clic : un zkEVM déployé en tant que L3 au-dessus de Starknet pour une application spécifique. Environnement EVM, faible consommation d'énergie et exécution rapide. Sécurité cryptographique.
Pour avoir un aperçu de notre pile, jetez un œil à Madara , un séquenceur Starknet basé sur Substrate. Madara + Kakarot = Substrate & CairoVM basé sur zkEVM L3 !
Contexte & Glossaire
- EVM (Ethereum Virtual Machine) : L'EVM est une machine virtuelle complète de Turing qui exécute des contrats intelligents sur la blockchain Ethereum. Il sert d'environnement d'exécution pour ces contrats, traitant les instructions et gérant l'état du réseau. Les développeurs peuvent écrire des contrats intelligents dans des langages comme Solidity, qui sont ensuite compilés en bytecode EVM et exécutés par la machine virtuelle.
- zkRollups: zkRollups are Layer 2 scaling solutions for blockchain networks, particularly Ethereum. They bundle multiple transactions into a single proof, which is then posted on the main chain. By using zero-knowledge proofs, zkRollups enable greater throughput and lower transaction costs while maintaining a high level of security and decentralization.
- zkEVM (Zero-Knowledge Ethereum Virtual Machine): A zkEVM is an EVM implementation that incorporates zero-knowledge proof systems. It allows for the execution of smart contracts with increased privacy and scalability by leveraging cryptographic techniques to prove the correctness of transactions without revealing their details.
Rejoignez notre GitHub , nous avons de nombreux référentiels à explorer ! Le principal est Kakarot (implémentation Cairo 0.x) . Nous avons également une communauté Telegram ouverte :https://t.me/KakarotZkEvm.