KR20220091850A - Managing method for blockchain based on enhanced practical byzantine fault tolerance, blockchain system and node apparatus - Google Patents

Managing method for blockchain based on enhanced practical byzantine fault tolerance, blockchain system and node apparatus Download PDF

Info

Publication number
KR20220091850A
KR20220091850A KR1020200182993A KR20200182993A KR20220091850A KR 20220091850 A KR20220091850 A KR 20220091850A KR 1020200182993 A KR1020200182993 A KR 1020200182993A KR 20200182993 A KR20200182993 A KR 20200182993A KR 20220091850 A KR20220091850 A KR 20220091850A
Authority
KR
South Korea
Prior art keywords
nodes
node
message
blockchain
request
Prior art date
Application number
KR1020200182993A
Other languages
Korean (ko)
Other versions
KR102447063B1 (en
Inventor
정형수
조현수
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Priority to KR1020200182993A priority Critical patent/KR102447063B1/en
Publication of KR20220091850A publication Critical patent/KR20220091850A/en
Application granted granted Critical
Publication of KR102447063B1 publication Critical patent/KR102447063B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 

Abstract

A practical byzantine fault tolerance (PBFT)-based blockchain information processing method comprises the steps of: transmitting, by a representative node of a blockchain that receives a first request from a client, a pre-preparation message to backup nodes; transmitting, by at least one node of the backup nodes, a preparation message to other nodes excluding itself, the at least one node that is successful in verifying the pre-preparation message; transmitting, by at least one node of the other nodes, a commit message to only a specific group of nodes excluding itself, the at least one node that receives the preparation message from nodes in a number greater than or equal to a first threshold number; and transmitting, by at least one node of the nodes that receive the commit message, a response message to the client, the at least one node that receives the commit message from the nodes in the number greater than or equal to the first threshold number.

Description

개선된 PBFT 기반의 블록체인 관리 방법, 블록체인 시스템 및 노드 장치{MANAGING METHOD FOR BLOCKCHAIN BASED ON ENHANCED PRACTICAL BYZANTINE FAULT TOLERANCE, BLOCKCHAIN SYSTEM AND NODE APPARATUS}Improved PBFT-based blockchain management method, blockchain system and node device

이하 설명하는 기술은 블록체인에서의 합의 기법에 관한 것이다.The technology to be described below relates to a consensus technique in the block chain.

블록체인(blockchain)은 다수의 노드들이 참여하는 탈중앙화 시스템이다. 블록체인은 데이터의 무결성을 보장하여 다양한 애플리케이션이 연구되고 있다. 블록체인 기술 중 합의 알고리즘(Consensus Algorithm) 설계는 매우 중요한 핵심 기술이다.Blockchain is a decentralized system in which multiple nodes participate. Blockchain guarantees data integrity and various applications are being studied. Among blockchain technologies, the design of a consensus algorithm is a very important core technology.

합의 알고리즘은 다수 노드들이 존재하는 P2P 네트워크에서 정보 불일치 발생 시 노드 간 하나의 공통된 DB를 유지하기 위해 어떤 정보를 선택할지 결정하는 기술이다. 블록체인은 합의 알고리즘을 통해 블록 생성 권한과 분기된 블록체인 선택에 대한 기법을 결정한다. 대표적 합의 알고리즘은 PoW(Proof of Work), PoS(Proof of Stake), PBFT(Practical Byzantine Fault Tolerance) 등이 있다.The consensus algorithm is a technology that determines which information to select in order to maintain one common DB between nodes when information discrepancy occurs in a P2P network in which multiple nodes exist. The blockchain determines the block creation authority and the technique for forked blockchain selection through a consensus algorithm. Representative consensus algorithms include Proof of Work (PoW), Proof of Stake (PoS), and Practical Byzantine Fault Tolerance (PBFT).

Giuliana Santos Veronese, Efficient Byzantine Fault-Tolerance, IEEE Transactions on Computers Volume: 62, Issue: 1, Jan. 2013Giuliana Santos Veronese, Efficient Byzantine Fault-Tolerance, IEEE Transactions on Computers Volume: 62, Issue: 1, Jan. 2013

동일한 타임 스탬프(timestamp)에서 데이터가 서로 다른 블록이 발생하는 블록체인 분기 현상이 나타나면, PoW와 PoS는 이후 가장 길게 연장된 블록체인을 선택한다. 이와 같은 경우, PoW와 PoS는 일시적 정보 불일치를 허용하는 방식으로 블록체인의 데이터 신뢰도를 낮추게 된다. 반면 PBFT는 블록체인에 추가될 데이터에 대한 합의 노드 간의 정상적인 합의 수행 완료 후에만 블록을 블록체인에 추가함으로써 블록체인 데이터의 불일치를 원천 방지하여, 데이터에 대한 신뢰도를 향상시킨다. 하지만, PBFT는 합의 과정에서 모든 노드들이 메시지를 교환하는 방식을 사용하여 메시지 교환에 많은 부하가 발생한다. 따라서, 현재 PBFT 기반의 블록체인은 수십 개의 노드들로만 구성 가능한 것으로 알려졌다.When a block chain branching phenomenon occurs in which blocks with different data occur at the same timestamp, PoW and PoS select the longest-extended block chain thereafter. In such a case, PoW and PoS will lower the data reliability of the blockchain in a way that allows for temporary information inconsistency. On the other hand, PBFT prevents inconsistency of blockchain data by adding blocks to the blockchain only after the normal consensus among nodes for data to be added to the blockchain is completed, thereby improving data reliability. However, PBFT uses a method in which all nodes exchange messages during the consensus process, which causes a lot of load on message exchange. Therefore, it is known that the current PBFT-based blockchain can only be configured with dozens of nodes.

이하 설명하는 기술은 메시지 교환의 부하를 낮춘 PBFT 기반의 합의 기법을 제공하고자 한다.The technology to be described below is intended to provide a PBFT-based consensus technique that reduces the load of message exchange.

개선된 PBFT 기반의 블록체인 관리 방법은 클라이언트로부터 제1 요청을 수신한 블록체인의 대표 노드가 선 준비(Pre-prepare) 메시지를 백업 노드들에 전달하는 단계, 상기 백업 노드들 중 상기 선 준비 메시지의 검증이 성공한 적어도 하나의 노드는 자신을 제외한 나머지 노드들에 준비(Prepare) 메시지를 전달하는 단계, 상기 나머지 노드들 중 기준 개수 이상의 노드들로부터 상기 준비 메시지를 수신하는 적어도 하나의 노드는 자신을 제외한 특정 그룹의 노드들에만 커밋(Commit) 메시지를 전달하는 단계 및 상기 커밋 메시지를 수신한 노드들 중 상기 기준 개수 이상의 노드들로부터 상기 커밋 메시지를 수신하는 적어도 하나의 노드는 응답 메시지를 상기 클라이언트에 전달하는 단계를 포함한다.The improved PBFT-based blockchain management method comprises the steps of: a representative node of a blockchain that has received a first request from a client, delivers a pre-prepare message to backup nodes, the pre-prepare message among the backup nodes At least one node that has succeeded in verifying transmits a prepare message to the remaining nodes except for itself, and at least one node that receives the prepare message from more than a reference number of nodes among the remaining nodes transmitting a commit message only to nodes in a specific group except for, and at least one node receiving the commit message from nodes equal to or greater than the reference number of nodes receiving the commit message sends a response message to the client including the step of delivering.

개선된 PBFT 기반 블록체인 시스템은 제1 요청을 블록체인에 전달하는 클라이언트 장치 및 상기 블록체인을 구성하는 복수의 노드들을 포함함한다. The improved PBFT-based blockchain system includes a client device that forwards a first request to a blockchain and a plurality of nodes constituting the blockchain.

대표 노드는 상기 제1 요청을 수신하고, 선 준비 메시지를 상기 백업 노드들에 전달하고, 상기 백업 노드들 중 상기 선 준비 메시지의 검증이 성공한 적어도 하나의 노드는 상기 복수의 노드들 중 자신을 제외한 나머지 노드들에 준비 메시지를 전달한다. The representative node receives the first request, transmits a pre-preparation message to the backup nodes, and at least one node that has succeeded in verifying the pre-prepare message among the backup nodes is selected from among the plurality of nodes except for itself. It sends a ready message to the remaining nodes.

상기 나머지 노드들 중 기준 개수 이상의 노드들로부터 상기 준비 메시지를 수신하는 적어도 하나의 노드는 자신을 제외한 특정 그룹의 노드들에만 커밋 메시지를 전달한다.At least one node that receives the preparation message from nodes equal to or greater than the reference number among the remaining nodes transmits the commit message only to nodes of a specific group except itself.

PBFT 기반 합의 과정 처리를 위한 프로그램 및 커밋 메시지를 전달할 특정 그룹에 대한 정보를 저장하는 저장장치, 클라이언트의 제1 요청에 대한 PBFT 기반 합의 과정에서 다른 노드로부터 준비 메시지를 수신하고, 상기 커밋 메시지를 상기 특정 그룹에 송신하는 통신장치 및 기준 개수 이상의 노드들로부터 상기 준비 메시지를 수신하는 경우 상기 특정 그룹에 속한 노드들에 상기 커밋 메시지를 전달하도록 제어하는 제어장치를 포함한다.A storage device that stores information about a specific group to which a program for PBFT-based consensus process processing and a commit message will be delivered, receives a preparation message from another node in the PBFT-based consensus process for a client's first request, and stores the commit message and a communication device that transmits to a specific group and a control device that controls to deliver the commit message to nodes belonging to the specific group when the preparation message is received from nodes equal to or greater than a reference number.

블록체인을 구성하는 노드들의 개수는 3f+1 ≤ N개 이고, 상기 기준 개수는 2f개 이다. 상기 특정 그룹은 2f+1개의 노드로 구성되고, 상기 f는 상기 블록체인에서 장애 노드로 허용하는 임계 개수이다.The number of nodes constituting the block chain is 3f+1 ≤ N, and the reference number is 2f. The specific group consists of 2f+1 nodes, where f is the threshold number allowed as a failed node in the block chain.

이하 설명하는 기술은 PBFT 합의 과정에서 메시지 교환의 대상을 한정하여 보다 많은 노드들이 블록체인에 참여할 수 있다. 동시에 이하 설명하는 기술은 종래 PBFT의 장점을 그대로 계승한다. The technology described below limits the subject of message exchange in the PBFT consensus process, so that more nodes can participate in the blockchain. At the same time, the technology described below inherits the advantages of the conventional PBFT as it is.

도 1은 PBFT 합의 과정에 대한 예이다.
도 2는 PBFT 기반의 새로운 합의 과정에 대한 예이다.
도 3은 PBFT 기반 블록체인의 노드 장치에 대한 예이다.
1 is an example of a PBFT consensus process.
2 is an example of a new consensus process based on PBFT.
3 is an example of a node device of a PBFT-based blockchain.

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

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 해당 구성요소들은 상기 용어들에 의해 한정되지는 않으며, 단지 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 이하 설명하는 기술의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first, second, A, and B may be used to describe various components, but the components are not limited by the above terms, and only for the purpose of distinguishing one component from other components. is used only as For example, a first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component without departing from the scope of the present invention. and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.

본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함한다" 등의 용어는 설명된 특징, 개수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.In terms of terms used herein, the singular expression should be understood to include the plural expression unless the context clearly dictates otherwise, and terms such as "comprises" include the described feature, number, step, operation, element. , parts or combinations thereof are to be understood, but not to exclude the possibility of the presence or addition of one or more other features or numbers, step operation components, parts or combinations thereof.

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

또, 방법 또는 동작 방법을 수행함에 있어서, 상기 방법을 이루는 각 과정들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 과정들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In addition, in performing the method or method of operation, each process constituting the method may occur differently from the specified order unless a specific order is clearly described in context. That is, each process may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.

블록체인은 관리 대상 데이터를 '블록'이라고 하는 소규모 데이터들이 P2P 방식을 기반으로 생성된 체인 형태의 연결고리 기반 분산 데이터 저장환경을 의미한다. 블록체인은 공개 유형에 따라 퍼블릭 블록체인, 컨소시엄 블록체인, 프라이빗 블록체인으로 구분될 수 있다. 이하 설명하는 기술은 공개 유형에 관계없이 다양한 블록체인에 적용될 수 있다.Blockchain refers to a chain-type, link-based distributed data storage environment in which small pieces of data called 'blocks' are created based on the P2P method. Blockchain can be divided into public block chain, consortium block chain, and private block chain according to the type of disclosure. The technology described below can be applied to various blockchains regardless of the type of disclosure.

블록체인은 다수의 블록체인 노드로 구성된다. 블록체인 노드는 서버, 개인 단말, IoT 디바이스 등과 같은 다양한 장치의 조합으로 구성될 수 있다.A blockchain consists of multiple blockchain nodes. A blockchain node can be composed of a combination of various devices such as servers, personal terminals, IoT devices, and the like.

블록체인에서 노드 간 메시지 교환에서 특정 데이터를 암호화하여 전달할 수 있다. 다양한 암호화 방식이 적용가능하다. 이하 대표적인 암호화 방식으로 공개키(public key) 방식의 암호화 방법을 중심으로 설명한다. 공개키와 개인키(private key)는 공개키 방식의 암호화에 사용되는 키이다. 공개키는 데이터를 암호화하는 키이고, 개인키는 암호화된 데이터를 복호하는 키이다. 공개키와 개인키는 서로 짝을 이루고 다양한 공개키 암호화 방법(예컨대, RSA, 타원곡선암호 등)을 이용하여 무작위로 생산될 수 있다. In the blockchain, certain data can be encrypted and delivered in the message exchange between nodes. Various encryption methods are applicable. Hereinafter, a public key encryption method as a representative encryption method will be mainly described. A public key and a private key are keys used in public key encryption. The public key is a key that encrypts data, and the private key is a key that decrypts the encrypted data. A public key and a private key are paired with each other and can be randomly generated using various public key encryption methods (eg, RSA, elliptic curve cryptography, etc.).

이하 설명하는 기술은 PBFT 기반의 합의 기법에 관한 것이다. 이하 설명하는 기술은 PBFT의 프로토콜을 개량하여 메시지 교환을 줄이면서도 종전의 PBFT와 동일한 성능을 보장한다.The technology to be described below relates to a PBFT-based consensus technique. The technology to be described below guarantees the same performance as the previous PBFT while reducing message exchange by improving the protocol of the PBFT.

먼저, 종래 PBFT 합의 알고리즘을 간략하게 설명한다. 도 1은 PBFT 합의 과정(100)에 대한 예이다.First, the conventional PBFT consensus algorithm will be briefly described. 1 is an example of a PBFT consensus process 100 .

PBFT 합의 알고리즘은 약속된 행동을 하지 않는 비잔틴 장애(Byzantine Faulty) 노드가 존재할 수 있는 비동기 네트워크에서도 비잔틴 장애 노드가 일정 비율 이하에서는 정상 합의가 가능하다. 비잔틴 장애 노드 또는 간략하게 장애 노드는 PBFT 합의 알고리즘에 따른 동작을 하지 않는 노드이다. 장애 노드는 물리적인 에러 또는 외부 공격에 의해 비정상적인 동작을 하는 노드일 수 있다. In the PBFT consensus algorithm, normal agreement is possible when the Byzantine Faulty nodes are below a certain percentage even in an asynchronous network where Byzantine Faulty nodes that do not perform the promised action can exist. A Byzantine faulty node, or simply a faulty node, is a node that does not operate according to the PBFT consensus algorithm. A faulty node may be a node that operates abnormally due to a physical error or an external attack.

블록체인의 전체 노드 또는 특정 클러스터에 참여하는 노드의 개수가 N이라고 한다. 이때 장애 노드의 개수를 f라고 하면, PBFT에서는 f가 (N-1)/3 이하이면 합의에 성공할 수 있다. 즉, N ≥ 3f+1이면, 장애 노드가 포함되어도 정상적 합의가 가능하다. 따라서, PBFT는 N ≥ 3f+1인 경우를 전제한다.The total number of nodes in the blockchain or the number of nodes participating in a specific cluster is called N. In this case, if the number of failed nodes is f, in PBFT, if f is (N-1)/3 or less, consensus can be successful. That is, if N ≥ 3f+1, normal agreement is possible even if a faulty node is included. Therefore, PBFT assumes that N ≥ 3f+1.

블록체인에 참여하는 노드들은 서로 네트워크로 연결되고, 사전에 다른 모든 노드들의 공유키를 알고 있다고 전제한다. It is assumed that nodes participating in the blockchain are connected to each other by network and know the shared key of all other nodes in advance.

PBFT 합의 과정(100)은 요청(Request) 단계(110), 선 준비 단계(Pre-prepare)(120), 준비(Prepare) 단계(130), 커밋(Commit) 단계(140) 및 응답(Reply) 단계(140)로 구성될 수 있다.The PBFT consensus process 100 is a request step 110, a pre-prepare step 120, a prepare step 130, a commit step 140, and a reply (Reply) Step 140 may be configured.

클라이언트(client)는 블록체인에 일정한 트랜잭션을 전달하는 장치이다. 클라이언트는 PC, 스마트기기, 서버 등과 같은 장치일 수 있다. 도 1은 PC 형태의 클라이언트를 도시하였다.A client is a device that delivers a certain transaction to the block chain. The client may be a device such as a PC, a smart device, or a server. 1 shows a client in the form of a PC.

노드들은 네트워크로 연결되어 블록체인을 구성하는 장치이다. 도 1은 4개의 노드(node 1 내지 mode 4)를 예시적으로 도시하였다. 노드들 중 클라이언트 장치로부터 일정한 요청을 최초 수신하여 처리하는 노드를 대표 노드(primary node)라고 한다. 대표 노드는 클라이언트로부터 메시지를 받고, 이 메시지의 순서를 정해주는 역할을 한다. 대표 노드는 사전에 설정될 수 있다. 도 1은 노드 1(mode 1)가 대표 노드인 예이다. 노드들 중 대표 노드를 제외한 노드를 백업 노드(backup node)라고도 한다. 도 1에서 노드 2(node 2), 노드 3(node 3) 및 노드 4(node 4)가 백업 노드이다. Nodes are devices that are connected to a network and compose a blockchain. 1 exemplarily shows four nodes (node 1 to mode 4). A node that initially receives and processes a predetermined request from a client device among nodes is called a primary node. The representative node receives messages from the client and plays a role in determining the order of these messages. The representative node may be set in advance. 1 is an example in which node 1 (mode 1) is a representative node. A node excluding the representative node among the nodes is also called a backup node. In FIG. 1 , node 2 (node 2), node 3 (node 3), and node 4 (node 4) are backup nodes.

요청 단계에서 클라이언트가 일정한 요청을 블록체인(또는 클러스터)에 전달한다(110). 경우에 따라서, 클라이언트는 모든 노드에 요청을 전달할 수도 있다. PBFT의 기본적인 프로토콜에 따라 클라이언트는 대표 노드에 요청을 전달한다고 전제한다.In the request step, the client transmits a certain request to the blockchain (or cluster) (110). In some cases, the client may forward a request to all nodes. According to the basic protocol of PBFT, it is assumed that the client forwards the request to the representative node.

뷰(view)는 대표 노드가 대표 노드로 활동하는 기간의 단위이다. 뷰 v의 대표 노드는 v mod N번 노드일 수 있다. A view is a unit of period during which a representative node acts as a representative node. A representative node of the view v may be v mod Nth node.

대표 노드인 노드 1은 클라이언트로부터 요청 메시지 <REQUEST, o, t, c>sc를 수신한다. o는 클라이언트가 요청하는 동작(operation), t는 타임 스탬프, c는 클라이언트를 식별할 수 있는 식별자이다. 클라이언트는 o, t 및 c와 함께 자신의 서명 sc을 하여 요청 메시지를 전달한다. Node 1, the representative node, receives the request message <REQUEST, o, t, c>s c from the client. o is the operation requested by the client, t is a time stamp, and c is an identifier that can identify the client. The client sends its request message with its signature sc with o, t and c .

선 준비 단계(120)에서 노드 1은 유효한 요청을 수신한 경우, 해당 요청의 순서를 나타내는 시퀀스 번호(sequence number) n을 부여한다. 노드 1은 서명 sc을 공개키로 복호하여 메시지가 유효한지 검증할 수 있다. 선 준비 단계(120)에서 노드 1은 선 준비(Pre-prepare) 메시지 <PRE-PREPARE, v, n, D(m)>sp를 백업 노드에 전달(배포)한다. n은 시퀀스 번호, v는 현재 메시지가 전송되는 뷰, D(m)은 요청 메시지 m의 요약본을 말한다. D(m)은 클라이언트가 전달한 메시지 m의 해싱값일 수 있다. 노드 1은 v, n, D(m)와 함께 자신의 서명 sp을 후여 전 준비 메시지를 전달한다.When the node 1 receives a valid request in the pre-preparation step 120 , it assigns a sequence number n indicating the order of the corresponding request. Node 1 can verify that the message is valid by decrypting the signature sc with the public key. In the pre-preparation step 120 , node 1 delivers (distributes) a pre-prepare message <PRE-PREPARE, v, n, D(m)>s p to the backup node. n is a sequence number, v is the view to which the current message is transmitted, and D(m) is the summary of the request message m. D(m) may be a hashing value of message m delivered by the client. Node 1 sends its own signature sp along with v, n, and D(m) and sends a pre-preparation message.

준비 단계(130)에서 백업 노드들(node 2 ~ node 4) 각각은 대표 노드(node 1)에서 전달한 선 준비 메시지를 검증하고, 검증 결과가 참이면 각각 나머지 노드들에 준비(Prepare) 메시지를 전달한다. 백업 노드는 D(m)과 V, N이 서로 대응되는 값인지 검증한다. 검증 결과 서로 대응되지 않는 값이라면 백업 노드는 선 준비 메시지를 수용하지 않는다. 결과가 참이라면 백업 노드는 준비 메시지 <PREPARE, v, n, d, i)>si를 생성해 네트워크의 나머지 모든 노드에게 전달한다. n은 시퀀스 번호, v는 현재 메시지가 전송되는 뷰, D(m)은 요청 메시지 m의 요약본이고, i는 백업 노드의 식별자이다. si는 노드 i의 서명이다. 예컨대, 도 1에서 노드 2는 선 준비 메시지를 검증하고, 검증한 결과가 참이면 다른 모든 노드인 노드 1, 노드 3 및 노드 4에 준비 메시지를 전달한다.In the preparation step 130, each of the backup nodes (node 2 ~ node 4) verifies the pre-preparation message delivered by the representative node (node 1), and if the verification result is true, each of the other nodes transmits the Prepare message do. The backup node verifies whether D(m), V, and N correspond to each other. As a result of verification, if the values do not correspond to each other, the backup node does not accept the pre-ready message. If the result is true, the backup node generates a ready message <PREPARE, v, n, d, i)>s i and forwards it to all other nodes in the network. n is a sequence number, v is the view to which the current message is transmitted, D(m) is the summary of the request message m, and i is the identifier of the backup node. s i is the signature of node i. For example, in FIG. 1 , node 2 verifies the pre-preparation message, and if the verification result is true, the node 2 transmits the ready message to all other nodes, i.e., Node 1, Node 3, and Node 4.

각 노드는 선 준비 메시지와 준비 메시지를 수집하여 수신한 개수를 파악한다. 백업 노드는 선 준비 메시지 개수가 2f+1개이고, 준비 메시지가 2f개 이상인 경우 준비 검증(prepared certificate)이라고 판단한다. Each node collects pre-ready messages and ready messages to determine the number of received messages. If the number of pre-prepared messages is 2f+1 and the number of ready messages is 2f or more, the backup node determines that it is a prepared certificate.

커밋 단계(140)에서 준비 메시지를 수신한 각 노드는 자신이 준비 검증 상태인 경우, 다른 노드들에 커밋(commit) 메시지를 전달한다. 즉, 해당 노드는 Prepare 메시지가 2f개 이상이고, 준비 메시지가 참인 경우 커밋 메시지 <COMMIT, v, n, D(m), i)>si를 전달한다. n은 시퀀스 번호, v는 현재 메시지가 전송되는 뷰, D(m)은 요청 메시지 m의 요약본이고, i는 백업 노드의 식별자이다. si는 노드 i의 서명이다.Each node that has received the preparation message in the commit step 140 transmits a commit message to other nodes when it is in the readiness verification state. That is, if the node has more than 2f Prepare messages and the prepare message is true, the node delivers the commit message <COMMIT, v, n, D(m), i)>s i . n is a sequence number, v is the view to which the current message is transmitted, D(m) is the summary of the request message m, and i is the identifier of the backup node. s i is the signature of node i.

커밋 메시지를 수신하는 노드들 각각은 수신한 커밋 메시지의 개수를 파악한다. 각 노드는 자신을 포함하여 수신한 커밋 메시지가 2f+1개가 이상인 경우, 커밋 검증(commit certificate)라고 판단한다. 응답 단계(150)에서 각 노드는 자신이 커밋 검증 상태인 경우, 응답 메시지를 클라이언트에 전달한다. 즉, 응답 단계(150)에서 각 노드는 수신한 커밋 메시지의 개수가 2f+1개 이상인 경우, 응답 메시지를 클라이언트에 전달한다. 응답 단계(150)에서도 각 노드는 D(m)과 V, N이 서로 대응되는 값인지 검증할 수 있다. Each of the nodes receiving the commit message counts the number of received commit messages. Each node determines that it is a commit certificate if more than 2f+1 commit messages including itself are received. In the response step 150 , each node transmits a response message to the client when it is in the commit verification state. That is, in the response step 150 , when the number of received commit messages is 2f+1 or more, each node transmits the response message to the client. Also in the response step 150 , each node may verify whether D(m), V, and N correspond to each other.

응답 단계(150)에서 각 노드는 커밋 메시지가 참이고, 자신이 수신한 커밋 메시지가 2f+1개가 이상인 경우 응답 메시지 <RELPY, v, t, c, i, r)>sic를 클라이언트에 전달한다. v는 현재 메시지가 전송되는 뷰, t는 타임 스탬프, c는 클라이언트 식별자, i는 노드 식별자 및 r은 실행 결과값이다. sic는 응답 메시지 전달하는 노드의 서명이다. 또한, 각 노드는 2f+1개 이상의 다른 노드들로부터 같은 값의 커밋 메시지를 수신하면 클라이언트가 생성한 트랜잭션의 블록을 체인에 추가할 수 있다. In response step 150, each node delivers the response message <RELPY, v, t, c, i, r)>s ic to the client when the commit message is true and the number of commit messages it has received is 2f+1 or more do. v is the view where the current message is transmitted, t is the time stamp, c is the client identifier, i is the node identifier, and r is the execution result. s ic is the signature of the node forwarding the response message. Also, when each node receives a commit message of the same value from 2f+1 or more other nodes, it can add the block of the transaction created by the client to the chain.

응답 단계(150)에서 클라이언트는 f+1 이상의 노드들로부터 동일한 응답 메시지를 받으면 자신의 요청에 따른 결과가 처리된 것으로 확인한다.In response step 150, when the client receives the same response message from f+1 or more nodes, it confirms that the result according to its request has been processed.

도 2는 PBFT 기반의 새로운 합의 과정(200)에 대한 예이다. 도 2는 블록체인 시스템에서의 합의 과정에 해당한다.2 is an example of a new consensus process 200 based on PBFT. Figure 2 corresponds to the consensus process in the blockchain system.

블록체인의 전체 노드 또는 특정 클러스터에 참여하는 노드의 개수가 N이라고 한다. 이때 장애 노드의 개수를 f라고 하면, PBFT에서는 f가 (N-1)/3 이하이면 합의에 성공할 수 있다. 즉, N ≥ 3f+1이면, 장애 노드가 포함되어도 정상적 합의가 가능하다. 따라서, PBFT는 N ≥ 3f+1인 경우를 전제한다. 도 2는 노드 1(node 1)이 장애 노드인 경우이다.The total number of nodes in the blockchain or the number of nodes participating in a specific cluster is called N. In this case, if the number of failed nodes is f, in PBFT, if f is (N-1)/3 or less, consensus can be successful. That is, if N ≥ 3f+1, normal agreement is possible even if a faulty node is included. Therefore, PBFT assumes that N ≥ 3f+1. 2 is a case in which node 1 (node 1) is a faulty node.

블록체인에 참여하는 노드들은 서로 네트워크로 연결되고, 사전에 다른 모든 노드들의 공유키를 알고 있다고 전제한다. It is assumed that nodes participating in the blockchain are connected to each other by network and know the shared key of all other nodes in advance.

새로운 PBFT 합의 과정(200)은 요청(Request) 단계(210), 선 준비 단계(Pre-prepare)(220), 준비(Prepare) 단계(230), 커밋(Commit) 단계(240) 및 응답(Reply) 단계(240)로 구성될 수 있다.The new PBFT consensus process 200 includes a request step 210, a pre-prepare step 220, a prepare step 230, a commit step 240, and a reply ) step 240 .

클라이언트는 블록체인에 일정한 트랜잭션을 전달하는 장치이다. 클라이언트는 PC, 스마트기기, 서버 등과 같은 장치일 수 있다. 도 2는 PC 형태의 클라이언트를 도시하였다.A client is a device that delivers a certain transaction to the blockchain. The client may be a device such as a PC, a smart device, or a server. 2 shows a client in the form of a PC.

노드들은 네트워크로 연결되어 블록체인을 구성하는 장치이다. 도 2는 4개의 노드(node 1 내지 mode 4)를 예시적으로 도시하였다. 대표 노드는 클라이언트로부터 메시지를 받고, 이 메시지의 순서를 정해주는 역할을 한다. 뷰 v에서 대표 노드는 v mod N번 노드일 수 있다. 도 2는 노드 1가 대표 노드인 예이다. Nodes are devices that are connected to a network and compose a blockchain. 2 exemplarily shows four nodes (nodes 1 to 4). The representative node receives messages from the client and plays a role in determining the order of these messages. In view v, the representative node may be v mod Nth node. 2 is an example in which node 1 is a representative node.

노드들 중 대표 노드를 제외한 노드를 백업 노드(backup node)라고도 한다. 도 1에서 노드 2(node 2), 노드 3(node 3) 및 노드 4(node 4)가 백업 노드이다. A node excluding the representative node among the nodes is also called a backup node. In FIG. 1 , node 2 (node 2), node 3 (node 3), and node 4 (node 4) are backup nodes.

요청 단계에서 클라이언트가 일정한 요청을 블록체인(또는 클러스터)에 전달한다(210). 경우에 따라서, 클라이언트는 모든 노드에 요청을 전달할 수도 있다. PBFT의 기본적인 프로토콜에 따라 클라이언트는 대표 노드에 요청을 전달한다고 전제한다.In the request step, the client transmits a certain request to the block chain (or cluster) (210). In some cases, the client may forward a request to all nodes. According to the basic protocol of PBFT, it is assumed that the client forwards the request to the representative node.

대표 노드인 노드 1은 클라이언트로부터 요청 메시지 <REQUEST, o, t, c>sc를 수신한다. o는 클라이언트가 요청하는 동작, t는 타임 스탬프, c는 클라이언트를 식별할 수 있는 식별자이다. 클라이언트는 o, t 및 c와 함께 자신의 서명 sc을 하여 요청 메시지를 전달한다. Node 1, the representative node, receives the request message <REQUEST, o, t, c>s c from the client. o is the operation requested by the client, t is a time stamp, and c is an identifier that can identify the client. The client sends its request message with its signature sc with o, t and c .

선 준비 단계(220)에서 노드 1은 유효한 요청을 수신한 경우, 해당 요청의 순서를 나타내는 시퀀스 번호 n을 부여한다. 노드 1은 서명 sc을 공개키로 복호하여 메시지가 유효한지 검증할 수 있다. 선 준비 단계(120)에서 노드 1은 선 준비 메시지 <PRE-PREPARE, v, n, D(m)>sp를 백업 노드에 전달(배포)한다. n은 시퀀스 번호, v는 현재 메시지가 전송되는 뷰, D(m)은 요청 메시지 m의 요약본을 말한다. D(m)은 클라이언트가 전달한 메시지 m의 해싱값일 수 있다. 노드 1은 v, n, D(m)와 함께 자신의 서명 sp을 후여 전 준비 메시지를 전달한다.In the pre-preparation step 220 , when receiving a valid request, node 1 assigns a sequence number n indicating the order of the request. Node 1 can verify that the message is valid by decrypting the signature sc with the public key. In the pre-preparation step 120 , node 1 delivers (distributes) the pre-preparation message <PRE-PREPARE, v, n, D(m)>s p to the backup node. n is the sequence number, v is the view to which the current message is transmitted, and D(m) is the summary of the request message m. D(m) may be a hashing value of the message m delivered by the client. Node 1 sends its own signature sp along with v, n, and D(m) and sends a pre-preparation message.

준비 단계(230)에서 백업 노드들(node 2 ~ node 4) 각각은 대표 노드(node 1)에서 전달한 선 준비 메시지를 검증하고, 검증 결과가 참이면 각각 나머지 노드들에 준비 메시지를 전달한다. 백업 노드는 D(m)과 V, N이 서로 대응되는 값인지 검증한다. 검증 결과 서로 대응되지 않는 값이라면 백업 노드는 선 준비 메시지를 수용하지 않는다. 결과가 참이라면 백업 노드는 준비 메시지 <PREPARE, v, n, d, i)>si를 생성해 네트워크의 나머지 모든 노드에게 전달한다. n은 시퀀스 번호, v는 현재 메시지가 전송되는 뷰, D(m)은 요청 메시지 m의 요약본이고, i는 백업 노드의 식별자이다. si는 노드 i의 서명이다. 예컨대, 도 2에서 노드 2는 선 준비 메시지를 검증하고, 검증한 결과가 참이면 다른 모든 노드인 노드 1, 노드 3 및 노드 4에 준비 메시지를 전달한다.In the preparation step 230 , each of the backup nodes (node 2 to node 4) verifies the pre-preparation message delivered by the representative node (node 1), and if the verification result is true, each of the backup nodes (node 2 to node 4) transmits the preparation message to the remaining nodes. The backup node verifies whether D(m), V, and N correspond to each other. As a result of verification, if the values do not correspond to each other, the backup node does not accept the pre-ready message. If the result is true, the backup node generates a ready message <PREPARE, v, n, d, i)>s i and forwards it to all other nodes in the network. n is a sequence number, v is the view to which the current message is transmitted, D(m) is the summary of the request message m, and i is the identifier of the backup node. s i is the signature of node i. For example, in FIG. 2 , node 2 verifies the pre-preparation message, and if the verification result is true, the node 2 transmits the ready message to all other nodes, i.e., node 1, node 3, and node 4.

각 노드는 선 준비 메시지와 준비 메시지를 수집하여 수신한 개수를 파악한다. 백업 노드는 선 준비 메시지 개수가 2f+1개이고, 준비 메시지가 2f개 이상인 경우 준비 검증이라고 판단한다. Each node collects pre-ready messages and ready messages to determine the number of received messages. If the number of pre-ready messages is 2f+1 and the number of ready messages is 2f or more, the backup node determines that it is readiness verification.

커밋 단계(240)에서 준비 메시지를 수신한 각 노드는 자신이 준비 검증 상태인 경우, 다른 노드들에 커밋 메시지를 전달한다. 이때, 각 노드는 준비 다른 모든 노드들에 커밋 메시지를 전달하지 않고, 특정 노드들에만 커밋 메시지를 전달한다. 여기서 특정 노드들이 구성하는 그룹을 커밋 그룹(commit group)이라고 명명한다. 즉, 도 2의 합의 과정은 도 1과 달리 커밋 메시지를 전달하는 대상을 한정한 것이다. Each node that has received the preparation message in the commit step 240 transmits the commit message to other nodes when it is in the readiness verification state. At this time, each node does not deliver the commit message to all other nodes, but only delivers the commit message to specific nodes. Here, a group composed of specific nodes is called a commit group. That is, in the consensus process of FIG. 2 , unlike FIG. 1 , a target for transmitting a commit message is limited.

커밋 그룹은 2f+1 개의 노드들로 구성된다. 커밋 그룹의 멤버는 사전에 설정될 수 있다. 커밋 그룹은 대표 노드가 결정되는 시점에 전체 노드들 중 임의의 2f+1 개의 노드로 결정될 수 있다. 따라서, 커밋 그룹은 뷰(view)가 변경되는 시점에 다시 갱신될 수 있다. 도 2는 노드 1, 노드 2 및 노드 3이 커밋 그룹을 구성하는 예이다.A commit group consists of 2f+1 nodes. Members of a commit group can be set in advance. The commit group may be determined to be any 2f+1 nodes among all nodes at the time the representative node is determined. Accordingly, the commit group may be updated again when the view is changed. 2 is an example in which node 1, node 2, and node 3 constitute a commit group.

각 노드는 Prepare 메시지가 2f개 이상이고, 준비 메시지가 참인 경우 커밋 메시지 <COMMIT, v, n, D(m), i)>si를 커밋 그룹에 전달한다. n은 시퀀스 번호, v는 현재 메시지가 전송되는 뷰, D(m)은 요청 메시지 m의 요약본이고, i는 백업 노드의 식별자이다. si는 노드 i의 서명이다.Each node has 2f or more Prepare messages, and if the prepare message is true, the commit message <COMMIT, v, n, D(m), i)>s i is delivered to the commit group. n is a sequence number, v is the view to which the current message is transmitted, D(m) is the summary of the request message m, and i is the identifier of the backup node. s i is the signature of node i.

커밋 메시지를 수신하는 노드들 각각은 수신한 커밋 메시지의 개수를 파악한다. 각 노드는 수신한 커밋 메시지가 2f+1개가 이상인 경우, 커밋 검증(commit certificate)라고 판단한다. 응답 단계(250)에서 각 노드는 자신이 커밋 검증 상태인 경우, 응답 메시지를 클라이언트에 전달한다. 즉, 응답 단계(250)에서 각 노드는 수신한 커밋 메시지의 개수가 2f+1개 이상인 경우, 응답 메시지를 클라이언트에 전달한다. 응답 단계(250)에서도 각 노드는 D(m)과 V, N이 서로 대응되는 값인지 검증할 수 있다. Each of the nodes receiving the commit message counts the number of received commit messages. Each node determines that it is a commit certificate when there are 2f+1 or more received commit messages. In response step 250 , each node transmits a response message to the client when it is in the commit verification state. That is, in response step 250 , each node transmits a response message to the client when the number of received commit messages is 2f+1 or more. In the response step 250 , each node may verify whether D(m), V, and N correspond to each other.

응답 단계(250)에서 각 노드는 커밋 메시지가 참이고, 자신이 수신한 커밋 메시지가 2f+1개가 이상인 경우 응답 메시지 <RELPY, v, t, c, i, r)>sic를 클라이언트에 전달한다. v는 현재 메시지가 전송되는 뷰, t는 타임 스탬프, c는 클라이언트 식별자, i는 노드 식별자 및 r은 실행 결과값이다. sic는 응답 메시지 전달하는 노드의 서명이다. 또한, 각 노드는 2f+1개 이상의 다른 노드들로부터 같은 값의 커밋 메시지를 수신하면 클라이언트가 생성한 트랜잭션의 블록을 체인에 추가할 수 있다. In response step 250, each node delivers the response message <RELPY, v, t, c, i, r)>s ic to the client when the commit message is true and the number of commit messages it has received is 2f+1 or more do. v is the view where the current message is transmitted, t is the time stamp, c is the client identifier, i is the node identifier, and r is the execution result. s ic is the signature of the node forwarding the response message. Also, when each node receives a commit message of the same value from 2f+1 or more other nodes, it can add the block of the transaction created by the client to the chain.

또한, 커밋 그룹에 속하지 않은 노드(노드 4)도 응답 메시지를 클라이언트에 전달할 수 있다. 클라이언트가 현재 요청한 메시지에 대한 시퀀스 번호를 101이라고 가정한다. 노드 4는 클라이언트의 현재 요청에 따른 준비 메시지(시퀀스 번호 101)가 2f개 이상인 상태에서 이후의 요청(시퀀스 번호 102)에 대한 메시지(요청 메시지, 선 준비 메시지 또는 준비 메시지 중 적어도 하나)를 수신한 경우, 이전 준비 메시지(시퀀스 번호 101)에 대한 응답 메시지를 클라이언트에 전달할 수 있다(도 2에서 점선 화살표로 표시).Also, a node that does not belong to the commit group (Node 4) can deliver a response message to the client. Assume that the sequence number for the message currently requested by the client is 101. Node 4 receives a message (at least one of a request message, a pre-ready message, or a ready message) for a subsequent request (sequence number 102) in the state that there are 2f or more ready messages (sequence number 101) according to the client's current request. case, a response message to the previous preparation message (sequence number 101) may be delivered to the client (indicated by a dotted arrow in FIG. 2).

응답 단계(250)에서 클라이언트는 2f+1개 이상의 노드들로부터 동일한 응답 메시지를 받으면 자신의 요청에 따른 결과가 처리된 것으로 확인한다. 클라이언트는 2f+1개의 동일한 응답 메시지를 수신할 때까지 대기할 수 있다. In response step 250, when the client receives the same response message from 2f+1 or more nodes, it confirms that the result according to its request has been processed. A client may wait until it receives 2f+1 identical response messages.

도 1에서 커밋 단계에서 메시지 교환의 개수는 (3f)2이지만, 도 2의 커밋 단계에서 메시지 교환의 개수는 (3f) × (2f)이다. 따라서, 도 2의 합의 과정에 따르면 메시지 교환의 수가 감소한다. Although the number of message exchanges in the commit phase of FIG. 1 is (3f) 2 , the number of message exchanges in the commit phase of FIG. 2 is (3f) × (2f). Accordingly, according to the consensus process of FIG. 2, the number of message exchanges is reduced.

한편, 도 2의 응답 단계에서 클라이언트는 2f+1개 이상의 응답 메시지를 수신해야 자신의 요청에 대한 처리가 완료된 것을 확인한다.Meanwhile, in the response step of FIG. 2 , the client must receive 2f+1 or more response messages to confirm that the processing of its own request is completed.

도 2의 블록체인 합의 과정은 전통적인 PBFT에서의 의사 결정에 필요한 요소들에 대한 조건을 만족한다. 따라서, 도 2의 합의 과정은 종래 PBFT와 동일하게 진행될 수 있다. The blockchain consensus process in Fig. 2 satisfies the conditions for the factors necessary for decision-making in traditional PBFT. Accordingly, the consensus process of FIG. 2 may be performed in the same manner as in the conventional PBFT.

도 3은 PBFT 기반 블록체인의 노드 장치(300)에 대한 예이다. 노드 장치(300)는 블록체인인 구성하는 노드이다. 노드 장치(300)는 대표 노드 또는 백업 노드일 수도 있다. 노드장치(300)는 스마트기기, PC, 네트워크상의 서버 등과 같이 다양한 형태 중 어느 하나일 수 있다.3 is an example of a node device 300 of a PBFT-based blockchain. The node device 300 is a constituting node that is a block chain. The node device 300 may be a representative node or a backup node. The node device 300 may be any one of various types, such as a smart device, a PC, or a server on a network.

노드 장치(300)는 저장 장치(310), 메모리(320), 연산장치(330), 인터페이스 장치(340), 통신 장치(350) 및 출력장치(360)를 포함할 수 있다.The node device 300 may include a storage device 310 , a memory 320 , an arithmetic device 330 , an interface device 340 , a communication device 350 , and an output device 360 .

저장 장치(310)는 PFBT 기반 합의 과정 처리를 위한 프로그램을 저장한다.The storage device 310 stores a program for processing the PFBT-based consensus process.

저장 장치(310)는 커밋 메시지를 전달할 특정 그룹(커밋 그룹)에 대한 정보(예컨대, 식별자)를 저장할 수 있다. The storage device 310 may store information (eg, an identifier) on a specific group (commit group) to which a commit message is to be transmitted.

저장 장치(310)는 트랜잭션의 블록을 저장할 수 있다.The storage device 310 may store blocks of transactions.

메모리(320)는 노드 장치(300)가 요청 및 메시지를 처리하는 과정에서 발생하는 임시 데이터를 저장할 수 있다.The memory 320 may store temporary data generated while the node device 300 processes a request and a message.

인터페이스 장치(340)는 사용자 또는 외부 입력장치로부터 일정한 명령 내지 정보를 입력받는 장치이다. The interface device 340 is a device that receives a predetermined command or information from a user or an external input device.

통신 장치(350)는 네트워크를 통해 일정한 정보를 수신하고 전송하는 구성을 의미한다. 통신 장치(350)는 클라이언트 장치로부터 일정한 요청을 수신할 수 있다. 통신 장치(350)는 다른 노드로부터 메시지를 수신할 수 있다. 예컨대, 통신 장치(350)는 선 준비 메시지, 준비 메시지, 커밋 메시지를 수신할 수 있다.The communication device 350 refers to a configuration for receiving and transmitting predetermined information through a network. Communication device 350 may receive certain requests from client devices. Communication device 350 may receive messages from other nodes. For example, the communication device 350 may receive a pre-preparation message, a prep message, and a commit message.

통신 장치(350)는 커밋 그룹에 대한 정보를 수신할 수 있다. 대표 노드가 커밋 그룹을 결정하면, 통신 장치(350)는 대표 노드로부터 커밋 그룹에 대한 정보를 수신할 수 있다.The communication device 350 may receive information about the commit group. When the representative node determines the commit group, the communication device 350 may receive information about the commit group from the representative node.

통신 장치(350)는 합의 과정에서 발생하는 메시지를 다른 노드나 클라이언트 장치에 송신할 수 있다. 예컨대, 통신 장치(350)는 선 준비 메시지, 준비 메시지, 커밋 메시지를 다른 노드에 송신할 수 있다. 통신 장치(350)는 응답 메시지를 클라이언트 장치에 송신할 수 있다.The communication device 350 may transmit a message generated during the consensus process to another node or a client device. For example, the communication device 350 may transmit a pre-prepare message, a prepare message, and a commit message to another node. The communication device 350 may send a response message to the client device.

제어 장치(330)는 입력되는 메시지를 처리하고, 노드 장치(300)의 동작을 제어하는 장치이다. 제어 장치(330)는 데이터를 처리하고, 일정한 연산을 처리하는 프로세서, AP, 프로그램이 임베디드된 칩과 같은 장치일 수 있다. The control device 330 is a device that processes an input message and controls the operation of the node device 300 . The control device 330 may be a device such as a processor, an AP, or a program embedded chip that processes data and processes a predetermined operation.

제어 장치(330)는 수신한 메시지를 검증할 수 있다. 제어 장치(330)는 수신한 요청메시지 m을 해싱하여, 현재 메시지에 포함된 D(m)과 비교할 수 있다. 또한, 제어 장치(330)는 메시지에 포함된 서명을 복호하여 해당 메시지를 송신한 노드의 식별자가 맞는지 검증할 수도 있다.The control device 330 may verify the received message. The control device 330 may hash the received request message m and compare it with D(m) included in the current message. Also, the control device 330 may decrypt the signature included in the message and verify whether the identifier of the node that transmitted the message is correct.

제어 장치(330)는 뷰 v 변경시에 후보 노드들 중에서 임의의 노드들을 선택하여 커밋 그룹을 결정할 수 있다. 제어 장치(330)는 2f+1 개의 노드들을 선택하여 커밋 그룹을 결정할 수 있다. The control device 330 may determine a commit group by selecting arbitrary nodes from among candidate nodes when the view v is changed. The control device 330 may select 2f+1 nodes to determine a commit group.

제어 장치(330)는 합의 과정의 각 단계에서 특정 메시지를 생성하여 통신 장치(250)를 통해 다른 노드로 전달할 수 있다.The control device 330 may generate a specific message in each step of the consensus process and transmit it to another node through the communication device 250 .

현재 노드 장치(300)가 커밋 그룹에 속하지 않는 경우, 제어 장치(330)는 2f개 이상의 노드들로부터 제1 요청에 대한 준비 메시지(제1 시퀀스 번호)를 수신한 상태에서 제1 시퀀스 번호 다음의 제2 시퀀스 번호를 갖는 제2 요청에 대한 준비 메시지를 수신하는 경우, 제1 요청에 대한 응답 메시지를 통신 장치(350)를 통해 클라이언트 장치에 송신한다.When the current node device 300 does not belong to the commit group, the control device 330 receives the preparation message (first sequence number) for the first request from 2f or more nodes, When a preparation message for the second request having the second sequence number is received, a response message for the first request is transmitted to the client device through the communication device 350 .

출력 장치(360)는 일정한 정보를 출력할 수 있다. The output device 360 may output certain information.

또한, 상술한 바와 같은 블록체인 합의 방법 내지 노드 장치의 동작 방법은 컴퓨터에서 실행될 수 있는 실행가능한 알고리즘을 포함하는 프로그램(또는 어플리케이션)으로 구현될 수 있다. 상기 프로그램은 일시적 또는 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다.In addition, the blockchain consensus method or the operation method of the node device as described above may be implemented as a program (or application) including an executable algorithm that can be executed in a computer. The program may be provided by being stored in a temporary or non-transitory computer readable medium.

비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM (read-only memory), PROM (programmable read only memory), EPROM(Erasable PROM, EPROM) 또는 EEPROM(Electrically EPROM) 또는 플래시 메모리 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.The non-transitory readable medium refers to a medium that stores data semi-permanently, rather than a medium that stores data for a short moment, such as a register, cache, memory, and the like, and can be read by a device. Specifically, the above-described various applications or programs are CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM (read-only memory), PROM (programmable read only memory), EPROM (Erasable PROM, EPROM) Alternatively, it may be provided by being stored in a non-transitory readable medium such as an EEPROM (Electrically EPROM) or flash memory.

일시적 판독 가능 매체는 스태틱 램(Static RAM,SRAM), 다이내믹 램(Dynamic RAM,DRAM), 싱크로너스 디램 (Synchronous DRAM,SDRAM), 2배속 SDRAM(Double Data Rate SDRAM,DDR SDRAM), 증강형 SDRAM(Enhanced SDRAM,ESDRAM), 동기화 DRAM(Synclink DRAM,SLDRAM) 및 직접 램버스 램(Direct Rambus RAM,DRRAM) 과 같은 다양한 RAM을 의미한다.Temporarily readable media include Static RAM (SRAM), Dynamic RAM (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDR SDRAM), Enhanced SDRAM (Enhanced) SDRAM, ESDRAM), Synchronous DRAM (Synclink DRAM, SLDRAM) and Direct Rambus RAM (Direct Rambus RAM, DRRAM) refers to a variety of RAM.

본 실시례 및 본 명세서에 첨부된 도면은 전술한 기술에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 전술한 기술의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형 예와 구체적인 실시례는 모두 전술한 기술의 권리범위에 포함되는 것이 자명하다고 할 것이다.This embodiment and the drawings attached to this specification only clearly show a part of the technical idea included in the above-described technology, and within the scope of the technical idea included in the specification and drawings of the aforementioned technology, those skilled in the art can easily It will be said that it is obvious that all inferred modified examples and specific embodiments are included in the scope of the above-described technology.

Claims (13)

클라이언트로부터 제1 요청을 수신한 블록체인의 대표 노드가 선 준비(Pre-prepare) 메시지를 백업 노드들에 전달하는 단계;
상기 백업 노드들 중 상기 선 준비 메시지의 검증이 성공한 적어도 하나의 노드는 자신을 제외한 나머지 노드들에 준비(Prepare) 메시지를 전달하는 단계;
상기 나머지 노드들 중 기준 개수 이상의 노드들로부터 상기 준비 메시지를 수신하는 적어도 하나의 노드는 자신을 제외한 특정 그룹의 노드들에만 커밋(Commit) 메시지를 전달하는 단계; 및
상기 커밋 메시지를 수신한 노드들 중 상기 기준 개수 이상의 노드들로부터 상기 커밋 메시지를 수신하는 적어도 하나의 노드는 응답 메시지를 상기 클라이언트에 전달하는 단계를 포함하되,
상기 대표 노드 및 상기 백업 노드들은 상기 블록체인을 구성하고,
상기 특정 그룹은 상기 블록체인에 속한 전체 노드들의 개수 - 1 보다 작은 개수의 노드로 구성되는 개선된 PBFT 기반의 블록체인 관리 방법.
transmitting a pre-prepare message to the backup nodes by the representative node of the block chain that has received the first request from the client;
at least one node that has succeeded in verifying the pre-preparation message among the backup nodes transmits a prepare message to the remaining nodes except for itself;
transmitting, by at least one node receiving the preparation message from nodes equal to or greater than the reference number of the remaining nodes, a commit message only to nodes of a specific group except itself; and
At least one node receiving the commit message from nodes equal to or greater than the reference number among the nodes receiving the commit message transmits a response message to the client,
The representative node and the backup nodes constitute the block chain,
The improved PBFT-based blockchain management method in which the specific group consists of a number of nodes less than the total number of nodes belonging to the block chain - 1.
제1항에 있어서,
상기 블록체인을 구성하는 노드들의 개수는 3f+1 ≤ N개 이고,
상기 기준 개수는 2f이고, 상기 f는 상기 블록체인에서 장애 노드로 허용하는 임계 개수인 개선된 PBFT 기반의 블록체인 관리 방법.
According to claim 1,
The number of nodes constituting the block chain is 3f+1 ≤ N,
The reference number is 2f, and f is the threshold number allowed as a faulty node in the blockchain. An improved PBFT-based blockchain management method.
제1항에 있어서,
상기 블록체인을 구성하는 노드들의 개수는 3f+1 ≤ N개 이고,
상기 특정 그룹은 2f+1개의 노드로 구성되고, 상기 f는 상기 블록체인에서 장애 노드로 허용하는 임계 개수인 개선된 PBFT 기반의 블록체인 관리 방법.
According to claim 1,
The number of nodes constituting the block chain is 3f+1 ≤ N,
The specific group consists of 2f+1 nodes, and f is the threshold number allowed as a failed node in the blockchain. An improved PBFT-based blockchain management method.
제1항에 있어서,
상기 블록체인을 구성하는 노드들의 개수는 3f+1 ≤ N개 이고,
상기 클라이언트는 응답 메시지를 전달하는 노드들의 개수가 2f+1개 이상인 경우 상기 제1 요청이 정상 처리되었다고 판단하고, 상기 f는 상기 블록체인에서 장애 노드로 허용하는 임계 개수인 개선된 PBFT 기반의 블록체인 관리 방법.
According to claim 1,
The number of nodes constituting the block chain is 3f+1 ≤ N,
The client determines that the first request has been processed normally when the number of nodes that transmit the response message is 2f+1 or more, and f is an improved PBFT-based block that is the threshold number allowed as a failed node in the block chain. How to manage the chain.
제4항에 있어서,
상기 특정 그룹에 속하지 않는 적어도 하나의 노드가
상기 제1 임계 개수 이상의 노드들로부터 상기 준비 메시지를 수신한 상태에서 상기 제1 요청 이후의 시퀀스 번호를 갖는 제2 요청에 대한 준비 메시지를 수신하는 경우, 상기 제1 요청에 대한 응답 메시지를 상기 클라이언트 전달하는 개선된 PBFT 기반의 블록체인 관리 방법.
5. The method of claim 4,
At least one node that does not belong to the specific group
When a preparation message for a second request having a sequence number after the first request is received in a state in which the preparation message is received from the nodes of the first threshold number or more, a response message to the first request is sent to the client An improved PBFT-based blockchain management method to deliver.
제1항에 있어서,
상기 특정 그룹은 상기 블록체인을 구성하는 노드들 중 임의로 결정되고, 블록체인의 대표 노드를 변경하는 시점에서 상기 특정 그룹의 구성이 갱신되는 개선된 PBFT 기반의 블록체인 관리 방법.
According to claim 1,
The improved PBFT-based blockchain management method in which the specific group is arbitrarily determined from among the nodes constituting the blockchain, and the configuration of the specific group is updated when the representative node of the blockchain is changed.
제1 요청을 블록체인에 전달하는 클라이언트 장치; 및
상기 블록체인을 구성하는 복수의 노드들을 포함하되,
상기 복수의 노드들은 대표 노드 및 백업 노드들을 포함하고,
상기 대표 노드는 상기 제1 요청을 수신하고, 선 준비(Pre-prepare) 메시지를 상기 백업 노드들에 전달하고, 상기 백업 노드들 중 상기 선 준비 메시지의 검증이 성공한 적어도 하나의 노드는 상기 복수의 노드들 중 자신을 제외한 나머지 노드들에 준비(Prepare) 메시지를 전달하고,
상기 나머지 노드들 중 기준 개수 이상의 노드들로부터 상기 준비 메시지를 수신하는 적어도 하나의 노드는 자신을 제외한 특정 그룹의 노드들에만 커밋(Commit) 메시지를 전달하고,
상기 특정 그룹은 상기 블록체인에 속한 전체 노드들의 개수 - 1 보다 작은 개수의 노드로 구성되는 개선된 PBFT 기반 블록체인 시스템.
a client device forwarding the first request to the blockchain; and
Including a plurality of nodes constituting the block chain,
The plurality of nodes includes a representative node and a backup node,
The representative node receives the first request, transmits a pre-prepare message to the backup nodes, and at least one node that succeeds in verifying the pre-prepare message among the backup nodes is selected from the plurality of Delivers a Prepare message to the remaining nodes except for itself among the nodes,
At least one node that receives the preparation message from nodes equal to or greater than the reference number among the remaining nodes transmits a commit message only to nodes in a specific group except for itself,
An improved PBFT-based blockchain system in which the specific group is composed of a number of nodes less than the total number of nodes belonging to the blockchain.
제7항에 있어서,
상기 블록체인을 구성하는 노드들의 개수는 3f+1 ≤ N개 이고,
상기 특정 그룹은 2f+1개의 노드로 구성되고, 상기 f는 상기 블록체인에서 장애 노드로 허용하는 임계 개수인 개선된 PBFT 기반 블록체인 시스템.
8. The method of claim 7,
The number of nodes constituting the block chain is 3f+1 ≤ N,
The specific group consists of 2f+1 nodes, and f is the threshold number allowed as a failed node in the blockchain. An improved PBFT-based blockchain system.
제7항에 있어서,
상기 블록체인을 구성하는 노드들의 개수는 3f+1 ≤ N개 이고,
상기 클라이언트 장치는 응답 메시지를 전달하는 노드들의 개수가 2f+1개 이상인 경우 상기 제1 요청이 정상 처리되었다고 판단하고, 상기 f는 상기 블록체인에서 장애 노드로 허용하는 개선된 PBFT 기반 블록체인 시스템.
8. The method of claim 7,
The number of nodes constituting the block chain is 3f+1 ≤ N,
The improved PBFT-based blockchain system in which the client device determines that the first request has been normally processed when the number of nodes that transmit a response message is 2f+1 or more, and f is a faulty node in the blockchain.
제9항에 있어서,
상기 특정 그룹에 속하지 않는 적어도 하나의 노드가
상기 제1 임계 개수 이상의 노드들로부터 상기 준비 메시지를 수신한 상태에서 상기 제1 요청 이후의 시퀀스 번호를 갖는 제2 요청에 대한 준비 메시지를 수신하는 경우, 상기 제1 요청에 대한 응답 메시지를 상기 클라이언트 전달하는 개선된 PBFT 기반 블록체인 시스템.
10. The method of claim 9,
At least one node that does not belong to the specific group
When a preparation message for a second request having a sequence number after the first request is received in a state in which the preparation message is received from the nodes of the first threshold number or more, a response message to the first request is sent to the client An improved PBFT-based blockchain system that delivers.
PBFT(Practical Byzantine Fault Tolerance)기반 합의 과정 처리를 위한 프로그램 및 커밋(Commit) 메시지를 전달할 특정 그룹에 대한 정보를 저장하는 저장장치;
클라이언트의 제1 요청에 대한 PBFT 기반 합의 과정에서 다른 노드로부터 준비(Prepare) 메시지를 수신하고, 상기 커밋 메시지를 상기 특정 그룹에 송신하는 통신장치; 및
기준 개수 이상의 노드들로부터 상기 준비 메시지를 수신하는 경우 상기 특정 그룹에 속한 노드들에 상기 커밋 메시지를 전달하도록 제어하는 제어장치를 포함하되,
상기 블록체인을 구성하는 노드들의 개수는 3f+1 ≤ N개 이고, 상기 기준 개수는 2f개 이고,
상기 특정 그룹은 2f+1개의 노드로 구성되고, 상기 f는 상기 블록체인에서 장애 노드로 허용하는 임계 개수인 개선된 PBFT 기반 합의 알고리즘으로 동작하는 블록체인의 노드 장치.
a storage device for storing information about a specific group to which a program and a commit message for PBFT (Practical Byzantine Fault Tolerance)-based consensus process processing will be delivered;
a communication device for receiving a Prepare message from another node in a PBFT-based consensus process for a client's first request, and transmitting the commit message to the specific group; and
Including a control device for controlling to deliver the commit message to the nodes belonging to the specific group when the preparation message is received from nodes greater than or equal to a reference number,
The number of nodes constituting the block chain is 3f+1 ≤ N, and the reference number is 2f,
The specific group consists of 2f+1 nodes, and f is a node device of a blockchain operating with an improved PBFT-based consensus algorithm, which is the threshold number allowed as a failed node in the blockchain.
제11항에 있어서,
상기 노드 장치가 상기 특정 그룹에 속하지 않는 경우,
상기 제어 장치는
상기 기준 개수 이상의 노드들로부터 상기 준비 메시지를 수신한 상태에서 상기 제1 요청 이후의 시퀀스 번호를 갖는 제2 요청에 대한 준비 메시지를 수신하는 경우, 상기 제1 요청에 대한 응답 메시지를 상기 통신 장치를 통해 상기 클라이언트에 전달하는 개선된 PBFT 기반 합의 알고리즘으로 동작하는 블록체인의 노드 장치.
12. The method of claim 11,
If the node device does not belong to the specific group,
the control device
When receiving a preparation message for a second request having a sequence number subsequent to the first request in a state in which the preparation message is received from the nodes equal to or greater than the reference number, a response message to the first request is sent to the communication device A node device in the blockchain that operates with an improved PBFT-based consensus algorithm that delivers it to the client through
제11항에 있어서,
상기 특정 그룹에 대한 정보는 상기 블록체인의 대표 노드를 설정하거나 변경하는 시점에서 임의로 결정되는 개선된 PBFT 기반 합의 알고리즘으로 동작하는 블록체인의 노드 장치.
12. The method of claim 11,
The information on the specific group is a node device of a block chain that operates with an improved PBFT-based consensus algorithm that is arbitrarily determined at the time of setting or changing the representative node of the block chain.
KR1020200182993A 2020-12-24 2020-12-24 Managing method for blockchain based on enhanced practical byzantine fault tolerance, blockchain system and node apparatus KR102447063B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200182993A KR102447063B1 (en) 2020-12-24 2020-12-24 Managing method for blockchain based on enhanced practical byzantine fault tolerance, blockchain system and node apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200182993A KR102447063B1 (en) 2020-12-24 2020-12-24 Managing method for blockchain based on enhanced practical byzantine fault tolerance, blockchain system and node apparatus

Publications (2)

Publication Number Publication Date
KR20220091850A true KR20220091850A (en) 2022-07-01
KR102447063B1 KR102447063B1 (en) 2022-09-23

Family

ID=82397129

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200182993A KR102447063B1 (en) 2020-12-24 2020-12-24 Managing method for blockchain based on enhanced practical byzantine fault tolerance, blockchain system and node apparatus

Country Status (1)

Country Link
KR (1) KR102447063B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116112490A (en) * 2022-12-29 2023-05-12 新疆大学 Low-complexity extensible Bayesian-busy-court fault-tolerant method and device and storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200112633A (en) * 2019-03-18 2020-10-05 알리바바 그룹 홀딩 리미티드 Consensus system downtime recovery

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200112633A (en) * 2019-03-18 2020-10-05 알리바바 그룹 홀딩 리미티드 Consensus system downtime recovery

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Giuliana Santos Veronese, Efficient Byzantine Fault-Tolerance, IEEE Transactions on Computers Volume: 62, Issue: 1, Jan. 2013

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116112490A (en) * 2022-12-29 2023-05-12 新疆大学 Low-complexity extensible Bayesian-busy-court fault-tolerant method and device and storage medium
CN116112490B (en) * 2022-12-29 2024-04-16 新疆大学 Low-complexity extensible Bayesian-busy-court fault-tolerant method and device and storage medium

Also Published As

Publication number Publication date
KR102447063B1 (en) 2022-09-23

Similar Documents

Publication Publication Date Title
US10762479B2 (en) Method and system for processing blockchain-based real-time transaction
US11349674B2 (en) Digital certificate management method and apparatus, computer device, and storage medium
KR102134549B1 (en) Change of primary node in distributed system
KR102384340B1 (en) Method for processing blockchain based real-time transaction and system thereof
US20180293557A1 (en) Method of charging electronic currency automatically based on blockchain and system thereof
WO2019119929A1 (en) Block chain consensus method, apparatus and system, and identification information processing method and apparatus
US11108564B2 (en) Cryptologic self-executing blockchain export commitment
US11196745B2 (en) Blockchain-based account management
EP3619668B1 (en) Performing parallel execution of transactions in a distributed ledger system
US10574438B2 (en) Security apparatus, method thereof, and program
KR20200074908A (en) Achieving consensus among network nodes in a distributed system
KR20200074911A (en) Perform recovery process for network nodes in distributed systems
WO2021018088A1 (en) Trusted authentication method, network device, system and storage medium
CN111541552B (en) Block chain all-in-one machine and automatic node adding method and device thereof
US11128470B2 (en) Methods and systems for automatic blockchain deployment based on cloud platform
TWI759791B (en) Method, system and apparatus of shared blockchain data storage based on error correction code
US20200364212A1 (en) System and method of supporting reflection of transactions between blockchain networks
EP3791538B1 (en) Shared blockchain data storage based on error correction code
CN111406252A (en) Consensus of error correction code based shared blockchain data storage
CN111191294B (en) Single-node accounting method, system, equipment and storage medium based on block chain
CN110119390B (en) Financial information outsourcing management system based on block chain
US20210374112A1 (en) Migration support system, migration support method, and node
CN111786812A (en) Node management method, node management device, computer equipment and storage medium
WO2020115496A2 (en) A node testing method and apparatus for a blockchain system
KR102430135B1 (en) Dynamic blockchain data storage based on error correction codes

Legal Events

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