KR20190068799A - 서비스 존 기반의 계층적 합의 방법 및 장치 - Google Patents

서비스 존 기반의 계층적 합의 방법 및 장치 Download PDF

Info

Publication number
KR20190068799A
KR20190068799A KR1020170168960A KR20170168960A KR20190068799A KR 20190068799 A KR20190068799 A KR 20190068799A KR 1020170168960 A KR1020170168960 A KR 1020170168960A KR 20170168960 A KR20170168960 A KR 20170168960A KR 20190068799 A KR20190068799 A KR 20190068799A
Authority
KR
South Korea
Prior art keywords
service zone
group
node
agreement
service
Prior art date
Application number
KR1020170168960A
Other languages
English (en)
Other versions
KR102377841B1 (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 KR1020170168960A priority Critical patent/KR102377841B1/ko
Publication of KR20190068799A publication Critical patent/KR20190068799A/ko
Application granted granted Critical
Publication of KR102377841B1 publication Critical patent/KR102377841B1/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/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • H04L67/107Discovery involving direct consultation or announcement among potential requesting and potential source peers with limitation or expansion of the discovery scope
    • 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)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

복수의 서비스 존 합의 그룹의 정보를 저장하는 서비스 존 관리 원장(service zone management ledger)을 기초로 사용자의 요청 서비스의 트랜잭션(transaction)이 서비스 존 합의 그룹 내에서 처리되는지 또는 복수의 서비스 존 합의 그룹을 통해 처리되는지 판단하는 단계, 판단 결과에 따라 인터-서비스 존 공개 원장(inter-service zone public ledger) 또는 서비스 존 합의 그룹 별로 존재하는 로컬 서비스 존 프라이빗 원장(local service zone private ledger)을 기초로 적어도 하나의 서비스 존 합의 그룹에서 PBFT(practical byzantine fault tolerance) 알고리즘을 이용하여 합의를 수행하는 단계 및 판단 결과에 따라 합의의 정보를 인터-서비스 존 공개 원장 또는 로컬 서비스 존 프라이빗 원장에 분산 저장하는 단계를 포함하는 서비스 존 기반의 계층적 합의 방법이 개시된다.

Description

서비스 존 기반의 계층적 합의 방법 및 장치{METHOD AND APPARATUS FOR PERFORMING HIERARCHICALLY AGREEMENT BASED ON SERVICE ZONE}
본 발명은 서비스 존 기반의 계층적 합의 방법 및 장치에 관한 것으로, 더욱 상세하게는 블록체인(blockchain)에 있어서 IoT(Internet of Things) 서비스와 연계를 위해 서비스 존 기반의 계층적 합의을 수행하는 방법 및 장치에 관한 것이다.
블록체인은 전세계의 수많은 노드들이 P2P(peer-to-peer) 네트워크로 연결되어 발생된 트랜잭션들을 검증 및 분산 저장하는 시스템으로, 네트워크 전송 속도, 각 노드의 컴퓨팅 파워, 참여 노드들의 수 및 P2P 네트워크의 토폴로지 등의 요소들이 트랜잭션 처리 성능과 밀접한 관련이 있다.
블록체인의 알고리즘은 연산 문제를 해결하는 보상을 획득하는 PoW(Proof of Work) 및 보유에 따른 이자 형식으로 보상을 획득하는 PoS(Proof of Stake)이 있다. PoW나 PoS를 사용하는 퍼블릭 블록체인의 경우처럼 많은 수의 참여 노드들이 전 세계적으로 분산되어 있는 환경에서는 트랜잭션 및 블럭들이 맨 처음 노드에서 모든 다른 참여 노드들로 전파되는 시간이 블록 생성 주기와 밀접히 연관되어 있다.
다시 말해, 만약 네트워크 전송지연을 고려하지 않은 채 블록 생성 주기를 짧게 설정한다면, 수많은 블록들의 fork에 의해 블록체인 전체 시스템의 안정성이 보장되지 않을 수 있다. 또한, 글로벌한 규모의 오픈된 블록체인 네트워크 환경에서 블록 크기나 블록 생성 간격만을 변경하여 비트코인과 같은 퍼블릭 블록체인의 확장성 문제를 해결하는 방법에는 한계가 있다. 따라서, 발생 트랜잭션의 처리 및 생성 블록을 가능한 한 빨리 블록체인에 배치시키도록 확장성을 고려한 블록체인 동작 구조에 더 많은 변화가 필요하다고 판단되어, 비트코인 구조가 개선된 Bitcoin-NG(next generation)와 같은 새로운 블록체인 구조 및 합의 알고리즘 연구가 계속되고 있는 실정이다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 서비스 존 기반의 계층적 합의 방법을 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은 서비스 존 기반의 계층적 합의 장치를 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 계층적 합의 방법은, 복수의 서비스 존 합의 그룹의 정보를 저장하는 서비스 존 관리 원장(service zone management ledger)을 기초로 사용자의 요청 서비스의 트랜잭션(transaction)이 서비스 존 합의 그룹 내에서 처리되는지 또는 복수의 서비스 존 합의 그룹을 통해 처리되는지를 판단하는 단계, 판단 결과에 따라 인터-서비스 존 공개 원장(inter-service zone public ledger) 또는 서비스 존 합의 그룹 별로 존재하는 로컬 서비스 존 프라이빗 원장(local service zone private ledger)을 기초로 적어도 하나의 서비스 존 합의 그룹에서 PBFT(practical byzantine fault tolerance) 알고리즘을 이용하여 합의를 수행하는 단계 및 판단 결과에 따라 합의의 정보를 인터-서비스 존 공개 원장 또는 로컬 서비스 존 프라이빗 원장에 분산 저장하는 단계를 포함할 수 있다.
여기서, 서비스 존 관리 원장, 인터-서비스 존 공개 원장 및 로컬 서비스 존 프라이빗 원장에 블록체인의 작업 증명(proof of work, PoW) 블록을 관리하는 글로벌 PoW 타임싱크 블록체인(global PoW timesync blockchain)을 동기화하여 멀티 블록체인 형태의 분산 합의 원장을 관리하는 단계를 더 포함할 수 있다.
여기서, 사용자의 요청 서비스의 트랜잭션이 서비스 존 합의 그룹 내에서 처리되는지 또는 복수의 서비스 존 합의 그룹을 통해 처리되는지를 판단하는 단계는, 트랜잭션과 관련된 스마트 컨트렉트 상태 키(smart contract state key)를 처리하는 서비스 존 합의 그룹을 결정하는 단계를 포함할 수 있다.
여기서, 합의를 수행하는 단계는, 트랜잭션이 서비스 존 합의 그룹 내에서 처리되는 경우, 로컬 서비스 존 프라이빗 원장을 기초로 서비스 존 합의 그룹 내의 복수의 노드 간에 PBFT 알고리즘을 이용하여 합의를 수행하는 단계, 트랜잭션이 복수의 서비스 존 합의 그룹을 통해 처리되는 경우, 인터-서비스 존 공개 원장을 기초로 복수의 서비스 존 합의 그룹 간에 PBFT 알고리즘을 이용하여 합의를 수행하는 단계를 포함할 수 있다.
여기서, 분산 저장하는 단계는, 트랜잭션이 서비스 존 합의 그룹 내에서 처리되는 경우, 복수의 노드 간의 합의 정보를 로컬 서비스 존 프라이빗 원장에 저장하는 단계 및 트랜잭션이 복수의 서비스 존 합의 그룹을 통해 처리되는 경우, 복수의 서비스 존 합의 그룹 간의 합의 정보를 인터-서비스 존 공개 원장에 저장하는 단계를 포함할 수 있다.
여기서, 서비스 존 합의 그룹은, 다른 서비스 존 합의 그룹과 합의를 수행하는 코디네이터(coordinator) 노드 및 서비스 존 합의 그룹 내에서 합의를 수행하는 적어도 하나의 밸리데이터(validator) 노드를 포함할 수 있다.
여기서, 코디네이터 노드는, 글로벌 PoW 타임싱크 블록체인에 존재하는 복수의 블록 중 가장 길게 연결된 블록을 마이닝(mining)한 적어도 하나의 노드 중 어느 하나로 결정될 수 있다.
여기서, 밸리데이터 노드는, 코디네이터 노드가 결정된 후, 블록을 마이닝한 순서를 기초로 선정한 적어도 하나의 밸리데이터 노드의 후보 중 코디네이터 노드의 송신 패킷에 대한 응답 시간 및 TTL(time to live) 정보를 기초로 결정될 수 있다.
여기서, 서비스 존 합의 그룹 내의 복수의 노드 간에 상기 PBFT 알고리즘을 이용하여 합의를 수행하는 단계는, 적어도 하나의 밸리데이터 노드 중 리더 노드를 선출하는 단계 및 리더 노드 및 적어도 하나의 밸리데이터 노드 중 리더 노드를 제외한 밸리데이터 노드 간에 로컬 서비스 존 프라이빗 원장을 기초로 PBFT 알고리즘을 이용하여 합의를 수행하는 단계를 포함할 수 있다.
여기서, 복수의 서비스 존 합의 그룹 간에 상기 PBFT 알고리즘을 이용하여 합의를 수행하는 단계는, 복수의 서비스 존 합의 그룹의 코디네이터 노드 간에 리더를 투표로 선정하여, 복수의 서비스 존 합의 그룹 중 리더 그룹을 선출하는 단계 및 리더 그룹의 코디네이터 노드 및 복수의 서비스 존 합의 그룹 중 리더 그룹을 제외한 서비스 존 합의 그룹의 코디네이터 노드 간에 인터-서비스 존 공개 원장을 기초로 PBFT 알고리즘을 이용하여 합의를 수행하는 단계를 포함할 수 있다.
상기 다른 목적을 달성하기 위한 본 발명의 일 실시예에 따른 계층적 합의 장치는, 프로세서(processor) 및 프로세서를 통해 실행되는 적어도 하나의 명령이 저장된 메모리(memory)를 포함하고, 적어도 하나의 명령은, 복수의 서비스 존 합의 그룹의 정보를 저장하는 서비스 존 관리 원장(service zone management ledger)을 기초로 사용자의 요청 서비스의 트랜잭션(transaction)이 서비스 존 합의 그룹 내에서 처리되는지 또는 복수의 서비스 존 합의 그룹을 통해 처리되는지를 판단하도록 실행되고, 판단 결과에 따라 인터-서비스 존 공개 원장(inter-service zone public ledger) 또는 서비스 존 합의 그룹 별로 존재하는 로컬 서비스 존 프라이빗 원장(local service zone private ledger)을 기초로 적어도 하나의 서비스 존 합의 그룹에서 PBFT(practical byzantine fault tolerance) 알고리즘을 이용하여 합의를 수행하도록 실행되고, 판단 결과에 따라 합의의 정보를 인터-서비스 존 공개 원장 또는 로컬 서비스 존 프라이빗 원장에 분산 저장하도록 실행될 수 있다.
여기서, 적어도 하나의 명령은, 서비스 존 관리 원장, 인터-서비스 존 공개 원장 및 로컬 서비스 존 프라이빗 원장에 블록체인의 작업 증명(proof of work, PoW) 블록을 관리하는 글로벌 PoW 타임싱크 블록체인(global PoW timesync blockchain)을 동기화하여 멀티 블록체인 형태의 분산 합의 원장을 관리하도록 실행될 수 있다.
여기서, 적어도 하나의 명령은, 트랜잭션과 관련된 스마트 컨트렉트 상태 키(smart contract state key)를 처리하는 서비스 존 합의 그룹을 결정하도록 실행될 수 있다.
여기서, 적어도 하나의 명령은, 트랜잭션이 서비스 존 합의 그룹 내에서 처리되는 경우, 로컬 서비스 존 프라이빗 원장을 기초로 서비스 존 합의 그룹 내의 복수의 노드 간에 PBFT 알고리즘을 이용하여 합의를 수행하도록 실행되고, 트랜잭션이 복수의 서비스 존 합의 그룹을 통해 처리되는 경우, 인터-서비스 존 공개 원장을 기초로 복수의 서비스 존 합의 그룹 간에 PBFT 알고리즘을 이용하여 합의를 수행하도록 실행될 수 있다.
여기서, 적어도 하나의 명령은, 트랜잭션이 서비스 존 합의 그룹 내에서 처리되는 경우, 복수의 노드 간의 합의 정보를 로컬 서비스 존 프라이빗 원장에 저장하도록 실행되고, 트랜잭션이 복수의 서비스 존 합의 그룹을 통해 처리되는 경우, 복수의 서비스 존 합의 그룹 간의 합의 정보를 인터-서비스 존 공개 원장에 저장하도록 실행될 수 있다.
여기서, 서비스 존 합의 그룹은, 다른 서비스 존 합의 그룹과 합의를 수행하는 코디네이터(coordinator) 노드 및 서비스 존 합의 그룹 내에서 합의를 수행하는 적어도 하나의 밸리데이터(validator) 노드를 포함할 수 있다.
여기서, 코디네이터 노드는, 글로벌 PoW 타임싱크 블록체인에 존재하는 복수의 블록 중 가장 길게 연결된 블록을 마이닝(mining)한 적어도 하나의 노드 중 어느 하나로 결정될 수 있다.
여기서, 밸리데이터 노드는, 코디네이터 노드가 결정된 후, 블록을 마이닝한 순서를 기초로 선정한 적어도 하나의 밸리데이터 노드의 후보 중 코디네이터 노드의 송신 패킷에 대한 응답 시간 및 TTL(time to live) 정보를 기초로 결정될 수 있다.
여기서, 적어도 하나의 명령은, 적어도 하나의 밸리데이터 노드 중 리더 노드를 선출하도록 실행되고, 리더 노드 및 상기 적어도 하나의 밸리데이터 노드 중 리더 노드를 제외한 밸리데이터 노드 간에 로컬 서비스 존 프라이빗 원장을 기초로 PBFT 알고리즘을 이용하여 합의를 수행하도록 실행될 수 있다.
여기서, 적어도 하나의 명령은, 복수의 서비스 존 합의 그룹의 코디네이터 노드 간에 리더를 투표로 선정하여, 복수의 서비스 존 합의 그룹 중 리더 그룹을 선출하도록 실행되고, 리더 그룹의 코디네이터 노드 및 복수의 서비스 존 합의 그룹 중 리더 그룹을 제외한 서비스 존 합의 그룹의 코디네이터 노드 간에 인터-서비스 존 공개 원장을 기초로 PBFT 알고리즘을 이용하여 합의를 수행하도록 실행될 수 있다.
본 발명에 따르면, 글로벌 공개 원장이 아닌 로컬 서비스 존 프라이빗 원장 및 인터-서비스 존 공개 원장에 서비스의 트랜잭션을 분산 저장하여 PBFT(practical byzantine fault tolerance) 알고리즘의 한계를 극복할 수 있다.
본 발명에 따르면, 로컬 서비스 존 프라이빗 원장을 이용하여 서비스 존 합의 그룹의 참여 노드만이 정보를 공유할 수 있으므로, 개인 정보 프라이버시를 보장할 수 있다.
본 발명에 따르면, 로컬 서비스 존 프라이빗 원장 및 인터-서비스 존 공개 원장을 이용하여 서비스 트랜잭션 처리 속도를 향상시킬 수 있으며, 해당 서비스에 관련된 블록체인 subset을 추적할 수 있으므로 서비스 기능을 용이하게 검증할 수 있다.
본 발명에 따르면, 관련된 중복 블록 데이터 제거 및 원격 저장소(remote storage) 연동으로 IoT 디바이스 스토리 지원을 절약할 수 있다.
도 1은 블록체인에서 하나의 블록을 나타낸 도면이다.
도 2는 블록체인에서 블록 간의 연결을 나타낸 도면이다.
도 3은 암호화 화폐 송금 시 발생하는 작업을 나타낸 개념도이다.
도 4는 블록체인에 적용할 수 있는 복수의 합의 알고리즘 및 참여 노드의 갯수에 따른 트랜잭션 처리 속도에 대한 성능을 나타낸 그래프이다.
도 5는 본 발명의 일 실시예에 따른 서비스 존 기반의 계층적 합의 방법을 나타낸 개념도이다.
도 6은 본 발명의 일 실시예에 따른 서비스 존 기반의 계층적 합의 장치의 블록 구성도이다.
도 7은 본 발명의 일 실시예에 따른 지역적인 서비스 존 합의 그룹을 생성하는 방법을 나타낸 개념도이다.
도 8은 본 발명의 일 실시예에 따른 서비스 존 합의 그룹을 생성하는 방법을 설명하는 순서도이다.
도 9는 본 발명의 일 실시예에 따른 서비스 존 코디네이터 노드의 근처에 존재하는 서비스 존 밸리데이터 노드를 결정하기 위한 결정 기준을 나타낸 도면이다.
도 10은 본 발명의 일 실시예에 따른 서비스 존 코디네이터 간의 리더 선출 과정 또는 서비스 존 밸리데이터 간의 리더 선출 과정에서의 각 노드의 상태 및 상태 변경 이벤트를 나타낸 도면이다.
도 11은 본 발명의 일 실시예에 따른 복수의 서비스 존 합의 그룹을 제어할 수 있는 인터-서비스 존 리더를 선출하는 방법을 나타낸 플로우 차트이다.
도 12는 본 발명의 일 실시예에 따른 복수의 서비스 존 합의 그룹 간에 그룹 구성 정보 및 관리 정보를 공유하는 동작을 나타낸 개념도이다.
도 13은 본 발명의 일 실시예에 따른 복수의 서비스 존 합의 그룹 간에 공유된 그룹 구성 및 관리 정보를 최종적으로 분산 합의하여 서비스 존 관리 원장에 저장하는 과정을 나타낸 플로우 차트이다.
도 14는 본 발명의 일 실시예에 따른 복수의 서비스 존 합의 그룹 간의 계층적 합의 방법을 나타낸 도면이다.
도 15는 본 발명의 일 실시예에 따른 EIG 트리를 나타낸 도면이다.
도 16은 본 발명의 일 실시예에 따른 멀티 블록체인 형태의 분산 합의 원장을 나타낸 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. "및/또는"이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다. 이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 블록체인에서 하나의 블록을 나타낸 도면이다.
블록체인은 누군가의 보증이 없어도 내용을 신뢰할 수 있게 해주는 기술로 사토시 나가모토(Satoshi Nakamoto)에 의한 비트코인(Bitcoin, A Peer-to-Peer Electronic Cash System)을 통해 처음 제안되었다. 비트코인에서 블록체인은 네트워크의 수많은 노드들이 거래 내역을 복제하고 올바른지 검증하기 때문에 거래 무결성과 거래 내역이 위변조 되지 않음을 보장한다. 블록 데이터 해시 연결을 위해 블록에는 블록 헤더 데이터를 해시 함수로 계산한 블록 해시가 들어가고 이를 통해 해시 연결성을 검증해 블록체인 데이터가 중간에 위변조가 되지 않았음을 확인한다.
스마트 컨트렉트(Smart Contract)는 블록체인을 응용한 서비스를 하는데 요구되는 기술로, 스마트 컨트렉트 지원 블록체인은 스마트 컨트렉트의 상태를 변경시키는 트랜잭션 보관 데이터베이스와 스마트 컨트렉트의 최신 상태를 보관하고 있는 스마트 컨트렉트 데이터베이스가 요구된다. 클라이언트가 새로운 트랜잭션을 발생시키면, 블록체인 참여 노드들은 트랜잭션을 분산 합의 과정을 통해 공유하여 트랜잭션 데이터베이스에 저장시키고 스마트 컨트렉트의 상태(State)를 변경시키면서 트랜잭션을 실행하여 결과를 클라이언트가 확인 가능하게 한다.
도 2는 블록체인에서 블록 간의 연결을 나타낸 도면이다.
참여 노드가 가지고 있는 트랜잭션 보관 데이터베이스는 블록체인(Blockchain)이라는 이름과 같이 블록이 연결된 구조로 되어 있다. 각 블록은 순서가 정해진 트랜잭션 리스트를 가지고 있으며, 각 블록들은 시간의 순서대로 연결되어 있고, 블록체인 자료구조를 이용하면 모든 트랜잭션의 순서를 확정 지을 수 있다.
도 3은 암호화 화폐 송금 시 발생하는 작업을 나타낸 개념도이다.
도 3을 참조하면, A가 B에게 돈을 보내기 위해 트랜잭션을 생성하여 블록체인 네트워크에 전파하면 블록을 생성하는 노드는 트랜잭션을 모아 블록에 저장한다. 이때, A의 잔액이 충분한지 및 중복으로 사용하지 않는지 등의 거래에 대한 검증은 별도로 이루어지며, 이러한 검증 방법은 거래에 따라 달라지게 된다. 이후, 해당 트랜잭션들을 적용해 자신의 잔액 데이터베이스를 갱신하고 다른 노드들에 블록을 전파한다. 다른 노드들은 전파된 블록 데이터에 따라 자신의 잔액 데이터베이스를 갱신하고 블록을 저장한다. 마지막으로, 모든 노드의 잔액 데이터베이스와 트랜잭션 내역 데이터베이스가 갱신되고, 장부 갱신과 함께 송금이 완료되면서 거래가 완료된다.
블록 생성 노드를 정하는 과정이나 동시에 블록이 생성되었을 때 올바른 블록을 선택하는 과정은 분산 합의 알고리즘에 따라 달라진다. 작업 증명(Proof of Work, PoW) 방법을 사용하는 블록체인의 블록 해시는 어려움(difficulty)에 따라 선택된 타겟 데이터 규격을 만족해야 한다. 해시 알고리즘에 의해 만들어지는 블록 해시는 타켓 데이터를 가지고 입력값을 알아낼 수 없기 때문에 블록체인의 노드는 조건을 만족하기 위해 Nonce라는 임의의 값을 계속 대입하며 타켓 데이터 조건이 만족되면 블록을 생성한다. 이러한 작업 증명 방법은 엄청난 에너지를 소모하면서 작업 증명을 통과해야만 블록을 생성할 수 있게 함으로써 네트워크의 모든 참여 노드들이 동시에 블록을 만들 수 없게 한다.
작업 증명 합의 알고리즘은 일시적으로 합의가 깨질 수 있으나 확률적으로 마지막엔 하나의 블록체인을 합의하게 되는 합의 알고리즘이다. 비트코인은 블록체인 데이터 구조를 이용하여 데이터 위변조 공격을 즉각 감지할 수 있으며, 작업 증명 합의 알고리즘을 이용하여 글로벌한 규모의 완전히 오픈된 네트워크에서 분산 합의가 가능하도록 하였다. 다만, 비트코인에서 사용하는 작업 증명 알고리즘은 긴 처리시간과 낮은 처리량, 에너지 낭비 및 부분적인 네트워크 분기 문제가 있어 거래의 효율성이 중요하거나 요청의 즉각적인 완료를 요구하는 다양한 환경에서는 활용의 한계가 있다. 이러한 블록체인 분산 합의 알고리즘의 한계를 극복하기 위하여 텐더민트(Tendermint) 및 하이퍼레저 패브릭(Hyperledger Fabric) 등의 블록체인은 전통적인 상태 기계 복제에 사용하는 합의 알고리즘인 PBFT (Practical Byzantine Fault Tolerance)를 블록체인에 적합하게 도입하고 있다.
도 4는 블록체인에 적용할 수 있는 복수의 합의 알고리즘 및 참여 노드의 갯수에 따른 트랜잭션 처리 속도에 대한 성능을 나타낸 그래프이다.
블록체인은 전세계의 수많은 노드들이 P2P(peer to peer) 네트워크로 연결되어 발생된 트랜잭션들을 검증 및 분산 저장하는 시스템으로, 네트워크 전송 속도, 각 노드의 컴퓨팅 파워, 참여 노드들의 수 및 P2P 네트워크의 토폴로지 등의 요소들이 트랜잭션 처리 성능과 밀접한 관련이 있다.
도 4를 참조하면, PoW 계열의 알고리즘은 참여 노드들의 수에 대한 확장성(scalability)은 상당히 좋지만 트랜잭션 처리 속도(transaction processing speed, tps) 성능은 좋지 않음을 알 수 있다. 다만, BFT(Byzantine Fault Tolerance) 알고리즘 계열은 적은 수의 참여 노드들의 수에서 동작하지만 상당히 높은 tps 성능을 보임을 알 수 있다.
PoW나 PoS를 사용하는 퍼블릭 블록체인의 경우처럼 많은 수의 참여 노드들이 전 세계적으로 분산되어 있는 환경에서는 트랜잭션 및 블럭들이 맨 처음 노드에서 모든 다른 참여 노드들로 전파되는 시간이 블록 생성 주기와 밀접히 연관되어 있다. 다시 말해, 만약 네트워크 전송 지연을 고려하지 않은 채 블록 생성 주기를 짧게 설정한다면, 수많은 블록들의 포크(fork)에 의해 블록체인 전체 시스템의 안정성이 보장되지 않을 수 있다. 또한, 글로벌한 규모의 오픈된 블록체인 네트워크 환경에서 블록 크기나 블록 생성 간격만을 변경하여 비트코인과 같은 퍼블릭 블록체인의 확장성 문제를 해결하는 방법에는 한계가 있다. 따라서, 발생 트랜잭션의 처리 및 생성 블록을 가능한 빨리 블록 체인에 배치시키도록 확장성을 고려한 블록체인 동작 구조에 더 많은 변화가 필요하다고 판단하여, 비트코인 구조가 개선된 Bitcoin-NG(next generation)와 같은 새로운 블록체인 구조 및 합의 알고리즘 연구가 제안되고 있다.
도 5는 본 발명의 일 실시예에 따른 서비스 존 기반의 계층적 합의 방법을 나타낸 개념도이다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 서비스 존 기반의 계층적 합의 방법은 지역적인 서비스 존 합의 그룹(service zone consensus group)을 구성하는 복수의 노드(node) 간의 합의 및 복수의 서비스 존 합의 그룹 간의 합의를 통해 수행될 수 있다.
본 발명의 일 실시예에 따른 서비스 존 기반의 계층적 합의 방법은 물리적으로 근접한 복수의 노드를 포함하는 하나의 서비스 존 합의 그룹을 생성할 수 있다. 서비스 존 합의 그룹을 생성하는 방법은 도 7 내지 도 9에서 상세히 후술하겠다.
서비스 존 기반의 계층적 합의 방법은 사용자의 서비스 요청을 획득하면, 서비스 존 관리 원장(service zone management ledger)의 4개의 서비스 존 합의 그룹의 정보를 기초로 해당 서비스의 트랜잭션(transaction)이 서비스 존 합의 그룹 내에서 처리되는지 또는 복수의 서비스 존 합의 그룹에서 처리되는지를 판단할 수 있다. 여기서, 서비스 존 관리 원장의 서비스 존 합의 그룹의 정보는 서비스 존 합의 그룹이 지역적으로 처리하고 있는 스마트 컨트렉트 상태 키(state key) 값과 저장소 URI(Uniform Resource Identifier) 값을 포함할 수 있다.
서비스 존 기반의 계층적 합의 방법은 사용자가 요청한 서비스의 트랜잭션이 서비스 존 합의 그룹 내에서 처리되는 것으로 판단한 경우, 해당 서비스 존 합의 그룹 내의 복수의 노드 간에 합의를 수행하고, 합의 정보를 지역적으로 발생된 서비스의 트랜잭션들만을 검증하고 관리하는 로컬 서비스 존 프라이빗 원장(local service zone private ledger)에 저장할 수 있다. 여기서, 로컬 서비스 존 프라이빗 원장은 서비스 존 합의 그룹 별로 각각 존재할 수 있고, 해당 서비스 존 합의 그룹 내의 참여 노드들에게만 정보가 공개될 수 있다.
서비스 존 기반의 계층적 합의 방법은 사용자가 요청한 서비스의 트랜잭션이 복수의 서비스 존 합의 그룹에서 처리되는 것으로 판단한 경우, 해당 복수의 서비스 존 합의 그룹 간에 합의를 수행하고, 합의 정보를 복수의 서비스 존 합의 그룹에서 처리되는 트랜잭션을 검증하고, 서비스 별로 관리하는 인터-서비스 존 공개 원장(inter-service zone public ledger)에 저장할 수 있다. 여기서, 서비스 존 공개 원장은 복수의 서비스 존 합의 그룹에 대하여 하나가 존재할 수 있고, 복수의 서비스 존 합의 그룹 내의 모든 노드에게 공개될 수 있다.
서비스 존 합의 그룹 내의 복수의 노드 간의 합의 수행 방법 및 복수의 서비스 존 합의 그룹 간의 합의 수행 방법은 도 10 내지 도 15에서 상세히 후술하겠다.
서비스 존 기반의 계층적 합의 방법은 서비스 존 관리 원장, 서비스 존 합의 그룹 별 로컬 서비스 존 프라이빗 원장 및 인터-서비스 존 공개 원장을 일정 시간 간격으로 동기화하기 위해 PoW(Proof of Work) 블록을 관리하는 글로벌 PoW 타임싱크 블록체인(global PoW timesync blockchain)을 이용할 수 있으며, 서비스 존 관리 원장, 서비스 존 합의 그룹 별 로컬 서비스 존 프라이빗 원장, 인터-서비스 존 공개 원장 및 글로벌 PoW 타임싱크 블록체인을 포함하는 멀티 블록체인(multi-blockchain) 형태의 합의 원장을 관리할 수 있다. 여기서, 멀티 블록체인 형태의 합의 원장은 도 16에서 상세히 후술하겠다.
도 6은 본 발명의 일 실시예에 따른 서비스 존 기반의 계층적 합의 장치의 블록 구성도이다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 서비스 존 기반의 계층적 합의 장치(600)는 적어도 하나의 프로세서(610), 메모리(620) 및 저장 장치(630)를 포함할 수 있다.
프로세서(610)는 메모리(620) 및/또는 저장 장치(630)에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(610)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU) 또는 본 발명에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 메모리(620)와 저장 장치(630)는 휘발성 저장 매체 및/또는 비휘발성 저장 매체로 구성될 수 있다. 예를 들어, 메모리(620)는 읽기 전용 메모리(read only memory, ROM) 및/또는 랜덤 액세스 메모리(random access memory, RAM)로 구성될 수 있다.
메모리(620)는 프로세서(610)를 통해 실행되는 적어도 하나의 명령을 저장하고 있을 수 있다. 적어도 하나의 명령은 복수의 서비스 존 합의 그룹의 정보를 저장하는 서비스 존 관리 원장을 기초로 사용자의 요청 서비스의 트랜잭션이 서비스 존 합의 그룹 내에서 처리되는지 또는 복수의 서비스 존 합의 그룹을 통해 처리되는지 판단하는 명령, 판단 결과에 따라 인터-서비스 존 공개 원장 또는 서비스 존 합의 그룹 별로 존재하는 로컬 서비스 존 프라이빗 원장을 기초로 적어도 하나의 서비스 존 합의 그룹에서 PBFT(practical byzantine fault tolerance) 알고리즘을 이용하여 합의를 수행하는 명령 및 판단 결과에 따라 합의의 정보를 인터-서비스 존 공개 원장 또는 로컬 서비스 존 프라이빗 원장에 분산 저장하는 명령을 포함할 수 있다.
또한, 서비스 존 관리 원장, 인터-서비스 존 공개 원장 및 로컬 서비스 존 프라이빗 원장에 블록체인의 작업 증명 블록을 관리하는 글로벌 PoW 타임싱크 블록체인을 동기화하여 멀티 블록체인 형태의 분산 합의 원장을 관리하는 명령을 더 포함할 수 있다. 멀티 블록체인 형태의 합의 원장은 도 16에서 상세히 후술하겠다.
여기서, 서비스 존 합의 그룹은 다른 서비스 존 합의 그룹과 합의를 수행하는 코디네이터(coordinator) 노드 및 서비스 존 합의 그룹 내에서 합의를 수행하는 적어도 하나의 밸리데이터(validator) 노드를 포함할 수 있다. 여기서, 코디네이터 노드는 글로벌 PoW 타임싱크 블록체인에 존재하는 복수의 블록 중 가장 길게 연결된 블록을 마이닝(mining)한 적어도 하나의 노드 중 어느 하나로 결정될 수 있고, 밸리데이터 노드는 코디네이터 노드가 결정된 후, 블록을 마이닝한 순서를 기초로 선정한 적어도 하나의 밸리데이터 노드의 후보 중 코디네이터 노드의 송신 패킷에 대한 응답 시간 및 TTL(time to live) 정보를 기초로 결정될 수 있다. 서비스 존 합의 그룹을 생성하기 위해 코디네이터 노드 및 밸리데이터 노드를 결정하는 방법은 도 7 내지 도 9에서 상세히 후술하겠다.
더욱 상세하게 설명하면, 프로세서(610)는 메모리(620)에 저장된 명령에 따라 복수의 서비스 존 합의 그룹의 정보를 저장하는 서비스 존 관리 원장을 기초로 사용자의 요청 서비스의 트랜잭션이 서비스 존 합의 그룹 내에서 처리되는지 복수의 서비스 존 합의 그룹을 통해 처리되는지 판단할 수 있다. 여기서, 프로세서(610)는 트랜잭션과 관련된 스마트 컨트렉트 상태 키를 처리하는 서비스 존 합의 그룹을 결정할 수 있다.
프로세서(610)는 메모리(620)에 저장된 명령에 따라 판단 결과에 따라 인터-서비스 존 공개 원장 또는 서비스 존 합의 그룹 별로 존재하는 로컬 서비스 존 프라이빗 원장을 기초로 적어도 하나의 서비스 존 합의 그룹에서 PBFT 알고리즘을 이용하여 합의를 수행할 수 있다.
여기서, 프로세서(610)는 트랜잭션이 서비스 존 합의 그룹 내에서 처리되는 경우, 상기 서비스 존 합의 그룹 내의 복수의 노드 간에 로컬 서비스 존 프라이빗 원장을 기초로 PBFT 알고리즘을 이용하여 합의를 수행할 수 있다. 보다 상세하게 설명하면, 프로세서(610)는 적어도 하나의 밸리데이터 노드 중 리더 노드를 선출할 수 있고, 리더 노드 및 적어도 하나의 밸리데이터 노드 중 리더 노드를 제외한 밸리데이터 노드 간에 로컬 서비스 존 프라이빗 원장을 기초로 PBFT 알고리즘을 이용하여 합의를 수행할 수 있다.
여기서, 프로세서(610)는 트랜잭션이 복수의 서비스 존 합의 그룹을 통해 처리되는 경우, 상기 복수의 서비스 존 합의 그룹 간에 인터-서비스 존 공개 원장을 기초로 PBFT 알고리즘을 이용하여 합의를 수행할 수 있다. 보다 상세하게 설명하면, 프로세서(610)는 복수의 서비스 존 합의 그룹의 코디네이터 노드 간에 리더를 투표로 선정하여, 복수의 서비스 존 합의 그룹 중 리더 그룹을 선출할 수 있고, 리더 그룹의 코디네이터 노드 및 복수의 서비스 존 합의 그룹 중 리더 그룹을 제외한 서비스 존 합의 그룹의 코디네이터 노드 간에 서비스 존 공개 원장을 기초로 PBFT 알고리즘을 이용하여 합의를 수행할 수 있다.
서비스 존 합의 그룹 내의 복수의 노드 간의 합의 수행 방법 및 복수의 서비스 존 합의 그룹 간의 합의 수행 방법은 도 10 내지 도 15에서 상세히 후술하겠다.
또한, 프로세서(610)는 메모리(620)에 저장된 명령에 따라 판단 결과에 따라 합의의 정보를 인터-서비스 존 공개 원장 또는 서비스 존 합의 그룹 별로 존재하는 로컬 서비스 존 프라이빗 원장에 분산 저장할 수 있다. 여기서, 프로세서(610)는 트랜잭션이 서비스 존 합의 그룹 내에서 처리되는 경우, 복수의 노드 간의 합의 정보를 로컬 서비스 존 프라이빗 원장에 저장할 수 있고, 트랜잭션이 복수의 서비스 존 합의 그룹을 통해 처리되는 서비스 요청인 경우, 상기 복수의 서비스 존 합의 그룹 간의 합의 정보를 상기 인터-서비스 존 공개 원장에 저장할 수 있다.
다시 말해, 본 발명의 일 실시예에 따른 계층적 합의 장치(600)는 복수의 서비스 그룹을 구성할 수 있는 복수의 노드들과 연결되어 복수의 노드들의 동작을 제어할 수 있으며, 로컬 서비스 존 프라이빗 원장, 인터-서비스 존 공개 원장 및 서비스 존 관리 원장 및 글로벌 PoW 타임싱크 블록체인 중 적어도 하나를 관리할 수 있다.
도 7은 본 발명의 일 실시예에 따른 지역적인 서비스 존 합의 그룹을 생성하는 방법을 나타낸 개념도이다.
본 발명의 설명에서는 설명의 편의를 위해 4개의 서비스 존 합의 그룹이 존재하며, 4개의 서비스 존 합의 그룹 내에서 처리가 가능한 스마트 컨트렉트(smart contract)가 존재하는 것으로 가정한다. 다만, 이에 한정하지는 않는다.
도 7을 참조하면, 본 발명의 일 실시예에 따른 서비스 존 합의 그룹은 하나의 서비스 존 코디네이터 (SZone_Coordinator) 노드 및 적어도 하나의 서비스 존 밸리데이터(SZone_Validator) 노드를 포함할 수 있다.
여기서, 서비스 존 코디네이터 노드는 서비스 존 합의 그룹을 대표하여 다른 서비스 존 합의 그룹의 서비스 존 코디네이터 노드와 합의를 수행할 수 있고, 서비스 존 밸리데이터 노드는 서비스 존 합의 그룹 내부에서 적어도 하나의 다른 서비스 존 밸리데이터 노드와 합의를 수행할 수 있다.
서비스 존 코디네이터 노드 및 서비스 존 밸리데이터 노드를 결정하여 서비스 존 합의 그룹을 생성하는 상세한 설명은 다음과 같다.
서비스 존 합의 그룹을 생성하는 방법은 서비스 존 코디네이터 후보 노드를 선정하기 위해 우선 share window의 크기를 설정할 수 있다. 이후, 서비스 존 합의 그룹을 생성하는 방법은 글로벌 PoW 타임싱크 블록체인에서 길이가 가장 긴 블록체인을 결정하여, share window를 기초로 최종적으로 업데이트되는 타임싱크 블록(timesync block)이 결정될 때마다 해당 타임싱크 블록을 생성하는 마이너(miner) 노드를 서비스 존 코디네이터 노드로 결정할 수 있다. 다만, 미리 설정한 s개의 서비스 존 코디네이터 노드가 존재하는 경우, 서비스 존 코디네이터 후보로 결정할 수 있다. 여기서, s는 양의 정수를 의미할 수 있다.
서비스 존 합의 그룹을 생성하는 방법은 서비스 존 코디네이터 노드를 결정한 후, 글로벌 PoW 타임싱크 블록체인의 가장 긴 블록체인에 블록을 추가하려는 적어도 하나의 마이너 노드 중 빠르게 블록을 추가한 m개의 마이너 노드를 서비스 존 합의 그룹의 서비스 존 밸리데이터 노드 후보로 선정할 수 있다. 여기서, m은 양의 정수를 의미할 수 있다.
이후, 서비스 존 코디네이터 노드는 서비스 존 밸리데이터 후보 노드로 서비스 존 합의 그룹 생성 요청 패킷을 송신할 수 있고, 서비스 존 합의 그룹 생성 요청 패킷에 따른 응답 시간(response time) 및 TTL(time to live) 정보를 기초로 서비스 존 밸리데이터 후보 노드 중 서비스 존 코디네이터 노드와 물리적으로 근접한 위치에 존재하며 실시간으로 통신 가능한 적어도 하나의 서비스 존 밸리데이터 노드를 결정할 수 있다. 여기서, 서비스 존 밸리데이터 후보 노드 중 서비스 존 밸리데이터 노드를 결정하는 방법은 도 9에서 상세히 후술하겠다.
이와 같이 결정된 적어도 하나의 서비스 존 밸리데이터 노드는 각 노드의 정보, 저장소 URI 및 공개 키 해시 값 등을 서비스 존 코디네이터 노드로 송신할 수 있고, 서비스 존 코디네이터 노드 및 결정된 적어도 하나의 서비스 존 밸리데이터 노드는 하나의 서비스 존 합의 그룹을 생성할 수 있다.
또한, 서비스 존 합의 그룹은 상술한 바와 같이 서비스 존 코디네이터 후보 노드를 가질 수 있다. 이 경우, 서비스 존 코디네이터 노드가 임의의 서비스 존 코디네이터 노드로부터 백업 요청 메시지 또는 대체 요청 메시지를 수신한 경우, 서비스 존 코디네이터 후보 노드 중 백업 서비스 존 코디네이터 노드 또는 대체 서비스 존 코디네이터 노드를 선정할 수 있으며, 서비스 존 코디네이터 노드 및 적어도 하나의 밸리데이터 노드와 함께 하나의 서비스 존 합의 그룹을 생성할 수 있다.
도 8은 본 발명의 일 실시예에 따른 서비스 존 합의 그룹을 생성하는 방법을 설명하는 순서도이다.
도 8을 참조하면, 본 발명의 일 실시예에 따른 서비스 존 합의 그룹을 생성하는 방법은, 우선 서비스 존 코디네이터 노드를 선정하기 위한 share window의 크기를 설정할 수 있으며(S810), 글로벌 PoW 타임싱크 블록체인에서 가장 길게 연결된 블록을 결정할 수 있고(S820), 크기를 설정한 share window는 결정한 블록에 최근 블록이 생성될 때마다 위치를 업데이트하여 share window 내에 최근 블록을 위치시킬 수 있다(S830). 다시 말해, share window가 포화가 되면, 최근 블록이 포함될 수 있도록 share window의 위치를 수정할 수 있다. 또한, 서비스 존 합의 그룹 생성 방법은 share window 내에 위치하는 최근 블록을 마이닝한 노드를 서비스 존 코디네이터 노드로 선정할 수 있다(S840). 여기서, 글로벌 PoW 타임 싱크 블록체인에서 가장 길게 연결된 블록을 결정하지 못한 경우, 다시 글로벌 PoW 타임싱크 블록체인에서 가장 길게 연결된 블록을 결정할 수 있다(S820).
이후, 현재 선정된 서비스 존 코디네이터 노드와 임의로 설정한 서비스 존 합의 그룹의 개수를 비교할 수 있으며(S850), 현재 선정된 서비스 존 코디네이터 노드가 임의로 설정한 서비스 존 합의 그룹의 개수보다 적은 경우, 계속하여 최근 블록을 마이닝한 노드를 서비스 존 코디네이터로 선정할 수 있고, 현재 선정된 서비스 존 코디네이터 노드가 임의로 설정한 서비스 존 합의 그룹의 개수보다 적지 않은 경우, 현재 서비스 존 코디네티어 노드를 기준으로 서비스 존 합의 그룹을 생성하는 다음 단계를 진행할 수 있다.
다만, 도 8에 도시하지 않았으나, 블록은 계속하여 생성될 수 있고, share window 내의 블록은 계속하여 최근 블록들로 업데이트될 수 있다. 따라서, 현재 서비스 존 코디네이터 노드의 개수가 임의로 설정한 서비스 존 합의 그룹의 개수보다 적지 않은 경우, share window 내의 최근 블록을 마이닝한 노드 또는 share window의 업데이트에 따라 포함된 최근 블록을 마이닝한 노드를 서비스 존 코디네이터 후보 노드로 선정할 수 있다. 또한, 적어도 하나의 서비스 존 코디네이터 후보 노드는 임의의 서비스 존 코디네이터 노드로부터 백업 메시지 또는 대체 메시지를 수신하는 경우, 응답 시간 및 TTL 정보를 기초로 백업 서비스 존 코디네이터 노드 또는 대체 서비스 존 코디네이터 노드로 선정될 수 있다.
현재 선정된 서비스 존 코디네이터 노드가 임의로 설정한 서비스 존 합의 그룹의 개수보다 적지 않은 경우 서비스 존 합의 그룹을 생성하는 단계는 다음과 같다.
서비스 존 합의 그룹을 생성하는 방법은 선정한 서비스 존 코디네이터 노드를 기준으로 이후 경쟁 블록을 마이닝한 복수의 노드를 서비스 존 밸리데이터 후보 노드로 선정할 수 있다(S860). 여기서, 경쟁 블록을 마이닝하여 블록체인에 추가한 순서에 따라 일정한 개수의 노드가 서비스 존 밸리데이터 후보 노드로 선정될 수 있다.
서비스 존 합의 그룹을 생성하는 방법은 서비스 존 밸리데이터 후보 노드 중 응답 시간 및 TTL 정보를 기초로 서비스 존 밸리데이터 노드를 결정할 수 있다(S870). 여기서, 서비스 존 밸리데이터 노드는 응답 시간 및 TTL 정보를 이용함으로써 서비스 존 코디네이터 후보로부터 물리적으로 근접한 위치에 존재할 수 있으며, 서비스 존 밸리데이터 후보 노드 중 서비스 존 밸리데이터 노드를 결정하는 구체적인 방법은 도 9와 함께 후술하겠다.
마지막으로, 서비스 존 합의 그룹을 생성하는 방법은 결정한 서비스 존 코디네이터 노드 및 결정한 서비스 존 밸리데이터 노드로 구성되는 서비스 존 합의 그룹을 생성할 수 있다(S880).
다만, 도 8에는 도시하지 않았으나, 서비스 존 코디네이터 후보 노드가 존재하여, 서비스 존 코디네이터 후보 노드 중 백업 서비스 존 코디네이터 노드 또는 대체 서비스 존 코디네이터 노드가 선정된 경우, 백업 서비스 존 코디네이터 노드 또는 대체 서비스 존 코디네이터 노드를 포함하여 하나의 서비스 존 합의 그룹을 생성할 수도 있다.
도 9는 본 발명의 일 실시예에 따른 서비스 존 코디네이터 노드의 근처에 존재하는 서비스 존 밸리데이터 노드를 결정하기 위한 결정 기준을 나타낸 도면이다.
도 9를 참조하면, 본 발명의 일 실시예에 따른 서비스 존 밸리데이터 후보 노드 중 서비스 존 밸리데이터 노드를 결정하는 방법은 도 9의 (a)와 같이 슈도코드(pseudocode)로 기술된 응답 시간 및 TTL 정보를 가중치로 적용한 Verifiable Random Function(VRF)을 서비스 존 밸리데이터 후보 노드에 적용하여 해시데이터가 미리 설정한 조건을 만족하는지를 판단할 수 있다. 또한, 해시데이터가 미리 설정한 조건을 만족하지 않는 경우, 다음 서비스 존 밸리데이터 후보 노드에 적용하여 해시데이터가 미리 설정한 조건을 만족하는지를 판단할 수 있으며, 서비스 존 밸리데이터 후보 노드에 모두 적용한 후, 해시데이터가 미리 설정한 조건을 만족하는 서비스 존 밸리데이터 후보 노드를 서비스 존 밸리데이터 노드로 결정할 수 있다.
또한, 도 9의 (b)와 같이, VRF의 입력값, VRF의 수행 결과 값인 해시데이터 및 proof를 기초로 결정 기준에 대한 검증을 수행할 수도 있다.
도 10은 본 발명의 일 실시예에 따른 서비스 존 코디네이터(SZone_Coordinators) 간의 리더 선출 과정 또는 서비스 존 밸리데이터(SZone_Validators) 간의 리더 선출 과정에서의 각 노드의 상태 및 상태 변경 이벤트를 나타낸 도면이다.
도 10을 참조하면, 본 발명의 일 실시예에 따른 서비스 존 합의 그룹은 서비스 존 합의 그룹 내에 존재하는 복수의 서비스 존 밸리데이터 노드 간에 합의를 수행하기 위해 상기 복수의 서비스 존 밸리데이터 노드 간에 리더를 투표로 선정하여, 리더 노드를 선출할 수 있다. 또한, 복수의 서비스 존 합의 그룹은 복수의 서비스 존 합의 그룹 간에 합의를 수행하기 위해 복수의 서비스 존 코디네이터 노드 간에 리더를 투표로 선정하여, 리더 노드를 선출할 수 있다. 여기서, 리더 노드인 서비스 존 코디네이터 노드를 포함하는 서비스 존 합의 그룹을 리더 그룹으로 지칭할 수 있다.
여기서, 리더 노드 및 리더 그룹을 선출하는 방법은 동일하므로, 복수의 서비스 존 합의 그룹 간의 리더 그룹을 선출하는 방법만을 설명하겠다.
서비스 존 합의 그룹의 서비스 존 코디네이터 노드는 팔로워(follower), 후보(candidate) 및 리더(leader) 중 어느 하나의 상태를 가질 수 있으며, 이에 따라 서비스 존 합의 그룹의 상태가 결정될 수 있다. 서비스 존 합의 그룹의 서비스 존 코디네이터 노드가 초기에 팔로워 상태였다고 가정하면, 임의의 시간(term)이 종료하면 리더 선출이 시작되어, 팔로워 상태에서 후보 상태로 상태가 변경될 수 있다. 이후, 다른 서비스 존 합의 그룹의 서비스 존 코디네이터 노드가 리더 상태에 있는 리더 그룹을 발견하면, 서비스 존 합의 그룹의 서비스 존 코디네이터 노드는 다시 팔로워 상태로 상태가 변경될 수 있으나, 리더가 발견되지 않고, 임의의 시간이 다시 종료되면, 다시 리더 선출이 시작되어, 후보 상태로 유지할 수 있다.
서비스 존 합의 그룹의 서비스 존 코디네이터 노드는 임의의 시간이 종료되기 전에 다른 대부분의 서비스 존 합의 그룹의 서비스 존 코디네이터 노드로부터 투표 메시지를 수신한 경우, 후보 상태에서 리더 상태로 상태가 변경될 수 있다. 다만, 더 높은 임의의 시간(term)을 가진 서비스 존 합의 그룹의 서비스 존 코디네이터 노드를 발견한 경우, 리더 상태에서 팔로워 상태로 상태가 변경될 수 있다.
서비스 존 합의 그룹 간에 리더 그룹을 선출하는 방법은 도 11과 같이 더욱 상세하게 후술하겠다.
도 11은 본 발명의 일 실시예에 따른 복수의 서비스 존 합의 그룹을 제어할 수 있는 인터-서비스 존 리더를 선출하는 방법을 나타낸 플로우 차트이다.
도 11을 참조하면, 본 발명의 일 실시예에 따른 복수의 서비스 존 합의 그룹 중 리더 그룹을 선출하는 방법을 설명하기 위해 4개의 서비스 존 합의 그룹이 존재하고, 각 서비스 존 합의 그룹의 서비스 존 코디네이터 노드는 초기 상태로 팔로워 상태를 가진다고 가정한다.
서비스 존 합의 그룹 1(100)의 서비스 존 코디네이터 노드는 임의의 시간(랜덤 E_T1) 동안 팔로워 상태에 있고, 서비스 존 합의 그룹 2(200)의 서비스 존 코디네이터 노드는 임의의 시간(랜덤 E_T2) 동안 팔로워 상태에 있다. 또한, 서비스 존 합의 그룹 3(300) 및 서비스 존 합의 그룹 4(400)도 동일할 수 있다.
여기서, 서비스 존 합의 그룹 2(200)의 임의의 시간이 종료되면, 서비스 존 합의 그룹 2(200)의 서비스 존 코디네이터 노드는 팔로워 상태에서 후보 상태로 상태가 변경될 수 있으며, 팔로워 상태에 있는 다른 서비스 존 합의 그룹 1, 3 및 4의 서비스 존 코디네이터 노드로 투표 메시지를 요청할 수 있다. 다른 서비스 존 합의 그룹 1, 3 및 4의 서비스 존 코디네이터 노드는 각각 임의의 시간 내에 투표 메시지 요청을 수신하면, 투표 메시지 요청에 대한 응답을 할 수 있으며, 서비스 존 합의 그룹 1, 3 및 4로부터 투표 메시지를 수신하면 서비스 존 합의 그룹 2의 서비스 존 코디네이터 노드는 후보 상태에서 리더 상태로 상태가 변경될 수 있다.
도 11을 참조하면, 서비스 존 코디네이터 노드가 팔로워 상태에 있는 서비스 존 합의 그룹을 인터-서비스 존 팔로워라고 지칭할 수 있으며, 서비스 존 코디네이터 노드가 리더 상태에 있는 서비스 존 합의 그룹을 인터-서비스 존 리더라고 지칭할 수 있다.
여기서, 투표 메시지 요청에 대한 응답은 모든 서비스 존 합의 그룹의 서비스 존 코디네이터로부터 수신할 것을 요구하지는 않으며, 대부분의 서비스 존 합의 그룹의 서비스 존 코디네이터로부터 수신하면 리더 선출 기준을 충족할 수 있다. 여기서, 리더 선출 기준은 PBFT(practical byzantine fault tolerance)에 따라 결정될 수 있다. PBFT는 도 14와 함께 후술하겠다.
여기서, 인터-서비스 존 리더는 각 서비스 존 합의 그룹이 서로 다른 임의의 시간(term)이 반복되며, 각 term마다 다른 서비스 존 합의 그룹의 서비스 존 코디네이터 노드가 될 수 있으므로, 악의적인 노드에 의한 공격을 방어할 수 있다.
도 12는 본 발명의 일 실시예에 따른 복수의 서비스 존 합의 그룹 간에 그룹 구성 정보 및 관리 정보를 공유하는 동작을 나타낸 개념도이다.
도 12를 참조하면, 본 발명의 일 실시예에 따른 복수의 서비스 존 코디네이터 노드는 상술한 과정을 통해 하나의 리더 상태 및 팔로워 상태일 수 있다. 여기서, 리드 상태의 서비스 존 코디네이터 노드를 인터-서비스 존 리더라고 지칭할 수 있으며, 팔로워 상태의 서비스 존 코디네이터를 인터-서비스 존 팔로워라고 지칭할 수 있다. 또한, 본 발명의 설평의 편의를 위해 서비스 존 합의 그룹 2(200)의 서비스 존 코디네이터 노드를 리더 상태로 가정하고, 서비스 존 합의 그룹 1(100), 서비스 존 합의 그룹 3(300) 및 서비스 존 합의 그룹 4(400)의 서비스 존 코디네이터 노드를 팔로워 상태로 가정한다.
인터-서비스 존 팔로워는 주기적으로 자신의 서비스 존 합의 그룹의 운용 정보를 포함하는 메시지를 인터-서비스 존 리더로 송신할 수 있다. 여기서, 메시지를 주기적으로 송신하는 동작을 인터-서비스 존 하트비트(inter-SZone Heartbeat)라고 지칭할 수 있고, 서비스 존 합의 그룹의 운용 정보는 구성 정보 및 관리 정보를 포함할 수 있으며, 구성 정보 및 관리 정보는 서비스 존 코디네이터 노드 ID(identification), 서비스 존 밸리데이터 노드 ID 리스트 및 스마트 컨트렉트 상태 키를 포함할 수 있다.
서비스 존 코디네이터 노드 ID는 서비스 존 코디네이터 노드의 공개 키 해시(public key hash) 값을 포함할 수 있고, 서비스 존 밸리데이터 노드 ID 리스트는 서비스 존 밸리데이터 노드 ID의 공개 키 해시(public key hash) 값들의 리스트를 포함할 수 있다. 또한, 스마트 컨트렉트 상태 키는 서비스 ID, 계정(account), 서비스 변수(service variable), 서비스 함수(service function) 및 실행 결과(execution result) 중 적어도 하나를 포함할 수 있다.
인터-서비스 존 리더는 수신한 각 서비스 존 합의 그룹의 운용 정보를 포함하는 메시지를 서비스 존 관리 원장의 관리 트랜잭션 블록체인에 분산 저장할 수 있다.
상술한 과정과 유사하게, 서비스 존 합의 그룹 내의 복수의 서비스 존 밸리데이터 노드는 하나의 리더 노드와 나머지의 팔로워 노드로 결정될 수 있으며, 각 팔로워 노드는 운용 정보를 포함하는 메시지를 리더 노드로 주기적으로 송신할 수 있다. 이 경우의 주기적인 송신 동작은 서비스 존 하트비트(SZone Heartbeat)라고 지칭할 수 있다. 또한, 리더 노드는 수신한 팔로워 노드의 운용 정보를 동일한 서비스 존 합의 그룹의 서비스 존 코디네이터 노드로 송신할 수 있고, 서비스 존 코디네이터 노드는 수신한 운용 정보를 기초로 다른 서비스 존 합의 그룹의 서비스 존 코디네이터 노드와 합의를 수행할 수 있다.
도 13은 본 발명의 일 실시예에 따른 복수의 서비스 존 합의 그룹 간에 공유된 그룹 구성 및 관리 정보를 최종적으로 분산 합의하여 서비스 존 관리 원장에 저장하는 과정을 나타낸 플로우 차트이다.
도 13을 참조하면, 본 발명의 일 실시예에 따른 복수의 서비스 존 합의 그룹 간의 분산 합의 과정은 우선, 각 서비스 존 합의 그룹 내에서 팔로우 상태의 서비스 존 밸리데이터 노드가 리더 상태의 서비스 존 밸리데이터 노드로 운용 정보를 주기적으로 송신할 수 있으며, 리더 상태의 서비스 존 밸리데이터 노드는 수신한 운용 정보를 해당 서비스 존 합의 그룹의 코디네이터 노드로 송신할 수 있다. 운용 정보를 수신한 팔로워 그룹의 서비스 존 코디네이터 노드는 운용 정보를 리더 그룹의 서비스 존 코디네이터 노드로 주기적으로 송신할 수 있다.
여기서, 리드 그룹을 인터-서비스 존 리더라고 지칭할 수 있으며, 팔로워 그룹은 인터-서비스 존 팔로워라고 지칭할 수 있다. 팔로워 상태의 서비스 존 밸리데이터 노드의 주기적인 송신 동작은 서비스 존 하트비트라고 지칭할 수 있으며, 팔로워 상태의 서비스 존 합의 그룹의 코디네이터 노드의 주기적인 송신 동작은 인터-서비스 존 하트비트라고 지칭할 수 있다.
또한, 서비스 존 합의 그룹 중 리더 그룹의 코디네이터 노드는 주기적으로 수신한 인터-서비스 존 팔로워의 운용 정보를 서비스 존 관리 원장에 저장하여, 서비스 존 관리 원장의 관리 트랜잭션을 업데이트할 수 있다.
이후, 인터-서비스 존 리더 및 인터-서비스 존 팔로워의 합의 과정은 pre-prepare 단계, prepare 단계 및 commit 단계로 나누어져 수행될 수 있다.
Pre-prepare 단계는 인터-서비스 존 리더가 복수의 인터-서비스 존 팔로워로 복수의 서비스 존 합의 그룹 운영 정보에 대한 합의 과정을 수행하기 위한 메시지를 송신할 수 있다.
Prepare 단계에서 인터-서비스 존 리더의 메시지를 수신한 복수의 인터-서비스 존 팔로워 각각은 다른 노드들에서 받은 메시지를 다시 한번 나머지 노드들(인터-서비스 존 리더 및 다른 인터-서비스 존 팔로워들)에게 전파할 수 있다.
Commit 단계에서 Prepare 단계를 수행한 모든 노드들(인터-서비스 존 리더 및 다른 인터-서비스 존 팔로워들)은 자신이 다른 노드에서 가장 많이 받은 메시지(정족수이상)가 무엇인지 다른 노드들에게 전파할 수 있다.
상술한 과정이 끝나면 모든 노드들(인터-서비스 존 리더 및 다른 인터-서비스 존 팔로워들)은 정족수 이상이 복수의 서비스 존 합의 그룹 운영 정보에 대해서 동의한, 즉 합의를 이룬 같은 데이터를 가질 수 있다.
상술한 바와 같이, 모든 서비스 존 합의 그룹의 서비스 존 코디네이터 노드들 간에 이루어지는 Prepare 및 Commit 단계라는 두 번의 브로드캐스팅(broadcasting) 과정을 통해 전체 서비스 존 합의 그룹들의 서비스 존 코디네이터 노드(N 개) 중 일부 비잔틴 노드(F 개)가 이상한 메시지를 보내거나 문제가 있어도 PBFT 합의 프로토콜 방식으로 네트워크의 모든 노드는 업데이트된 서비스 존 합의 그룹 운영 정보에 대하여 동일한 메시지를 가질 수 있고, 합의 정보를 서비스 존 관리 원장에 저장할 수 있다. 여기서, N 및 F는 임의의 양의 정수일 수 있고, F는 N보다 작을 수 있다.
도 14는 본 발명의 일 실시예에 따른 복수의 서비스 존 합의 그룹 간의 계층적 합의 방법을 나타낸 도면이다.
도 14를 참조하면, 본 발명의 일 실시예에 따른 복수의 서비스 존 합의 그룹 간의 합의 방법은 인터-서비스 존 리더에 의해 사용자의 요청 서비스의 트랜잭션이 하나의 서비스 존 합의 그룹 내에서 처리되는지 또는 복수의 서비스 존 합의 그룹 간에 처리되는지의 결정이 선행될 수 있다.
도 14와 같이 설명의 편의를 위해 인터-서비스 존 서비스 요청의 input 서비스 존이 서비스 존 합의 그룹 3 및 4로 결정되고, output 서비스 존이 서비스 존 합의 그룹 1로 결정되었다고 가정한다.
인터-서비스 존 리더는 input 서비스 존에 해당하는 서비스 존 합의 그룹 3의 서비스 존 코디네이터 노드인 인터-서비스 존 팔로워 3 및 서비스 존 합의 그룹 4의 서비스 존 코디네이터 노드인 인터-서비스 존 팔로워 4로 메시지를 송신하여 합의를 수행하도록 할 수 있다.
인터-서비스 존 리더로부터 메시지를 수신한 인터-서비스 존 팔로워 3 및 인터-서비스 존 팔로워 4 는 각 서비스 존 합의 그룹 내의 밸리데이터 노드 간의 합의를 선행하여 수행하도록 할 수 있다. 여기서, 합의는 PBFT 알고리즘을 통해 수행될 수 있다.
PBFT(practical byzantine fault tolerance) 알고리즘은 상태 기계 복제에 사용하는 합의 알고리즘으로 볼록 체인의 비잔틴 제네럴 문제(byzantine general problem)라는 분산 네트워크 문제를 해결할 수 있다. 여기서, 비잔틴 제네럴 문제는 악의적인 노드가 분산 시스템에 참여한 상황에서 전체 시스템이 신뢰도 있는 서비스를 제공할 수 있는 문제에 대한 것일 수 있다. 이러한 문제는 블록체인의 경우 하나의 주체가 네트워크를 구성하는 것이 아니며, 신뢰 관계가 아닌 노드들이 모여 네트워크를 구성하므로, 각 노드들이 네트워크 조작을 통해 부당한 이득을 취하는 것이 가능하므로 발생할 수 있다. 따라서, 이러한 문제를 해결하여야 분산시스템에서 특정 노드가 해킹 또는 오작동이 발생해도 네트워크가 여전히 신뢰도 있는 서비스를 제공할 수 있다. PBFT는 이러한 문제를 해결할 수 있는 BFT(byzantine fault tolerance) 알고리즘 중 하나일 수 있다.
다시 말해, PBFT는 분산시스템이 약속된 행동을 하지 않는 비잔틴 노드가 존재하는 경우, 분산시스템에 참여한 모든 노드가 성공적으로 합의를 수행할 수 있도록 개발된 것으로, 비잔틴 노드의 개수가 f인 경우, 2f+1 이상의 노드의 동의 응답을 통해 장애를 극복할 수 있는 합의 알고리즘일 수 있다. 여기서, f는 양의 정수일 수 있다.
PBFT는 비잔틴 노드에 의한 네트워크 분기 시도 또는 네트워크 정지 시도를 방지하기 위해 네트워크의 모든 노드로 2번 합의 데이터를 송신할 수 있다. 다만, 모든 노드에 2번 데이터를 송신하므로 통신량이 많아질 수 있는 단점이 있다. 따라서, PBFT는 많은 통신량으로 인해 성능 저하가 일어날 수 있으므로, 노드 확장성(node scalability)에 제약이 발생할 수 있는 단점도 있다.
본 발명은 지역적인 서비스 존 합의 그룹에서 처리될 수 있는 서비스의 트랜잭션은 로컬 서비스 존 프라이빗 원장에서 관리하고, 복수의 서비스 존 합의 그룹에서 처리될 수 있는 서비스의 트랜잭션은 인터-서비스 존 공개 원장에 업데이트하여 관리하므로, 이러한 단점을 극복할 수 있다. 여기서, 로컬 서비스 존 프라이빗 원장은 해당 서비스 존 합의 그룹의 참여 노드에게만 정보가 공유되도록 하여 개인 정보 프라이버시를 보장할 수 있고, 인터-서비스 존 공개 원장은 필요 시 각 서비스 존 합의 그룹의 서비스 존 밸리데이터 노드에게 모두 공유되도록 할 수 있다.
PBFT 알고리즘의 합의 방법을 더욱 살펴보면, 서비스 존 합의 그룹은 서비스 존 합의 그룹 내의 서비스 존 밸리데이터 노드 중 리더 노드는 f개의 비잔틴 노드에 대비하여 2f+1개의 서비스 존 밸리데이터 노드의 동의 응답을 수신하여 최종적으로 생성된 블록을 로컬 서비스 존 프라이빗 원장에 저장할 수 있다.
다시 말해, 도 14를 참조하면, 서비스 존 합의 그룹 3(300) 및 서비스 존 합의 그룹 4(400)의 서비스 존 밸리데이터 노드 중 리더 노드는 서비스 존 밸리데이터 노드 중 f개의 비잔틴 노드를 대비하여 서비스 존 밸리데이터 노드 2f+1개의 동의 응답을 수신하여 서비스 존 합의 그룹 별 합의를 수행할 수 있다. 또한, 각 서비스 존 합의 그룹의 리더 노드는 PBFT 수행 결과를 해당 인터-서비스 존 팔로워로 송신할 수 있으며, 인터-서비스 존 팔로워 3은 PBFT 수행 결과를 인터-서비스 존 리더 및 인터-서비스 존 팔로워 4 로 송신할 수 있고, 인터-서비스 존 팔로워 4는는 PBFT 수행 결과를 인터-서비스 존 리더 및 인터-서비스 존 팔로워 3으로 송신할 수 있다. 여기서, PBFT 수행 결과는 EIG(exponential information gathering) 트리와 같은 데이터를 의미할 수 있으나, 이에 한정하지 않는다. EIG 트리에 대해서는 도 15에서 상세히 후술하겠다.
인터-서비스 존 리더는 인터-서비스 존 팔로워 3 및 4의 PBFT 수행 결과를 수신한 후, 인터-서비스 존 팔로워 3 및 4 로 인터-서비스 합의를 수행하도록 메시지를 송신할 수 있다.
인터-서비스 존 팔로워 3 및 4는 각각 다시 PBFT를 수행하고, PBFT 수행 결과를 서로 교환하여 인터 서비스 존 합의를 수행할 수 있다. 또한, 인터-서비스 존 팔로워 3 는 합의 결과에 대한 정보를 인터-서비스 존 리더 및 인터-서비스 존 팔로워 4 로 송신할 수 있고, 인터-서비스 존 팔로워 4는 합의 결과에 대한 정보를 인터-서비스 존 리더 및 인터-서비스 존 팔로워 3으로 송신할 수 있다.
이후, 인터-서비스 존 팔로워 3은 합의 결과에 대한 정보를 output 서비스 존 합의 그룹에 해당하는 인터-서비스 존 팔로워 1 및 인터-서비스 존 리더로 송신할 수 있고, 인터-서비스 존 팔로워 4 도 합의 결과에 대한 정보를 output 서비스 존 합의 그룹에 해당하는 인터-서비스 존 팔로워 1 및 인터-서비스 존 리더로 송신할 수 있으며, 인터-서비스 존 리더는 수신한 합의 정보를 인터-서비스 존 공개 원장 및 서비스 존 관리 원장에 저장할 수 있다.
도 15는 본 발명의 일 실시예에 따른 EIG 트리를 나타낸 도면이다.
도 15를 참조하면, 본 발명의 일 실시예에 따른 서비스 존 합의 그룹은 그룹 별로 PBFT를 수행할 수 있으며, 그룹 내의 서비스 존 밸리데이터 노드의 EIG(exponential information gathering) 트리 형태의 합의 결과를 획득할 수 있다.
합의 결과는 EIG 트리 자료 구조에 두 가지 단계에 따라 값을 채울 수 있다.
제1 단계는 수신된 메시지를 채우는 매시징 단계이다. 서비스 존 합의 그룹의 서비스 존 밸리데이터 노드들은 동일한 서비스 존 합의 그룹의 코디네이터 노드로부터 메시지를 수신할 수 있으며, 수신한 메시지를 top-down 순으로 EIG 트리에 값을 채울 수 있다.
제2 단계는 평가 단계이다. 서비스 존 합의 그룹의 밸리데이터 노드들은 top-down 순으로 EIG 트리에 채워진 수신한 메시지 값을 기초로 bottom-up 순으로 평가를 수행하여 EIG 트리에 값을 채울 수 있다.
도 15를 참조하면, EIG 트리의 위의 값은 제1 단계에서 채워진 값이며, 아래의 값은 제2 단계에서 채워진 값일 수 있다. EIG 트리에 값을 채우는 방법에 대해서 더욱 설명하기 위해 서비스 존 합의 그룹에 4개의 서비스 존 밸리데이터 노드가 존재하는 것으로 가정하고, 도 15의 1, 2, 3 및 4는 각 서비스 존 밸리데이터 노드라고 가정한다. 또한, td는 tree depth를 의미할 수 있다.
제1 단계 서비스 존 합의 그룹의 코디네이터 노드는 다른 서비스 존 합의 그룹의 코디네이터 노드로부터 0 값을 수신할 수 있다. 여기서, 0 값은 은 td=0의 위의 값에 채워질 수 있다. 서비스 존 코디네이터 노드는 제1 밸리데이터 노드 및 제2 밸리데이터 노드로 0 값을 송신할 수 있고, 제3 밸리데이터 노드 및 제4 밸리데이터 노드로 1 값을 송신할 수 있다. 여기서, 0, 0, 1 및 1은 td=1의 1, 2, 3 및 4의 위의 값에 순차적으로 채워질 수 있다. 이후, 제1 밸리데이터 노드는 제2 밸리데이터 노드 및 제3 밸리데이터 노드로 0 값을 송신할 수 있고, 제4 밸리데이터 노드로 1 값을 송신할 수 있다. 여기서, 0, 0 및 1은 td=2의 2, 3 및 4의 위의 값에 순차적으로 채워질 수 있다. 제2 밸리데이터 노드는 제1 밸리데이터 노드, 제3 밸리데이터 노드 및 제4 밸리데이터 노드로 0 값을 송신할 수 있다. 여기서, 0, 0 및 0은 td=2의 1, 3 및 4의 위의 값에 채워질 수 있다. 제3 밸리데이터 노드는 제1 밸리데이터 노드, 제3 밸리데이터 노드 및 제4 밸리데이터 노드로 1 값을 송신할 수 있다. 여기서, 1, 1 및 1은 td=2의 1, 2 및 4의 위의 값에 채워질 수 있다. 제4 밸리데이터 노드는 제1 밸리데이터 노드, 제2 밸리데이터 노드 및 제3 밸리데이터 노드로 1 값을 송신할 수 있다. 여기서, 1, 1 및 1은 td=2의 1, 2 및 3의 위의 값에 채워질 수 있다.
제2 단계에서 채워진 위의 값을 기초로 평가를 수행하는 것으로, 우선 밸리데이터 노드가 밸리데이터 노드로 송신한 값은 그대로 아래의 값으로 채워질 수 있다. 다시 말해, td=2의 위의 값은 그대로 아래의 값이 될 수 있다. 이후, td=2의 2, 3 및 4의 아래의 값인 0, 0 및 1 중 다수 값인 0이 td=1의 1의 아래의 값으로 결정될 수 있고, td=2의 1, 3 및 4의 아래의 값인 0, 0 및 0 중 다수 값인 0이 td=1의 2의 아래 값으로 결정될 수 있다. 또한, td=2의 1, 2 및 4의 아래 값인 1, 1 및 1 중 다수 값인 1이 td=1의 3의 아래 값으로 결정될 수 있고, td=2의 1, 2 및 3의 아래 값인 1, 1 및 1 중 다수 값인 1이 td=1의 4의 아래 값으로 결정될 수 있다. 마지막으로, td=1의 1, 2, 3 및 4의 아래 값인 0, 0, 1 및 1 중에는 다수 값이 없으므로, 0이 td=0의 아래 값으로 결정될 수 있다.
이에 따라 서비스 존 합의 그룹은 td=0에서 수신한 값과 평가한 값이 동일한지 판단하여 합의를 수행할 수 있다.
도 16은 본 발명의 일 실시예에 따른 멀티 블록체인 형태의 분산 합의 원장을 나타낸 도면이다.
도 16을 참조하면, 본 발명의 일 실시예에 따른 멀티 블록체인 형태의 분산 합의 원장은 글로벌 PoW 타임싱크 블록체인, 서비스 트랜잭션 블록체인 및 관리 트랜잭션 블록체인을 포함할 수 있고, 서비스 트랜잭션 블록체인은 서비스 존 합의 그룹 별 로컬 서비스 존 프라이빗 원장 및 인터-서비스 존 공개 원장을 포함할 수 있다.
여기서, 인터-서비스 존 공개 원장 및 로컬 서비스 존 프라이빗 원장의 체크지점 동기화를 위해 글로벌 PoW 타임싱크 블록체인에서 PoW에 의해 확률적으로 일정한 간격으로 생성되는 블록 데이터를 타임싱크 블록으로 활용할 수 있다.
따라서, 본 발명은 글로벌 공개 원장 형태의 분산 원장이 아닌 서비스 지역별로 로컬 원장 형태로 분산 저장하여 관리하며 병렬로 서비스 트랜잭션을 처리하므로, 확장성(scalability) 한계를 극복할 수 있고, 개인 정보 보안을 보장해줄 수 있다.
또한, 본 발명의 합의 원장은 동일한 제네시스 블록(genesis block)에서부터 연결되어 서비스별 멀티 채널에 대응되는 서비스 ID 정보가 포함된 서비스 루트 블록(root block)인 서비스 블록으로 시작되는 멀티 블록 체인 구조로 서비스 트랜잭션을 관리하므로, 해당 서비스에 관련된 블록체인 subset을 추적할 수 있으므로 서비스 기능을 용이하게 검증할 수 있다.
본 발명의 합의 원장에 포함되는 서비스 존 관리 원장은 서비스 존 합의 그룹 별 서비스 존 밸리데이터 노드의 signature 정보로 구성된 merkle signatures 정보, 서비스 이름의 해시, 포트 번호의 해시 및 전송 프로토콜의 해시를 포함하는 서비스 ID 및 스마트 컨트렉트 상태 키 정보를 관리 트랜잭션 블록체인에 별도로 저장하여 관리할 수 있다. 또한, 서비스 존 관리 원장은 서비스 존 합의 그룹의 서비스 존 코디네이터 노드 별 스토리지 자원의 위치를 나타내는 저장소 URI 및 merkle signatures 정보도 관리 트랜잭션 블록체인에 저장하여 관리할 수 있다.
본 발명의 실시예에 따른 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.
또한, 컴퓨터가 읽을 수 있는 기록매체는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 프로그램 명령은 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
본 발명의 일부 측면들은 장치의 문맥에서 설명되었으나, 그것은 상응하는 방법에 따른 설명 또한 나타낼 수 있고, 여기서 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 상응한다. 유사하게, 방법의 문맥에서 설명된 측면들은 또한 상응하는 블록 또는 아이템 또는 상응하는 장치의 특징으로 나타낼 수 있다. 방법 단계들의 몇몇 또는 전부는 예를 들어, 마이크로프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이용하여) 수행될 수 있다. 몇몇의 실시예에서, 가장 중요한 방법 단계들의 하나 이상은 이와 같은 장치에 의해 수행될 수 있다.
실시예들에서, 프로그램 가능한 로직 장치(예를 들어, 필드 프로그머블 게이트 어레이)가 여기서 설명된 방법들의 기능의 일부 또는 전부를 수행하기 위해 사용될 수 있다. 실시예들에서, 필드 프로그머블 게이트 어레이는 여기서 설명된 방법들 중 하나를 수행하기 위한 마이크로프로세서와 함께 작동할 수 있다. 일반적으로, 방법들은 어떤 하드웨어 장치에 의해 수행되는 것이 바람직하다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 서비스 존 합의 그룹 1 200: 서비스 존 합의 그룹 2
300: 서비스 존 합의 그룹 3 400: 서비스 존 합의 그룹 4
600: 계층적 합의 장치 610: 프로세서
620: 메모리 630: 저장 장치

Claims (20)

  1. 복수의 서비스 존 합의 그룹의 정보를 저장하는 서비스 존 관리 원장(service zone management ledger)을 기초로 사용자의 요청 서비스의 트랜잭션(transaction)이 서비스 존 합의 그룹 내에서 처리되는지 또는 복수의 서비스 존 합의 그룹을 통해 처리되는지 판단하는 단계;
    상기 판단 결과에 따라 인터-서비스 존 공개 원장(inter-service zone public ledger) 또는 서비스 존 합의 그룹 별로 존재하는 로컬 서비스 존 프라이빗 원장(local service zone private ledger)을 기초로 적어도 하나의 서비스 존 합의 그룹에서 PBFT(practical byzantine fault tolerance) 알고리즘을 이용하여 합의를 수행하는 단계; 및
    상기 판단 결과에 따라 상기 합의의 정보를 상기 인터-서비스 존 공개 원장 또는 상기 로컬 서비스 존 프라이빗 원장에 분산 저장하는 단계를 포함하는, 계층적 합의 방법.
  2. 청구항 1에 있어서,
    상기 서비스 존 관리 원장, 상기 인터-서비스 존 공개 원장 및 상기 로컬 서비스 존 프라이빗 원장에 블록체인의 작업 증명(proof of work, PoW) 블록을 관리하는 글로벌 PoW 타임싱크 블록체인(global PoW timesync blockchain)을 동기화하여 멀티 블록체인 형태의 분산 합의 원장을 관리하는 단계를 더 포함하는, 계층적 합의 방법.
  3. 청구항 1에 있어서,
    상기 사용자의 요청 서비스의 트랜잭션이 서비스 존 합의 그룹 내에서 처리되는지 또는 복수의 서비스 존 합의 그룹을 통해 처리되는지 판단하는 단계는,
    상기 트랜잭션과 관련된 스마트 컨트렉트 상태 키(smart contract state key)를 처리하는 서비스 존 합의 그룹을 결정하는 단계를 포함하는, 계층적 합의 방법.
  4. 청구항 2에 있어서,
    상기 합의를 수행하는 단계는,
    상기 트랜잭션이 서비스 존 합의 그룹 내에서 처리되는 경우, 상기 로컬 서비스 존 프라이빗 원장을 기초로 상기 서비스 존 합의 그룹 내의 복수의 노드 간에 상기 PBFT 알고리즘을 이용하여 합의를 수행하는 단계; 및
    상기 트랜잭션이 복수의 서비스 존 합의 그룹을 통해 처리되는 경우, 상기 인터-서비스 존 공개 원장을 기초로 상기 복수의 서비스 존 합의 그룹 간에 상기 PBFT 알고리즘을 이용하여 합의를 수행하는 단계를 포함하는, 계층적 합의 방법.
  5. 청구항 4에 있어서,
    상기 분산 저장하는 단계는,
    상기 트랜잭션이 서비스 존 합의 그룹 내에서 처리되는 경우, 상기 복수의 노드 간의 합의 정보를 상기 로컬 서비스 존 프라이빗 원장에 저장하는 단계; 및
    상기 트랜잭션이 복수의 서비스 존 합의 그룹을 통해 처리되는 경우, 상기 복수의 서비스 존 합의 그룹 간의 합의 정보를 상기 인터-서비스 존 공개 원장에 저장하는 단계를 포함하는, 계층적 합의 방법.
  6. 청구항 4에 있어서,
    상기 서비스 존 합의 그룹은,
    다른 서비스 존 합의 그룹과 합의를 수행하는 코디네이터(coordinator) 노드 및 상기 서비스 존 합의 그룹 내에서 합의를 수행하는 적어도 하나의 밸리데이터(validator) 노드를 포함하는, 계층적 합의 방법.
  7. 청구항 6에 있어서,
    상기 코디네이터 노드는,
    상기 글로벌 PoW 타임싱크 블록체인에 존재하는 복수의 블록 중 가장 길게 연결된 블록을 마이닝(mining)한 적어도 하나의 노드 중 어느 하나로 결정되는, 계층적 합의 방법.
  8. 청구항 7에 있어서,
    상기 밸리데이터 노드는,
    상기 코디네이터 노드가 결정된 후, 블록을 마이닝한 순서를 기초로 선정한 적어도 하나의 밸리데이터 노드의 후보 중 상기 코디네이터 노드의 송신 패킷에 대한 응답 시간 및 TTL(time to live) 정보를 기초로 결정되는, 계층적 합의 방법.
  9. 청구항 6에 있어서,
    상기 서비스 존 합의 그룹 내의 복수의 노드 간에 상기 PBFT 알고리즘을 이용하여 합의를 수행하는 단계는,
    상기 적어도 하나의 밸리데이터 노드 중 리더 노드를 선출하는 단계; 및
    상기 리더 노드 및 상기 적어도 하나의 밸리데이터 노드 중 상기 리더 노드를 제외한 밸리데이터 노드 간에 상기 로컬 서비스 존 프라이빗 원장을 기초로 PBFT 알고리즘을 이용하여 합의를 수행하는 단계를 포함하는, 계층적 합의 방법.
  10. 청구항 6에 있어서,
    상기 복수의 서비스 존 합의 그룹 간에 상기 PBFT 알고리즘을 이용하여 합의를 수행하는 단계는,
    상기 복수의 서비스 존 합의 그룹의 코디네이터 노드 간에 리더를 투표로 선정하여, 상기 복수의 서비스 존 합의 그룹 중 리더 그룹을 선출하는 단계; 및
    상기 리더 그룹의 코디네이터 노드 및 상기 복수의 서비스 존 합의 그룹 중 상기 리더 그룹을 제외한 서비스 존 합의 그룹의 코디네이터 노드 간에 상기 인터-서비스 존 공개 원장을 기초로 PBFT 알고리즘을 이용하여 합의를 수행하는 단계를 포함하는, 계층적 합의 방법.
  11. 프로세서(processor); 및
    상기 프로세서를 통해 실행되는 적어도 하나의 명령이 저장된 메모리(memory)를 포함하고,
    상기 적어도 하나의 명령은,
    복수의 서비스 존 합의 그룹의 정보를 저장하는 서비스 존 관리 원장(service zone management ledger)을 기초로 사용자의 요청 서비스의 트랜잭션(transaction)이 서비스 존 합의 그룹 내에서 처리되는지 또는 복수의 서비스 존 합의 그룹을 통해 처리되는지 판단하도록 실행되고,
    상기 판단 결과에 따라 인터-서비스 존 공개 원장(inter-service zone public ledger) 또는 서비스 존 합의 그룹 별로 존재하는 로컬 서비스 존 프라이빗 원장(local service zone private ledger)을 기초로 적어도 하나의 서비스 존 합의 그룹에서 PBFT(practical byzantine fault tolerance) 알고리즘을 이용하여 합의를 수행하도록 실행되고,
    상기 판단 결과에 따라 상기 합의의 정보를 상기 인터-서비스 존 공개 원장 또는 상기 로컬 서비스 존 프라이빗 원장에 분산 저장하도록 실행되는, 계층적 합의 장치.
  12. 청구항 11에 있어서,
    상기 적어도 하나의 명령은,
    상기 서비스 존 관리 원장, 상기 인터-서비스 존 공개 원장 및 상기 로컬 서비스 존 프라이빗 원장에 블록체인의 작업 증명(proof of work, PoW) 블록을 관리하는 글로벌 PoW 타임싱크 블록체인(global PoW timesync blockchain)을 동기화하여 멀티 블록체인 형태의 분산 합의 원장을 관리하도록 실행되는, 계층적 합의 장치.
  13. 청구항 11에 있어서,
    상기 적어도 하나의 명령은,
    상기 트랜잭션과 관련된 스마트 컨트렉트 상태 키(smart contract state key)를 처리하는 서비스 존 합의 그룹을 결정하도록 실행되는, 계층적 합의 장치.
  14. 청구항 12에 있어서,
    상기 적어도 하나의 명령은,
    상기 트랜잭션이 서비스 존 합의 그룹 내에서 처리되는 경우, 상기 로컬 서비스 존 프라이빗 원장을 기초로 상기 서비스 존 합의 그룹 내의 복수의 노드 간에 상기 PBFT 알고리즘을 이용하여 합의를 수행하도록 실행되고,
    상기 트랜잭션이 복수의 서비스 존 합의 그룹을 통해 처리되는 경우, 상기 인터-서비스 존 공개 원장을 기초로 상기 복수의 서비스 존 합의 그룹 간에 상기 PBFT 알고리즘을 이용하여 합의를 수행하도록 실행되는, 계층적 합의 장치.
  15. 청구항 14에 있어서,
    상기 적어도 하나의 명령은,
    상기 트랜잭션이 서비스 존 합의 그룹 내에서 처리되는 경우, 상기 복수의 노드 간의 합의 정보를 상기 로컬 서비스 존 프라이빗 원장에 저장하도록 실행되고,
    상기 트랜잭션이 복수의 서비스 존 합의 그룹을 통해 처리되는 경우, 상기 복수의 서비스 존 합의 그룹 간의 합의 정보를 상기 인터-서비스 존 공개 원장에 저장하도록 실행되는, 계층적 합의 장치.
  16. 청구항 14에 있어서,
    상기 서비스 존 합의 그룹은,
    다른 서비스 존 합의 그룹과 합의를 수행하는 코디네이터(coordinator) 노드 및 상기 서비스 존 합의 그룹 내에서 합의를 수행하는 적어도 하나의 밸리데이터(validator) 노드를 포함하는, 계층적 합의 장치.
  17. 청구항 16에 있어서,
    상기 코디네이터 노드는,
    상기 글로벌 PoW 타임싱크 블록체인에 존재하는 복수의 블록 중 가장 길게 연결된 블록을 마이닝(mining)한 적어도 하나의 노드 중 어느 하나로 결정되는, 계층적 합의 장치.
  18. 청구항 17에 있어서,
    상기 밸리데이터 노드는,
    상기 코디네이터 노드가 결정된 후, 블록을 마이닝한 순서를 기초로 선정한 적어도 하나의 밸리데이터 노드의 후보 중 상기 코디네이터 노드의 송신 패킷에 대한 응답 시간 및 TTL(time to live) 정보를 기초로 결정되는, 계층적 합의 장치.
  19. 청구항 16에 있어서,
    상기 적어도 하나의 명령은,
    상기 적어도 하나의 밸리데이터 노드 중 리더 노드를 선출하도록 실행되고, 상기 리더 노드 및 상기 적어도 하나의 밸리데이터 노드 중 상기 리더 노드를 제외한 밸리데이터 노드 간에 상기 로컬 서비스 존 프라이빗 원장을 기초로 PBFT 알고리즘을 이용하여 합의를 수행하도록 실행되는, 계층적 합의 장치.
  20. 청구항 16에 있어서,
    상기 적어도 하나의 명령은,
    상기 복수의 서비스 존 합의 그룹의 코디네이터 노드 간에 리더를 투표로 선정하여, 상기 복수의 서비스 존 합의 그룹 중 리더 그룹을 선출하도록 실행되고, 상기 리더 그룹의 코디네이터 노드 및 상기 복수의 서비스 존 합의 그룹 중 상기 리더 그룹을 제외한 서비스 존 합의 그룹의 코디네이터 노드 간에 상기 인터-서비스 존 공개 원장을 기초로 PBFT 알고리즘을 이용하여 합의를 수행하도록 실행되는, 계층적 합의 장치.
KR1020170168960A 2017-12-11 2017-12-11 서비스 존 기반의 계층적 합의 방법 및 장치 KR102377841B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170168960A KR102377841B1 (ko) 2017-12-11 2017-12-11 서비스 존 기반의 계층적 합의 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170168960A KR102377841B1 (ko) 2017-12-11 2017-12-11 서비스 존 기반의 계층적 합의 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20190068799A true KR20190068799A (ko) 2019-06-19
KR102377841B1 KR102377841B1 (ko) 2022-03-25

Family

ID=67104160

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170168960A KR102377841B1 (ko) 2017-12-11 2017-12-11 서비스 존 기반의 계층적 합의 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102377841B1 (ko)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102090723B1 (ko) * 2019-12-12 2020-03-18 주식회사 립페이 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법
KR102106590B1 (ko) * 2019-07-17 2020-05-04 (주)가민정보시스템 이종의 블록체인 플랫폼 간의 연동이 가능한 블록체인 네트워크 시스템 및 이에 따른 블록 체이닝 방법
KR102120882B1 (ko) 2019-09-11 2020-06-09 이민재 블록체인 기반 컨테스트 네트워크 시스템 및 컨테스트 방법
KR102230471B1 (ko) * 2019-12-26 2021-03-23 주식회사 록스307 블록체인 네트워크 상에서 효율적인 트랜젝션을 수행하기 위한 그룹 증명 생성 방법
KR20210066348A (ko) * 2019-11-28 2021-06-07 주식회사 리드포인트시스템 뉴럴 블록 클러스터 기반의 안전한 블록 체인을 구축하는 장치 및 그 동작 방법
KR20210082890A (ko) 2019-12-26 2021-07-06 서강대학교산학협력단 블록체인 네트워크에서의 처리 성능 향상 방법
CN113849564A (zh) * 2021-09-24 2021-12-28 支付宝(杭州)信息技术有限公司 一种区块链的共识方法、共识节点及电子设备
KR102376113B1 (ko) * 2020-09-28 2022-03-17 한국항공대학교산학협력단 블록체인 네트워크 기반 드론 군집과 관제 장치 간의 통신 및 관제 시스템
KR20220057823A (ko) 2020-10-30 2022-05-09 서강대학교산학협력단 블록체인 네트워크에서의 블록 사이즈 조절 방법 및 이를 이용한 블록체인 네트워크
CN116109383A (zh) * 2023-02-16 2023-05-12 北京易思汇商务服务有限公司 缴费订单服务方法、系统、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Li, Wenting, et al. "Towards scalable and private industrial blockchains." Proceedings of the ACM Workshop on Blockchain, Cryptocurrencies and Contracts. 2017(2017.04.02.)* *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102106590B1 (ko) * 2019-07-17 2020-05-04 (주)가민정보시스템 이종의 블록체인 플랫폼 간의 연동이 가능한 블록체인 네트워크 시스템 및 이에 따른 블록 체이닝 방법
KR102120882B1 (ko) 2019-09-11 2020-06-09 이민재 블록체인 기반 컨테스트 네트워크 시스템 및 컨테스트 방법
KR20210066348A (ko) * 2019-11-28 2021-06-07 주식회사 리드포인트시스템 뉴럴 블록 클러스터 기반의 안전한 블록 체인을 구축하는 장치 및 그 동작 방법
KR102090723B1 (ko) * 2019-12-12 2020-03-18 주식회사 립페이 블록체인 기반 양자난수를 이용한 양원제 합의 서비스 제공 방법
US11625260B2 (en) 2019-12-26 2023-04-11 Sogang University Research & Business Development Foundation Method for enhancing throughput in blockchain network
KR20210082890A (ko) 2019-12-26 2021-07-06 서강대학교산학협력단 블록체인 네트워크에서의 처리 성능 향상 방법
KR102230471B1 (ko) * 2019-12-26 2021-03-23 주식회사 록스307 블록체인 네트워크 상에서 효율적인 트랜젝션을 수행하기 위한 그룹 증명 생성 방법
KR102376113B1 (ko) * 2020-09-28 2022-03-17 한국항공대학교산학협력단 블록체인 네트워크 기반 드론 군집과 관제 장치 간의 통신 및 관제 시스템
KR20220057823A (ko) 2020-10-30 2022-05-09 서강대학교산학협력단 블록체인 네트워크에서의 블록 사이즈 조절 방법 및 이를 이용한 블록체인 네트워크
CN113849564A (zh) * 2021-09-24 2021-12-28 支付宝(杭州)信息技术有限公司 一种区块链的共识方法、共识节点及电子设备
CN113849564B (zh) * 2021-09-24 2024-05-28 支付宝(杭州)信息技术有限公司 一种区块链的共识方法、共识节点及电子设备
CN116109383A (zh) * 2023-02-16 2023-05-12 北京易思汇商务服务有限公司 缴费订单服务方法、系统、电子设备及存储介质
CN116109383B (zh) * 2023-02-16 2023-09-22 北京易思汇商务服务有限公司 缴费订单服务方法、系统、电子设备及存储介质

Also Published As

Publication number Publication date
KR102377841B1 (ko) 2022-03-25

Similar Documents

Publication Publication Date Title
KR20190068799A (ko) 서비스 존 기반의 계층적 합의 방법 및 장치
JP7362654B2 (ja) 分割されたブロックチェーンネットワークにおけるブロックチェーンのブロックの維持管理
Gramoli From blockchain consensus back to Byzantine consensus
KR101727525B1 (ko) 블록체인 기반 분산 저장 방법 및 이를 이용한 장치
US10289631B2 (en) Method and system for tuning blockchain scalability for fast and low-cost payment and transaction processing
CN110400221B (zh) 数据处理方法、系统、存储介质及计算机设备
Sabry et al. The road to the blockchain technology: Concept and types
CN109472572B (zh) 基于区块链主链加并行多子链的合约系统
CN110915166A (zh) 区块链
JP2020522149A (ja) ブロックチェーンのワールドステートマークルパトリシアトライ(world state merkle patricia trie)サブツリーの更新
KR20190070163A (ko) 네트워크를 통해 서로 통신하는 노드들 각각의 자원 운영 방법, 그리고 그러한 노드들 중 어느 하나로 동작하는 컴퓨터 장치
JP2020525876A (ja) 分散型台帳システムにおけるトランザクションのパラレル実行の実施
CN112527912B (zh) 基于区块链网络的数据处理方法、装置及计算机设备
Wang et al. Performance benchmarking and optimization for blockchain systems: A survey
CN113328997B (zh) 联盟链跨链系统及方法
CN110771127A (zh) 用于区块链网络中一致分布式内存池的方法和系统
CN111597567B (zh) 数据处理方法、装置、节点设备及存储介质
Chen Flowchain: A distributed ledger designed for peer-to-peer iot networks and real-time data transactions
KR20220088956A (ko) 기밀 지식의 특화된 증명을 제공하는 시스템들 및 방법들
US11372847B2 (en) Block verification device, block verification method, and program
US20200394162A1 (en) Operation management method for distributed ledger system, operation management system for distributed ledger system, and operation management program for distributed ledger system
Liao et al. Achieving IoT data security based blockchain
KR20190078668A (ko) 검증가능한 추첨을 위한 장치 및 방법
CN115606150A (zh) 多层通信网络
JP2022551874A (ja) セキュアな共生(Symbiosis)マイニングのための方法および装置

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