导读:区块链技术具有不可篡改的高安全性、异构多活的高可用性,但同时也在性能、隐私保护和升级修复等方面存在一定局限性
作者|中国人民银行数字货币研究项目组
文章|《中国金融》2016年第17期
源于比特币社区的区块链技术,不仅为金融机构所重视,也逐渐为世界主要经济体及重要国际组织所关注,在欢呼和质疑声中,渐成声势。笔者尝试分析区块链技术的优势、劣势以及未来发展趋势,以扬长避短,用其所能。
一、区块链的优势
1.不可篡改,更安全
在传统信息系统的安全方案中,安全依赖于层层设防的访问控制。和深埋地下的银行金库类似,高价值数据一直在专用机房、专有网络和全方位的安全软件组成的铁桶阵的严密防护之下,API/访问接口则是在铁桶阵上开出的一个个专用进出通道。任何人都必须通过身份认证、鉴权,才能由专用通道进入数据库,读取或者写入数据,并留下历史记录。
保护财产安全,通常有两种途径:藏起来,只有所有者才能拿到,比如黄金;对外宣布财产的所有权,并以法律做背书,比如房产。传统安全方案是第一种思路,区块链则是第二种。通过区块链技术,记录交易的数据库任何人都可以共享。但由于巧妙的设计并辅以密码学和共识算法,区块链实现了数据库历史记录的不可篡改。实践证明,这样一个数据库可以确保市值达百亿美元的比特币在全球黑客的攻击下,运转稳定。
2.异构多活,高可用
从区块链系统的架构看,每个系统参与方都是一个异地多活节点,远超两地三中心这样的冗余度,是天生的多活系统:每一个全节点都会维护一个完整的数据副本,并且这些数据副本还在不同实体的控制之下,数据通过共识算法保持高度一致。
如果某个节点遇到网络问题、硬件故障、软件错误或者被黑客控制,均不会影响系统以及其他参与节点。问题节点在排除故障并完成数据同步之后,便可以随时再加入到系统中继续工作。正因为整个系统的正常运转不依赖于个别节点,所以每个节点可以有选择地下线,进行系统例行维护,同时还能保证整个系统的7×24小时不间断工作。
此外,区块链中的节点通过点对点的通信协议进行交互,在保证通信协议一致的情况下不同节点可由不同开发者使用不同的编程语言、基于不同的架构、实现不同版本的全节点来处理交易。由此构成的软件异构环境确保了即便某个版本的软件出现问题,区块链的整体网络不会受到影响,这也是其高可用的基石所在。
3.新型协作机制,更高效
对于公司间的大规模多边协作,在区块链应用之前,通常只有两种解决方法。
其一,在多个主体之间向上寻找共同的“上级”机构,由共同的信任中心对整个组织进行协调。这种方法的局限在于:在某些场景中,很难找到一个所有市场参与方共同认可的信任中心;对于一个中心而言,协调事项必然有优先级,不一定能够及时、有效地满足所有协作需求。
其二,通过共同组建一个第三方机构,即所有参与方通过让渡部分权利,共同组建一个第三方机构来完成协作。这种方法的局限在于:第三方机构往往都具有独立性,若制度不能满足其营利和管理需要,第三方机构往往能够成为各参与方的实际权力中心;在第三方机构成立之后,如何吸纳新的成员,如何随着情况发展变化调整各参与方的角色和权力,这些都依赖于大量的谈判和交易。区块链提供了不同于传统的方法:以对等的方式把参与方连接起来,由参与方共同维护一个系统,通过共识机制和智能合约来表达协作规则,实现更有弹性的协作方式。因为参与方职责明确,不用向第三方机构让渡权力,无需维护第三方信任机构的成本,有利于各方更好地开展协作。作为信任机器,区块链有望成为低成本、高效率的一种全新的协作模式,形成更大范围、更低成本的新协同机制。
4.智能合约,更先进
智能合约具有透明可信、自动执行、强制履约的优点。尽管如此,自尼克·萨博1993年提出以来,智能合约始终停留在理念层面。重要原因在于,长久以来没有支持可信代码运行的环境,无法实现自动强制执行。而区块链第一次让智能合约的构想成为现实。
本质上讲,智能合约就是运行在区块链上的一段代码,和运行在服务器上的代码并无太大差别,唯一的区别是可信度更高。首先,可信是因为智能合约的代码是透明的,对于用户来讲,只要能够接入到区块链中,用户就可以看到编译后的智能合约,可以对代码进行检查和审计。其次,可信还来源于智能合约的运行环境,一个程序的运行结果除了与程序代码有关,还和提供给程序处理的数据有关。因此,除了透明,还需要保证数据的一致性和不可篡改,而这正是区块链的优势所在。
因此,智能合约一旦被部署到区块链上,程序的代码和数据就是公开透明的,无法被篡改,并且一定会按照预先定义的逻辑去执行,产生预期中的结果。如果基于代码的智能合约能够被法律体系所认可,那么依托程序的自动化优势,通过组合串联不同的智能合约,达到不同的目的,能够使我们加速走向更为高效的商业社会。
二、区块链的劣势
1.性能问题有待突破
从目前的情况看,区块链的性能问题主要体现为吞吐量
和存储带宽
的矛盾。
以比特币为例,在公有链中,每秒7笔的处理能力远不能满足整个社会的支付需求;同时,比特币全部交易数据目前已经接近80G,对于普通电脑的存储来说,这是个不小的负担。如果只是简单提高区块大小来提高吞吐量,比特币很快就变成只有少数几个大公司能够运行的系统,有违去中心化的设计初衷。在比特币、以太坊等公有链系统中,上述矛盾是系统设计时面临的最大挑战。
在联盟链中,因为参与记账的节点可选可控,最弱节点的能力上限不会太低,并且可以通过资源投入获得改善,再针对性地替换掉共识算法等组件最终获得性能的全方位提升。但作为智能合约基础支撑的联盟链另有考验:智能合约运行时会互相调用并读写区块数据,因此交易的处理时序特别重要,节点在处理或者验证交易的时候无法并行,只能逐笔进行,这会制约节点的处理能力。
2.隐私保护有待加强
传统上数据是保存在中心服务器上的,由系统运营方保护数据隐私。但在公有链中,没有中心化的运营方,每一个参与者都能够获得完整的数据备份,这也意味着公有链的数据库是透明的。
比特币对隐私保护的解决思路是,通过隔断交易地址和地址持有人真实身份的关联,来达到匿名的效果。所以虽然能够看到每一笔转账记录的发送方和接受方的地址,但无法对应到现实世界中的具体某个人。对于比特币而言,这样的解决方案也许够用。但如果区块链需要承载更多的业务,比如实名资产,又或者通过智能合约实现具体的借款合同等,这些合同信息如何保存在区块链上,验证节点在不知晓具体合同信息的情况下如何执行合同,这就需要关注同态加密、零知识证明等新型密码学方案在区块链问题上的应用进展。此外,通过合理设计系统上链的数据,安排链外信息交换通道等机制,也可以规避一些隐私保护的难点。
3.升级修复机制有待探索
与中心化系统的升级方式不同,在公有链中,因为节点数量庞大,参与者身份匿名,不可能关闭系统集中进行升级。在具体实践中,公有链社区摸索出了“硬分叉”和“软分叉”等升级机制,但遗留问题有待观察。此外,由于公有链不能“关停”,其错误修复也异常棘手,一旦出现问题,尤其是安全漏洞,将非常致命。
通过放松去中心化这个限制条件,很多问题能找到解决的方案。比如在联盟链这样的多中心系统中,通过关闭系统来升级区块链底层,或者紧急干预,回滚数据等,必要时都是可用的手段,这些手段有助于控制风险、纠正错误。而对于常规代码升级,通过分离代码和数据,结合多层智能合约结构,实现可控的智能合约更替。
三、未来趋势
一个新物种或者新现象往往会极大地促进理论边界的拓展。比特币的出现,开创了一个全新的软件系统维度。可以预见的是,未来在中心化和去中心化这两个极点之间,将会存在一个新的领域,各种区块链系统拥有不同的非中心化程度,以满足不同场景的特定需求。
除了基于新理论创造新的区块链系统,如何最大化挖掘现有区块链系统的潜力同样重要。为了解决性能瓶颈问题,“闪电网络”是一个可能的发展方向。“闪电网络”将大量的微小支付移到主链之外,形成多个支付处理中心。通过“闪电网络”,比特币主链下沉为RTGS(实时全额支付系统)级别的应用,可以极大地提高区块链的使用效率;“State Channel”则是对“闪电网络”在支付场景之外更通用的技术思路;而R3 CEV的Corda更加彻底,仅将区块链作为争议仲裁和强制执行的最后手段,扬长避短,从而克服区块链在性能、隐私等方面的劣势。
在安全领域,虽然比特币区块链本身的安全性经受了多年的考验,但仍需持续关注。区块链并未解决所有传统的信息安全问题,对区块链安全能力的盲目信任有可能导致严重的后果,例如智能合约漏洞被利用导致数字资产损失。因此,需要新的密码方案、传统信息安全领域的关键技术与区块链技术融合,齐头并进,协同发展。如果设计一个传统数据库与区块链结合的混合数据库,对不同数据区分处理,充分发挥各自优势,对于区块链系统的普及意义重大。
当越来越多的数字资产迁移到区块链上进行跨链操作时,不同区块链间的互联互通亦将成为必然。监管者面临的任务则更加艰巨,需要同步考虑制订相应的法律法规与技术标准,以加强监管,防范风险。区块链能否成为新一代金融基础设施的底层技术?我们拭目以待。■