基于代理重加密和智能合约的区块链数据交易系统及方法
技术领域
本发明涉及区块链数据交易技术领域,尤其涉及一种基于代理重加密和智能合约的区块链数据交易系统及方法。
背景技术
随着数字时代的到来,人们可以低成本、多终端、多维度采集各类数据,海量存储于某个系统中,以完成业务目标的存量。在原来的信息孤岛上,绝大部分的数据被闲置,为了充分发挥数据的作用,这些数据源整合后再融合,打破数据孤岛,成为其他外部信息或做决策所需的数据资源,在流通后再次使用,产生更多价值,提升数据使用率。
区块链狭义上是按照时间顺序将数据区块以顺序相连的方式组合成的链式数据结构,以密码学方式保证不可篡改、伪造的分布式去中心化数据库。因此,本质上作为数据库技术的区块链和数据本身是完美匹配的,耦合程度相比区块链与其他领域结合高很多。同时区块链的去中心化、匿名性、不可篡改、共识机制等特征恰恰完美解决了数据流通的确权、定价、存证、信用和溯源问题,让数据所有者的利益得到保障。这样将极大的促进数据的大规模合规交易,发挥数据的协同和规模效应,数据经济的爆发式增长才真正到来。
因此,在区块链数据交易过程中,如何解决解决数据交易的安全隐私以及效率问题,以实现数据的经济价值,充分发挥数据的应用价值,是一项亟待解决的问题。
发明内容
有鉴于此,本发明提供了一种基于代理重加密和智能合约的区块链数据交易系统,利用代理重加密技术能够保证交易数据的安全隐私性,利用智能合约能够实现数据交易的高效自动化执行,从而解决了区块链数据交易的安全隐私以及效率问题,实现了数据的经济价值,充分发挥了数据的应用价值。
本发明提供了一种基于代理重加密和智能合约的区块链数据交易系统,包括:数据拥有者终端、数据库系统、区块链系统、数据需求者终端和智能合约模块;其中:
所述数据拥有者终端,用于当数据拥有者产生新的数据时,利用预先生成的第一公钥将数据加密成密文,并计算所述密文的哈希值,将所述密文上传到所述数据库系统;
所述数据库系统,用于将存储所述密文的位置索引信息返回给所述数据拥有者终端;
所述数据拥有者终端,还用于将所述密文的哈希值和密文的位置索引信息上传至所述区块链系统;
所述智能合约模块,用于在所述数据需求者终端发起数据交易时,触发交易请求,并将所述交易请求发送至所述数据拥有者终端;
所述数据拥有者终端,还用于基于所述交易请求从所述区块链系统获取所述密文的位置索引信息;
所述数据拥有者终端,还用于生成代理重加密算法的转换密钥,并将所述密文的位置索引信息和转换密钥发送至所述智能合约模块;
所述智能合约模块,还用于利用所述密文的位置索引信息向所述数据库系统发出请求;
所述数据库系统,还用于基于所述智能合约模块发出的请求将相应的密文传送至所述智能合约模块;
所述智能合约模块,还用于利用转换密钥,将所述密文转成成所述数据需求者终端预先生成的第二公钥加密的密文;
所述数据需求者终端,还用于利用预先生成的第二私钥获取所述密文的明文。
优选地,所述数据拥有者终端,还用于生成第一公钥和第一私钥。
优选地,所述数据需求者终端,还用于生成第二公钥和第二私钥。
优选地,所述智能合约模块,还用于完成交易金融从所述数据需求者终端到所述数据拥有者终端的交易。
一种基于代理重加密和智能合约的区块链数据交易方法,应用于基于代理重加密和智能合约的区块链数据交易系统,所述基于代理重加密和智能合约的区块链数据交易系统包括:数据拥有者终端、数据库系统、区块链系统、数据需求者终端和智能合约模块;所述方法包括:
当数据拥有者产生新的数据时,所述数据拥有者终端利用预先生成的第一公钥将数据加密成密文,并计算所述密文的哈希值,将所述密文上传到所述数据库系统;
所述数据库系统将存储所述密文的位置索引信息返回给所述数据拥有者终端;
数据拥有者终端将所述密文的哈希值和密文的位置索引信息上传至所述区块链系统;
智能合约模块在所述数据需求者终端发起数据交易时,触发交易请求,并将所述交易请求发送至所述数据拥有者终端;
数据拥有者终端基于所述交易请求从所述区块链系统获取所述密文的位置索引信息;
数据拥有者终端生成代理重加密算法的转换密钥,并将所述密文的位置索引信息和转换密钥发送至所述智能合约模块;
智能合约模块利用所述密文的位置索引信息向所述数据库系统发出请求;
所述数据库系统基于所述智能合约模块发出的请求将相应的密文传送至所述智能合约模块;
智能合约模块利用转换密钥,将所述密文转成成所述数据需求者终端预先生成的第二公钥加密的密文;
数据需求者终端利用预先生成的第二私钥获取所述密文的明文。
优选地,所述方法还包括:
所述数据拥有者终端生成第一公钥和第一私钥。
优选地,所述方法还包括:
所述数据需求者终端生成第二公钥和第二私钥。
优选地,所述方法还包括:
所述智能合约模块完成交易金融从所述数据需求者终端到所述数据拥有者终端的交易。
综上所述,本发明公开了一种基于代理重加密和智能合约的区块链数据交易系统,包括:数据拥有者终端、数据库系统、区块链系统、数据需求者终端和智能合约模块;其中:数据拥有者终端,用于当数据拥有者产生新的数据时,利用预先生成的第一公钥将数据加密成密文,并计算密文的哈希值,将所述密文上传到所述数据库系统;数据库系统,用于将存储密文的位置索引信息返回给数据拥有者终端;数据拥有者终端,还用于将密文的哈希值和密文的位置索引信息上传至区块链系统;智能合约模块,用于在数据需求者终端发起数据交易时,触发交易请求,并将交易请求发送至数据拥有者终端;数据拥有者终端,还用于基于交易请求从区块链系统获取密文的位置索引信息;数据拥有者终端,还用于生成代理重加密算法的转换密钥,并将密文的位置索引信息和转换密钥发送至智能合约模块;智能合约模块,还用于利用密文的位置索引信息向数据库系统发出请求;数据库系统,还用于基于智能合约模块发出的请求将相应的密文传送至智能合约模块;智能合约模块,还用于利用转换密钥,将密文转成成数据需求者终端预先生成的第二公钥加密的密文;数据需求者终端,还用于利用预先生成的第二私钥获取密文的明文。本发明利用代理重加密技术能够保证交易数据的安全隐私性,利用智能合约能够实现数据交易的高效自动化执行,从而解决了区块链数据交易的安全隐私以及效率问题,实现了数据的经济价值,充分发挥了数据的应用价值。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明公开的一种基于代理重加密和智能合约的区块链数据交易系统实施例1的结构示意图;
图2为本发明公开的一种基于代理重加密和智能合约的区块链数据交易系统实施例2的结构示意图;
图3为本发明公开的一种基于代理重加密和智能合约的区块链数据交易方法实施例1的方法流程图;
图4为本发明公开的一种基于代理重加密和智能合约的区块链数据交易方法实施例2的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明公开的一种基于代理重加密和智能合约的区块链数据交易系统实施例1的结构示意图,所述系统可以包括:数据拥有者终端101、数据库系统102、区块链系统103、数据需求者终端104和智能合约模块105;其中:
数据拥有者终端101,用于当数据拥有者产生新的数据时,利用预先生成的第一公钥将数据加密成密文,并计算密文的哈希值,将密文上传到数据库系统102;
数据库系统102,用于将存储密文的位置索引信息返回给数据拥有者终端101;
数据拥有者终端101,还用于将密文的哈希值和密文的位置索引信息上传至区块链系统103;
智能合约模块105,用于在数据需求者终端104发起数据交易时,触发交易请求,并将交易请求发送至数据拥有者终端101;
数据拥有者终端101,还用于基于交易请求从区块链系统103获取密文的位置索引信息;
数据拥有者终端101,还用于生成代理重加密算法的转换密钥,并将密文的位置索引信息和转换密钥发送至智能合约模块105;
智能合约模块105,还用于利用密文的位置索引信息向数据库系统102发出请求;
数据库系统102,还用于基于智能合约模块105发出的请求将相应的密文传送至智能合约模块105;
智能合约模块105,还用于利用转换密钥,将密文转成成数据需求者终端104预先生成的第二公钥加密的密文;
数据需求者终端104,还用于利用预先生成的第二私钥获取密文的明文。
上述实施例公开的基于代理重加密和智能合约的区块链数据交易系统的工作原理为:在区块链数据交易过程中,当数据拥有者产生新的数据时,首先利用数据拥有者终端预先生成的公钥skA将产生的新的数据加密成密文,并计算密文的哈希值,将加密后的密文上传至数据库系统;
数据库系统在接收到数据拥有者终端发送的密文后,对密文进行存储,并将存储密文的位置索引信息返回至数据拥有者终端;
数据拥有者终端在接收到密文的位置索引信息后,将计算得到的密文的哈希值和密文的位置索引信息一同上传至区块链系统;
当数据需求者终端想要发起数据交易时,通过智能合约模块触发交易请求,其中,智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议,一旦相关事件触发,节点就会执行这个代码,进而更新总账,目前以太坊是智能合约最常用的平台。智能合约,部署在区块链系统上,充当代理重加密算法中代理人的角色,在交易触发的时间,自动地通过转换密钥将数据拥有者的密文转换成数据需求方的密文,同时完成交易转账;
智能合约模块通知数据拥有者终端参与由数据需求者终端发起的交易中,在数据拥有者终端参与到交易中后,从区块链系统中获取到存储密文的位置索引信息,同时生成代理重加密算法的转换密钥,将获取到的密文的位置索引信息和生成的转换密钥传递给智能合约模块;其中,代理重加密算法是密文间的一种密钥转换机制,在代理重加密中,一个半可信代理人通过代理授权人产生的转换密钥rkA→B把用授权人的公钥pkA加密的密文转化为用被授权人的公钥pkB加密的密文,在这个过程中,代理人得不到数据的明文信息,从而降低了数据泄露风险。目前代理重加密已经有了比较成熟的算法,如ECIES等。智能合约模块利用接收到的密文的位置索引信息向数据库系统发出请求;
数据库系统在接收到智能合约模块发出的请求后,将相应的密文传送给智能合约模块;智能合约模块利用转换没药,将密文转换成数据需求者终端公钥pkB加密的密文,数据需求者终端利用私用skB即可获取所交易密文的明文。
综上所述,在上述实施例中,利用代理重加密技术能够保证交易数据的安全隐私性,利用智能合约能够实现数据交易的高效自动化执行,从而解决了区块链数据交易的安全隐私以及效率问题,实现了数据的经济价值,充分发挥了数据的应用价值。
如图2所示,为本发明公开的一种基于代理重加密和智能合约的区块链数据交易系统实施例2的结构示意图,所述系统可以包括:数据拥有者终端201、数据库系统202、区块链系统203、数据需求者终端204和智能合约模块205;其中:
数据拥有者终端201,用于生成第一公钥和第一私钥;
数据需求者终端204,用于生成第二公钥和第二私钥;
数据拥有者终端201,还用于当数据拥有者产生新的数据时,利用预先生成的第一公钥将数据加密成密文,并计算密文的哈希值,将密文上传到数据库系统202;
数据库系统202,用于将存储密文的位置索引信息返回给数据拥有者终端201;
数据拥有者终端201,还用于将密文的哈希值和密文的位置索引信息上传至区块链系统203;
智能合约模块205,用于在数据需求者终端204发起数据交易时,触发交易请求,并将交易请求发送至数据拥有者终端201;
数据拥有者终端201,还用于基于交易请求从区块链系统203获取密文的位置索引信息;
数据拥有者终端201,还用于生成代理重加密算法的转换密钥,并将密文的位置索引信息和转换密钥发送至智能合约模块205;
智能合约模块205,还用于利用密文的位置索引信息向数据库系统202发出请求;
数据库系统202,还用于基于智能合约模块205发出的请求将相应的密文传送至智能合约模块205;
智能合约模块205,还用于利用转换密钥,将密文转成成数据需求者终端204预先生成的第二公钥加密的密文;
数据需求者终端204,还用于利用预先生成的第二私钥获取密文的明文;
智能合约模块205,还用于完成交易金融从数据需求者终端204到数据拥有者终端201的交易。
本实施例在上述实施例的基础上,在初始化阶段,系统中的用户首先生成自身的公私钥对,即,数据拥有者终端生成私钥skA和公钥pkA,数据需求者终端同时样生成私钥skB和公钥pkB。其中,私钥由秘密保存,公钥则对外公开。在上述实施例的基础上,还可以进一步通过智能合约模块完成交易金融从数据需求者终端到数据拥有者终端的交易,完成数据交易过程的支付过程。
如图3所示,为本发明公开的一种基于代理重加密和智能合约的区块链数据交易方法实施例1的方法流程图,所述方法应用于基于代理重加密和智能合约的区块链数据交易系统,所述基于代理重加密和智能合约的区块链数据交易系统可以包括:数据拥有者终端、数据库系统、区块链系统、数据需求者终端和智能合约模块;所述方法可以包括以下步骤:
S301、当数据拥有者产生新的数据时,数据拥有者终端利用预先生成的第一公钥将数据加密成密文,并计算密文的哈希值,将密文上传到数据库系统;
S302、数据库系统将存储密文的位置索引信息返回给数据拥有者终端;
S303、数据拥有者终端将密文的哈希值和密文的位置索引信息上传至区块链系统;
S304、智能合约模块在数据需求者终端发起数据交易时,触发交易请求,并将交易请求发送至数据拥有者终端;
S305、数据拥有者终端基于交易请求从区块链系统获取密文的位置索引信息;
S306、数据拥有者终端生成代理重加密算法的转换密钥,并将密文的位置索引信息和转换密钥发送至智能合约模块;
S307、智能合约模块利用密文的位置索引信息向数据库系统发出请求;
S308、数据库系统基于智能合约模块发出的请求将相应的密文传送至智能合约模块;
S309、智能合约模块利用转换密钥,将密文转成成数据需求者终端预先生成的第二公钥加密的密文;
S310、数据需求者终端利用预先生成的第二私钥获取密文的明文。
上述实施例的工作过程为:在区块链数据交易过程中,当数据拥有者产生新的数据时,首先利用数据拥有者终端预先生成的公钥skA将产生的新的数据加密成密文,并计算密文的哈希值,将加密后的密文上传至数据库系统;
数据库系统在接收到数据拥有者终端发送的密文后,对密文进行存储,并将存储密文的位置索引信息返回至数据拥有者终端;
数据拥有者终端在接收到密文的位置索引信息后,将计算得到的密文的哈希值和密文的位置索引信息一同上传至区块链系统;
当数据需求者终端想要发起数据交易时,通过智能合约模块触发交易请求,其中,智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议,一旦相关事件触发,节点就会执行这个代码,进而更新总账,目前以太坊是智能合约最常用的平台。智能合约,部署在区块链系统上,充当代理重加密算法中代理人的角色,在交易触发的时间,自动地通过转换密钥将数据拥有者的密文转换成数据需求方的密文,同时完成交易转账;
智能合约模块通知数据拥有者终端参与由数据需求者终端发起的交易中,在数据拥有者终端参与到交易中后,从区块链系统中获取到存储密文的位置索引信息,同时生成代理重加密算法的转换密钥,将获取到的密文的位置索引信息和生成的转换密钥传递给智能合约模块;其中,代理重加密算法是密文间的一种密钥转换机制,在代理重加密中,一个半可信代理人通过代理授权人产生的转换密钥rkA→B把用授权人的公钥pkA加密的密文转化为用被授权人的公钥pkB加密的密文,在这个过程中,代理人得不到数据的明文信息,从而降低了数据泄露风险。目前代理重加密已经有了比较成熟的算法,如ECIES等。智能合约模块利用接收到的密文的位置索引信息向数据库系统发出请求;
数据库系统在接收到智能合约模块发出的请求后,将相应的密文传送给智能合约模块;智能合约模块利用转换没药,将密文转换成数据需求者终端公钥pkB加密的密文,数据需求者终端利用私用skB即可获取所交易密文的明文。
综上所述,在上述实施例中,利用代理重加密技术能够保证交易数据的安全隐私性,利用智能合约能够实现数据交易的高效自动化执行,从而解决了区块链数据交易的安全隐私以及效率问题,实现了数据的经济价值,充分发挥了数据的应用价值。
如图4所示,为本发明公开的一种基于代理重加密和智能合约的区块链数据交易方法实施例2的方法流程图,所述方法应用于基于代理重加密和智能合约的区块链数据交易系统,所述基于代理重加密和智能合约的区块链数据交易系统可以包括:数据拥有者终端、数据库系统、区块链系统、数据需求者终端和智能合约模块;所述方法可以包括以下步骤:
S401、数据拥有者终端生成第一公钥和第一私钥;
S402、数据需求者终端生成第二公钥和第二私钥;
S403、当数据拥有者产生新的数据时,所述数据拥有者终端利用预先生成的第一公钥将数据加密成密文,并计算所述密文的哈希值,将所述密文上传到所述数据库系统;
S404、数据库系统将存储密文的位置索引信息返回给数据拥有者终端;
S405、数据拥有者终端将密文的哈希值和密文的位置索引信息上传至区块链系统;
S406、智能合约模块在数据需求者终端发起数据交易时,触发交易请求,并将交易请求发送至数据拥有者终端;
S407、数据拥有者终端基于交易请求从区块链系统获取密文的位置索引信息;
S408、数据拥有者终端生成代理重加密算法的转换密钥,并将密文的位置索引信息和转换密钥发送至智能合约模块;
S409、智能合约模块利用密文的位置索引信息向数据库系统发出请求;
S410、数据库系统基于智能合约模块发出的请求将相应的密文传送至智能合约模块;
S411、智能合约模块利用转换密钥,将密文转成成数据需求者终端预先生成的第二公钥加密的密文;
S412、数据需求者终端利用预先生成的第二私钥获取密文的明文;
S413、智能合约模块完成交易金融从数据需求者终端到所述数据拥有者终端的交易。
本实施例在上述实施例的基础上,在初始化阶段,系统中的用户首先生成自身的公私钥对,即,数据拥有者终端生成私钥skA和公钥pkA,数据需求者终端同时样生成私钥skB和公钥pkB。其中,私钥由秘密保存,公钥则对外公开。在上述实施例的基础上,还可以进一步通过智能合约模块完成交易金融从数据需求者终端到数据拥有者终端的交易,完成数据交易过程的支付过程。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。