一种基于环签名的区块链匿名交易方法技术

技术编号:15503586 阅读:115 留言:0更新日期:2017-06-03 23:57
本发明专利技术公开了一种基于环签名的区块链匿名交易方法。包括如下步骤:1)交易发送者给合约转账,合约存储转账金额并返回一个随机公钥环;2)发送者利用接收者的公钥生成目标地址和一个特定参数R;3)发送者对一组交易信息进行环签名;4)发送者将签名连同其签名内容发送给合约;5)合约将对接收到的环签名进行验证;6)合约将公钥环对应的存储金额从合约账户转账给目标地址;7)接收者获得转账金额,接收者获得对应的目标账户地址和其私钥。本发明专利技术解决了传统的区块链交易中交易双方的地址完全暴露的问题,实现了区块链上的匿名转账和匿名收账的功能。

Block chain anonymous transaction method based on ring signature

The invention discloses a block chain anonymous transaction method based on ring signature. Includes the following steps: 1) the transaction contract transfer contract to the sender, storage transfer amount and returns a random public key ring; 2) the sender using public key to generate the target address of the receiver and a specific parameter R; 3) the sender ring signature on a set of transaction information; 4) will be sent together with its signature signature sent to the contract; 5) the contract will verify the ring signature received; 6) contract amount of storage ring corresponding to the public key from the contract account transfer to the target address; 7) the recipient gets the transfer amount, the receiver obtains corresponding target account address and the private key. The invention solves the problem that the address of both sides of the transaction in the traditional block chain transaction is completely exposed, and realizes the anonymous transfer and the anonymous collection of accounts on the block chain.

【技术实现步骤摘要】
一种基于环签名的区块链匿名交易方法
本专利技术涉及环签名技术、椭圆曲线算法及区块链技术,尤其涉及一种基于环签名的区块链匿名交易方法。
技术介绍
区块链技术,区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,信息不可伪造和篡改,区块链上的交易确认由区块链上的所有节点共同完成,由共识算法保证其一致性,区块链上维护一个公共的账本,用于存储区块链网络上所有用户的余额,公共账本位于存储区块上任何节点可见,从而保证其不可伪造和篡改。环签名是一种特殊的密码学签名,它能够证明签名者拥有一个对应特定集合公钥的私钥,而不会暴露出签名者的身份(该私钥对应哪个公钥)。该方法可以使签名者隐藏在一个集体中从而达到匿名效果,其技术特点要点是:当用户在转账时可以利用环签名来识别签名者身份,验证时只需要知道签名者所在的集合,不需暴露用户的实际公钥,因此用户的真实得到隐藏。针对传统的区块链交易的交易信息完全公开导致交易双方的身份暴露无遗的问题,环签名技术的应用可以使区块链上的用户实现匿名转账功能。椭圆曲线算法,椭圆曲线算法是一种非对称的加密算法,椭圆曲线的密钥生成算法执行时会生成一对公私钥。在区块链上用户的账户地址就是公钥,用户的私钥就是其对应的私钥。本专利技术使用椭圆曲线算法产生一个目标地址作为合约的转账地址,目标地址是由发送者产生的随机数结合接收者的公钥生成的,只有交易接收者才能获得目标地址的私钥,因此,区块链上除了交易发送者的其他用户无法得知接收者的真实身份。同样,针对传统的区块链交易的交易信息完全公开导致交易双方的身份暴露无遗的问题,该方法的应用可以使区块链上的用户实现匿名收账功能。
技术实现思路
本专利技术的目的是针对现有技术的不足,提供一种基于环签名的区块链匿名交易方法。本专利技术的目的是通过以下技术方案来实现的:在一个区块链网络上,交易发起方通过一个中间合约账户实现匿名转账功能,交易接收方通过一个由发送者生成的目标地址实现匿名收账功能。交易双方的整个匿名交易过程,包括如下步骤:1)交易准备过程,交易发送者调用一个特定的智能合约方法,给合约地址转账,合约存储转账金额,并随机返回一个公钥环,该公钥环包含发送者的公钥;2)生成目标地址,发送者产生一个随机数,并利用接收者的公钥通过椭圆曲线算法生成目标地址P和参数R,目标地址P=H(r*B)*G+B,参数R=r*G;各个参数含义如下:G:椭圆曲线算法特定参数,椭圆曲线上的一个基点;H():一种hash算法;r:发送者生成的随机数;B:接收者的公钥,B=b*G,b为接收者的私钥,一般是一串十六进制数字,此算法不可逆,即只能通过b得到B;该步骤生成的目标地址P,除了接收者外,包括发送者在内的其他人无法获得目标地址的私钥;3)生成环签名,发送者利用自己的私钥和步骤1)中的公钥环,对一组交易信息进行环签名,其中交易信息包括步骤2)中生成的目标地址和参数R;4)发送环签名,发送者将签名连同其签名内容发送给合约;5)验证环签名,合约将对接收到的环签名进行验证,验证成功则会执行操作6),验证失败则不执行操作;6)执行合约转账,合约将公钥环对应的存储金额从合约账户转账给目标地址,并在交易信息中附带参数R,发送者完成匿名转账;7)接收者获得转账金额:接收者通过查询最新产生的区块上的所有合约发起的交易信息,提取每笔交易信息中的参数R进行以下运算:P’=H(b*R)*G+B,判断得到的P’与交易信息中的目标地址是否一致,若一致,则该交易是发送给自己的,接收者可以进行以下运算得到目标地址P的私钥x;x=H(b*R)+b,接收者拥有了目标账户的公私钥,完成匿名收账;到此,接收者可以对目标账户进行任意操作,即接收者接受到了转账金额,交易完成。这里,我们利用发送者产生的目标地址很好的隐藏了接收者的真实身份,即实现了区块链上交易的匿名收账。否则,可以得知该段时间没有发送给自己的交易。进一步地,所述的步骤1)中合约收到转账后返回一个公钥环,其中合约首先会存储发送者的转账金额,并随机生成特定数量的公钥,公钥环由这些随机生成的公钥和发送者的公钥组成。进一步地,所述的步骤3)中,发送者发起交易时,用自己的私钥和步骤1)返回的公钥环对交易信息进行环签名,此处运用算法为环签名的签名算法,环签名算法的特性是环中任意成员生成的环签名都可以通过这个公钥环进行签名验证,不需要对应的公钥来验证签名。进一步地,所述的步骤5)中环签名的验证过程,合约接收到交易发送者发送的签名信息,利用合约中的存储的公钥环对签名进行环签名验证,环签名验证算法可以在合约内实现;智能合约作为区块链上的一种去中心化应用的形式存在,智能合约一经部署就无法更改,区块链上的所有用户都可以调用合约方法,合约方法由合约创建者构建,合约内容存储在区块链上,其内容完全公开。将发送者的转账金额和公钥环对应存储在合约上,这样区块链上的其他用户就无法得知这笔金额对应的哪个账户,即实现了区块链上交易的匿名转账。本专利技术的有益效果是:本专利技术在区块链上对用户的转账过程使用环签名技术,以及在用户收账过程中产生一个本不存在的目标账户用于收账,这在满足区块链本身的技术特性的同事实现了交易的匿名转账和匿名收账功能。传统区块链上的交易过程,交易双方的身份信息随交易信息一起被记录在区块链上,交易双方的地址完全公开,这保证了区块链上信息的不可伪造和篡改,但同时暴露了用户交易记录信息。为保护用户的交易隐私,本专利技术在交易转账过程中用环签名对交易发起者进行身份认证,这样交易发起者隐藏在一组公钥环中,从而使发送者的身份隐藏;在交易收账过程中使用一个临时产生的目标地址作为转账目标账户,即使有人可以追踪交易记录,也无法得知收账人的真实身份。本专利技术有效地解决了传统区块链上的交易隐私问题。附图说明图1是交易准备过程;图2是发送者执行匿名交易的过程;图3是接收者的匿名收账过程。具体实施方式下面根据附图和具体实施例详细描述本专利技术,本专利技术的目的和效果将变得更加明显。如图1-3所示,本专利技术基于环签名的区块链匿名交易方法,包括如下步骤:1)交易准备过程,如图1所示,交易发送者调用一个特定的智能合约方法,给合约地址转账,合约存储转账金额,并随机返回一个公钥环,该公钥环包含发送者的公钥;2)生成目标地址,发送者产生一个随机数,并利用接收者的公钥通过椭圆曲线算法生成目标地址P和参数R,目标地址P=H(r*B)*G+B,参数R=r*G;各个参数含义如下:G:椭圆曲线算法特定参数,椭圆曲线上的一个基点;H():一种hash算法;r:发送者生成的随机数;B:接收者的公钥,B=b*G,b为接收者的私钥,一般是一串十六进制数字,此算法不可逆,即只能通过b得到B;该步骤生成的目标地址P,除了接收者外,包括发送者在内的其他人无法获得目标地址的私钥;3)生成环签名,发送者利用自己的私钥和步骤1)中的公钥环,对一组交易信息进行环签名,其中交易信息包括步骤2)中生成的目标地址和参数R;4)发送环签名,发送者将签名连同其签名内容发送给合约;5)验证环签名,合约将对接收到的环签名进行验证,验证成功则会执行操作6),验证失败则不执行操作;6)执行合约转账,合约将公钥环对应的存储金额从合约账户转账给目标地址,并在交易信息中附带参数R,发送者完成匿名转账本文档来自技高网
...
一种基于环签名的区块链匿名交易方法

【技术保护点】
一种基于环签名的区块链匿名交易方法,其特征在于,包括如下步骤:1)交易准备过程,交易发送者调用一个特定的智能合约方法,给合约地址转账,合约存储转账金额,并随机返回一个公钥环,该公钥环包含发送者的公钥;2)生成目标地址,发送者产生一个随机数,并利用接收者的公钥通过椭圆曲线算法生成目标地址P和参数R,目标地址P=H(r*B)*G+B,参数R=r*G;各个参数含义如下:G:椭圆曲线算法特定参数,椭圆曲线上的一个基点;H():一种hash算法;r:发送者生成的随机数;B:接收者的公钥,B=b*G,b为接收者的私钥,此算法不可逆,即只能通过b得到B;3)生成环签名,发送者利用自己的私钥和步骤1)中的公钥环,对一组交易信息进行环签名,其中交易信息包括步骤2)中生成的目标地址和参数R;4)发送环签名,发送者将签名连同其签名内容发送给合约;5)验证环签名,合约将对接收到的环签名进行验证,验证成功则会执行操作6),验证失败则不执行操作;6)执行合约转账,合约将公钥环对应的存储金额从合约账户转账给目标地址,并在交易信息中附带参数R,发送者完成匿名转账;7)接收者获得转账金额:接收者通过查询最新产生的区块上的所有合约发起的交易信息,提取每笔交易信息中的参数R进行以下运算:P’=H(b*R)*G+B,判断得到的P’与交易信息中的目标地址是否一致,若一致,则该交易是发送给自己的,接收者可以进行以下运算得到目标地址P的私钥x;x=H(b*R)+b,接收者拥有了目标账户的公私钥,完成匿名收账;否则,可以得知该段时间没有发送给自己的交易。...

【技术特征摘要】
1.一种基于环签名的区块链匿名交易方法,其特征在于,包括如下步骤:1)交易准备过程,交易发送者调用一个特定的智能合约方法,给合约地址转账,合约存储转账金额,并随机返回一个公钥环,该公钥环包含发送者的公钥;2)生成目标地址,发送者产生一个随机数,并利用接收者的公钥通过椭圆曲线算法生成目标地址P和参数R,目标地址P=H(r*B)*G+B,参数R=r*G;各个参数含义如下:G:椭圆曲线算法特定参数,椭圆曲线上的一个基点;H():一种hash算法;r:发送者生成的随机数;B:接收者的公钥,B=b*G,b为接收者的私钥,此算法不可逆,即只能通过b得到B;3)生成环签名,发送者利用自己的私钥和步骤1)中的公钥环,对一组交易信息进行环签名,其中交易信息包括步骤2)中生成的目标地址和参数R;4)发送环签名,发送者将签名连同其签名内容发送给合约;5)验证环签名,合约将对接收到的环签名进行验证,验证成功则会执行操作6),验证失败则不执行操作;6)执行合约转账,合约将公钥环对应的存储金额从合约账户转账给目标地址,并在交易信息中附带参数R,发送者完成匿名转账;7)接收者获得转账金额:接收者通过查询最新产生的区块上的所有合约发起的交易信息,提取每笔交易信息中的参数R进行以下运算:P’=H(b*R)*G+B,判断得到的P’与交易信息中的目标地址是否一致,若一致,则该交易是发送给自己的,接收者可以进行以...

【专利技术属性】
技术研发人员:梁秀波李启雷尹可挺李伟邱炜伟
申请(专利权)人:杭州趣链科技有限公司
类型:发明
国别省市:浙江,33

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

1