CN112115201B - 基于区块链的交易处理方法、交易追踪方法及装置 - Google Patents

基于区块链的交易处理方法、交易追踪方法及装置 Download PDF

Info

Publication number
CN112115201B
CN112115201B CN202010976159.2A CN202010976159A CN112115201B CN 112115201 B CN112115201 B CN 112115201B CN 202010976159 A CN202010976159 A CN 202010976159A CN 112115201 B CN112115201 B CN 112115201B
Authority
CN
China
Prior art keywords
transaction
amount
bill
commitment
transaction amount
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
Application number
CN202010976159.2A
Other languages
English (en)
Other versions
CN112115201A (zh
Inventor
李武璐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CCB Finetech Co Ltd
Original Assignee
CCB Finetech Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by CCB Finetech Co Ltd filed Critical CCB Finetech Co Ltd
Priority to CN202010976159.2A priority Critical patent/CN112115201B/zh
Publication of CN112115201A publication Critical patent/CN112115201A/zh
Application granted granted Critical
Publication of CN112115201B publication Critical patent/CN112115201B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management

Abstract

本发明提供基于区块链的交易处理方法、交易追踪方法及装置,所述方法包括根据交易金额和第一随机数获得交易金额承诺,并获得交易金额的合法性证明结果;根据交易发起账户的初始状态和交易金额承诺,获得交易发起账户的交易后状态,并获得交易发起账户的交易后金额的合法性证明结果;根据第二随机数、交易接收方的查询公钥和消费公钥,获得交易金额承诺的公钥,并获得交易金额密文;生成交易账单;根据交易发起方的私钥对所述交易账单进行签名,并将经过签名的交易账单发布到区块链上。所述装置用于执行上述方法。本发明实施例提供的基于区块链的交易处理方法、交易追踪方法及装置,提高了交易的安全性。

Description

基于区块链的交易处理方法、交易追踪方法及装置
技术领域
本发明涉及区块链技术领域,具体涉及基于区块链的交易处理方法、交易追踪方法及装置。
背景技术
当前,实现隐私保护的区块链主要以门罗币、零币等为代表,二者都使用了与比特币相同的UTXO(Unspent transaction output)模型。
对于门罗币而言,利用可链接性防止隐私货币双花的潜在攻击,通过环签名实现了交易发起者的身份保护,通过密钥协商机制实现了交易接收者的身份隐私保护,是当前最主流的隐私保护数字货币系统。此外,还出现了其他基于混币技术(Coin Mixing)的账户模型隐私保护区块链解决方案,例如包含Zether系统等。对于门罗币系统而言,虽然提供了极强的隐私保护功能,链上的验证者无法获取交易双方的身份信息以及金额信息,但是其基于UTXO模型,无法在基于账户模型的系统中得到应用,无法提供基于账户模型的智能合约技术,无法在主流平台上进行推广,应用场景相对封闭,难以灵活部署到其他应用上。对于Zether系统而言,虽然其通过复杂的零知识证明系统,实现了交易双方身份和交易金额的完全隐私保护,但是其存在以下严重问题:(1)用户隐私账户的状态修改权利开放,任何节点可以修改账户内容,虽然资金的安全性可以由零知识证明系统保障,但是在别人修改自己账户信息的时间节点,用户自己无法使用账户,系统对于单个区块生成的时间轴需要有严格的管理机制,用户自己的交易可能由于别人写入修改而无法完成,会导致严重的安全隐患,例如恶意用户不停修改某个忠实用户的账户信息,导致忠实用户的账户瘫痪,无法进行正常操作;(2)对于32位比特的金额,存储全部隐私金额数据库需要3.2PB,如果对于64为比特金额,则无法有效存储下如此海量的数据,用户无法获取如此的存储空间,即使拥有空间,搜索速度也是巨大的问题。而当今数字货币以64位金额为常见格式,少量的具备128位金额,Zether的实用性在高金额比特面前大打折扣;(3)Zether的验证环节运算量较大,在以太坊模型中,手续费(Gas)消耗接近上限,不足以实现功能丰富的智能合约(Gas耗尽合约结束),在实际应用中,由于验证缓慢,也难以支持高吞吐量(TPS)的数字货币应用。
发明内容
针对现有技术中的问题,本发明实施例提供基于区块链的交易处理方法、交易追踪方法及装置,能够至少部分地解决现有技术中存在的问题。
第一方面,本发明提出一种基于区块链的交易处理方法,包括:
根据交易金额和所述交易金额对应的第一随机数获得交易金额承诺,并根据所述交易金额、所述交易金额承诺以及可审计范围证明规则,获得所述交易金额的合法性证明结果;
根据交易发起账户的初始状态和所述交易金额承诺,获得所述交易发起账户的交易后状态,并根据所述交易发起账户的交易后金额、所述交易发起账户的交易后状态以及所述可审计范围证明规则,获得所述交易发起账户的交易后金额的合法性证明结果;
根据第二随机数、交易接收方的查询公钥和消费公钥,获得所述交易金额承诺的公钥,并根据所述交易发起方与交易接收方的共享密钥对所述交易金额和所述第一随机数进行加密,获得交易金额密文;
根据所述交易发起账户的交易后状态、所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥、所述交易金额的合法性证明结果、所述交易发起账户的交易后金额的合法性证明结果和所述交易金额密文,生成交易账单;
根据交易发起方的私钥对所述交易账单进行签名,并将经过签名的交易账单发布到区块链上。
第二方面,本发明还提供一种基于区块链的交易处理方法,包括:
若判断获知已经上链的交易账单中存在给本地转账的交易账单,则根据第二随机数对应的中间值、本地消费私钥和本地查询私钥,获得交易金额承诺的私钥;其中,所述交易账单包括所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥和交易金额密文;
根据交易发起方与本地的共享密钥对所述交易金额密文进行解密,获得待验证交易金额和待验证第一随机数;
若判断获知所述待验证交易金额和所述待验证第一随机数通过所述交易金额承诺的验证,则将待验证交易金额作为交易金额进行收款;
从已经上链的交易账单中获取m-1个其他交易金额承诺,并与所述给本地转账的交易账单包括的交易金额承诺构成交易金额承诺集;其中,所述其他交易金额承诺是与本次交易无关的交易金额承诺;
根据所述交易金额承诺集中每个交易金额承诺的公钥,建立第一公钥集;
根据本地收款后更新金额以及本地收款后更新金额对应的第五随机数,获得所述本地收款后更新金额状态,并根据所述本地收款后更新金额、所述本地收款后更新金额状态以及可审计范围证明规则,获得所述本地收款后更新金额的合法性证明结果;
根据本地原始金额状态、所述本地收款后更新金额状态、所述交易金额承诺集以及所述第一公钥集,建立第二公钥集;
根据所述给本地转账的交易账单包括的交易金额承诺的公钥、验证通过的第一随机数、所述本地原始金额对应的随机数和所述第五随机数,获得可审计可链接双环签名的私钥;
根据所述可审计可链接双环签名的私钥、所述交易金额承诺的私钥、所述第一公钥集和所述第二公钥集对交易消息进行可审计可链接双环签名,并输出可审计可链接双环签名;其中,所述交易消息包括所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额的合法性证明和所述交易金额承诺集;所述可审计可链接双环签名包括交易标签和可审计可链接双环签名结果;所述交易标签是基于所述本地消费私钥或本地查询私钥获得的;
根据所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额的合法性证明、所述交易金额承诺集、所述第一公钥集和所述可审计可链接双环签名,生成收款账单;
根据本地私钥对所述收款账单进行签名,并将经过签名的收款账单发布到区块链上。
第三方面,本发明又提供一种基于区块链的交易处理方法,包括:
从区块链上获取交易账单,所述交易账单包括交易发起账户的交易后状态、交易金额承诺、交易金额承诺的公钥、交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果;
若判断获知所述交易账单通过合法性验证,则将所述交易账单上链;其中,所述交易账单的合法性验证包括所述交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果的合法性检验,所述交易账单的签名的合法性检验以及根据所述交易发起账户的初始状态和所述交易金额承诺对所述交易发起账户的交易后状态的准确性检验。
第四方面,本发明再提供一种基于区块链的交易处理方法,包括:
从区块链上获取收款账单,所述收款账单包括交易标签、本地收款后更新金额的合法性证明和可审计可链接双环签名;
若判断获知所述交易标签未在区块链的其他收款账单中出现过,则对所述收款账单进行合法性验证;
若判断获知所述收款账单通过合法性验证,则将所述收款账单上链;其中,所述收款账单的合法性验证包括所述本地收款后更新金额的合法性证明的合法性验证,所述收款账单签名的合法性验证以及所述可审计可链接双环签名的合法性检验。
第五方面,本发明提供一种基于区块链的交易追踪方法,包括:
获取可审计范围证明结果,所述可审计范围证明结果为交易账单中的交易金额的合法性证明结果、交易发起账户的交易后金额的合法性证明结果或者收款账单中的本地收款后更新金额的合法性证明结果;其中,所述可审计范围证明结果包括基于隐私金额承诺展开得到的金额承诺集;
根据监管私钥计算所述金额承诺集中每个子承诺集的子金额审计中间值;其中,所述监管私钥是预设的;
根据每个子承诺集的追踪密钥确定每个子承诺集对应的比特展开项值;
根据各个子承诺集的比特展开项值,计算获得所述金额承诺集对应的原始金额。
第六方面,本发明提供一种基于区块链的交易处理装置,包括:
第一获得单元,用于根据交易金额和所述交易金额对应的第一随机数获得交易金额承诺,并根据所述交易金额、所述交易金额承诺以及可审计范围证明规则,获得所述交易金额的合法性证明结果;
第二获得单元,用于根据交易发起账户的初始状态和所述交易金额承诺,获得所述交易发起账户的交易后状态,并根据所述交易发起账户的交易后金额、所述交易发起账户的交易后状态以及所述可审计范围证明规则,获得所述交易发起账户的交易后金额的合法性证明结果;
加密单元,用于根据第二随机数、交易接收方的查询公钥和消费公钥,获得所述交易金额承诺的公钥,并根据所述交易发起方与交易接收方的共享密钥对所述交易金额和所述第一随机数进行加密,获得交易金额密文;
第一生成单元,用于根据所述交易发起账户的交易后状态、所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥、所述交易金额的合法性证明结果、所述交易发起账户的交易后金额的合法性证明结果和所述交易金额密文,生成交易账单;
第一发布单元,用于根据交易发起方的私钥对所述交易账单进行签名,并将经过签名的交易账单发布到区块链上。
第七方面,本发明还提供一种基于区块链的交易处理装置,包括:
第一判断单元,用于在判断获知已经上链的交易账单中存在给本地转账的交易账单之后,根据第二随机数对应的中间值、本地消费私钥和本地查询私钥,获得交易金额承诺的私钥;其中,所述交易账单包括所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥和交易金额密文;
解密单元,用于根据交易发起方与本地的共享密钥对所述交易金额密文进行解密,获得待验证交易金额和待验证第一随机数;
第一验证单元,用于在判断获知所述待验证交易金额和所述待验证第一随机数通过所述交易金额承诺的验证之后,将待验证交易金额作为交易金额进行收款;
构成单元,用于从已经上链的交易账单中获取m-1个其他交易金额承诺,并与所述给本地转账的交易账单包括的交易金额承诺构成交易金额承诺集;其中,所述其他交易金额承诺是与本次交易无关的交易金额承诺;
第一建立单元,用于根据所述交易金额承诺集中每个交易金额承诺的公钥,建立第一公钥集;
第三获得单元,用于根据本地收款后更新金额以及本地收款后更新金额对应的第五随机数,获得所述本地收款后更新金额状态,并根据所述本地收款后更新金额、所述本地收款后更新金额状态以及可审计范围证明规则,获得所述本地收款后更新金额的合法性证明结果;
第二建立单元,用于根据本地原始金额状态、所述本地收款后更新金额状态、所述交易金额承诺集以及所述第一公钥集,建立第二公钥集;
第四获得单元,用于根据所述给本地转账的交易账单包括的交易金额承诺的公钥、验证通过的第一随机数、所述本地原始金额对应的随机数和所述第五随机数,获得可审计可链接双环签名的私钥;
签名单元,用于根据所述可审计可链接双环签名的私钥、所述交易金额承诺的私钥、所述第一公钥集和所述第二公钥集对交易消息进行可审计可链接双环签名,并输出可审计可链接双环签名;其中,所述交易消息包括所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额的合法性证明和所述交易金额承诺集;所述可审计可链接双环签名包括交易标签和可审计可链接双环签名结果;所述交易标签是基于所述本地消费私钥或本地查询私钥获得的;
第二生成单元,用于根据所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额的合法性证明、所述交易金额承诺集、所述第一公钥集和所述可审计可链接双环签名,生成收款账单;
第二发布单元,用于根据本地私钥对所述收款账单进行签名,并将经过签名的收款账单发布到区块链上。
第八方面,本发明又提供一种基于区块链的交易处理装置,包括:
第一获取单元,用于从区块链上获取交易账单,所述交易账单包括交易发起账户的交易后状态、交易金额承诺、交易金额承诺的公钥、交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果;
第二验证单元,用于在判断获知所述交易账单通过合法性验证之后,将所述交易账单上链;其中,所述交易账单的合法性验证包括所述交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果的合法性检验,所述交易账单的签名的合法性检验以及根据所述交易发起账户的初始状态和所述交易金额承诺对所述交易发起账户的交易后状态的准确性检验。
第九方面,本发明再提供一种基于区块链的交易处理装置,包括:
第二获取单元,用于从区块链上获取收款账单,所述收款账单包括交易标签、本地收款后更新金额的合法性证明和可审计可链接双环签名;
第二判断单元,用于在判断获知所述交易标签未在区块链的其他收款账单中出现过之后,对所述收款账单进行合法性验证;
第三验证单元,用于在判断获知所述收款账单通过合法性验证之后,将所述收款账单上链;其中,所述收款账单的合法性验证包括所述本地收款后更新金额的合法性证明的合法性验证,所述收款账单签名的合法性验证以及所述可审计可链接双环签名的合法性检验。
第十方面,本发明提供一种基于区块链的交易追踪装置,包括:
第三获取单元,用于获取可审计范围证明结果,所述可审计范围证明结果为交易账单中的交易金额的合法性证明结果、交易发起账户的交易后金额的合法性证明结果或者收款账单中的本地收款后更新金额的合法性证明结果;其中,所述可审计范围证明结果包括基于隐私金额承诺展开得到的金额承诺集;
第一计算单元,用于根据监管私钥计算所述金额承诺集中每个子承诺集的子金额审计中间值;其中,所述监管私钥是预设的;
确定单元,用于根据每个子承诺集的追踪密钥确定每个子承诺集对应的比特展开项值;
第二计算单元,用于根据各个子承诺集的比特展开项值,计算获得所述金额承诺集对应的原始金额。
第十一方面,本发明提供一种电子设备,包括第一存储器、第一处理器及存储在所述第一存储器上并可在第一处理器上运行的第一计算机程序,所述第一处理器执行所述第一计算机程序时实现如下基于区块链的交易处理方法:
根据交易金额和所述交易金额对应的第一随机数获得交易金额承诺,并根据所述交易金额、所述交易金额承诺以及可审计范围证明规则,获得所述交易金额的合法性证明结果;根据交易发起账户的初始状态和所述交易金额承诺,获得所述交易发起账户的交易后状态,并根据所述交易发起账户的交易后金额、所述交易发起账户的交易后状态以及所述可审计范围证明规则,获得所述交易发起账户的交易后金额的合法性证明结果;根据第二随机数、交易接收方的查询公钥和消费公钥,获得所述交易金额承诺的公钥,并根据所述交易发起方与交易接收方的共享密钥对所述交易金额和所述第一随机数进行加密,获得交易金额密文;根据所述交易发起账户的交易后状态、所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥、所述交易金额的合法性证明结果、所述交易发起账户的交易后金额的合法性证明结果和所述交易金额密文,生成交易账单;根据交易发起方的私钥对所述交易账单进行签名,并将经过签名的交易账单发布到区块链上。或者,
若判断获知已经上链的交易账单中存在给本地转账的交易账单,则根据第二随机数对应的中间值、本地消费私钥和本地查询私钥,获得交易金额承诺的私钥;其中,所述交易账单包括所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥和交易金额密文;根据交易发起方与本地的共享密钥对所述交易金额密文进行解密,获得待验证交易金额和待验证第一随机数;若判断获知所述待验证交易金额和所述待验证第一随机数通过所述交易金额承诺的验证,则将待验证交易金额作为交易金额进行收款;从已经上链的交易账单中获取m-1个其他交易金额承诺,并与所述给本地转账的交易账单包括的交易金额承诺构成交易金额承诺集;其中,所述其他交易金额承诺是与本次交易无关的交易金额承诺;根据所述交易金额承诺集中每个交易金额承诺的公钥,建立第一公钥集;根据本地收款后更新金额以及本地收款后更新金额对应的第五随机数,获得所述本地收款后更新金额状态,并根据所述本地收款后更新金额、所述本地收款后更新金额状态以及可审计范围证明规则,获得所述本地收款后更新金额的合法性证明结果;根据本地原始金额状态、所述本地收款后更新金额状态、所述交易金额承诺集以及所述第一公钥集,建立第二公钥集;根据所述给本地转账的交易账单包括的交易金额承诺的公钥、验证通过的第一随机数、所述本地原始金额对应的随机数和所述第五随机数,获得可审计可链接双环签名的私钥;根据所述可审计可链接双环签名的私钥、所述交易金额承诺的私钥、所述第一公钥集和所述第二公钥集对交易消息进行可审计可链接双环签名,并输出可审计可链接双环签名;其中,所述交易消息包括所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额的合法性证明和所述交易金额承诺集;所述可审计可链接双环签名包括交易标签和可审计可链接双环签名结果;所述交易标签是基于所述本地消费私钥或本地查询私钥获得的;根据所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额的合法性证明、所述交易金额承诺集、所述第一公钥集和所述可审计可链接双环签名,生成收款账单;根据本地私钥对所述收款账单进行签名,并将经过签名的收款账单发布到区块链上。或者
从区块链上获取交易账单,所述交易账单包括交易发起账户的交易后状态、交易金额承诺、交易金额承诺的公钥、交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果;若判断获知所述交易账单通过合法性验证,则将所述交易账单上链;其中,所述交易账单的合法性验证包括所述交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果的合法性检验,所述交易账单的签名的合法性检验以及根据所述交易发起账户的初始状态和所述交易金额承诺对所述交易发起账户的交易后状态的准确性检验。或者
从区块链上获取收款账单,所述收款账单包括交易标签、本地收款后更新金额的合法性证明和可审计可链接双环签名;若判断获知所述交易标签未在区块链的其他收款账单中出现过,则对所述收款账单进行合法性验证;若判断获知所述收款账单通过合法性验证,则将所述收款账单上链;其中,所述收款账单的合法性验证包括所述本地收款后更新金额的合法性证明的合法性验证,所述收款账单签名的合法性验证以及所述可审计可链接双环签名的合法性检验。
第十二方面,本发明提供一种计算机可读存储介质,其上存储有第一计算机程序,所述第一计算机程序被第一处理器执行时实现如下基于区块链的交易处理方法:
根据交易金额和所述交易金额对应的第一随机数获得交易金额承诺,并根据所述交易金额、所述交易金额承诺以及可审计范围证明规则,获得所述交易金额的合法性证明结果;根据交易发起账户的初始状态和所述交易金额承诺,获得所述交易发起账户的交易后状态,并根据所述交易发起账户的交易后金额、所述交易发起账户的交易后状态以及所述可审计范围证明规则,获得所述交易发起账户的交易后金额的合法性证明结果;根据第二随机数、交易接收方的查询公钥和消费公钥,获得所述交易金额承诺的公钥,并根据所述交易发起方与交易接收方的共享密钥对所述交易金额和所述第一随机数进行加密,获得交易金额密文;根据所述交易发起账户的交易后状态、所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥、所述交易金额的合法性证明结果、所述交易发起账户的交易后金额的合法性证明结果和所述交易金额密文,生成交易账单;根据交易发起方的私钥对所述交易账单进行签名,并将经过签名的交易账单发布到区块链上。或者,
若判断获知已经上链的交易账单中存在给本地转账的交易账单,则根据第二随机数对应的中间值、本地消费私钥和本地查询私钥,获得交易金额承诺的私钥;其中,所述交易账单包括所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥和交易金额密文;根据交易发起方与本地的共享密钥对所述交易金额密文进行解密,获得待验证交易金额和待验证第一随机数;若判断获知所述待验证交易金额和所述待验证第一随机数通过所述交易金额承诺的验证,则将待验证交易金额作为交易金额进行收款;从已经上链的交易账单中获取m-1个其他交易金额承诺,并与所述给本地转账的交易账单包括的交易金额承诺构成交易金额承诺集;其中,所述其他交易金额承诺是与本次交易无关的交易金额承诺;根据所述交易金额承诺集中每个交易金额承诺的公钥,建立第一公钥集;根据本地收款后更新金额以及本地收款后更新金额对应的第五随机数,获得所述本地收款后更新金额状态,并根据所述本地收款后更新金额、所述本地收款后更新金额状态以及可审计范围证明规则,获得所述本地收款后更新金额的合法性证明结果;根据本地原始金额状态、所述本地收款后更新金额状态、所述交易金额承诺集以及所述第一公钥集,建立第二公钥集;根据所述给本地转账的交易账单包括的交易金额承诺的公钥、验证通过的第一随机数、所述本地原始金额对应的随机数和所述第五随机数,获得可审计可链接双环签名的私钥;根据所述可审计可链接双环签名的私钥、所述交易金额承诺的私钥、所述第一公钥集和所述第二公钥集对交易消息进行可审计可链接双环签名,并输出可审计可链接双环签名;其中,所述交易消息包括所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额的合法性证明和所述交易金额承诺集;所述可审计可链接双环签名包括交易标签和可审计可链接双环签名结果;所述交易标签是基于所述本地消费私钥或本地查询私钥获得的;根据所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额的合法性证明、所述交易金额承诺集、所述第一公钥集和所述可审计可链接双环签名,生成收款账单;根据本地私钥对所述收款账单进行签名,并将经过签名的收款账单发布到区块链上。或者
从区块链上获取交易账单,所述交易账单包括交易发起账户的交易后状态、交易金额承诺、交易金额承诺的公钥、交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果;若判断获知所述交易账单通过合法性验证,则将所述交易账单上链;其中,所述交易账单的合法性验证包括所述交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果的合法性检验,所述交易账单的签名的合法性检验以及根据所述交易发起账户的初始状态和所述交易金额承诺对所述交易发起账户的交易后状态的准确性检验。或者
从区块链上获取收款账单,所述收款账单包括交易标签、本地收款后更新金额的合法性证明和可审计可链接双环签名;若判断获知所述交易标签未在区块链的其他收款账单中出现过,则对所述收款账单进行合法性验证;若判断获知所述收款账单通过合法性验证,则将所述收款账单上链;其中,所述收款账单的合法性验证包括所述本地收款后更新金额的合法性证明的合法性验证,所述收款账单签名的合法性验证以及所述可审计可链接双环签名的合法性检验。
第十三方面,本发明还提供一种电子设备,包括第二存储器、第二处理器及存储在所述第二存储器上并可在第二处理器上运行的第二计算机程序,所述第二处理器执行所述第二计算机程序时实现如下基于区块链的交易追踪方法:
获取可审计范围证明结果,所述可审计范围证明结果为交易账单中的交易金额的合法性证明结果、交易发起账户的交易后金额的合法性证明结果或者收款账单中的本地收款后更新金额的合法性证明结果;其中,所述可审计范围证明结果包括基于隐私金额承诺展开得到的金额承诺集;
根据监管私钥计算所述金额承诺集中每个子承诺集的子金额审计中间值;其中,所述监管私钥是预设的;
根据每个子承诺集的追踪密钥确定每个子承诺集对应的比特展开项值;
根据各个子承诺集的比特展开项值,计算获得所述金额承诺集对应的原始金额。
第十四方面,本发明还提供一种计算机可读存储介质,其上存储有第二计算机程序,所述第二计算机程序被第二处理器执行时实现如下基于区块链的交易追踪方法:
获取可审计范围证明结果,所述可审计范围证明结果为交易账单中的交易金额的合法性证明结果、交易发起账户的交易后金额的合法性证明结果或者收款账单中的本地收款后更新金额的合法性证明结果;其中,所述可审计范围证明结果包括基于隐私金额承诺展开得到的金额承诺集;
根据监管私钥计算所述金额承诺集中每个子承诺集的子金额审计中间值;其中,所述监管私钥是预设的;
根据每个子承诺集的追踪密钥确定每个子承诺集对应的比特展开项值;
根据各个子承诺集的比特展开项值,计算获得所述金额承诺集对应的原始金额。
本发明实施例提供的基于区块链的交易处理方法、交易追踪方法及装置,根据交易金额和交易金额对应的第一随机数获得交易金额承诺,并根据交易金额、交易金额承诺以及可审计范围证明规则,获得交易金额的合法性证明结果;根据交易发起账户的初始状态和交易金额承诺,获得交易发起账户的交易后状态,并根据交易发起账户的交易后金额、交易发起账户的交易后状态以及可审计范围证明规则,获得交易发起账户的交易后金额的合法性证明结果;根据第二随机数、交易接收方的查询公钥和消费公钥,获得交易金额承诺的公钥,并根据交易发起方与交易接收方的共享密钥对交易金额和第一随机数进行加密,获得交易金额密文;根据交易发起账户的交易后状态、交易金额承诺、第二随机数对应的中间值、交易金额承诺的公钥、交易金额的合法性证明结果、所述交易发起账户的交易后金额的合法性证明结果和所述交易金额密文,生成交易账单;根据交易发起方的私钥对交易账单进行签名,并将经过签名的交易账单发布到区块链上,通过交易金额承诺和交易金额的合法性证明结果实现交易金额的完全隐藏,提高了交易的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明第一实施例提供的基于区块链的交易处理系统的结构示意图。
图2是本发明第二实施例提供的基于区块链的交易处理方法的流程示意图。
图3是本发明第三实施例提供的基于区块链的交易处理方法的流程示意图。
图4是本发明第四实施例提供的基于区块链的交易处理方法的流程示意图。
图5是本发明第五实施例提供的基于区块链的交易处理方法的流程示意图。
图6是本发明第六实施例提供的基于区块链的交易处理方法的流程示意图。
图7是本发明第七实施例提供的基于区块链的交易处理方法的流程示意图。
图8是本发明第八实施例提供的基于区块链的交易追踪方法的流程示意图。
图9是本发明第九实施例提供的基于区块链的交易处理装置的结构示意图。
图10是本发明第十实施例提供的基于区块链的交易处理装置的结构示意图。
图11是本发明第十一实施例提供的基于区块链的交易处理装置的结构示意图。
图12是本发明第十二实施例提供的基于区块链的交易处理装置的结构示意图。
图13是本发明第十三实施例提供的基于区块链的交易追踪装置的结构示意图。
图14是本发明第十四实施例提供的电子设备的实体结构示意图。
图15是本发明第十五实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
为了便于理解本申请提供的技术方案,下面先对本申请技术方案的相关内容进行说明。在本发明中,提出新的区块链系统架构,在账户模型的基础上,提出基于交易接收的新交易框架,与UTXO不同之处在于,UTXO专注于在交易发起者的角度进行设计与优化,而本方案框架专注于在交易接收者的角度思考解决方案,链上的每一笔钱,不再是看做未花费的钱,而是看做未接收的钱,实现的功能相似,但是实现过程大不相同。此外,在UTXO模型中,存在对于UTXO的双花攻击;而在本发明实施例的技术方案中,双花攻击演变成双收攻击,即接收者对于自己的钱,接收两次从而达成攻击效果。而我们通过密码学机制,成功防止双收攻击的发生,就可以在新的架构中实现隐私保护区块链系统的所有功能,同时具备足够可信的安全性,并且能够支持监管审计,实现更强的功能。
本发明实施例提供的技术方案通过引入可审计可链接环签名技术和可审计零知识证明系统,实现了接收者的身份隐私,即无法追踪交易发起者发出的钱,到底被谁收走了,接收者自己的账户更新了,但是外界不知道接收者是收了哪笔钱(安全性由可审计可链接环签名和可审计零知识证明保障),此外,通过可链接性质,可以有效防止双收的攻击,对于接收者而言,虽然外界不知道收钱者收的是哪笔钱,但是接收者仍然无法对同一笔钱接收两次,提高了交易的安全性。此外,本发明实施例提供的技术方案具有可审计性,监管者可以通过监管私钥对链上的隐私交易信息进行追踪审计,还原交易账户信息和交易金额。
图1是本发明第一实施例提供的基于区块链的交易处理系统的结构示意图,如图1所示,本发明实施例提供的基于区块链的交易处理系统包括交易发起节点1、交易接收节点2、验证节点3和监管节点4,其中:
交易发起节点1、交易接收节点2、验证节点3和监管节点4相互之间通信连接,即交易发起节点1分别与交易接收节点2、验证节点3和监管节点4通信连接,交易接收节点2分别与验证节点3和监管节点4通信连接,验证节点3和监管节点4通信连接。
交易发起节点1发起交易并生成交易账单,将经过签名的交易账单发布到区块链上。交易接收节点2从已经上链的交易账单中获取给交易接收节点2转账的交易账单,交易接收节点2验证上述交易账单之后,生成收款账单,并将经过签名的收款账单发布到区块链上。验证节点3对交易账单进行验证,并在交易账单通过验证之后将交易账单上链,验证节点3对收款账单进行验证,并在收款账单通过验证之后将收款账单上链。监管节点4对交易账单和收款账单进行追踪审计,能够还原交易账户信息和交易金额。
其中,对于所述基于区块链的交易处理系统中的一个节点,既可以作为交易发起节点1发起交易,也可以作为交易接收节点2获取交易账单,还可以作为验证节点3对交易账单和收款账单进行验证,根据实际需要进行设置,本发明实施例不做限定。在所述基于区块链的交易处理系统中,监管节点4为单独的节点,监管节点4的数量根据实际需要进行设置,本发明实施例不做限定。
需要说明的是,在所述基于区块链的交易处理系统中会公开公共参数
Figure BDA0002685875930000141
其中,
Figure BDA0002685875930000142
为设定的椭圆曲线群,g为公共生成元,
Figure BDA0002685875930000143
h1为监管公钥,h1=gy
Figure BDA0002685875930000144
y为监管私钥,
Figure BDA0002685875930000145
h2为公共随机哈希点,
Figure BDA0002685875930000146
Figure BDA0002685875930000147
Hp是预设的,Hp是能生成随机椭圆曲线群元素的哈希函数。
Figure BDA0002685875930000148
表示模q非零整数环。
图2是本发明第二实施例提供的基于区块链的交易处理方法的流程示意图,如图2所示,本发明实施例提供的基于区块链的交易处理方法,包括:
S201、根据交易金额和所述交易金额对应的第一随机数获得交易金额承诺,并根据所述交易金额、所述交易金额承诺以及可审计范围证明规则,获得所述交易金额的合法性证明结果;
具体地,交易发起节点可以根据交易金额和所述交易金额对应的第一随机数获得交易金额承诺,然后根据所述交易金额、所述交易金额承诺以及可审计范围证明规则,获得所述交易金额的合法性证明结果。其中,所述交易金额的合法性证明结果用于实现交易金额的隐私保护和监管审计。其中,所述可审计范围证明规则是预设的。
例如,Alice要通过所述基于区块链的交易处理系统给Bob转账s元,Alice可以通过交易发起节点A设定交易金额s元,并随机选取
Figure BDA0002685875930000151
交易发起节点A可以根据交易金额s和交易金额s对应的第一随机数z,计算交易金额承诺
Figure BDA0002685875930000152
并且交易发起节点A根据交易金额s、交易金额承诺e以及可审计范围证明规则,获得交易金额s的合法性证明结果π(e),π(e)为可审计范围证明结果,在不透露交易金额s的前提下能够证明s∈[0,2n-1],并且监管节点能够追踪审计交易金额s。
S202、根据交易发起账户的初始状态和所述交易金额承诺,获得所述交易发起账户的交易后状态,并根据所述交易发起账户的交易后金额、所述交易发起账户的交易后状态以及所述可审计范围证明规则,获得所述交易发起账户的交易后金额的合法性证明结果;
具体地,所述交易发起节点可以获取交易发起账户的初始状态,然后根据所述交易发起账户的初始状态和所述交易金额承诺,获得所述交易发起账户的交易后状态。然后,所述交易发起节点根据所述交易发起账户的交易后金额、所述交易发起账户的交易后状态以及所述可审计范围证明规则,获得所述交易发起账户的交易后金额的合法性证明结果。其中,所述交易发起账户的交易后金额的合法性证明结果用于实现隐私保护和监管审计。所述交易发起账户的交易后金额的合法性证明结果的具体获取过程与所述交易金额的合法性证明结果的具体获得过程类似。
例如,Alice的账户的原始金额为u1,Alice的账户的初始状态
Figure BDA0002685875930000153
x1为原始金额u1对应的随机数。交易发起节点A可以根据Alice的账户的初始状态c1和交易金额承诺e计算Alice的账户的交易后状态
Figure BDA0002685875930000154
x2为Alice的账户的交易后金额u2对应的随机数。交易发起节点A根据交易后金额u2、交易后状态c2以及可审计范围证明规则,可以获得交易后金额u2的合法性证明π(c2),π(c2)为可审计范围证明,在不透露交易后金额u2的前提下能够证明u2∈[0,2n-1],并且监管节点能够追踪审计交易后金额u2
S203、根据第二随机数、交易接收方的查询公钥和消费公钥,获得所述交易金额承诺的公钥,并根据所述交易发起方与交易接收方的共享密钥对所述交易金额和所述第一随机数进行加密,获得交易金额密文;
具体地,所述交易发起节点可以获取第二随机数和交易接收方的查询公钥和消费公钥,然后根据所述第二随机数、所述交易接收方的查询公钥和消费公钥,获得所述交易金额承诺的公钥。然后,所述交易发起节点根据所述交易发起方与交易接收方的共享密钥对所述交易金额和所述第一随机数进行加密,获得交易金额密文。其中,所述交易金额密文用于实现交易金额的保密。
例如,交易发起节点A随机生成第二随机数r,
Figure BDA0002685875930000161
然后计算交易金额承诺e的公钥
Figure BDA0002685875930000162
其中,B1为交易接收方Bob的查询公钥,B2为交易接收方Bob的消费公钥,H表示哈希函数。其中,
Figure BDA0002685875930000163
b1为交易接收方Bob的查询私钥,b2为交易接收方Bob的消费私钥。
例如,交易发起节点A通过Alice和Bob的共享密钥k,加密交易金额s和第一随机数z,可以得到交易金额密文ct=Enck(s,z),其中,加密算法根据实际需要进行选择,本发明实施例不做限定。其中,共享密钥
Figure BDA0002685875930000164
S204、根据所述交易发起账户的交易后状态、所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥、所述交易金额的合法性证明结果、所述交易发起账户的交易后金额的合法性证明结果和所述交易金额密文,生成交易账单;
具体地,所述交易发起节点可以根据所述交易发起账户的交易后状态、所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥、所述交易金额的合法性证明结果、所述交易发起账户的交易后金额的合法性证明结果和所述交易金额密文,生成交易账单。其中,所述第二随机数对应的中间值是基于第二随机数获得的。
例如,交易发起节点A根据Alice账户的交易后状态c2、交易金额承诺e、第二随机数r对应的中间值R、交易金额承诺e的公钥PKe、交易金额s的合法性证明π(e)、Alice的账户的交易后金额u2的合法性证明π(c2)和交易金额密文ct,生成交易账单。交易账单可以表示为tx1=(c2,e,R,PKe12,ct),π1=π(e),π2=π(c2)。其中,第二随机数r对应的中间值R=gr
S205、根据交易发起方的私钥对所述交易账单进行签名,并将经过签名的交易账单发布到区块链上。
具体地,所述交易发起节点在生成所述交易账单之后,可以根据交易发起方的私钥对所述交易账单进行签名,然后将经过签名的交易账单发布到区块链上。验证节点会获取到所述交易发起节点发布的交易账单,然后对所述交易账单进行验证,所述交易账单通过验证之后,就会上链,能够被交易接收节点所获取。
例如,交易发起节点A可以获取交易发起方Alice的查询私钥a1和消费私钥a2。交易发起节点A可以采用查询私钥a1和/或消费私钥a2,对交易账单tx1进行签名,签名结果可以表示为σ1=Sign(PKAlice,SKAlice,c2,e,R,PKe,ct,π12),其中,PKAlice为Alice的公钥,
Figure BDA0002685875930000171
SKAlice为Alice的私钥,SKAlice=(a1,a2)。
本发明实施例提供的基于区块链的交易处理方法,根据交易金额和交易金额对应的第一随机数获得交易金额承诺,并根据交易金额、交易金额承诺以及可审计范围证明规则,获得交易金额的合法性证明结果;根据交易发起账户的初始状态和交易金额承诺,获得交易发起账户的交易后状态,并根据交易发起账户的交易后金额、交易发起账户的交易后状态以及可审计范围证明规则,获得交易发起账户的交易后金额的合法性证明结果;根据第二随机数、交易接收方的查询公钥和消费公钥,获得交易金额承诺的公钥,并根据交易发起方与交易接收方的共享密钥对交易金额和第一随机数进行加密,获得交易金额密文;根据交易发起账户的交易后状态、交易金额承诺、第二随机数对应的中间值、交易金额承诺的公钥、交易金额的合法性证明结果、所述交易发起账户的交易后金额的合法性证明结果和所述交易金额密文,生成交易账单;根据交易发起方的私钥对交易账单进行签名,并将经过签名的交易账单发布到区块链上,通过交易金额承诺和交易金额的合法性证明结果实现交易金额的完全隐藏,提高了交易的安全性。此外,交易金额的合法性证明结果还可以用于监管审计,实现交易金额保密情况的下的监管审计。
在上述各实施例的基础上,进一步地,所述根据所述交易金额和所述交易金额对应的随机数获得交易金额承诺包括:
根据所述交易金额、所述交易金额对应的随机数以及转账金额承诺计算公式,计算获得所述交易金额承诺。
具体地,所述交易发起节点将所述交易金额、所述交易金额对应的第一随机数输入到转账金额承诺计算公式,可以计算获得所述交易金额承诺。其中,转账金额承诺计算公式是预设的。
例如,转账金额承诺计算公式为
Figure BDA0002685875930000172
e为所述交易金额承诺,s为交易金额,z为所述交易金额对应的第一随机数,
Figure BDA0002685875930000173
g和h2为公共参数。
在上述各实施例的基础上,进一步地,所述交易发起方与交易接收方的共享密钥根据所述交易接收方的查询公钥和所述第二随机数计算获得。
具体地,所述交易发起节点可根据所述交易接收方的查询公钥和所述第二随机数,计算获得所述交易发起方与交易接收方的共享密钥。
例如,所述交易接收方的查询公钥为B1,所述第二随机数为r,所述交易发起方与交易接收方的共享密钥
Figure BDA0002685875930000181
图3是本发明第三实施例提供的基于区块链的交易处理方法的流程示意图,如图3所示,在上述各实施例的基础上,进一步地,所述根据所述交易金额、所述交易金额承诺以及可审计范围证明规则,获得所述交易金额的合法性证明结果包括:
S2011、获取n个随机数并对所述交易金额进行比特展开,获得n个比特展开项值;
具体地,所述交易发起节点获取n个随机数,同时将所述交易金额进行比特展开,获得n个比特展开项值。
例如,n个随机数可以表示为x0,…,xn-1
Figure BDA0002685875930000182
对于交易金额a进行比特展开,可以获得a=a0+…+2iai+…+2n-1an-1,ai=0,1,i=0,…,n-1,a∈[0,2n-1],a0,…,ai,…,an-1为n个比特展开项值。
S2012、根据n个随机数以及n个比特展开项值,获得承诺集;
具体地,所述交易发起节点在获得n个随机数以及n个比特展开项值之后,可以根据每个随机数以及每个比特展开项值,获得对应的子承诺集,可以获得n个子承诺集,n个子承诺集构成承诺集。
例如,所述交易发起节点可以计算
Figure BDA0002685875930000183
xi为n个随机数中的第i个随机数,ai为n个比特展开项值中的第i个比特展开项值,i=0,…,n-1,ci和c′i构成一个子承诺集Li,记为Li=(ci,c′i)。所述交易发起节点可以计算出n个子承诺集L0,…,Ln-1,n个子承诺集即可构成承诺集L,L={L0,…,Ln-1}。
S2013、根据n个随机数以及监管公钥,获得第一追踪密钥集合,并根据公共随机哈希点以及n个随机数,获得数值标签集;
具体地,所述交易发起节点可以根据n个随机数中的每个随机数以及监管公钥,计算获得每个随机数对应的第一追踪密钥,可以获得n个第一追踪密钥,n个第一追踪密钥构成第一追踪密钥集合。所述交易发起节点根据n个随机数中的每个随机数以及公共随机哈希点可以计算获得每个随机数对应的子数值标签,可以获得n个子数值标签,n个子数据只标签构成数值标签集。
例如,所述交易发起节点根据公式
Figure BDA0002685875930000191
计算n个随机数中第i个随机数对应的第一追踪密钥TKi,xi表示n个随机数中的第i个随机数,h1表示监管公钥。所述交易发起节点可以计算出n个第一追踪密钥,构成第一追踪密钥集合,记为LTK={TK0,…,TKn-1}。
例如,所述交易发起节点根据公式
Figure BDA0002685875930000192
计算n个随机数中第i个随机数对应的子数值标签Fi,xi表示n个随机数中的第i个随机数,h2表示公共随机哈希点。所述交易发起节点可以计算出n个子数值标签,构成数值标签集F,记为F={F0,…,Fn-1}。
S2014、根据所述承诺集、所述第一追踪密钥集合、所述数值标签集、第三随机数和第四随机数,获得公钥组集合;
具体地,所述交易发起节点可以获取第三随机数和第四随机数,然后根据所述承诺集、所述第一追踪密钥集合、所述数值标签集、所述第三随机数和所述第四随机数,计算所述承诺集中每个子承诺集对应的子公钥组,可以获得n个子公钥组,n个子公钥组构成公钥组集合。
例如,所述交易发起节点根据公式
Figure BDA0002685875930000193
计算获得承诺集中第i个子承诺集的一个金额承诺ci对应的子公钥
Figure BDA0002685875930000194
根据公式
Figure BDA0002685875930000195
计算获得承诺集中第i个子承诺集的另一个金额承诺c′i对应的子公钥
Figure BDA0002685875930000196
Figure BDA0002685875930000197
构成子承诺集Li=(ci,c′i)对应的子公钥组
Figure BDA0002685875930000198
可以获得n个子公钥组构成公钥组集合LPK
Figure BDA0002685875930000199
其中,TKi为第i个子承诺集对应的第一追踪密钥,Fi为第i个子承诺集对应的子数值标签,η1为第三随机数,η2为第四随机数。
其中,所述第三随机数η1,可以根据公式η1=H(L;TK0,…,TKn-1;F0,…,Fn-1;1)计算获得。所述第四随机数η2,可以根据公式η2=H(L;TK0,…,TKn-1;F0,…,Fn-1;2)计算获得。
S2015、运行多环签名,获得多环签名结果;其中,所述多环签名结果包括所述公钥组集合、n个随机数、所述交易金额承诺、n个随机数的中间值、所述第一追踪密钥集合和所述数值标签集;
具体地,所述交易发起节点在获得所述公钥组集合之后,可以运行多环签名,获得多环签名结果。所述多环签名结果包括所述公钥组集合、n个随机数、所述交易金额承诺、n个随机数的中间值、所述第一追踪密钥集合和所述数值标签集。其中,n个随机数的中间值β=x-x0-…-xn-1,x0,…,xn-1为n个随机数,x为所述交易金额对应的随机数。其中,多环签名所采用的签名算法根据实际需要进行设置,本发明实施例不做限定。
例如,多环签名结果σ=RSIG(LPK,x0,…,xn-1,c,β,LTK,F),c为交易金额承诺,
Figure BDA0002685875930000201
a为交易金额。其中,在进行多环签名过程中,可以使用生成元
Figure BDA0002685875930000202
进行多环签名。可以选择Borromean多环签名,进行多环签名。
S2016、根据所述交易金额承诺、n个随机数的中间值、所述承诺集、所述第一追踪密钥集合、所述数值标签集以及所述多环签名结果,生成所述交易金额的合法性证明结果。
具体地,所述交易发起节点在获得所述多环签名之后,可以根据所述交易金额承诺、n个随机数的中间值、所述承诺集、所述第一追踪密钥集合、所述数值标签集以及所述多环签名结果,生成所述交易金额的合法性证明结果。
例如,所述交易金额的合法性证明结果表示为(c,β,L,TK0,…,TKn-1,F0,…,Fn-1,σ)。
在上述各实施例的基础上,进一步地,所述根据交易发起方的私钥对所述交易账单进行签名包括:
根据所述交易发起方的查询私钥和/或消费私钥对所述交易账单进行签名。
具体地,所述交易发起节点在对所述交易账单进行签名的时候,可以采用所述交易发起方的查询私钥对所述交易账单进行签名,也可以采用所述交易发起方的消费私钥对所述交易账单进行签名,还可以同时采用所述交易发起方的查询私钥和消费私钥对所述交易账单进行签名。
图4是本发明第四实施例提供的基于区块链的交易处理方法的流程示意图,如图4所示,本发明实施例提供的基于区块链的交易处理方法,包括:
S401、若判断获知已经上链的交易账单中存在给本地转账的交易账单,则根据第二随机数对应的中间值、本地消费私钥和本地查询私钥,获得交易金额承诺的私钥;其中,所述交易账单包括所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥和交易金额密文;
具体地,交易接收节点可以从区块链上获取已经上链的交易账单,然后判断已经上链的交易账单中是否存在给本地转账的交易账单,如果存在给本地转账的交易账单,那么所述交易接收节点会根据第二随机数对应的中间值、本地消费私钥和本地查询私钥,获得交易金额承诺的私钥。其中,所述交易账单包括所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥和交易金额密文,所述交易账单还可以包括交易发起账户的交易后状态、交易金额的合法性证明结果、所述交易发起账户的交易后金额的合法性证明结果。
例如,交易接收节点B根据公式
Figure BDA0002685875930000211
计算待匹配公钥PKx,其中,g为公共生成元,
Figure BDA0002685875930000212
为交易发起方与交易接收方的共享密钥,可以根据本地查询私钥b1(交易接收方的查询私钥)和第二随机数对应的中间值R计算获得,B2为本地消费公钥(交易接收方的消费公钥)。然后将待匹配公钥PKx与已经上链的交易账单中的交易金额承诺的公钥PKe进行比较,如果待匹配公钥PKx与交易金额承诺的公钥PKe相等,那么交易金额承诺的公钥PKe对应的交易账单为给本地转账的交易账单,即交易金额承诺的公钥PKe对应的交易账单的接收方节点为交易接收节点B。如果待匹配公钥PKx与交易金额承诺的公钥PKe不相等,那么对应交易账单与交易接收节点B无关。
例如,所述交易接收节点根据公式
Figure BDA0002685875930000213
计算所述交易金额承诺的私钥SKe,R为第二随机数对应的中间值,b1为本地查询私钥,b2为本地消费私钥(交易接收方的消费私钥),由于所述交易金额承诺的私钥计算需要使用本地私钥b1和b2,只有交易接收方才能够计算出所述交易金额承诺的私钥。
S402、根据所述交易发起方与本地的共享密钥对所述交易金额密文进行解密,获得待验证交易金额和待验证第一随机数;
具体地,所述交易接收节点可以从给本地转账的交易账单中获得交易金额密文,然后通过所述交易发起方与交易接收方的共享密钥对交易金额密文进行解密,获得待验证交易金额和待验证第一随机数。
例如,交易接收节点B使用Alice和Bob的共享密钥k,对交易金额密文ct进行解密计算Deck(ct)=(s′,z′),获得待验证交易金额s′和待验证第一随机数z′。
S403、若判断获知所述待验证交易金额和所述待验证第一随机数通过所述交易金额承诺的验证,则将待验证交易金额作为交易金额进行收款;
具体地,所述交易接收节点会根据所述待验证交易金额和所述待验证第一随机数计算待验证交易金额承诺,然后将待验证交易金额承诺与从给本地转账的交易账单中获得的交易金额承诺进行比较,如果待验证交易金额承诺与所述交易金额承诺相等,那么所述待验证交易金额和所述待验证第一随机数通过验证,所述待验证交易金额即为交易金额,将待验证交易金额作为交易金额进行收款。其中,对所述交易金额进行收款的具体流程为现有技术,此处不进行赘述。可理解的是,如果待验证交易金额承诺与所述交易金额承诺不相等,说明交易账单有误,所述交易接收节点不应该接收待所述验证交易金额,不会进行收款。
例如,交易接收节点B计算
Figure BDA0002685875930000221
然后将e′与交易金额承诺e进行比较,如果e′等于e,那么判定待验证交易金额s′等于交易金额s,待验证第一随机数z′等于第一随机数z。
S404、从已经上链的交易账单中获取m-1个其他交易金额承诺,并与所述给本地转账的交易账单包括的交易金额承诺构成交易金额承诺集;其中,所述其他交易金额承诺是与本次交易无关的交易金额承诺;
具体地,所述交易接收节点可以从已经上链的交易账单中获取m-1个其他交易金额承诺,所述其他交易金额承诺是与本次交易无关的交易金额承诺,然后将所述给本地转账的交易账单包括的交易金额承诺和m-1个其他交易金额承诺组合成交易金额承诺集。m-1个其他交易金额承诺用于混淆所述给本地转账的交易账单包括的交易金额承诺,使外界不知道交易接收节点接收了哪一个交易账单中的交易金额,从而切断了交易发起者与交易接收者之间的交易路径,实现了对交易接收者的隐私保护。其中,m是大于等于2的正整数,比如取100、1000,根据实际需要进行设置,本发明实施例不做限定。可理解的是,m的值越大,交易金额承诺集所起到的隐私保护性越强。
例如,交易金额承诺集记为E={e1,…,em},
Figure BDA0002685875930000222
ej为交易金额承诺集E的第j个交易金额承诺,j=1,…,m。交易接收节点B接收的交易金额的交易金额承诺e为e1,…,em中的一个,位置可以随机选择。为了方便后续说明,假设交易金额承诺
Figure BDA0002685875930000223
γ为1,…,m中的一个具体的数。交易金额承诺e的公私钥即为交易金额承诺eγ的公私钥,将交易金额承诺eγ的公私钥记为
Figure BDA0002685875930000224
可理解的是,交易接收节点B可以获得交易金额承诺eγ的相关隐私信息zγ、sγ
Figure BDA0002685875930000225
但无法获得交易金额承诺集E中除了交易金额承诺eγ以外的m-1个其他交易金额承诺的相关隐私信息。
S405、根据所述交易金额承诺集中每个交易金额承诺的公钥,建立第一公钥集;
具体地,所述交易发起节点在获得所述交易金额承诺集之后,可以获取所述交易金额承诺集中每个交易金额承诺的公钥,建立第一公钥集。
例如,第一公钥集记为
Figure BDA0002685875930000231
为交易金额承诺集E的第j个交易金额承诺ej的公钥,j=1,…,m。
S406、根据本地收款后更新金额以及本地收款后更新金额对应的第五随机数,获得所述本地收款后更新金额状态,并根据所述本地收款后更新金额、所述本地收款后更新金额状态以及所述可审计范围证明规则,获得所述本地收款后更新金额的合法性证明结果;
具体地,所述交易接收节点在完成对所述交易金额收款之后,可以获得本地收款后更新金额,然后根据所述地收款后更新金额以及本地收款后更新金额对应的第五随机数,获得所述本地收款后更新金额状态。然后,所述交易接收节点根据所述本地收款后更新金额、所述本地收款后更新金额状态以及所述可审计范围证明规则,获得所述本地收款后更新金额的合法性证明结果。所述本地收款后更新金额的合法性证明结果用于实现本地收款后更新金额的隐私保护的监管审计。
例如,Bob账户的原始金额为v1,通过所述交易账单的交易金额为s,那么Bob账户收款后更新金额v2=v1+s。交易接收节点B可以获取Bob账户收款后更新金额v2对应的第五随机数y2,然后计算Bob账户收款后更新金额v2状态
Figure BDA0002685875930000232
并且交易接收节点B根据Bob账户收款后更新金额v2、Bob账户收款后更新金额状态d2以及所述可审计范围证明规则,可以获得Bob账户收款后更新金额状态d2的合法性证明结果π(d2),π(d2)为可审计范围证明,在不透露Bob账户收款后更新金额v2的前提下能够证明v2∈[0,2n-1],并且监管节点能够追踪审计Bob账户收款后更新金额v2。Bob账户收款后更新金额状态d2的合法性证明结果π(d2)的具体获得过程与所述交易金额的合法性证明结果的具体获得过程类似。
S407、根据本地原始金额状态、所述本地收款后更新金额状态、所述交易金额承诺集以及所述第一公钥集,建立第二公钥集;
具体地,所述交易接收节点根据本地原始金额状态、所述本地收款后更新金额状态、所述交易金额承诺集以及所述第一公钥集,可以建立第二公钥集。
例如,Bob账户的原始金额为v1,Bob账户的初始状态
Figure BDA0002685875930000241
y1为Bob账户的原始金额v1对应的随机数。对于交易金额承诺集E={e1,…,em}中的一个交易金额承诺ej,交易接收节点B可以根据公式
Figure BDA0002685875930000242
计算交易金额承诺ej的附加公钥
Figure BDA0002685875930000243
为交易金额承诺ej的公钥。交易接收节点B可以获得m个附加公钥构成第二公钥集L′PK
Figure BDA0002685875930000244
Figure BDA0002685875930000245
S408、根据所述给本地转账的交易账单包括的交易金额承诺的公钥、验证通过的第一随机数、所述本地原始金额对应的随机数和所述第五随机数,获得可审计可链接双环签名的私钥;
具体地,所述交易接收节点根据所述给本地转账的交易账单包括的交易金额承诺的公钥、验证通过的第一随机数、所述本地原始金额对应的随机数和所述第五随机数,可以计算获得可审计可链接双环签名的私钥。
例如,给Bob账户转账的交易账单包括的交易金额承诺eγ的公钥为
Figure BDA0002685875930000246
验证通过的第一随机数为zγ,Bob账户的原始金额对应的随机数为y1,第五随机数为y2,那么交易接收节点B可以根据公式
Figure BDA0002685875930000247
计算获得可审计可链接双环签名的私钥SKL
S409、根据所述可审计可链接双环签名的私钥、所述交易金额承诺的私钥、所述第一公钥集和所述第二公钥集对交易消息进行可审计可链接双环签名,并输出可审计可链接双环签名;其中,所述交易消息包括所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额的合法性证明和所述交易金额承诺集;所述可审计可链接双环签名包括交易标签和可审计可链接双环签名结果;所述交易标签是基于所述本地消费私钥或本地查询私钥获得的;
具体地,所述交易接收节点在获得所述可审计可链接双环签名的私钥之后,可以根据所述可审计可链接双环签名的私钥、所述交易金额承诺的私钥、所述第一公钥集和所述第二公钥集对交易消息进行可审计可链接双环签名,即根据所述第一公钥集以及所述交易金额承诺的私钥对所述交易消息进行可审计可链接环签名,根据所述第二公钥集和所述可审计可链接双环签名的私钥对所述交易消息进行可审计可链接环签名,实现双环签名,对并输出可审计可链接双环签名,所述可审计可链接双环签名包括交易标签和可审计可链接双环签名结果。其中,所述交易消息包括所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额的合法性证明和所述交易金额承诺集。所述交易标签是基于所述本地消费私钥或本地查询私钥获得的。可审计可链接环签名采用的签名算法根据实际需要进行设置,本发明实施例不做限定。
例如,所述可审计可链接双环签名
Figure BDA0002685875930000251
其中,σ为所述可审计可链接双环签名结果,I为所述交易标签,用于防止双重收款攻击,LPK为第一公钥集,L′PK为第二公钥集,
Figure BDA0002685875930000252
为交易金额承诺eγ的私钥,这里作为LPK的签名私钥,SKL为可审计可链接双环签名的私钥,作为L′PK的签名私钥。其中,交易标签
Figure BDA0002685875930000253
其中,h2为公共随机哈希点,y为本地消费私钥或本地查询私钥。
S410、根据所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额状态的合法性证明、所述交易金额承诺集、所述第一公钥集和所述可审计可链接双环签名,生成收款账单;
具体地,所述交易接收节点在获得所述可审计可链接双环签名之后,可以根据所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额状态的合法性证明、所述交易金额承诺集、所述第一公钥集和所述可审计可链接双环签名,生成收款账单。
例如,交易接收节点B根据Bob账户的初始状态d1、Bob账户收款后更新金额状态d2、Bob账户收款后更新金额状态d2的合法性证明结果π(d2)、交易金额承诺集E、第一公钥集LPK和可审计可链接双环签名(σ,I),生成收款账单tx2,tx2=(d1,d2,π(d2),E,LPK,σ,I)。
S411、根据本地私钥对所述收款账单进行签名,并将经过签名的收款账单发布到区块链上。
具体地,所述交易接收节点在生成所述收款账单之后,可以根据交易接收方的私钥对所述收款账单进行签名,然后将经过签名的收款账单发布到区块链上。验证节点会获取到所述交易接收节点发布的收款账单,然后对所述收款账单进行验证,所述收款账单通过验证之后,就会上链。其中,可以根据所述交易接收方的查询私钥和/或消费私钥对所述收款账单进行签名。
例如,交易接收节点B可以获取交易接收方Bob的查询私钥b1和消费私钥b2。交易接收节点B可以采用查询私钥b1和/或消费私钥b2,对交易账单tx2进行签名,签名结果σ2可以表示为σ2=Sign(PKBob,SKBob=(b1,b2),tx2),然后在区块链上发布(tx22)。
需要说明的是,在第二公钥集
Figure BDA0002685875930000261
中,第γ个元素恰好为
Figure BDA0002685875930000262
这是由于v2-v1-sγ=0,也就是说,交易接收节点B能够成功完成可审计可链接双环签名的前提是,Bob账户收款后更新金额v2状态d2中包含的Bob账户收款后更新金额v2等于Bob账户的原始金额v1加上收钱的金额sγ,通过数学证明,这是充分必要条件。因此交易接收节点B必须也只能按照正确的方式将Bob账户的原始金额v1与收钱的金额sγ相加,更新Bob账户的原始金额,不能乱加金额,也无法双重收款。而在验证者看来,由于环签名的特性,验证者只知道Bob拥有
Figure BDA0002685875930000263
Figure BDA0002685875930000264
某一个元素对应的私钥,验证者只能知道Bob在交易过程中收了E={e1,…,em}中的一个交易金额承诺对应的交易金额,但是不知道收的是哪一个交易,无法将Alice和Bob的交易进行关联,实现了接收者的隐私保护功能。
可理解的是,本发明实施例提供的基于区块链的交易处理方法,进行交易的交易发起者身份公开,交易接收者身份隐私,区块链上的任何无关节点都无法追溯到交易发起者Alice和交易接收者Bob之间发生了交易,而且在金额隐私承诺以及合法性证明结果的保障下,交易金额的信息得到了完全的隐藏,除交易双方外的其他节点无法获取任何金额信息,达到了金额隐私的功能。
此外,Bob在看到有给自己转账的资金时,可以选择立即接收,也可以选择暂时不接收,也支持在同一区块中先花再收、先收再花,可以灵活调整收钱和花钱的策略(收钱与否由交易接收者决定),可以适配更广的应用场景。
本发明实施例提供的基于区块链的交易处理方法,通过可审计可链接双环签名,验证者可以获知交易接收方的收款存在于交易金额承诺集中,但不知道是具有是哪一个,无法将交易发起方和交易收款方的交易进行关联,实现了对交易接收方的隐私保护,提高了交易的安全性。
图5是本发明第五实施例提供的基于区块链的交易处理方法的流程示意图,如图5所示,在上述各实施例的基础上,进一步地,本发明实施例提供的所述若判断获知已经上链的交易账单中存在给本地的转账包括:
S4011、根据所述第二随机数对应的中间值、所述本地查询私钥和本地消费公钥,计算获得待匹配公钥;
具体地,所述交易接收节点可以根据所述第二随机数对应的中间值、所述本地查询私钥和本地消费公钥,计算获得待匹配公钥。
例如,交易接收节点B根据
Figure BDA0002685875930000271
计算待匹配公钥PKx,其中,R为所述第二随机数对应的中间值,b1为所述本地查询私钥,B2为本地消费公钥。
S4012、若判断获知所述待匹配公钥与所述交易账单包括的交易金额承诺的公钥匹配,则确定已经上链的交易账单中存在给本地转账的交易账单。
具体地,所述交易接收节点在获得所述待匹配公钥之后,将所述待匹配公钥与所述交易账单包括的交易金额承诺的公钥进行比较,如果所述待匹配公钥与所述交易账单包括的交易金额承诺的公钥相等,那么所述待匹配公钥与所述交易账单包括的交易金额承诺的公钥匹配,从而确定已经上链的交易账单中存在给本地转账的交易账单,即与所述待匹配公钥匹配的交易金额承诺的公钥对应的交易账单。
图6是本发明第六实施例提供的基于区块链的交易处理方法的流程示意图,如图6所示,本发明实施例提供的基于区块链的交易处理方法包括:
S601、从区块链上获取交易账单,所述交易账单包括交易发起账户的交易后状态、交易金额承诺、交易金额承诺的公钥、交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果;
具体地,交易发起节点将经过签名的交易账单发布到区块链上之后,验证节点可以从区块链上获取交易账单,所述交易账单包括交易发起账户的交易后状态、交易金额承诺、交易金额承诺的公钥、交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果。
S602、若判断获知所述交易账单通过合法性验证,则将所述交易账单上链;其中,所述交易账单的合法性验证包括所述交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果的合法性检验,所述交易账单的签名的合法性检验以及根据所述交易发起账户的初始状态和所述交易金额承诺对所述交易发起账户的交易后状态的准确性检验。
具体地,所述验证节点在获取到所述交易账单之后,会对所述交易账单进行合法性验证,在所述交易账单通过所述合法性验证之后,会将所述交易账单上链,否则,所述交易账单没有通过合法性验证,会拒绝所述交易账单上链。所述交易账单的合法性验证包括所述交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果的合法性检验,所述交易账单的签名的合法性检验,根据所述交易发起账户的初始状态和所述交易金额承诺对所述交易发起账户的交易后状态的准确性检验,在所述交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果通合法性检验,所述交易账单的签名通过合法性检验,所述交易发起账户的交易后状态的准确性通过检验之后,所述交易账单才能通过合法性验证。在所述交易账单通过合法性验证之后,所述验证节点会将所述交易账单以及所述交易发起账户的交易后金额状态上链。
例如,对于交易发起节点A发布的交易账单tx1包括的交易金额的合法性证明结果π1,π1=(c,β,L,TK0,…,TKn-1,F0,…,Fn-1,σ)。
第一步:所述验证节点可以从π1中获取承诺集L,对于任意一个子承诺集Li,计算
Figure BDA0002685875930000281
是否成立,如果所有的子承诺集,
Figure BDA0002685875930000282
成立,那么进行下一步验证;否则,交易金额的合法性证明结果不能通过合法性检验。
第二步:验证gβ·∏ci=c是否正确,所述验证节点从π1中获取β,从承诺集L的子承诺集中获取c0,…,cn-1,带入到gβ·∏ci中,计算获得结果c′,比较c′与c,如果c′与c相等,那么进入下一步验证;否则,交易金额的合法性证明结果不能通过合法性检验。
第三步:所述验证节点从π1中获取L,TK0,…,TKn-1,F0,…,Fn-1,然后计算H(L;TK0,…,TKn-1;F0,…,Fn-1;1),获得计算结果η1,并计算H(L;TK0,…,TKn-1;F0,…,Fn-1;1),获得计算结果η2。所述验证节点从σ中获取公钥组集合LPK,对于所有i=0,…,n-1,所述验证节点计算
Figure BDA0002685875930000283
Figure BDA0002685875930000284
然后遍历公钥组集合LPK,对比
Figure BDA0002685875930000285
与子公钥组
Figure BDA0002685875930000286
如果都相等,那么进行下一步验证。否则,交易金额的合法性证明结果不能通过合法性检验。
第四步:多环签名结果σ的正确性,如果签名是采用的是Borromean多环签名,那么验证Borromean多环签名的正确性,如果多环签名结果σ通过验证,那么交易金额的合法性证明结果通过合法性检验。否则,交易金额的合法性证明结果不能通过合法性检验,所述验证节点拒绝将包括π1的交易账单上链。
可理解的是,所述交易发起账户的交易后金额的合法性证明结果的合法性检验过程与上述交易金额的合法性证明结果的合法性检验过程类似。
图7是本发明第七实施例提供的基于区块链的交易处理方法的流程示意图,如图7所示,本发明实施例提供的基于区块链的交易处理方法包括:
S701、从区块链上接收收款账单,所述收款账单包括交易标签、本地收款后更新金额的合法性证明和可审计可链接双环签名;
具体地,交易接收节点将经过签名的收款账单发布到区块链上之后,验证节点可以从区块链上获取收款账单,所述收款账单包括交易标签、本地收款后更新金额的合法性证明和可审计可链接双环签名。
S702、若判断获知所述交易标签未在区块链的其他收款账单中出现过,则对所述收款账单进行合法性验证;
具体地,所述验证节点在获得收款账单之后,判断所述交易标签是否在区块链的其他收款账单中出现过,如果所述验证节点在其他收款账单中没有查询到所述交易标签,那么所述交易标签未在区块链的其他收款账单中出现过,然后对所述收款账单进行合法性验证。
S703、若判断获知所述收款账单通过合法性验证,则将所述收款账单上链;其中,所述收款账单的合法性验证包括所述本地收款后更新金额的合法性证明的合法性验证,所述收款账单签名的合法性验证以及所述可审计可链接双环签名的合法性检验。
具体地,所述验证节点判断所述收款账单是否通过合法性验证,如果通过所述合法性验证,那么将所述收款账单上链,如果没有通过合法性验证,那么拒绝所述收款账单上链。其中,所述收款账单的合法性验证包括所述本地收款后更新金额的合法性证明的合法性验证,所述收款账单签名的合法性验证以及所述可审计可链接双环签名的合法性检验,在所述本地收款后更新金额的合法性证明通过合法性验证、所述收款账单签名通过合法性验证以及所述可审计可链接双环签名通过合法性检验之后,所述收款账单通过合法性验证。
其中,所述本地收款后更新金额的合法性证明的合法性验证过程与上述交易金额的合法性证明结果的合法性检验过程类似,此处不进行赘述。
本发明实施例提供的基于区块链的交易处理方法,通过交易标签未在区块链的其他收款账单中出现过,能够防止双收攻击的发生,提高交易的安全性。
下面为一个可审计可链接环普通签名的签名过程、验证过程以及追踪过程。
对于交易接收节点:
1、从已经上链的交易账单中随机选取m-1个其他交易金额承诺,将包括本地交易金额承诺的公钥在内的m个公钥组成可追踪可链接环签名公钥集合
Figure BDA0002685875930000301
Figure BDA0002685875930000302
此时假定交易接收节点对应的用户Pi的公私钥为
Figure BDA0002685875930000303
2、公布
Figure BDA0002685875930000304
计算随机数ω1=H(LPK,I,TK,1),ω2=H(LPK,I,TK,2);
3、计算普通环签名公钥集
Figure BDA0002685875930000305
4、对于消息Q,计算普通环签名τ=RSIG(xi,LRPK,Q)(普通环签名以
Figure BDA0002685875930000306
为底);其中,Q可以是账单、公钥等于交易相关的信息,根据实际需要进行设置,本发明实施例不做限定。
5、输出最终的可追踪可链接环签名为σ=(LPK,Q,τ,I,TK)。
对于验证节点:
1、计算ω1=H(LPK,I,TK,1),ω2=H(LPK,I,TK,2),然后计算
Figure BDA0002685875930000307
Figure BDA0002685875930000308
2、检验普通环签名τ=RSIG(xi,LRPK,m)的正确性,以
Figure BDA0002685875930000309
为底;
3、通过可追踪可链接环签名σ=(LPK,m,τ,I,TK)的正确性(合法性)验证。
在监管节点:
对于所有
Figure BDA00026858759300003010
监管节点计算并搜索第一个满足
Figure BDA00026858759300003011
条件的i,然后输出追踪结果i。
在上述各实施例的基础上,进一步地,本发明实施例提供的基于区块链的交易处理方法还包括:
若判断获知所述交易标签在区块链的其他收款账单中出现过,则确定发生双重收款并拒绝所述收款账单上链。
具体地,所述验证节点在获得收款账单之后,判断所述交易标签是否在区块链的其他收款账单中出现过,如果所述验证节点在其他收款账单中查询到所述交易标签,那么所述交易标签在区块链的其他收款账单中出现过,可以确定发生双重收款,不会对所述收款账单进行合法性验证,并拒绝收款账单上链。
图8是本发明第八实施例提供的基于区块链的交易追踪方法的流程示意图,如图8所示,本发明实施例提供的基于区块链的交易追踪方法,包括:
S801、获取可审计范围证明结果,所述可审计范围证明结果为交易账单中的交易金额的合法性证明结果、交易发起账户的交易后金额的合法性证明结果或者收款账单中的本地收款后更新金额的合法性证明结果;其中,所述可审计范围证明结果包括基于隐私金额承诺展开得到的金额承诺集;
具体地,所述监管节点在区块链上可以获取可审计范围证明结果,所述可审计范围证明结果可以是交易账单中的交易金额的合法性证明结果,也可以是交易发起账户的交易后金额的合法性证明结果,还可以是收款账单中的本地收款后更新金额的合法性证明结果。所述可审计范围证明结果包括基于隐私金额承诺展开得到的金额承诺集。
其中,对于所述交易金额的合法性证明结果,根据n个随机数以及n个比特展开项值,获得的承诺集即为基于隐私金额承诺展开得到的金额承诺集,可以表示为L={L0,…,Ln-1}。对于交易发起账户的交易后金额的合法性证明结果和收款账单中的本地收款后更新金额的合法性证明都存在与所述交易金额的合法性证明结果中类似的承诺集。
S802、根据监管私钥计算所述金额承诺集中每个子承诺集的子金额审计中间值;其中,所述监管私钥是预设的;
具体地,所述监管节点可以获得监管私钥,然后根据所述监管私钥计算所述金额承诺集中每个子承诺集的子金额审计中间值。其中,所述监管私钥是预设的。
例如,对于金额承诺集L={L0,…,Ln-1}中的第i个子承诺集Li,所述监管节点计算第i个子承诺集的子金额审计中间值
Figure BDA0002685875930000311
其中,y为监管私钥,h1=gy,TKi为第i个子承诺集对应的追踪密钥,
Figure BDA0002685875930000312
S803、根据每个子承诺集的子金额审计中间值确定每个子承诺集对应的比特展开项值;
具体地,所述监管节点在计算出每个子承诺集的子金额审计中间值之后,可以根据每个子承诺集的子金额审计中间值确定每个子承诺集对应的比特展开项值。
例如,Li=(ci,c′i),
Figure BDA0002685875930000313
所述监管节点会比较pi和ci,以及pi和c′i,如果pi=ci,那么子承诺集Li对应的比特展开项值ai=0,如果pi=c′i,那么子承诺集Li对应的比特展开项值ai=1,对于金额承诺集L中的n个子承诺集,可以计算出每个子承诺集的比特展开项值。
S804、根据各个子承诺集的比特展开项值,计算获得所述金额承诺集对应的原始金额。
具体地,所述监管节点在获得各个子承诺集的比特展开项值之后,可以根据各个子承诺集的比特展开项值计算获得所述金额承诺集对应的原始金额。
例如,金额承诺集L对应的原始金额的比特展开为:a=a0+…+2iai+…+2n-1an-1,a0,…,ai,…,an-1为各个子承诺集的比特展开项值,a为金额承诺集L对应的原始金额,i=0,…,n-1。所述监管节点在计算出各个子承诺集的比特展开项值a0,…,ai,…,an-1之后,将各个比特展开项值带入上述原始金额的比特展开公式中,即可计算获得a。
本发明实施例提供的基于区块链的交易处理方法以及基于区块链的交易处理方法,相比于现有技术,具有如下优点:
(1)与门罗币系统、零币等系统相比,本发明实施例给出了具有隐私保护功能和监管审计功能的基于账户模型的区块链的交易处理方法,具备交易接收者账户身份匿名性质,同时提高了整体的运行效率,更适合海量交易的应用场景;
(2)与基于账户模型的以太坊系统相比,本发明实施例具备隐私保护功能,此外,收钱用户账户状态更新由用户自己决定,收钱的方式更灵活,而以太坊的状态更新是与花钱交易同步完成的;
(3)与基于混币技术的方案相比,本发明实施例不需要依赖第三方混币服务,交易验证量更少,同时交易确认等待的时间和区块数更少,更适合大规模多并发的交易;
(4)与Zether系统相比,本发明实施例更新收款账户的权利来自于收款用户本身,其他人无权更新用户账户,也不存在交易挂起状态,技术方案的实用性更高,不需要对于时间轴做细化的分割逻辑,也不存在连续给同一用户发交易导致其账户瘫痪的风险,并且能够支持额外的监管功能。
图9是本发明第九实施例提供的基于区块链的交易处理装置的结构示意图,如图9所示,本发明实施例提供的基于区块链的交易处理装置包括第一获得单元901、第二获得单元902、加密单元903、第一生成单元904和第一发布单元905,其中:
第一获得单元901用于根据交易金额和所述交易金额对应的第一随机数获得交易金额承诺,并根据所述交易金额、所述交易金额承诺以及可审计范围证明规则,获得所述交易金额的合法性证明结果;第二获得单元902用于根据交易发起账户的初始状态和所述交易金额承诺,获得所述交易发起账户的交易后状态,并根据所述交易发起账户的交易后金额、所述交易发起账户的交易后状态以及所述可审计范围证明规则,获得所述交易发起账户的交易后金额的合法性证明结果;加密单元903用于根据第二随机数、交易接收方的查询公钥和消费公钥,获得所述交易金额承诺的公钥,并根据所述交易发起方与交易接收方的共享密钥对所述交易金额和所述第一随机数进行加密,获得交易金额密文;第一生成单元904用于根据所述交易发起账户的交易后状态、所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥、所述交易金额的合法性证明结果、所述交易发起账户的交易后金额的合法性证明结果和所述交易金额密文,生成交易账单;第一发布单元905用于根据交易发起方的私钥对所述交易账单进行签名,并将经过签名的交易账单发布到区块链上。
具体地,第一获得单元901可以根据交易金额和所述交易金额对应的第一随机数获得交易金额承诺,然后根据所述交易金额、所述交易金额承诺以及可审计范围证明规则,获得所述交易金额的合法性证明结果。其中,所述交易金额的合法性证明结果用于实现交易金额的隐私保护和监管审计。其中,所述可审计范围证明规则是预设的。
第二获得单元902可以获取交易发起账户的初始状态,然后根据所述交易发起账户的初始状态和所述交易金额承诺,获得所述交易发起账户的交易后状态。然后,第二获得单元902根据所述交易发起账户的交易后金额、所述交易发起账户的交易后状态以及所述可审计范围证明规则,获得所述交易发起账户的交易后金额的合法性证明结果。其中,所述交易发起账户的交易后金额的合法性证明结果用于实现隐私保护和监管审计。所述交易发起账户的交易后金额的合法性证明结果的具体获取过程与所述交易金额的合法性证明结果的具体获得过程类似。
加密单元903可以获取第二随机数和交易接收方的查询公钥和消费公钥,然后根据所述第二随机数、所述交易接收方的查询公钥和消费公钥,获得所述交易金额承诺的公钥。然后,加密单元903根据所述交易发起方与交易接收方的共享密钥对所述交易金额和所述第一随机数进行加密,获得交易金额密文。其中,所述交易金额密文用于实现交易金额的保密。
第一生成单元904可以根据所述交易发起账户的交易后状态、所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥、所述交易金额的合法性证明结果、所述交易发起账户的交易后金额的合法性证明结果和所述交易金额密文,生成交易账单。其中,所述第二随机数对应的中间值是基于第二随机数获得的。
在生成所述交易账单之后,第一发布单元905可以根据交易发起方的私钥对所述交易账单进行签名,然后将经过签名的交易账单发布到区块链上。验证节点会获取到所述交易发起节点发布的交易账单,然后对所述交易账单进行验证,所述交易账单通过验证之后,就会上链,能够被交易接收节点所获取。
本发明实施例提供的基于区块链的交易处理装置,根据交易金额和交易金额对应的第一随机数获得交易金额承诺,并根据交易金额、交易金额承诺以及可审计范围证明规则,获得交易金额的合法性证明结果;根据交易发起账户的初始状态和交易金额承诺,获得交易发起账户的交易后状态,并根据交易发起账户的交易后金额、交易发起账户的交易后状态以及可审计范围证明规则,获得交易发起账户的交易后金额的合法性证明结果;根据第二随机数、交易接收方的查询公钥和消费公钥,获得交易金额承诺的公钥,并根据交易发起方与交易接收方的共享密钥对交易金额和第一随机数进行加密,获得交易金额密文;根据交易发起账户的交易后状态、交易金额承诺、第二随机数对应的中间值、交易金额承诺的公钥、交易金额的合法性证明结果、所述交易发起账户的交易后金额的合法性证明结果和所述交易金额密文,生成交易账单;根据交易发起方的私钥对交易账单进行签名,并将经过签名的交易账单发布到区块链上,通过交易金额承诺和交易金额的合法性证明结果实现交易金额的完全隐藏,提高了交易的安全性。此外,交易金额的合法性证明结果还可以用于监管审计,实现交易金额保密情况的下的监管审计。
图10是本发明第十实施例提供的基于区块链的交易处理装置的结构示意图,如图10所示,本发明实施例提供的基于区块链的交易处理装置包括第一判断单元1001、解密单元1002、第一验证单元1003、构成单元1004、第一建立单元1005、第三获得单元1006、第二建立单元1007、第四获得单元1008、签名单元1009、第二生成单元1010和第二发布单元1011,其中:
第一判断单元1001用于在判断获知已经上链的交易账单中存在给本地转账的交易账单之后,根据第二随机数对应的中间值、本地消费私钥和本地查询私钥,获得交易金额承诺的私钥;其中,所述交易账单包括所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥和交易金额密文;解密单元1002用于根据所述交易发起方与本地的共享密钥对所述交易金额密文进行解密,获得待验证交易金额和待验证第一随机数;第一验证单元1003用于在判断获知所述待验证交易金额和所述待验证第一随机数通过所述交易金额承诺的验证之后,将待验证交易金额作为交易金额进行收款;构成单元1004用于从已经上链的交易账单中获取m-1个其他交易金额承诺,并与所述给本地转账的交易账单包括的交易金额承诺构成交易金额承诺集;其中,所述其他交易金额承诺是与本次交易无关的交易金额承诺;第一建立单元1005用于根据所述交易金额承诺集中每个交易金额承诺的公钥,建立第一公钥集;第三获得单元1006用于根据本地收款后更新金额以及本地收款后更新金额对应的第五随机数,获得所述本地收款后更新金额状态,并根据所述本地收款后更新金额、所述本地收款后更新金额状态以及所述可审计范围证明规则,获得所述本地收款后更新金额的合法性证明结果;第二建立单元1007用于根据本地原始金额状态、所述本地收款后更新金额状态、所述交易金额承诺集以及所述第一公钥集,建立第二公钥集;第四获得单元1008用于根据所述给本地转账的交易账单包括的交易金额承诺的公钥、验证通过的第一随机数、所述本地原始金额对应的随机数和所述第五随机数,获得可审计可链接双环签名的私钥;签名单元1009用于根据所述可审计可链接双环签名的私钥、所述交易金额承诺的私钥、所述第一公钥集和所述第二公钥集对交易消息进行可审计可链接双环签名,并输出可审计可链接双环签名;其中,所述交易消息包括所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额的合法性证明和所述交易金额承诺集;所述可审计可链接双环签名包括交易标签和可审计可链接双环签名结果;所述交易标签是基于所述本地消费私钥或本地查询私钥获得的;第二生成单元1010用于根据所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额的合法性证明、所述交易金额承诺集、所述第一公钥集和所述可审计可链接双环签名,生成收款账单;第二发布单元1011用于根据本地私钥对所述收款账单进行签名,并将经过签名的收款账单发布到区块链上。
具体地,第一判断单元1001可以从区块链上获取已经上链的交易账单,然后判断已经上链的交易账单中是否存在给本地转账的交易账单,如果存在给本地转账的交易账单,那么所述交易接收节点会根据第二随机数对应的中间值、本地消费私钥和本地查询私钥,获得交易金额承诺的私钥。其中,所述交易账单包括所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥和交易金额密文,所述交易账单还可以包括交易发起账户的交易后状态、交易金额的合法性证明结果、所述交易发起账户的交易后金额的合法性证明结果。
解密单元1002可以从给本地转账的交易账单中获得交易金额密文,然后通过所述交易发起方与交易接收方的共享密钥对交易金额密文进行解密,获得待验证交易金额和待验证第一随机数。
第一验证单元1003会根据所述待验证交易金额和所述待验证第一随机数计算待验证交易金额承诺,然后将待验证交易金额承诺与从给本地转账的交易账单中获得的交易金额承诺进行比较,如果待验证交易金额承诺与所述交易金额承诺相等,那么所述待验证交易金额和所述待验证第一随机数通过验证,所述待验证交易金额即为交易金额,将待验证交易金额作为交易金额进行收款。其中,对所述交易金额进行收款的具体流程为现有技术,此处不进行赘述。可理解的是,如果待验证交易金额承诺与所述交易金额承诺不相等,说明交易账单有误,所述交易接收节点不应该接收待所述验证交易金额,不会进行收款。
构成单元1004可以从已经上链的交易账单中获取m-1个其他交易金额承诺,所述其他交易金额承诺是与本次交易无关的交易金额承诺,然后将所述给本地转账的交易账单包括的交易金额承诺和m-1个其他交易金额承诺组合成交易金额承诺集。m-1个其他交易金额承诺用于混淆所述给本地转账的交易账单包括的交易金额承诺,使外界不知道交易接收节点接收了哪一个交易账单中的交易金额,从而切断了交易发起者与交易接收者之间的交易路径,实现了对交易接收者的隐私保护。其中,m是大于等于2的正整数,比如取100、1000,根据实际需要进行设置,本发明实施例不做限定。可理解的是,m的值越大,交易金额承诺集所起到的隐私保护性越强。
在获得所述交易金额承诺集之后,第一建立单元1005可以获取所述交易金额承诺集中每个交易金额承诺的公钥,建立第一公钥集。
在完成对所述交易金额收款之后,第三获得单元1006可以获得本地收款后更新金额,然后根据所述地收款后更新金额以及本地收款后更新金额对应的第五随机数,获得所述本地收款后更新金额状态。然后,第三获得单元1006根据所述本地收款后更新金额、所述本地收款后更新金额状态以及所述可审计范围证明规则,获得所述本地收款后更新金额的合法性证明结果。所述本地收款后更新金额的合法性证明结果用于实现本地收款后更新金额的隐私保护的监管审计。
第二建立单元1007根据本地原始金额状态、所述本地收款后更新金额状态、所述交易金额承诺集以及所述第一公钥集,可以建立第二公钥集。
第四获得单元1008根据所述给本地转账的交易账单包括的交易金额承诺的公钥、验证通过的第一随机数、所述本地原始金额对应的随机数和所述第五随机数,可以计算获得可审计可链接双环签名的私钥。
在获得所述可审计可链接双环签名的私钥之后,签名单元1009可以根据所述可审计可链接双环签名的私钥、所述交易金额承诺的私钥、所述第一公钥集和所述第二公钥集对交易消息进行可审计可链接双环签名,即根据所述第一公钥集以及所述交易金额承诺的私钥对所述交易消息进行可审计可链接环签名,根据所述第二公钥集和所述可审计可链接双环签名的私钥对所述交易消息进行可审计可链接环签名,实现双环签名,对并输出可审计可链接双环签名,所述可审计可链接双环签名包括交易标签和可审计可链接双环签名结果。其中,所述交易消息包括所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额的合法性证明和所述交易金额承诺集。所述交易标签是基于所述本地消费私钥或本地查询私钥获得的。可审计可链接环签名采用的签名算法根据实际需要进行设置,本发明实施例不做限定。
在获得所述可审计可链接双环签名之后,第二生成单元1010可以根据所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额状态的合法性证明、所述交易金额承诺集、所述第一公钥集和所述可审计可链接双环签名,生成收款账单。
在生成所述收款账单之后,第二发布单元1011可以根据交易接收方的私钥对所述收款账单进行签名,然后将经过签名的收款账单发布到区块链上。验证节点会获取到所述交易接收节点发布的收款账单,然后对所述收款账单进行验证,所述收款账单通过验证之后,就会上链。其中,可以根据所述交易接收方的查询私钥和/或消费私钥对所述收款账单进行签名。
本发明实施例提供的基于区块链的交易处理装置,通过可审计可链接双环签名,验证者可以获知交易接收方的收款存在于交易金额承诺集中,但不知道是具有是哪一个,无法将交易发起方和交易收款方的交易进行关联,实现了对交易接收方的隐私保护,提高了交易的安全性。
图11是本发明第十一实施例提供的基于区块链的交易处理装置的结构示意图,如图11所示,本发明实施例提供的基于区块链的交易处理装置包括第一获取单元1101和第二验证单元1102,其中:
第一获取单元1101用于从区块链上获取交易账单,所述交易账单包括交易发起账户的交易后状态、交易金额承诺、交易金额承诺的公钥、交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果;第二验证单元1102用于在判断获知所述交易账单通过合法性验证之后,将所述交易账单上链;其中,所述交易账单的合法性验证包括所述交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果的合法性检验,所述交易账单的签名的合法性检验以及根据所述交易发起账户的初始状态和所述交易金额承诺对所述交易发起账户的交易后状态的准确性检验。
具体地,交易发起节点将经过签名的交易账单发布到区块链上之后,第一获取单元1101可以从区块链上获取交易账单,所述交易账单包括交易发起账户的交易后状态、交易金额承诺、交易金额承诺的公钥、交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果。
在获取到所述交易账单之后,第二验证单元1102会对所述交易账单进行合法性验证,在所述交易账单通过所述合法性验证之后,会将所述交易账单上链,否则,所述交易账单没有通过合法性验证,会拒绝所述交易账单上链。所述交易账单的合法性验证包括所述交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果的合法性检验,所述交易账单的签名的合法性检验,根据所述交易发起账户的初始状态和所述交易金额承诺对所述交易发起账户的交易后状态的准确性检验,在所述交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果通合法性检验,所述交易账单的签名通过合法性检验,所述交易发起账户的交易后状态的准确性通过检验之后,所述交易账单才能通过合法性验证。在所述交易账单通过合法性验证之后,所述验证节点会将所述交易账单以及所述交易发起账户的交易后金额状态上链。
图12是本发明第十二实施例提供的基于区块链的交易处理装置的结构示意图,如图12所示,本发明实施例提供的基于区块链的交易处理装置包括第二获取单元1201、第二判断单元1202和第三验证单元1203,其中:
第二获取单元1201用于从区块链上获取收款账单,所述收款账单包括交易标签、本地收款后更新金额的合法性证明和可审计可链接双环签名;第二判断单元1202用于在判断获知所述交易标签未在区块链的其他收款账单中出现过之后,对所述收款账单进行合法性验证;第三验证单元1203用于在判断获知所述收款账单通过合法性验证之后,将所述收款账单上链;其中,所述收款账单的合法性验证包括所述本地收款后更新金额的合法性证明的合法性验证,所述收款账单签名的合法性验证以及所述可审计可链接双环签名的合法性检验。
具体地,交易接收节点将经过签名的收款账单发布到区块链上之后,第二获取单元1201可以从区块链上获取收款账单,所述收款账单包括交易标签、本地收款后更新金额的合法性证明和可审计可链接双环签名。
在获得收款账单之后,第二判断单元1202判断所述交易标签是否在区块链的其他收款账单中出现过,如果所述验证节点在其他收款账单中没有查询到所述交易标签,那么所述交易标签未在区块链的其他收款账单中出现过,然后对所述收款账单进行合法性验证。
第三验证单元1203判断所述收款账单是否通过合法性验证,如果通过所述合法性验证,那么将所述收款账单上链,如果没有通过合法性验证,那么拒绝所述收款账单上链。其中,所述收款账单的合法性验证包括所述本地收款后更新金额的合法性证明的合法性验证,所述收款账单签名的合法性验证以及所述可审计可链接双环签名的合法性检验,在所述本地收款后更新金额的合法性证明通过合法性验证、所述收款账单签名通过合法性验证以及所述可审计可链接双环签名通过合法性检验之后,所述收款账单通过合法性验证。
本发明实施例提供的基于区块链的交易处理装置,通过交易标签未在区块链的其他收款账单中出现过,能够防止双收攻击的发生,提高了交易的安全性。
图13是本发明第十三实施例提供的基于区块链的交易追踪装置的结构示意图,如图13所示,本发明实施例提供的基于区块链的交易追踪装置包括第三获取单元1301、第一计算单元1302、确定单元1303和第二计算单元1304,其中:
第三获取单元1301用于获取可审计范围证明结果,所述可审计范围证明结果为交易账单中的交易金额的合法性证明结果、交易发起账户的交易后金额的合法性证明结果或者收款账单中的本地收款后更新金额的合法性证明结果;其中,所述可审计范围证明结果包括基于隐私金额承诺展开得到的金额承诺集;第一计算单元1302用于根据监管私钥计算所述金额承诺集中每个子承诺集的子金额审计中间值;其中,所述监管私钥是预设的;确定单元1303用于根据每个子承诺集的追踪密钥确定每个子承诺集对应的比特展开项值;第二计算单元1304用于根据各个子承诺集的比特展开项值,计算获得所述金额承诺集对应的原始金额。
具体地,第三获取单元1301在区块链上可以获取可审计范围证明结果,所述可审计范围证明结果可以是交易账单中的交易金额的合法性证明结果,也可以是交易发起账户的交易后金额的合法性证明结果,还可以是收款账单中的本地收款后更新金额的合法性证明结果。所述可审计范围证明结果包括基于隐私金额承诺展开得到的金额承诺集。
第一计算单元1302可以获得监管私钥,然后根据所述监管私钥计算所述金额承诺集中每个子承诺集的子金额审计中间值。其中,所述监管私钥是预设的。
在计算出每个子承诺集的子金额审计中间值之后,确定单元1303可以根据每个子承诺集的追踪密钥确定每个子承诺集对应的比特展开项值。
在获得各个子承诺集的比特展开项值之后,第二计算单元1304可以根据各个子承诺集的比特展开项值计算获得所述金额承诺集对应的原始金额。
本发明实施例提供的装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
图14是本发明第十四实施例提供的电子设备的实体结构示意图,如图14所示,该电子设备可以包括:第一处理器(Processor)1401、第一通信接口(CommunicationsInterface)1402、第一存储器(Memory)1403和第一通信总线1404,其中,第一处理器1401,第一通信接口1402,第一存储器1403通过第一通信总线1404完成相互间的通信。第一处理器1401可以调用第一存储器1403中的逻辑指令,以执行如下方法,例如包括:根据交易金额和所述交易金额对应的第一随机数获得交易金额承诺,并根据所述交易金额、所述交易金额承诺以及可审计范围证明规则,获得所述交易金额的合法性证明结果;根据交易发起账户的初始状态和所述交易金额承诺,获得所述交易发起账户的交易后状态,并根据所述交易发起账户的交易后金额、所述交易发起账户的交易后状态以及所述可审计范围证明规则,获得所述交易发起账户的交易后金额的合法性证明结果;根据第二随机数、交易接收方的查询公钥和消费公钥,获得所述交易金额承诺的公钥,并根据所述交易发起方与交易接收方的共享密钥对所述交易金额和所述第一随机数进行加密,获得交易金额密文;根据所述交易发起账户的交易后状态、所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥、所述交易金额的合法性证明结果、所述交易发起账户的交易后金额的合法性证明结果和所述交易金额密文,生成交易账单;根据交易发起方的私钥对所述交易账单进行签名,并将经过签名的交易账单发布到区块链上。或者,
若判断获知已经上链的交易账单中存在给本地转账的交易账单,则根据第二随机数对应的中间值、本地消费私钥和本地查询私钥,获得交易金额承诺的私钥;其中,所述交易账单包括所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥和交易金额密文;根据交易发起方与本地的共享密钥对所述交易金额密文进行解密,获得待验证交易金额和待验证第一随机数;若判断获知所述待验证交易金额和所述待验证第一随机数通过所述交易金额承诺的验证,则将待验证交易金额作为交易金额进行收款;从已经上链的交易账单中获取m-1个其他交易金额承诺,并与所述给本地转账的交易账单包括的交易金额承诺构成交易金额承诺集;其中,所述其他交易金额承诺是与本次交易无关的交易金额承诺;根据所述交易金额承诺集中每个交易金额承诺的公钥,建立第一公钥集;根据本地收款后更新金额以及本地收款后更新金额对应的第五随机数,获得所述本地收款后更新金额状态,并根据所述本地收款后更新金额、所述本地收款后更新金额状态以及可审计范围证明规则,获得所述本地收款后更新金额的合法性证明结果;根据本地原始金额状态、所述本地收款后更新金额状态、所述交易金额承诺集以及所述第一公钥集,建立第二公钥集;根据所述给本地转账的交易账单包括的交易金额承诺的公钥、验证通过的第一随机数、所述本地原始金额对应的随机数和所述第五随机数,获得可审计可链接双环签名的私钥;根据所述可审计可链接双环签名的私钥、所述交易金额承诺的私钥、所述第一公钥集和所述第二公钥集对交易消息进行可审计可链接双环签名,并输出可审计可链接双环签名;其中,所述交易消息包括所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额的合法性证明和所述交易金额承诺集;所述可审计可链接双环签名包括交易标签和可审计可链接双环签名结果;所述交易标签是基于所述本地消费私钥或本地查询私钥获得的;根据所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额的合法性证明、所述交易金额承诺集、所述第一公钥集和所述可审计可链接双环签名,生成收款账单;根据本地私钥对所述收款账单进行签名,并将经过签名的收款账单发布到区块链上。或者
从区块链上获取交易账单,所述交易账单包括交易发起账户的交易后状态、交易金额承诺、交易金额承诺的公钥、交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果;若判断获知所述交易账单通过合法性验证,则将所述交易账单上链;其中,所述交易账单的合法性验证包括所述交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果的合法性检验,所述交易账单的签名的合法性检验以及根据所述交易发起账户的初始状态和所述交易金额承诺对所述交易发起账户的交易后状态的准确性检验。或者
从区块链上获取收款账单,所述收款账单包括交易标签、本地收款后更新金额的合法性证明和可审计可链接双环签名;若判断获知所述交易标签未在区块链的其他收款账单中出现过,则对所述收款账单进行合法性验证;若判断获知所述收款账单通过合法性验证,则将所述收款账单上链;其中,所述收款账单的合法性验证包括所述本地收款后更新金额的合法性证明的合法性验证,所述收款账单签名的合法性验证以及所述可审计可链接双环签名的合法性检验。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行如下方法,例如包括:根据交易金额和所述交易金额对应的第一随机数获得交易金额承诺,并根据所述交易金额、所述交易金额承诺以及可审计范围证明规则,获得所述交易金额的合法性证明结果;根据交易发起账户的初始状态和所述交易金额承诺,获得所述交易发起账户的交易后状态,并根据所述交易发起账户的交易后金额、所述交易发起账户的交易后状态以及所述可审计范围证明规则,获得所述交易发起账户的交易后金额的合法性证明结果;根据第二随机数、交易接收方的查询公钥和消费公钥,获得所述交易金额承诺的公钥,并根据所述交易发起方与交易接收方的共享密钥对所述交易金额和所述第一随机数进行加密,获得交易金额密文;根据所述交易发起账户的交易后状态、所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥、所述交易金额的合法性证明结果、所述交易发起账户的交易后金额的合法性证明结果和所述交易金额密文,生成交易账单;根据交易发起方的私钥对所述交易账单进行签名,并将经过签名的交易账单发布到区块链上。或者,
若判断获知已经上链的交易账单中存在给本地转账的交易账单,则根据第二随机数对应的中间值、本地消费私钥和本地查询私钥,获得交易金额承诺的私钥;其中,所述交易账单包括所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥和交易金额密文;根据交易发起方与本地的共享密钥对所述交易金额密文进行解密,获得待验证交易金额和待验证第一随机数;若判断获知所述待验证交易金额和所述待验证第一随机数通过所述交易金额承诺的验证,则将待验证交易金额作为交易金额进行收款;从已经上链的交易账单中获取m-1个其他交易金额承诺,并与所述给本地转账的交易账单包括的交易金额承诺构成交易金额承诺集;其中,所述其他交易金额承诺是与本次交易无关的交易金额承诺;根据所述交易金额承诺集中每个交易金额承诺的公钥,建立第一公钥集;根据本地收款后更新金额以及本地收款后更新金额对应的第五随机数,获得所述本地收款后更新金额状态,并根据所述本地收款后更新金额、所述本地收款后更新金额状态以及可审计范围证明规则,获得所述本地收款后更新金额的合法性证明结果;根据本地原始金额状态、所述本地收款后更新金额状态、所述交易金额承诺集以及所述第一公钥集,建立第二公钥集;根据所述给本地转账的交易账单包括的交易金额承诺的公钥、验证通过的第一随机数、所述本地原始金额对应的随机数和所述第五随机数,获得可审计可链接双环签名的私钥;根据所述可审计可链接双环签名的私钥、所述交易金额承诺的私钥、所述第一公钥集和所述第二公钥集对交易消息进行可审计可链接双环签名,并输出可审计可链接双环签名;其中,所述交易消息包括所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额的合法性证明和所述交易金额承诺集;所述可审计可链接双环签名包括交易标签和可审计可链接双环签名结果;所述交易标签是基于所述本地消费私钥或本地查询私钥获得的;根据所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额的合法性证明、所述交易金额承诺集、所述第一公钥集和所述可审计可链接双环签名,生成收款账单;根据本地私钥对所述收款账单进行签名,并将经过签名的收款账单发布到区块链上。或者
从区块链上获取交易账单,所述交易账单包括交易发起账户的交易后状态、交易金额承诺、交易金额承诺的公钥、交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果;若判断获知所述交易账单通过合法性验证,则将所述交易账单上链;其中,所述交易账单的合法性验证包括所述交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果的合法性检验,所述交易账单的签名的合法性检验以及根据所述交易发起账户的初始状态和所述交易金额承诺对所述交易发起账户的交易后状态的准确性检验。或者
从区块链上获取收款账单,所述收款账单包括交易标签、本地收款后更新金额的合法性证明和可审计可链接双环签名;若判断获知所述交易标签未在区块链的其他收款账单中出现过,则对所述收款账单进行合法性验证;若判断获知所述收款账单通过合法性验证,则将所述收款账单上链;其中,所述收款账单的合法性验证包括所述本地收款后更新金额的合法性证明的合法性验证,所述收款账单签名的合法性验证以及所述可审计可链接双环签名的合法性检验。
本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储第一计算机指令,所述第一计算机指令使所述计算机执行如下方法,例如包括:根据交易金额和所述交易金额对应的第一随机数获得交易金额承诺,并根据所述交易金额、所述交易金额承诺以及可审计范围证明规则,获得所述交易金额的合法性证明结果;根据交易发起账户的初始状态和所述交易金额承诺,获得所述交易发起账户的交易后状态,并根据所述交易发起账户的交易后金额、所述交易发起账户的交易后状态以及所述可审计范围证明规则,获得所述交易发起账户的交易后金额的合法性证明结果;根据第二随机数、交易接收方的查询公钥和消费公钥,获得所述交易金额承诺的公钥,并根据所述交易发起方与交易接收方的共享密钥对所述交易金额和所述第一随机数进行加密,获得交易金额密文;根据所述交易发起账户的交易后状态、所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥、所述交易金额的合法性证明结果、所述交易发起账户的交易后金额的合法性证明结果和所述交易金额密文,生成交易账单;根据交易发起方的私钥对所述交易账单进行签名,并将经过签名的交易账单发布到区块链上。或者,
若判断获知已经上链的交易账单中存在给本地转账的交易账单,则根据第二随机数对应的中间值、本地消费私钥和本地查询私钥,获得交易金额承诺的私钥;其中,所述交易账单包括所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥和交易金额密文;根据交易发起方与本地的共享密钥对所述交易金额密文进行解密,获得待验证交易金额和待验证第一随机数;若判断获知所述待验证交易金额和所述待验证第一随机数通过所述交易金额承诺的验证,则将待验证交易金额作为交易金额进行收款;从已经上链的交易账单中获取m-1个其他交易金额承诺,并与所述给本地转账的交易账单包括的交易金额承诺构成交易金额承诺集;其中,所述其他交易金额承诺是与本次交易无关的交易金额承诺;根据所述交易金额承诺集中每个交易金额承诺的公钥,建立第一公钥集;根据本地收款后更新金额以及本地收款后更新金额对应的第五随机数,获得所述本地收款后更新金额状态,并根据所述本地收款后更新金额、所述本地收款后更新金额状态以及可审计范围证明规则,获得所述本地收款后更新金额的合法性证明结果;根据本地原始金额状态、所述本地收款后更新金额状态、所述交易金额承诺集以及所述第一公钥集,建立第二公钥集;根据所述给本地转账的交易账单包括的交易金额承诺的公钥、验证通过的第一随机数、所述本地原始金额对应的随机数和所述第五随机数,获得可审计可链接双环签名的私钥;根据所述可审计可链接双环签名的私钥、所述交易金额承诺的私钥、所述第一公钥集和所述第二公钥集对交易消息进行可审计可链接双环签名,并输出可审计可链接双环签名;其中,所述交易消息包括所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额的合法性证明和所述交易金额承诺集;所述可审计可链接双环签名包括交易标签和可审计可链接双环签名结果;所述交易标签是基于所述本地消费私钥或本地查询私钥获得的;根据所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额的合法性证明、所述交易金额承诺集、所述第一公钥集和所述可审计可链接双环签名,生成收款账单;根据本地私钥对所述收款账单进行签名,并将经过签名的收款账单发布到区块链上。或者
从区块链上获取交易账单,所述交易账单包括交易发起账户的交易后状态、交易金额承诺、交易金额承诺的公钥、交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果;若判断获知所述交易账单通过合法性验证,则将所述交易账单上链;其中,所述交易账单的合法性验证包括所述交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果的合法性检验,所述交易账单的签名的合法性检验以及根据所述交易发起账户的初始状态和所述交易金额承诺对所述交易发起账户的交易后状态的准确性检验。或者
从区块链上获取收款账单,所述收款账单包括交易标签、本地收款后更新金额的合法性证明和可审计可链接双环签名;若判断获知所述交易标签未在区块链的其他收款账单中出现过,则对所述收款账单进行合法性验证;若判断获知所述收款账单通过合法性验证,则将所述收款账单上链;其中,所述收款账单的合法性验证包括所述本地收款后更新金额的合法性证明的合法性验证,所述收款账单签名的合法性验证以及所述可审计可链接双环签名的合法性检验。
图15是本发明第十五实施例提供的电子设备的实体结构示意图,如图15所示,该电子设备可以包括:第二处理器(Processor)1501、第二通信接口(CommunicationsInterface)1502、第二存储器(Memory)1503和第二通信总线1504,其中,第二处理器1501,第二通信接口1502,第二存储器1503通过第二通信总线1504完成相互间的通信。第二处理器1501可以调用第二存储器1503中的逻辑指令,以执行如下方法,例如包括:获取可审计范围证明结果,所述可审计范围证明结果为交易账单中的交易金额的合法性证明结果、交易发起账户的交易后金额的合法性证明结果或者收款账单中的本地收款后更新金额的合法性证明结果;其中,所述可审计范围证明结果包括基于隐私金额承诺展开得到的金额承诺集;根据监管私钥计算所述金额承诺集中每个子承诺集的子金额审计中间值;其中,所述监管私钥是预设的;根据每个子承诺集的追踪密钥确定每个子承诺集对应的比特展开项值;根据各个子承诺集的比特展开项值,计算获得所述金额承诺集对应的原始金额。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行如下方法,例如包括:获取可审计范围证明结果,所述可审计范围证明结果为交易账单中的交易金额的合法性证明结果、交易发起账户的交易后金额的合法性证明结果或者收款账单中的本地收款后更新金额的合法性证明结果;其中,所述可审计范围证明结果包括基于隐私金额承诺展开得到的金额承诺集;根据监管私钥计算所述金额承诺集中每个子承诺集的子金额审计中间值;其中,所述监管私钥是预设的;根据每个子承诺集的追踪密钥确定每个子承诺集对应的比特展开项值;根据各个子承诺集的比特展开项值,计算获得所述金额承诺集对应的原始金额。
本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储第二计算机指令,所述第二计算机指令使所述计算机执行如下方法,例如包括:获取可审计范围证明结果,所述可审计范围证明结果为交易账单中的交易金额的合法性证明结果、交易发起账户的交易后金额的合法性证明结果或者收款账单中的本地收款后更新金额的合法性证明结果;其中,所述可审计范围证明结果包括基于隐私金额承诺展开得到的金额承诺集;根据监管私钥计算所述金额承诺集中每个子承诺集的子金额审计中间值;其中,所述监管私钥是预设的;根据每个子承诺集的追踪密钥确定每个子承诺集对应的比特展开项值;根据各个子承诺集的比特展开项值,计算获得所述金额承诺集对应的原始金额。
此外,上述的第一存储器1403和第二存储器1503中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,装置,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (19)

1.一种基于区块链的交易处理方法,其特征在于,包括:
根据交易金额和所述交易金额对应的第一随机数获得交易金额承诺,并根据所述交易金额、所述交易金额承诺以及可审计范围证明规则,获得所述交易金额的合法性证明结果;
根据交易发起账户的初始状态和所述交易金额承诺,获得所述交易发起账户的交易后状态,并根据所述交易发起账户的交易后金额、所述交易发起账户的交易后状态以及所述可审计范围证明规则,获得所述交易发起账户的交易后金额的合法性证明结果;
根据第二随机数、交易接收方的查询公钥和消费公钥,获得所述交易金额承诺的公钥,并根据所述交易发起方与交易接收方的共享密钥对所述交易金额和所述第一随机数进行加密,获得交易金额密文;
根据所述交易发起账户的交易后状态、所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥、所述交易金额的合法性证明结果、所述交易发起账户的交易后金额的合法性证明结果和所述交易金额密文,生成交易账单;
根据交易发起方的私钥对所述交易账单进行签名,并将经过签名的交易账单发布到区块链上;
其中,所述根据所述交易金额、所述交易金额承诺以及可审计范围证明规则,获得所述交易金额的合法性证明结果包括:
获取n个随机数并对所述交易金额进行比特展开,获得n个比特展开项值;
根据n个随机数以及n个比特展开项值,获得承诺集;
根据n个随机数以及监管公钥,获得第一追踪密钥集合,并根据公共随机哈希点以及n个随机数,获得数值标签集;
根据所述承诺集、所述第一追踪密钥集合、所述数值标签集、第三随机数和第四随机数,获得公钥组集合;
运行多环签名,获得多环签名结果;其中,所述多环签名结果包括所述公钥组集合、n个随机数、所述交易金额承诺、n个随机数的中间值、所述第一追踪密钥集合和所述数值标签集;
根据所述交易金额承诺、n个随机数的中间值、所述承诺集、所述第一追踪密钥集合、所述数值标签集以及所述多环签名结果,生成所述交易金额的合法性证明结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述交易金额和所述交易金额对应的随机数获得交易金额承诺包括:
根据所述交易金额、所述交易金额对应的第一随机数以及转账金额承诺计算公式,计算获得所述交易金额承诺。
3.根据权利要求1所述的方法,其特征在于,所述交易发起方与交易接收方的共享密钥根据所述交易接收方的查询公钥和所述第二随机数计算获得。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述根据交易发起方的私钥对所述交易账单进行签名包括:
根据所述交易发起方的查询私钥和/或消费私钥对所述交易账单进行签名。
5.一种基于区块链的交易处理方法,其特征在于,包括:
若判断获知已经上链的交易账单中存在给本地转账的交易账单,则根据第二随机数对应的中间值、本地消费私钥和本地查询私钥,获得交易金额承诺的私钥;其中,所述交易账单包括所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥和交易金额密文;
根据交易发起方与本地的共享密钥对所述交易金额密文进行解密,获得待验证交易金额和待验证第一随机数;
若判断获知所述待验证交易金额和所述待验证第一随机数通过所述交易金额承诺的验证,则将待验证交易金额作为交易金额进行收款;
从已经上链的交易账单中获取m-1个其他交易金额承诺,并与所述给本地转账的交易账单包括的交易金额承诺构成交易金额承诺集;其中,所述其他交易金额承诺是与本次交易无关的交易金额承诺;
根据所述交易金额承诺集中每个交易金额承诺的公钥,建立第一公钥集;
根据本地收款后更新金额以及本地收款后更新金额对应的第五随机数,获得所述本地收款后更新金额状态,并根据所述本地收款后更新金额、所述本地收款后更新金额状态以及可审计范围证明规则,获得所述本地收款后更新金额的合法性证明结果;
根据本地原始金额状态、所述本地收款后更新金额状态、所述交易金额承诺集以及所述第一公钥集,建立第二公钥集;
根据所述给本地转账的交易账单包括的交易金额承诺的公钥、验证通过的第一随机数、所述本地原始金额对应的随机数和所述第五随机数,获得可审计可链接双环签名的私钥;
根据所述可审计可链接双环签名的私钥、所述交易金额承诺的私钥、所述第一公钥集和所述第二公钥集对交易消息进行可审计可链接双环签名,并输出可审计可链接双环签名;其中,所述交易消息包括所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额的合法性证明和所述交易金额承诺集;所述可审计可链接双环签名包括交易标签和可审计可链接双环签名结果;所述交易标签是基于所述本地消费私钥或本地查询私钥获得的;
根据所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额的合法性证明、所述交易金额承诺集、所述第一公钥集和所述可审计可链接双环签名,生成收款账单;
根据本地私钥对所述收款账单进行签名,并将经过签名的收款账单发布到区块链上。
6.根据权利要求5所述的方法,其特征在于,所述若判断获知已经上链的交易账单中存在给本地的转账包括:
根据所述第二随机数对应的中间值、所述本地查询私钥和本地消费公钥,计算获得待匹配公钥;
若判断获知所述待匹配公钥与所述交易账单包括的交易金额承诺的公钥匹配,则确定所述交易账单存在给本地的转账。
7.一种基于区块链的交易处理方法,其特征在于,包括:
从区块链上获取交易账单,所述交易账单包括交易发起账户的交易后状态、交易金额承诺、交易金额承诺的公钥、交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果;其中,所述交易发起账户的交易后金额的合法性证明结果是根据所述交易发起账户的交易后金额、所述交易发起账户的交易后状态以及可审计范围证明规则获得的,所述交易发起账户的交易后状态是基于所述交易发起账户的初始状态和所述交易金额承诺获得的;
若判断获知所述交易账单通过合法性验证,则将所述交易账单上链;其中,所述交易账单的合法性验证包括所述交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果的合法性检验,所述交易账单的签名的合法性检验以及根据所述交易发起账户的初始状态和所述交易金额承诺对所述交易发起账户的交易后状态的准确性检验。
8.一种基于区块链的交易处理方法,其特征在于,包括:
从区块链上获取收款账单,所述收款账单包括交易标签、本地收款后更新金额的合法性证明和可审计可链接双环签名;
若判断获知所述交易标签未在区块链的其他收款账单中出现过,则对所述收款账单进行合法性验证;
若判断获知所述收款账单通过合法性验证,则将所述收款账单上链;其中,所述收款账单的合法性验证包括所述本地收款后更新金额的合法性证明的合法性验证,所述收款账单签名的合法性验证以及所述可审计可链接双环签名的合法性检验;其中,在所述本地收款后更新金额的合法性证明通过合法性验证、所述收款账单签名通过合法性验证且所述可审计可链接双环签名通过合法性检验之后,所述收款账单通过合法性验证。
9.根据权利要求8所述的方法,其特征在于,还包括:
若判断获知所述交易标签在区块链的其他收款账单中出现过,则确定发生双重收款并拒绝所述收款账单上链。
10.一种基于区块链的交易追踪方法,其特征在于,包括:
获取可审计范围证明结果,所述可审计范围证明结果为交易账单中的交易金额的合法性证明结果、交易发起账户的交易后金额的合法性证明结果或者收款账单中的本地收款后更新金额的合法性证明结果;其中,所述可审计范围证明结果包括基于隐私金额承诺展开得到的金额承诺集;
根据监管私钥计算所述金额承诺集中每个子承诺集的子金额审计中间值;其中,所述监管私钥是预设的;
根据每个子承诺集的子金额审计中间值确定每个子承诺集对应的比特展开项值;
根据各个子承诺集的比特展开项值,计算获得所述金额承诺集对应的原始金额。
11.一种基于区块链的交易处理装置,其特征在于,包括:
第一获得单元,用于根据交易金额和所述交易金额对应的第一随机数获得交易金额承诺,并根据所述交易金额、所述交易金额承诺以及可审计范围证明规则,获得所述交易金额的合法性证明结果;
第二获得单元,用于根据交易发起账户的初始状态和所述交易金额承诺,获得所述交易发起账户的交易后状态,并根据所述交易发起账户的交易后金额、所述交易发起账户的交易后状态以及所述可审计范围证明规则,获得所述交易发起账户的交易后金额的合法性证明结果;
加密单元,用于根据第二随机数、交易接收方的查询公钥和消费公钥,获得所述交易金额承诺的公钥,并根据所述交易发起方与交易接收方的共享密钥对所述交易金额和所述第一随机数进行加密,获得交易金额密文;
第一生成单元,用于根据所述交易发起账户的交易后状态、所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥、所述交易金额的合法性证明结果、所述交易发起账户的交易后金额的合法性证明结果和所述交易金额密文,生成交易账单;
第一发布单元,用于根据交易发起方的私钥对所述交易账单进行签名,并将经过签名的交易账单发布到区块链上;
其中,所述第一获得单元具体用于获取n个随机数并对所述交易金额进行比特展开,获得n个比特展开项值;根据n个随机数以及n个比特展开项值,获得承诺集;根据n个随机数以及监管公钥,获得第一追踪密钥集合,并根据公共随机哈希点以及n个随机数,获得数值标签集;根据所述承诺集、所述第一追踪密钥集合、所述数值标签集、第三随机数和第四随机数,获得公钥组集合;运行多环签名,获得多环签名结果;其中,所述多环签名结果包括所述公钥组集合、n个随机数、所述交易金额承诺、n个随机数的中间值、所述第一追踪密钥集合和所述数值标签集;根据所述交易金额承诺、n个随机数的中间值、所述承诺集、所述第一追踪密钥集合、所述数值标签集以及所述多环签名结果,生成所述交易金额的合法性证明结果。
12.一种基于区块链的交易处理装置,其特征在于,包括:
第一判断单元,用于在判断获知已经上链的交易账单中存在给本地转账的交易账单之后,根据第二随机数对应的中间值、本地消费私钥和本地查询私钥,获得交易金额承诺的私钥;其中,所述交易账单包括所述交易金额承诺、所述第二随机数对应的中间值、所述交易金额承诺的公钥和交易金额密文;
解密单元,用于根据交易发起方与本地的共享密钥对所述交易金额密文进行解密,获得待验证交易金额和待验证第一随机数;
第一验证单元,用于在判断获知所述待验证交易金额和所述待验证第一随机数通过所述交易金额承诺的验证之后,将待验证交易金额作为交易金额进行收款;
构成单元,用于从已经上链的交易账单中获取m-1个其他交易金额承诺,并与所述给本地转账的交易账单包括的交易金额承诺构成交易金额承诺集;其中,所述其他交易金额承诺是与本次交易无关的交易金额承诺;
第一建立单元,用于根据所述交易金额承诺集中每个交易金额承诺的公钥,建立第一公钥集;
第三获得单元,用于根据本地收款后更新金额以及本地收款后更新金额对应的第五随机数,获得所述本地收款后更新金额状态,并根据所述本地收款后更新金额、所述本地收款后更新金额状态以及可审计范围证明规则,获得所述本地收款后更新金额的合法性证明结果;
第二建立单元,用于根据本地原始金额状态、所述本地收款后更新金额状态、所述交易金额承诺集以及所述第一公钥集,建立第二公钥集;
第四获得单元,用于根据所述给本地转账的交易账单包括的交易金额承诺的公钥、验证通过的第一随机数、所述本地原始金额对应的随机数和所述第五随机数,获得可审计可链接双环签名的私钥;
签名单元,用于根据所述可审计可链接双环签名的私钥、所述交易金额承诺的私钥、所述第一公钥集和所述第二公钥集对交易消息进行可审计可链接双环签名,并输出可审计可链接双环签名;其中,所述交易消息包括所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额的合法性证明和所述交易金额承诺集;所述可审计可链接双环签名包括交易标签和可审计可链接双环签名结果;所述交易标签是基于所述本地消费私钥或本地查询私钥获得的;
第二生成单元,用于根据所述本地原始金额状态、所述本地收款后更新金额状态、所述本地收款后更新金额的合法性证明、所述交易金额承诺集、所述第一公钥集和所述可审计可链接双环签名,生成收款账单;
第二发布单元,用于根据本地私钥对所述收款账单进行签名,并将经过签名的收款账单发布到区块链上。
13.一种基于区块链的交易处理装置,其特征在于,包括:
第一获取单元,用于从区块链上获取交易账单,所述交易账单包括交易发起账户的交易后状态、交易金额承诺、交易金额承诺的公钥、交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果;其中,所述交易发起账户的交易后金额的合法性证明结果是根据所述交易发起账户的交易后金额、所述交易发起账户的交易后状态以及可审计范围证明规则获得的,所述交易发起账户的交易后状态是基于所述交易发起账户的初始状态和所述交易金额承诺获得的;
第二验证单元,用于在判断获知所述交易账单通过合法性验证之后,将所述交易账单上链;其中,所述交易账单的合法性验证包括所述交易金额的合法性证明结果和所述交易发起账户的交易后金额的合法性证明结果的合法性检验,所述交易账单的签名的合法性检验以及根据所述交易发起账户的初始状态和所述交易金额承诺对所述交易发起账户的交易后状态的准确性检验。
14.一种基于区块链的交易处理装置,其特征在于,包括:
第二获取单元,用于从区块链上获取收款账单,所述收款账单包括交易标签、本地收款后更新金额的合法性证明和可审计可链接双环签名;
第二判断单元,用于在判断获知所述交易标签未在区块链的其他收款账单中出现过之后,对所述收款账单进行合法性验证;
第三验证单元,用于在判断获知所述收款账单通过合法性验证之后,将所述收款账单上链;其中,所述收款账单的合法性验证包括所述本地收款后更新金额的合法性证明的合法性验证,所述收款账单签名的合法性验证以及所述可审计可链接双环签名的合法性检验;其中,在所述本地收款后更新金额的合法性证明通过合法性验证、所述收款账单签名通过合法性验证且所述可审计可链接双环签名通过合法性检验之后,所述收款账单通过合法性验证。
15.一种基于区块链的交易追踪装置,其特征在于,包括:
第三获取单元,用于获取可审计范围证明结果,所述可审计范围证明结果为交易账单中的交易金额的合法性证明结果、交易发起账户的交易后金额的合法性证明结果或者收款账单中的本地收款后更新金额的合法性证明结果;其中,所述可审计范围证明结果包括基于隐私金额承诺展开得到的金额承诺集;
第一计算单元,用于根据监管私钥计算所述金额承诺集中每个子承诺集的子金额审计中间值;其中,所述监管私钥是预设的;
确定单元,用于根据每个子承诺集的追踪密钥确定每个子承诺集对应的比特展开项值;
第二计算单元,用于根据各个子承诺集的比特展开项值,计算获得所述金额承诺集对应的原始金额。
16.一种电子设备,包括第一存储器、第一处理器及存储在所述第一存储器上并可在第一处理器上运行的第一计算机程序,其特征在于,所述第一处理器执行所述第一计算机程序时实现权利要求1至4任一项所述的方法,权利要求5或6所述的方法,或者权利要求7至9任一项所述的方法。
17.一种计算机可读存储介质,其上存储有第一计算机程序,其特征在于,所述第一计算机程序被第一处理器执行时实现权利要求1至4任一项所述的方法,权利要求5或6所述的方法,或者权利要求7至9任一项所述的方法。
18.一种电子设备,包括第二存储器、第二处理器及存储在所述第二存储器上并可在第二处理器上运行的第二计算机程序,其特征在于,所述第二处理器执行所述第二计算机程序时实现权利要求10所述的方法。
19.一种计算机可读存储介质,其上存储有第二计算机程序,其特征在于,所述第二计算机程序被第二处理器执行时实现权利要求10所述的方法。
CN202010976159.2A 2020-09-16 2020-09-16 基于区块链的交易处理方法、交易追踪方法及装置 Active CN112115201B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010976159.2A CN112115201B (zh) 2020-09-16 2020-09-16 基于区块链的交易处理方法、交易追踪方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010976159.2A CN112115201B (zh) 2020-09-16 2020-09-16 基于区块链的交易处理方法、交易追踪方法及装置

Publications (2)

Publication Number Publication Date
CN112115201A CN112115201A (zh) 2020-12-22
CN112115201B true CN112115201B (zh) 2021-11-16

Family

ID=73802059

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010976159.2A Active CN112115201B (zh) 2020-09-16 2020-09-16 基于区块链的交易处理方法、交易追踪方法及装置

Country Status (1)

Country Link
CN (1) CN112115201B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113034276A (zh) * 2020-12-29 2021-06-25 上海能链众合科技有限公司 一种区块链隐私交易解决方法
CN112801659A (zh) * 2021-01-25 2021-05-14 矩阵元技术(深圳)有限公司 基于智能合约的隐私交易处理方法、装置及存储介质
CN113486407B (zh) * 2021-07-05 2022-07-08 建信金融科技有限责任公司 基于区块链的存单管理系统和方法
CN113570373B (zh) * 2021-09-23 2022-02-11 北京理工大学 一种基于区块链的可追责交易方法及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108764874B (zh) * 2018-05-17 2021-09-07 深圳前海微众银行股份有限公司 基于区块链的匿名转账方法、系统及存储介质
CN109034801A (zh) * 2018-07-31 2018-12-18 杭州复杂美科技有限公司 一种隐私交易方法及系统、设备和可存储介质
CN109034800A (zh) * 2018-07-31 2018-12-18 杭州复杂美科技有限公司 一种隐私交易方法、系统及设备
CN109359971B (zh) * 2018-08-06 2020-05-05 阿里巴巴集团控股有限公司 区块链交易方法及装置、电子设备
CN110473105B (zh) * 2019-08-20 2024-01-16 深圳市迅雷网络技术有限公司 一种区块链交易结算方法、系统及相关设备

Also Published As

Publication number Publication date
CN112115201A (zh) 2020-12-22

Similar Documents

Publication Publication Date Title
CN112115201B (zh) 基于区块链的交易处理方法、交易追踪方法及装置
EP3364598B1 (en) Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
EP3420669B1 (en) Cryptographic method and system for secure extraction of data from a blockchain
CN107358424B (zh) 一种基于数字货币的交易方法和装置
CN107392603B (zh) 使用数字货币的交易方法和装置
Zhou et al. ExpSOS: Secure and verifiable outsourcing of exponentiation operations for mobile cloud computing
CN109617699A (zh) 一种密钥生成方法、区块链网络服务平台及存储介质
CN110545279A (zh) 兼具隐私和监管功能的区块链交易方法、装置及系统
Asfia et al. Energy trading of electric vehicles using blockchain and smart contracts
CN110599164B (zh) 一种可监管的链下任意收款方快速支付方法
Chen et al. A Certificateless Strong Designated Verifier Signature Scheme with Non-delegatability.
CN112132577B (zh) 一种基于区块链的多重监管的交易处理方法及装置
CN111563733B (zh) 一种用于数字钱包的环签名隐私保护系统及方法
Zhang et al. Practical and efficient attribute-based encryption with constant-size ciphertexts in outsourced verifiable computation
Basha et al. Security enhancement of digital signatures for blockchain using EdDSA algorithm
Ren et al. Cryptographic accumulator and its application: A survey
CN112132578B (zh) 一种基于区块链的高效交易处理方法、追踪方法及装置
CN112785306B (zh) 基于Paillier的同态加密方法及应用系统
Wang et al. Data security storage mechanism based on blockchain network
Zhang et al. The security analysis and improvement of some novel quantum proxy signature schemes
Gou et al. A novel quantum E-payment protocol based on blockchain
Li et al. An auditable confidentiality protocol for blockchain transactions
CN116051260A (zh) 银行借贷模型构建方法、借贷金额计算方法、装置及系统
CN114547684A (zh) 一种保护隐私数据的多方联合训练树模型的方法及装置
Ersoy et al. Practical exchange for unique digital goods

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