Tree structure generation method, information processing device, information processing system, and tree structure generation program

The method addresses the inefficiency of data verification in blockchain Merkle trees by classifying data and calculating hash values in groups, resulting in a reduced number of hash values required for verification, thereby improving efficiency.

WO2025115360A1PCT designated stage expired Publication Date: 2025-06-05FUJIFILM CORP
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2024/033956
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-11-30
Filing Date
2024-09-24
Publication Date
2025-06-05

AI Technical Summary

Technical Problem

In blockchain technology, verifying the consistency of data stored in a Merkle tree with reference data requires calculating hash values up to the root node, which is inefficient and increases the number of hash values needed.

Method used

A method for generating a tree structure that classifies data into groups based on reference conditions, calculates hash values for these groups, and then computes a top hash value based on these group hash values, reducing the number of hash values required for verification.

Benefits of technology

This approach reduces the number of hash values needed for data verification in a Merkle tree, enhancing efficiency and reducing computational overhead compared to traditional methods.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024033956_05062025_PF_FP_ABST
    Figure JP2024033956_05062025_PF_FP_ABST
Patent Text Reader

Abstract

According to the present invention, when creating a Merkle tree, a management server: calculates first hash values 50 respectively corresponding to a plurality of pieces of data that are classified into a plurality of data groups according to each of predetermined reference conditions and are arranged so that data with common reference conditions are adjacent to each other; classifies a predetermined number of the first hash values 50 as a group into a first hash value group 52; calculates, on the basis of the first hash values 50 belonging to a plurality of the first hash value groups 52, second hash values 54 respectively corresponding to the first hash value groups 52; and calculates a top hash value 60 on the basis of a plurality of the second hash values 54.
Need to check novelty before this filing date? Find Prior Art

Description

Tree structure generation method, information processing device, information processing system, and tree structure generation program

[0001] The present disclosure relates to a tree structure generation method, an information processing device, an information processing system, and a tree structure generation program.

[0002] JP 2020-507766 A discloses that in order to reduce the time required for the calculation process and improve the calculation efficiency in verifying blockchain nodes, data in leaf nodes is sorted, a predetermined number of data are selected in order from the sorted data and placed in the corresponding sub-leaf nodes, and data from each sub-leaf node is extracted, sorted in the order of the data's timestamps, and the hash value of the sorted data, i.e., the hash value of the sub-leaf node, is calculated.

[0003] Japanese Patent Application Laid-Open No. 2023-72051 discloses that in a Merkle tree for verifying a set of transactions within a block, the hash of the second node, which is the next level of the first node, the hash of the next level of the second node, and the Merkle root are calculated by using two different hashes that exist at each level in the Merkle branch to calculate the hash of the next level.

[0004] Japanese Patent Publication No. 2022-527610 discloses a technique for transmitting blocks between miner nodes in a blockchain network, in which miners calculate the Merkle root.

[0005] In blockchain technology, Merkle trees are a method for summarizing and storing larger amounts of data, but in order to verify consistency with stored data by referencing only the data at one of the leaf nodes of a Merkle tree, it is necessary to obtain and calculate hash values ​​for the depth of the tree up to the root node.

[0006] The present disclosure has been made in consideration of the above facts, and aims to provide a tree structure generation method, an information processing device, an information processing system, and a tree structure generation program that are capable of reducing the number of node hash values ​​obtained when verifying data using a Merkle tree in blockchain technology, compared to when a Merkle tree is generated without considering the arrangement of data.

[0007] In order to achieve the above object, a tree structure generation method according to a first aspect of the present disclosure includes a computer calculating a first hash value corresponding to each of a plurality of data items classified into a plurality of data groups for each reference condition, wherein the plurality of data items are arranged so that data items with a common reference condition are adjacent to each other, classifying a predetermined number of first hash values ​​into first hash value groups, calculating second hash values ​​corresponding to each of the first hash value groups based on the first hash values ​​belonging to the plurality of first hash value groups, and calculating a top hash value based on the plurality of second hash values.

[0008] A tree structure generation method according to a second aspect of the present disclosure is the tree structure generation method according to the first aspect, in which the computer further classifies multiple pieces of data by reference condition and changes the arrangement of the multiple pieces of data for each reference condition before performing the process of calculating the top hash value.

[0009] A tree structure generation method according to a third aspect of the present disclosure is the tree structure generation method according to the first aspect, in which a computer classifies a predetermined number of second hash values ​​into second hash value groups, calculates intermediate hash values ​​corresponding to each of the second hash value groups based on the second hash values ​​belonging to the second hash value groups, and calculates a top hash value based on the intermediate hash values.

[0010] A tree structure generating method according to a fourth aspect of the present disclosure is the tree structure generating method according to the first aspect, wherein the reference condition is at least one of a user ID, a registration date and time, and a data format type.

[0011] A tree structure generation method according to a fifth aspect of the present disclosure is the tree structure generation method according to the third aspect, in which a computer classifies multiple second hash values ​​into multiple second hash value groups so that the number of second hash values ​​included in each second hash value group is two or one.

[0012] A tree structure generation method according to a sixth aspect of the present disclosure is the tree structure generation method according to the first aspect, in which a computer registers the top hash value, the first hash value, or the first hash value and the second hash value in a blockchain.

[0013] An information processing device according to a seventh aspect of the present disclosure includes a processor, which calculates a first hash value corresponding to each of a plurality of pieces of data classified into a plurality of data groups for each reference condition, wherein the plurality of pieces of data are arranged so that data having a common reference condition are adjacent to each other, classifies a predetermined number of first hash values ​​into first hash value groups, calculates second hash values ​​corresponding to each of the first hash value groups based on the first hash values ​​belonging to the plurality of first hash value groups, and performs a process of calculating a top hash value based on the plurality of second hash values.

[0014] An information processing system according to an eighth aspect of the present disclosure includes the information processing device according to the seventh aspect, and a client computer that transmits a plurality of data to the information processing device.

[0015] A tree structure generation program according to a ninth aspect of the present disclosure causes a computer to execute a process of calculating a first hash value corresponding to each of a plurality of pieces of data classified into a plurality of data groups for each reference condition, wherein the plurality of pieces of data are arranged so that data with a common reference condition are adjacent to each other, classifying a predetermined number of first hash values ​​into first hash value groups as groups, calculating second hash values ​​corresponding to each of the first hash value groups based on the first hash values ​​belonging to the plurality of first hash value groups, and calculating a top hash value based on the plurality of second hash values.

[0016] According to the present disclosure, it is possible to provide a tree structure generation method, an information processing device, an information processing system, and a tree structure generation program that can reduce the number of hash values ​​of nodes to be obtained when verifying data using a Merkle tree in blockchain technology, compared to when a Merkle tree is generated without considering the arrangement of data.

[0017] 1 is a block diagram showing an example of the overall configuration of an information processing system according to the present embodiment; FIG. 2 is a block diagram showing the configuration of the main electrical parts of a management server and a client computer in the information processing system according to the present embodiment; FIG. 3 is a diagram showing an example of a Merkle tree; FIG. 4 is a functional block diagram showing the functional configuration of the management server of the information processing system according to the present embodiment; FIG. 5 is a diagram showing an example of the flow of processing performed when creating a Merkle tree in the management server of the information processing system according to the present embodiment; FIG. 6 is a flowchart showing an example of the flow of processing for changing the arrangement of data for each reference condition, performed in the management server of the information processing system according to the present embodiment; FIG. 7 is a flowchart showing an example of the flow of processing for creating a Merkle tree and calculating a top hash value, performed in the management server of the information processing system according to the present embodiment;

[0018] Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings, but the present invention is not limited to the embodiment.

[0019] In this embodiment, an information processing system will be described as an example in which a management server as an example of an information processing apparatus and client computers are connected to each other via communication lines such as various networks. Fig. 1 is a block diagram showing an example of the overall configuration of an information processing system 10 according to this embodiment.

[0020] As shown in FIG. 1 , an information processing system 10 according to this embodiment includes a management server 12 and multiple client computers 14 (14A, 14B, 14C). The management server 12 and the client computers 14 are connected to each other via a communication line 16, such as a local area network (LAN), a wide area network (WAN), the Internet, or an intranet. The management server 12 and the client computers 14 are capable of transmitting and receiving various data to and from each other via the communication line 16. While FIG. 1 shows a case in which there are three client computers 14, there may be one, two, or four or more. Furthermore, although there is one management server 12, there may be multiple client computers.

[0021] In this embodiment, the client computer 14 requests the management server 12 to register data in the blockchain 18 , and the management server 12 writes data to the blockchain 18 .

[0022] The blockchain 18 is composed of blocks 20 linked in order like a chain. A block 20 is a transaction (transaction data) of a predetermined data capacity, and is a set of transaction data that has been aggregated to a certain amount and has meta-information such as a timestamp (date) attached to it.

[0023] Each block 20 is assigned meta-information such as a timestamp, a hash value, and a nonce. Based on this information, each block 20 is linked to the previous block and the next block according to certain rules, like a chain. Transactions are accumulated in real time and periodically bundled as blocks 20. Blocks 20 containing these transactions are stored in each node that makes up the blockchain 18. Even if one node is tampered with, the other nodes retain the correct information, so the tampering can be corrected. The hash value is derived using a special encryption technique called a hash function. The nonce is derived as a random value so that the most significant digits of the hash value are zero. Note that each node that makes up the blockchain 18 may or may not include the management server 12.

[0024] It is assumed that there is a blockchain 18 and users who use the blockchain 18. It is assumed that the users of the blockchain 18 write to or refer to the blockchain on an irregular basis.

[0025] The information processing system 10 according to this embodiment is described as being installed in company A, for example, as shown in FIG. 1, and each client computer 14 is operated by a user belonging to company A.

[0026] Next, the main configuration of the electrical systems of the management server 12 and client computers 14 of the information processing system 10 according to this embodiment will be described. Fig. 2 is a block diagram showing the main configuration of the electrical systems of the management server 12 and client computers 14 in the information processing system 10 according to this embodiment. Note that since the management server 12 and client computers 14 have general computer configurations, the following description will be given using the management server 12 as a representative.

[0027] As shown in FIG. 2 , the management server 12 according to this embodiment includes a CPU 12A as an example of a processor, a ROM 12B, a RAM 12C, a storage 12D, an operation unit 12E, a display unit 12F, and a communication line I / F (interface) unit 12G. The CPU 12A controls the overall operation of the management server 12. The ROM 12B stores various control programs and parameters in advance. The RAM 12C is used as a work area when the CPU 12A executes various programs. The storage 12D stores various data and application programs such as an update processing program for the blockchain 18. The operation unit 12E is used to input various information. The display unit 12F is used to display various information. The communication line I / F unit 12G is connected to the communication line 16 and transmits and receives various data to and from other devices connected to the communication line 16. The communication line I / F unit 12G may also be configured to communicate directly with each device using various well-known wireless communications. The above-described components of the management server 12 are electrically connected to one another via a system bus 12H. In the management server 12 according to this embodiment, the storage 12D is used as a memory unit, but examples of storage include non-volatile memory units such as HDDs (Hard Disk Drives) and flash memory.

[0028] With the above configuration, the management server 12 according to this embodiment uses the CPU 12A to access the ROM 12B, RAM 12C, and storage 12D, to acquire various data via the operation unit 12E, and to display various information on the display unit 12F. In addition, the management server 12 uses the CPU 12A to control the transmission and reception of communication data via the communication line I / F unit 12G.

[0029] Here, we will explain a data verification method using a Merkle tree as a tree structure in the technology of the blockchain 18. Fig. 3 is a diagram showing an example of a Merkle tree.

[0030] Assume that there exists a user who is only allowed to access a portion of the original data summarized in a single Merkle tree. Also, assume that the target Merkle tree has the structure shown in Figure 3.

[0031] When a user verifies the consistency between the data that the user can access and the data summarized and stored in a Merkle tree, consider the case where the leaf nodes corresponding to the data that the user can access are distributed. For example, consider the case where the user can access "Hash 0-0-0" and "Hash 1-0-0" in Figure 3.

[0032] To perform the desired verification, it is necessary to obtain and calculate hashes for the depth of the Merkle tree. In the example of Figure 3, it is necessary to obtain and calculate "hash0-0-1", "hash0-1", and "hash1" or "hash1-0-1", "hash1-1", and "hash0".

[0033] Next, consider a case where the data that a user can refer to is configured as branches. For example, consider a case where "Hash 0-0-0" and "Hash 0-0-1" in FIG. 3 can be referenced.

[0034] To perform the desired verification, it is necessary to obtain only the hashes up to the target branch in the Merkle tree, i.e., "hash 0-1" and "hash 1" in the example shown in Figure 3.

[0035] Therefore, by creating a Merkle tree structure in advance based on the conditions to be referenced, efficient data verification becomes possible.

[0036] For example, when summarizing two pieces of data that user A can access and six pieces of data that user B can access into one Merkle tree as shown in Figure 3, the data that user A can access corresponds to "hash 0-0-0" and "hash 0-0-1" (dashed lines in Figure 3), and the data that user B can access corresponds to "hash 0-1-0" to "hash 1-1-1" (dashed lines in Figure 3).

[0037] As a result, when user A verifies data, he or she obtains only "hash 0-1" and "hash 1," while user B obtains only "hash 0-0."

[0038] Therefore, when creating a Merkle tree, the management server 12 according to this embodiment calculates a first hash value 50 corresponding to each of a plurality of data items classified into a plurality of data groups for each predetermined reference condition, with data items having a common reference condition arranged adjacent to each other, classifies the predetermined number of first hash values ​​50 into first hash value groups 52, calculates second hash values ​​54 corresponding to each of the first hash value groups 52 based on the first hash values ​​50 belonging to the plurality of first hash value groups 52, and calculates a top hash value 60 based on the plurality of second hash values ​​54.

[0039] Before performing the process of calculating the top hash value, the management server 12 may further perform a process of classifying a plurality of pieces of data for each reference condition and changing the arrangement of the plurality of pieces of data for each reference condition.

[0040] Alternatively, the calculation of the top hash value 60 based on the plurality of second hash values ​​54 may involve classifying a predetermined number of second hash values ​​54 into second hash value groups 56, calculating intermediate hash values ​​58 corresponding to each of the second hash value groups 56 based on the second hash values ​​54 belonging to the second hash value groups 56, and then calculating the top hash value 60 based on the intermediate hash values ​​58. Alternatively, the plurality of second hash values ​​may be classified into a plurality of second hash value groups such that the number of second hash values ​​included in each second hash value group is two or one.

[0041] In detail, the management server 12 has the functions shown in Fig. 4 by loading a program stored in the ROM 12B into the RAM 12C and executing the program with the CPU 12A. Fig. 4 is a functional block diagram showing the functional configuration of the management server 12 of the information processing system 10 according to this embodiment.

[0042] That is, the management server 12 has the functions shown in FIG. 4 by loading a program stored in the ROM 12B into the RAM 12C and executing the program with the CPU 12A.

[0043] That is, the management server 12 has the functions of a reception unit 30, a queue 32, a classification unit 34, a modification unit 36, a hash value calculation unit 38, and a blockchain registration unit 40.

[0044] The reception unit 30 receives a command to register in the blockchain 18 sent from the client computer 14, generates a hash value of the command, and stores it in the queue 32. Furthermore, when a predetermined number of hash values ​​have been stored in the queue 32, the reception unit 30 notifies the classification unit 34 that a certain number of hash values ​​have been stored.

[0045] The queue 32 is a storage area set in advance in the storage 12D, and stores the hash values ​​sent from the client computers 14 and generated in order.

[0046] The classification unit 34 classifies the hash values ​​stored in the queue 32 according to the reference conditions of the data from which the hash values ​​were calculated. For example, as an example of the reference conditions, at least one of the user ID, the registration date and time, and the data format is applied, and the data is classified for each reference condition.

[0047] The change unit 36 ​​changes the arrangement of the hash values ​​stored in the queue 32 based on the classification result of the classification unit 34. Specifically, the change unit 36 ​​changes the arrangement of the hash values ​​so that data with common reference conditions are adjacent to each other.

[0048] The hash value calculation unit 38 generates a Merkle tree with sets of data with common reference conditions as branches, stores hash values ​​in the Merkle tree, and stores hash values ​​of data without common reference conditions in empty leaves of the Merkle tree, generating a Merkle tree and calculating the hash value of each node and the top hash value.

[0049] The blockchain registration unit 40 registers the top hash value of the Merkle tree or the hash value of each node in the blockchain 18.

[0050] Next, a specific process performed when creating a Merkle tree in the management server 12 of the information processing system 10 according to this embodiment configured as described above will be described. Fig. 5 is a diagram showing an example of the flow of the process performed when creating a Merkle tree in the management server 12 of the information processing system 10 according to this embodiment. Note that the process in Fig. 5 starts, for example, when data to be registered in the blockchain 18 is received from the client computer 14.

[0051] In step 100, the CPU 12A creates a hash value of the data received from the client computer 14, stores it in the queue 32, and then proceeds to step 102. That is, the reception unit 30 receives an instruction to register in the blockchain 18, which has been sent from the client computer 14, generates a hash value of the instruction, and stores it in the queue 32.

[0052] In step 102, the CPU 12A determines whether a predetermined number of hash values ​​have been accumulated. This determination is made by determining whether the reception unit 30 has accumulated a predetermined number of hash values ​​stored in the queue 32. If the determination is negative, the process proceeds to step 104, and if the determination is positive, the process proceeds to step 106.

[0053] In step 104, the CPU 12A waits for the creation of a hash value resulting from the creation of other data, and then returns to step 100 to repeat the above-described process. That is, the CPU 12A waits for a command from the client computer 14 and then returns to step 100.

[0054] In step 106, the CPU 12A classifies the data according to the data reference conditions, and proceeds to step 108. That is, the classification unit 34 classifies the data according to the reference conditions of the data stored in the queue 32. For example, as an example of the reference conditions, at least one of the user ID, the registration date and time, and the data format is applied, and the data is classified for each reference condition.

[0055] In step 108, the CPU 12A determines whether or not there is a set of data that has a common reference condition. If the determination is affirmative, the process proceeds to step 110, and if the determination is negative, the process proceeds to step 112.

[0056] In step 110, CPU 12A stores the hash values ​​in a Merkle tree with the sets of data as branches, and proceeds to step 112. That is, based on the classification results of classifier 34, modifier 36 modifies the arrangement of multiple pieces of data stored in queue 32 so that data with common reference conditions are adjacent to each other. Then, hash value calculator 38 generates a Merkle tree with sets of data with common reference conditions as branches, and stores the hash values ​​in the Merkle tree.

[0057] In step 112, the CPU 12A stores the hash values ​​of the unstored data in an empty leaf node of the Merkle tree, and then proceeds to step 114. That is, the hash value calculation unit 38 stores the hash values ​​of the data that do not have common reference conditions in an empty leaf node of the Merkle tree, generates a Merkle tree, and obtains the hash value of each node and the top hash value.

[0058] In step 114, the CPU 12A writes to the blockchain 18, thereby completing the series of processes. That is, the blockchain registration unit 40 registers the top hash value of the Merkle tree or the hash values ​​of each node in the blockchain 18.

[0059] By performing this processing to regenerate a Merkle tree, it is possible to reduce the number of hash values ​​of nodes obtained when verifying data using a Merkle tree compared to generating a Merkle tree without considering the arrangement of the data.

[0060] (Modification) Next, a modification will be described. In the above embodiment, an example was described in which the process of changing the data array for each reference condition and the process of creating a Merkle tree and calculating the top hash value were performed as a single process. However, in a modification, an example will be described in which the process of changing the data array for each reference condition and the process of creating a Merkle tree and calculating the top hash value are performed as separate processes. In this modification, the functions of the management server 12 function as follows.

[0061] The reception unit 30 receives as data a command to register in the blockchain 18 sent from the client computer 14 and stores the command in the queue 32. Furthermore, when a predetermined number of data items have been stored in the queue 32, the reception unit 30 notifies the classification unit 34 that a certain number of data items have been stored.

[0062] The queue 32 is a storage area set in advance in the storage 12D, in which commands sent from the client computers 14 are stored in order as data.

[0063] The classification unit 34 classifies the data according to the reference conditions of the data stored in the queue 32. For example, as an example of the reference conditions, at least one of the user ID, the registration date and time, and the data format is applied, and the data is classified for each reference condition.

[0064] The change unit 36 ​​changes the arrangement of the plurality of data stored in the queue 32 based on the classification result of the classification unit 34. Specifically, the change unit 36 ​​changes the arrangement of the plurality of data so that data with common reference conditions are adjacent to each other.

[0065] The hash value calculation unit 38 generates a Merkle tree with sets of data with common reference conditions as branches, stores hash values ​​in the Merkle tree, and stores hash values ​​of data without common reference conditions in empty leaf nodes of the Merkle tree, generates a Merkle tree, and calculates the hash value of each node and the top hash value.

[0066] The blockchain registration unit 40 registers the top hash value of the Merkle tree or the hash value of each node in the blockchain 18.

[0067] 6 is a flowchart showing an example of the flow of processing for changing the data arrangement for each reference condition, which is performed in the management server 12 of the information processing system 10 according to this embodiment. Note that the same processes as those in FIG. 5 will be described with the same reference numerals.

[0068] In step 101, the CPU 12A accepts data from the client computer 14, stores the data in the queue 32, and then proceeds to step 103. That is, the accepting unit 30 accepts an instruction to register the data in the blockchain 18, which is sent from the client computer 14.

[0069] In step 103, the CPU 12A determines whether a predetermined number of data items have accumulated. This determination is made by determining whether the reception unit 30 has stored the predetermined number of data items in the queue 32. If the determination is negative, the process proceeds to step 105, and if the determination is affirmative, the process proceeds to step 106.

[0070] In step 105, the CPU 12A waits for the reception of other data, returns to step 101, and repeats the above-described processing. That is, the CPU 12A waits for a command from the client computer 14, and then returns to step 101.

[0071] In step 106, the CPU 12A classifies the data according to the data reference conditions, and proceeds to step 108. That is, the classification unit 34 classifies the data according to the reference conditions of the data stored in the queue 32. For example, as an example of the reference conditions, at least one of the user ID, the registration date and time, and the data format is applied, and the data is classified for each reference condition.

[0072] In step 108, the CPU 12A determines whether or not there is a set of data that has a common reference condition. If the determination is affirmative, the process proceeds to step 109, and if negative, the process proceeds to step 111.

[0073] In step 109, the CPU 12A changes the arrangement of the data for each common reference condition, and then proceeds to step 111. That is, the change unit 36 ​​changes the arrangement of the multiple data stored in the queue 32 based on the classification result of the classification unit 34 so that the data with the common reference condition are adjacent to each other.

[0074] In step 111, the CPU 12A stores the data whose arrangement has been changed in the queue 32, and ends the series of processes. That is, the changing unit 36 ​​stores the data in the queue 32 in the order in which the arrangement has been changed.

[0075] FIG. 7 is a flowchart showing an example of the flow of a process performed in the management server 12 of the information processing system 10 according to this embodiment to create a Merkle tree and calculate a top hash value.

[0076] In step 200, the CPU 12A calculates a first hash value 50 corresponding to the leaf node of the Merkle tree, and then proceeds to step 202. That is, the hash value calculation unit 38 sequentially retrieves the data stored in the queue 32 and calculates a first hash value corresponding to the leaf node of the Merkle tree.

[0077] In step 202, the CPU 12A classifies a predetermined number of first hash values ​​50 into a first hash value group 52 as a group, and then proceeds to step 204. In this embodiment, two first hash values ​​50 are classified into the first hash value group 52 as a group. That is, the hash value calculation unit 38 classifies two first hash values ​​into the first hash value group 52 as a group.

[0078] In step 204, the CPU 12A calculates the second hash value 54 based on the first hash value 50 in the first hash value group 52, and then proceeds to step 206. That is, the hash value calculation unit 38 calculates the second hash value from the hash value in the first hash value group 52.

[0079] In step 206, the CPU 12A determines whether the calculated hash value is the top hash value 60. If the determination is negative, the process proceeds to step 208;

[0080] In step 208, the calculated hash values ​​are classified as intermediate hash values ​​58, and a predetermined number of intermediate hash values ​​58 are classified into an intermediate hash value group, and the process proceeds to step 210. In this embodiment, two intermediate hash values ​​58 are classified into a group. That is, the hash value calculation unit 38 classifies the two intermediate hash values ​​58 into a group into the intermediate hash value group.

[0081] In step 210, the CPU 12A calculates the next intermediate hash value based on the group of intermediate hash values, returns to step 206, and repeats the above process. When the calculated intermediate hash value becomes the top hash value, the process proceeds to step 212. That is, the hash value calculation unit 38 calculates the next intermediate hash value from the intermediate hash values ​​in the group of intermediate hash values. Specifically, the second hash value 54 of the Merkle tree shown in FIG. 3 is calculated, and steps 206 to 210 are repeated to sequentially calculate intermediate hash values ​​58 up the Merkle tree.

[0082] In step 212, the CPU 12A writes the calculated top hash value to the blockchain 18, thereby completing the series of processes. That is, the blockchain registration unit 40 registers the calculated top hash value in the blockchain. Note that instead of the top hash value, hash values ​​of each node, such as the first hash value, second hash value, and intermediate hash value, may be registered in the blockchain 18. Alternatively, only the first hash value corresponding to the leaf node of the generated Merkle tree may be registered in the blockchain 18.

[0083] In the above embodiment, an example of executing the processes of Figures 5 to 7 on the management server 12 has been described, but this is not limited to this. For example, the processes of Figures 5 to 7 may be executed by a smart contract function on the blockchain 18.

[0084] Furthermore, in the above embodiment, a Merkle tree that generates one node (branch) from two leaf nodes has been described as an example, but a tree structure that generates one node from three leaf nodes, or a tree structure that generates one node from four or more leaf nodes, may also be applied.

[0085] Furthermore, the various processes performed by the CPU in the above embodiments by executing software (programs) may be executed by a computer equipped with various processors other than a CPU. Examples of such processors include programmable logic devices (PLDs) (such as field-programmable gate arrays (FPGAs)) whose circuit configuration can be changed after manufacture, and dedicated electrical circuits, such as application-specific integrated circuits (ASICs), which are processors with circuit configurations specifically designed to execute specific processes. The various processes may be executed by one of these 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 processors is, more specifically, an electrical circuit that combines circuit elements such as semiconductor devices.

[0086] In the above embodiment, the various programs are pre-stored (installed) in the ROM 20B, but the present invention is not limited to this. The various programs may be provided in a form recorded on a recording 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 various programs may also be downloaded from an external information processing device or the like via a network.

[0087] Furthermore, the configuration, operation, etc. of the information processing system 10 described in the above embodiment are merely examples, and it goes without saying that they can be modified according to the circumstances within the scope of the present disclosure.

[0088] The following supplementary note is further disclosed regarding the above embodiment: (Supplementary Note 1) A tree structure generation method in which a computer performs processing to calculate a first hash value corresponding to each of a plurality of pieces of data classified into a plurality of data groups for each reference condition, the plurality of pieces of data being arranged so that data having a common reference condition are adjacent to each other, classifying a predetermined number of the first hash values ​​into first hash value groups, calculating a second hash value corresponding to each of the first hash value groups based on the first hash values ​​belonging to the plurality of first hash value groups, and calculating a top hash value based on the plurality of second hash values.

[0089] (Supplementary Note 2) The tree structure generation method according to Supplementary Note 1, wherein the computer further classifies a plurality of data items according to the reference conditions before performing the process of calculating the top hash value, and changes the arrangement of the plurality of data items according to the reference conditions.

[0090] (Supplementary Note 3) The tree structure generation method according to Supplementary Note 1 or Supplementary Note 2, wherein the computer classifies a predetermined number of the second hash values ​​into a second hash value group, calculates intermediate hash values ​​corresponding to each of the second hash value groups based on the second hash values ​​belonging to the second hash value group, and calculates a top hash value based on the intermediate hash values.

[0091] (Supplementary Note 4) The tree structure generating method according to any one of Supplementary Note 1 to Supplementary Note 3, wherein the reference condition is at least one of a user ID, a registration date and time, and a data format type.

[0092] (Appendix 5) The tree structure generation method described in Appendix 3, wherein the computer classifies the second hash values ​​into the second hash value groups so that the number of second hash values ​​included in the second hash value group is two or one.

[0093] (Supplementary Note 6) The tree structure generation method according to any one of Supplementary Note 1 to Supplementary Note 5, wherein a computer registers the top hash value, the first hash value, or the first hash value and the second hash value in a blockchain.

[0094] (Supplementary Note 7) An information processing device comprising a processor, the processor performing a process of: calculating a first hash value corresponding to each of a plurality of pieces of data classified into a plurality of data groups for each reference condition, the plurality of pieces of data being arranged so that data having a common reference condition are adjacent to each other; classifying a predetermined number of the first hash values ​​into first hash value groups; calculating a second hash value corresponding to each of the first hash value groups based on the first hash values ​​belonging to the plurality of first hash value groups; and calculating a top hash value based on the plurality of second hash values.

[0095] (Supplementary Note 8) An information processing system including: the information processing device according to Supplementary Note 7; and a client computer that transmits the plurality of data to the information processing device.

[0096] (Supplementary Note 9) A tree structure generation program for causing a computer to execute processes of: calculating a first hash value corresponding to each of a plurality of data classified into a plurality of data groups for each reference condition, the plurality of data being arranged so that data having a common reference condition are adjacent to each other; classifying a predetermined number of the first hash values ​​into first hash value groups; calculating a second hash value corresponding to each of the first hash value groups based on the first hash values ​​belonging to the plurality of first hash value groups; and calculating a top hash value based on the plurality of second hash values.

[0097] The disclosure of Japanese Patent Application No. 2023-203359 is incorporated herein by reference in its entirety. In addition, all documents, patent applications, and technical standards described herein are incorporated herein by reference to the same extent as if each individual document, patent application, and technical standard were specifically and individually indicated to be incorporated by reference.

Claims

1. A method for generating a tree structure in which a computer calculates a first hash value corresponding to each of a plurality of pieces of data classified into a plurality of data groups for each reference condition, the plurality of pieces of data being arranged so that data having a common reference condition are adjacent to each other, classifying a predetermined number of the first hash values ​​into first hash value groups, calculating second hash values ​​corresponding to each of the first hash value groups based on the first hash values ​​belonging to the plurality of first hash value groups, and calculating a top hash value based on the plurality of second hash values.

2. The tree structure generating method according to claim 1, wherein the computer further performs a process of classifying a plurality of data items according to the reference condition and changing the arrangement of the plurality of data items according to the reference condition before performing a process of calculating the top hash value.

3. The method for generating a tree structure according to claim 1, wherein the computer classifies a predetermined number of the second hash values ​​into a second hash value group, calculates intermediate hash values ​​corresponding to each of the second hash value groups based on the second hash values ​​belonging to the second hash value group, and calculates a top hash value based on the intermediate hash values.

4. The tree structure generating method according to claim 1, wherein the reference condition is at least one of a user ID, a registration date and time, and a data format.

5. The method for generating a tree structure according to claim 3, wherein the computer classifies the second hash values ​​into the second hash value groups so that the number of the second hash values ​​included in the second hash value group is two or one.

6. The tree structure generating method according to claim 1, wherein a computer registers the top hash value, the first hash value, or the first hash value and the second hash value in a blockchain.

7. An information processing device comprising a processor that performs a process of: calculating a first hash value corresponding to each of a plurality of pieces of data classified into a plurality of data groups for each reference condition, the plurality of pieces of data being arranged so that data having a common reference condition are adjacent to each other; classifying a predetermined number of the first hash values ​​into first hash value groups as groups; calculating second hash values ​​corresponding to each of the first hash value groups based on the first hash values ​​belonging to the plurality of first hash value groups; and calculating a top hash value based on the plurality of second hash values.

8. An information processing system comprising: an information processing device according to claim 7; and a client computer that transmits the plurality of data to the information processing device.

9. A tree structure generating program for causing a computer to execute a process of: calculating a first hash value corresponding to each of a plurality of data classified into a plurality of data groups for each reference condition, the plurality of data being arranged so that data having a common reference condition are adjacent to each other; classifying a predetermined number of the first hash values ​​into first hash value groups; calculating a second hash value corresponding to each of the first hash value groups based on the first hash values ​​belonging to the plurality of first hash value groups; and calculating a top hash value based on the plurality of second hash values.

Citation Information

Patent Citations

  • Data processing method and device

    JP2020507866A

  • A molecular evidence platform for auditable and continuous optimization of variant interpretation in genetic and genomic testing and analysis

    JP2020537795A

  • Block Recognition

    JP2023072051A

  • A process and platform for enabling traceability of ancillary documents created by third parties from the original document via a blockchain system

    JP2023543251A

  • Composition for skin wrinkle or elasticity improvement comprising an extract or a fraction of Castanopsis sieboldii

    KR102460456B1