基于区块链的数据交互方法和系统、存储介质、设备与流程

文档序号:32849444发布日期:2023-01-06 22:52阅读:36来源:国知局
基于区块链的数据交互方法和系统、存储介质、设备与流程

1.本公开涉及数据交互技术领域,尤其是一种基于区块链的数据交互方法和系统、存储介质、设备。


背景技术:

2.近年来,已有大量的物联网(iot)设备连接到互联网。为了从使用各种物联网设备的分布收集的数据中获得价值,数据交易是必要的。传统上,一个典型的物联网数据交易模式是基于一个由第三方运行的数据市场。在这样的系统中,数据购买者首先向物联网数据所有者发送一个请求。买家还会向第三方支付购买数据的费用。在从第三方确认付款后,数据所有者直接将数据发送给数据买家。同样,在数据买家确认后,第三方将钱发送给数据所有者。虽然传统的数据交易模式很有效,但谨慎的用户仍然有信任问题。


技术实现要素:

3.为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种基于区块链的数据交互方法和系统、存储介质、设备。
4.根据本公开实施例的一个方面,提供了一种基于区块链的数据交互方法,包括:第一数据端根据数据交互请求将所述数据交互请求对应的第一交互数据进行分解,得到至少两个部分数据;确定所述至少两个部分数据中每个部分数据对应的部分哈希值,并将至少一个部分哈希值和总体哈希值记录到区块链中;其中,所述总体哈希值为所有所述部分数据对应的部分哈希值之和;通过多次将所述至少两个部分数据发送给第二数据端,并通过所述区块链中存储的所述至少一个部分哈希值和所述总体哈希值实现对所述第二数据端接收的数据进行多次验证;响应于所述多次验证均通过,确定所述第二数据端接收到所述第一交互数据,所述第二数据端向所述第一数据端发送第二交互数据,完成数据交互。
5.可选地,所述通过多次将所述至少两个部分数据发送给第二数据端,并通过所述区块链中存储的所述至少一个部分哈希值和所述总体哈希值实现对所述第二数据端接收的数据进行多次验证,包括:将至少一个所述部分数据发送给所述第二数据端,通过所述第二数据端对至少一个所述部分数据进行验证;响应于验证通过,将其他部分数据发送给所述第二数据端;其中,所述其他部分数据为所述第一交互数据对应的所有部分数据中除了已经发送给所述第二数据端的部分数据;通过所述第二数据端对所述第一交互数据进行验证。
6.可选地,所述将至少一个所述部分数据发送给所述第二数据端,通过所述第二数
据端对至少一个所述部分数据进行验证,包括:所述第一数据端通过至少一次传输将至少一个所述部分数据发送给所述第二数据端;通过所述第二数据端确定至少一个所述部分数据对应的至少一个验证哈希值;基于所述至少一个验证哈希值与所述区块链中预存的所述至少一个部分哈希值,确定至少一个所述部分数据是否验证通过。
7.可选地,所述通过所述第二数据端对所述第一交互数据进行验证,包括:通过所述第二数据端确定所述其他部分数据对应的其他哈希值;基于所述至少一个验证哈希值和所述其他哈希值之和确定验证总体哈希值;基于所述验证总体哈希值与所述区块链中预存的所述总体哈希值,确定所述第一交互数据是否通过验证。
8.可选地,在第一数据端根据数据交互请求将所述数据交互请求对应的第一交互数据进行分解,得到至少两个部分数据之前,还包括:在所述区块链中创建所述数据交互请求对应的智能合约,在所述智能合约中保存所述数据交互请求对应的交互双方的违规惩罚、所述数据交互请求对应的被请求数据的地址;所述第二数据端调用所述智能合约向所述区块链发送所述数据交互请求;在所述区块链中基于所述数据交互请求生成新区块。
9.可选地,在所述确定所述至少两个部分数据中每个部分数据对应的部分哈希值,并将至少一个部分哈希值和总体哈希值记录到区块链中之后,还包括:所述第一数据端将所述违规惩罚对应的第一惩罚数据存入所述智能合约;在通过所述第二数据端对所述第一交互数据进行验证之前,还包括:所述第二数据端将所述第二交互数据和所述违规惩罚对应的第二惩罚数据存入所述智能合约。
10.可选地,还包括:响应于所述多次验证中存在未通过,所述第二数据端向所述区块链发起仲裁请求,并将所述至少一个验证哈希值和所述验证总体哈希值发送给所述区块链上的第三服务端;通过所述第三服务端对所述至少一个验证哈希值与所述至少一个部分哈希值进行比较,以及将所述验证总体哈希值与所述总体哈希值进行比较,基于比较结果确定所述第一数据端是否恶意;响应于确定所述第一数据端为恶意,没收所述第一惩罚数据,并将所述第二惩罚数据反馈给所述第二数据端,结束数据交互。
11.根据本公开实施例的另一方面,提供了一种基于区块链的数据交互系统,包括:第一数据端,用于根据数据交互请求将所述数据交互请求对应的第一交互数据进行分解,得到至少两个部分数据;并确定所述至少两个部分数据中每个部分数据对应的部分哈希值,并将至少一个部分哈希值和总体哈希值发送到区块链中;其中,所述总体哈希值为所有所述部分数据对应的部分哈希值之和;所述区块链,用于记录所述至少一个部分哈希值和所述总体哈希值;
第二数据端,用于通过多次接收所述第一数据端发送的所述至少两个部分数据,并通过调用所述区块链中存储的所述至少一个部分哈希值和所述总体哈希值实现对所述第二数据端接收的数据进行多次验证;在所述多次验证均通过时,向所述第一数据端发送第二交互数据,完成数据交互。
12.可选地,所述第一数据端,还用于将至少一个所述部分数据发送给所述第二数据端;所述第二数据端,还用于对至少一个所述部分数据进行验证;响应于验证通过,接收所述第一数据端发送的其他部分数据,对所述第一交互数据进行验证;其中,所述其他部分数据为所述第一交互数据对应的所有部分数据中除了已经发送给所述第二数据端的部分数据。
13.可选地,所述第一数据端,还用于通过至少一次传输将至少一个所述部分数据发送给所述第二数据端;所述第二数据端,还用于确定至少一个所述部分数据对应的至少一个验证哈希值;基于所述至少一个验证哈希值与所述区块链中预存的所述至少一个部分哈希值,确定至少一个所述部分数据是否验证通过。
14.可选地,所述第二数据端,还用于确定所述其他部分数据对应的其他哈希值;基于所述至少一个验证哈希值和所述其他哈希值之和确定验证总体哈希值;基于所述验证总体哈希值与所述区块链中预存的所述总体哈希值,确定所述第一交互数据是否通过验证。
15.可选地,所述数据交互系统,还包括:第三服务端,用于在所述区块链中创建所述数据交互请求对应的智能合约,在所述智能合约中保存所述数据交互请求对应的交互双方的违规惩罚、所述数据交互请求对应的被请求数据的地址;所述第二数据端调用所述智能合约向所述区块链发送所述数据交互请求;在所述区块链中基于所述数据交互请求生成新区块。
16.可选地,所述第一数据端,还用于将所述违规惩罚对应的第一惩罚数据存入所述智能合约;所述第二数据端,还用于将所述第二交互数据和所述违规惩罚对应的第二惩罚数据存入所述智能合约。
17.可选地,所述第三服务端,还用于响应于所述多次验证中存在未通过,接收所述第二数据端向所述区块链发起的仲裁请求,并接收所述第二数据端发送的所述至少一个验证哈希值和所述验证总体哈希值;所述第三服务端,用于对所述至少一个验证哈希值与所述至少一个部分哈希值进行比较,以及将所述验证总体哈希值与所述总体哈希值进行比较,基于比较结果确定所述第一数据端是否恶意;响应于确定所述第一数据端为恶意,没收所述第一惩罚数据,并将所述第二惩罚数据反馈给所述第二数据端,结束数据交互。
18.根据本公开实施例的另一方面,提供了一种电子设备,包括:存储器,用于存储计算机程序产品;处理器,用于执行所述存储器中存储的计算机程序产品,且所述计算机程序产品被执行时,实现上述任一实施例所述的基于区块链的数据交互方法。
19.根据本公开实施例的另一方面,提供了一种计算机可读存储介质,其上存储有计
算机程序指令,该计算机程序指令被处理器执行时,实现上述任一实施例所述的基于区块链的数据交互方法。
20.基于本公开上述实施例提供的一种基于区块链的数据交互方法和系统、存储介质、设备,第一数据端根据数据交互请求将所述数据交互请求对应的第一交互数据进行分解,得到至少两个部分数据;确定所述至少两个部分数据中每个部分数据对应的部分哈希值,并将至少一个部分哈希值和总体哈希值记录到区块链中;其中,所述总体哈希值为所有所述部分数据对应的部分哈希值之和;通过多次将所述至少两个部分数据发送给第二数据端,并通过所述区块链中存储的所述至少一个部分哈希值和所述总体哈希值实现对所述第二数据端接收的数据进行多次验证;响应于所述多次验证均通过,确定所述第二数据端接收到所述第一交互数据,所述第二数据端向所述第一数据端发送第二交互数据,完成数据交互。本实施例采用智能合约支持物联网数据交互;为了实现不可抵赖性,所提出的方案在区块链上记录数据发送和相应的接收证明;当发生争议时,会触发智能合同,使用先前记录的证据实现自动仲裁。
21.下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
22.通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤;图1是本公开一示例性实施例提供的基于区块链的数据交互方法的流程示意图;图2a是本公开图1所示的实施例中步骤106的一个流程示意图;图2b是本公开一个可选示例提供的基于区块链的数据交互方法的流程示意图;图3是本公开一示例性实施例提供的基于区块链的数据交互系统的结构示意图;图4是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
23.下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
24.应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
25.本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
26.还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
27.还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
28.另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。本公开中所指数据可以包括文本、图像、视频等非结构化数据,也可以是结构化数据。
29.还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
30.同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
31.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
32.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
33.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
34.本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
35.终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
36.现有技术的数据交易中,在经济利益的驱动下,数据所有者、数据买家和第三方都有可能行为不诚实。例如,数据所有者可能会与第三方一起作弊,并试图提供有限的/无用的,甚至是恶意的数据服务。因为数据买家有已经得到了报酬,他们可以为自己的经济利益而否定自己的不当行为。由于缺乏有效的证据,数据买家很难拿回钱。从另一方面来看,想要节省成本的数据购买者也可能会故意拒绝接受数据的接收或数据的正确性。值得注意的是,目前的数据交易法律体系并不完善;这类纠纷难以解决。因此,需要一种有效的非抵赖机制来解决物联网数据交易的信任问题,发明人针对上述交易信任问题,提出本技术。
37.示例性方法图1是本公开一示例性实施例提供的基于区块链的数据交互方法的流程示意图。本实施例可应用在电子设备上,如图1所示,包括如下步骤:步骤102,第一数据端根据数据交互请求将数据交互请求对应的第一交互数据进行分解,得到至少两个部分数据。
38.可选地,数据交互请求是第二数据端发出的,一个可选示例中,第二数据端可以为
数据请求端,第一数据端为数据所有端。
39.可选地,数据分解可以为将数据直接按内容分割为多个部分,多个部分中包括的数据占比可以相同或不同,例如,在一个可选示例中,将数据s分解为部分数据s1(占比较大)和部分数据s2(占比较小)两部分,部分数据s1和部分数据s2的并集为数据s,其中s1为s的前2/3行和2/3列的交集数据集,s2为剩余数据集部分。
40.步骤104,确定至少两个部分数据中每个部分数据对应的部分哈希值,并将至少一个部分哈希值和总体哈希值记录到区块链中。
41.其中,总体哈希值为所有部分数据对应的部分哈希值之和。
42.可选地,以上述示例为例,分别计算部分数据s1和部分数据s2的哈希,得到两个部分哈希值hash(s1)和hash(s2),并且,hash(s1)+hash(s2) =tag(s),以两个部分哈希值求和得到值作为总体哈希值tag(s),将至少一个部分哈希值和总体哈希值记录到区块链中,以实现后续数据交互的验证。
43.步骤106,通过多次将至少两个部分数据发送给第二数据端,并通过区块链中存储的至少一个部分哈希值和总体哈希值实现对第二数据端接收的数据进行多次验证。
44.步骤108,响应于多次验证均通过,确定第二数据端接收到第一交互数据,第二数据端向第一数据端发送第二交互数据,完成数据交互。
45.本实施例中,只有在多次验证都通过时,才确定第二数据端收到了可信的完整的第一交互数据,此时,第二数据端才向第一数据端发送第二交互数据;可选地,第二数据端通过智能合约向第一数据端发送第二交互数据,例如,在数据交易过程中,该第二交互数据可以为数据货币或与第一交互数据可进行互换的等价值数据等。
46.本实施例中,第一交互数据和第二交互数据可以为文本、代码、图像、语音、视频等任意形式可以进行传输的数据。
47.本公开上述实施例提供的一种基于区块链的数据交互方法,第一数据端根据数据交互请求将所述数据交互请求对应的第一交互数据进行分解,得到至少两个部分数据;确定所述至少两个部分数据中每个部分数据对应的部分哈希值,并将至少一个部分哈希值和总体哈希值记录到区块链中;其中,所述总体哈希值为所有所述部分数据对应的部分哈希值之和;通过多次将所述至少两个部分数据发送给第二数据端,并通过所述区块链中存储的所述至少一个部分哈希值和所述总体哈希值实现对所述第二数据端接收的数据进行多次验证;响应于所述多次验证均通过,确定所述第二数据端接收到所述第一交互数据,所述第二数据端向所述第一数据端发送第二交互数据,完成数据交互。本实施例采用智能合约支持物联网数据交互;为了实现不可抵赖性,所提出的方案在区块链上记录数据发送和相应的接收证明,解决了数据交互中交互双方不诚实的问题。
48.如图2a所示,在上述图1所示实施例的基础上,步骤106可包括如下步骤:步骤1061,将至少一个部分数据发送给第二数据端,通过第二数据端对至少一个部分数据进行验证。
49.可选地,第一数据端通过至少一次传输将至少一个部分数据发送给第二数据端;通过第二数据端确定至少一个部分数据对应的至少一个验证哈希值;基于至少一个验证哈希值与区块链中预存的至少一个部分哈希值,确定至少一个部分数据是否验证通过。
50.本实施例中,对于至少一个部分数据可以一次发送给第二数据端,或者每次发送
一个部分数据,通过至少一次将至少一个部分数据发送给第二数据端。每次第二数据端接收到一个或多个部分数据时,分别对每个部分数据计算哈希值,得到一个或多个验证哈希值;通过将得到的一个或多个验证哈希值与区块链中预存的一个或多个部分哈希值进行匹配,当每个验证哈希值都能查找到相同的部分哈希值时,可确定该验证哈希值对应的部分数据通过验证。
51.步骤1062,响应于验证通过,将其他部分数据发送给第二数据端。
52.其中,其他部分数据为第一交互数据对应的所有部分数据中除了已经发送给第二数据端的部分数据。
53.步骤1063,通过第二数据端对第一交互数据进行验证。
54.可选地,通过第二数据端确定其他部分数据对应的其他哈希值;基于至少一个验证哈希值和其他哈希值之和确定验证总体哈希值;基于验证总体哈希值与区块链中预存的总体哈希值,确定第一交互数据是否通过验证。
55.本实施例中,为了保证第一数据端提供的第一交互数据的安全性,本实施例将第一交互数据分多次传输给第二数据端,避免一次传输完成,而第二数据端不能诚实的提供第二交互数据的问题。并且,为了保证第一数据端的诚实性,每次第二数据端都对接收到的数据计算哈希值,并基于得到的验证哈希值与区块链预存的哈希值进行校验,保证了第二数据端接收到的数据都是可信的,保障了第二数据端的权益。
56.可选地,在步骤102之前,还可以包括:在区块链中创建数据交互请求对应的智能合约,在智能合约中保存数据交互请求对应的交互双方的违规惩罚、数据交互请求对应的被请求数据的地址;第二数据端调用智能合约向区块链发送数据交互请求;在区块链中基于数据交互请求生成新区块。
57.本实施例中,为了保证数据交互双方的诚实守信,在区块链中加入第三服务端(作为仲裁者),第三服务端在区块链上创建和部署智能合约,智能合约包含所要求数据(第一交互数据)的名称、要支付的数据(第二交互数据)以及对数据所有者(第一数据端)和数据需求者(第二数据端)的惩罚。数据需求者调用智能合约向区块链发送请求事务。该请求在区块链上被打包成块,生成一个新的区块。当该请求对应的数据交互成功执行时,智能合约中定义为变量的服务状态会相应发生变化。通过查询智能合约的服务状态变量,数据所有者可以找到数据需求者的请求。
58.可选地,在步骤104之后,还可以包括:第一数据端将违规惩罚对应的第一惩罚数据存入智能合约;在步骤1063之前,还可以包括:第二数据端将第二交互数据和违规惩罚对应的第二惩罚数据存入智能合约。
59.本实施例中,为了保证第一数据端的诚实可信,在对区块链上传至少一个部分哈希值和总体哈希值之后,将智能合约确定的第一数据端对应的第一惩罚数据存入智能合约,在第一数据端不诚实(未提供完整的第一交互数据或提供的至少一个部分数据存在错误)时,通过没收第一惩罚数据以对第一数据端的不诚实行为进行惩罚,减小第二数据端在数据交互中的损失;而为了保证第一数据端提供的第一交互数据的安全性,提升第二数据端的诚实可信,在第二数据端接收到的部分数据通过验证的情况下,需要将第二惩罚数据
存入智能合约,在第二数据端不能正常完成数据交互(未对第一数据端返回第二交互数据)时,可将该第二惩罚数据发送给第一数据端,以降低第一数据端在数据交互中的损失。
60.可选地,本实施例提供的方法还可以包括:响应于多次验证中存在未通过,第二数据端向区块链发起仲裁请求,并将至少一个验证哈希值和验证总体哈希值发送给区块链上的第三服务端;通过第三服务端对至少一个验证哈希值与至少一个部分哈希值进行比较,以及将验证总体哈希值与总体哈希值进行比较,基于比较结果确定第一数据端是否恶意;响应于确定第一数据端为恶意,没收第一惩罚数据,并将第二惩罚数据反馈给第二数据端,结束数据交互。
61.本实施例中,由于在区块链中引入了第三服务端,当发生争议时,会触发智能合约,使用先前记录在区块链中的部分哈希值和总体哈希值实现自动仲裁,避免了第二数据端接收到错误数据后无法处理的问题,并通过没收第一惩罚数据对第一数据的的恶意行为进行惩罚,提升了数据交互中的诚信度。
62.图2b是本公开一个可选示例提供的基于区块链的数据交互方法的流程示意图。如图2b所示,包括以下步骤:1,第三服务端在区块链上创建智能合约;2,第二数据端调用智能合约向区块链发送数据交互请求;3,第一数据端接收数据交互请求,对第一交互数据进行分解,得到两个部分数据:第一部分数据和第二部分数据;4,将第一部分数据发送给第二数据端;5,第一数据端计算两个部分数据的哈希值,得到第一部分哈希值、第二部分哈希值和总哈希值(总哈希值=第一部分哈希值+第二部分哈希值),将第一部分哈希值、第二部分哈希值和总哈希值记录到区块链上;6,第一数据端在上传哈希值后的预设时间段内,将第一惩罚数据存入区块链的智能合约中;7,第二数据端基于收到的第一部分数据计算哈希值,得到第一验证哈希值,将第一验证哈希值与区块链中预存的第一部分哈希值进行匹配,如果匹配,确认通过验证;8,第二数据端在第一验证哈希值通过验证后,将上传第二交互数据和第二惩罚数据存入区块链的智能合约中;9,第一数据端发送第二部分数据到区块链中,第二数据端通过区块链获得第二部分数据;10,第二数据端通过哈希值验证第一交互数据的正确性,如果正确,通知区块链将智能合约中的第二交互数据发送给第一数据端,区块链将第一惩罚数据和第二惩罚数据分别返回第一数据端和第二数据端,完成数据交互;否则,执行步骤11;11,第二数据端从区块链获得第二部分数据后,计算得到的第二验证哈希值叠加第一验证哈希值的和与区块链中存储的总哈希值不一致时,向区块链发起链上仲裁;12,通过智能合约重新计算第二部分数据的哈希值,将该哈希值与第一部分哈希值相加,确定和是否与总哈希值一致,如果一致,说明第一数据端,确定第二数据端为恶意,没收第二惩罚数据;如果不一致,说明第一数据端为恶意,没收第一惩罚数据。
63.本公开实施例提供的任一种基于区块链的数据交互方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备和服务器等。或者,本公开实施例提供的任一种基于区块链的数据交互方法可以由处理器执行,如处理器通过调用存储器存储的相应指令来执行本公开实施例提及的任一种基于区块链的数据交互方法。下文不再赘述。
64.示例性系统图3是本公开一示例性实施例提供的基于区块链的数据交互系统的结构示意图。如图3所示,本实施例提供的系统可以包括:第一数据端31,用于根据数据交互请求将所述数据交互请求对应的第一交互数据进行分解,得到至少两个部分数据;并确定所述至少两个部分数据中每个部分数据对应的部分哈希值,并将至少一个部分哈希值和总体哈希值发送到区块链中。
65.其中,总体哈希值为所有部分数据对应的部分哈希值之和。
66.区块链32,用于记录至少一个部分哈希值和总体哈希值。
67.第二数据端33,用于通过多次接收第一数据端发送的至少两个部分数据,并通过调用区块链中存储的至少一个部分哈希值和总体哈希值实现对第二数据端接收的数据进行多次验证;在多次验证均通过时,向第一数据端发送第二交互数据,完成数据交互,解决了数据交互中交互双方不诚实的问题。
68.本公开上述实施例提供的一种基于区块链的数据交互系统,采用智能合约支持物联网数据交互;为了实现不可抵赖性,所提出的方案在区块链上记录数据发送和相应的接收证明。
69.可选地,所述第一数据端31,还用于将至少一个所述部分数据发送给所述第二数据端;所述第二数据端33,还用于对至少一个所述部分数据进行验证;响应于验证通过,接收所述第一数据端发送的其他部分数据,对所述第一交互数据进行验证;其中,所述其他部分数据为所述第一交互数据对应的所有部分数据中除了已经发送给所述第二数据端的部分数据。
70.可选地,所述第一数据端31,还用于通过至少一次传输将至少一个所述部分数据发送给所述第二数据端;所述第二数据端33,还用于确定至少一个所述部分数据对应的至少一个验证哈希值;基于所述至少一个验证哈希值与所述区块链中预存的所述至少一个部分哈希值,确定至少一个所述部分数据是否验证通过。
71.可选地,所述第二数据端33,还用于确定所述其他部分数据对应的其他哈希值;基于所述至少一个验证哈希值和所述其他哈希值之和确定验证总体哈希值;基于所述验证总体哈希值与所述区块链中预存的所述总体哈希值,确定所述第一交互数据是否通过验证。
72.可选地,所述数据交互系统,还包括:第三服务端,用于在所述区块链中创建所述数据交互请求对应的智能合约,在所述智能合约中保存所述数据交互请求对应的交互双方的违规惩罚、所述数据交互请求对应的被请求数据的地址;所述第二数据端调用所述智能合约向所述区块链发送所述数据交互请求;在所述区块链中基于所述数据交互请求生成新区块。
73.可选地,所述第一数据端31,还用于将所述违规惩罚对应的第一惩罚数据存入所
述智能合约;所述第二数据端33,还用于将所述第二交互数据和所述违规惩罚对应的第二惩罚数据存入所述智能合约。
74.可选地,所述第三服务端,还用于响应于所述多次验证中存在未通过,接收所述第二数据端向所述区块链发起的仲裁请求,并接收所述第二数据端发送的所述至少一个验证哈希值和所述验证总体哈希值;所述第三服务端,用于对所述至少一个验证哈希值与所述至少一个部分哈希值进行比较,以及将所述验证总体哈希值与所述总体哈希值进行比较,基于比较结果确定所述第一数据端是否恶意;响应于确定所述第一数据端为恶意,没收所述第一惩罚数据,并将所述第二惩罚数据反馈给所述第二数据端,结束数据交互。
75.示例性电子设备下面,参考图4来描述根据本公开实施例的电子设备。该电子设备可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。
76.图4图示了根据本公开实施例的电子设备的框图。
77.如图4所示,电子设备40包括一个或多个处理器41和存储器42。
78.处理器41可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备40中的其他组件以执行期望的功能。
79.存储器可以存储一个或多个计算机程序产品,所述存储器可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序产品,处理器可以运行所述计算机程序产品,以实现上文所述的本公开的各个实施例的基于区块链的数据交互方法以及/或者其他期望的功能。
80.在一个示例中,电子设备40还可以包括:输入装置43和输出装置44,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
81.例如,在该电子设备是第一设备或第二设备时,该输入装置43可以是上述的麦克风或麦克风阵列,用于捕捉声源的输入信号。在该电子设备是单机设备时,该输入装置43可以是通信网络连接器,用于从第一设备和第二设备接收所采集的输入信号。
82.此外,该输入装置43还可以包括例如键盘、鼠标等等。
83.该输出装置44可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置44可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
84.当然,为了简化,图4中仅示出了该电子设备40中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备40还可以包括任何其他适当的组件。
85.示例性计算机程序产品和计算机可读存储介质除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述
部分中描述的根据本公开各种实施例的基于区块链的数据交互方法中的步骤。
86.所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
87.此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的基于区块链的数据交互方法中的步骤。
88.所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
89.以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
90.本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
91.本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
92.可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
93.还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
94.提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本
公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
95.为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1