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

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

Info

Publication number
KR20210140851A
KR20210140851A KR1020200057464A KR20200057464A KR20210140851A KR 20210140851 A KR20210140851 A KR 20210140851A KR 1020200057464 A KR1020200057464 A KR 1020200057464A KR 20200057464 A KR20200057464 A KR 20200057464A KR 20210140851 A KR20210140851 A KR 20210140851A
Authority
KR
South Korea
Prior art keywords
transaction
interlocking
information
blockchain networks
interworking
Prior art date
Application number
KR1020200057464A
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 KR1020200057464A priority Critical patent/KR20210140851A/ko
Priority to US16/994,782 priority patent/US11663170B2/en
Publication of KR20210140851A publication Critical patent/KR20210140851A/ko

Links

Images

Classifications

    • 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
    • G06F16/1837Management specially adapted to peer-to-peer storage networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • 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/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • 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
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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
    • 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)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 그 장치가 제공된다. 본 발명의 몇몇 실시예에 따른 복수의 블록체인 네트워크 간 데이터를 연동하는 방법은 복수의 블록체인 네트워크 간에 데이터를 연동하기 위한 연동 트랜잭션의 요청을 수신하는 단계, 상기 요청에 응답하여 상기 복수의 블록체인 네트워크의 진행 중인 또는 진행 예정인 트랜잭션의 정보를 조회하는 단계, 및 상기 조회한 정보를 참조하여 복수의 연동 방식 중 어느 하나를 상기 연동 트랜잭션의 연동 방식으로 선택적으로 결정하고, 상기 결정된 연동 방식에 따라 상기 연동 트랜잭션을 수행하는 단계를 포함한다.

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)와는 원칙적으로 네트워크 간 데이터를 교환 및 공유하는 것이 어렵다.
따라서, 어떤 데이터를 복수의 블록체인 네트워크에 기록하고자 하는 경우, 완전히 별개의 기록 행위를 통해 개별 블록체인 네트워크에 각각 기록해야만 했다. 그러나 이와 같은 방법에서는, 어느 한 블록체인 네트워크에서는 데이터 기록이 성공하고 다른 블록체인 네트워크에서는 데이터 기록이 실패한 경우, 블록체인 네트워크 간 데이터 불일치를 피할 수 없었다. 또한, 완전히 별개의 행위를 통해 데이터를 기록하는 것이므로, 개별 블록체인 네트워크에 데이터가 기록되는 시점에 크게 차이가 날 수 있어 블록체인 네트워크에 데이터 기록이 성공한 경우라도 상당 시간동안 데이터가 불일치할 수 있는 문제점이 있었다.
한국등록특허 제10-1922565호 (2018.11.21 공개)
본 발명의 몇몇 실시예를 통해 해결하고자 하는 기술적 과제는, 서로 다른 블록체인 네트워크 간에 동일한 데이터가 기록되고 관리되도록 복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 장치를 제공하는 것이다.
본 발명의 몇몇 실시예를 통해 해결하고자 하는 다른 기술적 과제는, 연동 대상 블록체인 네트워크들 중 트랜잭션 처리 속도가 가장 느린 블록체인 네트워크에 종속되어 다른 블록체인 네트워크의 트랜잭션 처리 속도가 함께 저하되는 문제점을 최소화한 복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 장치를 제공하는 것이다.
본 발명의 몇몇 실시예를 통해 해결하고자 하는 또 다른 기술적 과제는, 연동 트랜잭션 수행 시 최적의 연동 방식을 결정 및 적용함으로써 각 블록체인 네트워크의 성능을 최대한 끌어낼 수 있는 복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 몇몇 실시예에 따른 복수의 블록체인 네트워크 간 데이터를 연동하는 방법은 복수의 블록체인 네트워크 간에 데이터를 연동하기 위한 연동 트랜잭션의 요청을 수신하는 단계, 상기 요청에 응답하여, 상기 복수의 블록체인 네트워크를 통해 진행 중인 또는 진행 예정인 트랜잭션의 정보를 조회하는 단계, 및 상기 조회한 정보를 참조하여 복수의 연동 방식 중 어느 하나를 상기 연동 트랜잭션의 연동 방식으로 선택적으로 결정하고, 상기 결정된 연동 방식에 따라 상기 연동 트랜잭션을 수행하는 단계를 포함한다.
일 실시예로서, 상기 연동 트랜잭션을 수행하는 단계는 상기 연동 트랜잭션의 기준 정보와 상기 조회한 정보가 서로 매칭되는지 판단하는 단계, 및 상기 기준 정보와 상기 조회한 정보가 서로 매칭되지 않으면 상기 복수의 연동 방식 중 비동기 방식을 상기 연동 방식으로 결정하는 단계를 포함할 수 있다.
일 실시예로서, 상기 기준 정보는 상기 연동 트랜잭션의 체인 ID(Identification) 또는 체인코드 ID를 포함하고, 상기 조회한 정보는 상기 진행 중인 또는 진행 예정인 트랜잭션의 체인 ID 또는 체인코드 ID를 포함할 수 있다.
일 실시예로서, 상기 서로 매칭되는지 판단하는 단계는 상기 연동 트랜잭션과 상기 진행 중인 또는 진행 예정인 트랜잭션의 체인 ID 또는 체인코드 ID를 서로 비교하여, 상기 연동 트랜잭션과 상기 진행 중인 또는 진행 예정인 트랜잭션의 체인 ID 또는 체인코드 ID가 서로 일치하면 상기 기준 정보와 상기 조회한 정보가 서로 매칭되는 것으로 판단할 수 있다.
일 실시예로서, 상기 연동 트랜잭션을 수행하는 단계는 상기 결정된 연동 방식이 비동기 방식이면, 상기 연동 트랜잭션의 정보를 기록하고 상기 복수의 블록체인 네트워크 중 제1 블록체인 네트워크를 통해 제1 연동 트랜잭션을 독립적으로 수행하는 단계를 포함할 수 있다.
일 실시예로서, 상기 연동 트랜잭션을 수행하는 단계는 상기 복수의 블록체인 네트워크 중 제2 블록체인 네트워크와 연결된 연동 장치에게 제2 연동 트랜잭션의 수행을 요청하는 단계를 더 포함하고, 상기 제2 연동 트랜잭션은 상기 연동 장치에 의해 상기 제2 블록체인 네트워크를 통해 수행될 수 있다.
일 실시예로서, 상기 연동 트랜잭션을 수행하는 단계는 상기 연동 장치로부터 상기 제2 연동 트랜잭션의 수행 결과를 수신한 후, 상기 제1 연동 트랜잭션의 수행 결과 및 상기 제2 연동 트랜잭션의 수행 결과에 기반하여 상기 연동 트랜잭션의 정보를 갱신하는 단계를 더 포함할 수 있다.일 실시예로서, 상기 연동 트랜잭션을 수행하는 단계는 상기 결정된 연동 방식이 비동기 방식이 아니면, 트랜잭션 큐에 상기 연동 트랜잭션이 등록되도록 요청하는 단계를 포함할 수 있다.
일 실시예로서, 상기 연동 트랜잭션을 수행하는 단계는 상기 데이터베이스의 상기 트랜잭션 큐로부터 상기 연동 트랜잭션을 불러오는 단계, 상기 연동 트랜잭션의 단계를 나누어 상기 연동 트랜잭션의 제1 페이즈를 수행하는 단계, 및 상기 제1 페이즈를 수행한 결과에 따라 상기 연동 트랜잭션의 제2 페이즈를 수행하는 단계를 포함하고, 상기 제1 페이즈를 수행하는 단계는 상기 복수의 블록체인 네트워크 중 제1 블록체인 네트워크를 통해 제1 연동 트랜잭션의 복수의 단계 중 제1 단계를 수행하는 단계, 및 상기 복수의 블록체인 네트워크 중 제2 블록체인 네트워크와 연결된 연동 장치에게 상기 제1 연동 트랜잭션과 상응하는 제2 연동 트랜잭션의 복수의 단계 중 제1 단계의 수행을 요청하는 단계를 포함할 수 있다.
일 실시예로서, 상기 네트워크의 진행 중인 또는 진행 예정인 트랜잭션의 정보는 데이터베이스로부터 조회되고, 상기 데이터베이스는 상기 복수의 블록체인 네트워크를 통해 수행되는 트랜잭션과 관련된 정보 또는 상기 복수의 블록체인 네트워크에 기록되는 데이터의 백업(Backup) 정보를 저장할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 몇몇 실시예에 따른 복수의 블록체인 네트워크 간 데이터를 연동하는 장치는 프로세서, 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 로드(load)하는 메모리, 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은 복수의 블록체인 네트워크 간에 데이터를 연동하기 위한 연동 트랜잭션의 요청을 수신하는 동작, 상기 요청에 응답하여 상기 복수의 블록체인 네트워크의 진행 중인 또는 진행 예정인 트랜잭션의 정보를 조회하는 동작, 및 상기 조회한 정보를 참조하여 복수의 연동 방식 중 어느 하나를 상기 연동 트랜잭션의 연동 방식으로 선택적으로 결정하고, 상기 결정된 연동 방식에 따라 상기 연동 트랜잭션을 수행하는 동작을 수행하도록 하는 인스트럭션들(Instructions)을 포함한다.
상기 기술적 과제를 해결하기 위한, 본 발명의 몇몇 실시예에 따른 복수의 블록체인 네트워크 간 데이터를 연동하는 방법을 실행하기 위해 컴퓨팅 장치와 결합되는 컴퓨터 프로그램은 복수의 블록체인 네트워크 간에 데이터를 연동하기 위한 연동 트랜잭션의 요청을 수신하는 단계, 상기 요청에 응답하여 상기 복수의 블록체인 네트워크의 진행 중인 또는 진행 예정인 트랜잭션의 정보를 조회하는 단계, 및 상기 조회한 정보를 참조하여 복수의 연동 방식 중 어느 하나를 상기 연동 트랜잭션의 연동 방식으로 선택적으로 결정하고 상기 결정된 연동 방식에 따라 상기 연동 트랜잭션을 수행하는 단계를 실행시키도록 컴퓨터로 판독가능한 기록매체에 저장된다.
도 1은 종래의 블록체인 네트워크 환경에서 서로 다른 블록체인 네트워크 간 데이터 연동이 어려운 문제를 설명하기 위한 개념도이다.
도 2는 본 발명의 실시예들에 따른 복수의 블록체인 네트워크 간 데이터를 연동하는 시스템을 도시하는 예시적인 구성도이다.
도 3은 도 2의 실시예에 분산 데이터베이스가 추가되는 실시예를 도시하는 예시적인 구성도이다.
도 4는 본 발명의 실시예들에 따른 복수의 블록체인 네트워크 간 데이터를 연동하는 방법을 나타내는 순서도이다.
도 5는 도 4의 연동 트랜잭션을 수행하는 단계(S400)를 더욱 구체화한 일 실시예를 나타내는 순서도이다.
도 6은 도 5의 비동기 방식으로 연동 트랜잭션을 수행하는 단계(S430)를 구체화한 일 실시예를 나타내는 순서도이다.
도 7은 도 5의 동기 방식으로 연동 트랜잭션을 수행하는 단계(S450)를 구체화한 일 실시예를 나타내는 순서도이다.
도 8은 도 7의 제1 페이즈를 수행하는 단계(S453)를 구체화한 일 실시예를 나타내는 순서도이다.
도 9는 비동기 연동 방식에 따라 복수의 블록체인 네트워크 간 데이터를 연동하는 일련의 순차적인 흐름을 도시하는 도면이다.
도 10 및 도 11은 동기 연동 방식에 따라 복수의 블록체인 네트워크 간 데이터를 연동하는 일련의 순차적인 흐름을 도시하는 도면이다.
도 12는 본 발명의 다양한 실시예에 따른 방법들을 구현할 수 있는 컴퓨팅 장치의 예시적인 하드웨어 구성을 나타내는 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명의 기술적 사상을 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
이하, 본 발명의 몇몇 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.
도 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 네트워크일 수 있으나, 이에 한정되는 것은 아니다.
본 발명에서는 복수의 블록체인 네트워크(10, 20) 간에 데이터를 연동하기 위해(즉, 동일한 데이터가 공통적으로 기록되도록 하기 위해), 블록체인 네트워크(10, 20)들 각각에 대해 동일한 데이터를 기록하는 연동 트랜잭션이 수행되는 데, 그러한 연동 트랜잭션 중 제1 블록체인 네트워크(10)에 대해 수행되는 것을 제1 연동 트랜잭션이라 지칭하고 제2 블록체인 네트워크(20)에 대해 수행되는 것을 제2 연동 트랜잭션이라 지칭한다.
제1 연동 장치(100)는 제1 블록체인 네트워크(10)와 연결되어 제1 블록체인 네트워크(10)에 대한 제1 연동 트랜잭션을 수행하는 장치이다. 제1 연동 트랜잭션은 사용자 단말(300)로부터 요청된 연동 트랜잭션의 일부로서 제1 블록체인 네트워크(10)를 통해 데이터를 기록하는 트랜잭션을 의미한다.
제1 연동 장치(100)는 사용자 단말(300)로부터 수신된 연동 트랜잭션 요청에 응답하여, 데이터를 제1 블록체인 네트워크(10) 및 제2 블록체인 네트워크(20)에 연동하여 기록하기 위한 일련의 동작들을 수행한다. 이를 위해, 제1 연동 장치(100)는 제1 블록체인 네트워크(10)를 통해 데이터를 기록하기 위한 제1 연동 트랜잭션을 직접 수행하면서, 그와 동일한 데이터를 제2 블록체인 네트워크(20)를 통해 기록하기 위한 제2 연동 트랜잭션을 제2 연동 장치(200)에 요청한다.
제2 연동 장치(200)는 제2 블록체인 네트워크(20)와 연결되어 제2 블록체인 네트워크(20)에 대한 제2 연동 트랜잭션을 수행하는 장치이다. 제2 연동 트랜잭션은 사용자 단말(300)로부터 요청된 연동 트랜잭션의 일부로서 제2 블록체인 네트워크(20)를 통해 데이터를 기록하는 트랜잭션을 의미한다.
제2 연동 장치(200)는 제1 연동 장치(100)로부터의 제2 연동 트랜잭션 수행 요청에 응답하여, 제2 블록체인 네트워크(20)를 통해 데이터를 기록하기 위한 제2 연동 트랜잭션을 수행하고, 제2 연동 트랜잭션을 수행한 결과를 리스폰스로서 제1 연동장치(100)에 회신한다.
한편, 여기서는 제1 연동 장치(100) 및 제2 연동 장치(200)가 서로 별개의 장치로 구성된 것을 예시하였으나, 본 개시의 범위는 이에 한정되지 않는다. 예를 들어, 제1 연동 장치(100)와 제2 연동 장치(200)가 하나의 장치로 구성되고, 상기 하나의 장치를 통해 제1 블록체인 네트워크(10)에 대한 제1 연동 트랜잭션과 제2 블록체인 네트워크(20)에 대한 제2 연동 트랜잭션이 함께 실행될 수도 있다.
사용자 단말(300)은 제1 연동 장치(100)로부터 연동 트랜잭션 서비스를 제공받는 장치이다. 사용자 단말(300)은 모바일폰, 스마트폰, 랩탑, 노트북, 데스크탑, 서버, 또는 워크스테이션 어느 한 장치로 구현될 수 있으나, 이에 한정되지는 않는다. 사용자 단말(300)과 제1 연동 장치(100)는 네트워크를 통해 통신할 수 있다. 여기서, 상기 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 이동 통신망(mobile radio communication network), Wibro(Wireless Broadband Internet) 등과 같은 모든 종류의 유/무선 네트워크로 구현될 수 있다.
도 3은 도 2의 실시예에 분산 데이터베이스(400)가 추가되는 실시예를 설명하기 위한 예시적인 구성도이다. 도 3의 도시된 시스템 환경(1010)은 도 2의 시스템 환경(1000)과 대부분의 구성이 유사하다. 다만, 제1 연동 장치(100) 및 제2 연동 장치(200)와 통신하는 분산 데이터베이스(400)가 더 포함되는 점이 상이하다.
분산 데이터베이스(400)는 복수의 블록체인 네트워크(10, 20)의 트랜잭션 정보를 저장하는 장치이다. 분산 데이터베이스(400)가 저장하는 상기 트랜잭션 정보는 복수의 블록체인 네트워크(10, 20)를 통해 진행 중인 또는 진행 예정인 트랜잭션들과 관련된 다양한 정보를 포함할 수 있다. 예를 들어, 상기 트랜잭션 정보는 진행 중인 또는 진행 예정인 트랜잭션들의 체인 ID(Identification) 또는 채널 ID, 체인코드 ID 또는 스마트 컨트랙트 ID, 타임스탬프, 스테이터스 등을 포함할 수 있다.
일 실시예로서, 상기 분산 데이터베이스(400)는 복수의 블록체인 네트워크(10, 20)를 통해 진행 예정인 트랜잭션들의 대기열을 나타내는 트랜잭션 큐(Queue)를 더 포함할 수 있다.
이와 함께, 분산 데이터베이스(400)는 복수의 블록체인 네트워크(10, 20)에 기록되는 데이터들에 대한 백업을 더 저장할 수도 있다. 이는 복수의 블록체인 네트워크(10, 20)에 기록되는 데이터가 중요한 데이터인 경우, 제1 블록체인 네트워크(10) 또는 제2 블록체인 네트워크(20)가 불능이 되는 상황에서도 원래의 데이터를 보존할 수 있게 해준다.
또는 그 밖에도, 분산 데이터베이스(400)는 블록체인 네트워크들(10, 20)에 기록된 데이터가 진본인지 그 무결성을 검증할 필요가 있을 때 분산 데이터베이스(400)에 저장된 백업 데이터를 이용하여 무결성 여부를 확인하거나, 제1 연동 장치(100) 및 제2 연동 장치(200)가 일시적으로 데이터 저장 공간을 필요로 할 때 분산 데이터베이스(400)의 저장 공간을 제1 연동 장치(100) 및 제2 연동 장치(200)를 위한 임시 저장 수단으로서 제공하는 등 다양한 용도로 활용될 수 있다.
일 실시예로서, 분산 데이터베이스(400)는 ETCD와 같은 분산 key-value store일 수 있다.
일 실시예로서, 분산 데이터베이스(400)는 CFT (Crash Fault Tolerance)를 위해 제공될 수 있다. CFT는 분산 시스템에서 노드가 비정상적인 충돌에 의해 문제가 생기더라도 나머지 시스템에서 서비스를 할 수 있게 하는 작동으로서, 분산 데이터베이스(400)는 이러한 분산 시스템의 일 구성요소로서 제공될 수도 있다.
이하에서는, 지금까지 설명한 시스템 환경(1000, 1010)을 기반으로 복수의 블록체인 네트워크 간 데이터를 연동하는 다양한 실시예들을 구체적으로 설명하기로 한다.
도 4는 본 발명의 실시예들에 따른 복수의 블록체인 네트워크 간 데이터를 연동하는 방법을 나타내는 순서도이다. 이해의 편의를 위해, 본 실시예들에 따른 복수의 블록체인 네트워크간 데이터를 연동하는 방법은 도 2 또는 도 3에 도시된 시스템 환경(1000, 1010)에서 수행되는 것으로 가정한다. 또한, 이하의 실시예들에서 각 단계의 주어가 생략된 경우, 각 단계들은 앞서 설명된 제1 연동 장치(100)에 의하여 수행되는 것으로 가정한다.
S100 단계에서, 제1 연동 장치(100)는 사용자 단말(300)로부터 연동 트랜잭션 요청을 수신한다. 상기 연동 트랜잭션 요청은 복수의 블록체인 네트워크(10, 20) 간에 데이터를 연동하는 연동 트랜잭션의 수행을 요청하는 것으로, 특정 데이터를 복수의 블록체인 네트워크(10, 20)에 공통적으로 기록하라는 요청일 수 있다.
S200 단계에서, 제1 연동 장치(100)는 연동 트랜잭션 요청으로부터 또는 그와 함께 제공되는 데이터로부터 연동 트랜잭션의 기준 정보를 추출한다. 이때, 추출되는 기준 정보는 연동 트랜잭션의 메타데이터를 포함할 수 있으며, 상기 연동 트랜잭션의 체인 ID(Identification)나 채널 ID, 또는 체인코드 ID나 스마트 컨트랙트 ID를 포함할 수 있다.
S300 단계에서, 제1 연동 장치(100)는 복수의 블록체인 네트워크(10, 20)를 통해 진행 중인 또는 진행 예정인 트랜잭션들의 정보를 조회한다. 일 실시예로서, 제1 연동 장치(100)는 상기 진행 중인 또는 진행 예정인 트랜잭션들의 정보를 별도로 구현된 분산 데이터베이스(400)를 통해 조회할 수 있고, 이때, 분산 데이터베이스(400)는 자신의 트랜잭션 큐에 등록된 트랜잭션들의 정보를 검색 또는 추출하여 상기 진행 중인 또는 진행 예정인 트랜잭션들의 정보로서 제1 연동 장치(100)에 제공할 수 있다.
S400 단계에서, 제1 연동 장치(100)는 앞서 조회한 정보를 참조하여, 비동기 방식과 동기 방식 중에서 연동 트랜잭션의 연동 방식을 결정하고, 결정된 연동 방식에 따라 연동 트랜잭션을 수행한다.
비동기 방식은 다른 블록체인 네트워크의 상태와 무관하게 각 블록체인 네트워크에 대한 연동 트랜잭션이 개별적으로 수행되는 방식이다. 비동기 방식으로 연동 트랜잭션을 수행하는 경우, 제1 블록체인 네트워크(10)에 대한 제1 연동 트랜잭션과 제2 블록체인 네트워크(20)에 대한 제2 연동 트랜잭션의 동시성은 보장되지 않으며, 제1 연동 장치(100)는 제2 연동 트랜잭션의 진행 상태와 무관하게 제1 연동 트랜잭션을 독립적으로 수행하여 완료하게 된다. 즉, 비동기 방식에서 제1 연동 장치(100)는 제1 블록체인 네트워크(10)가 새로운 트랜잭션을 수행할 수 있는 상태이기만 하면 제2 블록체인 네트워크(20) 및 제2 연동 장치(200)의 상태와 무관하게 제1 연동 트랜잭션을 개시하며, 제2 블록체인 네트워크(20)에 대한 제2 연동 트랜잭션이 완료되지 않거나 심지어 아직 시작되기 전이라도 제1 연동 트랜잭션을 진행 및 완료할 수 있다.
동기 방식은 복수의 블록체인 네트워크(10, 20) 각각에 대한 연동 트랜잭션이 서로 동기화되어 수행되는 방식이다. 동기 방식으로 연동 트랜잭션을 수행하는 경우, 제1 블록체인 네트워크(10)에 대한 제1 연동 트랜잭션과 제2 블록체인 네트워크(20)에 대한 제2 연동 트랜잭션은 서로 병행적으로 수행되므로 제1 연동 트랜잭션과 제2 연동 트랜잭션 간 동시성이 보장되며, 제1 연동 장치(100)는 제2 연동 트랜잭션의 진행 상태에 맞추어 제1 연동 트랜잭션을 진행 및 완료하게 된다. 동기 방식에서 제1 연동 장치(100)는 제1 블록체인 네트워크(10)가 새로운 트랜잭션을 수행할 수 있는 상태라도 곧바로 제1 연동 트랜잭션을 개시하지는 않으며, 제2 블록체인 네트워크(20)가 새로운 트랜잭션을 수행할 수 있는 상태가 될 때까지 기다려 제1 연동 트랜잭션을 개시하되 제2 블록체인 네트워크(20)에 대한 제2 연동 트랜잭션의 진행 단계에 맞추어 제1 연동 트랜잭션을 진행 및 완료하게 된다.
동기 방식은 모든 블록체인 네트워크들에 대해 동시에 연동 트랜잭션이 진행되므로 연동 현황을 보다 직관적으로 파악할 수 있다는 장점이 있으나, 그에 반해 몇가지 단점을 갖는다. 첫째, 동기 방식에서는 복수의 블록체인 네트워크 각각에 대한 연동 트랜잭션이 동시적으로 진행되므로, 일부 블록체인 네트워크가 준비 상태(즉, 연동 트랜잭션을 수행할 수 있는 상태)가 아니면 나머지 블록체인 네트워크들이 준비 상태이더라도 전체 블록체인 네트워크들에 대해 연동 트랜잭션이 진행되지 못하고, 모든 블록체인 네트워크가 준비 상태가 될 때까지 무한정 대기하여야 하는 문제가 있다. 둘째, 동기 방식에서는 각 블록체인 네트워크에 대한 개별 연동 트랜잭션들이 서로 진행 단계를 맞추어 순차적으로 수행되므로, 처리 속도가 가장 낮은 블록체인 네트워크의 처리 속도에 전체 블록체인 네트워크의 처리 속도가 종속되는 문제가 있다. 즉, 제1 블록체인 네트워크(10)의 처리 속도가 월등히 빠르더라도 제2 블록체인 네트워크(20)의 처리 속도가 느리면, 제2 블록체인 네트워크(20)의 진행 단계에 맞추어 제1 블록체인 네트워크(10)에서 연동 트랜잭션이 진행되므로 결과적으로 제1 블록체인 네트워크(10)는 자신의 최대 성능을 발휘하지 못하고 성능이 낮은(즉, 처리 속도가 느린) 제2 블록체인 네트워크(20)의 처리 속도로 연동 트랜잭션을 처리하게 된다.
반면에, 비동기 방식은 각 블록체인 네트워크에 대한 연동 트랜잭션이 개별적으로 진행되므로, 동기 방식이 갖는 문제점을 해소할 수 있다. 가령, 비동기 방식에서 처리 속도가 빠른 블록체인 네트워크는 다른 블록체인 네트워크의 준비 상태나 처리 단계를 기다릴 필요 없이 자신의 처리 성능을 최대한 발휘하여 자신에게 할당된 연동 트랜잭션을 처리하게 된다. 따라서, 동기 방식이 갖는 문제점, 모든 블록체인 네트워크가 준비 상태가 된 이후에 비로소 각 블록체인 네트워크의 연동 트랜잭션이 개시될 수 있는 점 및 성능이 가장 낮은 블록체인 네트워크의 속도에 전체 블록체인 네트워크의 속도가 종속되는 점이 비동기 방식에서는 나타나지 않게 된다.
그러나, 비동기 방식은 적용할 수 있는 상황이 제한적인 단점이 있다. 가령, 블록체인 네트워크에 진행 중인 또는 진행 예정인 다른 트랜잭션과 연동 트랜잭션 간의 순서보장이 필요한 경우에는 비동기 방식을 적용하기 어려울 수 있다. 블록체인 네트워크의 특성 상 생성되는 블록 간에는 데이터 연속성이 보장되어야 한다. 그 때문에 연동 트랜잭션과 연관된 앞선 트랜잭션이 있는데 이를 무시하고 연동 트랜잭션을 먼저 진행하는 경우 기록되는 데이터에 오류가 발생할 수 있게 된다. 따라서, 블록간 데이터 연속성을 보장하기 위해, 비동기 방식은 블록체인 네트워크(10, 20)에 진행 중인 또는 진행 예정인 트랜잭션들 중에 연동 트랜잭션과 연관된 트랜잭션이 없는 경우에만 제한적으로 적용될 수 있다.
도 4의 S400 단계는 이처럼, 복수의 블록체인 네트워크(10, 20)의 진행 중인 또는 진행 예정인 트랜잭션들의 정보를 참조하여 연동 트랜잭션에 비동기 방식을 적용할 수 있는 상황인지를 판단한 후, 비동기 방식을 적용할 수 있으면 연동 방식을 비동기 방식으로 결정하여 연동 트랜잭션을 수행하고, 그렇지 않으면 연동 방식을 동기 방식으로 결정하여 연동 트랜잭션을 수행한다.
이러한 방법에 따르면, 연동 트랜잭션 수행 시 최적의 연동 방식을 결정 및 적용함으로써 각 블록체인 네트워크의 성능을 최대한 끌어낼 수 있게 되며, 동기 방식이 갖는 문제점을 최소화할 수 있게 된다.
도 5는 도 4의 연동 트랜잭션을 수행하는 단계(S400)를 더욱 구체화한 일 실시예를 나타내는 순서도이다. 이하 도면을 참조하여 설명한다.
S410 단계에서, 제1 연동 장치(100)는 기준 정보와 조회한 정보가 서로 매칭되는지 판단한다. 이때, 기준 정보는 연동 트랜잭션의 체인 ID 또는 체인코드 ID를 포함하고, 조회한 정보는 복수의 블록체인 네트워크(10, 20)의 진행 중인 또는 진행 예정인 트랜잭션의 체인 ID 또는 체인코드 ID를 포함할 수 있다.
이때, 제1 연동 장치(100)는 연동 트랜잭션의 체인 ID 및 체인코드 ID와 앞서 조회한 진행 중인 또는 진행 예정인 트랜잭션의 체인 ID 및 체인코드 ID가 각각 일치한 경우에, 기준 정보와 조회한 정보가 서로 매칭되는 것으로 판단할 수 있다. 체인 ID 및 체인코드 ID가 일치하는 트랜잭션들은 서로 연속되는 데이터를 기록하는 것일 가능성이 있어, 그러한 트랜잭션 간에는 실행 순서를 보장할 필요가 있기 때문이다.
기준 정보와 조회한 정보가 서로 매칭되지 않으면, 본 실시예는 S420 단계로 진행한다. 그렇지 않으면, 본 실시예는 S440 단계로 진행한다.
한편, 일 실시예로서, 제1 연동 장치(100)는 연동 트랜잭션과 진행 중인 또는 진행 예정인 트랜잭션의 체인 ID 또는 체인코드 ID 중 어느 하나만 일치하는 경우에도, 기준 정보와 조회한 정보가 서로 매칭되는 것으로 판단할 수도 있다. 원칙적으로 트랜잭션들 간에 체인 ID와 체인코드 ID 중 어느 하나가 다르면 서로 간에 데이터 연관성이 없는 것이 일반적이지만, 블록체인 네트워크의 종류에 따라서는 체인 ID와 체인 코드 ID 중 어느 하나만 일치하여도 상호 영향을 주는 경우가 있을 수 있기 때문에, 체인 ID와 체인 코드 ID 중 어느 하나만 일치하는 경우에도 기준 정보와 조회한 정보가 서로 매칭되는 것으로 판단하는 것이다.
한편, 여기서 사용된 용어인 체인 ID 또는 체인코드 ID는 블록체인 네트워크에 따라 다른 이름으로 호칭될 수 있다. 가령, 체인 ID는 채널 ID로, 체인코드 ID는 스마트 컨트랙트 ID로 호칭 및 혼용될 수 있다.
S420 단계에서, 제1 연동 장치(100)는 연동 트랜잭션의 연동 방식을 비동기 방식으로 결정한다. 기준 정보와 조회한 정보가 서로 매칭되지 않는 경우이므로, 연동 트랜잭션을 비동기 방식으로 수행하여도 현재 진행 중인 또는 진행 예정인 다른 트랜잭션과의 충돌은 발생하지 않는다. 따라서, 비동기 방식을 적용할 수 있는 경우에 해당하므로, 제1 연동 장치(100)는 연동 방식을 비동기 방식으로 결정한다.
S430 단계에서, 제1 연동 장치(100)는 비동기 방식을 적용하여 연동 트랜잭션을 수행한다. 비동기 방식에 따른 연동 트랜잭션의 구체적인 단계들에 대해서는 도 6에서 자세히 후술되므로 여기서는 그에 대한 설명을 생략한다.
S440 단계에서, 제1 연동 장치(100)는 연동 트랜잭션의 연동 방식을 동기 방식으로 결정한다. 기준 정보와 조회한 정보가 서로 매칭되는 경우이므로, 연동 트랜잭션을 비동기 방식으로 수행하면 현재 진행 중인 또는 진행 예정인 다른 트랜잭션과의 충돌이 발생할 수 있다. 따라서, 비동기 방식을 적용할 수 없는 경우에 해당하므로, 제1 연동 장치(100)는 연동 방식을 동기 방식으로 결정한다.
S450 단계에서, 제1 연동 장치(100)는 동기 방식을 적용하여 연동 트랜잭션을 수행한다. 동기 방식에 따른 연동 트랜잭션의 구체적인 단계들에 대해서는 도 7 및 도 8에서 자세히 후술되므로 여기서는 그에 대한 설명을 생략한다.
도 6은 도 5의 비동기 방식으로 연동 트랜잭션을 수행하는 단계(S430)를 구체화한 일 실시예를 나타내는 순서도이다.
S431 단계에서, 제1 연동 장치(100)는 요청된 연동 트랜잭션의 정보를 저장한다. 일 실시예로서, 제1 연동 장치(100)는 상기 연동 트랜잭션의 정보를 별도로 구비된 분산 데이터베이스(400)에 저장할 수 있다. 저장되는 연동 트랜잭션의 정보에는 연동 트랜잭션의 체인 ID, 체인코드 ID, 연동할 블록체인 네트워크의 명칭 또는 식별자, 연동 트랜잭션과 관련된 타임스탬프, 트랜잭션 ID 등 메타데이터 및 복수의 블록체인 네트워크(10, 20)에 연동할 데이터의 백업 등이 포함될 수 있다.
S432 단계에서, 제1 연동 장치(100)는 제1 블록체인 네트워크(10)를 통해 제1 연동 트랜잭션을 독립적으로 수행한다. 제1 연동 장치(100)는 제1 블록체인 네트워크(10)의 준비 상태를 확인하고 새로운 트랜잭션을 수행할 준비가 된 경우, 제1 연동 트랜잭션을 생성 및 진행한다.
S433 단계에서, 제1 연동 장치(100)는 제2 블록체인 네트워크(20)와 연결된 제2 연동 장치(20)에게 제2 연동 트랜잭션의 수행을 요청한다. 상기 요청에 응답하여 제2 연동 장치(200)는 제1 연동 장치(100)와 유사하게, 제2 블록체인 네트워크(20)의 준비 상태를 확인하고 새로운 트랜잭션을 수행할 준비가 된 경우 제2 연동 트랜잭션을 생성 및 진행하게 된다.
S434 단계에서, 제1 연동 장치(100)는 제2 연동 장치(200)로부터 제2 연동 트랜잭션의 수행 결과를 수신한 후, 상기 제2 연동 트랜잭션의 결과 및 자신이 수행한 제1 연동 트랜잭션의 결과에 기반하여, 연동 트랜잭션의 정보를 새롭게 기록하거나 S431 단계에서 저장한 연동 트랜잭션의 정보를 갱신한다. 가령, 제1 연동 트랜잭션 및 제2 연동 트랜잭션이 성공적으로 완료된 경우, 요청된 연동 트랜잭션이 성공적으로 완료되었음을 나타내는 정보를 연동 트랜잭션의 정보로서 기록 또는 갱신할 수 있다.
도 7은 도 5의 동기 방식으로 연동 트랜잭션을 수행하는 단계(S450)를 구체화한 일 실시예를 나타내는 순서도이다.
S451 단계에서, 제1 연동 장치(100)는 곧바로 연동 트랜잭션을 수행하지 않고 일단 연동 트랜잭션을 트랜잭션 큐에 등록한다. 이때, 트랜잭션 큐가 분산 데이터베이스(400)에 있는 경우에는, 제1 연동 장치(100)는 연동 트랜잭션이 트랜잭션 큐에 등록되도록 분산 데이터베이스(400)에 요청한다.
본 실시예는 동기 방식으로 연동 트랜잭션을 수행하므로, 다른 진행 중인 또는 진행 예정인 트랜잭션들과 실행 순서를 보장할 필요가 있다. 따라서, 제1 연동 장치(100)는 바로 연동 트랜잭션을 개시하지 않고, 트랜잭션 큐에 연동 트랜잭션을 일단 등록해두는 것이다.
S452 단계에서, 제1 연동 장치(100)는 트랜잭션 큐로부터 앞서 등록한 연동 트랜잭션을 불러온다. 제1 연동 장치(100)는 주기적으로 트랜잭션 큐를 확인하여 가장 앞 순번의 트랜잭션을 불러와 수행하게 되는데, 시간이 흘러 앞서 등록한 연동 트랜잭션이 가장 앞 순번으로 오게 되면 제1 연동 장치(100)는 이를 불러와 연동 트랜잭션을 개시하게 된다.
이후, 제1 연동 장치(100)는 다른 연동 장치(200)와 함께 복수의 블록체인 네트워크(10, 20) 각각에 대해 동기 방식으로 연동 트랜잭션을 수행하며, 제2 연동 트랜잭션의 진행 단계에 맞추어 제1 연동 트랜잭션을 진행 및 완료한다.
이에 대해 더욱 구체적으로 설명하면, S453 단계에서, 제1 연동 장치(100)는 연동 트랜잭션의 단계를 나누어 연동 트랜잭션의 제1 페이즈(Phase)를 수행한다. 동기 방식에서는 각 블록체인 네트워크(10, 20)의 연동 트랜잭션, 즉 제1 연동 트랜잭션 및 제2 연동 트랜잭션이 동기화되어 동시에 수행되므로, 이러한 동시성을 확실히 보장하기 위해 제1 연동 장치(100)는 연동 트랜잭션을 복수의 페이즈로 나눈 후 각 블록체인 네트워크들(10, 20)에 대해 해당 페이즈가 성공적으로 완료된 것을 확인하고 다음 페이즈를 진행하는 방식으로 순차적으로 연동 트랜잭션을 진행 및 완료할 수 있다.
이에 대해, 도 8을 참조하여 더욱 상세히 설명한다. 도 8은 도 7의 제1 페이즈를 수행하는 단계(S453)를 구체화한 일 실시예를 나타내는 순서도이다.
S453a 단계에서, 제1 연동 장치(100)는 제1 블록체인 네트워크(10)를 통해 제1 연동 트랜잭션을 복수의 단계로 구분하여 그 중 제1 단계를 수행한다.
S453b 단계에서, 제1 연동 장치(100)는 제2 블록체인 네트워크(20)와 연결된 제2 연동 장치(200)에게 제2 연동 트랜잭션의 제1 단계 수행을 요청한다. 제2 연동 장치(200)는 상기 요청에 응답하여 제2 연동 트랜잭션을 복수의 단계로 구분하고 그 중 제1 단계를 수행하게 된다.
제1 연동 장치(100)는 제2 연동 장치(200)로부터 제2 연동 트랜잭션의 제1 단계 수행 결과를 수신하고, 제1 연동 트랜잭션의 제1 단계와 제2 연동 트랜잭션의 제1 단계가 모두 성공적으로 완료되었으면 연동 트랜잭션의 제1 페이즈가 완료된 것으로 처리한다.
한편, 여기서는 제1 연동 트랜잭션의 제1 단계와 제2 연동 트랜잭션의 제1 단계가 연동 트랜잭션의 제1 페이즈를 구성하는 것으로 예시하였지만, 본 발명의 범위는 이에 한정되지 않는다. 예를 들어, 제1 연동 트랜잭션의 제1 단계 및 제2 단계와 제2 연동 트랜잭션의 제1 단계로 연동 트랜잭션의 제1 페이즈를 구성하는 것처럼, 특정 페이즈를 구성하는 단계들의 수를 제1 연동 트랜잭션과 제2 연동 트랜잭션에 대해 각각 다르게 하는 것도 가능하다.
다시 도 7로 돌아가서, S453 단계에서 제1 페이즈가 완료되면, S454 단계에서 제1 연동 장치(100)는 제1 페이즈를 수행한 결과에 따라 연동 트랜잭션의 제2 페이즈를 수행한다.
앞서 제1 페이즈가 성공하였다면, 제1 연동 장치(100)는 연동 트랜잭션의 제2 페이즈를 수행한다. 이때, 제2 페이즈는 도 8에서 설명한 제1 페이즈의 수행 방법과 유사하게, 제1 연동 장치(100)가 제1 블록체인 네트워크를 통해 제1 연동 트랜잭션의 제2 단계를 수행하고 제2 연동 장치(200)에게 제2 연동 트랜잭션의 제2 단계 수행을 요청하는 방법으로 수행될 수 있다.
반면에, 앞서 제1 페이즈가 실패하였다면 제1 연동 장치(100)는 제2 페이즈를 곧바로 수행하지 않는다. 제1 연동 장치(100)는 제1 페이즈를 재시도하여 성공할 때까지 기다렸다가 제2 페이즈를 수행하거나, 아니면 제1 페이즈의 실패에 따라 연동 트랜잭션이 실패한 것으로 판단하여 제2 페이즈를 수행하지 않고 그대로 본 실시예를 종료할 수도 있다.
이하에서는, 앞서 설명한 본 발명에 따른 복수의 블록체인 네트워크 간 데이터를 연동하는 방법을 전체 시스템(1010)의 관점에서 각 구성요소들(10, 20, 100, 200, 300, 400) 간의 순차적인 상호작용을 중심으로 부연 설명한다.
도 9는 비동기 연동 방식에 따라 복수의 블록체인 네트워크 간 데이터를 연동하는 일련의 순차적인 흐름을 도시하는 도면이다. 이하 도 9를 참조하여 설명한다.
먼저, 사용자 단말(300)로부터 제1 연동 장치(100)로 연동 트랜잭션 요청이 전송된다. 제1 연동 장치(100)는 연동 트랜잭션 요청에 응답하여, 연동 트랜잭션 요청 또는 그와 함께 제공되는 다른 데이터로부터 기준 정보를 추출한다. 추출되는 기준 정보에는 요청된 연동 트랜잭션의 채널 ID 및 채널코드 ID가 포함될 수 있다.
제1 연동 장치(100)는 기준 정보를 추출한 후 분산 데이터베이스(400)를 통해 블록체인 네트워크(10, 20)의 현재 진행 중인 또는 진행 예정인 트랜잭션 정보를 조회한다. 조회하는 트랜잭션 정보에는 상기 현재 진행 중인 또는 진행 예정인 트랜잭션들의 채널 ID 및 채널코드 ID가 포함될 수 있다.
제1 연동 장치(100)는 조회한 정보를 참조하여, 연동 트랜잭션에 적용할 연동 방식을 결정한다. 앞서 설명한 것처럼, 제1 연동 장치(100)는 추출한 기준 정보와 조회한 트랜잭션 정보를 비교하여, 연동 트랜잭션과 현재 진행 중인 또는 진행 예정인 트랜잭션들의 채널 ID 및 채널코드 ID가 일치하는지 판단하여, 채널 ID 및 채널코드 ID가 일치하면 연동 방식을 동기 방식으로 결정하고 그렇지 않으면 연동 방식을 비동기 방식으로 결정한다. 여기서는 채널 ID 또는 채널코드 ID가 일치하지 않아 연동 방식이 비동기 방식으로 결정된 것으로 가정한다.
이후, 비동기 연동 방식으로 연동 트랜잭션이 수행된다.
먼저, 제1 연동 장치(100)는 연동 트랜잭션 정보를 분산 데이터베이스(400)에 저장한다. 저장되는 연동 트랜잭션 정보에는 연동 트랜잭션의 메타데이터 또는 블록체인 네트워크(10, 20)에 연동할 데이터의 백업 등이 포함될 수 있다.
그리고, 제1 연동 장치(100)는 제1 블록체인 네트워크(10)를 통해 제1 연동 트랜잭션을 수행한다.
그리고, 제1 연동 장치(100)는 제2 연동 트랜잭션에 대한 요청을 제2 연동 장치(200)로 전송한다.
제2 연동 장치(200)는 제1 연동 장치(100)로부터의 요청에 응답하여 제2 블록체인 네트워크(20)를 통해 제2 연동 트랜잭션을 수행하고, 제2 연동 트랜잭션 수행 결과를 제1 연동 장치(100)에 회신한다.
제1 연동 장치(100)는 제2 연동 트랜잭션 수행 결과를 수신하고, 제2 연동 트랜잭션의 결과 및 자신이 수행한 제1 연동 트랜잭션의 결과에 기반하여 연동 트랜잭션 정보를 새롭게 기록하거나 갱신한다.
그리고, 제1 연동 장치(100)는 사용자 단말(300)에 연동 트랜잭션을 수행한 결과를 회신한다.
도 10 및 도 11은 동기 연동 방식에 따라 복수의 블록체인 네트워크 간 데이터를 연동하는 일련의 순차적인 흐름을 도시하는 도면이다. 이하 도 10 및 도 11을 참조하여 설명한다.
앞서 도 9의 실시예에서와 동일하게, 제1 연동 장치(100)는 사용자 단말(300)로부터 연동 트랜잭션 요청을 수신하고, 연동 트랜잭션 요청에 응답하여 기준 정보를 추출한 후, 분산 데이터베이스(400)를 통해 블록체인 네트워크(10, 20)의 현재 진행 중인 또는 진행 예정인 트랜잭션 정보를 조회한다. 그리고, 제1 연동 장치(100)는 조회한 정보를 참조하여, 연동 트랜잭션에 적용할 연동 방식을 결정한다. 다만, 여기서는 도 9의 실시예와 다르게, 채널 ID 및 채널코드 ID가 일치하여 연동 방식이 동기 방식으로 결정된 것으로 가정한다.
이후, 동기 연동 방식으로 연동 트랜잭션이 수행된다.
먼저, 제1 연동 장치(100)는 곧바로 연동 트랜잭션을 개시하지 않고 분산 데이터베이스(400)의 트랜잭션 큐에 연동 트랜잭션을 등록한다.
이후, 등록한 연동 트랜잭션이 트랜잭션 큐에서 가장 앞 순번에 위치하게 되면, 제1 연동 장치(100)는 트랜잭션 큐로부터 연동 트랜잭션을 불러온다.
그리고, 제1 연동 장치(100)는 연동 트랜잭션의 단계를 나누어, 연동 트랜잭션의 제1 페이즈를 수행한다(S1).
그리고, 제1 연동 장치(100)는 제1 페이즈가 성공적으로 완료되었는지 판단하여, 제1 페이즈가 정상적으로 완료되지 못했으면 더 이상 연동 트랜잭션을 진행하지 않고 종료하고, 제1 페이즈가 성공적으로 완료되었으면 연동 트랜잭션의 제2 페이즈를 이어서 수행한다(S2).
그리고, 제1 연동 장치(100)는 연동 트랜잭션을 수행한 결과를 기반으로 분산 데이터베이스(400)에 연동 트랜잭션 정보를 새롭게 기록하거나 갱신한다.
그리고, 제1 연동 장치(100)는 사용자 단말(300)에 연동 트랜잭션을 수행한 결과를 회신한다.
도 11은 도 10의 연동 트랜잭션의 제1 페이즈 단계(S1) 및 연동 트랜잭션의 제2 페이즈 단계(S2)를 보다 구체적으로 부연하기 위한 도면이다. 이하 도면을 참조하여 설명한다.
연동 트랜잭션의 제1 페이즈 단계(S1)에서 제1 연동 장치(100)는 제1 블록체인 네트워크(10)를 통해 제1 연동 트랜잭션의 제1 단계를 수행한다. 그리고, 제1 연동 장치(100)는 제2 연동 장치(200)에게 제2 연동 트랜잭션의 제1 단계 수행을 요청한다.
제2 연동 장치(200)는 제1 연동 장치(100)로부터의 요청에 응답하여 제2 블록체인 네트워크(20)를 통해 제2 연동 트랜잭션의 제1 단계를 수행하고, 제2 연도 트랜잭션의 제1 단계 수행 결과를 제1 연동 장치(100)로 회신한다.
제1 연동 장치(100)는 제1 페이즈가 성공적으로 완료되었는지 판단하여, 제1 페이즈가 정상적으로 완료되지 못했으면 더 이상 연동 트랜잭션을 진행하지 않고 종료하고, 제1 페이즈가 성공적으로 완료되었으면 연동 트랜잭션의 제2 페이즈 단계로 진행한다.
연동 트랜잭션의 제2 페이즈 단계(S2)에서 제1 연동 장치(100)는 제1 블록체인 네트워크(10)를 통해 제1 연동 트랜잭션의 제2 단계를 수행한다. 그리고, 제1 연동 장치(100)는 제2 연동 장치(200)에게 제2 연동 트랜잭션의 제2 단계 수행을 요청한다.
제2 연동 장치(200)는 제1 연동 장치(100)로부터의 요청에 응답하여 제2 블록체인 네트워크(20)를 통해 제2 연동 트랜잭션의 제2 단계를 수행하고, 제2 연도 트랜잭션의 제2 단계 수행 결과를 제1 연동 장치(100)로 회신함으로써, 제2 페이즈 단계(S2)가 종료한다.
이하에서는, 도 12를 참조하여 본 발명의 다양한 실시예에서 설명된 장치를 구현할 수 있는 예시적인 컴퓨팅 장치(500)에 대하여 설명하도록 한다.
도 12는 컴퓨팅 장치(500)를 나타내는 예시적인 하드웨어 구성도이다.
도 12에 도시된 바와 같이, 컴퓨팅 장치(500)는 하나 이상의 프로세서(510), 버스(550), 통신 인터페이스(570), 프로세서(510)에 의하여 수행되는 컴퓨터 프로그램(591)을 로드(load)하는 메모리(530)와, 컴퓨터 프로그램(591)를 저장하는 스토리지(590)를 포함할 수 있다. 다만, 도 12에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 12에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(510)는 컴퓨팅 장치(500)의 각 구성의 전반적인 동작을 제어한다. 프로세서(510)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(510)는 본 발명의 다양한 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(500)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(530)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(530)는 본 발명의 다양한 실시예들에 따른 방법/동작들을 실행하기 위하여 스토리지(590)로부터 하나 이상의 프로그램(591)을 로드(load) 할 수 있다. 메모리(530)의 예시는 RAM이 될 수 있으나, 이에 한정되는 것은 아니다.
버스(550)는 컴퓨팅 장치(500)의 구성 요소 간 통신 기능을 제공한다. 버스(550)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
통신 인터페이스(570)는 컴퓨팅 장치(500)의 유무선 인터넷 통신을 지원한다. 통신 인터페이스(570)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(570)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
스토리지(590)는 하나 이상의 컴퓨터 프로그램(591)을 비임시적으로 저장할 수 있다. 스토리지(590)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(591)은 본 발명의 다양한 실시예들에 따른 방법/동작들이 구현된 하나 이상의 인스트럭션들을 포함할 수 있다. 컴퓨터 프로그램(591)이 메모리(530)에 로드 되면, 프로세서(510)는 상기 하나 이상의 인스트럭션들을 실행시킴으로써 본 발명의 다양한 실시예들에 따른 방법/동작들을 수행할 수 있다.
지금까지 설명된 본 발명의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 발명이 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (12)

  1. 복수의 블록체인 네트워크 간에 데이터를 연동하기 위한 연동 트랜잭션의 요청을 수신하는 단계;
    상기 요청에 응답하여, 상기 복수의 블록체인 네트워크를 통해 진행 중인 또는 진행 예정인 트랜잭션의 정보를 조회하는 단계; 및
    상기 조회한 정보를 참조하여 복수의 연동 방식 중 어느 하나를 상기 연동 트랜잭션의 연동 방식으로 선택적으로 결정하고, 상기 결정된 연동 방식에 따라 상기 연동 트랜잭션을 수행하는 단계를 포함하는,
    복수의 블록체인 네트워크 간 데이터를 연동하는 방법.
  2. 제1 항에 있어서,
    상기 연동 트랜잭션을 수행하는 단계는,
    상기 연동 트랜잭션의 기준 정보와 상기 조회한 정보가 서로 매칭되는지 판단하는 단계; 및
    상기 기준 정보와 상기 조회한 정보가 서로 매칭되지 않으면 상기 복수의 연동 방식 중 비동기 방식을 상기 연동 방식으로 결정하는 단계를 포함하는,
    복수의 블록체인 네트워크 간 데이터를 연동하는 방법.
  3. 제2 항에 있어서,
    상기 기준 정보는 상기 연동 트랜잭션의 체인 ID(Identification) 또는 체인코드 ID를 포함하고,
    상기 조회한 정보는 상기 진행 중인 또는 진행 예정인 트랜잭션의 체인 ID 또는 체인코드 ID를 포함하는,
    복수의 블록체인 네트워크 간 데이터를 연동하는 방법.
  4. 제2 항에 있어서,
    상기 서로 매칭되는지 판단하는 단계는,
    상기 연동 트랜잭션과 상기 진행 중인 또는 진행 예정인 트랜잭션의 체인 ID 또는 체인코드 ID를 서로 비교하여, 상기 연동 트랜잭션과 상기 진행 중인 또는 진행 예정인 트랜잭션의 체인 ID 또는 체인코드 ID가 서로 일치하면 상기 기준 정보와 상기 조회한 정보가 서로 매칭되는 것으로 판단하는,
    복수의 블록체인 네트워크 간 데이터를 연동하는 방법.
  5. 제1 항에 있어서,
    상기 연동 트랜잭션을 수행하는 단계는,
    상기 결정된 연동 방식이 비동기 방식이면, 상기 연동 트랜잭션의 정보를 기록하고 상기 복수의 블록체인 네트워크 중 제1 블록체인 네트워크를 통해 제1 연동 트랜잭션을 독립적으로 수행하는 단계를 포함하는,
    복수의 블록체인 네트워크 간 데이터를 연동하는 방법.
  6. 제5 항에 있어서,
    상기 연동 트랜잭션을 수행하는 단계는,
    상기 복수의 블록체인 네트워크 중 제2 블록체인 네트워크와 연결된 연동 장치에게 제2 연동 트랜잭션의 수행을 요청하는 단계를 더 포함하고,
    상기 제2 연동 트랜잭션은 상기 연동 장치에 의해 상기 제2 블록체인 네트워크를 통해 수행되는,
    복수의 블록체인 네트워크 간 데이터를 연동하는 방법.
  7. 제6 항에 있어서,
    상기 연동 트랜잭션을 수행하는 단계는,
    상기 연동 장치로부터 상기 제2 연동 트랜잭션의 수행 결과를 수신한 후, 상기 제1 연동 트랜잭션의 수행 결과 및 상기 제2 연동 트랜잭션의 수행 결과에 기반하여 상기 연동 트랜잭션의 정보를 갱신하는 단계를 더 포함하는,
    복수의 블록체인 네트워크 간 데이터를 연동하는 방법.
  8. 제1 항에 있어서,
    상기 연동 트랜잭션을 수행하는 단계는,
    상기 결정된 연동 방식이 비동기 방식이 아니면, 트랜잭션 큐에 상기 연동 트랜잭션이 등록되도록 요청하는 단계를 포함하는,
    복수의 블록체인 네트워크 간 데이터를 연동하는 방법.
  9. 제8 항에 있어서,
    상기 연동 트랜잭션을 수행하는 단계는,
    상기 데이터베이스의 상기 트랜잭션 큐로부터 상기 연동 트랜잭션을 불러오는 단계;
    상기 연동 트랜잭션의 단계를 나누어 상기 연동 트랜잭션의 제1 페이즈를 수행하는 단계; 및
    상기 제1 페이즈를 수행한 결과에 따라 상기 연동 트랜잭션의 제2 페이즈를 수행하는 단계를 포함하고,
    상기 제1 페이즈를 수행하는 단계는,
    상기 복수의 블록체인 네트워크 중 제1 블록체인 네트워크를 통해 제1 연동 트랜잭션의 복수의 단계 중 제1 단계를 수행하는 단계; 및
    상기 복수의 블록체인 네트워크 중 제2 블록체인 네트워크와 연결된 연동 장치에게 상기 제1 연동 트랜잭션과 상응하는 제2 연동 트랜잭션의 복수의 단계 중 제1 단계의 수행을 요청하는 단계를 포함하는,
    복수의 블록체인 네트워크 간 데이터를 연동하는 방법.
  10. 제1 항에 있어서,
    상기 네트워크의 진행 중인 또는 진행 예정인 트랜잭션의 정보는 데이터베이스로부터 조회되고,
    상기 데이터베이스는 상기 복수의 블록체인 네트워크를 통해 수행되는 트랜잭션과 관련된 정보 또는 상기 복수의 블록체인 네트워크에 기록되는 데이터의 백업(Backup) 정보를 저장하는,
    복수의 블록체인 네트워크 간 데이터를 연동하는 방법.
  11. 프로세서;
    상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 로드(load)하는 메모리; 및
    상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되,
    상기 컴퓨터 프로그램은,
    복수의 블록체인 네트워크 간에 데이터를 연동하기 위한 연동 트랜잭션의 요청을 수신하는 동작,
    상기 요청에 응답하여 상기 복수의 블록체인 네트워크의 진행 중인 또는 진행 예정인 트랜잭션의 정보를 조회하는 동작, 및
    상기 조회한 정보를 참조하여 복수의 연동 방식 중 어느 하나를 상기 연동 트랜잭션의 연동 방식으로 선택적으로 결정하고, 상기 결정된 연동 방식에 따라 상기 연동 트랜잭션을 수행하는 동작을 수행하도록 하는 인스트럭션들(Instructions)을 포함하는,
    복수의 블록체인 네트워크 간 데이터를 연동하는 장치.
  12. 복수의 블록체인 네트워크 간 데이터를 연동하는 방법을 실행하기 위해 컴퓨팅 장치와 결합되어,
    복수의 블록체인 네트워크 간에 데이터를 연동하기 위한 연동 트랜잭션의 요청을 수신하는 단계;
    상기 요청에 응답하여 상기 복수의 블록체인 네트워크의 진행 중인 또는 진행 예정인 트랜잭션의 정보를 조회하는 단계; 및
    상기 조회한 정보를 참조하여 복수의 연동 방식 중 어느 하나를 상기 연동 트랜잭션의 연동 방식으로 선택적으로 결정하고, 상기 결정된 연동 방식에 따라 상기 연동 트랜잭션을 수행하는 단계를 실행시키도록 컴퓨터로 판독가능한 기록매체에 저장되는,
    컴퓨터 프로그램.
KR1020200057464A 2020-05-14 2020-05-14 복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 그 장치 KR20210140851A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200057464A KR20210140851A (ko) 2020-05-14 2020-05-14 복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 그 장치
US16/994,782 US11663170B2 (en) 2020-05-14 2020-08-17 Method for associating data between a plurality of blockchain networks and apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200057464A KR20210140851A (ko) 2020-05-14 2020-05-14 복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR20210140851A true KR20210140851A (ko) 2021-11-23

Family

ID=78512387

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200057464A KR20210140851A (ko) 2020-05-14 2020-05-14 복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 그 장치

Country Status (2)

Country Link
US (1) US11663170B2 (ko)
KR (1) KR20210140851A (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111475575B (zh) * 2020-04-09 2021-08-10 腾讯科技(深圳)有限公司 基于区块链的数据同步方法、装置及计算机可读存储介质
US11645650B1 (en) * 2020-08-06 2023-05-09 Citibank, N.A. Systems and methods for blockchain-based transaction break prevention
KR20230148643A (ko) * 2022-04-18 2023-10-25 주식회사 에이젠글로벌 서플라이체인 서비스 및 금융 서비스를 메타버스 상에 구현하는 방법 및 이러한 방법을 수행하는 장치

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 (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6240422B1 (en) * 1998-07-29 2001-05-29 American Management Systems, Inc. Object to relational database mapping infrastructure in a customer care and billing system
US20140236768A1 (en) * 2012-10-05 2014-08-21 Redfin Corporation Physical references for providing supplemental real estate information
CA2905576A1 (en) * 2013-03-13 2014-09-18 Jumpto Media Inc. Encrypted network storage space
US10515409B2 (en) * 2016-03-23 2019-12-24 Domus Tower, Inc. Distributing work load of high-volume per second transactions recorded to append-only ledgers
US9390154B1 (en) * 2015-08-28 2016-07-12 Swirlds, Inc. Methods and apparatus for a distributed database within a network
US10449148B2 (en) * 2015-11-04 2019-10-22 Braingear Enterprises, Inc. Dietary supplement for improving brain health
US10713654B2 (en) * 2016-01-21 2020-07-14 International Business Machines Corporation Enterprise blockchains and transactional systems
US10846096B1 (en) * 2018-09-17 2020-11-24 A9.Com, Inc. Batch processing of requests for trained machine learning model
US11474994B2 (en) * 2018-12-27 2022-10-18 Intel Corporation Distributed blockchain oracle
CN110800258B (zh) * 2019-03-18 2022-04-22 创新先进技术有限公司 用于结束视图更改协议的系统和方法
US11431486B2 (en) * 2019-05-22 2022-08-30 Salesforce.Com, Inc. System or method to implement consensus on read on distributed ledger/blockchain

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
US20210357369A1 (en) 2021-11-18
US11663170B2 (en) 2023-05-30

Similar Documents

Publication Publication Date Title
KR20210140851A (ko) 복수의 블록체인 네트워크 간 데이터를 연동하는 방법 및 그 장치
CN110569305B (zh) 区块同步方法、装置、介质和计算设备
CN111612614A (zh) 一种基于公链的子链业务系统
CN108776897B (zh) 数据处理方法、装置、服务器及计算机可读存储介质
CN109325016B (zh) 数据迁移方法、装置、介质及电子设备
CN112383610B (zh) 区块链状态数据的同步处理方法及系统
US9985832B2 (en) Method and system for syncronization and distribution of configuration cross cluster without blocking
CN110210845B (zh) 用于区块链数据迁移的方法、装置、介质和计算设备
CN110046166B (zh) 基于区块链的定时任务调度方法及装置
US20090193286A1 (en) Method and System for In-doubt Resolution in Transaction Processing
CN112434008A (zh) 分布式数据库升级方法、设备及介质
WO2016116013A1 (zh) 软件升级方法和系统
US8174966B2 (en) Switching program, switching method and duplex system
KR102208704B1 (ko) Sql 쿼리에 해당하는 동작을 수행할 수 있는 블록체인 소프트웨어, 블록체인 시스템, 및 이의 동작 방법
CN111367560A (zh) 一种扩展服务器功能的方法、系统、设备及介质
CN112988777B (zh) 对象处理方法、装置、计算机设备和存储介质
JP5862246B2 (ja) データ管理プログラム、データ管理方法およびストレージ装置
US11151157B2 (en) Database management method
CN114172903B (zh) slurm调度系统的节点扩容方法、装置、设备和介质
US10452492B2 (en) Method, apparatus, and computer program stored in computer readable medium for recovering block in database system
CN112764897B (zh) 任务请求的处理方法、装置、系统及计算机可读存储介质
CN114840488A (zh) 一种基于超融合结构的分布式存储方法、系统及存储介质
US20220270191A1 (en) System for automatically splitting smart contract
CN112306962B (zh) 计算机集群系统中的文件拷贝方法、装置及存储介质
CN112765126A (zh) 数据库事务的管理方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
A201 Request for examination