作为虚拟币行业人士而言,我们经常都会说到以太坊切换共识机制后时有很多细节是需要注意的。你知道以太坊20使用什么共识算法?今天就让小编跟你们说说吧!
我个人不是特别看好以太坊2.0。
以目前以太坊的发展情况来看,以太坊已经成为了世界上最大的一条公链,这点毫无疑问。伴随着以太坊得进一步发展,我们会发现区块链行业也取得了长足的进步。
一、我先讲一下关于目前以太坊的现状。
以太坊在这一次牛市中非常亮眼,换而言之,这一次的牛市就是因为以太坊上面的应用而拉起的。目前的以太坊有几个困境:第1个困境是交易费率太高,吓跑了很多人。第2个困境是交易速度太慢,网络拥堵问题非常严重。第3个困境是交易相对繁琐,其他公链显然要优于以太坊。这正是以太坊需要破局的地方,当以太坊升级到2.0以后,这些问题都会相应解决。
二、以太坊2.0动了很多人的蛋糕。
这个道理非常简单,目前的以太坊是工作证明模式,也就是我们经常提到的pow模式。如果把这种模式改成pos模式,看上去确实好了很多,但这也直接伤害了很多矿工的利益。试想一下,正是因为矿工才把以太坊推到如今的高度。如果以太坊成功过渡到了2.0,那个时候的POS模式已经不需要矿工了,矿工可能会集体出逃。
三、以太坊2.0已经失去了去中心化的特征。
之所以以太坊可以做得起来,一方面跟以太坊本身的技术能力有关,同时也跟以太坊的去中心化有关,去中心化不正是以太坊的核心增长力吗?如果以太坊正式升级2.0,35个以太坊的质押实在是太高了,几乎没有散户可以承受,那个时候的以太坊会变成严重中心化的产品。虽然很多人非常看好以太坊2.0,但我觉得2.0可能会遭遇重大危机,让我们拭目以待吧。

区块链的特点之一是去中心化。也就是节点会分布在各个地方组成分布式系统。各个节点需要对1个问题达成一致,理想情况下,只需要同步状态即可。
如上图所示 B节点将a=1= a=2的状态同步给 ACDE四个节点,这时系统中状态变为a=2, 但如果其中有恶意节点 AE 收到通知后把a=1=a=3修改为错误的节点,这个时候大家的状态就不一致了,此时需要共识机制使系统中得到1个唯一正确的状态。
如上面说到分布式系统存在恶意节点导致系统中状态不一致的情况有1个比较著名的虚拟问题-拜占庭将军问题。
拜占庭将军问题是指,N个将军去攻打一座城堡,如果大于一定数量的将军同时进攻则可以攻打成功,如果小于则进攻失败。将军中可能存在叛徒。
这个时候有2种情况
1.如果2个叛徒都在BCDE中,那么共识算法需要让其余2个将军听从A的正确决策进攻城堡。
2.如果A是1个叛徒,共识算法需要让BCDE中剩余的3个忠诚将军保持一致。
这个问题有很多种解法,大家有兴趣可以自行查阅(推荐学习PBFT),我们重点来看看以太坊中目前正在使用的Nakamoto 共识和将要使用的 Casper Friendly Finality Gadget共识是如何解决拜占庭将军问题的。
说到Nakamoto共识和Casper Friendly Finality Gadget共识可能大家不太熟悉,但他们的部分组成应该都比较熟悉-POW(工作量证明)和POS(权益证明)。
POW或POS称之为Sybil抗性机制,为什么需要Sybil抗性机制呢,刚刚我们说到拜占庭将军问题,应该很容易看出恶意节点越多,达成正确共识的难度也就越大,Sybil攻击就是指1个攻击者可以伪装出大量节点来进行攻击,Sybil抗性是指抵御这种攻击能力。
POW通过让矿工或验证者投入算力,POS通过让验证者质押以太坊,如果攻击者要伪装多个节点攻击则必将投入大量的算力或资产,会导致攻击成本高于收益。在以太坊中保障的安全性是除非攻击者拿到整个系统51%算力或资产否则不可能进攻成功。
在解决完Sybil攻击后,通过选取系统中的最长链作为大家达成共识的链。
很多人平时为了简化将pow和pos认为是共识机制,这不够准确,但也说明了其重要作用,我们接下来分析pow和pos。
通过hash不可逆的特性,要求各个矿工不停地计算出某个值的hash符合某一特征,比如前多少位是000000,由于这个过程只能依赖不停的试错计算hash,所以是工作量证明。计算完成后其他节点验证的值符合hash特征非常容易验证。验证通过则成为成为合法区块(不一定是共识区块,需要在最长链中)。
以太坊中的挖矿算法用到2个数据集,1个小数据集cache,1个大数据集DAG。这2个数据集会随着区块链中区块增多慢慢变大,初始大小cache为16M DAG为1G。
我们先来看这2个数据集的生成过程
cache生成规则为有1个种子随机数seed,cache中第1个元素对seed取hash,后面数组中每个元素都是前1个元素取hash获得。
DAG生成规则为 找到cache中对应的元素后 根据元素中的值计算出下次要寻找的下标,循环256次后获得cache中最终需要的元素值进行hash计算得到DAG中元素的值。
然后我们再看看矿工如何进行挖矿以及轻节点如何验证
矿工挖矿的过程为,选择Nonce值映射到DAG中的1个item,通过item中的值计算出下次要找的下标,循环64次,得到最终item,将item中的值hash计算得到结果,结果和target比较,符合条件
则证明挖到区块,如果不符合则更换nonce继续挖矿。矿工在挖矿过程中需要将1G的DAG读取到内存中。
轻节点验证过程和矿工挖矿过程基本一致,
将块头里面的Nonce值映射到DAG中的1个item,然后通过cache数组计算出该item的值,通过item中的值计算出下次要找的下标,循环64次,得到最终item,将item中的值hash计算得到结果,结果和target比较,符合条件则验证通过。轻节点在验证过程中不需要将1G的DAG读取到内存中。每次用到DAG的item值都使用cache进行计算。
以太坊为什么需要这2个不同大小的数组进行辅助hash运算呢,直接进行hash运算会有什么问题?
如果只是进行重复计算会导致挖矿设备专业化,减少去中心化程度。因为我们日常使用的计算机内存和计算力是都需要的,如果挖矿只需要hash运算,挖矿设备则会设计地拥有超高算力,但对内存可以缩小到很小甚至没有。所以我们选用1G的大内存增加对内存访问的频率,增加挖矿设备对内存访问需求,从而更接近于我们日常使用的计算机。
我们看看在Nakamoto共识是如何解决拜占庭将军问题的。首先看看区块链中的拜占庭将军问题是什么?
区块链中需要达成一致的是哪条链为主链,虽然采用了最长链原则,但由于分叉问题,还是会带来拜占庭将军问题。
本来以太坊pow目标是抵抗51%以下的攻击,但如上图如果恶意节点沿着自己挖出的区块不断挖矿,由于主链上有分叉存在,恶意节点不需要达到51%算力就可以超过主链进而成为新的主链,为此以太坊使用了ghost协议给上图中的B1和C1也分配出块奖励,尽快合并到主链中,这样主链长度(按照合并后的总长度算,长度只是抽象概念,以太坊中按照区块权重累加)还是大于恶意节点自己挖矿的。
网络中的用户通过质押一定数量的以太坊成为验证者。每次系统从这些验证者从随机选择出区块创建者,其余验证者去验证创建出的区块是否合法。验证者会获得出块奖励,没有被选中的区块不进行验证则会被扣除一定质押币,如果进行错误验证则会被扣除全部质押币。
如上图,权益证明在每隔一定区块的地方设置一个检查点,对前面的区块进行验证,2/3验证者通过则验证通过,验证通过则该区块所在链成为最长合法链(不能被回滚)。
我们简化地只分析了权益证明本身,在以太坊中权益证明较为复杂的点在于和分片机制结合在一起时的运行流程,这部分会在后面单独将分片机制的一篇文章中详述。
本篇文章主要讨论了共识机制是解决分布式系统中的拜占庭将军问题,以及分析了以太坊中的共识机制一般包括最长链选择和一种sybil抗性机制(pow或pos)。重点分析了pow和pos的流程以及设计思想。后续将开始重点讨论智能合约的部分。
1、共识机制的切换并不是“瞬时”完成:
以太坊 主网合并升级不会立即完成Pow Pos的转变,当前以太坊是两种共识机制同步运行,Pow占90%,Pos占到10%,按照开发组将难度炸弹的时间推迟到9.12日,难度炸弹爆发后伴随合并完成Pow挖矿难度将会逐渐“指数型增加”,届时局于挖矿成本的问题,倒逼Pow矿工逐步退出网络,但该过程可能持续将近6个月以上的时间,Pow网络也将进入“冰河期”
2、冰河期逐步减产,“通缩”并非一蹴而就:
在冰河期,由于以太坊Pow挖矿难度的剧增,出块时间的延长意味着矿工每日出块总奖励减少,按照以往难度炸弹爆发时期的数据,冰河期内大约1个月会进行1次Pow挖矿难度的调增,每次调增的力度都会比上一次更显著,预估持续6个月以太坊网络的总奖励将减少50%以上,持续9个月的时间将减少80%以上,经过6-9个月的时间将会完成大部分的减产,近几日 ETH Burn徘徊在1300附近,因此以太坊真正达到“通缩”需要在合并6个月后即23年上半年才能完成
3、用户端并不会有过多不良体验:
在以往难度炸弹爆发的冰河时期,随着Pow挖矿难度的陡增,用户端可能会产生非常不良的体验,虽然手续费可能并没有很高的提升,但是交互时间延长会明显降低用户体验;不过本次合并之后用户可能不会感受到明显的交互时间延长,合并后共识机制的切换,Pos验证开始将逐渐承载原本Pow验证的份额,出块时间更多的是参照Pos的时间;并且本次难度炸弹爆发和合并相隔时间不长,最多只会有1-2次的挖矿难度调增,最差情况下增加2秒附近的出块时间可能也不会过多影响用户体验
4、矿工分叉价值几何?定价权在交易所:
2017年 比特币 经过了一波分叉潮,潮水过后最终发现大家都在裸泳,只有比特币仍然屹立不倒,当时市场更多的是看不懂、看不清,分叉的“好”与“坏”在激辩中没有定论,交易所上线分叉也不会背负更多的骂名,市场的犹豫成为交易所争夺流量的工具;但今日非同往昔,主流的声音都是力挺主链,小型交易所可能会应为流量争夺被迫上线,而头部交易所应更加爱惜自身的羽毛,没有头部交易所支持失去流动性的分叉将是一地鸡毛;不过分叉币大概率还是会存在
5、算力迁移能否成真?或是伪命题:
市场更多的是在计价炒作预期。市场中大约80%以上为Gpu矿机,大部分GPU矿场会转型,为视频流应用程序构建基础架构、2D 和 3D 对象的渲染以及云服务器,因此也能保证一定的利润;算力迁移的过程伴随着挖矿难度的骤增,奖励也会随之减少,甚至入不敷出,因此并不认为大矿工会顶着巨额的成本拉高ETC没有生态支持的币价,更何况Gpu矿机也并非一条出路。而算力迁移和币价是否有直观的联系更像是先有鸡还是蛋的问题
以太坊切换共识机制后是很多人头疼的问题,尤其是在理解和现实的冲突方面,以太坊20使用什么共识算法也同样面临着相似的问题,关注我们,为您服务,是我们的荣幸!
免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如有疑问请发送邮件至:bangqikeconnect@gmail.com