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

Separate coroutine circuits. #1076

Merged
merged 2 commits into from
Jan 31, 2024
Merged

Separate coroutine circuits. #1076

merged 2 commits into from
Jan 31, 2024

Conversation

porcuquine
Copy link
Collaborator

@porcuquine porcuquine commented Jan 24, 2024

This PR adds and exposes the minimal structure that should allow for creation of distinct circuits for each coroutine. This will be required in order to support actual NIVC proving.

Future work should include:

  • minimizing or at least reducing expensive clones. This may require revisiting the underlying data structures (the multiset, the queries map, etc.) to either allow for better sharing — or to accumulate the circuit-specific parts in a way that allows them to be more cheaply separated when needed.
  • supporting the equivalent of rc per coroutine circuit. Currently, the circuit will just contain exactly as many prove-and-remove steps as required for the actual computation witnessed. In reality, we need a fixed number per circuit — such that multiple circuits can be used if needed, and dummies (which don't affect the MemoSet or transcript) can be provided to pad. i.e. if rc=100 and a computation uses 240, then we would create 3 circuits, the last of which has 60 dummy padding instances.

@porcuquine porcuquine force-pushed the prove-coroutines branch 2 times, most recently from 838733e to 5938200 Compare January 24, 2024 23:26
@porcuquine porcuquine marked this pull request as ready for review January 26, 2024 20:29
@porcuquine porcuquine requested a review from a team as a code owner January 26, 2024 20:29
Copy link
Member

@gabriel-barrett gabriel-barrett left a comment

Choose a reason for hiding this comment

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

Nice work!

@porcuquine porcuquine added this pull request to the merge queue Jan 31, 2024
Merged via the queue into main with commit fe1fdeb Jan 31, 2024
11 checks passed
@porcuquine porcuquine deleted the prove-coroutines branch January 31, 2024 00:25
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