与传统技术对比,区块链具有以下四个方面的优势:
一是难以篡改,更加安全。在传统信息系统的安全方案中,安全依赖于层层设防的访问控制。通过区块链技术,记录交易的数据库任何人都可以访问,但由于巧妙的设计并辅以密码学和共识机制,区块链的数据记录方式使得修改某一数据需要变更所有的后续数据记录,难度极大。实践证明,这样一个数据库可以确保市值达千亿美金的比特币,在全球黑客的攻击下,运转稳定。
二是异构多活,可靠性强。区块链每个系统参与方都是一个异地多活节点,是天生的多活系统。如果某个节点遇到网络问题、硬件故障、软件错误或者被黑客控制,均不会影响系统以及其他参与节点。区块链中的节点通过点对点的通信协议进行交互,在保证通信协议一致的情况下不同节点可由不同开发者使用不同的编程语言、不同版本的全节点来处理交易。由此构成的软件异构环境确保了即便某个版本的软件出现问题,区块链的整体网络不会受到影响,这也是其高可用的基石所在。
三是具备智能合约,自动执行。智能合约具有透明可信、自动执行、强制履约的优点。尽管如此,自尼克·萨博1993年提出以来,智能合约始终停留在理念层面。重要原因在于,长久以来没有支持可信代码运行的环境,无法实现自动强制执行。而区块链第一次让智能合约的构想成为现实。
四是网状直接协作机制,更加透明。区块链提供了不同于传统的方法,以对等的方式把参与方连接起来,由参与方共同维护一个系统,参与方职责明确,无需向第三方机构让渡权利,有利于各方更好的开展协作。作为信任机器,区块链有望成为低成本、高效率的一种全新的协作模式,形成更大范围、更低成本的新协同机制。
虽然区块链有上述优点,也很好地达到了比特币的预定设计目标,支撑了比特币系统的正常运行。但也正因为区块链技术早期主要是服务于比特币,在某些方面有着明显的短板和不足。
一是性能和扩展性不能满足要求,从目前的情况来看,区块链的性能问题主要表现为吞吐量及存储带宽远不能满足整个社会的支付需求。同时,比特币随着时间的推移,累积的交易数据越来越大,对于普通电脑的存储来说,这是个不小的负担。如果只是简单提高区块大小来提高吞吐量,比特币很快就会变成只有少数几个大公司能够运行的系统,有违去中心化的设计初衷。在比特币、以太坊等公有链系统中,上述矛盾是系统设计时面临的最大挑战。
在联盟链中,因为参与记账的节点可选可控,最弱节点的能力上限不会太低,并且可以通过资源投入获得改善,再针对性地替换掉共识算法等组件最终获得性能的全方位提升。但作为智能合约基础支撑的联盟链另有考验:智能合约运行时会互相调用并读写区块数据,因此交易的处理时序特别重要,如果只能逐笔进行,这会严重制约节点的处理能力。
二是数据隐私和访问控制有待改进。现有公有链中,各参与方都能够获得完整数据备份,所有数据对于参与方来讲是透明的,无法使参与方仅获取特定信息。比特币通过隔断交易地址和地址持有人真实身份的关联,达到匿名效果。所以虽然能够看到每一笔转账记录的发送方和接受方的地址,但无法对应到现实世界中的具体某个人。对于比特币而言,这样的解决方案也许够用。但如果区块链需要承载更多的业务,比如登记实名资产,又或者通过智能合约实现具体的借款合同,这些合同信息如何保存在区块链上,验证节点在不知晓具体合同信息的情况下如何执行合同等等,目前业内尚未有成熟方案。而这些问题在传统信息系统中并不存在。
三是治理机制有待完善。公有链社区摸索出了“硬分叉”和“软分叉”等升级机制,但遗留问题有待观察。由于公有链不能“关停”,其错误修复也异常棘手,一旦出现问题,尤其是安全漏洞,将非常致命。
实际上,通过放松去中心化这个限制条件,很多问题能找到解决的方案。比如在联盟链这样的多中心系统中,通过关闭系统来升级区块链底层,或者紧急干预,回滚数据等,必要时都是可用的手段,这些手段有助于控制风险、纠正错误。而对于常规代码升级,通过分离代码和数据,结合多层智能合约结构,实现可控的智能合约更替。
互联网近年来的迅猛发展及其与物理世界的深度耦合与强力反馈, 已经根本性地改变了现代社会的生产、生活与管理决策模式。可以预见的是,未来在中心化和去中心化这两个极点之间,将会存在一个新的领域,各种区块链系统拥有不同的非中心化程度,以满足不同场景的特定需求。