跨链技术是解决不同区块链间协同操作、实现价值互联网的关键。简单来说,跨链就是实现一个链到另一个链的通信协议。目前,本体跨链方案已经在测试网运行。本文就本体跨链设计进行初步分析。
其它跨链技术简析
介绍本体跨链设计之前,我们先比较一下几个热门的跨链解决方案的特色,分析一下它们是如何实现跨链的。
Plasma:以太坊中热议的链下扩容方案 Plasma,它通过把交易转移到更快拥堵更少的侧链来提高其可扩展性。该方案不需要修改区块链底层协议,而是通过复杂的工作转移到链下完成,并在需要时将链下的计算结果提交到主链上保证其安全性。
Cosmos:Cosmos 则是 Tendermint 团队开发的一个支持跨链交互的异构网络。网络中第一个区块链是Cosmos Hub,也就是 Cosmos 主网,其他的并行链称为Zone,Zone 通过 IBC 协议与 Hub 进行跨链操作。在 IBC 协议设计里,两个链建立连接之前需要进行彼此注册,并保存对方链验证者集合以及相关 Merkle 证明,以证明跨链消息的正确性。同时,不同的 Hub 连接下的 Zone 也可以通过 Hub 路由的方式进行交互。
Polkadot:这是由原以太坊主要核心开发者Gavin Wood 推出的可伸缩性的异构多链系统,主要解决区块链拓展性问题。在 Polkadot 看来,其它区块链都是平行链,Polkadot 通过中继链技术能够将原有链上的 token 转入类似多重签名控制的原链地址中,对其进行暂时锁定,在中继链上的交易结果将由这些签名人投票决定其是否生效。它还引入了钓鱼人角色对交易进行举报监督。通过 Polkadot 可以将比特币、以太币等都链接到 Polkadot 上,从而实现跨链通信。
本体跨链设计初探
为了解决区块链的信息孤岛问题,本体推出全新的轻量级、低耦合、安全可靠的多链体系和跨链解决方案。该解决方案以本体链为主链,同时支持同构侧链和异构侧链,并允许主链与侧链、侧链与侧链之间的交互。当需要连接不同结构的链时,dApp 可以通过调用跨链管理合约来完成跨链操作。
图:本体跨链网络体系
本体链网体系支持主链和侧链之间、侧链和侧链之间的跨链交互,其跨链设计主要包括如下几个模块:
图:本体跨链网络体系
1. 多链管理合约
★主要负责侧链的注册和管理,包括侧链注册和退出,侧链状态管理,侧链 ONG 抵押管理,侧链资金池管理,验证人信息变更等;
★侧链需要在注册时向主链的多链管理合约中提交该侧链的创世块区块头、共识切换周期等基本信息。同时,侧链需要将主链的当前关键区块头信息初始化在自己的区块头同步合约中。另外,侧链在向主链注册时需要抵押一定量的 ONG 防止其作恶(若是可信侧链,也可不抵押 ONG);
★注册后会为子链分配子链 ONGx 总发行量的资金池,每次向子链的资产转移都会消耗资金池的容量,相反会释放资金池的容量;
★子链的退出需要有段时间的挑战期,挑战期内用户可以将 ONGx 换回 ONG,如发现无法换回,可以提交子链作恶的证据。挑战期结束子链退出并赎回质押。
2. 区块头同步合约
★跨链交互需要跨链交易的相关合法性证明,跨链交易在跨链管理合约中被放入merkle tree中,同时 merkle root 被放入区块头中;
★因此跨链交互过程中需要进行跨链区块头信息的同步,获取 merkle root,以验证跨链交易的合法性;
★为了验证获取到的跨链区块头的合法性,需要验证对方链共识节点的签名,而为了获取对方链共识节点列表,需要同步对方链的关键区块头(也就是共识切换的区块);
★侧链和侧链的交互过程中,双方将直接从主链上取得对方的关键区块头信息。
3. 跨链管理合约
★所有跨链交易都由跨链管理合约来进行统一管理;
★跨链管理合约负责为每一笔跨链交易分配一个自增 ID,并在完成时标记该 ID 已消费,还负责将跨链交易放入 Merkle Tree,而 Merkle Root 会被放入当前区块的区块头中。同时,在发起跨链交易时,用户需要将一部分 ONG 作为矿工费用销毁或冻结。
4. ONG(x) 合约
★系统资产合约,该资产可以实现跨链转移,并可以作为交易手续费和跨链交易矿工费,资产锚定主链 ONG;
★主链 ONG 合约添加了跨链资产锁定,解锁功能;
★侧链 ONGx 合约添加了跨链资产增发,销毁功能。
5. dApp 合约
★任意本体开发者开发部署的 dApp 合约,此合约除了正常的业务逻辑,还调用了跨链管理合约的跨链方法来实现跨链。是跨链 dApp 生态中的链上部分。
★dApp 开发者无需关心具体的跨链实现,只需调用跨链管理合约的统一方法即可实现跨链。
6. 信息状态同步者 Relayer
★一个状态信息同步程序,持续监听跨链管理合约的跨链请求和某些关键区块,监听到后进行跨链交易或者关键区块头的同步工作来获取矿工费。
★任何人都可以无需注册加入网络成为 Relayer,并赚取自己的矿工费。
后记
在以后的本体技术视点文章中,将给大家带来更多关于本体跨链设计的具体细节。
目前,本体跨链测试网已经上线,也提供了详细的跨链使用教程和多链开发手册,希望广大技术爱好者来体验本体跨链测试网络。多链开发手册:
https://github.com/siovanus/documentation/blob/master/multichain/Testnet_Dev_Manual.md
跨链使用教程:
https://github.com/siovanus/documentation/blob/master/multichain/Tutorial_Case.md