Commit 6ecf144
committed
feat(stark): shared FRI across all tables in batched mode
Replace per-table FRI with ONE shared FRI when all tables have the same
LDE domain size (batched mode). Each table still computes its own DEEP
composition polynomial (different z per table), then all DEEP polys are
alpha-batched into a single evaluation vector for one FRI commit phase,
one grinding step, and one query set.
Prover changes:
- Add compute_per_table_deep_evaluations: does Rounds 3-3.5 (OOD eval +
DEEP poly computation) without running FRI
- Batched Step 3 now: (a) per-table DEEP computation in parallel,
(b) build shared FRI transcript with all OOD data, sample alpha,
(c) alpha-batch DEEP polys with iFFT+FFT extension to LDE domain,
(d) one FRI commit + grind + query, (e) shared openings from batched trees
- Per-table StarkProofs get empty FRI fields in batched mode
Verifier changes:
- Add verify_composition_only: steps 1-2 without FRI (for shared FRI mode)
- multi_verify detects shared FRI via MultiProof fields
- Shared FRI path: per-table composition check, then reconstruct shared
FRI transcript, sample alpha, alpha-batch per-table DEEP reconstructions
at query points, verify one FRI fold chain + openings
Proof format:
- MultiProof gains optional shared FRI fields (fri_layers_merkle_roots,
fri_last_value, query_list, deep_poly_openings, nonce)
- Non-batched path unchanged (shared fields are None)1 parent 436cb20 commit 6ecf144
4 files changed
Lines changed: 799 additions & 77 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
99 | 117 | | |
0 commit comments