【技术实现步骤摘要】
基于账户区块链的可问责隐私保护智能合约实现方法
[0001]本专利技术属于区块链隐私保护与监管的
,具体涉及一种基于账户区块链的可问责隐私保护智能合约实现方法
。
技术介绍
[0002]承诺协议是一种允许承诺者承诺一个选定的值,但是能够保证该值对于其他人来说是处于隐藏状态,并且承诺者可以在之后通过揭露的手段来展示初始承诺值
。
承诺协议包括两个算法,参数初始化算法
Gen
和承诺算法
Com。
并且密码学承诺方案具有绑定性和隐藏性两种性质,绑定性质指的是承诺者一旦承诺选定值,则其无法更改选定值
。
隐藏性质是指无法通过承诺反推出有关承诺值的任何信息
。
凭借其绑定行和隐藏性,承诺协议被广泛应用于零知识证明协议的构造中
。
而零知识证明(
Zero
‑
Knowledge Proof, ZKP
)是一种证明者向验证者证明他知道某个秘密值
x
,并且在证明过程中不透露任何与秘密值相关信息的证明手段
。
一个零知识证明协议由三个概率多项式运行时间的交互式算法组成
。
[0003]另外,对于伪随机函数(
Pseudo
‑
Random Function, PRF
),这个函数是密码学中的重要概念,它是一种特殊的函数,其行为类似于随机函数
。
伪随机函数由两个主要组成部分构成:密钥(
...
【技术保护点】
【技术特征摘要】 【专利技术属性】
1.
基于账户区块链的可问责隐私保护智能合约实现方法,其特征在于,包括下述步骤:用户
u
a
基于账户的区块链平台部署智能合约并公开合约地址,然后根据应用功能对公共安全参数进行可信初始化,经保存后上传至区块链;监管者运行公钥加密方案的密钥获得监管者公钥
PK
reg
和监管者私钥
SK
reg
,并将监管者公钥
PK
reg
传至区块链;新用户
u
b
随机生成用户私钥
SK
user
,而后通过伪随机函数得到对应的用户公钥
PK
user
并得到将公钥上传至区块链,智能合约记录注册用户信息;用户
u
a
和新用户
u
b
交易时,用户
u
a
或者新用户
u
b
创建空白数据记录,通过安全信道发送给交易的相对人,然后将数据记录承诺上传至区块链,具体为,用户
u
a
和新用户
u
b
生成一个随机种子,通过承诺方案将随机种子和用户公钥分别生成数据记录承诺,然后根据数据记录内容进行分类标注;完成标注后将通过加密方案获取对称秘钥,而后使用监管者公钥对对称秘钥进行加密;根据创建空白数据记录过程生成零知识证明,并将生成的数据记录承诺上传到区块链;从区块链上收集所有上传的数据记录承诺,构建默克尔树
MT
;随后用户
u
a
或者新用户
u
b
提供链下计算的函数和辅助计算信息进行链下计算,具体为:输入已持有的数据记录集合以及对应数据记录的承诺集合,经过迭代计算得到数据记录编号集;用户
u
a
或者新用户
u
b
根据函数计算出新的数据记录集合,经过迭代计算得到输出数据记录承诺;在迭代计算输入数据记录编号和输出数据记录承诺过程中,生成零知识证明;将隐私保护交易单发送给区块链节点,并在区块链网络内广播;区块链节点接收到数据后,调用相应的智能合约进行验证计算,若验证通过则将数据记录编号集和输出数据记录承诺保存至区块链;否则,将数据记录编号集和输出数据记录承诺丢弃;所述隐私保护交易单包括数据记录编号集
、
新的数据记录集
、
默克尔树
MT
以及相应的零知识证明;监管者捕获到隐私保护交易单,利用监管者私钥
SK
reg
解密恶意交易单中的密文,获得对称秘钥
sk
sym
;随后利用对称秘钥
sk
sym
解密出数据记录内容
plaintext
,并对数据记录内容
plaintext
解析成为数据信息和用户公钥
PK
user
实现对用户问责
。2.
根据权利要求1所述基于账户区块链的可问责隐私保护智能合约实现方法,其特征在于,所述根据应用功能对公共安全参数进行可信初始化,具体为:用户
u
a
根据应用功能在对密码学原语进行可信初始化,分别为承诺方案
、zk
‑
SNARKs
协议和伪随机函数初始化各自的公共安全参数,保存在公共参数
pp
中并上传至区块链
。3.
根据权利要求1所述基于账户区块链的可问责隐私保护智能合约实现方法,其特征在于,所述创建空白数据记录,包括以下步骤:
S21、
新用户
u
b
首先生成一个随机种子
seed=Ran(pp)
,并通过承诺方案对随机种子
seed
和用户公钥
PK
user
分别生成承诺
cm
seed
=C.Com(pp,seed)
和承诺
cm
pk
=C.Com(pp, PK
user
)
;其中,
pp
表示零知识证明中交互式算法的公共参数;
S22、
按照空白数据记录的性质对内容进行标注,如果该数据记录的内容是隐私的,则生成隐私标记
flag1=private
,对数据
data
采用承诺方案生成
cm
data
=C.Com(pp,data)
,并将所有承诺值作为一个新的承诺方案的输入生成数据记录承诺
cm=C.Com(pp,cm
seed ||cm
data ||cm
pk )
,且令
cm
r
=(cm
pk
,cm
data
,cm
seed
,cm,flag1)
,其中
cm
data
表示数据
data
的承诺,
||
表示连接符,
cm
r
表示新建的数据记录;如果该数据记录的内容是公开的,则生成公开标记
flag2=public
,并将
cm
seed
、data、cm
pk
作为承诺方案的输入生成数据记录承诺
cm=C.Com(pp,cm
seed
||cm
data
||cm
pk
),
且令
cm
r
=(cm
pk
,data,cm
seed
,cm,flag2)
,此时令
r=(PK
user
,data,seed)
,
r
表
示交易单的明文内容;
S23、
新用户
u
b
设置前一条记录的种子为
seed
prev
=null
,然后通过对称加密方案获取对称秘钥
sk
sym
=Sym.Gen(pp)
;随后,新用户
u
b
使用对称秘钥
sk
sym
对创建该数据记录的用户公钥和前置种子进行对称加密 ,接着使用监管者公钥
PK
reg
对对称秘钥进行加密;
S24、
新用户
u
b
执行步骤
S21
‑
S23
,并生成零知识证明,即令命题,秘密值,对
x
和
a
通过
zk
‑
SNARKs
协议生成证明,其中,
ProK
create
表示指针对创建新数据记录的
zk
‑
SNARKs
公共参数,其被包括在公共参数
pp
中
。4.
根据权利要求1所述基于账户区块链的可问责隐私保护智能合约实现方法,其特征在于,所述链下计算,利用已持有的数据记录集合
R
con
={r1,
…
,r
k
}
以及对应数据记录的承诺集合
CM
con
={cm
r1
,
…
,cm
rk
}
进行链下计算,具体计算如下:
S31、
初始化记录认证路径集合
set
branch
=null
,编号集合
SN=null
,数据记录承诺集合
CM=null
,所有已持有数据记录的内容
plaintext
pr
=null
,所有新生成的数据记录的内容
plaintext=null
;
S32、
迭代计算每一个数据记录集合元素
r
i
∈R
con
;
技术研发人员:蒋琳,王轩,陈翰林,谢敏,鞠培晨,
申请(专利权)人:哈尔滨工业大学深圳哈尔滨工业大学深圳科技创新研究院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。