BLS签名理论原理和工程实现

本文首发公众号VenusBlockChain,关注公众号后可免费阅读!VenusBlockChain致力于区块链技术研究,传播区块链技术和解决方案、区块链应用落地、区块链行业动态等。有兴趣的小伙伴们,欢迎关注。
在这里插入图片描述

BLS签名简介

BLS 签名方案最初是由斯坦福大学教授 DanBoneh 等人于 2001 年就提出的一种签名方案(原论文地址[1]),而在 2018 年,Boneh 教授还与 IBM 研究机构的 ManuDrijvers 等人更新了这种签名方案(原论文地址[2])。

BLS 签名算法是一种可以实现签名聚合和密钥聚合的算法(即可以将多个密钥聚合成一把密钥,将多个签名聚合成一个签名)。例如,在以太坊未来的 Casper 实现中,有非常多的验证者都要对区块签名,要保证系统的安全性,同时节约存储空间,就需要用到这类签名聚合的算法。

双线性映射e函数

BLS签名算法就是基于双线性映射构造的,在给出具体的签名算法之前,我们需要了解一下什么是双线性映射。

对于一个质数双线性群可以由五元组 ( p , G 1 , G 2 , G T , e ) (p,G1,G2,GT,e) (p,G1,G2,GT,e)来描述。五元组中 p p p是一个与给定安全常数 λ λ λ相关的大质数, G 1 , G 2 , G T G1,G2,GT G1,G2,GT均是阶为 p p p的乘法循环群, e e e为双线性映射 e : G 1 × G 2 → G T e:G1×G2→GT e:G1×G2GT,它满足以下3个条件:

  • 双线性(Bilinearity):对于任意的 g ∈ G 1 , h ∈ G 2 , a , b ∈ Z p g∈G1,h∈G2,a,b∈Zp gG1hG2a,bZp,有 e ( g a , h b ) = e ( g , h ) a b e(g^a,h^b)=e(g,h)^{ab} e(ga,hb)=e(g,h)ab
  • 非退化性(Non-degeneracy):至少存在元素 g 1 ∈ G 1 , g 2 ∈ G 2 g_1∈G1,g_2∈G2 g1
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值