KR102130900B1 - 블록체인 시스템에서의 고속 합의 방법 - Google Patents

블록체인 시스템에서의 고속 합의 방법 Download PDF

Info

Publication number
KR102130900B1
KR102130900B1 KR1020180140568A KR20180140568A KR102130900B1 KR 102130900 B1 KR102130900 B1 KR 102130900B1 KR 1020180140568 A KR1020180140568 A KR 1020180140568A KR 20180140568 A KR20180140568 A KR 20180140568A KR 102130900 B1 KR102130900 B1 KR 102130900B1
Authority
KR
South Korea
Prior art keywords
block
blocks
selecting
transaction
nodes
Prior art date
Application number
KR1020180140568A
Other languages
English (en)
Other versions
KR20200056646A (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 KR1020180140568A priority Critical patent/KR102130900B1/ko
Publication of KR20200056646A publication Critical patent/KR20200056646A/ko
Application granted granted Critical
Publication of KR102130900B1 publication Critical patent/KR102130900B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1046Joining mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1051Group master selection mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 블록체인 시스템에서의 고속 합의 방법에 관한 것으로서, 그 블록체인 시스템에서의 고속 합의 방법은 다수의 노드로 이루어지는 블록체인 시스템에서 노드가 트랜잭션 데이터가 포함된 블록을 생성하여 다른 노드들에게 제안하는 단계; 제안된 블록(제안블록)들은 후보블록 풀에 저장되고, 각 노드는 저장된 후보블록들을 미리 정해진 선택 알고리즘에 따라 하나의 블록을 선택하여 서명하는 단계; 및 네트워크 노도의 정족수 이상 서명된 블록이 존재하면 컨펌블록을 생성하여 전파하고 체인에 연결(commit)하는 단계를 포함하고, 미리 정해진 선택 알고리즘은 노드들이 자신에게 전파된 블록들 중에서 트랙잭션을 최대한 많이 포함하고 있는 블록(Max Tx 블록)을 선택하는 단계; Max Tx 블록이 복수개 존재할 때 가장 오래된 트랜잭션을 포함한 블록을 선택하는 단계; 가장 오래된 트랜잭션을 포함한 블록이 복수개 일 때, 소정의 합의시간 범위에 도착한 블록을 선택하는 단계; 및 소정의 합의시간 범위에 도착한 블록이 복수개 일 때, 해시값을 이용하여 하나를 선택하는 단계를 포함하는 것을 특징으로 한다.
본 발명에 의하면, 많은 이용자들이 동시에 이용하는 블록체인 시스템에서 합의 속도를 높임으로써 빠른 서비스를 제공할 수 있다.

Description

블록체인 시스템에서의 고속 합의 방법{Fast consensus method in block chain system}
본 발명은 블록체인 시스템에 관한 것으로서, 특히 블록체인 시스템에서의 고속 합의 방법에 관한 것이다.
블록체인 기술은 거래의 기록 및 관리에 대한 권한을 중앙기관 없이 P2P(Peer-to-Peer) 네트워크를 통해 분산시켜 블록(Block)으로 기록하고 관리하는 기술로서, 거래를 기록한 원장을 특정 기관의 중앙서버가 아닌 P2P(Peer-to-Peer) 네트워크에 분산시켜 공동기록 및 관리하는 기술이다.
이러한 블록체인 기술을 기반으로 하는 시스템은 중앙서버에서 모든 것을 보관하지 않고 분산된 네트워크에 저장되므로 제 3기관의 설립 및 운영이 불필요함에 따라 수수료를 절감할 수 있다. 그리고 블록체인 시스템은 중앙서버 없이 모든 참가자들에게 원장이 공개되고 정보가 분산되기 때문에 내·외부 조작이나 해킹으로부터 안전하여 높은 보안성 유지가 가능하고 보안관련 비용을 절감할 수 있다.
또한 모든 거래 기록을 공개하기 때문에 거래 기록이 개방되고 투명하고 모든 거래에 대한 추적이 가능함에 따라 거래 양성화 및 규제 비용을 줄일 수 있고, 거래의 승인 기록이 다수 참여자에 의해 자동적으로 실행된다. 또한 블록체인은 오픈소스 프로그램으로 자산 거래, 소유권 확인 등 다양한 목적에 맞게 응용하는 기술개발에 적용할 수 있다.
도 1은 블록체인의 원리를 형상화한 이미지를 나탠 것으로서, 블록체인 시스템은 수많은 노드가 P2P 네트워크로 연결되어 있다. 블록체인 시스템에서 사용자의 트랜잭션을 처리하는 데, 다수의 참여자들이 하나의 블록체인을 유지하기 위한 수단이 필요하고, 각 노도에서 블록체인을 공유하기 위해서는 합의 알고리즘이 필요하다. 블록체인의 합의알고리즘에는 작업증명(Proof of Work, POW)과 지분증명(Proof of Stake, POS)가 있다.
작업증명(Proof of Work, POW)는 블록 생성을 하고자 하는 노드들이 특정한 해시(hash) 값을 찾는 연산을 수행하여 특정한 난이도의 작업을 수행했음을 증명하는 것으로서, 채굴자(miner)들은 해시 값을 찾기 위해 경쟁하고, 특정 채굴자 가 목표 값에 해당하는 해시 값을 찾는 데 성공하면 블록이 생성되며, 높은 컴퓨팅 파워를 가질수록 빠른 속도로 해시 값을 계산할 수 있다.
지분증명(Proof of Stake, POS)은 작업증명(PoW) 방식의 과도한 에너지 소비 문제 해결을 위한 대안으로 제시된 것으로서, 참여자의 소유 지분이 블록 생성권 지분에 반영이 되는 합의 알고리즘이다. 채굴자가 보유하고 있는 화폐의 양에 비례하여 블록을 생성하며, 많은 지분 소유자가 쉬운 난이도의 문제를 풀게 된다. 지분증명은 리소스 관점에서는 효율적이나, 블록생성 지분이 소유 지분을 기반으로 하기 때문에 초기에 코인을 많이 보유한 참여자가 블록생성에 유리하다는 점에서 공정성문제가 있다. 또한 유효한 블록체인이 두 개 이상 존재하는 fork 상황에서 참여자들이 보상받을 확률을 높이기 위해 두 개 이상의 블록체인 상에서 블록을 생성함으로써, 하나의 블록체인으로 수렴해 가는 것을 어렵게 하고, 이러한 상황에 공격자가 뇌물을 주고 유효한 블록체인을 임의로 바꿀 수 있으며, 유효한 블록체인에 대한 합의를 빨리 이루지 못하는 문제가 발생할 수 있다.
최근에는 이러한 POS를 보완한 위임된 지분 증명(DPOS: Delegated Proof of Stake) 방식이 제안되어 이용되고 있다. POS 방식이 일정한 지분을 가진 모든 노드에게 블록 생성 권한을 주었던 반면, DPOS는 지분 보유자들은 지분에 비례한 투표로 대표자를 선출하고, 대표자들에게 블록 생성과 검증에 대한 권한을 부여하여 합의에 대한 권리를 위임 합의에 걸리는 시간과 비용이 적게 소요되는 장점이 있으며, PoW와 POS에 비해 상대적으로 단위 시간 동안 생성되는 블록의 개수도 많다.
이와 같이, 블록체인 시스템에서 합의알고리즘은 블록체인 기술의 핵심이라 할 수 있다. 특히 많은 이용자들이 동시에 이용하는 블록체인 시스템에서는 빠른 서비스를 제공하기 위해 고속의 합의 알고리즘이 필요하다.
본 발명이 해결하고자 하는 과제는 많은 이용자들이 동시에 이용하는 블록체인 시스템에서 빠른 서비스를 제공하기 위해 창출된 것으로서, 합의 속도를 높일 수 있는, 블록체인 시스템에서의 고속 합의 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는 많은 이용자들이 동시에 이용하는 블록체인 시스템에서 빠른 서비스를 제공하기 위해 위임 지분 증명(DPOS: Delegated Proof of Stake) 방식을 기본으로 합의 속도를 높일 수 있는, 블록체인 시스템에서의 고속 합의 방법을 제공하는 것이다.
상기 기술적 과제를 이루기 위한 본 발명에 의한 블록체인 시스템에서의 고속 합의 방법은, 다수의 노드로 이루어지는 블록체인 시스템에서 상기 노드가 트랜잭션 데이터가 포함된 블록을 생성하여 다른 노드들에게 제안하는 단계; 상기 제안된 블록(제안블록)들은 후보블록 풀에 저장되고, 각 노드는 저장된 후보블록들을 미리 정해진 선택 알고리즘에 따라 하나의 블록을 선택하여 서명하는 단계; 및 네트워크 상 노드의 정족수 이상 서명된 블록이 존재하면 컨펌블록을 생성하여 전파하고 체인에 연결(commit)하는 단계를 포함하고, 상기 미리 정해진 선택 알고리즘은 노드들이 자신에게 전파된 블록들 중에서 트랙잭션을 최대한 많이 포함하고 있는 블록(Max Tx 블록)을 선택하는 단계; 상기 Max Tx 블록이 복수개 존재할 때 가장 오래된 트랜잭션을 포함한 블록을 선택하는 단계; 가장 오래된 트랜잭션을 포함한 블록이 복수개 일 때, 소정의 합의시간 범위에 도착한 블록을 선택하는 단계; 및 소정의 합의시간 범위에 도착한 블록이 복수개 일 때, 해시값을 이용하여 하나를 선택하는 단계를 포함하는 것을 특징으로 한다.
상기 다른 기술적 과제를 이루기 위한 본 발명에 의한 블록체인 시스템에서의 고속 합의 방법은, 블록체인 시스템에 복수의 대표노드가 존재할 때, 상기 대표노드가 클라이언트들의 트랙잭션들이 포함된 블록을 생성하여 다른 대표노드들에 제안하는 단계; 상기 대표노드들에 의해 제안된 블록들은 후보블록 풀에 저장되는 단계; 상기 대표노드들이 상기 후보블록 풀에 저장된 블록들 중 하나를 미리 정해진 알고리즘에 따라 선택하는 단계; 상기 대표노드들 각각은 상기 선택한 하나의 블록에 대해 대표노드의 서명이 있는 투표(vote)데이터를 다른 대표노드들에게 전파하는 단계; 각 대표노드는 상기 투표데이터를 확인하는 단계; 상기 투표데이터 확인을 통해 대표노드의 정족수 이상이 서명된 블록(정족수 투표블록)이 존재하면, 상기 정족수투표블록을 생성한 대표노드가 상기 투표데이터가 포함된 컨펌블록(confirm block)을 생성하여 대표노드들에게 전파하는 단계; 및 상기 컨펌블록은 체인에 연결(commit)되는 단계를 포함하고, 상기 미리 정해진 알고리즘은 대표노드들이 자신에게 전파된 블록들 중에서 트랙잭션을 최대한 많이 포함하고 있는 블록(Max Tx 블록)을 선택하는 단계; 상기 Max Tx 블록이 복수개 존재할 때 가장 오래된 트랜잭션을 포함한 블록을 선택하는 단계; 가장 오래된 트랜잭션을 포함한 블록이 복수개 일 때, 소정의 합의시간 범위에 도착한 블록을 선택하는 단계; 및 소정의 합의시간 범위에 도착한 블록이 복수개 일 때, 해시값을 이용하여 하나를 선택하는 단계를 포함하는 것을 특징으로 한다.
상기 해시값을 이용하여 하나의 블록을 선택하는 것은 이전 블록의 해시와 정렬 순서가 가장 가까운 것을 선택하거나 블록의 해시값이 가장 큰 것을 선택하는 것임을 특징으로 한다.
상기 다른 기술적 과제를 이루기 위한 본 발명에 의한 블록체인 시스템에서의 고속 합의 방법은, 클라이언트가 트랜잭션에 대한 요청을 네트워크를 통해 연결된 노드로 전파하는 단계; 상기 대표노드가 상기 트랜잭션을 수신하면 상기 트랙잭션의 데이터 검증과 서명을 확인하고, 정상적인 트랜잭션이라면 트랜잭션 풀에 저장하는 단계를 더 포함할 수 있다.
본 발명에 따른 블록체인 시스템에서의 고속 합의 방법에 의하면, 많은 이용자들이 동시에 이용하는 블록체인 시스템에서 합의 속도를 높임으로써 빠른 서비스를 제공할 수 있다.
도 1은 블록체인의 원리를 형상화한 이미지를 나타낸 것이다.
도 2은 본 발명에 따른 블록체인 시스템에서의 고속 합의 방법에 대한 일실시예를 흐름도로 나타낸 것이다.
도 3는 본 발명에 따른 블록체인 시스템에서의 고속 합의 방법에 대한 일실시예에서 하나의 블록을 선택하는 미리 설정된 선택 알고리즘을 흐름도로 나타낸 것이다.
도 4a 및 도 4b는 본 발명에 따른 블록체인 시스템에서의 고속 합의 방법에 대한 다른 실시예를 흐름도로 나타낸 것이다.
도 5는 본 발명에 따른 블록체인 시스템에서의 고속 합의 방법에 대한 진행 단계(phase)를 나타낸 것이다.
도 6은 본 발명에 따른 블록체인 시스템에서의 고속 합의 방법에 대한 각 진행단계의 보다 세부적인 내용을 흐름도로 나타낸 것이다.
이하, 첨부된 도면을 참조로 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 바람직한 일 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원 시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
도 2는 본 발명에 따른 블록체인 시스템에서의 고속 합의 방법에 대한 일실시예를 흐름도로 나타낸 것이다.
도 2를 참조하면, 다수의 노드로 이루어지는 블록체인 시스템에서 클라이언트가 트랜잭션에 대한 요청을 네트워크를 통해 연결된 노드로 전파한다.(S210단계) 상기 노드가 트랜잭션 데이터가 포함된 블록을 생성하여 다른 노드들에게 제안한다.(S220단계) 상기 제안된 블록(제안블록)들은 후보블록 풀(candidate blocks pool)에 저장되고, 각 노드는 저장된 후보블록들을 미리 정해진 선택 알고리즘에 따라 하나의 블록을 선택하여 서명한다.(S240단계) 노드들이 각자 선택하여 서명한 블록 중에서 네트워크에 있는 노드의 정족수 이상 서명된 블록이 존재하면 컨펌 블록(confirm block)을 생성하여 전파하고 체인에 연결(commit)한다.(S240 단계)
도 3는 본 발명에 따른 블록체인 시스템에서의 고속 합의 방법에 대한 일실시예에서 하나의 블록을 선택하는 미리 설정된 선택 알고리즘을 흐름도로 나타낸 것이다. 도 3을 참조하여, 상기 미리 정해진 선택 알고리즘은 다음과 같이 이루어진다. 먼저 노드들이 자신에게 전파된 블록들 중에서 트랙잭션을 최대한 많이 포함하고 있는 블록(Max Tx 블록)을 선택한다.(S310단계) 상기 Max Tx 블록이 복수개 존재할 때는 가장 오래된 트랜잭션을 포함한 블록을 선택한다.(S320단계) 가장 오래된 트랜잭션을 포함한 블록이 복수개 일 경우에는 소정의 합의시간 범위에 도착한 블록을 선택한다.(S330단계) 소정의 합의시간 범위에 도착한 블록이 복수개 일 때는 해시값을 이용하여 하나를 선택한다.(S340단계)
S340단계에서 상기 해시값을 이용하여 하나를 선택하는 것은 이전 블록의 해시와 정렬 순서가 가장 가까운 것을 선택하거나 블록의 해시값이 가장 큰 것을 선택할 수 있다.
도 4a 및 도 4b는 본 발명에 따른 블록체인 시스템에서의 고속 합의 방법에 대한 다른 실시예를 흐름도로 나타낸 것이다. 본 발명의 다른 실시예는 위임지분 증명방식(DPOS, Delegated Proof-Of-Stake)을 기본으로 한다.
도 4a 및 도 4b를 참조하면, 복수의 대표노드가 존재하는 블록체인 시스템에서 클라이언트가 트랜잭션에 대한 요청을 네트워크를 통해 연결된 노드로 전파한다.(S410단계) 상기 대표노드가 상기 트랜잭션을 수신하면 상기 트랙잭션의 데이터 검증과 서명을 확인하고, 정상적인 트랜잭션이라면 트랜잭션 풀에 저장한다.(S320단계) 상기 대표노드가 클라이언트들의 트랙잭션들이 포함된 블록을 생성하여 다른 대표노드들에 제안한다.(S430단계) 상기 대표노드들에 의해 제안된 블록들은 후보블록 풀에 저장되고, 상기 대표노드들이 상기 후보블록 풀에 저장된 블록들 중 하나를 미리 정해진 알고리즘에 따라 하나의 블록을 선택한다.(S440단계)
상기 대표노드들 각각은 상기 선택한 하나의 블록에 대해 대표노드의 서명이 있는 투표(vote)데이터를 다른 대표노드들에게 전파한다.(S450단계)
각 대표노드는 다른 대표노드의 서명이 있는 투표데이터를 수신하여 확인한다.(S460단계) 상기 투표데이터 확인을 통해 대표노드의 정족수 이상이 서명된 블록(정족수투표블록)이 존재하면(S470단계), 상기 정족수투표블록을 생성한 대표노드가 상기 투표데이터가 포함된 컨펌블록(confirm block)을 생성하여 다른 대표노드들에게 전파한다.(S480단계) 대표노드들은 컨펌블록을 체인에 연결(commit)한다.(S490단계)
상기 투표데이터 확인을 통해 대표노드 정족수 이상이 서명하지 않은 블록은 컨펌 블록(confirm block)이 되지 않고 블록체인에 연결되기 위해 새로운 라운드(new round)로 진행한다.(S485단계)
그리고 상기 미리 정해진 선택 알고리즘은 도 3에 도시된 흐름도와 마찬가지로 대표 노드들이 자신에게 전파된 블록들 중에서 트랙잭션을 최대한 많이 포함하고 있는 블록(Max Tx 블록)을 선택한다.(S310단계) 상기 Max Tx 블록이 복수개 존재할 때는 가장 오래된 트랜잭션을 포함한 블록을 선택한다.(S320단계) 가장 오래된 트랜잭션을 포함한 블록이 복수개 경우에는 소정의 합의시간 범위에 도착한 블록을 선택한다.(S330단계) 소정의 합의시간 범위에 도착한 블록이 복수개 일 때는, 해시값을 이용하여 하나의 블록을 선택한다.(S340단계)
상기 S340단계에서 해시값을 이용하여 하나를 선택하는 것은 이전 블록의 해시와 정렬 순서가 가장 가까운 것을 선택하거나 블록의 해시값이 가장 큰 것을 선택할 수 있다.
도 5는 본 발명에 따른 블록체인 시스템에서의 고속 합의 방법에 대한 진행 단계(phase)를 나타낸 것이다. 도 5를 참조하여 본 발명의 다른 실시예에 따른 블록체인 시스템에서의 고속 합의 방법을 설명하기로 한다.
먼저, 본 발명의 다른 실시예에 따른 블록체인 시스템에서의 고속 합의 방법의 전단계(pre-phase)로서 Request(510)가 이루어지는데, 이 단계에서는 클라이언트가 트랜잭션에 대한 요청을 연결된 노드로 전파한다. 그리고 phase 0(510)에서는 각 노드는 자신이 받은 클라이언트의 트랜잭션을 네트워크에 전파한다.
그리고 나서, 본 발명에 의한 고속합의(Leaderless Fast Consensus: LLFC) 알고리즘에 의해 하나의 블록이 선택되어 최종적으로 컨펌(confirm) 블록이 생성되면 블록체인에 연결된다. 상기 고속 합의 알고리즘은 proPOSal(530), select(540) 및 confirm(550)으로 이루어진다. proPOSal(530)에서는 본 발명에 의한 고속합의 알고리즘의 첫 단계로서 대표노드가 블록을 생성하여 네트워크를 통해 다른 대표노드들에게 제안한다.
select(540)에서는 각 대표노드는 자신에게 전파된 블록 중 하나의 블록을 미리 정해진 선택 알고리즘에 따라 선택하여 서명한다.
Confirm(550)에서는 네트워크 정속수의 2/3 이상 서명된 블록이 있으면 해당 블록을 “컨펌 블록(Confirm Block)”으로 변경한다. 이 때, 블록은 거의 확정적이 된다. 컴펌 블록에 서명된 데이터를 전파하여 블록을 체인에 연결(commit)한다.
도 6은 본 발명에 따른 블록체인 시스템에서의 고속 합의 방법에 대한 각 진행단계의 세부적인 내용을 흐름도로 나타낸 것이다. 도 6을 참조하여 각 진행단계를 상세하게 설명하기로 한다.
본 발명에 사용되는 고속합의(LLFC) 알고리즘은 트랜잭션을 풀(pool)에서 꺼내 블록을 생성하여 제안하는 단계(ProPOSe Block), 제안된 블록을 선택하는 단계 (LLFC Select Algorithm), 서명된 블록을 확인하고 체인에 연결하는 단계 (Confirm)로 합의가 진행된다.
도 6을 참조하면, 본 발명에 따른 고속 합의 방법이 사용되는 서비스 플랫폼을 이용하는 사용자들이 서비스 사용을 위해 트랜잭션을 생성하고, 네트워크에 전파하게 된다. 이 트랜잭션들이 대표 노드에 도달하게 되면 트랜잭션의 데이터 검증과 서명을 확인하게 되고(602), 정상적인 트랜잭션이라면 트랜잭션 풀(605)에 저장된다. 일정 시간 동안 저장된 트랜잭션들에 대해 대표 노드는 트랙잭션 풀(605)에 저장된 트랜잭션들을 꺼내서 블록을 생성한다. 생성이 완료된 블록은 생성한 대표 노드가 다른 대표 노드들에 제안한다.(610) 이 과정에서 노드의 후보 블록 풀에 제안되는 블록들이 저장된다.(615) 저장된 블록들은 LLFC 선택 알고리즘(620)에 의해서 모든 대표 노드가 동일한 하나의 블록을 선택할 수 있게 한다. 상기 LLFC 선택 알고리즘(620)에 의해 선택된 하나의 블록에 대해 각 대표 노드는 투표를 한다. 투표한 블록에 대한 투표데이터가 수집되어 투표풀(625)에 저장되고, 검증 및 확인 과정을 거친다. 이 때 투표한 결과가 대표 노드의 2/3 이상의 동의를 필요로 한다.(630) 투표가 확인된 블록(635)은 블록체인(650)에 연결되고(640), 새로운 높이의 블록이 제안된다.(645) 반면 LLFC 선택 알고리즘(620) 에서 선택되지 못하고, 투표 받지 못한 블록(655)은 제외되고, 다시 처음으로 돌아가 새로운 블록을 제안하게 한다.(660)
위의 단계들을 보다 세부적으로 설명하기로 한다. 블록 제안(ProPOSe Block, 610)에 대해 설명하면, 검증된 트랜잭션들이 일정 시간 트랜잭션 풀(615)에 쌓이게 되고, 이 트랜잭션을 가져와서 대표 노드가 블록 생성 후 제안한다. 제안된 블록은 후보 블록 풀(615)에 쌓이게 되고, LLFC 선택 알고리즘(620) 에 의해서 선택된다.
LLFC 선택 알고리즘(620)은 후보 블록 풀(615)에 쌓여 있는 블록들 중에 하나의 동일한 블록을 선택하기 위한 알고리즘으로서, Maximum TX 단계(622), Oldest TX 단계(624), Time Compatibility 단계(626), SCT(Select Conflict Tolerance) 단계(628) 및 Vote단계(629)를 포함한다.
Maximum TX 단계(622)에서는 생성된 블록에 포함된 트랜잭션을 가장 많이 포함하고 있는 블록이 선택된다.
Oldest TX 단계(624)에서는 Maximum TX단계(622)에서 선택된 트랜잭션이 복수 개일 때, 가장 오래된 트랜잭션을 포함한 블록이 선택된다.
Time Compatibility 단계(626)에서는 가장 이상적인 합의 시간의 범위에 도착한 블록이 선택된다. 즉, 범위 내의 동일한 조건의 블록이 있을 시 동일 조건 블록을 모두 선택한다.
SCT (Select Conflict Tolerance) 단계(628)에서는 LLFC 선택 알고리즘에서 블록 선택 시 동일한 조건을 가진 복수의 블록들을 선택하게 되어 합의가 실패하는 것을 회피하고, 하나의 블록을 선택하기 위한 알고리즘으로서, 기본적으로 해시값을 이용하여 하나의 블록을 선택한다. 예를 들어 이전 블록 해시와 정렬 순서가 가까운 것을 선택하거나 해시값이 가장 큰 것을 선택할 수 있다.
Vote단계(629)는 Maximum TX 단계(622), Oldest TX 단계(624), Time Compatibility 단계(626), Select Conflict Tolerance 단계(628)의 과정을 거쳐서 선택된 하나의 블록에 대해서 대표 노드의 서명을 추가한다. 상기 대표노드들 각각은 상기 선택한 하나의 블록에 대해 대표노드의 서명이 있는 투표(vote)데이터를 다른 대표노드들에게 전파한다. 투표 데이터는 투표 풀(625)에 저장된다.
LLFC 선택 알고리즘(620)에 의해 대표노드별로 하나의 블록이 선택되면, Confirm 과정으로 진행한다. Confirm 과정은 각 대표 노드들이 선택한 블록에 서명한 데이터를 확인하고 검증하는 과정으로서, Wait for Selected 2/3 단계(630), 블록 연결(Commit Block) 단계(640)를 포함한다.
Wait for Selected 2/3 단계(630)에서는 블록에 서명한 데이터가 대표 노드의 2/3 이상이 선택한 블록이 있으면 해당 블록을 “컨펌블록(Confirm Block, 635)” 이라고 변경한다. 이 때 블록은 거의 확정적이다. 즉, 각 대표노드는 투표 풀(625)에 저장된 투표데이터를 확인하여 대표노드의 정족수 이상이 서명된 블록(정족수투표블록)이 존재하면, 상기 정족수투표블록을 생성한 대표노드가 상기 투표데이터가 포함된 컨펌블록(confirm block)을 생성하여 대표노드들에게 전파한다.
비정상적인 행동이나 데이터로 인해 합의가 실패할 경우 “No Confirm Block(655)”로 변경되고 블록이 다시 제안(New Round, 660) 된다.
블록 연결(Commit Block) 단계(640)에서는 합의로 인한 컨펌 블록(Confirm Block) 생성 시 해당 블록을 체인(650)에 연결한다. New Height(645)에서는 블록을 체인에 연결 후 높이가 증가되고, 새로운 블록이 제안된다.
한편, 본 발명의 실시예에서 정족수는 참여자수를 n이라 할 때, 정족수 = n-((n-1)/3) 같이 정의할 수 있다. 예를 들어, 참여자가 전체 11명이라하면, 정족수는 11-((11-1)/3) = 11-(10/3) = 11-3 = 8 즉, 전체가 11명이라면 정족수는 8이 된다.
본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터(정보 처리 기능을 갖는 장치를 모두 포함한다)가 읽을 수 있는 코드로서 구현될 수 있다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한, 본 명세서에서, “부”는 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
605 : 검증된 트랜잭션(Tx) 풀 610 : 블록제안
615 : 후보블록 풀 620 : LLFC 선택 알고리즘
625 : 투포(Votes) 풀 630 : Wait for selected 2/3
635 : Confirm Block 640 : 블록 연결(Commit Block)
645 : New Height 650 : 블록 체인
655 : No Confirm Block 660 : New Round

Claims (5)

  1. 다수의 노드로 이루어지는 블록체인 시스템에서 상기 노드가 트랜잭션 데이터가 포함된 블록을 생성하여 다른 노드들에게 제안하는 단계;
    상기 제안된 블록(제안블록)들은 후보블록 풀에 저장되고, 각 노드는 저장된 후보블록들을 미리 정해진 선택 알고리즘에 따라 하나의 블록을 선택하여 서명하는 단계; 및
    네트워크에 있는 정족수 이상 서명된 블록이 존재하면 컨펌블록을 생성하여 전파하고 체인에 연결(commit)하는 단계를 포함하고,
    상기 미리 정해진 선택 알고리즘은
    노드들이 자신에게 전파된 블록들 중에서 트랙잭션을 최대한 많이 포함하고 있는 블록(Max Tx 블록)을 선택하는 단계;
    상기 Max Tx 블록이 복수개 존재할 때 가장 오래된 트랜잭션을 포함한 블록을 선택하는 단계;
    가장 오래된 트랜잭션을 포함한 블록이 복수개 일 때, 소정의 합의시간 범위에 도착한 블록을 선택하는 단계;
    소정의 합의시간 범위에 도착한 블록이 복수개 일 때, 해시값을 이용하여 하나의 블록을 선택하는 단계를 포함하는 것을 특징으로 하는, 블록체인 시스템에서의 고속 합의 방법.
  2. 제1항에 있어서, 상기 해시값을 이용하여 하나의 블록을 선택하는 것은
    이전 블록의 해시와 정렬 순서가 가장 가까운 것을 선택하거나 블록의 해시값이 가장 큰 것을 선택하는 것임을 특징으로 하는 블록체인 시스템에서의 고속 합의 방법.
  3. 블록체인 시스템에 복수의 대표노드가 존재할 때, 상기 대표노드가 클라이언트들의 트랙잭션들이 포함된 블록을 생성하여 다른 대표노드들에 제안하는 단계;
    상기 대표노드들에 의해 제안된 블록들은 후보블록 풀에 저장되는 단계;
    상기 대표노드들이 상기 후보블록 풀에 저장된 블록들 중 하나를 미리 정해진 알고리즘에 따라 선택하는 단계;
    상기 대표노드들 각각은 상기 선택한 하나의 블록에 대해 대표노드의 서명이 있는 투표(vote)데이터를 다른 대표노드들에게 전파하는 단계;
    각 대표노드는 상기 투표데이터를 확인하는 단계;
    상기 투표데이터 확인을 통해 대표노드의 이상이 서명된 블록(정족수투표블록)이 존재하면, 상기 정족수투표블록을 생성한 대표노드가 상기 투표데이터가 포함된 컨펌블록(confirm block)을 생성하여 대표노드들에게 전파하는 단계; 및
    상기 컨펌블록은 체인에 연결(commit)되는 단계를 포함하고,
    상기 미리 정해진 알고리즘은
    대표 노드들이 자신에게 전파된 블록들 중에서 트랙잭션을 가장 많이 포함하고 있는 블록(Max Tx 블록)을 선택하는 단계;
    상기 Max Tx 블록이 복수개 존재할 때 가장 오래된 트랜잭션을 포함한 블록을 선택하는 단계;
    가장 오래된 트랜잭션을 포함한 블록이 복수개 일 때, 소정의 합의 시간 범위에 도착한 블록을 선택하는 단계;
    소정의 합의 시간 범위에 도착한 블록이 복수개 일 때, 해시값을 이용하여 하나의 블록을 선택하는 단계를 포함하는 것을 특징으로 하는, 블록체인 시스템에서의 고속 합의 방법.
  4. 제3항에 있어서, 상기 해시값을 이용하여 하나의 블록을 선택하는 것은
    이전 블록의 해시와 정렬 순서가 가장 가까운 것을 선택하거나 블록의 해시값이 가장 큰 것을 선택하는 것임을 특징으로 하는 블록체인 시스템에서의 고속 합의 방법.
  5. 제3항에 있어서,
    클라이언트가 트랜잭션에 대한 요청을 네트워크를 통해 연결된 노드로 전파하는 단계;
    상기 대표노드가 상기 트랜잭션을 수신하면 상기 트랙잭션의 데이터 검증과 서명을 확인하고, 정상적인 트랜잭션이라면 트랜잭션 풀에 저장하는 단계를 더 포함하는 것을 특징으로 하는, 블록체인 시스템에서의 고속 합의 방법.
KR1020180140568A 2018-11-15 2018-11-15 블록체인 시스템에서의 고속 합의 방법 KR102130900B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180140568A KR102130900B1 (ko) 2018-11-15 2018-11-15 블록체인 시스템에서의 고속 합의 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180140568A KR102130900B1 (ko) 2018-11-15 2018-11-15 블록체인 시스템에서의 고속 합의 방법

Publications (2)

Publication Number Publication Date
KR20200056646A KR20200056646A (ko) 2020-05-25
KR102130900B1 true KR102130900B1 (ko) 2020-07-06

Family

ID=70914374

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180140568A KR102130900B1 (ko) 2018-11-15 2018-11-15 블록체인 시스템에서의 고속 합의 방법

Country Status (1)

Country Link
KR (1) KR102130900B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114900529A (zh) * 2022-06-09 2022-08-12 上海万向区块链股份公司 区块敲定方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101727525B1 (ko) 2016-09-05 2017-04-17 주식회사 스케일체인 블록체인 기반 분산 저장 방법 및 이를 이용한 장치
US20170346833A1 (en) 2016-05-27 2017-11-30 Sony Corporation Blockchain-based system, and electronic apparatus and method in the system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PT3418915T (pt) * 2015-08-28 2021-01-04 Swirlds Inc Métodos e aparelhos para uma base de dados distribuída dentro de uma rede

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170346833A1 (en) 2016-05-27 2017-11-30 Sony Corporation Blockchain-based system, and electronic apparatus and method in the system
KR101727525B1 (ko) 2016-09-05 2017-04-17 주식회사 스케일체인 블록체인 기반 분산 저장 방법 및 이를 이용한 장치

Also Published As

Publication number Publication date
KR20200056646A (ko) 2020-05-25

Similar Documents

Publication Publication Date Title
Poon et al. Plasma: Scalable autonomous smart contracts
US11907947B2 (en) Resource transfer system
KR102652551B1 (ko) 분산 조정을 사용한 스마트 계약 실행
US11177939B2 (en) Blockchain system including a distributed network of a plurality of nodes and a method for achieving an agreement between the plurality of nodes executed by processors of the block chain system
US11153069B2 (en) Data authentication using a blockchain approach
CN108200203B (zh) 基于双层网络的区块链系统
Baird et al. Hedera: A governing council & public hashgraph network
CN109214818B (zh) 一种跨链交易方法及装置
CN109829718B (zh) 一种基于存储应用场景的区块链多层级构架及其运行方法
KR101827373B1 (ko) 채굴 제한을 위한 합의 알고리즘을 포함하는 블록윈도우 모듈 및 관리 서버 그리고 가상화폐 거래 시스템 및 방법
WO2017082238A1 (ja) ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム
WO2017082237A1 (ja) ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム
JP7165148B6 (ja) ブロックチェーンネットワークにおける整合性のある分散型メモリプールのための方法及びシステム
JP2020522927A (ja) 一般的な計算のためのブロックチェーン
JP7319961B2 (ja) 一対の結合ブロックチェーンを構成するバイナリブロックチェーンに関連するコンピュータ実装システム及び方法
CN108959621A (zh) 一种区块链网络的实现方法、装置、设备及存储介质
WO2020139827A1 (en) System and method for providing a graph protocol for forming a decentralized and distributed graph database
KR102201468B1 (ko) 블록체인 기반의 게임 제작을 위한 크라우드펀딩 시스템의 동작 방법 및 서비스 환경을 구현하기 위한 시스템
CN108347483B (zh) 基于双层网络的去中心化计算系统
KR101798119B1 (ko) 주주명부를 등록하고 주식 소유권 이전을 기록하고 등록된 주주명부 파일을 검증하는 방법 및 서버
JP2023542681A (ja) ブロックチェーンの許可フレームワークへのデバイスアイデンティティの統合
Alizadeh et al. Efficient decentralized data storage based on public blockchain and IPFS
CN109447605A (zh) 一种基于区块链的链货币兑换方法、装置、设备和介质
KR102192695B1 (ko) 블록체인 기반의 광고 서비스 시스템의 동작 방법 및 서비스 환경을 구현하기 위한 시스템
KR102130900B1 (ko) 블록체인 시스템에서의 고속 합의 방법

Legal Events

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