Closed alv-around closed 11 months ago
Actual development of feature in https://github.com/Zokrates/ZoKrates/tree/jubjub
The testing of the implementation is challenging so far there is no specific library which the jubjub is implemented which correctness can be benchmark against.
For this purpose, the plan is to implement the jubjub curve first on pycrypto, collect feedback from the zokrates team and then add it to Zokrates.
Links:
Work in PR
PR submitted for review.
Currently, ZoKrates only supports signature verification on curve
bn128
. For that purpose the implementation ofBaby JubJub
curve was added to ZoKrates stdlib. TheBaby jubjub
was inspired on thejubjub
Curve proposed by Z-Cash (more on the reason for these curves on the Z-Cash link). The originaljubjub
uses thebls12_381
scalar field. Thebls12_381
is popular eliptic curve (ec) used in blockchains such as Z-Cash and Tezos. However, Ethereum uses thebn128
ec and thus theBaby jubjub
curve the equivalent to thejubjub
curve.Adding support for the
jubjub
curve in the zokrates stdlib would enable the verificaton of signatures with Zokrates for thebls12_381
curve (and thus in other blockchains such as Tezos and Z-Cash between others). The feature has been discussed in Tezos Agora and proposed as feature request in ZoKratesConversation of the issue on Tezos Agora
🧑🏭 Feature: https://github.com/Zokrates/ZoKrates/pull/1282
ZoKrates:
Background
Why do Zokrates use the Baby JubJub curve to verify signatures and not the underlying bn128 curve?
Detailed answer here
Paper about eliptic curve circuits for ZKP