基于账户区块链的可问责隐私保护智能合约实现方法技术

技术编号:39899709 阅读:16 留言:0更新日期:2023-12-30 13:13
本发明专利技术公开了一种基于账户区块链的可问责隐私保护智能合约实现方法,方法包括:用户部署智能合约并公开合约地址,监管者运行密钥获得监管者公钥和监管者私钥,并将监管者公钥上传至区块链;注册新用户并生成用户私钥,然后将用户公钥上传区块链,智能合约记录注册用户信息;用户创建空白数据记录,然后将生成的数据记录承诺上传区块链;用户收集区块链上的所有数据记录承诺并构建默克尔书,然后进行链下计算;用户将隐私保护交易单发送至区块链,区块链经过广播后进行验证计算;监管者捕获到隐私保护交易单,随后利用监管者私钥问责用户

【技术实现步骤摘要】
基于账户区块链的可问责隐私保护智能合约实现方法


[0001]本专利技术属于区块链隐私保护与监管的
,具体涉及一种基于账户区块链的可问责隐私保护智能合约实现方法


技术介绍

[0002]承诺协议是一种允许承诺者承诺一个选定的值,但是能够保证该值对于其他人来说是处于隐藏状态,并且承诺者可以在之后通过揭露的手段来展示初始承诺值

承诺协议包括两个算法,参数初始化算法
Gen
和承诺算法
Com。
并且密码学承诺方案具有绑定性和隐藏性两种性质,绑定性质指的是承诺者一旦承诺选定值,则其无法更改选定值

隐藏性质是指无法通过承诺反推出有关承诺值的任何信息

凭借其绑定行和隐藏性,承诺协议被广泛应用于零知识证明协议的构造中

而零知识证明(
Zero

Knowledge Proof, ZKP
)是一种证明者向验证者证明他知道某个秘密值
x
,并且在证明过程中不透露任何与秘密值相关信息的证明手段

一个零知识证明协议由三个概率多项式运行时间的交互式算法组成

[0003]另外,对于伪随机函数(
Pseudo

Random Function, PRF
),这个函数是密码学中的重要概念,它是一种特殊的函数,其行为类似于随机函数

伪随机函数由两个主要组成部分构成:密钥(
Key
)和输入(
Input


密钥是一个秘密参数,用于控制
PRF
的输出

输入是
PRF
的待处理数据,用于产生输出结果

伪随机函数的关键属性是对于相同的密钥和相同的输入,输出结果总是相同的,这使得它可以被多次重复使用而不泄露任何信息

其数学描述可表示为

伪随机函数的输出满足不可区分性,即对于大多数密钥
K
而言,在给定输入
X
的情况下,输出
Y
是不可预测的

这意味着从输出
Y
无法推断出输入
X
或者密钥
K。
[0004]Hawk
区块链框架:作为当前最有价值的隐私保护区块链框架之一,
Hawk
通过引入一个可信代理人的角色,并假设其能够承诺不泄露用户的隐私数据,通过借助可信代理人角色,用户将隐私数据委托给可信代理人进行计算,代理人在进行隐私数据计算的同时,也要利用零知识证明协议生成对应的证明,确保在不会泄露隐私数据的情况下,约束计算结果的正确性

并且编程人员在进行智能合约编码的同时,要将智能合约划分成公开合约和私有合约两部分,私有合约涉及到隐私数据的计算,将编译成用户和代理人合约

但是,
Hawk
区块链框架依旧存在一定的缺点:第一,
Hawk
框架内将数据分为了公开数据

隐私数据和隐私货币三种,但无法实现三种数据类型的自由转化,缺乏对数据是否进行隐私保护的灵活控制;第二,
Hawk
框架是建立在隐私货币基础上,其与当前主流的账户模型区块链存在一定的不适配问题

第三,
Hawk
隐私保护方案的原始应用场景是以拍卖

猜拳等涉及到多方参与比较的场景,因此其需要可信代理人的参与负责最终比较,但是并非所有应用都需要可信代理人的参与,因此该框架缺乏一种更加通用化的设计以支持更多的应用类型

[0005]因而,区块链隐私保护框架中如何提供灵活的隐私保护控制策略,进而适应多种应用场景及提供相应监管追踪机制是现在亟待解决的问题


技术实现思路

[0006]本专利技术的主要目的在于克服现有技术的缺点与不足,提供一种基于账户区块链的可问责隐私保护智能合约实现方法

本专利技术通过统一多层次的数据结构,能够支持细粒度的隐私保护控制策略和灵活适应多种应用场景,同时通过设计了监管追踪的机制,实现可问责隐私保护智能合约

[0007]为了达到上述目的,本专利技术采用以下技术方案:第一方面,本专利技术提供了一种基于账户区块链的可问责隐私保护智能合约实现方法,包括下述步骤:用户
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
以及相应的零知识证明;监管者捕获到隐私保护交易单,利用监管者私钥本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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

【专利技术属性】
技术研发人员:蒋琳王轩陈翰林谢敏鞠培晨
申请(专利权)人:哈尔滨工业大学深圳哈尔滨工业大学深圳科技创新研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1