跳到主要内容
ecdsa.com

BLS 签名

基于配对的签名(Boneh、Lynn 和 Shacham,2001年),签名短小、具有确定性,并原生支持聚合;最主要的应用是以太坊在 BLS12-381 曲线上的权益证明共识。
其他写法BLSBoneh–Lynn–ShachamBLS12-381 signatures

签名为 σ = sk·H(m),其中 H 把消息哈希到曲线上的点(RFC 9380),验证时检查配对等式 e(σ, g) = e(H(m), pk)。任意消息上的签名都可以相加成一个点;验证聚合签名时,每条不同的消息需要一次配对,另外再加一次。在 BLS12-381 上,以太坊使用的“最小公钥”变体采用 48 字节的公钥和 96 字节的签名;“最小签名”变体则把两个群对调。

该方案由 IRTF CFRG 的互联网草案 draft-irtf-cfrg-bls-signature 定义;以太坊共识层(自信标链于2020年12月1日上线起)使用密码套件 BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_POP_。聚合同一消息上的签名时,需要为每个密钥提供持有证明,以防范流氓密钥攻击。其他使用者包括 Filecoin、Chia,以及依赖门限 BLS 的 drand 随机数信标。

BLS 未被纳入任何 NIST 标准,一次验证大约需要两次配对运算(耗时以毫秒计,而非微秒),而且与所有基于配对的密码学一样,它会被 Shor 算法攻破。

标准与参考资料

全部术语