scroll-tech / scroll-tech/zkvm-prover
Verify a batch of KZG proofs
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 33
- Forks
- 14
- PR merge metrics
- No merged PRs in 30d
Description
At the moment, the batch circuit's blob consistency module exposes functionality to verify a single KZG proof via the verify_kzg_proof method.
We would like to add functionality to verify a batch of KZG proofs:
/// Request to verify a single KZG proof
struct VerifyKzg {
/// random point of evaluation
z: Scalar,
/// evaluation of the blob polynomial evaluated at `z`
y: Scalar,
/// KZG commitment
commitment: G1Affine,
/// KZG proof
proof: G1Affine,
}
/// Alias for request to verify a batch of KZG proofs
type BatchVerifyKzg = Vec<VerifyKzg>;
/// Verify a batch of KZG proofs
pub fn verify_kzg_proof_batch(input: &BatchVerifyKzg) -> bool {
// refer: https://github.com/ethereum/consensus-specs/blob/dev/specs/deneb/polynomial-commitments.md#verify_kzg_proof_batch
todo!()
}
The verify_kzg_proof_batch should implement deneb specs as per verify_kzg_proof_batch.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in crates/types/batch/src/blob_consistency/openvm.rs at the existing verify_kzg_proof method, then read the Deneb polynomial-commitments specification linked in the issue. The work is complete when verify_kzg_proof_batch accepts the shown batch request and implements the specification's batch verification behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- blockchain, cryptography
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100