#elliptic-curve #pasta #field #construction #recursion #plonk #vesta

no-std fil_pasta_curves

Pallas和Vesta(Pasta)曲线周期的实现

4个版本

0.5.2 2023年1月18日
0.5.1 2022年11月17日
0.5.0 2022年11月17日
0.3.1 2022年3月29日

#4 in #pasta

Download history • Rust 包仓库 58/week @ 2024-03-11 • Rust 包仓库 51/week @ 2024-03-18 • Rust 包仓库 46/week @ 2024-03-25 • Rust 包仓库 68/week @ 2024-04-01 • Rust 包仓库 31/week @ 2024-04-08 • Rust 包仓库 51/week @ 2024-04-15 • Rust 包仓库 46/week @ 2024-04-22 • Rust 包仓库 38/week @ 2024-04-29 • Rust 包仓库 42/week @ 2024-05-06 • Rust 包仓库 34/week @ 2024-05-13 • Rust 包仓库 24/week @ 2024-05-20 • Rust 包仓库 25/week @ 2024-05-27 • Rust 包仓库 43/week @ 2024-06-03 • Rust 包仓库 26/week @ 2024-06-10 • Rust 包仓库 36/week @ 2024-06-17 • Rust 包仓库 28/week @ 2024-06-24 • Rust 包仓库

每月135次下载
用于 3 crates

MIT/Apache

155KB
3.5K SLoC

pasta_curves

此crate提供了Pasta椭圆曲线构造(Pallas和Vesta)的实现。有关Pasta曲线的更多详细信息,请参阅这篇博客文章

文档

最低支持的Rust版本

需要Rust 1.56 或更高版本。

最低支持的Rust版本可能在将来更改,但将以小版本号的升级方式进行。

曲线描述

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

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

Pasta曲线相互形成一个循环:每个曲线的阶恰好是另一个的基础域。这个属性对于递归证明系统的效率至关重要。它们被设计成高度2-adic,这意味着每个域中存在一个大的2的幂次乘法子群。这对于它们标量域上的多项式算术的性能很重要,对于类似于PLONK的协议也是必不可少的。

可以使用我们发布的曲线搜索工具重复地获得这些曲线

许可证

以下任一许可证下提供

任选其一。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交包含在工作中的任何贡献,均应按上述方式双授权,不附加任何额外条款或条件。

依赖项

~0.4–0.8MB
~15K SLoC