随着区块链技术的火热,出现了大量的区块链企业,也出现了大量不同的链。随之而来的是一个新技术的诞生——跨链技术。
跨链,顾名思义,就是通过一个技术,能让价值跨过链和链之间的障碍,进行直接的流通。那么怎样理解跨链呢?
区块链是分布式总账的一种。一条区块链就是一个独立的账本,两条不同的链,就是两个不同的独立的账本,两个账本没有关联。本质上价值没有办法在账本间转移,但是对于具体的某个用户,用户在一条区块链上存储的价值,能够变成另一条链上的价值,这就是价值的流通。
这样说比较晦涩,我们用换汇来理解就方便了。人民币是一个独立的货币,美元是另一个独立的货币。人民币无法直接变成美元,美元也无法直接变成人民币。因此,美元无法直接进入人民币账本,人民币也无法直接进入美元账本。需要有人愿意买入人民币/美元,卖出美元/人民币,才能完成货币的兑换,实现价值的跨账本流动。
Alice有100美元,她来到了中国,需要使用人民币进行交易。于是她必须找到愿意和她兑换外币的人,例如Bob,Alice将100美元卖给Bob,Bob收到了Alice给他的100美元,按照当时的汇率,给了Alice 657人民币。
从账本上看,整个外币兑换的过程是这样子的。
首先Alice在美元的账本上有100美元,Bob在美元的账本上有0美元;
Alice在人民币账本上有0元,Bob在人民币账本上有657元。
然后Alice在美元的账本上转账给Bob 100美元,
Bob在人民币的账本上转账给Alice 657元人民币。
于是,Alice原本在美元账本上的账户中的100美元的价值就转移到了Alice在人民币账本上的账户中,体现为657元人民币。
在这个过程中,Bob在人民币账本上的的657元人民币的价值就转移到了Bob在美元账本上的账户中,体现为了100美元。
整个兑换过程中,在两个账本上同时发生了转账交易。
在整个兑换的过程中,人民币账本上的人民币总数没有变化,仍是657元;美元账本上的美元总数也没有变化,仍是100美元。变化的是两个账本上货币的持有人。
跨链本质上和货币兑换是一样的。跨链并没有改变每个区块链上的价值总额,只是不同的持有人之间进行了一个兑换而已。
综上,跨链技术的核心要素之一是:帮助一条链上的用户Alice找到另一条链上的愿意进行兑换的用户Bob。从业务角度看,跨链技术就是一个交易所,让用户能够到交易所里进行跨链交易。
进行数字货币的交易所很早就出现了,最早交易所进行的是法币(国家发行的货币)与比特币之间的兑换。后来随着数字货币的种类越来越多,很多交易所也开始进行不同类型数字货币之间的兑换。交易所开展的不同类型数字货币之间的兑换,就是一种跨链价值转移的实现。严格来说,币币交易所就是一个跨链技术的实现。
由于不同的币种在不同的区块链上。而区块链本身又是为了解决信任问题而产生的,那么不同的区块链间的用户如何确保自己的权益不被损害?
Alice要找Bob把比特币兑换为以太币,如果Alice把比特币转给了Bob,而Bob没有把以太币转给Alice,该怎么办?
这时,交易所的另一个作用就显现出来了:利用自身的信用来提供兑换交易时信任的传递。具体操作方法来说,通常就是Alice把比特币转给交易所,Bob把以太币转给交易所,然后交易所再把以太币转给Alice,比特币转给Bob。通过交易所中间代持一次数字货币,实现信任的传递,使得Alice和Bob之间的交易能够进行下去。整个信任的传递就是Alice信任交易所,Bob信任交易所,于是Alice和Bob之间建立了信任。
但是,这里又诞生了一个新的问题。交易所也是由某个人或者机构运行的,他的信用足够吗?
交易所会不会带着Alice和Bob的比特币和以太币直接跑路?
答案是:真的有可能耶!
单个人或者机构的信用都不足以支撑大额交易。因此,出现了无中心交易所技术——用区块链技术解决跨链时的信用难题。
当交易所由多个主体共同运行,或者干脆是一个公有链,任何人都能参与到这个交易所的运行中,那么,跑路的风险就大大降低了。
于是,引出了无中心跨链技术的一个难题:怎么让多个主体来共同控制一个账户?
针对不同的区块链,存在不同的解决方案。绝大部分区块链都支持多签名的钱包,利用多签名钱包可以实现这个任务。另外,还可以通过密码学办法,利用分组计算,实现私钥的拆分,进而实现多个主体通过投票方式来控制一个账户。这个问题已经属于技术上非常复杂的问题了,感兴趣的同学,可以去看相关跨链技术的源码。
币界网报道:
“如果世界上只有一条区块链,也许不需要跨链;然而我们拥有的,却不仅仅是一条区块链。”
1969年,互联网(internet)诞生,随着联网通信协议的异构、联网设备数量的增加,跨网互操作成为趋势;于是TCP/IP协议出现,使得能够跨越不同子网、互联互通的互联网(Internet)最终成为全球性基础设施。
2000年,数据中心概念开始走热,随着IDC机房数量和规模的快速增长,跨数据中心互操作成为趋势;于是软件定义广域网(SD-WAN)技术被跨数据中心的网络互连和资源调度。
2006年,云计算概念正式提出,随着云计算产业快速发展、上云上平台用户不断增加,跨云互操作成为趋势;于是混合云及多云解决方案出现,用户可以选择在不同云平台间切换;
2008年,第一条区块链——“比特币”悄然诞生。截至2020年,根据加密货币行情网站CoinMarketCap统计,仅各类加密货币类区块链系统就已超过5600种(不包括联盟链和私有链实现);而开源社区Github上涉及区块链项目的数量达到6万多个。“万链共存”,使得跨链互操作再次成为趋势,将通过解决不同区块链系统中资产、数据和业务的互操作,构建互联互通的全球规模化区块链产业生态。
一、跨链的概念
目前,全球学术界和产业界都在对区块链跨链互操作开展研究。从技术维度和应用维度出发,研究者们给出了不同的定义。
技术维度认知:美国国家标准技术研究所(NIST)认为跨链偏重于数据共享,“一个互操作区块链架构是由可区分的区块链系统组成,每个区块链系统代表一个唯一的分布式数据帐本,其中执行原子交易可能跨越多个异构区块链系统,并且记录在一个区块链中的数据可以被另一笔外部交易以语义兼容的方式访问、验证和引用。” 澳大利亚天主教大学(ACU)认为跨链更强调功能的触发和执行,“跨链互操作不是将状态直接更改为另一个区块链系统;相反,是在另一个系统上触发一些功能集,而这些功能集有望在其自己的网络内执行操作。”
应用维度认知:以太坊创始人Vitalik认为跨链是一种具体应用能力,“区块链互操作主要指两条区块链之间进行资产转移、支付或信息交互的能力。” 法国里昂第一大学(UCBL)研究者认为跨链应用范围不仅限于区块链间,“区块链的互操作性有三种类型,一是不同区块链之间的互操作性,二是使用同一区块链的去中心化应用(DApp)之间的互操作性,三是互操作性区块链和其他技术(例如与企业系统的集成)”。
二、跨链的场景
跨链技术应用场景主要包括三个方面,即资产互换与转移、数据共享、业务协同。
1. 资产互换与转移
诸多的公链项目诞生了数量庞大的数字资产,不同数字资产之间如何交易和兑换,一直都是跨链技术重要应用场景。资产的互换与转移包括公链数字资产(通证)互换、联盟链或者私有链链下资产数字化上链后的资产互换或者转移。这里的链下资产可能包括黄金、石油这些有形资产,也可能是证券、股票这些无形资产。随着区块链应用场景的延展和联盟链的高速发展,数字资产之间互换已经不能满足人们对区块链技术寄予的期待,国家数字货币为代表的主权公链以及传统资产上链为代表的商业联盟链的出现,对跨链需求中资产互换提出了更细致的需求。
2. 数据共享
这里的数据包括存证数据、数据操作的链上凭证等存储在链上的证据数据,及索引数据、原始数据等存储在链下的检索数据。不同于传统数据共享时系统可以容纳的海量数据,区块链系统中存储的数据需要由区块链完成背书。但由于不同区块链系统的数据格式、存储方式、背书方式等存在差异,导致存证和凭证数据无法在不同系统中互认。
3. 业务协同
指在不同区块链系统相关业务场景下实现业务数据的共享、业务逻辑的互联、业务范围的互补。随着联盟链不断的发展,承担相同业务能力的企业级联盟链数量逐渐增加,同一业务场景下的业务数据、业务逻辑和业务范围被割裂在不同价值体系的区块链内,亟需扩展不同区块链的业务协同能力。
三、跨链的技术
跨链技术的关键问题研究,如图1所示,可以分为两条路径:
1. 双链互操作
跨链事务管理。跨链事务是指由若干个在各自所属区块链系统中的子交易所组成的一个完整跨链交易。简单来说,就是完成一次跨链所有相关方操作的总和。之所以要进行跨链事务的管理,主要是保证跨链交易的原子性和一致性。原子性指一次完整跨链交易所有子交易要么都发生、要么都不发生,不能只发生一部分;一致性指整个跨链系统中,不同区块链系统间需要保证存储数据一致性。如果一次跨链交易不能满足原子性和一致性,将出现两条链状态不一致,例如A链已经确认和B链相关交易,但B链却没有完成此笔交易,那么A链就将产生损失。
交易验证机制。跨链交易真实性和有效性验证可以分成三个阶段:跨链数据传输阶段、原链对交易的确认阶段以及接收链对原链确认后的交易验证阶段。在跨链数据传输阶段,需要获取/收集原链的数据,保证数据完整性和可验证性;在原链对交易的确认阶段,原链的共识效率影响了跨链交易最终确认的速度(例如比特币的交易要等待6个区块才能大概率确认,这种类POW算法具有概率确认性,但是类PBFT或者类DPOS算法可以较快完成最终确认性)。在接收链对原链确认后的交易验证阶段,接收链对原链已经确认过的交易进行验证,从而判断原链声称的跨链交易的真实性和存在性。
2. 多链互操作
多个区块链系统如何同时实现互联互通是跨链互操作关键问题。一是区块链网络,依照自上而下的设计原则,重点设计网络交互协议及交互模式,试图构建通用跨链协议实现区块链的“互联网”,未来符合网络协议和跨链标准的区块链可以实现无缝接入,例如Cosmos的跨链传输协议,帮助多链之间实现区块链机制层级互操作;二是跨链平台,依照自下而上的设计原则,重点研究已有区块链系统特性,开发能实现多链互联的中间件,例如趣链跨链网关和区块链适配器,或者波卡平行链等,帮助多链之间实现区块链语义层级互操作。
四、跨链的实践
为打破不同区块链体系的价值壁垒,近年来,国内外知名区块链团队纷纷发力跨链项目。
1. 国际跨链平台
Cosmos跨链平台:由Tendermint团队于2017年发起,并于2019年3月上线主网。Cosmos项目注重不同区块链间的连接,重点开发跨链传输协议(Inter Blockchain Communication,IBC),试图规范链与链之间的通信标准,目前已经完成78%工作量。
Polkadot跨链平台:由Web3基金会于2016年支持发起,并于2020年5月发布主网候选链。Polkadot项目注重区块链主链能力,试图打造一条“全能”区块链用于统一管理各链的运算和共识,这种异构多链交互架构可以让接入的区块链更关注自身业务能力发展。
2. 国内跨链平台
Wanchain跨链平台(万维链):由网录科技于2017年孵化,并于2018年1月上线主网。万维链注重为不同区块链系统提供资产互换或转移,采用异构链的跨链框架,结合安全多方计算和门限秘钥共享技术,缓解验证人中心化问题。
BitXHub跨链平台:由趣链公司于2019年发起,并于2020年3月开源核心代码。BitXHub项目注重通用跨链传输协议(IBTP)开发,通过在中继链部署交易验证引擎,结合交易验证规则注册机制,提供可插拔的跨链验证机制。在跨链数据传输和异构链适配方面,BitXHub项目设计多层级路由架构和跨链网关,实现跨链交易数据的高效路由。
Wecross跨链平台:由微众公司于2020年发起,目前代码已全部开源。Wecross项目注重于通用的网络交互协议及统一的交互模式研究,提出异构链互联协议(HIP)和通用区块链接口(UBI),实现主流块链平台间的简单适配和快速连通。
可信跨链平台(BCP):由百度公司于2020年推出,目前已开源非事务写入性跨链方案。BCP支持在合约代码中使用“跨链原语”,让链与链轻松对接,特别关注跨链寻址协议及链名解析合约的开发,为不同链上的资源分配地址,实现不同区块链资源快速定位。
如表1所示,主流跨链平台集中出现于2016-2020年间。在跨链事务管理方面,国内平台多已推进实现计划,后期将逐步支持事务性跨链功能;在交易验证机制方面,多采用类似超级账本的背书机制或默克尔证明;在多链互操作方面,链间的消息传输协议和中继链跨链能力是开发重点,且大多数平台支持异构链的跨链。
表 1 国内外跨链平台对比分析
五、跨链的趋势
跨链应用场景单一,业务协同是目标。当前已完成开发或开源的跨链方案主要是以资产互换或转移为主,但在基于区块链的加密数字货币类系统中受到底层经济价值模型的复杂逻辑干扰,在非代币类的区块链系统中难以满足应用需求,导致跨链并没有实现大规模推广。未来实现不同链间的数据共享和业务协同,将是跨链未来应用场景落地的主要目标。
技术路线尚未统一,融合发展是趋势。发展初期,跨链技术实践的侧重点有所差异,一部分跨链项目(例如Cosmos)更强调跨链协议开发,另一部分跨链项目(例如Polkadot)更侧重中继链能力提升。侧重点差异实际上反映了跨链平台建设者的认知不同,充分融合跨链系统两大关键元素是未来真正实现跨链互通的必然选择。
项目开发进展延期,技术挑战是关键。跨链平台建设自2016年大规模发起以来,目前除了少数用于资产互换或转移类的平台实践取得了初步进展,其他具体应用场景尚未完成事务性跨链方案发布或者开源。未来各项目竞争点主要在于事务性跨链能力的落地实现。