区块链数据交易方法、装置、设备及存储介质与流程

文档序号:16381689发布日期:2018-12-22 09:32阅读:276来源:国知局
区块链数据交易方法、装置、设备及存储介质与流程

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

背景技术

数据是未来以互联和机器学习为主的经济中最重要成分,例如,人工智能(artificialintelligence,ai)算法分析数据会产生许多改变世界的发现。而对于数据收集能力有限企业,数据交易将是一个互惠利工作可以促进公司的创新。

但是在传统的数据交易中,安全性和不可篡改性无法得到保障。若数据存在伪造或者篡改的情况,则无法保障交易购买方的利益。



技术实现要素:

本发明实施例提供一种区块链数据交易方法、装置、设备及存储介质,以提高数据交易的安全性。

第一方面,本发明实施例提供一种区块链数据交易方法,包括:

第一区块链节点接收用户终端发送的数据请求消息;

所述第一区块链节点根据所述数据请求消息向区块链网络中发送第一广播消息,所述第一广播消息包括所述数据请求消息;

所述第一区块链节点接收所述区块链网络中第二区块链节点发送的第二广播消息,所述第二广播消息包括:标识信息,所述标识信息用于表示所述第二区块链节点存储有所述第一区块链节点所请求的数据;

所述第一区块链节点向所述区块链网络发送第三广播消息,所述第三广播消息用于表示所述第一区块链节点接受所述第二区块链节点提供的所述数据;

所述第一区块链节点接收所述第二区块链节点发送的第四广播消息,所述第四广播消息包括:加密信息和签名信息,所述加密信息为所述第二区块链节点采用所述第一区块链节点的公钥对所述数据进行加密后的信息,所述签名信息为所述第二区块链节点采用所述第二区块链节点的私钥对所述加密信息进行签名后的信息。

第二方面,本发明实施例提供一种区块链数据交易装置,包括:

接收模块,用于接收用户终端发送的数据请求消息;

发送模块,用于根据所述数据请求消息向区块链网络中发送第一广播消息,所述第一广播消息包括所述数据请求消息;

所述接收模块还用于:接收所述区块链网络中第二区块链节点发送的第二广播消息,所述第二广播消息包括:标识信息,所述标识信息用于表示所述第二区块链节点存储有所述第一区块链节点所请求的数据;

所述发送模块还用于:向所述区块链网络发送第三广播消息,所述第三广播消息用于表示所述第一区块链节点接受所述第二区块链节点提供的所述数据;

所述接收模块还用于:接收所述第二区块链节点发送的第四广播消息,所述第四广播消息包括:加密信息和签名信息,所述加密信息为所述第二区块链节点采用所述第一区块链节点的公钥对所述数据进行加密后的信息,所述签名信息为所述第二区块链节点采用所述第二区块链节点的私钥对所述加密信息进行签名后的信息。

第三方面,本发明实施例提供一种区块链节点,包括:

存储器;

处理器;以及

计算机程序;

其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现第一方面所述的方法。

第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现第一方面所述的方法。

本发明实施例提供的区块链数据交易方法、装置、设备及存储介质,通过区块链网络中的代理节点根据用户终端发送的数据请求消息,向该区块链网络中的数据源节点获取该用户终端请求获取的数据,利用区块链的去中心化、安全性和不可篡改的特性,提高了数据交易的安全性。

附图说明

图1为本发明实施例提供的一种应用场景的示意图;

图2为本发明实施例提供的区块链数据交易方法流程图;

图3为本发明实施例提供的区块链数据交易装置的结构示意图;

图4为本发明实施例提供的区块链节点的结构示意图。

通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

本发明提供的区块链数据交易方法,可以适用于图1所示的通信系统。如图1所示,该通信系统包括:接入网设备11、终端设备12以及服务器13。需要说明的是,图1所示的通信系统可以适用于不同的网络制式,例如,可以适用于全球移动通讯(globalsystemofmobilecommunication,简称gsm)、码分多址(codedivisionmultipleaccess,简称cdma)、宽带码分多址(widebandcodedivisionmultipleaccess,简称wcdma)、时分同步码分多址(timedivision-synchronouscodedivisionmultipleaccess,简称td-scdma)、长期演进(longtermevolution,简称lte)系统及未来的5g等网络制式。可选的,上述通信系统可以为5g通信系统中高可靠低时延通信(ultra-reliableandlowlatencycommunications,简称urllc)传输的场景中的系统。

故而,可选的,上述接入网设备11可以是gsm或cdma中的基站(basetransceiverstation,简称bts)和/或基站控制器,也可以是wcdma中的基站(nodeb,简称nb)和/或无线网络控制器(radionetworkcontroller,简称rnc),还可以是lte中的演进型基站(evolutionalnodeb,简称enb或enodeb),或者中继站或接入点,或者未来5g网络中的基站(gnb)等,本发明在此并不限定。

上述终端设备12可以是无线终端也可以是有线终端。无线终端可以是指向用户提供语音和/或其他业务数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。无线终端可以经无线接入网(radioaccessnetwork,简称ran)与一个或多个核心网设备进行通信,无线终端可以是移动终端,如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语言和/或数据。再例如,无线终端还可以是个人通信业务(personalcommunicationservice,简称pcs)电话、无绳电话、会话发起协议(sessioninitiationprotocol,简称sip)话机、无线本地环路(wirelesslocalloop,简称wll)站、个人数字助理(personaldigitalassistant,简称pda)等设备。无线终端也可以称为系统、订户单元(subscriberunit)、订户站(subscriberstation),移动站(mobilestation)、移动台(mobile)、远程站(remotestation)、远程终端(remoteterminal)、接入终端(accessterminal)、用户终端(userterminal)、用户代理(useragent)、用户设备(userdeviceoruserequipment),在此不作限定。可选的,上述终端设备12还可以是智能手表、平板电脑等设备。服务器13可以是区块链网络中的节点。另外,该区块链网络中还可以包括其他节点例如服务器14。在一些实施例中,终端设备12可以是区块链网络中的节点,也可以不是区块链网络中的节点。

本发明提供的区块链数据交易方法,旨在解决现有技术的如上技术问题。

下面以具体地实施例对本发明的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。

图2为本发明实施例提供的区块链数据交易方法流程图。本发明实施例针对现有技术的如上技术问题,提供了区块链数据交易方法,该方法具体步骤如下:

步骤201、第一区块链节点接收用户终端发送的数据请求消息。

在本实施例中,用户终端具体可以是如图1所示的终端设备12,第一区块链节点具体可以是如图1所示的服务器13,第二区块链节点具体可以是如图1所示的服务器14。可选的,服务器14为区块链网络中提供数据的节点即数据源节点,服务器13为区块链网络中数据交易的代理节点,终端设备12为请求数据的用户或企业的终端设备。在本实施例中,服务器13和服务器14为区块链网络中的节点,终端设备12可以是区块链网络中的节点,也可以不是区块链网络中的节点。

具体的,服务器13接收终端设备12发送的数据请求消息,该数据请求消息具体可以包括终端设备12请求获取的数据的描述信息和终端设备12可支付的交易金额等信息。

步骤202、所述第一区块链节点根据所述数据请求消息向区块链网络中发送第一广播消息,所述第一广播消息包括所述数据请求消息。

服务器13根据终端设备12发送的数据请求消息向区块链网络中发送第一广播消息,该第一广播消息包括该数据请求消息。

可选的,所述第一区块链节点根据所述数据请求消息向区块链网络中发送第一广播消息,包括:所述第一区块链节点根据所述数据请求消息确定所述数据请求消息的哈希值后向所述区块链网络中发送第一广播消息,所述第一广播消息包括所述数据请求消息和所述哈希值。

例如,当服务器13接收到终端设备12发送的数据请求消息后,计算该数据请求消息对应的哈希值,并将该数据请求消息和该数据请求消息对应的哈希值采用服务器13的私钥签名后广播到区块链网络中,也就是说,第一广播消息具体包括:采用服务器13的私钥签名后的该数据请求消息和该数据请求消息对应的哈希值。

步骤203、所述第一区块链节点接收所述区块链网络中第二区块链节点发送的第二广播消息,所述第二广播消息包括:标识信息,所述标识信息用于表示所述第二区块链节点存储有所述第一区块链节点所请求的数据。

当该区块链网络中的第二区块链节点例如服务器14接收到服务器13发送的第一广播消息时,根据该第一广播消息中的数据请求消息查询服务器14本地的数据库以确定服务器14是否存储有该数据请求消息所请求的数据,当服务器14存储有该数据请求消息所请求的数据时,服务器14向该区块链网络发送第二广播消息,该第二广播消息包括:标识信息,该标识信息用于表示服务器14存储有该数据请求消息所请求的数据。

另外,所述第二广播消息还包括:所述第二区块链节点发送所述第二广播消息时所述第二区块链节点本地的时间戳。例如,服务器14向该区块链网络发送的第二广播消息不仅包括上述的标识信息,还包括服务器14在发送该第二广播消息时服务器14本地的时间戳。此外,该第二广播消息还包括服务器14的公钥。服务器14采用自己的私钥对该标识信息、该服务器14本地的时间戳和该服务器14的公钥签名后广播到区块链网络中。

当该区块链网络中的其他数据源节点接收到服务器14发送的第二广播消息后,可以不再为服务器13提供数据交易服务。

步骤204、所述第一区块链节点向所述区块链网络发送第三广播消息,所述第三广播消息用于表示所述第一区块链节点接受所述第二区块链节点提供的所述数据。

当服务器13接收到服务器14发送的第二广播消息后,服务器13进一步向该区块链网络中发送第三广播消息,该第三广播消息用于表示服务器13接受服务器14提供的数据,具体的,该第三广播消息中可以包括:服务器13的标识信息、上述实施例中的数据请求消息对应的哈希值、以及服务器14的标识信息。可选的,服务器13采用自己的私钥对该第三广播消息签名后广播到区块链网络中。

在本实施例中,如果服务器13同时接收到多个数据源节点反馈的可以提供相应数据的广播消息,例如,服务器13不仅接收到服务器14发送的第二广播消息,还接收到了其他服务器发送的第二广播消息,则服务器13比较服务器14发送的第二广播消息中的服务器14本地的时间戳和其他服务器发送的第二广播消息的其他服务器本地的时间戳,并根据服务器14本地的时间戳和其他服务器本地的时间戳的先后顺序,从服务器14和其他服务器中选择一个服务器作为最终的数据源节点。例如,服务器13选择服务器14为最终的数据源节点。

步骤205、所述第一区块链节点接收所述第二区块链节点发送的第四广播消息,所述第四广播消息包括:加密信息和签名信息,所述加密信息为所述第二区块链节点采用所述第一区块链节点的公钥对所述数据进行加密后的信息,所述签名信息为所述第二区块链节点采用所述第二区块链节点的私钥对所述加密信息进行签名后的信息。

当服务器14接收到服务器13发送的第三广播消息后,服务器14将服务器13请求获取的数据采用该服务器13的公钥进行加密得到加密信息,并采用服务器14自己的私钥对该加密信息进行签名得到签名信息,进一步向该区块链网络中发送第四广播消息,该第四广播消息包括该加密信息和签名信息。

此外,所述第四广播消息还包括:所述数据的授权使用范围;所述第一区块链节点接收所述第二区块链节点发送的第四广播消息之后,还包括:所述第一区块链节点将所述数据和所述数据的授权使用范围发送给所述用户终端。

例如,服务器14向区块链网络中发送的第四广播消息不仅包括上述加密信息和签名信息,还包括:服务器14对该数据的授权使用范围的声明。当服务器13接收到该服务器14发送的第四广播消息后,根据服务器14的公钥对该第四广播消息中的签名信息进行验证,验证通过后,采用服务器13自己的私钥对该第四广播消息中的加密信息进行解密得到终端设备12请求的数据,并将该数据和该数据的授权使用范围一起发送给终端设备12。此外,服务器13还可以根据终端设备12可支付的交易金额,在区块链网络中广播给服务器14转账的交易信息。

另外,所述第一区块链节点检测所述用户终端在使用所述数据时是否超出所述数据的授权使用范围;如果所述用户终端在使用所述数据时超出了所述数据的授权使用范围,则所述第一区块链节点将所述用户终端的标识信息广播到所述区块链网络中。

在本实施例中,服务器13将该终端设备12请求的数据和该数据的授权使用范围一起发送给终端设备12后,服务器13还可以进一步检测终端设备12是否在该数据的授权使用范围内使用该数据,如果终端设备12没有在该授权使用范围内使用该数据,则服务器13可以将终端设备12的标识信息记入黑名单列表中,拒绝后续为该终端设备12提供数据交易服务,同时,服务器13还可以将终端设备12的标识信息广播到区块链网络中,以使该区块链网络中的其他节点拒绝为该终端设备12提供数据交易服务。

本发明实施例通过区块链网络中的代理节点根据用户终端发送的数据请求消息,向该区块链网络中的数据源节点获取该用户终端请求获取的数据,利用区块链的去中心化、安全性和不可篡改的特性,提高了数据交易的安全性。

在上述实施例的基础上,所述第一区块链节点向所述区块链网络发送第三广播消息之前,还包括:所述第一区块链节点根据所述第二区块链节点本地的时间戳和所述第一区块链节点接收到所述第二广播消息时所述第一区块链节点本地的时间戳,确定所述第二区块链节点本地的时间戳和所述第一区块链节点本地的时间戳之间的时间差。所述第一区块链节点向所述区块链网络发送第三广播消息,包括:当所述第二区块链节点本地的时间戳和所述第一区块链节点本地的时间戳之间的时间差小于或等于预设时间差阈值时,所述第一区块链节点向所述区块链网络发送第三广播消息。

例如,服务器14向该区块链网络发送的第二广播消息包括服务器14在发送该第二广播消息时服务器14本地的时间戳,当服务器13接收到该第二广播消息时,服务器13记录本地的时间戳,并根据第二广播消息中服务器14本地的时间戳和服务器13接收到该第二广播消息时服务器13本地的时间戳,计算服务器14本地的时间戳和服务器13本地的时间戳之间的时间差,如果该时间差小于或等于预设时间差阈值,则服务器13向所述区块链网络发送第三广播消息。如果该时间差大于预设时间差阈值,则服务器13向区块链网络发送服务器14本地时间戳有误的提示信息,如果该区块链网络中超出一定预设比例例如50%以上的节点在接收到该第二广播消息时本地的时间戳和该第二广播消息中服务器14本地的时间戳的时间差均大于预设时间差阈值,则确定该服务器14本地的时间戳有误,并取消该服务器14作为数据源节点的资格。

本发明实施例通过区块链网络中的代理节点比较数据源节点在广播消息中广播的时间戳和该代理节点在接收到该广播消息时该代理节点的时间戳,当数据源节点在广播消息中广播的时间戳和该代理节点的时间戳大于预设时间差阈值,代理节点确定数据源节点的时间戳有误,从而避免了数据源节点随意修改本地时间戳,提高了数据的可靠性。

图3为本发明实施例提供的区块链数据交易装置的结构示意图。该区块链数据交易装置具体可以是上述实施例中的第一区块链节点。本发明实施例提供的区块链数据交易装置可以执行区块链数据交易方法实施例提供的处理流程,如图3所示,区块链数据交易装置30包括:接收模块31和发送模块32;其中,接收模块31用于接收用户终端发送的数据请求消息;发送模块32用于根据所述数据请求消息向区块链网络中发送第一广播消息,所述第一广播消息包括所述数据请求消息;接收模块31还用于:接收所述区块链网络中第二区块链节点发送的第二广播消息,所述第二广播消息包括:标识信息,所述标识信息用于表示所述第二区块链节点存储有所述第一区块链节点所请求的数据;发送模块32还用于:向所述区块链网络发送第三广播消息,所述第三广播消息用于表示所述第一区块链节点接受所述第二区块链节点提供的所述数据;接收模块31还用于:接收所述第二区块链节点发送的第四广播消息,所述第四广播消息包括:加密信息和签名信息,所述加密信息为所述第二区块链节点采用所述第一区块链节点的公钥对所述数据进行加密后的信息,所述签名信息为所述第二区块链节点采用所述第二区块链节点的私钥对所述加密信息进行签名后的信息。

可选的,区块链数据交易装置30还包括:确定模块33;确定模块33用于确定所述数据请求消息的哈希值;发送模块32根据所述数据请求消息向区块链网络中发送第一广播消息时,具体用于:在确定模块33根据所述数据请求消息确定所述数据请求消息的哈希值后向所述区块链网络中发送第一广播消息,所述第一广播消息包括所述数据请求消息和所述哈希值。

可选的,所述第二广播消息还包括:所述第二区块链节点发送所述第二广播消息时所述第二区块链节点本地的时间戳;确定模块33还用于:在所述发送模块向所述区块链网络发送第三广播消息之前,根据所述第二区块链节点本地的时间戳和所述第一区块链节点接收到所述第二广播消息时所述第一区块链节点本地的时间戳,确定所述第二区块链节点本地的时间戳和所述第一区块链节点本地的时间戳之间的时间差;发送模块32向所述区块链网络发送第三广播消息时,具体用于:当所述第二区块链节点本地的时间戳和所述第一区块链节点本地的时间戳之间的时间差小于或等于预设时间差阈值时,向所述区块链网络发送第三广播消息。

可选的,所述第四广播消息还包括:所述数据的授权使用范围;所述第四广播消息还包括:所述数据的授权使用范围;发送模块32还用于:在所述接收模块接收所述第二区块链节点发送的第四广播消息之后,将所述数据和所述数据的授权使用范围发送给所述用户终端。

可选的,区块链数据交易装置30还包括:检测模块34;检测模块34用于检测所述用户终端在使用所述数据时是否超出所述数据的授权使用范围;发送模块32还用于:当检测所述用户终端在使用所述数据时是否超出所述数据的授权使用范围时,将所述用户终端的标识信息广播到所述区块链网络中。

图3所示实施例的区块链数据交易装置可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

图4为本发明实施例提供的区块链节点的结构示意图。本发明实施例提供的区块链节点可以执行区块链数据交易方法实施例提供的处理流程,如图4所示,区块链节点40包括存储器41、处理器42、计算机程序和通讯接口43;其中,计算机程序存储在存储器41中,并被配置为由处理器42执行以上实施例所述的区块链数据交易方法。

图4所示实施例的区块链节点可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

另外,本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的区块链数据交易方法。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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