本文中,我们将谈及随机数(randomnumbers)以及如何在以太坊2.0中实现随机性。什么是RANDAO?什么是VDF(可验证延迟函数)?它们又是如何一起运作的?
信标链(beaconchain)如何决定轮到哪些验证者(validator)来提议区块,以及哪些验证者应该对该提议进行证明(attest)?在以太坊2.0系统中的1,024条分片链和成千上万名活跃验证者之间,信标链是如何在任何特定时间做出这一决定的呢?
信标链需要的是随机性(randomness)!
计算机中的随机性
计算机是无法生成真正的随机数的。
你可以这么来理解:计算机(computer)是一种机器,给定相同的输入,总是会生成相同的输出。它们就是计算的机器,就好像一台计算器不能让2与2相加得到5一样(除非是恶作剧或机器受到严重损坏)。
为了生成一个合理的随机数,计算机将依赖于seed(种子):即计算的起点,用于获取输出的输入(input)。种子可以是屏幕上鼠标光标的移动,也可以是维基百科数据库的所有内容。在种子之上,计算机将执行数学运算并最终得出一个人类无法预测的数字。
ConsenSys与以太坊侧链Palm合作开发新的跨链桥:3月23日消息,以太坊基础设施开发公司ConsenSys与以太坊侧链Palm达成合作,以建立和改进官方Palm桥。新的Bridge将会使得从Palm到Ethereum的跨链费用更加公平一致,而且转账延迟的可能性更小。除了转移资金外,用户还可以通过桥转移NFT。此外,Palm团队不再需要手动更新费用或重新提交没有足够Gas的转账。
Palm网络是一个以太坊侧链,专门用于销售、购买和交易NFT。Palm表示,网络的Gas成本低,比基于PoW的区块链网络的能源效率高99.9%。[2022/3/23 14:13:15]
即使现在,如果你访问BitAddress(开源JavaScript比特币钱包工具)网站(https://www.bitaddress.org/),当你移动鼠标时,你会注意到“seed”将相应地发生变化,这是网站正在通过你的鼠标不规则移动中“搜集随机性”,见下图:
备注:继续移动鼠标,当图中的百分百达到100%时,就可以生成一个比特币钱包
如果我们在生成种子时总是应用相同的数学方法处理,那我们如何能将之称为随机的呢?最重要的是,当足够多的难以重复的种子放在一起时,得到的随机数就会是相当随机的。人们是无法在一个500万像素屏幕区域重复完全一样的鼠标运动轨迹的,因此这在某种程度上是可靠的。
数据:以太坊上DeFi协议总锁仓量584.6亿美元:据欧科云链OKLink数据显示,截至今日16时,以太坊上DeFi协议总锁仓量约合584.6亿美元,环比下降0.91%。
近24小时锁仓量增幅前三名的DeFi协议分别是MITH(+23.35%),Erasure (+19.97%)以及B Protocol(+14.51%)。
当前锁仓量排名前三的DeFi协议分别是WBTC 74.6亿美元(-3.58%),Maker 69.5亿美元(-0.38%)以及Compound 63.2亿美元(-2.32%)。[2021/3/16 18:49:20]
如果再加上一些其他的数值,比如一天中的时间,或者像Cloudflare那样使用熔岩灯产生伪随机数(见下图),也许还有某个运动队当年进球的次数,这样你就得到了一个相当随机的种子(seed)。
备注:Cloudflare是一家提供安全服务的云服务商,向客户提供了免费的SSL服务。因为要处理海量的加密流量,它需要使用到大量的随机数。这些随机数都是伪随机数生成器(PRNG)产生的。伪随机数生成器产生的随机数能被预测和破解。那么如何减少随机数的可预测性?Cloudflare披露了它的方法——使用熔岩灯。熔岩灯的名字源于内部不定形状的蜡滴的缓慢流动,让人联想到熔岩的流动。Cloudflare利用摄像头监视熔岩灯,拍摄视频和照片,然后将其转变成无法预测的随机比特流,再用它生成密钥。
Cardano在以太坊虚拟机开发网络中增加新编程语言Glow:Cardano在以太坊虚拟机(EVM)开发网络中增加了一种新的编程语言Glow,该语言旨在简化智能合约的编写和部署。引入Glow将改善开发过程并降低其成本。(U.Today)[2021/2/26 17:56:57]
区块链中的随机性
但是区块链中没有鼠标、传感器或者运动比赛结果预测。更重要的是,即使一个节点到达某个随机数,但该随机数必须与区块链的所有其他节点的随机数相同,否则该条链将分裂。在同一条区块链中,如果同一个区块的随机数不同,这将导致分叉。那么区块链是如何来处理随机性的呢?
一些区块链依赖区块哈希(blockhash)来处理随机性。因为哈希值是未知的、随机的,但在所有节点上都是相同的,所以对于基本的可证明公平的来说,哈希值可以作为随机性的来源。
然而,如果区块奖励少于矿工操纵区块哈希所能获得的奖励(当前的以太坊区块奖励是2ETH),那矿工就完全有经济动力进行恶意行为。更严重的是,在权益证明(PoS)系统中,由于生成一个区块几乎不需要计算时间或能量,矿工(验证者)可以很容易地继续生成数千个区块,直到获得一个他们喜欢的哈希值,并将这个哈希值进行提交。
以太坊微信指数日环比上升112.40%:金色财经报道,微信指数显示,6月15日,区块链搜索指数为1513723,日环比上升103.29%;比特币搜索指数为539986,日环比上升56.71%;以太坊搜索指数为118848,日环比上升112.40%。[2020/6/16]
这也适用于验证者的选择。如果当前负责生产某个区块的验证者能够通过某种方式进行操纵,使得该区块哈希成为一个能够再次选中该验证者(或者由该验证控制的另一个验证者客户端)的种子,使该验证者继续成为提议区块的验证者,那么该验证者就可以一直提议区块,将其他的验证者挡在主要的利润之外!
显然,我们需要更强劲的区块链随机性,以太坊2.0系统更是如此!
简单概述RANDAO
想象一下,如果房间里面有很多人,每个人都在脑海中想象一个数字。为了得到一个随机数,我们要求这些人一个接一个地大声说出他们的数字。所有这些数相加之和就是我们想要的随机数。
这就是RANDAO的本质。RANDAO机制就是,当用户通过储存(质押)32ETH成为验证者之后,该用户将选择一个由自己选择的随机数。当需要为某个区块公布其随机数时,将系统中所有随机数加起来就可以得到一个全新的随机数。
6月6日 以太坊网络交易费用高于比特币网络:Glassnode数据显示,6月6日,以太坊网络交易费用超过了比特币网络,二者分别为498美元和308美元。到目前为止,这样的情况只发生了141天,占历史总天数的8%。[2020/6/8]
备注:上面的过程只是简化过程,本文将不详细论述。如果需要关于以太坊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/
文章系金色财经专栏作者供稿,发表言论仅代表其个人观点,仅供学习交流!金色盘面不会主动提供任何交易指导,亦不会收取任何费用指导交易,请读者仔细甄别,谨防上当.
1900/1/1 0:00:00我们正在对NAS钱包进行升级维护,充值和提现将暂停,我们将在维护完成并测试稳定后恢复NAS和ATP充值和提现服务。感谢您的理解与支持.
1900/1/1 0:00:00亲爱的社区用户:?第四期FOne交易挖矿币种投票已顺利结束。我们现公布结果如下:排名??交易区币种??全称票数1FM潜力区GXCGXChain5122致睿资本PAIProjectAI4213蜂巢.
1900/1/1 0:00:00“比特币虽然涨到了8000,但我们不敢轻易劝客户下单。”深圳华强北赛格电子广场四楼,一位矿机商铺销售经理庞先生向互链脉搏表示,“万一价格跌了,我们都不好跟客户交代.
1900/1/1 0:00:00今日午间BTC持续在8200美元上方震荡整理,主流币出现普涨。BTC在Gate.io现报8241.61美元,24h涨幅2.84%.
1900/1/1 0:00:00今日早间BTC持续拉升,短时突破至8200美元上方,最高涨至8275.09美元,随后快速下跌,目前在8000美元附近震荡。BTC在Gate.io暂报7998.57美元,24h涨幅2.01%.
1900/1/1 0:00:00