KR20210046187A - 복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 그 장치 - Google Patents

복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 그 장치 Download PDF

Info

Publication number
KR20210046187A
KR20210046187A KR1020190129660A KR20190129660A KR20210046187A KR 20210046187 A KR20210046187 A KR 20210046187A KR 1020190129660 A KR1020190129660 A KR 1020190129660A KR 20190129660 A KR20190129660 A KR 20190129660A KR 20210046187 A KR20210046187 A KR 20210046187A
Authority
KR
South Korea
Prior art keywords
transaction
data
blockchain network
recording
blockchain
Prior art date
Application number
KR1020190129660A
Other languages
English (en)
Inventor
권영운
조정우
김준태
이광철
오화용
윤창석
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to KR1020190129660A priority Critical patent/KR20210046187A/ko
Priority to US16/664,446 priority patent/US11005932B1/en
Publication of KR20210046187A publication Critical patent/KR20210046187A/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
    • 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
    • G06F16/273Asynchronous replication or reconciliation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1059Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • 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/2365Ensuring data consistency and integrity
    • 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/2372Updates performed during offline database operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1091Interfacing with client-server systems or between P2P systems
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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
    • H04L2209/38

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 그 장치가 제공된다. 본 개시의 몇몇 실시예에 따른 복수의 블록체인 네트워크 간 데이터를 연동하는 방법은, 데이터의 기록을 위한 트랜잭션의 단계를 나누어 상기 트랜잭션의 제1 페이즈를 수행하는 단계 및 상기 제1 페이즈를 수행한 결과에 따라, 상기 트랜잭션의 제2 페이즈를 수행하는 단계를 포함하고, 상기 제1 페이즈를 수행하는 단계는, 복수의 블록체인 네트워크 중 제1 블록체인 네트워크에 상기 데이터를 기록하기 위한 제1 트랜잭션의 제1 단계를 수행하는 단계 및 상기 복수의 블록체인 네트워크 중 제2 블록체인 네트워크에 상기 데이터를 기록하기 위한 제2 트랜잭션의 제1 단계를 수행하도록 요청하는 단계를 포함한다.
이러한 방법에 따르면, 별도의 허브 네트워크를 통하지 않고도 블록체인 네트워크 간 데이터를 연동할 수 있으며, 연동된 데이터 기록의 동시성 또한 보장될 수 있다.

Description

복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 그 장치 {METHOD FOR ASSOCIATING DATA BETWEEN A PLURALITY OF BLOCKCHAIN NETWORKS AND APPARATUS THEREOF}
본 개시는 복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 그 장치에 관한 것이다. 보다 자세하게는, 상이한 블록체인 네트워크 사이에서 동일한 데이터가 서로 공유되고 기록되도록 데이터를 연동하는 방법 및 그 방법이 수행되는 장치에 관한 것이다.
블록체인(blockchain)은 지속적으로 증가하는 데이터를 특정 단위의 블록에 기록하고, P2P(peer-to-peer) 네트워크를 구성하는 각각의 블록체인 노드들이 블록을 체인 형태의 자료 구조로 관리하는 데이터 관리 기술을 의미한다. 블록체인은 네트워크에 속한 모든 블록체인 노드가 모든 트랜잭션을 검증하고 기록하는 합의(consensus) 프로세스를 통해 트랜잭션의 무결성 및 보안성을 보장할 수 있다.
블록체인 네트워크는 일반적으로 다른 블록체인 네트워크와 독립되어 자신의 네트워크 안에서 데이터를 검증하고 기록하도록 구성된다. 가령, 도 1에서와 같이 A 블록체인 네트워크(1)는 자신의 네트워크에 속한 노드 간에만 데이터를 공유할 수 있으며 다른 B 블록체인 네트워크(2)와는 원칙적으로 네트워크 간 데이터를 교환 및 공유하는 것이 어렵다.
따라서, 어떤 데이터를 복수의 블록체인 네트워크에 기록하고자 하는 경우, 완전히 별개의 기록 행위를 통해 개별 블록체인 네트워크에 각각 기록해야만 했다. 그러나 이와 같은 방법에서는, 어느 한 블록체인 네트워크에서는 데이터 기록이 성공하고 다른 블록체인 네트워크에서는 데이터 기록이 실패한 경우, 블록체인 네트워크 간 데이터 불일치를 피할 수 없었다. 또한, 완전히 별개의 행위를 통해 데이터를 기록하는 것이므로, 개별 블록체인 네트워크에 데이터가 기록되는 시점에 크게 차이가 날 수 있어 블록체인 네트워크에 데이터 기록이 성공한 경우라도 상당 시간동안 데이터가 불일치할 수 있는 문제점이 있었다.
이러한, 문제점을 해결하기 위해 복수의 블록체인 네트워크 간 데이터를 연동하려는 노력들이 시도되고 있다. 그러한 노력의 하나로 서로 다른 블록체인 네트워크 사이에 허브 네트워크를 구축하여 데이터를 연동하려는 방법이 제안되고 있다. 그러나, 허브 네트워크를 통해 데이터를 연동하는 방식은 연동되는 데이터가 퍼블릭(public) 블록체인인 허브 네트워크에 저장되게 되므로, 중요한 영업비밀을 다루는 분야에서는 이용할 수 없는 문제점이 있다. 또한, 어느 한 블록체인 네트워크에 데이터가 먼저 기록된 후 허브 네트워크를 통해 다른 블록체인 네트워크로 데이터가 연동되므로, 데이터 기록의 동시성(또는, 원자성, Atomicity)을 달성하기 어려운 문제가 있었다.
한국등록특허 제10-1922565호 (2018.11.21 공개)
본 개시의 몇몇 실시예를 통해 해결하고자 하는 기술적 과제는, 상이한 블록체인 네트워크 간에 동일한 데이터가 기록되고 관리되도록 복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 그 방법이 수행되는 장치를 제공하는 것이다.
본 개시의 몇몇 실시예를 통해 해결하고자 하는 다른 기술적 과제는, 별도의 허브 네트워크를 통하지 않고 블록체인 네트워크 간 데이터를 연동함으로써 데이터 유출을 방지할 수 있는 복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 그 방법이 수행되는 장치를 제공하는 것이다.
본 개시의 몇몇 실시예를 통해 해결하고자 하는 또 다른 기술적 과제는, 복수의 블록체인 네트워크 간 데이터를 연동함에 있어서 데이터 기록의 동시성을 보장할 수 있는 복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 그 방법이 수행되는 장치를 제공하는 것이다.
본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 개시의 몇몇 실시예에 따른 복수의 블록체인 네트워크 간 데이터를 연동하는 방법은, 데이터의 기록을 위한 트랜잭션의 단계를 나누어 상기 트랜잭션의 제1 페이즈를 수행하는 단계; 및 상기 제1 페이즈를 수행한 결과에 따라, 상기 트랜잭션의 제2 페이즈를 수행하는 단계를 포함하고, 상기 제1 페이즈를 수행하는 단계는, 복수의 블록체인 네트워크 중 제1 블록체인 네트워크에 상기 데이터를 기록하기 위한 제1 트랜잭션의 제1 단계를 수행하는 단계; 및 상기 복수의 블록체인 네트워크 중 제2 블록체인 네트워크에 상기 데이터를 기록하기 위한 제2 트랜잭션의 제1 단계를 수행하도록 요청하는 단계를 포함한다.
일 실시예로서, 상기 제2 페이즈를 수행하는 단계는, 상기 복수의 블록체인 네트워크 중 상기 제1 블록체인 네트워크에 상기 데이터를 기록하기 위한 상기 제1 트랜잭션의 제2 단계를 수행하는 단계; 및 상기 복수의 블록체인 네트워크 중 상기 제2 블록체인 네트워크에 상기 데이터를 기록하기 위한 상기 제2 트랜잭션의 제2 단계를 수행하도록 요청하는 단계를 포함할 수 있다.
일 실시예로서, 상기 제1 트랜잭션의 제1 단계, 상기 제2 트랜잭션의 제1 단계, 상기 제1 트랜잭션의 제2 단계 및 상기 제2 트랜잭션의 제2 단계는 서로 맞물려 순차적으로 수행될 수 있다.
일 실시예로서, 상기 제2 페이즈를 수행한 결과에 따라, 상기 제1 블록체인 네트워크와 상기 제2 블록체인 네트워크 사이의 데이터 기록의 일치를 위한 액션이 수행될 수 있다.
일 실시예로서, 상기 데이터 기록의 일치를 위한 액션은, 상기 제2 트랜잭션의 적어도 일부 단계가 반복적으로 재시도되는 단계를 포함할 수 있다.
일 실시예로서, 상기 데이터 기록의 일치를 위한 액션은, 상기 제2 트랜잭션의 적어도 일부 단계에 대한 상기 재시도가 성공할 때까지 다음 트랜잭션을 큐에 대기시키는 단계를 더 포함할 수 있다.
일 실시예로서, 상기 제1 트랜잭션은 상기 제1 블록체인 네트워크와 연결된 제1 장치에 의해 수행되고, 상기 제2 트랜잭션은 상기 제2 블록체인 네트워크와 연결된 제2 장치에 의해 수행되고, 상기 제2 트랜잭션의 제1 단계를 수행하도록 하는 요청은 상기 제1 장치로부터 상기 제2 장치로 전송될 수 있다.
일 실시예로서, 상기 데이터의 기록을 위한 트랜잭션을 위한 작업을 큐에 저장하는 단계 및 진행중인 다른 트랜잭션이 없을 때, 상기 큐에 저장된 상기 데이터의 기록을 위한 트랜잭션을 위한 작업을 수행하는 단계를 더 포함할 수 있다.
일 실시예로서, 상기 데이터를 외부의 데이터베이스에 저장하는 단계를 더 포함할 수 있다.
일 실시예로서, 상기 외부의 데이터베이스는, 상기 데이터의 기록을 위한 트랜잭션이 상기 제1 블록체인 네트워크 및 상기 제2 블록체인 네트워크에 동일한 순서대로 실행되도록 하기 위해 제공될 수 있다.
일 실시예로서, 상기 외부의 데이터베이스는, CFT (Crash Fault Tolerance)를 위해 제공될 수 있다.
상술한 기술적 과제를 해결하기 위한 본 개시의 몇몇 실시예에 따른 복수의 블록체인 네트워크 간 데이터를 연동하는 장치는, 하나 이상의 인스트럭션들(instructions)을 저장하는 메모리 및 상기 저장된 하나 이상의 인스트럭션들을 실행함으로써, 데이터의 기록을 위한 트랜잭션의 단계를 나누어 상기 트랜잭션의 제1 페이즈를 수행하고, 상기 제1 페이즈를 수행한 결과에 따라, 상기 트랜잭션의 제2 페이즈를 수행하는 프로세서를 포함하고, 상기 제1 페이즈는, 복수의 블록체인 네트워크 중 제1 블록체인 네트워크에 상기 데이터를 기록하기 위한 제1 트랜잭션의 제1 단계를 수행하는 것과, 상기 복수의 블록체인 네트워크 중 제2 블록체인 네트워크에 상기 데이터를 기록하기 위한 제2 트랜잭션의 제1 단계를 수행하도록 요청하는 것을 포함한다.
일 실시예로서, 상기 프로세서는, 상기 제2 페이즈를 수행한 결과에 따라, 상기 제1 블록체인 네트워크와 상기 제2 블록체인 네트워크 사이의 데이터 기록의 일치를 위한 액션을 수행할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 개시의 몇몇 실시예에 따른 컴퓨터 프로그램은, 컴퓨팅 장치와 결합되어, 데이터의 기록을 위한 트랜잭션의 단계를 나누어 상기 트랜잭션의 제1 페이즈를 수행하는 단계; 및 상기 제1 페이즈를 수행한 결과에 따라 상기 트랜잭션의 제2 페이즈를 수행하는 단계를 실행시키도록 컴퓨터로 판독가능한 기록 매체에 저장되고, 상기 제1 페이즈를 수행하는 단계는, 복수의 블록체인 네트워크 중 제1 블록체인 네트워크에 상기 데이터를 기록하기 위한 제1 트랜잭션의 제1 단계를 수행하는 단계; 및 상기 복수의 블록체인 네트워크 중 제2 블록체인 네트워크에 상기 데이터를 기록하기 위한 제2 트랜잭션의 제1 단계를 수행하도록 요청하는 단계를 포함한다.
도 1은 종래의 블록체인 네트워크 환경에서 서로 다른 블록체인 네트워크 간 데이터 연동이 어려운 문제를 설명하기 위한 개념도이다.
도 2는 본 개시의 몇몇 실시예에 따른 복수의 블록체인 네트워크 간 데이터를 연동하는 시스템을 설명하기 위한 예시적인 구성도이다.
도 3은 도 2의 실시예에 분산 데이터베이스(500)가 추가되는 실시예를 설명하기 위한 예시적인 구성도이다.
도 4는 본 개시의 몇몇 실시예에 따른 복수의 블록체인 네트워크 간 데이터를 연동하는 방법을 나타내는 순서도이다.
도 5는 도 4에 도시된 실시예의 S120 단계를 구체화한 실시예를 나타내는 순서도이다.
도 6은 도 4에 도시된 실시예의 S130 단계를 구체화한 실시예를 나타내는 순서도이다.
도 7은 도 4에 도시된 실시예의 S140 단계를 구체화한 실시예를 나타내는 순서도이다.
도 8 내지 도 10은 본 개시의 몇몇 실시예들에 따른 복수의 블록체인 네트워크 간 데이터 연동 방법을 복수의 연동 장치에 의한 일련의 프로세스로 설명하는 예시적인 흐름도이다.
도 11은 본 개시의 다양한 실시예에 따른 장치들을 구현할 수 있는 예시적인 컴퓨팅 장치를 도시한다.
이하, 첨부된 도면을 참조하여 본 개시의 바람직한 실시예들을 상세히 설명한다. 본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 개시의 기술적 사상을 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
또한, 본 개시의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
본 개시에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하에서는, 앞서 상술한 기술적 과제를 해결하기 위한 본 개시의 다양한 실시예들에 대하여 설명하도록 한다.
도 2는 본 개시의 몇몇 실시예에 따른 복수의 블록체인 네트워크 간 데이터를 연동하는 방법이 동작하는 시스템 환경을 설명하기 위한 예시적인 구성도이다. 도 2를 참조하면, 시스템 환경(1000)은 제1 블록체인 네트워크(10), 제2 블록체인 네트워크(20), 제1 블록체인 네트워크(10)와 연결된 제1 연동 장치(100), 제2 블록체인 네트워크(20)와 연결된 제2 연동 장치(200), 및 제1 연동 장치(100)와 통신하는 사용자 단말(300)을 포함한다.
제1 블록체인 네트워크(10)는 복수의 블록체인 노드들에 의해 형성된 임의의 블록체인 네트워크이다. 제1 블록체인 네트워크(10)는 트랜잭션 요청에 대해 블록체인 노드들의 분산 합의를 통해 그 정합성을 검증하고, 검증한 결과에 따라 새롭게 생성되는 블록에 트랜잭션 데이터를 기록하는 네트워크일 수 있으나, 이에 한정되는 것은 아니다.
제2 블록체인 네트워크(20) 또한 복수의 블록체인 노드들에 의해 형성된 임의의 블록체인 네트워크이다. 제2 블록체인 네트워크(20) 역시 트랜잭션 요청에 대해 블록체인 노드들의 분산 합의를 통해 그 정합성을 검증하고, 검증한 결과에 따라 새롭게 생성되는 블록에 트랜잭션 데이터를 기록하는 네트워크일 수 있으나, 이에 한정되는 것은 아니다.
일 실시예로서, 제1 블록체인 네트워크(10) 및 제2 블록체인 네트워크(20)는 서로 다른 유형의 블록체인 네트워크일 수 있다. 가령, 제1 블록체인 네트워크(10)와 제2 블록체인 네트워크(20)는 분산합의 알고리즘, 트랜잭션 아키텍쳐 또는 블록생성 알고리즘 등이 상이한 네트워크들 일 수 있다. 예를 들어, 제1 블록체인 네트워크(10)는 Hyperledger Fabric 네트워크이고, 제2 블록체인 네트워크(20)는 Ethereum 네트워크일 수 있으나, 이에 한정되는 것은 아니다.
제1 연동 장치(100)는 제1 블록체인 네트워크(10)와 연결되어 제1 블록체인 네트워크(10)에 대한 제1 트랜잭션을 실행하는 장치이다. 제1 연동 장치(100)는 사용자 단말(300)로부터 수신된 트랜잭션 요청에 응답하여, 상기 트랜잭션 요청에 따른 데이터를 제1 블록체인 네트워크(10) 및 제2 블록체인 네트워크(20)에 동시에 기록하기 위한 일련의 동작들을 수행하는 장치이다. 이를 위해, 제1 연동 장치(100)는 데이터 기록을 위한 제1 트랜잭션의 단계를 나누어 순차적으로(sequentially) 실행한다. 제1 연동 장치(100)가 데이터 기록을 위해 수행하는 구체적인 방법 및 단계들은 도 4 이하에서 자세하게 후술되므로 여기서는 그에 대한 설명을 생략한다.
제2 연동 장치(200)는 제2 블록체인 네트워크(20)와 연결되어 제2 블록체인 네트워크(20)에 대한 제2 트랜잭션을 실행하는 장치이다. 제2 연동 장치(200)는 제1 연동 장치(100)의 요청에 응답하여 제2 블록체인 네트워크(20)에 대한 제2 트랜잭션을 실행하고, 제2 트랜잭션을 실행한 결과를 리스폰스로서 제1 연동장치(100)에 전송한다. 제2 연동 장치(200)는 제2 트랜잭션이 제1 트랜잭션과 동시에 실행되도록 하기 위해, 제2 트랜잭션의 분할된 각 단계들을 순차적으로 실행할 수 있다. 이때, 상기 제2 트랜잭션의 각 단계들은 상기 제1 트랜잭션의 각 단계들과 서로 맞물려 순차적으로 실행될 수 있다.
한편, 여기서는 제1 연동 장치(100) 및 제2 연동 장치(200)가 서로 별개의 장치로 구성된 것을 예시하였으나, 본 개시의 범위는 이에 한정되지 않는다. 예를 들어, 제1 연동 장치(100)와 제2 연동 장치(200)가 하나의 장치로 구성되고, 상기 하나의 장치를 통해 제1 블록체인 네트워크(10)에 대한 제1 트랜잭션과 제2 블록체인 네트워크(20)에 대한 제2 트랜잭션이 함께 실행될 수도 있다.
사용자 단말(300)은 제1 연동 장치(100)로부터 트랜잭션 처리 서비스를 제공받는 장치이다. 사용자 단말(30)은 모바일폰, 스마트폰, 랩탑, 노트북, 데스크탑, 서버, 또는 워크스테이션 어느 한 장치로 구현될 수 있으나, 이에 한정되지는 않는다. 사용자 단말(300)과 제1 연동 장치는 네트워크를 통해 통신할 수 있다. 여기서, 상기 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 이동 통신망(mobile radio communication network), Wibro(Wireless Broadband Internet) 등과 같은 모든 종류의 유/무선 네트워크로 구현될 수 있다.
도 3은 도 2의 실시예에 분산 데이터베이스(500)가 추가되는 실시예를 설명하기 위한 예시적인 구성도이다. 도 3의 도시된 시스템 환경(1010)은 도 2의 시스템 환경(1000)과 대부분의 구성이 유사하다. 다만, 제1 연동 장치(100) 및 제2 연동 장치(200)와 연계하여 데이터를 백업하는 분산 데이터베이스(500)가 더 포함되는 점이 상이하다.
분산 데이터베이스(500)는 제1 연동 장치(100) 또는 제2 연동 장치(200)에 의해 제1 블록체인 네트워크(10) 또는 제2 블록체인 네트워크(20)에 기록되는 데이터에 대한 백업을 저장하는 저장장치이다. 이는 기록되는 데이터가 중요한 데이터인 경우, 제1 블록체인 네트워크(10) 또는 제2 블록체인 네트워크(20)가 불능이 되는 상황에서도 원래의 데이터를 보존할 수 있게 해준다. 또는, 분산 데이터베이스(500)는 데이터가 제1 또는 제2 블록체인 네트워크(10, 20)에 기록되기 전에 원본 데이터를 저장함으로써, 차후에 블록체인 네트워크들(10, 20)에 기록된 데이터가 진본인지 그 무결성을 검증하기 위해 참조될 수도 있다. 또는, 분산 데이터베이스(500)는 제1 연동 장치(100) 및 제2 연동 장치(200)가 자신의 필요에 따라 일시적으로 데이터를 저장할 수 있는 데이터 저장 수단으로서 기능할 수도 있다.
일 실시예로서, 분산 데이터베이스(500)는 ETCD와 같은 분산 key-value store일 수 있다.
일 실시예로서, 분산 데이터베이스(500)는 본 개시에 따른 트랜잭션이 제1 및 제2 블록체인 네트워크(10, 20)에 동일한 순서대로 실행되는 것을 보장하기 위해 제공될 수 있다.
일 실시예로서, 분산 데이터베이스(500)는 CFT (Crash Fault Tolerance)를 위해 제공될 수 있다. CFT는 분산 시스템에서 노드가 비정상적인 충돌에 의해 문제가 생기더라도 나머지 시스템에서 서비스를 할 수 있게 하는 작동으로서, 분산 데이터베이스(500)는 이러한 분산 시스템의 일 구성요소로서 제공될 수 있다.
한편, 도 3에 도시된 다른 사용자 단말(400)은 제2 연동 장치(200)로부터 트랜잭션 서비스를 제공받는 장치로서, 사용자 단말(300)과 본질적으로 그 의미는 동일하다. 다른 사용자 단말(400)은 제1 연동 장치(100)와 제2 연동 장치(200)가 서로 종속된 관계가 아닌 서로 대등한 관계로서, 트랜잭션을 처리하는 상황에 따라 각자가 마스터 장치가 될 수도 있고 슬레이브 장치가 될 수도 있는 병렬적 위치에 있음을 나타내기 위해 도시되었다. 즉, 도 2의 실시예에서, 사용자 단말(300)의 요청에 의해 제1 연동 장치(100)가 제2 연동 장치(200)에 제2 트랜잭션을 실행하라는 요청을 보내는 것과 상보적으로(complementarily), 도 3의 실시예에서는 다른 사용자 단말(400)의 요청에 의해 제2 연동 장치(200)가 제1 연동 장치(100)에 제1 트랜잭션을 실행하라는 요청을 보낼 수도 있다.
도 4는 본 개시의 몇몇 실시예에 따른 복수의 블록체인 네트워크 간 데이터를 연동하는 방법을 나타내는 순서도이다. 도 4를 참조하면, 본 실시예에 따른 방법은 S110 단계 내지 S140 단계를 포함한다.
이해의 편의를 제공하기 위해, 상기 데이터를 연동하는 방법은 도 2 또는 도 3에 도시된 시스템 환경(1000, 1010)에서 수행되는 것으로 가정하도록 한다. 본 실시예에 관한 설명에서 각 동작의 주어가 생략된 경우, 앞서 설명된 제1 연동 장치(100)에 의하여 수행되는 것으로 전제한다. 또한, 본 실시예에 따른 데이터를 연동하는 방법은 필요에 따라 논리적으로 수행 순서가 바뀔 수 있는 범위 안에서 각 동작의 수행 순서가 바뀔 수 있음은 물론이다.
한편, 도 5 내지 도 8의 도면은 도 4의 각 단계들을 보다 구체적으로 설명하는 도면들이다. 그러므로, 도 4의 각 단계들에 대해 설명하면서, 상세한 이해를 돕기 위해 각 단계마다 도 5 내지 도 8의 도면을 함께 참조하며 설명하기로 한다.
S110 단계에서, 제1 연동 장치(100)는 사용자 단말(300)로부터 트랜잭션 요청 또는 트랜잭션 상태에 대한 조회 요청을 수신한다.
이때, 상기 요청된 트랜잭션을 작업 큐에 저장하고, 현재 진행중인 다른 트랜잭션이 완료된 후에 상기 큐에 저장된 트랜잭션을 수행할 수 있다. 일 실시예로서, 상기 작업 큐는 분산 데이터베이스(500)에 저장 또는 백업될 수 있다.
S120 단계에서, 제1 연동 장치(100)는 요청된 트랜잭션에 따른 데이터를 제1 블록체인 네트워크(10) 및 제2 블록체인 네트워크(20)에 동시에 기록하기 위해, 상기 데이터 기록을 위한 트랜잭션의 단계를 나누어 그 중 제1 페이즈를 수행한다.
S120 단계에 대해 도 5를 참조하여 더 구체적으로 설명하면, S121 단계에서, 제1 연동 장치(100)는 사용자 단말(300)로부터 트랜잭션 요청을 수신하고 사용자 단말(300)에 대해 서명을 검증한다.
그리고, S122 단계에서, 제1 연동 장치(100)는 상기 트랜잭션 요청에 따른 트랜잭션을 생성하고, 트랜잭션 상태 정보를 적용(invoked) 상태로 변경한다.
S123 단계에서, 제1 연동 장치(100)는 트랜잭션 요청에 따른 데이터를 제1 블록체인 네트워크(10)에 기록하기 위한 제1 트랜잭션의 단계 중 제1 단계를 실행한다. 일 실시예로서, 상기 제1 단계는 트랜잭션이 진행될 예정이라는 점을 제1 블록체인 네트워크(10)에 전달하는 제안(proposal) 단계일 수 있다.
상기 제1 트랜잭션의 제1 단계가 완료된 후, S124 단계에서, 제1 연동 장치(100)는 제2 연동 장치(200)로 제2 트랜잭션의 제1 단계를 실행할 것을 요청한다. 그리고, 제1 연동 장치(100)는 상기 제2 트랜잭션의 제1 단계가 실행된 결과에 대한 리스폰스를 제2 연동 장치(200)로부터 수신할 수 있다. 일 실시예로서, 상기 제2 트랜잭션의 제1 단계는 상기 제2 트랜잭션의 멀티-시그(mulit-sig) 단계 중 첫 번째 서명 단계일 수 있다.
S125 단계에서, 제1 연동 장치(100)는 상기 제1 트랜잭션의 제1 단계 및 상기 제2 트랜잭션의 제1 단계 중 어느 하나가 실패했는지 판단한다. 어느 하나라도 실패했으면, 요청된 데이터를 제1 블록체인 네트워크(10) 및 제2 블록체인 네트워크(20)에 동시에 기록하는 데 실패한 것이므로, 본 실시예는 S126 단계로 진행하여, 사용자 단말(300) 트랜잭션이 실패했음을 알리는 결과를 회신하고 종료한다.
반면에, 상기 제1 트랜잭션의 제1 단계 및 상기 제2 트랜잭션의 제1 단계 모두 성공했으면, 트랜잭션의 계속 진행을 위해 다음 단계로 진행한다.
다시 도 4로 돌아가서, 다음 단계로서 S130 단계가 진행된다.
S130 단계에서, 제1 연동 장치(100)는 트랜잭션의 제2 페이즈를 수행한다. S130 단계에 대한 구체적인 설명을 위해 도 6을 참조하면, S131 단계에서 제1 연동 장치(100)는 트랜잭션이 제2 페이즈로 진행되었음을 나타내기 위해 트랜잭션의 상태 정보를 준비(prepared) 상태로 변경한다.
S132 단계에서, 제1 연동 장치(100)는 트랜잭션 요청에 따른 데이터를 제1 블록체인 네트워크(10)에 기록하기 위한 제1 트랜잭션의 단계 중 제2 단계를 실행한다. 일 실시예로서, 상기 제2 단계는 트랜잭션을 통해 기록될 데이터를 제1 블록체인 네트워크(10)에 전달하는 제출(submit) 단계일 수 있다.
상기 제1 트랜잭션의 제2 단계가 완료된 후, S133 단계에서, 제1 연동 장치(100)는 제2 연동 장치(200)로 제2 트랜잭션의 제2 단계를 실행할 것을 요청한다. 그리고, 제1 연동 장치(100)는 상기 제2 트랜잭션의 제2 단계가 실행된 결과에 대한 리스폰스를 제2 연동 장치(200)로부터 수신할 수 있다. 일 실시예로서, 상기 제2 트랜잭션의 제2 단계는 상기 제2 트랜잭션의 멀티-시그 단계 중 두 번째 서명 단계일 수 있다.
S134 단계에서, 제1 연동 장치(100)는 상기 제1 트랜잭션의 제2 단계 및 상기 제2 트랜잭션의 제2 단계 중 어느 하나가 실패했는지 판단한다. 어느 하나라도 실패했으면, 상기 제1 페이즈에서와 유사하게 요청된 데이터를 제1 블록체인 네트워크(10) 및 제2 블록체인 네트워크(20)에 동시에 기록하는 데 실패한 것이므로, 본 실시예는 S135 단계로 진행하여, 사용자 단말(300) 트랜잭션이 실패했음을 알리는 결과를 회신하고 종료한다.
반면에, 상기 제1 트랜잭션의 제2 단계 및 상기 제2 트랜잭션의 제2 단계 모두 성공했으면, 트랜잭션의 계속 진행을 위해 다음 단계로 진행한다.
다시 도 4로 돌아가서, 다음 단계로서 S140 단계가 진행된다.
S140 단계에서, 제1 연동 장치(100)는 트랜잭션의 제2 페이즈를 수행하고, 제3 페이즈의 수행 결과에 따라 데이터 기록의 일치를 위한 액션을 수행한다.
S140 단계에 대한 구체적인 설명을 위해 도 7을 참조하면, S141 단계에서 제1 연동 장치(100)는 트랜잭션이 제3 페이즈로 진행되었음을 나타내기 위해 트랜잭션의 상태 정보를 실행(Committed) 상태로 변경한다.
S142 단계에서, 제1 연동 장치(100)는 트랜잭션 요청에 따른 데이터를 제1 블록체인 네트워크(10)에 기록하기 위한 제1 트랜잭션의 단계 중 제3 단계를 실행한다. 일 실시예로서, 상기 제3 단계는 제1 트랜잭션의 최종 단계로서 트랜잭션을 통해 기록될 데이터를 제1 블록체인 네트워크(10)의 블록에 실제로 기록하는 실행(commit) 단계일 수 있다.
상기 제1 트랜잭션의 제3 단계가 완료된 후, S143 단계에서, 제1 연동 장치(100)는 상기 제1 트랜잭션의 제3 단계가 성공적으로 실행되었는지 판단한다. 성공적으로 실행되어 제1 블록체인 네트워크(10)에 데이터가 정상적으로 기록되었으면, 본 실시예는 S144 단계로 진행한다. 그렇지 않으면, 본 실시예는 S147 단계로 진행하여 사용자 단말에 트랜잭션이 실패하였음을 나타내는 결과를 회신하고 종료한다.
S144 단계에서, 제1 연동 장치(100)는 제2 연동 장치(200)로 제2 트랜잭션의 제3 단계를 실행할 것을 요청한다. 그리고, 제1 연동 장치(100)는 상기 제2 트랜잭션의 제3 단계가 실행된 결과에 대한 리스폰스를 제2 연동 장치(200)로부터 수신할 수 있다. 일 실시예로서, 상기 제2 트랜잭션의 제3 단계는 상기 제2 트랜잭션의 멀티-시그 단계 중 마지막 서명 단계일 수 있다.
S145 단계에서, 제1 연동 장치(100)는 제2 트랜잭션의 제3 단계가 성공적으로 실행되었는지 판단한다. 성공적으로 실행되었다면, 요청된 트랜잭션에 따른 데이터의 기록이 제1 블록체인 네트워크(10) 및 제2 블록체인 네트워크(20)에 모두 성공적으로 수행된 것이므로, 그 결과를 사용자 단말(300)에 회신하고 그대로 종료한다.
반면에, 성공적으로 실행되지 않았다면(즉, 실패하였다면) 본 실시예는 S146 단계로 진행하고, 제1 연동 장치(100)는 제1 블록체인 네트워크(10)와 제2 블록체인 네트워크(20) 간 데이터 기록의 일치를 위한 추가 액션을 수행한다. 즉, 이러한 경우는, 제1 블록체인 네트워크(10)에는 성공적으로 데이터가 기록되었지만, 제2 블록체인 네트워크(20)에는 데이터가 기록되지 못한 경우이므로, 제1 블록체인 네트워크(10)와 제2 블록체인 네트워크(20) 간에 데이터 불일치가 발생하게 된다. 이러한 불일치 상태를 시정하기 위해, 제1 연동 장치(100)는 제2 블록체인 네트워크(20)에 데이터 기록이 성공할 때까지 반복적으로 데이터 기록을 재시도할 수 있다.
일 실시예로서, 상기 불일치 상태를 시정하기 위해, 제1 연동 장치(100)는 우선적으로 제2 블록체인 네트워크(20)에 데이터 기록의 재시도를 수행하고, 상기 기록의 재시도를 위한 트랜잭션이 성공할 때까지 이후에 진행할 다음 트랜잭션을 큐에 대기시킴으로써 블록체인 데이터의 무결성이 깨지는 것을 방지하고 상기 데이터 불일치 상태를 해소할 수 있다.
S146 단계에 의해 상기 불일치 상태가 해소되면, 그에 따른 결과 회신을 사용자 단말(300)에 전송하고 본 실시예는 종료한다.
상기한 본 발명의 실시예들에 따르면, 별도의 허브 네트워크를 통하지 않고도 블록체인 네트워크 간 데이터를 연동할 수 있는 방법이 제공된다. 그에 따라, 데이터 유출의 위험이 없이 복수의 블록체인 네트워크 간 데이터를 연동할 수 있게 된다.
또한, 상기한 본 발명의 실시예들에 따르면, 복수의 블록체인 네트워크에 데이터를 기록하는 트랜잭션들의 단계를 나누어 수행하고, 각 트랜잭션의 나누어진 단계들이 서로 맞물려 순차적으로 실행된다. 그에 따라, 복수의 블록체인 네트워크에 데이트가 기록되는 시점이 거의 동일하게 되므로, 데이터 기록의 동시성을 보장할 수 있다.
또한, 상기한 본 발명의 실시예들에 따르면, 트랜잭션의 결과 복수의 블록체인 네트워크 중 어느 한쪽에만 데이터가 기록된 경우에, 이를 정정하기 위한 추가 액션을 통해 데이터 불일치 상태를 해소할 수 있다. 그에 따라, 복수의 블록체인 네트워크 간 데이터의 일치성을 보장할 수 있다.
도 8 내지 도 10은 앞서 설명한 본 개시의 몇몇 실시예들에 따른 복수의 블록체인 네트워크 간 데이터 연동 방법을 복수의 연동 장치에 의한 프로세스 관점에서 설명하는 예시적인 흐름도이다. 도 8 내지 도 10을 참조하면, 사용자 단말(300), 제1 연동 장치(100), 제1 블록체인 네트워크(10), 제2 연동 장치(200) 및 제2 블록체인 네트워크(20) 간에 수행되는 순차적인 프로세스의 흐름이 도시된다.
도 8 내지 도 10의 설명에서, 앞서 설명한 내용과 중복되는 내용이나 동일 용어에 대한 설명은, 설명의 간명화를 위해 생략될 수 있다.
먼저, 도 8을 참조하여 설명하면, 사용자 단말(300)은 제1 연동 장치(100)에 트랜잭션 요청을 보내게 된다. 제1 연동 장치(100)는 트랜잭션 요청을 수신한 것에 응답하여, 사용자 단말(300)에 대한 서명을 검증하고 서명이 정상적인 것으로 판정되면, 상기 트랜잭션 요청에 따른 트랜잭션을 생성한다. 그리고, 상기 제1 트랜잭션의 제1 단계로 진행하는 것을 나타내도록 트랜잭션 상태를 적용(invoked) 상태로 변경한다.
이어서, 제1 연동 장치(100)는 상기 트랜잭션 요청에 따라 데이터를 제1 블록체인 네트워크(10)에 기록하기 위해 상기 제1 트랜잭션의 제1 단계를 실행한다. 이때, 상기 제1 트랜잭션의 제1 단계는 제안(proposal) 단계일 수 있다.
그리고, 제1 블록체인 네트워크(10)로부터 리스폰스를 수신한 후 제2 트랜잭션의 제1 단계를 실행하도록 하는 요청을 제2 연동 장치(200)로 전송한다.
제2 연동 장치(200)는 상기 요청에 응답하여, 제1 연동 장치(100)에 대한 서명을 검증하고 서명이 정상적인 것으로 판정되면, 제2 트랜잭션의 제1 단계를 실행한다. 이때, 상기 제2 트랜잭션의 제1 단계는 멀티-시그 단계 중 첫 번째 서명 단계일 수 있다. 그리고, 제2 연동 장치(200)는 제2 블록체인 네트워크(10)로부터 리스폰스를 수신하고 그에 따른 결과를 제1 연동 장치(100)에 회신한다.
계속하여, 도 9를 참조하여 설명하면, 제1 연동 장치(100)는 상기 제1 트랜잭션의 제1 단계 및 상기 제2 트랜잭션의 제1 단계가 모두 성공적으로 수행되었는지 판단한다. 둘 중 어느 하나라도 실패하였으면, 트랜잭션 실패에 대한 회신을 사용자 단말(300)로 전송하고 본 실시예는 그대로 종료한다. 둘 모두 성공적으로 수행되었으면, 다음으로 진행하여 제1 연동 장치(100)는 트랜잭션 상태를 준비(prepared) 상태로 변경한다. 그리고, 제1 트랜잭션의 제2 단계를 실행한다. 이때, 상기 제1 트랜잭션의 제2 단계는 제출(submit) 단계일 수 있다.
그리고, 그리고, 제1 블록체인 네트워크(10)로부터 리스폰스를 수신한 후 제2 트랜잭션의 제2 단계를 실행하도록 하는 요청을 제2 연동 장치(200)로 전송한다.
제2 연동 장치(200)는 상기 요청에 응답하여, 제1 연동 장치(100)에 대한 서명을 검증하고 서명이 정상적인 것으로 판정되면, 제2 트랜잭션의 제2 단계를 실행한다. 이때, 상기 제2 트랜잭션의 제2 단계는 멀티-시그 단계 중 두 번째 서명 단계일 수 있다. 그리고, 제2 연동 장치(200)는 제2 블록체인 네트워크(10)로부터 리스폰스를 수신하고 그에 따른 결과를 제1 연동 장치(100)에 회신한다.
제1 연동 장치(100)는 상기 회신을 참조하여 제1 트랜잭션의 제2 단계 및 상기 제2 트랜잭션의 제2 단계가 모두 성공적으로 수행되었는지 판단한다. 둘 중 어느 하나라도 실패하였으면, 트랜잭션 실패에 대한 회신을 사용자 단말(300)로 전송하고 본 실시예는 그대로 종료한다. 둘 모두 성공적으로 수행되었으면, 다음으로 진행한다.
계속하여, 도 10을 참조하여 설명한다. 제1 연동 장치(100)는 제1 블록체인 네트워크(10)에 데이터를 기록하기 위한 트랜잭션의 마지막 단계로서, 제1 트랜잭션의 제3 단계를 실행한다. 이때, 상기 제1 트랜잭션의 제3 단계는 실행(commit) 단계일 수 있다.
그리고, 제1 블록체인 네트워크(10)로부터 리스폰스를 수신한 후 제1 트랜잭션의 제3 단계가 성공적으로 수행되었는지 판단한다. 성공적으로 수행되지 않은 경우, 트랜잭션 실패에 대한 회신을 사용자 단말(300)로 전송하고 본 실시예는 그대로 종료한다. 성공적으로 수행되었으면, 제1 블록체인 네트워크(10)에 기록된 것과 동일하게 제2 블록체인 네트워크(20)에도 데이터가 기록되도록, 제2 트랜잭션의 제3 단계 실행 요청을 제2 연동 장치(200)로 전송한다.
제2 연동 장치(200)는 상기 요청에 응답하여, 제1 연동 장치(100)에 대한 서명을 검증하고 서명이 정상적인 것으로 판정되면, 제2 트랜잭션의 제3 단계를 실행한다. 이때, 상기 제2 트랜잭션의 제3 단계는 멀티-시그 단계 중 마지막 서명 단계일 수 있다. 그리고, 제2 연동 장치(200)는 제2 블록체인 네트워크(10)로부터 리스폰스를 수신한다.
일 실시예로서, 제2 블록체인 네트워크(10)로부터 리스폰스를 수신한 결과, 상기 제2 트랜잭션의 제3 단계가 성공적으로 수행되지 않은 것으로 판단되는 경우, 제2 연동 장치(200)는 상기 제2 트랜잭션의 제3 단계를 반복적으로 재시도 할 수 있다. 즉, 제2 트랜잭션의 제3 단계의 재시도에 대한 판단 및 수행을 앞서 도 8의 실시예에서처럼 제1 연동 장치(100)가 주도적으로 수행할 수도 있고, 도 11의 실시예에서처럼 제2 연동 장치(200)가 자체적으로 수행할 수도 있다.
일 실시예로서, 제2 연동 장치(200)는 상기 재시도를 소정의 횟수까지 수행하고, 그래도 데이터 기록이 성공하지 않은 경우(즉, 제2 트랜잭션의 제3 단계가 계속 실패한 경우) 더 이상의 재시도를 하지 않고, 실패 결과를 제1 연동 장치(100)에 회신할 수 있다.
한편, 제2 트랜잭션의 제3 단계가 성공하면, 제2 연동 장치(200)는 그에 대한 처리 결과를 제1 연동 장치(100)에 회신한다.
제1 연동 장치(100)는 제2 연동 장치(200)로부터 처리 결과를 수신하고, 그에 따라, 사용자 단말(300)에 최종 처리 결과를 전송한다.
이하에서는, 도 11을 참조하여 본 개시의 다양한 실시예에 따른 장치를 구현할 수 있는 예시적인 컴퓨팅 장치에 대하여 설명하도록 한다.
도 11은 컴퓨팅 장치(2000)를 나타내는 하드웨어 구성도이다. 도 11에 도시된 바와 같이, 컴퓨팅 장치(2000)는 하나 이상의 프로세서(2100), 프로세서(2100)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(2200), 버스(2500), 통신 인터페이스(2400)와 컴퓨터 프로그램(2310)을 저장하는 스토리지(2300)를 포함할 수 있다. 다만, 도 11에는 본 개시의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 개시가 속한 기술분야의 통상의 기술자라면 도 11에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(2100)는 컴퓨팅 장치(2000)의 각 구성의 전반적인 동작을 제어한다. 프로세서(3100)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 개시의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(2100)는 본 개시의 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(2000)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(2200)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(2200)는 본 개시의 다양한 실시예들에 따른 방법/동작을 실행하기 위하여 스토리지(2300)로부터 하나 이상의 프로그램(2310)을 로드할 수 있다. 메모리(2200)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.
버스(2500)는 컴퓨팅 장치(2000)의 구성 요소 간 통신 기능을 제공한다. 버스(2500)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
통신 인터페이스(2400)는 컴퓨팅 장치(2000)의 유무선 인터넷 통신을 지원한다. 또한, 통신 인터페이스(2400)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(2400)는 본 개시의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다. 경우에 따라, 통신 인터페이스(2400)는 생략될 수도 있다.
스토리지(2300)는 상기 하나 이상의 컴퓨터 프로그램(2310)과 각종 데이터 등을 비임시적으로 저장할 수 있다. 스토리지(2300)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(2310)은 메모리(2200)에 로드될 때 프로세서(2100)로 하여금 본 개시의 다양한 실시예에 따른 방법/동작을 수행하도록 하는 하나 이상의 인스트럭션들을 포함할 수 있다. 즉, 프로세서(2100)는 상기 하나 이상의 인스트럭션들을 실행함으로써, 본 개시의 다양한 실시예에 따른 방법/동작들을 수행할 수 있다.
예를 들어, 컴퓨터 프로그램(2310)은 트랜잭션 상태를 조회하는 동작, 데이터 기록을 위한 트랜잭션의 단계를 나누어 트랜잭션의 제1 페이즈를 수행하는 동작, 제1 페이즈의 수행 결과에 따라 트랜잭션의 제2 페이즈를 수행하는 동작, 제2 페이즈의 수행 결과에 따라 트랜잭션의 제3 페이즈를 수행하는 동작, 제3 페이즈의 수행 결과에 따라 데이터 기록의 일치를 위한 액션을 수행하는 동작들을 수행하도록 하는 인스트럭션들을 포함할 수 있다.
지금까지 도 1 내지 도 11을 참조하여 본 개시의 다양한 실시예들 및 그 실시예들에 따른 효과들을 언급하였다. 본 개시의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
지금까지 도 1 내지 도 11을 참조하여 설명된 본 개시의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상에서, 본 개시의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 개시의 기술적 사상이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 개시의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 개시의 실시예들을 설명하였지만, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 개시가 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 개시의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 개시에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (14)

  1. 컴퓨터 장치에 의해 수행되는 복수의 블록체인 네트워크 간 데이터를 연동하는 방법에 있어서,
    데이터의 기록을 위한 트랜잭션의 단계를 나누어 상기 트랜잭션의 제1 페이즈를 수행하는 단계; 및
    상기 제1 페이즈를 수행한 결과에 따라, 상기 트랜잭션의 제2 페이즈를 수행하는 단계를 포함하고,
    상기 제1 페이즈를 수행하는 단계는,
    복수의 블록체인 네트워크 중 제1 블록체인 네트워크에 상기 데이터를 기록하기 위한 제1 트랜잭션의 제1 단계를 수행하는 단계; 및
    상기 복수의 블록체인 네트워크 중 제2 블록체인 네트워크에 상기 데이터를 기록하기 위한 제2 트랜잭션의 제1 단계를 수행하도록 요청하는 단계를 포함하는,
    데이터를 연동하는 방법.
  2. 제1 항에 있어서,
    상기 제2 페이즈를 수행하는 단계는,
    상기 복수의 블록체인 네트워크 중 상기 제1 블록체인 네트워크에 상기 데이터를 기록하기 위한 상기 제1 트랜잭션의 제2 단계를 수행하는 단계; 및
    상기 복수의 블록체인 네트워크 중 상기 제2 블록체인 네트워크에 상기 데이터를 기록하기 위한 상기 제2 트랜잭션의 제2 단계를 수행하도록 요청하는 단계를 포함하는,
    데이터를 연동하는 방법.
  3. 제1 항에 있어서,
    상기 제1 트랜잭션의 제1 단계, 상기 제2 트랜잭션의 제1 단계, 상기 제1 트랜잭션의 제2 단계 및 상기 제2 트랜잭션의 제2 단계는 서로 맞물려 순차적으로 수행되는,
    데이터를 연동하는 방법.
  4. 제1 항에 있어서,
    상기 제2 페이즈를 수행한 결과에 따라, 상기 제1 블록체인 네트워크와 상기 제2 블록체인 네트워크 사이의 데이터 기록의 일치를 위한 액션이 수행되는,
    데이터를 연동하는 방법.
  5. 제4 항에 있어서,
    상기 데이터 기록의 일치를 위한 액션은,
    상기 제2 트랜잭션의 적어도 일부 단계를 반복적으로 재시도하는 단계를 포함하는,
    데이터를 연동하는 방법.
  6. 제5 항에 있어서,
    상기 데이터 기록의 일치를 위한 액션은,
    상기 제2 트랜잭션의 적어도 일부 단계에 대한 상기 재시도가 성공할 때까지 다음 트랜잭션을 큐에 대기시키는 단계를 더 포함하는,
    데이터를 연동하는 방법.
  7. 제1 항에 있어서,
    상기 제1 트랜잭션은 상기 제1 블록체인 네트워크와 연결된 제1 장치에 의해 수행되고,
    상기 제2 트랜잭션은 상기 제2 블록체인 네트워크와 연결된 제2 장치에 의해 수행되고,
    상기 제2 트랜잭션의 제1 단계를 수행하도록 하는 요청은 상기 제1 장치로부터 상기 제2 장치로 전송되는,
    데이터를 연동하는 방법.
  8. 제1 항에 있어서,
    상기 데이터의 기록을 위한 트랜잭션을 위한 작업을 큐에 저장하는 단계; 및
    진행중인 다른 트랜잭션이 없을 때, 상기 큐에 저장된 상기 데이터의 기록을 위한 트랜잭션을 위한 작업을 수행하는 단계를 더 포함하는,
    데이터를 연동하는 방법.
  9. 제1 항에 있어서,
    상기 데이터를 외부의 데이터베이스에 저장하는 단계를 더 포함하는,
    데이터를 연동하는 방법.
  10. 제9 항에 있어서,
    상기 외부의 데이터베이스는,
    상기 데이터의 기록을 위한 트랜잭션이 상기 제1 블록체인 네트워크 및 상기 제2 블록체인 네트워크에 동일한 순서대로 실행되도록 하기 위해 제공되는,
    데이터를 연동하는 방법.
  11. 제9 항에 있어서,
    상기 외부의 데이터베이스는,
    CFT (Crash Fault Tolerance)를 위해 제공되는,
    데이터를 연동하는 방법.
  12. 복수의 블록체인 네트워크 간 데이터를 연동하는 장치에 있어서,
    하나 이상의 인스트럭션들(instructions)을 저장하는 메모리; 및
    상기 저장된 하나 이상의 인스트럭션들을 실행함으로써,
    데이터의 기록을 위한 트랜잭션의 단계를 나누어 상기 트랜잭션의 제1 페이즈를 수행하고,
    상기 제1 페이즈를 수행한 결과에 따라, 상기 트랜잭션의 제2 페이즈를 수행하는 프로세서를 포함하고,
    상기 제1 페이즈는,
    복수의 블록체인 네트워크 중 제1 블록체인 네트워크에 상기 데이터를 기록하기 위한 제1 트랜잭션의 제1 단계를 수행하는 것과,
    상기 복수의 블록체인 네트워크 중 제2 블록체인 네트워크에 상기 데이터를 기록하기 위한 제2 트랜잭션의 제1 단계를 수행하도록 요청하는 것을 포함하는,
    데이터를 연동하는 장치.
  13. 제12 항에 있어서,
    상기 프로세서는,
    상기 제2 페이즈를 수행한 결과에 따라, 상기 제1 블록체인 네트워크와 상기 제2 블록체인 네트워크 사이의 데이터 기록의 일치를 위한 액션을 수행하는,
    데이터를 연동하는 장치.
  14. 컴퓨팅 장치와 결합되어,
    데이터의 기록을 위한 트랜잭션의 단계를 나누어 상기 트랜잭션의 제1 페이즈를 수행하는 단계; 및
    상기 제1 페이즈를 수행한 결과에 따라, 상기 트랜잭션의 제2 페이즈를 수행하는 단계를 실행시키도록 컴퓨터로 판독가능한 기록 매체에 저장되고,
    상기 제1 페이즈를 수행하는 단계는,
    복수의 블록체인 네트워크 중 제1 블록체인 네트워크에 상기 데이터를 기록하기 위한 제1 트랜잭션의 제1 단계를 수행하는 단계; 및
    상기 복수의 블록체인 네트워크 중 제2 블록체인 네트워크에 상기 데이터를 기록하기 위한 제2 트랜잭션의 제1 단계를 수행하도록 요청하는 단계를 포함하는,
    컴퓨터 프로그램.
KR1020190129660A 2019-10-18 2019-10-18 복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 그 장치 KR20210046187A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190129660A KR20210046187A (ko) 2019-10-18 2019-10-18 복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 그 장치
US16/664,446 US11005932B1 (en) 2019-10-18 2019-10-25 Method for associating data between a plurality of blockchain networks and apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190129660A KR20210046187A (ko) 2019-10-18 2019-10-18 복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR20210046187A true KR20210046187A (ko) 2021-04-28

Family

ID=75491482

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190129660A KR20210046187A (ko) 2019-10-18 2019-10-18 복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 그 장치

Country Status (2)

Country Link
US (1) US11005932B1 (ko)
KR (1) KR20210046187A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101922565B1 (ko) 2018-05-23 2018-11-27 (주)에스씨씨 이종 블록체인 간에 데이터의 공유를 가능하게 하는 얼라이언스 블록체인 시스템

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10785033B2 (en) * 2015-09-04 2020-09-22 Nec Corporation Method for storing an object on a plurality of storage nodes
US10200197B1 (en) * 2017-12-18 2019-02-05 Nec Corporation Scalable crash fault-tolerance consensus protocol with efficient message aggregation
US20190378139A1 (en) * 2018-06-06 2019-12-12 The Bank Of New York Mellon Tracking and recovering transactions performed across multiple applications
US20200204338A1 (en) * 2018-12-20 2020-06-25 Ripple Labs Inc. Securing public key cryptographic algorithms
KR102017675B1 (ko) * 2019-04-26 2019-09-04 에스지에이블록체인 주식회사 독립된 블록체인망 간의 데이터 공유를 위한 블록체인 브리지 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101922565B1 (ko) 2018-05-23 2018-11-27 (주)에스씨씨 이종 블록체인 간에 데이터의 공유를 가능하게 하는 얼라이언스 블록체인 시스템

Also Published As

Publication number Publication date
US11005932B1 (en) 2021-05-11
US20210120083A1 (en) 2021-04-22

Similar Documents

Publication Publication Date Title
CN107771321B (zh) 数据中心中的恢复
EP3435604B1 (en) Service processing method, device, and system
US7900085B2 (en) Backup coordinator for distributed transactions
WO2018103318A1 (zh) 分布式事务处理方法和系统
WO2017219857A1 (zh) 一种数据处理方法和设备
US20120254342A1 (en) Method for Providing Access to Data Items from a Distributed Storage System
EP4083786A1 (en) Cloud operating system management method and apparatus, server, management system, and medium
US11663170B2 (en) Method for associating data between a plurality of blockchain networks and apparatus thereof
US20220222156A1 (en) Method and system for active failure recovery of single node improved based on pbft algorithm, computer device and storage medium
EP4276651A1 (en) Log execution method and apparatus, and computer device and storage medium
CN106815094B (zh) 一种用于实现主备同步模式下事务提交的方法与设备
US20110295803A1 (en) Database system, method, and recording medium of program
KR20140047230A (ko) 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템
US11522966B2 (en) Methods, devices and systems for non-disruptive upgrades to a replicated state machine in a distributed computing environment
KR20210046187A (ko) 복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 그 장치
US11669516B2 (en) Fault tolerance for transaction mirroring
CN113641498A (zh) 一种数据核对方法、系统、设备及存储介质
CN115248827A (zh) 分布式事务提交方法及装置
US20240144268A1 (en) Control method, non-transitory computer-readable storage medium for storing control program, and information processing apparatus
CN115051913B (zh) Raft配置变更方法和装置
US20230069165A1 (en) Byzantine fault tolerant pre-preprocessing for state machine replication
WO2021052237A1 (zh) 事务处理方法、装置、设备、存储介质、数据库
CN116339929A (zh) 一种去中心化的分布式事务处理方法及装置
US10956399B1 (en) Transaction pipelining in a journaled database
CN116107706A (zh) 分布式数据库的事务处理方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A201 Request for examination