Elliptic Curves
EccChip
halo2_gadgets provides a chip that implements EccInstructions using 10 advice columns.
The chip is restricted to the Pallas curve, whose base field is and whose
scalar field is (see
The Pasta primes). Support for the Vesta
curve is tracked in issue #578.
Chip assumptions
A non-exhaustive list of assumptions made by EccChip:
- is not an -coordinate of a valid point on the curve.
- Holds for Pallas because is not square in .
- is not a -coordinate of a valid point on the curve.
- Holds for Pallas because is not a cube in .
Layout
The following table shows how columns are used by the gates for various chip sub-areas:
- - witnessing points.
- - incomplete point addition.
- - complete point addition.
- - Fixed-base scalar multiplication.
- - variable-base scalar multiplication, incomplete rounds.
- - variable-base scalar multiplication, complete rounds.
- - variable-base scalar multiplication, overflow check.