文章目录
一. 论文概述
要点:提出交互式区块链架构,创建router blockchain 用于维护包含的区块链系统的路由信息,使异构区块链系统进行互操作
贡献:
1.异构区块链连接
2.不需要第三方协议
3.通过并行执行事务提高吞吐量
系统架构图
这里我们主要关注Multi-chain Communication layer
二.The inter-blockchain connection model
上图为the inter-blockchain connection model架构 ,创建了一条Router Blockchain,由一组Router nodes组成,每一个Router node管理对应的一条链,负责链与Router node,Router node与Router node 之间的信息传递(一旦路由信息更新,所有路由器节点会在新的路由表达成共识)
路由器区块链系统记录每个参与块链的验证地址。 当链A与链B之间产生交易时,链A可以与链B建立连接,根据路由器区块链中写入的路由信息传输数据。
Features of the inter-blockchain connection model
三.unified transaction fomat
这里了解到跨链交易的一个关键点:需要统一的交易形式
不然即使通过Router node可以实现异构区块链之间的连接,但是因为不同区块链的交易形式不一样,不能进行通信,这里提到的交易形式指的就是一笔交易在交易过程跨链发起方和跨链接受方需要记录的相关信息,因为是同一笔交易,所以必须统一交易形式,这在单条区块链内则不需要考虑,链内交易的形式必定是相同的。
本篇论文提出的transaction fomat如下:
因为统一了交易形式,所以需要对本地交易转化成标准跨链交易
本地交易和标准跨链交易之间转化过程定义为两个函数:
包函数(package):本地交易->链间交易
解包函数(unpackage):标准跨链交易->本地交易
四.跨链协议的设计
需要解决以下问题
1.交易发起方如何找到接收方,即如何找到目标链
2.完成交易后两条链必须保持相同结果,即数据必须在两条链上同步更新。
跨链协议本质是交易详细流程,下图为流程图:
1.区块链S1上的链间交易Ts1发送到路由器节点R1,执行package函数,Ts1->T(将链内交易转化为链间交易), R1将T发送到路由器节点R2,R2收到T,执行unpackage函数,T->Ts2(将标准链间交易转化为S2的链内交易),Ts2发送到区块链S2上。
2.收到Ts2后,S2进入预提交阶段,处理交易,核对余额,确认签名并一致化结果。 然而,在S1确认结果之前,结果不会被写入块。 然后通过Router blockchain将TS2的确认信号ACK发送到S1。
3.在S1获得确认信号ACK后,交易Ts1的结果将在提交阶段被同意并写入。 最后,S1将ACK信号发送到S2。
4.S2得到S1的确认信号,进入提交阶段,执行交易,交易T的最终结果被记录到链中。
以上是交易成功执行的情况,当交易无法正确执行时即交易失败,S2发送ACK=0给S1,S1收到确认信号后,回滚之前的全部操作。
五.回溯协议
为了避免数据丢失、数据传输错误或其他网络问题的干扰,设计重传策略。
关键:设置一个计时器,在规定时间内如果没有收到接收方回复,重新发送交易内容T(**最多三次,超过三次回滚之前所有操作# 系列文章目录
六.总结
本篇论文设计的跨链方案主要是通过Router blockchain来实现异构区块链的连接,通过统一的交易形式来实现异构区块链的通信,两者缺一不可。
七.跨链方案设计理解
跨链的本质就是如何将一个消息/交易安全可信的从Blockchain A发送到Block chain B。
1.消息的真实性证明:确认消息是否是确实存在链A上,是否是A发给B的消息。
2.消息的路由机制:如何让跨链消息安全跨系统路由,上述论文通过统一交易形式实现。
3.消息的有效性证明:有效性指的是A链的消息发送至B链时是否有效,即消息在发送过程中状态是否发送改变
4.消息执行结果证明:A链需要确认跨链交易是否成功,以及成功操作的相应响应,上述论文通过确认信号ack来实现。
5.跨链发起方的身份验证:如何保证交易过程跨链发起方身份没有发生改变,即是否存在有人冒充。
跨链接收方的存在证明:如何将消息发送到目标区块链上,目标区块链上的账户是否存在,即是否是假账户进行交易。
6.消息的生命周期:为了避免网络不稳定导致的交易失败以及防止被重复发送和利用,需要设定消息的一个生命周期,即开始条件和结束条件。上述论文通过回溯协议实现。