数据交易方法、区块链节点服务器及数据提交终端与流程

文档序号:14481152阅读:185来源:国知局

本发明涉及计算机技术领域,尤其涉及一种数据交易方法、区块链节点服务器及数据提交终端。



背景技术:

在当今互联网高速发展的前提下,大数据也越来越多地得到运用,并深刻影响商家和用户的决策。各种终端产生数据,并将数据提交到服务器,服务器对大量数据进行收集整理并分析,形成大数据价值报告,报告产生一定的收益。

在整个数据交易的过程中,由于交易双方无法建立信任关系,需要第三方服务器作为中介,制定价格和转移数据。这样会导致交易的繁复,且不能保证交易的可靠性。



技术实现要素:

有鉴于此,本发明实施例提供一种数据交易方法、区块链节点服务器及数据提交终端,可实现对数据的去中心化交易,简化流程,并确保交易过程的可靠性。

为了解决上述技术问题,本发明实施例第一方面提供了一种数据交易方法,所述方法包括:

获取数据提交终端提交的智能合约,所述智能合约包括所述数据提交终端指定的目标数据相关信息和所述智能合约的交易触发条件,所述交易触发条件包括交易数据定额;

将所述智能合约记录并发布在区块链中;

接收数据请求终端针对所述智能合约发送的交易请求,所述交易请求包括支付数据量;

在确定所述交易请求满足所述智能合约的交易触发条件的情况下,根据所述目标数据相关信息获取目标数据,并将所述目标数据发送至所述数据请求终端,将所述满足所述交易数据定额的支付数据量转移至数据提交终端。

可选情况下,所述获取数据提交终端提交的智能合约包括:

获取数据提交终端提交的智能合约;

所述智能合约中的目标数据相关信息包括经过所述数据提交终端使用预设的加密信息进行加密后的目标数据;

所述根据所述目标数据相关信息获取目标数据,并将所述目标数据发送至所述数据请求终端包括:

从所述数据提交终端获取预设解密信息,所述预设解密信息用于对所述加密后的目标数据进行解密;

向所述数据请求终端发送加密后的目标数据和所述预设解密信息。

可选情况下,所述获取数据提交终端提交的智能合约包括:

获取数据提交终端提交的智能合约;

所述智能合约中的目标数据相关信息包括所述数据提交终端根据所述目标数据进行单向不可逆函数计算得到的数据特征值;

所述根据所述目标数据相关信息获取目标数据,并将所述目标数据发送至所述数据请求终端包括:

从数据提交终端获取交易数据;

将所述交易数据发送至数据请求终端,所述交易数据被所述数据请求终端进行所述单向不可逆函数计算得到所述交易数据的数据特征值,所述交易数据的数据特征值用于与所述智能合约中的目标数据的数据特征值进行比对,在所述数据特征值一致的情况下确定所述交易数据为所述目标数据。

相应地,本发明实施例第二方面提供了一种区块链节点服务器,所述服务器包括:

智能合约获取模块,用于获取数据提交终端提交的智能合约;

发布模块,用于将所述智能合约记录并发布在区块链中;

交易接收模块,用于接收数据请求终端针对所述智能合约发送的交易请求;

交易处理模块,用于在确定所述交易请求满足所述智能合约的交易触发条件的情况下,根据所述目标数据相关信息获取目标数据,并将所述目标数据发送至所述数据请求终端,将所述满足所述交易数据定额的支付数据量转移至数据提交终端。

相应的,本发明实施例第三方面还提供了一种区块链节点服务器,所述服务器包括:

处理器,用于执行各指令;

存储介质,用于存储多条指令,所述指令适于由所述处理器加载并执行如本发明实施例第一方面提供的任一情况下的数据交易方法。

相应的,本发明实施例第四方面还提供了一种存储介质,所述存储介质中存储有多条指令,所述指令适于由处理器加载并执行如本发明实施例第一方面提供的任一情况下的数据交易方法。

为了解决上述技术问题,本发明实施例第五方面提供了另一种数据交易方法,所述方法包括:

获取目标数据,根据所述目标数据的相关信息和所述智能合约的交易触发条件生成智能合约;

将所述智能合约提交给区块链节点服务器,所述智能合约被区块链节点服务器用于记录并发布在区块链中,所述目标数据的相关信息被所述区块链节点服务器用于获取所述目标数据并在所述区块链节点服务器接收到数据请求终端针对所述智能合约发起的交易请求,且所述交易请求满足所述智能合约的交易触发条件的情况下将所述目标数据发送至所述数据请求终端;

在所述区块链节点服务器接收到数据请求终端针对所述智能合约发起的交易请求,且所述交易请求满足所述智能合约的交易触发条件的情况下,获取所述满足所述交易数据定额的支付数据量,所述交易请求包括满足所述交易数据定额的支付数据量。

可选情况下,所述根据所述目标数据的相关信息和所述智能合约的交易触发条件生成智能合约,包括:

使用预设的加密信息对所述目标数据进行加密;

将加密后的所述目标数据和所述智能合约的交易触发条件结合生成智能合约;

所述将所述智能合约提交给区块链节点服务器之后还包括:

在所述区块链节点服务器接收到数据请求终端针对所述智能合约发起的交易请求,且所述交易请求满足所述智能合约的交易触发条件的情况下,向所述区块链节点服务器提交预设的解密信息,所述解密信息用于解密所述加密后的所述目标数据。

可选情况下,所述根据所述目标数据的相关信息和所述智能合约的交易触发条件生成智能合约,包括:

对目标数据进行单向不可逆函数计算得到所述目标数据的特征值,所述特征值即为所述目标数据的相关信息;

将所述目标数据的特征值和所述智能合约的交易触发条件结合生成智能合约;

所述将所述智能合约提交给区块链节点服务器之后还包括:

在所述区块链节点服务器接收到数据请求终端针对所述智能合约发起的交易请求,且所述交易请求满足所述智能合约的交易触发条件的情况下,向所述区块链节点服务器提交交易数据,所述交易数据被所述数据请求终端进行所述单向不可逆函数计算得到所述交易数据的数据特征值,所述交易数据的数据特征值用于与所述智能合约中的目标数据的数据特征值进行比对,在所述数据特征值一致的情况下确定所述交易数据为所述目标数据。

相应地,本发明实施例第六方面提供了一种数据提交终端,所述数据提交终端包括:

智能合约生成模块,用于获取目标数据,根据所述目标数据的相关信息和所述智能合约的交易触发条件生成智能合约;

智能合约提交模块,用于将所述智能合约提交给区块链节点服务器;

支付数据量获取模块,用于在所述区块链节点服务器接收到数据请求终端针对所述智能合约发起的交易请求,且所述交易请求满足所述智能合约的交易触发条件的情况下,获取所述满足所述交易数据定额的支付数据量,所述交易请求包括满足所述交易数据定额的支付数据量。

相应地,本发明实施例第七方面提供了一种数据提交终端,所述数据提交终端包括:

处理器,用于执行各指令;

存储介质,用于存储多条指令,所述指令适于由所述处理器加载并执行如本发明实施例第五方面提供的任一情况下的数据交易方法。

相应的,本发明实施例第八方面还提供了一种存储介质,所述存储介质中存储有多条指令,所述指令适于由处理器加载并执行如本发明实施例第五方面提供的任一情况下的数据交易方法。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

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

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

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

图4是本发明实施例中一种具体的数据交易过程;

图5是本发明实施例中一种智能合约执行过程;

图6是本发明实施例中的一种区块链节点服务器的结构示意图;

图7是本发明实施例中的一种数据提交终端的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明中的目标数据,可以是终端设备在运行过程中产生的任意真实数据,包括通讯终端产生的通讯数据,定位终端产生的地点相关数据,优选的实施方案中,是一种车辆诊断设备产生的车辆诊断数据。

图1是本发明实施例中的一种数据交易方法的流程示意图,在本实施例中的数据交易方法可以是由区块链节点服务器实施的,在其他可选实施例中也可以由其他节点服务器或类似功能的网络节点实施本发明的数据交易方法,本实施例主要以区块链节点服务器为实施主体举例。如图所示本实施例中的数据交易方法可以包括以下流程:

s101、区块链节点服务器获取数据提交终端提交的智能合约。

具体地,获取数据提交终端提交的智能合约,所述智能合约包括所述数据提交终端指定的目标数据相关信息和所述智能合约的交易触发条件,所述交易触发条件包括交易数据定额。

其中,智能合约是以数字形式定义的承诺(promises),包括合约参与方可以在上面执行这些承诺的协议。一套承诺是指合约参与方同意的权利和义务,这些承诺定义了合约的本质和目的。数字形式意味着合约必须写入计算机可读的代码中。并且合约需要的特定“数字形式”非常依赖于参与方同意使用的协议。

在本发明中,智能合约是由数据提交终端按照规定的格式设定数据采集价格形成的,即合约是由数据提交终端单方面制定的,而数据的请求方如果发起满足某个智能合约触发条件的交易请求,则表示其同意了对应智能合约的条约,并履行了自己的义务。那么智能合约需要保证数据请求终端能获得自己与智能合约对应的权利,即得到与预期一样的数据。由于区块链具有公开性、不可更改性的特点,将数据相关信息封装在智能合约中,并通过区块链进行发布,可以保证数据的真实性和不可更改性。

另外,由于智能合约是在区块链中实现的,那么其过程是去中心化的。没有监督机构监督执行,交易双方又没有建立信任关系,那么交易过程就必须保证不可更改。数据提交终端将交易触发条件封装在智能合约中,数据请求终端针对需要的数据向对应智能合约发起满足交易触发条件的请求,则交易被触发,交易过程自动执行。

在可选的实施例中,由于协议是技术实现,在这个基础上,合约承诺被实现,或者合约承诺实现被记录下来。那么,选择哪个协议取决于上述交易数据定额的表现形式。例如,参与方同意货款以比特币交易,那么选择的协议就会是比特币协议。除此之外,还可以选择合约币、莱特币、凯特币等数字货币作为价值转换形式,相应地需要使用其对应协议用于交易过程。

在可选的实施例中,获取数据提交终端提交的智能合约这一过程可包括以下步骤:获取数据提交终端提交的智能合约,其中智能合约中的目标数据相关信息包括经过数据提交终端使用预设的加密信息进行加密后的目标数据;另外,根据目标数据相关信息获取目标数据,并将所述目标数据发送至所述数据请求终端包括:从数据提交终端获取预设解密信息,预设解密信息用于对加密后的目标数据进行解密;向所述数据请求终端发送所述预设解密信息。

在可选的实施例中,智能合约中的目标数据相关信息包括目标数据本身。将目标数据封装在智能合约中,这个过程包括将目标数据进行加密处理使其成为智能合约的一部分,等待解密信息触发智能合约执行解密过程。相应的解密信息保存在数据提交终端,等待收到交易请求。

在可选的实施例中,获取数据提交终端提交的智能合约还可以包括以下步骤:获取数据提交终端提交的智能合约,其中智能合约中的目标数据相关信息包括数据提交终端根据目标数据进行单向不可逆函数计算得到的数据特征值;另外,根据目标数据相关信息获取目标数据,并将目标数据发送至数据请求终端包括:从数据提交终端获取交易数据;将交易数据发送至数据请求终端,交易数据被数据请求终端进行单向不可逆函数计算得到交易数据的数据特征值,交易数据的数据特征值用于与智能合约中的目标数据的数据特征值进行比对,在数据特征值一致的情况下确定交易数据为目标数据。

在可选的实施例中,智能合约中的目标数据相关信息也包括目标数据经过单向不可逆函数计算后得到的特征值,其中单向不可逆函数是一种对数据进行函数计算后得到唯一结果的函数,且具有不可逆的特性。在可选的实施例中,这种单向不可逆函数包括哈希函数,通过哈希函数计算得到的特征值为一组固定长度的二进制值,由于其单向不可逆的特点,每一组特征值得到对应一组数据后,可保证数据的不可更改性。

获取智能合约后,执行步骤s102。

s102、区块链节点服务器将所述智能合约记录并发布在区块链中。

具体地,该过程包括:将智能合约进行传播;对智能合约达成共识;将达成共识的所述智能合约写入区块链。

在可选的实施例中,将智能合约进行传播的过程包括:区块链节点服务节接收到智能合约后,验证智能合约的有效性,主要是通过解密数字签名验证数据提交终端身份的真实性,用户身份真实,则说明智能合约是有效的,将智能合约记录在当前节点存储池中,通过对等网络传送至相邻节点。

在可选的实施例中,对智能合约达成共识的过程包括:区块链节点服务器搜集当前的待共识智能合约,将所有待共识智能合约组装生成智能合约集合,并对该集合进行hash计算,得到对应hash值;将该集合hash值组装成区块结构,并将该区块结构传送至相邻节点,该区块结构被相邻节点用于获取集合hash值并将该集合hash值与相邻节点的智能合约拷贝对应的拷贝集合hash值进行对比从而得到验证结果,确定需要验证的智能合约集合与邻近节点智能合约集合拷贝的一致性;所有区块链节点接收相邻节点的验证结果,若大多数验证结果都满足一致性,则达成共识。

在可选的实施例中,由于数据交易的实施场景是区块链联盟性质的p2p网络(peer-to-peernetworking,对等网络),所有的区块链节点是平等的,所以当区块链结构与区块链节点智能合约集合进行验证时,如果有验证结果不一致的情况,有可能是节点操作者对其进行了篡改,并不能作为判定结果。所以只要对等网络中的大多数节点通过了验证,就认为区块链节点服务器达成了共识。大多数的定量由区块链联盟进行设定,在可选实施例中可以包括百分比,如90%,95%等,在可选实施例中也可以包括一定数量,如100个等。

将智能合约记录并发布在区块链中后,执行步骤s103。

s103、区块链节点服务器接收数据请求终端针对所述智能合约发送的交易请求,所述交易请求包括支付数据量。

具体地,数据请求终端通过索引的方式检索到需要的数据以及智能合约条款的交易数据定额,即数据定价,然后针对该智能合约发起交易请求。因为交易触发条件里包含交易数据定额,所以交易请求里需要向数据提交终端转移对应的支付数据量,这里的支付数据量即支付金额。

在可选的实施例中,支付数据量所需要对应的虚拟货币,是交易双方在交易前形成的交易环境中已经确定了的,然后数据提交终端将数据的定价写在智能合约中,数据请求终端只需要转移相应的支付数据量,智能合约即可执行交易。虚拟货币包括前文提到的比特币、合约币、莱特币、凯特币等数字货币。

接收到交易请求后,执行步骤s104。

s104、区块链节点服务器在确定所述交易请求满足所述智能合约的交易触发条件的情况下,根据所述目标数据相关信息获取目标数据,并将所述目标数据发送至所述数据请求终端,将所述满足所述交易数据定额的支付数据量转移至数据提交终端。

具体地,因为智能合约是自动触发执行的脚本代码,所以在数据请求终端提交的交易请求满足交易触发条件时,智能合约中封装的事件自动执行。即将数据请求终端需要的数据发送给数据请求终端,同时将满足交易数据定额的支付数据量转移至数据提交终端。

在可选的实施例中,如果智能合约中封装的数据相关信息是目标数据经过单向不可逆函数计算后得到的特征值,那么数据提交终端在收到智能合约执行的信号后,将交易数据发送给数据请求终端,数据请求终端将得到的数据进行同样的单向不可逆函数计算得到一组特征值。将该特征值与智能合约中的特征值进行对比,若相同,则认为受到的交易数据是数据请求终端需要的目标数据。

在可选的实施例中,如果智能合约中封装的数据相关信息是加密的目标数据本身,那么数据提交终端在收到智能合约执行的信号后,将加密的目标数据对应的预设解密信息发送给数据请求终端,数据请求终端根据解密信息触发智能合约,从智能合约中解密析出明文,得到目标数据。

本实施例中的数据交易方法获取数据提交终端提交的智能合约,智能合约中封装了目标数据相关信息和智能合约触发条件;将智能合约记录并发布在区块链中;接收数据请求终端的交易请求;确定交易请求满足智能合约的触发条件,触发合约自动执行,将目标数据发送至数据请求终端,同时将交易支付数据量转移至数据提交终端。在这个过程中,由于区块链的去中心化特点,且拥有不可篡改、不可伪造的特征,智能合约发布在区块链中之后,只要交易被触发,就可以自动执行,简化了流程,且保证了交易的可靠性。

图2是本发明实施例中的另一种数据交易方法的流程示意图,如图所示本实施例中的数据交易方法可以包括以下流程:

s201、数据提交终端获取目标数据,根据所述目标数据的相关信息和所述智能合约的交易触发条件生成智能合约。

具体地,目标数据是数据提交终端个人用户在实时行为中产生的真实数据。将目标数据的相关信息和针对智能合约的交易触发条件结合,生成智能合约,用于交易。因此,本技术中涉及的智能合约,是数据提交终端根据交易环境中的规定格式单方面制定的,规定了己方和对方的义务和权利,当对方满足了合约中的义务时,智能合约被触发,交易执行。

在可选的实施例中,目标数据的相关信息和所述智能合约的交易触发条件生成智能合约这一过程具体包括:使用预设的加密信息对目标数据进行加密,然后将加密后的目标数据和智能合约的交易触发条件结合生成智能合约;然后将智能合约提交给区块链节点服务器之后还包括:在区块链节点服务器接收到数据请求终端针对智能合约发起的交易请求,且交易请求满足智能合约的交易触发条件的情况下,向区块链节点服务器提交预设的解密信息,解密信息用于解密加密后的目标数据。

在可选的实施例中,对目标数据进行加密,其中涉及到的加密方式包括对称加密,如des(dataencryptionstandard,数据加密标准),idea(internationaldataencryptionalgorithm,国际数据加密算法);也包括非对称加密,如rsa加密算法(rsaalgorithm),elgamal加密算法等。

在可选的实施例中,目标数据的相关信息和所述智能合约的交易触发条件生成智能合约这一过程具体也可以包括:对目标数据进行单向不可逆函数计算得到目标数据的特征值,其中的特征值即为所述目标数据的相关信息,然后将目标数据的特征值和智能合约的交易触发条件结合生成智能合约;将智能合约提交给区块链节点服务器之后还包括:在区块链节点服务器接收到数据请求终端针对智能合约发起的交易请求,且交易请求满足智能合约的交易触发条件的情况下,向区块链节点服务器提交交易数据,交易数据被数据请求终端进行计算得到交易数据的数据特征值,交易数据的数据特征值用于与智能合约中的目标数据的数据特征值进行比对,在数据特征值一致的情况下确定交易数据为需要的目标数据。

在可选的实施例中,目标数据经过单向不可逆函数计算后得到确定的特征值,由于单向不可逆函数的单向不可逆特点,可保证数据的不可更改性。其中,md2、md4、md5和sha-1等算法都包括单向不可逆函数计算,可根据交易需要进行选择。

在可选的实施例中,目标数据的相关信息也包括目标数据的索引信息,数据提交终端生成目标数据的索引信息,并将索引信息写入与其目标数据对应的智能合约中,一起提交给区块链节点服务器进行存储,以便数据请求终端根据关键字等信息对需要的数据进行索引。

生成智能合约后,执行步骤s202。

s202、数据提交终端将所述智能合约提交给区块链节点服务器。

具体地,将所述智能合约提交给区块链节点服务器,所述智能合约被区块链节点服务器用于记录并发布在区块链中,所述目标数据的相关信息被所述区块链节点服务器用于获取所述目标数据并在所述区块链节点服务器接收到数据请求终端针对所述智能合约发起的交易请求,且所述交易请求满足所述智能合约的交易触发条件的情况下将所述目标数据发送至所述数据请求终端。

其中,智能合约被区块链节点服务器用于记录并发布在区块链中,该过程包括:将智能合约进行传播;对智能合约达成共识;将达成共识的所述智能合约写入区块链。

另外,目标数据的相关信息被所述区块链节点服务器用于获取所述目标数据并在所述区块链节点服务器接收到数据请求终端针对所述智能合约发起的交易请求,这个过程中,获取所述目标数据的过程根据智能合约中封装的数据相关信息决定。数据请求终端针对智能合约发起交易请求的过程包括:数据请求终端通过索引的方式检索到需要的数据以及智能合约条款的价格,然后针对需要该智能合约发起交易请求。因为交易触发条件里包含交易数据定额,所以交易请求里需要向数据提交终端转移对应的支付数据量。

另外,交易请求满足所述智能合约的交易触发条件的情况下将所述目标数据发送至所述数据请求终端,因为智能合约是自动触发执行的脚本代码,所以在数据请求终端提交的交易请求满足交易触发条件时,智能合约中封装的事件自动执行。

在可选的实施例中,将智能合约提交给区块链节点服务器的过程包括:获取验证唯一身份的私钥;使用私钥对所述智能合约进行数据签名;将签名后的所述智能合约提交给区块链节点服务器,所述私钥用于表征所述数据提交终端的合法身份。

在可选的实施例中,如果智能合约中封装的数据相关信息是加密的目标数据本身,那么数据提交终端在收到智能合约执行的信号后,将加密的目标数据对应的预设解密信息发送给数据请求终端,数据请求终端根据解密信息解密,得到目标数据。

在可选的实施例中,如果智能合约中封装的数据相关信息是目标数据经过单向不可逆函数计算后得到的特征值,那么数据提交终端在收到智能合约执行的信号后,将交易数据发送给数据请求终端,数据请求终端将得到的数据进行相同的单向不可逆函数计算,得到一组特征值。将该特征值与智能合约中的特征值进行对比,若相同,则认为受到的交易数据是数据请求终端需要的目标数据。

将所述智能合约提交给区块链节点服务器后,等待执行步骤s203。

s203、数据提交终端获取满足交易数据定额的支付数据量。

具体地,在所述区块链节点服务器接收到数据请求终端针对所述智能合约发起的交易请求,且所述交易请求满足所述智能合约的交易触发条件的情况下,获取所述满足所述交易数据定额的支付数据量,所述交易请求包括满足所述交易数据定额的支付数据量。

在可选的实施例中,支付数据量所需要对应的虚拟货币,是交易双方在交易前形成的交易环境中已经确定了的,然后数据提交终端将数据的定价写在智能合约中,数据请求终端只需要转移相应的支付数据量,智能合约即可执行交易。虚拟货币包括前文提到的比特币、合约币、莱特币、凯特币等数字货币。

本实施例中的数据交易方法获取目标数据,根据所述目标数据的相关信息和所述智能合约的交易触发条件生成智能合约;将智能合约提交给区块链节点服务器;获取满足交易数据定额的支付数据量,该过程省略了交易的中心节点,使得数据提交终端只需要把根据数据和数据定价生成智能合约,然后等待交易自动执行即可,极大地简化了交易流程,又保证了交易的可靠性。

图3是本发明实施例中的另一种数据交易方法的流程示意图,如图所示本实施例中的数据交易方法可以包括以下流程:

s301、数据提交终端获取目标数据,根据所述目标数据的相关信息和所述智能合约的交易触发条件生成智能合约。

在可选的实施例中,数据提交终端需要分配获得一个身份id,用于接收数据交易产生的支付额,或接收交易数据。且对应每个id有一对公钥和私钥,私钥用于数字签名,公钥用于确认用户身份的真实性。

在可选的实施例中,目标数据的相关信息可参见实施例2的步骤s201,这里不再赘述。智能合约的交易触发条件包括交易数据定额。

生成智能合约后,执行步骤s302。

s302、区块链节点服务器获取数据提交终端提交的智能合约。

具体地,数据交易的实施场景是区块链联盟性质的p2p网络,其中所有的区块链节点都是平等的,所以获取提交终端提交的智能合约的区块链节点服务器并不是特定的,而是离数据提交终端最近的。

在可选的实施例中,数据提交终端提交智能合约时,使用唯一私钥对所述智能合约进行数据签名;将签名后的所述智能合约提交给区块链节点服务器,所述私钥用于表征所述数据提交终端的合法身份。

区块链节点服务器接收到智能合约后,执行步骤s303。

s303、区块链节点服务器将所述智能合约记录并发布在区块链中。

具体地,该过程包括:将智能合约进行传播;对智能合约达成共识;将达成共识的所述智能合约写入区块链。

在可选的实施例中,将智能合约进行传播的过程包括:区块链节点服务节接收到智能合约后,验证智能合约的有效性,主要是通过解密数字签名验证数据提交终端身份的真实性,用户身份真实,则说明智能合约是有效的,将智能合约记录在当前节点存储池中,通过对等网络传送至相邻节点。

在可选的实施例中,对智能合约达成共识的过程包括:区块链节点服务器搜集当前的待共识智能合约,将所有待共识智能合约组装生成智能合约集合,并对该集合进行hash计算,得到对应hash值;将该集合hash值组装成区块结构,并将该区块结构传送至相邻节点,该区块结构被相邻节点用于获取集合hash值并将该集合hash值与相邻节点的智能合约拷贝对应的拷贝集合hash值进行对比从而得到验证结果,确定需要验证的智能合约集合与邻近节点智能合约集合拷贝的一致性;所有区块链节点接收相邻节点的验证结果,若大多数验证结果都满足一致性,则达成共识。

在可选的实施例中,由于数据交易的实施场景是区块链联盟性质的p2p网络,所有的区块链节点是平等的,所以当区块链结构与区块链节点智能合约集合进行验证时,如果有验证结果不一致的情况,有可能是节点操作者对其进行了篡改,并不能作为判定结果。所以只要对等网络中的大多数节点通过了验证,就认为区块链节点服务器达成了共识。

将智能合约记录并发布在区块链中后,执行步骤s304。

s304、数据请求终端针对所述智能合约发起交易请求。

具体地,数据请求终端通过索引的方式检索到需要的数据以及智能合约条款的价格,然后针对需要该智能合约发起交易请求。因为交易触发条件里包含交易数据定额,所以交易请求里需要向数据提交终端转移对应的支付数据量。

在可选的实施例中,支付数据量所需要对应的虚拟货币,是交易双方在交易前形成的交易环境中已经确定了的,然后数据提交终端将数据的定价写在智能合约中,数据请求终端只需要转移相应的支付数据量,智能合约即可执行交易。

发起交易请求后,执行步骤s305。

s305、区块链节点服务器确定所述交易请求满足所述智能合约的交易触发条件。

在可选的实施例中,因为智能合约是自动触发执行的脚本代码,类似于if-then语句,所以当数据请求终端提交的交易请求满足交易触发条件时,即满足if中的条件,智能合约中封装的事件将自动执行。

s306、区块链节点服务器根据所述目标数据的相关信息获取目标数据。

在可选的实施例中,如果智能合约中封装的数据相关信息是目标数据经过单向不可逆函数计算后得到的特征值,那么区块链节点服务器需要获取的目标数据就是完整的交易数据,该交易数据在可选的实施例中有可能保存在数据提交终端中,在另一可选的实施例中也可以委托保存于节点服务器中。

在可选的实施例中,如果智能合约中分装的数据相关信息是加密的目标数据本身,那么区块链节点服务器需要获取的目标数据就是加密的目标数据对应的预设解密信息,该解密信息在可选的实施例中有可以保存在数据提交终端中,在另一可选的实施例中也可以委托保存于节点服务器中。

获取目标数据后,执行步骤s306。

s307、区块链节点服务器获取满足交易数据定额的支付数据量。

在可选的实施例中,支付数据量所需要对应的虚拟货币,是交易双方在交易前形成的交易环境中已经确定了的,然后数据提交终端将数据的定价写在智能合约中。数据请求终端发起交易请求时,交易触发条件在可选的实施例中可以规定数据请求终端在接收到交易数据时转移相应支付数据量,也可以在可选的实施例中规定数据请求终端在发起请求时转移相应支付数据量给委托方保管。如果是前者,区块链节点服务器需要从数据请求终端获取支付数据量,如果是后者,区块链节点服务器需要从委托方获取支付数据量。

s308、区块链节点服务器将所述目标数据发送至所述数据请求终端。

在可选的实施例中,区块链获取满足交易数据定额的支付数据量后,将目标数据发送至所述数据请求终端。根据智能合约内容,发送给数据请求终端的可以是完整的交易数据,也可以是针对加密数据的预设解密信息。

在可选的实施例中,如果数据请求终端得到的是交易数据,那么数据请求终端将得到的交易数据进行散列计算得到一组特征值,并将该特征值与智能合约中的特征值进行对比,若相同,则认为收到的交易数据是数据请求终端需要的目标数据。

在可选的实施例中,如果数据请求终端得到的是加密的目标数据对应的预设解密信息,数据请求终端根据解密信息触发智能合约进行解密,得到封装在智能合约中的目标数据。

s309、区块链节点服务器通过智能合约将所述满足所述交易数据定额的支付数据量转移至数据提交终端。

区块链节点服务器已经获得了满足交易数据定额的支付数据量,在智能合约中的事件执行到相应进程时,自动将满足交易数据定额的支付数据量转移给数据提交终端,终端的身份由之前获得的私钥认证。

本实施例中的数据交易方法由数据提交终端根据目标数据的相关信息和数据定价生成智能合约,然后将智能合约提交给区块链节点服务器;区块链节点服务器将智能合约记录并发布在区块链中,使数据请求终端可以检索到对应的智能合约;数据请求终端针对满足需要的智能合约发起交易请求,触发了智能合约的自动执行,智能合约根据本身封装的目标数据相关信息获得目标数据,发送给数据请求终端,然后将对应的支付数据量转移给数据提交方,交易完成。在这个过程中,省略了交易的中心节点,交易双方在没有达成信任的情况下,也可以公平、安全地完成交易过程,极大简化了交易流程,并保证了交易的可靠性。

图4是本发明实施例中的一种具体的数据交易过程,如图所示本实施例中的数据交易过程如下:

s401、数据提交终端获取目标数据,根据所述目标数据的相关信息和所述智能合约的交易触发条件生成智能合约。

在可选的实施例中,数据提交终端是一种终端设备,可以是手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mid,mobileinternetdevice)、车辆诊断设备、可穿戴设备(例如智能手表(如iwatch等)、智能手环、计步器等)或其他可记录并存储数据的终端设备。

在可选的实施例中,首先要建立交易环境。参加数据交易的多方用户向区块链管理服务器注册,以确认终端设备的真实性,并因此分配得到一个id,该id对应唯一的一对公钥和私钥,公钥作为用户在区块链上的账户地址,私钥作为操作该账户的唯一钥匙。

在可选的实施例中,数据提交终端获取的数据是用户实时行为产生的数据。如安装在车辆上的车辆诊断设备,根据对车辆的实时检测,获取车辆诊断结果。可以包括汽车发动机的检测与诊断,汽车底盘的检测与诊断,汽车车身及附件的检测与诊断以及汽车排气污染物与噪声的检测等内容。

在可选的实施例中,目标数据的相关信息包括目标数据本身,经过加密后封装在智能合约中,如图5所示,智能合约中的数据包括加密后的目标数据,以及合约触发条件,即接收到交易数据定额。

在可选的实施例中,目标数据的相关信息还包括目标数据通过单向不可逆函数计算获得的特征值,如图5所示,智能合约中的数据包括目标数据进行单向不可逆函数计算的特征值,以及合约触发条件,即接收到交易数据定额。

生成智能合约后,执行步骤s402。

s402、区块链节点服务器获取数据提交终端提交的智能合约。

在可选的实施例中,区块链节点服务器获取数据提交终端提交的智能合约,其中智能合约是经过数据提交终端私钥加密的,用于表征数据提交终端的合法身份。

智能合约提交后,执行步骤s403。

s403、区块链节点服务器将所述智能合约记录并发送给相邻节点。

在可选的实施例中,区块链节点服务器接收到智能合约后,首先验证数据的有效性,即上述步骤中数据提交终端的合法身份。然后将验证通过的智能合约存储在自身的存储池中,并将智能合约转发给相邻节点,相邻节点需要验证数据的有效性,并将有效的数据存储在自身的存储池中,并将智能合约转发给下一个相邻节点,下一个相邻节点重复这个记录和转发的过程,直到该区块链中的所有节点都记录了智能合约的拷贝,执行步骤s404。

s404、区块链节点服务器将智能合约集合hash值形成区块结构发送给相邻节点。

在可选的实施例中,区块链节点服务器将一段时间内收到的所有未验证的智能合约打包形成一个集合,并对该集合进行hash计算得到对应hash值,然后将该hash值组装成一个区块结构,发送给相邻节点。

s405、相邻节点对智能合约进行一致性验证并发送验证结果。

在可选的实施例中,相邻节点将收到的区块结构用于获取集合hash值,并将该集合hash值与相邻节点存储的智能合约拷贝对应的拷贝集合hash值进行对比从而得到验证结果,确定需要验证的智能合约集合与邻近节点智能合约集合拷贝的一致性;区块链中的所有节点都对该智能合约进行一致性验证,并将自己认可的智能合约集合转发给相邻节点,所有区块链节点对智能合约集合进行验证,并将最终的结果发送到区块链节点服务器,执行步骤s406。

s406、区块链节点服务器接收验证结果并达成共识,形成智能合约区块链。

在可选的实施例中,区块链节点服务器接收到最后的验证结果,并确定该智能合约已经达成共识。智能合约以区块结构的形式在区块链节点之间进行传播,那么只要智能合约通过验证,就被写入了区块链。智能合约的验证过程参见实施例1中的步骤s102,这里不再赘述。

在可选的实施例中,所有节点达成共识后,形成该合约的区块链,该区块链中的每一个区块都包含以下信息:当前区块的hash值、前一区块的hash值、达成共识时的时间戳、以及其它描述信息等。将智能合约发布在区块链中后,等待执行步骤s406。

s407、数据请求终端针对所述智能合约发起交易请求。

在可选的实施例中,数据请求终端也向区块链管理服务器注册并获得唯一身份id,且该id对应一对公钥和私钥,用于确定身份的有效性,以及保证转移支付数据量的能力。

在可选的实施例中,数据请求终端检索自己需要的数据,以及数据对应智能合约的定价,然后发起交易。其中,交易的内容必须包括支付数据定额,交易的触发条件包括接收到交易数据定额,交易请求必须满足智能合约中的交易触发条件,智能合约才能自动开始执行相应事务。

发起交易请求后,执行步骤s408。

s408、区块链节点服务器在确定所述交易请求满足所述智能合约的交易触发条件。

在可选的实施例中,智能合约是相当于if-then的脚本语句,交易触发条件就相当于满足if语句的条件。其中交易触发条件可以是:接收到交易数据定额。交易触发条件被满足,智能合约将开始自动执行,然后执行步骤s409。

s409、区块链节点服务器根据所述目标数据相关信息获取目标数据。

在可选的实施例中,智能合约接收到满足交易触发条件的交易请求时,将会自动执行封装在其中的事务。如图5所示,交易触发后,智能合约予以响应,由于智能合约中封装的目标数据相关信息是加密后的数据,所以其对应响应1是获取数据解密信息。这一过程需要区块链节点服务器向外部核查数据源,获取解密信息。

在可选的实施例中,如果封装在智能合约中的数据相关信息是目标数据进行单向不可逆函数计算的特征值,那么智能合约接收到满足交易触发条件的交易请求时,执行的响应1是获取交易数据,这一过程需要区块链节点服务器向外部核查数据源,获取交易数据。

获取目标数据后,执行步骤s410。

s410、区块链节点服务器获取满足交易数据定额的支付数据量。

在可选的实施例中,支付数据量所需要对应的虚拟货币,是交易双方在交易前形成的交易环境中已经确定了的,然后数据提交终端将数据的定价写在智能合约中。数据请求终端发起交易请求时,交易触发条件在可选的实施例中可以规定数据请求终端在接收到交易数据时转移相应支付数据量,也可以在可选的实施例中规定数据请求终端在发起请求时转移相应支付数据量给委托方保管。如果是前者,区块链节点服务器需要从数据请求终端获取支付数据量,如果是后者,区块链节点服务器需要从委托方获取支付数据量。

s411、区块链节点服务器将所述目标数据发送至所述数据请求终端。

在可选的实施例中,区块链节点服务器获得的是数据解密信息,将该数据解密信息发送给数据请求终端,数据请求终端用该解密信息对智能合约进行解密,获得需要的数据。并将相应进程反馈给智能合约。

在可选的实施例中,如图5所示,区块链节点服务器获得的是交易数据,那么它自动执行响应2,将交易数据发送给数据请求终端。数据请求终端获得交易数据后,对交易数据进行与上述步骤s409相同的单向不可逆函数计算获得特征值,并将该特征值与智能合约中的目标数据特征值进行对比,若对比结果相同,则获得目标数据。然后将相应进程反馈给智能合约。

s412、区块链节点服务器通过智能合约将所述满足所述交易数据定额的支付数据量转移至数据提交终端。

在可选的实施例中,区块链节点服务器已经获得了满足交易数据定额的支付数据量,在智能合约中的事件执行到相应进程时,自动将满足交易数据定额的支付数据量转移给数据提交终端,终端的身份由之前获得的私钥认证。其中,如图5所示,“状态”表示事件执行的状态,包括进行中、已完成等状态,而“值”表示事件执行的进程,如事件有s1、s2、s3三个进程,那么值的变化就是从s1到s3,只要事件执行到相应进程,智能合约将执行预置的响应规则,如执行到进程s3,自动将数据请求终端的支付数据量转移给数据提交终端。交易完成。

本实施例中的具体的数据交易过程由数据提交终端获取目标数据并生成智能合约,区块链节点服务器获取数据提交终端提交的智能合约,并将该智能合约记录并发布在区块链中,然后转发给相邻节点;相邻节点对智能合约进行一致性验证,然后继续转发智能合约给下一个相邻节点并进行验证,直到整个区块链网络达成共识,形成智能合约区块链;数据请求终端检索到需要的数据和其对应的智能合约,并针对智能合约发起交易请求;区块链节点服务器收到交易请求并在交易请求满足智能合约触发条件的情况下,获取目标数据;最后将目标数据发送给数据请求终端,并将满足交易数据定额的支付数据量转移至数据提交终端,交易完成。整个过程中,数据提交终端只需要生成智能合约并提交给区块链节点服务器,区块链节点服务器将智能合约发布在区块链中,交易就可自动执行,省略了交易的中心节点,交易双方在没有达成信任的情况下,也可以公平、安全地完成交易过程,极大简化了交易流程,并保证了交易的可靠性。

图6是本发明实施例提供的一种区块链节点服务器的结构示意图,如图所示本实施例中的区块链节点服务器包括处理器61、存储介质62以及至少一个通信接口63;所述处理器61、存储介质62以及通信接口63均通过总线64连接。

所述存储介质62可以为区块链节点服务器内置的存储介质或独立设置的存储介质。所述用于数据处理的处理器61可以采用微处理器、中央处理器(cpu,centralprocessingunit)、数字信号处理器(dsp,digitalsignalprocessor)或可编程逻辑阵列(fpga,field-programmablegatearray)。

所述存储介质62中可以存储有多条指令,所述指令适于由处理器61加载并执行前文实施例中结合图1所示的数据交易方法对应的流程,其中至少包括:

通过所述通信接口63获取数据提交终端提交的智能合约,所述智能合约包括所述数据提交终端指定的目标数据相关信息和所述智能合约的交易触发条件,所述交易触发条件包括交易数据定额;

将所述智能合约记录并发布在区块链中;

接收数据请求终端针对所述智能合约发送的交易请求,所述交易请求包括支付数据量;

在确定所述交易请求满足所述智能合约的交易触发条件的情况下,根据所述目标数据相关信息获取目标数据,并将所述目标数据发送至所述数据请求终端,将所述满足所述交易数据定额的支付数据量转移至数据提交终端。

在可选的实施例中,所述指令由处理器61加载后获取数据提交终端提交的智能合约还包括以下操作:

获取数据提交终端提交的智能合约;

所述智能合约中的目标数据相关信息包括经过所述数据提交终端使用预设的加密信息进行加密后的目标数据;

所述根据所述目标数据相关信息获取目标数据,并将所述目标数据发送至所述数据请求终端包括:

从所述数据提交终端获取预设解密信息,所述预设解密信息用于对所述加密后的目标数据进行解密;

向所述数据请求终端发送加密后的目标数据和所述预设解密信息。

在可选的实施例中,所述指令由处理器61加载后获取数据提交终端提交的智能合约还包括以下操作:

获取数据提交终端提交的智能合约;

所述智能合约中的目标数据相关信息包括所述数据提交终端根据所述目标数据进行单向不可逆函数计算得到的数据特征值;

所述根据所述目标数据相关信息获取目标数据,并将所述目标数据发送至所述数据请求终端包括:

从数据提交终端获取交易数据;

将所述交易数据发送至数据请求终端,所述交易数据被所述数据请求终端进行所述单向不可逆函数计算得到所述交易数据的数据特征值,所述交易数据的数据特征值用于与所述智能合约中的目标数据的数据特征值进行比对,在所述数据特征值一致的情况下确定所述交易数据为所述目标数据。

在另一可选实施例中,所述区块链节点服务器的存储介质62中存储的多条指令由处理器61执行时可以形成以下模块:

智能合约获取模块621,用于获取数据提交终端提交的智能合约;

智能合约发布模块622,用于将所述智能合约记录并发布在区块链中;

交易接收模块623,用于接收数据请求终端针对所述智能合约发送的交易请求;

交易处理模块624,用于在确定所述交易请求满足所述智能合约的交易触发条件的情况下,根据所述目标数据相关信息获取目标数据,并将所述目标数据发送至所述数据请求终端,将所述满足所述交易数据定额的支付数据量转移至数据提交终端。

本实施例中的区块链节点服务器根据获取到的智能合约,对智能合约进行发布,然后接受针对智能合约的交易请求,并根据交易请求自动执行交易过程。这个过程简化了交易过程中,并提升了交易的可靠性。

图7是本发明实施例提供的一种信息数据提交终端的结构示意图,如图所示本实施例中的数据提交终端包括处理器71、存储介质72以及至少一个通信接口83;所述处理器71、存储介质72以及通信接口73均通过总线74连接。

所述存储介质72可以为数据提交终端内置的存储介质或独立设置的存储介质。所述用于数据处理的处理器81可以采用微处理器、中央处理器(cpu,centralprocessingunit)、数字信号处理器(dsp,digitalsignalprocessor)或可编程逻辑阵列(fpga,field-programmablegatearray)。

所述存储介质72中可以存储有多条指令,所述指令适于由处理器71加载并执行前文实施例中结合图2所示的数据交易方法对应的流程,其中至少包括:

获取目标数据,根据所述目标数据的相关信息和所述智能合约的交易触发条件生成智能合约;

将所述智能合约提交给区块链节点服务器,所述智能合约被区块链节点服务器用于记录并发布在区块链中,所述目标数据的相关信息被所述区块链节点服务器用于获取所述目标数据并在所述区块链节点服务器接收到数据请求终端针对所述智能合约发起的交易请求,且所述交易请求满足所述智能合约的交易触发条件的情况下将所述目标数据发送至所述数据请求终端;

在所述区块链节点服务器接收到数据请求终端针对所述智能合约发起的交易请求,且所述交易请求满足所述智能合约的交易触发条件的情况下,获取所述满足所述交易数据定额的支付数据量,所述交易请求包括满足所述交易数据定额的支付数据量。

在可选的实施例中,所述指令由处理器71加载后根据所述目标数据的相关信息和所述智能合约的交易触发条件生成智能合约,还执行以下操作:

使用预设的加密信息对所述目标数据进行加密;

将加密后的所述目标数据和所述智能合约的交易触发条件结合生成智能合约;

所述将所述智能合约提交给区块链节点服务器之后还包括:

在所述区块链节点服务器接收到数据请求终端针对所述智能合约发起的交易请求,且所述交易请求满足所述智能合约的交易触发条件的情况下,向所述区块链节点服务器提交预设的解密信息,所述解密信息用于解密所述加密后的所述目标数据。

在可选的实施例中,所述指令由处理器71加载后根据所述目标数据的相关信息和所述智能合约的交易触发条件生成智能合约,还执行以下操作:

对目标数据进行单向不可逆函数计算得到所述目标数据的特征值,所述特征值即为所述目标数据的相关信息;

将所述目标数据的特征值和所述智能合约的交易触发条件结合生成智能合约;

所述将所述智能合约提交给区块链节点服务器之后还包括:

在所述区块链节点服务器接收到数据请求终端针对所述智能合约发起的交易请求,且所述交易请求满足所述智能合约的交易触发条件的情况下,向所述区块链节点服务器提交交易数据,所述交易数据被所述数据请求终端进行所述单向不可逆函数计算得到所述交易数据的数据特征值,所述交易数据的数据特征值用于与所述智能合约中的目标数据的数据特征值进行比对,在所述数据特征值一致的情况下确定所述交易数据为所述目标数据。

在另一可选的实施例中,所述数据提交终端的存储介质72中存储的多条指令由处理器71执行时可以形成以下模块:

智能合约生成模块721,用于获取目标数据,根据所述目标数据的相关信息和所述智能合约的交易触发条件生成智能合约;

智能合约提交模块722,用于将所述智能合约提交给区块链节点服务器;

支付数据量获取模块723,用于在所述区块链节点服务器接收到数据请求终端针对所述智能合约发起的交易请求,且所述交易请求满足所述智能合约的交易触发条件的情况下,获取所述满足所述交易数据定额的支付数据量,所述交易请求包括满足所述交易数据定额的支付数据量。

本实施例中的数据提交终端生成智能合约,将智能合约提交给区块链节点服务器,智能合约自动执行,获取支付数据量,交易完成。这个过程简化了交易流程,提升了交易的可靠性。

可以被理解的是,上述数据交易方法以及上述携带特定指令的存储介质不应被理解为只能存在或实现于本实施例中的数据提交终端,而是可以实现于任何终端、存储设备或网络设备中。

数据提交终端中各功能模块的功能可参见上述图1-4所示实施例中对应数据交易方法步骤的相关描述,此处不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

本领域普通技术人员可以理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriberline,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solidstatedisk,ssd))等。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

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