本文作者:kaifamei

区块链智能合约加密的交易方法、装置、设备及存储介质与流程

更新时间:2025-12-26 03:10:09 0条评论

区块链智能合约加密的交易方法、装置、设备及存储介质与流程



1.本发明涉及区块链技术领域,尤其区块链智能合约加密的交易方法、装置、设备及存储介质。


背景技术:



2.区块链技术构建在传输网络(也可称为区块链网络)之上,传输网络中的分布式节点设备(以下简称为节点)通过运行区块链程序,实现以预设共识策略生成区块数据,并利用链式数据结构验证与存储区块数据,最终实现了数据防篡改机制,为业务开展提供了安全可信的技术新思路。
3.基于区块链网络的防篡改机制,智能合约的交易是在区块链网络上进行的,因此区块链网络的所有节点均需要拥有获取智能合约的合约源码权限,否则无法完成智能合约的交易,因此智能合约基于现有的区块链网络结构,虽然智能合约的交易数据不会被篡改,但是存在数据泄露问题,不利于区块链技术推广和商业落地。


技术实现要素:



4.有鉴于此,本发明实施例提供了一种区块链智能合约加密的交易方法、装置、设备及存储介质,用以解决现有基于区块链网络进行交易存在数据泄露,所导致的区块链技术推广难的技术问题。
5.本发明采用的技术方案是:
6.本发明提供了一种区块链智能合约加密的交易方法,所述方法包括:
7.获取业务需求方的业务请求参数;
8.根据所述业务请求参数调取运行在区块链网络上的目标合约,其中,所述目标合约为对合约源码进行加密后存储在区块链网络的智能合约;
9.根据所述目标合约的合约内容执行与所述业务请求参数的合约执行参数对应的交易,得到所述目标合约本次交易的交易数据;
10.根据所述交易数据更新所述目标合约的业务状态数据,并再次上传至区块链网络。
11.优选地,述根据所述目标合约的合约内容执行与所述业务请求参数的合约执行参数对应的交易,得到所述目标合约本次交易的交易数据包括:
12.获取所述业务请求参数表征的交易类型和所述目标合约当前的业务状态数据;
13.根据与所述交易类型对应的交易执行方式和当前的业务状态数据执行所述业务请求参数对应的交易,得到所述交易数据。
14.优选地,所述根据所述业务请求参数调取运行在区块链网络上的目标合约,其中,所述目标合约为对合约源码进行加密后存储在区块链网络的智能合约包括:
15.根据所述业务请求参数的交易签名信息,基于预存在区块链网络上的与所述业务请求方对应的身份信息进行身份验证,得到交易验证信息;
16.若交易验证成功,根据所述业务请求参数的合约id信息,调取所述区块链网络上与所述合约id信息对应的所述目标合约至隐私网关。
17.优选地,所述若交易验证成功,根据所述业务请求参数的合约id信息,调取所述区块链网络上与所述合约id信息对应的所述目标合约至隐私网关包括:
18.获取与所述合约id信息对应的第一密钥对;
19.利用所述第一密钥对的公钥进行所述合约id信息加密,得到与所述合约id信息对应的虚拟id信息;
20.根据所述虚拟id信息,调取所述目标合约;
21.其中,所述虚拟id信息为所述合约id信息对应的所述目标合约在区块链网络上的地址信息。
22.优选地,所述获取所述业务请求参数表征的交易类型和所述目标合约当前的业务状态数据包括:
23.根据所述第一密钥对进行查表,得到第二密钥对;
24.根据所述第二密钥对的私钥进行所述目标合约解密,得到当前的业务状态数据。
25.优选地,若所述交易类型为查询业务,所述根据与所述交易类型对应的交易执行方式和当前的业务状态数据执行所述业务请求参数对应的交易,得到所述交易数据包括:
26.获取第一交易和第二交易,其中,所述第一交易为前一业务请求方的业务请求对应的交易,所述第二交易为本次业务需求方的业务请求对应的交易;
27.对比所述第一交易和所述第二交易的所述交易类型相同,则直接输出所述第一交易对应的交易历史数据作为所述交易数据。
28.优选地,若所述交易类型为非查询业务,所述根据与所述交易类型对应的交易执行方式和当前的业务状态数据执行所述业务请求参数对应的交易,得到所述交易数据包括:
29.获取所述合约执行参数和当前的业务状态数据;
30.根据所述合约执行参数和当前的业务状态数据在可信执行环境执行与所述合约执行参数对应的交易,生成所述交易数据;
31.其中,所述可行执行环境为在芯片层面上单独划分出来的一片区域,该区域用于为代码的执行和数据的存储提供一个更加安全的执行空间。
32.本发明还提供了一种区块链智能合约加密的交易装置,包括:
33.合约获取模块:用于获取业务需求方的业务请求参数;
34.合约调用模块:用于根据所述业务请求参数调取运行在区块链网络上的目标合约,其中,所述目标合约为对合约源码进行加密后存储在区块链网络的智能合约;
35.合约执行模块:用于根据所述目标合约的合约内容执行与所述业务请求参数的合约执行参数对应的交易,得到所述目标合约本次交易的交易数据;
36.合约更新模块,用于根据所述交易数据更新所述目标合约的业务状态数据,并再次上传至区块链网络。
37.本发明还提供了一种电子设备,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现上述任一项所述的方法。
38.本发明还提供了一种介质,其上存储有计算机程序指令,当所述计算机程序指令被处理器执行时实现上述任一项所述的方法。
39.综上所述,本发明的有益效果如下:
40.本发明提供的区块链智能合约加密的交易方法、装置、设备及存储介质,根据业务需求方的业务请求参数,从区块链网络中调取合约源码加密后对应的目标合约,基于目标合约的合约内容和合约执行参数执行交易,实现区块链网络上的加密合约的链下执行,在利用交易执行后的交易数据实现链下目标合约当前的业务状态数据更新后,再次加密上传至区块链网络;本发明能够避免目标合约的非合约id信息被区块链网络上的任意用户获取,同时又能利用区块链网络的防篡改特点来提高合约的保密效果。
附图说明
41.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,这些均在本发明的保护范围内。
42.图1为本发明实施例1中区块链智能合约加密的交易方法的流程示意图;
43.图2为本发明实施例1中获取交易数据的流程示意图;
44.图3为本发明实施例1中获取目标合约的流程示意图;
45.图4为本发明实施例2中区块链智能合约加密的交易装置的结构示意图;
46.图5为本发明实施例3中的电子设备的结构示意图。
具体实施方式
47.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。在本发明的描述中,需要理解的是,术语“中心”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。如果不冲突,本发明以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。
48.为便于理解,在此对本文出现的部分技术名词进行解释:
49.明文数据或明文:人为可读懂的多个明细项,如用户名称、身份证号、交易日期、要办理的业务类型等。
50.需要说明的是:区块链网络的业务处理系统包括:区块链网络、多个报文中间件、
以及多个用户端。其中,用户端与报文中间件通信连接,报文中间件又与区块链网络内的任一节点或指定节点通信连接。如此,用户端通过报文中间件实现与区块链网络的信息交互。
51.实施例1
52.区块链网络具有防篡改优点,可以解决交易双方信任问题,然而区块链网络的防篡改机制是源于区块链网络上的所有参与者的共识机制来实现防篡改,导致现有区块链网络上仅适用于机密度低、行业共识性强的基础智能合约,不利于涉及机密数据和隐私数据的智能合约在区块链网络上存储,如多家金融机构共同使用的联盟链,或者某一产业链上所有商家沟通的联盟链;现有的区块链网络存在无法同时做到智能合约的交易数据不被篡改和高级密性的智能合约内容不泄露的问题。
53.请参见图1,图1为本发明实施例1中一种区块链智能合约加密的交易方法,所述方法包括:
54.s1:获取业务需求方的业务请求参数;
55.具体的,目标合约的合约参与任一方需要执行目标合约所约定的交易时,由业务需求方通过用户终端发起业务请求,业务请求的业务请求参数包括智能合约的合约id信息、交易类型、交易类型对应的合约执行参数和业务请求方的身份信息等,身份信息包括签名信息、证书信息、验证码(密码)等。
56.s2:根据所述业务请求参数调取运行在区块链网络上的目标合约,其中,所述目标合约为对合约源码进行加密后存储在区块链网络的智能合约;
57.具体的,业务需求方通过用户端发送业务请求的业务请求参数至隐私网关,隐私网关根据业务请求参数的身份信息对业务需求方进行身份验证,在身份验证通过后根据业务请求参数的合约id信息从区块链网络调取目标合约至隐私网关,为便于本文描述,将目标合约区块链网路上调取至隐私网关以及后续在目标合约从新上链前的其他操作均记为链下操作,链下操作包括链下加密、链下交易、链下验证、链下解密等。
58.需要说明的是:隐私网关增设在区块链网络与用户终端之间,隐私网关用于对机密性高的智能合约的合约源码加密后上链(上传区块链网路进行交易),当需要执行机密性高的智能合约时,隐私网关从区块链上调取该智能合约,然后进行链下操作,如此实现高级密的重要合约的链上存储、链下交易的加密交易模式;链上存储的具体方式为:隐私网关对智能合约的合约源码进行加密,然后上传至区块链网络,区块链网络上的所有用户均只能得到该合约的合约id,无法获取合约的具体内容;当业务需求方需要获得智能合约的合约内容时,需要经过隐私网关将智能合约的合约源码解密为对应的明文发送给业务需求方,从而使得业务需求方获得该智能合约的合约内容,因此可以保证只有智能合约实际签署方才能获得智能合约的合约内容。隐私网关既可以设置在报文中间件与区块链网络之间,也可以设置在用户端与区块链网络之间,此处对于隐私网关的设置位置不做具体限定,针对隐私网关不同设置方式其逻辑程序会进行适应性调整。
59.需要说明的是:隐私网关自身是不存储目标合约的交易数据和/或业务状态数据,该隐私网关为独立自动运行的程序,或不独立存在于任一终端中,也就是说隐私网关的程序运行是根据预设的程序自动执行或需要多方达成共识后才能执行,其维护也需要多方共同参与才能进行维护,从而避免智能合约的数据在调离区块链网络时产生虚假数据。
60.s3:根据所述目标合约的合约内容执行与所述业务请求参数的合约执行参数对应
的交易,得到所述目标合约本次交易的交易数据;
61.s4:根据所述交易数据更新所述目标合约当前的业务状态数据,并再次上传至区块链网络。
62.具体的,合约内容包括目标合约的当前状态参数、合约方法及合约方法对应的执行程序等,目标合约包含多个执行方法,各执行方法与不同业务请求类型相对应,如:合约执行方法a为在可信执行环境,依据第一执行程序和合约执行参数执行交易,得到交易数据;合约执行方法b为依据第二执行程序直接输出前一交易的执行结果作为交易数据。在得到本次交易的交易数据后,利用该交易数据对目标合约当前的业务状态数据进行更新,更新方式包括将合约执行方法a得到交易数据直接添加至目标合约的业务状态数据、将合约执行方法b执行交易的交易数据进行全部舍去或部分舍去的方式更新目标合约的业务状态数据,通过根据不同合约执行方法差异化更新目标合约的业务状态数据,有利于减小区块链网络的存储压力。
63.在一实施例中,请参见图3,所述s2包括:
64.s21:根据所述业务请求参数的交易签名信息,基于预存在区块链网络上的与所述业务请求方对应的身份信息进行身份验证,得到交易验证信息;
65.s22:若交易验证成功,根据所述业务请求参数的合约id信息,调取所述区块链网络上与所述合约id信息对应的所述目标合约至隐私网关。
66.具体的,隐私网关接收到用户端发出的业务请求参数时,基于业务请求参数的身份信息对业务请求方的身份合法性进行验证,若验证通过,则从区块链网络调取与业务请求参数的合约id信息对应的目标合约至隐私网关,业务请求方的身份验证包括链下验证和/或链上验证,链上验证为隐私网关将业务请求方的身份信息作为一个预交易发送至区块链网络,区块链网络上预设有用于验证用户身份信息的执行程序,链下验证为隐私网关根据业务请求方的身份信息向区块链网络调取对应的证明信息,若调取成功则验证通过,若调取不成功则验证失败。验证成功调取目标合约至隐私网关。优选链上验证,基于区块链网络的防篡改特点提高验证的可靠性。
67.在一实施例中,所述s22包括:
68.s221:获取与所述合约id信息对应的第一密钥对;
69.s222:利用所述第一密钥对的公钥进行所述合约id信息加密,得到与所述合约id信息对应的虚拟id信息;
70.s223:根据所述虚拟id信息,调取所述目标合约;
71.其中,所述虚拟id信息为所述合约id信息对应的所述目标合约在区块链网络上的地址信息。
72.具体的,隐私网关中设有多对密钥对,当隐私网关接收到用户端发送的智能合约后,利用第一密钥对的公钥进行智能合约的合约id信息加密,得到智能合约的虚拟id信息,然后将智能合约以虚拟id信息的方式上链,从而避免区块链网络上的真实合约id信息推算出智能合约内容,提高合约在区块链网络上流通的保密性;业务需求方将业务请求参数发送至隐私网关后,隐私网关根据合约id信息确定第一密钥对,并利用第一密钥对的公钥对合约id信息进行加密,从而得到虚拟id信息,从而调取区块链网络上与虚拟id信息对应的目标合约至区块链网络,隐私网关对调取的包含虚拟id信息的目标合约利用第一密钥对的
私钥进行解密,得到目标合约的解析id信息,若该解析id信息与真实的合约id信息一致,则进行下一步操作,否则结束交易。
73.在一实施例中,请参见图2,所述s3包括:
74.s31:获取所述业务请求参数表征的交易类型和所述目标合约当前的业务状态数据;
75.s32:根据与所述交易类型对应的交易执行方式和当前的业务状态数据执行所述业务请求参数对应的交易,得到所述交易数据。
76.具体的,将业务请求的交易类型分为查询交易和非查询交易,根据不同的交易类型设置对应的交易执行方式,并产生对应的交易数据;可以避免连续的无实质数据变化的交易连续出现时,重复执行程序所导致的计算机算力浪费问题;如在金融账户对应的智能合约中,连续的查询交易,查询交易产生的交易数据不会影响账户的余额信息,因此不会影响智能合约如转账、存取等交易的执行结果。
77.在一实施例中,所述s31包括:
78.s311:根据所述第一密钥对进行查表,得到第二密钥对;
79.s312:根据所述第二密钥对的私钥进行所述目标合约解密,得到当前的业务状态数据。
80.具体的,隐私网关对每一份待加密的智能合约配备两对密钥,即第一密钥对和第二密钥对,第一密钥对用于加密智能合约的合约id信息,参见上文,此处不再赘述,利用第二密钥对的公钥加密智能合约的合约源码得到目标合约,其中,隐私网关对智能合约的合约源码进行加密后上传至区块链网络,区块链网络上的所有用户均只能得到该合约的合约id信息,无法获取合约的具体内容;当业务需求方需要获得智能合约的合约内容时,需要经过隐私网关将智能合约的合约源码解密为对应的明文发送给业务需求方,从而使得业务需求方获得该智能合约的合约内容,因此可以保证只有智能合约实际签署方才能获得智能合约的合约内容;利用第二密钥对的私钥解密目标合约,得到目标合约当前的业务状态数据,在隐私网关中存储每一份目标合约的第一密钥对和第二密钥对的密钥表,当确定第一密钥对后通过查询密钥表可以确定第二密钥对,通过设置第一密钥对和第二密钥对,当任一密钥被破解时可以第一时间执行保护程序,提高目标合约的安全性。
81.在一实施例中,若所述交易类型为非查询业务,所述s32包括:
82.s321:获取所述合约执行参数和当前的业务状态数据;
83.s322:根据所述合约执行参数和当前的业务状态数据在可信执行环境执行与所述合约执行参数对应的交易,生成所述交易数据;
84.其中,所述可行执行环境为在芯片层面上单独划分出来的一片区域,该区域用于为代码的执行和数据的存储提供一个更加安全的执行空间。
85.具体的,当业务请求方的业务交易类型为非查询业务时,隐私网关在完成目标合约解密后,将目标合约当前的业务状态数据、合约执行参数发送至tee(trusted execution environment,可行执行环境)中执行该交易,tee为在芯片层面上单独划分出来的一片区域(该区域不一定占有芯片的物理位置),该区域用于为代码的执行和数据的存储提供一个更加安全的执行空间。执行方式也可以是如参与交易的各方通过签名验证的方式完成对应交易,本文对于解密后的交易执行方式此处不做具体限定;通过该方式可以保证交易的执行
更安全、可靠。
86.在一实施例中,若所述交易类型为查询业务,所述s32包括:
87.s323:获取第一交易和第二交易,其中,所述第一交易为前一业务请求方的业务请求对应的交易,所述第二交易为本次业务需求方的业务请求对应的交易;
88.s324:对比所述第一交易和所述第二交易的所述交易类型相同,则直接输出所述第一交易对应的交易历史数据作为所述交易数据。
89.具体的,将当前业务请求方对应的交易记为第二交易,将前一个业务请求方对应的交易记为第一交易,若第一交易和第二交易均为业务查询交易,则直接将上一次的交易历史数据作为本次交易数据,无需再次执行完整的查询交易,可以提高响应时间和节约计算机算力,同时再利用交易数据对目标合约的业务状态数据进行更新时,也无需将交易数据的全部数据,仅需要更新交易时间,从而节约区块链网络的存储资源。
90.在一实施例中,所述s4包括:
91.s41:获取业务请求方发出的业务请求的业务类型;
92.s42:根据所述业务类型对所述交易数据进行筛选,得到用于更新所述目标合约的状态数据的有效数据;
93.s43:利用所述有效数据对所述目标合约的状态数据进行更新,并再次加密后上传至区块链网络。
94.具体的,区块链网络的防篡改机制主要基于分布式存储原理实现的,智能合约每执行一次交易,区块链所有节点均会对交易产生的所有数据进行存储,因此对存储空间的需求量非常大,本技术通过将目标合约调离区块链网络后来执行交易,对交易产生的交易数据根据业务类型进行筛选,将交易数据中的无效数据进行删除,仅保留有效数据来更新目标合约的状态数据,例如:智能合约为储蓄业务时,当需求方发出的业务类型为查询业务,交易数据包含业务类型的需求方身份、查询业务、交易时间、查询结果、查询结果接收方等,由于查询业务不会影响储蓄业务中的实际金额变化,因此仅需要将存在一次查询业务更新至目标合约,无需将查询业务的所有数据更新至目标合约,如查询结果、查询结果接收方等执行参数;从而达到节约区块链各节点的存储空间;又如:业务请求为转账业务时,且执行结果为余额不足交易失败,需要将交易失败的原因发送给业务请求放,如:用户a请求转出100元,账户余额为50元,交易失败,则返回给业务需求方的信息为“账户余额50元,交易失败”,而目标合约在执行该转账交易前,当前状态数据为“账户余额50元”,因此本次交易的“账户余额50元”这一执行参数无需更新,仅需要对目标合约的必要执行参数更新,如“用户a请求转账100元,交易失败”、“业务请求时间:xx年xx月xx日xx时xx分xx秒”;从而节约区块链各节点的存储空间。
95.在一实施例中,智能合约的合约源码加密后的目标合约上链:
96.s01:获取完成签名且需要对合约源码进行加密保护的基础合约;
97.具体的,将智能合约按文件内容的重要性分为普通合约和重要合约,将还未对合约源码加密的智能合约记为基础合约,合约签名包括合约发起方签名和合约接收方签名,为了便于本文描述,将合约接收方记为合约审核方。
98.s02:利用隐私网关独立的密钥进行所述基础合约的合约源码加密,得到所述目标合约;
99.s03:通过所述隐私网关将所述目标合约上传至区块链网络。
100.具体的,将完成合约发起方和合约审核方签名的基础合约发送给隐私网关,隐私网关利用其密钥对的公钥进行该基础合约加密,并将目标合约上传至区块链网络,从而使得该目标合约在区块链网络上仅显示合约id信息,合约具体内容为不可见,当目标合约的合约参与方发出业务请求时,隐私网关根据业务请求中的合约id信息从区块链网络上跳去该目标合约,然后在线下根据业务请求的业务执行参数执行对应交易,从而保证目标合约的合约内容不被区块链网络上的用户获取。例如:合约发起方a和合约接收方b建立了一份基于产品a的合约_01,该合约的合约id信息为01,合约可执行的交易类型包括:查询、转账、存取等业务,当合约_01进过隐私网关加密后,在区块链网络中仅能查看到存在一份合约id信息为01的智能合约,无法知晓该合约的查询、转账、存取等具体业务及具体执行参数,以及历史交易信息。
101.在一实施例中,所述s01包括:
102.s011:获取完成合约内容审核的待签名的合约文件和所述合约文件的合约类型;
103.s012:对所述合约文件进行非合约发起方的第一次签名,得到包含第一签名信息对应的第一合约文件;
104.s013:根据所述第一签名信息,对所述第一合约文件进行合约发起方的第二次签名,得到包含所述第一签名信息和所述第二签名信息的所述基础合约。
105.具体的,合约发起方将待审核并签名的合约文件传输给合约审核方,合约审核方(合约审核方可以为多个)在完成合约审核后对合约文件进行签名,得到完成第一签名信息的合约文件,合约发起方对具有第一签名信息的合约文件进行签名,得到第二签名信息;将具有第一签名信息和第二签名信息的合约文件记为基础合约;若该基础合约为普通合约则直接通过报文中间件传输至区块链网络,若基础合约为重要合约,则将基础合约传输给隐私网关,利用隐私网关对基础合约的合约源码进行加密后得到目标合约,进而再传输至区块链网络。
106.在一实施例中,所述s02包括:
107.s021:获取所述基础合约的合约参数;
108.s022:根据所述合约参数的各签名信息,隐私网关从区块链网络调取与各所述签名信息对应的身份信息;
109.s023:根据各所述身份信息,利用所述隐私网关对所述基础合约的各所述签名信息进行验证,生成所述验证信息,其中,所述身份信息与所述签名信息一一对应;
110.具体的,当基础合约完成签名后发送给隐私网关,隐私网关对该基础合约进行验证,生成对应的验证信息,验证信息包括验证通过和验证不通过;验证内容包括签名信息验证、格式信息验证,如区块链网络的参与用户包括:用户a、用户b、用户c、用户d和用户e,若合约签名信息为用户a和用户f,则验证不通过,若签名信息为用户a和用户b,且格式信息符合要求,则验证通过;验证方式包括上文的链上验证和链下验证,此处不再赘述。
111.s024:对所述验证信息符合要求的所述基础合约进行合约源码加密,得到所述目标合约。
112.具体的,基础合约验证通过后,隐私网关利用其密钥的公钥进行合约源码加密,然后将加密后的目标合约上传至区块链,从而使得存储在区块链网络上的目标合约的合约内
容不会被区块链网络上的任意成员所获取,提高区块链网络上智能合约的保密性。
113.本发明提供的一种区块链智能合约加密的交易方法,根据业务需求方的业务请求参数,从区块链网络中调取合约源码加密后对应的目标合约,基于目标合约的合约内容和合约执行参数执行交易,实现区块链网络上的加密合约的链下执行,在利用交易执行后的交易数据实现链下目标合约当前的业务状态数据更新后,再次加密上传至区块链网络;本发明能够避免目标合约的非合约id信息被区块链网络上的任意用户获取,同时又能利用区块链网络的防篡改特点来提高合约的保密效果。
114.实施例2
115.本发明还提供了一种区块链智能合约加密的交易装置,请参见图4,包括:
116.合约获取模块:用于获取业务需求方的业务请求参数;
117.合约调用模块:用于根据所述业务请求参数调取运行在区块链网络上的目标合约,其中,所述目标合约为对合约源码进行加密后存储在区块链网络的智能合约;
118.合约执行模块:用于根据所述目标合约的合约内容执行与所述业务请求参数的合约执行参数对应的交易,得到所述目标合约本次交易的交易数据;
119.合约更新模块,用于根据所述交易数据更新所述目标合约的业务状态数据,并再次上传至区块链网络。
120.在一实施例中,所述合约执行模块包括:
121.参数获取单元:获取所述业务请求参数表征的交易类型和所述目标合约当前的业务状态数据;
122.合约执行单元:根据与所述交易类型对应的交易执行方式和当前的业务状态数据执行所述业务请求参数对应的交易,得到所述交易数据。
123.在一实施例中,所述合约调用模块包括:
124.信息验证单元:根据所述业务请求参数的交易签名信息,基于预存在区块链网络上的与所述业务请求方对应的身份信息进行身份验证,得到交易验证信息;
125.合约调用单元:若交易验证成功,根据所述业务请求参数的合约id信息,调取所述区块链网络上与所述合约id信息对应的所述目标合约至隐私网关。
126.在一实施例中,所述合约调用单元包括:
127.第一获取单元:获取与所述合约id信息对应的第一密钥对;
128.第一加密单元:利用所述第一密钥对的公钥进行所述合约id信息加密,得到与所述合约id信息对应的虚拟id信息;
129.第一调用单元:根据所述虚拟id信息,调取所述目标合约;
130.其中,所述虚拟id信息为所述合约id信息对应的所述目标合约在区块链网络上的地址信息。
131.优选地,所述参数获取单元包括:
132.第二获取单元:根据所述第一密钥对进行查表,得到第二密钥对;
133.第一解密单元:根据所述第二密钥对的私钥进行所述目标合约解密,得到当前的业务状态数据。
134.在一实施例中,若所述交易类型为查询业务,所述合约执行单元包括:
135.第二获取单元:获取第一交易和第二交易,其中,所述第一交易为前一业务请求方
的业务请求对应的交易,所述第二交易为本次业务需求方的业务请求对应的交易;
136.数据对比单元:对比所述第一交易和所述第二交易的所述交易类型相同,则直接输出所述第一交易对应的交易历史数据作为所述交易数据。
137.在一实施例中,若所述交易类型为非查询业务,所述合约执行单元包括:
138.第三获取单元:获取所述合约执行参数和当前的业务状态数据;
139.第一执行单元:根据所述合约执行参数和当前的业务状态数据在可信执行环境执行与所述合约执行参数对应的交易,生成所述交易数据;
140.其中,所述可行执行环境为在芯片层面上单独划分出来的一片区域,该区域用于为代码的执行和数据的存储提供一个更加安全的执行空间。
141.本发明提供的一种区块链智能合约加密的交易装置,根据业务需求方的业务请求参数,从区块链网络中调取合约源码加密后对应的目标合约,基于目标合约的合约内容和合约执行参数执行交易,实现区块链网络上的加密合约的链下执行,在利用交易执行后的交易数据实现链下目标合约当前的业务状态数据更新后,再次加密上传至区块链网络;本发明能够避免目标合约的非合约id信息被区块链网络上的任意用户获取,同时又能利用区块链网络的防篡改特点来提高合约的保密效果。
142.实施例3
143.本发明提供了一种电子设备和存储介质,如图5所示,包括至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令。
144.具体地,上述处理器可以包括中央处理器(cpu),或者特定集成电路(application specific integrated circuit,asic),或者可以被配置成实施本发明实施例的一个或多个集成电路,电子设备至少包括以下之一:计算机、移动终端、pc、平板电脑等。
145.存储器可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器可包括硬盘驱动器(hard disk drive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universal serial bus,usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器可在数据处理装置的内部或外部。在特定实施例中,存储器是非易失性固态存储器。在特定实施例中,存储器包括只读存储器(rom)。在合适的情况下,该rom可以是掩模编程的rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可改写rom(earom)或闪存或者两个或更多个以上这些的组合。
146.处理器通过读取并执行存储器中存储的计算机程序指令,以实现上述实施例方式一中任意一种区块链智能合约加密的交易方法。
147.在一个示例中,电子设备还可包括通信接口和总线。其中,处理器、存储器、通信接口通过总线连接并完成相互间的通信。
148.通信接口,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。
149.总线包括硬件、软件或两者,将电子设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(agp)或其他图形总线、增强工业标准架构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准架构(isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、道架构(mca)总线、外围组件互连(pci)总线、pci-express(pci-x)总
线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
150.综上所述,本发明实施例提供了一种区块链智能合约加密的交易方法、装置、设备及存储介质,根据业务需求方的业务请求参数,从区块链网络中调取合约源码加密后对应的目标合约,基于目标合约的合约内容和合约执行参数执行交易,实现区块链网络上的加密合约的链下执行,在利用交易执行后的交易数据实现链下目标合约当前的业务状态数据更新后,再次加密上传至区块链网络;本发明能够避免目标合约的非合约id信息被区块链网络上的任意用户获取,同时又能利用区块链网络的防篡改特点来提高合约的保密效果。
151.需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
152.以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
153.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

技术特征:


1.一种区块链智能合约加密的交易方法,其特征在于,所述方法包括:获取业务需求方的业务请求参数;根据所述业务请求参数调取运行在区块链网络上的目标合约,其中,所述目标合约为对合约源码进行加密后存储在区块链网络的智能合约;根据所述目标合约的合约内容执行与所述业务请求参数的合约执行参数对应的交易,得到所述目标合约本次交易的交易数据;根据所述交易数据更新所述目标合约的业务状态数据,并再次上传至区块链网络。2.根据权利要求1所述的区块链智能合约加密的交易方法,其特征在于,述根据所述目标合约的合约内容执行与所述业务请求参数的合约执行参数对应的交易,得到所述目标合约本次交易的交易数据包括:获取所述业务请求参数表征的交易类型和所述目标合约当前的业务状态数据;根据与所述交易类型对应的交易执行方式和当前的业务状态数据执行所述业务请求参数对应的交易,得到所述交易数据。3.根据权利要求2所述的区块链智能合约加密的交易方法,其特征在于,所述根据所述业务请求参数调取运行在区块链网络上的目标合约,其中,所述目标合约为对合约源码进行加密后存储在区块链网络的智能合约包括:根据所述业务请求参数的交易签名信息,基于预存在区块链网络上的与所述业务请求方对应的身份信息进行身份验证,得到交易验证信息;若交易验证成功,根据所述业务请求参数的合约id信息,调取所述区块链网络上与所述合约id信息对应的所述目标合约至隐私网关。4.根据权利要求3所述的区块链智能合约加密的交易方法,其特征在于,所述若交易验证成功,根据所述业务请求参数的合约id信息,调取所述区块链网络上与所述合约id信息对应的所述目标合约至隐私网关包括:获取与所述合约id信息对应的第一密钥对;利用所述第一密钥对的公钥进行所述合约id信息加密,得到与所述合约id信息对应的虚拟id信息;根据所述虚拟id信息,调取所述目标合约;其中,所述虚拟id信息为所述合约id信息对应的所述目标合约在区块链网络上的地址信息。5.根据权利要求4所述的区块链智能合约加密的交易方法,其特征在于,所述获取所述业务请求参数表征的交易类型和所述目标合约当前的业务状态数据包括:根据所述第一密钥对进行查表,得到第二密钥对;根据所述第二密钥对的私钥进行所述目标合约解密,得到当前的业务状态数据。6.根据权利要求2至5任一项所述的区块链智能合约加密的交易方法,其特征在于,若所述交易类型为查询业务,所述根据与所述交易类型对应的交易执行方式和当前的业务状态数据执行所述业务请求参数对应的交易,得到所述交易数据包括:获取第一交易和第二交易,其中,所述第一交易为前一业务请求方的业务请求对应的交易,所述第二交易为本次业务需求方的业务请求对应的交易;对比所述第一交易和所述第二交易的所述交易类型相同,则直接输出所述第一交易对
应的交易历史数据作为所述交易数据。7.根据权利要求2至5任一项所述的区块链智能合约加密的交易方法,其特征在于,若所述交易类型为非查询业务,所述根据与所述交易类型对应的交易执行方式和当前的业务状态数据执行所述业务请求参数对应的交易,得到所述交易数据包括:获取所述合约执行参数和当前的业务状态数据;根据所述合约执行参数和当前的业务状态数据在可信执行环境执行与所述合约执行参数对应的交易,生成所述交易数据;其中,所述可行执行环境为在芯片层面上单独划分出来的一片区域,该区域用于为代码的执行和数据的存储提供一个更加安全的执行空间。8.一种区块链智能合约加密的交易装置,其特征在于,包括:合约获取模块:用于获取业务需求方的业务请求参数;合约调用模块:用于根据所述业务请求参数调取运行在区块链网络上的目标合约,其中,所述目标合约为对合约源码进行加密后存储在区块链网络的智能合约;合约执行模块:用于根据所述目标合约的合约内容执行与所述业务请求参数的合约执行参数对应的交易,得到所述目标合约本次交易的交易数据;合约更新模块,用于根据所述交易数据更新所述目标合约的业务状态数据,并再次上传至区块链网络。9.一种电子设备,其特征在于,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现如权利要求1-7中任一项所述的方法。10.一种存储介质,其上存储有计算机程序指令,其特征在于,当所述计算机程序指令被处理器执行时实现如权利要求1-7中任一项所述的方法。

技术总结


本发明属于区块链技术领域,解决了现有基于区块链网络进行交易存在数据泄露,所导致的区块链技术推广难的技术问题,提供了一种区块链智能合约加密的交易方法、装置、设备及存储介质。该方法包括:根据业务需求方的业务请求参数,从区块链网络中调取合约源码加密后对应的目标合约,基于目标合约的合约内容和合约执行参数执行交易,实现区块链网络上的加密合约的链下执行,在利用交易执行后的交易数据实现链下目标合约当前的业务状态数据更新后,再次加密上传至区块链网络;本发明能够避免目标合约的非合约ID信息被区块链网络上的任意用户获取,同时又能利用区块链网络的防篡改特点来提高合约的保密效果。提高合约的保密效果。提高合约的保密效果。


技术研发人员:

唐坤 邓柯

受保护的技术使用者:

成都质数斯达克科技有限公司

技术研发日:

2022.09.21

技术公布日:

2022/12/19


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-1-55606-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2022-12-22 03:08:23

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论