密切关注本体动态的小伙伴们都知道,8月18日,由 Ontology 与 Neo、Switcheo 共同发布的全新跨链互操作性协议 Poly Network 主网正式上线,可帮助数据和价值在多个异构区块链(公有链、联盟链、私有链)间自由传递。本期技术视点将继续带领大家解析跨链互操作性协议 Poly Network。
Part I
异构链跨链协议难点
Part II
Poly Network 跨链协议架构设计
本篇技术视点为下篇,既上篇聚焦了跨链互操作性协议普遍面临的跨链信息有效性、安全性和事务性等技术难点之后,下篇阐释 Poly Network 的架构特点,从跨链架构的特性、角色、模块、交互流程和信息安全性五个方面切入,细致讲解Poly Network如何实现安全、易用、高效的跨链体系。
3. Poly Network架构设计
为解决跨链信息的有效性、安全性和事务性等问题,Poly Network 设计了一套轻量级异构链的跨链协议,本架构采用双层结构设计,使用一条中继链作为跨链协调器,多条异构链作为跨链事务执行器,Relayer 作为跨链信息的搬运工,通过解决跨链信息的有效性、安全性和事务性等问题,实现了一套安全、易用、高效的跨链体系。
1.跨链架构特性
· 接入简单方便:对于不包含智能合约的链,只需要实现两个简单的模块;而对于包含智能合约的链,仅需要部署两本简单的智能合约;
· 同时支持同构链和异构链:对于已经支持异构链的协议,对应的同构链可直接入;
· 实现资产跨链的超集:跨链架构不仅可以支持资产类跨链,而且还可以支持任意信息跨链;
· 事务性支持:在跨链事务一致性问题上,不仅支持具有事务最终一致性需求的应用场景,同时还支持具有事务强一致性需求的应用场景,理论上可支持任意事务,并且可扩展到任意数量的链;
· 跨链协议安全可靠:本架构以密码学、共识算法、简化支付验证协议(spv)等为基石,各成员链可自行验证跨链交易的合法性,从而保证跨链交互的安全性;
· 支持异构链协议范围广:现已支持 BTC/ETH/NEO/Ontology/Cosmo-SDK 等异构链及其同构链。
2.跨链架构角色
跨链架构主要包含如下三种角色:
多链架构协调器-中继链:
中继链负责成员链和 Relayer 的注册、治理、跨链消息验证、跨链信息标准统一等事宜。成员链可以是与中继链架构相同的同构链,也可以是与中继链架构不同的异构链。保证了中继链与成员链之间、成员链与成员链之间具有足够的解耦性,只需部署相应的跨链合约即可能完成跨链交互;
多链架构执行器-成员链:
成员链为整个多链架构执行器,主要用于执行具体的跨链逻辑,跨链模块或智能合约主要部署在各个成员链,若成员链希望与中继链产生跨链交互,成员链需要向中继链进行注册,等待中继链治理委员会审核通过后即可激活与中继链或者其它成员链间的跨链交互;
跨链信息搬运工-Relayer:
Relayer 为跨链信息的搬运工,主要用于在中继链和成员链间搬运跨链数据,若Relayer 希望在中继链于成员链间搬运跨链数据,Relayer 链需先向中继链进行注册,等待中继链治理委员会审核通过后即可激活与中继链或者其它成员链间的跨链信息的搬运;
3.跨链架构模块
跨链架构模板主要包含如下三种:
· 多链管理合约(CCMC):主要负责成员链和 Relayer 的注册、治理、退出等事宜。跨链管理合约部署在主链,成员链不需要部署该合约;
· 区块头同步合约:在中继链和成员链跨链交互过程中需要进行关键区块头信息的同步,以验证跨链交易的合法性。区块头同步合约部署在中继链和每一条成员链上;
· 跨链管理合约:所有跨链交易都由源链上的跨链管理合约来进行统一管理,dApp 开发者无需关心具体的跨链逻辑,只需调用跨链管理合约的统一方法即可实现跨链。跨链管理合约部署在中继链和每一条成员链上。
4. 跨链交互流程
1. 跨链事务最终一致性交互流程:
· 用户调用源链的跨链智能合约,等待源链跨链交易落账,Relayer 将监听源链的跨链信息并将必要的信息传递到 Poly Chain;
· Poly Chain 接收到 Relayer 同步过来的跨链信息后,会验证跨链信息的合法性,验证通过后会统一源链的状态信息并生成相应的跨链信息由 Relayer 传递到目标链;
· 目标链接收到 Poly Chain 传递过来的信息后,会验证该信息的合法性,验证通过后会调研目标链上的跨链合约,至此,跨链交互完成。
2. 跨链事务强一致性交互流程:
· 用户从源链发起一笔跨链交易,并生成相应的跨链消息由 Relayer 传递到 Poly Chain;
· Poly Chain 在接收到该跨链消息后解析该消息,并由 Relayer 传递到相应的多个目标链上,Prepare 阶段开始;
· 各目标链接收到对应的跨链消息后首先验证该跨链消息的合法性,验证成功后执行该跨链消息并产生一定的执行结果由 Relayer 返回 Poly Chain,Prepare 阶段完成;
· Poly Chain 在接收到多个目标链的消息后先验证跨链消息的合法性,并将跨链消息归集后由 Relayer 传递给各个目标链,Commit 阶段开始;
· 各目标链接接收到对应的跨链消息后先验证该跨链消息的合法性,验证成功后执行该跨链消息并落账,Commit 阶段完成,至此,跨链交互完成。
5. 跨链信息安全性
跨链管理合约根据 Relayer 提交的跨链消息中包含的 Merkle Proof 证明该跨链消息的合法性,而该消息的证明需要对应的状态根信息;
跨链管理合约会从区块头同步合约中或者对应高度的状态根,由于该状态根是经过成员链共识节点签名的信息,当该状态根信息本同步到区块头同步合约时,合约会验证该签名信息的合约性,若合法则将该状态根和高度存储在持久化存储中;
跨链管理合约获取了合法的状态根和该状态的 Merkle Proof 从而证明了跨链消息的合法性。
4. 结语
未来,Poly Network 将设计更完善的经济激励模型及治理机制,扩展理事会成员,并进行更多异构链协议的支持,解决更多异构链间任意信息跨链。