EOS生态社区

EOS高性能背后的秘密:BFT-DPoS

2018-05-11  本文已影响48人  EOS原力

EOS原力

专注于EOS生态的区块链社区

本文为公众号《EOS原力》原创首发,转发请联系授权。

EOS的性能一直是一个备受争议和质疑的问题。曾经就有老铁问队长:

一个没有中心服务器,每笔交易都需要多个来自不同地方的节点做确认才算完成的玩意,真的能实现百万TPS吗?

队长对这种质疑并不感到意外,毕竟2017年双十一狂欢节期间的交易峰值也才25.6万笔每秒,这还是基于中心化服务器实现的。

不过老铁们可能不知道,EOS的“总设计师”BM为了提升EOS的性能,也几乎是竭尽了全力,把所有可以优化的地方优化了一遍,比如把共识机制从DPoS升级为BFT-DPoS机制。

BFT-DPoS机制是啥?为什么这个机制可以提升EOS的性能?原力队长今天就来给大家介绍介绍。

我们先来看看DPoS机制。

DPoS机制

共识机制

区块链中的共识机制是为了解决“账本由谁来记账”这个问题而诞生的。在传统的交易系统,比如支付宝中,都存在一个中心主体来把该系统中的每一笔交易记录下来。

可是在区块链里没有中心,那么由谁来负责把大家的交易信息记录到链上?要解决这个问题就需要制定一个选择记账人的规则,这个规则我们就叫做共识机制。

第一条公链比特币用的是“工作量证明机制”。

这个机制是这样的,给你一个随机数,谁先把它算出来,谁就能拿到记账权。也就是说,谁的算力越大,谁越可能成为记账人。这样的结果就是,记账竞选人都陷入了一场“算力竞赛”中,不断堆积算力,直到最后大部分算力被少数几个人承包了。

记账机制

大家一看,觉得这不对啊,反正最后不是A、B、C记账就是D、E、F记账,干嘛还要途费工夫算随机数呢?我们不想等啊!干脆直接指定几个人给我们记账好了,有那时间算随机数不如给我们多出几个块。

相信老铁们看到这里就明白为什么DPoS的速度比POW快了,因为不用“算数字”

不过,这又出现了另一个问题,由谁来指定记账人呢?区块链里没有中心,没有人做决策。那就大家一起投票决定吧,谁的选票越多,就由谁来做记账人。这个记账人放到EOS中就是我们常说的超级节点,选择记账人的过程也就是我们常说的超级节点竞选

说到这里,老铁们对DPoS已经有个大概的认识了。不过还有个问题,怎么确保记账人记录的信息是正确的呢?谁来做这个确认呢?

由别的记账人来确定。

在原来EOS的DPoS机制中,选出来的记账人(超级节点)会以一种随机的顺序逐个记账出块,出块速度是3秒一个。记账人在记账出块的同时,还对之前的记账人生产的区块做一个检查和确认,以确保之前的记账人没有乱来。

当一个区块得到了14个确认(2/3的记账人),这个区块中包含的交易才算达到不可逆状态,也就是交易的最终完成状态。这个过程花费的时间是45秒。

比起比特币10分钟出一个块,要6个确定才算达到不可逆状态,和以太坊15秒出一个块,36个确定才达到不可逆状态,EOS的速度算很快了吧?

然而BM并不满足。

BFT协议

一方面BM团队认为,只有当轮到自己记账的时候才能对之前的区块做确认这种设计拖延了速度,为什么不能让记账人在记账出块的同时,就让别的记账人对自己生产的区块都做确认呢?

于是,BM团队给DPoS机制引入了BFT协议,也就是记账人在生产区块的同时马上对该区块签名确认,并让别的记账人也赶紧过来签名确认。这样一个区块从产生到成为不可逆区块的时间,就从45秒缩短到了3秒,也就是等待一个区块产生的时间。

另一方面BM团队觉得,3秒出一个块还是太慢了,于是把出块速度由3秒缩短到0.5秒,同时每个记账人(超级节点)连续生产12个区块再切换下一个记账人出块。从而保证了记账人在出块时不会受到网络状况的影响,能够连续以0.5秒的速度出块。

同时为了解决记账人之间的网络延迟问题,比如上一个记账人的区块我还没收到就轮到我出块了(这就会把上一个区块给忽略了,导致分叉发生),BM团队放弃了原来按随机顺序出块的设计,改用记账人相互协商后确定的顺序。这样就能保证网络延迟较低的记账人之间能以相邻的顺序出块。

这么一来,这么一来,一个区块从产生到成为不可逆区块,最多就只需要区块产生的时间(0.5秒)加上别的记账人签名确认的时间(BM团队通过测试发现这个过程可以在1秒内完成),也就是1.5秒

介绍到这里,老铁们对BFT-DPoS机制已经有个大概的印象,也知道EOS的高性能是怎么来的了。当然,BFT-DPoS机制也只是支撑EOS高性能的其中一个支点,其他的拓展侧链、链间通信技术也能推高EOS的性能。但最终EOS是否能实现百万TPS的目标,依然有待实践的检验。

距离六月主网上线只能将近二十天的时间了,一切都拭目以待吧。

END

原力竞猜活动第二期开奖

EOS/ETH价格竞猜,胜者平分10个EOS奖励 !

【竞猜价格锚定时间】

2018.5.10  20:00:00,火币平台数据为0.0237

【第二期竞猜参与情况】

第一期共参与投票123人,其中有9个小伙伴选择EOS/ETH为1,这可真是绝对是用手指投票看好EOS爆发力呀!或许拉长一点时间,指不定就猜中了呢!

最终的结果是0.0237,猜中人数为13人。可惜其中有两位小伙伴只有竞猜却没有转发朋友圈截图,不符合竞猜规则,判定无效。所以,最终中奖人数为11人!请中奖的幸运老铁赶紧联系原力队长提交钱包地址,一起瓜分10个EOS!(撒花~~)

中奖名单

942075395

15996969107

maibaoyundian8888

eosblockone

15800903288

17726031369

fan18665069739

borongtan

fan18665069739

13797563630

p13532211573

欢迎加入EOS原力社区

入群方式:

添加原力队长微信

公众号后台菜单栏

电报群

https://t.me/eosforce01

关注公众号

后台回复“教程”,参与EOS超级节点链上投票

后台回复“测试结果”,获取EOSeoul测试报告

后台回复“超级节点”,获取最全竞选节点信息

后台回复“视频”,获取EOS相关视频

后台回复“白皮书”,获取EOS白皮书全集

后台回复“华为”,获取华为白皮书

后台回复“映射”,获取EOS映射分析报告

推荐阅读

重磅发布|全球首次EOS超级节点链上投票预演开始!

关于EOS投票,你不得不了解的知识!

强烈建议收藏!看懂EOS的十大高热度问题 | 原力专答

强烈建议收藏!EOS十大常见问题 | 原力专答

暴涨了那么多,EOS还能买还是该卖了?

EOS!EOS!EOS!回应一切!

重磅整理|全球最新超级节点竞选信息大全(建议收藏)

EOS不映射将归零?别慌,原力手把手教你做EOS映射!

深度好文|EOS和它引领的POS新时代

EOS原力

简介

EOS原力是专注于EOS社区、第三方开发者、节点、投资生态、测评以及Meetup等生态的区块链社区。EOS原力,与你一起见证EOS的未来!

上一篇 下一篇

猜你喜欢

热点阅读