1.1.3 链上扩容与跨链通信
以太坊等项目通过链上虚拟机提供的智能合约技术为构建区块链应用提供了另一种选择:与其为每一个应用单独构建一条链,不如利用智能合约技术通过去中心化应用(decentralized application,DApp)的方式构建区块链应用,使开发者可以专注于上层应用的功能实现,无须再操心对等网络通信与共识协议等区块链底层协议。以太坊上DApp生态的繁荣发展,展示了这种技术策略的可行性。然而构建在同一个区块链上的DApp将同时竞争严重受限的底层区块链资源,这就导致整个DApp生态的发展受到底层区块链性能的制约。
为了改进区块链性能,整个行业做出了多种多样的尝试。比特币现金项目通过增大每个区块的容量来提高链上交易处理速度的方式仅能带来有限的速度提高。标榜可以达到百万每秒处理的事务数(transactions per second,TPS)的企业操作系统(enterprise operation system,EOS)项目,则尝试通过牺牲部分分布式特性来提高链上交易速度,但是在实际的运营中网络也遭遇过拥堵。另外以太坊2.0则计划通过分片(sharding)的方式来实现链上交易的并行处理,但是分片方案带来的工程挑战是巨大的(以太坊2.0的开发进度落后于预期)。构建出一条具有足够性能的区块链来承载所有的区块链应用在当下看来似乎是不可能的任务。
需求方面,也没有一个区块链项目可以同时满足所有的需求,多条定位不同、功能迥异的区块链并存不仅是目前的常态,也会是未来区块链行业的发展方向。然而,在区块链项目遍地开花的繁荣景象之下,一个隐忧逐渐显露:由于彼此之间无法通信,这些区块链项目逐渐成为一座座“价值孤岛”。想象一下,如果计算设备之间没有实现互联,就不会有今天繁荣的互联网。区块链之间的互通互联,可以打破不同链之间信息和价值流转的屏障,实现整体大于局部之和的效果。
Vitalik Buterin在“Chain Interoperability”中总结了跨链通信的3种实现机制:散列锁、公证人和中继。基于散列锁的跨链通信机制要求区块链本身支持基于散列的时间锁定机制,在比特币、Algorand等项目中有应用。公证人机制则是相对中心化的方案,方案简单,但依赖可信的第三方。相比之下,基于密码学证明的中继机制是最通用的去中心化跨链方案之一,基于中继机制实现通用的IBC协议是当下区块链领域的研究热点。