KR102150210B1 - Blockchain network - Google Patents
Blockchain network Download PDFInfo
- Publication number
- KR102150210B1 KR102150210B1 KR1020190113467A KR20190113467A KR102150210B1 KR 102150210 B1 KR102150210 B1 KR 102150210B1 KR 1020190113467 A KR1020190113467 A KR 1020190113467A KR 20190113467 A KR20190113467 A KR 20190113467A KR 102150210 B1 KR102150210 B1 KR 102150210B1
- Authority
- KR
- South Korea
- Prior art keywords
- middleware
- service providing
- providing server
- node
- unit
- Prior art date
Links
Images
Classifications
-
- H04L67/2852—
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/181—Append-only file systems, e.g. using logs or journals to store data providing write once read many [WORM] semantics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H04L67/2833—
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
Description
본 발명은 블록체인(blockchain) 기술에 관한 것으로, 보다 상세하게는 미들웨어(middleware) 시스템을 사용하여 기존의 레거시(legacy) 시스템과 블록체인 메인넷(Main Net)을 연결하는 블록체인 네트워크에 관한 것이다.The present invention relates to a block chain technology, and more particularly, to a block chain network that connects the existing legacy system and the block chain main net using a middleware system. .
블록체인(blockchain)은 사용자들 사이에서 발생되는 거래 내역이 네트워크 구성원들 사이에 공유되어 저장되는 디지털 원장(ledger)을 나타낸다.Blockchain represents a digital ledger in which transaction details occurring between users are shared and stored among network members.
일정 시간 동안 사용자들 사이에서 발생되는 거래 내역은 과반수가 넘는 사용자들의 합의를 통해 확정되고 확정된 거래 내역은 하나의 블록으로 묶여 블록체인에 저장된다.Transaction details that occur between users for a certain period of time are confirmed through consensus of more than half of the users, and the confirmed transaction details are grouped into one block and stored in the blockchain.
블록체인에 연결된 블록에 포함되는 거래 내역을 변경하기 위해서는 해당 블록 및 해당 블록 이후에 연결된 모든 블록들에 대해 다시 과반수가 넘는 사용자들의 합의를 얻어야 하므로, 블록체인에 저장된 데이터는 실질적으로 위조 또는 변조가 불가능하다.In order to change the transaction details included in the block connected to the block chain, the consensus of more than half of users must be obtained again for the block and all blocks connected after the block, so the data stored in the block chain is practically forged or altered. impossible.
이와 같이 블록체인에 저장된 거래 내역은 임의로 변경하는 것이 불가능하므로, 블록체인에 저장된 데이터에 대한 신뢰성은 매우 높다.Since it is impossible to arbitrarily change the transaction details stored in the blockchain, the reliability of the data stored in the blockchain is very high.
따라서 최근에는 인터넷 상거래 분야, 금융 서비스 분야 등과 같이 사용자들 사이의 거래를 다루는 산업 분야에서 블록체인을 사용하여 거래 내역을 안전하게 저장하기 위한 연구가 활발히 진행되고 있다.Therefore, in recent years, researches to safely store transaction details using a block chain are being actively conducted in industrial fields dealing with transactions between users, such as Internet commerce and financial services.
그러나 기존의 시스템에 블록체인 시스템을 접목하기 위해서는 기존의 시스템에 대한 많은 수정이 필요하다는 문제점이 있다.However, there is a problem in that many modifications to the existing system are required in order to integrate the blockchain system with the existing system.
또한, 새로운 거래 내역을 블록체인에 저장하기 위해서는 채굴이라는 과정을 통해 새로운 블록을 생성해야 하므로, 기존의 시스템에서 발생되는 거래 내역을 블록체인에 저장하기 위해서는 많은 시간이 소요된다. 따라서 기존의 시스템에서 발생된 거래 내역을 블록체인에 저장하는 경우, 발생된 거래 내역을 확정하는 데에 많은 대기 시간이 필요하다는 문제점이 있다.In addition, in order to store new transaction details on the blockchain, a new block must be created through a process called mining, so it takes a lot of time to store transaction details generated in the existing system on the blockchain. Therefore, when the transaction details generated in the existing system are stored in the blockchain, there is a problem that a lot of waiting time is required to confirm the transaction details that have occurred.
상기와 같은 문제점을 해결하기 위한 본 발명의 일 목적은 기존의 레거시(legacy) 시스템이 미들웨어(middleware) 시스템을 통해 블록체인 메인넷(Main Net)에 연결되는 구성을 갖는 블록체인 네트워크를 제공하는 것이다.One object of the present invention for solving the above problems is to provide a blockchain network having a configuration in which an existing legacy system is connected to the blockchain main net through a middleware system. .
상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 블록체인 네트워크는 레거시(legacy) 시스템, 미들웨어(middleware) 시스템, 및 메인넷(Main Net)을 포함한다. 상기 레거시 시스템은 서비스 제공 서버 및 상기 서비스 제공 서버에 접속하여 서비스를 제공받는 복수의 사용자 단말기들을 포함한다. 상기 미들웨어 시스템은 네트워크를 통해 서로 연결되는 복수의 미들웨어 노드들을 포함하고, 상기 서비스 제공 서버로부터 수신되는 원본 거래 데이터에 대해 상기 서비스 제공 서버와 제1 합의 알고리즘을 수행하여 상기 원본 거래 데이터의 유효성을 검증하고, 상기 검증에 성공한 경우 상기 원본 거래 데이터를 포함하는 단위 트랜잭션을 생성 및 승인하고 상기 서비스 제공 서버에 상기 원본 거래 데이터가 승인되었음을 나타내는 승인 신호를 전송하고, 기준 시간 동안 상기 제1 합의 알고리즘을 통해 승인되는 상기 단위 트랜잭션들을 포함하는 현재 셀 블록을 생성하고, 상기 현재 셀 블록에 대해 내부적으로 제2 합의 알고리즘을 수행하여 상기 현재 셀 블록을 확정하고 상기 확정된 현재 셀 블록을 복수의 셀 블록들이 연결된 셀 블록체인의 끝단에 추가한다. 상기 메인넷은 복수의 메인넷 노드들을 포함하고, 상기 미들웨어 시스템으로부터 수신되는 상기 단위 트랜잭션을 상기 복수의 메인넷 노드들 사이에 공유되는 메인 블록체인에 저장한다.In order to achieve the object of the present invention described above, a blockchain network according to an embodiment of the present invention includes a legacy system, a middleware system, and a main net. The legacy system includes a service providing server and a plurality of user terminals connected to the service providing server to receive a service. The middleware system includes a plurality of middleware nodes connected to each other through a network, and verifies the validity of the original transaction data by performing a first agreement algorithm with the service providing server on the original transaction data received from the service providing server. And, if the verification is successful, a unit transaction including the original transaction data is generated and approved, and an approval signal indicating that the original transaction data has been approved is transmitted to the service providing server, and through the first consensus algorithm for a reference time. A current cell block including the approved unit transactions is generated, a second consensus algorithm is internally performed on the current cell block to determine the current cell block, and a plurality of cell blocks are connected to the determined current cell block. Add it to the end of the cell blockchain. The mainnet includes a plurality of mainnet nodes, and stores the unit transaction received from the middleware system in a main blockchain shared among the plurality of mainnet nodes.
본 발명의 실시예들에 따른 블록체인 네트워크는 기존의 레거시(legacy) 시스템에 대한 큰 변경 없이 레거시 시스템으로부터 생성되는 원본 거래 데이터를 메인넷의 블록체인에 안전하게 저장할 수 있다.The blockchain network according to the embodiments of the present invention can safely store the original transaction data generated from the legacy system in the blockchain of the mainnet without major changes to the existing legacy system.
또한, 본 발명의 실시예들에 따른 블록체인 네트워크는 레거시 시스템으로부터 생성되는 원본 거래 데이터가 메인넷의 블록체인에 저장 완료 되기 이전에 원본 거래 데이터에 상응하는 계약의 체결을 승인할 수 있으므로, 레거시 시스템의 거래 계약 체결 속도를 저하시키지 않으면서도 레거시 시스템으로부터 생성되는 원본 거래 데이터를 메인넷의 메인 블록체인에 안전하게 저장할 수 있다.In addition, the blockchain network according to the embodiments of the present invention can approve the conclusion of a contract corresponding to the original transaction data before the original transaction data generated from the legacy system is stored in the blockchain of the mainnet. The original transaction data generated from the legacy system can be safely stored in the main net's main blockchain without slowing down the system's transaction contract execution speed.
도 1은 본 발명의 일 실시예에 따른 블록체인(blockchain) 네트워크를 나타내는 도면이다.
도 2는 도 1의 블록체인 네트워크에서 서비스 제공 서버가 미들웨어 시스템에 전송하는 원본 거래 데이터의 일 예를 나타내는 도면이다.
도 3은 도 1의 블록체인 네트워크에서 수행되는 제1 합의 알고리즘의 수행 과정을 설명하기 위한 도면이다.
도 4는 도 1의 블록체인 네트워크에서 기준 시간 마다 주기적으로 생성되는 현재 머클 트리(Merkle tree)의 일 예를 설명하기 위한 도면이다.
도 5는 도 1의 블록체인 네트워크에서 기준 시간 마다 주기적으로 생성되는 현재 셀 블록의 일 예를 설명하기 위한 도면이다.
도 6은 도 1의 블록체인 네트워크에서 수행되는 제2 합의 알고리즘의 수행 과정을 설명하기 위한 도면이다.
도 7은 현재 셀 블록이 추가된 셀 블록체인의 일 예를 설명하기 위한 도면이다.1 is a diagram illustrating a blockchain network according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating an example of original transaction data transmitted from a service providing server to a middleware system in the block chain network of FIG. 1.
FIG. 3 is a diagram illustrating a process of performing a first consensus algorithm performed in the block chain network of FIG. 1.
FIG. 4 is a diagram illustrating an example of a current Merkle tree that is periodically generated at each reference time in the block chain network of FIG. 1.
FIG. 5 is a diagram illustrating an example of a current cell block periodically generated at each reference time in the block chain network of FIG. 1.
FIG. 6 is a diagram illustrating a process of performing a second consensus algorithm performed in the blockchain network of FIG. 1.
7 is a diagram for describing an example of a cell block chain to which a current cell block is added.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.With respect to the embodiments of the present invention disclosed in the text, specific structural or functional descriptions have been exemplified only for the purpose of describing the embodiments of the present invention, and the embodiments of the present invention may be implemented in various forms. It should not be construed as being limited to the embodiments described in.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Since the present invention can apply various changes and have various forms, specific embodiments will be illustrated in the drawings and described in detail in the text. However, this is not intended to limit the present invention to a specific form disclosed, it should be understood to include all changes, equivalents, or substitutes included in the spirit and scope of the present invention.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms may be used for the purpose of distinguishing one component from another component. For example, without departing from the scope of the present invention, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is referred to as being "connected" or "connected" to another component, it is understood that it may be directly connected or connected to the other component, but other components may exist in the middle. Should be. On the other hand, when a component is referred to as being "directly connected" or "directly connected" to another component, it should be understood that there is no other component in the middle. Other expressions describing the relationship between components, such as "between" and "just between" or "adjacent to" and "directly adjacent to" should be interpreted as well.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present application, terms such as "comprise" or "have" are intended to designate the presence of a set feature, number, step, action, component, part, or combination thereof, and one or more other features or numbers It is to be understood that the possibility of addition or presence of, steps, actions, components, parts, or combinations thereof is not preliminarily excluded.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, 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 the present invention belongs. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning of the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in this application. .
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the accompanying drawings. The same reference numerals are used for the same elements in the drawings, and duplicate descriptions for the same elements are omitted.
도 1은 본 발명의 일 실시예에 따른 블록체인(blockchain) 네트워크를 나타내는 도면이다.1 is a diagram illustrating a blockchain network according to an embodiment of the present invention.
도 1을 참조하면, 블록체인 네트워크(10)는 레거시(legacy) 시스템(100), 미들웨어(middleware) 시스템(200), 및 메인넷(Main Net)(300)을 포함한다.Referring to FIG. 1, the
레거시 시스템(100)은 서비스 제공 서버(110) 및 복수의 사용자 단말기들(120)을 포함할 수 있다.The
서비스 제공 서버(110) 및 복수의 사용자 단말기들(120)은 유무선 네트워크를 통해 서로 연결될 수 있다.The
서비스 제공 서버(110)는 다양한 종류의 서비스를 제공하고, 복수의 사용자 단말기들(120)은 서비스 제공 서버(110)에 접속하여 서비스 제공 서버(110)가 제공하는 서비스를 이용할 수 있다.The
일 실시예에 있어서, 서비스 제공 서버(110)는 사용자들 사이의 거래 또는 서비스 제공자와 사용자 사이의 거래를 다루는 서비스를 제공할 수 있다. 예를 들어, 서비스 제공 서버(110)가 제공하는 서비스는 인터넷 상거래 서비스, 금융 서비스 등일 수 있다.In an embodiment, the
서비스 제공 서버(110)는 복수의 사용자 단말기들(120) 사이의 거래 또는 복수의 사용자 단말기들(120)과 서비스 제공 서버(110) 사이의 거래를 나타내는 원본 거래 데이터(OTD)를 미들웨어 시스템(200)에 전송할 수 있다.The
도 2는 도 1의 블록체인 네트워크에서 서비스 제공 서버가 미들웨어 시스템에 전송하는 원본 거래 데이터의 일 예를 나타내는 도면이다.FIG. 2 is a diagram illustrating an example of original transaction data transmitted from a service providing server to a middleware system in the block chain network of FIG. 1.
도 2를 참조하면, 원본 거래 데이터(OTD)는 송신자 지갑 주소(SENDER WALLET ADDRESS), 수신자 지갑 주소(RECEIVER WALLET ADDRESS), 거래 금액(TRANSACTION AMOUNT), 및 거래 ID(TRANSACTION ID)를 포함할 수 있다.2, the original transaction data (OTD) may include a sender wallet address (SENDER WALLET ADDRESS), a receiver wallet address (RECEIVER WALLET ADDRESS), a transaction amount (TRANSACTION AMOUNT), and a transaction ID (TRANSACTION ID). .
이 경우, 원본 거래 데이터(OTD)는 상기 송신자 지갑 주소에 상응하는 지갑에서 상기 수신자 지갑 주소에 상응하는 지갑으로 상기 거래 금액을 송금하는 거래 계약을 나타낼 수 있다.In this case, the original transaction data (OTD) may represent a transaction contract for transferring the transaction amount from a wallet corresponding to the sender wallet address to a wallet corresponding to the recipient wallet address.
도 2에 도시된 원본 거래 데이터(OTD)는 일 실시예로서, 본 발명은 이에 한정되지 않으며, 실시예들에 따라 원본 거래 데이터(OTD)는 상기 거래에 관한 다양한 종류의 정보를 더 포함할 수 있다. 예를 들어, 원본 거래 데이터(OTD)는 상기 거래가 이루어진 상점의 ID, 상기 거래에 따른 수수료 등을 더 포함할 수 있다.The original transaction data (OTD) shown in FIG. 2 is an embodiment, and the present invention is not limited thereto, and the original transaction data (OTD) may further include various types of information related to the transaction according to embodiments. have. For example, the original transaction data (OTD) may further include an ID of a store in which the transaction is made, a fee according to the transaction, and the like.
다시 도 1을 참조하면, 서비스 제공 서버(110)는 미들웨어 시스템(200)에 원본 거래 데이터(OTD)를 전송한 후, 미들웨어 시스템(200)으로부터 원본 거래 데이터(OTD)에 대한 승인 신호(C_S) 및 실패 신호(F_S) 중의 하나를 수신할 때까지 대기할 수 있다.Referring to FIG. 1 again, after the
서비스 제공 서버(110)가 미들웨어 시스템(200)으로부터 원본 거래 데이터(OTD)에 대한 승인 신호(C_S)를 수신하는 경우, 서비스 제공 서버(110)는 원본 거래 데이터(OTD)에 상응하는 거래 계약의 체결이 승인된 것으로 판단하고, 상기 거래 계약에 기초하여 다음 거래 계약의 체결을 진행할 수 있다.When the
이에 반해, 서비스 제공 서버(110)가 미들웨어 시스템(200)으로부터 원본 거래 데이터(OTD)에 대한 실패 신호(F_S)를 수신하는 경우, 서비스 제공 서버(110)는 원본 거래 데이터(OTD)에 상응하는 거래 계약이 불승인된 것으로 판단할 수 있다.On the other hand, when the
일 실시예에 있어서, 서비스 제공 서버(110)는 미들웨어 시스템(200)과 데이터 통신을 수행하기 위한 오픈 API를 포함할 수 있다. 이 경우, 서비스 제공 서버(110)는 상기 오픈 API를 사용하여 복수의 사용자 단말기들(120) 사이의 거래 또는 복수의 사용자 단말기들(120)과 서비스 제공 서버(110) 사이의 거래를 나타내는 원본 거래 데이터(OTD)를 미들웨어 시스템(200)에 전송하고 미들웨어 시스템(200)으로부터 승인 신호(C_S) 및 실패 신호(F_S)를 수신할 수 있다.In an embodiment, the
한편, 미들웨어 시스템(200)은 서비스 제공 서버(110)로부터 수신되는 원본 거래 데이터(OTD)에 대해 서비스 제공 서버(110)와 제1 합의 알고리즘을 수행하여 원본 거래 데이터(OTD)의 유효성을 2단계로 검증할 수 있다.Meanwhile, the
상기 2단계 검증에 실패한 경우, 미들웨어 시스템(200)은 서비스 제공 서버(110)에 원본 거래 데이터(OTD)가 불승인되었음을 나타내는 실패 신호(F_S)를 전송할 수 있다.If the second-step verification fails, the
이에 반해, 상기 2단계 검증에 성공한 경우, 미들웨어 시스템(200)은 원본 거래 데이터(OTD)를 포함하는 단위 트랜잭션을 생성하고 상기 단위 트랜잭션을 승인한 후, 서비스 제공 서버(110)에 원본 거래 데이터(OTD)가 승인되었음을 나타내는 승인 신호(C_S)를 전송할 수 있다.On the other hand, when the two-step verification is successful, the
한편, 미들웨어 시스템(200)은 기준 시간 동안 상기 제1 합의 알고리즘을 통해 승인되는 상기 단위 트랜잭션들을 포함하는 현재 셀 블록을 생성하고, 상기 현재 셀 블록에 대해 내부적으로 제2 합의 알고리즘을 수행할 수 있다.Meanwhile, the
상기 제2 합의 알고리즘을 통해 상기 현재 셀 블록에 대한 합의가 성공하는 경우, 미들웨어 시스템(200)은 상기 현재 셀 블록을 확정하고, 상기 확정된 현재 셀 블록을 복수의 셀 블록들이 체인 형태로 연결된 셀 블록체인의 끝단에 추가할 수 있다.When the consensus on the current cell block is successful through the second consensus algorithm, the
이에 반해, 상기 제2 합의 알고리즘을 통해 상기 현재 셀 블록에 대한 합의가 실패하는 경우, 미들웨어 시스템(200)은 상기 현재 셀 블록을 폐기할 수 있다.On the contrary, when consensus on the current cell block fails through the second consensus algorithm, the
한편, 미들웨어 시스템(200)은 주기적으로 또는 비주기적으로 상기 셀 블록체인에 연결된 상기 셀 블록들에 포함되는 상기 단위 트랜잭션들을 메인넷(300)에 전송할 수 있다.Meanwhile, the
메인넷(300)은 P2P(Peer to Peer) 네트워크를 통해 서로 연결되는 복수의 메인넷 노드들(MN_NODE)(310)을 포함할 수 있다.The
메인넷(300)은 복수의 메인넷 노드들(310) 사이에 공유되는 메인 블록체인(MAIN_BC)(320)을 포함할 수 있다.The
메인 블록체인(320)은 미들웨어 시스템(200)으로부터 수신되는 상기 단위 트랜잭션들을 저장하는 디지털 원장(ledger)에 상응할 수 있다.The
복수의 메인넷 노드들(310)은 일정 시간 동안 미들웨어 시스템(200)으로부터 수신되는 상기 단위 트랜잭션들을 포함하는 블록을 생성하고, 상기 생성된 블록에 대해 복수의 메인넷 노드들(310) 사이의 합의를 거친 후, 상기 합의에 성공한 경우 상기 생성된 블록을 메인 블록체인(320)에 추가함으로써 상기 단위 트랜잭션들은 메인 블록체인(320)에 안전하게 저장될 수 있다.The plurality of
일 실시예에 있어서, 메인넷(300)은 임의의 노드가 메인넷 노드(310)로 참가할 수 있는 퍼블릭(public) 메인넷에 상응할 수 있다.In one embodiment, the
다른 실시예에 있어서, 메인넷(300)은 허가된 노드만이 메인넷 노드(310)로 참가할 수 있는 프라이빗(private) 메인넷에 상응할 수 있다. 예를 들어, 메인넷(300)은 서비스 제공 서버(110)의 운용자에 의해 프라이빗하게 운용될 수 있다. 이 경우, 메인넷(300)은 서비스 제공 서버(110)로부터 생성되는 상기 단위 트랜잭션들을 메인 블록체인(320)에 안전하게 저장하기 위한 용도로 사용될 수 있다.In another embodiment, the
메인넷(300)은 이더리움(Ethereum), 비트코인(Bitcoin) 등과 같이 일반적으로 널리 알려진 블록체인 플랫폼을 사용하여 구현될 수 있다. 따라서 메인 블록체인(320)의 구조 및 메인넷(300)이 상기 단위 트랜잭션들을 메인 블록체인(320)에 저장하는 동작에 대한 상세한 설명은 생략한다.The
한편, 도 1에는 예시적으로 레거시 시스템(100)이 하나의 서비스 제공 서버(110)를 포함하는 것으로 도시되어 있으나, 본 발명은 이에 한정되지 않으며, 실시예들에 따라서 레거시 시스템(100)은 복수의 서비스 제공 서버(110)들을 포함할 수도 있다.Meanwhile, in FIG. 1, the
이 경우, 복수의 서비스 제공 서버(110)들 각각은 생성되는 원본 거래 데이터(OTD)를 미들웨어 시스템(200)을 통해 메인넷(300)의 메인 블록체인(320)에 안전하게 저장할 수 있다.In this case, each of the plurality of
상술한 바와 같이, 레거시 시스템(100)에 포함되는 서비스 제공 서버(110)는 메인넷(300)과 직접 데이터 통신을 수행하기 위한 블록체인 관련 모듈은 포함하고 있지 않으며, 미들웨어 시스템(200)과 데이터 통신을 수행하기 위한 상기 오픈 API를 사용하여 미들웨어 시스템(200)을 통해 원본 거래 데이터(OTD)를 메인넷(300)의 메인 블록체인(320)에 저장할 수 있다.As described above, the
이하, 도 1 내지 7을 참조하여 블록체인 네트워크(10)의 구성 및 동작에 대해 보다 상세히 설명한다.Hereinafter, the configuration and operation of the
미들웨어 시스템(200)은 네트워크를 통해 서로 연결되는 복수의 미들웨어 노드들(MW_NODE)(210)을 포함할 수 있다.The
일 실시예에 있어서, 복수의 미들웨어 노드들(210)은 TCP/IP 네트워크를 통해 서로 연결될 수 있다.In one embodiment, the plurality of
미들웨어 시스템(200)은 복수의 미들웨어 노드들(210)을 관리하는 마스터 노드(M_NODE)(220)를 더 포함할 수 있다.The
신규 노드는 마스터 노드(220)의 허가 하에 미들웨어 시스템(200)에 미들웨어 노드(210)로서 참가할 수 있다.The new node may participate as the
또한, 마스터 노드(220)는 복수의 미들웨어 노드들(210)의 리스트를 관리하고, 복수의 미들웨어 노드들(210)의 동작 상태를 모니터링하며, 복수의 미들웨어 노드들(210)의 리스트 및 복수의 미들웨어 노드들(210)의 주소들을 서비스 제공 서버(110)에 제공할 수 있다.In addition, the
상술한 바와 같이, 서비스 제공 서버(110)는 복수의 사용자 단말기들(120) 사이에 거래 계약이 체결되거나 복수의 사용자 단말기들(120)과 서비스 제공 서버(110) 사이에 거래 계약이 체결되는 경우, 상기 거래 계약을 나타내는 원본 거래 데이터(OTD)를 생성할 수 있다.As described above, when a transaction contract is concluded between the plurality of
서비스 제공 서버(110)가 원본 거래 데이터(OTD)를 생성하는 경우, 서비스 제공 서버(110)는 복수의 미들웨어 노드들(210) 중에서 선택되는 제1 미들웨어 노드에 원본 거래 데이터(OTD)를 전송하여 상기 제1 미들웨어 노드와 함께 원본 거래 데이터(OTD)의 유효성을 2단계로 검증하는 상기 제1 합의 알고리즘을 수행할 수 있다.When the
일 실시예에 있어서, 서비스 제공 서버(110)는 마스터 노드(220)로부터 제공되는 복수의 미들웨어 노드들(210)의 리스트 및 복수의 미들웨어 노드들(210)의 주소들에 기초하여 복수의 미들웨어 노드들(210) 중의 하나를 랜덤하게 선택하여 상기 제1 미들웨어 노드로 결정하고, 상기 제1 미들웨어 노드에 원본 거래 데이터(OTD)를 전송하여 상기 제1 미들웨어 노드와 함께 원본 거래 데이터(OTD)의 유효성을 2단계로 검증하는 상기 제1 합의 알고리즘을 수행할 수 있다.In one embodiment, the
다른 실시예에 있어서, 상기 제1 미들웨어 노드는 복수의 미들웨어 노드들(210) 중에서 마스터 노드(220)에 의해 미리 정해질 수 있다. 이 경우, 서비스 제공 서버(110)는 복수의 미들웨어 노드들(210) 중에서 미리 정해진 상기 제1 미들웨어 노드에 원본 거래 데이터(OTD)를 전송하여 상기 제1 미들웨어 노드와 함께 원본 거래 데이터(OTD)의 유효성을 2단계로 검증하는 상기 제1 합의 알고리즘을 수행할 수 있다.In another embodiment, the first middleware node may be predetermined by the
일 실시예에 있어서, 복수의 미들웨어 노드들(210) 각각 및 마스터 노드(220)는 웜(write once read many; WORM) 스토리지(211)를 포함할 수 있다. 여기서, 웜 스토리지(211)는 데이터가 한번 기입되면 상기 기입된 데이터에 대해 독출 동작만 가능하고 상기 기입된 데이터에 대한 변경이나 삭제는 불가능한 데이터 저장 장치를 나타낸다.In an embodiment, each of the plurality of
복수의 미들웨어 노드들(210) 각각은 서비스 제공 서버(110)로부터 원본 거래 데이터(OTD)를 수신하는 경우, 원본 거래 데이터(OTD)를 웜 스토리지(211)에 저장할 수 있다.When each of the plurality of
또한, 마스터 노드(220)는 복수의 미들웨어 노드들(210) 각각의 웜 스토리지(211)에 저장된 원본 거래 데이터(OTD)들을 주기적으로 백업하여 내부에 포함되는 웜 스토리지(211)에 저장할 수 있다.In addition, the
따라서 미들웨어 시스템(200)에 대한 해킹 공격이 발생하는 경우에도 서비스 제공 서버(110)로부터 수신되는 원본 거래 데이터(OTD)는 복수의 미들웨어 노드들(210) 및 마스터 노드(220)에 포함되는 웜 스토리지(211)에 안전하게 보관될 수 있다.Therefore, even when a hacking attack on the
도 3은 도 1의 블록체인 네트워크에서 수행되는 제1 합의 알고리즘의 수행 과정을 설명하기 위한 도면이다.FIG. 3 is a diagram illustrating a process of performing a first consensus algorithm performed in the block chain network of FIG. 1.
도 3에는 서비스 제공 서버(SPS)(110)와 제1 미들웨어 노드(MW_NODE1)(210-1) 사이에서 수행되는 상기 제1 합의 알고리즘의 세부 과정이 도시된다.3 illustrates a detailed process of the first consensus algorithm performed between the service providing server (SPS) 110 and the first middleware node (MW_NODE1) 210-1.
도 3을 참조하면, 서비스 제공 서버(110)와 제1 미들웨어 노드(210-1)가 상기 제1 합의 알고리즘을 수행하는 경우, 서비스 제공 서버(SPS)(110)는 원본 거래 데이터(OTD)를 생성한 후, 원본 거래 데이터(OTD)에 대한 해시값(HASH_ODT)을 계산하고, 원본 거래 데이터(OTD) 및 원본 거래 데이터(OTD)에 대한 해시값(HASH_ODT)을 포함하는 제1 확인 메시지(CM1)를 제1 미들웨어 노드(210-1)에 전송할 수 있다(단계 S110).Referring to FIG. 3, when the
제1 미들웨어 노드(210-1)는 서비스 제공 서버(110)로부터 제1 확인 메시지(CM1)를 수신하는 경우, 제1 확인 메시지(CM1)에 포함되는 원본 거래 데이터(OTD)를 내부에 포함되는 웜 스토리지(211)에 저장하고, 제1 확인 메시지(CM1)에 포함되는 해시값(HASH_ODT)을 사용하여 제1 확인 메시지(CM1)에 포함되는 원본 거래 데이터(OTD)의 유효성을 1차 검증할 수 있다(단계 S120).When the first middleware node 210-1 receives the first confirmation message CM1 from the
일 실시예에 있어서, 제1 미들웨어 노드(210-1)는 제1 확인 메시지(CM1)에 포함되는 원본 거래 데이터(OTD)에 대한 해시값을 계산하고, 상기 계산된 해시값과 제1 확인 메시지(CM1)에 포함되는 해시값(HASH_ODT)이 일치하는 경우 상기 1차 검증에 성공한 것으로 판단하고, 상기 계산된 해시값과 제1 확인 메시지(CM1)에 포함되는 해시값(HASH_ODT)이 일치하지 않는 경우 상기 1차 검증에 실패한 것으로 판단할 수 있다.In one embodiment, the first middleware node 210-1 calculates a hash value for the original transaction data (OTD) included in the first confirmation message CM1, and the calculated hash value and the first confirmation message If the hash value (HASH_ODT) included in (CM1) matches, it is determined that the first verification has been successful, and the calculated hash value and the hash value (HASH_ODT) included in the first confirmation message (CM1) do not match. If so, it may be determined that the first verification has failed.
상기 1차 검증에 성공하는 경우, 제1 미들웨어 노드(210-1)는 원본 거래 데이터(OTD) 및 해시값(HASH_ODT)을 포함하는 단위 트랜잭션(UNIT_TX)을 생성할 수 있다(단계 S130). 이후, 제1 미들웨어 노드(210-1)는 생성된 단위 트랜잭션(UNIT_TX)을 나타내는 단위 트랜잭션 ID(UNIT_TX_ID) 및 제1 값을 갖는 검증 결과 플래그(SF_FLAG)를 포함하는 제2 확인 메시지(CM2)를 서비스 제공 서버(110)에 전송할 수 있다(단계 S140).If the first verification is successful, the first middleware node 210-1 may generate a unit transaction UNIT_TX including the original transaction data ODT and the hash value HASH_ODT (step S130). Thereafter, the first middleware node 210-1 sends a second confirmation message CM2 including a unit transaction ID (UNIT_TX_ID) indicating the generated unit transaction (UNIT_TX) and a verification result flag (SF_FLAG) having a first value. It may be transmitted to the service providing server 110 (step S140).
이에 반해, 상기 1차 검증에 실패하는 경우, 제1 미들웨어 노드(210-1)는 단위 트랜잭션(UNIT_TX)을 생성하지 않고, 제2 값을 갖는 검증 결과 플래그(SF_FLAG)를 포함하는 제2 확인 메시지(CM2)를 서비스 제공 서버(110)에 전송하고(단계 S140), 상기 제1 합의 알고리즘의 수행을 중단할 수 있다.On the other hand, when the first verification fails, the first middleware node 210-1 does not generate a unit transaction (UNIT_TX), and a second confirmation message including a verification result flag SF_FLAG having a second value (CM2) is transmitted to the service providing server 110 (step S140), and execution of the first consensus algorithm may be stopped.
상기 제2 값을 갖는 검증 결과 플래그(SF_FLAG)를 포함하는 제2 확인 메시지(CM2)는 원본 거래 데이터(OTD)가 불승인되었음을 나타내는 실패 신호(F_S)에 상응할 수 있다.The second confirmation message CM2 including the verification result flag SF_FLAG having the second value may correspond to a failure signal F_S indicating that the original transaction data ODT is disapproved.
따라서 서비스 제공 서버(110)가 제1 미들웨어 노드(210-1)로부터 상기 제2 값을 갖는 검증 결과 플래그(SF_FLAG)를 포함하는 제2 확인 메시지(CM2)를 수신하는 경우, 서비스 제공 서버(110)는 원본 거래 데이터(OTD)에 상응하는 거래 계약이 불승인된 것으로 판단할 수 있다.Therefore, when the
이에 반해, 서비스 제공 서버(110)가 제1 미들웨어 노드(210-1)로부터 상기 제1 값을 갖는 검증 결과 플래그(SF_FLAG)를 포함하는 제2 확인 메시지(CM2)를 수신하는 경우, 서비스 제공 서버(110)는 해시값(HASH_ODT) 및 제2 확인 메시지(CM2)에 포함되는 단위 트랜잭션 ID(UNIT_TX_ID)를 포함하는 제3 확인 메시지(CM3)를 제1 미들웨어 노드(210-1)에 전송할 수 있다(단계 S150).On the other hand, when the
제1 미들웨어 노드(210-1)는 제3 확인 메시지(CM3)에 응답하여, 제3 확인 메시지(CM3)에 포함되는 해시값(HASH_ODT)을 사용하여 제3 확인 메시지(CM3)에 포함되는 단위 트랜잭션 ID(UNIT_TX_ID)에 상응하는 단위 트랜잭션(UNIT_TX)에 포함되는 원본 거래 데이터(OTD)의 유효성을 2차 검증할 수 있다(단계 S160).The first middleware node 210-1 is a unit included in the third confirmation message CM3 using a hash value HASH_ODT included in the third confirmation message CM3 in response to the third confirmation message CM3 The validity of the original transaction data (OTD) included in the unit transaction (UNIT_TX) corresponding to the transaction ID (UNIT_TX_ID) may be secondarily verified (step S160).
일 실시예에 있어서, 제1 미들웨어 노드(210-1)는 제3 확인 메시지(CM3)에 포함되는 단위 트랜잭션 ID(UNIT_TX_ID)에 상응하는 단위 트랜잭션(UNIT_TX)에 포함되는 원본 거래 데이터(OTD)에 대한 해시값을 계산하고, 상기 계산된 해시값과 제3 확인 메시지(CM3)에 포함되는 해시값(HASH_ODT)이 일치하는 경우 상기 2차 검증에 성공한 것으로 판단하고, 상기 계산된 해시값과 제3 확인 메시지(CM3)에 포함되는 해시값(HASH_ODT)이 일치하지 않는 경우 상기 2차 검증에 실패한 것으로 판단할 수 있다.In one embodiment, the first middleware node 210-1 is used in the original transaction data (OTD) included in the unit transaction (UNIT_TX) corresponding to the unit transaction ID (UNIT_TX_ID) included in the third confirmation message (CM3). A hash value is calculated, and when the calculated hash value and the hash value (HASH_ODT) included in the third confirmation message (CM3) match, it is determined that the second verification has been successful, and the calculated hash value If the hash value HASH_ODT included in the confirmation message CM3 does not match, it may be determined that the second verification has failed.
상기 2차 검증에 실패하는 경우, 제1 미들웨어 노드(210-1)는 단위 트랜잭션(UNIT_TX)을 폐기하고, 상기 제2 값을 갖는 검증 결과 플래그(SF_FLAG)를 포함하는 제4 확인 메시지(CM4)를 서비스 제공 서버(110)에 전송할 수 있다(단계 S170).When the second verification fails, the first middleware node 210-1 discards the unit transaction (UNIT_TX), and a fourth confirmation message CM4 including a verification result flag SF_FLAG having the second value May be transmitted to the service providing server 110 (step S170).
상기 제2 값을 갖는 검증 결과 플래그(SF_FLAG)를 포함하는 제4 확인 메시지(CM4)는 원본 거래 데이터(OTD)가 불승인되었음을 나타내는 실패 신호(F_S)에 상응할 수 있다.The fourth confirmation message CM4 including the verification result flag SF_FLAG having the second value may correspond to a failure signal F_S indicating that the original transaction data ODT is disapproved.
따라서 서비스 제공 서버(110)가 제1 미들웨어 노드(210-1)로부터 상기 제2 값을 갖는 검증 결과 플래그(SF_FLAG)를 포함하는 제4 확인 메시지(CM4)를 수신하는 경우, 서비스 제공 서버(110)는 원본 거래 데이터(OTD)에 상응하는 거래 계약이 불승인된 것으로 판단할 수 있다.Therefore, when the
이에 반해, 상기 2차 검증에 성공하는 경우, 제1 미들웨어 노드(210-1)는 단위 트랜잭션(UNIT_TX)을 승인하고, 단위 트랜잭션(UNIT_TX)을 내부에 포함되는 웜 스토리지(211)에 저장하고, 상기 제1 값을 갖는 검증 결과 플래그(SF_FLAG)를 포함하는 제4 확인 메시지(CM4)를 서비스 제공 서버(110)에 전송할 수 있다(단계 S170).On the other hand, if the second verification is successful, the first middleware node 210-1 approves the unit transaction (UNIT_TX), stores the unit transaction (UNIT_TX) in the
상기 제1 값을 갖는 검증 결과 플래그(SF_FLAG)를 포함하는 제4 확인 메시지(CM4)는 원본 거래 데이터(OTD)가 승인되었음을 나타내는 승인 신호(C_S)에 상응할 수 있다.The fourth confirmation message CM4 including the verification result flag SF_FLAG having the first value may correspond to an approval signal C_S indicating that the original transaction data ODT is approved.
따라서 서비스 제공 서버(110)가 제1 미들웨어 노드(210-1)로부터 상기 제1 값을 갖는 검증 결과 플래그(SF_FLAG)를 포함하는 제4 확인 메시지(CM4)를 수신하는 경우, 서비스 제공 서버(110)는 원본 거래 데이터(OTD)에 상응하는 거래 계약의 체결이 승인된 것으로 판단하고, 상기 거래 계약에 기초하여 다음 거래 계약의 체결을 진행할 수 있다.Therefore, when the
상술한 바와 같이, 상기 제1 합의 알고리즘을 통해 서비스 제공 서버(110)와 제1 미들웨어 노드(210-1)는 원본 거래 데이터(OTD)의 유효성을 2단계로 검증하므로, 블록체인 네트워크(10)는 높은 신뢰도를 가질 수 있다.As described above, through the first consensus algorithm, the
도 1 내지 3을 참조하여 상술한 바와 같이, 본 발명의 실시예들에 따른 블록체인 네트워크(10)에서, 서비스 제공 서버(110)가 원본 거래 데이터(OTD)를 생성하는 경우, 서비스 제공 서버(110)와 제1 미들웨어 노드(210-1)는 원본 거래 데이터(OTD)에 대해 상기 제1 합의 알고리즘을 수행하여 원본 거래 데이터(OTD)의 유효성을 2단계로 검증하고, 상기 2단계 검증에 성공하는 경우, 제1 미들웨어 노드(210-1)는 원본 거래 데이터(OTD)와 원본 거래 데이터(OTD)에 대한 해시값(HASH_ODT)을 포함하는 단위 트랜잭션(UNIT_TX)을 생성하고 단위 트랜잭션(UNIT_TX)을 승인할 수 있다.As described above with reference to FIGS. 1 to 3, in the
한편, 제1 미들웨어 노드(210-1)는 상기 기준 시간 마다 주기적으로 상기 기준 시간 동안 상기 제1 합의 알고리즘을 통해 승인된 단위 트랜잭션(UNIT_TX)들을 포함하는 상기 현재 셀 블록을 생성할 수 있다.Meanwhile, the first middleware node 210-1 may periodically generate the current cell block including unit transactions UNIT_TX approved through the first consensus algorithm during the reference time period at each reference time.
구체적으로, 제1 미들웨어 노드(210-1)는 상기 기준 시간 동안 상기 제1 합의 알고리즘을 통해 승인된 단위 트랜잭션(UNIT_TX)들 및 단위 트랜잭션(UNIT_TX)들에 대한 해시값(HASH_ODT)들을 사용하여 현재 머클 트리(Merkle tree)를 생성할 수 있다.Specifically, the first middleware node 210-1 uses the hash values (HASH_ODT) for the unit transactions (UNIT_TX) and unit transactions (UNIT_TX) approved through the first consensus algorithm during the reference time. You can create a Merkle tree.
일 실시예에 있어서, 상기 기준 시간은 미리 정해진 시간일 수 있다. 예를 들어, 상기 기준 시간은 1분에 상응할 수 있다.In an embodiment, the reference time may be a predetermined time. For example, the reference time may correspond to 1 minute.
도 4는 도 1의 블록체인 네트워크에서 기준 시간 마다 주기적으로 생성되는 현재 머클 트리(Merkle tree)의 일 예를 설명하기 위한 도면이고, 도 5는 도 1의 블록체인 네트워크에서 기준 시간 마다 주기적으로 생성되는 현재 셀 블록의 일 예를 설명하기 위한 도면이다.FIG. 4 is a diagram for explaining an example of a current Merkle tree that is periodically generated at each reference time in the block chain network of FIG. 1, and FIG. 5 is a block chain network of FIG. 1 that is periodically generated at each reference time. This is a diagram for explaining an example of a current cell block.
도 4에는 상기 기준 시간 동안 상기 제1 합의 알고리즘을 통해 제1 단위 트랜잭션(UNIT_TX1), 제2 단위 트랜잭션(UNIT_TX2), 제3 단위 트랜잭션(UNIT_TX3), 및 제4 단위 트랜잭션(UNIT_TX4)가 승인된 경우, 제1 단위 트랜잭션(UNIT_TX1), 제2 단위 트랜잭션(UNIT_TX2), 제3 단위 트랜잭션(UNIT_TX3), 및 제4 단위 트랜잭션(UNIT_TX4)을 사용하여 생성되는 현재 머클 트리(C_MT)가 도시된다.4 shows a case where a first unit transaction (UNIT_TX1), a second unit transaction (UNIT_TX2), a third unit transaction (UNIT_TX3), and a fourth unit transaction (UNIT_TX4) are approved during the reference time period through the first consensus algorithm. , A first unit transaction (UNIT_TX1), a second unit transaction (UNIT_TX2), a third unit transaction (UNIT_TX3), and a current Merkle tree (C_MT) generated using a fourth unit transaction (UNIT_TX4) are shown.
도 4에 도시된 바와 같이, 제1 미들웨어 노드(210-1)는 상기 기준 시간 동안 상기 제1 합의 알고리즘을 통해 승인된 제1 단위 트랜잭션(UNIT_TX1), 제2 단위 트랜잭션(UNIT_TX2), 제3 단위 트랜잭션(UNIT_TX3), 및 제4 단위 트랜잭션(UNIT_TX4) 각각에 대한 해시값을 계산할 수 있다.As shown in FIG. 4, the first middleware node 210-1 is a first unit transaction (UNIT_TX1), a second unit transaction (UNIT_TX2), and a third unit approved through the first consensus algorithm during the reference time. A hash value for each of the transaction (UNIT_TX3) and the fourth unit transaction (UNIT_TX4) can be calculated.
제1 미들웨어 노드(210-1)는 제1 단위 트랜잭션(UNIT_TX1)에 대한 제1 해시값(H1), 제2 단위 트랜잭션(UNIT_TX2)에 대한 제2 해시값(H2), 제3 단위 트랜잭션(UNIT_TX3)에 대한 제3 해시값(H3), 및 제4 단위 트랜잭션(UNIT_TX4)에 대한 제4 해시값(H4)을 계산한 후, 제1 해시값(H1)과 제2 해시값(H2)을 병합한 값에 대한 제5 해시값(H12) 및 제3 해시값(H3)과 제4 해시값(H4)을 병합한 값에 대한 제6 해시값(H34)을 계산할 수 있다.The first middleware node 210-1 includes a first hash value (H1) for a first unit transaction (UNIT_TX1), a second hash value (H2) for a second unit transaction (UNIT_TX2), and a third unit transaction (UNIT_TX3). After calculating the third hash value (H3) for) and the fourth hash value (H4) for the fourth unit transaction (UNIT_TX4), the first hash value (H1) and the second hash value (H2) are merged. A sixth hash value H34 may be calculated for a value obtained by merging the fifth hash value H12 and the third hash value H3 and the fourth hash value H4 for one value.
이후, 제1 미들웨어 노드(210-1)는 제5 해시값(H12)과 제6 해시값(H34)을 병합한 값에 대한 제7 해시값(HR)을 계산하고, 제1 내지 제4 단위 트랜잭션들(UNIT_TX1, UNIT_TX2, UNIT_TX3, UNIT_TX4)과 제1 내지 제7 해시값들(H1, H2, H3, H4, H12, H34, HR)을 도 4에 도시된 바와 같은 트리 구조로 연결하여 현재 머클 트리(C_MT)를 생성할 수 있다.Thereafter, the first middleware node 210-1 calculates a seventh hash value HR for a value obtained by merging the fifth hash value H12 and the sixth hash value H34, and the first to fourth units Transactions (UNIT_TX1, UNIT_TX2, UNIT_TX3, UNIT_TX4) and the first to seventh hash values (H1, H2, H3, H4, H12, H34, HR) are connected in a tree structure as shown in FIG. A tree (C_MT) can be created.
여기서, 제7 해시값(HR)은 현재 머클 트리(C_MT)의 루트에 상응할 수 있다.Here, the seventh hash value HR may correspond to the root of the current Merkle tree C_MT.
제1 미들웨어 노드(210-1)는 상기 기준 시간 마다 주기적으로 상기 기준 시간 동안 상기 제1 합의 알고리즘을 통해 승인된 단위 트랜잭션(UNIT_TX)들 및 단위 트랜잭션(UNIT_TX)들에 대한 해시값(HASH_ODT)들을 사용하여 현재 머클 트리(C_MT)를 생성한 후, 도 5에 도시된 바와 같이, 이전 기준 시간에 대해 생성된 이전 머클 트리를 포함하는 이전 셀 블록의 ID(P_CBLOCK_ID) 및 현재 머클 트리(C_MT)를 포함하는 현재 셀 블록(C_CBLOCK)을 생성할 수 있다.The first middleware node 210-1 periodically receives hash values (HASH_ODTs) for unit transactions (UNIT_TX) and unit transactions (UNIT_TX) approved through the first consensus algorithm during the reference time period at each reference time. After generating the current Merkle tree (C_MT) by using, as shown in FIG. 5, the ID (P_CBLOCK_ID) and the current Merkle tree (C_MT) of the previous cell block including the previous Merkle tree generated for the previous reference time are A current cell block (C_CBLOCK) to be included may be generated.
일 실시예에 있어서, 상기 이전 셀 블록의 ID(P_CBLOCK_ID)는 상기 이전 셀 블록에 대한 해시값에 상응할 수 있다. 이 경우, 제1 미들웨어 노드(210-1)는 현재 셀 블록(C_CBLOCK)에 대한 해시값을 계산하여 현재 셀 블록(C_CBLOCK)의 ID(C_CBLOCK_ID)로 결정할 수 있다.In an embodiment, the ID (P_CBLOCK_ID) of the previous cell block may correspond to a hash value for the previous cell block. In this case, the first middleware node 210-1 may calculate a hash value for the current cell block C_CBLOCK to determine the ID (C_CBLOCK_ID) of the current cell block C_CBLOCK.
이후, 제1 미들웨어 노드(210-1)는 현재 셀 블록(C_CBLOCK)에 대해 상기 제2 합의 알고리즘을 수행할 수 있다.Thereafter, the first middleware node 210-1 may perform the second consensus algorithm on the current cell block C_CBLOCK.
상기 제2 합의 알고리즘은 제1 미들웨어 노드(210-1)와 복수의 미들웨어 노드들(210) 중에서 제1 미들웨어 노드(210-1)를 제외한 나머지 미들웨어 노드들 사이에서 수행될 수 있다.The second consensus algorithm may be performed between the first middleware node 210-1 and other middleware nodes except for the first middleware node 210-1 among the plurality of
도 6은 도 1의 블록체인 네트워크에서 수행되는 제2 합의 알고리즘의 수행 과정을 설명하기 위한 도면이다.FIG. 6 is a diagram illustrating a process of performing a second consensus algorithm performed in the blockchain network of FIG. 1.
도 6을 참조하면, 제1 미들웨어 노드(MW_NODE1)(210-1)와 복수의 미들웨어 노드들(210) 중에서 제1 미들웨어 노드(210-1)를 제외한 나머지 미들웨어 노드들(MW_NODE_R)(210-3)이 상기 제2 합의 알고리즘을 수행하는 경우, 제1 미들웨어 노드(210-1)는 현재 셀 블록(C_CBLOCK)을 나머지 미들웨어 노드들(210-3)에 전송할 수 있다(단계 S310).Referring to FIG. 6, among a first middleware node (MW_NODE1) 210-1 and a plurality of
나머지 미들웨어 노드들(210-3) 각각은 제1 미들웨어 노드(210-1)로부터 현재 셀 블록(C_CBLOCK)을 수신하는 경우, 현재 셀 블록(C_CBLOCK)에 포함되는 현재 머클 트리(C_MT)의 유효성을 검증할 수 있다(단계 S320).When each of the remaining middleware nodes 210-3 receives the current cell block C_CBLOCK from the first middleware node 210-1, the validity of the current Merkle tree C_MT included in the current cell block C_CBLOCK It can be verified (step S320).
일 실시예에 있어서, 나머지 미들웨어 노드들(210-3) 각각은 현재 머클 트리(C_MT)에 포함되는 단위 트랜잭션(UNIT_TX)들 각각에 대해, 단위 트랜잭션(UNIT_TX)에 포함되는 원본 거래 데이터(OTD)에 대한 해시값을 계산하고, 상기 계산된 해시값들을 사용하여 구성한 머클 트리와 현재 머클 트리(C_MT)가 일치하는 경우 상기 검증에 성공한 것으로 판단하고, 상기 계산된 해시값들을 사용하여 구성한 머클 트리와 현재 머클 트리(C_MT)가 일치하지 않는 경우 상기 검증에 실패한 것으로 판단할 수 있다.In one embodiment, each of the remaining middleware nodes 210-3 is the original transaction data (OTD) included in the unit transaction (UNIT_TX) for each of the unit transactions (UNIT_TX) included in the current Merkle tree (C_MT). A hash value for is calculated, and if the Merkle tree constructed using the calculated hash values and the current Merkle tree (C_MT) match, it is determined that the verification has been successful, and a Merkle tree constructed using the calculated hash values If the current Merkle tree (C_MT) does not match, it may be determined that the verification has failed.
나머지 미들웨어 노드들(210-3) 각각은 상기 검증에 성공하는 경우 검증 성공 신호(VERIF_S)를 제1 미들웨어 노드(210-1)에 전송하고, 상기 검증에 실패하는 경우 검증 실패 신호(VERIF_F)를 제1 미들웨어 노드(210-1)에 전송할 수 있다(단계 S330).Each of the remaining middleware nodes 210-3 transmits a verification success signal VERIF_S to the first middleware node 210-1 when the verification is successful, and transmits a verification failure signal VERIF_F when the verification fails. It may be transmitted to the first middleware node 210-1 (step S330).
제1 미들웨어 노드(210-1)는 나머지 미들웨어 노드들(210-3) 중에서 문턱 비율보다 높은 비율에 상응하는 개수의 미들웨어 노드들(210-3)로부터 검증 성공 신호(VERIF_S)를 수신하는 경우, 현재 셀 블록(C_CBLOCK)에 대한 합의가 성공한 것으로 판단할 수 있다(단계 S340).When the first middleware node 210-1 receives the verification success signal VERIF_S from the number of middleware nodes 210-3 corresponding to a ratio higher than the threshold ratio among the remaining middleware nodes 210-3, It may be determined that the consensus on the current cell block C_CBLOCK has been successful (step S340).
이에 반해, 제1 미들웨어 노드(210-1)는 나머지 미들웨어 노드들(210-3) 중에서 문턱 비율보다 낮거나 같은 비율에 상응하는 개수의 미들웨어 노드들(210-3)로부터 검증 성공 신호(VERIF_S)를 수신하는 경우, 현재 셀 블록(C_CBLOCK)에 대한 합의가 실패한 것으로 판단할 수 있다(단계 S340).In contrast, the first middleware node 210-1 is a verification success signal (VERIF_S) from the number of middleware nodes 210-3 corresponding to a ratio lower than or equal to the threshold ratio among the remaining middleware nodes 210-3. In the case of receiving, it may be determined that the agreement on the current cell block (C_CBLOCK) has failed (step S340).
현재 셀 블록(C_CBLOCK)에 대한 합의가 실패한 것으로 판단되는 경우(단계 S340; NO), 제1 미들웨어 노드(210-1)는 현재 셀 블록(C_CBLOCK)을 폐기할 수 있다(단계 S350). 이 경우, 제1 미들웨어 노드(210-1)는 상기 기준 시간 동안 상기 제1 합의 알고리즘을 통해 승인된 단위 트랜잭션(UNIT_TX)들 및 단위 트랜잭션(UNIT_TX)들에 대한 해시값(HASH_ODT)들을 사용하여 현재 머클 트리(C_MT)를 재생성하고, 이전 기준 시간에 대해 생성된 이전 머클 트리를 포함하는 이전 셀 블록의 ID(P_CBLOCK_ID) 및 현재 머클 트리(C_MT)를 포함하는 현재 셀 블록(C_CBLOCK)을 재생성할 수 있다(단계 S360). 이후, 제1 미들웨어 노드(210-1)는 재생성된 현재 셀 블록(C_CBLOCK)에 대해 상기 제2 합의 알고리즘을 다시 수행할 수 있다.When it is determined that the consensus on the current cell block C_CBLOCK has failed (step S340; NO), the first middleware node 210-1 may discard the current cell block C_CBLOCK (step S350). In this case, the first middleware node 210-1 uses the hash values (HASH_ODT) for the unit transactions (UNIT_TX) and unit transactions (UNIT_TX) approved through the first consensus algorithm during the reference time. The Merkle tree (C_MT) can be regenerated, and the ID (P_CBLOCK_ID) of the previous cell block including the previous Merkle tree generated for the previous reference time and the current cell block (C_CBLOCK) including the current Merkle tree (C_MT) can be regenerated. Yes (step S360). Thereafter, the first middleware node 210-1 may perform the second consensus algorithm again on the regenerated current cell block C_CBLOCK.
한편, 현재 셀 블록(C_CBLOCK)에 대한 합의가 성공한 것으로 판단되는 경우(단계 S340; YES), 제1 미들웨어 노드(210-1)는 현재 셀 블록(C_CBLOCK)을 확정하고(단계 S370), 현재 셀 블록(C_CBLOCK)을 복수의 셀 블록들이 체인 형태로 연결된 셀 블록체인(CBCHAIN)의 끝단에 추가할 수 있다(단계 S380).On the other hand, when it is determined that the consensus on the current cell block (C_CBLOCK) is successful (step S340; YES), the first middleware node 210-1 determines the current cell block (C_CBLOCK) (step S370), and the current cell A block (C_CBLOCK) may be added to the end of a cell block chain (CBCHAIN) in which a plurality of cell blocks are connected in a chain form (step S380).
따라서 셀 블록체인(CBCHAIN)은 서비스 제공 서버(110)로부터 생성된 원본 거래 데이터(OTD)가 디지털 원장(ledger)에 상응하는 메인넷(300)의 메인 블록체인(320)에 저장되기 이전에 임시로 저장되는 디지털 가원장(provisional ledger)에 상응할 수 있다.Therefore, the cell block chain (CBCHAIN) is temporary before the original transaction data (OTD) generated from the
도 7은 현재 셀 블록이 추가된 셀 블록체인의 일 예를 설명하기 위한 도면이다.7 is a diagram for describing an example of a cell block chain to which a current cell block is added.
도 7에 도시된 바와 같이, 셀 블록체인(CBCHAIN)에 포함되는 복수의 셀 블록들(CBLOCK) 각각은 이전 셀 블록의 ID(P_CBLOCK_ID) 및 현재 머클 트리(C_MT)를 포함할 수 있다. 이 때, 셀 블록체인(CBCHAIN)의 첫 번째 셀 블록(CBLOCK)에 대해서는 이전 셀 블록이 존재하지 않으므로, 첫 번째 셀 블록(CBLOCK)은 이전 셀 블록의 ID(P_CBLOCK_ID)를 포함하지 않을 수 있다.As shown in FIG. 7, each of the plurality of cell blocks CBLOCK included in the cell block chain CBCHAIN may include an ID (P_CBLOCK_ID) of a previous cell block and a current Merkle tree (C_MT). At this time, since the previous cell block does not exist for the first cell block CBLOCK of the cell block chain CBCHAIN, the first cell block CBLOCK may not include the ID of the previous cell block (P_CBLOCK_ID).
셀 블록(CBLOCK)에 포함되는 이전 셀 블록의 ID(P_CBLOCK_ID)는 직전의 셀 블록(CBLOCK)을 가리키므로, 셀 블록체인(CBCHAIN)에 포함되는 복수의 셀 블록들(CBLOCK)은 이전 셀 블록의 ID(P_CBLOCK_ID)를 통해 체인 형태로 연결될 수 있다.Since the ID (P_CBLOCK_ID) of the previous cell block included in the cell block (CBLOCK) refers to the previous cell block (CBLOCK), a plurality of cell blocks (CBLOCK) included in the cell block chain (CBCHAIN) is the previous cell block. It can be connected in the form of a chain through the ID (P_CBLOCK_ID) of.
제1 미들웨어 노드(210-1)는 상기 제2 합의 알고리즘을 통해 현재 셀 블록(C_CBLOCK)에 대한 합의가 성공하여 현재 셀 블록(C_CBLOCK)을 확정하는 경우, 도 7에 도시된 바와 같이, 셀 블록체인(CBCHAIN)의 마지막 셀 블록(CBLOCK)에 현재 셀 블록(C_CBLOCK)을 추가로 연결하고, 현재 셀 블록(C_CBLOCK)의 ID(C_CBLOCK_ID)를 셀 블록체인(CBCHAIN)의 헤드로 갱신할 수 있다.When the first middleware node 210-1 determines the current cell block (C_CBLOCK) by successfully consensus on the current cell block (C_CBLOCK) through the second consensus algorithm, as shown in FIG. The current cell block (C_CBLOCK) is additionally connected to the last cell block (CBLOCK) of the chain (CBCHAIN), and the ID (C_CBLOCK_ID) of the current cell block (C_CBLOCK) can be updated with the head of the cell block chain (CBCHAIN).
일 실시예에 있어서, 제1 미들웨어 노드(210-1)는 현재 셀 블록(C_CBLOCK)을 확정하는 경우, 현재 셀 블록(C_CBLOCK)을 내부에 포함되는 웜 스토리지(211)에 저장할 수 있다.In an embodiment, when determining the current cell block C_CBLOCK, the first middleware node 210-1 may store the current cell block C_CBLOCK in the
한편, 제1 미들웨어 노드(210-1)는 주기적으로 또는 비주기적으로 셀 블록체인(CBCHAIN)에 연결된 복수의 셀 블록들(CBLOCK)에 포함되는 단위 트랜잭션(UNIT_TX)들 중에서 메인넷(300)의 메인 블록체인(320)에 저장되지 않은 단위 트랜잭션(UNIT_TX)들을 메인넷(300)에 포함되는 복수의 메인넷 노드들(310) 중의 적어도 일부에 전송할 수 있다.Meanwhile, the first middleware node 210-1 periodically or aperiodically of the
일 실시예에 있어서, 제1 미들웨어 노드(210-1)는 메인넷(300)의 메인넷 노드(310)로서 동작할 수 있다. 이 경우, 제1 미들웨어 노드(210-1)는 셀 블록체인(CBCHAIN)에 연결된 복수의 셀 블록들(CBLOCK)에 포함되는 단위 트랜잭션(UNIT_TX)들 중에서 메인넷(300)의 메인 블록체인(320)에 저장되지 않은 단위 트랜잭션(UNIT_TX)들을 브로드캐스팅(broadcasting) 방식으로 복수의 메인넷 노드들(310) 중의 적어도 일부에 전송할 수 있다.In an embodiment, the first middleware node 210-1 may operate as the
복수의 메인넷 노드들(310)은 제1 미들웨어 노드(210-1)로부터 수신되는 단위 트랜잭션(UNIT_TX)들을 메인 블록체인(320)에 저장할 수 있다.The plurality of
예를 들어, 복수의 메인넷 노드들(310)은 일정 시간 동안 제1 미들웨어 노드(210-1)로부터 수신되는 단위 트랜잭션(UNIT_TX)들을 포함하는 블록을 생성하고, 상기 생성된 블록에 대해 복수의 메인넷 노드들(310) 사이의 합의를 거친 후, 상기 합의에 성공한 경우 상기 생성된 블록을 메인 블록체인(320)의 끝단에 추가함으로써 단위 트랜잭션(UNIT_TX)들은 메인 블록체인(320)에 저장될 수 있다.For example, the plurality of
한편, 제1 미들웨어 노드(210-1)가 복수의 메인넷 노드들(310)에 전송한 단위 트랜잭션(UNIT_TX)들이 메인 블록체인(320)에 저장 완료되는 경우, 제1 미들웨어 노드(210-1)는 메인 블록체인(320)에 저장 완료된 단위 트랜잭션(UNIT_TX)들 각각에 상응하는 저장 완료 신호를 서비스 제공 서버(110)에 전송할 수 있다.Meanwhile, when unit transactions (UNIT_TX) transmitted by the first middleware node 210-1 to the plurality of
서비스 제공 서버(110)는 제1 미들웨어 노드(210-1)로부터 상기 저장 완료 신호를 수신하는 경우, 상기 저장 완료 신호에 상응하는 단위 트랜잭션(UNIT_TX)에 포함되는 원본 거래 데이터(OTD)가 메인 블록체인(320)에 안전하게 저장되었음을 확인할 수 있다.When the
일 실시예에 있어서, 마스터 노드(220)는 복수의 미들웨어 노드들(210) 각각의 웜 스토리지(211)에 저장된 데이터들을 주기적으로 백업하여 내부에 포함되는 웜 스토리지(211)에 저장할 수 있다.In an embodiment, the
예를 들어, 마스터 노드(220)는 복수의 미들웨어 노드들(210) 각각의 웜 스토리지(211)에 저장된 원본 거래 데이터(OTD)들, 단위 트랜잭션(UNIT_TX)들, 및 셀 블록체인(CBCHAIN)을 주기적으로 백업하여 내부에 포함되는 웜 스토리지(211)에 저장할 수 있다.For example, the
상술한 바와 같이, 웜 스토리지(211)는 데이터가 한번 기입되면 상기 기입된 데이터에 대해 독출 동작만 가능하고 상기 기입된 데이터에 대한 변경이나 삭제는 불가능한 데이터 저장 장치를 나타낸다. 따라서 메인넷(300)에 대해 해킹 공격이 발생하여 메인 블록체인(320)이 손상되는 경우에도 원본 거래 데이터(OTD)들, 단위 트랜잭션(UNIT_TX)들, 및 셀 블록체인(CBCHAIN)은 복수의 미들웨어 노드들(210) 및 마스터 노드(220)의 웜 스토리지(211)에 안전하게 보관되어 있으므로, 본 발명의 실시예들에 따른 블록체인 네트워크(10)의 보안성은 더욱 향상될 수 있다.As described above, the
도 1 내지 7을 참조하여 상술한 바와 같이, 레거시 시스템(100)에 포함되는 서비스 제공 서버(110)는 메인넷(300)과 직접 데이터 통신을 수행하기 위한 블록체인 관련 모듈은 포함하고 있지 않으며, 미들웨어 시스템(200)과 데이터 통신을 수행하기 위한 상기 오픈 API를 사용하여 미들웨어 시스템(200)을 통해 원본 거래 데이터(OTD)를 메인넷(300)의 메인 블록체인(320)에 저장할 수 있다.As described above with reference to FIGS. 1 to 7, the
따라서 본 발명의 실시예들에 따른 블록체인 네트워크(10)는 서비스 제공 서버(110)에 대한 큰 변경 없이 서비스 제공 서버(110)로부터 생성되는 원본 거래 데이터(OTD)를 메인넷(300)의 메인 블록체인(320)에 안전하게 저장할 수 있다.Therefore, the
또한, 미들웨어 시스템(200)은 서비스 제공 서버(110)로부터 수신되는 원본 거래 데이터(OTD)의 유효성에 대해 검증하고, 상기 검증에 성공한 경우 원본 거래 데이터(OTD)를 메인넷(300)의 메인 블록체인(320)에 저장하기 이전에 서비스 제공 서버(110)에 승인 신호(C_S)를 먼저 전송한다. 이후, 미들웨어 시스템(200)은 검증에 성공한 원본 거래 데이터(OTD)를 디지털 가원장에 상응하는 셀 블록체인(CBCHAIN)에 저장하고, 셀 블록체인(CBCHAIN)에 저장된 원본 거래 데이터(OTD)들을 메인넷(300)의 메인 블록체인(320)에 저장한다.In addition, the
따라서 서비스 제공 서버(110)는 원본 거래 데이터(OTD)를 미들웨어 시스템(200)에 전송한 후, 원본 거래 데이터(OTD)가 메인넷(300)의 메인 블록체인(320)에 저장 완료될 때까지 대기할 필요 없이, 미들웨어 시스템(200)으로부터 원본 거래 데이터(OTD)에 대한 승인 신호(C_S)를 수신하는 즉시 원본 거래 데이터(OTD)에 상응하는 거래 계약의 체결이 승인된 것으로 판단하고, 상기 거래 계약에 기초하여 다음 거래 계약의 체결을 진행할 수 있다.Therefore, the
따라서 본 발명의 실시예들에 따른 블록체인 네트워크(10)는 서비스 제공 서버(110)의 거래 계약 체결 속도를 저하시키지 않으면서도 서비스 제공 서버(110)로부터 생성되는 원본 거래 데이터(OTD)를 메인넷(300)의 메인 블록체인(320)에 안전하게 저장할 수 있다.Therefore, the
본 발명은 기존의 레거시(legacy) 시스템에서 거래 계약 체결 속도를 저하시키지 않으면서도 거래 계약 데이터를 블록체인에 안전하게 저장하는 데에 유용하게 이용될 수 있다.The present invention can be usefully used to safely store transaction contract data in a blockchain without slowing down the transaction contract execution speed in an existing legacy system.
상술한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.As described above, the present invention has been described with reference to preferred embodiments of the present invention, but those of ordinary skill in the relevant technical field may vary the present invention within the scope not departing from the spirit and scope of the present invention described in the following claims You will understand that it can be modified and changed.
10: 블록체인 네트워크 100: 레거시 시스템
110: 서비스 제공 서버 120: 사용자 단말기
200: 미들웨어 시스템 210: 미들웨어 노드
211: 웜 스토리지 220: 마스터 노드
300: 메인넷 310: 메인넷 노드
320: 메인 블록체인10: Blockchain Network 100: Legacy System
110: service providing server 120: user terminal
200: middleware system 210: middleware node
211: warm storage 220: master node
300: mainnet 310: mainnet node
320: main blockchain
Claims (19)
복수의 미들웨어 노드들을 포함하고, 상기 서비스 제공 서버로부터 수신되는 원본 거래 데이터에 대해 상기 서비스 제공 서버와 제1 합의 알고리즘을 수행하여 상기 원본 거래 데이터의 유효성을 검증하고, 상기 검증에 성공한 경우 상기 원본 거래 데이터를 포함하는 단위 트랜잭션을 생성 및 승인하고 상기 서비스 제공 서버에 상기 원본 거래 데이터가 승인되었음을 나타내는 승인 신호를 전송하고, 기준 시간 동안 상기 제1 합의 알고리즘을 통해 승인되는 상기 단위 트랜잭션들을 포함하는 현재 셀 블록을 생성하고, 상기 현재 셀 블록에 대해 내부적으로 제2 합의 알고리즘을 수행하여 상기 현재 셀 블록을 확정하고 상기 확정된 현재 셀 블록을 복수의 셀 블록들이 연결된 셀 블록체인의 끝단에 추가하는 미들웨어(middleware) 시스템; 및
복수의 메인넷 노드들을 포함하고, 상기 미들웨어 시스템으로부터 수신되는 상기 단위 트랜잭션을 상기 복수의 메인넷 노드들 사이에 공유되는 메인 블록체인에 저장하는 메인넷(Main Net)을 포함하는 블록체인 네트워크.A legacy system including a service providing server and a plurality of user terminals connected to the service providing server to receive a service;
Includes a plurality of middleware nodes, and performs a first agreement algorithm with the service providing server on the original transaction data received from the service providing server to verify the validity of the original transaction data, and if the verification is successful, the original transaction A current cell including the unit transactions that generate and approve unit transactions including data, transmit an approval signal indicating that the original transaction data has been approved to the service providing server, and are approved through the first consensus algorithm for a reference time Middleware that creates a block, determines the current cell block by internally performing a second consensus algorithm on the current cell block, and adds the determined current cell block to the end of the cell block chain to which a plurality of cell blocks are connected ( middleware) system; And
A blockchain network comprising a main net that includes a plurality of mainnet nodes, and stores the unit transaction received from the middleware system in a main blockchain shared among the plurality of mainnet nodes.
상기 서비스 제공 서버는 상기 원본 거래 데이터 및 상기 원본 거래 데이터에 대한 해시값을 포함하는 제1 확인 메시지를 상기 제1 미들웨어 노드에 전송하고,
상기 제1 미들웨어 노드는 상기 제1 확인 메시지에 응답하여, 상기 제1 확인 메시지에 포함되는 상기 해시값을 사용하여 상기 제1 확인 메시지에 포함되는 상기 원본 거래 데이터의 유효성을 1차 검증하고, 상기 1차 검증에 성공하는 경우, 상기 원본 거래 데이터 및 상기 해시값을 포함하는 상기 단위 트랜잭션을 생성하고, 상기 단위 트랜잭션을 나타내는 단위 트랜잭션 ID를 포함하는 제2 확인 메시지를 상기 서비스 제공 서버에 전송하고,
상기 서비스 제공 서버는 상기 제2 확인 메시지에 응답하여, 상기 해시값 및 상기 제2 확인 메시지에 포함되는 상기 단위 트랜잭션 ID를 포함하는 제3 확인 메시지를 상기 제1 미들웨어 노드에 전송하고,
상기 제1 미들웨어 노드는 상기 제3 확인 메시지에 응답하여, 상기 제3 확인 메시지에 포함되는 상기 해시값을 사용하여 상기 제3 확인 메시지에 포함되는 상기 단위 트랜잭션 ID에 상응하는 상기 단위 트랜잭션에 포함되는 상기 원본 거래 데이터의 유효성을 2차 검증하는 블록체인 네트워크.The method of claim 5, wherein when the service providing server and the first middleware node perform the first consensus algorithm,
The service providing server transmits a first confirmation message including the original transaction data and a hash value for the original transaction data to the first middleware node,
In response to the first confirmation message, the first middleware node first verifies the validity of the original transaction data included in the first confirmation message using the hash value included in the first confirmation message, and the When the first verification is successful, the unit transaction including the original transaction data and the hash value is generated, and a second confirmation message including a unit transaction ID indicating the unit transaction is transmitted to the service providing server,
The service providing server transmits a third confirmation message including the hash value and the unit transaction ID included in the second confirmation message to the first middleware node in response to the second confirmation message,
In response to the third confirmation message, the first middleware node is included in the unit transaction corresponding to the unit transaction ID included in the third confirmation message by using the hash value included in the third confirmation message. Blockchain network to verify the validity of the original transaction data.
상기 1차 검증에 실패하는 경우, 상기 서비스 제공 서버에 상기 원본 거래 데이터가 불승인되었음을 나타내는 실패 신호를 전송하고 상기 제1 합의 알고리즘의 수행을 중단하고,
상기 2차 검증에 실패하는 경우, 상기 단위 트랜잭션을 폐기하고 상기 서비스 제공 서버에 상기 실패 신호를 전송하고,
상기 2차 검증에 성공하는 경우, 상기 단위 트랜잭션을 승인하고 상기 서비스 제공 서버에 상기 승인 신호를 전송하는 블록체인 네트워크.The method of claim 8, wherein the first middleware node,
When the first verification fails, a failure signal indicating that the original transaction data has been disapproved is transmitted to the service providing server and execution of the first consensus algorithm is stopped,
If the second verification fails, discarding the unit transaction and transmitting the failure signal to the service providing server,
When the second verification is successful, the blockchain network approves the unit transaction and transmits the approval signal to the service providing server.
상기 제1 미들웨어 노드와 상기 나머지 미들웨어 노드들이 상기 제2 합의 알고리즘을 수행하는 경우,
상기 제1 미들웨어 노드는 상기 현재 셀 블록을 상기 나머지 미들웨어 노드들에 전송하고,
상기 나머지 미들웨어 노드들 각각은 상기 현재 셀 블록에 포함되는 상기 현재 머클 트리의 유효성을 검증하여 검증 성공 신호 및 검증 실패 신호 중의 하나를 상기 제1 미들웨어 노드에 전송하고,
상기 제1 미들웨어 노드는 상기 나머지 미들웨어 노드들 중에서 문턱 비율보다 높은 비율에 상응하는 개수의 미들웨어 노드들로부터 상기 검증 성공 신호를 수신하는 경우, 상기 현재 셀 블록을 확정하고, 상기 셀 블록체인의 마지막 셀 블록에 상기 확정된 현재 셀 블록을 연결하고, 상기 현재 셀 블록의 ID를 상기 셀 블록체인의 헤드로 갱신하는 블록체인 네트워크.The method of claim 11, wherein the second consensus algorithm is performed between the first middleware node and other middleware nodes other than the first middleware node among the plurality of middleware nodes,
When the first middleware node and the remaining middleware nodes perform the second consensus algorithm,
The first middleware node transmits the current cell block to the remaining middleware nodes,
Each of the remaining middleware nodes verifies the validity of the current Merkle tree included in the current cell block and transmits one of a verification success signal and a verification failure signal to the first middleware node,
When the first middleware node receives the verification success signal from the number of middleware nodes corresponding to a ratio higher than the threshold ratio among the remaining middleware nodes, the first middleware node determines the current cell block and determines the last cell of the cell block chain. A blockchain network that connects the determined current cell block to a block and updates the ID of the current cell block to the head of the cell block chain.
상기 메인넷은 상기 제1 미들웨어 노드로부터 수신되는 상기 단위 트랜잭션들을 상기 메인 블록체인에 저장하고,
상기 제1 미들웨어 노드는 상기 메인 블록체인에 저장 완료된 상기 단위 트랜잭션들 각각에 상응하는 저장 완료 신호를 상기 서비스 제공 서버에 전송하는 블록체인 네트워크.The method of claim 12, wherein the first middleware node transmits unit transactions not stored in the main blockchain among the unit transactions included in the plurality of cell blocks connected to the cell blockchain to the mainnet, ,
The mainnet stores the unit transactions received from the first middleware node in the main blockchain,
The first middleware node transmits a storage completion signal corresponding to each of the unit transactions stored in the main blockchain to the service providing server.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190113467A KR102150210B1 (en) | 2019-09-16 | 2019-09-16 | Blockchain network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190113467A KR102150210B1 (en) | 2019-09-16 | 2019-09-16 | Blockchain network |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102150210B1 true KR102150210B1 (en) | 2020-09-01 |
Family
ID=72450863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190113467A KR102150210B1 (en) | 2019-09-16 | 2019-09-16 | Blockchain network |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102150210B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102390060B1 (en) * | 2020-12-21 | 2022-04-22 | 계명대학교 산학협력단 | Method and apparatus for providing lightweight blockchain for urgent data transmission |
KR20220150728A (en) * | 2021-05-04 | 2022-11-11 | 계명대학교 산학협력단 | Method and apparatus for providing lightweight blockchain using external strorage and pbft consensus algorithm |
WO2022240027A1 (en) * | 2021-05-10 | 2022-11-17 | 주식회사 시티랩스 | User authentication system for integrating plurality of blockchains and performing user authentication with one middle block |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180014534A (en) * | 2016-08-01 | 2018-02-09 | 서강대학교산학협력단 | Verification system and method for transaction based block chain |
KR20180102269A (en) * | 2017-03-07 | 2018-09-17 | 서강대학교산학협력단 | System and method for supporting external interface based on block chain |
US20180276668A1 (en) * | 2017-03-24 | 2018-09-27 | Alibaba Group Holding Limited | Method and apparatus for consensus verification |
KR20180113140A (en) * | 2017-04-05 | 2018-10-15 | 삼성에스디에스 주식회사 | System for processing data based on blockchain and Operating method thereof |
KR101924026B1 (en) * | 2017-11-10 | 2018-11-30 | 부산대학교 산학협력단 | System and method for blockchain using hash-based signature scheme |
KR20190093012A (en) * | 2018-01-31 | 2019-08-08 | 지송학 | The method for block generation and validation in block-chain system |
KR20190097623A (en) * | 2018-02-12 | 2019-08-21 | 박성배 | Node device, operation method baed on block chain and system for processing data |
-
2019
- 2019-09-16 KR KR1020190113467A patent/KR102150210B1/en active IP Right Grant
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180014534A (en) * | 2016-08-01 | 2018-02-09 | 서강대학교산학협력단 | Verification system and method for transaction based block chain |
KR20180102269A (en) * | 2017-03-07 | 2018-09-17 | 서강대학교산학협력단 | System and method for supporting external interface based on block chain |
US20180276668A1 (en) * | 2017-03-24 | 2018-09-27 | Alibaba Group Holding Limited | Method and apparatus for consensus verification |
KR20180113140A (en) * | 2017-04-05 | 2018-10-15 | 삼성에스디에스 주식회사 | System for processing data based on blockchain and Operating method thereof |
KR101924026B1 (en) * | 2017-11-10 | 2018-11-30 | 부산대학교 산학협력단 | System and method for blockchain using hash-based signature scheme |
KR20190093012A (en) * | 2018-01-31 | 2019-08-08 | 지송학 | The method for block generation and validation in block-chain system |
KR20190097623A (en) * | 2018-02-12 | 2019-08-21 | 박성배 | Node device, operation method baed on block chain and system for processing data |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102390060B1 (en) * | 2020-12-21 | 2022-04-22 | 계명대학교 산학협력단 | Method and apparatus for providing lightweight blockchain for urgent data transmission |
KR20220150728A (en) * | 2021-05-04 | 2022-11-11 | 계명대학교 산학협력단 | Method and apparatus for providing lightweight blockchain using external strorage and pbft consensus algorithm |
KR102650336B1 (en) | 2021-05-04 | 2024-03-22 | 계명대학교 산학협력단 | Method and apparatus for providing lightweight blockchain using external strorage and pbft consensus algorithm |
WO2022240027A1 (en) * | 2021-05-10 | 2022-11-17 | 주식회사 시티랩스 | User authentication system for integrating plurality of blockchains and performing user authentication with one middle block |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102057570B1 (en) | Blockchain network | |
AU2018348335B2 (en) | Performing a recovery process for a network node in a distributed system | |
KR102150210B1 (en) | Blockchain network | |
AU2018348334C1 (en) | Achieving consensus among network nodes in a distributed system | |
US20220173888A1 (en) | Blockchain consensus methods and systems | |
AU2018348336B2 (en) | Performing a change of primary node in a distributed system | |
CN106815722B (en) | Information processing method and device based on block chain | |
CN107888562B (en) | Data verification and transceiving method, node and system for parallel link access to interconnection chain | |
CN107171810B (en) | Verification method and device of block chain | |
CN107276765B (en) | Processing method and device for consensus in block chain | |
CN106452785B (en) | Block chain network, branch node and block chain network application method | |
CN107480990A (en) | Block chain bookkeeping methods and device | |
CN107493162A (en) | The implementation method and device of block chain node | |
CN110351133A (en) | Method and device for the host node hand-off process in block catenary system | |
CN112219371A (en) | Bidirectional block chain | |
KR102179160B1 (en) | System and method to prove message for communication between blockchains | |
KR102152537B1 (en) | Blockchain network for internet of things device | |
Le et al. | A lightweight block validation method for resource-constrained iot devices in blockchain-based applications | |
Xu et al. | MWPoW: Multiple Winners Proof of Work Protocol, a Decentralisation Strengthened Fast‐Confirm Blockchain Protocol | |
CN109993526B (en) | Block chain checking method, processing node and storage medium | |
KR102518634B1 (en) | Blockchain consensus system and method to improve transaction processing speed | |
JP2020150428A (en) | Block chain transaction creation protocol and block chain address creation method | |
Ozisik et al. | A secure, efficient, and transparent network architecture for bitcoin | |
KR20210134408A (en) | mining equipment | |
KR102534411B1 (en) | Blockchain consensus system and method considering network scalability |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |