WO2025258323A1 - 情報処理装置、情報処理方法、及び情報処理プログラム - Google Patents

情報処理装置、情報処理方法、及び情報処理プログラム

Info

Publication number
WO2025258323A1
WO2025258323A1 PCT/JP2025/017902 JP2025017902W WO2025258323A1 WO 2025258323 A1 WO2025258323 A1 WO 2025258323A1 JP 2025017902 W JP2025017902 W JP 2025017902W WO 2025258323 A1 WO2025258323 A1 WO 2025258323A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
information processing
requests
write
past
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
PCT/JP2025/017902
Other languages
English (en)
French (fr)
Inventor
真之亮 其田
豊 大石
敦 伊東
優子 増田
雄治 赤田
冴 根芝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Corp
Original Assignee
Fujifilm Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujifilm Corp filed Critical Fujifilm Corp
Publication of WO2025258323A1 publication Critical patent/WO2025258323A1/ja
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Definitions

  • the disclosed technology relates to an information processing device, an information processing method, and an information processing program.
  • Patent Publication No. 2020-528586 describes a method for uploading transaction data to a consortium blockchain by monitoring the system status of the blockchain system and determining whether or not to upload transaction data based on this status.
  • JP 2021-43770 A describes a mode in which content received as a target for blockchain registration is determined to be on hold if it is larger than a predetermined capacity, and a hold message is sent to the sender of the content.
  • JP 2021-35041 A describes data verification using both private and public blockchains.
  • JP 2021-56943 A describes a data management system that sorts and records multiple received files into two different blockchains depending on the file status.
  • Republished Publication No. 2020-44471 describes a blockchain system consisting of an on-chain system that shares transaction history information via blockchain data, and an off-chain system that acquires asset information recorded in the blockchain data and performs specified information processing based on the acquired asset information.
  • a public blockchain stores data on a decentralized network with an unspecified number of network participants, who mutually guarantee that their data has not been tampered with. For this reason, a public blockchain is a system that excels in the three major elements of information security: integrity and availability.
  • public blockchains due to the nature of the system, public blockchains have issues such as long transaction processing times and high running costs due to the fees charged for each transaction executed.
  • private blockchains have the advantage of short transaction execution times and low fees per transaction, the network is not operated by an unspecified number of participants. As a result, private blockchains have the problem of lower "integrity” and "availability" compared to public blockchains.
  • the objective is to provide an information processing device, information processing method, and information processing program that takes into consideration data integrity and availability, while also enabling improved transaction execution performance and reduced running costs.
  • a first aspect of the present disclosure is an information processing device including a processor, which receives a data write request, writes data related to the data write request to a private blockchain, references a history of multiple past data write requests, and suspends the received data write request if the frequency of multiple past data write requests exceeds a predetermined value range.
  • a second aspect of the present disclosure is an information processing method executed by a computer to receive a data write request, write data related to the data write request to a private blockchain, refer to a history of multiple past data write requests, and suspend the received data write request if the frequency of the multiple past data write requests exceeds a predetermined value range.
  • a third aspect of the present disclosure is an information processing program that causes a computer to receive a data write request, write data related to the data write request to a private blockchain, refer to a history of multiple past data write requests, and, if the frequency of multiple past data write requests exceeds a predetermined value range, suspend the received data write request.
  • FIG. 1 is an explanatory diagram illustrating 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 according to the present embodiment.
  • FIG. 2 is a block diagram showing the configuration of a server according to the first embodiment.
  • 10 is a flowchart showing a data recording process in the server of the first embodiment.
  • 10 is a flowchart illustrating a notification process in the server of the present embodiment.
  • FIG. 10 is a block diagram showing the configuration of a server according to a second embodiment.
  • 10 is a flowchart showing a data recording process in a server according to a second embodiment;
  • 10 is a flowchart illustrating a process of writing to a public blockchain in a server according to the second embodiment.
  • FIG. 1 is an explanatory diagram showing an example of the configuration of an information processing system 2.
  • 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.
  • the data in question can be any type of data, such as medical data or inventory management data.
  • the server 10 is, for example, a server computer capable of various information processing and sending and receiving information.
  • the device equivalent to the server 10 is not limited to a server computer, and may be, for example, a personal computer.
  • the server 10 functions as an information processing device that records and reads data using multiple blockchains.
  • the user terminal 20 is a general-purpose computer such as a personal computer.
  • 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.
  • the server 10 writes data to the blockchain and reads data from the blockchain, but this is not limited to this.
  • a local user terminal 20 may also 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 the series of processes.
  • FIG. 2 is a block diagram showing the hardware configuration of the server 10 of this embodiment.
  • the server 10 has a CPU (Central Processing Unit) 11, a ROM (Read Only Memory) 12, a RAM (Random Access Memory) 13, storage 14, an input unit 15, a display unit 16, and a communication interface (I/F) 17.
  • CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • storage 14 an input unit
  • display unit 16 an output unit
  • I/F communication interface
  • CPU 11 is a central processing unit that executes various programs and controls each component. That is, CPU 11 reads programs from ROM 12 or storage 14 and executes the programs using RAM 13 as a work area. CPU 11 controls the above components and performs various arithmetic processing in accordance with the programs stored in ROM 12 or storage 14.
  • ROM 12 or storage 14 stores an information processing program for recording and reading data.
  • the information processing program may be a single program, or a group of programs consisting of multiple programs or modules.
  • ROM 12 stores various programs and data.
  • RAM 13 temporarily stores programs or data as a working area.
  • Storage 14 is composed of an HDD (Hard Disk Drive) or SSD (Solid State Drive) and stores various programs, including the operating system, and various data.
  • the input unit 15 includes a pointing device such as a mouse and a keyboard, and is used to perform various inputs.
  • the display unit 16 is, for example, a liquid crystal display, and displays various information.
  • the display unit 16 may also be a touch panel type and function as the input unit 15.
  • 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).
  • Figure 3 is a block diagram showing an example of the functional configuration of the server 10.
  • the server 10 is functionally configured to include an acquisition unit 21, a first registration unit 23, a second registration unit 25, and a notification unit 27.
  • the acquisition unit 21 receives a data writing request sent from the user terminal 20.
  • the first registration unit 23 writes data related to the received data write request to the private blockchain 50A, one of the multiple blockchains 50A and 50B (see Figure 3).
  • a private blockchain is a blockchain that can only be accessed by specific users.
  • private blockchain also includes consortium blockchains.
  • a private blockchain is also called a permissioned blockchain.
  • a public blockchain is a blockchain that can be accessed by all users.
  • a public blockchain is also called a permissionless blockchain.
  • the private blockchain 50A and the public blockchain 50B are each constructed by a blockchain network consisting of multiple computer terminals.
  • the private blockchain 50A and the public blockchain 50B are chronologically linked blocks 51A and 51B, each containing data and an ID for identifying the data.
  • the first registration unit 23 and the second registration unit 25 write the data to either block 51A or 51B on the private blockchain 50A or the public blockchain 50B each time data is written, thereby preventing data tampering.
  • the second registration unit 25 references a history database 40 that stores the history of multiple past data write requests. If the frequency of data write requests within a certain period of time in the past exceeds a predetermined value range, the second registration unit 25 suspends the data write request to the public blockchain 50B.
  • “Holding a data write request” means recording the data write request in memory such as storage 14. Furthermore, the history of multiple past data write requests refers to the history of multiple data write requests that occurred earlier than the received data write request.
  • the second registration unit 25 refers to the history database 40, and if the frequency of data write requests within a certain period of time in the past is within a predetermined range, writes the data to the public blockchain 50B.
  • the second registration unit 25 writes data related to the received data write request to the public blockchain 50B (see Figure 3).
  • the second registration unit 25 checks multiple pending data write requests. If the multiple pending data write requests reach a preset condition, the second registration unit 25 generates a single Merkle tree from the data of the multiple pending data write requests. The second registration unit 25 writes the generated Merkle tree to the public blockchain 50B.
  • a hash value is calculated from each piece of data related to the pending write requests.
  • the hash corresponding to each piece of data is calculated as needed using a hash function from the data related to the write requests.
  • a Merkle tree is then created from the hash values calculated for each piece of data related to the pending write requests.
  • each leaf node stores the hash value of each piece of data
  • higher-level nodes store a single newly calculated hash value for the data combined with the hash values of the two lower-level nodes
  • the top node stores the top hash.
  • the second registration unit 25 registers the top hash of the created Merkle tree and an ID for identifying the Merkle tree on the public blockchain 50B (see Figure 3).
  • the notification unit 27 checks multiple pending data write requests, and if the waiting time for multiple pending data write requests is longer than a predetermined time interval, it notifies the user terminal 20 with a warning.
  • the notification unit 27 checks multiple pending data write requests. If the time of the first of the multiple pending data write requests is earlier than a predetermined time, the notification unit 27 notifies the user terminal 20 of a warning.
  • the notification unit 27 may be configured to notify the user terminal 20 of a warning if the time of the last write request among multiple pending data write requests is earlier than a predetermined time.
  • the notification unit 27 accepts a write request to the public blockchain 50B from the user terminal 20 that notified the warning, in response to the pending data write request. At this time, the notification unit 27 instructs the second registration unit 25 to generate a single Merkle tree from the data related to the pending data write request and write it to the public blockchain 50B.
  • FIG. 2 is a block diagram showing the hardware configuration of the user terminal 20 of this embodiment.
  • the user terminal 20 like the server 10, has a CPU 11, ROM 12, RAM 13, storage 14, input unit 15, display unit 16, and communication interface (I/F) 17. Each component is connected to each other via a bus 19 so that they can communicate with each other.
  • ROM 12 or storage 14 stores a program for requesting data writing and data reading from server 10.
  • This program may be a single program, or a group of programs consisting of multiple programs or modules.
  • the input unit 15 accepts data to be written to the private blockchain 50A and the public blockchain 50B. For example, it accepts medical data and inventory data. The input unit 15 also accepts read requests to read data from the private blockchain 50A and the public blockchain 50B.
  • the CPU 11 When the CPU 11 receives data to be written to the private blockchain 50A or the public blockchain 50B, it requests the server 10 to write the data.
  • the CPU 11 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.
  • the CPU 11 reads the information processing program from the ROM 12 or storage 14, expands it into the RAM 13, and executes it, thereby performing the data recording process shown in Figure 4. It is also assumed that the server 10 has received a data write request from the user terminal 20.
  • step S100 the CPU 11, acting as the first registration unit 23, writes data related to the received data write request to the private blockchain 50A.
  • step S102 the CPU 11, functioning as the second registration unit 25, references the history database 40 and determines whether the frequency of data write requests within a certain period of time in the past exceeds a predetermined threshold. If the frequency of data write requests within a certain period of time in the past exceeds the predetermined threshold, the CPU 11 records the data write request in memory such as the storage 14 and proceeds to step S104. On the other hand, if the frequency of data write requests within a certain period of time in the past does not exceed the predetermined threshold, the CPU 11 proceeds to step S108.
  • step S104 the CPU 11, functioning as the second registration unit 25, determines whether the number of multiple pending data write requests is equal to or greater than a threshold value. If the number of multiple pending data write requests is equal to or greater than the threshold value, the process proceeds to step S106. If the number of multiple pending data write requests is less than the threshold value, the data recording process ends.
  • step S106 the CPU 11, functioning as the second registration unit 25, generates a single Merkle tree from the data of multiple pending data write requests.
  • the CPU 11, functioning as the second registration unit 25, writes the generated Merkle tree to the public blockchain 50B, and terminates the data recording process.
  • step S108 the CPU 11, functioning as the second registration unit 25, determines whether the size of the data related to the received data write request is equal to or less than a specified value. If the size of the data related to the received data write request is equal to or less than the specified value, the process proceeds to step S110. On the other hand, if the size of the data related to the received data write request is greater than the specified value, the data recording process is terminated.
  • step S110 the CPU 11, functioning as the second registration unit 25, writes data related to the received data write request to the public blockchain 50B, and terminates the data recording process.
  • the CPU 11 reads the information processing program from the ROM 12 or storage 14, expands it into the RAM 13, and executes it, thereby performing the notification process shown in Figure 5. This notification process is repeated periodically.
  • step S120 the CPU 11, functioning as the notification unit 27, checks the multiple pending data write requests and determines whether the wait time for the multiple pending data write requests is equal to or greater than a specified value. If the wait time for the multiple pending data write requests is equal to or greater than the specified value, the process proceeds to step S122; if the wait time for the multiple pending data write requests is less than the specified value, the notification process ends.
  • step S122 the CPU 11, functioning as the notification unit 27, notifies the user terminal 20 of a warning.
  • step S124 the CPU 11, as the notification unit 27, accepts a write request to the public blockchain 50B in response to the pending data write request from the user terminal 20 that notified the warning.
  • the CPU 11, as the notification unit 27, instructs the second registration unit 25 to generate a single Merkle tree from the data related to the pending data write request and write it to the public blockchain 50B.
  • the CPU 11, as the second registration unit 25 generates a single Merkle tree from the data related to the pending data write request and writes it to the public blockchain 50B, and ends the notification process.
  • the server 10 when the server 10 receives a data read request from the user terminal 20, it reads the data to be read from the private blockchain 50A and the public blockchain 50B.
  • the server 10 when the server 10 reads the top hash related to the data to be read from the public blockchain 50B, it performs the following processing. That is, the server 10 also reads other data from the private blockchain 50A and the public blockchain 50B, generates hash values from each piece of read data, and generates a Merkle tree. By comparing the top hash of the generated Merkle tree with the top hash read from the public blockchain 50B, it can be determined that the data has not been tampered with.
  • the information processing system receives a data write request, writes data related to the data write request to a private blockchain, and references the history of multiple past data write requests. If the frequency of multiple past data write requests exceeds a predetermined range, the information processing system suspends the received data write request. In this way, it takes into consideration the integrity and availability of data, while also enabling improved transaction execution performance and reduced running costs.
  • a data write request when received, it is first written to the private blockchain. After that, the history of the most recent data write requests is checked, and if the frequency of the most recent write requests does not exceed a threshold, the data is written to the public blockchain as is if it is confirmed that the data size is small enough. If not, the write to the public blockchain is postponed.
  • the second embodiment differs from the first embodiment in that data is written to multiple public blockchains.
  • FIG. 1 above is an explanatory diagram showing an example configuration of an information processing system 2 according to the second embodiment.
  • the information processing system 2 includes a server 210 and a user terminal 20.
  • the server 210 is functionally configured to include an acquisition unit 21, a first registration unit 23, a second registration unit 25, a third registration unit 226, and a notification unit 27.
  • a desirable frequency is about one write to the public blockchain 50B for every 10 writes to the private blockchain 50A.
  • a desirable frequency is about one write to the public blockchain 50C for every 10 writes to the public blockchain 50B.
  • the second registration unit 25 writes the data related to the received data write request to the public blockchain 50B and writes a copy of the data to the public blockchain 50C (see Figure 6).
  • the second registration unit 25 checks the multiple pending data write requests, and if the multiple pending data write requests meet a preset condition, it generates a single Merkle tree from the data of the multiple pending data write requests and writes the generated Merkle tree to the public blockchain 50B (see Figure 6).
  • the Merkle tree generated by the second registration unit 25 is referred to as the first Merkle tree.
  • the third registration unit 226 references the history database 40, which stores the history of past requests to write the first Merkle tree. If the frequency of requests to write the first Merkle tree within a certain period of time in the past exceeds a predetermined value range, the third registration unit 226 suspends the request to write the first Merkle tree to the public blockchain 50C.
  • “Pending a write request for the first Merkle tree” means recording the write request for the first Merkle tree in memory such as storage 14.
  • the third registration unit 226 references the history database 40, and if the frequency of requests to write the first Merkle tree within a certain period of time in the past is within a predetermined range, it writes the first Merkle tree to the public blockchain 50C.
  • the third registration unit 226 If multiple pending write requests for the first Merkle tree reach a preset condition, the third registration unit 226 generates a second Merkle tree from the first Merkle tree and writes the second Merkle tree to the public blockchain 50C (see Figure 6).
  • the top hash is obtained from each of the first Merkle trees associated with the pending write requests. Then, a second Merkle tree is created from the top hash obtained for each of the first Merkle trees associated with the pending write requests.
  • the third registration unit 226 registers the top hash of the created second Merkle tree and an ID for identifying the second Merkle tree on the public blockchain 50C (see Figure 6).
  • the CPU 11 reads the information processing program from the ROM 12 or storage 14, expands it into the RAM 13, and executes it, thereby performing the data recording process shown in Figure 7. It is also assumed that the server 10 has received a data write request from the user terminal 20.
  • step S100 the CPU 11, acting as the first registration unit 23, writes data related to the received data write request to the private blockchain 50A.
  • step S102 the CPU 11, functioning as the second registration unit 25, references the history database 40 and determines whether the frequency of data write requests within a certain period of time in the past exceeds a predetermined threshold. If the frequency of data write requests within a certain period of time in the past exceeds the predetermined threshold, the CPU 11 records the data write request in memory such as the storage 14 and proceeds to step S104. On the other hand, if the frequency of data write requests within a certain period of time in the past does not exceed the predetermined threshold, the CPU 11 proceeds to step S108.
  • step S104 the CPU 11, functioning as the second registration unit 25, determines whether the number of multiple pending data write requests is equal to or greater than a threshold value. If the number of multiple pending data write requests is equal to or greater than the threshold value, the process proceeds to step S200. If the number of multiple pending data write requests is less than the threshold value, the data recording process ends.
  • step S200 the CPU 11 writes the data for the multiple pending data write requests to the public blockchains 50B and 50C, and then ends the data recording process.
  • step S108 the CPU 11, functioning as the second registration unit 25, determines whether the size of the data related to the received data write request is equal to or less than a specified value. If the size of the data related to the received data write request is equal to or less than the specified value, the process proceeds to step S202. On the other hand, if the size of the data related to the received data write request is greater than the specified value, the data recording process is terminated.
  • step S202 the CPU 11, acting as the second registration unit 25, writes data related to the received data write request to the public blockchain 50B, and also writes a copy of that data to the public blockchain 50C.
  • the CPU 11 then terminates the data recording process.
  • step S202 the CPU 11, acting as the second registration unit 25, may generate a first Merkle tree from multiple pieces of data including data related to the received data write request and pending data. Then, the CPU 11, acting as the second registration unit 25, may write the multiple pieces of data to the public blockchain 50B and write the first Merkle tree to the public blockchain 50C.
  • Step S200 above is implemented by the processing routine shown in Figure 8.
  • step S210 the CPU 11, functioning as the second registration unit 25, generates a first Merkle tree from the data of multiple pending data write requests, and writes the generated first Merkle tree to the public blockchain 50B.
  • step S212 the CPU 11, functioning as the second registration unit 25, references the history database 40 and determines whether the frequency of requests to write the first Merkle tree within a certain period of time in the past exceeds a predetermined threshold. If the frequency of requests to write the first Merkle tree within a certain period of time in the past exceeds the predetermined threshold, the CPU 11 records the write request for the first Merkle tree in memory such as the storage 14, and proceeds to step S214. On the other hand, if the frequency of requests to write the first Merkle tree within a certain period of time in the past does not exceed the predetermined threshold, the CPU 11 proceeds to step S218.
  • step S214 the CPU 11, functioning as the third registration unit 226, determines whether the number of multiple pending write requests for the first Merkle tree is equal to or greater than a threshold. If the number of multiple pending write requests for the first Merkle tree is equal to or greater than the threshold, the process proceeds to step S216. If the number of multiple pending write requests for the first Merkle tree is less than the threshold, the processing routine ends.
  • step S216 the CPU 11, functioning as the third registration unit 226, generates a second Merkle tree from the first Merkle trees of the multiple pending first Merkle tree write requests.
  • the CPU 11, functioning as the third registration unit 226, writes the generated second Merkle tree to the public blockchain 50C, and terminates the data recording process.
  • the server 10 when the server 10 receives a data read request from the user terminal 20, it reads the data to be read from the private blockchain 50A and the public blockchains 50B and 50C.
  • the server 10 when the server 10 reads the top hash related to the data to be read from the public blockchains 50B and 50C, it also reads other data from the private blockchain 50A and the public blockchain 50B. The server 10 then generates hash values from each piece of data that has been read, and generates a Merkle tree. By comparing the top hash of the generated Merkle tree with the top hash read from the public blockchains 50B and 50C, it can be determined that the data has not been tampered with.
  • the various processes executed by the CPU after loading software (programs) in the above embodiments may be executed by various processors other than the CPU.
  • processors in this case include PLDs (Programmable Logic Devices) such as FPGAs (Field-Programmable Gate Arrays), whose circuit configuration can be changed after manufacture, and dedicated electrical circuits, such as ASICs (Application Specific Integrated Circuits), which are processors with circuit configurations specifically designed to execute specific processes.
  • data recording and notification processes may be executed by one of these various processors, or by a combination of two or more processors of the same or different types (e.g., multiple FPGAs, or a combination of a CPU and an FPGA).
  • the hardware structure of these various processors is, more specifically, an electrical circuit that combines circuit elements such as semiconductor devices.
  • the program may also 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.
  • Program products include all types of products for providing a program.
  • program products include programs provided over a network such as the Internet, and non-transitory computer-readable recording media such as CD-ROMs and DVDs on which the program is stored.
  • An information processing device including a processor, The processor: Receives a request to write data, writing data associated with the data write request to a private blockchain; an information processing device that refers to a history of a plurality of past data write requests, and if the frequency of the plurality of past data write requests exceeds a predetermined value range, puts the received data write request on hold.
  • (Appendix 2) The processor: Identifying a plurality of pending requests to write said data; If multiple pending write requests for the data reach a preset condition, generating a single Merkle tree from data of a plurality of pending write requests for said data; 2. The information processing device of claim 1, wherein the generated Merkle tree is written to a public blockchain.
  • the processor Identifying a plurality of pending requests to write said data; 4. The information processing device according to claim 1, wherein if a time of a first write request among a plurality of pending data write requests is earlier than a predetermined time, a warning is issued.
  • the processor Identifying a plurality of pending requests to write said data; 5. The information processing device according to claim 1, wherein if the time of the last write request among the plurality of pending data write requests is earlier than a predetermined time, a warning is issued.
  • the processor If the frequency of past multiple data write requests is within a predetermined range, generating at least one first Merkle tree from the plurality of data; The information processing device according to claim 8, wherein the plurality of data and the first Merkle tree are written to different public blockchains.
  • the processor referencing a history of past requests to write the first Merkle tree; If the frequency of the past write requests for the first Merkle tree is within a predetermined value range, generating at least one second Merkle tree from the first Merkle tree; 11. The information processing device of claim 10, wherein the at least one second Merkle tree is written to at least one of the public blockchains.
  • (Appendix 12) Receives a request to write data, writing data associated with the data write request to a private blockchain; An information processing method executed by a computer, which refers to a history of past multiple data write requests, and if the frequency of past multiple data write requests exceeds a predetermined value range, puts the received data write request on hold.
  • (Appendix 13) Receives a request to write data, writing data associated with the data write request to a private blockchain; An information processing program that causes a computer to execute a process of referring to a history of a plurality of past data write requests, and suspending the received data write request if the frequency of the plurality of past data write requests exceeds a predetermined value range.

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

情報処理装置は、データ書き込みのリクエストを受け取り、前記データ書き込みのリクエストに関連するデータをプライベートブロックチェーンへ書き込み、過去の複数のデータ書き込みのリクエストの履歴を参照し、過去の複数のデータ書き込みのリクエストの頻度が予め決められた値の範囲を超えている場合は、前記受け取った前記データの書き込みリクエストを保留する。

Description

情報処理装置、情報処理方法、及び情報処理プログラム
 開示の技術は、情報処理装置、情報処理方法、及び情報処理プログラムに関する。
 特表2020-528586号公報には、コンソーシアムブロックチェーンに対する取引データのアップロードにおいて、ブロックチェーンシステムにおけるシステムの状態を監視し、この状態に応じて取引データをアップロードすべきかどうかを判定する態様が記載されている。
 特開2021-43770号公報には、ブロックチェーンの登録対象として受信したコンテンツが、予め定められた容量より大きい場合には保留と判断し、コンテンツの送信元に対して保留メッセージを送信する態様が記載されている。
 特開2021-35041号公報には、プライベート・ブロックチェーンとパブリック・ブロックチェーンとを併用したデータ検証について記載されている。
 特開2021-56943号公報には、受け付けた複数のファイルを、ファイルの状態に応じて、異なる2つのブロックチェーンへと振り分けて記録するデータ管理システムについて記載されている。
 再公表2020-44471号公報には、取引の履歴の情報をブロックチェーンデータにて共有するオンチェーンシステムと、ブロックチェーンデータに記録されているアセットの情報を取得して、取得したアセットの情報に基づいて所定の情報処理を行うオフチェーンシステムとで構成されたブロックチェーンシステムについて記載されている。
 ここで、パブリックブロックチェーンは不特定多数のネットワーク参加者によって分散化されたネットワーク上でデータを保持し、それぞれのデータが改ざんされていないことを相互に保証し合う。このため、パブリックブロックチェーンは、情報セキュリティの3大要素である「完全性」、「可用性」に優れたシステムである。一方で、パブリックブロックチェーンはそのシステムの性質上トランザクションの処理時間が長い、トランザクションの実行ごとに手数料がかかるためランニングコストが高いなどの課題がある。
 一方、プライベートブロックチェーンでは、トランザクションの実行時間も短くトランザクションごとの手数料が低いというメリットがある一方で、不特定多数の参加者によってネットワークが運用されていない。このことから、プライベートブロックチェーンでは、パブリックブロックチェーンと比較して「完全性」、「可用性」が低いという問題が存在する。
 一つの側面では、データの完全性及び可用性を考慮し、かつ、トランザクションの実行性能向上及びランニングコストの削減を可能とする情報処理装置、情報処理方法、及び情報処理プログラムを提供することを目的とする。
 本開示の第1態様は、プロセッサを備えた情報処理装置であり、前記プロセッサは、データ書き込みのリクエストを受け取り、前記データ書き込みのリクエストに関連するデータをプライベートブロックチェーンへ書き込み、過去の複数のデータ書き込みのリクエストの履歴を参照し、過去の複数のデータ書き込みのリクエストの頻度が予め決められた値の範囲を超えている場合は、前記受け取った前記データの書き込みリクエストを保留する。
 本開示の第2態様は、情報処理方法であって、データ書き込みのリクエストを受け取り、前記データ書き込みのリクエストに関連するデータをプライベートブロックチェーンへ書き込み、過去の複数のデータ書き込みのリクエストの履歴を参照し、過去の複数のデータ書き込みのリクエストの頻度が予め決められた値の範囲を超えている場合は、前記受け取った前記データの書き込みリクエストを保留することをコンピュータが実行する。
 本開示の第3態様は、情報処理プログラムであって、データ書き込みのリクエストを受け取り、前記データ書き込みのリクエストに関連するデータをプライベートブロックチェーンへ書き込み、過去の複数のデータ書き込みのリクエストの履歴を参照し、過去の複数のデータ書き込みのリクエストの頻度が予め決められた値の範囲を超えている場合は、前記受け取った前記データの書き込みリクエストを保留する処理をコンピュータに実行させるプログラムである。
 一つの側面では、データの完全性及び可用性を考慮し、かつ、トランザクションの実行性能向上及びランニングコストの削減を可能とする。
情報処理システムの構成例を示す説明図である。 本実施形態のサーバ及びユーザ端末として機能するコンピュータの一例の概略ブロック図である。 第1実施形態のサーバの構成を示すブロック図である。 第1実施形態のサーバにおけるデータ記録処理を示すフローチャートである。 本実施形態のサーバにおける通知処理を示すフローチャートである。 第2実施形態のサーバの構成を示すブロック図である。 第2実施形態のサーバにおけるデータ記録処理を示すフローチャートである。 第2実施形態のサーバにおけるパブリックブロックチェーンへ書き込む処理を示すフローチャートである。
 以下、開示の技術の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
[第1実施形態]
<システム構成>
 図1は、情報処理システム2の構成例を示す説明図である。本実施形態では、複数のブロックチェーンを用いたデータ記録及びデータ読み出しを行う情報処理システム2について説明する。情報処理システム2は、サーバ10及びユーザ端末20を含む。サーバ10及びユーザ端末20は、ネットワークNを介して通信接続されている。また、サーバ10は、情報処理装置の一例である。
 なお、対象とするデータは、医療に関するデータや在庫管理に関するデータなど、どんなデータであってもよい。
 サーバ10は、例えば、種々の情報処理、情報の送受信が可能なサーバコンピュータである。なお、サーバ10に相当する装置はサーバコンピュータに限定されず、例えばパーソナルコンピュータ等であってもよい。本実施形態においてサーバ10は、複数のブロックチェーンを用いたデータ記録及びデータ読み出しを行う情報処理装置として機能する。
 ユーザ端末20は、パーソナルコンピュータ等の汎用コンピュータである。本実施形態においてユーザ端末20は、ブロックチェーンへのデータの書き込み、及びブロックチェーンからのデータの読み出しをサーバ10へリクエストする装置として機能する。
 なお、本実施形態ではサーバ10が、ブロックチェーンへのデータの書き込み、及びブロックチェーンからのデータの読み出しを行うものとするが、これに限定されるものではない。ローカルのユーザ端末20がブロックチェーンへのデータの書き込み、及びブロックチェーンからのデータの読み出しを行うようにしてもよい。すなわち、両者の区別は便宜的なものであり、単一のコンピュータが一連の処理を行うようにしてもよい。
<本実施形態に係るサーバの構成>
 図2は、本実施形態のサーバ10のハードウェア構成を示すブロック図である。
 図2に示すように、サーバ10は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、ストレージ14、入力部15、表示部16及び通信インタフェース(I/F)17を有する。各構成は、バス19を介して相互に通信可能に接続されている。
 CPU11は、中央演算処理ユニットであり、各種プログラムを実行したり、各部を制御したりする。すなわち、CPU11は、ROM12又はストレージ14からプログラムを読み出し、RAM13を作業領域としてプログラムを実行する。CPU11は、ROM12又はストレージ14に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。本実施形態では、ROM12又はストレージ14には、データ記録及びデータ読み出しを行うための情報処理プログラムが格納されている。情報処理プログラムは、1つのプログラムであっても良いし、複数のプログラム又はモジュールで構成されるプログラム群であっても良い。
 ROM12は、各種プログラム及び各種データを格納する。RAM13は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ14は、HDD(Hard Disk Drive)又はSSD(Solid State Drive)により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
 入力部15は、マウス等のポインティングデバイス、及びキーボードを含み、各種の入力を行うために使用される。
 表示部16は、例えば、液晶ディスプレイであり、各種の情報を表示する。表示部16は、タッチパネル方式を採用して、入力部15として機能しても良い。
 通信インタフェース17は、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI、Wi-Fi(登録商標)等の規格が用いられる。
 次に、サーバ10の機能構成について説明する。図3は、サーバ10の機能構成の例を示すブロック図である。
 サーバ10は、機能的には、図3に示すように、取得部21と、第1登録部23と、第2登録部25と、通知部27とを含んで構成されている。
 取得部21は、ユーザ端末20から送信されたデータ書き込みのリクエストを受け取る。
 第1登録部23は、受け取ったデータ書き込みのリクエストに関連するデータを、複数のブロックチェーン50A、50Bのうち、プライベートブロックチェーン50Aへ書き込む(図3参照)。
 データ書き込みのリクエストがあったことを示す情報を、履歴データベース(DB)40で管理する。
 ここで、複数のブロックチェーンとそれらを利用するアプリケーションが存在するものとする。プライベートブロックチェーンとは、特定のユーザのみがアクセスすることができるブロックチェーンである。ここでは、プライベートブロックチェーンは、コンソーシアムブロックチェーンも含む。プライベートブロックチェーンは、パーミッションド(許可型)ブロックチェーンとも呼ばれる。パブリックブロックチェーンとは、全てのユーザがアクセスすることができるブロックチェーンである。パブリックブロックチェーンは、パーミッションレス(自由参加型)ブロックチェーンとも呼ばれる。
 プライベートブロックチェーン50A、パブリックブロックチェーン50Bの各々は、複数のコンピュータ端末から構成されるブロックチェーンネットワークにより構築されるものである。プライベートブロックチェーン50A、パブリックブロックチェーン50Bは、データと、データを特定するためのIDとを含むブロック51A、51Bを、時系列に連結したものである。第1登録部23及び第2登録部25は、データ書き込みが発生する毎に、データをプライベートブロックチェーン50A、パブリックブロックチェーン50B上のブロック51A、51Bの何れかに書き込むことで、データの改ざんを防止できる。
 第2登録部25は、過去の複数のデータ書き込みのリクエストの履歴を格納した履歴データベース40を参照する。第2登録部25は、過去の一定期間内におけるデータ書き込みのリクエストの頻度が予め決められた値の範囲を超えている場合は、パブリックブロックチェーン50Bへのデータの書き込みリクエストを保留する。
 データの書き込みリクエストを保留する、とは、データの書き込みリクエストをストレージ14などのメモリに記録しておくことである。また、過去の複数のデータ書き込みのリクエストの履歴とは、受け取ったデータの書き込みリクエストよりも時間が過去となる複数のデータ書き込みのリクエストの履歴である。
 一方、第2登録部25は、履歴データベース40を参照し、過去の一定期間内におけるデータ書き込みのリクエストの頻度が予め決められた値の範囲内である場合は、パブリックブロックチェーン50Bへデータを書き込む。
 具体的には、第2登録部25は、過去の複数のデータ書き込みのリクエストの頻度が予め決められた値の範囲であり、かつ、データのサイズが予め定められた値の範囲である場合は、受け取ったデータ書き込みのリクエストに関連するデータを、パブリックブロックチェーン50Bへ書き込む(図3参照)。
 また、第2登録部25は、複数の保留されているデータの書き込みリクエストを確認する。第2登録部25は、複数の保留されているデータの書き込みリクエストが予め設定されている条件に達した場合は、複数の保留されているデータの書き込みリクエストのデータから単一のマークルツリーを生成する。第2登録部25は、生成されたマークルツリーをパブリックブロックチェーン50Bへ書き込む。
 具体的には、保留されているデータの書き込みリクエストの数が閾値に達した場合は、保留されている書き込みリクエストに関連するデータの各々からハッシュ値を算出する。個々のデータに対応するハッシュは、書き込みリクエストに関連するデータからハッシュ関数にて随時算出されたハッシュである。そして、保留されている書き込みリクエストに関連するデータの各々について算出されたハッシュ値からマークルツリーを作成する。ここで、マークルツリーでは、各リーフノードに、各データのハッシュ値が格納され、上位のノードは、下位の2つのノードのハッシュ値をあわせたデータに対して、新たに計算される1つのハッシュ値が格納され、トップノードには、トップハッシュが格納される。
 第2登録部25は、作成したマークルツリーのトップハッシュと、マークルツリーを特定するためのIDとを、パブリックブロックチェーン50B上に登録する(図3参照)。
 通知部27は、複数の保留されているデータの書き込みリクエストを確認し、複数の保留されているデータの書き込みリクエストの待機時間が、予め定められている時間間隔よりも長い場合は、ユーザ端末20に対して警告を通知する。
 具体的には、通知部27は、複数の保留されているデータの書き込みリクエストを確認する。通知部27は、複数の保留されているデータの書き込みリクエストの内の最初の書き込みリクエストの時間が、予め定められている時間よりも以前のものである場合は、ユーザ端末20に対して警告を通知する。
 なお、通知部27は、複数の保留されているデータの書き込みリクエストの内の最後の書き込みリクエストの時間が、予め定められている時間よりも以前のものである場合に、ユーザ端末20に対して警告を通知するようにしてもよい。
 通知部27は、警告を通知したユーザ端末20から、保留されているデータの書き込みリクエストに対する、パブリックブロックチェーン50Bへの書き込みリクエストを受け付ける。このとき、通知部27は、保留されているデータの書き込みリクエストに関連するデータから単一のマークルツリーを生成して、パブリックブロックチェーン50Bへ書き込むことを第2登録部25に対して指示する。
<本実施形態に係るユーザ端末の構成>
 上記図2は、本実施形態のユーザ端末20のハードウェア構成を示すブロック図である。
 上記図2に示すように、ユーザ端末20は、サーバ10と同様に、CPU11、ROM12、RAM13、ストレージ14、入力部15、表示部16及び通信インタフェース(I/F)17を有する。各構成は、バス19を介して相互に通信可能に接続されている。
 ROM12又はストレージ14には、サーバ10へデータ書き込み及びデータ読み出しをリクエストするためのプログラムが格納されている。このプログラムは、1つのプログラムであっても良いし、複数のプログラム又はモジュールで構成されるプログラム群であっても良い。
 入力部15は、プライベートブロックチェーン50A、パブリックブロックチェーン50Bへ書き込みたいデータを受け付ける。例えば、医療データや在庫データを受け付ける。また、入力部15は、プライベートブロックチェーン50A、パブリックブロックチェーン50Bからデータを読み出す読み出しリクエストを受け付ける。
 CPU11は、プライベートブロックチェーン50A、パブリックブロックチェーン50Bへ書き込みたいデータを受け付けると、サーバ10へデータ書き込みをリクエストする。
 CPU11は、ブロックチェーン50A、50B、50Cからデータを読み出す読み出しリクエストを受け付けると、サーバ10へデータ読み出しをリクエストする。
<本実施形態に係るサーバ10の作用>
 次に、本実施形態に係るサーバ10の作用について説明する。
 まず、CPU11がROM12又はストレージ14から情報処理プログラムを読み出して、RAM13に展開して実行することにより、図4に示すデータ記録処理が行なわれる。また、サーバ10は、ユーザ端末20からデータ書き込みリクエストを受け取っているものとする。
 ステップS100において、CPU11は、第1登録部23として、受け取ったデータ書き込みのリクエストに関連するデータを、プライベートブロックチェーン50Aへ書き込む。
 ステップS102において、CPU11は、第2登録部25として、履歴データベース40を参照し、過去の一定期間内におけるデータ書き込みのリクエストの頻度が予め決められた閾値を超えているか否かを判定する。過去の一定期間内におけるデータ書き込みのリクエストの頻度が予め決められた閾値を超えている場合には、データの書き込みリクエストをストレージ14などのメモリに記録して、ステップS104へ移行する。一方、過去の一定期間内におけるデータ書き込みのリクエストの頻度が予め決められた閾値を超えていない場合には、ステップS108へ移行する。
 ステップS104において、CPU11は、第2登録部25として、複数の保留されているデータの書き込みリクエストの数が、閾値以上であるか否かを判定する。複数の保留されているデータの書き込みリクエストの数が、閾値以上である場合には、ステップS106へ移行する。複数の保留されているデータの書き込みリクエストの数が、閾値未満である場合には、データ記録処理を終了する。
 ステップS106において、CPU11は、第2登録部25として、複数の保留されているデータの書き込みリクエストのデータから単一のマークルツリーを生成する。CPU11は、第2登録部25として、生成されたマークルツリーをパブリックブロックチェーン50Bへ書き込み、データ記録処理を終了する。
 ステップS108において、CPU11は、第2登録部25として、受け取ったデータ書き込みのリクエストに関連するデータのサイズが規定値以下であるか否かを判定する。受け取ったデータ書き込みのリクエストに関連するデータのサイズが規定値以下である場合には、ステップS110へ移行する。一方、受け取ったデータ書き込みのリクエストに関連するデータのサイズが規定値より大きい場合には、データ記録処理を終了する。
 ステップS110において、CPU11は、第2登録部25として、受け取ったデータ書き込みのリクエストに関連するデータを、パブリックブロックチェーン50Bへ書き込み、データ記録処理を終了する。
 次に、CPU11がROM12又はストレージ14から情報処理プログラムを読み出して、RAM13に展開して実行することにより、図5に示す通知処理が行なわれる。この通知処理は、定期的に繰り返し行われる。
 ステップS120において、CPU11は、通知部27として、複数の保留されているデータの書き込みリクエストを確認し、複数の保留されているデータの書き込みリクエストの待機時間が、規定値以上であるか否かを判定する。複数の保留されているデータの書き込みリクエストの待機時間が、規定値以上である場合には、ステップS122へ移行し、複数の保留されているデータの書き込みリクエストの待機時間が、規定値未満である場合には、通知処理を終了する。
 ステップS122において、CPU11は、通知部27として、ユーザ端末20に対して警告を通知する。
 ステップS124において、CPU11は、通知部27として、警告を通知したユーザ端末20から、保留されているデータの書き込みリクエストに対する、パブリックブロックチェーン50Bへの書き込みリクエストを受け付ける。このとき、CPU11は、通知部27として、保留されているデータの書き込みリクエストに関連するデータから単一のマークルツリーを生成して、パブリックブロックチェーン50Bへ書き込むことを第2登録部25に対して指示する。そして、CPU11は、第2登録部25として、保留されているデータの書き込みリクエストに関連するデータから単一のマークルツリーを生成して、パブリックブロックチェーン50Bへ書き込み、通知処理を終了する。
 また、サーバ10は、ユーザ端末20からデータ読み出しリクエストを受け付けると、読み出したいデータを、プライベートブロックチェーン50A、パブリックブロックチェーン50Bから読み出す。
 このとき、サーバ10は、パブリックブロックチェーン50Bから、読み出したいデータに関連するトップハッシュを読み出した場合には、以下の処理を行う。すなわち、サーバ10は、プライベートブロックチェーン50A、パブリックブロックチェーン50Bから、他のデータも読み出し、読み出した各データからハッシュ値を生成して、マークルツリーを生成する。生成したマークルツリーのトップハッシュと、パブリックブロックチェーン50Bから読み出したトップハッシュとを比較することにより、データが改ざんされていないことを評価することができる。
 以上より、本実施形態に係る情報処理システムは、データ書き込みのリクエストを受け取り、データ書き込みのリクエストに関連するデータをプライベートブロックチェーンへ書き込み、過去の複数のデータ書き込みのリクエストの履歴を参照する。情報処理システムは、過去の複数のデータ書き込みのリクエストの頻度が予め決められた値の範囲を超えている場合は、受け取ったデータの書き込みリクエストを保留する。このように、データの完全性及び可用性を考慮し、かつ、トランザクションの実行性能向上及びランニングコストの削減を可能とする。
 また、IoTデバイスから取得されたデータを逐次ブロックチェーンに書き込むようなケースを想定する。IoTデバイスによっては時間帯によって送信されるデータ量や頻度が大きく異なるものが存在する。そのような場合において、全てのデータをパブリックブロックチェーンへ書き込もうとするとブロックチェーンへの書き込み頻度がパブリックブロックチェーンの処理性能を超えてしまい、書き込みが済んでいないデータが滞留してしまうことが考えられる。また、そのような高頻度でパブリックブロックチェーンへの書き込みを行うとトランザクションの実行手数料が大きくなり、ランニングコストが増大してしまうという問題がある。
 そのような問題はプライベートブロックチェーンやコンソーシアムブロックチェーンを用いた場合には発生しない、もしくは発生しても軽微な問題として扱うことができる。一方で、単一もしくは少数の組織によって運用されるそれらのブロックチェーンは、不特定多数のネットワーク参加者によって構成されているパブリックブロックチェーンと比較してデータの完全性、可用性が劣る。このため、それらを重視するユースケースにおいては課題となる。そこで、上記で説明したように、プライベートブロックチェーンとパブリックブロックチェーンを組み合わせたシステムを構築することで双方のデメリットを解消することができる。
 また、データ書き込みリクエストがあった際に、最初にプライベートブロックチェーンへの書き込みを行う。その後、直近のデータ書き込みリクエストの履歴を確認し、直近の書き込みリクエストの頻度が閾値を超えていない場合は、データサイズが十分小さいことが確認出来たらそのままパブリックブロックチェーンへの書き込みを行う。そうでない場合にはパブリックブロックチェーンへの書き込みは保留する。
 その後、パブリックブロックチェーンへの書き込みが保留されているリクエストを確認する。保留されている書き込みリクエストの件数が事前に設定した閾値を超えている場合は、それらの書き込みリクエストに関連するデータをマークルツリーでまとめてパブリックブロックチェーンへの書き込みを行う。ただし、長期間ブロックチェーンに書き込みが発生しないことが想定される場合に備えて手動での実行手段についても別途用意しておく。これにより、トランザクションの実行性能向上を可能とする。
[第2実施形態]
 次に、第2実施形態に係る情報処理システムについて説明する。第1実施形態と同様の構成となる部分については、同一符号を付して説明を省略する。
 第2実施形態では、複数のパブリックブロックチェーンに対してデータを書き込む点が、第1実施形態と異なっている。
 上記図1は、第2実施形態に係る情報処理システム2の構成例を示す説明図である。情報処理システム2は、サーバ210及びユーザ端末20を含む。
 第2実施形態に係るサーバ210は、機能的には、図6に示すように、取得部21と、第1登録部23と、第2登録部25と、第3登録部226と、通知部27とを含んで構成されている。
 ここで、パブリックブロックチェーン50Bへの書き込みはコストが小さく、パブリックブロックチェーン50Cへの書き込みはコストが大きいため、できる限りパブリックブロックチェーン50Bに書き込みたいものとする。例えば、好ましい頻度は、プライベートブロックチェーン50Aに10回書き込む場合に対して、パブリックブロックチェーン50Bに1回書き込む程度である。さらに、好ましい頻度は、パブリックブロックチェーン50Bに10回書き込む場合に対して、パブリックブロックチェーン50Cに1回書き込む程度である。
 第2登録部25は、過去の複数のデータ書き込みのリクエストの頻度が予め決められた値の範囲であり、かつ、データのサイズが予め定められた値の範囲である場合は、受け取ったデータ書き込みのリクエストに関連するデータを、パブリックブロックチェーン50Bへ書き込むと共に、当該データの複製を、パブリックブロックチェーン50Cへ書き込む(図6参照)。
 第2登録部25は、複数の保留されているデータの書き込みリクエストを確認し、複数の保留されているデータの書き込みリクエストが予め設定されている条件に達した場合は、複数の保留されているデータの書き込みリクエストのデータから単一のマークルツリーを生成し、生成されたマークルツリーをパブリックブロックチェーン50Bへ書き込む(図6参照)。
 生成されたマークルツリーをパブリックブロックチェーン50Bへ書き込む際に、マークルツリー書き込みのリクエストがあったことを示す情報を、履歴データベース40に格納する。本実施形態では、第2登録部25で生成されたマークルツリーを、第1のマークルツリーとする。
 第3登録部226は、過去の第1のマークルツリーの書き込みのリクエストの履歴を格納した履歴データベース40を参照する。第3登録部226は、過去の一定期間内の第1のマークルツリーの書き込みのリクエストの頻度が予め決められた値の範囲を超えている場合は、パブリックブロックチェーン50Cへの第1のマークルツリーの書き込みリクエストを保留する。
 第1のマークルツリーの書き込みリクエストを保留する、とは、第1のマークルツリーの書き込みリクエストをストレージ14などのメモリに記録しておくことをいう。
 第3登録部226は、履歴データベース40を参照し、過去の一定期間内の第1のマークルツリーの書き込みのリクエストの頻度が予め決められた値の範囲内である場合は、パブリックブロックチェーン50Cへ第1のマークルツリーを書き込む。
 第3登録部226は、複数の保留されている第1のマークルツリーの書き込みリクエストが予め設定されている条件に達した場合は、第1のマークルツリーから第2のマークルツリーを生成し、第2のマークルツリーをパブリックブロックチェーン50Cへ書き込む(図6参照)。
 具体的には、保留されている第1のマークルツリーの書き込みリクエストの数が閾値に達した場合は、保留されている書き込みリクエストに関連する第1のマークルツリーの各々からトップハッシュを取得する。そして、保留されている書き込みリクエストに関連する第1のマークルツリーの各々について取得されたトップハッシュから第2のマークルツリーを作成する。
 第3登録部226は、作成した第2のマークルツリーのトップハッシュと、第2のマークルツリーを特定するためのIDとを、パブリックブロックチェーン50C上に登録する(図6参照)。
<第2実施形態に係るサーバ210の作用>
 次に、第2実施形態に係るサーバ210の作用について説明する。なお、第1実施形態と同様の処理については、同一符号を付して詳細な説明を省略する。
 まず、CPU11がROM12又はストレージ14から情報処理プログラムを読み出して、RAM13に展開して実行することにより、図7に示すデータ記録処理が行なわれる。また、サーバ10は、ユーザ端末20からデータ書き込みリクエストを受け取っているものとする。
 ステップS100において、CPU11は、第1登録部23として、受け取ったデータ書き込みのリクエストに関連するデータを、プライベートブロックチェーン50Aへ書き込む。
 ステップS102において、CPU11は、第2登録部25として、履歴データベース40を参照し、過去の一定期間内におけるデータ書き込みのリクエストの頻度が予め決められた閾値を超えているか否かを判定する。過去の一定期間内におけるデータ書き込みのリクエストの頻度が予め決められた閾値を超えている場合には、データの書き込みリクエストをストレージ14などのメモリに記録して、ステップS104へ移行する。一方、過去の一定期間内におけるデータ書き込みのリクエストの頻度が予め決められた閾値を超えていない場合には、ステップS108へ移行する。
 ステップS104において、CPU11は、第2登録部25として、複数の保留されているデータの書き込みリクエストの数が、閾値以上であるか否かを判定する。複数の保留されているデータの書き込みリクエストの数が、閾値以上である場合には、ステップS200へ移行する。複数の保留されているデータの書き込みリクエストの数が、閾値未満である場合には、データ記録処理を終了する。
 ステップS200において、CPU11は、複数の保留されているデータの書き込みリクエストのデータについて、パブリックブロックチェーン50B、50Cへ書き込む処理を行い、データ記録処理を終了する。
 ステップS108において、CPU11は、第2登録部25として、受け取ったデータ書き込みのリクエストに関連するデータのサイズが規定値以下であるか否かを判定する。受け取ったデータ書き込みのリクエストに関連するデータのサイズが規定値以下である場合には、ステップS202へ移行する。一方、受け取ったデータ書き込みのリクエストに関連するデータのサイズが規定値より大きい場合には、データ記録処理を終了する。
 ステップS202において、CPU11は、第2登録部25として、受け取ったデータ書き込みのリクエストに関連するデータを、パブリックブロックチェーン50Bへ書き込むと共に、当該データの複製を、パブリックブロックチェーン50Cへ書き込む。そして、CPU11は、データ記録処理を終了する。
 なお、上記ステップS202において、CPU11は、第2登録部25として、受け取ったデータ書き込みのリクエストに関連するデータと、保留されているデータとを含む複数のデータから第1のマークルツリーを生成するようにしてもよい。そして、CPU11は、第2登録部25として、当該複数のデータを、パブリックブロックチェーン50Bへ書き込むと共に、第1のマークルツリーを、パブリックブロックチェーン50Cへ書き込むようにしてもよい。
 上記ステップS200は、図8に示す処理ルーチンにより実現される。
 まず、ステップS210において、CPU11は、第2登録部25として、複数の保留されているデータの書き込みリクエストのデータから第1のマークルツリーを生成し、生成された第1のマークルツリーをパブリックブロックチェーン50Bへ書き込む。
 ステップS212において、CPU11は、第2登録部25として、履歴データベース40を参照し、過去の一定期間内における第1のマークルツリーの書き込みのリクエストの頻度が予め決められた閾値を超えているか否かを判定する。過去の一定期間内における第1のマークルツリーの書き込みのリクエストの頻度が予め決められた閾値を超えている場合には、第1のマークルツリーの書き込みリクエストをストレージ14などのメモリに記録して、ステップS214へ移行する。一方、過去の一定期間内における第1のマークルツリーの書き込みのリクエストの頻度が予め決められた閾値を超えていない場合には、ステップS218へ移行する。
 ステップS214において、CPU11は、第3登録部226として、複数の保留されている第1のマークルツリーの書き込みリクエストの数が、閾値以上であるか否かを判定する。複数の保留されている第1のマークルツリーの書き込みリクエストの数が、閾値以上である場合には、ステップS216へ移行する。複数の保留されている第1のマークルツリーの書き込みリクエストの数が、閾値未満である場合には、当該処理ルーチンを終了する。
 ステップS216において、CPU11は、第3登録部226として、複数の保留されている第1のマークルツリーの書き込みリクエストの第1のマークルツリーから第2のマークルツリーを生成する。CPU11は、第3登録部226として、生成された第2のマークルツリーをパブリックブロックチェーン50Cへ書き込み、データ記録処理を終了する。
 ステップS218において、CPU11は、第3登録部226として、複数の保留されているデータの書き込みリクエストのデータから生成した第1のマークルツリーを、パブリックブロックチェーン50Cへ書き込み、当該処理ルーチンを終了する。
 また、サーバ10は、ユーザ端末20からデータ読み出しリクエストを受け付けると、読み出したいデータを、プライベートブロックチェーン50A、パブリックブロックチェーン50B、50Cから読み出す。
 このとき、サーバ10は、パブリックブロックチェーン50B、50Cから、読み出したいデータに関連するトップハッシュを読み出した場合には、プライベートブロックチェーン50A、パブリックブロックチェーン50Bから、他のデータも読み出す。そして、サーバ10は、読み出した各データからハッシュ値を生成して、マークルツリーを生成する。生成したマークルツリーのトップハッシュと、パブリックブロックチェーン50B、50Cから読み出したトップハッシュとを比較することにより、データが改ざんされていないことを評価することができる。
 以上説明したように、書き込むパブリックブロックチェーンは1つである必要はない。複数のブロックチェーンへ書き込む、ないし上記第1実施形態のデータ記録処理を再帰的に適用し、実行手数料が低いブロックチェーンや処理速度の速いブロックチェーンを上記プライベートブロックチェーンの部分に当てはめる。
 ここで、単一のパブリックブロックチェーンに書き込む場合には、手数料が抑えられる、書き込むためのスマートコントラクトが1つで済むため開発コストが下がる、というメリットがある一方、ブロックチェーンの廃止などに伴いシステムが提供できなくなるなど、BCP(Business Continuity Planning)上の懸念が残る。
 本実施形態で説明したように、複数のパブリックブロックチェーンに書き込む場合には、使い分けのロジックや書き込むためのスマートコントラクトの開発コストがかかるものの、以下の効果が得られる。すわなち、ブロックチェーンの特性に合わせて処理速度、運用コスト、信頼性のバランスを取ることができる。
 また、パブリックブロックチェーンへ過大な書き込み要求を行うことを避けつつ、プライベートブロックチェーンへの課題である完全性、可用性の課題を解決することができる。
<変形例>
 なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
 例えば、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した各種処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、データ記録処理及び通知処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
 また、上記各実施形態では、情報処理プログラムがストレージ14に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の非一時的(non-transitory)記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
 本願のプログラムは、プログラム製品として提供可能である。プログラム製品とは、プログラムを提供するためのあらゆる態様の製品を含む。例えば、プログラム製品は、インターネット等のネットワークを通じて提供されるプログラム、及びプログラムを保存したCD-ROM、DVD等の非一時的コンピュータ可読記録媒体等を含む。
 今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
 以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
 プロセッサを備えた情報処理装置であり、
 前記プロセッサは、
 データ書き込みのリクエストを受け取り、
 前記データ書き込みのリクエストに関連するデータをプライベートブロックチェーンへ書き込み、
 過去の複数のデータ書き込みのリクエストの履歴を参照し、過去の複数のデータ書き込みのリクエストの頻度が予め決められた値の範囲を超えている場合は、前記受け取った前記データの書き込みリクエストを保留する
 情報処理装置。
(付記2)
 前記プロセッサは、
 複数の保留されている前記データの書き込みリクエストを確認し、
 複数の保留されている前記データの書き込みリクエストが予め設定されている条件に達した場合は、
 複数の保留されている前記データの書き込みリクエストのデータから単一のマークルツリーを生成し、
 生成されたマークルツリーをパブリックブロックチェーンへ書き込む
 付記1記載の情報処理装置。
(付記3)
 前記プロセッサは、
 複数の保留されている前記データの書き込みリクエストを確認し、
 複数の保留されている前記データの書き込みリクエストの待機時間が、予め定められている時間間隔よりも長い場合は、警告を通知する
 付記1又は2記載の情報処理装置。
(付記4)
 前記プロセッサは、
 複数の保留されている前記データの書き込みリクエストを確認し、
 複数の保留されている前記データの書き込みリクエストの内の最初の書き込みリクエストの時間が、予め定められている時間よりも以前のものである場合は、警告を通知する
 付記1~付記3の何れか1つ記載の情報処理装置。
(付記5)
 前記プロセッサは、
 複数の保留されている前記データの書き込みリクエストを確認し、
 複数の保留されている前記データの書き込みリクエストの内の最後の書き込みリクエストの時間が、予め定められている時間よりも以前のものである場合は、警告を通知する
 付記1~付記4の何れか1つ記載の情報処理装置。
(付記6)
 前記プロセッサは、
 過去の複数のデータ書き込みのリクエストの頻度が予め決められた値の範囲である場合は、
データを少なくとも1つ以上のパブリックブロックチェーンへ書き込む
 付記1~付記5の何れか1つ記載の情報処理装置。
(付記7)
 前記プロセッサは、
 過去の複数のデータ書き込みのリクエストの頻度が予め定められた値の範囲である場合であり、かつ、データのサイズが予め定められた値の範囲である場合は、
 前記データを少なくとも1つ以上のパブリックブロックチェーンへ書き込む
 付記1~付記6の何れか1つ記載の情報処理装置。
(付記8)
 前記プロセッサは、
過去の複数のデータ書き込みのリクエストの頻度が予め決められた値の範囲である場合は、
 データを少なくとも2つ以上のパブリックブロックチェーンへ書き込む
 付記1~付記7の何れか1つ記載の情報処理装置。
(付記9)
 前記プロセッサは、
 過去の複数のデータ書き込みのリクエストの頻度が予め決められた値の範囲である場合は、
 データと前記データの複製をそれぞれ異なるパブリックブロックチェーンへ書き込む
 付記8記載の情報処理装置。
(付記10)
 前記プロセッサは、
 過去の複数のデータ書き込みのリクエストの頻度が予め決められた値の範囲である場合は、
複数のデータから少なくとも一つの第1のマークルツリーを生成し、
 前記複数のデータと、前記第1のマークルツリーとを、それぞれ異なるパブリックブロックチェーンへ書き込む
 付記8記載の情報処理装置。
(付記11)
 前記プロセッサは、
 過去の複数の第1のマークルツリーの書き込みのリクエストの履歴を参照し、
 過去の複数の第1のマークルツリーの書き込みのリクエストの頻度が予め決められた値の範囲である場合は、
 前記第1のマークルツリーから少なくとも一つの第2のマークルツリーを生成し、
 少なくとも一つの第2のマークルツリーを前記パブリックブロックチェーンの少なくともいずれか一つへ書き込む
 付記10記載の情報処理装置。
(付記12)
 データ書き込みのリクエストを受け取り、
 前記データ書き込みのリクエストに関連するデータをプライベートブロックチェーンへ書き込み、
 過去の複数のデータ書き込みのリクエストの履歴を参照し、過去の複数のデータ書き込みのリクエストの頻度が予め決められた値の範囲を超えている場合は、前記受け取った前記データの書き込みリクエストを保留する
 ことをコンピュータが実行する情報処理方法。
(付記13)
 データ書き込みのリクエストを受け取り、
 前記データ書き込みのリクエストに関連するデータをプライベートブロックチェーンへ書き込み、
 過去の複数のデータ書き込みのリクエストの履歴を参照し、過去の複数のデータ書き込みのリクエストの頻度が予め決められた値の範囲を超えている場合は、前記受け取った前記データの書き込みリクエストを保留する
 処理をコンピュータに実行させる情報処理プログラム。
 日本出願2024-096021の開示はその全体が参照により本明細書に取り込まれる。
 本明細書に記載された全ての文献、特許出願、及び技術規格は、個々の文献、特許出願、及び技術規格が参照により取り込まれることが具体的かつ個々に記載された場合と同程度に、本明細書中に参照により取り込まれる。

Claims (13)

  1.  プロセッサを備えた情報処理装置であり、
     前記プロセッサは、
     データ書き込みのリクエストを受け取り、
     前記データ書き込みのリクエストに関連するデータをプライベートブロックチェーンへ書き込み、
     過去の複数のデータ書き込みのリクエストの履歴を参照し、過去の複数のデータ書き込みのリクエストの頻度が予め決められた値の範囲を超えている場合は、前記受け取った前記データの書き込みリクエストを保留する
     情報処理装置。
  2.  前記プロセッサは、
     複数の保留されている前記データの書き込みリクエストを確認し、
     複数の保留されている前記データの書き込みリクエストが予め設定されている条件に達した場合は、
     複数の保留されている前記データの書き込みリクエストのデータから単一のマークルツリーを生成し、
     生成されたマークルツリーをパブリックブロックチェーンへ書き込む
     請求項1記載の情報処理装置。
  3.  前記プロセッサは、
     複数の保留されている前記データの書き込みリクエストを確認し、
     複数の保留されている前記データの書き込みリクエストの待機時間が、予め定められている時間間隔よりも長い場合は、警告を通知する
     請求項1記載の情報処理装置。
  4.  前記プロセッサは、
     複数の保留されている前記データの書き込みリクエストを確認し、
     複数の保留されている前記データの書き込みリクエストの内の最初の書き込みリクエストの時間が、予め定められている時間よりも以前のものである場合は、警告を通知する
     請求項1記載の情報処理装置。
  5.  前記プロセッサは、
     複数の保留されている前記データの書き込みリクエストを確認し、
     複数の保留されている前記データの書き込みリクエストの内の最後の書き込みリクエストの時間が、予め定められている時間よりも以前のものである場合は、警告を通知する
     請求項1記載の情報処理装置。
  6.  前記プロセッサは、
     過去の複数のデータ書き込みのリクエストの頻度が予め決められた値の範囲である場合は、
     データを少なくとも1つ以上のパブリックブロックチェーンへ書き込む
     請求項1記載の情報処理装置。
  7.  前記プロセッサは、
     過去の複数のデータ書き込みのリクエストの頻度が予め定められた値の範囲である場合であり、かつ、データのサイズが予め定められた値の範囲である場合は、
     前記データを少なくとも1つ以上のパブリックブロックチェーンへ書き込む
     請求項1記載の情報処理装置。
  8.  前記プロセッサは、
     過去の複数のデータ書き込みのリクエストの頻度が予め決められた値の範囲である場合は、
     データを少なくとも2つ以上のパブリックブロックチェーンへ書き込む
     請求項1記載の情報処理装置。
  9.  前記プロセッサは、
     過去の複数のデータ書き込みのリクエストの頻度が予め決められた値の範囲である場合は、
     データと前記データの複製をそれぞれ異なるパブリックブロックチェーンへ書き込む
     請求項8記載の情報処理装置。
  10.  前記プロセッサは、
     過去の複数のデータ書き込みのリクエストの頻度が予め決められた値の範囲である場合は、
     複数のデータから少なくとも一つの第1のマークルツリーを生成し、
     前記複数のデータと、前記第1のマークルツリーとを、それぞれ異なるパブリックブロックチェーンへ書き込む
     請求項8記載の情報処理装置。
  11.  前記プロセッサは、
     過去の複数の第1のマークルツリーの書き込みのリクエストの履歴を参照し、
     過去の複数の第1のマークルツリーの書き込みのリクエストの頻度が予め決められた値の範囲である場合は、
     前記第1のマークルツリーから少なくとも一つの第2のマークルツリーを生成し、
     少なくとも一つの第2のマークルツリーを前記パブリックブロックチェーンの少なくともいずれか一つへ書き込む
     請求項10記載の情報処理装置。
  12.  データ書き込みのリクエストを受け取り、
     前記データ書き込みのリクエストに関連するデータをプライベートブロックチェーンへ書き込み、
     過去の複数のデータ書き込みのリクエストの履歴を参照し、過去の複数のデータ書き込みのリクエストの頻度が予め決められた値の範囲を超えている場合は、前記受け取った前記データの書き込みリクエストを保留する
     ことをコンピュータが実行する情報処理方法。
  13.  データ書き込みのリクエストを受け取り、
     前記データ書き込みのリクエストに関連するデータをプライベートブロックチェーンへ書き込み、
     過去の複数のデータ書き込みのリクエストの履歴を参照し、過去の複数のデータ書き込みのリクエストの頻度が予め決められた値の範囲を超えている場合は、前記受け取った前記データの書き込みリクエストを保留する
     処理をコンピュータに実行させる情報処理プログラム。
PCT/JP2025/017902 2024-06-13 2025-05-16 情報処理装置、情報処理方法、及び情報処理プログラム Pending WO2025258323A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2024-096021 2024-06-13
JP2024096021 2024-06-13

Publications (1)

Publication Number Publication Date
WO2025258323A1 true WO2025258323A1 (ja) 2025-12-18

Family

ID=98050922

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2025/017902 Pending WO2025258323A1 (ja) 2024-06-13 2025-05-16 情報処理装置、情報処理方法、及び情報処理プログラム

Country Status (1)

Country Link
WO (1) WO2025258323A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021144571A (ja) * 2020-03-13 2021-09-24 富士通株式会社 情報処理装置、送信制御方法、および通信プログラム
CN115168495A (zh) * 2022-07-20 2022-10-11 成都道客数字科技有限公司 一种防阻塞的云原生分布式状态存储数据库读写方法和系统
US20230088674A1 (en) * 2021-09-13 2023-03-23 Shopify Inc. Systems and methods for blockchain network congestion-adaptive digital asset event handling

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021144571A (ja) * 2020-03-13 2021-09-24 富士通株式会社 情報処理装置、送信制御方法、および通信プログラム
US20230088674A1 (en) * 2021-09-13 2023-03-23 Shopify Inc. Systems and methods for blockchain network congestion-adaptive digital asset event handling
CN115168495A (zh) * 2022-07-20 2022-10-11 成都道客数字科技有限公司 一种防阻塞的云原生分布式状态存储数据库读写方法和系统

Similar Documents

Publication Publication Date Title
CN111400112B (zh) 分布式集群的存储系统的写入方法、装置及可读存储介质
JP6111441B2 (ja) コンピューティング環境での追跡アプリケーション使用法
US9916215B2 (en) System and method for selectively utilizing memory available in a redundant host in a cluster for virtual machines
CN112468361A (zh) 一种网络连接状态监控方法、装置及电子设备和存储介质
CN111147274B (zh) 为集群解决方案创建高度可用的仲裁集的系统和方法
US20210216231A1 (en) Method, electronic device and computer program product for rebuilding disk array
CN110147203A (zh) 一种文件管理方法、装置、电子设备及存储介质
WO2023029485A1 (zh) 数据处理方法、装置、计算机设备及计算机可读存储介质
CN117376364A (zh) 一种数据处理方法及相关设备
CN113806803A (zh) 一种数据存储方法、系统、终端设备及存储介质
US20210117361A1 (en) Methods, electronic devices, storage systems, and computer program products for storage management
US10922024B1 (en) Self-protection against serialization incompatibilities
EP3051457A1 (en) Method for performing file synchronization control, and associated apparatus
CN111797062B (zh) 数据处理方法、装置和分布式数据库系统
KR101589122B1 (ko) 네트워크 분산 파일 시스템 기반 iSCSI 스토리지 시스템에서의 장애 복구 방법 및 시스템
CN107329798A (zh) 数据复制的方法、装置和虚拟化系统
US11249952B1 (en) Distributed storage of data identifiers
CN119960953A (zh) 一种云技术的数据处理方法、云管理平台及集群
US11340964B2 (en) Systems and methods for efficient management of advanced functions in software defined storage systems
CN113568567B (zh) 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器
CN113132241B (zh) Acl模板动态配置方法及装置
CN119088498A (zh) 一种计算机系统的仿真方法、系统、平台及装置
CN116431566B (zh) 数据迁移方法、装置、电子设备及介质
CN111241437B (zh) 数据处理方法、装置、服务端以及存储介质
WO2025249089A1 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 25821671

Country of ref document: EP

Kind code of ref document: A1