#bls12-381 #pairing #ecc #bls-signatures #ethereum #threshold-signature #shamir-secret-sharing

nubls

一个纯 Rust 编写的 BLS (Boneh-Lynn-Shacham) 签名实现,支持基于 Shamir 秘密共享的阈值签名,以及由 NuCypher 设计的代理重新签名 (PRS) 算法,称为 Penumbral

1 个不稳定版本

0.1.0 2020年11月10日

#24 in #shamir-secret-sharing

AGPL-3.0

36KB
447

NuBLS

Crates.io Crates.io GitHub Workflow Status Discord

nubls 库是 BLS12-381 上的 BLS 签名的 Rust 实现。这个实现旨在遵循 IETF BLS 规范草案

这个库旨在准备好 no_std,但尚未完全准备好。

文档

请参阅 crates.io 上的文档!

Penumbral 代理重新签名

Penumbral 是 NuCypher 的阈值代理重新签名 (PRS) 算法。

代理重新签名是一种算法类型,允许一个密钥下的签名通过使用“重新签名密钥”的第三方转换为另一个密钥下的签名。这确保第三方从未接触过任何私钥。

Penumbral 论文是正在进行中的工作,但将很快发布。

有关使用详情,请参阅这里的测试 — https://github.com/nucypher/NuBLS/blob/master/rust-nubls/src/keys.rs#L484

签名

有关使用详情,请参阅这里的测试 — https://github.com/nucypher/NuBLS/blob/master/rust-nubls/src/keys.rs#L399

阈值分割/恢复

有关使用详情,请参阅这里的测试 — https://github.com/nucypher/NuBLS/blob/master/rust-nubls/src/keys.rs#L321

警告

由于这个库是正在进行中的工作,一些 API 细节尚不完整。其中之一是 rust-native hash-to-curve 实现。因此,目前无法使用这个库本地哈希消息,必须使用另一个库。

依赖项

~2MB
~49K SLoC