KR20190067581A - 블록체인 트랜잭션 분산 처리 장치 및 방법 - Google Patents

블록체인 트랜잭션 분산 처리 장치 및 방법 Download PDF

Info

Publication number
KR20190067581A
KR20190067581A KR1020170167662A KR20170167662A KR20190067581A KR 20190067581 A KR20190067581 A KR 20190067581A KR 1020170167662 A KR1020170167662 A KR 1020170167662A KR 20170167662 A KR20170167662 A KR 20170167662A KR 20190067581 A KR20190067581 A KR 20190067581A
Authority
KR
South Korea
Prior art keywords
block
node
shard
local
committee
Prior art date
Application number
KR1020170167662A
Other languages
English (en)
Inventor
유현경
임종철
곽지영
김선미
타이광퉁
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020170167662A priority Critical patent/KR20190067581A/ko
Priority to US16/170,132 priority patent/US20190182313A1/en
Publication of KR20190067581A publication Critical patent/KR20190067581A/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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • 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
    • 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] 
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

지역적으로 구분된 도메인 기반의 적어도 하나의 샤드를 포함하는 네트워크에 위치하는 노드가 블록체인 트랜잭션을 분산 처리하는 방법으로서, 동일한 샤드 내에 포함된 복수의 노드를 포함하는 동적 커미티(committee) 를 생성하는 단계; 생성된 커미티를 통해 트랜잭션을 검증하고 트랜잭션 블록을 생성하는 단계; 및 상기 생성된 트랜잭션 블록을 상기 노드가 속한 로컬 장부에 저장하는 단계를 포함하는 블록체인 트랜잭션 분산 처리 방법이 개시된다.

Description

블록체인 트랜잭션 분산 처리 장치 및 방법{APPARATUS AND METHOD FOR DISTRIBUTED PROCESSING OF BLOCKCHAIN TRANSACTIONS}
본 발명은 블록체인 트랜잭션(transaction)을 분산 처리하는 장치 및 방법에 관한 것으로, 더욱 상세하게는 지역적으로 구분된 도메인을 기반으로 샤드를 구성하여 트랜잭션을 동시에 처리하는 블록체인 트랜잭션 분산 처리 장치 및 방법에 관한 것이다.
블록체인은 네트워크 상에서 일어나는 거래 정보가 암호화되어 해당 네트워크에 있는 노드들간 공유되는 디지털 분산 장부이다. 블록체인의 거래 정보는 중앙 집중화된 시스템에 의존하지 않고 P2P 네트워크를 기반으로 노드들이 검증하고 관리한다.
블록체인(blockchain)은 첫 번째 암호화폐였던 비트코인에서 나타나 각광받은 개념으로, 모든 암호화폐는 각각의 블록체인을 가지고 있다. 암호화폐는 화폐를 따로 조폐하는 중앙은행이 존재하지 않고 일정한 주기마다 블록(Block)을 찾아내고 보상을 받아가는 식으로 화폐가 생성된다. 블록은 해당 암호화폐가 사용하는 해시 함수로 이루어져 있으며 사용자는 컴퓨터의 연산 능력을 이용해 일일이 맞는 함수를 대입하는 식으로 해시를 찾게 된다. 이러한 과정을 채굴(mining)이라 한다.
이러한 블록체인 기술은 공인된 신뢰 기관 운영을 위한 자원이 불필요하고, 모든 거래 기록이 암호화되어 공개되기 때문에 투명한 거래를 제공하는 장점이 있다. 그러나 분산되어 있는 개별 노드들은 전체 블록체인을 저장해야 할 뿐만 아니라, 트랜잭션이 증가하면, 이를 동시에 처리하기 위해 네트워크 전송 지연이 발생하고 이에 따른 처리 비용이 증가하게 된다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 지역적으로 구분된 도메인 기반의 샤딩을 이용해 블록체인 트랜잭션 분산 처리 방법을 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 상기 블록체인 트랜잭션 분산 처리 방법을 이용하는 블록체인 트랜잭션 분산 처리 장치를 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 트랜잭션 분산 처리 방법은 지역적으로 구분된 도메인 기반의 적어도 하나의 샤드를 포함하는 네트워크에 위치하는 노드가 블록체인 트랜잭션을 분산 처리하는 방법으로서, 동일한 샤드 내에 포함된 복수의 노드를 포함하는 동적 커미티(committee) 를 생성하는 단계; 생성된 커미티를 통해 트랜잭션을 검증하고 트랜잭션 블록을 생성하는 단계; 및 상기 생성된 트랜잭션 블록을 상기 노드가 속한 로컬 장부에 저장하는 단계를 포함할 수 있다.
상기 샤드는, 지역적으로 일정 범위 내에 위치하는 노드들을 포함하는 적어도 하나의 로컬 샤드 및 서로 다른 로컬 샤드에 속하는 복수의 노드를 포함하는 글로벌 샤드를 포함할 수 있다.
상기 블록체인 트랜잭션 분산 처리 방법은, 상기 네트워크 상의 도메인 정보에 따라 상기 노드가 로컬 노드인지 글로벌 노드인지 판단하는 단계를 더 포함할 수 있다.
상기 동일한 샤드 내에 포함된 복수의 노드를 포함하는 동적 커미티(committee) 를 생성하는 단계는, 상기 노드가 로컬 노드인지 글로벌 노드인지에 따라 로컬 커미티 또는 글로벌 커미티를 생성하는 단계를 포함할 수 있다.
상기 동일한 샤드 내에 포함된 복수의 노드를 포함하는 동적 커미티(committee) 를 생성하는 단계는, 초기 에포크 플래그 블록을 참조하여 작업증명(PoW: Proof of Work) 블록을 생성하는 단계; 다른 노드와의 통신을 통해 작업증명블록을 생성한 노드를 파악하는 단계; 커미티 계약(contract)을 브로드캐스트하여 커미티 멤버에 대한 투표를 수행하는 단계; 및 투표 결과에 따라 커미티 멤버를 확정하는 단계를 포함할 수 있다.
상기 블록체인 트랜잭션 분산 처리 방법은, 상기 노드가 상기 커미티의 최초 리더인 경우 상기 커미티를 위한 에포크 플래그 블록을 생성하는 단계를 더 포함할 수 있다.
상기 생성된 에포크 플래그 블록은 상기 커미티 멤버가 아닌 노드에 의해 참조되어 작업증명 블록을 생성하는 데 사용될 수 있다.
상기 커미티 계약은 작업증명블록 생성노드의 목록을 포함하고, 시퀀스 넘버, 에포크 플래그 블록의 해시 값, 작업증명블록 생성노드의 목록, 작업증명 블록의 해시 값, 및 서명 중 적어도 하나를 더 포함할 수 있다.
상기 생성된 트랜잭션 블록을 상기 노드가 속한 로컬 장부에 저장하는 단계는, 상기 노드가 글로벌 노드인 경우, 상기 글로벌 샤드가 아니라 상기 글로벌 노드가 속한 로컬 샤드의 로컬 장부에 저장하는 단계를 포함할 수 있다.
상기 다른 목적을 달성하기 위한 본 발명의 일 실시예에 따른 블록체인 트랜잭션 분산 처리 장치는, 지역적으로 구분된 도메인 기반의 적어도 하나의 샤드를 포함하는 네트워크에 위치하는 노드가 블록체인 트랜잭션을 분산 처리하는 장치로서, 적어도 하나의 블록체인 트랜잭션 블록을 저장하는 로컬 장부; 프로세서; 및 상기 프로세서를 통해 실행되는 적어도 하나의 명령을 저장하는 메모리를 포함할 수 있다.
상기 적어도 하나의 명령은, 동일한 샤드 내에 포함된 복수의 노드를 포함하는 동적 커미티(committee) 를 생성하도록 하는 명령; 생성된 커미티를 통해 트랜잭션을 검증하고 트랜잭션 블록을 생성하도록 하는 명령; 및 상기 생성된 트랜잭션 블록을 상기 로컬 장부에 저장하도록 하는 명령을 포함할 수 있다.
상기 샤드는, 지역적으로 일정 범위 내에 위치하는 노드들을 포함하는 적어도 하나의 로컬 샤드; 및 서로 다른 로컬 샤드에 속하는 복수의 노드를 포함하는 글로벌 샤드를 포함할 수 있다.
상기 적어도 하나의 명령은, 상기 네트워크 상의 도메인 정보에 따라 상기 노드가 로컬 노드인지 글로벌 노드인지 판단하도록 하는 명령을 더 포함할 수 있다.
상기 동일한 샤드 내에 포함된 복수의 노드를 포함하는 동적 커미티(committee) 를 생성하도록 하는 명령은, 상기 노드가 로컬 노드인지 글로벌 노드인지에 따라 로컬 커미티 또는 글로벌 커미티를 생성하는 명령을 포함할 수 있다.
상기 동일한 샤드 내에 포함된 복수의 노드를 포함하는 동적 커미티(committee) 를 생성하도록 하는 명령은, 초기 에포크 플래그 블록을 참조하여 작업증명(PoW: Proof of Work) 블록을 생성하도록 하는 명령; 다른 노드와의 통신을 통해 작업증명블록을 생성한 노드를 파악하도록 하는 명령; 커미티 계약(contract)을 브로드캐스트하여 커미티 멤버에 대한 투표를 수행하도록 하는 명령; 및 투표 결과에 따라 커미티 멤버를 확정하도록 하는 명령을 포함할 수 있다.
상기 적어도 하나의 명령은, 상기 노드가 상기 커미티의 최초 리더인 경우 상기 커미티를 위한 에포크 플래그 블록을 생성하도록 하는 명령을 더 포함할 수 있다.
상기 생성된 에포크 플래그 블록은 상기 커미티 멤버가 아닌 노드에 의해 참조되어 작업증명 블록을 생성하는 데 사용될 수 있다.
상기 커미티 계약은 작업증명블록 생성노드의 목록을 포함하고, 시퀀스 넘버, 에포크 플래그 블록의 해시 값, 작업증명블록 생성노드의 목록, 작업증명 블록의 해시 값, 및 서명 중 적어도 하나를 더 포함할 수 있다.
상기 생성된 트랜잭션 블록을 상기 노드가 속한 로컬 장부에 저장하도록 하는 명령은, 상기 노드가 글로벌 노드인 경우, 글로벌 샤드가 아니라 상기 글로벌 노드가 속한 로컬 샤드의 로컬 장부에 저장하도록 하는 명령을 포함할 수 있다.
상기 로컬 장부에 저장된 트랜잭션 블록은, 로컬 샤드간 연동과 연계된 글로벌 트랜잭션 및 동일한 로컬 샤드 내에서 이루어지는 트랜잭션으로부터 비롯된 트랜잭션 블록 중 적어도 하나의 블록을 포함할 수 있다.
상기와 같은 본 발명의 실시예들에 따르면, 지역적으로 구분된 도메인을 기반으로 샤드(shard)를 구성하여 샤드별로 동시에 트랜잭션을 검증하고 블록을 생성하여 관리함으로써 IoT 환경에서 대량의 데이터를 신속하게 처리할 수 있다.
그에 따라 본 발명은 블록체인 분산 처리 시스템의 처리 성능을 향상시키고, 확장성을 확보할 수 있다.
도 1은 본 발명에 적용되는 블록체인의 간략 구조도이다.
도 2는 본 발명의 일 실시예에 따른 도메인 기반 샤딩을 제공하는 블록체인 시스템의 개념도이다.
도 3은 본 발명의 일 실시예에 따른 글로벌 샤드 및 로컬 커미티의 개념도이다.
도 4는 본 발명의 일 실시예에 따른 커미티 구성에 대한 개념도이다.
도 5는 본 발명의 일 실시예에 따른 커미티 구성예를 도시한다.
도 6은 본 발명의 일 실시예에 따라 동적 커미티를 구성하는 방법의 동작 순서도이다.
도 7은 본 발명의 일 실시예에 따른 로컬 트랜잭션의 처리 개념도이다.
도 8은 본 발명의 일 실시예에 따른 글로벌 트랜잭션의 처리 개념도이다.
도 9는 본 발명의 일 실시예에 따른 블록체인 트랜잭션 분산 처리 장치의 블록 구성도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. "및/또는"이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명이 적용되는 블록체인의 간략 구조도이다.
블록체인은 암호화폐로 거래할 때 발생할 수 있는 해킹을 막기 위해 만들어진 기술로 공공 거래 장부라고도 한다. 기존에 중앙 서버에 거래기록을 보관하는 것과는 달리, 블록체인은 모든 사용자에게 거래기록을 보여주며 서로 비교해 위조를 막는 방식을 사용한다.
블록체인에서 각 블록은 수많은 대기 거래를 보관하고 승인하는 블록체인 내의 기록이다. 평균적으로 대략 10분마다 거래를 포함하는 새로운 블록이 채굴(mining)을 통해 블록체인에 더해진다. 채굴(mining)은 컴퓨터 하드웨어가 비트코인 네트워크의 거래 승인 및 보안 강화를 위한 수학적 계산을 하도록 하는 처리과정이다. 비트코인 마이너(miner)는 제공하는 서비스의 댓가로 그들이 승인하는 거래의 거래 수수료 및 새롭게 생성된 비트코인을 받는다. 비트코인 채굴 시장에서는 얼마만큼의 계산을 했느냐에 따라 보상이 배분된다.
블록은 일종의 데이터 패킷으로 몇 가지 정보를 담고 있으며, 헤더(header)와 바디(body)로 이루어져 있다. 블록 헤더는 현재 비트코인 프로그램의 버전, 이전 블록을 해싱한 해시값, 현재 블록의 거래내역들을 모두 해싱한 해시값, 현재 블록의 타임스템프, 난이도(해시 목표값), 논스(nonce) 값을 포함할 수 있다. 블록의 바디는 해당 블록안에 산입된 모든 이체내역들을 포함한다.
블록 체인은 머클 트리(merkle tree) 구조를 기반으로 할 수 있다. 머클 트리는 해시 트리라고도 불리는 트리 구조의 일종으로, 리프 노드는 파일 등의 데이터를 가리키고, 모든 비-리트 노드의 이름이 자식 노드들 이름의 해시로 구성되는 트리구조이다. 머클 트리는 P2P 시스템 등에서 보낸 자료의 유효성을 검사할 때 주로 사용된다.
도 1을 참조하면, 블렉체인에서 각 블록의 헤더(10-1, 10-2, 10-3)는 일련의 트랜잭션들과 연관된 머클 루트(Merckle Root)를 포함하여, 이전 블록 헤더의 해시 값을 포함한다. 여기서, 트랜잭션 ID는 트랜잭션의 해시 값으로 이루어지고, 머클 트리는 이러한 해시 값들로 구성된다.
이처럼, 블록 체인의 블록에는 해당 블록이 발견되기 이전에 사용자들에게 전파되었던 모든 거래 내역이 기록되어 있고, 이것은 P2P 방식으로 모든 사용자에게 똑같이 전송되므로 거래 내역을 임의로 수정하거나 누락시킬 수 없다.
도 2는 본 발명의 일 실시예에 따른 도메인 기반 샤딩을 제공하는 블록체인 시스템의 개념도이다.
본 발명에서는 트랜잭션 분산 처리를 위해 도메인 기반 샤딩을 제공하는 블록체인 시스템을 제공하며, 도 2에서는 본 발명의 일 실시예에 따라 도메인 기반 샤딩을 제공하는 블록체인 시스템이 개념을 도시한다.
블록체인은 P2P(Peer-to-Peer) 네트워크를 기반으로 트랜잭션을 분산 저장하는데, 트랜잭션이 증가할수록 개별 노드들은 저장 용량뿐만 아니라 트랜잭션 처리 속도에서 한계를 가진다. 블록체인의 대용량 데이터를 처리하기 위해 제안된 샤딩(sharding)은 데이터베이스에서 데이터를 파티션하여 샤드에 분산 저장함으로써 확장성을 확보한다. 샤딩를 통해 샤드 개수만큼 동시에 블록을 생성하여 관리할 수 있고, 블록체인의 크기를 샤드별로 작게 유지할 수 있다.
본 발명의 일 실시예에 따른 전체 네트워크는 지역적으로 구분된 샤드로 구성되는데, 예를 들어, 한국, 북미, 유럽, 일본과 같이 지역별로 샤드를 구분하여 샤드별로 서비스를 제공할 수 있다. 도 2의 실시예를 참조하면, 도 2에 도시된 네트워크는 한국 지역을 위한 샤드 A, 미국 지역을 위한 샤드 B, 일본 지역을 위한 샤드 C를 포함하여 구성될 수 있다.
계좌이체 서비스를 예로 들면, 한국 내 이체 트랜잭션이 외국으로 송금하는 트랜잭션에 비해 월등이 많기 때문에, 본 발명에서는 동일한 샤드 내에서 발생하는 트랜잭션을 해당 샤드에서 처리하여 로컬 장부(local ledger)로 관리함으로써 성능을 향상시킬 수 있다. 또한, 샤드 간 연동이 필요한 트랜잭션은 글로벌 트랜잭션(Global Transaction)으로 정의하고 글로벌 샤드(Global Shard)에서 처리하게 한다.
도 2를 참조하면, T1, T2, T4, T5, T6, T8, T9은 샤드별 로컬 트랜잭션이고, T3 및 T7은 글로벌 트랜잭션으로 구분될 수 있다. T3는 샤드 A에서 B로 거래가 이루어지는 글로벌 트랜잭션이고, T7는 샤드 B와 샤드 C간 글로벌 트랜잭션이다. 한국 내에서 이루어지는 트랜잭션인 T1, T2, T4은 샤드 A에 의해 처리되고, 미국 내 트랜잭션인 T5, T6는 샤드 B에 의해 처리되며, 일본 내 트랜잭션인 T8 및 T9은 샤드 C에 의해 처리될 수 있다. 또한, 글로벌 트랜잭션인 T3 및 T7은 별도로 정의되는 글로벌 샤드에 의해 처리될 수 있다.
본 발명에서는, 도메인을 기반으로 하여 샤드를 구분하고, 도메인을 기반으로 계정을 관리함으로써 어떤 트랜잭션이 어떤 샤드에서 처리되는지 확인할 수 있도록 구성한다. 각 도메인은 개별 샤드에서 관리되며, 샤드별 계정은 도메인을 기반으로 식별된다. 따라서 로컬 트랜잭션이면 해당 로컬 샤드에서 처리되고, 글로벌 트랜잭션은 글로벌 샤드에서 처리되도록 한다.
도 2를 참조하면, 도메인 기반 샤드는 KR 도메인의 샤드 A(200-1), US 도메인의 샤드 B((200-2)), JP 도메인의 샤드 C((200-3))로 구성된다. 각 샤드에서 계정은 도메인을 프리픽스(prefix)로 가질 수 있는데, 예를 들어, 샤드 A의 계정은 kr.aaa 형태로 구성되어 식별될 수 있다.
도 3은 본 발명의 일 실시예에 따른 글로벌 샤드 및 로컬 커미티의 개념도이다.
도 3을 참조하면, 네트워크 상의 많은 노드들(n1, n2, ... )은 지역적으로 구분된 샤드에 속한다.
로컬 노드는 해당 노드가 속한 로컬 샤드 내 로컬 트랜잭션을 검증하고, 글로벌 노드는 글로벌 트랜잭션을 검증한다. 따라서, 하나의 노드는 로컬 노드 또는 글로벌 노드일 수 있다. 또한, 본 발명에 따른 로컬 노드는 동적으로 구성되는 로컬 커미티(210-1, 210-2, 210-3)에 속할 수 있다. 샤드 내에는 로컬 노드 및 글로벌 노드들이 적절하게 분포되어 구성될 수 있으며, 샤드 내 각 노드는 P2P 네트워크 상의 도메인 정보를 보고 로컬 노드 또는 글로벌 노드가 될지 선택할 수 있다.
여기서, 각 노드는 다른 노드와 P2P 방식을 통해 상호 통신한다. 노드는 컴퓨팅이 가능한 어떠한 장치라도 가능하며, 네트워크와 유무선으로 접속 가능한 개인용 컴퓨터, 노트북, 휴대폰, 태블릿, 스마트폰 등의 장치일 수 있다.
로컬 트랜잭션은 해당 샤드에서 동적으로 구성된 로컬 커미티(local committee)에서 검증을 통해 트랜잭션 블록으로 생성되며, 해당 샤드의 로컬 장부에 저장된다. 글로벌 트랜잭션은 글로벌 샤드(300)에서 검증되며, 검증 결과는 해당 트랜잭션과 연관된 로컬 샤드로 전달된다. 검증 결과는 해당 로컬 샤드에서 블록으로 생성되어 각 로컬 장부에 저장된다.
도 4는 본 발명의 일 실시예에 따른 커미티 구성에 대한 개념도이다.
본 발명에서 커미티는 트랜잭션 처리를 위한 동적 그룹을 의미하며, 적어도 하나의 노드를 포함할 수 있다. 본 발명에서는 작업 증명(PoW: Proof of Work) 과정을 통해 해당 샤드의 노드들 중에서 자격 있는 노드들을 선택함으로써 동적으로 커미티를 구성할 수 있다. 여기서, 작업증명(PoW: Proof of Work)은 작업증명 블록을 생성하고자 하는 노드들이 특정한 해시(hash) 값을 찾는 연산을 수행하여 특정 난이도의 작업을 수행했음을 증명하는 것이다.
이처럼 본 발명에서는, 작업 증명 과정을 통해 해당 샤드의 노드들 중에서 자격 있는 노드들을 선택하여 동적으로 커미티를 구성하는데, 커미티를 구성하기 위해서는 노드 선정에 대한 합의가 필요하다. 본 발명에서는, 특정 에포크 플래그 블록을 참조하여 PoW 블록을 생성한 M개의 노드를 선택하여 커미티를 구성한다. 여기서, M은 커미티 멤버의 수를 의미할 수 있다.
한편, PoW 블록을 생성한 각 노드는 자신이 PoW블록을 생성했음을 샤드 내 다른 노드로 알린다. 각 노드에서 판단하는 PoW 블록을 생성한 노드들의 목록은 다를 수 있다. 즉, 각 노드의 관점(view)에 따라 PoW 블록을 생성한 노드의 목록이 다를 수 있다. 따라서 개별 노드 별로 PoW 블록을 생성한 M개의 노드 목록을 샤드 내 다른 노드들에게 브로드캐스트하고, 커미티 멤버 구성을 위한 투표에서 예를 들어, 2/3 이상의 합의를 통해 커미티를 구성하게 된다.
이를 위해서 PoW 블록을 생성한 노드는 커미티 멤버 투표를 위한 커미티 계약(contract)을 네트워크로 브로드캐스트하고, 투표에 참여한 노드들과 여러 라운드(round)를 거쳐 커미티 멤버 구성에 대한 합의 과정을 거친다.
커미티 계약은, 시퀀스 넘버, 에포크 플래그 블록 해시, PoW 블록 생성노드의 목록, PoW 블록 해시, 서명을 포함하여 구성될 수 있다. 시퀀스 넘버는 0에서 시작하여 순차적으로 증가하는 값으로, 투표에 참여한 노드들 중 일정 비율 이상, 예를 들어, 2/3 이상의 노드들의 합의로 해당 커미티가 구성될 때까지 라운드에 따라 순차적으로 증가한다.
에포크 플래그 블록 해시는 PoW에서 참조한 에포크 플래그 블록의 해시 값이며, PoW블록 생성노드의 목록(list)은 해당 노드의 관점(view)에서 판단한PoW 블록을 생성한 노드의 목록이고, PoW 블록 해시는 생성한 PoW 블록의 해시 값이다.
도 5는 본 발명의 일 실시예에 따른 커미티 구성예를 도시한다.
도 5에서는 PoW 블록을 생성한 5개의 노드가 커미티 멤버로 선택되는 경우를 예시한다. 도 5에서 노드 n1, n2, n5, n6은 1, 2, 3, 4, 5의 노드 목록을 가지고 있고, 노드 n3과 n4는 1, 2, 3, 4, 6 의 노드 목록을 가지고 있다. 노드 별로 5개의 노드 리스트에 대한 투표를 통해 1, 2, 3, 4, 5 목록을 가지고 있는 n1, n2, n5, n6 노드들을 포함하여 커미티가 구성된다.
에포크 플래그 블록은 하나의 커미티가 시작되는 기준점이 되는 블록으로서, 에포크 플래그 블록을 기준으로 PoW 블록을 시간상 우선적으로 생성한 노드들을 대상으로 커미티가 구성된다. 커미티가 구성되면 다음 에포크 플래그 블록이 만들어질 때까지 커미티 멤버를 바꾸는 과정없이 여러 블록을 생성할 수 있어 그만큼 성능 향상에 기여할 수 있다.
커미티가 구성되면 커미티 멤버의 목록을 브로드캐스트(broadcast)하여 샤드 내 다른 노드들에게 알림으로써, 직전에 구성된 커미티의 멤버들은 다음 커미티 구성 투표에서 제외하여 커미티의 멤버 노드가 트랜잭션 검증과 PoW 블록 생성에 동시에 참여하지 못하도록 할 수 있다.
로컬 커미티 및 글로벌 커미티는 동일하게 해당 샤드 내의 노드들 중에서 선정 과정을 통해 동적으로 커미티가 구성되고, N개의 블록 생성 후 커미티를 재구성하게 된다.
도 6은 본 발명의 일 실시예에 따라 동적 커미티를 구성하는 방법의 동작 순서도이다.
도 6에 도시된 동적 커미티 구성의 주체는 본 발명에 따른 분산처리 시스템 또는 네트워크에 포함된 노드일 수 있다. 본 발명에 따른 분산 처리 네트워크는 지역적으로 구분된 샤드를 포함할 수 있음을 이미 설명한 바 있다.
샤드 내 노드는 우선 특정 에포크 플래그 블록을 참조하여 PoW 블록을 생성한다(S601). 이때 에포크 플래그 블록은 이미 이전의 에포크에서 생성된 커미티와 연관된 블록일 수 있으며, 이전 에포크가 존재하지 않는 경우 커미티 생성을 위해 최초 설정된 에포크 플래그 블록일 수도 있다.
각 노드는 다른 노드와의 P2P 통신을 통해 PoW 블록을 생성한 노드의 개수를 파악하고, PoW 블록을 생성한 노드의 개수가 커미티 구성 멤버 수보다 많은지 판단한다(S602). PoW 블록을 생성한 노드의 개수가 커미티 구성 멤버 수를 초과하는 경우, 다른 노드와의 통신을 통해 파악한 PoW 블록을 생성한 노드에 대한 목록을 샤드 내 다른 노드들에게 전송한다(S603). 예를 들어, 도 5를 통해 살펴본 예에서 n1 노드의 경우, 1, 2, 3, 4, 5 노드의 목록을 전달한다.
커미티 멤버 구성에 대한 투표가 진행되고, 투표 결과 멤버 후보에 대해 기준치를 초과하는 멤버 간의, 예를 들어, 2/3 이상의 멤버 간 합의가 이루어지는 대상 노드들을 포함하여 커미티가 구성될 수 있다(S604, S605). 여기서, 투표 진행 및 멤버간 합의 여부를 판단하는 주체는 해당 커미티에 지원하는 노드들 중 어느 하나의 노드일 수 있으며, 예를 들어, 리더 멤버일 수 있다.
커미티가 구성되면, 각 노드는 자신이 커미티의 최초 리더인지 판단한다(S606). 해당 노드가 커미티의 최초 리더이면 에포크 플래그 블록을 생성하고(S607), 리더가 아닌 다른 멤버라면 트랜잭션 블록을 생성한다(S608). 트랜잭션 블록이 순차적으로 생성된 후에 해당 에포크는 종료된다.
도 7은 본 발명의 일 실시예에 따른 로컬 트랜잭션의 처리 개념도이다.
본 발명의 일 실시예에 따르면, 로컬 트랜잭션은 해당 샤드에서 동적으로 구성된 로컬(local) 커미티에서 검증을 통해 트랜잭션 블록으로 생성되며, 해당 샤드의 로컬 장부에 저장된다.
도 7에서는 샤드 A의 로컬 트랜잭션을 예로 들어, 로컬 트랜잭션의 처리 과정을 설명한다. 우선 앞서 설명한 바와 같이, 샤드 A의 로컬 노드들 중에서 PoW 블록을 통해 선정된 노드들로 커미티가 구성된다.
도 7을 참조하면, 커미티 A-1은 n1, n2, n5, n6 노드들을 포함하여 구성된다. 커미티가 구성되면 리더는 에포크 플래그 블록을 생성하여 커미티 시작을 알리고, 커미티 멤버들은 PBFT(Practical Byzantine Fault Tolerance) 기반 합의를 통해 로컬 트랜잭션을 검증하여 트랜잭션 블록을 생성한다. 커미티 멤버가 아닌 노드들은 해당 에포크 플래그 블록을 참조하여 PoW 블록을 생성함으로써 다음 커미티 구성을 준비할 수 있다.
도 7에 도시된 샤드A의 예에서 노드 n3, n4, n8은 제1 에포크 플래그 블록을 참조하여 PoW 블록을 생성한다. 후속하여, n10, n11, n12 는 제1 에포크 플래그 블록을 참조하는 제2 에포크 블록을 참조하여 PoW 블록을 생성한다. 또한, 샤드B에서는 자체 제 1 에포크 플래그 블록을 참조하여 노드들이 PoW 블록을 생성하며, 샤드A와 샤드 B에서의 동작이 병렬적으로 동시에 일어날 수 있다.
커미티 리더의 선정에는 라운드-로빈(round-robin) 방식이 활용되어 순번에 따라 리더가 결정될 수 있다. 따라서, 해당 에포크(epoch)의 첫번째 리더가 에포크 플래그 블록을 생성하고 나면, 다른 리더들은 순차적으로 트랜잭션에 대한 블록을 생성하게 된다. 여기서 생성된 블록은 해당 샤드의 노드들에게 전파되어 로컬 장부에 저장됨으로써 샤드별로 로컬 장부가 유지된다.
이와 같이 본 발명은, 복수의 샤드에서 커미티 멤버 노드들은 트랜잭션을 검증하여 블록을 생성하고, 커미티 멤버가 아닌 노드들은 PoW 블록을 생성하여 커미티 구성 준비를 함으로써 트랜잭션 처리 시간과 커미티 구성 시간을 단축시키는 효과를 얻을 수 있다.
도 8은 본 발명의 일 실시예에 따른 글로벌 트랜잭션의 처리 개념도이다.
본 발명에 따른 글로벌 트랜잭션은 글로벌 샤드에서 검증된 후, 검증 결과를 연관된 로컬 샤드로 전달한다. 검증 결과는 해당 로컬 샤드에서 블록으로 생성되어 로컬 장부에 각각 저장된다.
도 8에서는 샤드 A에서 샤드 B로 거래가 이루어지는 글로벌 트랜잭션을 예로 들어 트랜잭션 처리 과정을 설명한다. 도 8의 예에서, 글로벌 샤드(300)는 n3, n6, n9, n10, n11, n12 등의 글로벌 노드들을 포함하고 있다. 글로벌 노드들 중에서 PoW를 통해 글로벌 커미티(310)가 구성되며, 도 8에서 구성된 글로벌 커미티(310)는 샤드 A의 n3와 n6 노드, 샤드 B의 n9 노드, 샤드 C의 n11 노드로 구성된다.
글로벌 커미티 멤버들은 PBFT(Practical Byzantine Fault Tolerance) 기반 합의를 통해 글로벌 트랜잭션을 검증하고, 샤드 A 및 샤드 B로 검증 결과를 전달한다. 샤드 A와 샤드 B에서는 각각 글로벌 트랜잭션에 대한 블록을 생성하여 해당 로컬 장부에 저장하게 된다.
종래에는 분산되어 있는 노드들이 트랜잭션을 모아 검증하고 블록을 생성하여 전체 블록체인을 저장해야 하므로, 대량의 데이터를 동시에 처리하기 위해서는 네트워크 전송 지연이 발생하고 이에 따른 처리 비용이 증가하였다.
그러나 본 발명은 지역적으로 분산된 샤드를 구성하여 샤드별로 동시에 블록을 생성하여 관리할 수 있고, 샤드 내에 블록을 검증하는 커미티 구성을 동적으로 변경함으로써 보안에 우수한 특징이 있다.
도 9는 본 발명의 일 실시예에 따른 블록체인 트랜잭션 분산 처리 장치의 블록 구성도이다.
본 발명의 일 실시예에 따른 블록체인 트랜잭션 분산 처리 장치는 앞서 설명된 실시예들에서 각 노드일 수 있다. 여기서, 각 노드는 다른 노드와 P2P 방식을 통해 상호 통신한다. 노드는 컴퓨팅이 가능한 어떠한 장치라도 가능하며, 네트워크와 유무선으로 접속 가능한 개인용 컴퓨터, 노트북, 휴대폰, 태블릿, 스마트폰 등의 장치일 수 있다.
도 9를 참조하면, 블록체인 트랜잭션 분산 처리 장치(900)는 지역적으로 구분된 도메인 기반의 적어도 하나의 샤드를 포함하는 네트워크에 위치하는 노드가 블록체인 트랜잭션을 분산 처리하며, 이를 위해 프로세서(910), 프로세서를 통해 실행되는 적어도 하나의 명령을 저장하는 메모리(920), 및 적어도 하나의 블록체인 트랜잭션 블록을 저장하는 로컬 장부(930)를 포함할 수 있다.
상기 적어도 하나의 명령은, 동일한 샤드 내에 포함된 복수의 노드를 포함하는 동적 커미티(committee)를 생성하도록 하는 명령; 생성된 커미티를 통해 트랜잭션을 검증하고 트랜잭션 블록을 생성하도록 하는 명령; 및 상기 생성된 트랜잭션 블록을 상기 로컬 장부에 저장하도록 하는 명령을 포함할 수 있다.
블록체인 트랜잭션 분산 처리 장치(900)는 또한, 다른 노드와의 통신을 수행하기 위한 통신 모듈(940)을 포함할 수 있다. 통신 모듈은(940)은 P2P를 지원하는 다양한 유무선 통신 방식을 이용해 다른 노드와 통신할 수 있다.
본 발명의 실시예에 따른 방법의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.
또한, 컴퓨터가 읽을 수 있는 기록매체는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 프로그램 명령은 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
본 발명의 일부 측면들은 장치의 문맥에서 설명되었으나, 그것은 상응하는 방법에 따른 설명 또한 나타낼 수 있고, 여기서 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 상응한다. 유사하게, 방법의 문맥에서 설명된 측면들은 또한 상응하는 블록 또는 아이템 또는 상응하는 장치의 특징으로 나타낼 수 있다. 방법 단계들의 몇몇 또는 전부는 예를 들어, 마이크로프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이용하여) 수행될 수 있다. 몇몇의 실시예에서, 가장 중요한 방법 단계들의 하나 이상은 이와 같은 장치에 의해 수행될 수 있다.
실시예들에서, 프로그램 가능한 로직 장치(예를 들어, 필드 프로그머블 게이트 어레이)가 여기서 설명된 방법들의 기능의 일부 또는 전부를 수행하기 위해 사용될 수 있다. 실시예들에서, 필드 프로그머블 게이트 어레이는 여기서 설명된 방법들 중 하나를 수행하기 위한 마이크로프로세서와 함께 작동할 수 있다. 일반적으로, 방법들은 어떤 하드웨어 장치에 의해 수행되는 것이 바람직하다.
이상 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
200-1, 200-2, 200-3: 로컬 샤드
210-1, 210-2, 210-3: 로컬 커미티
300: 글로벌 샤드 310: 글로벌 커미티
900: 블록체인 트랜잭션 분산 처리 장치 910: 프로세서
920: 메모리 930: 로컬 장부
940: 통신 모듈

Claims (19)

  1. 지역적으로 구분된 도메인 기반의 적어도 하나의 샤드를 포함하는 네트워크에 위치하는 노드가 블록체인 트랜잭션을 분산 처리하는 방법으로서,
    동일한 샤드 내에 포함된 복수의 노드를 포함하는 동적 커미티(committee)를 생성하는 단계;
    생성된 커미티를 통해 트랜잭션을 검증하고 트랜잭션 블록을 생성하는 단계; 및
    상기 생성된 트랜잭션 블록을 상기 노드가 속한 로컬 장부에 저장하는 단계를 포함하는 블록체인 트랜잭션 분산 처리 방법.
  2. 청구항 1에 있어서,
    상기 샤드는,
    지역적으로 일정 범위 내에 위치하는 노드들을 포함하는 적어도 하나의 로컬 샤드; 및
    서로 다른 로컬 샤드에 속하는 복수의 노드를 포함하는 글로벌 샤드를 포함하는, 블록체인 트랜잭션 분산 처리 방법.
  3. 청구항 2에 있어서,
    상기 네트워크 상의 도메인 정보에 따라 상기 노드가 로컬 노드인지 글로벌 노드인지 판단하는 단계를 더 포함하는, 블록체인 트랜잭션 분산 처리 방법.
  4. 청구항 3에 있어서,
    상기 동일한 샤드 내에 포함된 복수의 노드를 포함하는 동적 커미티(committee) 를 생성하는 단계는,
    상기 노드가 로컬 노드인지 글로벌 노드인지에 따라 로컬 커미티 또는 글로벌 커미티를 생성하는 단계를 포함하는, 블록체인 트랜잭션 분산 처리 방법.
  5. 청구항 1에 있어서,
    상기 동일한 샤드 내에 포함된 복수의 노드를 포함하는 동적 커미티(committee) 를 생성하는 단계는,
    초기 에포크 플래그 블록을 참조하여 작업증명(PoW: Proof of Work) 블록을 생성하는 단계;
    다른 노드와의 통신을 통해 작업증명블록을 생성한 노드를 파악하는 단계;
    커미티 계약(contract)을 브로드캐스트하여 커미티 멤버에 대한 투표를 수행하는 단계; 및
    투표 결과에 따라 커미티 멤버를 확정하는 단계를 포함하는, 블록체인 트랜잭션 분산 처리 방법.
  6. 청구항 1에 있어서,
    상기 노드가 상기 커미티의 최초 리더인 경우 상기 커미티를 위한 에포크 플래그 블록을 생성하는 단계를 더 포함하는, 블록체인 트랜잭션 분산 처리 방법.
  7. 청구항 6에 있어서,
    상기 생성된 에포크 플래그 블록은 상기 커미티 멤버가 아닌 노드에 의해 참조되어 작업증명 블록을 생성하는 데 사용되는, 블록체인 트랜잭션 분산 처리 방법.
  8. 청구항 5에 있어서,
    상기 커미티 계약은 작업증명블록 생성노드의 목록을 포함하고,
    시퀀스 넘버, 에포크 플래그 블록의 해시 값, 작업증명블록 생성노드의 목록, 작업증명 블록의 해시 값, 및 서명 중 적어도 하나를 더 포함하는, 블록체인 트랜잭션 분산 처리 방법.
  9. 청구항 1에 있어서,
    상기 생성된 트랜잭션 블록을 상기 노드가 속한 로컬 장부에 저장하는 단계는,
    상기 노드가 글로벌 노드인 경우, 상기 글로벌 샤드가 아니라 상기 글로벌 노드가 속한 로컬 샤드의 로컬 장부에 저장하는 단계를 포함하는, 블록체인 트랜잭션 분산 처리 방법.
  10. 지역적으로 구분된 도메인 기반의 적어도 하나의 샤드를 포함하는 네트워크에 위치하는 노드가 블록체인 트랜잭션을 분산 처리하는 장치로서,
    적어도 하나의 블록체인 트랜잭션 블록을 저장하는 로컬 장부;
    프로세서; 및
    상기 프로세서를 통해 실행되는 적어도 하나의 명령을 저장하는 메모리를 포함하고,
    상기 적어도 하나의 명령은,
    동일한 샤드 내에 포함된 복수의 노드를 포함하는 동적 커미티(committee) 를 생성하도록 하는 명령;
    생성된 커미티를 통해 트랜잭션을 검증하고 트랜잭션 블록을 생성하도록 하는 명령; 및
    상기 생성된 트랜잭션 블록을 상기 로컬 장부에 저장하도록 하는 명령을 포함하는, 블록체인 트랜잭션 분산 처리 장치.
  11. 청구항 10에 있어서,
    상기 샤드는,
    지역적으로 일정 범위 내에 위치하는 노드들을 포함하는 적어도 하나의 로컬 샤드; 및
    서로 다른 로컬 샤드에 속하는 복수의 노드를 포함하는 글로벌 샤드를 포함하는, 블록체인 트랜잭션 분산 처리 장치.
  12. 청구항 11에 있어서,
    상기 적어도 하나의 명령은,
    상기 네트워크 상의 도메인 정보에 따라 상기 노드가 로컬 노드인지 글로벌 노드인지 판단하도록 하는 명령을 더 포함하는, 블록체인 트랜잭션 분산 처리 장치.
  13. 청구항 12에 있어서,
    상기 동일한 샤드 내에 포함된 복수의 노드를 포함하는 동적 커미티(committee) 를 생성하도록 하는 명령은,
    상기 노드가 로컬 노드인지 글로벌 노드인지에 따라 로컬 커미티 또는 글로벌 커미티를 생성하는 명령을 포함하는, 블록체인 트랜잭션 분산 처리 장치.
  14. 청구항 10에 있어서,
    상기 동일한 샤드 내에 포함된 복수의 노드를 포함하는 동적 커미티(committee) 를 생성하도록 하는 명령은,
    초기 에포크 플래그 블록을 참조하여 작업증명(PoW: Proof of Work) 블록을 생성하도록 하는 명령;
    다른 노드와의 통신을 통해 작업증명블록을 생성한 노드를 파악하도록 하는 명령;
    커미티 계약(contract)을 브로드캐스트하여 커미티 멤버에 대한 투표를 수행하도록 하는 명령; 및
    투표 결과에 따라 커미티 멤버를 확정하도록 하는 명령을 포함하는, 블록체인 트랜잭션 분산 처리 장치.
  15. 청구항 10에 있어서,
    상기 적어도 하나의 명령은,
    상기 노드가 상기 커미티의 최초 리더인 경우 상기 커미티를 위한 에포크 플래그 블록을 생성하도록 하는 명령을 더 포함하는, 블록체인 트랜잭션 분산 처리 장치.
  16. 청구항 15에 있어서,
    상기 생성된 에포크 플래그 블록은 상기 커미티 멤버가 아닌 노드에 의해 참조되어 작업증명 블록을 생성하는 데 사용되는, 블록체인 트랜잭션 분산 처리 장치.
  17. 청구항 14에 있어서,
    상기 커미티 계약은 작업증명블록 생성노드의 목록을 포함하고,
    시퀀스 넘버, 에포크 플래그 블록의 해시 값, 작업증명블록 생성노드의 목록, 작업증명 블록의 해시 값, 및 서명 중 적어도 하나를 더 포함하는, 블록체인 트랜잭션 분산 처리 장치.
  18. 청구항 10에 있어서,
    상기 생성된 트랜잭션 블록을 상기 노드가 속한 로컬 장부에 저장하도록 하는 명령은,
    상기 노드가 글로벌 노드인 경우, 글로벌 샤드가 아니라 상기 글로벌 노드가 속한 로컬 샤드의 로컬 장부에 저장하도록 하는 명령을 포함하는, 블록체인 트랜잭션 분산 처리 장치.
  19. 청구항 10에 있어서,
    상기 로컬 장부에 저장된 트랜잭션 블록은,
    로컬 샤드간 연동과 연계된 글로벌 트랜잭션 및 동일한 로컬 샤드 내에서 이루어지는 트랜잭션으로부터 비롯된 트랜잭션 블록 중 적어도 하나의 블록을 포함하는, 블록체인 트랜잭션 분산 처리 장치.
KR1020170167662A 2017-12-07 2017-12-07 블록체인 트랜잭션 분산 처리 장치 및 방법 KR20190067581A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170167662A KR20190067581A (ko) 2017-12-07 2017-12-07 블록체인 트랜잭션 분산 처리 장치 및 방법
US16/170,132 US20190182313A1 (en) 2017-12-07 2018-10-25 Apparatus and method for processing blockchain transaction in distributed manner

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170167662A KR20190067581A (ko) 2017-12-07 2017-12-07 블록체인 트랜잭션 분산 처리 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20190067581A true KR20190067581A (ko) 2019-06-17

Family

ID=66696561

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170167662A KR20190067581A (ko) 2017-12-07 2017-12-07 블록체인 트랜잭션 분산 처리 장치 및 방법

Country Status (2)

Country Link
US (1) US20190182313A1 (ko)
KR (1) KR20190067581A (ko)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210000587A (ko) * 2019-06-25 2021-01-05 에스케이텔레콤 주식회사 블록체인 기반 트랜잭션 처리 방법 및 장치
KR20210026545A (ko) 2019-08-30 2021-03-10 연세대학교 산학협력단 내결함성 블록체인 네트워크의 신뢰도 기반 샤드 분배 장치 및 방법
KR20210030163A (ko) * 2019-09-09 2021-03-17 한국항공대학교산학협력단 이종 프라이빗 블록체인간 통신 장치 및 방법
KR102287483B1 (ko) * 2020-12-04 2021-08-06 김근석 데이터 샤딩 시스템, 데이터 샤딩 방법 및 기록 매체에 저장된 프로그램
KR20210097560A (ko) 2020-01-30 2021-08-09 에스케이텔레콤 주식회사 블록체인 트랜잭션 처리 방법
KR102337760B1 (ko) * 2020-08-27 2021-12-08 연세대학교 산학협력단 심층강화학습 기반 적응적 샤드 블록체인 네트워크 관리 장치 및 방법
WO2022119328A1 (ko) * 2020-12-04 2022-06-09 김근석 데이터 샤딩 시스템, 데이터 샤딩 방법 및 기록 매체에 저장된 프로그램
KR20230046644A (ko) * 2021-09-30 2023-04-06 한국전력공사 경쟁입찰을 활용한 블록체인 네트워크의 대표자 및 후보자 선정 방법 및 블록체인 네트워크
KR20230101442A (ko) * 2021-12-29 2023-07-06 포항공과대학교 산학협력단 5g 모바일 에지 컴퓨팅 환경을 위한 블록체인 시스템, 장치 및 운영 방법
WO2024058489A1 (ko) * 2022-09-13 2024-03-21 주식회사 블룸테크놀로지 블록체인 합의 시스템 및 방법
WO2024090906A1 (ko) * 2022-10-25 2024-05-02 주식회사 블룸테크놀로지 블록체인 네트워크에서 어카운트 생성 시스템 및 방법

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019207504A1 (en) * 2018-04-27 2019-10-31 nChain Holdings Limited Maintaining blocks of a blockchain in a partitioned blockchain network
JP7056429B2 (ja) * 2018-07-18 2022-04-19 株式会社デンソー 履歴管理方法、及び履歴管理装置
SG11201903496PA (en) * 2018-11-16 2019-05-30 Alibaba Group Holding Ltd Cross-chain interactions using a domain name scheme in blockchain systems
WO2019072272A2 (en) 2018-11-16 2019-04-18 Alibaba Group Holding Limited DOMAIN NAME MANAGEMENT SYSTEM FOR CHAIN INTERACTIONS IN BLOCK CHAIN SYSTEMS
EP3566392B1 (en) * 2018-12-13 2021-08-25 Advanced New Technologies Co., Ltd. Achieving consensus among network nodes in a distributed system
KR102137784B1 (ko) * 2018-12-24 2020-07-24 주식회사 지비시코리아 블록체인 기반 인수 합병 서비스 제공 시스템 및 이의 동작 방법
CN110334485A (zh) * 2019-07-08 2019-10-15 深圳市亿联智能有限公司 基于区块链的ai索赔系统及方法
EP3996028A4 (en) * 2019-07-26 2022-08-31 Huawei Technologies Co., Ltd. METHOD AND DEVICE FOR CROSS-CHAIN TRANSACTIONS
WO2021050929A1 (en) * 2019-09-11 2021-03-18 Visa International Service Association Blockchain sharding with adjustable quorums
KR20210059574A (ko) 2019-11-15 2021-05-25 한국전자통신연구원 릴레이 노드, 릴레이 네트워크 시스템 및 이의 동작 방법
CN111163148B (zh) * 2019-12-24 2021-09-28 腾讯科技(深圳)有限公司 一种区块链系统的共识状态的同步方法及相关设备
KR102559101B1 (ko) 2020-02-24 2023-07-25 한국전자통신연구원 전력 계량 장치, 전력 계량 서버 및 블록 체인 기반의 전력 계량 방법
US11722589B2 (en) * 2020-04-08 2023-08-08 Huawei Technologies Co., Ltd. Rapid ledger consensus system and method for distributed wireless networks
CN111680050B (zh) * 2020-05-25 2023-09-26 杭州趣链科技有限公司 一种联盟链数据的分片处理方法、设备和存储介质
CN111522648B (zh) 2020-07-03 2020-10-09 支付宝(杭州)信息技术有限公司 一种区块链的交易处理方法、装置及电子设备
CN111737361B (zh) * 2020-07-22 2021-01-15 百度在线网络技术(北京)有限公司 区块链处理方法、装置、设备和存储介质
US11741083B2 (en) 2020-07-24 2023-08-29 International Business Machines Corporation Cross-shard private atomic commit
CN112261156B (zh) * 2020-12-21 2021-04-06 支付宝(杭州)信息技术有限公司 一种提交跨片事务的方法及系统、主链节点和源分片节点
CN112261162B (zh) * 2020-12-21 2021-03-26 支付宝(杭州)信息技术有限公司 执行跨片事务的方法及系统、主链节点和目标分片节点
CN112910965B (zh) * 2021-01-18 2022-12-06 香港理工大学深圳研究院 一种提交分片型区块链下跨分片事务的方法及系统
KR102615837B1 (ko) * 2021-01-19 2023-12-21 한국전자통신연구원 블록 체인 기반의 서버 간 에너지 거래를 수행하기 위한 에너지 거래 시스템 및 에너지 거래 방법
CN113079026B (zh) * 2021-04-15 2022-11-08 无锡全面互链科技有限公司 一种区块链系统及区块链网络资源管理方法
US11593803B2 (en) * 2021-06-10 2023-02-28 Fong Chuan Julian Yu Two level crux chain platform for protecting and verifying blockchain data
CN114520812B (zh) * 2021-08-16 2023-02-14 西安电子科技大学 用于区块链分片系统的存储轮换方法、系统、设备及应用
CN116567631B (zh) * 2023-07-06 2023-09-15 北京航空航天大学 一种基于分片区块链的移动终端安全认证方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210000587A (ko) * 2019-06-25 2021-01-05 에스케이텔레콤 주식회사 블록체인 기반 트랜잭션 처리 방법 및 장치
KR20210026545A (ko) 2019-08-30 2021-03-10 연세대학교 산학협력단 내결함성 블록체인 네트워크의 신뢰도 기반 샤드 분배 장치 및 방법
US11711218B2 (en) 2019-08-30 2023-07-25 Industry-Academic Cooperation Foundation, Yonsei University Trust-based shard distribution apparatus and method for fault tolerant blockchain networks
KR20210030163A (ko) * 2019-09-09 2021-03-17 한국항공대학교산학협력단 이종 프라이빗 블록체인간 통신 장치 및 방법
KR20210097560A (ko) 2020-01-30 2021-08-09 에스케이텔레콤 주식회사 블록체인 트랜잭션 처리 방법
US11687562B2 (en) 2020-08-27 2023-06-27 Industry-Academic Cooperation Foundation, Yonsei University Apparatus and method for adaptively managing sharded blockchain network based on deep Q network
KR102337760B1 (ko) * 2020-08-27 2021-12-08 연세대학교 산학협력단 심층강화학습 기반 적응적 샤드 블록체인 네트워크 관리 장치 및 방법
WO2022119328A1 (ko) * 2020-12-04 2022-06-09 김근석 데이터 샤딩 시스템, 데이터 샤딩 방법 및 기록 매체에 저장된 프로그램
KR102287483B1 (ko) * 2020-12-04 2021-08-06 김근석 데이터 샤딩 시스템, 데이터 샤딩 방법 및 기록 매체에 저장된 프로그램
KR20230046644A (ko) * 2021-09-30 2023-04-06 한국전력공사 경쟁입찰을 활용한 블록체인 네트워크의 대표자 및 후보자 선정 방법 및 블록체인 네트워크
KR20230101442A (ko) * 2021-12-29 2023-07-06 포항공과대학교 산학협력단 5g 모바일 에지 컴퓨팅 환경을 위한 블록체인 시스템, 장치 및 운영 방법
WO2024058489A1 (ko) * 2022-09-13 2024-03-21 주식회사 블룸테크놀로지 블록체인 합의 시스템 및 방법
WO2024090906A1 (ko) * 2022-10-25 2024-05-02 주식회사 블룸테크놀로지 블록체인 네트워크에서 어카운트 생성 시스템 및 방법

Also Published As

Publication number Publication date
US20190182313A1 (en) 2019-06-13

Similar Documents

Publication Publication Date Title
KR20190067581A (ko) 블록체인 트랜잭션 분산 처리 장치 및 방법
Luu et al. Scp: A computationally-scalable byzantine consensus protocol for blockchains
CN111865920B (zh) 一种网关认证和身份鉴权的平台及其方法
Zamani et al. Rapidchain: Scaling blockchain via full sharding
JP7472333B2 (ja) バリデータノードにより提供されるブロックチェーントランザクションをマイニングする方法及びシステム
AU2017395785B2 (en) Voting system and method
Luu et al. A secure sharding protocol for open blockchains
US10958418B2 (en) System and method for a blockchain network with heterogeneous privacy
CN110912707B (zh) 基于区块链的数字证书处理方法、装置、设备及存储介质
US11979493B2 (en) Methods and systems to establish trusted peer-to-peer communications between nodes in a blockchain network
Ruffing et al. Liar, liar, coins on fire! Penalizing equivocation by loss of bitcoins
EP3543853A1 (en) Providing microservice information
US11902456B2 (en) Blockchain sharding with adjustable quorums
WO2018224954A1 (en) Computer-Implemented System and Method for Managing Transactions Over a Blockchain Network
US20230316273A1 (en) Data processing method and apparatus, computer device, and storage medium
EP3701667B1 (en) Anonymity system for goods delivery
CN110945831B (zh) 抗Sybil攻击身份的生成
CN111556120A (zh) 基于区块链的数据处理方法、装置、存储介质及设备
CN112241553B (zh) 一种基于多账本架构的区块链隐私保护方法及系统
EP4042359A1 (en) Distributed network with consensus mechanism
Ivanov et al. Blockumulus: a scalable framework for smart contracts on the cloud
EP3609120A1 (en) Distributed data storage
Moh et al. Blockchain for efficient public key infrastructure and fault-tolerant distributed consensus
Inoue Performance of Bitcoin Protocol Variants
JP2024074969A (ja) バリデータノードにより提供されるブロックチェーントランザクションをマイニングする方法及びシステム