Aztec is a first-of-its-kind hybrid zkRollup supporting both public and private smart contract execution.
Aztec is a first-of-its-kind hybrid zkRollup, enabling both public and private smart contract execution. Crucially, the ‘zk’ in zkRollup is used for both scalability and private state.
Yes! Aztec is a zkRollup, and is in fact a zk-zkRollup with two layers of zero knowledge circuits; one layer of zk to encrypt private user transactions and a second layer of zk to compress transactions, allowing Aztec to succinctly prove large bundles of encrypted state transitions. Aztec unlocks both benefits of zkSNARKs, actual zero-knowledge, plus succinctness!
Developers on Aztec can create smart contracts that read and modify private state. This allows for a completely new design space for applications that get built on Aztec. The ability to manipulate private state comes from Aztec’s innovative architecture and Noir, the smart contract language for Aztec. Noir is simple, flexible, and abstracts away much of the cryptography associated with using zero knowledge proofs to enable blockchain privacy.
Aztec is not a zkEVM, nor is it EVM compatible. Aztec is extending the functionality of Ethereum so, by definition, Aztec is expanding outside of the EVM. In order to enable encrypted compute, Aztec has its own UTXO-based state tree, a public state tree (similar to Ethereum’s Patricia-Merkle tree), and a zero-knowledge execution environment.
A zkEVM uses zero knowledge proofs to validate the correctness of execution of EVM opcodes. Aztec, on the other hand, uses zero knowledge proofs to validate the correctness of execution of state changes for Aztec’s encrypted UTXO architecture. A zkEVM attempts to mirror the functionality of Ethereum, plus scaling. Aztec has everything you love about Ethereum, plus scaling, plus encryption.
On the surface, there are similarities: Starknet uses a proprietary execution environment to prove computation on the Starknet network, while Aztec also uses a proprietary execution environment to prove compute on Aztec. The primary difference is that Aztec is encryption-first, meaning that developers can program private state into their smart contracts.
Aztec is a zkRollup on Ethereum, the most secure settlement layer in crypto. The validity of Aztec’s state changes is secured by Ethereum Layer 1. Privacy-focused Layer 1’s instead use their own security mechanisms to derive blockchain consensus.
Aztec does not support Solidity smart contracts because Aztec is not EVM-compatible. Aztec uses Noir, a generalized zero knowledge programming language as its smart contract language.