一种基于NIZK的条件匿名支付装置的制作方法

文档序号:19880034发布日期:2020-02-08 06:55阅读:424来源:国知局
一种基于NIZK的条件匿名支付装置的制作方法

本发明涉及信息安全技术,尤其涉及一种基于nizk(non-interactivezeroknowledge)的条件匿名支付装置。



背景技术:

区块链作为一种去中心化的新型计算范式,展示了在自组织模式下实现大规模协作的巨大潜力,为解决分布式网络中的一致性问题提供了全新的方法,受到了学术界和工业界的广泛关注。比特币支付协议是区块链的成熟应用之一,该协议无需中心化机构进行交易数据的处理和维护,通过交易的公开透明性以及共识机制,即可实现账本一致性。为了保护用户身份隐私,比特币支付协议采用了简单的假名机制,虽然该措施具有一定的隐私保护作用,但是攻击者仍可通过分析全局账本中的交易记录,获得用户交易地址间的关联性,再结合外部信息往往可以得到用户的真实身份。

为增强区块链支付协议的隐私保护能力,国内外学者已经提出多个基于环签名、零知识证明等密码工具的隐私保护增强方案(比如monero和zerocash)。但完全匿名的区块链匿名支付协议缺乏有效的监管手段,当攻击者对系统安全性造成威胁、非法用户利用区块链实施违法行为时,系统无法对攻击者和非法用户进行追责,导致其成为犯罪行为滋生、不良内容传播的温床。因此,区块链系统不仅需要提供用户的隐私安全,还需要兼顾合法监管以防止勒索、洗钱等犯罪行为的发生。

针对上述问题,本专利结合非交互式零知识证明工具以及假名更新技术,提出一种安全高效的条件匿名支付方案,旨在权衡区块链支付协议的隐私保护和合法监管。其中,条件匿名指的是诚实用户的身份隐私得到保护、非法用户的交易信息可被追踪。该条件匿名支付协议能够高效地在隐私保护与监管这一对矛盾体中寻求平衡,降低和减轻系统的开销和负担,适应区块链支付体系下不同用户的安全通信需求。



技术实现要素:

本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种基于nizk的条件匿名支付装置。

本发明解决其技术问题所采用的技术方案是:一种基于nizk的条件匿名支付装置,包括:

初始化模块,用于产生整个条件匿名支付过程所需参数;所述参数包括:椭圆曲线相关参数和安全哈希函数其中,p,q为大素数、e为y=x3+ax+b定义的非奇异椭圆曲线、为包含椭圆曲线e所有点以及无穷远点的循环群、p为的q阶生成元;

用户注册模块,用于为用户u产生用户长期地址qu和长期密钥du;其中,长期密钥由系统管理员随机选取长期地址qu=dup;

密钥更新模块,用于根据用户注册信息产生用户u的匿名地址(q′u,q″u)和匿名密钥(ru,du);具体如下:

随机选取并计算q′u=ruqu,q″u=(rudu)qm+qu;

其中,qm为系统管理员的长期地址;

转账支付模块,用于根据用户的支付请求,进行转账支付;假设用户b向用户a提出支付请求,则用户a需要向用户b进行转账,假设转账金额为v,用户a执行的操作具体如下:

1)用户a调用密钥更新模块为生成匿名地址(q′a,q″a)和匿名密钥(ra,da);

2)用户a随机选取计算r1=rsp,r2=rsqm,r3=sp,

3)用户a生成交易记录tx=(x,π),并将tx发送给用户b,其中x=(v,q′a,q″a,q′b,q″b,qm,p)、π=(c,z1,z2,r2)、z1=rs-crada,z2=s-cda;

验证模块,用于转账接收方(即用户b)验证交易记录的合法性;具体如下:

1)用户b解析该笔交易记录tx得到x=(v,q′a,q″a,q′b,q″b,qm,p)、π=(c,z1,z2,r2);

2)用户b计算r′1=z1p+cq′a、r′3=z2p+cq″a-r2+z1qm以及

3)用户b验证等式c=c′是否成立,若成立,则说明该笔交易是合法的;否则说明交易是非法的;

追溯模块,用于系统管理员追溯某交易记录中交易双方的真实身份,即获取交易双方的长期地址信息;具体如下:

系统管理员利用自己的长期私钥dm,计算qu=q″u-dmq′u,从而恢复匿名地址(q′u,q″u)对应的长期地址qu。

本发明产生的有益效果是:本发明在可追溯的自更新假名技术的基础上,构造新型、高效、安全的nizk协议,结合区块链支付协议特点,设计一种基于区块链的条件匿名支付方案。该支付方案的每笔交易涉及用户的匿名地址,一般用户从交易数据难以获得交易者的真实身份;另外,管理员能够具备追溯交易者的真实身份,一旦发现可疑交易,即可调用追溯算法获取交易者的真实身份。本发明有效地平衡了隐私保护与合法监管,并且协议的高效性降低和减轻了系统的开销和负担,适应区块链支付体系下不同用户的安全通信需求。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明实施例的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

如图1所示,一种基于nizk的条件匿名支付装置,包括:

初始化模块,用于产生整个条件匿名支付过程所需参数;所述参数包括:椭圆曲线相关参数和安全哈希函数其中,p,q为大素数、e为y=x3+ax+b定义的非奇异椭圆曲线、为包含椭圆曲线e所有点以及无穷远点的循环群、p为的q阶生成元;

用户注册模块,用于为用户u产生用户长期地址qu和长期密钥du;其中,长期密钥由系统管理员随机选取长期地址qu=dup;

密钥更新模块,用于根据用户注册信息产生用户u的匿名地址(q′u,q″u)和匿名密钥(ru,du);具体如下:

随机选取并计算q′u=ruqu,q″u=(rudu)qm+qu;

其中,qm为系统管理员的长期地址;

转账支付模块,用于根据用户的支付请求,进行转账支付;假设用户b向用户a发起支付请求,用户a需要向用户b进行转账,假设转账金额为v,具体如下:

1)用户a首先调用密钥更新模块为生成匿名地址(q′a,q″a)和匿名密钥(ra,da);

2)由用户a的匿名地址向用户b的匿名地址转账:

用户a随机选取计算r1=rsp,r2=rsqm,r3=sp,其中,v为转账金额;

3)用户a生成交易记录tx=(x,π),并将tx发送给用户b,其中x=(v,q′a,q″a,q′b,q″b,qm,p)、π=(c,z1,z2,r2)、z1=rs-crada,z2=s-cda;

验证模块,用于转账接收方(即用户b)验证交易记录的合法性;具体如下:

1)用户b解析该笔交易记录tx得到x=(v,q′a,q″a,q′b,q″b,qm,p)、π=(c,z1,z2,r2);

2)用户b计算r′1=z1p+cq′a、r′3=z2p+cq″a-r2+z1qm以及

3)用户b验证等式c=c′是否成立,若成立,则说明该笔交易是合法的;否则说明交易是非法的;

追溯模块,用于系统管理员追溯某交易记录中交易双方的真实身份,即获取交易双方的长期地址信息;具体如下:

系统管理员利用自己的长期私钥dm,计算qu=q″u-dmq′u,从而恢复匿名地址(q′u,q″u)对应的长期地址qu。

应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1