共识系列(1)-不可能三角
本文多数部分摘自博士专栏,因为专栏文章太多,很多概念比较难懂,很多细节需要更多补充,后续会整理共识相关文章更新。速读版看评论置顶。
去中心化、安全和高性能构成了区块链的“不可能三角”,在设计中只能符合其中两个。
- 去中心化是拥有大量参与区块生产和验证的节点,一般节点的数量越多,去中心化程度越高。
- 安全性是获得网络控制权需要花费的成本,通常在共识机制的设计中锚定现实世界的资产,例如工作量证明机制(PoW)锚定的是算力。
- 交易性能就是每秒处理交易的笔数(TPS)。造成区块链性能低下的主要原因是每笔交易都要在所有节点上达成一致。
在传统货币理论中存在“不可能三角”,即一国无法同时实现货币政策的独立性、汇率稳定与资本自由流动,最多只能同时满足两个目标,而放弃另外一个目标。
关于区块链的不可能三角
以太坊创始人Vitalik Buterin如是说:
“扩展性也许是排在第一位的问题。扩展性问题已经成为很多系统的坟墓。这是一个重大而艰巨的挑战。这些都是已知的事实。”
比特币
一种追求“去中心化”与“安全”的技术组合。追求“安全”与“去中心化”则无法达到“可扩展性”。
它的每一个节点都下载和储存所有的数据包,使得网络可以民主自治,但也同时带来了巨大的储存空间损耗和校验成本。比特币每秒只能处理7笔交易,这是远远无法承载全球货币支付场景需求的。
由于比特币的发展,1M的区块大小已经不够用了,社区中矿工与开发团队之间就这个问题产生了分歧,矿工的扩展区块大小到8M的计划,实际上是选取了“安全”与“可扩展性”而部分放弃了“去中心化”,因为对节点的运算能力有更高的要求。
以太坊
以太坊的区块分片化存储的方案便是一种追求“可扩展性”与“去中心化”的技术组合。
追求“可扩展性”与“去中心化”则需要牺牲“安全”。
以太坊的分片其实相当于同构的半独立的多链,世界状态是共享的,但是交易历史是分开的。多链也就是选取了“去中心化”与“可扩展性”而部分牺牲了“安全”,因为算力分散了。
EOS-超级账本
以超级账本为代表的联盟链的区块链方案是一种追求“可拓展性”与安全的技术组合。
追求“可扩展性”与“安全”则需要牺牲“去中心化”。
在超级账本区块链技术中,达成共识的节点由联盟链中的成员组成。这大大减少了节点了数量,加快了网络的吞吐量(即可拓展性)。
再比如,当前比较火热的EOS,公链,竞选的21个超级节点,其实也是对“去中心化”的牺牲。
为什么会有“区块链的不可能三角”
这和我们想要达到的“去中心化”的目的有关。究竟什么是去中心化?
Ethereum的创始人之一Vitalik Buterin从结构、政治和逻辑三个维度剖析了去中心化的含义。
三种类型的去中心化
当大家在讨论软件去中心化的时候,实际上往往有3种不同维度的中心化/去中心化。虽然在一些情况下这些中心化形式往往缺一不可,但通常它们还是彼此相对独立的。这几个维度是:
1、结构(去)中心化——系统由多少物理计算机组成?该系统可容忍这些计算机多少台同时发生崩溃?
2、政治(去)中心化——有多少个人或者组织最终控制着组成该系统的那些计算机?
3、逻辑(去)中心化——该系统展现和维护的界面和数据结构看起来更像是 单一的一体式对象 呢,还是 无定形的一大群 ?或者用这个问题来启发一下:如果包括提供商和用户在内把你的系统一分为二的话,那两部分是不是还可以继续作为独立单元完全运作。
传统企业是政治中心化(有一个CEO),结构中心化(一个总部)以及逻辑中心化的(并不能真正一分为二)
民法依赖于一个中心化的法律制定实体,而习惯法是基于许多独立判决的基础上制订的。民法仍然有一些结构上的去中心化,因为有很多法庭仍然是由很大的自由裁量权的,但习惯法的自由裁量权更大。这两个都是逻辑中心化的。
语言是逻辑去中心化的;Alice和Bob之间讲的英语与Charlie和David之间讲的英语完全不需要一致。语言并不需要一个中心化的基础设施存在,而英语的语法规则也不是由一个人创建或控制的(世界语则是源自Ludwig Zamenhof,的发明,尽管其现在的功能更像是一门无人监管、逐渐演变的活语言)。
BitTorrent在逻辑上是去中心化的,类似于英语的样子。内容交付网络也类似,但却是被一个公司所控制。
区块链是政治去中心化(没人控制区块链)、结构去中心化(没有基础设施性的中心失败点)的,但是在逻辑上是中心化的(有一个公认的状态,整个系统行为就像一个计算机一样)。
结构中心化往往导致政治中心化。
逻辑中心化会导致结构去中心化更加困难。
而我们的区块链系统是结构上去中心化、政治上去中心化、但是在逻辑上却是中心化的!
这种要求,是导致区块链不可能三角的内在原因。
如何突破区块链的不可能三角
当前的区块链系统,或多或少的,都是在这个三角之内做出取舍。
有的在优化共识算法,提高共识的效率,比如POS、DPOS等机制被采用,实际上都是对“去中心化”的退让,形成了部分中心化;有的采用闪电网络,是指将小额的,频繁交易,先通过一些分支节点进行储存和计算,并在一定时间内整合归并到主链上,这种方式也是部分放弃了“去中心化”。
当前的区块链技术,在这个三角下,衍生了公有链,联盟链和私有链这几类代表。
联盟链只允许预设的节点进行记账,加入的节点都需要申请和身份验证,这种区块链技术实质上是在确保安全和效率的基础上进行的“部分去中心化”或“多中心化”的妥协。
而私有链已经成为了完全“中心化”的技术。
如何破解区块链“不可能三角”?分片和分层是两大可能的方向。
分片
事实上,分片是一个特别复杂和具有挑战性的方案,包括计算分片、共识分片、存储分片、网络分片等。它存在于多个层面,如何解决相互融合的问题是关键。
目前,一些方案在计算分片方面取得了一些进展,但其他问题还没有成熟的解决方案,即使在实验室中也是如此。
即使理论上制定了方案,也需要面对工程实施的挑战,并在生产环境中经历长时间的实际验证(若干年),以证明其安全性。
这也是过去几年普遍存在的问题,无论是以太坊还是试图在分片上尝试解决区块链扩展性问题的团队。
尤其是2018年,越来越多的人意识到分片之路遇到了很大的阻碍,短期内看不到任何突破的可能,这导致区块链技术领域越来越重视分层,尤其是各种Layer 2扩容方案。
分层
分层方案其实从2015年比特币闪电网提出就已经存在,代表作是Layer 2。
第二层通常称为“链下”解决方案,是指通过完成链下或链外的计算,然后在主链上完成清算,从而解决可伸缩性问题。其主要目的是扩展区块链的性能,同时保留分布式协议的分散优势。
以ETH为例,Layer 2技术系统是连接到以太坊的系统,它将是安全和确定性的基础层。
换句话说,我们没有改变以太坊的基础,而是在主要的区块链协议中添加了智能合同,这些协议与线下活动交互。
从解决可扩展性问题的角度来看,分层方案比分片方案在工程实现上要方便和容易得多,并且借助主网可以保证安全性和分散性。
因此,分层方案可以在第一层保证安全性和分散性,在第二层关注可扩展性,然后通过协议将两层链接起来,实现一个整体方案,整体兼顾安全性、分散性和可扩展性。
参考货币理论的“不可能三角”,无论哪一“角”,都不可能达到绝对的程度。
换句话说,区块链几乎不可能完全高效、完全安全和完全去中心化,但它们可以相互让步,以达到一定程度的平衡。
去中心化真的是去中心化吗?
目前,不少公链仍然部署在中心化服务器。理想的区块链是去服务器,但区块链的去中心化是技术模式,现阶段不可能去服务器。两者可以结合的地方还有很多,比如私链和联盟链必须依靠集中式服务器。
反过来看所谓“突破口”,也未必能够成功。
“分片”涉嫌偷换概念。它将去中心化定义为每个节点应该能够用有限的资源打包事务,且随着参与节点的增加,打包事务的效率会更高。
但是,去中心化的核心本质是每个节点都可以有参与共识的权利和自由,这是不可逆交易和不可篡改数据的根本。
参考
喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!
- 来自作者
- 相关推荐