买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】基于账户区块链的可问责隐私保护智能合约实现方法_哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院)_202311522961.4 

申请/专利权人:哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院)

申请日:2023-11-16

公开(公告)日:2024-04-23

公开(公告)号:CN117290887B

主分类号:G06F21/62

分类号:G06F21/62;G06F21/64

优先权:

专利状态码:有效-授权

法律状态:2024.04.23#授权;2024.01.12#实质审查的生效;2023.12.26#公开

摘要:本发明公开了一种基于账户区块链的可问责隐私保护智能合约实现方法,方法包括:用户部署智能合约并公开合约地址,监管者运行密钥获得监管者公钥和监管者私钥,并将监管者公钥上传至区块链;注册新用户并生成用户私钥,然后将用户公钥上传区块链,智能合约记录注册用户信息;用户创建空白数据记录,然后将生成的数据记录承诺上传区块链;用户收集区块链上的所有数据记录承诺并构建默克尔书,然后进行链下计算;用户将隐私保护交易单发送至区块链,区块链经过广播后进行验证计算;监管者捕获到隐私保护交易单,随后利用监管者私钥问责用户。本发明能够支持细粒度的隐私保护控制策略和灵活适应多种应用场景,同时实现可问责隐私保护智能合约。

主权项:1.基于账户区块链的可问责隐私保护智能合约实现方法,其特征在于,包括下述步骤:用户ua基于账户的区块链平台部署智能合约并公开合约地址,然后根据应用功能对公共安全参数进行可信初始化,经保存后上传至区块链;监管者运行公钥加密方案的密钥获得监管者公钥PKreg和监管者私钥SKreg,并将监管者公钥PKreg传至区块链;新用户ub随机生成用户私钥SKuser,而后通过伪随机函数得到对应的用户公钥PKuser并得到将公钥上传至区块链,智能合约记录注册用户信息;用户ua和新用户ub交易时,用户ua或者新用户ub创建空白数据记录,通过安全信道发送给交易的相对人,然后将数据记录承诺上传至区块链,具体为,用户ua和新用户ub生成一个随机种子,通过承诺方案将随机种子和用户公钥分别生成数据记录承诺,然后根据数据记录内容进行分类标注;完成标注后将通过加密方案获取对称秘钥,而后使用监管者公钥对对称秘钥进行加密;根据创建空白数据记录过程生成零知识证明,并将生成的数据记录承诺上传到区块链;从区块链上收集所有上传的数据记录承诺,构建默克尔树MT;随后用户ua或者新用户ub提供链下计算的函数和辅助计算信息进行链下计算,具体为:输入已持有的数据记录集合以及对应数据记录的承诺集合,经过迭代计算得到数据记录编号集;用户ua或者新用户ub根据函数计算出新的数据记录集合,经过迭代计算得到输出数据记录承诺;在迭代计算输入数据记录编号和输出数据记录承诺过程中,生成零知识证明;将隐私保护交易单发送给区块链节点,并在区块链网络内广播;区块链节点接收到数据后,调用相应的智能合约进行验证计算,若验证通过则将数据记录编号集和输出数据记录承诺保存至区块链;否则,将数据记录编号集和输出数据记录承诺丢弃;所述隐私保护交易单包括数据记录编号集、新的数据记录集、默克尔树MT以及相应的零知识证明;监管者捕获到隐私保护交易单,利用监管者私钥SKreg解密恶意交易单中的密文,获得对称秘钥sksym;随后利用对称秘钥sksym解密出数据记录内容plaintext,并对数据记录内容plaintext解析成为数据信息和用户公钥PKuser实现对用户问责;所述创建空白数据记录,包括以下步骤:S21、新用户ub首先生成一个随机种子seed=Ranpp,并通过承诺方案对随机种子seed和用户公钥PKuser分别生成承诺cmseed=C.Compp,seed和承诺cmpk=C.Compp,PKuser;其中,pp表示零知识证明中交互式算法的公共参数;S22、按照空白数据记录的性质对内容进行标注,如果该数据记录的内容是隐私的,则生成隐私标记flag1=private,对数据data采用承诺方案生成cmdata=C.Compp,data,并将所有承诺值作为一个新的承诺方案的输入生成数据记录承诺cm=C.Compp,cmseed||cmdata||cmpk,且令cmr=cmpk,cmdata,cmseed,cm,flag1,其中cmdata表示数据data的承诺,||表示连接符,cmr表示新建的数据记录;如果该数据记录的内容是公开的,则生成公开标记flag2=public,并将cmseed、data、cmpk作为承诺方案的输入生成数据记录承诺cm=C.Compp,cmseed||data||cmpk,且令cmr=cmpk,data,cmseed,cm,flag2,此时令r=PKuser,data,seed,r表示交易单的明文内容;S23、新用户ub设置前一条记录的种子为seedprev=null,然后通过对称加密方案获取对称秘钥sksym=Sym.Genpp;随后,新用户ub使用对称秘钥sksym对创建该数据记录的用户公钥和前置种子进行对称加密,接着使用监管者公钥PKreg对对称秘钥进行加密;S24、新用户ub执行步骤S21-S23,并生成零知识证明,即令命题,秘密值,对x和a通过zk-SNARKs协议生成证明,其中,ProKcreate表示指针对创建新数据记录的zk-SNARKs公共参数,其被包括在公共参数pp中;所述链下计算,利用已持有的数据记录集合Rcon={r1,…,rk}以及对应数据记录的承诺集合CMcon={cmr1,…,cmrk}进行链下计算,具体计算如下:S31、初始化记录认证路径集合setbranch=null,编号集合SN=null,数据记录承诺集合CM=null,所有已持有数据记录的内容plaintextpr=null,所有新生成的数据记录的内容plaintext=null;S32、迭代计算每一个数据记录集合元素ri∈Rcon;步骤S32具体为:S321、针对ri获取其数据记录承诺cmri.cm在默克尔树MT中的认证路径branchri,并将该路径加入认证路径集合setbranch=setbranch||branchri;S322、将记录ri的编号加入编号集合SN=SN||PRFSKuser,ri.seed;S323、记录当前消耗的数据记录的内容plaintextpr=plaintextpr||ri.data;S33、用户根据任意计算函数F计算出新的数据记录集合;S34、迭代计算每一个新的数据记录集合元素;步骤S34具体为:S341、用户通过承诺方案对随机种子ri'.seed和用户公钥ri'.PKuser分别生成承诺;S342、如果ri'.flag1=private,则对ri'.data计算,并将生成数据记录ri'的承诺,且令,表示更新后的新数据记录;S343、如果ri'.flag2=public,则生成数据记录ri'的承诺,且令;此外,用户将新数据记录承诺放入承诺集合,新数据记录的内容合并;S35、用户生成对称秘钥sksym=Sym.Genpp并使用该对称秘钥sksym对函数F生成的所有新数据记录内容plaintext进行对称加密dataCt=Sym.Encsksym,plaintext,随后使用监管者公钥PKreg对对称秘钥进行加密keyCt=PK.EncPKreg,sksym;S36、用户对上述步骤S31-S35生成零知识证明,具体为:令命题x=MT.root,SN,CM,dataCt,keyCt,PKreg,pp,秘密值a=Rcon,Rcreate,sksym,SKuser,setbranch,对x和a通过zk-SNARKs协议生成证明π=ZK.ProProKcompute,x,a,其中,ProKcompute是指针对创建新数据记录的zk-SNARKs公共参数,其被包括在公共参数pp中。

全文数据:

权利要求:

百度查询: 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) 基于账户区块链的可问责隐私保护智能合约实现方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。