KR20220142210A - Adaptive transaction processing node and method for blockchain - Google Patents
Adaptive transaction processing node and method for blockchain Download PDFInfo
- Publication number
- KR20220142210A KR20220142210A KR1020210048670A KR20210048670A KR20220142210A KR 20220142210 A KR20220142210 A KR 20220142210A KR 1020210048670 A KR1020210048670 A KR 1020210048670A KR 20210048670 A KR20210048670 A KR 20210048670A KR 20220142210 A KR20220142210 A KR 20220142210A
- Authority
- KR
- South Korea
- Prior art keywords
- node
- participating
- nodes
- block chain
- transaction
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
- 238000012545 processing Methods 0.000 title claims abstract description 61
- 230000003044 adaptive effect Effects 0.000 title claims abstract description 12
- 238000000034 method Methods 0.000 title claims description 30
- 238000003672 processing method Methods 0.000 claims abstract description 11
- 238000012544 monitoring process Methods 0.000 claims description 9
- 230000014759 maintenance of location Effects 0.000 claims description 6
- 230000008520 organization Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000007547 defect Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명의 일 실시예는 블록체인의 노드 장치의 적응적 트랜잭션 처리 방법 및 노드 장치를 개시한다. 본 발명의 일 실시예에 따른 블록체인의 노드 장치의 적응적 트랜잭션 처리 방법은 상기 블록체인에 대한 상태정보를 획득하는 단계; 상기 블록체인에 대한 상태정보에 기초하여 사용자의 요구사항을 만족시키는 참여노드 개수를 결정하는 단계; 트랜잭션의 처리 비용을 고려하여, 상기 블록체인을 구성하는 복수의 노드들 중에서, 상기 블록체인의 결정된 참여노드 개수만큼 데이터를 저장할 노드를 참여노드로 선정하는 단계; 및 결정된 참여노드들에 의해 사용자의 트랜잭션이 처리되도록 하는 단계를 포함한다. An embodiment of the present invention discloses an adaptive transaction processing method and a node device of a node device of a blockchain. An adaptive transaction processing method of a node device of a block chain according to an embodiment of the present invention includes: obtaining state information about the block chain; determining the number of participating nodes that satisfy the user's requirements based on the state information on the block chain; selecting, as a participating node, a node to store data as many as the determined number of participating nodes of the block chain from among a plurality of nodes constituting the block chain in consideration of the transaction processing cost; and allowing the user's transaction to be processed by the determined participating nodes.
Description
본 발명은 블록체인의 적응적 트랜잭션 처리 방법 및 노드 장치 및 그 방법이 적용된 노드 장치에 관한 것이다.The present invention relates to a block chain adaptive transaction processing method, a node device, and a node device to which the method is applied.
블록체인은 공유하는 데이터와 상호계약을 여러 컴퓨팅 노드에 중복시키므로서, 신뢰성, 비가역성, 가용성, 투명성을 획기적으로 향상시키는 분산 장부 보관 및 처리 플랫폼 기술이다. 블록체인 상에서 데이터와 상호 계약 내용들은 블록단위로 모아지고, 컴퓨팅 노드간에 상호 검증을 하며, 한번 저장된 블록은 블록체인상의 참여 노드들에 분산 저장되어 의도적/비의도적 결함으로부터 안전하게 보호된다. 이러한 블록체인의 특징은 데이터 저작권 보호, 데이터 위조 및 훼손 방지, 일부 노드 결함이나 해킹에도 이를 극복하는 등 많은 장점이 있다. Blockchain is a distributed ledger storage and processing platform technology that dramatically improves reliability, irreversibility, availability, and transparency by duplicating shared data and mutual contracts on multiple computing nodes. On the block chain, data and mutual contract contents are collected in block units, mutually verified between computing nodes, and a block stored once is distributed and stored in participating nodes on the block chain to be safely protected from intentional/unintentional defects. These blockchain features have many advantages, such as data copyright protection, data falsification and damage prevention, and overcoming some node defects or hacking.
그러나, 블록체인에서는 참여 노드들이 상호 검증을 하고 데이터를 분산 저장하기 때문에 많은 컴퓨팅 자원이 소모되며, 처리속도 저하의 문제점이 발생한다.However, in the blockchain, a lot of computing resources are consumed and the processing speed is lowered because the participating nodes perform mutual verification and distributed storage of data.
이러한 문제점을 해결하기 위하여, 종래에는 샤딩, 사이드체인, 오프체인 등의 방법이 사용되었다.In order to solve this problem, conventionally, methods such as sharding, side chain, and off-chain have been used.
● 샤딩: 샤드 혹은 샤딩기법으로 불리며, ROW의 행수 등의 데이터를 분리하기 용이한 기준에 따라 데이터를 분산저장한다. 즉, 모든 참여노드가 동일하게 트랜잭션과 블록을 중복하여 검증하는 것이 아니라 그룹으로 나누어 서로 다른 트랜잭션과 블록을 나누어 처리한다. 이러한 처리방법은 사용자의 요구사항이나 지역성과 관계없이 참여노드를 나누어 작업하기 때문에 효율성이 떨어질 수 있다. ● Sharding: This is called sharding or sharding technique, and data is distributed and stored according to criteria that are easy to separate data such as the number of rows in a row. That is, all participating nodes do not duplicate transactions and blocks in the same way, but divide them into groups to process different transactions and blocks. This processing method may be inefficient because it divides the participating nodes regardless of user requirements or regional characteristics.
● 사이드체인: 블록체인의 메인체인 옆에 나란히 붙어서 작동하는 하위 체인을 별도로 구성하는 기법으로, 사이드체인만의 독립된 노드를 구성하지 않고 기존 메인체인의 노드에 사이드체인의 노드가 추가되는 방식으로 작동한다. 사이드 체인은 메인 블록체인의 업무 과중으로 트랜잭션의 처리 속도가 저하되는 것을 방지하기 위하여, 메인체인의 업무를 하위체인이 분담한다. ● Sidechain: A technique for separately configuring sub-chains that operate side by side next to the main chain of the block chain. It works in a way that the nodes of the side chain are added to the nodes of the existing main chain without configuring an independent node of the side chain only. do. In order to prevent the transaction processing speed from slowing down due to the overload of the main blockchain, the sub-chains share the tasks of the main chain.
● 오프체인: 블록체인의 업무 부담이나 개인정보 보호 문제를 해결하기 위하여 기존의 서버와 같은 블록체인 외부에 데이터를 보관하거나 트랜잭션을 처리하는 방식이다. 오프체인은 핵심 데이터만을 블록체인에 기록하고, 빠른속도가 필요한 데이터는 블록체인이 아닌 디앱의 중앙서버에 기록한다. 오프체인은 저렴한 수수료, 빠른 속도, 높은 트랜잭션 처리량 등의 장점을 가지고 있으나, 오프체인에 기록된 거래내역을 완전히 신뢰할 수 없게 된다. 즉, 오프체인은 별도의 외부 시스템을 구성해야 하고 블록체인 외부이므로 블록체인의 장점이 사라질 위험이 있다. ● Off-chain: This is a method of storing data or processing transactions outside the block chain, such as the existing server, in order to solve the burden of work and privacy problems of the block chain. Off-chain records only core data on the block chain, and data that requires high speed is recorded on the central server of the DApp, not the block chain. Off-chain has advantages such as low fees, high speed, and high transaction throughput, but the transaction history recorded on the off-chain cannot be completely trusted. In other words, off-chain requires a separate external system and is outside the blockchain, so there is a risk that the advantages of blockchain will disappear.
따라서, 앞서 언급한 블록체인 운용 효율성을 증가시키기 위하여, 블록체인의 참여노드와 저장노드를 적응적으로 설정할 수 있는 방법 및 장치에 대한 필요성이 대두되고 있다.Therefore, in order to increase the aforementioned block chain operation efficiency, the need for a method and apparatus that can adaptively set the participating nodes and storage nodes of the block chain is emerging.
본 발명은 블록체인 참여노드들의 상호검증과 데이터 보관시, 사용자 요구사항과 컴퓨팅 환경을 고려하여 적응적으로 참여노드 수와 데이터 저장 노드수를 설정하는 방법 및 장치를 제공하고자 한다.An object of the present invention is to provide a method and apparatus for adaptively setting the number of participating nodes and data storage nodes in consideration of user requirements and computing environments during mutual verification of blockchain participating nodes and data storage.
본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제(들)로 제한되지 않으며, 언급되지 않은 또 다른 과제(들)은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problem to be solved by the present invention is not limited to the problem(s) mentioned above, and another problem(s) not mentioned will be clearly understood by those skilled in the art from the following description.
본 발명의 일 실시예는 블록체인의 노드 장치의 적응적 트랜잭션 처리 방법으로서, 상기 블록체인에 대한 상태정보를 획득하는 단계; 상기 블록체인에 대한 상태정보에 기초하여 사용자의 요구사항을 만족시키는 참여노드 개수를 결정하는 단계; 트랜잭션의 처리 비용을 고려하여, 상기 블록체인을 구성하는 복수의 노드들 중에서, 상기 블록체인의 결정된 참여노드 개수만큼 데이터를 저장할 노드를 참여노드로 선정하는 단계; 및 결정된 참여노드들에 의해 사용자의 트랜잭션이 처리되도록 하는 단계를 포함한다. An embodiment of the present invention provides an adaptive transaction processing method of a node device of a block chain, comprising: obtaining state information about the block chain; determining the number of participating nodes that satisfy the user's requirements based on the state information on the block chain; selecting, as a participating node, a node to store data as many as the determined number of participating nodes of the block chain from among a plurality of nodes constituting the block chain in consideration of the transaction processing cost; and allowing the user's transaction to be processed by the determined participating nodes.
일 실시예에서, 상기 참여노드로 선정하는 단계는, 회사나 단체의 대표성이 있는 노드 및 지역 또는 도메인을 대표하는 노드를 상기 트랜잭션의 처리 비용을 고려하여 선정되는 노드 보다 우선적으로 선정하는 것을 특징으로 한다. In one embodiment, in the step of selecting the participating node, a node representing a company or organization and a node representing a region or domain are preferentially selected over a node selected in consideration of the transaction processing cost do.
일 실시예에서, 상기 참여노드로 선정하는 단계는, 특정 노드가 데이터를 보관하는 경우의 비용과 노드가 데이터를 보관하지 않는 경우의 비용의 차이가 최소인 노드를 선택하는 것을 특징으로 한다. In an embodiment, the step of selecting the participating node is characterized in that a node having a minimum difference between a cost when a specific node stores data and a cost when the node does not store data is selected.
일 실시예에서, 상기 참여노드로 선정하는 단계는, 상기 트랜잭션의 처리 비용을 고려하기 위하여, 특정 노드에서 트랜잭션 또는 데이터 조회 사이에 다른 노드의 트랜잭션에 의한 데이터의 평균 업데이트 수, 특정 데이터를 보유한 특정 노드가 다른 노드에게 메시지를 보내야 하는 데이터 보유 비용, 특정 데이터를 보유하지 않은 특정 노드가 특정 데이터를 보유한 노드에게 트랜잭션을 요구하고 응답받는 트랜잭션 비용, 특정 노드가 데이터 처리와 보관에 소요되는 스토리지 관리 비용에 기초하여 참여노드를 선정하는 것을 특징으로 한다. In one embodiment, in the step of selecting the participating node, in order to consider the processing cost of the transaction, the average number of updates of data by a transaction of another node between transactions or data inquiry in a specific node, a specific data holding specific data Data retention cost for a node to send a message to another node, transaction cost for a specific node that does not hold specific data to request a transaction from a node with specific data and receive a response, and storage management cost for a specific node to process and store data It is characterized in that the participating nodes are selected based on the
일 실시예에서, 상기 블록체인 네트워크에 대한 상태정보는, 상기 복수의 노드들에 대한 시간에 따른 노드 별 신뢰도를 포함하고, 상기 사용자의 요구사항은, 트랜잭션을 처리하는데 참여하는 노드들에 의해 결정되는 신뢰도로서 상기 사용자에 의해 요구되는 최소 신뢰도를 포함하는 특징으로 한다. In one embodiment, the state information for the blockchain network includes reliability for each node over time for the plurality of nodes, and the user's requirements are determined by nodes participating in processing a transaction. It is characterized in that it includes the minimum reliability required by the user as the reliability to be obtained.
일 실시예에서, 상기 참여노드 개수를 결정하는 단계는, 상기 시간에 따른 노드 별 신뢰도를 이용하여 결정되는 신뢰도가 상기 사용자에 의해 요구되는 상기 최소 신뢰도 이상이 되도록 하는 최소 참여노드 개수를 결정하는 단계를 포함하는 것을 특징으로 한다. In one embodiment, the determining of the number of participating nodes includes: determining the minimum number of participating nodes such that the reliability determined using the reliability for each node over time is equal to or greater than the minimum reliability required by the user It is characterized in that it includes.
본 발명의 다른 실시예에서, 블록체인의 노드 장치는 상기 블록체인에 대한 상태정보를 획득하는 블록체인 상태 모니터링부; 상기 블록체인에 대한 상태정보에 기초하여 사용자의 요구사항을 만족시키는 참여노드 개수를 결정하는 참여노드 개수 결정부; 트랜잭션의 처리 비용을 고려하여, 상기 블록체인을 구성하는 복수의 노드들 중에서, 상기 블록체인의 결정된 참여노드 개수만큼 데이터를 저장할 노드를 참여노드로 선정하는 참여노드 선정부; 및 선정된 참여노드들에 의해 사용자의 트랜잭션이 처리되도록 하는 트랜잭션 처리부를 포함한다. In another embodiment of the present invention, the block chain node device includes a block chain state monitoring unit for obtaining state information about the block chain; a number of participating nodes determining unit that determines the number of participating nodes that satisfy the user's requirements based on the state information on the block chain; a participating node selecting unit that selects, as a participating node, a node to store data as much as the determined number of participating nodes of the block chain from among a plurality of nodes constituting the block chain in consideration of the transaction processing cost; and a transaction processing unit that allows the user's transaction to be processed by the selected participating nodes.
일 실시예에서, 상기 참여노드 선정부는, 회사나 단체의 대표성이 있는 노드 및 지역 또는 도메인을 대표하는 노드를 상기 트랜잭션의 처리 비용을 고려하여 선정되는 노드 보다 우선적으로 선정하는 것을 특징으로 한다. In one embodiment, the participating node selection unit is characterized in that it preferentially selects a node having a representative of a company or organization and a node representing a region or a domain rather than a node selected in consideration of the processing cost of the transaction.
일 실시예에서, 상기 참여노드 선정부는, 특정 노드가 데이터를 보관하는 경우의 비용과 노드가 데이터를 보관하지 않는 경우의 비용의 차이가 최소인 노드를 선택하는 것을 특징으로 한다. In an embodiment, the participating node selection unit selects a node having a minimum difference between a cost when a specific node stores data and a cost when the node does not store data.
일 실시예에서, 상기 참여노드 선정부는, 상기 트랜잭션의 처리 비용을 고려하기 위하여, 특정 노드에서 트랜잭션 또는 데이터 조회 사이에 다른 노드의 트랜잭션에 의한 데이터의 평균 업데이트 수, 특정 데이터를 보유한 특정 노드가 다른 노드에게 메시지를 보내야 하는 데이터 보유 비용, 특정 데이터를 보유하지 않은 특정 노드가 특정 데이터를 보유한 노드에게 트랜잭션을 요구하고 응답받는 트랜잭션 비용, 특정 노드가 데이터 처리와 보관에 소요되는 스토리지 관리 비용에 기초하여 참여노드를 선정하는 것을 특징으로 한다. In one embodiment, the participating node selection unit, in order to consider the processing cost of the transaction, the average number of updates of data by transactions of other nodes between transactions or data inquiry in a specific node, a specific node holding specific data is different Based on the data retention cost to send a message to the node, the transaction cost for a specific node that does not have specific data to request a transaction from a node with specific data and receive a response, and the storage management cost for a specific node to process and store data It is characterized in that the participating nodes are selected.
일 실시예에서, 상기 블록체인 네트워크에 대한 상태정보는, 상기 복수의 노드들에 대한 시간에 따른 노드 별 신뢰도를 포함하고, 상기 사용자의 요구사항은, 트랜잭션을 처리하는데 참여하는 노드들에 의해 결정되는 신뢰도로서 상기 사용자에 의해 요구되는 최소 신뢰도를 포함하는 특징으로 한다. In one embodiment, the state information for the blockchain network includes reliability for each node over time for the plurality of nodes, and the user's requirements are determined by nodes participating in processing a transaction. It is characterized in that it includes the minimum reliability required by the user as the reliability to be obtained.
일 실시예에서, 상기 참여노드 개수 결정부는, 상기 시간에 따른 노드 별 신뢰도를 이용하여 결정되는 신뢰도가 상기 사용자에 의해 요구되는 상기 최소 신뢰도 이상이 되도록 하는 최소 참여노드 개수를 결정하는 것을 특징으로 한다. In one embodiment, the number of participating nodes determining unit determines the minimum number of participating nodes such that the reliability determined using the reliability for each node over time is greater than or equal to the minimum reliability required by the user .
본 발명은 블록체인 적응적 노드 설정 방법 및 장치를 이용하여, 사용자 요구사항을 만족시키면서, 최소의 컴퓨팅 자원과 저장소를 사용하므로 자원낭비를 막을 수 있고 블록체인의 트랜잭션 처리속도 향상도 기대할 수 있다.The present invention uses a block chain adaptive node setting method and apparatus, while satisfying user requirements, and using a minimum amount of computing resources and storage, so resource waste can be prevented and the transaction processing speed of the block chain can be improved.
본 발명은 블록체인의 환경변수를 모니터링하여 적응적으로 블록체인의 참여노드와 저장노드 수를 설정함으로써, 컴퓨팅 자원이 필요 이상으로 과다하게 낭비되는 현상을 방지할 수 있다. The present invention monitors the environmental variables of the block chain and adaptively sets the number of participating nodes and storage nodes of the block chain, thereby preventing the phenomenon of excessively wasting computing resources more than necessary.
또한 참여 노드수가 결정된 이후에 어느 노드가 데이터 저장을 할 것인가를 비용 효율적으로 결정할 수 있다.In addition, after the number of participating nodes is determined, it is possible to cost-effectively determine which node will store data.
도 1은 일부 실시예들에 따른 노드 장치의 구성을 나타내는 블록도이다.
도 2는 일부 실시예들에 따른 노드 장치의 제어부의 구성을 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 노드 장치의 동작을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 노드 장치의 동작을 설명하기 위한 개념도이다.1 is a block diagram illustrating a configuration of a node device according to some embodiments.
2 is a block diagram illustrating a configuration of a control unit of a node device according to some embodiments.
3 is a flowchart for explaining the operation of a node device according to an embodiment of the present invention.
4 is a conceptual diagram for explaining an operation of a node device according to an embodiment of the present invention.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.Since the present invention can have various changes and can have various embodiments, specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to specific embodiments, and should be understood to include all modifications, equivalents and substitutes included in the spirit and scope of the present invention. In describing each figure, like reference numerals have been used for like elements.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first, second, A, and B may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component. and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When a component is referred to as being “connected” or “connected” to another component, it may be directly connected or connected to the other component, but it is understood that other components may exist in between. it should be On the other hand, when it is said that a certain element is "directly connected" or "directly connected" to another element, it should be understood that the other element does not exist in the middle.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present application, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It is to be understood that this does not preclude the possibility of the presence or addition of numbers, steps, operations, components, parts, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present application. does not
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.
본 명세서에서, "블록체인"은 무결성을 확보하고 유지하기 위해 순서에 따라 연결된 블록들이 서비스의 이용 내역 정보를 암호화 기법과 보안기술을 이용해 협상하는 알고리즘으로 구성된 소프트웨어 요소를 활용하는 원장(ledger)의 분산 P2P (Peer to Peer)시스템을 의미할 수 있다. 여기서, 분산 P2P 시스템은 분산 시스템의 특수한 형태일 수 있다. 또한, P2P 시스템은 중앙 노드의 조정 없이 네크워크의 모든 노드들이 서로에게 자원(처리 능력, 저장 공간, 데이터 또는 네트워크 대역폭 등)을 제공할 수 있다. 또한, "블록체인"은 이용 내역 정보를 기록한 원장을 특정 기관의 중앙 서버가 아닌 P2P 네트워크에 분산하여 네트워크 내의 노드들이 공동으로 기록하고 관리하는 분산원장(distributed ledger) 기술을 의미할 수 있다.In this specification, "blockchain" refers to a ledger that utilizes a software element consisting of an algorithm in which blocks connected in order in order to secure and maintain integrity negotiate service usage history information using encryption and security technology. It may refer to a distributed P2P (Peer to Peer) system. Here, the distributed P2P system may be a special type of distributed system. In addition, in a P2P system, all nodes in a network can provide resources (processing power, storage space, data or network bandwidth, etc.) to each other without the coordination of a central node. In addition, "blockchain" may refer to a distributed ledger technology in which the ledger that records usage history information is distributed in a P2P network rather than a central server of a specific institution, and nodes in the network record and manage it jointly.
본 명세서에서, "노드"는 블록체인 네트워크 내에서 구성요소를 의미할 수 있다. 예를 들면, 노드는 특수 목적 컴퓨터(special-purpose computer), 범용 컴퓨터(general-purpose computer), 슈퍼 컴퓨터(supercomputer), 대형 컴퓨터(mainframe computer), 개인용 컴퓨터(personal computer), 스마트폰, 태블릿 PC 등일 수 있으나, 이에 제한되지 않는다. "참여노드"는 블록체인 네트워크에서 트랜잭션 처리에 참여하는 노드로서, 발생한 트랜잭션의 유효성을 검증하고, 유효성이 검증된 트랜잭션에 대한 데이터를 블록체인에 추가하여 저장하는 노드를 의미할 수 있다.In this specification, a “node” may mean a component within a blockchain network. For example, a node may be a special-purpose computer, a general-purpose computer, a supercomputer, a mainframe computer, a personal computer, a smartphone, a tablet PC. and the like, but is not limited thereto. A “participating node” is a node that participates in transaction processing in a blockchain network, and may refer to a node that validates a transaction that has occurred and stores data about the verified transaction by adding it to the blockchain.
본 명세서에서, "사용자"는 트랜잭션을 발생시키는 자로서, 블록체인 네트워크를 구성하는 노드 장치를 이용하여 해당 트랜잭션이 처리되도록 요청할 수 있다. 이처럼 "사용자"에 의해 스마트컨트랙트의 트랜잭션을 발생시키는 입력요소를 "사용자 요구사항"이라 하고, 신뢰성, 최대 트랜잭션 완료시간, 최대 트랜잭션 처리비용 등을 포함할 수 있다. In this specification, a "user" is a person who generates a transaction, and may request that the transaction be processed using the node device constituting the block chain network. As such, an input element that generates a smart contract transaction by a “user” is called a “user requirement” and may include reliability, maximum transaction completion time, maximum transaction processing cost, and the like.
도 1은 일부 실시예들에 따른 노드 장치의 구성을 나타내는 블록도이다. 노드 장치(100)는 제어부(130), 통신부(140) 및 메모리(150)를 포함한다. 노드 장치(100)는 사용자 입력부(110) 및 출력부(120)를 더 포함할 수 있다. 다만, 노드 장치(100)는 도 1에 도시된 구성요소보다 많은 구성요소에 의해 구현될 수도 있고, 도시된 구성요소보다 적은 구성요소에 의해 구현될 수도 있다.1 is a block diagram illustrating a configuration of a node device according to some embodiments. The
사용자 입력부(110)는 사용자가 노드 장치(100)를 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예를 들어, 사용자 입력부(110)에는 키 패드(key pad), 돔 스위치(dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다.The
일부 실시예들에 따르면, 사용자 입력부(110)는 트랜잭션의 처리에 있어서 사용자가 원하는 요구사항에 대한 입력을 수신할 수 있다. 또한, 사용자 입력부(110)는 트랜잭션 처리요청에 대한 입력을 수신할 수 있다.According to some embodiments, the
출력부(120)는 오디오 신호, 비디오 신호 또는 진동 신호를 출력할 수 있다. 도 1에 도시하지 않았으나, 출력부(120)는 디스플레이부, 음향 출력부 및 진동 모터 중 적어도 하나를 포함할 수 있다.The
일부 실시예들에 따르면, 출력부(120)는 사용자의 트랜잭션 처리요청에 따른 동작의 수행 결과를 출력할 수 있다. 예를 들면, 사용자의 트랜잭션 처리요청이 발생함에 따라 노드 장치(100)에서 소정의 동작이 수행될 수 있고, 소정의 동작이 수행된 결과는 출력부(120)를 통해 출력될 수 있다.According to some embodiments, the
제어부(130)는 통상적으로 노드 장치(100)의 전반적인 동작을 제어한다. 예를 들어, 제어부(130)는 메모리(150)에 저장된 프로그램들을 실행함으로써, 사용자 입력부(110), 출력부(120), 통신부(140) 등을 전반적으로 제어할 수 있다. The
제어부(130)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(150)로부터 제어부(130)에 제공되거나, 통신부(140)를 통해 수신되어 제어부(130)로 제공될 수 있다. 예를 들면, 제어부(130)는 메모리와 같은 기록 장치에 저장된 프로그램 코드에 따라 명령을 실행하도록 구성될 수 있다.The
일부 실시예들에 따르면, 제어부(130)는 트랜잭션에 대한 사용자의 요구사항 및 블록체인 네트워크에 대한 상태정보에 기초하여, 트랜잭션을 처리하기 위한 참여노드의 최소 개수를 결정할 수 있다. 또한, 제어부(130)는 트랜잭션의 처리 비용을 고려하여, 블록체인 네트워크를 구성하는 복수의 노드들 중에서 상기 결정된 최소 개수의 노드들을 선정하여 트랜잭션이 처리되도록 할 수 있다. 이에 대한 상세한 설명은 다른 도면을 참조하여 후술한다. According to some embodiments, the
통신부(140)는 노드 장치(100)가 블록체인 네트워크에 포함된 다른 노드 (미도시) 또는 외부 장치(미도시)와 통신하게 하는 하나 이상의 구성요소를 포함할 수 있다. 예를 들어, 통신부(140)는 근거리 통신부, 이동 통신부, 방송 수신부를 포함할 수 있다.The
일부 실시예들에 따르면, 통신부(140)는 사용자에 의해 처리요청된 트랜잭션을 블록체인 네트워크에 참여하는 적어도 하나의 다른 노드에 전달할 수 있다. 예를 들어, 통신부(140)는 사용자 요구사항을 만족시키는 트랜잭션 처리요청이 발생한 경우, 해당 트랜잭션에 대한 유효성을 검증할 수 있도록 상기 적어도 하나의 다른 노드로 해당 트랜잭션을 전달할 수 있다.According to some embodiments, the
메모리(150)는 제어부(130)의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 노드 장치(100)로 입력되거나 노드 장치(100)로부터 출력되는 데이터를 저장할 수도 있다.The
일부 실시예들에 따르면, 메모리(150)는 블록체인과 관련된 정보로서 스마트 계약 및 분산 원장과 관련된 정보를 저장할 수 있다. 예를 들어, 메모리(150)는 전체 블록체인 중 전부 또는 일부의 블록을 저장하는 블록체인 데이터베이스일 수 있다. 일부 실시예들에 따르면, 메모리(150)는 노드 장치(100)가 포함된 블록체인에 대한 상태정보를 더 저장할 수 있다. 예를 들면, 메모리(150)에 저장된 블록체인에 대한 상태정보를 이용하여, 노드 장치(100)는 사용자의 요구사항을 만족시키는 최소 참여노드 개수를 결정할 수 있다. According to some embodiments, the
메모리(150)의 예로서, 플래시 메모리 타입(flash memory type), 하드디스크 타입(harddisk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예: SD 또는 XD 메모리 등), 램(RAM, Random Access Memory), SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 들 수 있으나, 이에 한정되는 것은 아니다.As an example of the
도 2는 일부 실시예들에 따른 노드 장치의 제어부의 구성을 나타내는 블록도이다. 제어부(130)는 블록체인 상태 모니터링부(132), 참여노드 개수 결정부(134), 참여노드 선정부(136) 및 트랜잭션 처리부(138)의 기능을 위한 프로그램 코드를 수행하도록 구성될 수 있다. 이러한 프로그램 코드는 메모리(150)와 같은 기록 장치에 저장될 수 있다. 블록체인 상태 모니터링부(132), 참여노드 개수 결정부(134) 및 트랜잭션 처리부(138)를 구분하여 도시한 것은 각각의 기능을 구별하여 설명하기 위함이다. 따라서, 제어부(130)는 블록체인 상태 모니터링부(132), 참여노드 개수 결정부(134), 참여노드 선정부(136) 및 트랜잭션 처리부(138) 각각의 기능을 수행하도록 구성된 적어도 하나의 프로세서를 포함할 수 있다.2 is a block diagram illustrating a configuration of a control unit of a node device according to some embodiments. The
블록체인 상태 모니터링부(132)는 블록체인 네트워크에 대한 상태정보를 획득한다. 일부 실시예들에 따르면, 블록체인 상태 모니터링부(132)는 주기적으로 블록체인 네트워크에 대한 상태정보를 획득할 수 있다.The block chain
블록체인 네트워크에 대한 상태정보는 블록체인 상태 데이터베이스(200)에 저장된 정보로서, 블록체인 네트워크의 전반적인 상황을 나타내는 정보를 의미한다. 예를 들어, 블록체인 네트워크에 대한 상태정보는 블록체인 네트워크를 구성하는 복수의 노드들에 대한 시간에 따른 노드 별 신뢰도를 포함할 수 있다. 시간에 따른 노드 별 신뢰도는 의도적 및 비의도적 결함에 따른 노드의 장애율에 따라 결정된다. 신뢰도 예를 들어, 블록체인 네트워크에 대한 상태정보는 블록 생성 주기, 블록 생성 소요시간, 트랜잭션 처리요청 빈도 및 처리 중인 트랜잭션 개수 중 적어도 하나를 더 포함할 수 있다.The state information on the blockchain network is information stored in the blockchain state database 200, and refers to information indicating the overall state of the blockchain network. For example, the state information on the blockchain network may include the reliability of each node over time for a plurality of nodes constituting the blockchain network. The reliability of each node over time is determined by the failure rate of the node due to intentional and unintentional defects. Reliability For example, the state information about the block chain network may further include at least one of a block generation period, block generation time required, transaction processing request frequency, and the number of transactions being processed.
블록체인 상태 모니터링부(132)는 블록체인 상태 데이터베이스(200)로부터 주기적으로 또는 실시간으로 블록체인 네트워크에 대한 상태정보를 획득할 수 있다. 일부 실시예들에서, 블록체인 상태 데이터베이스(200)는 노드 장치(100)의 메모리(150)에 구현될 수 있다. 일부 실시예들에서, 블록체인 상태 데이터베이스(200)는 노드 장치(100) 외의 블록체인 네트워크를 구성하는 별도의 노드로 구현될 수도 있다.The block chain
일부 실시예들에 따른 참여노드 개수 결정부(134)는 블록체인 네트워크에 대한 상태정보를 이용하여, 사용자의 요구사항을 만족시키는 최소 참여노드 개수를 결정한다. 일부 실시예들에서, 사용자의 요구사항은 트랜잭션을 처리하는데 참여하는 노드들에 의해 결정되는 신뢰도로서 사용자에 의해 요구되는 최소 신뢰도를 포함할 수 있다. 이러한 실시예들에서, 참여노드 개수 결정부(134)는 시간에 따른 노드 별 신뢰도를 이용하여 결정되는 신뢰도가 사용자에 의해 요구되는 최소 신뢰도 이상이 되도록 하는 최소 참여노드 개수를 결정할 수 있다. 예를 들어, 블록체인 네트워크를 구성하는 노드들의 신뢰도가 모두 동일하게 r일 때, n개의 참여노드들에 의해 결정 될 때, The number of participating
1) Fail-stop 결함의 신뢰성은 적어도 한 개의 노드라도 정상 동작일 확률을 나타내며, 이 때의 신뢰도 Rn은 아래 수학식 1과 같이 계산된다. One) The reliability of the fail-stop defect represents the probability that even at least one node operates normally, and the reliability Rn at this time is calculated as in Equation 1 below.
[수학식 1][Equation 1]
Rn = 1-(1-r)n Rn = 1-(1-r) n
여기서는 장애는 자연적인 비의도적 장애 발생이고, 장애시 노드는 중단됨(Fail-stop)을 가정하였다. Here, it is assumed that a failure is a natural, unintentional failure, and that the node is stopped (fail-stop) in case of failure.
2) Byzantine 결함의 신뢰성은 과반수 미만의 노드에 장애가 발생하는 확률이므로 수학식 2와 같이 계산된다. 2) The reliability of the Byzantine defect is calculated as in Equation 2 because it is the probability that a failure occurs in less than a majority of nodes.
[수학식 2][Equation 2]
참여노드 개수가 증가할수록 트랜잭션의 신뢰도가 증가할 수 있다. 시간에 따라 노드의 신뢰도가 달라질 수 있으므로, 노드 별 신뢰도가 상대적으로 낮은 주기에서는 노드 별 신뢰도가 상대적으로 높은 주기에서보다 최소 참여노드 개수가 더 많게 결정될 수 있다. As the number of participating nodes increases, the reliability of the transaction may increase. Since the reliability of nodes may vary over time, in a period in which the reliability of each node is relatively low, the minimum number of participating nodes may be determined more than in a period in which the reliability of each node is relatively high.
한편 다른 실시예에서도 참여노드의 신뢰도, 사이버 침해 가능성, 컴퓨팅 능력, 데이터 수집 근접 등이 서로 다른 경우라도, 사용자의 요구사항을 만족시키면서 최소의 블록체인 자원을 사용하는 방법을 적절하게 적용할 수 있다. On the other hand, in other embodiments, even when the reliability of participating nodes, the possibility of cyber-infringement, computing power, proximity to data collection, etc. are different, the method of using the minimum blockchain resource while satisfying the user's requirements can be appropriately applied. .
일부 실시예들에서, 사용자의 요구사항은 최대 트랜잭션 처리완료시간 및 최대 트랜잭션 비용 중 적어도 하나를 포함할 수 있다. 트랜잭션 처리완료시간은 트랜잭션에 대한 처리요청이 발생한 이후, 해당 트랜잭션을 포함하는 블록이 블록체인에 추가되기까지의 시간을 의미할 수 있다. 즉, 트랜잭션 처리완료시간은 트랜잭션을 포함하는 블록이 생성되어 블록체인 네트워크 내 다른 노드들에게 전달되고, 상기 다른 노드들에 의해 해당 트랜잭션의 유효성이 검증된 후 해당 트랜잭션을 포함하는 블록이 블록체인에 추가되기까지 소요되는 시간을 의미할 수 있다. 트랜잭션 비용은 다른 노드들에 의해 트랜잭션이 처리되는 것에 대한 일종의 수수료로서 사용자가 지불해야 하는 비용을 의미할 수 있다.In some embodiments, the user's requirement may include at least one of a maximum transaction completion time and a maximum transaction cost. The transaction processing completion time may mean the time from when a processing request for a transaction is generated until a block including the transaction is added to the blockchain. That is, the transaction processing completion time indicates that a block containing a transaction is created and transmitted to other nodes in the blockchain network, and after the validity of the transaction is verified by the other nodes, the block containing the transaction is transferred to the blockchain. It may mean the time it takes to be added. The transaction cost is a kind of fee for processing a transaction by other nodes, and may mean a cost that a user has to pay.
일부 실시예들에서, 참여노드 개수 결정부(134)는 블록체인 네트워크에 대한 상태정보를 이용하여, 사용자가 요구한 최대 트랜잭션 처리완료시간 이내에 트랜잭션이 처리완료될 수 있도록 하는 최소 참여노드 개수를 결정할 수 있다. 또한, 참여노드 개수 결정부(134)는 블록체인 네트워크에 대한 상태정보를 이용하여, 사용자가 요구한 최대 트랜잭션 비용 이하의 트랜잭션 비용으로 사용자가 요구한 최대 트랜잭션 처리완료시간 이내에 트랜잭션이 처리완료될 수 있도록 하는 최소 참여노드 개수를 결정할 수 있다.In some embodiments, the number of participating
일부 실시예들에 따른 참여노드 선정부(136)는 블록체인 네트워크를 구성하는 복수의 노드들 중에서, 결정된 최소 참여노드 수만큼 특정 노드들을 참여노드로 선정한다. 일부 실시예들에서, 참여노드 선정부(134)는 참여노드를 선정하기 위하여 트랜잭션 처리 비용을 고려할 수 있다. 예를 들어, 사용 변수로서 데이터의 평균업데이트수(u), 데이터보유비용(cu), 트랜잭션비용(cf), 스토리지 관리 비용(cs)을 고려한다. The participating
평균업데이트수(u)는 특정 노드에서 트랜잭션(쓰기) 또는 데이터 조회(읽기) 사이에 다른 노드의 트랜잭션(쓰기)에 의한 데이터의 평균 업데이트 수이다. The average number of updates (u) is the average number of updates of data by transactions (writes) of other nodes between transactions (writes) or data inquiry (reads) in a specific node.
데이터보유비용(cu)은 특정 노드가 데이터를 보유하므로써, 특정 노드에게 메시지(트랜잭션 및 블록)를 보내야 하는 비용이다. Data retention cost (cu) is the cost of sending messages (transactions and blocks) to a specific node as a specific node holds data.
트랜잭션비용(cf)은 특정 노드가 데이터를 보유하지 않기 때문에 데이터를 보유한 노드에게 트랜잭션을 요구하고 응답받는 비용이다. Transaction cost (cf) is the cost of requesting a transaction from a node that holds data and receiving a response because a specific node does not hold data.
스토리지 관리 비용(cs)은 특정 노드가 데이터 처리와 보관에 소요되는 시스템 및 스토리지 관리 비용으로 연속된 억세스 당 비용으로 계산할 수 있다. Storage management cost (cs) is the system and storage management cost required for a specific node to process and store data, and can be calculated as a cost per successive access.
전술한 사용 변수를 바탕으로 특정 노드가 데이터를 보유한 경우와 보유하지 않은 경우의 트랜잭션 처리비용을 비교하여 비용이 최소가 되도록 하는 노드를 참여노드로 선정한다. Based on the above-mentioned usage variables, a node that minimizes the cost is selected as a participating node by comparing the transaction processing cost when a specific node has data and when it does not.
일 실시예에서, 특정 노드가 데이터를 보관하는 경우의 비용은 하기의 수학식 3과 같이 계산될 수 있다. In an embodiment, the cost when a specific node stores data may be calculated as in Equation 3 below.
[수학식 3] [Equation 3]
일 실시예에서, 특정 노드가 데이터를 보관하지 않는 경우의 비용은 수학식 4와 같이 계산될 수 있다. In one embodiment, the cost when a specific node does not store data may be calculated as in Equation (4).
[수학식 4][Equation 4]
일 실시예에 따른 참여노드 개수 결정부(134)에서 블록체인에서 신뢰성과 확장성을 위하여 최소 또는 최대 노드수를 요구할 수 있다. 이러한 경우, 참여노드 선정부(136)는 트랜잭션 처리 비용을 계산하여 적은 순서대로 노드를 선정하되 데이터 저장 노드수를 증가 또는 감소할 수 있다. 예를 들어, 데이터 노드수가 너무 적기 때문에 노드수를 늘여야 하는 경우, 트랜잭션 처리 비용에 기초한 수선에 따라 선정된 노드에서 제외된 노드 중에서, 노드가 데이터를 보관하는 경우의 비용()에서 노드가 데이터를 보관하지 않는 경우의 비용(_)의 차이가 최소인 노드를 참여노드로 선정하며, 데이터 저장 노드 수가 만족될 때까지 반복한다. The number of participating
다른 실시예들에 따른 참여노드 선정부(136)는 트랜잭션 처리 비용과 신뢰성을 고려한 데이터 노드 결정 이외에도, 사용자들의 평판을 고려하거나, 회사나 단체마다 대표성이 있는 노드, 계층적 구조나 대단위 규모의 블록체인에서 지역 또는 도메인을 대표하는 노드를 우선 지정할 수 있다. In addition to determining the data node in consideration of transaction processing cost and reliability, the participating
일부 실시예들에 따른 트랜잭션 처리부(138)는 결정된 참여노드들에 의해 사용자의 트랜잭션이 처리되도록 한다. 예를 들어, 트랜잭션 처리부(138)는 사용자에 의해 처리요청된 트랜잭션을 포함하는 블록의 유효성이 검증되도록 해당 블록을 결정된 참여노드 들에게 전달하고, 유효성이 검증된 해당 블록이 결정된 참여노드들에 분산 저장되도록 할 수 있다.The
이러한 노드 장치에 의해, 사용자 요구사항을 만족시키면서, 최소의 컴퓨팅 자원과 저장소를 사용하므로 자원낭비를 막을 수 있고 블록체인의 트랜잭션 처리속도 향상도 기대할 수 있다.By using such a node device, it is possible to prevent resource waste and increase the transaction processing speed of the block chain because it uses the minimum computing resources and storage while satisfying the user requirements.
또한, 블록체인의 환경변수를 모니터링하여 적응적으로 블록체인의 참여노드와 저장노드 수를 설정함으로써, 컴퓨팅 자원이 필요 이상으로 과다하게 낭비되는 현상을 방지할 수 있다. In addition, by monitoring the environmental variables of the block chain and adaptively setting the number of participating nodes and storage nodes of the block chain, it is possible to prevent excessive waste of computing resources more than necessary.
또한, 참여 노드수가 결정된 이후에 어느 노드가 데이터 저장을 할 것인가를 비용 효율적으로 결정할 수 있다.In addition, it is possible to cost-effectively determine which node will store data after the number of participating nodes is determined.
도 3은 본 발명의 일 실시예에 따른 노드 장치의 동작을 설명하기 위한 흐름도이고, 도 4는 본 발명의 일 실시예에 따른 노드 장치의 동작을 설명하기 위한 개념도이다. 3 is a flowchart illustrating an operation of a node device according to an embodiment of the present invention, and FIG. 4 is a conceptual diagram illustrating an operation of a node device according to an embodiment of the present invention.
도 3 및 도 4를 참조하면, 단계 S110에서, 트랜잭션 처리를 위한 사용자의 요구사항이 사용자 입력부를 통해 노드 장치에 입력된다. 이로써, 노드장치는 블록체인에 대한 상태정보를 메모리에 저장하고, 모니터링할 수 있다. 여기서, 사용자 요구사항은 신뢰성, 최대 트랜잭션 완료시간, 최대 트랜잭션 처리비용 등을 포함할 수 있다. 블록체인에 대한 상태정보는 블록체인의 주기와 노드의 신뢰성을 포함할 수 있다. 3 and 4 , in step S110, a user's request for transaction processing is input to the node device through the user input unit. In this way, the node device can store and monitor the state information about the block chain in memory. Here, the user requirements may include reliability, maximum transaction completion time, maximum transaction processing cost, and the like. State information about the blockchain may include the cycle of the blockchain and the reliability of the node.
단계 S120에서, 노드장치는 블록체인에 대한 상태정보를 이용하여, 사용자의 요구사항을 만족시키는 최소 참여노드 개수를 결정한다. In step S120, the node device determines the minimum number of participating nodes that satisfy the user's requirements by using the state information on the block chain.
일부 실시예들에서, 블록체인 네트워크에 대한 상태정보는, 복수의 노드들에 대한 시간에 따른 노드 별 신뢰도를 포함할 수 있고, 사용자의 요구사항은, 트랜잭션을 처리하는데 참여하는 노드들에 의해 결정되는 신뢰도로서 사용자에 의해 요구되는 최소 신뢰도를 포함할 수 있다. 일부 실시예들에서, 시간에 따른 노드 별 신뢰도를 이용하여 결정되는 신뢰도가 사용자에 의해 요구되는 최소 신뢰도 이상이 되도록 하는 최소 참여노드 개수를 결정할 수 있다. In some embodiments, the state information for the blockchain network may include reliability for each node over time for a plurality of nodes, and user requirements are determined by nodes participating in processing a transaction. It may include the minimum reliability required by the user as the reliability to be obtained. In some embodiments, it is possible to determine the minimum number of participating nodes such that the reliability determined using the reliability for each node over time is equal to or greater than the minimum reliability required by the user.
단계 S130에서, 노드 장치는 트랜잭션 비용에 기초하여 블록체인 네트워크를 구성하는 복수의 노드들 중에서, 결정된 최소 참여노드 개수의 노드들을 참여노드로 선정할 수 있다. 일부 실시예들에서, 노드 장치는 사용자의 평판을 고려하거나 회사나 단체의 대표성이 있는 노드 상기 트랜잭션의 처리 비용을 고려하여 선정되는 노드 보다 우선적으로 선정할 수 있다. 노드 장치는 사용자의 평판을 입력부를 통해 입력받을 수 잇다. In step S130, the node device may select, as the participating nodes, the determined minimum number of participating nodes from among a plurality of nodes constituting the blockchain network based on the transaction cost. In some embodiments, the node device may preferentially select a node in consideration of a user's reputation or a node having a representative of a company or organization, in consideration of a processing cost of the transaction. The node device may receive the user's reputation through the input unit.
또한, 일부 실시예들에서, 노드 장치는 계층적 구조나 대단위 규모이 블록체인에서 지역 또는 도메인을 대표하는 노드를 상기 트랜잭션의 처리 비용을 고려하여 선정되는 노드 보다 우선적으로 선정할 수 있다.Also, in some embodiments, the node device may preferentially select a node representing a region or domain in a hierarchical structure or large-scale block chain over a node selected in consideration of the transaction processing cost.
단계 S140에서, 노드 장치는 선정된 참여노드들에 의해 사용자의 요구에 따른 트랜잭션이 처리되도록 제어할 수 있다(결과 반환). In step S140, the node device may control the transaction according to the user's request to be processed by the selected participating nodes (result return).
종래의 블록체인에서 트랜잭션을 처리하기 위하여 동일한 참여노드 선정 방식(모든 노드 또는 일정 노드가 참여)이 사용되었지만, 본 발명의 일 실시예에 따르면, 사용자의 요구사항에 따라 참여노드수를 결정함으로서 서비스 레벨 합의(SLA: Service Level Agreement)가 블록체인에서도 가능하게 되었다. 또한 참여 노드수가 결정된 이후에 어느 노드가 데이터 저장을 할 것인가를 비용 효율적으로 결정할 수 있다.Although the same participating node selection method (all nodes or certain nodes participate) was used to process a transaction in the conventional blockchain, according to an embodiment of the present invention, the service is provided by determining the number of participating nodes according to the user's requirements. A service level agreement (SLA) has become possible on the blockchain as well. In addition, after the number of participating nodes is determined, it is possible to cost-effectively determine which node will store data.
또한, 사용자는 요구사항에 따른 트랙잭션 비용을 지불하게되어 트랜잭션 처리비용을 절약할 수 있다.In addition, the user pays the transaction fee according to the requirements, so that the transaction processing cost can be saved.
이제까지 본 발명에 대하여 그 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명의 범위는 전술한 실시 예에 한정되지 않고 특허 청구범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.So far, the present invention has been looked at with respect to preferred embodiments thereof. Those of ordinary skill in the art to which the present invention pertains will understand that the present invention may be implemented in a modified form without departing from the essential characteristics of the present invention. Accordingly, the scope of the present invention is not limited to the above-described embodiments, and should be construed to include various embodiments within the scope equivalent to the content described in the claims.
Claims (12)
상기 블록체인에 대한 상태정보를 획득하는 단계;
상기 블록체인에 대한 상태정보에 기초하여 사용자의 요구사항을 만족시키는 참여노드 개수를 결정하는 단계;
트랜잭션의 처리 비용을 고려하여, 상기 블록체인을 구성하는 복수의 노드들 중에서, 상기 블록체인의 결정된 참여노드 개수만큼 데이터를 저장할 노드를 참여노드로 선정하는 단계; 및
결정된 참여노드들에 의해 사용자의 트랜잭션이 처리되도록 하는 단계
를 포함하는 블록체인의 적응적 트랜잭션 처리 방법.
In the adaptive transaction processing method of the node device of the block chain,
obtaining state information about the block chain;
determining the number of participating nodes that satisfy the user's requirements based on the state information on the block chain;
selecting, as a participating node, a node to store data as many as the determined number of participating nodes of the block chain from among a plurality of nodes constituting the block chain in consideration of the transaction processing cost; and
Step of allowing the user's transaction to be processed by the determined participating nodes
An adaptive transaction processing method of the blockchain, including
상기 참여노드로 선정하는 단계는,
회사나 단체의 대표성이 있는 노드 및 지역 또는 도메인을 대표하는 노드를 상기 트랜잭션의 처리 비용을 고려하여 선정되는 노드 보다 우선적으로 선정하는 것을 특징으로 하는 블록체인의 적응적 트랜잭션 처리 방법.
According to claim 1,
The step of selecting the participating node is,
An adaptive transaction processing method of a block chain, characterized in that a node having a representative of a company or organization and a node representing a region or domain are preferentially selected over a node selected in consideration of the processing cost of the transaction.
상기 참여노드로 선정하는 단계는,
특정 노드가 데이터를 보관하는 경우의 비용과 노드가 데이터를 보관하지 않는 경우의 비용의 차이가 최소인 노드를 선택하는 것을 특징으로 하는 블록체인의 적응적 트랜잭션 처리 방법.
3. The method of claim 2,
The step of selecting the participating node is,
A block chain adaptive transaction processing method, characterized in that the node with the smallest difference between the cost when a specific node stores data and the cost when the node does not store data is selected.
상기 참여노드로 선정하는 단계는,
상기 트랜잭션의 처리 비용을 고려하기 위하여,
특정 노드에서 트랜잭션 또는 데이터 조회 사이에 다른 노드의 트랜잭션에 의한 데이터의 평균 업데이트 수, 특정 데이터를 보유한 특정 노드가 다른 노드에게 메시지를 보내야 하는 데이터 보유 비용, 특정 데이터를 보유하지 않은 특정 노드가 특정 데이터를 보유한 노드에게 트랜잭션을 요구하고 응답받는 트랜잭션 비용, 특정 노드가 데이터 처리와 보관에 소요되는 스토리지 관리 비용에 기초하여 참여노드를 선정하는 것을 특징으로 하는 블록체인의 적응적 트랜잭션 처리 방법.
3. The method of claim 2,
The step of selecting the participating node is,
In order to consider the processing cost of the transaction,
Between transactions or data lookups on a particular node, the average number of updates of data by transactions on other nodes, the cost of data retention for which a specific node with specific data must send a message to another node, and the specific data A block chain adaptive transaction processing method, characterized in that the participating nodes are selected based on the transaction cost for requesting and receiving a transaction from a node with
상기 블록체인 네트워크에 대한 상태정보는, 상기 복수의 노드들에 대한 시간에 따른 노드 별 신뢰도를 포함하고,
상기 사용자의 요구사항은, 트랜잭션을 처리하는데 참여하는 노드들에 의해 결정되는 신뢰도로서 상기 사용자에 의해 요구되는 최소 신뢰도를 포함하는 특징으로 하는 블록체인의 적응적 트랜잭션 처리 방법.
According to claim 1,
The state information for the blockchain network includes reliability for each node over time for the plurality of nodes,
The user's requirement is a reliability determined by nodes participating in transaction processing, and includes a minimum reliability required by the user.
상기 참여노드 개수를 결정하는 단계는,
상기 시간에 따른 노드 별 신뢰도를 이용하여 결정되는 신뢰도가 상기 사용자에 의해 요구되는 상기 최소 신뢰도 이상이 되도록 하는 최소 참여노드 개수를 결정하는 단계
를 포함하는 것을 특징으로 하는 블록체인의 적응적 트랜잭션 처리 방법.
6. The method of claim 5,
The step of determining the number of participating nodes comprises:
Determining the minimum number of participating nodes such that the reliability determined using the reliability for each node over time is equal to or greater than the minimum reliability required by the user
A block chain adaptive transaction processing method comprising a.
상기 블록체인에 대한 상태정보에 기초하여 사용자의 요구사항을 만족시키는 참여노드 개수를 결정하는 참여노드 개수 결정부;
트랜잭션의 처리 비용을 고려하여, 상기 블록체인을 구성하는 복수의 노드들 중에서, 상기 블록체인의 결정된 참여노드 개수만큼 데이터를 저장할 노드를 참여노드로 선정하는 참여노드 선정부; 및
선정된 참여노드들에 의해 사용자의 트랜잭션이 처리되도록 하는 트랜잭션 처리부
를 포함하는 블록체인의 노드 장치.
a block chain status monitoring unit that obtains status information about the block chain;
a number of participating nodes determining unit that determines the number of participating nodes that satisfy the user's requirements based on the state information on the block chain;
a participating node selecting unit that selects, as a participating node, a node to store data as much as the determined number of participating nodes of the block chain from among a plurality of nodes constituting the block chain in consideration of the transaction processing cost; and
A transaction processing unit that allows the user's transaction to be processed by the selected participating nodes
A node device in the blockchain that includes
상기 참여노드 선정부는,
회사나 단체의 대표성이 있는 노드 및 지역 또는 도메인을 대표하는 노드를 상기 트랜잭션의 처리 비용을 고려하여 선정되는 노드 보다 우선적으로 선정하는 것을 특징으로 하는 블록체인의 노드 장치.
8. The method of claim 7,
The participating node selection unit,
A node device of a block chain, characterized in that a node representing a company or organization and a node representing a region or domain are preferentially selected over a node selected in consideration of the transaction processing cost.
상기 참여노드 선정부는,
특정 노드가 데이터를 보관하는 경우의 비용과 노드가 데이터를 보관하지 않는 경우의 비용의 차이가 최소인 노드를 선택하는 것을 특징으로 하는 블록체인의 노드 장치.
9. The method of claim 8,
The participating node selection unit,
A node device in a blockchain characterized in that the node with the smallest difference between the cost when a specific node stores data and the cost when the node does not store data is selected.
상기 참여노드 선정부는,
상기 트랜잭션의 처리 비용을 고려하기 위하여,
특정 노드에서 트랜잭션 또는 데이터 조회 사이에 다른 노드의 트랜잭션에 의한 데이터의 평균 업데이트 수, 특정 데이터를 보유한 특정 노드가 다른 노드에게 메시지를 보내야 하는 데이터 보유 비용, 특정 데이터를 보유하지 않은 특정 노드가 특정 데이터를 보유한 노드에게 트랜잭션을 요구하고 응답받는 트랜잭션 비용, 특정 노드가 데이터 처리와 보관에 소요되는 스토리지 관리 비용에 기초하여 참여노드를 선정하는 것을 특징으로 하는 블록체인의 노드 장치.
9. The method of claim 8,
The participating node selection unit,
In order to consider the processing cost of the transaction,
Between transactions or data lookups on a particular node, the average number of updates of data by transactions on other nodes, the cost of data retention for which a specific node with specific data must send a message to another node, and the specific data A node device of a blockchain, characterized in that the participating nodes are selected based on the transaction cost for requesting and receiving a transaction from a node with
상기 블록체인 네트워크에 대한 상태정보는, 상기 복수의 노드들에 대한 시간에 따른 노드 별 신뢰도를 포함하고,
상기 사용자의 요구사항은, 트랜잭션을 처리하는데 참여하는 노드들에 의해 결정되는 신뢰도로서 상기 사용자에 의해 요구되는 최소 신뢰도를 포함하는 특징으로 하는 블록체인의 노드 장치.
8. The method of claim 7,
The state information for the blockchain network includes reliability for each node over time for the plurality of nodes,
The user's requirement is a reliability determined by the nodes participating in processing a transaction and includes a minimum reliability required by the user.
상기 참여노드 개수 결정부는,
상기 시간에 따른 노드 별 신뢰도를 이용하여 결정되는 신뢰도가 상기 사용자에 의해 요구되는 상기 최소 신뢰도 이상이 되도록 하는 최소 참여노드 개수를 결정하는 것을 특징으로 하는 블록체인의 노드 장치.
12. The method of claim 11,
The number of participating nodes determining unit,
A node device of a block chain, characterized in that the minimum number of participating nodes is determined so that the reliability determined using the reliability for each node over time is equal to or greater than the minimum reliability required by the user.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210048670A KR20220142210A (en) | 2021-04-14 | 2021-04-14 | Adaptive transaction processing node and method for blockchain |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210048670A KR20220142210A (en) | 2021-04-14 | 2021-04-14 | Adaptive transaction processing node and method for blockchain |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220142210A true KR20220142210A (en) | 2022-10-21 |
Family
ID=83805528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210048670A Ceased KR20220142210A (en) | 2021-04-14 | 2021-04-14 | Adaptive transaction processing node and method for blockchain |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20220142210A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116562885A (en) * | 2023-07-07 | 2023-08-08 | 北京信大融金教育科技有限公司 | Supply chain system management method, device, equipment and medium based on block chain |
KR102716436B1 (en) * | 2023-05-09 | 2024-10-11 | 주식회사 원유니버스 | A system for optimizing concurrent processing of blockchain transactions of game items and method for optimizing using the same system |
-
2021
- 2021-04-14 KR KR1020210048670A patent/KR20220142210A/en not_active Ceased
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102716436B1 (en) * | 2023-05-09 | 2024-10-11 | 주식회사 원유니버스 | A system for optimizing concurrent processing of blockchain transactions of game items and method for optimizing using the same system |
WO2024232466A1 (en) * | 2023-05-09 | 2024-11-14 | 주식회사 원유니버스 | System for optimizing concurrent processing of blockchain transactions of game item and optimization method using same |
CN116562885A (en) * | 2023-07-07 | 2023-08-08 | 北京信大融金教育科技有限公司 | Supply chain system management method, device, equipment and medium based on block chain |
CN116562885B (en) * | 2023-07-07 | 2023-09-29 | 北京信大融金教育科技有限公司 | Supply chain system management method, device, equipment and medium based on block chain |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3646226B1 (en) | Access control manager configuration based on log files mining | |
US10467096B2 (en) | Securely storing data in a dispersed storage network | |
US10785320B2 (en) | Managing operation of instances | |
CN113726875B (en) | Transaction processing method and device based on blockchain all-in-one machine | |
JP2020024733A (en) | Dynamic configuration of data volumes | |
CN111030936A (en) | Current-limiting control method and device for network access and computer-readable storage medium | |
KR102519186B1 (en) | Blockchain Network Node and Method for Processing Transaction | |
CN111049695A (en) | Cloud gateway configuration method and system | |
KR20200132518A (en) | System for supporting transaction interoperation between blockchain networks and method thereof | |
CN115543938A (en) | Data processing method and device, electronic equipment and storage medium | |
KR20220142210A (en) | Adaptive transaction processing node and method for blockchain | |
CN102971739B (en) | Strength evidence protection account security is utilized to set | |
US10831378B2 (en) | Optimizing data access in a DSN memory for wear leveling | |
US9749278B1 (en) | Persistent connections for email web applications | |
US20170315735A1 (en) | Batching access requests in a dispersed storage network | |
US20190065255A1 (en) | Accessing data in accordance with an execution deadline | |
KR102700711B1 (en) | Blockchain Network Node for Processing Transaction | |
CN109840051A (en) | A kind of date storage method and device of storage system | |
EP3349416B1 (en) | Relationship chain processing method and system, and storage medium | |
CN112181599A (en) | Model training method, device and storage medium | |
US10628399B2 (en) | Storing data in a dispersed storage network with consistency | |
JP6309432B2 (en) | Secret calculation system and method, management server and program | |
CN114513469A (en) | Traffic shaping method and device for distributed system and storage medium | |
Fazul et al. | DARB: A Dynamic Architecture for Data Replica Balancing | |
WO2021096663A1 (en) | Function performance trigger |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20210414 |
|
PA0201 | Request for examination | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20220402 Patent event code: PE09021S01D |
|
E601 | Decision to refuse application | ||
PE0601 | Decision on rejection of patent |
Patent event date: 20221011 Comment text: Decision to Refuse Application Patent event code: PE06012S01D Patent event date: 20220402 Comment text: Notification of reason for refusal Patent event code: PE06011S01I |
|
PG1501 | Laying open of application |