KR102342752B1 - Apparatus and method for consensus based on blockchain - Google Patents

Apparatus and method for consensus based on blockchain Download PDF

Info

Publication number
KR102342752B1
KR102342752B1 KR1020190072795A KR20190072795A KR102342752B1 KR 102342752 B1 KR102342752 B1 KR 102342752B1 KR 1020190072795 A KR1020190072795 A KR 1020190072795A KR 20190072795 A KR20190072795 A KR 20190072795A KR 102342752 B1 KR102342752 B1 KR 102342752B1
Authority
KR
South Korea
Prior art keywords
block
new
new block
consensus
blockchain
Prior art date
Application number
KR1020190072795A
Other languages
Korean (ko)
Other versions
KR20200144755A (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 KR1020190072795A priority Critical patent/KR102342752B1/en
Publication of KR20200144755A publication Critical patent/KR20200144755A/en
Application granted granted Critical
Publication of KR102342752B1 publication Critical patent/KR102342752B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting

Abstract

일 실시예에 따른 블록체인 기반 합의 방법은, 블록체인 네트워크를 구성하는 어느 하나의 노드에 의해 수행되는 블록체인 기반 합의 방법에 있어서, 현재 에폭(Epoch)에서 클라이언트로부터 입력된 제 1 신규 트랜잭션(Transaction)의 유효성을 판단하는 단계; 상기 제 1 신규 트랜젝션이 유효하면, 상기 현재 에폭의 이전 에폭 내 적어도 하나의 제 1 기초 블록(Base Block)에 대하여 상기 제 1 신규 트랜잭션을 포함하는 제 1 신규 블록을 생성하는 단계; 상기 제 1 신규 블록을 포함하는 제 1 합의 메시지를 상기 블록체인 네트워크의 나머지 노드로 전파하는 단계; 및 상기 현재 에폭 이후의 에폭에서 상기 제 1 합의 메시지를 기초로 상기 나머지 노드에서 합의가 이루어진 경우, 상기 제 1 신규 블록에 제 1 증명서(Certificate)를 부가하는 단계를 포함하되, 상기 제 1 신규 블록의 생성과 상기 제 1 증명서를 부가하는 단계는 상호 독립적으로 수행된다.The blockchain-based consensus method according to an embodiment, in a blockchain-based consensus method performed by any one node constituting a blockchain network, includes a first new transaction inputted from a client in a current epoch (Transaction). ) to determine the validity of; if the first new transaction is valid, generating a first new block including the first new transaction for at least one first base block in a previous epoch of the current epoch; propagating a first consensus message including the first new block to the remaining nodes of the blockchain network; and adding a first certificate to the first new block when consensus is reached at the remaining nodes based on the first consensus message in epochs after the current epoch, wherein the first new block The steps of generating and adding the first certificate are performed independently of each other.

Description

블록체인 기반 합의 장치 및 방법{APPARATUS AND METHOD FOR CONSENSUS BASED ON BLOCKCHAIN} Blockchain-based consensus device and method {APPARATUS AND METHOD FOR CONSENSUS BASED ON BLOCKCHAIN}

본 발명은 블록체인 기술에 기반하여 블록체인 네트워크를 구성하는 복수의 노드 간 합의를 수행하는 블록체인 기반 합의 장치 및 방법에 관한 것이다.The present invention relates to a block-chain-based consensus apparatus and method for performing consensus among a plurality of nodes constituting a block-chain network based on block-chain technology.

블록체인 시스템은 수많은 노드가 P2P 네트워크로 연결되어 사용자의 트랜잭션(Transaction)을 처리하는 시스템으로서, 트랜잭션에 대한 기록을 순차적으로 저장하는 일종의 분산 원장 시스템이라고 볼 수 있다. 이러한 분산 원장에 한 번 기록된 내용은 변경이 거의 불가능하다는 특징을 가진다.A blockchain system is a system in which numerous nodes are connected through a P2P network to process user transactions, and can be viewed as a kind of distributed ledger system that sequentially stores transaction records. Once recorded in such a distributed ledger, it is almost impossible to change it.

블록체인 시스템에서는 모두가 동일한 트랜잭션에 대한 처리 기록을 가질 필요가 있는데, 그것을 가능하게 하는 것이 합의 알고리즘(Consensus Algorithm)이다. 최초의 블록체인 기술이 적용된 시스템인 비트코인에서는 합의 알고리즘으로서 작업 증명(Proof of Work, PoW)와 가장 긴 체인(Longest Chine)을 선택하는 방법이 이용되고 있다.In a blockchain system, everyone needs to have a record of processing for the same transaction, and it is the Consensus Algorithm that makes this possible. In Bitcoin, the system to which the first blockchain technology was applied, the method of selecting Proof of Work (PoW) and the longest chain as a consensus algorithm is used.

비트코인의 합의 알고리즘은 처리 속도가 최대 7 TPS(Transaction per Second)라는 기술적 한계를 가진다. 또한, 블록체인 시스템을 유지하는데 있어 작업 증명의 과정에서 많은 에너지가 낭비될 수 있다.Bitcoin's consensus algorithm has a technical limit of processing speed of up to 7 TPS (Transaction per Second). Also, in maintaining the blockchain system, a lot of energy can be wasted in the process of proof-of-work.

그 결과, 비트코인 이후 등장한 블록체인 시스템은 시스템 자체의 기술적 특성에 맞도록 성능 및/또는 에너지의 효율을 높이기 위한 합의 알고리즘을 도입하는 추세이다. As a result, the blockchain system that emerged after Bitcoin tends to introduce a consensus algorithm to increase performance and/or energy efficiency to match the technical characteristics of the system itself.

한국공개특허공보, 제 10-2017-0137388호 (2017.12.13. 공개)Korean Patent Laid-Open Publication No. 10-2017-0137388 (published on December 13, 2017)

본 발명이 해결하고자 하는 과제는, 블록의 생성과 독립적으로 블록에 대한 합의가 수행되는 블록체인 기반 합의 장치 및 방법을 제공하는 것이다.The problem to be solved by the present invention is to provide a block chain-based consensus apparatus and method in which block consensus is performed independently of block generation.

다만, 본 발명이 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.However, the problems to be solved by the present invention are not limited to those mentioned above, and other problems to be solved that are not mentioned can be clearly understood by those of ordinary skill in the art to which the present invention belongs from the following description. will be.

일 실시예에 따른 블록체인 기반 합의 방법은, 블록체인 네트워크를 구성하는 어느 하나의 노드에 의해 수행되는 블록체인 기반 합의 방법에 있어서, 현재 에폭(Epoch)에서 클라이언트로부터 입력된 제 1 신규 트랜잭션(Transaction)의 유효성을 판단하는 단계; 상기 제 1 신규 트랜젝션이 유효하면, 상기 현재 에폭의 이전 에폭 내 적어도 하나의 제 1 기초 블록(Base Block)에 대하여 상기 제 1 신규 트랜잭션을 포함하는 제 1 신규 블록을 생성하는 단계; 상기 제 1 신규 블록을 포함하는 제 1 합의 메시지를 상기 블록체인 네트워크의 나머지 노드로 전파하는 단계; 및 상기 현재 에폭 이후의 에폭에서 상기 제 1 합의 메시지를 기초로 상기 나머지 노드에서 합의가 이루어진 경우, 상기 제 1 신규 블록에 제 1 증명서(Certificate)를 부가하는 단계를 포함하되, 상기 제 1 신규 블록의 생성과 상기 제 1 증명서를 부가하는 단계는 상호 독립적으로 수행된다.The blockchain-based consensus method according to an embodiment, in a blockchain-based consensus method performed by any one node constituting a blockchain network, includes a first new transaction input from a client in a current epoch. ) to determine the validity of; if the first new transaction is valid, generating a first new block including the first new transaction for at least one first base block in a previous epoch of the current epoch; propagating a first consensus message including the first new block to the remaining nodes of the blockchain network; and adding a first certificate to the first new block when consensus is reached at the remaining nodes based on the first consensus message in epochs after the current epoch, wherein the first new block The steps of generating and adding the first certificate are performed independently of each other.

또한, 상기 제 1 신규 블록에 증명서를 부가하는 단계는, 상기 제 1 신규 블록의 생성과 병렬적으로 수행되는 상기 나머지 노드 간 합의 여부를 확인하는 단계; 및 상기 현재 에폭 이후의 에폭에서 상기 나머지 노드 간 합의가 확인되면, 상기 제 1 신규 블록에 상기 제 1 증명서를 부가하는 단계를 포함할 수 있다.In addition, the step of adding the certificate to the first new block may include: checking whether the remaining nodes agree or not, which is performed in parallel with the generation of the first new block; and adding the first certificate to the first new block when agreement between the remaining nodes is confirmed in epochs after the current epoch.

또한, 상기 제 1 신규 트랜잭션의 유효성을 판단하는 단계는, 상기 현재 에폭 이전의 에폭 내 적어도 하나의 블록과의 충돌(Conflict) 발생 여부를 기초로 상기 제 1 신규 트랜잭션의 유효성을 판단할 수 있다.In addition, the determining of the validity of the first new transaction may include determining the validity of the first new transaction based on whether a conflict with at least one block in an epoch before the current epoch occurs.

또한, 상기 제 1 신규 블록을 생성하는 단계는, 상기 제 1 신규 트랜잭션과 충돌이 발생하지 않는 블록을 상기 제 1 기초 블록으로 결정하는 단계; 및 상기 제 1 기초 블록에 대하여 상기 제 1 신규 블록을 생성하는 단계를 포함할 수 있다.In addition, the generating of the first new block may include: determining a block that does not conflict with the first new transaction as the first basic block; and generating the first new block with respect to the first basic block.

또한, 상기 합의 메시지는, 상기 제 1 기초 블록, 상기 현재 에폭, 및 상기 제 1 신규 블록을 포함할 수 있다.Also, the consensus message may include the first basic block, the current epoch, and the first new block.

또한, 상기 블록체인 네트워크를 구성하는 나머지 하나의 노드에 의해 상기 현재 에폭에서 생성된 제 2 신규 블록에 대하여 합의하는 단계; 및 상기 합의가 이루어진 경우, 상기 제 2 신규 블록에 제 2 증명서를 부가하는 단계를 포함할 수 있다. In addition, agreeing on a second new block generated in the current epoch by the other node constituting the block chain network; and adding a second certificate to the second new block when the agreement is reached.

또한, 상기 제 2 신규 블록에 대하여 합의하는 단계는, 상기 블록체인 네트워크를 구성하는 나머지 노드 중 상기 제 2 신규 블록을 생성한 노드로부터 상기 제 2 신규 블록, 상기 제 2 신규 블록에 대한 에폭, 및 상기 제 2 신규 블록의 제 2 기초 블록을 포함하는 제 2 합의 메시지를 수신하는 단계; 상기 제 2 기초 블록과의 충돌 발생 여부를 기초로 상기 제 2 신규 블록의 유효성을 판단하는 단계; 상기 제 2 신규 블록이 유효한 경우, 상기 제 2 신규 블록에 대하여 투표(Voting)하는 단계; 및 상기 현재 에폭 이후의 에폭에서 상기 투표 결과에 따라 상기 블록체인 네트워크 내 상기 제 2 신규 블록을 생성한 노드를 제외한 나머지 노드 간 합의를 수행하는 단계를 포함할 수 있다.In addition, in the step of agreeing on the second new block, the second new block, an epoch for the second new block, and receiving a second consensus message including a second basic block of the second new block; determining the validity of the second new block based on whether a collision with the second basic block has occurred; if the second new block is valid, voting for the second new block; and performing consensus among the remaining nodes except for the node that generated the second new block in the blockchain network according to the voting result in the epoch after the current epoch.

또한, 상기 제 2 신규 블록의 유효성을 판단하는 단계는, 상기 제 2 기초 블록의 유효성을 판단하는 단계; 및 상기 제 2 기초 블록이 유효한 경우, 상기 제 2 기초 블록에 대하여 상기 제 2 신규 블록이 유효한지 여부를 판단하는 단계를 포함할 수 있다. The determining of the validity of the second new block may include: determining the validity of the second basic block; and when the second basic block is valid, determining whether the second new block is valid for the second basic block.

또한, 상기 제 2 신규 블록에 제 2 증명서를 부가하는 단계는, 상기 제 2 신규 블록을 생성한 노드로부터 수신된 상기 제 2 신규 블록에 상기 증명서를 부가할 수 있다.In addition, the adding of the second certificate to the second new block may include adding the certificate to the second new block received from the node that generated the second new block.

본 발명의 일 실시예에 따른 블록체인 기반 합의 장치는, 블록체인 네트워크를 구성하는 어느 하나의 노드에 마련되는 블록체인 기반 합의 장치에 있어서, 현재 에폭(Epoch)에서 클라이언트로부터 입력된 제 1 신규 트랜잭션(Transaction)의 유효성을 판단하는 판단부; 상기 제 1 신규 트랜젝션이 유효하면, 상기 현재 에폭의 이전 에폭 내 적어도 하나의 제 1 기초 블록(Base Block)에 대하여 상기 제 1 신규 트랜잭션을 포함하는 제 1 신규 블록을 생성하는 생성부; 상기 제 1 신규 블록을 포함하는 제 1 합의 메시지를 상기 블록체인 네트워크의 나머지 노드로 전파하는 전파부; 및 상기 현재 에폭 이후의 에폭에서 상기 제 1 합의 메시지를 기초로 상기 나머지 노드에서 합의가 이루어진 경우, 상기 제 1 신규 블록에 제 1 증명서(Certificate)를 부가하는 부가부를 포함하되, 상기 제 1 신규 블록의 생성과 상기 제 1 증명서를 부가하는 단계는 상호 독립적으로 수행된다.The blockchain-based consensus device according to an embodiment of the present invention is a blockchain-based consensus device provided in any one node constituting a blockchain network, and the first new transaction input from the client in the current epoch (Transaction) a judgment unit to determine the validity; a generator configured to generate a first new block including the first new transaction with respect to at least one first base block in an epoch before the current epoch if the first new transaction is valid; a propagation unit that propagates a first consensus message including the first new block to the remaining nodes of the blockchain network; and an adder for adding a first certificate to the first new block when agreement is reached at the remaining nodes based on the first consensus message in epochs after the current epoch, wherein the first new block The steps of generating and adding the first certificate are performed independently of each other.

일 실시예에 따른 블록체인 기반 합의 장치 및 방법은, 블록의 생성과 블록에 대한 합의가 상호 독립적으로 수행되므로, 전체 블록체인 네트워크 내에서 이전 적어도 하나의 블록에 복수의 신규 블록이 연결되도록 구성될 수 있다. The block chain-based consensus apparatus and method according to an embodiment is configured to connect a plurality of new blocks to at least one previous block within the entire block chain network because block generation and block consensus are performed independently of each other. can

또한, 일 실시예에 따른 블록체인 기반 합의 장치 및 방법은, DAG(Directed Acyclic Graph) 구조를 채용하므로, 즉각적인 Finality를 확보하여 이전 블록에 신규 블록이 연결될 수 있다.In addition, since the block chain-based consensus apparatus and method according to an embodiment employs a Directed Acyclic Graph (DAG) structure, a new block can be connected to a previous block by securing immediate finality.

도 1 은 본 발명의 일 실시예에 따른 블록체인 시스템의 기능 블록도이다.
도 2 는 본 발명의 일 실시예에 따른 블록체인 시스템을 구성하는 어느 하나의 노드에 포함되는 블록체인 기반 합의 장치의 기능 블록도이다.
도 3은 본 발명의 일 실시예에 따른 블록 간 연결관계를 예시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 블록체인 기반 합의 방법 중 신규 블록을 생성한 노드에서의 동작에 대한 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 블록체인 기반 합의 방법 중 신규 블록을 생성하지 않은 노드에서의 동작에 대한 흐름도이다.
도 6 내지 9는 본 발명의 일 실시예에 따른 블록체인 기반 합의 방법에 따른 여러 가지 적용 예를 설명하기 위한 도면이다.
1 is a functional block diagram of a blockchain system according to an embodiment of the present invention.
2 is a functional block diagram of a blockchain-based consensus device included in any one node constituting a blockchain system according to an embodiment of the present invention.
3 is a diagram illustrating a connection relationship between blocks according to an embodiment of the present invention.
4 is a flowchart of an operation in a node that creates a new block in a blockchain-based consensus method according to an embodiment of the present invention.
5 is a flowchart of an operation in a node that does not generate a new block in a blockchain-based consensus method according to an embodiment of the present invention.
6 to 9 are diagrams for explaining various application examples according to the blockchain-based consensus method according to an embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.Advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only these embodiments allow the disclosure of the present invention to be complete, and common knowledge in the art to which the present invention pertains It is provided to fully inform those who have the scope of the invention, and the present invention is only defined by the scope of the claims.

본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.In describing the embodiments of the present invention, if it is determined that a detailed description of a well-known function or configuration may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. In addition, the terms to be described later are terms defined in consideration of functions in an embodiment of the present invention, which may vary according to intentions or customs of users and operators. Therefore, the definition should be made based on the content throughout this specification.

도 1 은 본 발명의 일 실시예에 따른 블록체인 시스템의 기능 블록도이고, 도 2 는 본 발명의 일 실시예에 따른 블록체인 시스템을 구성하는 어느 하나의 노드에 포함되는 블록체인 기반 합의 장치의 기능 블록도이며, 도 3은 본 발명의 일 실시예에 따른 블록 간 연결관계를 예시한 도면이다.1 is a functional block diagram of a block chain system according to an embodiment of the present invention, and FIG. 2 is a block chain-based consensus device included in any one node constituting the block chain system according to an embodiment of the present invention. It is a functional block diagram, and FIG. 3 is a diagram illustrating a connection relationship between blocks according to an embodiment of the present invention.

블록체인 시스템(Block Chain System) 은 트랜잭션(Transaction) 정보를 기록한 일종의 분산 원장 시스템(Distributed Ledger System)으로서, 블록체인 시스템(100)을 구성하는 복수의 노드(Node) 각각이 자신의 장부를 가지고, 각각의 장부는 내용이 동일하게 유지되는 것을 의미할 수 있다. 장부에 기록되는 하나의 엔트리(Entry)는 트랜잭션으로 표현되고, 장부에 기록을 원하는 사용자가 트랜잭션을 생성하여 P2P 네트워크에 전달하면, 블록체인 시스템(100) 내 노드들이 이를 모아 블록을 생성할 수 있다. 블록이 서로 체인으로 연결되므로, 트랜잭션의 순서화된 기록이 가능할 수 있고, 이렇게 연결된 블록체인의 인스턴트(Instant)는 하나의 분산 원장을 의미할 수 있다.The block chain system is a kind of distributed ledger system that records transaction information, and each of the plurality of nodes constituting the block chain system 100 has its own ledger, Each ledger may mean that the content remains the same. One entry recorded in the ledger is expressed as a transaction, and when a user who wants to record in the ledger creates a transaction and transmits it to the P2P network, nodes in the blockchain system 100 can collect them and create a block. . Since blocks are chained to each other, it is possible to record transactions in an orderly manner, and the instant of a connected block chain can mean a single distributed ledger.

이 때, 분산 원장의 동일성은 블록체인 시스템(100)의 각각의 노드가 가지는 블록체인 이미지의 동일성에서 비롯될 수 있다. 만약, 중앙의 한 노드가 블록을 전담하여 생성한다면, 블록체인 이미지의 동일성은 자연스럽게 유지될 수 있다. 그러나, 블록체인 기술의 핵심은 특정 노드를 신뢰하지 않으면서 신뢰를 제공하는 것이므로, 블록체인 시스템(100)에서는 중앙 집중적 방식이 아닌 각각의 노드들이 자율적으로 블록을 생성하되, 별도의 합의(Consensus) 과정을 거쳐 최종적으로 모든 노드가 동일한 블록체인 이미지를 가지는 방법이 이용될 수 있다.At this time, the identity of the distributed ledger may be derived from the identity of the blockchain image of each node of the blockchain system 100 . If a central node creates blocks exclusively, the identity of the blockchain image can be naturally maintained. However, since the core of block chain technology is to provide trust without trusting a specific node, in the block chain system 100, each node autonomously generates a block rather than a centralized method, but separate consensus Through the process, a method in which all nodes have the same blockchain image can be used.

도 1에서는 블록체인 시스템(100)을 구성하는 노드가 4개인 경우를 예시한다. 상술한 바와 같이, 제 1 노드 n1 내지 제 4 노드 n4 각각에는 분산 원장이 저장될 수 있다. 특히, 이들 노드들 n1, n2, n3, n4는 트랜잭션이 임계치 이상 누적되면 상호 합의 과정을 거쳐 누적된 트랜잭션으로 구성되는 블록을 분산 원장에 등록할 수 있다.1 illustrates a case in which there are four nodes constituting the block chain system 100 . As described above, the distributed ledger may be stored in each of the first node n 1 to the fourth node n 4 . In particular, these nodes n 1 , n 2 , n 3 , and n 4 can register blocks composed of accumulated transactions in the distributed ledger through a mutual agreement process when transactions are accumulated over a threshold.

예를 들어, 미리 정해진 주기가 경과하면, 제 1 노드 n1이 해당 주기 동안 누적된 트랜잭션을 하나의 블록으로 생성할 수 있다. 이렇게 생성된 블록은 블록헤더(Block Header)와 실제 트랜잭션 내용을 포함하는 블록내용으로 구성될 수 있다. 블록이 생성되면, 생성된 블록 중 블록헤더를 매개변수로 하여 제 1 노드 n1 내지 제 4 노드 n4는 상호 합의 과정을 수행할 수 있다.For example, when a predetermined period elapses, the first node n 1 may generate one block of transactions accumulated during the period. The block generated in this way may be composed of a block header and block contents including actual transaction contents. When a block is generated, the first node n 1 to the fourth node n 4 may perform a mutual agreement process using the block header as a parameter among the generated blocks.

상술한 방법은 현재 시점, 즉 현재 에폭(Epoch)에서 신규 블록을 생산하는 단일 노드가 존재하고, 생산된 신규 블록에 대해 합의가 완료되면 이전 에폭에서의 이전 블록에 신규 블록이 연결되는 블록체인 구조를 가질 수 있다. 그 결과, 특정 에폭에서 제안된 합의 요청 중 하나만이 완료되고, 나머지 합의 요청은 이후 에폭에서 신규 생성되어야 하기 때문에, 동시 합의 요청에 따른 처리가 불가할 수 있다.In the above-described method, there is a single node that produces a new block at the current time, that is, the current epoch, and when consensus is completed on the produced new block, the new block is connected to the previous block in the previous epoch. can have As a result, only one of the consensus requests proposed in a specific epoch is completed, and the remaining consensus requests have to be newly created in the subsequent epochs, so processing according to the simultaneous consensus request may not be possible.

다른 방법으로서, DAG 구조를 채용한 합의 방법을 이용할 수 있다. 그러나, 종래의 DAG 구조에 따른 합의 방법은 Finality를 확보하지 못한 채로 이전의 블록에 신규 블록이 연결될 수 밖에 없고, 그 결과 DAG 구조가 블록의 순서도를 직접적으로 의미하는 것이 아니라, 특정 블록의 순서를 알기 위해서는 이후 연결되는 블록을 먼저 확인할 필요가 있다. 또한, 종래의 DAG 구조에 따른 합의 방법은 블록의 생성 이후에 블록에 대한 합의가 순차적으로 진행되므로, 복수의 블록을 처리하기 위한 Pipeline 구성이 어렵다.As another method, a consensus method employing a DAG structure may be used. However, in the conventional consensus method according to the DAG structure, a new block is inevitably connected to the previous block without securing finality. In order to know, it is necessary to first check the blocks to be connected afterwards. In addition, in the conventional consensus method according to the DAG structure, it is difficult to configure a pipeline for processing a plurality of blocks because consensus on blocks is sequentially performed after block generation.

이를 해결하기 위해, 본 발명의 일 실시예에 따른 블록체인 기반 합의 장치(100)는 신규 블록의 생성과 신규 블록의 합의가 각각 독립적으로 수행되도록 마련될 수 있다. 여기서, 블록체인 기반 합의 장치(100)는 블록체인 네트워크를 구성하는 복수의 노드 각각에 마련됨을 전제한다.To solve this, the block chain-based consensus apparatus 100 according to an embodiment of the present invention may be provided so that the generation of a new block and the agreement of the new block are performed independently. Here, it is assumed that the blockchain-based consensus device 100 is provided in each of a plurality of nodes constituting the blockchain network.

도 2를 참조하면, 본 발명의 일 실시예에 따른 블록체인 기반의 합의 장치(100)는 판단부(110), 생성부(120), 전파부(130), 및 부가부(140)를 포함할 수 있다. 이하에서는, 블록체인 네트워크는 복수의 노드 중 적어도 하나로부터 정기적으로 블록이 생성되고, 이러한 블록 생성 시점을 에폭이라 한다.Referring to FIG. 2 , the block chain-based consensus apparatus 100 according to an embodiment of the present invention includes a determination unit 110 , a generation unit 120 , a propagation unit 130 , and an addition unit 140 . can do. Hereinafter, in the block chain network, blocks are periodically generated from at least one of a plurality of nodes, and such block generation time is referred to as an epoch.

판단부(110)는 현재 에폭에서 클라이언트로부터 입력된 제 1 신규 트랜잭션(Transaction)의 유효성을 판단할 수 있다.The determination unit 110 may determine the validity of the first new transaction input from the client in the current epoch.

만약 제 1 신규 트랜젝션이 유효하면, 생성부(120)는 현재 에폭의 이전 에폭 내 적어도 하나의 제 1 기초 블록(Base Block)에 대하여 제 1 신규 트랜잭션을 포함하는 제 1 신규 블록을 생성할 수 있다.If the first new transaction is valid, the generator 120 may generate a first new block including the first new transaction with respect to at least one first base block in an epoch before the current epoch. .

전파부(130)는 제 1 신규 블록을 포함하는 제 1 합의 메시지를 블록체인 네트워크의 나머지 노드로 전파할 수 있다.The propagation unit 130 may propagate the first consensus message including the first new block to the remaining nodes of the blockchain network.

부가부(140)는 제 1 합의 메시지를 기초로 나머지 노드에서 합의가 이루어진 경우, 제 1 신규 블록에 제 1 증명서(Certificate)를 부가할 수 있다.The attaching unit 140 may add a first certificate to the first new block when consensus is reached at the remaining nodes based on the first consensus message.

상술한 실시예에 따른 블록체인 기반 합의 장치(100)는 DAG 구조를 따르면서도, 즉각적인 Finality가 확보된 블록을 이전 블록에 연결할 수 있다. 도 3을 참조하면, 본 발명의 블록체인 구조는 각각의 에폭에 생성되어 합의에 의해 증명서 cc가 부가된 복수의 블록이 이전에 생성된 블록과 연결되도록 구성된다. 이 때, 도 3에 도시된 블록체인 구조가 연결되는 블록의 순서를 의미하므로, 블록 x와 y는 제 3 에폭에 생성되어 동일한 순서를 가짐을 확인할 수 있다.The block-chain-based consensus device 100 according to the above-described embodiment can connect a block with immediate finality to the previous block while following the DAG structure. Referring to FIG. 3 , the blockchain structure of the present invention is configured such that a plurality of blocks generated in each epoch and to which a certificate cc is added by consensus is connected with a previously generated block. At this time, since the block chain structure shown in FIG. 3 means the order of connected blocks, it can be confirmed that blocks x and y are generated in the third epoch and have the same order.

다시 도 2를 참조하면, 상술한 실시예에 따른 블록체인 기반 합의 장치(100)의 적어도 하나의 구성은 마이크로프로세서(Microprocessor)를 포함하는 연산 장치로 구현될 수 있다. 예를 들어, 일 실시예에 따른 블록체인 기반 합의 장치(100)의 각 구성 중 적어도 하나는 AP(Application Processor), CP(Communication Processor), GPU(Graphic Processing Unit), 및/또는 CPU(Central Processing Unit) 등의 다양한 프로세서(Processor) 중 적어도 하나에 의해 구현될 수 있다. 또한, 블록체인 기반 합의 장치(100)의 각 구성 중 적어도 두 개가 SOC(System On Chip) 로 구현되는 것도 가능할 수 있다.Referring back to FIG. 2 , at least one configuration of the block chain-based consensus device 100 according to the above-described embodiment may be implemented as a computing device including a microprocessor. For example, at least one of each configuration of the block chain-based consensus device 100 according to an embodiment is an AP (Application Processor), CP (Communication Processor), GPU (Graphic Processing Unit), and/or CPU (Central Processing) Unit) may be implemented by at least one of various processors. In addition, it may be possible that at least two of the respective components of the block chain-based consensus device 100 are implemented as SOC (System On Chip).

지금까지는 도 2의 실시예에 따른 블록체인 기반 합의 장치(100)의 각 구성에 대하여 설명하였다. 이하에서는 상술한 블록체인 기반 합의 장치(100)에 의해 수행되는 블록체인 기반 합의 방법에 대하여 설명한다.So far, each configuration of the blockchain-based consensus device 100 according to the embodiment of FIG. 2 has been described. Hereinafter, a blockchain-based consensus method performed by the aforementioned blockchain-based consensus device 100 will be described.

도 4는 본 발명의 일 실시예에 따른 블록체인 기반 합의 방법 중 신규 블록을 생성한 노드에서의 동작에 대한 흐름도이고, 도 5는 본 발명의 일 실시예에 따른 블록체인 기반 합의 방법 중 신규 블록을 생성하지 않은 노드에서의 동작에 대한 흐름도이다.4 is a flowchart of an operation in a node that generates a new block in a blockchain-based consensus method according to an embodiment of the present invention, and FIG. 5 is a new block in the blockchain-based consensus method according to an embodiment of the present invention. It is a flowchart for the operation in a node that has not created .

도 4를 참조하면, 먼저 블록체인 기반 합의 장치(100)는 제 2 에폭에서 클라이언트로부터 입력된 신규 트랜잭션의 유효성을 판단할 수 있다(S100). 여기서, 제 2 에폭은 현재 에폭을 의미할 수 있다. Referring to FIG. 4 , first, the blockchain-based consensus apparatus 100 may determine the validity of a new transaction input from the client in the second epoch ( S100 ). Here, the second epoch may mean a current epoch.

구체적으로 클라이언트는 발생시키고자 하는 트랜잭션을 생성하여 자신의 Private Key 로 Sign 하여 블록체인 네트워크 내에 전파할 수 있다. 이를 수신한 블록체인 기반 합의 장치(100)의 판단부(110)는 제 1 에폭 이전의 제 1 에폭 내 적어도 하나의 블록과의 충돌(Conflict) 발생 여부를 기초로 신규 트랜잭션의 유효성을 판단할 수 있다. Specifically, a client can create a transaction to be generated, sign it with its own private key, and propagate it within the blockchain network. The determination unit 110 of the block chain-based consensus device 100 that has received this may determine the validity of the new transaction based on whether a conflict with at least one block in the first epoch before the first epoch occurs. have.

그 다음, 신규 트랜잭션이 유효하면, 블록체인 기반 합의 장치(100)는 제 1 에폭의 적어도 하나의 기초 블록(Base Block)에 대하여 신규 트랜잭션을 포함하는 신규 블록을 생성할 수 있다(S110). 구체적으로, 블록체인 기반 합의 장치(100)의 생성부(120)는 신규 트랜잭션과 충돌이 발생하지 않는 블록을 기초 블록으로 결정하고, 결정된 기초 블록에 대하여 신규 블록을 생성할 수 있다. Then, if the new transaction is valid, the blockchain-based consensus apparatus 100 may generate a new block including the new transaction for at least one base block of the first epoch ( S110 ). Specifically, the generator 120 of the block chain-based consensus device 100 may determine a block in which a collision with a new transaction does not occur as a basic block, and may generate a new block with respect to the determined basic block.

신규 블록이 생성된 후, 블록체인 기반 합의 장치(100)는 신규 블록에 대한 합의 메시지를 블록체인 네트워크의 나머지 노드로 전파할 수 있다(S120). 구체적으로, 블록체인 기반 합의 장치(100)의 전파부(130)는 기초 블록, 현재 에폭 및 신규 블록을 포함하는 합의 메시지를 자신을 제외한 나머지 네트워크로 전파함으로써, 신규 블록에 대한 합의를 요청할 수 있다.After the new block is generated, the block chain-based consensus device 100 may propagate the consensus message for the new block to the remaining nodes of the block chain network (S120). Specifically, the propagation unit 130 of the blockchain-based consensus device 100 may request a consensus on a new block by propagating a consensus message including the basic block, the current epoch, and the new block to the rest of the network except for itself. .

이후, 합의 메시지를 기초로 나머지 노드에서 합의가 이루어진 경우, 블록체인 기반 합의 장치(100)는 신규 블록에 증명서(Certificate)를 부가할 수 있다. 이 때, 신규 블록을 생성하는 것과 신규 블록에 증명서를 부가하는 것은 상호 독립적으로 수행될 수 있다. 즉, 신규 블록이 생성되는 현재 에폭 이후의 에폭에서는 병렬적으로 수행되는 나머지 노드 간 합의 여부와 무관하게 블록체인을 구성하는 복수의 노드 중 적어도 하나에서 다른 신규 노드가 생성될 수 있다.Thereafter, when consensus is reached at the remaining nodes based on the consensus message, the blockchain-based consensus device 100 may add a certificate to the new block. In this case, generating a new block and adding a certificate to the new block may be performed independently of each other. That is, in an epoch after the current epoch in which a new block is generated, another new node may be created in at least one of a plurality of nodes constituting the block chain, regardless of whether the remaining nodes are agreed upon in parallel.

이하에서는 도 5를 참조하여, 신규 블록의 생성과 독립적이고 병렬적으로 수행되는 신규 블록에 대한 합의 과정을 설명한다.Hereinafter, with reference to FIG. 5 , a process of consensus on a new block independently and in parallel with the creation of a new block will be described.

도 5를 참조하면, 먼저 블록체인 기반 합의 장치(100)는 신규 블록에 대한 합의 메시지를 블록체인 네트워크의 어느 하나의 노드로부터 수신할 수 있다(S200). 이 때, 합의 메시지는 상술한 바와 같이 기초 블록, 현재 에폭 및 신규 블록을 포함할 수 있다.Referring to FIG. 5 , first, the blockchain-based consensus device 100 may receive a consensus message for a new block from any one node of the blockchain network ( S200 ). In this case, the consensus message may include a basic block, a current epoch, and a new block as described above.

그 다음, 블록체인 기반 합의 장치(100)는 합의 메시지 내 기초 블록의 유효성을 판단할 수 있다(S210). 구체적으로, 블록체인 기반 합의 장치(100)의 판단부(110)는 기초 블록이 존재하는지 여부, 및 기초 블록 이전의 블록과의 충돌 여부 등을 고려하여 기초 블록의 유효성을 판단할 수 있다.Then, the blockchain-based consensus device 100 may determine the validity of the basic block in the consensus message (S210). Specifically, the determination unit 110 of the block chain-based consensus apparatus 100 may determine the validity of the basic block in consideration of whether the basic block exists and whether it collides with a block before the basic block.

기초 블록이 유효한 경우, 블록체인 기반 합의 장치(100)는 기초 블록에 대하여 신규 블록이 유효한지 판단할 수 있다(S220). 구체적으로, 블록체인 기반 합의 장치(100)의 판단부(110)는 기초 블록과의 충돌 여부 및 현재 에폭에 신규 블록의 연결이 가능한지 여부 등을 기초로 신규 블록의 유효성을 판단할 수 있다.When the basic block is valid, the blockchain-based consensus apparatus 100 may determine whether a new block is valid for the basic block (S220). Specifically, the determination unit 110 of the block chain-based consensus apparatus 100 may determine the validity of the new block based on whether the new block collides with the basic block and whether it is possible to connect the new block to the current epoch.

만약, 신규 블록이 유효하면, 블록체인 기반 합의 장치(100)는 신규 블록에 대하여 투표(Voting)할 수 있다. 구체적으로, 블록체인 기반 합의 장치(100)는 미리 정해진 Committee에서 신규 블록에 대한 합의 여부를 투표할 수 있다. If the new block is valid, the blockchain-based consensus device 100 may vote for the new block. Specifically, the blockchain-based consensus device 100 may vote on whether to agree on a new block in a predetermined committee.

마지막으로, 투표 결과를 기초로 블록체인 네트워크의 나머지 노드 간 합의가 이루어진 경우, 블록체인 기반 합의 장치(100)는 수신된 신규 블록에 증명서를 부가할 수 있다(S240). 구체적으로, 블록체인 기반 합의 장치(100)의 부가부(140)는 투표 결과 전체 노드 중 미리 정해진 수 이상의 투표를 받은 신규 블록에 합의가 이루어졌음을 의미하는 증명서를 부가할 수 있다. Finally, when consensus is reached between the remaining nodes of the blockchain network based on the voting result, the blockchain-based consensus device 100 may add a certificate to the received new block (S240). Specifically, the adder 140 of the block chain-based consensus device 100 may add a certificate indicating that a consensus has been reached to a new block that has received a predetermined number or more of votes among all nodes as a result of voting.

아울러, 부가부(140)는 현재 에폭에 대한 신규 블록 내에 신규 블록과 연결되는 이전 에폭의 블록들에 대한 이전 해쉬(Hash) 리스트를 부가하여 저장할 수 있다. In addition, the adder 140 may add and store a previous hash list for blocks of a previous epoch connected to the new block within a new block for the current epoch.

이처럼, 신규 블록의 합의 과정은 신규 블록의 생성 및 이에 대한 합의 요청과는 독립적이고 병렬적으로 수행될 수 있다. 즉, 블록체인 네트워크 내에서 매 에폭마다 신규 블록이 생성될 수 있고, 신규 블록이 생성된 에폭 이후의 에폭에서 앞서 생성된 신규 블록의 합의 과정이 독립적이고 병렬적으로 수행될 수 있다.As such, the process of consensus of the new block may be performed independently and in parallel with the creation of the new block and the request for a consensus thereon. That is, a new block can be generated at every epoch within the blockchain network, and the consensus process of the previously generated new block can be performed independently and in parallel in the epoch after the epoch in which the new block is created.

이하에서는 상술한 방법에 따라 신규 블록을 합의하는 여러 가지 예를 설명한다.Hereinafter, various examples of agreeing a new block according to the above-described method will be described.

도 6 내지 9는 본 발명의 일 실시예에 따른 블록체인 기반 합의 방법에 따른 여러 가지 적용 예를 설명하기 위한 도면이다.6 to 9 are diagrams for explaining various application examples according to the blockchain-based consensus method according to an embodiment of the present invention.

도 6에서는 복수의 신규 블록이 동일한 에폭에 대하여 합의될 수 있음을 설명하기 위한 도면이다.6 is a diagram for explaining that a plurality of new blocks may be agreed upon for the same epoch.

①과 같이, 블록체인 네트워크 내 노드 1, 노드 2 및 노드 3 각각에 트랜잭션 b, c 및 d가 입력될 수 있다. 그 다음, ②와 같이, 각각의 노드는 입력된 트랜잭션에 대응되는 신규 블록 B, C 및 D를 생성할 수 있다. 각각의 노드는 자신이 생성한 신규 블록을 다른 노드로 전파하면서, 이에 대한 합의를 요청할 수 있다.As shown in ①, transactions b, c, and d can be input to each of Node 1, Node 2, and Node 3 in the blockchain network. Then, as in ②, each node can create new blocks B, C, and D corresponding to the input transaction. Each node can request a consensus on this while propagating the new block it creates to other nodes.

이 후, ③과 같이, 나머지 노드에서는 수신된 신규 블록의 유효성을 판단하고, 유효하다면 수신된 신규 블록 B, C, 및 D 모두를 현재 에폭에 대하여 합의 후 증명서를 부가할 수 있다. After that, as in ③, the remaining nodes determine the validity of the received new block, and if valid, agree on all of the received new blocks B, C, and D for the current epoch, and then add a certificate.

도 7 내지 9는 다양한 경우에 대하여 본 발명의 일 실시에에 따른 블록체인 합의 방법을 적용한 예시를 나타낸다. 여기서, ①은 현재 에폭에 대한 신규 블록의 합의 요청을 나타내고, ②는 이전 에폭에서의 읽기 및 쓰기 기록을 나타내고, ③은 최종 합의 결과를 나타낸다.7 to 9 show examples of applying the blockchain consensus method according to an embodiment of the present invention for various cases. Here, ① indicates the request for consensus of a new block for the current epoch, ② indicates the read and write records in the previous epoch, and ③ indicates the final consensus result.

도 7에서는 블록 A를 기초 블록으로 하는 신규 블록 B에 대한 합의 요청이 있는 경우를 예시한다. 요청을 수신한 나머지 노드에서 이전 에폭에서의 읽기 쓰기 기록을 확인한 결과, 블록 A에 연결된 다른 블록이 존재하지 않으므로, 최종적으로 블록 A에 블록 B를 연결하는 것에 합의할 수 있다.7 exemplifies a case in which there is a request for consensus on a new block B using block A as a base block. As a result of checking the read/write records in the previous epoch in the remaining nodes that received the request, there is no other block connected to block A, so it can finally agree to connect block B to block A.

도 8에서도 블록 A를 기초 블록으로 하는 신규 블록 B에 대한 합의 요청이 있는 경우를 예시한다. 요청을 수신한 나머지 노드에서 이전 에폭에서의 읽기 쓰기 기록을 확인한 결과, 블록 A에 블록 C가 연결되어 있음을 확인할 수 있다. 따라서, 블록 A를 기초 블록으로 하여 블록 B와 C가 동시에 연결되거나, 합의 요청이 있는 신규 블록 B가 기초 블록 A와의 관계에서 충돌됨을 이유로 합의에 이르지 못할 수 있다.8 also exemplifies a case where there is a request for a consensus on a new block B using block A as a base block. As a result of checking the read/write records in the previous epoch in the remaining nodes that received the request, it can be confirmed that block C is connected to block A. Accordingly, a consensus may not be reached because blocks B and C are simultaneously connected using block A as a basic block, or a new block B having a request for consensus collides in relation with the basic block A.

도 9에서도 블록 A를 기초 블록으로 하는 신규 블록 B에 대한 합의 요청이 있는 경우를 예시한다. 요청을 수신한 나머지 노드에서 이전 에폭에서의 읽기 쓰기 기록을 확인한 결과, 블록 A에 블록 C와 D가 연결되고, 블록 C와 D를 기초 블록으로 하여 블록 E가 다시 연결되어 있음을 확인할 수 있다. 따라서, 합의 요청이 있는 신규 블록 B가 기초 블록 A와의 관계에서 충돌됨을 이유로 합의에 이르지 못하고 종료되거나, 블록 A를 기초 블록으로 하여 블록 C 및 D와 함께 블록 B가 연결될 수도 있다.9 also exemplifies a case where there is a request for consensus on a new block B using block A as a base block. As a result of checking the read/write records in the previous epoch in the remaining nodes that received the request, it can be confirmed that blocks C and D are connected to block A, and block E is connected again using blocks C and D as the basic blocks. Accordingly, a new block B with a request for consensus may be terminated without reaching an agreement because it collides with the basic block A, or block B may be connected with blocks C and D using block A as a basic block.

상술한 실시예에 따른 블록체인 기반 합의 장치 및 방법은, 블록의 생성과 블록에 대한 합의가 상호 독립적으로 수행되므로, 전체 블록체인 네트워크 내에서 이전 적어도 하나의 블록에 복수의 신규 블록이 연결되도록 구성될 수 있다. The block chain-based consensus apparatus and method according to the above-described embodiment are configured to connect a plurality of new blocks to at least one previous block within the entire block chain network, since block generation and block consensus are performed independently of each other can be

또한, 상술한 실시예에 따른 블록체인 기반 합의 장치 및 방법은, DAG(Directed Acyclic Graph) 구조를 채용하므로, 즉각적인 Finality를 확보하여 이전 블록에 신규 블록이 연결될 수 있다.In addition, since the block chain-based consensus apparatus and method according to the above-described embodiment adopts a Directed Acyclic Graph (DAG) structure, a new block can be connected to a previous block by securing immediate finality.

한편, 상술한 실시예에 따른 블록체인 기반 합의 방법에 포함된 각각의 단계는, 이러한 단계를 수행하도록 프로그램된 컴퓨터 프로그램 또는 컴퓨터 프로그램을 기록하는 컴퓨터 판독가능한 기록매체에서 구현될 수 있다.On the other hand, each step included in the block chain-based consensus method according to the above-described embodiment may be implemented in a computer program programmed to perform these steps or a computer readable recording medium recording a computer program.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 품질에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 균등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical spirit of the present invention, and various modifications and variations will be possible without departing from the essential quality of the present invention by those skilled in the art to which the present invention pertains. Accordingly, the embodiments disclosed in the present invention are not intended to limit the technical spirit of the present invention, but to explain, and the scope of the technical spirit of the present invention is not limited by these embodiments. The protection scope of the present invention should be interpreted by the following claims, and all technical ideas within the scope equivalent thereto should be interpreted as being included in the scope of the present invention.

일 실시예에 따르면, 상술한 블록체인 기반 합의 장치 및 방법은 댁내 또는 산업 현장 등 다양한 분야에서 이용될 수 있으므로 산업상 이용 가능성이 있다.According to one embodiment, the above-described block-chain-based consensus apparatus and method can be used in various fields such as a home or an industrial site, and thus has industrial applicability.

1: 블록체인 시스템
100: 블록체인 기반 합의 장치
110: 판단부
120: 생성부
130: 전파부
140: 부가부
1: Blockchain system
100: Blockchain-based consensus device
110: judgment unit
120: generator
130: radio wave unit
140: Bugaboo

Claims (12)

블록체인 네트워크를 구성하는 어느 하나의 노드에 의해 수행되는 블록체인 기반 합의 방법에 있어서,
현재 에폭(Epoch)에서 클라이언트로부터 입력된 제 1 신규 트랜잭션(Transaction)의 유효성을 판단하는 단계;
상기 제 1 신규 트랜젝션이 유효하면, 상기 현재 에폭의 이전 에폭 내 적어도 하나의 제 1 기초 블록(Base Block)에 대하여 상기 제 1 신규 트랜잭션을 포함하는 제 1 신규 블록을 생성하는 단계;
상기 제 1 신규 블록을 포함하는 제 1 합의 메시지를 상기 블록체인 네트워크의 나머지 노드로 전파하는 단계;
상기 현재 에폭 이후의 에폭에서 상기 제 1 합의 메시지를 기초로 상기 나머지 노드 간 합의의 여부를 확인하는 단계;
상기 나머지 노드 간 합의가 확인되면 상기 제 1 신규 블록에 제 1 증명서(Certificate)를 부가하는 단계;
상기 블록체인 네트워크를 구성하는 나머지 하나의 노드에 의해 상기 현재 에폭에서 생성된 제 2 신규 블록을 수신하고, 상기 제 2 신규 블록에 대하여 합의하는 단계: 및
상기 제 2 신규 블록에 대하여 합의가 이루어진 경우, 상기 제 2 신규 블록에 제 2 증명서를 부가하는 단계를 포함하되,
상기 제 1 신규 블록을 생성하는 단계와 상기 제 1 증명서를 부가하는 단계는 상호 독립적으로 수행되고, 상기 나머지 노드 간 합의의 여부를 확인하는 단계 및 상기 제 1 증명서를 부가하는 단계의 수행과 상기 제 2 신규 블록에 대하여 합의하는 단계 및 상기 제 2 증명서를 부가하는 단계의 수행은 병렬적으로 수행되며,
상기 제 1 증명서를 부가하는 과정과 상기 제 2 신규 블록을 수신하는 과정이 동시에 이루어지는
블록체인 기반 합의 방법.
In the blockchain-based consensus method performed by any one node constituting the blockchain network,
determining the validity of a first new transaction input from the client in the current epoch;
if the first new transaction is valid, generating a first new block including the first new transaction for at least one first base block in a previous epoch of the current epoch;
propagating a first consensus message including the first new block to the remaining nodes of the blockchain network;
checking whether there is agreement between the remaining nodes based on the first consensus message in epochs subsequent to the current epoch;
adding a first certificate to the first new block when agreement between the remaining nodes is confirmed;
Receiving a second new block generated in the current epoch by the remaining one node constituting the blockchain network, and agreeing on the second new block; And
When an agreement is reached on the second new block, adding a second certificate to the second new block;
The step of generating the first new block and the step of adding the first certificate are performed independently of each other, and the step of checking whether there is an agreement between the remaining nodes and the step of adding the first certificate and the step of adding the first certificate are performed independently of each other The steps of agreeing on 2 new blocks and adding the second certificate are performed in parallel,
The process of adding the first certificate and the process of receiving the second new block are performed simultaneously
Blockchain-based consensus method.
삭제delete 제 1 항에 있어서,
상기 제 1 신규 트랜잭션의 유효성을 판단하는 단계는,
상기 현재 에폭 이전의 에폭 내 적어도 하나의 블록과의 충돌(Conflict) 발생 여부를 기초로 상기 제 1 신규 트랜잭션의 유효성을 판단하는
블록체인 기반의 합의 방법.
The method of claim 1,
The step of determining the validity of the first new transaction comprises:
determining the validity of the first new transaction based on whether a conflict with at least one block in the epoch before the current epoch occurs
A blockchain-based consensus method.
제 3 항에 있어서,
상기 제 1 신규 블록을 생성하는 단계는,
상기 제 1 신규 트랜잭션과 충돌이 발생하지 않는 블록을 상기 제 1 기초 블록으로 결정하는 단계; 및
상기 제 1 기초 블록에 대하여 상기 제 1 신규 블록을 생성하는 단계를 포함하는
블록체인 기반의 합의 방법.
4. The method of claim 3,
The step of creating the first new block includes:
determining a block that does not conflict with the first new transaction as the first basic block; and
generating the first new block with respect to the first basic block
A blockchain-based consensus method.
제 1 항에 있어서,
상기 합의 메시지는,
상기 제 1 기초 블록, 상기 현재 에폭, 및 상기 제 1 신규 블록을 포함하는
블록체인 기반의 합의 방법.
The method of claim 1,
The consensus message is
including the first basic block, the current epoch, and the first new block
A blockchain-based consensus method.
삭제delete 제 1 항에 있어서,
상기 제 2 신규 블록에 대하여 합의하는 단계는,
상기 블록체인 네트워크를 구성하는 나머지 노드 중 상기 제 2 신규 블록을 생성한 노드로부터 상기 제 2 신규 블록, 상기 제 2 신규 블록에 대한 에폭, 및 상기 제 2 신규 블록의 제 2 기초 블록을 포함하는 제 2 합의 메시지를 수신하는 단계;
상기 제 2 기초 블록과의 충돌 발생 여부를 기초로 상기 제 2 신규 블록의 유효성을 판단하는 단계;
상기 제 2 신규 블록이 유효한 경우, 상기 제 2 신규 블록에 대하여 투표(Voting)하는 단계; 및
상기 현재 에폭 이후의 에폭에서 상기 투표 결과에 따라 상기 블록체인 네트워크 내 상기 제 2 신규 블록을 생성한 노드를 제외한 나머지 노드 간 합의를 수행하는 단계를 포함하는
블록체인 기반의 합의 방법.
The method of claim 1,
Agreeing on the second new block includes:
A second new block from the node that generated the second new block among the remaining nodes constituting the block chain network, an epoch for the second new block, and a second basic block of the second new block 2 receiving a consensus message;
determining the validity of the second new block based on whether a collision with the second basic block has occurred;
if the second new block is valid, voting for the second new block; and
In the epoch after the current epoch, according to the voting result, performing consensus among the remaining nodes except for the node that generated the second new block in the blockchain network.
A blockchain-based consensus method.
제 7 항에 있어서,
상기 제 2 신규 블록의 유효성을 판단하는 단계는,
상기 제 2 기초 블록의 유효성을 판단하는 단계; 및
상기 제 2 기초 블록이 유효한 경우, 상기 제 2 기초 블록에 대하여 상기 제 2 신규 블록이 유효한지 여부를 판단하는 단계를 포함하는
블록체인 기반의 합의 방법.
8. The method of claim 7,
The step of determining the validity of the second new block includes:
determining the validity of the second basic block; and
If the second basic block is valid, determining whether the second new block is valid for the second basic block;
A blockchain-based consensus method.
제 1 항에 있어서,
상기 제 2 신규 블록에 제 2 증명서를 부가하는 단계는,
상기 제 2 신규 블록을 생성한 노드로부터 수신된 상기 제 2 신규 블록에 상기 증명서를 부가하는
블록체인 기반의 합의 방법.
The method of claim 1,
The step of adding a second certificate to the second new block includes:
adding the certificate to the second new block received from the node that generated the second new block
A blockchain-based consensus method.
블록체인 네트워크를 구성하는 어느 하나의 노드에 마련되는 블록체인 기반 합의 장치에 있어서,
현재 에폭(Epoch)에서 클라이언트로부터 입력된 제 1 신규 트랜잭션(Transaction)의 유효성을 판단하는 판단부;
상기 제 1 신규 트랜젝션이 유효하면, 상기 현재 에폭의 이전 에폭 내 적어도 하나의 제 1 기초 블록(Base Block)에 대하여 상기 제 1 신규 트랜잭션을 포함하는 제 1 신규 블록을 생성하는 생성부;
상기 제 1 신규 블록을 포함하는 제 1 합의 메시지를 상기 블록체인 네트워크의 나머지 노드로 전파하는 전파부; 및
상기 현재 에폭 이후의 에폭에서 상기 제 1 합의 메시지를 기초로 상기 나머지 노드 간 합의의 여부를 확인하고, 상기 나머지 노드 간 합의가 확인되면 상기 제 1 신규 블록에 제 1 증명서(Certificate)를 부가하며, 상기 블록체인 네트워크를 구성하는 나머지 하나의 노드에 의해 상기 현재 에폭에서 생성된 제 2 신규 블록을 수신하고, 상기 제 2 신규 블록에 대하여 합의하고, 상기 제 2 신규 블록에 대하여 합의가 이루어진 경우 상기 제 2 신규 블록에 제 2 증명서를 부가하는 부가부를 포함하되,
상기 제 1 신규 블록의 생성과 상기 제 1 증명서를 부가하는 것은 상호 독립적으로 수행되고, 상기 나머지 노드 간 합의의 여부를 확인하는 것 및 상기 제 1 증명서를 부가하는 것의 수행과 상기 제 2 신규 블록에 대하여 합의하는 것 및 상기 제 2 증명서를 부가하는 것의 수행은 병렬적으로 수행되며,
상기 제 1 증명서를 부가하는 것과 상기 제 2 신규 블록을 수신하는 것이 동시에 이루어지는
블록체인 기반 합의 장치.
In the blockchain-based consensus device provided in any one node constituting the blockchain network,
a determination unit for determining validity of a first new transaction input from a client in a current epoch;
a generator configured to generate a first new block including the first new transaction with respect to at least one first base block in an epoch before the current epoch if the first new transaction is valid;
a propagation unit that propagates a first consensus message including the first new block to the remaining nodes of the blockchain network; and
In epochs after the current epoch, whether or not there is agreement between the remaining nodes based on the first consensus message is checked, and when agreement between the remaining nodes is confirmed, a first certificate is added to the first new block; When the second new block generated in the current epoch is received by the other node constituting the block chain network, the second new block is agreed upon, and the second new block is agreed upon, the second new block is 2 Comprising an appender for adding a second certificate to the new block,
The creation of the first new block and the addition of the first certificate are performed independently of each other, the confirmation of whether there is an agreement among the remaining nodes, and the execution of adding the first certificate to the second new block Agreeing on and adding the second certificate are performed in parallel,
adding the first certificate and receiving the second new block occur simultaneously
Blockchain-based consensus device.
제 1 항, 제 3 항 내지 제 5 항, 제 7 항 내지 제 9 항 중 어느 한 항에 기재된 방법에 따른 각각의 단계를 수행하는, 컴퓨터 판독 가능 기록매체에 저장된 프로그램. A program stored in a computer-readable recording medium that performs each step according to the method according to any one of claims 1, 3 to 5, and any one of claims 7 to 9. 제 1 항, 제 3 항 내지 제 5 항, 제 7 항 내지 제 9 항 중 어느 한 항에 기재된 방법에 따른 각각의 단계를 수행하는 명령어를 포함하는 프로그램이 기록된 컴퓨터 판독 가능 기록매체.A computer-readable recording medium in which a program comprising instructions for performing each step according to the method according to any one of claims 1, 3 to 5, and any one of claims 7 to 9 is recorded.
KR1020190072795A 2019-06-19 2019-06-19 Apparatus and method for consensus based on blockchain KR102342752B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190072795A KR102342752B1 (en) 2019-06-19 2019-06-19 Apparatus and method for consensus based on blockchain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190072795A KR102342752B1 (en) 2019-06-19 2019-06-19 Apparatus and method for consensus based on blockchain

Publications (2)

Publication Number Publication Date
KR20200144755A KR20200144755A (en) 2020-12-30
KR102342752B1 true KR102342752B1 (en) 2021-12-23

Family

ID=74088372

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190072795A KR102342752B1 (en) 2019-06-19 2019-06-19 Apparatus and method for consensus based on blockchain

Country Status (1)

Country Link
KR (1) KR102342752B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114928650B (en) * 2022-04-26 2023-06-30 成都质数斯达克科技有限公司 Block chain data consensus method, device, equipment and readable storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180285412A1 (en) * 2017-03-29 2018-10-04 Alibaba Group Holding Limited Method, apparatus, and system for blockchain consensus
US10250395B1 (en) * 2018-08-29 2019-04-02 Accenture Global Solutions Limited Cryptologic blockchain interoperation

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170137388A (en) 2016-06-03 2017-12-13 (주) 블록체인오에스 A method for ensuring integrity by using a blockchain technology
KR102384340B1 (en) * 2017-04-05 2022-04-07 삼성에스디에스 주식회사 Method for processing blockchain based real-time transaction and system thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180285412A1 (en) * 2017-03-29 2018-10-04 Alibaba Group Holding Limited Method, apparatus, and system for blockchain consensus
US10250395B1 (en) * 2018-08-29 2019-04-02 Accenture Global Solutions Limited Cryptologic blockchain interoperation

Also Published As

Publication number Publication date
KR20200144755A (en) 2020-12-30

Similar Documents

Publication Publication Date Title
Zhang et al. A blockchain-based multi-cloud storage data auditing scheme to locate faults
CN110457875B (en) Data authorization method and device based on block chain
EP3846062A1 (en) Method and system for processing transactions in a blockchain network
EP3779760B1 (en) Blockchain-based data processing method and apparatus, and electronic device
US20220311607A1 (en) Key generation method and apparatus, device, and medium
US20150358167A1 (en) Certificateless Multi-Proxy Signature Method and Apparatus
CN107193672B (en) Cross-block asynchronous contract calling system
US20200250655A1 (en) Efficient, environmental and consumer friendly consensus method for cryptographic transactions
CN110650216B (en) Cloud service request method and device
CN109886810B (en) Crowdsourcing transaction method and system, readable storage medium and terminal
CN110505311A (en) A kind of across the chain exchange method of isomorphism block chain and system
KR102251776B1 (en) Apparatus and method for consensus based on blockchain
CN114240657A (en) Data processing method, block chain, terminal device and storage medium
KR102342752B1 (en) Apparatus and method for consensus based on blockchain
CN114039733B (en) Certificate storage service transfer method, device and equipment for alliance chains
Huang et al. An Anonymous Authentication System for Pay-As-You-Go Cloud Computing $^* $
CN110990790A (en) Data processing method and equipment
CN112181599B (en) Model training method, device and storage medium
CN106209751A (en) Service-oriented interface authentication method based on the operating system certificate of authority
CN109389271B (en) Application performance management method and system
CN116244062A (en) Data processing method and device, electronic equipment and storage medium
CN113112269B (en) Multiple signature method, computer device, and storage medium
CN113689296A (en) Contract scheduling method and device for asynchronous trusted computing and electronic equipment
CN110457116B (en) Method and device for processing transaction request
CN112861184A (en) Asset certification verification and generation method and device and electronic equipment

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant