Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pod1introducer 1level recursion verifier in the RecursionCircuit & PlonkyPOD #27

Merged
merged 8 commits into from
Dec 6, 2024

Conversation

arnaucube
Copy link
Collaborator

@arnaucube arnaucube commented Nov 12, 2024

This PR adds the 1-level recursive verification of the POD1-Introducer proofs inside the RecursionCircuit.

In order to do a soft transition from the old RecursiveCircuit to the new one which verifies the POD1-Introducer proofs, a new parameter L is introduced.

With this, each iteration of the RecursionCircuit does:

  • OpsExecutor
  • L * POD1-Introducer proof verifications (this is 1-level recursion)
  • M * InnerCircuit logics (in practice the SchnorrPODGadget logic)
  • N * RecursionCircuit proof verifications (this is infinite-level recursion / cyclic recursion)



In the PEX code, this is currently used with L=0, so in practice the POD1-Introducer is 'disabled' (0 of them are verified); but to use the POD1-Introducer recursive verifier in the RecursiveCircuit, we just need to:

  • set L=1 (or other value >=1)
  • in PEX adding the respective POD1-Introducer proofs generations
  • define the IntroducerCircuit logic (eg. doing the babyjubjub verification there) (and use it in pex)

@arnaucube arnaucube marked this pull request as draft November 12, 2024 01:49
@arnaucube arnaucube force-pushed the pod1introducer-1level-recursion-verifier branch 3 times, most recently from 131b784 to c4435cc Compare November 12, 2024 16:00
arnaucube and others added 7 commits December 2, 2024 12:36
…r proof verification with the PlonkyButNotPlonkyPOD
…ork. Add an example of IntroducerCircuitTrait (ExampleIntroducer) which verifies a Schnorr signature, that is, the RecursionCircuit will verify the plonky2 proof of that circuit (together with M Schnorr sigs, and N cyclic-recursion proofs from previous RecursionCircuits
…rdata, recursive test now also tests pod1introducer 1lvl recursion verification
@arnaucube arnaucube force-pushed the pod1introducer-1level-recursion-verifier branch from dde6c4c to 758e70f Compare December 2, 2024 11:37
@arnaucube arnaucube marked this pull request as ready for review December 2, 2024 11:37
@arnaucube
Copy link
Collaborator Author

(rebased to latest main branch version)

@arnaucube arnaucube force-pushed the pod1introducer-1level-recursion-verifier branch 6 times, most recently from e52040e to ff20307 Compare December 2, 2024 15:00
@arnaucube arnaucube force-pushed the pod1introducer-1level-recursion-verifier branch from ff20307 to aed3206 Compare December 2, 2024 15:36
@arnaucube arnaucube requested a review from ludns December 4, 2024 09:17
@arnaucube
Copy link
Collaborator Author

Ready for review @ludns

Copy link
Collaborator

@ax0 ax0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

@ax0 ax0 merged commit 0bfb067 into main Dec 6, 2024
1 check passed
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.

2 participants