The present invention relates to an information processing system for safely and quickly executing a smart contract on confidential information; a method for providing data; and a method for building the information processing system.
A smart contract is a transaction (contract) automatically executed by collaborative processing operations by many unspecified nodes, without relying on a centralized management server. After the success of Bitcoin, smart contracts have attracted attention as an application of blockchain technology, which is the core technology of Bitcoin.
In a smart contract for buying and selling valuable product data, such as movie or music content, or personal information (e.g., medical images), the contract details are recorded in a blockchain, and the contract is then completed; after that (i.e., after completion of the payment from the buyer to the seller), the buyer must receive the product data from the seller in some manner. There are two main technologies that can perform this.
The first technique is a method in which the seller directly transmits confidential information to the buyer (e.g., NPL 1). In this method, the buyer cannot receive confidential information unless the seller is online. More specifically, a general user who may go offline frequently for a long period of time cannot participate in such a smart contract as a seller.
The second technology is a method in which the seller saves confidential information in some online storage, and records its storage location in the contract details; and the buyer downloads the information from the storage location after the contract has been completed (e.g., NPL 2 and 3). This method enables the seller to immediately receive the confidential information, even when the seller goes offline frequently and for a long period of time. However, this method records the storage location of confidential information in a blockchain, and releases the information to all users. Thus, even if the storage destination is set to deny access from a party other than the buyer, confidential information may be revealed to someone other than the buyer when a powerful hacking attack has occurred.
The present invention was made to solve the problems described above; and an object of the invention is to provide a technique to safely and quickly execute a smart contract for providing data, even when the seller is offline.
An information processing system according to the present invention is an information processing system comprising
a first node that stores data, a second node that receives the data from the first node, at least one storage node, and a database, wherein
An information processing system according to the present invention is an information processing system comprising
A method for providing data according to the present invention is a method for providing data from a first node to a second node in an information processing system that comprises the first node, the second node, at least one storage node, and a database, the method comprising
A method for providing data according to the present invention is a method for providing data from a first node to a second node in an information processing system that comprises the first node, the second node, at least one storage node, and a database, the method comprising
A method for building an information processing system according to the present invention is a method for building an information processing system that comprises a first node that stores data, a second node that receives the data from the first node, at least one storage node, and a database, the method comprising
A method for building an information processing system according to the present invention is a method for building an information processing system that comprises a first node that stores data, a second node that receives the data from the first node, at least one storage node, and a database, the method comprising
The database for use is preferably a blockchain.
In the present invention, data of the first node is temporarily stored in the at least one storage node, and transmitted from the at least one storage node to the second node. However, the storage location of the data is not recorded in the contract document; instead, the data-receiving address of the second node, which is the buyer, is recorded. When a contract has been completed, the data is transmitted from the at least one storage node to the data-receiving address recorded in the contract document. Thus, even when the first node 1, which is the seller of the data, is offline, the second node, which is the buyer, can receive the data promptly after the contract has been completed. Additionally, because the storage location (storage node) of the data is not recorded in the contract document registered in the database, hacking attacks against the at least one storage node by a third party can be avoided. Thus, even when the seller is offline, a smart contract for providing data can be executed safely and quickly.
The following describes embodiments of the present invention with reference to attached drawings. However, the present invention is not limited to the following embodiments.
First, for better understanding of the features of the present invention, a simplified embodiment is described as the first embodiment.
The first node 1 stores data, which is confidential information, and is an information processing device managed by the seller who wishes to sell the data. In the first node 1, a first program P1, described later, is installed. The first node 1 may be composed of a general-purpose computer, such as a desktop PC, a laptop PC, a smartphone, a tablet terminal, or a PDA.
The second node 2 is an information processing device managed by the buyer who is to receive the data in the first node 1. In the second node 2, a second program P2, described later, is installed. The second node 2 may also be composed of a general-purpose computer, such as a desktop PC, a laptop PC, a smartphone, a tablet terminal, or a PDA, as with the first node 1.
The storage node 3 is an information processing device provided with an online storage for temporarily storing transferred data. In the storage node 3, a storage program, described later, is installed. The user of the storage node 3 is not particularly limited, and the storage node 3 may be a server managed by a vendor who provides an online storage service, or a terminal device managed by an individual. Alternatively, the storage node 3 may be those that constitute a P2P storage as in the second embodiment described later.
The blockchain 4 is formed as follows: information of transactions executed between all nodes existing in the information processing system 100 is consolidated at regular intervals, and blocked; evidence information indicating that each block satisfies conditions for consolidation with the previous block is recorded in each block, and then blocks are connected in a chain shape. The blockchain 4 contains the records of all previous transactions, and is managed by a group of nodes existing in the information processing system 100 in a decentralized manner. The information processing system 100 can also make a transaction via its own crypto currency. Examples of such a crypto currency include Bitcoin and Ethereum. In this embodiment, the crypto currency is assumed to be Bitcoin.
The information processing system 100 may include a node other than the first node 1, second node 2, and storage node 3; i.e., a node in which none of the first program, second program, and storage program are installed.
As shown in
The input unit 11 may be composed of, for example, a keyboard, a mouse, or a touchscreen. The display unit 12 may be composed of, for example, a liquid crystal display or an organic EL display. The communication unit 13 is an interface that allows the first node 1 to communicate with, for example, other nodes via the communication network N.
The storage unit 14 is a nonvolatile auxiliary storage device for storing various types of programs and data used by the first node 1. The storage unit 14 may be composed of, for example, a hard disk drive (HDD) or a solid-state drive (SSD).
The storage unit 14 stores a first program P1, personal data D1, and a template T1 according to this embodiment. The first program P1 is a program for causing the first node 1 to execute a part of the processing steps of a service for enabling safe and quick execution of a smart contract in the information processing system 100 (“smart contract execution service”). The method for delivering the first program P1 to the first node 1 can be any method. The first program P1 may be downloaded to the first node 1 via the communication network N; or the first program P1 may be stored in a non-transitory computer-readable recording medium, and then installed in the first node 1 via the recording medium. For example, if a smartphone is used as the first node 1, the first program P1 can be delivered to the first node 1 via the App Store (registered trademark) of Apple Inc. or Google Play (registered trademark) of Google LLC.
The personal data D1 is confidential information that the user of the first node 1 wishes to sell. Examples of such confidential information include medical images of the user.
The template T1 is a template for a contract document for the first node to provide various types of data. The template T1 is stored in the storage unit 14 when the first node 1 has installed the first program P1. Examples of the template T1 will be described later.
The control unit 15 is a functional block that is put into practice when an arithmetic processing unit, such as a CPU or MPU, provided in the first node 1 retrieves the first program P1 stored in the storage unit 14 into a main storage device, such as RAM, and executes the first program P1. The control unit 15 includes a catalog preparation unit 151, a first identification information generation unit 152, a template acquisition unit 153, a contract document preparation unit 154, a contract document release unit 155, and a storage request unit 156. The function of these units will be described later.
As shown in
The storage unit 24 stores a second program P2 according to this embodiment. The second program P2 is a program for causing the second node 2 to execute a part of the processing steps of a smart contract execution service. The method for delivering the second program P2 to the second node 2 can be any method. The second program P2 may be downloaded to the second node 2 via the communication network N; or the second program P2 may be stored in a non-transitory computer-readable recording medium, and then installed in the second node 2 via the recording medium.
The control unit 25 is a functional block that is put into practice when the arithmetic processing unit, such as a CPU or MPU, provided in the second node 2 retrieves the second program P2 stored in the storage unit 24 into a main storage device, such as RAM, and executes the second program P2. The control unit 25 includes a contract document selection unit 251, an address entry unit 252, a signature unit 253, and a registration unit 254. The function of these units will be described later.
As shown in
The storage unit 34 stores a storage program P3 according to this embodiment. The storage program P3 is a program for causing the storage node 3 to execute a part of the processing steps of a smart contract execution service. The method for delivering the storage program P3 to the storage node 3 can be any method. The storage program P3 may be downloaded to the storage node 3 via the communication network N; or the storage program P3 may be recorded in a non-transitory computer-readable recording medium, and then installed in the storage node 3 via the recording medium.
The control unit 35 is a functional block that is put into practice when the arithmetic processing unit, such as a CPU or MPU, provided in the storage node 3 retrieves the storage program P3 stored in the storage unit 34 into a main storage device, such as RAM, and executes the storage program P3. The control unit 35 includes a second identification information generation unit 351, a contract document confirmation unit 352, a storage execution unit 353, a contract completion determination unit 354, and a data transmission unit 355. The function of these units will be described later.
In this embodiment, the control unit 15 in the first node 1, the control unit 25 in the second node 2, and the control unit 35 in the storage node 3, respectively illustrated in
First, in the first node 1, the catalog preparation unit 151 prepares a catalog for explaining the content of personal data D1, which is confidential information (step S1). If the personal data D1 is a medical image, the catalog contains, for example, the user's gender, height, weight, and medical history, the date and time of photographing, and the type of format.
Subsequently, the first identification information generation unit 152 in the first node 1 generates identification information for the personal data D1 (step S2, first identification information generation step). The specific content of identification information can be any content; in this embodiment, the first identification information generation unit 152 calculates a hash value of the personal data D1 (“Hash-D”), and determines the hash value (Hash-D) to be the identification information.
Subsequently, the template acquisition unit 153 in the first node 1 acquires a template T1 for a contract document for selling the personal data D1 (step S3, template acquisition step). In this embodiment, the template acquisition unit 153 retrieves the template T1 stored in the storage unit 14 into the main storage device to acquire the template T1. When the template T1 is not stored in the storage unit 14, the template acquisition unit 153 may download the template T1 from another node, or prepare the template T by user operation to acquire the template T1.
Refer back to
The space for entering a data-receiving address in the contract document is for entering the address of the buyer of data (Buyer). Thus, the space is left blank at this stage.
Refer back to
In the first node 1, the storage request unit 156 transmits the personal data D1 to the storage node 3, and requests the storage node 3 to store the personal data D1 (step S6, storage request step). The storage node 3 may be suitably selected by the first node 1, or may be a node designated by a vendor that offers the smart contract execution service. The request may contain access information for the contract document uploaded in step S5. In step S6, the storage request unit 156 may transmit the personal data D1 together with the identification information (a hash value (Hash-D)) to the storage node 3.
As described above, the initial steps S1 to S6 are performed in the first node 1.
Subsequently, when the storage node 3 has received the request from the storage request unit 156 in the first node 1, the second identification information generation unit 351 in the storage node 3 calculates the hash value of the personal data D1 (=Hash-D) as its identification information H1 (step S7). When the storage request unit 156 has transmitted the identification information together with the personal data D1 to the storage node 3 in step S6, step S7 may be skipped.
Additionally, the contract document confirmation unit 352 accesses the contract document uploaded in step S5. On the basis of the identification information H1, the contract document confirmation unit 352 confirms that the contract document that includes the identification information H1 entered therein is released (step S8). Step S8 may be skipped.
Thereafter, the storage execution unit 353 in the storage node 3 stores the personal data D1 and the identification information H1 in the storage unit 34 of the storage node 3 (step S9, storage execution step). The storage location of the personal data D1 and the identification information H1 can be any location. The storage location may be another storage communicable with the storage node 3. When the contract document is not released to the nodes other than the second node 2, step S9 may be performed without performing step S8.
Subsequently, the contract completion determination unit 354 in the storage node 3 accesses the blockchain 4 at regular intervals to search whether a contract document that includes the identification information H1 entered therein is registered in the blockchain 4 to determine whether the contract in the contract document has been completed (step S10, contract completion determination step). The interval at which the contract completion determination unit 354 accesses the blockchain 4 can be any interval, and may be the same as the interval at which a new block is added to the blockchain 4. In this embodiment, the crypto currency for use in the smart contract is Bitcoin; thus, the contract completion determination unit 354 accesses the blockchain 4 about every 10 minutes.
In step S5, the contract document uploaded together with the catalog in the contract document release server S is released to all nodes that are accessible to the contract document release server S, as described above. Here, it is assumed that the user of the second node 2, among these nodes, browsed the catalog and contract document, and wished to buy the personal data D1.
In this case, for example, in response to the user's operation via the input unit 21, the contract document selection unit 251 in the second node 2 selects the released contract document, and downloads the contract document in the second node 2 (step S11, contract document selection step). Downloading the contract document, however, is not essential.
Subsequently, the address entry unit 252 in the second node 2 enters the data-receiving address of the second node 2 in the address area of the selected contract document (step S12, address entry step), and the signature unit 253 signs the contract document (step S13, signature step). This completes a contract document in which the data-receiving address of the second node 2 (abc@defg.com) is entered in the address entry space of the contract document, and the electronic signature of the buyer of data is placed in the signature space for the buyer (Buyer) as shown in
Subsequently, the registration unit 254 in the second node 2 registers in the blockchain 4 the contract document that includes the data-receiving address entered by the address entry unit 252 and the signature placed by the signature unit 253 (step S14, registration step). Upon completion of the registration, a contract for providing the personal data D1 to the user of the second node 2 is completed.
Thereafter, the contract completion determination unit 354 in the storage node 3 accesses the blockchain 4. When confirming that the contract document is registered in the blockchain 4, the contract completion determination unit 354 determines that the contract has been completed (step S15).
In response to this step, the data transmission unit 355 in the storage node 3 transmits the personal data D1 stored in the storage unit 34 to the data-receiving address entered in the address area of the contract document (abc@defg.com) (step S16, data transmission step). This enables the second node 2 to receive the personal data D1. The data-receiving address can be any address; and may be, for example, an e-mail address, a storage area address, or a postal address.
As described above, although the personal data D1 is once stored in the storage node 3 from the first node 1 and sent to the second node 2 from the storage node 3, the contract document does not include the record of the storage location of the personal data D1; instead, the data-receiving address of the second node 2, which is the buyer, is described in the contract document. When the contract is completed, the personal data D1 is sent to the data-receiving address described in the contract document from the storage node 3.
Due to this configuration, even when the first node 1, which is the seller of the personal data D1, is offline, the second node 2, which is the buyer, can quickly receive the personal data D1 after completion of the contract. Additionally, because the storage location of the personal data D1 (storage node 3) is not described in the contract document registered in the blockchain 4, hacking attacks against the storage node 3 by a third party can be avoided. Thus, even when the seller is offline, a smart contract of confidential information can be executed safely and quickly.
The second embodiment describes an embodiment in which an intermediary node for executing a smart contract more safely and smoothly is further provided. Note that members that have the same functions as those in the first embodiment are denoted by the same reference numerals, and the description thereof is omitted.
The first node 1′ is an information processing device managed by a seller who owns data that is confidential information, and who wishes to sell the data. In the first node 1′, a first program P1′, described later, is installed. The configuration of the hardware of the first node 1′ is as described for the first node 1 according to the first embodiment.
The second node 2′ is an information processing device managed by a buyer who is to receive the data owned by the first node 1′. In the second node 2′, a second program P2′, described later, is installed. The configuration of the hardware of the second node 2′ is as described for the second node 2 according to the first embodiment.
The P2P storage 3′ is a storage jointly constructed by many and unspecified storage nodes 3″ that are connected via a P2P network. Because the stored data in the P2P storage 3′ is dispersed into the plurality of storage nodes 3″ and concealed, the individual storage nodes 3″ cannot access the entire data.
The intermediary node 5 is an information processing device managed by an intermediary agent who offers a smart contract execution service. In the intermediary node 5, an intermediary program P4, described later, is installed. In this embodiment, the first program P1′ installed in the first node 1, the second program P2′ installed in the second node 2, and the storage program P3 installed in the storage node 3″ are delivered from the intermediary node 5.
As shown in
The storage unit 14 stores a first program P1′, personal data D1, a template T1′, and a decoding key K1 according to this embodiment. The first program P1′ is a program for causing the first node 1′ to execute a part of the processing steps of a smart contract execution service in the information processing system 200. The personal data D1 is, as in the first embodiment, confidential information that the user of the first node 1′ wishes to sell. The template T1′ and the decoding key K1 will be described later.
The control unit 15′ includes the catalog preparation unit 151, the first identification information generation unit 152, the template acquisition unit 153, the contract document preparation unit 154, the contract document release unit 155, the storage request unit 156, an encryption unit 157, and a contract-document-and-others transmission unit 158. Specifically, the control unit 15′ has the configuration of the control unit 15 shown in
As shown in
The storage unit 24 stores the second program P2′ according to this embodiment. The second program P2′ is a program for causing the second node 2′ to execute a part of the processing steps of a smart contract execution service in the information processing system 200.
The control unit 25′ includes the contract document selection unit 251, the address entry unit 252, the signature unit 253, the registration unit 254, a hash value computation unit 255, a hash value transmission unit 256, and a decoding unit 257. The function of these units will be described later.
As shown in
The control unit 35′ includes the contract document confirmation unit 352, the storage execution unit 353, the contract completion determination unit 354, and the data transmission unit 355. Specifically, the control unit 35′ has the configuration of the control unit 35 shown in
As shown in
The storage unit 54 stores an intermediary program P4 according to this embodiment. The intermediary program P4 is a program for causing the intermediary node 5 to execute a part of the processing steps of a smart contract execution service in the information processing system 200.
The control unit 55 is a functional block that is put into practice when the arithmetic processing unit, such as a CPU or MPU, provided in the intermediary node 5 retrieves the intermediary program P4 stored in the storage unit 54 into a main storage device, such as RAM, and executes the intermediary program P4. The control unit 55 includes a verification unit 551, a storage unit 552, a signature unit 553, an upload unit 554, a comparison unit 555, a key transmission unit 556, and a settlement unit 557. The function of these units will be described later.
In this embodiment, the main processing steps in
First, in the first node 1′, the catalog preparation unit 151 prepares a catalog for describing the content of the personal data D1, which is confidential information (step S21). When the personal data D1 is a medical image, the catalog contains, for example, the user's gender, height, weight, and medical history, the date and time of photographing, and the type of format.
Subsequently, the encryption unit 157 in the first node 1′ encrypts the personal data D1 to prepare encrypted data (step S22). The decoding key K1 stored in the storage unit 14 is a key for decoding the encrypted data.
Subsequently, the first identification information generation unit 152 in the first node 1′ generates identification information for the personal data D1 (step S23, first identification information generation step). In this embodiment, the first identification information generation unit 152 calculates the hash value of the personal data D1 (Hash-D) to generate the hash value (Hash-D) as identification information, while calculating the hash value of the catalog (Hash-X) at the same time. Additionally, the first identification information generation unit 152 also calculates the hash value of the encrypted data (encryption hash value, Hash-E).
Subsequently, the template acquisition unit 153 in the first node 1′ acquires a template T1′ for a contract document for selling the personal data D1 (step S24, template acquisition step). The mode for acquisition of the template T1′ is as in the first embodiment.
Refer back to
The space for a data-receiving address in the contract document is for entering the address of the buyer of data. Thus, the space is left blank at this stage.
Refer back to
In response to the request, the verification unit 551 in the intermediary node 5 examines, for example, whether the personal data D1 that the first node 1′ is offering to sell is socially appropriate (e.g., whether any antisocial content is contained), on the basis of the contract document and catalog received from the first node 1′ (step S28). Step S28 may be skipped.
When the personal data D1 is determined to be appropriate, the storage unit 552 in the intermediary node 5 stores in the storage unit 54 the decoding key K1 and the encryption hash value (Hash-E) received from the first node 1′ (step S29).
The signature unit 553 in the intermediary node 5 signs the contract document (step S30). This places an electronic signature on the signature space for the intermediary agent in the contract document as shown in
Subsequently, the upload unit 554 in the intermediary node 5 uploads the contract document received from the first node 1′ on a predetermined contract document release server (e.g., a website operated by the intermediary agent), together with the catalog, thereby releasing the contract document (step S31, contract document release step).
In the first node 1′, the storage request unit 156 transmits the personal data D1 concealed through, for example, encryption and/or dispersion, together with the identification information (the hash value, Hash-D), to a group of storage nodes 3″ that jointly constitute the P2P storage 3′; and requests the group of storage nodes 3″ to individually store and conceal the dispersed item of the personal data D1 (step S32, storage request step). This request may contain access information for the contract document uploaded in step S31. Specifically, in this embodiment, unlike in the first embodiment, the storage request unit 156 transmits concealed data, instead of the personal data D1, to the group of storage nodes 3″; and requests the storage nodes 3″ to individually store and conceal the dispersed item of the data.
Subsequently, when each of the storage nodes 3″ has received the request from the storage request unit 156 in the first node 1′, the contract document confirmation unit 352 accesses the contract document uploaded in step S31 and confirms that the contract document that includes the identification information entered therein is released (step S33) on the basis of the identification information received from the storage request unit 156. Step S33 may be skipped.
Thereafter, the storage execution unit 353 of each storage node 3″ stores the concealed data and identification information (hash value (Hash-D)=personal data (hash value H1)) received from the first node 1′ in their own storage unit 34 (step S34, storage execution step). Specifically, in this embodiment, unlike in the first embodiment, the storage execution unit 353 stores concealed data, instead of the personal data D1.
Subsequently, the contract completion determination unit 354 of each storage node 3″ accesses the blockchain 4 at regular intervals, and searches whether a contract document that includes the identification information is registered in the blockchain 4 to determine whether the contract in the contract document has been completed (step S35, contract completion determination step).
Here, it is assumed that the user of the second node 2′ browsed the contract document and catalog released in step S31, and wished to buy the personal data D1.
In this case, the contract document selection unit 251 in the second node 2′ selects the released contract document, for example, in response to the operation via the input unit 21 by the user, and downloads the contract document in the second node 2′ (step S36, contract document selection step). Note that downloading the contract document is not essential.
Subsequently, the address entry unit 252 in the second node 2′ enters the data-receiving address of the second node 2′ in the address area of the selected contract document (step S37, address entry step), and the signature unit 253 signs the contract document (step S38, signature step). This completes a contract document in which the data-receiving address of the second node 2′ (abc@defg.com) is entered in the address entry space in the contract document, and the electronic signature of the buyer of data is placed in the signature space for the buyer (Buyer) as shown in
Subsequently, the registration unit 254 in the second node 2′ registers in the blockchain 4 the contract document that includes the data-receiving address entered by the address entry unit 252 and the signature placed by the signature unit 253 (step S39, registration step). After completion of the registration, a contract for selling the personal data D1 to the user of the second node 2′ is completed.
After completion of the contract, the payment for the personal data D1 is once deposited in the intermediary node 5 (S40). More specifically, the amount of payment for the personal data D1 together with an intermediary charge is transferred from the second node 2′ to the intermediary node 5.
Thereafter, the contract completion determination unit 354 of each storage node 3″ accesses the blockchain 4. When the contract completion determination unit 354 has confirmed that the contract document is registered in the blockchain 4, the contract completion determination unit 354 determines that the contract in the contract document has been completed (step S41).
In response to this step, the data transmission unit 355 in each storage node 3″ that has determined the completion of the contract in the contract document transmits the concealed data stored in the storage unit 34 (step S42, data transmission step) to the data-receiving address (abc@defg.com) entered in the address area of the contract document. Specifically, in this embodiment, unlike in the first embodiment, each data transmission unit 355 transmits concealed data, instead of the personal data D1, to the second node 2′. Because of this step, the second node 2′ receives a set of the concealed data and combines the set of the concealed data, thereby acquiring encrypted data (step S43).
Subsequently, the second node 2′ and the intermediary node 5 perform the following processing steps to decode the encrypted data and obtain the personal data D1.
First, in the second node 2′, the hash value computation unit 255 calculates an encryption hash value (Hash-E′), which is a hash value of the encrypted data received from the storage nodes 3″ (step S44). Second, the hash value transmission unit 256 transmits the encryption hash value (Hash-E′) calculated by the hash value computation unit 255 to the intermediary node 5 (step S45).
In response to this step, the comparison unit 555 in the intermediary node 5 compares the encryption hash value (Hash-E′) received from the hash value transmission unit 256 with the encryption hash value (Hash-E) stored in the storage unit 54 (step S46). When these two encryption hash values (Hash-E, Hash-E′) compared by the comparison unit 555 match each other, the key transmission unit 556 transmits the decoding key K1 stored in the storage unit 54 to the second node 2′ (step S47).
In the second node 2′, the decoding unit 257 decodes the encrypted data acquired in step S43 by using the decoding key K1 received from the intermediary node 5 (step S48). Because of this step, the second node 2′ can acquire the personal data D1, which has been decoded from the encrypted data.
If the second node 2′ cannot acquire the personal data D1 due to some problem, some measures can be taken; for example, the second node 2′ can request the intermediary node 5 to refund the deposited payment.
After a predetermined period of time has passed from the transmission of the decoding key K1 to the second node 2′ by the key transmission unit 556, for example, without a refund request from the second node 2′, the settlement unit 557 in the intermediary node 5 performs a settlement process (steps S49 to S51). Specifically, the settlement unit 557 prepares a transaction for sending the payment to the first node 1′, which is the provider of the personal data D1 (step S49), and registers the transaction in the blockchain 4 (step S50). This step allows the payment to be sent to the first node 1′ (step S51).
In this embodiment, encrypted data prepared by encrypting the personal data D1 is once transferred from the first node 1′ to a group of storage nodes 3″ that jointly constitute the P2P storage 3′ such that the encrypted data is dispersed, concealed, and stored in the individual storage nodes 3″; and then sent from the group of the storage nodes 3″ to the second node 2′. In the contract document, the data-receiving address of the second node 2′, instead of the storage location of the encrypted data, is described. When a contract has been completed, the encrypted data is sent to the data-receiving address described in the contract document from the group of the storage nodes 3″. Thus, even when the first node 1′ is offline, the encrypted data is quickly transmitted to the second node 2′ after completion of the contract. Additionally, because the storage location of the encrypted data is not described in the contract document registered in the blockchain 4, hacking attacks against the storage nodes 3″ by a third party can be avoided.
Additionally, because the personal data D1 is dispersed, concealed, and stored in a plurality of the storage nodes 3″, the individual storage nodes 3″ cannot see the personal data D1. This reduces the risk of leaking the personal data D1 to a third party. The use of anonymous encrypted communication in various communications can further increase the confidentiality of the location of the first node 1 and the location of the group of the storage nodes 3″, which is the storage location of the dispersed and concealed personal data D1.
When the intermediary node 5 stores the decoding key for decoding the encrypted data and the hash value of the encrypted data, and the second node 2′ has received the encrypted data and has transmitted a hash value of the encrypted data to the intermediary node 5, a decoding key is provided to the second node 2′ on the condition that the intermediary node 5 has confirmed that the stored hash value matches the hash value received from the second node 2′. In this embodiment, as described above, the personal data D1 is once encrypted, and the second node 2′ that has received the encrypted data receives a decoding key on a predetermined condition. Thus, this embodiment can prevent personal data D1 from leaking to a third party more reliably than the first embodiment.
Although two embodiments of the present invention are described above, the present invention is not limited to these embodiments, and various modifications may be made without departing from the spirit and principal concept of the invention. The technical scope of the present invention also includes, for example, an embodiment formed by suitably combining technical means disclosed in each embodiment.
For example, in the first embodiment, the storage request unit 156 may transmit the identification information together with the personal data D1 to the storage node 3, and the storage node 3 may have a configuration not to generate identification information without having the second identification information generation unit 351. In the second embodiment, the storage request unit 156 may not transmit identification information to the storage nodes 3″, and the storage nodes 3″ may have a configuration to generate identification information of the data concealed by the second identification information generation unit 351.
In these embodiments described above, although the information processing system is a platform using the blockchain technique, the present invention is not limited to these cases. The information processing system may be a typical server-client system. In this case, the contract document is registered on a database provided to a server etc. instead of the blockchain.
Number | Date | Country | Kind |
---|---|---|---|
JP2018-211813 | Nov 2018 | JP | national |