智能合约的执行方法、装置、终端设备及计算机介质与流程

文档序号:32788557发布日期:2023-01-03 20:14阅读:26来源:国知局
智能合约的执行方法、装置、终端设备及计算机介质与流程

1.本发明涉及区块链技术领域,尤其涉及一种智能合约的执行方法、装置、终端设备及计算机可读存储介质。


背景技术:

2.随着区块链技术的发展,区块链的开发者逐渐意识到在区块链内部署智能合约是一种能为区块链增添更多可变属性,并使区块链能够完成更复杂的任务的技术手段。
3.但是,目前各区块链上部署的智能合约的合约参数和智能合约本身的代码都是公开的,从而出现了参与智能合约的其中一个参与方可以采用查看合约参数或智能合约底层代码的方式获取该智能合约下其他参与方各自的隐私信息,从而对其他参与方的链上资产进行恶意做空的情况,因此,如何令智能合约在执行的过程中更好的保护用户隐私,也成为了行业内亟需解决的问题。


技术实现要素:

4.本发明实施例通过提供一种智能合约的执行方法、装置、终端设备及计算机可读存储介质,旨在令目标智能合约不需要增加额外计算量,从而确保计算结果准确,进而可以保护各参与方的隐私信息的技术效果。
5.本发明提供一种智能合约的执行方法,所述智能合约的执行方法包括以下步骤:
6.获取区块链内各参与节点各自对应的目标输入参数,并对各所述目标输入参数进行加密得到各加密目标参数;
7.将各所述加密目标参数通过所述区块链内的目标智能合约进行公开得到各公开目标参数,并调用所述目标智能合约对各所述公开目标参数进行计算得到第一计算结果;
8.调用所述区块链内各管理节点对各所述目标输入参数进行离线计算得到第二计算结果,并由各所述管理节点生成与所述第二计算结果对应的零知识证明;
9.调用所述区块链内的各验证节点对所述第一计算结果行验证得到验证结果,并由各所述验证节点将所述验证结果与所述零知识证明部署至所述区块链内。
10.进一步地,所述方法还包括:
11.在所述区块链内的各所述参与节点中确定各候选节点;
12.获取预设的管理数量阈值,按照所述管理数量阈值在各所述候选节点中随机选择目标候选节点,并将所述目标候选节点确定为所述管理节点。
13.进一步地,在所述将所述目标候选节点确定为所述管理节点的步骤之后,所述方法还包括:
14.获取预设的合约奖励参数和合约惩罚参数;
15.对所述零知识证明进行检测,并判断所述零知识证明是否正确;
16.若是,则按照所述合约奖励参数对各所述管理节点执行与所述合约奖励参数对应的合约奖励操作;
17.若否,则按照所述合约奖励参数对各所述管理节点执行与所述合约惩罚参数对应的合约惩罚操作。
18.进一步地,所述方法还包括:
19.获取预设的合约触发阈值,根据各所述加密目标参数确定与各所述参与节点对应的参与节点数量,并将所述合约触发阈值与所述参与节点数量进行比对得到比对结果;
20.当所述比对结果为所述参与节点数量小于所述合约触发阈值时,对各所述加密目标参数执行退还操作;
21.当所述比对结果为所述参与节点数量大于或等于所述合约触发阈值时,执行所述将各所述加密目标参数通过所述区块链内的目标智能合约进行公开得到各公开目标参数的步骤。
22.进一步地,所述调用所述区块链内各管理节点对各所述目标输入参数进行离线计算得到第二计算结果的步骤,包括:
23.控制各管理节点进入离线模式;
24.通过所述离线模式控制各所述管理节点按照所述目标智能合约对应的合约规则对各所述目标输入参数进行计算得到第二计算结果。
25.进一步地,所述验证结果包含第一计算结果有效和第一计算结果无效,所述调用所述区块链内的各验证节点对所述第一计算结果行验证得到验证结果的步骤,包括:
26.调用各验证节点对各所述公开目标参数进行计算得到第四计算结果,并将所述第四计算结果与所述第一计算结果进行比对得到比对结果;
27.当所述比对结果为所述第四计算结果与所述第一计算结果一致时,确定验证结果为所述第一计算结果有效;
28.当所述比对结果为所述第四计算结果与所述第一计算结果不一致时,确定所述验证结果为所述第一计算结果无效。
29.进一步地,在所述由各所述验证节点将所述验证结果与所述零知识证明部署至所述区块链内的步骤之前,所述方法还包括:
30.由各所述参与节点基于各所述目标输入参数得到第三计算结果;
31.将所述第三计算结果对所述第二计算结果进行比对并判断所述第三计算结果与所述第二计算结果是否一致;
32.若判断到所述第三计算结果与所述第二计算结果一致,则确定所述第二计算结果为有效计算结果;
33.若判断到所述第三计算结果与所述第二计算结果不一致,则确定所述第二计算结果为无效计算结果。
34.此外,为实现上述目的,本发明还提供一种智能合约的执行装置,所述装置包括:
35.参数加密模块,用于获取区块链内各参与节点各自对应的目标输入参数,并对各所述目标输入参数进行加密得到各加密目标参数;
36.第一计算模块,用于将各所述加密目标参数通过所述区块链内的目标智能合约进行公开得到各公开目标参数,并调用所述目标智能合约对各所述公开目标参数进行计算得到第一计算结果;
37.第二计算模块,用于调用所述区块链内各管理节点对各所述目标输入参数进行离
线计算得到第二计算结果,并由各所述管理节点生成与所述第二计算结果对应的零知识证明;
38.结果验证模块,用于调用所述区块链内的各验证节点对所述第一计算结果行验证得到验证结果,并由各所述验证节点将所述验证结果与所述零知识证明部署至所述区块链内。
39.此外,为实现上述目的,本发明还提供一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的智能合约的执行程序,所述智能合约的执行程序被所述处理器执行时实现如上述的智能合约的执行方法的步骤。
40.此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有智能合约的执行程序,所述智能合约的执行程序被处理器执行时实现如上述的智能合约的调用管理方法的步骤。
41.本发明实施例提供的智能合约的执行方法、装置、终端设备及计算机可读存储介质,通过获取区块链内各参与节点各自对应的目标输入参数,并对各所述目标输入参数进行加密得到各加密目标参数;将各所述加密目标参数通过所述区块链内的目标智能合约进行公开得到各公开目标参数,并调用所述目标智能合约对各所述公开目标参数进行计算得到第一计算结果;调用所述区块链内各管理节点对各所述目标输入参数进行离线计算得到第二计算结果,并由各所述管理节点生成与所述第二计算结果对应的零知识证明;调用所述区块链内的各验证节点对所述第一计算结果行验证得到验证结果,并由各所述验证节点将所述验证结果与所述零知识证明部署至所述区块链内。
42.在本实施例中,终端设备在运行过程中,首先与预设的区块链进行链接,同时,该终端设备对该区块链进行检测,并在检测到该区块链内各参与节点发出合约执行指令时,该终端设备获取各该参与节点各自的目标输入参数,并调用该终端设备内置的数据加密装置对各该目标输入参数执行散列操作得到各加密目标参数,之后,该终端设备将各该加密目标参数通过该区块链内的目标智能合约进行公开得到各公开目标参数,该终端设备调用该目标智能合约按照预设的合约规则对各该公开目标参数进行计算并得到第一结算结果,再之后,该终端设备调用该智能合约对应的各管理节点按照该合约规则对各目标输入参数进行计算得到第二计算结果,各该管理节点生成与该第二计算结果对应的零知识证明,最后,该终端设备将得到的第一计算结果输入至该区块链内的各验证节点,由各验证节点对该第一计算结果进行验证得到验证结果,各该验证节点将该验证结果与该零知识证明进行打包封装并部署至该区块链上,以供各该参与节点在该区块链上查看该验证结果。
43.如此,本发明采用由目标智能合约对各公开目标参数进行计算得到第一计算结果,和由区块链内的各管理节点对各目标输入参数进行计算得到第二计算结果和与该第二计算结果对应的零知识证明,并由该区块链内的各验证节点将该零知识证明与第一计算结果对应的验证结果打包上链的方式,达到了令目标智能合约不需要增加额外计算量,从而确保计算结果准确,进而可以保护各参与方的隐私信息的技术效果。
附图说明
44.图1是本发明实施例方案涉及的硬件运行环境的终端设备的结构示意图;
45.图2为本发明智能合约的执行方法第一实施例的流程示意图;
46.图3为本发明智能合约的执行方法第二实施例的流程示意图;
47.图4为本发明智能合约的执行方法一实施例涉及的详细流程示意图;
48.图5为本发明智能合约的执行方法一实施例涉及的功能模块示意图。
49.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
50.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
51.请参照图1,图1为本发明实施例方案涉及的硬件运行环境的终端设备结构示意图。
52.本发明实施例针对的终端设备可以是内部集成windows系统作为操作系统的pc(personal computer,个人计算机),当然,该终端设备还可以是服务器等其他固定式终端设备或手机、平板等移动式终端设备。
53.如图1所示,该终端设备可以包括:处理器1001,例如中央处理器(central processing unit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(random access memory,ram)存储器,也可以是稳定的非易失性存储器(non-volatile memory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
54.本领域技术人员可以理解,图1中示出的结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
55.如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及智能合约的执行程序。
56.在图1所示的终端设备中,网络接口1004主要用于与其他设备进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明终端设备中的处理器1001、存储器1005可以设置在终端设备中,所述终端设备通过处理器1001调用存储器1005中存储的智能合约的执行程序,并执行本发明实施例提供的智能合约的执行方法。
57.基于上述终端设备,提供本发明智能合约的执行方法的各个实施例。
58.请参照图2,图2为本发明智能合约的调用法第一实施例的流程示意图。
59.应当理解的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,本发明智能合约的执行方法当然也可以以不同于此处的顺序执行所示出或描述的步骤。
60.在本实施例中,本发明智能合约的执行方法,应用于配置有区块链的终端设备,且该区块链内包含目标智能合约,可以包括以下步骤:
61.步骤s10:获取区块链内各参与节点各自对应的目标输入参数,并对各所述目标输入参数进行加密得到各加密目标参数;
62.在本实施例中,终端设备在运行过程中首先与开发者指令的区块链进行链接并调用设置在该终端设备内的指令检测装置对区块链进行检测,在该指令装置检测到该区块链内各参与节点对目标智能合约发出执行指令时,该终端设备获取各该参与节点各自对应的
目标输入参数,并调用设置在该终端设备内的数据加密装置对各该目标输入参数执行散列操作得到各加密目标参数。
63.示例性地,例如,终端设备在运行过程中调用上述指令检测装置对上述区块链接收到的各项指令进行检测,当该指令检测装置确定该区块链接收到该区块链内全部或其中一部分参与节点发出的合约执行指令时,该终端设备获取发出该合约执行指令的各参与节点各自对应的目标输入参数,同时,该终端设备调用上述数据加密装置对各该目标输入参数内与各该参与节点对应的用户隐私数据执行散列操作得到各加密目标参数。
64.需要说明的是,在本实施例中,上述目标智能合约对应的目标输入参数可以是链上资产或其他与目标智能合约内包含的合约规则对应的各数据、链接及选项,本发明智能合约的执行方法对此不做限制。
65.进一步地,在一种可行的实施例中,在上述步骤s10之前,本发明智能合约的执行方法,还可以包括:
66.步骤a10:在所述区块链内的各所述参与节点中确定各候选节点;
67.在本实施例中,终端设备调用节点检测装置在上述区块链内的各参与节点中确定向该区块链输入上述链上资产作为质押标的的各目标参与节点,该终端设备将各该目标参与节点确定为各候选节点。
68.步骤a20:获取预设的管理数量阈值,按照所述管理数量阈值在各所述候选节点中随机选择目标候选节点,并将所述目标候选节点确定为所述管理节点;
69.在本实施例中,终端设备读取存储装置以获取开发者预先存储的管理数量阈值,该终端设备将该管理数量阈值输入至上述节点检测装置,由该节点检测装置根据该管理数量阈值在各上述候选节点中随机选择目标候选节点,该终端设备将各该目标候选节点确定为管理节点。
70.示例性地,例如,终端设备调用节点检测装置在上述区块链内的各参与节点中确定像该区块链输入链上资产并将该链上资产作为质押标的的各目标参与节点,该终端设备将各该目标参与节点确定为各候选节点,之后,该终端设备读取存储装置以获取开发者预先存储的管理数量阈值,并根据该管理数量阈值确定管理节点数量,即,当该管理数量阈值为5时,该终端设备确定管理节点数量为5,之后,该终端设备将该管理节点数量输入至该节点检测装置,由该节点检测装置在各该候选节点中随机选择5个目标候选节点,该终端设备将5个目标候选节点确定为目标智能合约的管理节点。
71.需要说明的是,在本实施例中,管理节点数量应小于或等于候选节点数量,终端设备的使用者可以根据实际使用情况对管理节点数量进行调整,本发明智能合约的执行方法对此不做限制。
72.进一步地,在一种可行的实施例中,在上述步骤a20之后,本发明智能合约的执行方法,还可以包括:
73.步骤b10:获取预设的合约奖励参数和合约惩罚参数;
74.在本实施例中,终端设备读取上述存储装置以获取开发者预先存储的合约奖励参数和合约惩罚参数。
75.步骤b20:对所述零知识证明进行检测,并判断所述零知识证明是否正确;
76.在本实施例中,终端设备将获取的零知识证明输入至该终端设备内配置的数据处
理装置,由该数据装置确定对该零知识证明进行检测并判断该零知识证明是否正确。
77.步骤b30:若是,则按照所述合约奖励参数对各所述管理节点执行与所述合约奖励参数对应的合约奖励操作;
78.在本实施例中,终端设备通过数据处理装置确定按照上述零知识证明和各目标输入参数可以得到与上述第二计算结果一致的目标计算结果时,该终端设备确定该零知识证明正确,并按照上述合约奖励参数对各上述管理节点执行合约奖励操作。
79.步骤b40:若否,则按照所述合约奖励参数对各所述管理节点执行与所述合约惩罚参数对应的合约惩罚操作;
80.在本实施例中,终端设备通过数据处理装置确定按照上述零知识证明和各目标输入参数无法得到与上述第二计算结果一致的目标计算结果时,该终端设备确定该零知识证明错误,并按照上述合约惩罚参数对各上述管理节点执行合约惩罚操作。
81.示例性地,例如,终端设备读取上述存储装置以获取开发者预先存储的合约奖励参数,该终端设备根据该合约奖励参数确定用于对各管理节点进行奖励的目标链上资产数量,之后,该终端设备将获取的上述零知识证明输入至上述数据处理装置,由该数据处理装置按照该零知识证明和各上述目标输入参数进行计算,并判断是否可以得到与上述第二计算结果一致的目标计算结果,当该数据处理装置判断到可以得到该目标计算结果时,该终端设备确定该零知识证明正确,并按照该合约奖励参数将该目标链上资产数量对应的链上资产发送至各该管理节点以完成上述合约奖励操作;
82.和,
83.该终端设备读取该存储装置以开发者预先存储的合约惩罚参数,该终端设备根据该合约惩罚参数确定用于对各管理节点进行惩罚的目标链上资产数量,之后,该终端设备将获取的该零知识证明输入至该数据处理装置,由该数据处理装置按照该零知识证明和各该述目标输入参数进行计算,并判断是否可以得到与该第二计算结果一致的目标计算结果,当该数据处理装置判断到无法得到该目标计算结果时,该终端设备确定该零知识证明错误,并按照该合约惩罚参数将该目标链上资产数量对应的链上资产从各该管理节点处进行扣除以完成上述合约惩罚操作。
84.步骤s20:将各所述加密目标参数通过所述区块链内的目标智能合约进行公开得到各公开目标参数,并调用所述目标智能合约对各所述公开目标参数进行计算得到第一计算结果;
85.在本实施例中,终端设备将获取的各上述加密目标参数通过上述区块链内的目标智能合约公开在上述区块链上并得到各公开目标参数,该终端设备读取上述存储装置以获取该目标智能合约对应的合约规则,该终端设备调用该目标智能合约按照该合约规则对各该公开目标参数进行计算得到第一计算结果。
86.示例性地,例如,请参照图4,图4为本发明智能合约的执行方法一实施例涉及的详细流程示意图,终端设备将获取的各上述加密目标参数通过上述目标智能合约公开在上述区块链上,该终端设备再该区块链上获取各上述公开目标参数,同时,终端设备读取上述存储装置以获取上述合约规则,当该合约规则为开发者预设的石头剪刀布游戏规则时,之后,该终端设备调用上述目标智能合约按照该合约规则对上述区块链上的各公开目标参数进行计算,即,当公开目标参数1为石头,而公开目标参数2为布,则该目标智能合约通过该合
约规则对应的石头剪刀布游戏规则确定该公开目标参数1和该公开目标参数2对应的第一计算结果为该公开目标参数2胜利。
87.需要说明的是,在本实施例中,上述合约规则除了可以对应具体指出的石头剪刀布规则之外,还可以对应其余各类交易或游戏规则,开发者可以根据实际应用需求对该合约规则进行任意调整,本发明智能合约的执行方法对此不做限制。
88.进一步地,在一种可行的实施例中,上述步骤s20,具体可以包括:
89.步骤s201:控制各管理节点进入离线模式;
90.在本实施例中,终端设备控制各上述管理节点断开与上述区块链之间的链接从而进入离线模式。
91.步骤s202:通过所述离线模式控制各所述管理节点按照所述目标智能合约对应的合约规则对各所述目标输入参数进行计算得到第二计算结果;
92.在本实施例中,终端设备读取上述存储装置以获取上述合约规则,之后,该终端设备将各上述目标输入参数发送至各上述管理节点,并控制各该管理节点按照该合约规则对各该目标输入参数进行计算得到上述第二计算结果。
93.示例性地,例如,终端设备控制各上述管理节点断开与上述区块链之间的无线网络链接,从而令各该管理节点进入离线模式,之后,该终端设备读取上述存储装置以获取开发者预先存储的上述石头剪刀布游戏规则,同时,该终端设备将该石头剪刀布游戏规则与目标输入参数1为石头和目标输入参数2为布输入至各该管理节点,由各该管理节点按照该石头剪刀布游戏规则在离线模式下得到上述第二计算结果为目标输入参数2胜利。
94.进一步地,在一种可行的实施例中,在上述步骤s20中“将各所述加密目标参数通过所述目标智能合约进行公开得到各公开目标参数”的步骤之前,本发明智能合约的执行方法,还可以包括:
95.步骤c10:获取预设的合约触发阈值,根据各所述加密目标参数确定与各所述参与节点对应的参与节点数量,并将所述合约触发阈值与所述参与节点数量进行比对得到比对结果;
96.在本实施例中,终端读取存储装置以获取开发者预先存储的合约触发阈值,之后,该终端设备对各上述加密目标参数进行检测并确定与各该加密目标参数对应的加密参数数量,该终端设备进而根据该加密参数数量确定与各上述参与节点对应的参与节点数量,该终端设备将该合约触发阈值与该参与节点数量输入至上述数据处理装置,由该数据处理装置将该合约触发阈值与该参与节点数量进行比对得到比对结果。
97.步骤c20:当所述比对结果为所述参与节点数量小于所述合约触发阈值时,对各所述加密目标参数执行退还操作;
98.在本实施例中,终端设备在确定上述比对结果为上述参与节点数量小于上述合约触发阈值时,该终端设备确定上述合约执行指令为无效执行,并将各上述加密目标参数退还至各上述参与节点中。
99.步骤c30:当所述比对结果为所述参与节点数量大于或等于所述合约触发阈值时,执行所述将各所述加密目标参数通过所述区块链内的目标智能合约进行公开得到各公开目标参数的步骤;
100.在本实施例中,终端设备在确定上述比对结果为上述参与节点数量大于或等于上
述合约触发阈值时,该终端设备确定上述合约执行指令为有效指令,并按照该指令将上述各加密目标参数通过上述区块链内的上述目标智能合约公开在该区块链上,从而得到各上述公开目标参数。
101.示例性地,例如,终端设备首先读取上述的存储装置以获取开发者预先存储在该存储装置内的合约触发阈值,当该合约触发阈值为2时,该终端设备确定至少需要获取两个参与节点对应的目标输出参数时才能调用上述目标智能合约,之后,该终端设备对各上述加密参数进行检测并确定各该加密目标参数对应的加密参数数量,当该终端设备仅检测到该加密参数数量为1时,该终端设备确定各该参与节点对应的参与节点数量为1,再之后,该终端设备将该参与节点数量为1与合约触发阈值为2输入至上述数据处理装置,由该数据处理装置将该合约触发阈值与该参与节点数量进行比对得到比对结果为该参与节点数量1小于该合约触发阈值2时,该终端设备确定上述合约执行指令为无效执行,并将各上述加密目标参数退还至各上述参与节点中,而当该终端设备检测到该加密参数数量为3时,该终端设备确定各该参与节点对应的参与节点数量为3,同样的,该数据处理装置确定该节点数量3大于该合约触发阈值2时,该终端设备按照该指令将各该加密目标参数通过上述只能合约在上述区块链中进行公开从而得到各上述公开目标参数。
102.步骤s30:调用所述区块链内各管理节点对各所述目标输入参数进行离线计算得到第二计算结果,并由各所述管理节点生成与所述第二计算结果对应的零知识证明;
103.在本实施例中,终端设备调用各上述管理节点接收各上述目标输入参数,并由各该管理节点在离线模式下按照上述合约规则对各该目标输入参数进行计算得到第二计算结果,同时,各该管理节点在得到第二计算结果后,根据得到该第二计算结果的过程生成上述零知识证明。
104.示例性地,例如,如图4所示,终端设备首先确定参与节点1对应的目标输入参数1为石头,并确定参数节点2对应的目标输入参数2为布,之后,该终端设备将该目标输入参数1为石头和该目标输入参数2为布发送至各上述管理节点,由各该管理节点按照上述石头剪刀布游戏规则对该目标输入参数1与目标输入参数2进行计算得到第二计算结果为目标输入参数2胜利,同时,各该管理节点将获取该第二计算结果的过程记录并生成上述零知识证明。
105.步骤s40:调用所述区块链内的各验证节点对所述第一计算结果行验证得到验证结果,并由各所述验证节点将所述验证结果与所述零知识证明部署至所述区块链内;
106.在本实施例中,终端设备在上述区块链中确定开发者预设的各验证节点,并控制各该验证节点对上述第一计算结果进行验证得到验证结果,当该终端设备确定该验证结果为第一计算结果有效时,该终端设备控制各该验证节点将该验证结果与上述零知识证明打包封装并部署至区块链内。
107.示例性地,例如,如图4所示,终端设备首先在上述区块链中确定拥有验证权限的各验证节点,该终端设备控制各该验证节点按照上述合约规则对各公开目标参数进行计算得到第四计算结果,各该验证节点根据将该第四计算结果与上述第一计算结果进行比对得到验证结果,当该第四计算结果与该第一计算结果一致时,各该验证节点确定该验证结果为有效结果,该终端设备进而将该验证结果和上述零知识证明打包封装得到结果数据包,并将该结果数据包部署至该区块链上进行公开。
108.进一步地,在一种可行的实施例中,上述步骤s40中“调用所述区块链内的各验证节点对所述第一计算结果行验证得到验证结果”的步骤,具体可以包括:
109.步骤s401:调用各验证节点对各所述公开目标参数进行计算得到第四计算结果,并将所述第四计算结果与所述第一计算结果进行比对得到比对结果;
110.在本实施例中,终端设备首先在上述区块链内确定拥有验证权限的各验证节点,之后,该终端设备调用各该验证节点按照上述合约规则对该区块链上的各公开目标参数进行计算得到上述第四计算结果,该终端设备将该第四计算结果和上述第一计算结果输入至数据比对装置,该数据比对装置将该第四计算结果与该第一计算结果进行比对得到比对结果。
111.步骤s402:当所述比对结果为所述第四计算结果与所述第一计算结果一致时,确定验证结果为所述第一计算结果有效;
112.在本实施例中,终端设备在通过上述数据比对装置确定上述比对结果为上述第四计算结果与上述第一计算结果一致时,该终端设备确定上述验证结果为上述第一计算结果有效。
113.步骤s403:当所述比对结果为所述第四计算结果与所述第一计算结果不一致时,确定所述验证结果为所述第一计算结果无效;
114.在本实施例中,终端设备在通过上述数据比对装置确定上述比对结果为上述第四计算结果与上述第一计算结果不一致时,该终端设备确定上述验证结果为上述第一计算结果无效。
115.示例性地,例如,终端设备首先在上述区块链内确定拥有验证权限的各验证节点,之后,该终端设备控制各该验证节点按照上述石头剪刀布游戏规则对该区块链上的公开目标参数1为石头和公开目标参数2为布进行计算得到第四计算结果为公开目标参数2胜利,同时,该终端设备获取上述第一计算结果为公开目标参数2胜利,该终端设备将该第四结算结果为公开目标参数2胜利与该第一计算结果为公开目标参数2胜利输入至上述数据比对装置,当该数据比对装置将该第一计算结果与该第四计算结果进行比对确定该第一计算结果与该第四计算结果一致时,该终端设备确定上述验证结果为第一计算结果有效;
116.或者,当该第四计算结果为公开目标参数2胜利,而上述第一计算结果为公开目标参数1胜利时,该数据比对装置将该第一计算结果与该第四计算结果进行比对并确定该第一计算结果与该第四计算结果不一致时,该终端设备确定上述验证结果为第一计算结果无效。
117.在本实施例中,终端设备在运行过程中,首先调用设置在该终端设备内的指令检测装置对区块链进行检测,在该指令装置检测到该区块链内各参与节点对目标智能合约发出执行指令时,该终端设备获取各该参与节点各自对应的目标输入参数,并调用设置在该终端设备内的数据加密装置对各该目标输入参数执行散列操作得到各加密目标参数,之后,该终端设备将获取的各上述加密目标参数通过上述目标智能合约公开在上述区块链上并得到各公开目标参数,该终端设备读取上述存储装置以获取该目标智能合约对应的合约规则,该终端设备调用该目标智能合约按照该合约规则对各该公开目标参数进行计算得到第一计算结果,再之后,该终端设备调用各上述管理节点接收各上述目标输入参数,并由各该管理节点在离线模式下按照上述合约规则对各该目标输入参数进行计算得到第二计算
结果,同时,各该管理节点在得到第二计算结果后,根据得到该第二计算结果的过程生成上述零知识证明,最后,该终端设备在上述区块链中确定开发者预设的各验证节点,并控制各该验证节点对上述第一计算结果进行验证得到验证结果,当该终端设备确定该验证结果为第一计算结果有效时,该终端设备控制各该验证节点将该验证结果与上述零知识证明打包封装并部署至区块链内。
118.如此,本发明采用由目标智能合约对各公开目标参数进行计算得到第一计算结果,和由区块链内的各管理节点对各目标输入参数进行计算得到第二计算结果和与该第二计算结果对应的零知识证明,并由该区块链内的各验证节点将该零知识证明与第一计算结果对应的验证结果打包上链的方式,达到了令目标智能合约不需要增加额外计算量,从而确保计算结果准确,进而可以保护各参与方的隐私信息的技术效果。
119.进一步地,基于上述本发明智能合约的执行方法的第一实施例,在此提出本发明智能合约的执行方法的第二实施例。
120.请参照图3,图3为本发明智能合约的执行方法第二实施例的流程示意图,本发明智能合约的执行方法,还可以包括:
121.步骤d10:由各所述参与节点基于各所述目标输入参数得到第三计算结果;
122.在本实施例中,终端设备可以控制区块链内的各参与节点各自按照上述合约规则对该区块链上所公开的各公开目标参数进行计算并得到第三计算结果。
123.步骤d20:将所述第三计算结果对所述第二计算结果进行比对并判断所述第三计算结果与所述第二计算结果是否一致;
124.在本实施例中,终端设备将获取的上述第二计算结果发送至各上述参与节点,由各该参与节点将上述第三计算结果与该第二计算结果进行比对并判断该第三计算结果与该第二计算结果是否一致。
125.步骤d30:若判断到所述第三计算结果与所述第二计算结果一致,则确定所述第二计算结果为有效计算结果;
126.在本实施例中,若上述参与节点确定上述第三计算结果与上述第二计算结果一致,则该终端设备确定该第二计算结果为有效计算结果。
127.步骤d40:若判断到所述第三计算结果与所述第二计算结果不一致,则确定所述第二计算结果为无效计算结果;
128.在本实施例中,若上述参与节点确定上述第三计算结果与上述第二计算结果不一致,则该终端设备确定该第二计算结果为无效计算结果。
129.示例性地,例如,终端设备控制上述区块链内的上述参与节点1和上述参与节点2按照上述石头剪刀布游戏规则对该区块链上的公开目标参数1为石头和公开目标参数2为布进行计算得到第三计算结果为公开目标参数2胜利,同时,该终端设备将获取的上述第二计算结果为目标输入参数2胜利输入至该参与节点1和该参与节点2中,由该参与节点1和该参与节点2各自将该第二计算结果与该第三计算结果进行比对,当该参与节点1和该参与节点2均确定该第二计算结果与该第三计算结果一致时,该终端设备确定该第二计算结果为有效计算结果,并按照上述合约奖励参数将链上资产发送至各该管理节点以完成上述合约奖励操作;
130.或者,当该第三计算结果为公开目标参数2胜利,同时,该终端设备将获取的上述
第二计算结果为目标输入参数1胜利时,该参与节点1和该参与节点2均确定该第二计算结果与该第三计算结果不一致,该终端设备确定该第二计算结果为无效计算结果,并按照上述合约惩罚参数将链上资产从各该管理节点进行扣除以完成上述合约惩罚操作。
131.在本实施例中,首先,终端设备可以控制区块链内的各参与节点各自按照上述合约规则对该区块链上所公开的各公开目标参数进行计算并得到第三计算结果,之后,该终端设备将获取的上述第二计算结果发送至各上述参与节点,由各该参与节点将上述第三计算结果与该第二计算结果进行比对并判断该第三计算结果与该第二计算结果是否一致,最后,若上述参与节点确定上述第三计算结果与上述第二计算结果一致,则该终端设备确定该第二计算结果为有效计算结果,而若上述参与节点确定上述第三计算结果与上述第二计算结果不一致,则该终端设备确定该第二计算结果为无效计算结果。
132.如此,本发明采用由各参与节点各自按照合约规则对各公开目标参数进行计算得到第三计算结果,并通过将该第三计算结果与第二计算结果进行比对的方式确定各管理节点的计算结果是否正确,达到了由各参与节点对管理节点进行监管的目的。
133.此外,本发明还提供一种智能合约的执行装置,请参照图5,图5为本发明智能合约的执行方法一实施例涉及的功能模块示意图,如图5所示,本发明智能合约的执行装置包括:
134.参数加密模块10,用于获取区块链内各参与节点各自对应的目标输入参数,并对各所述目标输入参数进行加密得到各加密目标参数;
135.第一计算模块20,用于将各所述加密目标参数通过所述区块链内的目标智能合约进行公开得到各公开目标参数,并调用所述目标智能合约对各所述公开目标参数进行计算得到第一计算结果;
136.第二计算模块30,用于调用所述区块链内各管理节点对各所述目标输入参数进行离线计算得到第二计算结果,并由各所述管理节点生成与所述第二计算结果对应的零知识证明;
137.结果验证模块40,用于调用所述区块链内的各验证节点对所述第一计算结果行验证得到验证结果,并由各所述验证节点将所述验证结果与所述零知识证明部署至所述区块链内。
138.进一步地,参数加密模块10,包括:
139.第一节点筛选单元,用于在所述区块链内的各所述参与节点中确定各候选节点;
140.第二节点筛选单元,用于获取预设的管理数量阈值,按照所述管理数量阈值在各所述候选节点中随机选择目标候选节点,并将所述目标候选节点确定为所述管理节点。
141.进一步地,结果验证模块40,包括:
142.机制参数获取单元,用于获取预设的合约奖励参数和合约惩罚参数;
143.知识证明检测单元,用于对所述零知识证明进行检测,并判断所述零知识证明是否正确;
144.奖励操作执行单元,用于若判断到所述零知识证明正确,则按照所述合约奖励参数对各所述管理节点执行与所述合约奖励参数对应的合约奖励操作;
145.惩罚操作执行单元,用于若判断到所述零知识证明不正确,则按照所述合约奖励参数对各所述管理节点执行与所述合约惩罚参数对应的合约惩罚操作。
146.进一步地,参数加密模块10,还包括:
147.阈值参数比对单元,用于获取预设的合约触发阈值,根据各所述加密目标参数确定与各所述参与节点对应的参与节点数量,并将所述合约触发阈值与所述参与节点数量进行比对得到比对结果;
148.合约触发失败单元,用于当所述比对结果为所述参与节点数量小于所述合约触发阈值时,对各所述加密目标参数执行退还操作;
149.合约触发成功单元,用于当所述比对结果为所述参与节点数量大于或等于所述合约触发阈值时,执行所述将各所述加密目标参数通过所述区块链内的目标智能合约进行公开得到各公开目标参数的步骤。
150.进一步地,第二计算模块30,包括:
151.离线模式控制单元,用于控制各管理节点进入离线模式;
152.管理节点计算单元,用于通过所述离线模式控制各所述管理节点按照所述目标智能合约对应的合约规则对各所述目标输入参数进行计算得到第二计算结果。
153.进一步地,结果验证模块40,还包括:
154.验证节点计算单元,用于调用各验证节点对各所述公开目标参数进行计算得到第四计算结果,并将所述第四计算结果与所述第一计算结果进行比对得到比对结果;
155.第一结果比对单元,用于当所述比对结果为所述第四计算结果与所述第一计算结果一致时,确定验证结果为所述第一计算结果有效;
156.第二结果比对单元,用于当所述比对结果为所述第四计算结果与所述第一计算结果不一致时,确定所述验证结果为所述第一计算结果无效。
157.进一步地,结果验证模块40,还包括:
158.参与节点计算单元,用于由各所述参与节点基于各所述目标输入参数得到第三计算结果;
159.参与节点验证单元,用于将所述第三计算结果对所述第二计算结果进行比对并判断所述第三计算结果与所述第二计算结果是否一致;
160.第三结果比对单元,用于若判断到所述第三计算结果与所述第二计算结果一致,则确定所述第二计算结果为有效计算结果;
161.第四结果比对单元,用于若判断到所述第三计算结果与所述第二计算结果不一致,则确定所述第二计算结果为无效计算结果。
162.此外,本发明还提供一种终端设备,该终端设备上有可在处理器上运行的智能合约的执行程序,所述终端设备执行所述智能合约的执行程序时实现如以上任一项实施例智能合约的执行方法的步骤。
163.本发明终端设备的具体实施例与上述智能合约的执行方法各实施例基本相同,在此不作赘述。
164.此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有智能合约的执行程序,所述智能合约的执行程序被处理器执行时实现如以上任一项实施例所述的智能合约的执行方法的步骤。
165.本发计算机可读存储介质的具体实施例与上述智能合约的执行方法各实施例基本相同,在此不作赘述。
166.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
167.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
168.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是内部集成windows系统作为操作系统的pc(personal computer,个人计算机),当然,该终端设备还可以是服务器等其他固定式终端设备或手机、平板等移动式终端设备等)执行本发明各个实施例所述的方法。
169.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1