Sumcheck is an interactive proof protocol whose purpose is for a prover to provide a verifier with a specially constructed sum over a multi-variate polynomial. In particular, sumcheck uses sum evaluations over a boolean hypercube for all boolean inputs. In a traditional setting this operation can be performed by simply sharing the entire multi-variant polynomial with the verifier for evaluation. However this is computational expensive, using sumcheck, the verifier can perform this evaluation more efficiently.
The goal of this implementation is to extend the foundational polynomial libraries in Ronkathon to include a multivariate implementation and further implement the sumcheck operation over that multivariate implementation.
Requirements
Implementations of Sumcheck and Multivariate Polynomial using ronkathon's existing Univariate Polynomial as a starting point.
The README's in this repository are intended to be good resource's.
Criteria
The winner will be selected based on the following criteria, in this order:
Correctness and security: Thorough convincing that the implementation are completely correct and secure. All requirements must be met. It is reasonable to implement over a small (insecure) field for educational properties.
Code clarity and quality: Succinct, easy-to-follow code with appropriate naming conventions. Utilize Rust's type system for flexibility and security (e.g., compile-time checks where possible). Avoid external crates. Optimizations should be a lower priority than clarity, but can be included behind a feature flag as a bonus.
Documentation quality: Provide comprehensive READMEs, Cargo docs, and inline comments where code itself is not self-explanatory. Remember that ronkathon is primarily an educational toolbox, so prioritize clarity and readability to facilitate learning.
Comparison and vulnerability analysis: As a bonus, include a brief comparison of Sumcheck and contrast it with PLONK PIOP and STARK PIOP, highlighting their strengths, weaknesses, and appropriate use cases. This will enhance the educational value of the implementation.
Remember, ronkathon prioritizes learning and growth. Your contribution should maintain this focus throughout the implementation and documentation process.
Sumcheck
Sumcheck is an interactive proof protocol whose purpose is for a prover to provide a verifier with a specially constructed sum over a multi-variate polynomial. In particular, sumcheck uses sum evaluations over a boolean hypercube for all boolean inputs. In a traditional setting this operation can be performed by simply sharing the entire multi-variant polynomial with the verifier for evaluation. However this is computational expensive, using sumcheck, the verifier can perform this evaluation more efficiently.
The goal of this implementation is to extend the foundational polynomial libraries in Ronkathon to include a multivariate implementation and further implement the sumcheck operation over that multivariate implementation.
Requirements
Implementations of Sumcheck and Multivariate Polynomial using ronkathon's existing Univariate Polynomial as a starting point.
Resources
Criteria
The winner will be selected based on the following criteria, in this order:
Remember, ronkathon prioritizes learning and growth. Your contribution should maintain this focus throughout the implementation and documentation process.