WO2024116950A1 - Communication system, node, and program - Google Patents

Communication system, node, and program Download PDF

Info

Publication number
WO2024116950A1
WO2024116950A1 PCT/JP2023/041729 JP2023041729W WO2024116950A1 WO 2024116950 A1 WO2024116950 A1 WO 2024116950A1 JP 2023041729 W JP2023041729 W JP 2023041729W WO 2024116950 A1 WO2024116950 A1 WO 2024116950A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
group
ledger
value
performance
Prior art date
Application number
PCT/JP2023/041729
Other languages
French (fr)
Japanese (ja)
Inventor
將 藤澤
聡子 石原
良浩 ▲高▼橋
裕之 山下
亥勝 鄭
Original Assignee
京セラ株式会社
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 京セラ株式会社 filed Critical 京セラ株式会社
Publication of WO2024116950A1 publication Critical patent/WO2024116950A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks

Definitions

  • This disclosure relates to a communication system, a node, and a program.
  • an autonomous decentralized network specifically a peer-to-peer (P2P) network
  • P2P peer-to-peer
  • Blockchain technology has a mechanism whereby each node manages the history of transactions within a P2P network as a ledger. This mechanism is also known as distributed ledger technology. When a transaction occurs at one node, a calculation (verification) process is performed by all participating nodes. This provides a mechanism whereby correct transaction history that is extremely difficult to tamper with remains, even if a participating node is acting dishonestly and/or does not function properly.
  • Patent Document 1 describes a system that divides a P2P network into multiple hierarchical networks and manages transaction data independently for each network, in order to solve the problem of node capacity pressure caused by the expansion of transaction history (ledger) held by each node.
  • transaction history ledger
  • the communication system is a communication system that performs peer-to-peer communication between multiple nodes that belong to the same group, and each of the multiple nodes is equipped with a control unit that performs a predetermined control in response to communication with another node in the group.
  • the predetermined control includes an acquisition process that acquires a performance value of the other node from the other node, and a change process that changes a point value of the own node based on a result of comparing the performance value of the other node with the performance value of the own node.
  • the control unit determines the own node as the representative node of the group.
  • the node according to the second aspect is a node used in a communication system that performs peer-to-peer communication between multiple nodes belonging to the same group, and includes a control unit that performs predetermined control in response to communication with other nodes in the group.
  • the predetermined control includes an acquisition process that acquires a performance value of the other node from the other node, and a change process that changes the point value of the own node based on a result of comparing the performance value of the other node with the performance value of the own node.
  • the control unit determines the own node as the representative node of the group.
  • the program according to the third aspect causes a node used in a communication system for peer-to-peer communication between multiple nodes belonging to the same group to execute a predetermined control in response to communication with another node in the group, the predetermined control including an acquisition process for acquiring a performance value of the other node from the other node, and a change process for changing a point value of the own node based on a result of comparing the performance value of the other node with the performance value of the own node, and a step of determining the own node as a representative node of the group when the point value reaches a predetermined value.
  • FIG. 1 is a diagram illustrating an example of a network configuration in a typical blockchain system.
  • FIG. 2 is a diagram illustrating an example of the configuration of a ledger managed by each node according to the embodiment.
  • FIG. 13 is a diagram illustrating an example of an operation when adding a new block to a ledger according to an embodiment (i.e., when updating the ledger).
  • FIG. 13 is a diagram illustrating an example of an operation when adding a new block to a ledger according to an embodiment.
  • FIG. 2 is a diagram illustrating an example of the configuration of each node according to the embodiment.
  • FIG. 1 is a diagram illustrating an example of a network configuration according to an embodiment.
  • FIG. 13 is a diagram showing a ledger management method according to an embodiment.
  • FIG. 13 is a diagram showing a ledger management method according to an embodiment.
  • 11 is a diagram for explaining the effect of reducing the amount of calculation when a hierarchical structure network according to an embodiment is compared with a general network configuration;
  • FIG. 11 is a diagram for explaining a link between a higher-level ledger and a lower-level ledger according to an embodiment.
  • FIG. FIG. 11 is a diagram showing an example of an operation in a case where, after a group (A) according to an embodiment is formed, a new group (B) is formed below the group (A).
  • FIG. 11 is a diagram illustrating grouping of lower hierarchical groups according to an embodiment.
  • FIG. 11 is a diagram illustrating grouping of lower hierarchical groups according to an embodiment.
  • FIG. 11 is a diagram illustrating a priority order within a group according to an embodiment.
  • FIG. 11 is a diagram illustrating a priority order within a group according to an embodiment.
  • FIG. 11 is a diagram for explaining an example of node parameters stored in a ledger according to an embodiment.
  • FIG. 11 is a diagram for explaining a node selection method according to an embodiment.
  • FIG. 11 is a diagram showing an example of a point value (LP) of each node managed by itself according to an embodiment.
  • FIG. 11 is a diagram showing another example of the own point value (LP) managed by each node according to an embodiment.
  • FIG. 11 is a diagram illustrating an example of a flow of a node selection method according to an embodiment.
  • FIG. 11 is a diagram illustrating a flow of a node selection method according to an embodiment.
  • FIG. 11 is a diagram for explaining, as a comparative example, a node selection method in a case where node parameters of each node in a group are stored in a ledger managed within the group.
  • FIG. 11 is a diagram for explaining a node selection method using a point value (LP) according to an embodiment.
  • LP point value
  • each group is expected to have a node (also called a "representative node") that mediates interactions with other groups.
  • a node also called a "representative node”
  • technology for autonomously selecting a representative node within a group that conducts P2P communication has not yet been established, and with conventional technology, there is a problem in that it is difficult to autonomously select an appropriate representative node.
  • the purpose of this disclosure is to make it possible to autonomously select an appropriate representative node within a group conducting P2P communication.
  • Fig. 1 is a diagram showing an example of a network configuration in a general block chain system.
  • lines connecting nodes represent communication connections between the nodes.
  • an autonomous distributed network is formed by multiple nodes 100.
  • Each node 100 is connected to each other so that they can communicate with each other. Communication between the nodes 100 may be performed via a public communication network and/or a local communication network. Note that although a total of five nodes, nodes 100a to 100e, are illustrated in FIG. 1, the number of nodes 100 is not limited to five.
  • Each node 100 is a device having at least a communication function and a calculation processing function, such as a PC (Personal Computer). In general blockchain technology, it is assumed that each node 100 has sufficient performance (specifications).
  • Each node 100 manages the history of transactions within the network as a ledger.
  • a transaction occurs at one node 100 (for example, node 100a)
  • all participating nodes perform a calculation (verification) process. This provides a mechanism that leaves a correct transaction history that is extremely difficult to tamper with, even if a participating node 100 commits fraud and/or does not operate normally.
  • a transaction may be, for example, a remittance or settlement of money or points, or the occurrence of communication.
  • the transaction data stored in a block of the ledger may be remittance or settlement data, or communication data.
  • a transaction may be the joining or removal of a node in the network, etc.
  • the transaction data stored in a block of the ledger may be data (parameters) of node 100.
  • a transaction may be an update of the ledger.
  • the transaction data stored in a block of the ledger may be data (parameters) of node 100.
  • an example is mainly assumed in which transaction data stored in blocks of a ledger includes data (parameters) of a node 100.
  • data (parameters) of a node 100 By managing such data (parameters) of a node 100 in a ledger, it becomes easy to guarantee that the node 100 in the network is a genuine device.
  • Figure 2 shows an example of the configuration of the ledger managed by each node 100.
  • Each node 100 stores records of transactions that occur within the network in blocks.
  • a block has a block header, which is a header portion, and a transaction data portion that stores data of at least one transaction.
  • the block header stores a hash value calculated from the block generated immediately before.
  • the block header of block n+1 stores a hash value calculated from block n.
  • the ledger has a data structure in which each generated block is linked in a chain in chronological order.
  • the block header may further include a height that indicates the number of the corresponding block, and a nonce, which is a value used to calculate the hash value.
  • Figures 3 and 4 show an example of the operation when adding a new block to the ledger (i.e., when updating the ledger).
  • a node 100 called a "proposer” After a transaction occurs within a group that makes up the P2P network, a node 100 called a "proposer" generates a new block corresponding to that transaction and proposes the new block by notifying the other nodes 100 of it. For example, multiple nodes 100 calculate a hash value by combining the transaction data, etc. while changing the value of the nonce, and the node 100 (proposer) that finds a hash value that satisfies certain conditions notifies the other nodes 100 of the generated block. The other nodes 100 that receive the proposed new block verify the hash value of the new block.
  • the verification is successful.
  • nodes 100 that receive the proposal for a new block vote for node 100 to accept the verified block as a new block.
  • the other nodes 100 that vote are called "voters.” If node 100 (proposer) receives a certain number of votes from other nodes 100 (voters), it confirms the proposed new block and adds the new block to the ledger.
  • FIG. 5 shows an example of the configuration of each node 100.
  • the node 100 has a communication unit 110, a control unit 120, and a storage unit 130.
  • the node 100 may also have a battery 140.
  • the communication unit 110 includes a communication interface for communicating with other nodes.
  • the communication interface may be a wireless communication interface.
  • the communication interface may be a wired communication interface.
  • the control unit 120 performs various controls and processes in the node 100. Such processes include the processes described above and those described below.
  • the control unit 120 includes at least one processor 121.
  • the processor 121 executes programs stored in the storage unit 130 to perform various processes.
  • the storage unit 130 stores programs executed by the processor 121 and information used in processing by the processor 121.
  • the storage unit 130 includes non-volatile memory and volatile memory.
  • the battery 140 stores power to be supplied to each part of the node 100 (device).
  • the block chain system includes a network 10 having a hierarchical structure (also referred to as a "hierarchical structure network").
  • each node 100 has sufficient performance, and if a transaction occurs at any one node 100, calculations (verification) are performed at all nodes 100. For this reason, it is difficult to apply blockchain technology to devices with poor performance, such as those with small battery capacity, low computing power, or small memory capacity, such as IoT devices such as sensor devices.
  • a hierarchical network 10 is formed, and each node 100 is placed in a hierarchical level according to the performance of the node 100.
  • the hierarchical structure allows higher levels to have a higher calculation frequency (i.e., the frequency of updating the ledger), while lower levels have a lower calculation frequency. By placing high-performance devices in higher levels and low-performance devices in lower levels, it becomes possible to participate in the blockchain hierarchical network 10 regardless of performance.
  • FIG. 6 is a diagram showing an example of a network configuration according to one embodiment.
  • the hierarchical structure network 10 has a hierarchical structure consisting of three hierarchies, hierarchical levels 1 to 3. In the following, an example using three hierarchies will be mainly described, but the number of hierarchies may be two or four or more.
  • hierarchical level 1 is the highest hierarchical level
  • hierarchical level 3 is the lowest hierarchical level.
  • each node 100 manages a ledger. Based on the performance of the node 100, each node 100 is placed in one of the three hierarchies according to the performance.
  • the performance of the node 100 refers to at least one of the computational power (e.g., processor power), storage capacity (e.g., memory size), and battery capacity.
  • the performance of the node 100 may also include a sleep time, which will be described later. For example, when a new node is added, the new node or another node determines the hierarchical level in which the new node is placed based on the performance of the new node.
  • the nodes 100 arranged in hierarchical level 1 and the nodes 100 arranged in hierarchical level 2 form an upper hierarchical level group.
  • FIG. 6 an example is shown in which the only node 100 belonging to hierarchical level 1 is node 100A, but multiple nodes 100 may be arranged in hierarchical level 1.
  • the three nodes 100 arranged in hierarchical level 2 are node 100B1, node 100C1, and node 100D1.
  • the nodes 100 placed in hierarchical 2 and the nodes 100 placed in hierarchical 3 form a lower hierarchical group that manages the lower hierarchical ledger.
  • high performance equipment is placed in hierarchical 1 (or hierarchical 2), and equipment with lower performance compared to the high performance equipment is placed in hierarchical 3.
  • the nodes 100 belonging to the lower hierarchical group have lower performance compared to the nodes 100 belonging to the higher hierarchical group.
  • FIG. 6 an example is shown in which a total of three lower hierarchical groups, group (B) to group (D), are formed.
  • the number of lower hierarchical groups is not limited to three, and the number of lower hierarchical groups may be one or two, or may be four or more.
  • Group (B) includes one node 100B1 located in hierarchical level 2 and multiple nodes 100B2 located in hierarchical level 3. Each node 100B belonging to group (B) manages ledger (B), which is a lower hierarchical ledger. Node 100B1 belongs to both group (A) and group (B) and manages both ledgers (A) and (B). In the following description of the embodiment, node 100B1 is also referred to as the parent node of group (B). Node 100B2 belongs only to group (B) and therefore manages only ledger (B).
  • group (C) includes one node 100C1 located in hierarchical level 2 and multiple nodes 100C2 located in hierarchical level 3.
  • Each node 100C belonging to group (C) manages ledger (C), which is a lower hierarchical ledger.
  • Node 100C1 belongs to both group (A) and group (C) and manages both ledgers (A) and (C).
  • node 100C1 is also referred to as the parent node of group (C).
  • Node 100C2 belongs only to group (C) and therefore manages only ledger (C).
  • group (D) includes one node 100D1 located in hierarchical level 2 and multiple nodes 100D2 located in hierarchical level 3.
  • Each node 100D belonging to group (D) manages ledger (D), which is a lower hierarchical ledger.
  • Node 100D1 belongs to both group (A) and group (D) and manages both ledgers (A) and (D).
  • node 100D1 is also referred to as the parent node of group (D).
  • Node 100D2 belongs only to group (D) and therefore manages only ledger (D).
  • each group (A) to (D) the nodes 100 are connected to each other so that they can communicate with each other, and a common ledger is held and managed within the group, and processing is performed within the group in the same way as in conventional blockchains.
  • grouping in this way the number of nodes in each group can be reduced, thereby preventing the ledger from becoming bloated.
  • a low-performance node 100 (e.g., an IoT device such as a sensor device) generates transactions less frequently than a high-performance node 100.
  • a low-performance node 100 communicates intermittently to reduce power consumption, goes into a sleep state when not communicating, and no transactions occur during the sleep time.
  • group (A) which is an upper hierarchical group formed by high performance nodes 100
  • the ledger (A) may be updated more frequently and the amount of data in the ledger (A) is more likely to become large than in lower hierarchical groups.
  • group (B) formed by low performance nodes 100 the frequency of updates to the ledger (B) can be suppressed and the increase in the amount of data in the ledger (B) can be suppressed.
  • group (C) formed by low performance nodes 100 the frequency of updates to the ledger (C) can be suppressed and the increase in the amount of data in the ledger (C) can be suppressed.
  • group (D) formed by low performance nodes 100 the frequency of updates to the ledger (D) can be suppressed and the increase in the amount of data in the ledger (D) can be suppressed.
  • a node 100 belonging to the second group notifies the first group of ledger information related to the second ledger.
  • Each node 100 belonging to the first group manages the notified ledger information as part of the first ledger. This makes it possible to link the contents of ledgers between groups.
  • the first group is one of the upper hierarchical group and the lower hierarchical group
  • the second group is the other of the upper hierarchical group and the lower hierarchical group.
  • ledgers are linked between groups that have a direct communication connection.
  • ledgers are not linked between lower hierarchical groups, i.e., between groups that do not have a direct communication connection. This makes it possible to manage ledgers independently between lower hierarchical groups, without updates to the ledger in one lower hierarchical group affecting the ledgers in other lower hierarchical groups.
  • a ledger management method according to one embodiment will be described with reference to Fig. 7 to Fig. 9.
  • a node 100 belonging to an upper hierarchical group that manages an upper hierarchical ledger updates the upper hierarchical ledger in accordance with transactions within the upper hierarchical group and transactions within a lower hierarchical group.
  • the nodes 100 (nodes 100A, 100B1, 100C1, and 100D1) belonging to group (A) 200A, which is a higher hierarchical group not only update ledger (A), which is a higher hierarchical ledger, in response to transactions within group (A) 200A, but also update ledger (A) in response to transactions within any of the lower hierarchical groups (group (B) 200B, group (C) 200C, group (D) 200D).
  • Figure 7 shows an example in which the nodes 100 (nodes 100A, 100B1, 100C1, and 100D1) belonging to group (A) 200A update ledger (A) in response to an update to ledger (B) in group (B) 200B.
  • the frequency with which the upper hierarchical ledger in the upper hierarchical group is updated is the same as the frequency with which the ledger is updated in a general hierarchical network 10 (see FIG. 1) that does not have a hierarchical structure.
  • a node 100 belonging to a lower hierarchy group that manages a lower hierarchy ledger does not update the lower hierarchy ledger in response to transactions in a higher hierarchy group, but updates the lower hierarchy ledger in response to transactions in the lower hierarchy group. In other words, even if the higher hierarchy ledger is updated, the lower hierarchy ledger is not updated. This makes it possible to reduce the frequency of updates to the lower hierarchy ledger in the lower hierarchy group.
  • nodes 100B nodes 100B1, 100B2) belonging to group (B) 200B, which is a lower hierarchical group, update ledger (B), which is a lower hierarchical ledger, in response to transactions within group (B) 200B, but do not update ledger (B) in response to transactions within group (A) 200A.
  • nodes 100C nodes 100C1, 100C2) belonging to group (C) 200C, which is a lower hierarchical group, update ledger (C), which is a lower hierarchical ledger, in response to transactions within group (C) 200C, but do not update ledger (C) in response to transactions within group (A) 200A.
  • nodes 100D (nodes 100D1, 100D2) belonging to group (D) 200D, which is a lower hierarchical group
  • update ledger (D) which is a lower hierarchical ledger, in response to transactions within group (D) 200D, but do not update ledger (D) in response to transactions within group (A) 200A.
  • a node 100 belonging to a lower hierarchical group that manages a lower hierarchical ledger does not update the lower hierarchical ledger in response to transactions in other lower hierarchical groups. For example, even if ledger (B) is updated in group (B) 200B, which is a lower hierarchical group, other lower hierarchical groups, group (C) 200C and group (D) 200D, do not update ledgers (C) and (D). This reduces the frequency of updates to the lower hierarchical ledger in the lower hierarchical groups.
  • FIG. 9 is a diagram for explaining the effect of reducing the amount of calculations when a hierarchical structure network 10 according to one embodiment is compared with a general network configuration (see FIG. 1).
  • a hierarchical structure using a binary tree is adopted.
  • n nodes 100 n ⁇ 4
  • the transaction occurrence frequency in each node 100 is the same.
  • the node 100 in the top layer (Layer 1) needs to calculate transactions for all nodes, so the calculation frequency is the same as that of general blockchain technology.
  • the node 100 in the bottom layer only needs to calculate transactions for the group in which it participates. In the case of a binary tree, the number of nodes in each group is 3, so the calculation frequency can be reduced to 3/n.
  • an upper hierarchical group and a lower hierarchical group are formed between two groups that have a direct communication connection.
  • group 200A is the upper hierarchical group
  • groups 200D and 200E are each lower hierarchical groups.
  • group 200B is the upper hierarchical group.
  • group 200C is used as a reference
  • group 200A is the upper hierarchical group
  • groups 200F and 200G are each lower hierarchical groups.
  • group 200C is the upper hierarchical group.
  • a hierarchical structure network 10 is configured by a group (A) 200A formed by nodes 100 (nodes 100A, 100B1) that manage a ledger (A) and a group (B) 200B formed by nodes 100 (nodes 100B1, 100B2) that manage a ledger (B).
  • Node 100 belonging to group (A) 200A notifies group (B) 200B of ledger information related to ledger (A).
  • node 100B1 belonging to group (A) 200A notifies other node 100B2 in group (B) 200B of ledger information related to ledger (A).
  • each node 100 (nodes 100B1, 100B2) belonging to group (B) 200B manages the ledger information as part of ledger (B).
  • each node 100 belonging to a lower hierarchical group that manages a lower hierarchical ledger manages ledger information related to a higher hierarchical ledger as part of the lower hierarchical ledger. This makes it possible to link the lower hierarchical ledger with the higher hierarchical ledger.
  • ledger information managed as part of ledger (B), which is a lower-level ledger may include a chain ID indicating ledger (A), which is a higher-level ledger.
  • Ledger information managed as part of ledger (B) may include a hash value calculated from a block of ledger (A).
  • Ledger information managed as part of ledger (B) may include a block height indicating a block number of ledger (A).
  • each node 100 (nodes 100B1, 100B2) belonging to group (B) may store the ledger information in the header portion (block header) of a block of ledger (B).
  • node 100 belonging to group (B) 200B notifies group (A) 200A of ledger information related to ledger (B).
  • node 100B1 belonging to group (B) 200B notifies other node 100A in group (A) 200A of ledger information related to ledger (B).
  • each node 100 (nodes 100B1, 100A) belonging to group (A) 200A manages the ledger information as part of ledger (A).
  • each node 100 belonging to the upper hierarchical group that manages the upper hierarchical ledger manages ledger information related to the lower hierarchical ledger as part of the upper hierarchical ledger. This makes it possible to link the upper hierarchical ledger with the lower hierarchical ledger.
  • the ledger information managed as part of the ledger (A), which is a higher-level ledger may include a chain ID indicating the ledger (B), which is a lower-level ledger.
  • the ledger information managed as part of the ledger (A) may include a hash value calculated from a block of the ledger (B).
  • the ledger information managed as part of the ledger (A) may include a block height indicating a block number of the ledger (B).
  • each node 100 (nodes 100B1 and 100A) belonging to the group (A) may store the ledger information in the transaction data portion of a block of the ledger (A).
  • FIG. 11 is a diagram showing an example of the operation when a group (B) 200B is newly formed below group (A) 200A after group (A) 200A is formed.
  • a node belonging to group (A) 200A is called node (A)
  • a node belonging to group (B) 200B is called node (B).
  • the operation of FIG. 11 may be executed within the same node (parent node).
  • node (A) managing ledger (A) updates ledger (A) by adding the m-1th block to ledger (A).
  • the m-1th block has a block header including a hash value calculated from the previous block of ledger (A) and transaction data for at least one transaction in group (A) 200A.
  • the block header may further include at least one of a chain ID (parent chain ID) indicating ledger (A) and a block height indicating m-1, which is the block number of the block.
  • group (B) 200B is formed.
  • the 0th block includes, in its block header portion, the block of ledger (A) that is the latest at the time of adding the 0th block, i.e., the block header of the m-1th block of ledger (A), as ledger information related to ledger (A).
  • the 0th block includes, in its transaction data portion, transaction data related to at least one transaction in group (B) 200B.
  • the transaction may be, for example, a node addition (node join) in group (B) 200B.
  • the transaction data may include node parameters of the added node.
  • node (A) managing ledger (A) updates ledger (A) by adding the mth block to ledger (A).
  • the mth block includes in its block header a hash value calculated from the (m-1)th block, which is the previous block of ledger (A).
  • the mth block also includes in its transaction data portion transaction data relating to at least one transaction in group (A) 200A and ledger information relating to ledger (B).
  • the ledger information includes a hash value calculated from the latest block of ledger (B) at the time of adding the mth block, i.e., the 0th block of ledger (B), and a chain ID indicating ledger (B).
  • the ledger information may further include a block height indicating 0, which is the block number of the 0th block.
  • node (B) managing ledger (B) updates ledger (B) by adding the first block in ledger (B) to ledger (B).
  • the first block includes, in its block header portion, the block header of the latest block in ledger (A) at the time of adding the first block, as ledger information related to ledger (A).
  • the first block also includes, in its block header portion, a hash value calculated from the 0th block of ledger (B).
  • the first block also includes, in its transaction data portion, transaction data related to at least one transaction in group (B) 200B.
  • the transaction may be, for example, a node addition (node join) in group (B) 200B.
  • the transaction data may include node parameters of the added node.
  • the nth block includes, in its block header portion, a hash value calculated from the n-1th block, which is the previous block of ledger (A).
  • the nth block also includes, in its transaction data portion, transaction data related to at least one transaction in group (A) 200A and ledger information related to ledger (B).
  • the ledger information includes a hash value calculated from the latest block of ledger (B) at the time of adding the nth block, i.e., the first block of ledger (B), and a chain ID indicating ledger (B).
  • the ledger information may further include a block height indicating 1, which is the block number of the first block.
  • FIGS. 12 and 13 are diagrams showing an example of operation in the case where, after group (A) 200A is formed, a new group (B) 200B is formed below group (A) 200A, and then a new group (C) 200C is formed below group (A) 200A.
  • a node belonging to group (A) 200A is referred to as node (A)
  • a node belonging to group (B) 200B is referred to as node (B)
  • a node belonging to group (C) 200C is referred to as node (C).
  • differences from the operation in FIG. 11 will be mainly explained.
  • group (B) 200B is formed.
  • node (A) managing ledger (A) updates ledger (A) by adding the n-1th block to ledger (A).
  • the n-1th block has a block header including a hash value calculated from the previous block of ledger (A) and transaction data for at least one transaction in group (A) 200A.
  • the block header may further include at least one of a chain ID (parent chain ID) indicating ledger (A) and a block height indicating n-1, which is the block number of the block.
  • the 0th block includes, in its block header portion, the block of ledger (A) that is the latest at the time of adding the 0th block, i.e., the block header of the n-1th block of ledger (A), as ledger information related to ledger (A).
  • the 0th block includes, in its transaction data portion, transaction data related to at least one transaction in group (C) 200C.
  • the transaction may be, for example, a node addition (node join) in group (C) 200C.
  • the transaction data may include node parameters of the added node.
  • node (A) managing ledger (A) updates ledger (A) by adding the nth block to ledger (A).
  • the nth block includes, in its block header portion, a hash value calculated from the n-1th block, which is the previous block of ledger (A).
  • the nth block also includes, in its transaction data portion, transaction data related to at least one transaction in group (A) 200A and ledger information related to ledger (C).
  • the ledger information includes a hash value calculated from the latest block of ledger (C) at the time of adding the nth block, i.e., the 0th block of ledger (C), and a chain ID indicating ledger (C).
  • the ledger information may further include a block height indicating 0, which is the block number of the 0th block.
  • node (C) managing ledger (C) updates ledger (C) by adding the first block in ledger (C) to ledger (C).
  • the first block includes, in its block header portion, the block header of the latest block of ledger (A) at the time of adding the first block, i.e., the nth block of ledger (A), as ledger information related to ledger (A).
  • the first block also includes, in its transaction data portion, transaction data related to at least one transaction in group (C) 200C.
  • the transaction may be, for example, a node addition (node join) in group (C) 200C.
  • the transaction data may include node parameters of the added node.
  • node (B) managing ledger (B) updates ledger (B) by adding the first block in ledger (B) to ledger (B).
  • the first block includes, in its block header portion, the block header of the latest block of ledger (A) at the time of adding the first block, i.e., the nth block of ledger (A), as ledger information related to ledger (A).
  • the first block also includes, in its transaction data portion, transaction data related to at least one transaction in group (B) 200B.
  • the transaction may be, for example, a node addition (node join) in group (B) 200B.
  • the transaction data may include node parameters of the added node.
  • node (A) managing ledger (A) updates ledger (A) by adding the n+1th block to ledger (A).
  • the n+1th block includes, in its block header portion, a hash value calculated from the nth block, which is the previous block of ledger (A).
  • the n+1th block also includes, in its transaction data portion, transaction data related to at least one transaction in group (A) 200A, ledger information related to ledger (B), and ledger information related to ledger (C).
  • the ledger information related to ledger (B) includes a hash value calculated from the latest block of ledger (B) at the time of adding the n+1th block, i.e., the first block of ledger (B), and a chain ID indicating ledger (B).
  • the ledger information may further include a block height indicating 0, which is the block number of the first block of ledger (B).
  • the ledger information for the ledger (C) includes a hash value calculated from the latest block of the ledger (C) at the time of adding the n+1th block, i.e., the first block of the ledger (C), and a chain ID indicating the ledger (C).
  • the ledger information may further include a block height indicating 0, which is the block number of the first block of the ledger (C).
  • the hierarchical structure network 10 has a plurality of lower hierarchical groups, group (B) 200B to group (D) 200D.
  • the nodes 100 belonging to the plurality of lower hierarchical groups are arranged in one of the plurality of lower hierarchical groups according to the length of the sleep time of the node 100.
  • low-performance nodes such as IoT devices perform communication intermittently to reduce power consumption, and are in a sleep state (standby state) while not communicating, and no transactions occur during the sleep time (standby time).
  • grouping can be performed according to the range of sleep time, so that the nodes can be grouped into groups with long sleep times and groups with short sleep times.
  • devices are divided into groups based on similar sleep times.
  • Devices with long sleep times have a low frequency of transactions and therefore a low calculation frequency, making it possible to reduce the frequency of calculations.
  • devices with long sleep times tend to have low performance, so this grouping is effective. In this way, by grouping nodes based on the frequency of transactions, it is possible to reduce the amount of calculations and the expansion of the ledger.
  • the sleep time of each node 100 belonging to one of the multiple lower hierarchical groups may be within a first predetermined time range.
  • the sleep time of each node 100 belonging to another lower hierarchical group different from the one lower hierarchical group may be within a second predetermined time range different from the first predetermined time.
  • each node 100 belonging to group (B) 200B has a sleep time longer than one day.
  • Each node 100 belonging to group (C) 200C has a sleep time of one day or less and one hour or more.
  • Each node 100 belonging to group (D) 200D has a sleep time of less than one hour. Note that such grouping is merely an example and is not limited to the example of FIG. 14.
  • the maximum number of nodes 100 belonging to each group may be determined according to the performance of the nodes 100 belonging to that group. For example, the limit on the number of nodes in a group may be determined depending on the node with the lowest performance among the nodes participating in that group. The more nodes in a group there are, the more likely it is that the ledger will be updated frequently and its size will increase. For this reason, the maximum number of groups to which the node with the lowest performance belongs is determined according to the performance of that node.
  • FIG. 15 shows an example in which the number of nodes 100 with sleep times longer than one day exceeds the maximum number (limit number) of group (B) 200B, and a new group (E) 200E consisting of nodes 100 with sleep times longer than one day is formed. In this way, when there are more nodes than the limit number, a new group with the same sleep time range is added. Alternatively, if the number of nodes 100 belonging to a lower hierarchical group exceeds the maximum number of nodes 100 belonging to that lower hierarchical group, a layer lower may be added and an even lower group may be formed.
  • priority within a group will be described with reference to Fig. 16 and Fig. 17.
  • the nodes in each group are prioritized using performance parameters.
  • the priority is calculated based on at least one of the performance parameters: battery capacity, computing power, memory capacity, and sleep time.
  • the node with the first priority is set as the parent node
  • the node with the second priority is set as the sub-parent node
  • the rest are set as child nodes.
  • the priority of each node 100 in group (B) 200B which is a lower hierarchical group, is indicated by a number. For example, when a new node 100 is added to a lower hierarchical group, the new node 100 or another node 100 determines whether to set the new node 100 as a parent node, sub-parent node, or child node based on the performance of the new node 100.
  • the multiple nodes 100 that form one group include a parent node that belongs to both the upper and lower hierarchy groups and manages the lower hierarchy ledger and the upper hierarchy ledger, a sub-parent node that belongs to the lower hierarchy group and is changed to a new parent node when the parent node ceases to function as the parent node, and a child node 100 that belongs to the lower hierarchy group and does not correspond to either the parent node 100 or the sub-parent node 100.
  • the sub-parent node 100 has higher performance than the child node 100, and the parent node 100 has higher performance than the sub-parent node 100. Also, the sub-parent node 100 plays more roles than the child node 100, and the parent node 100 plays more roles than the sub-parent node 100. For this reason, the roles played by the node 100 are matched with their performance.
  • the parent node when a transaction occurs in a lower hierarchical group and the lower hierarchical ledger is updated, the parent node notifies the upper hierarchical group of the update. This causes a transaction to occur in the upper hierarchical group (the upper hierarchical ledger is updated). Specifically, the parent node notifies the node 100 belonging to the upper hierarchical group of the update to the lower hierarchical ledger in response to a transaction within the lower hierarchical group, and the node 100 belonging to the upper hierarchical group updates the upper hierarchical ledger in response to the notification from the parent node.
  • the parent node passes the upper-level ledger to the sub-parent node. In other words, when the upper-level ledger is updated, the parent node shares the updated upper-level ledger with the sub-parent node.
  • the sub-parent node with second priority automatically becomes the first priority, i.e., the new parent node.
  • the priority of all other nodes is also raised by one.
  • a sub-parent node is changed to a new parent node, or if a sub-parent node ceases to function as such, the child node with the highest priority among multiple child nodes is changed to the new sub-parent node. Note that because priority needs to be linked to each group, each node 100 has a priority parameter value linked to its chain ID.
  • the node 100 initially set as the parent node there is no problem with the node 100 initially set as the parent node, as it is selected based on performance parameters, but the new parent node set when a parent node is deleted may have insufficient performance parameters. For this reason, a threshold may be set for the performance parameters of each layer, and for parent nodes that fall below the threshold, the parent node may be changed (rotated) every certain number of transactions.
  • a threshold may be set for the performance parameters of each layer, and for parent nodes that fall below the threshold, the parent node may be changed (rotated) every certain number of transactions.
  • the node 100 set as the parent node may be changed every certain number of transactions. By lowering its own priority when changing, the sub-parent node becomes the next parent node. The number of transactions for rotating the parent node is held as a node parameter and can be changed.
  • node parameters may be stored in a ledger.
  • each node 100 belonging to a higher hierarchical group may update the higher hierarchical ledger to add the parameters of the new node 100 added to the higher hierarchical group to the higher hierarchical ledger.
  • each node 100 belonging to a lower hierarchical group may update the lower hierarchical ledger to add the parameters of the new node 100 added to the lower hierarchical group to the lower hierarchical ledger.
  • nodes 100 other than node 100A in the top hierarchy and node 100B2 in the bottom hierarchy belong to two groups. Therefore, node 100B1 needs to hold a common ledger for each group, and has two ledgers (ledger (A) and ledger (B)).
  • the two groups (group (A) and group (B)) have parameters that allow them to be distinguished in a manner linked to their respective chain IDs.
  • ledger (A) which is the higher hierarchy ledger, contains the hash value, etc., of ledger (B), which is the lower hierarchy ledger, and therefore when ledger (B) is updated, ledger (A) also needs to be updated.
  • the node parameters stored in the ledger are, for example, at least one of the following parameters:
  • Chain ID A maximum of two are required. The chain ID makes it possible to determine which of two groups is the higher-level group.
  • - Parent Chain ID This is the ID of the higher-level chain in which the group's parent node participates.
  • - Validator node ID The ID of the node that verified that the ledger is correct.
  • Parent node rotation value The number of transactions that cause parent node rotation. When the number of parent node transactions reaches this value, parent node rotation occurs.
  • Parent node transaction count The number of transactions that have occurred since becoming a parent node.
  • Node performance parameters For example, at least one of battery capacity, computing power, memory capacity (memory margin information), and sleep time.
  • each node 100 can grasp the performance of each of the other nodes 100 in the group. Therefore, each node 100 can autonomously determine the node 100 with the highest performance in the group as the parent node of the group.
  • a parent node is a special node that mediates data exchange between layers, and is also called a "representative node” or "leader". For example, a parent node has a role of reflecting ledger data of a lower layer in a ledger of a higher layer.
  • this method has the following problems.
  • each node 100 may hold a ledger with a large amount of data, which may put a strain on the storage capacity of each node 100. For example, when the number of nodes 100 belonging to one group is "N", N performance values are managed per node, and N2 performance values are managed for the entire group, resulting in a large memory usage.
  • the second issue is that when the performance value of any of the nodes 100 belonging to a group is updated, or when a new node 100 joins the group or a node 100 that has already joined leaves the group, it is necessary to update the ledger managed by each node 100 belonging to the group. Since updating the ledger involves communication between the nodes 100, there is a concern that frequent ledger updates will increase the frequency of communication between the nodes 100, leading to increased power consumption by each node 100.
  • FIG. 19 is a diagram for explaining a node selection method according to one embodiment.
  • a group 200 is made up of multiple nodes 100 (nodes 100a to 100d) that manage the same ledger in a distributed manner.
  • Each node 100 stores its own performance value. Each node also stores a point value used to select a representative node within the group 200.
  • Each node 100 belonging to the same group 200 has a control unit 120 that performs a predetermined control in response to communication with other nodes in the group 200 (see FIG. 5).
  • the predetermined control includes an acquisition process for acquiring the performance value of the other node from the other node, and a change process for changing the point value of the node 100 based on the result of comparing the performance value of the other node with the performance value of the node 100.
  • the control unit 120 determines the node 100 as the parent node (representative node) of the group 200.
  • the parent node is the node 100 with the highest performance in the group 200, and is the node 100 that mediates exchanges between the group 200 and other groups.
  • the group is a group that belongs to a layer other than the top layer (Layer 1), that is, any layer from the second layer onward.
  • each node 100 in the group 200 manages its own point value. Then, when communication (P2P communication) occurs between two nodes 200 in the group 200, the point value is changed by comparing the performance of the two nodes 200. By repeating this control (predetermined control) for each P2P communication, the point value of each node 100 is changed (updated), and finally, the node 100 whose point value has reached a predetermined value is selected as the parent node.
  • P2P communication communication
  • predetermined control predetermined control
  • each node 100 does not need to store, hold, and manage the performance parameters of all nodes 100 belonging to the group 200 in a ledger, but instead can hold and manage point values. Compared to storing, holding, and managing performance parameters in a ledger, holding and managing point values, which are a small amount of data, can reduce memory usage in each node 100.
  • each node 100 does not need to update the performance parameters of the node whose performance value has been updated, which are included in the ledger. Therefore, it is possible to avoid a situation in which the frequency of communication between the nodes 100 increases due to frequent ledger updates, and it is possible to suppress an increase in the power consumption of each node 100.
  • the point value managed by each node 100 is also referred to as LP (Leader Point).
  • LP Leader Point
  • each node 100 belonging to the group 200 holds its own point value (LP) and its own performance value.
  • the point value is a value in the range of 0 to 100.
  • the performance value (performance parameter) of the node 100 may be at least one of the battery capacity, computing power, storage capacity, and sleep time.
  • the performance value of the node 100 may be an index value derived from one or more parameters of the battery capacity, computing power, storage capacity, and sleep time.
  • the performance value may be a statistical value (total value or average value, etc.) for the battery capacity, computing power, and storage capacity.
  • the performance value may be set so that the shorter the sleep time, the higher the performance value.
  • the performance value is a normalized value in the range of 0 to 100.
  • the node 100a has a performance value of "10", which is the lowest performance in the group.
  • Node 100c has a performance value of "75", making it the highest performing node in the group.
  • the point value (LP) may be a value that increases or decreases over time so as to approach a predetermined value (representative node threshold).
  • a predetermined value representedative node threshold
  • each node 100 increases or decreases the point value of its own node 100 so that the point value of the own node 100 approaches a predetermined value (representative node threshold) over time.
  • FIG. 20 is a diagram showing an example of the own point value (LP) managed by each node 100.
  • the initial value of the point value is "0" and is a value that is counted up as time passes.
  • the specified value is set to "100".
  • FIG. 21 is a diagram showing another example of the own point value (LP) managed by each node 100.
  • the initial value of the point value is "100” and is a value that is counted down as time passes.
  • the specified value (representative node threshold) is set to "0".
  • the amount of change in the point value per unit time also referred to as the "rate of change of the point value" is preset to be the same rate of change for each node 100.
  • the node 100 may change the point value of the node 100 so as to widen the gap between the point value of the node 100 and the predetermined value (representative node threshold). Specifically, under the assumption that the point value (LP) as shown in FIG. 20 is used, the gap between the point value of the node 100 and the predetermined value (representative node threshold) is widened by lowering the point value of the node 100. On the other hand, under the assumption that the point value (LP) as shown in FIG.
  • the gap between the point value of the node 100 and the predetermined value is widened by increasing the point value of the node 100. In this way, when the node 100 detects another node in the group 200 with higher performance than the node 100, the node 100 can change the point value of the node 100 so as to make it less likely for the node 100 to become the representative node.
  • each node 100 may reset the point value of its own node 100 to an initial value if the performance value of the other node is higher than the performance value of its own node 100. Specifically, under the assumption that the point value (LP) as shown in FIG. 20 is used, the point value of its own node 100 is reset to "0". On the other hand, under the assumption that the point value (LP) as shown in FIG. 21 is used, the point value of its own node 100 is reset to "100".
  • each node 100 may change the point value of its own node 100 by an amount corresponding to the difference between the performance value of the other node and the performance value of its own node 100.
  • point values such as those in FIG. 20
  • the greater the difference between the performance value of the other node and the performance value of its own node 100 the greater the point value of its own node 100 is reduced.
  • point values such as those in FIG. 21
  • the greater the difference between the performance value of the other node and the performance value of its own node 100 the greater the point value of its own node 100 is increased.
  • the node 100 when communicating with another node in the group 200, if the performance value of the other node is lower than the performance value of the node 100, the node 100 may maintain the point value of the node 100 without resetting it. In this way, when the node 100 detects another node in the group 200 whose performance is lower than that of the node 100, the node 100 can more easily become the representative node by maintaining the point value of the node 100 without resetting it.
  • the node 100 may change the point value of the node 100 so as to narrow the gap between the point value of the node 100 and a predetermined value (representative node threshold).
  • a point value such as that in FIG. 20
  • the gap between the point value of the node 100 and a predetermined value is narrowed by increasing the point value of the node 100.
  • a point value such as that in FIG.
  • the gap between the point value of the node 100 and a predetermined value is narrowed by decreasing the point value of the node 100.
  • the node 100 can change the point value of the node 100 so as to make it easier for the node 100 to become the representative node.
  • each node 100 may change the point value of the node 100 by an amount corresponding to the difference between the performance value of the other node and the performance value of the node 100.
  • the point value (LP) as shown in FIG. 21 the larger the difference between the performance value of the other node and the performance value of the node 100, the larger the point value of the node 100 is decreased.
  • FIG. 22 is a diagram showing an example of a flow of a node selection method according to one embodiment.
  • Each node 100 in the group 200 executes this flow. Note that each node 100 is assumed to perform a process separate from this flow to increase or decrease the point value (LP) of the own node 100 so that the point value (LP) of the own node 100 approaches a predetermined value (representative node threshold) over time.
  • LP point value
  • predetermined value representationative node threshold
  • node 100 performs P2P communication with another node (hereinafter referred to as "node 100y") in group 200.
  • node 100x acquires the performance value of other node 100y from other node 100y.
  • node 100x notifies other node 100y of its own performance value.
  • the following processing is also executed on the side of other node 100y.
  • node 100x acquires the current point value (LP) of its own node 100x.
  • LP current point value
  • step S2 node 100x compares its own performance value with the performance value of another node 100y.
  • step S3 the node 100x changes the point value (LP) of the node 100x so as to widen the gap between the point value (LP) of the node 100x and a predetermined value (representative node threshold). For example, the node 100x resets the point value (LP) of the node 100x to its initial value.
  • step S4 the node 100x maintains the point value (LP) of the node 100x, or changes the point value (LP) of the node 100x so as to narrow the gap between the point value (LP) of the node 100x and a predetermined value (representative node threshold).
  • step S5 node 100x checks whether its own node 100x's point value (LP) has reached a predetermined value (representative node threshold).
  • LP point value
  • step S6 If the point value (LP) of node 100x reaches a predetermined value (representative node threshold) (step S5: YES), in step S6, node 100x determines itself as the parent node (representative node) of group 200. However, node 100x continues this flow even after node 100x becomes the parent node. If node 100x detects another node with better performance than node 100x, it resets the point value (LP) of node 100x to the initial value (step S3), for example, and stops considering node 100x as the parent node.
  • a predetermined value representationative node threshold
  • step S7 the node 100x may transition to a sleep state for power saving after communicating with the other node 100y. After returning from the sleep state, the process returns to step S1.
  • the node 100x selects one of steps S3 and S4 according to a predetermined rule. For example, the node 100x and the node 100y may transmit the unique identification number of the node 100 (e.g., a serial number) to the other node 100 via communication, and the node 100 with the smaller unique identification number may execute the process of step S3, and the node 100 with the larger unique identification number may execute the process of step S4.
  • the unique identification number of the node 100 e.g., a serial number
  • the nodes 100 may transmit the performance values as statistics (total or average value, etc.) for the battery capacity, computing power, and storage capacity, and separately transmit the sleep time between them, and the node 100 with the longer sleep time may execute the process of step S3, and the node 100 with the shorter sleep time may execute the process of step S4.
  • the performance values as statistics (total or average value, etc.) for the battery capacity, computing power, and storage capacity, and separately transmit the sleep time between them, and the node 100 with the longer sleep time may execute the process of step S3, and the node 100 with the shorter sleep time may execute the process of step S4.
  • node 100 that has reached a predetermined value becomes the parent node of group 200 and is responsible for mediating data with the upper hierarchy. If communication between nodes in group 200 is sufficiently active, a parent node is autonomously selected after the passage of time according to the rate of change in point value and the predetermined value (representative node threshold).
  • the node 100 that became the parent node is deleted or leaves the group 200, the node 100 with the second highest performance value will no longer initialize its own point value, and will be autonomously selected as the next parent node.
  • the time until the next parent node is born is determined depending on the rules for point calculation processing during communication, the rate of change in point value, and a predetermined value (representative node threshold value).
  • Fig. 23 is a diagram for explaining a node selection method in a comparative example in which performance parameters of all nodes 100 belonging to a group 200 are stored in a ledger managed within the group 200.
  • Fig. 24 is a diagram for explaining a node selection method using point values (LP).
  • each node 100 compared to the method shown in Fig. 23, the data held by each node 100 (specifically, its own point value and performance value) is fixed and does not depend on the number of nodes in the group 200.
  • each node holds N pieces of data in the method of Fig. 23 and 1 piece of data in the method of Fig. 24.
  • the method of Fig. 23 requires N2 pieces of data, but the method of Fig. 24 requires only N pieces of data.
  • the method shown in FIG. 24 compared to the method shown in FIG. 23, it is not necessary to transmit information about one's own node to all other nodes, and this makes it possible to reduce the amount of communication in the entire group 200.
  • the method shown in FIG. 23 requires N*(N-1)/2 communications, whereas the method in FIG. 24 requires only N-1 communications.
  • the amount of data and/or communication can be reduced compared to the method shown in FIG. 23. Therefore, even a low-performance node 100 can participate in the group 200 and utilize the blockchain.
  • the group 200 is made up of a plurality of nodes 100 that manage the same ledger in a distributed manner. However, the group 200 does not have to manage the same ledger in a distributed manner.
  • the group 200 may be any group that performs P2P communication between the nodes 100.
  • the representative node is the node 100 with the highest performance in the group 200.
  • the representative node may also be the node 100 with the lowest performance in the group 200.
  • the node 100 is a battery-powered device.
  • the hierarchical network 10 may also include devices that are powered by an external power source.
  • a device connected to an external power source may be placed in the highest hierarchical layer in the hierarchical network 10.
  • Each of the above-mentioned operation flows can be implemented not only separately but also by combining two or more operation flows. For example, some steps of one operation flow can be added to another operation flow, or some steps of one operation flow can be replaced with some steps of another operation flow. Also, the order of the steps in each of the above-mentioned operation flows is an example, and the order of the steps can be changed as appropriate.
  • a program may be provided that causes a computer to execute each process performed by node 100.
  • the program may be recorded on a computer-readable medium.
  • the computer-readable medium on which the program is recorded may be a non-transient recording medium.
  • the non-transient recording medium is not particularly limited, and may be, for example, a recording medium such as a CD-ROM or a DVD-ROM.
  • the circuits that execute each process performed by node 100 may be integrated, and at least a part of node 100 may be configured as a semiconductor integrated circuit (chip set, SoC: System on a chip).
  • the terms “based on” and “depending on” do not mean “based only on” or “depending only on,” unless otherwise specified.
  • the term “based on” means both “based only on” and “based at least in part on.”
  • the term “depending on” means both “based only on” and “depending at least in part on.”
  • the terms “include,” “comprise,” and variations thereof do not mean to include only the items listed, but may include only the items listed, or may include additional items in addition to the items listed.
  • the term “or” as used in this disclosure is not intended to be an exclusive or. Additionally, any reference to elements using designations such as “first,” “second,” and the like used in this disclosure is not intended to generally limit the quantity or order of those elements.
  • Appendix 1 A communication system for performing peer-to-peer communication among a plurality of nodes belonging to the same group, Each of the plurality of nodes a control unit that performs a predetermined control in response to communication with other nodes in the group;
  • the predetermined control is an acquisition process of acquiring a performance value of the other node from the other node;
  • a change process of changing the point value of the own node based on a result of comparing the performance value of the other node with the performance value of the own node, When the point value reaches a predetermined value, the control unit determines the node itself as a representative node of the group.
  • the point value is a value that increases or decreases over time so as to approach the predetermined value
  • the change process includes a process of changing the point value so as to widen an interval between the point value and the predetermined value when the performance value of the other node is higher than the performance value of the own node.
  • Appendix 5 The communication system described in Appendix 3, wherein the change process includes a process of changing the point value by an amount corresponding to a difference between the performance value of the other node and the performance value of the own node when the performance value of the other node is higher than the performance value of the own node.
  • Appendix 7 The communication system according to any one of appendixes 3 to 5, wherein the change process includes a process of changing the point value so as to narrow the gap between the point value and the predetermined value when the performance value of the other node is lower than the performance value of the own node.
  • the group is made up of multiple nodes that manage the same ledger in a distributed manner, The communication system according to any one of Supplementary Notes 2 to 7, wherein the representative node is a node that mediates interactions between the group and other groups.
  • the predetermined control is an acquisition process of acquiring a performance value of the other node from the other node;

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

In a communication system that performs peer-to-peer communication between a plurality of nodes belonging to the same group, each node performs a predetermined control in response to communication with another node in the group. The predetermined control includes an acquisition process for acquiring the performance value of the other node from the other node, and a change process for changing the point value of the own node on the basis of the result of comparing the performance value of the other node with the performance value of the own node. Each node determines its own node as the representative node of the group, when the point value reaches a predetermined value.

Description

通信システム、ノード、及びプログラムCommunication system, node, and program
 本開示は、通信システム、ノード、及びプログラムに関する。 This disclosure relates to a communication system, a node, and a program.
 近年、ブロックチェーン技術が注目されている。ブロックチェーン技術では、複数のノードによって自律分散型のネットワーク、具体的には、ピアツーピア(P2P)ネットワークが形成されるため、システムダウンが起きないというメリットがある。 In recent years, blockchain technology has been attracting attention. With blockchain technology, an autonomous decentralized network, specifically a peer-to-peer (P2P) network, is formed by multiple nodes, which has the advantage of preventing system downtime.
 ブロックチェーン技術は、P2Pネットワーク内の取引(トランザクション)の履歴を各ノードが台帳として管理する仕組みを有する。このような仕組みは分散型台帳技術とも称される。1つのノードでトランザクションが発生した場合、参加している全てのノードで計算(検算)処理を行う。これにより、参加しているノードの中に不正がある場合及び/又は正常に動作しなかった場合でも、改ざんが非常に困難な正しい取引の履歴が残る仕組みが提供される。 Blockchain technology has a mechanism whereby each node manages the history of transactions within a P2P network as a ledger. This mechanism is also known as distributed ledger technology. When a transaction occurs at one node, a calculation (verification) process is performed by all participating nodes. This provides a mechanism whereby correct transaction history that is extremely difficult to tamper with remains, even if a participating node is acting dishonestly and/or does not function properly.
 ここで、特許文献1には、各ノードが保持する取引履歴(台帳)の肥大化によるノードの容量逼迫の問題を解決するために、P2Pネットワークを階層化された複数のネットワークに分割し、ネットワークごとに独立して取引データを管理するシステムが記載されている。このシステムでは、取引相手が自ネットワークに存在する場合、当該自ネットワーク内でのみ取引データを共有して記憶する。 Patent Document 1 describes a system that divides a P2P network into multiple hierarchical networks and manages transaction data independently for each network, in order to solve the problem of node capacity pressure caused by the expansion of transaction history (ledger) held by each node. In this system, if a trading partner is present in the own network, transaction data is shared and stored only within the own network.
特開2018-67108号公報JP 2018-67108 A
 第1の態様に係る通信システムは、同一のグループに属する複数のノード間でピアツーピア通信を行う通信システムであって、前記複数のノードのそれぞれは、前記グループ内の他ノードと通信することに応じて所定制御を行う制御部を備える。前記所定制御は、前記他ノードの性能値を前記他ノードから取得する取得処理と、前記他ノードの性能値を自ノードの性能値と比較した結果に基づいて自ノードのポイント値を変更する変更処理と、を含む。前記制御部は、前記ポイント値が所定値に達した場合、自ノードを前記グループの代表ノードとして決定する。 The communication system according to the first aspect is a communication system that performs peer-to-peer communication between multiple nodes that belong to the same group, and each of the multiple nodes is equipped with a control unit that performs a predetermined control in response to communication with another node in the group. The predetermined control includes an acquisition process that acquires a performance value of the other node from the other node, and a change process that changes a point value of the own node based on a result of comparing the performance value of the other node with the performance value of the own node. When the point value reaches a predetermined value, the control unit determines the own node as the representative node of the group.
 第2の態様に係るノードは、同一のグループに属する複数のノード間でピアツーピア通信を行う通信システムで用いるノードあって、前記グループ内の他ノードと通信することに応じて所定制御を行う制御部を備える。前記所定制御は、前記他ノードの性能値を前記他ノードから取得する取得処理と、前記他ノードの性能値を自ノードの性能値と比較した結果に基づいて自ノードのポイント値を変更する変更処理と、を含む。前記制御部は、前記ポイント値が所定値に達した場合、自ノードを前記グループの代表ノードとして決定する。 The node according to the second aspect is a node used in a communication system that performs peer-to-peer communication between multiple nodes belonging to the same group, and includes a control unit that performs predetermined control in response to communication with other nodes in the group. The predetermined control includes an acquisition process that acquires a performance value of the other node from the other node, and a change process that changes the point value of the own node based on a result of comparing the performance value of the other node with the performance value of the own node. When the point value reaches a predetermined value, the control unit determines the own node as the representative node of the group.
 第3の態様に係るプログラムは、同一のグループに属する複数のノード間でピアツーピア通信を行う通信システムで用いるノードに、前記グループ内の他ノードと通信することに応じて所定制御を実行するステップであって、前記所定制御は、前記他ノードの性能値を前記他ノードから取得する取得処理と、前記他ノードの性能値を自ノードの性能値と比較した結果に基づいて自ノードのポイント値を変更する変更処理と、を含むステップと、前記ポイント値が所定値に達した場合、自ノードを前記グループの代表ノードとして決定するステップと、を実行させる。 The program according to the third aspect causes a node used in a communication system for peer-to-peer communication between multiple nodes belonging to the same group to execute a predetermined control in response to communication with another node in the group, the predetermined control including an acquisition process for acquiring a performance value of the other node from the other node, and a change process for changing a point value of the own node based on a result of comparing the performance value of the other node with the performance value of the own node, and a step of determining the own node as a representative node of the group when the point value reaches a predetermined value.
一般的なブロックチェーンシステムにおけるネットワーク構成例を示す図である。FIG. 1 is a diagram illustrating an example of a network configuration in a typical blockchain system. 実施形態に係る各ノードが管理する台帳の構成例を示す図である。FIG. 2 is a diagram illustrating an example of the configuration of a ledger managed by each node according to the embodiment. 実施形態に係る台帳に新たなブロックを追加する際(すなわち、台帳を更新する際)の動作例を示す図である。FIG. 13 is a diagram illustrating an example of an operation when adding a new block to a ledger according to an embodiment (i.e., when updating the ledger). 実施形態に係る台帳に新たなブロックを追加する際の動作例を示す図である。FIG. 13 is a diagram illustrating an example of an operation when adding a new block to a ledger according to an embodiment. 実施形態に係る各ノードの構成例を示す図である。FIG. 2 is a diagram illustrating an example of the configuration of each node according to the embodiment. 実施形態に係るネットワーク構成例を示す図である。FIG. 1 is a diagram illustrating an example of a network configuration according to an embodiment. 実施形態に係る台帳の管理方法を示す図である。FIG. 13 is a diagram showing a ledger management method according to an embodiment. 実施形態に係る台帳の管理方法を示す図である。FIG. 13 is a diagram showing a ledger management method according to an embodiment. 実施形態に係る階層構造ネットワークを一般的なネットワーク構成と比較した場合の計算量の削減効果を説明するための図である。11 is a diagram for explaining the effect of reducing the amount of calculation when a hierarchical structure network according to an embodiment is compared with a general network configuration; FIG. 実施形態に係る上位階層台帳と下位階層台帳とのリンクについて説明するための図である。11 is a diagram for explaining a link between a higher-level ledger and a lower-level ledger according to an embodiment. FIG. 実施形態に係るグループ(A)が形成された後、新たにグループ(A)の下位にグループ(B)が形成される場合における動作例を示す図である。FIG. 11 is a diagram showing an example of an operation in a case where, after a group (A) according to an embodiment is formed, a new group (B) is formed below the group (A). 実施形態に係るグループ(A)が形成された後、新たにグループ(A)の下位にグループ(B)が形成され、さらにその後、新たにグループ(A)の下位にグループ(C)が形成される場合における動作例を示す図である。A figure showing an example of operation in a case where, after a group (A) in an embodiment is formed, a new group (B) is formed below group (A), and then a new group (C) is formed below group (A). 実施形態に係るグループ(A)が形成された後、新たにグループ(A)の下位にグループ(B)が形成され、さらにその後、新たにグループ(A)の下位にグループ(C)が形成される場合における動作例を示す図である。A figure showing an example of operation in a case where, after a group (A) in an embodiment is formed, a new group (B) is formed below group (A), and then a new group (C) is formed below group (A). 一実施形態に係る下位階層グループのグループ分けについて説明するための図である。FIG. 11 is a diagram illustrating grouping of lower hierarchical groups according to an embodiment. 一実施形態に係る下位階層グループのグループ分けについて説明するための図である。FIG. 11 is a diagram illustrating grouping of lower hierarchical groups according to an embodiment. 一実施形態に係るグループ内の優先順位について説明するための図である。FIG. 11 is a diagram illustrating a priority order within a group according to an embodiment. 一実施形態に係るグループ内の優先順位について説明するための図である。FIG. 11 is a diagram illustrating a priority order within a group according to an embodiment. 一実施形態に係る台帳に格納するノードパラメータの一例について説明するための図である。FIG. 11 is a diagram for explaining an example of node parameters stored in a ledger according to an embodiment. 一実施形態に係るノード選出方法を説明するための図である。FIG. 11 is a diagram for explaining a node selection method according to an embodiment. 一実施形態に係る各ノードが管理する自身のポイント値(LP)の一例を示す図である。FIG. 11 is a diagram showing an example of a point value (LP) of each node managed by itself according to an embodiment. 一実施形態に係る各ノードが管理する自身のポイント値(LP)の他の例を示す図である。FIG. 11 is a diagram showing another example of the own point value (LP) managed by each node according to an embodiment. 一実施形態に係るノード選出方法のフロー例を示す図である。FIG. 11 is a diagram illustrating an example of a flow of a node selection method according to an embodiment. 比較例として、グループ内の各ノードのノードパラメータを、グループ内で管理される台帳に格納した場合における、ノード選出方法を説明するための図である。FIG. 11 is a diagram for explaining, as a comparative example, a node selection method in a case where node parameters of each node in a group are stored in a ledger managed within the group. 一実施形態に係るポイント値(LP)を用いたノード選出方法を説明するための図である。FIG. 11 is a diagram for explaining a node selection method using a point value (LP) according to an embodiment.
 ノードをグループ化し、P2P通信を行うグループごとに個別に台帳を管理することで、台帳の更新頻度及び肥大化を抑制できると考えられる。このようなグループ化を行う前提下において、各グループは、他グループとの間のやり取りを仲介するノード(「代表ノード」とも称する)を有することが想定される。しかしながら、P2P通信を行うグループ内で代表ノードを自律的に選出する技術は未だ確立されておらず、従来の技術では、適切な代表ノードを自律的に選出することが難しいという問題がある。 By grouping the nodes and managing a separate ledger for each group that conducts P2P communication, it is believed that the frequency of updates to the ledger and its expansion can be reduced. Assuming that such grouping is performed, each group is expected to have a node (also called a "representative node") that mediates interactions with other groups. However, technology for autonomously selecting a representative node within a group that conducts P2P communication has not yet been established, and with conventional technology, there is a problem in that it is difficult to autonomously select an appropriate representative node.
 そこで、本開示は、P2P通信を行うグループ内で適切な代表ノードを自律的に選出することを可能とすることを目的とする。 The purpose of this disclosure is to make it possible to autonomously select an appropriate representative node within a group conducting P2P communication.
 図面を参照しながら実施形態について説明する。図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。 The embodiments will be described with reference to the drawings. In the description of the drawings, the same or similar parts are given the same or similar reference numerals.
 (1)ブロックチェーン技術の概要
 まず、図1乃至図4を参照して、一般的なブロックチェーン技術について説明する。図1は、一般的なブロックチェーンシステムにおけるネットワーク構成例を示す図である。図1において、ノード間を結ぶ線はノード間の通信接続を表している。
(1) Overview of Blockchain Technology First, a general block chain technology will be described with reference to Fig. 1 to Fig. 4. Fig. 1 is a diagram showing an example of a network configuration in a general block chain system. In Fig. 1, lines connecting nodes represent communication connections between the nodes.
 ブロックチェーン技術では、複数のノード100によって自律分散型のネットワーク、具体的には、P2Pネットワークが形成される。各ノード100は、相互に通信可能に接続されている。ノード100間の通信は、公衆通信網及び/又はローカル通信網を介して行われてもよい。なお、図1において、ノード100a乃至100eの合計5つのノードを例示しているが、ノード100の数は5つに限定されない。各ノード100は、少なくとも通信機能及び演算処理機能を有する機器、例えば、PC(Personal Computer)である。一般的なブロックチェーン技術では、各ノード100が十分な性能(スペック)を有していることが前提となっている。 In blockchain technology, an autonomous distributed network, specifically a P2P network, is formed by multiple nodes 100. Each node 100 is connected to each other so that they can communicate with each other. Communication between the nodes 100 may be performed via a public communication network and/or a local communication network. Note that although a total of five nodes, nodes 100a to 100e, are illustrated in FIG. 1, the number of nodes 100 is not limited to five. Each node 100 is a device having at least a communication function and a calculation processing function, such as a PC (Personal Computer). In general blockchain technology, it is assumed that each node 100 has sufficient performance (specifications).
 各ノード100は、ネットワーク内の取引(トランザクション)の履歴を台帳として管理する。1つのノード100(例えば、ノード100a)でトランザクションが発生した場合、参加している全てのノード(ノード100a乃至ノード100e)が計算(検算)処理を行う。これにより、参加しているノード100の中に不正がある場合及び/又は正常に動作しなかった場合でも、改ざんが非常に困難な正しい取引の履歴が残る仕組みが提供される。 Each node 100 manages the history of transactions within the network as a ledger. When a transaction occurs at one node 100 (for example, node 100a), all participating nodes (nodes 100a to 100e) perform a calculation (verification) process. This provides a mechanism that leaves a correct transaction history that is extremely difficult to tamper with, even if a participating node 100 commits fraud and/or does not operate normally.
 なお、トランザクションは、例えば、金銭又はポイント等の送金又は決済等、或いは、通信の発生等であってもよい。その場合、台帳のブロックに格納されるトランザクションデータは、送金又は決済のデータであってもよいし、通信のデータであってもよい。トランザクションは、ネットワークにおけるノードの参加又は削除等であってもよい。その場合、台帳のブロックに格納されるトランザクションデータは、ノード100のデータ(パラメータ)であってもよい。トランザクションは、台帳の更新であってもよい。台帳のブロックに格納されるトランザクションデータがノード100のデータ(パラメータ)であってもよい。 Note that a transaction may be, for example, a remittance or settlement of money or points, or the occurrence of communication. In that case, the transaction data stored in a block of the ledger may be remittance or settlement data, or communication data. A transaction may be the joining or removal of a node in the network, etc. In that case, the transaction data stored in a block of the ledger may be data (parameters) of node 100. A transaction may be an update of the ledger. The transaction data stored in a block of the ledger may be data (parameters) of node 100.
 一実施形態では、台帳のブロックに格納されるトランザクションデータがノード100のデータ(パラメータ)を含む一例を主として想定する。このようなノード100のデータ(パラメータ)を台帳で管理することにより、ネットワーク内のノード100が真正な機器であることを保証することが容易になる。 In one embodiment, an example is mainly assumed in which transaction data stored in blocks of a ledger includes data (parameters) of a node 100. By managing such data (parameters) of a node 100 in a ledger, it becomes easy to guarantee that the node 100 in the network is a genuine device.
 図2は、各ノード100が管理する台帳の構成例を示す図である。 Figure 2 shows an example of the configuration of the ledger managed by each node 100.
 各ノード100は、ネットワーク内で発生したトランザクションの記録をブロックに格納する。1つのブロックは、ヘッダ部分であるブロックヘッダと、少なくとも1つのトランザクションのデータを格納するトランザクションデータ部分とを有する。ブロックヘッダには、1つ前に生成されたブロックから計算されたハッシュ値等が格納される。例えば、ブロックn+1のブロックヘッダには、ブロックnから計算されたハッシュ値等が格納される。このように、台帳は、生成された各ブロックが時系列に沿ってチェーン状に連結されるデータ構造を有する。ブロックヘッダは、該当するブロックの番号を表すハイトと、ハッシュ値の計算に用いる値であるナンスとをさらに含んでもよい。 Each node 100 stores records of transactions that occur within the network in blocks. A block has a block header, which is a header portion, and a transaction data portion that stores data of at least one transaction. The block header stores a hash value calculated from the block generated immediately before. For example, the block header of block n+1 stores a hash value calculated from block n. In this way, the ledger has a data structure in which each generated block is linked in a chain in chronological order. The block header may further include a height that indicates the number of the corresponding block, and a nonce, which is a value used to calculate the hash value.
 図3及び図4は、台帳に新たなブロックを追加する際(すなわち、台帳を更新する際)の動作例を示す図である。 Figures 3 and 4 show an example of the operation when adding a new block to the ledger (i.e., when updating the ledger).
 図3に示すように、P2Pネットワークを構成するグループ内でトランザクションが発生した後、当該トランザクションに対応する新たなブロックを、「プロポーザ」と称されるノード100が生成し、他のノード100に対して新たなブロックを通知することで提案する。例えば、複数のノード100がナンスの値を変化させながらトランザクションデータ等と合わせてそのハッシュ値を計算し、特定条件を満たすハッシュ値を見つけたノード100(プロポーザ)が、生成したブロックを他のノード100に通知する。新たなブロックの提案を受けた他のノード100は、新たなブロックのハッシュ値を検算する。ここでは検算に成功したと仮定して説明を進める。 As shown in Figure 3, after a transaction occurs within a group that makes up the P2P network, a node 100 called a "proposer" generates a new block corresponding to that transaction and proposes the new block by notifying the other nodes 100 of it. For example, multiple nodes 100 calculate a hash value by combining the transaction data, etc. while changing the value of the nonce, and the node 100 (proposer) that finds a hash value that satisfies certain conditions notifies the other nodes 100 of the generated block. The other nodes 100 that receive the proposed new block verify the hash value of the new block. Here, we will proceed with the explanation assuming that the verification is successful.
 続いて、図4に示すように、新たなブロックの提案を受けた他のノード100は、検算したブロックを新たなブロックとして認めるようにノード100(プロポーザ)に対して投票する。投票を行う他のノード100を「投票者」と称する。ノード100(プロポーザ)は、他のノード100(投票者)からある一定数の投票が得られた場合、提案した新たなブロックを確定し、当該新たなブロックを台帳に追加する。 Next, as shown in Figure 4, other nodes 100 that receive the proposal for a new block vote for node 100 (proposer) to accept the verified block as a new block. The other nodes 100 that vote are called "voters." If node 100 (proposer) receives a certain number of votes from other nodes 100 (voters), it confirms the proposed new block and adds the new block to the ledger.
 図5は、各ノード100の構成例を示す図である。 FIG. 5 shows an example of the configuration of each node 100.
 図5に示すように、ノード100は、通信部110と、制御部120と、記憶部130とを有する。ノード100は、バッテリ140を有していてもよい。 As shown in FIG. 5, the node 100 has a communication unit 110, a control unit 120, and a storage unit 130. The node 100 may also have a battery 140.
 通信部110は、他ノードとの通信を行うための通信インターフェイスを含む。通信インターフェイスは、無線通信インターフェイスであってもよい。当該通信インターフェイスは、有線通信インターフェイスであってもよい。 The communication unit 110 includes a communication interface for communicating with other nodes. The communication interface may be a wireless communication interface. The communication interface may be a wired communication interface.
 制御部120は、ノード100における各種の制御及び処理を行う。このような処理は、上述の処理及び後述の処理を含む。制御部120は、少なくとも1つのプロセッサ121を含む。プロセッサ121は、記憶部130に記憶されるプログラムを実行して各種の処理を行う。 The control unit 120 performs various controls and processes in the node 100. Such processes include the processes described above and those described below. The control unit 120 includes at least one processor 121. The processor 121 executes programs stored in the storage unit 130 to perform various processes.
 記憶部130は、プロセッサ121により実行されるプログラム、及びプロセッサ121による処理に用いられる情報を記憶する。記憶部130は、不揮発性メモリ及び揮発性メモリを含む。 The storage unit 130 stores programs executed by the processor 121 and information used in processing by the processor 121. The storage unit 130 includes non-volatile memory and volatile memory.
 バッテリ140は、ノード100(機器)の各部に供給する電力を蓄える。 The battery 140 stores power to be supplied to each part of the node 100 (device).
 (2)階層構造ネットワーク
 次に、図6を参照して、一実施形態に係るブロックチェーンシステム(単に「通信システム」とも称する)について説明する。一実施形態に係るブロックチェーンシステムは、階層構造を有するネットワーク(「階層構造ネットワーク」とも称する)10を含んで構成される。
(2) Hierarchical Structure Network Next, a block chain system (also simply referred to as a "communication system") according to an embodiment will be described with reference to Fig. 6. The block chain system according to an embodiment includes a network 10 having a hierarchical structure (also referred to as a "hierarchical structure network").
 上述のように、ブロックチェーン技術では、各ノード100が十分な性能を有していることを前提として、いずれか1つのノード100でトランザクションが発生すれば全てのノード100で計算(検算)を行う。そのため、バッテリ容量が小さい、計算能力が低い、記憶容量が小さいといった性能の劣る機器、例えば、センサデバイス等のIoT機器に対してブロックチェーン技術を適用することが難しい。 As mentioned above, in blockchain technology, it is assumed that each node 100 has sufficient performance, and if a transaction occurs at any one node 100, calculations (verification) are performed at all nodes 100. For this reason, it is difficult to apply blockchain technology to devices with poor performance, such as those with small battery capacity, low computing power, or small memory capacity, such as IoT devices such as sensor devices.
 一実施形態では、階層構造ネットワーク10を形成し、各ノード100を当該ノード100の性能に応じた階層に配置する。階層構造にすることで、上位の階層を計算頻度(すなわち、台帳の更新頻度)が高い階層としつつ、下位の階層については計算頻度を抑制できる。そして、性能の高い機器を上位の階層に配置し、性能の低い機器を下位の階層に配置することで、性能の良し悪しに依存することなくブロックチェーンの階層構造ネットワーク10に参加可能になる。 In one embodiment, a hierarchical network 10 is formed, and each node 100 is placed in a hierarchical level according to the performance of the node 100. The hierarchical structure allows higher levels to have a higher calculation frequency (i.e., the frequency of updating the ledger), while lower levels have a lower calculation frequency. By placing high-performance devices in higher levels and low-performance devices in lower levels, it becomes possible to participate in the blockchain hierarchical network 10 regardless of performance.
 図6は、一実施形態に係るネットワーク構成例を示す図である。図6の例では、階層構造ネットワーク10は、階層1乃至階層3の3つの階層からなる階層構造を有する。以下において、3つの階層を用いる一例について主として説明するが、階層の数は2つであってもよいし、4つ以上であってもよい。図6に示す例においては、階層1が最上位の階層であって、階層3が最下位の階層である。 FIG. 6 is a diagram showing an example of a network configuration according to one embodiment. In the example of FIG. 6, the hierarchical structure network 10 has a hierarchical structure consisting of three hierarchies, hierarchical levels 1 to 3. In the following, an example using three hierarchies will be mainly described, but the number of hierarchies may be two or four or more. In the example shown in FIG. 6, hierarchical level 1 is the highest hierarchical level, and hierarchical level 3 is the lowest hierarchical level.
 このような階層構造ネットワーク10において、各ノード100は台帳を管理する。各ノード100は、当該ノード100の性能に基づいて、3つの階層のうち当該性能に応じた階層に配置される。ここで、ノード100の性能とは、計算能力(例えば、プロセッサ能力)、記憶容量(例えば、メモリサイズ)、及びバッテリ容量のうち少なくとも1つをいう。ノード100の性能には、後述のスリープ時間が含まれてもよい。例えば、新たなノードが追加される場合、当該新たなノード又は他ノードは、当該新たなノードが配置される階層を当該新たなノードの性能に基づいて決定する。 In such a hierarchical network 10, each node 100 manages a ledger. Based on the performance of the node 100, each node 100 is placed in one of the three hierarchies according to the performance. Here, the performance of the node 100 refers to at least one of the computational power (e.g., processor power), storage capacity (e.g., memory size), and battery capacity. The performance of the node 100 may also include a sleep time, which will be described later. For example, when a new node is added, the new node or another node determines the hierarchical level in which the new node is placed based on the performance of the new node.
 階層1に配置される各ノード100及び階層2に配置される各ノード100は、上位階層グループを形成する。図6において、階層1に属するノード100がノード100Aのみである一例を示しているが、階層1に複数のノード100が配置されてもよい。 The nodes 100 arranged in hierarchical level 1 and the nodes 100 arranged in hierarchical level 2 form an upper hierarchical level group. In FIG. 6, an example is shown in which the only node 100 belonging to hierarchical level 1 is node 100A, but multiple nodes 100 may be arranged in hierarchical level 1.
 階層2に配置されるノード100は、ノード100B1、ノード100C1、及びノード100D1の3つである。上位階層グループであるグループ(A)200Aに属する各ノード100は、上位階層台帳である台帳(A)を管理する。 The three nodes 100 arranged in hierarchical level 2 are node 100B1, node 100C1, and node 100D1. Each node 100 belonging to group (A) 200A, which is a higher hierarchical group, manages ledger (A), which is a higher hierarchical ledger.
 階層2に配置される各ノード100及び階層3に配置される各ノード100は、下位階層台帳を管理する下位階層グループを形成する。例えば、性能の高い機器は階層1(又は階層2)に配置され、当該機器に比べて性能が低い機器は階層3に配置される。すなわち、下位階層グループに属するノード100は、上位階層グループに属するノード100に比べて低い性能を有する。 The nodes 100 placed in hierarchical 2 and the nodes 100 placed in hierarchical 3 form a lower hierarchical group that manages the lower hierarchical ledger. For example, high performance equipment is placed in hierarchical 1 (or hierarchical 2), and equipment with lower performance compared to the high performance equipment is placed in hierarchical 3. In other words, the nodes 100 belonging to the lower hierarchical group have lower performance compared to the nodes 100 belonging to the higher hierarchical group.
 図6において、グループ(B)乃至グループ(D)の合計3つの下位階層グループが形成される一例を示している。但し、下位階層グループの数は3つに限定されず、下位階層グループの数は1つ又は2つであってもよいし、4つ以上であってもよい。 In FIG. 6, an example is shown in which a total of three lower hierarchical groups, group (B) to group (D), are formed. However, the number of lower hierarchical groups is not limited to three, and the number of lower hierarchical groups may be one or two, or may be four or more.
 グループ(B)には、階層2に配置される1つのノード100B1と、階層3に配置される複数のノード100B2とが属している。グループ(B)に属する各ノード100Bは、下位階層台帳である台帳(B)を管理する。ノード100B1は、グループ(A)及びグループ(B)の両方に属し、台帳(A)及び台帳(B)の両方を管理する。以下の実施形態の説明において、ノード100B1を、グループ(B)の親ノードとも称する。ノード100B2は、グループ(B)のみに属するため、台帳(B)のみを管理する。 Group (B) includes one node 100B1 located in hierarchical level 2 and multiple nodes 100B2 located in hierarchical level 3. Each node 100B belonging to group (B) manages ledger (B), which is a lower hierarchical ledger. Node 100B1 belongs to both group (A) and group (B) and manages both ledgers (A) and (B). In the following description of the embodiment, node 100B1 is also referred to as the parent node of group (B). Node 100B2 belongs only to group (B) and therefore manages only ledger (B).
 同様に、グループ(C)には、階層2に配置される1つのノード100C1と、階層3に配置される複数のノード100C2とが属している。グループ(C)に属する各ノード100Cは、下位階層台帳である台帳(C)を管理する。ノード100C1は、グループ(A)及びグループ(C)の両方に属し、台帳(A)及び台帳(C)の両方を管理する。以下の実施形態の説明において、ノード100C1を、グループ(C)の親ノードとも称する。ノード100C2は、グループ(C)のみに属するため、台帳(C)のみを管理する。 Similarly, group (C) includes one node 100C1 located in hierarchical level 2 and multiple nodes 100C2 located in hierarchical level 3. Each node 100C belonging to group (C) manages ledger (C), which is a lower hierarchical ledger. Node 100C1 belongs to both group (A) and group (C) and manages both ledgers (A) and (C). In the following description of the embodiment, node 100C1 is also referred to as the parent node of group (C). Node 100C2 belongs only to group (C) and therefore manages only ledger (C).
 同様に、グループ(D)には、階層2に配置される1つのノード100D1と、階層3に配置される複数のノード100D2とが属している。グループ(D)に属する各ノード100Dは、下位階層台帳である台帳(D)を管理する。ノード100D1は、グループ(A)及びグループ(D)の両方に属し、台帳(A)及び台帳(D)の両方を管理する。以下の実施形態の説明において、ノード100D1を、グループ(D)の親ノードとも称する。ノード100D2は、グループ(D)のみに属するため、台帳(D)のみを管理する。 Similarly, group (D) includes one node 100D1 located in hierarchical level 2 and multiple nodes 100D2 located in hierarchical level 3. Each node 100D belonging to group (D) manages ledger (D), which is a lower hierarchical ledger. Node 100D1 belongs to both group (A) and group (D) and manages both ledgers (A) and (D). In the following description of the embodiment, node 100D1 is also referred to as the parent node of group (D). Node 100D2 belongs only to group (D) and therefore manages only ledger (D).
 各グループ(A)乃至(D)内では、各ノード100が相互に通信可能に接続されており、グループ内で共通の台帳を保持及び管理し、グループ内では従来のブロックチェーンと同様の処理を行う。このようなグループ化により、各グループ内のノード数を減らすことができるため、台帳の肥大化を抑制できる。 In each group (A) to (D), the nodes 100 are connected to each other so that they can communicate with each other, and a common ledger is held and managed within the group, and processing is performed within the group in the same way as in conventional blockchains. By grouping in this way, the number of nodes in each group can be reduced, thereby preventing the ledger from becoming bloated.
 一般的に、性能の低いノード100(例えば、センサデバイス等のIoT機器)は、性能の高いノード100に比べてトランザクションの発生頻度が低い。例えば、性能の低いノード100は、消費電力を低減するために通信を間欠的に行い、通信を行わない間はスリープ状態になり、スリープ時間中はトランザクションが発生しない。 In general, a low-performance node 100 (e.g., an IoT device such as a sensor device) generates transactions less frequently than a high-performance node 100. For example, a low-performance node 100 communicates intermittently to reduce power consumption, goes into a sleep state when not communicating, and no transactions occur during the sleep time.
 性能の高いノード100により形成される上位階層グループであるグループ(A)内では、下位階層グループに比べて、台帳(A)が頻繁に更新され得るとともに、台帳(A)のデータ量が大きくなり易い。一方、性能の低いノード100により形成されるグループ(B)内では、台帳(B)の更新頻度を抑制できるとともに、台帳(B)のデータ量の増大を抑制できる。同様に、性能の低いノード100により形成されるグループ(C)内では、台帳(C)の更新頻度を抑制できるとともに、台帳(C)のデータ量の増大を抑制できる。同様に、性能の低いノード100により形成されるグループ(D)内では、台帳(D)の更新頻度を抑制できるとともに、台帳(D)のデータ量の増大を抑制できる。 In group (A), which is an upper hierarchical group formed by high performance nodes 100, the ledger (A) may be updated more frequently and the amount of data in the ledger (A) is more likely to become large than in lower hierarchical groups. On the other hand, in group (B) formed by low performance nodes 100, the frequency of updates to the ledger (B) can be suppressed and the increase in the amount of data in the ledger (B) can be suppressed. Similarly, in group (C) formed by low performance nodes 100, the frequency of updates to the ledger (C) can be suppressed and the increase in the amount of data in the ledger (C) can be suppressed. Similarly, in group (D) formed by low performance nodes 100, the frequency of updates to the ledger (D) can be suppressed and the increase in the amount of data in the ledger (D) can be suppressed.
 しかしながら、グループごとに個別に台帳を管理することで台帳の更新頻度及び肥大化を抑制できるが、各グループの台帳の内容が他グループの台帳とリンクしていないと、ブロックチェーン技術における信頼性が低下し得る。そこで、一実施形態では、グループ間で台帳の内容をリンクさせることで、台帳の更新頻度及び肥大化を抑制しつつ信頼性の低下を抑制可能とする。 However, while managing a ledger for each group individually can reduce the frequency of ledger updates and the size of the ledger, if the contents of each group's ledger are not linked to the ledgers of other groups, the reliability of blockchain technology may decrease. Therefore, in one embodiment, by linking the contents of ledgers between groups, it is possible to reduce the frequency of ledger updates and the size of the ledger while also preventing a decrease in reliability.
 具体的には、第1台帳を管理する1つ又は複数のノード100により形成される第1グループと、第1台帳と異なる第2台帳を管理する1つ又は複数のノード100により形成される第2グループと、を含む複数のグループにより構成される階層構造ネットワーク10において、第2グループに属するノード100は、第2台帳に関する台帳情報を第1グループに通知する。第1グループに属する各ノード100は、通知された台帳情報を第1台帳の一部として管理する。これにより、グループ間で台帳の内容をリンクさせることができる。 Specifically, in a hierarchical network 10 made up of multiple groups including a first group formed by one or more nodes 100 managing a first ledger, and a second group formed by one or more nodes 100 managing a second ledger different from the first ledger, a node 100 belonging to the second group notifies the first group of ledger information related to the second ledger. Each node 100 belonging to the first group manages the notified ledger information as part of the first ledger. This makes it possible to link the contents of ledgers between groups.
 ここで、第1グループは上位階層グループ及び下位階層グループのうち一方であり、第2グループは上位階層グループ及び下位階層グループのうち他方である。すなわち、直接的な通信接続を有するグループ間で台帳をリンクさせる。一方、下位階層グループ間、すなわち、直接的な通信接続を有しないグループ間では、台帳をリンクさせない。これにより、1つの下位階層グループにおける台帳の更新が他の下位階層グループにおける台帳に影響を与えずに、下位階層グループ間で独立して台帳を管理可能になる。 Here, the first group is one of the upper hierarchical group and the lower hierarchical group, and the second group is the other of the upper hierarchical group and the lower hierarchical group. In other words, ledgers are linked between groups that have a direct communication connection. On the other hand, ledgers are not linked between lower hierarchical groups, i.e., between groups that do not have a direct communication connection. This makes it possible to manage ledgers independently between lower hierarchical groups, without updates to the ledger in one lower hierarchical group affecting the ledgers in other lower hierarchical groups.
 (3)台帳の管理方法
 次に、図7乃至図9を参照して、一実施形態に係る台帳の管理方法について説明する。図7に示すように、上位階層台帳を管理する上位階層グループに属するノード100は、当該上位階層グループ内のトランザクション及び下位階層グループ内のトランザクションのそれぞれに応じて、当該上位階層台帳を更新する。
(3) Ledger Management Method Next, a ledger management method according to one embodiment will be described with reference to Fig. 7 to Fig. 9. As shown in Fig. 7, a node 100 belonging to an upper hierarchical group that manages an upper hierarchical ledger updates the upper hierarchical ledger in accordance with transactions within the upper hierarchical group and transactions within a lower hierarchical group.
 例えば、上位階層グループであるグループ(A)200Aに属するノード100(ノード100A、100B1、100C1、及び100D1)は、グループ(A)200A内のトランザクションに応じて、上位階層台帳である台帳(A)を更新するだけではなく、いずれかの下位階層グループ(グループ(B)200B、グループ(C)200C、グループ(D)200D)内のトランザクションに応じて台帳(A)を更新する。図7においては、グループ(A)200Aに属するノード100(ノード100A、100B1、100C1、及び100D1)が、グループ(B)200Bにおいて台帳(B)が更新されたことに応じて台帳(A)を更新する一例を示している。 For example, the nodes 100 (nodes 100A, 100B1, 100C1, and 100D1) belonging to group (A) 200A, which is a higher hierarchical group, not only update ledger (A), which is a higher hierarchical ledger, in response to transactions within group (A) 200A, but also update ledger (A) in response to transactions within any of the lower hierarchical groups (group (B) 200B, group (C) 200C, group (D) 200D). Figure 7 shows an example in which the nodes 100 (nodes 100A, 100B1, 100C1, and 100D1) belonging to group (A) 200A update ledger (A) in response to an update to ledger (B) in group (B) 200B.
 上位階層グループにおける上位階層台帳の更新頻度は、階層構造を有しない一般的な階層構造ネットワーク10(図1参照)における台帳の更新頻度と同様である。下位階層グループ(グループ(B)200B、グループ(C)200C、グループ(D)200D)内のトランザクションが上位階層台帳である台帳(A)に反映されることにより、ブロックチェーン技術における信頼性を維持できる。 The frequency with which the upper hierarchical ledger in the upper hierarchical group is updated is the same as the frequency with which the ledger is updated in a general hierarchical network 10 (see FIG. 1) that does not have a hierarchical structure. By reflecting transactions in the lower hierarchical groups (group (B) 200B, group (C) 200C, group (D) 200D) in ledger (A), which is the upper hierarchical ledger, reliability in blockchain technology can be maintained.
 一方、図8に示すように、下位階層台帳を管理する下位階層グループに属するノード100は、上位階層グループ内のトランザクションに応じて当該下位階層台帳を更新せずに、当該下位階層グループ内のトランザクションに応じて下位階層台帳を更新する。すなわち、上位階層台帳が更新されても、下位階層台帳は更新されない。これにより、下位階層グループにおける下位階層台帳の更新頻度を低減できる。 On the other hand, as shown in FIG. 8, a node 100 belonging to a lower hierarchy group that manages a lower hierarchy ledger does not update the lower hierarchy ledger in response to transactions in a higher hierarchy group, but updates the lower hierarchy ledger in response to transactions in the lower hierarchy group. In other words, even if the higher hierarchy ledger is updated, the lower hierarchy ledger is not updated. This makes it possible to reduce the frequency of updates to the lower hierarchy ledger in the lower hierarchy group.
 例えば、下位階層グループであるグループ(B)200Bに属するノード100B(ノード100B1、100B2)は、グループ(B)200B内のトランザクションに応じて下位階層台帳である台帳(B)を更新するが、グループ(A)200A内のトランザクションに応じて台帳(B)を更新しない。同様に、下位階層グループであるグループ(C)200Cに属するノード100C(ノード100C1、100C2)は、グループ(C)200C内のトランザクションに応じて下位階層台帳である台帳(C)を更新するが、グループ(A)200A内のトランザクションに応じて台帳(C)を更新しない。同様に、下位階層グループであるグループ(D)200Dに属するノード100D(ノード100D1、100D2)は、グループ(D)200D内のトランザクションに応じて下位階層台帳である台帳(D)を更新するが、グループ(A)200A内のトランザクションに応じて台帳(D)を更新しない。 For example, nodes 100B (nodes 100B1, 100B2) belonging to group (B) 200B, which is a lower hierarchical group, update ledger (B), which is a lower hierarchical ledger, in response to transactions within group (B) 200B, but do not update ledger (B) in response to transactions within group (A) 200A. Similarly, nodes 100C (nodes 100C1, 100C2) belonging to group (C) 200C, which is a lower hierarchical group, update ledger (C), which is a lower hierarchical ledger, in response to transactions within group (C) 200C, but do not update ledger (C) in response to transactions within group (A) 200A. Similarly, nodes 100D (nodes 100D1, 100D2) belonging to group (D) 200D, which is a lower hierarchical group, update ledger (D), which is a lower hierarchical ledger, in response to transactions within group (D) 200D, but do not update ledger (D) in response to transactions within group (A) 200A.
 また、図7に示すように、下位階層台帳を管理する下位階層グループに属するノード100は、他の下位階層グループ内のトランザクションに応じて当該下位階層台帳を更新しない。例えば、下位階層グループであるグループ(B)200Bにおいて台帳(B)が更新されても、他の下位階層グループであるグループ(C)200C及びグループ(D)200Dは台帳(C)及び台帳(D)を更新しない。これにより、下位階層グループにおける下位階層台帳の更新頻度を低減できる。 Also, as shown in FIG. 7, a node 100 belonging to a lower hierarchical group that manages a lower hierarchical ledger does not update the lower hierarchical ledger in response to transactions in other lower hierarchical groups. For example, even if ledger (B) is updated in group (B) 200B, which is a lower hierarchical group, other lower hierarchical groups, group (C) 200C and group (D) 200D, do not update ledgers (C) and (D). This reduces the frequency of updates to the lower hierarchical ledger in the lower hierarchical groups.
 このように、下位階層グループでトランザクションが発生した場合、上位階層グループで上位階層台帳の更新が発生するが、それ以外の下位階層グループでは台帳の更新は不要である。また、上位階層グループでトランザクションが発生しても下位階層グループで下位階層台帳の更新は不要である。これにより全体の計算量を削減することができる。よって、計算処理能力及び/又はメモリ容量の少ない機器に対してもブロックチェーン技術を適用可能になる。 In this way, when a transaction occurs in a lower hierarchical group, the higher hierarchical ledger is updated in the higher hierarchical group, but no ledger update is required in other lower hierarchical groups. Also, even if a transaction occurs in a higher hierarchical group, the lower hierarchical ledger does not need to be updated in the lower hierarchical groups. This reduces the overall amount of calculations. Therefore, blockchain technology can be applied to devices with low computing power and/or memory capacity.
 図9は、一実施形態に係る階層構造ネットワーク10を一般的なネットワーク構成(図1参照)と比較した場合の計算量の削減効果を説明するための図である。ここでは、2分木による階層構造を採用する一例を示している。また、n個(n≧4)のノード100が存在し、各ノード100におけるトランザクション発生頻度が同等であるものとする。 FIG. 9 is a diagram for explaining the effect of reducing the amount of calculations when a hierarchical structure network 10 according to one embodiment is compared with a general network configuration (see FIG. 1). Here, an example is shown in which a hierarchical structure using a binary tree is adopted. Also, it is assumed that there are n nodes 100 (n≧4), and that the transaction occurrence frequency in each node 100 is the same.
 図9に示すように、最上位階層(Layer1)のノード100は、すべてのノードのトランザクションの計算が必要であるため、一般的なブロックチェーン技術と同じ計算頻度である。一方、最下層のノード100は、自身の参加しているグループのトランザクションについてのみ計算が必要である。2分木の場合、各グループ内のノード数は3であるため、3/nの計算頻度に抑制できる。 As shown in Figure 9, the node 100 in the top layer (Layer 1) needs to calculate transactions for all nodes, so the calculation frequency is the same as that of general blockchain technology. On the other hand, the node 100 in the bottom layer only needs to calculate transactions for the group in which it participates. In the case of a binary tree, the number of nodes in each group is 3, so the calculation frequency can be reduced to 3/n.
 例えば、最上位階層以外が2層構造(n=7)である場合、全体の約38%の計算が削減可能である。最上位階層以外が3層構造(n=15)である場合、全体の約61%の計算が削減可能である。nが十分大きい(limit→∞)場合、全体の約67%の計算が削減可能である。すなわち、階層が下になればなるほど、計算頻度を削減できる。よって、一般的なブロックチェーン技術と比較して、通信量及び計算回数を抑制することができる。そのため、一般的なブロックチェーン技術では参加することができない性能の機器でもブロックチェーン技術を活用することができる。 For example, if all layers except the top one have a two-layer structure (n=7), it is possible to reduce calculations by approximately 38%. If all layers except the top one have a three-layer structure (n=15), it is possible to reduce calculations by approximately 61%. If n is sufficiently large (limit→∞), it is possible to reduce calculations by approximately 67%. In other words, the lower the layer, the more the calculation frequency can be reduced. Therefore, compared to general blockchain technology, it is possible to reduce communication volume and the number of calculations. Therefore, blockchain technology can be used even on devices with performance that is not capable of participating in general blockchain technology.
 なお、図9に示すようなネットワーク構成において、直接的な通信接続を有する2つのグループ間で上位階層グループ及び下位階層グループが構成される。例えば、グループ200Bを基準とすると、グループ200Aが上位階層グループであり、グループ200D及びグループ200Eのそれぞれが下位階層グループである。グループ200D及びグループ200Eを基準とすると、グループ200Bが上位階層グループである。同様に、グループ200Cを基準とすると、グループ200Aが上位階層グループであり、グループ200F及びグループ200Gのそれぞれが下位階層グループである。グループ200F及びグループ200Gを基準とすると、グループ200Cが上位階層グループである。 In the network configuration shown in FIG. 9, an upper hierarchical group and a lower hierarchical group are formed between two groups that have a direct communication connection. For example, when group 200B is used as a reference, group 200A is the upper hierarchical group, and groups 200D and 200E are each lower hierarchical groups. When groups 200D and 200E are used as references, group 200B is the upper hierarchical group. Similarly, when group 200C is used as a reference, group 200A is the upper hierarchical group, and groups 200F and 200G are each lower hierarchical groups. When groups 200F and 200G are used as references, group 200C is the upper hierarchical group.
 (4)上位階層台帳と下位階層台帳とのリンク
 次に、図10乃至図13を参照して、一実施形態に係る上位階層台帳と下位階層台帳とのリンクについて説明する。図10に示すように、台帳(A)を管理するノード100(ノード100A、100B1)により形成されるグループ(A)200Aと、台帳(B)を管理するノード100(ノード100B1、100B2)により形成されるグループ(B)200Bと、により階層構造ネットワーク10が構成されている。
(4) Link Between Upper Hierarchy Ledgers and Lower Hierarchy Ledgers Next, a link between an upper hierarchy ledger and a lower hierarchy ledger according to one embodiment will be described with reference to Fig. 10 to Fig. 13. As shown in Fig. 10, a hierarchical structure network 10 is configured by a group (A) 200A formed by nodes 100 (nodes 100A, 100B1) that manage a ledger (A) and a group (B) 200B formed by nodes 100 (nodes 100B1, 100B2) that manage a ledger (B).
 グループ(A)200Aに属するノード100は、台帳(A)に関する台帳情報をグループ(B)200Bに通知する。例えば、グループ(A)200Aに属するノード100B1は、台帳(A)に関する台帳情報をグループ(B)200B内の他ノード100B2に通知する。そして、グループ(B)200Bに属する各ノード100(ノード100B1、100B2)は、当該台帳情報を台帳(B)の一部として管理する。このように、下位階層台帳を管理する下位階層グループに属する各ノード100は、上位階層台帳に関する台帳情報を当該下位階層台帳の一部として管理する。これにより、下位階層台帳を上位階層台帳とリンクさせることができる。 Node 100 belonging to group (A) 200A notifies group (B) 200B of ledger information related to ledger (A). For example, node 100B1 belonging to group (A) 200A notifies other node 100B2 in group (B) 200B of ledger information related to ledger (A). Then, each node 100 (nodes 100B1, 100B2) belonging to group (B) 200B manages the ledger information as part of ledger (B). In this way, each node 100 belonging to a lower hierarchical group that manages a lower hierarchical ledger manages ledger information related to a higher hierarchical ledger as part of the lower hierarchical ledger. This makes it possible to link the lower hierarchical ledger with the higher hierarchical ledger.
 例えば、下位階層台帳である台帳(B)の一部として管理する台帳情報は、上位階層台帳である台帳(A)を示すチェーンIDを含んでもよい。台帳(B)の一部として管理する台帳情報は、台帳(A)のブロックから計算されるハッシュ値を含んでもよい。台帳(B)の一部として管理する台帳情報は、台帳(A)のブロック番号を示すブロックハイトを含んでもよい。ここで、グループ(B)に属する各ノード100(ノード100B1、100B2)は、当該台帳情報を台帳(B)のブロックにおけるヘッダ部分(ブロックヘッダ)に格納してもよい。これにより、グループ(B)200Bにおける検算時に、台帳(A)を特定して台帳(A)のどのブロックとリンクしているかを検索することが容易になるとともに、検算結果等の情報をグループ(B)200Bからグループ(A)200Aに伝達することが容易になる。 For example, ledger information managed as part of ledger (B), which is a lower-level ledger, may include a chain ID indicating ledger (A), which is a higher-level ledger. Ledger information managed as part of ledger (B) may include a hash value calculated from a block of ledger (A). Ledger information managed as part of ledger (B) may include a block height indicating a block number of ledger (A). Here, each node 100 (nodes 100B1, 100B2) belonging to group (B) may store the ledger information in the header portion (block header) of a block of ledger (B). This makes it easy to identify ledger (A) and search for which block of ledger (A) it is linked to when checking calculations in group (B) 200B, and also makes it easy to transmit information such as the check results from group (B) 200B to group (A) 200A.
 一方、グループ(B)200Bに属するノード100は、台帳(B)に関する台帳情報をグループ(A)200Aに通知する。例えば、グループ(B)200Bに属するノード100B1は、台帳(B)に関する台帳情報をグループ(A)200A内の他ノード100Aに通知する。そして、グループ(A)200Aに属する各ノード100(ノード100B1、100A)は、当該台帳情報を台帳(A)の一部として管理する。このように、上位階層台帳を管理する上位階層グループに属する各ノード100は、下位階層台帳に関する台帳情報を当該上位階層台帳の一部として管理する。これにより、上位階層台帳を下位階層台帳とリンクさせることができる。 Meanwhile, node 100 belonging to group (B) 200B notifies group (A) 200A of ledger information related to ledger (B). For example, node 100B1 belonging to group (B) 200B notifies other node 100A in group (A) 200A of ledger information related to ledger (B). Then, each node 100 (nodes 100B1, 100A) belonging to group (A) 200A manages the ledger information as part of ledger (A). In this way, each node 100 belonging to the upper hierarchical group that manages the upper hierarchical ledger manages ledger information related to the lower hierarchical ledger as part of the upper hierarchical ledger. This makes it possible to link the upper hierarchical ledger with the lower hierarchical ledger.
 例えば、上位階層台帳である台帳(A)の一部として管理する台帳情報は、下位階層台帳である台帳(B)を示すチェーンIDを含んでもよい。台帳(A)の一部として管理する台帳情報は、台帳(B)のブロックから計算されるハッシュ値を含んでもよい。台帳(A)の一部として管理する台帳情報は、台帳(B)のブロック番号を示すブロックハイトを含んでもよい。ここで、グループ(A)に属する各ノード100(ノード100B1、100A)は、当該台帳情報を台帳(A)のブロックにおけるトランザクションデータ部分に格納してもよい。これにより、台帳(B)の更新頻度が少なく、その長さが十分に長くなくても、十分に長い台帳(A)と交わることで、セキュリティの強度の低下を抑制できる。例えば、グループ(A)200Aにおける検算時に、台帳(B)のフォークプロテクションの確認をすることが容易になる。つまり、間違った(偽物の)ブロックチェーンが分岐せず、正しい台帳(B)の確認をすることが容易になる。 For example, the ledger information managed as part of the ledger (A), which is a higher-level ledger, may include a chain ID indicating the ledger (B), which is a lower-level ledger. The ledger information managed as part of the ledger (A) may include a hash value calculated from a block of the ledger (B). The ledger information managed as part of the ledger (A) may include a block height indicating a block number of the ledger (B). Here, each node 100 (nodes 100B1 and 100A) belonging to the group (A) may store the ledger information in the transaction data portion of a block of the ledger (A). As a result, even if the ledger (B) is updated infrequently and its length is not sufficiently long, it is possible to suppress a decrease in security strength by intersecting with the ledger (A), which is sufficiently long. For example, it becomes easier to check the fork protection of the ledger (B) when verifying calculations in the group (A) 200A. In other words, an incorrect (fake) blockchain does not branch out, and it becomes easier to check the correct ledger (B).
 図11は、グループ(A)200Aが形成された後、新たにグループ(A)200Aの下位にグループ(B)200Bが形成される場合における動作例を示す図である。ここでは、グループ(A)200Aに属するノードをノード(A)と称し、グループ(B)200Bに属するノードをノード(B)と称する。但し、親ノードはグループ(A)200A及びグループ(B)200Bの両グループに属するため、図11の動作は同一のノード(親ノード)内で実行されてもよい。 FIG. 11 is a diagram showing an example of the operation when a group (B) 200B is newly formed below group (A) 200A after group (A) 200A is formed. Here, a node belonging to group (A) 200A is called node (A), and a node belonging to group (B) 200B is called node (B). However, since a parent node belongs to both group (A) 200A and group (B) 200B, the operation of FIG. 11 may be executed within the same node (parent node).
 図11に示すように、第1に、台帳(A)を管理するノード(A)は、m-1番目のブロックを台帳(A)に追加することで台帳(A)を更新する。当該m-1番目のブロックは、台帳(A)の前のブロックから計算されたハッシュ値を含むブロックヘッダと、グループ(A)200Aにおける少なくとも1つのトランザクションに関するトランザクションデータとを有する。当該ブロックヘッダは、台帳(A)を示すチェーンID(親チェーンID)と、当該ブロックのブロック番号であるm-1を示すブロックハイトとの少なくとも一方をさらに含んでもよい。 As shown in FIG. 11, first, node (A) managing ledger (A) updates ledger (A) by adding the m-1th block to ledger (A). The m-1th block has a block header including a hash value calculated from the previous block of ledger (A) and transaction data for at least one transaction in group (A) 200A. The block header may further include at least one of a chain ID (parent chain ID) indicating ledger (A) and a block height indicating m-1, which is the block number of the block.
 第2に、グループ(B)200Bが形成される。台帳(B)を管理するノード(B)は、台帳(B)における最初のブロック、すなわち、0番目のブロックを台帳(B)に追加することで台帳(B)を更新(生成)する。当該0番目のブロックは、そのブロックヘッダ部分に、当該0番目のブロックを追加する時点で最新の台帳(A)のブロック、すなわち、台帳(A)のm-1番目のブロックにおけるブロックヘッダを、台帳(A)に関する台帳情報として含む。また、当該0番目のブロックは、そのトランザクションデータ部分に、グループ(B)200Bにおける少なくとも1つのトランザクションに関するトランザクションデータを含む。ここで、当該トランザクションは、例えば、グループ(B)200Bにおけるノード追加(ノードjoin)であってもよい。当該トランザクションデータは、当該追加されたノードのノードパラメータを含んでもよい。 Secondly, group (B) 200B is formed. Node (B) that manages ledger (B) updates (generates) ledger (B) by adding the first block in ledger (B), i.e., the 0th block, to ledger (B). The 0th block includes, in its block header portion, the block of ledger (A) that is the latest at the time of adding the 0th block, i.e., the block header of the m-1th block of ledger (A), as ledger information related to ledger (A). Furthermore, the 0th block includes, in its transaction data portion, transaction data related to at least one transaction in group (B) 200B. Here, the transaction may be, for example, a node addition (node join) in group (B) 200B. The transaction data may include node parameters of the added node.
 第3に、台帳(A)を管理するノード(A)は、m番目のブロックを台帳(A)に追加することで台帳(A)を更新する。当該m番目のブロックは、そのブロックヘッダ部分に、台帳(A)の前のブロックであるm-1番目のブロックから計算されたハッシュ値を含む。また、当該m番目のブロックは、そのトランザクションデータ部分に、グループ(A)200Aにおける少なくとも1つのトランザクションに関するトランザクションデータと、台帳(B)に関する台帳情報とを含む。当該台帳情報は、m番目のブロックを追加する時点で最新の台帳(B)のブロック、すなわち、台帳(B)の0番目のブロックから計算されたハッシュ値と、台帳(B)を示すチェーンIDとを含む。当該台帳情報は、0番目のブロックのブロック番号である0を示すブロックハイトをさらに含んでもよい。 Thirdly, node (A) managing ledger (A) updates ledger (A) by adding the mth block to ledger (A). The mth block includes in its block header a hash value calculated from the (m-1)th block, which is the previous block of ledger (A). The mth block also includes in its transaction data portion transaction data relating to at least one transaction in group (A) 200A and ledger information relating to ledger (B). The ledger information includes a hash value calculated from the latest block of ledger (B) at the time of adding the mth block, i.e., the 0th block of ledger (B), and a chain ID indicating ledger (B). The ledger information may further include a block height indicating 0, which is the block number of the 0th block.
 第4に、台帳(B)を管理するノード(B)は、台帳(B)における1番目のブロックを台帳(B)に追加することで台帳(B)を更新する。当該1番目のブロックは、そのブロックヘッダ部分に、当該1番目のブロックを追加する時点で最新の台帳(A)のブロックにおけるブロックヘッダを、台帳(A)に関する台帳情報として含む。また、当該1番目のブロックは、そのブロックヘッダ部分に、台帳(B)の0番目のブロックから計算されたハッシュ値を含む。また、当該1番目のブロックは、そのトランザクションデータ部分に、グループ(B)200Bにおける少なくとも1つのトランザクションに関するトランザクションデータを含む。ここで、当該トランザクションは、例えば、グループ(B)200Bにおけるノード追加(ノードjoin)であってもよい。当該トランザクションデータは、当該追加されたノードのノードパラメータを含んでもよい。 Fourthly, node (B) managing ledger (B) updates ledger (B) by adding the first block in ledger (B) to ledger (B). The first block includes, in its block header portion, the block header of the latest block in ledger (A) at the time of adding the first block, as ledger information related to ledger (A). The first block also includes, in its block header portion, a hash value calculated from the 0th block of ledger (B). The first block also includes, in its transaction data portion, transaction data related to at least one transaction in group (B) 200B. Here, the transaction may be, for example, a node addition (node join) in group (B) 200B. The transaction data may include node parameters of the added node.
 第5に、台帳(A)を管理するノード(A)は、n番目のブロックを台帳(A)に追加することで台帳(A)を更新する。当該n番目のブロックは、そのブロックヘッダ部分に、台帳(A)の前のブロックであるn-1番目のブロックから計算されたハッシュ値を含む。また、当該n番目のブロックは、そのトランザクションデータ部分に、グループ(A)200Aにおける少なくとも1つのトランザクションに関するトランザクションデータと、台帳(B)に関する台帳情報とを含む。当該台帳情報は、n番目のブロックを追加する時点で最新の台帳(B)のブロック、すなわち、台帳(B)の1番目のブロックから計算されたハッシュ値と、台帳(B)を示すチェーンIDとを含む。当該台帳情報は、当該1番目のブロックのブロック番号である1を示すブロックハイトをさらに含んでもよい。 Fifth, node (A) managing ledger (A) updates ledger (A) by adding the nth block to ledger (A). The nth block includes, in its block header portion, a hash value calculated from the n-1th block, which is the previous block of ledger (A). The nth block also includes, in its transaction data portion, transaction data related to at least one transaction in group (A) 200A and ledger information related to ledger (B). The ledger information includes a hash value calculated from the latest block of ledger (B) at the time of adding the nth block, i.e., the first block of ledger (B), and a chain ID indicating ledger (B). The ledger information may further include a block height indicating 1, which is the block number of the first block.
 図12及び図13は、グループ(A)200Aが形成された後、新たにグループ(A)200Aの下位にグループ(B)200Bが形成され、さらにその後、新たにグループ(A)200Aの下位にグループ(C)200Cが形成される場合における動作例を示す図である。ここでは、グループ(A)200Aに属するノードをノード(A)と称し、グループ(B)200Bに属するノードをノード(B)と称し、グループ(C)200Cに属するノードをノード(C)と称する。ここでは、図11の動作との相違点について主として説明する。 FIGS. 12 and 13 are diagrams showing an example of operation in the case where, after group (A) 200A is formed, a new group (B) 200B is formed below group (A) 200A, and then a new group (C) 200C is formed below group (A) 200A. Here, a node belonging to group (A) 200A is referred to as node (A), a node belonging to group (B) 200B is referred to as node (B), and a node belonging to group (C) 200C is referred to as node (C). Here, differences from the operation in FIG. 11 will be mainly explained.
 図13に示すように、第1に、台帳(A)を管理するノード(A)は、m-1番目のブロックを台帳(A)に追加することで台帳(A)を更新する。第2に、グループ(B)200Bが形成される。台帳(B)を管理するノード(B)は、台帳(B)における最初のブロック、すなわち、0番目のブロックを台帳(B)に追加することで台帳(B)を更新(生成)する。第3に、台帳(A)を管理するノード(A)は、m番目のブロックを台帳(A)に追加することで台帳(A)を更新する。このような動作は、図11の動作と同様である。 As shown in FIG. 13, first, node (A) managing ledger (A) updates ledger (A) by adding the m-1th block to ledger (A). Second, group (B) 200B is formed. Node (B) managing ledger (B) updates (generates) ledger (B) by adding the first block in ledger (B), i.e., the 0th block, to ledger (B). Third, node (A) managing ledger (A) updates ledger (A) by adding the mth block to ledger (A). This operation is similar to that in FIG. 11.
 第4に、台帳(A)を管理するノード(A)は、n-1番目のブロックを台帳(A)に追加することで台帳(A)を更新する。当該n-1番目のブロックは、台帳(A)の前のブロックから計算されたハッシュ値を含むブロックヘッダと、グループ(A)200Aにおける少なくとも1つのトランザクションに関するトランザクションデータとを有する。当該ブロックヘッダは、台帳(A)を示すチェーンID(親チェーンID)と、当該ブロックのブロック番号であるn-1を示すブロックハイトとの少なくとも一方をさらに含んでもよい。 Fourth, node (A) managing ledger (A) updates ledger (A) by adding the n-1th block to ledger (A). The n-1th block has a block header including a hash value calculated from the previous block of ledger (A) and transaction data for at least one transaction in group (A) 200A. The block header may further include at least one of a chain ID (parent chain ID) indicating ledger (A) and a block height indicating n-1, which is the block number of the block.
 第5に、グループ(C)200Cが形成される。台帳(C)を管理するノード(C)は、台帳(C)における最初のブロック、すなわち、0番目のブロックを台帳(C)に追加することで台帳(C)を更新(生成)する。当該0番目のブロックは、そのブロックヘッダ部分に、当該0番目のブロックを追加する時点で最新の台帳(A)のブロック、すなわち、台帳(A)のn-1番目のブロックにおけるブロックヘッダを、台帳(A)に関する台帳情報として含む。また、当該0番目のブロックは、そのトランザクションデータ部分に、グループ(C)200Cにおける少なくとも1つのトランザクションに関するトランザクションデータを含む。ここで、当該トランザクションは、例えば、グループ(C)200Cにおけるノード追加(ノードjoin)であってもよい。当該トランザクションデータは、当該追加されたノードのノードパラメータを含んでもよい。 Fifth, group (C) 200C is formed. Node (C) that manages ledger (C) updates (generates) ledger (C) by adding the first block in ledger (C), i.e., the 0th block, to ledger (C). The 0th block includes, in its block header portion, the block of ledger (A) that is the latest at the time of adding the 0th block, i.e., the block header of the n-1th block of ledger (A), as ledger information related to ledger (A). Furthermore, the 0th block includes, in its transaction data portion, transaction data related to at least one transaction in group (C) 200C. Here, the transaction may be, for example, a node addition (node join) in group (C) 200C. The transaction data may include node parameters of the added node.
 第6に、台帳(A)を管理するノード(A)は、n番目のブロックを台帳(A)に追加することで台帳(A)を更新する。当該n番目のブロックは、そのブロックヘッダ部分に、台帳(A)の前のブロックであるn-1番目のブロックから計算されたハッシュ値を含む。また、当該n番目のブロックは、そのトランザクションデータ部分に、グループ(A)200Aにおける少なくとも1つのトランザクションに関するトランザクションデータと、台帳(C)に関する台帳情報とを含む。当該台帳情報は、n番目のブロックを追加する時点で最新の台帳(C)のブロック、すなわち、台帳(C)の0番目のブロックから計算されたハッシュ値と、台帳(C)を示すチェーンIDとを含む。当該台帳情報は、当該0番目のブロックのブロック番号である0を示すブロックハイトをさらに含んでもよい。 Sixth, node (A) managing ledger (A) updates ledger (A) by adding the nth block to ledger (A). The nth block includes, in its block header portion, a hash value calculated from the n-1th block, which is the previous block of ledger (A). The nth block also includes, in its transaction data portion, transaction data related to at least one transaction in group (A) 200A and ledger information related to ledger (C). The ledger information includes a hash value calculated from the latest block of ledger (C) at the time of adding the nth block, i.e., the 0th block of ledger (C), and a chain ID indicating ledger (C). The ledger information may further include a block height indicating 0, which is the block number of the 0th block.
 第7に、台帳(C)を管理するノード(C)は、台帳(C)における1番目のブロックを台帳(C)に追加することで台帳(C)を更新する。当該1番目のブロックは、そのブロックヘッダ部分に、当該1番目のブロックを追加する時点で最新の台帳(A)のブロック、すなわち、台帳(A)のn番目のブロックにおけるブロックヘッダを、台帳(A)に関する台帳情報として含む。また、当該1番目のブロックは、そのトランザクションデータ部分に、グループ(C)200Cにおける少なくとも1つのトランザクションに関するトランザクションデータを含む。ここで、当該トランザクションは、例えば、グループ(C)200Cにおけるノード追加(ノードjoin)であってもよい。当該トランザクションデータは、当該追加されたノードのノードパラメータを含んでもよい。 Seventh, node (C) managing ledger (C) updates ledger (C) by adding the first block in ledger (C) to ledger (C). The first block includes, in its block header portion, the block header of the latest block of ledger (A) at the time of adding the first block, i.e., the nth block of ledger (A), as ledger information related to ledger (A). The first block also includes, in its transaction data portion, transaction data related to at least one transaction in group (C) 200C. Here, the transaction may be, for example, a node addition (node join) in group (C) 200C. The transaction data may include node parameters of the added node.
 第8に、台帳(B)を管理するノード(B)は、台帳(B)における1番目のブロックを台帳(B)に追加することで台帳(B)を更新する。当該1番目のブロックは、そのブロックヘッダ部分に、当該1番目のブロックを追加する時点で最新の台帳(A)のブロック、すなわち、台帳(A)のn番目のブロックにおけるブロックヘッダを、台帳(A)に関する台帳情報として含む。また、当該1番目のブロックは、そのトランザクションデータ部分に、グループ(B)200Bにおける少なくとも1つのトランザクションに関するトランザクションデータを含む。ここで、当該トランザクションは、例えば、グループ(B)200Bにおけるノード追加(ノードjoin)であってもよい。当該トランザクションデータは、当該追加されたノードのノードパラメータを含んでもよい。 Eighth, node (B) managing ledger (B) updates ledger (B) by adding the first block in ledger (B) to ledger (B). The first block includes, in its block header portion, the block header of the latest block of ledger (A) at the time of adding the first block, i.e., the nth block of ledger (A), as ledger information related to ledger (A). The first block also includes, in its transaction data portion, transaction data related to at least one transaction in group (B) 200B. Here, the transaction may be, for example, a node addition (node join) in group (B) 200B. The transaction data may include node parameters of the added node.
 第9に、台帳(A)を管理するノード(A)は、n+1番目のブロックを台帳(A)に追加することで台帳(A)を更新する。当該n+1番目のブロックは、そのブロックヘッダ部分に、台帳(A)の前のブロックであるn番目のブロックから計算されたハッシュ値を含む。また、当該n+1番目のブロックは、そのトランザクションデータ部分に、グループ(A)200Aにおける少なくとも1つのトランザクションに関するトランザクションデータと、台帳(B)に関する台帳情報と、台帳(C)に関する台帳情報とを含む。当該台帳(B)に関する台帳情報は、n+1番目のブロックを追加する時点で最新の台帳(B)のブロック、すなわち、台帳(B)の1番目のブロックから計算されたハッシュ値と、台帳(B)を示すチェーンIDとを含む。当該台帳情報は、当該台帳(B)の1番目のブロックのブロック番号である0を示すブロックハイトをさらに含んでもよい。当該台帳(C)に関する台帳情報は、n+1番目のブロックを追加する時点で最新の台帳(C)のブロック、すなわち、台帳(C)の1番目のブロックから計算されたハッシュ値と、台帳(C)を示すチェーンIDとを含む。当該台帳情報は、当該台帳(C)の1番目のブロックのブロック番号である0を示すブロックハイトをさらに含んでもよい。 Ninth, node (A) managing ledger (A) updates ledger (A) by adding the n+1th block to ledger (A). The n+1th block includes, in its block header portion, a hash value calculated from the nth block, which is the previous block of ledger (A). The n+1th block also includes, in its transaction data portion, transaction data related to at least one transaction in group (A) 200A, ledger information related to ledger (B), and ledger information related to ledger (C). The ledger information related to ledger (B) includes a hash value calculated from the latest block of ledger (B) at the time of adding the n+1th block, i.e., the first block of ledger (B), and a chain ID indicating ledger (B). The ledger information may further include a block height indicating 0, which is the block number of the first block of ledger (B). The ledger information for the ledger (C) includes a hash value calculated from the latest block of the ledger (C) at the time of adding the n+1th block, i.e., the first block of the ledger (C), and a chain ID indicating the ledger (C). The ledger information may further include a block height indicating 0, which is the block number of the first block of the ledger (C).
 (5)下位階層グループのグループ分け
 次に、図14及び図15を参照して、一実施形態に係る下位階層グループのグループ分けについて説明する。図14に示すように、階層構造ネットワーク10は、複数の下位階層グループであるグループ(B)200B乃至グループ(D)200Dを有する。当該複数の下位階層グループに属するノード100は、当該ノード100のスリープ時間の長さに応じて、当該複数の下位階層グループのうち1つに配置される。上述のように、IoT機器等の低性能ノードは、消費電力を低減するために通信を間欠的に行い、通信を行わない間はスリープ状態(待機状態)になり、スリープ時間(待機時間)中はトランザクションが発生しない。2下位階層目以下ではスリープ時間の範囲によるグループ分けを行うことにより、スリープ時間の長いグループ及び短いグループにグループ化できる。
(5) Grouping of Lower Hierarchical Groups Next, with reference to FIG. 14 and FIG. 15, grouping of lower hierarchical groups according to one embodiment will be described. As shown in FIG. 14, the hierarchical structure network 10 has a plurality of lower hierarchical groups, group (B) 200B to group (D) 200D. The nodes 100 belonging to the plurality of lower hierarchical groups are arranged in one of the plurality of lower hierarchical groups according to the length of the sleep time of the node 100. As described above, low-performance nodes such as IoT devices perform communication intermittently to reduce power consumption, and are in a sleep state (standby state) while not communicating, and no transactions occur during the sleep time (standby time). In the second lower hierarchy and below, grouping can be performed according to the range of sleep time, so that the nodes can be grouped into groups with long sleep times and groups with short sleep times.
 具体的には、スリープ時間の近い機器ごとにグループに分ける。スリープ時間の長い機器はトランザクションの発生頻度が低いため、計算頻度が低く、その結果、計算頻度の削減が可能である。ここで、スリープ時間の長い機器は性能が低いものが多いので、当該グループ分けが有効である。このように、トランザクションの発生頻度を考慮したノードの集合にすることで、計算量を抑制しつつ、台帳の肥大を抑制できる。 Specifically, devices are divided into groups based on similar sleep times. Devices with long sleep times have a low frequency of transactions and therefore a low calculation frequency, making it possible to reduce the frequency of calculations. Here, devices with long sleep times tend to have low performance, so this grouping is effective. In this way, by grouping nodes based on the frequency of transactions, it is possible to reduce the amount of calculations and the expansion of the ledger.
 複数の下位階層グループのうち1つの下位階層グループに属する各ノード100のスリープ時間は、第1の所定時間の範囲内であってもよい。当該1つの下位階層グループとは異なる他の下位階層グループに属する各ノード100のスリープ時間は、第1の所定時間とは異なる第2の所定時間の範囲内であってもよい。図14の例において、グループ(B)200Bに属する各ノード100は、スリープ時間が1日よりも長い。グループ(C)200Cに属する各ノード100は、スリープ時間が1日以下であって、且つ1時間以上である。グループ(D)200Dに属する各ノード100は、スリープ時間が1時間未満である。なお、このようなグループ分けは一例であって、図14の例に限定されない。 The sleep time of each node 100 belonging to one of the multiple lower hierarchical groups may be within a first predetermined time range. The sleep time of each node 100 belonging to another lower hierarchical group different from the one lower hierarchical group may be within a second predetermined time range different from the first predetermined time. In the example of FIG. 14, each node 100 belonging to group (B) 200B has a sleep time longer than one day. Each node 100 belonging to group (C) 200C has a sleep time of one day or less and one hour or more. Each node 100 belonging to group (D) 200D has a sleep time of less than one hour. Note that such grouping is merely an example and is not limited to the example of FIG. 14.
 各グループに属するノード100の最大数は、当該グループに属するノード100の性能に応じて定められてもよい。例えば、1つのグループのノード数の制限は、当該グループに参加しているノードのうち最も性能の低いノードに依存して決定されてもよい。1つのグループのノード数が多いほど、台帳の更新頻度及びサイズが大きくなり易い。そのため、最も性能の低いノードの性能に応じて、当該ノードが属するグループの最大数を決定することとしている。 The maximum number of nodes 100 belonging to each group may be determined according to the performance of the nodes 100 belonging to that group. For example, the limit on the number of nodes in a group may be determined depending on the node with the lowest performance among the nodes participating in that group. The more nodes in a group there are, the more likely it is that the ledger will be updated frequently and its size will increase. For this reason, the maximum number of groups to which the node with the lowest performance belongs is determined according to the performance of that node.
 図15に示すように、下位階層グループに属するノード100の数が、当該下位階層グループに属するノード100の最大数を超える場合、新たな下位階層グループが形成されてもよい。図15において、スリープ時間が1日よりも長いノード100の数がグループ(B)200Bの最大数(制限数)を超えたことにより、スリープ時間が1日よりも長いノード100からなる新たなグループ(E)200Eが形成される一例を示している。このように、制限数以上のノードがある場合、同じスリープ時間の範囲のグループを新規に追加する。或いは、下位階層グループに属するノード100の数が、当該下位階層グループに属するノード100の最大数を超える場合、階層を1つ下に追加し、さらに下位のグループが形成されてもよい。 As shown in FIG. 15, if the number of nodes 100 belonging to a lower hierarchical group exceeds the maximum number of nodes 100 belonging to that lower hierarchical group, a new lower hierarchical group may be formed. FIG. 15 shows an example in which the number of nodes 100 with sleep times longer than one day exceeds the maximum number (limit number) of group (B) 200B, and a new group (E) 200E consisting of nodes 100 with sleep times longer than one day is formed. In this way, when there are more nodes than the limit number, a new group with the same sleep time range is added. Alternatively, if the number of nodes 100 belonging to a lower hierarchical group exceeds the maximum number of nodes 100 belonging to that lower hierarchical group, a layer lower may be added and an even lower group may be formed.
 (6)グループ内の優先順位
 次に、図16及び図17を参照して、一実施形態に係るグループ内の優先順位について説明する。図16に示すように、性能のパラメータを用いて各グループのノードに優先順位をつける。優先順位は、性能のパラメータであるバッテリ容量、計算能力、記憶容量、及びスリープ時間のうち少なくとも1つを元に計算される。
(6) Priority within a group Next, priority within a group according to one embodiment will be described with reference to Fig. 16 and Fig. 17. As shown in Fig. 16, the nodes in each group are prioritized using performance parameters. The priority is calculated based on at least one of the performance parameters: battery capacity, computing power, memory capacity, and sleep time.
 1つのグループ内において、優先順位1位のノードを親ノード、優先順位2位のノードをサブ親ノード、それ以外は子ノードに設定される。図16において、下位階層グループであるグループ(B)200Bの各ノード100の優先順位を数字で示している。例えば、新たなノード100が下位階層グループに追加される場合、当該新たなノード100又は他ノード100は、当該新たなノード100を親ノード、サブ親ノード、及び子ノードのいずれに設定するかを、当該新たなノード100の性能に基づいて決定する。 In one group, the node with the first priority is set as the parent node, the node with the second priority is set as the sub-parent node, and the rest are set as child nodes. In FIG. 16, the priority of each node 100 in group (B) 200B, which is a lower hierarchical group, is indicated by a number. For example, when a new node 100 is added to a lower hierarchical group, the new node 100 or another node 100 determines whether to set the new node 100 as a parent node, sub-parent node, or child node based on the performance of the new node 100.
 1つのグループを形成する複数のノード100は、上位階層グループ及び下位階層グループの両方に属し、下位階層台帳及び上位階層台帳を管理する親ノードと、下位階層グループに属し、親ノードが当該親ノードとして機能しなくなったときに新たな親ノードに変更されるサブ親ノードと、下位階層グループに属し、親ノード100及びサブ親ノード100のいずれにも該当しない子ノード100と、を含む。 The multiple nodes 100 that form one group include a parent node that belongs to both the upper and lower hierarchy groups and manages the lower hierarchy ledger and the upper hierarchy ledger, a sub-parent node that belongs to the lower hierarchy group and is changed to a new parent node when the parent node ceases to function as the parent node, and a child node 100 that belongs to the lower hierarchy group and does not correspond to either the parent node 100 or the sub-parent node 100.
 ここで、サブ親ノード100は、子ノード100に比べて高い性能を有し、親ノード100は、サブ親ノード100に比べて高い性能を有する。また、サブ親ノード100は、子ノード100に比べて多くの役割を果たし、親ノード100は、サブ親ノード100に比べて多くの役割を果たす。そのため、ノード100が果たす役割とその性能とを整合させることとしている。 Here, the sub-parent node 100 has higher performance than the child node 100, and the parent node 100 has higher performance than the sub-parent node 100. Also, the sub-parent node 100 plays more roles than the child node 100, and the parent node 100 plays more roles than the sub-parent node 100. For this reason, the roles played by the node 100 are matched with their performance.
 例えば、親ノードは、下位階層グループでトランザクションが発生して下位階層台帳が更新された場合、上位階層グループに更新された旨を伝える。それにより、上位階層グループでトランザクションが発生する(上位階層台帳が更新される)。具体的には、親ノードは、下位階層グループ内のトランザクションに応じて、下位階層台帳の更新を上位階層グループに属するノード100に通知し、上位階層グループに属するノード100は、当該親ノードからの通知に応じて、上位階層台帳を更新する。 For example, when a transaction occurs in a lower hierarchical group and the lower hierarchical ledger is updated, the parent node notifies the upper hierarchical group of the update. This causes a transaction to occur in the upper hierarchical group (the upper hierarchical ledger is updated). Specifically, the parent node notifies the node 100 belonging to the upper hierarchical group of the update to the lower hierarchical ledger in response to a transaction within the lower hierarchical group, and the node 100 belonging to the upper hierarchical group updates the upper hierarchical ledger in response to the notification from the parent node.
 また、親ノードは、上位階層グループの上位階層台帳が更新されると、サブ親ノードに上位階層台帳を渡す。すなわち、親ノードは、上位階層台帳が更新された場合、更新後の上位階層台帳をサブ親ノードと共有する。 In addition, when the upper-level ledger of the upper-level group is updated, the parent node passes the upper-level ledger to the sub-parent node. In other words, when the upper-level ledger is updated, the parent node shares the updated upper-level ledger with the sub-parent node.
 図16の例においては、グループ(B)200Bの親ノードは、グループ(B)200Bでトランザクションが発生して台帳(B)が更新された場合、グループ(A)200Aに、台帳(B)が更新された旨を伝える。それにより、グループ(A)200Aでトランザクションが発生する(台帳(A)が更新される)。また、グループ(B)200Bの親ノードは、グループ(A)200Aの台帳(A)が更新されると、グループ(B)200Bのサブ親ノードに台帳(A)を渡す。 In the example of FIG. 16, when a transaction occurs in group (B) 200B and the ledger (B) is updated, the parent node of group (B) 200B notifies group (A) 200A that the ledger (B) has been updated. As a result, a transaction occurs in group (A) 200A (the ledger (A) is updated). In addition, when the ledger (A) of group (A) 200A is updated, the parent node of group (B) 200B passes the ledger (A) to the sub-parent node of group (B) 200B.
 図17に示すように、親ノードが何らかの要因(例えば、自分からグループを抜ける、又は不正行為による強制削除等)でグループから削除された場合、自動的に優先順位2位のサブ親ノードが優先順位1位、すなわち、新たな親ノードとなる。それ以外の各ノードも優先順位が1つ繰り上がる。また、サブ親ノードが新たな親ノードに変更された場合、又は、サブ親ノードが当該サブ親ノードとして機能しなくなった場合、複数の子ノードのうち優先順位が最も高い子ノードが新たなサブ親ノードに変更される。なお、優先順位は各グループに紐づく必要があるため、各ノード100は、チェーンIDに紐づいた優先順位のパラメータ値を持つ。 As shown in FIG. 17, if a parent node is deleted from a group for some reason (for example, the parent node leaves the group on its own or is forcibly deleted due to fraudulent activity), the sub-parent node with second priority automatically becomes the first priority, i.e., the new parent node. The priority of all other nodes is also raised by one. Furthermore, if a sub-parent node is changed to a new parent node, or if a sub-parent node ceases to function as such, the child node with the highest priority among multiple child nodes is changed to the new sub-parent node. Note that because priority needs to be linked to each group, each node 100 has a priority parameter value linked to its chain ID.
 初期に親ノードに設定されたノード100は、性能のパラメータから選択されているため問題がないが、親ノード削除に伴う繰り上がりで設定される新たな親ノードは、性能のパラメータが不十分である可能性がある。そのため、各階層の性能パラメータに閾値を設定し、閾値を下回っている親ノードに関しては、一定回数のトランザクションごとに親ノードを変更(ローテーション)してもよい。すなわち、親ノードの削除に応じてサブ親ノードが新たな親ノードに設定され、且つ、新たな親ノードの性能が所定基準を満たしていない場合、親ノードとして設定されるノード100は、所定回数のトランザクションごとに変更されてもよい。変更の際に自身の優先順位を下げることで、サブ親ノードが次の親ノードとなる。親ノードをローテーションさせるトランザクションの回数はノードパラメータとして保持し、変更可能とする。 There is no problem with the node 100 initially set as the parent node, as it is selected based on performance parameters, but the new parent node set when a parent node is deleted may have insufficient performance parameters. For this reason, a threshold may be set for the performance parameters of each layer, and for parent nodes that fall below the threshold, the parent node may be changed (rotated) every certain number of transactions. In other words, if a sub-parent node is set as the new parent node in response to the deletion of a parent node, and the performance of the new parent node does not meet a certain standard, the node 100 set as the parent node may be changed every certain number of transactions. By lowering its own priority when changing, the sub-parent node becomes the next parent node. The number of transactions for rotating the parent node is held as a node parameter and can be changed.
 (7)台帳に格納するノードパラメータの一例
 次に、図18を参照して、一実施形態に係る台帳に格納するノードパラメータの一例について説明する。
(7) Example of Node Parameters Stored in Ledger Next, with reference to FIG. 18, an example of node parameters stored in a ledger according to one embodiment will be described.
 上述のように、一実施形態では、ノードパラメータが台帳に格納され得る。例えば、上位階層グループに属する各ノード100は、上位階層グループに新たなノード100が追加される場合、上位階層グループに追加される新たなノード100のパラメータを上位階層台帳に追加するように上位階層台帳を更新してもよい。下位階層グループに属する各ノード100は、下位階層グループに新たなノード100が追加される場合、下位階層グループに追加される新たなノード100のパラメータを下位階層台帳に追加するように下位階層台帳を更新してもよい。 As described above, in one embodiment, node parameters may be stored in a ledger. For example, when a new node 100 is added to the higher hierarchical group, each node 100 belonging to a higher hierarchical group may update the higher hierarchical ledger to add the parameters of the new node 100 added to the higher hierarchical group to the higher hierarchical ledger. When a new node 100 is added to the lower hierarchical group, each node 100 belonging to a lower hierarchical group may update the lower hierarchical ledger to add the parameters of the new node 100 added to the lower hierarchical group to the lower hierarchical ledger.
 図18に示すように、最上位階層のノード100A及び最下位階層のノード100B2以外のノード100、すなわち、ノード100B1は、2つのグループに所属することになる。そのため、ノード100B1は、それぞれのグループごとに共通の台帳を保持する必要があり、2つの台帳(台帳(A)及び台帳(B))を持つ。ここで、2つのグループ(グループ(A)及びグループ(B))は、それぞれチェーンIDに紐づいた形で分別できるようにパラメータを持つ。上述のように、上位階層台帳である台帳(A)には、下位階層台帳である台帳(B)のハッシュ値等が含まれているため、台帳(B)が更新されると、台帳(A)も更新が必要である。 As shown in FIG. 18, nodes 100 other than node 100A in the top hierarchy and node 100B2 in the bottom hierarchy, i.e., node 100B1, belong to two groups. Therefore, node 100B1 needs to hold a common ledger for each group, and has two ledgers (ledger (A) and ledger (B)). Here, the two groups (group (A) and group (B)) have parameters that allow them to be distinguished in a manner linked to their respective chain IDs. As mentioned above, ledger (A), which is the higher hierarchy ledger, contains the hash value, etc., of ledger (B), which is the lower hierarchy ledger, and therefore when ledger (B) is updated, ledger (A) also needs to be updated.
 台帳に格納するノードパラメータは、例えば次のパラメータのうち少なくとも1つである。 The node parameters stored in the ledger are, for example, at least one of the following parameters:
 ・チェーンID:最大2つ必要である。チェーンIDで、2つのグループのどちらが上位階層グループかを判別できるようにしている。  - Chain ID: A maximum of two are required. The chain ID makes it possible to determine which of two groups is the higher-level group.
 ・台帳のハッシュ値:チェーンIDに紐づいた値であり、最大で2つ必要である。 - Ledger hash value: A value linked to the chain ID, up to two are required.
 ・ノード優先順位:チェーンIDに紐づいた値であり、最大で2つ必要である。 - Node priority: A value linked to the chain ID; a maximum of two is required.
 ・親チェーンID:グループの親ノードが参加する上位階層のチェーンIDである。グループの親子関係を明確化することで、階層構造の自動化をスムーズに行えるようにしている。 - Parent Chain ID: This is the ID of the higher-level chain in which the group's parent node participates. By clarifying the parent-child relationships of groups, it is possible to smoothly automate the hierarchical structure.
 ・バリデータノードID:台帳が正しいことを証明したノードのIDである。 - Validator node ID: The ID of the node that verified that the ledger is correct.
 ・親ノードローテーション値:親ノードローテーションを発生させるトランザクションの回数である。親ノードトランザクション回数がこの値になった時に親ノードのローテーションが発生する。 - Parent node rotation value: The number of transactions that cause parent node rotation. When the number of parent node transactions reaches this value, parent node rotation occurs.
 ・親ノードトランザクション回数:親ノードになってから発生したトランザクションの回数である。 - Parent node transaction count: The number of transactions that have occurred since becoming a parent node.
 ・ノードの性能パラメータ。例えば、バッテリ容量、計算能力、記憶容量(メモリ余裕情報)、及びスリープ時間のうち少なくとも1つである。 - Node performance parameters. For example, at least one of battery capacity, computing power, memory capacity (memory margin information), and sleep time.
 (8)親ノードの選出方法
 次に、図19乃至図24を参照して、一実施形態に係る親ノードの選出方法について説明する。上述のように、1つのグループ内の各ノード100が管理する台帳に各ノード100の性能パラメータ(「性能値」とも称する)を格納することにより、各ノード100がグループ内の他ノード100のそれぞれの性能を把握できる。そのため、各ノード100は、グループ内で最も性能の高いノード100を当該グループの親ノードとして自律的に決定できる。親ノードは、階層間のデータのやり取りを仲介する特殊なノードであって、「代表ノード」又は「リーダー」とも称される。親ノードは、例えば、下位の階層の台帳データを上位の階層の台帳に反映させる役割を担っている。
(8) Method for Selecting Parent Node Next, a method for selecting a parent node according to an embodiment will be described with reference to Figs. 19 to 24. As described above, by storing the performance parameters (also called "performance values") of each node 100 in a ledger managed by each node 100 in one group, each node 100 can grasp the performance of each of the other nodes 100 in the group. Therefore, each node 100 can autonomously determine the node 100 with the highest performance in the group as the parent node of the group. A parent node is a special node that mediates data exchange between layers, and is also called a "representative node" or "leader". For example, a parent node has a role of reflecting ledger data of a lower layer in a ledger of a higher layer.
 このように、グループに属する全てのノード100の性能パラメータを台帳に格納することで、グループに属するノード100のうち最も性能値の高いノードを親ノードとして自律的に決定できる。しかしながら、このような方法には、次のような課題がある。 In this way, by storing the performance parameters of all the nodes 100 belonging to the group in the ledger, it is possible to autonomously determine the node with the highest performance value among the nodes 100 belonging to the group as the parent node. However, this method has the following problems.
 第1の課題として、グループに属する全てのノード100の性能パラメータを台帳に格納する場合、台帳のデータ量が大きくなり得る。そのため、データ量の大きい台帳を各ノード100が保持することで、各ノード100の記憶容量を圧迫する懸念がある。例えば、1つのグループに属するノード100の数が「N」である場合、1ノードあたりN個の性能値を管理することになるため、グループ全体ではN個の性能値を管理することになり、メモリ使用量が大きい。 As a first problem, when performance parameters of all the nodes 100 belonging to a group are stored in a ledger, the amount of data in the ledger may become large. Therefore, there is a concern that each node 100 may hold a ledger with a large amount of data, which may put a strain on the storage capacity of each node 100. For example, when the number of nodes 100 belonging to one group is "N", N performance values are managed per node, and N2 performance values are managed for the entire group, resulting in a large memory usage.
 第2の課題として、グループに属するいずれかのノード100の性能値が更新された場合、或いは、グループにおいて新たなノード100が参加した又は参加済みのノード100が離脱した場合、当該グループに属する各ノード100が管理する台帳を更新する必要がある。台帳の更新はノード100間の通信を伴うため、頻繁な台帳更新によってノード100間の通信頻度が高くなり、各ノード100の消費電力の増大につながる懸念がある。 The second issue is that when the performance value of any of the nodes 100 belonging to a group is updated, or when a new node 100 joins the group or a node 100 that has already joined leaves the group, it is necessary to update the ledger managed by each node 100 belonging to the group. Since updating the ledger involves communication between the nodes 100, there is a concern that frequent ledger updates will increase the frequency of communication between the nodes 100, leading to increased power consumption by each node 100.
 これらの課題は、IoT機器等の低性能ノード、具体的には、計算性能及び/又は通信性能が比較的低いノード100を含むグループにおいてより顕著となる。 These issues become more pronounced in groups that include low-performance nodes such as IoT devices, specifically, nodes 100 that have relatively low computational and/or communication performance.
 (8.1)ノード選出方法の概要
 以下において、上述のような課題を解決可能としつつ、グループ内で適切な親ノード(代表ノード)を自律的に選出することが可能なノード選出方法について説明する。このようなノード選出方法は、同一のグループに属する複数のノード100間でP2P通信を行う通信システムであれば適用可能である。
(8.1) Overview of Node Selection Method Below, we will explain a node selection method that can autonomously select an appropriate parent node (representative node) within a group while solving the problems described above. This node selection method is applicable to any communication system that performs P2P communication between multiple nodes 100 belonging to the same group.
 図19は、一実施形態に係るノード選出方法を説明するための図である。グループ200は、同一の台帳を分散管理する複数のノード100(ノード100a乃至ノード100d)からなる。 FIG. 19 is a diagram for explaining a node selection method according to one embodiment. A group 200 is made up of multiple nodes 100 (nodes 100a to 100d) that manage the same ledger in a distributed manner.
 各ノード100は、自ノード100の性能値を記憶する。また、各ノードは、グループ200内における代表ノードの選出に用いられるポイント値を記憶する。 Each node 100 stores its own performance value. Each node also stores a point value used to select a representative node within the group 200.
 同一のグループ200に属する各ノード100は、当該グループ200内の他ノードと通信することに応じて所定制御を行う制御部120を有する(図5参照)。当該所定制御は、当該他ノードの性能値を当該他ノードから取得する取得処理と、当該他ノードの性能値を自ノード100の性能値と比較した結果に基づいて自ノード100のポイント値を変更する変更処理と、を含む。制御部120は、当該ポイント値が所定値(「代表ノード閾値」とも称する)に達した場合、自ノード100をグループ200の親ノード(代表ノード)として決定する。一実施形態では、親ノードは、当該グループ200内で性能が最も高いノード100であって、当該グループ200と他グループとの間のやり取りを仲介するノード100である。また、当該グループは、最上位階層(Layer1)とは異なる階層、すなわち、2番目以降のいずれかの階層に属するグループである。 Each node 100 belonging to the same group 200 has a control unit 120 that performs a predetermined control in response to communication with other nodes in the group 200 (see FIG. 5). The predetermined control includes an acquisition process for acquiring the performance value of the other node from the other node, and a change process for changing the point value of the node 100 based on the result of comparing the performance value of the other node with the performance value of the node 100. When the point value reaches a predetermined value (also called the "representative node threshold"), the control unit 120 determines the node 100 as the parent node (representative node) of the group 200. In one embodiment, the parent node is the node 100 with the highest performance in the group 200, and is the node 100 that mediates exchanges between the group 200 and other groups. The group is a group that belongs to a layer other than the top layer (Layer 1), that is, any layer from the second layer onward.
 このようなノード選出方法では、グループ200内の各ノード100が自身のポイント値を管理する。そして、グループ200内で2つのノード200間で通信(P2P通信)を行う際に、当該2つのノード200の性能を比較することでポイント値を変更する。このような制御(所定制御)がP2P通信ごとに繰り返されることにより、各ノード100のポイント値が変更(更新)され、最終的に、ポイント値が所定値に達したノード100が親ノードとして選出される。 In this node selection method, each node 100 in the group 200 manages its own point value. Then, when communication (P2P communication) occurs between two nodes 200 in the group 200, the point value is changed by comparing the performance of the two nodes 200. By repeating this control (predetermined control) for each P2P communication, the point value of each node 100 is changed (updated), and finally, the node 100 whose point value has reached a predetermined value is selected as the parent node.
 そのため、各ノード100は、グループ200に属する全てのノード100の性能パラメータを台帳に格納し、保持・管理する必要が無く、代わりにポイント値を保持・管理すればよい。性能パラメータを台帳に格納し、保持・管理する場合と比較し、データ量の小さいポイント値を保持・管理する場合、各ノード100のメモリ使用量を削減できる。 Therefore, each node 100 does not need to store, hold, and manage the performance parameters of all nodes 100 belonging to the group 200 in a ledger, but instead can hold and manage point values. Compared to storing, holding, and managing performance parameters in a ledger, holding and managing point values, which are a small amount of data, can reduce memory usage in each node 100.
 また、当該ノード選出方法によれば、グループ200に属するいずれかのノード100の性能値が更新された場合、或いは、グループ200において新たなノード100が参加した又は参加済みのノード100が離脱した場合であっても、各ノード100において、台帳に含まれる当該性能値が更新されたノードの性能パラメータトを更新する必要が無い。そのため、頻繁な台帳更新によってノード100間の通信頻度が高くなる事態を回避でき、各ノード100の消費電力の増大を抑制できる。 Furthermore, according to this node selection method, even if the performance value of any of the nodes 100 belonging to the group 200 is updated, or if a new node 100 joins the group 200 or a node 100 that has already joined leaves, each node 100 does not need to update the performance parameters of the node whose performance value has been updated, which are included in the ledger. Therefore, it is possible to avoid a situation in which the frequency of communication between the nodes 100 increases due to frequent ledger updates, and it is possible to suppress an increase in the power consumption of each node 100.
 よって、IoT機器等の低性能ノードを含むグループ200においても、メモリ使用量及び/又は消費電力の増大を抑制しつつ、適切な親ノードを自律的に選出することが可能である。 Therefore, even in a group 200 that includes low-performance nodes such as IoT devices, it is possible to autonomously select an appropriate parent node while suppressing increases in memory usage and/or power consumption.
 以下の実施形態の説明において、各ノード100が管理する自身のポイント値をLP(Leader Point)とも称する。図19に示すように、グループ200に属する各ノード100は、自ノードのポイント値(LP)と自ノードの性能値とを保持する。図示の例では、ポイント値は、0乃至100の範囲内の値であるものとしている。上述のように、ノード100の性能値(性能パラメータ)は、バッテリ容量、計算能力、記憶容量、及びスリープ時間のうち少なくとも1つであってもよい。ノード100の性能値は、バッテリ容量、計算能力、記憶容量、及びスリープ時間のうち1つ以上のパラメータから導出される指標値であってもよい。例えば、バッテリ容量、計算能力、及び記憶容量に対する統計値(合計値又は平均値等)を性能値としてもよい。また、スリープ時間が短いほど、性能値が高くなるように設定されてもよい。図示の例では、性能値は、0乃至100の範囲内で正規化された値であるものとしている。ノード100aは、性能値が「10」であって、グループ内で最も性能が低い。ノード100cは、性能値が「75」であって、グループ内で最も性能が高い。 In the following description of the embodiment, the point value managed by each node 100 is also referred to as LP (Leader Point). As shown in FIG. 19, each node 100 belonging to the group 200 holds its own point value (LP) and its own performance value. In the illustrated example, the point value is a value in the range of 0 to 100. As described above, the performance value (performance parameter) of the node 100 may be at least one of the battery capacity, computing power, storage capacity, and sleep time. The performance value of the node 100 may be an index value derived from one or more parameters of the battery capacity, computing power, storage capacity, and sleep time. For example, the performance value may be a statistical value (total value or average value, etc.) for the battery capacity, computing power, and storage capacity. In addition, the performance value may be set so that the shorter the sleep time, the higher the performance value. In the illustrated example, the performance value is a normalized value in the range of 0 to 100. The node 100a has a performance value of "10", which is the lowest performance in the group. Node 100c has a performance value of "75", making it the highest performing node in the group.
 ポイント値(LP)は、時間の経過とともに所定値(代表ノード閾値)に近づくように増加又は減少する値であってもよい。すなわち、各ノード100は、自ノード100のポイント値が時間の経過とともに所定値(代表ノード閾値)に近づくように自ノード100のポイント値を増加又は減少させる。 The point value (LP) may be a value that increases or decreases over time so as to approach a predetermined value (representative node threshold). In other words, each node 100 increases or decreases the point value of its own node 100 so that the point value of the own node 100 approaches a predetermined value (representative node threshold) over time.
 図20は、各ノード100が管理する自身のポイント値(LP)の一例を示す図である。図示の例では、ポイント値は、初期値が「0」であって、時間の経過とともにカウントアップされる値である。所定値(代表ノード閾値)は、「100」に設定されている。図21は、各ノード100が管理する自身のポイント値(LP)の他の例を示す図である。図示の例では、ポイント値は、初期値が「100」であって、時間の経過とともにカウントダウンされる値である。所定値(代表ノード閾値)は、「0」に設定されている。単位時間あたりのポイント値の変化量(「ポイント値の変化速度」とも称する)は、各ノード100で同じ変化速度となるように予め設定されている。 FIG. 20 is a diagram showing an example of the own point value (LP) managed by each node 100. In the example shown, the initial value of the point value is "0" and is a value that is counted up as time passes. The specified value (representative node threshold) is set to "100". FIG. 21 is a diagram showing another example of the own point value (LP) managed by each node 100. In the example shown, the initial value of the point value is "100" and is a value that is counted down as time passes. The specified value (representative node threshold) is set to "0". The amount of change in the point value per unit time (also referred to as the "rate of change of the point value") is preset to be the same rate of change for each node 100.
 各ノード100は、グループ200内の他ノードとの通信時に、当該他ノードの性能値が自ノード100の性能値よりも高い場合、自ノード100のポイント値と所定値(代表ノード閾値)との間隔を広げるように自ノード100のポイント値を変更してもよい。具体的には、図20のようなポイント値(LP)を用いる前提下では、自ノード100のポイント値を低下させることにより、自ノード100のポイント値と所定値(代表ノード閾値)との間隔が広がる。一方、図21のようなポイント値(LP)を用いる前提下では、自ノード100のポイント値を上昇させることにより、自ノード100のポイント値と所定値(代表ノード閾値)との間隔が広がる。これにより、各ノード100は、グループ200内で自ノード100よりも性能の高い他ノードを検知したとき、自ノード100が代表ノードになり難くするように自ノード100のポイント値を変更できる。 When communicating with another node in the group 200, if the performance value of the other node is higher than the performance value of the node 100, the node 100 may change the point value of the node 100 so as to widen the gap between the point value of the node 100 and the predetermined value (representative node threshold). Specifically, under the assumption that the point value (LP) as shown in FIG. 20 is used, the gap between the point value of the node 100 and the predetermined value (representative node threshold) is widened by lowering the point value of the node 100. On the other hand, under the assumption that the point value (LP) as shown in FIG. 21 is used, the gap between the point value of the node 100 and the predetermined value (representative node threshold) is widened by increasing the point value of the node 100. In this way, when the node 100 detects another node in the group 200 with higher performance than the node 100, the node 100 can change the point value of the node 100 so as to make it less likely for the node 100 to become the representative node.
 例えば、各ノード100は、当該他ノードの性能値が自ノード100の性能値よりも高い場合、自ノード100のポイント値を初期値にリセットしてもよい。具体的には、図20のようなポイント値(LP)を用いる前提下では、自ノード100のポイント値を「0」にリセットする。一方、図21のようなポイント値(LP)を用いる前提下では、自ノード100のポイント値を「100」にリセットする。 For example, each node 100 may reset the point value of its own node 100 to an initial value if the performance value of the other node is higher than the performance value of its own node 100. Specifically, under the assumption that the point value (LP) as shown in FIG. 20 is used, the point value of its own node 100 is reset to "0". On the other hand, under the assumption that the point value (LP) as shown in FIG. 21 is used, the point value of its own node 100 is reset to "100".
 或いは、各ノード100は、当該他ノードの性能値が自ノード100の性能値よりも高い場合、当該他ノードの性能値と自ノード100の性能値との差に応じた量だけ自ノード100のポイント値を変更してもよい。具体的には、図20のようなポイント値(LP)を用いる前提下では、当該他ノードの性能値と自ノード100の性能値との差が大きいほど、自ノード100のポイント値を大きく低下させる。一方、図21のようなポイント値(LP)を用いる前提下では、当該他ノードの性能値と自ノード100の性能値との差が大きいほど、自ノード100のポイント値を大きく上昇させる。 Alternatively, when the performance value of the other node is higher than the performance value of the node 100, each node 100 may change the point value of its own node 100 by an amount corresponding to the difference between the performance value of the other node and the performance value of its own node 100. Specifically, under the assumption that point values (LP) such as those in FIG. 20 are used, the greater the difference between the performance value of the other node and the performance value of its own node 100, the greater the point value of its own node 100 is reduced. On the other hand, under the assumption that point values (LP) such as those in FIG. 21 are used, the greater the difference between the performance value of the other node and the performance value of its own node 100, the greater the point value of its own node 100 is increased.
 一方、各ノード100は、グループ200内の他ノードとの通信時に、当該他ノードの性能値が自ノード100の性能値よりも低い場合、自ノード100のポイント値をリセットせずに維持してもよい。これにより、各ノード100は、グループ200内で自ノード100よりも性能の低い他ノードを検知したとき、自ノード100のポイント値をリセットせずに維持することにより、自ノード100が代表ノードになり易くすることができる。 On the other hand, when communicating with another node in the group 200, if the performance value of the other node is lower than the performance value of the node 100, the node 100 may maintain the point value of the node 100 without resetting it. In this way, when the node 100 detects another node in the group 200 whose performance is lower than that of the node 100, the node 100 can more easily become the representative node by maintaining the point value of the node 100 without resetting it.
 或いは、各ノード100は、グループ200内の他ノードとの通信時に、当該他ノードの性能値が自ノード100の性能値よりも低い場合、自ノード100のポイント値と所定値(代表ノード閾値)との間隔を狭めるように自ノード100のポイント値を変更してもよい。具体的には、図20のようなポイント値(LP)を用いる前提下では、自ノード100のポイント値を上昇させることにより、自ノード100のポイント値と所定値(代表ノード閾値)との間隔が狭まる。一方、図21のようなポイント値(LP)を用いる前提下では、自ノード100のポイント値を低下させることにより、自ノード100のポイント値と所定値(代表ノード閾値)との間隔が狭まる。これにより、各ノード100は、グループ200内で自ノード100よりも性能の低い他ノードを検知したとき、自ノード100が代表ノードになり易くするように自ノード100のポイント値を変更できる。ここで、各ノード100は、当該他ノードの性能値が自ノード100の性能値よりも低い場合、当該他ノードの性能値と自ノード100の性能値との差に応じた量だけ自ノード100のポイント値を変更してもよい。具体的には、図20のようなポイント値(LP)を用いる前提下では、当該他ノードの性能値と自ノード100の性能値との差が大きいほど、自ノード100のポイント値を大きく上昇させる。一方、図21のようなポイント値(LP)を用いる前提下では、当該他ノードの性能値と自ノード100の性能値との差が大きいほど、自ノード100のポイント値を大きく低下させる。 Alternatively, when communicating with another node in the group 200, if the performance value of the other node is lower than the performance value of the node 100, the node 100 may change the point value of the node 100 so as to narrow the gap between the point value of the node 100 and a predetermined value (representative node threshold). Specifically, under the assumption that a point value (LP) such as that in FIG. 20 is used, the gap between the point value of the node 100 and a predetermined value (representative node threshold) is narrowed by increasing the point value of the node 100. On the other hand, under the assumption that a point value (LP) such as that in FIG. 21 is used, the gap between the point value of the node 100 and a predetermined value (representative node threshold) is narrowed by decreasing the point value of the node 100. In this way, when the node 100 detects another node in the group 200 with lower performance than the node 100, the node 100 can change the point value of the node 100 so as to make it easier for the node 100 to become the representative node. Here, when the performance value of the other node is lower than the performance value of the node 100, each node 100 may change the point value of the node 100 by an amount corresponding to the difference between the performance value of the other node and the performance value of the node 100. Specifically, under the assumption that the point value (LP) as shown in FIG. 20 is used, the larger the difference between the performance value of the other node and the performance value of the node 100, the larger the point value of the node 100 is increased. On the other hand, under the assumption that the point value (LP) as shown in FIG. 21 is used, the larger the difference between the performance value of the other node and the performance value of the node 100, the larger the point value of the node 100 is decreased.
 (8.2)ノード選出方法のフロー例
 図22は、一実施形態に係るノード選出方法のフロー例を示す図である。グループ200内の各ノード100は当該フローを実行する。なお、各ノード100は、本フローとは別に、自ノード100のポイント値(LP)が時間の経過とともに所定値(代表ノード閾値)に近づくように自ノード100のポイント値を増加又は減少させる処理を行っているものとする。
(8.2) Example of a flow of a node selection method Fig. 22 is a diagram showing an example of a flow of a node selection method according to one embodiment. Each node 100 in the group 200 executes this flow. Note that each node 100 is assumed to perform a process separate from this flow to increase or decrease the point value (LP) of the own node 100 so that the point value (LP) of the own node 100 approaches a predetermined value (representative node threshold) over time.
 ステップS1において、ノード100(以下、「ノード100x」とする)は、グループ200内の他ノード(以下、「ノード100y」とする)とのP2P通信を行う。ここで、ノード100xは、他ノード100yの性能値を他ノード100yから取得する。また、ノード100xは、自ノード100xの性能値を他ノード100yに通知する。他ノード100y側でも、下記のような処理が実行されることになる。さらに、ノード100xは、現時点での自ノード100xのポイント値(LP)を取得する。 In step S1, node 100 (hereinafter referred to as "node 100x") performs P2P communication with another node (hereinafter referred to as "node 100y") in group 200. Here, node 100x acquires the performance value of other node 100y from other node 100y. In addition, node 100x notifies other node 100y of its own performance value. The following processing is also executed on the side of other node 100y. Furthermore, node 100x acquires the current point value (LP) of its own node 100x.
 ステップS2において、ノード100xは、自ノード100xの性能値と他ノード100yの性能値とを比較する。 In step S2, node 100x compares its own performance value with the performance value of another node 100y.
 他ノード100yの性能値が自ノード100xの性能値を上回っている場合(ステップS2:YES)、ステップS3において、ノード100xは、自ノード100xのポイント値(LP)と所定値(代表ノード閾値)との間隔を広げるように自ノード100xのポイント値(LP)を変更する。例えば、ノード100xは、自ノード100xのポイント値(LP)を初期値にリセットする。 If the performance value of the other node 100y exceeds the performance value of the node 100x (step S2: YES), in step S3, the node 100x changes the point value (LP) of the node 100x so as to widen the gap between the point value (LP) of the node 100x and a predetermined value (representative node threshold). For example, the node 100x resets the point value (LP) of the node 100x to its initial value.
 一方、他ノード100yの性能値が自ノード100xの性能値を下回っている場合(ステップS2:NO)、ステップS4において、ノード100xは、自ノード100xのポイント値(LP)を維持する、又は、自ノード100xのポイント値(LP)と所定値(代表ノード閾値)との間隔を狭めるように自ノード100xのポイント値(LP)を変更する。 On the other hand, if the performance value of the other node 100y is lower than the performance value of the node 100x (step S2: NO), in step S4, the node 100x maintains the point value (LP) of the node 100x, or changes the point value (LP) of the node 100x so as to narrow the gap between the point value (LP) of the node 100x and a predetermined value (representative node threshold).
 ステップS5において、ノード100xは、自ノード100xのポイント値(LP)が所定値(代表ノード閾値)に達したか否かを確認する。 In step S5, node 100x checks whether its own node 100x's point value (LP) has reached a predetermined value (representative node threshold).
 自ノード100xのポイント値(LP)が所定値(代表ノード閾値)に達した場合(ステップS5:YES)、ステップS6において、ノード100xは、自ノード100xをグループ200の親ノード(代表ノード)として決定する。但し、ノード100xは、自ノード100xが親ノードになった後も本フローを継続する。ノード100xは、自ノード100xよりも性能の高い他ノードを検知した場合、例えば自ノード100xのポイント値(LP)を初期値にリセットし(ステップS3)、自ノード100xを親ノードとみなすことを中止する。 If the point value (LP) of node 100x reaches a predetermined value (representative node threshold) (step S5: YES), in step S6, node 100x determines itself as the parent node (representative node) of group 200. However, node 100x continues this flow even after node 100x becomes the parent node. If node 100x detects another node with better performance than node 100x, it resets the point value (LP) of node 100x to the initial value (step S3), for example, and stops considering node 100x as the parent node.
 一方、自ノード100xのポイント値(LP)が所定値(代表ノード閾値)に達していない場合(ステップS5:NO)、ステップS7において、ノード100xは、他ノード100yとの通信後に、省電力化のためのスリープ状態に遷移してもよい。スリープ状態から復帰した後、ステップS1に処理が戻る。 On the other hand, if the point value (LP) of the node 100x has not reached the predetermined value (representative node threshold) (step S5: NO), in step S7, the node 100x may transition to a sleep state for power saving after communicating with the other node 100y. After returning from the sleep state, the process returns to step S1.
 なお、ノード100xは、ステップS2において自ノード100xと他ノード100yとで性能値が等しい場合、予め定められたルールに従ってステップS3及びステップS4の一方を選択する。例えば、ノード100x及びノード100yは、通信により自ノード100の固有識別番号(例えば、製造番号)を他ノード100に送信し、固有識別番号が小さい方のノード100がステップS3の処理を実行し、固有識別番号が大きい方のノード100がステップS4の処理を実行してもよい。或いは、性能値をバッテリ容量、計算能力、及び記憶容量に対する統計値(合計値又は平均値等)として、これとは別にスリープ時間を、ノード100間で送信しあい、スリープ時間が長い方のノード100がステップS3の処理を実行し、スリープ時間が短い方のノード100がステップS4の処理を実行してもよい。 If the performance values of the node 100x and the other node 100y are equal in step S2, the node 100x selects one of steps S3 and S4 according to a predetermined rule. For example, the node 100x and the node 100y may transmit the unique identification number of the node 100 (e.g., a serial number) to the other node 100 via communication, and the node 100 with the smaller unique identification number may execute the process of step S3, and the node 100 with the larger unique identification number may execute the process of step S4. Alternatively, the nodes 100 may transmit the performance values as statistics (total or average value, etc.) for the battery capacity, computing power, and storage capacity, and separately transmit the sleep time between them, and the node 100 with the longer sleep time may execute the process of step S3, and the node 100 with the shorter sleep time may execute the process of step S4.
 図22に示すようなノード選出方法によれば、あらかじめ決められた所定値(代表ノード閾値)に達したノード100がグループ200の親ノードとなり、上位階層とのデータの仲介を担当する。グループ200内のノード間通信が十分活発であれば、ポイント値の変化速度と所定値(代表ノード閾値)とに応じた時間の経過後に親ノードが自律的に選出される。 According to the node selection method shown in FIG. 22, node 100 that has reached a predetermined value (representative node threshold) becomes the parent node of group 200 and is responsible for mediating data with the upper hierarchy. If communication between nodes in group 200 is sufficiently active, a parent node is autonomously selected after the passage of time according to the rate of change in point value and the predetermined value (representative node threshold).
 なお、通信が疎である場合、十分に淘汰が進まずに1つのグループ200内で複数の親ノードが誕生してしまう可能性がある。その場合、上位階層グループにおいて当該複数の親ノードを検知できるため、上位階層グループ内のノード100からの指示に応じて1つの親ノードに絞ってもよい。また、複数の親ノードが誕生するようなグループ200は、さらに複数のグループに分割されるべきとも考えられるため、例えば上位階層グループ内のノード100からの指示に応じて、グループ内で親ノードが1つになるようにさらにグループ分割を行ってもよい。但し、ポイント値の変化速度と所定値(代表ノード閾値)とを適切に調節・設定することで、1つのグループ200内で複数の親ノードが誕生することを抑制できる。 Note that when communication is sparse, there is a possibility that selection will not progress sufficiently and multiple parent nodes will be born within one group 200. In that case, since the multiple parent nodes can be detected in the upper hierarchical group, it is possible to narrow it down to one parent node in response to an instruction from node 100 in the upper hierarchical group. In addition, since it is considered that a group 200 in which multiple parent nodes are born should be further divided into multiple groups, for example, in response to an instruction from node 100 in the upper hierarchical group, the group may be further divided so that there is only one parent node within the group. However, by appropriately adjusting and setting the rate of change of the point value and a predetermined value (representative node threshold), it is possible to prevent multiple parent nodes from being born within one group 200.
 また、親ノードとなったノード100がグループ200から削除又は離脱した場合、2番目に性能値の高いノード100は、自身のポイント値を初期化等することがなくなり、次の親ノードとして自律的に選出されることになる。ここで、次の親ノードが誕生するまでの時間は、通信時のポイント演算処理のルール、ポイント値の変化速度、及び所定値(代表ノード閾値)に依存して決まる。 In addition, if the node 100 that became the parent node is deleted or leaves the group 200, the node 100 with the second highest performance value will no longer initialize its own point value, and will be autonomously selected as the next parent node. Here, the time until the next parent node is born is determined depending on the rules for point calculation processing during communication, the rate of change in point value, and a predetermined value (representative node threshold value).
 (8.3)ノード選出方法の利点
 図23乃至図24を参照して、上述のようなポイント値(LP)を用いたノード選出方法の利点について説明する。図23は、比較例として、グループ200に属する全てのノード100の性能パラメータを、グループ200内で管理する台帳に格納した場合における、ノード選出方法を説明するための図である。図24は、ポイント値(LP)を用いたノード選出方法を説明するための図である。
(8.3) Advantages of the Node Selection Method Advantages of the node selection method using point values (LP) as described above will be described with reference to Fig. 23 and Fig. 24. Fig. 23 is a diagram for explaining a node selection method in a comparative example in which performance parameters of all nodes 100 belonging to a group 200 are stored in a ledger managed within the group 200. Fig. 24 is a diagram for explaining a node selection method using point values (LP).
 図24に示す方式では、図23に示す方式に比べて、各ノード100が保持するデータ(具体的には、自身のポイント値及び性能値)がグループ200のノード数に依存せず固定となる。例えば、N個のノード100が所属するグループ200において、ノード1つあたり、図23の方式ではN個のデータ、図24の方式では1個のデータを保持する。グループ200全体で考えると、図23の方式ではN個のデータであるが、図24の方式ではN個のデータで済む。 In the method shown in Fig. 24, compared to the method shown in Fig. 23, the data held by each node 100 (specifically, its own point value and performance value) is fixed and does not depend on the number of nodes in the group 200. For example, in a group 200 to which N nodes 100 belong, each node holds N pieces of data in the method of Fig. 23 and 1 piece of data in the method of Fig. 24. Considering the group 200 as a whole, the method of Fig. 23 requires N2 pieces of data, but the method of Fig. 24 requires only N pieces of data.
 また、図24に示す方式では、図23に示す方式に比べて、必ずしも自ノードの情報を他の全てのノードに伝える必要がなく、グループ200全体での通信量を抑制できる。例えば、N個のノード100が所属するグループ200において、図23に示す方式ではN*(N-1)/2回の通信であるが、図24の方式ではN-1回の通信で済む。 Furthermore, in the method shown in FIG. 24, compared to the method shown in FIG. 23, it is not necessary to transmit information about one's own node to all other nodes, and this makes it possible to reduce the amount of communication in the entire group 200. For example, in a group 200 to which N nodes 100 belong, the method shown in FIG. 23 requires N*(N-1)/2 communications, whereas the method in FIG. 24 requires only N-1 communications.
 したがって、ポイント値(LP)を用いたノード選出方法によれば、図23に示す方式と比較してデータ量及び/又は通信量を抑制できる。そのため、低性能のノード100であってもグループ200に参加してブロックチェーンを活用できる。 Therefore, according to the node selection method using the point value (LP), the amount of data and/or communication can be reduced compared to the method shown in FIG. 23. Therefore, even a low-performance node 100 can participate in the group 200 and utilize the blockchain.
 (9)その他の実施形態
 上述の実施形態に係るノード選出方法において、グループ200が、同一の台帳を分散管理する複数のノード100からなる一例について説明した。しかしながら、グループ200は、同一の台帳を分散管理していなくてもよい。グループ200は、ノード100間でP2P通信を行うグループであればよい。
(9) Other Embodiments In the node selection method according to the above embodiment, an example has been described in which the group 200 is made up of a plurality of nodes 100 that manage the same ledger in a distributed manner. However, the group 200 does not have to manage the same ledger in a distributed manner. The group 200 may be any group that performs P2P communication between the nodes 100.
 上述の実施形態に係るノード選出方法において、代表ノード(親ノード)が、グループ200内で性能が最も高いノード100である一例について説明した。しかしながら、代表ノードは、グループ200内で性能が最も低いノード100であってもよい。すなわち、上述の実施形態に係るノード選出方法を応用し、グループ200内で性能が最も低いノード100を代表ノードとして選出することも可能である。 In the node selection method according to the above embodiment, an example has been described in which the representative node (parent node) is the node 100 with the highest performance in the group 200. However, the representative node may also be the node 100 with the lowest performance in the group 200. In other words, it is also possible to apply the node selection method according to the above embodiment and select the node 100 with the lowest performance in the group 200 as the representative node.
 上述の実施形態において、ノード100がバッテリ駆動型の機器であることを主として想定している。しかしながら、階層構造ネットワーク10には、外部電源駆動型の機器が含まれていてもよい。例えば、外部電源と接続された機器は、階層構造ネットワーク10において最上位階層に配置されてもよい。 In the above-described embodiment, it is primarily assumed that the node 100 is a battery-powered device. However, the hierarchical network 10 may also include devices that are powered by an external power source. For example, a device connected to an external power source may be placed in the highest hierarchical layer in the hierarchical network 10.
 上述の各動作フローは、別個独立に実施する場合に限らず、2以上の動作フローを組み合わせて実施可能である。例えば、1つの動作フローの一部のステップを他の動作フローに追加してもよいし、1つの動作フローの一部のステップを他の動作フローの一部のステップと置換してもよい。また、上述の各動作フローにおけるステップの順番は一例であって、ステップの順番は適宜変更してもよい。 Each of the above-mentioned operation flows can be implemented not only separately but also by combining two or more operation flows. For example, some steps of one operation flow can be added to another operation flow, or some steps of one operation flow can be replaced with some steps of another operation flow. Also, the order of the steps in each of the above-mentioned operation flows is an example, and the order of the steps can be changed as appropriate.
 ノード100が行う各処理をコンピュータに実行させるプログラムが提供されてもよい。プログラムは、コンピュータ読取り可能媒体に記録されていてもよい。コンピュータ読取り可能媒体を用いれば、コンピュータにプログラムをインストールすることが可能である。ここで、プログラムが記録されたコンピュータ読取り可能媒体は、非一過性の記録媒体であってもよい。非一過性の記録媒体は、特に限定されるものではないが、例えば、CD-ROM又はDVD-ROM等の記録媒体であってもよい。また、ノード100が行う各処理を実行する回路を集積化し、ノード100の少なくとも一部を半導体集積回路(チップセット、SoC:System on a chip)として構成してもよい。 A program may be provided that causes a computer to execute each process performed by node 100. The program may be recorded on a computer-readable medium. Using the computer-readable medium, it is possible to install the program on a computer. Here, the computer-readable medium on which the program is recorded may be a non-transient recording medium. The non-transient recording medium is not particularly limited, and may be, for example, a recording medium such as a CD-ROM or a DVD-ROM. In addition, the circuits that execute each process performed by node 100 may be integrated, and at least a part of node 100 may be configured as a semiconductor integrated circuit (chip set, SoC: System on a chip).
 本開示で使用する「に基づいて」、「に応じて」という記載は、別段に明記されていない限り、「のみに基づいて」、「のみに応じて」を意味しない。「に基づいて」という記載は、「のみに基づいて」及び「に少なくとも部分的に基づいて」の両方を意味する。同様に、「に応じて」という記載は、「のみに応じて」及び「に少なくとも部分的に応じて」の両方を意味する。また、「含む(include)」、「備える(comprise)」、及びそれらの変形の用語は、列挙する項目のみを含むことを意味せず、列挙する項目のみを含んでもよいし、列挙する項目に加えてさらなる項目を含んでもよいことを意味する。また、本開示において使用されている用語「又は(or)」は、排他的論理和ではないことが意図される。さらに、本開示で使用した「第1」、「第2」などの呼称を使用した要素へのいかなる参照も、それらの要素の量又は順序を全般的に限定するものではない。これらの呼称は、2つ以上の要素間を区別する便利な方法として本明細書で使用され得る。したがって、第1及び第2の要素への参照は、2つの要素のみがそこで採用され得ること、又は何らかの形で第1の要素が第2の要素に先行しなければならないことを意味しない。本開示において、例えば、英語でのa,an,及びtheのように、翻訳により冠詞が追加された場合、これらの冠詞は、文脈から明らかにそうではないことが示されていなければ、複数のものを含むものとする。 As used in this disclosure, the terms "based on" and "depending on" do not mean "based only on" or "depending only on," unless otherwise specified. The term "based on" means both "based only on" and "based at least in part on." Similarly, the term "depending on" means both "based only on" and "depending at least in part on." Additionally, the terms "include," "comprise," and variations thereof do not mean to include only the items listed, but may include only the items listed, or may include additional items in addition to the items listed. Additionally, the term "or" as used in this disclosure is not intended to be an exclusive or. Additionally, any reference to elements using designations such as "first," "second," and the like used in this disclosure is not intended to generally limit the quantity or order of those elements. These designations may be used herein as a convenient way of distinguishing between two or more elements. Thus, a reference to a first and second element does not mean that only two elements may be employed therein, or that the first element must precede the second element in some way. In this disclosure, where articles have been added through translation, such as a, an, and the in English, these articles are intended to include the plural unless the context clearly indicates otherwise.
 以上、図面を参照して実施形態について詳しく説明したが、具体的な構成は上述のものに限られることはなく、要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。 The above describes the embodiments in detail with reference to the drawings, but the specific configuration is not limited to the above, and various design changes can be made without departing from the spirit of the invention.
 本願は、日本国特許出願第2022-189523号(2022年11月28日出願)の優先権を主張し、その内容の全てが本願明細書に組み込まれている。 This application claims priority to Japanese Patent Application No. 2022-189523 (filed November 28, 2022), the entire contents of which are incorporated herein by reference.
 (10)付記
 上述の実施形態に関する特徴について付記する。
(10) Additional Notes Additional notes will be given regarding the features of the above-described embodiment.
 (付記1)
 同一のグループに属する複数のノード間でピアツーピア通信を行う通信システムであって、
 前記複数のノードのそれぞれは、
 前記グループ内の他ノードと通信することに応じて所定制御を行う制御部を備え、
 前記所定制御は、
 前記他ノードの性能値を前記他ノードから取得する取得処理と、
 前記他ノードの性能値を自ノードの性能値と比較した結果に基づいて自ノードのポイント値を変更する変更処理と、を含み、
 前記制御部は、前記ポイント値が所定値に達した場合、自ノードを前記グループの代表ノードとして決定する
 通信システム。
(Appendix 1)
A communication system for performing peer-to-peer communication among a plurality of nodes belonging to the same group,
Each of the plurality of nodes
a control unit that performs a predetermined control in response to communication with other nodes in the group;
The predetermined control is
an acquisition process of acquiring a performance value of the other node from the other node;
A change process of changing the point value of the own node based on a result of comparing the performance value of the other node with the performance value of the own node,
When the point value reaches a predetermined value, the control unit determines the node itself as a representative node of the group.
 (付記2)
 前記代表ノードは、前記グループ内で性能が最も高いノードである
 付記1に記載の通信システム。
(Appendix 2)
The communication system according to claim 1, wherein the representative node is a node having the highest performance within the group.
 (付記3)
 前記ポイント値は、時間の経過とともに前記所定値に近づくように増加又は減少する値であり、
 前記変更処理は、前記他ノードの性能値が自ノードの性能値よりも高い場合、前記ポイント値と前記所定値との間隔を広げるように前記ポイント値を変更する処理を含む
 付記2に記載の通信システム。
(Appendix 3)
the point value is a value that increases or decreases over time so as to approach the predetermined value,
The communication system according to claim 2, wherein the change process includes a process of changing the point value so as to widen an interval between the point value and the predetermined value when the performance value of the other node is higher than the performance value of the own node.
 (付記4)
 前記変更処理は、前記他ノードの性能値が自ノードの性能値よりも高い場合、前記ポイント値を初期値にリセットする処理を含む
 付記3に記載の通信システム。
(Appendix 4)
The communication system according to claim 3, wherein the change process includes a process of resetting the point value to an initial value when the performance value of the other node is higher than the performance value of the own node.
 (付記5)
 前記変更処理は、前記他ノードの性能値が自ノードの性能値よりも高い場合、前記他ノードの性能値と自ノードの性能値との差に応じた量だけ前記ポイント値を変更する処理を含む
 付記3に記載の通信システム。
(Appendix 5)
The communication system described in Appendix 3, wherein the change process includes a process of changing the point value by an amount corresponding to a difference between the performance value of the other node and the performance value of the own node when the performance value of the other node is higher than the performance value of the own node.
 (付記6)
 前記変更処理は、前記他ノードの性能値が自ノードの性能値よりも低い場合、前記ポイント値をリセットせずに維持する処理を含む
 付記3乃至5のいずれかに記載の通信システム。
(Appendix 6)
The communication system according to any one of Supplementary Notes 3 to 5, wherein the change process includes a process of maintaining the point value without resetting it when the performance value of the other node is lower than the performance value of the own node.
 (付記7)
 前記変更処理は、前記他ノードの性能値が自ノードの性能値よりも低い場合、前記ポイント値と前記所定値との間隔を狭めるように前記ポイント値を変更する処理を含む
 付記3乃至5のいずれかに記載の通信システム。
(Appendix 7)
The communication system according to any one of appendixes 3 to 5, wherein the change process includes a process of changing the point value so as to narrow the gap between the point value and the predetermined value when the performance value of the other node is lower than the performance value of the own node.
 (付記8)
 前記グループは、同一の台帳を分散管理する複数のノードからなり、
 前記代表ノードは、前記グループと他グループとの間のやり取りを仲介するノードである
 付記2乃至7のいずれかに記載の通信システム。
(Appendix 8)
The group is made up of multiple nodes that manage the same ledger in a distributed manner,
The communication system according to any one of Supplementary Notes 2 to 7, wherein the representative node is a node that mediates interactions between the group and other groups.
 (付記9)
 同一のグループに属する複数のノード間でピアツーピア通信を行う通信システムで用いるノードあって、
 前記グループ内の他ノードと通信することに応じて所定制御を行う制御部を備え、
 前記所定制御は、
 前記他ノードの性能値を前記他ノードから取得する取得処理と、
 前記他ノードの性能値を自ノードの性能値と比較した結果に基づいて自ノードのポイント値を変更する変更処理と、を含み、
 前記制御部は、前記ポイント値が所定値に達した場合、自ノードを前記グループの代表ノードとして決定する
 ノード。
(Appendix 9)
A node used in a communication system for performing peer-to-peer communication among a plurality of nodes belonging to the same group,
a control unit that performs a predetermined control in response to communication with other nodes in the group;
The predetermined control is
an acquisition process of acquiring a performance value of the other node from the other node;
A change process of changing the point value of the own node based on a result of comparing the performance value of the other node with the performance value of the own node,
When the point value reaches a predetermined value, the control unit determines the node itself as a representative node of the group.
 (付記10)
 同一のグループに属する複数のノード間でピアツーピア通信を行う通信システムで用いるノードに、
 前記グループ内の他ノードと通信することに応じて所定制御を実行するステップであって、前記所定制御は、前記他ノードの性能値を前記他ノードから取得する取得処理と、前記他ノードの性能値を自ノードの性能値と比較した結果に基づいて自ノードのポイント値を変更する変更処理と、を含むステップと、
 前記ポイント値が所定値に達した場合、自ノードを前記グループの代表ノードとして決定するステップと、を実行させる
 プログラム。
(Appendix 10)
A node used in a communication system for performing peer-to-peer communication between multiple nodes belonging to the same group,
a step of executing a predetermined control in response to communication with another node in the group, the predetermined control including an acquisition process of acquiring a performance value of the other node from the other node, and a change process of changing a point value of the own node based on a result of comparing the performance value of the other node with a performance value of the own node;
and when the point value reaches a predetermined value, determining the node itself as a representative node of the group.
 10    :階層構造ネットワーク
 100   :ノード
 110   :通信部
 120   :制御部
 121   :プロセッサ
 130   :記憶部
 140   :バッテリ
 200   :グループ
10: Hierarchical network 100: Node 110: Communication unit 120: Control unit 121: Processor 130: Storage unit 140: Battery 200: Group

Claims (10)

  1.  同一のグループに属する複数のノード間でピアツーピア通信を行う通信システムであって、
     前記複数のノードのそれぞれは、
     前記グループ内の他ノードと通信することに応じて所定制御を行う制御部を備え、
     前記所定制御は、
     前記他ノードの性能値を前記他ノードから取得する取得処理と、
     前記他ノードの性能値を自ノードの性能値と比較した結果に基づいて自ノードのポイント値を変更する変更処理と、を含み、
     前記制御部は、前記ポイント値が所定値に達した場合、自ノードを前記グループの代表ノードとして決定する
     通信システム。
    A communication system for performing peer-to-peer communication among a plurality of nodes belonging to the same group,
    Each of the plurality of nodes
    a control unit that performs a predetermined control in response to communication with other nodes in the group;
    The predetermined control is
    an acquisition process of acquiring a performance value of the other node from the other node;
    A change process of changing the point value of the own node based on a result of comparing the performance value of the other node with the performance value of the own node,
    When the point value reaches a predetermined value, the control unit determines the node itself as a representative node of the group.
  2.  前記代表ノードは、前記グループ内で性能が最も高いノードである
     請求項1に記載の通信システム。
    The communication system according to claim 1 , wherein the representative node is a node having the highest performance within the group.
  3.  前記ポイント値は、時間の経過とともに前記所定値に近づくように増加又は減少する値であり、
     前記変更処理は、前記他ノードの性能値が自ノードの性能値よりも高い場合、前記ポイント値と前記所定値との間隔を広げるように前記ポイント値を変更する処理を含む
     請求項2に記載の通信システム。
    the point value is a value that increases or decreases over time so as to approach the predetermined value,
    The communication system according to claim 2 , wherein the change process includes a process of changing the point value so as to widen an interval between the point value and the predetermined value when the performance value of the other node is higher than the performance value of the own node.
  4.  前記変更処理は、前記他ノードの性能値が自ノードの性能値よりも高い場合、前記ポイント値を初期値にリセットする処理を含む
     請求項3に記載の通信システム。
    The communication system according to claim 3 , wherein the change process includes a process of resetting the point value to an initial value when the performance value of the other node is higher than the performance value of the own node.
  5.  前記変更処理は、前記他ノードの性能値が自ノードの性能値よりも高い場合、前記他ノードの性能値と自ノードの性能値との差に応じた量だけ前記ポイント値を変更する処理を含む
     請求項3に記載の通信システム。
    The communication system according to claim 3 , wherein the change process includes a process of changing the point value by an amount corresponding to a difference between the performance value of the other node and the performance value of the own node when the performance value of the other node is higher than the performance value of the own node.
  6.  前記変更処理は、前記他ノードの性能値が自ノードの性能値よりも低い場合、前記ポイント値をリセットせずに維持する処理を含む
     請求項3に記載の通信システム。
    The communication system according to claim 3 , wherein the change process includes a process of maintaining the point value without resetting it when the performance value of the other node is lower than the performance value of the own node.
  7.  前記変更処理は、前記他ノードの性能値が自ノードの性能値よりも低い場合、前記ポイント値と前記所定値との間隔を狭めるように前記ポイント値を変更する処理を含む
     請求項3に記載の通信システム。
    The communication system according to claim 3 , wherein the change process includes a process of changing the point value so as to narrow an interval between the point value and the predetermined value when the performance value of the other node is lower than the performance value of the own node.
  8.  前記グループは、同一の台帳を分散管理する複数のノードからなり、
     前記代表ノードは、前記グループと他グループとの間のやり取りを仲介するノードである
     請求項2乃至7のいずれか1項に記載の通信システム。
    The group is made up of multiple nodes that manage the same ledger in a distributed manner,
    The communication system according to claim 2 , wherein the representative node is a node that mediates communication between the group and other groups.
  9.  同一のグループに属する複数のノード間でピアツーピア通信を行う通信システムで用いるノードあって、
     前記グループ内の他ノードと通信することに応じて所定制御を行う制御部を備え、
     前記所定制御は、
     前記他ノードの性能値を前記他ノードから取得する取得処理と、
     前記他ノードの性能値を自ノードの性能値と比較した結果に基づいて自ノードのポイント値を変更する変更処理と、を含み、
     前記制御部は、前記ポイント値が所定値に達した場合、自ノードを前記グループの代表ノードとして決定する
     ノード。
    A node used in a communication system for performing peer-to-peer communication among a plurality of nodes belonging to the same group,
    a control unit that performs a predetermined control in response to communication with other nodes in the group;
    The predetermined control is
    an acquisition process of acquiring a performance value of the other node from the other node;
    A change process of changing the point value of the own node based on a result of comparing the performance value of the other node with the performance value of the own node,
    When the point value reaches a predetermined value, the control unit determines the node itself as a representative node of the group.
  10.  同一のグループに属する複数のノード間でピアツーピア通信を行う通信システムで用いるノードに、
     前記グループ内の他ノードと通信することに応じて所定制御を実行することであって、前記所定制御は、前記他ノードの性能値を前記他ノードから取得する取得処理と、前記他ノードの性能値を自ノードの性能値と比較した結果に基づいて自ノードのポイント値を変更する変更処理と、を含むことと、
     前記ポイント値が所定値に達した場合、自ノードを前記グループの代表ノードとして決定することと、を実行させる
     プログラム。
    A node used in a communication system for performing peer-to-peer communication between multiple nodes belonging to the same group,
    Executing a predetermined control in response to communication with other nodes in the group, the predetermined control including an acquisition process for acquiring a performance value of the other node from the other node, and a change process for changing a point value of the own node based on a result of comparing the performance value of the other node with a performance value of the own node;
    When the point value reaches a predetermined value, the node itself is determined to be a representative node of the group.
PCT/JP2023/041729 2022-11-28 2023-11-21 Communication system, node, and program WO2024116950A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022-189523 2022-11-28
JP2022189523 2022-11-28

Publications (1)

Publication Number Publication Date
WO2024116950A1 true WO2024116950A1 (en) 2024-06-06

Family

ID=91323893

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/041729 WO2024116950A1 (en) 2022-11-28 2023-11-21 Communication system, node, and program

Country Status (1)

Country Link
WO (1) WO2024116950A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11275106A (en) * 1998-03-23 1999-10-08 Toshiba Corp Communications system
KR20070012045A (en) * 2005-07-22 2007-01-25 한국전자통신연구원 Method for automatically selecting a cluster header in a wireless sensor network and for dynamically configuring a secure wireless sensor network
CN101686160A (en) * 2008-09-28 2010-03-31 Tcl集团股份有限公司 Interconnecting and interworking equipment on-line detection method
JP2010536302A (en) * 2007-08-10 2010-11-25 エルジー エレクトロニクス インコーポレイティド Content sharing method
US20190190896A1 (en) * 2017-12-18 2019-06-20 International Business Machines Corporation Protecting sensitive data in a distributed ledger system using a blockchain channel hierarchy

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11275106A (en) * 1998-03-23 1999-10-08 Toshiba Corp Communications system
KR20070012045A (en) * 2005-07-22 2007-01-25 한국전자통신연구원 Method for automatically selecting a cluster header in a wireless sensor network and for dynamically configuring a secure wireless sensor network
JP2010536302A (en) * 2007-08-10 2010-11-25 エルジー エレクトロニクス インコーポレイティド Content sharing method
CN101686160A (en) * 2008-09-28 2010-03-31 Tcl集团股份有限公司 Interconnecting and interworking equipment on-line detection method
US20190190896A1 (en) * 2017-12-18 2019-06-20 International Business Machines Corporation Protecting sensitive data in a distributed ledger system using a blockchain channel hierarchy

Similar Documents

Publication Publication Date Title
CN107544862B (en) Stored data reconstruction method and device based on erasure codes and storage node
US9965364B2 (en) Fault tolerant listener registration in the presence of node crashes in a data grid
CN102945139B (en) Storage device driver and cluster participate in
CN110213371A (en) Information consumption method, apparatus, equipment and computer storage medium
CN103634401B (en) A kind of store data trnascription method and terminal installation and server unit
CN108958882A (en) A kind of container method of adjustment, device and system
CN1669001B (en) Method and device for business continuation policy for server consolidation environment
WO2022237554A1 (en) Method and system for electing master node in cluster, and medium
CN108153622A (en) The method, apparatus and equipment of a kind of troubleshooting
CN109446169A (en) A kind of double control disk array shared-file system
CN107391341A (en) A kind of fault early warning method and device
CN110611701A (en) Parameter configuration and transaction processing method based on block chain
CN108510269A (en) A kind of tree-shaped basic block catenary system of adjustment
JP6209926B2 (en) Storage control device and storage device control program
US20140137187A1 (en) Scalable and Highly Available Clustering for Large Scale Real-Time Applications
CN103944993A (en) Million-level user simultaneous online mobile platform server architecture
CN108366113A (en) A kind of high fault-tolerant common recognition mechanism of the grouping based on DPOS
CN108924202A (en) A kind of the data disaster tolerance method and relevant apparatus of distributed type assemblies
CN105591895A (en) Network device and method for managing network traffic
CN108710686A (en) A kind of date storage method, device, storage medium and terminal
CN106293492A (en) A kind of memory management method and distributed file system
CN102763083A (en) Computer system and upgrade method for same
CN106973091B (en) Distributed memory data redistribution method and system, and master control server
WO2024116950A1 (en) Communication system, node, and program
CN102375893A (en) Distributed file system and method for establishing duplicate copy

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: 23897598

Country of ref document: EP

Kind code of ref document: A1