CN112801659A - 基于智能合约的隐私交易处理方法、装置及存储介质 - Google Patents
基于智能合约的隐私交易处理方法、装置及存储介质 Download PDFInfo
- Publication number
- CN112801659A CN112801659A CN202110095435.9A CN202110095435A CN112801659A CN 112801659 A CN112801659 A CN 112801659A CN 202110095435 A CN202110095435 A CN 202110095435A CN 112801659 A CN112801659 A CN 112801659A
- Authority
- CN
- China
- Prior art keywords
- bill
- information
- transaction
- contract
- intelligent contract
- 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.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 23
- 238000003672 processing method Methods 0.000 title abstract description 13
- 238000012795 verification Methods 0.000 claims abstract description 43
- 230000006378 damage Effects 0.000 claims description 174
- 238000000034 method Methods 0.000 claims description 110
- 238000012545 processing Methods 0.000 claims description 49
- 230000008569 process Effects 0.000 description 36
- 238000010586 diagram Methods 0.000 description 20
- 230000015654 memory Effects 0.000 description 20
- 230000006870 function Effects 0.000 description 15
- 238000012546 transfer Methods 0.000 description 14
- 230000006872 improvement Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000002427 irreversible effect Effects 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 230000000750 progressive effect Effects 0.000 description 3
- 238000009987 spinning Methods 0.000 description 3
- 239000007795 chemical reaction product Substances 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 239000000047 product Substances 0.000 description 1
Images
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/3821—Electronic credentials
- G06Q20/38215—Use of certificates or encrypted proofs of transaction rights
-
- 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/3825—Use of electronic signatures
-
- 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
-
- 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/383—Anonymous user system
-
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书提供一种基于智能合约的隐私交易处理方法、装置及存储介质,利用零知识证明算法对待创建票据的金额和票据身份进行隐藏,智能合约验证通过后,在智能合约上创建票据合约信息,完成票据的创建,确保了票据的隐私性,同时,可以确保该票据的金额和身份是真实合法的,实现了智能合约的隐私代币交易。同时,其性能只与零知识证明中的承诺的个数有关,对于存储不受票据总量的影响,效率更高。并且,对于证明算法没有固定的限制,实现了隐私交易的可扩展性,适用性广。
Description
技术领域
本说明书属于计算机技术领域,尤其涉及一种基于智能合约的隐私交易处理方法、装置及存储介质。
背景技术
智能合约可以理解为一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。随着计算机互联网技术的发展,区块链的应用场景越来越多,智能合约的不可逆转特性可以应用在区块链中。
区块链作为公开的账本,交易双方以及交易金额都能被所有用户看到,根据交易信息能够分析出用户的交易行为,可能会影响用户的隐私安全,如何提供一种能够隐藏交易细节的隐私交易的技术方案是本领域亟需解决的技术问题。
发明内容
本说明书实施例的目的在于提供一种基于智能合约的隐私交易处理方法、装置及存储介质,实现了智能合约的隐私交易,确保交易的隐私性和安全性。
一方面,本说明书实施例提供了一种基于智能合约的隐私交易处理方法,所述方法包括:
利用临时密钥与合约账户中的支付密钥公钥生成待创建票据的票据支付密钥;
根据所述票据支付密钥以及所述合约账户对应的区块链账户的公钥利用零知识证明算法对所述待创建票据的票据金额进行隐藏,生成票据创建证明信息;
根据所述票据创建证明信息和票据明文信息生成票据创建交易信息;
调用智能合约的票据创建接口将所述票据创建交易信息发布到所述智能合约,以使得所述智能合约对所述票据创建证明信息进行验证,验证通过后在所述智能合约中生成所述待创建票据的票据合约信息。
进一步地,所述根据所述支付密钥利用零知识证明算法对所述待创建票据的票据金额进行隐藏,生成票据创建证明信息,包括:
根据所述票据支付密钥利用零知识证明算法对所述待创建票据的票据金额进行承诺,生成票据创建承诺信息;
根据所述票据创建承诺信息和所述区块链账户的公钥利用零知识证明算法生成票据创建证明信息。
进一步地,所述根据所述票据创建承诺信息和区块链账户的公钥利用零知识证明算法生成票据创建证明信息包括:
根据所述票据创建承诺信息、所述区块链账户的公钥所述临时密钥中的公钥以及所述票据支付密钥中的公钥利用零知识证明算法生成所述票据创建证明信息。
进一步地,在智能合约中生成票据合约信息后,所述方法还包括:
利用零知识证明算法对智能合约中的待交易票据的票据合约信息中的票据金额进行承诺,生成第一票据交易承诺信息;
利用与交易用户协议生成的票据协议支付密钥中的公钥对待交易票据金额进行承诺,生成第二票据交易承诺信息;
基于所述区块链账户的公钥利用零知识证明算法生成票据交易证明信息,所述票据交易证明信息中包括:所述第一票据交易承诺信息与所述第二票据交易承诺信息相等,证明授权给所述区块链账户的公钥;
根据所述票据交易证明信息、所述票据交易明文信息生成票据交易信息;
调用所述智能合约的票据交易接口将所述票据交易信息发布到所述智能合约,以使得所述智能合约对所述票据交易证明信息进行验证,验证通过后在所述智能合约中删除所述第一票据交易承诺信息对应的票据合约信息,并存储所述第二票据交易承诺信息对应的票据合约信息。
进一步地,所述利用零知识证明算法对智能合约中的待交易票据的票据合约信息中的票据金额进行承诺,生成第一票据交易承诺信息,包括:
从所述智能合约中获取待交易票据的票据合约信息,并利用所述合约账户中的支付密钥私钥对获取到的票据合约信息中的承诺金额的加密值进行解密;
利用零知识证明算法对解密后的票据金额进行承诺,生成所述第一票据交易承诺信息。
进一步地,所述利用与交易用户协议生成的票据协议支付密钥中的公钥对待交易票据金额进行承诺,生成第二票据交易承诺信息,包括:
利用双重密钥隐私地址协议与所述交易用户生成所述票据协议支付密钥;
使用所述票据协议支付密钥中的公钥对待交易票据金额进行承诺,生成所述第二票据交易承诺信息。
进一步地,所述基于所述区块链账户的公钥利用零知识证明算法生成票据交易证明信息,包括:
利用所述待交易票据的票据支付密钥中的私钥对所述第一票据交易承诺信息进行签名,生成第一票据交易签名;
根据所述区块链账户的公钥、所述第一票据交易承诺信息、所述第一票据交易签名、所述第二票据交易承诺信息、所述待交易票据的临时密钥中的公钥和票据支付密钥中的公钥、与所述交易用户协议生成的票据临时密钥中的公钥以及所述票据协议支付密钥中的公钥利用零知识证明算法生成票据交易证明信息。
进一步地,所述根据所述票据交易证明信息、所述票据交易明文信息生成票据交易信息,包括:
对所述票据交易证明信息和票据交易明文信息进行签名,生成第二票据交易签名;
根据所述票据交易证明信息、所述票据交易明文信息以及所述第二票据交易签名生成票据交易信息。
进一步地,在智能合约中生成票据合约信息后,所述方法还包括:
基于所述区块链账户的公钥利用零知识证明算法对智能合约中待销毁的票据合约信息中的票据金额进行隐藏,生成票据销毁证明信息;
根据所述票据销毁证明信息和票据销毁明文信息生成票据销毁交易信息;
调用所述智能合约的票据销毁接口将所述票据销毁交易信息发布到智能合约,以使得所述智能合约对所述票据销毁证明信息进行验证,验证通过后在所述智能合约中删除所述票据销毁承诺信息对应的票据合约信息。
进一步地,基于所述区块链账户的公钥利用零知识证明算法对智能合约中待销毁的票据合约信息中的票据金额进行隐藏,生成票据销毁证明信息,包括:
利用零知识证明算法对智能合约中的待销毁票据的票据合约信息中的票据金额进行承诺,生成票据销毁承诺信息;
基于所述区块链账户的公钥和所述票据销毁承诺信息利用零知识证明算法生成票据销毁证明信息。
进一步地,所述利用零知识证明算法对智能合约中的待销毁票据的票据合约信息中的票据金额进行承诺,生成票据销毁承诺信息,包括:
从所述智能合约中获取所述待销毁票据的票据合约信息,并利用所述合约账户中的支付密钥私钥对所述待销毁票据的票据合约信息进行解密;
利用零知识证明算法对解密后的票据合约信息中的票据金额进行承诺,生成票据销毁承诺信息。
进一步地,所述基于所述区块链账户的公钥和所述票据销毁承诺信息利用零知识证明算法生成票据销毁证明信息,包括:
利用所述待销毁票据的支付密钥私钥对所述票据销毁承诺信息进行签名,生成票据销毁承诺签名;
基于所述区块链账户的公钥、所述票据销毁承诺签名、所述票据销毁承诺信息、所述待销毁票据的临时密钥中的公钥以及所述待销毁票据的票据支付密钥中的公钥利用零知识证明算法生成所述票据销毁证明信息。
另一方面,本说明书提供了一种基于智能合约的隐私交易处理方法,包括:
接收客户端通过调用智能合约的票据创建接口发布的票据创建交易信息或通过调用智能合约的票据交易接口发布的票据交易信息或通过调用智能合约的票据销毁接口发布的票据销毁交易信息;其中,所述票据创建交易信息、所述票据交易信息、所述票据销毁交易信息基于零知识证明算法生成;
对所述票据创建交易信息、所述票据交易信息、所述票据销毁交易信息中的证明信息进行验证,验证通过后根据所述客户端调用的接口生成票据合约信息或完成票据交易或完成票据销毁。
又一方面,本说明书提供了一种基于智能合约的隐私交易处理装置,包括:
票据密钥生成模块,用于利用临时密钥与合约账户中的支付密钥公钥生成待创建票据的票据支付密钥;
票据创建证明模块,用于根据所述票据支付密钥以及所述合约账户对应的区块链账户的公钥利用零知识证明算法对所述待创建票据的票据金额进行隐藏,生成票据创建证明信息;
票据创建模块,用于根据所述票据创建证明信息和票据明文信息生成票据创建交易信息;
票据发布模块,用于调用智能合约的票据创建接口将所述票据创建交易信息发布到所述智能合约,以使得所述智能合约对所述票据创建证明信息进行验证,验证通过后在所述智能合约中生成所述待创建票据的票据合约信息。
进一步地,所述装置还包括票据交易模块,包括:
第一票据交易承诺单元,用于利用零知识证明算法对智能合约中的待交易票据的票据合约信息中的票据金额进行承诺,生成第一票据交易承诺信息;
第二票据交易承诺单元,用于利用与交易用户协议生成的票据协议支付密钥中的公钥对所述待交易票据的票据金额进行承诺,生成第二票据交易承诺信息;
票据交易证明单元,用于基于所述区块链账户的公钥利用零知识证明算法生成票据交易证明信息,所述票据交易证明信息中包括:所述第一票据交易承诺信息与所述第二票据交易承诺信息相等,证明授权给所述区块链账户的公钥;
票据交易创建单元,用于根据所述票据交易证明信息、所述票据交易明文信息生成票据交易信息;
票据交易发布单元,用于调用所述智能合约的票据交易接口将所述票据交易信息发布到所述智能合约,以使得所述智能合约对所述票据交易证明信息进行验证,验证通过后在所述智能合约中删除所述第一票据交易承诺信息对应的票据合约信息,并存储所述第二票据交易承诺信息对应的票据合约信息。
进一步地,所述装置还包括票据销毁模块包括:
票据销毁证明单元,用于基于所述区块链账户的公钥利用零知识证明算法对智能合约中待销毁的票据合约信息中的票据金额进行隐藏,生成票据销毁证明信息;
票据销毁创建单元,用于根据所述票据销毁证明信息和票据销毁明文信息生成票据销毁交易信息;
票据销毁发布单元,用于调用所述智能合约的票据销毁接口将所述票据销毁交易信息发布到智能合约,以使得所述智能合约对所述票据销毁证明信息进行验证,验证通过后在所述智能合约中删除所述票据销毁承诺信息对应的票据合约信息。
又一方面,本说明书提供了一种基于智能合约的隐私交易处理装置,包括:
交易发布接收模块,用于接收客户端通过调用智能合约的票据创建接口发布的票据创建交易信息或通过调用智能合约的票据交易接口发布的票据交易信息或通过调用智能合约的票据销毁接口发布的票据销毁交易信息;其中,所述票据创建交易信息、所述票据交易信息、所述票据销毁交易信息基于零知识证明算法生成;
交易处理模块,用于对所述票据创建交易信息、所述票据交易信息、所述票据销毁交易信息中的证明信息进行验证,验证通过后根据所述客户端调用的接口生成票据合约信息或完成票据交易或完成票据销毁。
又一方面,本说明书实施例提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述基于智能合约的隐私交易处理方法。
本说明书提供的基于智能合约的隐私交易处理方法、装置及存储介质,利用零知识证明算法对待创建票据的金额和票据身份进行隐藏,智能合约验证通过后,在智能合约上创建票据合约信息,完成票据的创建,确保了票据的隐私性,同时,可以确保该票据的金额和身份是真实合法的,实现了智能合约的隐私代币交易。同时,其性能只与零知识证明中的承诺的个数有关,对于存储不受票据总量的影响,效率更高。并且,对于证明算法没有固定的限制,实现了隐私交易的可扩展性,适用性广。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书实施例提供的基于智能合约的隐私交易处理方法实施例的流程示意图;
图2是本说明书一些实施例中智能合约在进行隐私交易处理的流程示意图;
图3是本说明书提供的基于智能合约的隐私交易处理装置一个实施例的模块结构示意图;
图4是本说明书提供的基于智能合约的隐私交易处理装置又一个实施例的模块结构示意图;
图5是本说明书提供的基于智能合约的隐私交易处理装置又一个实施例的模块结构示意图;
图6是本说明书提供的基于智能合约的隐私交易处理装置又一个实施例的模块结构示意图;
图7是本说明书一个实施例中基于智能合约的隐私交易处理服务器的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
智能合约可以理解为一种特殊协议,旨在提供、验证及执行合约,智能合约是区块链被称之为“去中心化的”重要原因,它允许我们在不需要第三方的情况下,执行可追溯、不可逆转和安全的交易。智能合约包含了有关交易的所有信息,只有在满足要求后才会执行结果操作,智能合约和传统纸质合约的区别在于智能合约是由计算机生成的。
隐私交易可以理解为使用隐私代币进行交易,在交易过程中隐藏交易的金额、交易双方身份的一种交易方式。主链的Zcash,Monero提供一种代币的隐私方案,但是Zcash,Monero不支持智能合约,只有隐私转账的功能并不能满足业务的需求。Quorum及Nightfall在智能合约平台提供隐私能力,但性能较低,花费的Gas较高,这无法让用户真正用起来,适用性不高。
图1是本说明书实施例提供的基于智能合约的隐私交易处理方法实施例的流程示意图。虽然本说明书提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者部分合并后更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本说明书实施例或附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置、服务器或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境、甚至包括分布式处理、服务器集群的实施环境)。
具体的一个实施例如图1所示,本说明书提供的基于智能合约的隐私交易处理方法的一个实施例中,所述方法可以应用在区块链系统中,具体可以应用在计算机、平板电脑、智能手机、服务器等终端,所述方法可以包括如下步骤:
步骤102、利用临时密钥与合约账户中的支付密钥公钥生成待创建票据的票据支付密钥。
在具体的实施过程中,用户在区块链系统中会拥有一个区块链账户,在使用智能合约进行交易时,还可以创建一个合约账户也可以称为隐私代币账户。本说明书实施例中的合约账户包括两个密钥对,一个是支付密钥对即spending key-pair,一个是查看密钥对即Viewing key-pair,而区块链账户一般只有一个密钥对。本说明书实施例中基于智能合约的隐私交易可以包括票据的创建、转移(也可以称为转账或交易)以及销毁中的至少一个过程,其中,票据可以理解为一种代币,每一个票据可以表征一定的金额,可以有票据的拥有者,拥有者可以使用该票据进行交易。在进行票据的创建时,创建票据的用户可以先生成一个临时密钥(esk,epk),并与自己的合约账户的支付密钥公钥一起生成待创建票据的票据支付密钥,可以记为nk,每个票据都可以有一个独立的票据支付密钥,该票据支付密钥定义了该票据的拥有者,谁知道该票据支付密钥的私钥部分,谁就具有花费该票据的权利。
步骤104、根据所述票据支付密钥以及所述合约账户对应的区块链账户的公钥利用零知识证明算法对所述待创建票据的票据金额进行隐藏,生成票据创建证明信息。
在具体的实施过程中,零知识证明算法(Zero-Knowledge Proof或Zero-Knowledge Protocol)可以理解为一种基于概率的验证方法,它包括“类似事实的陈述”和“关于个人知识的陈述”,证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。本说明书实施例中可以利用零知识证明算法对待创建票据的票据金额进行隐藏,并使得验证者相信该待创建票据的金额是真实的。此外,利用零知识证明算法生成的票据创建证明信息中可以指定授权人授权即指定该票据授权给创建票据的用户的区块链账户的公钥,该证明可以使得其他用户相信票据的金额是真实的。并且,本说明书实施例对零知识证明算法的具体证明算法不作具体限定,本说明书实施例中可以适配各种证明算法如:Bulletproofs(一种非交互式零知识证明协议)、Groth16(zkSNARK的典型算法)、PLONK(一种基于逻辑电路的证明算法),可以根据实际需要选择合适的证明算法,实现了的隐私交易的可扩展性。
本说明书一些实施例中,所述根据所述支付密钥利用零知识证明算法对所述待创建票据的票据金额进行隐藏,生成票据创建证明信息,包括:
根据所述票据支付密钥利用零知识证明算法对所述待创建票据的票据金额进行承诺,生成票据创建承诺信息;
根据所述票据创建承诺信息和所述区块链账户的公钥利用零知识证明算法生成票据创建证明信息。
在具体的实施过程中,在票据的创建过程中,创建票据的用户可以利用零知识证明算法对其创建的票据的票据金额进而进行承诺,生成票据创建承诺信息,可以记为cm=Commitment(value,nkpk),其中,value可以表示票据金额,nkpk可以表示待创建票据的票据支付密钥中的公钥。对待创建票据的票据金额进行承诺后,可以基于生成的票据创建承诺信息以及创建票据的用户的区块链账户的公钥利用零知识证明算法生成票据创建证明信息,该证明信息中可以指定授权人授权即指定该票据授权给创建票据的用户的区块链账户的公钥,该证明可以使得其他用户相信票据的金额是真实的。
此外,本说明书一些实施例中,所述根据所述票据创建承诺信息和区块链账户的公钥利用零知识证明算法生成票据创建证明信息包括:
根据所述票据创建承诺信息、区块链账户的公钥所述临时密钥中的公钥以及所述票据支付密钥中的公钥利用零知识证明算法生成所述票据创建证明信息。
在利用零知识证明算法生成票据证明信息时,可以基于票据创建承诺信息、区块链账户的公钥以及创建票据的用户生成的临时密钥中的公钥和票据支付密钥中的公钥利用零知识证明算法生成票据创建证明信息,可以记为:proof1=(Apk,cm,epk,nkpk),其中,Apk可以表示创建票据的用户的区块链账户的公钥,cm可以表示上述实施例中的票据创建承诺信息,epk可以表示上述实施例中创建票据的用户生成的临时密钥中的公钥,nkpk可以表示上述实施例中生成的票据支付密钥中的公钥。验证用户可以通过验证epk、nkpk等的准确性来相信该证明信息,进而相信待创建票据是真实、合法的。
关于零知识证明算法生成票据创建证明信息的方法可以根据实际需要而定,本说明书实施例不作具体限定,proof由零知识算法构造的UTXO(Unspent TransactionOutputs,未花费的交易输出)证明,证明作用可以使UTXO系统中输入、输出的票据身份与票据金额进行隐藏,确保交易的隐私性和安全性。
步骤106、根据所述票据创建证明信息和票据明文信息生成票据创建交易信息。
在具体的实施过程中,在签名完成后,可以基于票据创建证明信息、票据明文信息生成票据创建交易信息,本说明书一些实施例中,可以对所述票据创建证明信息和票据明文信息进行签名,生成票据创建签名。在生成票据创建证明信息后,可以对票据创建证明信息与票据明文信息一起进行签名,生成票据创建签名,可以记为:其中,票据明文信息extradata1可以根据实际需求定义,本说明书实施例不作具体限定,可由任意的编解码协议构造,如Protobuf、RLP、JSON等,满足实际业务的具体需求,如交易中产生的备注信息可存储其中。票据创建签名一般可以由授权人的区块链账户的私钥对proof1和票据明文信息进行签名,可以防止创建的票据信息被窜改。票据创建交易可以记为:tx1=(proof1,extradata1,signature1)。
步骤108、调用智能合约的票据创建接口将所述票据创建交易信息发布到所述智能合约,以使得所述智能合约对所述票据创建证明信息进行验证,验证通过后在所述智能合约中生成所述待创建票据的票据合约信息。
在具体的实施过程中,生成票据创建交易信息后,可以调用智能合约的票据创建接口,将生成的票据创建交易信息发布到智能合约,智能合约会对发布的票据创建交易信息中的票据创建证明信息进行验证,验证通过后可以在智能合约中生成待创建票据的票据合约信息。本说明书实施例中的票据合约信息可以包括票据的拥有者、票据金额的加密值以及票据的标识符,如可以表示为:OutputNote,主要由CipherOwner(票据拥有者),CipherValue(票据金额的加密值),NoteId(票据的标识符,每个票据的NoteId值都不同,NoteId生成算法没有限制)。如:CipherOwner可以表示为(nkpk,epk),其中nkpk可以表示上述实施例中生成的票据支付密钥中的公钥,epk可以表示上述实施例中创建票据的用户生成的临时密钥中的公钥,NoteId可以为Hash(cm,epk,nkpk)值,其中,cm可以表示上述实施例中的票据创建承诺信息。票据合约信息的存储方式可以采用Key-Value方式存储,Key为(CipherOwner,CipherValue,NoteId)的hash值,Value为CipherOwner,CipherValue,NoteId。每个Key-Value都是独立存储,票据的增删都能做到常数时间。
智能合约可以通过验证epk、nkpk等的准确性来确保该证明信息是否可信,在智能合约上生成待创建票据的票据合约信息后,表征该待创建票据的创建完成,可以使用该票据进行交易如:转账、支付等等。
本说明书实施例提供的基于智能合约的隐私交易处理方法,利用零知识证明算法对待创建票据的金额和票据身份进行隐藏,智能合约验证通过后,在智能合约上创建票据合约信息,完成票据的创建,确保了票据的隐私性,同时,可以确保该票据的金额和身份是真实合法的,实现了智能合约的隐私代币交易。同时,其性能只与零知识证明中的承诺的个数有关,对于存储不受票据总量的影响,效率更高。并且,对于证明算法没有固定的限制,实现了隐私交易的可扩展性,适用性广。
在上述实施例的基础上,本说明书一些实施例中,在智能合约中生成票据合约信息后,该票据的交易过程可以表示如下:
利用零知识证明算法对智能合约中的待交易票据的票据合约信息中的票据金额进行承诺,生成第一票据交易承诺信息;
利用与交易用户协议生成的票据协议支付密钥中的公钥对所述待交易票据的票据金额进行承诺,生成第二票据交易承诺信息;
基于所述区块链账户的公钥利用零知识证明算法生成票据交易证明信息,所述票据交易证明信息中包括:所述第一票据交易承诺信息与所述第二票据交易承诺信息相等,证明授权给所述区块链账户的公钥;
根据所述票据交易证明信息、所述票据交易明文信息生成票据交易信息;
调用所述智能合约的票据交易接口将所述票据交易信息发布到所述智能合约,以使得所述智能合约对所述票据交易证明信息进行验证,验证通过后在所述智能合约中删除所述第一票据交易承诺信息对应的票据合约信息,并存储所述第二票据交易承诺信息对应的票据合约信息。
在具体的实施过程中,在智能合约上创建出票据后,该票据就可以通过智能合约进行相应的交易,在票据的交易过程中,可以先利用零知识证明算法对智能合约中的待交易票据的票据合约信息中的票据金额进行承诺,生成第一票据交易承诺信息,以实现对待交易票据的金额进行隐藏,确保交易的隐私性。之后,票据拥有者还可以与交易用户进行协议生成票据协议支付密钥,并使用其中的公钥利用零知识证明算法对待交易票据金额进行承诺,生成第二票据交易承诺信息。票据拥有者再利用自己的区块链账户的公钥,使用零知识证明算法生成票据交易证明信息,该票据交易证明信息可以证明第一票据交易承诺信息与第二票据交易承诺信息相等,证明授权给自己的区块链账户的公钥,此外,还可以证明隐藏的票据金额在一个合理的正数区间,第二票据交易承诺信息是争取的承诺代数结构,在保证交易的隐私性的同时,确保交易的合理合法。
生成票据交易证明信息后,可以基于该票据交易证明信息以及票据交易明文信息生成票据交易信息,其中票据交易明文信息的内容可以根据实际票据交易进行定义。再将生成的票据交易信息通过智能合约的票据交易接口发布到智能合约上,以使得智能合约对发布的票据交易信息中的票据交易证明信息进行验证,验证通过后,可以在智能合约上删除第一票据交易承诺信息对应的票据合约信息,并存储第二票据交易承诺信息对应的票据合约信息。其中,智能合约可以通过验证票据交易证明信息中的公钥是否准确来判断该证明信息是否可信,进而验证该待交易票据的真实合法性。
参见上述实施例的内容,第一票据交易承诺信息是对智能合约上已经存在的票据的票据合约信息中的票据进行隐藏得出承诺信息,因此,该第一票据交易承诺信息对应的智能合约上原始的票据即交易中支付用户持有的票据。而第二票据交易承诺信息对应的是票据交易的用户双方通过协议交易票据金额进行隐藏得出的承诺信息,该承诺信息在智能合约上没有对应的票据,第二票据交易承诺信息对应的票据可以理解为交易双方通过协议创建的新的票据,该票据可以为收款方持有。因此,在智能合约上删除第一票据交易承诺信息对应的票据合约信息,并存储第二票据交易承诺信息对应的票据合约信息后,可以实现将票据交易的支付方的票据从智能合约删除,并在智能合约上保存了收款方的票据,二者票据的金额是相同的,即实现了票据的转账或交易。
本说明书实施例,通过零知识证明算法对交易的票据金额和身份进行隐藏,使得外界无法得知交易的内容,实现了交易的隐私性和安全性。并且,通过零知识证明算法,可以确保交易的准确性、合理性以及合法性。
本说明书一些实施例中,所述利用零知识证明算法对智能合约中的待交易票据的票据合约信息中的票据金额进行承诺,生成第一票据交易承诺信息,包括:
从所述智能合约中获取待交易票据的票据合约信息,并利用所述合约账户中的支付密钥私钥对获取到的票据合约信息中的承诺金额的加密值进行解密;
利用零知识证明算法对解密后的票据金额进行承诺,生成所述第一票据交易承诺信息。
在具体的实施过程中,参见上述票据创建的过程,本说明书实施例是基于智能合约的票据交易,即票据是保存在智能合约中的。在需要使用票据进行交易时,可以利用票据的标识先从智能合约中获取待交易票据的票据合约信息。参见上述实施例的描述可以知道,智能合约在生成票据合约信息时,对票据的承诺金额进行了加密,因此,在获取到待交易票据的票据合约信息后,可以利用票据持有者的合约账户的支付密钥私钥对票据合约信息中的承诺金额的加密值进行解密。在解密完成后,再对解密获得的票据金额进行承诺,获得第一票据交易承诺信息。
本说明书实施例在票据创建过程中,智能合约对票据创建者承诺的票据承诺金额进行了加密,可以进行一步确保票据金额的隐私性和安全性。在需要使用票据进行交易时,进一步对加密的承诺金额进行解密,再对解密后的金额进行承诺后进行后续的票据交易,使得票据交易的支付方可以保证交易的准确性。
本说明书一些实施例中,所述利用与交易用户协议生成的票据协议支付密钥中的公钥对待交易票据金额进行承诺,生成第二票据交易承诺信息,包括:
利用双重密钥隐私地址协议与所述交易用户生成所述票据协议支付密钥;
使用所述票据协议支付密钥中的公钥对待交易票据金额进行承诺,生成所述第二票据交易承诺信息。
在具体的实施过程中,在生成第二票据交易承诺信息时,交易双方可以使用双重密钥隐私地址协议即DKSAP协议算法生成票据协议支付密钥,在使用生成的票据协议支付密钥中的公钥对待交易票据金额进行承诺,生成第二票据交易承诺信息。其中,利用DKSAP协议算法生成票据协议支付密钥的原理可以参考如下:
交易双方的付款人为payer、收款人为payee,DKSAP算法中交易双方的账户均拥有两个密钥对spending key-pair即支付密钥和Viewing key-pair即查看密钥。Spendingkey-pair(ssk,spk)用于授权一个交易,用户可以公开spk。Viewing key-pair(vsk,vpk)用于审计或查看一个或多个票据,用户可以公开vpk。当payer需要创建一个新的票据(OutputNote)时,首先生成一个临时密钥ephemeral key-pair(esk,epk),用payee的viewing key-pair中的vpk一起生成一个shared secret共享密钥,随后,用shared secret和payee的spk即支付密钥中的公钥一起生成一个该新票据的spending key-pair即票据协议支付密钥。每个票据都有一个独立的spending key-pair,该spending key-pair定义了该票据的ownership,谁知道该spending key-pair的私钥部分,谁就具有花费该票据的权利。
通过双重密钥隐私地址协议交易双方可以先生成一个共享密钥,再与交易的收款方的合约账户的支付密钥的公钥一起生成票据协议支付密钥,再利用票据协议支付密钥中的公钥对待交易票据金额进行承诺,生成第二票据交易承诺信息。可以实现交易双方账户地址的隐私,使得其他用户对同一收款人的不同转账进行关联,确保交易的隐私性。
本说明书一些实施例中,所述基于所述区块链账户的公钥利用零知识证明算法生成票据交易证明信息,包括:
利用所述待交易票据的票据支付密钥中的私钥对所述第一票据交易承诺信息进行签名,生成第一票据交易签名;
根据所述区块链账户的公钥、所述第一票据交易承诺信息、所述第一票据交易签名、所述第二票据交易承诺信息、所述待交易票据的临时密钥中的公钥和票据支付密钥中的公钥、与所述交易用户协议生成的票据临时密钥中的公钥以及所述票据协议支付密钥中的公钥利用零知识证明算法生成票据交易证明信息。
在具体的实施过程中,在票据的转账交易时,生成票据交易证明信息时,可以先使用智能合约中票据合约信息中的票据支付密钥中的私钥对第一票据交易承诺信息进行签名,生成第一票据交易签名,再基于票据合约中待交易票据的持有者的区块链账户的公钥、第一票据交易承诺信息、第一票据交易签名、第二票据交易承诺信息、待交易票据的临时密钥中的公钥和票据支付密钥中的公钥、与交易用户协议生成的票据临时密钥中的公钥以及票据协议支付密钥中的公钥利用零知识证明算法生成票据交易证明信息。关于证明信息中的证明算法参见上述实施例的记载,本说明书实施例中可以适用不同的证明算法,可以基于实际需要选择合适的证明算法,本说明书实施例不作具体限定。票据交易证明信息可以表示为:其中,Apk可以表示待交易票据的拥有者即交易的支出方的区块链账户的公钥,cm1可以表示上述实施例中的第一票据交易承诺信息,Sign1可以表示上述实施例中的第一票据交易签名,cm2可以表示上述实施例中的第二票据交易承诺信息,可以表示待交易票据的临时密钥中的公钥,可以表示与交易用户协议生成的票据临时密钥中的公钥即交易双方在协议生成票据协议支付密钥的过程中生成的临时秘钥,可以表示待交易票据的票据支付密钥中的公钥,可以表示票据协议支付密钥中的公钥,N1可以表示第一票据交易承诺信息对应的票据,N2可以表示第二票据交易承诺信息对应的票据。证明作用有:cm1与cm2相等;隐藏的金额为一个合理的正数区间;cm2是正确的承诺代数结构;证明授权给Apk。
此外,本说明书一些实施例中,所述根据所述票据交易证明信息、所述票据交易明文信息生成票据交易信息,包括:
对所述票据交易证明信息和票据交易明文信息进行签名,生成第二票据交易签名;
根据所述票据交易证明信息、所述票据交易明文信息以及所述第二票据交易签名生成票据交易信息。
在具体的实施过程中,当生成票据交易证明信息后,可以使用票据交易支付方的区块链账户的私钥对票据交易证明信息和票据交易明文信息进行签名,生成第二票据交易签名,以防止票据交易信息被篡改。再根据票据交易证明信息、票据交易明文信息以及第二票据交易签名生成票据交易信息,生成的票据交易信息可以表示为:tx2=(proof2,extradata2,signature2),其中,proof2可以表示票据交易证明信息,extradata2可以表示票据交易明文信息,可以根据票据交易的需要定义票据交易明文信息的内容,本说明书实施例不作具体限定,signature2可以表示上述第二票据交易签名。
本说明书一些实施例中,在智能合约中生成票据合约信息后,即票据创建成功,票据不仅可以用来进行转账等交易,还可以根据用户的需要进行销毁,票据的销毁过程可以参考如下:
基于所述区块链账户的公钥利用零知识证明算法对智能合约中待销毁的票据合约信息中的票据金额进行隐藏,生成票据销毁证明信息;
根据所述票据销毁证明信息和票据销毁明文信息生成票据销毁交易信息;
调用所述智能合约的票据销毁接口将所述票据销毁交易信息发布到智能合约,以使得所述智能合约对所述票据销毁证明信息进行验证,验证通过后在所述智能合约中删除所述票据销毁承诺信息对应的票据合约信息。
在具体的实施过程中,在票据销毁过程中,可以参考上述实施例的记载,利用零知识证明算法对智能合约中的待销毁票据合约信息中的票据金额进行隐藏,生成票据销毁证明信息,其中证明信息的生成方式可以参考上述实施例的记载,此处不再赘述。其中,票据销毁一般可以由票据拥有者进行,待销毁票据可以是票据拥有者通过上述实施例中的票据创建过程在智能合约中创建的,也可以是通过票据交易等方式获得的,本说明书实施例不作具体限定。
本说明书一些实施例中,所述利用零知识证明算法对智能合约中的待销毁票据的票据合约信息中的票据金额进行承诺,生成票据销毁承诺信息,包括:
从所述智能合约中获取所述待销毁票据的票据合约信息,并利用所述合约账户中的支付密钥私钥对所述待销毁票据的票据合约信息进行解密;
利用零知识证明算法对解密后的票据合约信息中的票据金额进行承诺,生成票据销毁承诺信息。
在具体的实施过程中,参见上述实施例的记载,智能合约中的票据合约信息中的承诺金额被智能合约加密,在进行票据销毁时,票据拥有者可以从智能合约中获取待销毁票据的票据合约信息,并利用票据拥有者的合约账户中的支付密钥私钥对获取到的待销毁票据的票据合约信息中的票据金额的加密值进行解密,利用零知识证明算法对解密后的票据合约信息中的票据金额进行承诺,生成票据销毁承诺信息。
本说明书一些实施例中,基于所述区块链账户的公钥利用零知识证明算法对智能合约中待销毁的票据合约信息中的票据金额进行隐藏,生成票据销毁证明信息,包括:
利用零知识证明算法对智能合约中的待销毁票据的票据合约信息中的票据金额进行承诺,生成票据销毁承诺信息;
基于所述区块链账户的公钥和所述票据销毁承诺信息利用零知识证明算法生成票据销毁证明信息。
在具体的实施过程中,参见上述实施例的记载,可以通过零知识证明算法对智能合约中的待销毁票据的票据合约信息中的票据金额进行承诺,获得票据销毁承诺信息,再利用待销毁票据的拥有者的区块链账户的公钥和零知识证明算法,对票据销毁承诺信息进行证明生成票据销毁证明信息。
本说明书一些实施例中,所述基于所述区块链账户的公钥和所述票据销毁承诺信息利用零知识证明算法生成票据销毁证明信息,包括:
利用所述待销毁票据的支付密钥私钥对所述票据销毁承诺信息进行签名,生成票据销毁承诺签名;
基于所述区块链账户的公钥、所述票据销毁承诺签名、所述票据销毁承诺信息、所述待销毁票据的临时密钥中的公钥以及所述待销毁票据的票据支付密钥中的公钥利用零知识证明算法生成所述票据销毁证明信息。
在具体的实施过程中,在利用零知识证明算法生成票据销毁证明信息时,可以先对上述实施例中生成的票据销毁承诺信息使用待销毁票据的支付密钥私钥进行签名,获得票据销毁承诺签名,以避免票据信息被篡改。在利用零知识证明算法基于待销毁票据拥有者对应的区块链账户的公钥、票据销毁承诺签名、票据销毁承诺信息、待销毁票据的临时密钥中的公钥以及待销毁票据的票据支付密钥中的公钥生成票据销毁证明信息,票据销毁证明信息可以表示为:其中,Bpk可以表示待销毁票据的拥有者的区块链账户的公钥,Sign3可以表示上述实施例中的票据销毁承诺签名,cm3可以表示上述实施例中的票据销毁承诺信息,可以表示待销毁票据的临时秘钥中的公钥,若待销毁票据是通过上述实施例中票据创建方式直接在智能合约中创建的,那么可以为票据创建者在创建票据过程中生成的临时秘钥中的公钥,若待销毁票据是通过上述实施例中票据交易方式收款方通过票据交易的方式获得的,那么可以为票据交易双方在票据交易过程中通过协议生成票据协议支付密钥的过程中生成的临时密钥中的公钥,可以表示待销毁票据的票据支付秘钥中的公钥,N3可以表示待销毁票据。该证明可以证明cm3是正确的承诺代数结构;证明授权给Bpk。
在生成票据销毁证明信息后,可以使用待销毁票据的票据支付密钥中的私钥对票据销毁证明信息以及票据销毁明文信息进行签名,获得票据销毁签名,再基于票据销毁证明信息、票据销毁明文信息以及票据销毁签名生成票据销毁交易信息。票据销毁交易信息可以表示为:tx3=(proof3,extradata3,signature3),其中,proof3可以表示上述实施例中的票据销毁证明信息,extradata3可以表示上述票据销毁明文信息,可以根据票据销毁的实际需要进行定义如:票据销毁的时间、原因等等,signature3可以表示上述票据销毁签名。生成票据销毁交易后,可以通过智能合约的票据销毁接口将票据销毁交易发布到智能合约上,智能合约对票据销毁交易中的票据销毁证明信息进行验证,验证通过后在智能合约中删除该待销毁票据即票据销毁承诺信息对应的票据合约信息,完成票据的销毁。其中,智能合约对票据销毁证明信息进行验证的方式可以通过验证是否准确来确定该证明信息是否可信,当然,根据实际需要也可以通过其他的验证方式如:哈希运算的哈希值是否一致等,本说明书实施例不作具体限定。
本说明书实施例提供的基于智能合约的隐私交易处理方法,可以实现代币如票据在创建、转移、销毁过程中的金额和身份的隐私性,性能只与proof中的commitment的个数有关,对于存储不受隐私代币中票据总量的影响,效率更高,可以实现智能合约代币发行,开发分布式金融平台交易。
图2是本说明书一些实施例中智能合约在进行隐私交易处理的流程示意图,如图2所示,智能合约对应的服务器的隐私交易处理的流程可以参考如下:
步骤202、接收客户端通过调用智能合约的票据创建接口发布的票据创建交易信息或通过调用智能合约的票据交易接口发布的票据交易信息或通过调用智能合约的票据销毁接口发布的票据销毁交易信息;其中,所述票据创建交易信息、所述票据交易信息、所述票据销毁交易信息基于零知识证明算法生成。
步骤204、对所述票据创建交易信息、所述票据交易信息、所述票据销毁交易信息中的证明信息进行验证,验证通过后根据所述客户端调用的接口生成票据合约信息或完成票据交易或完成票据销毁。
在具体的实施过程中,智能合约可以提供票据创建接口、票据交易接口、票据销毁接口,当用户需要创建票据时,可以调用票据创建接口,将创建的票据创建交易信息发布到智能合约上,当用户需要使用智能合约中的票据进行票据交易时,可以通过票据交易接口将生成的票据交易信息发布到智能合约,当用户需要销毁票据时,则可以通过票据销毁接口将生成的票据销毁交易信息发布到智能合约。参见上述实施例的记载,票据创建交易信息、票据交易信息、票据销毁交易信息可以通过零知识证明算法生成,其具体内容以及生成方式可以参考上述实施例的记载,本说明书实施例不作具体限定。智能合约可以对接收到的票据创建交易信息、票据交易信息、票据销毁交易信息中的证明信息进行验证,验证通过后,可以根据调用的接口完成票据的生成或票据转账或票据的销毁,具体可以参考上述实施例的记载,本说明书实施例不作具体限定。
下面以Alice铸币,并将隐私代币转给Bob,最后Bob进行代币销毁这一场景示例具体说明本说明书实施例中隐私交易的处理过程:
一、Alice铸币(即Alice进行票据的创建)
1.Alice拥有主链账户即区块链账户A(Ask,Apk),Bob拥有主链账户区块链账户B(Bsk,Bpk)。首先Alice与Bob分别创建隐私代币账户即合约账户:A(sAsk,sApk,vAsk,vApk),B(sBsk,sBpk,vBsk,vBpk),其中,(sAsk,sApk)和(sBsk,sBpk)表示合约账户中的支付密钥,(vAsk,vApk)和(vBsk,vBpk)表示合约账户中的查看密钥。
2.Alice进行铸币操作,Alice创建临时密钥(esk,epk),并与自己的sApk生成票据支付密钥记为:nk。对铸币金额进行承诺cm=Commitment(value,nkpk),与主链账户地址一起生成证明proof1=(Apk,cm,epk,nkpk)。Alice对proof1与明文数据生成签名组成交易tx1=(proof1,extradata1,signature1)。
3.Alice将交易发送到隐私代币合约即智能合约,智能合约对proof1进行验证,验证成功生成OuputNote。OutputNote包括:CipherOwner、CipherValue、NoteId,其中:CipherOwner为(nkpk,epk),表示票据的拥有者,CipherValue为cm承诺金额的加密值。NoteId为Hash(cm,epk,nkpk)值。存储到合约的OutputNote数据Key为(CipherOwner,CipherValue,NoteId)的hash值,Value为(CipherOwner,CipherValue,NoteId),记为N1,完成票据的创建。
二、Alice转账给Bob
1.Alice根据铸币的hash值,从合约中获取OutputNote票据N1,Alice利用自己的合约账户的支付密钥私钥sAsk,解密CipherValue,然后生成InputNote commitment,并对cm1进行签名其中为N1的notespending key即票据支付密钥的私钥。
Alice创建零知识证明:证明作用有几个,cm1与cm2相等;隐藏的金额为一个合理的正数区间;cm2是正确的承诺代数结构;证明授权给Apk。Alice对proof2与明文数据生成签名组成交易tx2=(proof2,extradata2,signature2)。
2.Alice将交易发送到隐私代币合约,智能合约对proof进行验证,验证成功将cm1对应的OutputNote即N1进行删除,对cm2对应的OutputNote进行存储,标记为N2,完成Alice使用票据N1向Bob转账的票据交易。
三、Bob对代币进行销毁
1.Bob对N2进行销毁,Bob首先从代币合约中获取N2票据,Bob利用自己的sBsk,解密CipherValue,然后生成InputNote commitment,并对cm3进行签名 为N2的note spending key的私钥。Bob生成零知识证明证明cm3是正确的承诺代数结构;证明授权给Bpk。Bob对proof3与明文数据生成签名组成交易tx3=(proof3,extradata3,signature3)
2.Bob将交易发送到隐私代币合约,合约对proof3进行验证,验证成功将cm3对应的OutputNote即N2进行删除,完成票据N2的销毁。
上述示例中给出的是票据从创建到转账到销毁的过程,实际应用时,票据也可以创建之后没有进行交易即需要销毁,即Alice铸币在智能合约上创建出一个票据N1后,可以不进行转账等交易,即票据N1拥有者仍为Alice,Alice也可以对N1进行上述销毁操作。
本说明书实施例在智能合约的基础上实现了的隐私代币的创建、转移、销毁,本说明书实施例中的隐私代币的交易模型可以采用UTXO,算法上利用零知识证明进行身份与金额的隐藏,能适配各种证明算法,做到可扩展性。存储上,对票据采用merkle树的形式,随着数据的膨胀会升高,不能做到常量值,具有通用性,不与任何区块链进行绑定。
本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参考即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参考方法实施例的部分说明即可。
基于上述所述的基于智能合约的隐私交易处理方法,本说明书一个或多个实施例还提供一种用于基于智能合约的隐私交易处理的装置。所述系统可以包括使用了本说明书实施例所述方法的装置(包括分布式系统)、软件(应用)、模块、组件、服务器、客户端等并结合必要的实施硬件的装置。基于同一创新构思,本说明书实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参考前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
具体地,图3是本说明书提供的基于智能合约的隐私交易处理装置一个实施例的模块结构示意图,如图3所示,本说明书中提供的基于智能合约的隐私交易处理装置可以包括:
票据密钥生成模块31,用于利用临时密钥与合约账户中的支付密钥公钥生成待创建票据的票据支付密钥;
票据创建证明模块32,用于根据所述票据支付密钥以及所述合约账户对应的区块链账户的公钥利用零知识证明算法对所述待创建票据的票据金额进行隐藏,生成票据创建证明信息;
票据创建模块33,用于根据所述票据创建证明信息和票据明文信息生成票据创建交易信息;
票据发布模块34,用于调用智能合约的票据创建接口将所述票据创建交易信息发布到所述智能合约,以使得所述智能合约对所述票据创建证明信息进行验证,验证通过后在所述智能合约中生成所述待创建票据的票据合约信息。
图4是本说明书提供的基于智能合约的隐私交易处理装置又一个实施例的模块结构示意图,如图4所示,本说明书中提供的基于智能合约的隐私交易处理装置还可以包括:票据交易模块41,包括:
第一票据交易承诺单元411,用于利用零知识证明算法对智能合约中的待交易票据的票据合约信息中的票据金额进行承诺,生成第一票据交易承诺信息;
第二票据交易承诺单元412,用于利用与交易用户协议生成的票据协议支付密钥中的公钥对所述待交易票据的票据金额进行承诺,生成第二票据交易承诺信息;
票据交易证明单元413,用于基于所述区块链账户的公钥利用零知识证明算法生成票据交易证明信息,所述票据交易证明信息中包括:所述第一票据交易承诺信息与所述第二票据交易承诺信息相等,证明授权给所述区块链账户的公钥;
票据交易创建单元414,用于根据所述票据交易证明信息、所述票据交易明文信息生成票据交易信息;
票据交易发布单元415,用于调用所述智能合约的票据交易接口将所述票据交易信息发布到所述智能合约,以使得所述智能合约对所述票据交易证明信息进行验证,验证通过后在所述智能合约中删除所述第一票据交易承诺信息对应的票据合约信息,并存储所述第二票据交易承诺信息对应的票据合约信息。
图5是本说明书提供的基于智能合约的隐私交易处理装置又一个实施例的模块结构示意图,如图5所示,本说明书中提供的基于智能合约的隐私交易处理装置还可以包括:票据销毁模块51包括:
票据销毁证明单元511,用于基于所述区块链账户的公钥利用零知识证明算法对智能合约中待销毁的票据合约信息中的票据金额进行隐藏,生成票据销毁证明信息;
票据销毁创建单元512,用于根据所述票据销毁证明信息和票据销毁明文信息生成票据销毁交易信息;
票据销毁发布单元513,用于调用所述智能合约的票据销毁接口将所述票据销毁交易信息发布到智能合约,以使得所述智能合约对所述票据销毁证明信息进行验证,验证通过后在所述智能合约中删除所述票据销毁承诺信息对应的票据合约信息。
图6是本说明书提供的基于智能合约的隐私交易处理装置又一个实施例的模块结构示意图,如图6所示,本说明书中提供的基于智能合约的隐私交易处理装置可以应用在智能合约对应的服务器中,该装置可以包括:
交易发布接收模块61,用于接收客户端通过调用智能合约的票据创建接口发布的票据创建交易信息或通过调用智能合约的票据交易接口发布的票据交易信息或通过调用智能合约的票据销毁接口发布的票据销毁交易信息;其中,所述票据创建交易信息、所述票据交易信息、所述票据销毁交易信息基于零知识证明算法生成;
交易处理模块62,用于对所述票据创建交易信息、所述票据交易信息、所述票据销毁交易信息中的证明信息进行验证,验证通过后根据所述客户端调用的接口生成票据合约信息或完成票据交易或完成票据销毁。
本说明书实施例提供的基于智能合约的隐私交易处理装置,利用零知识证明算法对待创建票据的金额和票据身份进行隐藏,智能合约验证通过后,在智能合约上创建票据合约信息,完成票据的创建,确保了票据的隐私性,同时,可以确保该票据的金额和身份是真实合法的,实现了智能合约的隐私代币交易。同时,其性能只与零知识证明中的承诺的个数有关,对于存储不受票据总量的影响,效率更高。并且,对于证明算法没有固定的限制,实现了隐私交易的可扩展性,适用性广。
需要说明的,上述所述的装置根据对应方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照上述对应的方法实施例的描述,在此不作一一赘述。
本说明书实施例还提供一种基于智能合约的隐私交易处理设备,包括:至少一个处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述实施例的基于智能合约的隐私交易处理方法。
需要说明的,上述所述的设备根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本说明书提供的基于智能合约的隐私交易处理装置,也可以应用在多种数据分析处理系统中。所述系统或服务器或终端或设备可以为单独的服务器,也可以包括使用了本说明书的一个或多个所述方法或一个或多个实施例系统或服务器或终端或设备的服务器集群、系统(包括分布式系统)、软件(应用)、实际操作装置、逻辑门电路装置、量子计算机等并结合必要的实施硬件的终端装置。所述核对差异数据的检测系统可以包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现上述任意一个或者多个实施例中所述方法的步骤。
本说明书实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图7是本说明书一个实施例中基于智能合约的隐私交易处理服务器的硬件结构框图,该计算机终端可以是上述实施例中的基于智能合约的隐私交易处理服务器或基于智能合约的隐私交易处理装置。如图7所示服务器10可以包括一个或多个(图中仅示出一个)处理器100(处理器100可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的非易失性存储器200、以及用于通信功能的传输模块300。本领域普通技术人员可以理解,图7所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器10还可包括比图7中所示更多或者更少的组件,例如还可以包括其他的处理硬件,如数据库或多级缓存、GPU,或者具有与图7所示不同的配置。
非易失性存储器200可用于存储应用软件的软件程序以及模块,如本说明书实施例中的基于智能合约的隐私交易处理方法对应的程序指令/模块,处理器100通过运行存储在非易失性存储器200内的软件程序以及模块,从而执行各种功能应用以及资源数据更新。非易失性存储器200可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,非易失性存储器200可进一步包括相对于处理器100远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局与网、移动通信网及其组合。
传输模块300用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输模块300包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块300可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书提供的上述实施例所述的方法或装置可以通过计算机程序实现业务逻辑并记录在存储介质上,所述的存储介质可以计算机读取并执行,实现本说明书实施例所描述方案的效果,如:
利用临时密钥与合约账户中的支付密钥公钥生成待创建票据的票据支付密钥;
根据所述票据支付密钥以及所述合约账户对应的区块链账户的公钥利用零知识证明算法对所述待创建票据的票据金额进行隐藏,生成票据创建证明信息;
对所述票据创建证明信息和票据明文信息进行签名,生成票据创建签名;
根据所述票据创建证明信息、所述票据明文信息以及所述票据创建签名生成票据创建交易信息;
调用智能合约的票据创建接口将所述票据创建交易信息发布到所述智能合约,以使得所述智能合约对所述票据创建证明信息进行验证,验证通过后在所述智能合约中生成所述待创建票据的票据合约信息。
或,在智能合约中生成票据合约信息后,所述方法还包括:
利用零知识证明算法对智能合约中的待交易票据的票据合约信息中的票据金额进行承诺,生成第一票据交易承诺信息;
利用与交易用户协议生成的票据协议支付密钥中的公钥对待交易票据金额进行承诺,生成第二票据交易承诺信息;
基于所述区块链账户的公钥利用零知识证明算法生成票据交易证明信息,所述票据交易证明信息中包括:所述第一票据交易承诺信息与所述第二票据交易承诺信息相等,证明授权给所述区块链账户的公钥;
根据所述票据交易证明信息、所述票据交易明文信息生成票据交易信息;
调用所述智能合约的票据交易接口将所述票据交易信息发布到所述智能合约,以使得所述智能合约对所述票据交易证明信息进行验证,验证通过后在所述智能合约中删除所述第一票据交易承诺信息对应的票据合约信息,并存储所述第二票据交易承诺信息对应的票据合约信息。
或,在智能合约中生成票据合约信息后,所述方法还包括:
基于所述区块链账户的公钥利用零知识证明算法对智能合约中待销毁的票据合约信息中的票据金额进行隐藏,生成票据销毁证明信息;
对所述票据销毁证明信息和票据销毁明文信息进行签名,生成票据销毁签名;
根据所述票据销毁证明信息、所述票据销毁明文信息以及所述票据销毁签名生成票据销毁交易信息;
调用所述智能合约的票据销毁接口将所述票据销毁交易信息发布到智能合约,以使得所述智能合约对所述票据销毁证明信息进行验证,验证通过后在所述智能合约中删除所述票据销毁承诺信息对应的票据合约信息。
所述存储介质可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。所述存储介质有可以包括:利用电能方式存储信息的装置如,各式存储器,如RAM、ROM等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置如,CD或DVD。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。
本说明书实施例提供的上述基于智能合约的隐私交易处理方法或装置可以在计算机中由处理器执行相应的程序指令来实现,如使用windows操作系统的c++语言在PC端实现、linux系统实现,或其他例如使用android、iOS系统程序设计语言在智能终端实现,以及基于量子计算机的处理逻辑实现等。
需要说明的是说明书上述所述的计算机存储介质根据相关方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照对应方法实施例的描述,在此不作一一赘述。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参考即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参考方法实施例的部分说明即可。
本说明书实施例并不局限于必须是符合行业通信标准、标准计算机资源数据更新和数据存储规则或本说明书一个或多个实施例所描述的情况。某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、存储、判断、处理方式等获取的实施例,仍然可以属于本说明书实施例的可选实施方案范围之内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式资源数据更新环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程资源数据更新设备的处理器以产生一个机器,使得通过计算机或其他可编程资源数据更新设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程资源数据更新设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程资源数据更新设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参考即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参考方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。
Claims (18)
1.一种基于智能合约的隐私交易处理方法,其特征在于,所述方法包括:
利用临时密钥与合约账户中的支付密钥公钥生成待创建票据的票据支付密钥;
根据所述票据支付密钥以及所述合约账户对应的区块链账户的公钥利用零知识证明算法对所述待创建票据的票据金额进行隐藏,生成票据创建证明信息;
根据所述票据创建证明信息和票据明文信息生成票据创建交易信息;
调用智能合约的票据创建接口将所述票据创建交易信息发布到所述智能合约,以使得所述智能合约对所述票据创建证明信息进行验证,验证通过后在所述智能合约中生成所述待创建票据的票据合约信息。
2.如权利要求1所述的方法,其特征在于,所述根据所述支付密钥利用零知识证明算法对所述待创建票据的票据金额进行隐藏,生成票据创建证明信息,包括:
根据所述票据支付密钥利用零知识证明算法对所述待创建票据的票据金额进行承诺,生成票据创建承诺信息;
根据所述票据创建承诺信息和所述区块链账户的公钥利用零知识证明算法生成票据创建证明信息。
3.如权利要求2所述的方法,其特征在于,所述根据所述票据创建承诺信息和区块链账户的公钥利用零知识证明算法生成票据创建证明信息包括:
根据所述票据创建承诺信息、所述区块链账户的公钥所述临时密钥中的公钥以及所述票据支付密钥中的公钥利用零知识证明算法生成所述票据创建证明信息。
4.如权利要求1所述的方法,其特征在于,在智能合约中生成票据合约信息后,所述方法还包括:
利用零知识证明算法对智能合约中的待交易票据的票据合约信息中的票据金额进行承诺,生成第一票据交易承诺信息;
利用与交易用户协议生成的票据协议支付密钥中的公钥对待交易票据金额进行承诺,生成第二票据交易承诺信息;
基于所述区块链账户的公钥利用零知识证明算法生成票据交易证明信息,所述票据交易证明信息中包括:所述第一票据交易承诺信息与所述第二票据交易承诺信息相等,证明授权给所述区块链账户的公钥;
根据所述票据交易证明信息、所述票据交易明文信息生成票据交易信息;
调用所述智能合约的票据交易接口将所述票据交易信息发布到所述智能合约,以使得所述智能合约对所述票据交易证明信息进行验证,验证通过后在所述智能合约中删除所述第一票据交易承诺信息对应的票据合约信息,并存储所述第二票据交易承诺信息对应的票据合约信息。
5.如权利要求4所述的方法,其特征在于,所述利用零知识证明算法对智能合约中的待交易票据的票据合约信息中的票据金额进行承诺,生成第一票据交易承诺信息,包括:
从所述智能合约中获取待交易票据的票据合约信息,并利用所述合约账户中的支付密钥私钥对获取到的票据合约信息中的承诺金额的加密值进行解密;
利用零知识证明算法对解密后的票据金额进行承诺,生成所述第一票据交易承诺信息。
6.如权利要求4所述的方法,其特征在于,所述利用与交易用户协议生成的票据协议支付密钥中的公钥对待交易票据金额进行承诺,生成第二票据交易承诺信息,包括:
利用双重密钥隐私地址协议与所述交易用户生成所述票据协议支付密钥;
使用所述票据协议支付密钥中的公钥对待交易票据金额进行承诺,生成所述第二票据交易承诺信息。
7.如权利要求4所述的方法,其特征在于,所述基于所述区块链账户的公钥利用零知识证明算法生成票据交易证明信息,包括:
利用所述待交易票据的票据支付密钥中的私钥对所述第一票据交易承诺信息进行签名,生成第一票据交易签名;
根据所述区块链账户的公钥、所述第一票据交易承诺信息、所述第一票据交易签名、所述第二票据交易承诺信息、所述待交易票据的临时密钥中的公钥和票据支付密钥中的公钥、与所述交易用户协议生成的票据临时密钥中的公钥以及所述票据协议支付密钥中的公钥利用零知识证明算法生成票据交易证明信息。
8.如权利要求4所述的方法,其特征在于,所述根据所述票据交易证明信息、所述票据交易明文信息生成票据交易信息,包括:
对所述票据交易证明信息和票据交易明文信息进行签名,生成第二票据交易签名;
根据所述票据交易证明信息、所述票据交易明文信息以及所述第二票据交易签名生成票据交易信息。
9.如权利要求1所述的方法,其特征在于,在智能合约中生成票据合约信息后,所述方法还包括:
基于所述区块链账户的公钥利用零知识证明算法对智能合约中待销毁的票据合约信息中的票据金额进行隐藏,生成票据销毁证明信息;
根据所述票据销毁证明信息和票据销毁明文信息生成票据销毁交易信息;
调用所述智能合约的票据销毁接口将所述票据销毁交易信息发布到智能合约,以使得所述智能合约对所述票据销毁证明信息进行验证,验证通过后在所述智能合约中删除所述票据销毁承诺信息对应的票据合约信息。
10.如权利要求9所述的方法,其特征在于,基于所述区块链账户的公钥利用零知识证明算法对智能合约中待销毁的票据合约信息中的票据金额进行隐藏,生成票据销毁证明信息,包括:
利用零知识证明算法对智能合约中的待销毁票据的票据合约信息中的票据金额进行承诺,生成票据销毁承诺信息;
基于所述区块链账户的公钥和所述票据销毁承诺信息利用零知识证明算法生成票据销毁证明信息。
11.如权利要求10所述的方法,其特征在于,所述利用零知识证明算法对智能合约中的待销毁票据的票据合约信息中的票据金额进行承诺,生成票据销毁承诺信息,包括:
从所述智能合约中获取所述待销毁票据的票据合约信息,并利用所述合约账户中的支付密钥私钥对所述待销毁票据的票据合约信息进行解密;
利用零知识证明算法对解密后的票据合约信息中的票据金额进行承诺,生成票据销毁承诺信息。
12.如权利要求10所述的方法,其特征在于,所述基于所述区块链账户的公钥和所述票据销毁承诺信息利用零知识证明算法生成票据销毁证明信息,包括:
利用所述待销毁票据的支付密钥私钥对所述票据销毁承诺信息进行签名,生成票据销毁承诺签名;
基于所述区块链账户的公钥、所述票据销毁承诺签名、所述票据销毁承诺信息、所述待销毁票据的临时密钥中的公钥以及所述待销毁票据的票据支付密钥中的公钥利用零知识证明算法生成所述票据销毁证明信息。
13.一种基于智能合约的隐私交易处理方法,其特征在于,所述方法包括:
接收客户端通过调用智能合约的票据创建接口发布的票据创建交易信息或通过调用智能合约的票据交易接口发布的票据交易信息或通过调用智能合约的票据销毁接口发布的票据销毁交易信息;其中,所述票据创建交易信息、所述票据交易信息、所述票据销毁交易信息基于零知识证明算法生成;
对所述票据创建交易信息、所述票据交易信息、所述票据销毁交易信息中的证明信息进行验证,验证通过后根据所述客户端调用的接口生成票据合约信息或完成票据交易或完成票据销毁。
14.一种基于智能合约的隐私交易处理装置,其特征在于,所述装置包括:
票据密钥生成模块,用于利用临时密钥与合约账户中的支付密钥公钥生成待创建票据的票据支付密钥;
票据创建证明模块,用于根据所述票据支付密钥以及所述合约账户对应的区块链账户的公钥利用零知识证明算法对所述待创建票据的票据金额进行隐藏,生成票据创建证明信息;
票据创建模块,用于根据所述票据创建证明信息和票据明文信息生成票据创建交易信息;
票据发布模块,用于调用智能合约的票据创建接口将所述票据创建交易信息发布到所述智能合约,以使得所述智能合约对所述票据创建证明信息进行验证,验证通过后在所述智能合约中生成所述待创建票据的票据合约信息。
15.如权利要求14所述的装置,其特征在于,所述装置还包括票据交易模块,包括:
第一票据交易承诺单元,用于利用零知识证明算法对智能合约中的待交易票据的票据合约信息中的票据金额进行承诺,生成第一票据交易承诺信息;
第二票据交易承诺单元,用于利用与交易用户协议生成的票据协议支付密钥中的公钥对所述待交易票据的票据金额进行承诺,生成第二票据交易承诺信息;
票据交易证明单元,用于基于所述区块链账户的公钥利用零知识证明算法生成票据交易证明信息,所述票据交易证明信息中包括:所述第一票据交易承诺信息与所述第二票据交易承诺信息相等,证明授权给所述区块链账户的公钥;
票据交易创建单元,用于根据所述票据交易证明信息、所述票据交易明文信息生成票据交易信息;
票据交易发布单元,用于调用所述智能合约的票据交易接口将所述票据交易信息发布到所述智能合约,以使得所述智能合约对所述票据交易证明信息进行验证,验证通过后在所述智能合约中删除所述第一票据交易承诺信息对应的票据合约信息,并存储所述第二票据交易承诺信息对应的票据合约信息。
16.如权利要求14所述的装置,其特征在于,所述装置还包括票据销毁模块包括:
票据销毁证明单元,用于基于所述区块链账户的公钥利用零知识证明算法对智能合约中待销毁的票据合约信息中的票据金额进行隐藏,生成票据销毁证明信息;
票据销毁创建单元,用于根据所述票据销毁证明信息和票据销毁明文信息名生成票据销毁交易信息;
票据销毁发布单元,用于调用所述智能合约的票据销毁接口将所述票据销毁交易信息发布到智能合约,以使得所述智能合约对所述票据销毁证明信息进行验证,验证通过后在所述智能合约中删除所述票据销毁承诺信息对应的票据合约信息。
17.一种基于智能合约的隐私交易处理装置,其特征在于,所述装置包括:
交易发布接收模块,用于接收客户端通过调用智能合约的票据创建接口发布的票据创建交易信息或通过调用智能合约的票据交易接口发布的票据交易信息或通过调用智能合约的票据销毁接口发布的票据销毁交易信息;其中,所述票据创建交易信息、所述票据交易信息、所述票据销毁交易信息基于零知识证明算法生成;
交易处理模块,用于对所述票据创建交易信息、所述票据交易信息、所述票据销毁交易信息中的证明信息进行验证,验证通过后根据所述客户端调用的接口生成票据合约信息或完成票据交易或完成票据销毁。
18.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,所述指令被执行时实现权利要求1至12中任一项所述方法或权利要求13所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110095435.9A CN112801659A (zh) | 2021-01-25 | 2021-01-25 | 基于智能合约的隐私交易处理方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110095435.9A CN112801659A (zh) | 2021-01-25 | 2021-01-25 | 基于智能合约的隐私交易处理方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112801659A true CN112801659A (zh) | 2021-05-14 |
Family
ID=75811507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110095435.9A Pending CN112801659A (zh) | 2021-01-25 | 2021-01-25 | 基于智能合约的隐私交易处理方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112801659A (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108418783A (zh) * | 2017-09-01 | 2018-08-17 | 矩阵元技术(深圳)有限公司 | 一种保护区块链智能合约隐私的方法、介质 |
CN109035029A (zh) * | 2018-07-27 | 2018-12-18 | 阿里巴巴集团控股有限公司 | 基于区块链的资产转移方法及装置、电子设备 |
US20190164153A1 (en) * | 2017-11-30 | 2019-05-30 | Shashank Agrawal | Blockchain system for confidential and anonymous smart contracts |
CN110781521A (zh) * | 2018-12-06 | 2020-02-11 | 山东大学 | 基于零知识证明的智能合约认证数据隐私保护方法及系统 |
US20200175509A1 (en) * | 2019-06-28 | 2020-06-04 | Alibaba Group Holding Limited | Transferring method and system based on blockchain smart contract |
CN111314086A (zh) * | 2020-02-11 | 2020-06-19 | 上海宓猿信息技术有限公司 | 一种区块链隐私协议的实现方法 |
CN111882437A (zh) * | 2020-08-11 | 2020-11-03 | 神话科技传媒(深圳)有限公司上海分公司 | 一种具有图灵完备智能合约的区块链实现方法 |
CN112035889A (zh) * | 2020-09-03 | 2020-12-04 | 平安壹钱包电子商务有限公司 | 计算外包的区块链隐私验证方法、装置及计算机设备 |
CN112101944A (zh) * | 2020-09-28 | 2020-12-18 | 平安壹钱包电子商务有限公司 | 一种高效隐私支付实现方法、装置、计算机设备及存储介质 |
CN112115201A (zh) * | 2020-09-16 | 2020-12-22 | 建信金融科技有限责任公司 | 基于区块链的交易处理方法、交易追踪方法及装置 |
-
2021
- 2021-01-25 CN CN202110095435.9A patent/CN112801659A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108418783A (zh) * | 2017-09-01 | 2018-08-17 | 矩阵元技术(深圳)有限公司 | 一种保护区块链智能合约隐私的方法、介质 |
US20190164153A1 (en) * | 2017-11-30 | 2019-05-30 | Shashank Agrawal | Blockchain system for confidential and anonymous smart contracts |
CN109035029A (zh) * | 2018-07-27 | 2018-12-18 | 阿里巴巴集团控股有限公司 | 基于区块链的资产转移方法及装置、电子设备 |
CN110781521A (zh) * | 2018-12-06 | 2020-02-11 | 山东大学 | 基于零知识证明的智能合约认证数据隐私保护方法及系统 |
US20200175509A1 (en) * | 2019-06-28 | 2020-06-04 | Alibaba Group Holding Limited | Transferring method and system based on blockchain smart contract |
CN111314086A (zh) * | 2020-02-11 | 2020-06-19 | 上海宓猿信息技术有限公司 | 一种区块链隐私协议的实现方法 |
CN111882437A (zh) * | 2020-08-11 | 2020-11-03 | 神话科技传媒(深圳)有限公司上海分公司 | 一种具有图灵完备智能合约的区块链实现方法 |
CN112035889A (zh) * | 2020-09-03 | 2020-12-04 | 平安壹钱包电子商务有限公司 | 计算外包的区块链隐私验证方法、装置及计算机设备 |
CN112115201A (zh) * | 2020-09-16 | 2020-12-22 | 建信金融科技有限责任公司 | 基于区块链的交易处理方法、交易追踪方法及装置 |
CN112101944A (zh) * | 2020-09-28 | 2020-12-18 | 平安壹钱包电子商务有限公司 | 一种高效隐私支付实现方法、装置、计算机设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
KOSBA, A ; MILLER, A ; SHI, E ; WEN, Z ; PAPAMANTHOU, C: "Hawk: The Blockchain Model of Cryptography and Privacy-Preserving Smart Contracts", 《2016 IEEE SYMPOSIUM ON SECURITY AND PRIVACY》, 25 May 2016 (2016-05-25) * |
李龚亮;贺东博;郭兵;路松峰: "基于零知识证明的区块链隐私保护算法", 《华中科技大学学报(自然科学版)》, vol. 48, no. 7, 21 April 2020 (2020-04-21) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3607728B1 (en) | Methods and devices for protecting sensitive data of transaction activity based on smart contract in blockchain | |
EP3721578B1 (en) | Methods and systems for recovering data using dynamic passwords | |
US11170092B1 (en) | Document authentication certification with blockchain and distributed ledger techniques | |
CN113537984A (zh) | 基于区块链的内容验证方法及装置、电子设备 | |
CN110520884A (zh) | 基于可信执行环境的链外智能合约服务 | |
CN109003185B (zh) | 一种智能合约的建立方法、装置、计算设备及存储介质 | |
CN111931238B (zh) | 一种基于区块链的数据资产流转方法、装置及设备 | |
CN114008971A (zh) | 将分散标识符绑定到已验证声明 | |
US11876801B2 (en) | User ID codes for online verification | |
EP3962135B1 (en) | Information sharing methods, apparatuses, and devices | |
US20230004970A1 (en) | Distributed Ledgers with Ledger Entries Containing Redactable Payloads | |
Giorgini et al. | Requirement engineering meets security: A case study on modelling secure electronic transactions by VISA and Mastercard | |
Bergquist | Blockchain technology and smart contracts: privacy-preserving tools | |
TWI728587B (zh) | 用於安全地執行加密操作的電腦實施的方法、系統及裝置 | |
WO2015022553A1 (en) | Reconciling electronic transactions | |
JP2023530594A (ja) | 分散型データベースにおける許可されたイベント処理 | |
Mohammed et al. | Secure Smart Contract Based on Blockchain to Prevent the Non-Repudiation Phenomenon | |
Bokariya et al. | Decentralization of Credential Verification System using Blockchain | |
Manu et al. | Blockchain components and concept | |
CN112801659A (zh) | 基于智能合约的隐私交易处理方法、装置及存储介质 | |
CN115023721A (zh) | 用于保护和验证记录的状态转换的方法和设备 | |
CN114846765A (zh) | 提供去中心化身份验证的方法和设备 | |
Ai et al. | B2IPTS: A blockchain-based intellectual property transaction framework | |
Lone et al. | Forgery Protection Of Academic Certificates Through Integrity Preservation At Scale Using Ethereum Smart Contract | |
Yang et al. | Video transaction algorithm considering FISCO alliance chain and improved trusted computing |
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 |