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

feat(ivc): support large step circuit size #319

Open
chaosma opened this issue Jul 29, 2024 · 0 comments
Open

feat(ivc): support large step circuit size #319

chaosma opened this issue Jul 29, 2024 · 0 comments
Labels
perf Only applies to optimizations and performance acceleration
Milestone

Comments

@chaosma
Copy link
Collaborator

chaosma commented Jul 29, 2024

In sirius, we try to minimize the number of commitments. This is because the ecc scalar mul in verifier circuit is very costly. Thus, the commitment key size roughly equals the total number of rows times total number of columns times the bits of field.

When we fold large circuit, e.g. zkevm circuit. The key might be too large. Given the zkevm circuit data:

the row number is roughly 2^20; advice column number is 884 . number of fixed col+selectors is 250.
We commit fixed and advice columns separately. It means the key size is roughly 2^30*256/2^30=256GB.

To solve this issue, we need reduce the key size while increasing number of commitments. Thus the verifier circuit size will be increased. However, this is acceptable because the step circuit size is larger than ivc part.

For example, if we reduce the key size by 8, the ivc circuit part will increase at most 8 which is 2^17*8=2^20, the total number of rows is unchanged. Now, the key size in the worst case is 32GB.

@cyphersnake cyphersnake added this to the zk-evm milestone Jul 30, 2024
@cyphersnake cyphersnake added the perf Only applies to optimizations and performance acceleration label Jul 30, 2024
cyphersnake added a commit that referenced this issue Sep 13, 2024
**Motivation**
Part of #319

**Overview**
- Add field with step-circuit instances to `StepConfig`
- Assign step-circuit instances into witness and made equality check with copy-constraint
- Add `instances` example for test & give example of instances usage inside a step circuit. Will improve, at the end of #319
cyphersnake added a commit that referenced this issue Sep 17, 2024
**Motivation**
Part of #319

**Overview**
Penultimate part #319. As part of this PR I have prepared a permutation
check for any number of instances

I should also note the simplifications of the algorithm for preparing
the permutation matrix, taking flat index directly from column
cyphersnake added a commit that referenced this issue Sep 17, 2024
**Motivation**
Part of #319

**Overview**
- Add field with step-circuit instances to `StepConfig`
- Assign step-circuit instances into witness and made equality check with copy-constraint
- Add `instances` example for test & give example of instances usage inside a step circuit. Will improve, at the end of #319
cyphersnake added a commit that referenced this issue Sep 17, 2024
**Motivation**
Part of #319

**Overview**
- Add field with step-circuit instances to `StepConfig`
- Assign step-circuit instances into witness and made equality check
with copy-constraint
- Add `instances` example for test & give example of instances usage
inside a step circuit. Will improve, at the end of #319
cyphersnake added a commit that referenced this issue Sep 17, 2024
**Motivation**
Part of #319

**Overview**
Penultimate part #319. As part of this PR I have prepared a permutation
check for any number of instances

I should also note the simplifications of the algorithm for preparing
the permutation matrix, taking flat index directly from column
cyphersnake added a commit that referenced this issue Sep 17, 2024
**Motivation**
Since thanks to #319 we support as many instance columns as we like, the
old name can be misleading, so wherever possible we enter the name
"consistency marker", including this module

**Overview**
N/A
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
perf Only applies to optimizations and performance acceleration
Projects
None yet
Development

No branches or pull requests

2 participants