一种基于区块链的密码货币交易隐私保护方法及系统技术方案

技术编号:19327105 阅读:28 留言:0更新日期:2018-11-03 14:13
本发明专利技术提供了一种基于区块链的密码货币交易隐私保护方法及系统,所述方法包含如下步骤:形成混币组、创建混币器钱包、货币汇总、发送混币需求、接收混币需求、创建混币交易、混币交易签名、交易信息发送及混币信息验证。本方法可以用于保护区块链交易隐私信息,设计出的基于随机节点的混币方法,可以割裂交易双方之间的直接联系,消除交易信息之间的发送方和接收方的关联性,从而达到保护密码货币交易隐私的目的。

Privacy protection method and system for password currency transaction based on block chain

The invention provides a block chain-based privacy protection method and system for password currency transactions. The method comprises the following steps: forming a mixer group, creating a mixer wallet, currency aggregation, sending a mixer demand, receiving a mixer demand, creating a mixer transaction, signing a mixer transaction, sending a transaction information and mixer information. Verification. This method can be used to protect the privacy information of block chain transactions. A mixed currency method based on random nodes is designed. It can split the direct contact between the two parties and eliminate the correlation between senders and receivers of transaction information, so as to achieve the purpose of protecting the privacy of password currency transactions.

【技术实现步骤摘要】
一种基于区块链的密码货币交易隐私保护方法及系统
本专利技术涉及的是一种区块链
,特别涉及一种基于区块链的密码货币交易隐私保护方法及系统。
技术介绍
对于基于账本的区块链密码货币(例如比特币),所有交易信息以公开账本的形式记录在每个参与节点。在公开账本中,每笔交易信息包含:上一笔交易哈希值、付款方签名、收款方钱包地址、该笔交易的哈希值等信息。恶意用户可以通过背景知识攻击、交易图谱分析攻击等手段将识别交易的接收方和发送方形成关联,一旦真实的账户信息被泄露,交易将失去匿名效果,数据隐私安全被破坏。如何有效保护区块链上交易隐私信息的安全性,是一个急需解决的技术问题。
技术实现思路
针对有效保护区块链上交易隐私信息的安全性的技术问题,本专利技术提供了一种基于区块链的密码货币交易隐私保护方法及系统,所述方法包含如下步骤:S1、形成混币组:区块链的混币节点P向全网节点广播混币请求MSG_REQUEST,同一时间段内广播混币请求MSG_REQUEST的m个混币节点P组成混币组PGROUP,全部混币节点P随机按顺序产生不重复的编号Pi,其中1≤i≤m;S2、创建混币器钱包:混币组PGROUP随机选取一个公开的大素数p和公开的本原元g∈Zp*,其中Zp*为p-1阶循环乘法群,每个混币节点Pi均随机选取一个整数xi作为混币器私钥碎片,混币器节点P1计算出y1=gx1modp并将y1发送给P2,P2计算出y2=y1x2modp=gx1x2modp并将y2发送给p3,以此类推,最终混币节点Pm计算出ym=(ym-1)xmmodp=gx1x2...xmmodp,混币组PGROUP将ym记为混币器完整公钥pubkey,混币组PGROUP根据混币器完整公钥pubkey通过哈希运算得hash(gx1+x2+...+xm),记为混币器钱包地址Address,其中,1≤i≤m,1≤xi≤p-2;S3、货币汇总:混币组PGROUP内各个节点Pi将参与混币的货币生成同一笔交易Co_Mes并分别形成签名SIGNPi_Co_MES后,所述交易的输出地址为混币器公钥地址Address,其中1≤i≤m;S4、发送混币需求:混币节点Pi任意选择所述混币组PGROUP中的任一混币节点Pj发送混币需求信息Mi,其中1≤i,j≤m且i≠j;S5、接收混币需求:混币节点Pj接收混币节点Pi发送的混币需求信息Mi,若混币节点Pj参与混币的剩余金额LAST_Sj大于或等于混币需求信息Mi中的混币需求金额Mi_Si,则Pj接收该笔混币需求信息Mi并在PGROUP中广播接收信息Rj;若混币节点Pj参与混币的剩余金额LAST_Sj小于混币需求信息Mi中的混币需求金额Mi_Si,则Pj部分接收该笔混币需求信息Mi并在PGROUP中广播部分接收信息Rj,同时Pj将未被满足的混币需求信息Mi’按照步骤S4继续发送混币需求,此后Pj不再继续接取混币需求,其中,1≤i,j≤m且i≠j;S6、创建混币交易:当混币节点Pi收到全部接收信息Rj后,验证是否存在接收信息,使得混币节点Pi发出的全部混币需求均被满足,且验证是否全部接收信息上的目标金额等于混币器钱包上全部金额,若均通过验证,则随机选择其中一个混币节点Pi根据全部接收信息R生成混币交易信息FINAL,并将FINAL在PGROUP中广播;若不能通过验证,返回步骤S4重新发送全部混币需求,其中,1≤i≤m;S7、混币交易签名:每个混币节点Pi均随机选取一个秘密整数ki,ki均与p-1互质,混币器节点P1计算出r1=gk1modp和v1=x1*gk1modp并将r1、v1发送给P2,P2计算出r2=r1k2modp=gk1k2modp和v2=v1*x2*gk2modp=x1*x2*gk1+k2modp并将r2、v2发送给p3,以此类推,最终混币节点Pm计算出rm=(rm-1)kmmodp=gk1k2...kmmodp和vm=(vm-1)*xm*gkmmodp=x1*x2*...*xm*gk1+k2+...+kmmodp,混币组PGROUP将rm记为混币器签名1,混币器节点P1计算出s1=(FINAL-vm)*k1-1mod(p-1)并将s1发送给P2,P2计算出s2=s1*k2-1mod(p-1)=(FINAL-vm)*k1-1*k2-1mod(p-1),以此类推,最终混币节点Pm计算出sm=(sm-1)*km-1mod(p-1)=(FINAL-vm)*k1-1*k2-1*...*km-1mod(p-1),混币组PGROUP将sm记为混币器签名3,混币器节点Pm计算出dm=gkmmodp并将dm发送给(Pm-1),(Pm-1)计算出(dm-1)=dm*gkm-1modp=gkm+km-1modp并将(dm-1)发送给(Pm-2),以此类推,最终混币节点Pm计算出d1=d2*gk1modp=gk1+k2+...+kmmodp,混币组PGROUP将d1记为混币器签名2,获得混币交易签名SIGN_FINAL=(rm,d1,sm),其中,1≤i≤m,1≤ki≤p-2;S8、交易信息发送:混币组PGROUP中任一混币节点Pi均可以将交易信息FINAL和混币交易签名SIGN_FINAL=(rm,d1,sm)发送给上链节点BP,其中,1≤i≤m;S9、混币信息验证:上链节点BP得到所述公钥pubkey、公开的大素数p、公开的本原元g、交易信息FINAL和签名SIGN_FINAL,计算出ANS=pubkeyd1rmsm,并判断ANS是否等于gFINAL,若相等,则BP将FINAL放进区块;若不相等,则BP拒绝将FINAL放进区块。在本专利技术的一种基于区块链的密码货币交易隐私保护方法中,步骤S3中所述同一笔交易Co_Mes包括:该笔交易的混币输入地址Co_IPi,该笔交易的混币金额Co_Si,该笔交易的混币输出地址Co_OP,该笔交易的混币哈希值Hash_Co。在本专利技术的一种基于区块链的密码货币交易隐私保护方法中,S4中所述混币需求Mi包括:混币需求目标输出地址Mi_OPi、混币需求目标需求金额Mi_Si,混币需求信息哈希值HASH_Mi;所述混币需求Mi中混币需求目标输出地址Mi_Opi满足:用户节点Pi拥有至少2个互异的输出地址。在本专利技术的一种基于区块链的密码货币交易隐私保护方法中,S5中参与混币的剩余金额LAST_Sj包括:混币节点Pj参与混币的全部金额PRE_Si减去Pj广播的全部接收信息Rj中的准交易金额Rj_Sj。在本专利技术的一种基于区块链的密码货币交易隐私保护方法中,S5中接收信息Rj包括:准输入地址Rj_IPj、准输出地址Rj_OPj、准交易金额Rj_Sj、接收信息哈希值HASH_Rj。在本专利技术的一种基于区块链的密码货币交易隐私保护方法中,S5中未被满足的混币需求信息Mi’包括:未被满足的输出地址Mi’_OPi’,未被满足的混币金额Mi’_Si’,未被满足的混币需求信息哈希值HASH_Mi’。在本专利技术的一种基于区块链的密码货币交易隐私保护方法中,S6中混币交易信息FINAL包括:混币交易信息输入地址FINAL_IPi,混币交易信息输出地址FINAL_OPi,混币交易信息交易金额FINAL_Si,混币交易信息哈希值HASH_FINA本文档来自技高网...

【技术保护点】
1.一种基于区块链的密码货币交易隐私保护方法,其特征在于,包含如下步骤:S1、形成混币组:区块链的混币节点P向全网节点广播混币请求MSG_REQUEST,同一时间段内广播混币请求MSG_REQUEST的m个混币节点P组成混币组PGROUP,全部混币节点P随机按顺序产生不重复的编号Pi,其中1≤i≤m;S2、创建混币器钱包:混币组PGROUP随机选取一个公开的大素数p和公开的本原元g∈Zp*,其中Zp*为p‑1阶循环乘法群,每个混币节点Pi均随机选取一个整数xi作为混币器私钥碎片,混币器节点P1计算出y1=gx1mod p并将y1发送给P2,P2计算出y2=y1x2mod p=gx1x2mod p并将y2发送给p3,以此类推,最终混币节点Pm计算出ym=(ym‑1)xmmod p=gx1x2...xmmod p,混币组PGROUP将ym记为混币器完整公钥pubkey,混币组PGROUP根据混币器完整公钥pubkey通过哈希运算得hash(gx1+x2+...+xm),记为混币器钱包地址Address,其中,1≤i≤m,1≤xi≤p‑2;S3、货币汇总:混币组PGROUP内各个节点Pi将参与混币的货币生成同一笔交易Co_Mes并分别形成签名SIGNPi_Co_MES后,所述交易的输出地址为混币器公钥地址Address,其中1≤i≤m;S4、发送混币需求:混币节点Pi任意选择所述混币组PGROUP中的任一混币节点Pj发送混币需求信息Mi,其中1≤i,j≤m且i≠j;S5、接收混币需求:混币节点Pj接收混币节点Pi发送的混币需求信息Mi,若混币节点Pj参与混币的剩余金额LAST_Sj大于或等于混币需求信息Mi中的混币需求金额Mi_Si,则Pj接收该笔混币需求信息Mi并在PGROUP中广播接收信息Rj;若混币节点Pj参与混币的剩余金额LAST_Sj小于混币需求信息Mi中的混币需求金额Mi_Si,则Pj部分接收该笔混币需求信息Mi并在PGROUP中广播部分接收信息Rj,同时Pj将未被满足的混币需求信息Mi’按照步骤S4继续发送混币需求,此后Pj不再继续接取混币需求,其中,1≤i,j≤m且i≠j;S6、创建混币交易:当混币节点Pi收到全部接收信息Rj后,验证是否存在接收信息,使得混币节点Pi发出的全部混币需求均被满足,且验证是否全部接收信息上的目标金额等于混币器钱包上全部金额,若均通过验证,则随机选择其中一个混币节点Pi根据全部接收信息R生成混币交易信息FINAL,并将FINAL在PGROUP中广播;若不能通过验证,返回步骤S4重新发送全部混币需求,其中,1≤i≤m;S7、混币交易签名:每个混币节点Pi均随机选取一个秘密整数ki,ki均与p‑1互质,混币器节点P1计算出r1=gk1mod p和v1=x1*gk1mod p并将r1、v1发送给P2,P2计算出r2=r1k2mod p=gk1k2mod p和v2=v1*x2*gk2mod p=x1*x2*gk1+k2mod p并将r2、v2发送给p3,以此类推,最终混币节点Pm计算出rm=(rm‑1)kmmod p=gk1k2...kmmod p和vm=(vm‑1)*xm*gkmmod p=x1*x2*...*xm*gk1+k2+...+kmmod p,混币组PGROUP将rm记为混币器签名1,混币器节点P1计算出s1=(FINAL‑vm)*k1‑1mod(p‑1)并将s1发送给P2,P2计算出s2=s1*k2‑1mod(p‑1)=(FINAL‑vm)*k1‑1*k2‑1mod(p‑1),以此类推,最终混币节点Pm计算出sm=(sm‑1)*km‑1mod(p‑1)=(FINAL‑vm)*k1‑1*k2‑1*...*km‑1mod(p‑1),混币组PGROUP将sm记为混币器签名3,混币器节点Pm计算出dm=gkmmod p并将dm发送给(Pm‑1),(Pm‑1)计算出(dm‑1)=dm*gkm‑1mod p=gkm+km‑1mod p并将(dm‑1)发送给(Pm‑2),以此类推,最终混币节点Pm计算出d1=d2*gk1mod p=gk1+k2+...+kmmod p,混币组PGROUP将d1记为混币器签名2,获得混币交易签名SIGN_FINAL=(rm,d1,sm),其中,1≤i≤m,1≤ki≤p‑2;S8、交易信息发送:混币组PGROUP中任一混币节点Pi均可以将交易信息FINAL和混币交易签名SIGN_FINAL=(rm,d1,sm)发送给上链节点BP,其中,1≤i≤m;S9、混币信息验证:上链节点BP得到所述公钥pubkey、公开的大素数p、公开的本原元g、交易信息FINAL和签名SIGN_FINAL,计算出ANS=pubkeyd1rmsm,并判断ANS是否等于gFINAL,若相等,则BP...

【技术特征摘要】
1.一种基于区块链的密码货币交易隐私保护方法,其特征在于,包含如下步骤:S1、形成混币组:区块链的混币节点P向全网节点广播混币请求MSG_REQUEST,同一时间段内广播混币请求MSG_REQUEST的m个混币节点P组成混币组PGROUP,全部混币节点P随机按顺序产生不重复的编号Pi,其中1≤i≤m;S2、创建混币器钱包:混币组PGROUP随机选取一个公开的大素数p和公开的本原元g∈Zp*,其中Zp*为p-1阶循环乘法群,每个混币节点Pi均随机选取一个整数xi作为混币器私钥碎片,混币器节点P1计算出y1=gx1modp并将y1发送给P2,P2计算出y2=y1x2modp=gx1x2modp并将y2发送给p3,以此类推,最终混币节点Pm计算出ym=(ym-1)xmmodp=gx1x2...xmmodp,混币组PGROUP将ym记为混币器完整公钥pubkey,混币组PGROUP根据混币器完整公钥pubkey通过哈希运算得hash(gx1+x2+...+xm),记为混币器钱包地址Address,其中,1≤i≤m,1≤xi≤p-2;S3、货币汇总:混币组PGROUP内各个节点Pi将参与混币的货币生成同一笔交易Co_Mes并分别形成签名SIGNPi_Co_MES后,所述交易的输出地址为混币器公钥地址Address,其中1≤i≤m;S4、发送混币需求:混币节点Pi任意选择所述混币组PGROUP中的任一混币节点Pj发送混币需求信息Mi,其中1≤i,j≤m且i≠j;S5、接收混币需求:混币节点Pj接收混币节点Pi发送的混币需求信息Mi,若混币节点Pj参与混币的剩余金额LAST_Sj大于或等于混币需求信息Mi中的混币需求金额Mi_Si,则Pj接收该笔混币需求信息Mi并在PGROUP中广播接收信息Rj;若混币节点Pj参与混币的剩余金额LAST_Sj小于混币需求信息Mi中的混币需求金额Mi_Si,则Pj部分接收该笔混币需求信息Mi并在PGROUP中广播部分接收信息Rj,同时Pj将未被满足的混币需求信息Mi’按照步骤S4继续发送混币需求,此后Pj不再继续接取混币需求,其中,1≤i,j≤m且i≠j;S6、创建混币交易:当混币节点Pi收到全部接收信息Rj后,验证是否存在接收信息,使得混币节点Pi发出的全部混币需求均被满足,且验证是否全部接收信息上的目标金额等于混币器钱包上全部金额,若均通过验证,则随机选择其中一个混币节点Pi根据全部接收信息R生成混币交易信息FINAL,并将FINAL在PGROUP中广播;若不能通过验证,返回步骤S4重新发送全部混币需求,其中,1≤i≤m;S7、混币交易签名:每个混币节点Pi均随机选取一个秘密整数ki,ki均与p-1互质,混币器节点P1计算出r1=gk1modp和v1=x1*gk1modp并将r1、v1发送给P2,P2计算出r2=r1k2modp=gk1k2modp和v2=v1*x2*gk2modp=x1*x2*gk1+k2modp并将r2、v2发送给p3,以此类推,最终混币节点Pm计算出rm=(rm-1)kmmodp=gk1k2...kmmodp和vm=(vm-1)*xm*gkmmodp=x1*x2*...*xm*gk1+k2+...+kmmodp,混币组PGROUP将rm记为混币器签名1,混币器节点P1计算出s1=(FINAL-vm)*k1-1mod(p-1)并将s1...

【专利技术属性】
技术研发人员:任伟肖睿阳
申请(专利权)人:中国地质大学武汉
类型:发明
国别省市:湖北,42

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

1