lambdaworks
lambdaworks copied to clipboard
Polynomial commitment scheme based on IPA
IPA stands for "Inner product argument". Bullelproofs is an example of an IPA. This paper explains how to build a Polynomial commitment scheme using an IPA (see Section 3). Also check out the halo2 docs and this Lambda blog post.
The task is to code this polynomial commitment scheme, using the standard API commit, open and verify. Make sure to implement the trait IsCommitmentScheme. Tests, docs and comments in the code should be included also.
I want to clarify a point regarding input validation. Before passing a vector to the commit method, should I create a function to check if the vector's elements satisfy the IsField trait? If this function returns true, I would then proceed to pass the vector to the commit method. If it returns false, should I discard the vector or take some other action? Is my understanding correct?