二、区块链技术最新的理论和实践进展
随着社区的繁荣,研究的深入,不同应用蓬勃发展,对于区块链技术的局限有了更深刻的认识,在此基础上,针对区块链的一些不足提出了很多解决方案,主要集中在共识机制,性能,隐私和安全,治理机制和跨链技术等方面。
首先来看共识机制。共识是各方对某种陈述达成一致的过程或结果。在博弈论中,每个人都知道的信息称为共有知识,仅是共同知识的一个层次。共同知识还要求每个人都知道别人也知道的信息,以至每个人都知道其他人知道,并且相互认同。以安徒生童话《皇帝的新装》为例,在小孩戳破真相之前,每个人都知道皇帝是裸着的。但这是共有知识,不是共同知识。
区块链技术通过信息广播,交易签名,投票表决的方式,可以巧妙地将共有知识转化为高阶的共同知识。其中,节点签名并广播起到了让其他人知道我知道并认可该区块,从而达成共识获得共同知识的作用。在比特币中,其规则“最长链是全网的有效链”即是一种共同知识,矿工作为经济理性人使用该共同知识来支持高阶信念,对其他矿工的决策进行猜测,最终形成纳什均衡。
有后继研究认为,中本聪原始论文中51%的安全算力假设是有问题的。自私挖矿策略的存在使得比特币的理论安全阈值下降。自私挖矿简单说就是,挖到块后不发布,继续挖,如果挖到第二个块,这时再发布出来。如果在挖第二个块的过程中,有别人挖出的其他块被广播出来,则立刻广播自己之前挖到的块。经过理论测算,如果一个矿工有1/3的算力,则自私挖矿是有利于自己的。因此,基于掌握的算力份额大小,大小矿工的影响力是不同的,需要用新的计算模型求解博弈均衡点。
分布式系统的共识算法研究由来以久,上世纪80年代就开始研究,Lamport提出的Paxos以及后来在此基础上发展出的各种BFT拜占庭容错算法皆属此类,其核心在于通过节点投票达成分布式系统的状态一致性。比特币另辟蹊径,在技术之外叠加经济激励,以共识机制保证系统状态的全局一致。
古典共识机制的问题在于,一旦参与投票节点数量增加后,其共识效率会大幅下降以至于无法使用;中本聪共识机制的问题在于浪费大量能源以及交易确认时间长。
康奈尔和麻省理工的研究员提出了将中本聪共识和BFT类共识进行有机结合的混合共识方案,是一个新的突破方向,有可能兼具两者优点,避免各自缺点。目前这方面的研究还在持续进行中。
技术改进的第二个方面是在隐私和安全方面。在公有链中,需要对交易数据、地址、身份等敏感信息进行保护,同时又能让记账节点验证交易的合法性;对于联盟链,在构建隐私保护方案的同时,需考虑可监管性/授权追踪。可以通过采用高效的零知识证明、承诺、证据不可区分等密码学原语与方案来实现交易身份及内容隐私保护;基于环签名、群签名等密码学方案的隐私保护机制、基于分级证书机制的隐私保护机制也是可选方案;也可通过采用高效的同态加密方案或安全多方计算方案来实现交易内容的隐私保护;还可采用混币机制实现简单的隐私保护。
以太坊自正式运转后发生多次安全事故,其中最大的一次是TheDAO被黑事件。TheDAO是一个由程序代码管理的自治的风险投资基金,共募集了1200万ETH。黑客利用TheDAO智能合约的安全漏洞,从合约管理的ETH中划走360万个ETH。最终以太坊基金会不得不进行分叉以解决该问题。因为社区对分叉的处置手段有不同意见,此次事件后出现了ETH和ETC两种以太坊的区块链,坚持私产不可以任何理由剥夺的人群选择留在了ETC。
TheDAO事件折射出两个问题:一是智能合约尤其是公有链的智能合约的安全问题非常重要,出现漏洞或错误后,无法像中心化系统那样通过关闭系统,集中升级的办法进行修复。而智能合约往往直接管理资金,一旦出现漏洞会直接导致经济损失,因此需要更强的安全措施。目前在这方面的研究热点是把以往应用在芯片设计或者军事控制系统上的形式化验证的方法,应用到智能合约上,以数学证明的方式尽可能避免人为错误。
TheDAO事件还折射出另外一个问题,即现有区块链缺乏一套完善的治理机制,当社区面临重大决策事件时,如何让社区参与进来,以某种机制形成社区意见,最终在区块链上表达出来。这些决策可能是不同的技术升级提案,也可能是TheDAO这样的突发事件处理,或者是该区块链某些基础规则的调整。如果缺乏治理机制,只能通过软分叉或者硬分叉解决问题,最终将导致混乱和分裂。
最近比较有趣的一个趋势是,代币持有者投票的链上治理机制再度作为多目标决策机制兴起。代币持有者的投票有时会用来决定运行网络的超级节点由谁操作,如 EOS、NEO、Lisk 等系统中的委任权益证明(DPOS)机制;有时用来对协议参数进行表决,比如(如以太坊的 Gas 上限);有时用来进行表决或直接实行批量协议升级,如Tezos。在这些例子,投票都是自动进行的,也就是说,协议本身包含了更改验证程序集或更新其自身规则所需的一切逻辑,而且是根据投票结果来自动进行。
链上治理通常被认为具有以下几大主要优势。首先,与比特币所倡导的高度保守的理念不同,它可以迅速发展并接受必要的技术改进。其次,通过建立一个明确的去中心化框架,可以避免非正式治理上的已知缺陷,人们觉得非正式治理太不稳定,又容易出现链分裂,或是变得在事实上过于中心化。最后,链上治理有利于确保流程的贯彻执行,从而提高协调性和公平性,也允许更快的决策。
但代币投票机制饱受诟病的一点是,无论这些机制在何处尝试,其投票者参与度会往往很低。投票参与度低引发了两个问题。首先,投票要取得合法性认可比较困难,因为它只反映了少部分人的意见。其次,仅持有一小部分代币的攻击者就能够左右投票。
此外,有些人认为,链上治理存在风险,因为元系统一旦确定就难以再改变。正如直接写入的代码一样,一旦有缺陷,就会更快也更容易地被利用。同时,链上治理让普通节点运营者对治理的参与变得毫无必要。这使得普通节点运营者无需做任何决定,而只是遵循链上流程所做出的决策。那么当出现财阀式的少数人链上治理时,普通用户利益将会被不相容,有悖公有链的价值观。区块链属于公众,为了公共利益服务。它不是为了让加密货币大户变得更加富有。区块链并不应该由谁来占有,更不用说一小部分超级富豪了。因此,有人反对链上治理。
总体看,关于链上治理机制,仍处于争议和探索的过程中,尚未有统一的意见,需要我们进一步关注和研究。
最后谈谈跨链技术。跨链技术可以理解为连接各区块链的桥梁,满足不同区块链间的资产流转、信息互通、应用协同。当下区块链技术纷繁芜杂,各成一派,彼此之间还无法进行价值和数据的交换。随着行业发展,链与链之间的互操作越来越重要。如果跨链没有解决,各大区块链都将会是孤岛,必定会降低区块链社区的活力,从而限制整个区块链网络和生态系统的发展。
跨链技术可以应用于跨链资产转移、跨链原子交易、跨链数据共享、跨链合约执行以及去中心化交易所等广泛场景,目前有三种技术模式:
一是公证人机制(Notary schemes)。这是中心化或基于多重签名的见证人模式,主要特点是不关注所跨链的结构和共识特性,而是引入一个可信的第三方充当公证人,作为跨链操作的中介。代表性方案是Interledger。
二是侧链/中继(Sidechains/ Relays)。侧链是一种锚定原链的链结构,但并不是原链的分叉,而是从原链的数据流上提取特定的信息,组成一种新的链结构,而中继则是跨链信息交互和传递的渠道。不论是侧链还是中继,作用都是从原链采集数据,扮演着listener的角色。侧链和原链不能直接验证对方块的状态,因为这样会形成循环,但相互只包含轻节点是可行的,相应的验证逻辑可由链协议本身或应用合约实现。一般来说,主链不知道侧链的存在,而侧链必须要知道主链的存在。代表性方案是btc relay 、RootStock、Polkadot等。
三是哈希锁定(Hash-locking)技术。它在不同链之间设定相互操作的触发器,通常是个待披露明文的随机数的哈希值。哈希值相当于转账暗语,只有拿到这暗语的人,才能获得款项。同时,它还构造了两个退款(Redeem)合约,这两个合约需要双重签名且有时间期限,对方签名,自己未签名,当自己签名时,资产退回原处。其中一个关键技术设计是,制造转账哈希暗语的人的退款合约,在时间期限上要长于另外一个人,由此可保护他的权益。代表性方案是比特币闪电网络。
值得一提的是,跨链技术也得到了一些中央银行的重视。比如日本央行和欧洲央行合作的Stella央行数字货币试验项目,在第二期就着重研究了单链和跨链的DVP解决方案。