找回密码
 立即注册

扫一扫,登录网站

首页 百科 查看内容
  • 6364
  • 0
  • 分享到

当前区块链技术主要瓶颈

2018-8-30 23:37

来源: 火币区块链研究院

理解了区块链的三元悖论,就能理解为什么大家一直说区块链公链项目不能满足商业需求的论述了。当前区块链技术主要瓶颈就在于公链项目的可扩展性有限,而可扩展性最直接的表征一般采用TPS(Transactions Per Second)来间接描述。

TPS是一个有成熟定义的计算机术语,代表了系统每秒钟能够处理的业务数量,是衡量一个系统吞吐量的核心指标。简单地说,TPS 越高,这个系统的事务处理能力越强,越不容易造成网络拥堵,在高并发的业务领域和商业级应用场景中有很大的优势。TPS 越低,意味着系统每秒能够处理的事务数量越低,如果是在一个支付系统中,交易速度会越慢,对应的交易成本也会越高。由于TPS 是一个量化指标,所以其计算公式是确定的,即:

TPS = 系统并发数/ 平均响应时间

其中系统并发数指系统同时处理事务的最大数量,平均响应时间为系统处理一个事务平均花费的时间,所以不论是区块链结构还是传统结构,系统的TPS 都由系统的并发数和平均响应时间决定。

在区块链中,TPS可以理解成每秒钟处理的交易数。众所周知,btc平均每10分钟出一个块,每个块大小1MB,平均每笔交易的大小为600字节,那么每个块平均能够处理1600笔交易,即TPS=1600/(10*60)=2.67,即使是高峰数据统计,比特币的TPS也是个位数的,很多资料会以5~7TPS做为BTC的TPS值。

BTC每个块的平均交易数

而ETH目前仍然是POW的挖矿方式,所以处于20~30TPS区间,即不到百位TPS档位。热门的EOS一直以并行百万级宣传,主网上线后,研究员们搭载的服务器测试结果并不足1000,随着DPOS的正常运作,最新资料显示已经达到3000+,在不考虑并行的情况下,相对中心方式的EOS最终TPS应该也是在千位档,而并行实现百万级的概念在看完本报告后相信大家会有一个新的见解。理论上,在相对同等状态下,ETH POS+sharding应该和EOS的DPOS+LMAX同处于千位档。

看完区块链项目的数据,我们对比一下Visa的数据:Visa平均处理2000TPS,每日平均峰值可以达到4000TPS,理论上最高能够支持5.6万TPS;而Paypal全年处理490万笔交易,性能可达10万TPS;淘宝2017年双十一交易创峰值32.5万TPS,支付峰值25.6万TPS。


在传统集中式系统中,客户端和服务器端的角色是分离的,即用户所在的客户端负责发起请求,然后中心服务器负责接收、验证、处理等一系列工作,整个系统的数据储存和记录也都由中心服务器负责。所以在传统的集中式系统中,事务处理流程很简单,由客户端发出请求,由服务器处理后更新数据库,即可返回客户端,是一种集中式数据库系统。

传统集中式系统单个事务请求的确认流程

因此在传统的集中式系统中,不论是系统的并发量还是事务的平均处理速度都和中心服务器的性能有着直接的关系。中心服务器性能越强,内存越大,数据库访问速度越快,整个系统的TPS 就会越高。此外,传输过程中带宽的增大,客户端和服务器端物理距离的减少也可以使得系统平均响应时间减少,从而增大TPS。

而在区块链分布式系统中没有一个中心服务器来处理事务,每个节点都是一个中心,所以就必须要解决数据分布式存储的公平性和一致性问题。所谓公平性,就是确保每个节点都能拥有记账的权利,而不会出现某些节点垄断记账。所谓一致性,就是每个节点的数据账本保持同步更新,这就要求每一条数据都需要经过多个节点甚至全网节点的验证和确认。

区块链的分布式

概括地说,在区块链分布式系统中,一笔交易从发出请求到确认需要经历以下步骤:

1)由节点发出交易请求,并且广播至整个网络;

2)其他节点接收交易请求,并且验证,如果验证通过,则放入待记录交易列表(交易池);

3)各个节点争抢记账权(即抢夺新的区块),成功获得记账权的节点将待记录的交易请求记入新的区块中,然后将区块广播至整个网络;

4)网络中其他节点接收区块,并且验证,如果验证通过,则该节点确认区块的合理性,将该区块记录自己的数据库;

5)当有超过一定数量的节点都记录了该区块,表明整个区块链系统认可了,此时最初的交易请求才算被确认。

在区块链这种分布式系统中,一个事务的记账权首先需要各个节点基于共识机制进行争抢,这就需要消耗大量时间。其次,一笔事务还需要经过多个甚至全部节点的反复验证和确认才能被写入数据库,这大大减慢了事务的处理速度。如果某个节点的响应速度很慢,整个系统的处理速度都会被拉低。而在传统集中式系统中,事务永远由中心服务器处理,也不需要多个节点的反复验证和确认,所以区块链的TPS 相较于传统集中式系统的TPS 普遍要低,并且我们无法单纯用强化中心服务器性能的方式来提升整个区块链的TPS。同时,前文也提到淘宝双十一TPS是有两个数值的,一个是交易创建峰值,一个是支付峰值,在区块链中,支付峰值才是确认的过程,会显得更加重要和实际,严格的讲,区块链TPS的评估应该参考每秒确认交易数量CTPS(Confirmed Transactions Per Second)来描述一个系统的真实性能,不过鉴于公开资料并不严格区分TPS的细分定义,也不属于本报告的重点,所以本报告也只采用TPS来整体描述,仅作对比参考之用。

由此可见,即使中心化的系统由于硬件等各种问题的制约,TPS的峰值不超过10万级别,而正常日平均TPS也不超过1万级别(参考Visa),作为一个底层分布式账本的区块链项目一味追求高TPS或者是宣传极高TPS就值得大家仔细思考一下了。

考虑到日常应用的需求,区块链主流公链项目BTC、ETH以当前最高1000TPS的目标也落地困难,于是便产生了可扩展性的讨论。至于众多号称TPS破万,甚至百万的项目,在阅读完本报告后,相信大家会有个更清晰的认识和理解。
版权申明:本内容来自于互联网,属第三方汇集推荐平台。本文的版权归原作者所有,文章言论不代表链门户的观点,链门户不承担任何法律责任。如有侵权请联系QQ:3341927519进行反馈。
相关新闻
发表评论

请先 注册/登录 后参与评论

    回顶部