Skip to content

Conversation

@preston4896
Copy link

@preston4896 preston4896 commented Oct 31, 2025

The prove_evm() method would not work for Aggregator programs, i.e. any guest programs that batch and verify existing proofs with verify_pico_proof() will fail. This is because it internally calls self.prove() which in turn discards all deferred proofs that is written to stdin by calling write_pico_proof() for proof aggregation on the host-side.

This as a result, causes the COMBINE phase of the proving chain to fail for the Aggregator.

In this PR, I implemented a prove_evm_with_deferred() method that calls prove_combine() instead of prove(). Once a combined proof has returned, it would continue along the proving chain ( COMPRESS -> EMBED -> ONCHAIN ) to generate a proof that is verifiable on-chain.

Host side programs that want to generate EVM-friendly aggregated proofs, would then simply call prove_evm_with_deferred().

I have a working demo of the Pico zkVM integration with our AWS Nitro Attestation, which generates aggregated proof of verification for multiple Nitro Enclave Attestations.

I look forward to hearing your feedback! :)

@preston4896 preston4896 changed the title Feature Request: Implement prove_evm_with_deferred() method in Pico SDK To Generate EVM-friendly Aggregated Proofs feat: Implement prove_evm_with_deferred() method in Pico SDK To Generate EVM-friendly Aggregated Proofs Oct 31, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant