MerosCrypto / Meros

An instant and feeless cryptocurrency for the future, secured by the Merit Caching Consensus Mechanism.
https://meroscrypto.io
Other
83 stars 19 forks source link

Ristretto Python implements a FieldElement class and hash to curve yet doesn't use our Python hash to curve library. #304

Open kayabaNerve opened 3 years ago

kayabaNerve commented 3 years ago

I wrote one as part of my work with BLS. Ristretto defines one, which we aren't using, yet was implemented to further test the other parts of Ristretto. I should've done the two in the same place, yet the underlying Ed25519 code went through a LOT of changes and I missed it when working.

Also, as a side note, it's not a proper library. It's just a folder in the project. It may be beneficial to the wider community to expose it.

Not a blocker for Ristretto as it's code hygiene for our test suite in places we're likely to not edit anytime before launch.

kayabaNerve commented 3 years ago

To be clear, Ristretto utilizes Elligator which is what has been implemented. It is interesting that Ristretto runs Elligator twice, and implementing it into the Hash to Curve library will require adding another curve type (as we only have Weierstrass due to writing the entire generic setup solely for our BLS needs). As it's not meant to be a robust, independent library, I don't think this is high priority; just something which can be better.

kayabaNerve commented 3 years ago

It should be noted our library is of the IETF standard and Elligator is a fraction of that; the test vectors accordingly also use such a fraction. We cannot fully integrate it, so this is about maximizing integration.