KR102050087B1 - 하드웨어 및 지분증명 합의 알고리즘을 포함하는 블록 체인 시스템과 그 블록 체인 시스템에서의 블록 생성 방법 - Google Patents

하드웨어 및 지분증명 합의 알고리즘을 포함하는 블록 체인 시스템과 그 블록 체인 시스템에서의 블록 생성 방법 Download PDF

Info

Publication number
KR102050087B1
KR102050087B1 KR1020180043466A KR20180043466A KR102050087B1 KR 102050087 B1 KR102050087 B1 KR 102050087B1 KR 1020180043466 A KR1020180043466 A KR 1020180043466A KR 20180043466 A KR20180043466 A KR 20180043466A KR 102050087 B1 KR102050087 B1 KR 102050087B1
Authority
KR
South Korea
Prior art keywords
block generation
block
node
stake
nodes
Prior art date
Application number
KR1020180043466A
Other languages
English (en)
Other versions
KR20190119921A (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 KR1020180043466A priority Critical patent/KR102050087B1/ko
Publication of KR20190119921A publication Critical patent/KR20190119921A/ko
Application granted granted Critical
Publication of KR102050087B1 publication Critical patent/KR102050087B1/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/1053Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers
    • 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/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/1082Resource delivery mechanisms involving incentive schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Abstract

하드웨어 및 지분증명 합의 알고리즘을 포함하는 블록 체인 시스템과 그 블록 체인 시스템에서의 블록 생성 방법이 제공된다. 상기 블록 체인 시스템은, 기 정해진 사양(specifications) 이상의 하드웨어 환경과 기 정해진 수량 이상의 지분에 기초하여 블록 생성 권한을 갖도록 결정된 복수의 블록 생성 노드, 및 자신의 지분을 이용하여 상기 복수의 블록 생성 노드 중 적어도 하나의 노드에 참여하여 블록 생성 권한의 순위를 결정하는데 기여하는 복수의 지분 참여 노드를 포함하고, 상기 블록 생성 노드의 지분과 상기 블록 생성 노드를 선택한 지분 참여 노드의 지분 및 블록 생성 대기 시간에 기초하여 신규 블록을 생성할 블록 생성 노드를 선정한다.

Description

하드웨어 및 지분증명 합의 알고리즘을 포함하는 블록 체인 시스템과 그 블록 체인 시스템에서의 블록 생성 방법{The block-chain system including POPS(Proof of Power specification and Stake) consensus algorithm and block generation method in the block-chain system}
본 발명은 하드웨어 및 지분증명 합의 알고리즘을 포함하는 블록 체인 시스템과 그 블록 체인 시스템에서의 블록 생성 방법에 관한 것이다.
블록 체인(Block chain)은 공공 거래 장부라고도 부르며 암호 화폐로 거래할 때 발생할 수 있는 해킹을 막는 기술이다. 기존 금융 회사의 경우 중앙 집중형 서버에 거래 기록을 보관하는 반면, 블록 체인은 거래에 참여하는 모든 사용자에게 거래 내역을 보내 주며 거래 때마다 이를 대조해 데이터 위조를 막는 방식을 사용한다. 블록 체인은 대표적인 온라인 암호 화폐인 비트코인에 적용되어 있다. 비트코인은 누구나 열람할 수 있는 장부에 거래 내역을 투명하게 기록하며, 비트코인을 사용하는 여러 컴퓨터가 10분에 한 번씩 이 기록을 검증하여 해킹을 막는다.
비트코인을 온라인 상에서 처리하는 과정에서 블록과 블록 체인은 핵심적인 역할을 수행한다. 블록 체인 기술은 트랜잭션 정보를 담은 하나의 블록이 이전의 블록과 다음의 블록을 고유 값으로 상호 참조하도록 하여 체인처럼 연결된 구조를 갖는 것으로서, P2P 네트워크에 참여한 피어들 또는 트랜잭션을 생성하기 위한 참여자들이 P2P 네트워크에서 생성된 모든 블록을 저장함으로써 누구나 거래 내역의 조회가 가능하고 특유의 작업 증명 방식으로 작업을 증명한 자에게 자체적으로 발행한 재화를 보상하는 절차와 대차 형태의 잔액 가감 절차를 사용하는 전문 형식의 성격을 띄고 있는 기술이다.
한국 공개특허 10-2017-0137388 (공고일자 2017년 12월 13일)
본 발명이 해결하고자 하는 기술적 과제는, 기존의 블록 체인 시스템에서 이용되는 합의 알고리즘에 비하여 트랜잭션 처리 속도를 향상시키면서 합의(consensus)의 신뢰성을 보장할 수 있는 합의 알고리즘을 포함하는 블록 체인 시스템 및 그 블록 체인 시스템에서의 블록 생성 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 중앙집중형의 합의 알고리즘을 탈피하여 탈중앙화된 합의 알고리즘을 포함하는 블록 체인 시스템 및 그 블록 체인 시스템에서의 블록 생성 방법을 제공하는 것이다.
다만, 본 발명이 해결하고자 하는 기술적 과제들은 상기 과제들로 한정되는 것이 아니며, 본 발명의 기술적 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있다.
상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 하드웨어 및 지분증명 합의 알고리즘을 포함하는 블록 체인 시스템은, 기 정해진 사양(specifications) 이상의 하드웨어 환경과 기 정해진 수량 이상의 지분에 기초하여 블록 생성 권한을 갖도록 결정된 복수의 블록 생성 노드, 및 자신의 지분을 이용하여 상기 복수의 블록 생성 노드 중 적어도 하나의 노드에 참여하여 블록 생성 권한의 순위를 결정하는데 기여하는 복수의 지분 참여 노드를 포함하고, 상기 블록 생성 노드의 지분과 상기 블록 생성 노드를 선택한 지분 참여 노드의 지분 및 블록 생성 대기 시간에 기초하여 신규 블록을 생성할 블록 생성 노드를 선정한다.
본 발명에 따른 몇몇 실시예에서, 블록 생성 권한을 갖는 상기 복수의 블록 생성 노드는 기 정해진 사양 이상의 하드웨어, 소프트웨어 및 네트워크 환경에 기초하여 결정될 수 있다.
본 발명에 따른 몇몇 실시예에서, 상기 신규 블록을 생성할 블록 생성 노드는, 상기 블록 생성 노드의 지분과 상기 블록 생성 노드를 선택한 지분 참여 노드의 지분의 합에 상기 블록 생성 대기 시간을 곱한 값을 기초로 하여 선정될 수 있다.
본 발명에 따른 몇몇 실시예에서, 상기 선정된 블록 생성 노드는 상기 신규 블록을 생성하며, 상기 신규 블록 생성 후 상기 선정된 블록 생성 노드의 블록 생성 대기 시간은 0으로 리셋될 수 있다.
본 발명에 따른 몇몇 실시예에서, 상기 신규 블록의 생성에 따른 보상은 블록 생성 노드에 대한 보상 및 각 지분에 대한 보상을 포함할 수 있다.
상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 블록 체인 시스템에서의 블록 생성 방법은, 하드웨어 및 지분증명 합의 알고리즘을 포함하는 블록 생성 방법으로서, 기 정해진 사양(specifications) 이상의 하드웨어 환경과 기 정해진 수량 이상의 지분에 기초하여 블록 생성 권한을 갖는 블록 생성 노드들을 결정하는 블록 생성 노드 결정 단계, 상기 블록 생성 노드가 아닌 지분 참여 노드가 자신의 지분을 이용하여 상기 블록 생성 노드들 중 적어도 하나의 노드에 참여하여 블록 생성 권한의 순위를 결정하는데 기여하는 지분 참여 단계, 및 상기 블록 생성 노드의 지분과 상기 블록 생성 노드를 선택한 지분 참여 노드의 지분 및 블록 생성 대기 시간에 기초하여 신규 블록을 생성할 블록 생성 노드를 선정하는 블록 생성 노드 선정 단계를 포함한다.
본 발명에 따른 몇몇 실시예에서, 상기 블록 생성 노드 결정 단계는, 기 정해진 사양 이상의 하드웨어, 소프트웨어 및 네트워크 환경에 기초하여 상기 블록 생성 노드들을 결정할 수 있다.
본 발명에 따른 몇몇 실시예에서, 상기 블록 생성 노드 선정 단계는, 상기 블록 생성 노드의 지분과 상기 블록 생성 노드를 선택한 지분 참여 노드의 지분의 합에 상기 블록 생성 대기 시간을 곱한 값을 기초로 하여 상기 신규 블록을 생성할 블록 생성 노드를 선정할 수 있다.
본 발명에 따른 몇몇 실시예에서, 상기 선정된 블록 생성 노드는 상기 신규 블록을 생성하며, 상기 신규 블록 생성 후 상기 선정된 블록 생성 노드의 블록 생성 대기 시간은 0으로 리셋될 수 있다.
본 발명에 따른 몇몇 실시예에서, 상기 신규 블록의 생성에 따른 보상은, 상기 신규 블록을 생성한 블록 생성 노드에 대한 보상 및 상기 신규 블록을 생성한 블록 생성 노드의 지분과 상기 신규 블록을 생성한 블록 생성 노드를 선택한 지분 참여 노드의 지분에 대한 보상을 포함할 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명에 따르면 기존의 블록 체인 시스템의 합의 알고리즘에 비하여 불필요한 에너지 낭비를 줄일 수 있고, 부(富)의 편중화 문제를 해결할 수 있으며, 기 결정된 블록 생성 노드들에 합의 과정이 수행되기 때문에 트랜잭션 처리 속도를 향상시킬 수 있다.
또한, 본 발명에 따르면 지분 참여 노드가 소유한 지분을 블록 생성 노드에 참여시켜 블록 생성 권한의 순위를 결정하는데 기여할 수 있으므로 중앙집중형의 합의 알고리즘을 탈피하여 탈중앙화된 합의 알고리즘을 구현할 수 있다.
또한, 본 발명에 따르면 기 설정된 조건만 갖추면 어떠한 노드라도 블록 생성 노드로서 블록 생성을 위한 합의 과정에 참여할 수 있으며, 이에 따라 더 많은 노드들이 합의 과정에 참여함으로써 해당 블록 체인의 신뢰성과 안전성을 향상시킬 수 있다.
다만, 본 발명의 효과는 상기 효과들로 한정되는 것이 아니며, 본 발명의 기술적 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있다.
도 1은 본 발명에 따른 기술적 사상이 적용될 수 있는 블록 체인을 이용한 분산 처리 시스템을 도시한 도면이다.
도 2 및 도 3은 블록 체인 시스템에서 이용되는 블록의 연결을 도시한 블록도이다.
도 4는 본 발명에 따른 블록 생성 노드의 조건을 예시적으로 도시한 도면이다.
도 5는 본 발명에 따른 블록 생성 노드 사이의 합의 과정 및 새로운 블록 생성 노드가 참여하는 경우를 도시한 도면이다.
도 6은 본 발명에 따른 블록 생성 노드와 지분 참여 노드를 도시한 도면이다.
도 7은 본 발명에 따른 블록 체인 시스템에서의 블록 생성에 따른 보상을 예시적으로 도시한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며, 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예들을 보다 상세하게 설명하고자 한다. 도면 상의 동일한 구성요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
블록 체인을 이용한 분산 처리 시스템에서는 각각의 노드에서 발생한 거래 내역(트랜잭션 정보)에 대해 일정 시간대 별로 작성한 거래 내역을 비교한 후 블록 생성에 사용하게 될 거래 내역을 결정하는 합의 알고리즘을 필요로 한다.
이러한 합의 알고리즘을 통해 분산 시스템에 참여한 노드들은 모두가 동의할 수 있는 같은 거래 내역을 가지게 되고 이를 통해 해당 시스템을 신뢰하게 된다.
기존의 블록 체인에 적용된 합의 알고리즘은 PoW라는 작업증명 방식, PoS라는 지분증명 방식, DPoS라는 위임된 지분증명 방식 등 여러가지 방식이 존재한다.
그런데 이러한 합의 알고리즘들은 거래 내역의 발생 빈도가 높거나 참여한 노드 수가 많아지면 블록 생성을 위한 처리 속도가 현저히 떨어지는 방식이거나 해킹 또는 지정 노드들간의 단합과 같은 외부적인 요인에 의해 신뢰가 깨질 수 있는 문제점이 있다.
따라서, 블록 체인을 이용한 분산 시스템에서도 많은 거래 내역과 많은 참여 노드 수에서도 효과적으로 거래 내역을 처리할 수 있으며, 외부 요인으로부터도 시스템의 안전성을 신뢰할 수 있는 새로운 합의 알고리즘이 필요하다.
우선, 기존의 합의 알고리즘의 문제점은 다음과 같다.
(1) PoW(Proof of Work, 작업증명) 방식
블록 생성에 필요한 연산 문제를 제일 먼저 푼 노드에게 블록 생성 권한을 주고, 그 노드가 가지고 있는 거래 내역을 신뢰하는 방식이다. 블록 체인 기술을 제일 먼저 적용한 비트코인에서 채택한 방식으로 작은 시스템에서는 효과적일 수 있느나, 거래 내역이 커지고 노드 수가 많아질수록 블록 생성을 위한 처리 속도가 매우 느려지며 채굴 장비를 갖춘 모든 노드들이 같이 연산 작업을 하기 때문에 비효율적인 에너지 낭비가 발생하게 된다.
(2) PoS(Proof of Stake, 지분증명) 방식
노드들 중 합의 과정에 참여하고자 하는 노드들의 거래 내역을 비교하여 그 중 다수의 거래 내역에 대해 이를 신뢰하는 방식이다. 직접 선거와 유사한 방식이기 때문에 거래 내역에 대한 신뢰도는 매우 높지만 참가한 노드들이 많아지게 되면 처리 속도가 늦어지며, 실시간 처리가 요구되는 서비스에는 적합하지 않은 방식이다.
(3) DPoS(Delegated Proof of Stake, 위임된 지분증명) 방식
하위 노드들로부터 권한을 위임받은 지정된 수의 노드들의 거래 내역을 비교하여 이들 중 다수의 거래 내역을 신뢰하는 방식이다. 간접 선거 방식으로서 지정된 수의 노드만 합의에 참여하기 때문에 처리 속도가 빠르지만, 지정된 노드가 해킹 당할 우려가 있고 지정된 노드들 중 51% 이상의 단합으로 시스템의 신뢰를 깰 수 있는 문제점이 있다.
본 발명에 따르면, 상술한 기존 합의 알고리즘의 문제점을 해결하고, 보다 효율적인 분산 시스템 사용을 위해 POPS(Proof of Power specification and Stake) 방식의 합의 알고리즘을 제안한다.
이는 블록 생성에 참여하기 위해 기 정해진 사양(specification) 이상의 조건을 갖춘 블록 생성 노드와 자신이 선택한 블록 생성 노드의 블록 생성 권한을 높이도록 자신의 지분을 참여시키는 지분 참여 노드로 구성된 합의 알고리즘이다. 이에 관해서는 추후 상술하기로 한다.
도 1은 본 발명에 따른 기술적 사상이 적용될 수 있는 블록 체인을 이용한 분산 처리 시스템을 도시한 도면이다.
도 1을 참조하면 블록 체인을 이용한 분산 처리 시스템(10)은 복수의 노드들(11~17)로 이루어진 분산형 네트워크(distributed network) 시스템이다. 상기 분산형 네트워크(10)를 구성하는 노드들(11~17)은 컴퓨터, 이동 단말기, 전용 전자 장치 등 연산 능력이 있는 전자 장치일 수 있다.
일반적으로 분산형 네트워크(10)는 블록 체인(block chain)이라 불리는 블록(block)의 연결 묶음 내에 모든 참여 노드에 공통으로 알려진 정보를 저장하고 참조할 수 있다. 상기 노드들(11~17)은 상호간 통신이 가능하며 블록 체인을 저장, 관리 및 전파를 담당하는 완전 노드(full node)와 단순하게 트랜잭션에만 참여할 수 있는 간이 노드(light node)로 구분될 수 있다. 본 명세서에서 별다른 설명 없이 노드에 대하여 언급되는 경우, 이는 분산형 네트워크에 참여하며 블록 체인을 생성, 저장 또는 검증하는 동작을 수행하는 완전 노드를 지칭하는 경우가 많으나, 이에 한정되는 것은 아니다.
상기 블록 체인에 연결되어 있는 각 블록(block)들은 일정 기간 내의 거래 내역, 즉 트랜잭션(transaction)들을 포함한다. 상기 노드들은 각각 역할에 따라 블록 체인을 생성, 저장 또는 검증함으로써 트랜잭션들을 관리할 수 있다.
실시 형태에 따라 상기 트랜잭션은 다양한 형태의 거래를 나타낼 수 있다. 일 실시예에서 상기 트랜잭션은 가상 화폐의 소유 상태 및 그 변동을 나타내기 위한 금융 거래에 해당할 수 있다. 다른 실시예에서 상기 트랜잭션은 물건의 소유 상태 및 그 변동을 나타내기 위한 실물 거래에 해당할 수 있다. 상기 분산형 네트워크(10)에서 거래를 수행하는 노드들은 각각의 암호학적 연관관계가 있는 개인키(private key) 및 공개키(public key) 쌍을 가질 수 있다.
도 2 및 도 3은 블록 체인 시스템에서 이용되는 블록의 연결을 도시한 블록도이다.
도 2를 참조하면 블록 체인(20)은 순차적으로 연결된 하나 이상의 블록들(210, 220, 230)의 분산 데이터베이스의 일종이다. 상기 블록 체인(20)은 블록 체인 시스템 내 사용자의 거래 내역을 저장하고 관리하기 위해 사용되며, 상기 블록 체인 시스템의 네트워크에 참여하는 각 노드가 블록을 생성하여 상기 블록 체인(200)에 연결한다. 도 2에는 제한된 수의 블록들(210, 220, 230)이 도시되어 있으나 블록 체인에 포함될 수 있는 블록의 수는 이에 제한되지 아니한다.
상기 블록 체인(20)에 포함된 각 블록은 블록 헤더(211)와 블록 바디(213)를 포함하도록 구성될 수 있다. 상기 블록 헤더(211)는 각 블록들간의 연결 관계를 나타내기 위하여 이전 블록(220)의 해시 값을 포함할 수 있다. 상기 블록 체인(20)이 유효한지 검증하는 과정에서 상기 블록 헤더(211) 내의 연결 관계가 사용된다. 상기 블록 바디(213)는 상기 블록(210)에 저장되고 관리되는 데이터, 예를 들어 트랜잭션 리스트 또는 트랜잭션 체인을 포함할 수 있다.
도 3을 참조하면, 상기 블록 헤더(211)는 이전 블록의 해시(2112), 현재 블록의 해시(2113), 넌스(Nonce)(2114)를 포함할 수 있다. 또한, 상기 블록 헤더(211)는 블록 내의 트랜잭션 리스트의 해시를 나타내는 루트(2115)를 포함할 수 있다.
전술된 바와 같이, 상기 블록 체인(20)은 연결된 하나 이상의 블록들을 포함할 수 있다. 상기 하나 이상의 블록들은 상기 블록 헤더(211) 내의 해시 값에 기초하여 연결된다. 상기 블록 헤더(211)에 포함된 이전 블록의 해시 값(2112)은 직전 블록(220)에 대한 해시 값으로서 직전 블록(220)에 포함된 현재 해시(2213)와 동일한 값이다. 상기 하나 이상의 블록들은 각 블록 헤더 내의 이전 블록의 해시 값에 의하여 연쇄적으로 연결된다. 상기 분산형 네트워크에 참여하는 노드들은 상기 하나 이상의 블록들에 포함된 이전 블록의 해시 값에 기반하여 블록의 유효성을 검증하므로 악의적인 단일 노드가 이미 생성된 블록의 내용을 위조 또는 변조하는 행위가 불가능하다.
상기 블록 바디(213)는 트랜잭션 리스트(2131)를 포함할 수 있다. 상기 트랜잭션 리스트(2131)는 블록 체인 기반의 거래의 목록이다. 예를 들면, 상기 트랜잭션 리스트(2131)는 상기 블록 체인 기반의 금융 시스템에서 이루어진 금융 거래에 대한 기록을 포함할 수 있다. 상기 트랜잭션 리스트(2131)는 트리(tree) 형태로 표현될 수 있으며, 예를 들어, 사용자 A가 사용자 B에게 전송한 금액을 목록 형태로 기록하며, 블록 내의 저장 길이는 현재 블록에 포함된 트랜잭션의 수에 기초하여 증감될 수 있다.
그리고, 블록(210)은 블록 헤더(211)와 블록 바디(213)에 포함된 정보 이외의 기타 정보(2116)를 포함할 수 있다.
분산형 네트워크에 참여하는 노드들은 동일한 블록 체인을 가지며, 블록에는 동일한 트랜잭션이 저장된다. 트랜잭션 목록이 포함된 블록이 네트워크에 공유되므로 모든 참여자가 검증할 수 있다.
도 4는 본 발명에 따른 블록 생성 노드와 지분 참여 노드를 도시한 도면이다.
도 4를 참조하면, 본 발명에 따른 하드웨어 및 지분증명 합의 알고리즘을 포함하는 블록 체인 시스템은, 복수의 블록 생성 노드(100, 200), 복수의 지분 참여 노드(101, 102, 103, 201, 202)를 포함한다.
블록 생성 노드란, 기 정해진 사양(specifications) 이상의 하드웨어 환경과 기 정해진 수량 이상의 지분을 갖고 있으며, 이에 기초하여 블록 생성 권한을 갖도록 결정된 노드를 의미한다.
예시적으로, 블록 생성 노드(100 또는 200)는 기 정해진 사양 이상의 하드웨어 환경, 소프트웨어 환경 및 네트워크 환경에 기초하여 결정될 수 있다. 이러한 조건들이 기 정해진 사양 이상이 되어야만 블록 생성 노드로 결정되는 것은 전체 트랜잭션 처리 속도 향상을 위함이다. 왜냐하면, 모든 일반 노드가 합의 과정에 같이 참여할 경우, 일반 노드의 느린 하드웨어/소프트웨어/네트워크 환경에 의해 신속한 합의 내역을 도출하기 어렵고 이로 인해 결국 전체 트랜잭션 처리 속도가 느려지기 때문이다. 이를 방지하기 위해 기 정해진 사양 이상의 하드웨어/소프트웨어/네트워크 환경을 블록 생성 노드를 결정하는데 요구한다.
블록 생성 노드(100 또는 200)에 요구되는 상기 조건들에 의해 블록 생성 노드들 사이에서 신속하게 합의 내역을 도출할 수 있고, 이를 통해 블록 체인 시스템의 전체 트랜잭션 처리 속도를 향상시킬 수 있다.
이러한 빠른 트랜잭션 처리 속도는 본 발명에 따른 블록 체인 기술을 더욱 다양한 분야에서 활용할 수 있도록 한다.
상술한 조건들에 기초한 합의 알고리즘은 위임된 지분증명 알고리즘(DPoS)와 비교될 수 있으나, 본 발명에 따른 블록 체인 기술에서는 탈중앙화를 위해 지분 참여 노드를 합의 과정에 참여시키며, 또한 블록 생성 노드의 수도 정해진 것이 아니라 기 정해진 일정한 조건 이상만 갖추면 어떠한 노드라도 블록 생성을 위한 합의 과정에 참여할 수 있어서 분산 시스템의 탈중앙화를 구현할 수 있도록 한다. 이에 따라, 더 많은 노드들이 합의 과정에 참여할 수 있으며, 해당 블록 체인 시스템이 더 높은 신뢰성과 안전성을 가질 수 있도록 한다.
지분 참여 노드(101, 102, 103, 201, 202)는 자신의 지분을 이용하여 복수의 블록 생성 노드(100, 200) 중 적어도 하나의 노드에 참여하여 블록 생성 권한의 순위를 결정하는데 기여할 수 있다.
구체적으로, 블록 생성 노드로서의 조건을 갖추지 못한 일반 노드들은 블록을 생성할 수 있는 블록 생성 노드(100, 200) 중 적어도 하나를 선택하여 합의 과정에 자신의 지분을 참여시킬 수 있다.
본 발명에 따른 블록 체인 시스템에서 합의 알고리즘에는 블록 생성 지수라는 개념을 이용하는데, 예시적으로 블록 생성 지수는 [(블록 생성 노드의 지분)+(지분 참여 노드들의 지분의 합)]×(블록 생성 대기 시간)으로 정의될 수 있다. 즉, 블록 생성 노드(100, 200) 중에서 블록을 생성하는 노드는 블록 생성 권한의 순위가 높은 블록 생성 노드로 선정되는데 각 블록 생성 노드의 블록 생성 권한은 블록 생성 지수를 연산한 값에 기초하여 결정된다. 블록 생성 지수를 연산할 때 지분 참여 노드들의 지분의 합이 포함되기 때문에, 일반 노드들은 블록 생성 노드(100, 200) 중 적어도 하나를 선택하여 자신의 지분을 참여시키고 지분 참여 노드(101, 102, 103, 201, 202)가 될 수 있다. 도 4에서는 제1 내지 제3 지분 참여 노드(101, 102, 103)는 제1 블록 생성 노드(100)에 지분을 참여한 것으로 도시되어 있고, 제4 및 제5 지분 참여 노드(201, 202)는 제2 블록 생성 노드(200)에 지분을 참여한 것으로 도시되어 있다.
지분 참여 노드들은 자신이 선택한 블록 생성 노드의 '블록 생성 지수'를 높임으로써 해당 블록 생성 노드가 더 많은 블록 생성 기회를 갖도록 할 수 있고, 블록 생성을 위한 합의 과정에 참여할 수 있으며, 후술하는 바와 같이 합의 과정 참여에 따른 보상도 받을 수 있다.
도 5는 본 발명에 따른 블록 생성 노드의 조건을 예시적으로 도시한 도면이다. 도 6은 본 발명에 따른 블록 생성 노드 사이의 합의 과정 및 새로운 블록 생성 노드가 참여하는 경우를 도시한 도면이다.
도 5를 참조하면, 본 발명에 따른 블록 생성 노드는 빠른 합의 과정을 위해서 기 정해진 사양 이상의 하드웨어 환경, 소프트웨어 환경, 네트워크 환경 등을 갖추고 있어야 한다. 다만, 본 발명은 이에 제한되는 것은 아니며, 필요에 따라 블록 생성 노드가 갖추어야 할 조건은 가감될 수 있다.
블록 생성 노드를 결정하는 조건은 블록 체인 시스템 내에서 블록 생성 노드들 사이에 빠른 합의를 도출해 낼 수 있는 사양 이상으로 결정되며, 이러한 사양의 수준은 개별 블록 체인 시스템마다 다를 수 있다.
도 6을 참조하면, 블록 생성 노드들 사이의 합의 과정 및 새로운 블록 생성 노드가 참여할 수 있음을 알 수 있다.
블록 생성 노드는 블록을 생성하는 중요한 역할을 하기 때문에 그에 따른 책임도 필요하다. 따라서, 기 정해진 수량 이상의 지분이 담보되어야 한다. 이러한 담보 지분은 블록 생성 노드들 사이에서 블록 생성 권한의 순위를 결정하는데 이용되며, 잘못된 블록 생성에 대한 패널티 적용에도 이용될 수 있다.
이러한 블록 생성 노드들 사이에서 적용되는 합의 알고리즘은 기 정해진 조건을 갖춘 노드만 블록 생성에 참여할 수 있기 때문에 권력의 중앙화 또는 부의 집중화에 대한 문제를 갖게 되며, 이를 해소하기 위해 본 발명에 따른 블록 체인 시스템에서는 일반 노드들이 자신의 지분을 갖고 지분 참여 노드로서 합의 과정에 참여할 수 있도록 한다.
이러한 지분 참여는 어떠한 노드라도 자신의 일정 지분을 이용하여 합의 과정에 참여할 수 있도록 하며, 모든 노드들에게 개방된 합의 과정을 구현할 수 있도록 한다.
본 발명에 따른 블록 체인 시스템에서 블록 생성 권한의 순위가 가장 높아 블록 생성 노드로 선정된 노드는 신규 블록을 생성하며, 신규 블록 생성 후에는 블록을 생성한 블록 생성 노드의 블록 생성 대기 시간은 0으로 리셋된다. 블록 생성 권한의 순위를 결정하는 블록 생성 지수에서 블록 생성 대기 시간의 값을 곱하기 때문에 블록 생성 대기 시간이 0으로 리셋된 블록 생성 노드의 블록 생성 지수는 가장 낮게 되며, 시간이 지나면서 다시 블록 생성 지수가 높아지게 된다.
본 발명에 따른 블록 체인 시스템에서 블록 생성 지수의 개념을 이용하여 블록을 생성하며, 일정 규칙에 의해 정해진 블록 생성 시간이 되었을 때 블록 생성 지수가 가장 높은 블록 생성 노드가 신규 블록을 생성하는 블록 생성 노드로 선정되게 된다.
도 7은 본 발명에 따른 블록 체인 시스템에서의 블록 생성에 따른 보상을 예시적으로 도시한 도면이다.
도 7을 참조하면, 본 발명에 따른 블록 체인 시스템에서의 블록 생성에 따른 보상이 예시적으로 나타나 있으며, 본 발명에 따른 POPS 합의 알고리즘에서는 신규 블록을 생성한 블록 생성 노드가 많은 보상을 받게 되며, 블록 생성 노드 및 지분 참여 노드는 각각의 지분에 비례하여 보상을 나눠서 받게 된다. 이러한 보상 체계는 이에 한정되지 않으며, 본 발명에 따른 블록 체인 시스템에서는 다른 방식으로 결정된 보상 체계가 적용될 수도 있다.
전술된 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해되어야 하며, 본 발명의 범위는 전술된 상세한 설명보다는 후술될 청구범위에 의해 나타내어질 것이다. 그리고 이 청구범위의 의미 및 범위는 물론, 그 등가개념으로부터 도출되는 모든 변경 및 변형 가능한 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10: 분산 처리 시스템
11~17: 노드들
20: 블록 체인
100: 제1 블록 생성 노드
101~103: 제1 내지 제3 지분 참여 노드
200: 제2 블록 생성 노드
201, 202: 제4 및 제5 지분 참여 노드

Claims (10)

  1. 기 정해진 사양(specifications) 이상의 하드웨어 환경과 기 정해진 수량 이상의 지분에 기초하여 블록 생성 권한을 갖도록 결정된 복수의 블록 생성 노드; 및
    자신의 지분을 이용하여 상기 복수의 블록 생성 노드 중 적어도 하나의 노드에 참여하여 블록 생성 권한의 순위를 결정하는데 기여하는 복수의 지분 참여 노드;를 포함하고,
    상기 블록 생성 노드의 지분과 상기 블록 생성 노드를 선택한 지분 참여 노드의 지분 및 블록 생성 대기 시간에 기초하여 신규 블록을 생성할 블록 생성 노드를 선정하는, 하드웨어 및 지분증명 합의 알고리즘을 포함하는 블록 체인 시스템.
  2. 제 1항에 있어서,
    블록 생성 권한을 갖는 상기 복수의 블록 생성 노드는 기 정해진 사양 이상의 하드웨어 환경, 소프트웨어 환경 및 네트워크 환경, 및 기 정해진 수량 이상의 지분에 기초하여 결정된, 하드웨어 및 지분증명 합의 알고리즘을 포함하는 블록 체인 시스템.
  3. 제 1항에 있어서,
    상기 신규 블록을 생성할 블록 생성 노드는, 상기 블록 생성 노드의 지분과 상기 블록 생성 노드를 선택한 지분 참여 노드의 지분의 합에 상기 블록 생성 대기 시간을 곱한 값을 기초로 하여 선정된, 하드웨어 및 지분증명 합의 알고리즘을 포함하는 블록 체인 시스템.
  4. 제 3항에 있어서,
    상기 선정된 블록 생성 노드는 상기 신규 블록을 생성하며, 상기 신규 블록 생성 후 상기 선정된 블록 생성 노드의 블록 생성 대기 시간은 0으로 리셋되는, 하드웨어 및 지분증명 합의 알고리즘을 포함하는 블록 체인 시스템.
  5. 제 4항에 있어서,
    상기 신규 블록의 생성에 따른 보상은 블록 생성 노드에 대한 보상 및 각 지분에 대한 보상을 포함하는, 하드웨어 및 지분증명 합의 알고리즘을 포함하는 블록 체인 시스템.
  6. 블록 체인 시스템에 적용되는 하드웨어 및 지분증명 합의 알고리즘을 포함하는 블록 생성 방법으로서,
    기 정해진 사양(specifications) 이상의 하드웨어 환경과 기 정해진 수량 이상의 지분에 기초하여 블록 생성 권한을 갖는 블록 생성 노드들을 결정하는 블록 생성 노드 결정 단계;
    상기 블록 생성 노드가 아닌 지분 참여 노드가 자신의 지분을 이용하여 상기 블록 생성 노드들 중 적어도 하나의 노드에 참여하여 블록 생성 권한의 순위를 결정하는데 기여하는 지분 참여 단계; 및
    상기 블록 생성 노드의 지분과 상기 블록 생성 노드를 선택한 지분 참여 노드의 지분 및 블록 생성 대기 시간에 기초하여 신규 블록을 생성할 블록 생성 노드를 선정하는 블록 생성 노드 선정 단계;를 포함하는, 블록 체인 시스템에서의 블록 생성 방법.
  7. 제 6항에 있어서,
    상기 블록 생성 노드 결정 단계는, 기 정해진 사양 이상의 하드웨어 환경, 소프트웨어 환경 및 네트워크 환경, 및 기 정해진 수량 이상의 지분에 기초하여 상기 블록 생성 노드들을 결정하는, 블록 체인 시스템에서의 블록 생성 방법.
  8. 제 6항에 있어서,
    상기 블록 생성 노드 선정 단계는, 상기 블록 생성 노드의 지분과 상기 블록 생성 노드를 선택한 지분 참여 노드의 지분의 합에 상기 블록 생성 대기 시간을 곱한 값을 기초로 하여 상기 신규 블록을 생성할 블록 생성 노드를 선정하는, 블록 체인 시스템에서의 블록 생성 방법.
  9. 제 8항에 있어서,
    상기 선정된 블록 생성 노드는 상기 신규 블록을 생성하며, 상기 신규 블록 생성 후 상기 선정된 블록 생성 노드의 블록 생성 대기 시간은 0으로 리셋되는, 블록 체인 시스템에서의 블록 생성 방법.
  10. 제 9항에 있어서,
    상기 신규 블록의 생성에 따른 보상은, 상기 신규 블록을 생성한 블록 생성 노드에 대한 보상 및 상기 신규 블록을 생성한 블록 생성 노드의 지분과 상기 신규 블록을 생성한 블록 생성 노드를 선택한 지분 참여 노드의 지분에 대한 보상을 포함하는, 블록 체인 시스템에서의 블록 생성 방법.
KR1020180043466A 2018-04-13 2018-04-13 하드웨어 및 지분증명 합의 알고리즘을 포함하는 블록 체인 시스템과 그 블록 체인 시스템에서의 블록 생성 방법 KR102050087B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180043466A KR102050087B1 (ko) 2018-04-13 2018-04-13 하드웨어 및 지분증명 합의 알고리즘을 포함하는 블록 체인 시스템과 그 블록 체인 시스템에서의 블록 생성 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180043466A KR102050087B1 (ko) 2018-04-13 2018-04-13 하드웨어 및 지분증명 합의 알고리즘을 포함하는 블록 체인 시스템과 그 블록 체인 시스템에서의 블록 생성 방법

Publications (2)

Publication Number Publication Date
KR20190119921A KR20190119921A (ko) 2019-10-23
KR102050087B1 true KR102050087B1 (ko) 2019-11-28

Family

ID=68461142

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180043466A KR102050087B1 (ko) 2018-04-13 2018-04-13 하드웨어 및 지분증명 합의 알고리즘을 포함하는 블록 체인 시스템과 그 블록 체인 시스템에서의 블록 생성 방법

Country Status (1)

Country Link
KR (1) KR102050087B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210080818A (ko) 2019-12-23 2021-07-01 서강대학교산학협력단 에이전트 기반의 블록체인 네트워크 및 상기 네트워크의 전처리 방법
KR20220006834A (ko) 2020-07-09 2022-01-18 주식회사 한빛소프트 게임 클라이언트의 참여 증명 기반 블록체인 시스템 및 이를 이용한 블록 보상 합의 방법
US11461312B2 (en) 2020-03-28 2022-10-04 Wipro Limited Method and system for performing adaptive consensus in a distributed ledger network

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102258987B1 (ko) * 2019-11-20 2021-05-31 주식회사피플카 블록체인 네트워크의 트랜잭션 처리 방법
KR102551530B1 (ko) * 2020-09-03 2023-07-04 주태영 블록체인 기반 디지털 자산 거래 시스템 및 방법
KR102348072B1 (ko) * 2021-05-31 2022-01-06 조민규 양방향 소셜 블록체인 플랫폼 및 이를 이용한 소셜코인 발행 및 결제방법
KR102580928B1 (ko) * 2022-01-20 2023-09-21 주식회사 코스콤 블록체인 데이터 공유 시스템 및 그 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170137388A (ko) 2016-06-03 2017-12-13 (주) 블록체인오에스 블록체인 기술을 이용한 무결성 보장 방법

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Tuyet Duong 외 2인, "2-hop Blockchain: Combining Proof-of-Work and Proof-of-Stake Securely" (2017.04.15.)
Y.Gao 외 1인, "A Proof of Stake Sharding Protocol for Scalable Blockchains", APAN (2017.12.30.)
Zibin Zheng 외 4인, "An Overview of Blockchain Technology: Architecture, Consensus, and Future Trends", IEEE (2017.06.30.)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210080818A (ko) 2019-12-23 2021-07-01 서강대학교산학협력단 에이전트 기반의 블록체인 네트워크 및 상기 네트워크의 전처리 방법
US11461312B2 (en) 2020-03-28 2022-10-04 Wipro Limited Method and system for performing adaptive consensus in a distributed ledger network
KR20220006834A (ko) 2020-07-09 2022-01-18 주식회사 한빛소프트 게임 클라이언트의 참여 증명 기반 블록체인 시스템 및 이를 이용한 블록 보상 합의 방법

Also Published As

Publication number Publication date
KR20190119921A (ko) 2019-10-23

Similar Documents

Publication Publication Date Title
KR102050087B1 (ko) 하드웨어 및 지분증명 합의 알고리즘을 포함하는 블록 체인 시스템과 그 블록 체인 시스템에서의 블록 생성 방법
Hazari et al. A parallel proof of work to improve transaction speed and scalability in blockchain systems
JP7428765B2 (ja) ブロックチェーン上のセキュアなピアツーピア通信の方法
US11669811B2 (en) Blockchain-based digital token utilization
US10965446B2 (en) Blockchain-based automated user matching
Bacon et al. Blockchain demystified: a technical and legal introduction to distributed and centralized ledgers
KR20190093012A (ko) 블록 체인 시스템에서의 블록 생성 및 검증 방법
CN108200203B (zh) 基于双层网络的区块链系统
Buterin A next-generation smart contract and decentralized application platform
Kaur et al. Blockchain: A path to the future
Buterin Ethereum white paper
WO2017082238A1 (ja) ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム
WO2017082237A1 (ja) ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム
KR101827373B1 (ko) 채굴 제한을 위한 합의 알고리즘을 포함하는 블록윈도우 모듈 및 관리 서버 그리고 가상화폐 거래 시스템 및 방법
US20190164150A1 (en) Using Blockchain Ledger for Selectively Allocating Transactions to User Accounts
Sharma et al. Cryptocurrency mechanisms for blockchains: models, characteristics, challenges, and applications
US20200167770A1 (en) Blockchain implementation across multiple organizations
Komalavalli et al. Overview of blockchain technology concepts
CN110730963A (zh) 用于信息保护的系统和方法
Harshavardhan et al. Blockchain technology in cloud computing to overcome security vulnerabilities
Khettry et al. A detailed review on blockchain and its applications
KR101918446B1 (ko) 이중보안 블록체인 인증시스템 및 그 방법
KR20190093011A (ko) 보안성이 강화된 블록 체인 시스템 및 이중 블록 체인 구조를 이용한 데이터 블록 생성방법
Zhen et al. A dynamic state sharding blockchain architecture for scalable and secure crowdsourcing systems
Cai et al. Introduction to blockchain basics

Legal Events

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