区块链与链外系统进行可信数据交互的方法及装置制造方法及图纸

技术编号:28497012 阅读:20 留言:0更新日期:2021-05-19 22:32
本发明专利技术公开了一种区块链与链外系统进行可信数据交互的方法及装置,当用户合约每发出一个在需要获取链外业务数据的数据请求时,将相应的上行数据请求转换成任务,以及,在当用户合约在执行过程中与链外业务系统发生业务关联时,将相应的下行业务驱动请求转换成任务,通过任务来实现对所需要交互的数据的动态获取;基于任务驱动的执行方式极大提高了系统执行的灵活性与可调度性,可有效缓解节点在复杂应用场景中的运算负担问题,还能够到达区块链与链外系统进行上行下行可靠数据交互的目的。的。的。

【技术实现步骤摘要】
区块链与链外系统进行可信数据交互的方法及装置


[0001]本专利技术涉及区块链技术,尤其涉及一种区块链与链外系统进行可信数据交互的方法及装置。

技术介绍

[0002]区块链技术具有不可伪造、全程留痕、可以追溯、公开透明和集体维护等特征,基于这些特征,区块链技术奠定了坚实的信任基础,创造了可靠的合作机制;但是,由于区块链是一个封闭的环境,同时,区块链无法主动发起网络调用而链上智能合约是被动接收数据的。所以,智能合约需要一种与外部世界的数据进行交互的途径,其被称为预言机(oracle),预言机可以从外部世界取得数据,并将将这些数据输入到智能合约进行处理,从而完成了智能合约和外部世界的交互过程。
[0003]但是,由于预言机是在第三方设备的非信执行环境下运行的,难以保证提供防篡改的信息源;中国专利申请CN109670335A公开了用于在区块链与链外数据之间进行交互的方法及装置,其通过可信环境增强链外数据与区块链之间的交互的方案,从而实现增强的可信度的预言机,可以使预言机能够安全、完整地获取可信的外部数据,可以确保链外的可信数据源安全、完整地进入用户智能合约,实现用户智能合约和外部世界之间的可靠数据交互方式。但是根据该申请所公开的数据交互过程可知,该申请生成的数据请求包含目标数据的地址信息,相应的数据请求是由区块链网络产生的,那么必然会在区块链网络要保存对应的地址信息,而在复杂的业务场景下,区块链网络会存储大量的地址信息,将会给区块链节点带来计算压力、最终导致整个区块链网络的执行力低下。据此,该申请所提供的区块链与链外数据的交互方法存在在复杂业务场景下容易导致区块链网络执行力低下、不适用于复杂业务场景的缺陷;同时,从业务的全面性角度而言,在区块链与链外数据交互场景中,往往不仅需要将链外数据馈送到相应的区块链节点,还需要考虑到如果将区块链数据安全下发至链外系统,因此该申请还存在未对下行数据业务进行开发、无法实现链上数据安全下放的问题。

技术实现思路

[0004]鉴于以上所述现有技术的不足,本专利技术的目的在于:提供一种用于区块链与链外系统进行可信数据交互的方法,不仅能够避免给节点带来运算负担,还能够到达区块链与链外系统进行上行下行可靠数据交互的目的。
[0005]为实现上述专利技术目的,本专利技术提供以下技术方案:
[0006]一种区块链与链外业务系统进行可信数据交互的方法,包括:
[0007]当用户合约在执行过程中需要获取链外业务系统的业务数据时,生成相应的数据请求并调用数据上行合约;执行所述数据上行合约,将所述数据请求描述为对应的数据上行任务;以及由预言机在可信执行环境下执行所述数据上行任务,而获取相应的业务数据并调用所述用户合约的回调方法,将所获取的业务数据传递给所述用户合约;
[0008]以及,当用户合约在执行过程中与链外业务系统发生业务关联时,生成相应的业务驱动请求并调用数据下行合约;执行所述数据下行合约,将所述业务驱动请求描述为对应的业务驱动任务;以及由预言机在可信执行环境下执行所述业务驱动任务,使链外业务系统执行相应的业务。
[0009]优选的,上述区块链与链外业务系统进行可信数据交互的方法中,所述预言机通过排序的方式对所述数据上行任务进行管理,根据任务排序结果生成数据上行任务列表;通过订阅所述数据上行任务列表,获取当前待处理的数据上行任务,并在可信执行环境下执行所述当前待处理数据上行任务;
[0010]以及,所述预言机通过排序的方式对所述业务驱动任务进行管理,根据任务排序结果生成业务驱动任务列表;通过订阅所述业务驱动任务列表,获取当前待处理的业务驱动任务,并在可信执行环境下执行所述当前待处理业务驱动任务。
[0011]优选的,上述区块链与链外业务系统进行可信数据交互的方法中,所述预言机通过状态监控方式对所述数据上行任务列表与所述业务驱动业务列表中的任务执行状态进行监控;若列表中存在超时未执行的任务,对超时任务进行剔除。
[0012]优选的,上述区块链与链外业务系统进行可信数据交互的方法中,所述可信执行环境由处理器提供。
[0013]在本专利技术进一步的实施例中还提供一种用于区块链与链外业务系统进行可信数据交互的装置,包括:
[0014]存储器,用于存储指令;
[0015]处理器,用于在执行所述指令时,执行如权利要求1

3任一所述的区块链与链外业务系统进行可信数据交互的方法。
[0016]优选的,上述用于区块链与链外业务系统进行可信数据交互的装置中,所述处理器用于提供所述可信执行环境。
[0017]与现有技术相比,本专利技术的有益效果:
[0018]本专利技术用于区块链与链外系统进行可信数据交互的方法,当用户合约每发出一个在需要获取链外业务数据的数据请求时,将相应的上行数据请求转换成任务,以及,在当用户合约在执行过程中与链外业务系统发生业务关联时,将相应的下行业务驱动请求转换成任务,通过任务来实现对所需要交互的数据的动态获取;基于任务驱动的执行方式极大提高了系统执行的灵活性与可调度性,可有效缓解节点在复杂应用场景中的运算负担问题,还能够到达区块链与链外系统进行上行下行可靠数据交互的目的。
[0019]进一步的,在本专利技术用于区块链与链外系统进行可信数据交互的方法中,针对预言机服务平台配置了相应的任务排序管理的机制,以列队排序方式实时更新任务的执行状态,实现上下行数据交互任务的实时更新,并通过状态监控机制进一步缓解区块链网络的数据运算执行压力,保证数据的安全性、提高区块链网络的执行力。
附图说明
[0020]图1为本专利技术区块链与链外业务系统进行可信数据交互流程示意图;
[0021]图2为本专利技术基于预言机服务构建的区块链与链外业务系统进行可信数据交互架构示意图。
具体实施方式
[0022]以下通过特定的具体实例说明本专利技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本专利技术的其他优点与功效。本专利技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本专利技术的精神下进行各种修饰或改变。
[0023]如图1所示,区块链网络10中的区块链节点100与链外系统30进行可信数据交互的流程包括以下步骤:
[0024]当用户合约102在被处理器101执行过程中需要获取链外业务系统30的业务数据时,生成相应的数据请求并调用数据上行合约;执行所述数据上行合约,将所述数据请求描述为对应的数据上行任务;以及由预言机在可信执行环境20中执行所述数据上行任务,而获取相应的业务数据并调用所述用户合约的回调方法,将所获取的业务数据传递给所述用户合约102;
[0025]以及,当用户合约102在被处理器101执行过程中与链外业务系统30发生业务关联时,生成相应的业务驱动请求并调用数据下行合约;执行所述数据下行合约,将所述业务驱动请求描述为对应的业务驱动任务;以及由预言机在可信执行环境20中执行所述业务驱动任务,使链外业务系统本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链与链外业务系统进行可信数据交互的方法,其特征在于,包括:当用户合约在执行过程中需要获取链外业务系统的业务数据时,生成相应的数据请求并调用数据上行合约;执行所述数据上行合约,将所述数据请求描述为对应的数据上行任务;以及由预言机在可信执行环境下执行所述数据上行任务,而获取相应的业务数据并调用所述用户合约的回调方法,将所获取的业务数据传递给所述用户合约;以及,当用户合约在执行过程中与链外业务系统发生业务关联时,生成相应的业务驱动请求并调用数据下行合约;执行所述数据下行合约,将所述业务驱动请求描述为对应的业务驱动任务;以及由预言机在可信执行环境下执行所述业务驱动任务,使链外业务系统执行相应的业务。2.如权利要求1所述的区块链与链外业务系统进行可信数据交互的方法,其特征在于,所述预言机通过排序的方式对所述数据上行任务进行管理,根据任务排序结果生成数据上行任务列表;通过订阅所述数据上行任务列表,获取当前待处理的数据上行任务,并在可信执行环境下执行所述当前待处理数据上行任务;以及...

【专利技术属性】
技术研发人员:李弋凡阮亚芬
申请(专利权)人:迅鳐成都科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1