宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > 币安下载 > 正文

以太坊 2.0:随机性

作者:

时间:1900/1/1 0:00:00

本文中,我们将谈及随机数(randomnumbers)以及如何在以太坊2.0中实现随机性。什么是RANDAO?什么是VDF(可验证延迟函数)?它们又是如何一起运作的?

信标链(beaconchain)如何决定轮到哪些验证者(validator)来提议区块,以及哪些验证者应该对该提议进行证明(attest)?在以太坊2.0系统中的1,024条分片链和成千上万名活跃验证者之间,信标链是如何在任何特定时间做出这一决定的呢?

信标链需要的是随机性(randomness)!

计算机中的随机性

计算机是无法生成真正的随机数的。

你可以这么来理解:计算机(computer)是一种机器,给定相同的输入,总是会生成相同的输出。它们就是计算的机器,就好像一台计算器不能让2与2相加得到5一样(除非是恶作剧或机器受到严重损坏)。

为了生成一个合理的随机数,计算机将依赖于seed(种子):即计算的起点,用于获取输出的输入(input)。种子可以是屏幕上鼠标光标的移动,也可以是维基百科数据库的所有内容。在种子之上,计算机将执行数学运算并最终得出一个人类无法预测的数字。

以太坊Layer2上总锁仓量为101.40亿美元:金色财经报道,L2BEAT数据显示,截至目前,以太坊Layer2上总锁仓量为101.40亿美元,近7日涨6.82%。其中锁仓量最高的为扩容方案Arbitrum One,约61.03亿美元,占比60.18%,其次是Optimism,锁仓量24.36亿美元,占比24.02%。[2023/7/16 10:57:20]

即使现在,如果你访问BitAddress(开源JavaScript比特币钱包工具)网站(https://www.bitaddress.org/),当你移动鼠标时,你会注意到“seed”将相应地发生变化,这是网站正在通过你的鼠标不规则移动中“搜集随机性”,见下图:

备注:继续移动鼠标,当图中的百分百达到100%时,就可以生成一个比特币钱包

如果我们在生成种子时总是应用相同的数学方法处理,那我们如何能将之称为随机的呢?最重要的是,当足够多的难以重复的种子放在一起时,得到的随机数就会是相当随机的。人们是无法在一个500万像素屏幕区域重复完全一样的鼠标运动轨迹的,因此这在某种程度上是可靠的。

如果再加上一些其他的数值,比如一天中的时间,或者像Cloudflare那样使用熔岩灯产生伪随机数(见下图),也许还有某个运动队当年进球的次数,这样你就得到了一个相当随机的种子(seed)。

以太坊域名服务 ENS 已在 Goerli 测试网部署 NameWrapper:9月20日消息,以太坊域名服务(ENS)开发者 jefflau.eth 表示,现已将新的 ENS 合约套件部署到 Goerli 测试网络,这是 ENS 协议最终向主网发布新合约套件的重要一步,已部署的新合约有 NameWrapper、新的 .eth 注册控制器、新的反向注册登记、新的公共解析器、指数价格曲线 Oracle 以及静态元数据服务。不过,当前新合约尚未连接到 ENS V2 应用,因此用户在很大程度上可能无法使用 UI 与这些合约进行交互。

ENS NameWrapper 允许将 ENS 域名包装为 ERC-1155 NFT,一个父域名能够为其子域设置更多的权限。[2022/9/21 7:09:30]

备注:Cloudflare是一家提供安全服务的云服务商,向客户提供了免费的SSL服务。因为要处理海量的加密流量,它需要使用到大量的随机数。这些随机数都是伪随机数生成器(PRNG)产生的。伪随机数生成器产生的随机数能被预测和破解。那么如何减少随机数的可预测性?Cloudflare披露了它的方法——使用熔岩灯。熔岩灯的名字源于内部不定形状的蜡滴的缓慢流动,让人联想到熔岩的流动。Cloudflare利用摄像头监视熔岩灯,拍摄视频和照片,然后将其转变成无法预测的随机比特流,再用它生成密钥。

Crypto.com部署其以太坊虚拟机链测试网:金色财经报道,Crypto.com发布公告称,已为其以太坊虚拟机(EVM) 链启动了测试网,该链名为Cronos,与Crypto.org链并行运行。该链旨在为开发人员提供将项目从以太坊和EVM兼容链转移到Crypto.org生态系统的能力,让用户能够更好地访问智能合约等DeFi功能。[2021/7/21 1:06:24]

区块链中的随机性

但是区块链中没有鼠标、传感器或者运动比赛结果预测。更重要的是,即使一个节点到达某个随机数,但该随机数必须与区块链的所有其他节点的随机数相同,否则该条链将分裂。在同一条区块链中,如果同一个区块的随机数不同,这将导致分叉。那么区块链是如何来处理随机性的呢?

一些区块链依赖区块哈希(blockhash)来处理随机性。因为哈希值是未知的、随机的,但在所有节点上都是相同的,所以对于基本的可证明公平的来说,哈希值可以作为随机性的来源。

然而,如果区块奖励少于矿工操纵区块哈希所能获得的奖励(当前的以太坊区块奖励是2ETH),那矿工就完全有经济动力进行恶意行为。更严重的是,在权益证明(PoS)系统中,由于生成一个区块几乎不需要计算时间或能量,矿工(验证者)可以很容易地继续生成数千个区块,直到获得一个他们喜欢的哈希值,并将这个哈希值进行提交。

IoTeX成功激活主网v1.2,完成升级全面兼容以太坊:官方消息,新一代高性能公链IoTeX宣布,主网在区块高度11,267,641完成硬分叉,成功激活主网v1.2版本。IoTeX网络已全面兼容支持以太坊工具Web3.js和各类Dapp。用户可以通过以太坊生态工具Metamask直接存储接收发送IoTeX主网通证IOTX和其他XRC20通证。

IoTeX作为硅谷开源项目成立于2017年,以链接现实世界和数字世界为愿景,是与以太坊全兼容的高性能公有区块链。[2021/5/25 22:41:41]

这也适用于验证者的选择。如果当前负责生产某个区块的验证者能够通过某种方式进行操纵,使得该区块哈希成为一个能够再次选中该验证者(或者由该验证控制的另一个验证者客户端)的种子,使该验证者继续成为提议区块的验证者,那么该验证者就可以一直提议区块,将其他的验证者挡在主要的利润之外!

显然,我们需要更强劲的区块链随机性,以太坊2.0系统更是如此!

简单概述RANDAO

想象一下,如果房间里面有很多人,每个人都在脑海中想象一个数字。为了得到一个随机数,我们要求这些人一个接一个地大声说出他们的数字。所有这些数相加之和就是我们想要的随机数。

Reddit“社区积分”将先在Rinkeby测试网上运行,后迁移至以太坊:“美版贴吧”Reddit证实,今年晚些时候,其代币奖励将迁移到以太坊区块链上。5月13日,Reddit正式公布了社区积分系统,宣布该功能将在两天内在“有限社区”内推出。不过,该奖励系统最早也要到2020年秋季才会在测试网络上运行。在beta测试结束之前,系统不会迁移到以太坊的主网上。该系统将首先在Rinkeby测试网上进行beta测试,但在完成迁移之后,一套基于以太坊的智能合约将执行传输、分发和支持奖励协议的其他操作,在此期间累积的积分也将结转。

此前消息,Reddit目前正在测试两种基于以太坊发行的代币:$MOONS以及$BRICKS,这两种代币将分别发行给/r/Cryptocurrency 和/r/FortniteBR两个板块的成员,目前这两个板块分别拥有100万和130万订阅者。Reddit还设计了一个引导用户打开的“Vault”页面,这是一个管理代币的新平台。通过Vault,用户可以从多个看板中查看他们的代币,并根据提示来使用代币。(Cointelegraph)[2020/5/15]

这就是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/

标签:以太坊RANANDDAOETH以太坊今日行情Transmute ProtocolCAND价格GaiaDAO

币安下载热门资讯
5.11晚间行情:BTC独上高楼 波段这样操作

文章系金色财经专栏作者供稿,发表言论仅代表其个人观点,仅供学习交流!金色盘面不会主动提供任何交易指导,亦不会收取任何费用指导交易,请读者仔细甄别,谨防上当.

1900/1/1 0:00:00
Bitfinex完成10亿美元融资 Bakkt七月测试比特币期货合约

FunTwitter 每日最新大咖观点,看我就够了! 2019/05/14期 本期作者:三月既望 Bakkt计划于七月测试比特币期货合约Bakkt官方推特消息:今天.

1900/1/1 0:00:00
本体重磅加入 BigONE「PoS 矿池」

亲爱的用户: BigONE「PoS矿池」ONT存币生息产品已经重磅上线,活动详情如下:BigONE?「PoS矿池」将参选本体的北斗节点,并和其他48个节点瓜分1,000万ONG.

1900/1/1 0:00:00
火币PRIME的「改良之路」

5月13日,火币全球站最新公告显示:火币全球站将于新加坡时间5月22日开启第三期火币优选上币通道,本次上线项目为ReserveProtocol.

1900/1/1 0:00:00
比特币ETF再次延批 如何打开万亿市场之门?

今日解读 美东时间本周二,美国证券交易委员会发布了一份新文件,再次推迟决定是否批准或拒绝由纽约证券交易所Arca提交的BitwiseETF提案。该提案于今年1月首次提出,这已经是第二次延期.

1900/1/1 0:00:00
JEX上线周HT期权0524公告

HT看涨期权 代码周HT看涨0524期权标的HT合约类型欧式看涨期权计价单位USDT最小价格单位0.0001USDT合约比例1:2.

1900/1/1 0:00:00