Comments (2)
Yeah - this is an unfortunate consequence of using pre-defined degrees vs. actual degrees. There are two ways around it:
- If it is possible to insert random values somewhere in the column, the degree of the column would be guaranteed to be
trace_length - 1
. I've done something like this in one of the examples. - Another approach is to set the number of trace exceptions to 2 and then insert random values in all columns of the last row. This would also guarantee that degrees of all columns would be
trace_length - 1
.
It may also be possible to update the library in the future to rely on actual column degrees (instead of forcing them to always be trace_length - 1
. Originally, I decided against doing this because I assumed that checking the degree would be pretty expensive. However, I've never actually benchmarked this - and it is possible that the extra expense is negligible in the grand scheme of things.
from winterfell.
Thanks for your answer! Then maybe this is just about changing the error message. Right now it is not possible to accept columns with degree < trace_length-1 as part of the witness, and the message should indicate so.
from winterfell.
Related Issues (20)
- panic in merkle's verify_batch HOT 1
- catch a panic in merkle proof verification HOT 1
- Update proven security to include IOP terms HOT 2
- 🅆1🄽🅃3🅁🅂0🄻🄳13🅁47
- RandomCoin trait simplification HOT 1
- Will it be made into zkvm in the future? HOT 1
- Remove duplicate query check in FRI HOT 3
- Implementing Keccak256 HOT 4
- mulfib8 example circuit is underconstrained
- `f64` field: `BaseElement` should not be convertible from `u64` or `u128` without error HOT 1
- Add serialization/deserialization for `usize` type HOT 1
- Accomodating more expressive transition constraints HOT 2
- `TraceTable::with_meta()` should be marked `unsafe`
- Suggestion: Remove outdated griffin hash implementation HOT 1
- Generalize auxiliary trace building logic HOT 1
- Simplify 2-d matrix types
- Generalize `TransitionConstraints` and `BoundaryConstraints` HOT 1
- Consider using the standard benchmark harness instead of criterion HOT 1
- DEEP polynomial with Lagrange kernel
- `Deserializable` should have an associated type error
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from winterfell.