zkcrypto / bls12_381

Implementation of the BLS12-381 pairing-friendly elliptic curve group
Other
304 stars 178 forks source link

Zero point for SWJacobian #29

Open DanieleDiBenedetto opened 4 years ago

DanieleDiBenedetto commented 4 years ago

Hi, shouldn't the zero point in SW Jacobian be any point of the form (t^2:t^3:0) with t <> 0 (conventionally represented with (1:1:0)), instead of (0:1:0), which is actually the zero point in SWProjective ? https://github.com/zkcrypto/bls12_381/blob/e32494e72011b9811bd7f5c34af5ff6785cc75db/src/g1.rs#L516

ebfull commented 4 years ago

Originally the code was using projective formulas, and I actually think I might switch to them (after some benchmarks) but I wanted to have an implementation with Jacobian to benchmark against after other optimizations have been written, that way I know it's worth it. (#2)

The choice of representation here doesn't matter though. The API does not provide access to the raw coordinates, so this can be switched later without breaking anything.