本文件涉及区块链技术领域,尤其涉及一种基于区块链预言机的业务处理方法和系统。
背景技术:
区块链,是利用分布式账本技术解决多方信任问题的去中心化创新性的解决方案,是当前社会的前沿技术。
然而,区块链是一个封闭的环境,链上是无法主动获取链外真实世界的数据。究其原因主要是因为区块链无法主动发起网络调用,而链上智能合约是被动接收数据的。其次,智能合约其实并不“智能”,它只是在满足相应条件下,才达到触发状态的程序。同时,智能合约最终的执行需要合约参与方的私钥签署,智能合约本身没有办法自动执行。
技术实现要素:
本说明书一个或多个实施例的目的是提供一种基于区块链预言机的业务处理方法和系统,以通过具体的预言机设计理念为区块链提供所需的链外信息,打破区块链被动接收链外信息的缺陷,变相实现区块链“主动”获取链外信息的优化。
为解决上述技术问题,本说明书一个或多个实施例是这样实现的:
第一方面,提出了一种基于区块链预言机的业务处理方法,包括:
响应于业务方针对目标业务发起的外部数据获取请求,业务智能合约调用预言机智能合约的请求方法,以将基于该请求方法构造的请求信息发送给预言机智能合约,所述请求信息中至少携带有请求地址、回调地址和回调方法;
所述预言机智能合约为接收到的所述请求信息生成唯一性标识,并对应保存在本地,同时,将所述唯一性标识发送给所述业务智能合约,以便所述业务智能合约将该唯一性标识与所述目标业务对应保存;
数据采集终端在监听到所述预言机智能合约上的请求信息时,基于所述请求信息中的请求地址获取外部数据,并将所述外部数据和对应所述请求信息的唯一性标识构造成交易发送给所述预言机智能合约;
所述预言机智能合约根据交易中的唯一性标识查找相应的回调地址,并基于相应的回调方法将交易中的外部数据和唯一性标识返回给所述业务智能合约;
所述业务智能合约根据接收的回调结果中唯一性标识,使用所述外部数据执行相对应的目标业务。
第二方面,提出了一种基于区块链预言机的业务处理系统,包括:区块链上的业务智能合约、预言机智能合约,以及链外的数据采集终端;其中,
所述业务智能合约,响应于业务方针对目标业务发起的外部数据获取请求,调用预言机智能合约的请求方法,以将基于该请求方法构造的请求信息发送给预言机智能合约,所述请求信息中至少携带有请求地址、回调地址和回调方法;
所述预言机智能合约,为接收到的所述请求信息生成唯一性标识,并对应保存在本地,同时,将所述唯一性标识发送给所述业务智能合约,以便所述业务智能合约将该唯一性标识与所述目标业务对应保存;
所述数据采集终端,在监听到所述预言机智能合约上的请求信息时,基于所述请求信息中的请求地址获取外部数据,并将所述外部数据和对应所述请求信息的唯一性标识构造成交易发送给所述预言机智能合约;
所述预言机智能合约,根据交易中的唯一性标识查找相应的回调地址,并基于相应的回调方法将交易中的外部数据和唯一性标识返回给所述业务智能合约;
所述业务智能合约,根据接收的回调结果中唯一性标识,使用所述外部数据执行相对应的目标业务。
第三方面,提出了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行第一方面所述的方法。
第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行第一方面所述的方法。
由以上本说明书一个或多个实施例提供的技术方案可见,通过具体的预言机技术,在链上针对目标业务调用预言机智能合约,以生成用于请求目标业务所需外部信息的请求信息,然后,链下的数据采集终端可以基于监听到链上的请求信息,从链外获取业务所需外部数据。接着,将获取的外部数据以及设置的相应编码以交易的方式先发送至预言机智能合约,最后通过预言机智能合约反馈给业务合约,以便业务合约使用该外部数据执行相应的目标业务。该方案以具体的预言机设计理念为区块链提供所需的链外信息,打破区块链被动接收链外信息的缺陷,变相实现区块链“主动”获取链外信息的优化。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对一个或多个实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书实施例涉及的基于区块链预言机的业务处理方法所适用的系统架构图。
图2是本说明书实施例提供的一种基于区块链预言机的业务处理方法的步骤示意图。
图3是本说明书实施例提供的基于区块链预言机的业务处理系统的结构示意图。
图4是本说明书的一个实施例提供的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的一个或多个实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
区块链是一个确定性的、封闭的系统环境,目前区块链只能获取到链内的数据,而不能获取到链外真实世界的数据,区块链与现实世界是割裂的。区块链的链外信息写入区块链内的机制,一般被称为预言机(oraclemechanism)。预言机的功能就是将外界信息写入到区块链内,完成区块链与现实世界的数据互通。它允许确定的智能合约对不确定的外部世界作出反应,是智能合约与外部进行数据交互的唯一途径,也是区块链与现实世界进行数据交互的接口。
一般智能合约的执行需要触发条件,当智能合约的触发条件是外部信息时,就必须需要预言机来提供数据服务,通过预言机将现实世界的数据输入到区块链上,因为智能合约不支持对外请求。具体原因是这样的:区块链是确定性的环境,它不允许不确定的事情或因素,智能合约不管何时何地运行都必须是一致的结果,所以虚拟机(vm)不能让智能合约有网络调用,不然结果就是不确定的。也就是说智能合约不能进行i/o(input/output,即输入/输出),所以它是无法主动获取外部数据的,只能通过预言机将数据给到智能合约。这是理想中预言机的工作流程,即用户的智能合约把请求给链上oracle合约,通过链下的api接口获得外部数据,更确切的说是请求并触发外部把数据给链上的oracle合约,然后oracle合约再把数据给用户的智能合约。
本说明书实施例即通过具体的预言机技术,在链上针对目标业务调用预言机智能合约,以生成用于请求目标业务所需外部信息的请求信息,然后,链下的数据采集终端可以基于监听到链上的请求信息,从链外获取业务所需外部数据。接着,将获取的外部数据以及设置的相应编码以交易的方式先发送至预言机智能合约,最后通过预言机智能合约反馈给业务合约,以便业务合约使用该外部数据执行相应的目标业务。该方案以具体的预言机设计理念为区块链提供所需的链外信息,打破区块链被动接收链外信息的缺陷,变相实现区块链“主动”获取链外信息的优化。
参照图1所示,为本说明书实施例涉及的基于区块链预言机的业务处理方法所适用的系统架构图。在该预言机实现场景中,主要包括:位于区块链上的链上部分102和以及位于区块链以外的链下部分104;其中,链上部分102主要是与预言机相关的智能合约,此外还包括其它功能模块;链下部分104主要涉及执行中心化的数据采集业务的数据采集终端。通过链上部分102与链下部分104的交互,以预言机技术实现区块链对链外数据的获取。
下面结合图1所示的系统架构对本说明书实施例的方案进行详述。
实施例一
参照图2所示,为本说明书实施例提供的一种基于区块链预言机的业务处理方法的步骤示意图,所述业务处理方法可以包括以下步骤:
步骤202:响应于业务方针对目标业务发起的外部数据获取请求,业务智能合约调用预言机智能合约的请求方法,以将基于该请求方法构造的请求信息发送给预言机智能合约,所述请求信息中至少携带有请求地址、回调地址和回调方法。
应理解,在本说明书实施例中,图1所示的系统架构中链上部分部署的智能合约,至少可以包括预言机智能合约和业务智能合约,此外,还可能包含执行或调用其它方法或业务的智能合约。其中,所述预言机智能合约主要用于添加调用请求或方法,以及返回外部采集的链外数据给业务智能合约。预言机智能合约可以记录目标业务的请求编码,目标业务的请求地址以及数据解析方式,以及请求成功后的回调方式。业务智能合约一方面用于与预言机智能合约之间通过调用方法的方式交互信息,另一方面用于执行本地合约中规范的业务方法。
在业务方发起针对目标业务的外部数据获取请求后,该业务处理系统中的链上部分的业务智能合约开始响应,调用预言机智能合约的添加调用请求方法,主要参数包括:用户请求地址、数据解析方式、回调地址和方法等。
步骤204:所述预言机智能合约为接收到的所述请求信息生成唯一性标识,并对应保存在本地,同时,将所述唯一性标识发送给所述业务智能合约,以便所述业务智能合约将该唯一性标识与所述目标业务对应保存。
在本说明书实施例中,所述唯一性标识可以是按照序列递增或递减的请求编码。具体实现时,预言机智能合约可以按照序列递增或递减的方式为接收到的请求信息生成请求编码返回给业务智能合约进行记录,并将请求信息保存在预言机智能合约本地,并以请求编码作为其唯一编码。其中,请求编码可以是数字和/或字母组成的有序编码。
步骤206:数据采集终端在监听到所述预言机智能合约上的请求信息时,基于所述请求信息中的请求地址获取外部数据,并将所述外部数据和对应所述请求信息的唯一性标识构造成交易发送给所述预言机智能合约。
应理解,所述数据采集终端可以是链下中心化的数据采集服务设备,用以监听链上预言机智能合约的请求。当数据采集终端监听到有请求信息时,可以根据请求信息中的请求地址来获取外部数据。并将获取到的外部数据链同对应请求该外部数据的请求信息的请求编码通过交易的方式发送给链上的预言机智能合约。为了防止获取外部数据的过程中发生数据被恶意篡改的可能,本说明书实施例中请求地址可以为https的加密请求链接地址。
步骤208:所述预言机智能合约根据交易中的唯一性标识查找相应的回调地址,并基于相应的回调方法将交易中的外部数据和唯一性标识返回给所述业务智能合约。
链上预言机智能合约根据接收到的数据采集终端发送的交易中请求编码,从本地查找相应的回调地址和方法,将该交易中的外部数据和请求编码返回到业务智能合约中。
步骤210:所述业务智能合约根据接收的回调结果中唯一性标识,使用所述外部数据执行相对应的目标业务。
考虑到每个目标业务发起的请求信息都对应有唯一的请求编码,当将交易中外部数据和请求编码返回给业务智能合约之后,业务智能合约根据接收的回调结果中请求编码,查找与该请求编码对应的目标业务的具体内容,并使用获取到的外部数据执行该目标业务。
进一步,所述数据采集终端记录有每次请求时的应用程序接口api查询记录,所述api查询记录至少包括:请求地址、请求结果、请求耗时;相应地,在数据采集终端将交易发送给预言机智能合约之后,所述方法还可以包括:
监管终端从链上获取请求数信息和返回的外部数据,并基于api查询记录对数据进行审计,以确保数据真实。这样,在审计完成之后,还可以根据审计结果决定是否使用该数据执行目标业务。
可选地,所述数据采集终端由可信的第三方运维,且在链上无直接业务参与,这样可以充分保证数据采集终端的中立性和可信性。
可选地,所述目标业务可以为基于区块链智能合约实现的公平游戏业务,相应地,所获取的外部数据为链外生成的随机数。
具体地,目前很多区块链上的游戏都可能涉及到随机数,而这类随机数往往是不可预测、可验证的,且随机数最终决定了游戏玩家的等级或最终战况。这时,图1所示的业务处理系统即可以作为游戏业务处理系统,来处理游戏业务领域涉及的随机数安全可信的生成问题。此时,外部数据即是由位于区块链外的随机数生成器生成的随机数,数据采集终端可以是随机数生成器也可以是其它采集设备从随机数生成器获取随机数。后续通过预言机技术实现的数据交互即可参照图2所示。
可选地,所述目标业务还可以为基于区块链智能合约实现的金融业务,相应地,所获取的外部数据为链外金融产品衍生的资产信息,所述资产信息至少包含:汇率、股票、利率、保证金。
同理,图1所示的业务处理系统即可以作为金融业务处理系统,来处理金融业务领域涉及的一些特点资产信息需要外部获取的问题。此时,外部数据即是由位于区块链外的汇率、股票、利率、保证金等资产信息,数据采集终端可以从不同的金融机构或政府部门获取这些资产信息。后续通过预言机技术实现的数据交互即可参照图2所示,在此不作赘述。
通过具体的预言机技术,在链上针对目标业务调用预言机智能合约,以生成用于请求目标业务所需外部信息的请求信息,然后,链下的数据采集终端可以基于监听到链上的请求信息,从链外获取业务所需外部数据。接着,将获取的外部数据以及设置的相应编码以交易的方式先发送至预言机智能合约,最后通过预言机智能合约反馈给业务合约,以便业务合约使用该外部数据执行相应的目标业务。该方案以具体的预言机设计理念为区块链提供所需的链外信息,打破区块链被动接收链外信息的缺陷,变相实现区块链“主动”获取链外信息的优化。
实施例二
参照图3所示,为本说明书实施例提供的基于区块链预言机的业务处理系统,该系统300可以包括:区块链上的业务智能合约302、预言机智能合约304,以及链外的数据采集终端306;应理解,该实施例二中所涉及的携带标号的智能合约,均可以理解为相应的智能合约模块,每个智能合约模块中部署有各自的智能合约代码。其中,
所述业务智能合约302,响应于业务方针对目标业务发起的外部数据获取请求,调用预言机智能合约的请求方法,以将基于该请求方法构造的请求信息发送给预言机智能合约,所述请求信息中至少携带有请求地址、回调地址和回调方法;
所述预言机智能合约304,为接收到的所述请求信息生成唯一性标识,并对应保存在本地,同时,将所述唯一性标识发送给所述业务智能合约,以便所述业务智能合约将该唯一性标识与所述目标业务对应保存;
所述数据采集终端306,在监听到所述预言机智能合约上的请求信息时,基于所述请求信息中的请求地址获取外部数据,并将所述外部数据和对应所述请求信息的唯一性标识构造成交易发送给所述预言机智能合约;
所述预言机智能合约304,根据交易中的唯一性标识查找相应的回调地址,并基于相应的回调方法将交易中的外部数据和唯一性标识返回给所述业务智能合约;
所述业务智能合约302,根据接收的回调结果中唯一性标识,使用所述外部数据执行相对应的目标业务。
可选地,作为一个实施例,所述数据采集终端记录有每次请求时的应用程序接口api查询记录,所述api查询记录至少包括:请求地址、请求结果、请求耗时;则所述系统还包括:监管终端;所述监管终端,在数据采集终端将交易发送给预言机智能合约之后,从链上获取请求信息和返回的外部数据,并基于api查询记录对数据进行审计。
在本说明书实施例的一种具体实现方式中,所述请求地址为https的加密请求链接地址。
在本说明书实施例的再一种具体实现方式中,所述数据采集终端由可信的第三方运维,且在链上无直接业务参与。
通过具体的预言机技术,在链上针对目标业务调用预言机智能合约,以生成用于请求目标业务所需外部信息的请求信息,然后,链下的数据采集终端可以基于监听到链上的请求信息,从链外获取业务所需外部数据。接着,将获取的外部数据以及设置的相应编码以交易的方式先发送至预言机智能合约,最后通过预言机智能合约反馈给业务合约,以便业务合约使用该外部数据执行相应的目标业务。该方案以具体的预言机设计理念为区块链提供所需的链外信息,打破区块链被动接收链外信息的缺陷,变相实现区块链“主动”获取链外信息的优化。
实施例三
图4是本说明书的一个实施例电子设备的结构示意图。请参考图4,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-accessmemory,ram),也可能还包括非易失性存储器(non-volatilememory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industrystandardarchitecture,工业标准体系结构)总线、pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成区块链业务处理系统中所涉及的模块。处理器,执行存储器所存放的程序,并具体用于执行相应操作。
上述如本说明书图2所示实施例揭示的装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书一个或多个实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书一个或多个实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图2的方法,并实现相应装置在图2所示实施例的功能,本说明书实施例在此不再赘述。
当然,除了软件实现方式之外,本说明书实施例的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
通过具体的预言机技术,在链上针对目标业务调用预言机智能合约,以生成用于请求目标业务所需外部信息的请求信息,然后,链下的数据采集终端可以基于监听到链上的请求信息,从链外获取业务所需外部数据。接着,将获取的外部数据以及设置的相应编码以交易的方式先发送至预言机智能合约,最后通过预言机智能合约反馈给业务合约,以便业务合约使用该外部数据执行相应的目标业务。该方案以具体的预言机设计理念为区块链提供所需的链外信息,打破区块链被动接收链外信息的缺陷,变相实现区块链“主动”获取链外信息的优化。
实施例四
本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图2所示实施例的方法。
通过具体的预言机技术,在链上针对目标业务调用预言机智能合约,以生成用于请求目标业务所需外部信息的请求信息,然后,链下的数据采集终端可以基于监听到链上的请求信息,从链外获取业务所需外部数据。接着,将获取的外部数据以及设置的相应编码以交易的方式先发送至预言机智能合约,最后通过预言机智能合约反馈给业务合约,以便业务合约使用该外部数据执行相应的目标业务。该方案以具体的预言机设计理念为区块链提供所需的链外信息,打破区块链被动接收链外信息的缺陷,变相实现区块链“主动”获取链外信息的优化。
总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书的保护范围之内。
上述一个或多个实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
1.一种基于区块链预言机的业务处理方法,包括:
响应于业务方针对目标业务发起的外部数据获取请求,业务智能合约调用预言机智能合约的请求方法,以将基于该请求方法构造的请求信息发送给预言机智能合约,所述请求信息中至少携带有请求地址、回调地址和回调方法;
所述预言机智能合约为接收到的所述请求信息生成唯一性标识,并对应保存在本地,同时,将所述唯一性标识发送给所述业务智能合约,以便所述业务智能合约将该唯一性标识与所述目标业务对应保存;
数据采集终端在监听到所述预言机智能合约上的请求信息时,基于所述请求信息中的请求地址获取外部数据,并将所述外部数据和对应所述请求信息的唯一性标识构造成交易发送给所述预言机智能合约;
所述预言机智能合约根据交易中的唯一性标识查找相应的回调地址,并基于相应的回调方法将交易中的外部数据和唯一性标识返回给所述业务智能合约;
所述业务智能合约根据接收的回调结果中唯一性标识,使用所述外部数据执行相对应的目标业务。
2.如权利要求1所述的方法,所述数据采集终端记录有每次请求时的应用程序接口api查询记录,所述api查询记录至少包括:请求地址、请求结果、请求耗时;
则在数据采集终端将交易发送给预言机智能合约之后,所述方法还包括:
监管终端从链上获取请求信息和返回的外部数据,并基于api查询记录对数据进行审计。
3.如权利要求1所述的方法,所述请求地址为https的加密请求链接地址。
4.如权利要求1所述的方法,所述数据采集终端由可信的第三方运维,且在链上无直接业务参与。
5.如权利要求1-4任一项所述的方法,所述目标业务为基于区块链智能合约实现的公平游戏业务,相应地,所获取的外部数据为链外生成的随机数。
6.如权利要求1-4任一项所述的方法,所述目标业务为基于区块链智能合约实现的金融业务,相应地,所获取的外部数据为链外金融产品衍生的资产信息,所述资产信息至少包含:汇率、股票、利率、保证金。
7.一种基于区块链预言机的业务处理系统,包括:区块链上的业务智能合约、预言机智能合约,以及链外的数据采集终端;其中,
所述业务智能合约,响应于业务方针对目标业务发起的外部数据获取请求,调用预言机智能合约的请求方法,以将基于该请求方法构造的请求信息发送给预言机智能合约,所述请求信息中至少携带有请求地址、回调地址和回调方法;
所述预言机智能合约,为接收到的所述请求信息生成唯一性标识,并对应保存在本地,同时,将所述唯一性标识发送给所述业务智能合约,以便所述业务智能合约将该唯一性标识与所述目标业务对应保存;
所述数据采集终端,在监听到所述预言机智能合约上的请求信息时,基于所述请求信息中的请求地址获取外部数据,并将所述外部数据和对应所述请求信息的唯一性标识构造成交易发送给所述预言机智能合约;
所述预言机智能合约,根据交易中的唯一性标识查找相应的回调地址,并基于相应的回调方法将交易中的外部数据和唯一性标识返回给所述业务智能合约;
所述业务智能合约,根据接收的回调结果中唯一性标识,使用所述外部数据执行相对应的目标业务。
8.如权利要求7所述的系统,所述数据采集终端记录有每次请求时的应用程序接口api查询记录,所述api查询记录至少包括:请求地址、请求结果、请求耗时;则所述系统还包括:监管终端;
所述监管终端,在数据采集终端将交易发送给预言机智能合约之后,从链上获取请求信息和返回的外部数据,并基于api查询记录对数据进行审计。
9.如权利要求7所述的系统,所述请求地址为https的加密请求链接地址。
10.如权利要求7所述的系统,所述数据采集终端由可信的第三方运维,且在链上无直接业务参与。
技术总结