KR20190108020A - 블록체인을 이용한 트랜잭션 처리 방법 및 이를 이용한 트랜잭션 서버 - Google Patents

블록체인을 이용한 트랜잭션 처리 방법 및 이를 이용한 트랜잭션 서버 Download PDF

Info

Publication number
KR20190108020A
KR20190108020A KR1020180029458A KR20180029458A KR20190108020A KR 20190108020 A KR20190108020 A KR 20190108020A KR 1020180029458 A KR1020180029458 A KR 1020180029458A KR 20180029458 A KR20180029458 A KR 20180029458A KR 20190108020 A KR20190108020 A KR 20190108020A
Authority
KR
South Korea
Prior art keywords
block
ledger
transactions
registered
blockchain
Prior art date
Application number
KR1020180029458A
Other languages
English (en)
Other versions
KR102024005B1 (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 KR1020180029458A priority Critical patent/KR102024005B1/ko
Priority to US16/299,168 priority patent/US20190286629A1/en
Publication of KR20190108020A publication Critical patent/KR20190108020A/ko
Application granted granted Critical
Publication of KR102024005B1 publication Critical patent/KR102024005B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 트랜잭션 처리 방법에 관한 것으로, (a) 트랜잭션들에 대한 등록 요청 정보가 획득되면, 트랜잭션 서버가, 등록 요청된 트랜잭션들에 대응하는 블록을 현재 active 상태에 있는 분산 원장인 제n 분산 원장에 기록하기 위하여, 제n 분산 원장의 저장 용량을 확인하는 단계 및 (b) 확인되는 제n 분산 원장의 저장 용량이 기설정 조건을 만족하면, 트랜잭션 서버가, 제n 분산 원장에 등록되어 있는 블록에 포함된 트랜잭션들을 참조하여 대표 블록을 생성하고, 대표 블록을 제네시스 블록으로 하는 제n+1 분산 원장을 생성함으로써 대표 블록 이후에 등록 요청되는 블록들이 제n+1 분산 원장에 등록되도록 하는 단계를 포함 하는 방법이 제공된다.

Description

블록체인을 이용한 트랜잭션 처리 방법 및 이를 이용한 트랜잭션 서버{METHOD FOR PROCESSING TRANSACTIONS USING BLOCKCHAIN, AND TRANSACTION MANAGEMENT SERVER USING THE SAME}
본 발명은 블록체인을 이용한 트랜잭션 처리 방법 및 이를 이용한 트랜잭션 서버에 관한 것으로, 보다 상세하게는, (a) 트랜잭션들에 대한 등록 요청 정보가 획득되면, 트랜잭션 서버가, 상기 등록 요청된 트랜잭션들에 대응하는 블록을 현재 active 상태에 있는 분산 원장인 제n 분산 원장에 기록하기 위하여, 상기 제n 분산 원장의 저장 용량을 확인하는 단계; 및 (b) 상기 확인되는 상기 제n 분산 원장의 저장 용량이 기설정 조건을 만족하면, 상기 트랜잭션 서버가, 상기 제n 분산 원장에 등록되어 있는 블록에 포함된 상기 트랜잭션들을 참조하여 대표 블록을 생성하고, 상기 대표 블록을 제네시스 블록으로 하는 제n+1 분산 원장을 생성함으로써 상기 대표 블록 이후에 등록 요청되는 블록들이 상기 제n+1 분산 원장에 등록되도록 하는 단계;를 포함하는 트랜잭션 처리 방법 및 이를 이용한 트랜잭션 서버에 관한 것이다.
일반적으로 블록체인을 이용한 트랜잭션 처리 방법에서는, 블록체인 노드에서 하나의 원장만을 이용하여 트랜잭션을 기록하는 방식을 사용한다.
도 1에 도시된 예시적인 종래의 트랜잭션 처리 방법에서는, 블록체인 내에 하나의 원장만을 사용하여 별다른 원장 관리의 필요성이 없었다. 그러나 이와 같은 방법을 게임 서비스를 지원하는 프라이빗 블록체인에 이용하는 경우, 퍼블릭 블록체인에 비해 많은 양의 트랜잭션들을 처리하게 되며, 이 경우, 데이터 양이 많아지게 되면, 하나의 노드가 보관할 수 있는 물리적인 디스크의 양을 초과하는 문제점이 발생할 수 있다.
또한, 하나의 블록체인 노드에 여러 개의 물리적 디스크를 사용하는 경우에도 별다른 분할 저장 효과 이외에는 여러 디스크 사이의 데이터 연결을 하지 못하는 문제점이 발생한다.
본 발명은 상술한 문제점들을 모두 해결하는 것을 그 목적으로 한다.
또한, 본 발명은, 많은 양의 트랜잭션을 처리하는 블록체인에서 처리할 데이터가 하나의 원장이 보관할 수 있는 양을 넘는 경우에도 이를 처리할 수 있는 트랜잭션 처리 방법을 제공하는 것이다.
또한 본 발명은 블록체인의 크기가 과도하게 커지는 것을 방지하고 블록체인 노드 운영의 효율성을 높이는 방법을 제공하는 것이다.
또한 본 발명은 하나의 블록체인 노드에 다수개의 병렬 원장을 사용할 때, 대용량 원장 관리를 효율적으로 운영할 수 있는 방법을 제공하는 것이다.
또한 본 발명은 대용량 트랜잭션 발생에 따라 다수의 원장으로 분리되고 관리되는 환경에서도, 블록체인의 기본 특성인 원장 데이터에 대한 신뢰성을 확보할 수 있는 방법을 제공하는 것이다.
상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.
본 발명의 일 실시예에 따르면, 블록 체인을 이용한 트랜잭션 처리 방법은, (a) 트랜잭션들에 대한 등록 요청 정보가 획득되면, 트랜잭션 서버가, 상기 등록 요청된 트랜잭션들에 대응하는 블록을 현재 active 상태에 있는 분산 원장인 제n 분산 원장에 기록하기 위하여, 상기 제n 분산 원장의 저장 용량을 확인하는 단계; 및 (b) 상기 확인되는 상기 제n 분산 원장의 저장 용량이 기설정 조건을 만족하면, 상기 트랜잭션 서버가, 상기 제n 분산 원장에 등록되어 있는 블록에 포함된 상기 트랜잭션들을 참조하여 대표 블록을 생성하고, 상기 대표 블록을 제네시스 블록으로 하는 제n+1 분산 원장을 생성함으로써 상기 대표 블록 이후에 등록 요청되는 블록들이 상기 제n+1 분산 원장에 등록되도록 하는 단계;를 포함한다.
일 실시예에서, 상기 (b) 단계에서, 상기 트랜잭션 서버는, 상기 기설정된 조건을 만족하는 시점까지 상기 제n 분산 원장에 등록된 블록들에 대한 제1 요약(summary) 정보를 생성하고, 상기 제n 분산 원장에 추가 등록 요청되는 블록에 대응되는 큐를 저장한 후, 상기 큐에 대응되는 블록을 참조하여 제2 요약 정보를 생성하면, 상기 제1 요약 정보 및 상기 제2 요약 정보를 참조하여 상기 대표 블록을 생성한다.
일 실시예에서, 상기 (b) 단계에서 상기 기설정 조건은, 상기 제n 분산 원장 내의 블록 체인이 소정의 기준점 이상의 블록 뎁스(block depth) 또는 소정 크기 이상의 파일 사이즈(file size) 또는 소정의 기간인 조건이다.
일 실시예에서, 상기 (b) 단계에서, 상기 대표 블록은, 상기 제n 분산 원장에 등록되어 있는 각각의 어드레스에 대응되는 트랜잭션 정보를 요약하여 생성한다.
일 실시예에서, 상기 (b) 단계에서, 상기 대표 블록은 상기 제n 분산 원장의 마지막 블록에 등록한다.
일 실시예에서, 상기 (b) 단계에서, 상기 제n 분산 원장을 read-only 상태인 디액티브(deactive) 분산 원장으로 처리하고, 상기 제n+1 분산 원장을 액티브(active) 분산 원장으로 처리한 상태에서, 상기 트랜잭션 서버가, 상기 트랜잭션들에 대한 등록 요청에 대응되는 트랜잭션을 상기 액티브 분산 원장에 등록한다.
일 실시예에서, 상기 (a) 단계에서, 외부 서비스의 트랜잭션들에 대한 등록 요청에 대응되는 트랜잭션을 적어도 하나 포함하는 블록을 서비스별 프라이빗 블록 체인 원장 별로 각각 등록한다.
본 발명의 다른 특징에 따르면, 블록 체인을 이용한 트랜잭션 처리 방법은, (a) 트랜잭션들에 대한 등록 요청 정보가 획득되면, 트랜잭션 서버가, 상기 등록 요청된 트랜잭션을 적어도 하나 포함하는 블록을 블록 체인 원장에 등록하는 단계; (b) 상기 블록 체인 원장이 기설정 조건을 만족하는 경우, 상기 트랜잭션 서버가, 상기 블록 체인 원장에 등록되어 있는 블록에 포함된 트랜잭션들을 참조하여 요약 블록을 생성하는 단계; 및 (c) 상기 트랜잭션 서버가, 상기 요약 블록을 상기 블록 체인 원장과 독립된 요약 블록 원장에 등록하는 단계; 를 포함한다.
일 실시예에서, 상기 (b) 단계는, 상기 블록 체인 원장에 등록되어 있는 각각의 어드레스에 대응되는 트랜잭션 정보를 참조로 하여 각각의 어드레스별로 밸런스를 계산하여 상기 요약 블록을 생성한다.
일 실시예에서, 상기 (b) 단계에서, 상기 기설정 조건은, 상기 블록 체인 원장이 등록되는 트랜잭션의 개수가 소정 개수를 초과하거나, 상기 트랜잭션 사이의 등록 간격이 소정 기간을 초과하거나, 상기 블록 체인 원장에서 분기된 새로운 블록 체인 원장이 생성된다.
일 실시예에서, 상기 (b) 단계에서, 상기 블록 체인에 제1 내지 제n 분산 원장이 포함될 때, 상기 트랜잭션 서버가, 상기 제1 내지 상기 제n 분산 원장에 등록되어 있는 블록에 포함된 상기 트랜잭션들을 참조하여 상기 요약 블록을 생성한다.
일 실시예에서, 상기 요약 블록은, 상기 제1 내지 상기 제n 분산 원장에 등록되어 있는 블록에 포함된 트랜잭션들의 사용자 어드레스 정보를 참조로 하여 각각의 어드레스별로 밸런스를 계산하여 생성한 블록이다.
본 발명의 또 다른 특징에 따르면, 블록 체인을 이용한 트랜잭션 처리 방법은, (a) 트랜잭션들에 대한 등록 요청 정보가 획득되면, 트랜잭션 서버가, 상기 등록 요청된 트랜잭션을 적어도 하나 포함하는 블록을 블록 체인 원장에 등록하는 단계; 및 (b) 상기 블록 체인 원장이 기설정 조건을 만족하는 경우, 상기 트랜잭션 서버가, 상기 블록 체인 원장에 등록되어 있는 블록에 포함된 적어도 하나의 트랜잭션들을 참조하여 각각의 사용자 어드레스별로 트랜잭션들을 순차적으로 재배열하고, 이를 상기 블록 체인 원장과 독립된 오더드 블록 원장에 등록하는 단계; 를 포함한다.
일 실시예에서, 상기 트랜잭션 서버가, 상기 오더드 블록을 상기 오더드 블록 원장에 등록하는 경우, 상기 블록 체인 원장의 트랜잭션들의 순서 정보를 등록하기 위한 시퀀스 원장을 추가 생성한다.
일 실시예에서, 상기 (b) 단계에서, 상기 블록 체인에 제1 내지 제n 분산 원장이 포함될 때, 상기 트랜잭션 서버가, 상기 제1 내지 상기 제n 분산 원장에 등록되어 있는 블록에 포함된 상기 트랜잭션들을 참조하여 상기 오더드 블록을 생성한다.
일 실시예에서, 상기 (b) 단계에서, 상기 오더드 블록 원장에 등록된 오더드 블록은, 상기 제1 내지 상기 제n 분산 원장에 등록되어 있는 블록에 포함된 트랜잭션들을 사용자 어드레스별로 분류하고, 상기 사용자 어드레스 및 해당 트랜잭션의 오더(order)에 따라 상기 사용자 어드레스별로 분류된 트랜잭션들을 나열하여 생성한 블록이다.
본 발명의 또 다른 특징에 따르면, 블록 체인을 이용하여 트랜잭션을 처리하는 트랜잭션 서버는, 외부에서 트랜잭션들에 대한 등록 요청 정보를 수신하기 위한 통신부; 및 (i) 상기 트랜잭션들에 대한 등록 요청 정보가 획득되면, 상기 등록 요청된 트랜잭션들에 대응하는 블록을 현재 active 상태에 있는 분산 원장인 제n 분산 원장에 기록하기 위하여, 상기 제n 분산 원장의 저장 용량을 확인하는 프로세스, 및 (ii) 상기 확인되는 상기 제n 분산 원장의 저장 용량이 기설정 조건을 만족하면, 상기 제n 분산 원장에 등록되어 있는 블록에 포함된 상기 트랜잭션들을 참조하여 대표 블록을 생성하고, 상기 대표 블록을 제네시스 블록으로 하는 제n+1 분산 원장을 생성함으로써 상기 대표 블록 이후에 등록 요청되는 블록들이 상기 제n+1 분산 원장에 등록되도록 하는 프로세스를 수행하기 위한 프로세서;를 포함한다.
이 외에도, 본 발명의 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
본 발명에 의하면, 다음과 같은 효과가 있다.
본 발명은 하나의 노드에 병렬 연결되는 다수의 원장을 통해 많은 양의 트랜잭션을 처리하는 블록체인에서 처리할 데이터가 하나의 원장이 보관할 수 있는 양을 넘는 경우에도 이를 처리할 수 있는 능력을 제공할 수 있다.
또한 본 발명은 하나의 노드 안에 많은 데이터를 기록할 수 있는 대용량 병렬 원장을 운용하여 블록체인의 크기가 과도하게 커지는 것을 방지하고 블록체인 노드 운영의 효율성을 높일 수 있다.
또한 본 발명은 하나의 블록체인 노드에 다수개의 병렬 원장을 사용할 때, 다수의 병렬 원장에 기록된 데이터를 요약한 요약 원장을 운용하여 대용량 원장 관리를 효율적으로 운영할 수 있다.
또한 본 발명은 하나의 블록체인 노드에 다수개의 병렬 원장을 사용할 때, 각 분산 원장 내의 트랜잭션을 어드레스 별로 재배열한 독립된 원장을 운용하여 데이터의 압축 효율을 높일 수 있는 효과가 있다.
본 발명은 대용량 트랜잭션 발생에 따라 다수의 원장으로 분리되고 관리되는 환경에서도, 블록체인의 기본 특성인 원장 데이터에 대한 신뢰성을 제공할 수 있다.
도 1은 종래 개술에 따른 블록체인 노드의 원장 운영 방법을 개략적으로 도시한 도이다.
도 2는 본 발명에 따른 트랜잭션 서버의 개략적인 구성도이다.
도 3은 본 발명의 일 실시예에 따른 블록체인 노드의 병렬 원장 운영 방법을 나타낸다.
도 4는 본 발명의 일 실시예에 따른 병렬 원장 운영 시 요약 블록을 생성하는 과정을 나타낸다.
도 5는 본 발명의 다른 실시예에 따른 블록체인 노드의 병렬 원장 운영 방법을 나타낸다.
도 6은 본 발명의 또 다른 실시예에 따른 블록체인 노드의 병렬 원장 운영 방법을 나타낸다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 2는 본 발명에 따른 트랜잭션 서버의 개략적인 구성도이다.
도 2를 참조하면, 본 발명에 따른 트랜잭션 서버(100)는 통신부(10)와 프로세서(20)를 포함한다.
통신부(10)는 외부에서 트랜잭션에 대한 등록 요청 정보를 수신하는 기능을 한다. 그리고, 본 발명의 일 실시예에 따르면, 프로세서(20)는, (i) 상기 트랜잭션들에 대한 등록 요청 정보가 획득되면, 상기 등록 요청된 트랜잭션들에 대응하는 블록을 현재 active 상태에 있는 분산 원장인 제n 분산 원장에 기록하기 위하여, 상기 제n 분산 원장의 저장 용량을 확인하는 프로세스, 및 (ii) 상기 확인되는 상기 제n 분산 원장의 저장 용량이 기설정 조건을 만족하면, 상기 제n 분산 원장에 등록되어 있는 블록에 포함된 상기 트랜잭션들을 참조하여 대표 블록을 생성하고, 상기 대표 블록을 제네시스 블록으로 하는 제n+1 분산 원장을 생성함으로써 상기 대표 블록 이후에 등록 요청되는 블록들이 상기 제n+1 분산 원장에 등록되도록 하는 프로세스를 수행하는 기능을 한다.
도 3은 본 발명의 일 실시예에 따른 블록체인 노드의 병렬 원장 운영 방법을 나타내며, 도 4는 본 발명의 일 실시예에 따른 병렬 원장 운영 시 요약 블록을 생성하는 과정을 나타낸다.
이하, 도 3 및 도 4를 참조하여 본 발명에 따른 트랜잭션 서버(100)의 프로세서(20)의 기능을 통해, 블록체인 노드의 병렬 원장 운영 방법을 설명한다.
우선 도 3을 참조하면, 본 발명에서는 블록체인 노드에 다수의 분산 원장을 포함하고 있고, 트랜잭션 서버(100)는 다수의 분산 원장 중 현재 기록 중인 액티브(active) 상태에 있는 분산 원장의 저장 용량을 확인해 가면서 등록 요청된 트랜잭션을 적어도 하나 포함하는 블록을 상기 액티브 상태의 분산 원장에 기록한다. 즉 본 발명에 따른 트랜잭션 관리 방법에서는 블록체인의 데이터의 사이즈가 소정 조건을 초과하는 경우 분산 원장을 물리적으로 병렬(데이터 연결 방식으로는 직렬)로 추가 구성하는 구성을 제시한다.
도 3의 실시예에서, 특정한 블록체인 노드에 포함된 다수의 분산 원장 중에서 제1 내지 제n-1 분산 원장이 모두 채워진 상태이고, 현재 제n 분산 원장이 기록되고 있는 경우를 가정하면, 트랜잭션 서버(100)가 제n 분산 원장의 저장 용량을 확인하고, 제n 분산 원장의 저장 용량이 기설정 조건을 만족하면, 제n 분산 원장에 등록되어 있는 블록에 포함된 트랜잭션들을 참조하여 대표 블록을 생성한다. 일 실시예에서, 상기 대표 블록은 제n 분산 원장에 등록되어 있는 블록에 포함된 트랜잭션들을 요약한 블록이 된다. 이렇게 생성된 대표 블록 즉, 요약 블록은 제n 분산 원장의 마지막 블록에 저장한다. 그리고 나서 상기 요약 블록을 제네시스 블록으로 하는 제n+1 분산 원장을 생성한다. 그리고 요약 블록이 완성된 이후에 상기 블록체인 노드로 등록 요청되는 트랜잭션을 포함하는 블록들은 상기 제n+1 분산 원장에 등록시킨다.
이를 좀 더 구체적으로 설명하면, 제n 분산 원장 내의 블록체인이 소정의 기준점 이상의 블록 뎁스(block depth) 또는 소정 크기 이상의 파일 사이즈(file size) 또는 소정의 기간을 갖는다고 판단되면, 트랜잭션 서버(100)는 해당 분산 원장 (이 예시에서는 제n 분산 원장) 에 기록되어 있는 트랜잭션 정보를 참조하여 대표 트랜잭션을 생성하고, 이를 해당 분산 원장의 가장 마지막 블록에 기록한다. 예를 들어, 트랜잭션 서버(100)는 해당 분산 원장에 기록되어 있는 트랜잭션 정보의 전체 어드레스(계정) 정보를 요약하고 이 요약한 요약 블록을 해당 분산 원장의 가장 마지막 블록에 기록한다. 아울러, 트랜잭션 서버(100)는 상기 요약 블록을 해당 분산 원장(제n 분산 원장)에 기록함과 동시에 다음 분산 원장(제n+1 분산 원장)을 열고, 상기 요약 블록을 다음 분산 원장(제n+1 분산 원장)의 제네시스 블록으로 기록한다.
이를 통해 각 분산 원장들은 서로의 연결 고리를 가지고 되고, 특정 트랜잭션을 추적하고자 할 때, 특정 분산 원장의 트랜잭션 정보를 가지고 앞에 연결되는 분산 원장까지 역추적할 수 있는 통로를 가지게 될 수 있다.
본 발명에 따른 트랜잭션 처리 방법에서는 분산 원장이 이론적으로는 무한대로 병렬(실질적으로는 서로의 연결 고리를 가진 직렬)로 늘어날 수 있다. 그리고 트랜잭션 서버(100)는 새롭게 기록하는 분산 원장을 액티브(active) 분산 원장으로 설정하고, 이전에 소정의 한계치에 도달한 분산 원장들은 디액티브(deactive) 분산 원장으로 설정하여, 디액티브 분산 원장들은 read-only 상태가 되며, read 성능에 최적화된 서버 또는 디스크로 이용될 수 있다.
도 4를 참조하여, 요약 블록을 생성하는 예시적인 과정을 구체적으로 설명하면 다음과 같다.
우선, 트랜잭션 서버(100)는 각 분산 원장 별로 분산 원장의 블록 뎁스 또는 파일 사이즈에 대한 소정의 기준점(Critical Point of Block(CPOB)) 또는 소정의 기간을 설정하고, 상기 해당 분산 원장이 생성됨과 동시에 주기적으로 상기 분산 원장의 블록 뎁스와 디스크 여유 용량에 대해 모니터링한다. 이 경우, 상기 분산 원장의 블록 뎁스와 디스크 여유 용량 또는 시간을 모니터링하는 기능은 트랜잭션 서버(100)에서 수행할 수도 있으며, 별도의 프로세서(예를 들어, 독립된 Critical Point Supervisor(CPS); 미도시)에서 수행할 수도 있을 것이다. 즉, 트랜잭션 서버(100) 또는 별도의 프로세서는 기록된 트랜잭션을 적어도 하나 포함하는 블록이 상기 소정의 기준점(CPOB)에 도달하는지를 모니터링한다. 만일, 기록된 블록이 소정의 기준점(CPOB)에 도달하면, 트랜잭션 서버(100)는 해당 분산 원장에 등록된 블록들에 대한 제1 요약(summary) 정보를 생성한다. 상기 제1 요약 정보는 해당 분산 원장의 제네시스 블록 마지막 지점부터 기록되어 상기 소정 기준점까지 기록된 트랜잭션의 모든 어드레스에 대한 요약 정보 일 수 있다. 그리고 상기 분산 원장의 소정 기준점을 넘어 증가하여 기록되는 트랜잭션을 적어도 하나 포함하는 블록들에 대해서는 추가 등록 요청되는 블록에 대응되는 큐를 저장한다. 트랜잭션 서버는 그리고 큐에 대응되는 트랜잭션을 적어도 하나 포함하는 블록들에 대한 제2 요약(summary) 정보도 생성한다. 상기 제2 요약 정보 생성은 상기 제1 요약 정보의 생성이 완료되면 바로 진행되는 것이 바람직하다.
그리고 트랜잭션 서버(100)는, 해당 분산 원장의 마지막 블록, 즉, 요약 블록이 기록되는 블록이 시작되는 소정 지점(Termination Point of Block(TPOB))에 도달하면, 상기 제1 요약 정보와 상기 제2 요약 정보를 참조하여 요약 블록을 생성하여 해당 분산 원장의 마지막 블록에 기록한다.
이와 같은 방식을 따라 블록체인 노드에서는 순차적으로 연결되는 분산 원장을 통해 물리적인 디스크의 양에 제한이 없이 많은 양의 데이터를 기록할 수 있게 된다.
도 5는 본 발명의 다른 실시예에 따른 블록체인 노드의 병렬 원장 운영 방법을 나타낸다.
도 5의 실시예에서도 블록체인 노드에 다수의 분산 원장을 포함하는 구성을 제시한다. 아울러, 다수의 분산 원장의 내용을 요약한 요약 블록을 생성하여 상기 다수의 분산 원장과 독립된 요약 블록 원장에 등록하는 방식을 제시한다.
도 5를 참조하면, 트랜잭션 서버는 트랜잭션들에 대한 등록 요청 정보를 획득하면, 등록 요청된 트랜잭션을 적어도 하나 포함하는 블록을 블록 체인 원장에 등록한다. 이와 같은 방식으로 하나 이상의 블록 체인 원장에 트랜잭션을 적어도 하나 포함하는 블록이 등록된 상태에서, 특정 블록 체인 원장이 기설정 조건을 만족하는 경우, 트랜잭션 서버는 블록 체인 원장에 등록되어 있는 블록에 포함된 트랜잭션을 참조하여 요약 블록을 생성한다. 상기 기설정 조건은, 상기 블록 체인 원장이 등록되는 트랜잭션의 개수가 소정 개수를 초과하거나(예를 들어, 트랜잭션의 카운트가 100회를 넘었거나), 상기 트랜잭션 사이의 등록 간격이 소정 기간을 초과하거나(예를 들어, 이전 트랜잭션이 기록된 지 1주일이 넘었거나), 상기 블록 체인 원장에서 분기된 새로운 블록 체인 원장이 생성되는 경우를 포함한다.
그리고 나서 트랜잭션 서버는 요약 블록을 상기 하나 이상의 블록 체인 원장들과는 독립된 요약 블록 원장에 등록한다.
예를 들어, 트랜잭션 서버는 블록 체인 원장에 등록되어 있는 각각의 어드레스에 대응되는 트랜잭션 정보를 참조로 하여 각각의 어드레스 별로 밸런스를 계산하여 요약 블록들을 생성할 수 있다.
또한 블록 체인에 다수의 분산 원장, 예를 들어, 제1 내지 제n 분산 원장이 포함되는 경우에는, 트랜잭션 서버는, 제1 내지 제n 분산 원장에 등록되어 있는 블록에 포함된 트랜잭션들을 참조한 요약 블록을 생성하는데, 각각의 분산 원장, 예를 들어, 1 내지 제n 분산 원장에 등록되어 있는 블록에 포함된 트랜잭션들의 사용자 어드레스 정보를 참조로 하여 각각의 어드레스별로 밸런스를 계산하여 요약 블록들을 생성한다.
도 5를 참조하면, 특정 분산 원장 내에 Tx1 이 (A-1) 어드레스에서 +10 라는 양(Amount), 즉, 밸런스가 기록되고, Tx2 이 (B-1) 어드레스에서 -10 라는 밸런스가 기록되고, Tx3 이 (A-2) 어드레스에서 +5 라는 밸런스가 기록되고, Tx4 가 (A-3) 어드레스에서 +3 라는 밸런스가 기록되고, Tx5 가 (C-1) 어드레스에서 +20 라는 밸런스가 기록되고, Tx6 이 (B-2) 어드레스에서 -20 라는 밸런스가 기록되어 있다면, 요약 블록은 각 어드레스, 즉, A, B, C 사용자에 대응되는 어드레스 별로 밸런스를 계산한 정보가 된다. 도 5의 예에서는, A 어드레스의 밸런스는 +10 +5 +3 으로 +18 이 되며 모두 3개의 트랜잭션이 요약되었다는 것을 카운트(Cnt) 값으로 나타내고, B 어드레스의 밸런스는 -10 -20 으로 -30 이 되며 모두 2개의 트랜잭션이 요약되었다는 것을 카운트(Cnt) 값으로 나타내고, C 어드레스의 밸런스는 +20 이 되며 모두 1개의 트랜잭션이 요약되었다는 것을 카운트(Cnt) 값으로 나타내도록, 요약 블록이 생성된다.
한편, 상기 다수의 분산 원장들은, 상기 기설정 조건이 소정의 블록 뎁스나 소정의 파일 사이즈인 경우에는 일정 크기의 디스크 용량 별로 원장을 분산하여 운영할 수도 있고, 상기 기설정 조건이 소정의 기간을 경우, 상기 기간별로 원장을 분산하여 운영할 수 있다. 예를 들어, 기설정 조건이 소정의 기간을 경우, 제1 분산원장은 2015년에 기록된 분산 원장, 제2 분산 원장은 제2016년에 기록된 분산 원장, 제3 분산 원장은 2017년에 기록된 분산 원장, 제4 분산 원장은 2018년에 기록된 분산 원장일 수 있다. 이 경우 여러 개의 분리된 분산 원장만을 나눠 운영하면, 과거 데이터에 대한 신뢰성을 제공할 수 없겠지만, 본 발명에서와 같이 요약 블록 원장을 운영하면, 과거 데이터에 대해서도 블록체인에서 제공하는 신뢰성을 제공할 수 있게 된다.
도 6은 본 발명의 또 다른 실시예에 따른 블록체인 노드의 병렬 원장 운영 방법을 나타낸다.
도 6의 실시예에서도, 블록체인 노드에 다수의 분산 원장을 포함하는 구성을 제시한다. 아울러, 다수의 분산 원장의 내용을 요약율을 높이기 위해 트랜잭션을 어드레스 별로 재배열하여 블록 체인 원장과 독립된 오더드(ordered) 블록 원장에 등록하여 별개의 오더드 블록 원장을 운영하는 방식을 제시한다.
도 6을 참조하면, 트랜잭션 서버는, 트랜잭션들에 대한 등록 요청 정보를 획득하면, 등록 요청된 트랜잭션을 적어도 하나 포함하는 블록을 블록 체인 원장에 등록한다. 이와 같은 방식으로 하나 이상의 블록 체인 원장에 트랜잭션을 적어도 하나 포함하는 블록이 등록된 상태에서, 특정 블록 체인 원장이 기설정 조건을 만족하는 경우, 트랜잭션 서버는, 블록 체인 원장에 등록되어 있는 블록에 포함된 적어도 하나의 트랜잭션들을 참조하여 각각의 사용자 어드레스별로 트랜잭션들을 순차적으로 재배열하고, 이를 상기 블록 체인 원장과 독립된 오더드 블록 원장에 등록한다. 이때 상기 기설정 조건은 도 5의 실시예에서와 동일하거나 다를 수 있다. 즉, 상기 기설정 조건은, 상기 블록 체인 원장이 등록되는 트랜잭션의 개수가 소정 개수를 초과하거나(예를 들어, 트랜잭션의 카운트가 100회를 넘었거나), 상기 트랜잭션 사이의 등록 간격이 소정 기간을 초과하거나(예를 들어, 이전 트랜잭션이 기록된 지 1주일이 넘었거나), 상기 블록 체인 원장에서 분기된 새로운 블록 체인 원장이 생성되는 경우를 포함한다.
도 6을 참조하면, 특정 분산 원장 내에 Tx1 이 (A-1) 어드레스에서 +10 라는 양(Amount), 즉, 밸런스가 기록되고, Tx2 이 (B-1) 어드레스에서 -10 라는 밸런스가 기록되고, Tx3 이 (A-2) 어드레스에서 +5 라는 밸런스가 기록되고, Tx4 가 (A-3) 어드레스에서 +3 라는 밸런스가 기록되고, Tx5 가 (C-1) 어드레스에서 +20 라는 밸런스가 기록되고, Tx6 이 (B-2) 어드레스에서 -20 라는 밸런스가 기록되어 있다면, 오더드 블록 원장에는 A 사용자의 어드레스(A-1, A-2, A-3), B 사용자의 어드레스(B-1, B-2), C 사용자의 어드레스(C-1) 별 오더(order) 순으로 분류되어 재배열된다. 이에 따라, 분산 원장에 Tx1, Tx2, Tx3, Tx4, Tx5, Tx6 순서로 기록된 트랜잭션들은 오더드 블록 원장에는, Tx1, Tx3, Tx4, Tx2, Tx6, Tx5 순서로 재배열되어 기록된다.
이와 같이 어드레스 별로 트랜잭션들이 재배열되면, 동일 계좌(즉, 어드레스)에 대한 트랜잭션을 최대한 묶어 저장함으로써 요약 블록을 생성할 때 압축 효율을 높이고, 아울러 데이터 탐색시간도 최소화할 수 있게 된다.
한편, 본 발명의 또 다른 실시예에서는, 오더드 블록 원장 이외에 시퀀스(sequence) 원장도 함께 운영되는데, 시퀀스 원장은 트랜잭션의 순서를 관리하며, 필요시 트랜잭션의 재현을 담당한다. 추가 생성되는 시퀀스 원장은, 오더드 블록을 상기 오더드 블록 원장에 등록 한 후 또는 등록 할 때 생성되고, 상기 블록 체인 원장의 트랜잭션들의 순서 정보를 등록하기 위한 원장이다. 도 6을 참조하면, 시퀀스 원장은 좌측의 분산 원장에서의 트랜잭션들(Tx1, Tx2, Tx3, Tx4, Tx5, Tx6, … 등)을 그 순서대로, 1, 2, 3, 4, 5, 6.. 등의 순서를 할당하여 같이 저장하는 기능을 한다.
한편, 도 6의 실시예에서의 다수의 분산 원장들은 도 5에서와 같이, 기간별로 원장을 분산하여 운영할 수 있다. 이 경우, 블록 체인에 제1 내지 제n 분산 원장이 포함된다고 가정하면, 트랜잭션 서버는, 상기 제1 내지 상기 제n 분산 원장에 등록되어 있는 블록에 포함된 상기 트랜잭션들을 참조하여 상기 오더드 블록을 생성하게 된다. 일 예로, 오더드 블록 원장에 등록된 오더드 블록은, 제1 내지 제n 분산 원장에 등록되어 있는 블록에 포함된 트랜잭션들을 사용자 어드레스별로 분류하고, 상기 사용자 어드레스 및 해당 트랜잭션의 오더(order)에 따라 상기 사용자 어드레스별로 분류된 트랜잭션들을 나열하여 생성한 블록이다.
그런 다음, 어드레스 별로 재배열된 오더드 블록 원장을 이용하여 요약 블록을 생성할 수도 있다. 따라서 이 경우에도, 오더드 블록 원장과 요약 블록 원장을 운영하게 되면, 과거 데이터에 대해서도 블록체인에서 제공하는 신뢰성을 제공할 수 있게 된다.
본 발명은 하나의 노드에 병렬 연결되는 다수의 원장을 통해 많은 양의 트랜잭션을 처리하는 블록체인에서 처리할 데이터가 하나의 원장이 보관할 수 있는 양을 넘는 경우에도 이를 처리할 수 있고, 블록체인의 크기가 과도하게 커지는 것을 방지하고 블록체인 노드 운영의 효율성을 높일 수 있다.
또한 본 발명은 하나의 블록체인 노드에 다수개의 병렬 원장을 사용할 때, 다수의 병렬 원장에 기록된 데이터를 요약한 요약 원장을 운용하여 대용량 원장 관리를 효율적으로 운영할 수 있으며, 과거 데이터에 대해서도 블록체인에서 제공하는 신뢰성을 제공할 수 있게 된다. 또한 본 발명은 하나의 블록체인 노드에 다수개의 병렬 원장을 사용할 때, 각 분산 원장 내의 트랜잭션을 어드레스 별로 재배열한 독립된 원장을 운용하여 데이터의 압축 효율을 높일 수 있는 효과가 있다. 아울러, 본 발명은 대용량 트랜잭션 발생에 따라 다수의 원장으로 분리되고 관리되는 환경에서도, 블록체인의 기본 특성인 원장 데이터에 대한 신뢰성을 제공할 수 있다.
또한, 이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.
10: 통신부,
20: 프로세서,
100: 트랜잭션 서버

Claims (34)

  1. 블록 체인을 이용한 트랜잭션 처리 방법에 있어서,
    (a) 트랜잭션들에 대한 등록 요청 정보가 획득되면, 트랜잭션 서버가, 상기 등록 요청된 트랜잭션들에 대응하는 블록을 현재 active 상태에 있는 분산 원장인 제n 분산 원장에 기록하기 위하여, 상기 제n 분산 원장의 저장 용량을 확인하는 단계; 및
    (b) 상기 확인되는 상기 제n 분산 원장의 저장 용량이 기설정 조건을 만족하면, 상기 트랜잭션 서버가, 상기 제n 분산 원장에 등록되어 있는 블록에 포함된 상기 트랜잭션들을 참조하여 대표 블록을 생성하고, 상기 대표 블록을 제네시스 블록으로 하는 제n+1 분산 원장을 생성함으로써 상기 대표 블록 이후에 등록 요청되는 블록들이 상기 제n+1 분산 원장에 등록되도록 하는 단계;
    를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 (b) 단계에서, 상기 트랜잭션 서버는, 상기 기설정된 조건을 만족하는 시점까지 상기 제n 분산 원장에 등록된 블록들에 대한 제1 요약(summary) 정보를 생성하고, 상기 제n 분산 원장에 추가 등록 요청되는 블록에 대응되는 큐를 저장한 후, 상기 큐에 대응되는 블록을 참조하여 제2 요약 정보를 생성하면, 상기 제1 요약 정보 및 상기 제2 요약 정보를 참조하여 상기 대표 블록을 생성하는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서,
    상기 (b) 단계에서,
    상기 기설정 조건은, 상기 제n 분산 원장 내의 블록 체인이 소정의 기준점 이상의 블록 뎁스(block depth) 또는 소정 크기 이상의 파일 사이즈(file size) 또는 소정의 기간인 조건인 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서,
    상기 (b) 단계에서,
    상기 대표 블록은, 상기 제n 분산 원장에 등록되어 있는 각각의 어드레스에 대응되는 트랜잭션 정보를 요약하여 생성하는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서,
    상기 (b) 단계에서,
    상기 대표 블록은 상기 제n 분산 원장의 마지막 블록에 등록하는 것을 특징으로 하는 방법.
  6. 제 1 항에 있어서,
    상기 (b) 단계에서,
    상기 제n 분산 원장을 read-only 상태인 디액티브(deactive) 분산 원장으로 처리하고, 상기 제n+1 분산 원장을 액티브(active) 분산 원장으로 처리한 상태에서, 상기 트랜잭션 서버가, 상기 트랜잭션들에 대한 등록 요청에 대응되는 트랜잭션을 상기 액티브 분산 원장에 등록하는 것을 특징으로 하는 방법.
  7. 제 1 항에 있어서,
    상기 (a) 단계에서,
    외부 서비스의 트랜잭션들에 대한 등록 요청에 대응되는 트랜잭션을 적어도 하나 포함하는 블록을 서비스별 프라이빗 블록 체인 원장 별로 각각 등록하는 것을 특징으로 하는 방법.
  8. 블록 체인을 이용한 트랜잭션 처리 방법에 있어서,
    (a) 트랜잭션들에 대한 등록 요청 정보가 획득되면, 트랜잭션 서버가, 상기 등록 요청된 트랜잭션을 적어도 하나 포함하는 블록을 블록 체인 원장에 등록하는 단계;
    (b) 상기 블록 체인 원장이 기설정 조건을 만족하는 경우, 상기 트랜잭션 서버가, 상기 블록 체인 원장에 등록되어 있는 블록에 포함된 트랜잭션들을 참조하여 요약 블록을 생성하는 단계; 및
    (c) 상기 트랜잭션 서버가, 상기 요약 블록을 상기 블록 체인 원장과 독립된 요약 블록 원장에 등록하는 단계;
    를 포함하는 것을 특징으로 하는 방법.
  9. 제 8 항에 있어서,
    상기 (b) 단계는,
    상기 블록 체인 원장에 등록되어 있는 각각의 어드레스에 대응되는 트랜잭션 정보를 참조로 하여 각각의 어드레스별로 밸런스를 계산하여 상기 요약 블록을 생성하는 것을 특징으로 하는 방법.
  10. 제 8 항에 있어서,
    상기 (b) 단계에서,
    상기 기설정 조건은, 상기 블록 체인 원장이 등록되는 트랜잭션의 개수가 소정 개수를 초과하거나, 상기 트랜잭션 사이의 등록 간격이 소정 기간을 초과하거나, 상기 블록 체인 원장에서 분기된 새로운 블록 체인 원장이 생성되는 경우를 포함하는 것을 특징으로 하는 방법.
  11. 제 8 항에 있어서,
    상기 (b) 단계에서,
    상기 블록 체인에 제1 내지 제n 분산 원장이 포함될 때, 상기 트랜잭션 서버가, 상기 제1 내지 상기 제n 분산 원장에 등록되어 있는 블록에 포함된 상기 트랜잭션들을 참조하여 상기 요약 블록을 생성하는 것을 특징으로 하는 방법.
  12. 제 11 항에 있어서,
    상기 요약 블록은, 상기 제1 내지 상기 제n 분산 원장에 등록되어 있는 블록에 포함된 트랜잭션들의 사용자 어드레스 정보를 참조로 하여 각각의 어드레스별로 밸런스를 계산하여 생성한 블록인 것을 특징으로 하는 방법.
  13. 블록 체인을 이용한 트랜잭션 처리 방법에 있어서,
    (a) 트랜잭션들에 대한 등록 요청 정보가 획득되면, 트랜잭션 서버가, 상기 등록 요청된 트랜잭션을 적어도 하나 포함하는 블록을 블록 체인 원장에 등록하는 단계; 및
    (b) 상기 블록 체인 원장이 기설정 조건을 만족하는 경우, 상기 트랜잭션 서버가, 상기 블록 체인 원장에 등록되어 있는 블록에 포함된 적어도 하나의 트랜잭션들을 참조하여 각각의 사용자 어드레스별로 트랜잭션들을 순차적으로 재배열하고, 이를 상기 블록 체인 원장과 독립된 오더드 블록 원장에 등록하는 단계;
    를 포함하는 것을 특징으로 하는 방법.
  14. 제 13 항에 있어서,
    상기 (b) 단계에서,
    상기 기설정 조건은, 상기 블록 체인 원장이 등록되는 트랜잭션의 개수가 소정 개수를 초과하거나, 상기 트랜잭션 사이의 등록 간격이 소정 기간을 초과하거나, 상기 블록 체인 원장에서 분기된 새로운 블록 체인 원장이 생성되는 경우를 포함하는 것을 특징으로 하는 방법.
  15. 제 13 항에 있어서,
    상기 (b) 단계에서,
    상기 트랜잭션 서버가, 상기 오더드 블록을 상기 오더드 블록 원장에 등록하는 경우, 상기 블록 체인 원장의 트랜잭션들의 순서 정보를 등록하기 위한 시퀀스 원장을 추가 생성하는 것을 특징으로 하는 방법.
  16. 제 13 항에 있어서,
    상기 (b) 단계에서,
    상기 블록 체인에 제1 내지 제n 분산 원장이 포함될 때, 상기 트랜잭션 서버가, 상기 제1 내지 상기 제n 분산 원장에 등록되어 있는 블록에 포함된 상기 트랜잭션들을 참조하여 상기 오더드 블록을 생성하는 것을 특징으로 하는 방법.
  17. 제 16 항에 있어서,
    상기 (b) 단계에서,
    상기 오더드 블록 원장에 등록된 오더드 블록은, 상기 제1 내지 상기 제n 분산 원장에 등록되어 있는 블록에 포함된 트랜잭션들을 사용자 어드레스별로 분류하고, 상기 사용자 어드레스 및 해당 트랜잭션의 오더(order)에 따라 상기 사용자 어드레스별로 분류된 트랜잭션들을 나열하여 생성한 블록인 것을 특징으로 하는 방법.
  18. 블록 체인을 이용하여 트랜잭션을 처리하는 트랜잭션 서버에 있어서,
    외부에서 트랜잭션들에 대한 등록 요청 정보를 수신하기 위한 통신부; 및
    (i) 상기 트랜잭션들에 대한 등록 요청 정보가 획득되면, 상기 등록 요청된 트랜잭션들에 대응하는 블록을 현재 active 상태에 있는 분산 원장인 제n 분산 원장에 기록하기 위하여, 상기 제n 분산 원장의 저장 용량을 확인하는 프로세스, 및 (ii) 상기 확인되는 상기 제n 분산 원장의 저장 용량이 기설정 조건을 만족하면, 상기 제n 분산 원장에 등록되어 있는 블록에 포함된 상기 트랜잭션들을 참조하여 대표 블록을 생성하고, 상기 대표 블록을 제네시스 블록으로 하는 제n+1 분산 원장을 생성함으로써 상기 대표 블록 이후에 등록 요청되는 블록들이 상기 제n+1 분산 원장에 등록되도록 하는 프로세스를 수행하기 위한 프로세서;
    를 포함하는 서버.
  19. 제 18 항에 있어서,
    상기 (ii) 프로세스에서,
    상기 프로세서는, 상기 기설정된 조건을 만족하는 시점까지 상기 제n 분산 원장에 등록된 블록들에 대한 제1 요약(summary) 정보를 생성하고, 상기 제n 분산 원장에 추가 등록 요청되는 블록에 대응되는 큐를 저장한 후, 상기 큐에 대응되는 블록을 참조하여 제2 요약 정보를 생성하면, 상기 제1 요약 정보 및 상기 제2 요약 정보를 참조하여 상기 대표 블록을 생성하는 것을 특징으로 하는 서버.
  20. 제 18 항에 있어서,
    상기 (ii) 프로세스에서,
    상기 기설정 조건은, 상기 제n 분산 원장 내의 블록 체인이 소정의 기준점 이상의 블록 뎁스(block depth) 또는 소정 크기 이상의 파일 사이즈(file size) 또는 소정의 기간인 조건인 것을 특징으로 하는 서버.
  21. 제 18 항에 있어서,
    상기 (ii) 프로세스에서,
    상기 대표 블록은, 상기 제n 분산 원장에 등록되어 있는 각각의 어드레스에 대응되는 트랜잭션 정보를 요약하여 생성하는 것을 특징으로 하는 서버.
  22. 제 18 항에 있어서,
    상기 (ii) 프로세스에서,
    상기 대표 블록은 상기 제n 분산 원장의 마지막 블록에 등록하는 것을 특징으로 하는 서버.
  23. 제 18 항에 있어서,
    상기 (ii) 프로세스에서,
    상기 제n 분산 원장을 read-only 상태인 디액티브(deactive) 분산 원장으로 처리하고, 상기 제n+1 분산 원장을 액티브(active) 분산 원장으로 처리한 상태에서, 상기 프로세서가, 상기 트랜잭션들에 대한 등록 요청에 대응되는 트랜잭션을 상기 액티브 분산 원장에 등록하는 것을 특징으로 하는 서버.
  24. 제 18 항에 있어서,
    상기 (i) 프로세스에서,
    외부 서비스의 트랜잭션들에 대한 등록 요청에 대응되는 트랜잭션을 적어도 하나 포함하는 블록을 서비스별 프라이빗 블록 체인 원장 별로 각각 등록하는 것을 특징으로 하는 서버.
  25. 블록 체인을 이용하여 트랜잭션을 처리하는 트랜잭션 서버에 있어서,
    외부에서 트랜잭션들에 대한 등록 요청 정보를 수신하기 위한 통신부; 및
    (i) 상기 트랜잭션들에 대한 등록 요청 정보가 획득되면, 상기 등록 요청된 트랜잭션을 적어도 하나 포함하는 블록을 블록 체인 원장에 등록하는 프로세스, (ii) 상기 블록 체인 원장이 기설정 조건을 만족하는 경우, 상기 블록 체인 원장에 등록되어 있는 블록에 포함된 트랜잭션들을 참조하여 요약 블록을 생성하는 프로세스 및 (iii) 상기 요약 블록을 상기 블록 체인 원장과 독립된 요약 블록 원장에 등록하는 프로세스를 수행하기 위한 프로세서;
    를 포함하는 것을 특징으로 하는 서버.
  26. 제 25 항에 있어서,
    상기 (ii) 프로세스는,
    상기 블록 체인 원장에 등록되어 있는 각각의 어드레스에 대응되는 트랜잭션 정보를 참조로 하여 각각의 어드레스별로 밸런스를 계산하여 상기 요약 블록을 생성하는 것을 특징으로 하는 서버.
  27. 제 25 항에 있어서,
    상기 (ii) 프로세스에서,
    상기 기설정 조건은, 상기 블록 체인 원장이 등록되는 트랜잭션의 개수가 소정 개수를 초과하거나, 상기 트랜잭션 사이의 등록 간격이 소정 기간을 초과하거나, 상기 블록 체인 원장에서 분기된 새로운 블록 체인 원장이 생성되는 경우를 포함하는 것을 특징으로 하는 서버.
  28. 제 25 항에 있어서,
    상기 (ii) 프로세스에서,
    상기 블록 체인에 제1 내지 제n 분산 원장이 포함될 때, 상기 프로세서가, 상기 제1 내지 상기 제n 분산 원장에 등록되어 있는 블록에 포함된 상기 트랜잭션들을 참조하여 상기 요약 블록을 생성하는 것을 특징으로 하는 서버.
  29. 제 28 항에 있어서,
    상기 요약 블록은, 상기 제1 내지 상기 제n 분산 원장에 등록되어 있는 블록에 포함된 트랜잭션들의 사용자 어드레스 정보를 참조로 하여 각각의 어드레스별로 밸런스를 계산하여 생성한 블록인 것을 특징으로 하는 서버.
  30. 블록 체인을 이용하여 트랜잭션을 처리하는 트랜잭션 서버에 있어서,
    외부에서 트랜잭션들에 대한 등록 요청 정보를 수신하기 위한 통신부; 및
    (i) 상기 트랜잭션들에 대한 등록 요청 정보가 획득되면, 상기 등록 요청된 트랜잭션을 적어도 하나 포함하는 블록을 블록 체인 원장에 등록하는 프로세스, 및 (ii) 상기 블록 체인 원장이 기설정 조건을 만족하는 경우, 상기 블록 체인 원장에 등록되어 있는 블록에 포함된 적어도 하나의 트랜잭션들을 참조하여 각각의 사용자 어드레스별로 트랜잭션들을 순차적으로 재배열하고, 이를 상기 블록 체인 원장과 독립된 오더드 블록 원장에 등록하는 프로세스를 수행하기 위한 프로세서;
    를 포함하는 것을 특징으로 하는 서버.
  31. 제 30 항에 있어서,
    상기 (ii) 프로세스에서,
    상기 기설정 조건은, 상기 블록 체인 원장이 등록되는 트랜잭션의 개수가 소정 개수를 초과하거나, 상기 트랜잭션 사이의 등록 간격이 소정 기간을 초과하거나, 상기 블록 체인 원장에서 분기된 새로운 블록 체인 원장이 생성되는 경우를 포함하는 것을 특징으로 하는 서버.
  32. 제 30 항에 있어서,
    상기 (ii) 프로세스에서,
    상기 프로세서가, 상기 오더드 블록을 상기 오더드 블록 원장에 등록하는 경우, 상기 블록 체인 원장의 트랜잭션들의 순서 정보를 등록하기 위한 시퀀스 원장을 추가 생성하는 것을 특징으로 하는 서버.
  33. 제 30 항에 있어서,
    상기 (ii) 프로세스에서,
    상기 블록 체인에 제1 내지 제n 분산 원장이 포함될 때, 상기 프로세서가, 상기 제1 내지 상기 제n 분산 원장에 등록되어 있는 블록에 포함된 상기 트랜잭션들을 참조하여 상기 오더드 블록을 생성하는 것을 특징으로 하는 서버.
  34. 제 33 항에 있어서,
    상기 (ii) 프로세스에서,
    상기 오더드 블록 원장에 등록된 오더드 블록은, 상기 제1 내지 상기 제n 분산 원장에 등록되어 있는 블록에 포함된 트랜잭션들을 사용자 어드레스별로 분류하고, 상기 사용자 어드레스 및 해당 트랜잭션의 오더(order)에 따라 상기 사용자 어드레스별로 분류된 트랜잭션들을 나열하여 생성한 블록인 것을 특징으로 하는 서버.
KR1020180029458A 2018-03-13 2018-03-13 블록체인을 이용한 트랜잭션 처리 방법 및 이를 이용한 트랜잭션 서버 KR102024005B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180029458A KR102024005B1 (ko) 2018-03-13 2018-03-13 블록체인을 이용한 트랜잭션 처리 방법 및 이를 이용한 트랜잭션 서버
US16/299,168 US20190286629A1 (en) 2018-03-13 2019-03-12 Method for processing transactions using blockchain network, and transaction management server using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180029458A KR102024005B1 (ko) 2018-03-13 2018-03-13 블록체인을 이용한 트랜잭션 처리 방법 및 이를 이용한 트랜잭션 서버

Publications (2)

Publication Number Publication Date
KR20190108020A true KR20190108020A (ko) 2019-09-23
KR102024005B1 KR102024005B1 (ko) 2019-09-24

Family

ID=67904016

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180029458A KR102024005B1 (ko) 2018-03-13 2018-03-13 블록체인을 이용한 트랜잭션 처리 방법 및 이를 이용한 트랜잭션 서버

Country Status (2)

Country Link
US (1) US20190286629A1 (ko)
KR (1) KR102024005B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107453896B (zh) * 2017-06-27 2020-08-04 创新先进技术有限公司 多重区块链网络数据处理方法、装置及服务器
WO2019236637A1 (en) * 2018-06-06 2019-12-12 Argosoperem Llc Blockchain structure for an intellectual property exchange including a pointer to an oracle and user interface therefor
EP3767514A1 (en) * 2019-06-26 2021-01-20 Indian Institute of Technology Bombay Method for scaling computation in blockchain by delaying transaction execution
US11860856B2 (en) 2020-07-20 2024-01-02 International Business Machines Corporation Managing distributed ledger storage space
CN112035576A (zh) * 2020-09-03 2020-12-04 厦门大学 区块链账本的分布式存储方法
US11468089B1 (en) * 2021-02-19 2022-10-11 Sprint Communications Company L.P. Synchronization of distributed ledger processes

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101727525B1 (ko) * 2016-09-05 2017-04-17 주식회사 스케일체인 블록체인 기반 분산 저장 방법 및 이를 이용한 장치
JP2017091149A (ja) * 2015-11-09 2017-05-25 日本電信電話株式会社 ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム
US20170228822A1 (en) * 2015-04-28 2017-08-10 Domus Tower, Inc. Blockchain technology to settle transactions
KR20180014534A (ko) * 2016-08-01 2018-02-09 서강대학교산학협력단 블록체인 기반 트랜잭션 검증 시스템 및 그 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170228822A1 (en) * 2015-04-28 2017-08-10 Domus Tower, Inc. Blockchain technology to settle transactions
JP2017091149A (ja) * 2015-11-09 2017-05-25 日本電信電話株式会社 ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム
KR20180014534A (ko) * 2016-08-01 2018-02-09 서강대학교산학협력단 블록체인 기반 트랜잭션 검증 시스템 및 그 방법
KR101727525B1 (ko) * 2016-09-05 2017-04-17 주식회사 스케일체인 블록체인 기반 분산 저장 방법 및 이를 이용한 장치

Also Published As

Publication number Publication date
KR102024005B1 (ko) 2019-09-24
US20190286629A1 (en) 2019-09-19

Similar Documents

Publication Publication Date Title
KR102024005B1 (ko) 블록체인을 이용한 트랜잭션 처리 방법 및 이를 이용한 트랜잭션 서버
CN107608773B (zh) 任务并发处理方法、装置及计算设备
US20080313502A1 (en) Systems, methods and computer products for trace capability per work unit
US8880837B2 (en) Preemptively allocating extents to a data set
CN107430522B (zh) 虚拟机系统
CN111339078A (zh) 数据实时存储方法、数据查询方法、装置、设备、介质
CN110134338B (zh) 一种分布式存储系统及其数据冗余保护方法和相关设备
US20100030994A1 (en) Methods, systems, and computer readable media for memory allocation and deallocation
CN107273195A (zh) 一种大数据的批处理方法、装置及计算机系统
CN106570113B (zh) 一种海量矢量切片数据云存储方法及系统
US10810174B2 (en) Database management system, database server, and database management method
JPWO2015029187A1 (ja) データベース管理システム及び計算機システム
US10303678B2 (en) Application resiliency management using a database driver
CN113067883A (zh) 数据传输方法、装置、计算机设备及存储介质
CN105989163A (zh) 数据实时处理方法及系统
CN108427728A (zh) 元数据的管理方法、设备及计算机可读介质
CN111638995A (zh) 元数据备份方法、装置及设备、存储介质
US20190347165A1 (en) Apparatus and method for recovering distributed file system
US20130125139A1 (en) Logging In A Computer System
AU2015265595B2 (en) System and method for dynamic collection of system management data in a mainframe computing environment
CN108984779A (zh) 分布式文件系统快照回滚元数据处理方法、装置及设备
CN109088782A (zh) 分布式系统的日志收集方法及装置
CN109324867A (zh) 一种虚拟机暂存方法、恢复方法及装置
US20180225325A1 (en) Application resiliency management using a database driver
CN104598171B (zh) 基于元数据的阵列重建方法及装置

Legal Events

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