KR102258722B1 - 동적 블록체인 시스템 및 그의 동작 방법 - Google Patents

동적 블록체인 시스템 및 그의 동작 방법 Download PDF

Info

Publication number
KR102258722B1
KR102258722B1 KR1020180140755A KR20180140755A KR102258722B1 KR 102258722 B1 KR102258722 B1 KR 102258722B1 KR 1020180140755 A KR1020180140755 A KR 1020180140755A KR 20180140755 A KR20180140755 A KR 20180140755A KR 102258722 B1 KR102258722 B1 KR 102258722B1
Authority
KR
South Korea
Prior art keywords
transaction
node
nodes
terminal
block
Prior art date
Application number
KR1020180140755A
Other languages
English (en)
Other versions
KR20200056729A (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 KR1020180140755A priority Critical patent/KR102258722B1/ko
Publication of KR20200056729A publication Critical patent/KR20200056729A/ko
Application granted granted Critical
Publication of KR102258722B1 publication Critical patent/KR102258722B1/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/1025Dynamic adaptation of the criteria on which the server selection is based
    • 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/1059Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
    • 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] 

Abstract

본 발명은 동적 블록체인 시스템 및 그의 동작 방법에 관한 것으로, 본 발명에 따른 동적 블록체인 시스템은 사용자가 소유하는 복수의 단말기 노드들을 포함하고, 각 단말기 노드에 트랜잭션이 송신될 트랜잭션 노드가 매핑되어 있는 단말기 노드 풀; 및 각 트랜잭션 노드에 다음 트랜잭션 노드가 매핑되어 있어서 상기 단말기 노드 풀의 각 단말기 노드에서 송신된 트랜잭션을 비동기적으로 처리하고 가상 블록의 합의를 수행하는 복수의 트랜잭션 노드들을 포함하고, 상기 복수의 트랜잭션 노드들의 로드 밸런싱을 자동으로 수행하는 트랜잭션 노드 풀을 제공함으로써, 네트워크의 성능을 높일 수 있다.

Description

동적 블록체인 시스템 및 그의 동작 방법{Dynamic Blockchain System and Operating Method thereof}
본 발명은 동적 블록체인 시스템 및 그의 동작 방법에 관한 것으로, 동적으로 로드 밸런싱이 가능한 블록체인 시스템 및 그의 동작 방법에 관한 것이다.
비트코인(Bitcoin)으로부터 시작된 블록체인 기술은 차세대 인터넷을 이끌 혁신적 기술로서 수많은 업계의 관심을 모으고 있으며, 이더리움(Ethereum), 하이퍼레저(Hyperledger), 리플(Ripple), R3 등의 등장과 함께 빠르게 산업적으로 영향력을 확대해가고 있다. 또한, 가상화폐, 에셋 관리, 공유 경제, IoT, 헬스, 물류 등 다양한 분야에 걸쳐 블록체인 솔루션을 제공하는 신생 기업이 탄생하여 기술 및 플랫폼에 대한 경쟁이 뜨거워지고 있다.
블록체인 시스템은 수많은 노드가 P2P 네트워크로 연결되어 사용자의 트랜잭션을 처리하는 시스템으로서, 트랜잭션에 대한 기록을 순차적으로 저장하는 일종의 분산 원장 시스템이라고 볼 수 있는데, 한 번 기록된 내용은 변경이 거의 불가능하다는 특징을 가진다. 블록체인 시스템은 모든 노드가 동일한 트랜잭션에 대한 처리 기록을 가지도록 하여야 하는데 그것을 가능하게 하는 것이 합의 알고리즘이다.
블록체인 시스템은 크게 블록체인에 참가하는 노드의 참여 제한 여부에 따라 비허가형(Permissionless) 블록체인과 허가형(Permissioned) 블록체인으로 나눌 수가 있다. 허가형 블록체인의 경우에는 비허가형 블록체인에 사용되는 작업 증명 기반의 합의 알고리즘과는 완전히 다른 형태의 합의 알고리즘을 사용할 수 있다. 왜냐하면, 참여하는 노드가 제한되므로 그 점을 활용할 수 있는 알고리즘의 적용이 가능하기 때문이다. 대표적인 알고리즘으로서 PBFT(Practical Byzantine Fault Tolerant)가 있다.
허가형 블록체인에 이용 가능한 합의 알고리즘으로 해시그래프(Hashgraph) 알고리즘이 있다. 해시그래프는 기존 블록체인의 한계를 극복하고자 연결 리스트 방식이 아니라, 하나의 노드가 다른 불특정 노드에게 가십(gossip)을 전달하는 방식으로 작동하는 알고리즘이다. 기존 블록체인의 장점인 위변조 방지 기능과 탈중앙 의사결정구조를 유지하면서도, 1초에 수십만 건 이상의 빠른 속도로 트랜잭션을 처리할 수 있다.
이러한 해시그래프는 특정 사용자가 거래의 순서를 변경할 수 없기 때문에 공평하다. 주식 시장의 예를 들어, 만약 엘리스와 밥이 동시에 동일한 가격으로 남은 마지막 주식 하나를 매수한다고 가정해보자. 블록체인 시스템에서는 채굴자(miner)가 두 거래 모두 동일한 블록에 넣어 진행한다면 순서를 임의로 정하거나 또는 엘리스의 거래만 포함하고 밥의 거래를 다음 블록에 포함할 수도 있다. 해시그래프에서는 이 경우 한 개인이 거래의 순서를 변경할 수 없다. 여기서 엘리스가 분산형 시스템 내 모든 사용자에게 밥의 거래보다 먼저 전파할 수 있는 최선의 방법은 인터넷 속도에 투자하는 것이며 이로 공정한 경쟁을 도모할 수 있다. 거래 처리 권한이 특정 인물에게 위임되지 않았기에 엘리스는 채굴자에게 뇌물을 주며 부당한 혜택을 꾀할 수 없다.
아울러, 해시그래프에서는 특정 사용자가 시스템에 입력되는 거래를 저지하거나 멈출 수 없으므로 공정하다. 블록체인 시스템에서는 만약 다수의 채굴자들이 특정 거래를 블록에 포함하는 것을 거부할 경우, 한 개 또는 두 개의 채굴 기간(mining period)까지 처리가 지연될 수 있다. 그러나 해시그래프에서는 인터넷 연결을 차단하는 방법 외에는 사용자의 거래를 막을 수 없다.
하지만, 해시그래프 알고리즘은 하나의 노드에 로드가 계속 몰리게 되면 실시간 결제의 처리가 필요한 경우에도 병목 현상이 발생하여 전체 처리가 늦어질 수 있을 뿐만 아니라 네트워크의 노드 개수가 고정되어 있어 유연한 처리가 어렵다. 또한, 해시그래프 알고리즘에 의해 물리적인 노드에 저장되어 있는 이벤트들은 휘발성 메모리에 축적되게 되어 외부 공격에 취약하고 또한 전원이 차단되면 메모리에 축적되어 있던 데이터가 소거될 수도 있다.
상술한 문제점을 해결하기 위해, 본 발명은 동적 블록체인 시스템 및 그의 동작 방법을 제공하는 것을 목적으로 한다.
본 발명은 로드 밸런싱이 가능한 블록체인 시스템 및 그의 동작 방법을 제공하는 것을 목적으로 한다.
또한, 본 발명은 외부 공격으로부터 피해를 방지하고 데이터의 보호가 가능한 블록체인 시스템 및 그의 동작 방법을 제공하는 것을 목적으로 한다.
상술한 목적을 달성하기 위해, 본 발명의 일실시예에 따른 동적 블록체인 시스템은, 사용자가 소유하는 복수의 단말기 노드들을 포함하고, 각 단말기 노드에 트랜잭션이 송신될 트랜잭션 노드가 매핑되어 있는 단말기 노드 풀; 및 각 트랜잭션 노드에 다음 트랜잭션 노드가 매핑되어 있어서 상기 단말기 노드 풀의 각 단말기 노드에서 송신된 트랜잭션을 비동기적으로 처리하고 가상 블록의 합의를 수행하는 복수의 트랜잭션 노드들을 포함하고, 상기 복수의 트랜잭션 노드들의 로드 밸런싱을 자동으로 수행하는 트랜잭션 노드 풀을 제공할 수 있다.
상기 동적 블록체인 시스템은 상기 트랜잭션 노드 풀은 상기 복수의 트랜잭션 노드들의 로드 밸런싱을 자동으로 수행하는 트랜잭션 관리 노드를 더 포함할 수 있고, 상기 트랜잭션 관리 노드는 트랜잭션에 대해 가상 블록이 합의될 때마다 송신되는 특정의 트랜잭션 노드의 통지 정보로부터 상기 특정의 트랜잭션 노드의 로드 상태를 판정하여 상기 복수의 트랜잭션 노드들의 로드 밸런싱을 자동으로 수행할 수 있다.
상기 트랜잭션 관리 노드는 상기 단말기 노드 풀의 각 단말기 노드에서 송신된 트랜잭션을 비동기적으로 처리하고 가상 블록의 합의를 수행하기 위해 소정 개수의 트랜잭션 노드들을 하나의 채널로 매핑할 수 있다.
상기 트랜잭션 관리 노드는 특정 채널의 상기 특정의 트랜잭션 노드의 로드 상태를 판정하여 로드가 임계치 이상이면 소정 개수의 트랜잭션 노드들을 새로운 채널로 매핑하여 상기 특정 채널로부터 분기시킬 수 있다.
상기 동적 블록체인 시스템은 상기 트랜잭션 노드 풀에서 트랜잭션마다 가상 블록의 합의 후 송신된 트랜잭션을 적어도 수백 개 이상 모아 블록을 생성하여 블록체인을 만드는 블록 노드 풀을 더 포함할 수 있다.
상기 블록 노드 풀에서 만들어진 상기 블록체인의 트랜잭션에는 해당 트랜잭션 합의와 관련된 상기 소정 개수의 트랜잭션 노드들의 송신 순서가 포함되어 있을 수 있다.
상기 단말기 노드 풀은 상기 복수의 단말기 노드들과 각 단말기 노드에서 트랜잭션이 송신될 트랜잭션 노드를 매핑하는 단말기 관리 노드를 더 포함할 수 있고, 상기 단말기 관리 노드는 상기 매핑뿐만 아니라 회원 가입과 인증을 관리하는 서버 기능을 수행할 수 있다.
본 발명의 다른 실시예에 따른, 사용자가 소유하는 복수의 단말기 노드들을 포함하는 단말기 노드 풀 및 복수의 트랜잭션 노드들을 포함하는 트랜잭션 노드 풀을 포함하는 동적 블록체인 시스템의 동작 방법은, 각 단말기 노드에 트랜잭션이 송신될 트랜잭션 노드, 그리고 각 트랜잭션 노드에 다음 트랜잭션 노드를 매핑하는 단계; 상기 복수의 단말기 노드들 중 하나의 단말기 노드에서 매핑된 트랜잭션 노드에 트랜잭션을 송신하는 단계; 상기 복수의 트랜잭션 노드들에서 상기 단말기 노드로부터 송신된 트랜잭션을 비동기적으로 처리하고 가상 블록의 합의를 수행하는 단계; 및 상기 복수의 트랜잭션 노드들의 로드 밸런싱을 자동으로 수행하는 단계를 제공할 수 있다.
상술한 구성에 의해, 본 발명은 노드에서의 로드 상태에 따라 분기하거나 다시 병합하여 동적으로 네트워크의 성능을 높일 수 있다.
본 발명은 또한, 물리적인 노드와 논리적인 노드를 구분하여 매핑을 통해 네트워크의 가용성을 균일하게 하고 외부 공격에 대한 방어력을 높일 수 있다.
본 발명은 또한, 블록 노드 풀에서 블록체인을 생성하여 관리함으로써 외부 공격으로부터 피해를 방지하고 데이터를 보호할 수 있다.
도 1은 본 발명의 일실시예에 따른 동적 블록체인 시스템의 블록도를 도시한 도면이다.
도 2는 도 1의 블록체인 시스템에 이용 가능한 데이터 스택의 일 예를 도시한 도면이다.
도 3은 블록 노드에 저장되는 블록 구조의 일 예를 도시한 도면이다.
도 4는 일반적인 해시그래프의 가십 프로토콜의 일 예를 도시하는 도면이다.
도 5는 본 발명에 따른 해시그래프의 분기의 일 예를 도시하는 도면이다.
도 6은 본 발명에 따른 해시그래프의 병합의 일 예를 도시하는 도면이다.
도 7은 일반적으로 트랜잭션 노드들에 할당된 채널의 내부 처리의 일 예를 도시하는 도면이다.
도 8은 본 발명에 따른 채널 분기의 내부 처리의 일 예를 도시하는 도면이다.
도 9는 본 발명에 따른 채널 병합의 내부 처리의 일 예를 도시하는 도면이다.
도 10은 본 발명의 일실시예에 따른 동적 블록체인 시스템의 동작 방법의 흐름도를 도시하는 도면이다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 동적 블록체인 시스템 및 그의 동작 방법의 바람직한 실시예를 설명한다. 참고로, 아래에서 본 발명을 설명함에 있어서, 본 발명의 구성요소를 지칭하는 용어들은 각각의 구성 요소들의 기능을 고려하여 명명된 것이므로, 본 발명의 기술적 구성요소를 한정하는 의미로 이해되어서는 안 될 것이다.
도 1에 도시된 바와 같이, 동적 블록체인 시스템(100)은 단말기 노드 풀(110), 트랜잭션 노드 풀(120) 및 블록 노드 풀(130)을 포함한다.
단말기 노드 풀(110)은 사용자가 소유하는 단말기와 관련된 것으로, 예를 들어 실제 결제를 요청하기 위한 복수의 단말기 노드들(112)과 단말기 노드들(112)의 로드 밸런싱을 위한 단말기 관리 노드(114)를 포함할 수 있다.
복수의 단말기 노드들(112)은 도 1에 도시된 바와 같이, 예를 들어 #01부터 #40으로 구성될 수 있다. 그리고 단말기 관리 노드(114)는 복수의 단말기 노드들(112)이 소수의 트랜잭션 노드들(122)에 적절히 로드가 분산되도록 각각의 단말기 노드(112)에 매핑된 트랜잭션 노드를 적절히 분배할 수 있다. 단말기 관리 노드(114)는 로드 밸런싱뿐만 아니라 모니터링을 수행하여 비정상적인 처리 및 외부 침입 등을 탐지할 수 있다. 단말기 관리 노드(114)는 비정상적인 처리 또는 외부 침입 등이 탐지된 경우에는 이미 설정한 보안 정책에 따라 대응할 수 있다. 단말기 관리 노드(114)는 도 1에 도시된 바와 같이, 각 단말기 노드(112)에 송신될 트랜잭션 노드(122)를 적절히 배분할 수 있다.
단말기 관리 노드(114)는 보통 회원 가입과 인증을 관리하는 서버가 이 역할을 할 수 있으며 별도의 강화된 보안 솔루션이 탑재될 수 있다. 일반적으로 결제를 하기 전에 사용자가 이 단말기를 정말로 소유하고 있는지의 본인 인증이 필수적인데, 단말기 관리 노드(114)는 단말기 노드에서의 생체 인증, 비밀번호 또는 패턴 등의 인증 수단을 이용하여 그 결과를 확인하여 비정상 접속을 탐지할 수 있다.
트랜잭션 노드 풀(120)은 트랜잭션을 처리하는 복수의 트랜잭션 노드들(122)과 트랜잭션 노드들(122)의 로드 밸런싱을 위한 트랜잭션 관리 노드(124)를 포함할 수 있다. 트랜잭션 관리 노드(124)는 소정 수의 트랜잭션 노드들(122)을 하나의 채널로 묶어서 관리하며, 하나의 채널에 로드가 많이 걸리면 적절히 분기하여 새로운 채널을 할당할 수 있으며, 반대로 로드가 너무 적게 걸려 노드가 낭비되면 이들 채널들을 하나의 채널 안에 통합할 수 있다. 그리고 트랜잭션 관리 노드(124)는 각 트랜잭션 노드(122)의 다음 트랜잭션 노드(124)를 지정하여 전송하거나 아니면 랜덤하게 지정하여 전송할 수 있다. 트랜잭션 관리 노드(124)는 또한, 모니터링을 수행하여 비정상적인 처리 및 외부 침입 등을 탐지하고, 비정상적인 처리 또는 외부 침입 등이 탐지된 경우에는 이미 설정한 보안 정책에 따라 대응할 수 있다.
복수의 트랜잭션 노드들(122)은 도 1에 도시된 바와 같이, 예를 들어 &01부터 &20으로 구성될 수 있다. 도 1에서는 5개의 트랜잭션 노드들(122)을 하나의 채널로 도시한다. 도 1에 도시된 트랜잭션 노드 풀(120)에서의 전송 순서는 설명의 편의를 위해 정한 것으로, 구체적인 실시예에 따라서는 합의 알고리즘인 해시그래프 형태일 수 있다.
블록 노드 풀(130)은 하나의 채널에서 확인된 다수의 트랜잭션을 포함하여 블록을 생성하는 복수의 블록 노드들(132)과 블록 생성을 위한 노드들의 채널을 관리하는 블록 관리 노드(134)를 포함할 수 있다. 복수의 블록 노드들(132)은 도 1에 도시된 바와 같이, 예를 들어 %01부터 %04으로 구성될 수 있다. 블록 관리 노드(134)는, 도 1에는 도시되어 있지 않지만, 또한 트랜잭션 노드 풀(120)처럼 로드를 분산 또는 통합하여 관리할 수 있다.
위의 관리 노드들은 기본적으로 이중화하여 정기적으로 데이터를 동기화하는 것이 바람직하며, 메인 관리 노드가 비정상적으로 동작하면 서브 관리 노드가 바로 메인 관리 노드의 역할을 대행하고 메인 관리 모드는 복구 모드로 들어갈 수 있다.
도 1에 도시된 바와 같이, 본 발명의 실시예에서는 트랜잭션 노드(122)와 단말기 노드(112)가 명확하게 구분되어 있다. 하지만, 트랜잭션 노드(122)와 블록 노드(132)는 구현에 따라 하나의 노드가 두 가지 기능들을 모두 수행할 수 있다.
도 1에 도시된 관리 노드들끼리는 양방향 통신이 허용되나 일반 노드들은 관리 노드의 지시만 받도록 구성되는 것이 바람직하다. 즉, 매핑 노드의 변경 등의 설정 변경의 이벤트가 발생시 관리 노드의 명령 순서에 따라 일반 노드들은 동작하며 관리 노드에 피드백하거나 별도의 데이터를 송신하지 않는다. 이에 의해 해커가 일반 노드를 통해 관리 노드로 침입하는 것을 원천적으로 방지할 수 있다.
또한, 보통 해커가 이미 네트워크에 침입하면 막기가 어려워진다. 따라서 네트워크의 게이트에 해당하는 단말기 관리 노드가 비정상적인 침입을 감지하고 충분히 공격에 대해 내성을 갖도록 단말기 관리 노드는 보안이 강화될 필요가 있다.
도 2는 도 1의 블록체인 시스템에 이용 가능한 데이터 스택의 일 예를 도시한 도면이다.
일반적으로 결제는 돈을 송신하는 과정과 돈을 수신하는 과정으로 구분될 수 있다. 도 2에는 결제 프로세스 중 돈을 송신하는 과정만을 예로 들어 데이터 스택이 도시되어 있다.
단말기 노드(Te Node) #01의 사용자가 다른 단말기 노드에 돈을 송신하고자 하면, 단말기 노드 #01은 예를 들어 "갑이 을에게 코인 1을 보낸다."와 같은 전문 데이터와 함께 단말기 id 정보와 트랜잭션 노드(Tr Node) id를 하나의 트랜잭션으로 하여 송신한다. 여기서 단말기 노드 id는 소스로 자신의 단말기 노드 #01가 기록될 수 있고, 트랜잭션 노드 id는 목적지로 단말기 관리 노드(114)에서 지정한 트랜잭션 노드 &01가 기록될 수 있다.
트랜잭션 노드 &01은 단말기 노드 #01로부터 수신한 트랜잭션 정보 이외에 다음 트랜잭션 노드, 예를 들어 트랜잭션 노드 &02를 추가하여 송신한다. 트랜잭션 노드 &02은 트랜잭션 노드 &01로부터 수신한 정보 이외에 다음 트랜잭션 노드, 예를 들어 트랜잭션 노드 &03를 추가하여 송신한다. 트랜잭션 노드 &03은 트랜잭션 노드 &02로부터 수신한 정보 이외에 다음 트랜잭션 노드, 예를 들어 트랜잭션 노드 &04를 추가하여 송신한다. 트랜잭션 노드 &04는 트랜잭션 노드 &03으로부터 수신한 정보 이외에 다음 트랜잭션 노드, 예를 들어 트랜잭션 노드 &05를 추가하여 송신한다.
그리고 예를 들어 해시그래프 알고리즘과 같은 가십 프로토콜에 따라 가상 블록의 합의가 이루어지면, 트랜잭션 노드 &05는 트랜잭션 노드 &04로부터 수신한 정보 이외에 블록 노드, 예를 들어 Bl Node %01을 추가하여 송신한다.
트랜잭션 노드들에는 해시그래프의 경우 트랜잭션이 하나의 이벤트가 되어 이벤트들이 서로 연관되어 저장된다. 하지만, 트랜잭션 노드들에 저장된 데이터는 블록체인으로 저장된 것이 아니고 휘발성 메모리에 저장된 이벤트들인바, 외부 공격에 취약할 뿐만 아니라 또한 전원이 차단되면 메모리에 축적되어 있던 데이터가 소거될 수도 있다. 또한, 트랜잭션 노드 풀(120)에서는 다양한 형태의 계약을 체결하고 이행하는 스마트 컨트랙트(smart contract)가 용이하지 않다.
블록 노드는 스마트 컨트랙트를 가능하게 할 뿐만 아니라 블록체인으로 데이터를 관리하므로 블록체인이 갖는 장점을 이용할 수 있다. 블록 노드(Bl Node) %01은 예를 들어 가상 블록의 합의가 이루어진 트랜잭션이 예를 들어 2000개가 수신되면, 하나의 블록을 생성할 수 있다.
도 3은 블록 노드에 저장되는 블록 구조의 일 예를 도시한 도면이다.
블록은 헤더와 바디로 구분되며, 헤더에는 버전번호, 블록생성시간, 이전 블록 해시 값, 합의 메타데이터, 블록 메타데이터, 현재 블록의 해시 값이 기록될 수 있고, 바디에는 트랜잭션들이 기록될 수 있다.
상술한 바와 같이, 블록 n에는 예를 들어 2000개의 트랜잭션뿐만 아니라 트랜잭션의 해시 값 이외에 이전 블록 n-1 및 블록 n의 해시 값이 반드시 포함되어야 한다. 블록 n의 해시 값은 블록 n+1의 이전 블록 해시 값 영역에 기록되므로 블록들은 서로 연결 관계를 갖게 된다. 또한, 합의 메타데이터에는 트랜잭션의 합의와 관련된 트랜잭션 노드가 개수가 기록될 수 있다.
이하에서는 트랜잭션 노드 풀(120)에서의 처리를 보다 상세하게 설명한다.
도 1에서 도시된 바와 같이, 트랜잭션 노드 &01(122)에는 복수의 단말기 노드들(112) 및 다수의 트랜잭션 노드들(122)로부터 트랜잭션들, 예를 들어 해시그래프의 경우 이벤트들이 수신된다. 이러한 이벤트들을 저장하기 위해 각각의 트랜잭션 노드(122)에는 카프카 클러스터(미도시됨)가 구비되어 있다. 카프카 클러스터에 저장된 이벤트들은 입력된 순서에 따라 해당 트랜잭션 노드(122)에서 처리된다.
도 4는 일반적인 해시그래프의 가십 프로토콜의 일 예를 도시하는 도면이고, 도 5는 본 발명에 따른 해시그래프의 분기의 일 예를 도시하는 도면이고, 도 6은 본 발명에 따른 해시그래프의 병합의 일 예를 도시하는 도면이다. 여기서 각 노드는 Alice, Bob, Carol, Dave 및 Ed의 단말기들에 각각 매핑된 트랜잭션 노드이다.
도 4를 보면, Bob 노드에 지나치게 많은 로드, 즉 트랜잭션이 몰리고 있다. 이 경우 Bob 노드는 많은 로드로 인해 처리가 늦어지고 이로 인해 동일 채널에 속한 다른 트랜잭션 노드들 역시 영향을 받아 전체 처리가 늦어질 수 있다. 트랜잭션 관리 노드(124)는 Bob 노드의 많은 로드로 인해 동일 채널의 전체 처리 속도가 늦어진다고 결정되면, 예컨대 트랜잭션이 몰리게 되어 임계치들 넘어서면, 도 5에 도시된 바와 같이, Bob2 노드를 생성한다. 이후 Bob 노드에 있는 카프카 클러스터는 처리될 트랜잭션들의 일부를 Bob2 노드에서 실행하게 한다. 한편, 해시 알고리즘의 채널 내에서의 분기는 트랜잭션 노드에서 적절하게 처리할 수도 있다.
한편, 도 4를 다시 보면, Dave 노드와 Ed 노드의 이용이 현저하게 떨어진다. 이 경우 불필요한 전력 소비 등이 발생하므로, 트랜잭션 관리 노드(124)는, 도 6에 도시된 바와 같이, Ed 노드를 Dave 노드에 병합하여 하나의 트랜잭션 노드로 공유하게 한다. 이 경우 트랜잭션 관리 노드(124)는 Ed 노드의 트랜잭션들이 Dave 노드로 송신되도록 트랜잭션 노드의 다음 트랜잭션 노드들을 변경할 수 있고, 또한 단말기 노드에서 트랜잭션 노드로의 목적지를 변경하도록 단말기 관리 노드(114)로 변경 요청 신호를 송신할 수 있다. 나중에 생성된 블록에서 자신의 거래 내역을 검색하고자 하면 자신의 단말기 id가 생성한 트랜잭션 노드와 트랜잭션 노드에서의 다음 트랜잭션 노드가 블록에 모두 포함되어 있기 때문에 단말기 id로 모든 처리 과정을 확인할 수 있다.
도 7은 일반적으로 트랜잭션 노드들에 할당된 채널의 내부 처리의 일 예를 도시하는 도면이고, 도 8은 본 발명에 따른 채널 분기의 내부 처리의 일 예를 도시하는 도면이고, 도 9는 본 발명에 따른 채널 병합의 내부 처리의 일 예를 도시하는 도면이다.
물리적인 공간에 집중되어 있는 트랜잭션 노드들은 보안에 취약하며, 네트워크가 한 번 뚫리게 되면 그 네트워크 전체가 피해를 볼 위험이 있다. 따라서 여러 지역에 노드들이 분산되어 있다면 외부 공격에 대처하는 것이 유리하고 블록체인의 원래 취지에도 부합한바, 매핑 테이블을 이용하여 분산 네트워크를 구성하는 것이 바람직하다. 이에 의해 논리적으로는 연속된 네트워크이지만 물리적으로는 여러 지역에 산개된 네트워크가 가능해진다. 즉. 실제 네트워크에 20개의 노드가 있고, 하나의 채널이 5개의 노드를 사용할 경우 논리적인 노드 주소는 [&01, &02, &03. &04, &05]이지만, 실제 동작하는 물리적인 노드 주소는 [&12, &19, &03. &05, &10]으로 랜덤하게 분산시킬 수 있다.
도 7 내지 도 9는 도 4 내지 도 6의 각각을 채널 매핑, 채널 분기 및 채널 병합의 관점에서 구체적으로 도시한 도면들이다.
도 7에 도시된 바와 같이, 본 발명에서는 실시예에 따라 하나의 물리적 노드에 채널에 따른 2개의 논리적 노드들이 사용될 수 있다. 예를 들어, 트랜잭션 관리 노드(124)는 로드를 밸런싱하기 위해 하나의 물리적 노드에 다수의 채널들을 할당할 수 있다.
물리적 노드의 최대 처리 용량이 20Tr/초인데, 채널 A의 처리 용량이 10Tr/초이고, 채널 B의 처리 용량이 15Tr/초이고, 채널 C의 처리 용량이 10Tr/초이면, 도 7의 위의 물리적 노드들에서는 처리량이 5Tr/초만큼 늦어져서 트랜잭션이 처리되므로 채널에서의 트랜잭션의 처리가 현저하게 늦어진다. 트랜잭션 관리 노드(124)는 아래의 물리적 노드들에 처리 용량이 10Tr/초만큼 여유가 있으므로, 도 8에 도시된 바와 같이, 채널 B를 분기하여 채널 D를 생성하고 처리 용량 5Tr/초만큼을 처리할 수 있게 할 수 있다.
한편, 물리적 노드의 최대 처리 용량이 20Tr/초인데, 채널 A의 처리 용량이 5Tr/초이고, 채널 B의 처리 용량이 5Tr/초이고, 채널 C의 처리 용량이 5Tr/초이면, 도 7의 위의 물리적 노드들에 채널 C를 처리할 수 있는 충분한 처리 용량이 남아있으므로, 도 9에 도시된 바와 같이, 채널 C를 분기하여 채널 A에 병합할 수 있다.
아래의 표 1은 본 발명의 동적 블록체인 시스템과 공개된 하이퍼레저 패브릭 및 해시그래프의 특징을 비교한 것이다.
구분 하이퍼레저 패브릭 해시그래프 동적 블록체인 시스템
노드의 기능 분담 0.6은 없음. 1.0부터 기능 분화 가능함. 없음. 단말기 노드, 트랜잭션 노드, 블록 노드가 존재하며 또한 각각의 관리 노드가 있음.
합의 알고리즘 BFT - 동기식으로 하나의 단계를 진행하기 위해서는 Time line을 모든 노드에서 맞춰야 하기 때문에 느림. ABFT - 비동기식으로 연속적인 이벤트 처리 가능하여 빠름. 동적 ABFT - 해시그래프처럼 비동기식이나 자동으로 로드 밸런싱이 가능하여 해시그래프보다 빠름.
블록생성 분산 원장 사용 (Distributed Ledger), 0.6에서는 처리속도를 위해 1블록당 적은 Transaction으로 공간의 낭비가 심했으나 1.0 zoo-keeper도입으로 메모리에 Heap 형태로 저장. 대신 많은 메모리 필요함. Tangle처럼 DAG (Directed Acyclic Graph, 방향성 비순환 그래프) 형태로 메모리에 존재, 블록이 없음. 시스템 다운 시 데이터가 모두 유실됨. Commit된 Transaction은 Virtual Block이 되어 승인 완료됨. 또한 별도의 블록 생성 네트워크가 블록 생성 부하를 분산함. 적은 메모리 사용이 가능하고 비트코인처럼 2000개 Transaction이 1블록을 이뤄 저장 공간 효율이 높음.
Smart Contract 체인 코드를 가상 머신에서 수행함. 없음. 하이퍼레저 패브릭에 준하며 관리 Node에서 처리함.
확장성 멀티 채널을 이용하여 Sharding 기법 사용 가능함. 아직 구체화 되지 않음. 노드 개수를 늘려 처리량을 늘릴 수 있고 자동 로드 밸런싱이 가능함.
도 10은 본 발명의 일실시예에 따른 동적 블록체인 시스템의 동작 방법의 흐름도를 도시하는 도면이다.
트랜잭션 관리 노드(124)는 소정 개수의 트랜잭션 노드(122)를 연결하여 하나의 채널을 생성한다(S1002). 트랜잭션 관리 노드(124))는 각 채널의 트랜잭션 노드(122)마다 트랜잭션이 송신될 다음 트랜잭션 노드를 매핑한다(S1004). 트랜잭션 관리 노드(124)는 각 채널의 마지막 송신될 트랜잭션 노드(122)에 트랜잭션이 송신될 블록 노드(132)를 매핑한다(S1006). 단말기 관리 노드(114)는 새로운 단말기 노드(112)가 가입되면 트랜잭션이 송신될 트랜잭션 노드(122)를 매핑한다(S1008).
이후, 복수의 단말기 노드들(112) 중 하나의 단말기 노드, 예를 들어 #01에서 매핑된 트랜잭션 노드(122)에 트랜잭션을 송신한다(S1010). 해당 채널의 복수의 트랜잭션 노드들(122)에서 단말기 노드(112)로부터 송신된 트랜잭션을 비동기적으로 처리하고 가상 블록의 합의를 수행한다(S1012).
트랜잭션 관리 노드(124)는 하나의 트랜잭션에 대해 가상 블록이 합의될 때마다 송신되는 특정의 트랜잭션 노드(122)의 통지 정보로부터 특정의 트랜잭션 노드(122)의 로드 상태를 판정한다(S1014).
트랜잭션 관리 노드(124)는 특정의 트랜잭션 노드(122)의 로드 상태에 따라 복수의 트랜잭션 노드들(122)의 로드 밸런싱을 자동으로 수행한다(S1016). 예컨대 트랜잭션 관리 노드(124)는 특정의 트랜잭션 노드(122)의 로드가 제1 임계치 이상이면 소정 개수의 트랜잭션 노드들(122)을 새로운 채널로 매핑하여 특정 채널로부터 분기시킬 수 있으며, 해당 채널의 로드가 제2 임계치 이하이면 다른 채널을 해당 채널에 병합시킬 수 있다.
블록 노드(132)는 트랜잭션마다 가상 블록의 합의 후 송신된 트랜잭션을 적어도 수백 개 이상 모아 블록을 생성하여 블록체인을 만든다(S1018).
이상에서 설명된 본 발명의 실시예들은 본 발명의 기술 사상을 예시적으로 보여준 것에 불과하며, 본 발명의 보호 범위는 이하 특허청구범위에 의하여 해석되어야 마땅할 것이다. 또한, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형할 수 있을 것인 바, 본 발명과 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 동적 블록체인 시스템 110: 단말기 노드 풀
112: 단말기 노드 114: 단말기 관리 노드
120: 트랜잭션 노드 풀 122: 트랜잭션 노드
124: 트랜잭션 관리 노드 130: 블록 노드 풀
132: 블록 노드 134: 블록 관리 노드

Claims (10)

  1. 사용자가 소유하는 복수의 단말기 노드들을 포함하고, 각 단말기 노드에 트랜잭션이 송신될 트랜잭션 노드가 매핑되어 있는 단말기 노드 풀;
    가상 블록의 합의를 수행하는 복수의 트랜잭션 노드들 - 상기 복수의 트랜잭션 노드들의 각각은, 각 트랜잭션 노드에 다음에 연결될 트랜잭션 노드가 매핑되어 있어서, 상기 단말기 노드 풀의 각 단말기 노드에서, 송신된 트랜잭션을 비동기적으로 처리하게 함 - 과, 상기 복수의 트랜잭션 노드들의 로드 밸런싱을 자동으로 수행하는 트랜잭션 관리 노드를 포함하는 트랜잭션 노드 풀 - 상기 복수의 트랜잭션 노드들의 각각에는 다음에 연결될 트랜잭션 노드가 매핑되어 있으며, 상기 트랜잭션 관리 노드의 제어에 따라, 소정의 트랜잭션이 수행될 트랜잭션 노드가 선택될 수 있음 -; 및
    상기 트랜잭션 노드 풀에서 트랜잭션마다 가상 블록의 합의 후 송신된 트랜잭션을 적어도 수백 개 이상 모아 블록을 생성하여 블록체인을 만드는 블록 노드 풀을 포함하고,

    상기 트랜잭션 관리 노드는,
    각 트랜잭션 노드들을 하나의 채널로 매핑하고,
    소정의 트랜잭션에 대해 가상 블록이 합의될 때마다 송신되는 트랜잭션 노드의 통지 정보에 근거하여, 특정 채널의 트랜잭션 노드의 로드 상태를 판정하고,
    상기 트랜잭션 노드의 로드가 임계치 이상이면 추가의 트랜잭션 노드를 상기 특정 채널에 추가하고,
    이후에 상기 특정 채널의 상기 트랜잭션 노드로 송신되는 트랜잭션들을 상기 특정 채널의 상기 트랜잭션 노드와 상기 특정 채널의 상기 추가의 트랜잭션 노드에 동적으로 분배하여 로드 밸런싱을 자동으로 수행하는 것을 특징으로 하는 동적 블록체인 시스템.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 제1항에 있어서,
    상기 블록 노드 풀에서 만들어진 상기 블록체인의 트랜잭션에는 해당 트랜잭션 합의와 관련된 상기 소정의 트랜잭션 노드들의 송신 순서가 포함되어 있는 것을 특징으로 하는 동적 블록체인 시스템.
  7. 제1항에 있어서,
    상기 단말기 노드 풀은 상기 복수의 단말기 노드들과 각 단말기 노드에서 트랜잭션이 송신될 트랜잭션 노드를 매핑하는 단말기 관리 노드를 더 포함하고,
    상기 단말기 관리 노드는 상기 매핑뿐만 아니라 회원 가입과 인증을 관리하는 서버 기능을 수행하는 것을 특징으로 하는 동적 블록 체인 시스템.
  8. 사용자가 소유하는 복수의 단말기 노드들을 포함하는 단말기 노드 풀 및 복수의 트랜잭션 노드들을 포함하는 트랜잭션 노드 풀을 포함하는 동적 블록체인 시스템의 동작 방법에 있어서,
    각 단말기 노드에 트랜잭션이 송신될 트랜잭션 노드, 그리고 각 트랜잭션 노드에 다음에 연결될 트랜잭션 노드를 매핑하는 단계;
    상기 복수의 단말기 노드들 중 하나의 단말기 노드에서 매핑된 트랜잭션 노드에 트랜잭션을 송신하는 단계;
    상기 복수의 트랜잭션 노드들에서 상기 단말기 노드로부터 송신된 트랜잭션을 비동기적으로 처리하고 가상 블록의 합의를 수행하는 단계; 및
    상기 트랜잭션 노드 풀에서 트랜잭션마다 가상 블록의 합의 후 송신된 트랜잭션을 적어도 수백 개 이상 모아 블록을 생성하여 블록체인을 만드는 단계;를 포함하고,

    상기 복수의 트랜잭션 노드들에서 트랜잭션을 비동기적으로 처리하는 단계는:
    각 트랜잭션 노드들을 하나의 채널로 매핑하는 것,
    소정의 트랜잭션에 대해 가상 블록이 합의될 때마다 송신되는 트랜잭션 노드의 통지 정보에 근거하여, 특정 채널의 트랜잭션 노드의 로드 상태를 판정하는 것,
    상기 트랜잭션 노드의 로드가 임계치 이상이면 추가의 트랜잭션 노드를 상기 특정 채널에 추가하는 것,
    이후에 상기 특정 채널의 상기 트랜잭션 노드로 송신되는 트랜잭션들을 상기 특정 채널의 상기 트랜잭션 노드와 상기 특정 채널의 상기 추가의 트랜잭션 노드에 동적으로 분배하여 로드 밸런싱을 자동으로 수행하는 것을 더 포함하는 것을 특징으로 하는 동적 블록체인 시스템의 동작 방법.
  9. 삭제
  10. 삭제
KR1020180140755A 2018-11-15 2018-11-15 동적 블록체인 시스템 및 그의 동작 방법 KR102258722B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180140755A KR102258722B1 (ko) 2018-11-15 2018-11-15 동적 블록체인 시스템 및 그의 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180140755A KR102258722B1 (ko) 2018-11-15 2018-11-15 동적 블록체인 시스템 및 그의 동작 방법

Publications (2)

Publication Number Publication Date
KR20200056729A KR20200056729A (ko) 2020-05-25
KR102258722B1 true KR102258722B1 (ko) 2021-05-31

Family

ID=70914552

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180140755A KR102258722B1 (ko) 2018-11-15 2018-11-15 동적 블록체인 시스템 및 그의 동작 방법

Country Status (1)

Country Link
KR (1) KR102258722B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210147496A (ko) 2020-05-29 2021-12-07 (주)바다플랫폼 체인 데이터베이스를 구비한 블록체인 네트워크 기반의 데이터 저장 장치를 이용한 데이터 저장 및 조회방법
KR102440733B1 (ko) * 2020-10-26 2022-09-05 피네보 주식회사 결제 처리를 위한 시스템 및 방법
KR102396631B1 (ko) * 2020-11-12 2022-05-11 주식회사 티맥스엔터프라이즈 블록체인 시스템
KR102655765B1 (ko) * 2021-06-16 2024-04-09 계명대학교 산학협력단 블록체인 제공 방법 및 장치
CN113626530A (zh) * 2021-09-03 2021-11-09 杭州复杂美科技有限公司 区块生成方法、计算机设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101590076B1 (ko) * 2015-11-18 2016-02-01 주식회사 웨이브스트링 개인정보 관리 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101590076B1 (ko) * 2015-11-18 2016-02-01 주식회사 웨이브스트링 개인정보 관리 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BFT 기반 합의 알고리즘, 아이콘루프, https://blog.theloop.co.kr/2017/06/21/bft-%EA%B8%B0%EB%B0%98-%ED%95%A9%EC%9D%98-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/(2017.06.21.) 1부.*
아크로니, 소프트웨어 정의 스토리지(SDS) ‘아크로니스 스토리지’ 출시, elec4, http://www.elec4.co.kr/article/articleView.asp?idx=15665 (2016.10.25.) 1부.*

Also Published As

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

Similar Documents

Publication Publication Date Title
KR102258722B1 (ko) 동적 블록체인 시스템 및 그의 동작 방법
CN110598394B (zh) 一种权限验证方法、装置和存储介质
JP2020521252A5 (ko)
CN100586058C (zh) 基于j2ee中间件规范的容忍入侵应用服务器及容忍入侵方法
US20050027862A1 (en) System and methods of cooperatively load-balancing clustered servers
CN111181715A (zh) 一种基于一致性哈希共识协议的多方跨链方法
JP2007507760A (ja) セキュアなクラスターコンフィギュレーションデータセットの転送プロトコル
CN101719258B (zh) 基于大型机的远距离双中心交易信息的处理方法和系统
CN113553375B (zh) 一种面向图式区块链的分片存储装置及方法
CN113922971B (zh) 跨链交互方法及装置
CN110706113A (zh) 一种跨区块链的数据处理方法、装置、设备及介质
CN104871168A (zh) 不受信任的设备上的资源保护
CN112835977A (zh) 一种基于区块链的数据库管理方法及系统
CN111770477A (zh) 一种mec网络的保护资源的部署方法及相关装置
CN114978638B (zh) 一种基于共享节点的区块链跨链监管方法
Urmila et al. A comparitive study of blockchain applications for enhancing internet of things security
Zhang et al. Blockchain based big data security protection scheme
Grybniak et al. Waterfall: a scalable distributed ledger technology
EP3648430B1 (de) Hardware-sicherheitsmodul
CN111177262A (zh) 一种区块链共识方法、相关装置及系统
CN112995127A (zh) 一种基于区块链的智能家居管理系统
CN114637472A (zh) 基于dht的区块链存储扩展方法、电子设备及存储介质
Al-Mamun et al. Trustworthy edge computing through blockchains
KR102130699B1 (ko) 분산 트랜잭션 풀을 가지는 블록체인 기반 전자 투표 시스템의 운영 방법
Wander et al. Towards peer-to-peer-based cryptanalysis

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant