区块链的“不可能三角”

作者: 亮子wl | 来源:发表于2018-02-08 21:37 被阅读858次

    “扩展性也许是排在第一位的问题。扩展性问题已经成为很多系统的坟墓。这是一个重大而艰巨的挑战。这些都是已知的事实。”——Vitalik Buterin

    v神

    在传统货币理论中存在“不可能三角”,即一国无法同时实现货币政策的独立性、汇率稳定与资本自由流动,最多只能同时满足两个目标,而放弃另外一个目标。相类似,当前的区块链技术也存在“不可能三角”,即无法同时达到可扩展性(Scalability)、去中心化(Decentralization)、安全(Security),三者只能得其二。

    一、追求“安全”与“去中心化”则无法达到“可扩展性”

    比特币区块链技术便是一种追求“去中心化”与“安全”的技术组合。

    它的每一个节点都下载和储存所有的数据包,使得网络可以民主自治,但也同时带来了巨大的储存空间损耗和校验成本。比特币每秒只能处理7笔交易,这是远远无法承载全球货币支付场景需求的。

    由于比特币的发展,1M的区块大小已经不够用了,社区中矿工与开发团队之间就这个问题产生了分歧,矿工的扩展区块大小到8M的计划,实际上是选取了“安全”与“可扩展性”而部分放弃了“去中心化”,因为对节点的运算能力有更高的要求。

    开发团队的闪电网络的解决方案,是指将小额的,频繁交易,先通过一些分支节点进行储存和计算,并在一定时间内整合归并到主链,这和以前我们做数据库优化分享中,合并写入的逻辑基本是一样的。可以极大减少主链的写入压力,提升主链的容量。这也是选取了前二者而部分放弃了“去中心化”,因为闪电网络其实是第二层。

    二、追求“可扩展性”与“去中心化”则需要牺牲“安全”

    以太坊的区块分片化存储的方案。现在比特币这样的区块链虽然是去中心化分布式存储,但每个全节点存储的是记录全集,也就是规模总量和本地查询明显是受到制约的。使用分布式存储的方式,让每个节点只存储某个子集是否可以呢?这样结合提升出块效率,并同比降低出块奖励,就可以极大提升系统的承载能力,并且不会对节点存储和网络传输带来过大的压力。

    以太坊的分片其实相当于同构的半独立的多链,世界状态是共享的,但是交易历史是分开的。多链也就是选取了“去中心化”与“可扩展性”而部分牺牲了“安全”,因为算力分散了。

    举个极端的案例就是基于P2P的视频播放软件。以往当在线观看人数增多时,基于中央服务器设计的视频服务器会因承载压力变大而速度缓慢。为了提高效率,P2P视频播放软件的设计使得一个节点在下载观看视频文件的同时也不断将数据传输给别人,每个节点不仅是下载者同时也是服务器,资源的分享形成不再依赖于中央服务器的“去中心化”模式。

    同时,由于视频一秒有24帧,少量图片的局部数据损坏并不影响太多的视觉感官,但是用于数据校验而出现的图像延迟则是不可接受的。于是P2P视频播放软件牺牲了“安全”性,允许传输的数据出现少量错误。在这种去中心化的网络中,参与的节点越多,数据传输越快,传播的效率越高。当然这对于严谨的金融业来说,数据的错误是不可接受的。

    因而以太坊的分片要让系统真正运行起来,在这个设计里还需要考虑片间交流,防范对单片的攻击,欺诈检测等问题。一个好的分片技术协议应该只需要在去中心化和安全性上做出极小的牺牲。以太坊明显需要更多的头脑来帮他们解决这些问题。

    三、追求“可扩展性”与“安全”则无法实现“去中心化”

    从“共识机制”角度看,为了在确保“安全”的前提下,解决比特币的POW共识低效性,POS、DPOS等机制被采用。但无论是基于网络权益代表的权益证明,还是利用101位受委托人通过投票实现的股份授权证明,实际上都是对“去中心化”的退让,形成了部分中心化。

    同样在区块链技术的演化上,除了公有链外,也有联盟链和私有链。联盟链只允许预设的节点进行记账,加入的节点都需要申请和身份验证,这种区块链技术实质上是在确保安全和效率的基础上进行的“部分去中心化”或“多中心化”的妥协。而私有链已经成为了完全“中心化”的技术。


    比特币从完全的去中心化而来,发展至今面临了可扩展性的效率问题,今后区块链面临不可能三角的制约,会如何演化呢?我认为完全的中心化是没有太大价值的,未来的区块链、IOT架构很可能是中心化与去中心的结合,保障了安全性和可扩展性,究竟哪种技术会胜出目前还很难说,让历史来见证吧!

    相关文章

      网友评论

        本文标题:区块链的“不可能三角”

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