Skip to content

batched sumcheck suffix alignment #870

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

Merged
merged 11 commits into from
Mar 21, 2025

Conversation

hero78119
Copy link
Collaborator

@hero78119 hero78119 commented Mar 20, 2025

To close #867

New design only apply on prover, as verifier logic remains unchanged

benchmark

original e2e benchmark result remain no change, which is expected

fibonacci_max_steps_1048576/prove_fibonacci/fibonacci_max_steps_1048576
                        time:   [3.9061 s 3.9327 s 3.9608 s]
                        change: [-2.0470% -1.2697% -0.4292%] (p = 0.01 < 0.05)
                        Change within noise threshold.

@hero78119 hero78119 changed the title modify batched sumcheck final opening point alignment batched sumcheck suffix alignment Mar 20, 2025
@hero78119 hero78119 enabled auto-merge March 21, 2025 02:39
@hero78119 hero78119 added this pull request to the merge queue Mar 21, 2025
Copy link
Member

@spherel spherel left a comment

Choose a reason for hiding this comment

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

LGTM!

Merged via the queue into scroll-tech:master with commit 62103a9 Mar 21, 2025
4 checks passed
@hero78119 hero78119 deleted the feat/sumcheck branch March 21, 2025 02:47
@hero78119 hero78119 mentioned this pull request Apr 12, 2025
2 tasks
github-merge-queue bot pushed a commit that referenced this pull request Apr 17, 2025
Build on top of #901.

### Design rationale
zkvm + mpcs api: use `batch_commit/batch_opening` to commit/open **ALL**
opcode together. In more detail, we commit `fixed_commit` and
`witin_commit` separately with just one opening.
basefold: batch opcodes with rmm with different "height", in other
words, different "num_vars".

For basefold to batch opcodes with different variables, for sumcheck
part we apply suffix alignment techniques based on
#870. For FRI part, we also apply suffix alignment techniques. So the
smaller codeword will "involved" into the folding process when current
length match.

During implementation, there is key principle in mind: verifier only
rely on one untrusted information "num_instances" from prover, and other
information should derived from verifier key.

### Working items
- [x] mpcs batch api + batch basefold prover
- [x] batch basefold verifier

### Fibonacci Benchmark Results

| Size | Branch | Proof Size | E2E Latency Change | Prover Speed (kHz) |

|----------|----------------------|------------|--------------------|---------------------|
| 2²⁰ | Master | 14.68 MB | - | 363 |
| 2²⁰ | Batched + conjecture | 1.16 MB | -14.195% | 422 |
| 2²⁰ | Batched | 2.02 MB | -11.599% | 411 |
| 2²¹ | Master | 15.53 MB | - | 411 |
| 2²¹ | Batched + conjecture | 1.24 MB | -11.178% | 451 |
| 2²¹ | Batched | 2.16 MB | -6.4525% | 428 |
| 2²² | Master | 16.42 MB | - | 406 |
| 2²² | Batched + conjecture | 1.31 MB | -11.178% | 433 |
| 2²² | Batched | 2.31 MB | -13.691% | 448 |
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.

[sumcheck] modify batched sumcheck final opening point alignment
2 participants