具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本发明及其实施例,并非用于限定所指示的装置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。
并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本发明中的具体含义。
此外,术语“安装”、“设置”、“设有”、“连接”、“相连”、“套接”应做广义理解。例如,可以是固定连接,可拆卸连接,或整体式构造;可以是机械连接,或电连接;可以是直接相连,或者是通过中间媒介间接相连,又或者是两个装置、元件或组成部分之间内部的连通。对于本领域普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
根据本发明实施例,提供了一种隐私数据交易方法,如图1所示,该方法包括如下的步骤S100至步骤S108:
步骤S100、确认交易双方的交易关系;
具体的,如图2所示,确认交易双方的交易关系包括:
步骤S200、判断交易双方是否签名确定交易金额;
步骤S202、如果是,则根据确定的交易金额建立交易双方的交易关系。
交易双方是指第一交易方(资金提供方、数据接收方)和第二交易方(数据提供方);交易关系是指交易双方具有交易的意向,并通过提交金额、双方签名等方式确认,只有在确认后才建立该交易关系;从而实现交易的可追溯性,而且保证交易双方有意向进行交易时,才会进入下一步动作,为防止交易过程中的故意作恶提供保障。
优选的,判断交易双方是否签名确定交易金额包括:
第二交易方给出数据简单描述,第一交易方根据该描述确定是否出价;
如果是,则第一交易方通过第一终端签名确认金额后,发送给第二交易方;
第二交易方认为合理,通过第二终端签名确认该金额。
优选的,判断交易双方是否签名确定交易金额之后还包括:
如果不是,则交易中止;保证交易正常进行。
步骤S102、转移第一交易方提供的资金至智能合约的目标地址;
交易双方确认交易关系之后,提示第一交易方提交资金,第一交易方通过对第一终端的操作,将资金将转移到第三方智能合约的目标地址中;由第三方代收,可以防止第二交易方收到资金却不发送数据的情况。
在一些实施例中,第二交易方的数据也发送到该目标地址中存储。
步骤S104、通过所述第一交易方的RSA公钥加密第二交易方提供的隐私数据;
目标地址中存储了第一交易方的RSA公钥和加密算法,当收到隐私数据后,通过该RSA公钥结合加密算法,将第二交易方提供的隐私数据进行加密,得到加密数据;为数据传输的安全性提供保障。
步骤S106、将加密得到的加密数据给所述第一交易方核对;
加密得到加密数据后,通过无线网络传输给第一交易方的第一终端上;第一终端收到该数据,通过终端的解密私钥解密该数据,在终端呈现,第一交易方核对解密后的数据是否符合要求,并给终端一个反馈,再由终端反馈至智能合约。在数据安全的前提下,实现加密数据的核对确认,并根据核对结果确定接下来的流程,为防止数据流通中的故意作恶提供保障。
本实施例中,优选的,第一交易方在核对无误或有误后,实施在终端的签名或不签名操作,由此给终端一个反馈。
优选的,如图3所示,将加密得到的加密数据给所述第一交易方核对之后还包括:
步骤S300、如果核对失败,则矿工验证所述隐私数据;
步骤S302、如果验证成功,则接收所述第二交易方发出的所述隐私数据。
智能合约收到核对失败的反馈后,表明可能是第一交易方未收到数据,也可能第二交易方没给数据,也可能第一交易方收到了数据但不承认;此时需要通过矿工验证第二交易方提供证明其拥有原文的零知识证明。以单次哈希签名为例,由第二交易方提取所述隐私数据原文进行N次哈希的结果交由矿工,矿工在此基础上再进行M次哈希,矿工验证最终结果是否与区块链智能合约的目标地址中的预设的校验信息(一共经历过M+N次哈希)一致;如果二者不一致,则说明交易内容已被篡改,验证失败。
如果矿工验证成功,说明第二交易方确实拥有隐私数据,第二交易方再一次传递隐私数据给第一交易方。
在一些实施例中,预设的校验信息可以是椭圆函数编码或哈希编码,其原理就是分别编码M和N次的结果和总共编码(M+N)次的结果是一样的,与具体取值无关,只要总和一定即可。如此,数据提供方可以在不泄露原始数据的情况下,证明前后提供的数据是一致的。
优选的,如图4所示,如果核对失败,则矿工验证所述隐私数据之后还包括:
步骤S400、如果验证失败,则从所述目标地址退回资金给所述第一交易方;
步骤S402、交易终止。
如果矿工验证失败,说明第二交易方没有给数据,第一交易方的资金退回;交易终止。
优选的,如图5所示,如果验证成功,则接收所述第二交易方发出的所述隐私数据之后还包括:
步骤S500、通过所述第一交易方的RSA公钥加密所述隐私数据;
步骤S502、将加密得到的加密数据给所述第一交易方核对;
步骤S504、如果核对失败,则通过矿工投票选择中间节点直接验证所述加密数据;
此时密文等于已经公开,对第一、第二交易方并没有经济上的好处;
步骤S506、根据验证结果执行资金转移操作,并由矿工节点直接移交密文给第一交易方,完成交易。
由矿工执行步骤S504、S506,实现了排除第二交易方的作恶动机,因为资金已经确认,如果要反悔交易应该在数据传递之前反悔;也排除了第一交易方的作恶动机,因为资金会被强制转移,否则如果数据通过矿工中间节点泄露,对第一交易方的采购价值有折损。除非第二交易方报复性公开数据,但这也应该是交易完成后公开,并不影响交易本身。实现了交易双方再加上矿工可以采取零知识证明的框架下,交易双方都没有作恶动机,因为一旦有一方作弊,矿工介入进行证明,结果资金会强制转移或退回,保证正常进行。
如果核对成功,则执行步骤S108;完成交易。
步骤S108、如果核对成功,则从所述目标地址转移资金给所述第二交易方。
智能合约收到核对成功的反馈后,表明第一交易方已经向智能合约确认数据无误,交易成立;智能合约搜索到相应的目标地址,将目标地址中的资金转给第二交易方;完成数据的交易,有效防止了数据泄露,并一定程度防止交易双方故意作恶的情况,进而使受保护情况下的数据流通。
本实施例中,核对采用签名的方式;即第一交易方向智能合约签名确认数据无误,交易成立。
优选的,如图6所示,如果核对成功,则从所述目标地址转移资金给所述第二交易方之后还包括:
步骤S600、通过所述第一交易方的RSA私钥加密所述隐私数据;
步骤S602、将加密后得到的密文上传至云端存储;
步骤S604、矿工验证云端的数据编码结果和隐私数据的预设校验信息是否一致;
步骤S606、如果不一致,则通过所述第二交易方补传数据。
交易完成之后,第一交易方可以将隐私数据通过加密后,上传至云端存储;保证第一终端的空间充足。上传后,需要通过对云端数据的编码结果(椭圆函数编码或哈希编码)和预设的校验信息的比对,验证数据的有效性、安全性,在数据被篡改发生变化时,通过第二交易方补传数据给第一交易方。保证第二交易方的权益。
从以上的描述中,可以看出,本发明实现了如下技术效果:
在本申请实施例中,采用交易双方确认并核对的方式,通过确认交易双方的交易关系,转移第一交易方提供的资金至智能合约的目标地址;通过所述第一交易方的RSA公钥加密第二交易方提供的隐私数据;将加密得到的加密数据给所述第一交易方核对;如果核对成功,则从所述目标地址转移资金给所述第二交易方;实现交易关系的确认,及交易中数据的加密并核对,达到了消除数据泄露隐患和一定程度防止双方故意作恶的目的,从而实现了受保护情况下的数据流通的技术效果,进而解决了由于在数据交易过程中仍然存在数据泄露的情况,且无法防止交易双方故意作恶的情况,造成的受保护情况下的数据流通不易的的技术问题。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本发明实施例,还提供了一种用于实施上述隐私数据交易方法的装置,如图7所示,该装置包括:
确认单元10,用于确认交易双方的交易关系;
具体的,确认交易双方的交易关系包括:
判断交易双方是否签名确定交易金额;
如果是,则根据确定的交易金额建立交易双方的交易关系。
交易双方是指第一交易方(资金提供方、数据接收方)和第二交易方(数据提供方);交易关系是指交易双方具有交易的意向,并通过提交金额、双方签名等方式确认,只有在确认后才建立该交易关系;从而实现交易的可追溯性,而且保证交易双方有意向进行交易时,才会进入下一步动作,为防止交易过程中的故意作恶提供保障。
优选的,判断交易双方是否签名确定交易金额包括:
第二交易方给出数据简单描述,第一交易方根据该描述确定是否出价;
如果是,则第一交易方通过第一终端签名确认金额后,发送给第二交易方;
第二交易方认为合理,通过第二终端签名确认该金额。
优选的,判断交易双方是否签名确定交易金额之后还包括:
如果不是,则交易中止;保证交易正常进行。
第一转移单元20,用于转移第一交易方提供的资金至智能合约的目标地址;
交易双方确认交易关系之后,提示第一交易方提交资金,第一交易方通过对第一终端的操作,将资金将转移到第三方智能合约的目标地址中;由第三方代收,可以防止第二交易方收到资金却不发送数据的情况。
在一些实施例中,第二交易方的数据也发送到该目标地址中存储。
加密单元30,用于通过所述第一交易方的RSA公钥加密第二交易方提供的隐私数据;
目标地址中存储了第一交易方的RSA公钥和加密算法,当收到隐私数据后,通过该RSA公钥结合加密算法,将第二交易方提供的隐私数据进行加密,得到加密数据;为数据传输的安全性提供保障。
核对单元40,用于将加密得到的加密数据给所述第一交易方核对;
加密得到加密数据后,通过无线网络传输给第一交易方的第一终端上;第一终端收到该数据,通过终端的解密私钥解密该数据,在终端呈现,第一交易方核对解密后的数据是否符合要求,并给终端一个反馈,再由终端反馈至智能合约。在数据安全的前提下,实现加密数据的核对确认,并根据核对结果确定接下来的流程,为防止数据流通中的故意作恶提供保障。
本实施例中,优选的,第一交易方在核对无误或有误后,实施在终端的签名或不签名操作,由此给终端一个反馈。
优选的,将加密得到的加密数据给所述第一交易方核对之后还包括:
如果核对失败,则矿工验证所述隐私数据;
如果验证成功,则接收所述第二交易方发出的所述隐私数据。
智能合约收到核对失败的反馈后,表明可能是第一交易方未收到数据,也可能第二交易方没给数据,也可能第一交易方收到了数据但不承认;此时需要通过矿工验证第二交易方提供证明其拥有原文的零知识证明。以单次哈希签名为例,由第二交易方提取所述隐私数据原文进行N次哈希的结果交由矿工,矿工在此基础上再进行M次哈希,矿工验证最终结果是否与区块链智能合约的目标地址中的预设的校验信息(一共经历过M+N次哈希)一致;如果二者不一致,则说明交易内容已被篡改,验证失败。
如果矿工验证成功,说明第二交易方确实拥有隐私数据,第二交易方再一次传递隐私数据给第一交易方。
在一些实施例中,预设的校验信息可以是椭圆函数编码或哈希编码,其原理就是分别编码M和N次的结果和总共编码(M+N)次的结果是一样的,与具体取值无关,只要总和一定即可。如此,数据提供方可以在不泄露原始数据的情况下,证明前后提供的数据是一致的。
优选的,如果核对失败,则矿工验证所述隐私数据之后还包括:
如果验证失败,则从所述目标地址退回资金给所述第一交易方;
交易终止。
如果矿工验证失败,说明第二交易方没有给数据,第一交易方的资金退回;交易终止。
优选的,如果验证成功,则接收所述第二交易方发出的所述隐私数据之后还包括:
通过所述第一交易方的RSA公钥加密所述隐私数据;
将加密得到的加密数据给所述第一交易方核对;
如果核对失败,则通过矿工投票选择中间节点直接验证所述加密数据,此时密文等于已经公开,对第一、第二交易方并没有经济上的好处;
根据验证结果执行资金转移操作,并由矿工节点直接移交密文给第一交易方,完成交易。
由矿工进行验证并根据验证结果执行资金转移操作,实现了排除第二交易方的作恶动机,因为资金已经确认,如果要反悔交易应该在数据传递之前反悔;也排除了第一交易方的作恶动机,因为资金会被强制转移,否则如果数据通过矿工中间节点泄露,对第一交易方的采购价值有折损。除非第二交易方报复性公开数据,但这也应该是交易完成后公开,并不影响交易本身。实现了交易双方再加上矿工可以采取零知识证明的框架下,交易双方都没有作恶动机,因为一旦有一方作弊,矿工介入进行证明,结果资金会强制转移或退回,保证正常进行。
如果核对成功,则执行第二转移单元50的内容;完成交易。
第二转移单元50,用于如果核对成功,则从所述目标地址转移资金给所述第二交易方。
智能合约收到核对成功的反馈后,表明第一交易方已经向智能合约确认数据无误,交易成立;智能合约搜索到相应的目标地址,将目标地址中的资金转给第二交易方;完成数据的交易,有效防止了数据泄露,并一定程度防止交易双方故意作恶的情况,进而使受保护情况下的数据流通。
本实施例中,核对采用签名的方式;即第一交易方向智能合约签名确认数据无误,交易成立。
优选的,如果核对成功,则从所述目标地址转移资金给所述第二交易方之后还包括:
通过所述第一交易方的RSA私钥加密所述隐私数据;
将加密后得到的密文上传至云端存储;
矿工验证云端的数据编码结果和隐私数据的预设校验信息是否一致;
如果不一致,则通过所述第二交易方补传数据。
交易完成之后,第一交易方可以将隐私数据通过加密后,上传至云端存储;保证第一终端的空间充足。上传后,需要通过比对云端数据的编码结果(椭圆函数编码或哈希编码)和预设的校验信息,验证数据的有效性、安全性,在数据被篡改发生变化时,通过第二交易方补传数据给第一交易方。保证第二交易方的权益。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。