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.