KR102285882B1 - Blockchain consensus method based on variable quorum, blockcahin node device and program using the same - Google Patents

Blockchain consensus method based on variable quorum, blockcahin node device and program using the same Download PDF

Info

Publication number
KR102285882B1
KR102285882B1 KR1020200044613A KR20200044613A KR102285882B1 KR 102285882 B1 KR102285882 B1 KR 102285882B1 KR 1020200044613 A KR1020200044613 A KR 1020200044613A KR 20200044613 A KR20200044613 A KR 20200044613A KR 102285882 B1 KR102285882 B1 KR 102285882B1
Authority
KR
South Korea
Prior art keywords
quorum
blockchain
message
consensus
variable
Prior art date
Application number
KR1020200044613A
Other languages
Korean (ko)
Other versions
KR20210061243A (en
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 KR20210061243A publication Critical patent/KR20210061243A/en
Application granted granted Critical
Publication of KR102285882B1 publication Critical patent/KR102285882B1/en

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/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
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • 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/187Voting techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)

Abstract

본 발명의 실시 예에 따른 가변 정족수 기반의 블록체인 합의 방법은 리더 블록체인 노드로부터 전송된 신규 생성 블록과 상기 신규 생성 블록에 대한 합의 요청 메시지에 따라, 상기 리더 블록체인 노드와 참여 블록체인 노드들이 동의, 거절, 또는 무효의 투표 메시지를 브로드캐스트(broadcast)하는 단계, 상기 참여 블록체인 노드들 중에서 비잔틴 오류(Byzantine Fault)가 발생한 블록체인 노드의 수와 상기 무효의 투표 메시지를 브로드캐스트한 블록체인 노드의 수에 기초하여, 기 설정된 정족수를 변경하는 단계 및 상기 동의의 투표 메시지를 브로드캐스트한 블록체인 노드의 수가 변경된 상기 정족수 이상인지에 따라 합의 여부를 결정하는 단계를 포함한다.In the variable quorum-based blockchain consensus method according to an embodiment of the present invention, the leader blockchain node and the participating blockchain nodes Broadcasting a vote message of consent, rejection, or invalidity, the number of blockchain nodes in which a Byzantine Fault occurred among the participating blockchain nodes, and the blockchain that broadcast the invalid vote message Based on the number of nodes, changing a preset quorum and determining whether to agree or not according to whether the number of blockchain nodes that have broadcast the voting message of consent is greater than or equal to the changed quorum.

Figure 112020038073298-pat00001
Figure 112020038073298-pat00001

Description

가변 정족수 기반의 블록체인 합의 방법, 이를 이용하는 블록체인 노드 및 프로그램{BLOCKCHAIN CONSENSUS METHOD BASED ON VARIABLE QUORUM, BLOCKCAHIN NODE DEVICE AND PROGRAM USING THE SAME}Variable quorum-based blockchain consensus method, blockchain node and program using it

본 발명은 가변 정족수 기반의 블록체인 합의 방법, 이를 이용하는 블록체인 노드 및 프로그램에 관한 것으로, 보다 상세하게는 비잔틴 오류가 발생한 참여 블록체인 노드의 수와 무효의 투표 메시지를 발행한 참여 블록체인 노드의 수에 기초하여 정족수를 변경하여 합의 여부를 결정할 수 있는 가변 정족수 기반의 블록체인 합의 방법, 이를 이용하는 블록체인 노드 및 프로그램에 관한 것이다.The present invention relates to a variable quorum-based blockchain consensus method, a blockchain node and a program using the same, and more specifically, the number of participating blockchain nodes with Byzantine errors and the number of participating blockchain nodes that issued invalid voting messages It relates to a variable quorum-based blockchain consensus method that can determine whether to agree by changing the quorum based on the number, and a blockchain node and program using the same.

블록체인이란 익명성과 무결성이 보장되면서도 모든 데이터가 암호화되어 블록이라는 구조체에 기록되어 데이터의 신뢰성을 확보할 수 있는 분산 플랫폼이다.Blockchain is a distributed platform that ensures the reliability of data by encrypting all data and recording it in a block structure while ensuring anonymity and integrity.

블록체인은 거래에 참여하는 모든 사용자에게 거래 명세를 공유하며, 거래가 진행될 때마다 거래 명세를 대조하여 데이터 위조를 막을 수 있다. 블록체인 내의 사용자들은 각자 자신의 원장(ledger)을 가지며, 원장의 내용은 합의 알고리즘에 의하여 동일하게 유지될 수 있다.The blockchain shares the transaction specification with all users participating in the transaction, and it can prevent data forgery by collating the transaction specification each time a transaction is conducted. Users in the blockchain each have their own ledger, and the contents of the ledger can be kept the same by the consensus algorithm.

본 발명의 기술적 사상이 이루고자 하는 과제는 비잔틴 오류가 발생한 참여 블록체인 노드의 수와 무효의 투표 메시지를 발행한 참여 블록체인 노드의 수에 기초하여 정족수를 변경하여 합의 여부를 결정할 수 있는 가변 정족수 기반의 블록체인 합의 방법, 이를 이용하는 블록체인 노드 및 프로그램을 제공하는 것이다.The task to be achieved by the technical idea of the present invention is a variable quorum base that can determine whether to agree or not by changing the quorum based on the number of participating blockchain nodes that have Byzantine errors and the number of participating blockchain nodes that have issued invalid voting messages of blockchain consensus method, and to provide blockchain nodes and programs that use it.

본 발명의 일 실시 예에 따른 가변 정족수 기반의 블록체인 합의 방법은 리더 블록체인 노드로부터 전송된 신규 생성 블록과 상기 신규 생성 블록에 대한 합의 요청 메시지에 따라, 상기 리더 블록체인 노드와 참여 블록체인 노드들이 동의, 거절, 또는 무효의 투표 메시지를 브로드캐스트(broadcast)하는 단계, 상기 참여 블록체인 노드들 중에서 비잔틴 오류(Byzantine Fault)가 발생한 블록체인 노드의 수와 상기 무효의 투표 메시지를 브로드캐스트한 블록체인 노드의 수에 기초하여, 기 설정된 정족수를 변경하는 단계 및 상기 동의의 투표 메시지를 브로드캐스트한 블록체인 노드의 수가 변경된 상기 정족수 이상인지에 따라 합의 여부를 결정하는 단계를 포함할 수 있다.In the variable quorum-based blockchain consensus method according to an embodiment of the present invention, the leader blockchain node and the participating blockchain node according to the newly created block transmitted from the leader blockchain node and the consensus request message for the newly created block Broadcasting a vote message of consent, rejection, or invalidity, the number of blockchain nodes in which a Byzantine Fault occurred among the participating blockchain nodes, and the block that broadcast the invalid vote message It may include changing a preset quorum based on the number of chain nodes and determining whether to agree according to whether the number of blockchain nodes that have broadcast the voting message of consent is equal to or greater than the changed quorum.

실시 예에 따라, 상기 신규 생성 블록과 상기 합의 요청 메시지는 서로 분리되어 전송될 수 있다.According to an embodiment, the new generation block and the consensus request message may be transmitted separately from each other.

실시 예에 따라, 상기 참여 블록체인 노드들은, 정해진 시간 내에 상기 신규 생성 블록과 상기 합의 요청 메시지를 수신하지 못한 경우에 상기 무효의 투표 메시지를 브로드캐스트 할 수 있다.According to an embodiment, the participating blockchain nodes may broadcast the invalid voting message when they do not receive the newly created block and the consensus request message within a predetermined time.

실시 예에 따라, 상기 비잔틴 오류가 발생한 경우는, 비정상적인 메시지를 전송한 경우, 정해진 시간 내에 메시지를 전송하지 않은 경우, 또는 두 개 이상의 서로 상충하는 정상적인 메시지들을 전송한 경우일 수 있다.According to an embodiment, when the Byzantine error occurs, when an abnormal message is transmitted, when a message is not transmitted within a predetermined time, or when two or more conflicting normal messages are transmitted.

실시 예에 따라, 상기 비정상적인 메시지를 전송한 경우는, 블록체인의 프로토콜(protocol)에 어긋나는 메시지를 전송한 경우일 수 있다.According to an embodiment, the case of transmitting the abnormal message may be the case of transmitting a message that violates the protocol of the block chain.

실시 예에 따라, 두 개 이상의 서로 상충하는 정상적인 메시지들을 전송한 경우는, 상기 정상적인 메시지들 각각은 블록체인의 프로토콜에 맞게 작성되었으나, 이중으로 투표한 경우일 수 있다.According to an embodiment, when two or more conflicting normal messages are transmitted, each of the normal messages is written according to the protocol of the block chain, but may be a case of double voting.

실시 예에 따라, 상기 기설정된 정족수를 변경하는 단계는, 상기 무효의 투표 메시지를 브로드캐스트한 블록체인 노드의 수는 상기 기설정된 정족수에서 빼지 않고, 상기 비잔틴 오류가 발생한 블록체인 노드의 수만 상기 기설정된 정족수에서 뺀 값으로 상기 기설정된 정족수를 변경할 수 있다.According to an embodiment, in the step of changing the preset quorum, the number of blockchain nodes that broadcast the invalid voting message is not subtracted from the preset quorum, only the number of blockchain nodes in which the Byzantine error has occurred The preset quorum may be changed by a value subtracted from the preset quorum.

실시 예에 따라, 상기 기설정된 정족수를 변경하는 단계는, 상기 비정상적인 메시지를 전송한 경우 또는 정해진 시간 내에 메시지를 전송하지 않은 경우의 상기 비잔틴 오류를 검출하여, 상기 기 설정된 정족수를 변경할 수 있다.According to an embodiment, the changing of the preset quorum may include detecting the Byzantine error when the abnormal message is transmitted or when the message is not transmitted within a predetermined time to change the preset quorum.

실시 예에 따라, 상기 가변 정족수 기반의 블록체인 합의 방법은, 상기 리더 블록체인 노드와 상기 참여 블록체인 노드들 각각이 수신한 모든 투표 메시지와 자신이 전송한 투표 메시지를 모아서 추가적으로 브로드캐스트하는 단계를 더 포함할 수 있다.According to an embodiment, the variable quorum-based blockchain consensus method includes the steps of collecting and additionally broadcasting all voting messages received by each of the leader blockchain node and the participating blockchain nodes and voting messages transmitted by itself may include more.

실시 예에 따라, 상기 가변 정족수 기반의 블록체인 합의 방법은, 상기 추가적으로 브로드캐스트하는 단계 이후에, 상기 두 개 이상의 서로 상충하는 정상적인 메시지들을 전송한 경우의 상기 비잔틴 오류를 검출하여, 변경된 상기 정족수를 추가적으로 변경할 수 있다.According to an embodiment, the variable quorum-based blockchain consensus method detects the Byzantine error in the case of transmitting the two or more conflicting normal messages after the step of additionally broadcasting the changed quorum. It can be further changed.

실시 예에 따라, 상기 변경된 상기 정족수를 추가적으로 변경하는 단계는, 네트워크 오류에 의하여 투표에 참여하지 못하였던 참여 블록체인 노드를 포함시켜, 상기 변경된 상기 정족수를 추가적으로 변경할 수 있다.According to an embodiment, the step of additionally changing the changed quorum may include a participating blockchain node that failed to participate in the voting due to a network error to further change the changed quorum.

실시 예에 따라, 상기 합의 여부를 결정하는 단계는, 상기 동의의 투표 메시지를 브로드캐스트한 블록체인 노드의 수가 추가적으로 변경된 상기 정족수 이상인지에 따라 상기 합의 여부를 결정할 수 있다.According to an embodiment, the determining of whether to agree may determine whether to agree or not according to whether the number of blockchain nodes that have broadcast the voting message of consent is equal to or greater than the additionally changed quorum.

실시 예에 따라, 상기 가변 정족수 기반의 블록체인 합의 방법은, 상기 리더 블록체인 노드가 정해진 시간 내에 상기 신규 생성 블록과 상기 합의 요청 메시지를 전송하지 않는 경우에, 상기 리더 블록체인 노드를 변경하는 단계를 더 포함할 수 있다.According to an embodiment, in the variable quorum-based blockchain consensus method, when the leader blockchain node does not transmit the newly created block and the consensus request message within a predetermined time, changing the leader blockchain node may further include.

본 발명의 실시 예에 따른 블록체인 노드는, 신규 생성 블록에 대한 합의 요청 메시지를 생성하는 합의 요청 메시지 생성 모듈, 상기 신규 생성 블록과 상기 합의 요청 메시지를 브로드캐스트하고, 참여 블록체인 노드들이 상기 신규 생성 블록과 상기 합의 요청 메시지에 응답하여 전송한 동의, 거절, 또는 무효의 투표 메시지를 수신하는 통신 인터페이스, 상기 참여 블록체인 노드들 중에서 비잔틴 오류(Byzantine Fault)가 발생한 블록체인 노드의 수와 상기 무효의 투표 메시지를 브로드캐스트한 블록체인 노드의 수에 기초하여, 기 설정된 정족수를 변경하는 정족수 변경 모듈 및 상기 동의의 투표 메시지를 브로드캐스트한 블록체인 노드의 수가 변경된 상기 정족수 이상인지에 따라 합의 여부를 결정하는 합의 결과 처리 모듈을 포함할 수 있다.A block chain node according to an embodiment of the present invention broadcasts a consensus request message generating module for generating a consensus request message for a newly generated block, the new generated block and the consensus request message, and participating block chain nodes A communication interface for receiving a creation block and a vote message of consent, rejection, or invalidation transmitted in response to the consensus request message, the number of blockchain nodes in which a Byzantine Fault occurred among the participating blockchain nodes, and the invalidity Based on the number of blockchain nodes that broadcast the voting message of It may include a module for processing consensus results to determine.

본 발명의 실시 예에 따른 프로세서(processor)와 결합되어 가변 정족수 기반의 블록체인 합의 방법을 수행하기 위한 매체에 저장된 프로그램은 리더 블록체인 노드로부터 전송된 신규 생성 블록과 상기 신규 생성 블록에 대한 합의 요청 메시지에 따라, 상기 리더 블록체인 노드와 참여 블록체인 노드들이 동의, 거절, 또는 무효의 투표 메시지를 브로드캐스트(broadcast)하는 단계, 상기 참여 블록체인 노드들 중에서 비잔틴 오류(Byzantine Fault)가 발생한 블록체인 노드의 수와 상기 무효의 투표 메시지를 브로드캐스트한 블록체인 노드의 수에 기초하여, 기 설정된 정족수를 변경하는 단계 및 상기 동의의 투표 메시지를 브로드캐스트한 블록체인 노드의 수가 변경된 상기 정족수 이상인지에 따라 합의 여부를 결정하는 단계를 수행할 수 있다.A program stored in a medium for performing a variable quorum-based blockchain consensus method in combination with a processor according to an embodiment of the present invention is a newly generated block transmitted from a leader block chain node and a request for a consensus on the newly generated block According to the message, the leader block chain node and the participating block chain nodes broadcast a voting message of consent, rejection, or invalidity, the block chain in which a Byzantine Fault occurs among the participating block chain nodes Changing a preset quorum based on the number of nodes and the number of blockchain nodes that have broadcast the invalid voting message, and whether the number of blockchain nodes that broadcast the voting message of consent is greater than or equal to the changed quorum You can perform the steps to decide whether to agree or not.

본 발명의 실시 예에 따른 방법과 장치는 무효의 투표 메시지를 발행한 참여 블록체인 노드의 수를 반영하여 정족수를 변경하여 합의 여부를 결정함으로써, 비잔틴 오류가 발생한 블록체인 노드 수의 예측이 어려운 블록체인에서 효과적으로 합의과정을 수행할 수 있다.The method and apparatus according to an embodiment of the present invention determine whether to agree by changing the quorum by reflecting the number of participating blockchain nodes that have issued invalid voting messages, thereby making it difficult to predict the number of blockchain nodes with Byzantine errors. The consensus process can be effectively performed on the chain.

또한, 본 발명의 실시 예에 따른 방법과 장치는 무효의 투표 메시지를 발행한 참여 블록체인 노드의 수를 반영하여 정족수를 변경하여 합의 여부를 결정함으로써, 과반 미만의 비잔틴 오류에는 충분히 견딜 수 있는 효과가 있다.In addition, the method and apparatus according to an embodiment of the present invention determine whether to agree by changing the quorum by reflecting the number of participating blockchain nodes that have issued invalid voting messages, thereby sufficiently tolerating the Byzantine error of less than half. there is

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 블록체인 네트워크의 개념도이다.
도 2는 도 1에 도시된 블록체인 네트워크에서 리더 블록체인 노드의 일 실시 예에 따른 블록도이다.
도 3은 도 1에 도시된 블록체인 네트워크에서 수행되는 합의 과정의 일 실시 예에 따른 플로우차트이다.
도 4는 도 3의 합의 과정의 구체적인 예시를 나타낸 도면이다.
도 5는 본 발명의 실시 예에 따라 설정될 수 있는 타이머의 예시를 나타낸 도면이다.
도 6은 본 발명의 실시 예에 따른 가변 정족수 기반의 블록 체인 합의 방법의 플로우차트이다.
In order to more fully understand the drawings cited in the Detailed Description, a brief description of each drawing is provided.
1 is a conceptual diagram of a blockchain network according to an embodiment of the present invention.
FIG. 2 is a block diagram according to an embodiment of a leader blockchain node in the blockchain network shown in FIG. 1 .
3 is a flowchart according to an embodiment of a consensus process performed in the block chain network shown in FIG. 1 .
FIG. 4 is a view showing a specific example of the consensus process of FIG. 3 .
5 is a diagram illustrating an example of a timer that can be set according to an embodiment of the present invention.
6 is a flowchart of a block chain consensus method based on a variable quorum according to an embodiment of the present invention.

본 발명의 기술적 사상은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명의 기술적 사상을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 기술적 사상의 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Since the technical spirit of the present invention can have various changes and can have various embodiments, specific embodiments are illustrated in the drawings and will be described in detail through detailed description. However, this is not intended to limit the technical spirit of the present invention to specific embodiments, and it should be understood to include all changes, equivalents, and substitutes included in the scope of the technical spirit of the present invention.

본 발명의 기술적 사상을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.In describing the technical idea of the present invention, if it is determined that a detailed description of a related known technology may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted. In addition, numbers (eg, first, second, etc.) used in the description process of the present specification are only identification symbols for distinguishing one component from other components.

또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.In addition, in this specification, when a component is referred to as "connected" or "connected" with another component, the component may be directly connected or directly connected to the other component, but in particular It should be understood that, unless there is a description to the contrary, it may be connected or connected through another element in the middle.

또한, 본 명세서에 기재된 "~부", "~기", "~자", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 프로세서(Processor), 마이크로 프로세서(Micro Processer), 마이크로 컨트롤러(Micro Controller), CPU(Central Processing Unit), GPU(Graphics Processing Unit), APU(Accelerate Processor Unit), DSP(Drive Signal Processor), ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등과 같은 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있으며, 적어도 하나의 기능이나 동작의 처리에 필요한 데이터를 저장하는 메모리(memory)와 결합되는 형태로 구현될 수도 있다. In addition, terms such as "~ unit", "~ group", "~ character", and "~ module" described in this specification mean a unit that processes at least one function or operation, which is a processor, a micro Processor (Micro Processor), Micro Controller (Micro Controller), CPU (Central Processing Unit), GPU (Graphics Processing Unit), APU (Accelerate Processor Unit), DSP (Drive Signal Processor), ASIC (Application Specific Integrated Circuit), FPGA It may be implemented as hardware or software such as (Field Programmable Gate Array), or a combination of hardware and software, and may be implemented in a form combined with a memory that stores data necessary for processing at least one function or operation. .

그리고 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.In addition, it is intended to clarify that the classification of the constituent parts in the present specification is merely a classification for each main function that each constituent unit is responsible for. That is, two or more components to be described below may be combined into one component, or one component may be divided into two or more for each more subdivided function. In addition, each of the constituent units to be described below may additionally perform some or all of the functions of other constituent units in addition to the main function it is responsible for. Of course, it may be carried out by being dedicated to it.

이하, 본 발명의 기술적 사상에 따른 실시 예들을 차례로 상세히 설명한다.Hereinafter, embodiments according to the technical spirit of the present invention will be described in detail in turn.

도 1은 본 발명의 일 실시 예에 따른 블록체인 네트워크의 개념도이다.1 is a conceptual diagram of a blockchain network according to an embodiment of the present invention.

도 1을 참조하면, 블록체인 네트워크(block chain network, NET_BC)에는 복수의 블록체인 노드들(NODE1~NODE7)이 포함될 수 있다.Referring to FIG. 1 , a block chain network (NET_BC) may include a plurality of block chain nodes NODE1 to NODE7.

복수의 블록체인 노드들(NODE1~NODE7) 중에서 어느 하나의 블록체인 노드(예컨대, NODE1)는 리더 블록체인 노드로 동작할 수 있으며, 리더 블록체인 노드의 주도 하에서 신규 생성 블록에 대한 합의 과정이 수행될 수 있다.Any one blockchain node (eg, NODE1) among the plurality of blockchain nodes (NODE1 to NODE7) can operate as a leader blockchain node, and the consensus process for a newly created block is performed under the leadership of the leader blockchain node. can be

실시 예에 따라, 블록체인 네트워크(NET_BC)는 투표를 통한 합의 방식을 사용하는 블록체인일 수 있으며, 그 종류는 제한되지 않는다.According to an embodiment, the blockchain network (NET_BC) may be a blockchain using a consensus method through voting, and the type is not limited.

실시 예에 따라, 블록체인 네트워크(NET_BC)는 BFT(Byzantine Fault Tolerance) 계열의 합의 프로토콜을 사용할 수 있다.According to an embodiment, the blockchain network (NET_BC) may use a Byzantine Fault Tolerance (BFT)-based consensus protocol.

본 명세서에서 "노드(node)"는 네트워크의 적어도 일부를 구성하는 장치를 의미할 수 있으며, "노드 장치"라고 일컬어질 수도 있다.In this specification, a “node” may mean a device constituting at least a part of a network, and may also be referred to as a “node device”.

도 2는 도 1에 도시된 블록체인 네트워크에서 리더 블록체인 노드의 일 실시 예에 따른 블록도이다.FIG. 2 is a block diagram according to an embodiment of a leader block chain node in the block chain network shown in FIG. 1 .

도 1과 도 2를 참조하면, 도 2에 도시된 리더 블록체인 노드(100)는 블록체인 네트워크(NET_BC)에 포함된 블록체인 노드들(NODE1~NODE7) 중에서 리더 블록체인 노드로 동작하는 어느 하나의 블록체인 노드(예컨대, NODE1)를 의미할 수 있다.1 and 2, the leader block chain node 100 shown in FIG. 2 is any one operating as a leader block chain node among block chain nodes NODE1 to NODE7 included in the block chain network NET_BC. It may mean a blockchain node (eg, NODE1) of

리더 블록체인 노드(100)는 통신 인터페이스(110), 메모리(120), 및 프로세서(130)를 포함할 수 있다.The leader blockchain node 100 may include a communication interface 110 , a memory 120 , and a processor 130 .

통신 인터페이스(110)는 리더 블록체인 노드(100)와 참여 블록체인 노드들(예컨대, NODE2~NODE7)과의 통신을 인터페이싱할 수 있으며, 인터페이싱 과정에서 송수신되는 데이터 또는 신호를 처리할 수 있다.The communication interface 110 may interface communication between the leader block chain node 100 and participating block chain nodes (eg, NODE2 to NODE7), and may process data or signals transmitted and received during the interfacing process.

실시 예에 따라, 통신 인터페이스(110)는 참여 블록체인 노드들(예컨대, NODE2~NODE7)과 송수신하는 메시지(예컨대, 합의 요청 메시지 또는 투표 메시지)를 인터페이싱할 수 있다.According to an embodiment, the communication interface 110 may interface a message (eg, a consensus request message or a voting message) to and from the participating blockchain nodes (eg, NODE2 to NODE7).

메모리(120)는 리더 블록체인 노드(100)가 가변 정족수 기반의 블록 체인 합의 방법을 수행하는 데에 필요한 데이터와 프로세서(130)의 처리 과정에서 필요한 데이터, 프로세서(130)의 처리 과정 중 또는 처리 완료 후에 생성된 데이터를 저장할 수 있다.The memory 120 includes data necessary for the leader block chain node 100 to perform the variable quorum-based block chain consensus method, data necessary for the processing of the processor 130, and the processing or processing of the processor 130. After completion, you can save the generated data.

실시 예에 따라, 메모리(120)는 본 발명의 실시 예에 따른 가변 정족수 기반의 블록 체인 합의 방법을 수행하기 위한 프로그램을 저장할 수 있으며, 메모리(120)는 프로세서(130)와 결합되어 상기 프로그램을 실행시킬 수 있다.According to an embodiment, the memory 120 may store a program for performing the variable quorum-based block chain consensus method according to an embodiment of the present invention, and the memory 120 is coupled with the processor 130 to execute the program. can be run

프로세서(130)는 합의 요청 메시지 생성 모듈(132), 정족수 변경 모듈(134), 및 합의 결과 처리 모듈(136)을 포함할 수 있다.The processor 130 may include a consensus request message generation module 132 , a quorum change module 134 , and a consensus result processing module 136 .

합의 요청 메시지 생성 모듈(132)은 신규 생성 블록에 대한 합의 과정을 시작하기 위하여 참여 블록체인 노드들(예컨대, NODE2~NODE7)에게 합의 과정의 수행을 요청하는 합의 요청 메시지를 생성할 수 있다.The consensus request message generating module 132 may generate a consensus request message for requesting the participating blockchain nodes (eg, NODE2 to NODE7) to perform the consensus process in order to start the consensus process for the new generated block.

정족수 변경 모듈(134)은 참여 블록체인 노드들(예컨대, NODE2~NODE7) 중에서 비잔틴 오류(Byzantine Fault)가 발생한 참여 블록체인 노드들의 수와 무효의 투표 메시지를 브로드캐스트한 참여 블록체인 노드의 수를 이용하여, 정족수를 변경할 수 있다.The quorum change module 134 determines the number of participating blockchain nodes that have a Byzantine Fault among participating blockchain nodes (eg, NODE2 to NODE7) and the number of participating blockchain nodes that broadcast an invalid voting message. can be used to change the quorum.

정족수는 합의 과정 상의 투표에서 합의가 된 것으로 판단하기 위한 기준이 되는 값이며, "동의","거절", 및 "무효"의 투표 메시지 중에서 "동의"의 투표 메시지의 수가 정족수 이상인 경우에 합의된 것으로 판단할 수 있다.The quorum is a standard value for judging that a consensus has been reached in the voting process in the consensus process, and when the number of voting messages of “agree” among the voting messages of “agree”, “reject”, and “invalid” is greater than a quorum, the consensus can be judged as

합의 결과 처리 모듈(136)은 블록체인 노드들(예컨대, NODE1~NODE7) 의 투표 메시지들 중에서, "동의"의 투표 메시지의 수가 정족수 변경 모듈(134)에 의해 변경된 정족수 이상인지에 따라 합의 여부를 결정할 수 있다.The consensus result processing module 136 determines whether the number of voting messages of “agree” among the voting messages of the blockchain nodes (eg, NODE1 to NODE7) is greater than or equal to the quorum changed by the quorum change module 134. can decide

가변 정족수 기반의 블록 체인 합의 방법의 세부적인 수행 과정은 도 3 내지 도 6을 참조하여 후술한다.A detailed execution process of the variable quorum-based blockchain consensus method will be described later with reference to FIGS. 3 to 6 .

도 3은 도 1에 도시된 블록체인 네트워크에서 수행되는 합의 과정의 일 실시 예에 따른 플로우차트이다.3 is a flowchart according to an embodiment of a consensus process performed in the block chain network shown in FIG. 1 .

도 1 내지 도 3을 참조하면, 리더 블록체인 노드(예컨대, NODE1)는 최초에 제안 단계(S300)를 수행할 수 있다.1 to 3 , the leader blockchain node (eg, NODE1) may initially perform the proposal step S300.

제안 단계(S300)에서, 리더 블록체인 노드(예컨대, NODE1)는 신규 생성 블록과 신규 생성 블록에 대한 합의 요청 메시지를 참여 블록체인 노드들(예컨대, NODE2~NODE7)로 전송할 수 있다.In the proposal step (S300), the leader blockchain node (eg, NODE1) may transmit a new generated block and a consensus request message for the newly generated block to the participating blockchain nodes (eg, NODE2 to NODE7).

실시 예에 따라, 리더 블록체인 노드(예컨대, NODE1)는 신규 생성 블록의 블록 생성자와 동일할 수도 있고 다를 수도 있다.According to an embodiment, the leader block chain node (eg, NODE1) may be the same as or different from the block creator of the newly created block.

실시 예에 따라, 신규 생성 블록과 합의 요청 메시지는 서로 분리되어 전송될 수 있다.According to an embodiment, the new generation block and the consensus request message may be transmitted separately from each other.

제안 단계(S300)에서 리더 블록체인 노드(예컨대, NODE1)의 합의 요청 메시지가 정해진 시간 내에 전송되지 않는 경우(S301), 리더 블록체인 노드(예컨대, NODE1)는 참여 블록체인 노드들(예컨대, NODE2~NODE7) 중의 어느 하나로 교체될 수 있다(S340).When the consensus request message of the leader blockchain node (eg, NODE1) is not transmitted within the predetermined time in the proposal step (S300) (S301), the leader blockchain node (eg, NODE1) participates in the participating blockchain nodes (eg, NODE2) ~ NODE7) may be replaced with any one of (S340).

제안 단계(S300)에서 리더 블록체인 노드(예컨대, NODE1)의 합의 요청 메시지가 정해진 시간 내에 전송된 경우(S302), 리더 블록체인 노드(예컨대, NODE1)와 참여 블록체인 노드들(예컨대, NODE2~NODE7)은 투표 단계(S310)를 수행할 수 있다.In the proposal step (S300), when the consensus request message of the leader blockchain node (eg, NODE1) is transmitted within a predetermined time (S302), the leader blockchain node (eg, NODE1) and participating blockchain nodes (eg, NODE2~ NODE7) may perform a voting step (S310).

투표 단계(S310)에서, 리더 블록체인 노드(예컨대, NODE1)와 참여 블록체인 노드들(예컨대, NODE2~NODE7)은 동의, 거절, 또는 무효의 투표 메시지를 브로드캐스트할 수 있다.In the voting step S310, the leader blockchain node (eg, NODE1) and participating blockchain nodes (eg, NODE2 to NODE7) may broadcast a voting message of consent, rejection, or invalidation.

실시 예에 따라, 리더 블록체인 노드(예컨대, NODE1)와 참여 블록체인 노드들(예컨대, NODE2~NODE7)은 신규 생성 블록에 대한 합의에 동의하는 경우에는 동의의 투표 메시지를, 신규 생성 블록에 대한 합의에 부동의하는 경우에는 거절의 투표 메시지를, 정해진 시간 내에 신규 생성 블록과 합의 요청 메시지를 수신하지 못한 경우에는 무효의 투표 메시지를 브로드캐스트할 수 있다.According to an embodiment, when the leader blockchain node (eg, NODE1) and participating blockchain nodes (eg, NODE2 to NODE7) agree on a consensus on a newly created block, a vote message of agreement is sent to the newly created block. In case of disagreeing with the consensus, a voting message of rejection can be broadcast, and when a new block and a consensus request message are not received within a set time, an invalid voting message can be broadcast.

투표 단계(S310)에서 정해진 시간(예컨대, view change timer) 내에 투표가 이루어지지 않는 경우(S311), 리더 블록체인 노드(예컨대, NODE1)는 참여 블록체인 노드들(예컨대, NODE2~NODE7) 중의 어느 하나로 교체될 수 있다(S340).In the voting step (S310), if a vote is not made within a predetermined time (eg, view change timer) (S311), the leader blockchain node (eg, NODE1) selects any of the participating blockchain nodes (eg, NODE2 to NODE7). One may be replaced (S340).

투표 단계(S310)에서 동의의 투표 메시지 수가 정족수 이상인 것으로 판단되는 경우(S312), 합의 완료 단계(S330)로 넘어갈 수 있다.When it is determined that the number of vote messages of consent is greater than or equal to the quorum in the voting step (S310) (S312), the process may proceed to the step of completing the agreement (S330).

투표 단계(S310)에서는 참여 블록체인 노드들(예컨대, NODE2~NODE7)이 비정상적인 메시지를 전송한 경우 또는 정해진 시간 내에 메시지를 전송하지 않은 경우의 비잔틴 오류를 검출할 수 있다. 리더 블록체인 노드(예컨대, NODE1)는 검출된 비잔틴 오류에 따라, 비잔틴 오류가 발생한 참여 블록체인 노드의 수와 무효의 투표 메시지를 발행한 참여 블록체인 노드의 수에 기초하여, 정족수를 변경하고 변경된 정족수에 따라 합의 여부를 판단할 수 있다.In the voting step (S310), a Byzantine error can be detected when the participating blockchain nodes (eg, NODE2 to NODE7) transmit an abnormal message or when a message is not transmitted within a predetermined time. The leader blockchain node (e.g., NODE1) changes the quorum according to the detected Byzantine error, based on the number of participating blockchain nodes with Byzantine errors and the number of participating blockchain nodes that issued invalid voting messages. A quorum can determine whether an agreement is reached.

실시 예에 따라, 비정상적인 메시지를 전송하는 경우는 블록체인의 프로토콜(protocol)에 어긋나는 메시지를 전송한 경우일 수 있다.According to an embodiment, the case of transmitting an abnormal message may be a case of transmitting a message that violates the protocol of the block chain.

투표 단계(S310)에서 정해진 시간(예컨대, vote timer) 내에 합의가 이루어지지 않는 경우(S313), 리더 블록체인 노드(예컨대, NODE1)는 수집 단계(S320)를 수행할 수 있다.If consensus is not reached within a predetermined time (eg, vote timer) in the voting step (S310) (S313), the leader block chain node (eg, NODE1) may perform the collection step (S320).

수집 단계(S320)에서, 리더 블록체인 노드(예컨대, NODE1)와 참여 블록체인 노드들(예컨대, NODE2~NODE7) 각각은 수신한 모든 투표 메시지와 자신이 전송한 투표 메시지를 모아서 브로드캐스트할 수 있다.In the collection step (S320), each of the leader blockchain node (eg, NODE1) and participating blockchain nodes (eg, NODE2 to NODE7) collects and broadcasts all the voting messages it has received and the voting messages it has sent. .

수집 단계(S320)에서는 참여 블록체인 노드들(예컨대, NODE2~NODE7)이 두 개 이상의 서로 상충하는 정상적인 메시지들을 전송한 경우의 비잔틴 오류를 검출할 수 있다. 두 개 이상의 서로 상충하는 정상적인 메시지들을 전송한 경우의 비잔틴 오류는, 정상적인 메시지들 각각이 블록체인 프로토콜에 맞게 작성되었으나, 이중으로 투표한 경우에 발생하는 비잔틴 오류일 수 있다. 리더 블록체인 노드(예컨대, NODE1)는 검출된 비잔틴 오류에 따라, 정족수를 추가적으로 변경할 수 있다.In the collection step (S320), a Byzantine error when the participating blockchain nodes (eg, NODE2 to NODE7) transmit two or more conflicting normal messages can be detected. A Byzantine error when two or more conflicting normal messages are transmitted may be a Byzantine error that occurs when each of the normal messages is written according to the blockchain protocol, but has been voted twice. The leader blockchain node (eg, NODE1) may additionally change the quorum according to the detected Byzantine error.

실시 예에 따라, 수집 단계(S320)에서 리더 블록체인 노드(예컨대, NODE1)는 네트워크 오류에 의하여 투표에 참여하지 못하였던 참여 블록체인 노드를 포함시켜서 정족수를 추가적으로 변경할 수 있다.According to an embodiment, in the collection step ( S320 ), the leader blockchain node (eg, NODE1) may additionally change the quorum by including the participating blockchain node that failed to participate in the voting due to a network error.

수집 단계(S320)에서 정해진 시간(예컨대, view change timer) 내에 합의가 되지 않는 경우(S321), 리더 블록체인 노드(예컨대, NODE1)는 참여 블록체인 노드들(예컨대, NODE2~NODE7) 중의 어느 하나로 교체될 수 있다(S340).If agreement is not reached within a set time (eg, view change timer) in the collection step (S320) (S321), the leader blockchain node (eg, NODE1) is one of the participating blockchain nodes (eg, NODE2 to NODE7). may be replaced (S340).

수집 단계(S320)에서 동의의 투표 메시지의 수가 추가적으로 변경된 정족수 이상인 경우(S322), 합의 완료 단계(S330)로 넘어갈 수 있다.If the number of vote messages of consent in the collection step (S320) is equal to or greater than the additionally changed quorum (S322), the process may proceed to the step of completing the agreement (S330).

도 4는 도 3의 합의 과정의 구체적인 예시를 나타낸 도면이다.FIG. 4 is a view showing a specific example of the consensus process of FIG. 3 .

도 1 내지 도 4를 참조하면, 제1블록체인 노드(NODE1(101))가 리더 블록체인 노드로 동작하고, 나머지 블록체인 노드들(NODE2(102)~NODE7(107))이 참여 블록체인 노드로 동작할 수 있다.1 to 4, the first block chain node (NODE1 101) operates as a leader block chain node, and the remaining block chain nodes (NODE2 102 ~ NODE7 (107)) are participating block chain nodes. can operate as

제안단계(Propose)에서 리더 블록체인 노드(101)는 참여 블록체인 노드들(102~107)로 신규 생성 블록과 신규 생성 블록에 대한 합의 요청 메시지를 브로드캐스트할 수 있다(S401).In the proposal step (Propose), the leader block chain node 101 may broadcast a newly generated block and a consensus request message for the newly generated block to the participating block chain nodes 102 to 107 (S401).

리더 블록체인 노드(101)와 참여 블록체인 노드들(102~107)은 신규 생성 블록에 대한 투표를 진행할 수 있다.The leader block chain node 101 and participating block chain nodes 102 to 107 can vote for a newly created block.

리더 블록체인 노드(101)와 일부 참여 블록체인 노드들(104, 105)은 동의의 투표 메시지를 브로드캐스트 할 수 있다(S411, S413, S414). The leader blockchain node 101 and some participating blockchain nodes 104 and 105 may broadcast a vote message of consent (S411, S413, S414).

일부 참여 블록체인 노드(107)는 거절의 투표를 하고자 하였으나 투표 메시지가 프로토콜에 맞지 않아서 비잔틴 오류를 가질 수 있다(S415).Some participating blockchain nodes 107 tried to vote for rejection, but the voting message did not conform to the protocol, so it may have a Byzantine error (S415).

일부 참여 블록체인 노드(102)는 리더 블록체인 노드(101)로부터 신규 생성 블록과 합의 요청 메시지를 수신하지 못하여, 무효의 투표 메시지를 브로드캐스트 할 수 있다(S412).Some participating blockchain nodes 102 may not receive a newly generated block and a consensus request message from the leader blockchain node 101, and thus may broadcast an invalid voting message (S412).

일부 참여 블록체인 노드(103, 106)는 리더 블록체인 노드(101)로부터 신규 생성 블록과 합의 요청 메시지는 수신하였으나, 네트워크 문제로 정해진 시간 내에 투표 메시지를 전송하지 못할 수 있다.Some participating blockchain nodes 103 and 106 have received the newly created block and consensus request message from the leader blockchain node 101, but may not be able to transmit the voting message within the set time due to network problems.

이 때, 프로토콜에 맞지 않는 투표 메시지를 전송한 참여 블록체인 노드(107) 또는 정해진 시간 내에 투표 메시지를 전송하지 못한 참여 블록체인 노드(103, 106)는 비잔틴 오류를 가지므로 이후의 투표단계(Vote)의 정족수에서 빠지며, 무효의 투표 메시지를 브로드캐스트한 참여 블록체인 노드(102)는 정족수에서 빠지지 않을 수 있다.At this time, the participating blockchain node 107 that has transmitted a voting message that does not conform to the protocol or the participating blockchain nodes 103 and 106 that failed to transmit a voting message within a set time have Byzantine errors, so the subsequent voting stage (Vote) ), the participating blockchain node 102 that has broadcast an invalid voting message may not be excluded from the quorum.

리더 블록체인 노드(101)는 비잔틴 오류가 발생한 블록체인 노드의 수와 무효의 투표 메시지를 브로드캐스트한 블록체인의 노드 수에 기초하여 기 설정된 정족수를 변경할 수 있다(S430).The leader block chain node 101 may change the preset quorum based on the number of block chain nodes in which a Byzantine error has occurred and the number of block chain nodes that have broadcast invalid voting messages (S430).

실시 예에 따라, 본 발명의 실시 예에 따른 블록체인은 BTF(Byzantine Fault Tolerance) 계열의 프로토콜을 따를 수 있으며, 합의에 필요한 최소 블록체인 노드의 수를 3f+1(f는 허용 가능한 최대 비잔틴 오류를 가지는 블록체인 노드의 수)라고 할 때, 정족수는 2f+1을 기준으로 설정할 수 있다. According to an embodiment, the blockchain according to the embodiment of the present invention may follow the BTF (Byzantine Fault Tolerance) series protocol, and the minimum number of blockchain nodes required for consensus is 3f+1 (f is the maximum allowable Byzantine error) ), the quorum can be set based on 2f+1.

이 경우, 도 4에서는 3f+1이 7의 값을 가지므로, f는 2이고, 정족수는 5로 기설정될 수 있다. S430 단계에서는 기 설정된 정족수 5에서, 무효의 투표 메시지를 브로드캐스트한 참여 블록체인 노드(102)의 수(1개)는 빼지 않고, 비잔틴 오류가 발생한 블록체인 노드(103, 106, 107)의 수(3개)는 뺀 값인 2로 정족수를 변경할 수 있다.In this case, since 3f+1 has a value of 7 in FIG. 4 , f may be 2 and the quorum may be preset to 5. In step S430, from the preset quorum 5, the number of participating blockchain nodes 102 that broadcast an invalid vote message (one) is not subtracted, and the number of blockchain nodes 103, 106, 107 in which a Byzantine error has occurred (3) can change the quorum to 2, which is subtracted.

투표에 참여한 제1그룹(GR_COM1)의 참여 블록체인 노드들(101, 102, 104, 105) 중에서, 동의의 투표 메시지를 브로드캐스트한 블록체인 노드의 수는 3개로써, 정족수 이상이므로, 신규 생성 블록에 대하여 합의가 완료된 것으로 판단할 수 있다.Among the participating blockchain nodes 101, 102, 104, and 105 of the first group (GR_COM1) participating in the voting, the number of blockchain nodes that broadcast the voting message of consent is 3, which is more than a quorum, so a new creation It can be judged that consensus on the block has been completed.

일부 블록체인 노드(103)는 네트워크 오류로 인하여 투표단계에서 참여하지 못하였으나 네트워크 오류가 투표단계 이후에 해소될 수 있다. 이 경우에는 수집 단계(Collate)에서 다시 한번 합의 과정에 참여할 수 있다(S441).Some blockchain nodes 103 could not participate in the voting stage due to a network error, but the network error can be resolved after the voting stage. In this case, it is possible to participate in the consensus process once again in the collection step (Collate) (S441).

도 4의 경우에는 투표 단계에서 합의가 이루어질 수 있으나, 투표 단계에서 합의가 이루어지지 않은 경우를 가정하면, 수집 단계에서는 네트워크 오류가 해소된 일부 블록체인 노드(103)을 포함하여 리더 블록체인 노드와 참여 블록체인 노드들 각각이 수신한 모든 투표 메시지와 자신이 전송한 투표 메시지를 모아서 추가적으로 브로드캐스트할 수 있다(S451).In the case of FIG. 4, consensus can be achieved in the voting stage, but assuming that consensus is not achieved in the voting stage, in the collection stage, the leader blockchain node and the All the voting messages received by each of the participating blockchain nodes and the voting messages transmitted by themselves can be collected and additionally broadcast (S451).

이에 따라, 수집 단계에서는 두 개 이상의 서로 상충하는 정상적인 메시지를 전송한 경우의 비잔틴 오류를 추가적으로 검출할 수 있다.Accordingly, in the collection step, a Byzantine error when two or more conflicting normal messages are transmitted may be additionally detected.

또한, 수집 단계에서 리더 블록체인 노드(101)는 네트워크 오류가 해소된 일부 블록체인 노드(103)의 수(1개)를 추가하고, 두 개 이상의 서로 상충하는 정상적인 메시지를 전송한 경우의 비잔틴 오류가 발생한 블록체인 노드의 수(이 경우, 없는 것으로 가정)를 차감하여, S430 단계에서 변경되었던 정족수를 추가적으로 변경(예컨대, 3으로 변경)할 수 있다.In addition, in the collection stage, the leader blockchain node 101 adds the number (one) of some blockchain nodes 103 for which the network error has been resolved, and a Byzantine error in the case of transmitting two or more conflicting normal messages. By subtracting the number of blockchain nodes (in this case, it is assumed that there is no), the quorum changed in step S430 may be additionally changed (eg, changed to 3).

합의된 결과는 수집 단계가 진행될 때까지 네트워크 오류가 해결된 블록체인 노드(예컨대, 103, 106)에까지 추가적으로 브로드캐스트될 수 있다.The agreed result can be further broadcast to the blockchain nodes (eg, 103, 106) where the network error is resolved until the collection stage is progressed.

리더 블록체인 노드(101)와 합의 결과를 브로드캐스트 받은 블록체인 노드들(102~106)은 최종적으로 합의 상태로 변경되며, 비잔틴 오류가 해소되지 않은 블록체인 노드(107)는 합의 상태에서 제외될 수 있다.The leader blockchain node 101 and the blockchain nodes 102 to 106 that have received the broadcast of the consensus result are finally changed to the consensus state, and the blockchain node 107 that has not resolved the Byzantine error will be excluded from the consensus state. can

도 5는 본 발명의 실시 예에 따라 설정될 수 있는 타이머의 예시를 나타낸 도면이다.5 is a diagram illustrating an example of a timer that can be set according to an embodiment of the present invention.

도 5를 참조하면, 제안 단계(Propose), 투표 단계(Vote), 수집 단계(Collate)는 순차적으로 수행될 수 있으며, 제안 단계, 투표 단계, 및 수집 단계로 구성된 하나의 라운드(Round1)가 종료되면, 다음 라운드(Round2)의 신규 생성 블록(B2)에 대한 합의 과정이 수행될 수 있다.Referring to FIG. 5 , the proposal phase (Propose), the voting phase (Vote), and the collection phase (Collate) may be sequentially performed, and one round (Round1) consisting of the proposal phase, the voting phase, and the collection phase ends If it is, a consensus process for the new generation block B2 of the next round Round2 may be performed.

최초 라운드(Round1)의 합의 과정에서는 각 단계에서의 타이머, 예컨대 제안 타이머(propose timer, TP-11~TP-14), 투표 타이머(vote timer, TV-11~TV-14), 수집 타이머(collate timer, TC-11~TC-14)는 일괄적으로 설정될 수 있다.In the consensus process of the first round (Round1), timers at each stage, for example, a proposal timer (TP-11 to TP-14), a vote timer (TV-11 to TV-14), and a collate timer (collate). timer, TC-11 to TC-14) can be set collectively.

하지만, 각 블록체인 노드들(111~114)에서의 투표 단계와 수집 단계가 완료되는 시점이 다르기 때문에, 다음 라운드(Round2)의 합의 과정에서는 블록체인 노드들(111~114) 마다 타이머가 각자 개별적으로 설정될 수 있다.However, since the timing at which the voting stage and the collection stage are completed in each of the blockchain nodes 111 to 114 are different, in the consensus process of the next round (Round 2), the timer is individually set for each blockchain node 111 to 114. can be set to

도 6은 본 발명의 실시 예에 따른 가변 정족수 기반의 블록 체인 합의 방법의 플로우차트이다.6 is a flowchart of a block chain consensus method based on a variable quorum according to an embodiment of the present invention.

도 1 내지 도 6을 참조하면, 리더 블록체인 노드(예컨대, 101)는 신규 생성 블록과 신규 생성 블록에 대한 합의 요청 메시지를 다른 블록체인 노드들(예컨대, 102~107)로 전송할 수 있다(S610).1 to 6 , the leader blockchain node (eg, 101) may transmit a new generated block and a consensus request message for the newly generated block to other blockchain nodes (eg, 102 to 107) (S610). ).

참여 블록체인 노드들(예컨대, 102~107)은 신규 생성 블록의 합의 요청에 대한 투표 메시지를 브로드 캐스트할 수 있다(S620).Participating blockchain nodes (eg, 102 to 107) may broadcast a voting message for a consensus request of a newly created block (S620).

실시 예에 따라, 투표 메시지는, 동의, 거절, 또는 무효의 투표메시지일 수 있다.According to an embodiment, the voting message may be a voting message of consent, rejection, or invalidity.

리더 블록체인 노드(예컨대, 101)는 참여 블록체인 노드들 중에서 비잔틴 오류가 발생한 블록체인 노드의 수와 무효의 투표 메시지를 브로드캐스트한 블록체인 노드의 수에 기초하여, 기 설정된 정족수를 변경할 수 있다(S630).The leader blockchain node (e.g., 101) may change the preset quorum based on the number of blockchain nodes with Byzantine errors among participating blockchain nodes and the number of blockchain nodes that broadcast invalid voting messages. (S630).

실시 예에 따라, 비잔틴 오류가 발생한 경우는, 비정상적인 메시지를 전송한 경우, 정해진 시간 내에 메시지를 전송하지 않은 경우, 또는 두 개 이상의 서로 상충하는 정상적인 메시지들을 전송한 경우일 수 있다.According to an embodiment, when a Byzantine error occurs, when an abnormal message is transmitted, when a message is not transmitted within a predetermined time, or when two or more conflicting normal messages are transmitted.

실시 예에 따라, 정족수를 변경하는 S630 단계는 비정상적인 메시지를 전송한 경우 또는 정해진 시간 내에 메시지를 전송하지 않은 경우의 비잔틴 오류가 발생한 블록체인 노드의 수와 무효의 투표 메시지를 브로드캐스트한 블록체인 노드의 수에 기초하여 정족수를 변경하는 단계와, 두 개 이상의 서로 상충하는 정상적인 메시지들을 전송한 경우의 비잔틴 오류가 발생한 블록체인 노드의 수에 기초하여 정족수를 추가적으로 변경하는 단계로 구분될 수도 있다.According to an embodiment, the step S630 of changing the quorum is the number of block chain nodes that have a Byzantine error when an abnormal message is transmitted or when a message is not transmitted within a predetermined time and the block chain node that broadcast an invalid voting message It may be divided into a step of changing the quorum based on the number of

리더 블록체인 노드(예컨대, 101)는 동의의 투표 메시지를 브로드캐스트한 블록체인 노드의 수가 변경된 정족수 이상인지에 따라 합의 여부를 결정할 수 있다(S640).The leader block chain node (eg, 101) may determine whether to agree according to whether the number of block chain nodes that have broadcast a vote message of consent is equal to or greater than the changed quorum (S640).

실시 예에 따라, S630 단계에서 정족수가 추가적으로 변경된 경우에는, 동의의 투표 메시지를 브로드캐스트한 블록체인 노드의 수가 추가적으로 변경된 정족수 이상인지에 따라 합의 여부를 결정할 수 있다According to an embodiment, when the quorum is additionally changed in step S630, it is possible to determine whether to agree or not according to whether the number of blockchain nodes that have broadcast a voting message of consent is equal to or greater than the additionally changed quorum.

이상, 본 발명의 기술적 사상을 다양한 실시 예들을 들어 상세하게 설명하였으나, 본 발명의 기술적 사상은 상기 실시 예들에 한정되지 않고, 본 발명의 기술적 사상의 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러가지 변형 및 변경이 가능하다.As mentioned above, although the technical idea of the present invention has been described in detail with reference to various embodiments, the technical idea of the present invention is not limited to the above embodiments, and those of ordinary skill in the art within the scope of the technical spirit of the present invention Various modifications and changes are possible by

100, 101~107, 111~114 : 블록체인 노드
110 : 통신 인터페이스
120 : 메모리
130 : 프로세서
100, 101~107, 111~114: Blockchain node
110: communication interface
120: memory
130: processor

Claims (15)

리더 블록체인 노드로부터 전송된 신규 생성 블록과 상기 신규 생성 블록에 대한 합의 요청 메시지에 따라, 상기 리더 블록체인 노드와 참여 블록체인 노드들이 동의, 거절, 또는 무효의 투표 메시지를 브로드캐스트(broadcast)하는 단계;
상기 참여 블록체인 노드들 중에서 비잔틴 오류(Byzantine Fault)가 발생한 블록체인 노드의 수와 상기 무효의 투표 메시지를 브로드캐스트한 블록체인 노드의 수에 기초하여, 기 설정된 정족수를 변경하는 단계; 및
상기 동의의 투표 메시지를 브로드캐스트한 블록체인 노드의 수가 변경된 상기 정족수 이상인지에 따라 합의 여부를 결정하는 단계를 포함하는, 가변 정족수 기반의 블록체인 합의 방법.
According to the newly created block sent from the leader block chain node and the consensus request message for the newly created block, the leader block chain node and the participating block chain nodes broadcast a voting message of consent, rejection, or invalidity. step;
changing a preset quorum based on the number of blockchain nodes in which a Byzantine Fault occurred among the participating blockchain nodes and the number of blockchain nodes that broadcast the invalid voting message; and
A block chain consensus method based on a variable quorum, comprising the step of determining whether to agree according to whether the number of blockchain nodes that have broadcast the voting message of consent is equal to or greater than the changed quorum.
제1항에 있어서,
상기 신규 생성 블록과 상기 합의 요청 메시지는 서로 분리되어 전송되는, 가변 정족수 기반의 블록체인 합의 방법.
According to claim 1,
The variable quorum-based blockchain consensus method, wherein the newly generated block and the consensus request message are transmitted separately from each other.
제1항에 있어서,
상기 참여 블록체인 노드들은,
정해진 시간 내에 상기 신규 생성 블록과 상기 합의 요청 메시지를 수신하지 못한 경우에 상기 무효의 투표 메시지를 브로드캐스트 하는, 가변 정족수 기반의 블록체인 합의 방법.
According to claim 1,
The participating blockchain nodes are
A variable quorum-based blockchain consensus method for broadcasting the invalid vote message when the newly generated block and the consensus request message are not received within a predetermined time.
제1항에 있어서,
상기 비잔틴 오류가 발생한 경우는,
비정상적인 메시지를 전송한 경우, 정해진 시간 내에 메시지를 전송하지 않은 경우, 또는 두 개 이상의 서로 상충하는 정상적인 메시지들을 전송한 경우인, 가변 정족수 기반의 블록체인 합의 방법.
According to claim 1,
If the Byzantine error occurs,
A blockchain consensus method based on variable quorum, which is when an abnormal message is sent, when a message is not sent within a set time, or when two or more conflicting normal messages are sent.
제4항에 있어서,
상기 비정상적인 메시지를 전송한 경우는,
블록체인의 프로토콜(protocol)에 어긋나는 메시지를 전송한 경우인, 가변 정족수 기반의 블록체인 합의 방법.
5. The method of claim 4,
If the above abnormal message is transmitted,
A blockchain consensus method based on a variable quorum, which is a case of sending a message that violates the protocol of the blockchain.
제4항에 있어서,
두 개 이상의 서로 상충하는 정상적인 메시지들을 전송한 경우는,
상기 정상적인 메시지들 각각은 블록체인의 프로토콜에 맞게 작성되었으나, 이중으로 투표한 경우인, 가변 정족수 기반의 블록체인 합의 방법.
5. The method of claim 4,
If two or more conflicting normal messages are sent,
Each of the above normal messages is written according to the protocol of the blockchain, but is a case of double voting, a variable quorum-based blockchain consensus method.
제1항에 있어서,
상기 기설정된 정족수를 변경하는 단계는,
상기 무효의 투표 메시지를 브로드캐스트한 블록체인 노드의 수는 상기 기설정된 정족수에서 빼지 않고, 상기 비잔틴 오류가 발생한 블록체인 노드의 수만 상기 기설정된 정족수에서 뺀 값으로 상기 기설정된 정족수를 변경하는, 가변 정족수 기반의 블록체인 합의 방법.
According to claim 1,
Changing the preset quorum comprises:
The number of blockchain nodes that have broadcast the invalid voting message is not subtracted from the preset quorum, and only the number of blockchain nodes in which the Byzantine error has occurred is subtracted from the preset quorum to change the preset quorum A quorum-based blockchain consensus method.
제4항에 있어서,
상기 기설정된 정족수를 변경하는 단계는,
상기 비정상적인 메시지를 전송한 경우 또는 정해진 시간 내에 메시지를 전송하지 않은 경우의 상기 비잔틴 오류를 검출하여, 상기 기 설정된 정족수를 변경하는, 가변 정족수 기반의 블록체인 합의 방법.
5. The method of claim 4,
Changing the preset quorum comprises:
A variable quorum-based blockchain consensus method for changing the preset quorum by detecting the Byzantine error when the abnormal message is transmitted or the message is not transmitted within a predetermined time.
제8항에 있어서,
상기 가변 정족수 기반의 블록체인 합의 방법은,
상기 리더 블록체인 노드와 상기 참여 블록체인 노드들 각각이 수신한 모든 투표 메시지와 자신이 전송한 투표 메시지를 모아서 추가적으로 브로드캐스트하는 단계를 더 포함하는, 가변 정족수 기반의 블록체인 합의 방법.
9. The method of claim 8,
The variable quorum-based blockchain consensus method is,
Variable quorum-based blockchain consensus method, further comprising the step of collecting and additionally broadcasting all voting messages received by the leader blockchain node and each of the participating blockchain nodes and voting messages transmitted by the leader blockchain node.
제9항에 있어서,
상기 가변 정족수 기반의 블록체인 합의 방법은,
상기 추가적으로 브로드캐스트하는 단계 이후에,
상기 두 개 이상의 서로 상충하는 정상적인 메시지들을 전송한 경우의 상기 비잔틴 오류를 검출하여, 변경된 상기 정족수를 추가적으로 변경하는, 가변 정족수 기반의 블록체인 합의 방법.
10. The method of claim 9,
The variable quorum-based blockchain consensus method is,
After the step of further broadcasting,
A variable quorum-based blockchain consensus method for detecting the Byzantine error when transmitting the two or more conflicting normal messages, and further changing the changed quorum.
제10항에 있어서,
상기 변경된 상기 정족수를 추가적으로 변경하는 단계는,
네트워크 오류에 의하여 투표에 참여하지 못하였던 참여 블록체인 노드를 포함시켜, 상기 변경된 상기 정족수를 추가적으로 변경하는, 가변 정족수 기반의 블록체인 합의 방법.
11. The method of claim 10,
The step of further changing the changed quorum comprises:
A variable quorum-based blockchain consensus method for additionally changing the changed quorum by including a participating blockchain node that failed to participate in voting due to a network error.
제11항에 있어서,
상기 합의 여부를 결정하는 단계는,
상기 동의의 투표 메시지를 브로드캐스트한 블록체인 노드의 수가 추가적으로 변경된 상기 정족수 이상인지에 따라 상기 합의 여부를 결정하는, 가변 정족수 기반의 블록체인 합의 방법.
12. The method of claim 11,
The step of deciding whether to agree
A variable quorum-based blockchain consensus method for determining whether to agree or not according to whether the number of blockchain nodes that have broadcast the vote message of consent is equal to or greater than the additionally changed quorum.
제1항에 있어서,
상기 가변 정족수 기반의 블록체인 합의 방법은,
상기 리더 블록체인 노드가 정해진 시간 내에 상기 신규 생성 블록과 상기 합의 요청 메시지를 전송하지 않는 경우에, 상기 리더 블록체인 노드를 변경하는 단계를 더 포함하는, 가변 정족수 기반의 블록체인 합의 방법.
According to claim 1,
The variable quorum-based blockchain consensus method is,
The variable quorum-based blockchain consensus method further comprising changing the leader blockchain node when the leader blockchain node does not transmit the newly created block and the consensus request message within a predetermined time.
신규 생성 블록에 대한 합의 요청 메시지를 생성하는 합의 요청 메시지 생성 모듈;
상기 신규 생성 블록과 상기 합의 요청 메시지를 브로드캐스트하고, 참여 블록체인 노드들이 상기 신규 생성 블록과 상기 합의 요청 메시지에 응답하여 전송한 동의, 거절, 또는 무효의 투표 메시지를 수신하는 통신 인터페이스;
상기 참여 블록체인 노드들 중에서 비잔틴 오류(Byzantine Fault)가 발생한 블록체인 노드의 수와 상기 무효의 투표 메시지를 브로드캐스트한 블록체인 노드의 수에 기초하여, 기 설정된 정족수를 변경하는 정족수 변경 모듈; 및
상기 동의의 투표 메시지를 브로드캐스트한 블록체인 노드의 수가 변경된 상기 정족수 이상인지에 따라 합의 여부를 결정하는 합의 결과 처리 모듈을 포함하는, 블록체인 노드.
a consensus request message generation module that generates a consensus request message for a new generation block;
a communication interface that broadcasts the newly created block and the consensus request message, and receives a vote message of consent, rejection, or invalidation transmitted by participating blockchain nodes in response to the newly created block and the consensus request message;
a quorum change module for changing a preset quorum based on the number of blockchain nodes that have a Byzantine Fault among the participating blockchain nodes and the number of blockchain nodes that have broadcast the invalid voting message; and
A blockchain node comprising a consensus result processing module that determines whether to agree or not according to whether the number of blockchain nodes that have broadcast the voting message of the agreement is equal to or greater than the changed quorum.
프로세서(processor)와 결합되어 가변 정족수 기반의 블록체인 합의 방법을 수행하기 위한 컴퓨터 기록 매체에 저장된 프로그램으로서,
리더 블록체인 노드로부터 전송된 신규 생성 블록과 상기 신규 생성 블록에 대한 합의 요청 메시지에 따라, 상기 리더 블록체인 노드와 참여 블록체인 노드들이 동의, 거절, 또는 무효의 투표 메시지를 브로드캐스트(broadcast)하는 단계;
상기 참여 블록체인 노드들 중에서 비잔틴 오류(Byzantine Fault)가 발생한 블록체인 노드의 수와 상기 무효의 투표 메시지를 브로드캐스트한 블록체인 노드의 수에 기초하여, 기 설정된 정족수를 변경하는 단계; 및
상기 동의의 투표 메시지를 브로드캐스트한 블록체인 노드의 수가 변경된 상기 정족수 이상인지에 따라 합의 여부를 결정하는 단계를 수행하는, 컴퓨터 기록 매체에 저장된 프로그램.
A program stored in a computer recording medium for performing a variable quorum-based blockchain consensus method in combination with a processor,
According to the newly created block sent from the leader block chain node and the consensus request message for the newly created block, the leader block chain node and the participating block chain nodes broadcast a voting message of consent, rejection, or invalidity. step;
changing a preset quorum based on the number of blockchain nodes in which a Byzantine Fault occurred among the participating blockchain nodes and the number of blockchain nodes that broadcast the invalid voting message; and
A program stored in a computer recording medium for performing the step of determining whether to agree according to whether the number of blockchain nodes that have broadcast the voting message of consent is equal to or greater than the changed quorum.
KR1020200044613A 2019-11-19 2020-04-13 Blockchain consensus method based on variable quorum, blockcahin node device and program using the same KR102285882B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20190149136 2019-11-19
KR1020190149136 2019-11-19

Publications (2)

Publication Number Publication Date
KR20210061243A KR20210061243A (en) 2021-05-27
KR102285882B1 true KR102285882B1 (en) 2021-08-05

Family

ID=76135770

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200044613A KR102285882B1 (en) 2019-11-19 2020-04-13 Blockchain consensus method based on variable quorum, blockcahin node device and program using the same

Country Status (1)

Country Link
KR (1) KR102285882B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114205092B (en) * 2021-12-01 2023-11-21 浙江大学 Optimistic Bayesian-preemption fault-tolerant consensus method without rollback
CN117354318B (en) * 2023-09-28 2024-04-05 北京航空航天大学 Practical distributed voting consensus method, device, equipment and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019012510A (en) 2017-06-30 2019-01-24 株式会社bitFlyer Method for building consensus in network and nodes constituting network
CN110445619A (en) 2017-03-30 2019-11-12 腾讯科技(深圳)有限公司 Block catenary system, message treatment method and storage medium

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107450981B (en) * 2017-05-31 2020-04-24 创新先进技术有限公司 Block chain consensus method and equipment
KR102019211B1 (en) * 2017-11-14 2019-11-04 주식회사 아이콘루프 Method for generating block chain capable of overcoming byzantine fault

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110445619A (en) 2017-03-30 2019-11-12 腾讯科技(深圳)有限公司 Block catenary system, message treatment method and storage medium
JP2019012510A (en) 2017-06-30 2019-01-24 株式会社bitFlyer Method for building consensus in network and nodes constituting network

Also Published As

Publication number Publication date
KR20210061243A (en) 2021-05-27

Similar Documents

Publication Publication Date Title
CN112134762B (en) Testing method, device, terminal and storage medium for block chain network structure
CN111382456B (en) Proposal message processing method, device, equipment and storage medium
CN109165945B (en) Representative node device election method and device, computer device and storage medium
CN111612613B (en) Block chain network with centralized system
JP7398000B2 (en) Blockchain-based data detection method and device, computer device and program
EP3553669B1 (en) Failure recovery method and device, and system
TW486637B (en) Method and apparatus for managing redundant computer-based systems for fault tolerant computing
KR102285882B1 (en) Blockchain consensus method based on variable quorum, blockcahin node device and program using the same
CN110290180A (en) Distributed task dispatching method, apparatus, computer equipment and storage medium
CN110336707A (en) Block chain common recognition device, method and computer readable storage medium
CN109173270B (en) Game service system and implementation method
CN107453929B (en) Cluster system self-construction method and device and cluster system
CN114048517B (en) Dual channel consensus system and method for blockchains, computer readable storage medium
CN114090693B (en) Byzantine fault-tolerant-based block chain witness consensus method, system, equipment and storage medium
CN112492016B (en) Cross-process extensible consensus method and system
CN112202647B (en) Test method, device and test equipment in block chain network
CN105262835A (en) Data storage method and device of multiple machine rooms
CN109999508A (en) Game live game coverage method and device
WO2016020986A1 (en) Alignment device, data-processing device, program, alignment method, and multiplexing system
CN108388108A (en) The method and device of synchrodata in a kind of multiple redundancy control system
KR102367570B1 (en) Method for parallel block processing method in blockchain, blockcahin node device and program using the same
CN111526045A (en) Fault processing method and system for block chain
CN114760198B (en) Consensus method, device and system based on block chain network
CN110851528A (en) Database synchronization method and device, storage medium and computer equipment
CN113783946B (en) Re-voted binary consensus method and device based on threshold signature

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right