KR20220038781A - 분산형 블록체인 트랜잭션 시스템 - Google Patents

분산형 블록체인 트랜잭션 시스템 Download PDF

Info

Publication number
KR20220038781A
KR20220038781A KR1020227007029A KR20227007029A KR20220038781A KR 20220038781 A KR20220038781 A KR 20220038781A KR 1020227007029 A KR1020227007029 A KR 1020227007029A KR 20227007029 A KR20227007029 A KR 20227007029A KR 20220038781 A KR20220038781 A KR 20220038781A
Authority
KR
South Korea
Prior art keywords
blockchain
transaction
coordinator
contract
user
Prior art date
Application number
KR1020227007029A
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 제우 테크놀로지스, 인크.
Publication of KR20220038781A publication Critical patent/KR20220038781A/ko

Links

Images

Classifications

    • 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/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/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • 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/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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • 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
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

제1 노드를 포함하는 제1 참가자 블록체인; 제2 노드를 포함하는 제2 참가자 블록체인; 및 조정자 노드를 포함하는 조정자 블록체인을 포함하는, 분산형 블록체인 트랜잭션들을 구현하기 위한 시스템이 개시된다. 분산형 트랜잭션은 제1 참가자 블록체인 상의 제1 트랜잭션, 및 제2 참가자 블록체인 상의 제2 트랜잭션을 수반한다. 조정자 블록체인은, 조정자 노드와 제1 및 제2 노드들 사이에서 보안 메시지들을 전송하고, 제1 및 제2 트랜잭션들 모두가 함께 커밋되거나 롤백되도록 제1 및 제2 트랜잭션들을 조정하기 위해 전역 상태 값을 유지함으로써, 분산형 트랜잭션의 끝에서 시스템을 일관된 상태로 남겨두도록 적응된다.

Description

분산형 블록체인 트랜잭션 시스템
본 출원은 일반적으로 블록체인 시스템에 관한 것으로, 특히 복수의 블록체인을 이용하는 분산형 블록체인 트랜잭션 시스템(distributed blockchain transaction system)에 관한 것이다.
전통적인 관계형 데이터베이스 관리 시스템들은, 에러들의 경우에도, 유효성을 보장해야 하는 트랜잭션들을 전형적으로 지원하는 많은 부류들의 애플리케이션들에 대해 이용되어 왔다. 트랜잭션들은 동시에 발생할 수 있는 개별적이고 분할불가능한 동작들이다. 트랜잭션 처리 시스템은 트랜잭션들의 동시 처리를 관리하고, 데이터의 공유를 가능하게 하고, 데이터의 무결성을 보장하고, 트랜잭션 실행의 우선순위화를 관리한다.
따라서, 이러한 트랜잭션들은 원자성(atomicity), 일관성(consistency), 격리(isolation), 및 지속성(durability)(줄여서 ACID)이라고 하는 속성들의 세트에 의해 특성화된다. 원자성은 데이터에 대한 모든 변경들이 마치 그들이 단일 동작인 것처럼 수행된다는 것을 의미한다. 일관성은 트랜잭션이 시작될 때와 종료될 때 데이터가 일관된 상태에 있을 것을 요구한다. 격리는 트랜잭션의 중간 상태가 다른 트랜잭션들에 보이지 않는다는 것을 의미한다. 지속성은 트랜잭션이 성공적으로 완료된 후에, 데이터에 대한 변경사항들이 지속되고, 시스템 실패의 경우에도 실행 취소되지 않는다는 것을 의미한다.
트랜잭션들을 지원하는 애플리케이션들에서의 기본 요건은 하나의 동작이 복수의 데이터베이스 동작을 수반하고 이들 기록들이 모두 함께 성공하거나 실패해야만 하는 것이다. 예를 들어, 하나의 계좌에서 인출하고 다른 계좌에 입금하는 것과 같은 복수의 변경을 수반하더라도, 하나의 은행 계좌로부터 다른 은행 계좌로 자금들을 이체하는 것은 단일의 데이터베이스 트랜잭션이다.
한편, 블록체인 트랜잭션들은 합의를 통해 작동한다. 블록체인 기술은 집합적 참가 및 참가자들 간의 합의에 의해 트랜잭션들의 신뢰성 있는 기록을 유지한다. 블록체인은 종종 분산형 원장 기술(distributed ledger technology)(DLT)로서 이해되고 설명되었으며, 노드들이라고 하는 복수의 네트워크화된 디바이스들에 의해 공동으로 유지된다. 블록체인은 따라서 분산형 데이터베이스 시스템으로서 생각될 수 있다.
데이터베이스들이 아니라 블록체인들을 수반하는 분산형 트랜잭션들은 여러 과제들을 수반한다. 본 발명의 목적은 복수의 블록체인들의 시스템이 ACID 테스트를 만족시키는 일관된 상태로 남도록 커밋(commit) 또는 롤백(rollback) 중 어느 하나인 복수의 블록체인들에 걸친 트랜잭션들을 보장하기 위해 이러한 과제들 중 적어도 일부를 해결하는 것이다.
상이한 블록체인들에 걸친 조정 동작들에서 일부 시도들이 행해졌다. 두드러진 예가 서로 다른 코인 교환(atomic swap)이다. 서로 다른 코인 교환들은 Decred와 Litecoin이 첫 번째 서로 다른 코인 교환을 수행한 2017년 9월경에 처음으로 주목을 받았다. 그 후, 일부 유사한 서비스들이 Shapeshift, 0x, 및 Altcoin.io와 같은 비중앙집중형 교환 또는 프로토콜에 의해 가능하게 되었다.
서로 다른 코인 교환은 교환 또는 다른 중앙집중형 기관과 같은 신뢰받는 제3자를 이용하지 않고 상이한 암호 화폐들의 교환을 허용하는 자체-실행된 스마트 계약이다. 서로 다른 코인 교환들은 양쪽 당사자들이 지정된 기간의 만료 전에 트랜잭션의 완료를 검증할 것을 요구하는 해시 타임록 계약(Hash Timelock Contract)(HTLC)을 이용한다. 트랜잭션이 제 시간에 검증되지 않으면, 이것은 실패하고, 화폐들이 그 원래 소유자들에게 반환된다.
그러나, 서로 다른 코인 교환들은 수락된 암호 화폐들에 대한 제한들, 과중한 트랜잭션 요금들(hefty transaction fees), 및 확장성(scalability)의 결여를 포함하는, 그 자신의 문제들을 갖는다. 역사적으로, 이러한 유형들의 트랜잭션들은 일대일 트랜잭션, 예를 들어, 10 Ether에 대해 0.4 비트코인으로 제한되었고, 전형적으로 복수의, 즉, 2개보다 많은 블록체인들을 지원하지 않는다. 또한, 현재의 교환 기술은 원장들 간에 커넥터들을 유지할 필요가 있기 때문에 확장성의 결여를 겪는다. 이것은 교환에 통합되는 각각의 새로운 암호 자산에 대해 기하급수적으로 증가하는 수의 커넥터들 및 연관된 지원 자산들을 발생시킨다.
이러한 이유로, 이러한 서로 다른 코인 교환 기술들 및 프로토콜들은 유동적이고, 비중앙집중형이고, 확장가능하며, 블록체인의 불가지론적 해결책을 제공하지 못했다.
트랜잭션 원자성 및 일관성을 위해, 단일 블록체인 상의 트랜잭션들은 그들 자신의 복잡한 합의 메커니즘을 통해 해결되었다. 트랜잭션 격리를 위해, 각각의 블록체인 스마트 계약의 실행이 직렬화되기 때문에, 이 문제는 발생하지 않는다. 블록체인이 영구적이고 변경불가능한 기록이기 때문에 지속성이 충족된다. 그러나, 많은 상이한 유형들의 블록체인들이 존재한다. 블록체인 자체의 특성들로 인해, 크로스-체인 상호운용성(cross-chain interoperability)은 구현하기에 어렵고, 각각의 블록체인은 전형적으로 이러한 동작들을 지원하기에 불충분한 리소스들 또는 인터페이스들을 갖는다.
따라서, 위에 언급된 문제들 중 적어도 일부를 완화하기 위한 개선된 시스템들 및 방법들이 필요하다.
본 발명의 실시예들은 모두 동시에 성공하거나 동시에 실패하는 복수의 상호 관련되지 않은 블록체인 노드들에 걸친 트랜잭션들을 허용하는 분산형 블록체인 기반 트랜잭션 시스템 및 방법을 제공한다.
본 발명의 일 양태에 따르면, 분산형 블록체인 트랜잭션들을 위한 시스템이 제공된다. 이 시스템은, 제1 노드를 포함하는 제1 참가자 블록체인; 제2 노드를 포함하는 제2 참가자 블록체인; 및 조정자 노드(coordinator node)를 포함하는 조정자 블록체인을 포함하며, 분산형 트랜잭션은 제1 참가자 블록체인 상의 제1 트랜잭션, 및 제2 참가자 블록체인 상의 제2 트랜잭션을 수반하고, 조정자 블록체인은, 조정자 노드와 제1 및 제2 노드들 사이에서 보안 메시지들을 전송하고, 제1 및 제2 트랜잭션들 모두가 함께 커밋되거나 롤백되도록 제1 및 제2 트랜잭션들을 조정하기 위해 전역 상태 값을 유지함으로써, 상기 분산형 트랜잭션의 끝에서 상기 시스템을 일관된 상태로 남겨두도록 적응된다.
본 발명의 일 양태에 따르면, 시스템을 이용하여 제1 사용자와 제2 사용자 사이에서 분산형 블록체인 트랜잭션을 실행하는 방법이 제공되며, 이 시스템은, 제1 계약을 포함하는 제1 참가자 블록체인; 제2 계약을 포함하는 제2 참가자 블록체인; 및 제3 계약을 포함하는 조정자 블록체인을 포함하고, 분산형 트랜잭션은 제1 체인 상의 제1 트랜잭션 및 제2 체인 상의 제2 트랜잭션을 수반하고, 이 방법은, 조정자 블록체인에서, 난수 시드 C 및 HC = 해시(시드 C)로서 계산되는 해시 HC를 생성하는 단계; 제1 참가자 블록체인으로부터 H1 = 해시(RA + 시드 A + HC)로서 계산되는 해시 H1을 수신하는 단계 - 시드 A는 제1 체인에서 생성된 난수 시드이고, RA는 제1 체인 상에서 실행된 제1 계약의 결과임 -; 제2 참가자 블록체인으로부터 H2 = 해시(RB + 시드 B + HC)로서 계산되는 해시 H2를 수신하는 단계 - 시드 B는 제2 체인에서 생성된 난수 시드이고, RB는 제2 체인 상에서 실행된 제2 계약의 결과임 -; 해시 H3 = 해시(H1 + H2)를 계산하는 단계; 시드 C, H1, H2 및 H3으로 제3 계약의 커밋 기능(function)을 실행하는 단계; 시드 A, 시드 B, 시드 C 및 해시 값들 H1, H2, H3을 수집하고 검증하는 단계; 시드 A 및 H1의 검증 시에, 제1 참가자 블록체인 상의 제1 트랜잭션을 커밋하는 단계; 및 시드 B 및 H2의 검증 시에, 제2 참가자 블록체인의 동작들을 커밋하는 단계를 포함한다.
본 발명의 일 양태에 따르면, 시스템을 이용하여 제1 사용자와 제2 사용자 사이에서 분산형 블록체인 트랜잭션을 실행하는 방법이 제공되며, 이 시스템은, 제1 계약을 포함하는 제1 참가자 블록체인; 제2 계약을 포함하는 제2 참가자 블록체인; 및 제3 계약을 포함하는 조정자 블록체인을 포함하고, 분산형 트랜잭션은 제1 체인 상의 제1 트랜잭션 및 제2 체인 상의 제2 트랜잭션을 수반하고, 이 방법은, 제1 참가자 블록체인에서, a) 조정자 블록체인으로부터 난수 시드 C 및 HC = 해시(시드 C)로서 계산되는 해시 HC를 수신하는 단계; b) H1 = 해시(RA + 시드 A + HC)로서 계산되는 해시 H1을 생성하는 단계 - 시드 A는 제1 체인에서 생성된 난수 시드이고, RA는 제1 체인 상에서 실행된 제1 계약의 결과임 -; c) 시드 C로 H1을 체크하고, 성공적인 체크 시에, 시드 A를 해제(release)하는 단계를 포함한다.
본 발명의 일 양태에 따르면, 시스템을 이용하여 제1 사용자와 제2 사용자 사이에서 분산형 블록체인 트랜잭션을 실행하는 방법이 제공되며, 이 시스템은, 제1 계약을 포함하는 제1 참가자 블록체인; 제2 계약을 포함하는 제2 참가자 블록체인; 및 제3 계약을 포함하는 조정자 블록체인을 포함하고, 분산형 트랜잭션은 제1 체인 상의 제1 트랜잭션 및 제2 체인 상의 제2 트랜잭션을 수반하고, 이 방법은, 제1 참가자 블록체인에서, 조정자 블록체인으로부터 난수 시드 C 및 HC = 해시(시드 C)로서 계산되는 해시 HC를 수신하는 단계; H2 = 해시(RB + 시드 B + HC)로서 계산되는 해시 H2를 생성하는 단계 - 시드 B는 제2 참가자 블록체인에서 생성된 난수 시드이고, RB는 제2 참가자 블록체인 상에서 실행된 제2 계약의 결과임 -; 시드 C로 H2를 체크하고, 성공적인 체크 시에, 시드 B를 해제하는 단계를 포함한다.
또한, 트랜잭션 사기 검출 메커니즘들이 개시된다.
도면들에서는, 오직 예로서 본 발명의 실시예들이 예시된다.
도 1은 복수의 블록체인에 걸쳐 분산형 트랜잭션을 구현하는, 본 발명의 예시적인 실시예의 시스템의 단순화된 개략도이다.
도 2는 복수의 노드에 걸친 다단계 조정된 트랜잭션의 단순화된 개략적 활동도이다.
도 3은 본 발명의 예시적인 실시예에 따른 예시적인 시스템 배치 아키텍처이다.
도 4는 블록체인 크로스-체인 트랜잭션들의 예시적인 실행 흐름의 도면이다.
도 5는 계약 준비 단계 합의의 예시적인 실패 프로세스의 도면이다.
도 6은 참가자 또는 조정자 사기를 검출하고 이를 피하기 위한 예시적인 방법을 도시하는 흐름도이다.
도 7은 트랜잭션 타이밍 아웃을 처리하기 위한 단계들을 요약한 흐름도이다.
본 발명의 적어도 일부 실시예들은 전통적인 데이터베이스 관리 시스템들보다는 복수의 블록체인들을 수반하는 분산형 블록체인 환경들에서의 트랜잭션 관리에 관련된 문제들을 해결한다.
본 발명의 다양한 실시예들의 설명이 아래에 제공된다. 본 개시내용에서, 단수 표현("a" 또는 "an")의 사용은 용어 "포함하는"과 함께 본 명세서에 사용될 때 "하나"를 의미할 수 있지만, 또한 "하나 이상", "적어도 하나" 및 "하나 또는 하나 초과"의 의미와 일치한다. 단수 형태로 표현된 임의의 요소는 또한 그 복수 형태를 포함한다. 복수 형태로 표현된 임의의 요소는 또한 그 단수 형태를 포함한다. 본 명세서에서 사용되는 바와 같은 용어 "복수"는 하나 초과, 예를 들어, 2개 이상, 3개 이상, 4개 이상 등을 의미한다. "상부", "하부", "상향", "하향", "수직으로" 및 "측방향으로"와 같은 방향성 용어들은 상대적인 참조만을 제공하기 위한 목적으로 사용되고, 임의의 물품이 사용 중에 어떻게 위치될 것인지, 또는 어셈블리 내에 또는 환경에 대해 장착되어야 하는지에 대한 임의의 제한들을 제안하도록 의도되지 않는다.
"포함하는", "갖는", "비롯한", 및 "함유하는"이라는 용어들, 및 이들의 문법적 변형들은 포괄적이거나 개방형(open-ended)이고, 추가적인 열거되지 않은 요소들 및/또는 방법 단계들을 배제하지 않는다. "본질적으로 ~로 이루어진"이라는 용어는, 본 명세서에서 조성, 용도 또는 방법과 관련하여 사용될 때, 추가적인 요소들, 방법 단계들, 또는 추가적인 요소들과 방법 단계들 둘 다가 존재할 수 있지만, 이들 추가들이 기재된 조성, 방법, 또는 용도가 기능하는 방식에 실질적으로 영향을 미치지 않는다는 것을 나타낸다. "~로 이루어진"이라는 용어는, 본 명세서에서 조성, 용도, 또는 방법과 관련하여 사용될 때, 추가적인 요소들 및/또는 방법 단계들의 존재를 배제한다.
또한, 용어들 "제1", "제2", "제3" 등은 단지 설명의 목적들을 위해 사용되고 상대적 중요성을 나타내거나 암시하는 것으로 해석될 수 없다.
본 발명의 설명에서, "장착된", "링크된" 및 "접속된"이라는 용어들은, 명시적으로 정의되고 달리 제한되지 않는 한, 넓은 의미로 해석되어야 한다는 점에도 유의해야 한다. 예를 들어, 이것은 고정된 접속, 또는 조립된 접속, 또는 일체로 접속될 수 있고; 하드-와이어드 또는 소프트-와이어드일 수 있고; 이것은 직접 접속되거나 매개체를 통해 간접적으로 접속될 수 있다. 관련 기술분야의 통상의 기술자에게, 본 발명에서의 위의 용어들의 구체적인 의미들은 맥락 속에서 이해될 수 있다.
본 개시내용에서, 용어들 "블록체인" 및 "체인"은 상호교환가능하게 사용될 수 있다.
본 발명의 실시예들을 예시하는 도면들에서, 동일하거나 유사한 참조 라벨들은 동일하거나 유사한 부분들에 대응한다. 본 발명의 설명에서, "복수의"의 의미는 달리 명시되지 않는 한 2개 이상을 의미한다는 점에 유의해야 한다. "위", "아래", "좌측", "우측", "내부", "외부", "전방 단부", "후방 단부", "머리", "꼬리"라는 용어들의 방향들 또는 위치들, 도면들에 도시된 배향 또는 위치 관계는, 표시된 디바이스 또는 요소가 특정 배향을 가지고 특정 배향으로 구성되고 작동되어야만 한다는 것을 나타내거나 암시하기보다는 단지 본 발명을 설명하고 설명을 단순화하는 편의를 위한 것이고, 따라서, 본 발명의 제한으로서 사용될 수 없다.
트랜잭션은 활동에 수반되는 모든 동작들을 분할불가능한 실행 유닛에 통합하는 메커니즘을 제공한다. 트랜잭션을 구성하는 모든 동작들은 모든 동작들이 성공적으로 수행되는 경우에만 커밋될 수 있고, 동작들 중 임의의 동작이 실패하면, 이것은 전체 트랜잭션의 롤백을 야기한다. 간단히 말하면, 트랜잭션들은 "전부 또는 전무" 메커니즘을 제공한다.
배경기술란에서 앞서 살펴본 바와 같이, 종래의 트랜잭션들은 원자성, 일관성, 격리, 및 지속성(ACID)이라고 하는 속성들의 세트에 의해 특성화된다.
원자성은 데이터에 대한 모든 변경들이 마치 그들이 단일 동작인 것처럼 수행된다는 것을 의미한다.
일관성은 트랜잭션이 시작될 때와 종료될 때 데이터가 일관된 상태에 있을 것을 요구한다. 트랜잭션이 성공적으로 완료되면, 시스템 내의 모든 변경들이 정확하게 적용되고, 시스템은 유효한 상태에 있다. 트랜잭션에서 에러가 발생하면, 시스템에서의 모든 변경들은 자동으로 롤백되고, 시스템은 원래의 상태로 복귀한다.
격리는 트랜잭션의 중간 상태가 다른 트랜잭션들에 보이지 않는다는 것을 의미한다. 동시 환경에서, 각각의 트랜잭션은 상이한 트랜잭션들이 동일한 데이터를 동시에 조작할 때 그 자신의 완전한 데이터 공간을 갖는다.
지속성은 트랜잭션이 성공적으로 완료된 후에, 데이터에 대한 변경사항들이 지속되고, 시스템 실패의 경우에도 실행 취소되지 않는다는 것을 의미한다.
분산형 블록체인 환경에서, 각각의 체인에서의 동작들은 동작들이 전술한 ACID 테스트에 부합한다는 의미에서 트랜잭션으로서 고려될 수 있다.
현재, 기존의 크로스-체인 트랜잭션 방식들은 토큰 전송과 같은 단일 유형의 동작만을 지원하며, 이들 중 대부분은 2개의 체인 사이의 상호작용만을 지원한다. 2개보다 많은 체인들을 수반하는 것들을 포함하는 더 복잡한 트랜잭션들이 지원되는 것으로 알려져 있지 않다.
하나의 예시적인 실시예에서, 전통적인 분산형 거래 환경들과 달리, 노드가 신뢰되지 않는, 복수의 이종 블록체인 시스템들에 걸친 분산형 트랜잭션들의 문제에 대한 해결책이 제공된다.
이러한 실시예에 의해 제공되는 해결책은 분산형 트랜잭션 메시지들에 대한 신뢰된 전송 메커니즘을 제공하는 것; 분산형 거래 노드 동작이 신뢰되는 것을 보장하는 것; 분산형 트랜잭션 데이터 일관성을 보장하는 것; 및 분산형 트랜잭션 결과의 원자성을 보장하는 것의 문제들을 해결하는 것을 수반한다.
시스템 아키텍처
예시적인 시스템에 대한 아키텍처의 개략적인 블록도가 도 1에 도시되어 있다. 시스템은 블록체인들 A, B 및 C를 포함한다. 독립된 블록체인들에 걸쳐 수행될 분산형 트랜잭션 동작들을 위해, 분산형 트랜잭션은 각각의 체인 상의 스마트 계약들을 활성화하고, 각각의 체인 상의 스마트 계약 동작들은 동시에 성공하거나 실패해야만 한다.
하나의 예시적인 해결책은 먼저 각각의 체인 상의 스마트 계약을 변환하고, 원래의 1회 동작을 3개의 단계로 나누는 것이다.
"준비 단계"라고 불리는 제1 단계에서, 스마트 계약에 수반되는 모든 리소스들은 스마트 계약이 완전히 실행되기 전에 다른 스마트 계약들 또는 사용자들이 리소스를 이용할 수 없도록 보장하기 위해 잠금된다. 예를 들어, 토큰들이 수반되는 경우, 사용자 토큰은 사용자 계정으로부터 (중간 조정자 계정과 같은) 제3자 보안 계정으로 이전되고, 다른 블록체인들 내의 리소스들은 리소스가 잠금된 것을 표시하기 위한 태그를 이용함으로써 리소스 잠금을 완료할 수 있다.
"커밋 단계"라고 불리는 제2 단계에서, 당사자들 각각은 그 각각의 준비 단계를 성공적으로 완료하였다. 먼저, 각각의 노드는 계약 완료 인증서를 조정자 블록체인(101)에 제출하고, 조정자는 각각의 체인이 준비 단계를 완료한 것을 확인하기 위해 각각의 체인 상의 증명을 검증하고, 그 후에, 커밋 단계에 진입할 수 있다. 커밋 단계는 잠금된 리소스들을 해제하고 스마트 계약의 논리 요건들에 따라 대응하는 토큰 또는 데이터 동작을 완료한다. 계약 관련 리소스들이 준비 단계에서 중간 조정자 계정으로 이전되었기 때문에, 계약은 모든 노드들 상의 준비 단계 스테이지들이 성공적으로 완료되었다는 증명으로 동작들을 개시하도록 요구된다. 동시에, 증명은 계약의 실행 동안 검증될 필요가 있다.
"롤백 단계"라고 불리는 제3 단계에서, 준비 단계에서의 참가자들 중 임의의 참가자가 계약 준비 단계 동작을 수행하지 못하는 경우, 또는 임의의 노드가 거짓 인증서를 제공하는 경우, 전역 트랜잭션이 수행될 수 없다. 관련 체인은 롤백 계약을 실행하고, 이는 잠금된 리소스들을 해제하고, 임의의 영향받은 데이터의 값은 준비 단계 계약의 실행 전에 존재했던 이전 상태로 다시 되돌아간다.
계약이 중간 상태에서 정지하지 않는 것을 보장하기 위해, 타임 아웃 메커니즘이 있다. 커밋 단계 또는 롤백 단계가 트리거링되지 않을 때, 각각의 체인 사용자는 조정자 블록체인(101) 내의 기록들에 따라 동작(즉, 커밋 또는 롤백)을 수행할 수 있다.
트랜잭션 조정
도 2는 복수의 노드들에 걸친 다단계 조정된 트랜잭션의 개략적인 활동도를 도시한다. 트랜잭션이 복수의 참가자들을 가질 때, 제3자 트랜잭션 조정자가 도입되어 복수의 노드들에 걸친 분산형 트랜잭션들의 실행을 조정한다. 주요 아이디어는 각각의 동작에 대한 대응하는 확인응답 및/또는 보상 액션 또는 실행 취소 액션을 등록하는 것이다. 그 활동은 3개의 단계로 분할될 수 있다:
"시도 단계"라고 불리는 제1 단계는 일관성을 검출하고 비즈니스 시스템들을 위한 리소스들을 예약(준-격리)하는데 이용된다.
"확인 단계"라고 불리는 제2 단계는 비즈니스 시스템의 제출을 확인하는데 이용된다. 시도 단계가 성공적으로 실행되고, 확인 단계가 시작될 때, 디폴트 확인 단계는 성립하지 않을 것이다. 이 실시예에서, 시도 단계가 성공하는 한, 확인 단계도 역시 성공해야 한다. 확인 단계 동작은 멱등성(idempotency)을 만족시킨다. 확인 단계가 실패한다면, 재시도가 요구된다.
"취소 단계"라고 불리는 제3 단계는 비즈니스 실행 에러가 검출되고, 리소스 해제가 예약된 상태에서 수행된 서비스를 취소하는데 이용된다. 취소 단계 동작은 또한 멱등성을 만족시킨다.
일 실시예에서, 시스템이 단계 또는 노드 실패(crash) 후에 일관된 상태로 유지되는 것을 보장하기 위해, 분산형 트랜잭션 모델은 각각의 노드에서의 현재 상태를 기록한다. 조정자 블록체인은 모든 서브체인들과 상호작용하고 조정자 블록체인 상의 전역 트랜잭션 상태를 기록한다. 전역 트랜잭션 상태 및 각각의 서브체인 상의 트랜잭션의 상태는 일관되어야 한다. 각각의 서브체인은 로컬 트랜잭션 실행의 상태 및 전역 트랜잭션 해시 코드를 기록한다. 이 실시예에서, 서브체인들은 서로 통신하지 않고 조정자와만 통신한다.
크로스-체인 통신이 안전하고 신뢰성 있는 것을 보장하기 위해, 크로스-체인 메시지들은 조정자 블록체인을 통해 전달된다. 모든 메시지들은 수신자의 공개 키, 즉, 지갑 주소를 이용하여 메시지의 전송자에 의해 암호화된다. 메시지를 수신한 후에, 수신자는 메시지를 그 지갑 내의 그 개인 키를 이용하여 해독한다. 따라서, 수신자와 각각의 메시지의 내용이 암호화되고 안전하게 전송되는 것이 이러한 방식으로 확인될 수 있다. 지갑의 공개 키는 온-체인으로 검증될 수 있는 반면, 개인 키는 비밀로 유지되고 다른 누구에 의해서도 획득될 수 없다.
시스템 배치 아키텍처
도 3은 예시적인 배치 아키텍처를 도시하는, 본 개시내용의 실시예의 예시적인 시스템의 개략도이다. 시스템은 조정자 블록체인(101) 및 2개의 참가자 블록체인(102, 103)을 포함한다.
시스템은 로컬 트랜잭션 실행기(113), 사용자 M에 대한 지갑(111), 블록체인(102) 내의 사용자 M에 대한 메시지 에이전트(112)를 포함한다.
시스템은 또한 로컬 트랜잭션 실행기(118), 사용자 N에 대한 지갑(119), 블록체인(103) 내의 사용자 N에 대한 메시지 에이전트(120)를 포함한다.
시스템은 로컬 트랜잭션 계약(114) 및 사용자들 M, N 및 P 각각에 대한 계정들(115, 116, 117)을 추가로 포함한다.
시스템은 로컬 트랜잭션 계약(121), 및 사용자들 M, N 및 P 각각에 대한 계정들(122, 123, 124)을 추가로 포함한다.
시스템은 조정자 실행기(127), 사용자 P에 대한 지갑(125), 및 메시지 에이전트(126)를 포함한다.
시스템은 또한 후술하는 바와 같이 노드들(104, 105, 106, 107, 108, 109 및 110)을 포함한다.
조정자 블록체인(101)은 참가자들과 조정자들 사이에서 보안 메시지들을 전송하는데 이용된다. 조정자 블록체인(101)은 또한 전역 트랜잭션들의 상태를 기록한다. 조정자 블록체인(101) 상에, 보안 메시지 계약들(128) 및 전역 트랜잭션 조정 계약들(129)이 배치된다. 블록체인(102)은 로컬 계약(114)을 실행하는데 이용된다. 블록체인(103)은 로컬 계약(121)을 실행하는데 이용된다.
노드(104)는 사용자 M에 의해 트리거링된 로컬 트랜잭션 계약을 가질 수 있고, 사용자 M은 노드(104)를 통해 블록체인 A 또는 블록체인(102)에 직접 액세스할 수 있다. 예를 들어, 사용자 M으로부터 사용자 N으로 10 Ether을 이전하기를 원하는 경우, 사용자 M은 개인 지갑이 사용자 M에 의해서만 액세스되기 때문에 계약을 호출하도록 허가되어야 한다. 이 노드는 블록체인(102)의 데이터 및 사용자 M의 지갑을 보유한다. 사용자 M을 제외한 다른 사용자들은 노드(104)에 액세스할 수 없다. 준비 단계가 완료된 후에, 사용자 M은 계약 상태 증명, 즉 해시 값들을 조정자 블록체인(101)에 전송할 필요가 있다.
노드(105)는 블록체인(102)에 대한 검증 노드이고, 조정자 영역에 배치되고, 로컬 준비 단계 트랜잭션이 체인 A 또는 블록체인(102) 상에서 완료되었는지를 검증하고 대응하는 증거를 추출하기 위해 조정자에 의해 동작된다. 커밋 단계 동안, 조정자는 이 노드(105)를 통해 블록체인(102) 또는 블록체인 A의 로컬 계약의 커밋 또는 롤백 동작을 트리거링한다. 사용자 P는 노드를 통해 블록체인 A의 상태 및 데이터를 동기화하기 위한 조정자 사용자로서 작용하여, 블록체인 A의 로컬 트랜잭션 완료 상태를 검증하고 블록체인 A에 대한 계약 동작을 트리거링한다.
노드(106)는 조정자 블록체인(101)에 속하지만, 사용자 N의 도메인에 배치된다. 사용자 N은 이 노드를 통해 조정자 블록체인의 데이터 및 상태를 동기화하고 다른 노드들의 로컬 트랜잭션들의 완료의 증거를 체크할 수 있다.
노드(107): 체인(103)의 계약은 사용자 M의 도메인에 배치된 노드(107)를 트리거링한다. 사용자 M은 노드의 액세스 권한을 갖고, 이 노드는 로컬 계약을 트리거링할 수 있다.
노드(108): 체인(103)은 블록체인(103)에 속하지만 조정자 영역에 배치되고 로컬 준비 단계 트랜잭션이 체인 A 또는 블록체인(102) 상에서 완료되었는지를 검증하고 대응하는 증거를 추출하기 위해 조정자에 의해 동작되는 노드(108)를 검증한다. 커밋 단계 동안, 조정자는 노드(108)를 통해 블록체인 A의 로컬 계약의 커밋 또는 롤백 동작을 트리거링한다. 사용자 P는 노드를 통해 블록체인 A의 상태 및 데이터를 동기화하기 위한 조정자 사용자로서 작용하여, 블록체인 A의 로컬 트랜잭션 완료 상태를 검증하고 블록체인 A에 대한 계약 동작을 트리거링한다.
노드(109): 조정자 블록체인(101)은 조정자 블록체인(101)에 속하지만 사용자 M의 도메인에 배치되는 노드(109)를 검증한다. 사용자 M은 이 노드를 통해 조정자 블록체인(101)의 데이터 및 상태를 동기화하고 다른 노드들의 로컬 트랜잭션들의 완료의 증거를 체크할 수 있다.
노드(110): 조정자 블록체인(101)의 실행 노드는 조정자 블록체인(101)에 속하고 조정자의 도메인에 배치된다. 사용자 P는 노드를 통해 조정자 계약을 트리거링하기 위한 조정자로서 작용하고, 그 후 노드들(106, 109)이 질의할 전역 트랜잭션 상태 및 그 증거를 조정자 블록체인(101)에 기입한다.
사용자 M의 지갑(111)은 사용자 M의 개인 키를 저장하는데 이용되고, 암호화된 메시지 전송을 구현하는데 이용된다.
사용자 M의 메시징 에이전트(112)는 언제라도 조정자 블록체인(101) 내의 사용자 M에게 전송된 암호화된 메시지들을 청취한다. 메시징 에이전트(112)는 조정자 블록체인(101)으로부터 암호화된 메시지를 수신할 때, 지갑 내의 개인 키 쌍을 암호화한다. 메시지는 해독되고, 명령어로 복원되며, 실행을 위해 로컬 트랜잭션 실행기(113)로 핸드오버된다.
사용자 M의 로컬 실행기(113)는 수신된 액션의 명령어들을 실행하거나; 블록체인 A 상의 스마트 계약을 활성화하거나 조정자 블록체인(101) 상의 전역 계약 상태를 체크하거나; 또는 로컬 실행 결과 인증서를 노드(106)를 통해 조정자 블록체인(101)에 동기화하도록 구성된다.
블록체인 A의 로컬 트랜잭션 계약(114)은, 전역 계약 상태에 따라 각각 호출되는 3개의 부분, 즉, 준비, 커밋, 및 롤백으로 분할된다. 준비 단계는 사용자 M에 의해 호출된다. 커밋 또는 롤백은 조정자로서 작용하는 사용자 P에 의해 호출된다. 타임 아웃되면, 롤백은 각각의 참가자 사용자에 의해 호출된다.
사용자 M 블록체인 A의 계정(115), 사용자 N 블록체인 A의 계정(116) 및 사용자 P 블록체인 A의 계정(117)을 포함하는 수 개의 계정이 있다.
사용자 N의 커맨드 실행기(118)는 수신된 액션의 명령어들을 실행하거나; 블록체인 B 상의 스마트 계약을 활성화하거나 조정자 블록체인(101) 상의 전역 계약 상태를 체크하거나; 또는 로컬 실행 결과 인증서를 노드(109)를 통해 조정자 블록체인(101)에 동기화하도록 구성된다.
사용자 N의 지갑(119)은 사용자 N의 개인 키를 저장한다. 사용자 N이 암호화된 메시지를 수신할 때, 개인 키는 해독된다.
사용자 N의 메시징 에이전트(120)는 체인(101)에 의해 사용자 N에 전송된 정보를 청취하고, 사용자 N의 개인 키를 호출하여 그 정보를 해독한다. 피드백 메시지가 조정자에게 전송될 필요가 있을 때, 모듈은 조정자의 공개 키를 획득하여 데이터를 암호화하고 이를 조정자 블록체인 상의 메시지 계약에 전송한다.
블록체인 B의 로컬 트랜잭션 계약(121)은, 전역 계약 상태에 따라 각각 호출되는 3개의 부분, 즉, 준비, 커밋, 및 롤백으로 분할된다. 준비 부분은 사용자 N에 의해 호출된다. 커밋 또는 롤백은 조정자로서 작용하는 사용자 P에 의해 호출된다. 타임 아웃되면, 롤백을 자동으로 호출한다.
사용자 M 블록체인 B의 계정(122), 사용자 N 블록체인 B의 계정(123) 및 사용자 P 블록체인 B의 계정(124)을 포함하는 수 개의 추가 계정이 있다. 사용자 P의 지갑(125)은 사용자 P의 개인 키를 저장한다.
메시지 에이전트(126)를 이용하여, 사용자 P의 메시지 프록시는 조정자 블록체인 상에서 사용자 P에 전송된 메시지를 청취하고, 암호화 및 해독 처리를 수행한다.
조정자 실행기(127)로서 작용하는 사용자 P는 조정자 블록체인 상의 트랜잭션 조정 계약을 활성화하고, 각각의 서브체인 상의 각각의 노드 트랜잭션의 커밋 또는 롤백 액션들을 수행한다. 조정자는 또한 각각의 노드의 계약 실행 증거를 획득하고 이를 검증할 필요가 있다.
블록체인 크로스-체인 트랜잭션들
도 4는 블록체인 크로스-체인 트랜잭션들의 예시적인 실행 흐름을 도시한다. 한 예가 블록체인 크로스-체인 트랜잭션들의 실행 흐름을 나타내는데 이용된다. 사용자 M이 제1 블록체인 A(예를 들어, ETHEREUM™ 체인) 상에 1 Ether을 갖고 사용자 N이 제2 블록체인 B(즉, EOS™ 체인) 상에 10 EOS를 갖는다고 가정한다. 사용자들은 10 EOS에 대해 1 Ether을 교환하기를 원한다. 이 크로스-체인 트랜잭션은 각각 이더리움 및 EOS 체인들 상에서 다음과 같은 2개의 트랜잭션을 수행할 필요가 있다: 처음에 이더리움 블록체인 상에서, 사용자 M은 사용자 N에게 1 Ether을 이전한다. EOS 체인 상에서, 사용자 N은 사용자 M에게 10 EOS를 이전한다.
앞서 살펴본 바와 같이, 도 4는 수 개의 단계들 또는 스테이지들을 수반하는 블록체인 크로스-체인 트랜잭션들의 실행 흐름을 나타낸 것이다.
단계 1에서: 사용자 P는 분산형 트랜잭션을 개시한다. 이것은 또한 사용자가 분산형 트랜잭션을 개시하기 위해 사용자 P에게 메시지를 전송하는 것일 수 있다.
단계 2에서: 사용자 P는 난수 시드를 생성하고 시드 해시 값을 계산한다. 사용자 P는 조정자 블록체인(101) 상에 분산형 트랜잭션의 시작을 기록하고 그 시드 및 해시 값을 기록한다.
단계 3에서: 사용자 P는 보안 메시지를 사용자 M 및 사용자 N에 각각 전송한다. 메시지는 사용자 N이 이더넷 및 EOS 체인들 상에서 계약 A에서의 준비 단계 기능 및 계약 B에서의 준비 단계 기능을 각각 실행하고 있다는 것을 사용자 M에게 통보한다. 계약 파라미터는 사용자 P의 시드의 해시 값 및 관련 트랜잭션 파라미터들이다.
단계 4에서: 사용자 M은 이 정보를 수신한다. 사용자 M은 전역 트랜잭션이 조정자 블록체인에서 시작되었고 파라미터들이 정확한지를 검증한다.
단계 5에서: 사용자 M은 이더넷 준비 단계에서 이전 트랜잭션을 수행하고, 사용자 M의 지갑 내의 1 Ether을 조정자로서 작용하는 사용자 P에게 이전하고, 난수를 생성하고, 난수의 해시 값을 계산하고, 해시 값을 파라미터로서 이용한다. 이 정보는 이더넷 계약 파라미터들에 전달된다. 해시 값은 계약에서의 이더넷 체인 상에 기록된다.
단계 6에서: 사용자 M은, 계약의 성공적인 실행 시에, 조정자 블록체인 상에서 분산형 거래 계약을 시작하고 로컬 준비 단계 트랜잭션 결과를 조정자 블록체인에 기록한다. 조정자 블록체인은 사용자 M에 의해 생성된 난수를 표시한다.
단계 7에서: 사용자 N은 블록체인 EOS 상에서 계약 준비 단계를 실행하고, 사용자 N으로부터의 10 EOS를 조정자로서 작용하는 사용자 P에게 이전하고, EOS 체인 상에 계약 실행 상태를 기록한다. 생성된 난수 해시 값은 또한 EOS 체인에 저장된다. 로컬 준비 단계 계약 실행 및 결과는 원래의 난수와 결합되어 조정자 블록체인(101) 계약으로 핸드오버될 새로운 해시 값 H1 = 해시(준비 단계 결과 + 원래의 난수)를 생성한다.
단계 8에서: 조정자 블록체인(101) 계약은 모든 참가 노드들의 결과들 및 원래의 난수를 획득한 후에 조정자 블록체인(101) 계약의 준비 단계의 결과들을 기입한다.
단계 9에서: 조정자 블록체인(101)은 모든 노드들에 의해 보고된 전역 실행 결과 및 H1 해시 값을 각각의 참가 체인 계약에 기입한다. 각각의 참가 체인에 대한 계약 판단이 로컬 난수와 일치한 후에, 로컬 난수가 조정자에게 드러난다.
단계 10에서: 조정자로서 작용하는 사용자 P는 각각의 참가자 블록체인에서의 계약을 통해 참가 사용자들 M 및 N에 의해 생성된 난수를 획득하고, 이를 이더넷 체인 상의 계약의 커밋 기능에 전달하고 이를 실행한다. 커밋 기능은 난수를 획득한 후에, 각각의 노드의 난수 및 준비 단계를 검증한다. 계약 상태가 각각의 노드에 대한 이전에 저장된 H1 해시 값들과 일치하면, 사용자 P로부터 사용자 N으로 1 Ether을 이전하는 액션을 실행한다. 커밋 단계 작업을 완료한 후에, 조정자로서 작용하는 사용자 P는 조정자 블록체인(101) 상의 전역 트랜잭션 상태를 수정한다.
단계 11에서: 조정자로서 작용하는 사용자 P는 각각의 참가자 블록체인에서의 계약을 통해 참가 사용자들 M 및 N에 의해 생성된 난수를 획득하고, 이를 이더넷 체인 상의 계약의 커밋 기능에 전달하고 이를 실행한다. 커밋 기능은 난수를 획득한 후에, 각각의 노드의 난수 및 준비 단계를 검증한다. 계약 상태가 각각의 노드에 대한 이전에 저장된 H1 해시 값들과 일치하면, 사용자 P로부터 사용자 N으로 1 Ether을 이전하는 액션을 실행한다. 커밋 단계 작업을 완료한 후에, 조정자로서 작용하는 사용자 P는 조정자 블록체인(101) 상의 전역 트랜잭션 상태를 수정한다.
단계 12에서: 제3자는 사용자 M, N, 및 P를 통해 계약의 "검증" 동작을 호출하고, 지정된 실행기가 각각의 스테이지에서 전역 작업을 활성화했음을 검증하고 계약 실행이 정확함을 확인할 수 있다.
단계 13에서: 모든 참가 노드들의 난수를 획득한 후에, 조정자 계약은 H = 해시(M + N + 해시(P))를 재계산하고, 이것이 조정자 블록체인(101)의 커밋 단계 값과 일치하는지를 확인한다. 이것은 전역 분산형 트랜잭션 동작 상태를 완료로 설정하고 분산형 크로스-체인 트랜잭션의 끝을 시그널링한다.
단계 14에서: 임의의 노드가 커밋 단계 동작을 성공적으로 수행하지 않으면, 계약은 H = 해시(M + N + 해시(P))를 기록하지 않는다. 조정자 노드가 모든 커밋 단계 피드백을 수집한 후에는, 전역 트랜잭션이 제출될 수 없으므로 대응하는 체인에 대한 검증은 실패한다. 이 경우, 준비 단계 액션이 성공적으로 실행되었기 때문에, 조정자 노드는 성공할 때까지 커밋 단계 트랜잭션을 재실행하려고 시도한다.
단계 15에서: 준비 단계 전에 임의의 노드가 실패하면, 보통의 조정자 노드는 롤백 단계 계약 동작을 적극적으로 실행하고 성공적으로 실행된 준비 단계 액션을 대응하는 체인에서의 실행전 상태로 복귀시킨다. 이 예에서, 이더넷 체인 상의 롤백 단계 동작은 조정자로서 작용하는 사용자 P가 사용자 M에게 1 Ether을 다시 이전한다는 것을 의미한다. EOS 체인 상의 롤백 단계 동작은 조정자로서 작용하는 사용자 P가 사용자 N에게 10 EOS를 다시 이전한다는 것을 의미한다.
단계 16에서: 모든 준비 단계 트랜잭션들이 성공적이지만, 노드가 계약을 종료하기를 원하는 경우, 시스템은 커밋 단계 계약 기능을 자동으로 시행한다.
단계 17에서: 타임 아웃 기간이 만료되기 전에 노드 트랜잭션의 커밋 단계 또는 롤백 단계가 활성화되지 않는다면, 분산형 트랜잭션 타임 아웃은 실패한다. 조정자는 전역 준비 단계 실행 결과에 따라 롤백 단계 계약 기능을 자동으로 실행하거나 커밋 단계 계약 동작을 자동으로 실행한다.
단계 18에서: 임의의 노드에 의해 다른 노드들에 전송된 메시지의 내용이 로컬 계약 실행의 결과와 일치하지 않는 경우, 다른 노드들은 원래의 값 및 해시 값을 검증함으로써 관련 계약이 실행되는 것을 신속하게 발견하여 이를 정지시킬 수 있다.
계약 준비 단계의 실패 프로세스
도 5는 계약 준비 단계 합의의 실패 프로세스를 도시한다.
단계들 1-7: 이들은 성공적인 실행 프로세스와 동일하다. 그 차이는 하나의 체인 상의 트랜잭션이 실패할 수 있다는 것이다. 여기서, EOS 체인 상의, 10 EOS의 사용자 N으로부터 조정자로서 작용하는 사용자 P로의 계약이 실패한 것으로 가정된다.
단계 8: 조정자로서 작용하는 사용자 P는 보안 메시지를 통해 로컬 준비 단계 계약 실행 결과를 각각의 노드에 의해 통지받는다.
단계 9: 조정자로서 작용하는 사용자 P는 각각의 체인의 계약 실행 결과를 검증하고 그 결과를 조정자 블록체인(101)에 기입한다.
단계 10: 준비 단계 동작들의 모든 단계들이 성공적이지는 않기 때문에, 조정자로서 작용하는 사용자 P는 각각의 체인 상의 계약을 활성화하고, 롤백 단계 동작을 수행하고, 계약 입력으로서 각각의 노드의 난수의 원래 값을 제공한다.
단계 11: 각각의 참가 체인의 계약 검사 계약에 기록된 해시 값이 조정자에서 전달된 원래의 난수와 일치하면, 계약은 실행을 시작한다.
단계 12: 각각의 계약은 롤백 단계 동작을 실행한다. 블록체인(102)은 조정자로서 작용하는 사용자 P로부터 사용자 M으로 1 Ether을 이전한다. 블록체인(103)은 계약 트랜잭션의 계약 동작이 실패했기 때문에 롤백 단계 동작을 수행하지 못했다.
단계 13: 조정자로서 작용하는 사용자 P는 롤백 단계 실행 결과를 조정자 블록체인(101)에 기입한다. 임의의 서브체인 롤백 단계 동작이 실패하면, 각각의 서브체인은 성공할 때까지 주기적으로 재시도한다. 예를 들어, 하나의 가능한 시나리오는 계약이 중간에 실행되는 것이다. 모든 참가자들은 자산들을 조정자로서 작용하는 사용자 P에게 이전했지만, 사용자 P는 그 자산을 유용하였고, 이는 롤백 단계에서 불충분한 자산들을 초래한다. 롤백 단계 액션을 완료할 수 없으면, 규칙적으로 재시도되고, 어떤 시점에서, 사용자 P의 계정에 충분한 자금이 있는 한, 롤백 단계 액션이 완료된다.
단계 14: 임의의 참가자는 계약 상태의 정확성을 검증하기 위해 당사자들에 의해 제공된 원래의 난수를 통해 계약 프로세스에서 기록된 난수 해시 값을 일치시킬 수 있다.
참가자 또는 조정자 사기를 피하기 위한 방법
참가자 또는 조정자에 의한 사기를 피하기 위한 방법을 나타내는 블록도가 도 6에 도시되어 있다.
사용자 M이 사기꾼이라고 가정하면, 로컬 준비 단계 계약에서, 그 계약은 조정자로서 작용하는 사용자 P에게 1 Ether을 이전하기 위해 호출되어야 하지만, 호출되지 않는다. 이 때, 사용자 M은 조정자로서 작용하는 사용자 P에게 성공적인 커밋 단계 동작을 전송하고, 해시 H1 = (결과 + 시드 A + 해시 C)를 전송한다.
조정자로서 작용하는 사용자 P는 이 해시 값을 이용하여 블록체인 A 상의 계약 실행 결과를 검증한다. 준비 단계 동작이 실행되지 않았기 때문에, 정확한 결과가 체인에 저장되지 않으므로, H1 값은 잘못되어야 하고, 따라서, 검증을 통과하는 것이 불가능하다. 조정자로서 작용하는 사용자 P는 사용자 M이 사기꾼임을 제 시간에 발견할 수 있다.
조정자로서 작용하는 사용자 P가 사기꾼이라고 가정하면, 다음 스테이지가 실행될 때 모든 노드 사용자 준비 단계 계약들이 성공적으로 실행되었더라도, 거짓 통지 블록체인(102)은 블록체인(103) 계약이 실행되지 못했고 롤백 단계를 수행할 필요가 있다고 말한다.
이 때, 사용자 M은 계약에 대해 조정자로서 작용하는 사용자 P의 난수의 원래 값을 준비 단계에 의해 기입된 준비 단계 H1의 이전 상태의 값과 비교한다. 조정자로서 작용하는 사용자 P가 그 결과를 위조했기 때문에, H1 계산 값은 일치하지 않을 수 있고, 따라서, 사용자 M은 조정자로서 작용하는 사용자 P가 그 결과들에 대해 변조하고 있다는 것을 제 시간에 알 수 있으며, 따라서 롤백 단계를 거부한다.
이 경우에, 계약 조정자의 사기로 인해, 전역 트랜잭션은 올바르게 조정될 수 없고, 모든 노드들의 전역 트랜잭션은 새로운 신뢰된 조정자가 다른 조정자들의 올바른 실행 결과를 각각의 참가자 블록체인에 제공할 때까지 중단된 상태에 들어간다. 각각의 참가자 계약은 롤백 단계 또는 커밋 단계가 전역 실행 결과에 기반하는지를 결정한다.
트랜잭션 타임 아웃
시스템이 트랜잭션 타이밍 아웃을 어떻게 처리하는지에 대한 방법이 도 7에 도시된 흐름도에 요약되어 있다.
어떤 이유로, 전역 트랜잭션이 타이밍 아웃 전에 그 최종 상태에 도달하지 않은 경우, 각각의 노드의 사용자는 조정자 블록체인(101) 상의 현재의 전역 트랜잭션 실행 상태에 대해 적극적으로 질의하고, 조정자 트랜잭션들로부터의 결과들을 로컬 계약에 제공할 수 있다. 로컬 계약은 로컬 블록체인 트랜잭션이 전역 트랜잭션 상태에 따라 그 동작을 커밋 또는 롤백해야 하는지를 결정한다.
각각의 서브체인에서의 사용자가 거짓 청구를 제출하는 것을 방지하기 위해, 사용자는 그 또는 그녀가 로컬 계약에서 커밋 단계 또는 롤백 단계를 트리거링할 수 있기 전에 각각의 체인에 대한 정확한 준비 단계 스테이지 결과, 해시 코드, 및 랜덤 시드를 얻도록 요구된다.
이 체인에서 트랜잭션을 커밋 또는 롤백하기 위한 블록체인 계약의 전제는 사용자가 모든 노드들의 정확한 난수를 제공하는지에 의존한다. 조정자 계약이 각각의 서브체인의 모든 난수들을 올바르게 획득할 때, 각각의 서브체인의 사용자는 조정자 블록체인(101) 해시로부터 난수를 추출할 수 있다. 각각의 서브체인으로부터의 값 및 실행 결과 상태는 검증을 위해 로컬 서브체인에 전달된다. 검증이 통과된 후에, 로컬 서브체인 계약은 전역 준비 단계가 성공했는지에 따라 커밋 단계 또는 롤백 단계로 결정된다. 타임 아웃 후에 조정자 블록체인(101) 상의 모든 노드 난수들의 완전한 인증서가 없는 경우, 모든 서브체인 계약들은 각각의 체인 내의 모든 유효한 랜덤 시드들이 제공될 때까지 중단된다. 이러한 방식으로, 임의의 사용자가 허위 데이터를 제출하는 것이 방지될 수 있다.
오직 예로서, 본 발명의 실시예들을 이와 같이 설명하였지만, 많은 변형들 및 치환들이 본 청구항들의 범위로부터 벗어나지 않고 가능하므로, 첨부된 청구항들에 의해 정의되는 바와 같은 본 발명은 예시적인 실시예들의 위의 설명에서 제시된 특정한 상세들에 의해 제한되지 않아야 한다는 것을 이해해야 한다.

Claims (19)

  1. 분산형 블록체인 트랜잭션(distributed blockchain transaction)을 위한 시스템으로서,
    a) 제1 노드를 포함하는 제1 참가자 블록체인;
    b) 제2 노드를 포함하는 제2 참가자 블록체인; 및
    c) 조정자 노드(coordinator node)를 포함하는 조정자 블록체인
    을 포함하며,
    상기 분산형 트랜잭션은 상기 제1 참가자 블록체인 상의 제1 트랜잭션, 및 상기 제2 참가자 블록체인 상의 제2 트랜잭션을 수반하고,
    상기 조정자 블록체인은, 상기 조정자 노드와 상기 제1 및 제2 노드들 사이에서 보안 메시지들을 전송하고, 상기 제1 및 제2 트랜잭션들 모두가 함께 커밋(commit)되거나 롤백(rollback)되도록 상기 제1 및 제2 트랜잭션들을 조정하기 위해 전역 상태 값을 유지함으로써, 상기 분산형 트랜잭션의 끝에서 상기 시스템을 일관된 상태로 남겨두도록 적응되는, 시스템.
  2. 제1항에 있어서,
    제3 노드를 갖는 제3 참가자 블록체인을 더 포함하며, 상기 분산형 트랜잭션은 상기 제3 참가자 블록체인 상의 제3 트랜잭션을 더 수반하고, 상기 제1, 제2 및 제3 트랜잭션들 모두는 함께 커밋되거나 롤백되는, 시스템.
  3. 제1항에 있어서,
    상기 보안 메시지들은 상기 조정자 블록체인에 의해 암호화되는, 시스템.
  4. 제1항에 있어서,
    상기 제1 참가자 블록체인에서 제1 사용자에게 전송된 상기 메시지들의 서브세트를 청취하는 제1 메시징 에이전트를 더 포함하는, 시스템.
  5. 제1항에 있어서,
    상기 제2 참가자 블록체인에서 제2 사용자에게 전송된 상기 메시지들의 서브세트를 청취하는 제2 메시징 에이전트를 더 포함하는, 시스템.
  6. 제1항에 있어서,
    상기 분산형 트랜잭션은,
    a) 각각의 블록체인의 일관성을 검출하고 리소스들을 예약하는데 이용되는 제1 "시도" 단계;
    b) 상기 시스템에의 상기 분산형 트랜잭션의 제출을 확인하는데 이용되는 제2 "확인" 단계; 및
    c) 에러의 경우에 수행된 서비스를 취소하고 상기 리소스들을 해제하는데 이용되는 제3 "취소" 단계
    를 포함하는, 시스템.
  7. 제5항에 있어서,
    상기 제1 시도 단계의 성공적인 실행 시에, 상기 제2 확인 단계가 시작되고, 상기 제2 확인 단계가 또한 성공되어야만 하는, 시스템.
  8. 제5항에 있어서,
    상기 제2 확인 단계는 멱등성(idempotency)을 만족시키는, 시스템.
  9. 제5항에 있어서,
    상기 제3 취소 단계의 동작은 멱등성을 만족시키는, 시스템.
  10. 제1항에 있어서,
    상기 제1 참가자 블록체인은 ETHEREUM™이고, 상기 제2 참가자 블록체인은 EOS™인, 시스템.
  11. 시스템을 이용하여 제1 사용자와 제2 사용자 사이에서 분산형 블록체인 트랜잭션을 실행하는 방법으로서,
    상기 시스템은, 제1 계약을 포함하는 제1 참가자 블록체인; 제2 계약을 포함하는 제2 참가자 블록체인; 및 제3 계약을 포함하는 조정자 블록체인을 포함하고, 상기 분산형 트랜잭션은 상기 제1 체인 상의 제1 트랜잭션 및 상기 제2 체인 상의 제2 트랜잭션을 수반하고,
    상기 방법은,
    상기 조정자 블록체인에서,
    a) 난수 시드 C 및 HC = 해시(시드 C)로서 계산되는 해시 HC를 생성하는 단계;
    b) 상기 제1 참가자 블록체인으로부터 H1 = 해시(RA + 시드 A + HC)로서 계산되는 해시 H1을 수신하는 단계 - 시드 A는 상기 제1 체인에서 생성된 난수 시드이고, RA는 상기 제1 체인 상에서 실행된 제1 계약의 결과임 -;
    c) 상기 제2 참가자 블록체인으로부터 H2 = 해시(RB + 시드 B + HC)로서 계산되는 해시 H2를 수신하는 단계 - 시드 B는 상기 제2 체인에서 생성된 난수 시드이고, RB는 상기 제2 체인 상에서 실행된 제2 계약의 결과임 -;
    d) 해시 H3 = 해시(H1 + H2)를 계산하는 단계;
    e) 시드 C, H1, H2 및 H3으로 상기 제3 계약의 커밋 기능(function)을 실행하는 단계;
    f) 시드 A, 시드 B, 시드 C 및 해시 값들 H1, H2, H3을 수집하고 이들을 검증하는 단계;
    g) 시드 A 및 H1의 검증 시에, 상기 제1 참가자 블록체인 상의 상기 제1 트랜잭션을 커밋하는 단계; 및
    h) 시드 B 및 H2의 검증 시에, 상기 제2 참가자 블록체인의 동작들을 커밋하는 단계
    를 포함하는, 방법.
  12. 제9항에 있어서,
    상기 제1 참가자 블록체인으로부터 상기 제2 참가자 블록체인으로의 상기 메시지들의 서브세트가 상기 조정자 블록체인을 통해 전달되는 단계를 더 포함하는, 방법.
  13. 제9항에 있어서,
    상기 제2 참가자 블록체인으로부터 상기 제1 참가자 블록체인으로의 상기 메시지들의 서브세트가 상기 조정자 블록체인을 통해 전달되는 단계를 더 포함하는, 방법.
  14. 제9항에 있어서,
    보안 메시지를 상기 제1 사용자 및 상기 제2 사용자에게 각각 전송하며, 상기 보안 메시지는 상기 제2 사용자가 상기 제1 계약에서의 제1 준비 단계 기능 및 상기 제2 계약에서의 제2 준비 단계 기능을 실행하고 있다는 것을 상기 제1 사용자에게 통보하는, 방법.
  15. 제9항에 있어서,
    제3 커밋 단계를 완료한 후에, 상기 조정자 블록체인 상의 전역 트랜잭션 상태를 수정하는 단계를 더 포함하는, 방법.
  16. 제9항에 있어서,
    a) 상기 제1 사용자에 의한 상기 분산형 트랜잭션의 타임 아웃을 검출하는 단계; 및
    b) 상기 조정자 블록체인으로부터 준비 단계 결과들을 검색하는 단계;
    c) 시드 A와의 RA의 검증 시에, 상기 제1 체인 상의 상기 제1 트랜잭션을 커밋하고, 그렇지 않으면 상기 분산형 트랜잭션을 롤백하는 단계
    를 더 포함하는, 방법.
  17. 제9항에 있어서,
    a) 상기 제2 사용자에 의한 상기 분산형 트랜잭션의 타임 아웃을 검출하는 단계; 및
    b) 상기 조정자 블록체인으로부터 준비 단계 결과들을 검색하는 단계;
    c) 시드 B와의 RB의 검증 시에, 상기 제2 체인 상의 상기 제2 트랜잭션을 커밋하고, 그렇지 않으면 상기 분산형 트랜잭션을 롤백하는 단계
    를 더 포함하는, 방법.
  18. 시스템을 이용하여 제1 사용자와 제2 사용자 사이에서 분산형 블록체인 트랜잭션을 실행하는 방법으로서,
    상기 시스템은, 제1 계약을 포함하는 제1 참가자 블록체인; 제2 계약을 포함하는 제2 참가자 블록체인; 및 제3 계약을 포함하는 조정자 블록체인을 포함하고, 상기 분산형 트랜잭션은 상기 제1 체인 상의 제1 트랜잭션 및 상기 제2 체인 상의 제2 트랜잭션을 수반하고,
    상기 방법은,
    상기 제1 참가자 블록체인에서,
    a) 상기 조정자 블록체인으로부터 난수 시드 C 및 HC = 해시(시드 C)로서 계산되는 해시 HC를 수신하는 단계;
    b) H1 = 해시(RA + 시드 A + HC)로서 계산되는 해시 H1을 생성하는 단계 - 시드 A는 상기 제1 체인에서 생성된 난수 시드이고, RA는 상기 제1 체인 상에서 실행된 제1 계약의 결과임 -;
    c) 시드 C로 H1을 체크하고, 성공적인 체크 시에, 시드 A를 해제하는 단계
    를 포함하는, 방법.
  19. 시스템을 이용하여, 제1 사용자와 제2 사용자 사이에서 분산형 블록체인 트랜잭션을 실행하는 방법으로서,
    상기 시스템은, 제1 계약을 포함하는 제1 참가자 블록체인; 제2 계약을 포함하는 제2 참가자 블록체인; 및 제3 계약을 포함하는 조정자 블록체인을 포함하고, 상기 분산형 트랜잭션은 상기 제1 체인 상의 제1 트랜잭션 및 상기 제2 체인 상의 제2 트랜잭션을 수반하고,
    상기 방법은,
    상기 제1 참가자 블록체인에서,
    a) 상기 조정자 블록체인으로부터 난수 시드 C 및 HC = 해시(시드 C)로서 계산되는 해시 HC를 수신하는 단계;
    b) H2 = 해시(RB + 시드 B + HC)로서 계산되는 해시 H2를 생성하는 단계 - 시드 B는 상기 제2 참가자 블록체인에서 생성된 난수 시드이고, RB는 상기 제2 참가자 블록체인 상에서 실행된 상기 제2 계약의 결과임 -;
    c) 시드 C로 H2를 체크하고, 성공적인 체크 시에, 시드 B를 해제하는 단계
    를 포함하는, 방법.
KR1020227007029A 2019-08-06 2020-08-05 분산형 블록체인 트랜잭션 시스템 KR20220038781A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962883531P 2019-08-06 2019-08-06
US62/883,531 2019-08-06
PCT/CA2020/051065 WO2021022369A1 (en) 2019-08-06 2020-08-05 Distributed blockchain transaction system

Publications (1)

Publication Number Publication Date
KR20220038781A true KR20220038781A (ko) 2022-03-29

Family

ID=74502406

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227007029A KR20220038781A (ko) 2019-08-06 2020-08-05 분산형 블록체인 트랜잭션 시스템

Country Status (8)

Country Link
US (1) US20220284011A1 (ko)
EP (1) EP4010818A4 (ko)
JP (1) JP2022544131A (ko)
KR (1) KR20220038781A (ko)
CN (1) CN114902204A (ko)
CA (1) CA3149396A1 (ko)
IL (1) IL290359A (ko)
WO (1) WO2021022369A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11245536B2 (en) * 2019-04-16 2022-02-08 Meta Platforms, Inc. Secure multi-party computation attribution
US11544252B2 (en) * 2019-12-17 2023-01-03 Akamai Technologies, Inc. High performance distributed system of record with extended transaction processing capability
CN112927073A (zh) * 2021-02-23 2021-06-08 网易(杭州)网络有限公司 跨链数据互换方法、系统、装置、电子设备
CN112927075B (zh) * 2021-02-26 2023-11-17 北京百度网讯科技有限公司 跨链交易的处理方法、装置、电子设备及可读存储介质
CN115601160A (zh) * 2021-06-28 2023-01-13 华为云计算技术有限公司(Cn) 数据处理的方法以及装置
KR102582307B1 (ko) * 2021-08-17 2023-09-25 한일석 난수 생성 방법
CN114185996B (zh) * 2022-02-15 2022-05-13 北京溪塔科技有限公司 一种跨链事务处理方法及装置
CN114896080B (zh) * 2022-06-13 2023-07-21 深圳信息职业技术学院 基于区块链技术的分布式系统避免死锁处理方法及装置
CN116708463B (zh) * 2023-08-04 2023-10-03 腾讯科技(深圳)有限公司 基于多区块链的信息处理方法、装置、设备以及介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015183750A1 (en) * 2014-05-29 2015-12-03 Splice Machine, Inc. Transaction execution commitment without updating of data row transaction status
GB201611948D0 (en) * 2016-07-08 2016-08-24 Kalypton Int Ltd Distributed transcation processing and authentication system
CN106899698B (zh) * 2017-04-11 2020-12-18 张铮文 一种区块链之间的跨链互操作方法
CN107301600B (zh) * 2017-06-23 2021-07-20 北京天德科技有限公司 一种跨链交易的区块链互联网模型的核心构建方法
CN107742210A (zh) * 2017-10-13 2018-02-27 布比(北京)网络技术有限公司 一种不同区块链间的跨链转账系统和方法
US11139955B1 (en) * 2018-02-12 2021-10-05 Winklevoss Ip, Llc Systems, methods, and program products for loaning digital assets and for depositing, holding and/or distributing collateral as a token in the form of digital assets on an underlying blockchain
US10938557B2 (en) * 2018-03-02 2021-03-02 International Business Machines Corporation Distributed ledger for generating and verifying random sequence
CN111787072B (zh) * 2018-04-03 2023-02-28 创新先进技术有限公司 跨区块链的交互方法及装置、系统、电子设备
GB2572627A (en) * 2018-04-05 2019-10-09 Electroneum Ltd Hybrid blockchain transaction system
US20210192574A1 (en) * 2019-12-24 2021-06-24 Capital One Services, Llc Techniques to incentivize sharing electronic advertisement information in a compute environment

Also Published As

Publication number Publication date
IL290359A (en) 2022-04-01
CN114902204A (zh) 2022-08-12
CA3149396A1 (en) 2021-02-11
EP4010818A4 (en) 2023-08-23
WO2021022369A1 (en) 2021-02-11
JP2022544131A (ja) 2022-10-17
US20220284011A1 (en) 2022-09-08
EP4010818A1 (en) 2022-06-15

Similar Documents

Publication Publication Date Title
US20220284011A1 (en) Distributed blockchain transaction system
CN109146448B (zh) 跨链资产转移方法、设备和存储介质
CN107301600B (zh) 一种跨链交易的区块链互联网模型的核心构建方法
US9569473B1 (en) Method of controlling whether an uncompleted transaction applied against a database goes forward using either synchronous or asynchronous replication, or using either encrypted replication or unencrypted replication
CN108389047B (zh) 区块链中母链与子链交易的方法及区块链网络
EP3618398B1 (en) Cryptologic blockchain interoperation
US11070360B2 (en) Parallel transaction validation and block generation in a blockchain
CN112330326B (zh) 一种应用于银行交易区块链系统的业务处理方法和装置
JP7021747B2 (ja) 決済システム、決済方法、利用者装置、決済プログラム
US20190354518A1 (en) Chain mesh network for decentralized transaction systems
JP2022508948A (ja) プライバシーを守る検証およびコミットアーキテクチャ
WO2018232493A1 (en) DOUBLE CHAIN BLOCK CHAINS NETWORK FOR REALIZING CHAIN TRANSACTIONS
CN111640017A (zh) 一种应用于联盟链跨链转账的交易正确性验证方法及装置
TWI705691B (zh) 基於區塊鏈的事件處理方法及裝置、電子設備
US10296759B1 (en) Method of controlling whether an uncompleted transaction applied against a database goes forward or is aborted, and for modifying the uncompleted transaction so that it can go forward
US9654294B2 (en) Non-repudiable atomic commit
US20230063548A1 (en) Cross-chain transaction method and system based on hash locking and sidechain technology and storable medium
CN110503429B (zh) 一种去中心化的内容交互方法及系统
US10176243B1 (en) Method and apparatus for logging non-durable attributes of an uncompleted transaction so as to make such attributes durable
CN111915308A (zh) 一种区块链网络的交易处理方法及区块链网络
US20220337436A1 (en) Method and System for a Decentralized Transactional Communication Protocol
Robinson et al. Atomic crosschain transactions white paper
US11477279B1 (en) Digital assets exchange coordination
TW202135504A (zh) 平台服務驗證技術
CN114041156A (zh) 用于执行电子交易的方法和系统