LogoLogo
LogoLogo
  • Introduction
    • About Us
    • Notations & Definitions
      • MPC
      • ZK
    • Contribute to this Site!
  • Primitives
    • Multiplication
      • Karatsuba Multiplication
      • Toom-Cook Multiplication
    • NAF (Non-adjacent form)
    • Chinese Remainder Theorem (CRT)
    • Euclidean Algorithm
      • Extended Euclidean Algorithm
      • Binary Euclidean Algorithm
      • Extended Binary Euclidean Algorithm
    • Coding Theory
      • Linear Code
    • Number Theoretic Transform
    • Abstract Algebra
      • Group
        • -Morphisms
        • Batch Inverse
      • Elliptic Curve
        • Weierstrass Curve
          • Coordinate Forms
          • Fast Elliptic Curve Arithmetic and Improved WEIL Pairing Evaluation
        • Edwards Curve
          • Coordinate Forms
          • Twisted Edwards ↔ Short Weierstrass Transformation
        • Batch Inverse for Batch Point Additions
        • Scalar Multiplication
          • Double-and-add
          • GLV Decomposition
        • MSM
          • Pippenger's Algorithm
          • Signed Bucket Index
          • CycloneMSM
          • EdMSM
          • cuZK
        • 2-Chain and 2-Cycle of Elliptic Curves
    • Encryption Scheme
      • ElGamal Encryption
    • Modular Arithmetic
      • Modular Reduction
        • Barrett Reduction
        • Montgomery Reduction
      • Modular Inverse
        • Bernstein-Yang's Inverse
    • Multiset Check
    • Sumcheck
    • Commitment Scheme
      • Fflonk
      • SHPlonk
      • Zeromorph
  • MPC
    • Yao's Garbled Circuits
    • GMW
    • BMR
  • ZK
    • Arithmetization
      • R1CS
      • PLONK
      • AIR
    • Folding
      • LatticeFold
      • Nova
        • Nova over Cycles of Curves
    • Lookup
      • Lasso
      • LogUp-GKR
    • SNARK
      • Groth16
      • HyperPlonk
      • Spartan
        • SPARK
    • STARK
      • Additive NTT
      • Basefold
      • Binius
      • Brakedown
      • CircleSTARK
      • FRI
        • FRI Security Features and Optimizations
      • DEEP FRI
      • STIR
      • WHIR
    • Distributed ZK
      • Ryan's Trick for Distributed Groth16
  • Application
    • zkLogin
    • zkHoldem
    • zkTLS
      • DECO
      • Proxying is enough
  • zkVM
Powered by GitBook
On this page
  • Affine
  • Problem
  • Extended Affine
  • Point Representation:
  • Problem
  • Solution
  • Affine Extended Affine
  • Extended Affine Affine
  • Extended Projective
  • Point Representation:
  • Elliptic Curve Equation:
  • Affine Extended Projective
  • Extended Projective Affine
  • Calculating Operations
  • Summary of all forms:
  • References
Export as PDF
  1. Primitives
  2. Abstract Algebra
  3. Elliptic Curve
  4. Edwards Curve

Coordinate Forms

Affine (x,y)(x, y)(x,y)

Affine form refers to the regular (x,y)(x,y)(x,y) form of coordinates on an xyxyxy-plane.

Problem

In affine form, every addition or doubling requires field inversion when computing fractions (e.g., 11+dx1x2y1y2\frac{1}{1 + dx_1x_2y_1y_2}1+dx1​x2​y1​y2​1​). Like with Weierstrass curves, this becomes the bottleneck for performance.

Extended Affine (x,y,xy)(x, y, xy)(x,y,xy)

Extended Affine form is a lightweight optimization over the basic affine coordinates. It explicitly stores the product xyxyxy, which is used repeatedly in twisted Edwards point addition formulas. This avoids redundant multiplications and slightly speeds up scalar multiplication loops.

Point Representation:

A point is stored as:

(x,y,xy)(x, y, xy)(x,y,xy)

This means we store:

  • xxx: the affine x-coordinate

  • yyy: the affine y-coordinate

  • t=xyt = xyt=xy: the product of x and y

Problem

In standard affine form, when computing twisted Edwards additions, the term xyxyxy appears frequently. Without optimization, it must be recomputed each time.

Solution

By storing t=xyt = xyt=xy explicitly as a third coordinate, we reduce the number of field multiplications per operation. Though this doesn't eliminate field inversions like projective coordinates do, it provides a minimal memory overhead with noticeable performance gain in systems where full projective coordinates are unnecessary or costly.

Affine ⟹\Longrightarrow⟹ Extended Affine

(x,y)⟹(x,y,xy)(x, y) \Longrightarrow (x, y, xy)(x,y)⟹(x,y,xy)

Extended Affine ⟹\Longrightarrow⟹ Affine

Simply discard the third value:

(x,y,t)⟹(x,y)(x, y, t) \Longrightarrow (x, y)(x,y,t)⟹(x,y)

Extended Projective (X:Y:Z:T)(X : Y : Z : T)(X:Y:Z:T)

To eliminate the need for inverses during addition and doubling, extended projective coordinates are widely used. This is the most efficient coordinate system for twisted Edwards curves.

Point Representation:

x=XZ,y=YZ,T=XYZx = \frac{X}{Z}, \quad y = \frac{Y}{Z}, \quad T = \frac{XY}{Z}x=ZX​,y=ZY​,T=ZXY​

So, the point is stored as:

(X,Y,Z,T)(X, Y, Z, T)(X,Y,Z,T)

The extra coordinate TTT allows for more efficient addition formulas and better reuse of intermediate terms.

Elliptic Curve Equation:

In this form, the twisted Edwards curve becomes:

(aX2+Y2)Z2=Z4+dX2Y2(aX^2 + Y^2)Z^2 = Z^4 + dX^2Y^2(aX2+Y2)Z2=Z4+dX2Y2

However, in practice, point operations are implemented through optimized formulas that directly compute the result without explicitly evaluating this equation.

Affine ⟹\Longrightarrow⟹ Extended Projective

(x,y)⟹(X,Y,Z,T)=(x,y,1,xy)(x, y) \Longrightarrow (X, Y, Z, T) = (x, y, 1, xy)(x,y)⟹(X,Y,Z,T)=(x,y,1,xy)

Extended Projective ⟹\Longrightarrow⟹ Affine

(X,Y,Z,T)⟹(XZ,YZ)(X, Y, Z, T) \Longrightarrow \left( \frac{X}{Z}, \frac{Y}{Z} \right)(X,Y,Z,T)⟹(ZX​,ZY​)

Calculating Operations

Summary of all forms:

Form
Point Form in Affine Form
Storage of values
Elliptic Curve Equation

Affine

Extended Affine

Extended Projective

References

PreviousEdwards CurveNextTwisted Edwards ↔ Short Weierstrass Transformation

Last updated 1 month ago

Refer to on the best practices on how to calculate addition and double operations on Projective coordinates.

(x,y)(x, y)(x,y)
(x,y)(x, y)(x,y)
ax2+y2=1+dx2y2ax^2 + y^2 = 1 + dx^2y^2ax2+y2=1+dx2y2
(x,y)(x, y)(x,y)
(x,y,t)(x, y, t)(x,y,t)
ax2+y2=1+dx2y2ax^2 + y^2 = 1 + dx^2y^2ax2+y2=1+dx2y2
(XZ,YZ)\left( \frac{X}{Z}, \frac{Y}{Z}\right)(ZX​,ZY​)
(X,Y,Z,T)(X, Y, Z, T)(X,Y,Z,T)
(aX2+Y2)Z2=Z4+dX2Y2(aX^2 + Y^2)Z^2 = Z^4 + dX^2Y^2(aX2+Y2)Z2=Z4+dX2Y2
Hyperelliptic for Extended Projective points
https://www.hyperelliptic.org/EFD/g1p/auto-twisted.html