一种数据核验和数据更新方法及系统与流程

文档序号:30836044发布日期:2022-07-22 23:06阅读:268来源:国知局
一种数据核验和数据更新方法及系统与流程

1.本技术涉及区块链技术领域,尤其涉及一种数据核验方法及系统、以及一种数据更新方法。


背景技术:

2.区块链是基于分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链在对等网络环境下,通过透明和可信规则,按照时间戳顺序构建不可伪造、不可篡改和可追溯的块链式数据结构,实现事务管理。区块链具有分布式对等、数据块链式、不可伪造和防篡改、透明可信、高可靠性等关键特征。
3.智能合约是区块链中四大核心技术之一。智能合约(smart contract)是一种部署在区块链上的计算机程序或事务协议,旨在以信息化方式传播、验证或执行合同。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约的目的是提供优于传统合约的安全方法,减少可信赖中介人的需求、仲裁和执行成本,减少欺诈损失以及恶意或意外情况。
4.由于部署在区块链上的智能合约无法直接访问链外数据,所以需要一个媒介,这个媒介就是预言机(oracle mechanism)。预言机的主要作用是为智能合约提供可靠的链外数据,其核心价值是在可信的基础上使区块链与外部世界连接起来。预言机为智能合约在区块链上执行所需的链外数据提供受信任的数据来源,预言机将对接应用程序接口(application programming interface,api),由api提供这种链外数据。智能合约可以利用预言机网络提供跨区块链或链上与链下数据之间的链接。
5.现有技术中预言机的实现依赖于第三方预言机,这些预言机由不拥有其提供的数据或服务的实体运营。区块链上第三方预言机的数据来源是节点运营商,而非数据的原始提供方,这些节点运营商由中心化的管理机构即元中间人(meta-middleman)亲自挑选。区块链的大前提是去中心化(decentralization),而第三方预言机往往是从中心化的数据来源获取数据,导致消除中心点失败。智能合约在区块链上执行所需的链外数据依赖于第三方预言机,存在着数据信任脆弱的问题,如果第三方预言机的数据来源出现数据篡改、数据错误等问题,会导致智能合约出现不正确的执行结果并且没有追索措施。


技术实现要素:

6.本说明书实施例的目的是提供一种数据核验方法及系统,以及一种数据更新方法,以解决智能合约在区块链上执行所需的链外数据依赖于第三方预言机所导致的数据信任脆弱问题,提升智能合约执行所需的链外数据的可靠性。
7.为了实现上述目的,本说明书实施例采用下述技术方案:
8.第一方面,提供一种数据核验方法,应用于数据核验系统,所述数据核验系统部署有空气节点,所述方法包括:
9.响应于请求方提交的携带待核验数据的数据核验请求,对所述待核验数据进行数
据核验,生成第一核验数据;
10.基于监听到的数据更新请求,对通过应用程序接口api获取到的所述第一核验数据进行数据封装,得到第二核验数据,以及将所述第二核验数据推送至所述智能合约;
11.其中,所述待核验数据包括用于触发部署在第一区块链上的智能合约执行的业务数据,所述智能合约包括预言机通信合约,所述预言机通信合约用于订阅所述空气节点,所述空气节点用于监听所订阅的预言机通信合约发送的数据更新请求。
12.第二方面,提供一种数据更新方法,应用于部署在第一区块链上的智能合约,所述智能合约包括预言机通信合约,所述预言机通信合约用于订阅数据核验系统部署的空气节点,所述方法包括:
13.通过所述预言机通信合约向所订阅的所述空气节点发送数据更新请求;
14.接收所述空气节点基于所述数据更新请求返回的第二核验数据;
15.其中,所述第二核验数据是所述数据核验系统响应于请求方提交的携带待核验数据的数据核验请求,对所述待核验数据进行数据核验后由所述空气节点获取并进行数据封装得到的,所述待核验数据包括用于触发所述智能合约执行的业务数据。
16.第三方面,提供一种数据核验系统,包括核验子系统、存储子系统和应用程序接口api,所述数据核验系统部署有空气节点,其中:
17.所述核验子系统,用于响应于请求方提交的携带待核验数据的数据核验请求,对所述待核验数据进行数据核验,生成第一核验数据,并存储至所述存储子系统;
18.所述存储子系统,用于存储所述核验子系统生成的所述第一核验数据;
19.所述空气节点,用于监听所订阅的预言机通信合约发送的数据更新请求,基于监听到的数据更新请求,对通过应用程序接口api从所述存储子系统上获取到的所述第一核验数据进行数据封装,得到第二核验数据,以及将所述第二核验数据推送至所述智能合约;
20.其中,所述待核验数据包括用于触发部署在第一区块链上的智能合约执行的业务数据,所述智能合约包括预言机通信合约,所述预言机通信合约用于订阅所述空气节点。
21.第四方面,提供一种电子设备,包括:
22.处理器;
23.用于存储所述处理器可执行指令的存储器;
24.其中,所述处理器被配置为执行所述指令,以实现如第一方面或第二方面所述的方法。
25.第五方面,提供一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面或第二方面所述的方法。
26.本说明书实施例提供的数据核验方案,针对请求方提交的携带待核验数据的数据核验请求,由数据核验系统对待核验数据进行数据核验,由于待核验数据包括用于触发部署在第一区块链上的智能合约执行的业务数据,从而生成智能合约执行所需的核验数据;通过在数据核验系统中部署空气节点,结合数据核验系统的api,可以形成第一方预言机,部署在第一区块链上的智能合约包括预言机通信合约,预言机通信合约用于订阅数据核验系统部署的空气节点,使得数据核验系统生成的智能合约执行所需的核验数据可以通过空气节点直接推送给智能合约。智能合约执行所需的链外数据无需通过第三方,由数据核验系统直接将链外数据提供给智能合约,可以提升智能合约执行所需的链外数据的可靠性,
从而保证区块链上智能合约的正确执行。
27.本说明书实施例提供的数据更新方案,向智能合约提供数据核验服务的数据核验系统部署有空气节点,部署在第一区块链上的智能合约包括预言机通信合约,预言机通信合约用于订阅数据核验系统部署的空气节点,通过预言机通信合约向所订阅的空气节点发送数据更新请求,并接收空气节点返回的核验数据,使得数据核验系统生成的智能合约执行所需的核验数据可以通过空气节点直接推送至智能合约。智能合约执行所需的链外数据无需通过第三方,由数据核验系统直接将链外数据提供给智能合约,可以提升智能合约执行所需的链外数据的可靠性,从而保证区块链上智能合约的正确执行。
附图说明
28.此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
29.图1为本说明书的一个实施例提供的一种数据核验方法所适用的实施环境示意图;
30.图2为本说明书的一个实施例提供的信标服务器合约订阅空气节点的信标标识的示意图;
31.图3为本说明书的一个实施例提供的一种数据核验系统的结构示意图;
32.图4为本说明书的一个实施例提供的一种数据核验方法的流程示意图;
33.图5为本说明书的一个实施例提供的空气节点与api之间基于ois标准的数据聚合和封装示意图;
34.图6为本说明书的一个实施例提供的一种数据更新方法的流程示意图;
35.图7为本说明书的一个实施例提供的一种电子设备的结构示意图。
具体实施方式
36.为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
37.本说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应理解这样使用的数据在适当情况下可以互换,以便本说明书实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,本说明书以及权利要求书中“和/或”表示所连接对象的至少其中之一,字符“/”一般表示前后关联对象是一种“或”的关系。
38.智能合约是部署在区块链上的计算机程序,它是一种把生活中的合约数字化,当满足一定条件后,可以由程序自动执行的技术,也就是说,满足一定条件智能合约就会自动执行。本说明书实施例中,将智能合约执行所需满足的条件称为执行触发条件,具体的,智能合约的执行触发条件可能有多个,不同的执行触发条件可能对应不同的执行方式,执行
触发条件以及对应的执行方式可以作为内容条款写入智能合约中。如果发生了某个与智能合约相关的业务事件,该业务事件的发生会产生一些业务数据,这些业务数据可能会触发智能合约的执行,用于触发智能合约执行的业务数据是否能够满足执行触发条件需要由智能合约进行判定,在智能合约进行判定之前,需要先由外部的数据核验系统对用于触发智能合约执行的业务数据、以及其他相关数据等进行数据核验。
39.在智能合约的数据核验业务场景下,针对部署在区块链上的智能合约,利用外部的数据核验系统对用于触发智能合约执行的业务数据、以及其他相关数据等进行数据核验后,会将核验数据(链外数据)传输给第三方预言机,然后由第三方预言机传输给智能合约,中间存在着第三方预言机篡改数据、或提供错误数据的风险。
40.采用第三方预言机,智能合约的链外数据提供方(api提供方)不是直接把数据提供给智能合约,而是先提供给节点运营商(中间人),再由聚合器对这些节点运营商的数据取平均值或者是进行其他方式的筛选后,提供给智能合约,这就导致数据信任脆弱的问题。
41.针对上述问题,本技术提出如下改进思路:将节点运营商去掉,使链外数据提供方(api提供方)直接将数据提供给智能合约。智能合约的数据核验系统作为链外数据提供方(api提供方),通过在数据核验系统中部署空气节点(airnode),再结合数据核验系统的api,可以形成第一方预言机,第一方预言机是指api提供方自运营并提供数据来源的预言机,使得链外数据无需通过第三方,由数据核验系统直接将链外数据提供给智能合约。
42.有鉴于此,本说明书实施例旨在提供一种数据核验方法及系统,通过在数据核验系统中部署空气节点,再结合数据核验系统的api,可以形成第一方预言机,直接将链外数据提供给智能合约,解决智能合约在区块链上执行所需的链外数据依赖于第三方预言机所导致的数据信任脆弱问题,提升智能合约执行所需的链外数据的可靠性。
43.以下结合附图,详细说明本说明书各实施例提供的技术方案。
44.为便于理解,首先结合图1对本说明书的一个实施例提供的一种数据核验方法所适用的实施环境进行说明。如图1所示,本说明书实施例的一种数据核验方法所适用的实施环境可包括至少一个数据核验系统、第一方预言机的区块链网络和智能合约所部署的区块链。
45.在本说明书实施例中,数据核验系统能够基于硬件资源和软件资源的服务,提供智能合约的数据核验、数据存储等功能,从系统架构而言,数据核验系统可以包括核验子系统、存储子系统、以及向外部提供功能或服务的api(应用程序接口)。
46.数据核验系统还需要部署空气节点,空气节点是一个完全无服务器的预言机节点,其设计不需要api提供方提供专门知识、维护或维修。空气节点是由第一方预言机的提供方所提供的一种服务端程序,通过在数据核验系统(api提供方)部署空气节点,再结合数据核验系统的api,可以形成第一方预言机,第一方预言机是指由api提供方自运营并提供数据来源的预言机。具体的,可以将空气节点与api部署在数据核验系统的同一服务器上,也可以将空气节点、api分别部署在数据核验系统的不同服务器上。通过在数据核验系统中部署空气节点,再结合数据核验系统的api,形成第一方预言机的通信机制,可以实现数据核验系统直接向智能合约提供链外数据。
47.具体的,为智能合约提供数据核验服务的数据核验系统可能为多个,如图1所示,每个数据核验系统针对具体需求为智能合约提供相应的数据核验服务,举例而言,针对保
险智能合约来说,需要多个数据核验系统分别在事故、医疗等不同方面提供数据核验服务。本说明书实施例中,仅是以一个数据核验系统为例进行说明。
48.第一方预言机的提供方可以是api3,也可以是其他可以提供第一方预言机的区块链项目。示例性的,如果第一方预言机的提供方为api3,则第一方预言机的区块链网络具体为api3区块链网络。在api3中,dapi是一个完全去中心化的区块链原生api,由第一方预言机组成,dapi由api3 dao构建、管理、担保并营利,api提供方为api3 dao提供api数据,dapp为服务使用者。可以将部署在区块链上的智能合约作为dapp,数据核验系统作为api提供方,在数据核验系统中部署api3提供的空气节点,结合数据核验系统的api,形成第一方预言机。
49.本说明书实施例中,为了便于区分,将智能合约所部署的区块链称为第一区块链。并且,对智能合约的签约主体不作具体限定,示例性的,可以是投保人与保险公司之间签订的保险智能合约,可以是投资人与金融机构之间签订的金融智能合约等。
50.本说明书实施例中,智能合约可以采用混合智能合约的形式,混合智能合约是一种调用预言机通信合约的智能合约。智能合约包括两部分:一部分是内容执行合约,是包括具体内容条款的执行程序,内容执行合约中包括预设执行触发条件以及对应的执行方式;另一部分是预言机通信合约,以代码包的形成被智能合约引入,预言机通信合约用于订阅具体的预言机,以便在链外数据更新后得到推送。本说明书实施例中,预言机通信合约所订阅的具体的预言机可以是数据核验系统部署的空气节点。可以理解,在数据核验系统为多个的业务场景下,每个数据核验系统均会部署空气节点。相应的,预言机通信合约需要订阅上述多个具体的预言机,即订阅各个数据核验系统各自部署的空气节点。
51.具体的,预言机通信合约中可以包括订阅的空气节点的标识信息,预言机通信合约基于标识信息与所订阅的空气节点通信。示例性的,如果第一方预言机的提供方为api3,在api3中所述的预言机通讯合约具体为信标服务器合约(rrpbeaconserver.sol),引入方式为:
52.import"@api3/airnode-protocol/contracts/rrp/requesters/interfaces/irrpbeaconserver.sol"。
53.如图2所示,通过给智能合约(dapp)的信标服务器合约传输具体的信标标识(beacon id),信标服务器合约可以基于信标标识(beacon id)与所订阅的空气节点(airnode)通信,信标服务器(beacon server)用于向智能合约(dapp)提供信标服务;一个信标服务器合约可以订阅一个或多个空气节点(airnode),一个空气节点(airnode)可以对应一个或多个信标标识(beacon id)。
54.在一种可选的实现方式中,智能合约的地址需要预先加入空气节点的地址白名单中。示例性的,智能合约的地址加入空气节点的地址白名单的方式可以为签订一份白名单智能合约,将智能合约的地址以及其他相关地址与白名单智能合约绑定,其他相关地址可以根据智能合约的具体内容灵活设定,例如对于保险智能合约来说,其他相关地址可以为保险公司的数字钱包地址。通过白名单智能合约,空气节点可以获取数据需要发送的智能合约的地址。
55.在图1所示的实施环境下,针对部署在第一区块链上的智能合约,如果发生了某个与智能合约相关的业务事件,用户会产生执行内容条款的需求,向智能合约的数据核验系
统提交携带待核验数据的数据核验请求,待核验数据包括用于触发智能合约执行的业务数据,数据核验系统响应于数据核验请求,对待核验数据进行数据核验之后生成智能合约执行所需的核验数据,通过部署的空气节点推送至相应的智能合约,智能合约再基于核验数据对当前的业务事件进行判定,若满足执行触发条件则自动执行。
56.下面对本说明书实施例提供的一种数据核验系统的结构进行详细说明。如图3所示,为本说明书的一个实施例提供的数据核验系统300的结构示意图,包括:核验子系统301、存储子系统302和api 303,所述数据核验系统300部署有空气节点304。在数据核验系统300中部署空气节点304之后,空气节点304与api 303可以形成第一方预言机,空气节点可以管理数据核验系统的api 303。其中:
57.核验子系统301,用于响应于请求方提交的携带待核验数据的数据核验请求,对所述待核验数据进行数据核验,生成第一核验数据,并存储至所述存储子系统302。
58.具体的,针对部署在第一区块链上的智能合约,如果发生了某个与智能合约相关的业务事件能够触发合约中的内容条款,与智能合约相关的用户会产生执行内容条款的需求,基于该需求,用户可以通过客户端向智能合约的数据核验系统提交数据核验请求,数据核验请求中携带待核验数据,待核验数据包括用于触发所述智能合约执行的业务数据,例如与该业务事件相关的证明文件、票据材料等,待核验数据还可以包括其他相关数据,例如执行内容条款的请求文件、用户的资质证件等。
59.核验子系统对所述待核验数据进行数据核验的方式,由智能合约规定。通常情况下,包括对待核验数据的真实性核验,还可能需要进行相应计算,生成的核验数据通常包括核验结果(是否通过)、智能合约要求提供的待核验数据,还可能包括根据待核验数据进行相应计算得到的计算结果。智能合约还会规定标准数据模板,核验子系统根据智能合约规定的标准数据模板提供相应的核验数据。本说明书实施例中,为了便于区分,将核验子系统生成的核验数据称为第一核验数据。
60.示例性的,针对保险智能合约来说,如果发生了某个与保险智能合约相关的业务事件能够触发合约中的理赔条款,与保险智能合约相关的用户会产生理赔需求,通过客户端提交携带待核验数据的数据核验请求,待核验数据包括用于触发所述保险智能合约执行的业务数据,例如与理赔相关的票据材料;所述的与智能合约相关的用户可以是投保人,也可以是保险受益人或代理人,所述待核验数据还可能包括投保人和/或保险受益人和/或代理人的身份证件、委托文件等。核验子系统响应于数据核验请求,对所述待核验数据进行真实性核验,如果核验通过,还需要计算理赔金额,生成的第一核验数据可能包括:核验结果(是否通过)、智能合约要求提供的待核验数据、理赔金额等。
61.存储子系统302,用于存储核验子系统301生成的所述第一核验数据。
62.具体的,存储子系统可以采用数据库、区块链等数据存储方式。
63.空气节点304,用于监听所订阅的预言机通信合约发送的数据更新请求,基于监听到的数据更新请求,对通过所述api 303从存储子系统302上获取到的所述第一核验数据进行数据封装,得到第二核验数据,以及将所述第二核验数据推送至所述智能合约。
64.预言机通信合约会定期或根据预设条件发送数据更新请求给所订阅的空气节点,数据更新请求以日志形式存储在第一方预言机的区块链网络上,空气节点监听第一方预言机的区块链网络上相关日志中的数据更新请求,基于监听到的所述预言机通信合约的数据
更新请求,空气节点通过所管理的api从存储子系统上获取相应的智能合约执行所需的数据并更新。
65.示例性的,在api3中,信标服务器合约根据一些预设的阈值,判断是否需要更新数据,具体的业务不同阈值也不同,例如某个医疗保险智能合约规定的审核日期为每月的20号,则可以预设每月的20号之前更新数据,更新数据的时间周期设置为一个月。一旦超过阈值需要进行数据更新,信标服务器合约会通知api3区块链网络上的airnoderrp.sol产生数据更新请求的日志。空气节点监听api3区块链网络上相关日志中的数据更新请求,从空气节点所管理的api上获取数据并更新。
66.核验子系统中可以包括单个核验节点,也可以包括两个甚至更多的核验节点,多个核验节点可以采用集群、或者去中心化的方式部署。在一种可选的实现方式中,为了防止单个核验节点可能存在的虚假核验风险,提升数据核验系统的安全性,核验子系统301包括去中心化的至少两个核验节点311,相应的,采用区块链进行数据存储,本说明书实施例中,为了便于区分,数据核验系统中用于数据存储的区块链称为第二区块链321,其中:
67.每个所述核验节点311,用于响应于请求方提交的携带待核验数据的数据核验请求,对所述待核验数据进行真实性核验,得到对应的核验结果;基于所述待核验数据和与所述待核验数据对应的核验结果生成所述第一核验数据并存储至所述第二区块链321。
68.去中心化是区块链可以提供的众多功能之一,被广泛应用在网络和计算机领域,特别是元宇宙与web3.0的概念被提出以后,去中心化结合各种技术会成为未来的一种趋势。去中心化是互联网发展过程中形成的社会关系形态和内容产生形态,是相对于“中心化”而言的新型网络内容生产过程。去中心化并非不要中心,而是由节点来自由选择中心、自由决定中心,在去中心化系统中,任何人都可以是一个节点,任何人也都可以成为一个中心。去中心化的至少两个核验节点可以是程序化的、人工线上系统或者人工+线下客户端,数据核验方式由智能合约决定。如果采用人工核验节点,会选择具有从业资格的个人或机构进行数据核验,而不能是被核验方,例如对于保险智能合约来说,核验节点不能是签订所述保险智能合约的保险公司。为了保证第一核验结果数据的安全可靠,可以由第三方、保险公司、银保监会等对人工核验节点进行审计。
69.在一种可选的实现方式中,为了提升数据核验的效率,可以先对待核验数据进行完整性校验,再将通过完整性校验的待核验数据分发给每个核验节点,所述数据核验系统300还可以包括:
70.数据校验与分发模块305,用于接收请求方提交的携带有待核验数据的数据核验请求,对所述待核验数据进行完整性校验,将通过完整性校验的待核验数据分发至每个所述核验节点311。
71.示例性的,针对保险智能合约来说,可以先由数据校验与分发模块根据理赔要求对待核验数据进行完整性校验,例如涉及医疗理赔,需要提供诊断证明、药品清单、医院收据等,如果通过完整性校验,再将待核验数据分发给每个所述核验节点,如果未通过完整性校验,提示用户补充完整待核验数据后再重新提交。
72.在一种可选的实现方式中,所述智能合约还包括内容执行合约,所述内容执行合约中包括预设执行触发条件以及对应的执行方式,所述智能合约用于接收所述空气节点304基于所述数据更新请求返回的第二核验数据,若第二核验数据满足预设的执行触发条
件,根据所满足的执行触发条件自动执行对应的执行方式。
73.本说明书实施例提供的数据核验系统,针对请求方提交的携带待核验数据的数据核验请求,由数据核验系统对待核验数据进行数据核验,由于待核验数据包括用于触发部署在第一区块链上的智能合约执行的业务数据,从而生成智能合约执行所需的核验数据;通过在数据核验系统中部署空气节点,结合数据核验系统的api,可以形成第一方预言机,部署在第一区块链上的智能合约包括预言机通信合约,预言机通信合约用于订阅数据核验系统部署的空气节点,使得数据核验系统生成的智能合约执行所需的核验数据可以通过空气节点直接推送给智能合约。智能合约执行所需的链外数据无需通过第三方,由数据核验系统直接将链外数据提供给智能合约,可以提升智能合约执行所需的链外数据的可靠性,从而保证区块链上智能合约的正确执行。
74.进一步的,针对智能合约的数据核验由去中心化的多个核验节点完成,并安全存储在数据核验系统的第二区块链中,智能合约的数据核验去中心化,能够提升智能合约执行所需的链外数据的安全性,并且使得智能合约的签订双方权力对等,减少智能合约的签订双方出现纠纷的可能性。
75.与上述图3所示的数据核验系统相对应地,本说明书实施例还提供一种数据核验方法,所述数据核验方法应用于部署有空气节点的数据核验系统。在数据核验系统中部署空气节点之后,空气节点与数据核验系统的api可以形成第一方预言机,空气节点可以管理数据核验系统的api;部署在第一区块链上的智能合约包括预言机通信合约,所述预言机通信合约用于订阅所述数据核验系统部署的所述空气节点,所述空气节点用于监听所订阅的预言机通信合约发送的数据更新请求。如图4所示,为本说明书的一个实施例提供的数据核验方法的流程示意图,该方法可以包括:
76.s401、响应于请求方提交的携带待核验数据的数据核验请求,对所述待核验数据进行数据核验,生成第一核验数据;其中,所述待核验数据包括用于触发部署在第一区块链上的智能合约执行的业务数据。
77.具体的,针对部署在第一区块链上的智能合约,如果发生了某个与智能合约相关的业务事件能够触发合约中的内容条款,与智能合约相关的用户会产生执行内容条款的需求,基于该需求,用户可以通过客户端向智能合约的数据核验系统提交数据核验请求,当然,用户也可以通过其他方式向智能合约的数据核验系统提交数据核验请求,例如通过浏览器,或者通过人工窗口等,所述的请求方包括但不限于发起数据核验请求的客户端或浏览器等;响应于所述数据核验请求,对所述待核验数据进行数据核验,生成第一核验数据;所述待核验数据除了包括用于触发所述智能合约执行的业务数据之外,还可能包括其他相关数据,具体由智能合约规定。
78.对所述待核验数据进行数据核验的方式,由智能合约规定。通常情况下,包括对待核验数据的真实性核验,还可能需要进行相应计算,生成的第一核验数据通常包括核验结果(是否通过)、智能合约要求提供的待核验数据,还可能包括计算结果。智能合约还会规定标准数据模板,数据核验系统根据智能合约规定的标准数据模板提供相应的第一核验数据。
79.在一种可选的实现方式中,为了防止单个核验节点可能存在的虚假核验风险,提升数据核验系统的安全性,所述数据核验系统可以包括去中心化的至少两个核验节点;相
应的,s401中对所述待核验数据进行数据核验,生成第一核验数据,具体可以包括:
80.s4011、每个所述核验节点分别对所述待核验数据进行真实性核验,得到对应的核验结果;
81.s4012、基于所述待核验数据和与所述待核验数据对应的核验结果生成所述第一核验数据。
82.具体的,去中心化的至少两个核验节点,进行真实性核验的待核验数据可能是相同内容,也可能是不同内容。例如,针对请求方提交的待核验数据,所有核验节点可能针对全部的待核验数据进行数据核验分别生成各自的第一核验数据;也可能对待核验数据按照类别或其他规则进行拆分,部分核验节点可能针对其中一部分的待核验数据进行数据核验分别生成各自的第一核验数据,其他核验节点可能针对另一部分的待核验数据进行数据核验分别生成各自的第一核验数据,可以灵活设定。
83.在一种可选的实现方式中,所述数据核验系统还可以包括第二区块链,用于存储去中心化的至少两个核验节点提交的第一核验数据;相应的,每个所述核验节点将生成的第一核验数据存储至第二区块链。
84.在一种可选的实现方式中,为了提升数据核验的效率,在所述每个所述核验节点分别对所述待核验数据进行真实性核验之前,所述方法还包括:
85.接收请求方提交的携带有待核验数据的数据核验请求,对所述待核验数据进行完整性校验,将通过完整性校验的待核验数据分发至每个所述核验节点。
86.s402、基于监听到的数据更新请求,对通过api获取到的所述第一核验数据进行数据封装,得到第二核验数据。
87.在一种可选的实现方式中,s402具体可以包括:
88.基于监听到的预言机通信合约的数据更新请求,根据设定标准对从api获取到的所述第二区块链上的第一核验数据进行数据聚合和封装,得到所述第二核验数据,根据所述智能合约确定所述设定标准。
89.具体的,所述设定标准是由智能合约规定的,由第一方预言机的提供方按照智能合约的规定,形成所述设定标准提供给空气节点。基于监听到的预言机通信合约的数据更新请求,先由api从所述第二区块链上获取各核验节点提交的第一核验数据;再由所述空气节点对从所管理的api上获取到的第一核验数据进行数据聚合和封装,得到第二核验数据。需要说明的是,由于第一核验数据是按照智能合约提供的标准数据模板生成的,第二核验数据是按照智能合约规定的设定标准对第一核验数据进行数据聚合和封装得到的,因此第二核验数据是符合智能合约所要求的数据内容和数据格式的。
90.示例性的,去中心化的至少两个核验节点针对相同内容的待核验数据分别提交到第二区块链上的多个第一核验数据中,核验结果可能存在部分通过、部分不通过的情况,api从第二区块链上获取到针对该相同内容的待核验数据的多个第一核验数据之后,可能会针对各核验节点提交的多个核验结果(是否通过)统计通过的投票数,并且按照智能合约要求的数据格式将多个第一核验数据形成一条数组形式的第一核验数据。例如对于医疗保险智能合约来说,可能有多个核验节点针对使用药品进行数据核验,提交多个第一核验数据,api会针对各核验节点提交的多个核验结果统计通过的投票数,形成一条数组形式的针对使用药品的第一核验数据;当然,还可能有多个核验节点针对医疗费用进行数据核验,提
交多个第一核验数据,api同样会形成另一条数组形式的针对医疗费用的第一核验数据。需要说明的是,api从第二区块链上获取的各核验节点的第一核验数据形成何种数据格式是可以按照智能合约的规定而灵活设定的。
91.具体的,针对同一智能合约,所述空气节点从所管理的api获取到的第一核验数据可能有至少两条,所述至少两条第一核验数据可能来自所述空气节点所管理的同一api也可能来自不同api,所述至少两条第一核验数据可能是针对不同内容的待核验数据形成的,例如对于医疗保险智能合约来说,可能包括一条针对医疗费用的第一核验数据,以及另一条针对使用药品的第一核验数据。
92.示例性的,如图5所示,在api3中,智能合约的信标服务器合约向所订阅的空气节点发送数据更新请求,空气节点根据ois标准从所管理的至少一个api上获取至少两条第一核验数据并进行数据聚合和封装,由api3提供的ois标准写在json配置文件中,规范了从api到空气节点的数据映射关系、请求地址、请求协议和方法(get、post等),所述ois标准可以是api3按照智能合约的规定而形成并提供给空气节点的。
93.s403、将所述第二核验数据推送至所述智能合约。
94.在一种可选的实现方式中,第一方预言机的提供方,针对每个空气节点会配置标识信息,为每个空气节点配置的标识信息可以为一个,也可以为多个,为不同的空气节点配置的标识信息不同即可。预言机通信合约中包括订阅的空气节点的标识信息,所述预言机通信合约基于所述标识信息与所订阅的所述空气节点通信。示例性的,在api3中,所述标识信息为信标标识(beacon id)。并且,所述智能合约的地址预先加入所述空气节点的地址白名单中。预言机通信合约会定期或根据预设条件发送数据更新请求给所订阅的空气节点,数据更新请求以日志形式存储在第一方预言机的区块链网络上,空气节点监听区块链网络上日志中的数据更新请求,基于监听到的所述预言机通信合约的数据更新请求,空气节点通过所管理的api获取各核验节点存储到第二区块链上的第一核验数据(更新数据),基于地址白名单将封装后得到的第二核验数据推送至所述智能合约。
95.在一种可选的实现方式中,s403具体可以包括如下步骤:
96.s4031、基于监听到的预言机通信合约的数据更新请求,从所述地址白名单中调用与所述预言机通信合约对应的智能合约的地址;所述空气节点的地址白名单包括与所订阅的预言机通信合约对应的智能合约的地址;
97.s4032、基于调用的地址将所述第二核验数据推送至所述智能合约。
98.本说明书实施例提供的智能合约的数据核验方法,针对请求方提交的携带待核验数据的数据核验请求,由数据核验系统对待核验数据进行数据核验,由于待核验数据包括用于触发部署在第一区块链上的智能合约执行的业务数据,从而生成智能合约执行所需的核验数据;通过在数据核验系统中部署空气节点,结合数据核验系统的api,可以形成第一方预言机,部署在第一区块链上的智能合约包括预言机通信合约,预言机通信合约用于订阅数据核验系统部署的空气节点,使得数据核验系统生成的智能合约执行所需的核验数据可以通过空气节点直接推送给智能合约。智能合约执行所需的链外数据无需通过第三方,由数据核验系统直接将链外数据提供给智能合约,可以提升智能合约执行所需的链外数据的可靠性,从而保证区块链上智能合约的正确执行。
99.进一步的,针对智能合约的数据核验由去中心化的多个核验节点完成,并安全存
储在数据核验系统的区块链中,智能合约的数据核验去中心化,能够提升智能合约执行所需的链外数据的安全性,并且使得智能合约的签订双方权力对等,减少智能合约的签订双方出现纠纷的可能性。
100.基于同一技术构思,本说明书实施例还提供一种数据更新方法,应用于部署在第一区块链上的智能合约,所述智能合约包括预言机通信合约,所述预言机通信合约用于订阅数据核验系统部署的空气节点,所述数据核验系统提供智能合约的数据核验、数据存储等功能。
101.如图6所示,为本说明书的一个实施例提供的数据更新方法的流程示意图,该方法可以包括:
102.s601、通过所述预言机通信合约向所订阅的所述空气节点发送数据更新请求;
103.s602、接收所述空气节点基于所述数据更新请求返回的第二核验数据;
104.其中,所述第二核验数据是所述数据核验系统响应于请求方提交的携带待核验数据的数据核验请求,对所述待核验数据进行数据核验后由所述空气节点获取并进行数据封装得到的,所述待核验数据包括用于触发所述智能合约执行的业务数据。
105.所述数据核验系统可以根据上述图4所示的数据核验方法对所述待核验数据进行数据核验,通过空气节点向所述预言机通信合约对应的智能合约推送第二核验数据,具体不再赘述。
106.在一种可选的实现方式中,所述智能合约还可以包括内容执行合约,所述内容执行合约中包括预设执行触发条件以及对应的执行方式;
107.相应的,所述智能合约接收所述空气节点基于所述数据更新请求返回的第二核验数据之后,若第二核验数据满足预设的执行触发条件,则所述智能合约根据所满足的执行触发条件自动执行对应的执行方式。
108.示例性的,如果所述智能合约为保险智能合约,则保险智能合约接收到第二核验数据之后,会根据第二核验数据最终判定是否满足预设的执行触发条件。智能合约根据第二核验数据的最终判决可以根据通过的投票数决定,如果投票数超过设定阈值则通过,否则,不通过。如果所述第二核验数据满足预设的执行触发条件,则根据所满足的执行触发条件自动执行对应的执行方式,例如针对保险智能合约,会根据业务数据所触发的内容条款执行相应理赔操作。
109.本说明书实施例提供的数据更新方法,向智能合约提供数据核验服务的数据核验系统部署有空气节点,部署在第一区块链上的智能合约包括预言机通信合约,预言机通信合约用于订阅数据核验系统部署的空气节点,通过预言机通信合约向所订阅的空气节点发送数据更新请求,并接收空气节点返回的核验数据,使得数据核验系统生成的智能合约执行所需的核验数据可以通过空气节点直接推送至智能合约。智能合约执行所需的链外数据无需通过第三方,由数据核验系统直接将链外数据提供给智能合约,可以提升智能合约执行所需的链外数据的可靠性,从而保证区块链上智能合约的正确执行。
110.以保险智能合约为例,举例说明本说明书实施例提供的数据核验及数据更新方法,假设投保人和保险公司签订了一份保险智能合约,所述保险智能合约部署在第一区块链上,保险智能合约包括两部分。一部分是内容执行合约,即具体保险细则的执行程序。例如保险智能合约接收到理赔申请数据,保险智能合约将从保险公司的数字钱包地址向投保
人的数字钱包地址打款;当然,具体的打款方式可以不作限制,例如还可以保险智能合约将理赔申请数据上链,由保险公司线下打款,或者线上银行转账。另一部分是预言机通信合约,以代码包的形成被保险智能合约引入,预言机通信合约会订阅具体的预言机,此处保险智能合约的预言机通信合约订阅数据核验系统所部署的空气节点,以便在数据更新后得到推送,所述的数据核验系统可以提供理赔数据核验、数据存储等功能。保险智能合约的地址需要预先加入所订阅的空气节点的地址白名单中,加入地址白名单的方式可以为签订一份白名单智能合约,把保险公司的数字钱包地址和保险智能合约的地址与白名单智能合约绑定,通过白名单智能合约,空气节点可以获取发送数据的地址。数据核验以及数据更新方法包括:
111.步骤1、用户(投保人、保险受益人或代理人)产生理赔需求,通过客户端提交携带待核验数据的数据核验请求;此处,所述的待核验数据具体为理赔申请数据。
112.步骤2、数据核验系统接收到数据核验请求,根据保险智能合约的规定对理赔申请数据进行完整性比对,例如医疗保险就需要提供诊断证明、药品清单、医院收据等,车险就需要提供交通部门事故认证责任书、赔偿收据等。
113.步骤3、数据核验系统根据保险智能合约的规定,将理赔申请数据分发给多个保险理赔核验节点;多个核验节点分别对理赔申请数据进行数据核验,生成第一核验数据存储至数据核验系统的第二区块链。
114.核验节点可以是程序化的、人工线上系统或者人工+线下客户端,核验方式由保险智能合约规定。由于不同保险类别的理赔申请数据完全不相同,需要根据保险智能合约提供的标准数据模板生成相应的第一核验数据。例如人寿保险和车辆保险的标准数据模板不同,需要核验节点根据具体的标准数据模板提供相应的第一核验数据。
115.步骤4、保险智能合约通过预言机通信合约定期向所订阅的空气节点发送数据更新请求,数据核验系统部署的空气节点监听所订阅的预言机通信合约发送的数据更新请求。
116.步骤5、基于监听到的数据更新请求,空气节点根据设定标准(例如ois标准)对从所管理的api上获取到的第二区块链上的第一核验数据进行数据聚合和封装,得到第二核验数据。
117.步骤6、保险智能合约接收到空气节点返回的第二核验数据,若第二核验数据满足预设的执行触发条件,则根据第二核验数据执行相应的理赔操作。
118.图7是本说明书的一个实施例电子设备的结构示意图。请参考图7,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-access memory,ram),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
119.处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的
总线。
120.存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
121.处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成部署有空气节点的数据核验系统。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
122.响应于请求方提交的携带待核验数据的数据核验请求,对所述待核验数据进行数据核验,生成第一核验数据;
123.基于监听到的数据更新请求,对通过应用程序接口api获取到的所述第一核验数据进行数据封装,得到第二核验数据,以及将所述第二核验数据推送至所述智能合约;
124.其中,所述待核验数据包括用于触发部署在第一区块链上的智能合约执行的业务数据,所述智能合约包括预言机通信合约,所述预言机通信合约用于订阅所述空气节点,所述空气节点用于监听所订阅的预言机通信合约发送的数据更新请求。
125.或者,处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成智能合约,所述智能合约包括预言机通信合约,所述预言机通信合约用于订阅数据核验系统部署的空气节点。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
126.通过所述预言机通信合约向所订阅的所述空气节点发送数据更新请求;
127.接收所述空气节点基于所述数据更新请求返回的第二核验数据;
128.其中,所述第二核验数据是所述数据核验系统响应于请求方提交的携带待核验数据的数据核验请求,对所述待核验数据进行数据核验后由所述空气节点获取并进行数据封装得到的,所述待核验数据包括用于触发所述智能合约执行的业务数据。
129.上述如本说明书图4所示实施例揭示的数据核验系统执行的方法或者如本说明书图6所示实施例揭示的智能合约执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
130.应理解,本说明书实施例的电子设备可以实现数据核验系统在图4所示实施例的功能或者智能合约在图6所示实施例的功能。由于原理相同,本说明书实施例在此不再赘述。
131.当然,除了软件实现方式之外,本说明书的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
132.本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图4所示实施例的方法,并具体用于执行以下操作:
133.响应于请求方提交的携带待核验数据的数据核验请求,对所述待核验数据进行数据核验,生成第一核验数据;
134.基于监听到的数据更新请求,对通过应用程序接口api获取到的所述第一核验数据进行数据封装,得到第二核验数据,以及将所述第二核验数据推送至所述智能合约;
135.其中,所述待核验数据包括用于触发部署在第一区块链上的智能合约执行的业务数据,所述智能合约包括预言机通信合约,所述预言机通信合约用于订阅所述空气节点,所述空气节点用于监听所订阅的预言机通信合约发送的数据更新请求。
136.本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图6所示实施例的方法,并具体用于执行以下操作:
137.通过所述预言机通信合约向所订阅的所述空气节点发送数据更新请求;
138.接收所述空气节点基于所述数据更新请求返回的第二核验数据;
139.其中,所述第二核验数据是所述数据核验系统响应于请求方提交的携带待核验数据的数据核验请求,对所述待核验数据进行数据核验后由所述空气节点获取并进行数据封装得到的,所述待核验数据包括用于触发所述智能合约执行的业务数据。
140.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
141.总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书的保护范围之内。
142.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
143.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动
态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
144.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
145.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1