KR102258722B1 - Dynamic Blockchain System and Operating Method thereof - Google Patents

Dynamic Blockchain System and Operating Method thereof 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
Korean (ko)
Other versions
KR20200056729A (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 KR1020180140755A priority Critical patent/KR102258722B1/en
Publication of KR20200056729A publication Critical patent/KR20200056729A/en
Application granted granted Critical
Publication of KR102258722B1 publication Critical patent/KR102258722B1/en

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] 

Landscapes

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

Abstract

본 발명은 동적 블록체인 시스템 및 그의 동작 방법에 관한 것으로, 본 발명에 따른 동적 블록체인 시스템은 사용자가 소유하는 복수의 단말기 노드들을 포함하고, 각 단말기 노드에 트랜잭션이 송신될 트랜잭션 노드가 매핑되어 있는 단말기 노드 풀; 및 각 트랜잭션 노드에 다음 트랜잭션 노드가 매핑되어 있어서 상기 단말기 노드 풀의 각 단말기 노드에서 송신된 트랜잭션을 비동기적으로 처리하고 가상 블록의 합의를 수행하는 복수의 트랜잭션 노드들을 포함하고, 상기 복수의 트랜잭션 노드들의 로드 밸런싱을 자동으로 수행하는 트랜잭션 노드 풀을 제공함으로써, 네트워크의 성능을 높일 수 있다.The present invention relates to a dynamic blockchain system and a method of operation thereof. The dynamic blockchain system according to the present invention includes a plurality of terminal nodes owned by a user, and a transaction node to which a transaction is transmitted is mapped to each terminal node. Terminal node pool; And a plurality of transaction nodes that asynchronously process a transaction transmitted from each terminal node of the terminal node pool and perform consensus of a virtual block by mapping the next transaction node to each transaction node, wherein the plurality of transaction nodes Network performance can be improved by providing a pool of transaction nodes that automatically balance the loads of users.

Figure R1020180140755
Figure R1020180140755

Description

동적 블록체인 시스템 및 그의 동작 방법{Dynamic Blockchain System and Operating Method thereof} Dynamic Blockchain System and Operating Method thereof

본 발명은 동적 블록체인 시스템 및 그의 동작 방법에 관한 것으로, 동적으로 로드 밸런싱이 가능한 블록체인 시스템 및 그의 동작 방법에 관한 것이다.The present invention relates to a dynamic blockchain system and an operation method thereof, and to a blockchain system capable of dynamically load balancing and an operation method thereof.

비트코인(Bitcoin)으로부터 시작된 블록체인 기술은 차세대 인터넷을 이끌 혁신적 기술로서 수많은 업계의 관심을 모으고 있으며, 이더리움(Ethereum), 하이퍼레저(Hyperledger), 리플(Ripple), R3 등의 등장과 함께 빠르게 산업적으로 영향력을 확대해가고 있다. 또한, 가상화폐, 에셋 관리, 공유 경제, IoT, 헬스, 물류 등 다양한 분야에 걸쳐 블록체인 솔루션을 제공하는 신생 기업이 탄생하여 기술 및 플랫폼에 대한 경쟁이 뜨거워지고 있다.Blockchain technology, which started with Bitcoin, is attracting attention from numerous industries as an innovative technology that will lead the next-generation Internet, and rapidly with the advent of Ethereum, Hyperledger, Ripple, and R3. It is expanding its influence industrially. In addition, competition for technologies and platforms is intensifying with the birth of a startup that provides blockchain solutions in various fields such as virtual currency, asset management, sharing economy, IoT, health, and logistics.

블록체인 시스템은 수많은 노드가 P2P 네트워크로 연결되어 사용자의 트랜잭션을 처리하는 시스템으로서, 트랜잭션에 대한 기록을 순차적으로 저장하는 일종의 분산 원장 시스템이라고 볼 수 있는데, 한 번 기록된 내용은 변경이 거의 불가능하다는 특징을 가진다. 블록체인 시스템은 모든 노드가 동일한 트랜잭션에 대한 처리 기록을 가지도록 하여야 하는데 그것을 가능하게 하는 것이 합의 알고리즘이다.Blockchain system is a system in which numerous nodes are connected via a P2P network to process user transactions, and it can be seen as a kind of distributed ledger system that sequentially stores records of transactions. Once recorded, it is almost impossible to change. It has a characteristic. The blockchain system must ensure that all nodes have the processing record for the same transaction, and the consensus algorithm makes it possible.

블록체인 시스템은 크게 블록체인에 참가하는 노드의 참여 제한 여부에 따라 비허가형(Permissionless) 블록체인과 허가형(Permissioned) 블록체인으로 나눌 수가 있다. 허가형 블록체인의 경우에는 비허가형 블록체인에 사용되는 작업 증명 기반의 합의 알고리즘과는 완전히 다른 형태의 합의 알고리즘을 사용할 수 있다. 왜냐하면, 참여하는 노드가 제한되므로 그 점을 활용할 수 있는 알고리즘의 적용이 가능하기 때문이다. 대표적인 알고리즘으로서 PBFT(Practical Byzantine Fault Tolerant)가 있다.Blockchain systems can be largely divided into permissionless blockchains and permissioned blockchains depending on whether or not nodes participating in the blockchain are restricted from participating. In the case of a permission-type blockchain, a completely different form of consensus algorithm can be used than the proof-of-work-based consensus algorithm used in an unlicensed blockchain. This is because participating nodes are limited, so an algorithm that can take advantage of that point can be applied. A representative algorithm is PBFT (Practical Byzantine Fault Tolerant).

허가형 블록체인에 이용 가능한 합의 알고리즘으로 해시그래프(Hashgraph) 알고리즘이 있다. 해시그래프는 기존 블록체인의 한계를 극복하고자 연결 리스트 방식이 아니라, 하나의 노드가 다른 불특정 노드에게 가십(gossip)을 전달하는 방식으로 작동하는 알고리즘이다. 기존 블록체인의 장점인 위변조 방지 기능과 탈중앙 의사결정구조를 유지하면서도, 1초에 수십만 건 이상의 빠른 속도로 트랜잭션을 처리할 수 있다. Hashgraph algorithm is a consensus algorithm that can be used for permissioned blockchain. Hashgraph is an algorithm that works by passing gossip to other unspecified nodes rather than a linked list method to overcome the limitations of the existing blockchain. While maintaining the anti-forgery function and decentralized decision-making structure, which are the advantages of the existing blockchain, it can process hundreds of thousands of transactions per second.

이러한 해시그래프는 특정 사용자가 거래의 순서를 변경할 수 없기 때문에 공평하다. 주식 시장의 예를 들어, 만약 엘리스와 밥이 동시에 동일한 가격으로 남은 마지막 주식 하나를 매수한다고 가정해보자. 블록체인 시스템에서는 채굴자(miner)가 두 거래 모두 동일한 블록에 넣어 진행한다면 순서를 임의로 정하거나 또는 엘리스의 거래만 포함하고 밥의 거래를 다음 블록에 포함할 수도 있다. 해시그래프에서는 이 경우 한 개인이 거래의 순서를 변경할 수 없다. 여기서 엘리스가 분산형 시스템 내 모든 사용자에게 밥의 거래보다 먼저 전파할 수 있는 최선의 방법은 인터넷 속도에 투자하는 것이며 이로 공정한 경쟁을 도모할 수 있다. 거래 처리 권한이 특정 인물에게 위임되지 않았기에 엘리스는 채굴자에게 뇌물을 주며 부당한 혜택을 꾀할 수 없다.This hash graph is fair because a specific user cannot change the order of transactions. For example in the stock market, suppose that Ellis and Bob simultaneously buy the last one left at the same price. In the blockchain system, if a miner puts both transactions in the same block, the order can be arbitrarily determined, or only Ellis' transaction and Bob's transaction can be included in the next block. In the hashgraph, in this case, an individual cannot change the order of transactions. Here, the best way for Elise to spread to all users in the distributed system before Bob's transaction is to invest in internet speed, thereby promoting fair competition. Since the transaction processing authority has not been delegated to a specific person, Ellis is unable to obtain unfair benefits by bribing miners.

아울러, 해시그래프에서는 특정 사용자가 시스템에 입력되는 거래를 저지하거나 멈출 수 없으므로 공정하다. 블록체인 시스템에서는 만약 다수의 채굴자들이 특정 거래를 블록에 포함하는 것을 거부할 경우, 한 개 또는 두 개의 채굴 기간(mining period)까지 처리가 지연될 수 있다. 그러나 해시그래프에서는 인터넷 연결을 차단하는 방법 외에는 사용자의 거래를 막을 수 없다.In addition, in the hash graph, it is fair because a specific user cannot stop or stop a transaction entered into the system. In the blockchain system, if multiple miners refuse to include a specific transaction in a block, processing may be delayed until one or two mining periods. However, in the hashgraph, you cannot block users' transactions except by blocking the Internet connection.

하지만, 해시그래프 알고리즘은 하나의 노드에 로드가 계속 몰리게 되면 실시간 결제의 처리가 필요한 경우에도 병목 현상이 발생하여 전체 처리가 늦어질 수 있을 뿐만 아니라 네트워크의 노드 개수가 고정되어 있어 유연한 처리가 어렵다. 또한, 해시그래프 알고리즘에 의해 물리적인 노드에 저장되어 있는 이벤트들은 휘발성 메모리에 축적되게 되어 외부 공격에 취약하고 또한 전원이 차단되면 메모리에 축적되어 있던 데이터가 소거될 수도 있다. However, in the hash graph algorithm, if the load continues to be concentrated on one node, a bottleneck may occur even when real-time payment processing is required, and the overall processing may be delayed, and flexible processing is difficult because the number of nodes in the network is fixed. In addition, events stored in the physical node by the hash graph algorithm are accumulated in the volatile memory and are vulnerable to external attacks. In addition, data accumulated in the memory may be erased when the power is cut off.

상술한 문제점을 해결하기 위해, 본 발명은 동적 블록체인 시스템 및 그의 동작 방법을 제공하는 것을 목적으로 한다.In order to solve the above problems, an object of the present invention is to provide a dynamic blockchain system and a method of operation thereof.

본 발명은 로드 밸런싱이 가능한 블록체인 시스템 및 그의 동작 방법을 제공하는 것을 목적으로 한다.An object of the present invention is to provide a block chain system capable of load balancing and an operation method thereof.

또한, 본 발명은 외부 공격으로부터 피해를 방지하고 데이터의 보호가 가능한 블록체인 시스템 및 그의 동작 방법을 제공하는 것을 목적으로 한다. In addition, an object of the present invention is to provide a block chain system and a method of operation thereof that can prevent damage from external attacks and protect data.

상술한 목적을 달성하기 위해, 본 발명의 일실시예에 따른 동적 블록체인 시스템은, 사용자가 소유하는 복수의 단말기 노드들을 포함하고, 각 단말기 노드에 트랜잭션이 송신될 트랜잭션 노드가 매핑되어 있는 단말기 노드 풀; 및 각 트랜잭션 노드에 다음 트랜잭션 노드가 매핑되어 있어서 상기 단말기 노드 풀의 각 단말기 노드에서 송신된 트랜잭션을 비동기적으로 처리하고 가상 블록의 합의를 수행하는 복수의 트랜잭션 노드들을 포함하고, 상기 복수의 트랜잭션 노드들의 로드 밸런싱을 자동으로 수행하는 트랜잭션 노드 풀을 제공할 수 있다.In order to achieve the above object, a dynamic blockchain system according to an embodiment of the present invention includes a plurality of terminal nodes owned by a user, and a transaction node to which a transaction is to be transmitted is mapped to each terminal node. pool; And a plurality of transaction nodes that asynchronously process a transaction transmitted from each terminal node of the terminal node pool and perform consensus of a virtual block by mapping the next transaction node to each transaction node, wherein the plurality of transaction nodes It is possible to provide a pool of transaction nodes that automatically perform load balancing of users.

상기 동적 블록체인 시스템은 상기 트랜잭션 노드 풀은 상기 복수의 트랜잭션 노드들의 로드 밸런싱을 자동으로 수행하는 트랜잭션 관리 노드를 더 포함할 수 있고, 상기 트랜잭션 관리 노드는 트랜잭션에 대해 가상 블록이 합의될 때마다 송신되는 특정의 트랜잭션 노드의 통지 정보로부터 상기 특정의 트랜잭션 노드의 로드 상태를 판정하여 상기 복수의 트랜잭션 노드들의 로드 밸런싱을 자동으로 수행할 수 있다.In the dynamic blockchain system, the transaction node pool may further include a transaction management node that automatically performs load balancing of the plurality of transaction nodes, and the transaction management node transmits each time a virtual block is agreed upon for a transaction. It is possible to automatically perform load balancing of the plurality of transaction nodes by determining the load state of the specific transaction node from the notification information of the specific transaction node.

상기 트랜잭션 관리 노드는 상기 단말기 노드 풀의 각 단말기 노드에서 송신된 트랜잭션을 비동기적으로 처리하고 가상 블록의 합의를 수행하기 위해 소정 개수의 트랜잭션 노드들을 하나의 채널로 매핑할 수 있다.The transaction management node may asynchronously process a transaction transmitted from each terminal node of the terminal node pool and map a predetermined number of transaction nodes to one channel in order to perform virtual block consensus.

상기 트랜잭션 관리 노드는 특정 채널의 상기 특정의 트랜잭션 노드의 로드 상태를 판정하여 로드가 임계치 이상이면 소정 개수의 트랜잭션 노드들을 새로운 채널로 매핑하여 상기 특정 채널로부터 분기시킬 수 있다.The transaction management node may determine a load state of the specific transaction node of a specific channel and, if the load is greater than or equal to a threshold, map a predetermined number of transaction nodes to a new channel and branch from the specific channel.

상기 동적 블록체인 시스템은 상기 트랜잭션 노드 풀에서 트랜잭션마다 가상 블록의 합의 후 송신된 트랜잭션을 적어도 수백 개 이상 모아 블록을 생성하여 블록체인을 만드는 블록 노드 풀을 더 포함할 수 있다.The dynamic blockchain system may further include a block node pool for generating a block chain by collecting at least hundreds of transactions transmitted after consensus of virtual blocks for each transaction in the transaction node pool to create a block chain.

상기 블록 노드 풀에서 만들어진 상기 블록체인의 트랜잭션에는 해당 트랜잭션 합의와 관련된 상기 소정 개수의 트랜잭션 노드들의 송신 순서가 포함되어 있을 수 있다.The block chain transaction created from the block node pool may include a transmission order of the predetermined number of transaction nodes related to the corresponding transaction agreement.

상기 단말기 노드 풀은 상기 복수의 단말기 노드들과 각 단말기 노드에서 트랜잭션이 송신될 트랜잭션 노드를 매핑하는 단말기 관리 노드를 더 포함할 수 있고, 상기 단말기 관리 노드는 상기 매핑뿐만 아니라 회원 가입과 인증을 관리하는 서버 기능을 수행할 수 있다.The terminal node pool may further include a terminal management node for mapping the plurality of terminal nodes and a transaction node to which a transaction is to be transmitted from each terminal node, and the terminal management node manages not only the mapping but also membership registration and authentication. It can perform a server function.

본 발명의 다른 실시예에 따른, 사용자가 소유하는 복수의 단말기 노드들을 포함하는 단말기 노드 풀 및 복수의 트랜잭션 노드들을 포함하는 트랜잭션 노드 풀을 포함하는 동적 블록체인 시스템의 동작 방법은, 각 단말기 노드에 트랜잭션이 송신될 트랜잭션 노드, 그리고 각 트랜잭션 노드에 다음 트랜잭션 노드를 매핑하는 단계; 상기 복수의 단말기 노드들 중 하나의 단말기 노드에서 매핑된 트랜잭션 노드에 트랜잭션을 송신하는 단계; 상기 복수의 트랜잭션 노드들에서 상기 단말기 노드로부터 송신된 트랜잭션을 비동기적으로 처리하고 가상 블록의 합의를 수행하는 단계; 및 상기 복수의 트랜잭션 노드들의 로드 밸런싱을 자동으로 수행하는 단계를 제공할 수 있다. According to another embodiment of the present invention, a method of operating a dynamic blockchain system including a terminal node pool including a plurality of terminal nodes owned by a user and a transaction node pool including a plurality of transaction nodes is provided in each terminal node. Mapping a transaction node to which a transaction is to be transmitted, and a next transaction node to each transaction node; Transmitting a transaction from one of the plurality of terminal nodes to a mapped transaction node; Asynchronously processing a transaction transmitted from the terminal node in the plurality of transaction nodes and performing virtual block consensus; And automatically performing load balancing of the plurality of transaction nodes.

상술한 구성에 의해, 본 발명은 노드에서의 로드 상태에 따라 분기하거나 다시 병합하여 동적으로 네트워크의 성능을 높일 수 있다.With the above-described configuration, the present invention can dynamically increase the performance of the network by branching or re-merging according to the load state in the node.

본 발명은 또한, 물리적인 노드와 논리적인 노드를 구분하여 매핑을 통해 네트워크의 가용성을 균일하게 하고 외부 공격에 대한 방어력을 높일 수 있다.In the present invention, it is also possible to divide physical nodes and logical nodes to uniformize the availability of a network through mapping and increase defense power against external attacks.

본 발명은 또한, 블록 노드 풀에서 블록체인을 생성하여 관리함으로써 외부 공격으로부터 피해를 방지하고 데이터를 보호할 수 있다. The present invention can also prevent damage from external attacks and protect data by creating and managing a block chain from a pool of block nodes.

도 1은 본 발명의 일실시예에 따른 동적 블록체인 시스템의 블록도를 도시한 도면이다.
도 2는 도 1의 블록체인 시스템에 이용 가능한 데이터 스택의 일 예를 도시한 도면이다.
도 3은 블록 노드에 저장되는 블록 구조의 일 예를 도시한 도면이다.
도 4는 일반적인 해시그래프의 가십 프로토콜의 일 예를 도시하는 도면이다.
도 5는 본 발명에 따른 해시그래프의 분기의 일 예를 도시하는 도면이다.
도 6은 본 발명에 따른 해시그래프의 병합의 일 예를 도시하는 도면이다.
도 7은 일반적으로 트랜잭션 노드들에 할당된 채널의 내부 처리의 일 예를 도시하는 도면이다.
도 8은 본 발명에 따른 채널 분기의 내부 처리의 일 예를 도시하는 도면이다.
도 9는 본 발명에 따른 채널 병합의 내부 처리의 일 예를 도시하는 도면이다.
도 10은 본 발명의 일실시예에 따른 동적 블록체인 시스템의 동작 방법의 흐름도를 도시하는 도면이다.
1 is a block diagram of a dynamic blockchain system according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating an example of a data stack usable in the block chain system of FIG. 1.
3 is a diagram illustrating an example of a block structure stored in a block node.
4 is a diagram illustrating an example of a general hash graph gossip protocol.
5 is a diagram showing an example of branching of a hash graph according to the present invention.
6 is a diagram showing an example of merging of hash graphs according to the present invention.
7 is a diagram illustrating an example of internal processing of channels generally allocated to transaction nodes.
8 is a diagram showing an example of internal processing of a channel branch according to the present invention.
9 is a diagram showing an example of internal processing of channel merging according to the present invention.
10 is a diagram illustrating a flowchart of a method of operating a dynamic blockchain system according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명에 따른 동적 블록체인 시스템 및 그의 동작 방법의 바람직한 실시예를 설명한다. 참고로, 아래에서 본 발명을 설명함에 있어서, 본 발명의 구성요소를 지칭하는 용어들은 각각의 구성 요소들의 기능을 고려하여 명명된 것이므로, 본 발명의 기술적 구성요소를 한정하는 의미로 이해되어서는 안 될 것이다. Hereinafter, a preferred embodiment of a dynamic blockchain system and a method of operation thereof according to the present invention will be described with reference to the accompanying drawings. For reference, in the following description of the present invention, the terms referring to the components of the present invention are named in consideration of the functions of the respective components, and thus should not be understood as limiting the technical components of the present invention. Will be.

도 1에 도시된 바와 같이, 동적 블록체인 시스템(100)은 단말기 노드 풀(110), 트랜잭션 노드 풀(120) 및 블록 노드 풀(130)을 포함한다. 1, the dynamic blockchain system 100 includes a terminal node pool 110, a transaction node pool 120, and a block node pool 130.

단말기 노드 풀(110)은 사용자가 소유하는 단말기와 관련된 것으로, 예를 들어 실제 결제를 요청하기 위한 복수의 단말기 노드들(112)과 단말기 노드들(112)의 로드 밸런싱을 위한 단말기 관리 노드(114)를 포함할 수 있다. The terminal node pool 110 is related to a terminal owned by a user, for example, a plurality of terminal nodes 112 for requesting actual payment and a terminal management node 114 for load balancing of the terminal nodes 112 ) Can be included.

복수의 단말기 노드들(112)은 도 1에 도시된 바와 같이, 예를 들어 #01부터 #40으로 구성될 수 있다. 그리고 단말기 관리 노드(114)는 복수의 단말기 노드들(112)이 소수의 트랜잭션 노드들(122)에 적절히 로드가 분산되도록 각각의 단말기 노드(112)에 매핑된 트랜잭션 노드를 적절히 분배할 수 있다. 단말기 관리 노드(114)는 로드 밸런싱뿐만 아니라 모니터링을 수행하여 비정상적인 처리 및 외부 침입 등을 탐지할 수 있다. 단말기 관리 노드(114)는 비정상적인 처리 또는 외부 침입 등이 탐지된 경우에는 이미 설정한 보안 정책에 따라 대응할 수 있다. 단말기 관리 노드(114)는 도 1에 도시된 바와 같이, 각 단말기 노드(112)에 송신될 트랜잭션 노드(122)를 적절히 배분할 수 있다.The plurality of terminal nodes 112 may be configured with #01 to #40, for example, as shown in FIG. 1. In addition, the terminal management node 114 may appropriately distribute the transaction nodes mapped to each terminal node 112 so that the load is appropriately distributed among the plurality of terminal nodes 112 to a small number of transaction nodes 122. The terminal management node 114 may perform load balancing as well as monitoring to detect abnormal processing and external intrusion. When an abnormal processing or external intrusion is detected, the terminal management node 114 may respond according to a previously set security policy. The terminal management node 114 may appropriately allocate the transaction nodes 122 to be transmitted to each terminal node 112, as shown in FIG. 1.

단말기 관리 노드(114)는 보통 회원 가입과 인증을 관리하는 서버가 이 역할을 할 수 있으며 별도의 강화된 보안 솔루션이 탑재될 수 있다. 일반적으로 결제를 하기 전에 사용자가 이 단말기를 정말로 소유하고 있는지의 본인 인증이 필수적인데, 단말기 관리 노드(114)는 단말기 노드에서의 생체 인증, 비밀번호 또는 패턴 등의 인증 수단을 이용하여 그 결과를 확인하여 비정상 접속을 탐지할 수 있다.In the terminal management node 114, a server that manages membership registration and authentication may play this role, and a separate enhanced security solution may be mounted. In general, before making payment, it is essential to authenticate whether the user really owns this terminal, and the terminal management node 114 checks the result using authentication means such as biometric authentication, password, or pattern at the terminal node. Thus, abnormal access can be detected.

트랜잭션 노드 풀(120)은 트랜잭션을 처리하는 복수의 트랜잭션 노드들(122)과 트랜잭션 노드들(122)의 로드 밸런싱을 위한 트랜잭션 관리 노드(124)를 포함할 수 있다. 트랜잭션 관리 노드(124)는 소정 수의 트랜잭션 노드들(122)을 하나의 채널로 묶어서 관리하며, 하나의 채널에 로드가 많이 걸리면 적절히 분기하여 새로운 채널을 할당할 수 있으며, 반대로 로드가 너무 적게 걸려 노드가 낭비되면 이들 채널들을 하나의 채널 안에 통합할 수 있다. 그리고 트랜잭션 관리 노드(124)는 각 트랜잭션 노드(122)의 다음 트랜잭션 노드(124)를 지정하여 전송하거나 아니면 랜덤하게 지정하여 전송할 수 있다. 트랜잭션 관리 노드(124)는 또한, 모니터링을 수행하여 비정상적인 처리 및 외부 침입 등을 탐지하고, 비정상적인 처리 또는 외부 침입 등이 탐지된 경우에는 이미 설정한 보안 정책에 따라 대응할 수 있다. The transaction node pool 120 may include a plurality of transaction nodes 122 for processing transactions and a transaction management node 124 for load balancing of the transaction nodes 122. The transaction management node 124 bundles and manages a predetermined number of transaction nodes 122 into a single channel, and when a large load is applied to one channel, a new channel can be appropriately branched to allocate a new channel. Conversely, too little load is required. If nodes are wasted, these channels can be consolidated into a single channel. In addition, the transaction management node 124 may designate and transmit the next transaction node 124 of each transaction node 122 or may randomly designate and transmit the next transaction node 124. The transaction management node 124 may also perform monitoring to detect abnormal processing and external intrusion, and when abnormal processing or external intrusion is detected, may respond according to a previously set security policy.

복수의 트랜잭션 노드들(122)은 도 1에 도시된 바와 같이, 예를 들어 &01부터 &20으로 구성될 수 있다. 도 1에서는 5개의 트랜잭션 노드들(122)을 하나의 채널로 도시한다. 도 1에 도시된 트랜잭션 노드 풀(120)에서의 전송 순서는 설명의 편의를 위해 정한 것으로, 구체적인 실시예에 따라서는 합의 알고리즘인 해시그래프 형태일 수 있다. As shown in FIG. 1, the plurality of transaction nodes 122 may be configured from &01 to &20, for example. In FIG. 1, five transaction nodes 122 are shown as one channel. The order of transmission in the transaction node pool 120 shown in FIG. 1 is determined for convenience of description, and may be in the form of a hash graph that is a consensus algorithm according to a specific embodiment.

블록 노드 풀(130)은 하나의 채널에서 확인된 다수의 트랜잭션을 포함하여 블록을 생성하는 복수의 블록 노드들(132)과 블록 생성을 위한 노드들의 채널을 관리하는 블록 관리 노드(134)를 포함할 수 있다. 복수의 블록 노드들(132)은 도 1에 도시된 바와 같이, 예를 들어 %01부터 %04으로 구성될 수 있다. 블록 관리 노드(134)는, 도 1에는 도시되어 있지 않지만, 또한 트랜잭션 노드 풀(120)처럼 로드를 분산 또는 통합하여 관리할 수 있다. The block node pool 130 includes a plurality of block nodes 132 that generate a block including a plurality of transactions identified in one channel, and a block management node 134 that manages a channel of nodes for block generation. can do. The plurality of block nodes 132 may be composed of, for example, %01 to %04, as shown in FIG. 1. The block management node 134, although not shown in FIG. 1, may also distribute or consolidate the load like the transaction node pool 120 to manage.

위의 관리 노드들은 기본적으로 이중화하여 정기적으로 데이터를 동기화하는 것이 바람직하며, 메인 관리 노드가 비정상적으로 동작하면 서브 관리 노드가 바로 메인 관리 노드의 역할을 대행하고 메인 관리 모드는 복구 모드로 들어갈 수 있다.The above management nodes are basically redundant to synchronize data regularly. If the main management node operates abnormally, the sub-management node immediately acts as the main management node, and the main management mode can enter the recovery mode. .

도 1에 도시된 바와 같이, 본 발명의 실시예에서는 트랜잭션 노드(122)와 단말기 노드(112)가 명확하게 구분되어 있다. 하지만, 트랜잭션 노드(122)와 블록 노드(132)는 구현에 따라 하나의 노드가 두 가지 기능들을 모두 수행할 수 있다.1, in the embodiment of the present invention, the transaction node 122 and the terminal node 112 are clearly separated. However, in the transaction node 122 and the block node 132, one node may perform both functions depending on implementation.

도 1에 도시된 관리 노드들끼리는 양방향 통신이 허용되나 일반 노드들은 관리 노드의 지시만 받도록 구성되는 것이 바람직하다. 즉, 매핑 노드의 변경 등의 설정 변경의 이벤트가 발생시 관리 노드의 명령 순서에 따라 일반 노드들은 동작하며 관리 노드에 피드백하거나 별도의 데이터를 송신하지 않는다. 이에 의해 해커가 일반 노드를 통해 관리 노드로 침입하는 것을 원천적으로 방지할 수 있다.Although bidirectional communication is allowed between the management nodes shown in FIG. 1, it is preferable that normal nodes are configured to receive only instructions from the management node. That is, when an event of configuration change such as a change of a mapping node occurs, general nodes operate according to the order of commands of the management node, and do not feed back to the management node or transmit separate data. Accordingly, it is possible to fundamentally prevent a hacker from invading the management node through a general node.

또한, 보통 해커가 이미 네트워크에 침입하면 막기가 어려워진다. 따라서 네트워크의 게이트에 해당하는 단말기 관리 노드가 비정상적인 침입을 감지하고 충분히 공격에 대해 내성을 갖도록 단말기 관리 노드는 보안이 강화될 필요가 있다.Also, it usually becomes difficult to block if a hacker has already infiltrated the network. Therefore, the security of the terminal management node needs to be strengthened so that the terminal management node corresponding to the network gate detects an abnormal intrusion and is sufficiently resistant to attack.

도 2는 도 1의 블록체인 시스템에 이용 가능한 데이터 스택의 일 예를 도시한 도면이다.FIG. 2 is a diagram illustrating an example of a data stack usable in the block chain system of FIG. 1.

일반적으로 결제는 돈을 송신하는 과정과 돈을 수신하는 과정으로 구분될 수 있다. 도 2에는 결제 프로세스 중 돈을 송신하는 과정만을 예로 들어 데이터 스택이 도시되어 있다.In general, payment can be divided into a process of sending money and a process of receiving money. In FIG. 2, a data stack is shown as an example of a process of transmitting money during a payment process.

단말기 노드(Te Node) #01의 사용자가 다른 단말기 노드에 돈을 송신하고자 하면, 단말기 노드 #01은 예를 들어 "갑이 을에게 코인 1을 보낸다."와 같은 전문 데이터와 함께 단말기 id 정보와 트랜잭션 노드(Tr Node) id를 하나의 트랜잭션으로 하여 송신한다. 여기서 단말기 노드 id는 소스로 자신의 단말기 노드 #01가 기록될 수 있고, 트랜잭션 노드 id는 목적지로 단말기 관리 노드(114)에서 지정한 트랜잭션 노드 &01가 기록될 수 있다.When the user of the terminal node #01 wants to send money to another terminal node, the terminal node #01 includes the terminal ID information along with specialized data such as "Gap sends coin 1 to Eul", for example. The transaction node (Tr Node) id is transmitted as one transaction. Here, the terminal node ID may be recorded as its own terminal node #01 as a source, and the transaction node ID may be recorded as a destination, and the transaction node &01 designated by the terminal management node 114 may be recorded.

트랜잭션 노드 &01은 단말기 노드 #01로부터 수신한 트랜잭션 정보 이외에 다음 트랜잭션 노드, 예를 들어 트랜잭션 노드 &02를 추가하여 송신한다. 트랜잭션 노드 &02은 트랜잭션 노드 &01로부터 수신한 정보 이외에 다음 트랜잭션 노드, 예를 들어 트랜잭션 노드 &03를 추가하여 송신한다. 트랜잭션 노드 &03은 트랜잭션 노드 &02로부터 수신한 정보 이외에 다음 트랜잭션 노드, 예를 들어 트랜잭션 노드 &04를 추가하여 송신한다. 트랜잭션 노드 &04는 트랜잭션 노드 &03으로부터 수신한 정보 이외에 다음 트랜잭션 노드, 예를 들어 트랜잭션 노드 &05를 추가하여 송신한다. In addition to the transaction information received from terminal node #01, transaction node &01 adds and transmits a next transaction node, for example, transaction node &02. In addition to the information received from transaction node &01, transaction node &02 adds and transmits a next transaction node, for example, transaction node &03. In addition to the information received from transaction node &02, transaction node &03 adds and transmits a next transaction node, for example, transaction node &04. In addition to the information received from transaction node &03, transaction node &04 adds and transmits a next transaction node, for example, transaction node &05.

그리고 예를 들어 해시그래프 알고리즘과 같은 가십 프로토콜에 따라 가상 블록의 합의가 이루어지면, 트랜잭션 노드 &05는 트랜잭션 노드 &04로부터 수신한 정보 이외에 블록 노드, 예를 들어 Bl Node %01을 추가하여 송신한다.In addition, when consensus of a virtual block is reached according to a gossip protocol such as a hash graph algorithm, transaction node &05 adds and transmits a block node, such as Bl Node %01, in addition to the information received from transaction node &04.

트랜잭션 노드들에는 해시그래프의 경우 트랜잭션이 하나의 이벤트가 되어 이벤트들이 서로 연관되어 저장된다. 하지만, 트랜잭션 노드들에 저장된 데이터는 블록체인으로 저장된 것이 아니고 휘발성 메모리에 저장된 이벤트들인바, 외부 공격에 취약할 뿐만 아니라 또한 전원이 차단되면 메모리에 축적되어 있던 데이터가 소거될 수도 있다. 또한, 트랜잭션 노드 풀(120)에서는 다양한 형태의 계약을 체결하고 이행하는 스마트 컨트랙트(smart contract)가 용이하지 않다.In the case of a hash graph in transaction nodes, a transaction becomes an event, and the events are stored in association with each other. However, the data stored in the transaction nodes are not stored in the blockchain but are events stored in volatile memory, so they are not only vulnerable to external attacks, but also the data accumulated in the memory may be erased when the power is cut off. In addition, in the transaction node pool 120, it is not easy to execute a smart contract for signing and executing various types of contracts.

블록 노드는 스마트 컨트랙트를 가능하게 할 뿐만 아니라 블록체인으로 데이터를 관리하므로 블록체인이 갖는 장점을 이용할 수 있다. 블록 노드(Bl Node) %01은 예를 들어 가상 블록의 합의가 이루어진 트랜잭션이 예를 들어 2000개가 수신되면, 하나의 블록을 생성할 수 있다. Block nodes not only enable smart contracts, but also manage data with a block chain, so you can take advantage of the advantages of a block chain. Block node %01 can generate one block when, for example, 2000 transactions with consensus of virtual blocks are received.

도 3은 블록 노드에 저장되는 블록 구조의 일 예를 도시한 도면이다.3 is a diagram illustrating an example of a block structure stored in a block node.

블록은 헤더와 바디로 구분되며, 헤더에는 버전번호, 블록생성시간, 이전 블록 해시 값, 합의 메타데이터, 블록 메타데이터, 현재 블록의 해시 값이 기록될 수 있고, 바디에는 트랜잭션들이 기록될 수 있다. The block is divided into a header and a body, and in the header, the version number, block creation time, previous block hash value, consensus metadata, block metadata, and hash value of the current block can be recorded, and transactions can be recorded in the body. .

상술한 바와 같이, 블록 n에는 예를 들어 2000개의 트랜잭션뿐만 아니라 트랜잭션의 해시 값 이외에 이전 블록 n-1 및 블록 n의 해시 값이 반드시 포함되어야 한다. 블록 n의 해시 값은 블록 n+1의 이전 블록 해시 값 영역에 기록되므로 블록들은 서로 연결 관계를 갖게 된다. 또한, 합의 메타데이터에는 트랜잭션의 합의와 관련된 트랜잭션 노드가 개수가 기록될 수 있다.As described above, block n must include, for example, not only 2000 transactions, but also hash values of the previous block n-1 and block n in addition to the hash value of the transaction. Since the hash value of block n is recorded in the hash value area of the previous block of block n+1, the blocks have a connection relationship with each other. In addition, in the consensus metadata, the number of transaction nodes related to the consensus of the transaction may be recorded.

이하에서는 트랜잭션 노드 풀(120)에서의 처리를 보다 상세하게 설명한다.Hereinafter, processing in the transaction node pool 120 will be described in more detail.

도 1에서 도시된 바와 같이, 트랜잭션 노드 &01(122)에는 복수의 단말기 노드들(112) 및 다수의 트랜잭션 노드들(122)로부터 트랜잭션들, 예를 들어 해시그래프의 경우 이벤트들이 수신된다. 이러한 이벤트들을 저장하기 위해 각각의 트랜잭션 노드(122)에는 카프카 클러스터(미도시됨)가 구비되어 있다. 카프카 클러스터에 저장된 이벤트들은 입력된 순서에 따라 해당 트랜잭션 노드(122)에서 처리된다.As shown in FIG. 1, transactions, for example, events in the case of a hash graph, are received from a plurality of terminal nodes 112 and a plurality of transaction nodes 122 in the transaction node &01 122. In order to store these events, each transaction node 122 is provided with a Kafka cluster (not shown). Events stored in the Kafka cluster are processed by the corresponding transaction node 122 according to the input order.

도 4는 일반적인 해시그래프의 가십 프로토콜의 일 예를 도시하는 도면이고, 도 5는 본 발명에 따른 해시그래프의 분기의 일 예를 도시하는 도면이고, 도 6은 본 발명에 따른 해시그래프의 병합의 일 예를 도시하는 도면이다. 여기서 각 노드는 Alice, Bob, Carol, Dave 및 Ed의 단말기들에 각각 매핑된 트랜잭션 노드이다. 4 is a diagram showing an example of a general hash graph gossip protocol, FIG. 5 is a diagram showing an example of a branch of a hash graph according to the present invention, and FIG. 6 is a diagram of a merge of hash graphs according to the present invention. It is a figure showing an example. Here, each node is a transaction node mapped to the terminals of Alice, Bob, Carol, Dave, and Ed, respectively.

도 4를 보면, Bob 노드에 지나치게 많은 로드, 즉 트랜잭션이 몰리고 있다. 이 경우 Bob 노드는 많은 로드로 인해 처리가 늦어지고 이로 인해 동일 채널에 속한 다른 트랜잭션 노드들 역시 영향을 받아 전체 처리가 늦어질 수 있다. 트랜잭션 관리 노드(124)는 Bob 노드의 많은 로드로 인해 동일 채널의 전체 처리 속도가 늦어진다고 결정되면, 예컨대 트랜잭션이 몰리게 되어 임계치들 넘어서면, 도 5에 도시된 바와 같이, Bob2 노드를 생성한다. 이후 Bob 노드에 있는 카프카 클러스터는 처리될 트랜잭션들의 일부를 Bob2 노드에서 실행하게 한다. 한편, 해시 알고리즘의 채널 내에서의 분기는 트랜잭션 노드에서 적절하게 처리할 수도 있다. 4, too much load, that is, transactions are concentrated on the Bob node. In this case, processing of the Bob node is delayed due to a lot of load, and other transaction nodes belonging to the same channel are also affected, and the overall processing may be delayed. When it is determined that the overall processing speed of the same channel is slowed down due to the heavy load of the Bob node, the transaction management node 124 creates a Bob2 node, as shown in FIG. 5, when, for example, transactions are concentrated and exceed the threshold values. Afterwards, the Kafka cluster on the Bob node causes some of the transactions to be processed to be executed on the Bob2 node. On the other hand, branching in the channel of the hash algorithm may be properly handled by the transaction node.

한편, 도 4를 다시 보면, Dave 노드와 Ed 노드의 이용이 현저하게 떨어진다. 이 경우 불필요한 전력 소비 등이 발생하므로, 트랜잭션 관리 노드(124)는, 도 6에 도시된 바와 같이, Ed 노드를 Dave 노드에 병합하여 하나의 트랜잭션 노드로 공유하게 한다. 이 경우 트랜잭션 관리 노드(124)는 Ed 노드의 트랜잭션들이 Dave 노드로 송신되도록 트랜잭션 노드의 다음 트랜잭션 노드들을 변경할 수 있고, 또한 단말기 노드에서 트랜잭션 노드로의 목적지를 변경하도록 단말기 관리 노드(114)로 변경 요청 신호를 송신할 수 있다. 나중에 생성된 블록에서 자신의 거래 내역을 검색하고자 하면 자신의 단말기 id가 생성한 트랜잭션 노드와 트랜잭션 노드에서의 다음 트랜잭션 노드가 블록에 모두 포함되어 있기 때문에 단말기 id로 모든 처리 과정을 확인할 수 있다.On the other hand, referring to FIG. 4 again, the use of the Dave node and the Ed node is significantly reduced. In this case, since unnecessary power consumption occurs, the transaction management node 124 merges the Ed node into the Dave node and shares it as one transaction node, as shown in FIG. 6. In this case, the transaction management node 124 can change the next transaction node of the transaction node so that the transactions of the Ed node are transmitted to the Dave node, and also change the terminal management node 114 to change the destination from the terminal node to the transaction node. You can send a request signal. If you want to search for your own transaction details in the block created later, you can check all processing with the terminal id because the block contains both the transaction node created by your terminal id and the next transaction node in the transaction node.

도 7은 일반적으로 트랜잭션 노드들에 할당된 채널의 내부 처리의 일 예를 도시하는 도면이고, 도 8은 본 발명에 따른 채널 분기의 내부 처리의 일 예를 도시하는 도면이고, 도 9는 본 발명에 따른 채널 병합의 내부 처리의 일 예를 도시하는 도면이다. 7 is a diagram showing an example of internal processing of a channel generally allocated to transaction nodes, FIG. 8 is a diagram showing an example of internal processing of a channel branch according to the present invention, and FIG. 9 is a diagram showing an example of internal processing of a channel branch according to the present invention, and FIG. It is a figure which shows an example of the internal process of channel merging according to.

물리적인 공간에 집중되어 있는 트랜잭션 노드들은 보안에 취약하며, 네트워크가 한 번 뚫리게 되면 그 네트워크 전체가 피해를 볼 위험이 있다. 따라서 여러 지역에 노드들이 분산되어 있다면 외부 공격에 대처하는 것이 유리하고 블록체인의 원래 취지에도 부합한바, 매핑 테이블을 이용하여 분산 네트워크를 구성하는 것이 바람직하다. 이에 의해 논리적으로는 연속된 네트워크이지만 물리적으로는 여러 지역에 산개된 네트워크가 가능해진다. 즉. 실제 네트워크에 20개의 노드가 있고, 하나의 채널이 5개의 노드를 사용할 경우 논리적인 노드 주소는 [&01, &02, &03. &04, &05]이지만, 실제 동작하는 물리적인 노드 주소는 [&12, &19, &03. &05, &10]으로 랜덤하게 분산시킬 수 있다. Transaction nodes concentrated in the physical space are vulnerable to security, and once the network is breached, there is a risk of damage to the entire network. Therefore, if nodes are distributed in several regions, it is advantageous to cope with external attacks and conform to the original purpose of the blockchain. Therefore, it is desirable to configure a distributed network using a mapping table. This makes it possible to have a network that is logically continuous, but is physically spread across multiple regions. In other words. If there are 20 nodes in the actual network and one channel uses 5 nodes, the logical node address is [&01, &02, &03. &04, &05], but the actual operating physical node address is [&12, &19, &03. &05, &10] can be randomly distributed.

도 7 내지 도 9는 도 4 내지 도 6의 각각을 채널 매핑, 채널 분기 및 채널 병합의 관점에서 구체적으로 도시한 도면들이다.7 to 9 are diagrams illustrating each of FIGS. 4 to 6 in detail in terms of channel mapping, channel branching, and channel merging.

도 7에 도시된 바와 같이, 본 발명에서는 실시예에 따라 하나의 물리적 노드에 채널에 따른 2개의 논리적 노드들이 사용될 수 있다. 예를 들어, 트랜잭션 관리 노드(124)는 로드를 밸런싱하기 위해 하나의 물리적 노드에 다수의 채널들을 할당할 수 있다.As shown in FIG. 7, in the present invention, two logical nodes according to channels may be used for one physical node according to an embodiment. For example, the transaction management node 124 may allocate multiple channels to one physical node to balance the load.

물리적 노드의 최대 처리 용량이 20Tr/초인데, 채널 A의 처리 용량이 10Tr/초이고, 채널 B의 처리 용량이 15Tr/초이고, 채널 C의 처리 용량이 10Tr/초이면, 도 7의 위의 물리적 노드들에서는 처리량이 5Tr/초만큼 늦어져서 트랜잭션이 처리되므로 채널에서의 트랜잭션의 처리가 현저하게 늦어진다. 트랜잭션 관리 노드(124)는 아래의 물리적 노드들에 처리 용량이 10Tr/초만큼 여유가 있으므로, 도 8에 도시된 바와 같이, 채널 B를 분기하여 채널 D를 생성하고 처리 용량 5Tr/초만큼을 처리할 수 있게 할 수 있다.If the maximum processing capacity of the physical node is 20Tr/sec, the processing capacity of channel A is 10Tr/sec, the processing capacity of channel B is 15Tr/sec, and the processing capacity of channel C is 10Tr/sec, In physical nodes, the transaction is processed because the throughput is delayed by 5Tr/sec, so the processing of the transaction in the channel is significantly delayed. Since the transaction management node 124 has a processing capacity of 10Tr/second in the following physical nodes, as shown in FIG.8, the transaction management node 124 creates a channel D by branching the channel B and processes a processing capacity of 5Tr/second. You can do it.

한편, 물리적 노드의 최대 처리 용량이 20Tr/초인데, 채널 A의 처리 용량이 5Tr/초이고, 채널 B의 처리 용량이 5Tr/초이고, 채널 C의 처리 용량이 5Tr/초이면, 도 7의 위의 물리적 노드들에 채널 C를 처리할 수 있는 충분한 처리 용량이 남아있으므로, 도 9에 도시된 바와 같이, 채널 C를 분기하여 채널 A에 병합할 수 있다.On the other hand, if the maximum processing capacity of the physical node is 20Tr/sec, the processing capacity of channel A is 5Tr/sec, the processing capacity of channel B is 5Tr/sec, and the processing capacity of channel C is 5Tr/sec, Since sufficient processing capacity to process channel C remains in the above physical nodes, channel C can be branched and merged into channel A, as shown in FIG. 9.

아래의 표 1은 본 발명의 동적 블록체인 시스템과 공개된 하이퍼레저 패브릭 및 해시그래프의 특징을 비교한 것이다.Table 1 below compares the characteristics of the dynamic blockchain system of the present invention with the published Hyperledger fabric and hash graph.

구분division 하이퍼레저 패브릭Hyperledger Fabric 해시그래프Hash graph 동적 블록체인 시스템Dynamic Blockchain System 노드의 기능 분담 Distribution of node functions 0.6은 없음. 1.0부터 기능 분화 가능함.There is no 0.6. Functional differentiation is possible from 1.0. 없음. none. 단말기 노드, 트랜잭션 노드, 블록 노드가 존재하며 또한 각각의 관리 노드가 있음. There are terminal nodes, transaction nodes, and block nodes, and also each management node. 합의 알고리즘Consensus algorithm BFT - 동기식으로 하나의 단계를 진행하기 위해서는 Time line을 모든 노드에서 맞춰야 하기 때문에 느림.BFT-Slow because the time line must be aligned at all nodes in order to proceed one step synchronously. ABFT - 비동기식으로 연속적인 이벤트 처리 가능하여 빠름. ABFT-Fast because it can handle continuous events asynchronously. 동적 ABFT - 해시그래프처럼 비동기식이나 자동으로 로드 밸런싱이 가능하여 해시그래프보다 빠름.Dynamic ABFT-Faster than a hash graph because it can load balance asynchronously or automatically like a hash graph. 블록생성Block creation 분산 원장 사용 (Distributed Ledger), 0.6에서는 처리속도를 위해 1블록당 적은 Transaction으로 공간의 낭비가 심했으나 1.0 zoo-keeper도입으로 메모리에 Heap 형태로 저장. 대신 많은 메모리 필요함. Distributed Ledger (Distributed Ledger), for processing speed, wasted a lot of space due to a small transaction per block for processing speed, but 1.0 zoo-keeper was introduced to store it in the memory as a heap. Instead, it requires a lot of memory. Tangle처럼 DAG (Directed Acyclic Graph, 방향성 비순환 그래프) 형태로 메모리에 존재, 블록이 없음. 시스템 다운 시 데이터가 모두 유실됨.Like Tangle, DAG (Directed Acyclic Graph) is present in memory, and there is no block. All data is lost when the system is down. Commit된 Transaction은 Virtual Block이 되어 승인 완료됨. 또한 별도의 블록 생성 네트워크가 블록 생성 부하를 분산함. 적은 메모리 사용이 가능하고 비트코인처럼 2000개 Transaction이 1블록을 이뤄 저장 공간 효율이 높음. Commited Transaction becomes Virtual Block and approval is completed. In addition, a separate block generation network distributes the block generation load. Low memory usage is possible and storage space efficiency is high as 2000 transactions make 1 block like Bitcoin. Smart Contract Smart Contract 체인 코드를 가상 머신에서 수행함.Run the chain code on the virtual machine. 없음. none. 하이퍼레저 패브릭에 준하며 관리 Node에서 처리함.It is based on Hyperledger Fabric and is handled by the management node. 확장성Extensibility 멀티 채널을 이용하여 Sharding 기법 사용 가능함.Sharding technique can be used by using multi-channel. 아직 구체화 되지 않음. Not yet materialized. 노드 개수를 늘려 처리량을 늘릴 수 있고 자동 로드 밸런싱이 가능함. Throughput can be increased by increasing the number of nodes and automatic load balancing is possible.

도 10은 본 발명의 일실시예에 따른 동적 블록체인 시스템의 동작 방법의 흐름도를 도시하는 도면이다. 10 is a diagram illustrating a flowchart of a method of operating a dynamic blockchain system according to an embodiment of the present invention.

트랜잭션 관리 노드(124)는 소정 개수의 트랜잭션 노드(122)를 연결하여 하나의 채널을 생성한다(S1002). 트랜잭션 관리 노드(124))는 각 채널의 트랜잭션 노드(122)마다 트랜잭션이 송신될 다음 트랜잭션 노드를 매핑한다(S1004). 트랜잭션 관리 노드(124)는 각 채널의 마지막 송신될 트랜잭션 노드(122)에 트랜잭션이 송신될 블록 노드(132)를 매핑한다(S1006). 단말기 관리 노드(114)는 새로운 단말기 노드(112)가 가입되면 트랜잭션이 송신될 트랜잭션 노드(122)를 매핑한다(S1008). The transaction management node 124 creates one channel by connecting a predetermined number of transaction nodes 122 (S1002). The transaction management node 124 maps the next transaction node to which a transaction is to be transmitted for each transaction node 122 of each channel (S1004). The transaction management node 124 maps the block node 132 to which the transaction is to be transmitted to the last transaction node 122 to be transmitted in each channel (S1006). The terminal management node 114 maps the transaction node 122 to which a transaction is to be transmitted when the new terminal node 112 is subscribed (S1008).

이후, 복수의 단말기 노드들(112) 중 하나의 단말기 노드, 예를 들어 #01에서 매핑된 트랜잭션 노드(122)에 트랜잭션을 송신한다(S1010). 해당 채널의 복수의 트랜잭션 노드들(122)에서 단말기 노드(112)로부터 송신된 트랜잭션을 비동기적으로 처리하고 가상 블록의 합의를 수행한다(S1012). Thereafter, a transaction is transmitted to one of the plurality of terminal nodes 112, for example, the transaction node 122 mapped in #01 (S1010). The plurality of transaction nodes 122 of the corresponding channel asynchronously process the transaction transmitted from the terminal node 112 and perform consensus of the virtual block (S1012).

트랜잭션 관리 노드(124)는 하나의 트랜잭션에 대해 가상 블록이 합의될 때마다 송신되는 특정의 트랜잭션 노드(122)의 통지 정보로부터 특정의 트랜잭션 노드(122)의 로드 상태를 판정한다(S1014). The transaction management node 124 determines the load state of the specific transaction node 122 from the notification information of the specific transaction node 122 transmitted whenever a virtual block is agreed upon for one transaction (S1014).

트랜잭션 관리 노드(124)는 특정의 트랜잭션 노드(122)의 로드 상태에 따라 복수의 트랜잭션 노드들(122)의 로드 밸런싱을 자동으로 수행한다(S1016). 예컨대 트랜잭션 관리 노드(124)는 특정의 트랜잭션 노드(122)의 로드가 제1 임계치 이상이면 소정 개수의 트랜잭션 노드들(122)을 새로운 채널로 매핑하여 특정 채널로부터 분기시킬 수 있으며, 해당 채널의 로드가 제2 임계치 이하이면 다른 채널을 해당 채널에 병합시킬 수 있다. The transaction management node 124 automatically performs load balancing of the plurality of transaction nodes 122 according to the load state of the specific transaction node 122 (S1016). For example, if the load of the specific transaction node 122 is greater than or equal to the first threshold, the transaction management node 124 may map a predetermined number of transaction nodes 122 to a new channel and branch from a specific channel. If is less than or equal to the second threshold, other channels may be merged into the corresponding channel.

블록 노드(132)는 트랜잭션마다 가상 블록의 합의 후 송신된 트랜잭션을 적어도 수백 개 이상 모아 블록을 생성하여 블록체인을 만든다(S1018). The block node 132 creates a block chain by collecting at least hundreds of transactions transmitted after the consensus of the virtual block for each transaction and generating a block (S1018).

이상에서 설명된 본 발명의 실시예들은 본 발명의 기술 사상을 예시적으로 보여준 것에 불과하며, 본 발명의 보호 범위는 이하 특허청구범위에 의하여 해석되어야 마땅할 것이다. 또한, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형할 수 있을 것인 바, 본 발명과 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The embodiments of the present invention described above are merely illustrative of the technical idea of the present invention, and the protection scope of the present invention should be interpreted by the following claims. In addition, those of ordinary skill in the art to which the present invention pertains will be able to make various modifications and variations without departing from the essential characteristics of the present invention, and all technical ideas within the scope equivalent to the present invention are the present invention. It should be construed as being included in the scope of rights of

100: 동적 블록체인 시스템 110: 단말기 노드 풀
112: 단말기 노드 114: 단말기 관리 노드
120: 트랜잭션 노드 풀 122: 트랜잭션 노드
124: 트랜잭션 관리 노드 130: 블록 노드 풀
132: 블록 노드 134: 블록 관리 노드
100: dynamic blockchain system 110: terminal node pool
112: terminal node 114: terminal management node
120: transaction node pool 122: transaction node
124: transaction management node 130: block node pool
132: block node 134: block management node

Claims (10)

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

상기 트랜잭션 관리 노드는,
각 트랜잭션 노드들을 하나의 채널로 매핑하고,
소정의 트랜잭션에 대해 가상 블록이 합의될 때마다 송신되는 트랜잭션 노드의 통지 정보에 근거하여, 특정 채널의 트랜잭션 노드의 로드 상태를 판정하고,
상기 트랜잭션 노드의 로드가 임계치 이상이면 추가의 트랜잭션 노드를 상기 특정 채널에 추가하고,
이후에 상기 특정 채널의 상기 트랜잭션 노드로 송신되는 트랜잭션들을 상기 특정 채널의 상기 트랜잭션 노드와 상기 특정 채널의 상기 추가의 트랜잭션 노드에 동적으로 분배하여 로드 밸런싱을 자동으로 수행하는 것을 특징으로 하는 동적 블록체인 시스템.
A terminal node pool including a plurality of terminal nodes owned by a user, and in which a transaction node to which a transaction is to be transmitted is mapped to each terminal node;
A plurality of transaction nodes performing consensus of a virtual block-Each of the plurality of transaction nodes has a transaction node to be connected next to each transaction node, so that each terminal node of the terminal node pool performs a transmitted transaction. Asynchronous processing-and, a pool of transaction nodes including a transaction management node that automatically performs load balancing of the plurality of transaction nodes-a transaction node to be connected next is mapped to each of the plurality of transaction nodes, Under the control of the transaction management node, a transaction node in which a predetermined transaction is to be performed may be selected; And
In the transaction node pool, it includes a block node pool to create a block chain by collecting at least hundreds of transactions transmitted after consensus of virtual blocks for each transaction, and creating a block,

The transaction management node,
Map each transaction node to one channel,
Based on the notification information of the transaction node transmitted whenever a virtual block is agreed upon for a predetermined transaction, the load state of the transaction node of a specific channel is determined,
If the load of the transaction node is greater than or equal to a threshold, an additional transaction node is added to the specific channel,
A dynamic blockchain, characterized in that load balancing is automatically performed by dynamically distributing transactions transmitted to the transaction node of the specific channel to the transaction node of the specific channel and the additional transaction node of the specific channel. system.
삭제delete 삭제delete 삭제delete 삭제delete 제1항에 있어서,
상기 블록 노드 풀에서 만들어진 상기 블록체인의 트랜잭션에는 해당 트랜잭션 합의와 관련된 상기 소정의 트랜잭션 노드들의 송신 순서가 포함되어 있는 것을 특징으로 하는 동적 블록체인 시스템.
The method of claim 1,
A dynamic blockchain system, characterized in that the transaction of the block chain created from the block node pool includes a transmission order of the predetermined transaction nodes related to a corresponding transaction agreement.
제1항에 있어서,
상기 단말기 노드 풀은 상기 복수의 단말기 노드들과 각 단말기 노드에서 트랜잭션이 송신될 트랜잭션 노드를 매핑하는 단말기 관리 노드를 더 포함하고,
상기 단말기 관리 노드는 상기 매핑뿐만 아니라 회원 가입과 인증을 관리하는 서버 기능을 수행하는 것을 특징으로 하는 동적 블록 체인 시스템.
The method of claim 1,
The terminal node pool further includes a terminal management node for mapping the plurality of terminal nodes and a transaction node to which a transaction is to be transmitted from each terminal node,
The terminal management node is a dynamic blockchain system, characterized in that it performs a server function for managing not only the mapping, but also membership registration and authentication.
사용자가 소유하는 복수의 단말기 노드들을 포함하는 단말기 노드 풀 및 복수의 트랜잭션 노드들을 포함하는 트랜잭션 노드 풀을 포함하는 동적 블록체인 시스템의 동작 방법에 있어서,
각 단말기 노드에 트랜잭션이 송신될 트랜잭션 노드, 그리고 각 트랜잭션 노드에 다음에 연결될 트랜잭션 노드를 매핑하는 단계;
상기 복수의 단말기 노드들 중 하나의 단말기 노드에서 매핑된 트랜잭션 노드에 트랜잭션을 송신하는 단계;
상기 복수의 트랜잭션 노드들에서 상기 단말기 노드로부터 송신된 트랜잭션을 비동기적으로 처리하고 가상 블록의 합의를 수행하는 단계; 및
상기 트랜잭션 노드 풀에서 트랜잭션마다 가상 블록의 합의 후 송신된 트랜잭션을 적어도 수백 개 이상 모아 블록을 생성하여 블록체인을 만드는 단계;를 포함하고,

상기 복수의 트랜잭션 노드들에서 트랜잭션을 비동기적으로 처리하는 단계는:
각 트랜잭션 노드들을 하나의 채널로 매핑하는 것,
소정의 트랜잭션에 대해 가상 블록이 합의될 때마다 송신되는 트랜잭션 노드의 통지 정보에 근거하여, 특정 채널의 트랜잭션 노드의 로드 상태를 판정하는 것,
상기 트랜잭션 노드의 로드가 임계치 이상이면 추가의 트랜잭션 노드를 상기 특정 채널에 추가하는 것,
이후에 상기 특정 채널의 상기 트랜잭션 노드로 송신되는 트랜잭션들을 상기 특정 채널의 상기 트랜잭션 노드와 상기 특정 채널의 상기 추가의 트랜잭션 노드에 동적으로 분배하여 로드 밸런싱을 자동으로 수행하는 것을 더 포함하는 것을 특징으로 하는 동적 블록체인 시스템의 동작 방법.
In the method of operating a dynamic blockchain system including a terminal node pool including a plurality of terminal nodes owned by a user and a transaction node pool including a plurality of transaction nodes,
Mapping a transaction node to which a transaction is to be transmitted to each terminal node, and a transaction node to be connected next to each transaction node;
Transmitting a transaction from one of the plurality of terminal nodes to a mapped transaction node;
Asynchronously processing a transaction transmitted from the terminal node in the plurality of transaction nodes and performing virtual block consensus; And
Including; in the transaction node pool, creating a block chain by collecting at least hundreds of transactions transmitted after consensus of virtual blocks for each transaction to create a block; Including,

Asynchronously processing a transaction in the plurality of transaction nodes includes:
Mapping each transaction node to one channel,
Determining the load status of the transaction node of a specific channel based on the notification information of the transaction node transmitted each time a virtual block is agreed upon for a given transaction,
If the load of the transaction node is greater than or equal to a threshold, adding an additional transaction node to the specific channel,
Subsequently, the transaction being transmitted to the transaction node of the specific channel is dynamically distributed to the transaction node of the specific channel and the additional transaction node of the specific channel to automatically perform load balancing. How to operate a dynamic blockchain system.
삭제delete 삭제delete
KR1020180140755A 2018-11-15 2018-11-15 Dynamic Blockchain System and Operating Method thereof KR102258722B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180140755A KR102258722B1 (en) 2018-11-15 2018-11-15 Dynamic Blockchain System and Operating Method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180140755A KR102258722B1 (en) 2018-11-15 2018-11-15 Dynamic Blockchain System and Operating Method thereof

Publications (2)

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

Family

ID=70914552

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180140755A KR102258722B1 (en) 2018-11-15 2018-11-15 Dynamic Blockchain System and Operating Method thereof

Country Status (1)

Country Link
KR (1) KR102258722B1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210147496A (en) 2020-05-29 2021-12-07 (주)바다플랫폼 Data storage and inquiry method using a data storage device based on a blockchain network with a chain database
KR102440733B1 (en) * 2020-10-26 2022-09-05 피네보 주식회사 System and method for processing card payment
KR102396631B1 (en) * 2020-11-12 2022-05-11 주식회사 티맥스엔터프라이즈 Blockchain system
KR102655765B1 (en) * 2021-06-16 2024-04-09 계명대학교 산학협력단 Method and apparatus for providing blockchain
CN113626530A (en) * 2021-09-03 2021-11-09 杭州复杂美科技有限公司 Block generation method, computer device and storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101590076B1 (en) * 2015-11-18 2016-02-01 주식회사 웨이브스트링 Method for managing personal information

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101590076B1 (en) * 2015-11-18 2016-02-01 주식회사 웨이브스트링 Method for managing personal information

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 (en) 2020-05-25

Similar Documents

Publication Publication Date Title
KR102258722B1 (en) Dynamic Blockchain System and Operating Method thereof
CN110598394B (en) Authority verification method and device and storage medium
JP2020521252A5 (en)
CN100586058C (en) J2EE middleware criterion based tolerant inbreak application server and tolerant inbreak method
US20050027862A1 (en) System and methods of cooperatively load-balancing clustered servers
CN111181715A (en) Multi-party cross-linking method based on consistent Hash consensus protocol
JP2007507760A (en) Secure cluster configuration dataset transfer protocol
CN101719258B (en) Method and system for processing remote double-center transaction information based on large computer
CN110599144B (en) Network access method and device for blockchain nodes
CN113553375B (en) Partitioned storage device and method for image type block chain
CN113922971B (en) Cross-chain interaction method and device
CN110706113A (en) Cross-block-chain data processing method, device, equipment and medium
CN104871168A (en) Resource protection on un-trusted devices
CN112835977A (en) Database management method and system based on block chain
CN111770477A (en) Deployment method and related device of protected resources of MEC network
CN114978638B (en) Block chain cross-chain supervision method based on shared node
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 (en) Hardware security module
CN111177262A (en) Block chain consensus method, related device and system
CN112995127A (en) Intelligent home management system based on block chain
CN114637472A (en) DHT-based block chain storage expansion method, electronic equipment and storage medium
Al-Mamun et al. Trustworthy edge computing through blockchains
KR102130699B1 (en) Block-chain based voting system operating method with distributed transaction pool

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