本文中,我们将谈及随机数(randomnumbers)以及如何在以太坊2.0中实现随机性。什么是RANDAO?什么是VDF(可验证延迟函数)?它们又是如何一起运作的?
信标链(beaconchain)如何决定轮到哪些验证者(validator)来提议区块,以及哪些验证者应该对该提议进行证明(attest)?在以太坊2.0系统中的1,024条分片链和成千上万名活跃验证者之间,信标链是如何在任何特定时间做出这一决定的呢?
信标链需要的是随机性(randomness)!
计算机中的随机性
计算机是无法生成真正的随机数的。
你可以这么来理解:计算机(computer)是一种机器,给定相同的输入,总是会生成相同的输出。它们就是计算的机器,就好像一台计算器不能让2与2相加得到5一样(除非是恶作剧或机器受到严重损坏)。
为了生成一个合理的随机数,计算机将依赖于seed(种子):即计算的起点,用于获取输出的输入(input)。种子可以是屏幕上鼠标光标的移动,也可以是维基百科数据库的所有内容。在种子之上,计算机将执行数学运算并最终得出一个人类无法预测的数字。
火币大学与央链直播达成“内容输出”战略合作:11月30日,火币大学与央链直播正式签署“内容输出”战略合作协议。火币大学成为央链直播平台“央链学府”的基石战略合作伙伴,为“央链学府”制作并提供专业版权内容,推荐专业讲师资源等,火币大学校长于佳宁出席并签署战略合作协议。
央链直播是由中国通信工业协会区块链专业委员会全力支持,物链芯工程技术研究院和央链全球联手成都在线支点教育科技有限公司、成都非络通达科技有限公司共同开发的在线视播平台。于佳宁表示,火币大学是聚焦于区块链应用和数字经济发展的行业教育机构,此次和央链直播的合作,将借助该平台的渠道优势,加强区块链知识的传播,共同构建区块链产业生态。[2020/11/30 22:36:02]
即使现在,如果你访问BitAddress(开源JavaScript比特币钱包工具)网站(https://www.bitaddress.org/),当你移动鼠标时,你会注意到“seed”将相应地发生变化,这是网站正在通过你的鼠标不规则移动中“搜集随机性”,见下图:
备注:继续移动鼠标,当图中的百分百达到100%时,就可以生成一个比特币钱包
如果我们在生成种子时总是应用相同的数学方法处理,那我们如何能将之称为随机的呢?最重要的是,当足够多的难以重复的种子放在一起时,得到的随机数就会是相当随机的。人们是无法在一个500万像素屏幕区域重复完全一样的鼠标运动轨迹的,因此这在某种程度上是可靠的。
火币大学于佳宁:所有场景中最值得关注的核心是数据的共享和交易:6月29日19:00,火币大学校长于佳宁做客BiYong大咖直播间,以“区块链新基建的机会”为主题正在进行直播。
于佳宁表示,在所有场景中,最值得关注和重视的是“核心是数据的共享和交易”。例如,区块链+政务数据共享已经是很大的市场。例如,北京政府利用区块链将全市53个部门的职责、目录以及数据联结在一起,形成“目录区块链”系统,为北京大数据的汇聚共享、优化营商环境提供支撑。2019年10月,首个线上数据共享流程依托“目录区块链”开启。2020年,北京市政府将依托区块链系统,推进信用、交通、医疗等领域政务数据集逐步实现分级分领域脱敏开放,重点推进电子证照、电子档案、数字身份等居民个人信息的全链条共享应用。这其中孕育着巨大的落地应用空间和市场机会。[2020/6/29]
如果再加上一些其他的数值,比如一天中的时间,或者像Cloudflare那样使用熔岩灯产生伪随机数(见下图),也许还有某个运动队当年进球的次数,这样你就得到了一个相当随机的种子(seed)。
备注:Cloudflare是一家提供安全服务的云服务商,向客户提供了免费的SSL服务。因为要处理海量的加密流量,它需要使用到大量的随机数。这些随机数都是伪随机数生成器(PRNG)产生的。伪随机数生成器产生的随机数能被预测和破解。那么如何减少随机数的可预测性?Cloudflare披露了它的方法——使用熔岩灯。熔岩灯的名字源于内部不定形状的蜡滴的缓慢流动,让人联想到熔岩的流动。Cloudflare利用摄像头监视熔岩灯,拍摄视频和照片,然后将其转变成无法预测的随机比特流,再用它生成密钥。
火币大学于佳宁:没有2020年的金融风暴就不会有区块链的兴盛:3月19日21点,火币大学于佳宁进行了以《全球金融风暴警笛拉响,如何借助区块链新思维“转危为机”》为主题的直播,全面讲解区块链的基本逻辑和”区块链思维“,系统介绍区块链时代的知识图谱,以及在金融风暴情况下应该如何有效配置资产和把握区块链行业方向,从而提前布局把握时代机遇。
于佳宁在直播中表示,没有2008年的金融危机,就没有比特币的诞生,没有2020年的金融风暴,就没有区块链的兴盛。危机是旧模式的终结时刻,也是新模式的新生之时,对于真正的创新者而言,最好的行动时机永远是现在。[2020/3/20]
区块链中的随机性
但是区块链中没有鼠标、传感器或者运动比赛结果预测。更重要的是,即使一个节点到达某个随机数,但该随机数必须与区块链的所有其他节点的随机数相同,否则该条链将分裂。在同一条区块链中,如果同一个区块的随机数不同,这将导致分叉。那么区块链是如何来处理随机性的呢?
一些区块链依赖区块哈希(blockhash)来处理随机性。因为哈希值是未知的、随机的,但在所有节点上都是相同的,所以对于基本的可证明公平的来说,哈希值可以作为随机性的来源。
然而,如果区块奖励少于矿工操纵区块哈希所能获得的奖励(当前的以太坊区块奖励是2ETH),那矿工就完全有经济动力进行恶意行为。更严重的是,在权益证明(PoS)系统中,由于生成一个区块几乎不需要计算时间或能量,矿工(验证者)可以很容易地继续生成数千个区块,直到获得一个他们喜欢的哈希值,并将这个哈希值进行提交。
这也适用于验证者的选择。如果当前负责生产某个区块的验证者能够通过某种方式进行操纵,使得该区块哈希成为一个能够再次选中该验证者(或者由该验证控制的另一个验证者客户端)的种子,使该验证者继续成为提议区块的验证者,那么该验证者就可以一直提议区块,将其他的验证者挡在主要的利润之外!
显然,我们需要更强劲的区块链随机性,以太坊2.0系统更是如此!
简单概述RANDAO
想象一下,如果房间里面有很多人,每个人都在脑海中想象一个数字。为了得到一个随机数,我们要求这些人一个接一个地大声说出他们的数字。所有这些数相加之和就是我们想要的随机数。
这就是RANDAO的本质。RANDAO机制就是,当用户通过储存(质押)32ETH成为验证者之后,该用户将选择一个由自己选择的随机数。当需要为某个区块公布其随机数时,将系统中所有随机数加起来就可以得到一个全新的随机数。
备注:上面的过程只是简化过程,本文将不详细论述。如果需要关于以太坊2.0RANDAO这方面的专门文章,请通过Twitter告知作者(@bitfalls)。
但即使在这种情况下,最后公布的数字对最终的随机数也会有一定程度的影响。最后一个人可以选择保持沉默,以这样或那样的方式改变这个最终的随机数。房间里的最后一个人会记住之前每个人公布的数字,如此一来,就可以知道加上(以及不加上)他提供的数字之后的最终随机数结果。如果相对于其他数字,某个数字对最后一个人更有利,那最后一个人就有动机去进行某种程度的操纵,不管程度高低。
对于这一问题,以太坊2.0将通过VDF(可验证延迟函数)来解决!
RANDAOVDF
VDF全称为VerifiableDelayFunction(可验证延迟函数)。
其言外之意就是需要花很长时间来进行计算。
如果我们有某个数字X,之后假设这个数字X的6倍二次方VDF函数是:((((((X^2)^2)^2)^2)^2)^2)^2。这种情况下,如果X=5,那最终的结果就是:
随着计算的继续,计算的结果将越来越大。一个复杂的VDF将需要花费很长的时间才能计算出来,因为对于任何计算机来说,其计算过程都是非常复杂的。
那么这有什么意义呢?
首先,在计算最终数字时的延迟(delay)是可以验证的,我们知道哪些计算机操作是达到结果所必需的,并且能够以合理的精确度确定机器达到结果所需要的时间。
其次,如果要计算出第三级结果,那计算机就必须先计算出第一级而第二级的结果--我们无法在多台计算机上并行地进行此计算,因为每个新的输入都依赖于之前的输出,而且每个输出都需要预先确定的计算时间。
如果现在我们用RANDAO中的随机数来代替上方VDF例子中的数字X,且如果函数的指数不是6而是好几千,并且函数不是使用平方根(^2)而是更复杂的函数,那么我们将得到一个完全不同的函数,这个函数将使RANDAO的结果完全不一样,而且要计算出这个结果将需要花上一段时间,不管你拥有多少台电脑。
通过引入这种延迟,并使计算的时间要长于验证者可以通过影响某个随机数而获得利益的时间,我们就可以消除最后一级的随机性偏差--即消除验证者可以对RANDAO生成产生的最后一点影响。
在以太坊2.0阶段,这个VDF被定义为102分钟时长--超过了一个半小时。当前以太坊基金会正与Filecoin等区块链项目合作,资助开发一种针对此计算优化的开源ASIC--这是一种专门用来进行这种计算的微型计算机。该机器将有爱好者、加密货币项目和其他区块链平台甚至验证者来运行,它具有一个小优势,可以第一时间响应VDF检查,而且不需要比典型的微型计算机全节点更高的电力成本。
这样一台高度专业化的机器确保了任何其他试图开发一种更好的ASIC来重获最后一点影响的人,都必须使其在效率方面提升100倍才能发挥作用。开发这种设备将耗资巨大,除非存在某种可能完全摧毁以太坊的重大利润,而我们知道这是不可能成功的。
在以太坊2.0阶段,每生成64个区块(大约需要6.4分钟,这称为一个时间段(epoch)),信标链(BeaconChain)将打乱验证者并将他们重新分配到所有的分片链中。
每个时间段(epoch)都会公布一个RANDAO,这意味着我们可以在每个时间段(epoch)运行一个新的VDF函数。这就意味着,每个小时将会有16个VDF函数,也就有16个随机数。之后,这一随机性将成为选择下一个验证者集合的种子(seed),这就确保了公平性。
Nimbus中的随机性
在Nimbus客户端中,我们与以太坊2.0规范保持一致。我们的RANDAO实现已经符合以太坊2.0规范的0.5.1版本。我们需要确保我们的测试与官方测试相匹配。
现在谈论VDF还为时过早。VDF还处于研究阶段,一旦它被添加到规范中,客户端将需要一段时间才能赶上它。必须设计出与远程VDF设备通信的方法,对staking(质押)奖励进行轻微修改,使其更倾向于运行VDF的区块生产者,以及其他方面等等。现在,鉴于RANDAO对于以太坊的早期需求是足够随机的,它将作为打乱验证者和提供其他随机性的基础层。
结语
以太坊2.0将每隔6.4分钟生成一个合理的随机数,该随机数的随机性足以确保巨额价值的安全。
只有当某人搭建的VDFASIC的效率比以太坊社区提供的任何ASIC都高100倍,或者当全球所有的VDFASIC都离线时,以太坊的VDF才会失败。即便这发生了,底层的RANDAO所带来安全性也能将影响降到最小,使以太坊也足以保证链上财富的安全。
参考链接:
https://our.status.im/two-point-oh-randomness/
TokenInsight发布全球加密通证量化基金行业研究报告。报告指出:1.加密通证市场市值和交易量在全球占比中较小,但增长迅速。2.加密通证正成为全球大类资产配置中的重要组成部分.
数字货币钱包是区块链世界公认的流量入口和基础设施。QbaoNetwork作为一款去中心化和中心化相结合的钱包,不仅支持比特币、以太坊、量子链和EOS多条公链,还在钱包的基础上开发了一系列金融属性.
亲爱的社区用户: 第三期推广挖矿投票已顺利结束。我们公布结果如下: 排名 编号 标题 票数 1 100255? FCoin一周年震撼演讲,四分钟全程高能! 680 2 100259 谨以此片向张.
1.USDT因监守自盗出现惊人爆雷4月30日,泰达公司的法律总顾问回应纽约州司法部,称公司有大概持有74%左右的USDT现金储备。在纽约州司法体系网站上可以看到原文链接.
导读 百年之前的原版“庞氏局”中,一年左右的时间里,四万多名波士顿市民变成庞兹的投资者,其中大部分是怀抱发财梦想的穷人,庞兹共收到约1500万美元的小额投资,平均每人“投资”几百美元.
据21世纪经济报道,火币大学校长于佳宁认为,比特币这一轮上涨的核心原因之一是主流机构正在完成对该市场的布局.