“真理”不可能三角。区块链中流传着一个令许多人津津乐道的“真理”:不可能三角。很多项目方打着“打破不可能三角”、“突破不可能三角”的旗号也不绝于耳。人们始终认为,不可能三角问题就是区块链当前面临最大的问题,“打破它”是意件极具意义的事情。但是这很矛盾。科学意义上的“不可能”就是指无论如何也不可能,那它怎么可能“被打破”、“被突破”呢?
这不是一篇要盖棺定论的文章,它的出发点是为了探讨,探讨区块链领域一个几乎人人都知晓的概念:不可能三角。
我们要探讨它是一个真概念,还是一个伪概念。因为只有当我们分辨出真伪,不再聚焦、不再利用、不再浪费开发能力在伪上,才有可能去探索区块链中真正需要被关注、被解决的问题。
本文分为三个部分,分别是:不可能三角的演变史;对不可能三角的质疑;分布式系统CAP定理是真正的不可能三角。
“以讹传讹”的不可能三角演变史
区块链不可能三角是指一个区块链系统不可能同时满足三个角,它必须以部分的牺牲某个角为代价,换取另外角的指标的提升。
1.长铗版本
在中国,最早提出不可能三角理论的是长铗。他在2014年发表了一篇名为《不可能三角形:安全,环保,去中心化》的文章,并引起了广泛的讨论。
不过,这篇文章讨论的是加密货币的不可能三角,结论是“环保型密码学货币”是不存在的。这与我们如今谈论的不可能三角的适用领域完全不同。长铗是这么描述不可能三角的:
交易所持有的BTC余额已跌至2018年3月14日以来的新低:金色财经报道,根据加密货币分析公司Glassnode的数据,交易所地址上持有的BTC余额持续流失,已跌至226万BTC,这是自2018年3月14日(1939 天前)以来持有的最低余额。[2023/7/6 22:20:44]
在此,我提出一个三元悖论:去中心化、安全、环保构成一个不可能三角形。
设计一个既环保又安全的密码学货币,它必然是中心化的,比如PPcoin、Nextcoin、Ripple,它们要么本身就是中心化的架构,要么其去中心化的架构不可维持,它们本质上仍是和PayPal、网银一样的中心化验证机制。
设计一个既环保又去中心化的密码学货币,它必然是不安全的,比如IP投票制的P2P货币,中本聪起初就已排除了这种可能,他认为“如果决定大多数的方式是基于IP地址的,一IP地址一票,那么如果有人拥有分配大量IP地址的权力,比如僵尸网络,就有可能主宰比特币网络”。
设计一个安全的去中心化货币,它必然是以付出能源与计算力为代价。工作量证明是以去中心化形式构建安全产权认证系统的第一个解决方案,也可能是唯一解决方案。
长铗提出的“去中心化”和“安全”在用词上与现今的流行版本一模一样,但它们所代表的意义却截然不同,长铗版本中指的是货币的机制和货币的安全。
2.VitalikButerin版本
CertiK:SCT部署者出售了最初铸币和早期购买的代币导致代币价格下滑90%:金色财经报道,据CertiK监测,SCT代币价格下滑了90%,部署者出售了最初铸币和早期购买的代币,共计约28万6千美元。[2023/6/7 21:21:49]
流行版本的不可能三角理论来自“Vitalik”,是指一个区块链系统无法同时兼顾去中心化、可扩展性、安全性,这个三角被广泛地引用进了各种演讲、报告、文章,甚至白皮书中。
但它真的是由Vitalik提出来的吗?
该不可能三角发源于GitHub以太坊目录下的一篇文章,名为《Onshardingblockchains》,文中首次提出了这个三元悖论。
这篇文章隶属于以太坊的《ShardingFAQs》系列,由一位名叫JamesRay的团队成员创建并维护。这个系列用来做什么?用来回答大家关于分片的种种问题。
也就是说,所谓的Vitalik提出的理论,其实只是以太坊团队成员在一篇回答社区问题的文章中提及,不仅与Vitalik无关,不仅不是论文,它连主题性文章都算不上。但真相还不止于此。
为清晰起见,逐条说明关于“Vitalik”版不可能三角的一些事实。
1.原文用的是“Thissoundslikethere’ssomekindofscalabilitytrilemmaatplay”,再结合上下文,会发现不可能三角这一理论的提出是没有经过任何逻辑的、系统的论证,作者只是列举了一些问题后就提出了这个观点。而且作者在文中用的就是不确定的表达,却在后来被人们当作了无疑的真理。
Binance将支持Bitcoin Cash(BCH)网络升级:5月9日消息,Binance将支持Bitcoin Cash(BCH)的网络升级,预计将于05月15日19:30暂停BCH的充值、提现业务,以支持Bitcoin Cash(BCH)将于5月15日20:00进行的网络升级。网络升级期间,BCH交易不受影响。[2023/5/9 14:51:51]
2.原文的上下文都在讨论“scalability”,甚至作者也称其为“scalabilitytrilemma”,也就是说,这个三角本是针对“区块链可扩展性”的,但却被扩大到“区块链”,从ScalabilityTrilemma演变成了BlockchainTrilemma。
3.对于三个角:Decentralization、Scalability、Security,作者给出了明确的定义,比如安全是“beingsecureagainstattackerswithuptoO(n)resources”。也就是说,作者的三角是限定状态下,并基于这种限定状态进行讨论,但却被扩大到无限定条件的区块链。
不过,“Vitalik”不可能三角最大的问题还不是上述事实,而是提出这个观点的环境。它出现在用来介绍以太坊分片技术的文章中。
写过论文的人知道,为了证明自己的研究解决了问题,第一步就是提出问题;为了证明自己的研究厉害,第一步就是把问题描述的很重要、很难解决。《Onshardingblockchains》这篇文章的结构正是如此。
印尼计划推出加密货币交易所,将移交给金融服务管理局监管:金色财经报道,印度尼西亚将会在今年建立一家加密货币交易平台,目前印度尼西亚的加密资产由商品期货交易监管机构(Bappebti)监管,但在印尼金融改革框架下,加密货币监管权将会移交给印尼金融服务管理局(Financial Services Authority)。
Bappebti代理负责人Didid Noordiatmoko周三表示,“作为更广泛的金融行业改革的一部分,未来两年内的加密资产监管权力将移交至FSA,届时交易所应该成立”。[2023/1/4 9:51:58]
首先通过对现状的描述,给出“不可能三角”这个问题;接下来分析多种方法,指出别人无法解决这个问题;最后提出自己的方案,论证该方法可以如何完美地解决问题。
没错,如果耐心一些,把“Vitalik”提出不可能三角理论的文章看完,就会发现以太坊已经通过它的分片技术解决掉这个三角难题了。所谓的“不可能”,在它诞生的第一天就被论证为“可能”了。
JamesRay在文章中写下这个不可能三角,只是为了论证以太坊通过分片技术可以实现可扩展性,只是为了证明wecanbreakthroughscalabilitytrilemma。
关于这个三角,文中定义清晰、描述严谨,并无问题,只是在后来被多维度误解了。下图是以太坊在这个问题上能实现的解决程度。
Voyager Digital获准返还2.7亿美元的客户资金:8月5日消息,加密借贷服务提供商 Voyager Digital 已获得美国破产法院批准,允许其返还2.7亿美元的客户现金。路透社援引《华尔街日报》称,监督Voyager破产案的法官迈克尔·怀尔斯裁定,该公司提供了“充分的依据”来支持其关于应允许客户访问大都会商业银行托管账户的论点。(路透社)[2022/8/5 12:03:31]
立不住脚的不可能三角
不可能三角得到广泛的认可,除了与长铗或Vitalik的知名度有关,更多的是因为这个理论看上去是正确的。但它真的经得起推敲吗?
不妨重新思考三个问题:
什么叫去中心化?什么叫可扩展性?什么叫安全性?能确切的回答它们各自的含义吗?如果一个理论中的概念都无法准确定义,该理论有什么价值?
把三个角变成两个角,“不可能”的矛盾关系还存在吗?把三个角变成四个角,“不可能”的矛盾关系还存在吗?如果存在,提“不可能”三角的独特意义何在?
不可能三角对区块链项目的工程实现有什么实际的指导作用?
“可扩展性”在少数版本中被替换成了“性能”,但即使没被替换,人们在语义上也是用“可扩展性”来指“性能”。但这两个概念是不具备等价性的,扩展性只是提高性能的方法之一,性能只是扩展性实现的功能之一。下图是常见的不可能三角的版本。
EOS的21个节点常被用来证明不可能三角的正确性,人们认为它是牺牲了“去中心化”,换来了“性能”,但当我们担心EOS的“去中心化”时,担心的是什么?担心的是EOS因为中心化而不够“安全”,去中心化与安全是紧密相关的。
“去中心化”和“性能”是不可能两角的说法反而比不可能三角更为精准,仅仅两角就能说明区块链现阶段的状况。
另一个角度,牺牲去中心化和可扩展性就能保证区块链系统的安全吗?显然不是。安全很大一部分是纯技术的解决方案。那么不可能三角中的安全指的是什么?提这种局限的安全的意义又何在?
除了用于“吹牛”,不可能三角似乎对区块链项目的工程实现没有任何实际的指导作用。我们无法想象一个项目的负责人对团队成员说,“为了提高性能,我们可以对系统的安全性做一些牺牲”,也无法想象负责人会说“为了去中心化,这个系统不要求高性能”。
事实也正是如此。从来没有一个项目说自己为了提高不可能三角的某个指标,而牺牲了其他的指标,他们说的是自己“突破了不可能三角”。
如果说不可能三角是真概念,那么它最大的意义恰恰就是告诉项目方,系统必须要在这三个指标间做出取舍,而不是“突破”,可以突破的都不叫“不可能”。
分布式系统CAP定理是真正的不可能三角
追究不可能三角的真伪,一方面是因为伪概念给了伪项目生存的土壤,这很糟糕;另一方面是希望人们能把焦点集中到真正的问题上。
在区块链,有价值的不可能三角是分布式系统CAP定理。它是指分布式系统无法同时确保一致性、可用性和分区容忍性。
EricBrewer在ACMPODC会议上首次提出了CAP猜想,之后,麻省理工学院的SethGilbert和NancyLynch从理论上证明了该猜想,使之成为一个定理。
CAP定理是分布式系统领域最重要的原理之一,深刻影响着分布式计算与系统设计的发展。
CAP定理一致性、可用性和分区容忍性的具体含义如下:
一致性:如果系统对一个写操作返回成功,那么之后的读请求都必须读到这个新数据;如果返回失败,那么所有读操作都不能读到这个数据,对调用者而言数据具有强一致性。
可用性:所有读写请求在一定时间内可以得到响应,不会一直等待。
分区容忍性:系统中的网络可能发生分区故障,即节点之间的通信无法保障,但这不影响系统正常服务。
CAP定理认为分布式系统最多只能同时实现上述三个要素中的两个。在某时刻如果满足AP,即分隔的节点对外服务,但不能相互通信,这将导致状态不一致,不能满足C;如果满足CP,那么在网络分区的情况下为达成C,请求只能一直等待,这将无法满足A;如果满足CA,即在一定时间内要达到节点状态一致,则要求不能出现网络分区,这将不能满足P。
这一结论告诉设计者不要浪费时间去研究如何兼顾这三要素,因为根本不可能,在进行分布式架构设计时,必须根据具体系统的需求做出取舍。
不可能三角并不是限制,它反而是在正确的道路上开拓了设计师的思路,让他们在多样化的取舍方案下设计出了多样化的系统。
过去十几年里涌现出不计其数的分布式的新系统,正是基于数据一致性和可用性的相对关系产生的——对于分布式系统,分区容忍性必须满足,否则该系统就毫无意义,因此,其实是在一致性和可用性之间做选择。
区块链系统的设计也正是如此。
在区块链中,C(一致性)是保证各个链的各个节点读出来的数据都一样,A(可用性)是保证各个链的各个节点可以在不同步完全的情况下实现交易,而因为节点是分布的,P(分区容错性)是必须要保证的。基于这三个要素和对三个要素的取舍,有了BFT类共识、PoW类共识和其他共识算法。
小结
就像没有一个通用的分布式系统,也没有通用的共识算法。CAP定理指导着区块链共识和治理的设计,决定着其分布式系统的功能和实现。
不可能三角的迷人之处在于:科学告诉我们什么是不可能的,而工程告诉我们可以付出一些代价,把它变成可行。CAP定理具有这种带张力的美感,反观流行版本的不可能三角,似乎并不具备。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。