CN108769054B - 一种基于等值测试承诺的区块链交易验证方法及装置 - Google Patents
一种基于等值测试承诺的区块链交易验证方法及装置 Download PDFInfo
- Publication number
- CN108769054B CN108769054B CN201810611953.XA CN201810611953A CN108769054B CN 108769054 B CN108769054 B CN 108769054B CN 201810611953 A CN201810611953 A CN 201810611953A CN 108769054 B CN108769054 B CN 108769054B
- Authority
- CN
- China
- Prior art keywords
- transaction
- value
- commitment value
- commitment
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4014—Identity check for transactions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Mathematical Optimization (AREA)
- Algebra (AREA)
- Power Engineering (AREA)
- Mathematical Analysis (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明实施例提供了一种基于等值测试承诺的区块链交易验证方法及装置。所述方法包括:获取第二交易的金额、作为第二交易的合法接收者的第二目标节点对于第二交易的第一承诺值,以及作为第一交易的待验证接收合法性的第二用户节点对于第一交易的第二承诺值;获取作为第一交易的合法接收者的第一目标节点对于第一交易的第一承诺值;基于第一交易的第一承诺值、第一交易的第二承诺值、第二交易的金额及第二交易的第一承诺值,判断第二秘密值与第一秘密值是否相同,如果是,则确定第二用户节点与第一目标节点是同一用户节点,如果否,则确定第二用户节点与第一目标节点不是同一用户节点。应用本发明实施例能够实现保护用户隐私的目的。
Description
技术领域
本发明涉及区块链交易领域,特别是涉及一种基于等值测试承诺的区块链交易验证方法及装置。
背景技术
所谓区块链技术,也被称之为分布式账本技术,是一种互联网数据库技术。区块链中并不存在中心节点的概念,所有节点是平等的,所有节点会同步记录信息,保证各个节点记录的信息是一致的,因此,区块链中的记录信息具备公开透明、无法篡改及方便追溯的特点。
鉴于区块链技术的上述优点,近年来,区块链技术被广泛应用于金融领域,比如比特币交易,以保护交易的安全性、保密性及不可篡改性等。其中,区块链交易***中存在若干的用户节点,该若干的用户节点是平等的。具体的,区块链交易的形式是一用户节点向另一用户节点支付金额,然后接收金额的用户节点继续向下一用户节点支付金额等等,因此,多个交易可以顺序构成区块链的一个交易链条。在区块链交易中,需要对接收用户节点身份的合法性进行验证。
一般签名算法就是一种常见的、用于验证接收用户节点身份的合法性的区块链技术,利用该算法进行验证的主要过程为:
首先获取第一交易的待验证接收合法性的第二用户节点,以第二交易的支付者身份所公开的第二交易信息,该第二交易信息中含有第二用户节点自身私钥的签名;然后,获取第一交易中作为支付者的第一用户节点,在第一交易信息里公开的、作为合法接收者的目标节点的公钥,最后,验证是否能够利用目标节点的公钥解密第二用户节点的私钥的签名,如果是,则确定该第二用户节点与该目标节点是同一用户节点,第二用户节点的身份合法性验证通过,反之,则确定该第二用户节点与目标节点不是同一用户节点,第二用户节点的身份合法性验证不通过。
在上述交易过程中,当第二用户节点的身份合法性验证通过时,表明第二用户节点作为第一交易的合法接收者,拥有第一交易的金额的使用权,即第二用户节点可以使用第一交易的金额,用于第二交易的支付,也就是说,此时,第二交易生效。
由于密码领域中,一个用户节点的私钥和公钥是唯一对应的,公钥具有公开性,私钥具有保密性,私钥的签名是用私钥加密的数据,私钥的签名仅能用自身公钥解密。因此该方法能够实现只有合法接收者才能使用该交易的金额,而其他用户无法使用的目的,因此能够保证交易的安全性。
但是,在使用一般签名算法进行交易验证时,一个用户节点的私钥的签名的生成过程,需要利用该用户节点对应的目标节点(待支付的交易的合法接收者)的公钥的地址。在区块链中,同一用户节点的公钥的地址,作为交易接收地址是固定的,且该地址在交易信息中是公开的,那么,区块链中任一用户节点都可以追溯该地址的交易历史,统计获知该地址对应的余额,这样会导致用户的隐私受到破坏。
发明内容
本发明实施例的目的在于提供一种基于等值测试承诺的区块链交易验证方法及装置,以实现保护用户隐私的目的。具体技术方案如下:
第一方面,本发明实施例提供了一种基于等值测试承诺的区块链交易验证方法,所述方法包括:
获取第二交易的金额、作为第二交易的合法接收者的第二目标节点对于第二交易的第一承诺值,以及,作为第一交易的待验证接收合法性的第二用户节点对于所述第一交易的第二承诺值;其中,所述第一交易的第二承诺值是:所述第二用户节点基于为所述第一交易设定的第二秘密值,预先计算得到的;
获取作为所述第一交易的合法接收者的第一目标节点对于所述第一交易的第一承诺值;其中,所述第一交易的第一承诺值是:所述第一目标节点基于为所述第一交易设定的第一秘密值,预先计算得到的;
基于所述第一交易的第一承诺值、所述第一交易的第二承诺值、所述第二交易的金额及所述第二交易的第一承诺值,判断所述第二秘密值与所述第一秘密值是否相同,如果是,则确定所述第二用户节点与所述第一目标节点是同一用户节点,如果否,则确定所述第二用户节点与所述第一目标节点不是同一用户节点。
可选的,所述基于所述第一交易的第一承诺值、所述第一交易的第二承诺值、所述第二交易的金额及所述第二交易的第一承诺值,判断所述第二秘密值与所述第一秘密值是否相同,包括:
基于所述第一交易的第一承诺值、所述第一交易的第二承诺值、所述第二交易的金额及所述第二交易的第一承诺值,判断预设的配对运算等式是否成立,如果是,则确定所述第二秘密值与所述第一秘密值相同,如果否,则确定所述第二秘密值与所述第一秘密值不相同。
可选的,所述基于所述第一交易的第一承诺值、所述第一交易的第二承诺值、所述第二交易的金额及所述第二交易的第一承诺值,判断预设的配对运算等式是否成立,包括:
将所述第二交易的金额与所述第二交易的第一承诺值,进行字符串合并,得到第二交易的合并字符串;
基于所述第二交易的合并字符串,利用预设的第三哈希函数,得到第六哈希值;
基于所述第一交易的第一承诺值及所述第一交易的第二承诺值,利用配对运算的计算公式e(a,c),得到第一配对值;并基于所述第六哈希值、预设的椭圆曲线的基点及所述第一交易的第一承诺值,利用配对运算的计算公式e(M'G,b),得到第二配对值;
判断所述第一配对值与所述第二配对值是否相等,如果是,则确定所述配对运算等式成立,如果否,则确定所述配对运算等式不成立;
其中,所述配对运算等式为:e(a,c)=e(M'G,b),
其中,所述a和所述b为所述第一交易的第一承诺值,所述c为所述第一交易的第二承诺值,所述M'为所述第六哈希值,M'=H3(T),所述H3为所述第三哈希函数,所述T为所述第二交易的合并字符串,所述G为预设的椭圆曲线的基点。
可选的,所述第一目标节点基于为所述第一交易设定的第一秘密值,计算得到第一交易的第一承诺值的过程,包括:
所述第一目标节点获取为第一交易设定的第一秘密值;
所述第一目标节点基于所述第一秘密值,利用多个预设的哈希函数及预设的第一承诺值的计算公式,计算第一交易的第一承诺值。
可选的,所述第一目标节点基于所述第一秘密值,利用多个预设的哈希函数及预设的第一承诺值的计算公式,计算第一交易的第一承诺值,包括:
所述第一目标节点基于所述第一秘密值,利用预设的第一哈希函数,得到第一哈希值,并基于所述第一秘密值,利用预设的第二哈希函数,得到第二哈希值;
所述第一目标节点基于所述第一哈希值、所述第二哈希值及预设的椭圆曲线的基点,利用预设的第一承诺值的计算公式,计算第一交易的第一承诺值;
其中,所述第一承诺值的计算公式为:a=x1G和b=x2G,
其中,所述a和所述b为所述第一交易的第一承诺值,x1=H1(r1),x2=H2(r1),所述x1为所述第一哈希值,所述x2为所述第二哈希值,所述H1为所述第一哈希函数,所述H2为所述第二哈希函数,所述r1为所述第一秘密值,且所述r1为整数,所述G为预设的椭圆曲线的基点。
可选的,所述第二用户节点基于为所述第一交易设定的第二秘密值,计算得到第一交易的第二承诺值的过程,包括:
所述第二用户节点获取为第一交易设定的第二秘密值;
所述第二用户节点获取第二交易的金额及作为第二交易的合法接收者的第二目标节点对于第二交易的第一承诺值;
所述第二用户节点基于所述第二秘密值、所述第二交易的金额及所述第二交易的第一承诺值,利用多个预设的哈希函数及预设的第二承诺值的计算公式,计算第一交易的第二承诺值。
可选的,所述第二用户节点基于所述第二秘密值、所述第二交易的金额及所述第二交易的第一承诺值,利用多个预设的哈希函数及预设的第二承诺值的计算公式,计算第一交易的第二承诺值,包括:
所述第二用户节点基于所述第二秘密值,利用预设的第一哈希函数,得到第四哈希值,并基于所述第二秘密值,利用预设的第二哈希函数,得到第五哈希值;
所述第二用户节点将所述第二交易的金额与所述第二交易的第一承诺值,进行字符串合并,得到第二交易的合并字符串;
所述第二用户节点基于所述第二交易的合并字符串,利用预设的第三哈希函数,得到第三哈希值;
所述第二用户节点基于所述第四哈希值、所述第五哈希值、所述第三哈希值及预设的椭圆曲线的基点,利用预设的第二承诺值的计算公式,计算第一交易的第二承诺值为;
其中,所述第二承诺值的计算公式为:
其中,所述c为所述第一交易的第二承诺值,所述x'1为所述第四哈希值,所述x'2为所述第五哈希值,x'1=H1(r2),x'2=H2(r2),所述H1为所述第一哈希函数,所述H2为所述第二哈希函数,所述r2为所述第二秘密值,且所述r2为整数,所述M为所述第三哈希值,M=H3(T),所述H3为所述第三哈希函数,所述T为所述第二交易的合并字符串,所述G为预设的椭圆曲线的基点。
第二方面,本发明实施例提供了一种基于等值测试承诺的区块链交易验证装置,所述装置包括:
第一获取模块,用于获取第二交易的金额、作为第二交易的合法接收者的第二目标节点对于第二交易的第一承诺值,以及,作为第一交易的待验证接收合法性的第二用户节点对于所述第一交易的第二承诺值;其中,所述第一交易的第二承诺值是:所述第二用户节点基于为所述第一交易设定的第二秘密值,预先计算得到的;
第二获取模块,用于获取作为所述第一交易的合法接收者的第一目标节点对于所述第一交易的第一承诺值;其中,所述第一交易的第一承诺值是:所述第一目标节点基于为所述第一交易设定的第一秘密值,预先计算得到的;
验证模块,用于基于所述第一交易的第一承诺值、所述第一交易的第二承诺值、所述第二交易的金额及所述第二交易的第一承诺值,判断所述第二秘密值与所述第一秘密值是否相同,如果是,则确定所述第二用户节点与所述第一目标节点是同一用户节点,如果否,则确定所述第二用户节点与所述第一目标节点不是同一用户节点。
可选的,所述验证模块,包括:
判断子模块,用于基于所述第一交易的第一承诺值、所述第一交易的第二承诺值、所述第二交易的金额及所述第二交易的第一承诺值,判断预设的配对运算等式是否成立,如果是,则确定所述第二秘密值与所述第一秘密值相同,如果否,则确定所述第二秘密值与所述第一秘密值不相同。
可选的,所述判断子模块,具体用于:
将所述第二交易的金额与所述第二交易的第一承诺值,进行字符串合并,得到第二交易的合并字符串;
基于所述第二交易的合并字符串,利用预设的第三哈希函数,得到第六哈希值;
基于所述第一交易的第一承诺值及所述第一交易的第二承诺值,利用配对运算的计算公式e(a,c),得到第一配对值;并基于所述第六哈希值、预设的椭圆曲线的基点及所述第一交易的第一承诺值,利用配对运算的计算公式e(M'G,b),得到第二配对值;
判断所述第一配对值与所述第二配对值是否相等,如果是,则确定所述配对运算等式成立,如果否,则确定所述配对运算等式不成立;
其中,所述配对运算等式为:e(a,c)=e(M'G,b),
其中,所述a和所述b为所述第一交易的第一承诺值,所述c为所述第一交易的第二承诺值,所述M'为所述第六哈希值,M'=H3(T),所述H3为所述第三哈希函数,所述T为所述第二交易的合并字符串,所述G为预设的椭圆曲线的基点。
可选的,所述装置还包括:第一承诺值确定模块,用于所述第一目标节点基于为所述第一交易设定的第一秘密值,计算得到第一交易的第一承诺值,所述第一承诺值确定模块,包括:
第一获取子模块,用于所述第一目标节点获取为第一交易设定的第一秘密值;
第一计算子模块,用于所述第一目标节点基于所述第一秘密值,利用多个预设的哈希函数及预设的第一承诺值的计算公式,计算第一交易的第一承诺值。
可选的,所述第一计算子模块,具体用于:
所述第一目标节点基于所述第一秘密值,利用预设的第一哈希函数,得到第一哈希值,并基于所述第一秘密值,利用预设的第二哈希函数,得到第二哈希值;
所述第一目标节点基于所述第一哈希值、所述第二哈希值及预设的椭圆曲线的基点,利用预设的第一承诺值的计算公式,计算第一交易的第一承诺值;
其中,所述第一承诺值的计算公式为:a=x1G和b=x2G,
其中,所述a和所述b为所述第一交易的第一承诺值,x1=H1(r1),x2=H2(r1),所述x1为所述第一哈希值,所述x2为所述第二哈希值,所述H1为所述第一哈希函数,所述H2为所述第二哈希函数,所述r1为所述第一秘密值,且所述r1为整数,所述G为预设的椭圆曲线的基点。
可选的,所述装置还包括:第二承诺值确定模块,用于所述第二用户节点基于为所述第一交易设定的第二秘密值,计算得到第一交易的第二承诺值,所述第二承诺值确定模块,包括:
第二获取子模块,用于所述第二用户节点获取为第一交易设定的第二秘密值;
第三获取子模块,用于所述第二用户节点获取第二交易的金额及作为第二交易的合法接收者的第二目标节点对于第二交易的第一承诺值;
第二计算子模块,用于所述第二用户节点基于所述第二秘密值、所述第二交易的金额及所述第二交易的第一承诺值,利用多个预设的哈希函数及预设的第二承诺值的计算公式,计算第一交易的第二承诺值。
可选的,所述第二计算子模块,具体用于:
所述第二用户节点基于所述第二秘密值,利用预设的第一哈希函数,得到第四哈希值,并基于所述第二秘密值,利用预设的第二哈希函数,得到第五哈希值;
所述第二用户节点将所述第二交易的金额与所述第二交易的第一承诺值,进行字符串合并,得到第二交易的合并字符串;
所述第二用户节点基于所述第二交易的合并字符串,利用预设的第三哈希函数,得到第三哈希值;
所述第二用户节点基于所述第四哈希值、所述第五哈希值、所述第三哈希值及预设的椭圆曲线的基点,利用预设的第二承诺值的计算公式,计算第一交易的第二承诺值为;
其中,所述第二承诺值的计算公式为:
其中,所述c为所述第一交易的第二承诺值,所述x'1为所述第四哈希值,所述x'2为所述第五哈希值,x'1=H1(r2),x'2=H2(r2),所述H1为所述第一哈希函数,所述H2为所述第二哈希函数,所述r2为所述第二秘密值,且所述r2为整数,所述M为所述第三哈希值,M=H3(T),所述H3为所述第三哈希函数,所述T为所述第二交易的合并字符串,所述G为预设的椭圆曲线的基点。
第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器,其中,
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现本发明实施例所提供的基于等值测试承诺的区块链交易验证方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例所提供的基于等值测试承诺的区块链交易验证方法的步骤。
本发明实施例所提供的方案中,所述第一秘密值仅为所述第一交易的合法接收者的第一目标节点所知,所述第二秘密值仅为所述第一交易的待验证接收合法性的第二用户节点所知,因此,若所述第二秘密值与所述第一秘密值相同,则所述第二用户节点与所述第一目标节点必是同一用户节点,若所述第二秘密值与所述第一秘密值不相同,则所述第二用户节点与所述第一目标节点必不是同一用户节点。因此,本发明实施例所提供的方案,能够验证接收用户节点身份的合法性,保证交易的安全性。并且本发明实施例所提供的方案中,所述第一交易的第一承诺值是基于为所述第一交易设定的第一秘密值计算得到的,所述第一交易的第二承诺值是基于为所述第一交易设定的第二秘密值计算得到的,秘密值与交易是对应的,也就是说,一用户节点在不同的交易中,所使用的秘密值不同,因此,区块链中的任何用户节点无法基于所述第一交易的第一承诺值或所述第一交易的第二承诺值,追溯该用户的交易历史,统计该用户的余额,因此,应用本发明实施例能够实现保护用户隐私的目的。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的基于等值测试承诺的区块链交易过程示意图;
图2为本发明实施例所提供的一种基于等值测试承诺的区块链交易验证方法的流程示意图;
图3为本发明实施例所提供的一种基于等值测试承诺的区块链交易验证装置的结构示意图;
图4为本发明实施例所提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于方案的理解,在此,先对本发明实施例的基于等值测试承诺的区块链交易过程予以说明,参见图1,图1为基于等值测试承诺的区块链交易过程示意图。
假设在区块链平台中,至少存在四个用户节点A、B、C及D,A为第一交易的支付者,B为第一交易的接收者,同时B也是第二交易的支付者,C为第二交易的接收者,同时C也是第三交易的支付者,D为第三交易的接收者。交易过程为:
首先,A公开第一交易信息,所述第一交易信息包括:A作为第一交易的上一个交易的合法接收者,对于第一交易的上一个交易的第二承诺值、第一交易的金额及B作为第一交易的合法接收者,对于第一交易的第一承诺值。其中,所述第一交易的金额是A向B支付的金额,所述第一交易的第一承诺值用于在后续验证B作为第一交易的合法接收者的身份合法性。所述第一交易的第一承诺值是B预先发送给A的。
其次,B公开第二交易信息,所述第二交易信息包括:B作为第一交易的合法接收者,对于第一交易的第二承诺值、第二交易的金额及C作为第二交易的合法接收者,对于第二交易的第一承诺值。其中,所述第二交易的金额是B向C支付的金额,所述第一交易的第二承诺值用于在后续验证B作为第二交易的合法接收者的身份合法性。所述第二交易的第一承诺值用于在后续验证C作为第二交易的合法接收者的身份合法性。所述第二交易的第一承诺值是C预先发送给B的。
然后,利用上述公开的第一交易信息及第二交易信息中的部分信息,验证B作为第一交易的合法接收者的身份合法性,当验证通过后,B才能够使用第一交易的金额,完成第二交易的支付,也就是说B的身份的合法性验证通过后,第一交易完成,第二交易生效。可以理解的是,在后续,C还会发起与D的第三交易,然后需要验证C作为第二交易的合法接收者的身份合法性后,第二交易才能完成,第三交易才能生效,等等,由此可以看出,区块链中的多个交易依次构成了一个交易链条。
对于区块链中的每个交易过程,对接收用户节点身份的合法性的验证方法是相同的,具体验证过程详见后文。
为了保护用户隐私,本发明实施例提供了一种基于等值测试承诺的区块链交易验证方法、装置、电子设备及存储介质。
需要说明的是,本发明实施例所提供的一种基于等值测试承诺的区块链交易验证方法的执行主体可以为一种基于等值测试承诺的区块链交易验证装置,该装置可以运行于电子设备中。其中,该电子设备可以为区块链中任意一个用户节点等。
下面,首先对本发明实施例所提供的一种基于等值测试承诺的区块链交易验证方法进行介绍。
如图2所示,本发明实施例所提供的一种基于等值测试承诺的区块链交易验证方法,可以包括如下步骤:
S201,获取第二交易的金额、作为第二交易的合法接收者的第二目标节点对于第二交易的第一承诺值,以及,作为第一交易的待验证接收合法性的第二用户节点对于所述第一交易的第二承诺值。
在本发明实施例中,可以获取第一交易的待验证接收合法性的第二用户节点公开的第二交易信息,再从所述第二交易信息中获取:第二交易的金额、作为第二交易的合法接收者的第二目标节点对于第二交易的第一承诺值,以及,作为第一交易的待验证接收合法性的第二用户节点对于所述第一交易的第二承诺值。需要说明的是,所述第二交易信息中的各个元素的格式均为字符串。
其中,所述第二交易的金额为:所述第二用户节点,作为第二交易的支付者,支付给所述第二目标节点的金额。所述第二交易的第一承诺值,用于在后续,验证所述第二目标节点作为第二交易的合法接收者的身份合法性。
可以理解的是,所述第二用户节点在公开所述第二交易信息之前,已经接收到所述第二目标节点发送的所述第二交易的第一承诺值,具体的,所述第二用户节点可以接收到所述第二目标节点发送的第二交易请求,其中,所述第二交易请求中含有所述第二交易的第一承诺值,当然,所述第二交易请求中还可以含有所述第二交易的金额。
在本发明实施例中,所述第一交易的第二承诺值是:所述第二用户节点基于为所述第一交易设定的第二秘密值,预先计算得到的。所述第二秘密值可以与第二用户节点的用户的身份相关,也可以无关,这都是合理的。所述第一交易的第二承诺值用于在后续,验证第二用户节点作为所述第一交易的合法接收者的身份合法性。需要说明的是,除第二用户节点之外,区块链中的任何节点都无法利用公开的所述第一交易的第二承诺值,通过计算获知所述第二秘密值。
所述第二用户节点基于为所述第一交易设定的第二秘密值,计算得到第一交易的第二承诺值的过程,将在后文中予以详细说明。
S202,获取作为所述第一交易的合法接收者的第一目标节点对于所述第一交易的第一承诺值。
在本发明实施例中,可以获取第一交易的支付者的节点所公开的第一交易信息,再从所述第一交易信息中,获取作为所述第一交易的合法接收者的第一目标节点对于所述第一交易的第一承诺值。当然,所述第一交易信息中还含有第一交易的金额等,所述第一交易的金额为:所述第一交易的支付者的节点支付给所述第一目标节点的金额。需要说明的是,所述第一交易信息中的各个元素的格式均为字符串。
可以理解的是,所述第一交易的支付者的节点,在公开所述第一交易信息之前,已经接收到所述第一目标节点发送的第一交易请求,所述第一交易请求中含有所述第一交易的第一承诺值,当然,所述第一交易请求中还可以含有第一交易的金额。
在本发明实施例中,所述第一交易的第一承诺值是:所述第一目标节点基于为所述第一交易设定的第一秘密值,预先计算得到的。所述第一秘密值可以与第一目标节点的用户的身份相关,也可以无关,这都是合理的。所述第一交易的第一承诺值用于在后续,验证第二用户节点作为所述第一交易的合法接收者的身份合法性。需要说明的是,除所述第一目标节点之外,区块链中的任何用户节点都无法利用公开的所述第一交易的第一承诺值,通过计算获知所述第一秘密值。
所述第一目标节点基于为所述第一交易设定的第一秘密值,计算得到第一交易的第一承诺值的过程,将在后文中予以详细说明。
S203,基于所述第一交易的第一承诺值、所述第一交易的第二承诺值、所述第二交易的金额及所述第二交易的第一承诺值,判断所述第二秘密值与所述第一秘密值是否相同,如果是,则确定所述第二用户节点与所述第一目标节点是同一用户节点,如果否,则确定所述第二用户节点与所述第一目标节点不是同一用户节点。
在本发明实施例中,提出一种等值测试承诺的理论,具体为:由于所述第一秘密值仅为所述第一目标节点所知,所述第二秘密值仅为所述第二用户节点所知,因此,判断所述第一交易的第二承诺值与所述第一交易的第一承诺值中的秘密值是否相同,如果是,则根据密码领域的概率理论,确定所述第二用户节点与所述第一目标节点是同一用户节点,如果否,则确定所述第二用户节点与所述第一目标节点不是同一用户节点。从而完成所述第二用户节点作为第一交易的合法接收者的身份验证。
在本发明实施例中,可以采用多种方法判断所述第二秘密值与所述第一秘密值是否相同,为了方案布局清晰和方案清楚,后续将结合第一交易的第一承诺值与第一交易的第二承诺值的计算过程,详细描述本步骤的具体实现方式。
需要说明的是,在验证所述第二用户节点与所述第一目标节点是同一用户节点之后,所述第一交易完成,所述第二用户节点能够使用所述第一交易的金额实现第二交易,也就是说,所述第二用户节点发起的第二交易生效。当然,可以理解的是,在后续,所述第二交易的完成也需要验证第二交易的接收用户节点身份的合法性,等等。
本发明实施例所提供的方案中,所述第一秘密值仅为所述第一交易的合法接收者的第一目标节点所知,所述第二秘密值仅为所述第一交易的待验证接收合法性的第二用户节点所知,因此,若所述第二秘密值与所述第一秘密值相同,则所述第二用户节点与所述第一目标节点必是同一用户节点,若所述第二秘密值与所述第一秘密值不相同,则所述第二用户节点与所述第一目标节点必不是同一用户节点。因此,本发明实施例所提供的方案,能够验证接收用户节点身份的合法性,保证交易的安全性。并且本发明实施例所提供的方案中,所述第一交易的第一承诺值是基于为所述第一交易设定的第一秘密值计算得到的,所述第一交易的第二承诺值是基于为所述第一交易设定的第二秘密值计算得到的,秘密值与交易是对应的,也就是说,一用户节点在不同的交易中,所使用的秘密值不同,因此,区块链中的任何用户节点无法基于所述第一交易的第一承诺值或所述第一交易的第二承诺值,追溯该用户的交易历史,统计该用户的余额,因此,应用本发明实施例能够实现保护用户隐私的目的。
以下将结合第一交易的第一承诺值与第一交易的第二承诺值的计算过程,详细描述所述第一秘密值与所述第二秘密值的判断过程。
1,所述第一目标节点基于为所述第一交易设定的第一秘密值,计算得到第一交易的第一承诺值的过程,包括以下步骤:
A1,所述第一目标节点获取为第一交易设定的第一秘密值;
在本发明实施例中,所述第一秘密值可以由所述第一目标节点的用户设定,也可以由所述第一目标节点设定,其中,所述第一秘密值可以为一随机数,且所述随机数为整数。
需要说明的是,所述第一秘密值仅为所述第一目标节点所知。
B1,所述第一目标节点基于所述第一秘密值,利用多个预设的哈希函数及预设的第一承诺值的计算公式,计算第一交易的第一承诺值。
在本发明实施例中,利用了哈希函数原像不可逆的特性,因此,利用多个预设的哈希函数及预设的第一承诺值的计算公式,计算第一交易的第一承诺值的过程,是复杂且不可逆的,也就是说,区块链中任何用户节点无法从所述第一交易的第一承诺值,通过计算获知所述第一秘密值。
具体的,B1包括以下步骤:
B11,所述第一目标节点基于所述第一秘密值,利用预设的第一哈希函数,得到第一哈希值,并基于所述第一秘密值,利用预设的第二哈希函数,得到第二哈希值;
B12,所述第一目标节点基于所述第一哈希值、所述第二哈希值及预设的椭圆曲线的基点,利用预设的第一承诺值的计算公式,计算第一交易的第一承诺值;
其中,所述第一承诺值的计算公式为:a=x1G和b=x2G,
其中,所述a和所述b为所述第一交易的第一承诺值,x1=H1(r1),x2=H2(r1),所述x1为所述第一哈希值,所述x2为所述第二哈希值,所述H1为所述第一哈希函数,所述H2为所述第二哈希函数,所述r1为所述第一秘密值,且所述r1为整数,所述G为预设的椭圆曲线的基点。
2,所述第二用户节点基于为所述第一交易设定的第二秘密值,计算得到第一交易的第二承诺值的过程,包括以下步骤:
A2,所述第二用户节点获取为第一交易设定的第二秘密值;
在本发明实施例中,所述第二秘密值可以由所述第二用户节点的用户设定,也可以由所述第二用户节点设定,其中,所述第二秘密值可以为一随机数,且所述随机数为整数。
需要说明的是,所述第二秘密值仅为所述第二用户节点所知。
B2,所述第二用户节点获取第二交易的金额及作为第二交易的合法接收者的第二目标节点对于第二交易的第一承诺值;
具体的,所述第二用户节点可以获取作为第二交易的合法接收者的第二目标节点,发送给所述第二用户节点的第二交易请求,所述第二交易请求中含有:第二交易的金额及第二目标节点对于第二交易的第一承诺值。
C2,所述第二用户节点基于所述第二秘密值、所述第二交易的金额及所述第二交易的第一承诺值,利用多个预设的哈希函数及预设的第二承诺值的计算公式,计算第一交易的第二承诺值。
在本发明实施例中,利用了哈希函数原像不可逆的特性,因此,利用多个预设的哈希函数及预设的第二承诺值的计算公式,计算第一交易的第二承诺值的过程,是复杂且不可逆的,也就是说,区块链中任何用户节点无法从所述第一交易的第二承诺值,通过计算获知所述第二秘密值。
具体的,C2包括以下步骤:
C21,所述第二用户节点基于所述第二秘密值,利用预设的第一哈希函数,得到第四哈希值,并基于所述第二秘密值,利用预设的第二哈希函数,得到第五哈希值;
C22,所述第二用户节点将所述第二交易的金额与所述第二交易的第一承诺值,进行字符串合并,得到第二交易的合并字符串;
需要说明是,字符串合并为两个字符串收尾相连的拼接。
C23,所述第二用户节点基于所述第二交易的合并字符串,利用预设的第三哈希函数,得到第三哈希值;
C24,所述第二用户节点基于所述第四哈希值、所述第五哈希值、所述第三哈希值及预设的椭圆曲线的基点,利用预设的第二承诺值的计算公式,计算第一交易的第二承诺值为;
其中,所述第二承诺值的计算公式为:
其中,所述c为所述第一交易的第二承诺值,所述x'1为所述第四哈希值,所述x'2为所述第五哈希值,x'1=H1(r2),x'2=H2(r2),所述H1为所述第一哈希函数,所述H2为所述第二哈希函数,所述r2为所述第二秘密值,且所述r2为整数,所述M为所述第三哈希值,M=H3(T),所述H3为所述第三哈希函数,所述T为所述第二交易的合并字符串,所述G为预设的椭圆曲线的基点。
以上介绍了所述第一目标节点基于为所述第一交易设定的第一秘密值,计算得到第一交易的第一承诺值,以及所述第二用户节点基于为所述第一交易设定的第二秘密值,计算得到第一交易的第二承诺值的过程,下面详细介绍判断所述第二秘密值与所述第一秘密值是否相同的具体过程。
在本发明实施例中,提出一种判断所述第二秘密值与所述第一秘密值是否相同的具体实现方式,主要过程为:基于所述第一交易的第一承诺值、所述第一交易的第二承诺值、所述第二交易的金额及所述第二交易的第一承诺值,判断预设的配对运算等式是否成立,如果是,则确定所述第二秘密值与所述第一秘密值相同,如果否,则确定所述第二秘密值与所述第一秘密值不相同
具体的,上述具体实现方式包括以下步骤:
第一步,将所述第二交易的金额与所述第二交易的第一承诺值,进行字符串合并,得到第二交易的合并字符串;
第二步,基于所述第二交易的合并字符串,利用预设的第三哈希函数,得到第六哈希值;
需要说明的是,本发明实施例中的所述第六哈希值与所述第三哈希值相同,不同的名称是为了区分秘密值的判断过程和第一交易的第二承诺值的计算过程。
第三步,基于所述第一交易的第一承诺值及所述第一交易的第二承诺值,利用配对运算的计算公式e(a,c),得到第一配对值;并基于所述第六哈希值、预设的椭圆曲线的基点及所述第一交易的第一承诺值,利用配对运算的计算公式e(M'G,b),得到第二配对值;
第四步,判断所述第一配对值与所述第二配对值是否相等,如果是,则确定所述配对运算等式成立,如果否,则确定所述配对运算等式不成立;
第五步,如果所述配对运算等式成立,则确定所述第二秘密值与所述第一秘密值相同,如果所述配对运算等式不成立,则确定所述第二秘密值与所述第一秘密值不相同。
其中,所述配对运算等式为:e(a,c)=e(M'G,b),
其中,所述a和所述b为所述第一交易的第一承诺值,所述c为所述第一交易的第二承诺值,所述M'为所述第六哈希值,M'=H3(T),所述H3为所述第三哈希函数,所述T为所述第二交易的合并字符串,所述G为预设的椭圆曲线的基点。
在该种具体实现方式中,验证所述配对运算等式是否成立,如果是,则确定所述第二秘密值与所述第一秘密值相同,如果否,则确定所述第二秘密值与所述第一秘密值不相同。该种实现方式能够快速、简便地得到判断结果,提高验证效率。
需要说明的是,区块链中的任何用户节点都可以进行上述验证过程。
以下详细介绍本发明实施例的等值测试承诺的理论,以便于理解利用预设的配对运算等式e(a,c)=e(M'G,b),能够判断所述第二秘密值与所述第一秘密值是否相同的原理。
首先,对涉及到的一些现有公式及名词予以简单介绍:
1)配对运算
配对运算e(,)是现有的一种计算方法,在此,不再详述所述配对运算的计算过程,仅仅示出所述配对运算所满足的一种特定关系,所述关系为:e(AG,BG)=e(ABG,G)=e(G,ABG)。其中,A和B可以理解为椭圆曲线的基点G的系数。
2)椭圆曲线的基点
椭圆曲线的形状并不是椭圆的,只是因为椭圆曲线的描述方程,类似于计算一个椭圆周长的方程,故因此得名椭圆曲线。
一条椭圆曲线是在射影平面上满足威尔斯特拉斯方程的所有点的集合。
所述威尔斯特拉斯方程为:
Y2Z+a1XYZ+a3YZ2=X3+a2X2Z+a4XZ2+a6Z3
椭圆曲线的基点是椭圆曲线加法群的大素数因子子群的一个生成元。对于椭圆曲线的基点的概念并不做详细说明,获取一个椭圆曲线的基点可以采用现有的多种方法,在此不做详述。
可以简单的理解为:椭圆曲线的基点为一个二维坐标,以符号G表示,G所支持的运算只有倍数运算和加减运算,如3G=G+G+G,2G+4G=6G,12G-4G=8G等;对于乘法运算和除法运算是不支持的,如2G*3G,2G/3G等。
下面,具体分析配对运算等式e(a,c)=e(M'G,b)的判断原理。
根据a=x1G,b=x2G,x1=H1(r1),x2=H2(r1),x′1=H1(r2),x'2=H2(r2),M=H3(T),M'=H3(T)。
得到配对运算等式左侧为:得到配对运算等式右侧为:e(M'G,b)=e(H3(T)G,H2(r1)G)。
根据配对运算满足的关系,得到:
及
e(M'G,b)=e(H3(T)G,H2(r1)G)=e(H3(T)H2(r1)G,G)。
那么,现在对于验证e(a,c)=e(M'G,b)是否成立的问题,就变成了验证是否成立的问题。
即验证是否成立。
进一步的,验证是否成立。
对于第一交易的第一承诺值a=x1G=H1(r1)G,b=x2G=H2(r1),虽然a和b是公开的,但由于G不支持除法运算,所以其他用户节点无法基于b/a得到
基于概率理论,如果r2≠r1不同,则会以几乎百分之百的概率使得:
所以,可以认为:当一个用户节点在不知道r1的情况下,无法伪造r2≠r1,使得换句话说,只有知道r1的用户节点,才能知道其他用户节点无法获知
因此,完全有理由得出以下结论:
如果则r2=r1;如果则r2≠r1。
即:若配对运算等式成立,则所述第二秘密值与所述第一秘密值相同,若配对运算等式不成立,则所述第二秘密值与所述第一秘密值不相同。
因此,在本发明实施例中,引入等值测试承诺的理论,利用预设的配对运算等式e(a,c)=e(M'G,b),判断所述第一秘密值与所述第二秘密值是否相同是有效的。
因此,本发明实施例所提出的等值测试承诺的理论,用来验证一交易的接收者的身份合法性,是有效的。
相应于上述方法实施例,本发明实施例还提供了一种基于等值测试承诺的区块链交易验证装置,如图3所示,该装置包括:
第一获取模块301,用于获取第二交易的金额、作为第二交易的合法接收者的第二目标节点对于第二交易的第一承诺值,以及,作为第一交易的待验证接收合法性的第二用户节点对于所述第一交易的第二承诺值;其中,所述第一交易的第二承诺值是:所述第二用户节点基于为所述第一交易设定的第二秘密值,预先计算得到的;
第二获取模块302,用于获取作为所述第一交易的合法接收者的第一目标节点对于所述第一交易的第一承诺值;其中,所述第一交易的第一承诺值是:所述第一目标节点基于为所述第一交易设定的第一秘密值,预先计算得到的;
验证模块303,用于基于所述第一交易的第一承诺值、所述第一交易的第二承诺值、所述第二交易的金额及所述第二交易的第一承诺值,判断所述第二秘密值与所述第一秘密值是否相同,如果是,则确定所述第二用户节点与所述第一目标节点是同一用户节点,如果否,则确定所述第二用户节点与所述第一目标节点不是同一用户节点。
可选的,在本发明实施例中,所述验证模块303,包括:
判断子模块,用于基于所述第一交易的第一承诺值、所述第一交易的第二承诺值、所述第二交易的金额及所述第二交易的第一承诺值,判断预设的配对运算等式是否成立,如果是,则确定所述第二秘密值与所述第一秘密值相同,如果否,则确定所述第二秘密值与所述第一秘密值不相同。
可选的,在本发明实施例中,所述判断子模块,具体用于:
将所述第二交易的金额与所述第二交易的第一承诺值,进行字符串合并,得到第二交易的合并字符串;
基于所述第二交易的合并字符串,利用预设的第三哈希函数,得到第六哈希值;
基于所述第一交易的第一承诺值及所述第一交易的第二承诺值,利用配对运算的计算公式e(a,c),得到第一配对值;并基于所述第六哈希值、预设的椭圆曲线的基点及所述第一交易的第一承诺值,利用配对运算的计算公式e(M'G,b),得到第二配对值;
判断所述第一配对值与所述第二配对值是否相等,如果是,则确定所述配对运算等式成立,如果否,则确定所述配对运算等式不成立;
其中,所述配对运算等式为:e(a,c)=e(M'G,b),
其中,所述a和所述b为所述第一交易的第一承诺值,所述c为所述第一交易的第二承诺值,所述M'为所述第六哈希值,M'=H3(T),所述H3为所述第三哈希函数,所述T为所述第二交易的合并字符串,所述G为预设的椭圆曲线的基点。
可选的,在本发明实施例中,所述装置还包括:第一承诺值确定模块,用于所述第一目标节点基于为所述第一交易设定的第一秘密值,计算得到第一交易的第一承诺值,所述第一承诺值确定模块,包括:
第一获取子模块,用于所述第一目标节点获取为第一交易设定的第一秘密值;
第一计算子模块,用于所述第一目标节点基于所述第一秘密值,利用多个预设的哈希函数及预设的第一承诺值的计算公式,计算第一交易的第一承诺值。
可选的,在本发明实施例中,所述第一计算子模块,具体用于:
所述第一目标节点基于所述第一秘密值,利用预设的第一哈希函数,得到第一哈希值,并基于所述第一秘密值,利用预设的第二哈希函数,得到第二哈希值;
所述第一目标节点基于所述第一哈希值、所述第二哈希值及预设的椭圆曲线的基点,利用预设的第一承诺值的计算公式,计算第一交易的第一承诺值;
其中,所述第一承诺值的计算公式为:a=x1G和b=x2G,
其中,所述a和所述b为所述第一交易的第一承诺值,x1=H1(r1),x2=H2(r1),所述x1为所述第一哈希值,所述x2为所述第二哈希值,所述H1为所述第一哈希函数,所述H2为所述第二哈希函数,所述r1为所述第一秘密值,且所述r1为整数,所述G为预设的椭圆曲线的基点。
可选的,在本发明实施例中,所述装置还包括:第二承诺值确定模块,用于所述第二用户节点基于为所述第一交易设定的第二秘密值,计算得到第一交易的第二承诺值,所述第二承诺值确定模块,包括:
第二获取子模块,用于所述第二用户节点获取为第一交易设定的第二秘密值;
第三获取子模块,用于所述第二用户节点获取第二交易的金额及作为第二交易的合法接收者的第二目标节点对于第二交易的第一承诺值;
第二计算子模块,用于所述第二用户节点基于所述第二秘密值、所述第二交易的金额及所述第二交易的第一承诺值,利用多个预设的哈希函数及预设的第二承诺值的计算公式,计算第一交易的第二承诺值。
可选的,在本发明实施例中,所述第二计算子模块,具体用于:
所述第二用户节点基于所述第二秘密值,利用预设的第一哈希函数,得到第四哈希值,并基于所述第二秘密值,利用预设的第二哈希函数,得到第五哈希值;
所述第二用户节点将所述第二交易的金额与所述第二交易的第一承诺值,进行字符串合并,得到第二交易的合并字符串;
所述第二用户节点基于所述第二交易的合并字符串,利用预设的第三哈希函数,得到第三哈希值;
所述第二用户节点基于所述第四哈希值、所述第五哈希值、所述第三哈希值及预设的椭圆曲线的基点,利用预设的第二承诺值的计算公式,计算第一交易的第二承诺值为;
其中,所述第二承诺值的计算公式为:
其中,所述c为所述第一交易的第二承诺值,所述x'1为所述第四哈希值,所述x'2为所述第五哈希值,x'1=H1(r2),x'2=H2(r2),所述H1为所述第一哈希函数,所述H2为所述第二哈希函数,所述r2为所述第二秘密值,且所述r2为整数,所述M为所述第三哈希值,M=H3(T),所述H3为所述第三哈希函数,所述T为所述第二交易的合并字符串,所述G为预设的椭圆曲线的基点。
本发明实施例所提供的方案中,所述第一秘密值仅为所述第一交易的合法接收者的第一目标节点所知,所述第二秘密值仅为所述第一交易的待验证接收合法性的第二用户节点所知,因此,若所述第二秘密值与所述第一秘密值相同,则所述第二用户节点与所述第一目标节点必是同一用户节点,若所述第二秘密值与所述第一秘密值不相同,则所述第二用户节点与所述第一目标节点必不是同一用户节点。因此,本发明实施例所提供的方案,能够验证接收用户节点身份的合法性,保证交易的安全性。并且本发明实施例所提供的方案中,所述第一交易的第一承诺值是基于为所述第一交易设定的第一秘密值计算得到的,所述第一交易的第二承诺值是基于为所述第一交易设定的第二秘密值计算得到的,秘密值与交易是对应的,也就是说,一用户节点在不同的交易中,所使用的秘密值不同,因此,区块链中的任何用户节点无法基于所述第一交易的第一承诺值或所述第一交易的第二承诺值,追溯该用户的交易历史,统计该用户的余额,因此,应用本发明实施例能够实现保护用户隐私的目的。
相应于上述方法实施例,本发明实施例还提供了一种电子设备,如图4所示,可以包括处理器401和存储器402,其中,
所述存储器402,用于存放计算机程序;
所述处理器401,用于执行所述存储器402上所存放的程序时,实现本发明实施例所提供的基于等值测试承诺的区块链交易验证方法的步骤。
上述存储器可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-Volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离于上述处理器的存储装置。
上述处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processor,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
通过上述电子设备,能够实现:所述第一秘密值仅为所述第一交易的合法接收者的第一目标节点所知,所述第二秘密值仅为所述第一交易的待验证接收合法性的第二用户节点所知,因此,若所述第二秘密值与所述第一秘密值相同,则所述第二用户节点与所述第一目标节点必是同一用户节点,若所述第二秘密值与所述第一秘密值不相同,则所述第二用户节点与所述第一目标节点必不是同一用户节点。因此,本发明实施例所提供的方案,能够验证接收用户节点身份的合法性,保证交易的安全性。并且本发明实施例所提供的方案中,所述第一交易的第一承诺值是基于为所述第一交易设定的第一秘密值计算得到的,所述第一交易的第二承诺值是基于为所述第一交易设定的第二秘密值计算得到的,秘密值与交易是对应的,也就是说,一用户节点在不同的交易中,所使用的秘密值不同,因此,区块链中的任何用户节点无法基于所述第一交易的第一承诺值或所述第一交易的第二承诺值,追溯该用户的交易历史,统计该用户的余额,因此,应用本发明实施例能够实现保护用户隐私的目的。
另外,相应于上述实施例所提供的基于等值测试承诺的区块链交易验证方法,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时,实现本发明实施例所提供的基于等值测试承诺的区块链交易验证方法的步骤。
上述计算机可读存储介质存储有在运行时,执行本发明实施例所提供的基于等值测试承诺的区块链交易验证方法的应用程序,因此能够实现:所述第一秘密值仅为所述第一交易的合法接收者的第一目标节点所知,所述第二秘密值仅为所述第一交易的待验证接收合法性的第二用户节点所知,因此,若所述第二秘密值与所述第一秘密值相同,则所述第二用户节点与所述第一目标节点必是同一用户节点,若所述第二秘密值与所述第一秘密值不相同,则所述第二用户节点与所述第一目标节点必不是同一用户节点。因此,本发明实施例所提供的方案,能够验证接收用户节点身份的合法性,保证交易的安全性。并且本发明实施例所提供的方案中,所述第一交易的第一承诺值是基于为所述第一交易设定的第一秘密值计算得到的,所述第一交易的第二承诺值是基于为所述第一交易设定的第二秘密值计算得到的,秘密值与交易是对应的,也就是说,一用户节点在不同的交易中,所使用的秘密值不同,因此,区块链中的任何用户节点无法基于所述第一交易的第一承诺值或所述第一交易的第二承诺值,追溯该用户的交易历史,统计该用户的余额,因此,应用本发明实施例能够实现保护用户隐私的目的。
对于电子设备以及计算机可读存储介质实施例而言,由于其所涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种基于等值测试承诺的区块链交易验证方法,其特征在于,包括:
获取第二交易的金额、作为第二交易的合法接收者的第二目标节点对于第二交易的第一承诺值,以及,作为第一交易的待验证接收合法性的第二用户节点对于所述第一交易的第二承诺值;其中,所述第一交易的第二承诺值是:所述第二用户节点基于为所述第一交易设定的第二秘密值,预先计算得到的,所述第二交易的第一承诺值是:所述第二目标节点基于为所述第二交易设定的第一秘密值,预先计算得到的;
获取作为所述第一交易的合法接收者的第一目标节点对于所述第一交易的第一承诺值;其中,所述第一交易的第一承诺值是:所述第一目标节点基于为所述第一交易设定的第一秘密值,预先计算得到的;
基于所述第一交易的第一承诺值、所述第一交易的第二承诺值、所述第二交易的金额及所述第二交易的第一承诺值,判断所述第二秘密值与所述为所述第一交易设定的第一秘密值是否相同,如果是,则确定所述第二用户节点与所述第一目标节点是同一用户节点,如果否,则确定所述第二用户节点与所述第一目标节点不是同一用户节点。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一交易的第一承诺值、所述第一交易的第二承诺值、所述第二交易的金额及所述第二交易的第一承诺值,判断所述第二秘密值与所述为所述第一交易设定的第一秘密值是否相同,包括:
基于所述第一交易的第一承诺值、所述第一交易的第二承诺值、所述第二交易的金额及所述第二交易的第一承诺值,判断预设的配对运算等式是否成立,如果是,则确定所述第二秘密值与所述为所述第一交易设定的第一秘密值相同,如果否,则确定所述第二秘密值与所述为所述第一交易设定的第一秘密值不相同。
3.根据权利要求2所述的方法,其特征在于,所述基于所述第一交易的第一承诺值、所述第一交易的第二承诺值、所述第二交易的金额及所述第二交易的第一承诺值,判断预设的配对运算等式是否成立,包括:
将所述第二交易的金额与所述第二交易的第一承诺值,进行字符串合并,得到第二交易的合并字符串;
基于所述第二交易的合并字符串,利用预设的第三哈希函数,得到第六哈希值;
基于所述第一交易的第一承诺值及所述第一交易的第二承诺值,利用配对运算的计算公式e(a,c),得到第一配对值;并基于所述第六哈希值、预设的椭圆曲线的基点及所述第一交易的第一承诺值,利用配对运算的计算公式e(M'G,b),得到第二配对值;
判断所述第一配对值与所述第二配对值是否相等,如果是,则确定所述配对运算等式成立,如果否,则确定所述配对运算等式不成立;
其中,所述配对运算等式为:e(a,c)=e(M'G,b),
其中,所述a和所述b为所述第一交易的第一承诺值,所述c为所述第一交易的第二承诺值,所述M'为所述第六哈希值,M'=H3(T),所述H3为所述第三哈希函数,所述T为所述第二交易的合并字符串,所述G为预设的椭圆曲线的基点。
4.根据权利要求1所述的方法,其特征在于,所述第一目标节点基于为所述第一交易设定的第一秘密值,计算得到第一交易的第一承诺值的过程,包括:
所述第一目标节点获取为第一交易设定的第一秘密值;
所述第一目标节点基于所述第一秘密值,利用多个预设的哈希函数及预设的第一承诺值的计算公式,计算第一交易的第一承诺值。
5.根据权利要求4所述的方法,其特征在于,所述第一目标节点基于所述第一秘密值,利用多个预设的哈希函数及预设的第一承诺值的计算公式,计算第一交易的第一承诺值,包括:
所述第一目标节点基于所述第一秘密值,利用预设的第一哈希函数,得到第一哈希值,并基于所述第一秘密值,利用预设的第二哈希函数,得到第二哈希值;
所述第一目标节点基于所述第一哈希值、所述第二哈希值及预设的椭圆曲线的基点,利用预设的第一承诺值的计算公式,计算第一交易的第一承诺值;
其中,所述第一承诺值的计算公式为:a=x1G和b=x2G,
其中,所述a和所述b为所述第一交易的第一承诺值,x1=H1(r1),x2=H2(r1),所述x1为所述第一哈希值,所述x2为所述第二哈希值,所述H1为所述第一哈希函数,所述H2为所述第二哈希函数,所述r1为所述第一秘密值,且所述r1为整数,所述G为预设的椭圆曲线的基点。
6.根据权利要求1所述的方法,其特征在于,所述第二用户节点基于为所述第一交易设定的第二秘密值,计算得到第一交易的第二承诺值的过程,包括:
所述第二用户节点获取为第一交易设定的第二秘密值;
所述第二用户节点获取第二交易的金额及作为第二交易的合法接收者的第二目标节点对于第二交易的第一承诺值;
所述第二用户节点基于所述第二秘密值、所述第二交易的金额及所述第二交易的第一承诺值,利用多个预设的哈希函数及预设的第二承诺值的计算公式,计算第一交易的第二承诺值。
7.根据权利要求6所述的方法,其特征在于,所述第二用户节点基于所述第二秘密值、所述第二交易的金额及所述第二交易的第一承诺值,利用多个预设的哈希函数及预设的第二承诺值的计算公式,计算第一交易的第二承诺值,包括:
所述第二用户节点基于所述第二秘密值,利用预设的第一哈希函数,得到第四哈希值,并基于所述第二秘密值,利用预设的第二哈希函数,得到第五哈希值;
所述第二用户节点将所述第二交易的金额与所述第二交易的第一承诺值,进行字符串合并,得到第二交易的合并字符串;
所述第二用户节点基于所述第二交易的合并字符串,利用预设的第三哈希函数,得到第三哈希值;
所述第二用户节点基于所述第四哈希值、所述第五哈希值、所述第三哈希值及预设的椭圆曲线的基点,利用预设的第二承诺值的计算公式,计算第一交易的第二承诺值为;
其中,所述第二承诺值的计算公式为:
其中,所述c为所述第一交易的第二承诺值,所述x'1为所述第四哈希值,所述x'2为所述第五哈希值,x'1=H1(r2),x'2=H2(r2),所述H1为所述第一哈希函数,所述H2为所述第二哈希函数,所述r2为所述第二秘密值,且所述r2为整数,所述M为所述第三哈希值,M=H3(T),所述H3为所述第三哈希函数,所述T为所述第二交易的合并字符串,所述G为预设的椭圆曲线的基点。
8.一种基于等值测试承诺的区块链交易验证装置,其特征在于,包括:
第一获取模块,用于获取第二交易的金额、作为第二交易的合法接收者的第二目标节点对于第二交易的第一承诺值,以及,作为第一交易的待验证接收合法性的第二用户节点对于所述第一交易的第二承诺值;其中,所述第一交易的第二承诺值是:所述第二用户节点基于为所述第一交易设定的第二秘密值,预先计算得到的,所述第二交易的第一承诺值是:所述第二目标节点基于为所述第二交易设定的第一秘密值,预先计算得到的;
第二获取模块,用于获取作为所述第一交易的合法接收者的第一目标节点对于所述第一交易的第一承诺值;其中,所述第一交易的第一承诺值是:所述第一目标节点基于为所述第一交易设定的第一秘密值,预先计算得到的;
验证模块,用于基于所述第一交易的第一承诺值、所述第一交易的第二承诺值、所述第二交易的金额及所述第二交易的第一承诺值,判断所述第二秘密值与所述为所述第一交易设定的第一秘密值是否相同,如果是,则确定所述第二用户节点与所述第一目标节点是同一用户节点,如果否,则确定所述第二用户节点与所述第一目标节点不是同一用户节点。
9.一种电子设备,其特征在于,包括处理器和存储器,其中,
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现权利要求1-7任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810611953.XA CN108769054B (zh) | 2018-06-14 | 2018-06-14 | 一种基于等值测试承诺的区块链交易验证方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810611953.XA CN108769054B (zh) | 2018-06-14 | 2018-06-14 | 一种基于等值测试承诺的区块链交易验证方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108769054A CN108769054A (zh) | 2018-11-06 |
CN108769054B true CN108769054B (zh) | 2019-05-21 |
Family
ID=64022087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810611953.XA Active CN108769054B (zh) | 2018-06-14 | 2018-06-14 | 一种基于等值测试承诺的区块链交易验证方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108769054B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109447791B (zh) * | 2018-11-09 | 2021-07-16 | 北京邮电大学 | 一种基于区块链的资金交易方法及装置 |
PL3545644T3 (pl) * | 2018-11-27 | 2021-06-28 | Advanced New Technologies Co., Ltd. | System i sposób ochrony informacji |
CN110781503B (zh) * | 2019-09-18 | 2022-05-17 | 深圳壹账通智能科技有限公司 | 数据调用方法、装置及计算机可读存储介质 |
CN113221137B (zh) * | 2021-04-29 | 2023-01-17 | 中国联合网络通信集团有限公司 | 基于区块链的摇号方法和装置 |
CN115603900A (zh) * | 2022-08-24 | 2023-01-13 | 深圳市领存技术有限公司(Cn) | 基于密码学承诺的公平竞标方法、装置及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106548349A (zh) * | 2016-11-02 | 2017-03-29 | 江苏通付盾科技有限公司 | 交易信息验证方法及*** |
CN107612973A (zh) * | 2017-08-18 | 2018-01-19 | 暨南大学 | 用于智能移动端的区块链结构、生成方法及交易验证方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160283920A1 (en) * | 2015-03-28 | 2016-09-29 | Justin Fisher | Authentication and verification of digital data utilizing blockchain technology |
-
2018
- 2018-06-14 CN CN201810611953.XA patent/CN108769054B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106548349A (zh) * | 2016-11-02 | 2017-03-29 | 江苏通付盾科技有限公司 | 交易信息验证方法及*** |
CN107612973A (zh) * | 2017-08-18 | 2018-01-19 | 暨南大学 | 用于智能移动端的区块链结构、生成方法及交易验证方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108769054A (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108769054B (zh) | 一种基于等值测试承诺的区块链交易验证方法及装置 | |
US20240078541A1 (en) | Computer-implemented system and method for exchange of data | |
CN110473105B (zh) | 一种区块链交易结算方法、***及相关设备 | |
CN109325331B (zh) | 基于区块链和可信计算平台的大数据采集交易*** | |
CN107994991B (zh) | 一种数据处理方法、数据处理服务器及存储介质 | |
CN110419053B (zh) | 用于信息保护的***和方法 | |
CN109359974A (zh) | 区块链交易方法及装置、电子设备 | |
EP3718069A1 (en) | Blockchain system for confidential and anonymous smart contracts | |
Forte et al. | Beyond Bitcoin-Part I: A critical look at blockchain-based systems | |
EP3776287A1 (en) | Systems and methods for authenticating a digitally signed assertion using verified evaluators | |
KR101142656B1 (ko) | 위조로부터 전자칩을 보호하는 공용키 암호화 방법 | |
CN109544129B (zh) | 区块链交易方法及装置、电子设备 | |
CN110046996A (zh) | 区块链交易的生成方法和装置 | |
CN109359971A (zh) | 区块链交易方法及装置、电子设备 | |
CN110546672A (zh) | 使用区块链分发数据记录的***和方法 | |
CN109067791A (zh) | 网络中用户身份认证方法和装置 | |
CN111612600A (zh) | 区块链拍卖方法、设备、存储介质及区块链*** | |
CN110728576A (zh) | 一种基于零知识证明的去中心化匿名数据交易方法 | |
CN109447791A (zh) | 一种基于区块链的资金交易方法及装置 | |
CN109285073A (zh) | 数字货币交易方法及装置 | |
Singh et al. | Performance comparison of executing fast transactions in bitcoin network using verifiable code execution | |
CN109660344A (zh) | 基于非对称密钥池路由装置的抗量子计算区块链交易方法和*** | |
CN108900310A (zh) | 区块链签名处理方法及区块链签名处理装置 | |
CN112541759A (zh) | 区块链***中基于utxo模型的隐藏交易方法、装置及相关产品 | |
CN116150788A (zh) | 一种数据交换有效性验证方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |