之前看得关于DPOS的介绍不对,修改一下答案,并不影响结论。
————————————————————————————
谢邀。
先说结论:当然可能,因为EOS采用了两个可以拥有无限可能(随便吹)的技术:DPOS和分片。
更细的我以后专栏里写(最近忙拖了好多篇了),这里简单说一下。
首先,有几个数字你们先感受一下:
1,比特币的交易输出是7笔每秒,理论上类比特币POW可以支持的交易速度的量级是10笔每秒。
2,PBFT的交易输出是1000笔每秒量级的,但是不可扩展,没人试过超过64个节点会怎么样,基本可以认为不可用。
3,改进的BFT算法Zyzzyva的输出是10k笔每秒量级的,与PBFT相比,它对恶意节点数量更敏感,恶意节点多的时候延迟会比PBFT高。这个算法是可扩展的但是不是无限扩展的,也就是节点数量增加,输出不变,但是延迟会爆炸。
这三者什么关系呢?
比特币系统通信复杂度O(N),可以支持上万个节点,但是输出不能超过10笔每秒量级,否则不安全。(不过这个已经和现实中的比特币有相当的差距了,因为现实中的比特币没有那么多挖矿节点,相当中心化,所以其实可以支持更高的输出,这里略过不提)
PBFT的通信复杂度O(N^2),所以不可扩展,这可以认为是严格的拜占庭容错的输出上限。
Zyzzyva的通信复杂度O(N),可以扩展,这基本上是把任何一条消息广播给整个网络的极限速度。
但是,三者的安全模型是什么样的呢?比特币的安全假设是恶意节点的算力少于全网一半,PBFT和Zyzzyva是恶意节点数量少于1/3,而实际上,在恶意节点增加的情况下,Zyzzyva的延迟会很高。
于是我们有了DPOS,DPOS的安全模型是什么样的呢?
模型是——作恶就不会再次被选成代表。拜占庭容错?不存在的。
在这种共识模型下,其实共识特别简单——随便选个人发布区块就好了,反正有问题就不投他票。通信复杂度O(N)。然后由于中心化,根本不用考虑传输延迟问题。
——————————————————————————————————
比特币把拜占庭容错的通信复杂度降到O(N)的方式是——给予作弊者惩罚。
于是,从博弈论的角度,恶意节点作弊的成本和可能受益被简化了——唯一可能受益的方式是双重支付,成本是超过50%算力。
整个公有链共识算法的研究,其实都是在找一个方法如何保证区块发布人不会作弊,或者说,保证作弊的成本高于可能的收益。
为什么这么说呢?因为只要找到这样的区块发布人,拜占庭容错的问题,就可以直接被简化成广播区块的问题。
不可扩展直接变成可扩展。
然后,就在所有人都在用各种方法来寻找,论证一种所有可能攻击的成本都高于收益的算法的时候,DPOS出现了。
它告诉我们——用选票就好了。
如果作弊了怎么办?下次不选它就好了。
作弊的成本是什么?以后不被选。
那选多少人合适呢?大家投票就好。
奖励给多少合适呢?大家投票就好。
如果你假设DPOS所有人都投给自己的话,DPOS实际上就是POS,而POS是会受到无利益攻击的。如果大家都投给一个人,那么这就是中心化系统。
然后DPOS说由于大家有了选票,所以一切问题都迎刃而解……
这东西听着很印度啊!
当然,我不是说DPOS就一定不好,我只是说,DPOS并没有解决问题,它只不过把问题给换了个形式。POW怕矿霸,POS怕无利益攻击,DPOS怕什么,可以当课后练习题——攻击DPOS系统,需要什么条件?
而且,如果说有了选票选举出来的中心就是可以被信任的中心的话,那么你为什么不信任政府来着?又或者说,如果符合更多人的利益的中心就是可以被信任的中心的话,那么被市场选出来的中心化的企业也符合这个条件啊。
为什么认为在区块链系统里的投票系统会优于现实中呢?是因为在虚拟世界你会比现实中的更理性?还是在虚拟世界被选举人信息更透明更可信?
——————————————————————————————
以上问题先放在一边,假设采用了DPOS之后,选出来的节点不会作弊。
在这个前提下——好像就找几个节点负责广播所有交易也没问题嘛,反正它们不会作弊。
然后,既然它们不会作弊,何必要广播所有交易呢?大家信他们就好了。谁关心其他人的交易记录啊!这么多人有比特币,有人用完全节点吗?
然后,既然不用广播所有交易,干嘛要让每个节点都记录所有交易呢?每个节点记录一部分不就好了?
是不是听起来很有道理?因为分布式数据库就是这么做的。
那么,区块链不是分布式数据库吗?
不是,至少,不是传统分布式数据库,因为传统分布式数据库不考虑拜占庭容错,不考虑恶意节点。
——————————————————————————————
分片是个好技术——当一定条件满足的时候,的确可以分片。学术界的算法Elastico和Omniledger都用了分片,但是,它们也都明确地写了,在恶意节点数量少到一定程度的时候,是可以分片的。
POW,POS,或者DPOS可以分片吗?可以的,如果恶意节点所占的比例(算力/权益/选票)很少的话,因为分片就导致安全性降低。
但是你不能说——因为我有了选票,所以被选上的人就不会作弊,所以我们就可以把它当成一个分布式数据库分片了,不带这么玩的。
EOS 声称的每秒百万级的交易速度靠谱么?
是否靠谱这个需要达到这个交易量级才能验证,目前没有看到任何严谨的通过数学和逻辑的方式证明它可以达到这个数字(希望有人可以打我脸,我也学习一个)。
说点离题的,在目前这个交易量级来说,声称这个速度除了宣传之外并没有什么卵用,因为交易数量远远达不到这个层面(支付宝 2017 年双十一每秒交易峰值才 25.6 万笔),这不应该是一个高优先级的工作,应该把重心先放在其它地方。
我的核心问题是:每秒百万级交易速度是如何实现全区块同步的?
不确定你所说的「全区块同步」是什么意思,我姑且理解为所有节点都同步上吧?
实际上 EOS 采用的是通过投票选举出 21 个超级节点来进行同步,只需要将 21 个节点同步完就可以。
它是多中心化而非去中心化的,安全?信任?
此问题下低质回答占主要,这反映了 EOS 目前名气非常大,根据金字塔分布,太多对风险投资、区块链原理都不了解的人都知道了它,以至于作出太多不理性不客观的回答。建议大家理性讨论问题,不要靠臆想和刻板印象,多了解原理、技术、风险资本和社会学。
利益相关:Cardano 坚定信仰者。
https://www.zhihu.com/question/265927960