导读
接下来让我们一起走进今天的文章吧!
Cross-chain Oracle Based Data Migration
Mechanism in Heterogeneous Blockchains
作者:Zhipeng Gao、Hongli Li等
期刊:International Conference on Distributed Computing Systems (ICDCS)
时间:2020
DOI:10.1109/ICDCS47774.2020.00162

摘要
1
引言
1、背景
近年来,区块链技术备受关注,最初对比特币的兴趣引发了区块链技术的关注,随后引发了更丰富的讨论。区块链技术被认为是在多个不可信参与方方之间建立信任的关键促成者,它允许一组匿名和相互不可信的实体就一组交易达成共识。区块链技术本质上是一种分布式账本技术(DLT),它集成了p2p网络、密码学、分布式共识协议和智能合约。它具有去中心化、透明性、不可变性、匿名性和可追溯性等特点,已经成为各行各业关注的一个领域。
2、亟待解决的问题
3、我们的工作
我们的工作重点是如何实现两个异构区块链之间的互操作性,以及它们如何坚持执行具有保密性、完整性和隐私性的数据迁移。在这种情况下,我们提出了一个基于oracle的数据迁移体系结构。该架构包含三个组件:源区块链、目标区块链和跨链数据迁移oracle[2]。所提议的体系结构的简单草图如图1所示。

源区块链和目标区块链是分别是数据提供者和接收者。oracle充当可靠的公证人,负责接收用户的数据迁移请求,并在数据迁移过程中传递消息。数据迁移过程分为准备、执行和迁移三个阶段。预定义的条件是为后面的阶段做准备。然后两个异构区块链同时工作,生成执行阶段的提交数据和提交节点。在此基础上,最后进行迁移阶段,生成非对称密钥,保证迁移数据的机密性、完整性和私密性。综上所述,我们做出了以下贡献:
1、我们分析了交互式区块链架构在数据迁移中的应用。
2、我们建立了一个基于oracle的跨链数据迁移体系结构,提供了两个异构区块链和跨链oracle的详细信息。
3、在此基础上,我们设计了一个数据迁移机制,具体描述了oracle与两个异构区块链之间的通信过程。
本文的其余部分组织如下。第2节给出了交互式区块链架构的概述。第3节介绍了基于oracle的跨链交互式去中心化体系结构。第4节阐述了两个异构区块链交互中基于oracle的数据迁移机制。第5节阐明了实现区块链之间互操作性的跨链相关项目和研究。第6部分对全文进行总结。
2
交互式区块链结构
两个异构区块链之间的数据迁移涉及五个层次,有助于数据从一个区块链平滑地流动到另一个区块链。图2描述了五层体系结构,然后我们从下到上说明了每一层的功能,以及它们如何执行数据迁移过程。

数据层包括交易格式、数据块、链接模式等。不同的区块链不可避免地会有不同于上述特征。数据管理是区块链系统的一项基本任务[3]。源区块链中的数据生成器负责从数据块中提取信息数据并传送数据包,而在目标端,数据生成器用于解析数据包并将其写入区块链。然而,数据包和解析涉及瓶颈——交易格式。如果没有统一的数据格式,将很难促进数据迁移。一个简单但可行的想法是统一格式。格式将包含于请求资料中,将在第4节阐明。
网络层协助区块链中不同对等体之间的内部通信。为了实现实时可靠的通信,网络层常用P2P网络和gossip协议。gossip协议的可扩展性、容错性、去中心化、一致性使得区块链内部能够进行快速的对等通信和数据传输。只要内部通信没有中断,数据迁移机制就可以很好地执行。
共识层保证了区块链系统中状态的一致性。它包括实用拜占庭容错(PBFT)、工作量证明(PoW)和权益证明(PoS)等主流共识协议。这些协议的功能是在区块链系统中保持对等点之间的一致状态,因此使用了一个名为共识模块的联合名称来引用上述协议。
合约层最初被设计用来约束区块链系统的行为。智能合约[4]是嵌入在由区块链管理的计算机代码中的自动执行协议。该代码包含一组规则,根据这些规则,智能合约的各方同意彼此进行交互。它们可以用来形式化双方之间的简单协议——组织的章程[5]。但是,为了实现跨链互操作性,区块链内部的智能合约是不够的。在这种情况下,我们部署了一个oracle合约,它可以与链下oracle和内部智能合约交互。
应用层为应用程序和底层消息传输提供接口。当进行跨链数据迁移时,应用程序中的接口应支持底层网络的数据传输。
3
提议的数据迁移框架

1、数据迁移oracle
Oracle可以帮助从外部世界获取信息。通过这种方式,它向智能合约提供可以触发智能合约预定义动作的外部信息。更实际一些,oracle可以被视为连接现实世界和区块链的接口。有五种不同类型的oracle。
•软件oracle:处理来自在线资源的信息数据,如实时温度和天气;
•硬件oracle:直接从物理世界提取信息数据,例如可能用于供应链的传感器数据;
•输入oracle:提供外部世界的数据;
•输出oracle:使智能合约具有向外部世界发送数据的能力;
•基于共识的oracle:只使用一种类型的oracle可能是有风险和不可靠的,为避免造市和其他风险,可以组合使用不同类型的oracle。
在该体系结构中,oracle集成了输入oracle和输出oracle的特性。它用于将数据从一个区块链迁移到另一个区块链。oracle在该架构中的职责包括接收用户的数据迁移请求,使智能合约能够将数据发送到区块链之外,并向另一个区块链提供数据。
在数据迁移机制中发挥如此重要的作用,保证oracle的健壮性至关重要。它是一个第三方服务,不属于区块链安全机制的一部分,不支持公共基础设施。因此,“中间人”攻击会阻碍异构区块链之间的数据安全传输。在这种情况下,我们假设提出的oracle是可信的,并且可以抵抗来自外部的各种攻击。
2、源区块链
如图3右图所示,源区块链有4个以p2p的方式连接的节点、1个完整的区块链和共识算法。每个节点都有义务监听网络中发生的事件并采取相应的行动。在该体系结构中,每个节点不仅部署区块链智能合约,还部署oracle智能合约,用于与链下oracle进行交互。
联盟链中的节点更稳定,可靠性更高,可以保证一致性。从不同节点生成数据可以保持数据的一致性和完整性。由于区块链中的块处于传播过程中,很难保证每个节点都持有相同的副本。当多个节点同时操作数据时,如何在分布式环境下保证读写数据的一致性。以Paxos[6]算法为例,解决了上述问题。它用于在分布式环境中实现一致性。
图4描述了源区块链和数据迁移oracle之间的交互。oracle收到用户的数据迁移请求后,触发部署在区块链中的oracle合约,然后oracle合约向源区块链中的实际的智能合约发出请求。通过达成共识的过程,提交的数据被加密并传输到链下oracle。

3、目标区块链
目标区块链是表示数据的目的地的区块链,并将迁移数据写入区块链。与源区块链一样,目标区块链也是一个联盟链,可以在很大程度上保证节点和区块链的安全性和可信性。例如,如图3左边所示,3个节点负责监测发生的事件并将相关数据记录到区块链中。节点还部署了两个合约:oracle合约和目标区块链智能合约。区分源和目标区块链中的oracle契约是很重要的,它们在整个体系结构中扮演着不同的角色。
从源区块链接收数据后,必须选择一个绝对对等体来行使统计权利。在目标区块链中,共识算法的功能是选择一个值得信任的peer来赢得将数据记录到区块链的权利。例如,在目的地区块链中使用PBFT。该算法提供了活跃度和安全性,因为在总共n个副本中,最多(n-1)/3同时出现故障。这意味着客户端最终会收到对其请求的回复,并且根据线性化程度,这些回复是正确的。它可以允许系统在出现软件错误时继续正常工作。即使有恶意的peer,PBFT算法仍然可以很好地执行。
如图5所示,显示了离线oracle和目标区块链之间的数据传输。目标区块链智能合约向oracle合约发送请求,oracle合约从数据迁移oracle检索数据,并将数据发送回目标区块链中的智能合约。

4
提议的数据迁移机制
数据迁移的过程可以分为三个阶段:准备阶段、执行阶段和迁移阶段。在准备阶段,预先定义相关要求,为后续工作奠定基础。在执行阶段,两个区块链独立工作,产生提交数据和提交节点,保证数据的完整性和安全性。在提交迁移数据和目标节点时,执行迁移过程。在此过程中生成非对称密钥,以保证数据迁移的保密性。然后我们详细说明了数据迁移的各个阶段,如何实现区块链和跨链oracle之间的通信,以及在这一过程中需要传输什么。
1、准备
在这个阶段,需要设置相关的数据和预定义的环境。应该预先定义唯一标识的区块链并阐明oracle如何与区块链连接。
定义1:点对点区块链。
源区块链和目标区块链是两个独立的区块链,也称为点对点区块链,这两个区块链既不依赖于其他区块链,也不依赖于其他区块链的侧链。这两个区块链可以表示为:
定义2:跨链oracle
跨链oracle由从不同区块链中提取的不同交互引擎组成。所以oracle被表示为:
其中
2、执行
在此阶段,源区块链和目标区块链同时工作以加速数据迁移过程。在此阶段的最后,生成
定义3:跨链数据迁移请求
跨链数据迁移请求由用户发起并发送给数据迁移oracle。该请求可表示如下:
定义4:区块链中的节点
不同区块链中的节点可能扮演不同的角色。在Hyperledger Fabric中,节点可分为承诺节点、背书节点、领导节点和锚节点。轻节点和全节点在以太坊中也有区别。为简单起见,我们假设该体系结构中的所有节点都能够计算并存储我们使用的区块链中的所有信息,我们使用
3、迁移
提交数据和提交节点在执行阶段确定。我们将在此阶段解决数据迁移问题。重复使用非对称加密,以确保数据的完整性和机密性。
定义5:非对称加密
使用公钥加密的任何消息,如文本、二进制文件或文档,只能通过应用相同的算法,但使用匹配的私钥进行解密。任何使用私钥加密的消息只能使用匹配的公钥解密。此阶段生成三对密钥,密钥在每个过程中生效。
生成非对称密钥
生成
生成
定义6:提交节点
所述节点信息记为:
定义7:已提交数据和已定义数据
这一阶段包含两种类型的数据。已提交的数据是
其中
在

5
相关工作
Ripple使银行、支付提供商、数字资产交易所和企业能够使用先进的区块链技术向全球发送资金。interledger[7]由ripple于2015年提出,是一种连接区块链和其他账本的协议,用于异构区块链之间的安全资产转移。作为公证处的代表项目,interledger在发送方区块链和接收方区块链之间采用可靠的连接器。资产由发送方发送到连接器,并由连接器妥善保存,直到接收方将实现或拒绝消息发送回连接器。如果接收到一个完成消息,资产将被发送给接收者。否则,资产将被追踪返回到发送者。
Cosmos Network项目[8]是侧链和中继链的一个代表性项目,由Tendermint组带头,允许多个区块链相互交互。该项目使用的共识协议是“拜占庭错误容忍Tendermint协议”。Cosmos Network上的独立区块链上被称为“区域”。各个区域通过中央的Cosmos Hub相互连接。通过这种方式,任意区块链中的用户可以通过Hub与任何其他区域交互。它的原生代币被称为“原子”,它对验证者的奖励被称为“光子”。比特币和以太坊等单个区块链目前不包括在Cosmos网络中。将它们添加为区域将实现它们之间的互操作性。
Jiang Yiming 等[9]提出了一个框架,将Tangle作为物联网区块链与另一个联盟链在数据管理的背景下进行集成。Tangle作为所有相关物联网设备的骨干运行,负责记录互联设备的信息。联盟链作为一个控制账本,防止对物联网设备的未授权访问。框架中使用了公证机制,在Tangle和联盟链之间打开了一个链下通道。本文没有详细介绍跨链技术,而是将其视为连接两个异构区块链的成熟工具。
Luo Kan 等[10]提出了一个交互式的多区块链体系结构和一个用于信息交换的互连区块链模型。为了实现多个异构区块链之间的互操作性,创建了一个路由器区块链,负责将消息从一个区块链路由到另一个区块链。还指定了路由消息的格式,以支持高效的路由。三阶段提交用于确认通信结果。
Michael Borkowski等[11]提出了一个名为DeXTT的协议,用于在多个区块链之间传输跨链代币。它可以用于任何区块链中的任何加密货币的交换。提出的协议考虑了平衡的最终一致性和禁止双重支出,结果表明上述考虑得到了很好的保证。该协议专注于区块链之间的资产转移。
6
结论


长按二维码关注




