骗人的百万TPS

币域区块链

从入门到精通,看我就够了!

四月的时候,迅雷宣布,基于PBFT共识算法的“迅雷链”上线。迅雷链拥有百万级并发处理能力,交易速度可达到百万tps,而以太坊的交易速度不到20tps。未来迅雷链将支持金融、电商、社交、内容分发等多种业务场景 。

究竟何为TPS?

TPS的定义

TPS,通俗的定义,就是“系统的吞吐量”,专业一点的解释,就是“系统每秒钟能够处理的业务数量”。估计大部分人的理解,也就到此为止了。然而,这是非常表面的理解,对防忽悠,对求证价值几乎没有意义,甚至还有负面效果!

知道了TPS的定义怎么还会有负面效果,因为“一瓶子不满,半瓶子咣当!”,不求甚解,不如虔诚的无知!当我们知道了表面的TPS定义后,直觉上会觉得TPS肯定是越大越好喽,这很符合逻辑,然而,事实并非如此!

首先,我必须说,在计算机领域里,TPS其实并不是一个原生概念,何为原生概念?就是底层客观存在的数据指标,比如磁盘转速、网速、CPU赫兹数、进程和线程数等。而TPS其实是个人造概念,是几种底层数据的综合计算结果,是为了在宏观上衡量某些特定系统而制造出来的概念

在比特币这个业务中,TPS的定义可以更加具体的解释为:“比特币网络每秒钟能够处理的交易数!”,然而在这个定义中,真正的原生概念只有“交易数”,而TPS,则是我们人为用一段时间的交易总数除以这段时间的总秒数,而得到的一个指标,代表了平均每秒能处理的交易数,注意是平均,不是真的每秒都在处理交易!

现在很多山寨币经常用TPS忽悠你:

俺们家的区块链未来每秒能达到百万TPS,效率远远超过比特币。

这到底是什么玩意?

TPS,通俗点解释,就是“系统每秒钟能够处理的业务数量”,如果是新韭菜,能理解到这里就行了。可是作为一个裤衩都被割走的老韭菜,只了解这个远远不够。

TPS=交易总数/总秒数。代表了一段时间里面平均每秒能处理的交易数。

注意:

1、是一段时间内。

2、是平均,不是真的每秒都在处理交易!

既然“一段时间”是人为截取的,在比特币网络里,我们截取多少呢?一般来说,取最小模块儿,就是一个区块的打包间隔,现在为10分钟左右。

好了,如果我们取10分钟为一个标准时间段,然后每个打包块儿里包含4000条交易数据,那么TPS是多少呢?4000 / (10*60) = 6.67,没错这个大概就是比特币网络的TPS,平均每秒6条交易左右,而且每10分钟才处理一次!

以太坊稍微好一些,也就10-20笔。

好了,现在我们变身成一个居心叵测的项目方:

仅仅截取第十个包含了出块时间点的1分钟看,TPS高达66.67(4000 / 60)。

如果人性善,就是一个合理的参数,如果人性恶,这个参数可能就是用来骗人的!

基于以上科普,我们知道了,TPS是人为定义的,是不是合理,完全取决于你如何设置参数。

比特币的网络相对简单,参数也少。一些区块链网络参数就比较复杂了,这时候任何一个参数都可能影响整个系统的TPS,你说系统TPS提升了,我根本不知道你优化的哪里。需要了解每个子系统的TPS,然后知道哪个子系统是这个水桶的短板,否则只有一个子系统的TPS提升了,对于整个系统也是没有意义的。

当我们再看到有项目宣称自己百万TPS的时候,我们应该看下项目方的参数是什么?计算TPS的公式是什么?出块间隔是多少?

而且,区块链网络是一个典型的P2P广域网拓扑结构,广域网分布式随机通讯是绝对不可能超过局域网服务器定点通讯效率的,要想满足我们现有各种应用的丝滑体验,我们需要的不是百万TPS,我们需要的是区块链重构。

好了,了解了以上几点,是不是感觉自己也可以去区块链大会演讲啦?

——End——

(本文仅代表文章作者观点,请阅读者理性对待。)

版权声明

本文为【币域区块链】原创稿件,未经授权不得转载,否则将追究法律责任。在获得授权转载后,须在文章标题后注明“文章来源:币域区块链(ID:icopaoshou)”。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180705G1HJKR00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券