ARPA基于BLS的门限签名算法随机数生成器设计

Posted 区块链大本营

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARPA基于BLS的门限签名算法随机数生成器设计相关的知识,希望对你有一定的参考价值。

作者 | ARPA

责编 | 晋兆雨 

头图 | 付费下载于视觉中国  

随机数已经在密码学、彩票和游戏等众多领域被广泛使用。区块链与随机性也有着紧密的关联,因为它们从随机性中寻求公平。被广泛应用的的工作量证明(Proof-of-Work)共识协议建立在搜索特定随机值的加密任务之上。蓬勃发展的Dapps,例如链上彩票以及NFT盲盒,依靠无偏见的随机输入来提供更可信的用户体验。因此,ARPA希望创建一个安全、稳健、可验证的去中心化随机数生成器(RNG),为区块链世界提供必要的随机性。


去信任的随机性

无论是在物理世界还是网络世界,产生随机数的方式有很多,它们可分为两种,真随机和伪随机。真随机利用了现实世界中的物理噪声,但在链上使用这一方法生成随机数是不切实际的。伪随机有许多可供选择的算法,例如公钥哈希消息认证码(HMAC)以及门限签名。为了确定用于产生随机数的原始数据类型,我们将首先研究RNG的基本性质。

唯一性和确定性

对于依赖于随机性的安全敏感应用而言,重复生成和选择有偏差的随机数是不可取的。竞争者会仔细选择随机数以获取利益。具有惟一性的RNG可以降低这种风险:任何使用随机数的人都可以确定地验证其合法性。至于去中心化的RNG,唯一性确保了随机数只与生成随机数的节点全体有关,而不与任何一个单独节点相关。

唯一性是比确定性更严格的要求。确定性只要求随机生成过程不涉及随机性。相比之下,唯一性则需要让消费者相信随机数字没有偏差。例如,ECDSA 可以被重新定义为仅满足确定性,但不满足唯一性的算法。

非交互性

在区块链中,随机数的产生应该是去中心化的。然而,通信开销或将成为整个系统的限制或单点故障。在随机数生成过程中,每个节点应该仅需参与一轮单向通信。这意味着各方贡献的随机数部分应该像多重签名一样以异步方式进行聚合。

易用性

RNG等基础服务的易用性十分重要。与此同时,我们不能指望只在节点的正常运行时间才产生随机数。因此,该算法应在假设计算节点不稳定的前提下提供较高的易用性。门限签名或多重签名是容忍节点故障和停机的理想方法,尤其是在异步聚合时。组中所需节点的比例越低,易用性就越高。


BLS门限签名算法

综合上述因素,我们最终选择BLS门限签名算法作为生成随机数的长期算法。首先,ETH 2.0 将改用 BLS12-381 标准作为主要签名方案,这有利于在以太坊上运行基于 BLS 的应用。任何其他支持 BLS 方案的公共区块链也将与我们的设计兼容。其次,BLS是一个基于配对的密码学实例。配对的双线性提供了类似同态加密的特性,即对不同数学结构的计算可以相互映射,这将使随机数的生成程序可以异步完成,且最后才聚合成随机数。关于配对和椭圆曲线的更多细节,请参考 文档。最后,门限签名版本的BLS签名作为一个去中心化系统是十分稳定的。每次向系统申请随机数时,最多有一半的节点需要响应。通过精心选择节点数量,系统的易用性和安全性都可以满足要求。

表 1. 可验证随机数生成的比较

BLS门限签名算法的构建很像以多方计算 (MPC) 方式执行 BLS。当给定一组参与 ARPA 可验证 RNG 的计算节点时,密钥共享在密钥生成阶段由 Feldman 的可验证秘密共享方案分配。然后,每一个参与方计算并广播他们的公钥分片。组公钥可以通过拉格朗日插值法从这些分片中得到。该密钥代表此节点集的身份,并对生成的随机数进行验证。在RNG的生命周期内,无论在密钥生成还是随机数生成过程中,组秘钥都不会被重组。

图 1. 原始 BLS 与阈值 BLS

由于配对的双线性,随机数生成阶段与原始 BLS 签名算法是相同的。在接收到种子后,每个节点会在本地计算其随机数的一部分并进行广播。在这些片段的合法性被验证之后,它们将被通过插值法进行聚合。最终结果是由种子生成的 BLS门限 签名,且该签名可以用组公钥进行验证。需要注意的是,无论哪个节点组贡献了随机数的片段,其结果都是相同的。


ARPA 去中心化 RNG 架构

有了BLS签名算法后,我们可以开始设计 ARPA 可验证 RNG 的架构。RNG系统欢迎所有目前在运行ARPA计算节点的各位。系统中的节点会根据系统之前生成的随机数进行分组。分组完成后,它们就会运行分布式密钥生成运算,并将组公钥上传到区块链。初始化完成后,新的随机数请求会随机分配给其中一组。当随机数生成并被组认可后,它将被发送到智能合约,根据组公钥对其进行验证。在ETH 2.0 基础设施的优势下,验证过程会是高效且经济的。

系统鲁棒性

组的参数旨在满足易用性和安全性的要求。如果采用的秘密共享方案是诚实大多数,则组成员总数为 n=2t+1,其中 t 是阈值。如果我们将计算节点失败的概率设置为 p,则 RNG 失败的可能性可以表示为

.

在假设系统故障率约为 0.01%的情况下,我们可以计算出不同分组规模下的可容忍节点故障。可以看出,随着群组规模的增加,比例会降低。

表 2. 可容忍的节点故障率与系统故障率

除了数学分析以外,附属的生态系统可以帮助鼓励参与和惩罚恶意行为。 

更多阅读推荐

以上是关于ARPA基于BLS的门限签名算法随机数生成器设计的主要内容,如果未能解决你的问题,请参考以下文章

比特币的双线性配对- BLS 签名

第五十个知识点:什么是BLS基于对的签名方案?

理解 BLS 签名算法

区块链安全钱包设计实现

9个开源的BLS算法实现ETH2.0

基于Tornado签名cookie源码设计API认证