KR102415127B1 - Blockchain system and method for managing the same - Google Patents

Blockchain system and method for managing the same Download PDF

Info

Publication number
KR102415127B1
KR102415127B1 KR1020190132521A KR20190132521A KR102415127B1 KR 102415127 B1 KR102415127 B1 KR 102415127B1 KR 1020190132521 A KR1020190132521 A KR 1020190132521A KR 20190132521 A KR20190132521 A KR 20190132521A KR 102415127 B1 KR102415127 B1 KR 102415127B1
Authority
KR
South Korea
Prior art keywords
node
block
confirmation
group
validation
Prior art date
Application number
KR1020190132521A
Other languages
Korean (ko)
Other versions
KR20200049575A (en
Inventor
임종철
김선미
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to US16/667,520 priority Critical patent/US11409734B2/en
Publication of KR20200049575A publication Critical patent/KR20200049575A/en
Application granted granted Critical
Publication of KR102415127B1 publication Critical patent/KR102415127B1/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/1044Group management mechanisms 
    • H04L67/1046Joining mechanisms
    • 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
    • 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/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1093Some peer nodes performing special functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/081Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying self-generating credentials, e.g. instead of receiving credentials from an authority or from another peer, the credentials are generated at the entity itself

Abstract

블록체인 시스템이 개시된다. 본 개시의 일 실시 예에 따른 블록체인 시스템은, 적어도 하나의 인준노드와, 상기 적어도 하나의 인준노드를 포함하여 인준그룹을 구성하며, 상기 인준그룹에서 발생된 트랜잭션을 조합하여 인준블록을 각각 구성하는 적어도 하나의 관리노드와, 상기 적어도 하나의 관리노드의 구성을 제어하는 운영자 노드를 포함하고, 상기 적어도 하나의 관리노드는, 상기 각각의 인준블록을 조합하여 블록체인을 구성하되, 상기 인준블록의 생성 순서에 기초하여 부모 블록을 재설정하여 상기 블록체인을 구성 및 배포할 수 있다.A blockchain system is disclosed. A block chain system according to an embodiment of the present disclosure configures a validation group including at least one validation node and the at least one validation node, and configures a validation block by combining transactions generated in the validation group and an operator node that controls the configuration of the at least one management node, wherein the at least one management node composes a block chain by combining the respective validation blocks, the validation block The block chain can be configured and distributed by resetting the parent block based on the creation order of

Figure R1020190132521
Figure R1020190132521

Description

블록체인 시스템 및 이를 운영하는 방법{BLOCKCHAIN SYSTEM AND METHOD FOR MANAGING THE SAME}Blockchain system and how to operate it

본 개시는 블록체인 기술에 관한 것이며, 보다 구체적으로는 블록체인 시스템의 구조 및 블록체인 시스템의 운영 방법에 대한 것이다.The present disclosure relates to block chain technology, and more specifically, to a structure of a block chain system and an operation method of the block chain system.

블록체인(blockchain)은 지속적으로 증가하는 데이터를 특정 단위의 블록에 기록하고, P2P(peer-to-peer) 네트워크를 구성하는 각각의 노드들이 상기 블록을 체인 형태의 자료 구조로 관리하는 데이터 관리 기술 또는 상기 체인 형태의 자료 구조로 구성된 데이터 그 자체를 의미한다. 이때, 체인 형태의 자료 구조로 구성된 블록체인 데이터는, 중앙 시스템 없이 각각의 노드에서 분산 원장(distributed ledger) 형태로 운영될 수 있다.Blockchain is a data management technology in which continuously increasing data is recorded in a specific unit of block, and each node constituting a peer-to-peer (P2P) network manages the block as a chain-type data structure. Or, it means the data itself composed of the chain-type data structure. At this time, blockchain data composed of a chain-type data structure can be operated in the form of a distributed ledger at each node without a central system.

블록체인 네트워크 또는 블록체인 시스템을 구성하는 각각의 블록체인 노드는 블록으로 구성된 데이터를 관리하도록 이루어진다. 즉, 각 블록에는 이전 블록에 대한 해시 값이 기록되며, 상기 해시 값을 통해 이전 블록이 참조될 수 있다. 따라서, 블록이 쌓일수록 블록 내에 기록된 트랜잭션 데이터의 위변조는 어려워지고, 각 블록에 기록된 트랜잭션 데이터의 신뢰도는 향상되게 된다.Each blockchain node constituting a blockchain network or blockchain system is made to manage data composed of blocks. That is, in each block, a hash value for the previous block is recorded, and the previous block can be referenced through the hash value. Accordingly, as blocks are accumulated, forgery of transaction data recorded in the block becomes difficult, and the reliability of transaction data recorded in each block is improved.

블록체인 시스템에서 소정의 단말로부터 트랜잭션 처리 요청이 수신되면, 트랜잭션의 유효성 검증이 수행되고, 유효한 경우 트랜잭션 데이터가 블록 생성 노드로 전달된다. 다음으로, 블록 생성 노드가 해당 트랜잭션 데이터를 신규 블록에 기록하고, 신규 블록을 블록체인 네트워크 상에 전파하여 분산 합의가 이루어지도록 구성된다. 이와 같은 과정을 통해 중앙 관리 시스템 없이도 트랜잭션 데이터가 전달될 수 있으며, 이러한 중앙 관리 시스템 없이 이루어진 시스템을 비허가형 블록체인(permissionless blockchain) 시스템 또는 오픈형 블록체인 시스템이라 한다. In the blockchain system, when a transaction processing request is received from a predetermined terminal, transaction validation is performed, and if valid, transaction data is transmitted to the block generating node. Next, the block generating node records the transaction data in a new block and propagates the new block on the blockchain network to achieve distributed consensus. Through this process, transaction data can be transmitted without a central management system, and a system made without such a central management system is called a permissionless blockchain system or an open blockchain system.

비허가형 블록체인 시스템은 블록 생성에 참여하는 노드 수가 늘어나는 것에 관계 없이 일정한 트랜잭션 처리 속도를 가질 수 있으나, 기본적인 트랜잭션 처리 속도가 현저하게 느리다는 단점이 있다. 또한, 비허가형 블록체인 시스템은 탈중앙화를 기반으로 제안된 시스템이므로, 시스템을 관리하는 주체가 없으며 시스템 운영에 문제가 생겼을 경우, 이를 책임질 주체가 없다. The permissionless blockchain system can have a constant transaction processing speed regardless of the increase in the number of nodes participating in block generation, but has a drawback in that the basic transaction processing speed is remarkably slow. In addition, since the permissionless blockchain system is a system proposed based on decentralization, there is no subject to manage the system, and there is no subject responsible for system operation if there is a problem.

비허가형 블록체인 시스템의 단점을 보완하기 위하여, 허가형 블록체인 시스템(permissioned blockchain)이 제안되었으나, 허가형 블록체인 시스템은 일반적으로 비교적 적은 수의 노드들이 합의하여 블록을 생성하기 때문에 트랜잭션 처리 속도 측면에서의 성능에 이점을 가질 수 있지만, 블록을 생성하는 노드들의 참여 자격이 제한되므로 탈중앙화를 실현하지 못하는 문제가 있다. In order to compensate for the shortcomings of the permissionless blockchain system, a permissioned blockchain system has been proposed, but the permissioned blockchain system generally generates blocks by consensus of a relatively small number of nodes, so the transaction processing speed is high. Although it can have an advantage in terms of performance, there is a problem in that decentralization cannot be realized because the participation qualification of nodes generating blocks is limited.

전술한 바를 고려하여, 운영 주체가 있는 관리되는 블록체인 시스템을 구성할 필요가 있으며, 동시에 "탈중앙화" 문제를 해결할 수 있는 시스템이 요구된다. Considering the above, it is necessary to configure a managed blockchain system with an operating entity, and at the same time, a system that can solve the "decentralization" problem is required.

본 개시의 기술적 과제는 노드의 참여가 자유롭게 허용된 오픈 멤버쉽을 실현하면서 동시에 블록체인의 동작에 책임을 지는 주체가 있는 블록체인 시스템 및 이를 운영하는 방법을 제공하는데 있다.The technical task of the present disclosure is to provide a blockchain system in which there is a subject responsible for the operation of the blockchain while realizing open membership in which node participation is freely allowed, and a method of operating the same.

본 개시의 다른 기술적 과제는 노드의 참여가 오픈된 인준그룹 단위의 블록체인을 구성하되, 인준그룹을 관리하는 관리주체를 제어할 수 있는 블록체인 시스템 및 이를 운영하는 방법을 제공하는데 있다.Another technical task of the present disclosure is to provide a block chain system capable of configuring a block chain of an authorization group unit in which node participation is open, but controlling a management entity that manages the authorization group, and a method of operating the same.

본 개시에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical problems to be achieved in the present disclosure are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those of ordinary skill in the art to which the present disclosure belongs from the description below. will be able

본 개시의 일 양상에 따르면 블록체인 시스템이 제공될 수 있다. 상기 시스템은 적어도 하나의 인준노드와, 상기 적어도 하나의 인준노드를 포함하여 인준그룹을 구성하며, 상기 인준그룹에서 발생된 트랜잭션을 조합하여 인준블록을 각각 구성하는 적어도 하나의 관리노드와, 상기 적어도 하나의 관리노드의 구성을 제어하는 운영자 노드를 포함하고, 상기 적어도 하나의 관리노드는, 상기 각각의 인준블록을 조합하여 블록체인을 구성하되, 상기 인준블록의 생성 순서에 기초하여 부모 블록을 재설정하여 상기 블록체인을 구성 및 배포할 수 있다.According to an aspect of the present disclosure, a blockchain system may be provided. The system comprises at least one validation node and at least one management node that constitutes a validation group including the at least one validation node, and forms a validation block by combining transactions generated in the validation group; an operator node that controls the configuration of one management node, wherein the at least one management node configures a block chain by combining each of the confirmation blocks, but resets the parent block based on the generation order of the confirmation blocks to configure and distribute the block chain.

본 개시의 일 양상에 따르면 블록체인 시스템의 운영방법이 제공될 수 있다. 상기 방법은, 운영자 노드에 의해 제어되는 적어도 하나의 관리노드가, 상기 관리노드와 적어도 하나의 인준노드를 포함하는 적어도 하나의 인준그룹을 각각 구성하는 과정과, 상기 인준그룹에서 발생된 트랜잭션을 조합하여 인준블록을 각각 구성하는 과정과, 다른 관리노드에서 구성된 상기 인준블록을 조합하여 블록체인을 구성하되, 상기 인준블록의 생성 순서에 기초하여 부모 블록을 재설정하여 상기 블록체인을 구성 및 배포하는 과정을 포함할 수 있다.According to an aspect of the present disclosure, a method of operating a block chain system may be provided. The method includes a process in which at least one management node controlled by an operator node configures at least one authorization group including the management node and at least one authorization node, respectively, and combines the transactions generated in the authorization group The process of configuring each of the confirmation blocks by doing so, and the process of composing a block chain by combining the confirmation blocks configured in other management nodes, and configuring and distributing the block chain by resetting the parent block based on the generation order of the confirmation block may include

본 개시에 대하여 위에서 간략하게 요약된 특징들은 후술하는 본 개시의 상세한 설명의 예시적인 양상일 뿐이며, 본 개시의 범위를 제한하는 것은 아니다.The features briefly summarized above with respect to the present disclosure are merely exemplary aspects of the detailed description of the present disclosure that follows, and do not limit the scope of the present disclosure.

본 개시에 따르면, 노드의 참여가 자유롭게 허용된 오픈 멤버쉽을 실현하면서 동시에 블록체인의 동작에 책임을 지는 주체가 있는 블록체인 시스템 및 이를 운영하는 방법이 제공될 수 있다.According to the present disclosure, a blockchain system and a method of operating the same can be provided in which there is a subject responsible for the operation of the blockchain while realizing open membership in which node participation is freely allowed.

본 개시에 따르면, 노드의 참여가 오픈된 인준그룹 단위의 블록체인을 구성하되, 인준그룹을 관리하는 관리주체를 제어할 수 있는 블록체인 시스템 및 이를 운영하는 방법이 제공될 수 있다.According to the present disclosure, there can be provided a block chain system capable of configuring a block chain of a verification group unit in which node participation is open, but controlling a management entity that manages the verification group, and a method of operating the same.

본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtainable in the present disclosure are not limited to the above-mentioned effects, and other effects not mentioned may be clearly understood by those of ordinary skill in the art to which the present disclosure belongs from the description below. will be.

도 1은 본 개시의 일 실시예에 따른 블록체인 시스템의 구조를 도시하는 도면이다.
도 2는 본 개시의 일 실시예에 따른 블록체인 시스템에 구비되는 관리노드의 구성을 도시하는 블록도이다.
도 3은 본 개시의 일 실시예에 따른 블록체인 시스템에 의해 생성되는 인준블록을 예시하는 도면이다.
도 4a는 본 개시의 일 실시예에 따른 블록체인 시스템에 의해 생성되는 인준블록의 연결 관계를 예시하는 도면이다.
도 4b는 도 4a에 예시된 인준블록의 생성 순서를 고려하여 재구성된 연결 관계를 예시하는 도면이다.
도 5는 도 2의 BN 관리부의 상세 동작 순서를 도시하는 흐름도이다.
도 6은 본 개시의 일 실시예에 따른 블록체인 시스템에 구비되는 인준노드의 구성을 도시하는 블록도이다.
도 7a는 본 개시의 일 실시예에 따른 블록체인 시스템의 인준노드의 인준그룹 참여 동작을 나타내는 흐름도이다.
도 7b는 본 개시의 일 실시예에 따른 블록체인 시스템의 인준그룹의 재설정 동작을 나타내는 흐름도이다.
도 7c는 본 개시의 일 실시예에 따른 블록체인 시스템의 인준노드의 전입 동작을 나타내는 흐름도이다.
도 7d는 본 개시의 일 실시예에 따른 블록체인 시스템의 인준노드의 합병 동작을 나타내는 흐름도이다.
도 8은 본 개시의 일 실시예에 따른 블록체인 시스템 및 방법을 실행하는 컴퓨팅 시스템을 예시하는 블록도이다.
1 is a diagram showing the structure of a block chain system according to an embodiment of the present disclosure.
2 is a block diagram illustrating a configuration of a management node provided in a block chain system according to an embodiment of the present disclosure.
3 is a diagram illustrating a validation block generated by a blockchain system according to an embodiment of the present disclosure.
4A is a diagram illustrating a connection relationship of a validation block generated by a blockchain system according to an embodiment of the present disclosure.
4B is a diagram illustrating a connection relationship reconstructed in consideration of the generation order of the validation block illustrated in FIG. 4A .
5 is a flowchart illustrating a detailed operation procedure of the BN management unit of FIG. 2 .
6 is a block diagram illustrating the configuration of a validation node provided in a block chain system according to an embodiment of the present disclosure.
7A is a flowchart illustrating an operation of participating in an authorization group of an authorization node of a blockchain system according to an embodiment of the present disclosure.
7B is a flowchart illustrating a resetting operation of an authorization group of a blockchain system according to an embodiment of the present disclosure.
7C is a flowchart illustrating a transfer operation of an authorization node of a blockchain system according to an embodiment of the present disclosure.
7D is a flowchart illustrating a merging operation of an approval node of a blockchain system according to an embodiment of the present disclosure.
8 is a block diagram illustrating a computing system executing a blockchain system and method according to an embodiment of the present disclosure.

이하에서는 첨부한 도면을 참고로 하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art to which the present disclosure pertains can easily implement them. However, the present disclosure may be embodied in several different forms and is not limited to the embodiments described herein.

본 개시의 실시 예를 설명함에 있어서 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그에 대한 상세한 설명은 생략한다. 그리고, 도면에서 본 개시에 대한 설명과 관계없는 부분은 생략하였으며, 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.In describing an embodiment of the present disclosure, if it is determined that a detailed description of a well-known configuration or function may obscure the gist of the present disclosure, a detailed description thereof will be omitted. And, in the drawings, parts not related to the description of the present disclosure are omitted, and similar reference numerals are attached to similar parts.

본 개시에 있어서, 어떤 구성요소가 다른 구성요소와 "연결", "결합" 또는 "접속"되어 있다고 할 때, 이는 직접적인 연결관계 뿐만 아니라, 그 중간에 또 다른 구성요소가 존재하는 간접적인 연결관계도 포함할 수 있다. 또한 어떤 구성요소가 다른 구성요소를 "포함한다" 또는 "가진다"고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 배제하는 것이 아니라 또 다른 구성요소를 더 포함할 수 있는 것을 의미한다.In the present disclosure, when it is said that a component is "connected", "coupled" or "connected" with another component, it is not only a direct connection relationship, but also an indirect connection relationship in which another component exists in the middle. may also include. In addition, when a component is said to "include" or "have" another component, it means that another component may be further included without excluding other components unless otherwise stated. .

본 개시에 있어서, 서로 구별되는 구성요소들은 각각의 특징을 명확하게 설명하기 위함이며, 구성요소들이 반드시 분리되는 것을 의미하지는 않는다. 즉, 복수의 구성요소가 통합되어 하나의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있고, 하나의 구성요소가 분산되어 복수의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있다. 따라서, 별도로 언급하지 않더라도 이와 같이 통합된 또는 분산된 실시 예도 본 개시의 범위에 포함된다. In the present disclosure, the components that are distinguished from each other are for clearly explaining each characteristic, and the components do not necessarily mean that the components are separated. That is, a plurality of components may be integrated to form one hardware or software unit, or one component may be distributed to form a plurality of hardware or software units. Accordingly, even if not specifically mentioned, such integrated or distributed embodiments are also included in the scope of the present disclosure.

본 개시에 있어서, 다양한 실시 예에서 설명하는 구성요소들이 반드시 필수적인 구성요소들을 의미하는 것은 아니며, 일부는 선택적인 구성요소일 수 있다. 따라서, 일 실시 예에서 설명하는 구성요소들의 부분집합으로 구성되는 실시 예도 본 개시의 범위에 포함된다. 또한, 다양한 실시 예에서 설명하는 구성요소들에 추가적으로 다른 구성요소를 포함하는 실시 예도 본 개시의 범위에 포함된다. In the present disclosure, components described in various embodiments do not necessarily mean essential components, and some may be optional components. Accordingly, an embodiment composed of a subset of components described in an embodiment is also included in the scope of the present disclosure. In addition, embodiments including other components in addition to components described in various embodiments are also included in the scope of the present disclosure.

이하, 첨부한 도면을 참조하여 본 개시의 실시 예들에 대해서 설명한다.Hereinafter, embodiments of the present disclosure will be described with reference to the accompanying drawings.

도 1은 본 개시의 일 실시예에 따른 블록체인 시스템의 구조를 도시하는 도면이다. 1 is a diagram showing the structure of a block chain system according to an embodiment of the present disclosure.

도 1을 참조하면, 본 개시의 일 실시예에 따른 블록체인 시스템(100)은, 인준노드(111) 및 관리노드(121)를 포함할 수 있다. Referring to FIG. 1 , the block chain system 100 according to an embodiment of the present disclosure may include a validation node 111 and a management node 121 .

관리노드(121)는 적어도 하나의 인준노드(111)를 조합하여 인준그룹(110)을 구성할 수 있으며, 이를 위해, 인준그룹(110) 내에서 인준노드(111)의 참여, 전입, 합병 등을 관리할 수 있다. The management node 121 may configure the verification group 110 by combining at least one verification node 111 , and for this purpose, the participation, transfer, merger, etc. of the verification node 111 within the verification group 110 . can manage

특히, 관리노드(121)는 인준그룹(110) 단위에서 발생되는 트랜잭션을 조합하여 인준블록(150)을 생성할 수 있다. 이때, 인준블럭(150)의 생성은 인준그룹에 포함된 멤버 노드들, 즉, 적어도 하나의 인준노드(111)들 사이의 적절한 합의 알고리즘을 통해 이루어져야 한다. 예컨대, 합의 알고리즘은 PBFT(Practical Byzantine Fault Tolerant) 프로토콜이 적용될 수 있다. In particular, the management node 121 may generate the authorization block 150 by combining the transactions generated in the authorization group 110 unit. In this case, the generation of the verification block 150 should be performed through an appropriate consensus algorithm among member nodes included in the verification group, that is, at least one verification node 111 . For example, as the consensus algorithm, a Practical Byzantine Fault Tolerant (PBFT) protocol may be applied.

그리고, 관리노드(121)는, 인준그룹(110)의 상위 계층에서, 다른 관리노드와 블록체인 네트워크(120)를 구성할 수 있으며, 블록체인 네트워크(120)를 통해 인준블록(150)에 대한 확정 작업을 통해 블록체인을 구성할 수 있다. 인준그룹(110) 단위에서 만들어진 블록을 인준블록이라 지칭하고, 인준블록에 대한 확정 작업을 통해 구성한 블록을 구별하기 위하여, 블록체인 네트워크(120)를 통해 확정 작업이 이루어진 블록을 확정블록이라 지칭한다. And, the management node 121, in the upper layer of the authorization group 110, can configure the block chain network 120 with other management nodes, and the authorization block 150 through the block chain network 120 A blockchain can be constructed through a confirmation operation. A block created in the unit of the confirmation group 110 is referred to as a confirmation block, and in order to distinguish blocks formed through confirmation work on the confirmation block, a block on which confirmation work is performed through the block chain network 120 is referred to as a confirmation block. .

기존의 인준블록의 변경을 방지하고 투명한 처리를 위하여 기존의 인준블록의 구조는 변경하지 않은 채, 인준블록에 확장헤더를 추가하여 확정블록을 구성할 수 있다. 이와 같이 인준블록에 확장헤더를 추가하여 확정블록을 구성함으로써, 블록체인 네트워크가 인준그룹 단위에서 생성한 인준블록을 임의로 변경하는 것을 방지할 수 있다.In order to prevent changes to the existing confirmation block and provide transparent processing, the confirmation block can be configured by adding an extension header to the confirmation block without changing the structure of the existing confirmation block. By configuring a confirmation block by adding an extension header to the confirmation block in this way, it is possible to prevent the blockchain network from arbitrarily changing the confirmation block generated in the unit of the confirmation group.

나아가, 관리노드(121)는 블록체인 네트워크(120)를 운영하는 운영주체에 의해 인증되는 노드일 수 있으며, 이를 위해, 블록체인 시스템(100)은 관리노드(121)의 참여, 탈퇴 등을 관리하는 운영자 노드(170)를 더 포함할 수 있다. Furthermore, the management node 121 may be a node authenticated by the operating entity operating the block chain network 120 , and for this purpose, the block chain system 100 manages the participation and withdrawal of the management node 121 , etc. It may further include an operator node 170 that does.

이와 같이, 블록체인 네트워크(120)는 기본적으로 네트워크를 구성하는 관리노드(121)가 운영주체에 의해 제한되는 비공개형 블록체인 시스템으로 구성될 수 있다. 다만, 블록체인 네트워크(120)의 하위에 구성되는 인준그룹(110)에 참여하는 인준노드(111)는 블록체인 네트워크(120)를 운영하는 운영주체에 의해 제한되지 않으므로, 인준그룹(110)은 공개형 시스템으로 구성될 수 있다. As such, the blockchain network 120 may be configured as a private blockchain system in which the management nodes 121 constituting the network are basically restricted by the operating entity. However, since the validation node 111 participating in the validation group 110 configured below the blockchain network 120 is not limited by the operating entity that operates the blockchain network 120, the validation group 110 is It can be configured as an open system.

결국, 본 개시의 일 실시예에 따른 블록체인 시스템(100)은 블록체인 네트워크(120)를 운영하는 운영주체에 의해 관리되는 블록체인을 구성하지만, 각각의 블록을 생성하는 인준그룹(110) 단위에서는 탈 중앙화를 실현할 수 있는 시스템을 구현할 수 있다.After all, the block chain system 100 according to an embodiment of the present disclosure constitutes a block chain managed by an operator who operates the block chain network 120, but the authorization group 110 unit that generates each block can implement a system that can realize decentralization.

도 2는 본 개시의 일 실시예에 따른 블록체인 시스템에 구비되는 관리노드의 상세 구성을 도시하는 블록도이다.2 is a block diagram illustrating a detailed configuration of a management node provided in a block chain system according to an embodiment of the present disclosure.

도 2를 참조하면, 관리노드(200)는 인준그룹을 관리하는 인준그룹 관리부(210)와, 블록체인 네트워크(Blockchain Network)를 관리하는 블록체인 네트워크 관리부(이하, 'BN 관리부'라 함)(230)를 포함할 수 있다.Referring to FIG. 2, the management node 200 includes a verification group management unit 210 that manages an authorization group, and a blockchain network management unit that manages a blockchain network (hereinafter referred to as a 'BN management unit') ( 230) may be included.

우선, 인준그룹 관리부(210)는 인준그룹 제어부(211)를 포함할 수 있으며, 인준그룹 제어부(211)는 노드에서 발생되는 인준그룹의 참여 요청을 확인하고, 이에 대응되는 인준그룹의 참여 여부를 결정하여 해당 노드로 제공할 수 있다. 인준그룹은 공개형 시스템으로 구성되므로 노드의 참여 자격을 시스템의 운영주체, 예컨대, 운영자 노드를 통해 제한하지 않는다. 그러나, 악의적인 노드가 인준그룹에 참여하여 블록체인 시스템의 정상적인 동작을 방해할 가능성이 존재한다. 예컨대, 단일의 물리 노드가 다수의 논리 노드를 구성하고, 다수의 논리 노드를 동일한 인준그룹에 참여시킴으로써, 해당 인준그룹이 인준블록을 생성하는 것을 방해할 수 있다. 전술한 바를 고려하여, 인준그룹 제어부(211)는 인준그룹의 참여 여부를 결정할 필요가 있다. First, the verification group management unit 210 may include a verification group control unit 211, and the verification group control unit 211 confirms a request to participate in the verification group generated in the node, and determines whether to participate in the corresponding verification group. It can be decided and provided to the corresponding node. Since the approval group is composed of an open system, the participation qualification of nodes is not restricted through the operating entity of the system, for example, the operator node. However, there is a possibility that malicious nodes may participate in the confirmation group and interfere with the normal operation of the blockchain system. For example, a single physical node configures a plurality of logical nodes, and the plurality of logical nodes participate in the same authorization group, thereby preventing the corresponding authorization group from generating a confirmation block. In consideration of the foregoing, the confirmation group control unit 211 needs to determine whether to participate in the confirmation group.

나아가, 인준그룹의 성능을 보장하기 위하여, 처리 성능이 상대적으로 낮은 노드의 참여를 제한할 필요가 있다. 이를 위해, 인준그룹 제어부(211)는 참여를 요청하는 노드의 작업증명(Proof of Work)을 처리하는 시간을 확인하고, 확인된 시간을 고려하여 참여를 요청하는 노드의 승인을 제어할 수 있다.Furthermore, in order to guarantee the performance of the validation group, it is necessary to limit the participation of nodes with relatively low processing performance. To this end, the approval group control unit 211 may check the time for processing the proof of work of the node requesting participation, and control the approval of the node requesting participation in consideration of the confirmed time.

또한, 블록체인 시스템의 성능 향상, 고장복구, 효율적인 부하 분산 등을 고려하여, 인준그룹 제어부(211)는 인준그룹을 재설정하는 동작, 어느 한 인준그룹에 포함된 인준노드를 다른 인준그룹으로 병합하는 동작, 새로운 인준그룹으로 전입하는 동작 등을 수행할 수 있다. 이를 위해, 인준그룹 관리부(210)는 인준그룹의 상태를 확인하는 상태 모니터링부(213)를 포함할 수 있다. 상태 모니터링부(213)는 인준그룹의 상태를 인준그룹 제어부(211)에 제공하고, 인준그룹 제어부(211)는 인준그룹의 상태를 고려하여, 인준그룹의 재설정 동작, 인준노드의 병합 동작, 인준노드의 전입 동작 등을 처리할 수 있다.In addition, in consideration of performance improvement, failure recovery, and efficient load distribution of the block chain system, the validation group control unit 211 resets the validation group and merges the validation node included in one validation group into another validation group. You can perform actions such as moving to a new approval group. To this end, the verification group management unit 210 may include a status monitoring unit 213 that checks the status of the verification group. The status monitoring unit 213 provides the status of the verification group to the verification group control unit 211, and the verification group control unit 211 considers the status of the verification group, resetting the verification group, merging verification nodes, and confirming. It can handle the transfer operation of a node, etc.

인준그룹 제어부(211)의 인준그룹 참여 승인 동작, 인준그룹의 재설정 동작, 인준노드의 병합 동작, 인준노드의 전입 동작 등의 구체적인 동작은 하기의 도 7a 내지 도 7d를 참조한다.Specific operations of the confirmation group control unit 211 for approval group participation, resetting of the confirmation group, merging of the confirmation nodes, and transferring operation of the confirmation node, etc. will be described with reference to FIGS. 7A to 7D below.

한편, BN 관리부(230)는 인준그룹에 포함된 적어도 하나의 인준노드로부터 트랜잭션을 수신하고, 인준그룹에 속한 노드들 간에 합의 알고리즘을 이용하여 인준블록을 생성하고, 생성된 인준블록을 다른 관리노드로 전송하거나, 다른 관리노드가 생성한 인준블록을 수신하는 동작을 수행할 수 있다. 또한 인준블럭에 대한 확정작업을 통해 확정블록을 구성하고, 확정블록을 로컬 저장소에 저장하고, 인준그룹에 포함된 인준노드로 전송하는 동작을 수행할 수 있다. 인준블록에 대한 확정작업은 블록체인 네트워크에 구비된 관리노드들 간의 합의 프로토콜을 이용하여 이루어질 수 있다. Meanwhile, the BN management unit 230 receives a transaction from at least one validation node included in the validation group, generates a validation block using a consensus algorithm among nodes belonging to the validation group, and transfers the generated validation block to another management node. , or receiving a confirmation block generated by another management node. In addition, it is possible to configure a confirmation block by performing a confirmation operation on the confirmation block, store the confirmation block in the local storage, and transmit the operation to the confirmation node included in the confirmation group. Confirmation of the confirmation block can be done using the consensus protocol between management nodes provided in the blockchain network.

도 3은 본 개시의 일 실시예에 따른 블록체인 시스템에 의해 생성되는 인준블록 및 확정블록을 예시하는 도면이다. 도 3을 참조하면, 인준블록(300)은 전술한 BN 관리부(230)에 의해 생성될 수 있으며, 개념적으로는 다수의 트랜잭션의 묶음을 의미하며 적어도 블록 헤더(310)와, 인준그룹에서 발생된 트랜잭션(321-1, 321-2, ..., 321-n)을 구비하는 블록 바디(320)를 포함할 수 있다. 인준블럭(300)은 인준그룹 내에서 적절한 합의 알고리즘을 통해 합의되어야 한다. 예컨대, 인준블럭(300)의 생성시 PBFT 프로토콜이 사용될 수 있다.3 is a diagram illustrating a confirmation block and a confirmation block generated by the block chain system according to an embodiment of the present disclosure. Referring to FIG. 3 , the validation block 300 may be generated by the above-described BN management unit 230 , and conceptually means a bundle of a plurality of transactions, and includes at least the block header 310 and the It may include a block body 320 having transactions 321-1, 321-2, ..., 321-n. The validation block 300 must be agreed through an appropriate consensus algorithm within the validation group. For example, the PBFT protocol may be used when the validation block 300 is generated.

BN 관리부(230)는 부모블록의 해쉬값(311), 상기 인준블록에 포함된 트랜잭션에 대한 머클트리(merkle tree)의 루트 값(312), 상기 인준블록이 생성된 시간(313), 및 상기 인준블록에 대응되는 인준그룹의 식별자(314)를 확인하고, 확인된 값(311, 312, 313, 314)을 블록 헤더(310)에 삽입할 수 있다. The BN management unit 230 includes the hash value 311 of the parent block, the root value 312 of the merkle tree for the transaction included in the confirmation block, the time at which the confirmation block is generated 313, and the The identifier 314 of the validation group corresponding to the validation block may be checked, and the checked values 311 , 312 , 313 , and 314 may be inserted into the block header 310 .

나아가, 블록체인 시스템에 구비되는 적어도 하나의 관리노드 각각은 인준그룹 각각에서 발생되는 트랜잭션을 사용하여 동시에 병렬적으로 인준블록을 생성하도록 구성된다. 따라서, 다수의 인준블록은 동일한 확정블록을 부모 블록으로 구비하도록 구성될 수 있다. 예컨대, 도 4a와 같이, 제1 내지 제4관리노드를 통해 생성된 제1 내지 제4인준블록(401, 402, 403, 404)은 블록체인의 마지막 블록(410)을 부모 블록으로 설정할 수 있다. Furthermore, each of the at least one management node provided in the block chain system is configured to generate a verification block in parallel at the same time using the transaction generated in each of the verification groups. Accordingly, a plurality of confirmation blocks may be configured to include the same confirmation block as a parent block. For example, as shown in FIG. 4A , the first to fourth validation blocks 401 , 402 , 403 and 404 generated through the first to fourth management nodes may set the last block 410 of the block chain as a parent block. .

블록체인의 특성 상, 블록을 순차적으로 연결하여 체인화하므로 각 블록 내에 포함된 트랜잭션들이 순차적으로 실행되는 것이 보장되어야 하는데, 전술한 바와 같이, 제1 내지 제4인준블록(401, 402, 403, 404) 병렬적으로 구성될 경우, 즉 하나의 부모에 여러 개의 자식 블록이 연결되게 된다면, 블록체인이 특성이 정확하게 반영되지 못하는 문제가 발생된다. 그러므로 이런 문제를 해결하기 위해 일종의 조정 작업이 필요하다. 조정 작업에는 첫 번째로 같은 부모를 가진 인준블럭을 조정하여 하나의 부모를 가진 체인 형태로 바꾸는 작업이 필요하고, 두 번째로 개별 인준블럭에 포함된 트랜잭션들의 혹시 있을지 모르는 충돌을 해결하는 작업이 필요하다. 만약 이러한 조정 작업을 관리 계층에서 임의로 하게 된다면, 탈중앙화 측면에서 바람직하지 않다. 이러한 조정 작업이 투명하고 최소한으로 발생하도록 해야 할 필요성이 있다.Due to the characteristics of the block chain, since the blocks are sequentially connected and chained, it is necessary to ensure that the transactions included in each block are sequentially executed. ) When configured in parallel, that is, if multiple child blocks are connected to one parent, a problem arises that the characteristics of the block chain cannot be accurately reflected. Therefore, some sort of adjustment is required to solve this problem. Reconciliation requires first reconciling the confirmation block with the same parent and changing it into a chain with one parent, and second, resolving any conflicts between transactions included in individual confirmation blocks. do. If such coordination work is done arbitrarily in the management layer, it is undesirable in terms of decentralization. There is a need to ensure that these coordination operations are transparent and minimal.

전술한 바를 고려하여, BN 관리부(230)는 블록 헤더(310)에 포함된 인준블록이 생성된 시간(313)을 고려하여, 제1 내지 제4인준블록(401, 402, 403, 404)의 순서를 설정하는 것이 바람직하다. 그리고, BN 관리부(230)는 제1 내지 제4인준블록(401, 402, 403, 404)의 순서를 고려하여, 부모 블록을 재설정할 수 있으며(450, 도 4b 참조), 이와 같이 재설정된 부모 블록에 맞춰 해쉬값을 산출할 수 있다. In consideration of the above, the BN management unit 230 considers the time 313 at which the validation block included in the block header 310 is generated, the first to fourth validation blocks 401 , 402 , 403 and 404 . It is desirable to set the order. In addition, the BN management unit 230 may reset the parent block in consideration of the order of the first to fourth validation blocks 401, 402, 403, and 404 (450, see FIG. 4B), and the reset parent A hash value can be calculated according to a block.

나아가, BN 관리부(230)는 확장 헤더(330)를 더 포함하도록 인준블록(300, 도 3참조)을 구성할 수 있으며, 재설정된 부모 블록에 맞춰 산출된 해쉬값(331)을 확장 헤더(330)에 삽입할 수 있다. 한편, 전술한 바와 같이, 복수의 관리노드 각각은 인준그룹 각각에서 발생되는 트랜잭션을 사용하여 동시에 병렬적으로 인준블록을 생성하도록 구성되므로, 서로 다른 인준블록 내에 동일한 트랜잭션이 존재할 수 있으며, 또한 이중지불을 일으키는 트랜잭션이 존재할 수 있다. 이 경우 트랜잭션 사이의 충돌이 발생될 수 있다고 말할 수 있다. 이에 기초하여, BN 관리부(230)는 서로 다른 인준블록 내에 충돌이 있는 트랜잭션이 존재하는지를 확인하고, 트랜잭션이 존재할 경우, 해당 트랜잭션을 폐기 처리할 수 있다. 그리고, BN 관리부(230)는, 폐기된 트랜잭션이 수행되지 않도록, 폐기된 트랜잭션을 수록한 폐기 트랜잭션 리스트(332)를 생성하여 확장 헤더(330)에 삽입할 수 있다. Furthermore, the BN management unit 230 may configure the validation block 300 (refer to FIG. 3 ) to further include the extension header 330 , and use the hash value 331 calculated in accordance with the reset parent block to the extension header 330 . ) can be inserted. Meanwhile, as described above, since each of the plurality of management nodes is configured to generate confirmation blocks in parallel at the same time using the transactions generated in each of the confirmation groups, the same transaction can exist in different confirmation blocks, and also double payment There may be transactions that cause In this case, it can be said that conflicts between transactions can occur. Based on this, the BN management unit 230 may check whether a conflicting transaction exists in different confirmation blocks, and if there is a transaction, discard the transaction. In addition, the BN management unit 230 may generate a discarded transaction list 332 including the discarded transaction and insert it into the extended header 330 so that the abolished transaction is not performed.

조정 작업과 관련된 정보를 확장헤더(330)를 통해 추가하는 이유는 관리그룹 계층에 의해 인준그룹에서 생성된 인준블록이 임의로 수정되는 것을 막기 위함이다. 즉, 관리그룹 계층은 인준블록 자체를 수정할 수 없도록 강제하기 위한 것이다.The reason for adding information related to the adjustment operation through the extension header 330 is to prevent the authorization block generated in the authorization group by the management group hierarchy from being arbitrarily modified. That is, the management group layer is to force the confirmation block itself not to be modified.

BN 관리부(230)는 인준그룹 내에서 미리 정해진 시간단위마다 발생되는 트랜잭션을 확인 및 검증하고, 검증된 트랜잭션을 조합하여 인준블록을 구성 및 저장할 수 있다. 이때, BN 관리부(230)는 도 3에서 예시한 블록 헤더(310)와 블록 바디(320)를 포함하는 인준블록(300)을 구성할 수 있다. 인준블럭(300)은 반드시 적절한 합의 프로토콜을 통해 인준그룹 노드들 간에 합의되어야 한다.The BN management unit 230 may check and verify a transaction that is generated every predetermined time unit within the verification group, and combine the verified transactions to configure and store the verification block. In this case, the BN manager 230 may configure the validation block 300 including the block header 310 and the block body 320 illustrated in FIG. 3 . The validation block 300 must be agreed upon among the validation group nodes through an appropriate consensus protocol.

BN 관리부(230)는 해당 관리노드가 리더인지 추종자인지에 따라 하는 그 동작을 다르게 수행할 수 있다. 관리노드들로 구성된 블록체인 네트워크의 생성시, 관리노드 중 하나는 리더 노드로서 선출될 수 있으며, 리더가 아닌 다른 관리노드들은 추종자 노드로서 결정될 수 있다. 리더 노드가 예기치 못한 오류 또는 서버 교체 등의 작업을 위해 리더 역할을 하지 못하게 될 경우, 추종자 노드 중 하나가 리더 노드로 선출될 수 있다. 리더 노드의 선출은 미리 정해진 순서(예, 라운드 로빈 방식)에 따라 이루어지거나, 랜덤 타이머를 기반으로 이루어질 수 있다. 리더 노드로서 동작하는 관리노드의 BN 관리부(230)는 전술한 인준블럭에 대한 조정 작업을 주도하는 역할을 수행한다. The BN management unit 230 may perform the operation differently depending on whether the corresponding management node is a leader or a follower. When creating a blockchain network composed of managed nodes, one of the managed nodes may be elected as a leader node, and other managed nodes other than the leader may be determined as follower nodes. If the leader node fails to act as a leader due to an unexpected error or server replacement, one of the follower nodes may be elected as the leader node. The leader node may be selected according to a predetermined order (eg, round robin method) or based on a random timer. The BN management unit 230 of the management node operating as the leader node plays a role in leading the adjustment work for the above-described confirmation block.

이하, 도 5a 및 도 5b를 참조하여, 도 3에 도시된 BN 관리부(230)의 상세 동작을 설명한다. 도 5a는 도 3의 BN 관리부의 상세 동작 순서를 도시하는 흐름도로서, 리더 노드로서 동작하는 관리노드의 동작 순서를 나타낸다.Hereinafter, a detailed operation of the BN management unit 230 shown in FIG. 3 will be described with reference to FIGS. 5A and 5B . FIG. 5A is a flowchart illustrating a detailed operation sequence of the BN management unit of FIG. 3 , and shows an operation sequence of a management node operating as a leader node.

합의 타이머가 개시되면(S501), BN 관리부는 다른 관리노드로부터 인준블록을 수신할 수 있다(S502). 이러한 인준블록의 수신 동작은 합의 타이머가 만료될 때까지 지속적으로 수행된다(S503). When the consensus timer is started (S501), the BN management unit may receive a confirmation block from another management node (S502). This confirmation block reception operation is continuously performed until the consensus timer expires (S503).

이후, 합의 타이머가 만료(S503-예)되면, BN 관리부는 수신된 인준블록에 대한 유효성 검증을 수행한다(S504). 이후, 인준블록에 대한 조정 작업은 유효성 검증인 완료된 블록을 대상으로 처리된다.Thereafter, when the consensus timer expires (S503-Yes), the BN manager performs validation on the received validation block (S504). After that, the adjustment work for the confirmation block is processed for the completed block that is validated.

S505 단계에서, BN 관리부는 인준블록의 블록 헤더(310)에 포함된 인준블록이 생성된 시간(313)을 고려하여, 수신된 인준블록의 순서를 결정하고, 결정된 순서에 맞춰 인준블록의 부모 블록을 재설정할 수 있다. 또한, BN 관리부는 인준블록에 초기화된 확장 헤더(330)를 구성하고, 재설정된 부모 블록에 맞춰 해쉬값을 산출한 후, 산출된 해쉬값(331)을 확장 헤더(330)에 삽입할 수 있다.In step S505, the BN management unit determines the order of the received confirmation blocks in consideration of the time 313 at which the confirmation block included in the block header 310 of the confirmation block is generated, and determines the parent block of the confirmation block according to the determined order. can be reset. In addition, the BN management unit may configure the initialized extension header 330 in the validation block, calculate a hash value according to the reset parent block, and insert the calculated hash value 331 into the extension header 330 . .

S506 단계에서, BN 관리부는 서로 다른 인준블록 내에 포함된 트랜잭션을 확인하여, 충돌이 발생되는지를 확인하고, 이를 처리하는 동작을 수행할 수 있다. 트랜잭션의 충돌 확인 및 처리 동작은, 서로 다른 인준블록 내에 동일한 트랜잭션이 존재하는지를 확인하고, 동일한 트랜잭션이 존재할 경우나 이중지불이 발생할 경우에, 해당 트랜잭션을 폐기 처리할 수 있다. 이때, BN 관리부는 인준블록의 순서에 기초하여 트랜잭션의 폐기를 처리할 수 있다. 예컨대, 동일한 트랜잭션이 서로 다른 인준블록에 존재할 경우, 상대적으로 뒤쪽에 배열된 인준블록의 트랜잭션을 폐기하는 정책이 사용될 수 있다. 나아가, S506 단계에서, BN 관리부는, 폐기된 트랜잭션을 수록한 폐기 트랜잭션 리스트(332)를 생성하여 확장 헤더(330)에 삽입할 수 있다.In step S506, the BN management unit may check the transactions included in the different confirmation blocks, check whether a conflict occurs, and perform an operation to process it. In the transaction conflict check and processing operation, it is checked whether the same transaction exists in different confirmation blocks, and when the same transaction exists or a double payment occurs, the transaction can be discarded. In this case, the BN management unit may process the discard of the transaction based on the order of the confirmation blocks. For example, when the same transaction exists in different confirmation blocks, a policy of discarding transactions in the confirmation blocks arranged relatively later may be used. Furthermore, in step S506 , the BN management unit may generate a discarded transaction list 332 including discarded transactions and insert it into the extended header 330 .

한편, S507 단계에서, BN 관리부는 확장헤더가 추가된 인준블록에 대하여 관리노드들 간에 적절한 합의 프로토콜을 이용하여 확정블록으로 결정할 수 있다. 최종적으로 확정블록으로 결정된 블록만이 블록체인의 정식 블록이 될 수 있다. 예컨대, 합의 프로토콜로서 PBFT 프로토콜이나 RAFT 프로토콜 등이 사용될 수 있다. Meanwhile, in step S507, the BN management unit may determine the confirmation block to which the extended header is added as a confirmed block using an appropriate agreement protocol between the management nodes. Only blocks that are finally determined to be final blocks can become official blocks of the blockchain. For example, a PBFT protocol or a RAFT protocol may be used as the consensus protocol.

S508 단계에서, BN 관리부는 확정블록을 배포하는 동작을 수행할 수 있다. 예컨대, 합의 프로토콜을 통해 자신의 관리노드가 블록을 생성하는 노드로 결정된 경우, BN 관리부는 자신의 로컬 저장소에 저장된 블록체인에, 생성된 확정블록을 추가하여 연결하고, 다른 노드들로 생성된 확정블록을 전송할 수 있다. In step S508, the BN management unit may perform an operation of distributing the confirmed block. For example, if its management node is determined to be a block generating node through the consensus protocol, the BN management unit adds and connects the generated confirmed block to the block chain stored in its local storage, and the confirmation generated by other nodes block can be transmitted.

한편, 도 5b는 도 3의 BN 관리부의 상세 동작 순서를 도시하는 흐름도로서, 추종자 노드로서 동작하는 관리노드의 동작 순서를 나타낸다.Meanwhile, FIG. 5B is a flowchart illustrating a detailed operation sequence of the BN management unit of FIG. 3 , and shows an operation sequence of a management node operating as a follower node.

우선, 추종자 관리 노드의 BN 관리부는 리더 노드로부터 확정블록을 수신하고(S511), 이(확정블록)를 검증하는 동작을 수행한다(S512).First, the BN management unit of the follower management node receives the confirmation block from the leader node (S511), and performs an operation to verify this (confirmed block) (S512).

이후, BN 관리부는 자신의 로컬 저장소에 저장된 블록체인에 S511 단계에서 수신된 확정블록을 추가 연결하고(S513), 확정블록을 자신이 관장하는 인준그룹에 포함된 인준노드들에게 전송할 수 있다(S514).Thereafter, the BN management unit may additionally connect the confirmed block received in step S511 to the block chain stored in its local storage (S513), and transmit the confirmed block to the confirmation nodes included in the confirmation group it manages (S514). ).

도 6은 본 개시의 일 실시예에 따른 블록체인 시스템에 구비되는 인준노드의 구성을 도시하는 블록도이다.6 is a block diagram illustrating the configuration of a validation node provided in a block chain system according to an embodiment of the present disclosure.

도 6을 참조하면, 인준노드(600)는 멤버쉽 처리부(610)와, 트랜잭션 관리부(630)를 포함할 수 있다.Referring to FIG. 6 , the validation node 600 may include a membership processing unit 610 and a transaction management unit 630 .

멤버쉽 처리부(610)는 전술한 관리노드(200)의 인준그룹 관리부(210)와 연동하여, 인준노드(600)의 인준그룹 참여, 인준그룹의 재설정 동작, 인준노드의 병합 동작, 인준노드의 전입 동작 등을 처리할 수 있다. The membership processing unit 610 cooperates with the verification group management unit 210 of the management node 200 described above, and the verification group participation of the verification node 600, the resetting operation of the verification group, the merging operation of the verification node, the transfer of the verification node actions, and so on.

이를 위해, 멤버쉽 처리부(610)는 자신의 주소를 나타내는 IP 주소, 노드의 검증에 사용되는 공개키 등을 관리할 수 있다. 또한, 인준노드(600)가 인준그룹에 참여하기 위해서는, 참여할 인준그룹을 관리하는 관리노드의 네트워크 주소와 공개키가 요구된다. 따라서, 멤버쉽 처리부(610)는 인준그룹을 관리하는 관리노드의 네트워크 주소와 공개키를 미리 저장하거나, 다른 개체와의 통신을 통해 인준그룹을 관리하는 관리노드의 네트워크 주소와 공개키를 획득하는 동작을 수행할 수 있다.To this end, the membership processing unit 610 may manage an IP address indicating its own address, a public key used for node verification, and the like. In addition, in order for the validation node 600 to participate in the validation group, the network address and public key of the management node that manages the validation group to participate are required. Accordingly, the membership processing unit 610 stores in advance the network address and public key of the management node that manages the authorization group, or obtains the network address and public key of the management node that manages the authorization group through communication with other entities. can be performed.

나아가, 멤버쉽 처리부(610)의 인준그룹 참여 승인 동작, 인준그룹의 재설정 동작, 인준노드의 병합 동작, 인준노드의 전입 동작 등의 구체적인 동작은 하기의 도 7a 내지 도 7d를 참조한다.Further, detailed operations such as the approval group participation approval operation of the membership processing unit 610, the confirmation group reset operation, the merging operation of the confirmation node, and the transfer operation of the confirmation node, refer to FIGS. 7A to 7D below.

트랜잭션 관리부(630)는 인준노드(600)가 속한 인준그룹 내에서 발생되는 트랜잭션을 저장할 수 있다. 예컨대, 트랜잭션 관리부(630)는 클라이언트와의 통신을 통해 발생된 트랜잭션을 확인하고, 확인된 트랜잭션을 저장하고, 다른 인준노드로 전달할 수 있다. 또한, 트랜잭션 관리부(630)는 인준그룹 내의 다른 인준노드 또는 관리노드로부터 트랜잭션을 수신 및 검증하고, 검증된 트랜잭션을 저장할 수 있다. The transaction manager 630 may store a transaction generated within the validation group to which the validation node 600 belongs. For example, the transaction management unit 630 may confirm a transaction generated through communication with the client, store the confirmed transaction, and transmit it to another validation node. Also, the transaction manager 630 may receive and verify a transaction from another validation node or a management node in the validation group, and store the verified transaction.

이하, 도 7a 내지 도 7d를 참조하여, 관리노드와 인준노드 사이의 통신을 통해 인준노드의 인준그룹 참여 동작, 인준그룹의 재설정 동작, 인준노드의 병합 동작, 인준노드의 전입 동작 등의 처리 과정을 상세히 설명한다. Hereinafter, with reference to FIGS. 7A to 7D , through communication between the management node and the validation node, the validation node participates in the validation group, resets the validation group, merges the validation node, and transfers the validation node to the processing process will be described in detail.

도 7a 내지 도 7d에 개시된 본 개시의 일 실시예에 따른 블록체인 시스템의 처리 동작은 전술한 관리노드의 인준그룹 관리부(210)와 인준노드의 멤버쉽 처리부(610)를 중심으로 수행될 수 있으나, 본 개시가 이를 한정하는 것은 아니며 본 개시의 기술분야에서 통상의 지식을 가진 자에 의해 다양하게 변경될 수 있다. 따라서, 도 7a 내지 도 7d에 개시된 본 개시의 일 실시예에 따른 블록체인 시스템의 처리 동작은, 관리노드와 인준노드에 의해 수행되는 것으로 설명한다.The processing operation of the block chain system according to an embodiment of the present disclosure disclosed in FIGS. 7A to 7D may be performed centered on the above-described authorization group management unit 210 of the management node and the membership processing unit 610 of the authorization node, The present disclosure is not limited thereto and may be variously changed by those skilled in the art of the present disclosure. Accordingly, the processing operation of the block chain system according to an embodiment of the present disclosure disclosed in FIGS. 7A to 7D is described as being performed by the management node and the validation node.

도 7a는 본 개시의 일 실시예에 따른 블록체인 시스템의 인준노드의 인준그룹 참여 동작을 나타내는 흐름도이다. 7A is a flowchart illustrating an operation of participating in an authorization group of an authorization node of a blockchain system according to an embodiment of the present disclosure.

우선, 인준그룹에 참여를 원하는 인준노드(71)는 해당 인준그룹을 관리하는 관리노드(73)의 네트워크 주소(예, IP 주소)와 공개키를 확인할 수 있으며, 확인된 관리노드(73)의 네트워크 주소(예, IP 주소)와 공개키를 사용하여 참여 요청 메시지를 관리노드(73)로 전송한다(S701). 또한 인준노드(71)는 자신의 네트워크 주소(예, IP 주소)와 공개키를 포함하는 참여 요청 메시지를 구성할 수 있다. First, the validation node 71 that wants to participate in the validation group can check the network address (eg, IP address) and public key of the management node 73 that manages the validation group, and A participation request message is transmitted to the management node 73 using the network address (eg, IP address) and the public key (S701). Also, the validation node 71 may configure a participation request message including its own network address (eg, IP address) and a public key.

추가적으로, 인준노드(71)는 자신이 가지고 있는 블록체인의 블록 중, 가장 마지막 블록의 해쉬값을 참여 요청 메시지에 수록할 수 있다. Additionally, the validation node 71 may include the hash value of the last block among the blocks of the block chain it has in the participation request message.

참여 요청 메시지를 수신한 관리노드(73)는 인준그룹의 노드 상태를 확인하고, 인준노드(71)의 참여를 승인할지 여부를 결정할 수 있다(S702). 인준노드(71)의 참여 승인 여부는 인준그룹을 구성하는 노드의 수, 상기 인준블록의 합의 시간 등을 고려하여 결정할 수 있다. 예컨대, 관리노드(73)는 인준그룹에 포함된 인준노드의 수를 확인하고, 확인된 인준노드의 수가 미리 정해진 임계값을 초과하는지에 따라 인준노드(71)의 참여 승인 여부를 결정할 수 있다. 다른 예로서, 관리노드(73)는 인준그룹의 평균 블록 합의 시간을 확인하고, 평균 블록 합의 시간이 미리 정해진 임계값을 초과하는지에 따라 참여 승인 여부를 결정할 수 있다. The management node 73 receiving the participation request message may determine whether to approve the participation of the confirmation node 71 by checking the node status of the confirmation group (S702). Whether to approve the participation of the validation node 71 may be determined in consideration of the number of nodes constituting the validation group, the consensus time of the validation block, and the like. For example, the management node 73 may determine the number of validation nodes included in the validation group, and determine whether to approve the participation of the validation node 71 according to whether the number of the confirmed validation nodes exceeds a predetermined threshold value. As another example, the management node 73 may check the average block consensus time of the validation group, and determine whether to approve the participation according to whether the average block consensus time exceeds a predetermined threshold.

인준노드(71)의 참여를 승인할 경우(S703-예), 관리노드(73)는 검증필요(ProofRequired) 메시지를 인준노드(71)에 전송할 수 있다(S704). 이때, 검증필요 메시지는, 관리노드의 공개 키, 관리노드가 발행한 seed 값, 해쉬 함수 문제를 난이도를 수준을 나타내는 difficulty level, 그리고 해쉬 함수 문제를 몇 번 풀 것인가를 나타내는 count 값을 포함할 수 있다. When the participation of the verification node 71 is approved (S703-Yes), the management node 73 may transmit a ProofRequired message to the verification node 71 (S704). In this case, the verification required message may include the public key of the management node, the seed value issued by the management node, the difficulty level indicating the level of difficulty of the hash function problem, and the count value indicating how many times to solve the hash function problem. have.

S705 단계에서, 인준노드(71)는 검증필요 메시지에 수록된 정보를 사용하여 아래와 같이 해쉬 함수의 해쉬 값이 difficulty level보다 작은 값이 될 때까지 nonce값을 바꾸어 가면서 반복 연산한다. 인준노드(71)는 count값에 해당하는 개수만큼 해쉬 함수 문제에 대한 답을 구해야 한다. 즉, count 값 개수만큼의 hash 함수 문제를 해결하고, 그 결과를 포함하는 검증필요 응답 메시지를 구성하여 관리노드(73)에 제공할 수 있다. In step S705, the validation node 71 repeatedly operates while changing the nonce value until the hash value of the hash function becomes a value smaller than the difficulty level by using the information contained in the verification-required message. The validation node 71 must find an answer to the hash function problem as many as the number corresponding to the count value. That is, it is possible to solve the problem of the hash function as many as the number of count values, to construct a verification-required response message including the result, and to provide it to the management node 73 .

- Hash(관리노드가 발행한 seed 값||인준노드의 공개 키||nonce)- Hash (seed value issued by management node||public key of confirming node||nonce)

이때, 검증필요 응답 메시지는, 인준노드의 공개 키, 관리노드의 공개 키, 관리노드가 발행한 seed 값, difficulty level 값, 해시 함수 문제에 대한 답의 목록을 포함할 수 있다. 해쉬 문제에 대한 답은 인준노드가 찾아낸 nonce 값을 의미하며, 목록의 개수는 count의 값과 같다. 상기 nonce 값의 목록을 검증 리스트라고 한다.In this case, the verification required response message may include a list of answers to the public key of the validation node, the public key of the management node, the seed value issued by the management node, the difficulty level value, and the hash function problem. The answer to the hash problem means the nonce value found by the validation node, and the number of lists is equal to the value of count. The list of nonce values is called a verification list.

나아가, 관리노드(73)는 검증 메시지에 수록된 파라미터를 인준노드(71)의 공개키를 사용하여 암호화할 수 있으며, 인준노드(71)는 검증필요 응답 메시지에 수록된 파라미터를 관리노드(73)의 공개키를 사용하여 암호화할 수 있다.Furthermore, the management node 73 can encrypt the parameters included in the verification message using the public key of the verification node 71, and the verification node 71 converts the parameters included in the verification required response message to the parameters of the management node 73. It can be encrypted using the public key.

이후, 관리노드(73)는 검증필요 응답 메시지에 수록된 검증 리스트를 확인하고(S706), 검증 리스트의 오류 여부를 확인하여 인준노드(71)로 ACK 또는 NACK를 전송할 수 있다. Thereafter, the management node 73 may check the verification list included in the verification required response message ( S706 ), check whether the verification list is in error, and transmit ACK or NACK to the verification node 71 .

즉, 검증 리스트에 오류가 없을 경우(S707-예), 관리노드(73)는 인준노드(71)로 ACK를 전송할 수 있다(S708). 추가적으로, 관리노드(73)는 인준그룹에 미리 포함된 적어도 하나의 인준노드(71')로 인준노드(71)의 인준그룹 참여를 나타내는 신규 노드 알림 메시지를 전송할 수 있다(S708').That is, when there is no error in the verification list (S707-Yes), the management node 73 may transmit an ACK to the verification node 71 (S708). Additionally, the management node 73 may transmit a new node notification message indicating participation in the validation group of the validation node 71 to at least one validation node 71' previously included in the validation group (S708').

반면, 검증 리스트에 오류가 있을 경우(S707-아니오), 관리노드(73)는 인준노드(71)로 NACK를 전송할 수 있다(S709). 이때, 관리노드(73)는 거절이유를 생성하여 NACK에 삽입할 수 있다. NACK에 삽입되는 거절이유는 하기의 표 1과 같이 예시될 수 있다.On the other hand, if there is an error in the verification list (S707-No), the management node 73 may transmit a NACK to the verification node 71 (S709). In this case, the management node 73 may generate a reason for rejection and insert it into the NACK. The reason for rejection inserted into the NACK may be exemplified as shown in Table 1 below.

거절이유reason for rejection 의미meaning Difficulty level does not matchDifficulty level does not match 관리노드가 제시한 difficulty level과 일치하지 않는 difficulty level이 사용됨A difficulty level that does not match the difficulty level suggested by the management node is used Invalid seedInvalid seed 관리노드가 제시한 seed값이 사용되지 않음The seed value suggested by the management node is not used. Answer is incorrectAnswer is incorrect 해쉬 함수 문제의 답에 오류가 있음There is an error in the answer to the hash function problem

관리노드(73)는 인준그룹의 성능을 보증하기 위해 너무 성능이 떨어지는 신규 노드가 인준그룹에 가입되는 것을 제한할 수 있다. 예를 들어, 관리노드(73)는 검증 메시지를 전송한 시간과 검증 응답 메시지를 수신한 시간 사이의 차이를 확인하고, 확인된 시간의 차이가 미리 정해진 임계값을 초과할 경우, 인준노드(71)의 인준그룹 가입을 제한할 수 있다. 전술한 바와 같이, 확인된 시간의 차이가 미리 정해진 임계값을 초과하는 것이 확인될 경우, 관리노드(73)는 "Too late"의 거절이유를 NACK에 삽입할 수도 있다. 한편, 인준노드(71)의 참여를 승인하지 않을 경우(S703-아니오), 관리노드(73)는 대체 그룹정보 메시지를 구성하여 인준노드(71)로 제공할 수 있다(S710). 이때, 대체 그룹정보 메시지는, 적어도 하나의 인준그룹의 정보, 예, 인준그룹의 관리노드(73')의 주소값, 관리노드(73')의 공개키 등을 포함할 수 있다. 이에 기초하여, 인준노드(71)는 대체 그룹정보 메시지에 포함된 정보에 기초하여, 대체 그룹의 관리노드(73')로의 접근을 수행하고, 대체 그룹의 관리노드(73')로 참여를 수행할 수 있다(S713). 대체 그룹의 관리노드(73')로의 참여는 전술한 S701 내지 S710 단계에 기초하여 수행될 수 있다.The management node 73 may restrict new nodes with poor performance from joining the validation group in order to guarantee the performance of the validation group. For example, the management node 73 checks the difference between the time when the verification message is transmitted and the time at which the verification response message is received, and when the difference between the checked times exceeds a predetermined threshold value, the verification node 71 ) may restrict membership in the approval group. As described above, when it is confirmed that the confirmed time difference exceeds a predetermined threshold value, the management node 73 may insert a reason for rejection of "Too late" into the NACK. On the other hand, if the participation of the validation node 71 is not approved (S703-No), the management node 73 may construct an alternative group information message and provide it to the validation node 71 (S710). In this case, the replacement group information message may include at least one confirmation group information, for example, an address value of the management node 73' of the authorization group, a public key of the management node 73', and the like. Based on this, the confirmation node 71 performs access to the management node 73' of the replacement group based on the information included in the replacement group information message, and participates as the management node 73' of the replacement group. It can be done (S713). Participation in the management node 73' of the replacement group may be performed based on steps S701 to S710 described above.

추가적으로, S711 단계에서, 관리노드(73)는 참여 요청 메시지에 수록된 가장 마지막 블록의 해쉬값을 확인하고, 관리노드(73)가 소유하고 있는 블록과, 참여 요청 메시지에 수록된 가장 마지막 블록 사이의 거리를 확인할 수 있다. 그리고, 확인된 블록 사이의 거리가 미리 정해진 임계값을 초과할 경우, 관리노드(73)는 해당 인준노드(71)가 최근 블록을 소유하고 있지 않는 것으로 결정할 수 있으며, 이를 인준노드(71)에 통지하기 위한 메시지(예, TooFar 메시지)를 전송할 수 있다. 이때, TooFar 메시지는 관리노드(73)가 소유하고 있는 블록과, 참여 요청 메시지에 수록된 가장 마지막 블록 사이의 거리를 나타내는 정보를 포함할 수 있다.Additionally, in step S711, the management node 73 checks the hash value of the last block included in the participation request message, and the distance between the block owned by the management node 73 and the last block included in the participation request message can be checked. And, when the distance between the checked blocks exceeds a predetermined threshold value, the management node 73 may determine that the corresponding confirmation node 71 does not own the latest block, which is sent to the confirmation node 71. A message for notification (eg, TooFar message) may be transmitted. In this case, the TooFar message may include information indicating the distance between the block owned by the management node 73 and the last block included in the participation request message.

이후, TooFar 메시지를 수신한 인준노드(71)는 임의의 다른 노드로부터 최근 블록 정보를 수신하여 블록 정보를 관리노드(73)와 동기화할 수 있다(S712). 예를 들어, 블록 정보를 저장하고 있는 노드들(인준노드(71, 71') 및 관리노드(73, 73'))는 API를 사용하여 자신이 가진 블록 정보를 다른 노드들에게 제공할 수 있다. 예를 들어, API로서 getNextBlock(string currentBlockId), getNextBlocks(string currentBlockId) 등이 사용될 수 있다. 여기서, getNextBlock(string currentBlockId)는 currentBlockId로 식별되는 블록의 다음 블록을 제공하도록 구성된 API일 수 있으며, getNextBlocks(string currentBlockId)는 currentBlockId로 식별되는 블록의 모든 블록을 제공하도록 구성된 API일 수 있다. Thereafter, the validation node 71 receiving the TooFar message may receive the latest block information from any other node and synchronize the block information with the management node 73 ( S712 ). For example, nodes that store block information (approval nodes 71 and 71' and management nodes 73 and 73') may provide their own block information to other nodes by using an API. . For example, getNextBlock(string currentBlockId), getNextBlocks(string currentBlockId), etc. may be used as APIs. Here, getNextBlock(string currentBlockId) may be an API configured to provide the next block of the block identified by currentBlockId, and getNextBlocks(string currentBlockId) may be an API configured to provide all blocks of the block identified by currentBlockId.

전술한 바에 기초하여, TooFar 메시지를 수신한 인준노드(71)는 전술한 API, 예컨대, getNextBlock(string currentBlockId), getNextBlocks(string currentBlockId) 등의 호출을 통해 다른 노드로부터 블록을 수신하고, 블록정보를 동기화할 수 있다.Based on the above, the validation node 71 that has received the TooFar message receives a block from another node through the aforementioned API, for example, getNextBlock(string currentBlockId), getNextBlocks(string currentBlockId), etc. calls, and receives block information. can be synchronized.

도 7b는 본 개시의 일 실시예에 따른 블록체인 시스템의 인준그룹의 재설정 동작을 나타내는 흐름도이다. 7B is a flowchart illustrating a resetting operation of an authorization group of a blockchain system according to an embodiment of the present disclosure.

우선, S721 단계에서, 관리노드(73)는 인준그룹의 재설정이 요구되는 상태를 확인할 수 있다. 예컨대, 인준그룹의 재설정이 요구되는 상태는, 인준그룹의 처리 속도가 미리 정해진 임계값을 초과하는 상태, 다른 인준그룹으로의 전입이 용이하지 않은 상태 등이 될 수 있다. First, in step S721, the management node 73 may check a state in which the resetting of the authorization group is required. For example, the state in which the resetting of the confirmation group is required may be a state in which the processing speed of the confirmation group exceeds a predetermined threshold value, a state in which transfer to another confirmation group is not easy, and the like.

S722 단계에서, 관리노드(73)는 운영자 노드(75)로 인준그룹의 생성을 요청할 수 있다. 이에 대응하여, 운영자 노드(75)는 관리노드(73')를 생성하고, 생성된 관리노드(73')의 정보를 블록체인 시스템 내에 존재하는 관리노드(73)에 전송할 수 있다(S723, S724). In step S722 , the management node 73 may request the creation of an authorization group from the operator node 75 . Correspondingly, the operator node 75 may create the management node 73', and transmit the information of the created management node 73' to the management node 73 existing in the block chain system (S723, S724). ).

S725 단계에서, 관리노드(73)는 인준그룹 내에 포함된 적어도 하나의 인준노드(71)로 전입 요청 메시지를 전송할 수 있다. 여기서, 전입 요청 메시지는, 전입 대상 인준노드의 주소정보(예, IP 주소)와 공개키, 그리고, 전입될 인준그룹의 관리노드(73')의 주소정보(예, IP 주소)와 공개키를 포함할 수 있다. In step S725 , the management node 73 may transmit a transfer request message to at least one validation node 71 included in the validation group. Here, the transfer request message includes address information (eg, IP address) and public key of the confirmation node to be transferred, and address information (eg, IP address) and public key of the management node 73' of the confirmation group to be transferred. may include

S726 단계에서, 전입 요청 메시지를 수신한 인준노드(71)는 새로운 인준그룹으로 전입을 수행할지, 또는 기존에 존재하던 인준그룹에 잔류할지 여부를 결정할 수 있다.In step S726, the confirmation node 71 receiving the transfer request message may determine whether to transfer to a new confirmation group or to remain in an existing confirmation group.

새로운 인준그룹으로 전입을 수행할 경우, 인준노드(71)는 전입 요청 메시지를 새로운 인준그룹의 관리노드(73')로 전달한다(S726). When transferring to a new authorization group, the authorization node 71 transmits a transfer request message to the management node 73' of the new authorization group (S726).

S727 단계에서, 관리노드(73')는 인준노드(71)로 ACK 메시지를 전송하여, 인준노드(71)의 전입을 완료한다.In step S727 , the management node 73 ′ transmits an ACK message to the verification node 71 to complete the transfer of the verification node 71 .

도 7c는 본 개시의 일 실시예에 따른 블록체인 시스템의 인준노드의 전입 동작을 나타내는 흐름도이다. 7C is a flowchart illustrating a transfer operation of an authorization node of a blockchain system according to an embodiment of the present disclosure.

우선, S731 단계에서, 관리노드(73)는 인준노드의 전입이 요구되는 상태를 확인할 수 있다. 예컨대, 인준노드의 전입이 요구되는 상태는, 인준그룹의 처리 속도가 미리 정해진 임계값을 초과하는 상태 등이 될 수 있다. First, in step S731, the management node 73 can check the state in which the transfer of the confirmation node is required. For example, the state in which the transfer of the confirmation node is required may be a state in which the processing speed of the confirmation group exceeds a predetermined threshold value, or the like.

S732 단계에서, 관리노드(73)는 인준그룹 내에 포함된 적어도 하나의 인준노드(71)로 전입 요청 메시지를 전송할 수 있다. 여기서, 전입 요청 메시지는, 전입 대상 인준노드의 주소정보(예, IP 주소)와 공개키, 그리고, 전입될 인준그룹의 관리노드의 주소정보(예, IP 주소)와 공개키를 포함할 수 있다. In step S732 , the management node 73 may transmit a transfer request message to at least one validation node 71 included in the validation group. Here, the transfer request message may include address information (eg, IP address) and public key of the transfer target confirmation node, and address information (eg, IP address) and public key of the management node of the confirmation group to be transferred. .

S733 단계에서, 전입 요청 메시지를 수신한 인준노드(71)는 다른 인준그룹으로 전입을 수행할지, 또는 기존에 존재하던 인준그룹에 잔류할지 여부를 결정할 수 있다.In step S733 , the confirmation node 71 receiving the transfer request message may determine whether to transfer to another confirmation group or to remain in the existing confirmation group.

다른 인준그룹으로 전입을 수행할 경우, 인준노드(71)는 전입 요청 메시지를 다른 인준그룹의 관리노드(73')로 전달한다(S734). When transferring to another authorization group, the authorization node 71 transmits a transfer request message to the management node 73' of the other authorization group (S734).

S735 단계에서, 관리노드(73')는 인준노드(71)로 ACK 메시지를 전송하여, 인준노드(71)의 전입을 완료한다.In step S735 , the management node 73 ′ transmits an ACK message to the verification node 71 to complete the transfer of the verification node 71 .

추가적으로, 관리노드(73')는 인준그룹에 미리 포함된 적어도 하나의 인준노드(71', 71")로 인준노드(71)의 인준그룹 참여를 나타내는 신규 노드 알림 메시지를 전송할 수 있다(S736, S737).Additionally, the management node 73' may transmit a new node notification message indicating participation in the validation group of the validation node 71 to at least one validation node 71', 71" included in the validation group in advance (S736, S737).

도 7d는 본 개시의 일 실시예에 따른 블록체인 시스템의 인준노드의 합병 동작을 나타내는 흐름도이다. 7D is a flowchart illustrating a merging operation of an approval node of a blockchain system according to an embodiment of the present disclosure.

우선, S741 단계에서, 관리노드(73)는 인준노드의 합병이 요구되는 상태를 확인할 수 있다. 예컨대, 인준노드의 합병이 요구되는 상태는, 복수의 인준그룹의 처리 속도가 미리 정해진 임계값을 미만을 나타내는 상태, 인준그룹에 포함된 인준노드가 미리 정해진 임계값 미만인 상태 등이 될 수 있다. First, in step S741, the management node 73 may check the state in which the merger of the approved node is required. For example, the state in which the merging of the validation nodes is required may be a state in which the processing speed of a plurality of validation groups is less than a predetermined threshold value, a state in which the validation nodes included in the validation group are less than a predetermined threshold value, and the like.

S742 단계에서, 관리노드(73)는 합병이 필요한 인준그룹의 인준노드(71)로 합병 요청 메시지를 전송할 수 있다. 여기서, 합병 요청 메시지는, 합병 대상 인준노드의 주소정보(예, IP 주소)와 공개키, 그리고, 합병될 인준그룹의 관리노드의 주소정보(예, IP 주소)와 공개키를 포함할 수 있다. In step S742, the management node 73 may transmit a merger request message to the authorization node 71 of the authorization group requiring the merger. Here, the merger request message may include address information (eg, IP address) and public key of the confirmation node to be merged, and address information (eg, IP address) and public key of the management node of the confirmation group to be merged. .

S743 단계에서, 합병 요청 메시지를 수신한 인준노드(71)는 다른 인준그룹으로 합병을 수행할지, 또는 기존에 존재하던 인준그룹에 잔류할지 여부를 결정할 수 있다.In step S743, the validation node 71 receiving the merger request message may determine whether to perform the merger into another validation group or to remain in the existing validation group.

다른 인준그룹으로 합병을 수행할 경우, 인준노드(71)는 합병 요청 메시지를 다른 인준그룹의 관리노드(73")로 전달한다(S744). When merging into another validation group, the validation node 71 transmits a merger request message to the management node 73" of the other validation group (S744).

S745 단계에서, 관리노드(73")는 인준노드(71)로 ACK 메시지를 전송하여, 인준노드(71)의 합병을 수행한다. 그리고, 관리노드(73")는 인준그룹에 미리 포함된 적어도 하나의 인준노드(71', 71")로 인준노드(71)의 인준그룹 참여를 나타내는 신규 노드 알림 메시지를 전송할 수 있다(S746, S747).In step S745, the management node 73" transmits an ACK message to the verification node 71, and performs the merger of the verification node 71. And, the management node 73" is at least included in the verification group in advance. A new node notification message indicating participation in the validation group of the validation node 71 may be transmitted to one validation node 71', 71" (S746, S747).

추가적으로, S748 단계에서, 관리노드(73")는 운영자 노드(75)로 인준그룹의 합병 완료를 통지할 수 있다. 이에 대응하여, 운영자 노드(75)는 블록체인 시스템 내에서 관리노드(73)를 삭제하고, 관리노드(73)의 삭제를 블록체인 시스템 내에 존재하는 다른 관리노드(77)로 전송할 수 있다(S749, S750). Additionally, in step S748, the management node 73 ″ may notify the operator node 75 of the completion of the merger of the validation group. In response, the operator node 75 sets the management node 73 in the blockchain system. can be deleted, and the deletion of the management node 73 can be transmitted to other management nodes 77 existing in the block chain system (S749, S750).

도 8은 본 개시의 일 실시예에 따른 블록체인 시스템 및 방법을 실행하는 컴퓨팅 시스템을 예시하는 블록도이다. 8 is a block diagram illustrating a computing system executing a blockchain system and method according to an embodiment of the present disclosure.

도 8을 참조하면, 컴퓨팅 시스템(1000)은 버스(1200)를 통해 연결되는 적어도 하나의 프로세서(1100), 메모리(1300), 사용자 인터페이스 입력 장치(1400), 사용자 인터페이스 출력 장치(1500), 스토리지(1600), 및 네트워크 인터페이스(1700)를 포함할 수 있다.Referring to FIG. 8 , the computing system 1000 includes at least one processor 1100 , a memory 1300 , a user interface input device 1400 , a user interface output device 1500 , and storage connected through a bus 1200 . 1600 , and a network interface 1700 .

프로세서(1100)는 중앙 처리 장치(CPU) 또는 메모리(1300) 및/또는 스토리지(1600)에 저장된 명령어들에 대한 처리를 실행하는 반도체 장치일 수 있다. 메모리(1300) 및 스토리지(1600)는 다양한 종류의 휘발성 또는 불휘발성 저장 매체를 포함할 수 있다. 예를 들어, 메모리(1300)는 ROM(Read Only Memory) 및 RAM(Random Access Memory)을 포함할 수 있다. The processor 1100 may be a central processing unit (CPU) or a semiconductor device that processes instructions stored in the memory 1300 and/or the storage 1600 . The memory 1300 and the storage 1600 may include various types of volatile or nonvolatile storage media. For example, the memory 1300 may include read only memory (ROM) and random access memory (RAM).

따라서, 본 명세서에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서(1100)에 의해 실행되는 하드웨어, 소프트웨어 모듈, 또는 그 2 개의 결합으로 직접 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM과 같은 저장 매체(즉, 메모리(1300) 및/또는 스토리지(1600))에 상주할 수도 있다. 예시적인 저장 매체는 프로세서(1100)에 커플링되며, 그 프로세서(1100)는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서(1100)와 일체형일 수도 있다. 프로세서 및 저장 매체는 주문형 집적회로(ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다.Accordingly, the steps of a method or algorithm described in connection with the embodiments disclosed herein may be directly implemented in hardware, a software module executed by the processor 1100 , or a combination of the two. A software module resides in a storage medium (ie, memory 1300 and/or storage 1600 ) such as RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM. You may. An exemplary storage medium is coupled to the processor 1100 , the processor 1100 capable of reading information from, and writing information to, the storage medium. Alternatively, the storage medium may be integrated with the processor 1100 . The processor and storage medium may reside within an application specific integrated circuit (ASIC). The ASIC may reside within the user terminal. Alternatively, the processor and storage medium may reside as separate components within the user terminal.

본 개시의 예시적인 방법들은 설명의 명확성을 위해서 동작의 시리즈로 표현되어 있지만, 이는 단계가 수행되는 순서를 제한하기 위한 것은 아니며, 필요한 경우에는 각각의 단계가 동시에 또는 상이한 순서로 수행될 수도 있다. 본 개시에 따른 방법을 구현하기 위해서, 예시하는 단계에 추가적으로 다른 단계를 포함하거나, 일부의 단계를 제외하고 나머지 단계를 포함하거나, 또는 일부의 단계를 제외하고 추가적인 다른 단계를 포함할 수도 있다.Example methods of the present disclosure are expressed as a series of operations for clarity of description, but this is not intended to limit the order in which the steps are performed, and if necessary, each step may be performed simultaneously or in a different order. In order to implement the method according to the present disclosure, other steps may be included in addition to the illustrated steps, other steps may be excluded from some steps, or additional other steps may be included except some steps.

본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.Various embodiments of the present disclosure do not list all possible combinations, but are intended to describe representative aspects of the present disclosure, and matters described in various embodiments may be applied independently or in combination of two or more.

또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 그들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 범용 프로세서(general processor), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다. In addition, various embodiments of the present disclosure may be implemented by hardware, firmware, software, or a combination thereof. For implementation by hardware, one or more Application Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Digital Signal Processing Devices (DSPDs), Programmable Logic Devices (PLDs), Field Programmable Gate Arrays (FPGAs), general purpose It may be implemented by a processor (general processor), a controller, a microcontroller, a microprocessor, and the like.

본 개시의 범위는 다양한 실시 예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다. The scope of the present disclosure includes software or machine-executable instructions (eg, operating system, application, firmware, program, etc.) that cause an operation according to the method of various embodiments to be executed on a device or computer, and such software or and non-transitory computer-readable media in which instructions and the like are stored and executable on a device or computer.

Claims (20)

블록체인 시스템에 있어서,
적어도 하나의 인준노드와,
상기 적어도 하나의 인준노드를 포함하여 인준그룹을 구성하며, 상기 인준그룹에서 발생된 트랜잭션을 조합하여 인준블록을 각각 구성하는 적어도 하나의 관리노드와,
상기 적어도 하나의 관리노드의 구성을 제어하는 운영자 노드를 포함하고,
상기 적어도 하나의 관리노드는,
상기 각각의 인준블록을 조합하여 블록체인을 구성하되, 상기 인준블록의 생성 순서에 기초하여 부모 블록을 재설정하여 상기 블록체인을 구성 및 배포하는 것을 특징으로 하는 블록체인 시스템.
In the blockchain system,
at least one validation node;
at least one management node comprising the at least one validation node to constitute a validation group, and each of which constitutes a validation block by combining the transactions generated in the validation group;
Comprising an operator node that controls the configuration of the at least one management node,
The at least one management node,
A block chain system, characterized in that the block chain is constructed by combining each of the confirmation blocks, and the block chain is configured and distributed by resetting the parent block based on the generation order of the confirmation block.
제1항에 있어서,
상기 적어도 하나의 관리노드는,
서로 다른 상기 인준블록에 포함된 트랜잭션의 충돌 여부를 확인하고,
상기 트랜잭션의 충돌 여부를 반영한 상기 인준블록을 구성하는 것을 특징으로 하는 블록체인 시스템.
According to claim 1,
The at least one management node,
Check whether there is a conflict of transactions included in the different confirmation blocks,
A block chain system, characterized in that configuring the confirmation block reflecting the conflict of the transaction.
제1항에 있어서,
상기 인준블록은,
상기 트랜잭션에 대한 리스트를 포함하는 블록 바디와,
부모블록의 해쉬값, 상기 인준블록에 포함된 트랜잭션에 대한 머클트리(merkle tree)의 루트 값, 상기 인준블록이 생성된 시간, 및 상기 인준블록에 대응되는 인준그룹의 식별자 중, 적어도 하나를 구비하는 블록 헤더를 포함하는 것을 특징으로 하는 블록체인 시스템.
According to claim 1,
The approval block is
a block body including a list of the transactions;
At least one of the hash value of the parent block, the root value of the merkle tree for the transaction included in the confirmation block, the time the confirmation block was created, and the identifier of the confirmation group corresponding to the confirmation block A block chain system, characterized in that it includes a block header.
제3항에 있어서,
상기 적어도 하나의 관리노드는,
상기 인준블록에 설정된 부모블록과, 상기 인준블록이 생성된 시간을 고려하여, 상기 부모블록을 재설정하는 것을 특징으로 하는 블록체인 시스템.
4. The method of claim 3,
The at least one management node,
A block chain system, characterized in that the parent block is reset in consideration of the parent block set in the confirmation block and the time when the confirmation block is generated.
제4항에 있어서,
상기 적어도 하나의 관리노드는,
상기 재설정한 부모블록의 해쉬값과, 상기 인준블록에 포함된 블록 헤더의 해쉬값을 포함하는 확장 헤더를 구성하고,
구성된 상기 확장헤더를 상기 인준블록에 추가하여 확정블록을 구성하는 것을 특징으로 하는 블록체인 시스템.
5. The method of claim 4,
The at least one management node,
constructing an extended header including the reset hash value of the parent block and the hash value of the block header included in the confirmed block;
A block chain system, characterized in that by adding the configured extension header to the confirmation block, a confirmation block is formed.
제5항에 있어서,
상기 적어도 하나의 관리노드는,
서로 다른 상기 인준블록에 포함된 트랜잭션의 충돌 여부를 고려하여, 상기 트랜잭션의 폐기를 결정하는 것을 특징으로 하는 블록체인 시스템.
6. The method of claim 5,
The at least one management node,
A block chain system, characterized in that the abolition of the transaction is decided in consideration of whether the transactions included in the different confirmation blocks collide.
제6항에 있어서,
상기 적어도 하나의 관리노드는,
상기 폐기된 트랜잭션을 지시하는 폐기 트랜잭션 리스트를 상기 확장 헤더에 삽입하는 것을 특징으로 하는 블록체인 시스템.
7. The method of claim 6,
The at least one management node,
A block chain system, characterized in that inserting a discard transaction list indicating the discarded transaction into the extension header.
제1항에 있어서,
제1인준그룹에 포함된 제1관리노드는,
제1노드로부터 상기 제1인준그룹에 참여를 요청하는 참여 요청 메시지를 수신하고,
상기 제1노드의 제1인준그룹의 참여 여부를 결정하고,
상기 결정된 결과를 상기 제1노드로 통지하는 것을 특징으로 하는 블록체인 시스템.
According to claim 1,
The first management node included in the first approval group is,
Receiving a participation request message requesting participation in the first confirmation group from the first node,
determining whether to participate in the first confirmation group of the first node,
A block chain system characterized in that the determined result is notified to the first node.
제8항에 있어서,
상기 제1관리노드는,
상기 제1인준그룹을 구성하는 노드의 수와, 상기 인준블록의 합의 시간 중, 적어도 하나를 고려하여 상기 제1노드의 제1인준그룹 참여 여부를 결정하는 것을 특징으로 하는 블록체인 시스템.
9. The method of claim 8,
The first management node,
A block chain system, characterized in that it is determined whether the first node participates in the first validation group by considering at least one of the number of nodes constituting the first validation group and the consensus time of the validation block.
제8항에 있어서,
상기 제1관리노드는,
상기 제1노드의 제1인준그룹 참여를 나타내는 신규 노드 알림 메시지를, 상기 제1인준그룹에 포함된 상기 적어도 하나의 인준노드에 전송하는 것을 특징으로 하는 블록체인 시스템.
9. The method of claim 8,
The first management node,
A block chain system, characterized in that it transmits a new node notification message indicating the first node's participation in the first validation group to the at least one validation node included in the first validation group.
제8항에 있어서,
상기 제1관리노드는,
상기 제1인준그룹과 다른 적어도 하나의 제2인준그룹을 확인하고, 상기 적어도 하나의 제2인준그룹에 포함된 적어도 하나의 제2관리노드를 지시하는 정보를 상기 제1노드에 제공하는 것을 특징으로 하는 블록체인 시스템.
9. The method of claim 8,
The first management node,
identifying at least one second validation group different from the first validation group, and providing information indicating at least one second management node included in the at least one second validation group to the first node A blockchain system with
제8항에 있어서,
상기 참여 요청 메시지는,
상기 제1노드가 구비한 인준블록 중 마지막 블록의 해쉬값을 포함하는 것을 특징으로 하는 블록체인 시스템.
9. The method of claim 8,
The participation request message is
A block chain system comprising the hash value of the last block among the confirmation blocks provided by the first node.
제12항에 있어서,
상기 제1관리노드는,
상기 제1노드가 구비한 마지막 블록과, 관리그룹 단위에 구비된 마지막 인준블록 사이의 거리에 기초하여, 상기 제1노드의 제1인준그룹의 참여 여부를 결정하는 것을 특징으로 하는 블록체인 시스템.
13. The method of claim 12,
The first management node,
Based on the distance between the last block provided by the first node and the last confirmation block provided in the management group unit, the block chain system characterized in that it is determined whether the first node participates in the first confirmation group.
제8항에 있어서,
상기 제1관리노드는,
상기 제1노드로, 상기 제1관리노드가 발행한 nonce 값, 해쉬함수의 난이도를 나타내는 난이도 정보, 및 상기 해쉬함수의 수행횟수를 나타내는 카운터 정보 중 적어도 하나를 포함하는 검증 메시지를 전송하고,
상기 제1노드로부터, 상기 해쉬함수의 결과값을 포함하는 검증 응답 메시지를 수신하고,
상기 해쉬함수의 결과값을 고려하여, 상기 제1노드의 제1인준그룹의 참여 여부를 결정하는 것을 특징으로 하는 블록체인 시스템.
9. The method of claim 8,
The first management node,
Transmitting, to the first node, a verification message including at least one of a nonce value issued by the first management node, difficulty information indicating the difficulty of the hash function, and counter information indicating the number of times the hash function is performed,
Receiving a verification response message including the result value of the hash function from the first node,
A block chain system, characterized in that it is determined whether or not to participate in the first validation group of the first node in consideration of the result value of the hash function.
제8항에 있어서,
상기 제1관리노드는,
상기 제1노드로, 상기 제1인준그룹의 참여 거절을 지시하는 NACK 메시지를 전송하되,
상기 NACK 메시지는 거절이유를 포함하는 것을 특징으로 하는 블록체인 시스템.
9. The method of claim 8,
The first management node,
Transmitting, to the first node, a NACK message indicating refusal to participate in the first confirmation group,
The NACK message is a block chain system, characterized in that it includes a reason for rejection.
제15항에 있어서,
상기 거절이유는,
상기 제1노드의 주소 및 공개키에 대응되는 노드가 이미 등록되어 있음을 지시하는 정보, 난이도 정보가 일치하지 않음을 나타내는 정보, 제1관리노드가 제시한 nonce 값이 사용되지 않았음을 나타내는 정보, 및 해쉬함수의 결과값에 오류가 존재함을 나타내는 정보 중, 적어도 하나를 포함하는 것을 특징으로 하는 블록체인 시스템.
16. The method of claim 15,
The reason for the refusal is
Information indicating that the node corresponding to the address and public key of the first node is already registered, information indicating that the difficulty information does not match, and information indicating that the nonce value presented by the first management node is not used , and a block chain system comprising at least one of information indicating that an error exists in the result value of the hash function.
제1항에 있어서,
제1인준그룹에 포함된 제1관리노드는,
상기 블록체인 시스템의 상태를 모니터링하고,
상기 제1인준그룹으로부터 제2인준그룹으로 전입을 요청하는 전입 요청 메시지를, 상기 제1인준그룹에 포함된 제1인준노드로, 전송하되,
상기 전입 요청 메시지는 상기 제1인준노드의 주소 및 공개키, 상기 제2인준그룹에 포함된 제2관리노드의 주소 및 공개키, 및 상기 제1관리노드의 서명값을 포함하는 것을 특징으로 하는 블록체인 시스템.
According to claim 1,
The first management node included in the first approval group is,
monitoring the status of the blockchain system,
A transfer request message requesting a transfer from the first confirmation group to the second confirmation group is transmitted to the first confirmation node included in the first confirmation group,
The transfer request message is characterized in that it includes the address and public key of the first validation node, the address and public key of the second management node included in the second validation group, and the signature value of the first management node. blockchain system.
제17항에 있어서,
상기 제1인준노드는,
상기 제2인준그룹으로의 전입 여부를 결정하고,
상기 제2관리노드로, 상기 전입 요청 메시지를 전달하는 것을 특징으로 하는 블록체인 시스템.
18. The method of claim 17,
The first validation node is
Deciding whether to transfer to the second approval group,
A block chain system characterized in that the transfer request message is delivered to the second management node.
제17항에 있어서,
상기 제1인준노드는,
상기 블록체인 시스템의 상태를 고려하여, 상기 제2관리노드의 생성을 수행하는 것을 특징으로 하는 블록체인 시스템.
18. The method of claim 17,
The first validation node is
A block chain system, characterized in that the generation of the second management node is performed in consideration of the state of the block chain system.
블록체인 시스템의 운영 방법에 있어서,
운영자 노드에 의해 제어되는 적어도 하나의 관리노드가, 상기 관리노드와 적어도 하나의 인준노드를 포함하는 적어도 하나의 인준그룹을 각각 구성하는 과정과,
상기 인준그룹에서 발생된 트랜잭션을 조합하여 인준블록을 각각 구성하는 과정과,
다른 관리노드에서 구성된 상기 인준블록을 조합하여 블록체인을 구성하되, 상기 인준블록의 생성 순서에 기초하여 부모 노드를 재설정하여 상기 블록체인을 구성 및 배포하는 과정을 포함하는 것을 특징으로 하는 블록체인 시스템의 운영방법.
In the operation method of the block chain system,
A process in which at least one management node controlled by an operator node configures at least one authorization group including the management node and at least one authorization node, respectively;
The process of composing each of the confirmation blocks by combining the transactions generated in the confirmation group;
A block chain system comprising the steps of composing a block chain by combining the confirmation blocks configured in other management nodes, and configuring and distributing the block chain by resetting the parent node based on the generation order of the confirmation blocks. operation method.
KR1020190132521A 2018-10-29 2019-10-23 Blockchain system and method for managing the same KR102415127B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/667,520 US11409734B2 (en) 2018-10-29 2019-10-29 Blockchain system and operation method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180130116 2018-10-29
KR20180130116 2018-10-29

Publications (2)

Publication Number Publication Date
KR20200049575A KR20200049575A (en) 2020-05-08
KR102415127B1 true KR102415127B1 (en) 2022-07-01

Family

ID=70677175

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190132521A KR102415127B1 (en) 2018-10-29 2019-10-23 Blockchain system and method for managing the same

Country Status (1)

Country Link
KR (1) KR102415127B1 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017066715A1 (en) * 2015-10-14 2017-04-20 Cambridge Blockchain, LLC Systems and methods for managing digital identities

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
L. Luu et al., "A Secure Sharding Protocol for Open Blockchains", In Proc. ACM SIGSAC Conf. Comput. Commun. Security, Vienna, Austria, pp.17-30(2016. 10.)
임종철 외 3명, "블록체인과 합의 알고리즘", 전자통신동향분석, 33(1), ETRI(2018.02.)

Also Published As

Publication number Publication date
KR20200049575A (en) 2020-05-08

Similar Documents

Publication Publication Date Title
US10693957B2 (en) System and method for adding node in blockchain network
US10244053B2 (en) Multicast collaborative erasure encoding and distributed parity protection
KR102170345B1 (en) System and method for terminating view change protocol
US11409734B2 (en) Blockchain system and operation method thereof
JP7184959B2 (en) Method and apparatus for distributed database in network
TWI662435B (en) Distributed system and message processing method
Civit et al. Polygraph: Accountable byzantine agreement
KR102170347B1 (en) System and method for terminating view change protocol
CN110754070B (en) Fast propagation of recent transactions over blockchain networks
US20200117657A1 (en) System and method for deleting node in blockchain network
US20210026745A1 (en) Methods, systems, and computer readable media for providing byzantine fault tolerance
US20210256016A1 (en) Blockchain system and method
KR20190097225A (en) Method and apparatus for distributed database enabling deletion of events
Ren et al. Practical synchronous byzantine consensus
CN114048517B (en) Dual channel consensus system and method for blockchains, computer readable storage medium
US11625266B2 (en) Data processing device, system and method
JPWO2019142884A1 (en) Block verification device, block verification method, and program
Jalalzai et al. The Hermes BFT for blockchains
KR102415127B1 (en) Blockchain system and method for managing the same
Emerson Scalable coordination of distributed in-memory transactions

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant