This is a maintenance PR which changes a couple of things:
Added a populateCoefficientVector( )function to handle cases where the evaluation point is Inside/Outside Verkle Domain separately
Added a Transcript test to check consistency of challenge scalar after pointAppend
Added a test to ensure in domain division is working perfectly (using Barycentric Precomputes) and cross-tested it with Go
Added test 011 and 012 from Go verkle-test-vectors, and made fixes in functions wherever needed. The verkle cryptography backend is now fully consistent with Go and Nethermind, and can be further used in Verkle Tries without correctness issues (most likely) :)
Added test vectors from Nethermind team to ensure IPA proof consistency
Moved evalOutsideDomain() to common utilities because it can be used in Verkle Tries for testing
Upstreamed some of the leftover APIs and fixed indentation of that file.
Further possible optimizations:
Parallelize IPA Proof creation
Parallelize evaluating multiple polynomials
cc: thanks to @tanishqjasoria and @jsign for helping me with the test vectors.
This is a maintenance PR which changes a couple of things:
populateCoefficientVector( )
function to handle cases where the evaluation point is Inside/Outside Verkle Domain separatelyevalOutsideDomain()
to common utilities because it can be used in Verkle Tries for testingFurther possible optimizations:
cc: thanks to @tanishqjasoria and @jsign for helping me with the test vectors.