Kakarot: eine Einführung in das erste modulare zkEVM
TL;DR: Kakarot ist ein zkEVM vom Typ 3 (bald Typ 2.5), das auf der CairoVM aufbaut. Das Projekt, das im Oktober 2022 begann, hat mehrere Ziele vor Augen: Open-Source vom ersten Tag an, willkommene Beiträge und am ehrgeizigsten, die Erstellung eines zkEVM in weniger als 10.000 Codezeilen. Dieses Ziel haben wir in nur sechs Monaten erreicht. Wir werden Ende Sommer 2023 ein Testnet veröffentlichen.
Am Ende des Artikels steht ein Glossar mit Kontextinformationen zu EVM, zkRollups und zkEVM zur Verfügung.
Eine unvollständige Einführung in die CairoVM
Die CairoVM ist eine virtuelle Maschine, die eine nachweisbare Ausführung ermöglicht. Es dient als Grundlage für Starknet , ein universelles Layer 2 (L2) Validity Rollup im Ethereum-Ökosystem. Die Fähigkeit der CairoVM, die Ausführung als Polynome darzustellen, ermöglicht es, jede Transaktion auf Starknet mit STARKs zu beweisen. Dies erfordert, dass Entwickler dezentrale Anwendungen (dApps) in Kairo, der zugehörigen Programmiersprache, erstellen.
Mit den Worten des Teams hinter Cairo, Lior Goldberg und Shahar Papini und Michael Riabzev:
Wir präsentieren Cairo, eine praktisch effiziente Turing-vollständige STARK-freundliche CPU-Architektur. Wir beschreiben einen einzigen Satz von Polynomgleichungen für die Aussage, dass die Ausführung eines Programms auf dieser Architektur gültig ist. Angesichts einer Aussage, die man beweisen möchte, erlaubt Cairo, ein Programm zu schreiben, das diese Aussage beschreibt, anstatt einen Satz polynomischer Gleichungen zu schreiben.
Fazit: In Kairo geschriebene Programme sind beweisbar, was einen entscheidenden Vorteil ermöglicht: das Schreiben beweisbarer Programme in einer Hochsprache. Infolgedessen müssen Entwickler, die die Skalierbarkeitseigenschaft der Zero-Knowledge-Kryptografie nutzen möchten, keine Schaltkreise mehr schreiben.
Würde also das Umschreiben der Ethereum Virtual Machine (EVM) in Kairo zu einer zkEVM führen?
Shahars Ruf nach den Waffen oder wie alles begann
Shahar Papini , der Miterfinder von Kairo, twitterte am 20. Juli 2022:
Die Idee war einfach: Die EVM ist eine ausgereifte, wohldefinierte VM-Architektur. 142 Opcodes, 9 Vorkompilierungen und ein demokratischer Prozess zum Aktualisieren dieser Opcodes oder Vorkompilierungen. Sollte man es in Kairo bauen, würde man ein zkEVM „umsonst“ bekommen, also die Skalierungseigenschaft von Zero-Knowledge als direkte Folge erhalten? Spoiler-Alarm, ja.
Von da an gewann die Idee in der Starknet-Community an Bedeutung. Abdel , der Leiter des Explorationsteams von Starkware und Teil des Kernentwicklerteams von Ethereum, begann im Oktober 2022 mit der Implementierung. Etwa zur gleichen Zeit begann die Open-Source-Builder-Community von Starknet – zusammen mit der Hilfe von Onlydust – parallel ein ähnliches Projekt . Ersteres absorbierte Letzteres während des StarknetCC in Lissabon.
Bis Ende 2022 hatte Kakarot 100 % der EVM-Opcodes implementiert.
Ein Hackerhaus in Lissabon, eine Woche engagierte Arbeit und etwa zehn Leute, die ein zkEVM bauen. Das Kakarot-Kernteam war geboren. Wir erkannten, dass dies machbar und mächtig war. Eine naive Implementierung eines zkEVM, die in weniger als 5.000 Codezeilen passt. Keine Kreise, keine Polynome. Nur allgemeiner, aussagekräftiger Code.
Mit der Hilfe der Starknet Foundation und Onlydust haben wir uns auf dieses Abenteuer eingelassen. Unsere Werte waren Open Source, offene Beiträge und eine Community-gesteuerte technische Strategie. Clément und ich leiteten und koordinierten diese Bemühungen. Heute hat Kakarot mehr als 40 einzigartige Mitwirkende. Während Kakarot daran arbeitet, die Bemühungen um den Aufbau eines zkEVM in Produktionsqualität zu kristallisieren, bleiben unsere Werte bestehen: Open Source für immer und offen für Beiträge von außen (+ Belohnungen pro Beitrag – schließen Sie sich uns an! ) .
Seit Mai 2023 hat Kakarot eine 100-prozentige Bytecode-Äquivalenz erreicht (entspricht Typ 3 zkEVM) und 8 von 9 EVM-Vorkompilierungen implementiert . Es wird bald alle neun haben und damit den Typ 2.5 erreichen, gemäß der Typologie von Vitalik. Infolgedessen können in Solidity oder einer anderen EVM-unterstützten Sprache geschriebene dApps auf Kakarot bereitgestellt werden, ohne dass Änderungen am vorhandenen Code erforderlich sind.
Was kommt als nächstes? Eine zweifache Wette: Bringen Sie die EVM zu Starknet und bauen Sie ein zkEVM-Rollup-as-a-Service-Produkt
Als wir den Markt analysierten, stellten wir fest, dass Kakarot im Vergleich zu anderen zkEVMs ein Außenseiter ist – ein Team von weniger als 10 Personen mit einem deutlich kleineren Budget und einer deutlich kleineren Marke. Der Einsatz als Allzweck-zkEVM L2 schien riskant. Also, welche anderen Strategien erschienen vernünftig? Bringen Sie EVM-Kompatibilität in Starknet und nutzen Sie die fraktale Skalierung.
Wir sind fest davon überzeugt, dass sich Kairo in den kommenden Jahren als die beste Toolbox für Zero-Knowledge-Engineering erweisen wird. Wir glauben auch, dass die EVM die häufigste Abstraktionsebene für Entwickler bleiben wird. Aus diesem Grund bringen wir EVM-Kompatibilität zu Starknet. Bald können Teams ihre Solidity dApp über Kakarot auf Starknet bereitstellen.
Darüber hinaus glauben wir, dass App-Ketten (oder App-spezifische L3s) früher entstehen werden, als die Leute erwarten. Die Traktion, die der OP-Stack gewonnen hat, ist ein gutes Beispiel. Durch die Nutzung der modularen Natur von Kakarot (kleine und flexible Codebasis, anpassbar an jede Cairo-Kette) sind wir in der Lage, ein zkRollup-as-a-Service-Tool zu erstellen.
Ein Klick: ein zkEVM, das als L3 auf Starknet für eine bestimmte App bereitgestellt wird. EVM-Umgebung, wenig Gas und schnelle Ausführung. Kryptographische Sicherheit.
Um einen kurzen Blick auf unseren Stack zu werfen, werfen Sie einen Blick auf Madara , einen substratbasierten Starknet-Sequenzer. Madara + Kakarot = Substrate & CairoVM-basierte zkEVM L3s !
Kontext & Glossar
- EVM (Ethereum Virtual Machine): Die EVM ist eine Turing-vollständige virtuelle Maschine, die Smart Contracts auf der Ethereum-Blockchain ausführt. Es dient als Laufzeitumgebung für diese Verträge, verarbeitet die Anweisungen und verwaltet den Status des Netzwerks. Entwickler können Smart Contracts in Sprachen wie Solidity schreiben, die dann zu EVM-Bytecode kompiliert und von der virtuellen Maschine ausgeführt werden.
- zkRollups: zkRollups sind Layer-2-Skalierungslösungen für Blockchain-Netzwerke, insbesondere Ethereum. Sie bündeln mehrere Transaktionen zu einem einzigen Nachweis, der dann in der Hauptkette veröffentlicht wird. Durch die Verwendung von Zero-Knowledge-Proofs ermöglichen zkRollups einen höheren Durchsatz und niedrigere Transaktionskosten bei gleichzeitig hoher Sicherheit und Dezentralisierung.
- zkEVM (Zero-Knowledge Ethereum Virtual Machine): Eine zkEVM ist eine EVM-Implementierung, die Zero-Knowledge-Proof-Systeme enthält. Es ermöglicht die Ausführung intelligenter Verträge mit erhöhter Privatsphäre und Skalierbarkeit, indem kryptografische Techniken genutzt werden, um die Korrektheit von Transaktionen zu beweisen, ohne ihre Details preiszugeben.
Treten Sie unserem GitHub bei , wir haben viele Repositories zum Erkunden! Das wichtigste ist Kakarot (Cairo 0.x-Implementierung) . Wir haben auch eine offene Telegram-Community:https://t.me/KakarotZkEvm.