聊聊区块链TPS那点事

作者: 沛文沛语 | 来源:发表于2018-10-28 21:35 被阅读16次

区块链领域,性能问题一直是一个痛点,比特币,以太坊的拥堵,很多创业者跃跃欲试的去解决这个问题。于是乎有了多个声称百万TPS的区块链的牛飞到了天上。

先来看几条数据

据公开的数据,VISA 系统的处理均值为 2,000 tps,峰值为 56,000 tps;某金融支付系统的处理峰值超过了 85,000 tps;某大型证券交易所号称的处理均(峰)值在 80,000 tps 左右。

2017 年,MIT 计算机科学与人工智能实验室(CSAIL)的 Yossi Gilad 和 Silvio Micali 等人在论文《Algorand: Scaling Byzantine Agreements for Cryptocurrencies》中针对 PBFT 算法在很多节点情况下性能不佳的问题,提出先选出少量记账节点,然后再利用可验证随机函数(Verifiable Random Function,VRF)来随机选取领导节点,避免全网直接做共识,将拜占庭算法扩展到了支持较大规模的应用场景,同时保持较好的性能(1000+ tps)。

此外,康奈尔大学的 Rafael Pass 和 Elaine Shi 在论文《The Sleepy Model of Consensus》中还探讨了在动态场景(大量节点离线情况)下如何保障共识的安全性,所提出的 Sleepy Consensus 算法可以在活跃诚实节点达到一半以上时确保完成拜占庭共识。

2018 年,清华大学的 Chenxing Li 等在论文《Scaling Nakamoto Consensus to Thousands of Transactions per Second》中提出了 Conflux 共识协议。该协议在 GHOST 算法基础上改善了安全性,面向公有区块链场景下,理论上能达到 6000+ tps。

自己声称那都是不可信的,吹牛的成本太低了。眼见为实,一个可靠的方法就是通过区块链浏览器查看一下区块的交易数量,然后除以区块的生成时间,就可以测算出大致的TPS。

当然也有一些人玩鬼计,首先搞一个缓存区,也就是中心化的高性能服务器进行处理,处理完之后再往区块链上进行记录。

本质上区块链是一个异步的系统,这就要理解一下这个异步的系统和过去大家熟悉的同步系统的理论区别到底在哪里,以及为什么性能会是区块链的一个瓶颈。

要正确理解 FLP 不可能原理,首先要弄清楚“异步”的含义。

在分布式系统中,同步和异步这两个术语存在特殊的含义。

同步,是指系统中的各个节点的时钟误差存在上限;并且消息传递必须在一定时间内完成,否则认为失败;同时各个节点完成处理消息的时间是一定的。因此同步系统中可以很容易地判断消息是否丢失。

异步,则意味着系统中各个节点可能存在较大的时钟差异;同时消息传输时间是任意长的;各节点对消息进行处理的时间也可能是任意长的。这就造成无法判断某个消息迟迟没有被响应是哪里出了问题(节点故障还是传输故障?)。不幸地是,现实生活中的系统往往都是异步系统。

FLP 不可能性在论文中以图论的形式进行了严格证明。要理解其基本原理并不复杂,一个不严谨的例子如下。

三个人在不同房间,进行投票(投票结果是 0 或者 1)。彼此可以通过电话进行沟通,但经常有人会时不时睡着。比如某个时候,A 投票 0,B 投票 1,C 收到了两人的投票,然后 C 睡着了。此时,A 和 B 将永远无法在有限时间内获知最终的结果,究竟是 C 没有应答还是应答的时间过长。如果可以重新投票,则类似情形可以在每次取得结果前发生,这将导致共识过程永远无法完成。

FLP 原理实际上说明对于允许节点失效情况下,纯粹异步系统无法确保共识在有限时间内完成。即便对于非拜占庭错误的前提下,包括 Paxos、Raft 等算法也都存在无法达成共识的极端情况,只是在工程实践中这种情况出现的概率很小。

那么,这是否意味着研究共识算法压根没有意义?

不必如此悲观。学术研究,往往考虑地是数学和物理意义上理想化的情形,很多时候现实世界要稳定得多(感谢这个世界如此鲁棒!)。例如,上面例子中描述的最坏情形,每次都发生的概率其实并没有那么大。工程实现上某次共识失败,再尝试几次,很大可能就成功了。

科学告诉你什么是不可能的;工程则告诉你,付出一些代价,可以把它变成可行。

这就是科学和工程不同的魅力。FLP 不可能原理告诉大家不必浪费时间去追求完美的共识方案,而要根据实际情况设计可行的工程方案。

那么,退一步讲,在付出一些代价的情况下,共识能做到多好?

回答这一问题的是另一个很出名的原理:CAP 原理。

注:科学告诉你去赌场是愚蠢的,因为最终总会输钱;工程则告诉你,如果你愿意接受最终输钱的风险,中间说不定能偶尔小赢几笔呢!

相关文章

  • 聊聊区块链TPS那点事

    区块链领域,性能问题一直是一个痛点,比特币,以太坊的拥堵,很多创业者跃跃欲试的去解决这个问题。于是乎有了多个声称百...

  • Trias的新进展—TPS性能提升一倍

    区块链的性能一直是阻碍其前进发展的一堵墙。衡量区块链性能的指标是TPS,TPS是每秒并发的消息数。比特币的TPS是...

  • Ulord侧链UOS进行时,再谈侧链对Ulord的价值

    百万TPS——区块链行业的一座“里程碑”,谁拥有了这项技术,谁就拥有了打开区块链3.0之门的钥匙。 01 TPS之...

  • Ulord公链百万TPS:再谈侧链对Ulord的价值

    百万TPS——区块链行业的一座“里程碑”,谁拥有了这项技术,谁就拥有了打开区块链3.0之门的钥匙。 01 TPS之...

  • 公链争相竞争高TPS,意义何在?

    TPS曾被誉为区块链的克星,一直制约着区块链应用落地的现实可能,这里Never为你详细讲解TPS到底是何方神圣,为...

  • 区块链到底能做什么

    区块链要解决什么问题? 比特币为什么暴涨暴跌? 区块链是否TPS越高越好? 我们能做些什么? 有很多解释区块链的文...

  • 【汇编】区块链的TPS性能...

    一,联盟链 二,公有链 2018-04-24 知乎 | 链圈码农 老污 | 现有区块链的TPS 最近在做一个区块...

  • 区块链的TPS

    众所周知,比特币每秒只能进行大约7笔交易,以太坊稍微好一些,也就10-20笔。作为一个支付系统,这是远远远远不够的...

  • 公链之争

    目前很公链都在努力解决区块链行业的高性能,都声称高TPS,每秒能处理几千,几万的交易,代价就是牺牲区块链的去中化和...

  • 【区块链技术工坊30期实录】公链如何做到TPS过万?

    1,活动基本信息 1)题目: 【区块链技术工坊30期】公链如何做到TPS过万? 2)议题: EveriToken ...

网友评论

    本文标题:聊聊区块链TPS那点事

    本文链接:https://www.haomeiwen.com/subject/exfmtqtx.html