一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于共识机制和可信执行环境的隐私合约部署及调用方法

2022-12-19 22:34:26 来源:中国专利 TAG:


1.本发明属于区块链和隐私计算技术领域,特别涉及一种基于共识机制和可信执行环境的隐私合约部署及调用方法。


背景技术:

2.由于区块链具有去中心化、匿名性、信息不可篡改、开放性等特点,因此受到越来越多的关注,但是区块链账本是完全透明公开化的,使得区块链无法保护一些隐私数据和交易。同时数据作为一项新型生产要素,在交易过程中面临着隐私保护等诸多问题。隐私保护数据计算是目前唯一可以解决“数据可用不可见”问题的关键技术,也受到了广泛关注。没有隐私保护数据计算,区块链无法解决隐私保护问题,无法为更多数据源提供服务;没有区块链,隐私保护数据计算无法解决数据确权等问题,因此多方数据协作难以达成。
3.目前基于智能合约的隐私保护数据共享方法如下,在完成基于智能合约的身份验证后,数据购买者向智能合约支付交易费用和保证金,数据购买者从数据存储服务提供商处下载结果并进行监督,利用智能合约是防止篡改和可追踪,交易过程都被完整记录在区块链上以及通过对数据所有者的监管来实现数据隐私保护。
4.传统基于智能合约的隐私保护数据共享方法是利用智能合约进行溯源、监管,缺点是不仅不能有效地保护隐私数据,而且数据购买者从数据存储服务提供商处下载的结果容易造成重要数据泄露。


技术实现要素:

5.为了解决上述问题,本发明的目的在于提供一种基于共识机制和可信执行环境的隐私合约部署及调用方法。
6.为了达到上述目的,本发明提供的基于共识机制和可信执行环境的隐私合约部署及调用方法包括按顺序进行的下列步骤:
7.1)编写智能合约集scm,并部署到基于共识机制的区块链bc的各个节点上;所述智能合约集scm包括硬件公钥存储合约sc
savepk
、远程证明存储合约sc
savereport
、隐私合约存储合约sc
saveprivatesmartcontract
、隐私数据存储合约sc
saveprivatedata
、隐私数据执行合约sc
dealpriavtedata
、隐私合约执行结果存储合约sc
savepscresult

8.2)可信执行环境enclavem基于硬件固有密钥hwsk和加密算法hwea生成公钥pk
hw
和私钥sk
hw
,并将公钥pk
hw
导出;然后调用硬件公钥存储合约sc
savepk
将公钥pk
hw
通过构建交易记录到区块链bc上;
9.3)验证者user
verify
发起远程证明请求,运行在可信执行环境enclavem中的算法func
attestion
获取当前可信执行环境enclavem的代码度量metrics
code
,并使用签名算法signature用可信执行环境enclavem的私钥sk
hw
对代码度量metrics
code
进行签名而生成签名sign
attestion
,然后将代码度量metrics
code
和签名sign
attestion
经过序列化协议protocol序列化而生成远程证明report
attestion
;之后验证者user
verify
运行验证签名算法
verifysignature对上述签名sign
attestion
进行合法性验证,如果验证不通过,表明远程证明过程失败;如果验证通过,验证者user
verify
运行远程证明验证算法verifyattestion进行验证并检查代码度量metrics
code
的具体信息,以验证在可信执行环境enclavem中的运行程序是否符合预期,如果验证不通过,表明远程证明过程失败;如果验证通过,表明远程证明成功;
10.4)调用智能合约集scm中的远程证明存储合约sc
savereport
将上述包含代码度量metrics
code
和签名sign
attestion
且经过序列化协议protocol序列化生成的远程证明report
attestion
通过构建交易记录到区块链bc上;
11.5)智能合约提供方user
scprovide
发起部署隐私合约请求,隐私数据执行合约sc
dealpriavtedata
通过审计算法audit进行审计和扫描,如果没有通过审计扫描,证明隐私数据执行合约sc
dealpriavtedata
存在安全风险,部署隐私合约请求过程结束;如果通过了审计扫描,将隐私数据执行合约sc
dealpriavtedata
送入可信执行环境enclavem的智能合约虚拟机vm
smartcontract
中进行初始化,之后在可信执行环境enclavem中通过隐私合约数据导出算法export
privatedata
导出隐私合约数据data
smartcontract
,然后将上述隐私合约数据data
smartcontract
用可信执行环境enclavem的公钥pk
hw
通过加密算法deea进行加密而生成加密后的隐私合约数据encryptiondata
sc
;最后将加密后的隐私合约数据encryptiondata
sc
通过调用隐私合约存储合约sc
saveprivatesmartcontract
存入区块链bc中存证;
12.6)隐私数据提供方user
pdprovide
通过加密算法pdea生成加密密钥key
pd
,然后将隐私数据privatedata用上述加密密钥key
pd
通过加密算法kpea进行加密而生成隐私数据密文encryptiondata,之后将加密密钥key
pd
用可信执行环境enclavem的公钥pk
hw
通过加密算法keea进行加密而生成加密后的密钥encryptionkey
pd
,调用隐私数据存储合约sc
saveprivatedata
将上述隐私数据密文encryptiondata和加密后的密钥encryptionkey
pd
通过构建交易记录到区块链bc上;
13.7)隐私数据需求方user
pdwanted
发起调用隐私合约请求,从区块链bc上查找调用隐私合约请求需要的加密后的隐私合约数据encryptiondata
sc
、隐私数据密文encryptiondata及加密后的密钥encryptionkey
pd
,然后将加密后的隐私合约数据encryptiondata
sc
、隐私数据密文encryptiondata和加密后的密钥encryptionkey
pd
传入可信执行环境enclavem中,之后将加密后的密钥encryptionkey
pd
用可信执行环境enclavem的私钥sk
hw
调用解密算法keda进行解密而获得加密密钥key
pd
,将隐私数据密文encryptiondata用上述加密密钥key
pd
调用解密算法kpda进行解密而获得隐私数据privatedata,将加密后的隐私合约数据encryptiondata
sc
用可信执行环境enclavem的私钥sk
hw
调用解密算法deda进行解密而获得隐私合约数据data
smartcontract
,之后将隐私合约数据data
smartcontract
和隐私数据privatedata传入可信执行环境enclavem的智能合约虚拟机vm
smartcontract
中执行,得到执行结果result
psc
,并使用签名算法signature用可信执行环境enclavem的私钥sk
hw
对执行结果result
psc
进行签名而生成签名sign
pscresult
,然后调用隐私合约执行结果存储合约sc
savepscresult
将上述执行结果result
psc
和签名sign
pscresult
通过构建交易记录到区块链bc上;
14.8)隐私数据需求方user
pdwanted
从区块链bc上获取上述执行结果result
psc
和签名sign
pscresult
,运行验证签名算法verifysignature对签名sign
pscresult
进行合法性验证,如果
验证不通过,表明执行结果不可信;如果验证通过,表明执行结果result
psc
为可信任执行结果。
15.在步骤2)中,所述公钥pk
hw
和私钥sk
hw
的生成公式为:
16.pk
hw
,sk
hw
=hwea(hwsk)
17.所述构建交易的步骤为:
18.tx1=vm(address(sc
savepk
),pk
hw
)。
19.在步骤3)中,所述算法func
attestion
的具体逻辑为:
20.metrics
code
=func
attestion
(enclavem,sk
hw
)
21.所述签名算法signature的具体逻辑为:
22.sign
attestion
=signature(metrics
code
,sk
hw
)
23.所述序列化协议protocol为:
24.report
attestion
=protocol(metrics
code
,sign
attestion
)
25.所述验证签名算法verifysignature的具体逻辑为:
26.resulti=verifysignature(sign
attestion
,pk
hw
)
27.所述远程证明验证算法verifyattestion的具体逻辑为:
28.resultj=verifyattestion(metrics
code
,enclavem)。
29.在步骤4)中,所述构建交易的步骤为:
30.tx2=vm(address(sc
savereport
),protocol(metrics
code
,sign
attestion
))。
31.在步骤5)中,所述审计算法audit的具体逻辑为:
32.resultm=audit(sc
dealpriavtedata
)
33.所述隐私合约数据导出算法export
privatedata
的具体逻辑为:
34.data
smartcontract
=export
privatedata
(sc
dealpriavtedata
,vm
smartcontract
)
35.所述加密算法deea的具体逻辑为:
36.encryptiondata
sc
=deea(data
smartcontract
,pk
hw
)
37.所述构建交易的步骤为:
38.tx3=vm(address(sc
saveprivatesmartcontract
),encryptiondata
sc
)。
39.在步骤6)中,所述加密算法kpea的具体逻辑为:
40.encryptiondata=kpea(privatedata,key
pd
)
41.所述加密算法keea的具体逻辑为:
42.encryptionkey
pd
=keea(key
pd
,pk
hw
)
43.所述构建交易的步骤为:
44.tx4=vm(address(sc
saveprivatedata
),encryptiondata,encryptionkey
pd
)。
45.在步骤7)中,所述解密算法keda的具体逻辑为:
46.key
pd
=keda(encryptionkey
pd
,sk
hw
)
47.所述解密算法kpda的具体逻辑为:
48.privatedata=kpda(encryptiondata,key
pd
)
49.所述解密算法deda的具体逻辑为:
50.data
smartcontract
=deda(encryptiondata
sc
,sk
hw
)
51.所述将隐私合约数据data
smartcontract
和隐私数据privatedata传入可信执行环境
enclavem的智能合约虚拟机vm
smartcontract
中执行的步骤为:
52.result
psc
=enclavem(vm
smartcontract
(data
smartcontract
,privatedata))
53.所述签名算法的具体逻辑为:
54.sign
pscresult
=signature(result
psc
,sk
hw
)
55.所述构建交易的步骤为:
56.tx5=vm(address(sc
savepscresult
),protocol(result
psc
,sign
pscresult
))
57.在步骤8)中,所述验证签名算法verifysignature的具体逻辑为:
58.resultn=verifysignature(sign
pscresult
,pk
hw
)
59.本发明提供基于共识机制和可信执行环境的隐私合约部署及调用方法具有如下有益效果:将区块链与隐私计算方案中的可信执行环境相结合,解决了传统隐私保护数据共享方法存在的无法真正保证数据隐私性问题,达到数据可用不可见,实现了数据来源可确认,使用范围可界定,流通过程可追溯,安全风险可防范的目的。
附图说明
60.图1为本发明提供的基于共识机制和可信执行环境的隐私合约部署及调用方法流程图。
具体实施方式
61.下面结合附图和具体实施例详细说明本发明。
62.如图1所示,本发明提供的基于共识机制和可信执行环境的隐私合约部署及调用方法包括按顺序进行的下列步骤:
63.1)编写智能合约集scm,并部署到基于共识机制的区块链bc的各个节点上;所述智能合约集scm包括硬件公钥存储合约sc
savepk
、远程证明存储合约sc
savereport
、隐私合约存储合约sc
saveprivatesmartcontract
、隐私数据存储合约sc
saveprivatedata
、隐私数据执行合约sc
dealpriavtedata
、隐私合约执行结果存储合约sc
savepscresult

64.2)可信执行环境enclavem基于硬件固有密钥hwsk和加密算法hwea生成公钥pk
hw
和私钥sk
hw
,并将公钥pk
hw
导出;然后调用硬件公钥存储合约sc
savepk
将公钥pk
hw
通过构建交易记录到区块链bc上;
65.所述公钥pk
hw
和私钥sk
hw
的生成公式为:
66.pk
hw
,sk
hw
=hwea(hwsk)
67.所述构建交易的步骤为:
68.tx1=vm(address(sc
savepk
),pk
hw
)
69.3)验证者user
verify
发起远程证明请求,运行在可信执行环境enclavem中的算法func
attestion
获取当前可信执行环境enclavem的代码度量metrics
code
,并使用签名算法signature用可信执行环境enclavem的私钥sk
hw
对代码度量metrics
code
进行签名而生成签名sign
attestion
,然后将代码度量metrics
code
和签名sign
attestion
经过序列化协议protocol序列化而生成远程证明report
attestion
;之后验证者user
verify
运行验证签名算法verifysignature对上述签名sign
attestion
进行合法性验证,如果验证不通过,表明远程证明过程失败;如果验证通过,验证者user
verify
运行远程证明验证算法verifyattestion进行验
证并检查代码度量metrics
code
的具体信息,以验证在可信执行环境enclavem中的运行程序是否符合预期,如果验证不通过,表明远程证明过程失败;如果验证通过,表明远程证明成功;
70.所述算法func
attestion
的具体逻辑为:
71.metrics
code
=func
attestion
(enclavem,sk
hw
)
72.所述签名算法signature的具体逻辑为:
73.sign
attestion
=signature(metrics
code
,sk
hw
)
74.所述序列化协议protocol为:
75.report
attestion
=protocol(metrics
code
,sign
attestion
)
76.所述验证签名算法verifysignature的具体逻辑为:
77.resulti=verifysignature(sign
attestion
,pk
hw
)
78.所述远程证明验证算法verifyattestion的具体逻辑为:
79.resultj=verifyattestion(metrics
code
,enclavem)
80.4)调用智能合约集scm中的远程证明存储合约sc
savereport
将上述包含代码度量metrics
code
和签名sign
attestion
且经过序列化协议protocol序列化生成的远程证明report
attestion
通过构建交易记录到区块链bc上;
81.所述构建交易的步骤为:
82.tx2=vm(address(sc
savereport
),protocol(metrics
code
,sign
attestion
))
83.5)智能合约提供方user
scprovide
发起部署隐私合约请求,隐私数据执行合约sc
dealpriavtedata
通过审计算法audit进行审计和扫描,如果没有通过审计扫描,证明隐私数据执行合约sc
dealpriavtedata
存在安全风险,部署隐私合约请求过程结束;如果通过了审计扫描,将隐私数据执行合约sc
dealpriavtedata
送入可信执行环境enclavem的智能合约虚拟机vm
smartcontract
中进行初始化,之后在可信执行环境enclavem中通过隐私合约数据导出算法export
privatedata
导出隐私合约数据data
smartcontract
,然后将上述隐私合约数据data
smartcontract
用可信执行环境enclavem的公钥pk
hw
通过加密算法deea进行加密而生成加密后的隐私合约数据encryptiondata
sc
;最后将加密后的隐私合约数据encryptiondata
sc
通过调用隐私合约存储合约sc
saveprivatesmartcontract
存入区块链bc中存证;
84.所述审计算法audit的具体逻辑为:
85.resultm=audit(sc
dealpriavtedata
)
86.所述隐私合约数据导出算法export
privatedata
的具体逻辑为:
87.data
smartcontract
=export
privatedata
(sc
dealpriavtedata
,vm
smartcontract
)
88.所述加密算法deea的具体逻辑为:
89.encryptiondata
sc
=deea(data
smartcontract
,pk
hw
)
90.所述构建交易的步骤为:
91.tx3=vm(address(sc
saveprivatesmartcontract
),encryptiondata
sc
)
92.6)隐私数据提供方user
pdprovide
通过加密算法pdea生成加密密钥key
pd
,然后将隐私数据privatedata用上述加密密钥key
pd
通过加密算法kpea进行加密而生成隐私数据密文encryptiondata,之后将加密密钥key
pd
用可信执行环境enclavem的公钥pk
hw
通过加密算法keea进行加密而生成加密后的密钥encryptionkey
pd
,调用隐私数据存储合约sc
saveprivatedata
将上述隐私数据密文encryptiondata和加密后的密钥encryptionkey
pd
通过构建交易记录到区块链bc上;
93.所述加密算法kpea的具体逻辑为:
94.encryptiondata=kpea(privatedata,key
pd
)
95.所述加密算法keea的具体逻辑为:
96.encryptionkey
pd
=keea(key
pd
,pk
hw
)
97.所述构建交易的步骤为:
98.tx4=vm(address(sc
saveprivatedata
),encryptiondata,encryptionkey
pd
)
99.7)隐私数据需求方user
pdwanted
发起调用隐私合约请求,从区块链bc上查找调用隐私合约请求需要的加密后的隐私合约数据encryptiondata
sc
、隐私数据密文encryptiondata及加密后的密钥encryptionkey
pd
,然后将加密后的隐私合约数据encryptiondata
sc
、隐私数据密文encryptiondata和加密后的密钥encryptionkey
pd
传入可信执行环境enclavem中,之后将加密后的密钥encryptionkey
pd
用可信执行环境enclavem的私钥sk
hw
调用解密算法keda进行解密而获得加密密钥key
pd
,将隐私数据密文encryptiondata用上述加密密钥key
pd
调用解密算法kpda进行解密而获得隐私数据privatedata,将加密后的隐私合约数据encryptiondata
sc
用可信执行环境enclavem的私钥sk
hw
调用解密算法deda进行解密而获得隐私合约数据data
smartcontract
,之后将隐私合约数据data
smartcontract
和隐私数据privatedata传入可信执行环境enclavem的智能合约虚拟机vm
smartcontract
中执行,得到执行结果result
psc
,并使用签名算法signature用可信执行环境enclavem的私钥sk
hw
对执行结果result
psc
进行签名而生成签名sign
pscresult
,然后调用隐私合约执行结果存储合约sc
savepscresult
将上述执行结果result
psc
和签名sign
pscresult
通过构建交易记录到区块链bc上;
100.所述解密算法keda的具体逻辑为:
101.key
pd
=keda(encryptionkey
pd
,sk
hw
)
102.所述解密算法kpda的具体逻辑为:
103.privatedata=kpda(encryptiondata,key
pd
)
104.所述解密算法deda的具体逻辑为:
105.data
smartcontract
=deda(encryptiondata
sc
,sk
hw
)
106.所述将隐私合约数据data
smartcontract
和隐私数据privatedata传入可信执行环境enclavem的智能合约虚拟机vm
smartcontract
中执行的步骤为:
107.result
psc
=enclavem(vm
smartcontract
(data
smartcontract
,privatedata))
108.所述签名算法的具体逻辑为:
109.sign
pscresult
=signature(result
psc
,sk
hw
)
110.所述构建交易的步骤为:
111.tx5=vm(address(sc
savepscresult
),protocol(result
psc
,sign
pscresult
))
112.8)隐私数据需求方user
pdwanted
从区块链bc上获取上述执行结果result
psc
和签名sign
pscresult
,运行验证签名算法verifysignature对签名sign
pscresult
进行合法性验证,如果验证不通过,表明执行结果不可信;如果验证通过,表明执行结果result
psc
为可信任执行结果。
113.所述验证签名算法verifysignature的具体逻辑为:
114.resultn=verifysignature(sign
pscresult
,pk
hw
)
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献