Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions AZIPs/azip-17.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# AZIP-17: Optimized Rollup Verifier

## Preamble

| `azip` | `title` | `description` | `author` | `discussions-to` | `status` | `category` | `created` |
| ------ | ------------------------- | ----------------------------------------------------------------------------------------- | ---------------------------------------- | ---------------- | -------- | ---------- | ---------- |
| 17 | Optimized Rollup Verifier | Switch the L1 root-rollup verifier to the hand-rolled inline-assembly UltraHonk verifier. | Mitchell Tracy (mitchell@aztec-labs.com) | - | Draft | Accepted | 2026-05-28 |

## Abstract

The L1 root-rollup verifier MUST be the inline-assembly UltraHonk Solidity verifier generated by `bb write_solidity_verifier --optimized`, replacing the high-level Solidity verifier previously used. The verified relation, the proof shape, and the verification key MUST be unchanged; only the on-chain implementation changes.

## Impacted Stakeholders

**Sequencers and Provers.** No proof-format change. Existing proofs verify identically against the new contract, just more cheaply.

**Infrastructure Providers.** No change.

**App Developers, Wallets, Token Bridges.** No change.

## Motivation

Root-rollup verification is expensive. Lowering verification gas directly reduces per-epoch sequencer cost and therefore user fees.

## Specification

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 and RFC 8174.

The rollup verifier deployed by `DeployRollupLib._deployVerifier` MUST be the `HonkVerifier` produced from `barretenberg/sol/src/honk/optimised/honk-optimized.sol.template` with the root-rollup verification key injected at code-generation time.

The verifier MUST implement the same UltraHonk verification as the non-optimized version.


## Rationale

A hand-rolled assembly verifier is the smallest change that captures the full gas saving without altering the underlying proof system.
## Backwards Compatibility

The verified relation, proof shape, and VK are unchanged, so existing proofs MUST verify against the new contract. The verifier contract address changes; any consumer pinning a verifier address MUST update.

## Test Cases

- Every existing rollup verifier test MUST pass against the new contract.

## Reference Implementation

Template: `barretenberg/sol/src/honk/optimised/honk-optimized.sol.template`. Generator: `bb write_solidity_verifier --scheme ultra_honk --disable_zk --optimized`. Rollup wiring: `noir-projects/noir-protocol-circuits/bootstrap.sh`, consumed by `l1-contracts/script/deploy/DeployRollupLib.sol`.

## Security Considerations

The optimized verifier MUST receive an external audit.

## Copyright Waiver

Copyright and related rights waived via [CC0](/LICENSE).
Loading