#curve #elliptic-curve #cycle #pasta #field #pallas #vesta

no-std pasta_curves

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

12 个版本

0.5.1 2023 年 3 月 2 日
0.5.0 2022 年 12 月 6 日
0.4.1 2022 年 10 月 13 日
0.4.0 2022 年 5 月 4 日
0.0.0 2021 年 3 月 3 日

#1417 in 神奇豆子

Download history 22088/week @ 2024-03-14 21316/week @ 2024-03-21 19641/week @ 2024-03-28 18014/week @ 2024-04-04 20952/week @ 2024-04-11 21253/week @ 2024-04-18 18915/week @ 2024-04-25 21603/week @ 2024-05-02 27221/week @ 2024-05-09 27950/week @ 2024-05-16 26837/week @ 2024-05-23 28015/week @ 2024-05-30 26398/week @ 2024-06-06 29605/week @ 2024-06-13 27856/week @ 2024-06-20 20341/week @ 2024-06-27

108,753 每月下载量
用于 100 仓库(直接使用 30 个)

MIT/Apache

150KB
3.5K SLoC

pasta_curves

此包提供了 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 进制,这意味着每个域中存在一个大的两倍幂乘子群。这对于在它们的标量域上执行多项式算术的性能很重要,对于类似于 PLONK 的协议是必不可少的。

这些曲线可以通过我们发布的曲线搜索工具可靠地获得。点击此处

许可证

许可协议为以下之一

任选其一。

贡献

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

依赖项

~0.4–0.9MB
~15K SLoC