CN111277415B - 基于区块链智能合约的隐私保护方法及装置 - Google Patents
基于区块链智能合约的隐私保护方法及装置 Download PDFInfo
- Publication number
- CN111277415B CN111277415B CN202010064157.6A CN202010064157A CN111277415B CN 111277415 B CN111277415 B CN 111277415B CN 202010064157 A CN202010064157 A CN 202010064157A CN 111277415 B CN111277415 B CN 111277415B
- Authority
- CN
- China
- Prior art keywords
- hair brush
- output
- recovering
- collecting
- sender
- 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
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000008569 process Effects 0.000 claims abstract description 23
- 238000004590 computer program Methods 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000002776 aggregation Effects 0.000 claims description 2
- 238000004220 aggregation Methods 0.000 claims description 2
- 238000012546 transfer Methods 0.000 abstract description 12
- 230000003993 interaction Effects 0.000 abstract description 9
- 238000004422 calculation algorithm Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013068 supply chain management Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3252—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Storage Device Security (AREA)
Abstract
基于区块链智能合约的隐私保护方法及装置,包括:隐私模块根据发送者预先生成的基于椭圆曲线密码学的公私钥对以及接收者预先生成的基于椭圆曲线密码学的公私钥对转换资产交换内容;发送者使用输入凭证密钥对资产交换内容进行签名,并使用加密的资产交换内容触发智能合约;智能合约通过隐私模块校验资产交换内容的合法性,并更新发送者和接收者的账户信息;接收者通过隐私模块解密并确认收到的资产无误。采用本申请中的方案,可以完全隐藏身份信息和资产交换内容信息,且资产转移过程无需双方交互,证明和验证过程快速,可以在毫秒级内完成。
Description
技术领域
本申请涉及区块链技术,具体地,涉及一种基于区块链智能合约的隐私保护方法及装置。
背景技术
区块链是一种去中心化、去信任化的分布式记账技术,可以应用到数字金融、物联网、智能制造、供应链管理等行业,以提高效率、降低成本、提高数据安全性,但由于其具有公开透明的特性,所以也面临严重的隐私泄露问题。区块链中的隐私主要涉及身份和交易内容,这些信息一旦泄露可能对用户造成危害。
由于区块链交易是公开可查的,而且通常以明文的形式记录所有交易,使得分析者可以通过收集某个ID有关的所有交易来得出资金的转移轨迹,大部分的区块链没有提供匿名功能。
目前,可以采用Mimble-wimble来解决区块链隐私问题,Mimble-wimble提供了一种对比特币进行显著优化的方案,使用Pedersen承诺、范围证明以及交互式的通信也可以达到隐藏地址和转账金额,但双方需要同时在线,并进行交互。
发明内容
本申请实施例中提供了一种基于区块链智能合约的隐私保护方法、装置及计算机存储介质、电子设备,以解决上述技术问题。
根据本申请实施例的第一个方面,提供了一种基于区块链智能合约的隐私保护方法,包括如下步骤:
隐私模块根据发送者预先生成的基于椭圆曲线密码学的公私钥对E(r发,R发)以及接收者预先生成的基于椭圆曲线密码学的公私钥对E(r收,R收)转换资产交换内容;R发=r发*G,R收=r收*G,r发、r收均为随机数,G为椭圆曲线上一个基点;
发送者使用输入凭证密钥S对资产交换内容进行签名,并使用加密的资产交换内容触发智能合约;
智能合约通过隐私模块校验资产交换内容的合法性,并更新发送者和接收者的账户信息;
接收者通过隐私模块解密并确认收到的资产无误。
根据本申请实施例的第二个方面,提供了一种基于区块链智能合约的隐私保护装置,包括:
隐私模块,用于根据发送者预先生成的基于椭圆曲线密码学的公私钥对E(r发,R发)以及接收者预先生成的基于椭圆曲线密码学的公私钥对E(r收,R收)转换资产交换内容;R发=r发*G,R收=r收*G,r发、r收均为随机数,G为椭圆曲线上一个基点;
发送者模块,用于使用输入凭证密钥S对资产交换内容进行签名,并使用加密的资产交换内容触发智能合约;
智能合约模块,用于通过隐私模块校验资产交换内容的合法性,并更新发送者和接收者的账户信息;
接收者模块,用于通过隐私模块解密并确认收到的资产无误。
根据本申请实施例的第三个方面,提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述基于区块链智能合约的隐私保护方法的步骤。
根据本申请实施例的第四个方面,提供了一种电子设备,包括存储器、以及一个或多个处理器,所述存储器用于存储一个或多个程序;所述一个或多个程序被所述一个或多个处理器执行时,实现如上所述的基于区块链智能合约的隐私保护方法。
采用本申请实施例中提供的基于区块链智能合约的隐私保护方法、装置及计算机存储介质、电子设备,根据ECC算法的同态性质,使用简单的密码学原语实现,且可以完全隐藏身份信息和资产交换内容信息,资产转移过程无需双方交互,证明和验证过程快速,可以在毫秒级内完成。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了本申请实施例一中基于区块链智能合约的隐私保护方法实施的流程示意图;
图2示出了本申请实施例二中基于区块链智能合约的隐私保护装置的结构示意图;
图3示出了本申请实施例四中电子设备的结构示意图;
图4示出了本申请实施例五中智能合约上资产交换结构示意图;
图5示出了本申请实施例五中基于区块链智能合约的隐私保护方法实施的流程示意图。
具体实施方式
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在实现本申请的过程中,发明人发现:
还可以采用Zcash来解决隐私问题,Zcash是使用零知识证明机制的区块链系统,通过零知识证明技术可以隐藏交易地址和转账金额,但需要使用到一个体积庞大的公共参数,且证明时间需要花费1分钟左右,性能低下且使用不便。
综上,目前已有的区块链隐私保护方案主要分成三大类:基于混淆交易的方案、基于链架构的方案、基于密码学的方案:
1)基于混淆交易的方案,阻断发送者和接收者之间的联系,比如DASH,只能某种程度上实现资产不可追踪,并没有隐藏发送者、接收者和交易金额等关键信息。
2)基于链架构的隐私保护方案,有从区块链架构出发,对架构进行改造NuCypher、ChainLedger、状态通道等,在区块链中的不同节点维护不同的账本信息,虽然能够有效避免用户隐私的泄露,但是方案过于中心化。
3)基于密码学的隐私保护方案,使用密码学技术来保护交易参与方的隐私,其中以零知识证明算法对交易信息的保护程度最高。比较有突出性的方案有Mimblewimble和ZCash等方案,Mimblewimble虽然效率和隐私性都很高,但是每次交易都需要接收方在线,与其发生交互才能完成交易;ZCash虽然能够实现完全的隐私和非交互的进行,但是签名一笔交易,要求较高内存,且时间将近一分钟,效率极低。
除上述方法外,还有通过可信执行环境(TEE)解密并执行交易的设计,使用可信执行环境提供隐私保护可以避免密码学计算的资源要求,但当前的可信硬件如Intel SGX,具有高度中心化,效率低,开发难以及存在被攻击的风险的问题,对于商业应用来说尚不够成熟。
针对现有技术存在的技术问题,本申请实施例中提供了一种基于椭圆曲线的合约隐私保护方法,根据ECC算法(椭圆加密算法,Elliptic curve cryptography)的同态性质,使用简单的密码学原语实现。通过智能合约在账户模型下模拟UTXO模型,结合Pedersen承诺、bulletproof范围证明以及ECDH秘钥交换(椭圆曲线迪菲-赫尔曼秘钥交换,EllipticCurve Diffie–Hellman key Exchange)技术可以完全隐藏身份信息和内容信息,对象转移过程无需双方交互,证明和验证过程快速,可以在毫秒级内完成。
区块链构建于密码学之上,非对称加解密算法、ECDSA/Schnorr签名和验签算法、ECDH秘钥交换等都是基于椭圆曲线的密码学(ECC)算法,用于密码学目的的椭圆曲线只是一组被称之为群的点,这些点可以加、减或乘以整数(也称为标量)。给定一个整数k并使用标量乘法运算,可计算出k*G,也是曲线上的一个点。在ECC中,如果选择一个非常大的数字k作为私钥,则k*G被作为对应的公钥。即使人们知道公钥k*G的值,推导k几乎不可能,或者换句话说,椭圆曲线点的“乘法”计算是微不足道的,然而“除法”计算却极其困难,这就是求解椭圆曲线离散对数问题的困难性。椭圆曲线上的加法和标量乘法运算保持加法和乘法的交换率和结合律:
(k+j)*G=k*G+j*G
上述特性表现为一种同态性质,而隐私保护需要的正是这样一种具有同态性质的加密算法。
实施例一
图1示出了本申请实施例一中基于区块链智能合约的隐私保护方法实施的流程示意图。
如图所示,所述基于区块链智能合约的隐私保护方法包括:
步骤101、隐私模块根据发送者预先生成的基于椭圆曲线密码学的公私钥对E(r发,R发)以及接收者预先生成的基于椭圆曲线密码学的公私钥对E(r收,R收)转换资产交换内容;R发=r发*G,R收=r收*G,r发、r收均为随机数,G为椭圆曲线上一个基点;
步骤102、发送者使用输入凭证密钥S对资产交换内容进行签名,并使用加密的资产交换内容触发智能合约;
步骤103、智能合约通过隐私模块校验资产交换内容的合法性,并更新发送者和接收者的账户信息;
步骤104、接收者通过隐私模块解密并确认收到的资产无误。
采用本申请实施例中提供的基于区块链智能合约的隐私保护方法,根据ECC算法的同态性质,使用简单的密码学原语实现,且可以完全隐藏身份信息和资产交换内容信息,资产转移过程无需双方交互,证明和验证过程快速,可以在毫秒级内完成。
在一种实施方式中,在所述隐私模块根据发送者预先生成的基于椭圆曲线密码学的公私钥对E(r发,R发)以及接收者预先生成的基于椭圆曲线密码学的公私钥对E(r收,R收)转换资产交换内容之前,进一步包括:
发送者生成一个256bit的随机数r发,使用该随机数构造基于椭圆曲线的公私钥对E(r发,R发),并公开公钥地址;
接收者同样生成一个256bit的随机数r收,并以此构造基于曲线的公私钥对E(r收,R收),告知发送者自己的公钥。
在一种实施方式中,所述资产交换内容,包括:输入凭证、输出凭证、输出合法证明、输入输出相等证明;转换过程包括:
1)确定输入凭证C入的ID;
2)构造输出凭证C出并加密金额;
C出=x出*G+v出*H,encrypt_data=Enc(x出,v出);
其中,x出=Hash(r发*R收)为输出凭证C出的致盲因子;H为椭圆曲线上和G没有关联的基点;v出为输出数值,Enc()为对称加密函数;
3)为所有输出凭证构造合法证明;Proof=Rang(x出,v出);Rang()为v值大于0的范围证明;
4)构造输入输出相等证明S;S=Sign(x,data);x=x入-x出;v入为输入数值。
在一种实施方式中,构造输出凭证C出并加密金额的同时进一步包括:
构造输出凭证C找零并加密金额;
C找零=x找零*G+v找零*H;
其中,x找零=Hash(r发*R发)为输出凭证C找零的致盲因子,v找零为找零数值;在存在输出凭证C找零时x==x入-x出-x找零。
在一种实施方式中,所述发送者使用输入凭证密钥对资产交换内容进行签名,包括:
如果输入凭证为一个账户,则使用该账户的私钥签名以表明发送者有权限使用该输入凭证:S=Sign(r发,data);
如果输入凭证为多个账户,则使用每个账户的私钥分别进行签名后再聚合:S=S1+...+Si,Si=Sign(r发i,data);
其中,data表示待签名的内容。
在一种实施方式中,所述智能合约通过隐私模块校验资产交换内容的合法性,并更新发送者和接收者的账户信息,包括:
验证输入凭证的ID是否存在、发送者是否有对应凭证的使用权限、所有输出凭证的合法性、以及输入输出是否相等;
注销输入凭证,新增输出凭证。
在一种实施方式中,所述接收者通过隐私模块解密并确认收到的资产无误,包括:
查询自身账户R收对应的所有凭证C出;
通过ECDH密钥交换方法计算对称密钥x出=Hash(r收*R发);
使用所述对称密钥解密金额v出=Dec(x出,encrypt_data);encrypt_data为解密前的数据。
实施例二
基于同一发明构思,本申请实施例提供了一种基于区块链智能合约的隐私保护装置,该装置解决技术问题的原理与一种基于区块链智能合约的隐私保护方法相似,重复之处不再赘述。
图2示出了本申请实施例二中基于区块链智能合约的隐私保护装置的结构示意图。
如图所示,所述基于区块链智能合约的隐私保护装置包括:
隐私模块,用于根据发送者预先生成的基于椭圆曲线密码学的公私钥对E(r发,R发)以及接收者预先生成的基于椭圆曲线密码学的公私钥对E(r收,R收)转换资产交换内容;R发=r发*G,R收=r收*G,r发、r收均为随机数,G为椭圆曲线上一个基点;
发送者模块,用于使用输入凭证密钥S对资产交换内容进行签名,并使用加密的资产交换内容触发智能合约;
智能合约模块,用于通过隐私模块校验资产交换内容的合法性,并更新发送者和接收者的账户信息;
接收者模块,用于通过隐私模块解密并确认收到的资产无误。
本申请实施例中发送者模块和接收者模块可以分别指区块链上的不同账户,隐私模块可以为提供隐私保护的模块,智能合约为提供隐私对象的登记和转移的平台。
采用本申请实施例中提供的基于区块链智能合约的隐私保护装置,根据ECC算法的同态性质,使用简单的密码学原语实现,且可以完全隐藏身份信息和资产交换内容信息,资产转移过程无需双方交互,证明和验证过程快速,可以在毫秒级内完成。
在一种实施方式中,发送者模块进一步用于在所述隐私模块根据发送者预先生成的基于椭圆曲线密码学的公私钥对E(r发,R发)以及接收者预先生成的基于椭圆曲线密码学的公私钥对E(r收,R收)转换资产交换内容之前,生成一个256bit的随机数r发,使用该随机数构造基于椭圆曲线的公私钥对E(r发,R发),并公开公钥地址;
接收者进一步用于在所述隐私模块根据发送者预先生成的基于椭圆曲线密码学的公私钥对E(r发,R发)以及接收者预先生成的基于椭圆曲线密码学的公私钥对E(r收,R收)转换资产交换内容之前,生成一个256bit的随机数r收,并以此构造基于曲线的公私钥对E(r收,R收),告知发送者自己的公钥。
在一种实施方式中,所述隐私模块转换资产交换内容的过程为:
1)确定输入凭证C入的ID;
2)构造输出凭证C出并加密金额;
C出=x出*G+v出*H,encrypt_data=Enc(x出,v出);
其中,x出=Hash(r发*R收)为输出凭证C出的致盲因子;H为椭圆曲线上和G没有关联的基点;v出为输出数值,Enc()为对称加密函数;
3)为所有输出凭证构造合法证明;Proof=Rang(x出,v出);Rang()为v值大于0的范围证明;
4)构造输入输出相等证明S;S=Sign(x,data);x=x入-x出;v入为输入数值。
在一种实施方式中,构造输出凭证C出并加密金额的同时进一步包括构造输出凭证C找零并加密金额;C找零=x找零*G+v找零*H;其中,x找零=Hash(r发*R发)为输出凭证C找零的致盲因子,v找零为找零数值;在存在输出凭证C找零时x==x入-x出-x找零。
在一种实施方式中,发送者模块使用输入凭证密钥对资产交换内容进行签名,具体为:
如果输入凭证为一个账户,则使用该账户的私钥签名以表明发送者有权限使用该输入凭证:S=Sign(r发,data);
如果输入凭证为多个账户,则使用每个账户的私钥分别进行签名后再聚合:S=S1+...+Si,Si=Sign(r发i,data);
其中,data表示待签名的内容。
在一种实施方式中,所述智能合约模块具体用于验证输入凭证的ID是否存在、发送者是否有对应凭证的使用权限、所有输出凭证的合法性、以及输入输出是否相等;注销输入凭证,新增输出凭证。
在一种实施方式中,接收者模块具体用于通过隐私模块查询自身账户R收对应的所有凭证C出;通过ECDH密钥交换方法计算对称密钥x出=Hash(r收*R发);使用所述对称密钥解密金额v出=Dec(x出,encrypt_data);encrypt_data为解密前的数据。
实施例三
基于同一发明构思,本申请实施例还提供一种计算机存储介质,下面进行说明。
所述计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如实施例一所述基于区块链智能合约的隐私保护方法的步骤。
采用本申请实施例中提供的计算机存储介质,根据ECC算法的同态性质,使用简单的密码学原语实现,且可以完全隐藏身份信息和资产交换内容信息,资产转移过程无需双方交互,证明和验证过程快速,可以在毫秒级内完成。
实施例四
基于同一发明构思,本申请实施例还提供一种电子设备,下面进行说明。
图3示出了本申请实施例四中电子设备的结构示意图。
如图所示,所述电子设备包括存储器301、以及一个或多个处理器302,所述存储器用于存储一个或多个程序;所述一个或多个程序被所述一个或多个处理器执行时,实现如实施例一所述的基于区块链智能合约的隐私保护方法。
采用本申请实施例中提供的电子设备,根据ECC算法的同态性质,使用简单的密码学原语实现,且可以完全隐藏身份信息和资产交换内容信息,资产转移过程无需双方交互,证明和验证过程快速,可以在毫秒级内完成。
实施例五
为了便于本申请的实施,本申请实施例以一具体实例进行说明。
图4示出了本申请实施例五中智能合约上资产交换结构示意图。
如图所示,v1、v2、v3:输入输出数值;C1、C2、C3:输入输出凭证;Hash(r2*r1*G):为发送者和接收者可知的致盲因子;
P=R1表示接收者可以运算Hash(P*r2)为该output的致盲因子;P=0表示返回给发送者;
Enc为对称加密函数,接收者可以利用output中的Enc(Hash(r2*r1*G),v2)还原v2的值;
output中的rang表示v2值大于0的范围证明;找零中的rang表示v3值大于0的范围证明;
C4为输入输出凭证之差;r4为输入输出致盲因子之差;s表示使用r4对数据m签名的结果。
图5示出了本申请实施例五中基于区块链智能合约的隐私保护方法实施的流程示意图。
如图所示,包括以下步骤:
步骤S10发送者和接收者各自生成基于椭圆曲线密码学的公私钥对;
步骤S20发送者在线下通过隐私模块转换资产交换内容;
步骤S30发送者对资产交换内容签名并聚合;
步骤S40发送者使用加密的资产交换内容触发智能合约;
步骤S50智能合约通过隐私模块校验交换内容的合法性,并更新发送者和接收者账户信息;
步骤S60接收者通过隐私模块解密并确认收到的资产无误;
步骤S70接收者重复步骤S10–S60花出收到的资产。
具体的,步骤S10,发送者和接收者各自生成基于椭圆曲线密码学的公私钥对,包括:
步骤S101,发送者生成一个256bit的随机数r1,使用该随机数构造基于椭圆曲线的公私钥对E(r1,R1),并公开公钥地址;。
步骤S102,接收者同样生成一个256bit的随机数r2,并以此构造基于曲线的公私钥对E(r2,R2),告知发送者自己的公钥,该公钥可以作为接收者的永久公钥。
具体的,步骤S20发送者在线下通过隐私模块转换资产交换内容,包括:
步骤S201,通过隐私模块进行转换的主要字段有:
输入输出凭证,输出合法证明,输入输出相等证明。
输入凭证通常为已经在智能合约中存在的合法凭证,进行资产交换时只需要指定凭证ID即可。
步骤S202构造输出凭证以及加密内容,输出凭证通过如下方式构造:
C=r*G+v*H
其中C为输出的凭证内容,G,H为椭圆曲线上两个没有关联基点。r为致盲因子,通过ECDH交换秘钥的生成方式构造,即r=Hash(r1*R2),R2可以通过公钥变换公式获得自己资产:
C2=Hash(r2*r1*G)*G+v2*H=Hash(r2*R1)*G+v2*H
通过该方式构造可以让发送者以非交互式的方式独立的为接收者构造输出,并使用致盲因子为秘钥加密金额,构造输出凭证以及加密金额如下:
C2=x2*G+v2*H,
encrypt_value1=Enc(x2,v2);
C3=x3*G+v3*H,
encrypt_value2=Enc(x3,v3);
其中x2=Hash(r1*R2),x3=Hash(r1*R1),分别为C2、C3的致盲因子。
步骤S203为所有输出构造合法证明,用来证明其中凭证中的v值为正数,构造方法:
Proof1=Rang(x2,v2)
Proof2=Rang(x3,v3)
步骤S204构造输入输出相等证明,用来确保没有资产交换过程没有凭空构造新资产,该证明本质为输入输出致盲因子之差对资产交换内容m的签名S=Sign(x,m),使用输入凭证之和减去输出凭证之和的余项X验证该签名,result=Verify(S,X,m),即可校验输入输出相等。
输入凭证为:
C1=x1*G+v1*H
输出凭证为:
C2=x2*G+v2*H
C3=x3*G+v3*H
根据椭圆曲线的特性,输出之和为:
C2+C3=(x2+x3)*G+(v2+v3)*H
根据资产交换原则,输入输出必须相等,v1=v2+v3,所以输入输出之差X为:
X=C1–C2–C3=(x1–x2–x3)*G
计算输入输出致盲因子之差x=x1–x2–x3,如果输入凭证是由其他人转移过来的,发送者是无法直接获取致盲因子x1,由于致盲因子都是通过ECDH秘钥交换的方式生成的,假设输入凭证来源于Ri,发送方可以自己生成致盲因子x1=Hash(r1*Ri),使用致盲因子之差x对资产交换内容进行签名,获得输入输出相等证明如下:
S=Sign(x,data)
具体的,步骤S30发送者使用输入凭证秘钥对资产交换内容签名,包括:
步骤S301,如果输入凭证只属于一个账户,使用该账户的私钥签名以表明发送者有权限使用该输入凭证:
S1=Sign(r1,data)
步骤301,如果输入凭证包含多个账户,每个账户都需要签名,然后对签名进行聚合:
Si=Sign(ri,data)
SG=S1+...+Si
签名过程使用的签名方法为Schnorr签名,该签名方式为线性结构,支持多个签名直接聚合。
具体的,步骤S40发送者通过加密的资产交换内容触发智能合约,包括:
步骤S401构造完整的资产交换结构,如下表所示:
步骤S402触发智能合约,TX(contract,data),data即步骤S401构造的完整资产交换结构。
步骤S403查询合约执行结果,预期结果为:
ID为ID_1的输入凭证被注销,新增凭证C2,C3。
具体的,步骤S50智能合约通过隐私模块校验交换内容的合法性,并更新发送者和接收者账户信息,包括:
步骤S501验证输入凭证是否存在。交易的合法性校验包含:输入凭证是否存在,发送者是否有对应凭证的使用权限,验证所有输出凭证的合法性,验证输入输出是否相等。通过查询输入凭证ID_1是否存在于合约数据中判断输入凭证是否存在。
步骤S502验证发送者是否有对应凭证的使用权限。通过验证聚合签名result=Verify(SG,R1,data)判断发送者是否有使用权限。
步骤S503验证所有输出凭证的合法性。输出合法性校验方法:
result=RangeVerify(proof,C)
分别校验C2和C3的合法性。
步骤S504验证输入输出是否相等。验证签名:
result=Verify(S,X,data)
签名结果为true即输入输出相等。
步骤S505更新发送者和接收者账户信息。注销ID为ID_1的凭证,新增凭证C2,C3。
具体的,步骤S60接收者通过隐私模块解密并确认收到的资产无误,包括:
步骤S601接收者查询自己的账户R2对应的所有凭证,以凭证C2为例,通过ECDH秘钥交换方法计算对称秘钥:
x2=Hash(r2*R1)
步骤S603使用该对称秘钥解密金额:
v2=Dec(x2,encrypt_data1)
本申请实施例根据ECC算法的同态性质,使用简单的密码学原语实现。通过智能合约在账户模型下模拟UTXO模型,结合Pedersen承诺、bulletproof范围证明以及ECDH秘钥交换技术可以完全隐藏身份信息和内容信息,对象转移过程无需双方交互,证明和验证过程快速,可以在毫秒级内完成。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (8)
1.一种基于区块链智能合约的隐私保护方法,其特征在于,包括:
隐私模块根据发送者预先生成的基于椭圆曲线密码学的公私钥对E(r发,R发)以及接收者预先生成的基于椭圆曲线密码学的公私钥对E(r收,R收)转换资产交换内容;R发=r发*G,R收=r收*G,r为随机数,G为椭圆曲线上一个基点;
发送者使用输入凭证密钥S对资产交换内容进行签名,并使用加密的资产交换内容触发智能合约;
智能合约通过隐私模块校验资产交换内容的合法性,并更新发送者和接收者的账户信息;
接收者通过隐私模块解密并确认收到的资产无误;
所述资产交换内容,包括:输入凭证、输出凭证、输出合法证明、输入输出相等证明;转换过程包括:
1)确定输入凭证C入的ID;
2)构造输出凭证C出并加密金额;
C出=x出*G +v出*H,encrypt_data= Enc(x出, v出);
其中,x出=Hash(r发*R收)为输出凭证C出的致盲因子;H为椭圆曲线上和G没有关联的基点;v出为输出数值,Enc()为对称加密函数;
3)为所有输出凭证构造合法证明;Proof=Rang(x出,v出);Rang()为v值大于0的范围证明;
4)构造输入输出相等证明S;S=Sign(x,data);x=x入-x出;v入为输入数值;
构造输出凭证C出并加密金额的同时进一步包括构造输出凭证C找零并加密金额;C找零=x找零*G +v找零*H;其中,x找零=Hash(r发*R发)为输出凭证C找零的致盲因子,v找零为找零数值;在存在输出凭证C找零时x==x入-x出-x找零。
2.根据权利要求1所述的方法,其特征在于,在所述隐私模块根据发送者预先生成的基于椭圆曲线密码学的公私钥对E(r发,R发)以及接收者预先生成的基于椭圆曲线密码学的公私钥对E(r收,R收)转换资产交换内容之前,进一步包括:
发送者生成一个256bit的随机数r发,使用该随机数构造基于椭圆曲线的公私钥对E(r发,R发),并公开公钥地址;
接收者同样生成一个256bit的随机数r收,并以此构造基于曲线的公私钥对E(r收,R收),告知发送者自己的公钥。
3.根据权利要求1所述的方法,其特征在于,所述发送者使用输入凭证密钥对资产交换内容进行签名,包括:
如果输入凭证为一个账户,则使用该账户的私钥签名以表明发送者有权限使用该输入凭证:S = Sign(r发,data);
如果输入凭证为多个账户,则使用每个账户的私钥分别进行签名后再聚合:S = S1+...+Si,Si = Sign(r发i, data);
其中,data表示待签名的内容。
4.根据权利要求1所述的方法,其特征在于,所述智能合约通过隐私模块校验资产交换内容的合法性,并更新发送者和接收者的账户信息,包括:
验证输入凭证的ID是否存在、发送者是否有对应凭证的使用权限、所有输出凭证的合法性、以及输入输出是否相等;
注销输入凭证,新增输出凭证。
5.根据权利要求1所述的方法,其特征在于,所述接收者通过隐私模块解密并确认收到的资产无误,包括:
查询自身账户R收对应的所有凭证C出;
通过ECDH密钥交换方法计算对称密钥x出=Hash(r收*R发);
使用所述对称密钥解密金额v出 = Dec(x出, encrypt_data); encrypt_data为解密前的数据。
6.一种基于区块链智能合约的隐私保护装置,其特征在于,包括:
隐私模块,用于根据发送者预先生成的基于椭圆曲线密码学的公私钥对E(r发,R发)以及接收者预先生成的基于椭圆曲线密码学的公私钥对E(r收,R收)转换资产交换内容;R发=r发*G,R收=r收*G,r为随机数,G为椭圆曲线上一个基点;
发送者模块,用于使用输入凭证密钥S对资产交换内容进行签名,并使用加密的资产交换内容触发智能合约;
智能合约模块,用于通过隐私模块校验资产交换内容的合法性,并更新发送者和接收者的账户信息;
接收者模块,用于通过隐私模块解密并确认收到的资产无误;
所述资产交换内容,包括:输入凭证、输出凭证、输出合法证明、输入输出相等证明;转换过程包括:
1)确定输入凭证C入的ID;
2)构造输出凭证C出并加密金额;
C出=x出*G +v出*H,encrypt_data= Enc(x出, v出);
其中,x出=Hash(r发*R收)为输出凭证C出的致盲因子;H为椭圆曲线上和G没有关联的基点;v出为输出数值,Enc()为对称加密函数;
3)为所有输出凭证构造合法证明;Proof=Rang(x出,v出);Rang()为v值大于0的范围证明;
4)构造输入输出相等证明S;S=Sign(x,data);x=x入-x出;v入为输入数值;
构造输出凭证C出并加密金额的同时进一步包括构造输出凭证C找零并加密金额;C找零=x找零*G +v找零*H;其中,x找零=Hash(r发*R发)为输出凭证C找零的致盲因子,v找零为找零数值;在存在输出凭证C找零时x==x入-x出-x找零。
7.一种计算机存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一所述方法的步骤。
8.一种电子设备,其特征在于,包括存储器、以及一个或多个处理器,所述存储器用于存储一个或多个程序;所述一个或多个程序被所述一个或多个处理器执行时,实现如权利要求1至5任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010064157.6A CN111277415B (zh) | 2020-01-20 | 2020-01-20 | 基于区块链智能合约的隐私保护方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010064157.6A CN111277415B (zh) | 2020-01-20 | 2020-01-20 | 基于区块链智能合约的隐私保护方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111277415A CN111277415A (zh) | 2020-06-12 |
CN111277415B true CN111277415B (zh) | 2023-12-19 |
Family
ID=71001117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010064157.6A Active CN111277415B (zh) | 2020-01-20 | 2020-01-20 | 基于区块链智能合约的隐私保护方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111277415B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111861489A (zh) * | 2020-07-16 | 2020-10-30 | 中国工商银行股份有限公司 | 基于区块链的金融产品交易份额确定方法及装置 |
CN111738726B (zh) * | 2020-08-04 | 2020-11-20 | 卓尔智联(武汉)研究院有限公司 | 基于区块链的资源核验方法、装置和计算机设备 |
CN112765667B (zh) * | 2021-01-29 | 2022-04-26 | 北京市计算中心有限公司 | 基于区块链的隐私保护方法、装置及系统 |
US11756040B2 (en) * | 2021-08-09 | 2023-09-12 | Kevin Wayne Marcum | System and method for generating a contention scheme |
CN113743935A (zh) * | 2021-08-19 | 2021-12-03 | 北京航空航天大学 | 基于Mimblewimble的链下匿名支付通道方法及系统 |
CN114095214B (zh) * | 2021-10-29 | 2023-12-12 | 上海热线信息网络有限公司 | 一种基于区块链nft技术的加、解密方法及装置、设备及介质 |
CN114553515B (zh) * | 2022-02-17 | 2024-05-17 | 支付宝(杭州)信息技术有限公司 | 基于区块链的nft资产的检验方法、业务处理方法及硬件 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106685989A (zh) * | 2017-02-07 | 2017-05-17 | 杭州秘猿科技有限公司 | 一种基于许可链支持监管的隐私通信方法 |
CN108418689A (zh) * | 2017-11-30 | 2018-08-17 | 矩阵元技术(深圳)有限公司 | 一种适合区块链隐私保护的零知识证明方法和介质 |
CN108876618A (zh) * | 2018-06-15 | 2018-11-23 | 浙江华信区块链科技服务有限公司 | 一种交换区块链系统及相应的通用区块链互操作方法和网络 |
CN110033368A (zh) * | 2018-11-30 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 区块链中实现隐私保护的方法 |
CN110222120A (zh) * | 2019-05-31 | 2019-09-10 | 杭州时戳信息科技有限公司 | 一种基于utxo模型区块链智能合约的资产交换方法 |
CN110663053A (zh) * | 2017-05-22 | 2020-01-07 | 区块链控股有限公司 | 将未确定来源的未确定数据安全地提供到区块链交易的锁定脚本中 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107453865B (zh) * | 2017-07-18 | 2020-09-11 | 众安信息技术服务有限公司 | 一种保护数据发送源隐私的多方数据共享方法及系统 |
CN108428122B (zh) * | 2018-02-08 | 2021-02-12 | 布比(北京)网络技术有限公司 | 一种分布式账本上的贸易融资方法及系统 |
US11379824B2 (en) * | 2018-06-20 | 2022-07-05 | International Business Machines Corporation | Privacy preserving transactions with probabilistic transaction fees |
MX2019006095A (es) * | 2018-12-29 | 2019-08-14 | Alibaba Group Holding Ltd | Sistema y metodo para proteccion de informacion. |
CN110427772B (zh) * | 2019-06-27 | 2021-04-13 | 布比(北京)网络技术有限公司 | 一种基于区块链的隐私保护电子投票方法及系统 |
CN110502905B (zh) * | 2019-07-10 | 2021-06-04 | 布比(北京)网络技术有限公司 | 一种隐私保护的分布式账本交易方法和系统 |
CN110502931B (zh) * | 2019-08-15 | 2021-05-04 | 广东工业大学 | 一种基于区块链的互联网仲裁和隐私保护方法 |
CN110619521A (zh) * | 2019-08-27 | 2019-12-27 | 复旦大学 | 基于区块链的匿名调子调查系统 |
-
2020
- 2020-01-20 CN CN202010064157.6A patent/CN111277415B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106685989A (zh) * | 2017-02-07 | 2017-05-17 | 杭州秘猿科技有限公司 | 一种基于许可链支持监管的隐私通信方法 |
CN110663053A (zh) * | 2017-05-22 | 2020-01-07 | 区块链控股有限公司 | 将未确定来源的未确定数据安全地提供到区块链交易的锁定脚本中 |
CN108418689A (zh) * | 2017-11-30 | 2018-08-17 | 矩阵元技术(深圳)有限公司 | 一种适合区块链隐私保护的零知识证明方法和介质 |
CN108876618A (zh) * | 2018-06-15 | 2018-11-23 | 浙江华信区块链科技服务有限公司 | 一种交换区块链系统及相应的通用区块链互操作方法和网络 |
CN110033368A (zh) * | 2018-11-30 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 区块链中实现隐私保护的方法 |
CN110222120A (zh) * | 2019-05-31 | 2019-09-10 | 杭州时戳信息科技有限公司 | 一种基于utxo模型区块链智能合约的资产交换方法 |
Non-Patent Citations (3)
Title |
---|
Blockchain-Enabled Smart Contracts: Architecture, Applications, and Future Trends;Shuai Wang ect.;《IEEE Transactions on Systems, Man, and Cybernetics: Systems 》;全文 * |
区块链可扩展性研究:问题与方法;潘晨;刘志强;刘振;龙宇;;计算机研究与发展(第10期);全文 * |
区块链技术综述;张亮;刘百祥;张如意;江斌鑫;刘一江;;计算机工程(05);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111277415A (zh) | 2020-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111277415B (zh) | 基于区块链智能合约的隐私保护方法及装置 | |
CN108418783B (zh) | 一种保护区块链智能合约隐私的方法、介质 | |
US11811942B2 (en) | Blockchain-implemented methods and systems for authorisation based on bilinear map accumulators | |
US8499149B2 (en) | Revocation for direct anonymous attestation | |
CN110247757B (zh) | 基于国密算法的区块链处理方法、装置及系统 | |
Paquin et al. | U-prove cryptographic specification v1. 1 | |
CN110414981B (zh) | 一种支持ZKPs的同态加密方法和区块链交易金额加密方法 | |
Chen et al. | Light-weight and privacy-preserving authentication protocol for mobile payments in the context of IoT | |
CA3010116A1 (en) | Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys | |
WO2019116187A1 (en) | System and method for securely sharing cryptographic material | |
CN111563733B (zh) | 一种用于数字钱包的环签名隐私保护系统及方法 | |
WO2019174402A1 (zh) | 一种群组数字签名的群组成员发布方法和设备 | |
CN104184588A (zh) | 基于身份的不可拆分数字签名方法 | |
CN111429138A (zh) | 区块链节点数据安全交互方法及第一交互节点 | |
KR20030062401A (ko) | 겹선형쌍을 이용한 개인식별정보 기반의 은닉서명 장치 및방법 | |
CN102301643B (zh) | 数据处理系统中的密码证书的管理方法和系统 | |
Wang et al. | Dynamic threshold ECDSA signature and application to asset custody in blockchain | |
CN110278073B (zh) | 一种群组数字签名、验证方法及其设备和装置 | |
Gupta et al. | A secure identity-based three-party authenticated key agreement protocol using bilinear pairings | |
Chait et al. | An Enhanced RSA-Based Aggregate Signature Scheme to Reduce Blockchain Size | |
WO2023036528A1 (en) | Generating shared cryptographic keys | |
CN102301644B (zh) | 数据处理系统中的数据项的验证 | |
CN115001673A (zh) | 基于统一多域标识的密钥处理方法、装置及系统 | |
Sayid et al. | Certificateless public key cryptography: A research survey | |
Barker et al. | SP 800-56A. recommendation for pair-wise key establishment schemes using discrete logarithm cryptography (revised) |
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 |