Information processing device, information processing method, and information processing program

By dividing data into multiple fragments and distributing them across multiple blockchains, the solution addresses blockchain availability and security issues, ensuring data integrity and confidentiality.

WO2025249089A1PCT designated stage Publication Date: 2025-12-04FUJIFILM CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2025/016630
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-05-27
Filing Date
2025-05-02
Publication Date
2025-12-04

AI Technical Summary

Technical Problem

Existing blockchain systems face issues with long-term availability and potential information leakage due to program bugs or chain forks, leading to application shutdowns and data security risks.

Method used

Divide original data into a predetermined number (k ≥ d) of fragment data and distribute and record at least d pieces across multiple blockchains, ensuring data can be restored from any d fragments, using techniques like secret sharing to enhance availability and confidentiality.

Benefits of technology

Enhances the availability and confidentiality of data stored on blockchains by ensuring data integrity and security through redundancy across multiple chains.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2025016630_04122025_PF_FP_ABST
    Figure JP2025016630_04122025_PF_FP_ABST
Patent Text Reader

Abstract

This information processing device divides original data into data fragments corresponding to a second number k, which is predetermined so that the original data can be restored from any data fragments corresponding to a predetermined first number d (k is greater than or equal to d), and distributes and records at least d data fragments to and in a plurality of blockchains.
Need to check novelty before this filing date? Find Prior Art

Description

Information processing device, information processing method, and information processing program

[0001] The disclosed technology relates to an information processing device, an information processing method, and an information processing program.

[0002] Japanese Patent Application Laid-Open No. 2021-129221 describes a data management system that is configured with a colony server and a center server, in which managed data is divided into main data and partial data, and the main data is stored in the colony server and the partial data in the center server. It also describes that the divided data can be restored.

[0003] Japanese Patent Laid-Open Publication No. 2022-157519 describes an information processing system including multiple information processing devices that each constitute a blockchain network, in which target data is divided, the divided data is distributed and stored in any of the channels to which the multiple information processing devices belong, and the division information is further recorded in the blockchain. It also describes that the divided data can be restored based on the division information stored in the blockchain.

[0004] Japanese Patent Application Laid-Open Publication No. 2023-107165 describes a method in which business data to be backed up is distributed into multiple data fragments, and the multiple data fragments are transferred to multiple storage destinations, i.e., data fragment storage means, and information on the data fragment storage destinations is registered in a blockchain. When an instruction to restore business data is received, the data fragments are collected based on the data fragment storage destination information on the blockchain and the data is restored.

[0005] Although blockchains are known for their high fault tolerance, their long-term availability is not guaranteed, and they may become unusable in the future due to program bugs or chain forks. In such cases, applications that rely on a single blockchain may be forced to shut down. Furthermore, when writing data from an application to a blockchain, there is a risk of information leakage if the original data is written to a single blockchain.

[0006] In one aspect, the present invention aims to provide an information processing device, an information processing method, and an information processing program that enable improved availability of applications that use blockchain and confidentiality of information stored in the blockchain.

[0007] A first aspect of the present disclosure is an information processing device having a processor, wherein the processor divides original data into a predetermined second number k (k is d or greater) of fragment data so that the original data can be restored from any fragment data corresponding to a predetermined first number d, and distributes and records at least d pieces of fragment data across multiple blockchains.

[0008] A second aspect of the present disclosure is an information processing method executed by a computer to divide original data into a predetermined second number k (k is equal to or greater than d) of fragment data so that the original data can be restored from any fragment data corresponding to a predetermined first number d, and to distribute and record at least d pieces of fragment data across multiple blockchains.

[0009] A third aspect of the present disclosure is an information processing program that causes a computer to execute a process of dividing original data into a predetermined second number k (k is equal to or greater than d) of fragment data so that the original data can be restored from any fragment data corresponding to a predetermined first number d, and distributing and recording at least d pieces of fragment data across multiple blockchains.

[0010] On the one hand, it enables improved availability of applications that use blockchain and confidentiality of information stored on the blockchain.

[0011] Fig. 1 is an explanatory diagram showing an example of the configuration of an information processing system; Fig. 2 is a schematic block diagram of an example of a computer that functions as a server and a user terminal of this embodiment; Fig. 3 is a block diagram showing the configuration of a server of this embodiment; Fig. 4 is a block diagram showing the configuration of a server of this embodiment; Fig. 5 is a flowchart showing a data recording processing routine in the server of this embodiment; Fig. 6 is a flowchart showing a data reading processing routine in the server of this embodiment.

[0012] An example of an embodiment of the disclosed technology will be described below with reference to the drawings. Note that the same reference numerals are used to designate identical or equivalent components and parts in each drawing. Also, the dimensional proportions in the drawings are exaggerated for the sake of explanation and may differ from the actual proportions.

[0013] <System Configuration> Fig. 1 is an explanatory diagram showing an example configuration of an information processing system 2. In this embodiment, an information processing system 2 that records and reads data using multiple blockchains will be described. The information processing system 2 includes a server 10 and a user terminal 20. The server 10 and the user terminal 20 are communicatively connected via a network N. The server 10 is also an example of an information processing device.

[0014] The target data may be any data, such as data related to medical care or inventory management.

[0015] The server 10 is, for example, a server computer capable of various information processing and sending and receiving information. Note that the device equivalent to the server 10 is not limited to a server computer, and may be, for example, a personal computer. In this embodiment, the server 10 functions as an information processing device that records and reads data using multiple blockchains.

[0016] The user terminal 20 is a general-purpose computer such as a personal computer. In this embodiment, the user terminal 20 functions as a device that requests the server 10 to write data to the blockchain and read data from the blockchain.

[0017] In this embodiment, the server 10 writes data to the blockchain and reads data from the blockchain. A local user terminal 20 may write data to the blockchain and read data from the blockchain. In other words, the distinction between the two is for convenience, and a single computer may perform a series of processes.

[0018] <Configuration of Server According to This Embodiment> FIG. 2 is a block diagram showing the hardware configuration of the server 10 according to this embodiment.

[0019] 2, the server 10 includes a CPU (Central Processing Unit) 11, a ROM (Read Only Memory) 12, a RAM (Random Access Memory) 13, a storage 14, an input unit 15, a display unit 16, and a communication interface (I / F) 17. Each component is connected to each other via a bus 19 so as to be able to communicate with each other.

[0020] The CPU 11 is a central processing unit that executes various programs and controls each component. That is, the CPU 11 reads programs from the ROM 12 or the storage 14 and executes the programs using the RAM 13 as a work area. The CPU 11 controls the above components and performs various arithmetic processing in accordance with the programs stored in the ROM 12 or the storage 14. In this embodiment, the ROM 12 or the storage 14 stores an information processing program for recording and reading data. The information processing program may be a single program, or may be a group of programs consisting of multiple programs or modules.

[0021] The ROM 12 stores various programs and various data. The RAM 13 temporarily stores programs or data as a working area. The storage 14 is configured with an HDD (Hard Disk Drive) or an SSD (Solid State Drive) and stores various programs including the operating system and various data.

[0022] The input unit 15 includes a pointing device such as a mouse and a keyboard, and is used to input various types of information.

[0023] The display unit 16 is, for example, a liquid crystal display, and displays various information. The display unit 16 may be a touch panel type and function as the input unit 15.

[0024] The communication interface 17 is an interface for communicating with other devices, and uses standards such as Ethernet (registered trademark), FDDI, and Wi-Fi (registered trademark).

[0025] Next, a description will be given of the functional configuration of the server 10. Figures 3 and 4 are block diagrams showing examples of the functional configuration of the server 10.

[0026] As shown in FIGS. 3 and 4, the server 10 functionally comprises a data dividing unit 21, a data recording unit 23, a data reading unit 31, and a data restoring unit 33.

[0027] When dividing the original data, the data division unit 21 divides the original data into a predetermined second number k (k is an integer equal to or greater than d) of fragment data so that the original data can be restored from any fragment data corresponding to a predetermined first number d (d is an integer equal to or greater than 2). At this time, the data division unit 21 divides the original data into fragment data from which the original data cannot be restored from less than d fragment data.

[0028] The data recording unit 23 distributes and records at least d pieces of fragment data across multiple blockchains 50A, 50B, and 50C (see Figure 3).

[0029] Here, it is assumed that there are multiple blockchains and applications that use them. When writing data to a blockchain, the application uses a technique such as secret sharing to divide the data into k pieces of fragmented data, each of which has no meaning in itself. At this time, these k pieces of fragmented data are designed so that the original data can be restored when d pieces of fragmented data are collected. Then, a query is made to all linked blockchains. If responses are returned from two or more blockchains, k different pieces of fragmented data are recorded in each of the blockchains that responded (e.g., blockchains 50A, 50B, and 50C). At this time, duplication is allowed, and the k different pieces of fragmented data are recorded in each of the blockchains that responded. Here, allowing duplication means that one piece of fragmented data is recorded in multiple blockchains in duplicate. Information indicating which blockchain and under which ID the fragmented data was written is managed in a list database 40 on the application side.

[0030] Furthermore, as an example of a method for determining which blockchain to write fragmented data to, the following method may be used. That is, after allocating one piece of fragmented data to each blockchain that has responded, if any unallocated fragmented data remains, it may be allocated one by one to a different blockchain. Note that this method is not limited to this, and any algorithm may be used to determine the destinations to which fragmented data should be written as long as the destinations are distributed.

[0031] Each of the blockchains 50A, 50B, and 50C is constructed by a blockchain network consisting of multiple computer terminals. The blockchains 50A, 50B, and 50C are formed by chronologically linking blocks 51A, 51B, and 51C, each containing data and an ID for identifying the data. The data recording unit 23 can prevent data tampering by writing the data to one of the blocks 51A, 51B, and 51C on the blockchains 50A, 50B, and 50C every time data is written.

[0032] Of the maximum k blockchains that record fragmented data, some of the blockchains can be switched during application operation. If there is a blockchain whose operation is clearly ending, the data can be switched to a new blockchain. Furthermore, there may be more than k linked blockchains.

[0033] Furthermore, multiple pieces of fragmented data may be recorded in a given blockchain. For example, when k = 12 and d = 8, three pieces of fragmented data may be recorded in each of four blockchains. Furthermore, in a configuration having multiple subsets of a blockchain, fragmented data may be distributed and recorded in different subsets. For example, in the consortium-type blockchain Hyperledger Fabric, fragmented data may be distributed and recorded in multiple subnetworks composed of subsets of blockchain nodes.

[0034] The data reading unit 31 refers to the list database 40 and reads, from the plurality of blockchains 50A, 50B, and 50C, d or more pieces of fragment data corresponding to the data for which a read request has been made (see FIG. 4). Specifically, the data reading unit 31 reads, from the plurality of blockchains 50A, 50B, and 50C, a plurality of pieces of fragment data whose number is equal to or less than the number of the plurality of blockchains.

[0035] The data restoration unit 33 restores the original data from the d or more pieces of fragment data that have been read.

[0036] If the data restoration unit 33 is unable to restore the original data, it repeatedly reads out a plurality of pieces of fragmented data from a plurality of block chains and restores the original data from the read out plurality of pieces of fragmented data.

[0037] Specifically, if the data restoration unit 33 cannot restore the original data, it repeatedly reads multiple pieces of fragmented data from multiple blockchains up to a predetermined number of times. The data restoration unit 33 restores the original data from the multiple pieces of fragmented data that have been read, and if the original data cannot be restored, it associates a flag with the original data indicating that restoration is impossible.

[0038] There is no restriction on the order in which each blockchain is queried when reading data; it may be selected in order of fastest response speed, or may be selected based on criteria such as the reliability of the blockchain itself.

[0039] <Configuration of User Terminal According to This Embodiment> FIG. 2 is a block diagram showing the hardware configuration of the user terminal 20 according to this embodiment.

[0040] 2, the user terminal 20, like the server 10, has a CPU 11, a ROM 12, a RAM 13, a storage 14, an input unit 15, a display unit 16, and a communication interface (I / F) 17. Each component is connected to each other via a bus 19 so as to be able to communicate with each other.

[0041] The ROM 12 or the storage 14 stores a program for requesting data writing and data reading from the server 10. This program may be a single program, or may be a group of programs made up of multiple programs or modules.

[0042] The input unit 15 accepts data to be written to the blockchains 50A, 50B, and 50C. For example, medical data and inventory data are accepted. The input unit 15 also accepts read requests to read data from the blockchains 50A, 50B, and 50C.

[0043] When the CPU 11 receives data to be written to the blockchains 50A, 50B, and 50C, it requests the server 10 to write the data.

[0044] When the CPU 11 receives a read request to read data from the blockchains 50A, 50B, and 50C, it requests the server 10 to read the data.

[0045] <Operation of Server 10 According to This Embodiment> Next, the operation of the server 10 according to this embodiment will be described.

[0046] First, the CPU 11 reads out an information processing program from the ROM 12 or the storage 14, loads it into the RAM 13, and executes it, thereby performing the data recording process shown in Fig. 5. Also, it is assumed that the server 10 has received a data write request from the user terminal 20.

[0047] First, in step S100 , the CPU 11 acquires a data write request received from the user terminal 20 .

[0048] In step S102, the CPU 11 functions as the data dividing unit 21 to divide the data included in the received data write request into k pieces of data fragments.

[0049] In step S104, the CPU 11, functioning as the data recording unit 23, makes inquiries to all linked blockchains to check their operating status.

[0050] In step S106, the CPU 11, functioning as the data recording unit 23, determines whether or not responses have been received from multiple blockchains. If responses have been received from multiple blockchains, the process proceeds to step S110. On the other hand, if the number of blockchains that have responded is less than two, the process proceeds to step S108. In step S108, the CPU 11, functioning as the data recording unit 23, waits for a certain period of time and then returns to step S104.

[0051] In step S110, the CPU 11, as the data recording unit 23, determines to which of the responding blockchains the k different pieces of fragmented data should be written. At this time, overlapping may be allowed when determining the blockchain to which the k different pieces of fragmented data should be written.

[0052] In step S112, the CPU 11, as the data recording unit 23, writes k different pieces of fragment data to the determined block chain, and registers information indicating which block chain and with which ID the fragment data was written in the list database 40. Then, the CPU 11 ends the data recording process.

[0053] Next, the CPU 11 reads out the information processing program from the ROM 12 or the storage 14, expands it into the RAM 13, and executes it, thereby performing the data read process shown in Fig. 6. Also, it is assumed that the server 10 has received a data read request from the user terminal 20.

[0054] First, in step S120 , the CPU 11 acquires a data read request received from the user terminal 20 .

[0055] In step S122, the CPU 11 functions as the data reading unit 31 and refers to the list database 40 to obtain a list of blockchains in which fragmentary data of the data to be read is recorded.

[0056] In step S124, the CPU 11 functions as the data reading unit 31 and reads fragment data from each blockchain.

[0057] In step S126, the CPU 11 determines whether or not d or more pieces of fragment data have been acquired as the data restoration unit 33. If d or more pieces of fragment data have been acquired, the process proceeds to step S128, and if the number of acquired fragment data is less than d, the process proceeds to step S130.

[0058] In step S128, the CPU 11 functions as the data restoration unit 33 to restore the original data from the acquired fragmented data, and then ends the data read process.

[0059] In step S130, the CPU 11, functioning as the data restoration unit 33, adds 1 to the data restoration unsuccessful counter.

[0060] In step S132, the CPU 11, functioning as the data restoration unit 33, determines whether the data restoration unsuccessful counter has exceeded a specified value. If the data restoration unsuccessful counter has exceeded the specified value, the process proceeds to step S134. On the other hand, if the data restoration unsuccessful counter has not exceeded the specified value, the process returns to step S124.

[0061] In step S134, the CPU 11 functions as the data restoration unit 33 to associate a restoration impossible flag indicating that the data cannot be restored to its original state with the data to be read, and then ends the data read process.

[0062] Next, an example of dividing data into fragments and writing them will be described. Here, the original data is assumed to be "1234".

[0063] In the first example, a checksum is used so that data can be restored even if it is lost. For example, the data is divided into fragments "1," "2," "3," "4," and "checksum" and written. Alternatively, the data is divided into fragments "1, 2, 3, 4," "1, 2, 3, checksum," "2, 3, 4, checksum," and "1, 2, 3, 4, checksum" and written.

[0064] In the second example, fragment data "1" and "2" are written to the blockchain 50A, and fragment data "2" and "3" are written to the blockchain 50B. Furthermore, fragment data "3" and "4" are written to the blockchain 50C, and fragment data "4" and "1" are written to the blockchain 50D.

[0065] In the third example, fragment data "1" and "2" are written to the blockchain 50A, and fragment data "2" is written to the blockchain 50B. Furthermore, fragment data "3" is written to the blockchain 50C, and fragment data "4" and "1" are written to the blockchain 50D.

[0066] In a fourth example, fragment data "1", "1", and "2" are written to the blockchain 50A, and fragment data "2", "3", and "3" are written to the blockchain 50B. Furthermore, fragment data "3" and "4" are written to the blockchain 50C, and fragment data "4" and "1" are written to the blockchain 50D.

[0067] As described above, according to the information processing system of this embodiment, when dividing original data, the data is divided into a predetermined second number k (k is d or greater) of fragmented data so that the original data can be restored from any fragmented data corresponding to a predetermined first number d, and at least d fragmented data are distributed and recorded in multiple blockchains. In this way, it is possible to improve the availability of applications that use blockchain and to keep information stored in the blockchain confidential.

[0068] <Modifications> The present invention is not limited to the above-described embodiment, and various modifications and applications are possible without departing from the gist of the present invention.

[0069] For example, when fragmented data is distributed and recorded in multiple blockchains, the fragmented data may be distributed according to the reliability of each blockchain. For example, the higher the reliability of a blockchain, the more fragmented data may be distributed to be recorded.

[0070] In addition, when reading data, the example has been described in which the list database 40 is referenced to obtain a list of blockchains in which fragment data of the data to be read is recorded, but the present invention is not limited to this. For example, an inquiry may be made to all linked blockchains using the ID of the fragment data of the data to be read.

[0071] Furthermore, the various processes executed by the CPU after reading the software (program) in each of the above embodiments may be executed by various processors other than the CPU. Examples of processors in this case include PLDs (Programmable Logic Devices) whose circuit configuration can be changed after manufacture, such as FPGAs (Field-Programmable Gate Arrays), and dedicated electrical circuits, such as ASICs (Application Specific Integrated Circuits), which are processors having a circuit configuration designed specifically to execute specific processes. Furthermore, the data recording process and data reading process may be executed by one of these various processors, or may be executed by a combination of two or more processors of the same or different types (e.g., multiple FPGAs, a combination of a CPU and an FPGA, etc.). Furthermore, the hardware structure of these various processors is, more specifically, an electrical circuit that combines circuit elements such as semiconductor elements.

[0072] In addition, in each of the above embodiments, the information processing program is pre-stored (installed) in the storage 14, but this is not limiting. The program may be provided in a form stored on a non-transitory storage medium such as a CD-ROM (Compact Disk Read Only Memory), a DVD-ROM (Digital Versatile Disk Read Only Memory), or a USB (Universal Serial Bus) memory. The program may also be downloaded from an external device via a network.

[0073] The program of the present application can be provided as a program product. The program product includes any product for providing the program. For example, the program product includes a program provided over a network such as the Internet, and a non-transitory computer-readable recording medium such as a CD-ROM or DVD on which the program is stored.

[0074] The embodiments disclosed herein are illustrative in all respects and should not be considered limiting. The scope of the present invention is defined by the claims, not by the above meaning, and is intended to include all modifications within the meaning and scope of the claims.

[0075] The following additional notes are provided regarding the above-described embodiments.

[0076] (Supplementary Note 1) An information processing device having a processor, wherein the processor, when dividing original data, divides the data into a predetermined second number k (k is equal to or greater than d) of fragmented data so that the original data can be restored from any fragmented data corresponding to a predetermined first number d, and distributes and records at least d pieces of fragmented data across multiple blockchains.

[0077] (Supplementary Note 2) The information processing device according to Supplementary Note 1, wherein the processor divides the original data into fragmented data pieces from which the original data cannot be restored using less than d fragmented data pieces.

[0078] (Supplementary Note 3) The information processing device according to Supplementary Note 2, wherein the processor reads d or more pieces of fragment data from the plurality of blockchains, and restores the original data from the d or more pieces of fragment data that have been read.

[0079] (Supplementary Note 4) The information processing device according to Supplementary Note 3, wherein the processor reads out a plurality of fragment data from the plurality of block chains, the number of fragment data being equal to or less than the number of the plurality of block chains.

[0080] (Supplementary Note 5) The information processing device according to Supplementary Note 3, wherein the processor, if unable to restore the original data, repeatedly reads multiple pieces of fragment data from the multiple blockchains and restores the original data from the read multiple pieces of fragment data.

[0081] (Supplementary Note 6) The information processing device according to any one of Supplementary Notes 1 to 5, wherein the processor, if unable to restore the original data, repeatedly reads multiple pieces of fragment data from the multiple block chains up to a predetermined number of repetitions, restores the original data from the read multiple pieces of fragment data, and, if unable to restore the original data, associates a flag with the original data indicating that restoration is not possible.

[0082] (Supplementary Note 7) An information processing method executed by a computer, which divides original data into a predetermined second number k (k is equal to or greater than d) of fragmented data so that the original data can be restored from any fragmented data corresponding to a predetermined first number d, and distributes and records at least d pieces of fragmented data across multiple blockchains.

[0083] (Supplementary Note 8) An information processing program that causes a computer to execute a process of dividing original data into a predetermined second number k (k is equal to or greater than d) of fragmented data so that the original data can be restored from any fragmented data corresponding to a predetermined first number d, and distributing and recording at least d pieces of fragmented data across multiple blockchains.

[0084] The disclosure of Japanese Application No. 2024-085683 is incorporated herein by reference in its entirety.

[0085] All publications, patent applications, and technical standards mentioned in this specification are herein incorporated by reference to the same extent as if each individual publication, patent application, or technical standard was specifically and individually indicated to be incorporated by reference.

Claims

1. An information processing device having a processor, wherein the processor, when dividing original data, divides the data into a predetermined second number k (k is equal to or greater than d) of fragmented data so that the original data can be restored from any fragmented data corresponding to a predetermined first number d, and distributes and records at least d pieces of fragmented data across multiple blockchains.

2. The information processing device according to claim 1, wherein the processor divides the original data into fragmented data pieces from which the original data cannot be restored using less than d fragmented data pieces.

3. The information processing device according to claim 2, wherein the processor reads d or more pieces of fragment data from the plurality of blockchains, and restores the original data from the d or more pieces of fragment data that have been read.

4. The information processing device according to claim 3, wherein the processor reads out a plurality of fragment data from the plurality of blockchains, the number of fragment data being equal to or less than the number of the plurality of blockchains.

5. The information processing device according to claim 3, wherein the processor, if unable to restore the original data, repeatedly reads multiple pieces of fragmented data from the multiple block chains and restores the original data from the read multiple pieces of fragmented data.

6. The information processing device of claim 1, wherein the processor, if unable to restore the original data, repeatedly reads multiple pieces of fragment data from the multiple blockchains up to a predetermined number of repetitions, restores the original data from the read multiple pieces of fragment data, and, if unable to restore the original data, associates a flag with the original data indicating that restoration is not possible.

7. An information processing method executed by a computer, in which original data is divided into a predetermined second number k (k is equal to or greater than d) of fragmented data so that the original data can be restored from any fragmented data equivalent to a predetermined first number d, and at least d fragmented data are distributed and recorded on multiple blockchains.

8. An information processing program that causes a computer to execute the following process: when dividing original data, divide the original data into a predetermined second number k (k is d or greater) of fragmented data so that the original data can be restored from any fragmented data equivalent to a predetermined first number d, and distribute and record at least d pieces of fragmented data across multiple blockchains.

Citation Information

Patent Citations

  • Information communication system

    JP2007228284A

  • Access restriction system, access restriction method and access restriction program

    JP2019174995A

  • Information code reader, method for reading information code, and information code reading program

    JP2020135358A