You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ARC-0008 - Support Snark Verification in Aleo Programs
#102
arc: 0008
title: Support Snark Verification in Aleo Programs
authors: @raychu86
discussion: #102
topic: Protocol
status: Draft
created: 11-28-25
Abstract
This ARC proposes adding new Snark verification opcodes (i.e. snark.verify and snark.verify.batch) to Aleo programs. These opcodes enable the verification of SNARK proofs, specifically Varuna proofs, within the finalize scope of a program. This enhancement enables native, intra-program proof verification and lays the foundation for modular proof composition directly on Aleo.
Motivation
The ability to verify SNARK proofs inside Aleo programs unlocks powerful new patterns in application design. Developers can:
Build programs that verify external computation.
Compose proofs from multiple sources on-chain.
Reduce trust assumptions by embedding verification directly into on-chain program execution.
This functionality also improves interoperability, allowing proofs produced off-chain or by other systems to be verified natively on Aleo.
Specification
This ARC introduces new finalize-only opcodes - snark.verify.*
Currently, the opcodes variants verify Varuna proofs and return a boolean result.
Because verifying keys and proofs can be large, this ARC also increases the maximum allowed array size from 512 to 2048 elements.
This ARC introduces new finalize-only opcodes and an increased array capacity. A network upgrade is required to activate the feature, tied to a new Consensus Version. No breaking changes to existing programs are expected.
Future Work
Future extensions may include support for additional ZK proof systems and/or more generalized proof verification APIs.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
arc: 0008
title: Support Snark Verification in Aleo Programs
authors: @raychu86
discussion: #102
topic: Protocol
status: Draft
created: 11-28-25
Abstract
This ARC proposes adding new Snark verification opcodes (i.e.
snark.verifyandsnark.verify.batch) to Aleo programs. These opcodes enable the verification of SNARK proofs, specifically Varuna proofs, within the finalize scope of a program. This enhancement enables native, intra-program proof verification and lays the foundation for modular proof composition directly on Aleo.Motivation
The ability to verify SNARK proofs inside Aleo programs unlocks powerful new patterns in application design. Developers can:
Specification
This ARC introduces new finalize-only opcodes -
snark.verify.*Currently, the opcodes variants verify Varuna proofs and return a boolean result.
Because verifying keys and proofs can be large, this ARC also increases the maximum allowed array size from 512 to 2048 elements.
Examples
snark.verify
snark.verify.batch
Reference Implementation
An implementation can be viewed here for your review - aleo-labs-protocol/snarkVM#3004
Backwards Compatibility
This ARC introduces new finalize-only opcodes and an increased array capacity. A network upgrade is required to activate the feature, tied to a new Consensus Version. No breaking changes to existing programs are expected.
Future Work
Future extensions may include support for additional ZK proof systems and/or more generalized proof verification APIs.
All reactions