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

By generating Merkle trees from data categorized according to reference conditions, the problem of obtaining too many hash values ​​in Merkle tree data verification is solved, thus improving efficiency.

CN122270754APending Publication Date: 2026-06-23FUJIFILM CORP
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-24
Publication Date
2026-06-23

Smart Images

  • Figure CN122270754A_ABST
    Figure CN122270754A_ABST
Patent Text Reader

Abstract

When the Merkle tree is created, the management server performs the following processes: calculates first hash values (50) each corresponding to a plurality of data classified into a plurality of data groups according to a predetermined reference condition and arranged in such a manner that data of a common reference condition are adjacent; classifies the predetermined number of first hash values (50) into a first hash value group (52) as a group; calculates second hash values (54) each corresponding to the first hash value group (52) from the first hash values (50) belonging to the plurality of first hash value groups (52); and calculates a top hash value (60) from the plurality of second hash values (54).
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to a tree structure generation method, an information processing device, an information processing system, and a tree structure generation program. Background Technology

[0002] The following content was disclosed in Japanese Patent Publication No. 2020-507766: In order to shorten the computation time and improve the computation efficiency in the verification of blockchain nodes, the data of leaf nodes is sorted, a predetermined number of data are selected from the sorted data and configured into their respective child leaf nodes, and then the data of each child leaf node is extracted, sorted according to the timestamp order of the data, and the hash value of the sorted data is calculated, which is the hash value of the child leaf node.

[0003] The following content was disclosed in Japanese Patent Application Publication No. 2023-72051: In the Merkle tree used to verify the set of transactions within a block, the hash of the next level is calculated using two different hashes existing at each level of the Merkle tree, thereby performing the hash of the next level of the first node, namely the second node, the hash of the next level of the second node, and the calculation of the Merkle root.

[0004] The following content was disclosed in Japanese Patent Publication No. 2022-527610: In the technology related to the propagation of blocks between miner nodes in a blockchain network, the Merkle root calculation is performed by the miner. Summary of the Invention

[0005] -The technical problem that the invention aims to solve-

[0006] In blockchain technology, Merkle trees are used as a method to aggregate and store larger amounts of data. However, in order to verify the consistency of stored data based solely on the data that has become one of the leaf nodes of the Merkle tree, it is necessary to obtain and calculate the hash value of the depth up to the root node.

[0007] The present invention was made in consideration of the above circumstances, and its purpose is to provide a tree structure generation method, information processing device, information processing system, and tree structure generation program that can reduce the number of hash values ​​of nodes obtained when performing data verification using Merkle trees in blockchain technology, compared with generating Merkle trees without considering the arrangement of data.

[0008] -Means used to solve technical problems-

[0009] To achieve the above objectives, the first aspect of the present invention relates to a tree structure generation method, in which a computer performs the following processing: calculating a first hash value, wherein the first hash value corresponds to multiple data that are classified into multiple data groups according to each reference condition and arranged in such a way that data with common reference conditions are adjacent; classifying a predetermined number of first hash values ​​into first hash value groups as groups; calculating second hash values ​​corresponding to the first hash value groups based on the first hash values ​​belonging to the multiple first hash value groups; and calculating a top-level hash value based on the multiple second hash values.

[0010] In the tree structure generation method of the second aspect of the present invention, before the computer performs the processing of calculating the top-level hash value, it performs the following processing: classifying multiple data according to each reference condition; and changing the arrangement of multiple data according to each reference condition.

[0011] In the tree structure generation method of the third aspect of the present invention, in the tree structure generation method of the first aspect, the computer performs the following processing: classifying a predetermined number of second hash values ​​into second hash value groups; calculating intermediate hash values ​​corresponding to the second hash value groups based on the second hash values ​​belonging to the second hash value groups; and calculating top-level hash values ​​based on the intermediate hash values.

[0012] The tree structure generation method according to the fourth aspect of the present invention, in the tree structure generation method according to the first aspect, refers to at least one of the following conditions: user ID, registration date and time, and data format.

[0013] In the tree structure generation method of the fifth aspect of the present invention, in the tree structure generation method of the third aspect, the computer classifies multiple second hash values ​​into multiple second hash value groups, so that the number of second hash values ​​contained in the second hash value group is two or one.

[0014] In the tree structure generation method of the sixth aspect of the present invention, in the tree structure generation method of the first aspect, the computer registers the top-level hash value, the first hash value, or the first hash value and the second hash value into the blockchain.

[0015] The seventh aspect of the present invention relates to an information processing apparatus comprising a processor that performs the following processing: calculating a first hash value, wherein the first hash value corresponds to a plurality of data that are classified into a plurality of data groups according to each reference condition and arranged in such a way that the data with a common reference condition are adjacent; classifying a predetermined number of first hash values ​​into first hash value groups as 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-level hash value based on the plurality of second hash values.

[0016] An information processing system according to the eighth aspect of the present invention includes: an information processing device according to the seventh aspect; and a client computer that sends multiple data to the information processing device.

[0017] The ninth aspect of the present invention relates to a tree structure generation program that causes a computer to perform the following processes: calculating a first hash value, each of which corresponds to a plurality of data classified into multiple data groups according to each reference condition and arranged in such a way that data with a common reference condition are adjacent; classifying a predetermined number of first hash values ​​into first hash value groups as groups; calculating second hash values ​​corresponding to the first hash value groups based on the first hash values ​​belonging to the plurality of first hash value groups; and calculating a top-level hash value based on the plurality of second hash values.

[0018] -Invention Effects-

[0019] According to the present invention, a tree structure generation method, information processing device, information processing system, and tree structure generation program are provided that can reduce the number of hash values ​​of nodes obtained when performing data verification using Merkle trees in blockchain technology, compared with generating Merkle trees without considering the arrangement of data. Attached Figure Description

[0020] Figure 1 This is a block diagram illustrating an example of the overall structure of the information processing system involved in this embodiment.

[0021] Figure 2 This is a block diagram showing the main structural components of the electrical systems of the management server and client computers in the information processing system described in this embodiment.

[0022] Figure 3 This is a diagram illustrating an example of a Merkle tree.

[0023] Figure 4 This is a functional block diagram illustrating the functional structure of the management server of the information processing system involved in this embodiment.

[0024] Figure 5 This diagram illustrates an example of the processing flow performed when creating a Merkle tree in the management server of the information processing system involved in this embodiment.

[0025] Figure 6 This is a flowchart illustrating an example of the process of changing the arrangement of data according to each reference condition in the management server of the information processing system involved in this embodiment.

[0026] Figure 7This is a flowchart illustrating an example of the process of creating a Merkle tree to calculate the top-level hash value in the management server of the information processing system involved in this embodiment. Detailed Implementation

[0027] Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, these embodiments are not intended to limit the scope of the invention.

[0028] In this embodiment, an information processing system in which a management server and a client computer are connected via various communication lines such as networks will be described as an example of an information processing device. Figure 1 This is a block diagram illustrating an example of the overall structure of the information processing system 10 according to this embodiment.

[0029] like Figure 1 As shown, the information processing system 10 involved in 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 via communication lines 16 such as LAN (Local Area Network), WAN (Wide Area Network), Internet, and intranet. Furthermore, the management server 12 and the client computers 14 can send and receive various types of data via the communication lines 16. Additionally, in Figure 1 The diagram shows a scenario where there are 3 client computers 14, but it can also be 1, 2, or more than 4. Similarly, it shows a scenario where there is 1 management server 12, but it can also be multiple servers.

[0030] In this embodiment, the management server 12 writes to the blockchain 18 by submitting a registration request to the blockchain 18 from the client computer 14.

[0031] Block 18 is structured as blocks 20 linked together like a chain. In addition, block 20 is a pre-defined data volume of transactions (business data), which is data that is aggregated into a certain amount of business data and assigned metadata such as timestamps (dates).

[0032] In each block 20, in addition to the timestamp, metadata such as hash value and nonce is appended. Based on this information, each block 20 links previous and subsequent blocks like a chain according to certain rules. Transactions accumulate in real time and are periodically packaged into blocks 20. Blocks 20 containing these transactions are maintained by the nodes constituting blockchain 18. Even if one node is tampered with, other nodes retain the correct information, thus allowing for correction. Regarding the hash value, a special cryptographic technique called a hash function is used to derive the hash value. The nonce is a derived random value so that the first few high-order bits of the hash value are 0. Furthermore, the nodes constituting blockchain 18 may or may not include a management server 12.

[0033] Additionally, assume the existence of blockchain 18 and users utilizing blockchain 18. Assume that users of blockchain 18 periodically write to or reference the blockchain.

[0034] And, for example, such as Figure 1 As shown, the information processing system 10 involved in this embodiment is located in Company A, and each client computer 14 is operated by a user belonging to Company A.

[0035] Next, the main structural components of the electrical systems of the management server 12 and client computer 14 of the information processing system 10 according to this embodiment will be described. Figure 2 This is a block diagram showing the main structural components of the electrical systems of the management server 12 and client computer 14 in the information processing system 10 according to this embodiment. Furthermore, since the management server 12 and client computer 14 are general computer structures, the following description will use the management server 12 as an example.

[0036] like Figure 2As shown, the management server 12 according to this embodiment includes, as an example, a CPU 12A, a ROM 12B, a RAM 12C, a storage device 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 pre-stores various control programs or various parameters. The RAM 12C serves as a workspace when the CPU 12A executes various programs. The storage device 12D stores various data, application programs such as blockchain 18 update processing programs, etc. 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 performs various data transmission and reception with other devices connected to the communication line 16. Furthermore, the communication line I / F unit 12G can also be configured to communicate directly with each device using various known wireless communications. All the components of the management server 12 are electrically connected to each other via the system bus 12H. In addition, in the management server 12 of this embodiment, the storage device 12D is used as a storage unit, but as an example of a storage device, a non-volatile storage unit such as an HDD (Hard Disk Drive) or flash memory can be used.

[0037] Based on the above structure, the management server 12 in this embodiment performs the following operations via CPU 12A: accessing ROM 12B, RAM 12C, and storage device 12D; acquiring various data via operation unit 12E; and displaying various information on display unit 12F. Furthermore, the management server 12 controls the transmission and reception of communication data via communication line I / F unit 12G via CPU 12A.

[0038] Here, we will explain the data verification method using Merkel trees, which are tree structures, in the technology of Blockchain18. Figure 3 This is a diagram illustrating an example of a Merkle tree.

[0039] Suppose that there are users in the original data summarized by a Merkle tree who are only allowed to reference a portion of the data. Furthermore, the Merkle tree of the object is set as follows: Figure 3 The structure shown.

[0040] Consider the distribution of leaf nodes corresponding to the user-referenced data when the user verifies the match between the user-referenced data and the data stored in a Merkle tree. For example, consider the user-referenced... Figure 3 The cases of "hash 0-0-0" and "hash 1-0-0".

[0041] To perform target verification, it is necessary to obtain and compute the hash of the Merkle tree's depth-related value. Figure 3In the example, it is necessary to obtain "hash0-0-1", "hash0-1" and "hash1" or "hash1-0-1", "hash1-1" and "hash0" and perform calculations.

[0042] Next, consider the case where the data available to the user is structured as branches. For example, consider the data available for reference... Figure 3 The cases of "hash 0-0-0" and "hash 0-0-1".

[0043] To perform target verification, in the Merkle tree, it is necessary to obtain the hash of the depth up to the object branch. Figure 3 In the example, only "hash 0-1" and "hash 1" are needed to perform the calculation.

[0044] Therefore, efficient data validation can be performed by pre-creating a Merkle tree structure based on reference conditions.

[0045] For example, when user A's two reference data points and user B's six reference data points are combined into... Figure 3 When a Merkle tree is shown, the data that user A can refer to is mapped to "hash 0-0-0" and "hash 0-0-1" ( Figure 3 The single-dotted line), which maps the data that user B can refer to to "hash 0-1-0" to "hash 1-1-1" ( Figure 3 (The double-dotted line).

[0046] Therefore, when user A performs data verification, only "hash 0-1" and "hash 1" are obtained, while user B only obtains "hash 0-0", thus enabling verification.

[0047] Therefore, the management server 12 involved in this embodiment performs the following processing: when creating a Merkle tree, it calculates a first hash value 50, which corresponds to each of a plurality of data that are classified into multiple data groups according to each preset reference condition and arranged in such a way that the data with the common reference condition are adjacent; it classifies a preset number of first hash values ​​50 into first hash value groups 52 as groups; it 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 multiple first hash value groups 52; and it calculates a top-level hash value 60 based on the multiple second hash values ​​54.

[0048] In addition, before processing the calculation of the top-level hash value, the management server 12 can further process the data as follows: classify multiple data according to each reference condition, and change the arrangement of multiple data according to each reference condition.

[0049] Furthermore, the calculation of the top-level hash value 60 based on multiple second hash values ​​54 can be performed as follows: A predetermined number of second hash values ​​54 are categorized into second hash value groups 56; intermediate hash values ​​58 corresponding to each second hash value group 56 are calculated based on the second hash values ​​54 belonging to the second hash value group 56; and the top-level hash value 60 is calculated based on the intermediate hash values ​​58. Moreover, multiple second hash values ​​can be categorized into multiple second hash value groups, so that the number of second hash values ​​contained in each second hash value group is either 1 or 2.

[0050] In detail, the management server 12 expands the program stored in ROM 12B into RAM 12C and executes it by CPU 12A, thus having... Figure 4 The functions shown. Figure 4 This is a functional block diagram illustrating the functional structure of the management server 12 of the information processing system 10 involved in this embodiment.

[0051] That is, the management server 12 expands the program stored in ROM 12B into RAM 12C and executes it by CPU 12A, thereby enabling... Figure 4 The functions shown.

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

[0053] The receiving unit 30 receives commands sent from the client computer 14 that are registered in the blockchain 18, generates a hash value for the command, and stores it in the queue 32. Furthermore, when the hash values ​​stored in the queue 32 have accumulated to a predetermined amount, the receiving unit 30 notifies the classification unit 34 that a certain amount of hash values ​​has been accumulated.

[0054] Queue 32 is a storage area pre-defined in storage device 12D, which sequentially stores hash values ​​sent from client computer 14 and generated thereon.

[0055] The classification unit 34 classifies the hash values ​​stored in the queue 32 according to reference conditions of the data from which the hash values ​​are calculated. For example, as a reference condition, at least one of the following is applied: user ID, registration date and time, and data format (style), and the data is classified according to each reference condition.

[0056] The modification unit 36 ​​modifies the arrangement of hash values ​​stored in the queue 32 based on the classification result of the classification unit 34. Specifically, the modification unit 36 ​​modifies the arrangement of hash values ​​so that data with common reference conditions are adjacent.

[0057] The hash value calculation unit 38 generates a Merkle tree by branching the set of data with common reference conditions, and stores the hash values ​​in the Merkle tree. Furthermore, it stores the hash values ​​of data without common reference conditions in the free leaf nodes of the Merkle tree, generates the Merkle tree, and calculates the hash value of each node and the top-level hash value.

[0058] Blockchain registry 40 registers the top-level hash value of the Merkle tree or the hash values ​​of each node into blockchain 18.

[0059] Next, the specific processing performed when creating a Merkle tree will be described in the management server 12 of the information processing system 10 according to this embodiment, which is configured as described above. Figure 5 This diagram illustrates an example of the processing flow performed when a Merkle tree is created in the management server 12 of the information processing system 10 according to this embodiment. Additionally, Figure 5 The processing begins, for example, when data registered in blockchain 18 is received from client computer 14.

[0060] In step S100, CPU 12A creates a hash value for the data received from client computer 14 and stores it in queue 32, then proceeds to step S102. That is, the receiving unit 30 receives the command sent from client computer 14 to be registered in blockchain 18, generates the hash value of the command, and stores it in queue 32.

[0061] In step S102, CPU12A determines whether the hash values ​​have accumulated to a predetermined certain number. In this determination, the receiving unit 30 determines whether the hash values ​​stored in queue 32 have accumulated to a predetermined certain number. If the determination is negative, the process proceeds to step S104; if it is positive, the process proceeds to step S106.

[0062] In step S104, CPU 12A waits for the creation of the hash value due to the creation of other data, returns to step S100, and repeats the above process. That is, it waits for a command from client computer 14 and proceeds to step S100.

[0063] In step S106, CPU 12A classifies the data according to data reference conditions and proceeds to step S108. 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 reference conditions, at least one of user ID, registration date and time, and data format (style) is applied, and the data is classified according to each reference condition.

[0064] In step S108, CPU12A determines whether there exists a set of data that shares commonalities with the reference conditions. If the determination is affirmative, the process proceeds to step S110; otherwise, it proceeds to step S112.

[0065] In step S110, CPU 12A branches on the set of data mentioned above, stores the hash values ​​in a Merkle tree, and then proceeds to step S112. That is, the modification unit 36 ​​modifies the arrangement of multiple data items stored in queue 32 according to the classification result of the classification unit 34, so that data with common reference conditions are adjacent. Then, the hash value calculation unit 38 generates a Merkle tree by branching on the set of data with common reference conditions and stores the hash values ​​in the Merkle tree.

[0066] In step S112, CPU12A stores the hash values ​​of the unstored data in the free leaf nodes of the Merkle tree and proceeds to step S114. That is, the hash value calculation unit 38 stores the hash values ​​of data that do not have common reference conditions in the free leaf nodes of the Merkle tree, generates the Merkle tree, and calculates the hash value of each node and the top-level hash value.

[0067] In step S114, CPU 12A writes to blockchain 18 and ends a series of processes. That is, blockchain registration unit 40 registers the top-level hash value of the Merkle tree or the hash values ​​of each node into blockchain 18.

[0068] By reconstructing the Merkle tree in this way, the number of hash values ​​of the nodes obtained can be reduced compared to generating the Merkle tree without considering the arrangement of the data when performing data verification using the Merkle tree.

[0069] (Variation example)

[0070] Next, a modified example will be described. In the above embodiment, an example was described where the processing of changing the data arrangement according to each reference condition and the processing of creating a Merkle tree to calculate the top-level hash value were performed by a single process. However, in the modified example, an example is described where the processing of changing the data arrangement according to each reference condition and the processing of creating a Merkle tree to calculate the top-level hash value are performed by different processes. In addition, in the modified example, the functions of the management server 12 function as follows.

[0071] The receiving unit 30 receives commands sent from the client computer 14 to be registered in the blockchain 18 as data and stores them in the queue 32. Furthermore, when the data stored in the queue 32 has accumulated to a predetermined amount, the receiving unit 30 notifies the classification unit 34 that a certain amount of data has been accumulated.

[0072] Queue 32 is a storage area pre-defined in storage device 12D, where commands sent from client computer 14 are stored as data sequentially.

[0073] The classification department 34 classifies the data according to the reference conditions of the data stored in the queue 32.

[0074] For example, as a reference condition, at least one of the following is applied: user ID, registration date and time, and data format (style), and the data is categorized according to each reference condition.

[0075] The modification unit 36 ​​modifies the arrangement of multiple data stored in the queue 32 based on the classification result of the classification unit 34. Specifically, the modification unit 36 ​​modifies the arrangement of multiple data so that data with common reference conditions are adjacent.

[0076] The hash value calculation unit 38 generates a Merkle tree by branching the set of data with common reference conditions, and stores the hash values ​​in the Merkle tree. Furthermore, it stores the hash values ​​of data without common reference conditions in the free leaf nodes of the Merkle tree, generating a Merkle tree to calculate the hash value of each node and the top-level hash value.

[0077] Blockchain registry 40 registers the top-level hash value of the Merkle tree or the hash values ​​of each node into blockchain 18.

[0078] Figure 6 This is a flowchart illustrating an example of the process performed in the management server 12 of the information processing system 10 according to this embodiment, where the arrangement of data is changed according to each reference condition. Additionally, regarding... Figure 5 The same processing is labeled with the same symbols for explanation.

[0079] In step S101, CPU 12A receives data from client computer 14 and stores it in queue 32, then proceeds to step S103. That is, receiving unit 30 receives the command sent from client computer 14 to be registered in blockchain 18.

[0080] In step S103, CPU 12A determines whether the data has accumulated to a preset certain amount. In this determination, receiving unit 30 determines whether the data stored in queue 32 has accumulated to a preset certain amount. If the determination is negative, the process proceeds to step S105; if it is positive, the process proceeds to step S106.

[0081] In step S105, CPU 12A waits to receive other data and returns to step S101 to repeat the above process. That is, it waits for a command from client computer 14 and then proceeds to step S101.

[0082] In step S106, CPU 12A classifies the data according to data reference conditions and proceeds to step S108. 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 reference conditions, at least one of user ID, registration date and time, and data format (style) is applied, and the data is classified according to each reference condition.

[0083] In step S108, CPU12A determines whether there exists a set of data that shares commonalities with the reference conditions. If the determination is affirmative, the process proceeds to step S109; otherwise, it proceeds to step S111.

[0084] In step S109, CPU12A changes the arrangement of data according to each common reference condition and proceeds to step S111. That is, the changing unit 36 ​​changes the arrangement of multiple data stored in queue 32 according to the classification result of the classification unit 34, so that data with common reference conditions are adjacent.

[0085] In step S111, CPU 12A stores the data with the changed arrangement in queue 32 and ends a series of processes. That is, the changing unit 36 ​​stores the data in queue 32 according to the order of the changed arrangement.

[0086] Figure 7 This is a flowchart illustrating an example of the process by which the management server 12 of the information processing system 10 involved in this embodiment creates a Merkle tree and calculates the top-level hash value.

[0087] In step S200, CPU12A calculates the first hash value 50 corresponding to the leaf node of the Merkle tree and proceeds to step S202. That is, the hash value calculation unit 38 sequentially retrieves the data stored in queue 32 and calculates the first hash value corresponding to the leaf node of the Merkle tree.

[0088] In step S202, CPU 12A classifies a pre-set number of first hash values ​​50 into a first hash value group 52 and proceeds to step S204. In this embodiment, two first hash values ​​50 are classified into a first hash value group 52. That is, the hash value calculation unit 38 classifies two first hash values ​​into a first hash value group 52.

[0089] In step S204, CPU12A calculates the second hash value 54 based on the first hash value 50 of the first hash value group 52 and proceeds to step S206. That is, the hash value calculation unit 38 calculates the second hash value based on the hash value of the first hash value group 52.

[0090] In step S206, CPU12A determines whether the calculated hash value is the top-level hash value 60. If the determination is negative, the process proceeds to step S208; if it is positive, the process proceeds to step S212.

[0091] In step S208, the calculated hash value is used as an intermediate hash value 58, and a predetermined number of intermediate hash values ​​58 are grouped into intermediate hash value groups before proceeding to step S210. In this embodiment, two intermediate hash values ​​58 are grouped into an intermediate hash value group. That is, the hash value calculation unit 38 groups two intermediate hash values ​​58 into an intermediate hash value group.

[0092] In step S210, CPU 12A calculates the next intermediate hash value based on the intermediate hash value group and returns to step S206, repeating the above process. When the calculated intermediate hash value becomes the top-level hash value, it proceeds to step S212. That is, the hash value calculation unit 38 calculates the next intermediate hash value based on the intermediate hash value of the intermediate hash value group. Specifically, by calculating... Figure 3 The second hash value 54 of the Merkle tree is shown, and steps S206-210 are repeated to calculate the intermediate hash value 58 sequentially upwards along the Merkle tree.

[0093] In step S212, CPU 12A writes the calculated top-level hash value into blockchain 18 and ends a series of processes. That is, blockchain registration unit 40 registers the calculated top-level hash value into the blockchain. Alternatively, the hash values ​​of each node, such as the first hash value, the second hash value, and the intermediate hash values, can be registered into blockchain 18 instead of the top-level hash value. Or, only the first hash value corresponding to the leaf node of the generated Merkle tree can be registered into blockchain 18.

[0094] Furthermore, in the above embodiment, the process executed by the management server 12... Figures 5-7 The example of this processing is illustrated, but it is not limited to this; for example, it can also be configured to enable the execution of smart contract functions on blockchain 18. Figures 5-7 The way to handle it.

[0095] Furthermore, in the above embodiment, a Merkle tree that generates one node (branch) based on two leaf nodes was used as an example for explanation, but a tree structure that generates one node based on three leaf nodes or a tree structure that generates one node based on four or more leaf nodes can also be applied.

[0096] Furthermore, the various processes executed by the CPU in the above embodiments can also be executed by a computer equipped with various processors other than the CPU. Examples of processors in this case include FPGAs (field-programmable gate arrays) and PLDs (programmable logic devices) whose circuit structure can be changed after manufacturing, as well as dedicated circuits such as ASICs (application-specific integrated circuits) that have circuit structures specifically designed for executing the specified processes. Moreover, the various processes described above can 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 and a combination of a CPU and an FPGA). More specifically, the hardware structure of these various processors is a circuit composed of circuit elements such as semiconductor elements.

[0097] Furthermore, while the above embodiments describe the pre-storage (installation) of various programs in the ROM 20B, this is not a limitation. Various programs can be provided via recording media such as CD-ROM (Compact Disk Read Only Memory), DVD-ROM (Digital Versatile Disk Read Only Memory), and USB (Universal Serial Bus) storage. Additionally, various programs can be downloaded from an external information processing device via a network.

[0098] Furthermore, the structure and operation of the information processing system 10 described in the above embodiments are just examples, and of course, changes can be made according to the circumstances without departing from the spirit of the present invention.

[0099] The following notes are also disclosed regarding the above implementation methods.

[0100] (Note 1)

[0101] A method for generating tree structures, in which a computer performs the following processing:

[0102] Calculate a first hash value, which corresponds to a plurality of data that are classified into a plurality of data groups according to each reference condition and arranged in such a way that data that share the same reference condition are adjacent to each other;

[0103] The first hash value is classified into a first hash value group as a group according to a predetermined number of the first hash value groups;

[0104] Calculate the 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

[0105] The top-level hash value is calculated based on multiple second hash values.

[0106] (Note 2)

[0107] According to the tree structure generation method described in Appendix 1, the computer performs the following processing before calculating the top-level hash value:

[0108] The data are categorized according to each of the aforementioned reference conditions; and

[0109] The arrangement of multiple data points is changed according to each of the aforementioned reference conditions.

[0110] (Note 3)

[0111] According to the tree structure generation method described in Appendix 1 or 2, wherein,

[0112] The computer performs the following processing: classifies a pre-set number of the second hash values ​​into second hash value groups as groups;

[0113] Calculate the intermediate hash value corresponding to each of the second hash value groups based on the second hash value belonging to the second hash value group; and

[0114] The top-level hash value is calculated based on the intermediate hash value.

[0115] (Note 4)

[0116] The tree structure generation method according to any one of Appendices 1 to 3, wherein the reference conditions are at least one of user ID, registration date and time, and data format.

[0117] (Note 5)

[0118] According to the tree structure generation method described in Appendix 3, wherein,

[0119] The computer categorizes the multiple second hash values ​​into multiple groups of second hash values ​​such that the number of second hash values ​​contained in each group of second hash values ​​is two or one.

[0120] (Note 6)

[0121] According to any one of the appendices 1 to 5, in the tree structure generation method, the computer registers the top-level hash value, the first hash value, or the first hash value and the second hash value to the blockchain.

[0122] (Note 7)

[0123] An information processing apparatus includes a processor, the processor performing the following processing:

[0124] Calculate a first hash value, which corresponds to a plurality of data that are classified into a plurality of data groups according to each reference condition and arranged in such a way that data that share the same reference condition are adjacent to each other;

[0125] The first hash value is classified into a first hash value group as a group according to a predetermined number of the first hash value groups;

[0126] Calculate the 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

[0127] The top-level hash value is calculated based on multiple second hash values.

[0128] (Postscript 8)

[0129] An information processing system comprising:

[0130] The information processing device described in Appendix 7; and

[0131] The client computer sends the multiple data to the information processing device.

[0132] (Note 9)

[0133] A tree structure generation program that enables a computer to perform the following processing:

[0134] Calculate a first hash value, which corresponds to a plurality of data that are classified into a plurality of data groups according to each reference condition and arranged in such a way that data that share the same reference condition are adjacent to each other;

[0135] The first hash value is classified into a first hash value group as a group according to a predetermined number of the first hash value groups;

[0136] Calculate the 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

[0137] The top-level hash value is calculated based on multiple second hash values.

[0138] Furthermore, the invention of Japanese Patent Application Nos. 2023-203359 is incorporated herein by reference in its entirety. Moreover, all documents, patent applications, and technical specifications described in this specification are incorporated herein by reference to the same extent that each document, patent application, and technical specification is specifically and individually described and incorporated herein by reference.

Claims

1. A method for generating tree structures, wherein a computer performs the following processing: Calculate a first hash value, which corresponds to a plurality of data that are classified into a plurality of data groups according to each reference condition and arranged in such a way that data that share the same reference condition are adjacent to each other; The first hash value is classified into a first hash value group as a group according to a predetermined number of the first hash value groups; Calculate the 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 The top-level hash value is calculated based on multiple second hash values.

2. The tree structure generation method according to claim 1, wherein, The computer also performs the following processing: Before processing the calculation of the top-level hash value, multiple data are categorized according to each of the reference conditions; and The arrangement of multiple data points is changed according to each of the aforementioned reference conditions.

3. The tree structure generation method according to claim 1, wherein, The computer performs the following processing: The predetermined number of the second hash values ​​are classified into groups of the second hash values. Calculate the intermediate hash value corresponding to each of the second hash value groups based on the second hash value belonging to the second hash value group; and The top-level hash value is calculated based on the intermediate hash value.

4. The tree structure generation method according to claim 1, wherein, The reference criteria are at least one of the following: user ID, registration date and time, and data format.

5. The tree structure generation method according to claim 3, wherein, The computer categorizes the multiple second hash values ​​into multiple groups of second hash values ​​such that the number of second hash values ​​contained in each group of second hash values ​​is two or one.

6. The tree structure generation method according to claim 1, wherein, The computer registers the top-level hash value, the first hash value, or the first hash value and the second hash value into the blockchain.

7. An information processing apparatus comprising a processor, the processor performing the following processing: Calculate a first hash value, which corresponds to a plurality of data that are classified into a plurality of data groups according to each reference condition and arranged in such a way that data that share the same reference condition are adjacent to each other; The first hash value is classified into a first hash value group as a group according to a predetermined number of the first hash value groups; Calculate the 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 The top-level hash value is calculated based on multiple second hash values.

8. An information processing system, comprising: The information processing apparatus according to claim 7; and The client computer sends the multiple data to the information processing device.

9. A tree structure generation program that enables a computer to perform the following processing: Calculate a first hash value, which corresponds to a plurality of data that are classified into a plurality of data groups according to each reference condition and arranged in such a way that data that share the same reference condition are adjacent to each other; The first hash value is classified into a first hash value group as a group according to a predetermined number of the first hash value groups; Calculate the second hash value corresponding to each of the first hash value groups based on the first hash value belonging to the plurality of the first hash value groups; and The top-level hash value is calculated based on multiple second hash values.

Citation Information

Patent Citations

  • Method and apparatus for detecting welding wire diameter or welding wire composition in a welding device

    JP2020507766A

  • METHOD AND APPARATUS FOR PROPAGATING BLOCKS IN A BLOCKCHAIN ​​NETWORK

    JP2022527610A

  • Block Recognition

    JP2023072051A