CN111709738B - 区块链系统中隐藏交易金额的方法、计算机可读存储介质和区块链系统 - Google Patents
区块链系统中隐藏交易金额的方法、计算机可读存储介质和区块链系统 Download PDFInfo
- Publication number
- CN111709738B CN111709738B CN202010417928.5A CN202010417928A CN111709738B CN 111709738 B CN111709738 B CN 111709738B CN 202010417928 A CN202010417928 A CN 202010417928A CN 111709738 B CN111709738 B CN 111709738B
- Authority
- CN
- China
- Prior art keywords
- transaction
- initiator
- key
- confusion
- 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
Links
Classifications
-
- 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/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明涉及一种区块链系统中隐藏交易金额的方法,包括:交易发起方生成会话密钥对。所述交易发起方基于交易私钥、发起方地址和接收方地址生成混淆密钥来混淆致随机盲因子和交易金额以生成发起方混淆数据和接收方混淆数据,并将所述交易公钥、发起方混淆数据和接收方混淆数据写入所述交易信息。交易用户扫描所述区块链系统中存储的交易以获取所述交易公钥,并基于所述交易用户的自身私钥和所述交易公钥获取所述混淆密钥以解密所述发起方混淆数据和所述接收方混淆数据从而获取交易金额,并判断交易金额是否正确。本发明还涉及一种计算机可读存储介质和区块链系统。本发明可以隐藏交易金额、保护用户隐私。
Description
技术领域
本发明涉及区块链领域,更具体地说,涉及一种区块链系统中隐藏交易金额的方法、计算机可读存储介质和区块链系统。
背景技术
区块链是一种由多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储、难以篡改、防止抵赖的分布式账本技术。传统的基于UTXO(Unspent TransactionOutput)的区块链,使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,除了交易各方的私有信息被加密外,任何人都可以通过公开的接口查询每笔交易或某个地址的余额,所有交易数据都是公开透明的。但这种开放的系统特点造成了无隐私性可言,如果知道一些商业机构的账户和交易信息,就能知道它的所有财富和商业机密等。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种可以隐藏交易金额、保护用户隐私的区块链系统中隐藏交易金额的方法、计算机可读存储介质和区块链系统。
本发明解决其技术问题所采用的技术方案是:构造一种区块链系统中隐藏交易金额的方法,包括以下步骤:
S1、交易发起方生成会话密钥对,所述会话密钥对包括交易公钥和交易私钥;
S2、所述交易发起方基于所述交易私钥、发起方地址和接收方地址生成混淆密钥来混淆致随机盲因子和交易金额以生成发起方混淆数据和接收方混淆数据,并将所述交易公钥、发起方混淆数据和接收方混淆数据写入所述交易信息;
S3、所述交易发起方对所述交易信息进行签名并将签名交易提交到区块链系统,所述区块链系统验证所述签名交易并将验证通过的交易存储在所述区块链系统中;
S4、交易用户扫描所述区块链系统中存储的交易以获取所述交易公钥,并基于所述交易用户的自身私钥和所述交易公钥获取所述混淆密钥以解密所述发起方混淆数据和所述接收方混淆数据从而获取交易金额,并判断交易金额是否正确。
在本发明所述的区块链系统中隐藏交易金额的方法中,所述步骤S1进一步包括:
S11、所述交易发起方选取椭圆曲线,并选取椭圆曲线上的一个基点作为通用基点,将椭圆曲线上的标量作为所述交易私钥;
S12、所述交易发起方基于所述通用基点和所述交易私钥做椭圆曲线乘法生成所述交易公钥。
在本发明所述的区块链系统中隐藏交易金额的方法中,所述步骤S2进一步包括:
S21、所述交易发起方基于所述交易私钥和所述发起方地址生成发起方致盲因子混淆密钥和发起方金额混淆密钥,基于所述交易私钥和所述接收方地址生成接收方致盲因子混淆密钥和接收方金额混淆密钥;
S22、所述交易发起方基于交易金额、发起方随机致盲因子、发起方致盲因子混淆密钥、发起方金额混淆密钥生成所述发起方混淆数据,且基于交易金额、接收方随机致盲因子、接收方致盲因子混淆密钥、接收方金额混淆密钥生成所述接收方混淆数据;
S23、所述交易发起方将所述交易公钥、发起方混淆数据和接收方混淆数据写入所述交易信息。
在本发明所述的区块链系统中隐藏交易金额的方法中,所述步骤S21进一步包括:
S211、所述交易发起方使用所述交易私钥与所述发起方地址做椭圆曲线乘法,并使用哈希函数对乘积做哈希运算,再将哈希运算结果作为发起方基础密钥;
S212、所述交易发起方使用哈希函数对所述发起方基础密钥做哈希运算并将哈希运算结果作为所述发起方致盲因子混淆密钥,然后使用哈希函数对所述发起方致盲因子混淆密钥做哈希运算并将哈希运算结果作为发起方金额混淆密钥;
S213、所述交易发起方使用所述交易私钥与所述接收方地址做椭圆曲线乘法,并使用哈希函数对乘积做哈希运算,再将哈希运算结果作为接收方基础密钥;
S214、所述交易发起方使用哈希函数对所述接收方基础密钥做哈希运算并将哈希运算结果作为所述接收方致盲因子混淆密钥,然后使用哈希函数对所述接收方致盲因子混淆密钥做哈希运算并将哈希运算结果作为接收方金额混淆密钥。
在本发明所述的区块链系统中隐藏交易金额的方法中,所述步骤S22进一步包括:
S221、将所述交易金额中的发起金额进行二进制拆解,已获得发起金额拆解值;
S222、取椭圆曲线上的第一基点和第二基点,并取设定数量的发起方随机致盲因子,从而基于所述第一基点、所述第二基点和所述发起方随机致盲因子生成发起方承诺;
S223、对所述发起方随机致盲因子求和之后,采用所述接收方致盲因子混淆密钥进行混淆以生成接收方混淆面具;
S224、对所述发起金额拆解值求和之后,采用所述接收方金额混淆密钥进行混淆以生成接收方混淆金额;
S225、将所述接收方承诺、所述接收方混淆面具和所述接收方混淆金额写入所述交易信息。
在本发明所述的区块链系统中隐藏交易金额的方法中,所述步骤S22进一步包括:
S22a、将所述交易金额中的找零金额进行二进制拆解,已获得找零金额拆解值;
S22b、取椭圆曲线上的第三基点和第四基点,并取设定数量的接收方随机致盲因子,从而基于所述第三基点、所述第四基点和所述接收方随机致盲因子生成接收方承诺;
S22c、对所述接收方随机致盲因子求和之后,采用所述发起方致盲因子混淆密钥进行混淆以生成发起方混淆面具;
S22d、对所述找零金额拆解值求和之后,采用所述发起方金额混淆密钥进行混淆以生成发起方混淆金额;
S22e、将所述发起方承诺、所述发起方混淆面具和所述发起方混淆金额写入所述交易信息。
在本发明所述的区块链系统中隐藏交易金额的方法中,所述步骤S4进一步包括:
S41、所述交易用户扫描所述区块链系统中存储的交易以获取所述交易公钥、所述发起方混淆面具、所述发起方混淆金额、所述接收方混淆面具和所述接收方混淆金额;
S42、所述交易用户基于所述自身私钥和所述交易公钥推导所述发起方基础密钥或所述接收方基础密钥;
S43、所述交易用户基于所述发起方基础密钥或所述接收方基础密钥推导出所述发起方致盲因子混淆密钥和所述发起方金额混淆密钥或推导出所述接收方致盲因子混淆密钥和所述接收方金额混淆密钥;
S44、所述交易用户基于所述接收方致盲因子混淆密钥和所述接收方金额混淆密钥解密出所述发起金额或基于所述发起方致盲因子混淆密钥和所述发起方金额混淆密钥解密出所述找零金额;
S45、所述交易用户将所述发起金额或所述找零金额与自身金额比对以判断所述发起金额或所述找零金额是否正确。
本发明解决其技术问题采用的另一技术方案是,构造一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现所述的区块链系统中隐藏交易金额的方法。
本发明解决其技术问题采用的再一技术方案是,构造一种区块链系统,包括多个区块链节点,所述区块链节点上存储有计算机程序,所述程序被处理器执行时实现根据所述的区块链系统中隐藏交易金额的方法。
实施本发明的区块链系统中隐藏交易金额的方法、计算机可读存储介质和区块链系统,交易发起方通过将公钥写在交易信息中,并将私钥用于生成混淆交易金额的会话密钥,而交易双方均可以使用自己的私钥推导出交易金额的加密私钥,从而解密获得具体金额,因此可以隐藏交易金额、保护用户隐私。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明的区块链系统中隐藏交易金额的方法的第一优选实施例的流程图;
图2是本发明的区块链系统中隐藏交易金额的方法的第二优选实施例的交易金额的隐藏和匹配示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明涉及一种区块链系统中隐藏交易金额的方法。交易发起方生成会话密钥对,所述会话密钥对包括交易公钥和交易私钥。所述交易发起方基于所述交易私钥、发起方地址和接收方地址生成混淆密钥来混淆致随机盲因子和交易金额以生成发起方混淆数据和接收方混淆数据,并将所述交易公钥、发起方混淆数据和接收方混淆数据写入所述交易信息。所述交易发起方对所述交易信息进行签名并将签名交易提交到区块链系统,所述区块链系统验证所述签名交易并将验证通过的交易存储在所述区块链系统中。交易用户扫描所述区块链系统中存储的交易以获取所述交易公钥,并基于所述交易用户的自身私钥和所述交易公钥获取所述混淆密钥以解密所述发起方混淆数据和所述接收方混淆数据从而获取交易金额,并判断交易金额是否正确。在本发明中,交易发起方通过将公钥写在交易信息中,并将私钥用于生成混淆交易金额的会话密钥,而交易双方均可以使用自己的私钥推导出交易金额的加密私钥,从而解密获得具体金额,因此可以隐藏交易金额、保护用户隐私。
图1是本发明的区块链系统中隐藏交易金额的方法的第一优选实施例的流程图。如图1所示,在步骤S1中,交易发起方生成会话密钥对。所述会话密钥对包括交易公钥和交易私钥。在本发明的优选实施例中,会话密钥对的生成可以建立在椭圆曲线密钥体系之上,具体的椭圆曲线密钥体系需要符合椭圆曲线的加法交换律、加法结合律、乘法交换律、乘法结合律。与此同时还需要有哈希函数,可以对椭圆曲线上的标量做不可逆推的哈希。
优选的,所述交易发起方选取椭圆曲线,并选取椭圆曲线上的一个基点作为通用基点,将椭圆曲线上的标量作为所述交易私钥;然后基于所述通用基点和所述交易私钥做椭圆曲线乘法生成所述交易公钥,该过程不可逆。然后所述交易发起方基于所述交易私钥和所述交易公钥构建所述会话密钥对。即所述会话密钥对实际上包括所述交易私钥和所述交易公钥。
在步骤S2中,所述交易发起方基于所述交易私钥、发起方地址和接收方地址生成混淆密钥来混淆致随机盲因子和交易金额以生成发起方混淆数据和接收方混淆数据,并将所述交易公钥、发起方混淆数据和接收方混淆数据写入所述交易信息。
在本发明的一个优选实施例中,所述交易发起方基于所述交易私钥和所述发起方地址生成发起方致盲因子混淆密钥和发起方金额混淆密钥,基于所述交易私钥和所述接收方地址生成接收方致盲因子混淆密钥和接收方金额混淆密钥。同时或者之后,所述交易发起方基于交易金额、发起方随机致盲因子、发起方致盲因子混淆密钥、发起方金额混淆密钥生成所述发起方混淆数据,且基于交易金额、接收方随机致盲因子、接收方致盲因子混淆密钥、接收方金额混淆密钥生成所述接收方混淆数据。最后所述交易发起方将所述交易公钥、发起方混淆数据和接收方混淆数据写入所述交易信息。
在本发明的进一步的优选实施例中,各个混淆密钥的具体生成过程如下:
所述交易发起方使用所述交易私钥与所述发起方地址做椭圆曲线乘法,并使用哈希函数对乘积做哈希运算,再将哈希运算结果作为发起方基础密钥。然后所述交易发起方使用哈希函数对所述发起方基础密钥做哈希运算并将哈希运算结果作为所述发起方致盲因子混淆密钥,然后使用哈希函数对所述发起方致盲因子混淆密钥做哈希运算并将哈希运算结果作为发起方金额混淆密钥。接着所述交易发起方使用所述交易私钥与所述接收方地址做椭圆曲线乘法,并使用哈希函数对乘积做哈希运算,再将哈希运算结果作为接收方基础密钥。最后所述交易发起方使用哈希函数对所述接收方基础密钥做哈希运算并将哈希运算结果作为所述接收方致盲因子混淆密钥,然后使用哈希函数对所述接收方致盲因子混淆密钥做哈希运算并将哈希运算结果作为接收方金额混淆密钥。
在本发明的进一步的优选实施例中,在混淆密钥生成之后,对于交易金额混淆具体如下。由于交易金额通常是包括发起金额和找零金额。因此,将分别对发起金额和找零金额进行混淆。实际上发起金额和找零金额的混淆步骤近似,只是使用的密钥不同。
对发起金额的混淆如下:
将所述交易金额中的发起金额进行二进制拆解,已获得发起金额拆解值。取椭圆曲线上的第一基点和第二基点,并取设定数量的发起方随机致盲因子,从而基于所述第一基点、所述第二基点和所述发起方随机致盲因子生成发起方承诺。对所述发起方随机致盲因子求和之后,采用所述接收方致盲因子混淆密钥进行混淆以生成接收方混淆面具。对所述发起金额拆解值求和之后,采用所述接收方金额混淆密钥进行混淆以生成接收方混淆金额。将所述接收方承诺、所述接收方混淆面具和所述接收方混淆金额写入所述交易信息。
对找零金额的混淆如下:
将所述交易金额中的找零金额进行二进制拆解,已获得找零金额拆解值;取椭圆曲线上的第三基点和第四基点,并取设定数量的接收方随机致盲因子,从而基于所述第三基点、所述第四基点和所述接收方随机致盲因子生成接收方承诺。对所述接收方随机致盲因子求和之后,采用所述发起方致盲因子混淆密钥进行混淆以生成发起方混淆面具。对所述找零金额拆解值求和之后,采用所述发起方金额混淆密钥进行混淆以生成发起方混淆金额。将所述发起方承诺、所述发起方混淆面具和所述发起方混淆金额写入所述交易信息。
在步骤S3中,所述交易发起方对所述交易信息进行签名并将签名交易提交到区块链系统,所述区块链系统验证所述签名交易并将验证通过的交易存储在所述区块链系统中。在此,本领域技术人员知悉,可以采用本领域中任何已知的签名和验签技术实现本步骤,在此不就再累述了。
在步骤S4中,交易用户扫描所述区块链系统中存储的交易以获取所述交易公钥,并基于所述交易用户的自身私钥和所述交易公钥获取所述混淆密钥以解密所述发起方混淆数据和所述接收方混淆数据从而获取交易金额,并判断交易金额是否正确。
在本发明的优选实施例中,所述交易用户扫描所述区块链系统中存储的交易以获取所述交易公钥、所述发起方混淆面具、所述发起方混淆金额、所述接收方混淆面具和所述接收方混淆金额。所述交易用户基于所述自身私钥和所述交易公钥推导所述发起方基础密钥或所述接收方基础密钥;然后基于所述发起方基础密钥或所述接收方基础密钥推导出所述发起方致盲因子混淆密钥和所述发起方金额混淆密钥或推导出所述接收方致盲因子混淆密钥和所述接收方金额混淆密钥。然后所述交易用户基于所述接收方致盲因子混淆密钥和所述接收方金额混淆密钥解密出所述发起金额或基于所述发起方致盲因子混淆密钥和所述发起方金额混淆密钥解密出所述找零金额。最后所述交易用户将所述发起金额或所述找零金额与自身金额比对以判断所述发起金额或所述找零金额是否正确。
实施本发明的区块链系统中隐藏交易金额的方法,交易发起方通过将公钥写在交易信息中,并将私钥用于生成混淆交易金额的会话密钥,而交易双方均可以使用自己的私钥推导出交易金额的加密私钥,从而解密获得具体金额,因此可以隐藏交易金额、保护用户隐私。
图2是本发明的区块链系统中隐藏交易金额的方法的第二优选实施例的交易金额隐藏和匹配示意图。下面结合图2对本发明进一步说明如下。
如图2所示,交易发起方生成一对会话密钥(r,R),其中r为交易私钥,R为交易公钥。如前所述,采用椭圆曲线密钥体系获取会话密钥(r,R)。即所述交易发起方选取椭圆曲线,并选取椭圆曲线上的一个基点作为通用基点,将椭圆曲线上的标量作为所述交易私钥;然后基于所述通用基点和所述交易私钥做椭圆曲线乘法生成所述交易公钥。因此R=r*G。其中,G表示椭圆曲线算法中的私钥公钥换算因子。因此可以从私钥r推导出公钥R,但是无法从公钥R推导出私钥r,因此是不可逆的。然后,将交易公钥R写入交易信息的头部。
然后,所述交易发起方基于所述交易私钥、发起方地址和接收方地址生成混淆密钥来混淆致随机盲因子和交易金额以生成发起方混淆数据和接收方混淆数据,并将所述交易公钥、发起方混淆数据和接收方混淆数据写入所述交易信息。
假定发起方地址为A1,交易私钥为r,发起方基础密钥为sspubA1,发起方致盲因子混淆密钥为ss1A1,发起方金额混淆密钥为ss2A1,具体生成过程如下
sspubA1=Hs(r*A1)
ss1A1=Hs(sspubA1)
ss2A1=Hs(ss1A1)。
同理接收方地址为A2,交易私钥为r,接收方基础密钥为sspubA2,接收方致盲因子混淆密钥为ss1A2,接收方金额混淆密钥为ss2A2,具体生成过程如下
sspubA2=Hs(r*A2)
ss1A2=Hs(sspubA2)
ss2A2=Hs(ss1A2)
在后续步骤中,发起方致盲因子混淆密钥为ss1A1和接收方致盲因子混淆密钥为ss1A2用于发起方致盲因子和接收方致盲因子的混合,而发起方金额混淆密钥为ss2A1和接收方金额混淆密钥为ss2A2用于交易金额的混合。
交易金额分为发起金额和找零金额。其中发起金额是需要发起给接收方的。下面以发起金额为例进行说明如下:
步骤1、假定发起金额为n位(通常为64位)正整数b,将金额b进行二进制拆解,拆解成{b0,b2,...,bn},使得:
b=b0*20+b1*21+…+bn*2n。
步骤2、取椭圆曲线上的基点G和H,取n个随机致盲因子{a1,a2,...,an},生成承诺C,并将C写入交易信息中
c=C0+c1+…+Ci…+Cn=∑naiG+∑nbi2iH
步骤3、对随机致盲因子{a1,a2,...,an}做相加以获得接收方面具mask',随后然后使用接收方致盲因子混淆密钥ss1A2混淆接收方面具amount',获得接收方混淆面具mask,同理对于发起金额拆解值{b0,b2,...,bn}也进行二进制求和,从而获得接收方金额,然后采用接收方金额混淆密钥为ss2A2混淆接收方金额,从而生成amount。
mask′=Σai
mask=mask′+ss1A2
amount=amount′+ss2A2
步骤4,将所述接收方承诺C、所述接收方混淆面具mask和所述接收方混淆金额amount写入所述交易信息。
对于找零金额,同样执行上述步骤1-4,其区别仅在于,使用发起方致盲因子混淆密钥为ss1A1和发起方金额混淆密钥为ss2A1。在此就不再累述了。
随后所述交易发起方对所述交易信息进行签名并将签名交易提交到区块链系统,所述区块链系统验证所述签名交易并将验证通过的交易存储在所述区块链系统中。在交易被记录到区块链上之后,交易用户,比如交易双方可以扫描所述区块链系统中存储的交易以获取所述交易公钥,并基于所述交易用户的自身私钥和所述交易公钥获取所述混淆密钥以解密所述发起方混淆数据和所述接收方混淆数据从而获取交易金额,并判断交易金额是否正确。
具体解密流程可以如下:
首先交易用户可以在交易信息中找到确实是的是属于自身交易的信息,例如在UTXO交易当中找到属于自己的交易(可以根据UTXO里面的地址是否属于自己来判断),然后根据交易信息当中所述交易公钥也就是R来推导出交易的交易公钥。以交易接收的推导过程为例,说明如下。
接收方地址为A2,接收方私钥为a2,因此接收方的接收方基础密钥为sspubA2,其满足:
A2=a2*G
sspubA2=Hs(r*a2*G)
sspubA2=Hs(a2*r*G)
sspubA2=Hs(a2*R)
这样,通过接收方私钥和交易公钥就可以睿道接收方基础密钥sspubA2,从而进一步推导出接收方致盲因子混淆密钥为ss1A2和接收方金额混淆密钥为ss2A2。然后通过接收方致盲因子混淆密钥为ss1A2和接收方金额混淆密钥为ss2A2,以及接收方混淆面具mask、接收方混淆金额amount,就可以反推出接收方面具mask'和接收方混淆金额amount':
mask′=mask-ss1A2
amount′=amount-ss2A2
在获得接收方面具mask'和接收方混淆金额amount'之后,根据其获取过程反推从而获得发起金额:
mask′=Σai
c=∑naiG+∑nbi2iH
b1=∑nbi2iH=c-mask*G=C-∑naiG
b2=amour*H=∑nbi2i*H
最后根据接收方自身的金额判断其与发起金额是否相同。
对于交易发起方对找零金额的解密判断过程与此相同,在此不就再累述了。
实施本发明的区块链系统中隐藏交易金额的方法,交易发起方通过将公钥写在交易信息中,并将私钥用于生成混淆交易金额的会话密钥,而交易双方均可以使用自己的私钥推导出交易金额的加密私钥,从而解密获得具体金额,因此可以隐藏交易金额、保护用户隐私。
本发明解决其技术问题采用的另一技术方案是,构造一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现所述的区块链系统中隐藏交易金额的方法。
本发明解决其技术问题采用的再一技术方案是,构造一种区块链系统,包括多个区块链节点,所述区块链节点上存储有计算机程序,所述程序被处理器执行时实现根据所述的区块链系统中隐藏交易金额的方法。
实施本发明的计算机可读存储介质和区块链系统,交易发起方通过将公钥写在交易信息中,并将私钥用于生成混淆交易金额的会话密钥,而交易双方均可以使用自己的私钥推导出交易金额的加密私钥,从而解密获得具体金额,因此可以隐藏交易金额、保护用户隐私。
因此,本发明可以通过硬件、软件或者软、硬件结合来实现。本发明可以在至少一个计算机系统中以集中方式实现,或者由分布在几个互连的计算机系统中的不同部分以分散方式实现。任何可以实现本发明方法的计算机系统或其它设备都是可适用的。常用软硬件的结合可以是安装有计算机程序的通用计算机系统,通过安装和执行程序控制计算机系统,使其按本发明方法运行。
本发明还可以通过计算机程序产品进行实施,程序包含能够实现本发明方法的全部特征,当其安装到计算机系统中时,可以实现本发明的方法。本文件中的计算机程序所指的是:可以采用任何程序语言、代码或符号编写的一组指令的任何表达式,该指令组使系统具有信息处理能力,以直接实现特定功能,或在进行下述一个或两个步骤之后实现特定功能:a)转换成其它语言、编码或符号;b)以不同的格式再现。
虽然本发明是通过具体实施例进行说明的,本领域技术人员应当明白,在不脱离本发明范围的情况下,还可以对本发明进行各种变换及等同替代。另外,针对特定情形或材料,可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具体实施例,而应当包括落入本发明权利要求范围内的全部实施方式。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种区块链系统中隐藏交易金额的方法,包括以下步骤:
S1、交易发起方生成会话密钥对,所述会话密钥对包括交易公钥和交易私钥;
S2、所述交易发起方基于所述交易私钥、发起方地址和接收方地址生成混淆密钥来混淆致随机盲因子和交易金额以生成发起方混淆数据和接收方混淆数据,并将所述交易公钥、发起方混淆数据和接收方混淆数据写入交易信息;
S3、所述交易发起方对所述交易信息进行签名并将签名交易提交到区块链系统,所述区块链系统验证所述签名交易并将验证通过的交易存储在所述区块链系统中;
S4、交易用户扫描所述区块链系统中存储的交易以获取所述交易公钥,并基于所述交易用户的自身私钥和所述交易公钥获取所述混淆密钥以解密所述发起方混淆数据和所述接收方混淆数据从而获取交易金额,并判断交易金额是否正确;
所述步骤S2进一步包括:
S21、所述交易发起方基于所述交易私钥和所述发起方地址生成发起方致盲因子混淆密钥和发起方金额混淆密钥,基于所述交易私钥和所述接收方地址生成接收方致盲因子混淆密钥和接收方金额混淆密钥;
S22、所述交易发起方基于交易金额、发起方随机致盲因子、发起方致盲因子混淆密钥、发起方金额混淆密钥生成所述发起方混淆数据,且基于交易金额、接收方随机致盲因子、接收方致盲因子混淆密钥、接收方金额混淆密钥生成所述接收方混淆数据;
S23、所述交易发起方将所述交易公钥、发起方混淆数据和接收方混淆数据写入所述交易信息。
2.根据权利要求1所述的区块链系统中隐藏交易金额的方法,其特征在于,所述步骤S1进一步包括:
S11、所述交易发起方选取椭圆曲线,并选取椭圆曲线上的一个基点作为通用基点,将椭圆曲线上的标量作为所述交易私钥;
S12、所述交易发起方基于所述通用基点和所述交易私钥做椭圆曲线乘法生成所述交易公钥。
3.根据权利要求2所述的区块链系统中隐藏交易金额的方法,其特征在于,所述步骤S21进一步包括:
S211、所述交易发起方使用所述交易私钥与所述发起方地址做椭圆曲线乘法,并使用哈希函数对乘积做哈希运算,再将哈希运算结果作为发起方基础密钥;
S212、所述交易发起方使用哈希函数对所述发起方基础密钥做哈希运算并将哈希运算结果作为所述发起方致盲因子混淆密钥,然后使用哈希函数对所述发起方致盲因子混淆密钥做哈希运算并将哈希运算结果作为发起方金额混淆密钥;
S213、所述交易发起方使用所述交易私钥与所述接收方地址做椭圆曲线乘法,并使用哈希函数对乘积做哈希运算,再将哈希运算结果作为接收方基础密钥;
S214、所述交易发起方使用哈希函数对所述接收方基础密钥做哈希运算并将哈希运算结果作为所述接收方致盲因子混淆密钥,然后使用哈希函数对所述接收方致盲因子混淆密钥做哈希运算并将哈希运算结果作为接收方金额混淆密钥。
4.根据权利要求3所述的区块链系统中隐藏交易金额的方法,其特征在于,所述步骤S22进一步包括:
S221、将所述交易金额中的发起金额进行二进制拆解,已获得发起金额拆解值;
S222、取椭圆曲线上的第一基点和第二基点,并取设定数量的发起方随机致盲因子,从而基于所述第一基点、所述第二基点和所述发起方随机致盲因子生成发起方承诺;
S223、对所述发起方随机致盲因子求和之后,采用所述接收方致盲因子混淆密钥进行混淆以生成接收方混淆面具;
S224、对所述发起金额拆解值求和之后,采用所述接收方金额混淆密钥进行混淆以生成接收方混淆金额;
S225、将接收方承诺、所述接收方混淆面具和所述接收方混淆金额写入所述交易信息。
5.根据权利要求4所述的区块链系统中隐藏交易金额的方法,其特征在于,所述步骤S22进一步包括:
S22a、将所述交易金额中的找零金额进行二进制拆解,已获得找零金额拆解值;
S22b、取椭圆曲线上的第三基点和第四基点,并取设定数量的接收方随机致盲因子,从而基于所述第三基点、所述第四基点和所述接收方随机致盲因子生成所述接收方承诺;
S22c、对所述接收方随机致盲因子求和之后,采用所述发起方致盲因子混淆密钥进行混淆以生成发起方混淆面具;
S22d、对所述找零金额拆解值求和之后,采用所述发起方金额混淆密钥进行混淆以生成发起方混淆金额;
S22e、将所述发起方承诺、所述发起方混淆面具和所述发起方混淆金额写入所述交易信息。
6.根据权利要求5所述的区块链系统中隐藏交易金额的方法,其特征在于,所述步骤S4进一步包括:
S41、所述交易用户扫描所述区块链系统中存储的交易以获取所述交易公钥、所述发起方混淆面具、所述发起方混淆金额、所述接收方混淆面具和所述接收方混淆金额;
S42、所述交易用户基于所述自身私钥和所述交易公钥推导所述发起方基础密钥或所述接收方基础密钥;
S43、所述交易用户基于所述发起方基础密钥或所述接收方基础密钥推导出所述发起方致盲因子混淆密钥和所述发起方金额混淆密钥或推导出所述接收方致盲因子混淆密钥和所述接收方金额混淆密钥;
S44、所述交易用户基于所述接收方致盲因子混淆密钥和所述接收方金额混淆密钥解密出所述发起金额或基于所述发起方致盲因子混淆密钥和所述发起方金额混淆密钥解密出所述找零金额;
S45、所述交易用户将所述发起金额或所述找零金额与自身金额比对以判断所述发起金额或所述找零金额是否正确。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现根据权利要求1-6中任意一项所述的区块链系统中隐藏交易金额的方法。
8.一种区块链系统,包括多个区块链节点,所述区块链节点上存储有计算机程序,其特征在于,所述程序被处理器执行时实现根据权利要求1-6中任意一项所述的区块链系统中隐藏交易金额的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010417928.5A CN111709738B (zh) | 2020-05-18 | 2020-05-18 | 区块链系统中隐藏交易金额的方法、计算机可读存储介质和区块链系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010417928.5A CN111709738B (zh) | 2020-05-18 | 2020-05-18 | 区块链系统中隐藏交易金额的方法、计算机可读存储介质和区块链系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111709738A CN111709738A (zh) | 2020-09-25 |
CN111709738B true CN111709738B (zh) | 2023-08-01 |
Family
ID=72537153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010417928.5A Active CN111709738B (zh) | 2020-05-18 | 2020-05-18 | 区块链系统中隐藏交易金额的方法、计算机可读存储介质和区块链系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111709738B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112100688A (zh) * | 2020-09-29 | 2020-12-18 | 深圳壹账通智能科技有限公司 | 数据验证方法、装置、设备以及存储介质 |
CN112288523B (zh) | 2020-10-29 | 2023-09-05 | 中国银联股份有限公司 | 一种基于区块链的数值排名方法及装置 |
CN112819467A (zh) * | 2021-02-23 | 2021-05-18 | 中国信息通信研究院 | 一种隐私交易方法、装置及系统 |
CN113469685A (zh) * | 2021-07-19 | 2021-10-01 | 东南大学 | 一种以太坊交易金额加密和交易混淆的隐私保护方法 |
CN113793147B (zh) * | 2021-08-02 | 2023-11-24 | 杭州复杂美科技有限公司 | 一种区块链隐藏交易金额的方法、设备及储存介质 |
CN113793145A (zh) * | 2021-08-02 | 2021-12-14 | 杭州复杂美科技有限公司 | 一种交易费代扣的隐私交易方法、设备及储存介质 |
CN113706150B (zh) * | 2021-10-27 | 2022-02-08 | 深圳前海微众银行股份有限公司 | 一种区块确认方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109165941B (zh) * | 2018-07-31 | 2020-12-15 | 泰链(厦门)科技有限公司 | 基于区块链系统的支付方法、介质和区块链系统 |
BR112019007727A2 (pt) * | 2018-11-27 | 2019-11-12 | Alibaba Group Holding Ltd | sistema e método para proteção de informações |
CN110545279A (zh) * | 2019-09-05 | 2019-12-06 | 国网区块链科技(北京)有限公司 | 兼具隐私和监管功能的区块链交易方法、装置及系统 |
CN111008836B (zh) * | 2019-11-15 | 2023-09-05 | 哈尔滨工业大学(深圳) | 一种隐私安全转账支付方法、装置、系统及存储介质 |
-
2020
- 2020-05-18 CN CN202010417928.5A patent/CN111709738B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111709738A (zh) | 2020-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111709738B (zh) | 区块链系统中隐藏交易金额的方法、计算机可读存储介质和区块链系统 | |
Ullah et al. | Elliptic Curve Cryptography; Applications, challenges, recent advances, and future trends: A comprehensive survey | |
US11349648B2 (en) | Pre-calculation device, method, computer-readable recording medium, vector multiplication device, and method | |
US8533487B2 (en) | Secure logical vector clocks | |
US11838426B2 (en) | Computer implemented method and system for obtaining digitally signed data | |
US20210042829A1 (en) | Computer implemented method and system for transferring control of a digital asset | |
CN109787758B (zh) | 基于私钥池和Elgamal的抗量子计算MQV密钥协商方法和系统 | |
CN109921905B (zh) | 基于私钥池的抗量子计算密钥协商方法和系统 | |
Prasetyo et al. | Lossless progressive secret sharing for grayscale and color images | |
CN109728905B (zh) | 基于非对称密钥池的抗量子计算mqv密钥协商方法和系统 | |
CN115102688A (zh) | 数据处理方法、多项式计算方法及电子设备 | |
CN115396115A (zh) | 区块链数据隐私保护方法、装置、设备及可读存储介质 | |
Haider et al. | An Innovative approach towards image encryption by using novel PRNs and S-boxes Modeling techniques | |
CN112929151B (zh) | 基于隐私保护的实体对齐方法及计算机存储介质 | |
US7440569B2 (en) | Tate pairing techniques for use with hyperelliptic curves | |
CN114221753B (zh) | 密钥数据处理方法和电子设备 | |
CN115473707A (zh) | 一种隐私交集求和的方法和装置 | |
Shawkat et al. | Optimization-based pseudo random key generation for fast encryption scheme | |
CN111709739B (zh) | 区块链系统中排除双花的方法、计算机可读存储介质和区块链系统 | |
CN111709740B (zh) | 区块链系统中隐藏交易地址的方法、计算机可读存储介质和区块链系统 | |
US11552794B2 (en) | Deterministic random blinding | |
Yasinsac | A formal semantics for evaluating cryptographic protocols | |
CN111709741B (zh) | 区块链系统中权限隔离的方法、计算机可读存储介质和区块链系统 | |
EP4262134A1 (en) | Secure multi-party computation methods and apparatuses | |
Abd Elminaam et al. | Secure data storage in the cloud by using DNA and chaos cryptography |
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 |