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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic 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.
Description
본 발명은 블록체인 기술에 관한 것으로, 보다 상세하게는 탈 중앙화된 노드들의 비잔틴 오류 감내(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
이 때, SERVER 0은 본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치에 상응하는 주 노드(송신측 서버)일 수 있다.In this case,
이 때, SERVER(1~3)는 본 발명의 일실시예에 따른 클라이언트 로부터 REQUEST를 수신하고 SERVER 0에게 DELEGATE REQUEST 를 전달하는 서브 노드(수신측 서버)일 수 있다.In this case,
즉, 단계(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
이 때, 수학식 2는 비잔틴 노드들이 앞면이 나올 확률이 p 인 동전을 던져, 동전의 앞면이 나온 노드 수 k 가 f 개를 초과하는 확률이 Pmax_bzt 보다 작거나 같을 조건을 만족할 수 있다.In this case,
이 때, 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
전체 참여 노드 수 n 이 주어질 때 노드 선택 확률을 증가 시키면서 수학식 2 및 3을 동시에 만족하는 p가 계산될 수 있다. 계산된 p로 노드가 동전 던지기를 시행하고, 앞면이 나온 노드 중에서 임의로 3f+1 개 노드를 합의체로 정하면 합의체에 포함된 비잔틴 노드가 f개를 초과할 확률이 Pmax_bzt 이하로 유지 될 수 있다.When the total number of participating nodes n is given, p that simultaneously satisfies
예를 들어, 전체 노드 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
수학식 2에서 비잔틴 노드 200개 중에서 앞면이 나온 노드가 30개를 초과할 확률이 매우 낮으므로, Pmax_bzt 이하의 확률이라 가정할 수 있다.In
이 때, 전체 노드 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
이 때, 단계(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
도 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
이 때, 수학식 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)
이 때, 합의체의 후보 노드들은 비교 결과가 참인 경우, 자신이 정당하게 선택 받은 노드임을 다른 노드들에게 증명하기 위해 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
수학식 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블록에 대한 합의체가 될 수 있다.
선택된 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
도 4의 403 블록에 대한 합의체 선정 과정에서 msg 와 message digest를 전달하는 방법은 도 6, 도 7, 또는 별도의 프로세스에 의해 수행될 수 있다.A method of transmitting msg and message digest in the process of selecting a consensus for
도 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)
예를 들어, 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
도 6을 참조하면, 현재 402블록에 대한 합의가 이루어지고 있을 때, 403 블록의 합의체 정보를 DELEGATE REQUEST 와 함께 다중 서명을 통해 합의체를 고정하는 것을 알 수 있다.Referring to FIG. 6 , when agreement on
도 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 ,
도 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 은 합의체 수를 3f+1로 고정하고, 합의 정족수를 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에서 합의 정족수는 2f+1(f는 1 이상의 정수)이고, 상기 f는 제1 조건 및 제2 조건을 모두 만족하고, 상기 제1 조건은, 상기 블록체인의 전체 노드들 중 상기 합의체 후보 노드들이 p(p는 0 이상 1 이하의 실수)의 확률로 선택될 경우에, 상기 합의체 후보 노드들로 선택될 비잔틴(Byzantine) 노드들이 f개를 초과할 제1 확률이 기설정된 제1 기준 확률 이하인 경우에 만족되는 조건이고, 상기 제2 조건은 상기 합의체 후보 노드들이 3f개 이하일 제2 확률이 기설정된 제2 기준 확률 이하인 경우에 만족되는 조건일 수 있다.As described above, in
예를 들어, 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
수학식 2는 비잔틴 노드 중에서 동전 던지기로 선택된 비잔틴 노드 수 k 가 f 개를 초과하여 선택될 확률이 Pmax_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
전체 참여 노드 수 n 이 주어질 때 노드 선택 확률을 증가 시키면서 수학식 2 및 3을 동시에 만족하는 p가 계산될 수 있다. 계산된 p로 노드가 동전 던지기를 시행하고, 앞면이 나온 노드 중에서 임의로 3f+1 개 노드를 합의체로 정하면 합의체에 포함된 비잔틴 노드가 f개를 초과할 확률이 Pmax_bzt이하로 유지 될 수 있다.When the total number of participating nodes n is given, p that simultaneously satisfies
예를 들어, 전체 노드 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
수학식 2에서 비잔틴 노드 200개 중에서 앞면이 나온 노드가 30개를 초과할 확률이 매우 낮으므로, Pmax_bzt이하의 확률로 계산될 수 있다.In
이 때, 전체 노드 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 는 합의 정족수는 2f+1개로 고정하고, 합의체로 신고한 노드가 2f+1+β (0≤β≤f) 이상이면 합의체 수를 2f+1+β 이상이면서 3f+1 이하로 정하고 전체 합의체를 교체할 수 있다. SCHEME 2 는 PREPARE 와 COMMIT 단계에서 합의 정족수 (2f+1) 을 구성할 때 네트워크나 노드 장애로 인해 β 개 노드까지 응답하지 않아도 합의를 진행할 수 있다. 즉, SCHEME 2 는 3f+1에서 응답하지 않는 f 개 노드에 β 개 노드를 포함시키면 항상 2f+1 합의 정족수에 의한 합의를 진행할 수 있다.In
만약 네트워크나 노드 장애가 발생하지 않는다고 가정할 때, 합의체가 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
SCHEME 3 은 합의체의 수 c 가 2f+1≤c≤3f+1-α 를 만족하도록 구성하고, 합의 정족수를 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 은 확률적으로 발생 가능한 최대 비잔틴 노드 수에서 f 를 뺀 나머지를 α 라 정하고 PREPARE 단계에서 f+1 대신 수학식 6을 만족하는 f+α+1 노드 수의 동의를 얻는다고 가정할 수 있다. 이 때, 합의체의 노드 수를 c 라 할 때 c 가 수학식 7의 조건을 만족하는 경우 fork 가 발생하지 않을 수 있다.
예를 들어, 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,
다른 하나의 예로 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
따라서, 확률적으로 선택될 수 있는 최대 비잔틴 노드가 2f 보다 작은 경우에는 수학식 6과 7을 적용한 SCHEME 3 이 사용될 수 있다. Therefore, when the maximum Byzantine node that can be selected probabilistically is less than 2f,
합의체 업데이트는 다음 블록의 합의체로 요청된 노드 수가 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은 402블록 합의 과정에서 노드 자신의 의견을 반영하여 합의를 진행할 수 있다. 본 발명에서 서버들의 다중서명을 위해서, 도 8의 EC-Schnorr 다중서명을 사용할 수 있다.
본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의는 도 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
DELEGATE REQUEST 단계는 송신측 서버(SERVER 0~3)의 동작과 SERVER0 동작을 나누어 설명한다. 우선 송신측 서버의 동작을 설명한다. In the DELEGATE REQUEST step, the operation of the sending server (
본 발명의 일실시예에 따른 합의체 후보 노드들은 클라이언트로부터 제안된 분산 합의를 요청하는 제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
합의체들은 위 검사에서 이상이 없는 제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은 자신을 포함한 2f+1개의 서버가 DELEGATE REQUEST를 수신하고, 자신을 포함한 2f+1개인 합의 정족수만큼의 서버로부터 DELEGATE REQUEST 수신이 완료된 경우, 이들을 합의 정족수에 해당하는 합의 노드들로 결정하고 다음 동작을 수행할 수 있다. 이때, SERVER 0은 나머지 서버들로부터 DELEGATE REQUEST를 계속 수신할 수도 있다. At this time,
SERVER 0은 수신한 2f+1개의 DELEGATE REQUEST 들의 정상적인 제1 트랜잭션인 proposed transaction들에서 개 또는 f+1 개의 노드가 송신한 transaction 집합을 뽑아 제1 트랜잭션을 기초로 제2 트랜잭션인 Prepared transaction을 결정할 수 있다. 이 때, 완성된 SERVER 0은 Prepared transaction에서 합의 노드들에게 상기 합의 노드들을 결정한 결과를 확인시키기 위해 표 1과 같은 제1 비트맵 정보인 bitmap을 만들고 이를 모든 합의 노드들에 제시하여 SERVER 0 이 거짓으로 제1 트랜잭션을 Prepared transaction을 만들지 못하게 할 수 있다.
표 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 은 최소 개 노드에서 각각 유효성 검사를 통과한 트랜잭션의 집합이며, 제1 비트맵 정보인 Proposed Transaction bitmap과 SERVER 0의 전자서명에 의해 내용을 데이터 전달 중간에 공격자가 내용을 바꿀 수 없는 상태로 만들 수 있다.
예를 들어, SERVER 0은 클라이언트로부터 발생한 10개의 트랜잭션이 4개의 서버에 표 2와 같이 배포된 상황을 가정할 수 있다.For example,
표 2는 각 서버가 수신한 client 의 유효한 transaction requests 를 나타낸 것을 알 수 있다.It can be seen that Table 2 shows the valid transaction requests of the clients received by each server.
이 때, SERVER 3은 passive 상태이므로 아무 동작도 하지 않는다고 가정하면, SERVER 0은 SERVER (0, 1, 2)들이 제안한 transaction 중 이상이 (이 예의 경우 로 가정) 동시에 DELEGATE REQUEST 한 트랜잭션 번호는 표 3과 같이 "0,1,2,4,5,6,9"가 될 수 있다.At this time, assuming that
표 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'인 비트의 합이 이상인 것들은 서버들 중에 개 이상이 동시에 DELEGATE REQUEST 한 것을 의미하며, 미만인 비트의 트랜잭션은 동의를 얻는데 실패한 것을 표시하는 것을 알 수 있다. DELEGATE REQUEST 서버는 최소 한 개의 트랜잭션을 제안해야 유효한 DELEGATE REQUEST 서버로 카운트 될 수 있다. 표 1의 * 표시는 개 동의를 받은 트랜잭션에 대해서만 '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 The above are among the servers It means that more than one DELEGATE REQUEST was made at the same time, 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 When '1' is displayed only for transactions for which consent has been obtained, it can be displayed as '0'. have.
PREPARE 단계는 DELEGATE REQUEST에서 이상의 노드들이 동의를 획득한 결과인 제2 트랜잭션에 대해 합의 정족수의 합의 노드들을 결정한 결과에 대한 동의를 받기 위한 메시지(PREPARE 블록)를 각 합의 노드들(SERVER 0~2)로 전달할 수 있다. 합의가 완료된 401 블록에는 402 블록 합의체로 선택되었던 노드들의 pki 와 Qi가 기록되어 있다. 따라서 SERVER 0은 선택된 합의 정족수의 pki를 수학식 8과 같이 합쳐 통합 공개키 Pk를 생성하고, 수학식 9과 같이 Qi도 합쳐 Q를 생성할 수 있다.The PREPARE step is in DELEGATE REQUEST. 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 (
수학식 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은 준비한 PREPARE 블록에 대해 합의 정족수 모두가 서명한 다중서명을 통해 추후 블록의 한 비트라도 변경 또는 추가하지 못하게 할 수 있다.At this time,
또한, SERVER 0은 2f+1개 노드가 각각 누구인지 확인하기 위해 제2 비트맵 정보인 delegate server bitmap을 작성하여 같이 보낼 수 있다. (DELEGATE REQUEST가 최소 한 개 이상의 트랜잭션을 반드시 포함하도록 제한할 경우, 제1 비트맵 정보 Proposed Transaction bitmap 에서 제2 비트맵 정보 delegate server bitmap을 계산 할 수도 있다.)In addition,
따라서, SERVER 0은 제2 트랜잭션, 제1 비트맵 정보, 제2 비트맵 정보, 공개키 및 해시값 r(prepared transaction, Proposed Transaction bitmap, delegate server bitmap, Pk, r)을 포함한 준비 메시지에 자신의 전자서명을 추가하여 PREPARE 블록을 만들고 이를 다중서명을 수행할 SERVER(0,1,2)에 전달할 수 있다.Accordingly,
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은 전자서명을 다중서명으로 통합(aggregation)하는 과정을 수행할 수 있다. SERVER 0은 합의 정족수에 포함된 2f+1개 서버 모두의 동의를 다중 서명으로 받을 수 있다.
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,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,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
이 때, 각 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,1,2)는 만약 두 값이 동일하지 않을 경우, SERVER 0 이 Pk, Q, 또는 Msg를 속인 것이므로 이를 다른 노드에 알려 empty agreement를 진행하는 등의 액션을 수행할 수 있다.At this time, if each SERVER(0,1,2) is not the same,
이 때, 각 SERVER(0,1,2)는 SERVER 0 이 보낸 PREPARE 블록에 포함된 제2 트랜잭션 Prepared transaction과 제1 비트맵 정보 Proposed Transaction bitmap을 통해 각 트랜잭션이 개의 동의를 얻은 transaction들만 포함하고 있는지 검사할 수 있다.At this time, each SERVER(0,1,2) transmits the second transaction prepared in the PREPARE block sent by
예를 들어, 표 3은 각 서버가 보낸 제2 트랜잭션 Prepared transaction에 대한 정보이고, 표 1은 transaction을 제안한 서버에 대한 Proposed Transaction bitmap이라 할 때, 표 3에 포함된 transaction 과 일치하는 행이 표 1에 있고, 해당 행에 있는 모든 '1'의 개수의 합이 이상(본 예에서는 2개) 일 경우는 유효성 검사 성공, 미만이 하나라도 포함된 경우 유효성 검사 실패가 될 수 있다. 예를 들어 표 3의 Prepared transaction에 transaction (3,7,8) 중 하나가 포함되어 있을 경우 개의 서버가 이를 제안한 것이 아니므로 유효성 검사 실패가 될 수 있다.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 If it is more than (two in this example), validation is successful, 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) 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
이 때, 각 SERVER(0,1,2)은 상기 모든 유효성 검증 결과가 참인 경우 SERVER 0으로부터 전달 받은 r, 각 서버가 비밀로 가지고 있는 ki, ski 를 도 8의 식()에 적용하여 si를 생성하고 이를 포함한 메시지에 각 서버의 전자서명을 추가하여 SERVER 0에게 전달할 수 있다. At this time, each SERVER(0,1,2) represents r delivered from
si를 전달받은 SERVER 0은 각 서버의 전자서명을 바로 확인하지 않고, 도 8과같이 합쳐진 다중 서명(aggregated multi-signature)을 먼저 검증할 수 있다. 검증 결과가 거짓인 경우에 중간 공격자에 의한 서명 훼손 여부를 확인하기 위해 거짓 서명을 찾고, 해당 서버의 전자서명 확인 절차를 수행 할 수도 있다.
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이 2f+1개의 모든 서버로부터 si 수신을 완료한 경우 S를 생성하고 도 8의 verify 검사를 수행하여 이 결과가 참인 경우 (Prepared transaction, Pk, (r, S))를 포함한 메시지를 REPLY 단계에서 모든 노드에게 브로드케스팅하여 합의를 완료할 수 있다.When
또한, 합의 과정에서 발생하는 오류에 대해 다음과 같은 처리를 할 수 있다. 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
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
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
이상에서 합의를 실패하는 경우 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.
따라서, 수학식 11 을 수행할 때 모든 si 를 무조건 더하는 것이 아니라 도 10과 같이 임의의 두 값을 더하고 이 결과 값을 다시 둘씩 짝지어 더하는 과정을 반복하여 트리(tree)로 구성할 수 있다. 이 때, 트리의 꼭지점이 각각 도 8의 S, Q, Pk 에 상응할 수 있다. 여기서 S는 schnorr 다중서명 결과값 중 일부이며, Q 는 Qi 조각을 합친 값이고, Pk는 합쳐진 다중서명의 공개키이다.Therefore, Equation 11 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
도 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
본 발명의 일실시예에 따른 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치는 하나 이상의 프로세서(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
이 때, 상기 적어도 하나 이상의 프로그램은 상기 합의체 후보 요청 메시지를 송신한 노드가 상기 전체 노드들로부터 상기 전체 노드들 각각이 상기 합의체 후보 노드로 선택되었는지 여부를 지시하는 정보가 포함된 상기 합의체 후보 요청 메시지를 수신하고, 상기 합의체 후보 요청 메시지를 송신한 노드가 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]
(b는 상기 비잔틴 노드들의 수, Pmax_bzt는 상기 제1 기준 확률, k는 정수인 인덱스)
[수학식 2]
(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]
(b is the number of Byzantine nodes, P max_bzt is the first reference probability, k is an integer index)
[Equation 2]
(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.
상기 적어도 하나 이상의 프로그램은
상기 전체 노드들로부터 상기 전체 노드들 각각이 상기 합의체 후보 노드로 선택되었는지 여부를 지시하는 정보가 포함된 상기 합의체 후보 요청 메시지를 수신하고,
상기 합의체 후보 요청 메시지를 송신한 노드가 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.
상기 적어도 하나 이상의 프로그램은
상기 합의 정족수만큼의 상기 합의체 후보 요청 메시지들을 수신한 경우, 상기 합의 정족수만큼의 상기 합의체 후보 요청 메시지들에 포함된 서로 동일한 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.
상기 적어도 하나 이상의 프로그램은
상기 합의체 후보 노드들의 상기 제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.
상기 합의 노드들은
상기 제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.
상기 적어도 하나 이상의 프로그램은
상기 합의체 후보 요청 메시지들에 포함된 공개키들 및 정족수 값들을 각각 통합하여 제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.
상기 합의 노드들은
기등록된 공개키들 및 기등록된 정족수 값들을 각각 통합하여 제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.
상기 합의 노드들은
상기 제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.
블록체인의 합의체 후보 노드들로부터 클라이언트에 의해 제안된 분산 합의를 요청하는 제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]
(b는 상기 비잔틴 노드들의 수, Pmax_bzt는 상기 제1 기준 확률, k는 정수인 인덱스)
[수학식 2]
(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]
(b is the number of Byzantine nodes, P max_bzt is the first reference probability, k is an integer index)
[Equation 2]
(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.
상기 합의 노드들로 결정하는 단계는
상기 전체 노드들로부터 상기 전체 노드들 각각이 상기 합의체 후보 노드로 선택되었는지 여부를 지시하는 정보가 포함된 상기 합의체 후보 요청 메시지를 수신하고,
상기 합의체 후보 요청 메시지를 송신한 노드가 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.
상기 합의 노드들로 결정하는 단계는
상기 합의 정족수만큼의 상기 합의체 후보 요청 메시지들을 수신한 경우, 상기 합의 정족수만큼의 상기 합의체 후보 요청 메시지들에 포함된 서로 동일한 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.
상기 준비 메시지를 송신하는 단계는
상기 합의체 후보 노드들의 상기 제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.
상기 준비 메시지를 송신하는 단계는
상기 합의 노드들이, 상기 제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.
상기 준비 메시지를 송신하는 단계는
상기 합의체 후보 요청 메시지들에 포함된 공개키들 및 정족수 값들을 각각 통합하여 제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.
상기 준비 메시지를 송신하는 단계는
상기 합의 노드들이, 기등록된 공개키들 및 기등록된 정족수 값들을 각각 통합하여 제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.
상기 분산 합의를 완료하는 단계는
상기 합의 노드들이 상기 제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.
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)
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 |
-
2020
- 2020-05-22 KR KR1020200061517A patent/KR102406020B1/en active IP Right Grant
Non-Patent Citations (3)
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 |