首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >EKT多链技术谈 | 主流共识机制解析

EKT多链技术谈 | 主流共识机制解析

原创
作者头像
风中凌乱的靓仔
修改2019-03-22 15:23:38
4950
修改2019-03-22 15:23:38
举报

EKT多链技术是一条多链多共识的高性能公链,提供适合大规模商用的区块链开发平台,致力于建设一个编程化的世界。EKT的多链架构可以表述为“多链多共识,一链一主币”。

为了解决拜占庭将军问题,达成去信任的分布式网络中的一致性,区块链技术的几种共识机制陆续被提出,根据选择生成区块节点的方式、节点确认区块的方式等,不同的共识机制在去中心化程度、高效低能耗性、安全性上做出了取舍,对于不同功能的区块链各有其注重的要点,共识机制的选择往往成为决定一个区块链成败的一大因素。当前主流的共识机制主要有PoW、PoS、DPoS、Paxos等,这几种各自又演化改进产生了不同版本。

PoW

PoW(Proof of Work,工作量证明)是区块链上所有节点通过哈希运算,解出满足给定位数前导为0的哈希值,来争取记账权的共识机制,比特币、以太坊的前三个阶段都采用此机制。PoW中所有节点都有争取记账权的权力,根据计算能力随机出块,因此理论上是最为去中心化、可靠性强、可监管性弱的,缺陷在于资源消耗大,性能效率比较低,达成共识的时间也较长,且容易产生分叉。

然而,由于拥有了整个网络百分之n的算力时,就相当于拥有了百分之n的概率能够获得记账权,在矿机纷纷出世后,普通用户的算力和矿场的算力产生了巨大的差距,少数几个矿场反而成为了垄断记账权的霸主,使得去中心化的理想无法真正实现。

Pos

PoS(Proof of Stake,权益证明)则是根据拥有权益随机出块的机制,节点拥有越多的权益,就有越高的概率可以获得记账权,未来币和转型后的以太坊使用的便是这种共识机制。PoS的优势在于达成共识不需要消耗大量资源,并且共识时间在一定程度上缩短,但仍然需要进行挖矿,去中心化降低,也容易产生分叉。

DPos

DPoS(Delegated Proof of Stake,股份授权证明)是PoS机制的改良版本,使用见证人机制,经由权益所有者投票选举出一定数量的记账节点,这些有记账权的节点再轮流记账,将记账人的角色专业化以提高效率,使用此共识机制的项目以EOS为代表。DPoS机制通过信任少量的诚信节点,适度地降低去中心化程度,来去除区块签名过程中冗余的步骤和等待时间,因而出块时间大幅下降,并将保证网络安全需要的消耗和运行成本最小化,几乎不会产生分叉。然而,由于投票的积极性问题,可能存在绝大多数持股人都未参与投票地问题,投票制度也并非完全公平。

Paxos

另外还有Paxos机制,关于这个机制,以下是周迅在火星财经三点钟群内讨论的一些意见分享,希望能帮助各位丰富区块链方面的知识储备:

周迅: 大家对DPOS都比较熟悉,我着重跟大家介绍一下Paxos。在Paxos中,有三种角色:Acceptor,Proposer和Learner。在一个分布式系统中,如果要使用Paxos算法,那么节点的数量一定是确定的。在我们的共识机制设计中,委托人节点是Acceptor(相当于法官的角色),所有的全节点都是Learner(当一个提案被通过之后,所有存储数据的全节点都要执行),Proposer是用户。每个用户都会拥有自己的提案编号,每次提交提案的时候会带着自己的提案编号发起提案。在这种情况下,不同用户的提案是可以并行执行的,而不是竞争同一个区块里面能不能存储自己的提案。在这种情况下,用户数量越多,锁的粒度越小,所以用户数量越多,TPS越高。

那么我下面继续说一下这种做法的好处是什么。在一个用户发起提案之后,可以在1秒内得到所有节点的确认和执行,也就是说,如果你做一个微博DAPP,你可以不用等十几秒,1秒中就可以了。

不少人都认为DAPP的共识不需要在链上完成,那我说一下我的看法。假如说你在某电商平台买了一个商品,但是因为某些原因电商平台对你的订单进行了修改,导致你的订单信息和你之前记忆的不太一样了(比如发票,比如发错货之类的),这种就是中心化的电商。

群成员:这里的DAPP是不是侧链?

周迅:DAPP是一条有自己的共识机制(DPOS+Paxos)的链,不属于某一条链的侧链。

下面我接着介绍我们的共识机制,其实有个特别关键的问题:时间戳。假如说DAPP里面需要在节点上记录时间戳怎么办呢?如果对于不同事件,需要排序怎么办(比如抢微信红包)?

这就又回到了上面的Paxos上。在BTA大会上,我分享了我对DAPP的看法:1,开源;2,所有人对数据库的修改都会被记录。既然使用了区块链,那么所有人对数据库的修改自然会被记录。

想要时间戳怎么办?不同节点的时间戳肯定不一样。答:所有节点对提案进行投票的时候达成共识。

想要随机数怎么办?共识的时候获取。

所以时间戳和随机数这种智能合约中的需求都是可以异步1秒内确认和执行的。

那么回到抢红包的问题上,如果我要做一个抢红包的功能,我要怎么设计我的共识机制呢?

有两种方法:

1,异步的抢红包结果。当一个人向区块链发起抢一个红包的请求时,通过记录全局时间戳,当抢红包的人数大于红包数量的时候进行计算,实现全局一致性。

2,也是DPOS+Paxos的核心了。当我必须要按照一定顺序执行的情况下怎么办?答案就是区块打包后执行。在DAPP链中,区块头记录的不再是交易的默克尔证明,而是已执行事件的默克尔证明+需要排序事件排序后的有顺序的默克尔证明(或者Hash证明)。当一个区块打包完成之后,前面的自然就被确认了。

以上几种共识机制各有其侧重点,在去中心化程度、高效低能耗性、安全性做出了权衡,数字货币经济体系和作为Dapp开发所适合的共识方式、需要考量的性能、安全性、去中心化程度各有不同,因此,未来若能结合几种共识机制,以多链的方式区分开经济体系和应用开发采用的共识机制,更可能达成全方面的优化。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档