Pasta curves (Pallas/Vesta) — formal verification source
Find a file
2021-08-06 01:23:27 +01:00
.github Bump MSRV to 1.51.0 2021-06-01 23:22:25 +01:00
benches bench: add baseline benches for Fp and Fq 2021-03-10 14:46:28 +01:00
book book: Fix broken links 2021-03-04 14:02:12 +00:00
src Enable Pasta curve elements to be used with group::Wnaf 2021-08-06 01:23:27 +01:00
.gitignore Add book/Makefile for local HTML generation. 2020-12-26 15:33:59 +00:00
Cargo.toml Release 0.1.1 2021-06-04 18:54:09 +01:00
CHANGELOG.md Release 0.1.1 2021-06-04 18:54:09 +01:00
Contributor_Agreement Correct numbering and add missing sections 2020-10-25 09:42:25 -07:00
COPYING Changing TGPPL references to BOSL 2021-04-16 09:50:44 -07:00
katex-header.html Initial commit 2020-08-22 14:15:39 -06:00
LICENSE-BOSL Changing TGPPL references to BOSL 2021-04-16 09:50:44 -07:00
README.md Bump MSRV to 1.51.0 2021-06-01 23:22:25 +01:00
rust-toolchain Bump MSRV to 1.51.0 2021-06-01 23:22:25 +01:00

pasta_curves

This crate provides an implementation of the Pasta elliptic curve constructions, Pallas and Vesta. More details about the Pasta curves can be found in this blog post.

Documentation

Minimum Supported Rust Version

Requires Rust 1.51 or higher.

Minimum supported Rust version can be changed in the future, but it will be done with a minor version bump.

Curve Descriptions

  • Pallas: y2 = x3 + 5 over GF(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001).

  • Vesta: y2 = x3 + 5 over GF(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001).

The Pasta curves form a cycle with one another: the order of each curve is exactly the base field of the other. This property is critical to the efficiency of recursive proof systems. They are designed to be highly 2-adic, meaning that a large power-of-two multiplicative subgroup exists in each field. This is important for the performance of polynomial arithmetic over their scalar fields and is essential for protocols similar to PLONK.

These curves can be reproducibly obtained using a curve search utility weve published.

License

Copyright 2020 The Electric Coin Company.

You may use this package under the Bootstrap Open Source Licence, version 1.0, or at your option, any later version. See the file LICENSE-BOSL for the terms of the Bootstrap Open Source Licence, version 1.0.

The purpose of the BOSL is to allow commercial improvements to the package while ensuring that all improvements are open source. See here for why the BOSL exists.