撰写这个系列,是希望在一定程度上,能够帮助朋友了解真相,少走弯路。当然我的观点不一定对,希望能够抛砖引玉。
时至今日,仍然看到一些项目,无论公链或者联盟链都还有将高TPS做为宣传手段的,甚至号称能达到数十万数百万TPS。这种情况,我觉得,一是心存怀疑;二是你用力的方向是错误的。
备注:
1、我这里针对的是单链的情况。多链TPS过万是有可能的,但至今仍然出于早期,还没有大量落地应用的案例出现。
2、多链或跨链领域,比较前瞻性多研究,可以关注王嘉平在国际计算机网络系统顶级会议NSDI 2019上提出的扩容方案Monoxide。
虽然,从科技进步的角度,一定需要有人在区块链性能上耗时耗力,做出历史性突破。但我认为,这是少数科学家的事情,不是初创公司,也不是做区块链落地应用的用户(哪怕是大公司、大单位)该努力的方向。等到物理环境(如网络)有了更大的改善,科学家有了理论的突破,再进行工程化也不迟。而且工程化本身就需要耗费很长的时间和成本。
为什么说用力的方向错了?
因为区块链的出现,主要解决的是信任的问题,而不是效率的问题。如果要解决效率,交给中心化的信用机构和信息系统就可以了。又需要解决信任和效率,我觉得在当下的环境、技术水平下,很难鱼和熊掌兼得。
从区块链适用的场景,也即多中心弱信任等特点的场景来看,可以牺牲效率。例如可惜度很高的SWIFT,人们对于它的低效是可以忍受的,但对于它的可信度要求极高。如果新的方案能比它高效一些(不用太多),都有可能满足一些市场需求。
这里我先提一个概念,就是区块链的“不可能三角” RPC。注意区块链是集IT、金融等多种属性为一身的组合创新,成本是需要考虑进去的重要因素之一。
RPC 的大致解释
Reliability(可信度) :系统被信任的程度,包括可靠性和安全性。去中心化的程度是一个衡量维度,但不是唯一的维度。迈向区块链理想状态之前,一定会有长期的过渡状态,应该且必须允许传统的中心化信用机构结合进来,不过仍需一定程度上的,多中心化的部署形态。
Performance (性能):满足用户需求的性能,例如TPS(Transactions Per Second,每秒交易数)。
Cost (成本):构建系统的成本,包含软硬件,以及其他隐性成本(例如易用性带来的用户使用习惯变更的学习和教育成本)。
无论公链还是联盟链或是私有链,很难三者都同时满足。例如,当你希望去中心化程度更高(以此来提高可信度)的时候,譬如公链,你就无法以较低的成本,达到较高的性能。
关于性能,之前写过三篇TPS的系列文章,我觉得到现在仍有借鉴意义。简而言之,但凡宣称单链过万TPS的,你都需要保持警惕。原因有两个:当下很难很难;而且可能还不需要。里面我结合了我亲自参与过的两个中心化的POC项目(和区块链无关)的数据,进行了相对严谨的说明,相信会对你有所启发。
忽然发现其中的一篇,刚好是2019年的1月1日发表的,算起来也是跨年的元旦献礼了 :)
乐生活与爱IT
2022-04-12 16:21:03