As a layer 2 rollup on Ethereum, the Aztec network includes components that look similar to other layer 2 networks, but since it handles private state it also includes many new components.
On this page we will introduce the high level network architecture for Aztec with an emphasis on the concepts that are core to understanding Aztec, including:
High level network architecture
An overview of the Aztec network architecture will help contextualize the concepts introduced in this section.
A user of the Aztec network will interact with the network through Aztec.js. Aztec.js is a library that provides APIs for managing accounts and interacting with smart contracts (including account contracts) on the Aztec network. It communicates with the Private eXecution Environment (PXE) through a
PXE implementation, allowing developers to easily register new accounts, deploy contracts, view functions, and send transactions.
Private Execution Environment
The PXE provides a secure environment for the execution of sensitive operations, ensuring private information and decrypted data are not accessible to unauthorized applications. It hides the details of the state model from end users, but the state model is important for Aztec developers to understand as it has implications for private/public execution and L1/L2 communication. The PXE also includes the ACIR Simulator for private executions and the KeyStore for secure key management.
Procedurally, the PXE sends results of private function execution and requests for public function executions to the sequencer, which will update the state of the rollup.
The sequencer aggregates transactions into a block, generates proofs of the state updates (or delegates proof generate to the prover network) and posts it to the rollup contract on Ethereum, along with any required public data for data availability.
Here are links to pages with more information about the network components mentioned above: