KR102406020B1 - Apparatus and method for processing distributed consensus on decentralized byzantene fault tolerance - Google Patents

Apparatus and method for processing distributed consensus on decentralized byzantene fault tolerance Download PDF

Info

Publication number
KR102406020B1
KR102406020B1 KR1020200061517A KR20200061517A KR102406020B1 KR 102406020 B1 KR102406020 B1 KR 102406020B1 KR 1020200061517 A KR1020200061517 A KR 1020200061517A KR 20200061517 A KR20200061517 A KR 20200061517A KR 102406020 B1 KR102406020 B1 KR 102406020B1
Authority
KR
South Korea
Prior art keywords
consensus
nodes
quorum
candidate
byzantine
Prior art date
Application number
KR1020200061517A
Other languages
Korean (ko)
Other versions
KR20200144466A (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 한국전자통신연구원
Priority to US16/903,057 priority Critical patent/US11343073B2/en
Publication of KR20200144466A publication Critical patent/KR20200144466A/en
Application granted granted Critical
Publication of KR102406020B1 publication Critical patent/KR102406020B1/en

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Hardware Redundancy (AREA)

Abstract

탈 중앙화된 비잔틴 오류 감내 분산 합의 장치 및 방법이 개시된다. 본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치는 블록체인의 합의체 후보 노드들로부터 클라이언트에 의해 제안된 분산 합의를 요청하는 제1 트랜잭션을 포함하는 합의체 후보 요청(DELEGATE REQUEST) 메시지들을 수신하고, 상기 합의체 후보 요청 메시지들에 기초하여 상기 합의체 후보 노드들 중 합의 정족수에 상응하는 합의체 후보 노드들을 합의 노드들로 결정하고, 상기 합의 노드들에게 상기 합의 노드들을 결정한 결과에 대한 동의를 얻기 위한 제2 트랜잭션을 포함하는 준비(PREPARE) 메시지를 생성하고, 상기 합의 노드들에게 상기 준비 메시지를 송신하고, 상기 합의 노드들로부터 상기 준비 메시지에 대한 응답으로 상기 합의 노드들 각각의 전자 서명이 포함된 동의(COMMIT) 메시지들을 수신하고, 상기 동의 메시지들에 포함된 전자 서명들을 검증한 결과인 응답(REPLY) 메시지를 상기 합의체 후보 노드들에게 브로드캐스팅하여 분산 합의를 완료하고, 상기 합의 정족수는 2f+1(f는 1 이상의 정수)이고, 상기 f는 제1 조건 및 제2 조건을 모두 만족하고, 상기 제1 조건은, 상기 블록체인의 전체 노드들 중 상기 합의체 후보 노드들이 p(p는 0 이상 1 이하의 실수)의 확률로 선택될 경우에, 상기 합의체 후보 노드들로 선택될 비잔틴(Byzantine) 노드들이 f개를 초과할 제1 확률이 기설정된 제1 기준 확률 이하인 경우에 만족되는 조건이고, 상기 제2 조건은 상기 합의체 후보 노드들이 3f개 이하일 제2 확률이 기설정된 제2 기준 확률 이하인 경우에 만족되는 조건이다. 이 때, 다음 합의체 후보가 3f+1개 이상일 때는 3f+1개의 노드를 임의로 선택하여 합의체를 업데이트 하고, 3f개 이하 일 때는 업데이트 하지 않는다.A decentralized Byzantine error-tolerant distributed consensus apparatus and method are disclosed. A decentralized Byzantine error-tolerant distributed consensus device according to an embodiment of the present invention is a DELEGATE REQUEST message including a first transaction requesting a distributed consensus proposed by a client from consensus candidate nodes of a blockchain. , determine consensus nodes corresponding to a quorum among the consensus candidate nodes as consensus nodes based on the consensus candidate request messages, and give the consensus nodes agreement on the result of determining the consensus nodes. generating a PREPARE message including a second transaction to obtain, sending the prepare message to the consensus nodes, and in response to the prepare message from the consensus nodes, the digital signature of each of the consensus nodes is The distributed agreement is completed by receiving the included consent (COMMIT) messages, and broadcasting a response (REPLY) message, which is the result of verifying the digital signatures included in the consent messages, to the consensus candidate nodes, and the quorum of the agreement is 2f+1 (f is an integer greater than or equal to 1), where f satisfies both the first and second conditions, and the first condition is that the consensus candidate nodes among all nodes of the block chain are p (p is A condition that is satisfied when the first probability that the number of Byzantine nodes to be selected as the consensus candidate nodes exceeds f is less than or equal to a predetermined first reference probability) , and the second condition is a condition satisfied when the second probability that the number of consensus candidate nodes is 3f or less is less than or equal to the second reference probability. At this time, when the number of next consensus candidates is 3f+1 or more, 3f+1 nodes are randomly selected to update the consensus, and when there are 3f or less, it is not updated.

Figure 112020051789635-pat00033
Figure 112020051789635-pat00033

Description

탈 중앙화된 비잔틴 오류 감내 분산 합의 장치 및 방법 {APPARATUS AND METHOD FOR PROCESSING DISTRIBUTED CONSENSUS ON DECENTRALIZED BYZANTENE FAULT TOLERANCE}Decentralized Byzantine Error Tolerant Distributed Consensus Apparatus and Method

본 발명은 블록체인 기술에 관한 것으로, 보다 상세하게는 탈 중앙화된 노드들의 비잔틴 오류 감내(BYZANTENE FAULT TOLERANCE, BFT) 분산 합의 프로토콜과 메시지 최적화 기술에 관한 것이다.The present invention relates to blockchain technology, and more particularly, to a BYZANTENE FAULT TOLERANCE (BFT) distributed consensus protocol and message optimization technology of decentralized nodes.

비잔틴 오류 감내(BYZANTENE FAULT TOLERANCE, BFT)는 여러대의 노드로 구성되는 분산환경에서 비정상 노드가 존재하더라도 정상 작동하도록 하는 기법이다. 종래 비잔틴 오류 감내 계열의 분산 합의 방식은 합의 과정에서 O(N2)의 메시지 교환을 필요로 한다. 상기 종래 비잔틴 오류 감내 계열의 분산 합의 방식은 메시지 수로 인하여 합의에 참여하는 노드 수를 늘리는데 한계를 가지고 있다. Tendermint 알고리즘의 경우 합의에 참여하는 노드 수를 101개로 가정하고 있다. 합의 과정에서 O(N2) 메시지 교환이 필요하며, 이를 줄이기 위한 다양한 연구들이 진행되었다. FastBFT 의 경우 메시지 통합 기술을 통해 교환되는 메시지의 수를 O(N)으로 줄였다. 또한 Zilliqa 등에서도 다중 서명을 이용하여 메시지 수를 O(N)으로 줄인 선행 기술들이 있었다. 하지만 선행 기술들이 합의 메시지를 O(N)으로 줄이는 데는 성공했으나, 합의에 참여하는 노드들이 고정되어 다시 중앙화되는 한계를 가지고 있다. 따라서, 선행 기술들에서는 노드들의 탈 중앙화를 실현하였으나 합의를 위해 O(N2)의 메시지 교환을 필요로 하였다. 이러한 한계로 인해 노드들의 탈 중앙화를 실현한 선행기술은 노드 수가 수백 이상으로 증가되는 경우 트래픽 폭주 문제가 발생할 수 있어, 합의 메시지 수를 O(N)으로 줄일 수 있는 새로운 합의 방법을 요구되고 있다.Byzantine fault tolerance (BYZANTENE FAULT TOLERANCE, BFT) is a technique that enables normal operation even if abnormal nodes exist in a distributed environment composed of multiple nodes. The conventional Byzantine error-tolerant distributed consensus method requires O(N 2 ) message exchange in the consensus process. The conventional distributed consensus method of the Byzantine error tolerance series has a limitation in increasing the number of nodes participating in the consensus due to the number of messages. In the case of the Tendermint algorithm, it is assumed that the number of nodes participating in the consensus is 101. O(N 2 ) message exchange is required in the consensus process, and various studies have been conducted to reduce it. In the case of FastBFT, the number of exchanged messages is reduced to O(N) through message aggregation technology. Also, Zilliqa et al. have prior technologies that reduce the number of messages to O(N) by using multiple signatures. However, while the prior art succeeded in reducing the consensus message to O(N), there is a limitation in that nodes participating in the consensus are fixed and centralized again. Therefore, in the prior art, decentralization of nodes was realized, but O(N 2 ) message exchange was required for consensus. Due to this limitation, in the prior art that realizes the decentralization of nodes, a traffic congestion problem may occur when the number of nodes is increased to hundreds or more, so a new consensus method that can reduce the number of consensus messages to O(N) is required.

한편, 한국공개특허 제 10-2019-0122149 호“난스를 이용한 합의 노드 선택 방법 및 그것을 이용한 블록체인 생성 방법 및 장치”는 분산합의에 참여하는 전체 노드 중 일부만 합의에 참여하여 자원 소모를 최소화하고, 일정 수 이상의 합의 노드가 선택되는 것을 보장하는 블록체인 생성 방법 및 장치에 관하여 개시하고 있다.On the other hand, Korean Patent Application Laid-Open No. 10-2019-0122149 “Method for selecting a consensus node using Nonce and a method and apparatus for generating a block chain using the same” minimizes resource consumption by participating in consensus among all nodes participating in a distributed agreement, Disclosed is a method and apparatus for creating a blockchain that guarantees that more than a certain number of consensus nodes are selected.

본 발명은 탈 중앙화된 노드들에 의해 비잔틴 오류 감내(BFT)를 수용하면서 O(N) 메시지 교환으로 합의가 가능한 분산 합의 방법을 제공하는 것을 목적으로 한다.An object of the present invention is to provide a distributed consensus method that allows consensus through O(N) message exchange while accepting Byzantine Error Tolerance (BFT) by decentralized nodes.

또한, 본 발명은 메시지 교환을 경량화하고, 자격 없는 노드들의 분산합의 참여를 차단하면서도 빠른 연산이 가능하도록 하여 대량의 탈 중앙화된 노드들의 빠른 합의를 제공하는 것을 목적으로 한다.In addition, an object of the present invention is to provide a fast consensus among a large number of decentralized nodes by lightening the message exchange and enabling fast operation while blocking participation in distributed consensus of unqualified nodes.

상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치는 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리를 포함하고, 상기 적어도 하나 이상의 프로그램은 블록체인의 합의체 후보 노드들로부터 클라이언트에 의해 제안된 분산 합의를 요청하는 제1 트랜잭션을 포함하는 합의체 후보 요청(DELEGATE REQUEST) 메시지들을 수신하고, 상기 합의체 후보 요청 메시지들에 기초하여 상기 합의체 후보 노드들 중 합의 정족수에 상응하는 합의체 후보 노드들을 합의 노드들로 결정하고, 상기 합의 노드들에게 상기 합의 노드들을 결정한 결과에 대한 동의를 얻기 위한 제2 트랜잭션을 포함하는 준비(PREPARE) 메시지를 생성하고, 상기 합의 노드들에게 상기 준비 메시지를 송신하고, 상기 합의 노드들로부터 상기 준비 메시지에 대한 응답으로 상기 합의 노드들 각각의 전자 서명이 포함된 동의(COMMIT) 메시지들을 수신하고, 상기 동의 메시지들에 포함된 전자 서명들을 검증한 결과인 응답(REPLY) 메시지를 상기 합의체 후보 노드들에게 브로드캐스팅하여 분산 합의를 완료하고, 상기 합의 정족수는 2f+1(f는 1 이상의 정수)이고, 상기 f는 제1 조건 및 제2 조건을 모두 만족하고, 상기 제1 조건은, 상기 블록체인의 전체 노드들 중 상기 합의체 후보 노드들이 p(p는 0 이상 1 이하의 실수)의 확률로 선택될 경우에, 상기 합의체 후보 노드들로 선택될 비잔틴(Byzantine) 노드들이 f개를 초과할 제1 확률이 기설정된 제1 기준 확률 이하인 경우에 만족되는 조건이고, 상기 제2 조건은 상기 합의체 후보 노드들이 3f개 이하일 제2 확률이 기설정된 제2 기준 확률 이하인 경우에 만족되는 조건이다.A decentralized Byzantine error-tolerant distributed consensus apparatus according to an embodiment of the present invention for achieving the above object includes one or more processors and an execution memory for storing at least one or more programs executed by the one or more processors, The at least one program receives DELEGATE REQUEST messages including a first transaction requesting a distributed consensus proposed by a client from consensus candidate nodes of a blockchain, and based on the consensus candidate request messages to determine consensus nodes corresponding to a quorum of consensus among the candidate consensus nodes as consensus nodes, and include a second transaction for obtaining agreement from the consensus nodes on the result of determining the consensus nodes (PREPARE) generating a message, sending the preparation message to the consensus nodes, and receiving COMMIT messages including digital signatures of each of the consensus nodes in response to the preparation message from the consensus nodes, and Distributed consensus is completed by broadcasting a response (REPLY) message, which is the result of verifying digital signatures included in consent messages, to the consensus candidate nodes, and the quorum of the consensus is 2f+1 (f is an integer greater than or equal to 1), f satisfies both the first condition and the second condition, and the first condition is that the consensus candidate nodes among all nodes of the block chain will be selected with a probability of p (p is a real number greater than or equal to 0 and less than or equal to 1). In this case, it is a condition that is satisfied when the first probability that the number of Byzantine nodes to be selected as the consensus candidate nodes exceeds f is less than or equal to a predetermined first reference probability, and the second condition is that the consensus candidate nodes are This condition is satisfied when the second probability of being less than or equal to 3f is less than or equal to the second reference probability.

이 때, 상기 적어도 하나 이상의 프로그램은 상기 전체 노드들로부터 상기 전체 노드들 각각이 상기 합의체 후보 노드로 선택되었는지 여부를 지시하는 정보가 포함된 상기 합의체 후보 요청 메시지를 수신하고, 상기 합의체 후보 요청 메시지를 송신한 노드가 3f+1개 이상인 경우, 3f+1개의 노드들을 선택하여 다음 분산 합의를 위한 상기 합의체 후보 노드들로 결정하고, 상기 합의체 후보 요청 메시지를 송신한 노드가 3f개 이하인 경우, 상기 합의체 후보 노드들을 업데이트 하지 않을 수 있다.At this time, the at least one program receives the consensus candidate request message including information indicating whether each of the all nodes is selected as the consensus candidate node from the all nodes, and receives the consensus candidate request message If the number of transmitted nodes is 3f+1 or more, 3f+1 nodes are selected and determined as the consensus candidate nodes for the next distributed consensus, and when the number of nodes that transmitted the consensus candidate request message is 3f or less, the consensus Candidate nodes may not be updated.

이 때, 상기 적어도 하나 이상의 프로그램은 상기 합의 정족수만큼의 상기 합의체 후보 요청 메시지들을 수신한 경우, 상기 합의 정족수만큼의 상기 합의체 후보 요청 메시지들에 포함된 서로 동일한 f+1개의 제1 트랜잭션을 기초로 상기 제2 트랜잭션을 결정할 수 있다.In this case, when the at least one program receives the consensus quorum of the consensus quorum candidate request messages, based on the same f+1 first transactions included in the consensus quorum of the consensus quorum candidate request messages. The second transaction may be determined.

이 때, 상기 적어도 하나 이상의 프로그램은 상기 합의체 후보 노드들의 상기 제1 트랜잭션에 상응하는 제1 비트맵 정보 및 상기 합의 노드들을 결정한 결과를 포함하는 제2 비트맵 정보를 생성하고, 상기 제1 비트맵 정보, 상기 제2 비트맵 정보 및 상기 제2 트랜잭션을 포함하는 상기 준비 메시지를 생성할 수 있다.In this case, the at least one program generates first bitmap information corresponding to the first transaction of the consensus candidate nodes and second bitmap information including a result of determining the consensus nodes, and the first bitmap information, the second bitmap information and the second transaction may be generated.

이 때, 상기 합의 노드들은 상기 제1 비트맵 정보와 상기 제2 트랜잭션의 대응 여부로부터 상기 준비 메시지의 유효성을 검사할 수 있다.In this case, the consensus nodes may check the validity of the preparation message based on whether the first bitmap information and the second transaction correspond.

이 때, 상기 적어도 하나 이상의 프로그램은 상기 합의체 후보 요청 메시지들에 포함된 공개키들 및 정족수 값들을 각각 통합하여 제1 통합 공개키 및 제1 통합 정족수 값을 생성하고, 상기 제1 통합 공개키 및 상기 제1 통합 정족수 값을 해시한 제1 해시 값을 더 포함하는 상기 준비 메시지를 생성할 수 있다.In this case, the at least one program generates a first unified public key and a first unified quorum value by integrating public keys and quorum values included in the consensus candidate request messages, respectively, and the first unified public key and the The preparation message may further include a first hash value obtained by hashing the first unified quorum value.

이 때, 상기 합의 노드들은 상기 기등록된 공개키들 및 상기 기등록된 정족수 값들을 각각 통합하여 제2 통합 공개키 및 제2 통합 정족수 값을 생성하고, 상기 제2 통합 공개키 및 상기 제2 통합 정족수 값을 해시한 제2 해시 값과 상기 제1 해시 값의 동일 여부를 비교하여 상기 준비 메시지의 유효성을 검사할 수 있다.In this case, the consensus nodes generate a second unified public key and a second unified quorum value by integrating the pre-registered public keys and the pre-registered quorum values, respectively, and the second unified public key and the second unified public key The validity of the preparation message may be checked by comparing whether the second hash value obtained by hashing the quorum value is the same as the first hash value.

이 때, 상기 합의 노드들은 상기 제2 해시 값과 상기 제1 해시 값이 동일한 경우, 상기 제1 해시 값과 상기 합의 노드들에 기저장된 비밀 값들을 포함하는 서명 값들을 생성하고, 상기 준비 메시지에 상기 서명 값들을 포함시키고, 상기 서명 값들에 기초한 상기 전자 서명들을 추가하여 상기 동의 메시지들을 생성할 수 있다.At this time, when the second hash value and the first hash value are the same, the consensus nodes generate signature values including the first hash value and secret values previously stored in the consensus nodes, and include The consent messages may be generated by including the signature values and adding the electronic signatures based on the signature values.

이 때, 상기 적어도 하나 이상의 프로그램은 상기 동의 메시지들에 포함된 상기 서명 값들, 상기 제1 통합 공개키의 공개키들 및 상기 제1 통합 정족수 값의 정족수 값들을 각각 트리 형태의 다중 서명의 서명 값, 상기 다중 서명의 공개키 및 상기 다중 서명의 정족수 값으로 통합하여 상기 전자 서명들로부터 상기 다중 서명을 생성할 수 있다.At this time, the at least one or more programs apply the signature values included in the consent messages, the public keys of the first integrated public key, and the quorum values of the first integrated quorum value to a multi-signature signature value in the form of a tree, The multi-signature may be generated from the digital signatures by integrating the public key of the multi-signature and the quorum value of the multi-signature.

상기 적어도 하나 이상의 프로그램은 상기 다중 서명의 검증 결과가 참인 경우, 상기 제2 트랜잭션 및 상기 다중 서명을 포함하는 상기 응답 메시지를 생성할 수 있다.When the verification result of the multi-signature is true, the at least one or more programs may generate the response message including the second transaction and the multi-signature.

또한, 상기의 목적을 달성하기 위한 본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법은 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치의 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법에 있어서, 블록체인의 합의체 후보 노드들로부터 클라이언트에 의해 제안된 분산 합의를 요청하는 제1 트랜잭션을 포함하는 합의체 후보 요청(DELEGATE REQUEST) 메시지들을 수신하고, 상기 합의체 후보 요청 메시지들에 기초하여 상기 합의체 후보 노드들 중 합의 정족수에 상응하는 합의체 후보 노드들을 합의 노드들로 결정하는 단계; 상기 합의 노드들에게 상기 합의 노드들을 결정한 결과에 대한 동의를 얻기 위한 제2 트랜잭션을 포함하는 준비(PREPARE) 메시지를 생성하고, 상기 합의 노드들에게 상기 준비 메시지를 송신하는 단계 및 상기 합의 노드들로부터 상기 준비 메시지에 대한 응답으로 상기 합의 노드들 각각의 전자 서명이 포함된 동의(COMMIT) 메시지들을 수신하고, 상기 동의 메시지들에 포함된 전자 서명들을 검증한 결과인 응답(REPLY) 메시지를 상기 합의체 후보 노드들에게 브로드캐스팅하여 분산 합의를 완료하는 단계를 포함하고, 상기 합의 정족수는 2f+1(f는 1 이상의 정수)이고, 상기 f는 제1 조건 및 제2 조건을 모두 만족하고, 상기 제1 조건은, 상기 블록체인의 전체 노드들 중 상기 합의체 후보 노드들이 p(p는 0 이상 1 이하의 실수)의 확률로 선택될 경우에, 상기 합의체 후보 노드들로 선택될 비잔틴(Byzantine) 노드들이 f개를 초과할 제1 확률이 기설정된 제1 기준 확률 이하인 경우에 만족되는 조건이고, 상기 제2 조건은 상기 합의체 후보 노드들이 3f개 이하일 제2 확률이 기설정된 제2 기준 확률 이하인 경우에 만족되는 조건이다.In addition, the decentralized Byzantine error-tolerant distributed consensus method according to an embodiment of the present invention for achieving the above object is a decentralized Byzantine error-tolerant distributed consensus method of a decentralized Byzantine error-tolerant distributed consensus device, a block Receives DELEGATE REQUEST messages including a first transaction requesting a distributed consensus proposed by a client from consensus candidate nodes in the chain, and based on the consensus candidate request messages, among the consensus candidate nodes determining consensus nodes corresponding to the consensus quorum as consensus nodes; generating a PREPARE message including a second transaction for obtaining agreement on a result of determining the consensus nodes to the consensus nodes, and sending the preparation message to the consensus nodes and from the consensus nodes In response to the preparation message, consent (COMMIT) messages including electronic signatures of each of the consensus nodes are received, and a response (REPLY) message, which is a result of verifying electronic signatures included in the consent messages, is transmitted to the consensus candidate. Broadcasting to nodes to complete a distributed agreement, wherein the quorum of the consensus is 2f+1 (f is an integer greater than or equal to 1), where f satisfies both a first condition and a second condition, and the first The condition is that when the consensus candidate nodes among all nodes of the blockchain are selected with a probability of p (p is a real number between 0 and 1), Byzantine nodes to be selected as the consensus candidate nodes are f A condition that is satisfied when the first probability to exceed the number is less than or equal to a predetermined first reference probability, and the second condition is satisfied when the second probability that the number of candidate nodes of the consensus is less than or equal to the second reference probability is less than or equal to the predetermined second reference probability. is a condition

이 때, 상기 합의 노드들로 결정하는 단계는 상기 전체 노드들로부터 상기 전체 노드들 각각이 상기 합의체 후보 노드로 선택되었는지 여부를 지시하는 정보가 포함된 상기 합의체 후보 요청 메시지를 수신하고, 상기 합의체 후보 요청 메시지를 송신한 노드가 3f+1개 이상인 경우, 3f+1개의 노드들을 선택하여 다음 분산 합의를 위한 상기 합의체 후보 노드들로 결정하고, 상기 합의체 후보 요청 메시지를 송신한 노드가 3f개 이하인 경우, 상기 합의체 후보 노드들을 업데이트 하지 않을 수 있다.In this case, the determining of the consensus nodes includes receiving the consensus candidate request message including information indicating whether each of the entire nodes has been selected as the consensus candidate node from the entire nodes, and the consensus candidate If more than 3f+1 nodes have transmitted the request message, 3f+1 nodes are selected to determine the consensus candidate nodes for the next distributed consensus, and when the number of nodes that transmitted the consensus candidate request message is 3f or less , the consensus candidate nodes may not be updated.

이 때, 상기 합의 노드들로 결정하는 단계는 상기 합의 정족수만큼의 상기 합의체 후보 요청 메시지들을 수신한 경우, 상기 합의 정족수만큼의 상기 합의체 후보 요청 메시지들에 포함된 서로 동일한 f+1개의 제1 트랜잭션을 기초로 상기 제2 트랜잭션을 결정할 수 있다.In this case, the determining of the consensus nodes includes, when receiving the consensus quorum of the consensus candidate request messages, equal to f+1 first transactions included in the consensus quorum of the consensus candidate request messages. The second transaction may be determined based on .

이 때, 상기 준비 메시지를 송신하는 단계는 상기 합의체 후보 노드들의 상기 제1 트랜잭션에 상응하는 제1 비트맵 정보 및 상기 합의 노드들을 결정한 결과를 포함하는 제2 비트맵 정보를 생성하고, 상기 제1 비트맵 정보, 상기 제2 비트맵 정보 및 상기 제2 트랜잭션을 포함하는 상기 준비 메시지를 생성할 수 있다.In this case, the transmitting of the preparation message generates first bitmap information corresponding to the first transaction of the consensus candidate nodes and second bitmap information including a result of determining the consensus nodes, and The preparation message including bitmap information, the second bitmap information, and the second transaction may be generated.

이 때, 상기 준비 메시지를 송신하는 단계는 상기 합의 노드들이, 상기 제1 비트맵 정보와 상기 제2 트랜잭션의 대응 여부로부터 상기 준비 메시지의 유효성을 검사할 수 있다.In this case, in the transmitting of the preparation message, the consensus nodes may check the validity of the preparation message based on whether the first bitmap information and the second transaction correspond.

이 때, 상기 준비 메시지를 송신하는 단계는 상기 합의체 후보 요청 메시지들에 포함된 공개키들 및 정족수 값들을 각각 통합하여 제1 통합 공개키 및 제1 통합 정족수 값을 생성하고, 상기 제1 통합 공개키 및 상기 제1 통합 정족수 값을 해시한 제1 해시 값을 더 포함하는 상기 준비 메시지를 생성할 수 있다.In this case, in the step of transmitting the preparation message, a first unified public key and a first unified quorum value are generated by integrating public keys and quorum values included in the consensus candidate request messages, respectively, and the first unified public key and a first hash value obtained by hashing the first unified quorum value may be generated.

이 때, 상기 준비 메시지를 송신하는 단계는 상기 합의 노드들이, 상기 기등록된 공개키들 및 상기 기등록된 정족수 값들을 각각 통합하여 제2 통합 공개키 및 제2 통합 정족수 값을 생성하고, 상기 제2 통합 공개키 및 상기 제2 통합 정족수 값을 해시한 제2 해시 값과 상기 제1 해시 값의 동일 여부를 비교하여 상기 준비 메시지의 유효성을 검사할 수 있다.In this case, in the step of transmitting the preparation message, the consensus nodes generate a second unified public key and a second unified quorum value by integrating the previously registered public keys and the previously registered quorum values, and the second unified public key and the second unified quorum value are generated. The validity of the preparation message may be checked by comparing whether a second hash value obtained by hashing the two unified public keys and the second unified quorum value and the first hash value are the same.

이 때, 상기 분산 합의를 완료하는 단계는 상기 합의 노드들이 상기 제2 해시 값과 상기 제1 해시 값이 동일한 경우, 상기 제1 해시 값과 상기 합의 노드들에 기저장된 비밀 값들을 포함하는 서명 값들을 생성하고, 상기 준비 메시지에 상기 서명 값들을 포함시키고, 상기 서명 값들에 기초한 상기 전자 서명들을 추가하여 상기 동의 메시지들을 생성할 수 있다.In this case, the step of completing the distributed agreement may include a signature value including the first hash value and secret values previously stored in the consensus nodes when the second hash value and the first hash value are the same in the consensus nodes. The consent messages may be generated by generating the signature values, including the signature values in the preparation message, and adding the electronic signatures based on the signature values.

이 때, 상기 분산 합의를 완료하는 단계는 상기 동의 메시지들에 포함된 상기 서명 값들, 상기 제1 통합 공개키의 공개키들 및 상기 제1 통합 정족수 값의 정족수 값들을 각각 트리 형태의 다중 서명의 서명 값, 상기 다중 서명의 공개키 및 상기 다중 서명의 정족수 값으로 통합하여 상기 전자 서명들로부터 상기 다중 서명을 생성할 수 있다.In this case, the step of completing the distributed agreement includes signing the signature values included in the consent messages, the public keys of the first unified public key, and the quorum values of the first unified quorum value in a tree-type multi-signature, respectively. value, the public key of the multi-signature, and the quorum value of the multi-signature may be combined to generate the multi-signature from the digital signatures.

이 때, 상기 분산 합의를 완료하는 단계는 상기 다중 서명의 검증 결과가 참인 경우, 상기 제2 트랜잭션 및 상기 다중 서명을 포함하는 상기 응답 메시지를 생성할 수 있다.In this case, the step of completing the distributed agreement may generate the response message including the second transaction and the multi-signature when the verification result of the multi-signature is true.

본 발명은 탈 중앙화된 노드들에 의해 비잔틴 오류 감내(BFT)를 수용하면서 O(N) 메시지 교환으로 합의가 가능한 분산 합의 방법을 제공할 수 있다.The present invention can provide a distributed consensus method that enables consensus through O(N) message exchange while accepting Byzantine Error Tolerance (BFT) by decentralized nodes.

또한, 본 발명은 메시지 교환을 경량화하고, 자격 없는 노드들의 분산합의 참여를 차단하면서도 빠른 연산이 가능하도록 하여 대량의 탈 중앙화된 노드들의 빠른 합의를 제공할 수 있다.In addition, the present invention can provide a fast consensus of a large number of decentralized nodes by lightening the message exchange and enabling fast operation while blocking the participation of unqualified nodes in distributed consensus.

도 1은 본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법을 나타낸 동작흐름도이다.
도 2는 도 1에 도시된 DELEGATE REQEUST 단계의 일 예를 세부적으로 나타낸 동작흐름도이다.
도 3은 본 발명의 일실시예에 따른 해쉬 체인 및 난스 체인을 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 블록의 HEIGHT 를 나타낸 도면이다.
도 5는 본 발명의 일실시예에 따른 분산 합의 프로토콜을 나타낸 도면이다.
도 6은 본 발명의 일실시예에 따른 분산 합의 처리 제1 과정을 나타낸 도면이다.
도 7은 본 발명의 일실시예에 따른 분산 합의 처리 제2 과정을 나타낸 도면이다.
도 8은 본 발명의 일실시예에 따른 다중 서명을 나타낸 도면이다.
도 9는 본 발명의 일실시예에 따른 다중 서명 부분 검증을 나타낸 도면이다.
도 10은 본 발명의 일실시예에 따른 다중 서명의 트리를 나타낸 도면이다.
도 11은 본 발명의 일실시예에 따른 비잔틴 노드 분포를 나타낸 그래프이다.
도 12는 본 발명의 일실시예에 따른 다양한 환경의 비잔틴 노드 분포를 나타낸 그래프이다.
도 13은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
1 is an operation flowchart illustrating a method of decentralized Byzantine error-tolerant distributed consensus according to an embodiment of the present invention.
FIG. 2 is a detailed operation flowchart illustrating an example of the DELEGATE REQEUST step shown in FIG. 1 .
3 is a diagram illustrating a hash chain and a nonce chain according to an embodiment of the present invention.
4 is a diagram illustrating HEIGHT of a block according to an embodiment of the present invention.
5 is a diagram illustrating a distributed consensus protocol according to an embodiment of the present invention.
6 is a diagram illustrating a first process of processing a distributed sum according to an embodiment of the present invention.
7 is a diagram illustrating a second process of processing a distributed sum according to an embodiment of the present invention.
8 is a diagram illustrating a multi-signature according to an embodiment of the present invention.
9 is a diagram illustrating multi-signature partial verification according to an embodiment of the present invention.
10 is a diagram illustrating a multi-signature tree according to an embodiment of the present invention.
11 is a graph showing a Byzantine node distribution according to an embodiment of the present invention.
12 is a graph showing the distribution of Byzantine nodes in various environments according to an embodiment of the present invention.
13 is a diagram illustrating a computer system according to an embodiment of the present invention.

본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.The present invention will be described in detail with reference to the accompanying drawings as follows. Here, repeated descriptions, well-known functions that may unnecessarily obscure the gist of the present invention, and detailed descriptions of configurations will be omitted. The embodiments of the present invention are provided in order to more completely explain the present invention to those of ordinary skill in the art. Accordingly, the shapes and sizes of elements in the drawings may be exaggerated for clearer description.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part "includes" a certain element, it means that other elements may be further included, rather than excluding other elements, unless otherwise stated.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법을 나타낸 동작흐름도이다. 도 2는 도 1에 도시된 DELEGATE REQEUST 단계의 일 예를 세부적으로 나타낸 동작흐름도이다.1 is an operation flowchart illustrating a method of decentralized Byzantine error-tolerant distributed consensus according to an embodiment of the present invention. FIG. 2 is a detailed operation flowchart illustrating an example of the DELEGATE REQEUST step shown in FIG. 1 .

도 1을 참조하면, 본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법은 먼저 클라이언트가 합의체 후보 노드들에게 분산 합의를 요청하는 "REQUSET" 단계를 수행할 수 있다(S110).Referring to FIG. 1 , in the decentralized Byzantine error-tolerant distributed consensus method according to an embodiment of the present invention, the client may first perform a “REQUSET” step in which a client requests a distributed consensus from consensus candidate nodes (S110).

클라이언트(CLIENT)는 REQUEST 를 생성하는 주체이며, 상기 REQUEST 는 처리할 트랜잭션에 상응할 수 있다. 처리할 트랜잭션 메시지는 전자서명 등 무결성 확인을 위한 수단을 포함할 수도 있다.A client (CLIENT) is a subject that generates a REQUEST, and the REQUEST may correspond to a transaction to be processed. The transaction message to be processed may include means for integrity verification, such as a digital signature.

또한, 본 발명의 일실시예에 따른 블록체인 네트워크에서 노드들은 복수개의 서버들을 포함할 수 있다.In addition, nodes in the blockchain network according to an embodiment of the present invention may include a plurality of servers.

예를 들어, 복수개의 서버들은 SERVER 0~3을 포함할 수 있다. SERVER 0~3는 현재 합의 중인 블록에 대한 합의체이며, SERVER 0은 1대로 구성될 수 있지만 SERVER(1~3)은 적어도 1 이상인 f 대로 구성될 수 있다. 여기서 f >= 1 이다. 합의체는 매 블록 변경될 수 있다.For example, the plurality of servers may include SERVERs 0 to 3. SERVER 0~3 is a consensus for the block currently being agreed upon. SERVER 0 may consist of 1 unit, but SERVER(1~3) may consist of f units that are at least 1 or more. where f >= 1 . The consensus can be changed every block.

이 때, SERVER 0은 본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치에 상응하는 주 노드(송신측 서버)일 수 있다.In this case, SERVER 0 may be a main node (sending side server) corresponding to the decentralized Byzantine error-tolerant distributed consensus apparatus according to an embodiment of the present invention.

이 때, SERVER(1~3)는 본 발명의 일실시예에 따른 클라이언트 로부터 REQUEST를 수신하고 SERVER 0에게 DELEGATE REQUEST 를 전달하는 서브 노드(수신측 서버)일 수 있다.In this case, SERVERs 1 to 3 may be sub-nodes (receiving server) that receive a request from a client according to an embodiment of the present invention and deliver a DELEGATE REQUEST to SERVER 0.

즉, 단계(S110)는 클라이언트가 블록체인의 합의체 후보 노드들에게 분산 합의를 요청하는 제1 트랜잭션을 포함하는 요청(REQUEST) 메시지를 브로드캐스팅할 수 있다.That is, in step S110, the client may broadcast a REQUEST message including a first transaction requesting distributed consensus to consensus candidate nodes of the block chain.

또한, 본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법은 합의체 후보 요청 메시지들을 수신하는 "DELEGATE REQUSET"단계를 수행할 수 있다(S120).In addition, the decentralized Byzantine error-tolerant distributed consensus method according to an embodiment of the present invention may perform a "DELEGATE REQUSET" step of receiving consensus candidate request messages (S120).

즉, 단계(S120)는 블록체인의 합의체 후보 노드들로부터 클라이언트에 의해 처리 요청된 트랜잭션들이 처리될 것을 요청하는 제1 트랜잭션을 포함하는 합의체 후보 요청(DELEGATE REQUEST) 메시지들을 수신하고, 상기 합의체 후보 요청 메시지들에 기초하여 상기 합의체 후보 노드들 중 합의 정족수에 상응하는 합의체 후보 노드들을 합의 노드들로 결정할 수 있다.That is, in step S120, DELEGATE REQUEST messages including a first transaction requesting that the transactions requested for processing by the client be processed from the consensus candidate nodes of the blockchain are received, and the consensus candidate request is received. Based on the messages, consensus nodes corresponding to the consensus quorum among the consensus candidate nodes may be determined as consensus nodes.

이 때, 본 발명의 일실시예에 따르면 특정 HEIGHT 블록의 합의에 직접 참여할 기회를 얻은 노드들은 '합의체(CONGRESS)'라 할 수 있고, 합의체 중에서 투표에 필요한 최소 노드 수는 '합의 정족수(QUORUM)'라 할 수 있다.At this time, according to an embodiment of the present invention, nodes that have had an opportunity to directly participate in the consensus of a specific HEIGHT block can be referred to as 'CONGRESS', and the minimum number of nodes required for voting among the consensus body is 'QUORUM' ' can be said.

합의 정족수는 2f+1(f는 1 이상의 정수)이고, 상기 f는 제1 조건 및 제2 조건을 모두 만족하고, 상기 제1 조건은, 상기 블록체인의 전체 노드들 중 상기 합의체 후보 노드들이 p(p는 0 이상 1 이하의 실수)의 확률로 선택될 경우에, 상기 합의체 후보 노드들로 선택될 비잔틴(Byzantine) 노드들이 f개를 초과할 제1 확률이 기설정된 제1 기준 확률 이하인 경우에 만족되는 조건이고, 상기 제2 조건은 동일한 합의체 후보 노드들이 p(p는 0 이상 1 이하의 실수)의 확률로 선택될 경우에 상기 합의체 후보 노드들이 3f개 이하일 제2 확률이 기설정된 제2 기준 확률 이하인 경우에 만족되는 조건일 수 있다.The quorum of the consensus is 2f+1 (f is an integer greater than or equal to 1), where f satisfies both the first condition and the second condition, and the first condition is that the consensus candidate nodes among all nodes of the blockchain are p When selected with a probability of (p is a real number of 0 or more and 1 or less), the first probability that the number of Byzantine nodes to be selected as the consensus candidate nodes exceeds f is less than or equal to a preset first reference probability This condition is satisfied, and the second condition is a second criterion in which the second probability that the consensus candidate nodes are 3f or less is preset when the same consensus candidate nodes are selected with a probability of p (p is a real number between 0 and 1). It may be a condition that is satisfied when the probability is less than or equal to the probability.

예를 들어, n은 전체 노드 수, bp 는 전체 노드 중 비잔틴 노드 비율, b는 비잔틴 노드 수, p는 동전을 던지 앞면이 나온 노드가 선택된다고 할 때 동전의 앞면이 나올 확률이라 할 수 있다.For example, n is the total number of nodes, b p is the ratio of Byzantine nodes among all nodes, b is the number of Byzantine nodes, and p is the probability that a coin will come up heads when a coin is tossed and a head is selected. .

이 때, n이 1000이고, bp 가 0.2 이면(전체의 20%가 비잔틴 노드), b는 200으로 계산된다(b = n*bp = 1,000*0.2 = 200).At this time, if n is 1000 and b p is 0.2 (20% of the total number of Byzantine nodes), b is calculated as 200 (b = n*b p = 1,000*0.2 = 200).

예를 들어, 전체 참여 노드 n이 각각 앞면이 나올 확률 p가 0.1인 바이어스된 동전을 한번씩 던져 앞면이 나온 노드들이 합의체 후보로 선택된다고 가정한다.For example, it is assumed that all participating nodes n toss a biased coin with a probability p of 0.1 each tossing once, and nodes that come up heads are selected as consensus candidates.

이 때, 동전의 앞면이 나온 노드 수는 이항 분포를 따르므로 평균은 n*p로 계산되어 100이 된다.At this time, the number of nodes with heads of the coin follows a binomial distribution, so the average is calculated as n*p and becomes 100.

이 때, 노드가 충분히 많기(30 이상) 때문에 노드가 선택되는 확률은 "중심극한 정리"에 의해 정규분포에 근접할 수 있지만, 정확하게는 이항분포를 따를 수 있다.At this time, since there are sufficiently many nodes (more than 30), the probability that a node is selected can approximate a normal distribution by the "central limit theorem", but can accurately follow a binomial distribution.

이 때, 각 노드가 시행하는 동전 던지기가 서로 독립이라면(각 노드가 던진 동전이 이전 노드가 던진 동전의 결과에 영향을 받지 않는다면 독립), 전체 노드 중 일부의 노드들을 그룹으로 구분하여 이들이 선택될 확률 분포만 따로 계산할 수 있다.At this time, if the coin toss performed by each node is independent of each other (the coin tossed by each node is independent if the result of the coin tossed by the previous node is not affected), some of the nodes are divided into groups and they are selected. Only the probability distribution can be calculated separately.

따라서, 전체 노드(n) 중에서 비잔틴 노드 (b)들만 각각 앞면이 나올 확률이 p 인 동전을 던져 앞면이 나온 노드 수 k가 f개 이하가 선택될 누적 확률은 아래 수학식 1에 의해 계산될 수 있다(이항분포의 누적 확률).Therefore, among all nodes (n), only the Byzantine nodes (b) each toss a coin with a probability of coming up heads, and the cumulative probability that f or less of k nodes with heads are selected by Equation 1 below: Yes (cumulative probability of a binomial distribution).

Figure 112020051789635-pat00001
Figure 112020051789635-pat00001

이 때, 수학식 2는 비잔틴 노드들이 앞면이 나올 확률이 p 인 동전을 던져, 동전의 앞면이 나온 노드 수 k 가 f 개를 초과하는 확률이 Pmax_bzt 보다 작거나 같을 조건을 만족할 수 있다.In this case, Equation 2 may satisfy the condition that Byzantine nodes toss a coin with a probability of coming up heads p, and the probability that the number of nodes k with heads of the coin exceeds f is less than or equal to P max_bzt .

Figure 112020051789635-pat00002
Figure 112020051789635-pat00002

이 때, 1.1 e-16 = Pmax_bzt 에 상응할 수 있다. 이 값은 고정된 값이 아니고 시스템 설계에 따라 다른 값(예, 5e-9) 등이 사용될 수도 있다.In this case, it may correspond to 1.1 e-16 = P max_bzt . This value is not a fixed value, and a different value (eg, 5e-9) may be used depending on the system design.

또한, 전체 참여 노드 n이 동일한 확률 p의 동전을 던져 앞면이 나온 노드의 수 x 가 3f 개 이하일 누적 확률이 Pmin_node 보다 작거나 같을 조건은 아래 수학식 3과 같이 나타낼 수 있다.In addition, the condition that the cumulative probability that the number of nodes x with heads that come up heads is 3f or less is less than or equal to P min_node can be expressed as Equation 3 below by tossing a coin of the same probability p by all participating nodes n.

Figure 112020051789635-pat00003
Figure 112020051789635-pat00003

전체 참여 노드 수 n 이 주어질 때 노드 선택 확률을 증가 시키면서 수학식 2 및 3을 동시에 만족하는 p가 계산될 수 있다. 계산된 p로 노드가 동전 던지기를 시행하고, 앞면이 나온 노드 중에서 임의로 3f+1 개 노드를 합의체로 정하면 합의체에 포함된 비잔틴 노드가 f개를 초과할 확률이 Pmax_bzt 이하로 유지 될 수 있다.When the total number of participating nodes n is given, p that simultaneously satisfies Equations 2 and 3 can be calculated while increasing the node selection probability. If a node executes a coin toss with the calculated p, and randomly selects 3f+1 nodes from among the nodes that come up heads as a consensus, the probability that the number of Byzantine nodes included in the consensus exceeds f can be maintained below P max_bzt .

예를 들어, 전체 노드 n=1,000 노드, 비잔틴 비중 bp = 0.2, 비잔틴 노드 수 b = n*bp = 1,000*0.2 = 200 노드, Pmax_bzt = 1.1e-16, Pmin_node = 1.0e-6 라고 할 수 있다. 이 때, 노드 선택 확률 p 를 0부터 증가 시키고 수학식 2 및 3 이 동시에 만족되는 p를 계산할 때, p = 0.1에서 수학식 2 및 3을 만족한다면, 각각의 노드가 동전 던지기를 하여 선택 여부를 확인한다고 할 때, 노드들의 동전 던지기가 서로 독립 경우 비잔틴 노드 200개에서 선택되는 노드의 평균은 20개가 될 수 있다(노드 선택 확률 p가 0.1이므로 평균=b*p=200*0.1=20).For example, let's say total nodes n=1,000 nodes, Byzantine weight bp = 0.2, the number of Byzantine nodes b = n*bp = 1,000*0.2 = 200 nodes, P max_bzt = 1.1e-16, P min_node = 1.0e-6 can At this time, when the node selection probability p is increased from 0 and when calculating p that Equations 2 and 3 are simultaneously satisfied, if Equations 2 and 3 are satisfied at p = 0.1, each node flips a coin to determine whether or not to select To confirm, if the coin tosses of the nodes are independent of each other, the average of the nodes selected from 200 Byzantine nodes can be 20 (since the node selection probability p is 0.1, the average = b*p=200*0.1=20).

수학식 2에서 비잔틴 노드 200개 중에서 앞면이 나온 노드가 30개를 초과할 확률이 매우 낮으므로, Pmax_bzt 이하의 확률이라 가정할 수 있다.In Equation 2, since the probability that the number of nodes with heads out of 200 Byzantine nodes exceeds 30 is very low, it can be assumed that the probability is less than or equal to P max_bzt .

이 때, 전체 노드 1,000개가 동전 던지기를 하면, 앞면이 나온 노드의 평균은 100 일 수 있다.At this time, if all 1,000 nodes toss a coin, the average of nodes that come up heads may be 100.

이 때, 90개 이하의 노드에서 앞면이 나올 확률이 Pmin_node 이하보다 낮게 계산될 수 있다면, 전체 노드가 동전 던지기를 시행하고, 앞면이 나온 노드 중에서 임의로 91개 노드를 선택하여 합의체로 정하는 경우, 91개의 노드에 포함된 비잔틴 노드 수가 30개를 초과할 확률은 여전히 Pmax_bzt 이하가 될 수 있다.At this time, if the probability of coming up heads from less than 90 nodes can be calculated to be lower than P min_node or less, all nodes execute a coin toss, and randomly select 91 nodes from among the nodes that come up heads and decide it as a consensus, The probability that the number of Byzantine nodes contained in 91 nodes exceeds 30 is still It may be less than or equal to P max_bzt .

왜냐하면, 노드 선택 확률 0.1에서 200개의 비잔틴 노드가 동전 던지기를 할 때 30개 이상의 비잔틴 노드가 선택 될 확률은 _ 이하이기 때문이다.This is because the probability that more than 30 Byzantine nodes will be selected when 200 Byzantine nodes are tossed with a coin toss at a node selection probability of 0.1 is less than _ .

즉, 본 발명의 일실시예에 따른 블록체인의 전체 노드들은 동전 던지기를 하여 나온 임의의 수의 노드에 포함된 비잔틴 노드가 33%를 넘는지 여부에 대해 모든 경우의 수로 계산하고 합산을 할 수 있다.That is, all nodes of the block chain according to an embodiment of the present invention can be counted and summed in all cases as to whether the number of Byzantine nodes included in an arbitrary number of nodes obtained by tossing a coin exceeds 33%. have.

이 때, 전체 노드들은 선택될 비잔틴 최대 값이 기설정된 확률을 넘지 않는 수를 계산하여 노드 수인 f 로 설정하고, 전체 노드가 3f+1 개 이상 선택 될 수 있는 환경에서 임의로 3f+1개의 노드를 선택하는 방법으로 비잔틴 노드 수를 원하는 수준으로 유지하면서 합의체를 선택 할 수 있다.At this time, all nodes calculate the number of which the Byzantine maximum value to be selected does not exceed a preset probability, set it as f, which is the number of nodes, and randomly select 3f+1 nodes in an environment where more than 3f+1 total nodes can be selected. As a selection method, a consensus can be selected while maintaining the number of Byzantine nodes at a desired level.

또한, 단계(S120)는 상기 전체 노드들로부터 상기 전체 노드들 각각이 상기 합의체 후보 노드로 선택되었는지 여부를 지시하는 정보가 포함된 상기 합의체 후보 요청 메시지를 수신하고, 상기 합의체 후보 요청 메시지를 송신한 노드가 3f+1개 이상인 경우, 3f+1개의 노드들을 선택하여 다음 분산 합의를 위한 상기 합의체 후보 노드들로 결정하고, 상기 합의체 후보 요청 메시지를 송신한 노드가 3f개 이하인 경우, 상기 합의체 후보 노드들을 업데이트 하지 않을 수 있다.In addition, in step S120, the consensus candidate request message including information indicating whether each of the nodes has been selected as the consensus candidate node is received from all nodes, and the consensus candidate request message is transmitted. When the number of nodes is 3f+1 or more, 3f+1 nodes are selected and determined as the candidate consensus nodes for the next distributed consensus, and when the number of nodes that transmitted the consensus candidate request message is 3f or less, the consensus candidate nodes may not update them.

이 때, 단계(S120)는 상기 합의 정족수만큼의 상기 합의체 후보 요청 메시지들을 수신한 경우, 상기 합의 정족수만큼의 상기 합의체 후보 요청 메시지들에 포함된 서로 동일한 f+1개의 제1 트랜잭션을 기초로 상기 제2 트랜잭션을 결정할 수 있다.In this case, in step S120, when receiving the consensus quorum of the consensus candidate request messages, based on the same f+1 number of first transactions included in the consensus quorum of the consensus quorum candidate request messages. A second transaction may be determined.

단계(S120)는 도 2에 도시된 바와 같이 합의체 후보 요청 메시지들을 송신한 합의체 후보 노드들의 합의체 후보 요청(DELEGATE REQUEST) 메시지들의 유효성을 검사하는 세부적인 단계를 더 포함할 수 있다.Step S120 may further include a detailed step of checking the validity of DELEGATE REQUEST messages of consensus candidate nodes that have transmitted consensus candidate request messages as shown in FIG. 2 .

도 2를 참조하면, 단계(S121)은 수신한 합의체 후보 요청 메시지들에서 Nonce(2N+1)값을 확인할 수 있다.Referring to FIG. 2 , in step S121, a value of Nonce (2N+1) may be checked in the received consensus candidate request messages.

단계(S122)는 합의체 후보 요청 메시지들에 포함된 Nonce(2N+1)값을 한번 해쉬한 값이 합의체 선정과정에서 기등록된 해당 합의체 후보 노드의 Nonce(2N)값과 동일한지 검사할 수 있다.In step S122, it may be checked whether the value obtained by hashing the Nonce (2N+1) value included in the consensus candidate request messages is the same as the Nonce (2N) value of the corresponding consensus candidate node previously registered in the consensus selection process. .

이 때, 단계(S122)는 Nonce(2N+1)값과 Nonce(2N)값이 동일하지 않는 경우에는 Nonce(2N+1) 무결성 검사를 실패할 수 있다(S123).In this case, in step S122, if the nonce(2N+1) value and the nonce(2N) value are not the same, the nonce(2N+1) integrity check may fail (S123).

이 때, 단계(S124)는 Nonce(2N+1) 무결성 검사를 통과할 경우, 노드가 등록한 pki, Qi 의 무결성을 검사하기 위해 Hash(msg || Nonce(2N+1)) 값을 계산하고, 합의체 선정 과정에서 받은 message_digest 값과 비교할 수 있다.At this time, in step S124, if the Nonce (2N+1) integrity check is passed, the Hash(msg || Nonce(2N+1)) value is calculated to check the integrity of the pki and Qi registered by the node, It can be compared with the message_digest value received during the consensus selection process.

이 때, 단계(S124)는 Hash(msg || Nonce(2N+1)) 값과 message_digest 값이 일치하지 않는 경우 노드가 등록한 pki, Qi 의 무결성 검사 실패가 발생할 수 있다(S123).At this time, in step S124, if the Hash(msg || Nonce(2N+1)) value and the message_digest value do not match, the integrity check failure of pki and Qi registered by the node may occur (S123).

단계(S123)는 단계(S122)와 단계(S124)의 무결성 검사 결과가 모두 성공인 경우에만 해당 노드의 DELEGATE REQUEST를 수용하고, 단계(S122)와 단계(S124)의 무결성 검사가 어느 하나라도 실패하는 경우, 해당 노드의 DELEGATE REQUEST를 수용하지 않을 수 있다. Step S123 accepts the DELEGATE REQUEST of the node only when the integrity check results of steps S122 and S124 are both successful, and either of the integrity checks of steps S122 and S124 fails. In this case, the DELEGATE REQUEST of the corresponding node may not be accepted.

이 때, 단계(S120)의 무결성 검사 과정은 DELEGATE REQUEST 포함된 전자 서명을 검증할 수도 있다. 하지만, 전자 서명 한 개를 검증하기 위해 대략 0.1 초 정도의 시간이 소요되므로 합의체의 수 백대로 증가될 경우 유효성 검사에 수십 초 지연이 발생한다. 또한, 긴 무결성 검사 시간은 공격자에 의한 DDoS 공격의 빌미를 제공할 수 있으므로 본 발명에서는 두 번의 hash 계산을 통해 빠른 검사를 수행할 수 있다.In this case, the integrity check process of step S120 may verify the digital signature included in the DELEGATE REQUEST. However, since it takes about 0.1 seconds to verify one digital signature, when the number of consensus units is increased to several hundred, a delay of tens of seconds occurs in validation. In addition, since a long integrity check time may provide an excuse for a DDoS attack by an attacker, in the present invention, a quick check can be performed through two hash calculations.

이 때, 단계(S120)의 무결성 검사 과정은 hash chain에서 연속된 hash 값을 사용하면 전자서명 없이도 중간자 공격 여부를 확인 할 수 있어, DELEGATE REQUEST를 수신한 장치에서 유효성 검사를 위한 검사 비용을 최소화할 수 있다.At this time, in the integrity check process of step S120, if a continuous hash value is used in the hash chain, it is possible to check whether a man-in-the-middle attack has occurred without a digital signature, thereby minimizing the check cost for validation in the device that has received the DELEGATE REQUEST. can

이 때, 단계(S120)의 무결성 검사 과정은 합의 노드들의 pki, Qi의 유효성 확인을 동시에 수행할 수도 있다. Man in the middle attacker가 생성한 bogues pki 또는 bogues Qi 를 방어 할 수 있다.In this case, the integrity check process of step S120 may simultaneously verify the validity of pki and Qi of the consensus nodes. You can block bogues pki or bogues Qi created by Man in the middle attacker.

또한, 단계(S120)은 합의체 후보 노드가 아닌 노드에서 DELEGATE REQUEST를 송신한 경우, 합의체 선택 결과를 확인 받기 위한 메시지는 해당 노드의 Nonce(2N)을 2N-1번 해쉬한 값이 해당 노드의 Nonce(1) 값과 동일해야 하는 nonce 유효성 검사를 통과해야 하며, coupon이 임계치 보다 작은지 검사하는 coupon 검사를 수행할 수 있다.In addition, in step S120, when a DELEGATE REQUEST is transmitted from a node other than the consensus candidate node, the message for receiving confirmation of the consensus selection result is the value obtained by hashing the Nonce (2N) of the corresponding node 2N-1 times. (1) It must pass the nonce validation check that must be equal to the value, and the coupon check can be performed to check whether the coupon is smaller than the threshold.

이 때, 단계(S120)는 검사를 통과하지 못한 경우에 해당 노드를 다음 블록의 합의체에서 제외하고, 해당 상황을 로그에 남길 수 있다.At this time, in step S120, if the check is not passed, the corresponding node may be excluded from the consensus of the next block, and the corresponding situation may be left in the log.

이 때, 단계(S120)는 해당 노드가 제외된 상황에서 나머지 합의체가 합의 정족수보다 큰 경우에는 정상적인 합의를 진행할 수 있고, 만약 부족한 경우에는 현재 합의체가 다음 블록에 대한 합의체가 되거나 empty agreement를 진행시킬 수도 있다. At this time, in step S120, if the remaining consensus is greater than the quorum of the consensus in a situation in which the corresponding node is excluded, normal agreement can be proceeded. may be

또한, 단계(S120)는 중간 공격자(중간 전달 노드)가 DELEGATE REQUEST를 훼손하여 전달하는 경우, message digest 를 통해 DELEGATE REQUEST의 훼손여부를 확인할 수 있다.In addition, in step S120, when an intermediate attacker (intermediate forwarding node) corrupts and delivers the DELEGATE REQUEST, it is possible to check whether the DELEGATE REQUEST is corrupted through message digest.

중간 공격자는 노드의 DELEGATE REQUEST를 가로채서 정상적인 Nonce(2N)을 사용하므로 Nonce 유효성과 coupon 유효성 검사를 통과할 수도 있다.The middle attacker intercepts the node's DELEGATE REQUEST and uses a normal nonce (2N), so it may pass the nonce validation and coupon validation.

이 때, 중간 공격자는 자신이 생성한 pki 또는 Qi로 원래 데이터를 훼손한 메시지를 전달하게 될 것이다. 하지만, 중간 공격자가 Nonce(2N+1)을 예측하는 것은 불가능하므로 message digest 검사를 통과 할 수 없다.At this time, the middle attacker will deliver a message that corrupts the original data to the pki or Qi that he created. However, it is impossible for a man-in-the-middle attacker to predict a nonce (2N+1), so it cannot pass the message digest check.

이 때, 단계(S120)는 message digest 검사를 통과하지 못한 경우에 해당 노드를 중간 공격자로 판단하여 합의체에서 제외하고, 해당 상황을 로그에 남길 수 있다.At this time, in step S120, if the message digest check is not passed, the node may be determined as an intermediate attacker and excluded from the consensus, and the corresponding situation may be logged.

이 때, 단계(S120)는 해당 노드가 제외된 상황에서 나머지 합의체가 합의 정족수보다 큰 경우에는 정상적인 합의를 진행할 수 있고, 만약 부족한 경우에는 현재 합의체가 다음 블록에 대한 합의체가 되거나 empty agreement를 진행시킬 수도 있다. At this time, in step S120, if the remaining consensus is greater than the quorum of the consensus in a situation in which the corresponding node is excluded, normal agreement can be proceeded. may be

또한, 본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법은 상기 합의 노드들에게 상기 합의 노드들을 결정한 결과에 대한 동의를 얻기 위한 준비(PREPARE) 메시지를 송신하는 "PREPARE" 단계를 수행할 수 있다(S130).In addition, the decentralized Byzantine error-tolerant distributed consensus method according to an embodiment of the present invention includes a "PREPARE" step of sending a PREPARE message to the consensus nodes to obtain agreement on the result of determining the consensus nodes. can be performed (S130).

즉, 단계(S130)는 상기 합의 노드들에게 상기 합의 노드들을 결정한 결과에 대한 동의를 얻기 위한 제2 트랜잭션을 포함하는 준비(PREPARE) 메시지를 생성하고, 상기 합의 노드들에게 상기 준비 메시지를 송신할 수 있다.That is, step S130 generates a PREPARE message including a second transaction for obtaining agreement on the result of determining the consensus nodes to the consensus nodes, and transmits the preparation message to the consensus nodes. can

이 때, 단계(S130)는 상기 합의체 후보 노드들의 상기 제1 트랜잭션에 상응하는 제1 비트맵 정보 및 상기 합의 노드들을 결정한 결과를 포함하는 제2 비트맵 정보를 생성하고, 상기 제1 비트맵 정보, 상기 제2 비트맵 정보 및 상기 제2 트랜잭션을 포함하는 상기 준비 메시지를 생성할 수 있다.At this time, in step S130, first bitmap information corresponding to the first transaction of the consensus candidate nodes and second bitmap information including a result of determining the consensus nodes are generated, and the first bitmap information , the preparation message including the second bitmap information and the second transaction may be generated.

이 때, 단계(S130)는 상기 합의 노드들이, 상기 제1 비트맵 정보와 상기 제2 트랜잭션의 대응 여부로부터 상기 준비 메시지의 유효성을 검사할 수 있다.In this case, in step S130, the consensus nodes may check the validity of the preparation message based on whether the first bitmap information and the second transaction correspond.

이 때, 단계(S130)는 상기 합의체 후보 요청 메시지들에 포함된 공개키들 및 정족수 값들을 각각 통합하여 제1 통합 공개키 및 제1 통합 정족수 값을 생성하고, 상기 제1 통합 공개키 및 상기 제1 통합 정족수 값을 해시한 제1 해시 값을 더 포함하는 상기 준비 메시지를 생성할 수 있다.In this case, step S130 generates a first unified public key and a first unified quorum value by integrating public keys and quorum values included in the consensus candidate request messages, respectively, and the first unified public key and the first unified public key The preparation message may be generated further including a first hash value obtained by hashing one unified quorum value.

이 때, 단계(S130)는 상기 합의 노드들이, 상기 기등록된 공개키들 및 상기 기등록된 정족수 값들을 각각 통합하여 제2 통합 공개키 및 제2 통합 정족수 값을 생성하고, 상기 제2 통합 공개키 및 상기 제2 통합 정족수 값을 해시한 제2 해시 값과 상기 제1 해시 값의 동일 여부를 비교하여 상기 준비 메시지의 유효성을 검사할 수 있다.In this case, in step S130, the consensus nodes generate a second unified public key and a second unified quorum value by integrating the previously registered public keys and the registered quorum values, respectively, and the second unified public key The validity of the preparation message may be checked by comparing whether a second hash value obtained by hashing a key and the second unified quorum value is the same as the first hash value.

또한, 본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법은 상기 합의 노드들로부터 상기 준비 메시지에 대한 응답으로 상기 합의 노드들 각각의 전자 서명이 포함된 동의(COMMIT) 메시지들을 수신하는"COMMIT"단계를 수행할 수 있다.In addition, in the decentralized Byzantine error-tolerant distributed consensus method according to an embodiment of the present invention, in response to the preparation message from the consensus nodes, COMMIT messages including the digital signature of each of the consensus nodes are received. "COMMIT" step can be performed.

즉, 단계(S140)는 상기 합의 노드들로부터 상기 준비 메시지에 대한 응답으로 상기 합의 노드들 각각의 전자 서명이 포함된 동의(COMMIT) 메시지들을 수신할 수 있다.That is, in step S140, in response to the preparation message from the consensus nodes, COMMIT messages including the digital signature of each of the consensus nodes may be received.

이 때, 단계(S140)는 상기 합의 노드들이 상기 제2 해시 값과 상기 제1 해시 값이 동일한 경우, 상기 제1 해시 값과 상기 합의 노드들에 기저장된 비밀 값들을 포함하는 서명 값들을 생성하고, 상기 준비 메시지에 상기 서명 값들을 포함시키고, 상기 서명 값들에 기초한 상기 전자 서명들을 추가하여 상기 동의 메시지들을 생성할 수 있다.At this time, in step S140, when the second hash value and the first hash value are the same in the consensus nodes, the first hash value and the signature values including the secret values previously stored in the consensus nodes are generated, and , including the signature values in the preparation message, and adding the electronic signatures based on the signature values to generate the consent messages.

이 때, 단계(S140)는 상기 동의 메시지들에 포함된 상기 서명 값들, 상기 제1 통합 공개키의 공개키들 및 상기 제1 통합 정족수 값의 정족수 값들을 각각 트리 형태의 다중 서명의 서명 값, 상기 다중 서명의 공개키 및 상기 다중 서명의 정족수 값으로 통합하여 상기 전자 서명들로부터 상기 다중 서명을 생성할 수 있다.At this time, in step S140, the signature values included in the consent messages, the public keys of the first unified public key, and the quorum values of the first unified quorum value are respectively converted to a tree-type multi-signature signature value, the The multi-signature may be generated from the digital signatures by integrating the public key of the multi-signature and the quorum value of the multi-signature.

이 때, 단계(S140)는 상기 전자 서명들을 통합하여 다중 서명을 생성하고, 상기 다중 서명을 검증하여 상기 전자 서명들 중 거짓 전자 서명을 제외시킬 수 있다.In this case, in step S140, a multi-signature may be generated by integrating the electronic signatures, and a false electronic signature may be excluded from among the electronic signatures by verifying the multi-signature.

이 때, 단계(S140)는 상기 다중 서명에서 상기 서명 값들의 트리, 상기 제1 통합 공개키의 트리 및 상기 제1 통합 정족수 값의 트리를 최상위 트리 단계부터 최하위 트리 단계까지 트리 단계 순으로 검증할 수 있다.At this time, in step S140, in the multi-signature, the tree of signature values, the tree of the first unified public key, and the tree of the first unified quorum value are verified in the order of the tree step from the highest tree step to the lowest tree step. can

이 때, 단계(S140)는 상기 다중 서명에 포함된 트리 들을 중 어느 하나의 트리의 현재 트리 단계에서 하위 트리 단계에 포함된 값들의 검사 결과가 모두 이상인 경우, 상기 하위 트리 단계의 이하 트리 단계에 포함된 적어도 하나의 전자 서명을 상기 거짓 전자 서명으로 판단할 수 있다.At this time, in step S140, if the check result of the values included in the sub-tree step in the current tree step of any one tree among the trees included in the multi-signature is equal to or greater than that of the tree included in the multi-signature, in the sub-tree step of the sub-tree step The included at least one electronic signature may be determined as the false electronic signature.

또한, 본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법은 검증 결과를 후보 노드들에게 브로드케스팅하여 분산 합의를 수행하는 "REPLY"단계를 수행할 수 있다.In addition, the decentralized Byzantine error-tolerant distributed consensus method according to an embodiment of the present invention may perform a "REPLY" step of performing distributed consensus by broadcasting the verification result to candidate nodes.

즉, 단계(S150)는 상기 전자 서명들을 검증한 결과를 상기 합의체 후보 노드들에게 브로드캐스팅하여 분산 합의를 완료할 수 있다.That is, in step S150, the result of verifying the electronic signatures may be broadcast to the consensus candidate nodes to complete the distributed agreement.

이 때, 단계(S140)는 상기 다중 서명의 검증 결과가 참인 경우, 상기 제2 트랜잭션 및 상기 다중 서명을 포함하는 상기 응답 메시지를 생성할 수 있다.In this case, in step S140, if the verification result of the multi-signature is true, the response message including the second transaction and the multi-signature may be generated.

도 3은 본 발명의 일실시예에 따른 해쉬 체인 및 난스 체인을 나타낸 도면이다. 도 4는 본 발명의 일실시예에 따른 블록의 HEIGHT 를 나타낸 도면이다. 도 5는 본 발명의 일실시예에 따른 분산 합의 프로토콜을 나타낸 도면이다. 도 6은 본 발명의 일실시예에 따른 분산 합의 처리 제1 과정을 나타낸 도면이다. 도 7은 본 발명의 일실시예에 따른 분산 합의 처리 제2 과정을 나타낸 도면이다. 도 8은 본 발명의 일실시예에 따른 다중 서명을 나타낸 도면이다. 도 9는 본 발명의 일실시예에 따른 다중 서명 부분 검증을 나타낸 도면이다.3 is a diagram illustrating a hash chain and a nonce chain according to an embodiment of the present invention. 4 is a diagram illustrating HEIGHT of a block according to an embodiment of the present invention. 5 is a diagram illustrating a distributed consensus protocol according to an embodiment of the present invention. 6 is a diagram illustrating a first process of processing a distributed sum according to an embodiment of the present invention. 7 is a diagram illustrating a second process of processing a distributed sum according to an embodiment of the present invention. 8 is a diagram illustrating a multi-signature according to an embodiment of the present invention. 9 is a diagram illustrating multi-signature partial verification according to an embodiment of the present invention.

본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치 및 방법 분산 합의 주체를 선택할 수 있다.Decentralized Byzantine error-tolerant distributed consensus apparatus and method according to an embodiment of the present invention A distributed consensus subject can be selected.

도 3을 참조하면, 해쉬 체인(HASH CHAIN)의 생성 과정과 난스 체인(NONCE CHAIN)을 확장하여 사용한 과정을 나타낸 것을 알 수 있다.Referring to FIG. 3 , it can be seen that the process of generating a hash chain (HASH CHAIN) and the process of using the nonce chain (NONCE CHAIN) by extension are shown.

본 발명의 일실시예에 따른 블록체인에 포함된 특정 노드는 난스 체인을 사용하기 위해서 301(start_height)와 302(nonce(1))를 공개할 수 있다. N은 nonce chain에서 사용될 nonce 인덱스를 계산하기 위한 인덱스 값이며, 수학식 4와 같이 현재 블록 height값에서 start_height 값을 빼서 구할 수 있다. 수학식 4를 통해 N을 계산하고 303 과 304 두 개의 nonce를 연속 사용하도록 하여 보안성과 연산속도를 향상할 수 있다.A specific node included in the block chain according to an embodiment of the present invention may disclose 301 (start_height) and 302 (nonce (1)) to use the nonce chain. N is an index value for calculating the nonce index to be used in the nonce chain, and can be obtained by subtracting the start_height value from the current block height value as shown in Equation (4). By calculating N through Equation 4 and continuously using two nonces 303 and 304, security and operation speed can be improved.

Figure 112020051789635-pat00004
Figure 112020051789635-pat00004

도 4를 참조하면, 블록 HEIGHT의 일 예를 세부적으로 나타낸 것을 알 수 있다. 현재 합의 하려는 블록을 402 블록 HEIGHT를 h라고 하면, 401 블록은 h-1 HEIGHT에 합의된 블록을 나타내며, 403 블록은 h+1 HEIGHT에 합의될 블록이라 할 수 있다.Referring to FIG. 4 , it can be seen that an example of the block HEIGHT is shown in detail. If the current block to be agreed to is 402 block HEIGHT, then block 401 represents a block agreed to h-1 HEIGHT, and block 403 is a block to be agreed to h+1 HEIGHT.

본 발명에서는 현재 블록에 대한 합의과정에서 다음 블록의 합의체에 대한 등록을 동시에 수행할 수도 있다. 예를 들어, 402 블록 합의체가 블록을 합의하는 중에 403 블록 합의체를 등록하는 경우, 403 블록의 합의체에 포함될 자격을 획득한 노드들은 402 블록 합의 기간 동안 402 블록의 SERVER 0에게 403 블록의 합의체로 등록되도록 요청할 수 있다.In the present invention, in the process of consensus on the current block, registration of the consensus of the next block may be simultaneously performed. For example, if the 402 block consensus registers the 403 block consensus during block consensus, nodes that have obtained the qualification to be included in the 403 block consensus are registered as a 403 block consensus with SERVER 0 of the 402 block during the 402 block consensus period. you can request to be

이 때, 수학식 5와 같이 pki, Qi, (402 블록 합의에 필요한 메시지)를 같이 전달할 수 있다. 여기서 pki, Qi 에서 아래 첨자 i 는 합의체 (SERVER (0~3)) 중 하나에서 생성된 데이터를 의미할 수 있다. At this time, as in Equation 5, pki, Qi, (message required for 402 block consensus) may be transmitted together. Here, the subscript i in pki and Qi may mean data generated in one of the consensus bodies (SERVER (0~3)).

합의체의 후보 노드들은 401 블록이 REPLY 되면, 수학식 2에 의해 N을 산출한 후, 403 블록 합의체 선택 여부를 확인하기 위해 Nonce(2N) 값(303)과 401 블록의 헤드 해쉬 값을 해쉬하여 생성한 임의 값과 블록 합의체 선택 임계치보다 작은지 비교하는 연산을 수행할 수 있다.Candidate nodes of the consensus are generated by hashing the Nonce (2N) value 303 and the head hash value of the 401 block to check whether the 403 block consensus is selected after calculating N by Equation 2 when the 401 block is REPLYed. An operation can be performed that compares a random value to whether it is smaller than the block consensus selection threshold.

이 때, 합의체의 후보 노드들은 비교 결과가 참인 경우, 자신이 정당하게 선택 받은 노드임을 다른 노드들에게 증명하기 위해 Nonce(2N) 값과 블록 403 합의 과정에 필요한 pki, Qi를 포함하여 아래 수학식 5와 같이 Concatenate(msg, message digest) 한 데이터를 생성하여 402 블록 합의체의 SERVER 0 에게 전달할 수 있다.At this time, if the comparison result is true, the candidate nodes of the consensus include the Nonce(2N) value and pki and Qi necessary for the block 403 consensus process to prove to other nodes that they are a node that has been properly selected. As shown in 5, concatenated (msg, message digest) data can be generated and delivered to SERVER 0 of the 402 block consensus.

Figure 112020051789635-pat00005
Figure 112020051789635-pat00005

Figure 112020051789635-pat00006
Figure 112020051789635-pat00006

Figure 112020051789635-pat00007
Figure 112020051789635-pat00007

수학식 5에서 || 는 접합 연산(Concatenate Operation)연산으로 두 인자를 연결하여 하나의 데이터를 만드는 연산을 의미하며, Hash()는 해쉬 함수로 인자를 해쉬한 임의의 값을 생성하는 함수를 의미할 수 있다.In Equation 5, || is a concatenate operation operation that concatenates two arguments to create one data, and Hash() may mean a function that generates an arbitrary value by hashing the arguments as a hash function.

402 블록의 SERVER 0은 수신한 메시지에 대해 상기에서 설명한 임계치 비교를 통해 각 노드의 Nonce(2N)의 정당성을 검사할 수 있다. SERVER 0의 정당성 검사를 통과한 모든 노드들은 403블록에 대한 합의체가 될 수 있다. SERVER 0 of block 402 may check the validity of the Nonce (2N) of each node through the threshold comparison described above with respect to the received message. All nodes that have passed the validity check of SERVER 0 can become a consensus for block 403.

선택된 403블록 합의체에서 SERVER(0~3)의 역할을 구분하기 위해 각 노드가 송신한 Nonce(2N) 데이터의 일부를 잘라(예: LSB 32bits) coupon을 생성할 수 있다.In order to distinguish the roles of SERVERs (0~3) in the selected 403 block consensus, a coupon can be generated by cutting a part of the Nonce (2N) data transmitted by each node (eg, LSB 32bits).

이 때, 최소 coupon 값을 가진 노드가 SERVER 0 이 될 수 있다. 만약 최소 coupon값을 가진 노드가 2개 이상일 경우 노드의 Nonce(1)값(301)이 가장 작은 노드가 SERVER 0으로 선택될 수 있다. 이때 비교 대상으로 Nonce(1)값(301) 대신 Nonce(2N-1) 등을 사용할 수고 있다. 또한, 합의 중에 SERVER 0에 문제가 발생하여 합의가 불가능하게 되는 경우, SERVER 0를 제외하고 가장 작은 coupon 을 가진 노드가 새로운 SERVER 0 역할을 수행할 수 있다.At this time, the node with the minimum coupon value may be SERVER 0. If there are two or more nodes having the minimum coupon value, the node having the smallest Nonce(1) value 301 of the node may be selected as SERVER 0. In this case, a Nonce(2N-1) or the like may be used instead of the Nonce(1) value 301 as a comparison object. In addition, when a problem occurs in SERVER 0 during consensus and consensus becomes impossible, the node with the smallest coupon except for SERVER 0 may perform a new SERVER 0 role.

도 4의 403 블록에 대한 합의체 선정 과정에서 msg 와 message digest를 전달하는 방법은 도 6, 도 7, 또는 별도의 프로세스에 의해 수행될 수 있다.A method of transmitting msg and message digest in the process of selecting a consensus for block 403 of FIG. 4 may be performed by FIG. 6, FIG. 7, or a separate process.

도 4를 참조하면, 402 블록 합의체들은 402 블록 합의를 위한 DELEGATE REQUEST 단계에서 검증된 REQUEST 내용과 자신의 Nonce(2N+1) 값(304)과 이들 메시지에 대한 전자서명 값을 포함하여 SERVER 0에게 전달할 수 있다. Referring to FIG. 4, the 402 block agreements include the REQUEST contents verified in the DELEGATE REQUEST step for the 402 block consensus, their Nonce (2N+1) value 304, and the digital signature value for these messages to SERVER 0. can transmit

예를 들어, 402 블록의 msg 와 message digest에 포함된 303 값을 2N-1 번 Hash 한 값이 302 값과 동일해야 하며, 403 블록의 DELEGATE REQUEST 단계에서 각 서버가 REQUEST 와 304 값을 SERVER 0에게 전달할 수 있다. 이 때, 403 블록 합의 시간에 SERVER 0은 전달받은 SERVER 1 ~ SERVER 3의 304 값을 한번 Hash 한 값이 402 블록에 저장된 SERVER 1 ~ SERVER 3의 303값과 동일해야 하기 때문이다.For example, the value obtained by hashing the 303 value included in the msg and message digest of the 402 block 2N-1 times should be the same as the 302 value. can transmit At this time, at the time of block 403 consensus, SERVER 0 hashes the 304 values of SERVER 1 to SERVER 3 once, and the value must be the same as the 303 value of SERVER 1 to SERVER 3 stored in block 402.

도 6을 참조하면, 현재 402블록에 대한 합의가 이루어지고 있을 때, 403 블록의 합의체 정보를 DELEGATE REQUEST 와 함께 다중 서명을 통해 합의체를 고정하는 것을 알 수 있다.Referring to FIG. 6 , when agreement on block 402 is currently being made, it can be seen that the agreement information of block 403 is fixed through multiple signatures together with DELEGATE REQUEST.

도 7을 참조하면, COMMIT 된 블록에 403 블록 합의체 정보를 추가하여 합의체를 고정하는 것을 알 수 있다. 또한 합의체를 블록과 별도로 선정하고 관리하는 방법도 사용될 수 있다.Referring to FIG. 7 , it can be seen that the consensus is fixed by adding 403 block consensus information to the COMMITed block. Also, a method of selecting and managing the consensus body separately from the block can be used.

도 5를 참조하면, DELEGATE REQUEST 단계, PREPARE 단계, COMMIT 단계, REPLY 단계를 거쳐 블록이 합의되는 것을 알 수 있다. 도 5의 왼쪽에는 각 노드의 역할을 표시한 것을 알 수 있다. 도 5에서 SERVER 0~3은 현재 합의 중인 블록에 대한 합의체이며, SERVER 0은 1대로 구성되지만 SERVER(1~3)은 각각 f 대로 구성된다. 여기서 f >= 1 이다. 합의체는 매 블록 변경될 수 있다.Referring to FIG. 5 , it can be seen that blocks are agreed upon through the DELEGATE REQUEST step, the PREPARE step, the COMMIT step, and the REPLY step. It can be seen that the role of each node is indicated on the left side of FIG. 5 . In FIG. 5 , SERVERs 0 to 3 are consensus bodies for blocks currently being agreed upon. SERVER 0 is composed of 1 unit, but SERVERs 1 to 3 are each composed of f units. where f >= 1 . The consensus can be changed every block.

도 3에 도시된, 401블록이 REPLY 될 때 선택 완료된 402 블록 합의체 정보가 포함되어 노드들에게 전달되었다고 하면, 402 블록을 합의하는 단계이며, 시스템 설계 가정에 의해, 본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치 및 방법은 SCHEME 1 내지 3 중 어느 하나를 선택하여 합의체와 합의 정족수를 사용할 수 있다.When the 401 block shown in FIG. 3 is REPLY, if the selected 402 block consensus information is included and delivered to the nodes, it is a step of agreeing the 402 block, and according to the system design assumption, according to an embodiment of the present invention The decentralized Byzantine error-tolerant distributed consensus apparatus and method can select any one of SCHEME 1 to 3 to use the consensus and the quorum of the consensus.

SCHEME 1 은 합의체 수를 3f+1로 고정하고, 합의 정족수를 2f+1로 고정할 수 있다.SCHEME 1 can fix the number of consensus bodies at 3f+1 and the quorum of consensus at 2f+1.

SCHEME 1 은 합의체 등록을 요청한 노드 수가 3f+1 이상일 경우 이 중에 3f+1 개의 노드를 임의로 선택하여 합의체를 교체하고, 합의체 중에 2f+1 개의 합의 정족수에 의해 합의가 수행될 수 있다. 수학식 3에 의해 3f개 이하의 노드가 선택될 확률은 Pmin_node 이하가 되므로, 확률적으로 1-Pmin_node 확률로 합의체가 교체될 수 있지만, 네트워크 오류나 노드 오작동 등으로 인해 이보다 낮은 확률로 합의체가 교체될 수 있다. SCHEME 1 의 장점은 합의체가 항상 3f+1 개이기 때문에 합의 정족수 2f+1를 구성할 예비 노드가 충분하여, 합의에 실패하는 경우에도 이들 예비 노드를 추가하여 합의 정족수를 다시 구성하기 쉽다. 단점은 합의체 교체 성공 확률이 1-Pmin_node 이하이기 때문에, 낮은 확률이지만 합의체가 교체되지 않는 상황이 발생할 수 있다.SCHEME 1 replaces the consensus by randomly selecting 3f+1 nodes among them when the number of nodes requesting the registration of the consensus body is 3f+1 or more, and consensus can be performed by a quorum of 2f+1 consensus among the consensus body. According to Equation 3, the probability of selecting 3f or less nodes is P min_node or less, so the consensus can be replaced with 1-P min_node probability probabilistically, but due to network errors or node malfunctions, the consensus is lower than this. can be replaced. The advantage of SCHEME 1 is that since there are always 3f+1 consensus bodies, there are enough spare nodes to form a consensus quorum of 2f+1, so even if consensus fails, it is easy to reconstruct the consensus quorum by adding these spare nodes. The disadvantage is that the consensus replacement success probability is less than 1-P min_node , so although the probability is low, a situation in which the consensus body is not replaced may occur.

상기에서 설명한 바와 같이, SCHEME 1에서 합의 정족수는 2f+1(f는 1 이상의 정수)이고, 상기 f는 제1 조건 및 제2 조건을 모두 만족하고, 상기 제1 조건은, 상기 블록체인의 전체 노드들 중 상기 합의체 후보 노드들이 p(p는 0 이상 1 이하의 실수)의 확률로 선택될 경우에, 상기 합의체 후보 노드들로 선택될 비잔틴(Byzantine) 노드들이 f개를 초과할 제1 확률이 기설정된 제1 기준 확률 이하인 경우에 만족되는 조건이고, 상기 제2 조건은 상기 합의체 후보 노드들이 3f개 이하일 제2 확률이 기설정된 제2 기준 확률 이하인 경우에 만족되는 조건일 수 있다.As described above, in SCHEME 1, the quorum of the sum is 2f+1 (f is an integer greater than or equal to 1), where f satisfies both the first condition and the second condition, and the first condition is the entire block chain. When the consensus candidate nodes among the nodes are selected with a probability of p (p is a real number between 0 and 1), the first probability that the number of Byzantine nodes to be selected as the consensus candidate nodes exceeds f is A condition that is satisfied when the first reference probability is less than or equal to a predetermined first reference probability, and the second condition may be a condition that is satisfied when the second probability that the number of consensus candidate nodes is 3f or less is less than or equal to the second reference probability.

예를 들어, n은 전체 노드 수, bp 는 전체 노드 중 비잔틴 노드 비율, b는 비잔틴 노드 수, p는 동전을 던지 앞면이 나온 노드가 선택된다고 할 때 동전의 앞면이 나올 확률이라 할 수 있다.For example, n is the total number of nodes, b p is the ratio of Byzantine nodes among all nodes, b is the number of Byzantine nodes, and p is the probability that a coin will come up heads when a coin is tossed and a head is selected. .

이 때, n이 1000이고, bp 가 0.2 이면(전체의 20%가 비잔틴 노드), b는 200일 수 있다(b = n*bp = 1,000*0.2 = 200).At this time, if n is 1000 and b p is 0.2 (20% of the total number of Byzantine nodes), b may be 200 (b = n*bp = 1,000*0.2 = 200).

예를 들어, 전체 참여 노드 n이 각각 앞면이 나올 확률 p가 0.1인 바이어스된 동전을 한번씩 던져 앞면이 나온 노드들이 합의체 후보로 선택된다고 가정한다.For example, it is assumed that all participating nodes n toss a biased coin with a probability p of 0.1 each tossing once, and nodes that come up heads are selected as consensus candidates.

이 때, 평균 100개의 노드가 이항 분포의 확률 분포를 가지고 선택될 수 있다.In this case, an average of 100 nodes may be selected with a probability distribution of a binomial distribution.

이 때, 노드가 충분히 많기(30 이상) 때문에 노드가 선택되는 확률은 "중심극한 정리"에 의해 정규분포에 근접할 수 있고, 보다 정확하게는 이항분포에 가까워질 수 있다.At this time, since there are enough nodes (more than 30), the probability that a node is selected can approximate a normal distribution by "central limit theorem", and more accurately approach a binomial distribution.

이 때, 각 노드가 시행하는 동전 던지기가 서로 독립이라면(각 노드가 던진 동전이 이전 노드가 던진 동전의 결과에 영향을 받지 않는다면 독립), 전체 노드 중 일부의 노드들을 그룹으로 구분하여 이들이 선택될 확률 분포만 따로 계산할 수 있다.At this time, if the coin toss performed by each node is independent of each other (the coin tossed by each node is independent if the result of the coin tossed by the previous node is not affected), some of the nodes are divided into groups and they are selected. Only the probability distribution can be calculated separately.

따라서, 전체 노드(n) 중에서 비잔틴 노드 (b)들만 각각 앞면이 나올 확률이 p인 동전을 던져 앞면이 나온 노드 수 k가 f개 이하가 선택될 누적 확률은 수학식 1에 의해 계산될 수 있다(이항분포의 누적 확률).Therefore, among all nodes (n), only the Byzantine nodes (b) each toss a coin with a probability of coming up heads, and the cumulative probability that f or less of the number of nodes k with heads are selected by Equation 1 can be calculated by (Cumulative probability of a binomial distribution).

수학식 2는 비잔틴 노드 중에서 동전 던지기로 선택된 비잔틴 노드 수 k 가 f 개를 초과하여 선택될 확률이 Pmax_bzt 보다 작거나 같을 조건을 만족할 수 있다.Equation 2 may satisfy a condition in which the probability that the number of Byzantine nodes selected by a coin toss among the Byzantine nodes is greater than f and the probability of being selected is less than or equal to P max_bzt .

이 때, 1.1 e-16 = Pmax_bzt 에 상응할 수 있다. 이 값은 고정된 값이 아니고 시스템 설계에 따라 다른 값(예, 5*10-9) 등이 사용될 수도 있다.In this case, it may correspond to 1.1 e-16 = P max_bzt . This value is not a fixed value, and a different value (eg, 5*10-9) may be used depending on the system design.

또한, 전체 참여 노드가 동일한 확률 p의 동전을 던져 앞면이 나온 노드의 수 x 가 3f 개 이하일 누적 확률이 Pmin_node 보다 작거나 같을 조건은 수학식 3과 같이 나타낼 수 있다.In addition, the condition that the cumulative probability that all participating nodes toss a coin with the same probability p and the number of nodes that came up heads x is 3f or less is less than or equal to P min_node can be expressed as Equation 3 below.

전체 참여 노드 수 n 이 주어질 때 노드 선택 확률을 증가 시키면서 수학식 2 및 3을 동시에 만족하는 p가 계산될 수 있다. 계산된 p로 노드가 동전 던지기를 시행하고, 앞면이 나온 노드 중에서 임의로 3f+1 개 노드를 합의체로 정하면 합의체에 포함된 비잔틴 노드가 f개를 초과할 확률이 Pmax_bzt이하로 유지 될 수 있다.When the total number of participating nodes n is given, p that simultaneously satisfies Equations 2 and 3 can be calculated while increasing the node selection probability. If a node executes a coin toss with the calculated p, and randomly selects 3f+1 nodes from among the nodes that come up heads as a consensus, the probability that the number of Byzantine nodes included in the consensus exceeds f can be maintained below P max_bzt .

예를 들어, 전체 노드 n=1,000 노드, 비잔틴 비중 bp = 0.2, 비잔틴 노드 수 b = n*bp = 1,000*0.2 = 200 노드, Pmax_bzt= 1.1e-16, Pmin_node= 1.0e-6 라고 할 수 있다. 이 때, 노드 선택 확률 p 를 0부터 증가 시키고 수학식 2 및 3 이 동시에 만족되는 p를 계산할 때, p = 0.1에서 수학식 2 및 3을 만족한다면, 각각의 노드가 동전 던지기를 하여 선택 여부를 확인한다고 할 때, 노드들의 동전 던지기가 서로 독립 경우 비잔틴 노드 200개에서 선택되는 노드의 평균은 20개가 될 수 있다(노드 선택 확률 p가 0.1이므로).For example, let's say total nodes n=1,000 nodes, Byzantine weight bp = 0.2, the number of Byzantine nodes b = n*bp = 1,000*0.2 = 200 nodes, P max_bzt = 1.1e-16, P min_node = 1.0e-6 can At this time, when the node selection probability p is increased from 0 and when calculating p that Equations 2 and 3 are simultaneously satisfied, if Equations 2 and 3 are satisfied at p = 0.1, each node flips a coin to determine whether or not to select When confirmed, if the coin tosses of nodes are independent of each other, the average of nodes selected from 200 Byzantine nodes can be 20 (since the node selection probability p is 0.1).

수학식 2에서 비잔틴 노드 200개 중에서 앞면이 나온 노드가 30개를 초과할 확률이 매우 낮으므로, Pmax_bzt이하의 확률로 계산될 수 있다.In Equation 2, since the probability that the number of nodes with heads out of 200 Byzantine nodes exceeds 30 is very low, it can be calculated with a probability of P max_bzt or less.

이 때, 전체 노드 1,000개가 동전 던지기를 하면, 앞면이 나온 노드의 평균은 100 일 수 있다.At this time, if all 1,000 nodes toss a coin, the average of nodes that come up heads may be 100.

이 때, 90개 이하의 노드에서 앞면이 나올 확률이 Pmin_node이하보다 낮게 계산될 수 있다면, 전체 노드가 동전 던지기를 시행하고, 앞면이 나온 노드 중에서 임의로 91개 노드를 선택하여 합의체로 정하는 경우, 91개의 노드에 포함된 비잔틴 노드 수가 30개를 초과할 확률은 여전히 Pmax_bzt 이하가 될 수 있다.At this time, if the probability of coming up heads from less than 90 nodes can be calculated to be lower than P min_node or less, all nodes execute a coin toss, and randomly select 91 nodes from among the nodes that come up heads and decide it as a consensus, The probability that the number of Byzantine nodes included in 91 nodes exceeds 30 may still be less than or equal to P max_bzt .

왜냐하면, 노드 선택 확률 0.1에서 200개의 비잔틴 노드가 동전 던지기를 할 때 30개 이상의 비잔틴 노드가 선택 될 확률은 Pmax_bzt 이하이기 때문이다.This is because, at a node selection probability of 0.1, when 200 Byzantine nodes toss a coin, the probability of selecting 30 or more Byzantine nodes is less than P max_bzt .

즉, 본 발명의 일실시예에 따른 블록체인의 전체 노드들은 동전 던지기를 하여 나온 임의의 수의 노드에 포함된 비잔틴 노드가 33%를 넘는지 에 대해 모든 경우의 수로 계산하고 합산을 할 수 있다.That is, all nodes of the block chain according to an embodiment of the present invention can be calculated and summed in all cases as to whether the number of Byzantine nodes included in a random number of nodes obtained by tossing a coin exceeds 33%. .

이 때, 전체 노드들은 선택될 비잔틴 최대 값이 기설정된 확률을 넘지 않는 수를 계산하여 노드 수인 f 로 설정하고, 전체 노드가 3f+1 개 이상 선택 될 수 있는 환경에서 임의로 3f+1개의 노드를 선택하는 방법으로 비잔틴 노드 수를 원하는 수준으로 유지하면서 합의체를 선택 할 수 있다.At this time, all nodes calculate the number of which the Byzantine maximum value to be selected does not exceed a preset probability, set it as f, which is the number of nodes, and randomly select 3f+1 nodes in an environment where more than 3f+1 total nodes can be selected. As a selection method, a consensus can be selected while maintaining the number of Byzantine nodes at a desired level.

SCHEME 2 는 합의체의 수를 2f+1 개 이상으로 구성하고, 합의 정족수를 2f+1로 고정할 수 있다.In SCHEME 2, the number of consensus bodies is 2f+1 or more, and the quorum of consensus can be fixed at 2f+1.

SCHEME 2 는 합의 정족수는 2f+1개로 고정하고, 합의체로 신고한 노드가 2f+1+β (0≤β≤f) 이상이면 합의체 수를 2f+1+β 이상이면서 3f+1 이하로 정하고 전체 합의체를 교체할 수 있다. SCHEME 2 는 PREPARE 와 COMMIT 단계에서 합의 정족수 (2f+1) 을 구성할 때 네트워크나 노드 장애로 인해 β 개 노드까지 응답하지 않아도 합의를 진행할 수 있다. 즉, SCHEME 2 는 3f+1에서 응답하지 않는 f 개 노드에 β 개 노드를 포함시키면 항상 2f+1 합의 정족수에 의한 합의를 진행할 수 있다.In SCHEME 2, the quorum of consensus is fixed at 2f+1, and if the number of nodes reported as a consensus is 2f+1+β (0≤β≤f) or more, the number of consensus bodies is set to be 2f+1+β and 3f+1 or more. Agreements can be replaced. When SCHEME 2 forms a consensus quorum (2f+1) in the PREPARE and COMMIT stages, consensus can proceed even if up to β nodes do not respond due to network or node failure. That is, in SCHEME 2, if β nodes are included in f nodes that do not respond in 3f+1, consensus can always proceed by a quorum of 2f+1 consensus.

만약 네트워크나 노드 장애가 발생하지 않는다고 가정할 때, 합의체가 2f+1+β 미만이 되는 것은 1.0e-6 이하의 확률일 수 있다. 이것은 합의체를 1백만번 교체하는 동안 1번 합의체가 바뀌지 않을 수 있다는 의미이다. 하지만 네트워크나 노드 장애로 인해 응답하지 않을 f 를 고려하면 β가 충분히 크게 합의체를 구성하는 것이 바람직하다. 이 방안의 단점은 β 가 작은 경우 합의를 실패한 경우 합의를 다시 진행하기 위한 정족수 구성 가능성이 낮아진다는 점이다. Assuming no network or node failures occur, the probability that consensus is less than 2f+1+β may be less than 1.0e-6. This means that consensus 1 may not change during 1 million rotations of consensus. However, considering f that will not respond due to network or node failure, it is desirable to form a consensus with β large enough. The disadvantage of this method is that if β is small, the possibility of forming a quorum to proceed with consensus is low if consensus fails.

SCHEME 3 은 합의체의 수 c 가 2f+1≤c≤3f+1-α 를 만족하도록 구성하고, 합의 정족수를 2f+1로 고정할 수 있다.SCHEME 3 can be configured so that the number c of consensus satisfies 2f+1≤c≤3f+1-α, and the quorum of the consensus can be fixed at 2f+1.

SCHEME 3 은 임의로 선택한 노드에 포함될 수 있는 비잔틴 노드의 최대값이 f 보다 큰 경우에 PREPARE 단계에서 f+α+1 노드의 동의를 얻어 합의를 진행할 때 필요한 합의체와 합의 정족수를 선택할 수 있다.If the maximum number of Byzantine nodes that can be included in the randomly selected node is greater than f, SCHEME 3 can obtain the consent of f+α+1 nodes in the PREPARE step to select a consensus body and a quorum for consensus.

SCHEME 3 은 확률적으로 발생 가능한 최대 비잔틴 노드 수에서 f 를 뺀 나머지를 α 라 정하고 PREPARE 단계에서 f+1 대신 수학식 6을 만족하는 f+α+1 노드 수의 동의를 얻는다고 가정할 수 있다. 이 때, 합의체의 노드 수를 c 라 할 때 c 가 수학식 7의 조건을 만족하는 경우 fork 가 발생하지 않을 수 있다.SCHEME 3 may assume that the remainder obtained by subtracting f from the maximum number of probabilistically possible Byzantine nodes is α, and in the PREPARE step, it can be assumed that the number of f+α+1 nodes satisfying Equation 6 is obtained instead of f+1. In this case, when c is the number of nodes in the consensus, if c satisfies the condition of Equation 7, fork may not occur.

Figure 112020051789635-pat00008
Figure 112020051789635-pat00008

Figure 112020051789635-pat00009
Figure 112020051789635-pat00009

예를 들어, f=1, α=1 인 경우, Max Bzt = 2이고 수학식 6에 따라 f+α+1=3 이 될 수 있다.For example, when f=1 and α=1, Max Bzt=2 and f+α+1=3 according to Equation (6).

또한, 합의체 후보 노드 수는 수학식 7에 따라 3≤c≤3 이 될 수 있다. 따라서 합의체 수를 3으로 하고 합의 정족수를 3으로 하는 경우 SERVER 0, SERVER1, SERVER2가 하나의 합의 정족수만 만들 수 있으므로 fork 가 발생하지 않지만 이 예는 BFT합의와 같아질 수 있다. Also, the number of consensus candidate nodes may be 3≤c≤3 according to Equation (7). Therefore, if the number of consensus is 3 and the quorum of the consensus is 3, SERVER 0, SERVER1, and SERVER2 can create only one quorum of the consensus, so fork does not occur, but this example can be the same as the BFT consensus.

다른 하나의 예로 f=3, α=1이며 SERVER 0와 SERVER1 그룹이 비잔틴 노드들인 경우, MaxBzt=f+α=4 이고, 수학식 6에 의해 f+α+1=5 가 되어 PREPARE에 최소 하나의 정상 노드가 포함될 수 있다. 수학식 7에 의해 합의체 후보 노드 수의 범위는 7≤c≤9 가 될 수 있다. COMMIT을 위한 합의 정족수(2f+1)는 7 이므로 비잔틴 노드 4대를 제외하고 최소 3대의 정상 노드를 포함해야 합의 정족수를 만족할 수 있다. 따라서. 최소한 한 대 이상 정상 노드를 중복으로 포함하지 않고는 두 개의 COMMIT 을 만들 수 없어 finality가 보장될 수 있다.As another example, if f=3, α=1, and SERVER 0 and SERVER1 group are Byzantine nodes, MaxBzt=f+α=4, f+α+1=5 by Equation 6, so that at least one Normal nodes of may be included. According to Equation 7, the range of the number of consensus candidate nodes may be 7≤c≤9. Since the quorum of consensus for COMMIT (2f+1) is 7, it is necessary to include at least 3 normal nodes excluding 4 Byzantine nodes to satisfy the consensus quorum. therefore. Since two COMMITs cannot be made without including at least one normal node in duplicate, finality can be guaranteed.

따라서, 확률적으로 선택될 수 있는 최대 비잔틴 노드가 2f 보다 작은 경우에는 수학식 6과 7을 적용한 SCHEME 3 이 사용될 수 있다. Therefore, when the maximum Byzantine node that can be selected probabilistically is less than 2f, SCHEME 3 to which Equations 6 and 7 are applied may be used.

합의체 업데이트는 다음 블록의 합의체로 요청된 노드 수가 2f+1 미만이면 업데이트 하지 않고, 현재 블록 합의체가 다시 다음 블록 합의체가 되거나 2f+1 미만 노드에 의해 empty agreement를 수행 할 수도 있다. 다음 블록 합의체로 요청된 노드 수가 2f+1 이상이고 3f+1-α 이하일 때는 합의체를 그대로 업데이트하고, 만약 다음 블록 합의체로 요청된 노드 수가 3f+1-α를 초과하는 경우 SERVER 0 이 3f+1-α개 노드를 임의로 선택해서 업데이트할 수 있다.Consensus update does not update if the number of nodes requested as the consensus of the next block is less than 2f+1, and the current block consensus becomes the next block consensus again, or empty agreement may be performed by nodes less than 2f+1. If the number of nodes requested to the next block consensus is 2f+1 or more and less than 3f+1-α, the consensus is updated. If the number of nodes requested to the next block consensus exceeds 3f+1-α, SERVER 0 is 3f+1 -α nodes can be randomly selected and updated.

SERVER 0은 402블록 합의 과정에서 노드 자신의 의견을 반영하여 합의를 진행할 수 있다. 본 발명에서 서버들의 다중서명을 위해서, 도 8의 EC-Schnorr 다중서명을 사용할 수 있다.SERVER 0 can proceed with consensus by reflecting the node's own opinion in the 402 block consensus process. In the present invention, for multi-signature of servers, the EC-Schnorr multi-signature of FIG. 8 may be used.

본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의는 도 5과 같이 REQUEST, DELEGATE REQUEST, PREPARE, COMMIT, 그리고 REPLY 단계로 구성되며 각 단계를 상세히 설명한다.The decentralized Byzantine error-tolerant distributed consensus according to an embodiment of the present invention consists of REQUEST, DELEGATE REQUEST, PREPARE, COMMIT, and REPLY steps, and each step will be described in detail.

REQUEST 단계는 합의체가 고정되어 있지 않고 매 블록마다 다시 구성되므로, 클라이언트가 모든 후보 노드(또는 서버)에게 REQUEST를 브로드케스팅 할 수 있다. 합의체를 임의로 선택하므로 합의체로 선택 받지 못한 다른 후보 노드들도 REQUEST를 계속 수신할 수 있다. 이 때, 오류, 지연 또는 악의적으로 의도로 인하여 모든 노드가 REQUEST를 수신하지 못할 수도 있다. 일반적으로 PBFT 알고리즘에서는 3f+1개의 노드 중 f개가 수신하지 못한 상황을 가정하므로, 도 5의 SERVER 3 은 passive 상태이므로 모든 동작을 무시할 수 있다.In the REQUEST phase, the consensus is not fixed and reconfigured for every block, so the client can broadcast the REQUEST to all candidate nodes (or servers). Since the consensus is randomly selected, other candidate nodes that have not been selected by the consensus can continue to receive the REQUEST. At this time, all nodes may not receive the REQUEST due to an error, delay, or malicious intent. In general, in the PBFT algorithm, it is assumed that f among 3f+1 nodes do not receive, so that SERVER 3 of FIG. 5 is in a passive state, all operations can be ignored.

DELEGATE REQUEST 단계는 송신측 서버(SERVER 0~3)의 동작과 SERVER0 동작을 나누어 설명한다. 우선 송신측 서버의 동작을 설명한다. In the DELEGATE REQUEST step, the operation of the sending server (SERVER 0~3) and the operation of SERVER0 are explained separately. First, the operation of the sending server will be described.

본 발명의 일실시예에 따른 합의체 후보 노드들은 클라이언트로부터 제안된 분산 합의를 요청하는 제1 트랜잭션을 포함하는 REQUEST 들의 제1 트랜잭션들 각각의 이상 유무를 검사할 수 있다. 401 블록의 SERVER 0로부터 REPLY 블록을 수신하면 402 블록의 합의체들은 DELEGATE REQUEST 를 시작할 수 있다.The consensus candidate nodes according to an embodiment of the present invention may check whether each of the first transactions of the REQUESTs including the first transaction requesting the distributed consensus proposed from the client is abnormal. Upon receiving the REPLY block from SERVER 0 of block 401, the consensus bodies of block 402 can initiate a DELEGATE REQUEST.

합의체들은 위 검사에서 이상이 없는 제1 트랜잭션 들인 proposed transaction을 DELEGATE REQUEST 에 넣어 SERVER 0에게 송신할 수 있다. 각 서버의 DELEGATE REQUEST 에는 Proposed Transaction, Nonce(2(N+1)), Qi(h+1), pki(h+1)가 포함될 수 있다. 여기서 Proposed Transaction은 각 서버가 정상적인 것으로 판단한 Transaction들(제1 트랜잭션들)에 상응할 수 있다. nonce(2(N+1)), Qi(h+1), pki(h+1) 는 403 블록의 합의체가 바뀌지 않은 경우, 402 합의체가 다시 403 블록 합의체가 되기 위해 사용되는 정보일 수 있다. 또한, 해당 메시지를 포함한 모든 내용은 송신 서버의 전자서명이 추가 될 수 있다. 추가된 전자 서명은 SERVER 0에서 바로 검증하지 않고 COMMIT 단계에서 서버들의 다중서명에 문제가 있을 경우에만 전자서명을 확인하여 서버의 오류를 확인하는데 사용 할 수 있다. Consensus parties can transmit proposed transaction, which are the first transactions that have no abnormality in the above check, to DELEGATE REQUEST and send it to SERVER 0. DELEGATE REQUEST of each server may include Proposed Transaction, Nonce(2(N+1)), Q i (h+1), pk i (h+1). Here, the Proposed Transaction may correspond to Transactions (first transactions) determined as normal by each server. nonce(2(N+1)), Q i (h+1), pk i (h+1) can be information used for the 402 consensus to become a 403 block consensus again if the 403 block consensus is not changed. have. In addition, all contents including the corresponding message can be added with the digital signature of the sending server. The added digital signature can be used to check the error of the server by checking the digital signature only when there is a problem with the multi-signature of the servers in the COMMIT stage without verifying directly at SERVER 0.

이 때, SERVER 0은 자신을 포함한 2f+1개의 서버가 DELEGATE REQUEST를 수신하고, 자신을 포함한 2f+1개인 합의 정족수만큼의 서버로부터 DELEGATE REQUEST 수신이 완료된 경우, 이들을 합의 정족수에 해당하는 합의 노드들로 결정하고 다음 동작을 수행할 수 있다. 이때, SERVER 0은 나머지 서버들로부터 DELEGATE REQUEST를 계속 수신할 수도 있다. At this time, SERVER 0 receives DELEGATE REQUEST from 2f+1 servers including itself, and when receiving DELEGATE REQUEST from servers as many as 2f+1 individual consensus quorum including itself, these are the consensus nodes corresponding to the consensus quorum. can be determined and the following actions can be performed. At this time, SERVER 0 may continue to receive DELEGATE REQUEST from the remaining servers.

SERVER 0은 수신한 2f+1개의 DELEGATE REQUEST 들의 정상적인 제1 트랜잭션인 proposed transaction들에서

Figure 112020051789635-pat00010
개 또는 f+1 개의 노드가 송신한 transaction 집합을 뽑아 제1 트랜잭션을 기초로 제2 트랜잭션인 Prepared transaction을 결정할 수 있다. 이 때, 완성된 SERVER 0은 Prepared transaction에서 합의 노드들에게 상기 합의 노드들을 결정한 결과를 확인시키기 위해 표 1과 같은 제1 비트맵 정보인 bitmap을 만들고 이를 모든 합의 노드들에 제시하여 SERVER 0 이 거짓으로 제1 트랜잭션을 Prepared transaction을 만들지 못하게 할 수 있다.SERVER 0 is a normal first transaction of the received 2f + 1 DELEGATE REQUEST in proposed transactions.
Figure 112020051789635-pat00010
A prepared transaction, which is a second transaction, can be determined based on the first transaction by extracting a set of transactions sent by 1 or f+1 nodes. At this time, the completed SERVER 0 creates a bitmap that is the first bitmap information as shown in Table 1 and presents it to all consensus nodes to confirm the result of determining the consensus nodes to the consensus nodes in the prepared transaction, so that SERVER 0 is false to prevent the first transaction from creating a prepared transaction.

Server bit mapServer bit map 00 1One 22 transaction0 transaction0 1One 00 1One transaction1 transaction1 1One 1One 1One transaction2 transaction2 00 1One 1One transaction3 transaction3 00 ** 00 transaction4transaction4 1One 1One 00 transaction5 transaction5 1One 00 1One transaction6 transaction6 00 1One 1One transaction7 transaction7 00 ** 00 transaction8 transaction8 00 00 ** transaction9 transaction9 1One 1One 1One

표 1은 제2 트랜잭션에 상응하는 제1 비트맵 정보인 Proposed Transaction (More then f+1 servers DELEGATE REQUEST) bitmap의 예를 나타낸 것을 알 수 있다.It can be seen that Table 1 shows an example of the Proposed Transaction (More then f+1 servers DELEGATE REQUEST) bitmap, which is the first bitmap information corresponding to the second transaction.

SERVER 0은 제2 트랜잭션 및 제1 비트맵 정보(Prepared transaction, Proposed Transaction bitmap)를 포함하는 준비(PREPARE) 메시지를 준비할 수 있다. SERVER 0은 준비된 Prepared transaction, Proposed Transaction bitmap 은 최소

Figure 112020051789635-pat00011
개 노드에서 각각 유효성 검사를 통과한 트랜잭션의 집합이며, 제1 비트맵 정보인 Proposed Transaction bitmap과 SERVER 0의 전자서명에 의해 내용을 데이터 전달 중간에 공격자가 내용을 바꿀 수 없는 상태로 만들 수 있다.SERVER 0 may prepare a PREPARE message including the second transaction and first bitmap information (Prepared transaction, Proposed Transaction bitmap). SERVER 0 is prepared transaction, Proposed transaction bitmap is minimum
Figure 112020051789635-pat00011
It is a set of transactions that have passed each validation check in each node, and by the first bitmap information, the Proposed Transaction bitmap and the digital signature of SERVER 0, an attacker can make the contents in a state that cannot be changed in the middle of data transmission.

예를 들어, SERVER 0은 클라이언트로부터 발생한 10개의 트랜잭션이 4개의 서버에 표 2와 같이 배포된 상황을 가정할 수 있다.For example, SERVER 0 can assume a situation in which 10 transactions originating from the client are distributed to 4 servers as shown in Table 2.

표 2는 각 서버가 수신한 client 의 유효한 transaction requests 를 나타낸 것을 알 수 있다.It can be seen that Table 2 shows the valid transaction requests of the clients received by each server.

number of transactionnumber of transactions server0 server0 0, 1, 4, 5, 90, 1, 4, 5, 9 server1 server1 1, 2, 3, 4, 6, 7, 91, 2, 3, 4, 6, 7, 9 server2 server2 0, 1, 2, 5, 6, 8, 90, 1, 2, 5, 6, 8, 9 server3 server3 0, 2, 3, 5, 70, 2, 3, 5, 7

이 때, SERVER 3은 passive 상태이므로 아무 동작도 하지 않는다고 가정하면, SERVER 0은 SERVER (0, 1, 2)들이 제안한 transaction 중

Figure 112020051789635-pat00012
이상이 (이 예의 경우
Figure 112020051789635-pat00013
로 가정) 동시에 DELEGATE REQUEST 한 트랜잭션 번호는 표 3과 같이 "0,1,2,4,5,6,9"가 될 수 있다.At this time, assuming that SERVER 3 is in a passive state and does not perform any action, SERVER 0 is among the transactions proposed by SERVERs (0, 1, 2).
Figure 112020051789635-pat00012
More than that (in this example
Figure 112020051789635-pat00013
) The transaction number that has been DELEGATE REQUEST at the same time can be "0,1,2,4,5,6,9" as shown in Table 3.

number of transactionnumber of transactions Prepared transactionPrepared transaction 0, 1, 2, 4, 5, 6, 90, 1, 2, 4, 5, 6, 9

표 3은 제2 트랜잭션인 Prepared transaction의 예를 나타낸 것을 알 수 있다.It can be seen that Table 3 shows an example of the prepared transaction, which is the second transaction.

표 3을 제1 비트맵 정보인 bitmap으로 표현한 것이 상기 표 1과 같다. 표 1에서 '1'은 서버가 해당 트랜잭션을 DELEGATE REQUEST 한 것을 표현하며, '0'은 해당 서버가 제안하지 않는 트랜잭션을 나타낼 수 있다. 각 행은 하나의 트랜잭션을 나타낼 수 있다. 표 1의 열의 개수는 2f+1 이 될 수 있다. 각 행의 '1'인 비트의 합이

Figure 112020051789635-pat00014
이상인 것들은 서버들 중에
Figure 112020051789635-pat00015
개 이상이 동시에 DELEGATE REQUEST 한 것을 의미하며,
Figure 112020051789635-pat00016
미만인 비트의 트랜잭션은 동의를 얻는데 실패한 것을 표시하는 것을 알 수 있다. DELEGATE REQUEST 서버는 최소 한 개의 트랜잭션을 제안해야 유효한 DELEGATE REQUEST 서버로 카운트 될 수 있다. 표 1의 * 표시는
Figure 112020051789635-pat00017
개 동의를 받은 트랜잭션에 대해서만 '1'을 표시 할 때는 '0'으로 표시할 수 있고, DELEGATE REQUEST 서버가 최소 한 개 이상의 트랜잭션을 포함해야 한다고 제한 하는 경우에는 '1'로 표시 하는 방법을 사용할 수 있다.Table 3 is expressed as a bitmap, which is the first bitmap information, as shown in Table 1. In Table 1, '1' indicates that the server has requested a corresponding transaction, and '0' may indicate a transaction that the server does not propose. Each row can represent one transaction. The number of columns in Table 1 may be 2f+1. The sum of bits that is '1' in each row is
Figure 112020051789635-pat00014
The above are among the servers
Figure 112020051789635-pat00015
It means that more than one DELEGATE REQUEST was made at the same time,
Figure 112020051789635-pat00016
It can be seen that a transaction with less than a bit is indicative of a failure to obtain consent. A DELEGATE REQUEST server must propose at least one transaction to be counted as a valid DELEGATE REQUEST server. * in Table 1 indicates
Figure 112020051789635-pat00017
When '1' is displayed only for transactions for which consent has been obtained, it can be displayed as '0'. have.

PREPARE 단계는 DELEGATE REQUEST에서

Figure 112020051789635-pat00018
이상의 노드들이 동의를 획득한 결과인 제2 트랜잭션에 대해 합의 정족수의 합의 노드들을 결정한 결과에 대한 동의를 받기 위한 메시지(PREPARE 블록)를 각 합의 노드들(SERVER 0~2)로 전달할 수 있다. 합의가 완료된 401 블록에는 402 블록 합의체로 선택되었던 노드들의 pki 와 Qi가 기록되어 있다. 따라서 SERVER 0은 선택된 합의 정족수의 pki를 수학식 8과 같이 합쳐 통합 공개키 Pk를 생성하고, 수학식 9과 같이 Qi도 합쳐 Q를 생성할 수 있다.The PREPARE step is in DELEGATE REQUEST.
Figure 112020051789635-pat00018
A message (PREPARE block) for obtaining agreement on the result of determining the consensus nodes of the consensus quorum for the second transaction, which is the result of obtaining consent by the above nodes, may be transmitted to each consensus node (SERVER 0 to 2). The pk i and Q i of the nodes selected as the 402 block consensus are recorded in the 401 block where the consensus is completed. Accordingly, SERVER 0 may generate a unified public key Pk by combining pk i of the selected quorum as shown in Equation 8, and may also generate Q by combining Q i as shown in Equation 9.

Figure 112020051789635-pat00019
Figure 112020051789635-pat00019

Figure 112020051789635-pat00020
Figure 112020051789635-pat00020

Figure 112020051789635-pat00021
Figure 112020051789635-pat00021

수학식 8과 9에서 quorum은 2f+1개의 합의 정족수에 포함된 노드를 나타낸 것을 알 수 있다. 마지막으로, SERVER 0은 수학식 10과 같이 r을 생성하는데 이 때 Msg는 앞에서 생성된 제2 트랜잭션인 prepared transaction 을 포함하는 완전한 블록의 헤드 값이 될 수 있다. PREPARE 블록은 일반적인 블록체인과 같이 트랜잭션을 포함한 완전한 블록이 되어야 한다.In Equations 8 and 9, it can be seen that quorum represents a node included in the quorum of 2f+1 sums. Finally, SERVER 0 generates r as shown in Equation 10. In this case, Msg may be the head value of a complete block including the previously generated second transaction prepared transaction. The PREPARE block must be a complete block including transactions, just like a general blockchain.

이 때, SERVER 0은 준비한 PREPARE 블록에 대해 합의 정족수 모두가 서명한 다중서명을 통해 추후 블록의 한 비트라도 변경 또는 추가하지 못하게 할 수 있다.At this time, SERVER 0 can prevent changing or adding even one bit of a later block through multi-signature signed by all of the quorum of consensus for the prepared PREPARE block.

또한, SERVER 0은 2f+1개 노드가 각각 누구인지 확인하기 위해 제2 비트맵 정보인 delegate server bitmap을 작성하여 같이 보낼 수 있다. (DELEGATE REQUEST가 최소 한 개 이상의 트랜잭션을 반드시 포함하도록 제한할 경우, 제1 비트맵 정보 Proposed Transaction bitmap 에서 제2 비트맵 정보 delegate server bitmap을 계산 할 수도 있다.)In addition, SERVER 0 can create and send the delegate server bitmap, which is the second bitmap information, to check who each of the 2f+1 nodes are. (If DELEGATE REQUEST is limited to include at least one transaction, the second bitmap information delegate server bitmap may be calculated from the first bitmap information Proposed Transaction bitmap.)

따라서, SERVER 0은 제2 트랜잭션, 제1 비트맵 정보, 제2 비트맵 정보, 공개키 및 해시값 r(prepared transaction, Proposed Transaction bitmap, delegate server bitmap, Pk, r)을 포함한 준비 메시지에 자신의 전자서명을 추가하여 PREPARE 블록을 만들고 이를 다중서명을 수행할 SERVER(0,1,2)에 전달할 수 있다.Accordingly, SERVER 0 is the second transaction, the first bitmap information, the second bitmap information, the public key and the hash value r (prepared transaction, Proposed Transaction bitmap, delegate server bitmap, Pk, r) in the prepared message including its own You can create a PREPARE block by adding a digital signature and deliver it to the SERVER(0,1,2) to perform multi-signature.

COMMIT 단계는 합의 정족수에 포함된 각 노드는 SERVER 0의 준비(PREPARE) 메시지에 대한 동의 표현으로 전자서명을 포함하는 동의(COMMIT) 메시지를 생성하고, 동의 메시지를 수신한 SERVER 0은 각 합의 노드들의 전자 서명들을 다중 서명으로 통합하고 다중 서명을 검증할 수 있다.The COMMIT step is Each node included in the consensus quorum generates a COMMIT message including a digital signature as an expression of agreement to the PREPARE message of SERVER 0, and SERVER 0, which received the agreement message, records the digital signatures of each consensus node. It can integrate into multi-signature and verify multi-signature.

SERVER 0은 전자서명을 다중서명으로 통합(aggregation)하는 과정을 수행할 수 있다. SERVER 0은 합의 정족수에 포함된 2f+1개 서버 모두의 동의를 다중 서명으로 받을 수 있다.SERVER 0 may perform a process of aggregating digital signatures into multi-signature. SERVER 0 can receive the consent of all 2f+1 servers included in the consensus quorum by multi-signature.

PREPARE 블록을 수신한 각 SERVER(0,1,2)는 SERVER 0 이 생성한 PREPARE 블록의 이상 유무를 검사하기 위해 SERVER 0 이 생성한 전자서명의 유효성 검사 결과가 참인 경우 아래 동작을 수행하고, 거짓인 경우에는 이를 다른 노드에 알려 empty agreement를 진행하는 등의 액션을 수행할 수 있다. Each SERVER(0,1,2) that has received the PREPARE block performs the following operation if the validation result of the digital signature generated by SERVER 0 is true to check whether the PREPARE block generated by SERVER 0 is abnormal. In the case of , an action such as an empty agreement can be performed by notifying other nodes of this.

또한, 각 SERVER(0,1,2)는 SERVER 0 이 생성한 r의 유효성을 검증하기 위해 제2 비트맵 정보 delegate server bitmap이 2f+1개 이상의 '1'이 있는지 또는 제1 비트맵 정보 Proposed Transaction bitmap의 각 열이 최소 한 개의 '1'이 표시 되어 있고, 이러한 열의 개수가 2f+1이 되는지 확인할 수 있다.In addition, in order to verify the validity of r generated by SERVER 0, each SERVER(0,1,2) determines whether the second bitmap information delegate server bitmap has 2f+1 or more '1s' or the first bitmap information Proposed At least one '1' is marked in each column of the transaction bitmap, and it can be checked whether the number of these columns becomes 2f+1.

이 때, 각 SERVER(0,1,2)는 상기 결과가 참인 경우 401 블록에 기록된 정보에서 각 bit에 해당하는 서버의 pki 와 Qi를 추출할 수 있다.At this time, each SERVER(0,1,2) may extract pk i and Q i of the server corresponding to each bit from the information recorded in block 401 when the above result is true.

이 때, 각 SERVER(0,1,2)는 수학식 6와 7을 이용하여 Pk, Q 를 생성하고 수학식 10을 통해 r'를 생성할 수 있다.In this case, each SERVER(0,1,2) may generate Pk and Q using Equations 6 and 7 and generate r' through Equation 10.

이 때, 각 SERVER(0,1,2)는 생성된 r'과 SERVER 0 이 전달한 r을 비교하여 동일한 값일 경우 다음 동작을 수행할 수 있다.At this time, each SERVER(0,1,2) compares the generated r' with the r transmitted by SERVER 0, and if the value is the same, the following operation can be performed.

이 때, 각 SERVER(0,1,2)는 만약 두 값이 동일하지 않을 경우, SERVER 0 이 Pk, Q, 또는 Msg를 속인 것이므로 이를 다른 노드에 알려 empty agreement를 진행하는 등의 액션을 수행할 수 있다.At this time, if each SERVER(0,1,2) is not the same, SERVER 0 is cheating Pk, Q, or Msg. can

이 때, 각 SERVER(0,1,2)는 SERVER 0 이 보낸 PREPARE 블록에 포함된 제2 트랜잭션 Prepared transaction과 제1 비트맵 정보 Proposed Transaction bitmap을 통해 각 트랜잭션이

Figure 112020051789635-pat00022
개의 동의를 얻은 transaction들만 포함하고 있는지 검사할 수 있다.At this time, each SERVER(0,1,2) transmits the second transaction prepared in the PREPARE block sent by SERVER 0 and each transaction through the first bitmap information Proposed Transaction bitmap.
Figure 112020051789635-pat00022
You can check whether only transactions for which consent is obtained are included.

예를 들어, 표 3은 각 서버가 보낸 제2 트랜잭션 Prepared transaction에 대한 정보이고, 표 1은 transaction을 제안한 서버에 대한 Proposed Transaction bitmap이라 할 때, 표 3에 포함된 transaction 과 일치하는 행이 표 1에 있고, 해당 행에 있는 모든 '1'의 개수의 합이

Figure 112020051789635-pat00023
이상(본 예에서는 2개) 일 경우는 유효성 검사 성공,
Figure 112020051789635-pat00024
미만이 하나라도 포함된 경우 유효성 검사 실패가 될 수 있다. 예를 들어 표 3의 Prepared transaction에 transaction (3,7,8) 중 하나가 포함되어 있을 경우
Figure 112020051789635-pat00025
개의 서버가 이를 제안한 것이 아니므로 유효성 검사 실패가 될 수 있다.For example, when Table 3 is information on the prepared transaction for the second transaction sent by each server, and Table 1 is the Proposed Transaction bitmap for the server that proposed the transaction, the row matching the transaction included in Table 3 is Table 1 , and the sum of the counts of all '1's in the row is
Figure 112020051789635-pat00023
If it is more than (two in this example), validation is successful,
Figure 112020051789635-pat00024
If any less than one is included, it may be a validation failure. For example, if Prepared transaction in Table 3 contains one of transaction (3,7,8)
Figure 112020051789635-pat00025
This could be a validation failure as the server did not suggest this.

이 때, 각 SERVER(0,1,2)는 상기 검사가 성공인 경우, 자신이 제안한 transaction이 아닌 부분의 bitmap에 '1' 이 표시되어 있는지 검사 하기 각 서버에 해당하는 열에 자신이 제안한 transaction들에만 '1'이 표시되어 있는지 검사할 수 있다.At this time, if the check is successful, each SERVER(0,1,2) checks whether '1' is displayed in the bitmap of the part other than the transaction it proposes. You can check if only '1' is displayed.

이 때, 각 SERVER(0,1,2)는 자신이 제안하지 않은 transaction에 '1'이 표시 되어 있는 경우 유효성 검사 실패가 된다. 예를 들어, 표 3에 transaction 3이 포함되어 있고 표 1의 4번째 행에 SERVER 0 또는 SERVER 2 에 해당하는 비트가 '1'로 표시되어 있는 경우 SERVER 0 이 거짓말을 한 것이므로 SERVER 0 또는 SERVER 2의 유효성 검사가 실패하게 될 수 있다. 또한, 정상적인 Proposed Transaction bitmap에 대해 SERVER 1 또는 SERVER 2로부터 주어진 시간 안에 다중 서명을 수신하지 못하는 경우에 유효성 검사 실패가 발생할 수 있다. 이상 유효성 검사 결과 하나라도 실패하는 경우 empty agreement를 시작할 수 있고, 검사 결과가 성공인 경우 다음 단계를 진행할 수 있다.At this time, each SERVER(0,1,2) will fail validation if '1' is displayed in the transaction not proposed by it. For example, if Table 3 contains transaction 3 and the bit corresponding to SERVER 0 or SERVER 2 is marked as '1' in the 4th row of Table 1, SERVER 0 or SERVER 2 is a lie. validation may fail. Also, validation failure may occur if multiple signatures are not received within a given time from SERVER 1 or SERVER 2 for a normal Proposed Transaction bitmap. An empty agreement can be initiated when any one of the abnormal validation results fails, and when the check result is successful, the next step can be performed.

이 때, 각 SERVER(0,1,2)은 상기 모든 유효성 검증 결과가 참인 경우 SERVER 0으로부터 전달 받은 r, 각 서버가 비밀로 가지고 있는 ki, ski 를 도 8의 식(

Figure 112020051789635-pat00026
)에 적용하여 si를 생성하고 이를 포함한 메시지에 각 서버의 전자서명을 추가하여 SERVER 0에게 전달할 수 있다. At this time, each SERVER(0,1,2) represents r delivered from SERVER 0 when all the validation results are true, and k i , sk i that each server has as a secret in the equation (
Figure 112020051789635-pat00026
) to generate s i , and add each server's digital signature to the message including it and deliver it to SERVER 0.

si를 전달받은 SERVER 0은 각 서버의 전자서명을 바로 확인하지 않고, 도 8과같이 합쳐진 다중 서명(aggregated multi-signature)을 먼저 검증할 수 있다. 검증 결과가 거짓인 경우에 중간 공격자에 의한 서명 훼손 여부를 확인하기 위해 거짓 서명을 찾고, 해당 서버의 전자서명 확인 절차를 수행 할 수도 있다.SERVER 0 that has received s i may first verify the aggregated multi-signature as shown in FIG. 8 without immediately verifying the digital signature of each server. If the verification result is false, it is also possible to find a false signature to check whether the signature is damaged by a middle-attacker, and perform the digital signature verification procedure of the server.

SERVER 0에서 생성된 시그니처 (r,S)에 대해 verify 결과가 거짓이고 SERVER 0이 거짓 서명을 생성하지 않았다면, SERVER 0은 거짓 si를 전달한 서버(1~2)를 찾을 수 있다.If the verify result for the signature (r,S) generated by SERVER 0 is false and SERVER 0 does not generate a false signature, SERVER 0 can find the servers (1~2) that delivered false s i .

SERVER 0이 2f+1개의 모든 서버로부터 si 수신을 완료한 경우 S를 생성하고 도 8의 verify 검사를 수행하여 이 결과가 참인 경우 (Prepared transaction, Pk, (r, S))를 포함한 메시지를 REPLY 단계에서 모든 노드에게 브로드케스팅하여 합의를 완료할 수 있다.When SERVER 0 has completed receiving s i from all 2f+1 servers, it generates S and performs the verify check of FIG. 8 and returns a message including (Prepared transaction, Pk, (r, S)) when the result is true In the REPLY phase, consensus can be completed by broadcasting to all nodes.

또한, 합의 과정에서 발생하는 오류에 대해 다음과 같은 처리를 할 수 있다. DELEGATE REQUEST, PREPARE, COMMIT 단계는 각각 시작 시점에 타이머를 설정하고, 타이머가 끝나기 전에 다음 단계가 시작되지 않을 경우 오류 처리가 발생할 수 있다. 본 발명의 일실시예에 따른 노드들은 transaction을 하나도 포함하지 않은 블록에 대해 합의하는 것을 empty agreement라 할 수 있다. empty agreement는 유효한 transaction을 포함하고 있지는 않지만 합의체를 바꾸는 효과가 있을 수 있다.In addition, the following processing can be done for errors that occur during the consensus process. Each of the DELEGATE REQUEST, PREPARE, and COMMIT steps sets a timer at the start time, and if the next step does not start before the timer expires, error handling may occur. An empty agreement may be referred to as an empty agreement for nodes according to an embodiment of the present invention to agree on a block that does not contain any transactions. An empty agreement does not contain a valid transaction, but may have the effect of changing the agreement.

본 발명의 일실시예에 따른 노드들은 합의 노드들이 고정되어 있어 합의에 실패하는 경우 이를 해결하기 위해 view change를 수행할 수 있다. 하지만, 본 발명의 일실시예에 따른 노드들은 합의 노드들이 고정되어 있지 않으므로 합의에 실패하는 경우 view change보다 합의 노드를 다시 구성할 수도 있다.Nodes according to an embodiment of the present invention may perform view change in order to resolve the failure of consensus because consensus nodes are fixed. However, since consensus nodes are not fixed in nodes according to an embodiment of the present invention, when consensus fails, a consensus node may be reconfigured rather than view change.

본 발명의 일실시예에 따른 노드들은 합의 실패 시 믿을 수 없는 노드들에게 다시 합의를 시키는 것보다 transaction을 포함하지 않은 블록을 만드는 것이 위험을 줄이면서도 프로토콜의 복잡도를 감소시킬 수 있다.When the nodes according to an embodiment of the present invention fail to agree, creating a block that does not include a transaction can reduce the risk and reduce the complexity of the protocol, rather than re-consenting the untrusted nodes.

empty agreement 는 최소 f+α+1의 동의를 통해 진행될 수 있다. empty agreement 는 네트워크가 분절될 경우 각각 네트워크에서 복수개의 empty agreement 블록이 생성되는 것을 방지할 수 있다. 이를 위해 합의 정족수에 포함된 합의 노드들은 한 블록 합의 시간 동안 바뀌지 않도록 설정될 수도 있다.An empty agreement can proceed through agreement of at least f+α+1. Empty agreement can prevent the creation of multiple empty agreement blocks in each network when the network is segmented. For this, the consensus nodes included in the consensus quorum may be set not to change during one block consensus time.

DELEGATE REQUEST 단계의 오류 처리는 402 블록의 SERVER 0은 401 블록 합의 결과를 REPLY 받으면 DELEGATE REQUEST 타이머를 시작하고 402 블록 합의가 시작된다. SERVER 0의 DELEGATE REQUEST 타이머가 종료될 때까지 합의 정족수 2f+1 개의 정상적인 DELEGATE REQUEST를 받지 못한 경우에, 2f+1 미만의 request를 수신하였다는 error message를 포함하여 합의 노드들 중에 f+α+1 이상에 의해 empty agreement를 수행할 수 있다. 또한 각 서버들(SERVER 0~3)은 401 블록의 합의 결과를 REPLY 받은 후 자신의 DELEGATE REQUEST 패킷을 전달하는 동시에 자신의 DELEGATE REQUEST 타이머를 시작할 수 있다. 각 서버는 자신의 DELEGATE REQUEST 타이머가 끝날 때까지 SERVER 0 이 PREPARE를 하지 않는 경우 SERVER 0 이 가진 coupon을 제외한 나머지에서 가장 작은 coupon을 가진 서버를 새로운 SERVER 0으로 선언하고 empty agreement를 시도할 수 있다. 이 경우 블록에는 해당 오류에 대한 로그를 포함할 수 있다.In the error handling of the DELEGATE REQUEST phase, when SERVER 0 of block 402 receives the result of the 401 block consensus, it starts the DELEGATE REQUEST timer and starts the 402 block consensus. If the normal DELEGATE REQUEST of 2f+1 consensus quorum is not received until the DELEGATE REQUEST timer of SERVER 0 expires, f+α+1 among consensus nodes including an error message indicating that a request less than 2f+1 has been received. By the above, empty agreement can be performed. In addition, each server (SERVER 0~3) can start its own DELEGATE REQUEST timer while transmitting its own DELEGATE REQUEST packet after receiving the REPLY result of the 401 block consensus. If SERVER 0 does not PREPARE until its own DELEGATE REQUEST timer expires, each server may declare the server with the smallest coupon as SERVER 0 and attempt empty agreement except for the coupon possessed by SERVER 0. In this case, the block may contain a log of that error.

PREPARE 단계의 오류 처리는 SERVER 0 이 첫 번째 PREPARE 패킷을 전달하면서 PREPARE 타이머를 시작할 수 있다. SERVER 0은 PREPARE 타이머가 종료되기 전에 합의 정족수 2f+1 개의 모든 서버로부터 si을 받지 못한 경우 si를 송신하지 않은 서버를 블랙리스트에 추가하고 합의 정족수에서 블랙리스트를 제외한 f+α+1 이상의 합의에 의해 empty agreement를 진행할 수 있다. Error handling in the PREPARE phase can start the PREPARE timer while SERVER 0 delivers the first PREPARE packet. If SERVER 0 does not receive si from all servers with a consensus quorum of 2f+1 before the PREPARE timer expires, the server that did not transmit si is added to the blacklist, and excluding the blacklist from the consensus quorum, the An empty agreement can be proceeded by

COMMIT 단계의 오류 처리는 SERVER 0 이 통합한 서명이 verify 되지 않는 경우에 수신한 si 중 문제 있는 서버를 찾아 블랙리스트로 추가하고 합의 정족수에서 해당 블랙리스트를 제외한 f+α+1 이상의 노드 합의에 의해 empty agreement를 진행할 수 있다. 또한, 합의 정족수에 해당하는 서버들은 각각 SERVER 0의 PREPARE 패킷을 수신하면 COMMIT 타이머를 시작한다. COMMIT 타이머가 종료되기 전에 SERVER 0 이 REPLY를 시작하지 않는 경우 SERVER 0를 새로운 SERVER 0으로 교체하고 기존 SERVER 0을 제외한 f+α+1 개 이상의 노드 합의에 의해 empty agreement를 진행할 수 있다.Error handling in the COMMIT stage is when the signature integrated by SERVER 0 is not verified, finds a problematic server among the received si and adds it to the blacklist, and by consensus of the nodes above f+α+1 excluding the blacklist from the quorum of the consensus You can proceed with an empty agreement. In addition, each server corresponding to the consensus quorum starts a COMMIT timer upon receiving the PREPARE packet of SERVER 0. If SERVER 0 does not start REPLY before the COMMIT timer expires, SERVER 0 can be replaced with a new SERVER 0 and empty agreement can be proceeded by consensus of more than f+α+1 nodes except for the existing SERVER 0.

이상에서 합의를 실패하는 경우 empty agreement이외에 view change를 통해서 다시 합의를 하는 방법이 포함될 수도 있다.In case the agreement fails in the above, other than empty agreement, a method of reconsenting through view change may be included.

도 10은 본 발명의 일실시예에 따른 다중 서명의 트리를 나타낸 도면이다. 10 is a diagram illustrating a multi-signature tree according to an embodiment of the present invention.

도 10을 참조하면, 본 발명의 일실시예에 따른 COMMIT 단계에서 수행되는 다중 서명의 생성과정을 나타낸 것을 알 수 있다. SERVER 0 은 잘못된 다중 서명 조각 si를 찾기 위해서, EC-schnorr 다중 서명의 특성에 의해 도 10과 같이 임의로 두 개 이상의 서명을 결합하고 결합된 서명의 이상 여부를 확인 할 수 있다.Referring to FIG. 10, it can be seen that the multi-signature generation process performed in the COMMIT step according to an embodiment of the present invention is shown. SERVER 0 can arbitrarily combine two or more signatures as shown in FIG. 10 according to the characteristics of EC-schnorr multi-signature in order to find an incorrect multi-signature fragment s i and check whether the combined signature is abnormal.

Figure 112020051789635-pat00027
Figure 112020051789635-pat00027

따라서, 수학식 11

Figure 112020051789635-pat00028
을 수행할 때 모든 si 를 무조건 더하는 것이 아니라 도 10과 같이 임의의 두 값을 더하고 이 결과 값을 다시 둘씩 짝지어 더하는 과정을 반복하여 트리(tree)로 구성할 수 있다. 이 때, 트리의 꼭지점이 각각 도 8의 S, Q, Pk 에 상응할 수 있다. 여기서 S는 schnorr 다중서명 결과값 중 일부이며, Q 는 Qi 조각을 합친 값이고, Pk는 합쳐진 다중서명의 공개키이다.Therefore, Equation 11
Figure 112020051789635-pat00028
When performing , instead of unconditionally adding all s i , as shown in FIG. 10 , the process of adding two arbitrary values and pairing and adding the resulting values may be repeated to form a tree. In this case, the vertices of the tree may correspond to S, Q, and Pk of FIG. 8 , respectively. Here, S is a part of the result of schnorr multi-signature, Q is the sum of Q i fragments, and Pk is the public key of the combined multi-signature.

예를 들어, 다중 서명의 검증 과정은 최종 서명 S 검증에 문제가 발생하는 경우, 트리의 한 단계 밑에 있는 Sp0 와 Sp1을 검사 하고, 만약 Sp0에서 검사 결과가 실패를 하는 경우, S0 또는 S1 둘 중 하나의 부분 서명이 문제가 있는 것이므로 해당 서버의 전자서명 만 검사하여 검사 시간을 줄일 수 있다.For example, in the multi-signature verification process, if a problem occurs in the final signature S verification, Sp0 and Sp1 below one level of the tree are checked, and if the check result in Sp0 fails, S 0 or S 1 Since one of the two partial signatures has a problem, the inspection time can be reduced by examining only the digital signature of the corresponding server.

만약 1개의 서버가 거짓 전자 서명인 가짜 부분 서명을 보낸 경우, 부분 서명을 트리 형태로 통합하고 검증하는 경우, 트리를 통한 부분 서명 검사와 한번의 전자서명 검사로 가짜 서명을 보낸 서버를 찾을 수 있다.If one server sends a fake partial signature, which is a false digital signature, if the partial signatures are integrated and verified in a tree form, the server that sent the fake signature can be found through partial signature inspection through the tree and one digital signature inspection .

도 11은 본 발명의 일실시예에 따른 비잔틴 노드 분포를 나타낸 그래프이다. 도 12는 본 발명의 일실시예에 따른 다양한 환경의 비잔틴 노드 분포를 나타낸 그래프이다.11 is a graph showing a Byzantine node distribution according to an embodiment of the present invention. 12 is a graph showing the distribution of Byzantine nodes in various environments according to an embodiment of the present invention.

도 11을 참조하면, 노드의 모수가 충분히 크다고 가정하고 임계치 비교에 의해 임의로 노드를 선택하면 선택된 노드의 수는 정규 분포를 가질 수 있다. 이 분포의 평균(μ)을 3f+1 이라 하면 도 11과 같은 확률적 특성을 계산 할 수 있다. 도 11은 모수가 10,000개, 비잔틴 노드 25%를 포함한 경우를 가정하고 계산된 결과를 나타낸 것을 알 수 있다. 선택될 합의체 평균 개수를 10에서 1,000까지 x 축에서 변경할 때 각 조건의 노드 수를 y축에 표시한 것을 알 수 있다. 도 11은 3개의 선이 그려져 있는 것을 알 수 있다. Min node선은 평균 x개 노드를 선택될 때 y 개 이하 노드가 선택될 확률이 1.0000e-6 이하인 선인 것을 알 수 있다. 2f+1선은 노드가 평균 x 개 선택될 때 y 축에 2f+1개를 표시한 선인 것을 알 수 있다. Max Bzt선은 평균 x 개 노드를 선택할 때 y 개 이상의 비잔틴 노드가 선택될 확률이 3.1710e-17 이하인 선인 것을 알 수 있다. Referring to FIG. 11 , if it is assumed that the parameters of the nodes are sufficiently large and a node is arbitrarily selected by threshold comparison, the number of selected nodes may have a normal distribution. If the average (μ) of this distribution is 3f+1, the probabilistic characteristic as shown in FIG. 11 can be calculated. It can be seen that FIG. 11 shows the calculated results assuming that 10,000 parameters and 25% of Byzantine nodes are included. It can be seen that the number of nodes in each condition is indicated on the y-axis when the average number of consensus agreements to be selected is changed from 10 to 1,000 on the x-axis. 11 shows that three lines are drawn. It can be seen that the min node line is a line with a probability of 1.0000e-6 or less of selecting y or less nodes when an average of x nodes is selected. It can be seen that the 2f+1 line is a line marked with 2f+1 on the y-axis when an average of x nodes is selected. It can be seen that the Max Bzt line is a line whose probability of selecting y or more Byzantine nodes is 3.1710e-17 or less when the average x nodes are selected.

도 11에서 교차점 3개는 노드 선택 기준이 되는 중요한 의미를 가질 수 있다. 도 11의 2f+1 > bzt 교차점은 25% 비잔틴 환경에서 합의체 개수의 평균을 101개 미만으로 설정하는 경우 비잔틴 노드만으로 구성된 합의 정족수가 구성될 확률이 있을 수 있다. 따라서 합의 정족수를 2f+1로 고정하는 경우 합의체 개수의 평균을 101개 이상으로 구성하는 것을 알 수 있다. In FIG. 11 , three intersections may have an important meaning as a node selection criterion. At the intersection of 2f+1 > bzt in FIG. 11 , when the average of the number of consensuses is set to less than 101 in a 25% Byzantine environment, there may be a probability that a quorum of consensus consisting only of Byzantine nodes will be formed. Therefore, when the quorum of the consensus is fixed at 2f+1, it can be seen that the average of the number of consensus bodies is 101 or more.

도 11의 min > bzt 교차점은 합의체 개수의 평균을 x개로 선택할 때 선택될 최소 노드값이 최대 비잔틴 노드보다 많아지는 시작점을 의미할 수 있다. The min > bzt intersection in FIG. 11 may mean a starting point at which the minimum node value to be selected becomes greater than the maximum Byzantine node when the average of the number of consensuses is selected as x.

도 11의 min > 2f+1 교차점은 합의체를 평균 x개 선택하는 경우 합의체의 최소 노드의 수가 2f+1 개 이하일 확률이 1.0000e-6 이하를 보장하는 시작점인 것을 알 수 있다. 네트워크에서 노드 장애나 패킷 전달 문제가 없다고 가정하는 경우, 합의체 개수의 평균을 이 교차점 이상으로 설정하면 매 블록 최소 합의 정족수 2f+1 이상을 확보 할 수 있다. 합의체가 2f+1 이하가 되는 경우 empty agreement를 수행할 수 있다.It can be seen that the min > 2f+1 intersection in FIG. 11 is a starting point that ensures that the probability that the minimum number of nodes of the consensus is 2f+1 or less is 1.0000e-6 or less when an average of x consensus is selected. Assuming that there are no node failures or packet forwarding problems in the network, if the average of the number of consensuses is set above this intersection point, it is possible to secure at least 2f+1 of the minimum consensus quorum for every block. If the consensus is less than 2f+1, empty agreement can be performed.

이 때, PREPARE 단계에서 f+1 의 동의를 받고, COMMIT 단계에서 2f+1 의 동의를 받아야 합의가 완료되는 경우, PREPARE 단계에서 f+1 의 동의를 받는 이유는 비잔틴이 최대 33%이기 때문에 f+1 개의 동의를 받으면 최소 하나 이상의 정상 노드가 포함되어야 하기 때문에 비잔틴 만으로는 절대로 합의를 할 수 없기 때문이다. COMMIT 단계에서 2f+1 동의는 이중 합의를 방지하기 위해서다. At this time, if the agreement of f+1 is obtained in the PREPARE stage and 2f+1 consent is obtained in the COMMIT stage to complete the agreement, the reason for obtaining the consent of f+1 in the PREPARE stage is that Byzantine is up to 33% f This is because, when +1 consent is obtained, at least one normal node must be included, so byzantine alone can never agree. 2f+1 consent in the COMMIT phase is to prevent double consensus.

도 12를 참조하면, 비잔틴 노드가 20% 에서 35%까지 변화할 때 선택될 수 있는 비잔틴 노드의 최대값, f+1, 2f+1, 3f+1, 그리고 min node를 같이 비교한 결과를 나타낸 것을 알 수 있다. 도 11에서 x축은 임의로 선택되는 합의체 평균 개수를 의미하며, y 축은 각 조건에 해당하는 노드 수를 의미할 수 있다. 20% 비잔틴 노드를 포함한 환경에서 x 가 약 800개 이상이면 발생 가능한 비잔틴 최대 값이 항상 f+1 보다 작은 값을 가질 수 있다. 따라서 최대 비잔틴 노드 수가 f 이하를 보장하는 경우에는 SCHEME 1 또는 SCHEME 2 를 사용할 수 있다는 것을 알 수 있다.12, it shows the result of comparing the maximum value of the Byzantine node that can be selected when the Byzantine node changes from 20% to 35%, f+1, 2f+1, 3f+1, and min node. it can be seen that 11 , the x-axis may mean the average number of randomly selected consensus bodies, and the y-axis may mean the number of nodes corresponding to each condition. If x is about 800 or more in an environment including 20% Byzantine nodes, the maximum possible Byzantine value can always have a value smaller than f+1. Therefore, it can be seen that SCHEME 1 or SCHEME 2 can be used when the maximum number of Byzantine nodes is guaranteed to be less than or equal to f.

도 12에서 x 가 약 200 개 이상에서는 비잔틴 노드의 비율이 25%~35%까지 모든 구간에서 최대 비잔틴 노드 수는 항상 2f 보다 작고 f 보다 크기 때문에 PREPARE 단계에서 f+1 동의가 부족하므로 f+1 이상의 동의를 받아야 할 수 있다. 하지만 상기에서 설명한 것과 같이 이 경우 finality가 깨질 수도 있다.In Fig. 12, when x is about 200 or more, the ratio of Byzantine nodes ranges from 25% to 35%. In all sections, the maximum number of Byzantine nodes is always smaller than 2f and larger than f. More consent may be required. However, as described above, finality may be broken in this case.

도 13은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.13 is a diagram illustrating a computer system according to an embodiment of the present invention.

도 13을 참조하면, 본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치 및 블록체인의 모든 노드들은 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1100)에서 구현될 수 있다. 도 13에 도시된 바와 같이, 컴퓨터 시스템(1100)은 버스(1120)를 통하여 서로 통신하는 하나 이상의 프로세서(1110), 메모리(1130), 사용자 인터페이스 입력 장치(1140), 사용자 인터페이스 출력 장치(1150) 및 스토리지(1160)를 포함할 수 있다. 또한, 컴퓨터 시스템(1100)은 네트워크(1180)에 연결되는 네트워크 인터페이스(1170)를 더 포함할 수 있다. 프로세서(1110)는 중앙 처리 장치 또는 메모리(1130)나 스토리지(1160)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1130) 및 스토리지(1160)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(1131)이나 RAM(1132)을 포함할 수 있다.Referring to FIG. 13 , the decentralized Byzantine error-tolerant distributed consensus apparatus and all nodes of the block chain according to an embodiment of the present invention may be implemented in a computer system 1100 such as a computer-readable recording medium. As shown in FIG. 13 , the computer system 1100 includes one or more processors 1110 , a memory 1130 , a user interface input device 1140 , and a user interface output device 1150 that communicate with each other via a bus 1120 . and storage 1160 . In addition, the computer system 1100 may further include a network interface 1170 coupled to the network 1180 . The processor 1110 may be a central processing unit or a semiconductor device that executes processing instructions stored in the memory 1130 or the storage 1160 . The memory 1130 and the storage 1160 may be various types of volatile or non-volatile storage media. For example, the memory may include a ROM 1131 or a RAM 1132 .

본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치는 하나 이상의 프로세서(1110); 및 상기 하나 이상의 프로세서(1110)에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리(1130)를 포함하고, 상기 적어도 하나 이상의 프로그램은 블록체인의 합의체 후보 노드들로부터 클라이언트에 의해 제안된 분산 합의를 요청하는 제1 트랜잭션을 포함하는 합의체 후보 요청(DELEGATE REQUEST) 메시지들을 수신하고, 상기 합의체 후보 요청 메시지들에 기초하여 상기 합의체 후보 노드들 중 합의 정족수에 상응하는 합의체 후보 노드들을 합의 노드들로 결정하고, 상기 합의 노드들에게 상기 합의 노드들을 결정한 결과에 대한 동의를 얻기 위한 제2 트랜잭션을 포함하는 준비(PREPARE) 메시지를 생성하고, 상기 합의 노드들에게 상기 준비 메시지를 송신하고, 상기 합의 노드들로부터 상기 준비 메시지에 대한 응답으로 상기 합의 노드들 각각의 전자 서명이 포함된 동의(COMMIT) 메시지들을 수신하고, 상기 동의 메시지들에 포함된 전자 서명들을 검증한 결과인 응답(REPLY) 메시지를 상기 합의체 후보 노드들에게 브로드캐스팅하여 분산 합의를 완료하고, 상기 합의 정족수는 2f+1(f는 1 이상의 정수)이고, 상기 f는 제1 조건 및 제2 조건을 모두 만족하고, 상기 제1 조건은, 상기 블록체인의 전체 노드들 중 상기 합의체 후보 노드들이 p(p는 0 이상 1 이하의 실수)의 확률로 선택될 경우에, 상기 합의체 후보 노드들로 선택될 비잔틴(Byzantine) 노드들이 f개를 초과할 제1 확률이 기설정된 제1 기준 확률 이하인 경우에 만족되는 조건이고, 상기 제2 조건은 상기 합의체 후보 노드들이 3f개 이하일 제2 확률이 기설정된 제2 기준 확률 이하인 경우에 만족되는 조건이다.A decentralized Byzantine error-tolerant distributed consensus apparatus according to an embodiment of the present invention includes one or more processors 1110; and an execution memory 1130 for storing at least one or more programs executed by the one or more processors 1110, wherein the at least one program executes a distributed consensus proposed by a client from consensus candidate nodes of a blockchain. Receives DELEGATE REQUEST messages including the requesting first transaction, and determines consensus nodes corresponding to a quorum of consensus candidates among the consensus candidate nodes based on the consensus candidate request messages, and , generate a PREPARE message including a second transaction for obtaining agreement on the result of determining the consensus nodes to the consensus nodes, and send the preparation message to the consensus nodes, and from the consensus nodes In response to the preparation message, consent (COMMIT) messages including electronic signatures of each of the consensus nodes are received, and a response (REPLY) message, which is a result of verifying electronic signatures included in the consent messages, is transmitted to the consensus candidate. The distributed agreement is completed by broadcasting to the nodes, the quorum of the agreement is 2f+1 (f is an integer greater than or equal to 1), the f satisfies both the first condition and the second condition, and the first condition is the When the consensus candidate nodes among all nodes of the blockchain are selected with a probability of p (p is a real number between 0 and 1), the number of Byzantine nodes to be selected as the consensus candidate nodes exceeds f. A condition that is satisfied when the first probability is less than or equal to a predetermined first reference probability, and the second condition is a condition that is satisfied when the second probability that the number of consensus candidate nodes is 3f or less is less than or equal to the second reference probability.

이 때, 상기 적어도 하나 이상의 프로그램은 상기 합의체 후보 요청 메시지를 송신한 노드가 상기 전체 노드들로부터 상기 전체 노드들 각각이 상기 합의체 후보 노드로 선택되었는지 여부를 지시하는 정보가 포함된 상기 합의체 후보 요청 메시지를 수신하고, 상기 합의체 후보 요청 메시지를 송신한 노드가 3f+1개 이상인 경우, 3f+1개의 노드들을 선택하여 다음 분산 합의를 위한 상기 합의체 후보 노드들로 결정하고, 상기 합의체 후보 요청 메시지를 송신한 노드가 3f개 이하인 경우, 상기 합의체 후보 노드들을 업데이트 하지 않을 수 있다.In this case, the at least one program includes the consensus candidate request message including information indicating whether the node that transmitted the consensus candidate request message has selected each of the all nodes as the consensus candidate node from all the nodes. , and when there are 3f+1 or more nodes that have transmitted the consensus candidate request message, 3f+1 nodes are selected to determine the consensus candidate nodes for the next distributed consensus, and the consensus candidate request message is transmitted When one node is 3f or less, the consensus candidate nodes may not be updated.

이 때, 상기 적어도 하나 이상의 프로그램은 상기 합의 정족수만큼의 상기 합의체 후보 요청 메시지들을 수신한 경우, 상기 합의 정족수만큼의 상기 합의체 후보 요청 메시지들에 포함된 서로 동일한 f+1개의 제1 트랜잭션을 기초로 상기 제2 트랜잭션을 결정할 수 있다.In this case, when the at least one program receives the consensus quorum of the consensus quorum candidate request messages, based on the same f+1 first transactions included in the consensus quorum of the consensus quorum candidate request messages The second transaction may be determined.

이 때, 상기 적어도 하나 이상의 프로그램은 상기 합의체 후보 노드들의 상기 제1 트랜잭션에 상응하는 제1 비트맵 정보 및 상기 합의 노드들을 결정한 결과를 포함하는 제2 비트맵 정보를 생성하고, 상기 제1 비트맵 정보, 상기 제2 비트맵 정보 및 상기 제2 트랜잭션을 포함하는 상기 준비 메시지를 생성할 수 있다.In this case, the at least one program generates first bitmap information corresponding to the first transaction of the consensus candidate nodes and second bitmap information including a result of determining the consensus nodes, and the first bitmap information, the second bitmap information and the second transaction may be generated.

이 때, 상기 합의 노드들은 상기 제1 비트맵 정보와 상기 제2 트랜잭션의 대응 여부로부터 상기 준비 메시지의 유효성을 검사할 수 있다.In this case, the consensus nodes may check the validity of the preparation message based on whether the first bitmap information and the second transaction correspond.

이 때, 상기 적어도 하나 이상의 프로그램은 상기 합의체 후보 요청 메시지들에 포함된 공개키들 및 정족수 값들을 각각 통합하여 제1 통합 공개키 및 제1 통합 정족수 값을 생성하고, 상기 제1 통합 공개키 및 상기 제1 통합 정족수 값을 해시한 제1 해시 값을 더 포함하는 상기 준비 메시지를 생성할 수 있다.In this case, the at least one program generates a first unified public key and a first unified quorum value by integrating public keys and quorum values included in the consensus candidate request messages, respectively, and the first unified public key and the The preparation message may further include a first hash value obtained by hashing the first unified quorum value.

이 때, 상기 합의 노드들은 상기 기등록된 공개키들 및 상기 기등록된 정족수 값들을 각각 통합하여 제2 통합 공개키 및 제2 통합 정족수 값을 생성하고, 상기 제2 통합 공개키 및 상기 제2 통합 정족수 값을 해시한 제2 해시 값과 상기 제1 해시 값의 동일 여부를 비교하여 상기 준비 메시지의 유효성을 검사할 수 있다.In this case, the consensus nodes generate a second unified public key and a second unified quorum value by integrating the pre-registered public keys and the pre-registered quorum values, respectively, and the second unified public key and the second unified public key The validity of the preparation message may be checked by comparing whether the second hash value obtained by hashing the quorum value is the same as the first hash value.

이 때, 상기 합의 노드들은 상기 제2 해시 값과 상기 제1 해시 값이 동일한 경우, 상기 제1 해시 값과 상기 합의 노드들에 기저장된 비밀 값들을 포함하는 서명 값들을 생성하고, 상기 준비 메시지에 상기 서명 값들을 포함시키고, 상기 서명 값들에 기초한 상기 전자 서명들을 추가하여 상기 동의 메시지들을 생성할 수 있다.At this time, when the second hash value and the first hash value are the same, the consensus nodes generate signature values including the first hash value and secret values previously stored in the consensus nodes, and include The consent messages may be generated by including the signature values and adding the electronic signatures based on the signature values.

이 때, 상기 적어도 하나 이상의 프로그램은 상기 동의 메시지들에 포함된 상기 서명 값들, 상기 제1 통합 공개키의 공개키들 및 상기 제1 통합 정족수 값의 정족수 값들을 각각 트리 형태의 다중 서명의 서명 값, 상기 다중 서명의 공개키 및 상기 다중 서명의 정족수 값으로 통합하여 상기 전자 서명들로부터 상기 다중 서명을 생성할 수 있다.At this time, the at least one or more programs apply the signature values included in the consent messages, the public keys of the first integrated public key, and the quorum values of the first integrated quorum value to a multi-signature signature value in the form of a tree, The multi-signature may be generated from the digital signatures by integrating the public key of the multi-signature and the quorum value of the multi-signature.

상기 적어도 하나 이상의 프로그램은 상기 다중 서명의 검증 결과가 참인 경우, 상기 제2 트랜잭션 및 상기 다중 서명을 포함하는 상기 응답 메시지를 생성할 수 있다.When the verification result of the multi-signature is true, the at least one or more programs may generate the response message including the second transaction and the multi-signature.

또한, 본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치 및 방법은 랜덤으로 선택된 노드들에 의한 BFT 계열 분산합의가 가능하도록 하여 탈 중앙화된 노드들에 의한 BFT 합의가 가능하다.In addition, the decentralized Byzantine error-tolerant distributed consensus apparatus and method according to an embodiment of the present invention enables BFT-series distributed agreement by randomly selected nodes, thereby enabling BFT agreement by decentralized nodes.

또한, 본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치 및 방법은 노드를 임의로 선택하고 이들이 BFT 기반의 합의를 진행하는 경우 기존 PBFT가 해결하지 못한 식 4와 같은 합의체 문제 해결이 가능하다.In addition, in the decentralized Byzantine error-tolerant distributed consensus apparatus and method according to an embodiment of the present invention, when nodes are arbitrarily selected and they proceed with a BFT-based consensus, the consensus problem such as Equation 4, which the existing PBFT cannot solve, is solved. It is possible.

또한, 본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치 및 방법은 기존 MinBFT 보다 1단계 더 많은 서버간 메시지 교환이 필요하지만, COMMIT 단계에서 O(N2)이 아니라 O(N) 메시지만 필요하여 빠른 합의가 가능하다.In addition, the decentralized Byzantine error-tolerant distributed consensus apparatus and method according to an embodiment of the present invention requires one step more message exchange between servers than the existing MinBFT, but O(N 2 ) rather than O(N 2 ) in the COMMIT step. ) message, so a quick consensus is possible.

또한, 본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치 및 방법은 기존 FastBFT와 동일한 O(N) 메시지 교환만 필요하고, 메시지 교환 단계가 한단계 적어 빠른 합의가 가능하다.In addition, the decentralized Byzantine error-tolerant distributed consensus apparatus and method according to an embodiment of the present invention requires only the same O(N) message exchange as that of the existing FastBFT, and quick consensus is possible because the message exchange step is one step less.

또한, 본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치 및 방법은 DELEGATE REQUEST 단계에서 노드의 합의 노드 참여 자격을 두 번의 해쉬 연산을 통해 검증 할 수 있다. 이 때, 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치 및 방법은 자격 없는 노드의 분산합의 참여를 차단하면서도 빠른 연산이 가능하도록 하여 대량의 노드 상황에서도 빠른 합의가 가능하다.In addition, the decentralized Byzantine error-tolerant distributed consensus apparatus and method according to an embodiment of the present invention can verify the node participation qualification of the node in the DELEGATE REQUEST step through two hash operations. At this time, the decentralized Byzantine error-tolerant distributed consensus device and method block the participation of unqualified nodes in the distributed consensus while enabling fast computation, enabling quick consensus even in a large number of node situations.

이상에서와 같이 본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.As described above, in the apparatus and method of decentralized Byzantine error-tolerant distributed consensus according to an embodiment of the present invention, the configuration and method of the described embodiments are not limitedly applicable as described above, but the embodiments are various All or part of each of the embodiments may be selectively combined and configured so that modifications may be made.

1100: 컴퓨터 시스템 1110: 프로세서
1120: 버스 1130: 메모리
1131: 롬 1132: 램
1140: 사용자 인터페이스 입력 장치
1150: 사용자 인터페이스 출력 장치
1160: 스토리지 1170: 네트워크 인터페이스
1180: 네트워크
1100: computer system 1110: processor
1120: bus 1130: memory
1131: rom 1132: ram
1140: user interface input device
1150: user interface output device
1160: storage 1170: network interface
1180: network

Claims (20)

하나 이상의 프로세서; 및
상기 하나 이상의 프로세서에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리;
를 포함하고,
상기 적어도 하나 이상의 프로그램은
블록체인의 합의체 후보 노드들로부터 클라이언트에 의해 제안된 분산 합의를 요청하는 제1 트랜잭션을 포함하는 합의체 후보 요청(DELEGATE REQUEST) 메시지들을 수신하고, 상기 합의체 후보 요청 메시지들에 기초하여 상기 합의체 후보 노드들 중 합의 정족수에 상응하는 합의체 후보 노드들을 합의 노드들로 결정하고,
상기 합의 노드들에게 동의를 얻기 위한 제2 트랜잭션을 포함하는 준비(PREPARE) 메시지를 생성하고, 상기 합의 노드들에게 상기 준비 메시지를 송신하고,
상기 합의 노드들로부터 상기 준비 메시지에 대한 응답으로 상기 합의 노드들 각각의 전자 서명이 포함된 동의(COMMIT) 메시지들을 수신하고, 상기 동의 메시지들에 포함된 전자 서명들을 검증한 결과인 응답(REPLY) 메시지를 상기 합의체 후보 노드들에게 브로드캐스팅하여 분산 합의를 완료하고,
상기 합의 정족수는 2f+1(f는 1 이상의 정수)이고,
상기 f는 제1 조건 및 제2 조건을 모두 만족하고,
상기 제1 조건은, 상기 블록체인의 전체 노드들 중 상기 합의체 후보 노드들이 p(p는 0 이상 1 이하의 실수)의 확률로 선택될 경우에, 상기 합의체 후보 노드들로 선택될 비잔틴(Byzantine) 노드들이 f개를 초과할 제1 확률이 기설정된 제1 기준 확률 이하인 경우에 만족되는 조건이고,
상기 제2 조건은 상기 합의체 후보 노드들이 3f개 이하일 제2 확률이 기설정된 제2 기준 확률 이하인 경우에 만족되는 조건이고,
상기 제1 조건은 하기 수학식 1에 상응하고, 상기 제2 조건은 하기 수학식 2에 상응하고,
[수학식 1]
Figure 112021144883869-pat00042

(b는 상기 비잔틴 노드들의 수, Pmax_bzt는 상기 제1 기준 확률, k는 정수인 인덱스)
[수학식 2]
Figure 112021144883869-pat00043

(n은 전체 노드들의 수, Pmin_node는 상기 제2 기준 확률, x는 정수인 인덱스)
상기 p는 상기 수학식 1 및 2를 모두 만족시키도록 결정되는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치.
one or more processors; and
an execution memory for storing at least one or more programs executed by the one or more processors;
including,
the at least one program
Receives DELEGATE REQUEST messages including a first transaction requesting a distributed consensus proposed by a client from consensus candidate nodes of a blockchain, and based on the consensus candidate request messages, the consensus candidate nodes Determining consensus nodes corresponding to the consensus quorum as consensus nodes;
generating a PREPARE message including a second transaction for obtaining consent from the consensus nodes, and sending the preparation message to the consensus nodes;
In response to the preparation message from the consensus nodes, consent (COMMIT) messages including electronic signatures of each of the consensus nodes are received, and a response (REPLY) that is a result of verifying the electronic signatures included in the consent messages Broadcast a message to the consensus candidate nodes to complete the distributed consensus,
The quorum of the sum is 2f+1 (f is an integer greater than or equal to 1),
f satisfies both the first condition and the second condition,
The first condition is that when the consensus candidate nodes among all nodes of the block chain are selected with a probability of p (p is a real number between 0 and 1), Byzantine to be selected as the consensus candidate nodes It is a condition that is satisfied when the first probability that the number of nodes exceeds f is less than or equal to the preset first reference probability,
The second condition is a condition that is satisfied when the second probability that the number of consensus candidate nodes is 3f or less is less than or equal to a second reference probability,
The first condition corresponds to Equation 1 below, and the second condition corresponds to Equation 2 below,
[Equation 1]
Figure 112021144883869-pat00042

(b is the number of Byzantine nodes, P max_bzt is the first reference probability, k is an integer index)
[Equation 2]
Figure 112021144883869-pat00043

(n is the total number of nodes, P min_node is the second reference probability, x is an integer index)
The decentralized Byzantine error-tolerant distributed consensus device, characterized in that p is determined to satisfy both Equations 1 and 2.
청구항 1에 있어서,
상기 적어도 하나 이상의 프로그램은
상기 전체 노드들로부터 상기 전체 노드들 각각이 상기 합의체 후보 노드로 선택되었는지 여부를 지시하는 정보가 포함된 상기 합의체 후보 요청 메시지를 수신하고,
상기 합의체 후보 요청 메시지를 송신한 노드가 3f+1개 이상인 경우, 3f+1개의 노드들을 선택하여 다음 분산 합의를 위한 상기 합의체 후보 노드들로 결정하고, 상기 합의체 후보 요청 메시지를 송신한 노드가 3f개 이하인 경우, 상기 합의체 후보 노드들을 업데이트 하지 않는 것을 특징으로 하는 탈 중앙화 비잔틴 오류 감내 분산 합의 장치.
The method according to claim 1,
the at least one program
receiving the consensus candidate request message including information indicating whether each of the entire nodes has been selected as the consensus candidate node from the all nodes;
If there are more than 3f+1 nodes that have transmitted the consensus candidate request message, 3f+1 nodes are selected and determined as the consensus candidate nodes for the next distributed consensus, and the node that transmitted the consensus candidate request message is 3f Decentralized Byzantine Error Tolerant Distributed Consensus Device, characterized in that the consensus candidate nodes are not updated when the number is less than or equal to.
청구항 2에 있어서,
상기 적어도 하나 이상의 프로그램은
상기 합의 정족수만큼의 상기 합의체 후보 요청 메시지들을 수신한 경우, 상기 합의 정족수만큼의 상기 합의체 후보 요청 메시지들에 포함된 서로 동일한 f+1개의 제1 트랜잭션을 기초로 상기 제2 트랜잭션을 결정하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치.
3. The method according to claim 2,
the at least one program
Decentralization that determines the second transaction based on the same number of f+1 first transactions included in the consensus quorum of the consensus candidate request messages as many as the consensus quorum The Byzantine Error Tolerant Distributed Consensus Device.
청구항 2에 있어서,
상기 적어도 하나 이상의 프로그램은
상기 합의체 후보 노드들의 상기 제1 트랜잭션에 상응하는 제1 비트맵 정보 및 상기 합의 노드들을 결정한 결과를 포함하는 제2 비트맵 정보를 생성하고, 상기 제1 비트맵 정보, 상기 제2 비트맵 정보 및 상기 제2 트랜잭션을 포함하는 상기 준비 메시지를 생성하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치.
3. The method according to claim 2,
the at least one program
generating first bitmap information corresponding to the first transaction of the consensus candidate nodes and second bitmap information including a result of determining the consensus nodes, the first bitmap information, the second bitmap information and Decentralized Byzantine error-tolerant distributed consensus apparatus, characterized in that generating the preparation message including the second transaction.
청구항 4에 있어서,
상기 합의 노드들은
상기 제1 비트맵 정보와 상기 제2 트랜잭션의 대응 여부로부터 상기 준비 메시지의 유효성을 검사하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치.
5. The method according to claim 4,
The consensus nodes are
Decentralized Byzantine error-tolerant distributed consensus apparatus, characterized in that the validity of the preparation message is checked based on whether the first bitmap information and the second transaction correspond.
청구항 5에 있어서,
상기 적어도 하나 이상의 프로그램은
상기 합의체 후보 요청 메시지들에 포함된 공개키들 및 정족수 값들을 각각 통합하여 제1 통합 공개키 및 제1 통합 정족수 값을 생성하고, 상기 제1 통합 공개키 및 상기 제1 통합 정족수 값을 해시한 제1 해시 값을 더 포함하는 상기 준비 메시지를 생성하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치.
6. The method of claim 5,
the at least one program
A first unified public key and a first unified quorum value are generated by integrating public keys and quorum values included in the consensus candidate request messages, respectively, and the first unified public key and the first unified quorum value are hashed 1 Decentralized Byzantine error-tolerant distributed consensus device, characterized in that it generates the ready message further including a hash value.
청구항 6에 있어서,
상기 합의 노드들은
기등록된 공개키들 및 기등록된 정족수 값들을 각각 통합하여 제2 통합 공개키 및 제2 통합 정족수 값을 생성하고, 상기 제2 통합 공개키 및 상기 제2 통합 정족수 값을 해시한 제2 해시 값과 상기 제1 해시 값의 동일 여부를 비교하여 상기 준비 메시지의 유효성을 검사하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치.
7. The method of claim 6,
The consensus nodes are
A second hash value obtained by integrating the pre-registered public keys and pre-registered quorum values to generate a second unified public key and a second unified quorum value, and hashing the second unified public key and the second unified quorum value Decentralized Byzantine error-tolerant distributed consensus apparatus, characterized in that by comparing whether the first hash value is the same to check the validity of the preparation message.
청구항 7에 있어서,
상기 합의 노드들은
상기 제2 해시 값과 상기 제1 해시 값이 동일한 경우, 상기 제1 해시 값과 상기 합의 노드들에 기저장된 비밀 값들을 포함하는 서명 값들을 생성하고, 상기 준비 메시지에 상기 서명 값들을 포함시키고, 상기 서명 값들에 기초한 상기 전자 서명들을 추가하여 상기 동의 메시지들을 생성하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치.
8. The method of claim 7,
The consensus nodes are
If the second hash value and the first hash value are the same, generate signature values including the first hash value and secret values pre-stored in the consensus nodes, and include the signature values in the preparation message; Decentralized Byzantine error-tolerant distributed consensus apparatus, characterized in that by adding the digital signatures based on the signature values to generate the consent messages.
삭제delete 삭제delete 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치의 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법에 있어서,
블록체인의 합의체 후보 노드들로부터 클라이언트에 의해 제안된 분산 합의를 요청하는 제1 트랜잭션을 포함하는 합의체 후보 요청(DELEGATE REQUEST) 메시지들을 수신하고, 상기 합의체 후보 요청 메시지들에 기초하여 상기 합의체 후보 노드들 중 합의 정족수에 상응하는 합의체 후보 노드들을 합의 노드들로 결정하는 단계;
상기 합의 노드들에게 동의를 얻기 위한 제2 트랜잭션을 포함하는 준비(PREPARE) 메시지를 생성하고, 상기 합의 노드들에게 상기 준비 메시지를 송신하는 단계; 및
상기 합의 노드들로부터 상기 준비 메시지에 대한 응답으로 상기 합의 노드들 각각의 전자 서명이 포함된 동의(COMMIT) 메시지들을 수신하고, 상기 동의 메시지들에 포함된 전자 서명들을 검증한 결과인 응답(REPLY) 메시지를 상기 합의체 후보 노드들에게 브로드캐스팅하여 분산 합의를 완료하는 단계;
를 포함하고,
상기 합의 정족수는 2f+1(f는 1 이상의 정수)이고,
상기 f는 제1 조건 및 제2 조건을 모두 만족하고,
상기 제1 조건은, 상기 블록체인의 전체 노드들 중 상기 합의체 후보 노드들이 p(p는 0 이상 1 이하의 실수)의 확률로 선택될 경우에, 상기 합의체 후보 노드들로 선택될 비잔틴(Byzantine) 노드들이 f개를 초과할 제1 확률이 기설정된 제1 기준 확률 이하인 경우에 만족되는 조건이고,
상기 제2 조건은 상기 합의체 후보 노드들이 3f개 이하일 제2 확률이 기설정된 제2 기준 확률 이하인 경우에 만족되는 조건이고,
상기 제1 조건은 하기 수학식 1에 상응하고, 상기 제2 조건은 하기 수학식 2에 상응하고,
[수학식 1]
Figure 112021144883869-pat00044

(b는 상기 비잔틴 노드들의 수, Pmax_bzt는 상기 제1 기준 확률, k는 정수인 인덱스)
[수학식 2]
Figure 112021144883869-pat00045

(n은 전체 노드들의 수, Pmin_node는 상기 제2 기준 확률, x는 정수인 인덱스)
상기 p는 상기 수학식 1 및 2를 모두 만족시키도록 결정되는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법.
In the decentralized Byzantine error-tolerant distributed consensus method of the decentralized Byzantine error-tolerant distributed consensus device,
Receives DELEGATE REQUEST messages including a first transaction requesting a distributed consensus proposed by a client from consensus candidate nodes of a blockchain, and based on the consensus candidate request messages, the consensus candidate nodes determining consensus nodes corresponding to the consensus quorum among consensus nodes;
generating a PREPARE message including a second transaction for obtaining agreement from the consensus nodes, and sending the PREPARE message to the consensus nodes; and
In response to the preparation message from the consensus nodes, consent (COMMIT) messages including electronic signatures of each of the consensus nodes are received, and a response (REPLY) that is a result of verifying the electronic signatures included in the consent messages broadcasting a message to the consensus candidate nodes to complete distributed consensus;
including,
The quorum of the sum is 2f+1 (f is an integer greater than or equal to 1),
f satisfies both the first condition and the second condition,
The first condition is that when the consensus candidate nodes among all nodes of the block chain are selected with a probability of p (p is a real number between 0 and 1), Byzantine to be selected as the consensus candidate nodes It is a condition satisfied when the first probability that the number of nodes exceeds f is less than or equal to a predetermined first reference probability,
The second condition is a condition that is satisfied when the second probability that the number of consensus candidate nodes is 3f or less is less than or equal to a second reference probability,
The first condition corresponds to Equation 1 below, and the second condition corresponds to Equation 2 below,
[Equation 1]
Figure 112021144883869-pat00044

(b is the number of Byzantine nodes, P max_bzt is the first reference probability, k is an integer index)
[Equation 2]
Figure 112021144883869-pat00045

(n is the total number of nodes, P min_node is the second reference probability, x is an integer index)
Wherein p is determined to satisfy both Equations 1 and 2, A method of decentralized Byzantine error-tolerant distributed consensus.
청구항 11에 있어서,
상기 합의 노드들로 결정하는 단계는
상기 전체 노드들로부터 상기 전체 노드들 각각이 상기 합의체 후보 노드로 선택되었는지 여부를 지시하는 정보가 포함된 상기 합의체 후보 요청 메시지를 수신하고,
상기 합의체 후보 요청 메시지를 송신한 노드가 3f+1개 이상인 경우, 3f+1개의 노드들을 선택하여 다음 분산 합의를 위한 상기 합의체 후보 노드들로 결정하고, 상기 합의체 후보 요청 메시지를 송신한 노드가 3f개 이하인 경우, 상기 합의체 후보 노드들을 업데이트 하지 않는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법.
12. The method of claim 11,
The step of determining the consensus nodes is
receiving the consensus candidate request message including information indicating whether each of the entire nodes has been selected as the consensus candidate node from the all nodes;
If there are more than 3f+1 nodes that have transmitted the consensus candidate request message, 3f+1 nodes are selected and determined as the consensus candidate nodes for the next distributed consensus, and the node that transmitted the consensus candidate request message is 3f Decentralized Byzantine error-tolerant distributed consensus method, characterized in that the consensus candidate nodes are not updated when the number is less than or equal to.
청구항 12에 있어서,
상기 합의 노드들로 결정하는 단계는
상기 합의 정족수만큼의 상기 합의체 후보 요청 메시지들을 수신한 경우, 상기 합의 정족수만큼의 상기 합의체 후보 요청 메시지들에 포함된 서로 동일한 f+1개의 제1 트랜잭션을 기초로 상기 제2 트랜잭션을 결정하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법.
13. The method of claim 12,
The step of determining the consensus nodes is
Decentralization that determines the second transaction based on the same number of f+1 first transactions included in the consensus quorum of the consensus candidate request messages as many as the consensus quorum Byzantine error-tolerant distributed consensus method.
청구항 12에 있어서,
상기 준비 메시지를 송신하는 단계는
상기 합의체 후보 노드들의 상기 제1 트랜잭션에 상응하는 제1 비트맵 정보 및 상기 합의 노드들을 결정한 결과를 포함하는 제2 비트맵 정보를 생성하고, 상기 제1 비트맵 정보, 상기 제2 비트맵 정보 및 상기 제2 트랜잭션을 포함하는 상기 준비 메시지를 생성하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법.
13. The method of claim 12,
The step of sending the preparation message is
generating first bitmap information corresponding to the first transaction of the consensus candidate nodes and second bitmap information including a result of determining the consensus nodes, the first bitmap information, the second bitmap information and Decentralized Byzantine error-tolerant distributed consensus method, characterized in that generating the ready message including the second transaction.
청구항 14에 있어서,
상기 준비 메시지를 송신하는 단계는
상기 합의 노드들이, 상기 제1 비트맵 정보와 상기 제2 트랜잭션의 대응 여부로부터 상기 준비 메시지의 유효성을 검사하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법.
15. The method of claim 14,
The step of sending the preparation message is
Decentralized Byzantine error-tolerant distributed consensus method, characterized in that the consensus nodes check the validity of the preparation message based on whether the first bitmap information and the second transaction correspond.
청구항 15에 있어서,
상기 준비 메시지를 송신하는 단계는
상기 합의체 후보 요청 메시지들에 포함된 공개키들 및 정족수 값들을 각각 통합하여 제1 통합 공개키 및 제1 통합 정족수 값을 생성하고, 상기 제1 통합 공개키 및 상기 제1 통합 정족수 값을 해시한 제1 해시 값을 더 포함하는 상기 준비 메시지를 생성하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법.
16. The method of claim 15,
The step of sending the preparation message is
A first unified public key and a first unified quorum value are generated by integrating public keys and quorum values included in the consensus candidate request messages, respectively, and the first unified public key and the first unified quorum value are hashed 1 Decentralized Byzantine error-tolerant distributed consensus method, characterized in that generating the ready message further including a hash value.
청구항 16에 있어서,
상기 준비 메시지를 송신하는 단계는
상기 합의 노드들이, 기등록된 공개키들 및 기등록된 정족수 값들을 각각 통합하여 제2 통합 공개키 및 제2 통합 정족수 값을 생성하고, 상기 제2 통합 공개키 및 상기 제2 통합 정족수 값을 해시한 제2 해시 값과 상기 제1 해시 값의 동일 여부를 비교하여 상기 준비 메시지의 유효성을 검사하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법.
17. The method of claim 16,
The step of sending the preparation message is
The consensus nodes generate a second unified public key and a second unified quorum value by integrating the pre-registered public keys and the pre-registered quorum values, respectively, and hash the second unified public key and the second unified quorum value. A decentralized Byzantine error-tolerant distributed consensus method, characterized in that the second hash value and the first hash value are compared to check the validity of the prepared message.
청구항 17에 있어서,
상기 분산 합의를 완료하는 단계는
상기 합의 노드들이 상기 제2 해시 값과 상기 제1 해시 값이 동일한 경우, 상기 제1 해시 값과 상기 합의 노드들에 기저장된 비밀 값들을 포함하는 서명 값들을 생성하고, 상기 준비 메시지에 상기 서명 값들을 포함시키고, 상기 서명 값들에 기초한 상기 전자 서명들을 추가하여 상기 동의 메시지들을 생성하는 것을 특징으로 하는 탈 중앙화된 비잔틴 오류 감내 분산 합의 방법.
18. The method of claim 17,
The step of completing the distributed agreement is
When the second hash value and the first hash value are the same, the consensus nodes generate signature values including the first hash value and secret values previously stored in the consensus nodes, and include the signature value in the preparation message and generating the consent messages by adding the digital signatures based on the signature values.
삭제delete 삭제delete
KR1020200061517A 2019-06-18 2020-05-22 Apparatus and method for processing distributed consensus on decentralized byzantene fault tolerance KR102406020B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/903,057 US11343073B2 (en) 2019-06-18 2020-06-16 Apparatus and method for achieving distributed consensus based on decentralized byzantine fault tolerance

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190072201 2019-06-18
KR20190072201 2019-06-18

Publications (2)

Publication Number Publication Date
KR20200144466A KR20200144466A (en) 2020-12-29
KR102406020B1 true KR102406020B1 (en) 2022-06-10

Family

ID=74090106

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200061517A KR102406020B1 (en) 2019-06-18 2020-05-22 Apparatus and method for processing distributed consensus on decentralized byzantene fault tolerance

Country Status (1)

Country Link
KR (1) KR102406020B1 (en)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2021299595A1 (en) 2020-07-03 2023-02-02 Lg Electronics Inc. Laundry treatment machine
KR102603880B1 (en) * 2021-01-08 2023-11-20 한국전자통신연구원 Method for block consensus and method for managing transaction state
KR20220137329A (en) * 2021-04-02 2022-10-12 삼성전자주식회사 Electronic device performing block agreement based on blockchain and operating method thereof
KR102574890B1 (en) * 2021-04-02 2023-09-06 주식회사 헤세그 Blockchain system resistant to faulty nodes and its operation method
KR102610530B1 (en) * 2021-04-29 2023-12-06 주식회사 리드포인트시스템 A neural consensus node apparatus for using a non-random consensus proof-based blockchain network as a random consensus proof-based blockchain network, and its operation method
KR102610531B1 (en) * 2021-04-29 2023-12-06 주식회사 리드포인트시스템 A neural consensus proof based block chain network platform system constructed by using a non-random consensus proof-based blockchain network
WO2022231072A2 (en) * 2021-04-29 2022-11-03 주식회사 이노블록 Neural consensus-based blockchain network system for performing random consensus proof using non-random consensus proof-based blockchain network
KR102650336B1 (en) * 2021-05-04 2024-03-22 계명대학교 산학협력단 Method and apparatus for providing lightweight blockchain using external strorage and pbft consensus algorithm
KR102628770B1 (en) * 2021-09-02 2024-01-23 주식회사 리드포인트시스템 A Neural consensus-based blockchain network system that performs random consensus proof using non-random consensus proof-based blockchain network
CN113922965B (en) * 2021-10-09 2024-04-16 筹远(上海)信息科技有限公司 Block chain data consensus method and device in Bayesian scene
CN113922864B (en) * 2021-10-09 2023-07-28 郑州大学 Multi-layer satellite network security guarantee method based on Bayesian and preemptive consensus
CN114189325B (en) * 2021-11-19 2023-09-29 新疆大学 Bayesian-tolerant and scalable method and device with high fault tolerance and storage medium
CN115333745A (en) * 2022-07-13 2022-11-11 中国人民解放军国防科技大学 Multi-robot rapid target searching method based on block chain common cognition
WO2024096193A1 (en) * 2022-11-03 2024-05-10 주식회사 리드포인트시스템 Device for providing monitoring service for neural consensus-based blockchain network system to manage safety quality and distribution history, and operation method of same device
WO2024096192A1 (en) * 2022-11-03 2024-05-10 주식회사 리드포인트시스템 Apparatus for providing monitoring service of neural consensus-based blockchain network system for providing intelligent safe distribution platform, and operating method thereof

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Du Mingxiao 외 4명, A Review on Consensus Algorithm of Blockchain, 2017 IEEE International Conference on Systems, Man, and Cybernetics(SMC), (2017.10.05.)*
Ittai Abraham 외 4명, Solida: A Blockchain Protocol Based on Reconfigurable Byzantine Consensus, arXiv preprint arXiv:1612.02916 (2016.12.06.).*
Yin Yang, LinBFT: Linear-Communication Byzantine Fault Tolerance for Public Blockchains, arXiv preprint arXiv:1807.01829 (2018.07.05.)*

Also Published As

Publication number Publication date
KR20200144466A (en) 2020-12-29

Similar Documents

Publication Publication Date Title
KR102406020B1 (en) Apparatus and method for processing distributed consensus on decentralized byzantene fault tolerance
US11343073B2 (en) Apparatus and method for achieving distributed consensus based on decentralized byzantine fault tolerance
US11411721B2 (en) Systems and methods for selecting and utilizing a committee of validator nodes in a distributed system
Civit et al. Polygraph: Accountable byzantine agreement
EP3281115B1 (en) Method and system for byzantine fault-tolerance replicating of data on a plurality of servers
KR100519770B1 (en) Method and apparatus for distributed certificate management for Ad-hoc networks
US7849303B2 (en) Peer-to-peer network information storage
US8365301B2 (en) Peer-to-peer network communication
JP2020512708A5 (en)
CN112468302A (en) Editable blockchain based on verifiable multiparty secret sharing
US11362836B2 (en) Consensus protocol for permissioned ledgers
CN111052091A (en) Method for forming consensus in a network and nodes constituting the network
US20190258610A1 (en) Byzantine fault-tolerant algorithm with four steps
Li et al. On the practical and security issues of batch content distribution via network coding
CN112968883A (en) Block chain heterogeneous consensus method with high safety and terminal
CN112116349B (en) High-throughput-rate-oriented random consensus method and device for drawing account book
Oh et al. Algorithm based on Byzantine agreement among decentralized agents (BADA)
Kubilay et al. KORGAN: An efficient PKI architecture based on PBFT through dynamic threshold signatures
CN112039837B (en) Electronic evidence preservation method based on block chain and secret sharing
CN109274674B (en) Block chain heterogeneous consensus method with high security and terminal
KR102175949B1 (en) Method and apparatus for generating block in blockchain system
KR102518634B1 (en) Blockchain consensus system and method to improve transaction processing speed
Tennenhouse et al. Transaction confirmation in coded blockchain
Lin et al. Lightweight, pollution-attack resistant multicast authentication scheme
US20230188359A1 (en) Apparatus and method for distributed consensus in dynamic byzantine fraction environment

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right