一种基于零知识证明的交易方法及装置转让专利

申请号 : CN201811505277.4

文献号 : CN109615376B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 阮安邦魏明马飞吴扬飞郭桂生

申请人 : 北京八分量信息科技有限公司

摘要 :

本发明提供了一种基于零知识证明的交易方法及装置,该基于零知识证明的交易方法包括:区块链上的第一节点接收到交易发起方发送的交易转账请求时,为所述交易转账请求生成对应的隐私交易地址;在所述区块链上广播所述隐私交易地址;所述交易发起方与所述交易接收方,利用所述隐私交易地址进行交易。本发明提供的方案能够降低交易过程中信息泄露的风险。

权利要求 :

1.一种基于零知识证明的交易方法,其特征在于,包括:区块链上的第一节点接收到交易发起方发送的交易转账请求时,为所述交易转账请求生成对应的隐私交易地址;

在所述区块链上广播所述隐私交易地址;

所述交易发起方与交易接收方,利用所述隐私交易地址进行交易;

在所述接收到交易发起方发送的交易转账请求之后,在所述为所述交易转账请求生成对应的隐私交易地址之前,进一步包括:解析所述交易转账请求相关的交易信息;

根据所述交易信息,为所述交易发起方计算第一交易集合,利用交易接收方的一个公钥加密所述第一交易集合;

将加密后的所述第一交易集合发布到所在区块链上;

在接收到所述交易接收方确定所述第一交易集合为真后,执行所述为所述交易转账请求生成对应的隐私交易地址;

进一步包括:为所述交易发起方设置第一同态加密函数,为所述交易接收方设置第一同态解密函数,其中,所述第一同态加密函数与所述第一同态解密函数,满足下述第一加密-解密关系式;

第一加密-解密关系式:

(C1+C2+…+Cn)×r=D1(E1(r×C1)+E1(r×C2)+…+E1(r×Cn))其中,C1,C2,…,Cn表征各个交易细节;r表征所述区块链上一个共识参数;D1()表征所述第一同态解密函数;E1()表征所述第一同态加密函数;

所述根据所述交易信息,为所述交易发起方计算第一交易集合,包括:根据下述发起交易计算公式,计算所述交易发起方的第一交易集合;

发起交易计算公式:

T={SignA,Ua,Ub,E1(r×C1),E1(r×C2),…,E1(r×Cn),hash(C1,C2,…Cn)}其中,T表征所述第一交易集合;SignA表征所述交易发起方的签名;Ua表征所述交易发起方的身份标识;Ub表征所述交易接收方的身份标识;r表征所述区块链上一个共识参数;E1()表征所述第一同态加密函数;C1,C2,…,Cn表征各个交易细节;hash()表征哈希算法。

2.根据权利要求1所述的基于零知识证明的交易方法,其特征在于,进一步包括:为每一个区块链注册用户分配两个公钥和私钥;

所述交易发起方和所述交易接收方均为所述区块链注册用户;

所述为所述交易转账请求生成对应的隐私交易地址,包括:利用下述隐私交易地址计算公式,生成隐私交易地址;

交易地址计算公式:

Sadd=sha256(M×r)×Q+N

其中,所述Sadd表征所述隐私交易地址;所述sha256()表征256位的哈希算法;所述M和N表征所述交易接收方的两个公钥;所述r表征所述区块链上一个共识参数;所述Q表征所述隐私交易地址的公钥;所述N表征所述交易接收方的公钥;

所述利用所述隐私交易地址进行交易,包括:利用下述随机数计算公式,为所述交易发起方计算随机数;

随机数计算公式:

R=r×Q

其中,所述R表征所述交易发起方对应的随机数;所述r表征所述区块链上一个共识参数;所述Q表征所述隐私交易地址的公钥;

利用所述隐私交易地址、所述交易发起方对应的随机数以及交易金额,组成广播数组Ub=[Sadd,R,W],并广播所述广播数组,其中,Ub表征所述广播数组;所述W表征交易金额;

基于所述广播数组,进行资金转账交易。

3.根据权利要求2所述的基于零知识证明的交易方法,其特征在于,所述基于所述广播数组,进行资金转账交易,包括:区块链上的第二节点接收到所述交易接收方支配所述隐私交易地址上的资金时,利用下述隐私交易地址查找公式,计算待查找隐私交易地址;

P=sha256(m×R)×Q′+N

其中,所述P表征待查找隐私交易地址;所述sha256()表征256位的哈希算法;所述m表征与公钥M对应的私钥;所述R表征所述交易发起方对应的随机数;所述Q′表征目标隐私交易地址的公钥;所述N表征所述交易接收方的公钥;

当所述P与目标广播数组中的目标隐私交易地址绝对相同时,锁定所述目标隐私交易地址;

利用下述私钥恢复公式,计算所述目标隐私交易地址的私钥;

私钥恢复公式:

Pk=sha256(m×R)+n

其中,所述Pk表征所述目标隐私交易地址的私钥;所述sha256()表征256位的哈希算法;所述m表征与公钥M对应的私钥;所述R表征所述交易发起方对应的随机数;所述n表征与公钥N对应的私钥;

利用所述目标隐私交易地址的私钥和所述交易接收方的签名,支配所述目标隐私交易地址上的资金。

4.根据权利要求1所述的基于零知识证明的交易方法,其特征在于,所述交易接收方确定所述第一交易集合为真,包括:在所述区块链上的第二节点上,所述交易接收方利用自身私钥解密所述第一交易集合;

利用所述第一同态解密函数解析所述第一交易集合中的各个所述交易细节;

在解析出的各个所述交易细节满足所述交易接收方预设的第一交易限制条件时,确定所述第一交易集合为真。

5.根据权利要求1所述的基于零知识证明的交易方法,其特征在于,进一步包括:为所述交易发起方设置第二同态解密函数,为所述交易接收方设置第二同态加密函数,其中,所述第二同态加密函数与所述第二同态解密函数,满足下述第二加密-解密关系式;

第二加密-解密关系式:

(G1+G2+…+Gm)×r=D2(E2(r×G1)+E2(r×G2)+…+E2(r×Gm))其中,G1,G2,…,Gm表征所述交易接收方发布的售卖虚拟产品的各个产品细节;r表征所述区块链上一个共识参数;D2()表征所述第二同态解密函数;E2()表征所述第二同态加密函数;

在所述接收交易发起方发送的交易转账请求之前,进一步包括:区块链上的第二节点根据所述交易接收方发布的虚拟产品的各个产品细节,利用下述产品计算公式,计算第二交易集合;

产品计算公式:

M={SignB,Ub,E2(r×G1),E2(r×G2),…,E2(r×Gm),hash(G1,G2,…Gm)}其中,M表征所述第二交易集合;SignB表征所述交易接收方的签名;Ub表征所述交易接收方的身份标识;r表征所述区块链上一个共识参数;E2()表征所述第二同态加密函数;G1,G2,…Gm表征虚拟产品的各个产品细节;hash()表征哈希算法;

所述第二节点将所述第二交易集合发布到所在区块链上;

所述第一节点利用所述第二同态解密函数解析所述第二交易集合中的虚拟产品的各个产品细节;

所述第一节点在解析出的所述虚拟产品的各个产品细节满足所述交易发起方预设的第二交易限制条件时,执行所述接收到交易发起方发送的交易转账请求。

6.根据权利要求5所述的基于零知识证明的交易方法,其特征在于,进一步包括:

根据所述区块链的共识机制,构建下述映射关系;

映射关系:

username→{pubkey,flag,other}其中,所述username表征注册用户的用户名;所述pubkey表征所述注册用户的一个公钥;

所述flag表征所述注册用户的特征信息;所述other表征所述注册用户的可选特征信息;

所述交易发起方利用自身的用户名登录所述第一节点,所述交易接收方利用自身的用户名登录所述第二节点。

7.一种基于零知识证明的交易装置,其特征在于,应用于区块链,包括:隐私交易地址生成单元和交易单元,其中,所述隐私交易地址生成单元,用于接收到交易发起方发送的交易转账请求时,为所述交易转账请求生成对应的隐私交易地址;

所述交易单元,用于在所述区块链上广播所述隐私交易地址,所述交易发起方与交易接收方,利用所述隐私交易地址进行交易;

进一步包括:第一交易集合计算单元和判定单元;

所述第一交易集合计算单元,用于解析所述交易转账请求相关的交易信息,根据所述交易信息,为所述交易发起方计算第一交易集合,利用交易接收方的一个公钥加密所述第一交易集合,将加密后的所述第一交易集合发布到所在区块链上;

所述隐私交易地址生成单元,用于在所述判定单元确定所述第一交易集合为真后,执行所述为所述交易转账请求生成对应的隐私交易地址;

进一步包括:同态函数设置单元,其中,

所述同态函数设置单元,用于为所述交易发起方设置第一同态加密函数,为所述交易接收方设置第一同态解密函数,其中,所述第一同态加密函数与所述第一同态解密函数,满足下述第一加密-解密关系式;

第一加密-解密关系式:

(C1+C2+…+Cn)×r=D1(E1(r×C1)+E1(r×C2)+…+E1(r×Cn))其中,C1,C2,…,Cn表征各个交易细节;r表征所述区块链上一个共识参数;D1()表征所述第一同态解密函数;E1()表征所述第一同态加密函数;

所述第一交易集合计算单元,用于根据所述交易信息,利用下述发起交易计算公式,为所述交易发起方计算第一交易集合;

发起交易计算公式:

T={SignA,Ua,Ub,E1(r×C1),E1(r×C2),…,E1(r×Cn),hash(C1,C2,…Cn)}其中,T表征所述第一交易集合;SignA表征所述交易发起方的签名;Ua表征所述交易发起方的身份标识;Ub表征所述交易接收方的身份标识;r表征所述区块链上一个共识参数;E1()表征所述同态函数设置单元设置的第一同态加密函数;C1,C2,…,Cn表征各个交易细节;

hash()表征哈希算法;

所述判定单元,用于在接收到所述交易接收方的触发时,利用所述交易接收方的自身私钥解密所述第一交易集合;利用所述第一同态解密函数解析所述第一交易集合中的各个所述交易细节;在解析出的各个所述交易细节满足所述交易接收方预设的第一交易限制条件时,确定所述第一交易集合为真。

8.根据权利要求7所述的装置,其特征在于,进一步包括:公私钥分配单元,其中,所述公私钥分配单元,用于为每一个区块链注册用户分配两个公钥和私钥;

所述交易发起方和所述交易接收方均为所述区块链注册用户;

所述隐私交易地址生成单元,用于利用下述隐私交易地址计算公式,生成隐私交易地址;

交易地址计算公式:

Sadd=sha256(M×r)×Q+N

其中,所述Sadd表征所述隐私交易地址;所述sha256()表征256位的哈希算法;所述M和N表征所述交易接收方的两个公钥;所述r表征所述区块链上一个共识参数;所述Q表征所述隐私交易地址的公钥;所述N表征所述交易接收方的公钥;

所述交易单元,进一步用于利用下述随机数计算公式,为所述交易发起方计算随机数;

随机数计算公式:

R=r×Q

其中,所述R表征所述交易发起方对应的随机数;所述r表征所述区块链上一个共识参数;所述Q表征所述隐私交易地址的公钥;

利用所述隐私交易地址、所述交易发起方对应的随机数以及交易金额,组成广播数组Ub=[Sadd,R,W],并广播所述广播数组,其中,Ub表征所述广播数组;所述W表征交易金额;

接收到所述交易接收方支配所述隐私交易地址上的资金时,利用下述隐私交易地址查找公式,计算待查找隐私交易地址;

P=sha256(m×R)×Q′+N

其中,所述P表征待查找隐私交易地址;所述sha256()表征256位的哈希算法;所述m表征与公钥M对应的私钥;所述R表征所述交易发起方对应的随机数;所述Q′表征目标隐私交易地址的公钥;所述N表征所述交易接收方的公钥;

当所述P与目标广播数组中的目标隐私交易地址绝对相同时,锁定所述目标隐私交易地址;

利用下述私钥恢复公式,计算所述目标隐私交易地址的私钥;

私钥恢复公式:

Pk=sha256(m×R)+n

其中,所述Pk表征所述目标隐私交易地址的私钥;所述sha256()表征256位的哈希算法;所述m表征与公钥M对应的私钥;所述R表征所述交易发起方对应的随机数;所述n表征与公钥N对应的私钥;

利用所述目标隐私交易地址的私钥和所述交易接收方的签名,支配所述目标隐私交易地址上的资金。

说明书 :

一种基于零知识证明的交易方法及装置

技术领域

[0001] 本发明涉及计算机技术领域,特别涉及一种基于零知识证明的交易方法及装置。

背景技术

[0002] 由于区块链具有无法被篡改的特性,其在金融、保险等领域具有广泛的应用前景。在区块链中,任意的交易双方之间的交易都会以广播的形式公布到全链的各个节点。
[0003] 目前,基于区块链进行的交易,交易双方的基本信息、交易信息以及交易记录等采用明文形式存储到区块链的各个节点,这样会存在泄露交易双方的基本信息、交易信息以及交易记录等信息的风险。

发明内容

[0004] 本发明实施例提供了一种基于零知识证明的交易方法及装置,能够降低交易过程中信息泄露的风险。
[0005] 第一方面,本发明实施例提供了一种基于零知识证明的交易方法,包括:
[0006] 区块链上的第一节点接收到交易发起方发送的交易转账请求时,
[0007] 为所述交易转账请求生成对应的隐私交易地址;
[0008] 在所述区块链上广播所述隐私交易地址;
[0009] 所述交易发起方与所述交易接收方,利用所述隐私交易地址进行交易。
[0010] 可选地,
[0011] 在所述接收到交易发起方发送的交易转账请求之后,在所述为所述交易转账请求生成对应的隐私交易地址之前,进一步包括:
[0012] 解析所述交易转账请求相关的交易信息;
[0013] 根据所述交易信息,为所述交易发起方计算第一交易集合,利用交易接收方的一个公钥加密所述第一交易集合;
[0014] 将加密后的所述第一交易集合发布到所在区块链上;
[0015] 在接收到所述交易接收方确定所述第一交易集合为真后,执行所述为所述交易转账请求生成对应的隐私交易地址。
[0016] 可选地,
[0017] 上述基于零知识证明的交易方法进一步包括:为每一个区块链注册用户分配两个公钥和私钥;
[0018] 所述交易发起方和所述交易接收方均为所述区块链注册用户;
[0019] 所述为所述交易转账请求生成对应的隐私交易地址,包括:
[0020] 利用下述隐私交易地址计算公式,生成隐私交易地址;
[0021] 交易地址计算公式:
[0022] Sadd=sha256(M×r)×Q+N
[0023] 其中,所述Sadd表征所述隐私交易地址;所述sha256()表征256位的哈希算法;所述M和N表征所述交易接收方的两个公钥;所述r表征所述区块链上一个共识参数;所述Q表征所述隐私交易地址的公钥;所述N表征所述交易接收方的公钥;
[0024] 所述利用所述隐私交易地址进行交易,包括:利用下述随机数计算公式,为所述交易发起方计算随机数;
[0025] 随机数计算公式:
[0026] R=r×Q
[0027] 其中,所述R表征所述交易发起方对应的随机数;所述r表征所述区块链上一个共识参数;所述Q表征所述隐私交易地址的公钥;
[0028] 利用所述隐私交易地址、所述交易发起方对应的随机数以及交易金额,组成广播数组Ub=[Sadd,R,W],并广播所述广播数组,其中,Ub表征所述广播数组;所述W表征交易金额;
[0029] 基于所述广播数组,进行资金转账交易。
[0030] 可选地,
[0031] 所述基于所述广播数组,进行资金转账交易,包括:
[0032] 区块链上的第二节点接收到所述交易接收方支配所述隐私交易地址上的资金时,[0033] 利用下述隐私交易地址查找公式,计算待查找隐私交易地址;
[0034] P=sha256(m×R)×Q′+N
[0035] 其中,所述P表征待查找隐私交易地址;所述sha256()表征256位的哈希算法;所述m表征与公钥M对应的私钥;所述R表征所述交易发起方对应的随机数;所述Q′表征目标隐私交易地址的公钥;所述N表征所述交易接收方的公钥;
[0036] 当所述P与目标广播数组中的目标隐私交易地址绝对相同时,锁定所述目标隐私交易地址;
[0037] 利用下述私钥恢复公式,计算所述目标隐私交易地址的私钥;
[0038] 私钥恢复公式:
[0039] Pk=sha256(m×R)+n
[0040] 其中,所述Pk表征所述目标隐私交易地址的私钥;所述sha256()表征256位的哈希算法;所述m表征与公钥M对应的私钥;所述R表征所述交易发起方对应的随机数;所述n表征与公钥N对应的私钥;
[0041] 利用所述目标隐私交易地址的私钥和所述交易接收方的签名,支配所述目标隐私交易地址上的资金。
[0042] 可选地,
[0043] 上述基于零知识证明的交易方法进一步包括:为所述交易发起方设置第一同态加密函数,为所述交易接收方设置第一同态解密函数,其中,
[0044] 所述第一同态加密函数与所述第一同态解密函数,满足下述第一加密-解密关系式;
[0045] 第一加密-解密关系式:
[0046] (C1+C2+…+Cn)×r=D1(E1(r×C1)+E1(r×C2)+…+E1(r×Cn))
[0047] 其中,C1,C2,...,Cn表征各个交易细节;r表征所述区块链上一个共识参数;D1()表征所述第一同态解密函数;E1()表征所述第一同态加密函数;
[0048] 所述根据所述交易信息,为所述交易发起方计算第一交易集合,包括:
[0049] 根据下述发起交易计算公式,计算所述交易发起方的第一交易集合;
[0050] 发起交易计算公式:
[0051] T={SignA,Ua,Ub,E1(r×C1),E1(r×C2),...,E1(r×Cn),hash(C1,C2,...Cn)}[0052] 其中,T表征所述第一交易集合;SignA表征所述交易发起方的签名;Ua表征所述交易发起方的身份标识;Ub表征所述交易接收方的身份标识;r表征所述区块链上一个共识参数;E1()表征所述第一同态加密函数;C1,C2,...,Cn表征各个交易细节;hash()表征哈希算法。
[0053] 可选地,
[0054] 所述交易接收方确定所述第一交易集合为真,包括:
[0055] 在所述区块链上的第二节点上,所述交易接收方利用自身私钥解密所述第一交易集合;
[0056] 利用所述第一同态解密函数解析所述第一交易集合中的各个所述交易细节;
[0057] 在解析出的各个所述交易细节满足所述交易接收方预设的第一交易限制条件时,确定所述第一交易集合为真。
[0058] 可选地,
[0059] 上述基于零知识证明的交易方法进一步包括:为所述交易发起方设置第二同态解密函数,为所述交易接收方设置第二同态加密函数,其中,
[0060] 所述第二同态加密函数与所述第二同态解密函数,满足下述第二加密-解密关系式;
[0061] 第二加密-解密关系式:
[0062] (G1+G2+…+Gm)×r=D2(E2(r×G1)+E2(r×G2)+…+E2(r×Gm))
[0063] 其中,G1,G2,...,Gm表征所述交易接收方发布的售卖虚拟产品的各个产品细节;r表征所述区块链上一个共识参数;D2()表征所述第二同态解密函数;E2()表征所述第二同态加密函数;
[0064] 在所述接收交易发起方发送的交易转账请求之前,进一步包括:
[0065] 区块链上的第二节点根据所述交易接收方发布的虚拟产品的各个产品细节,利用下述产品计算公式,计算第二交易集合;
[0066] 产品计算公式:
[0067] M={SignB,Ub,E2(r×G1),E2(r×G2),...,E2(r×Gm),hash(G1,G2,...Gm)}[0068] 其中,M表征所述第二交易集合;SignB表征所述交易接收方的签名;Ub表征所述交易接收方的身份标识;r表征所述区块链上一个共识参数;E2()表征所述第二同态加密函数;G1,G2,...Gm表征虚拟产品的各个产品细节;hash()表征哈希算法;
[0069] 所述第二节点将所述第二交易集合发布到所在区块链上;
[0070] 所述第一节点利用所述第二同态解密函数解析所述第二交易集合中的虚拟产品的各个产品细节;
[0071] 所述第一节点在解析出的所述虚拟产品的各个产品细节满足所述交易发起方预设的第二交易限制条件时,执行所述接收到交易发起方发送的交易转账请求。
[0072] 可选地,
[0073] 上述基于零知识证明的交易方法进一步包括:
[0074] 根据所述区块链的共识机制,构建下述映射关系;
[0075] 映射关系:
[0076] username→{pubkey,flag,other}
[0077] 其中,所述username表征注册用户的用户名;所述pubkey表征所述注册用户的一个公钥;所述flag表征所述注册用户的特征信息;所述other表征所述注册用户的可选特征信息;
[0078] 所述交易发起方利用自身的用户名登录所述第一节点,所述交易接收方利用自身的用户名登录所述第二节点。
[0079] 第二方面,本发明实施例还提供了一种基于零知识证明的交易装置,应用于区块链,包括:隐私交易地址生成单元和交易单元,其中,
[0080] 所述隐私交易地址生成单元,用于接收到交易发起方发送的交易转账请求时,解析所述交易转账请求相关的交易信息;为所述交易转账请求生成对应的隐私交易地址;
[0081] 所述交易单元,用于在所述区块链上广播所述隐私交易地址,所述交易发起方与所述交易接收方,利用所述隐私交易地址进行交易。
[0082] 可选地,
[0083] 上述基于零知识证明的交易装置进一步包括:同态函数设置单元、第一交易集合计算单元和判定单元,其中,
[0084] 所述同态函数设置单元,用于为所述交易发起方设置第一同态加密函数,为所述交易接收方设置第一同态解密函数,其中,所述第一同态加密函数与所述第一同态解密函数,满足下述第一加密-解密关系式;
[0085] 第一加密-解密关系式:
[0086] (C1+C2+…+Cn)×r=D1(E1(r×C1)+E1(r×C2)+…+E1(r×Cn))
[0087] 其中,C1,C2,...,Cn表征各个交易细节;r表征所述区块链上一个共识参数;D1()表征所述第一同态解密函数;E1()表征所述第一同态加密函数;
[0088] 所述第一交易集合计算单元,用于根据所述交易信息,利用下述发起交易计算公式,为所述交易发起方计算第一交易集合,利用交易接收方的一个公钥加密所述第一交易集合;将加密后的所述第一交易集合发布到所在区块链上;
[0089] 发起交易计算公式:
[0090] T={SignA,Ua,Ub,E1(r×C1),E1(r×C2),...,E1(r×Cn),hash(C1,C2,...Cn)}[0091] 其中,T表征所述第一交易集合;SignA表征所述交易发起方的签名;Ua表征所述交易发起方的身份标识;Ub表征所述交易接收方的身份标识;r表征所述区块链上一个共识参数;E1()表征所述同态函数设置单元设置的第一同态加密函数;C1,C2,...,Cn表征各个交易细节;hash()表征哈希算法;
[0092] 所述判定单元,用于在接收到所述交易接收方的触发时,利用所述交易接收方的自身私钥解密所述第一交易集合;利用所述第一同态解密函数解析所述第一交易集合中的各个所述交易细节;在解析出的各个所述交易细节满足所述交易接收方预设的第一交易限制条件时,确定所述第一交易集合为真;
[0093] 所述隐私交易地址生成单元,用于在所述判定单元确定所述第一交易集合为真后,执行所述为所述交易转账请求生成对应的隐私交易地址。
[0094] 可选地,
[0095] 上述基于零知识证明的交易装置进一步包括:公私钥分配单元,其中,[0096] 所述公私钥分配单元,用于为每一个区块链注册用户分配两个公钥和私钥;
[0097] 所述交易发起方和所述交易接收方均为所述区块链注册用户;
[0098] 所述隐私交易地址生成单元,用于利用下述隐私交易地址计算公式,生成隐私交易地址;
[0099] 交易地址计算公式:
[0100] Sadd=sha256(M×r)×Q+N
[0101] 其中,所述Sadd表征所述隐私交易地址;所述sha256()表征256位的哈希算法;所述M和N表征所述交易接收方的两个公钥;所述r表征所述区块链上一个共识参数;所述Q表征所述隐私交易地址的公钥;所述N表征所述交易接收方的公钥;
[0102] 所述交易单元,进一步用于利用下述随机数计算公式,为所述交易发起方计算随机数;
[0103] 随机数计算公式:
[0104] R=r×Q
[0105] 其中,所述R表征所述交易发起方对应的随机数;所述r表征所述区块链上一个共识参数;所述Q表征所述隐私交易地址的公钥;
[0106] 利用所述隐私交易地址、所述交易发起方对应的随机数以及交易金额,组成广播数组Ub=[Sadd,R,W],并广播所述广播数组,其中,Ub表征所述广播数组;所述W表征交易金额;
[0107] 接收到所述交易接收方支配所述隐私交易地址上的资金时,
[0108] 利用下述隐私交易地址查找公式,计算待查找隐私交易地址;
[0109] P=sha256(m×R)×Q′+N
[0110] 其中,所述P表征待查找隐私交易地址;所述sha256()表征256位的哈希算法;所述m表征与公钥M对应的私钥;所述R表征所述交易发起方对应的随机数;所述Q′表征目标隐私交易地址的公钥;所述N表征所述交易接收方的公钥;
[0111] 当所述P与目标广播数组中的目标隐私交易地址绝对相同时,锁定所述目标隐私交易地址;
[0112] 利用下述私钥恢复公式,计算所述目标隐私交易地址的私钥;
[0113] 私钥恢复公式:
[0114] Pk=sha256(m×R)+n
[0115] 其中,所述Pk表征所述目标隐私交易地址的私钥;所述sha256()表征256位的哈希算法;所述m表征与公钥M对应的私钥;所述R表征所述交易发起方对应的随机数;所述n表征与公钥N对应的私钥;
[0116] 利用所述目标隐私交易地址的私钥和所述交易接收方的签名,支配所述目标隐私交易地址上的资金。
[0117] 本发明实施例提供了一种基于零知识证明的交易方法及装置,区块链上的第一节点接收到交易发起方发送的交易转账请求时,解析交易转账请求相关的交易信息;为交易转账请求生成对应的隐私交易地址;在区块链上广播隐私交易地址;交易发起方与交易接收方,利用隐私交易地址进行交易。由此可见,在进行交易过程中是通过隐私交易地址完成的,即交易发起方与交易接收方并不会被任何人恶意获知,而只有交易发起方与交易接收方才能通过该隐私交易地址进行交易,而整个交易过程中,交易发起方与交易接收方的信息可不向任何人直接公开,从而降低交易过程中信息泄露的风险。

附图说明

[0118] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0119] 图1是本发明实施例提供的一种基于零知识证明的交易方法的流程图;
[0120] 图2是本发明实施例提供的另一种基于零知识证明的交易方法的流程图;
[0121] 图3是本发明实施例提供的一种基于零知识证明的交易装置的示意图;
[0122] 图4是本发明实施例提供的另一种基于零知识证明的交易装置的示意图;
[0123] 图5是本发明实施例提供的另一种基于零知识证明的交易装置的示意图。

具体实施方式

[0124] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0125] 如图1所示,本发明实施例提供了一种基于零知识证明的交易方法,该方法可以包括以下步骤:
[0126] 步骤101:区块链上的第一节点接收到交易发起方发送的交易转账请求时,为交易转账请求生成对应的隐私交易地址;
[0127] 步骤102:在区块链上广播所述隐私交易地址;
[0128] 步骤103:交易发起方与交易接收方,利用隐私交易地址进行交易。
[0129] 其中,在本发明实施例中,定义交易发起方为转账方,交易接收方为收款方,另外,该交易接收方还可为售卖虚拟产品方。
[0130] 另外,交易接收方为通过区块链上的第一节点上的交易界面发送的交易转账请求。
[0131] 另外,该隐私交易地址为一种临时地址,在隐私交易地址废弃之后,可以对其进行释放等。
[0132] 在图1所示的实施例中,区块链上的第一节点接收到交易发起方发送的交易转账请求时,解析交易转账请求相关的交易信息;为交易转账请求生成对应的隐私交易地址;在区块链上广播隐私交易地址;交易发起方与交易接收方,利用隐私交易地址进行交易。由此可见,在进行交易过程中是通过隐私交易地址完成的,即交易发起方与交易接收方并不会被任何人恶意获知,而只有交易发起方与交易接收方才能通过该隐私交易地址进行交易,而整个交易过程中,交易发起方与交易接收方的信息可不向任何人直接公开,从而降低交易过程中信息泄露的风险。
[0133] 在本发明另一实施例中,在上述接收到交易发起方发送的交易转账请求之后,在为交易转账请求生成对应的隐私交易地址之前,进一步包括:解析交易转账请求相关的交易信息;根据交易信息,为交易发起方计算第一交易集合,利用交易接收方的一个公钥加密第一交易集合;将加密后的第一交易集合发布到所在区块链上;在接收到交易接收方确定第一交易集合为真后,执行所述为交易转账请求生成对应的隐私交易地址。
[0134] 通过上述根据交易信息,为交易发起方计算第一交易集合,实现了对交易发起方的交易信息如交易发起方的基本信息、信用等级、付款账号等加密,交易接收方通过验证第一交易集合为真来确定交易发起方信息满足其要求,即在对交易发起方的交易信息加密的情况,交易接收方仍然能对交易发起方的交易信息进行验证,保证交易的可靠性和准确性。
[0135] 其中,为了实现对计算第一交易集合,即对交易信息进行加密,上述方法可进一步包括:为交易发起方设置第一同态加密函数,为交易接收方设置第一同态解密函数,其中,第一同态加密函数与第一同态解密函数,满足下述第一加密-解密关系式;
[0136] 第一加密-解密关系式:
[0137] (C1+C2+…+Cn)×r=D1(E1(r×C1)+E1(r×C2)+…+E1(r×Cn))
[0138] 其中,C1,C2,...,Cn表征各个交易细节;r表征区块链上一个共识参数;D1()表征第一同态解密函数;E1()表征第一同态加密函数;
[0139] 则基于上述第一同态加密函数和第一同态解密函数,上述根据所述交易信息,为交易发起方计算第一交易集合的一种具体实施方式可包括:根据下述发起交易计算公式,计算交易发起方的第一交易集合;
[0140] 发起交易计算公式:
[0141] T={SignA,Ua,Ub,E1(r×C1),E1(r×C2),...,E1(r×Cn),hash(C1,C2,...Cn)}[0142] 其中,T表征第一交易集合;SignA表征交易发起方的签名;Ua表征交易发起方的身份标识;Ub表征交易接收方的身份标识;r表征区块链上一个共识参数;E1()表征第一同态加密函数;C1,C2,...,Cn表征各个交易细节;hash()表征哈希算法。其中,身份标识可为区块链注册用户的账户名,还可为交易发起方的转账标识或者交易接收方的接收账号标识等。该同态加密函数可为多项式。各个交易细节可包括转账金额、信用等级、购买产品名称、购买产品数量、交易类型、付款帐号、交易特征标识等。另外,实现了对交易信息的双重加密即第一交易集合为一重加密,交易接收方的公钥加密为二重加密,进一步保证了交易信息的安全性。
[0143] 在本发明另一实施例中,上述交易接收方确定第一交易集合为真的一种具体实施方式可包括:在区块链上的第二节点上,交易接收方利用自身私钥解密第一交易集合;利用第一同态解密函数解析第一交易集合中的各个交易细节;在解析出的各个交易细节满足交易接收方预设的第一交易限制条件时,确定第一交易集合为真。其中,解析交易细节和各个交易细节与第一交易限制条件对比的过程均在后台完成,第一交易限制条件可为转账金额、信用等级、购买产品名称、购买产品数量、交易类型、付款帐号、交易特征标识等的限制范围,比如在其他限制条件均符合的前提下,限制信用等级为5级以上,则交易细节中的信用等级为3级则第一交易集合为假,交易细节中的信用等级为6级则第一交易集合为真。
[0144] 在本发明另一实施例中,上述方法进一步包括:为每一个区块链注册用户分配两个公钥和私钥;交易发起方和交易接收方均为区块链注册用户;上述步骤101中,为交易转账请求生成对应的隐私交易地址的一种具体实施方式可包括:利用下述隐私交易地址计算公式,生成隐私交易地址;
[0145] 交易地址计算公式:
[0146] Sadd=sha256(M×r)×Q+N
[0147] 其中,Sadd表征隐私交易地址;sha256()表征256位的哈希算法;M和N表征交易接收方的两个公钥;r表征区块链上一个共识参数;Q表征隐私交易地址的公钥;N表征交易接收方的公钥;基于此,步骤102的一种具体实施方式可为利用下述随机数计算公式,为交易发起方计算随机数;
[0148] 随机数计算公式:
[0149] R=r×Q
[0150] 其中,R表征交易发起方对应的随机数;r表征区块链上一个共识参数;Q表征隐私交易地址的公钥;
[0151] 利用隐私交易地址、交易发起方对应的随机数以及交易金额,组成广播数组Ub=[Sadd,R,W],并广播广播数组,其中,Ub表征广播数组;W表征交易金额;基于广播数组,进行资金转账交易。
[0152] 在本发明另一实施例中,上述基于广播数组,进行资金转账交易一种具体实施方式为区块链上的第二节点接收到交易接收方支配隐私交易地址上的资金时,利用下述隐私交易地址查找公式,计算待查找隐私交易地址;
[0153] P=sha256(m×R)×Q′+N
[0154] 其中,P表征待查找隐私交易地址;sha256()表征256位的哈希算法;所述m表征与公钥M对应的私钥;R表征交易发起方对应的随机数;Q′表征目标隐私交易地址的公钥;N表征交易接收方的公钥;当P与目标广播数组中的目标隐私交易地址绝对相同时,锁定目标隐私交易地址;利用下述私钥恢复公式,计算目标隐私交易地址的私钥;
[0155] 私钥恢复公式:
[0156] Pk=sha256(m×R)+n
[0157] 其中,Pk表征目标隐私交易地址的私钥;sha256()表征256位的哈希算法;m表征与公钥M对应的私钥;R表征交易发起方对应的随机数;n表征与公钥N对应的私钥;利用目标隐私交易地址的私钥和交易接收方的签名,支配目标隐私交易地址上的资金。
[0158] 在本发明另一实施例中,上述方法进一步包括:为交易发起方设置第二同态解密函数,为交易接收方设置第二同态加密函数,其中,第二同态加密函数与第二同态解密函数,满足下述第二加密-解密关系式;
[0159] 第二加密-解密关系式:
[0160] (G1+G2+…+Gm)×r=D2(E2(r×G1)+E2(r×G2)+…+E2(r×Gm))
[0161] 其中,G1,G2,...,Gm表征交易接收方发布的售卖虚拟产品的各个产品细节;r表征区块链上一个共识参数;D2()表征第二同态解密函数;E2()表征第二同态加密函数;
[0162] 在接收交易发起方发送的交易转账请求之前,进一步包括:
[0163] 区块链上的第二节点根据所述交易接收方发布的虚拟产品的各个产品细节,利用下述产品计算公式,计算第二交易集合;
[0164] 产品计算公式:
[0165] M={SignB,Ub,E2(r×G1),E2(r×G2),...,E2(r×Gm),hash(G1,G2,...Gm)}[0166] 其中,M表征第二交易集合;SignB表征交易接收方的签名;Ub表征交易接收方的身份标识;r表征区块链上一个共识参数;E2()表征第二同态加密函数;G1,G2,...Gm表征虚拟产品的各个产品细节;hash()表征哈希算法;
[0167] 第二节点将第二交易集合发布到所在区块链上;第一节点利用第二同态解密函数解析第二交易集合中的虚拟产品的各个产品细节;第一节点在解析出的虚拟产品的各个产品细节满足交易发起方预设的第二交易限制条件时,执行接收到交易发起方发送的交易转账请求。
[0168] 在本发明另一实施例中,上述方法进一步包括:根据区块链的共识机制,构建下述映射关系;
[0169] 映射关系:
[0170] username→{pubkey,flag,other}
[0171] 其中,username表征注册用户的用户名;pubkey表征注册用户的一个公钥;flag表征注册用户的特征信息;other表征注册用户的可选特征信息;注册用户的特征信息可为注册账号的信用等级、注册账号的类型等,注册用户的可选特征信息可为注册账号的绑定支付帐号、注册账号的身份信息等。
[0172] 交易发起方利用自身的用户名登录第一节点,交易接收方利用自身的用户名登录第二节点。
[0173] 下面结合具体的例子,对本发明实施例提供的基于零知识证明的交易方法作进一步详细说明,如图2所示,该方法可以包括以下步骤:
[0174] 步骤200:交易发起方/交易接收方均为注册用户,为注册用户分配两个公钥和对应的两个私钥;
[0175] 步骤201:接收注册用户的申请的用户名,根据区块链的共识机制,为注册用户的用户名构建映射关系;
[0176] 该步骤构建的映射关系:
[0177] username→{pubkey,flag,other}
[0178] 其中,username表征注册用户的用户名;pubkey表征注册用户的一个公钥;flag表征注册用户的特征信息;other表征注册用户的可选特征信息;
[0179] 该注册用户的用户名为用户自己设置,该步骤能够方便用户记忆自己的注册帐号,其中,注册帐号的用户名的映射关系中包含有公钥,一个特征信息和可选特征信息比如注册用户的账号类型或者注册用户的信用等级或者注册用户的资金分布等。
[0180] 步骤202:为交易发起方设置第一同态加密函数,为交易接收方设置第一同态解密函数;
[0181] 第一同态加密函数与第一同态解密函数,满足下述第一加密-解密关系式;
[0182] 第一加密-解密关系式:
[0183] (C1+C2+…+Cn)×r=D1(E1(r×C1)+E1(r×C2)+…+E1(r×Cn))
[0184] 其中,C1,C2,...,Cn表征各个交易细节;r表征所述区块链上一个共识参数;D1()表征所述第一同态解密函数;E1()表征所述第一同态加密函数;
[0185] 步骤203:为交易发起方设置第二同态解密函数,为交易接收方设置第二同态加密函数;
[0186] 第二同态加密函数与第二同态解密函数,满足下述第二加密-解密关系式;
[0187] 第二加密-解密关系式:
[0188] (G1+G2+…+Gm)×r=D2(E2(r×G1)+E2(r×G2)+…+E2(r×Gm))
[0189] 其中,G1,G2,...,Gm表征所述交易接收方发布的售卖虚拟产品的各个产品细节;r表征所述区块链上一个共识参数;D2()表征所述第二同态解密函数;E2()表征所述第二同态加密函数;该同态加密函数可为多项式函数。
[0190] 上述第一同态加密函数与第一同态解密函数之间的关系,第二同态加密函数与第二同态解密函数之间的关系,使得交易接收方或者交易发起方在不知道交易细节或各个产品细节的前提下,仍可以通过后台运行解析出交易细节或各个产品细节,只是这些交易细节或各个产品细节不在交易界面展示,在交易界面展示的仅仅是交易接收方/交易发起方为可交易用户。
[0191] 步骤204:交易发起方利用自身的用户名登录区块链的第一节点的交易界面,交易接收方利用自身的用户名登录区块链的第二节点的交易界面;
[0192] 步骤205:区块链上的第二节点根据交易接收方发布的虚拟产品的各个产品细节,计算第二交易集合;
[0193] 利用下述产品计算公式,计算第二交易集合;
[0194] 产品计算公式:
[0195] M={SignB,Ub,E2(r×G1),E2(r×G2),...,E2(r×Gm),hash(G1,G2,...Gm)}[0196] 其中,M表征所述第二交易集合;SignB表征所述交易接收方的签名;Ub表征所述交易接收方的身份标识;r表征所述区块链上一个共识参数;E2()表征所述第二同态加密函数;G1,G2,...Gm表征虚拟产品的各个产品细节;hash()表征哈希算法;
[0197] 即交易接收方仅需要通过交易界面填写产品的细节比如产品类型、产品数量、对交易发起方的要求条件等。
[0198] 步骤206:第二节点将第二交易集合发布到所在区块链上;
[0199] 步骤207:第一节点利用第二同态解密函数解析第二交易集合中的虚拟产品的各个产品细节;
[0200] 步骤208:第一节点在解析出的虚拟产品的各个产品细节满足交易发起方预设的第二交易限制条件时,交易发起方通过第一节点的交易界面发起交易转账请求;
[0201] 上述步骤207和步骤208中的各个产品细节与预设的第二交易限制条件进行对比的过程是在后台完成的,交易发起方仅能看到某一虚拟产品是符合自己要求还是不符合自己要求等。
[0202] 步骤209:解析交易转账请求相关的交易信息,根据交易信息,为交易发起方计算第一交易集合;
[0203] 根据下述发起交易计算公式,计算交易发起方的第一交易集合;
[0204] 发起交易计算公式:
[0205] T={SignA,Ua,Ub,E1(r×C1),E1(r×C2),...,E1(r×Cn),hash(C1,C2,...Cn)}[0206] 其中,T表征所述第一交易集合;SignA表征所述交易发起方的签名;Ua表征所述交易发起方的身份标识;Ub表征所述交易接收方的身份标识;r表征所述区块链上一个共识参数;E1()表征所述第一同态加密函数;C1,C2,...,Cn表征各个交易细节;hash()表征哈希算法。
[0207] 步骤210:利用交易接收方的一个公钥加密第一交易集合,将加密后的第一交易集合发布到所在区块链上;
[0208] 上述步骤209和步骤210也是通过区块链后台完成的。
[0209] 步骤211:在区块链上的第二节点上,交易接收方利用自身私钥解密第一交易集合,利用第一同态解密函数解析第一交易集合中的各个交易细节;
[0210] 步骤212:在解析出的各个交易细节满足交易接收方预设的第一交易限制条件时,确定第一交易集合为真;
[0211] 其中,第一交易限制条件可为交易接收方的信用等级、交易额度、竞价信息等。
[0212] 上述步骤211和步骤212是在后台完成的,交易接收方仅能通过交易界面获知交易发起方的第一交易集合为真或者为假等。
[0213] 步骤213:交易接收方在确认交易后,则为交易转账请求生成对应的隐私交易地址;
[0214] 利用下述隐私交易地址计算公式,生成隐私交易地址;
[0215] 交易地址计算公式:
[0216] Sadd=sha256(M×r)×Q+N
[0217] 其中,所述Sadd表征所述隐私交易地址;所述sha256()表征256位的哈希算法;所述M和N表征所述交易接收方的两个公钥;所述r表征所述区块链上一个共识参数;所述Q表征所述隐私交易地址的公钥;N表征交易接收方的公钥;
[0218] 该隐私交易地址进一步隐藏了交易的信息,从而使交易更加安全。
[0219] 步骤214:为交易发起方计算随机数;
[0220] 利用下述随机数计算公式,为所述交易发起方计算随机数;
[0221] 随机数计算公式:
[0222] R=r×Q
[0223] 其中,所述R表征所述交易发起方对应的随机数;所述r表征所述区块链上一个共识参数;所述Q表征所述隐私交易地址的公钥;
[0224] 步骤215:利用隐私交易地址、交易发起方对应的随机数以及交易金额,组成广播数组Ub=[Sadd,R,W],并广播广播数组,其中,Ub表征广播数组;W表征交易金额;
[0225] 步骤216:交易发起方与交易接收方,基于广播数组,进行资金转账交易;
[0226] 步骤217:区块链上的第二节点接收到交易接收方支配隐私交易地址上的资金时,计算待查找隐私交易地址;
[0227] 利用下述隐私交易地址查找公式,计算待查找隐私交易地址;
[0228] P=sha256(m×R)×Q′+N
[0229] 其中,P表征待查找隐私交易地址;sha256()表征256位的哈希算法;m表征与公钥M对应的私钥;R表征交易发起方对应的随机数;Q′表征目标隐私交易地址的公钥;N表征交易接收方的公钥;
[0230] 步骤218:当待查找隐私交易地址与目标广播数组中的目标隐私交易地址绝对相同时,锁定目标隐私交易地址,计算目标隐私交易地址的私钥;
[0231] 利用下述私钥恢复公式,计算目标隐私交易地址的私钥;
[0232] 私钥恢复公式:
[0233] Pk=sha256(m×R)+n
[0234] 其中,Pk表征所述目标隐私交易地址的私钥;sha256()表征256位的哈希算法;m表征与公钥M对应的私钥;R表征所述交易发起方对应的随机数;n表征与公钥N对应的私钥;
[0235] 步骤219:利用目标隐私交易地址的私钥和交易接收方的签名,支配目标隐私交易地址上的资金。
[0236] 如图3所示,本实施例提供一种基于零知识证明的交易装置,应用于区块链,包括:隐私交易地址生成单元301和交易单元302,其中,
[0237] 隐私交易地址生成单元301,用于接收到交易发起方发送的交易转账请求时,为交易转账请求生成对应的隐私交易地址;
[0238] 交易单元302,用于在区块链上广播隐私交易地址生成单元301生成的隐私交易地址,交易发起方与交易接收方,利用隐私交易地址进行交易。
[0239] 可选地,在图3所示基于零知识证明的交易装置的基础上,如图4所示,基于零知识证明的交易装置进一步包括:同态函数设置单元401、第一交易集合计算单元402和判定单元403,其中,
[0240] 同态函数设置单元401,用于为交易发起方设置第一同态加密函数,为交易接收方设置第一同态解密函数,其中,第一同态加密函数与所述第一同态解密函数,满足下述第一加密-解密关系式;
[0241] 第一加密-解密关系式:
[0242] (C1+C2+…+Cn)×r=D1(E1(r×C1)+E1(r×C2)+…+E1(r×Cn))
[0243] 其中,C1,C2,...,Cn表征各个交易细节;r表征区块链上一个共识参数;D1()表征第一同态解密函数;E1()表征第一同态加密函数;
[0244] 第一交易集合计算单元402,用于解析隐私交易地址生成单元301接收到的交易转账请求相关的交易信息;根据交易信息,利用发起交易计算公式,为交易发起方计算第一交易集合,利用交易接收方的一个公钥加密第一交易集合;将加密后的第一交易集合发布到所在区块链上;
[0245] 发起交易计算公式:
[0246] T={SignA,Ua,Ub,E1(r×C1),E1(r×C2),...,E1(r×Cn),hash(C1,C2,...Cn)}[0247] 其中,T表征第一交易集合;SignA表征交易发起方的签名;Ua表征交易发起方的身份标识;Ub表征交易接收方的身份标识;r表征区块链上一个共识参数;E1()表征同态函数设置单元401设置的第一同态加密函数;C1,C2,...,Cn表征各个交易细节;hash()表征哈希算法;
[0248] 判定单元403,用于在接收到交易接收方的触发时,利用交易接收方的自身私钥解密第一交易集合计算单元402计算出的第一交易集合;利用第一同态解密函数解析第一交易集合中的各个交易细节;在解析出的各个交易细节满足交易接收方预设的第一交易限制条件时,确定第一交易集合为真;
[0249] 隐私交易地址生成单元301,用于在判定单元403确定第一交易集合为真后,执行为交易转账请求生成对应的隐私交易地址。
[0250] 在本发明另一实施例中,如图5所示,基于零知识证明的交易装置进一步包括:公私钥分配单元501,其中,
[0251] 公私钥分配单元501,用于为每一个区块链注册用户分配两个公钥和私钥;
[0252] 交易发起方和交易接收方均为所述区块链注册用户;
[0253] 隐私交易地址生成单元301,用于利用下述隐私交易地址计算公式,生成隐私交易地址;
[0254] 交易地址计算公式:
[0255] Sadd=sha256(M×r)×Q+N
[0256] 其中,所述Sadd表征所述隐私交易地址;所述sha256()表征256位的哈希算法;所述M和N表征公私钥分配单元501分配的交易接收方的两个公钥;所述r表征区块链上一个共识参数;Q表征隐私交易地址的公钥;N表征交易接收方的公钥;
[0257] 交易单元302,进一步用于利用下述随机数计算公式,为交易发起方计算随机数;
[0258] 随机数计算公式:
[0259] R=r×Q
[0260] 其中,R表征交易发起方对应的随机数;r表征区块链上一个共识参数;Q表征隐私交易地址的公钥;
[0261] 利用隐私交易地址、交易发起方对应的随机数以及交易金额,组成广播数组Ub=[Sadd,R,W],并广播所述广播数组,其中,Ub表征广播数组;W表征交易金额;
[0262] 接收到交易接收方支配隐私交易地址上的资金时,
[0263] 利用隐私交易地址查找公式,计算待查找隐私交易地址;
[0264] P=sha256(m×R)×Q′+N
[0265] 其中,P表征待查找隐私交易地址;sha256()表征256位的哈希算法;m表征与公钥M对应的私钥;R表征交易发起方对应的随机数;Q′表征目标隐私交易地址的公钥;N表征交易接收方的公钥;
[0266] 当P与目标广播数组中的目标隐私交易地址绝对相同时,锁定目标隐私交易地址;
[0267] 利用私钥恢复公式,计算目标隐私交易地址的私钥;
[0268] 私钥恢复公式:
[0269] Pk=sha256(m×R)+n
[0270] 其中,Pk表征目标隐私交易地址的私钥;sha256()表征256位的哈希算法;m表征与公钥M对应的私钥;R表征交易发起方对应的随机数;n表征与公钥N对应的私钥;
[0271] 利用目标隐私交易地址的私钥和交易接收方的签名,支配目标隐私交易地址上的资金。
[0272] 上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
[0273] 本发明实施例还提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行上述各个实施例提供的信任网络构建方法。
[0274] 本发明实施例还提供了一种存储控制器,包括:处理器、存储器和总线;
[0275] 所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行上述各个实施例提供的基于零知识证明的交易方法。
[0276] 综上所述,本发明各个实施例至少具有如下有益效果:
[0277] 1、在本发明实施例中,区块链上的第一节点接收到交易发起方发送的交易转账请求时,解析交易转账请求相关的交易信息;为交易转账请求生成对应的隐私交易地址;在区块链上广播隐私交易地址;交易发起方与交易接收方,利用隐私交易地址进行交易。由此可见,在进行交易过程中是通过隐私交易地址完成的,即交易发起方与交易接收方并不会被任何人恶意获知,而只有交易发起方与交易接收方才能通过该隐私交易地址进行交易,而整个交易过程中,交易发起方与交易接收方的信息可不向任何人直接公开,从而降低交易过程中信息泄露的风险。
[0278] 2、在本发明实施例中,解析交易转账请求相关的交易信息;根据交易信息,为交易发起方计算第一交易集合,利用交易接收方的一个公钥加密第一交易集合;将加密后的第一交易集合发布到所在区块链上;在接收到交易接收方确定第一交易集合为真后,执行所述为交易转账请求生成对应的隐私交易地址。通过根据交易信息,为交易发起方计算第一交易集合,实现了对交易发起方的交易信息如交易发起方的基本信息、信用等级、付款账号等加密,交易接收方通过验证第一交易集合为真来确定交易发起方信息满足其要求,即在对交易发起方的交易信息加密的情况,交易接收方仍然能对交易发起方的交易信息进行验证,保证交易的可靠性和准确性。
[0279] 3、在本发明实施例中,基于交易细节,为交易发起方计算第一交易集合,实现了一重加密利用,利用交易接收方的公钥加密为二重加密,进一步保证了交易信息的安全性。
[0280] 需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
[0281] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
[0282] 最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。