Elliptic Curves
EccChip
halo2_gadgets
provides a chip that implements EccInstructions
using 10 advice columns.
The chip is currently restricted to the Pallas curve, but will be extended to support the
Vesta curve in the near future.
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.