区块链地址匿名处理方法及系统、终端、存储介质转让专利

申请号 : CN202010063789.0

文献号 : CN111241586B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 蒋海商松朱建国旷凯赵正涌刘建章

申请人 : 布比(北京)网络技术有限公司

摘要 :

本申请实施例提供一种区块链地址匿名处理方法及系统、终端、存储介质,涉及区块链隐私处理技术,用于克服相关技术中由于零知识证明生成证明时间较长,对硬件要求较高,导致性能损失较严重的问题。其中,所述区块链地址匿名处理方法,由区块链网络中的发送方来执行,包括:根据发送方的私钥及接收方的公钥确定双方的共享密钥;根据所述共享密钥及获取的交易加密函数、交易ID生成匿名公钥地址;将所述匿名公钥地址组装到交易中并广播至区块链网络;其中,组装有所述匿名公钥地址的交易用于触发区块链网络中的节点共识,且用于触发接收方对所述交易进行检查。

权利要求 :

1.一种区块链地址匿名处理方法,其特征在于,由区块链网络中的发送方来执行,包括:发送方获取本次交易对应的接收方的公钥R2,接收方的公钥R2由接收方自己计算得到并公布;

根据发送方的私钥及接收方的公钥确定双方的共享密钥;

根据所述共享密钥及获取的交易加密函数、交易ID生成匿名公钥地址;

将所述匿名公钥地址组装到交易中并广播至区块链网络;其中,组装有所述匿名公钥地址的交易用于触发区块链网络中的节点共识,且用于触发接收方对所述交易进行检查;

所述根据所述共享密钥及获取的交易加密函数、交易ID生成匿名公钥地址,包括:选取整笔交易所需的哈希函数,并获取交易ID;

根据所述哈希函数对所述交易ID、共享密钥及交易数据进行处理,以生成匿名公钥地址;

所述根据所述哈希函数、交易ID及共享密钥生成匿名公钥地址,包括:根据如下表达式生成匿名公钥地址,

Pubkey=R2+Hash(Hash(tx),Hash(r1r2G),n)G;

其中,Pubkey表示匿名公钥地址;R2表示接收方的公钥;Hash为密码学哈希函数;tx表示交易;r1r2G表示接收方和发送方的共享密钥;n表示交易ID;G表示椭圆曲线的基点。

2.根据权利要求1所述的方法,其特征在于,所述根据发送方的私钥及接收方的公钥确定双方的共享密钥,包括:获取接收方的公钥r2G;

根据发送方的私钥及接收方的公钥确定双方的共享密钥,得到的共享密钥为r1r2G;

其中,r1表示发送方的私钥,r2表示接收方的私钥,G表示椭圆曲线的基点。

3.一种区块链地址匿名处理方法,其特征在于,由区块链网络中的接收方来执行,包括:监听区块链网络中的交易;

根据接收方的私钥检查监听到的所述交易,并根据交易的检查结果判断发送方是否转移了资金;

所述根据接收方的私钥检查监听到的所述交易,包括:预先获取发送方的公钥R1,R1=r1G;

根据自身的私钥r2及发送方的公钥r1G得到验证地址,得到的验证地址为:Pubkey1=r2G+Hash(Hash(tx),Hash(r2r1G),n)G,Hash表示密码学哈希函数,tx表示交易的内容;r2r1G表示接收方和发送方的共享密钥,n表示交易ID,G表示椭圆曲线的基点;

将得到的验证地址与交易进行匹配,并得到匹配结果;

在接收方确定发送方转移了资金之后,还包括:根据如下表达式获取用于花费资金的匿名私钥:x=r2+Hash(Hash(tx),Hash(r2R1),n);

其中,x表示匿名私钥;r2表示接收方的私钥;Hash为密码学哈希函数;tx表示交易;R1表示发送方的公钥;n表示交易ID。

4.根据权利要求3所述的方法,其特征在于,所述根据接收方的私钥检查监听到的所述交易,并根据交易的检查结果判断发送方是否转移了资金,包括:根据接收方的私钥得到验证地址;

接收方将得到的验证地址与监听到的交易进行匹配;

若接收方的验证地址与监听到的交易相匹配,则确定发送方转移了资金。

5.一种区块链地址匿名处理系统,其特征在于,包括:确定模块,用于获取本次交易对应的接收方的公钥R2,接收方的公钥R2由接收方自己计算得到并公布,根据发送方的私钥及接收方的公钥确定双方的共享密钥;

处理模块,用于根据所述共享密钥及获取的交易加密函数、交易ID生成匿名公钥地址;

广播模块,用于将所述匿名公钥地址组装到交易中并广播至区块链网络;其中,组装有所述匿名公钥地址的交易用于触发区块链网络中的节点共识,且用于触发接收方对所述交易进行检查;

所述确定模块用于:

获取接收方的公钥;

根据发送方的私钥及接收方的公钥确定双方的共享密钥,得到的共享密钥为r1r2G;其中,r1为发送方的私钥,r2为接收方的私钥,G为椭圆曲线的基点;

所述处理模块用于:

选取整笔交易所需的哈希函数,并获取交易ID;

根据如下表达式生成匿名公钥地址,

Pubkey=R2+Hash(Hash(tx),Hash(r1r2G),n)G;

其中,Pubkey表示匿名公钥地址;R2表示接收方的公钥;Hash为密码学哈希函数;tx表示交易;r1r2G表示接收方和发送方的共享密钥;n表示交易ID。

6.一种区块链地址匿名处理系统,其特征在于,包括:监听模块,用于监听区块链网络中的交易;

检查模块,用于根据接收方的私钥检查监听到的所述交易,并根据交易的检查结果判断发送方是否转移了资金,所述检查模块还用于:

预先获取发送方的公钥R1,R1=r1G;

根据自身的私钥r2及发送方的公钥r1G得到验证地址,得到的验证地址为:Pubkey1=r2G+Hash(Hash(tx),Hash(r2r1G),n)G,Hash表示密码学哈希函数,tx表示交易的内容;r2r1G表示接收方和发送方的共享密钥,n表示交易ID,G表示椭圆曲线的基点;

将得到的验证地址与交易进行匹配,并得到匹配结果;

所述检查模块用于:

根据接收方的私钥得到验证地址;

接收方将得到的验证地址与监听到的交易进行匹配;

若接收方的验证地址与监听到的交易相匹配,则确定发送方转移了资金;

所述系统还包括:

获取模块,用于根据如下表达式获取用于花费资金的匿名私钥:x=r2+Hash(Hash(tx),Hash(r2R1),n);

其中,x表示匿名私钥;r2表示接收方的私钥;Hash为密码学哈希函数;tx表示交易;R1表示发送方的公钥;n表示交易ID。

7.一种终端,其特征在于,包括:

存储器;

处理器;以及

计算机程序;

其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求1‑2任一项所述的方法。

8.一种终端,其特征在于,包括:

存储器;

处理器;以及

计算机程序;

其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求3‑4任一项所述的方法。

9.一种计算机可读存储介质,其特征在于,其上存储有计算机程序;所述计算机程序被处理器执行以实现如权利要求1‑2任一项所述的方法。

10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序;所述计算机程序被处理器执行以实现如权利要求3‑4任一项所述的方法。

说明书 :

区块链地址匿名处理方法及系统、终端、存储介质

技术领域

[0001] 本申请涉及区块链隐私处理技术,尤其是涉及一种区块链地址匿名处理方法及系统、终端、存储介质。

背景技术

[0002] 区块链技术的核心特征是“去中心化”和“去信任化”,作为分布式总账技术、智能合约基础平台、分布式新型计算范式,可以有效构建可编程货币、可编程金融和可编程社会,势必将对金融及其他领域带来深远影响。
[0003] 目前,区块链技术面临最大的两个挑战是隐私和性能,往往这两个挑战难以同时解决;大多数情况下是通过损失性能来换取隐私。相关技术中,通常基于零知识证明(Zero‑knowledge proof)来实现隐私保护。然而,由于零知识证明生成证明时间较长,对硬件要求较高,导致性能损失较严重。

发明内容

[0004] 本申请实施例中提供一种区块链地址匿名处理方法及系统、终端、存储介质,用于克服相关技术中由于零知识证明生成证明时间较长,对硬件要求较高,导致性能损失较严重的问题。
[0005] 本申请第一方面实施例提供一种区块链地址匿名处理方法,由区块链网络中的发送方来执行,包括:
[0006] 根据发送方的私钥及接收方的公钥确定双方的共享密钥;
[0007] 根据所述共享密钥及获取的交易加密函数、交易ID生成匿名公钥地址;
[0008] 将所述匿名公钥地址组装到交易中并广播至区块链网络;其中,组装有所述匿名公钥地址的交易用于触发区块链网络中的节点共识,且用于触发接收方对所述交易进行检查。
[0009] 在其中一种可能的实现方式中,所述根据发送方的私钥及接收方的公钥确定双方的共享密钥,包括:
[0010] 获取接收方的公钥r2G;
[0011] 根据发送方的私钥及接收方的公钥确定双方的共享密钥,得到的共享密钥为r1r2G;
[0012] 其中,r1表示发送方的私钥,r2表示接收方的私钥,G表示椭圆曲线的基点。
[0013] 在其中一种可能的实现方式中,所述根据所述共享密钥及获取的交易加密函数、交易ID生成匿名公钥地址,包括:
[0014] 选取整笔交易所需的哈希函数,并获取交易ID;
[0015] 根据所述哈希函数对所述交易ID、共享密钥及交易数据进行处理,以生成匿名公钥地址。
[0016] 在其中一种可能的实现方式中,所述根据所述哈希函数、交易ID及共享密钥生成匿名公钥地址,包括:
[0017] 根据如下表达式生成匿名公钥地址,
[0018] Pubkey=R2+Hash(Hash(tx),Hash(r1r2G),0)G;
[0019] 其中,Pubkey表示匿名公钥地址;R2表示接收方的公钥;Hash为密码学哈希函数;tx表示交易;r1r2G表示接收方和发送方的共享密钥;0表示交易ID;G表示椭圆曲线的基点。
[0020] 本申请第二方面实施例提供一种区块链地址匿名处理方法,由区块链网络中的接收方来执行,包括:
[0021] 监听区块链网络中的交易;
[0022] 根据接收方的私钥检查监听到的所述交易,并根据交易的检查结果判断发送方是否转移了资金。
[0023] 在其中一种可能的实现方式中,所述根据接收方的私钥检查监听到的所述交易,并根据交易的检查结果判断发送方是否转移了资金,包括:
[0024] 根据接收方的私钥得到验证地址;
[0025] 接收方将得到的验证地址与监听到的交易进行匹配;
[0026] 若接收方的验证地址与监听到的交易相匹配,则确定发送方转移了资金。
[0027] 在其中一种可能的实现方式中,在接收方确定发送方转移了资金之后,还包括:
[0028] 根据如下表达式获取用于所述花费资金的匿名私钥:
[0029] x=r2+Hash(Hash(tx),Hash(r2R1),0);
[0030] 其中,x表示匿名私钥;r2表示接收方的私钥;Hash为密码学哈希函数;tx表示交易;R1表示发送方的公钥;0表示交易ID。
[0031] 本申请第三方面实施例提供一种区块链地址匿名处理系统,包括:
[0032] 确定模块,用于根据发送方的私钥及接收方的公钥确定双方的共享密钥;
[0033] 处理模块,用于根据所述共享密钥及获取的交易加密函数、交易ID生成匿名公钥地址;
[0034] 广播模块,用于将所述匿名公钥地址组装到交易中并广播至区块链网络;其中,组装有所述匿名公钥地址的交易用于触发区块链网络中的节点共识,且用于触发接收方对所述交易进行检查。
[0035] 在其中一种可能的实现方式中,所述确定模块用于:
[0036] 获取接收方的公钥;
[0037] 根据发送方的私钥及接收方的公钥确定双方的共享密钥,得到的共享密钥为r1r2G;其中,r1为发送方的私钥,r2为接收方的私钥,G为椭圆曲线的基点;
[0038] 所述处理模块用于:
[0039] 选取整笔交易所需的哈希函数,并获取交易ID;
[0040] 根据如下表达式生成匿名公钥地址,
[0041] Pubkey=R2+Hash(Hash(tx),Hash(r1r2G),0)G;
[0042] 其中,Pubkey表示匿名公钥地址;R2表示接收方的公钥;Hash为密码学哈希函数;tx表示交易;r1r2G表示接收方和发送方的共享密钥;0表示交易ID。
[0043] 本申请第四方面实施例提供一种区块链地址匿名处理系统,其特征在于,包括:
[0044] 监听模块,用于监听区块链网络中的交易;
[0045] 检查模块,用于根据接收方的私钥检查监听到的所述交易,并根据交易的检查结果判断发送方是否转移了资金。
[0046] 在其中一种可能的实现方式中,所述检查模块用于:
[0047] 根据接收方的私钥得到验证地址;
[0048] 接收方将得到的验证地址与监听到的交易进行匹配;
[0049] 若接收方的验证地址与监听到的交易相匹配,则确定发送方转移了资金;
[0050] 所述系统还包括:
[0051] 获取模块,用于根据如下表达式获取用于所述花费资金的匿名私钥:
[0052] x=r2+Hash(Hash(tx),Hash(r2R1),0);
[0053] 其中,x表示匿名私钥;r2表示接收方的私钥;Hash为密码学哈希函数;tx表示交易;R1表示发送方的公钥;0表示交易ID。
[0054] 本申请第五方面实施例提供一种终端,包括:
[0055] 存储器;
[0056] 处理器;以及
[0057] 计算机程序;
[0058] 其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如前述与发送方相应的方法。
[0059] 本申请第六方面实施例提供一种终端,包括:
[0060] 存储器;
[0061] 处理器;以及
[0062] 计算机程序;
[0063] 其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如前述与接收方相应的方法。
[0064] 本申请第七方面实施例提供一种计算机可读存储介质,其上存储有计算机程序;所述计算机程序被处理器执行以实现如前述与发送方相应的方法。
[0065] 本申请第八方面实施例提供一种计算机可读存储介质,其上存储有计算机程序;所述计算机程序被处理器执行以实现如前述与接收方相应的方法。
[0066] 本申请实施例提供的区块链地址匿名处理方法及系统、终端、存储介质,通过发送方为接收方建立匿名公钥地址,匿名公钥地址中具有经加密的且根据发送方私钥及接收方公钥建立的共享密钥信息,再将该匿名公钥地址组装到交易中进行公布,如此,共享密钥能够有效防止非交易方关联出接收方与交易方的关系,整个区块链网络中只有交易的发起方和接收方知道具体的匿名公钥地址,区块链网络中的非交易方在共识过程中无法知道匿名公钥地址的具体信息,使得用户的隐私得到充分保护;并且,在上述过程中,运算较简单,对硬件要求较低,运算过程效率损失较小,性能损失较小。

附图说明

[0067] 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0068] 图1为一示例性实施例提供的方法的流程示意图;
[0069] 图2为另一示例性实施例提供的方法的流程示意图;
[0070] 图3为一示例性实施例中区块链网络的结构示意图;
[0071] 图4为一示例性实施例提供的交易的整体流程示意图;
[0072] 图5为一示例性实施例提供的系统的结构框图;
[0073] 图6为另一示例性实施例提供的系统的结构框图。

具体实施方式

[0074] 为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0075] 相关技术中,区块链技术在提高效率、降低成本、提高数据安全性的同时,也面临严重的隐私泄露问题;特别是在金融场景下,隐私保护需求非常高。地址匿名性作为隐私保护的一项重要措施,在区块链隐私保护过程中起着至关重要的作用,但是它存在着很多挑战:一方面,地址间不被相互关联,比如比特币地址匿名性,虽然解决了地址匿名的问题,但是仍然能够通过关联的交易推算出发送方和接收方之间的关系,从而暴露隐私;另一方面,方案的性能问题,例如zkSNARK(Zero‑Knowledge Succinct Non‑Interactive Argument ofKnowledge)基于零知识证明的隐私保护方案,虽然解决地址的匿名性问题,它生成证明时间特别长,对硬件要求也比较高,普通计算机很难满足要求。
[0076] 为了克服相关技术中的上述问题,本实施例提供一种区块链地址匿名处理方法,提出了匿名公钥地址,在整个区块链网络中只有交易的发起方和接收方知道具体的匿名公钥地址,而区块链网络中的节点在共识过程中不会知道匿名公钥地址信息,使得用户的隐私得到充分保护;并且,在上述处理过程中,运算较简单,对硬件要求较低,运算过程效率损失较小,性能损失较小。
[0077] 下面结合附图对本实施例提供的区块链地址匿名处理方法的功能及实现过程进行举例说明。
[0078] 由区块链网络中的发送方执行的方法,如图1所示,可包括:
[0079] S101、根据发送方的私钥及接收方的公钥确定双方的共享密钥;
[0080] S102、根据共享密钥及获取的交易加密函数、交易ID生成匿名公钥地址;
[0081] S103、将匿名公钥地址组装到交易中并广播至区块链网络;其中,组装有匿名公钥地址的交易用于触发区块链网络中的节点共识,且用于触发接收方对交易进行检查。
[0082] 在步骤S101中,发送方可先获取本次交易对应的接收方Bob的公钥R2。接收方的公钥R2需由接收方自己计算得到并公布;具体地,接收方可根据其私钥r2且利用椭圆曲线加密算法得到公钥R2,R2=r2G,G为椭圆曲线的基点。
[0083] 发送方Alice获取接收方的公钥R2后,则可根据发送方的私钥及接收方的公钥确定创建一次性地址也即本次交易的匿名公钥地址所需要的共享密钥,该共享密钥为r1r2G。
[0084] 在步骤S102中,发送方为了方便创建一次性地址,需要用到整笔交易的哈希函数,哈希函数用于对相应的内容进行哈希加密处理。
[0085] 交易的结构如下:
[0086] {source_address,nonce,fee_limit,gas_price,operation,priv,signature};
[0087] 其中,source_address:表示交易的发起方的账号地址;
[0088] nonce表示交易序号,必须等于发起方账号的nonce+1;在具体实现时,可以通过查询账号返回的结果中得到发起方账号的nonce;
[0089] fee_limit表示交易花费的手续费;
[0090] gas_price表示系统的最低price(即价格);
[0091] operation表示操作列表,即本交易的有效负载,也即本交易主要内容;
[0092] priv表示发起方账号的权限信息;
[0093] signature表示创建者的签名。
[0094] 接收方需预先选取本次交易所需的所有哈希函数且还需获取交易ID也即交易序号;继而,根据哈希函数对交易ID、共享密钥、交易数据等内容进行处理,以生成匿名公钥地址。其中,对于不同的内容,所选取的哈希函数可以相同或不同,具体可根据实际需要来设置。
[0095] 具体地,接收方可根据如下表达式生成匿名公钥地址,
[0096] Pubkey=R2+Hash(Hash(tx),Hash(r1r2G),0)G;
[0097] 其中,Pubkey表示匿名公钥地址;R2表示接收方的公钥;Hash表示密码学哈希函*数,定义为:{0,1}→Fq;tx表示交易的内容;r1r2G表示接收方和发送方的共享密钥;0表示交易ID;G表示椭圆曲线的基点。另,tx表示交易的内容具体可以为前述交易的结构,但是此时由于匿名公钥地址Pubkey还未组装至交易,交易结构的operation中与匿名公钥地址Pubkey对应的位置默认为空;也就是说,在初始状态时,匿名公钥地址Pubkey未组装至交易,交易结构的operation中与匿名公钥地址Pubkey对应的位置默认为空;在将匿名公钥地址Pubkey组装至交易时,将匿名公钥地址Pubkey填入operation中与匿名公钥地址Pubkey对应的位置。
[0098] 在上述表达式中,R2表示接收方所有权;Hash(tx)使得本次交易的接收地址全网唯一;Hash(r1r2G)可作为能够有效防止其它方关联地址的重要参数;0表示本次交易输出的ID,与相应的哈希函数配合使用,进一步使得本次交易的接收地址全网唯一。
[0099] 在步骤S103中,在接收方生成匿名公钥地址后,将匿名公钥地址组装到交易中,具体可将匿名公钥地址放入到交易的结构中,例如,放到交易结构的operation中,形成组装有匿名公钥地址的交易;将组装有匿名公钥地址的交易广播至区块链网络中。
[0100] 被广播的交易可用于触发区块链网络中的节点共识处理,并生成区块,实现区块链网络中的数据更新;其中,共识处理可采用本领域的常规手段,本实施例此处不再赘述。被广播的交易还用于触发接收方进行检查,以确认资金是否转移。
[0101] 由区块链网络中接收方执行的方法,如图2所示,可包括:
[0102] S201、监听区块链网络中的交易;
[0103] S202、根据接收方的私钥检查监听到的交易;
[0104] S203、根据交易的检查结果判断发送方是否转移了资金。
[0105] 在未确认已收到资金时,接收方将一直监听区块链网络中的所有交易。在监听到交易时,可对监听到的交易进行解析。并根据自身的私钥对监听到的交易进行检查验证,以确认自己是否为本次交易的真实接收方,也即确认本次交易中的资金是否转移给自己的。
[0106] 具体地,步骤S202可包括:
[0107] 预先获取发送方的公钥R1,R1=r1G;
[0108] 根据自身的私钥r2及发送方的公钥r1G得到验证地址,得到的验证地址可为:Pubkey1=r2G+Hash(Hash(tx),Hash(r2r1G),0)G;
[0109] 将得到的验证地址与交易进行匹配,并得到匹配结果。
[0110] 在步骤S203中,若得到的匹配结构为接收方的验证地址与交易匹配,则确定发送方转移了资金,也即接收方确认自身为本次交易的真实接收方;
[0111] 若得到的匹配结构为接收方的验证地址与交易不匹配,则返回步骤S201,直至其验证地址能够与监听到的交易相匹配。
[0112] 其中,由于r2G=R2,r2r1G=r2R1=r1r2G=r1R2,对于交易中的接收方与发送方而言,发送方建立的匿名公钥地址与接收方确定的验证地址相等,也即Pubkey=Pubkey1,因此,交易的接收方确定的验证地址能够与交易的发送方公布的交易相匹配。
[0113] 相应地,若接收方确定的验证地址与监听到的交易不匹配,则接收方确定的验证地址与该交易中的匿名公钥地址不相等,也即,接收方并非本次交易中的真实接收方;接收方继续监听区块链网络中的交易并检查,直至其验证地址能够与交易相匹配,确认与其对应的发送方转移了资金。
[0114] 可选地,在接收方确定发送方转移了资金之后,还包括:
[0115] 根据如下表达式获取用于花费资金的匿名私钥:
[0116] x=r2+Hash(Hash(tx),Hash(r2R1),0);
[0117] 其中,x表示匿名私钥;r2表示接收方的私钥;Hash为密码学哈希函数;tx表示交易;R1表示发送方的公钥;0表示交易ID。
[0118] 在确认自己收到资金后,接收方可随时根据自身私钥来获取匿名私钥,并通过匿名私钥花费该笔资金。
[0119] 下面结合图3及图4对完整的交易过程进行举例说明。其中,区块链网络的结构图如图3所示,区块链网络具有节点A、B、C、D、E;在本次交易中,节点A为本次交易的发送方Alice,节点C为本次交易的接收方Bob。
[0120] 如图4所示,本次交易过程可包括如下步骤:
[0121] 发送方Alice获取接收方Bob地址R2;
[0122] Alice选取整笔交易所用的hash、生成双方的共享秘钥、获取交易ID,且为Bob生成匿名公钥地址;
[0123] Alice使用匿名公钥地址Pubkey组装到交易中,广播给区块链网络;
[0124] 区块链网络节点B、C、D等共识完成,然后生成区块;
[0125] Bob监听网络中所有交易;
[0126] Bob通过私钥r2检查交易;
[0127] Bob通过自己的私钥r2花费该笔资产。
[0128] 在上述交易过程中,只有交易的发起方和接收方知道具体的匿名公钥地址,其它节点也即节点B、E、D无法对交易中的匿名公钥地址进行解密,也就是说,节点B、E、D等在共识的过程中不会获得Bob的匿名公钥地址的具体信息,其它节点无法从交易中关联出接收方与发送方之间的关系,使得用户的隐私能够得到充分的保护。此外,也没有更改接收方私钥标识匿名性地址所有权;且运算较简单,对硬件要求较低,运算过程效率损失较小,对计算机的性能影响较小,也即性能损失较小。
[0129] 在实际应用中,上述方法可以通过计算机程序实现,例如,应用软件等;或者,该方法也可以实现为存储有相关计算机程序的介质,例如,U盘、云盘等;再或者,该方法还可以通过集成或安装有相关计算机程序的实体装置实现,例如,芯片、智能设备等。
[0130] 本实施例所提供的系统,其为与前述相应方法实施例对应的产品侧实施例,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,本实施例部分未提及之处,可参考前述方法实施例中相应内容。
[0131] 本实施例提供一种区块链地址匿名处理系统,与前述实施例中由发送方执行的步骤相对应,如图5所示,该系统包括:
[0132] 确定模块11,用于根据发送方的私钥及接收方的公钥确定双方的共享密钥;
[0133] 处理模块12,用于根据共享密钥及获取的交易加密函数、交易ID生成匿名公钥地址;
[0134] 广播模块13,用于将匿名公钥地址组装到交易中并广播至区块链网络;其中,组装有匿名公钥地址的交易用于触发区块链网络中的节点共识,且用于触发接收方对交易进行检查。
[0135] 在其中一种可能的实现方式中,确定模块11用于:
[0136] 获取接收方的公钥;
[0137] 根据发送方的私钥及接收方的公钥确定双方的共享密钥,得到的共享密钥为r1r2G;其中,r1为发送方的私钥,r2为接收方的私钥,G为椭圆曲线的基点。
[0138] 在其中一种可能的实现方式中,处理模块12用于:
[0139] 选取整笔交易所需的哈希函数,并获取交易ID;
[0140] 根据如下表达式生成匿名公钥地址,
[0141] Pubkey=R2+Hash(Hash(tx),Hash(r1r2G),0)G;
[0142] 其中,Pubkey表示匿名公钥地址;R2表示接收方的公钥;Hash为密码学哈希函数;tx表示交易;r1r2G表示接收方和发送方的共享密钥;0表示交易ID。
[0143] 本实施例提供一种区块链地址匿名处理系统,与前述实施例中由接收方执行的步骤相对应,如图6所示,该系统包括:
[0144] 监听模块21,用于监听区块链网络中的交易;
[0145] 检查模块22,用于根据接收方的私钥检查监听到的交易,并根据交易的检查结果判断发送方是否转移了资金。
[0146] 在其中一种可能的实现方式中,检查模块22用于:
[0147] 根据接收方的私钥得到验证地址;
[0148] 接收方将得到的验证地址与监听到的交易进行匹配;
[0149] 若接收方的验证地址与监听到的交易相匹配,则确定发送方转移了资金。
[0150] 在其中一种可能的实现方式中,系统还包括:
[0151] 获取模块23,用于根据如下表达式获取用于花费资金的匿名私钥:
[0152] x=r2+Hash(Hash(tx),Hash(r2R1),0);
[0153] 其中,x表示匿名私钥;r2表示接收方的私钥;Hash为密码学哈希函数;tx表示交易;R1表示发送方的公钥;0表示交易ID。
[0154] 本实施例提供一种终端设备,包括:
[0155] 存储器;
[0156] 处理器;以及
[0157] 计算机程序;
[0158] 其中,计算机程序存储在存储器中,并被配置为由处理器执行以实现相应的方法。
[0159] 终端设备中计算机程序的具体实现可参见方法实施例,在此不再赘述。另外,本实施例中的终端设备既可有与发送方执行的方法相对应的计算机程序,也可有与接收方执行的方法相对应的计算机程序;或者,本实施例中的终端设备有与发送方执行的方法相对应的计算机程序;又或者,本实施例中的终端设备有与接收方执行的方法相对应的计算机程序。
[0160] 存储器用于存储计算机程序,处理器在接收到执行指令后,执行计算机程序,前述相应实施例揭示的流过程定义的装置所执行的方法可以应用于处理器中,或者由处理器实现。
[0161] 存储器可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non‑volatile memory),例如至少一个磁盘存储器。存储器可通过至少一个通信接口(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
[0162] 处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,实施例一揭示的方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的相应方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0163] 结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0164] 本实施例提供一种计算机可读存储介质,其上存储有计算机程序;计算机程序被处理器执行以相应的方法。其具体实现可参见方法实施例,在此不再赘述。其中,对于交易中的发送方而言,存储的计算机程序与发送方执行的方法相对应;对于交易中的接收方而言,存储的计算机程序与接收方执行的方法相对应。当然,在一些示例中,区块链网络中的节点在其中一交易中可作为发送方,在另一交易中也可作为接收方,相应地,该节点的存储介质存储有与发送方执行的方法相对应的计算机程序、以及与接收方执行的方法相对应的计算机程序。
[0165] 需要说明的是:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。在这里示出和描述的所有示例中,除非另有规定,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
[0166] 附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个单元、程序段或代码的一部分,单元、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0167] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0168] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程交易设备的处理器以产生一个机器,使得通过计算机或其他可编程交易设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0169] 这些计算机程序指令也可存储在能引导计算机或其他可编程交易设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0170] 这些计算机程序指令也可装载到计算机或其他可编程交易设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0171] 尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
[0172] 显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。