WO2019004480A1 - ネットワークにおける合意形成方法及び当該ネットワークを構成するノード - Google Patents

ネットワークにおける合意形成方法及び当該ネットワークを構成するノード Download PDF

Info

Publication number
WO2019004480A1
WO2019004480A1 PCT/JP2018/024980 JP2018024980W WO2019004480A1 WO 2019004480 A1 WO2019004480 A1 WO 2019004480A1 JP 2018024980 W JP2018024980 W JP 2018024980W WO 2019004480 A1 WO2019004480 A1 WO 2019004480A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
message
proposal
received
round
Prior art date
Application number
PCT/JP2018/024980
Other languages
English (en)
French (fr)
Inventor
裕三 加納
峰史 小宮山
Original Assignee
株式会社bitFlyer
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 株式会社bitFlyer filed Critical 株式会社bitFlyer
Priority to US16/609,647 priority Critical patent/US11212165B2/en
Priority to CN201880028826.5A priority patent/CN111052091B/zh
Priority to EP18823052.8A priority patent/EP3647955B1/en
Publication of WO2019004480A1 publication Critical patent/WO2019004480A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/182Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits based on mutual exchange of the output between redundant processing components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0659Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
    • H04L41/0661Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities by reconfiguring faulty entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • G06F11/184Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/30Decision processes by autonomous network management units using voting and bidding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Definitions

  • the present invention relates to a method for forming a consensus in a network and nodes constituting the network, and more particularly, to a method for forming a consensus suitable when assuming the presence of a Byzantine failure node in a network and a node for constructing the network.
  • Blockchains are attracting attention as a technology that can replace the conventional crediting mechanism by centralized third parties.
  • a unit of data called a "block" is given to a plurality of nodes participating in consensus building on the block, and its validity is evaluated at each node.
  • each node determines that a consensus has been formed for the block among the plurality of possible blocks, and accepts the block. More specifically, the block is added to the block chain that each node has.
  • the block targeted for consensus building is proposed by each node to each node.
  • an agreement algorithm that determines what procedure is used to form an agreement and what is a predetermined condition for forming an agreement governs the reliability and performance of the block chain network.
  • the allowable number of failures also called “benign failure”
  • the acceptable number of any and all failures also referred to as "Byzantine failures”
  • Bosset failures the allowable number of failures that do not operate normally due to physical reasons such as communication status, power supply, etc.
  • the acceptable number of any and all failures also referred to as "Byzantine failures” that do not follow the predetermined rules will vary.
  • a node does not follow a predetermined rule, in addition to physical reasons, there is a case where there is an unauthorized access to the node, a case where the administrator of the node itself has an intention of fraud, etc. .
  • f number (f is an integer of 1 or more) of Byzantine failure nodes and operating each node under any agreement algorithm, sufficient safety and activity can be obtained, particularly realistic time The question of whether it can be obtained in the future will be of crucial importance in the spread of this technology in the future.
  • a secure consensus algorithm may also be described as having finality.
  • the present invention has been made in view of such problems, and an object thereof is a method for forming an agreement suitable when assuming f number of Byzantine failure nodes in a network having a plurality of nodes participating in an agreement formation. And providing a program for that purpose and a node that operates in accordance with the consensus building method.
  • a first aspect of the present invention provides f (f is 1 or more and N / 3) in a network having N (N is an integer of 1 or more) nodes participating in consensus formation.
  • each node sends a second message to the node to accept the proposal, within a predetermined time, If the number of valid first messages does not reach the predetermined value Q, each node sends a third message to the effect that the node rejects the proposal, and the second message of the received second message.
  • the own node is characterized in that it comprises a step of transmitting a fourth message to the effect that handled as agreed with the proposed in the network.
  • the predetermined value Q is an integer of (f + N + 1) / 2 or more.
  • the f is less than N / 3.
  • the second message is periodically or intermittently transmitted.
  • a second message in the same round from another node (a unit of a process of forming a consensus is called “round”). Sending the second message to each node.
  • the sixth aspect of the present invention is characterized in that, in any of the first to fifth aspects, when the fourth message is received from another node, the consensus formation is completed.
  • the third message is periodically or intermittently transmitted.
  • each node when the number of received third messages reaches a predetermined number Q, each node performs the next round (consensus formation Sending a fifth message to proceed to “the round”).
  • each node when the fifth message is received from another node in the same round or a round larger than the own node, each node receives the fifth message. And transmitting the information.
  • the node which makes the proposal is decided on a round by round basis (a unit of a process of forming a consensus is called a "round").
  • the method further comprises the step of selecting
  • each node is assigned an orderable identifier, and the selection is made such that the order is determined by r mod N, where r is the number of rounds. It is characterized by
  • any one of the first to eleventh aspects when the number of received first messages reaches a predetermined value Q, or the second message from another node is received.
  • the lock is set to limit the subsequent operation.
  • the limitation includes that when lock is selected as a node to make a proposal, data at the time of locking and data to be agreed are included in the same proposal. It features.
  • the limitation is the proposal when the same data as the data targeted for consensus formation at the time of the lock is a consensus formation. It is characterized by including enabling transmission of a first message to the effect of having determined that it is valid.
  • a consensus forming target in the large round is received. It is characterized in that a new lock is set for data to limit the subsequent operation.
  • the second message includes evidence data as a basis for determining that the predetermined value Q is satisfied. It features.
  • a seventeenth aspect of the present invention is characterized in that, in any one of the first to sixteenth aspects, the fourth message includes data to be agreed upon or a hash value calculated therefrom.
  • the data is a block, and each node has reached a predetermined value Q for the number of received second messages.
  • the block is added to the block chain of each node.
  • f is an integer greater than or equal to 1 and less than N / 3 in a network having N (N is an integer of 1 or more) nodes participating in consensus formation in a computer.
  • each node Receiving a first message to the effect, and when the number of received first messages reaches a predetermined value Q, each node transmits a second message indicating that the node accepts the proposal If the number of valid first messages does not reach the predetermined value Q within a predetermined time, each node transmits a third message to the effect that it rejects the proposal. Sending, to each node, a fourth message indicating that the node treats the proposal as agreed upon in the network if the number of received second messages reaches a predetermined value Q. And including.
  • f by an integer of 1 or more and an integer of less than 3) byzantine failure nodes in a network having N (N is an integer of 4 or more) nodes participating in consensus formation.
  • N is an integer of 4 or more
  • Receiving a first message from another node indicating that a message including data to be agreed upon is determined as valid as a proposal, from the node for forming a suitable agreement when assuming
  • the self node transmits to each node a second message for accepting the proposal, and the first valid message is received within a predetermined time.
  • the node transmits, to each node, a third message to the effect that the proposal is rejected, and the number of received second messages reaches the predetermined value Q. If you do not , The own node and transmitting a fourth message to the effect that handled as agreed with the proposed in the network.
  • the behavior of each node and communication between the nodes upon reception of each of a proposal message, a voting message, an acceptance message, a rejection message, a representation message and a next round message, which will be described later, are specific.
  • FIG. 1 shows a network in an embodiment of the present invention. It is a schematic diagram of the data structure of the message in one Embodiment of this invention. It is a figure which shows the state transition of each node in one Embodiment of this invention.
  • N is an integer of 1 or more
  • f the number of Byzantine failure nodes
  • FIG. 1 shows a network in an embodiment of the present invention.
  • N is 6 as an example
  • each node 110 is a communication unit 111 such as a communication interface, a processor, a processor 112 such as a CPU, and a storage unit including a storage device or storage medium such as a memory or a hard disk.
  • each processing described below can be realized by executing a predetermined program, and the node 110 may include one or more devices or servers, and The program may include one or more programs, and may be recorded on a computer readable storage medium to be a non-transitory program product.
  • the hardware configuration of only the node indicated by reference numeral 110 is illustrated, but the same applies to the other nodes.
  • rules relating to the agreement algorithm are defined, and can be stored in a storage device or storage medium accessible from the storage unit 113 or each node 110 via the network. Nodes other than the Byzantine failure node 120 operate normally based on the rule. In the example of FIG. 1, f is one.
  • the message 200 includes some data 201 such as a block to be transmitted, and additionally, a signature 202 is added by the node that is the sender.
  • Each node has a set of identifiers that are allocated to each of the nodes that make up the network and that uniquely identify each node, and by using the identifiers to verify the sender's signature 202 added to the message. , The node which transmitted the said message can be confirmed.
  • the public key corresponding to the secret key associated with each node is used as the identifier of the node
  • the signature 202 is a secret key based on the message 200 or data 201 to be transmitted or the hash value calculated therefrom. It can be generated by
  • each node is in a wait state (S301), and one of the nodes is selected as a proposer 130 by deterministic calculation.
  • "deterministic" means that the same result is obtained at any node.
  • the unit of trial for consensus building is called “round” and the number of rounds is denoted by r.
  • the computation of r mod N can deterministically select the node 130 to be the proposer.
  • the first node is selected when N is 6 and r is 1, and the second node is selected when r is 2 by configuring the above-described set of identifiers by an orderable identifier.
  • r + a mod N (a is a constant) may be used.
  • each node stores the current number of rounds r of its own node in the storage unit 113 or is accessible via the network and can be referred to, so the own node is the proposer
  • Each node can determine whether it is or not. As will be described later, since each node may advance to the next round, it may receive a message from a node in a different round from the own node.
  • the proposer 130 sends a message including the data to be agreed upon to each of the nodes constituting the network 100 with a signature and proposes it. After the transmission, the proposer is in a proposed state, and the other nodes are in a proposed state in response to receiving the message (S302). It is assumed that the proposer also receives the proposal from the own node, and more generally, the node which has sent some message also receives the message from the own node.
  • receiving from the own node includes referring to a message stored in the own node. The proposer may be made to be in the proposed state according to the reception rather than the transmission of the proposal.
  • the message for proposal and other messages described below include the current number of rounds r.
  • Each node that receives a proposal evaluates the proposal to determine if it is valid.
  • the determination of whether the proposal is valid includes determination of whether or not the proposal has been sent by the one selected as the proposer in the round, and, for example, the data format is a predetermined format according to the application, etc.
  • the method may further include determining whether a predetermined condition is satisfied.
  • a node determined to be valid transmits a message to that effect to each node with a signature by the own node.
  • the message may be referred to as a voting message (corresponding to a “first message”) in the sense of voting for a valid proposal.
  • the voting message includes, as data 201, proposal content or a hash value calculated therefrom.
  • the determination of the validity of the received message can be performed as necessary, and only the valid message can be a processing target such as counting.
  • the node receiving the proposal may transition to the proposed state if the proposal is valid.
  • the Byzantine fault node 120 has proposed to each node although it is not the proposer 130, it is determined to be invalid here.
  • the Byzantine failure node 120 is the proposer 130 and a predetermined rule defined in the agreement algorithm is to make the same proposal in each round for each node, make a plurality of different proposals. It is possible that the proposal is not sent to some nodes. In such a case, if the validity determination is only the propriety of the sender, the Byzantine failure node 120 is valid as a proposer, so each node has a voting message for the proposal received by the respective node. It will be sent. Even in such a situation, a consensus can be formed by the processing according to the present embodiment described below.
  • the node When each node reaches the predetermined value Q when the number of voting messages for the same proposal received in the same round reaches a predetermined value Q, the node transmits a signed message indicating that the proposal is accepted, and accepts it ( It changes to the state of "accepted” (S303-1).
  • the message may be referred to as an acceptance message (corresponding to a "second message").
  • the acceptance message may include evidence data on which the node has determined that the predetermined value Q has been satisfied.
  • the evidence data may specifically be Q or more received voting messages or data corresponding thereto.
  • the acceptance message can include the proposal content or a hash value calculated therefrom. It is desirable that nodes in acceptance state send acceptance messages periodically or intermittently in order to increase their activity.
  • the predetermined value Q when the value of f is known, it is understood that it is necessary to set the predetermined value Q to an integer of (f + N + 1) / 2 or more in order to ensure safety. In practice, it may be a minimum integer of (f + N + 1) / 2 or more. That is, in order to ensure security, it is necessary to ensure that the predetermined value Q is not satisfied for a plurality of different proposals, and for that purpose, when Q nodes vote, (N ⁇ f) It is required that a majority of normal nodes of Q> (Nf) / 2 Must be satisfied. Among the Q nodes that have sent the voting message, there may be up to f Byzantine failure nodes 120, so that Q ⁇ f> (N ⁇ f) / 2. Is required to be satisfied, which is Q> (N + f) / 2 It can also be expressed as (N + f + 1) / 2 or more.
  • the number (N ⁇ f) of normal nodes is equal to or more than a predetermined value Q. Therefore, it is required that the number f of the byzantine failure nodes 120 be equal to or less than (N-1) / 3 by substituting the condition of Q above. This can also be expressed as less than N / 3.
  • the predetermined value Q may be a minimum integer of (2N + 1) / 3 or more. As an example, when N is 4, Q is 3.
  • each node transmits a signed message to each node to the effect that it rejects the proposal in the round if the number of received voting messages does not reach the predetermined value Q within the predetermined time.
  • the message may be referred to as a rejection message (corresponding to a “third message”).
  • the predetermined time may be, for example, 10 seconds. It is desirable that nodes in rejection state send rejection messages periodically or intermittently in order to increase the activity.
  • each node when the number of received acceptance messages reaches a predetermined number Q, confirms the existence of evidence data of each message as necessary, and then sends its proposal to each node Send a message to treat as an agreement by 100, and complete the agreement formation process (S304).
  • the message may be referred to as an assertion message (corresponding to a "fourth message") in the sense that the proposal is treated as agreed upon (commit).
  • the assertion message includes the proposal content or a hash value calculated therefrom, and if the proposal content is a block, the block chain possessed by the node is added upon completion.
  • the assertion message may include the proposal content or a hash value calculated therefrom.
  • the assertion message may include evidence data that is the basis for determining that the node has satisfied the predetermined value Q.
  • the evidence data may specifically be Q or more acceptance messages received or data corresponding thereto.
  • FIG. 3 shows the acceptance process or the rejection process from the acceptance process to the completion process
  • the agreement process is completed even if each node is in the waiting or proposed state if the conditions are satisfied. Can be completed.
  • the node that receives the assertion message receives it, confirms the existence of the evidence data as necessary, and completes the consensus building process.
  • each node transmits a message for proceeding to the next round to each node when the number of rejection messages received reaches a predetermined number Q, and the own node also transitions to the waiting state in the next round Do.
  • the message may be called a next round message (corresponding to the “fifth message”). Because the agreement has not been reached, the process proceeds to the next round and the process of consensus building under the new proposer 130.
  • the next round message may include evidence data on which the node has determined that the predetermined value Q is satisfied.
  • the evidence data may specifically be Q or more rejection messages received or data corresponding thereto.
  • the next round message may include the proposal content or a hash value calculated therefrom.
  • a dotted arrow indicates transition from the acceptance or rejection state to the next round waiting state, but if the conditions are satisfied, each node is in the waiting or proposed state. Even if there is, you can advance to the next round. Also, even if the above conditions are not satisfied, when the next round message of the same round is received from another node, it may transition to the waiting state of the next round, and the next round message is sent to each node. You may make it transmit.
  • the transition from the proposed state to the acceptance state is described, the transition can be generated as long as the above condition is satisfied from the waiting state or the rejection state. . Furthermore, even if the number of received voting messages does not reach the predetermined value Q, the state of acceptance may be transitioned to when receiving an acceptance message of the same round from another node. With regard to the acceptance message from the round lower than the own node, it is conceivable that the Byzantine failure node 120 may send a delay without sending it in the round where the acceptance message should be sent, and if other nodes accept it based on this, Consensus is formed for multiple proposals, which may result in divergence.
  • Locking prevents, for example, a situation in which one node casts a plurality of votes, lowers the probability that the condition of a predetermined value Q is satisfied for a plurality of different proposals, to zero, Can be enhanced.
  • each node can transition to the acceptance state, and lock can be set.
  • lock can be set.
  • when locked even if a proposal is received, if the data to be agreed upon is not identical to that at the time of locking, no vote is taken even if the proposal is valid.
  • the own node is selected as a proposer, it is possible to have to propose data to be agreed upon in the lock round.
  • Third Embodiment Messages from different rounds may be received due to network disconnection, delay, etc. Specifically, when an acceptance message in a round larger than the own node is received, it is not ignored but, if locked, it is released, and the own node's round is updated to the relevant round, and further You may set the lock. Also, when receiving an acceptance message in a round that is lower than the round of the own node but larger than the round when the own node is locked, the lock is released, and the lock is set with the content of the proposal in the round of the acceptance message. , About the number of rounds, it can be left as the round of the own node. This ability to unlock can enhance activity in consensus building. Since it is possible that the Byzantine failure node sends an acceptance message of a large round without basis, confirmation of the existence of basis data is performed as necessary.
  • the round of a self-node may be updated to the said round, and the next round message may be transmitted in the said round.
  • the round of the own node may be updated to the round, and when the proposal is valid, a voting message may be transmitted in the round. More specifically, if r is 2 or more, the proposal message includes the next round message of the previous round, and the node receiving the proposal confirms the existence of the ground data of the next round message. Node rounds may be updated. Alternatively, when the proposed message is received, the source node may be requested to transmit the next round message of the previous round.
  • an assertion message may be received from a round different from that of the node itself, and in this case, regardless of the round and with or without the lock, the proposal in the round is treated as agreed by the network 100 and agreed.
  • the formation process can be completed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】合意形成に参加する複数のノードを有するネットワークにおいてf個のビザンチン障害ノードを仮定したときに適した合意形成方法を提供する。各ノードは待ちの状態にあり(S301)、決定論的な計算によって当該ラウンドにおける提案者130が選ばれる。提案者130は、合意形成対象のデータを含むメッセージを各ノードに送信する。提案者は送信により、他のノードは当該メッセージを受信したことに応じて提案済みとなる(S302)。提案を受領した各ノードは提案の有効性を判定し、有効な場合その旨の投票メッセージを送信する。各ノードは、受信した投票メッセージの数が所定の値Qに達した場合、提案を受け入れる旨のメッセージを送信する(S303-1)。次に、各ノードは、受信した受け入れメッセージの数が値Qに達した場合、提案を合意されたものとして扱う旨のメッセージを送信して合意形成プロセスを完了する(S304)。

Description

ネットワークにおける合意形成方法及び当該ネットワークを構成するノード
 本発明は、ネットワークにおける合意形成方法及び当該ネットワークを構成するノードに関し、より詳細には、ネットワークにおいてビザンチン障害ノードの存在を仮定したときに適した合意形成方法及び当該ネットワークを構成するノードに関する。
 ブロックチェーンが中央集権的な第三者機関による従来の信用付与のメカニズムを代替可能な技術として注目されている。「ブロック」と呼ばれるデータの単位が当該ブロックについての合意形成に参加する複数のノードに与えられ、その有効性(validity)がそれぞれのノードにおいて評価(evaluate)される。所定の条件が満たされることにより、各ノードは、複数の可能性のあるブロックの中から、当該ブロックについてその採択の合意(consensus)が形成されたと判定して、当該ブロックを受け入れる。より具体的には、当該ブロックが、各ノードが有するブロックチェーンに追加される。合意形成の対象となるブロックは、いずれかのノードによって、各ノードに対して提案される。
 ここで、どのような手順で合意を形成するか、何を合意形成のための所定の条件とするかという合意アルゴリズムがブロックチェーンネットワークの信頼性と性能を左右する。合意アルゴリズム次第で、たとえば通信状況・電力供給等の物理的な理由により正常に動作しない障害(「良性障害(benign failure)」とも呼ばれる。)の許容可能な数が異なり、また、合意アルゴリズムに定められた所定のルールに従わないような任意のあらゆる障害(「ビザンチン障害(Byzantine failure)」とも呼ばれる。)の許容可能な数が異なる。あるノードが所定のルールに従わないような場面としては、物理的な理由のほか、当該ノードに対する不正アクセスがあった場合、当該ノードの管理者自身に不正の意図があった場合等が挙げられる。
 ブロックチェーンネットワークにどの程度の障害耐性(fault tolerance)を要求するかは、ブロックチェーンの用途に応じて異なり、現在さまざまな可能性が探られている。特に、一定の用途においては、良性障害のみならず、所定の数のビザンチン障害ノードを許容し得るビザンチン障害耐性(Byzantine fault tolerance)をもつ合意アルゴリズムが求められている。
 合意アルゴリズムに一般に求められる性質としては、大きく安全性(safety)と活性(liveness)とがあり、前者は、あるデータに対して一度合意が形成されれば正常に振る舞うノードのすべてが当該合意を覆すことなく共有することを意味し、後者は、有限時間内に合意形成が可能であることを意味する。
 f個(fは1以上の整数)のビザンチン障害ノードを仮定したときにどのような合意アルゴリズムの下で各ノードを動作させれば十分な安全性及び活性が得られるのか、特に現実的な時間内に得られるのかという問題は、今後のこの技術の普及の上で決定的に重要となってくる。安全性のある合意アルゴリズムは、ファイナリティがあるとも表現されることがある。
 本発明は、このような問題点に鑑みてなされたものであり、その目的は、合意形成に参加する複数のノードを有するネットワークにおいてf個のビザンチン障害ノードを仮定したときに適した合意形成方法及びそのためのプログラム並びに当該合意形成方法に従って動作するノードを提供することにある。
 このような目的を達成するために、本発明の第1の態様は、合意形成に参加するN個(Nは1以上の整数)のノードを有するネットワークにおいてf個(fは1以上N/3未満の整数)のビザンチン障害ノードを仮定したときに適した合意形成方法であって、他のノードから、合意形成の対象となるデータを含むメッセージを提案として有効と判定した旨の第1のメッセージを受領するステップと、受領した第1のメッセージの数が所定の値Qに達した場合、各ノードに、自ノードは前記提案を受け入れる旨の第2のメッセージを送信し、所定時間内に、有効な第1のメッセージの数が前記所定の値Qに達しない場合、各ノードに、自ノードは前記提案を却下する旨の第3のメッセージを送信するステップと、受領した第2のメッセージの数が所定の値Qに達した場合、各ノードに、自ノードは前記提案を前記ネットワークにおいて合意されたものとして扱う旨の第4のメッセージを送信するステップとを含むことを特徴とする。
 また、本発明の第2の態様は、第1の態様において、fの値が既知の場合、前記所定の値Qは、(f+N+1)/2以上の整数であることを特徴とする。
 また、本発明の第3の態様は、第2の態様において、前記fは、N/3未満であることを特徴とする。
 また、本発明の第4の態様は、第1から第3のいずれかの態様において、第2のメッセージを定期的又は断続的に送信することを特徴とする。
 また、本発明の第5の態様は、第1から第4のいずれかの態様において、他のノードから同一のラウンド(合意形成の過程の単位を「ラウンド」と呼ぶ。)における第2のメッセージを受信した場合、各ノードに、前記第2のメッセージを送信するステップをさらに含むことを特徴とする。
 また、本発明の第6の態様は、第1から第5のいずれかの態様において、他のノードから第4のメッセージを受信した場合、合意形成を完了させることを特徴とする。
 また、本発明の第7の態様は、第1から第6のいずれかの態様において、第3のメッセージを定期的又は断続的に送信することを特徴とする。
 また、本発明の第8の態様は、第1から第7のいずれかの態様において、受領した第3のメッセージの数が所定の数Qに達した場合、各ノードに次のラウンド(合意形成の過程の単位を「ラウンド」と呼ぶ。)に進むための第5のメッセージを送信するステップをさらに含むことを特徴とする。
 また、本発明の第9の態様は、第8の態様において、他のノードから同一のラウンド又は自ノードよりも大きなラウンドにおける第5のメッセージを受信した場合、各ノードに、前記第5のメッセージを送信するステップをさらに含むことを特徴とする。
 また、本発明の第10の態様は、第1から第9のいずれかの態様において、前記提案を行うノードをラウンドごとに(合意形成の過程の単位を「ラウンド」と呼ぶ。)決定論的に選択するステップをさらに含むことを特徴とする。
 また、本発明の第11の態様は、第10の態様において、各ノードは、順序付け可能な識別子が割り振られ、前記選択は、ラウンド数をrとしてr mod Nにより定まる順序のノードが選ばれることを特徴とする。
 また、本発明の第12の態様は、第1から第11のいずれかの態様において、受領した第1のメッセージの数が所定の値Qに達した場合又は他のノードから第2のメッセージを受領した場合、ロックを設定して以後の動作を限定することを特徴とする。
 また、本発明の第13の態様は、第12の態様において、前記限定は、提案を行うノードとして選択された場合、ロック時と合意形成対象のデータが同一の提案を行うことを含むことを特徴とする。
 また、本発明の第14の態様は、第12の態様において、前記限定は、提案を受領した場合、ロック時の合意形成対象のデータと同一のデータが合意形成対象であるときに、提案として有効と判断した旨の第1のメッセージを送信可能とすることを含むことを特徴とする。
 また、本発明の第15の態様は、第12から第14のいずれかの態様において、自ノードのロック時よりも大きなラウンドにおける第2のメッセージを受領した場合、前記大きなラウンドにおける合意形成対象のデータについて新たにロックを設定して以後の動作を限定することを特徴とする。
 また、本発明の第16の態様は、第1から第15のいずれかの態様において、前記第2のメッセージは、前記所定の値Qが満たされたと判定した根拠となる証拠データを含むことを特徴とする。
 また、本発明の第17の態様は、第1から第16のいずれかの態様において、前記第4のメッセージは、合意形成対象のデータ又はそれから計算されるハッシュ値を含むことを特徴とする。
 また、本発明の第18の態様は、第1から第17のいずれかの態様において、前記データはブロックであり、各ノードは、受領した第2のメッセージの数が所定の値Qに達した場合、各ノードが有するブロックチェーンに前記ブロックを追加することを特徴とする。
 また、本発明の第19の態様は、コンピュータに、合意形成に参加するN個(Nは1以上の整数)のノードを有するネットワークにおいてf個(fは1以上N/3未満の整数)のビザンチン障害ノードを仮定したときに適した合意形成方法を実行させるためのプログラムであって、前記合意形成方法は、他のノードから、合意形成の対象となるデータを含むメッセージを提案として有効と判定した旨の第1のメッセージを受領するステップと、受領した第1のメッセージの数が所定の値Qに達した場合、各ノードに、自ノードは前記提案を受け入れる旨の第2のメッセージを送信し、所定時間内に、有効な第1のメッセージの数が前記所定の値Qに達しない場合、各ノードに、自ノードは前記提案を却下する旨の第3のメッセージを送信するステップと、受領した第2のメッセージの数が所定の値Qに達した場合、各ノードに、自ノードは前記提案を前記ネットワークにおいて合意されたものとして扱う旨の第4のメッセージを送信するステップとを含むことを特徴とする。
 また、本発明の第20の態様は、合意形成に参加するN個(Nは4以上の整数)のノードを有するネットワークにおいてf個(fは1以上N/3未満の整数)のビザンチン障害ノードを仮定したときに適した合意形成を行うためのノードであって、他のノードから、合意形成の対象となるデータを含むメッセージを提案として有効と判定した旨の第1のメッセージを受領し、受領した第1のメッセージの数が所定の値Qに達した場合、各ノードに、自ノードは前記提案を受け入れる旨の第2のメッセージを送信し、所定時間内に、有効な第1のメッセージの数が前記所定の値Qに達しない場合、各ノードに、自ノードは前記提案を却下する旨の第3のメッセージを送信し、受領した第2のメッセージの数が所定の値Qに達した場合、各ノードに、自ノードは前記提案を前記ネットワークにおいて合意されたものとして扱う旨の第4のメッセージを送信することを特徴とする。
 本発明の一態様によれば、後述する提案メッセージ、投票メッセージ、受け入れメッセージ、却下メッセージ、表明メッセージ及びネクストラウンドメッセージのそれぞれを受け取った際の各ノードの振る舞いとノード間での通信につき、特有の構成を採用することによって、合意形成に参加する複数のノードを有するネットワークにおいてのビザンチン障害ノードを仮定したときに適した合意形成方法を提供することができる。
本発明の一実施形態におけるネットワークを示す図である。 本発明の一実施形態におけるメッセージのデータ構造の模式図である。 本発明の一実施形態における各ノードの状態遷移を示す図である。
 以下、図面を参照して本発明の実施形態を詳細に説明する。
 (第1の実施形態) 
 ブロックを含む何らかのデータについての合意形成に参加するノードの総数をN(Nは1以上の整数)、ビザンチン障害ノードの数をfと仮定する。本発明は、この仮定の下で、安全性及び活性が得られる合意形成方法を提供する。
 図1に、本発明の一実施形態におけるネットワークを示す。ネットワーク100は、例示としてNが6であり、各ノード110は、通信インターフェースなどの通信部111と、プロセッサ、CPU等の処理部112と、メモリ、ハードディスク等の記憶装置又は記憶媒体を含む記憶部113とを備えるコンピュータであり、所定のプログラムを実行することによって、以下で説明する各処理を実現することができ、当該ノード110は、1又は複数の装置ないしサーバを含むことがあり、また当該プログラムは、1又は複数のプログラムを含むことがあり、また、コンピュータ読み取り可能な記憶媒体に記録して非一過性のプログラムプロダクトとすることができる。符号110で示すノードについてのみ、そのハードウェアの構成を図示しているが、その他のノードについても同様である。
 所定のプログラムには、合意アルゴリズムにかかるルールが定められており、記憶部113又は各ノード110からネットワークを介してアクセス可能な記憶装置又は記憶媒体に記憶しておくことができる。ビザンチン障害ノード120以外のノードは、当該ルールに基づいて正常な動作をするものとする。図1の例では、fは1である。
 ノード間では、メッセージが直接的又は間接的に送受信され、ネットワークを構成する他のノードに合意形成にかかるデータを伝え、また、他のノードからデータを受け取ることができる。図2に模式的に示すように、メッセージ200には、送信されるブロックなどの何らかのデータ201が含まれ、加えて、送信者であるノードによる署名202が付加される。ネットワークを構成する各ノードに割り振られ、各ノードを一意に識別する一組の識別子を各ノードは有しており、メッセージに付加される送信者の署名202を当該識別子を用いて検証することによって、当該メッセージを送信したノードを確認することができる。具体的には、各ノードに関連づけられた秘密鍵に対応する公開鍵を当該ノードの識別子とし、署名202は、送信されるメッセージ200若しくはデータ201又はこれらから計算されるハッシュ値に基づいて秘密鍵により生成したものとすることができる。
 まず、各ノードは、待ち(wait)の状態(state)にあり(S301)、決定論的な計算によって、いずれかのノードが提案者(proposer)130として選ばれる。ここで、「決定論的(deterministic)」とは、いずれのノードにおいても同一の結果が得られることを意味する。本発明では、合意形成の試行の単位を「ラウンド」と呼び、ラウンドの数をrで表す。たとえば、r mod Nの計算によって提案者となるノード130を決定論的に選ぶことができる。一例として、上述の一組の識別子を順序付け可能な識別子により構成することで、Nが6、rが1のときは1番目のノードが選ばれ、rが2のときは2番目のノードが選ばれる。r mod Nの代わりにr+a mod N(aは定数)のようにしてもよい。各ノードにおいて上記計算が行われ、各ノードは自ノードの現在のラウンド数rを記憶部113に記憶しているか、ネットワークを介してアクセス可能であり、参照可能であるため、自ノードが提案者であるか否かを各ノードは判定することが可能である。後述のように、ノードごとに次のラウンドに進むことがあるため、自ノードとは異なるラウンドにいるノードからのメッセージを受信することがある。
 提案者130は、合意形成対象のデータを含むメッセージをネットワーク100を構成する各ノードに署名付きで送信して提案する。送信後、提案者は提案済み(proposed)の状態となり、他のノードは、当該メッセージを受信したことに応じて提案済みの状態となる(S302)。提案者も自ノードからの提案を受け取るものとし、より一般的には、何らかのメッセージを送信したノードも自ノードからのメッセージを受け取るものとする。ここで、自ノードからの受け取りには、自ノードに記憶されたメッセージを参照することを含む。提案者は、提案の送信ではなく受け取りに応じて提案済みの状態となるようにしてもよい。また、提案のためのメッセージ及び以下で説明するその他のメッセージには、現在のラウンド数rを含む。
 提案を受領した各ノードは、当該提案を評価して、それが有効(valid)であるか否かを判定する。有効か否かの判定は、当該提案がそのラウンドで提案者として選択されたものによって送信されたものであるか否かの判定を含み、たとえば、データ形式が用途に応じた所定の形式その他の所定の条件を満たすか否かの判定をさらに含んでもよい。有効と判定したノードは、各ノードにその旨のメッセージを自ノードによる署名付きで送信する。当該メッセージは、有効な提案に対する投票という意味で、投票メッセージ(「第1のメッセージ」に対応)と呼ぶことがある。投票メッセージには、データ201として、提案内容又はそれから計算されるハッシュ値が含まれる。以下の処理においても、受け取ったメッセージの有効性の判定を必要に応じて行い、有効なメッセージのみをカウントなどの処理対象とするようにすることができる。提案を受け取ったノードは、当該提案が有効である場合に提案済みの状態に遷移するようにしてもよい。
 ビザンチン障害ノード120が提案者130でないにも関わらず、各ノードに提案をしたような際には、ここで、無効と判定される。また、ビザンチン障害ノード120が提案者130であり、合意アルゴリズムに定められた所定のルール上はラウンドごとに同一の提案を各ノードにすべきであるにも関わらず、複数の異なる提案を行ってしまったり、一部のノードに提案を送らないといったことが考えられる。このような場合には、有効性の判定が送信者の適否のみであれば、ビザンチン障害ノード120は提案者としては有効であるため、各ノードは、それぞれのノードが受け取った提案に対する投票メッセージを送信することとなる。このような状況においても、以下に説明する本実施形態にかかる処理によって、合意形成が可能である。
 各ノードは、同一ラウンド内で受信した同じ提案に対する投票メッセージの数が所定の値Qに達した場合、各ノードに自ノードは当該提案を受け入れる旨のメッセージを署名付きで送信して、受け入れ(accepted)の状態に遷移する(S303-1)。当該メッセージは、受け入れメッセージ(「第2のメッセージ」に対応)と呼ぶことがある。受け入れメッセージは、当該ノードが所定の値Qが満たされたと判定した根拠となる証拠データ(evidence data)を含むことができる。証拠データは、具体的には、受け取ったQ個以上の投票メッセージ又はこれに対応するデータとすることができる。また、受け入れメッセージは、提案内容又はそれから計算されるハッシュ値を含むことができる。受け入れの状態にあるノードは、活性を高めるために、定期的又は断続的に受け入れメッセージを送信するのが望ましい。
 ここで、所定の値Qは、fの値が既知の場合、(f+N+1)/2以上の整数とすることが安全性を確保する上で必要であることが分かる。実際には、(f+N+1)/2以上の最小の整数とすればよい。すなわち、安全性を確保するには、複数の異なる提案について所定の値Qが満たされないようにすることが必要であり、そのためには、Q個のノードが投票したときには、(N-f)個の正常なノードの過半数が投票をしていることが求められ、
 Q>(N-f)/2
が満たされなければならない。投票メッセージを送信したQ個のノードのうち、ビザンチン障害ノード120が最大f個存在し得るため、さらに
 Q-f>(N-f)/2
 が満たされることが求められ、これは
 Q>(N+f)/2
となり、(N+f+1)/2以上と表すこともできる。
 また、活性を確保するためには、正常なノードの数(N-f)が所定の値Q以上であることが求められる。したがって、上記Qの条件を代入して、ビザンチン障害ノード120の数fは(N-1)/3以下となることが要求される。これは、N/3未満と表現することもできる。fの値が(N-1)/3以下であること以上は不明である場合、所定の値Qは、(2N+1)/3以上の最小の整数とすればよい。一例として、Nが4のとき、Qが3となる。
 また、各ノードは、所定時間内に、受信した投票メッセージの数が所定の値Qに達しない場合、各ノードに自ノードは当該ラウンドにおける提案を却下する旨のメッセージを署名付きで送信して、却下(dismissed)の状態に遷移する(S303-2)。当該メッセージは、却下メッセージ(「第3のメッセージ」に対応)と呼ぶことがある。上記所定時間は、たとえば、10秒とすることが考えられる。却下の状態にあるノードは、活性を高めるために、定期的又は断続的に却下メッセージを送信するのが望ましい。
 次に、各ノードは、受信した受け入れメッセージの数が所定の数Qに達した場合、必要に応じて各メッセージの証拠データの存在を確認した上で、各ノードに自ノードは当該提案をネットワーク100により合意されたものとして扱う旨のメッセージを送信して、合意形成プロセスを完了(complete)する(S304)。当該メッセージは、提案を合意されたものとして扱う旨の表明(commit)という意味で、表明メッセージ(「第4のメッセージ」に対応)と呼ぶことがある。表明メッセージは、提案内容又はそれから計算されるハッシュ値を含み、提案内容がブロックの場合、完了を受けて当該ノードが有するブロックチェーンが加えられる。また、表明メッセージは、提案内容又はそれから計算されるハッシュ値を含むことができる。また、表明メッセージは、当該ノードが所定の値Qが満たされたと判定した根拠となる証拠データを含むことができる。証拠データは、具体的には、受け取ったQ個以上の受け入れメッセージ又はこれに対応するデータとすることができる。
 図3では、受け入れの状態又は却下の状態から合意形成プロセスが完了に至るように示しているが、条件を満たせば、各ノードが待ちの状態又は提案済みの状態にあっても、合意形成プロセスは完了することができる。表明メッセージを受信したノードは、それを受けて、必要に応じて証拠データの存在を確認した上で、合意形成プロセスを完了する。
 また、各ノードは、受信した却下メッセージの数が所定の数Qに達した場合、各ノードに次のラウンドに進むためのメッセージを送信して、自ノードも次のラウンドにおける待ちの状態に遷移する。当該メッセージは、ネクストラウンドメッセージ(「第5のメッセージ」に対応)と呼ぶことがある。合意に至らなかったため、次のラウンドに進み、新たな提案者130の下で合意形成のプロセスが進められる。ネクストラウンドメッセージは、当該ノードが所定の値Qが満たされたと判定した根拠となる証拠データを含むことができる。証拠データは、具体的には、受け取ったQ個以上の却下メッセージ又はこれに対応するデータとすることができる。また、ネクストラウンドメッセージは、提案内容又はそれから計算されるハッシュ値を含むことができる。
 図3では、点線矢印によって、受け入れの状態又は却下の状態から次のラウンドの待ちの状態に遷移するように示しているが、条件を満たせば、各ノードが待ちの状態又は提案済みの状態にあっても、次のラウンドに進むことができる。また、上記条件を満たさなくとも、他のノードから同一のラウンドのネクストラウンドメッセージを受け取った際に、次のラウンドの待ちの状態に遷移するようにしてもよく、さらに各ノードにネクストラウンドメッセージを送信するようにしてもよい。
 上述の説明では、提案済みの状態から受け入れの状態に遷移するように記述しているが、待ちの状態からでも、あるいは却下の状態からでも、上記条件を満たせば、遷移を発生させることができる。更に、受信した投票メッセージの数が所定の値Qに達しない場合であっても、他のノードから同一のラウンドの受け入れメッセージを受け取った際に、受け入れの状態に遷移するようにしてもよい。自ノードよりも低いラウンドからの受け入れメッセージについては、ビザンチン障害ノード120が受け入れメッセージを送るべきラウンドでは送らずに遅延させて送ることが考えられ、これに基づいて他のノードが受け入れてしまうと、複数の提案について合意が形成され、分岐が生じるおそれがある。
 なお、「××のみに基づいて」、「××のみに応じて」、「××のみの場合」というように「のみ」との記載がなければ、本明細書においては、付加的な情報も考慮し得ることが想定されていることに留意されたい。
 (第2の実施形態) 
 本発明の第2の実施形態においては、第1の実施形態にかかる合意形成方法に対し、各ノードの動作を一定の動作に限定する「ロック(lock)」の設定を行う。ロックがなされることで、たとえば、一つのノードが複数の投票等を行ってしまうような状況を抑止し、複数の異なる提案について所定の値Qの条件が満たされる可能性をゼロまで下げ、安全性を高めることができる。
 具体的には、各ノードが受け入れの状態に遷移するとともに、ロックの設定を行うことができる。一例として、ロックされた場合、提案を受け取っても、合意形成対象のデータがロック時におけるものと同一でなければ、当該提案が有効であっても投票を行わない。また、自ノードが提案者として選択された場合、ロック時のラウンドにおける合意形成対象のデータを提案しなければならないようにすることができる。
 (第3の実施形態) 
 ネットワークの切断、遅延等によって異なるラウンドからのメッセージを受け取ることがある。具体的には、自ノードよりも大きいラウンドにおける受け入れメッセージを受領した場合、それを無視するのではなく、ロックされていればそれを解除して、自ノードのラウンドを当該ラウンドに更新し、更にロックの設定をしてもよい。また、自ノードのラウンドよりは低いが自ノードがロックされた際のラウンドよりは大きいラウンドにおける受け入れメッセージを受領した場合、ロックを解除して、当該受け入れメッセージのラウンドにおける提案内容でロックを設定し、ラウンド数については、自ノードのラウンドのままとすることができる。ロックの解除をこのように可能とすることで、合意形成における活性を高めることができる。ビザンチン障害ノードが根拠なく大きいラウンドの受け入れメッセージを送信することが考えられることから、根拠データの存在の確認が必要に応じて行われる。
 また、自ノードよりも大きいラウンドにおけるネクストラウンドメッセージを受領した場合、自ノードのラウンドを当該ラウンドに更新し、当該ラウンドにおいてネクストラウンドメッセージを送信してもよい。
 また、自ノードよりも大きいラウンドにおける提案を受領した場合、自ノードのラウンドを当該ラウンドに更新し、当該提案が有効なとき、当該ラウンドにおいて投票メッセージを送信してもよい。より詳細には、rが2以上の場合には提案のメッセージには、前のラウンドのネクストラウンドメッセージを含め、提案を受け取ったノードは当該ネクストラウンドメッセージの根拠データの存在を確認した上で自ノードのラウンドを更新するようにしてもよい。あるいは、提案のメッセージを受け取った際に、送信元のノードに前のラウンドのネクストラウンドメッセージの送信を要求するようにしてもよい。
 また、自ノードと異なるラウンドから表明メッセージを受け取ることがあり、この際には、ラウンドに関わらず、またロックの有無にかかわらず、当該ラウンドにおける提案がネットワーク100により合意されたものとして扱い、合意形成プロセスを完了することができる。
 100 ネットワーク
 110 ノード
 111 通信部
 112 処理部
 113 記憶部
 120 ビザンチン障害ノード
 130 提案者
 200 メッセージ
 201 データ
 202 署名

Claims (15)

  1.  合意形成に参加するN個(Nは1以上の整数)のノードを有するネットワークにおいてf個(fは1以上N/3未満の整数)のビザンチン障害ノードを仮定したときに適した合意形成方法であって、
     他のノードから、合意形成の対象となるデータを含むメッセージを提案として有効と判定した旨の第1のメッセージを受領するステップと、
     受領した第1のメッセージの数が所定の値Qに達した場合、各ノードに、自ノードは前記提案を受け入れる旨の第2のメッセージを送信し、所定時間内に、有効な第1のメッセージの数が前記所定の値Qに達しない場合、各ノードに、自ノードは前記提案を却下する旨の第3のメッセージを送信するステップと、
     受領した第2のメッセージの数が所定の値Qに達した場合、各ノードに、自ノードは前記提案を前記ネットワークにおいて合意されたものとして扱う旨の第4のメッセージを送信するステップと、
     受領した第3のメッセージの数が所定の数Qに達した場合、各ノードに次のラウンド(合意形成の過程の単位を「ラウンド」と呼ぶ。)に進むための第5のメッセージを送信するステップと
    を含み、
     fの値が既知の場合、前記所定の値Qは、(f+N+1)/2以上の整数であり、
     受領した第1のメッセージの数が所定の値Qに達した場合、ロックを設定して以後の動作を限定することを特徴とする合意形成方法。
  2.  前記限定は、提案を行うノードとして選択された場合、ロック時と合意形成対象のデータが同一の提案を行うことを含むことを特徴とする請求項1に記載の合意形成方法。
  3.  前記限定は、提案を受領した場合、ロック時の合意形成対象のデータと同一のデータが合意形成対象であるときに、提案として有効と判断した旨の第1のメッセージを送信可能とすることを含むことを特徴とする請求項1に記載の合意形成方法。
  4.  他のノードから同一のラウンドにおける第2のメッセージを受信した場合、各ノードに、前記第2のメッセージを送信するとともに、ロックを設定して以後の動作を限定するステップをさらに含むことを特徴とする請求項1から3のいずれかに記載の合意形成方法。
  5.  第2のメッセージを定期的又は断続的に送信することを特徴とする請求項1から4のいずれかに記載の合意形成方法。
  6.  他のノードから第4のメッセージを受信した場合、合意形成を完了させることを特徴とする請求項1から5のいずれかに記載の合意形成方法。
  7.  第3のメッセージを定期的又は断続的に送信することを特徴とする請求項1から6のいずれかに記載の合意形成方法。
  8.  他のノードから同一のラウンド又は自ノードよりも大きなラウンドにおける第5のメッセージを受信した場合、各ノードに、前記第5のメッセージを送信するステップをさらに含むことを特徴とする請求項1から7のいずれかに記載の合意形成方法。
  9.  前記提案を行うノードをラウンドごとに決定論的に選択するステップをさらに含むことを特徴とする請求項1から8のいずれかに記載の合意形成方法。
  10.  自ノードのロック時よりも大きなラウンドにおける第2のメッセージを受領した場合、前記大きなラウンドにおける合意形成対象のデータについて新たにロックを設定して以後の動作を限定することを特徴とする請求項1から4のいずれかに記載の合意形成方法。
  11.  前記第2のメッセージは、前記所定の値Qが満たされたと判定した根拠となる証拠データを含むことを特徴とする請求項1から10のいずれかに記載の合意形成方法。
  12.  前記第4のメッセージは、合意形成対象のデータ又はそれから計算されるハッシュ値を含むことを特徴とする請求項1から11のいずれかに合意形成方法。
  13.  前記データはブロック又はそのハッシュ値であり、
     各ノードは、受領した第2のメッセージの数が所定の値Qに達した場合、各ノードが有するブロックチェーンに前記ブロックを追加することを特徴とする請求項1から12のいずれかに記載の合意形成方法。
  14.  コンピュータに、合意形成に参加するN個(Nは1以上の整数)のノードを有するネットワークにおいてf個(fは1以上N/3未満の整数)のビザンチン障害ノードを仮定したときに適した合意形成方法を実行させるためのプログラムであって、前記合意形成方法は、
     他のノードから、合意形成の対象となるデータを含むメッセージを提案として有効と判定した旨の第1のメッセージを受領するステップと、
     受領した第1のメッセージの数が所定の値Qに達した場合、各ノードに、自ノードは前記提案を受け入れる旨の第2のメッセージを送信し、所定時間内に、有効な第1のメッセージの数が前記所定の値Qに達しない場合、各ノードに、自ノードは前記提案を却下する旨の第3のメッセージを送信するステップと、
     受領した第2のメッセージの数が所定の値Qに達した場合、各ノードに、自ノードは前記提案を前記ネットワークにおいて合意されたものとして扱う旨の第4のメッセージを送信するステップと、
     受領した第3のメッセージの数が所定の数Qに達した場合、各ノードに次のラウンド(合意形成の過程の単位を「ラウンド」と呼ぶ。)に進むための第5のメッセージを送信するステップと
    を含み、
     fの値が既知の場合、前記所定の値Qは、(f+N+1)/2以上の整数であり、
     受領した第1のメッセージの数が所定の値Qに達した場合、ロックを設定して以後の動作を限定することを特徴とするプログラム。
  15.  合意形成に参加するN個(Nは4以上の整数)のノードを有するネットワークにおいてf個(fは1以上N/3未満の整数)のビザンチン障害ノードを仮定したときに適した合意形成を行うためのノードであって、
     他のノードから、合意形成の対象となるデータを含むメッセージを提案として有効と判定した旨の第1のメッセージを受領し、
     受領した第1のメッセージの数が所定の値Qに達した場合、各ノードに、自ノードは前記提案を受け入れる旨の第2のメッセージを送信し、所定時間内に、有効な第1のメッセージの数が前記所定の値Qに達しない場合、各ノードに、自ノードは前記提案を却下する旨の第3のメッセージを送信し、
     受領した第2のメッセージの数が所定の値Qに達した場合、各ノードに、自ノードは前記提案を前記ネットワークにおいて合意されたものとして扱う旨の第4のメッセージを送信し、
     受領した第3のメッセージの数が所定の数Qに達した場合、各ノードに次のラウンド(合意形成の過程の単位を「ラウンド」と呼ぶ。)に進むための第5のメッセージを送信し、
     fの値が既知の場合、前記所定の値Qは、(f+N+1)/2以上の整数であり、
     受領した第1のメッセージの数が所定の値Qに達した場合、ロックを設定して以後の動作を限定することを特徴とするノード。
PCT/JP2018/024980 2017-06-30 2018-06-29 ネットワークにおける合意形成方法及び当該ネットワークを構成するノード WO2019004480A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US16/609,647 US11212165B2 (en) 2017-06-30 2018-06-29 Consensus-forming method in network, and node for configuring network
CN201880028826.5A CN111052091B (zh) 2017-06-30 2018-06-29 网络中的共识形成方法以及构成该网络的节点
EP18823052.8A EP3647955B1 (en) 2017-06-30 2018-06-29 Consensus-forming method in network, and node for configuring network

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017128847A JP2019012415A (ja) 2017-06-30 2017-06-30 ネットワークにおける合意形成方法及び当該ネットワークを構成するノード
JP2017-128847 2017-06-30

Publications (1)

Publication Number Publication Date
WO2019004480A1 true WO2019004480A1 (ja) 2019-01-03

Family

ID=64742044

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/024980 WO2019004480A1 (ja) 2017-06-30 2018-06-29 ネットワークにおける合意形成方法及び当該ネットワークを構成するノード

Country Status (5)

Country Link
US (1) US11212165B2 (ja)
EP (1) EP3647955B1 (ja)
JP (2) JP2019012415A (ja)
CN (1) CN111052091B (ja)
WO (1) WO2019004480A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111342971A (zh) * 2020-02-07 2020-06-26 数据通信科学技术研究所 一种拜占庭共识方法和系统
CN113114613A (zh) * 2020-12-29 2021-07-13 上海能链众合科技有限公司 一种区块链容错共识的流水线处理方法
CN113783935A (zh) * 2021-08-12 2021-12-10 清华大学 一种拜占庭容错方法及装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102170345B1 (ko) 2019-03-18 2020-10-28 알리바바 그룹 홀딩 리미티드 뷰 변경 프로토콜을 종료하기 위한 시스템 및 방법
CA3057395A1 (en) 2019-03-18 2019-05-31 Alibaba Group Holding Limited System and method for ending view change protocol
CN110460484B (zh) * 2019-10-10 2020-02-18 杭州趣链科技有限公司 一种基于pbft算法改进的单节点异常主动恢复方法
KR102285882B1 (ko) * 2019-11-19 2021-08-05 한양대학교 산학협력단 가변 정족수 기반의 블록체인 합의 방법, 이를 이용하는 블록체인 노드 및 프로그램
CN111368008B (zh) 2020-05-27 2020-08-25 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置、设备及可读存储介质
CN112929186B (zh) * 2021-02-22 2022-02-22 北京航空航天大学 一种基于通信模式结构的联盟链共识优化方法
DE102022111410A1 (de) 2021-11-11 2023-05-11 Alexander Augst Verfahren, System, Persönlichkeitsmodell, Avatar Anwendergerät, Computerprogramm sowie ein neuronales Netz zum Unterstützen einer zwischenmenschlichen Kommunikation
CN114565388B (zh) * 2022-04-29 2022-08-02 腾讯科技(深圳)有限公司 共识轮次的更新方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003067215A (ja) * 2001-06-15 2003-03-07 Toshiba Corp 分散システム、同システムの多重化制御方法および時刻管理方法
JP2015146165A (ja) * 2014-02-04 2015-08-13 日本電信電話株式会社 障害耐性信号処理装置および障害耐性信号処理方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7797457B2 (en) * 2006-03-10 2010-09-14 Microsoft Corporation Leaderless byzantine consensus
US11367072B2 (en) * 2015-05-20 2022-06-21 Ripple Luxembourg S.A. Private networks and content requests in a resource transfer system
US20170046689A1 (en) * 2015-07-14 2017-02-16 Fmr Llc Crypto Voting and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
US11488147B2 (en) * 2015-07-14 2022-11-01 Fmr Llc Computationally efficient transfer processing and auditing apparatuses, methods and systems
SG11201802796UA (en) * 2015-10-05 2018-05-30 Ripple Luxembourg S A Temporary consensus networks in a resource transfer system
JP6358658B2 (ja) * 2015-11-09 2018-07-18 日本電信電話株式会社 ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム
EP3403213A2 (fr) * 2016-01-15 2018-11-21 Enrico Maim Procédés et systèmes mis en oeuvre dans une architecture en réseau de noeuds susceptibles de réaliser des transactions basées sur messages
US20170236120A1 (en) * 2016-02-11 2017-08-17 Oracle International Corporation Accountability and Trust in Distributed Ledger Systems
US20170250796A1 (en) * 2016-02-18 2017-08-31 Gideon Samid Trans Vernam Cryptography: Round One
AU2017260013A1 (en) * 2016-05-04 2018-12-20 Algorand, Inc. Distributed transaction propagation and verification system
US9967096B2 (en) * 2016-05-23 2018-05-08 Accenture Global Solutions Limited Rewritable blockchain
US11395092B2 (en) * 2016-07-18 2022-07-19 Here Global B.V. Device location verification for updated map data
CN106445711B (zh) * 2016-08-28 2019-04-30 杭州云象网络技术有限公司 一种应用于区块链的拜占庭容错共识方法
US11188883B2 (en) * 2016-09-23 2021-11-30 International Business Machines Corporation Using ledger sensors to enable contextual contracts across various enterprise blockchain applications
US20180096551A1 (en) * 2016-10-04 2018-04-05 International Business Machines Corporation Spheres of knowledge
US10360191B2 (en) * 2016-10-07 2019-07-23 International Business Machines Corporation Establishing overlay trust consensus for blockchain trust validation system
CN106656974B (zh) * 2016-10-17 2019-07-16 江苏通付盾科技有限公司 区块链的分组共识方法及系统
US20180114218A1 (en) * 2016-10-26 2018-04-26 International Business Machines Corporation Blockchain: automatic fork protection
US10657526B2 (en) * 2016-10-28 2020-05-19 International Business Machines Corporation System and method to dynamically setup a private sub-blockchain based on agility of transaction processing
US10158527B2 (en) * 2016-10-28 2018-12-18 International Business Machines Corporation Changing an existing blockchain trust configuration
US11095449B2 (en) * 2016-12-16 2021-08-17 Visa International Service Association System and method for securely processing an electronic identity
CN106529951A (zh) * 2016-12-30 2017-03-22 杭州云象网络技术有限公司 一种联盟链网络下采用异步方式的节点共识验证方法
US10447480B2 (en) * 2016-12-30 2019-10-15 Guardtime Sa Event verification receipt system and methods
US10764259B2 (en) * 2017-02-07 2020-09-01 Microsoft Technology Licensing, Llc Transaction processing for consortium blockchain network
WO2018162789A1 (en) * 2017-03-06 2018-09-13 Nokia Technologies Oy Secure de-centralized domain name system
US10740733B2 (en) * 2017-05-25 2020-08-11 Oracle International Corporaton Sharded permissioned distributed ledgers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003067215A (ja) * 2001-06-15 2003-03-07 Toshiba Corp 分散システム、同システムの多重化制御方法および時刻管理方法
JP2015146165A (ja) * 2014-02-04 2015-08-13 日本電信電話株式会社 障害耐性信号処理装置および障害耐性信号処理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CASTRO, MIGUEL; LISKOV, BARBARA: "Practical byzantine fault tolerance and proactive recovery", JOURNAL OF ACM TRANSACTIONS ON COMPUTER SYSTEMS, vol. 20, no. 4, 1 November 2002 (2002-11-01), pages 398 - 461, XP058290927, DOI: 10.1145/571637.571640 *
TANIGUCHI, HIDEO: "Bunsan Shori (IT text); 1st ed. [Distributed processing]", 15 September 2005, OHMSHA LTD., Tokyo, ISBN: 4-274-20133-3, article "Passage", pages: 78 - 87, XP009517881 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111342971A (zh) * 2020-02-07 2020-06-26 数据通信科学技术研究所 一种拜占庭共识方法和系统
CN111342971B (zh) * 2020-02-07 2023-08-08 数据通信科学技术研究所 一种拜占庭共识方法和系统
CN113114613A (zh) * 2020-12-29 2021-07-13 上海能链众合科技有限公司 一种区块链容错共识的流水线处理方法
CN113114613B (zh) * 2020-12-29 2023-05-02 上海零数众合信息科技有限公司 一种区块链容错共识的流水线处理方法
CN113783935A (zh) * 2021-08-12 2021-12-10 清华大学 一种拜占庭容错方法及装置

Also Published As

Publication number Publication date
JP6472116B2 (ja) 2019-02-20
EP3647955B1 (en) 2023-08-23
JP2019012415A (ja) 2019-01-24
EP3647955A1 (en) 2020-05-06
JP2019012510A (ja) 2019-01-24
EP3647955A4 (en) 2021-08-04
US11212165B2 (en) 2021-12-28
CN111052091A (zh) 2020-04-21
US20200112476A1 (en) 2020-04-09
CN111052091B (zh) 2023-10-03

Similar Documents

Publication Publication Date Title
WO2019004480A1 (ja) ネットワークにおける合意形成方法及び当該ネットワークを構成するノード
US20220385460A1 (en) Systems and methods for selecting and utilizing a committee of validator nodes in a distributed system
Alfandi et al. Blockchain solution for iot-based critical infrastructures: Byzantine fault tolerance
Maniatis et al. Preserving peer replicas by rate-limited sampled voting
CN112311735B (zh) 可信认证方法,网络设备、系统及存储介质
CN109194702B (zh) 医疗数据记录方法、系统、计算机设备和存储介质
CN109919771B (zh) 一种应用分层区块链技术的工业互联网交易装置
CN109963279B (zh) 一种应用于动态自组网的混合加密方法
CN112737770B (zh) 基于puf的网络双向认证和密钥协商方法及装置
EP2314042A2 (en) Methods and apparatus for reducing the effectiveness of chosen location attacks in a peer-to-peer overlay network
Le et al. A lightweight block validation method for resource-constrained iot devices in blockchain-based applications
CN112395113A (zh) 实用拜占庭容错共识方法及装置、可读存储介质
CN113010872A (zh) 一种身份认证方法、装置、计算机设备及存储介质
CN113821789B (zh) 基于区块链的用户密钥生成方法、装置、设备及介质
CN113591103B (zh) 一种电力物联网智能终端间的身份认证方法和系统
US20230353394A1 (en) Cross-blockchain transaction processing method and apparatus, computer device, computer storage medium, and computer program product
Gupta et al. An extended verifiable secret redistribution protocol for archival systems
Lei et al. Improved Method of Blockchain Cross-Chain Consensus Algorithm Based on Weighted PBFT
Mehraein et al. IGD-ScoreChain: A Lightweight and Scalable Blockchain Based on Node Sharding for the Internet of Things
Wu et al. Blockchain consensus mechanism for distributed energy transactions
CN116204110A (zh) 基于区块链的区块处理方法、装置及设备、介质、产品
CN116112506A (zh) 基于联盟链系统的交易信息处理方法、装置、介质及设备
CN111698216A (zh) 一种基于异构冗余传输机制的数据传输系统
CN112235251A (zh) 一种区块链管理方法、装置、计算机设备及存储介质
CN116961892A (zh) 基于区块链的密钥生成方法、装置、电子设备和可读介质

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2018823052

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2018823052

Country of ref document: EP

Effective date: 20200130