feat: range check arbitrary size word columns #463
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Rationale for this change
Currently, it is possible to argue the correct ranges of scalars up to the word value size, but anything below or beyond this value (currently 256 for byte sized words) will fail to verify. This PR expands range check on a scalar column to arbitrary lengths.
What changes are included in this PR?
Benchmarks
Attempted to introduce rayon to optimize word decomposition and some of the matrix operations in the log deriv function, but this attempt didnt seem to yield any benefits:
2^16 Columns:
2^20 Columns:
The cost of range check is likely dominated by the many inversions that take place, and these are already optimized with rayon. Will try and find other areas of the current code to optimize.
Are these changes tested?
Benching analysis
Analysis: Scaling from 2^16 to 2^20 in Dory Range Check Proofs
Key Metrics
Scaling Analysis
Observations