时间:2023-08-20|浏览:7130
类似于以太坊2.0实行的信标链(BeaconChain),Filecoin目前采用Drand作为其Beacon源,而启用最初设计的Ticket链。我们知道,TicketChain实际上是一个逻辑链,是寄生在Filecoin链之上的。尽管Ticket链进行了很好的设计,但是仍然有其不令人满意的地方,比如说:1)其Ticket是每个区块都有的,但是每个高度仅需要一个,所以这里带来一个选择问题,但这个问题不大;另外,2Ticket本身并不是对所有人来说都是不可预测的,因为Ticket是矿工产生的,所以出块矿工比其他人更早知道这个随机数是什么;再进一步,3)当链发生分叉重组的时候,Ticket就会发生变化,这给许多依赖Ticket进行的计算将失效。
所以,TicketChain并不是一个理想的解决方案,Filecoin团队是善于采纳新技术的,在权衡之下,目前的处理方式,随机数的产生完全脱离Filecoin网络,启用一个公共的、不可预测的、无倾向性的,可公共验证的随机源,这个随机源,就是Drand。
可信随机源要解决的问题
简单来说,一个良好的随机源应该包含如下特性:
不可预测:任何时间点任何个体和群体都不能预测为发布的随机数
没有偏向性:最后的输出分布完全是随机的,不能有任何的倾向性
公共可验证:在随机数生成之后,任何人都可以进行验证
去中心化:随机数的产生应当是由一群独立而且活跃的个体产生出来
可获得性:系统必须保持持续运行,总是(按照节奏)不断地输出随机结果
Drand:分布式随机信标守护程序
Drand(发音为“dee-rand”)本身是一个程序,作为分布式节点都可以加入运行。Drand由Golang编写,使用双线性配对和阈值加密技术,将运行drand的服务器彼此链接,以固定的间隔生成共同的的,可公开验证的,无偏向于的,不可预测的随机值。Drand节点还可以将本地生成的私有随机性提供给客户端。
drand最初是在DEDIS(去中心化分布式组织)组织内部开发的,在2019年12月,独立成为drand组织。
Drand的目标和应用
公共可验证随机数的需求非常广泛。比如菠菜、区块链系统、嵌入式设备;同样,其在一些统计抽样中也至关重要:比如自治组织、选举、陪审团的组成、随机财务审计等等。然而,构建安全的随机性来源绝非易事。我们现实生活中就有各种攻击失利,比如福利彩票的作弊,选举的徇私等等。其中影响随机性的产生是原因很多,比如:静态密钥,非均匀分布,输出偏向等等。
那么,Drand旨在通过提供随机即服务网络(类似于用于时间的NTP服务器或用于CA验证的证书颁发机构服务器)来实现实现突破,并提供连续的随机源。
Drand机制包括如下特点,或者说目标:
去中心化:Drand是由Internet上各种信誉
用戶喜愛的交易所
已有账号登陆后会弹出下载