位置:芙蓉财经网 >> Bitget

粒子硬币钱包(nxt在线钱包)

2023年07月20日 00:06

欧易okx交易所下载

欧易交易所又称欧易OKX,是世界领先的数字资产交易所,主要面向全球用户提供比特币、莱特币、以太币等数字资产的现货和衍生品交易服务,通过使用区块链技术为全球交易者提供高级金融服务。

APP下载   官网注册

以太坊的工作量证明算法是什么,有什么价值?从算法层讲清楚以太坊的工作量证明

以太坊的工作量证明算法是什么?对于没有学过数学的同学来说,从算法层面理解以太坊的工作量是非常困难的。一本黄皮书会压倒一大批吃瓜群众。因此,本文将尝试用图形和最简单的数学来解释以太坊中挖掘工作量的证明。,包括以太坊如何打ASIC1,如何动态调整挖掘难度,如何检查挖掘的正确性。

了解工作负载证明PoW

工作证明(PoW)是一种针对服务和资源滥用或拒绝服务攻击的经济对策。。一般要求用户做一些复杂耗时的操作,答案可以被服务商快速查对,以消耗的时间、设备、精力作为保障成本,保证服务和资源被真实需求所用。来自维基百科的

1993年提出经济应对政策的概念,直到1999年才使用工作证明一词。

工作证书,直接翻译成工作量证书。这个中文词直接听起来有点混乱。事实上,如果我告诉你结婚证和离职证明,你会先想到一张印着东西的纸吗?别人看到这张纸,就会知道你真的结婚了,或者说你真的离职了。工作量证明也是一种语法逻辑,也可以理解为一张纸,通过它你可以证明你真的完成了一定的工作量。。这是工作量证明的字面意思。

工作量证明有什么特点?让';让我们抛开计算机,用真实世界的例子来说明。比如我上课不认真,老师会罚我抄《桃花源记》十遍。我花了两个小时工作,最后我给了老师一张纸。。老师想确定我做了很多作业,但我只需要看一下。

这个例子展示了POW机制的一个主要特点,就是生成要耗费大量的劳动,而验证只需要一瞬间。工作量证明的另一个例子可以是老师给我出了一道题。我给老师的计算结果,或者说最后一个数字,就是我的工作量证明。当然,回到电脑,纸并不';t存在,所以所谓的工作量证明就是一个耗费大量劳动才得到一个冷币钱包的数字。

Let';让我们来谈谈POW的最早用户。。人们在使用电子邮件时会受到垃圾邮件的骚扰。如果没有成本,发一百万封邮件真的很容易。所以聪明的人会认为,如果每封邮件的发送成本很小,那么垃圾邮件就会得到很大的遏制。

和POW是为这个2022椰壳纤维网络编辑器的目的而产生的。基本流程是接收方会先广播一个问题,发送方在发送邮件时必须附上这个问题的答案,这样邮件才会被接受,否则会被认为是垃圾邮件。。

摘自

采矿

采矿只是解一个数学方程。方程的许多可能的解被称为解空间。挖矿是为了找到解决办法。与几何方程不同,这个挖掘方程有以下特点:

1。。没有比穷举法更有效的解决方法;

2.解在空间上均匀分布,每次穷举搜索找到解的概率基本相同;

3.解空间足够大,保证能找到解;

假设挖掘方程为:n=random(1.10),求nd

当d为10时,我们可以求任意n只满足n10一次。但是当D=5时,平均需要两次运算才能找到n5。随着d的减小,操作次数会增加。

D这里是挖掘的难度。通过调整解空间中合格解的数量,可以控制尝试求解问题的次数,间接控制生成一个块所需的时间。从而可以调整和稳定块间隔时间。

矿工多。单位时间内尝试次数增加,求解速度会更快,挖出块的时间会更少。

此时挖掘难度增加,平均尝试次数增加,挖掘时间增加。恰恰相反。

太太房新区块开采工艺

可以通过母块计算出新块的开采难度,然后求解开采方程。采矿工作量证明证明"为了获得采矿方程"通过一个加密的安全随机数。。工作负载证明函数可以用PoW来表示:

其中

是新的块头,但是nonce和mixHash都为空;2.

是块差值。3.

是块mixHash值;挖掘方程算法返回的第一个参数值;4.

是一个块随机值;挖掘由方程算法返回的第二参数值;5.d是计算mixHash需要的大型数据集;6.PoW是一个工作量证明函数,它可以得到两个值。第一个是mixHash。第二种是伪随机数,其密码学依赖于H和d

。基本算法是挖掘方程Ethash。通过求解可信挖掘方程,可以保证区块链的安全性。与此同时,挖掘新街区伴随着街区奖励。,所以工作量证明不仅提供了保障,也是一种利益分配机制。

以下是采矿工作量证书的计算过程:

一般过程如下:

1。根据父表头和新表头计算

;2.选择一个随机数作为PoW开头的Nonce的初始化值;3.取随机数之和作为挖掘方程Ethash的参数;4.执行Ethash将得到两个返回值:mixHash和result5。确定结果是否高于。

.如果是,nonce加1。继续彻底搜查;否则,如果是,则解决方案成功。返回mixHash和Nonce6。将这两个值记录在块标题中,以完成挖掘。

方块难度

以太坊的挖掘难度是记录在方块头难度上的那么是如何动态调整的呢?

以太网主网调整算法修改多次。甚至以太坊黄皮书中的定义与实际实现代码也不一致。在这里,我用程序实现代码来说明块难度调整算法。

其中:

是创造区块的难度值。难度参数

用于影响区块时间的动态平衡。使用变量而不是直接使用两个块之间的时间间隔,是为了保持算法的粗粒度,防止在块时间间隔为1秒的情况下,难度只是略高。也可以确保在这种情况下容易引起软分叉。

-99的上限只是为了防止客户端安全错误或者其他黑天鹅问题导致两块在时间上相差太远,难度值不会下降太多。在数学理论上,两个区块之间的时间间隔不会超过24秒。

难度增量会缓慢快速增加难度值(每10万块),从而增加块时间差,增加以太坊2.0防桩开关的时间压力。这种效应被称为"difficultybomb";或者"iceage"。

以太坊的理念是最终从PoW过渡到PoS。为了在转场上施加时间压力盒子难度内嵌一个难度炸弹,难度增加2的倍数。如果你听过数学故事"下棋和打饭",你要知道指数增长是非常可怕的。

最后,在拜占庭版本,随着EIP-649。通过伪造块号

来延缓冰河时代的到来。这是通过从实际块数中减去300万得到的。换句话说,就是用块来减少时间间隔,为权限证书的开发赢得更多的时间,防止网络被"冷冻"。

在君士坦丁堡的版本升级中,以太坊的开发者在一次视频会议中表示,如果直接执行难度炸弹,将很难保证以太坊能成功切换到PoS,大量矿工离开,很可能会极大影响以太坊的安全性。所以和EIP-1234一起,

再次修正为500万,以延缓冰期。

这种挖掘难度的调整机制保证了区块时间的动态平衡;如果最近的两块之间的间隔短,难度值会增加,所以需要额外计算,下一块的时间会大大延长。相反,如果最近的两个块之间的间隔太长,难度值和下一个区块的预期时间会缩短。

挖矿方程式Ethash

比特币,区块链的鼻祖,是PoW的共识,已经稳定运行了10年。但从2011年开始,因为比特币有利可图,市场上出现了专业的矿机,对哈希算法、散热、能耗进行优化。背离了比特币网络节点运行在千万台普通电脑中,公平参与挖矿的初衷。这很容易导致节点集中化,面临51%的攻击风险。所以以太坊需要防范和提升实力。因此,在以太坊设计共识算法时,我们期望达到两个目的:

1.反ASIC1:为算法创建专用硬件的优势应该尽可能小。理想情况下,即使开发出专有集成电路,加速能力也足够小。以至于普通电脑上的用户依然可以获得微不足道的利润。。2.轻客户端的可验证性3360A块应该能够被轻客户端快速有效的验证。

以太坊前期起草的共识算法是Dagger-Hashimoto,由Buterin和Dryja提出。然而事实证明,它很容易受到塞尔吉奥勒纳的硬件加速的影响。共享内存。于是我最终放弃了匕首——桥本,改变了研究方向。对达格-桥本做了很多修改。最后形成了一个明显不同于Dag-Hashimoto的新算法Ethash。Ethash是以太坊1.0的挖掘方程式。

介绍

这个算法的大致流程如下:

1。通过扫描块头直到某个点来计算每个块的种子。2.根据种子,可以计算一个初始大小为16MB的小型缓存。客户端会稍微保存此缓存,以帮助检查数据块和生成数据集。3.根据缓存显示,您可以生成初始大小为1GB的DAG数据集。数据集(64字节)中的每个条目只依赖于缓存中的几个条目。数据集随时间线性增长,每30,000个数据块更新一次。数据集仅存储在完整的客户端和挖掘器节点中。但是大多数时候挖掘者';的工作是读取这个数据集,而不是改变它。4.挖掘就是随机选择数据集中的部分,一起哈希。可以根据缓存只生成验证需要的部分,这样就可以用少量的内存进行完整的验证,所以对于验证来说,,只需保存缓存。

这里选择了16MB的缓存,因为更小的缓存允许轻量级的评估方法,这对于ASIC来说太容易了。1MB的缓存仍然需要非常高的缓存读取带宽,而较小的缓存可以更容易地优化。。大的缓存将使算法很难检查轻客户端的块。

选择初始大小为1GB的DAG数据集,要求内存级别超过大多数专用内存和缓存的大小,但普通计算机可以并且仍然可以使用。30的数据集000个块被选择更新一次,因为大的间隔更容易创建被设计为很少更新并且只读频繁的存储器。但如果间隔太短,就会增加进入壁垒,因为弱机器需要在更新数据集的固定成本上花费大量时间。

同时缓存和数据集大小随时间线性增长。为了降低循环行为中偶然规律性的风险,数据大小是一个不超过上限的质数。年增长率约为0.73倍,大致相当于摩尔';的法律。摩尔';美国的法律将被越过。这将导致挖掘需要非常大的内存量,使得普通GPU无法再进行挖掘。因为您可以使用缓存重新生成所需数据集的特定部分,并且少量内存可用于PoW验证,所以您只需要存储缓存而不是数据集。

缓存和数据集大小

缓存c和数据集d的大小取决于块的窗口周期Eepoch。

在每个窗口周期之后,数据集增长8MB(223字节),缓存增加了128kb(217字节)。为了降低循环行为中偶然规律性的风险,数据大小必须是一个质数。计算缓存大小的公式:

计算数据大小的公式:

,其中素数公式如下:

这个素数从上限开始按降序计算。

生成种子哈希值

种子实际上是一个哈希值,每个窗口周期(30,000个块)更新一次。是将Keccak256叠加几次计算出来的。

第一个窗口期的种子hash值S为空的32字节数组,通过对前一周期的种子散列值再次执行Keccak256散列来获得后续周期的种子散列值。

生成缓存

在缓存生成的过程中,缓存被切割成若干行64字节。

首先将种子哈希值的Keccak512结果作为初始值写入第一行;然后,用上游数据的Keccak512哈希值填充每一行的数据;最后,RandMemoHash算法(严格内存硬哈希函数(2014)中定义的内存拼图算法)执行了三次。这个算法的目的是证明此时指定的内存量用于计算。

randommosh算法可以理解为一个首尾相连的若干行的环形链,其中n为行数。

每次随机存储器计算都是依次重新填充每一行。求I线前后两条线的OR结果。,然后对结果进行Keccak512 hash,填入第I行。

最后,如果操作系统是Big-Endian(非little-endian)字节顺序,则意味着低位字节排列在内存的高端,高位字节排列在内存的低端。此时,高速缓存内容被反转以调整存储器存储顺序。最后存储器中高速缓存数据排序顺序与机器的字节顺序一致。

生成数据集

使用缓存生成数据集。首先,缓存被分成n个16字节的单元。在生成过程中,数据集被切割成大小为64字节的多个数据项。,每个数据项可以混合并发生成。最后,将所有数据项拼接成一个数据集。

1.生成索引行的数据时,先从缓存中获取索引的%n个单元的值u;

2.数据项混合长度为64个字节,分为16个4字节的uint32。第一个uint32等于u^index.,另一个第I个uint32等于uI;

3.用数据项混合物的Keccak512散列值覆盖该混合物;

4。对混合执行FNV散列。在FNV散列法中从缓存中检索256个双亲。线操作。

1)确定第p个父母的位置:FNV(index^p,mix[p])%n;2)将FNV(mix[p],cache[p])的值填入mix[p];在…之中,FNV(x,y)=x*0x01000193^y;这里的256次计算相当于16个uint32混音周期。

5。再次用数据项mix的Keccak512哈希值覆盖mix;

6。如果机器字节顺序是Big-Endian,就需要交换高低位;

7。最后,将mix填充到数据集中。,即 dataset[index]=mix;

2022蓑衣网小编

注意,在FNV哈希计算中,累积初始大小为1GB的数据集大约需要42亿次(16777216*256)。即使使用并发计算,完成数据集生成也需要一些时间。。这就是为什么当您启动一个geth挖掘节点时,您会看到一个"正在生成DAG从头开始记录,你就可以';在数据集生成之前,不要开始挖掘。

Ethash挖掘方程求解

数据集可用于工作量证明计算。根据随机数、H和数据集,可以计算伪随机数N。工作量的证明是检查N是否满足难度要求。。工作负荷计算由挖掘等式Ethash定义。

上图是Ethash的计算流程图。解释如下:

1。首先,传入的新块头哈希值和随机数nonce被拼接,然后执行KEC512哈希。,获取64字节的种子;

2。然后初始化一个128字节的mix,初始化的时候分成32个4字节的单元;使用128字节的顺序访问,以便每次Ethash计算时总是从RAM中获取整个页面。以最小化页表缓存缺失。理论上可以不用ASIC

3。mix数组的每个元素值都来自seed混合[I]=s[i*4];是种子的位0,4,8…60的值;

4。然后完成64个随机的内存读写周期。在每个周期中,两个16字节的m'指定位置p上的s(FNV(Is[:32],i2)%行)和p1需要拼接成32字节的m'来自数据集的;然后用fnv(mix[i],m[i])来覆盖mix[I];其中I是循环索引,s[:32]是种子的前32个字节,rows是128个字节,表示数据集可以分成2022行椰壳纤维网。

5。然后压缩混合物。压缩是将mix压缩成每16字节8个压缩项。每16个字节为4小部分fnv叠加哈希值FNV(FNV(FNV(m[0],m[1]),m[2],m[3]);

6。将这八个压缩项连接起来,得到mix的mixHash值。

7。最后对seed和mixHash进行KEC256哈希,得到伪随机数n;8.最后返回这两个参数:mixHash和n;

推荐阅读

白糖期货,白糖期货外盘
粒子硬币钱包(nxt在线钱包)
2023华山门票免费政策最新(四种人不宜去华山)
Eth分叉时间(eth分叉会增加吗)
比特币充值多久能到账啊,比特币充值多久能到账户
伦敦黄金交易价(伦敦市场黄金价格)
不喝酒不吃海鲜为什么还会得痛风(一旦痛风就得一辈子吗)
华为手机怎么省电(华为手机怎么省电设置方法)
脸书继续酝酿天秤座的布局:招聘职位空缺,为协会增加新成员。
比特币挖矿难度是什么意思?20T的突破对矿工有影响吗& # 039;收入?
文章来源: summer
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至405936398@qq.com 举报,一经查实,本站将立刻删除。
相关资讯
比特币的网络虚拟商品属性 比特币的网络虚拟商品属性是什么
比特币的网络虚拟商品属性 比特币的网络虚拟商品属性是什么 1970-01-01

Ethash挖掘方程求解数据集可用于工作量证明计算

比特币技术专家,比特币技术专家是谁
比特币技术专家,比特币技术专家是谁 1970-01-01

Ethash挖掘方程求解数据集可用于工作量证明计算

股指期货 多头 股指期货多头
股指期货 多头 股指期货多头 1970-01-01

Ethash挖掘方程求解数据集可用于工作量证明计算

比特币美元架格?比特币美元架格图
比特币美元架格?比特币美元架格图 1970-01-01

Ethash挖掘方程求解数据集可用于工作量证明计算

国内期货大公司排名2015年(中国期货市场中心是做什么的)
国内期货大公司排名2015年(中国期货市场中心是做什么的) 1970-01-01

Ethash挖掘方程求解数据集可用于工作量证明计算

比特币微信段子,比特币 段子
比特币微信段子,比特币 段子 1970-01-01

Ethash挖掘方程求解数据集可用于工作量证明计算