一种基于zk-snark的区块链积分用户鉴权认证方法技术

技术编号:31080924 阅读:15 留言:0更新日期:2021-12-01 11:56
本发明专利技术提供一种基于zk

【技术实现步骤摘要】
一种基于zk

snark的区块链积分用户鉴权认证方法


[0001]本专利技术涉及区块链技术,特别涉及区块链中用户隐私信息保护及管理技术。
技术背景
[0002]随着社会信息化的推进,互联网技术通过中心化的信息管理方式便利者人们生活的同时,也伴随着个人隐私泄露问题的日益严重。区块链技术通过分布式的数据存储及不可篡改的时序链状数据结构,促进了传统的信任模式的转变,基于区块链技术的互联网传统应用升级也成为了当今互联网项目开发的热点和趋势之一。积分,这一商家常用的线下促销推广及吸引新客户的手段,随着信息技术的发展逐渐显现出了一系列问题,如商家之间的积分难以交易,进而无法在积分层面便捷地实现多品牌价值传递;传统的电子积分鉴权困难,发行积分的商家不便于对已发行的积分进行追踪管理;各商家积分独立发行而缺乏对积分发行,流转,销毁等过程及积分实时动态总量的共识。

技术实现思路

[0003]本专利技术要解决的问题是,引入区块链技术设计线上积分可信管理的积分用户鉴权认证方法。
[0004]本专利技术为解决上述技术问题所采用的技术方案分别是,一种基于zk

snark的区块链积分用户鉴权认证方法,包括以下步骤:
[0005]1)基于zk

snark的用户注册步骤:
[0006]1‑
1)用户隐私信息机构运行零知识简明非交互式知识证明zk

snark(zero knowledge Succinct Non
‑<br/>interactive ARgument of Knowledge)的设置setup算法;由用户隐私信息机构计算证明密钥PK和验证密钥VK并发送至认证机构CA;
[0007]1‑
2)积分客户端接收到用户输入的将注册的账户类别以及该用户的唯一身份识别标码后,本地运算产生zk

snark证明Proof,并发送给CA;
[0008]1‑
3)CA通过CRS中的验证密钥对收到的证明Proof的正确性进行验证,若验证通过后依据选择的账户类别提取用户属性,生成账户密钥对{pki,ski}以及证书Cre并发送至用户设备区块链;所述证书Cre中包括有用户属性、积分平台的通信地址ip及用户与积分平台节点的通信密钥ki;pki为公钥,ski为私钥;
[0009]1‑
4)积分客户端解析CA发放的证书Cre从而与积分平台节点建立通信;
[0010]1‑
5)积分客户端向积分平台发送自己的证书Cre与公钥pki至积分平台;积分平台对Cre的有效性验证通过后则基于用户输入的口令pw和公钥pki为用户生成;再根据Cre中的用户属性生成权限集{xi},利用抗碰撞散列值函数CRH生成用户口令摘要CRH(pw),再将用户积分账户acc、账户权限{xi}及用户口令摘要CRH(pw)存入积分平台的数据库以完成赋权;
[0011]2)基于zk

snark的用户鉴权管理步骤:
[0012]2‑
1)当用户需要进行积分交易或者积分商家用户需要发行积分时,积分客户端先
通过pw和acc向积分平台请求生成权限凭证token;
[0013]2‑
2)积分平台在收到权限凭证token后,基于数据库中的账户权限{xi}、用户口令摘要CRH(pw)和zk

snark的setup算法生成公共引用字符串CRS,并将积分平台生成公共引用字符串CRS以及CRS中的验证密钥VK发送至区块链;
[0014]2‑
3)当用户需要进行积分交易或生成积分时,在区块链合约层先调用鉴权合约确定目标合约功能的权限,鉴权通过则调用对应功能的智能合约正常执行积分交易;
[0015]其中,鉴权合约执行过程为:区块链将权限凭证token作为鉴权合约的输入,鉴权合约基于内部存储的VK和CRS通过zk

snark的验证算法对token的有效性进行校验,若token校验通过则通过鉴权。
[0016]本专利技术的有益效果是,基于区块链合约层和隐私计算的积分用户鉴权方式能够方便且安全地实现跨商家的积分交易。
附图说明
[0017]图1为用户鉴权管理系统示意图。
具体实施方式
[0018]整个基于区块链的交子分用户鉴权管理系统由交子分用户、积分平台、底层许可连、认证机构及积分平台控制的数据库这五大部分组成。其中用户可分为普通积分用户和积分商家这两类。系统内使用到的zk

snark协议在本例中采用Groth16,用户在区块链上的公钥密码对使用椭圆曲线secp256k1。当新用户尝试通过智能手机注册交子分账户时,系统进行如图1所示步骤:
[0019]1)由交子分认证机构CA所在地区的权威机构,提前为本地居民或商户提前生成 Groth16算法需使用到的CRS和证明验证密钥对(证明密钥PK和验证密钥VK),分别是交子分普通用户的身份证号,指纹和居民姓名序列:{ID,BD,Name};交子分商家的商号TN,商铺名Tname,法人代表的身份证号ID,指纹BD和姓名序列Name:{TN,Tname,ID,BD,Name},将上述待证明数据转置为Groth16 的R1CS,生成证明验证密钥对{PK,VK},并将证明验证密钥对通过专用信道传给CA;
[0020]2)用户注册时在可在未联网的智能手机交子分app上输入个人身份信息序列{ID, BD,Name},通过交子分app在手机后台基于PK和输入的用户身份信息序列作为Groth16证明阶段的输入,生成证据Proof,将Proof通过作为积分客户端的交子分app发送给AC;
[0021]3)CA收到Proof后,将Proof和验证密钥VK作为输入,对Proof执行Groth16 的正确性验证,输出一个布尔型变量(1代表通过验证),验证通过进入下一步;
[0022]4)CA依据用户在第2)步选择的预注册账户类别提取用户属性,并基于secp256k1 生成并发放给客户端账户密钥对{pki,ski}和证书Cre;若步骤3)中验证未通过则不予发放;Cre:={Ip,pki(ki,H(ki)),PKP((xi),H(xi)),Info}, Ip为用户设备附近的交子分平台节点通信地址,pki()表示使用通信密钥中的公钥的加密处理,PKP()表示使用积分平台公钥的加密处理,ki是用户与交子分平台的通信密钥,H()表示抗碰撞哈希函数,xi为AC通过用户注册时在app 界面选择的用户种类判断的用户权限,Info代表字符串格式的证书标号等其他信息;
[0023]5)客户端在收到Cre和{pki,ski}后,基于Cre中的地址与交子分平台建立连接,之后的通信都使用ki加密,上传Cre和pki到交子分平台;
[0024]6)交子分平台首先通过Info部分验证Cre的有效性,通过SKP对Cre中用户权限部分解密并验算本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于zk

snark的区块链积分用户鉴权认证方法,其特征在于,包括以下步骤:1)基于zk

snark的用户注册步骤:1

1)用户隐私信息机构运行零知识简明非交互式知识证明zk

snark的设置setup算法;由用户隐私信息机构计算证明密钥PK和验证密钥VK并发送至认证机构CA;1

2)积分客户端接收到用户输入的将注册的账户类别以及该用户的唯一身份识别标码后,本地运算产生zk

snark证明Proof,并发送给CA;1

3)CA通过CRS中的验证密钥VK对收到的证明Proof的正确性进行验证,若验证通过后依据选择的账户类别提取用户属性,生成账户密钥对{pki,ski}以及证书Cre并发送至积分客户端;所述证书Cre中包括有用户属性、积分平台的通信地址ip及用户与积分平台节点的通信密钥ki;pki为公钥,ski为私钥;1

4)积分客户端解析CA发放的证书Cre从而与积分平台节点建立通信注册账户并输入口令pw;1

5)积分客户端向积分平台发送自己的证书Cre与公钥pki至积分平台;积分平台对Cre的有效性验证通过后则基于用户输入的口令pw和公钥pki为用户生成;再根据Cre中的用户属性生成权限集{xi},利用抗碰撞散列值函数CRH生成CRH(pw),再将用户积分账户acc、账户权限{xi}及用户口令摘要CRH(...

【专利技术属性】
技术研发人员:蒋涛张文军王娟胡垚夏琦高建彬杨靖聪
申请(专利权)人:成都金融梦工场投资管理有限公司电子科技大学
类型:发明
国别省市:

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

1