本文中,我们将谈及随机数(randomnumbers)以及如何在以太坊2.0中实现随机性。什么是RANDAO?什么是VDF(可验证延迟函数)?它们又是如何一起运作的?
信标链(beaconchain)如何决定轮到哪些验证者(validator)来提议区块,以及哪些验证者应该对该提议进行证明(attest)?在以太坊2.0系统中的1,024条分片链和成千上万名活跃验证者之间,信标链是如何在任何特定时间做出这一决定的呢?
信标链需要的是随机性(randomness)!
计算机中的随机性
计算机是无法生成真正的随机数的。
你可以这么来理解:计算机(computer)是一种机器,给定相同的输入,总是会生成相同的输出。它们就是计算的机器,就好像一台计算器不能让2与2相加得到5一样(除非是恶作剧或机器受到严重损坏)。
为了生成一个合理的随机数,计算机将依赖于seed(种子):即计算的起点,用于获取输出的输入(input)。种子可以是屏幕上鼠标光标的移动,也可以是维基百科数据库的所有内容。在种子之上,计算机将执行数学运算并最终得出一个人类无法预测的数字。
美SEC在Ian Balina的起诉书中称所有以太坊都在其管辖范围内:9月20日消息,美国证券交易委员会(SEC)已对加密货币投资者Ian Balina参与推广2018年未注册加密资产SPRK一案发起诉讼,但加密社区在美国证券交易委员会的起诉书中发现,该监管机构认为所有以太坊都在其管辖范围内。
在起诉书第69段中,美国证券交易委员会指出发送给Ian Balina的ETH通过以太坊区块链上的节点网络进行验证,这些节点在美国的集群密度比任何其他国家都高,因此这些交易都发生在美国,意味着该监管机构认为在美国运营的以太坊验证节点比在任何其他国家都多,因此全球所有以太坊交易都应被视为源自美国,而且美国证券交易委员会对以太坊网络上的所有活动拥有管辖权。
肯塔基大学法学教授Brian Fyre表示,这是第一次看到美国证券交易委员会真正阐述其如何理解以太坊生态系统运作,以及他们为什么认为以太坊属于SEC的监管范围。根据Etherscan数据显示,目前45.85%的以太坊节点来自美国,相比之下排名第二的德国只有19%。(decrypt)[2022/9/20 7:07:21]
即使现在,如果你访问BitAddress(开源JavaScript比特币钱包工具)网站(https://www.bitaddress.org/),当你移动鼠标时,你会注意到“seed”将相应地发生变化,这是网站正在通过你的鼠标不规则移动中“搜集随机性”,见下图:
以太坊L2网络总锁仓量为49.1亿美元 近7日跌幅5.01%:金色财经报道,L2BEAT数据显示,截至6月10日,以太坊Layer2上总锁仓量为49.1亿美元。近7日跌幅5.01%,其中锁仓量最高的为扩容方案Arbitrum,约24.7亿美元,占比50.35%。其次是dYdX,锁仓量9.5亿美元,占比19.34%。Optimism占据第三,锁仓量8.46亿美元,占比17.23%。[2022/6/10 4:17:22]
备注:继续移动鼠标,当图中的百分百达到100%时,就可以生成一个比特币钱包
如果我们在生成种子时总是应用相同的数学方法处理,那我们如何能将之称为随机的呢?最重要的是,当足够多的难以重复的种子放在一起时,得到的随机数就会是相当随机的。人们是无法在一个500万像素屏幕区域重复完全一样的鼠标运动轨迹的,因此这在某种程度上是可靠的。
如果再加上一些其他的数值,比如一天中的时间,或者像Cloudflare那样使用熔岩灯产生伪随机数(见下图),也许还有某个运动队当年进球的次数,这样你就得到了一个相当随机的种子(seed)。
备注:Cloudflare是一家提供安全服务的云服务商,向客户提供了免费的SSL服务。因为要处理海量的加密流量,它需要使用到大量的随机数。这些随机数都是伪随机数生成器(PRNG)产生的。伪随机数生成器产生的随机数能被预测和破解。那么如何减少随机数的可预测性?Cloudflare披露了它的方法——使用熔岩灯。熔岩灯的名字源于内部不定形状的蜡滴的缓慢流动,让人联想到熔岩的流动。Cloudflare利用摄像头监视熔岩灯,拍摄视频和照片,然后将其转变成无法预测的随机比特流,再用它生成密钥。
Purpose以太坊ETF的持仓量达到3.33万枚ETH:据欧科云链OKLink数据显示,Purpose旗下比特币ETF规模已经达到10.43亿美元,持有的比特币数量达到1.87万枚BTC。而Purpose另一只以太坊ETF的规模也在保持增长,目前市值达到1.32亿美元,持有的以太坊数量达到3.33万枚ETH。[2021/5/11 21:48:31]
区块链中的随机性
但是区块链中没有鼠标、传感器或者运动比赛结果预测。更重要的是,即使一个节点到达某个随机数,但该随机数必须与区块链的所有其他节点的随机数相同,否则该条链将分裂。在同一条区块链中,如果同一个区块的随机数不同,这将导致分叉。那么区块链是如何来处理随机性的呢?
一些区块链依赖区块哈希(blockhash)来处理随机性。因为哈希值是未知的、随机的,但在所有节点上都是相同的,所以对于基本的可证明公平的来说,哈希值可以作为随机性的来源。
然而,如果区块奖励少于矿工操纵区块哈希所能获得的奖励(当前的以太坊区块奖励是2ETH),那矿工就完全有经济动力进行恶意行为。更严重的是,在权益证明(PoS)系统中,由于生成一个区块几乎不需要计算时间或能量,矿工(验证者)可以很容易地继续生成数千个区块,直到获得一个他们喜欢的哈希值,并将这个哈希值进行提交。
以太坊研发者:大量Gas费被用于反向运行机器人令人担忧:7月21日,以太坊研发者Philippe Castonguay发布推文称,事实证明,以下有关Gas费的数字令人担忧。由于Geth的特性,大约250万美元的Gas费用被用于反向运行机器人,而这意味着近4万个区块充满了垃圾短信。在过去的几个月里,他们的活动急剧增加。仅在昨天,这些机器人就使用了近10%的区块空间。[2020/7/21]
这也适用于验证者的选择。如果当前负责生产某个区块的验证者能够通过某种方式进行操纵,使得该区块哈希成为一个能够再次选中该验证者(或者由该验证控制的另一个验证者客户端)的种子,使该验证者继续成为提议区块的验证者,那么该验证者就可以一直提议区块,将其他的验证者挡在主要的利润之外!
显然,我们需要更强劲的区块链随机性,以太坊2.0系统更是如此!
简单概述RANDAO
想象一下,如果房间里面有很多人,每个人都在脑海中想象一个数字。为了得到一个随机数,我们要求这些人一个接一个地大声说出他们的数字。所有这些数相加之和就是我们想要的随机数。
这就是RANDAO的本质。RANDAO机制就是,当用户通过储存(质押)32ETH成为验证者之后,该用户将选择一个由自己选择的随机数。当需要为某个区块公布其随机数时,将系统中所有随机数加起来就可以得到一个全新的随机数。
动态 | BloXroute Labs将以太坊主网上的区块传播时间缩短一半:金色财经报道,在11月11日至27日之间,区块链咨询公司Akomba Labs在新加坡的一个以太坊节点上运行了bloXroute的“区块链分发网络(BDN)”,发现区块平均传播时间(一个区块从产生到共享至整个区块链)降至了172毫秒,不到当前平均时间360毫秒的一半。作为为期两周的测试的一部分,Akomba利用了来自中国矿山的数据。Akomba的结果表明,BDN可能对以太坊主网中区块传播产生适度但潜在的连锁影响。BloXroute的方法是第0层解决方案,它可以减小事务大小,从而加快区块传播时间。[2019/11/28]
备注:上面的过程只是简化过程,本文将不详细论述。如果需要关于以太坊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作者:WilliamSuberg翻译:Penny美国加密货币交易所Coinbase证实,它已于5月13日向纽约用户推出了XRP交易.
1900/1/1 0:00:002019年伊始,金色财经推出全新栏目:Funtwitter。推特是海外加密世界意见领袖们发表言论的重要场所。今后,金色财经将为您收集每日加密世界中的海外意见领袖与知名媒体在推特上的有趣推文.
1900/1/1 0:00:00与去年一样,今年的稳定币市场再次因为Tether掀起了一波风浪。4月26日,因为银行账户被冻结,Tether从交易所Bitfinex出借了巨额资金补空,该事件被纽约州检察总长办公室爆光后引起轩然.
1900/1/1 0:00:00决议目的1.?FCoin计划将创新版打造成通证经济专区,支持有前景、创新型通证的交易。建立良好的制度基础,是进一步扩大该板块的保障.
1900/1/1 0:00:00据比推数据,当前市值最高的加密货币比特币今日24小时内上涨近10%。在经历了周五的大幅下跌之后重新突破8000美元.
1900/1/1 0:00:00