跳转到内容
搜索文档

背景

最后更新 查看 MarkdownAgent 设置

多年来,公共随机数生成(通常被称为 common coins)一直吸引着密码学研究界的兴趣。许多分布式系统,包括各种共识机制、Tor 等匿名网络,或者区块链系统,都假定可以访问这种公共随机数。然而,以分布式、可扩展和鲁棒的方式生成公共随机数一直是一个重大的未决问题。目前,还没有部署服务来产生这种类型的随机数。唯一的选择是由 NIST 运行的集中的、仅作原型的随机数信标。

意识到这一点后,Ewa Syta 在耶鲁大学的 Michael J. FischerBryan Ford 的指导下,在攻读博士学位期间启动了关于 可扩展抗偏置分布式随机数 (Scalable Bias-Resistant Distributed Randomness) 的项目。Bryan 于 2015 年调至 EPFL 后,EPFL DEDIS 团队的新成员(Nicolas GaillyLinus GasserPhilipp JovanovicIsmail KhoffiEleftherios Kokoris Kogias)加入了该项目,并在 2017 IEEE Symposium on Security and Privacy 上联合发表了研究论文。

该论文探索了使用密钥对(key pairings)代替经典的椭圆曲线密码学来生成公共随机数,作为简化所提议的协议设计以及提高随机数生成和验证性能的一种方式。

2017 年初,EPFLDEDIS 团队开始与 DFINITY 就包括公共随机数在内的各种研究课题展开合作。DFINITY 架构是围绕一个基于双线性对的随机数信标构建的,这与 DEDIS 论文中描述的结构有相似之处。此外,DFINITY 已经用 C++ 实现了一个优化的双线性对库。在将这一实现集成到 DEDIS 的密码学库 Kyber 后,所有主要的密码学组件都准备就绪,可以使用双线性对实现高效的分布式随机数生成协议。

2017 年 9 月,DEDIS 的博士生 Nicolas 在 Philipp 的帮助下开始编写 drand 代码,首次以与应用无关、安全且高效的方式部署了提供公共随机数的分布式服务。不久之后,Cloudflare 发布了 BN256 双线性对曲线的优化 Golang 实现,该实现目前已集成到 Kyber 和 drand 中,以简化开发和部署。

随着 drand 的成熟,越来越多的组织(包括 NIST、Cloudflare、Kudelski Security、智利大学和 Protocol Labs)开始对其产生兴趣,并决定共同努力建立一个跨越这些组织的 drand 网络。为了支持在 Web 应用程序中使用公共随机数,DEDIS 的硕士生 Mathilde Raynal 开始开发一个名为 drandjs 的 JavaScript 概念验证前端,以便与 drand 服务器进行交互。

2020 年春,Protocol Labs 的一个团队带头努力将 drand 从实验性网络转变为生产就绪的网络。这些努力包括重大协议升级、为分布式网络建立治理模型以及提高节点操作员的运营安全。欲了解更多详情,请查看 drand 博客

这篇文档对您有帮助吗?