【技术解读】共识算法演义——以太坊只能被以太坊打败吗?(一)



      摘要:比特币的诞生给我们带来了一个可以自运转网络的成功范例。通过共识算法、加密、点对点网络以及奖励机制等,可以形成一个自治的社区,可以形成一个通过挖矿机制(POW)来达成一种不通过中心机构来达成的信任,最终实现点对点的价值流通。在第一代区块链账本(比特币)的基础上,以太坊加入了智能合约的概念,但继续沿用了POW共识机制,直到最近(5月8日),以太坊网络发布了一项酝酿和讨论了很久的升级计划——新版Casper代码。 Hybrid Casper Friendly Finality Gadget被引入后,能将网络从与采矿相关的问题中解放出来,例如“能耗过大,采矿硬件配置过高,采矿池集中和ASIC新兴市场等问题”,最终目标是将网络从工作量证明机制向权益证明机制(POS)转化。不过距离EOS主网上线也只有一个月,围绕着EOS上的股份授权证明机制(DPoS)的全球21个主节点之争也一直是最近的火热话题。以太坊区块链被认为是区块链的2.0时代,长期霸占比特币之下Queen的宝座,虽然国外区块链社区甚至认为以太坊体量变得太大,已经不可轻易战胜,但类似EOS这样的挑战者层出不穷,除开PoW、PoS、DpoS,还有诸如PBFT,DBFT,Tendermint,Paxos,Pool验证池等一系列共识机制。对于投资者而言,未来将是一场底层链争夺战,不同的公链会支持不同的共识机制,熟悉这些概念变得尤为重要。

 

【De Beers的微笑】


      “A Diamond is forever"(钻石恒久远,一颗永流传)如一颗种子,它存在大众深深的脑海里。天然钻石作为石头,它的工业用处实在是越来越少,可以说,如果没有戴比尔斯(De Beers),天然钻石不会有今天。

      钻石按功用分有工业钻和首饰钻,按来源分有天然和人造两种。一般普通人讲钻石指的都是天然首饰钻。最早人们发现钻石并没有觉得特殊,只是觉得硬度指标这个特性可以在工业上有点用处,于是玻璃刀,拉丝模等金刚石制品被应用到一些领域中。可是1955年GE通过高温高压获得人造金刚石的技术后,天然金刚石的最后一点工业价值也失去了。现在除非是一些高规格高精度工艺需要,天然金刚石没有特别大的用处。因为人造的成本越来越低。我国在人造金刚石原材料方面占了全球的90%左右。不过戴比尔斯跳出来了,告诉你女人离不开钻石,钻石稀有,璀璨,拥有不可限量的价值,一颗钻石成就一段人生,一块破石头就是婚姻的见证。戴比尔斯在钻石文化上做的一些努力大家可以去翻翻史书资料,实在是太多了。

      这是可怕的营销。能卖钻石的,只有大庄家De Beers和他的销售帝国。所以钻石并不稀缺,价格却能维持高企。你不抽烟,却肯定吸过二手烟。你想买钻石,却几乎找不到二手的。男人们肉疼买下的每颗昂贵小钻戒,里面都闪烁着大庄家De Beers深邃的微笑。

      共识的形成真是件奇妙的事情…它受到人为和非人为因素的影响。首先我们来看看比特币PoW共识机制的构成。一句话简单介绍:干的越多,收的越多。比特币依赖机器进行数学运算来获取记账权,资源消耗相比其他共识机制高、可监管性弱,同时每次达成共识需要全网共同参与运算,性能效率比较低,容错性方面允许全网50%节点出错。

      工作量证明是矿工在处理交易数据(对数据也是进行哈希)的同时不断的进行哈希计算,求得一位前23位为0的哈希值,这个值成为nonce黄金数。当全网有一位矿工哈希出nonce时,他就会把自己打包的区块公布出去,其他节点收到区块验证区块后就会一致性认为这个区块接到了区块链上,就继续进行下一个区块的打包和哈希计算。在这个过程中,中本聪是通过算力的比拼牺牲了一部分最终一致性(因为会有分叉的产生)并且需要等待多个确认,但是这种简单暴力的方法却保证了整个区块链系统的合法性,而且把区块链系统的健壮性提升到极致,就算全网只剩下一个节点运行,这个区块链系统还是会继续运行下去。最后POW也充分提高了区块链系统的安全性,依靠51%攻击理论去破坏区块链系统是只有政府或者疯子才会采取的方法。

      和钻石类似,比特币也经历了从一文不值到身价不菲万人追捧的过程,这背后体现的正是社区、矿工和普通投资者对其背后机制的认可。八年前 Laszlo Hanyecz用1万枚比特币购买了两个披萨,因为当时世人既没有发掘比特币的价值,也没有人来维护它的价值,而这背后却潜藏着巨大的增长空间。所以投资者需要尽可能的了解共识机制的运行机理,才能当下一个先进的共识机制出现时,拥抱它。

 

【Tendermint还是Casper?】


      PoW被广泛诟病的耗能问题(挖矿成本高)促使许多区块链行业的前驱在不断地研究和创造新的共识机制。PoS就是其中叫声最响亮的一个。

在2011年,BitcoinTalk论坛对一个叫做权益证明(PoS)的概念组织了一场讨论。最初的PoS协议例如点点币,实现结果的并不理想。第一个真正提出将BFT研究应用到PoS公有区块链环境中是Jae Kwon,他在2014年创造了Tendermint,这个机制我们下面会做重点介绍。

      对PoS的一句话介绍是:持有越多,获得越多。PoS主要思想是节点记账权的获得难度与节点持有的权益成反比,相对于PoW,一定程度减少了数学运算带来的资源消耗,性能也得到了相应的提升,但依然是基于哈希运算竞争获取记账权的方式,可监管性弱。该共识机制容错性和PoW相同。它是Pow的一种升级共识机制,根据每个节点所占代币的比例和时间,等比例的降低挖矿难度,从而加快找随机数的速度。

      不过,以太坊正在计划从 POW 机制切换为 POS共识机制 Casper,存在两个不同实现的版本,分别是:


      Casper the Friendly Finality Gadget(FFG)

      Casper the Friendly GHOST: Correct-by-Construction(CBC)


      Casper FFG 是由 Vitalik 主导的,侧重于通过逐步迭代实现,慢慢过渡到 POS 机制。而 Casper CBC 则是由 Vlad Zamfir 主导的,不同于传统的协议设计方式,即先定义完整的协议,CBC 协议在开始阶段只是部分确定的,其余部分协议以证明能够满足所需/必需属性的方式得到。不过,也只是两种不同的方法,关于 POS 的核心理念还是一致的。相对来说,FFG 比较容易理解,也是即将第一个部署到以太坊的 Casper 版本。

      FFG 版本的 Casper 是一种混合 POW / POS 的共识机制,该机制下的每次出块依然还是采用 POW 挖矿机制,但每 100 个区块会增加一个 POS 检查点(checkpoint),通过验证人(validator)来评估区块的最终有效性。创世区块是一个检查点,区块高度为 100 的倍数的区块也是检查点,将这些检查点连起来就组成了一条检查点链(checkpoint chain)。检查点一般会有两种状态:justified 和 finalized,finalized 则表示已经确定为最终有效的,该状态的检查点至少已经存在一个子检查点,justified 则表示该检查点是已经被证明合理的,finalized 的检查点一定是 justified 的,但反过来则不一定。而一个检查点是否有效,是通过多个验证人投票得出的结果。

      那么Tendermint是什么呢?Tendermint属于拜占庭容错算法,它针对PBFT(实用拜占庭容错算法)做了优化,只需要有两轮投票即可达成共识。简单地说,Tendermint里面对高度为h的块共识的每一轮包括3个步骤:

      Propose(提议),Prevote(预投票),Precommit(预提交)。当在某一轮达成共识(收到大于2/3的Precommit投票)后,就会进入对下一个高度的共识,从第0轮开始 。 Tendermint中有个很重要的概念:PoLC,全称为Proof of Lock Change,表示在某个特定的高度和轮数(height,round),对某个块或nil(空块)超过总结点2/3的Prevote投票集合,简单来说PoLC就是Prevote的投票集。Tendermint中的参与者叫做 “验证人”(validator)。他们轮流对交易区块进行提议,并对这些区块进行投票。区块会被提交到链上,每一个块占据一个高度h。当然提交块可能会失败,如果失败就会开始下一轮的提交。 要想成功提交一个块,需要有两个阶段的投票:预投票和预提交。在同一轮提交中,只有超过2/3 的验证人对同一个块进行了预提交,这个块才能被提交到链上。假设少于1/3的验证者是拜占庭,Tendermint保证安全永远不会被破坏。也就是说验证者(2/3以上)永远不会在同一个高度提交冲突的区块。因此,基于Temdermint的区块链永远不会分叉。

      在当时,PoS研究做出了很大的假设:假设系统中的一系列对等节点都是静态的,并且在长时间内都是稳定的。在区块链环境中完全是不现实的。 Jae Kwon的重大突破是使Tendermint能够使用区块,哈希链接,动态验证器集合和循环的领导者选举来将BFT研究适应复制状态机(区块链)的领域。

在Tendermint环境中,出现了大量的共识算法(Honeybadger, Ouroboros, Tezos, Casper),它们都包含了BTF研究的元素以及在区块链上其他模块观察的元素。

      为权益证明做的所有研究都指向一个重要问题:在不耗尽物质稀缺资源的情况下,我们可以达到工作量证明(PoW)的安全级别吗?这个问题可以转化为:PoS的投票权以链上货币计价而不是计算力计价。区块链的POS共识问题比可扩展性更被广泛讨论,运行PoW挖矿的高开销成本以及环境外部性方面存在的问题都刺激了大量资源涌入PoS安全研究。

      Tendermint假设的是区块链的参与者在绝大多数时候不会作恶,因此验证者相应的惩罚机制比Casper轻,所以Tendermint更适合参与者们都相对可信的区块链,比如公有/私有链结合的企业级区块链。然而Casper假设的是区块链的参与者都是不可信的,所以相比Tendermint而言设计·3了非常严厉的惩罚机制,因而更适合去中心化无信任基础的区块链。当然,两者都还有问题,还远不是完美的共识机制。



END


好了,今天关于“共识算法演义(一)”的相关文章就到这里了。

如果大家有任何关于技术上的问题想与我讨论,

欢迎加入我的公链开发QQ群:699726921

项目交流可进项目QQ群:173806202

如想关注EKT的项目进展,欢迎关注微信公众号:EKT通用积分

猜你喜欢

转载自blog.csdn.net/weixin_42120252/article/details/80512744