一种基于区块链的数据处理方法、装置、设备和介质与流程

专利2022-06-29  64


本申请实施例涉及计算机技术领域,具体涉及区块链技术。



背景技术:

区块链网络的技术特点是去中心化处理环境,以及可防止数据被篡改,所以数据处理的安全性和可靠性较高。

但是,在目前的区块链网络执行事务请求的过程中,都是由区块链节点来执行智能合约等程序,以对事务请求进行处理,而不能访问外部资源进行处理。这一缺陷限制了区块链网络的业务处理能力。



技术实现要素:

本申请实施例提供了一种基于区块链的数据处理方法、装置、设备和介质,以使区块链网络中对数据处理的能力更加丰富灵活,同时兼顾数据的安全性和处理过程的可靠性。

第一方面,本申请实施例公开了一种基于区块链的数据处理方法,该方法包括:

通过部署于区块链中的接口智能合约对所述初始事务请求进行解析处理,并根据解析得到的数据产生链外处理请求,其中,所述初始事务请求由业务智能合约产生,且存在链外处理需求;

通过可信数据源系统中配置的可信计算环境执行所述链外处理请求,生成处理结果;

通过所述接口智能合约将所述处理结果反馈给所述业务智能合约。

上述申请中的一个实施例具有如下优点或有益效果:通过部署在区块链中的接口智能合约对业务智能合约产生的存在链外处理需求的初始事务请求进行解析处理,根据解析处理到的数据产生链外处理请求;由可信数据源系统中配置的可信计算环境执行该链外处理请求产生处理结果;通过接口智能合约将反馈结果反馈给业务智能合约。通过区块链上部署的业务智能合约、可信数据源系统中的接口智能合约和可信计算环境之间的配合,实现了对区块链网络中存在链外处理需求的事务请求进行处理的情况,解决了现有技术,区块链网络不能访问外部资源进行事务请求处理的问题,以使区块链网络对数据处理的能力更加丰富灵活,同时采用可信计算环境对链外处理请求进行处理,兼顾了数据的安全性和处理过程的可靠性。

可选的,通过可信数据源系统中配置的可信计算环境执行所述链外处理请求之前,还包括:

通过可信数据源系统中配置的控制模块,获取所述链外处理请求,并传输给所述可信数据源系统中配置的可信计算环境;

相应的,产生处理结果之后,还包括:

通过所述控制模块获取所述可信计算环境产生的处理结果,并反馈给所述接口智能合约。

上述可选方式具有如下优点或有益效果:可信数据源系统中还包括控制模块,控制模块作为可信计算环境与接口智能合约之间的通信桥梁,由控制模块将接口智能合约产生的链外处理请求传输给可信计算环境,以及用于将可信计算环境产生的处理结果反馈给接口智能合约,增加该控制模块可以使得可信数据源系统内部运行更加顺利。

可选的,通过可信数据源系统中配置的可信计算环境执行所述链外处理请求,生成处理结果包括:

通过可信数据源系统中配置的可信计算环境执行所述链外处理请求,生成处理结果,并封装为结果事务请求;

采用所述可信计算环境的区块链账户私钥对所述结果事务请求进行签名。

上述可选方式具有如下优点或有益效果:可信计算环境在执行链外处理请求得到处理结果后,将其封装为结果事务请求,并采用自身的区块链账户私钥进行签名,该私钥签名可用于证明结果事务请求是在可信计算环境下生成的,且由可信计算环境执行处理结果的封装以及签名操作,保证了处理结果的安全性和可靠性。

可选的,所述处理结果中还携带有所述安全容器实例的代码存证,所述代码存证用于唯一标识所述安全容器实例的运行代码。

上述可选方式具有如下优点或有益效果:在处理结果中携带安全容器实例的代码存证,该代码存证可用来验证执行链外处理请求的安全容器实例的可信度,进而保证了该安全容器实例处理得到的处理结果的安全性和可靠性。

可选的,通过可信数据源系统中配置的控制模块,获取所述链外处理请求,并传输给所述可信数据源系统中配置的可信计算环境包括:

通过可信数据源系统中配置的控制模块,获取所述链外处理请求;

通过所述控制模块根据所述链外处理请求确定对应的安全容器实例;其中,所述可信计算环境中运行有至少一个安全容器实例;

通过所述控制模块,将所述链外处理请求传输给所述安全容器实例;

其中,每个所述安全容器实例分配有一对区块链账户私钥和公钥。

上述可选方式具有如下优点或有益效果:可信计算环境中包含至少一个安全容器实例,控制模块将链外处理请求传输给该链外处理请求对应的安全容器实例,且每个安全容器实例都有自己对应的区块链账户密钥。可信计算环境中的各安全容器实例可以独立完成对链外处理请求的处理,实现了可信计算环境支持并发处理多种不同功能的链外处理请求,提高了可信计算环境的处理链外处理请求的灵活性。

可选的,通过可信数据源系统中配置的控制模块,获取所述链外处理请求,并传输给所述可信数据源系统中配置的可信计算环境包括:

通过可信数据源系统中配置的控制模块,获取所述链外处理请求;

通过所述控制模块,从所述可信计算环境的区块链账户计数池中为所述链外处理请求分配计数值;

通过所述控制模块将分配有计数值的链外处理请求传输给所述可信数据源系统中配置的可信计算环境;

相应的,所述可信计算环境产生的所述处理结果中携带有分配的所述计数值。

上述可选方式具有如下优点或有益效果:控制模块在获取链外处理请求后,为该链外处理请求分配计数值,进而将分配有计数值的链外处理请求传输至可信计算环境,同时可信计算环境处理得到的处理结果中也携带有该计数值,通过在链外处理请求和处理结果中携带计数值,可以避免同一链外处理请求和处理结果被重复处理。

可选的,通过可信数据源系统中配置的可信计算环境执行所述链外处理请求,生成处理结果包括:

通过可信数据源系统中配置的可信计算环境,按照所述链外处理请求访问读取外部数据源;

通过所述可信计算环境,从读取的外部数据中解析获得所述链外处理请求所需处理数据;

通过所述可信计算环境,对所述所需处理数据进行处理,生成处理结果。

上述可选方式具有如下优点或有益效果:可信计算环境可根据链外处理请求访问外部数据源,从中解析出执行链外处理请求所需的数据,进而完成对链外处理请求的处理操作,得到处理结果。实现了区块链网络访问外部资源进行数据处理的过程。提高了区块链网络的业务处理能力的灵活性。

可选的,通过部署于区块链中的接口智能合约对所述初始事务请求进行解析处理,并根据解析得到的数据产生链外处理请求包括:

通过部署于区块链中的接口智能合约,计算所述初始事务请求所请求数据的哈希值;

通过所述接口智能合约基于所述初始事务请求的事务标识、所请求数据、所述哈希值、所述业务智能合约的接口地址和回调函数,产生所述链外处理请求;

相应的,通过所述接口智能合约将所述处理结果反馈给所述业务智能合约包括:

通过所述接口智能合约,根据所述处理结果执行回调函数,按照所述业务智能合约的接口地址将所述处理结果进行反馈。

上述可选方式具有如下优点或有益效果:接口智能合约对接收到的初始事务请求计算所请求数据的哈希值,产生的链外处理请求中包含事务标识、哈希值、业务智能合约的地址和回调函数。其中包含的哈希值可供后续对认证处理结果对应的请求数据的真实性进行验证。其中包含的业务智能合约的地址和回调函数可用于后续准确向业务智能合约反馈处理结果。进一步保证了处理初始事务请求的安全性和可靠性。

可选的,通过部署于区块链中的接口智能合约对所述初始事务请求进行解析处理,并根据解析得到的数据产生链外处理请求包括:

通过部署于区块链中的接口智能合约对所述初始事务请求进行解析处理,并根据解析得到的数据产生日志记录,作为所述链外处理请求;

相应的,通过可信数据源系统中配置的控制模块,获取所述链外处理请求包括:

通过所述控制模块监听所述接口智能合约的日志记录,以获取所述链外处理请求。

上述可选方式具有如下优点或有益效果:接口智能合约在向控制模块传输链外处理请求时,通过产生链外处理请求的日志记录,由控制模块通过监听日志记录的方式获取链外处理请求,提高了接口智能合约向控制模块传输链外处理请求的灵活性。

可选的,通过所述控制模块获取所述可信计算环境产生的处理结果,并反馈给所述接口智能合约包括:

通过所述控制模块获取所述可信计算环境产生的处理结果;

通过所述控制模块,将所述处理结果采用所述可信计算环境的区块链账户进行签名,并调用所述接口智能合约发起结果事务请求,以将所述处理结果进行上链存储。

上述可选方式具有如下优点或有益效果:控制模块在获取了可信计算环境的处理结果后,对处理结果进行签名后,调用接口智能合约发起结果事务请求,以使处理结果上链存储,以便后续区块链节点通过该签名对处理结果的准确性进行验证。保证了上链存储的处理结果的安全性和可靠性。

可选的,调用所述接口智能合约发起结果事务请求之后,还包括:

通过所述接口智能合约对所述结果事务请求的区块链账户进行验证;

通过所述接口智能合约验证所述结果事务请求与初始事务请求的所请求数据是否匹配;

如果验证通过且匹配通过,则通过所述接口智能合约将所述结果事务请求上传到区块链网络中。

上述可选方式具有如下优点或有益效果:接口智能合约在接收到控制模块传输的结果事务请求后,对产生该结果事务请求的可信计算环境的账户可信性以及该结果事务请求对应的请求数据的真实性进行验证,验证成功后方可上传到区块链网络中,通过双重验证,进一步避免了篡改后的处理结果被上链,提高了处理结果上链存储的安全性和可靠性。

可选的,所述方法还包括:

通过所述控制模块,根据管理数据库中记录的安全容器实例的元数据,对所述安全容器实例进行加载、恢复或释放;其中,所述可信计算环境中配置有至少一个安全容器实例,用于执行设定功能的数据处理。

可选的,所述方法还包括:

通过所述控制模块,为安全容器实例分配区块链账户密钥,并为所述安全容器实例计算代码存证。

可选的,所述方法还包括:

通过所述控制模块,根据所述管理数据库中的配置文件,加载外部数据源。

可选的,所述方法还包括:通过所述控制模块,将所述安全容器实例通过所述接口智能合约部署于所述业务智能合约中,供所述业务智能合约调用。

可选的,所述方法还包括:

通过所述控制模块,启动对所述接口智能合约所产生日志记录的监听,以从所述日志记录中获取所述链外处理请求。

可选的,所述方法还包括:

通过所述控制模块,向区块链网络中部署所述接口智能合约,并记录所述接口智能合约的合约地址。

上述可选方式具有如下优点或有益效果:控制模块负责可信数据源系统中的接口智能合约的部署,以及安全容器实例的管理和部署,为可信数据源系统处理存在链外处理需求的初始事务请求提供了保障。控制模块可以通过监听日志的方式获取链外处理请求,提高了获取链外处理请求的灵活性。

可选的,所述方法还包括:

通过所述控制模块,将所述区块链账户的地址和公钥、以及安全容器实例的代码存证,通过所述接口智能合约进行上链存储。

上述可选方式具有如下优点或有益效果:控制模块将用于验证可信计算环境区块链账户身份的区块链账户的地址和公钥、用于验证安全容器实例可信度的代码存证进行上链存储,供区块链节点查找执行相关验证操作。

第二方面,本申请实施例还提供了一种基于区块链的数据处理方法,由区块链节点来执行,所述方法包括:

获取用户调用业务智能合约而生成的初始事务请求,其中,所述初始事务请求存在链外处理需求;

通过所述业务智能合约,根据所述初始事务请求通知所述接口智能合约,以产生链外处理请求,并请求可信计算环境对链外处理请求进行处理;

通过所述业务智能合约,从所述接口智能合约获取反馈的处理结果。

上述申请中的一个实施例具有如下优点或有益效果:区块链节点产生存在链外处理需求的初始事务请求后,可以通过其业务智能合约与可信数据源系统中的接口智能合约交互,借助可信数据源系统中的接口智能合约、控制模块以及可信计算环境,实现链外处理需求,并获取处理结果。解决了现有技术,区块链网络不能访问外部资源进行事务请求处理的问题,以使区块链网络对数据处理的能力更加丰富灵活,同时采用可信计算环境对链外处理请求进行处理,兼顾了数据的安全性和处理过程的可靠性。

可选的,所述方法还包括:

调用所述接口智能合约,以从区块链中获取所述可信计算环境中安全容器实例的代码存证;

根据所述代码存证对所述可信计算环境中安全容器实例的代码进行验证。

可选的,所述方法还包括:

调用所述接口智能合约,以从区块链中获取所述可信计算环境的区块链账户公钥;

通过所述区块链账户公钥,对所述处理结果的私钥签名进行验证。

上述可选方式具有如下优点或有益效果:区块链节点的获取处理结果后,可以通过生成该处理结果的可信计算环境中的安全容器实例的代码存证对该安全容器实例进行可信性验证,还可以是通过可信计算环境的区块链账户公钥对处理结果中的私钥签名进行验证,在确保获取处理结果准确性的同时,提高了对处理结果验证的灵活性。

第三方面,本申请实施例还提供了一种基于区块链的数据处理装置,该装置包括:

接口智能合约,部署于区块链中,用于对初始事务请求进行解析处理,并根据解析得到的数据产生链外处理请求,其中,所述初始事务请求由业务智能合约产生,且存在链外处理需求;

可信计算环境模块,配置于可信数据源系统中,用于执行所述链外处理请求,生成处理结果;

所述接口智能合约,还用于将所述处理结果反馈给所述业务智能合约。

上述申请中的一个实施例具有如下优点或有益效果:通过部署在区块链中的接口智能合约对业务智能合约产生的存在链外处理需求的初始事务请求进行解析处理,根据解析处理到的数据产生链外处理请求;由可信数据源系统中配置的可信计算环境执行该链外处理请求产生处理结果;通过接口智能合约将反馈结果反馈给业务智能合约。通过区块链上部署的业务智能合约、可信数据源系统中的接口智能合约和可信计算环境之间的配合,实现了对区块链网络存在链外处理需求的事务请求进行处理的情况,解决了现有技术,区块链网络不能访问外部资源进行事务请求处理的问题,以使区块链网络中对数据处理的能力更加丰富灵活,同时采用可信计算环境对链外处理请求进行处理,兼顾了数据的安全性和处理过程的可靠性。

第四方面,本申请实施例还提供了一种基于区块链的数据处理的装置,配置于区块链节点中,所述装置包括:

初始请求获取模块,用于获取用户调用业务智能合约而生成的初始事务请求,其中,所述初始事务请求存在链外处理需求;

业务智能合约模块,用于根据所述初始事务请求通知所述接口智能合约,以产生链外处理请求,并请求可信计算环境对链外处理请求进行处理;

所述业务智能合约模块,还用于从所述接口智能合约获取反馈的处理结果。

上述申请中的一个实施例具有如下优点或有益效果:区块链节点产生存在链外处理需求的初始事务请求后,可以通过其业务智能合约与可信数据源系统中的接口智能合约交互,借助可信数据源系统中的接口智能合约、控制模块以及可信计算环境,实现链外处理需求,并获取处理结果。解决了现有技术,区块链网络不能访问外部资源进行事务请求处理的问题,以使区块链网络对数据处理的能力更加丰富灵活,同时采用可信计算环境对链外处理请求进行处理,兼顾了数据的安全性和处理过程的可靠性。

第五方面,本申请实施例还公开了一种电子设备,该电子设备包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如本申请任一实施例所述的基于区块链的数据处理方法。

第六方面,本申请实施例还公开了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如本申请任一实施例所述的基于区块链的数据处理方法。

上述申请中的一个实施例具有如下优点或有益效果:通过部署在区块链中的接口智能合约对业务智能合约产生的存在链外处理需求的初始事务请求进行解析处理,根据解析处理到的数据产生链外处理请求;由可信数据源系统中配置的可信计算环境执行该链外处理请求产生处理结果;通过接口智能合约将反馈结果反馈给业务智能合约。通过区块链上部署的业务智能合约、可信数据源系统中的接口智能合约和可信计算环境之间的配合,实现了对区块链网络中存在链外处理需求的事务请求进行处理的情况,解决了现有技术,区块链网络不能访问外部资源进行事务请求处理的问题,以使区块链网络对数据处理的能力更加丰富灵活,同时采用可信计算环境对链外处理请求进行处理,兼顾了数据的安全性和处理过程的可靠性。

上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。

附图说明

附图用于更好地理解本方案,不构成对本申请的限定。其中:

图1a是根据本申请实施例提供的执行区块链的数据处理方法的一种架构图;

图1b是根据本申请第一实施例提供的基于区块链的数据处理方法的流程图;

图2a是根据本申请实施例提供的执行区块链的数据处理方法的另一种架构图;

图2b是根据本申请第二实施例提供的基于区块链的数据处理方法的流程图;

图3是根据本申请第三实施例提供的基于区块链的数据处理方法的流程图;

图4是根据本申请第四实施例提供的基于区块链的数据处理方法的流程图;

图5是根据本申请第五实施例提供的基于区块链的数据处理方法的流程图;

图6a-6c是根据本申请第六实施例提供的基于区块链的数据处理方法的流程图;

图7是根据本申请第七实施例提供的基于区块链的数据处理装置的结构框图;

图8是根据本申请第八实施例提供的基于区块链的数据处理装置的结构框图;

图9是用来实现本申请第九实施例的基于区块链的数据处理方法的电子设备的框图。

具体实施方式

以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

第一实施例

在介绍本申请实施例之前,先对本申请执行基于区块链的数据处理方法的各设备端进行解释说明。图1a示出的执行本申请实施例区块链的数据处理方法的一种系统架构,该架构包括:用户端、区块链网络、可信数据源系统(即图1a中的虚线框部分)以及外部数据源。

其中,用户端是供用户访问区块链网络,调用其中的业务智能合约发起相关业务事务请求的设备端,其可以是区块链网络的节点设备,如是区块链网络的轻量级节点设备,也可以是服务商为用户提供的一个可访问区块链网络的软件平台(如可以是saas平台)。

区块链网络中部署有业务智能合约,该业务智能合约即为可供用户调用后发起某种业务事务请求的任意程序。用户可以通过其用户端调用部署在区块链网络中的业务智能合约发起处理相关业务的事务请求。

可信数据源系统可以是部署有可信计算环境,用于在区块链网络无法执行存在链外处理需求的事务请求时,协助区块链网络处理该事务请求的系统。该可信数据源系统包括接口智能合约(即oracle合约)和可信计算环境(trustedexecutionenvironment,tee)。其中,接口智能合约是部署在区块链网络中的用于可信数据源系统和区块链网络进行数据传输的程序集合。具体可以用于获取业务智能合约发起的待链外处理的事务请求传输给可信计算环境,以及获取可信计算环境处理链外处理请求生成的处理结果传输给业务智能合约。可信计算环境可以是通过硬件技术实现的保证存储空间和计算过程可信的环境,可信计算环境可以保护运行在其中的代码和数据等不会被任何外部软件篡改和窃取。可选的,提供可信计算环境的机制可以有很多,例如,可以是internet环境下的sgx(softwareguardextensions)。可选的,本申请实施例中的可信数据源系统中可信计算环境可以配置于可信数据源系统对应的设备端,该设备端可以是区块链网络的节点设备,也可以不是区块链网络的节点设备。

外部数据源可以为可信数据源系统处理存在链外处理需求的事务请求时,为其提供处理该事务请求所需数据的数据提供端。可选的,由于并不是所有的存在链外处理需求的事务请求都需要获取外部数据,所以图1a的系统构架中外部数据源需根据实际情况设置。

接下来,基于上述介绍的系统架构对本申请第一实施例提供的一种基于区块链的数据处理方法进行详细阐述。

图1b是根据本申请第一实施例提供的基于区块链的数据处理方法的流程图。本实施例适用于基于区块链进行数据处理的情况,尤其适用于对区块链网络中的存在链外处理需求的事务请求进行处理的情况。该方法可以由图1a所示的可信数据源系统来执行。具体的,该方法可以由可信数据源系统中配置的基于区块链的数据处理的装置来执行,该装置可以采用软件和/或硬件的方式实现。如图1b所示,本实施例提供的基于区块链的数据处理方法可以包括:

s101,通过部署于区块链中的接口智能合约对初始事务请求进行解析处理,并根据解析得到的数据产生链外处理请求。

其中,本申请实施例的初始事务请求由业务智能合约产生,且存在链外处理需求。链外处理请求可以是接口智能合约产生的请求可信数据源执行的数据处理请求,该链外处理请求与初始事务请求的数据处理需求是一样的。

可选的,本申请中的初始事务请求可以是用户端可以根据用户的数据处理需求,调用区块链网络中部署的该数据处理需求对应的业务智能合约,产生初始事务请求。例如,假设用户端为服务商提供的saas平台,saas平台可以向用户展示其可为用户提供的至少一个数据处理服务(如可以有图像数据的查找、图像类型的识别、图像数据的统计等等),若用户想要进行图像类型识别,则其可以在saas平台上选择图像类型的识别服务,输入待识别的图像或待识别图像的数据源地址等,此时saas平台就会调用该图像类型的识别服务对应的业务智能合约,产生请求区块链网络对待识别图像进行类型识别的初始事务请求。

可选的,初始事务请求存在链外处理需求的原因有很多,例如,可能是由于该初始事务请求的计算量较大,区块链节点的算力不足,需要请求本申请实施例的链外可信数据源系统来执行。还可能是该初始事务请求处理过程中需要使区块链外部数据源中的数据进行处理,由于区块链网络内部执行事务请求时不能访问外部数据,所以需要请求链外可信数据源系统来执行。

可选的,本步骤部署于区块链中的接口智能合约在获取到初始事务请求后,需要对该初始事情请求进行解析,获取初始事务请求中包含的数据(即解析得到的数据),可选的,该数据可以包括表征数据处理需求的请求数据、该初始事务请求对应的请求方信息、发起该初始事务请求的业务智能合约信息等。

可选的,本步骤在根据解析得到的数据产生链外处理请求时,可以包括以下两种方式,一种是根据解析到的数据产生事务请求,作为链外处理请求,即该种方式是创建事务请求形式的外链处理请求。另一种是根据解析得到的数据产生日志记录,作为链外处理请求,即该种方式是创建日志记录形式的链外处理请求。需要说明的是,无论链外处理请求属于上述哪种形式,其生成方式都可以是根据解析到的数据运行接口智能合约的相关程序代码(如创建事务请求的程序代码,或创建日志记录的程序代码),即可得到事务请求形式或日志记录形式的链外处理请求。

s102,通过可信数据源系统中配置的可信计算环境执行链外处理请求,生成处理结果。

可选的,可信数据源系统中配置的可信计算环境获取接口智能合约产生的链外处理请求后,需要在可信环境中执行该链外处理请求,具体的执行过程可以是对链外处理请求进行分析,确定待处理的数据、数据处理条件以及需要执行的业务处理功能等,然后根据解析到待处理的数据或数据处理条件,运行该业务功能处理的程序代码,得到对该链外处理请求对应的处理结果。

可选的,本步骤可信计算环境执行链外处理请求时,有时可能不需要访问外部数据源,例如,若链外处理请求中包含了待处理的数据,此时可信计算环境直接根据链外处理请求中包含的待处理数据执行相关功能处理操作就行,无需访问外部数据源。有时可能又需要访问外部数据源,例如,若链外处理请求中包含了待处理数据存储的外部数据源的信息(如地址或名称等),此时可信计算环境就需要访问外部数据源从中获取待处理数据后再在可信计算环境中执行相关处理操作。若本步骤可信计算环境执行该链外处理请求的过程中需要访问外部数据源,则可以是通过可信计算环境,按照链外处理请求访问读取外部数据源。通过可信计算环境,从读取的外部数据中解析获得链外处理请求所需处理数据。通过可信计算环境,对所需处理数据进行处理,生成处理结果。其具体的执行过程将在后续实施例进行详细介绍。

可选的,为了保证可信计算环境处理结果的安全性。可以是通过可信计算环境执行链外处理请求,生成处理结果,并封装为结果事务请求;采用所述可信计算环境的区块链账户私钥对所述结果事务请求进行签名。具体的,可信计算环境在区块链网络中注册有一个区块链账户,进而也就分配了对应的区块链账户公私钥,本步骤可信计算环境在执行链外处理请求产生处理结果后,将处理结果填入到构建区块链事务请求的模板中,即可完成对处理结果封装为结果事务请求,然后可信计算环境再采用其区块链账户私钥对该结果处理请求进行签名。对处理结果进行封装以及签名的操作由可信计算环境执行,可进一步保证处理结果的安全性。

s103,通过接口智能合约将处理结果反馈给业务智能合约。

可选的,接口智能合约在可信计算环境产生处理结果后,获取该处理结果,然后将该处理结果反馈给对应的业务智能合约,其中,该业务智能合约为区块链网络中部署的发起可信计算环境处理的链外处理请求对应的初始事务请求的业务智能合约。业务智能合约在接收到处理结果后,将该处理结果反馈给发起本次初始事务请求的用户方。可选的,接口智能合约在获取到处理结果后,为了保证处理结果的可追溯性,还可以将该处理结果进行上链存储。

可选的,为了保证本步骤向业务智能合约反馈或存储的处理结果的准确性。接口智能合约在反馈或存储处理结果之前,可以对该业务智能合约进行验证,若验证成功,再将其反馈或上链操作,其中具体的验证过程将在后续实施例进行详细介绍。

本申请实施例的技术方案,通过部署在区块链中的接口智能合约对业务智能合约产生的存在链外处理需求的初始事务请求进行解析处理,根据解析处理到的数据产生链外处理请求;由可信数据源系统中配置的可信计算环境执行该链外处理请求产生处理结果;通过接口智能合约将反馈结果反馈给业务智能合约。通过区块链上部署的业务智能合约、可信数据源系统中的接口智能合约和可信计算环境之间的配合,实现了对区块链网络中存在链外处理需求的事务请求进行处理的情况,解决了现有技术,区块链网络不能访问外部资源进行事务请求处理的问题,以使区块链网络对数据处理的能力更加丰富灵活,同时采用可信计算环境对链外处理请求进行处理,兼顾了数据的安全性和处理过程的可靠性。

第二实施例

图2a是根据本申请实施例提供的执行区块链的数据处理方法的另一种架构图;该架构图在图1a示出的架构的基础上,在可信数据源系统中增加了控制模块(即relay模块),控制模块可以是可信数据源系统中,连接接口智能合约和可信计算环境的中间模块,该控制模块在可信数据源系统中主要起到服务管理的作用,例如,该控制模块可以在区块链网络中部署接口智能合约,从接口智能合约获取链外处理请求传输至可信计算环境,以及从可信计算环境获取链外处理请求的处理结果反馈给接口智能合约。其具体的功能将在接下来的实施例中进行详细介绍。可选的,本申请实施例中的可信数据源系统中的控制模块和可信计算环境可以配置于可信数据源系统对应的设备端,该设备端可以是区块链网络的节点设备,也可以不是区块链网络的节点设备。

图2b是根据本申请第二实施例提供的基于区块链的数据处理方法的流程图。本实施例在上述实施例的基础上进行优化,给出了可信数据源系统中增加了控制模块后,如何执行本实施例的基于区块链的数据处理方法的详细过程介绍。本实施例提供的基于区块链的数据处理方法可以包括:

s201,通过部署于区块链中的接口智能合约,获取业务智能合约被调用时产生的初始事务请求。

其中,所述初始事务请求存在链外处理需求。

可选的,本步骤中,接口智能合约获取业务智能合约被调用时产生的初始事务请求时,可以是业务智能合约被调用产生了存在链外处理需求的初始事务请求后,主动将该初始事务请求发送至同样部署在区块链网络中的接口智能合约;还可以是接口智能合约在部署到区块链网络中后,就启动对业务智能合约进行主动监听,以监听的方式获取业务智能合约产生的存在链外处理需求的初始事务请求。

可选的,本实施例中业务智能合约或接口智能合约区分一个初始事务请求是否存在链外处理的需求的方法有很多,例如,可以是设定一些业务智能合约,这些业务智能合约产生的初始事务请求都存在链外处理需求;还可以是对存在链外处理需求的初始事务请求,其程序代码中增加一个专门的字段,若检测到产生的初始事务请求中存在该字段,则说明该初始事务请求存在链外处理需求。

s202,通过接口智能合约对初始事务请求进行解析处理,并根据解析得到的数据产生链外处理请求。

s203,通过可信数据源系统中配置的控制模块,获取链外处理请求,并传输给可信数据源系统中配置的可信计算环境。

可选的,在本实施例中,接口智能合约产生链外处理请求后,可以将该链外处理请求传输给可信数据源系统中配置的控制模块。此时链外处理请求的传输方式类似于上述传输初始事务请求的过程,控制模块可以是主动监听获取,也可以是被动接收获取。对此本实施例不进行限定。可选的,当接口智能合约根据解析得到的数据产生日志记录作为链外处理请求时,优选由控制模块监听该接口智能合约的日志记录,获取该链外处理请求。

可选的,可信数据源系统中配置的控制模块在获取到接口智能合约产生的链外处理请求后,为了保证链外处理请求处理过程的安全性和可信性,控制模块需要将获取的该链外处理请求传输到可信数据源系统中配置的可信计算环境内,由可信计算环境来执行对该链外处理请求的处理过程。

可选的,为了防止可信计算环境对同一链外处理请求进行重复处理,本步骤的具体实现方式可以是:通过可信数据源系统中配置的控制模块,获取链外处理请求;通过控制模块,从该可信计算环境的区块链账户计数池中为链外处理请求分配计数值;通过控制模块将分配有计数值的链外处理请求传输给可信数据源系统中配置的可信计算环境。其中,需要说明的是,本实施例的可信计算环境对应一个区块链账户,该区块链账户对应有唯一的一个计数池,该计数池用于给链外处理请求顺序分配计数值(nonce),具体的,控制模块每获取一个链外处理请求,就通过该计数池为获取的链外处理请求分配一个顺序递增的计数值,例如,若控制模块从计数池中为本次获取的链外处理请求分配的计数值为1,则控制模块下一次获取链外处理请求后,为从该计数池中为下一链外处理请求分配的计数值为2。控制模块在为获取的链外处理请求分配了计数值后,再将分配有计数值的该链外处理请求传输给可信计算环境。

s204,通过可信计算环境执行链外处理请求,生成处理结果。

可选的,若本步骤可信计算环境执行该链外处理请求的过程中需要访问外部数据源,则此时可通过以下三个子步骤来实现:

s2041,通过可信计算环境,按照链外处理请求访问读取外部数据源。

具体的,可信计算环境从链外处理请求中获取到需要访问的外部数据源的信息(如地址或名称等),然后基于获取的外部数据源的信息,可通过http方式访问该外部数据源,读取该外部数据源中的数据。

可选的,若可信计算环境需要访问外部数据源时,可以是通过控制模块,根据管理数据库中的配置文件,加载外部数据源。具体的,可以是控制模块从可信数据源系统的管理数据库中读取需要访问的外部数据源的配置文件,运行该配置文件加载外部数据源,从而实现可信计算环境对该外部数据源的访问。需要说明的是,本实施例的可信计算环境可访问的外部数据源可以是任意的,但为了保证链外处理请求执行过程的安全性和系统需求,优选配置规定的外部数据源,以便于管理。

s2042,通过可信计算环境,从读取的外部数据中解析获得链外处理请求所需处理数据。

具体的,可信计算环境在读取外部数据源中的外部数据后,需要在读取到的外部数据中解析查找执行本次链外处理请求所需的处理数据。例如,若外部数据源存储有很多画家的图像作品,本步骤执行外链处理请求需要的是画家a的图像作品,此时可以是从读取到的外部数据中查找得到画家a的图像作品作为执行本次链外处理请求所需的处理数据。可选的,本子步骤在解析获取链外处理请求所需处理数据时,可以是对链外处理请求中的查找条件转换为外部数据源对应的查找语句(如sql语句),然后基于转换后的查找语句,从读取到的外部数据中进一步查找执行本次链外处理请求需要的处理数据。

s2043,通过可信计算环境,对所需处理数据进行处理,生成处理结果。

具体的,在s2042解析出所需处理数据后,通过调用可信计算环境中处理该数据的程序代码,实现对该所需处理数据执行链外处理的过程,得到处理结果。

可选的,若s203中控制模块传输到可信计算环境中的链外处理请求中携带有计数值,则本步骤可信计算环境产生的处理结果中携带有s203中分配的该计数值。

可选的,为了保证可信计算环境处理结果的安全性。可以是通过可信计算环境执行链外处理请求,生成处理结果,并封装为结果事务请求;采用所述可信计算环境的区块链账户私钥对所述结果事务请求进行签名。具体的,可信计算环境在区块链网络中注册有一个区块链账户,进而也就分配了对应的区块链账户公私钥,本步骤可信计算环境在执行链外处理请求产生处理结果后,将处理结果填入到构建区块链事务请求的模板中,即可完成对处理结果封装为结果事务请求,然后可信计算环境再采用其区块链账户私钥对该结果处理请求进行签名。对处理结果进行封装以及签名的操作由可信计算环境执行,可进一步保证处理结果的安全性。

s205,通过控制模块获取可信计算环境产生的处理结果,并反馈给接口智能合约。

可选的,可信计算环境执行链外处理请求产生处理结果后,需要将该处理结果传输给控制模块,以请求控制模块将该反馈处理结果进一步反馈给接口智能合约。可选的,可信计算环境与控制模块之间传输处理结果,以及控制模块和接口智能合约之间传输处理结果,同样也可以是采用主动监听和被动接收的方式传输。

s206,通过接口智能合约将处理结果反馈给业务智能合约。

本申请实施例的技术方案,通过部署在区块链中的接口智能合约获取业务智能合约被调用时产生的初始事务请求进行解析处理,根据解析处理到的数据产生链外处理请求;可信数据源系统中配置的控制模块获取该链外处理请求后传输给可信计算环境,由可信计算环境执行该链外处理请求产生处理结果;控制模块获取该处理请求反馈给接口智能合约,接口智能合约再将反馈结果反馈给业务智能合约。通过区块链上部署的业务智能合约和可信数据源系统中的接口智能合约、控制模块以及可信计算环境之间的配合,实现了对区块链网络中存在链外处理需求的事务请求进行处理的情况,解决了现有技术,区块链网络不能访问外部资源进行事务请求处理的问题,以使区块链网络对数据处理的能力更加丰富灵活,同时采用可信计算环境对链外处理请求进行处理,兼顾了数据的安全性和处理过程的可靠性。

第三实施例

图3是根据本申请第三实施例提供的基于区块链的数据处理方法的流程图。本实施例在上述实施例的基础上进行优化,具体给出了控制模块获取链外处理请求传输给可信计算环境,以及可信计算环境执行该链外处理请求,生成处理结果的详细过程介绍。

可选的,本申请实施例中,可信数据源系统配置的可信计算环境中配置有至少一个安全容器实例(enclave),用于执行设定功能的数据处理操作。该安全容器实例可以是实现某种计算功能的代码集合,用于执行设定功能的数据处理任务。可信计算环境中为每个安全容器实例都划分出了一块被保护区域,用于保护安全容器实例内的程序代码和数据提供机密性和完整性的保护,避免受到恶意软件的破坏。需要说明的是,本实施例中可信计算环境中运行的至少一个安全容器实例的数据处理功能可以相同,也可以不同,对此本实施例不进行限定。例如,安全容器实例的数据处理功能可以包括但不限于:模型训练功能、基于模型的预测功能、数据查询统计功能等。

接下来,在介绍本实施例之前,对本申请实施例的可信数据源系统的启动以及接口智能合约的部署过程进行介绍。可选的,可信数据源系统中的各安全容器实例可以是通过控制模块来管理的,通过控制模块,根据管理数据库中记录的安全容器实例的元数据,对安全容器实例进行加载、恢复或释放。其中,管理数据库是用于存储安全容器实例的元信息的数据库,安全容器实例的元信息是描述安全容器实例的信息,其可以包括但不限于:安全容器实例的程序代码、代码存证、为该安全容器实例分配的进程、安全容器实例运行过程中产生的缓存数据以及安全容器实例对应的区块链账户密钥等。当控制模块需要启动运行某一安全容器实例时,可以是从管理数据库中获取该安全容器实例的元数据对该安全容器实例进行加载,该安全容器实例运行完成数据处理操作后,再将其进行释放。若安全容器实例运行过程中出现异常中断,此时控制模块可以根据管理数据库中存储的该安全容器实例的元数据恢复加载该安全容器实例。

可选的,管理数据库中存储的各安全容器实例是由控制模块创建的,控制模块可以在通过管理数据库中查询是否存在某一数据处理功能的安全容器实例;若不存在,则控制模块需要创建一个具有该数据处理功能的安全容器实例,具体的创建过程可以是为安全容器实例分配进程、区块链账户密钥,并为安全容器实例计算代码存证(即计算安全容器实例的程序代码的哈希值,得到代码存证),在创建完成后将新创建的安全容器实例的元数据存储到管理数据库中,以便后续快速加载该安全容器实例。

可选的,可信数据源系统可以是通过控制模块,向区块链网络中部署接口智能合约,并记录该接口智能合约的合约地址。可选的,向区块链网络中部署接口智能合约时,可以是将接口智能合约的程序集合写入到区块链网络中。该接口智能合约的合约地址可以是区块链中存储该接口智能合约的地址。在将接口智能合约部署到区块链网络后,还需要通过控制模块,将安全容器实例通过接口智能合约部署于业务智能合约中,供业务智能合约调用。具体的部署方法可以是通过接口智能合约在业务智能合约中写入各种数据处理功能的安全容器实例的调用函数,从而建立业务智能合约调用各安全容器实例的接口,后续当业务智能合约接收到用户的数据处理需求时,可以通过其上部署的数据处理功能的安全容器实例的接口,调用对应的安全容器实例。例如,若用户的数据处理需求是进行图像类型识别,则此时业务智能合约通过部署在其上的各安全容器实例中查找并调用功能为图像类别识别的安全容器实例发起初始事务请求。

可选的,在完成上述介绍的操作后,可以通过所述控制模块,启动对接口智能合约所产生日志记录的监听,以从日志记录中获取链外处理请求。从而执行申请各实施例介绍的基于区块链的数据处理方法。

接下来对本实施例中涉及的可信计算环境的区块链账户公私钥和可信计算环境中的安全容器实例的区块链账户公私钥的关系进行解释说明。具体的,本实施例中可信计算环境在区块链网络中对应唯一的区块链账户,但是该区块链账户中的公私钥可以是一对也可以是多对,当该区块链账户的公私钥为一对时,可信计算环境中的各安全容器实例的区块链账户公私钥即为该对公私钥;若该区块链账户的公私钥为多对时,可以是为可信计算环境中的各安全容器实例分为不同的区块链账户公私钥。

可选的,为了保证可信数据源系统的启动以及接口智能合约的部署过程的可追溯性,本申请实施例还可以通过控制模块,将区块链账户的地址和公钥、以及安全容器实例的代码存证,通过接口智能合约进行上链存储。

如图3所示,本实施例提供的基于区块链的数据处理方法可以包括:

s301,通过部署于区块链中的接口智能合约,获取业务智能合约被调用时产生的初始事务请求。

其中,所述初始事务请求存在链外处理需求。

s302,通过接口智能合约对初始事务请求进行解析处理,并根据解析得到的数据产生链外处理请求。

s303,通过可信数据源系统中配置的控制模块,获取链外处理请求。

s304,通过控制模块根据链外处理请求确定对应的安全容器实例。

其中,可信计算环境中运行有至少一个安全容器实例。

可选的,由于控制模块已经将可信计算环境中的安全容器实例通过接口智能合约部署于业务智能合约中,供业务智能合约调用,因此业务智能合约产生的初始事务请求中可以包括业务智能合约调用的安全容器实例,进而根据初始事务请求产生的链外处理请求中也可以包括业务智能合约调用的安全容器实例,此时控制模块可以对该链外处理请求进行分析,从中获取业务智能合约调用的安全容器实例,并将其作为该链外处理请求对应的安全容器实例。

可选的,若链外处理请求中没有包含业务智能合约调用的安全容器实例,本步骤可以是控制模块分析该链外处理请求对应的数据处理需求,然后将可信计算环境中具有该数据处理需求的安全容器实例作为链外处理请求对应的安全容器实例。需要说明的是,本步骤还可以采用其他方式确定链外处理请求对应的安全容器实例,对此不进行限定。

可选的,控制模块确定出链外处理请求对应的安全容器实例后,可以是从管理数据库中查询是否存在本步骤确定的安全容器实例,若存在,直接根据管理数据库中记录的该安全容器实例的元数据,对该安全容器实例进行加载。如果不存在,控制设备需要创建该安全容器实例。并将该创建的安全容器实例的元数据写入管理数据库中。

s305,通过控制模块,将链外处理请求传输给安全容器实例。

其中,可信计算环境中的每个安全容器实例都分配有一对区块链账户私钥和公钥。

可选的,s304通过控制模块确定出外链处理请求对应的安全容器实例后,需要将链外处理请求传输给对应的安全容器实例,由该安全容器实例在可信计算环境中对该链外处理请求进行后续处理操作。

可选的,为了保证传输给安全容器实例的链外处理请求的有效性,控制模块在将链外处理请求传输给安全容器实例之前,可以先对获取的该链外处理请求进行有效性验证,具体的,可以是查看该链外处理请求对应的请求数据源是否是可信数据源系统支持的数据源,若支持,则可以执行本步骤的操作将链外处理请求传输给安全容器实例;若不支持,则可以是产生错误码和错误理由,跳过s306中通过安全容器实例执行链外处理请求的过程,直接将该错误码和错误理由作为该链外处理请求的处理结果,执行后续对处理结果封装为结果事务请求的操作。

s306,通过该安全容器实例执行链外处理请求,生成处理结果,并封装为结果事务请求。

可选的,接收到链外处理请求的安全容器实例在可信计算环境中运行其程序代码,实现执行链外处理请求的过程,产生处理结果。可选的,本步骤中安全实例容器产生的处理结果中除了包含对链外处理请求的数据处理功能对应的执行结果外,还可以包括该链外处理请求对应的计数值(即通过控制模块从可信计算环境的区块链账户计数池中为该链外处理请求分配的计数值)、链外处理请求的标识、链外处理请求所请求数据的哈希值以及处理状态码(该状态码可以是包括外链处理请求处理完成、处理失败、未处理等)等。可选的,为了用户或其他区块链节点后续可以对执行本次链外处理请求的安全容器实例的可信度进行验证,本步骤的处理结果中还可以携带安全容器实例的代码存证,所述代码存证,是对该安全容器实例的程序代码进行哈希运算得到,可用于唯一标识安全容器实例的运行代码。其中,哈希值可以为安全容器实例对所请求数据计算的哈希值,记为第一哈希值。

在产生处理结果后,将处理结果中包含的执行结果、该链外处理请求的计数值、标识、哈希值、处理状态码以及执行本次链外处理请求的安全容器实例的代码存证填入到构建区块链事务请求的模板中,即可完成对处理结果的封装,得到结果事务请求。

s307,采用安全容器实例的区块链账户私钥对结果事务请求进行签名。

可选的,安全容器实例可以采用其区块链账户私钥对产生的结果事务请求进行签名,后传输给控制模块,从而保证处理结果的安全性。

可选的,本申请实施例还可以是安全容器实例执行完s306操作后,就将得到的结果事务请求传输给控制模块,由控制模块采用安全容器实例的区块链账户私钥对结果事务请求进行签名操作。对此本实施例不进行限定。

s308,通过控制模块获取可信计算环境产生的签名后的结果事务请求,并反馈给接口智能合约。

s309,通过接口智能合约将签名后的结果事务请求反馈给业务智能合约。

本申请实施例的方案,控制模块从接口智能合约获取。链外处理请求后,从可信计算环境中确定执行本次链外处理请求的安全容器,并将该链外处理请求传输给该链外处理请求对应的安全容器实例,可信计算环境中的各安全容器实例可以独立完成对链外处理请求的处理,实现了可信计算环境支持并发处理多种不同功能的链外处理请求,提高了可信计算环境的处理链外处理请求的灵活性。且可信计算环境中的安全容器在执行链外处理请求得到处理结果后,将安全容器的代码携带在处理结果中,对处理结果进行封装、采用区块链账户私钥进行签名生成结果事务请求反馈给接口智能合约,进而反馈给业务智能合约,保证了该安全容器实例处理得到的处理结果的安全性和可靠性。

第四实施例

图4是根据本申请第四实施例提供的基于区块链的数据处理方法的流程图。本实施例在上述实施例的基础上进行优化,具体给出了通过接口智能合约对初始事务请求进行解析处理,根据解析得到的数据产生链外处理请求,以及通过控制模块获取可信计算环境产生的处理结果,反馈给接口智能合约的详细过程介绍。如图4所示,本实施例提供的基于区块链的数据处理方法可以包括:

s401,通过部署于区块链中的接口智能合约,获取业务智能合约被调用时产生的初始事务请求。

其中,初始事务请求存在链外处理需求。

s402,通过接口智能合约,计算初始事务请求所请求数据的哈希值。

其中,初始事务请求所请求数据可以是用于描述如何执行该初始事务请求的数据信息,可以包括但不限于:数据处理方法、待处理的数据内容、待处理的数据存储路径以及筛选条件等。例如,若初始事务请求为对外部数据源1中画家a的画作进行图像类型识别,则此时该所请求数据可以包括:外部数据源1(即数据存储路径)、画家a的画作(即数据筛选条件)以及进行图像类型识别(即数据处理方法)。

可选的,本步骤可以是接口智能合约对获取到的初始事务请求进行分析,解析其中包含的所请求数据,并对解析到的所请求数据进行哈希值计算,得到请求数据的哈希值。

可选的,本步骤接口智能合约执行计算初始事务请求所请求数据的哈希值之前,可以先验证该初始事务请求所请求数据是否合法,如果不合法直接向业务智能合约反馈错误消息,不再执行后续操作,如果合法在执行本步骤计算所请求数据的哈希值。

s403,通过接口智能合约基于初始事务请求的事务标识、所请求数据、哈希值、业务智能合约的接口地址和回调函数,产生链外处理请求。

可选的,本步骤可以是接口智能合约根据获取的初始事务请求中包含的事务标识、s403解析出的初始事务请求的所请求数据和计算得到的所请求数据的哈希值以及产生该初始事务请求的业务智能合约的接口地址和该初始事务请求的回调函数,运行产生链外处理请求的程序代码,产生包含初始事务请求的事务标识、所请求数据、所请求数据的哈希值、业务智能合约的接口地址和回调函数的链外处理请求,并将产生的该链外处理请求传输至控制模块。其中,业务智能合约的接口地址和回调函数用于后续产生处理结果后向业务智能合约反馈处理结果时使用。所请求数据的哈希值用于后续验证处理结果的准确性时使用。

s404,通过可信数据源系统中配置的控制模块,获取链外处理请求,并传输给可信数据源系统中配置的可信计算环境。

s405,通过可信计算环境执行链外处理请求,生成处理结果。

s407,通过控制模块获取可信计算环境产生的处理结果。

s408,通过控制模块,将处理结果采用可信计算环境的区块链账户进行签名,并调用接口智能合约发起结果事务请求,以将处理结果进行上链存储。

其中,处理结果包括执行结果、该链外处理请求的计数值、标识、所请求数据的哈希值、处理状态码以及执行本次链外处理请求的安全容器实例代码等。

可选的,控制模块从可信计算环境中获取处理结果后,采用可信计算环境的区块链账户的私钥对该处理结果进行签名。若该处理结果是可信计算环境中的安全容器实例执行链外处理请求产生的,则此时控制模块可以是用产生该处理结果的安全容器实例的区块链账户私钥对处理结果进行签名。由于s403产生的链外处理请求中包含了业务智能合约的接口地址和回调函数,此时本步骤控制模块对处理结果签名完成后,可以将处理结果传输至接口智能合约,优选的,可以将私钥签名后的处理结果传输给接口智能合约。同时调用接口智能合约,发起包含签名后的处理结果的结果事务请求,以请求将采用可信计算环境的区块链账户进行签名后的处理结果存储在区块链中。

可选的,为了保证上链数据的可靠性和安全性,本步骤可以是在控制模块调用接口智能合约发起结果事务请求之后,先对待上链存储的结果事务请求进行安全性验证,验证成功后,在执行结果事务请求的上链操作。具体的执行过程可以包括以下几个子步骤:

s4081,通过接口智能合约对结果事务请求的区块链账户进行验证。

可选的,由于结果事务请求是采用可信计算环境的区块链账户私钥进行签名得到的,此时本子步骤接口智能合约可以采用可信计算环境的区块链账户公钥对结果事务请求进行解密,若解密成功,则说明对可信计算环境的区块链账户(即结果事务请求的区块链账户)验证通过。否则验证不通过。

s4082,通过接口智能合约验证结果事务请求与初始事务请求的所请求数据是否匹配。

可选的,本步骤可以是验证结果事务请求中生成处理结果所依据的所请求数据,与初始事务请求中的所请求数据是否匹配,目的是为了防止产生链外处理请求时对初始事务请求中的所请求数据进行篡改,导致处理结果并非初始事务请求的所请求数据对应的处理结果。具体的,本步骤的匹配过程可以是从处理结果中获取所请求数据的哈希值(即第一哈希值),再计算初始事务请求的所请求数据的哈希值(即第二哈希值),进而将第一哈希值与第二哈希值进行一致性比较,若一致,则说明本子步骤匹配通过,否则匹配不通过。

s4083,如果验证通过且匹配通过,则通过接口智能合约将结果事务请求上传到区块链网络中。

可选的,若s4081通过接口智能合约对结果事务请求的区块链账户验证通过,且s4082通过接口智能合约验证结果事务请求与初始事务请求的所请求数据匹配通过,则此时方可通过接口智能合约将处理结果进行上链存储。

可选的,为了防止将结果事务请求重复上链存储,本步骤还在将结果事务请求上链之前,通过处理结果中包括的链外处理请求的计数值,来判断该计数值是否为最新的计数值,若是,则说明该结果事务请求之前没有存储过,此时可以将该结果事务请求进行上链存储。

s409,通过接口智能合约,根据处理结果执行回调函数,按照业务智能合约的接口地址将处理结果进行反馈。

可选的,本步骤接口智能合约可以是从处理结果对应的链外处理请求中获取业务智能合约的接口地址和回调函数,基于处理结果调用该回调函数,将处理结果反馈至业务智能合约的接口地址,进而实现将处理结果反馈给业务智能合约。

可选的,在本申请实施例中,为了便于监控可信数据源系统对初始事务请求的处理状态,可以在处理初始事务请求的过程中,记录请求处理状态,即在接口智能合约获取初始事务请求后,将该初始事务请求的处理状态记录为未处理;在接口智能合约执行完本步骤的操作后,在将该初始事务请求的处理状态记录为已处理。可选的,本步骤在对待上链存储的结果事务请求进行安全性验证时,还可以时验证该处理结果对应的初始事务请求的处理状态是否为已处理,若是,则验证过程。

本申请实施例的技术方案,接口智能合约从业务智能合约处获取到初始事务请求后,计算该初始事务请求的所请求数据的哈希值,产生的链外处理请求中包含事务标识、哈希值、业务智能合约的地址和回调函数。

控制模块获取该链外处理请求后传输给可信计算环境,由可信计算环境执行该链外处理请求产生处理结果后传输给控制模块,控制模块对处理结果进行签名后,调用接口智能合约发起结果事务请求,接口智能合约对接收到该结果事务请求进行双重验证后进行上链存储,保证了上链存储的处理结果的安全性和可靠性。另外,接口智能合约还根据处理结果中的业务智能合约的地址和回调函数准确向业务智能合约反馈处理结果。进一步保证了处理初始事务请求的安全性和可靠性。

第五实施例

图5是根据本申请第五实施例提供的基于区块链的数据处理方法的流程图。本实施例适用于基于区块链进行数据处理的情况,尤其适用于区块链节点借助可信计算可信数据源系统对用户发起的存在链外处理需求的事务请求进行处理的情况。该方法可以由区块链节点来执行。该区块链节点可以是该区块链节点可以是区块链网络中的出块节点,也可以是区块链网络中的其他节点,如当前没有区块生成权限的任意节点。具体的,该方法可以由区块节点中配置的基于区块链的数据处理的装置来执行,该装置可以采用软件和/或硬件的方式实现。如图5所示,本实施例提供的基于区块链的数据处理方法可以包括:

s501,获取用户调用业务智能合约而生成的初始事务请求。

其中,初始事务请求存在链外处理需求。

可选的,用户有数据处理需求时,可以通过其用户端调用区块链网络中部署的该数据处理需求对应的业务智能合约,产生初始事务请求发送至区块链网络。例如,假设用户端为服务商提供的saas平台,saas平台可以向用户展示其可为用户提供的至少一个数据处理服务(如可以有图像数据的查找、图像类型的识别、图像数据的统计等等),若用户想要进行图像类型识别,则其可以在saas平台上选择图像类型的识别服务,输入待识别的图像或待识别图像的数据源地址等,此时saas平台就会调用该图像类型的识别服务对应的业务智能合约,产生请求区块链网络对待识别图像进行类型识别的初始事务请求发送至区块链网络。此时区块链节点可以从区块链网络中获取到该初始事务请求。

s502,通过业务智能合约,根据初始事务请求通知接口智能合约,以产生链外处理请求,并请求可信计算环境对链外处理请求进行处理。

可选的,区块链节点在接收到初始事务请求后,会通过业务智能合约将该初始事务请求传输至可信数据源系统部署在区块链网络中的接口智能合约,由接口智能合约从业务智能合约处获取初始事务请求产生链外处理请求,并通过可信数据源系统中的控制模块将链外处理请求传输至可信数据源系统中的可信计算环境对该链外处理请求进行处理。具体的处理过程在上述实施例已经进了介绍,在此不进行赘述。

s503,通过业务智能合约,从接口智能合约获取反馈的处理结果。

可选的,可信数据源系统的可信计算环境在至执行链外处理请求,得到处理结果后,会通过控制模块将处理结果反馈给接口智能合约,接口智能合约会进一步将该处理结果反馈业务智能合约,此时本步骤的区块链节点可以通过业务智能合约从接口智能合约处获取可信数据源系统对初始事务请求处理后的处理结果。可选的,区块链节点在获取到处理结果后,可以是将该处理结果反馈给用户端。可选的,为了保证反馈给用户的处理结果的准确性,区块链节点在从接口智能合约处获取反馈的处理结果后,可以先对该处理结果的准确性进行验证,具体的验证方法有很多,对此本实施例不进行限定。当然,也可以后续在任何需要验证数据时执行验证操作。例如,可以包括以下三种可实施方式中的至少一种:

可实施方式一:调用接口智能合约,以从区块链中获取可信计算环境中安全容器实例的代码存证;根据代码存证对可信计算环境中安全容器实例的代码进行验证。

可选的,由于该处理结果是可信数据源系统中的可信计算环境进行计算得到的,所以此时可以是对可信计算环境的身份可信度进行验证,若可信计算环境的身份验证通过,则认为处理结果是真实可靠的。具体的,由于可信计算环境中具体执行链外处理请求的是可信计算环境中的安全容器实例,所以本可实施方式可以是区块链节点调用接口智能合约,从区块链网络中获取计算该处理结果的可信计算环境的安全容器实例的代码存证,再从处理结果中获取该安全容器实例的代码计算出该安全容器实例的代码存储,将计算出来的代码存证与区块链网络中存储的代码存证进行比较,若一致,则说明对计算出该处理结果的可信计算环境中安全容器实例的代码验证通过,说明该处理结果真实可靠。

可实施方式二:调用接口智能合约,以从区块链中获取可信计算环境的区块链账户公钥;通过区块链账户公钥,对处理结果的私钥签名进行验证。

可选的,对可信计算环境的身份可信度进行验证除了上述可实施方式一中介绍的对安全容器实例的代码存证进行验证之外,还可以采用对可信计算环境的区块链账户的真实性进行验证,具体的,可以是调用接口智能合约从区块链网络中获取计算该处理结果的可信计算环境的区块链账户公钥(即可信计算环境中计算该处理结果的安全容器实例的区块链账户公钥),然后采用该公钥对处理结果中包含的私钥签名进行验证,若验证成功,则说明可信计算环境的区块链账户是可信的,即其计算出的处理结果真实可靠。

可实施方式三:调用接口智能合约,以从区块链中获取可信计算环境的硬件认证信息;请求可信计算环境的服务商对硬件认证信息进行认证。

可选的,本申请实施例的可信计算环境的硬件认证信息可以是对可信计算环境封装后得到的结构体quote,可信计算环境的服务商可以是sgx机制提供的对可信计算环境的quote进行验证的intelias服务。区块链节点可以是调用接口智能合约,从区块链网络中获取可信计算环境的quote,然后请求即intelias服务对可信计算环境的quote进行认证,如果验证通过,则说明可信计算环境计算出的处理结果真是可靠。

需要说明的是,由于可信数据源系统中的控制模块,已经将所述区块链账户的地址和公钥、以及安全容器实例的代码存证,通过所述接口智能合约进行上链存储,所以本实施例中区块链节点可以通过接口智能合约从区块链中获取可信计算环境中安全容器实例的代码存证以及可信计算环境的区块链账户公钥。

本申请实施例的技术方案,区块链节点产生存在链外处理需求的初始事务请求后,可以通过其业务智能合约与可信数据源系统中的接口智能合约交互,借助可信数据源系统中的接口智能合约、控制模块以及可信计算环境,实现链外处理需求,并获取处理结果。解决了现有技术,区块链网络不能访问外部资源进行事务请求处理的问题,以使区块链网络对数据处理的能力更加丰富灵活,同时采用可信计算环境对链外处理请求进行处理,兼顾了数据的安全性和处理过程的可靠性。

第六实施例

图6a-6c是根据本申请第六实施例提供的基于区块链的数据处理方法的流程图。本实施例在上述实施例的基础上进行优化,给出了一个区块链节点、和可信数据源系统交互实现基于区块链的数据处理过程。如图6a-6c所示,该方法可以包括:

s601,区块链节点获取用户调用业务智能合约而生成的初始事务请求。

其中,所述初始事务请求存在链外处理需求。

s602,可信数据源系统通过部署于区块链中的接口智能合约,获取业务智能合约被调用时产生的初始事务请求。

s603,可信数据源系统通过接口智能合约验证初始事务请求中的所请求数据是否合法。

s604,如果所请求数据合法,则可信数据源系统通过接口智能合约,计算初始事务请求所请求数据的哈希值。

s605,可信数据源系统通过接口智能合约基于初始事务请求的事务标识、所请求数据、哈希值、业务智能合约的接口地址和回调函数,产生日志记录,作为链外处理请求。

s606,可信数据源系统通过控制模块监听接口智能合约的日志记录,以获取链外处理请求。

s607,可信数据源系统通过控制模块验证链外处理请求所需的外部数据源是否支持,若是,则执行s608,若否,则将错误码和错误理由作为处理结果执行s614。

s608,可信数据源系统通过所述控制模块,从可信计算环境的区块链账户计数池中为所述链外处理请求分配计数值。

s609,可信数据源系统通过控制模块根据链外处理请求确定对应的安全容器实例。

其中,所述可信计算环境中运行有至少一个安全容器实例。

s610,可信数据源系统通过控制模块将分配有计数值的链外处理请求传输给安全容器实例。

s611,可信数据源系统通过安全容器实例,按照链外处理请求访问读取外部数据源。

s612,可信数据源系统通过安全容器实例,从读取的外部数据中解析获得所述链外处理请求所需处理数据;

s613,可信数据源系统通过安全容器实例,对所需处理数据进行处理,生成处理结果。

其中,所述处理结果包括:执行结果、该链外处理请求的计数值、标识、所请求数据的哈希值、处理状态码以及执行本次链外处理请求的安全容器实例代码等。

s614,可信数据源系统通过安全容器实例将处理结果进行封装。

s615,可信数据源系统通过所述控制模块获取安全容器实例产生的封装后的处理结果。

s616,可信数据源系统通过控制模块,将处理结果采用安全容器实例的区块链账户进行签名,并调用接口智能合约发起结果事务请求。

s617,可信数据源系统通过接口智能合约对结果事务请求的区块链账户进行验证。

s618,可信数据源系统通过接口智能合约验证结果事务请求与初始事务请求的所请求数据是否匹配。

s619,可信数据源系统通过接口智能合约检测初始事务请求是否已被处理。

s620,如果验证通过、匹配通过且请求已被处理,则可信数据源系统通过接口智能合约将结果事务请求上传到区块链网络中。

s621,可信数据源系统通过接口智能合约,根据处理结果执行回调函数,按照业务智能合约的接口地址将处理结果进行反馈。

s622,区块链节点通过业务智能合约,从接口智能合约获取反馈的处理结果。

s623,区块链节点调用接口智能合约,以从区块链中获取该安全容器实例的代码存证,并根据代码存证对该安全容器实例的代码进行验证。

s624,区块链节点调用接口智能合约,以从区块链中获取该安全容器的区块链账户公钥;并通过区块链账户公钥,对处理结果的私钥签名进行验证。

s625,区块链节点调用接口智能合约,以从区块链中获取可信计算环境的硬件认证信息,请求可信计算环境的服务商对硬件认证信息进行认证。

s626,若安全容器实例的代码、处理结果的私钥签名以及硬件认证信息都验证成功,则区块链节点将处理结果反馈给用户。

本申请实施例的方案,用户端向区块链网络发起存在链外处理需求的初始事务请求后,区块链节点将该初始事务请求传输至可信数据源系统,由可信数据源系统通过其内部的接口智能合约、控制模块以及可信计算环境之间的配合对该初始事务请求处理后向区块链节点反馈处理结果,实现了对区块链网络中存在链外处理需求的事务请求进行处理的情况,解决了现有技术,区块链网络不能访问外部资源进行事务请求处理的问题,以使区块链网络对数据处理的能力更加丰富灵活,同时采用可信计算环境对链外处理请求进行处理,兼顾了数据的安全性和处理过程的可靠性。

第七实施例

图7是根据本申请第七实施例提供的一种基于区块链的数据处理装置的结构示意图;该区块链的数据处理装置可执行本申请第一实施例至第四实施例以及第六实施例任一所提供的基于区块链的数据处理方法,具备执行方法相应的功能模块和有益效果。可选的,该装置可以采用软件和/或硬件的方式实现,并可集成在可信数据源系统中。如图7所示,该基于区块链的数据处理装置700可以包括:

接口智能合约模块701,部署于区块链中,用于对初始事务请求进行解析处理,并根据解析得到的数据产生链外处理请求,其中,所述初始事务请求由业务智能合约产生,且存在链外处理需求;

可信计算环境模块702,配置于可信数据源系统中,用于执行所述链外处理请求,生成处理结果;

所述接口智能合约模块701,还用于将所述处理结果反馈给所述业务智能合约。

本申请实施例的技术方案,通过部署在区块链中的接口智能合约对业务智能合约产生的存在链外处理需求的初始事务请求进行解析处理,根据解析处理到的数据产生链外处理请求;由可信数据源系统中配置的可信计算环境执行该链外处理请求产生处理结果;通过接口智能合约将反馈结果反馈给业务智能合约。通过区块链上部署的业务智能合约、可信数据源系统中的接口智能合约和可信计算环境之间的配合,实现了对区块链网络中存在链外处理需求的事务请求进行处理的情况,解决了现有技术,区块链网络不能访问外部资源进行事务请求处理的问题,以使区块链网络对数据处理的能力更加丰富灵活,同时采用可信计算环境对链外处理请求进行处理,兼顾了数据的安全性和处理过程的可靠性。

进一步的,上述接口智能合约模块701还用于:获取业务智能合约被调用时产生的初始事务请求。

进一步的,上述装置还包括:

控制模块,配置于可信数据源系统中,用于获取所述链外处理请求,并传输给所述可信数据源系统中配置的可信计算环境;

所述控制模块,还用于获取所述可信计算环境产生的处理结果,并反馈给所述接口智能合约;

进一步的,所述可信计算环境模块702具体用于:

执行所述链外处理请求,生成处理结果,并封装为结果事务请求;

采用所述可信计算环境的区块链账户私钥对所述结果事务请求进行签名。

进一步的,所述处理结果中还携带有所述安全容器实例的代码存证,所述代码存证用于唯一标识所述安全容器实例的运行代码。

进一步的,所述控制模块在执行获取所述链外处理请求,并传输给所述可信数据源系统中配置的可信计算环境时,具体用于:

获取所述链外处理请求;

根据所述链外处理请求确定对应的安全容器实例;其中,所述可信计算环境中运行有至少一个安全容器实例;

将所述链外处理请求传输给所述安全容器实例;

其中,每个所述安全容器实例分配有一对区块链账户私钥和公钥。

进一步的,所述控制模块在执行获取所述链外处理请求,并传输给所述可信数据源系统中配置的可信计算环境时,还具体用于:

获取所述链外处理请求;

从所述可信计算环境的区块链账户计数池中为所述链外处理请求分配计数值;

将分配有计数值的链外处理请求传输给所述可信数据源系统中配置的可信计算环境;

相应的,所述可信计算环境产生的所述处理结果中携带有分配的所述计数值。

进一步的,可信计算环境模块702还具体用于:

按照所述链外处理请求访问读取外部数据源;

从读取的外部数据中解析获得所述链外处理请求所需处理数据;

对所述所需处理数据进行处理,生成处理结果。

进一步的,所述接口智能合约模块701在执行对所述初始事务请求进行解析处理,并根据解析得到的数据产生链外处理请求时,具体用于:

计算所述初始事务请求所请求数据的哈希值;

基于所述初始事务请求的事务标识、所请求数据、所述哈希值、所述业务智能合约的接口地址和回调函数,产生所述链外处理请求;

相应的,所述接口智能合约模块701在执行将所述处理结果反馈给所述业务智能合约时,具体用于:根据所述处理结果执行回调函数,按照所述业务智能合约的接口地址将所述处理结果进行反馈。

进一步的,所述接口智能合约模块701在执行对所述初始事务请求进行解析处理,并根据解析得到的数据产生链外处理请求时,还具体用于:

对所述初始事务请求进行解析处理,并根据解析得到的数据产生日志记录,作为所述链外处理请求;

相应的,所述控制模块在执行获取所述链外处理请求时,具体用于:监听所述接口智能合约的日志记录,以获取所述链外处理请求。

进一步的。所述控制模块在执行获取所述可信计算环境产生的处理结果,并反馈给所述接口智能合约时,具体用于:

获取所述可信计算环境产生的处理结果;

将所述处理结果采用所述可信计算环境的区块链账户进行签名,并调用所述接口智能合约发起结果事务请求,以将所述处理结果进行上链存储。

进一步的,所述接口智能合约模块701在调用所述接口智能合约发起结果事务请求之后,还用于:

对所述结果事务请求的区块链账户进行验证;

验证所述结果事务请求与初始事务请求的所请求数据是否匹配;

如果验证通过且匹配通过,则将所述结果事务请求上传到区块链网络中。

进一步的,所述控制模块还用于:根据管理数据库中记录的安全容器实例的元数据,对所述安全容器实例进行加载、恢复或释放;其中,所述可信计算环境中配置有至少一个安全容器实例,用于执行设定功能的数据处理。

进一步的,所述控制模块还用于:为安全容器实例分配区块链账户密钥,并为所述安全容器实例计算代码存证。

进一步的,所述控制模块还用于:根据所述管理数据库中的配置文件,加载外部数据源。

进一步的,所述控制模块还用于:将所述安全容器实例通过所述接口智能合约部署于所述业务智能合约中,供所述业务智能合约调用。

进一步的,所述控制模块还用于:启动对所述接口智能合约所产生日志记录的监听,以从所述日志记录中获取所述链外处理请求。

进一步的,所述控制模块还用于:向区块链网络中部署所述接口智能合约,并记录所述接口智能合约的合约地址。

进一步的,所述控制模块还用于:将所述区块链账户的地址和公钥、以及安全容器实例的代码存证,通过所述接口智能合约进行上链存储。

第八实施例

图8是根据本申请第八实施例提供的一种基于区块链的数据处理装置的结构示意图;该区块链的转账装置可执行本申请第五实施例至第六实施例任一所提供的基于区块链的数据处理方法,具备执行方法相应的功能模块和有益效果。可选的,该装置可以采用软件和/或硬件的方式实现,并可集成在可信数据源系统中。如图8所示,该基于区块链的数据处理装置800可以包括:

初始请求获取模块801,用于获取用户调用业务智能合约而生成的初始事务请求,其中,所述初始事务请求存在链外处理需求;

业务智能合约模块802,用于根据所述初始事务请求通知所述接口智能合约,以产生链外处理请求,并请求可信计算环境对链外处理请求进行处理;

所述业务智能合约模块802,还用于从所述接口智能合约获取反馈的处理结果。

本申请实施例的方案,区块链节点产生存在链外处理需求的初始事务请求后,可以通过其业务智能合约与可信数据源系统中的接口智能合约交互,借助可信数据源系统中的接口智能合约、控制模块以及可信计算环境,实现链外处理需求,并获取处理结果。解决了现有技术,区块链网络不能访问外部资源进行事务请求处理的问题,以使区块链网络对数据处理的能力更加丰富灵活,同时采用可信计算环境对链外处理请求进行处理,兼顾了数据的安全性和处理过程的可靠性。

进一步的,所述装置还包括验证模块用于:

调用所述接口智能合约,以从区块链中获取所述可信计算环境中安全容器实例的代码存证;

根据所述代码存证对所述可信计算环境中安全容器实例的代码进行验证。

进一步的,所述验证模块,还用于:

调用所述接口智能合约,以从区块链中获取所述可信计算环境的区块链账户公钥;

通过所述区块链账户公钥,对所述处理结果的私钥签名进行验证。

进一步的,所述验证模块,还用于:

调用所述接口智能合约,以从区块链中获取所述可信计算环境的硬件认证信息;

请求可信计算环境的服务商对所述硬件认证信息进行认证。

第九实施例

根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。

如图9所示,是根据本申请实施例的基于区块链的数据处理的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图9所示,该电子设备包括:一个或多个处理器901、存储器902,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器901为例。

存储器902即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的基于区块链的数据处理的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的基于区块链的数据处理的方法。

存储器902作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的基于区块链的数据处理的方法对应的程序指令/模块(例如,附图7所示的接口智能合约模块701和可信计算环境模块702,或者附图8所示的初始请求获取模块801和业务智能合约模块802)。处理器901通过运行存储在存储器902中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的基于区块链的数据处理的方法。

存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据基于区块链的数据处理的电子设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至基于区块链的数据处理的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

基于区块链的数据处理的方法的电子设备还可以包括:输入装置903和输出装置904。处理器901、存储器902、输入装置903和输出装置904可以通过总线或者其他方式连接,图9中以通过总线连接为例。

输入装置903可接收输入的数字或字符信息,以及产生与基于区块链的数据处理的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置904可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。

此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

根据本申请实施例的技术方案,通过部署在区块链中的接口智能合约对业务智能合约产生的存在链外处理需求的初始事务请求进行解析处理,根据解析处理到的数据产生链外处理请求;由可信数据源系统中配置的可信计算环境执行该链外处理请求产生处理结果;通过接口智能合约将反馈结果反馈给业务智能合约。通过区块链上部署的业务智能合约、可信数据源系统中的接口智能合约和可信计算环境之间的配合,实现了对区块链网络存在链外处理需求的事务请求进行处理的情况,解决了现有技术,区块链网络不能访问外部资源进行事务请求处理的问题,以使区块链网络中对数据处理的能力更加丰富灵活,同时采用可信计算环境对链外处理请求进行处理,兼顾了数据的安全性和处理过程的可靠性。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。


技术特征:

1.一种基于区块链的数据处理方法,其特征在于,所述方法包括:

通过部署于区块链中的接口智能合约对初始事务请求进行解析处理,并根据解析得到的数据产生链外处理请求,其中,所述初始事务请求由业务智能合约产生,且存在链外处理需求;

通过可信数据源系统中配置的可信计算环境执行所述链外处理请求,生成处理结果;

通过所述接口智能合约将所述处理结果反馈给所述业务智能合约。

2.根据权利要求1所述的方法,其特征在于,通过部署于区块链中的接口智能合约对初始事务请求进行解析处理之前,还包括:

通过所述接口智能合约,获取业务智能合约被调用时产生的初始事务请求。

3.根据权利要求1所述的方法,其特征在于,通过可信数据源系统中配置的可信计算环境执行所述链外处理请求之前,还包括:

通过可信数据源系统中配置的控制模块,获取所述链外处理请求,并传输给所述可信数据源系统中配置的可信计算环境;

相应的,产生处理结果之后,还包括:

通过所述控制模块获取所述可信计算环境产生的处理结果,并反馈给所述接口智能合约。

4.根据权利要求3所述的方法,其特征在于,通过可信数据源系统中配置的可信计算环境执行所述链外处理请求,生成处理结果包括:

通过可信数据源系统中配置的可信计算环境执行所述链外处理请求,生成处理结果,并封装为结果事务请求;

采用所述可信计算环境的区块链账户私钥对所述结果事务请求进行签名。

5.根据权利要求4所述的方法,其特征在于,所述处理结果中还携带有安全容器实例的代码存证,所述代码存证用于唯一标识所述安全容器实例的运行代码。

6.根据权利要求4所述的方法,其特征在于,通过可信数据源系统中配置的控制模块,获取所述链外处理请求,并传输给所述可信数据源系统中配置的可信计算环境包括:

通过可信数据源系统中配置的控制模块,获取所述链外处理请求;

通过所述控制模块根据所述链外处理请求确定对应的安全容器实例;其中,所述可信计算环境中运行有至少一个安全容器实例;

通过所述控制模块,将所述链外处理请求传输给所述安全容器实例;

其中,每个所述安全容器实例分配有一对区块链账户私钥和公钥。

7.根据权利要求3-6任一所述的方法,其特征在于,通过可信数据源系统中配置的控制模块,获取所述链外处理请求,并传输给所述可信数据源系统中配置的可信计算环境包括:

通过可信数据源系统中配置的控制模块,获取所述链外处理请求;

通过所述控制模块,从所述可信计算环境的区块链账户计数池中为所述链外处理请求分配计数值;

通过所述控制模块将分配有计数值的链外处理请求传输给所述可信数据源系统中配置的可信计算环境;

相应的,所述可信计算环境产生的所述处理结果中携带有分配的所述计数值。

8.根据权利要求1-6任一所述的方法,其特征在于,通过可信数据源系统中配置的可信计算环境执行所述链外处理请求,生成处理结果包括:

通过可信数据源系统中配置的可信计算环境,按照所述链外处理请求访问读取外部数据源;

通过所述可信计算环境,从读取的外部数据中解析获得所述链外处理请求所需处理数据;

通过所述可信计算环境,对所述所需处理数据进行处理,生成处理结果。

9.根据权利要求3-6任一所述的方法,其特征在于,通过部署于区块链中的接口智能合约对所述初始事务请求进行解析处理,并根据解析得到的数据产生链外处理请求包括:

通过部署于区块链中的接口智能合约,计算所述初始事务请求所请求数据的哈希值;

通过所述接口智能合约基于所述初始事务请求的事务标识、所请求数据、所述哈希值、所述业务智能合约的接口地址和回调函数,产生所述链外处理请求;

相应的,通过所述接口智能合约将所述处理结果反馈给所述业务智能合约包括:

通过所述接口智能合约,根据所述处理结果执行回调函数,按照所述业务智能合约的接口地址将所述处理结果进行反馈。

10.根据权利要求3-6任一所述的方法,其特征在于,通过部署于区块链中的接口智能合约对所述初始事务请求进行解析处理,并根据解析得到的数据产生链外处理请求包括:

通过部署于区块链中的接口智能合约对所述初始事务请求进行解析处理,并根据解析得到的数据产生日志记录,作为所述链外处理请求;

相应的,通过可信数据源系统中配置的控制模块,获取所述链外处理请求包括:

通过所述控制模块监听所述接口智能合约的日志记录,以获取所述链外处理请求。

11.根据权利要求9所述的方法,其特征在于,通过所述控制模块获取所述可信计算环境产生的处理结果,并反馈给所述接口智能合约包括:

通过所述控制模块获取所述可信计算环境产生的处理结果;

通过所述控制模块,将所述处理结果采用所述可信计算环境的区块链账户进行签名,并调用所述接口智能合约发起结果事务请求,以将所述处理结果进行上链存储。

12.根据权利要求11所述的方法,其特征在于,调用所述接口智能合约发起结果事务请求之后,还包括:

通过所述接口智能合约对所述结果事务请求的区块链账户进行验证;

通过所述接口智能合约验证所述结果事务请求与初始事务请求的所请求数据是否匹配;

如果验证通过且匹配通过,则通过所述接口智能合约将所述结果事务请求上传到区块链网络中。

13.根据权利要求4所述的方法,其特征在于,还包括:

通过所述控制模块,根据管理数据库中记录的安全容器实例的元数据,对所述安全容器实例进行加载、恢复或释放;其中,所述可信计算环境中配置有至少一个安全容器实例,用于执行设定功能的数据处理。

14.根据权利要求4所述的方法,其特征在于,还包括:

通过所述控制模块,为安全容器实例分配区块链账户密钥,并为所述安全容器实例计算代码存证。

15.根据权利要求4所述的方法,其特征在于,还包括:

通过所述控制模块,根据管理数据库中的配置文件,加载外部数据源。

16.根据权利要求13所述的方法,其特征在于,还包括:

通过所述控制模块,将所述安全容器实例通过所述接口智能合约部署于所述业务智能合约中,供所述业务智能合约调用。

17.根据权利要求4所述的方法,其特征在于,还包括:

通过所述控制模块,启动对所述接口智能合约所产生日志记录的监听,以从所述日志记录中获取所述链外处理请求。

18.根据权利要求13所述的方法,其特征在于,还包括:

通过所述控制模块,向区块链网络中部署所述接口智能合约,并记录所述接口智能合约的合约地址。

19.根据权利要求13所述的方法,其特征在于,还包括:

通过所述控制模块,将所述区块链账户的地址和公钥、以及安全容器实例的代码存证,通过所述接口智能合约进行上链存储。

20.一种基于区块链的数据处理方法,其特征在于,由区块链节点来执行,所述方法包括:

获取用户调用业务智能合约而生成的初始事务请求,其中,所述初始事务请求存在链外处理需求;

通过所述业务智能合约,根据所述初始事务请求通知接口智能合约,以产生链外处理请求,并请求可信计算环境对链外处理请求进行处理;

通过所述业务智能合约,从所述接口智能合约获取反馈的处理结果。

21.根据权利要求20所述的方法,其特征在于,所述方法还包括:

调用所述接口智能合约,以从区块链中获取所述可信计算环境中安全容器实例的代码存证;

根据所述代码存证对所述可信计算环境中安全容器实例的代码进行验证。

22.根据权利要求20所述的方法,其特征在于,所述方法还包括:

调用所述接口智能合约,以从区块链中获取所述可信计算环境的区块链账户公钥;

通过所述区块链账户公钥,对所述处理结果的私钥签名进行验证。

23.一种基于区块链的数据处理的装置,其特征在于,所述装置包括:

接口智能合约,部署于区块链中,用于对初始事务请求进行解析处理,并根据解析得到的数据产生链外处理请求,其中,所述初始事务请求由业务智能合约产生,且存在链外处理需求;

可信计算环境模块,配置于可信数据源系统中,用于执行所述链外处理请求,生成处理结果;

所述接口智能合约,还用于将所述处理结果反馈给所述业务智能合约。

24.一种基于区块链的数据处理的装置,其特征在于,配置于区块链节点中,所述装置包括:

初始请求获取模块,用于获取用户调用业务智能合约而生成的初始事务请求,其中,所述初始事务请求存在链外处理需求;

业务智能合约模块,用于根据所述初始事务请求通知接口智能合约,以产生链外处理请求,并请求可信计算环境对链外处理请求进行处理;

所述业务智能合约模块,还用于从所述接口智能合约获取反馈的处理结果。

25.一种电子设备,其特征在于,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-19或20-22中任一项所述的基于区块链的数据处理方法。

26.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-19或20-22中任一项所述的基于区块链的数据处理方法。

技术总结
本申请实施例公开了一种基于区块链的数据处理方法、装置、设备和介质,涉及区块链技术领域。具体实现方案为通过部署于区块链中的接口智能合约对初始事务请求进行解析处理,并根据解析得到的数据产生链外处理请求,其中,所述初始事务请求由业务智能合约产生,且存在链外处理需求;通过可信数据源系统中配置的可信计算环境执行链外处理请求,生成处理结果;通过接口智能合约将处理结果反馈给业务智能合约。以使区块链网络中对数据处理的能力更加丰富灵活。

技术研发人员:袁骏杰;黎相敏;孟洋;陈浩栋;王辉
受保护的技术使用者:北京百度网讯科技有限公司
技术研发日:2020.01.17
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-28188.html

最新回复(0)