教程网

您现在的位置是: 首页 > 头条

延时工作量证明dPoW是什么?通俗解释延时工作量证明dPoW

延时工作量证明dPoW是什么?通俗解释延时工作量证明dPoW
延时工作量证明dPoW是什么?延时工作量证明(dPoW)是由科莫多(Komodo)项目所设计的一种安全机制。基本上来说,它是工作量证明(PoW)一致性算法的修改版本,它利用比特币区块链的哈

延时工作量证明dPoW是什么?延时工作量证明(dPoW)是由科莫多(Komodo)项目所设计的一种安全机制。基本上来说,它是工作量证明(PoW)一致性算法的修改版本,它利用比特币区块链的哈希算力来增强网络安全性。

通过使用工作量证明(dPoW),Komodo开发人员不仅能够保护自己的网络,还能够保护未来加入Komodo生态系统的任何第三方区块链。实际上,dPoW可以用于保护任何使用UTXO模型开发的独立区块链项目。

延时工作量证明(dPoW)是如何工作的?

以Komodo为例,dPoW安全机制使用Zcash代码库开发并实现,通过利用比特币的哈希算力,实现零知识隐私证明并提高网络安全性。每隔十分钟,Komodo系统会对区块链网络执行快照。然后,将快照的结果写入到比特币网络上的区块中。总的来说,这个过程创建了整个Komodo系统的备份,该系统的备份保存在比特币区块链中。从技术层面说,Komodo社区选举的公证节点通过在Komodo链上执行交易,将每个受dPoW保护的区块链的区块哈希写入Komodo分布式账本中。

调用OP_RETURN指令,公证节点将单个块哈希存储到Komodo链上。公证节点选择间隔十分钟的区块快照执行时间的原因是为了确保整个网络同意该区块的有效性。每个区块链的网络仍然会对每个区块达成共识。公证节点简单地记录来自先前挖掘的区块散列值。

然后,公证节点将来自Komodo区块链的散列写入比特币帐本中。通过执行BTC交易并使用OP_RETURN指令将数据写入比特币的区块链中,也可以完成此过程。在公证节点完成对比特币区块链网络的操作后,Komodo的公证节点就会将来自BTC区块链的区块数据写回到每个受保护的链上。

此时,网络将不会接受任何尝试更改公证区块(或在公证节点达成共识之前创建的任何区块)的重组操作。目前,dPoW正在与比特币一起使用,但它可以作为安全性工具被用在任何其他使用UTXO模型的区块链中。

PoW与dPoW

工作量证明(PoW)算法的主要目标之一是维护网络安全,阻止诸如分布式拒绝服务攻击(DDoS)之类的网络攻击。简而言之,PoW算法是生产成本非常高的数据块,并且在挖矿阶段作为关键要素也易于被其他人验证。

基于PoW的区块链中的挖矿设计是非常苛刻的。矿工需要解答一道复杂的密码学题目,从而挖到一个新的区块。这个过程涉及了大量的计算工作,消耗的硬件和电力非常昂贵。挖矿的过程不仅仅可以保护网络免受外部攻击,还可以验证交易的合法性并生成新的加密货币(作为矿工解决难题的奖励)。

因此,工作证明量证明的区块链很安全的原因之一就是挖矿的过程会涉及到非常高的金融投入。然而,重要的是要注意PoW区块链的安全性与用于它们的算力(哈希)直接相关,这意味着小型区块链网络不如大型区块链网络安全。与PoW相比,dPoW不用于在新区块上达成共识,因此不被认为是一致性算法。

相反,它是在普通PoW共识规则之外实施的安全机制。 DPoW使得经过公证的区块不可能被重组,这意味着它使区块链更加安全并且能够抵抗51%攻击。实际上,每当一个区块被经过公证后,dPoW就会“重新设置”区块链的共识规则。

例如,大多数PoW区块链链使用“最长链规则”。因此,每当区块链的网络收到区块XXX,XX1已经公证的确认时,最长的链规则从块XXX,XX2开始。网络将不接受从区块XXX,XX0或之前开始的链,即使它是最长的链。

最终观点

延时工作量证明安全机制允许执行频繁的备份,以确保在系统发生故障或在被入侵后,可以快速恢复整个网络的数据。如果想要成功造成持久的攻击损害,攻击者也必须关闭比特币网络,破坏比特币区块链中所备份的所有快照。

比特币从出现开始就一直充满了争议,最近最令人关注的热点就是比特币中的光学工作量证明算法,比特大陆及其控制的矿池控制了比特网络53%的算力,这难道不是致命的问题吗?下面小编就来给大家分析分析这个问题。

无独有偶,近日PoWx基金会的开发人员把“矛头”指向了比特大陆,他们认为比特大陆生产的挖矿硬件占到了市场的50-80%,对整个比特币网络造成了巨大的负面影响。在这种背景下,PoWx基金会呼吁比特币社区能够改变比特币挖矿算法。

在一批比特币终身开发人员的支持下,非盈利基金会PoWx本周推出了一项全新的工作量证明算法,旨在替代现有的比特币网络交易验证协议。PoWx主张比特币采用一种被称为“光学”(optical)工作量证明的新技术,它可以利用一种更节能的激光技术作为挖矿的基础。

根据PoWx团队的说法,如果这种新挖矿算法得以实施,将会给比特币带来两大改进:

第一,对于那些生产芯片的初创公司来说,进入加密行业的门槛将会降低,从而增强了比特币网络的多中心化特点;

第二,能够降低比特币挖矿能耗(据估计,目前比特币挖矿耗电量占到全球电力消耗的0.15%)。

新的挖矿算法能够普及吗?答案是待定。如果“光学工作量证明“成为正式提案,意味着未来每个比特币用户都需要更新软件。如果该提案遭到大量用户反对,甚至可能导致比特币被分成两种不同的加密货币,类似的情况已经在比特币现金身上发生过——由于对项目技术方向产生分歧,导致比特币出现了分叉币。

从上面的内容大家也可以知道,比特币的投资者想要真正的了解光学工作量证明算法,还是一个非常艰难的过程,而且,由于比特币是一个权力下放的系统,用户意见可以发挥决定性作用。

以太坊工作量证明算法是什么?对于没有把数学学会的同学来说,如果希望从算法层了解以太坊的工作量证明是非常困难的。一本黄皮书会难倒一大批吃瓜群众。因此,本文将试图使用图文和尽量简单的数学来解释以太坊挖矿工作量证明,包括以太坊是如何对抗ASIC1、如何动态调整挖矿难度、如何校验挖矿正确性的。

认识工作量证明PoW

工作量证明(Proof-of-Work,PoW)是一种对应服务与资源滥用、或是拒绝服务攻击的经济对策。一般是要求用户进行一些耗时适当的复杂运算,并且答案能被服务方快速验算,以此耗用的时间、设备与能源做为担保成本,以确保服务与资源是被真正的需求所使用。

摘自维基百科

这种经济性应对政策概念,是在1993年提,直到1999年才使用 Proof-of-Work一词。

Proof of Work ,直接翻译过来是工作量证明。这个词的中文直接听起来有点不知所云。实际上如果我跟你说结婚证明,离职证明,那你是不是首先想到的是一张上面印着一些东西的纸呢?别人看到这张纸就知道你的确结婚了,或者你的确从某单位离职了。工作量证明从语法上也是一个逻辑,也可以理解成一张纸,通过这张纸就可以证明你的确完成了一定量的工作。这就是工作量证明的字面意思。

那工作量证明有什么特点呢?我们抛开计算机,用现实世界的例子来说明。例如我上课不认真,老师罚我把《桃花源记》抄写十遍,我用了两个小时的劳动,最后给老师的就是一张纸,而老师要确认我的确付出了大量劳动,其实只需要看一眼就可以了。

这个例子道出了 POW 机制的一大特点,那就是生成需要花费大量劳动,但是验证只需一瞬间。另外一个工作量证明的例子可以是,老师给我出一道题,我给老师的运算结果,或者说就是最后的那个数字,就是我的工作量证明。回到计算机情形下,纸当然是不存在的,所以所谓的工作量证明就是花费了很多劳动而得到的一个数了。

再说说 POW 最早的用途。人们在使用电子邮件的时候会收到垃圾邮件的骚扰。如果没有成本,那么发送一百万封邮件的确是很轻松的事情了。所以,聪明的人就会想,如果让每一封邮件发送时候,都有一个微小的成本,那么垃圾邮件就会被很大程度的遏制了。

而 POW 就是为了服务这个目的产生的。基本过程就是邮件接收方会先广播一道题出去,邮件发送方发邮件的时候必须附带上这道题的答案,这样邮件才会被接受,否则就会被认为是垃圾邮件。

摘自:https://zhuanlan.zhihu.com/p/42694998

挖矿

挖矿就是在求解一道数学方程。方程的多个可能的解被称为解的空间。挖矿就是从中寻找一个解。不同于几何方程,这个挖矿方程有如下特点:

1.没有比穷举法更有效的求解方法;

2.解在空间中均匀分布,每一次穷举查找到解的概率基本一致;

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

假设挖矿方程是:n=random(1.10),求 n< D。

当 D为10时,我们只需要运算一次就可以找到任意的n都满足 n<10.可当 D =5.则平均需要两次运算才能找到 n<5.随着D的减小,需要运算的次数就会增大。

这里的D就是通常说的挖矿难度,通过调整解空间中的符合要求的解的数量来控制求解所需要尝试的次数,间接的控制产生一个区块所需要的时间。使得可以调控和稳定区块间隔时间。

当挖矿的人很多,单位时间内尝试次数增多时,求解的速度也就更快,区块挖出用时更短。此时则增大挖矿难度,增大平均尝试次数,使得挖矿耗时上升。反之依然。

以太坊新区块挖矿流程

通过父区块可计算新区块的挖矿难度,再求解挖矿方程。

挖矿工作量证明通过一个密码学安全的nonce来证明“为了获得挖矿方程解n,已经付出了一定量的计算”。工作量证明函数可以用PoW表示:

其中

是新的区块头,但nonce和mixHash均为空值;2.

是区块 difficulty 值。; 3.

是区块mixHash值;挖矿方程算法返还的第一个参数值; 4.

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

这个基础算法就是挖矿方程Ethash。通过可以信任的挖矿方程求解,来确保区块链的安全性。同时,挖出新块还伴有区块奖励,所以工作量证明不仅提供安全保障,还是一个利益分配机制。

下面是挖矿工作量证明的计算过程:

大致流程如下:

1.根据父区块头和新区块头计算出

;2.在PoW开始时选择一个随机数作为Nonce的初始化值;3.将Nonce和作为挖矿方程Ethash的入参;4.执行Ethash将得到两个返回值:mixHash和 result;5.判断 result 是否高于

。如果是则 nonce加1.继续穷举查找;否则,如果是则说明求解成功。返回 mixHash和Nonce;6.两个值记录到区块头中,完成挖矿。

区块难度 difficulty

以太坊的挖矿难度记录在区块头difficulty上 ,那么在它是如何动态调整的呢?

调整算法在以太坊主网有多次修改,即使以太坊黄皮书中的定义也和实际实现代码也不一致,这里我以程序实现代码来讲解区块难度调整算法。

其中有:

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

被用来影响出块时间的动态平衡。使用了变量而非直接使用两个区块间的时间间隔,是用于保持算法的粗颗粒度,防止当区块时间间隔为1秒时只有稍微高难度情况。也可以确保该情况下容易导致到软分叉。

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

难度增量 ∈ 会越来越快地使难度值缓慢增长(每10万个区块),从而增加区块时间差别,为以太坊2.0的权益证明(proof-of-stake)切换增加了时间压力。这个效果就是所谓的“难度炸弹”(“difcultybomb”)或“冰河时期”(“iceage”)。

以太坊的设想是最终从PoW过度到PoS,为了给过度施加时间压力,所以在区块难度中预埋了一个难度炸弹 ∈ ,他是以2的指数级增长的。如果听过“棋牌摆米”的数学故事,就应该清楚指数级增长是非常恐怖的。

最终,在拜占庭版本中,伴随EIP-649.通过伪造一个区块号

来延迟冰河时期的来临。这是通过用实际区块号减去300万来获得的。换句话说,就是减少 ∈ 和区块间的时间间隔,来为权益证明的开发争取更多的时间并防止网络被“冻结”。

在君士坦丁堡版本升级中,以太坊开发者在视频会议中表示,如果直接执行难度炸弹,那么难保以太坊能顺利切换到PoS就有大量矿工离开,这很有可能极大的影响以太坊的安全性。因此,伴随EIP-1234.再一次修改

到500万来延迟冰河时期。

这个挖矿难度调整机制保证了区块时间的动态平衡;如果最近的两个区块间隔较短,则会导致难度值增加,因此需要额外的计算量,大概率会延长下个区块的出块时间。相反,如果最近的两个区块间隔过长,难度值和下一个区块的预期出块时间也会变短。

挖矿方程Ethash

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

 1/4    1 2 3 4 下一页 尾页