KR102342752B1 - Apparatus and method for consensus based on blockchain - Google Patents
Apparatus and method for consensus based on blockchain Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0825—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H04L2209/38—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
- H04L2209/463—Electronic 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
본 발명은 블록체인 기술에 기반하여 블록체인 네트워크를 구성하는 복수의 노드 간 합의를 수행하는 블록체인 기반 합의 장치 및 방법에 관한 것이다.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.
본 발명이 해결하고자 하는 과제는, 블록의 생성과 독립적으로 블록에 대한 합의가 수행되는 블록체인 기반 합의 장치 및 방법을 제공하는 것이다.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
이 때, 분산 원장의 동일성은 블록체인 시스템(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
도 1에서는 블록체인 시스템(100)을 구성하는 노드가 4개인 경우를 예시한다. 상술한 바와 같이, 제 1 노드 n1 내지 제 4 노드 n4 각각에는 분산 원장이 저장될 수 있다. 특히, 이들 노드들 n1, n2, n3, n4는 트랜잭션이 임계치 이상 누적되면 상호 합의 과정을 거쳐 누적된 트랜잭션으로 구성되는 블록을 분산 원장에 등록할 수 있다.1 illustrates a case in which there are four nodes constituting the
예를 들어, 미리 정해진 주기가 경과하면, 제 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
도 2를 참조하면, 본 발명의 일 실시예에 따른 블록체인 기반의 합의 장치(100)는 판단부(110), 생성부(120), 전파부(130), 및 부가부(140)를 포함할 수 있다. 이하에서는, 블록체인 네트워크는 복수의 노드 중 적어도 하나로부터 정기적으로 블록이 생성되고, 이러한 블록 생성 시점을 에폭이라 한다.Referring to FIG. 2 , the block chain-based
판단부(110)는 현재 에폭에서 클라이언트로부터 입력된 제 1 신규 트랜잭션(Transaction)의 유효성을 판단할 수 있다.The
만약 제 1 신규 트랜젝션이 유효하면, 생성부(120)는 현재 에폭의 이전 에폭 내 적어도 하나의 제 1 기초 블록(Base Block)에 대하여 제 1 신규 트랜잭션을 포함하는 제 1 신규 블록을 생성할 수 있다.If the first new transaction is valid, the
전파부(130)는 제 1 신규 블록을 포함하는 제 1 합의 메시지를 블록체인 네트워크의 나머지 노드로 전파할 수 있다.The
부가부(140)는 제 1 합의 메시지를 기초로 나머지 노드에서 합의가 이루어진 경우, 제 1 신규 블록에 제 1 증명서(Certificate)를 부가할 수 있다.The attaching
상술한 실시예에 따른 블록체인 기반 합의 장치(100)는 DAG 구조를 따르면서도, 즉각적인 Finality가 확보된 블록을 이전 블록에 연결할 수 있다. 도 3을 참조하면, 본 발명의 블록체인 구조는 각각의 에폭에 생성되어 합의에 의해 증명서 cc가 부가된 복수의 블록이 이전에 생성된 블록과 연결되도록 구성된다. 이 때, 도 3에 도시된 블록체인 구조가 연결되는 블록의 순서를 의미하므로, 블록 x와 y는 제 3 에폭에 생성되어 동일한 순서를 가짐을 확인할 수 있다.The block-chain-based
다시 도 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
지금까지는 도 2의 실시예에 따른 블록체인 기반 합의 장치(100)의 각 구성에 대하여 설명하였다. 이하에서는 상술한 블록체인 기반 합의 장치(100)에 의해 수행되는 블록체인 기반 합의 방법에 대하여 설명한다.So far, each configuration of the blockchain-based
도 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
구체적으로 클라이언트는 발생시키고자 하는 트랜잭션을 생성하여 자신의 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
그 다음, 신규 트랜잭션이 유효하면, 블록체인 기반 합의 장치(100)는 제 1 에폭의 적어도 하나의 기초 블록(Base Block)에 대하여 신규 트랜잭션을 포함하는 신규 블록을 생성할 수 있다(S110). 구체적으로, 블록체인 기반 합의 장치(100)의 생성부(120)는 신규 트랜잭션과 충돌이 발생하지 않는 블록을 기초 블록으로 결정하고, 결정된 기초 블록에 대하여 신규 블록을 생성할 수 있다. Then, if the new transaction is valid, the blockchain-based
신규 블록이 생성된 후, 블록체인 기반 합의 장치(100)는 신규 블록에 대한 합의 메시지를 블록체인 네트워크의 나머지 노드로 전파할 수 있다(S120). 구체적으로, 블록체인 기반 합의 장치(100)의 전파부(130)는 기초 블록, 현재 에폭 및 신규 블록을 포함하는 합의 메시지를 자신을 제외한 나머지 네트워크로 전파함으로써, 신규 블록에 대한 합의를 요청할 수 있다.After the new block is generated, the block chain-based
이후, 합의 메시지를 기초로 나머지 노드에서 합의가 이루어진 경우, 블록체인 기반 합의 장치(100)는 신규 블록에 증명서(Certificate)를 부가할 수 있다. 이 때, 신규 블록을 생성하는 것과 신규 블록에 증명서를 부가하는 것은 상호 독립적으로 수행될 수 있다. 즉, 신규 블록이 생성되는 현재 에폭 이후의 에폭에서는 병렬적으로 수행되는 나머지 노드 간 합의 여부와 무관하게 블록체인을 구성하는 복수의 노드 중 적어도 하나에서 다른 신규 노드가 생성될 수 있다.Thereafter, when consensus is reached at the remaining nodes based on the consensus message, the blockchain-based
이하에서는 도 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
그 다음, 블록체인 기반 합의 장치(100)는 합의 메시지 내 기초 블록의 유효성을 판단할 수 있다(S210). 구체적으로, 블록체인 기반 합의 장치(100)의 판단부(110)는 기초 블록이 존재하는지 여부, 및 기초 블록 이전의 블록과의 충돌 여부 등을 고려하여 기초 블록의 유효성을 판단할 수 있다.Then, the blockchain-based
기초 블록이 유효한 경우, 블록체인 기반 합의 장치(100)는 기초 블록에 대하여 신규 블록이 유효한지 판단할 수 있다(S220). 구체적으로, 블록체인 기반 합의 장치(100)의 판단부(110)는 기초 블록과의 충돌 여부 및 현재 에폭에 신규 블록의 연결이 가능한지 여부 등을 기초로 신규 블록의 유효성을 판단할 수 있다.When the basic block is valid, the blockchain-based
만약, 신규 블록이 유효하면, 블록체인 기반 합의 장치(100)는 신규 블록에 대하여 투표(Voting)할 수 있다. 구체적으로, 블록체인 기반 합의 장치(100)는 미리 정해진 Committee에서 신규 블록에 대한 합의 여부를 투표할 수 있다. If the new block is valid, the blockchain-based
마지막으로, 투표 결과를 기초로 블록체인 네트워크의 나머지 노드 간 합의가 이루어진 경우, 블록체인 기반 합의 장치(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
아울러, 부가부(140)는 현재 에폭에 대한 신규 블록 내에 신규 블록과 연결되는 이전 에폭의 블록들에 대한 이전 해쉬(Hash) 리스트를 부가하여 저장할 수 있다. In addition, the
이처럼, 신규 블록의 합의 과정은 신규 블록의 생성 및 이에 대한 합의 요청과는 독립적이고 병렬적으로 수행될 수 있다. 즉, 블록체인 네트워크 내에서 매 에폭마다 신규 블록이 생성될 수 있고, 신규 블록이 생성된 에폭 이후의 에폭에서 앞서 생성된 신규 블록의 합의 과정이 독립적이고 병렬적으로 수행될 수 있다.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
이 후, ③과 같이, 나머지 노드에서는 수신된 신규 블록의 유효성을 판단하고, 유효하다면 수신된 신규 블록 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.
상기 제 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.
상기 제 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 신규 블록을 포함하는
블록체인 기반의 합의 방법. 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.
상기 제 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.
상기 제 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.
상기 제 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.
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)
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)
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)
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 |
-
2019
- 2019-06-19 KR KR1020190072795A patent/KR102342752B1/en active IP Right Grant
Patent Citations (2)
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 |