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



【以太坊只能被以太坊打败?】

      在区块链行业生态当中,一个能够满足商业需求、高效的区块链公共应用平台是必不可少,并占有极其重要的地位。Ethereum的兴起以及在2017年的爆发性增长,为我们提供了一个绝佳的参考范例。距离EOS主网上线还只有一个月,围绕着EOS上的股份授权证明机制(DPoS)的全球21个主节点之争成为最近大热话题。DPoS共识机制,简单点说,就是大家一起用手里的EOS Token来给所有节点竞选人投票,谁的票数多,谁就可以当选主节点。号称要取代以太坊生态的EOS在主网上线之前已经吸引近50个DAPP的入驻。

虽然区块链是一个能够保证输出可信的系统,但是去中心化系统容量天生不如中心化系统,所以,需要高容量的应用,可以根据需求选取中心化程度较高去中心化程度较低的区块链系统,基本上,所有的所谓大容量高并行低延迟的区块链系统,其实都有某种程度上的中心化,中心化程度越高越快。同互联网一样,区块链提供的也不是完全的去中心化,而是,你可以用它在任何层面,进行任何程度的去中心化。所以,你对容量需求高,就需要少去中心化一点好了,至少在可靠性上,它可能会比完全中心化的系统强。

然而,不得不承认的是,整个区块链行业还处于一个在初期完善基础架构的阶段,现阶段阻碍区块链大规模应用的最大障碍存在于技术上。Ethereum目前的PoW机制以及运行效率,的确还很难支持一个庞大的去中心化商业应用生态。

      EOS的DPoS在POS的基础上,多加了一个条件——“Delegated”——代表。能够获得记账权的人是社区投票选出来的,而且是轮流制。这类似于人大代表制度,我们投票表决,推选出能够代表社区整体的利益的人,而且如果这个代表表现不给力(如:没有按时记账),我们还可以换掉他。但相对于POS机制,DPOS的中心化程度降低了。

      在实现拜占庭容错BFT上,Tendermint假设区块链上的部分网络同步就能实现容错,而EOS只在完全同步的网络里才发挥容错特性。其次,Tendermint上的代表(验证者)只要大于4个且没有上限,而EOS上面的代表(主节点)是固定的21个。在投票权方面,EOS使用其代币投票来实现去中心化,拥有越多代币的人具有更大的投票权。而在Tendermint上为了成为验证者并具有一定的投票权,参与者必须锁定预设数量的代币,可以是自筹资金购买代币,也可以是其他代币拥有者授权委托。CAP定理指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。当DDOS攻击发生时,Tendermint会直接停止共识服务。EOS则是继续运行,并在运行的过程产生很多的分叉,这种不一致的状态可能被攻击者利用。从这个角度来看,Tendermint将选择了C(一致性)优先于A(可用性),DPoS则相反。

显然 EOS 能够解决Ethereum一些的问题。EOS 的 DPOS 共识算法和石墨烯底层工具组能够满足每秒上万次,甚至每秒上百万次交易请求的企业级应用需求。EOS软件也提供完善的账号系统,可以帮助开发者快速开发自己的DAPP,而如果要在以太坊上开发DAPP,则需要花更多的时间去开发底层模块。

在这样的情况下,我们判断,虽然以太坊极其成功地普及了链上智能合约的技术并建立了包含各类区块链应用和 ERC-20 代币的庞大生态,但它远未发展为能够满足现实商业需求的应用平台。限制它商业发展的阻碍存在于其技术机制。声称只有以太坊才能打败以太坊也为时过早。

时至今日,底层公链依然处在非常薄弱的境地,尚且无法实现真正的安全、可靠和高效。到目前为止,对于目前整个数字货币领域而言,基本是遵循“底层公链 → 解决方案 → 项目应用”的发展逻辑。底层公链相当于区块链世界的基础设施,解决方案用来拓展底层公链的性能或为商业应用提供服务支撑。只有在底层公链扎实稳健高效运转的基础上,区块链商业应用才能发展和落地。公链在整个区块链领域的重要性和必要性,由此可见一斑。

扫描二维码关注公众号,回复: 1370378 查看本文章


【多链与多共识】


      虽然大多数公链项目都会提出高TPS,高可用性,高扩展性,跨链等标配指标,但在区块链底层框架世界,解决性能、去中心化程度、和安全度这个三角问题,还是一个需要跨越的巨大障碍。共识机制是区块链网络运转的核心,区块链上不同节点的副本要保持一致,都需要通过共识算法来达成。但是为了保证安全和去中心化,目前区块链技术很难实现性能、安全和去中心化同时兼得。

由于货币需要一个稳定的系统,智能合约设计的越复杂出错的可能性就越高,所以在早期中本聪认为货币系统是不需要图灵完备的语言的,比特币之所以不支持智能合约也是觉得货币需要极高的稳定性。那么,如何运行区块链里保持货币稳定的同时又可以开发Dapp呢?有一种比较好的解决办法就是把Token链和DApp链分开。

在EKT中Token链是一个并行多链的结构,多链多共识,共享用户基础。设计并行多链有两个原因:

      1. 每个Token发行者或者链的发行者对共识的要求是不同的,对去中心化程度要求比较高的可以选择PoW,对TPS要求比较高的可以选择DPOS,每个链的Token进行交易的时候消耗的是当前链的主币作为交易费,也提高了发行链的灵活性。

      2.  并行多链可以共享用户,不同链的拥有者是一个互利关系,可以很方便的进行不同链的资产转移,而且多链并行理论上整个网络的TPS是没有上限的。

作为一个DAPP开发者最关心的肯定是三件事:1 开发难度 2 用户体验 3 社区生态。那么Token链的设计就是针对不想自己重新开发一条公链,但想要发行token和链的开发人员。EKT主要面向的对象是开发者,所以在设计token链的时候最大的想法是设计一个可以吸引大家都来发币的平台(之所以大家过来发币是因为TPS高,手续费低,可以选择发链用自己的Token做交易费,还可以和其他的链共享用户),这样可以让在EKT上开发DAPP的开发者可以获得更多的用户资源。

      由于 EKT提供了一个新的编程语言AWM,是一个完全事件驱动的语言,不需要main函数,大家只需要定义自己可以对外提供的事件和参数,然后在自己定义的事件函数里面写上相应的逻辑处理即可。同时EKT还会对主流的语言进行支持,第一个是Java,然后后面陆续推出Nodejs和Python,让大家可以不用学习新的编程语言就可以写出自己的DAPP对DAPP完全屏蔽共识机制和区块的概念,让开发者只需要关心自己的逻辑即可。EKT也提供数据库和fs的支持,在短期内还会支持DAPP直接操作sql数据库,也会支持分布式文件系统。这样下来其实可以和传统互联网应用的开发没有太大差异了。

      EKT的中心思想是设计一个社区的机制,让开发者可以轻易的开发一个DAPP,其他的交给EKT来处理。那么如何能建立一个正反馈的,良性运行的社区呢?最关键的特性指标其实在于TPS和延迟。平日大家吐槽最多的是TPS,其实在比特币或者以太坊上,即使TPS上去了,延迟也下不来。在EKT中,允许一些执行顺序不同对全局一致性没有影响的事件可以在区块打包前执行(其实应用中大部分都是这样的事件),然后对时序性有要求的事件区块打包后执行,这样可以实现大部分事件的秒级确认和执行。其实就是把一些事件先异步执行,然后区块打包的时候进行一致性校验。这样就能较好的降低延迟了。

以上就是我对区块链共识机制的一些思考,和一些在设计EKT的多链多共识,Token链和DAPP链分离的解决思路。


【结语】

      公链是区块链发展的前提基础,也是区块链行业未来发展的核心保障。而目前区块链的发展现状是,底层公链的性能尚未发展起来,在其上构建的各类DAPP严重受限于性能,各种共识算法都有不完美之处。因此,我们预计2018年区块链行业的发展,仍以底层公链为重心,各公链在性能、可扩展性和应用性上将继续角力的局面。底层公链是一切的基础,使用网络编程、链式或TAG数据结构、加密算法、数据存储等技术来构建区块网络,通过共识机制和分配机制,实现节点网络的正常运行。

      一些新型公链例如TON或EKT提出了多链多共识的观点,也许将不同的工作链在处理交易的过程中承担着不同的角色,对于不同形式的账户地址、不同的交易形式、不同的智能合约虚拟机甚至不同的虚拟货币结算方式都有着不同的工作链对应处理,实现在不同的工作链中统一的交互标准,可以更加兼顾公链平台使用时的效率与公平性。多链多共识的机制能为后来的区块链项目开发提供了很大的便利,可以使用于任何区块链适用的应用场景。

      未来的区块链发展来看,由于要达成共识,肯定会牺牲效率。但要走向大规模人群的采用,没有性能又是不行的。由于激励机制的存在,在区块链世界里,底层公链关于共识算法的讨论永远不会停息。可以预见,未来除了PoW、PoS、DpoS,还有诸如PBFT,DBFT,Tendermint,Paxos,Pool验证池之外,还会有更多层出不穷的共识算法,这对于区块链发展的探索都是有益的。区块链的代码贡献者和使用者更加关注底层公链的技术和生态。笔者认为既然没有完美的共识机制,开放的可选择共识机制的生态,是现阶段区块链行业里比较好的解决方案。不过各个公链在可扩展性,应用性,共识哲学以及应用生态建设上的角逐将持续很长一段时间。


参考阅读:

20180104 我眼中的价值币——公链

20180501 从共识的历史看区块链的共识机制。

20180516 区块链共识机制的演化

20180518 Casper:升级会给以太坊网络带来什么?

《Chain Interoperaability》 

《Casper the Friendly Finality Gadget》

《Consensus Compare: Casper vs. Tendermint》

《Tendermint: Consensus without Mining》

《Bitcoin: A Peer-to-Peer Electronic Cash System》

《Ethereum whitepaper》

《EOS whitepaper》

《EKT whitepaper》

 


END


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

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

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

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

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

猜你喜欢

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