### 2 unstable releases

0.3.0 | Jun 6, 2021 |
---|---|

0.2.0 | Mar 24, 2021 |

#**13** in #pairing

**14,946** downloads per month

Used in less than **40** crates

**MIT/Apache**

380KB

9K
SLoC

# ark-ec

This crate defines Elliptic Curve traits, curve models that follow these traits, and multi-scalar multiplications.
Implementations of particular curves using these curve models can be found in

.`arkworks -rs/curves`

The available elliptic curve traits are:

- Interface for elliptic curve points in the 'canonical form' for serialization.`AffineCurve`

- Interface for elliptic curve points in a representation that is more efficient for most computation.`ProjectiveCurve`

- Pairing friendly elliptic curves (Contains the pairing function, and acts as a wrapper type on G1, G2, GT, and the relevant fields).`PairingEngine`

- Trait representing a cycle of elliptic curves.`CurveCycle`

- Trait representing a cycle of pairing friendly elliptic curves.`PairingFriendlyCycle`

The elliptic curve models implemented are:

*Short Weierstrass*curves. The

in this case is in typical Short Weierstrass point representation, and the`AffineCurve`

is using points in Jacobian Coordinates.`ProjectiveCurve`*Twisted Edwards*curves. The

in this case is in standard Twisted Edwards curve representation, whereas the`AffineCurve`

uses points in Extended Twisted Edwards Coordinates.`ProjectiveCurve`

#### Dependencies

~1.4–2.3MB

~51K SLoC