Closed gballet closed 2 years ago
Can you specify the commit hash that you used for go-ipa and also for rust-verkle?
Note: Go outputs points using affine representation while rust outputs points using extended projective representation, so its not immediately clear to me that the outputs are different by solely looking at them in the format above.
rust-verkle commit hash: 11149e0a2a457d7c2b57ec0c4c01678d287f42ce (just before banderwagon)
go-ipa commit hash: 816621cb2ec4
The discrepancy is due to go-verkle returning a serialized commitment whereas rust-verkle returns group_to_field(commitment)
. The two implementations agree when the serialized commitment doesn't overflow the modulus. Closing this issue.
Here is a sample test modified from @tanishqjasoria:
go version:
rust version:
I traced it down to the polynomial evaluation for C1. The inputs are the same, the outputs are different:
inputs
go's SRS[6] and SRS[7]
rust's SRS[6] and SRS[7]
go's input polynomial at [6] and [7]:
rust:
outputs
go
rust