KR20200144755A - 블록체인 기반 합의 장치 및 방법 - Google Patents

블록체인 기반 합의 장치 및 방법 Download PDF

Info

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

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

일 실시예에 따른 블록체인 기반 합의 방법은, 블록체인 네트워크를 구성하는 어느 하나의 노드에 의해 수행되는 블록체인 기반 합의 방법에 있어서, 현재 에폭(Epoch)에서 클라이언트로부터 입력된 제 1 신규 트랜잭션(Transaction)의 유효성을 판단하는 단계; 상기 제 1 신규 트랜젝션이 유효하면, 상기 현재 에폭의 이전 에폭 내 적어도 하나의 제 1 기초 블록(Base Block)에 대하여 상기 제 1 신규 트랜잭션을 포함하는 제 1 신규 블록을 생성하는 단계; 상기 제 1 신규 블록을 포함하는 제 1 합의 메시지를 상기 블록체인 네트워크의 나머지 노드로 전파하는 단계; 및 상기 현재 에폭 이후의 에폭에서 상기 제 1 합의 메시지를 기초로 상기 나머지 노드에서 합의가 이루어진 경우, 상기 제 1 신규 블록에 제 1 증명서(Certificate)를 부가하는 단계를 포함하되, 상기 제 1 신규 블록의 생성과 상기 제 1 증명서를 부가하는 단계는 상호 독립적으로 수행된다.

Description

블록체인 기반 합의 장치 및 방법{APPARATUS AND METHOD FOR CONSENSUS BASED ON BLOCKCHAIN}
본 발명은 블록체인 기술에 기반하여 블록체인 네트워크를 구성하는 복수의 노드 간 합의를 수행하는 블록체인 기반 합의 장치 및 방법에 관한 것이다.
블록체인 시스템은 수많은 노드가 P2P 네트워크로 연결되어 사용자의 트랜잭션(Transaction)을 처리하는 시스템으로서, 트랜잭션에 대한 기록을 순차적으로 저장하는 일종의 분산 원장 시스템이라고 볼 수 있다. 이러한 분산 원장에 한 번 기록된 내용은 변경이 거의 불가능하다는 특징을 가진다.
블록체인 시스템에서는 모두가 동일한 트랜잭션에 대한 처리 기록을 가질 필요가 있는데, 그것을 가능하게 하는 것이 합의 알고리즘(Consensus Algorithm)이다. 최초의 블록체인 기술이 적용된 시스템인 비트코인에서는 합의 알고리즘으로서 작업 증명(Proof of Work, PoW)와 가장 긴 체인(Longest Chine)을 선택하는 방법이 이용되고 있다.
비트코인의 합의 알고리즘은 처리 속도가 최대 7 TPS(Transaction per Second)라는 기술적 한계를 가진다. 또한, 블록체인 시스템을 유지하는데 있어 작업 증명의 과정에서 많은 에너지가 낭비될 수 있다.
그 결과, 비트코인 이후 등장한 블록체인 시스템은 시스템 자체의 기술적 특성에 맞도록 성능 및/또는 에너지의 효율을 높이기 위한 합의 알고리즘을 도입하는 추세이다.
한국공개특허공보, 제 10-2017-0137388호 (2017.12.13. 공개)
본 발명이 해결하고자 하는 과제는, 블록의 생성과 독립적으로 블록에 대한 합의가 수행되는 블록체인 기반 합의 장치 및 방법을 제공하는 것이다.
다만, 본 발명이 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
일 실시예에 따른 블록체인 기반 합의 방법은, 블록체인 네트워크를 구성하는 어느 하나의 노드에 의해 수행되는 블록체인 기반 합의 방법에 있어서, 현재 에폭(Epoch)에서 클라이언트로부터 입력된 제 1 신규 트랜잭션(Transaction)의 유효성을 판단하는 단계; 상기 제 1 신규 트랜젝션이 유효하면, 상기 현재 에폭의 이전 에폭 내 적어도 하나의 제 1 기초 블록(Base Block)에 대하여 상기 제 1 신규 트랜잭션을 포함하는 제 1 신규 블록을 생성하는 단계; 상기 제 1 신규 블록을 포함하는 제 1 합의 메시지를 상기 블록체인 네트워크의 나머지 노드로 전파하는 단계; 및 상기 현재 에폭 이후의 에폭에서 상기 제 1 합의 메시지를 기초로 상기 나머지 노드에서 합의가 이루어진 경우, 상기 제 1 신규 블록에 제 1 증명서(Certificate)를 부가하는 단계를 포함하되, 상기 제 1 신규 블록의 생성과 상기 제 1 증명서를 부가하는 단계는 상호 독립적으로 수행된다.
또한, 상기 제 1 신규 블록에 증명서를 부가하는 단계는, 상기 제 1 신규 블록의 생성과 병렬적으로 수행되는 상기 나머지 노드 간 합의 여부를 확인하는 단계; 및 상기 현재 에폭 이후의 에폭에서 상기 나머지 노드 간 합의가 확인되면, 상기 제 1 신규 블록에 상기 제 1 증명서를 부가하는 단계를 포함할 수 있다.
또한, 상기 제 1 신규 트랜잭션의 유효성을 판단하는 단계는, 상기 현재 에폭 이전의 에폭 내 적어도 하나의 블록과의 충돌(Conflict) 발생 여부를 기초로 상기 제 1 신규 트랜잭션의 유효성을 판단할 수 있다.
또한, 상기 제 1 신규 블록을 생성하는 단계는, 상기 제 1 신규 트랜잭션과 충돌이 발생하지 않는 블록을 상기 제 1 기초 블록으로 결정하는 단계; 및 상기 제 1 기초 블록에 대하여 상기 제 1 신규 블록을 생성하는 단계를 포함할 수 있다.
또한, 상기 합의 메시지는, 상기 제 1 기초 블록, 상기 현재 에폭, 및 상기 제 1 신규 블록을 포함할 수 있다.
또한, 상기 블록체인 네트워크를 구성하는 나머지 하나의 노드에 의해 상기 현재 에폭에서 생성된 제 2 신규 블록에 대하여 합의하는 단계; 및 상기 합의가 이루어진 경우, 상기 제 2 신규 블록에 제 2 증명서를 부가하는 단계를 포함할 수 있다.
또한, 상기 제 2 신규 블록에 대하여 합의하는 단계는, 상기 블록체인 네트워크를 구성하는 나머지 노드 중 상기 제 2 신규 블록을 생성한 노드로부터 상기 제 2 신규 블록, 상기 제 2 신규 블록에 대한 에폭, 및 상기 제 2 신규 블록의 제 2 기초 블록을 포함하는 제 2 합의 메시지를 수신하는 단계; 상기 제 2 기초 블록과의 충돌 발생 여부를 기초로 상기 제 2 신규 블록의 유효성을 판단하는 단계; 상기 제 2 신규 블록이 유효한 경우, 상기 제 2 신규 블록에 대하여 투표(Voting)하는 단계; 및 상기 현재 에폭 이후의 에폭에서 상기 투표 결과에 따라 상기 블록체인 네트워크 내 상기 제 2 신규 블록을 생성한 노드를 제외한 나머지 노드 간 합의를 수행하는 단계를 포함할 수 있다.
또한, 상기 제 2 신규 블록의 유효성을 판단하는 단계는, 상기 제 2 기초 블록의 유효성을 판단하는 단계; 및 상기 제 2 기초 블록이 유효한 경우, 상기 제 2 기초 블록에 대하여 상기 제 2 신규 블록이 유효한지 여부를 판단하는 단계를 포함할 수 있다.
또한, 상기 제 2 신규 블록에 제 2 증명서를 부가하는 단계는, 상기 제 2 신규 블록을 생성한 노드로부터 수신된 상기 제 2 신규 블록에 상기 증명서를 부가할 수 있다.
본 발명의 일 실시예에 따른 블록체인 기반 합의 장치는, 블록체인 네트워크를 구성하는 어느 하나의 노드에 마련되는 블록체인 기반 합의 장치에 있어서, 현재 에폭(Epoch)에서 클라이언트로부터 입력된 제 1 신규 트랜잭션(Transaction)의 유효성을 판단하는 판단부; 상기 제 1 신규 트랜젝션이 유효하면, 상기 현재 에폭의 이전 에폭 내 적어도 하나의 제 1 기초 블록(Base Block)에 대하여 상기 제 1 신규 트랜잭션을 포함하는 제 1 신규 블록을 생성하는 생성부; 상기 제 1 신규 블록을 포함하는 제 1 합의 메시지를 상기 블록체인 네트워크의 나머지 노드로 전파하는 전파부; 및 상기 현재 에폭 이후의 에폭에서 상기 제 1 합의 메시지를 기초로 상기 나머지 노드에서 합의가 이루어진 경우, 상기 제 1 신규 블록에 제 1 증명서(Certificate)를 부가하는 부가부를 포함하되, 상기 제 1 신규 블록의 생성과 상기 제 1 증명서를 부가하는 단계는 상호 독립적으로 수행된다.
일 실시예에 따른 블록체인 기반 합의 장치 및 방법은, 블록의 생성과 블록에 대한 합의가 상호 독립적으로 수행되므로, 전체 블록체인 네트워크 내에서 이전 적어도 하나의 블록에 복수의 신규 블록이 연결되도록 구성될 수 있다.
또한, 일 실시예에 따른 블록체인 기반 합의 장치 및 방법은, DAG(Directed Acyclic Graph) 구조를 채용하므로, 즉각적인 Finality를 확보하여 이전 블록에 신규 블록이 연결될 수 있다.
도 1 은 본 발명의 일 실시예에 따른 블록체인 시스템의 기능 블록도이다.
도 2 는 본 발명의 일 실시예에 따른 블록체인 시스템을 구성하는 어느 하나의 노드에 포함되는 블록체인 기반 합의 장치의 기능 블록도이다.
도 3은 본 발명의 일 실시예에 따른 블록 간 연결관계를 예시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 블록체인 기반 합의 방법 중 신규 블록을 생성한 노드에서의 동작에 대한 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 블록체인 기반 합의 방법 중 신규 블록을 생성하지 않은 노드에서의 동작에 대한 흐름도이다.
도 6 내지 9는 본 발명의 일 실시예에 따른 블록체인 기반 합의 방법에 따른 여러 가지 적용 예를 설명하기 위한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1 은 본 발명의 일 실시예에 따른 블록체인 시스템의 기능 블록도이고, 도 2 는 본 발명의 일 실시예에 따른 블록체인 시스템을 구성하는 어느 하나의 노드에 포함되는 블록체인 기반 합의 장치의 기능 블록도이며, 도 3은 본 발명의 일 실시예에 따른 블록 간 연결관계를 예시한 도면이다.
블록체인 시스템(Block Chain System) 은 트랜잭션(Transaction) 정보를 기록한 일종의 분산 원장 시스템(Distributed Ledger System)으로서, 블록체인 시스템(100)을 구성하는 복수의 노드(Node) 각각이 자신의 장부를 가지고, 각각의 장부는 내용이 동일하게 유지되는 것을 의미할 수 있다. 장부에 기록되는 하나의 엔트리(Entry)는 트랜잭션으로 표현되고, 장부에 기록을 원하는 사용자가 트랜잭션을 생성하여 P2P 네트워크에 전달하면, 블록체인 시스템(100) 내 노드들이 이를 모아 블록을 생성할 수 있다. 블록이 서로 체인으로 연결되므로, 트랜잭션의 순서화된 기록이 가능할 수 있고, 이렇게 연결된 블록체인의 인스턴트(Instant)는 하나의 분산 원장을 의미할 수 있다.
이 때, 분산 원장의 동일성은 블록체인 시스템(100)의 각각의 노드가 가지는 블록체인 이미지의 동일성에서 비롯될 수 있다. 만약, 중앙의 한 노드가 블록을 전담하여 생성한다면, 블록체인 이미지의 동일성은 자연스럽게 유지될 수 있다. 그러나, 블록체인 기술의 핵심은 특정 노드를 신뢰하지 않으면서 신뢰를 제공하는 것이므로, 블록체인 시스템(100)에서는 중앙 집중적 방식이 아닌 각각의 노드들이 자율적으로 블록을 생성하되, 별도의 합의(Consensus) 과정을 거쳐 최종적으로 모든 노드가 동일한 블록체인 이미지를 가지는 방법이 이용될 수 있다.
도 1에서는 블록체인 시스템(100)을 구성하는 노드가 4개인 경우를 예시한다. 상술한 바와 같이, 제 1 노드 n1 내지 제 4 노드 n4 각각에는 분산 원장이 저장될 수 있다. 특히, 이들 노드들 n1, n2, n3, n4는 트랜잭션이 임계치 이상 누적되면 상호 합의 과정을 거쳐 누적된 트랜잭션으로 구성되는 블록을 분산 원장에 등록할 수 있다.
예를 들어, 미리 정해진 주기가 경과하면, 제 1 노드 n1이 해당 주기 동안 누적된 트랜잭션을 하나의 블록으로 생성할 수 있다. 이렇게 생성된 블록은 블록헤더(Block Header)와 실제 트랜잭션 내용을 포함하는 블록내용으로 구성될 수 있다. 블록이 생성되면, 생성된 블록 중 블록헤더를 매개변수로 하여 제 1 노드 n1 내지 제 4 노드 n4는 상호 합의 과정을 수행할 수 있다.
상술한 방법은 현재 시점, 즉 현재 에폭(Epoch)에서 신규 블록을 생산하는 단일 노드가 존재하고, 생산된 신규 블록에 대해 합의가 완료되면 이전 에폭에서의 이전 블록에 신규 블록이 연결되는 블록체인 구조를 가질 수 있다. 그 결과, 특정 에폭에서 제안된 합의 요청 중 하나만이 완료되고, 나머지 합의 요청은 이후 에폭에서 신규 생성되어야 하기 때문에, 동시 합의 요청에 따른 처리가 불가할 수 있다.
다른 방법으로서, DAG 구조를 채용한 합의 방법을 이용할 수 있다. 그러나, 종래의 DAG 구조에 따른 합의 방법은 Finality를 확보하지 못한 채로 이전의 블록에 신규 블록이 연결될 수 밖에 없고, 그 결과 DAG 구조가 블록의 순서도를 직접적으로 의미하는 것이 아니라, 특정 블록의 순서를 알기 위해서는 이후 연결되는 블록을 먼저 확인할 필요가 있다. 또한, 종래의 DAG 구조에 따른 합의 방법은 블록의 생성 이후에 블록에 대한 합의가 순차적으로 진행되므로, 복수의 블록을 처리하기 위한 Pipeline 구성이 어렵다.
이를 해결하기 위해, 본 발명의 일 실시예에 따른 블록체인 기반 합의 장치(100)는 신규 블록의 생성과 신규 블록의 합의가 각각 독립적으로 수행되도록 마련될 수 있다. 여기서, 블록체인 기반 합의 장치(100)는 블록체인 네트워크를 구성하는 복수의 노드 각각에 마련됨을 전제한다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 블록체인 기반의 합의 장치(100)는 판단부(110), 생성부(120), 전파부(130), 및 부가부(140)를 포함할 수 있다. 이하에서는, 블록체인 네트워크는 복수의 노드 중 적어도 하나로부터 정기적으로 블록이 생성되고, 이러한 블록 생성 시점을 에폭이라 한다.
판단부(110)는 현재 에폭에서 클라이언트로부터 입력된 제 1 신규 트랜잭션(Transaction)의 유효성을 판단할 수 있다.
만약 제 1 신규 트랜젝션이 유효하면, 생성부(120)는 현재 에폭의 이전 에폭 내 적어도 하나의 제 1 기초 블록(Base Block)에 대하여 제 1 신규 트랜잭션을 포함하는 제 1 신규 블록을 생성할 수 있다.
전파부(130)는 제 1 신규 블록을 포함하는 제 1 합의 메시지를 블록체인 네트워크의 나머지 노드로 전파할 수 있다.
부가부(140)는 제 1 합의 메시지를 기초로 나머지 노드에서 합의가 이루어진 경우, 제 1 신규 블록에 제 1 증명서(Certificate)를 부가할 수 있다.
상술한 실시예에 따른 블록체인 기반 합의 장치(100)는 DAG 구조를 따르면서도, 즉각적인 Finality가 확보된 블록을 이전 블록에 연결할 수 있다. 도 3을 참조하면, 본 발명의 블록체인 구조는 각각의 에폭에 생성되어 합의에 의해 증명서 cc가 부가된 복수의 블록이 이전에 생성된 블록과 연결되도록 구성된다. 이 때, 도 3에 도시된 블록체인 구조가 연결되는 블록의 순서를 의미하므로, 블록 x와 y는 제 3 에폭에 생성되어 동일한 순서를 가짐을 확인할 수 있다.
다시 도 2를 참조하면, 상술한 실시예에 따른 블록체인 기반 합의 장치(100)의 적어도 하나의 구성은 마이크로프로세서(Microprocessor)를 포함하는 연산 장치로 구현될 수 있다. 예를 들어, 일 실시예에 따른 블록체인 기반 합의 장치(100)의 각 구성 중 적어도 하나는 AP(Application Processor), CP(Communication Processor), GPU(Graphic Processing Unit), 및/또는 CPU(Central Processing Unit) 등의 다양한 프로세서(Processor) 중 적어도 하나에 의해 구현될 수 있다. 또한, 블록체인 기반 합의 장치(100)의 각 구성 중 적어도 두 개가 SOC(System On Chip) 로 구현되는 것도 가능할 수 있다.
지금까지는 도 2의 실시예에 따른 블록체인 기반 합의 장치(100)의 각 구성에 대하여 설명하였다. 이하에서는 상술한 블록체인 기반 합의 장치(100)에 의해 수행되는 블록체인 기반 합의 방법에 대하여 설명한다.
도 4는 본 발명의 일 실시예에 따른 블록체인 기반 합의 방법 중 신규 블록을 생성한 노드에서의 동작에 대한 흐름도이고, 도 5는 본 발명의 일 실시예에 따른 블록체인 기반 합의 방법 중 신규 블록을 생성하지 않은 노드에서의 동작에 대한 흐름도이다.
도 4를 참조하면, 먼저 블록체인 기반 합의 장치(100)는 제 2 에폭에서 클라이언트로부터 입력된 신규 트랜잭션의 유효성을 판단할 수 있다(S100). 여기서, 제 2 에폭은 현재 에폭을 의미할 수 있다.
구체적으로 클라이언트는 발생시키고자 하는 트랜잭션을 생성하여 자신의 Private Key 로 Sign 하여 블록체인 네트워크 내에 전파할 수 있다. 이를 수신한 블록체인 기반 합의 장치(100)의 판단부(110)는 제 1 에폭 이전의 제 1 에폭 내 적어도 하나의 블록과의 충돌(Conflict) 발생 여부를 기초로 신규 트랜잭션의 유효성을 판단할 수 있다.
그 다음, 신규 트랜잭션이 유효하면, 블록체인 기반 합의 장치(100)는 제 1 에폭의 적어도 하나의 기초 블록(Base Block)에 대하여 신규 트랜잭션을 포함하는 신규 블록을 생성할 수 있다(S110). 구체적으로, 블록체인 기반 합의 장치(100)의 생성부(120)는 신규 트랜잭션과 충돌이 발생하지 않는 블록을 기초 블록으로 결정하고, 결정된 기초 블록에 대하여 신규 블록을 생성할 수 있다.
신규 블록이 생성된 후, 블록체인 기반 합의 장치(100)는 신규 블록에 대한 합의 메시지를 블록체인 네트워크의 나머지 노드로 전파할 수 있다(S120). 구체적으로, 블록체인 기반 합의 장치(100)의 전파부(130)는 기초 블록, 현재 에폭 및 신규 블록을 포함하는 합의 메시지를 자신을 제외한 나머지 네트워크로 전파함으로써, 신규 블록에 대한 합의를 요청할 수 있다.
이후, 합의 메시지를 기초로 나머지 노드에서 합의가 이루어진 경우, 블록체인 기반 합의 장치(100)는 신규 블록에 증명서(Certificate)를 부가할 수 있다. 이 때, 신규 블록을 생성하는 것과 신규 블록에 증명서를 부가하는 것은 상호 독립적으로 수행될 수 있다. 즉, 신규 블록이 생성되는 현재 에폭 이후의 에폭에서는 병렬적으로 수행되는 나머지 노드 간 합의 여부와 무관하게 블록체인을 구성하는 복수의 노드 중 적어도 하나에서 다른 신규 노드가 생성될 수 있다.
이하에서는 도 5를 참조하여, 신규 블록의 생성과 독립적이고 병렬적으로 수행되는 신규 블록에 대한 합의 과정을 설명한다.
도 5를 참조하면, 먼저 블록체인 기반 합의 장치(100)는 신규 블록에 대한 합의 메시지를 블록체인 네트워크의 어느 하나의 노드로부터 수신할 수 있다(S200). 이 때, 합의 메시지는 상술한 바와 같이 기초 블록, 현재 에폭 및 신규 블록을 포함할 수 있다.
그 다음, 블록체인 기반 합의 장치(100)는 합의 메시지 내 기초 블록의 유효성을 판단할 수 있다(S210). 구체적으로, 블록체인 기반 합의 장치(100)의 판단부(110)는 기초 블록이 존재하는지 여부, 및 기초 블록 이전의 블록과의 충돌 여부 등을 고려하여 기초 블록의 유효성을 판단할 수 있다.
기초 블록이 유효한 경우, 블록체인 기반 합의 장치(100)는 기초 블록에 대하여 신규 블록이 유효한지 판단할 수 있다(S220). 구체적으로, 블록체인 기반 합의 장치(100)의 판단부(110)는 기초 블록과의 충돌 여부 및 현재 에폭에 신규 블록의 연결이 가능한지 여부 등을 기초로 신규 블록의 유효성을 판단할 수 있다.
만약, 신규 블록이 유효하면, 블록체인 기반 합의 장치(100)는 신규 블록에 대하여 투표(Voting)할 수 있다. 구체적으로, 블록체인 기반 합의 장치(100)는 미리 정해진 Committee에서 신규 블록에 대한 합의 여부를 투표할 수 있다.
마지막으로, 투표 결과를 기초로 블록체인 네트워크의 나머지 노드 간 합의가 이루어진 경우, 블록체인 기반 합의 장치(100)는 수신된 신규 블록에 증명서를 부가할 수 있다(S240). 구체적으로, 블록체인 기반 합의 장치(100)의 부가부(140)는 투표 결과 전체 노드 중 미리 정해진 수 이상의 투표를 받은 신규 블록에 합의가 이루어졌음을 의미하는 증명서를 부가할 수 있다.
아울러, 부가부(140)는 현재 에폭에 대한 신규 블록 내에 신규 블록과 연결되는 이전 에폭의 블록들에 대한 이전 해쉬(Hash) 리스트를 부가하여 저장할 수 있다.
이처럼, 신규 블록의 합의 과정은 신규 블록의 생성 및 이에 대한 합의 요청과는 독립적이고 병렬적으로 수행될 수 있다. 즉, 블록체인 네트워크 내에서 매 에폭마다 신규 블록이 생성될 수 있고, 신규 블록이 생성된 에폭 이후의 에폭에서 앞서 생성된 신규 블록의 합의 과정이 독립적이고 병렬적으로 수행될 수 있다.
이하에서는 상술한 방법에 따라 신규 블록을 합의하는 여러 가지 예를 설명한다.
도 6 내지 9는 본 발명의 일 실시예에 따른 블록체인 기반 합의 방법에 따른 여러 가지 적용 예를 설명하기 위한 도면이다.
도 6에서는 복수의 신규 블록이 동일한 에폭에 대하여 합의될 수 있음을 설명하기 위한 도면이다.
①과 같이, 블록체인 네트워크 내 노드 1, 노드 2 및 노드 3 각각에 트랜잭션 b, c 및 d가 입력될 수 있다. 그 다음, ②와 같이, 각각의 노드는 입력된 트랜잭션에 대응되는 신규 블록 B, C 및 D를 생성할 수 있다. 각각의 노드는 자신이 생성한 신규 블록을 다른 노드로 전파하면서, 이에 대한 합의를 요청할 수 있다.
이 후, ③과 같이, 나머지 노드에서는 수신된 신규 블록의 유효성을 판단하고, 유효하다면 수신된 신규 블록 B, C, 및 D 모두를 현재 에폭에 대하여 합의 후 증명서를 부가할 수 있다.
도 7 내지 9는 다양한 경우에 대하여 본 발명의 일 실시에에 따른 블록체인 합의 방법을 적용한 예시를 나타낸다. 여기서, ①은 현재 에폭에 대한 신규 블록의 합의 요청을 나타내고, ②는 이전 에폭에서의 읽기 및 쓰기 기록을 나타내고, ③은 최종 합의 결과를 나타낸다.
도 7에서는 블록 A를 기초 블록으로 하는 신규 블록 B에 대한 합의 요청이 있는 경우를 예시한다. 요청을 수신한 나머지 노드에서 이전 에폭에서의 읽기 쓰기 기록을 확인한 결과, 블록 A에 연결된 다른 블록이 존재하지 않으므로, 최종적으로 블록 A에 블록 B를 연결하는 것에 합의할 수 있다.
도 8에서도 블록 A를 기초 블록으로 하는 신규 블록 B에 대한 합의 요청이 있는 경우를 예시한다. 요청을 수신한 나머지 노드에서 이전 에폭에서의 읽기 쓰기 기록을 확인한 결과, 블록 A에 블록 C가 연결되어 있음을 확인할 수 있다. 따라서, 블록 A를 기초 블록으로 하여 블록 B와 C가 동시에 연결되거나, 합의 요청이 있는 신규 블록 B가 기초 블록 A와의 관계에서 충돌됨을 이유로 합의에 이르지 못할 수 있다.
도 9에서도 블록 A를 기초 블록으로 하는 신규 블록 B에 대한 합의 요청이 있는 경우를 예시한다. 요청을 수신한 나머지 노드에서 이전 에폭에서의 읽기 쓰기 기록을 확인한 결과, 블록 A에 블록 C와 D가 연결되고, 블록 C와 D를 기초 블록으로 하여 블록 E가 다시 연결되어 있음을 확인할 수 있다. 따라서, 합의 요청이 있는 신규 블록 B가 기초 블록 A와의 관계에서 충돌됨을 이유로 합의에 이르지 못하고 종료되거나, 블록 A를 기초 블록으로 하여 블록 C 및 D와 함께 블록 B가 연결될 수도 있다.
상술한 실시예에 따른 블록체인 기반 합의 장치 및 방법은, 블록의 생성과 블록에 대한 합의가 상호 독립적으로 수행되므로, 전체 블록체인 네트워크 내에서 이전 적어도 하나의 블록에 복수의 신규 블록이 연결되도록 구성될 수 있다.
또한, 상술한 실시예에 따른 블록체인 기반 합의 장치 및 방법은, DAG(Directed Acyclic Graph) 구조를 채용하므로, 즉각적인 Finality를 확보하여 이전 블록에 신규 블록이 연결될 수 있다.
한편, 상술한 실시예에 따른 블록체인 기반 합의 방법에 포함된 각각의 단계는, 이러한 단계를 수행하도록 프로그램된 컴퓨터 프로그램 또는 컴퓨터 프로그램을 기록하는 컴퓨터 판독가능한 기록매체에서 구현될 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 품질에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 균등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
일 실시예에 따르면, 상술한 블록체인 기반 합의 장치 및 방법은 댁내 또는 산업 현장 등 다양한 분야에서 이용될 수 있으므로 산업상 이용 가능성이 있다.
1: 블록체인 시스템
100: 블록체인 기반 합의 장치
110: 판단부
120: 생성부
130: 전파부
140: 부가부

Claims (12)

  1. 블록체인 네트워크를 구성하는 어느 하나의 노드에 의해 수행되는 블록체인 기반 합의 방법에 있어서,
    현재 에폭(Epoch)에서 클라이언트로부터 입력된 제 1 신규 트랜잭션(Transaction)의 유효성을 판단하는 단계;
    상기 제 1 신규 트랜젝션이 유효하면, 상기 현재 에폭의 이전 에폭 내 적어도 하나의 제 1 기초 블록(Base Block)에 대하여 상기 제 1 신규 트랜잭션을 포함하는 제 1 신규 블록을 생성하는 단계;
    상기 제 1 신규 블록을 포함하는 제 1 합의 메시지를 상기 블록체인 네트워크의 나머지 노드로 전파하는 단계; 및
    상기 현재 에폭 이후의 에폭에서 상기 제 1 합의 메시지를 기초로 상기 나머지 노드에서 합의가 이루어진 경우, 상기 제 1 신규 블록에 제 1 증명서(Certificate)를 부가하는 단계를 포함하되,
    상기 제 1 신규 블록의 생성과 상기 제 1 증명서를 부가하는 단계는 상호 독립적으로 수행되는
    블록체인 기반 합의 방법.
  2. 제 1 항에 있어서,
    상기 제 1 신규 블록에 증명서를 부가하는 단계는,
    상기 제 1 신규 블록의 생성과 병렬적으로 수행되는 상기 나머지 노드 간 합의 여부를 확인하는 단계; 및
    상기 현재 에폭 이후의 에폭에서 상기 나머지 노드 간 합의가 확인되면, 상기 제 1 신규 블록에 상기 제 1 증명서를 부가하는 단계를 포함하는
    블록체인 기반 합의 방법.
  3. 제 1 항에 있어서,
    상기 제 1 신규 트랜잭션의 유효성을 판단하는 단계는,
    상기 현재 에폭 이전의 에폭 내 적어도 하나의 블록과의 충돌(Conflict) 발생 여부를 기초로 상기 제 1 신규 트랜잭션의 유효성을 판단하는
    블록체인 기반의 합의 방법.
  4. 제 3 항에 있어서,
    상기 제 1 신규 블록을 생성하는 단계는,
    상기 제 1 신규 트랜잭션과 충돌이 발생하지 않는 블록을 상기 제 1 기초 블록으로 결정하는 단계; 및
    상기 제 1 기초 블록에 대하여 상기 제 1 신규 블록을 생성하는 단계를 포함하는
    블록체인 기반의 합의 방법.
  5. 제 1 항에 있어서,
    상기 합의 메시지는,
    상기 제 1 기초 블록, 상기 현재 에폭, 및 상기 제 1 신규 블록을 포함하는
    블록체인 기반의 합의 방법.
  6. 제 1 항에 있어서,
    상기 블록체인 네트워크를 구성하는 나머지 하나의 노드에 의해 상기 현재 에폭에서 생성된 제 2 신규 블록에 대하여 합의하는 단계; 및
    상기 합의가 이루어진 경우, 상기 제 2 신규 블록에 제 2 증명서를 부가하는 단계를 포함하는
    블록체인 기반의 합의 방법.
  7. 제 6 항에 있어서,
    상기 제 2 신규 블록에 대하여 합의하는 단계는,
    상기 블록체인 네트워크를 구성하는 나머지 노드 중 상기 제 2 신규 블록을 생성한 노드로부터 상기 제 2 신규 블록, 상기 제 2 신규 블록에 대한 에폭, 및 상기 제 2 신규 블록의 제 2 기초 블록을 포함하는 제 2 합의 메시지를 수신하는 단계;
    상기 제 2 기초 블록과의 충돌 발생 여부를 기초로 상기 제 2 신규 블록의 유효성을 판단하는 단계;
    상기 제 2 신규 블록이 유효한 경우, 상기 제 2 신규 블록에 대하여 투표(Voting)하는 단계; 및
    상기 현재 에폭 이후의 에폭에서 상기 투표 결과에 따라 상기 블록체인 네트워크 내 상기 제 2 신규 블록을 생성한 노드를 제외한 나머지 노드 간 합의를 수행하는 단계를 포함하는
    블록체인 기반의 합의 방법.
  8. 제 7 항에 있어서,
    상기 제 2 신규 블록의 유효성을 판단하는 단계는,
    상기 제 2 기초 블록의 유효성을 판단하는 단계; 및
    상기 제 2 기초 블록이 유효한 경우, 상기 제 2 기초 블록에 대하여 상기 제 2 신규 블록이 유효한지 여부를 판단하는 단계를 포함하는
    블록체인 기반의 합의 방법.
  9. 제 6 항에 있어서,
    상기 제 2 신규 블록에 제 2 증명서를 부가하는 단계는,
    상기 제 2 신규 블록을 생성한 노드로부터 수신된 상기 제 2 신규 블록에 상기 증명서를 부가하는
    블록체인 기반의 합의 방법.
  10. 블록체인 네트워크를 구성하는 어느 하나의 노드에 마련되는 블록체인 기반 합의 장치에 있어서,
    현재 에폭(Epoch)에서 클라이언트로부터 입력된 제 1 신규 트랜잭션(Transaction)의 유효성을 판단하는 판단부;
    상기 제 1 신규 트랜젝션이 유효하면, 상기 현재 에폭의 이전 에폭 내 적어도 하나의 제 1 기초 블록(Base Block)에 대하여 상기 제 1 신규 트랜잭션을 포함하는 제 1 신규 블록을 생성하는 생성부;
    상기 제 1 신규 블록을 포함하는 제 1 합의 메시지를 상기 블록체인 네트워크의 나머지 노드로 전파하는 전파부; 및
    상기 현재 에폭 이후의 에폭에서 상기 제 1 합의 메시지를 기초로 상기 나머지 노드에서 합의가 이루어진 경우, 상기 제 1 신규 블록에 제 1 증명서(Certificate)를 부가하는 부가부를 포함하되,
    상기 제 1 신규 블록의 생성과 상기 제 1 증명서를 부가하는 단계는 상호 독립적으로 수행되는
    블록체인 기반 합의 장치.
  11. 제 1 항 내지 제 9 항 중 어느 한 항에 기재된 방법에 따른 각각의 단계를 수행하는, 컴퓨터 판독 가능 기록매체에 저장된 프로그램.
  12. 제 1 항 내지 제 9 항 중 어느 한 항에 기재된 방법에 따른 각각의 단계를 수행하는 명령어를 포함하는 프로그램이 기록된 컴퓨터 판독 가능 기록매체.
KR1020190072795A 2019-06-19 2019-06-19 블록체인 기반 합의 장치 및 방법 KR102342752B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190072795A KR102342752B1 (ko) 2019-06-19 2019-06-19 블록체인 기반 합의 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190072795A KR102342752B1 (ko) 2019-06-19 2019-06-19 블록체인 기반 합의 장치 및 방법

Publications (2)

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

Family

ID=74088372

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190072795A KR102342752B1 (ko) 2019-06-19 2019-06-19 블록체인 기반 합의 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102342752B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114928650A (zh) * 2022-04-26 2022-08-19 成都质数斯达克科技有限公司 一种区块链数据共识方法、装置、设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170137388A (ko) 2016-06-03 2017-12-13 (주) 블록체인오에스 블록체인 기술을 이용한 무결성 보장 방법
US20180285412A1 (en) * 2017-03-29 2018-10-04 Alibaba Group Holding Limited Method, apparatus, and system for blockchain consensus
KR20180113145A (ko) * 2017-04-05 2018-10-15 삼성에스디에스 주식회사 블록체인 기반 실시간 거래 처리 방법 및 그 시스템
US10250395B1 (en) * 2018-08-29 2019-04-02 Accenture Global Solutions Limited Cryptologic blockchain interoperation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170137388A (ko) 2016-06-03 2017-12-13 (주) 블록체인오에스 블록체인 기술을 이용한 무결성 보장 방법
US20180285412A1 (en) * 2017-03-29 2018-10-04 Alibaba Group Holding Limited Method, apparatus, and system for blockchain consensus
KR20180113145A (ko) * 2017-04-05 2018-10-15 삼성에스디에스 주식회사 블록체인 기반 실시간 거래 처리 방법 및 그 시스템
US10250395B1 (en) * 2018-08-29 2019-04-02 Accenture Global Solutions Limited Cryptologic blockchain interoperation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114928650A (zh) * 2022-04-26 2022-08-19 成都质数斯达克科技有限公司 一种区块链数据共识方法、装置、设备及可读存储介质
CN114928650B (zh) * 2022-04-26 2023-06-30 成都质数斯达克科技有限公司 一种区块链数据共识方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
KR102342752B1 (ko) 2021-12-23

Similar Documents

Publication Publication Date Title
TWI816781B (zh) 區塊鏈網路劃分技術(四)
Zhang et al. A blockchain-based multi-cloud storage data auditing scheme to locate faults
US20190074966A1 (en) Revocation of cryptographic keys in the absence of a trusted central authority
Hada et al. On the existence of 3-round zero-knowledge protocols
CN108769230B (zh) 交易数据存储方法、装置、服务器及存储介质
CN109118230B (zh) 基于区块链的信息处理方法和装置
KR20220006623A (ko) 블록체인 합의 방법, 디바이스 및 시스템
US20150358167A1 (en) Certificateless Multi-Proxy Signature Method and Apparatus
CN107193672B (zh) 一种跨区块异步调用合约系统
CN110650216B (zh) 云服务请求方法和装置
US20200250655A1 (en) Efficient, environmental and consumer friendly consensus method for cryptographic transactions
CN112217683A (zh) 跨异构链数据可达性处理方法、系统、介质、设备、终端
KR102251776B1 (ko) 블록체인 기반 합의 장치 및 방법
CN110990790B (zh) 一种数据处理方法及设备
Huang et al. An Anonymous Authentication System for Pay-As-You-Go Cloud Computing $^* $
JP2022552110A (ja) ブロックチェーンベースのワークフローノード認証方法及びデバイス
KR102342752B1 (ko) 블록체인 기반 합의 장치 및 방법
CN112181599B (zh) 模型训练方法、装置及存储介质
CN113112269B (zh) 多重签名方法、计算机设备和存储介质
CN110096543A (zh) 应用程序的数据操作方法、装置、服务器和介质
CN112637201B (zh) 一种web服务端的请求处理方法、装置、设备及系统
CN112861184A (zh) 资产证明的验证与生成方法、装置及电子设备
CN112927075A (zh) 跨链交易的处理方法、装置、电子设备及可读存储介质
KR20210127231A (ko) 동력화된 ID (Energized Identity) 기반 블록체인
CN114978537B (zh) 一种身份识别方法、装置、设备和计算机可读存储介质

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