良好的随机源应包含不可预测、无偏向性、公共可验证、去中性化、可获得性等特性。 原文标题:《【Filecoin】Drand:Filecoin 的随机性来源》 区块链的安全保障之一来自于各种的不可预测性,比如私钥、出块权、挑战种子等等。Filecoin 在最初的设计中采用 Ticket Chain 来产生不可预测但可公开验证的随机数。目前改为利用 Drand 来作为随机数源。 Drand 是一个独立的项目,本文对其简单做一个介绍。 类似于以太坊 2.0 实行的信标链(Beacon Chain),Filecoin 目前采用 Drand 作为其 Beacon 源,而启用最初设计的 Ticket 链。我们知道,Ticket Chain 实际上是一个逻辑链,是寄生在 Filecoin 链之上的。尽管 Ticket 链进行了很好的设计,但是仍然有其不令人满意的地方,比如说:1)其 Ticket 是每个区块都有的,但是每个高度仅需要一个,所以这里带来一个选择问题,但这个问题不大;另外,2) Ticket 本身并不是对所有人来说都是不可预测的,因为 Ticket 是矿工产生的,所以出块矿工比其他人更早知道这个随机数是什么;再进一步,3)当链发生分叉重组的时候,Ticket 就会发生变化,这给许多依赖 Ticket 进行的计算将失效。 所以,Ticket Chain 并不是一个理想的解决方案,Filecoin 团队是善于采纳新技术的,在权衡之下,目前的处理方式,随机数的产生完全脱离 Filecoin 网络,启用一个公共的、不可预测的、无倾向性的,可公共验证的随机源,这个随机源,就是 Drand。 可信随机源要解决的问题简单来说,一个良好的随机源应该包含如下特性:
Drand:分布式随机信标守护程序Drand (发音为「 dee-rand」)本身是一个程序,作为分布式节点都可以加入运行。Drand 由 Golang 编写,使用双线性配对和阈值加密技术,将运行 drand 的服务器彼此链接,以固定的间隔生成共同的的,可公开验证的,无偏向于的,不可预测的随机值。Drand 节点还可以将本地生成的私有随机性提供给客户端。 drand 最初是在 DEDIS (去中心化分布式组织)组织内部开发的,在 2019 年 12 月,独立成为 drand 组织。 (责任编辑:admin) |