在分散式网络中使用的通信装置和通信方法与流程

文档序号:20839296发布日期:2020-05-22 17:17阅读:294来源:国知局
在分散式网络中使用的通信装置和通信方法与流程

本文讨论的实施方式涉及在分散式网络中使用的通信装置和通信方法。



背景技术:

近年来,用于提供买卖数据的服务的数据流通市场已经普及。这种数据流通市场的参与者能够在市场上提供他们自己的数据。参与者还能够获取或购买市场上所提供的数据。

另一方面,在没有任何管理员的分散式环境中以防篡改状态管理数据的区块链技术已经备受关注。区块链技术通过多个参与者或所有参与者验证交易来实现防篡改的分布式台账。为了支持数据流通市场,已经提出了使用区块链的方法。

在诸如区块链之类的多个分布式节点协同执行一个处理的系统中,共识算法用于使所有节点之间的处理结果同步。共识算法允许在多个参与节点验证处理细节和处理结果之后确认处理。

在数据流通系统中,执行数据登记和数据获取。在数据登记过程中,使用与要登记的数据有关的信息(例如,元数据)。这样的元数据包括指示能够向哪些用户公开数据的访问策略信息。在数据获取过程中,数据提供者验证访问策略并且在确认了请求数据的用户有权访问数据时发送数据。

注意,已经提出了以较小的硬件资源安全地存储高度机密的数据的方法(例如,日本特开2006-311383号公报)。另外,已经提出了将数据安全地存储在云计算资源中的方法(例如,国际专利申请no.2012-527838的日本国家阶段公开)。而且,已经提出了改善网络通信中的匿名性的方法(例如,日本特开2017-079350号公报)。

如上所述,在区块链中,交易由多个参与者验证。根据多个验证结果,形成所有参与者的共识。

pow(工作量证明)已被广泛用作共识算法之一。pow由于其严格的批准处理而适于在由非特定数量的参与者组成的网络中形成共识的情况。因此,当在数据流通服务中处理来自非特定数量的参与者的请求的交易时,通过pow可以形成共识。但是,当通过pow形成共识时,可能需要花费很长时间才能执行所请求的交易。

本发明的一个方面的目的是减小用于在不存在管理员的分散式环境中传输防篡改数据的时间段。



技术实现要素:

根据实施方式的一方面,一种通信装置基于多个参与节点的共识向数据获取节点提供数据。该通信装置包括处理器。处理器被配置为将数据划分为n个数据分量,n为等于或大于2的整数;当n个数据分量被存储在不同的存储区域中时,利用多个参与节点当中的n个参与节点的相应的公共密钥对分别存储数据分量的存储区域的地址进行加密;以及向多个参与节点发送指示数据获取节点有权访问所述数据的访问权限信息以及加密后的n个地址。

附图说明

图1例示了根据本实施方式的通信系统的示例的图;

图2是用于说明区块的验证和确认的图;

图3例示了当通过pow形成共识时的数据传输的序列的示例;

图4例示了数据登记过程的示例;

图5是用于说明沙米尔(shamir)秘密共享方案的图;

图6例示了地址列表的示例;

图7例示了生成数据分量和加密地址的过程的示例;

图8至图11例示了数据获取过程的示例;

图12例示了加密地址的解密和数据分量的获取的示例;

图13例示了数据获取过程的序列的示例;

图14是数据登记过程的示例的流程图;

图15是数据获取过程中参与节点的处理的示例的流程图;

图16是数据获取者中的处理的示例的流程图;

图17例示了安装在每个节点中的计算机硬件配置的示例;

图18例示了根据第二实施方式的数据登记过程的示例;

图19例示了根据第三实施方式的数据登记过程的示例;以及

图20例示了数据分量列表的示例。

具体实施方式

图1例示了根据本实施方式的通信系统的示例。在该示例中,通信系统100通过使用区块链技术来提供数据流通服务。

在下面的描述中,参与数据流通服务的用户使用的计算机可以称为“参与节点(或参与者)”。向数据流通服务提供数据的用户或由该用户使用的计算机可以称为“数据提供者(或数据提供者节点)”。通过使用数据流通服务获得数据的用户或由该用户使用的计算机可以称为“数据获取者(或数据获取节点)”。验证数据处理交易的计算机可以称为“矿工”。请注意,数据提供者、数据获取者和矿工是参与数据流通服务的参与节点。换句话说,每个参与节点能够充当数据提供者节点、数据获取节点或矿工。

如图1所示,多个参与节点(图1中的参与节点1至4)、数据提供者11、参与节点(数据获取者)12和矿工13在区块链网络200中连接。注意,非特定数量的参与节点能够在区块链网络200中连接。另外,多个矿工可以在区块链网络200中连接。

参与节点1至4中的每一个具有执行密码通信的功能。换句话说,参与节点1至4中的每一个生成一对公共密钥和私有密钥,并使公共密钥公众可得。因此,数据提供者11例如具有用于每个参与节点1至4的公共密钥。

数据提供者11为数据流通服务提供数据d。在该示例中,数据提供者11向参与节点提供数据d,所述参与节点限于数据提供者11所允许的参与节点。在图1所示的示例中,数据提供者11允许参与节点(数据获取者)12访问数据d。

当参与节点(数据获取者)12需要获取数据d时,参与节点(数据获取者)12生成数据获取请求交易以请求数据d。该数据获取请求交易经由区块链网络200传输给每个参与节点。

矿工13验证每个参与节点生成的交易。例如,当数据获取者12生成数据获取请求交易时,矿工13验证数据获取请求交易。这里,矿工13验证包括多个交易的“区块”。

图2是用于说明通过pow进行区块的验证和确认的图。在该示例中,矿工#1至#3中的每一个验证区块。验证结果被发送给与区块链网络连接的所有参与节点。注意,在图2所示的示例中,区块a的验证已经完成。

矿工#1验证包括交易tx1、tx2和tx3的区块b,并且还验证包括交易tx4、tx5和tx6的区块c。这些验证结果被发送给所有参与节点。矿工#2也验证包括交易tx1、tx2和tx3的区块b,并且还验证包括交易tx4、tx6和tx7的区块d。这些验证结果也被发送给所有参与节点。

在每个参与节点中,验证结果按接收顺序连接。换句话说,形成链。例如,在参与节点x中,基于从矿工#1接收到的验证结果,区块a、区块b和区块c按该顺序连接。接下来,矿工#2的验证结果到达参与节点x。在从矿工#2接收的验证结果中,区块d跟在区块b之后。在这种情况下,在参与节点x中,区块d连接在区块b之后。随后,矿工#3的验证结果到达参与节点x。在从矿工#3接收的验证结果中,区块e跟在区块c之后。在这种情况下,在参与节点x中,区块e连接在区块c之后。

当在区块(以下称为对象区块)之后连接了指定数量的区块时,参与节点进行对象区块的确认。例如,在pow中,当在对象区块之后连接了六个区块时,确定要对对象区块进行确认。然后,参与节点能够在已确认区块中执行交易。例如,当数据传输请求交易被给予参与节点x时,在包括数据传输请求交易的区块之后连接了六个区块之后,参与节点x能够根据数据传输请求交易来发送数据。

图3例示了当由pow形成共识时的数据传输的序列的示例。在该示例中,数据获取者生成数据获取请求交易并将交易发送给所有节点。注意,当数据获取者生成数据获取请求交易时,区块0被记录在数据提供者的区块链中。

矿工验证包括数据获取请求交易的区块1,并将验证结果发送给所有节点。因此,在数据提供者的区块链中,区块1连接在区块0之后。

之后,网络上的参与节点相继生成交易。矿工验证包括多个交易的区块,并将验证结果发送到所有节点。结果,区块被添加到每个节点的区块链中。当在数据提供者的区块链中的区块1之后连接了六个区块(即,区块2至区块7)时,数据提供者执行区块1中包含的数据获取请求交易。结果,数据从数据提供者被发送给数据获取者。

如上所述,在通过pow建立共识的情况下,在完成指定数量的区块的验证之前,接收到要处理的交易的节点不能执行交易。因此,在执行所请求的处理(例如,图3的情况下的数据发送)之前的等待时间可能很长。

第一实施方式

图4例示了数据登记过程的示例。在该示例中,数据提供者11为数据流通服务提供数据d。

数据提供者11借助于shamir秘密共享方案将数据d划分为n个数据分量(n是等于或大于2的整数)。在图4所示的示例中,数据d被分为四个数据分量d1至d4。

注意,数据提供者11可以在划分数据d之前对数据d进行加密。例如,数据d可以利用被允许访问数据d的参与节点的公共密钥来加密。或者,数据d可以利用共同密钥来加密。在这种情况下,该共同密钥利用允许访问数据d的参与节点的公共密钥来加密。

在shamir秘密共享方案中,输入数据被划分为n个数据分量,如图5所示。此时,每个数据分量是以输入数据的内容保密的方式生成的。另外,解密装置能够从n个数据分量当中的k个数据分量(k为n或更小的整数)重现输入数据。n的值和k的值可以被预先设置。例如,n和k的值可以是参与节点的总数。n和k的值也可以根据重要度来确定。在这种情况下,当数据重要时,n和k的值可以设置得较大。

数据提供者11可以通过除shamir秘密共享方案之外的方法将数据d划分为n个数据分量。然而,每个数据分量优选地以原始数据的内容保密的方式生成。另外,优选地,能够从n个数据分量当中的k个数据分量重现原始数据。

数据提供者11将数据分量d1至d4存储到指定的存储区域。在该示例中,数据分量d1至d4存储在ipfs(星际文件系统)上的不同区域中。此时,数据分量d1到d4以每个参与节点能够访问数据分量d1到d4的状态存储在ipfs中。然而,没有公开数据分量d1至d4所存储的存储区域的地址。因此,在此时间点,每个参与节点实际上不能访问数据分量d1至d4。

数据提供者11获得数据分量d1至d4所存储的存储区域的地址。例如,当数据分量d1至d4被存储在ipfs中时,输出其中存储数据分量d1至d4中的每一个的存储区域的各个地址。在该示例中,数据分量d1、d2、d3和d4分别存储在地址add1、add2、add3和add4中。

注意,在图4所示的示例中,数据分量d1至d4存储在ipfs中,但是第一实施方式不限于该配置。换句话说,数据提供者11能够将数据分量d1至d4存储在任何存储区域中。

数据提供者11对其中存储数据分量d1至d4的存储区域的地址add1至add4进行加密。此时,数据提供者11从参与数据流通服务的所有参与节点当中选择与ipfs中所存储的数据分量的数量相同数量的参与节点,作为执行稍后描述的解密处理的参与节点。在该示例中,针对数据分量d1至d4分别选择参与节点1至4,作为执行稍后描述的解密处理的参与节点。数据提供者11利用参与节点1至4的每个公共密钥对其中存储数据分量d1至d4的存储区域的地址add1至add4进行加密。换句话说,利用参与节点1的公共密钥对地址add1加密,利用参与节点2的公共密钥对地址add2加密,利用参与节点3的公共密钥对地址add3加密,并且利用参与节点4的公共密钥对地址add4加密。因此,获得了加密地址add1至add4。

数据提供者11生成与数据d的登记有关的地址列表。如图6所示,该地址列表包括访问权限信息、解密节点的列表和加密地址。访问权信息指示被允许访问数据d的参与节点。在该示例中,数据提供者11允许参与节点(数据获取者)12访问数据d。解密节点的列表指示对加密地址add1至add4中的任意一个进行解密的参与节点。在该示例中,加密地址add1至add4是通过分别用参与节点1至4的公共密钥对地址add1至add4进行加密而获得的。因此,参与节点1至4被列在解密节点列表上。以上述方式生成的加密地址add1至add4被列在地址列表中作为加密地址。

地址列表被公开给所有参与节点。换句话说,如图4所示,数据提供者11将地址列表发送给所有参与节点。作为执行数据登记对比的结果,地址列表可以记录在例如区块链上。每个参与节点存储从数据提供者11接收到的地址列表。通过该处理,完成了数据登记过程。

图7例示了生成数据分量和加密地址的过程的示例。在数据登记过程中,数据提供者11通过shamir秘密共享方案将数据d划分为数据分量d1至d4,并将数据分量登记ipfs中。数据提供者11还获得存储数据分量d1至d4的存储区域的地址add1至add4。此外,数据提供者11通过利用参与节点1至4的公共密钥pk1至pk4对地址add1至add4进行加密来生成加密地址add1至add4。包括加密地址add1至add4的地址列表被公开在区块链上。

图8至图11例示了数据获取过程的示例。在该示例中,参与节点(数据获取者)12获取数据d。为此,在数据获取过程的描述中,参与节点(数据获取者)12可以简称为“数据获取者12”。注意,图4中所示的数据登记过程在图8至图11所示的数据获取过程开始之前已经完成。换句话说,通过划分数据d而获得的数据分量d1至d4被存储在ipfs中,并且参与节点1至4中的每一个已经从数据提供者11接收到图6所示的地址列表。

在图8中,数据获取者12生成数据获取请求交易。此时,数据获取者12可以将交易发送给数据获取对比。数据获取请求交易包括请求获取数据d的消息。数据获取请求交易被发送给所有参与节点。换句话说,参与节点1至4中的每一个接收从数据获取者12发送的数据获取请求交易。注意,数据获取请求交易包括标识发送源的信息。

在图9中,矿工13验证包括从数据获取者12发送的数据获取请求交易的区块。矿工13将区块的验证结果发送给所有参与节点。换句话说,参与节点1至4中的每一个接收到来自矿工13的验证结果。

在图10中,当从矿工13接收到包括数据获取请求交易的区块的验证结果时,参与节点1至4中的每一个确认对数据获取者12发送的数据获取请求交易所请求的数据的访问权限。此时,参与节点1至4中的每一个参照从数据提供者11预先接收的地址列表。在该示例中,如图6所示,参与节点(数据获取者)12被授予对数据d的访问权限。因此,参与节点1至4中的每一个执行与接收到的数据获取请求交易相对应的处理。

参与节点1至4中的每一个首先确定参与节点本身是否是对加密地址进行解密的解密节点。更具体地,参与节点1至4中的每一个确定参与节点本身是否在从数据提供者11预先接收的地址列表中被登记为解密节点。在图6所示的示例中,参与节点1至4被登记为解密节点。因此,参与节点1至4中的每一个执行解密处理。

参与节点1通过使用参与节点1的私有密钥对四个加密地址add1至add4执行解密处理。这里,加密地址add1至add4是利用参与节点1至4中的每一个的公共密钥加密的。因此,当利用参与节点1的私有密钥执行解密处理时,加密地址add1将成功解密,但是加密地址add2至add4的解密将失败。换句话说,参与节点1能够获得地址add1,但是未能获得地址add2至add4。

以类似的方式,参与节点2通过使用参与节点2的私有密钥执行对加密地址add1至add4的解密处理,并且获得地址add2。参与节点3通过使用参与节点3的私有密钥执行对加密地址add1至add4的解密处理,并获得地址add3。参与节点4通过使用参与节点4的私有密钥执行对加密地址add1至add4的解密处理,并获得地址add4。随后,参与节点1至4分别向数据获取者12发送地址add1至add4。

在图11中,数据获取者12访问从参与节点1至4接收到的地址,并从ipfs获得数据分量d1至d4。更具体地说,数据获取者12从地址add1获得数据分量d1,从地址add2获得数据分量d2,从地址add3获得数据分量d3并且从地址add4获得数据分量d4。之后,数据获取者12从获得的数据分量d1至d4重现数据d。

注意,在图11所示的示例中,数据获取者12获得所有数据分量d1至d4,但是第一实施方式不限于这种情况。作为示例,当能够从数据分量d1至d4中的任意三个重现数据d时,数据获取者12可以通过获得数据分量d1至d4中的任意三个来重现数据d。例如,当由参与节点4执行的解密失败时,数据获取者12接收到地址add1至add3。在这种情况下,数据获取者12通过从ipfs获得数据分量d1至d3来重现数据d。

图12例示了加密地址的解密和数据分量的获取的示例。在该示例中,数据获取者12的访问权限已经由参与节点1至4中的每一个进行了确认。

参与节点1至4分别通过利用参与节点1至4的私有密钥sk1至sk4对地址列表上的加密地址add1至add4进行解密来获得地址add1至add4。地址add1至add4分别被发送给数据获取者12。数据获取者12利用地址add1至add4访问ipfs,并获得数据分量d1至d4。数据获取者12从数据分量d1至d4重现数据d。

图13例示了数据获取过程的序列的示例。在该示例中,图4中所示的数据登记过程已经完成。换句话说,通过划分数据d而获得的数据分量d1至d4被存储在ipfs中,并且参与节点1至4中的每一个已经从数据提供者11接收到图6所示的地址列表。

当数据获取者12生成数据获取请求交易时,矿工13对包括该交易的区块执行挖矿。此挖矿验证数据获取请求交易。验证结果被发送给每个参与节点。

参与节点1至4在确认数据获取者12的访问权限之后,各自通过使用自己的私有密钥的解密处理来获得地址,并将地址发送给数据获取者12。数据获取者12根据从参与节点1至4接收的地址获取数据分量d1至d4,并且从数据分量d1至d4重现数据d。

在此,将图3所示的通信方法与根据第一实施方式的通信方法进行比较。在图3所示的通信方法中,当在包括对象交易的区块之后连接了指定数量的区块(在示例中为六个区块)时形成共识,然后能够执行对象交易。在这种情况下,从生成交易到执行对象交易可能会花费很长时间。

另一方面,在根据第一实施方式的通信方法中,多个参与节点分别对加密地址进行解密,并且当获得了指定数量的地址或更多地址时,数据获取者12获取数据。在该方法中,通过指定数量的参与节点基本上形成区块链的共识。这里,当通过shamir秘密共享方案划分为n个数据分量的数据能够从k个数据分量重现时,指定数量为k。在这种情况下,当在矿工验证交易之后k个参与节点确认了数据获取者的访问权限时,能够形成对数据获取者所生成的数据获取请求交易的共识。由多个参与节点执行的解密处理基本上是并行执行的。因此,当与图3所示的通信方法进行比较时,根据第一实施方式的通信方法减少了从生成对象交易到执行交易所需的时间。

图14是数据登记过程的示例的流程图。该流程图中的处理由数据提供者11执行。

在s1中,数据提供者11通过shamir秘密共享方案划分数据并生成多个数据分量。在s2中,数据提供器11在ipfs中登记多个数据分量。在s3中,数据提供者11获得存储多个数据分量的存储区域的地址。在s4中,数据提供者11选择要执行解密处理的多个参与节点。在图4至图13所示的示例中,选择参与节点1至4。在s5中,数据提供者11利用在s4中选择的多个参与节点的相应公共密钥对地址进行加密。在图4至图13所示的示例中,地址add1至add4分别利用参与节点1至4的公共密钥加密。

在s6中,数据提供器11生成包括在s5中获得的多个加密地址的地址列表。注意,如图6所示,地址列表包括指示被允许访问数据d的参与节点的访问权限信息以及指示对加密地址进行解密的参与节点的解密节点的列表。在s7中,数据提供者11将地址列表发送给每个参与节点。换句话说,地址列表被公开在区块链上。

图15是数据获取过程中参与节点的处理的示例的流程图。注意,每个参与节点已经接收到在图14所示的数据登记过程中生成的地址列表。

在s11中,参与节点接收来自数据获取者的数据获取请求交易。在s12中,参与节点参照地址列表上的访问权限信息,并确定数据获取请求交易的源节点是否具有访问权限。注意,参与节点可以在矿工对包括数据获取请求交易的区块进行验证之后执行s12中的处理。

当数据获取请求交易的源节点具有访问权限时,参与节点在s13中确定参与节点本身是否在地址列表上被指定为解密节点。当参与节点本身被指定为解密节点时,在s14中,参与节点利用自己的私有密钥对地址列表上的加密地址进行解密。在s15中,参与节点将通过解密而获得的地址发送给数据获取请求交易的源节点。

图16是数据获取者中的处理的示例的流程图。注意,图14中所示的数据登记过程已经预先完成。

在s21中,数据获取者12将数据获取请求交易发送给每个参与节点。之后,数据获取者12等待对数据获取请求交易的响应。换句话说,数据获取者12等待发送其中存储要获得的数据的存储区域的地址。

在s22中,数据获取者12确定是否从指定数量的参与节点接收到地址。注意,当通过shamir秘密共享方案划分为n个数据分量的数据能够从k个数据分量重现时,指定数量为k。当从指定数量的参与节点接收到地址时,数据获取者12在s23中从每个地址获得数据分量。在s24中,数据获取者12从指定数量的数据分量重现数据。

注意,图14至图16中的流程图仅是示例,并且本实施方式不限于上述过程。例如,数据提供者11可以在划分数据d之前利用参与节点(数据获取者)12的公共密钥对数据d进行加密。在这种情况下,加密数据d通过shamir秘密共享方案被划分并登记在ipfs中。在从数据分量d1至d4重现加密数据d之后,数据获取者12利用数据获取者12的私有密钥去除对数据d的加密。以这种方式,数据获取者12能够获得数据d。

另选地,数据提供者11可以在划分数据d之前利用数据提供者11和数据获取者11两者都使用的共同密钥来加密数据d。在这种情况下,数据提供者11利用数据获取者12的公共密钥对共同密钥加密,并将加密后的共同密钥发送给数据获取者12。数据获取者12接收加密后的共同密钥,并利用数据获取者12的私有密钥对共同密钥解密。数据获取者12在从数据分量d1至d4重现加密数据d之后,利用解密后的共同密钥去除对数据d的加密。以这种方式,数据获取者12能够获得数据d。

图17例示了安装在每个节点中的计算机硬件配置的示例。该计算机300包括处理器301、存储器302、存储装置303、i/o装置304、记录介质装置305和通信接口306。注意,参与节点、数据提供者、数据获取者和矿工各自能够由图17所示的计算机来实现。

处理器301能够通过执行存储装置303中所存储的通信程序来实现数据登记过程和数据获取过程。注意,当计算机300作为数据提供者进行操作时,处理器301执行其中写入有图14中的流程图的处理的通信程序。当计算机300作为参与节点操作时,处理器301执行其中写入有图15中的流程图的处理的通信程序。当计算机300作为数据获取者操作时,处理器301执行其中写入有图16中的流程图的处理的通信程序。

作为示例,存储器302是半导体存储器,并且用作处理器301的工作区。存储装置303可以安装在计算机300中或者可以连接到计算机300。i/o装置304接收来自用户或网络管理员的指令。另外,i/o装置304输出处理器301的处理结果。记录介质装置305读取可移动记录介质307中所存储的信号。注意,上述通信程序可以记录在可移动记录介质307中。存储器302、存储装置303和可移动记录介质307可以是非暂时性计算机可读记录介质的示例。通信接口306提供计算机300和网络之间的接口。

第二实施方式

图18例示了根据第二实施方式的数据登记过程的示例。注意,通信系统100的配置在第一实施方式和第二实施方式之间基本相同。

与第一实施方式类似,在第二实施方式中,数据提供者11通过shamir秘密共享方案将数据d划分为数据分量d1至d4。然而,在第二实施方式中,数据提供者11分别向参与节点1至4发送数据分量d1至d4。换句话说,参与节点1接收数据分量d1,参与节点2接收数据分量d2,参与节点3接收数据分量d3,并且参与节点4接收数据分量d4。数据提供者11还发送指示访问数据d的访问权限的访问权限信息。在该示例中,访问权限信息指示允许参与节点(数据获取者)12访问数据d。

在数据获取过程中,数据获取者12如在第一实施方式中那样生成数据获取请求交易。数据获取请求交易包括请求获取数据d的消息。该数据获取请求交易被发送给所有参与节点。

矿工13如在第一实施方式中那样验证包括从数据获取者12发送的数据获取请求交易的区块。然后,矿工13将区块的验证结果发送给所有参与节点。换句话说,参与节点1至4中的每一个接收来自矿工13的验证结果。

当从矿工13接收到包括数据获取请求交易的区块的验证结果时,参与节点1至4中的每一个如在第一实施方式中那样确认从数据获取者12发送的数据获取请求交易的访问权限。此时,参与节点1至4中的每一个参照从数据提供者11预先接收的访问权限信息。在该示例中,参与节点(数据获取者)12被授权访问数据d。然后,参与节点1至4中的每一个执行对接收到的数据获取请求交易的响应的处理。

更具体地,参与节点1至4中的每一个将从数据提供者11预先接收的数据分量发送给数据获取者12。换句话说,数据分量d1至4分别从参与节点1至4被发送给数据获取者12。然后,数据获取者12根据分别从参与节点1至4接收到的数据分量d1至d4重现数据d。

第三实施方式

图19例示了根据第三实施方式的数据登记过程的示例。注意,通信系统100的配置在第一实施方式和第三实施方式之间基本相同。

与第一实施方式类似,在第三实施方式中,数据提供者11通过shamir秘密共享方案将数据d划分为数据分量d1至d4。然而,在第三实施方式中,数据提供者11分别利用参与节点1至4的公共密钥对数据分量d1至d4加密。换句话说,利用参与节点1的公共密钥对数据分量d1加密,利用参与节点2的公共密钥对数据分量d2加密,利用参与节点3的公共密钥对数据分量d3加密,并且利用参与节点4的公共密钥对数据分量d4加密。然后,数据提供者11生成包括加密后的数据分量d1至d4的数据分量列表。

数据分量列表包括访问权限信息、解密节点的列表和加密数据分量,如图20所示。注意,由于访问权限信息和解密节点的列表在第一实施方式和第三实施方式之间基本相同,因此省略说明。

数据提供者11在区块链上公开数据分量列表。换句话说,数据提供者11将数据分量列表发送给所有参与节点。因此,参与节点1至4中的每一个接收数据分量列表。

在数据获取过程中,数据获取者12如在第一实施方式中那样生成数据获取请求交易。该数据获取请求交易包括请求获取数据d的消息。数据获取请求交易被发送给所有参与节点。

矿工13如在第一实施方式中那样验证包括从数据获取者12发送的数据获取请求交易的区块。然后,矿工13将区块的验证结果发送给所有参与节点。换句话说,参与节点1至4中的每一个接收来自矿工13的验证结果。

当从矿工13接收到包括数据获取请求交易的区块的验证结果时,参与节点1至4中的每一个如在第一实施方式中那样确认从数据获取者12发送的数据获取请求交易的访问权限。此时,参与节点1至4中的每一个参照从数据提供者11预先接收的数据分量列表中的访问权限信息。在该示例中,参与节点(数据获取者)12被授权访问数据d。然后,参与节点1至4中的每一个执行对接收到的数据获取请求交易的响应的处理。

参与节点1通过使用参与节点1的私有密钥对四个加密数据分量d1至d4执行解密处理。这里,加密数据分量d1至d4是分别利用参与节点1至4的公共密钥加密的。因此,当利用参与节点1的私有密钥执行解密处理时,加密数据分量d1将成功解密,但是加密数据分量d2至d4的解密将失败。换句话说,参与节点1能够获得数据分量d1,但是未能获得数据分量d2至d4。

以类似的方式,参与节点2通过使用参与节点2的私有密钥对加密数据分量d1至d4执行解密处理,并且获得数据分量d2。参与节点3通过使用参与节点3的私有密钥对加密数据分量d1至d4执行解密处理,并获得数据分量d3。参与节点4通过使用参与节点4的私有密钥对加密数据分量d1至d4执行解密处理,并获得数据分量d4。随后,参与节点1至4分别向数据获取者12发送数据分量d1至d4。然后,数据获取者12根据分别从参与节点1至4接收到的数据分量d1至d4重现数据d。

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