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-elf
cargo prove build --elf-name range-elf --docker --tag "v3.0.0"
cd programs/dummy-range
# Build the dummy-range-elf
cargo prove build --elf-name dummy-range-elf --docker --tag "v3.0.0"
cd ../aggregation
# Build the aggregation-elf
cargo prove build --elf-name aggregation-elf --docker --tag "v3.0.0"
Now, verify the binaries by confirming the output of vkey
matches the vkeys on the contract. The vkey
program outputs the verification keys
based on the ELFs in /elf
.
cargo run --bin vkey --release