Kakarot is an (zk)-Ethereum Virtual Machine implementation written in Cairo. Kakarot is Ethereum compatible, i.e. all existing smart contracts, developer tools and wallets work out-of-the-box on Kakarot. It's been open source from day one. Soon available on Starknet L2 and L3.
Kakarot zkEVM is fully compatible with Ethereum. Developing on Kakarot and interacting with Kakarot dApps feels the same as on Ethereum. Ultimately, Kakarot will provide interoperability with native Starknet protocols and composability between protocols.
By leveraging the scalability benefits of Validity Rollups, STARKs and Starkware's CairoVM, Kakarot scales Ethereum through batching of verifiable transactions. Kakarot aims to become a major zkEVM appchain provider.
Kakarot is part of the zkRollup technical stack. It inherits its security from Ethereum L1 through validity proofs. To ensure the integrity of the Kakarot Ethereum Virtual Machine (EVM), Kakarot will be subjected to the main Ethereum test suites.
Kakarot is an implementation of the Ethereum Virtual Machine (EVM), developed using the Cairo programming language. It can be compared to Geth's EVM, which is written in Golang. The main differentiating factor for an EVM written in Cairo is that its transactions are provable. This capability is achieved by utilizing the CairoVM, a Turing-complete provable CPU architecture, which serves as the underlying layer for Kakarot. A zkEVM, or zero-knowledge EVM, is essentially an EVM where transactions can be proven and verified.
Currently, Kakarot zkEVM lives as a smart contract deployed on Starknet. By exposing an Ethereum JSON-RPC client, developers can deploy any Solidity (or EVM code) on Kakarot, as they would on Ethereum or Polygon. Their end-users are then able to interact with dApps with their usual toolchain (Metamask, Wallet connect, etc.).