KR102288161B1 - Blockchain system for distributed processing transaction asynchronously - Google Patents

Blockchain system for distributed processing transaction asynchronously Download PDF

Info

Publication number
KR102288161B1
KR102288161B1 KR1020200094766A KR20200094766A KR102288161B1 KR 102288161 B1 KR102288161 B1 KR 102288161B1 KR 1020200094766 A KR1020200094766 A KR 1020200094766A KR 20200094766 A KR20200094766 A KR 20200094766A KR 102288161 B1 KR102288161 B1 KR 102288161B1
Authority
KR
South Korea
Prior art keywords
transaction
block chain
container
unit
processing
Prior art date
Application number
KR1020200094766A
Other languages
Korean (ko)
Inventor
이현석
Original Assignee
이현석
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이현석 filed Critical 이현석
Priority to KR1020200094766A priority Critical patent/KR102288161B1/en
Application granted granted Critical
Publication of KR102288161B1 publication Critical patent/KR102288161B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • G06F9/3871Asynchronous instruction pipeline, e.g. using handshake signals between stages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

Disclosed is a blockchain system that distributes and processes a transaction asynchronously. The present invention reliably processes the transaction by using a blockchain technology and a container technology that processes the transaction asynchronously. According to the present invention, the transaction is processed asynchronously and a transaction processing time is significantly reduced by processing distribution with a container, thereby allowing a transaction processing capacity to increase proportionally.

Description

트랜잭션을 비동기로 분산 처리하는 블록체인 시스템{Blockchain system for distributed processing transaction asynchronously}Blockchain system for distributed processing transaction asynchronously

본 발명은 트랜잭션을 비동기로 분산 처리하는 블록체인 시스템에 관한 것으로, 더욱 상세하게는 비동기로 트랜잭션을 처리하는 블록체인 기술과 컨테이너 기술을 이용하여 신뢰성있게 트랜잭션을 처리하는 시스템에 관한 것이다.The present invention relates to a blockchain system for asynchronously distributed processing of transactions, and more particularly, to a system for reliably processing transactions using blockchain technology and container technology for processing transactions asynchronously.

클라우드 기술, 블록체인 기술 등이 등장하면서 분산된 구조의 시스템이 일반화되고 있다. 하지만, 정통적으로 트랜잭션을 처리하는 시스템은 신뢰성을 보장하기 위해 중앙 집중형 시스템으로 구성되고 있다. 최근 블록체인 기술이 등장하면서 트랜잭션 처리를 분산형 시스템으로 처리하면서도 트랜잭션 처리의 신뢰도를 보장할 수 있게 되었다. 하지만, 블록체인 기술도 트랜잭션 처리에서 가장 중요한 처리 시간이 오래 걸리고 그것으로 인하여 처리량도 낮아지는 기술적인 한계를 가지고 있다.With the advent of cloud technology and blockchain technology, systems with a distributed structure are becoming common. However, orthodox transaction processing systems are configured as centralized systems to ensure reliability. With the recent advent of blockchain technology, it has become possible to guarantee the reliability of transaction processing while processing transaction processing as a distributed system. However, blockchain technology also has a technical limitation in that it takes a long time to process, which is the most important in transaction processing, and thus the throughput is also lowered.

도 1은 종래의 트랜잭션 처리 시스템의 동작 과정을 설명하기 위한 도면이다.1 is a diagram for explaining an operation process of a conventional transaction processing system.

블록체인은 분산된 노드(node)에 스마트 컨트랙이 실행되고 실행된 결과는 합의의 알고리즘에 의해서 합의가 이루어지고, 합의된 결과는 새로운 블록에 저장되고, 새로운 블록은 이전에 생성된 블록과 체인 형태로 연결된다. 블록체인의 메케니즘을 볼 때 도 1에 도시된 바와 같이, 결국 스마트 컨트랙이 blocking과 같은 대기로 인해서 시간이 많이 걸리면, 블록의 생성이 지연되면서 처리 시간이 증가하고, 순차적으로 블록이 연결되는 구조로 인하여 처리량이 급감할 수 밖에 없다. 또한, 컴퓨팅을 많이 소모하는 스마트 컨트랙이 실행되면, 블록체인 노드의 리소스가 부족하여 스마트 컨트랙의 처리 시간이 증가하고, 블록 생성 시간이 늘어나 처리량이 떨어지게 된다. 아울러, 트랜잭션 처리 시 트랜잭션 처리 요청과 그 응답을 대기하는 과정에서 blocking이 발생할 수 밖에 없다. 이런 대기시간 만큼 블록 생성이 늦어지면, 그만큼 트랜잭션 처리량이 급감하는 문제가 발생하게 된다.In a blockchain, smart contracts are executed on distributed nodes, and the execution results are agreed upon by the consensus algorithm, and the consensus results are stored in a new block, and the new block is transferred to the previously created block and chain. connected in the form When looking at the mechanism of the block chain, as shown in Figure 1, eventually, if the smart contract takes a lot of time due to waiting such as blocking, the block generation is delayed, the processing time increases, and the blocks are sequentially connected. Due to the structure, the throughput is inevitably reduced. In addition, when a smart contract that consumes a lot of computing is executed, the processing time of the smart contract increases due to insufficient resources of the blockchain node, and the processing time decreases as the block generation time increases. In addition, blocking inevitably occurs in the process of waiting for a transaction processing request and its response during transaction processing. If block generation is delayed by this waiting time, the problem of a sharp drop in transaction throughput occurs.

한국공개특허 제2019-0082046호 (주식회사 코인플러그) 2019. 7. 9. 특허문헌 1은 블록체인 기반의 결제 방법 및 이를 이용한 지급 결제 서버로서, 특허문헌 1에는 서비스 제공 단말로부터 사용자 단말의 구매 및 지불 정보에 대응하는 결제 요청 정보가 획득되면, 결제 요청 정보에 포함된 사용자 식별 정보에 대응하는 푸시 토큰 아이디를 블록체인으로부터 획득하고, 푸시 토큰 아이디와 서명 요청 정보를 사용자 단말로 전송하며, 사용자 단말의 펀드 소스 앱에 의해 전자 서명된 서명값이 획득되면, 서명값을 검증하여 유효일 경우, 결제 수단 토큰 아이디에 대응하는 결제 수단의 지불에 대한 검증을 하여 유효한 것으로 확인되면, 결제 요청 정보에 대응하는 승인 결과 정보를 블록체인에 등록하며, 승인 결과 정보를 결제 수단에 대응되는 펀드 소스 식별 아이디에 해당하는 펀드 소스 서버로 전송하는 내용이 개시되어 있다.Korea Patent Publication No. 2019-0082046 (Coinplug Co., Ltd.) 2019. 7. 9. Patent Document 1 is a blockchain-based payment method and a payment and settlement server using the same. When payment request information corresponding to payment information is obtained, a push token ID corresponding to the user identification information included in the payment request information is obtained from the block chain, and the push token ID and signature request information are transmitted to the user terminal, and the user terminal When the digitally signed signature value is obtained by the fund source app of The content of registering approval result information in a block chain and transmitting the approval result information to a fund source server corresponding to a fund source identification ID corresponding to a payment method is disclosed.

본 발명이 이루고자 하는 기술적 과제는, 비동기로 트랜잭션을 처리하는 블록체인 기술과 컨테이너 기술을 이용하여 신뢰성있게 트랜잭션을 처리하는 트랜잭션을 비동기로 분산 처리하는 블록체인 시스템을 제공하는 데 있다.The technical problem to be achieved by the present invention is to provide a blockchain system that asynchronously distributes and processes a transaction that reliably processes a transaction using a block chain technology that processes a transaction asynchronously and a container technology.

상기의 기술적 과제를 달성하기 위한 본 발명에 따른 트랜잭션을 비동기로 분산 처리하는 블록체인 시스템은, 블록체인 기술을 기반으로 스마트 컨트랙을 등록 및 실행시키고, 스마트 컨트랙으로 블록체인에 자산을 등록 및 관리하는 블록체인부; 스마트 컨트랙 및 트랜잭션에 대한 정보를 저장하는 블록체인 저장부; 및 블록체인에 새로운 블록이 생성되면, 처리하여야 하는 트랜잭션을 추출하고, 추출된 트랜잭션의 종류가 트랜잭션 처리 요청 또는 트랜잭션 처리 취소이면 추출된 트랜잭션을 컨테이너 실행부에 전달하고, 추출된 트랜잭션의 종류가 트랜잭션 처리 접수 또는 트랜잭션 처리 결과이면 추출된 트랜잭션을 트랜잭션 요청부에 전달하는 블록체인 스캔부;를 포함하는 블록체인 노드; 클라이언트로부터 전달받은 트랜잭션을 상기 블록체인부에 전달하여 처리 요청을 하는 상기 트랜잭션 요청부; 상기 블록체인 스캔부로부터 전달받은 트랜잭션을 처리할 컨테이너 모듈을 선택하고, 선택된 상기 컨테이너 모듈이 회신하는 인증 데이터와 함께 상기 블록체인부를 통해 트랜잭션 처리 접수를 상기 블록체인 저장부에 저장하며, 선택된 상기 컨테이너 모듈로부터 처리 회신을 받으면 상기 블록체인부를 통해 트랜잭션 처리 결과를 상기 블록체인 저장부에 저장하는 상기 컨테이너 실행부; 및 상기 컨테이너 실행부로부터 전달받은 트랜잭션이 처리할 수 있는 트랜잭션인지 여부를 인증하고 인증 데이터를 상기 컨테이너 실행부로 제공하고, 인증에 성공하면 트랜잭션을 트랜잭션 처리모듈로 전달하는 트랜잭션 인증모듈; 및 상기 트랜잭션 인증모듈로부터 전달받은 트랜잭션을 처리하고 그 결과를 상기 컨테이너 실행부에 전달하는 상기 트랜잭션 처리모듈;을 포함하는 상기 컨테이너 모듈;을 포함한다.A blockchain system that asynchronously distributes and processes transactions according to the present invention to achieve the above technical problem, registers and executes smart contracts based on blockchain technology, registers assets in the blockchain with smart contracts, and Blockchain unit to manage; a block chain storage unit that stores information about smart contracts and transactions; And when a new block is created in the blockchain, the transaction to be processed is extracted, and if the type of the extracted transaction is a transaction processing request or transaction processing cancellation, the extracted transaction is transferred to the container execution unit, and the type of the extracted transaction is the transaction A block chain node comprising; a block chain scan unit that transmits the extracted transaction to the transaction request unit if the processing is accepted or the result of the transaction processing; the transaction request unit that transmits the transaction received from the client to the block chain unit to request processing; Selects a container module to process the transaction received from the block chain scan unit, stores the transaction processing receipt through the block chain unit together with authentication data returned by the selected container module in the block chain storage unit, and the selected container the container execution unit for storing a transaction processing result in the block chain storage unit through the block chain unit when receiving a processing reply from the module; and a transaction authentication module that authenticates whether the transaction received from the container execution unit is a transaction that can be processed, provides authentication data to the container execution unit, and transmits the transaction to the transaction processing module if authentication is successful. and the container module including; and the transaction processing module that processes the transaction received from the transaction authentication module and transmits the result to the container execution unit.

트랜잭션을 처리하는 컨테이너를 상기 블록체인부를 통해 블록체인의 디지털 자산으로 등록하는 컨테이너 관리부;를 더 포함할 수 있다.It may further include; a container management unit that registers a container that processes a transaction as a digital asset of the block chain through the block chain unit.

상기 트랜잭션은, 트랜잭션을 구분할 수 있는 식별 정보인 트랜잭션 ID, 트랜잭션을 처리할 블록체인 노드의 ID와 트랜잭션 처리 접수나 트랜잭션 처리 결과를 전달할 블록체인 노드의 ID들로 이루어지는 블록체인 노드 ID 리스트, 트랜잭션을 처리할 컨테이너를 구분할 수 있는 식별 정보인 컨테이너 ID, 및 트랜잭션의 처리 요청이나 취소 요청을 접수할 수 있는 유효 시간인 트랜잭션 유효시간을 포함하며, 상기 트랜잭션의 종류가 상기 트랜잭션 처리 요청 또는 상기 트랜잭션 처리 취소이면, 상기 트랜잭션은, 트랜잭션 처리 데이터를 더 포함하고, 상기 트랜잭션의 종류가 상기 트랜잭션 처리 접수이면, 상기 트랜잭션은, 인증 데이터를 더 포함하며, 상기 트랜잭션의 종류가 상기 트랜잭션 처리 결과이면, 상기 트랜잭션은, 처리 결과를 더 포함할 수 있다.The transaction includes a transaction ID, which is identification information that can distinguish a transaction, an ID of a block chain node to process a transaction, a list of block chain node IDs including IDs of a block chain node to receive transaction processing or to transmit a transaction processing result, and a transaction. It includes a container ID, which is identification information for identifying a container to be processed, and a transaction validity time, which is an effective time for receiving a transaction processing request or cancellation request, wherein the type of the transaction is the transaction processing request or the transaction processing cancellation request. , the transaction further includes transaction processing data, if the type of the transaction is the transaction processing acceptance, the transaction further includes authentication data, and if the type of the transaction is the transaction processing result, the transaction is , the processing result may be further included.

상기 트랜잭션 요청부는, 분산된 블록체인 노드들 중에서 트랜잭션을 처리할 블록체인 노드를 지정하고, 클라이언트로부터 전달받은 트랜잭션을 상기 블록체인부에 전달할 때, 지정된 블록체인 노드에 대응되는 블록체인 노드 ID도 함께 전달할 수 있다.The transaction request unit designates a block chain node to process a transaction among distributed block chain nodes, and when transmitting the transaction received from the client to the block chain unit, the block chain node ID corresponding to the specified block chain node is also included. can transmit

상기 트랜잭션 요청부는, 분산된 블록체인 노드들 중에서 장애가 발생한 블록체인 노드를 제외하고, 남은 블록체인 노드들 중에서 트랜잭션을 처리할 블록체인 노드를 지정할 수 있다.The transaction request unit may designate a block chain node to process a transaction from among the remaining block chain nodes, except for a block chain node in which a failure occurs among distributed block chain nodes.

상기 트랜잭션 요청부는, 장애가 발생한 블록체인 노드에 대응되는 블록체인 노드 ID를 상기 블록체인 노드 ID 리스트에 추가하고, 장애가 발생한 블록체인 노드가 트랜잭션 처리 접수나 처리 결과를 정상적으로 회신하는지를 모니터링하여 장애가 발생한 블록체인 노드의 장애 복구 여부를 확인할 수 있다.The transaction request unit adds the block chain node ID corresponding to the failed block chain node to the block chain node ID list, and monitors whether the block chain node with the failure receives the transaction processing or returns normally to the failed block chain You can check whether the node has recovered from failure.

상기 블록체인 스캔부는, 트랜잭션을 처리할 컨테이너를 지정하기 위해, 추출된 트랜잭션을 상기 컨테이너 실행부에 전달할 때, 컨테이너 ID도 함께 전달하며, 상기 컨테이너 실행부는, 상기 블록체인 스캔부로부터 전달받은 컨테이너 ID에 대응되는 컨테이너를 상기 블록체인 스캔부로부터 전달받은 트랜잭션을 처리할 컨테이너 모듈로 선택할 수 있다.The block chain scan unit transmits the extracted transaction to the container execution unit as well as the container ID to designate a container to process the transaction, and the container execution unit transmits the container ID received from the block chain scanning unit A container corresponding to can be selected as a container module to process the transaction received from the block chain scan unit.

본 발명에 따른 트랜잭션을 비동기로 분산 처리하는 블록체인 시스템에 의하면, 트랜잭션을 비동기로 처리하고, 컨테이너로 분산 처리하여 트랜잭션 처리 시간이 대폭 감소되며, 이에 따라 트랜잭션 처리용량은 비례하여 급증한다.According to the blockchain system for asynchronously distributed processing of transactions according to the present invention, transaction processing time is greatly reduced by processing transactions asynchronously and distributed processing with containers, and thus transaction processing capacity increases proportionally.

도 1은 종래의 트랜잭션 처리 시스템의 동작 과정을 설명하기 위한 도면이다.
도 2는 본 발명의 바람직한 실시예에 따른 트랜잭션을 비동기로 분산 처리하는 블록체인 시스템을 설명하기 위한 블록도이다.
도 3은 본 발명의 바람직한 실시예에 따른 트랜잭션 처리 시스템의 동작 과정을 설명하기 위한 도면이다.
도 4는 본 발명의 바람직한 실시예에 따른 트랜잭션 데이터의 구조를 설명하기 위한 도면이다.
도 5는 도 2에 도시한 블록체인 스캔부의 동작 과정을 설명하기 위한 흐름도이다.
1 is a diagram for explaining an operation process of a conventional transaction processing system.
2 is a block diagram for explaining a blockchain system that asynchronously distributes and processes transactions according to a preferred embodiment of the present invention.
3 is a diagram for explaining an operation process of a transaction processing system according to a preferred embodiment of the present invention.
4 is a diagram for explaining the structure of transaction data according to a preferred embodiment of the present invention.
5 is a flowchart for explaining the operation process of the block chain scan unit shown in FIG.

이하에서 첨부한 도면을 참조하여 본 발명에 따른 트랜잭션을 비동기로 분산 처리하는 블록체인 시스템의 바람직한 실시예에 대해 상세하게 설명한다.Hereinafter, a preferred embodiment of a blockchain system for asynchronously distributed processing a transaction according to the present invention will be described in detail with reference to the accompanying drawings.

먼저, 도 2 내지 도 4을 참조하여 본 발명의 바람직한 실시예에 따른 트랜잭션을 비동기로 분산 처리하는 블록체인 시스템에 대하여 설명한다.First, a block chain system for asynchronously distributed processing a transaction according to a preferred embodiment of the present invention will be described with reference to FIGS. 2 to 4 .

도 2는 본 발명의 바람직한 실시예에 따른 트랜잭션을 비동기로 분산 처리하는 블록체인 시스템을 설명하기 위한 블록도이고, 도 3은 본 발명의 바람직한 실시예에 따른 트랜잭션 처리 시스템의 동작 과정을 설명하기 위한 도면이며, 도 4는 본 발명의 바람직한 실시예에 따른 트랜잭션 데이터의 구조를 설명하기 위한 도면이다.2 is a block diagram for explaining a block chain system for asynchronously distributed processing a transaction according to a preferred embodiment of the present invention, and FIG. 3 is a block diagram for explaining the operation process of the transaction processing system according to a preferred embodiment of the present invention 4 is a diagram for explaining the structure of transaction data according to a preferred embodiment of the present invention.

도 2 및 도 3을 참조하면, 본 발명의 바람직한 실시예에 따른 트랜잭션을 비동기로 분산 처리하는 블록체인 시스템(10)(이하 '블록체인 시스템'이라 한다)은 도 3에 도시된 바와 같이, 비동기로 트랜잭션을 처리하는 블록체인 기술과 컨테이너 기술을 이용하여 신뢰성있게 트랜잭션을 처리한다.2 and 3, a block chain system 10 (hereinafter referred to as a 'blockchain system') for asynchronously distributed processing a transaction according to a preferred embodiment of the present invention is asynchronous, as shown in FIG. It processes transactions reliably using blockchain technology and container technology that process transactions with

이를 위해, 블록체인 시스템(10)은 도 2에 도시된 바와 같이, 복수의 블록체인 노드(100), 트랜잭션 요청부(200), 컨테이너 관리부(300), 컨테이너 실행부(400), 및 복수의 컨테이너 모듈(500)을 포함할 수 있다.To this end, as shown in FIG. 2 , the blockchain system 10 includes a plurality of blockchain nodes 100 , a transaction request unit 200 , a container management unit 300 , a container execution unit 400 , and a plurality of It may include a container module 500 .

블록체인 노드(100)는 블록체인부(110), 블록체인 저장부(120), 및 블록체인 스캔부(130)를 포함할 수 있다.The block chain node 100 may include a block chain unit 110 , a block chain storage unit 120 , and a block chain scan unit 130 .

블록체인부(110)는 블록체인 기술을 기반으로 스마트 컨트랙을 등록 및 실행시키고, 스마트 컨트랙으로 블록체인에 자산을 등록 및 관리한다.The block chain unit 110 registers and executes a smart contract based on block chain technology, and registers and manages assets in the block chain with the smart contract.

블록체인 저장부(120)는 스마트 컨트랙, 디지털 자산, 트랜잭션 등에 대한 정보를 저장한다.The block chain storage unit 120 stores information about smart contracts, digital assets, transactions, and the like.

블록체인 스캔부(130)는 블록체인에 새로운 블록이 생성되면, 처리하여야 하는 트랜잭션을 추출한다. 그리고, 블록체인 스캔부(130)는 추출된 트랜잭션의 종류가 트랜잭션 처리 요청 또는 트랜잭션 처리 취소이면 추출된 트랜잭션을 컨테이너 실행부(400)에 전달하고, 추출된 트랜잭션의 종류가 트랜잭션 처리 접수 또는 트랜잭션 처리 결과이면 추출된 트랜잭션을 트랜잭션 요청부(200)에 전달한다.When a new block is created in the block chain, the block chain scan unit 130 extracts the transaction to be processed. And, if the type of the extracted transaction is a transaction processing request or transaction processing cancellation, the block chain scan unit 130 transmits the extracted transaction to the container execution unit 400, and the type of the extracted transaction is a transaction processing reception or transaction processing If it is a result, the extracted transaction is transmitted to the transaction request unit 200 .

여기서, 도 4를 참조하면, 트랜잭션은 트랜잭션 ID, 블록체인 노드 ID 리스트, 컨테이너 ID, 및 트랜잭션 유효시간을 포함할 수 있다. 트랜잭션 ID는 트랜잭션을 구분할 수 있는 식별 정보이다. 블록체인 노드 ID 리스트는 트랜잭션을 처리할 블록체인 노드의 ID와 트랜잭션 처리 접수나 트랜잭션 처리 결과를 전달할 블록체인 노드의 ID들로 이루어진다. 컨테이너 ID는 트랜잭션을 처리할 컨테이너를 구분할 수 있는 식별 정보이다. 트랜잭션 유효시간은 트랜잭션의 처리 요청이나 취소 요청을 접수할 수 있는 유효 시간이다.Here, referring to FIG. 4 , a transaction may include a transaction ID, a list of blockchain node IDs, a container ID, and a transaction validity time. A transaction ID is identification information that can distinguish a transaction. The blockchain node ID list consists of the ID of the blockchain node that will process the transaction and the ID of the blockchain node that will receive the transaction processing or transmit the transaction processing result. A container ID is identification information that can identify a container to process a transaction. The transaction validity time is the effective time for receiving a transaction processing request or cancellation request.

이때, 트랜잭션의 종류가 트랜잭션 처리 요청 또는 트랜잭션 처리 취소이면, 트랜잭션은 도 4의 (a)에 도시된 바와 같이, 트랜잭션 처리에 필요한 데이터인 트랜잭션 처리 데이터를 더 포함할 수 있다. 그리고, 트랜잭션의 종류가 트랜잭션 처리 접수이면, 트랜잭션은 도 4의 (b)에 도시된 바와 같이, 트랜잭션을 처리하는 컨테이너 모듈(500)의 트랜잭션 인증모듈(510)에서 인증 처리한 것을 검증할 수 있는 데이터인 인증 데이터를 더 포함할 수 있다. 그리고, 트랜잭션의 종류가 트랜잭션 처리 결과이면, 트랜잭션은 도 4의 (c)에 도시된 바와 같이, 처리 결과를 더 포함할 수 있다.In this case, if the type of transaction is a transaction processing request or transaction processing cancellation, the transaction may further include transaction processing data, which is data required for transaction processing, as shown in FIG. 4A . And, if the type of transaction is transaction processing acceptance, the transaction can verify that authentication processing has been performed by the transaction authentication module 510 of the container module 500 for processing the transaction, as shown in FIG. It may further include authentication data that is data. And, if the type of transaction is a transaction processing result, the transaction may further include a processing result as shown in FIG. 4C .

한편, 블록체인 스캔부(130)는 트랜잭션을 처리할 컨테이너를 지정하기 위해, 추출된 트랜잭션을 컨테이너 실행부(400)에 전달할 때, 컨테이너 ID도 함께 전달할 수 있다. 그러면, 컨테이너 실행부(400)는 블록체인 스캔부(130)로부터 전달받은 컨테이너 ID에 대응되는 컨테이너를 블록체인 스캔부(130)로부터 전달받은 트랜잭션을 처리할 컨테이너 모듈로 선택할 수 있다.Meanwhile, the block chain scan unit 130 may also transmit a container ID when transmitting the extracted transaction to the container execution unit 400 in order to designate a container to process a transaction. Then, the container execution unit 400 may select a container corresponding to the container ID received from the blockchain scanning unit 130 as a container module to process the transaction received from the blockchain scanning unit 130 .

트랜잭션 요청부(200)는 클라이언트(101)로부터 전달받은 트랜잭션을 블록체인부(110)에 전달하여 처리 요청을 한다.The transaction request unit 200 transmits the transaction received from the client 101 to the block chain unit 110 to request processing.

이때, 트랜잭션 요청부(200)는 분산된 블록체인 노드(100)들 중에서 트랜잭션을 처리할 블록체인 노드(100)를 지정하고, 클라이언트(101)로부터 전달받은 트랜잭션을 블록체인부(110)에 전달할 때, 지정된 블록체인 노드(100)에 대응되는 블록체인 노드 ID도 함께 전달할 수 있다.At this time, the transaction request unit 200 designates a block chain node 100 to process a transaction among the distributed block chain nodes 100 and transmits the transaction received from the client 101 to the block chain unit 110 . At this time, the blockchain node ID corresponding to the designated blockchain node 100 may also be delivered.

여기서, 트랜잭션 요청부(200)는 분산된 블록체인 노드(100)들 중에서 장애가 발생한 블록체인 노드(100)를 제외하고, 남은 블록체인 노드(100)들 중에서 트랜잭션을 처리할 블록체인 노드(100)를 지정할 수 있다.Here, the transaction request unit 200 is a block chain node 100 to process a transaction among the remaining block chain nodes 100, except for the block chain node 100 in which a failure occurs among the distributed block chain nodes 100. can be specified.

이 경우, 트랜잭션 요청부(200)는 장애가 발생한 블록체인 노드(100)에 대응되는 블록체인 노드 ID를 블록체인 노드 ID 리스트에 추가하고, 장애가 발생한 블록체인 노드(100)가 트랜잭션 처리 접수나 처리 결과를 정상적으로 회신하는지를 모니터링하여 장애가 발생한 블록체인 노드(100)의 장애 복구 여부를 확인할 수 있다.In this case, the transaction request unit 200 adds the block chain node ID corresponding to the block chain node 100 in which the failure occurs to the block chain node ID list, and the block chain node 100 in which the failure occurs receives the transaction processing or the processing result. It is possible to check whether the failure of the failed block chain node 100 is recovered by monitoring whether it normally replies.

즉, 트랜잭션 요청부(200)는 블록체인 노드(100)의 상태나 부하 분산 정책에 따라 트랜잭션을 처리할 블록체인 노드(100)의 ID와 트랜잭션 처리 접수/처리 결과를 회신할 블록체인 노드(100)의 ID 리스트를 선택하고, 요청할 트랜잭션 종류에 맞추어 트랜잭션을 처리할 컨테이너 ID도 선택하여 트랜잭션 데이터를 구성한다. 트랜잭션 요청부(200)에서 트랜잭션 데이터를 블록체인부(110)에 전달하면, 블록체인부(110)에서는 스마트 컨트랙이 실행되어, 블록체인 저장부(120)에 저장된다. 블록체인 저장부(120)에 저장된 트랜잭션 데이터는 전체 블록체인 노드(100)의 블록체인 저장부(120)에 전파된다.That is, the transaction request unit 200 returns the ID of the block chain node 100 to process the transaction according to the state of the block chain node 100 or the load balancing policy and the block chain node 100 to return the transaction processing reception/processing result. ) and configure transaction data by selecting the container ID to process the transaction according to the type of transaction to be requested. When the transaction request unit 200 transmits transaction data to the block chain unit 110 , the smart contract is executed in the block chain unit 110 and stored in the block chain storage unit 120 . The transaction data stored in the block chain storage unit 120 is propagated to the block chain storage unit 120 of the entire block chain node 100 .

아울러, 트랜잭션 요청부(200)는 트랜잭션 처리 요청/취소 요청의 트랜잭션 유효시간 안에 블록체인 스캔부(130)로부터 트랜잭션 처리 접수 회신이 오지 않으면, 선택한 블록체인 노드 ID를 트랜잭션 처리할 수 있는 블록체인 노드 ID 리스트에서 제외하고, 블록체인 노드가 비정상 상태로 모니터링이 필요한 장애 블록체인 노드 ID 리스트에 추가한다. 트랜잭션 요청부(200)는 트랜잭션 처리 접수/처리 결과를 회신할 블록체인 노드의 ID 리스트를 구성할 때 장애 블록체인 노드 ID를 포함하여 구성하여, 장애 블록체인 노드가 정상으로 복구되는지 모니터링한다. 장애 블록체인 노드로 부터 트랜잭션 처리 접수/처리 결과가 정상적으로 회신을 받으면, 트랜잭션 처리할 수 있는 블록체인 노드 ID 리스트에 추가한다.In addition, if the transaction request unit 200 does not receive a transaction processing reception reply from the blockchain scan unit 130 within the transaction validity time of the transaction processing request/cancellation request, the selected blockchain node ID can be transactionally processed. Exclude from the ID list, and add to the list of faulty blockchain node IDs that require monitoring as the blockchain node is abnormal. The transaction request unit 200 monitors whether the failed block chain node is restored to normal by including the failed block chain node ID when configuring the ID list of the block chain node to which the transaction processing reception/processing result will be returned. When the transaction processing reception/processing result is normally returned from the failed blockchain node, it is added to the list of blockchain node IDs that can be processed.

컨테이너 관리부(300)는 트랜잭션을 처리하는 컨테이너 모듈(500)을 블록체인부(110)를 통해 블록체인의 디지털 자산으로 등록하여, 컨테이너 모듈(500)의 생성, 변경, 수정 등에 대한 이력을 블록체인에 기록 및 관리할 수 있다.The container management unit 300 registers the container module 500 that processes the transaction as a digital asset of the block chain through the block chain unit 110, and records the history of creation, change, modification, etc. of the container module 500 in the block chain. can be recorded and managed.

컨테이너 실행부(400)는 블록체인 스캔부(130)로부터 전달받은 트랜잭션을 처리할 컨테이너 모듈(500)을 선택하고, 선택된 컨테이너 모듈(500)이 회신하는 인증 데이터와 함께 블록체인부(110)를 통해 트랜잭션 처리 접수를 블록체인 저장부(120)에 저장하며, 선택된 컨테이너 모듈(500)로부터 처리 회신을 받으면 블록체인부(110)를 통해 트랜잭션 처리 결과를 블록체인 저장부(120)에 저장한다.The container execution unit 400 selects the container module 500 to process the transaction received from the block chain scan unit 130, and transmits the block chain unit 110 together with the authentication data returned by the selected container module 500. The transaction processing reception is stored in the block chain storage unit 120 through the block chain storage unit 120 , and when a processing reply is received from the selected container module 500 , the transaction processing result is stored in the block chain storage unit 120 through the block chain unit 110 .

한편, 블록체인 스캔부(130)로부터 컨테이너 ID도 함께 전달이 되면, 컨테이너 실행부(400)는 블록체인 스캔부(130)로부터 전달받은 컨테이너 ID에 대응되는 컨테이너를 블록체인 스캔부(130)로부터 전달받은 트랜잭션을 처리할 컨테이너 모듈로 선택할 수 있다.On the other hand, when the container ID is also transmitted from the block chain scan unit 130 , the container execution unit 400 retrieves the container corresponding to the container ID received from the block chain scan unit 130 from the block chain scan unit 130 . You can select the received transaction as a container module to process.

컨테이너 모듈(500)은 트랜잭션 인증모듈(510), 및 트랜잭션 처리모듈(520)을 포함할 수 있다.The container module 500 may include a transaction authentication module 510 and a transaction processing module 520 .

트랜잭션 인증모듈(510)은 컨테이너 실행부(400)로부터 전달받은 트랜잭션이 처리할 수 있는 트랜잭션인지 여부를 인증하고 인증 데이터를 컨테이너 실행부(400)로 제공하고, 인증에 성공하면 트랜잭션을 트랜잭션 처리모듈(520)로 전달한다.The transaction authentication module 510 authenticates whether the transaction received from the container execution unit 400 is a transaction that can be processed, provides authentication data to the container execution unit 400, and, if authentication is successful, transmits the transaction to the transaction processing module forward to (520).

트랜잭션 처리모듈(520)은 트랜잭션 인증모듈(510)로부터 전달받은 트랜잭션을 처리하고 그 결과를 컨테이너 실행부(400)에 전달한다.The transaction processing module 520 processes the transaction received from the transaction authentication module 510 and transmits the result to the container execution unit 400 .

즉, 컨테이너 모듈(500)은 트랜잭션 인증모듈(510)과 트랜잭션 처리모듈(520)이 하나의 컨테이너로 묶여서 파일로 만들어지며, 컨테이너 모듈(500) 전체를 블록체인 저장부(120)에 저장하면, 블록체인 저장부(120)의 저장공간이 많이 소요됨에 따라서 블록체인부(110)의 성능을 하락할 수 있다. 따라서, 컨테이너 관리부(300)에 파일 형태로 저장되고, 블록체인 저장부(120)에는 컨테이너 ID, 컨테이너 파일의 해쉬값, 버전, 사이즈 등과 같이 컨테이너를 구분할 수 있는 값이 저장된다.That is, in the container module 500, the transaction authentication module 510 and the transaction processing module 520 are bundled into one container and made into a file, and when the entire container module 500 is stored in the block chain storage unit 120, As the storage space of the block chain storage unit 120 is required, the performance of the block chain unit 110 may decrease. Accordingly, it is stored in the form of a file in the container management unit 300 , and values that can identify containers such as a container ID, a hash value of a container file, a version, a size, etc. are stored in the block chain storage unit 120 .

그러면, 도 5를 참조하여 본 발명의 바람직한 실시예에 따른 블록체인 스캔부의 동작 과정에 대하여 보다 자세히 설명한다.Then, the operation process of the block chain scan unit according to the preferred embodiment of the present invention will be described in more detail with reference to FIG. 5 .

도 5는 도 2에 도시한 블록체인 스캔부의 동작 과정을 설명하기 위한 흐름도이다5 is a flowchart for explaining the operation process of the block chain scan unit shown in FIG.

도 5를 참조하면, 블록체인 스캔부(130)는 블록체인 저장부(120)에 새로운 블록이 생성되는지 스캔한다(S110).Referring to FIG. 5 , the block chain scan unit 130 scans whether a new block is created in the block chain storage unit 120 ( S110 ).

블록체인 저장부(120)에 새로운 블록이 생성되면(S120-Y), 블록체인 스캔부(130)는 블록을 스캔해서 해당 블록체인 노드(100)의 ID에 해당하는 트랜잭션을 추출한다(S130).When a new block is created in the block chain storage unit 120 (S120-Y), the block chain scan unit 130 scans the block and extracts a transaction corresponding to the ID of the block chain node 100 (S130) .

블록을 스캔해서 해당 블록체인 노드(100)의 ID로 할당된 트랜잭션 처리 요청/처리 취소가 있으면(S140-좌측), 블록체인 스캔부(130)는 트랜잭션 유효시간을 추출하여 현재 시간이 유효시간 안에 있는지 확인하고, 유효시간 안에 있으면(S150-Y), 컨테이너 실행부(400)에 트랜잭션 데이터를 전달한다(S160). 그러면, 컨테이너 실행부(400)는 전달받은 트랜잭션 데이터에서 컨테이너 ID를 추출하여 컨테이너 ID에 해당하는 컨테이너 모듈(500)이 있는지 확인하고, 없으면 컨테이너 관리부(300)에 컨테이너 모듈(500)을 요청한다. 컨테이너 관리부(300)로부터 컨테이너 모듈(500)을 받으면, 블록체인부(110)을 통해서 받은 컨테이너 모듈(500)이 블록체인에 등록된 컨테이너인지 컨테이어의 ID, 컨테이너 파일의 해쉬값, 버전, 사이즈 등의 정보를 비교하여 확인한다. 컨테이너 실행부(400)는 트랜잭션 데이터를 컨테이너 모듈(500)에 전달하면 컨테이너 모듈(500)의 컨테이너 인증모듈(510)이 트랜잭션 데이터를 인증하고 인증 데이터를 컨테이너 실행부(400)에 회신한다.If there is a transaction processing request/process cancellation assigned to the ID of the block chain node 100 by scanning the block (S140-left), the block chain scanning unit 130 extracts the transaction effective time and the current time is within the valid time. If it is within the effective time (S150-Y), the transaction data is transmitted to the container execution unit 400 (S160). Then, the container executor 400 extracts the container ID from the received transaction data, checks whether a container module 500 corresponding to the container ID exists, and if not, requests the container module 500 from the container manager 300 . When the container module 500 is received from the container management unit 300, whether the container module 500 received through the block chain unit 110 is a container registered in the block chain, ID of the container, hash value of the container file, version, size Check and compare information, etc. When the container execution unit 400 transmits the transaction data to the container module 500 , the container authentication module 510 of the container module 500 authenticates the transaction data and returns the authentication data to the container execution unit 400 .

이후, 컨테이너 실행부(400)는 블록체인부(110)을 통해서 트랜잭션 처리 접수를 블록체인 저장부(120)에 저장한다(S170). 그리고, 트랜잭션 처리모듈(520)이 트랜잭션을 처리하고 그 처리 결과를 컨테이너 실행부(400)에 회신하면, 컨테이너 실행부(400)는 블록체인부(110)을 통해서 트랜잭션 처리 결과를 블록체인 저장부(120)에 저장한다(S180).Thereafter, the container execution unit 400 stores the transaction processing reception in the block chain storage unit 120 through the block chain unit 110 (S170). Then, when the transaction processing module 520 processes the transaction and returns the processing result to the container execution unit 400 , the container execution unit 400 stores the transaction processing result through the block chain unit 110 in the block chain storage unit It is stored in (120) (S180).

아울러, 블록을 스캔해서 해당 블록체인 노드(100)의 ID로 할당된 트랜잭션 처리 접수/처리 결과가 있으면(S140-우측), 블록체인 스캔부(130)는 트랜잭션 요청부(200)에 전달하여 트랜잭션 처리 요청/취소 요청이 완료된다(S190).In addition, if there is a transaction processing acceptance/processing result assigned to the ID of the block chain node 100 by scanning the block (S140-right), the block chain scanning unit 130 transmits the transaction to the transaction request unit 200 The processing request/cancellation request is completed (S190).

위와 같이, 본 발명에 따른 블록체인 시스템(10)에 따르면, 트랜잭션 처리 요청은 블록체인의 스마트 컨트랙을 적용하여 블록체인에 기록하고, 트랜잭션 처리 요청을 컨테이너에 전달하는 것은 블록을 스캔하는 블록체인 스캔부에서 처리하는 비동기 방식을 적용하여 blocking이 되는 부분을 제거하였고, 또한, 트랜잭션 처리 결과는 블록체인의 스마트 컨트랙을 실행하여 블록체인에 기록하고, 트랜잭션 처리 결과를 클라이언트에 전달하는 기능은 블록체인 스캔부가 처리하는 비동기 방식을 적용하여 트랜잭션 처리 결과를 클라이언트에 전달하는 과정에서 발생할 수 있는 blocking이 되는 부분도 제거하였다.As described above, according to the block chain system 10 according to the present invention, a transaction processing request is recorded in the block chain by applying a smart contract of the block chain, and transmitting the transaction processing request to the container is a block chain scanning block Blocking is removed by applying the asynchronous method processed by the scan unit, and the transaction processing result is recorded in the block chain by executing the smart contract of the block chain, and the function of transmitting the transaction processing result to the client is a block By applying the asynchronous method processed by the chain scan unit, the blocking part that may occur in the process of delivering the transaction processing result to the client is also removed.

또한, 트랜잭션 처리시에 신뢰성 확보에 꼭 필요한 부분을 블록체인의 스마트 컨트랙으로 처리하여 블록체인 노드의 리소스 사용을 최소화 하고, 트랜잭션 처리 시 컴퓨팅이 많이 필요한 부분은 독립된 모듈로 컨테이너화하여 분산 처리하여 블록체인 노드의 컴퓨팅 자원을 사용하지 않도록 하여 블록체인 노드의 컴퓨팅 자원이 부족하여 트랜젝션 처리가 늦어지는 것을 방지한다.In addition, it minimizes the resource use of blockchain nodes by processing the parts necessary for securing reliability during transaction processing with the smart contract of the blockchain. By not using the computing resources of the chain nodes, it prevents the transaction processing from being delayed due to the lack of computing resources of the blockchain nodes.

이와 같이 트랜잭션을 비동기로 처리하고, 컨테이너로 분산 처리하여 트랜잭션 처리 시간이 대폭 감소되며, 이에 따라 트랜잭션 처리용량은 비례하여 급증한다.In this way, the transaction processing time is greatly reduced by processing the transaction asynchronously and distributed processing by the container, and thus the transaction processing capacity increases proportionally.

또한, 블록체인의 스마트 컨트랙은 트랜잭션의 요청, 컨테이너가 트랜잭션을 처리한 결과를 블록체인에 기록하여, 트랜잭션을 추적 및 관리할 수 있도록 하여 신뢰성을 보장한다. 트랜잭션을 처리하는 모듈은 컨테이너화하여 블록체인의 디지털 자산으로 등록하여, 생성, 변경, 수정에 대한 이력을 블록체인에 기록 및 관리한다. 컨테이너의 이력정보가 블록체인 기술을 통해서 등록 관리되므로 컨테이너의 위변조를 원천적으로 방지할 수 있다.In addition, the smart contract of the block chain records the request of the transaction and the result of the container processing the transaction on the block chain so that the transaction can be tracked and managed, thereby guaranteeing reliability. The module that processes the transaction is containerized and registered as a digital asset of the blockchain, and records and manages the history of creation, change, and modification in the blockchain. Since container history information is registered and managed through blockchain technology, it is possible to fundamentally prevent forgery of containers.

컨테이너 모듈은 트랜잭션을 처리하는 모듈과 컨테이너를 인증할 수 있는 모듈이 결합되어 컨테이너화된다. 트랜잭션이 처리를 하기 위해서 컨테이너 모듈이 실행될 때 마다 컨테이너 인증모듈이 먼저 실행되어서 인증을 수행하고, 정상적으로 인증이 된다는 것을 확인할 수 있는 인증 데이터를 리턴하고 그 인증 데이터를 블록체인에 기록하여 디지털 자산으로 등록된 컨테이너인지 확인할 수 있다.The container module is containerized by combining the module that processes the transaction and the module that can authenticate the container. In order to process a transaction, whenever the container module is executed, the container authentication module is executed first to perform authentication, returns authentication data that can confirm that authentication is normally performed, and records the authentication data in the block chain and registers it as a digital asset. You can check if the container has been

블록체인에 등록된 트랜잭션에는 트랜잭션을 처리할 컨테이너 정보와 컨테이너가 실행되어야 할 블록체인 노드에 대한 정보가 있어, 그 정보를 기반으로 특정 블록체인 노드에서 해당하는 컨테이너에게 할당되어 트랜잭션을 처리하고 그 처리결과는 블록체인에 등록되는 효과적인 부하 분산 기능을 제공한다.Transactions registered in the block chain contain information about the container to process the transaction and the block chain node where the container should be executed. The result provides an effective load balancing function that is registered on the blockchain.

본 발명으로 트랜잭션을 비동기로 처리시에 문제점이 발생할 수 있다. 특정 블록체인 노드가 문제가 있어 그 블록체인 노드로 블록이 전파되지 않아서 그 노드의 블록체인 스캔부가 블록을 스캔하지 못하는 경우에 발생한다. 첫번째로 시나리오는 그 블록체인 노드로 요청을 받은 트랜잭션이 처리되지 못하고 블록체인에 누적되는 문제와 두번째 시니리오는 트랜잭션이 컨테이너를 통해서 처리되고 그 트랜잭션 처리 결과가 블록체인에 기록되었으나 그 블록체인 노드의 블록체인 스캔부가 블록을 스캔하지 못하여 트랜잭션을 요청한 클라이언트에 처리 결과를 전달할 수 없는 상황이다.According to the present invention, a problem may occur when processing a transaction asynchronously. Occurs when there is a problem with a specific blockchain node and the block is not propagated to that blockchain node, so the node's blockchain scan unit cannot scan the block. The first scenario is the problem that the transaction requested by the block chain node is not processed and accumulates in the block chain. The second scenario is that the transaction is processed through a container and the transaction processing result is recorded in the block chain, but the block It is a situation in which the processing result cannot be delivered to the client who requested the transaction because the chain scan unit cannot scan the block.

위의 첫번째 시나리오 문제를 해결하기 위해서 트랜잭션의 유효기간을 트랜잭션 데이터에 포함하여 등록한다. 특정 블록체인 노드의 문제가 발생하여 블록이 전파되지 않다가 한번에 여러 블록이 전파가 되어서 블록체인 스캔부가 블록을 스캔할 경우, 요청을 받은 트랜잭션의 유효기간이 초과한 트랜잭션은 처리하지 않고 통과시킴으로 해결할 수 있다. 트랜잭션 처리를 요청하는 트랜잭션 요청부는 트랜잭션 유효기간 안에 트랜잭션이 처리되지 않으면, 요청한 블록체인 노드의 문제가 있다고 판단하고 다른 블록체인 노드에 트랜잭션 처리 요청을 블록체인에 등록하여 트랜잭션을 처리할 수 있다.To solve the above first scenario problem, the transaction validity period is included in the transaction data and registered. If a block is not propagated due to a problem with a specific block chain node, but several blocks are propagated at once and the block chain scan unit scans the block, it can be solved by passing the transaction that has exceeded the validity period of the requested transaction without processing it. can If the transaction is not processed within the transaction validity period, the transaction requesting unit requesting transaction processing determines that there is a problem with the requested blockchain node, and can process the transaction by registering the transaction processing request to another blockchain node in the blockchain.

그리고, 두번째 시나리오에 문제점을 해결할 수 있는 방안은 트랜잭션 처리 결과에 대해서는 다른 블록체인 노드의 블록체인 스캔부가 읽었을 경우에도 처리 결과를 전달할 수 있도록, 트랜잭션 요청시 트랜잭션 결과를 전달하는 블록체인 노드를 추가로 등록하는 방법으로 해결할 수 있다. 또한, 첫번째 시니라오에 의해서 트랜잭션 요청부가 그 블록체인 노드가 장애가 발생한 것으로 판단되어, 트랜잭션 처리할 수 있는 블록체인 노드 리스트에서 제외한 후에, 트랜잭션 요청부가 그 블록체인 노드에 블록이 정상적으로 전파가 되는지 확인하기 위한 방안으로 트랜잭션 결과를 전달하는 블록체인 노드 리스트에 그 블록체인 노드를 추가하여 트랜잭션 결과를 전송하는지를 확인하는 방법으로 사용할 수 있다.And, a solution to the problem in the second scenario is to add a blockchain node that delivers the transaction result when a transaction is requested so that the processing result can be delivered even when the blockchain scan unit of another blockchain node reads the transaction processing result. This can be solved by registering. Also, according to the first scenario, after the transaction requester determines that the block chain node has failed and removes it from the list of block chain nodes that can process the transaction, check whether the block is normally propagated to the block chain node by the transaction request unit. As a measure for this, it can be used as a method to check whether the transaction result is transmitted by adding the block chain node to the list of block chain nodes that deliver the transaction result.

이상에서 본 발명의 바람직한 실시예에 대하여 상세하게 설명하였지만 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 다음의 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.Although preferred embodiments of the present invention have been described in detail above, the present invention is not limited to the specific preferred embodiments described above, and the technical field to which the present invention belongs without departing from the gist of the present invention as claimed in the following claims Anyone with ordinary skill in the art can make various modifications, of course, such changes are within the scope of the claims.

10 : 트랜잭션을 비동기로 분산 처리하는 블록체인 시스템,
101 : 클라이언트
100 : 블록체인 노드,
110 : 블록체인부, 120 : 블록체인 저장부,
130 : 블록체인 스캔부,
200 : 트랜잭션 요청부,
300 : 컨테이너 관리부,
400 : 컨테이너 실행부,
500 : 컨테이너 모듈,
510 : 트랜잭션 인증모듈, 520 : 트랜잭션 처리모듈
10: A blockchain system that distributes and processes transactions asynchronously;
101: client
100: blockchain node,
110: block chain unit, 120: block chain storage unit,
130: block chain scan unit,
200: transaction request unit;
300: container management unit,
400: container execution unit;
500: container module;
510: transaction authentication module, 520: transaction processing module

Claims (7)

블록체인 기술을 기반으로 스마트 컨트랙을 등록 및 실행시키고, 스마트 컨트랙으로 블록체인에 자산을 등록 및 관리하는 블록체인부; 스마트 컨트랙 및 트랜잭션에 대한 정보를 저장하는 블록체인 저장부; 및 블록체인에 새로운 블록이 생성되면, 처리하여야 하는 트랜잭션을 추출하고, 추출된 트랜잭션의 종류가 트랜잭션 처리 요청 또는 트랜잭션 처리 취소이면 추출된 트랜잭션을 컨테이너 실행부에 전달하고, 추출된 트랜잭션의 종류가 트랜잭션 처리 접수 또는 트랜잭션 처리 결과이면 추출된 트랜잭션을 트랜잭션 요청부에 전달하는 블록체인 스캔부;를 포함하는 블록체인 노드;
클라이언트로부터 전달받은 트랜잭션을 상기 블록체인부에 전달하여 처리 요청을 하는 상기 트랜잭션 요청부;
상기 블록체인 스캔부로부터 전달받은 트랜잭션을 처리할 컨테이너 모듈을 선택하고, 선택된 상기 컨테이너 모듈이 회신하는 인증 데이터와 함께 상기 블록체인부를 통해 트랜잭션 처리 접수를 상기 블록체인 저장부에 저장하며, 선택된 상기 컨테이너 모듈로부터 처리 회신을 받으면 상기 블록체인부를 통해 트랜잭션 처리 결과를 상기 블록체인 저장부에 저장하는 상기 컨테이너 실행부; 및
상기 컨테이너 실행부로부터 전달받은 트랜잭션이 처리할 수 있는 트랜잭션인지 여부를 인증하고 인증 데이터를 상기 컨테이너 실행부로 제공하고, 인증에 성공하면 트랜잭션을 트랜잭션 처리모듈로 전달하는 트랜잭션 인증모듈; 및 상기 트랜잭션 인증모듈로부터 전달받은 트랜잭션을 처리하고 그 결과를 상기 컨테이너 실행부에 전달하는 상기 트랜잭션 처리모듈;을 포함하는 상기 컨테이너 모듈;
를 포함하고,
트랜잭션을 처리하는 컨테이너를 상기 블록체인부를 통해 블록체인의 디지털 자산으로 등록하는 컨테이너 관리부;
를 더 포함하는 트랜잭션을 비동기로 분산 처리하는 블록체인 시스템.
A block chain unit that registers and executes smart contracts based on block chain technology, and registers and manages assets in the block chain with smart contracts; a block chain storage unit that stores information about smart contracts and transactions; And when a new block is created in the block chain, the transaction to be processed is extracted, and if the type of the extracted transaction is a transaction processing request or transaction processing cancellation, the extracted transaction is transmitted to the container execution unit, and the type of the extracted transaction is the transaction A block chain node comprising; a block chain scan unit that transmits the extracted transaction to the transaction request unit if the processing is accepted or the result of the transaction processing;
the transaction request unit that transmits the transaction received from the client to the block chain unit to request processing;
Selects a container module to process the transaction received from the block chain scan unit, stores the transaction processing receipt through the block chain unit together with authentication data returned by the selected container module to the block chain storage unit, and the selected container the container execution unit for storing a transaction processing result in the block chain storage unit through the block chain unit when receiving a processing reply from the module; and
a transaction authentication module that authenticates whether the transaction received from the container execution unit is a transaction that can be processed, provides authentication data to the container execution unit, and transmits the transaction to the transaction processing module if authentication is successful; and the transaction processing module for processing the transaction received from the transaction authentication module and transmitting the result to the container execution unit;
including,
a container management unit that registers a container that processes a transaction as a digital asset of a block chain through the block chain unit;
A blockchain system that asynchronously distributes and processes transactions that further include
삭제delete 제1항에서,
상기 트랜잭션은, 트랜잭션을 구분할 수 있는 식별 정보인 트랜잭션 ID, 트랜잭션을 처리할 블록체인 노드의 ID와 트랜잭션 처리 접수나 트랜잭션 처리 결과를 전달할 블록체인 노드의 ID들로 이루어지는 블록체인 노드 ID 리스트, 트랜잭션을 처리할 컨테이너를 구분할 수 있는 식별 정보인 컨테이너 ID, 및 트랜잭션의 처리 요청이나 취소 요청을 접수할 수 있는 유효 시간인 트랜잭션 유효시간을 포함하며,
상기 트랜잭션의 종류가 상기 트랜잭션 처리 요청 또는 상기 트랜잭션 처리 취소이면, 상기 트랜잭션은, 트랜잭션 처리 데이터를 더 포함하고,
상기 트랜잭션의 종류가 상기 트랜잭션 처리 접수이면, 상기 트랜잭션은, 인증 데이터를 더 포함하며,
상기 트랜잭션의 종류가 상기 트랜잭션 처리 결과이면, 상기 트랜잭션은, 처리 결과를 더 포함하는,
트랜잭션을 비동기로 분산 처리하는 블록체인 시스템.
In claim 1,
The transaction includes a transaction ID, which is identification information that can distinguish a transaction, an ID of a block chain node to process a transaction, a list of block chain node IDs including IDs of a block chain node to receive transaction processing or to transmit a transaction processing result, and a transaction. It includes a container ID, which is identification information that can identify a container to be processed, and a transaction validity time, which is an effective time for receiving a transaction processing request or cancellation request,
If the type of the transaction is the transaction processing request or the transaction processing cancellation, the transaction further includes transaction processing data,
If the type of the transaction is the transaction processing acceptance, the transaction further includes authentication data,
If the type of the transaction is the transaction processing result, the transaction further includes a processing result,
A blockchain system that asynchronously distributes and processes transactions.
제3항에서,
상기 트랜잭션 요청부는,
분산된 블록체인 노드들 중에서 트랜잭션을 처리할 블록체인 노드를 지정하고, 클라이언트로부터 전달받은 트랜잭션을 상기 블록체인부에 전달할 때, 지정된 블록체인 노드에 대응되는 블록체인 노드 ID도 함께 전달하는,
트랜잭션을 비동기로 분산 처리하는 블록체인 시스템.
In claim 3,
The transaction request unit,
Designates a blockchain node to process a transaction among distributed blockchain nodes, and delivers the blockchain node ID corresponding to the designated blockchain node when transferring the transaction received from the client to the blockchain unit.
A blockchain system that asynchronously distributes and processes transactions.
제4항에서,
상기 트랜잭션 요청부는,
분산된 블록체인 노드들 중에서 장애가 발생한 블록체인 노드를 제외하고, 남은 블록체인 노드들 중에서 트랜잭션을 처리할 블록체인 노드를 지정하는,
트랜잭션을 비동기로 분산 처리하는 블록체인 시스템.
In claim 4,
The transaction request unit,
Excluding the failed blockchain node among distributed blockchain nodes, and designating the blockchain node to process the transaction among the remaining blockchain nodes.
A blockchain system that asynchronously distributes and processes transactions.
제5항에서,
상기 트랜잭션 요청부는,
장애가 발생한 블록체인 노드에 대응되는 블록체인 노드 ID를 상기 블록체인 노드 ID 리스트에 추가하고, 장애가 발생한 블록체인 노드가 트랜잭션 처리 접수나 처리 결과를 정상적으로 회신하는지를 모니터링하여 장애가 발생한 블록체인 노드의 장애 복구 여부를 확인하는,
트랜잭션을 비동기로 분산 처리하는 블록체인 시스템.
In claim 5,
The transaction request unit,
Add the block chain node ID corresponding to the failed block chain node to the block chain node ID list, and monitor whether the failed block chain node accepts transaction processing or returns the processing result normally to recover from failure of the failed block chain node to check,
A blockchain system that asynchronously distributes and processes transactions.
제3항에서,
상기 블록체인 스캔부는,
트랜잭션을 처리할 컨테이너를 지정하기 위해, 추출된 트랜잭션을 상기 컨테이너 실행부에 전달할 때, 컨테이너 ID도 함께 전달하며,
상기 컨테이너 실행부는,
상기 블록체인 스캔부로부터 전달받은 컨테이너 ID에 대응되는 컨테이너를 상기 블록체인 스캔부로부터 전달받은 트랜잭션을 처리할 컨테이너 모듈로 선택하는,
트랜잭션을 비동기로 분산 처리하는 블록체인 시스템.
In claim 3,
The blockchain scan unit,
When passing the extracted transaction to the container execution unit in order to designate a container to process the transaction, the container ID is also passed,
The container execution unit,
selecting a container corresponding to the container ID received from the block chain scan unit as a container module to process the transaction received from the block chain scan unit,
A blockchain system that asynchronously distributes and processes transactions.
KR1020200094766A 2020-07-29 2020-07-29 Blockchain system for distributed processing transaction asynchronously KR102288161B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200094766A KR102288161B1 (en) 2020-07-29 2020-07-29 Blockchain system for distributed processing transaction asynchronously

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200094766A KR102288161B1 (en) 2020-07-29 2020-07-29 Blockchain system for distributed processing transaction asynchronously

Publications (1)

Publication Number Publication Date
KR102288161B1 true KR102288161B1 (en) 2021-08-10

Family

ID=77316070

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200094766A KR102288161B1 (en) 2020-07-29 2020-07-29 Blockchain system for distributed processing transaction asynchronously

Country Status (1)

Country Link
KR (1) KR102288161B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101986081B1 (en) * 2018-12-24 2019-06-05 (주)소프트제국 Method for sharing and verifing a block between specific nodes in a blockchain
KR20190082046A (en) 2017-12-29 2019-07-09 주식회사 코인플러그 Method for paying based on blockchain and payment server using the same
KR20200026366A (en) * 2018-08-30 2020-03-11 에이치닥 테크놀로지 아게 Smart Contract System in a virtual environment and processing method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190082046A (en) 2017-12-29 2019-07-09 주식회사 코인플러그 Method for paying based on blockchain and payment server using the same
KR20200026366A (en) * 2018-08-30 2020-03-11 에이치닥 테크놀로지 아게 Smart Contract System in a virtual environment and processing method thereof
KR101986081B1 (en) * 2018-12-24 2019-06-05 (주)소프트제국 Method for sharing and verifing a block between specific nodes in a blockchain

Similar Documents

Publication Publication Date Title
US11966916B2 (en) Resource transfer method and apparatus, storage medium, and computer device
US11074661B2 (en) Transaction processing method, apparatus, and electronic device using a blockchain having nonce records
US20180189100A1 (en) Distributed computing system
WO2021018088A1 (en) Trusted authentication method, network device, system and storage medium
US11481771B2 (en) One way functions in a resource transfer system
JP2022532464A (en) Blockchain transaction manager
CN110222116B (en) Control method and device for transaction data storage and storage medium
US20220350658A1 (en) Transfer costs in a resource transfer system
US20020056079A1 (en) Storage media storing data related to smart card, smart card system and smart card application loading method
CN110599174B (en) Block chain information processing method and related equipment
US11151122B2 (en) Distributed ledger data linkage management
Hao et al. FastPay: A secure fast payment method for edge-IoT platforms using blockchain
US7441115B2 (en) Method for verifying a digital signature
JP2018535500A (en) Temporary consensus network in resource transfer system
KR102288161B1 (en) Blockchain system for distributed processing transaction asynchronously
US20210365433A1 (en) Method and apparatus for managing data based on blockchain
US11483158B2 (en) Distributed ledger device, distributed ledger system, and distributed ledger management method
CN113095935A (en) Transaction order processing method and device, computer equipment and storage medium
US11568399B2 (en) Distributed ledger management system, distributed ledger management method, and node
US11520802B2 (en) Systems and methods for data format conversion
CN113987598A (en) Block migration method and device
US20230237476A1 (en) Electronic wallet, server for executing the same, and method for atomic exchange of blockchain tokens using the server
US20240144268A1 (en) Control method, non-transitory computer-readable storage medium for storing control program, and information processing apparatus
JP7252462B2 (en) Image sorting device, image sorting program and image sorting method
US20230188348A1 (en) Service management system, token issuing server, and method for token issuing server

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant