数据交易方法及装置、计算设备、存储介质与流程

文档序号:17188080发布日期:2019-03-22 21:36阅读:210来源:国知局
数据交易方法及装置、计算设备、存储介质与流程

本发明实施例涉及计算机技术领域,尤其涉及一种数据交易方法及装置、计算设备、存储介质。



背景技术:

随着互联网的发展,网上交易盛行,互联网交易成为越来越多的人首选方式。互联网交易为人们的生活提供了巨大的便利,尤其是数据交易。

目前,在整个交易过程中,由于交易双方无法建立信任关系,需要中心化的服务平台转移交易数据,并且通常在交易完成后,由中心化的服务平台进行转账。

然而,采用中心化的服务平台进行数据交易,难以保证数据交易的安全性。



技术实现要素:

本发明实施例解决的问题是如何提高数据交易的安全性。

为解决上述技术问题,本发明实施例提供一种数据交易方法,包括:当检测到调用智能合约的支付操作时,将交易金锁定在所述智能合约中;当检测到调用所述智能合约的确认操作时,获取重加密密钥并对所述重加密密钥进行验证;在所述验证通过后,将所述交易金转至数据发出者的钱包地址并通知数据接收者获取重加密数据;其中所述智能合约通过填充智能合约模板生成,所述智能合约模板包括:交易信息参数和重加密参数;以及所述重加密数据为利用所述重加密密钥对所述数据发出者的密文数据进行重加密得到,所述密文数据由所述数据发出者对交易数据进行加密得到,所述重加密密钥由所述数据发出者利用所述数据发出者的私钥和所述数据接收者的公钥生成。

可选的,所述交易信息参数包括:所述数据接收者的公钥、所述数据发出者的公钥、所述数据发出者的钱包地址、所述数据发出者的密文数据存储地址和所述交易所需交易金的额度。

可选的,所述通知数据接收者获取重加密数据包括:通知所述数据接收者获取所述智能合约中的所述数据发出者的密文数据存储地址和所述重加密密钥,使得所述数据接收者利用所述密文数据存储地址下载所述密文数据,并利用获取的所述重加密密钥对所述密文数据进行重加密,得到所述重加密数据。

可选的,所述数据发出者的密文数据存储在数据交易平台。

可选的,所述交易信息参数包括:所述数据接收者的公钥、所述数据发出者的公钥、所述数据发出者的密文数据、所述数据发出者的钱包地址和所述交易所需交易金的额度。

可选的,所述通知数据接收者获取重加密数据包括:所述智能合约利用所述重加密密钥对所述数据发出者的密文数据进行重加密,得到所述重加密数据,并将所述重加密数据保存至所述智能合约中;通知所述数据接收者获取所述智能合约中的所述重加密数据。

可选的,所述智能合约为将所述数据接收者的购买数据请求中包含的所述交易信息参数的值,填充至所述智能合约模板后生成。

可选的,在所述检测到调用智能合约的支付操作时,还包括:校验调用所述智能合约的调用者为所述数据接收者。

可选的,在所述检测到调用智能合约的支付操作时,还包括:校验所述交易金的额度为所述交易所需交易金的额度。

可选的,在所述检测到调用所述智能合约的确认操作时,还包括:校验调用所述智能合约的调用者为所述数据发出者。

可选的,所述对所述重加密密钥进行验证,包括:获取所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数;拼接所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数,得到拼接值;对所述拼接值进行哈希计算,得到所述拼接值的哈希值;校验所述拼接值的哈希值为所述重加密密钥的哈希值。

可选的,在获取所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数之前,还包括:验证所述重加密密钥的总长度为预设长度值。

可选的,所述智能合约由数据交易平台基于所述智能合约模板生成,并部署至区块链上。

本发明实施例还提供了一种数据交易装置,包括:第一存储单元,被配置为存储交易信息参数;第二存储单元,被配置为存储重加密参数;支付操作单元,包括:支付操作子单元,被配置为当检测到调用智能合约的支付操作时,将交易金锁定在所述智能合约中;确认操作单元,包括:确认操作处理子单元,被配置为当检测到调用所述智能合约的确认操作时,获取重加密密钥并对所述重加密密钥进行验证;交易金转移子单元,被配置为在所述确认操作处理子单元验证通过时,将所述交易金转至数据发出者的钱包地址;通知子单元,被配置为在所述确认操作处理子单元验证通过时,通知数据接收者获取重加密数据;其中所述智能合约为通过填充智能合约模板生成,所述智能合约模板包括所述交易信息参数和所述重加密参数;以及所述重加密数据为利用所述重加密密钥对所述数据发出者的密文数据进行重加密得到,所述密文数据由所述数据发出者对交易数据进行加密得到,所述重加密密钥由所述数据发出者利用自身的私钥和所述数据接收者的公钥生成。

可选的,所述交易信息参数包括:所述数据接收者的公钥、所述数据发出者的公钥、所述数据发出者的钱包地址、所述数据发出者的密文数据存储地址和所述交易所需交易金的额度。

可选的,所述通知子单元包括:第一通知模块,被配置为通知所述数据接收者获取所述智能合约中的所述数据发出者的密文数据存储地址和所述重加密密钥,使得所述数据接收者利用所述密文数据存储地址下载所述密文数据,并利用获取的所述重加密密钥对所述密文数据进行重加密,得到所述重加密数据。

可选的,所述数据发出者的密文数据存储在数据交易平台。

可选的,所述交易信息参数包括:所述数据接收者的公钥、所述数据发出者的公钥、所述数据发出者的密文数据、所述数据发出者的钱包地址和所述交易所需交易金的额度。

可选的,所述通知子单元包括:重加密模块,被配置为所述智能合约利用所述重加密密钥对所述数据发出者的密文数据进行重加密,得到所述重加密数据,并将所述重加密数据保存至所述智能合约中;第二通知模块,被配置为通知所述数据接收者获取所述智能合约中的所述重加密数据。

可选的,所述智能合约为将所述数据接收者的购买数据请求中包含的所述交易信息参数的值,填充至智能合约模板后生成。

可选的,所述支付操作单元,还包括:第一校验子单元,被配置为校验调用所述智能合约的调用者为所述数据接收者。

可选的,所述支付操作单元,还包括:第二校验子单元,被配置为校验所述交易金的额度为所述交易所需交易金的额度。

可选的,所述确认操作单元,还包括:第三校验子单元,被配置为校验调用所述智能合约的调用者为所述数据发出者。

可选的,所述确认操作处理子单元,包括:获取模块,被配置为获取所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数;拼接模块,被配置为拼接所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数,得到拼接值;哈希计算模块,被配置为对所述拼接值进行哈希计算,得到所述拼接值的哈希值;校验模块,被配置为校验所述拼接值的哈希值为所述重加密密钥的哈希值。

可选的,所述确认操作处理子单元,还包括:总长度验证模块,被配置为在所述获取模块获取所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数之前,验证所述重加密密钥的总长度为预设长度值。

本发明实施例还提供了一种计算设备,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述任一项所述数据交易方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述任一项所述数据交易方法的步骤。

与现有技术相比,本发明实施例的技术方案具有以下有益效果:

采用本发明实施例中的数据交易方法,当检测到调用智能合约的支付操作时,将交易金锁定在智能合约中,并当检测到调用所述智能合约的确认操作时,获取重加密密钥并对所述重加密密钥进行验证,并在所述验证通过时,将所述交易金转至数据发出者的钱包地址并通知数据接收者获取重加密数据,上述整个交易过程中支付操作及确认操作均基于智能合约自动进行,因此整个交易过程没有任何第三方的介入,故可以提高数据交易的安全性。

进一步地,所述交易信息参数包括:所述数据接收者的公钥、所述数据发出者的公钥、所述数据发出者的钱包地址、所述数据发出者的密文数据存储地址和所述交易所需交易金的额度,通过通知所述数据接收者获取所述智能合约中的所述数据发出者的密文数据存储地址和所述重加密密钥,使得所述数据接收者利用所述密文数据存储地址下载所述密文数据,并利用获取的所述重加密密钥对所述密文数据进行重加密,得到所述重加密数据,因而在交易过程中并不涉及任何形式的交易数据的传输,所述数据接收者通过上述数据交易过程可以得到所述数据发出者的密文数据存储地址,因而可以提高数据交易的安全性,此外,还可以节约数据交易系统的传输资源。

进一步地,所述交易信息参数包括:所述数据接收者的公钥、所述数据发出者的公钥、所述数据发出者密文数据、所述数据发出者的钱包地址和所述交易所需交易金的额度,这样,当获取到输入的重加密参数对应的重加密密钥及调用所述智能合约的确认操作时,获取重加密密钥并对所述重加密密钥进行验证,在所述验证通过时,利用所述重加密密钥对数据发出者的密文数据进行重加密,得到重加密数据,将所述重加密数据保存至所述智能合约中,并将所述交易金转至所述数据发出者的钱包地址,并通知数据接收者获取所述重加密数据。上述交易过程中支付操作及确认操作均基于智能合约自动进行,因此整个交易过程没有任何第三方的介入,故可以提高数据交易的安全性。此外,由所述智能合约存储密文数据以及对所述密文数据进行重加密,并将得到的重加密数据进行保存,因而对于小数据量的数据,只需通过智能合约的自动执行就能够实现数据的重加密及交易过程,进而可以提高数据交易的效率。

进一步地,所述智能合约为将数据接收方的购买数据需求中包含的所述交易信息参数的值,填充至所述智能合约模板后自动生成,方便快捷,且生成过程无需与外界交互,因此还可以提高数据交易的安全性。

进一步地,在检测到调用所述智能合约的支付操作时,通过校验调用所述智能合约的调用者为所述数据接收者,可以避免假冒的数据接收者调用所述智能合约,因而可以保证数据交易双方为所述智能合约中的所述数据接收者和所述数据发出者,故可以提高数据交易的安全性,也可以避免用户误操作。

进一步地,在检测到调用所述智能合约的支付操作时,通过校验所述交易金的额度为所述交易所需交易金的额度,可以避免所述数据接收者支付的交易金额度与所述交易所需交易金的额度不一致的情况,从而可以保证所述数据接收者得到正确额度的交易金,故可以保证数据交易的财产安全性。

进一步地,在检测到调用所述智能合约的确认操作时,通过校验确认调用所述智能检查的调用者为所述数据发出者,可以避免假冒的数据发出者调用所述智能合约,进而可以保证数据交易双方为所述智能合约中的所述数据接收者和所述数据发出者,故可以提高数据交易的安全性,也可以避免用户误操作。

进一步地,通过校验拼接值的哈希值与重加密密钥的哈希值的一致性,可以确定重加密密钥是否通过验证,从而可以避免使用假冒的重加密密钥进行重加密,进而可以避免重加密密钥被恶意篡改情况下发生交易,因而可以避免交易欺诈,减少交易纠纷,进一步提高数据交易的安全性。

进一步地,由于数据交易平台具有更高的安全等级,因而通过将所述数据发出者的密文数据存储在所述数据交易平台,可以减少所述密文数据泄露的情况发生,故可以进一步提高数据交易的安全性。

附图说明

图1是本发明实施例中一种数据交易方法的流程图;

图2是本发明实施例中一种数据交易方法的流程图;

图3是本发明实施例中一种重加密密钥验证的流程图;

图4是本发明实施例中一种应用场景中的数据交易方法的流程图;

图5是本发明实施例中另一种数据交易方法的流程图;

图6是本发明实施例中另一种应用场景中的数据交易方法的流程图;

图7是本发明实施例中一种数据交易装置的结构示意图。

具体实施方式

如背景技术所述,现有的数据交易方法难以避免交易欺诈,数据交易方法有待优化。

在本发明实施例中,通过智能合约自动进行支付操作和确认操作,可以使得交易过程没有任何第三方介入,并且通过在智能合约中对重加密密钥的验证操作避免交易欺诈,提高数据交易的安全性。

为使本发明实施例的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

图1是本发明实施例中一种数据交易方法的流程图,以下通过具体步骤进行详细说明。

s11,当检测到调用智能合约的支付操作时,将交易金锁定在所述智能合约中。

在具体实施中,所述智能合约可以通过填充智能合约模板生成。所述智能合约模板包括:所述交易信息参数和所述重加密参数。

s12,当检测到调用所述智能合约的确认操作时,获取重加密密钥并对所述重加密密钥进行验证。

s13,在所述验证通过后,将所述交易金转至数据发出者的钱包地址并通知数据接收者获取重加密数据。

在具体实施中,所述重加密数据可以利用所述重加密密钥对所述数据发出者的密文数据进行重加密得到,所述密文数据可以由所述数据发出者对交易数据进行加密得到,所述重加密密钥可以由所述数据发出者利用所述数据发出者的私钥和所述数据接收者的公钥生成。

采用上述实施例所述的数据交易方法,当检测到调用智能合约的支付操作时,将交易金锁定在智能合约中,并当检测到调用所述智能合约的确认操作时,获取重加密密钥并对所述重加密密钥进行验证,并在所述验证通过时,将所述交易金转至数据发出者的钱包地址并通知数据接收者获取重加密数据。上述整个交易过程中支付操作及确认操作均基于智能合约自动进行,因此整个交易过程没有任何第三方的介入,故可以提高数据交易的安全性。

可以理解的是,上述执行流程基于网络环境、用户需求或者数据特点等可以有不同的实现方式。其中,可以采用以下实施例对通用数据进行数据交易和流转。可以理解的是,所述通用数据可以是大数据量的数据,也可以是小数据量的数据,在具体实施中,对数据量的大小不做具体限制。

为使本领域技术人员更好地理解和实现本发明实施例,以下参照附图,通过具体实施例进行详细说明。

图2是本发明实施例中一种数据交易方法的流程图,以下通过具体步骤进行详细说明:

s21,当检测到调用智能合约的支付操作时,将交易金锁定在所述智能合约中。

在具体实施中,智能合约可以通过填充智能合约模板生成,所述智能合约模板可以包括:所述交易信息参数和所述重加密参数。在本发明一实施例中,所述交易信息参数可以包括:数据接收者的公钥、数据发出者的公钥、所述数据发出者的钱包地址、所述数据发出者的密文数据存储地址和所述交易所需交易金的额度。

在具体实施中,所述重加密参数可以包括:重加密密钥。

在具体实施中,智能合约还可以包括进行支付操作的方法(函数)和进行确认的方法(函数),通过调用相应的方法(函数),整个交易过程均可以基于智能合约自动执行。

在具体实施中,填充所述智能合约模板可以是数据发出者、数据接收者,也可以是数据交易平台等第三方平台,在具体实施中,对填充智能合约模板的主体不做具体限制。

在本发明一实施例中,所述智能合约模板可以由数据交易平台进行创建,并将填充后得到的智能合约部署至区块链上。其中,区块链具有去中心化、不可篡改等特性,因而一旦将智能合约发布在区块链中,就不可篡改,而且无法干预智能合约的自动执行,且数据交易双方可以实时查看智能合约的执行情况,因而可以保证数据交易的安全性。在具体实施中,区块链可以是以太坊(eth)、商用分布式设计区块链操作系统(eos)或其他公有链、联盟链或私有链。

在具体实施中,在检测调用智能合约的支付操作时,还可以校验调用所述智能合约的调用者是否为所述数据接收者,进而可以避免假冒的数据接收者调用所述智能合约,从而可以保证数据交易双方为所述智能合约中的所述数据接收者和所述数据发出者,故可以提高数据交易的安全性。

在具体实施中,在检测到调用所述智能合约的支付操作时,还可以校验所述交易金的额度是否为所述交易所需交易金的额度,从而可以避免所述数据接收者支付的交易金额度与所需交易金额度不一致的情况发生,进而可以保证所述数据接收者得到一致额度的交易金,故可以保证数据交易的财产安全性。

s22,当检测到调用所述智能合约的确认操作时,获取重加密密钥并对所述重加密密钥进行验证。

s23,在所述验证通过后,将所述交易金转至数据发出者的钱包地址并通知数据接收者获取所述重加密密钥。

经上述步骤,所述数据接收者可以下载所述数据发出者的密文数据,并利用所述重加密密钥对所述密文数据进行重加密,得到重加密数据。之后,将得到的重加密数据进行解密,即可得到交易数据。

所述数据发出者的密文数据可以由所述数据发出者的公钥对所述交易数据进行加密得到。在具体实施中,数据发出者可以采用预设的一种或多种加密算法对交易数据进行加密以得到密文数据,加密算法可以为椭圆曲线加密算法、数字签名算法等任意预设的非对称的加密算法。

在具体实施中,数据发出者可以将得到密文数据上传至数据交易平台,数据交易平台可以将所述密文数据存储在云存储中,由于所述数据交易平台具有更高的安全等级,因而可以减少所述密文数据泄露的情况发生,故可以提高数据交易的安全性。

在具体实施中,数据接收者可以从数据交易平台中下载密文数据,并可以从智能合约中获取重加密密钥,利用所述重加密密钥对所述密文数据进行加密得到重加密数据,之后,数据接收者可以利用自身的私钥对所述重加密数据进行解密,即可得到交易数据。

在具体实施中,重加密密钥可以由数据发出者利用所述数据发出者的私钥和数据接收者的公钥生成。在具体应用过程中,可以采用具有加密芯片的硬件密钥生成工具在离线状态下生成密钥、具有加密引擎的软件密钥生成工具在离线状态下生成密钥,或者通过软硬件结合的密钥生成工具在离线状态下生成密钥。

在具体实施中,在检测到调用所述智能合约的确认操作时,还可以校验调用所述智能合约的调用者是否为所述数据发出者,从而可以避免假冒的数据发出者调用所述智能合约,进而可以保证数据交易双方为所述智能合约中的所述数据接收者和所述数据发出者,故可以提高数据交易的安全性。

采用上述实施例,交易过程中的支付操作及确认操作均基于智能合约自动进行,并由智能合约对重加密密钥进行验证,因而可以避免交易过程有任何第三方的介入,也可以避免使用假冒的重加密密钥进行交易,故可以提高数据交易的安全性。

在具体实施中,可以采用多种方式对重加密密钥进行验证。例如,可以采用零知识证明的方式对重加密密钥进行验证。参照图3所示的本发明实施例中一种重加密密钥验证的流程图,以下通过具体步骤进行详细说明:

s31,获取所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数。

在具体实施中,可以采用预设的随机数生成器生成重加密密钥的定长随机数。

在具体实施中,定长随机数可以是字符串、数字或者两者组合。

s32,拼接所述数据发出者的公钥、数据接收者的公钥和重加密密钥的定长随机数,得到拼接值。

在具体实施中,可以按照预设的顺序对数据发出者的公钥、数据接收者的公钥和重加密密钥的定长随机数进行拼接。

s33,对所述拼接值进行哈希计算,得到所述拼接值的哈希值。

在具体实施中,可以采用预设的哈希算法对所述拼接值进行哈希计算,得到所述拼接值的哈希值。

s34,校验所述拼接值的哈希值为重加密密钥的哈希值。

在本发明一实施例中,通过对获取的数据发出者的公钥、数据接收者的公钥及重加密密钥的定长随机数进行拼接,再通过哈希计算得到拼接值的哈希值,校验重加密密钥的哈希值是否为拼接值的哈希值,可以得到所述重加密密钥的验证结果。例如,在确定所述重加密密钥的哈希值与所述拼接值的哈希值一致时,确定所述重加密密钥通过验证;在确定所述重加密密钥的哈希值与所述拼接值的哈希值不一致时,确定所述重加密密钥未通过验证。

采用上述实施例,通过对所述重加密密钥进行验证,可以避免假冒的数据发出者调用所述智能合约,因而可以保证数据交易双方为所述智能合约中的所述数据接收者和所述数据发出者,故可以提高数据交易的安全性。

在具体实施中,为进一步提高验证效率,在步骤s31之前还可以包括:验证重加密密钥的总长度是否为预设长度值。例如,在确定所述重加密密钥的总长度与所述预设长度值一致时,可以执行步骤s31;在确定所述重加密密钥的总长度与所述预设长度值不一致时,则可以无需执行步骤s31;在具体实施中,重加密密钥的预设长度值是固定的。

在具体实施中,还可以采用其他的方式对重加密密钥进行验证。例如,可以对重加密密钥的时间戳进行验证,验证生成重加密密钥时的特定时间点是否为预设时间点。又如,可以用数字签名的方式对重加密密钥进行验证,验证摘要是否为预设摘要。

为使本领域技术人员更好地理解和实现本发明实施例,以下通过具体的应用场景进行详细说明。

随着各种传感器的使用,产生大量数据,对所产生的大量数据进行挖掘分析可以创造出意想不到的价值,因而目前存在对各种数据上进行交易的需求。例如,对车辆的行车记录仪记录的路况信息、胎压、维修记录等各种车辆相关信息进行分析,可以开发出更加满足用户需求的车辆。然而,车辆用户与车数据买方直接交易可能会存在侵犯用户隐私的问题,为此,可以采用本发明实施例中的数据交易方法进行数据交易。

以下参照图4,通过具体步骤对本发明实施例通过智能合约进行数据交易的方法进行详细说明。其中,智能合约可以由数据平台利用智能合约模板生成,并部署在区块链中。

s401,数据发出者d发送密文数据encryptd至数据交易平台b。

在具体实施中,数据发出者d可以利用自身的公钥pkd对交易数据plaind进行加密,得到密文数据encryptd。

在具体实施中,数据交易平台b可以将密文数据encryptd存储在云存储中。

s402,数据接收者a向数据交易平台b提出购买数据请求。

s403,数据交易平台b将交易涉及的交易信息参数填充至智能合约模板,生成智能合约。

在具体实施中,交易信息参数可以包括:数据接收者a的公钥、数据发出者d的公钥、所述数据发出者a的钱包地址、所述数据发出者d的密文数据存储地址和所述交易所需交易金的额度。

s404,数据交易平台b部署智能合约至区块链c上。

在具体实施中,区块链c可以是以太坊(eth)、商用分布式设计区块链操作系统(eos)或其他公有链、联盟链或私有链。

通过上述步骤s401~s404,即在接收到数据接收者a的购买数据请求时,数据交易平台b可以基于预先创建的智能合约模板生成智能合约并部署在区块链c中。

s405,数据接收者a调用支付操作。

在具体实施中,数据接收者a可以调用智能合约中的支付操作,通过智能合约向数据发出者d支付交易金。

在具体实施中,智能合约可以校验调用所述智能合约的调用者是否为智能合约模板中的所述数据接收者a,如果二者不一致,则可以中止支付操作,还可以向调用所述智能合约的调用者发出相应的提示信息,从而可以保证数据交易双方为所述智能合约中的所述数据接收者和所述数据发出者,故可以提高数据交易的安全性,也可以避免用户误操作。

在具体实施中,为了提高数据交易安全性及避免误操作,智能合约还可以校验所述交易金的额度是否为智能合约模板中的所述交易所需交易金的额度,若二者不一致,则可以中止支付操作,进而还可以调用所述智能合约的调用者发出相应的提示信息,以提示其重新输入交易金。

s406,区块链c上运行的智能合约将数据接收者a的交易金锁定在智能合约中。

为了保证交易安全,智能合约可以将数据接收者a的交易金锁定在智能合约中。

通过上述步骤s405~s406,数据接收者a只需要输入相应的交易金,智能合约即可自动执行,完成交易支付操作。

s407,数据发出者d向区块链c上运行的智能合约执行调用确认操作并发送重加密密钥rekeyad。

在具体实施中,数据发出者d可以利用自身的私钥skd和数据接收者a的公钥pka生成重加密密钥rekeyad。

在具体实施中,数据发出者d可以从智能合约中获取数据接收者a的公钥pka。

在具体实施中,智能合约可以校验调用所述智能合约的调用者是否为智能合约模板中的所述数据发出者d,如果二者不一致,则可以中止支付操作,此外,还可以向调用所述智能合约的调用者发出相应的提示信息,从而可以保证数据交易双方为所述智能合约中的所述数据接收者和所述数据发出者,故可以提高数据交易的安全性,也可以避免用户误操作。

s408,区块链c上运行的智能合约验证重加密密钥rekeyad。

在具体实施中,智能合约可以利用零知识证明方式对重加密密钥rekeyad进行验证,从而可以避免重加密密钥被恶意篡改情况下发生交易,可以避免交易欺诈,减少交易纠纷,进一步提高数据交易的安全性。

在具体实施中,为提高验证效率,可以先验证重加密密钥rekeyad的总长度是否为预设长度值。如果是,则可以执行后续验证流程;如果否,则将验证结果返回给数据发出者d,并使得数据发出者d重新发送重加密密钥。

在具体实施中,重加密密钥rekeyad可以包括:重加密密钥rekeyad核心部分、定长随机数nonce与哈希值hashad。在本发明一实施例中,hashad=hash(nonce+pka+pkd),其中,定长随机数nonce可以利用预设随机数生成器解析得到。智能合约可以获取数据发出者d的公钥pkd、数据接收者a的公钥pka及重加密密钥rekeyad的定长随机数nonce,对三者进行拼接,得到拼接值,再对拼接值进行哈希计算,得到拼接值的哈希值hashad',验证拼接值的哈希值hashad'是否与哈希值hashad一致。若二者不一致,则说明重加密密钥rekeyad错误,验证结果为验证未通过,可以执行步骤s409;若二者一致,则说明重加密密钥rekeyad正确,验证结果为验证验证通过,可以执行步骤s410。

s409,区块链c上运行的智能合约向数据发出者d发送验证结果,使得数据发出者d重新发送重加密密钥。

s410,区块链c上运行的智能合约转移交易金至数据接收者a的钱包地址。

通过上述步骤s407~s410,数据发出者d只需要发送重加密密钥,智能合约即可自动执行,完成交易确认操作。

s411,数据接收者a从区块链c上运行的智能合约中获取密文数据存储地址。

s412,数据接收者a利用密文数据存储地址,从数据交易平台b下载密文数据encryptd。

s413,数据接收者a从智能合约中获取重加密密钥rekeyad。

s414,数据接收者a进行重加密。

在具体实施中,数据接收者a可以利用重加密密钥rekeyad对密文数据encryptd进行重加密,得到重加密数据encryptad。

s415,数据接收者a进行解密。

在具体实施中,数据接收者a可以利用自身的私钥ska对重加密数据encryptad进行解密,得到交易数据plaind。

采用上述实施例,整个交易过程中支付操作及确认操作均基于智能合约自动进行,并由智能合约对重加密密钥进行验证,因而可以避免交易过程有任何第三方的介入,也可以避免使用错误的重加密密钥进行交易,故可以提高数据交易的安全性。

以上实施例所介绍的数据交易方法中,交易数据进行加密后所形成的密文数据可以存储于任意网络节点中,例如可以在数据交易平台或其所对应的云存储中,也可以分布式存储于多个网络节点中。

在具体实施中,为了提高数据交易效率,对于小数据量的交易数据,还可以采用如下的数据交易方法。

如图5所述,具体可以采用如下步骤实现数据交易:

s51,当检测到调用智能合约的支付操作时,将交易金锁定在所述智能合约中。

在具体实施中,智能合约可以通过填充智能合约模板生成。

在具体实施中,所述交易信息参数可以包括:数据接收者的公钥、数据发出者的公钥、所述数据发出者的钱包地址、所述数据发出者的密文数据存储和所述交易所需交易金的额度。

在具体实施中,所述重加密参数可以包括:重加密密钥。

在具体实施中,智能合约还可以包括进行支付操作的方法(函数)和进行确认的方法(函数),通过调用相应的方法(函数),整个交易过程均可以基于智能合约自动执行。

在具体实施中,填充所述智能合约模板的主体可以是数据发出者、数据接收者,或者是数据交易平台等第三方平台,在具体实施中,对填充智能合约模板的主体不做具体限制。

在具体实施中,所述数据发出者的密文数据由所述数据发出者的公钥对所述交易数据进行加密得到。在具体实施中,数据发出者可以采用预设的一种或多种加密算法对交易数据进行加密以得到密文数据,加密算法可以为椭圆曲线加密算法、数字签名算法等任意预设的非对称的加密算法。

在本发明一实施例中,所述智能合约模板可以由数据交易平台进行创建,并将填充后得到的智能合约部署在区块链中。其中,区块链具有去中心化、不可篡改等特性,因而一旦将智能合约发布在区块链中,就不可篡改,而且无法干预智能合约的自动执行,且数据交易双方可以实时查看智能合约的执行情况,因而可以保证数据交易的安全性。在具体实施中,区块链可以是以太坊(eth)、商用分布式设计区块链操作系统(eos)或其他公有链、联盟链或私有链。

在具体实施中,在检测调用智能合约的支付操作时,还可以校验确认调用所述智能合约的调用者是否为所述数据接收者,进而可以避免错误的数据接收者调用所述智能合约,因而可以保证数据交易双方为所述智能合约中的所述数据接收者和所述数据发出者,故可以提高数据交易的安全性。

在具体实施中,在检测到调用所述智能合约的支付操作时,还可以校验确认所述交易金的额度是否为所述交易的所需交易金额度,进而可以避免所述数据接收者支付的交易金额度与所需交易金额度不一致,从而可以保证所述数据接收者得到正确额度的交易金,故可以保证数据交易的财产安全性。

s52,当检测到调用所述智能合约的确认操作时,获取重加密密钥并对所述重加密密钥进行验证。

s53,在所述验证通过后,所述智能合约利用所述重加密密钥对数据发出者的密文数据进行重加密,得到重加密数据,将所述重加密数据保存至所述智能合约中,并将所述交易金转至所述数据发出者的钱包地址,并通知数据接收者获取所述重加密数据。

之后,所述数据接收者可以从所述智能合约中获取所述重加密数据,并对所述重加密数据进行解密,得到交易数据。

在具体实施中,重加密密钥可以由数据发出者利用自身的私钥和数据接收者的公钥生成。在具体应用过程中,可以采用具有加密芯片的硬件密钥生成工具在离线状态下生成密钥、具有加密引擎的软件密钥生成工具在离线状态下生成密钥,或者通过软硬件结合的密钥生成工具在离线状态下生成密钥。

在具体实施中,在检测到调用所述智能合约的确认操作时,还可以校验调用所述智能检查的调用者是否为所述数据发出者,从而可以避免假冒的数据发出者调用所述智能合约,进而可以保证数据交易双方为所述智能合约中的所述数据接收者和所述数据发出者,故可以提高数据交易的安全性。

在具体实施中,可以采用零知识证明的方式对重加密密钥进行验证,具体实施方式及原理均可参照上述实施例的详细介绍,在此不再赘述。

采用上述实施例,由于支付操作及确认操作均基于智能合约自动进行,因此整个交易过程没有任何第三方的介入,故可以提高数据交易的安全性。此外,由所述智能合约存储密文数据及对所述密文数据进行重加密,并将得到的重加密数据进行保存,因而对于小数据量的数据,只需通过智能合约的自动执行就能够实现数据的重加密及交易过程,进而可以提高数据交易的效率。

为使本领域技术人员更好地理解和实现本发明实施例,以下通过具体的应用场景进行详细说明。

以下参照图6,通过具体步骤对本发明实施例通过智能合约进行数据交易的方法进行详细说明。其中,智能合约可以由数据平台利用智能合约模板生成,并部署在区块链中。

s601,数据接收者a向数据交易平台b提出购买请求。

s602,数据发出者d发送密文数据encryptd至数据交易平台b的智能合约模板中。

s603,数据交易平台b填充智能合约模板生成智能合约。在具体实施中,所述智能合约模板可以包括:交易信息参数和重加密参数。

在具体实施中,所述交易信息参数可以包括:数据接收者a的公钥、数据发出者d的公钥、所述数据发出者a的钱包地址、所述数据发出者d的密文数据和所述交易所需交易金的额度。

在具体实施中,所述重加密参数可以包括重加密密钥和重加密数据。

在具体实施中,所述智能合约模板还可以包括进行支付操作的方法(函数)和进行确认的方法(函数),通过调用相应的方法(函数),整个交易过程均可以基于智能合约自动执行。

s604,数据交易平台b部署智能合约至区块链c上。

在具体实施中,区块链c可以是eth、eos或其他公有链、联盟链或私有链。

通过上述步骤s601~s604,即在接收到数据接收者a的购买数据请求时,数据交易平台b可以基于预先创建的智能合约模板生成智能合约并部署在区块链c中。

s605,数据接收者a调用支付操作。

在具体实施中,数据接收者a可以调用智能合约中的支付操作,向智能合约支付交易金。

在具体实施中,智能合约可以校验调用所述智能合约的调用者是否为智能合约模板中的所述数据接收者a,如果不是,则可以中止支付操作,此外还可以向调用所述智能合约的调用者发出相应的提示信息,从而可以保证数据交易双方为所述智能合约中的所述数据接收者和所述数据发出者,故可以提高数据交易的安全性,也可以避免用户误操作。

在具体实施中,智能合约还可以校验所述交易金的额度是否为智能合约模板中的所述交易所需交易金的额度,若二者不一致,则可以中止支付操作,此外还可以调用所述智能合约的调用者发出相应的提示信息,以提示其重新输入交易金,从而可以提高数据交易安全性及避免误操作。

s606,智能合约将数据接收者a的交易金锁定在区块链c上运行的智能合约中。

为了保证交易安全,智能合约可以将数据接收者a的交易金锁定在智能合约中。

通过上述步骤s605~s606,数据接收者a只需要输入相应的交易金,智能合约即可自动执行,完成交易支付操作。

s607,数据发出者d发送重加密密钥rekeyad,并调用确认操作。

在具体实施中,数据发出者d可以利用自身的私钥skd和数据接收者a的公钥pka生成重加密密钥rekeyad。

在具体实施中,数据发出者d可以从智能合约中获取数据接收者a的公钥pka。

s608,区块链c上运行的智能合约验证重加密密钥rekeyad。

在具体实施中,可以采用零知识证明的方式对重加密密钥进行验证,具体实施方式及原理均可参照上述实施例的详细介绍,在此不再赘述。

在本发发明实施例中,若智能合约验证重加密密钥rekeyad通过,则执行步骤s610。

s610,区块链c上运行的智能合约进行重加密。

在具体实施中,智能合约可以利用重加密密钥rekeyad对密文数据encryptd进行重加密,得到重加密数据encryptad,并保存在所述智能合约中。

s611,区块链c上运行的智能合约转移交易金至数据接收者a的钱包地址。

通过上述步骤s607~s611,数据发出者d只需要发送重加密密钥,智能合约即可自动执行,完成确认操作。

s612,数据接收者a从区块链c上运行的智能合约中获取重加密数据encryptad。

s613,数据接收者a进行解密。

在具体实施中,数据接收者a可以利用自身的私钥ska对重加密数据encryptad进行解密,得到交易数据plaind。

采用上述实施例,交易过程中支付操作及确认操作均基于智能合约自动进行,因此整个交易过程没有任何第三方的介入,故可以提高数据交易的安全性。此外,由所述智能合约存储密文数据以及对所述密文数据进行重加密,并将得到的重加密数据进行保存,因而对于小数据量的数据,只需通过智能合约的自动执行就能够实现数据的重加密及交易过程,进而可以提高数据交易的效率。

为使本领域技术人员更好地理解和实现本发明实施例,以下参照图7对本发明实施例采用的数据交易装置进行相应介绍。

参照图7,本发明实施例提供了一种数据交易的装置70,可以包括:第一存储单元71、第二存储单元72、支付操作单元73、确认操作单元74,其中:

第一存储单元71,可以被配置为存储交易信息参数;

第二存储单元72,可以被配置为存储重加密参数;

支付操作单元73,可以包括:支付操作子单元731,可以被配置为当检测到调用智能合约的支付操作时,将交易金锁定在所述智能合约中;

确认操作单元74,可以包括:确认操作处理子单元741,可以被配置为当检测到调用所述智能合约的确认操作时,获取所述重加密密钥并对所述重加密密钥进行验证;交易金转移子单元742,可以被配置为在所述确认操作处理子单元741确定所述重加密密钥验证通过时,将所述交易金转至数据发出者的钱包地址;通知子单元743,可以被配置为在所述确认操作处理子单元验证通过时,通知数据接收者获取重加密数据。

其中,所述智能合约可以通过填充智能合约模板生成,所述智能合约模板包括所述交易信息参数和所述重加密参数;所述重加密数据可以利用所述重加密密钥对所述数据发出者的密文数据进行重加密得到,所述密文数据可以由所述数据发出者对交易数据进行加密得到,所述重加密密钥可以由数据发出者利用自身的私钥和数据接收者的公钥生成。

采用所述数据交易装置进行交易操作后,所述数据接收者可以获得所述重加密数据,对所述重加密数据进行解密,即可得到交易数据。

由于上述数据交易装置的支付操作及确认操作均基于智能合约自动进行,且智能合约对重加密密钥的验证,进而可以避免交易过程有任何第三方的介入,也可以避免使用错误的重加密密钥进行交易,故可以提高数据交易的安全性。

在具体实施中,所述交易信息参数包括:所述数据接收者的公钥、所述数据发出者的公钥、所述数据发出者的钱包地址、所述数据发出者的密文数据存储地址和所述交易所需交易金的额度。

在本发明一实施例中,所述通知子单元743可以包括第一通知模块(未示出),可以被配置为通知所述数据接收者获取所述智能合约中的所述数据发出者的密文数据存储地址和所述重加密密钥,使得所述数据接收者利用所述密文数据存储地址下载所述密文数据,并利用获取的所述重加密密钥对所述密文数据进行重加密,得到所述重加密数据。

在具体实施中,所述数据发出者的密文数据可以存储在数据交易平台。

在具体实施中,所述交易信息参数包括:所述数据接收者的公钥、所述数据发出者的公钥、所述数据发出者的密文数据、所述数据发出者的钱包地址和所述交易所需交易金的额度。

在本发明一实施例中,所述通知子单元743可以包括:重加密模块(未示出)和第二通知模块(未示出),其中:

所述重加密模块,可以被配置为所述智能合约利用所述重加密密钥对所述数据发出者的密文数据进行重加密,得到所述重加密数据,并将所述重加密数据保存至所述智能合约中;

所述通知模块,可以被配置为通知所述数据接收者获取所述智能合约中的所述重加密数据。

在具体实施中,将所述数据接收者的购买数据请求中包含的所述交易信息参数的值,填充至智能合约模板后,可以生成所述智能合约。

在具体实施中,支付操作单元73,还可以包括:第一校验子单元732和第二校验子单元733,其中:第一校验子单元732,可以被配置为校验确认调用所述智能合约的调用者为所述数据接收者;第二校验子单元733,可以被配置为校验所述交易金的额度为所述交易所需交易金的额度。

可以理解的是,在本发明其他实施中,所述支付操作单元73也可以仅包含所述第一校验子单元732或者仅包含第二校验子单元733。

在具体实施中,确认操作单元74,还可以包括第三校验子单元744,可以被配置为校验调用所述智能合约的调用者为所述数据发出者。

在具体实施中,所述确认操作处理子单元741,可以包括:获取模块(未示出),可以被配置为获取所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数;拼接模块(未示出),可以被配置为拼接所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数,得到拼接值;哈希计算模块(未示出),可以被配置为对所述拼接值进行哈希计算,得到所述拼接值的哈希值;校验模块(未示出),可以被配置为校验所述拼接值的哈希值为所述重加密密钥的哈希值。

在具体实施中,确认操作处理子单元741,还可以包括:总长度验证模块(未示出),被配置为在所述获取模块获取所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数之前,验证所述重加密密钥的总长度为预设长度值。

本发明实施例还提供一种计算设备,包括存储器和处理器,所述存储器上可以存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述任一实施例所述的数据交易方法的步骤,具体可参照上述各实施例,不再赘述。

本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述任一种实施例所述的数据交易方法的步骤,具体可参照上述各实施例,不再赘述。所述计算机存储介质可以包括:rom、ram、磁盘或光盘等。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1