The Pedersen hash is a low constraints friendly hash for Zk-Snarks.
Unlike many algorithms, the Pedersen hash returns a point P = (x,y) on a curve as a hash. Depending on the selected curve, there can exist a fast deterministic way to compute a different input that yields −P=(x,−y) using the Weierstrass form or −P=(−x,y) in the twisted Edwards form like the case here with BabyJubJub.

But in the current variant that interests me, M is hashed into individual segments of 200Bits and each coordinate/hash is added over the BabyJubJub curve. But more importantly, each 200bits segment is seeded by a different static Montgomery point/initialisation vector.

Does the use of different initialisation vector, means it’s that time impossible to modify M to get −P from P even in the Edwards form ?
Also, is There are potentials issues with this approach where collisions can happen only possible if M’s length isn’t a multiple of 4 ?



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.