区块链跨链方案分析
区块链跨链技术总结
分类:
- 系统内部跨链
- 系统间跨链
主要方案:
- 公证人机制
- 侧链与中继机制
- 哈希时间锁定机制
- 分布式私钥控制技术
较早出现的 BTC-Relay 使用侧链技术来实现区块链数字资产之间的单向跨链。Ripple 提出的跨链价值传输协议 ILP 采用哈希锁定的方案来解决跨账本之间的支付问题。Cosmos 和 Polkadot,则关注如何建立通用跨链开发框架,分别提出了 Tendermint 和 Substrate 的开发框架,它们的跨链核心设计是基于中继链的思想。
公证人机制
中间人机制即为一个团体或一组团体同意原子性地执行链 A上账户数字资产的减少以及链B上接收账户数字资产的增多,此团体是 A 与B 信任的
通过选举一个或多个组织作为公证人,对链 A 的事件进行自动或请求式监听,并在指定事件发生后,在链 B 执行相应动作,实现对事件的响应
侧链/中继
侧链机制: 即某链可以验证和读取另一条链上所发生事务的事件.
侧链中继机制为中继链,其不仅作为应用链的侧链,还负责跨链消息的验证与转发.
以轻客户端验证技术为基础,即:在链 B 上执行类似区块链轻客户端功能的智能合约,通过验证链 A 的加密哈希树(cryptographic hash tree)以及区块头(block header)来验证链 A 的某项特定交易、事件或状态信息是否发生
侧链模式中有两种模式可以充当连接方,分别是托管模式和SPV模式
- 托管模式是一个由可信任的第三方机构来锁定、监管双方资产的模式
- SPV模式是一种用于证明交易存在的方法,通过少量数据就可以验证某个特定区块中交易是否存在(默克尔树)
哈希锁定
代表作:闪电网络中的“哈希时间锁定合约”。
哈希时间锁定机制的核心思想为: 在规定时间内提供与哈希值对应的原内容解冻资产.
通过在两条链上运行特定的智能合约,实现跨链交易与信息交互.用户 A 生成随机数 s,并计算出该随机数的哈希值 h=hash(s)发送给用户 B;A 和 B 通过智能合约先后锁定各自的资产;如果 B 在X 时间内收到正确的 s,智能合约自动执行将 B 的资产将转移给 A,否则退回给 B;如果 A 在 2X 时间内收到随机数 s,A 的资产将自动转移给 B,否则退回给 A.
分布式私钥控制技术
分布式私钥控制技术中的私钥由用户与去中心化网络共同管理,跨链时锁定原链资产,在目的链上发起智能合约,创建新的资产.
顾名思义,就是采用分布式节点来控制区块链系统中各种资产的私钥,将数字资产的使用权和所有权进行分离,使得对链上资产的控制权能安全地转移到非中心化系统中,同时将原链上的资产映射到跨链中,实现不同区块链系统间的资产流通和价值转移。
主要场景是:当一种已注册资产由原有链转移到跨链上时,跨链节点会为用户在已有合约中发放相应等值代币,确保了原有链资产在跨链上仍然可以相互交易流通。以Fusion为例
- 用户首先向 Fusion 发出锁定资产的请求
- Fusion 根据用户请求生成分布式密钥和锁定(Lock-in)资产的地址。
- Fusion 将生成的 Lock-in 地址发送给用户,用户便可将资产转入地址中。
- Fusion 锁定地址和对应的密钥并更新验证用户的资产。
实际案例:
Cosmos
趣联科技BitXHub跨链平台
微众银行WeCross跨链平台
以上都是基于侧链/中继方案的跨链解决方案。
Cosmos
Cosmos 的愿景是让开发人员轻松构建区块链,并通过允许他们彼此进行交易(通信)来打破区块链之间的障碍。
其主要包含三部分:
- Tendermint 是一个共识引擎和 BFT 共识算法。 在 Tendermint 之上可以使用任何编程语言构建一个状态机,Tendermint 将负责信息的(按照共识要求的一致性和安全性)
- Cosmos SDK 是一个模块化框架,用来简化构建安全的区块链应用。
- IBC 是区块链之间的通信协议,可以被认为是区块链的 TCP/IP。
IBC
IBC 利用 Tendermint 共识的“即时最终性”,以允许异构链之间相互转移价值(如 token)或数据。
为了与 IBC 兼容,区块链只需要遵循几个要求,主要是共识层必须具有快速的最终确定性。 工作量证明链(如比特币和以太坊)不属于这个类别,因为它们的确定性是概率性的。
案例:以链 A 上的一个帐户想要发送 10 个 ATOM(假设是 ATOM )到链 B 为例
跟踪
链 B 会不间断地接收链 A 的报头,反之亦然。 这允许每个链跟踪其他链的验证者集合。 从本质上讲,每个链运行一个其他链的轻客户端。
锁定
当 IBC 转移被启动时,BTC 被锁定(Bonding)在链 A 上。
中继证明
然后,需要一个从链 A 转移到链 B 的 10 个 ATOM 被锁定的证明。
验证
链 B 上针对链 A 的区块头的证明进行验证,如果有效,则在链 B 上创建 10 个 ATOM 凭证。
Cosmos网络
Cosmos 提出了一个模块化架构, 其中包含两类区块链: Hubs 和 Zones。
Zones 是常规的应用链, Hubs 是专门为将 Zones 连接在一起而设计的中继区块链。
简洁回顾下 Cosmos 三个要点:
Cosmos 通过 Tendermint BFT 和 模块化的 Cosmos SDK 使区块链易于开发。
Cosmos 使区块链能够通过 IBC 和 Peg-Zones 相互转移价值, 同时让它们保留主权。
- Cosmos 允许区块链应用通过水平和垂直可扩展性解决方案可支持数百万用户。
BitXHUb跨链平台
基于IBTP链间传输协议。
主要组成部分
- 中继链(Relay-chain):中继链主要用于数字身份管理、应用链管理、跨链交易的可信验证与可靠路由以及跨链 Dapp 治理,是一种实现 IBTP协议的开放许可链; (信用保障链)
- 跨链网关(Pier):跨链网关担任着区块链间收集和传播交易的角色,既可以支持应用链和中继链之间的消息交互,也可以支持中继链与中继链之间的消息交互; (类似轻节点 + 路由)
- 应用链(App-chain):应用链负责具体的业务逻辑,分为:
- 1)同构应用链(支持 IBTP 协议的区块链),具有类似的区块结构和交易数据存储格式,并具有相同的共识算法和加密机制等,如趣链联盟链平台。
- 2)异构应用链,是指不直接支持 IBTP 协议的区块链,例如 Fabric、以太坊等。
核心流程
IBTP协议
主要是重新封装一个通讯协议结构,其中比较重要的是Proof 字段存储了跨链交易合法性证明,为中继链跨链验证引擎提供具体的验证信息。Proof 字段内容根据来源链的不同而不同,具体验证规则可通过动态加载的方式注册到跨链验证引擎。
应用链的异构与否导致的 IBTP 结构差异主要体现在 Proof 字段上,Proof 是跨链交易合法性的一个凭证。
以Fabric为例:其中 Proof 字段包含的 Hash 字段是 Fabric 中 chaincode 执行结果的摘要,Signature 字段则是背书节点对 Hash 字段的签名数组,而对应的背书节点的证书信息已经在应用链注册时登记到中继链中。
中继链
中继链主要用于数字身份管理、应用链管理、跨链交易的可信验证与可靠路由以及跨链 Dapp 治理。
中继链本身需要提供跨链交易的合法性证明,所以其存储结构比传统区块链多了一个由跨链交易构成的 Merkle Tree。
其他细节:消息验证、交易路由、事务管理机制、中继链自治等就不再详细展开,详见白皮书和论文。
跨链网关
本质上来说,Pier 是一种连接不同区块链系统的交互组件,在 BitXHub 中可以充当两种角色:
- 连接应用链和中继链。
- 连接不同的中继链。起到”路由器”的作用。
核心结构功能(类似轻节点)
- 监听相应区块链上的跨链事件并传给核心模块进行处理
- 执行来自于其他区块链的跨链请求
- 能够查询相应区块链上已收到和已执行的跨链请求状态
其他
- 链原生支持数字身份能够实现身份在多条链间的互通互认,可以更加方便地实现以身份为中心的数字资产在不同链间的可信流转。(一种支持多链共用的密码数字身份)
- 在数字资产跨链场景下,对安全的进一步加强的解决方案。
WeCross跨链平台
体系抽象架构
数据层:
跨链交互的核心是数据在链间的流动,数据层的抽象就尤为重要。跨链涉及的数据维度包括区块、交易、合约、消息等多个方面。WeCross 以满足跨链基本要求为前提,提炼通用区块数据结构,将交易、合约和消息等抽象设计成资源类型,为资源设计通用的寻址协议。
交互层:
不同业务场景有不同的跨链交互模型,基于抽象数据层,WeCross 建设通用区块链适配与路由中继网络,结合标准默克尔证明机制,实现跨链交互层抽象设计。
事务层:
基于数据结构和交互的抽象层,实现跨链事务效果。目前支持两类机制:两阶段事务和哈希时间锁定事务。
通用区块链接口:本着“求同存异”、“聚焦最大公约数”的基本思路,设计统一的资源范式,对主流区块链的关键数据结构
进行提炼,设计普适跨链场景的抽象区块数据结构,为异构区块链的交互建立数据协议一致的基础,实现“一次适配,随处可用”的效果。
异构链互联协议:通过分析主流区块链平台交互方式的共性点,提炼一种通用的区块链接入范式与跨链交互模型,区块链平台之间进行少量适配对接,就可以实现异构链之间的跨链交互
可信事务机制:解决数据可信问题(默克尔树)和交易事务性的问题(两阶段提交)
系统架构
跨链分区:运行着同一类业务的区块链集合。WeCross 可以对这个区块链集合本身和内部的区块链资源进行命名和寻址。如:存证分区。
跨链路由:指用于桥接业务系统与区块链的服务进程。多个跨链路由之间可以相互连接,相互转发请求。用户通过向跨链路由发起请求来访问跨链分区中的资源。
跨链适配器:连接一个区块链的接口实现,可由跨链路由加载。跨链路由可以配置多个区块链适配器,达到连接多条区块链的效果。
跨链资源:指区块链上的智能合约、数字资产等用户可访问的数据对象。类似于区块链适配器的配置信息,跨链资源的元信息也在跨链路由之间同步。用户通过统一的接口对跨链分区中的资源进行寻址和调用。
核心流程
与传统的区块链交易处理流程相比,WeCross 跨链路由除了传输交易和回执的信息,还额外传输交易和回执的默克尔证明,交易的发送方使用这些证明来进行跨链数据访问的可信验证。
其他
- 通用区块链接口设计 :统一资源范式 、抽象数据结构
- 异构链互联协议
- 可信事务机制:数据互信、跨链交互
- 多边跨域治理
参考:
区块链跨链技术进展研究 - 李芳
区块链跨链技术发展及应用研究综述 - 何帅
跨链技术发展综述 - 徐卓嫣
BitXHub:基于侧链中继的异构区块链互操作平台 - 叶少杰
https://www.pseudoyu.com/zh/2021/09/09/blockchain_crosschain_bitxhub/