Verify the OP Succinct binaries
When deploying OP Succinct in production, it's important to ensure that the SP1 programs used when generating proofs are reproducible.
Introduction
Recall there are two programs used in OP Succinct:
range
: Proves the correctness of an OP Stack derivation + STF for a range of blocks.aggregation
: Aggregates multiple range proofs into a single proof. This is the proof that lands on-chain. The aggregation proof ensures that allrange
proofs in a given block range are linked and use therangeVkeyCommitment
from theL2OutputOracleProxy
as the verification key.
Prerequisites
To reproduce the OP Succinct program binaries, you first need to install the cargo prove toolchain.
Ensure that you have the latest version of the toolchain by running:
sp1up
Confirm that you have the toolchain installed by running:
cargo prove --version
Verify the SP1 binaries
To build the SP1 binaries, first ensure that Docker is running.
docker ps
Then build the binaries:
cd programs/range
# Build the range elfs
cargo prove build --elf-name range-elf-bump --docker --tag v4.1.7
cargo prove build --elf-name range-elf-embedded --docker --tag v4.1.7 --features embedded
cd ../aggregation
# Build the aggregation-elf
cargo prove build --elf-name aggregation-elf --docker --tag v4.1.7
Now, you can verify the binaries. The config
script outputs the rollup config hash, aggregation verification key, and range verification key commitment based on the ELFs in /elf
.
cargo run --bin config --release