eth开源代码(9个开源的BLS签名算法库「ETH2.0」)

  eth开源代码(9个开源的BLS签名算法库「ETH2。0」)

BLS(Boneh-Lynn-Shacham)是ETH 2。0中采用的私钥生成和签名方案,本文将介绍 常用的BLS开源开发库,可用于C/C++、Rust、JavaScript、Golang、Python等各种密码学 应用的开发。

  

用自己熟悉的语言学习 以太坊开发 : Java Php Python 。Net / C# Golang Node。JS Flutter / Dart

  

1、Herum BLS

Herum BLS是BLS阈值签名的一个C++实现,支持以太坊2。0阶段0规定的 新的BLS签名方案。

  

Herum BLS支持如下架构:

  

  • Windows Visual Studio / MSYS2(MinGW-w64)
  • Linux
  • macOS
  • Android
  • iOS
  • WebAssembly

Herum BLS提供如下开发语言的绑定:Go、WebAssembly(Node。JS)、Rust。

  

Herum BLS代码仓库: https!//github。com/herumi/bls

  

2、Chia BLS

Chia BLS是Chia官方提供的支持聚合的BLS签名的C++实现,利用了relic toolkit 提供的密码学原语(配对、椭圆曲线、哈希等)。

  

Chia BLS的主要特性如下:

  

  • 遵循IETF规范的非交互式签名聚合
  • 支持Windows, Mac,比特币汇率 Linux, BSD
  • 基于Proof of Posssesion的有效验证
  • 支持公钥和私钥的聚合
  • 支持EIP-2333密钥派生(包括非硬化的类BIP-32私钥)
  • 支持密钥和签名序列化
  • 支持批量验证
  • 提供Python绑定
  • 包含纯Python版本的bls12-381和签名
  • 提供JavaScript绑定

Chia BLS代码仓库:https!//github。com/Chia-Network/bls-signatures

  

3、w3f BLS

w3f BLS是一个rust版本的BLS签名实现,支持BLS12-381。

  

  

w3f BLS代码仓库:https!//github。com/w3f/bls

  

4、ChainSafe BLS

ChainSafe BLS是一个用于BLS签名以及签名聚合的JavaScript库,支持 Node。js和浏览器环境。

  

ChainSafe BLS提供了三种后台:

  

  • blst:仅支持node。js,通过node-gyp绑定到c语言实现
  • herumi:支持node。js和浏览器,wasm实现
  • noble:纯JavaScript实现,支持node。js和浏览器

ChainSafe BLS代码仓库:https!//github。com/ChainSafe/bls

  

5、asonnino BLS

asonnino BLS是一个简单的Python版本的BLS阈值签名实现,论文参见这里。

  

asonnino BLS基于petlib和bplib实现,因此使用时首先需要安装这些依赖。

  

asonnino BLS代码仓库:https!//github。com/asonnino/bls

  

6、nevermind BLS

NeverMind BLS是一个。net core版本的BLS签名实现,支持ETH2。0。

  

NeverMind BLS作为一个System。Security。Cryptography。AsymmetricAlgorithm插件实现, 遵循。Net Core的密码学方案规范;支持私钥转公钥、ETH2。0消息的签名和验证、公钥/签名聚合、 聚合签名的验证等;提供跨平台支持,例如windows、linux和osx。

  

NeverMind BLS基于Herumi库实现,目前不支持ETH2。0之外的方案。

  

NeverMind BLS代码仓库: https!//github。com/NethermindEth/cortex-cryptography-bls

  

7、Algorand BLS

Algorand BLS包含Python和Rust版本的BLS签名实现。

  

Algorand BLS代码仓库:https!//github。com/algorand/bls_sigs_ref

  

8、Witnet BLS

Witnet BLS是一个Rust版本的BLS签名实现,目前仅支持BN256配对。

  

Witnet BLS代码仓库:https!//github。com/witnet/bls-signatures-rs

  

9、enzoh BLS

Enzoh BLS是一个Go版本的BLS签名实现练习代码,可以帮助理解BLS签名算法。

  

enzoh BLS代码仓库:https!//github。com/enzoh/go-bls

  


原文链接:http!//blog。hubwiz。com/2021/05/31/bls-libs/

  
","content_hash"!"56b93ce7

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论