浅谈跨链技术之BaaS跨链子平台
发布于 2021-10-18 06:51
前言
在之前的“浅谈跨链技术”系列中,介绍了催生跨链技术产生的原因,并分别针对公证人机制、哈希锁定和侧链/中继链三种方式进行简要分析。目前,跨链难题的存在主要有两个原因:
一方面是早期区块链设计自身就没有跨链的模块,也就是类似电脑不带网卡。
另一方面是现在某些区块链只支持特定协议的区块链跨链,对于异构链跨链的应用场景无法提供支持。跨链子平台需要解决的本质问题就是跨链交易的捕获、验证和路由问题,也就是跨链服务应该能够将跨链消息从一个区块链传递到另外一个区块链,同时能够让目的区块链正确验证跨链消息的合法性并执行相应的跨链动作。
下面,让我们开启BaaS跨链子平台的“探索之旅”。
为什么设计成“网关+中继”
模式?
我们先来回顾一下常见的跨链方式:
哈希锁定,安全性高但是场景有限;
公证人机制:实现简单但是存在中心化作恶风险;
中继链的机制,具备分布式治理的安全性,目前仅有公链的实现且对异构链支持不够友好。
图1
如图1所示,结合现有的跨链解决方案和跨链的本质问题,跨链平台设计并使用了一种更加通用的链间传输协议IBTP(Inter-blockchain Transfer Protocol),并配合网关+中继链的架构模式实现异构区块链跨链交互,网关解决跨链交易的获取和提交问题以及负责和具体的应用链对接,中继链结合IBTP解决跨链交易的验证和路由问题。网关将链和链之间多对多的关系降维到一对多的问题,使功能解耦。
跨链交易是如何处理的?
跨链平台为尽量减少业务人员对跨链底层的感知,将跨链调用和单链不同合约之间调用保持一致,具体的调用流程如下:
业务系统使用SDK调用具体的业务链A的合约方法;
合约方法被执行,抛出跨链事件Ta;
业务链A的跨链网关监听到Ta, 将其转换成IBTP结构,提交到中继链上;
平台依据相关规则对Ta进行验证以及路由;
业务链B的跨链网关接受到Ta并根据IBTP结构进行解析,转换成业务链B可识别的交易Tb;
B的跨链网关将Tb提交到业务链B上进行执行。
如何保证跨链数据的真实性?
验证跨链数据的安全性以及有效性是跨链平台首要解决的问题。在跨链平台的设计中将IBTP中的Proof字段和对应的验证策略结合,这样既可灵活支持异构链,又保障跨链数据的可信验证。
如图2所示,IBTP需要把所有跨链交易提供的真实性证明内容序列化到Proof字段里,然后该IBTP消息被传递到中继链时,中继链使用注册的该Proof的验证规则对IBTP进行验证。
图2
举个例子,我们知道Fabric是基于背书策略进行交易确认的,跨链交易可以将相应的背书结果封装到Proof里面,最后平台的验证引擎依据Fabric之前注册进来的背书验证规则对Proof内容进行验证,从而保障相应跨链交易的真实性。
只要Proof和规则对的上,所有异构的区块链理论上都能够通过该模型验证跨链数据的安全性。
跨链交易的安全性如何保证?
参考上面IBTP结构图,可以看到传递到中继链的跨链交易核心数据是存储在Payload里面的。那么保护也就是针对该Payload的保护,针对跨使用环境的不同平台设计三种级别的数据隐私保护手段:
通过特殊序列化规则对跨链数据进行序列化,这种适合较安全互信的环境;
通过中继链两个跨链网关协商加密秘钥后,对跨链核心字段Payload进行加密;
采用隐私交易的方式,跨链交易完整Payload仅在指定的中继节点上存储,其他节点上相关字段仅保存Payload的哈希值。
接入跨链平台的应用链需要改
造吗?
由于跨链网关的设计采用插件的机制,将网关的核心功能与具体应用链对接的功能进行解耦,对于新的应用链仅需按照跨链网关的规则实现好与其对接的部分即可。
如何保证跨链交易的事务性?
整个跨链交易主要会在发起跨链的应用链A、中继链以及目的应用链B之间存在交互,他们之间的交易原子性和分布式事务所面临的问题类似。
传统分布式事务经典的实现模式是二阶段提交和三阶段提交,这两种实现方式复杂但是能够保障事务的实时一致性。这种实现需要有中心化的资源管理器,不适用这种分散式的跨链服务。跨链平台使用中继链保存了所有的跨链交易内容,采用了最终一致性的跨链事务机制,借助中继链的跨链事件表构建事务补偿机制。此种方式提高系统运行效率,同时保障跨链的安全性。
跨链效率怎么样?
从跨链平台的架构来看,单条跨链交易的时间分为应用链A的发起交易确认时间、中继链的验证时间以及应用链B的确认时间,平台针对跨链交易的特殊性做了效率上的一系列优化包括:
采用高性能的规则验证引擎,基于WASM(全称“Web Assembly”,基于验证规则对跨链交易进行有效性验证)构建验证引擎;
对于不同链之间以及不同合约之间的跨链交易的签名验证、规则执行等通过并行处理;
由于跨链交易的特殊性,其存储采用文件形式存储,加快存储效率;
使用高性能RBFT和NoxBFT共识算法,可达数万级别的TPS。
IBTP是什么?
IBTP目前在平台中主要指代一种通用的链间数据传输格式。IBTP以一种最简洁的方式定义了跨链消息的必要元素,包括用于路由的来源和目的链ID,用于控制交易顺序的索引信息,跨链合约调用的编码信息,用于验证的交易证明信息以及协议的版本。IBTP格式屏蔽了具体应用链之间的差异,同时支撑跨链交易的转换、验证、路由、调用核心机制。
随着跨链需求的逐渐成熟,跨链相应的标准也会更加完善并趋于稳定,区块链之间会形成类似TCP/IP的跨链协议。最终被广泛认可并采用的跨链协议是具体的跨链实现和场景相互选择的结果。跨链的未来应该如同今日的路由器,对于不同的场景可以选择不同的跨链服务进行连接。随着区块链应用场景在我行的不断丰富,跨链平台将助力业务打破“价值孤岛”,构建万链互联的可信互链网形态。
作者 | 杨玉冰
视觉 | 王朋玉
统筹 | 郑 洁
本文来自网络或网友投稿,如有侵犯您的权益,请发邮件至:aisoutu@outlook.com 我们将第一时间删除。
相关素材