WO2023176586A1 - Blockchain system, node, and program - Google Patents

Blockchain system, node, and program Download PDF

Info

Publication number
WO2023176586A1
WO2023176586A1 PCT/JP2023/008546 JP2023008546W WO2023176586A1 WO 2023176586 A1 WO2023176586 A1 WO 2023176586A1 JP 2023008546 W JP2023008546 W JP 2023008546W WO 2023176586 A1 WO2023176586 A1 WO 2023176586A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
identifier
block
group
history information
Prior art date
Application number
PCT/JP2023/008546
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 WO2023176586A1 publication Critical patent/WO2023176586A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication

Definitions

  • the present disclosure relates to a blockchain system, a node, and a program.
  • Blockchain technology has been attracting attention in recent years.
  • Blockchain technology has the advantage that system failures do not occur because multiple nodes form an autonomous decentralized network, specifically a P2P (Peer to Peer) network.
  • P2P Peer to Peer
  • Blockchain technology has a mechanism in which each node manages the history of transactions within a P2P network as a ledger. This kind of mechanism is also called distributed ledger technology.
  • a node When a transaction occurs within a group that constitutes a P2P network, a node generates and proposes a block corresponding to the transaction, other nodes verify and vote on the block, the block is finalized, and the block is added to the ledger. will be added to.
  • Tendermint Core has two types of nodes: full nodes and light clients. Full nodes consume a large amount of resources because they perform processes such as executing transactions and verifying results. On the other hand, a light client only verifies the block generation results and has low resource requirements.
  • the blockchain system is a blockchain system in which a block generated by a first node in a group made up of a plurality of nodes is determined by votes of other nodes.
  • the first node executes a storage process for storing voting history information regarding the vote performed by a second node whose performance is lower than that of the first node.
  • an authentication node other than the second node that belongs to the group uses the voting history information to ensure that the second node is in the group. Executes authentication processing to authenticate membership.
  • the node according to the second aspect is the first node used in a blockchain system in which a block generated by a first node in a group made up of a plurality of nodes is determined by votes of other nodes.
  • the method further includes a control unit that executes an authentication process for authenticating whether the second node is a member of the group based on the voting history information.
  • the program according to the third aspect is configured to send the first node to the first node used in a blockchain system in which a block generated by a first node in a group consisting of a plurality of nodes is determined by votes of other nodes.
  • the voting history information is stored based on the voting history information.
  • An authentication process for authenticating whether the two nodes are members of the group is executed.
  • FIG. 3 is a diagram illustrating a configuration example of a ledger managed by each node.
  • FIG. 7 is a diagram illustrating an example of an operation when adding a new block to a ledger.
  • FIG. 7 is a diagram illustrating an example of an operation when adding a new block to a ledger.
  • FIG. 3 is a diagram showing an example of the configuration of a node.
  • FIG. 1 is a diagram illustrating a configuration example of a blockchain system according to an embodiment.
  • FIG. 2 is a diagram for explaining an overview of the operation of the blockchain system according to the embodiment.
  • FIG. 2 is a diagram for explaining an overview of the operation of the blockchain system according to the embodiment.
  • FIG. 3 is a diagram illustrating an example of an operation flow when proposing and voting for a new block according to the embodiment.
  • FIG. 7 is a diagram illustrating an example of an operation flow at the time of entry of the second node according to the embodiment.
  • FIG. 7 is a diagram for explaining the operation of a modified example.
  • FIG. 7 is a diagram illustrating an example of a change in the operation flow when proposing and voting for a new block according to the embodiment.
  • FIG. 7 is a diagram illustrating an example of a change in the operation flow at the time of entry of the second node according to the embodiment.
  • full nodes store large amounts of data such as all the ledgers in a group of blockchains, while light clients only store the latest block header. Only this information, specifically the height (index) and hash value in the block header, is used when authenticating a light client as a member of the blockchain. This is equivalent to authentication using only an ID and password, and there is a problem in that the security strength is low.
  • SSL client authentication is a device authentication method for increasing security strength.
  • SSL client authentication a client certificate issued by a certification authority is installed in the device to be authenticated and sent to the server. On the server side, the root certificate for the client certificate is used to authenticate the device.
  • SSL client authentication may not be able to be used for low-performance devices such as light clients that have communication protocol restrictions or limited memory resources.
  • the present disclosure aims to increase security strength during authentication even for nodes with low performance.
  • a blockchain system is a system that uses blockchain technology.
  • the same or similar parts are given the same or similar symbols.
  • FIG. 1 is a diagram showing an example of a network configuration in a general blockchain system.
  • lines connecting nodes represent communication connections between nodes.
  • a plurality of nodes 100 form an autonomous decentralized network, specifically a P2P network.
  • Each node 100 is connected to be able to communicate with each other. Communication between nodes 100 may occur via a public communications network and/or a local communications network.
  • FIG. 1 illustrates a total of five nodes 100a to 100e, the number of nodes 100 is not limited to five.
  • Each node 100 is a device, such as a PC (Personal Computer), that has at least a communication function and an arithmetic processing function. In general blockchain technology, it is assumed that each node 100 has sufficient performance (spec).
  • Each node 100 manages the history of transactions within the network as a ledger.
  • a transaction occurs in one node 100 (for example, node 100a)
  • all participating nodes perform calculation (verification) processing. This provides a mechanism in which a history of correct transactions that is extremely difficult to falsify remains even if there is fraud among the participating nodes 100 or the nodes 100 do not operate normally.
  • the transaction may be, for example, a remittance or settlement of money or points.
  • the transaction may be, for example, the occurrence of communication.
  • the transaction data stored in the block of the ledger may be remittance or settlement data.
  • the transaction data may be communication data.
  • a transaction may be the joining or removal of a node in a network, etc.
  • the transaction data stored in the block of the ledger may be data (parameters) of the node 100.
  • a transaction may be an update to a ledger.
  • the transaction data stored in the blocks of the ledger may be data (parameters) of the node 100.
  • FIG. 2 is a diagram showing an example of the structure of a ledger managed by each node 100.
  • Each node 100 stores a record of transactions occurring within the network in a block.
  • One block has a block header, which is a header part, and a transaction data part, which stores data of at least one transaction.
  • the block header stores a hash value etc. calculated from the block generated immediately before. For example, a hash value calculated from block n is stored in the block header of block n+1. In this way, the ledger has a data structure in which each generated block is connected in a chain in chronological order.
  • the block header may further include a height representing the number of the corresponding block and a nonce that is a value used to calculate the hash value.
  • 3 and 4 are diagrams showing an example of the operation when adding a new block to the ledger.
  • a node 100 called a "proposer” After a transaction occurs within a group that constitutes a P2P network, a node 100 called a "proposer" generates a new block corresponding to the transaction and sends it to other nodes 100.
  • the new block is proposed by notifying the user of the new block. For example, a plurality of nodes 100 calculate a hash value by combining the nonce value with transaction data, etc., and a node 100 (proposer) that finds a hash value that satisfies a specific condition transfers the generated block to other nodes. Notify 100. Other nodes 100 that have received the new block proposal calculate the hash value of the new block.
  • Other nodes 100 that vote are referred to as "voters.” If a certain number of votes are obtained from other nodes 100 (voters), the node 100 (proposer) finalizes the proposed new block and adds the new block to the ledger.
  • FIG. 5 is a diagram showing an example of the configuration of the node 100.
  • the node 100 includes a communication section 110, a control section 120, and a storage section 130.
  • Node 100 may include 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 or a wired communication interface.
  • the control unit 120 performs various controls and processes in the node 100. Such processing includes the above-mentioned processing and the processing described below.
  • 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 for processing by the processor 121.
  • the storage unit 130 includes a nonvolatile storage device and a volatile storage device.
  • the battery 140 stores power to be supplied to each part of the node 100 (device).
  • FIG. 6 is a diagram showing a configuration example of the blockchain system 1 according to the embodiment.
  • the blockchain system 1 includes one or more first nodes 100A and one or more second nodes 100B whose performance is lower than that of the first nodes 100A. Performance may be at least one of processing power, storage capacity, and battery capacity.
  • the first node 100A may be a device such as a PC.
  • the second node 100B may be an IoT (Internet of Things) device such as a sensor device.
  • the first node 100A and the second node 100B form a group (P2P network) that at least partially shares the ledger. In the following, such a group will be referred to as a "blockchain group.”
  • first nodes 100A1, 100A2, 100A3, etc. are illustrated, but the number of first nodes 100A may be one or two. When the first nodes 100A1, 100A2, 100A3, etc. are not distinguished from each other, they are simply referred to as the first node 100A. Further, although three or more second nodes 100B1, 100B2, 100B3, etc. are illustrated, the number of second nodes 100B may be one or two. When the second nodes 100B1, 100B2, 100B3, etc. are not distinguished from each other, they are simply referred to as the second node 100B. Note that when the first node 100A and the second node 100B are not distinguished from each other, they are simply referred to as a node 100. Each node 100 communicates via P2P via the communication network 20.
  • the communication network 20 includes at least one of a LAN (Local Area Network), a WAN (Wide Area Network), and the Internet.
  • the first node 100A may be a full node. Full nodes consume a large amount of resources because they perform processing such as executing transactions and verifying the results.
  • the second node 100B may be a light client. Light clients only verify the results of block generation and have low resource requirements. Full nodes store large amounts of data, such as all the ledgers in a blockchain group, while light clients may only store the latest block headers.
  • each first node 100A can operate as a proposer and a voter.
  • Each second node 100B may act as a voter without acting as a proposer.
  • a block generated by a certain first node 100A (proposer) is determined by votes of other nodes 100 (first node 100A other than the proposer and second node 100B).
  • a block generated by the first node 100A in a blockchain group (P2P network) composed of a plurality of nodes 100 is determined by votes of other nodes 100.
  • FIG. 7 shows an example in which the node that performs voting is the second node 100B.
  • the first node 100A After the first node 100A, which is a proposer, generates and proposes a new block (herein referred to as "block Execute. Specifically, the first node 100A generates and stores a voter list as voting history information. This makes it possible to keep a history of voting activities in the blockchain group. As described below, the voter list is used in the authentication process.
  • the voter list is a list of voters and includes the identifier of the second node 100B that voted (hereinafter referred to as "node identifier").
  • the node identifier is an identifier that can uniquely identify the node 100 at least within the blockchain group, and for example, the MAC address, serial number, and/or fixed IP address of the node 100 can be used as the node identifier.
  • the first node 100A manages a ledger including block X.
  • the first node 100A stores the voter list in the ledger in the storage process. Since the ledger is difficult to tamper with, the correct voter list can be maintained by storing the voter list in the ledger. Further, since the ledger is shared by each first node 100A (that is, held in a distributed manner), it becomes easy to use the voter list for authentication processing.
  • the second node 100B may notify the first node 100A of request information requesting storage of a voter list including the node identifier of the second node 100B.
  • the first node 100A may store a voter list including the node identifier of the second node 100B in response to being notified of the request information. That is, the first node 100A does not include the node identifier of the second node 100B that does not notify request information in the voter list. This makes it possible to suppress an increase in the amount of data in the ledger (so-called enlargement of the ledger).
  • the second node 100B may notify the same first node 100A of the request information only once. For example, even when the second node 100B votes for the same first node 100A multiple times, the second node 100B only uses the node identifier of the second node 100B for one of the multiple votes.
  • the first node 100A may be notified of request information requesting storage of a voter list including the following. This makes it possible to prevent the ledger from becoming too large.
  • the second node 100B may be in the same blockchain group regardless of whether it is the same first node 100A or not.
  • the request information may be notified only once.
  • the first node 100A may store the voter list in association with the block X identifier (hereinafter referred to as "block identifier").
  • the block identifier may be a height that is a block number.
  • the first node 100A may store a block X including a voter list and a block identifier in a ledger.
  • the first node 100A may include the block identifier in the voter list and then store the block X including the voter list in the ledger.
  • a case will be mainly described in which a block X including a voter list and a block identifier is stored in a ledger.
  • the second node 100B may store the block identifier of the block X for which the second node 100B has voted. This allows the second node 100B to keep a record of which block it has voted for.
  • the first node 100A may store the voter list in association with the node identifier of the proposer (hereinafter referred to as "proposer identifier").
  • the first node 100A may store the block X including the voter list and the proposer identifier in the ledger.
  • the first node 100A may include the proposer identifier in the voter list and then store the block X including the voter list in the ledger. This makes it possible to keep a record of which nodes have voted for which proposers.
  • the second node 100B may store the node identifier (proposer identifier) of the first node 100A that generated the block X for which it voted. This allows the second node 100B to keep a record of which proposer it has voted for.
  • any second node 100B transitions to a power-off state or a sleep state, and leaves (logs out) from the blockchain group. Then, the second node 100B transitions to a power-on state or an active state, and attempts to enter (log in) to the blockchain group.
  • the second node 100B performs processing for entering a blockchain group (hereinafter referred to as "entry processing").
  • Authentication nodes other than the second node 100B that belong to the blockchain group use the stored voter list to determine whether the second node 100B is a member of the blockchain group (i.e., an authentic node).
  • the authentication node that performs authentication processing for the second node 100B is the first node 100A. Since the first node 100A has higher performance than the second node 100B, it becomes easier to perform appropriate authentication processing.
  • the second node 100B performs entry processing by accessing or making an inquiry to the first node 100A. In the authentication process, the first node 100A checks the node identifier of the second node 100B, and checks whether the node identifier is included in the voter list.
  • the first node 100A determines that the second node 100B is a member of the blockchain group (that is, authentication is OK) in response to the fact that the node identifier of the second node 100B is included in the voter list.
  • the first node 100A determines that the authentication is OK, the first node 100A permits the second node 100B to perform the entry process.
  • the first node 100A determines that the second node 100B is not a member of the blockchain group (that is, authentication NG), it rejects the entry process by the second node 100B.
  • the second node 100B may notify the first node 100A of the stored block identifier of the block X.
  • the first node 100A determines that the second node 100B uses the blockchain based on the fact that the identifier of the second node 100B is included in the voter list associated with the block identifier notified from the second node 100B. It may be determined that the user is a member of a group. In this way, by performing the authentication process of the second node 100B using the block identifier and the voter list, the security strength at the time of authentication can be increased. Furthermore, the first node 100A does not need to search all the voter lists in the ledger, and only needs to search the voter list associated with the block identifier notified from the second node 100B. , it is possible to speed up the search and reduce the processing load.
  • the second node 100B may notify the first node 100A of the stored proposer identifier.
  • the first node 100A blocks the second node 100B based on the fact that the node identifier of the second node 100B is included in the voter list associated with the proposer identifier notified from the second node 100B. It may be determined that the user is a member of a chain group. In this way, by performing the authentication process of the second node 100B using the proposer identifier and the voter list, the security strength at the time of authentication can be increased.
  • the first node 100A does not need to search all the voter lists in the ledger, but only needs to search the voter list associated with the proposer identifier notified from the second node 100B. , it is possible to speed up the search and reduce the processing load.
  • the authentication based on the voter list may be performed in combination with authentication based on other factors.
  • Authentication based on other factors is, for example, authentication based on the latest block header (specifically, the height and hash value in the block header) that the second node 100B has, such as Tendermint Core. It's okay.
  • voting history can be used as an authentication factor with a simple procedure. Specifically, by voting on the block proposal, the second node 100B can subsequently enter the blockchain group. Therefore, the security strength during authentication can be improved without requiring the machine resources of the second node 100B.
  • any first node 100A that proposes a block can generate a block including a voter list. Furthermore, even at the time of authentication, any node that can view the ledger can respond to inquiries from the second node 100B without requiring a specific authentication server.
  • the entity performing the authentication process may also be the second node 100B that is participating in the blockchain group and can view the ledger. good.
  • FIG. 9 is a diagram illustrating a configuration example of a ledger according to the embodiment.
  • each first node 100A stores records of transactions occurring within the network in blocks.
  • one block has a block header that is a header portion, a transaction data portion that stores data of at least one transaction, and a voter list (voting history information).
  • the block header and transaction data part are similar to the structure of a general ledger.
  • Each voter list is associated with a height that is a block identifier.
  • block n stores a voter list including the node identifiers of each second node 100B that voted for block n. Further, in block n+1, a voter list including the node identifiers of each second node 100B that voted for block n+1 is stored. Further, in block n+2, a voter list including the node identifiers of each second node 100B that voted for block n+2 is stored.
  • FIG. 10 is a diagram illustrating an example of an operation flow when proposing and voting for a new block.
  • step S101 the first node 100A generates a new block (excluding the voter list) and proposes the block by notifying the other nodes 100.
  • step S102 the second node 100B that has received the proposal for the new block calculates and confirms whether the block is correct. If it is determined that the block is incorrect (step S103: NO), the second node 100B ends the process without voting for the block.
  • step S104 the second node 100B determines whether or not to put its own information (node identifier) on the voter list regarding the block. . For example, if the second node 100B has already notified request information (hereinafter referred to as "list addition flag") to the first node 100A that made the proposal, the second node 100B does not include its own information on the voter list. It may be determined that On the other hand, if the first node 100A that made the proposal has not yet been notified of the list addition flag, the second node 100B may determine to include its own information on the voter list.
  • list addition flag request information
  • step S104 determines that its own information is not to be included in the voter list (step S104: NO)
  • the process proceeds to step S106 without performing step S105.
  • step S104 determines to put its own information on the voter list (step S104: YES)
  • step S105 advances the process to step S105.
  • the second node 100B sets a list addition flag in the voting message (approval message) notified to the first node 100A.
  • the voting message may include the node identifier of the second node 100B.
  • the second node 100B also stores the block identifier (for example, height) of the block proposed by the first node 100A in step S101. Further, the second node 100B may store the node identifier of the first node 100A as a proposer identifier.
  • step S106 the second node 100B notifies the first node 100A of the voting message.
  • step S107 the first node 100A that has received the voting message from the second node 100B checks whether the list addition flag is set in the voting message. If the list addition flag is not set in the voting message (step S107: NO), in step S108, the first node 100A saves the block proposed in step S101 by adding it to the ledger.
  • step S109 the first node 100A adds the voter list including the node identifier of the second node 100B to the block proposed in step S101.
  • the block to which the voter list has been assigned is added to the ledger and saved. Note that when the ledger is updated in this way, the updated ledger is shared among the plurality of first nodes 100A.
  • FIG. 11 is a diagram showing an example of the operation flow at the time of entry of the second node 100B.
  • step S131 the second node 100B notifies the first node 100A of an authentication request message including its own node identifier.
  • the second node 100B includes the block identifier stored in step S105 in the authentication request message and notifies it.
  • step S132 the first node 100A that has received the authentication request message from the second node 100B searches the voter list in the ledger. Specifically, the first node 100A extracts the voter list associated with the block identifier (for example, height) in the authentication request message, and selects the node identifier in the authentication request message from the voter list. Check whether it exists.
  • the block identifier for example, height
  • step S133 if the node identifier in the authentication request message exists in the voter list, the first node 100A determines that it is the correct second node 100B (i.e., a member of the blockchain group), and authenticates it. OK. On the other hand, if the node identifier in the authentication request message does not exist in the voter list, it is determined that the second node 100B is incorrect (that is, it is not a member of the blockchain group), and authentication is rejected.
  • step S134 the first node 100A notifies the second node 100B of the authentication result (authentication OK or authentication NG) in step S133.
  • the second node 100B is notified from the first node 100A that the authentication is OK, the second node 100B completes entry into the blockchain group.
  • the first node 100A notifies the second node 100B of authentication failure, the second node 100B is denied entry to the blockchain group.
  • FIG. 12 is a diagram for explaining the operation of this modified example.
  • the first node 100A according to this modified example differs from the above-described embodiment in that in the storage process, the voter list is stored in a database (DB) 150 separately from the ledger.
  • DB database
  • the other configurations according to this modified example are the same as those in the above-described embodiment.
  • the DB 150 may be provided on a one-to-one basis with the first node 100A.
  • the DB 150 may be provided within the first node 100A.
  • the first node 100A may store the voter list generated by itself only in its own DB 150, and may not share the voter list with other first nodes 100A.
  • a common DB 150 may be provided for two or more first nodes 100A.
  • the common DB 150 may be provided on the communication network 20. In the following, it is mainly assumed that the DB 150 is provided one-to-one with the first node 100A.
  • FIG. 13 is a diagram showing an example of a change in the operation flow when proposing and voting for a new block. In the following, differences from the operation flow according to the above-described embodiment will be mainly explained.
  • step S201 the first node 100A generates a new block and notifies the other nodes 100 of the block to propose it.
  • step S202 the second node 100B that has received the proposal for the new block calculates and confirms whether the block is correct. If it is determined that the block is incorrect (step S203: NO), the second node 100B ends the process without voting for the block.
  • step S204 the second node 100B determines whether or not to put its own information (node identifier) on the voter list regarding the block. .
  • step S204: NO When the second node 100B determines that its own information is not to be included in the voter list (step S204: NO), the second node 100B advances the process to step S206 without performing step S205. On the other hand, if the second node 100B determines to put its own information on the voter list (step S204: YES), the second node 100B advances the process to step S205.
  • the second node 100B sets a list addition flag in the voting message (approval message) notified to the first node 100A.
  • the voting message may include the node identifier of the second node 100B.
  • the second node 100B stores the node identifier of the first node 100A as a proposer identifier. Further, the second node 100B may store the block identifier (for example, height) of the block proposed by the first node 100A in step S201.
  • step S206 the second node 100B notifies the first node 100A of the voting message.
  • step S207 the first node 100A that has received the voting message from the second node 100B checks whether the list addition flag is set in the voting message. If the list addition flag is not set in the voting message (step S207: NO), in step S208, the first node 100A saves the block proposed in step S201 by adding it to the ledger.
  • step S209 the first node 100A saves the block proposed in step S201 by adding it to the ledger. Further, the first node 100A stores a voter list including the node identifier of the second node 100B in the DB 150 of the first node 100A.
  • FIG. 14 is a diagram showing an example of a change in the operation flow at the time of entry of the second node 100B.
  • step S231 the second node 100B notifies the first node 100A of an authentication request message including its own node identifier.
  • the second node 100B includes the block identifier stored in step S205 in the authentication request message and notifies it.
  • step S232 the first node 100A that has received the authentication request message from the second node 100B searches the voter list in the DB 150 of the proposer (first node 100A) indicated by the proposer identifier in the authentication request message. Specifically, the first node 100A checks whether the node identifier in the authentication request message exists in the voter list in the DB 150.
  • step S233 if the node identifier in the authentication request message is present in the voter list, the first node 100A determines that it is the correct second node 100B (i.e., a member of the blockchain group), and authenticates the second node 100A. OK. On the other hand, if the node identifier in the authentication request message does not exist in the voter list, it is determined that the second node 100B is incorrect (that is, it is not a member of the blockchain group), and authentication is rejected.
  • step S234 the first node 100A notifies the second node 100B of the authentication result (authentication OK or authentication NG) in step S233.
  • the second node 100B is notified from the first node 100A that the authentication is OK, the second node 100B completes entry into the blockchain group.
  • the first node 100A notifies the second node 100A of the failure of authentication, the second node 100B is denied entry to the blockchain group.
  • a program that causes a computer to execute each process performed by the node 100 may be provided.
  • the program may be recorded on a computer readable medium.
  • Computer-readable media allow programs to be installed on a computer.
  • the computer-readable medium on which the program is recorded may be a non-transitory recording medium.
  • the non-transitory 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 the node 100 may be integrated, and at least a portion of the node 100 may be configured as a semiconductor integrated circuit (chip set, SoC: System on a chip).
  • the words “based on” and “in accordance with” do not mean “based solely on” or “in accordance with” unless expressly stated otherwise.
  • Reference to “based on” means both “based solely on” and “based at least in part on.”
  • the phrase “in accordance with” means both “in accordance with” and “in accordance with, at least in part.”
  • the terms “include”, “comprise”, and variations thereof do not mean to include only the listed items, and may include only the listed items, or may include only the listed items. In addition, it means that further items may be included.
  • the term “or” is not intended to be exclusive OR. Furthermore, any reference to elements using the designations "first,” “second,” etc.
  • a blockchain system in which a block generated by a first node in a group consisting of a plurality of nodes is determined by votes of other nodes, The first node executes a storage process to save voting history information regarding the vote performed by a second node whose performance is lower than that of the first node, When the second node performs processing to enter the group, an authentication node other than the second node that belongs to the group uses the voting history information to ensure that the second node is in the group.
  • a blockchain system that performs authentication processing to authenticate membership.
  • the first node manages a ledger including the blocks, The blockchain system according to (1) above, wherein the storage process includes a process of saving the voting history information in the ledger.
  • the second node When the second node performs the vote, the second node notifies the first node of request information requesting storage of the voting history information,
  • the blockchain system according to any one of (1) to (4) above, wherein the storage process includes a process of storing the voting history information in response to notification of the request information.
  • the voting history information includes an identifier of the node that performed the voting
  • the authentication process includes a process of determining that the second node is a member of the group based on the fact that the identifier of the second node is included in the voting history information.
  • Blockchain system described in either.
  • the storage process includes a process of storing the voting history information in association with the block identifier,
  • the second node is a process of storing an identifier of the block for which the second node has cast the vote; when the second node performs a process of entering the group, performing a process of notifying the authentication node of the identifier of the stored block;
  • the authentication process determines that the second node is a member of the group based on the fact that the voting history information associated with the notified block identifier includes an identifier of the second node.
  • the storage process includes a process of storing the voting history information in association with an identifier of the first node,
  • the second node is storing an identifier of the first node that generated the block for which the second node voted; when the second node performs a process of entering the group, a process of notifying the authentication node of the stored identifier of the first node;
  • the authentication process determines that the second node is a member of the group based on the fact that the node identifier of the second node is included in the voting history information associated with the notified identifier of the first node.
  • the blockchain system according to (7) or (8) above, including a process of determining.
  • the first node used in a blockchain system in which a block generated by the first node in a group consisting of a plurality of nodes is determined by votes of other nodes, a storage process for storing voting history information regarding the voting performed by a second node having lower performance than the first node; and a control unit that executes an authentication process for authenticating whether the second node is a member of the group based on the voting history information when the second node performs a process for entering the group.
  • the first node used in a blockchain system in which a block generated by a first node in a group consisting of a plurality of nodes is determined by votes of other nodes, a storage process for storing voting history information regarding the voting performed by a second node having lower performance than the first node;
  • Blockchain system 20 Communication network 100: Node 100A: First node 100B: Second node 110: Communication unit 120: Control unit 121: Processor 130: Storage unit 140: Battery

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Provided is a blockchain system for establishing a block, which is generated by a first node within a group including a plurality of nodes, by a vote of another node, wherein the first node executes storage processing of storing vote history information relating to the vote casted by a second node having lower performance than the first node, and authentication processing of authenticating whether or not the second node is a member of the group on the basis of the vote history information when the second node executes processing of entering the group.

Description

ブロックチェーンシステム、ノード、及びプログラムBlockchain systems, nodes and programs
 本開示は、ブロックチェーンシステム、ノード、及びプログラムに関する。 The present disclosure relates to a blockchain system, a node, and a program.
 近年、ブロックチェーン技術が注目されている。ブロックチェーン技術では、複数のノードによって自律分散型のネットワーク、具体的には、P2P(Peer to Peer)ネットワークが形成されるため、システムダウンが起きないというメリットがある。 Blockchain technology has been attracting attention in recent years. Blockchain technology has the advantage that system failures do not occur because multiple nodes form an autonomous decentralized network, specifically a P2P (Peer to Peer) network.
 ブロックチェーン技術は、P2Pネットワーク内の取引(トランザクション)の履歴を各ノードが台帳として管理する仕組みを有する。このような仕組みは分散型台帳技術とも称される。P2Pネットワークを構成するグループ内でトランザクションが発生すると、当該トランザクションに対応するブロックをノードが生成及び提案し、他のノードが当該ブロックについて検算及び投票することで当該ブロックが確定し、当該ブロックが台帳に追加される。 Blockchain technology has a mechanism in which each node manages the history of transactions within a P2P network as a ledger. This kind of mechanism is also called distributed ledger technology. When a transaction occurs within a group that constitutes a P2P network, a node generates and proposes a block corresponding to the transaction, other nodes verify and vote on the block, the block is finalized, and the block is added to the ledger. will be added to.
 ブロックチェーンのプラットフォームの1つにテンダーミント・コアがある(例えば、特許文献1参照)。テンダーミント・コアには、フルノード及びライトクライアントというノードの種別があり、フルノードは、トランザクションを実行して結果を検証する等の処理を行うため、リソースを大量に消費する。一方、ライトクライアントは、ブロックの生成結果を検証するだけであり、リソースの要件が低い。 One of the blockchain platforms is Tendermint Core (for example, see Patent Document 1). Tendermint Core has two types of nodes: full nodes and light clients. Full nodes consume a large amount of resources because they perform processes such as executing transactions and verifying results. On the other hand, a light client only verifies the block generation results and has low resource requirements.
特表2020-514889号公報Special table 2020-514889 publication
 第1の態様に係るブロックチェーンシステムは、複数のノードにより構成されるグループ内で第1ノードが生成したブロックを他のノードの投票により確定するブロックチェーンシステムである。前記第1ノードは、前記第1ノードよりも性能が低い第2ノードが行った前記投票に関する投票履歴情報を保存する保存処理を実行する。前記第2ノードが前記グループにエントリーする処理を行う際に、前記グループに属するノードであって当該第2ノード以外の認証ノードは、前記投票履歴情報を用いて、前記第2ノードが前記グループのメンバであるかを認証する認証処理を実行する。 The blockchain system according to the first aspect is a blockchain system in which a block generated by a first node in a group made up of a plurality of nodes is determined by votes of other nodes. The first node executes a storage process for storing voting history information regarding the vote performed by a second node whose performance is lower than that of the first node. When the second node performs processing to enter the group, an authentication node other than the second node that belongs to the group uses the voting history information to ensure that the second node is in the group. Executes authentication processing to authenticate membership.
 第2の態様に係るノードは、複数のノードにより構成されるグループ内で第1ノードが生成したブロックを他のノードの投票により確定するブロックチェーンシステムで用いる前記第1ノードである。前記第1ノードは、前記第1ノードよりも性能が低い第2ノードが行った前記投票に関する投票履歴情報を保存する保存処理と、前記第2ノードが前記グループにエントリーする処理を行う際に、前記投票履歴情報に基づいて、前記第2ノードが前記グループのメンバであるかを認証する認証処理と、を実行する制御部を備える。 The node according to the second aspect is the first node used in a blockchain system in which a block generated by a first node in a group made up of a plurality of nodes is determined by votes of other nodes. When the first node performs a storage process for storing voting history information regarding the vote performed by a second node whose performance is lower than that of the first node, and a process for the second node to enter the group, The method further includes a control unit that executes an authentication process for authenticating whether the second node is a member of the group based on the voting history information.
 第3の態様に係るプログラムは、複数のノードにより構成されるグループ内で第1ノードが生成したブロックを他のノードの投票により確定するブロックチェーンシステムで用いる前記第1ノードに、前記第1ノードよりも性能が低い第2ノードが行った前記投票に関する投票履歴情報を保存する保存処理と、前記第2ノードが前記グループにエントリーする処理を行う際に、前記投票履歴情報に基づいて、前記第2ノードが前記グループのメンバであるかを認証する認証処理と、を実行させる。 The program according to the third aspect is configured to send the first node to the first node used in a blockchain system in which a block generated by a first node in a group consisting of a plurality of nodes is determined by votes of other nodes. When performing a storage process for saving voting history information regarding the vote performed by a second node with lower performance than the second node, and a process for the second node to enter the group, the voting history information is stored based on the voting history information. An authentication process for authenticating whether the two nodes are members of the group is executed.
一般的なブロックチェーンシステムにおけるネットワーク構成例を示す図である。It is a diagram showing an example of a network configuration in a general blockchain system. 各ノードが管理する台帳の構成例を示す図である。FIG. 3 is a diagram illustrating a configuration example of a ledger managed by each node. 台帳に新たなブロックを追加する際の動作例を示す図である。FIG. 7 is a diagram illustrating an example of an operation when adding a new block to a ledger. 台帳に新たなブロックを追加する際の動作例を示す図である。FIG. 7 is a diagram illustrating an example of an operation when adding a new block to a ledger. ノードの構成例を示す図である。FIG. 3 is a diagram showing an example of the configuration of a node. 実施形態に係るブロックチェーンシステムの構成例を示す図である。FIG. 1 is a diagram illustrating a configuration example of a blockchain system according to an embodiment. 実施形態に係るブロックチェーンシステムの動作の概要を説明するための図である。FIG. 2 is a diagram for explaining an overview of the operation of the blockchain system according to the embodiment. 実施形態に係るブロックチェーンシステムの動作の概要を説明するための図である。FIG. 2 is a diagram for explaining an overview of the operation of the blockchain system according to the embodiment. 実施形態に係る台帳の構成例を示す図である。It is a figure showing an example of composition of a ledger concerning an embodiment. 実施形態に係る新たなブロックの提案及び投票時の動作フローの一例を示す図である。FIG. 3 is a diagram illustrating an example of an operation flow when proposing and voting for a new block according to the embodiment. 実施形態に係る第2ノードのエントリー時の動作フローの一例を示す図である。FIG. 7 is a diagram illustrating an example of an operation flow at the time of entry of the second node according to the embodiment. 変更例の動作を説明するための図である。FIG. 7 is a diagram for explaining the operation of a modified example. 実施形態に係る新たなブロックの提案及び投票時の動作フローの変更例を示す図である。FIG. 7 is a diagram illustrating an example of a change in the operation flow when proposing and voting for a new block according to the embodiment. 実施形態に係る第2ノードのエントリー時の動作フローの変更例を示す図である。FIG. 7 is a diagram illustrating an example of a change in the operation flow at the time of entry of the second node according to the embodiment.
 上述のテンダーミント・コアでは、フルノードには、ブロックチェーンのグループ内のすべての台帳などの大量のデータが保存されるが、ライトクライアントは、最新のブロックヘッダのみを保存する。ブロックチェーンのメンバとしてライトクライアントを認証するときには、この情報、具体的には、ブロックヘッダ内のハイト(index)及びハッシュ値のみを使用する。これはID及びパスワードだけで認証するのと同等であり、セキュリティ強度が低いという問題がある。 In the Tendermint Core described above, full nodes store large amounts of data such as all the ledgers in a group of blockchains, while light clients only store the latest block header. Only this information, specifically the height (index) and hash value in the block header, is used when authenticating a light client as a member of the blockchain. This is equivalent to authentication using only an ID and password, and there is a problem in that the security strength is low.
 セキュリティ強度を高めるためのデバイス認証手段としては、SSLクライアント認証がある。SSLクライアント認証では、認証したいデバイス内に、認証機関から発行されたクライアント証明書をインストールしておき、サーバへ送付する。サーバ側では、クライアント証明書用のルート証明書を用いてデバイスを認証する。しかしながら、ライトクライアントのように通信プロトコルの制約があったりメモリリソースが限られたりする低性能デバイスには、SSLクライアント認証を用いることができない場合がある。 SSL client authentication is a device authentication method for increasing security strength. In SSL client authentication, a client certificate issued by a certification authority is installed in the device to be authenticated and sent to the server. On the server side, the root certificate for the client certificate is used to authenticate the device. However, SSL client authentication may not be able to be used for low-performance devices such as light clients that have communication protocol restrictions or limited memory resources.
 そこで、本開示は、性能の低いノードであっても認証時のセキュリティ強度を高めることを目的とする。 Therefore, the present disclosure aims to increase security strength during authentication even for nodes with low performance.
 図面を参照しながら実施形態に係るブロックチェーンシステムついて説明する。ブロックチェーンシステムとは、ブロックチェーン技術を用いるシステムをいう。なお、図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。 A blockchain system according to an embodiment will be described with reference to the drawings. A blockchain system is a system that uses blockchain technology. In addition, in the description of the drawings, the same or similar parts are given the same or similar symbols.
 (1)ブロックチェーン技術の概要
 まず、図1乃至図4を参照して、一般的なブロックチェーン技術について説明する。
(1) Overview of blockchain technology First, general blockchain technology will be explained with reference to FIGS. 1 to 4.
 図1は、一般的なブロックチェーンシステムにおけるネットワーク構成例を示す図である。図1において、ノード間を結ぶ線はノード間の通信接続を表している。 FIG. 1 is a diagram showing an example of a network configuration in a general blockchain system. In FIG. 1, lines connecting nodes represent communication connections between nodes.
 ブロックチェーン技術では、複数のノード100によって自律分散型のネットワーク、具体的には、P2Pネットワークが形成される。各ノード100は、相互に通信可能に接続されている。ノード100間の通信は、公衆通信網及び/又はローカル通信網を介して行われてもよい。なお、図1において、ノード100a乃至100eの合計5つのノードを例示しているが、ノード100の数は5つに限定されない。各ノード100は、少なくとも通信機能及び演算処理機能を有する機器、例えば、PC(Personal Computer)である。一般的なブロックチェーン技術では、各ノード100が十分な性能(スペック)を有していることが前提となっている。 In blockchain technology, a plurality of nodes 100 form an autonomous decentralized network, specifically a P2P network. Each node 100 is connected to be able to communicate with each other. Communication between nodes 100 may occur via a public communications network and/or a local communications network. Although FIG. 1 illustrates a total of five nodes 100a to 100e, the number of nodes 100 is not limited to five. Each node 100 is a device, such as a PC (Personal Computer), that has at least a communication function and an arithmetic processing function. In general blockchain technology, it is assumed that each node 100 has sufficient performance (spec).
 各ノード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 in one node 100 (for example, node 100a), all participating nodes (nodes 100a to 100e) perform calculation (verification) processing. This provides a mechanism in which a history of correct transactions that is extremely difficult to falsify remains even if there is fraud among the participating nodes 100 or the nodes 100 do not operate normally.
 なお、トランザクションは、例えば、金銭又はポイント等の送金又は決済等であってもよい。或いは、当該トランザクションは、例えば、通信の発生等であってもよい。その場合、台帳のブロックに格納されるトランザクションデータは、送金又は決済のデータであってもよい。或いは、当該トランザクションデータは、通信のデータであってもよい。トランザクションは、ネットワークにおけるノードの参加又は削除等であってもよい。その場合、台帳のブロックに格納されるトランザクションデータは、ノード100のデータ(パラメータ)であってもよい。トランザクションは、台帳の更新であってもよい。台帳のブロックに格納されるトランザクションデータがノード100のデータ(パラメータ)であってもよい。 Note that the transaction may be, for example, a remittance or settlement of money or points. Alternatively, the transaction may be, for example, the occurrence of communication. In that case, the transaction data stored in the block of the ledger may be remittance or settlement data. Alternatively, the transaction data may be communication data. A transaction may be the joining or removal of a node in a network, etc. In that case, the transaction data stored in the block of the ledger may be data (parameters) of the node 100. A transaction may be an update to a ledger. The transaction data stored in the blocks of the ledger may be data (parameters) of the node 100.
 図2は、各ノード100が管理する台帳の構成例を示す図である。 FIG. 2 is a diagram showing an example of the structure of a ledger managed by each node 100.
 各ノード100は、ネットワーク内で発生したトランザクションの記録をブロックに格納する。1つのブロックは、ヘッダ部分であるブロックヘッダと、少なくとも1つのトランザクションのデータを格納するトランザクションデータ部分とを有する。ブロックヘッダには、1つ前に生成されたブロックから計算されたハッシュ値等が格納される。例えば、ブロックn+1のブロックヘッダには、ブロックnから計算されたハッシュ値等が格納される。このように、台帳は、生成された各ブロックが時系列に沿ってチェーン状に連結されるデータ構造を有する。ブロックヘッダは、該当するブロックの番号を表すハイトと、ハッシュ値の計算に用いる値であるナンスとをさらに含んでもよい。 Each node 100 stores a record of transactions occurring within the network in a block. One block has a block header, which is a header part, and a transaction data part, which stores data of at least one transaction. The block header stores a hash value etc. calculated from the block generated immediately before. For example, a hash value calculated from block n is stored in the block header of block n+1. In this way, the ledger has a data structure in which each generated block is connected in a chain in chronological order. The block header may further include a height representing the number of the corresponding block and a nonce that is a value used to calculate the hash value.
 図3及び図4は、台帳に新たなブロックを追加する際の動作例を示す図である。 3 and 4 are diagrams showing an example of the operation when adding a new block to the ledger.
 図3に示すように、P2Pネットワークを構成するグループ内でトランザクションが発生した後、当該トランザクションに対応する新たなブロックを、「プロポーザ」と称されるノード100が生成し、他のノード100に対して新たなブロックを通知することで提案する。例えば、複数のノード100がナンスの値を変化させながらトランザクションデータ等と合わせてそのハッシュ値を計算し、特定条件を満たすハッシュ値を見つけたノード100(プロポーザ)が、生成したブロックを他のノード100に通知する。新たなブロックの提案を受けた他のノード100は、新たなブロックのハッシュ値を検算する。ここでは検算に成功したと仮定して説明を進める。 As shown in FIG. 3, after a transaction occurs within a group that constitutes a P2P network, a node 100 called a "proposer" generates a new block corresponding to the transaction and sends it to other nodes 100. The new block is proposed by notifying the user of the new block. For example, a plurality of nodes 100 calculate a hash value by combining the nonce value with transaction data, etc., and a node 100 (proposer) that finds a hash value that satisfies a specific condition transfers the generated block to other nodes. Notify 100. Other nodes 100 that have received the new block proposal calculate the hash value of the new block. Here, we will proceed with the explanation assuming that the calculation was successful.
 続いて、図4に示すように、新たなブロックの提案を受けた他のノード100は、検算したブロックを新たなブロックとして認めるようにノード100(プロポーザ)に対して投票する。投票を行う他のノード100を「投票者」と称する。ノード100(プロポーザ)は、他のノード100(投票者)からある一定数の投票が得られた場合、提案した新たなブロックを確定し、当該新たなブロックを台帳に追加する。 Subsequently, as shown in FIG. 4, the other nodes 100 that have received the new block proposal vote for the node 100 (proposer) to approve the verified block as a new block. Other nodes 100 that vote are referred to as "voters." If a certain number of votes are obtained from other nodes 100 (voters), the node 100 (proposer) finalizes the proposed new block and adds the new block to the ledger.
 図5は、ノード100の構成例を示す図である。 FIG. 5 is a diagram showing an example of the configuration of the node 100.
 図5に示すように、ノード100は、通信部110と、制御部120と、記憶部130とを有する。ノード100は、バッテリ140を有していてもよい。 As shown in FIG. 5, the node 100 includes a communication section 110, a control section 120, and a storage section 130. Node 100 may include 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 or 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 processing includes the above-mentioned processing and the processing described below. 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 for processing by the processor 121. The storage unit 130 includes a nonvolatile storage device and a volatile storage device.
 バッテリ140は、ノード100(機器)の各部に供給する電力を蓄える。 The battery 140 stores power to be supplied to each part of the node 100 (device).
 (2)実施形態に係るブロックチェーンシステム
 実施形態に係るブロックチェーンシステムについて説明する。
(2) Blockchain system according to the embodiment A blockchain system according to the embodiment will be described.
 (2.1)ブロックチェーンシステムの構成例
 図6は、実施形態に係るブロックチェーンシステム1の構成例を示す図である。
(2.1) Configuration example of blockchain system FIG. 6 is a diagram showing a configuration example of the blockchain system 1 according to the embodiment.
 図6に示すように、実施形態に係るブロックチェーンシステム1は、1つ以上の第1ノード100Aと、第1ノード100Aよりも性能が低い1つ以上の第2ノード100Bとを有する。性能とは、処理能力、記憶容量、及びバッテリ容量のうち少なくとも1つであってもよい。第1ノード100Aは、PC等の機器であってもよい。第2ノード100Bは、センサデバイス等のIoT(Internet of Things)機器であってもよい。第1ノード100A及び第2ノード100Bは、台帳を少なくとも部分的に共有するグループ(P2Pネットワーク)を構成する。以下において、このようなグループを「ブロックチェーングループ」と称する。 As shown in FIG. 6, the blockchain system 1 according to the embodiment includes one or more first nodes 100A and one or more second nodes 100B whose performance is lower than that of the first nodes 100A. Performance may be at least one of processing power, storage capacity, and battery capacity. The first node 100A may be a device such as a PC. The second node 100B may be an IoT (Internet of Things) device such as a sensor device. The first node 100A and the second node 100B form a group (P2P network) that at least partially shares the ledger. In the following, such a group will be referred to as a "blockchain group."
 図6において、3つ以上の第1ノード100A1,100A2,100A3・・・を例示しているが、第1ノード100Aの数は1つ又は2つであってもよい。第1ノード100A1,100A2,100A3・・・を区別しないときは単に第1ノード100Aと称する。また、3つ以上の第2ノード100B1,100B2,100B3・・・を例示しているが、第2ノード100Bの数は1つ又は2つであってもよい。第2ノード100B1,100B2,100B3・・・を区別しないときは単に第2ノード100Bと称する。なお、第1ノード100A及び第2ノード100Bを区別しないときは単にノード100と称する。各ノード100は、通信ネットワーク20を介してP2Pで通信する。通信ネットワーク20は、LAN(Local Area Network)、WAN(Wide Area Network)、及びインターネットのうち少なくとも1つを含む。 In FIG. 6, three or more first nodes 100A1, 100A2, 100A3, etc. are illustrated, but the number of first nodes 100A may be one or two. When the first nodes 100A1, 100A2, 100A3, etc. are not distinguished from each other, they are simply referred to as the first node 100A. Further, although three or more second nodes 100B1, 100B2, 100B3, etc. are illustrated, the number of second nodes 100B may be one or two. When the second nodes 100B1, 100B2, 100B3, etc. are not distinguished from each other, they are simply referred to as the second node 100B. Note that when the first node 100A and the second node 100B are not distinguished from each other, they are simply referred to as a node 100. Each node 100 communicates via P2P via the communication network 20. The communication network 20 includes at least one of a LAN (Local Area Network), a WAN (Wide Area Network), and the Internet.
 第1ノード100Aは、フルノードであってもよい。フルノードは、トランザクションを実行して結果を検証する等の処理を行うため、リソースを大量に消費する。第2ノード100Bは、ライトクライアントであってもよい。ライトクライアントは、ブロックの生成結果を検証するだけであり、リソースの要件が低い。フルノードには、ブロックチェーングループ内のすべての台帳などの大量のデータが保存されるが、ライトクライアントは、最新のブロックヘッダのみを保存してもよい。 The first node 100A may be a full node. Full nodes consume a large amount of resources because they perform processing such as executing transactions and verifying the results. The second node 100B may be a light client. Light clients only verify the results of block generation and have low resource requirements. Full nodes store large amounts of data, such as all the ledgers in a blockchain group, while light clients may only store the latest block headers.
 このように構成されたブロックチェーンシステム1において、各第1ノード100Aは、プロポーザ及び投票者として動作し得る。各第2ノード100Bは、プロポーザとして動作せずに、投票者として動作し得る。ある第1ノード100A(プロポーザ)が生成したブロックは、他のノード100(プロポーザ以外の第1ノード100A、及び第2ノード100B)の投票により確定する。 In the blockchain system 1 configured in this way, each first node 100A can operate as a proposer and a voter. Each second node 100B may act as a voter without acting as a proposer. A block generated by a certain first node 100A (proposer) is determined by votes of other nodes 100 (first node 100A other than the proposer and second node 100B).
 (2.2)ブロックチェーンシステムの動作の概要
 次に、実施形態に係るブロックチェーンシステム1の動作の概要について説明する。図7及び図8は、実施形態に係るブロックチェーンシステム1の動作の概要を説明するための図である。
(2.2) Overview of operation of blockchain system Next, an overview of operation of blockchain system 1 according to the embodiment will be described. 7 and 8 are diagrams for explaining an overview of the operation of the blockchain system 1 according to the embodiment.
 図7に示すように、ブロックチェーンシステム1では、複数のノード100により構成されるブロックチェーングループ(P2Pネットワーク)内で第1ノード100Aが生成したブロックを他のノード100の投票により確定する。図7において、投票を行うノードが第2ノード100Bである一例を示している。 As shown in FIG. 7, in the blockchain system 1, a block generated by the first node 100A in a blockchain group (P2P network) composed of a plurality of nodes 100 is determined by votes of other nodes 100. FIG. 7 shows an example in which the node that performs voting is the second node 100B.
 プロポーザである第1ノード100Aは、新たなブロック(ここでは、「ブロックX」とする)を生成及び提案した後、第2ノード100BがブロックXについて行った投票に関する投票履歴情報を保存する保存処理を実行する。具体的には、第1ノード100Aは、投票履歴情報として投票者リストを生成及び保存する。これにより、ブロックチェーングループにおける投票の活動の履歴を残すことが可能になる。後述のように、投票者リストは認証処理において用いられる。 After the first node 100A, which is a proposer, generates and proposes a new block (herein referred to as "block Execute. Specifically, the first node 100A generates and stores a voter list as voting history information. This makes it possible to keep a history of voting activities in the blockchain group. As described below, the voter list is used in the authentication process.
 投票者リストは、投票者のリストであって、投票を行った第2ノード100Bの識別子(以下、「ノード識別子」と称する)を含む。ノード識別子は、少なくともブロックチェーングループ内でノード100を一意に識別可能な識別子であって、例えば、ノード100のMACアドレス、製造番号、及び/又は固定IPアドレスをノード識別子として利用できる。 The voter list is a list of voters and includes the identifier of the second node 100B that voted (hereinafter referred to as "node identifier"). The node identifier is an identifier that can uniquely identify the node 100 at least within the blockchain group, and for example, the MAC address, serial number, and/or fixed IP address of the node 100 can be used as the node identifier.
 第1ノード100Aは、ブロックXを含む台帳を管理する。実施形態では、第1ノード100Aは、保存処理において、投票者リストを台帳に保存する。台帳は改ざんが困難であるため、投票者リストを台帳に保存することにより、正しい投票者リストを維持できる。また、台帳は各第1ノード100Aが共有(すなわち、分散して保持)するため、投票者リストを認証処理に利用することが容易になる。 The first node 100A manages a ledger including block X. In the embodiment, the first node 100A stores the voter list in the ledger in the storage process. Since the ledger is difficult to tamper with, the correct voter list can be maintained by storing the voter list in the ledger. Further, since the ledger is shared by each first node 100A (that is, held in a distributed manner), it becomes easy to use the voter list for authentication processing.
 第2ノード100Bは、投票を行う際に、当該第2ノード100Bのノード識別子を含む投票者リストの保存を要求する要求情報を第1ノード100Aに通知してもよい。保存処理において、第1ノード100Aは、要求情報が通知されたことに応じて、当該第2ノード100Bのノード識別子を含む投票者リストを保存してもよい。すなわち、第1ノード100Aは、要求情報を通知しない第2ノード100Bについては、当該第2ノード100Bのノード識別子を投票者リストに含めない。これにより、台帳のデータ量の増大(いわゆる、台帳の肥大化)を抑制できる。 When voting, the second node 100B may notify the first node 100A of request information requesting storage of a voter list including the node identifier of the second node 100B. In the storage process, the first node 100A may store a voter list including the node identifier of the second node 100B in response to being notified of the request information. That is, the first node 100A does not include the node identifier of the second node 100B that does not notify request information in the voter list. This makes it possible to suppress an increase in the amount of data in the ledger (so-called enlargement of the ledger).
 第2ノード100Bは、同一の第1ノード100Aに対して要求情報の通知を1回のみ行ってもよい。例えば、第2ノード100Bは、同一の第1ノード100Aに対して複数回の投票を行う場合であっても、当該複数回の投票のうちの1回についてのみ、当該第2ノード100Bのノード識別子を含む投票者リストの保存を要求する要求情報を第1ノード100Aに通知してもよい。これにより、台帳の肥大化を抑制できる。或いは、投票者リストを含む台帳がすべての第1ノード100Aで共有される前提下において、第2ノード100Bは、同一の第1ノード100Aであるか否かにかかわらず、同一のブロックチェーングループ内で要求情報の通知を1回のみ行ってもよい。 The second node 100B may notify the same first node 100A of the request information only once. For example, even when the second node 100B votes for the same first node 100A multiple times, the second node 100B only uses the node identifier of the second node 100B for one of the multiple votes. The first node 100A may be notified of request information requesting storage of a voter list including the following. This makes it possible to prevent the ledger from becoming too large. Alternatively, under the premise that the ledger including the voter list is shared by all the first nodes 100A, the second node 100B may be in the same blockchain group regardless of whether it is the same first node 100A or not. The request information may be notified only once.
 第1ノード100Aは、保存処理において、投票者リストをブロックXの識別子(以下、「ブロック識別子」と称する)と対応付けて保存してもよい。ブロック識別子は、ブロック番号であるハイトであってもよい。第1ノード100Aは、投票者リストとブロック識別子とを含むブロックXを台帳に保存してもよい。或いは、第1ノード100Aは、ブロック識別子を投票者リストに含めたうえで、投票者リストを含むブロックXを台帳に保存してもよい。以下において、投票者リストとブロック識別子とを含むブロックXを台帳に保存する場合について主として説明する。投票者リストをブロック識別子と対応付けて保存することにより、どのブロックに対してどのノードが投票を行ったかの記録を残すことができる。 In the storage process, the first node 100A may store the voter list in association with the block X identifier (hereinafter referred to as "block identifier"). The block identifier may be a height that is a block number. The first node 100A may store a block X including a voter list and a block identifier in a ledger. Alternatively, the first node 100A may include the block identifier in the voter list and then store the block X including the voter list in the ledger. In the following, a case will be mainly described in which a block X including a voter list and a block identifier is stored in a ledger. By storing the voter list in association with block identifiers, it is possible to keep a record of which nodes have voted for which blocks.
 このような前提下において、第2ノード100Bは、第2ノード100Bが投票を行ったブロックXのブロック識別子を記憶してもよい。これにより、第2ノード100Bは、どのブロックに対して自身が投票を行ったかの記録を残すことができる。 Under such a premise, the second node 100B may store the block identifier of the block X for which the second node 100B has voted. This allows the second node 100B to keep a record of which block it has voted for.
 第1ノード100Aは、保存処理において、投票者リストをプロポーザのノード識別子(以下、「プロポーザ識別子」と称する)と対応付けて保存してもよい。第1ノード100Aは、投票者リストとプロポーザ識別子とを含むブロックXを台帳に保存してもよい。或いは、第1ノード100Aは、プロポーザ識別子を投票者リストに含めたうえで、投票者リストを含むブロックXを台帳に保存してもよい。これにより、どのプロポーザに対してどのノードが投票を行ったかの記録を残すことができる。 In the storage process, the first node 100A may store the voter list in association with the node identifier of the proposer (hereinafter referred to as "proposer identifier"). The first node 100A may store the block X including the voter list and the proposer identifier in the ledger. Alternatively, the first node 100A may include the proposer identifier in the voter list and then store the block X including the voter list in the ledger. This makes it possible to keep a record of which nodes have voted for which proposers.
 このような前提下において、第2ノード100Bは、自身が投票を行ったブロックXを生成した第1ノード100Aのノード識別子(プロポーザ識別子)を記憶してもよい。これにより、第2ノード100Bは、どのプロポーザに対して自身が投票を行ったかの記録を残すことができる。 Under such a premise, the second node 100B may store the node identifier (proposer identifier) of the first node 100A that generated the block X for which it voted. This allows the second node 100B to keep a record of which proposer it has voted for.
 その後、例えば、いずれかの第2ノード100B(投票者)は、電源オフ状態又はスリープ状態へ遷移し、ブロックチェーングループから離脱(ログアウト)する。そして、当該第2ノード100Bは、電源オン状態又はアクティブ状態へ遷移し、ブロックチェーングループにエントリー(ログイン)しようとする。 After that, for example, any second node 100B (voter) transitions to a power-off state or a sleep state, and leaves (logs out) from the blockchain group. Then, the second node 100B transitions to a power-on state or an active state, and attempts to enter (log in) to the blockchain group.
 図8に示すように、第2ノード100Bは、ブロックチェーングループにエントリーする処理(以下、「エントリー処理」と称する)を行う。ブロックチェーングループに属するノードであって当該第2ノード100B以外の認証ノードは、保存している投票者リストを用いて、当該第2ノード100Bがブロックチェーングループのメンバ(すなわち、真正なノード)であるかを認証する認証処理を実行する。ここでは、第2ノード100Bに対する認証処理を行う認証ノードが第1ノード100Aであるものとする。第1ノード100Aは第2ノード100Bよりも性能が高いため、適切な認証処理を行うことが容易になる。第2ノード100Bは、第1ノード100Aにアクセス又は問い合わせをすることでエントリー処理を行う。認証処理では、第1ノード100Aは、第2ノード100Bのノード識別子を確認し、当該ノード識別子が投票者リストに含まれるか否かを確認する。 As shown in FIG. 8, the second node 100B performs processing for entering a blockchain group (hereinafter referred to as "entry processing"). Authentication nodes other than the second node 100B that belong to the blockchain group use the stored voter list to determine whether the second node 100B is a member of the blockchain group (i.e., an authentic node). Execute authentication processing to authenticate whether the Here, it is assumed that the authentication node that performs authentication processing for the second node 100B is the first node 100A. Since the first node 100A has higher performance than the second node 100B, it becomes easier to perform appropriate authentication processing. The second node 100B performs entry processing by accessing or making an inquiry to the first node 100A. In the authentication process, the first node 100A checks the node identifier of the second node 100B, and checks whether the node identifier is included in the voter list.
 第1ノード100Aは、第2ノード100Bのノード識別子が投票者リストに含まれることに応じて、第2ノード100Bがブロックチェーングループのメンバである(すなわち、認証OK)と判定する。第1ノード100Aは、認証OKと判定すると、当該第2ノード100Bによるエントリー処理を許可する。一方、第1ノード100Aは、第2ノード100Bがブロックチェーングループのメンバではない(すなわち、認証NG)と判定すると、当該第2ノード100Bによるエントリー処理を拒否する。 The first node 100A determines that the second node 100B is a member of the blockchain group (that is, authentication is OK) in response to the fact that the node identifier of the second node 100B is included in the voter list. When the first node 100A determines that the authentication is OK, the first node 100A permits the second node 100B to perform the entry process. On the other hand, if the first node 100A determines that the second node 100B is not a member of the blockchain group (that is, authentication NG), it rejects the entry process by the second node 100B.
 第2ノード100Bは、エントリー処理において、記憶しているブロックXのブロック識別子を第1ノード100Aに通知してもよい。第1ノード100Aは、認証処理において、第2ノード100Bから通知されたブロック識別子と対応付けられた投票者リストに第2ノード100Bの識別子が含まれることに基づいて、第2ノード100Bがブロックチェーングループのメンバであると判定してもよい。このように、ブロック識別子及び投票者リストを用いて第2ノード100Bの認証処理を行うことにより、認証時のセキュリティ強度を高めることができる。また、第1ノード100Aは、台帳中のすべての投票者リストに対する検索を行う必要が無く、第2ノード100Bから通知されたブロック識別子と対応付けられた投票者リストのみに対する検索を行えばよいため、検索を高速化できるとともに、処理負荷を削減できる。 In the entry process, the second node 100B may notify the first node 100A of the stored block identifier of the block X. In the authentication process, the first node 100A determines that the second node 100B uses the blockchain based on the fact that the identifier of the second node 100B is included in the voter list associated with the block identifier notified from the second node 100B. It may be determined that the user is a member of a group. In this way, by performing the authentication process of the second node 100B using the block identifier and the voter list, the security strength at the time of authentication can be increased. Furthermore, the first node 100A does not need to search all the voter lists in the ledger, and only needs to search the voter list associated with the block identifier notified from the second node 100B. , it is possible to speed up the search and reduce the processing load.
 第2ノード100Bは、エントリー処理において、記憶しているプロポーザ識別子を第1ノード100Aに通知してもよい。第1ノード100Aは、認証処理において、第2ノード100Bから通知されたプロポーザ識別子と対応付けられた投票者リストに第2ノード100Bのノード識別子が含まれることに基づいて、第2ノード100Bがブロックチェーングループのメンバであると判定してもよい。このように、プロポーザ識別子及び投票者リストを用いて第2ノード100Bの認証処理を行うことにより、認証時のセキュリティ強度を高めることができる。また、第1ノード100Aは、台帳中のすべての投票者リストに対する検索を行う必要が無く、第2ノード100Bから通知されたプロポーザ識別子と対応付けられた投票者リストのみに対する検索を行えばよいため、検索を高速化できるとともに、処理負荷を削減できる。 In the entry process, the second node 100B may notify the first node 100A of the stored proposer identifier. In the authentication process, the first node 100A blocks the second node 100B based on the fact that the node identifier of the second node 100B is included in the voter list associated with the proposer identifier notified from the second node 100B. It may be determined that the user is a member of a chain group. In this way, by performing the authentication process of the second node 100B using the proposer identifier and the voter list, the security strength at the time of authentication can be increased. Furthermore, the first node 100A does not need to search all the voter lists in the ledger, but only needs to search the voter list associated with the proposer identifier notified from the second node 100B. , it is possible to speed up the search and reduce the processing load.
 なお、実施形態に係る投票者リストに基づく認証は、他の要素に基づく認証と組み合わせて実施してもよい。他の要素に基づく認証とは、例えば、テンダーミント・コアのように、第2ノード100Bが有する最新のブロックヘッダ(具体的には、当該ブロックヘッダ内のハイト及びハッシュ値)に基づく認証であってもよい。 Note that the authentication based on the voter list according to the embodiment may be performed in combination with authentication based on other factors. Authentication based on other factors is, for example, authentication based on the latest block header (specifically, the height and hash value in the block header) that the second node 100B has, such as Tendermint Core. It's okay.
 実施形態によれば、ブロックチェーン技術における投票の仕組みを用いて、簡単な手続きだけで投票の履歴を認証の要素とすることができる。具体的には、第2ノード100Bはブロックの提案への投票を実施しておくことで、その後のブロックチェーングループへのエントリーが行えるようになる。そのため、第2ノード100Bのマシンリソースを必要とせずに、認証時のセキュリティ強度を向上させることができる。 According to the embodiment, by using a voting mechanism in blockchain technology, voting history can be used as an authentication factor with a simple procedure. Specifically, by voting on the block proposal, the second node 100B can subsequently enter the blockchain group. Therefore, the security strength during authentication can be improved without requiring the machine resources of the second node 100B.
 また、SSLクライアント認証のように特定の認証サーバを必要とせず、ブロックの提案をする任意の第1ノード100Aであれば投票者リストを含むブロック生成が可能である。さらに、認証時においても、特定の認証サーバを必要とせず、台帳を閲覧可能なノードであれば、第2ノード100Bからの問い合わせに対応することができる。 Further, unlike SSL client authentication, a specific authentication server is not required, and any first node 100A that proposes a block can generate a block including a voter list. Furthermore, even at the time of authentication, any node that can view the ledger can respond to inquiries from the second node 100B without requiring a specific authentication server.
 なお、認証処理を行う主体が第1ノード100Aである場合について主として説明したが、認証処理を行う主体は、ブロックチェーングループに参加中であって台帳を閲覧可能な第2ノード100Bであってもよい。 Although the case where the entity performing the authentication process is the first node 100A has been mainly described, the entity performing the authentication process may also be the second node 100B that is participating in the blockchain group and can view the ledger. good.
 ここで、実施形態に係る台帳の構成例について説明する。図9は、実施形態に係る台帳の構成例を示す図である。 Here, an example of the structure of the ledger according to the embodiment will be described. FIG. 9 is a diagram illustrating a configuration example of a ledger according to the embodiment.
 図9に示すように、各第1ノード100Aは、ネットワーク内で発生したトランザクションの記録をブロックに格納する。実施形態において、1つのブロックは、ヘッダ部分であるブロックヘッダと、少なくとも1つのトランザクションのデータを格納するトランザクションデータ部分と、投票者リスト(投票履歴情報)とを有する。ブロックヘッダ及びトランザクションデータ部分については一般的な台帳の構成と同様である。各投票者リストは、ブロック識別子であるハイトと対応付けられている。 As shown in FIG. 9, each first node 100A stores records of transactions occurring within the network in blocks. In the embodiment, one block has a block header that is a header portion, a transaction data portion that stores data of at least one transaction, and a voter list (voting history information). The block header and transaction data part are similar to the structure of a general ledger. Each voter list is associated with a height that is a block identifier.
 図9の例では、ブロックnには、ブロックnについて投票した各第2ノード100Bのノード識別子を含む投票者リストが保存されている。また、ブロックn+1には、ブロックn+1について投票した各第2ノード100Bのノード識別子を含む投票者リストが保存されている。また、ブロックn+2には、ブロックn+2について投票した各第2ノード100Bのノード識別子を含む投票者リストが保存されている。 In the example of FIG. 9, block n stores a voter list including the node identifiers of each second node 100B that voted for block n. Further, in block n+1, a voter list including the node identifiers of each second node 100B that voted for block n+1 is stored. Further, in block n+2, a voter list including the node identifiers of each second node 100B that voted for block n+2 is stored.
 (2.3)動作フロー例
 次に、実施形態に係る動作フローの一例について説明する。図10は、新たなブロックの提案及び投票時の動作フローの一例を示す図である。
(2.3) Example of Operation Flow Next, an example of the operation flow according to the embodiment will be described. FIG. 10 is a diagram illustrating an example of an operation flow when proposing and voting for a new block.
 ステップS101において、第1ノード100Aは、新たなブロック(但し、投票者リストを除く)を生成し、当該ブロックを他のノード100に対して通知することで提案する。 In step S101, the first node 100A generates a new block (excluding the voter list) and proposes the block by notifying the other nodes 100.
 ステップS102において、新たなブロックについて提案を受けた第2ノード100Bは、当該ブロックが正しいかを検算して確認する。当該ブロックが正しくないと判定された場合(ステップS103:NO)、第2ノード100Bは、当該ブロックについて投票を行うことなく処理を終了する。 In step S102, the second node 100B that has received the proposal for the new block calculates and confirms whether the block is correct. If it is determined that the block is incorrect (step S103: NO), the second node 100B ends the process without voting for the block.
 一方、当該ブロックが正しいと判定された場合(ステップS103:YES)、ステップS104において、第2ノード100Bは、当該ブロックについて自身の情報(ノード識別子)を投票者リストに載せるか否かを判定する。例えば、第2ノード100Bは、提案を行った第1ノード100Aに対して既に要求情報(以下、「リスト追加フラグ」と称する)を通知している場合、自身の情報を投票者リストに載せないと判定してもよい。これに対し、提案を行った第1ノード100Aに対して未だリスト追加フラグを通知していない場合、第2ノード100Bは、自身の情報を投票者リストに載せると判定してもよい。 On the other hand, if it is determined that the block is correct (step S103: YES), in step S104, the second node 100B determines whether or not to put its own information (node identifier) on the voter list regarding the block. . For example, if the second node 100B has already notified request information (hereinafter referred to as "list addition flag") to the first node 100A that made the proposal, the second node 100B does not include its own information on the voter list. It may be determined that On the other hand, if the first node 100A that made the proposal has not yet been notified of the list addition flag, the second node 100B may determine to include its own information on the voter list.
 第2ノード100Bは、自身の情報を投票者リストに載せないと判定した場合(ステップS104:NO)、ステップS105を行わずにステップS106に処理を進める。これに対し、自身の情報を投票者リストに載せると判定した場合(ステップS104:YES)、第2ノード100Bは、ステップS105に処理を進める。 When the second node 100B determines that its own information is not to be included in the voter list (step S104: NO), the process proceeds to step S106 without performing step S105. On the other hand, if the second node 100B determines to put its own information on the voter list (step S104: YES), the second node 100B advances the process to step S105.
 ステップS105において、第2ノード100Bは、第1ノード100Aに通知する投票メッセージ(承認メッセージ)にリスト追加フラグをセットする。投票メッセージは、第2ノード100Bのノード識別子を含んでもよい。また、第2ノード100Bは、ステップS101で第1ノード100Aから提案されたブロックのブロック識別子(例えば、ハイト)を記憶する。さらに、第2ノード100Bは、第1ノード100Aのノード識別子をプロポーザ識別子として記憶してもよい。 In step S105, the second node 100B sets a list addition flag in the voting message (approval message) notified to the first node 100A. The voting message may include the node identifier of the second node 100B. The second node 100B also stores the block identifier (for example, height) of the block proposed by the first node 100A in step S101. Further, the second node 100B may store the node identifier of the first node 100A as a proposer identifier.
 ステップS106において、第2ノード100Bは、投票メッセージを第1ノード100Aに通知する。 In step S106, the second node 100B notifies the first node 100A of the voting message.
 ステップS107において、第2ノード100Bからの投票メッセージを受け付けた第1ノード100Aは、当該投票メッセージにリスト追加フラグがセットされているか否かを確認する。当該投票メッセージにリスト追加フラグがセットされていない場合(ステップS107:NO)、ステップS108において、第1ノード100Aは、ステップS101で提案したブロックを台帳に追加することで保存する。 In step S107, the first node 100A that has received the voting message from the second node 100B checks whether the list addition flag is set in the voting message. If the list addition flag is not set in the voting message (step S107: NO), in step S108, the first node 100A saves the block proposed in step S101 by adding it to the ledger.
 当該投票メッセージにリスト追加フラグがセットされている場合(ステップS107:YES)、ステップS109において、第1ノード100Aは、ステップS101で提案したブロックに、第2ノード100Bのノード識別子を含む投票者リストを付与し、当該投票者リストが付与されたブロックを台帳に追加することで保存する。なお、このようにして台帳が更新されると、更新後の台帳が複数の第1ノード100A間で共有される。 If the list addition flag is set in the voting message (step S107: YES), in step S109, the first node 100A adds the voter list including the node identifier of the second node 100B to the block proposed in step S101. The block to which the voter list has been assigned is added to the ledger and saved. Note that when the ledger is updated in this way, the updated ledger is shared among the plurality of first nodes 100A.
 図11は、第2ノード100Bのエントリー時の動作フローの一例を示す図である。 FIG. 11 is a diagram showing an example of the operation flow at the time of entry of the second node 100B.
 ステップS131において、第2ノード100Bは、自身のノード識別子を含む認証要求メッセージを第1ノード100Aに通知する。ここで、第2ノード100Bは、ステップS105で記憶したブロック識別子を認証要求メッセージに含めて通知する。 In step S131, the second node 100B notifies the first node 100A of an authentication request message including its own node identifier. Here, the second node 100B includes the block identifier stored in step S105 in the authentication request message and notifies it.
 ステップS132において、第2ノード100Bからの認証要求メッセージを受け付けた第1ノード100Aは、台帳内の投票者リストを検索する。具体的には、第1ノード100Aは、当該認証要求メッセージ中のブロック識別子(例えば、ハイト)と対応付けられた投票者リストを抽出し、当該認証要求メッセージ中のノード識別子が当該投票者リスト中に存在するか否かを確認する。 In step S132, the first node 100A that has received the authentication request message from the second node 100B searches the voter list in the ledger. Specifically, the first node 100A extracts the voter list associated with the block identifier (for example, height) in the authentication request message, and selects the node identifier in the authentication request message from the voter list. Check whether it exists.
 ステップS133において、第1ノード100Aは、当該認証要求メッセージ中のノード識別子が当該投票者リスト中に存在する場合は正しい第2ノード100B(すなわち、ブロックチェーングループのメンバ)であると判定し、認証OKとする。一方、当該認証要求メッセージ中のノード識別子が当該投票者リスト中に存在しない場合は正しくない第2ノード100Bである(すなわち、ブロックチェーングループのメンバではない)と判定し、認証NGとする。 In step S133, if the node identifier in the authentication request message exists in the voter list, the first node 100A determines that it is the correct second node 100B (i.e., a member of the blockchain group), and authenticates it. OK. On the other hand, if the node identifier in the authentication request message does not exist in the voter list, it is determined that the second node 100B is incorrect (that is, it is not a member of the blockchain group), and authentication is rejected.
 ステップS134において、第1ノード100Aは、ステップS133での認証結果(認証OK又は認証NG)を第2ノード100Bに通知する。第2ノード100Bは、第1ノード100Aから認証OKの旨を通知された場合、ブロックチェーングループへのエントリーが完了する。一方、第1ノード100Aから認証NGの旨を通知された場合、第2ノード100Bは、ブロックチェーングループへのエントリーが拒否される。 In step S134, the first node 100A notifies the second node 100B of the authentication result (authentication OK or authentication NG) in step S133. When the second node 100B is notified from the first node 100A that the authentication is OK, the second node 100B completes entry into the blockchain group. On the other hand, when the first node 100A notifies the second node 100B of authentication failure, the second node 100B is denied entry to the blockchain group.
 (2.4)動作フローの変更例
 次に、上述の実施形態に動作の変更例について説明する。図12は、本変更例の動作を説明するための図である。
(2.4) Example of change in operation flow Next, an example of change in operation of the above-described embodiment will be described. FIG. 12 is a diagram for explaining the operation of this modified example.
 図12に示すように、本変更例に係る第1ノード100Aは、保存処理において、投票者リストを台帳とは別にデータベース(DB)150に保存する点で、上述の実施形態と異なる。これにより、上述の実施形態に比べて、台帳の肥大化を抑制できる。本変更例に係る他の構成については、上述の実施形態と同様である。 As shown in FIG. 12, the first node 100A according to this modified example differs from the above-described embodiment in that in the storage process, the voter list is stored in a database (DB) 150 separately from the ledger. Thereby, compared to the above-described embodiments, it is possible to suppress enlargement of the ledger. The other configurations according to this modified example are the same as those in the above-described embodiment.
 DB150は、第1ノード100Aと1対1で設けられてもよい。DB150は、第1ノード100A内に設けられてもよい。第1ノード100Aは、自身で生成した投票者リストを自身のDB150にのみ保存し、投票者リストを他の第1ノード100Aと共有しなくてもよい。或いは、2以上の第1ノード100Aに対して共通のDB150が設けられてもよい。当該共通のDB150は、通信ネットワーク20上に設けられてもよい。以下においては、DB150が第1ノード100Aと1対1で設けられる場合を主として想定する。 The DB 150 may be provided on a one-to-one basis with the first node 100A. The DB 150 may be provided within the first node 100A. The first node 100A may store the voter list generated by itself only in its own DB 150, and may not share the voter list with other first nodes 100A. Alternatively, a common DB 150 may be provided for two or more first nodes 100A. The common DB 150 may be provided on the communication network 20. In the following, it is mainly assumed that the DB 150 is provided one-to-one with the first node 100A.
 図13は、新たなブロックの提案及び投票時の動作フローの変更例を示す図である。以下においては、上述の実施形態に係る動作フローとの相違点を主として説明する。 FIG. 13 is a diagram showing an example of a change in the operation flow when proposing and voting for a new block. In the following, differences from the operation flow according to the above-described embodiment will be mainly explained.
 ステップS201において、第1ノード100Aは、新たなブロックを生成し、当該ブロックを他のノード100に対して通知することで提案する。 In step S201, the first node 100A generates a new block and notifies the other nodes 100 of the block to propose it.
 ステップS202において、新たなブロックについて提案を受けた第2ノード100Bは、当該ブロックが正しいかを検算して確認する。当該ブロックが正しくないと判定された場合(ステップS203:NO)、第2ノード100Bは、当該ブロックについて投票を行うことなく処理を終了する。 In step S202, the second node 100B that has received the proposal for the new block calculates and confirms whether the block is correct. If it is determined that the block is incorrect (step S203: NO), the second node 100B ends the process without voting for the block.
 一方、当該ブロックが正しいと判定された場合(ステップS203:YES)、ステップS204において、第2ノード100Bは、当該ブロックについて自身の情報(ノード識別子)を投票者リストに載せるか否かを判定する。 On the other hand, if it is determined that the block is correct (step S203: YES), in step S204, the second node 100B determines whether or not to put its own information (node identifier) on the voter list regarding the block. .
 第2ノード100Bは、自身の情報を投票者リストに載せないと判定した場合(ステップS204:NO)、ステップS205を行わずにステップS206に処理を進める。これに対し、自身の情報を投票者リストに載せると判定した場合(ステップS204:YES)、第2ノード100Bは、ステップS205に処理を進める。 When the second node 100B determines that its own information is not to be included in the voter list (step S204: NO), the second node 100B advances the process to step S206 without performing step S205. On the other hand, if the second node 100B determines to put its own information on the voter list (step S204: YES), the second node 100B advances the process to step S205.
 ステップS205において、第2ノード100Bは、第1ノード100Aに通知する投票メッセージ(承認メッセージ)にリスト追加フラグをセットする。投票メッセージは、第2ノード100Bのノード識別子を含んでもよい。第2ノード100Bは、第1ノード100Aのノード識別子をプロポーザ識別子として記憶する。また、第2ノード100Bは、ステップS201で第1ノード100Aから提案されたブロックのブロック識別子(例えば、ハイト)を記憶してもよい。 In step S205, the second node 100B sets a list addition flag in the voting message (approval message) notified to the first node 100A. The voting message may include the node identifier of the second node 100B. The second node 100B stores the node identifier of the first node 100A as a proposer identifier. Further, the second node 100B may store the block identifier (for example, height) of the block proposed by the first node 100A in step S201.
 ステップS206において、第2ノード100Bは、投票メッセージを第1ノード100Aに通知する。 In step S206, the second node 100B notifies the first node 100A of the voting message.
 ステップS207において、第2ノード100Bからの投票メッセージを受け付けた第1ノード100Aは、当該投票メッセージにリスト追加フラグがセットされているか否かを確認する。当該投票メッセージにリスト追加フラグがセットされていない場合(ステップS207:NO)、ステップS208において、第1ノード100Aは、ステップS201で提案したブロックを台帳に追加することで保存する。 In step S207, the first node 100A that has received the voting message from the second node 100B checks whether the list addition flag is set in the voting message. If the list addition flag is not set in the voting message (step S207: NO), in step S208, the first node 100A saves the block proposed in step S201 by adding it to the ledger.
 当該投票メッセージにリスト追加フラグがセットされている場合(ステップS207:YES)、ステップS209において、第1ノード100Aは、ステップS201で提案したブロックを台帳に追加することで保存する。また、第1ノード100Aは、第2ノード100Bのノード識別子を含む投票者リストを第1ノード100AのDB150に保存する。 If the list addition flag is set in the voting message (step S207: YES), in step S209, the first node 100A saves the block proposed in step S201 by adding it to the ledger. Further, the first node 100A stores a voter list including the node identifier of the second node 100B in the DB 150 of the first node 100A.
 図14は、第2ノード100Bのエントリー時の動作フローの変更例を示す図である。 FIG. 14 is a diagram showing an example of a change in the operation flow at the time of entry of the second node 100B.
 ステップS231において、第2ノード100Bは、自身のノード識別子を含む認証要求メッセージを第1ノード100Aに通知する。ここで、第2ノード100Bは、ステップS205で記憶したブロック識別子を認証要求メッセージに含めて通知する。 In step S231, the second node 100B notifies the first node 100A of an authentication request message including its own node identifier. Here, the second node 100B includes the block identifier stored in step S205 in the authentication request message and notifies it.
 ステップS232において、第2ノード100Bからの認証要求メッセージを受け付けた第1ノード100Aは、当該認証要求メッセージ中のプロポーザ識別子が示すプロポーザ(第1ノード100A)のDB150内の投票者リストを検索する。具体的には、第1ノード100Aは、当該DB150内の投票者リスト中に、当該認証要求メッセージ中のノード識別子が存在するか否かを確認する。 In step S232, the first node 100A that has received the authentication request message from the second node 100B searches the voter list in the DB 150 of the proposer (first node 100A) indicated by the proposer identifier in the authentication request message. Specifically, the first node 100A checks whether the node identifier in the authentication request message exists in the voter list in the DB 150.
 ステップS233において、第1ノード100Aは、当該認証要求メッセージ中のノード識別子が当該投票者リスト中に存在する場合は正しい第2ノード100B(すなわち、ブロックチェーングループのメンバ)であると判定し、認証OKとする。一方、当該認証要求メッセージ中のノード識別子が当該投票者リスト中に存在しない場合は正しくない第2ノード100Bである(すなわち、ブロックチェーングループのメンバではない)と判定し、認証NGとする。 In step S233, if the node identifier in the authentication request message is present in the voter list, the first node 100A determines that it is the correct second node 100B (i.e., a member of the blockchain group), and authenticates the second node 100A. OK. On the other hand, if the node identifier in the authentication request message does not exist in the voter list, it is determined that the second node 100B is incorrect (that is, it is not a member of the blockchain group), and authentication is rejected.
 ステップS234において、第1ノード100Aは、ステップS233での認証結果(認証OK又は認証NG)を第2ノード100Bに通知する。第2ノード100Bは、第1ノード100Aから認証OKの旨を通知された場合、ブロックチェーングループへのエントリーが完了する。一方、第1ノード100Aから認証NGの旨を通知された場合、第2ノード100Bは、ブロックチェーングループへのエントリーが拒否される。 In step S234, the first node 100A notifies the second node 100B of the authentication result (authentication OK or authentication NG) in step S233. When the second node 100B is notified from the first node 100A that the authentication is OK, the second node 100B completes entry into the blockchain group. On the other hand, when the first node 100A notifies the second node 100A of the failure of authentication, the second node 100B is denied entry to the blockchain group.
 (3)その他の実施形態
 上述の各動作フローは、別個独立に実施する場合に限らず、2以上の動作フローを組み合わせて実施可能である。例えば、1つの動作フローの一部のステップを他の動作フローに追加してもよいし、1つの動作フローの一部のステップを他の動作フローの一部のステップと置換してもよい。また、上述の各動作フローにおけるステップの順番は一例であって、ステップの順番は適宜変更してもよい。
(3) Other Embodiments The above-mentioned operation flows are not limited to being implemented separately, but can be implemented by combining two or more operation flows. For example, some steps of one operation flow may be added to another operation flow, or some steps of one operation flow may be replaced with some steps of another operation flow. Further, the order of steps in each of the above-mentioned operation flows is an example, and the order of steps may be changed as appropriate.
 ノード100が行う各処理をコンピュータに実行させるプログラムが提供されてもよい。プログラムは、コンピュータ読取り可能媒体に記録されていてもよい。コンピュータ読取り可能媒体を用いれば、コンピュータにプログラムをインストールすることが可能である。ここで、プログラムが記録されたコンピュータ読取り可能媒体は、非一過性の記録媒体であってもよい。非一過性の記録媒体は、特に限定されるものではないが、例えば、CD-ROMやDVD-ROM等の記録媒体であってもよい。また、ノード100が行う各処理を実行する回路を集積化し、ノード100の少なくとも一部を半導体集積回路(チップセット、SoC:System on a chip)として構成してもよい。 A program that causes a computer to execute each process performed by the node 100 may be provided. The program may be recorded on a computer readable medium. Computer-readable media allow programs to be installed on a computer. Here, the computer-readable medium on which the program is recorded may be a non-transitory recording medium. The non-transitory recording medium is not particularly limited, and may be, for example, a recording medium such as a CD-ROM or a DVD-ROM. Further, the circuits that execute each process performed by the node 100 may be integrated, and at least a portion of the 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 words "based on" and "in accordance with" do not mean "based solely on" or "in accordance with" unless expressly stated otherwise. Reference to "based on" means both "based solely on" and "based at least in part on." Similarly, the phrase "in accordance with" means both "in accordance with" and "in accordance with, at least in part." Furthermore, the terms "include", "comprise", and variations thereof do not mean to include only the listed items, and may include only the listed items, or may include only the listed items. In addition, it means that further items may be included. Also, as used in this disclosure, the term "or" is not intended to be exclusive OR. Furthermore, any reference to elements using the designations "first," "second," etc. used in this disclosure does not generally limit the amount or order of those elements. These designations may be used herein as a convenient way of distinguishing between two or more elements. Thus, reference to a first and second element does not imply that only two elements may be employed therein or that the first element must precede the second element in any way. In this disclosure, when articles are added by translation, such as a, an, and the in English, these articles are used in the plural unless the context clearly indicates otherwise. shall include things.
 以上、図面を参照して実施形態について詳しく説明したが、具体的な構成は上述のものに限られることはなく、要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。 Although the embodiments have been described above in detail with reference to the drawings, the specific configuration is not limited to that described above, and various design changes can be made without departing from the gist.
 本願は、日本国特許出願第2022-043647号(2022年3月18日出願)の優先権を主張し、その内容の全てが本願明細書に組み込まれている。 This application claims priority to Japanese Patent Application No. 2022-043647 (filed on March 18, 2022), the entire content of which is incorporated into the specification of the present application.
(付記)
 上述の実施形態に関する特徴について付記する。
(Additional note)
Additional notes will be made regarding the features of the above-described embodiments.
(1)
 複数のノードにより構成されるグループ内で第1ノードが生成したブロックを他のノードの投票により確定するブロックチェーンシステムであって、
 前記第1ノードは、前記第1ノードよりも性能が低い第2ノードが行った前記投票に関する投票履歴情報を保存する保存処理を実行し、
 前記第2ノードが前記グループにエントリーする処理を行う際に、前記グループに属するノードであって当該第2ノード以外の認証ノードは、前記投票履歴情報を用いて、前記第2ノードが前記グループのメンバであるかを認証する認証処理を実行する
 ブロックチェーンシステム。
(1)
A blockchain system in which a block generated by a first node in a group consisting of a plurality of nodes is determined by votes of other nodes,
The first node executes a storage process to save voting history information regarding the vote performed by a second node whose performance is lower than that of the first node,
When the second node performs processing to enter the group, an authentication node other than the second node that belongs to the group uses the voting history information to ensure that the second node is in the group. A blockchain system that performs authentication processing to authenticate membership.
(2)
 前記第1ノードは、前記ブロックを含む台帳を管理し、
 前記保存処理は、前記投票履歴情報を前記台帳に保存する処理を含む
 上記(1)に記載のブロックチェーンシステム。
(2)
The first node manages a ledger including the blocks,
The blockchain system according to (1) above, wherein the storage process includes a process of saving the voting history information in the ledger.
(3)
 前記保存処理は、前記投票履歴情報を台帳とは別にデータベースに保存する処理を含む
 上記(1)に記載のブロックチェーンシステム。
(3)
The blockchain system according to (1) above, wherein the storage process includes a process of storing the voting history information in a database separately from the ledger.
(4)
 前記認証ノードは、前記第1ノードである
 上記(1)乃至(3)のいずれかに記載のブロックチェーンシステム。
(4)
The blockchain system according to any one of (1) to (3) above, wherein the authentication node is the first node.
(5)
 前記第2ノードは、前記投票を行う際に、前記投票履歴情報の保存を要求する要求情報を前記第1ノードに通知し、
 前記保存処理は、前記要求情報が通知されたことに応じて前記投票履歴情報を保存する処理を含む
 上記(1)乃至(4)のいずれかに記載のブロックチェーンシステム。
(5)
When the second node performs the vote, the second node notifies the first node of request information requesting storage of the voting history information,
The blockchain system according to any one of (1) to (4) above, wherein the storage process includes a process of storing the voting history information in response to notification of the request information.
(6)
 前記第2ノードは、同一の前記第1ノードに対して前記要求情報の通知を1回のみ行う
 上記(5)に記載のブロックチェーンシステム。
(6)
The blockchain system according to (5) above, wherein the second node notifies the request information only once to the same first node.
(7)
 前記投票履歴情報は、前記投票を行ったノードの識別子を含み、
 前記認証処理は、前記第2ノードの識別子が前記投票履歴情報に含まれることに基づいて、前記第2ノードが前記グループのメンバであると判定する処理を含む
 上記(1)乃至(6)のいずれかに記載のブロックチェーンシステム。
(7)
The voting history information includes an identifier of the node that performed the voting,
The authentication process includes a process of determining that the second node is a member of the group based on the fact that the identifier of the second node is included in the voting history information. Blockchain system described in either.
(8)
 前記保存処理は、前記投票履歴情報を前記ブロックの識別子と対応付けて保存する処理を含み、
 前記第2ノードは、
 前記第2ノードが前記投票を行った前記ブロックの識別子を記憶する処理と、
 前記第2ノードが前記グループにエントリーする処理を行う際に、前記記憶したブロックの識別子を前記認証ノードに通知する処理と、を実行し、
 前記認証処理は、前記通知されたブロックの識別子と対応付けられた前記投票履歴情報に前記第2ノードの識別子が含まれることに基づいて、前記第2ノードが前記グループのメンバであると判定する処理を含む
 上記(7)に記載のブロックチェーンシステム。
(8)
The storage process includes a process of storing the voting history information in association with the block identifier,
The second node is
a process of storing an identifier of the block for which the second node has cast the vote;
when the second node performs a process of entering the group, performing a process of notifying the authentication node of the identifier of the stored block;
The authentication process determines that the second node is a member of the group based on the fact that the voting history information associated with the notified block identifier includes an identifier of the second node. The blockchain system described in (7) above, including processing.
(9)
 前記保存処理は、前記投票履歴情報を前記第1ノードの識別子と対応付けて保存する処理を含み、
 前記第2ノードは、
 前記第2ノードが前記投票を行った前記ブロックを生成した前記第1ノードの識別子を記憶する処理と、
 前記第2ノードが前記グループにエントリーする処理を行う際に、前記記憶した第1ノードの識別子を前記認証ノードに通知する処理と、を実行し、
 前記認証処理は、前記通知された第1ノードの識別子と対応付けられた前記投票履歴情報に前記第2ノードのノード識別子が含まれることに基づいて、前記第2ノードが前記グループのメンバであると判定する処理を含む
 上記(7)又は(8)に記載のブロックチェーンシステム。
(9)
The storage process includes a process of storing the voting history information in association with an identifier of the first node,
The second node is
storing an identifier of the first node that generated the block for which the second node voted;
when the second node performs a process of entering the group, a process of notifying the authentication node of the stored identifier of the first node;
The authentication process determines that the second node is a member of the group based on the fact that the node identifier of the second node is included in the voting history information associated with the notified identifier of the first node. The blockchain system according to (7) or (8) above, including a process of determining.
(10)
 複数のノードにより構成されるグループ内で第1ノードが生成したブロックを他のノードの投票により確定するブロックチェーンシステムで用いる前記第1ノードであって、
 前記第1ノードよりも性能が低い第2ノードが行った前記投票に関する投票履歴情報を保存する保存処理と、
 前記第2ノードが前記グループにエントリーする処理を行う際に、前記投票履歴情報に基づいて、前記第2ノードが前記グループのメンバであるかを認証する認証処理と、を実行する制御部を備える
 第1ノード。
(10)
The first node used in a blockchain system in which a block generated by the first node in a group consisting of a plurality of nodes is determined by votes of other nodes,
a storage process for storing voting history information regarding the voting performed by a second node having lower performance than the first node;
and a control unit that executes an authentication process for authenticating whether the second node is a member of the group based on the voting history information when the second node performs a process for entering the group. First node.
(11)
 複数のノードにより構成されるグループ内で第1ノードが生成したブロックを他のノードの投票により確定するブロックチェーンシステムで用いる前記第1ノードに、
 前記第1ノードよりも性能が低い第2ノードが行った前記投票に関する投票履歴情報を保存する保存処理と、
 前記第2ノードが前記グループにエントリーする処理を行う際に、前記投票履歴情報に基づいて、前記第2ノードが前記グループのメンバであるかを認証する認証処理と、を実行させる
 プログラム。
(11)
The first node used in a blockchain system in which a block generated by a first node in a group consisting of a plurality of nodes is determined by votes of other nodes,
a storage process for storing voting history information regarding the voting performed by a second node having lower performance than the first node;
A program for causing an authentication process to authenticate whether the second node is a member of the group based on the voting history information when the second node performs a process for entering the group.
1     :ブロックチェーンシステム
20    :通信ネットワーク
100   :ノード
100A  :第1ノード
100B  :第2ノード
110   :通信部
120   :制御部
121   :プロセッサ
130   :記憶部
140   :バッテリ
1: Blockchain system 20: Communication network 100: Node 100A: First node 100B: Second node 110: Communication unit 120: Control unit 121: Processor 130: Storage unit 140: Battery

Claims (11)

  1.  複数のノードにより構成されるグループ内で第1ノードが生成したブロックを他のノードの投票により確定するブロックチェーンシステムであって、
     前記第1ノードは、前記第1ノードよりも性能が低い第2ノードが行った前記投票に関する投票履歴情報を保存する保存処理を実行し、
     前記第2ノードが前記グループにエントリーする処理を行う際に、前記グループに属するノードであって当該第2ノード以外の認証ノードは、前記投票履歴情報を用いて、前記第2ノードが前記グループのメンバであるかを認証する認証処理を実行する
     ブロックチェーンシステム。
    A blockchain system in which a block generated by a first node in a group consisting of a plurality of nodes is determined by votes of other nodes,
    The first node executes a storage process to save voting history information regarding the vote performed by a second node whose performance is lower than that of the first node,
    When the second node performs processing to enter the group, an authentication node other than the second node that belongs to the group uses the voting history information to ensure that the second node is in the group. A blockchain system that performs authentication processing to authenticate membership.
  2.  前記第1ノードは、前記ブロックを含む台帳を管理し、
     前記保存処理は、前記投票履歴情報を前記台帳に保存する処理を含む
     請求項1に記載のブロックチェーンシステム。
    The first node manages a ledger including the blocks,
    The blockchain system according to claim 1, wherein the storage process includes a process of saving the voting history information in the ledger.
  3.  前記保存処理は、前記投票履歴情報を台帳とは別にデータベースに保存する処理を含む
     請求項1に記載のブロックチェーンシステム。
    The blockchain system according to claim 1, wherein the storage process includes a process of storing the voting history information in a database separately from a ledger.
  4.  前記認証ノードは、前記第1ノードである
     請求項1乃至3のいずれか1項に記載のブロックチェーンシステム。
    The blockchain system according to any one of claims 1 to 3, wherein the authentication node is the first node.
  5.  前記第2ノードは、前記投票を行う際に、前記投票履歴情報の保存を要求する要求情報を前記第1ノードに通知し、
     前記保存処理は、前記要求情報が通知されたことに応じて前記投票履歴情報を保存する処理を含む
     請求項1乃至3のいずれか1項に記載のブロックチェーンシステム。
    When the second node performs the vote, the second node notifies the first node of request information requesting storage of the voting history information,
    The blockchain system according to any one of claims 1 to 3, wherein the storage process includes a process of saving the voting history information in response to notification of the request information.
  6.  前記第2ノードは、同一の前記第1ノードに対して前記要求情報の通知を1回のみ行う
     請求項5に記載のブロックチェーンシステム。
    The blockchain system according to claim 5, wherein the second node notifies the same first node of the request information only once.
  7.  前記投票履歴情報は、前記投票を行ったノードの識別子を含み、
     前記認証処理は、前記第2ノードの識別子が前記投票履歴情報に含まれることに基づいて、前記第2ノードが前記グループのメンバであると判定する処理を含む
     請求項1乃至3のいずれか1項に記載のブロックチェーンシステム。
    The voting history information includes an identifier of the node that performed the voting,
    4. The authentication process includes a process of determining that the second node is a member of the group based on the fact that the second node's identifier is included in the voting history information. The blockchain system described in Section.
  8.  前記保存処理は、前記投票履歴情報を前記ブロックの識別子と対応付けて保存する処理を含み、
     前記第2ノードは、
     前記第2ノードが前記投票を行った前記ブロックの識別子を記憶する処理と、
     前記第2ノードが前記グループにエントリーする処理を行う際に、前記記憶したブロックの識別子を前記認証ノードに通知する処理と、を実行し、
     前記認証処理は、前記通知されたブロックの識別子と対応付けられた前記投票履歴情報に前記第2ノードの識別子が含まれることに基づいて、前記第2ノードが前記グループのメンバであると判定する処理を含む
     請求項7に記載のブロックチェーンシステム。
    The storage process includes a process of storing the voting history information in association with the block identifier,
    The second node is
    a process of storing an identifier of the block for which the second node has cast the vote;
    when the second node performs a process of entering the group, performing a process of notifying the authentication node of the identifier of the stored block;
    The authentication process determines that the second node is a member of the group based on the fact that the voting history information associated with the notified block identifier includes an identifier of the second node. The blockchain system according to claim 7, comprising processing.
  9.  前記保存処理は、前記投票履歴情報を前記第1ノードの識別子と対応付けて保存する処理を含み、
     前記第2ノードは、
     前記第2ノードが前記投票を行った前記ブロックを生成した前記第1ノードの識別子を記憶する処理と、
     前記第2ノードが前記グループにエントリーする処理を行う際に、前記記憶した第1ノードの識別子を前記認証ノードに通知する処理と、を実行し、
     前記認証処理は、前記通知された第1ノードの識別子と対応付けられた前記投票履歴情報に前記第2ノードのノード識別子が含まれることに基づいて、前記第2ノードが前記グループのメンバであると判定する処理を含む
     請求項7に記載のブロックチェーンシステム。
    The storage process includes a process of storing the voting history information in association with an identifier of the first node,
    The second node is
    storing an identifier of the first node that generated the block for which the second node voted;
    when the second node performs a process of entering the group, a process of notifying the authentication node of the stored identifier of the first node;
    The authentication process determines that the second node is a member of the group based on the fact that the node identifier of the second node is included in the voting history information associated with the notified identifier of the first node. The blockchain system according to claim 7, further comprising a process of determining.
  10.  複数のノードにより構成されるグループ内で第1ノードが生成したブロックを他のノードの投票により確定するブロックチェーンシステムで用いる前記第1ノードであって、
     前記第1ノードよりも性能が低い第2ノードが行った前記投票に関する投票履歴情報を保存する保存処理と、
     前記第2ノードが前記グループにエントリーする処理を行う際に、前記投票履歴情報に基づいて、前記第2ノードが前記グループのメンバであるかを認証する認証処理と、を実行する制御部を備える
     第1ノード。
    The first node used in a blockchain system in which a block generated by the first node in a group consisting of a plurality of nodes is determined by votes of other nodes,
    a storage process for storing voting history information regarding the voting performed by a second node having lower performance than the first node;
    and a control unit that executes an authentication process for authenticating whether the second node is a member of the group based on the voting history information when the second node performs a process for entering the group. First node.
  11.  複数のノードにより構成されるグループ内で第1ノードが生成したブロックを他のノードの投票により確定するブロックチェーンシステムで用いる前記第1ノードに、
     前記第1ノードよりも性能が低い第2ノードが行った前記投票に関する投票履歴情報を保存する保存処理と、
     前記第2ノードが前記グループにエントリーする処理を行う際に、前記投票履歴情報に基づいて、前記第2ノードが前記グループのメンバであるかを認証する認証処理と、を実行させる
     プログラム。
    The first node used in a blockchain system in which a block generated by a first node in a group consisting of a plurality of nodes is determined by votes of other nodes,
    a storage process for storing voting history information regarding the voting performed by a second node having lower performance than the first node;
    A program for causing an authentication process to authenticate whether the second node is a member of the group based on the voting history information when the second node performs a process for entering the group.
PCT/JP2023/008546 2022-03-18 2023-03-07 Blockchain system, node, and program WO2023176586A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022-043647 2022-03-18
JP2022043647 2022-03-18

Publications (1)

Publication Number Publication Date
WO2023176586A1 true WO2023176586A1 (en) 2023-09-21

Family

ID=88023189

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/008546 WO2023176586A1 (en) 2022-03-18 2023-03-07 Blockchain system, node, and program

Country Status (1)

Country Link
WO (1) WO2023176586A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180097779A1 (en) * 2016-09-30 2018-04-05 Nec Europe Ltd. Method and system for providing a transaction forwarding service in blockchain implementations
CN111741012A (en) * 2020-07-17 2020-10-02 百度在线网络技术(北京)有限公司 Authorization signature generation method, node management method, device, equipment and medium
US20210320797A1 (en) * 2020-04-09 2021-10-14 International Business Machines Corporation Prevention of majority attacks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180097779A1 (en) * 2016-09-30 2018-04-05 Nec Europe Ltd. Method and system for providing a transaction forwarding service in blockchain implementations
US20210320797A1 (en) * 2020-04-09 2021-10-14 International Business Machines Corporation Prevention of majority attacks
CN111741012A (en) * 2020-07-17 2020-10-02 百度在线网络技术(北京)有限公司 Authorization signature generation method, node management method, device, equipment and medium

Similar Documents

Publication Publication Date Title
CN112039964B (en) Node reputation consensus method based on block chain
Lei et al. Reputation-based byzantine fault-tolerance for consortium blockchain
CN110990408B (en) Business information collaboration method based on block chain, business system and alliance chain
WO2021018088A1 (en) Trusted authentication method, network device, system and storage medium
US11310234B2 (en) Securing permissioned blockchain network from pseudospoofing network attacks
CN100591011C (en) Identification method and system
US7810147B2 (en) Detecting and preventing replay in authentication systems
CN113395363B (en) Data processing method, device and equipment based on block chain and storage medium
CN112883114A (en) Transaction processing method and device applied to block chain
CN112769580B (en) Blockchain hierarchical excitation consensus algorithm
CN111818056B (en) Industrial Internet identity authentication method based on block chain
WO2021232590A1 (en) User verification method and apparatus based on private chain, and computer device and storage medium
CN111030993A (en) Rayleigh consensus method based on extended credible authentication in alliance block chain
CN111917865B (en) Block chain network system, gateway and networking method
CN105991596A (en) Access control method and system
CN116996521B (en) Relay committee cross-chain interaction system and method based on trust evaluation model
Qushtom et al. A two-stage PBFT architecture with trust and reward incentive mechanism
Almakki et al. Fault tolerance byzantine algorithm for lower overhead blockchain
WO2023176586A1 (en) Blockchain system, node, and program
CN112488834B (en) Node management method, node management device, electronic equipment and readable storage medium
US20230360046A1 (en) Blockchain-based block processing method and apparatus, device, storage medium, and program product
WO2023082883A1 (en) Cross-blockchain transaction processing method and apparatus, and computer device, computer storage medium and computer program product
KR102235566B1 (en) Apparatus and method for anomaly detection based on blockchain
Huang et al. Consensus of whom? A spectrum of blockchain consensus protocols and new directions
CN111125653A (en) High-concurrency unified authentication method based on Nginx and Redis

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

Country of ref document: EP

Kind code of ref document: A1