IsNonZero - ZeroP, returns 1 if the input is non-zero
NotLowOrder - Verify if a curve point is of low order
Validator - Combine NotLowOrder and IsOnCurve
Commitment - multi-point fixed-base commitment, for Pedersen Hashes
PedersenHash - using Commitment
Removes the following coordinates systems from jubjub.py:
Montgomery Affine
Montgomery XZ
Edwards YZ
I've also added a C++ implementation of Point, and made the from_y operation consistent between the C++ and Python implementations by detecting the sign of the X coordinate and inverting it if necessary. This was necessary because the different implementations of modulo square root returns differently signed values.
This implements the following new gadgets:
Removes the following coordinates systems from jubjub.py:
I've also added a C++ implementation of
Point
, and made thefrom_y
operation consistent between the C++ and Python implementations by detecting the sign of the X coordinate and inverting it if necessary. This was necessary because the different implementations of modulo square root returns differently signed values.This also merges in code from: https://github.com/HarryR/ethsnarks/pull/81 with the following gadgets:
I am working on tests.