CN116561739A - 数据交易方法以及装置、电子设备、存储介质 - Google Patents
数据交易方法以及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN116561739A CN116561739A CN202310357009.7A CN202310357009A CN116561739A CN 116561739 A CN116561739 A CN 116561739A CN 202310357009 A CN202310357009 A CN 202310357009A CN 116561739 A CN116561739 A CN 116561739A
- Authority
- CN
- China
- Prior art keywords
- user
- hash value
- private key
- smart contract
- party
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000012795 verification Methods 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 description 13
- 241000209202 Bromus secalinus Species 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Power Engineering (AREA)
- Health & Medical Sciences (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明实施例公开了一种数据交易方法以及装置、电子设备、存储介质,该方法包括基于可信执行环境、区块链、非对称加密和签名体系实现原始数据的链下交付。本申请解决了原始数据交付的原子性的技术问题。通过本申请实现原始数据交付过程,实现数据交易的原子性。
Description
技术领域
本申请涉及软件工程领域,具体而言,涉及一种数据交易方法以及装置、电子设备、存储介质。
背景技术
可信执行环境,包括intel的SGX,AMD的SEV等,能保证程序在受保护的环境下运行,实现代码无法被窜改、中间变量无法被获取这两个基本目标。其设计原理为在CPU电路这一层加入了对受保护内存访问的权限判断。
区块链是一个去中心化的账本,在其上执行的程序称作智能合约,以完全公开透明的方式执行。
在数据交易中,假设甲方想要购买乙方的数据,且需要保证数据的隐私,即数据不能被甲乙双方之外的任何人获取。在实际的场景中,这类交易通常在线上进行,很难做到真正的一手交钱一手交货。经常出现的情形为:甲方向乙方支付款项后,乙方拒绝提供数据或者提供错误的数据;又或者乙方先向甲方提供数据后,甲方拒绝进行支付。如果引入类似传统电商平台作为第三方中介用于暂存款项和数据,则会容易造成数据隐私泄露的风险;且第三方同样存在作恶的可能性。
总之,前述无论哪种情形都存在导致至少一方受损失的风险,无法保证数据交易的公平性。
发明内容
针对现有技术中的技术缺陷,本发明实施例的目的在于提供一种数据交易方法以及装置、电子设备、存储介质,以解决数据交付的原子性问题。
为实现上述目的,第一方面,本发明实施例提供了一种数据交易方法,所述方法包括:
将第一用户提供的数字资产存入智能合约,以表示所述第一用户希望购买由第二用户预先上传至区块链上的哈希值为hP的数据;
将在可信执行环境下获得的原始数据D的第一加密结果m、私钥St的第二加密结果c以及联合体的签名s,发送至第二用户,其中,所述联合体包括所述原始数据D的哈希值hD、所述c和所述m的哈希值hm;
通过所述第二用户链下将所述m发送至第一用户,以使所述第一用户计算所述m的哈希值后提交至链上的智能合约;
计算所述第二用户本地的所述m的哈希值,并且在所述第二用户本地的所述m的哈希值与所述智能合约具有相同的哈希值时,通过第二用户将所述c、所述s发送至所述智能合约;
在所述第一用户计算的所述m的哈希值、所述hP、所述c、所述s经由所述智能合约验证通过后,将所述第一用户存入所述智能合约的数字资产转至所述第二用户同时所述第一用户经过解密后获得所述D,完成交付。
进一步,所述第一用户经过解密后获得所述D,包括:
根据从所述智能合约获取的所述c,使用私钥Sa解密c得到所述私钥St;
根据所述St解密从所述第二用户链下发送的所述m,得到所述D。
进一步,在可信执行环境下获得的原始数据D的第一加密结果m、私钥St的第二加密结果c以及联合体的签名s,包括:
输入原始数据D,计算原始数据D的哈希值hD;
生成一对非对称秘钥,其中公钥记为Pt,私钥记为St;
计算所述第一加密结果m=Enc(Pt,D),其中Enc(Pt,D)表示用公钥Pt对D进行加密;
c=Enc(Pa,St),其中Enc(Pa,St)表示用公钥Pa对St进行加密;
s=Sig(Sa,c,hm,hD,nonce),其中hm为m的哈希值,通过计算给定的抗碰撞函数获得;Sig(Sa,c,hm,hD,nonce)表示用私钥Sa对c,hm,hD,nonce的联合体进行签名,其中,nonce为一个公开常数,所述私钥Sa通过所述第一用户的数据安全通道发送至可信执行环境中。
进一步,所述通过所述第二用户链下将所述m发送至第一用户,以使所述第一用户计算所述m的哈希值后提交至链上的智能合约,包括:
通过所述第二用户链下传输的方式将所述D的密文m发送至所述第一用户,且能解密的私钥密文仍保存在所述第二用户;
所述第一用户计算得到所述m的哈希值h′m,并将所述h′m提交至链上的智能合约。
进一步,所述方法还包括:
在所述第一用户接收到所述D的密文m,但需要特定私钥解密。
进一步,所述计算所述第二用户本地的所述m的哈希值,并且在所述第二用户本地的所述m的哈希值与所述智能合约具有相同的哈希值时,通过第二用户将所述c、所述s发送至所述智能合约,包括:
在所述第二用户确认所述第一用户收到所述D的密文后,计算所述第二用户本地的所述m的哈希值h″m,并且在所述第二用户本地的所述m的哈希值h″m与所述智能合约上的所述h′m相等时,通过第二用户将所述c、所述s发送至所述智能合约,以将能解密的私钥密文公布。
进一步,所述第一用户计算的所述m的哈希值、所述hP、所述c、所述s经由所述智能合约验证,包括:
根据所述第一用户计算的所述m的哈希值h′m、所述hP、所述c、所述s,经由所述智能合约验证verify_sig(Pa,s,c,h′m,hp,nonce),
其中,所述verify_sig(Pa,s,c,h′m,hp,nonce)表示用公钥Pa验证所述s是否为c,h′m,hP,nonce联合体的一个合法签名,nonce为一个公开常数。
第二方面,本发明实施例还提供了一种数据交易装置,所述装置包括:
数字资产存入模块,用于将第一用户提供的数字资产存入智能合约,以表示所述第一用户希望购买由第二用户预先上传至区块链上的哈希值为hP的数据;
加密模块,将在可信执行环境下获得的原始数据D的第一加密结果m、私钥St的第二加密结果c以及联合体的签名s,发送至第二用户,其中,所述联合体包括所述原始数据D的哈希值hD、所述c和所述m的哈希值hm;
链下发送模块,用于通过所述第二用户链下将所述m发送至第一用户,以使所述第一用户计算所述m的哈希值后提交至链上的智能合约;
哈希计算模块,用于计算所述第二用户本地的所述m的哈希值,并且在所述第二用户本地的所述m的哈希值与所述智能合约具有相同的哈希值时,通过第二用户将所述c、所述s发送至所述智能合约;
哈希校验模块,用于在所述第一用户计算的所述m的哈希值、所述hP、所述c、所述s经由所述智能合约验证通过后,将所述第一用户存入所述智能合约的数字资产转至所述第二用户同时所述第一用户经过解密后获得所述D,完成交付。
第三方面,本发明实施例还提供了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如第一方面所述的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行如第一方面所述的方法。
在本申请实施例中数据交易方法以及装置、电子设备、存储介质,因为Sa只在可信执行环境中被使用,第二用户无法获取其具体的值,故使用Sa进行的签名一定是在可信执行环境中生成,且可行执行环境的性质能够保证签名生成过程的正确性。第二用户无法得到或伪造除可信执行环境给出的签名之外的任何合法签名。故签名s在智能合约上能够验证通过,意味着被签名的内容在智能合约上的记录必须和可信执行环境中的记录完全一致,这意味着必须要有hm=h′m,hD=hP。因此,能完整实现数据交易过程的原子性。且在上述执行过程中,甲乙双方中任何一方违背协议的作恶行为都不会影响原子性。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。
图1是本发明实施例提供的数据交易方法的流程示意图;
图2是本发明实施例提供的数据交易装置的结构示意图;
图3是本发明实施例提供的数据交易方法的实现原理示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
相关技术中的问题在于:数据交付的原子性。即,甲方在未收到正确的数据之前,乙方不会获得甲方的支付款项;而一旦甲方确实收到了正确的数据,则乙方能够获得甲方的支付款项。即,甲方收到正确的数据和乙方收到支付款项两个事件必然同时发生,否则两者都不会发生。本发明提出的方案基于可信执行环境、区块链技术、非对称加密和签名体系,能保证上述数据交付的原子性,确保双方都没有作弊空间,且不依赖于任何第三方中介。
本申请实施例中,基于数据安全通道,允许对于处在不同地点的双方,一方将隐私数据传至另一方的可信执行环境中并保证隐私不被泄露,即无法被除发送方之外的任何人获取。更进一步的,发送方能够确保其发送内容只会在可信执行环境中的一个其指定的实例(包括指定的分析程序哈希和指定的参数)中运行。
本申请实施例中着重针对甲方向乙方购买原始数据时,甲方和乙方公平、诚信交易的问题,且保证甲方和乙方在交易过程中均不能作恶。在上述执行过程中,甲乙双方中任何一方违背协议的行为都不会影响数据交付的原子性。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
如图1所示,本申请实施例提供的一种数据交易方法的流程图。该方法包括如下的步骤S110至步骤S150:
S110:将第一用户提供的数字资产存入智能合约,以表示所述第一用户希望购买由第二用户预先上传至区块链上的哈希值为hP的数据。
第一用户是指甲方,为数据购买方。
第二用户是指乙方,为数据提供方。
乙方将待交易的数据的哈希值hP提前公布至区块链上,在区块链上展示并且能保证正确性,例如可以通过与其他多个用户的历史成功交易记录进行信用保证,且保证乙方交付的原始数据D能和链上展示的哈希值hP匹配上。
数字资产可以是区块链代币,其数量等于此次数据交易需要支付的资金。第一用户希望购买哈希值为hP的数据时,需要先将相应数量的区块链代币存入智能合约。
S120:将在可信执行环境下获得的原始数据D的第一加密结果m、私钥St的第二加密结果c以及联合体的签名s,发送至第二用户,其中,所述联合体包括所述原始数据D的哈希值hD、所述c和所述m的哈希值hm。
首先,假设甲方有一对非对称秘钥,其中公钥记为Pa,私钥记为Sa,公钥提交至智能合约,私钥通过数据安全通道传入乙方可信执行环境运行的程序中。
然后,生成一对非对称秘钥,公钥记为Pt,私钥记为St。在可信执行环境中将需要传输的数据用特定私钥加密。同时输出特定私钥密文,D的密文以及相关签名给乙方,并且乙方在可信执行环境运行程序。
可以理解,上述第一加密结果、第二加密结果是使用不同的公钥进行加密得到的。
需要注意的是,在本申请中首先假定基于可信执行环境的数据传输手段已经给定,不做额外限制。
S130:通过所述第二用户链下将所述m发送至第一用户,以使所述第一用户计算所述m的哈希值后提交至链上的智能合约。
乙方将m发送给甲方。由于m为D的密文,其大小和D接近,此处的发送是通过链下传输的方式,包括网络传输或硬件设备传输等。该步骤的目的是将D的密文发送给甲方,但目前能解密的私钥密文仍然在乙方手里。
S140:计算所述第二用户本地的所述m的哈希值,并且在所述第二用户本地的所述m的哈希值与所述智能合约具有相同的哈希值时,通过第二用户将所述c、所述s发送至所述智能合约。
甲方接收到m之后,计算所述m的哈希值h′m并提交给智能合约。该步骤表明甲方已经收到了D的密文,但还需要特定私钥才能解密。
当乙方用其本地的m计算哈希值h″m。当其发现智能合约上出现了一个和其本地计算的h″m相同的值时,提交其本地的c,s至智能合约。该步骤在乙方确认甲方收到D的密文后,将能解密的私钥密文公布。
S150:在所述第一用户计算的所述m的哈希值、所述hP、所述c、所述s经由所述智能合约验证通过后,将所述第一用户存入所述智能合约的数字资产转至所述第二用户同时所述第一用户经过解密后获得所述D,完成交付。
通过智能合约验证各方提交信息的正确性,包括包括c,s,h′m等。
作为本实施例中的优选,所述第一用户经过解密后获得所述D,包括:根据从所述智能合约获取的所述c,使用私钥Sa解密c得到所述私钥St;根据所述St解密从所述第二用户链下发送的所述m,得到所述D。
具体实施时,如智能合约支付过程完成,甲方从智能合约上获取c,使用Sa解密c得到St,再用St解密其收到的m,得到原始数据D。至此,原始数据交付过程完成。
作为本实施例中的优选,在可信执行环境下获得原始数据D的第一加密结果m、私钥St的第二加密结果c以及联合体的签名s,包括:输入原始数据D,计算原始数据D的哈希值hD;生成一对非对称秘钥,其中公钥记为Pt,私钥记为St;计算所述第一加密结果m=Enc(Pt,D),其中Enc(Pt,D)表示用公钥Pt对D进行加密;c=Enc(Pa,St),其中Enc(Pa,St)表示用公钥Pa对St进行加密;s=Sig(Sa,c,hm,hD,nonce),其中hm为m的哈希值,通过计算给定的抗碰撞函数获得,通过哈希值无法计算出其原始数据信息;Sig(Sa,c,hm,hD,nonce)表示用私钥Sa对c,hm,hD,nonce的联合体进行签名,其中,nonce为一个公开常数,每次签名所使用的nonce不一样,保证签名不可重用;所述私钥Sa通过所述第一用户的数据安全通道发送至可信执行环境中。
具体实施时,乙方在可信执行环境运行程序,其中程序包含如下模块:
首先,接受甲方通过数据安全通道传入的Sa;
其次,生成一对非对称秘钥,公钥记为Pt,私钥记为St;
然后,输入乙方的原始数据D,计算D的哈希值,记为hD;
再然后,计算m=Enc(Pt,D),其中Enc(Pt,D)表示用公钥Pt对D进行加密;c=Enc(Pa,St),其中Enc(Pa,St)表示用公钥Pa对St进行加密;
最后,计算签名s=Sig(Sa,c,hm,hD,nonce),其中hm为m的哈希值,通过计算给定的抗碰撞函数获得;Sig(Sa,c,hm,hD,nonce)表示用私钥Sa对c,hm,hD,nonce的联合体进行签名,其中,nonce为一个公开常数。
综上,将m,c,s输出至乙方。
乙方在不作弊的情况下,有hD=hP。
乙方如果输入错误的原始数据D′至可信执行环境,假设D′的哈希值为h′,则可信执行环境输出的s包含的是对h′的签名。在智能合约的验证环节,由于h’≠hP,验证不会通过,故协议不会继续执行。
作为本实施例中的优选,所述通过所述第二用户链下将所述m发送至第一用户,以使所述第一用户计算所述m的哈希值后提交至链上的智能合约,包括:通过所述第二用户链下传输的方式将所述D的密文m发送至所述第一用户,且能解密的私钥密文仍保存在所述第二用户;所述第一用户计算得到所述m的哈希值h′m,并将所述h′m提交至链上的智能合约。
由于m为D的密文,其大小和D接近,此处的发送是通过链下传输的方式,包括网络传输或硬件设备传输等。
如果乙方提交错误的原始数据密文m’给甲方,那么甲方在提交hm′后以及所述智能合约的验证不会通过。因为可信执行环境生成的s是对hm的签名而不是hm′,而乙方因为没有私钥Sa,无法获得对hm′的合法签名通过验证,故协议不会继续执行。
作为本实施例中的优选,所述方法还包括:在所述第一用户接收到所述D的密文m,但需要特定私钥解密。甲方已经收到了D的密文,但还需要特定私钥才能解密。
作为本实施例中的优选,所述计算所述第二用户本地的所述m的哈希值,并且在所述第二用户本地的所述m的哈希值与所述智能合约具有相同的哈希值时,通过第二用户将所述c、所述s发送至所述智能合约,包括:在所述第二用户确认所述第一用户收到所述D的密文后,计算所述第二用户本地的所述m的哈希值h″m,并且在所述第二用户本地的所述m的哈希值h″m与所述智能合约上的所述h′m相等时,通过第二用户将所述c、所述s发送至所述智能合约,以将能解密的私钥密文公布。
具体实施时,甲方接收到m之后,计算h′m并提交给智能合约。
当乙方用其本地的m计算h″m。当乙方发现智能合约上出现了一个和其本地计算的h″m相同的值时,提交其本地的c,s至智能合约。
如果甲方在收到了正确的m之后,仍然提交一个错误的h′m至智能合约(期待不用支付而获得D的解密秘钥),此时乙方发现智能合约里的h′m和其本地计算的h″m不同,故不会提交c,s到智能合约上。协议不会继续执行,甲方仍然无法解密D。
作为本实施例中的优选,所述第一用户计算的所述m的哈希值、所述hP、所述c、所述s经由所述智能合约验证,包括:根据所述第一用户计算的所述m的哈希值h′m、所述hP、所述c、所述s,经由所述智能合约验证verify_sig(Pa,s,c,h′m,hp,nonce),其中,所述verify_sig(Pa,s,c,h′m,hp,nonce)表示用公钥Pa验证所述s是否为c,h′m,hP,nonce联合体的一个合法签名,nonce为一个公开常数。
具体实施时,智能合约验证verify_sig(Pa,s,c,h′m,hp,nonce),其中,h′m为甲方提交的数据,s,c为乙方提交的数据。
verify_sig(Pa,s,c,h′m,hp,nonce)表示用公钥Pa验证所述s是否为c,h′m,hP,nonce联合体的一个合法签名。如果验证通过,将甲方存入智能合约的区块链数字资产转入乙方地址,支付过程完成。
如果乙方提交错误的c′,s′至智能合约,那么智能合约的验证不会通过。因为乙方没有私钥Sa,除s之外无法获得另外一个包含nonce的签名。
本实施例中,在甲方和乙方均不作弊的情况下:hP=hD,hm=h′m=h″m。需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本申请实施例,还提供了一种用于实施上述方法的数据交易装置。如图2所示,该数据交易装置200包括:
数字资产存入模块210,用于将第一用户提供的数字资产存入智能合约,以表示所述第一用户希望购买由第二用户预先上传至区块链上的哈希值为hP的数据;
加密模块220,将在可信执行环境下获得的原始数据D的第一加密结果m、私钥St的第二加密结果c以及联合体的签名s,发送至第二用户,其中,所述联合体包括所述原始数据D的哈希值hD、所述c和所述m的哈希值hm;
链下发送模块230,用于通过所述第二用户链下将所述m发送至第一用户,以使所述第一用户计算所述m的哈希值后提交至链上的智能合约;
哈希计算模块240,用于计算所述第二用户本地的所述m的哈希值,并且在所述第二用户本地的所述m的哈希值与所述智能合约具有相同的哈希值时,通过第二用户将所述c、所述s发送至所述智能合约;
哈希校验模块250,在所述第一用户计算的所述m的哈希值、所述hP、所述c、所述s经由所述智能合约验证通过后,将所述第一用户存入所述智能合约的数字资产转至所述第二用户同时所述第一用户经过解密后获得所述D,完成交付。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
如图3所示,是根据本申请实施例的数据交易方法的实现原理示意图,其具体包括如下的步骤:
步骤1,甲方希望购买哈希值为hP的数据时,需要先将相应数量的区块链代币存入智能合约。数字资产可以是区块链代币,其数量等于此次数据交易需要支付的资金。
数据的哈希值hP由乙方提前公布至区块链上,在区块链上展示并且能保证正确性,例如可以通过与其他多个用户的历史成功交易记录进行信用保证,且保证乙方交付的原始数据D能和链上展示的哈希值hP匹配上。
步骤2,乙方在可信执行环境运行程序,其中程序包含如下模块:
(1)接受甲方通过数据安全通道传入的Sa;
(2)生成一对非对称秘钥,公钥记为Pt,私钥记为St;
(3)输入乙方的原始数据D,计算D的哈希值,记为hD;
(4)计算m=Enc(Pt,D),其中Enc(Pt,D)表示用公钥Pt对D进行加密;
c=Enc(Pa,St),其中Enc(Pa,St)表示用公钥Pa对St进行加密;
s=Sig(Sa,c,hm,hD,nonce),其中hm为m的哈希值,通过计算给定的抗碰撞函数获得;Sig(Sa,c,hm,hD,nonce)表示用私钥Sa对c,hm,hD,nonce的联合体进行签名,其中,nonce为一个公开常数,每次签名所使用的nonce不一样,保证签名不可重用;
(4)将m,c,s输出至乙方。
上述步骤,相当于将需要交易的数据用特定私钥加密。同时输出特定私钥密文,D的密文以及相关签名给乙方。
步骤3,乙方将m发送给甲方。由于m为D的密文,其大小和D接近,此处的发送是通过链下传输的方式,包括网络传输或硬件设备传输等。
该步骤的目的是将D的密文发送给甲方,但目前能解密的私钥密文仍然在乙方手里。
步骤4,甲方接收到m之后,计算m的哈希值为h′m,并提交给智能合约。
该步骤表明甲方已经收到了D的密文,但还需要特定私钥才能解密。
步骤5,乙方用其本地的m计算哈希值为h″m,当其发现智能合约上出现了一个和其本地计算的h″m相同的值时,即当h″m=h′m,提交其本地的c,s至智能合约。
该步骤在乙方确认甲方收到D的密文后,将能解密的私钥密文公布。
步骤6,智能合约验证verify_sig(Pa,s,c,h′m,hp,nonce),其中h′m为甲方在第4步提交的数据,c,s为乙方在第5步提交的数据,verify_sig(Pa,s,c,h′m,hp,nonce)表示用公钥Pa验证s是否为c,h′m,hP,nonce联合体的一个合法签名。如果验证通过,将甲方存入智能合约的区块链代币转入乙方地址,支付过程完成。
该步骤的目的是验证各方提交信息的正确性,包括c,s,h′m等。
步骤7,如智能合约支付过程完成,甲方从智能合约上获取c,使用Sa解密c得到St,再用St解密其在第4步收到的m,得到原始数据D。至此,原始数据交付过程完成。
如果乙方在第2步作弊,输入错误的原始数据D′至可信执行环境,假设D′的哈希值为h′,则可信执行环境输出的s包含的是对h′的签名。在第5步智能合约的验证环节,由于h’≠hP,验证不会通过,故协议不会继续执行。
如果乙方在第3步作弊,提交错误的原始数据密文m’给甲方,那么甲方在提交hm′后以及所述智能合约的验证不会通过。因为可信执行环境生成的s是对hm的签名而不是hm′,而乙方因为没有私钥Sa,无法获得对hm′的合法签名通过验证,故协议不会继续执行。
如果甲方在第4步作弊,收到了正确的m之后,仍然提交一个错误的h′m至智能合约(期待不用支付而获得D的解密秘钥),此时乙方发现智能合约里的h′m和其本地计算的h″m不同,故不会提交c,s到智能合约上。协议不会继续执行,甲方仍然无法解密D。
如果乙方在第5步作弊,提交错误的c′,s′至智能合约,那么第6步智能合约的验证不会通过。因为乙方没有私钥Sa,除s之外无法获得另外一个包含nonce的签名。
根据本申请实施例,还提供了一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行所述数据交易方法。
进一步地,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行所述数据交易方法。
所述计算机可读存储介质可以是前述实施例所述的后台服务器的内部存储单元,例如***的硬盘或内存。所述计算机可读存储介质也可以是所述***的外部存储设备,例如所述***上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述***的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述***所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据交易方法,其特征在于,所述方法包括:
将第一用户提供的数字资产存入智能合约,以表示所述第一用户希望购买由第二用户预先上传至区块链上的哈希值为hP的数据;
将在可信执行环境下获得的原始数据D的第一加密结果m、私钥St的第二加密结果c以及联合体的签名s,发送至第二用户,其中,所述联合体包括所述原始数据D的哈希值hD、所述c和所述m的哈希值hm;
通过所述第二用户链下将所述m发送至第一用户,以使所述第一用户计算所述m的哈希值后提交至链上的智能合约;
计算所述第二用户本地的所述m的哈希值,并且在所述第二用户本地的所述m的哈希值与所述智能合约具有相同的哈希值时,通过第二用户将所述c、所述s发送至所述智能合约;
在所述第一用户计算的所述m的哈希值、所述hP、所述c、所述s经由所述智能合约验证通过后,将所述第一用户存入所述智能合约的数字资产转至所述第二用户同时所述第一用户经过解密后获得所述D,完成交付。
2.根据权利要求1所述的方法,其特征在于,所述第一用户经过解密后获得所述D,包括:
根据从所述智能合约获取的所述c,使用私钥Sa解密c得到所述私钥St;
根据所述St解密从所述第二用户链下发送的所述m,得到所述D。
3.根据权利要求1所述的方法,其特征在于,在可信执行环境下获得原始数据D的第一加密结果m、私钥St的第二加密结果c以及联合体的签名s,包括:
输入原始数据D,计算原始数据D的哈希值hD;
生成一对非对称秘钥,其中公钥记为Pt,私钥记为St;
计算所述第一加密结果m=Enc(Pt,D),其中Enc(Pt,D)表示用公钥Pt对D进行加密;
c=Enc(Pa,St),其中Enc(Pa,St)表示用公钥Pa对St进行加密;
s=Sig(Sa,c,hm,hD,nonce),其中hm为m的哈希值,通过计算给定的抗碰撞函数获得;Sig(Sa,c,hm,hD,nonce)表示用私钥Sa对c,hm,hD,nonce的联合体进行签名,其中,nonce为一个公开常数,所述私钥Sa通过所述第一用户的数据安全通道发送至可信执行环境中。
4.根据权利要求1所述的方法,其特征在于,所述通过所述第二用户链下将所述m发送至第一用户,以使所述第一用户计算所述m的哈希值后提交至链上的智能合约,包括:
通过所述第二用户链下传输的方式将所述D的密文m发送至所述第一用户,且能解密的私钥密文仍保存在所述第二用户;
所述第一用户计算得到所述m的哈希值h′m,并将所述h′m提交至链上的智能合约。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述第一用户接收到所述D的密文m,但需要特定私钥解密。
6.根据权利要求5所述的方法,其特征在于,所述计算所述第二用户本地的所述m的哈希值,并且在所述第二用户本地的所述m的哈希值与所述智能合约具有相同的哈希值时,通过第二用户将所述c、所述s发送至所述智能合约,包括:
在所述第二用户确认所述第一用户收到所述D的密文后,计算所述第二用户本地的所述m的哈希值h″m,并且在所述第二用户本地的所述m的哈希值h″m与所述智能合约上的所述h′m相等时,通过第二用户将所述c、所述s发送至所述智能合约,以将能解密的私钥密文公布。
7.根据权利要求1所述的方法,其特征在于,所述第一用户计算的所述m的哈希值、所述hP、所述c、所述s经由所述智能合约验证,包括:
根据所述第一用户计算的所述m的哈希值h′m、所述hP、所述c、所述s,经由所述智能合约验证verify_sig(Pa,s,c,h′m,hp,nonce),
其中,所述verify_sig(Pa,s,c,h′m,hp,nonce)表示用公钥Pa验证所述s是否为c,h′m,hP,nonce联合体的一个合法签名,nonce为一个公开常数。
8.一种数据交易装置,其特征在于,所述装置包括:
数字资产存入模块,用于将第一用户提供的数字资产存入智能合约,以表示所述第一用户希望购买由第二用户预先上传至区块链上的哈希值为hP的数据;
加密模块,用于将在可信执行环境下获得的原始数据D的第一加密结果m、私钥St的第二加密结果c以及联合体的签名s,发送至第二用户,其中,所述联合体包括所述原始数据D的哈希值hD、所述c和所述m的哈希值hm;
链下发送模块,用于通过所述第二用户链下将所述m发送至第一用户,以使所述第一用户计算所述m的哈希值后提交至链上的智能合约;
哈希计算模块,用于计算所述第二用户本地的所述m的哈希值,并且在所述第二用户本地的所述m的哈希值与所述智能合约具有相同的哈希值时,通过第二用户将所述c、所述s发送至所述智能合约;
哈希校验模块,用于在所述第一用户计算的所述m的哈希值、所述hp、所述c、所述s经由所述智能合约验证通过后,将所述第一用户存入所述智能合约的数字资产转至所述第二用户同时所述第一用户经过解密后获得所述D,完成交付。
9.一种电子设备,其特征在于,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行所述权利要求1~7之任一所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行所述权利要求1~7之任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310357009.7A CN116561739B (zh) | 2023-04-06 | 2023-04-06 | 数据交易方法以及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310357009.7A CN116561739B (zh) | 2023-04-06 | 2023-04-06 | 数据交易方法以及装置、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116561739A true CN116561739A (zh) | 2023-08-08 |
CN116561739B CN116561739B (zh) | 2024-04-16 |
Family
ID=87486975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310357009.7A Active CN116561739B (zh) | 2023-04-06 | 2023-04-06 | 数据交易方法以及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116561739B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107038578A (zh) * | 2017-04-19 | 2017-08-11 | 浙江数秦科技有限公司 | 基于区块链的数据交易平台中多重签名交易信息处理方法 |
CN107947940A (zh) * | 2017-11-29 | 2018-04-20 | 树根互联技术有限公司 | 一种数据交换的方法及装置 |
CN109347878A (zh) * | 2018-11-30 | 2019-02-15 | 西安电子科技大学 | 去中心化的数据验证及数据安全交易***及方法 |
CN109509099A (zh) * | 2018-12-27 | 2019-03-22 | 石更箭数据科技(上海)有限公司 | 数据交易方法及装置、计算设备、存储介质 |
CN110601848A (zh) * | 2019-09-10 | 2019-12-20 | 北京清红微谷技术开发有限责任公司 | 基于区块链的约定信息处理方法、装置、***及电子设备 |
CN110659994A (zh) * | 2019-09-27 | 2020-01-07 | 深圳市网心科技有限公司 | 基于区块链的数据交易方法、数据交易装置及*** |
CN111369236A (zh) * | 2020-02-19 | 2020-07-03 | 中国建设银行股份有限公司 | 一种应用于区块链的数据管理方法和装置 |
KR20210027951A (ko) * | 2019-09-03 | 2021-03-11 | 주식회사 아롬정보기술 | 블록체인을 이용한 의료기관 데이터 중계 장치와, 의료데이터 활용 장치 및, 의료데이터 관리 시스템 |
KR102302955B1 (ko) * | 2020-04-21 | 2021-09-16 | 주식회사 한컴위드 | 자산의 토큰화를 통해 현물 자산 거래를 가능하게 하는 블록체인 및 클라우드 기반의 자산 거래 플랫폼 서버 및 그 동작 방법 |
CN114008654A (zh) * | 2020-10-09 | 2022-02-01 | 支付宝(杭州)信息技术有限公司 | 管理基于区块链的可信交易服务 |
CN115114658A (zh) * | 2022-06-24 | 2022-09-27 | 深圳大学 | 基于区块链的可验证数据交易方法、装置、设备及介质 |
-
2023
- 2023-04-06 CN CN202310357009.7A patent/CN116561739B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107038578A (zh) * | 2017-04-19 | 2017-08-11 | 浙江数秦科技有限公司 | 基于区块链的数据交易平台中多重签名交易信息处理方法 |
CN107947940A (zh) * | 2017-11-29 | 2018-04-20 | 树根互联技术有限公司 | 一种数据交换的方法及装置 |
CN109347878A (zh) * | 2018-11-30 | 2019-02-15 | 西安电子科技大学 | 去中心化的数据验证及数据安全交易***及方法 |
CN109509099A (zh) * | 2018-12-27 | 2019-03-22 | 石更箭数据科技(上海)有限公司 | 数据交易方法及装置、计算设备、存储介质 |
KR20210027951A (ko) * | 2019-09-03 | 2021-03-11 | 주식회사 아롬정보기술 | 블록체인을 이용한 의료기관 데이터 중계 장치와, 의료데이터 활용 장치 및, 의료데이터 관리 시스템 |
CN110601848A (zh) * | 2019-09-10 | 2019-12-20 | 北京清红微谷技术开发有限责任公司 | 基于区块链的约定信息处理方法、装置、***及电子设备 |
CN110659994A (zh) * | 2019-09-27 | 2020-01-07 | 深圳市网心科技有限公司 | 基于区块链的数据交易方法、数据交易装置及*** |
CN111369236A (zh) * | 2020-02-19 | 2020-07-03 | 中国建设银行股份有限公司 | 一种应用于区块链的数据管理方法和装置 |
KR102302955B1 (ko) * | 2020-04-21 | 2021-09-16 | 주식회사 한컴위드 | 자산의 토큰화를 통해 현물 자산 거래를 가능하게 하는 블록체인 및 클라우드 기반의 자산 거래 플랫폼 서버 및 그 동작 방법 |
CN114008654A (zh) * | 2020-10-09 | 2022-02-01 | 支付宝(杭州)信息技术有限公司 | 管理基于区块链的可信交易服务 |
CN115114658A (zh) * | 2022-06-24 | 2022-09-27 | 深圳大学 | 基于区块链的可验证数据交易方法、装置、设备及介质 |
Non-Patent Citations (1)
Title |
---|
周文斌: "基于云计算SaaS模式的信息安全研究", 《中国优秀硕士学位论文全文数据库信息科技辑 》, no. 03, 15 March 2017 (2017-03-15), pages 138 - 103 * |
Also Published As
Publication number | Publication date |
---|---|
CN116561739B (zh) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107274139B (zh) | 仓单数据管理方法和计算机可读介质 | |
US11687924B2 (en) | Cryptocurrency infrastructure system | |
JP6841911B2 (ja) | 情報保護用のシステム及び方法 | |
US20200193432A1 (en) | Method and system for settling a blockchain transaction | |
US20200127813A1 (en) | Method and system for creating a user identity | |
US20180359092A1 (en) | Method for managing a trusted identity | |
CN105373955B (zh) | 基于多重签名的数字资产处理方法及装置 | |
US6766306B1 (en) | Electronic cash system | |
US20170344983A1 (en) | BIXCoin: A Secure Peer-to-Peer Payment System Based on the Public Payments Ledger | |
CN110612547A (zh) | 一种用于信息保护的***和方法 | |
US20100153273A1 (en) | Systems for performing transactions at a point-of-sale terminal using mutating identifiers | |
CN111160909B (zh) | 区块链供应链交易隐藏静态监管***及方法 | |
CN111049806B (zh) | 一种联合权限控制方法、装置、电子设备和存储介质 | |
CN113283957B (zh) | 一种基于区块链的实体产品交易方法 | |
US20150052066A1 (en) | Reconciling electronic transactions | |
CN110992034A (zh) | 基于区块链的供应链交易隐私保护***、方法及相关设备 | |
CN111079190A (zh) | 区块链供应链交易隐藏动态监管***及方法 | |
KR100468031B1 (ko) | 자기앞 전자수표 발행 및 결제방법 | |
CN111539719B (zh) | 基于盲签名的可审计混币服务方法及***模型 | |
CN116561739B (zh) | 数据交易方法以及装置、电子设备、存储介质 | |
WO2021060340A1 (ja) | 取引情報処理システム | |
CN111062833A (zh) | 一种合同数据的签名认证方法及相关装置 | |
US20230419285A1 (en) | NFT Enforcement Control System | |
US20240249289A1 (en) | System and Method for Securing a Non-Fungible Digital Asset | |
US20240127233A1 (en) | Blockchain locking mechanism using paper share certificate |
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 |