KR102337171B1 - 판독-기입 세트 모델 기반 블록체인 기술에서 이중 소비 문제를 회피하기 위한 방법 및 디바이스 - Google Patents

판독-기입 세트 모델 기반 블록체인 기술에서 이중 소비 문제를 회피하기 위한 방법 및 디바이스 Download PDF

Info

Publication number
KR102337171B1
KR102337171B1 KR1020197032264A KR20197032264A KR102337171B1 KR 102337171 B1 KR102337171 B1 KR 102337171B1 KR 1020197032264 A KR1020197032264 A KR 1020197032264A KR 20197032264 A KR20197032264 A KR 20197032264A KR 102337171 B1 KR102337171 B1 KR 102337171B1
Authority
KR
South Korea
Prior art keywords
blockchain
data
blockchain transaction
transaction
transactions
Prior art date
Application number
KR1020197032264A
Other languages
English (en)
Other versions
KR20200128347A (ko
Inventor
지유안 펭
Original Assignee
어드밴스드 뉴 테크놀로지스 씨오., 엘티디.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. filed Critical 어드밴스드 뉴 테크놀로지스 씨오., 엘티디.
Publication of KR20200128347A publication Critical patent/KR20200128347A/ko
Application granted granted Critical
Publication of KR102337171B1 publication Critical patent/KR102337171B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3676Balancing accounts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3823Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • 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/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/3297Cryptographic 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 involving time stamps, e.g. generation of time stamps
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • 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

Abstract

판독-기입 세트 모델 기반 블록체인 기술에서 이중 소비 문제를 회피하기 위해 컴퓨터 저장 매체들 상에 인코딩된 컴퓨터 프로그램들을 포함하는 방법들, 시스템들 및 장치들이 본 명세서에 개시된다. 방법들 중 하나는 하나의 데이터에 대해 2개 이상의 블록체인 트랜잭션을 실행하기 위한 명령어들을 수신하는 단계 - 2개 이상의 블록체인 트랜잭션 중 모든 블록체인 트랜잭션들은 하나의 데이터의 값을 수정함 -; 및 2개 이상의 블록체인 트랜잭션으로부터의 각각의 블록체인 트랜잭션에 대해, 블록체인 트랜잭션과 연관된 스마트 계약을 사전 실행하여 블록체인 트랜잭션을 나타내는 특수 명령어를 생성하는 단계를 포함하고, 특수 명령어는 블록체인 트랜잭션을 블록체인에 기입하기 위해 스마트 계약을 실행할 때 하나의 데이터의 현재 값이 블록체인 트랜잭션을 지원하는 것을 확인하는 데 사용된다.

Description

판독-기입 세트 모델 기반 블록체인 기술에서 이중 소비 문제를 회피하기 위한 방법 및 디바이스
본 명세서는 블록체인 기술의 분야에 관한 것으로서, 특히, 판독-기입 세트 모델 기반 블록체인 기술에서 이중 소비 문제를 회피하기 위한 방법들 및 디바이스들에 관한 것이다.
합의 네트워크들 및/또는 블록체인 네트워크들로도 지칭될 수 있는 분산형 원장 시스템(DLS: distributed ledger system)들은 참여 엔티티들이 안전하게 그리고 불변적으로 트랜잭션들을 수행하고 데이터를 저장할 수 있게 한다. DLS들은 일반적으로, 어떠한 특정 사용자 사례도 참조하지 않는 블록체인 네트워크들로서 지칭된다. 블록체인 네트워크들의 타입들의 예들은 공개 블록체인 네트워크들, 비공개 블록체인 네트워크들 및 컨소시엄 블록체인 네트워크들을 포함할 수 있다. 컨소시엄 블록체인 네트워크는 합의 프로세스를 제어하는 엔티티들의 선택 그룹을 위해 제공되고, 액세스 제어 계층을 포함한다.
블록체인 네트워크들에서는, 데이터의 재현성으로 인해, 디지털 자산이 아마도 재사용될 수 있다. 예를 들어, 다수의 병렬 블록체인 트랜잭션들은 동일한 디지털 자산 상에서 수행될 수 있다(이중 소비로서 지칭됨). 일부 경우들에서, 다수의 병렬 블록체인 트랜잭션들이 동일한 데이터를 판독하는 경우, 제1 병렬 블록체인 트랜잭션이 데이터를 수정하면, 다른 병렬 블록체인 트랜잭션들은 데이터 수정으로 인해 실패할 수 있다(이중 소비 문제로서 지칭됨).
일반적으로, 2개의 주요 블록체인 프로세스 타입이 있다. 하나는 이더리움(Ethereum)에 의해 주도되고, 먼저 합의를 달성하고, 다음에 스마트 계약을 실행하고, 마지막으로 데이터의 상태를 수정한다. 다른 하나는 하이퍼레저 패브릭(Hyperledger Fabric)에 의해 주도되고, 먼저 논리적 검증을 위해 스마트 계약들을 사전 실행하고, 다음에 생성된 판독-기입 세트들에 대한 합의 분류를 수행하고, 마지막으로 각각 생성된 판독-기입 세트에 대한 데이터 검증을 수행한다. 이더리움은 트랜잭션들을 순차적으로 실행하므로, 이중 소비 문제가 없을 수 있다. 그러나, 하이퍼레저 패브릭은 판독-기입 세트에 기초하여 사전-실행 스마트 계약 스킴을 구현하며, 이중 소비 문제에 직면할 수 있다.
판독-기입 세트 모델 기반 블록체인 기술(예를 들어, 하이퍼레저 패브릭)에서의 이중 소비 문제에 대한 해결책을 제공하는 것이 바람직할 것이다.
[선행기술문헌]
중국특허공개공보 109271245(2019.01.25.)
본 명세서는 블록체인 트랜잭션들에서 이중 소비 문제를 회피하기 위한 기술들을 설명한다. 이러한 기술들은 일반적으로 하나의 데이터에 대해 2개 이상의 블록체인 트랜잭션을 실행하기 위한 명령어들을 수신하는 단계 - 2개 이상의 블록체인 트랜잭션 중 모든 블록체인 트랜잭션들은 하나의 데이터의 값을 수정함 -, 및 2개 이상의 블록체인 트랜잭션으로부터의 각각의 블록체인 트랜잭션에 대해, 블록체인 트랜잭션과 연관된 스마트 계약을 사전 실행하여 블록체인 트랜잭션을 표시하는 특수 명령어를 생성하는 단계를 포함하고, 특수 명령어는 스마트 계약을 실행하여 블록체인 트랜잭션을 블록체인에 기입할 때 하나의 데이터의 현재 값이 블록체인 트랜잭션을 지원하는 것을 확인하는 데 사용된다.
본 명세서는 또한 하나 이상의 프로세서에 결합되고, 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금 본 명세서에 제공된 방법들의 실시예들에 따른 동작들을 수행하게 하는 명령어들을 저장한 하나 이상의 비일시적 컴퓨터 판독 가능 저장 매체를 제공한다.
본 명세서는 본 명세서에 제공된 방법들을 구현하기 위한 시스템을 더 제공한다. 시스템은 하나 이상의 프로세서, 및 하나 이상의 프로세서에 결합되고, 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금 본 명세서에 제공된 방법들의 실시예들에 따른 동작들을 수행하게 하는 명령어들을 저장한 컴퓨터 판독 가능 저장 매체를 포함한다.
본 명세서에 따른 방법들은 본 명세서에 설명된 양태들 및 특징들의 임의의 조합을 포함할 수 있다는 것이 이해된다. 즉, 본 명세서에 따른 방법들은 본 명세서에서 구체적으로 설명되는 양태들 및 특징들의 조합들로 제한되는 것이 아니라, 제공되는 양태들 및 특징들의 임의의 조합도 포함할 수 있다.
본 명세서의 하나 이상의 실시예의 상세들은 첨부 도면들 및 이하의 설명에서 제시된다. 본 명세서의 다른 특징들 및 장점들은 설명 및 도면들로부터 그리고 청구항들로부터 명백할 것이다.
도 1은 본 명세서의 실시예들을 실행하는 데 사용될 수 있는 환경의 일례를 도시하는 도면이다.
도 2는 본 명세서의 실시예들에 따른 개념적 아키텍처의 일례를 도시하는 도면이다.
도 3은 본 명세서의 실시예들에 따른 블록체인 트랜잭션 실행 시나리오의 일례를 도시하는 블록도이다.
도 4는 본 명세서의 실시예들에 따른 2개의 병렬 블록체인 트랜잭션에 대한 종래의 실행 시나리오의 일례를 도시하는 블록도이다.
도 5는 본 명세서의 실시예들에 따른 2개의 병렬 블록체인 트랜잭션에 대한 실행 시나리오의 일례를 도시하는 블록도이다.
도 6은 본 명세서의 실시예들에 따른 블록체인 트랜잭션들에서 이중 소비 문제를 회피하기 위한 방법의 일례를 도시하는 흐름도이다.
도 7은 본 명세서의 실시예들에 따른 장치의 모듈들의 예들을 도시한다.
다양한 도면들에서의 유사한 참조 번호들 및 명칭들은 유사한 요소들을 나타낸다.
다음의 상세한 설명은 판독-기입 세트 모델 기반 블록체인 기술에서의 이중 소비 문제의 회피를 설명하며, 이 분야의 임의의 기술자가 하나 이상의 특정 실시예와 관련하여 개시된 주제를 실시하고 사용할 수 있게 하기 위해 제시된다. 하나의 데이터에 대해 2개 이상의 블록체인 트랜잭션을 실행하기 위한 명령어들이 수신된다. 각각의 블록체인 트랜잭션에 대해, 판독-기입 세트 대신에, 대응하는 스마트 계약이 사전 실행되어 특수 명령어를 생성한다. 특수 명령어는 대응하는 스마트 계약을 실행하여 블록체인 트랜잭션을 블록체인에 기입할 때 하나의 데이터의 현재 값이 블록체인 트랜잭션을 지원하는 것을 확인하는 데 사용된다.
개시된 실시예들의 다양한 수정들, 변경들 및 교환들이 이루어질 수 있고, 이 분야의 통상의 기술자들에게 자명할 것이며, 정의된 일반적인 원리들은 본 명세서의 범위로부터 벗어나지 않고서 다른 실시예들 및 응용들에 적용될 수 있다. 일부 사례들에서, 설명된 주제의 이해를 얻는 데 불필요하고 이 분야의 통상의 기술자의 기술 내에 있는 하나 이상의 기술적 상세는 하나 이상의 설명된 실시예를 모호하게 하지 않도록 생략될 수 있다. 본 명세서는 설명된 또는 도시된 실시예들로 제한되도록 의도되는 것이 아니라, 설명된 원리들 및 특징들에 부합하는 가장 넓은 범위를 부여받도록 의도된다.
본 명세서의 실시예들에 대한 추가적인 상황을 제공하기 위해 그리고 위에 소개된 바와 같이, (예를 들어, 피어 대 피어 노드들로 구성되는) 합의 네트워크들 및 블록체인 네트워크들로도 지칭될 수 있는 분산형 원장 시스템들(DLS들)은 참여 엔티티들이 안전하고 불변적으로 트랜잭션들을 수행하고 데이터를 저장할 수 있게 한다. 블록체인이라는 용어는 일반적으로 특정 네트워크들 및/또는 사용 사례들과 연관되지만, 블록체인은 본 명세서에서 일반적으로 어떠한 특정 사용 사례도 참조하지 않는 DLS를 지칭하는 데 사용된다.
블록체인은 트랜잭션들을 변경할 수 없는 방식으로 트랜잭션들을 저장하는 데이터 구조이다. 따라서, 블록체인 상에 기입된 트랜잭션들은 신뢰성 있고 신뢰할 만하다. 블록체인은 하나 이상의 블록을 포함한다. 체인 내의 각각의 블록은 체인 내의 그의 바로 앞의 이전 블록의 암호 해시를 포함함으로써 이전 블록에 링크된다. 각각의 블록은 또한 타임스탬프, 그 자신의 암호 해시 및 하나 이상의 트랜잭션을 포함한다. 블록체인 네트워크의 노드들에 의해 이미 검증된 트랜잭션들은 해싱되고, 머클 트리(Merkle tree) 내에 인코딩된다. 머클 트리는, 트리의 리프 노드들에 있는 데이터가 해싱되고, 트리의 각각의 분기 내의 모든 해시들이 분기의 루트에서 연결되는 데이터 구조이다. 이러한 프로세스는 트리를 따라 전체 트리의 루트까지 계속되며, 이는 트리 내의 모든 데이터를 나타내는 해시를 저장한다. 트리에 저장된 트랜잭션의 것인 것으로 지칭되는 해시는 그가 트리의 구조에 부합하는지를 결정함으로써 신속하게 검증될 수 있다.
블록체인이 트랜잭션들을 저장하기 위한 분산된 또는 적어도 부분적으로 분산된 데이터 구조인 반면, 블록체인 네트워크는 트랜잭션들을 브로드캐스팅하고, 검증하고, 확인하는 것 등에 의해 하나 이상의 블록체인을 관리하고, 업데이트하고, 유지하는 컴퓨팅 노드들의 네트워크이다. 위에서 소개된 바와 같이, 블록체인 네트워크는 공개 블록체인 네트워크, 비공개 블록체인 네트워크 또는 컨소시엄 블록체인 네트워크로서 제공될 수 있다. 본 명세서의 실시예들은 컨소시엄 블록체인 네트워크를 참조하여 본 명세서에서 더 상세히 설명된다. 그러나, 본 명세서의 실시예들은 임의의 적절한 타입의 블록체인 네트워크에서 실현될 수 있는 것으로 고려된다.
일반적으로, 컨소시엄 블록체인 네트워크는 참여 엔티티들 사이에 비공개이다. 컨소시엄 블록체인 네트워크에서, 합의 프로세스는 합의 노드들로서 지칭될 수 있는 허가된 노드들의 세트에 의해 제어되며, 하나 이상의 합의 노드는 각각의 엔티티(예를 들어, 금융 기관, 보험 회사)에 의해 운영된다. 예를 들어, 10개의 엔티티(예를 들어, 금융 기관들, 보험 회사들)의 컨소시엄은 컨소시엄 블록체인 네트워크를 운영할 수 있고, 이들 각각은 컨소시엄 블록체인 네트워크 내의 적어도 하나의 노드를 운영한다.
일부 예들에서, 컨소시엄 블록체인 네트워크 내에서, 글로벌 블록체인이 모든 노드들에 걸쳐 복제되는 블록체인으로서 제공된다. 즉, 모든 합의 노드들은 글로벌 블록체인과 관련하여 완벽한 상태의 합의하에 있다. 합의(예를 들어, 블록체인에 대한 블록의 추가에 대한 합의)를 달성하기 위해, 합의 프로토콜이 컨소시엄 블록체인 네트워크 내에서 구현된다. 예를 들어, 컨소시엄 블록체인 네트워크는 아래에 더 상세히 설명되는 실용적 비잔틴 장애 허용 오차(practical Byzantine fault tolerance: PBFT) 합의를 구현할 수 있다.
도 1은 본 명세서의 실시예들을 실행하는 데 사용될 수 있는 환경(100)의 일례를 도시하는 도면이다. 일부 예들에서, 환경(100)은 엔티티들이 컨소시엄 블록체인 네트워크(102)에 참여할 수 있게 한다. 환경(100)은 컴퓨팅 디바이스들(106, 108) 및 네트워크(110)를 포함한다. 일부 예들에서, 네트워크(110)는 근거리 네트워크(LAN), 광역 네트워크(WAN), 인터넷 또는 이들의 조합을 포함하고, 웹 사이트들, 사용자 디바이스들(예를 들어, 컴퓨팅 디바이스들) 및 백엔드 시스템들을 연결한다. 일부 예들에서, 네트워크(110)는 유선 및/또는 무선 통신 링크를 통해 액세스될 수 있다. 일부 예들에서, 네트워크(110)는 컨소시엄 블록체인 네트워크(102)와의 그리고 그 안에서의 통신을 가능하게 한다. 일반적으로, 네트워크(110)는 하나 이상의 통신 네트워크를 나타낸다. 일부 경우들에서, 컴퓨팅 디바이스들(106, 108)은 클라우드 컴퓨팅 시스템(도시되지 않음)의 노드들일 수 있거나, 각각의 컴퓨팅 디바이스(106, 108)는 네트워크에 의해 상호 연결되고 분산형 처리 시스템으로서 기능하는 다수의 컴퓨터를 포함하는 별개의 클라우드 컴퓨팅 시스템일 수 있다.
도시된 예에서, 컴퓨팅 시스템들(106, 108) 각각은 컨소시엄 블록체인 네트워크(102) 내의 노드로서의 참여를 가능하게 하는 임의의 적절한 컴퓨팅 시스템을 포함할 수 있다. 컴퓨팅 디바이스들의 예들은 서버, 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨팅 디바이스 및 스마트폰을 포함하지만, 이들로 제한되지 않는다. 일부 예들에서, 컴퓨팅 시스템들(106, 108)은 컨소시엄 블록체인 네트워크(102)와 상호작용하기 위한 하나 이상의 컴퓨터 구현 서비스를 호스팅한다. 예를 들어, 컴퓨팅 시스템(106)은 제1 엔티티가 하나 이상의 다른 엔티티(예를 들어, 다른 사용자)와의 그의 트랜잭션들을 관리하기 위해 사용하는 트랜잭션 관리 시스템과 같은 제1 엔티티(예를 들어, 사용자 A)의 컴퓨터 구현 서비스들을 호스팅할 수 있다. 컴퓨팅 시스템(108)은 제2 엔티티가 하나 이상의 다른 엔티티(예를 들어, 다른 사용자)와의 그의 트랜잭션들을 관리하기 위해 사용하는 트랜잭션 관리 시스템과 같은 제2 엔티티(예를 들어, 사용자 B)의 컴퓨터 구현 서비스들을 호스팅할 수 있다. 도 1의 예에서, 컨소시엄 블록체인 네트워크(102)는 노드들의 피어 대 피어 네트워크로서 표현되고, 컴퓨팅 시스템들(106, 108)은 컨소시엄 블록체인 네트워크(102)에 참여하는 제1 엔티티 및 제2 엔티티의 노드들을 각각 제공한다.
도 2는 본 명세서의 실시예들에 따른 개념적 아키텍처(200)의 일례를 도시하는 도면이다. 예시적인 개념적 아키텍처(200)는 참여자 A, 참여자 B, 참여자 C에 각각 대응하는 참여자 시스템(202, 204, 206)을 포함한다. 각각의 참여자(예를 들어, 사용자, 기업)는 복수의 노드(214)를 포함하는 피어 대 피어 네트워크로서 제공되는 블록체인 네트워크(212)에 참여하며, 복수의 노드 중 적어도 일부는 블록체인(216)에 정보를 불변적으로 기입한다. 단일 블록체인(216)이 블록체인 네트워크(212) 내에 개략적으로 도시되지만, 본 명세서에서 더 상세히 설명되는 바와 같이, 블록체인(216)의 다수의 사본이 제공되고, 블록체인 네트워크(212)에 걸쳐 유지된다.
도시된 예에서, 각각의 참여자 시스템(202, 204, 206)은 참여자 A, 참여자 B, 참여자 C 각각에 의해 또는 그를 위해 제공되고, 블록체인 네트워크 내의 각각의 노드(214)로서 기능한다. 본 명세서에서 사용되는 바와 같이, 노드는 일반적으로 블록체인 네트워크(212)에 연결되고 각각의 참여자가 블록체인 네트워크에 참여할 수 있게 하는 개별 시스템(예를 들어, 컴퓨터, 서버)을 지칭한다. 도 2의 예에서, 참여자는 각각의 노드(214)에 대응한다. 그러나, 참여자가 블록체인 네트워크(212) 내의 다수의 노드(214)를 운영할 수 있고/있거나 다수의 참여자가 노드(214)를 공유할 수 있는 것으로 고려된다. 일부 예들에서, 참여자 시스템들(202, 204, 206)은 프로토콜(예를 들어, 하이퍼텍스트 전송 프로토콜 보안(HTTPS))을 사용하여 그리고/또는 원격 프로시저 호출(RPC)들을 사용하여 블록체인 네트워크(212)와 또는 그를 통해 통신한다.
노드들(214)은 블록체인 네트워크(212) 내의 다양한 참여 정도들을 가질 수 있다. 예를 들어, 일부 노드들(214)은 (예를 들어, 블록들을 블록체인(216)에 추가하는 마인더 노드(minder node)들로서) 합의 프로세스에 참여할 수 있는 반면, 다른 노드들(214)은 합의 프로세스에 참여하지 않는다. 다른 예로서, 일부 노드들(214)은 블록체인(216)의 완전한 사본을 저장하는 반면, 다른 노드들(214)은 블록체인(216)의 부분들의 사본들만을 저장한다. 예를 들어, 데이터 액세스 특권들은 각각의 참여자가 그의 각각의 시스템 내에 저장하는 블록체인 데이터를 제한할 수 있다. 도 2의 예에서, 참여자 시스템들(202, 204, 206)은 블록체인(216)의 각각의 완전한 사본들(216', 216'', 216''')을 저장한다.
블록체인(예를 들어, 도 2의 블록체인(216))는 블록들의 체인으로 구성되고, 각각의 블록은 데이터를 저장한다. 데이터의 예들은 2개 이상의 참여자 사이의 트랜잭션을 나타내는 트랜잭션 데이터를 포함한다. 본 명세서에서는 비제한적인 예로서 트랜잭션들이 사용되지만, 임의의 적절한 데이터(예를 들어, 문서, 이미지, 비디오, 오디오)가 블록체인에 저장될 수 있는 것으로 고려된다. 트랜잭션의 예들은 가치 있는 무언가(예를 들어, 자산, 제품, 서비스, 통화)의 교환을 포함할 수 있지만 이에 제한되지 않는다. 트랜잭션 데이터는 블록체인 내에 불변적으로 저장된다. 즉, 트랜잭션 데이터는 변경될 수 없다.
블록에 저장하기 전에, 트랜잭션 데이터는 해싱된다. 해싱은 (스트링 데이터로서 제공되는) 트랜잭션 데이터를 (스트링 데이터로서 또한 제공되는) 고정 길이 해시 값으로 변환하는 프로세스이다. 해시 값을 언해싱(unhashing)하여 트랜잭션 데이터를 획득하는 것은 불가능하다. 해싱은 트랜잭션 데이터의 약간의 변경조차도 완전히 상이한 해시 값을 유발하는 것을 보장한다. 또한, 전술한 바와 같이, 해시 값은 고정 길이를 갖는다. 즉, 트랜잭션 데이터의 크기에 관계없이, 해시 값의 길이는 고정된다. 해싱은 해시 함수를 통해 트랜잭션 데이터를 처리하여 해시 값을 생성하는 것을 포함한다. 해시 함수의 일례는 256 비트 해시 값들을 출력하는 보안 해시 알고리즘(SHA)-256을 포함하지만 이에 제한되지 않는다.
다수의 트랜잭션의 트랜잭션 데이터가 해싱되어 블록에 저장된다. 예를 들어, 2개의 트랜잭션의 해시 값들이 제공되고, 자체적으로 해싱되어 다른 해시를 제공한다. 이러한 프로세스는 블록에 저장될 모든 트랜잭션들에 대해 단일 해시 값이 제공될 때까지 반복된다. 이 해시 값은 머클 루트 해시라고 하며, 블록의 헤더에 저장된다. 트랜잭션들 중 임의의 트랜잭션의 변경은 그의 해시 값의 변경, 궁극적으로는 머클 루트 해시의 변경을 유발할 것이다.
블록들은 합의 프로토콜을 통해 블록체인에 추가된다. 블록체인 네트워크 내의 다수의 노드는 합의 프로토콜에 참여하고, 블록체인에 블록을 추가하기 위한 작업을 수행한다. 이러한 노드들은 합의 노드들로 지칭된다. 전술한 PBFT는 합의 프로토콜의 비제한적인 예로서 사용된다. 합의 노드들은 합의 프로토콜을 실행하여 블록체인에 트랜잭션들을 추가하고, 블록체인 네트워크의 전체 상태를 업데이트한다.
더 상세하게는, 합의 노드는 블록 헤더를 생성하고, 블록 내의 모든 트랜잭션들을 해싱하고, 블록 내의 모든 트랜잭션들에 대해 단일 해시 값(머클 루트 해시)이 제공될 때까지 추가적인 해시 값들을 생성하기 위해 해시 값을 쌍으로 결합한다. 이 해시는 블록 헤더에 추가된다. 합의 노드는 또한 블록체인 내의 가장 최근의 블록(즉, 블록체인에 추가된 마지막 블록)의 해시 값을 결정한다. 합의 노드는 또한 임시 값(nonce value) 및 타임스탬프를 블록 헤더에 추가한다.
일반적으로, PBFT는 비잔틴 장애들(예를 들어, 오기능 노드들, 악의적 노드들)을 허용하는 실용적 비잔틴 상태 기계 복제를 제공한다. 이것은 장애들이 발생할 것으로 가정함으로써(예를 들어, 독립적인 노드 장애들 및/또는 합의 노드들에 의해 전송된 조작된 메시지들의 존재를 가정함으로써) PBFT에서 달성된다. PBFT에서, 합의 노드들은 주요 합의 노드 및 백업 합의 노드들을 포함하는 시퀀스에서 제공된다. 주요 합의 노드는 주기적으로 변경된다. 블록체인들은 블록체인 네트워크 내의 모든 합의 노드들이 블록체인 네트워크의 세계 상태에 관한 합의에 도달함으로써 블록체인에 추가된다. 이 프로세스에서, 메시지들이 합의 노드들 사이에서 전송되고, 각각의 합의 노드는 메시지가 지정된 피어 노드로부터 수신되는 것을 증명하고, 메시지가 전송 동안 수정되지 않았음을 검증한다.
PBFT에서, 합의 프로토콜은 모든 합의 노드들이 동일한 상태에서 시작하는 다수의 단계에서 제공된다. 먼저, 클라이언트는 서비스 동작을 호출하기 위한(예를 들어, 블록체인 네트워크 내에서 트랜잭션을 실행하기 위한) 요청을 주요 합의 노드로 전송한다. 요청을 수신하는 것에 응답하여, 주요 합의 노드는 요청을 백업 합의 노드들로 멀티캐스팅한다. 백업 합의 노드들은 요청을 실행하고, 이들 각각은 응답을 클라이언트에게 전송한다. 클라이언트는 임계 수의 응답이 수신될 때까지 기다린다. 일부 예들에서, 클라이언트는 f+1개의 응답이 수신되기를 기다리며, 여기서 f는 블록체인 네트워크 내에서 허용될 수 있는 장애 합의 노드들의 최대 수이다. 최종 결과는 충분한 수의 합의 노드들이 블록체인에 추가될 레코드의 순서에 대해 합의하고, 레코드가 수락되거나 거절되는 것이다.
일부 블록체인 네트워크들에서, 트랜잭션들의 프라이버시를 유지하기 위해 암호화가 구현된다. 예를 들어, 2개의 노드가 블록체인 네트워크 내의 다른 노드들이 트랜잭션의 상세들을 파악할 수 없도록 트랜잭션을 비공개로 유지하기를 원하는 경우, 노드들은 트랜잭션 데이터를 암호화할 수 있다. 암호화의 예는 대칭 암호화 및 비대칭 암호화를 포함하지만, 이에 제한되지 않는다. 대칭 암호화는 암호화(즉, 평문 텍스트로부터 암호 텍스트를 생성하는 것) 및 해독(즉, 암호 텍스트로부터 평문 텍스트를 생성하는 것) 양자에 대해 단일 키를 사용하는 암호화 프로세스를 지칭한다. 대칭 암호화에서는, 동일한 키가 다수의 노드에 이용 가능하며, 따라서 각각의 노드는 트랜잭션 데이터를 암호화/해독할 수 있다.
비대칭 암호화는 키 쌍들을 사용하고, 각각의 키 쌍은 비공개 키 및 공개 키를 포함한다. 비공개 키는 특정 노드에만 알려지고, 공개 키는 블록체인 네트워크 내의 임의의 또는 모든 다른 노드들에 알려진다. 노드는 데이터를 다른 노드의 공개 키를 사용하여 데이터를 암호화할 수 있고, 암호화된 데이터는 다른 노드의 비공개 키를 사용하여 해독될 수 있다. 예를 들어, 다시 도 2를 참조하면, 참여자 A는 참여자 B의 공개 키를 사용하여 데이터를 암호화하고, 암호화된 데이터를 참여자 B에게 전송할 수 있다. 참여자 B는 그의 비공개 키를 사용하여, 암호화된 데이터(예를 들어, 암호 텍스트)를 해독하고, 원래의 데이터(예를 들어, 평문 텍스트)를 추출할 수 있다. 노드의 공개 키로 암호화된 메시지들은 노드의 비공개 키만을 사용하여 해독될 수 있다.
비대칭 암호화는 디지털 서명들을 제공하는 데 사용되며, 이는 트랜잭션의 참여자들이 트랜잭션의 다른 참여자들뿐만 아니라 트랜잭션의 유효성을 확인할 수 있게 한다. 예를 들어, 노드는 메시지에 디지털 방식으로 서명할 수 있고, 다른 노드는 참여자 A의 디지털 서명에 기초하여 메시지가 노드에 의해 전송되었다는 것을 확인할 수 있다. 디지털 서명들은 또한 메시지들이 전송 중에 변조되지 않는 것을 보장하기 위해 사용될 수 있다. 예를 들어, 도 2를 다시 참조하면, 참여자 A는 참여자 B에게 메시지를 전송하려고 한다. 참여자 A는 메시지의 해시를 생성하고, 이어서 그의 비공개 키를 사용하여, 해시를 암호화하여 디지털 서명을 암호화된 해시로서 제공한다. 참여자 A는 디지털 서명을 메시지에 첨부하고, 디지털 서명을 갖는 메시지를 참여자 B에게 전송한다. 참여자 B는 참여자 A의 공개 키를 사용하여 디지털 서명을 해독하고, 해시를 추출한다. 참여자 B는 메시지를 해싱하고 해시들을 비교한다. 해시들이 동일한 경우, 참여자 B는 메시지가 실제로 참여자 A로부터 온 것이고 변조되지 않았음을 확인할 수 있다.
도 3은 본 명세서의 실시예들에 따른 블록체인 트랜잭션 실행 시나리오(300)의 일례를 도시하는 블록도이다. 블록체인 트랜잭션 실행 시나리오(300)는 사용자(305)가 40 위안(¥ 40)을 소비하려고 의도하는 블록체인 트랜잭션을 포함한다. 블록체인 트랜잭션은 스마트 계약 사전 실행 단계(310) 및 데이터 저장 검증 단계(315)를 포함한다. 편의상, 블록체인 트랜잭션 실행 시나리오(300)는 하나 이상의 위치에 위치하고 본 명세서에 따라 적절히 프로그래밍되는 하나 이상의 컴퓨터의 시스템(예를 들어, 도 1의 컴퓨팅 시스템(106 및/또는 108) 또는 도 2의 참여자 시스템(202, 204 및/또는 206))에 의해 수행되는 것으로 설명될 것이다.
도 3에 도시된 바와 같이, 사용자(305)는 100 위안의 지갑 잔고를 갖는 디지털 지갑(320)을 갖는다. 사용자(305)는 40 위안을 소비하려고 의도한다(322). 예를 들어, 스마트 계약을 위한 소프트웨어 개발 키트(SDK) 호출(324)을 통해, 40 위안을 소비하기 위한 블록체인 트랜잭션(326)이 실행을 위해 제출된다. 블록체인 트랜잭션(326)을 실행하기 위해, 스마트 계약이 먼저 사전 실행되어, 블록체인 트랜잭션(326)에 대한 논리적 검증을 수행하여 판독-기입 세트를 생성한다. 합의 분류 후에, 판독-기입 세트에 기초하여 블록체인 트랜잭션(326)에 대한 데이터 검증이 수행되어, 블록체인 트랜잭션(326)이 성공적으로 실행될 수 있는지를 결정한다.
스마트 계약 사전 실행 단계(310) 동안, 328에서, 40 위안을 소비하기 위한 블록체인 트랜잭션이 수신된다. 328로부터, 흐름은 330으로 진행한다.
330에서, 사용자의 계좌 잔고가 판독된다(즉, 잔고=100). 스마트 계약 사전 실행 단계(310) 동안, 사용자의 계좌 잔고는 수정되지 않는다(즉, 잔고는 100 위안으로 유지된다). 330으로부터, 흐름은 332로 진행한다.
332에서, 40 위안을 소비하기 위한 블록체인 트랜잭션을 위해 사용자의 계좌에 필요한 만큼의(즉, 충분한) 잔고가 있는지에 대한 결정이 이루어진다. 40 위안을 소비하기 위한 블록체인 트랜잭션을 위해 사용자의 계좌에 필요한 만큼의 잔고가 존재하지 않는다고 결정되면, 흐름은 334로 진행하여, 필요한 만큼의 돈이 없음을 나타내는 통지가 사용자(305)에게 전송된다. 즉, 필요한 만큼의 잔고가 없는 상황에서는, 스마트 계약 사전 실행 단계(310)가 실패하고, 40 위안을 소비하기 위한 블록체인 트랜잭션이 실패한다. 그렇지 않고, 40 위안을 소비하기 위한 블록체인 트랜잭션을 위해 사용자의 계좌에 필요한 만큼의 잔고가 있다고 결정되면, 흐름은 336으로 진행하여, 판독-기입 세트가 생성된다. 예를 들어, (100->60)의 판독-기입 세트가 생성된다. (100->60)의 판독-기입 세트는 100 위안의 잔고를 갖는 사용자의 계좌로부터의 40 위안의 공제, 및 40 위안을 소비하기 위한 블록체인 트랜잭션이 성공한 후의 60 위안의 남은 잔고를 갖는 사용자의 계좌(예를 들어, 사용자의 계좌 잔고는 100 위안에서 60 위안으로 변경됨)를 나타낸다. 336 후에, 생성된 판독-기입 세트를 갖는 블록체인 트랜잭션이 데이터 저장 검증 단계(315)에서 완료되기 전에 합의 분류를 위해 제출된다(338).
데이터 저장 검증 단계(315) 동안, 340에서, (100->60)의 판독-기입 세트를 갖는 블록체인 트랜잭션이 수신된다. 340으로부터, 흐름은 342로 진행한다.
342에서, 사용자의 계좌 잔고가 판독된다(즉, 잔고=100). 342로부터, 흐름은 344로 진행한다.
344에서, 사용자의 계좌 잔고가 (100->60)의 판독-기입 세트에 표시된 계좌 잔고와 동일한지(즉, 판독-기입 세트 계좌 잔고=100)에 대한 결정이 이루어진다. 사용자의 계좌 잔고가 (100->60)의 판독-기입 세트에 표시된 계좌 잔고와 동일하지 않다고 결정되면, 흐름은 346으로 진행하여, 데이터가 일치하지 않는다는 것을 나타내는 메시지가 전송되어 사용자(305)에게 통지한다. 즉, 데이터 저장 검증 단계(315)가 실패하고, 그 결과로서 40 위안을 소비하기 위한 블록체인 트랜잭션이 실패한다. 그렇지 않고, 사용자의 계좌 잔고가 (100->60)의 판독-기입 세트에 표시된 계좌 잔고와 동일한 것으로 결정되는 경우, 흐름은 348로 진행하여, 데이터베이스가 (100->60)의 판독-기입 세트에 따라 수정된다(예를 들어, 사용자의 계좌 잔고는 100 위안에서 60 위안으로 수정됨). 예를 들어, 40 위안을 소비하기 위한 블록체인 트랜잭션은 블록체인의 데이터 블록에 저장된다. 348로부터, 흐름은 350으로 진행하여, 소비된 돈을 나타내는 메시지가 전송되어 사용자(305)에게 통지한다. 즉, 40 위안을 소비하기 위한 블록체인 트랜잭션이 성공한다.
도 3에 도시된 블록체인 트랜잭션 실행 시나리오(300)는 판독-기입 세트 모델 기반 블록체인 기술(예를 들어, 하이퍼레저 패브릭)을 사용한다. 전통적인 스마트 계약 호출 논리(예를 들어, 이더리움)와 달리, 판독-기입 세트 모델 기반 블록체인 기술은 논리적 검증과 데이터 검증을 분리한다. 스마트 계약 사전 실행 단계(310)(예를 들어, 논리적 검증) 동안의 실행은 데이터를 변경하지 않고, 블록체인 네트워크 내의 하나 이상의 노드의 배서(endorsement)를 획득할 수 있다. 합의 분류 후의 데이터 저장 검증 단계(315) 동안의 트랜잭션(예를 들어, 데이터 검증)은 데이터를 수정할 수 있다. 그에 따라, 블록체인 기술의 성능이 개선될 수 있다.
도 4는 본 명세서의 실시예들에 따른 2개의 병렬 블록체인 트랜잭션에 대한 종래의 실행 시나리오(400)의 일례를 도시하는 블록도이다. 종래의 실행 시나리오(400)는 사용자(405)가 2개의 병렬 블록체인 트랜잭션의 각각의 블록체인 트랜잭션에서 40 위안(¥ 40)을 소비하기로 의도한 2개의 병렬 블록체인 트랜잭션을 포함한다. 각각의 블록체인 트랜잭션은 스마트 계약 사전 실행 단계(410), 합의 분류 단계(415) 및 데이터 저장 검증 단계(420)를 포함한다. 일부 실시예들에서, 종래의 실행 시나리오(400)는 2개보다 많은 병렬 블록체인 트랜잭션을 포함할 수 있다. 편의상, 종래의 실행 시나리오(400)는 하나 이상의 위치에 위치하고 본 명세서에 따라 적절히 프로그래밍되는 하나 이상의 컴퓨터의 시스템(예를 들어, 도 1의 컴퓨팅 시스템(106 및/또는 108) 또는 도 2의 참여자 시스템(202, 204 및/또는 206))에 의해 수행되는 것으로 설명될 것이다.
도 4에 도시된 바와 같이, 사용자(405)는 100 위안의 지갑 잔고를 갖는 디지털 지갑(422)을 갖는다. 사용자(405)는 2개의 병렬 블록체인 트랜잭션(424, 426)에서 총 80 위안을 소비하기로 의도하였다. 각각의 블록체인 트랜잭션은 40 위안을 소비하기 위한 것이다. 일부 실시예들에서는, 각각의 블록체인 트랜잭션에서 상이한 금액이 소비될 수 있다. 2개의 병렬 블록체인 트랜잭션(424, 426)을 실행하기 위해, 스마트 계약이 먼저 사전 실행되어 각각의 블록체인 트랜잭션에 대한 논리적 검증을 수행하여 대응하는 판독-기입 세트를 생성한다. 합의 분류 후에, 각각의 블록체인 트랜잭션에 대한 데이터 검증이 대응하는 판독-기입 세트에 기초하여 수행되어, 각각의 블록체인 트랜잭션이 성공적으로 실행될 수 있는지를 결정한다.
스마트 계약 사전 실행 단계(410)(도 3의 스마트 계약 사전 실행 단계(310)와 유사함) 동안, 블록체인 트랜잭션(424)에 대해 판독-기입 세트(428)(즉,(100->60))가 생성된다. 판독-기입 세트(428)는 100 위안의 잔고를 갖는 사용자의 계좌로부터의 40 위안의 공제, 및 블록체인 트랜잭션(424)이 성공한 후의 60 위안의 남은 잔고를 갖는 사용자의 계좌(예를 들어, 사용자의 계좌 잔고는 100 위안에서 60 위안으로 변경됨)를 나타낸다. 또한, 블록체인 트랜잭션(426)에 대해 판독-기입 세트(430)(즉,(100->60))가 생성된다.
사용자의 계좌가 다른 소비를 갖지 않으면, 2개의 병렬 블록체인 트랜잭션(424, 426)은 스마트 계좌 사전 실행 단계(410) 동안 데이터베이스에 저장된 동일한 사용자의 계좌 잔고를 판독한다. 따라서, 판독-기입 세트(430)는 또한 100 위안의 잔고를 갖는 사용자의 계좌로부터의 40 위안의 공제, 및 블록체인 트랜잭션(430)이 성공한 후의 60 위안의 남은 잔고를 갖는 사용자의 계좌(예를 들어, 사용자의 계좌 잔고는 100 위안에서 60 위안으로 변경됨)를 나타낸다.
스마트 계약 사전 실행 단계(410) 후에, 판독-기입 세트(428)를 갖는 블록체인 트랜잭션이 합의 분류를 위해 제출되고(432), 판독-기입 세트(430)를 갖는 블록체인 트랜잭션도 합의 분류를 위해 제출된다(434).
합의 분류 단계(415) 동안, 편의상, 판독-기입 세트(428)를 갖는 블록체인 트랜잭션이 데이터 저장 검증 단계(420)에서 실행될 제1 트랜잭션(436)으로서 배치되고, 판독-기입 세트(430)를 갖는 블록체인 트랜잭션이 데이터 저장 검증 단계(420)에서 실행될 제2 트랜잭션(438)으로서 배치된다고 가정한다.
데이터 저장 검증 단계(420)(도 3의 데이터 저장 검증 단계(315)와 유사함) 동안, 판독-기입 세트(428)를 갖는 블록체인 트랜잭션이 먼저 실행된다(440). 440에서, 사용자의 계좌 잔고가 판독된다(즉, 잔고=100). 사용자의 계좌 잔고가 판독-기입 세트(428)에 표시된 계좌 잔고와 동일하다(즉, 100==100)는 결정이 이루어진다. 판독-기입 세트(428)에 따라 데이터베이스가 수정된다(예를 들어, 사용자의 계좌 잔고는 100 위안에서 60 위안으로 수정됨). 즉, 판독-기입 세트(428)를 갖는 블록체인 트랜잭션에 대한 데이터 저장 검증 단계(420)가 성공하고, 그 결과로 블록체인 트랜잭션(424)이 성공한다. 판독-기입 세트(428)를 갖는 블록체인 트랜잭션이 성공한 후에, 흐름은 442로 진행하여, 판독-기입 세트(430)를 갖는 블록체인 트랜잭션이 실행된다. 442에서, 사용자의 계좌 잔고가 판독된다(즉, 잔고=60). 사용자의 계좌 잔고가 판독-기입 세트(430)에 표시된 계좌 잔고와 동일하지 않다(즉, 60!=100)는 결정이 이루어진다. 즉, 판독-기입 세트(430)를 갖는 블록체인 트랜잭션에 대한 데이터 저장 검증 단계(420)가 실패하고, 그 결과로 블록체인 트랜잭션(426)이 실패한다.
도 4에 도시된 바와 같이, 2개 이상의 병렬 블록체인 트랜잭션이 (계좌 잔고와 같은) 하나의 데이터에 대해 실행될 때, 논리적 검증(예를 들어, 스마트 계약 사전 실행 단계(410)) 동안 각각의 블록체인 트랜잭션에 대해 동일한 데이터가 판독된다. 합의 분류 후에 데이터 검증(예를 들어, 데이터 저장 검증 단계(420)) 동안, 2개 이상의 병렬 블록체인 트랜잭션 중에서 먼저 실행되는 블록체인 트랜잭션(예를 들어, 블록체인 트랜잭션(424))이 데이터 검증에 성공하고 하나의 데이터를 수정한다. 그 결과, 먼저 실행된 블록체인 트랜잭션 이후에 실행되는 후속 블록체인 트랜잭션들은 데이터 검증에 실패할 것이다. 즉, 후속 블록체인 트랜잭션(예를 들어, 블록체인 트랜잭션(426))을 지원하는 필요한 만큼의 잔고가 있더라도, 후속 블록체인 트랜잭션은 하나의 데이터가 먼저 실행된 블록체인 트랜잭션에 의해 수정되었기 때문에 데이터 검증에서 실패할 것이다. 예를 들어, 먼저 실행된 블록체인 트랜잭션을 제외한 모든 병렬 블록체인 트랜잭션들은 실패한다. 따라서, 종래의 실행 시나리오(400)의 성능은 비효율적이고, 하나의 데이터에 대한 동시 트랜잭션들이 빈번할 때 더 많은 리소스를 소비한다.
도 5는 본 명세서의 실시예들에 따른 2개의 병렬 블록체인 트랜잭션에 대한 실행 시나리오(500)의 일례를 나타내는 블록도이다. 실행 시나리오(500)는 사용자(505)가 2개의 병렬 블록체인 트랜잭션의 각각의 블록체인 트랜잭션에서 40 위안(¥ 40)을 소비하기로 의도한 2개의 병렬 블록체인 트랜잭션을 포함한다. 각각의 블록체인 트랜잭션은 스마트 계약 사전 실행 단계(510), 합의 분류 단계(515) 및 데이터 저장 검증 단계(520)를 포함한다. 일부 실시예들에서, 실행 시나리오(500)는 2개보다 많은 병렬 블록체인 트랜잭션을 포함할 수 있다. 편의상, 실행 시나리오(500)는 하나 이상의 위치에 위치하고 본 명세서에 따라 적절히 프로그래밍되는 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 적절히 프로그래밍되는 컴퓨팅 시스템(예를 들어, 도 1의 컴퓨팅 시스템(106 및/또는 108) 또는 도 2의 참여자 시스템(202, 204 및/또는 206))이 실행 시나리오(500)를 수행할 수 있다.
도 5에 도시된 바와 같이, 사용자(505)는 100 위안의 지갑 잔고를 갖는 디지털 지갑(522)을 갖는다. 사용자(505)는 2개의 병렬 블록체인 트랜잭션(524, 526)에서 총 80 위안을 소비하기로 의도하였다. 각각의 블록체인 트랜잭션은 40 위안을 소비하기 위한 것이다. 일부 실시예들에서는, 각각의 블록체인 트랜잭션에서 상이한 금액이 소비될 수 있다. 2개의 병렬 블록체인 트랜잭션(524, 526)을 실행하기 위해, 스마트 계약이 먼저 사전 실행되어 각각의 블록체인 트랜잭션에 대한 논리적 검증을 수행하여 대응하는 판독-기입 세트를 생성한다. 합의 분류 후에, 각각의 블록체인 트랜잭션에 대한 데이터 검증이 대응하는 판독-기입 세트에 기초하여 수행되어 각각의 블록체인 트랜잭션이 성공적으로 실행될 수 있는지를 결정한다.
스마트 계약 사전 실행 단계(510) 동안, 도 4의 판독-기입 세트(428) 대신에 특수 명령어(528)(예를 들어,(100-40))가 블록체인 트랜잭션(524)에 대해 생성된다. 특수 명령어(528)는 사용자의 계좌로부터 40 위안을 공제하는 것을 나타낸다. 일부 실시예들에서, 특수 명령어(528)는 스마트 계약에서의 잔고 변화의 결정을 위해 사용된다. 또한, 도 4의 판독-기입 세트(430) 대신에 특수 명령어(530)(예를 들어, (100-40))가 블록체인 트랜잭션(526)에 대해 생성된다. 특수 명령어(530)는 또한 사용자의 계좌로부터 40 위안을 공제하는 것을 나타낸다.
스마트 계약 사전 실행 단계(510) 후에, 특수 명령어(528)를 갖는 블록체인 트랜잭션이 합의 분류를 위해 제출되고(532), 특수 명령어(530)를 갖는 블록체인 트랜잭션도 합의 분류를 위해 제출된다(534).
합의 분류 단계(515) 동안, 편의상, 특수 명령어(528)를 갖는 블록체인 트랜잭션이 데이터 저장 검증 단계(520)에서 실행될 제1 트랜잭션(536)으로서 배치되고, 특수 명령어(530)를 갖는 블록체인 트랜잭션이 데이터 저장 검증 단계(520)에서 실행될 제2 트랜잭션(538)으로서 배치된다고 가정한다.
데이터 저장 검증 단계(520) 동안, 특수 명령어(528)를 갖는 블록체인 트랜잭션이 실행된다(540). 540에서, 사용자의 계좌 잔고가 판독된다(즉, 잔고=100). 사용자의 계좌 잔고가 특수 명령어(528)에 표시된 소비 금액(즉, 40) 이상인지에 대한 결정이 이루어진다. 이 사례에서는, 사용자의 계좌 잔고가 특수 명령어(528)에 표시된 소비 금액 이상(즉, 100>=40)인 것으로 결정된다. 이어서, 데이터베이스가 특수 명령어(528)에 따라 수정된다(예를 들어, 사용자의 계좌로부터 40 위안이 공제됨). 즉, 특수 명령어(528)를 갖는 블록체인 트랜잭션에 대한 데이터 저장 검증 단계(520)가 성공하고, 그 결과로서 블록체인 트랜잭션(524)이 성공한다. 특수 명령어(528)를 갖는 블록체인 트랜잭션이 성공한 후에, 흐름은 542로 진행하여, 특수 명령어(530)를 갖는 블록체인 트랜잭션이 실행된다. 542에서, 사용자의 계좌 잔고가 판독된다(즉, 잔고=60). 사용자의 계좌 잔고가 특수 명령어(530)에 표시된 소비 금액(즉, 40) 이상인지에 대한 결정이 이루어진다. 이 사례에서는, 사용자의 계좌 잔고가 특수 명령어(530)에 표시된 소비 금액 이상(즉, 60>=40)인 것으로 결정된다. 이어서, 데이터베이스가 특수 명령어(530)에 따라 수정된다(예를 들어, 사용자의 계좌로부터 40 위안이 공제됨). 즉, 특수 명령어(530)를 갖는 블록체인 트랜잭션에 대한 데이터 저장 검증 단계(520)가 성공하고, 그 결과로 블록체인 트랜잭션(526)이 성공한다.
도 4의 종래의 실행 시나리오(400)와 달리, 도 5의 실행 시나리오(500)는 논리적 검증(예를 들어, 스마트 계약 사전 실행 단계(510)) 동안 특수 명령어를 생성한다. 예를 들어 계좌 잔고를 검증하는 대신에, 특수 명령어는 계좌 잔고가 데이터 검증 동안 대응하는 블록체인 트랜잭션을 지원하는 것을 확인하는 데 사용될 수 있다. 그 결과, 필요한 만큼의 잔고가 있는 경우에는 모든 병렬 블록체인 트랜잭션들이 성공적으로 실행될 수 있다. 일부 실시예들에서, 실행 시나리오(500)는 하나의 데이터에 대한 다수의 병렬 블록체인 트랜잭션을 다루기 위해 기존의 판독-기입 세트 모델 기반 블록체인 기술(예를 들어, 도 4의 종래의 실행 시나리오(400))에 대한 확장으로서 사용될 수 있다. 예를 들어, 특수 명령어 기반 블록체인 기술(예를 들어, 실행 시나리오(500))은 빈번한 동시 트랜잭션들을 갖는 계좌들에 대해 사용될 수 있고, 판독-기입 세트 모델 기반 블록체인 기술은 동시 트랜잭션들이 더 적거나 없는 계좌들에 대해 사용될 수 있다. 일부 실시예들에서, 간단한 논리 커맨드가 특수 명령어에 내장될 수 있다. 이어서, 특수 명령어는 데이터 저장 검증 단계 동안 대응하는 논리 검증을 실행하여 대응하는 데이터 트랜잭션이 성공적으로 실행될 수 있는지를 결정하는 데 사용될 수 있다.
장점들은 다음 중 하나 이상을 포함할 수 있다. 첫째, 계좌로부터의 동시 차감들에 의해 야기되는 이중 소비 문제가 해결될 수 있다. 계좌에 필요한 만큼의 잔고가 있는 한(예를 들어, 특수 명령어들에 따라 논리적으로 타당한 경우), 계좌에 대한 다수의 병렬 블록체인 트랜잭션이 성공적으로 실행될 수 있다. 둘째, 특수 명령어들이 기존의 판독-기입 세트 모델 기반 블록체인 기술에 대한 확장으로서 도입된다. 스마트 계약들에서는, 잔고 변화를 결정하기 위한 논리가 특수 명령어에 의해 호출된다. 노드가 데이터 상태 체크를 수행할 때, 특수 명령어는 데이터 상태의 유효성을 결정하기 위해 잔고를 체크하는 데 사용된다. 셋째, 특수 명령어는 단일 정책 수정이 판독-기입 세트 모델 기반 블록체인 기술에서 하나의 데이터에 적용되는 모든 종류의 상황들에 적용 가능하다. 하나의 데이터는 숫자 타입, 상태 타입 및 데이터 타입 중 적어도 하나를 포함하는 데이터 타입을 가질 수 있다.
도 6은 본 명세서의 실시예들에 따른, 블록체인 트랜잭션들에서 이중 소비 문제를 회피하기 위한 방법(600)의 일례를 도시하는 흐름도이다. 편의상, 방법(600)은 하나 이상의 위치에 위치하고 본 명세서에 따라 적절히 프로그래밍되는 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 적절히 프로그래밍되는 컴퓨팅 시스템(예를 들어, 도 1의 컴퓨팅 시스템(106 및/또는 108) 또는 도 2의 참여자 시스템(202, 204 및/또는 206))이 방법(600)을 수행할 수 있다.
602에서, 하나의 데이터에 대해 2개 이상의 블록체인 트랜잭션을 실행하기 위한 명령어들이 수신된다. 2개 이상의 블록체인 트랜잭션 중 모든 블록체인 트랜잭션들은 하나의 데이터의 값을 수정(예를 들어, 가산, 감산)한다. 일부 실시예들에서, 하나의 데이터는 블록체인 프로세스에서 사용되는(예를 들어, 수정되는) 데이터일 수 있다. 예를 들어, 하나의 데이터는 사용자가 돈을 소비하거나 돈을 예치할 수 있는 사용자 계좌일 수 있다. 일부 실시예들에서, 하나의 데이터는 숫자 타입, 상태 타입 및 데이터 타입 중 적어도 하나를 포함하는 데이터 타입을 가질 수 있다. 일부 실시예들에서, 2개 이상의 블록체인 트랜잭션은 이중 소비 트랜잭션들이고, 하나의 데이터에 대해 병렬로 실행된다. 일부 실시예들에서, 블록체인은 판독-기입 세트 모델에 기초한다.
604에서, 2개 이상의 블록체인 트랜잭션으로부터의 각각의 블록체인 트랜잭션에 대해, 블록체인 트랜잭션과 연관된 스마트 계약이 사전 실행되어 블록체인 트랜잭션을 나타내는 특수 명령어를 생성한다. 특수 명령어는 블록체인 트랜잭션을 블록체인에 기입하기 위해 스마트 계약을 실행할 때 하나의 데이터의 현재 값이 블록체인 트랜잭션을 지원하는 것을 확인하는 데 사용된다. 일부 실시예들에서, 블록체인 트랜잭션과 연관된 스마트 계약을 사전 실행할 때 판독-기입 세트 대신에 특수 명령어가 생성된다. 즉, 블록체인 트랜잭션과 연관된 스마트 계약을 사전 실행할 때 판독-기입 세트가 생성되지 않는다. 예를 들어, 100 위안의 잔고를 갖는 계좌로부터 40 위안을 소비하기 위한 블록체인 트랜잭션을 실행할 때, (도 5의 528 및/또는 530과 같은) 특수 명령어(100-40)가 생성되고, (도 4의 428 및/또는 430과 같은) 판독-기입 세트(100->60)가 생성되지 않는다.
일부 실시예들에서, 블록체인 트랜잭션은 하나의 데이터로부터의 금액을 공제하기 위한 것이다. 그러한 경우들에서, 하나의 데이터의 현재 값이 블록체인 트랜잭션을 지원하는 것을 확인하는 것은 하나의 데이터의 현재 값이 금액 이상인 것을 확인하는 것을 포함한다. 일부 실시예들에서, 블록체인 트랜잭션은 하나의 데이터에 금액을 예치하기 위한 것이다. 그러한 경우들에서, 하나의 데이터의 현재 값이 블록체인 트랜잭션을 지원하는 것을 확인하는 것은 수행되지 않을 수 있다. 예를 들어, 스마트 계약은 하나의 데이터의 현재 값을 확인하지 않고 블록체인 트랜잭션을 블록체인에 기입하기 위해 실행될 수 있다. 일부 실시예들에서, 각각의 블록체인 트랜잭션에 대해, 블록체인 트랜잭션과 연관된 스마트 계약을 사전 실행하여 블록체인 트랜잭션을 나타내는 특수 명령어를 생성하는 것은 하나의 데이터에 대한 잔고 체크를 수행하고, 하나의 데이터에 대한 잔고 체크가 블록체인 트랜잭션을 지원하는 경우, 블록체인 트랜잭션을 나타내는 특수 명령어를 생성하는 것을 포함한다. 일부 실시예들에서, 특수 명령어는 하나의 데이터에 대해 수행될 비교 동작을 나타낸다. 예를 들어, 비교 동작은 하나의 데이터의 현재 값과 하나의 데이터로부터 공제될 금액을 비교한다.
도 6에 도시된 방법(600)은 도시된 순서로 또는 다른 순서로 수행될 수 있는 추가적인, 더 적은 또는 상이한 액션들(도 6에 도시되지 않음)을 포함하도록 수정되거나 재구성될 수 있다. 예를 들어, 604 후에, 블록체인 트랜잭션이 합의 분류를 위해 제출된다. 하나의 데이터의 현재 값이 금액 이상인 것을 확인하는 것에 응답하여, 블록체인 트랜잭션과 연관된 스마트 계약이 실행되어 블록체인 트랜잭션을 블록체인에 기입한다. 일부 실시예들에서, 하나의 데이터의 현재 값이 금액 이상인 것을 확인하는 것은 하나의 데이터의 현재 값이 블록체인 트랜잭션을 나타내는 특수 명령어에 의해 표시되는 하나의 데이터의 값과 동일한 것을 확인하는 것을 포함하지 않는다. 일부 실시예들에서, 블록체인 트랜잭션과 연관된 스마트 계약을 실행하여 블록체인 트랜잭션을 블록체인에 기입하는 것은 블록체인 트랜잭션과 연관된 데이터 블록을 생성하고, 데이터 블록을 블록체인에 게시하는 것을 포함한다. 일부 실시예들에서, 도 6에 도시 된 액션들 중 하나 이상은 예를 들어 종료 조건에 도달할 때까지 반복 또는 되풀이될 수 있다. 일부 실시예들에서, 도 6에 도시된 개별 액션들 중 하나 이상은 다수의 별개의 액션으로서 실행될 수 있거나, 도 6에 도시된 액션들 중 하나 이상의 서브세트는 단일 액션으로서 결합되고 실행될 수 있다. 일부 실시예들에서, 도 6에 도시된 개별 액션들 중 하나 이상은 또한 방법(600)으로부터 생략될 수 있다.
도 7은 본 명세서의 실시예들에 따른 장치(700)의 모듈들의 예들을 도시한다.
장치(700)는 블록체인 네트워크에서 이중 소비 문제를 회피하도록 구성된 블록체인 노드의 일 실시예의 일례일 수 있고, 블록체인 네트워크는 컨소시엄 블록체인 네트워크이다. 장치(700)는 전술한 실시예들에 대응할 수 있고, 장치(700)는 하나의 데이터에 대해 2개 이상의 블록체인 트랜잭션을 실행하기 위한 명령어들을 수신하는 수신 모듈(702); 2개 이상의 블록체인 트랜잭션 중의 블록체인 트랜잭션과 연관된 스마트 계약을 사전 실행하여 블록체인 트랜잭션을 나타내는 특수 명령어를 생성하는 사전 실행 모듈(704); 및 합의 분류를 위해 블록체인 트랜잭션을 전송하는 전송 모듈(706)을 포함한다.
선택적 실시예에서, 2개 이상의 블록체인 트랜잭션 중 모든 블록체인 트랜잭션들은 하나의 데이터의 값을 수정하고, 특수 명령어는 블록체인 트랜잭션을 블록체인에 기입하기 위해 스마트 계약을 실행할 때 하나의 데이터의 현재 값이 블록체인 트랜잭션을 지원하는 것을 확인하는 데 사용된다.
선택적 실시예에서, 2개 이상의 블록체인 트랜잭션은 하나의 데이터에 대해 병렬로 실행된다.
선택적 실시예에서, 블록체인은 판독-기입 세트 모델에 기초한다.
선택적 실시예에서, 각각의 블록체인 트랜잭션에 대해, 블록체인 트랜잭션과 연관된 스마트 계약을 사전 실행할 때 판독-기입 세트 대신에 특수 명령어가 생성된다.
선택적 실시예에서, 장치(700)는 스마트 계약을 실행하여 블록체인 트랜잭션을 블록체인에 기입하기 위해 하나의 데이터의 현재 값이 블록체인 트랜잭션에 의해 하나의 데이터로부터 공제될 금액 이상인지를 결정하기 위한 결정 모듈을 더 포함한다.
선택적 실시예에서, 하나의 데이터의 현재 값이 블록체인 트랜잭션을 지원하는 것을 확인하는 것은 하나의 데이터의 현재 값이 블록체인 트랜잭션을 나타내는 특수 명령어에 의해 표시되는 하나의 데이터의 값과 동일한 것을 확인하는 것을 포함하지 않는다.
선택적 실시예에서, 장치(700)는 블록체인 트랜잭션과 연관된 데이터 블록을 생성하기 위한 생성 모듈, 및 데이터 블록을 블록체인에 게시하기 위한 게시 모듈을 더 포함한다.
선택적 실시예에서, 장치(700)는 하나의 데이터에 대한 잔고 체크를 수행하기 위한 잔고 체크 모듈, 및 하나의 데이터에 대한 잔고 체크가 블록체인 트랜잭션을 지원하는 경우에 블록체인 트랜잭션을 나타내는 특수 명령어를 생성하기 위한 생성 모듈을 더 포함한다.
이전의 실시예들에서 예시된 시스템, 장치, 모듈 또는 유닛은 컴퓨터 칩 또는 엔티티를 사용하여 구현될 수 있거나, 소정의 기능을 갖는 제품을 사용하여 구현될 수 있다. 통상적인 실시예 디바이스는 컴퓨터이고, 컴퓨터는 개인용 컴퓨터, 랩탑 컴퓨터, 셀룰러 폰, 카메라 폰, 스마트폰, 개인 휴대 단말기, 미디어 플레이어, 내비게이션 디바이스, 이메일 수신 및 전송 디바이스, 게임 콘솔, 태블릿 컴퓨터, 웨어러블 디바이스 또는 이러한 디바이스들의 임의의 조합일 수 있다.
장치 내의 각각의 모듈의 기능들 및 역할들의 실시예 프로세스에 대해, 이전의 방법에서의 대응하는 단계들의 실시예 프로세스가 참조될 수 있다. 여기서는 간소화를 위해 상세들이 생략된다.
장치 실시예는 기본적으로 방법 실시예에 대응하기 때문에, 관련 부분들에 대해서는, 방법 실시예에서의 관련 설명들이 참조될 수 있다. 이전에 설명된 장치 실시예는 단지 일례이다. 별개의 부분들로서 설명된 모듈들은 물리적으로 분리될 수 있거나 그렇지 않을 수 있고, 모듈들로서 디스플레이된 부분들은 물리적 모듈들일 수 있거나 그렇지 않을 수 있거나, 하나의 위치에 위치될 수 있거나, 다수의 네트워크 모듈에 분산될 수 있다. 모듈들의 일부 또는 전부는 본 명세서의 해결책들의 목적들을 달성하기 위한 실제 요구들에 기초하여 선택될 수 있다. 이 분야의 통상의 기술자는 창의적 노력 없이도 본 명세서의 실시예들을 이해하고 구현할 수 있다.
다시 도 7을 참조하면, 이것은 블록체인 데이터 사전 실행 장치의 내부 기능 모듈 및 구조를 도시하는 것으로서 해석될 수 있다. 블록체인 데이터 사전 실행 장치는 블록체인 네트워크에서 이중 소비 문제를 회피하도록 구성된 블록체인 노드의 일례일 수 있다. 실행 본체는 본질적으로 전자 디바이스일 수 있고, 전자 디바이스는 하나 이상의 프로세서; 및 하나 이상의 프로세서의 실행 가능 명령어를 저장하도록 구성된 메모리를 포함한다.
본 명세서에서 설명된 기술들은 하나 이상의 기술적 효과를 생성할 수 있다. 일부 실시예들에서, (하나의 데이터에 대해 다수의 병렬 블록체인 트랜잭션을 실행하는 것과 같은) 이중 소비 문제를 다루기 위해, 특수 명령어가 기존의 판독-기입 세트 모델 기반 블록체인 기술에 대한 확장으로서 도입된다. 다른 실시예들에서, 하나의 데이터에 대해 다수의 병렬 블록체인 트랜잭션을 실행할 때, 각각의 블록체인 트랜잭션에 대해 판독-기입 세트 대신에 특수 명령어가 생성된다. 또 다른 실시예들에서, 특수 명령어는 대응하는 블록체인 트랜잭션을 블록체인에 기입하기 위해 스마트 계약을 실행할 때 하나의 데이터의 현재 값이 대응하는 블록체인 트랜잭션을 지원하는 것을 확인하는 데 사용된다.
본 주제의 설명된 실시예들은 하나 이상의 특징들을 단독으로 또는 조합하여 포함할 수 있다.
예를 들어, 제1 실시예에서, 블록체인 트랜잭션들에서 이중 소비 문제를 회피하기 위한 컴퓨터 구현 방법은 하나의 데이터에 대해 2개 이상의 블록체인 트랜잭션을 실행하기 위한 명령어들을 수신하는 단계 - 2개 이상의 블록체인 트랜잭션 중 모든 블록체인 트랜잭션들은 하나의 데이터의 값을 수정함 -; 및 2개 이상의 블록체인 트랜잭션으로부터의 각각의 블록체인 트랜잭션에 대해, 블록체인 트랜잭션과 연관된 스마트 계약을 사전 실행하여 블록체인 트랜잭션을 나타내는 특수 명령어를 생성하는 단계를 포함하고, 특수 명령어는 블록체인 트랜잭션을 블록체인에 기입하기 위해 스마트 계약을 실행할 때 하나의 데이터의 현재 값이 블록체인 트랜잭션을 지원하는 것을 확인하는 데 사용된다. 전술한 그리고 다른 설명된 실시예들은 각각 이하의 특징들 중 하나 이상을 선택적으로 포함할 수 있다.
이하의 특징들 중 임의의 것과 조합 가능한 제1 특징은 2개 이상의 블록체인 트랜잭션이 하나의 데이터에 대해 병렬로 실행된다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제2 특징은 블록체인이 판독-기입 세트 모델에 기초한다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제3 특징은 2개 이상의 블록체인 트랜잭션으로부터의 각각의 블록체인 트랜잭션에 대해, 블록체인 트랜잭션과 연관된 스마트 계약을 사전 실행할 때 판독-기입 세트 대신에 특수 명령어가 생성된다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제4 특징은 2개 이상의 블록체인 트랜잭션으로부터의 블록체인 트랜잭션이 하나의 데이터로부터 금액을 공제하고, 하나의 데이터의 현재 값이 블록체인 트랜잭션을 지원하는 것을 확인하는 것은 하나의 데이터의 현재 값이 금액 이상인 것을 확인하는 것을 포함한다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제5 특징은 방법이 합의 분류를 위해 블록체인 트랜잭션을 제출하는 단계; 및 하나의 데이터의 현재 값이 금액 이상인 것을 확인하는 것에 응답하여, 블록체인 트랜잭션과 연관된 스마트 계약을 실행하여 블록체인 트랜잭션을 블록체인에 기입하는 단계를 더 포함한다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제6 특징은 하나의 데이터의 현재 값이 금액 이상인 것을 확인하는 것이 하나의 데이터의 현재 값이 블록체인 트랜잭션을 나타내는 특수 명령어에 의해 표시되는 하나의 데이터의 값과 동일한 것을 확인하는 것을 포함하지 않는다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제7 특징은 블록체인 트랜잭션과 연관된 스마트 계약을 실행하여 블록체인 트랜잭션을 블록체인에 기입하는 것이 블록체인 트랜잭션과 연관된 데이터 블록을 생성하는 것; 및 데이터 블록을 블록체인에 게시하는 것을 포함한다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제8 특징은 2개 이상의 블록체인 트랜잭션으로부터의 각각의 블록체인 트랜잭션에 대해, 블록체인 트랜잭션과 연관된 스마트 계약을 사전 실행하여 블록체인 트랜잭션을 나타내는 특수 명령어를 생성하는 것이 하나의 데이터에 대한 잔고 체크를 수행하는 것; 및 하나의 데이터에 대한 잔고 체크가 블록체인 트랜잭션을 지원하는 경우에, 블록체인 트랜잭션을 나타내는 특수 명령어를 생성하는 것을 포함한다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제9 특징은 특수 명령어가 스마트 계약을 실행할 때 비교 동작이 하나의 데이터에 대해 수행된다는 것을 나타낸다는 것을 명시한다.
제2 실시예에서, 블록체인 트랜잭션들에서 이중 소비 문제를 회피하기 위한 시스템은 하나 이상의 프로세서; 및 하나 이상의 프로세서에 결합되고, 동작들을 수행하도록 하나 이상의 프로세서에 의해 실행 가능한 명령어들을 저장한 하나 이상의 컴퓨터 판독 가능 메모리를 포함하고, 동작들은 하나의 데이터에 대해 2개 이상의 블록체인 트랜잭션을 실행하기 위한 명령어들을 수신하는 동작 - 2개 이상의 블록체인 트랜잭션 중 모든 블록체인 트랜잭션들은 하나의 데이터의 값을 수정함 -; 및 2개 이상의 블록체인 트랜잭션으로부터의 각각의 블록체인 트랜잭션에 대해, 블록체인 트랜잭션과 연관된 스마트 계약을 사전 실행하여 블록체인 트랜잭션을 나타내는 특수 명령어를 생성하는 동작을 포함하고, 특수 명령어는 블록체인 트랜잭션을 블록체인에 기입하기 위해 스마트 계약을 실행할 때 하나의 데이터의 현재 값이 블록체인 트랜잭션을 지원하는 것을 확인하는 데 사용된다. 전술한 그리고 다른 설명된 실시예들은 각각 이하의 특징들 중 하나 이상을 선택적으로 포함할 수 있다.
이하의 특징들 중 임의의 것과 조합 가능한 제1 특징은 2개 이상의 블록체인 트랜잭션이 하나의 데이터에 대해 병렬로 실행된다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제2 특징은 블록체인이 판독-기입 세트 모델에 기초한다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제3 특징은 2개 이상의 블록체인 트랜잭션으로부터의 각각의 블록체인 트랜잭션에 대해, 블록체인 트랜잭션과 연관된 스마트 계약을 사전 실행할 때 판독-기입 세트 대신에 특수 명령어가 생성된다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제4 특징은 2개 이상의 블록체인 트랜잭션으로부터의 블록체인 트랜잭션이 하나의 데이터로부터 금액을 공제하고, 하나의 데이터의 현재 값이 블록체인 트랜잭션을 지원하는 것을 확인하는 것은 하나의 데이터의 현재 값이 금액 이상인 것을 확인하는 것을 포함한다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제5 특징은 동작들이 합의 분류를 위해 블록체인 트랜잭션을 제출하는 동작; 및 하나의 데이터의 현재 값이 금액 이상인 것을 확인하는 것에 응답하여, 블록체인 트랜잭션과 연관된 스마트 계약을 실행하여 블록체인 트랜잭션을 블록체인에 기입하는 동작을 더 포함한다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제6 특징은 하나의 데이터의 현재 값이 금액 이상인 것을 확인하는 것이 하나의 데이터의 현재 값이 블록체인 트랜잭션을 나타내는 특수 명령어에 의해 표시되는 하나의 데이터의 값과 동일한 것을 확인하는 것을 포함하지 않는다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제7 특징은 블록체인 트랜잭션과 연관된 스마트 계약을 실행하여 블록체인 트랜잭션을 블록체인에 기입하는 것이 블록체인 트랜잭션과 연관된 데이터 블록을 생성하는 것; 및 데이터 블록을 블록체인에 게시하는 것을 포함한다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제8 특징은 2개 이상의 블록체인 트랜잭션으로부터의 각각의 블록체인 트랜잭션에 대해, 블록체인 트랜잭션과 연관된 스마트 계약을 사전 실행하여 블록체인 트랜잭션을 나타내는 특수 명령어를 생성하는 것이 하나의 데이터에 대한 잔고 체크를 수행하는 것; 및 하나의 데이터에 대한 잔고 체크가 블록체인 트랜잭션을 지원하는 경우에, 블록체인 트랜잭션을 나타내는 특수 명령어를 생성하는 것을 포함한다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제9 특징은 특수 명령어가 스마트 계약을 실행할 때 비교 동작이 하나의 데이터에 대해 수행된다는 것을 나타낸다는 것을 명시한다.
제3 실시예에서, 블록체인 트랜잭션들에서 이중 소비 문제를 회피하기 위한 장치로서, 장치는 하나의 데이터에 대해 2개 이상의 블록체인 트랜잭션을 실행하기 위한 명령어들을 수신하는 동작 - 2개 이상의 블록체인 트랜잭션 중 모든 블록체인 트랜잭션들은 하나의 데이터의 값을 수정함 -; 및 2개 이상의 블록체인 트랜잭션으로부터의 각각의 블록체인 트랜잭션에 대해, 블록체인 트랜잭션과 연관된 스마트 계약을 사전 실행하여 블록체인 트랜잭션을 나타내는 특수 명령어를 생성하는 동작을 포함하는 동작들을 수행하기 위한 복수의 모듈을 포함하고, 특수 명령어는 블록체인 트랜잭션을 블록체인에 기입하기 위해 스마트 계약을 실행할 때 하나의 데이터의 현재 값이 블록체인 트랜잭션을 지원하는 것을 확인하는 데 사용된다. 전술한 그리고 다른 설명된 실시예들은 각각 이하의 특징들 중 하나 이상을 선택적으로 포함할 수 있다.
이하의 특징들 중 임의의 것과 조합 가능한 제1 특징은 2개 이상의 블록체인 트랜잭션이 하나의 데이터에 대해 병렬로 실행된다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제2 특징은 블록체인이 판독-기입 세트 모델에 기초한다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제3 특징은 2개 이상의 블록체인 트랜잭션으로부터의 각각의 블록체인 트랜잭션에 대해, 블록체인 트랜잭션과 연관된 스마트 계약을 사전 실행할 때 판독-기입 세트 대신에 특수 명령어가 생성된다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제4 특징은 2개 이상의 블록체인 트랜잭션으로부터의 블록체인 트랜잭션이 하나의 데이터로부터 금액을 공제하고, 하나의 데이터의 현재 값이 블록체인 트랜잭션을 지원하는 것을 확인하는 것은 하나의 데이터의 현재 값이 금액 이상인 것을 확인하는 것을 포함한다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제5 특징은 동작들이 합의 분류를 위해 블록체인 트랜잭션을 제출하는 동작; 및 하나의 데이터의 현재 값이 금액 이상인 것을 확인하는 것에 응답하여, 블록체인 트랜잭션과 연관된 스마트 계약을 실행하여 블록체인 트랜잭션을 블록체인에 기입하는 동작을 더 포함한다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제6 특징은 하나의 데이터의 현재 값이 금액 이상인 것을 확인하는 것이 하나의 데이터의 현재 값이 블록체인 트랜잭션을 나타내는 특수 명령어에 의해 표시되는 하나의 데이터의 값과 동일한 것을 확인하는 것을 포함하지 않는다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제7 특징은 블록체인 트랜잭션과 연관된 스마트 계약을 실행하여 블록체인 트랜잭션을 블록체인에 기입하는 것이 블록체인 트랜잭션과 연관된 데이터 블록을 생성하는 것; 및 데이터 블록을 블록체인에 게시하는 것을 포함한다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제8 특징은 2개 이상의 블록체인 트랜잭션으로부터의 각각의 블록체인 트랜잭션에 대해, 블록체인 트랜잭션과 연관된 스마트 계약을 사전 실행하여 블록체인 트랜잭션을 나타내는 특수 명령어를 생성하는 것이 하나의 데이터에 대한 잔고 체크를 수행하는 것; 및 하나의 데이터에 대한 잔고 체크가 블록체인 트랜잭션을 지원하는 경우에, 블록체인 트랜잭션을 나타내는 특수 명령어를 생성하는 것을 포함한다는 것을 명시한다.
이전의 또는 다음의 특징들 중 임의의 것과 조합 가능한 제9 특징은 특수 명령어가 스마트 계약을 실행할 때 비교 동작이 하나의 데이터에 대해 수행된다는 것을 나타낸다는 것을 명시한다.
본 명세서에서 설명된 본 주제의 실시예들 및 액션들 및 동작들은 디지털 전자 회로에서, 유형적으로 구현되는 컴퓨터 소프트웨어 또는 펌웨어에서, 본 명세서에 개시된 구조들 및 그들의 구조적 등가물들을 포함하는 컴퓨터 하드웨어에서, 또는 이들 중 하나 이상의 것들의 조합들에서 구현될 수 있다. 본 명세서에서 설명된 본 주제의 실시예들은 데이터 처리 장치에 의한 실행을 위해 또는 그의 동작을 제어하기 위해, 컴퓨터 프로그램 캐리어 상에 인코딩되는 하나 이상의 컴퓨터 프로그램, 예를 들어 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로서 구현될 수 있다. 예를 들어, 컴퓨터 프로그램 캐리어는 명령어들을 인코딩하거나 저장한 하나 이상의 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 캐리어는 자기, 광자기 또는 광 디스크, 고체 상태 드라이브, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 또는 다른 타입의 매체들과 같은 유형적인 비일시적 컴퓨터 판독 가능 매체일 수 있다. 대안적으로 또는 추가로, 캐리어는 인위적으로 생성된 전파 신호, 예를 들어 데이터 처리 장치에 의한 실행을 위해 적합한 수신기 장치로 전송할 정보를 인코딩하기 위해 생성되는 기계 생성 전기, 광학 또는 전자기 신호일 수 있다. 컴퓨터 저장 매체는 기계 판독 가능 저장 디바이스, 기계 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 디바이스, 또는 이들 중 하나 이상의 것들의 조합일 수 있거나 그 일부일 수 있다. 컴퓨터 저장 매체는 전파 신호가 아니다.
프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 모듈, 소프트웨어 모듈, 엔진, 스크립트 또는 코드로서 또한 지칭 또는 설명될 수 있는 컴퓨터 프로그램은 컴파일 또는 해석 언어들 또는 선언적 또는 절차적 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있고; 독립형 프로그램 또는 모듈, 컴포넌트, 엔진, 서브루틴, 또는 컴퓨팅 환경에서 실행하기에 적합한 다른 유닛을 포함하는 임의의 형태로 배치될 수 있고, 컴퓨팅 환경은 하나 이상의 위치에서 데이터 통신 네트워크에 의해 상호 연결된 하나 이상의 컴퓨터를 포함할 수 있다.
컴퓨터 프로그램은 파일 시스템 내 파일에 대응할 수 있지만 그럴 필요는 없다. 컴퓨터 프로그램은 다른 프로그램들 또는 데이터, 예를 들어 마크업 언어 문서에 저장된 하나 이상의 스크립트를 보유하는 파일의 일부에, 해당 프로그램에 전용화되는 단일 파일에 또는 다수의 협력 파일, 예를 들어 하나 이상의 모듈, 서브프로그램 또는 코드의 부분들을 저장하는 파일들에 저장될 수 있다.
컴퓨터 프로그램의 실행을 위한 프로세서들은 예를 들어 범용 및 특수 목적 마이크로프로세서들 양자, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 프로세서에 결합된 비일시적 컴퓨터 판독 가능 매체로부터 실행을 위한 컴퓨터 프로그램의 명령어들은 물론, 데이터도 수신할 것이다.
"데이터 처리 장치"라는 용어는 예로서 프로그래밍 가능 프로세서, 컴퓨터, 또는 다수의 프로세서 또는 컴퓨터를 포함하는, 데이터를 처리하기 위한 모든 종류의 장치들, 디바이스들 또는 기계들을 포함한다. 데이터 처리 장치는 특수 목적 논리 회로, 예를 들어 필드 프로그래머블 게이트 어레이(FPGA), 주문형 집적 회로(ASIC) 또는 그래픽 처리 유닛(GPU)을 포함할 수 있다. 장치는 또한, 하드웨어에 더하여, 컴퓨터 프로그램들을 위한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 이들 중 하나 이상의 것들의 조합을 구성하는 코드를 포함할 수 있다.
본 명세서에서 설명된 프로세스들 및 논리 흐름들은 입력 데이터에 작용하고 출력을 생성함으로써 동작들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 컴퓨터 또는 프로세서에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 또한 특수 목적 논리 회로, 예를 들어 FPGA, ASIC 또는 GPU에 의해, 또는 특수 목적 논리 회로와 하나 이상의 프로그래밍된 컴퓨터의 조합에 의해 수행될 수 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터들은 범용 또는 특수 목적 마이크로프로세서들 또는 이들 양자, 또는 임의의 다른 종류의 중앙 처리 유닛에 기초할 수 있다. 일반적으로, 중앙 처리 유닛은 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 이들 양자로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 요소들은 명령어들을 실행하기 위한 중앙 처리 유닛 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스를 포함할 수 있다. 중앙 처리 유닛 및 메모리는 특수 목적 논리 회로에 의해 보완되거나, 그에 통합될 수 있다.
일반적으로, 컴퓨터는 또한, 하나 이상의 저장 디바이스를 포함하거나, 그로부터 데이터를 수신하거나 그에게 데이터를 전송하도록 동작 가능하게 결합될 수 있다. 저장 디바이스들은 예를 들어 자기, 광자기 또는 광 디스크들, 고체 상태 드라이브들, 또는 임의의 다른 타입의 비일시적 컴퓨터 판독 가능 매체들일 수 있다. 그러나, 컴퓨터는 그러한 디바이스들을 가질 필요는 없다. 따라서, 컴퓨터는 국지적이고/이거나 원격적인 하나 이상의 메모리와 같은 하나 이상의 저장 디바이스에 결합될 수 있다. 예를 들어, 컴퓨터는 컴퓨터의 일체형 컴포넌트들인 하나 이상의 로컬 메모리를 포함할 수 있거나, 컴퓨터는 클라우드 네트워크 내에 있는 하나 이상의 원격 메모리에 결합될 수 있다. 더욱이, 컴퓨터는 다른 디바이스, 예를 들어 단지 몇 가지 예로서 모바일 전화, 개인 휴대 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, 글로벌 포지셔닝 시스템(GPS) 수신기, 또는 휴대용 저장 디바이스, 예를 들어 유니버설 시리얼 버스(USB) 플래시 드라이브에 내장될 수 있다.
컴포넌트들은 직접 또는 하나 이상의 중간 컴포넌트를 통해 서로 교환적으로, 예를 들어 전기적으로 또는 광학적으로 연결됨으로써 서로 "결합"될 수 있다. 컴포넌트들 중 하나가 다른 하나의 컴포넌트에 통합되는 경우, 컴포넌트들은 또한 서로 "결합"될 수 있다. 예를 들어, 프로세서(예를 들어, L2 캐시 컴포넌트)에 통합되는 저장 컴포넌트는 프로세서에 "결합"된다.
사용자와의 상호작용을 제공하기 위해, 본 명세서에서 설명된 주제의 실시예들은 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스, 예를 들어 액정 디스플레이(LCD) 모니터, 및 사용자가 컴퓨터에 입력을 제공할 수 있게 하는 입력 디바이스, 예를 들어 키보드 및 포인팅 디바이스, 예를 들어 마우스, 트랙볼 또는 터치패드를 갖는 컴퓨터 상에 구현되거나 그와 통신하도록 구성될 수 있다. 다른 종류의 디바이스들도 사용자와의 상호작용을 제공하기 위해 사용될 수 있으며, 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백, 예를 들어 시각적 피드백, 청각적 피드백 또는 촉각적 피드백일 수 있고, 사용자로부터의 입력은 음향, 스피치 또는 촉각적 입력을 포함하는 임의의 형태로 수신될 수 있다. 게다가, 컴퓨터는 사용자에 의해 사용되는 디바이스에 문서들을 전송하고 그로부터 문서들을 수신함으로써, 예를 들어 웹 브라우저로부터 수신된 요청들에 응답하여 사용자의 디바이스 상의 웹 브라우저에 웹 페이지들을 전송함으로써 또는 사용자 디바이스, 예를 들어 스마트폰 또는 전자 태블릿 상에서 실행되는 앱과 상호작용함으로써 사용자와 상호작용할 수 있다. 또한, 컴퓨터는 텍스트 메시지들 또는 다른 형태의 메시지를 개인용 디바이스, 예를 들어 메시징 애플리케이션을 실행하고 있는 스마트폰에 전송하고, 사용자로부터 응답 메시지들을 답례로 수신함으로써 사용자와 상호작용할 수 있다.
본 명세서는 시스템들, 장치들 및 컴퓨터 프로그램 컴포넌트들과 관련하여 "~하도록 구성되는"이라는 용어를 사용한다. 하나 이상의 컴퓨터의 시스템이 특정 동작들 또는 액션들을 수행하도록 구성되는 것은 동작시에 시스템으로 하여금 동작들 또는 액션들을 수행하게 하는 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합이 시스템 상에 설치된 것을 의미한다. 하나 이상의 컴퓨터 프로그램이 특정 동작들 또는 액션들을 수행하도록 구성되는 것은 하나 이상의 프로그램이 데이터 처리 장치에 의해 실행될 때 장치로 하여금 동작들 또는 액션들을 수행하게 하는 명령어들을 포함한다는 것을 의미한다. 특수 목적 논리 회로가 특정한 동작들 또는 액션들을 수행하도록 구성되는 것은 회로가 동작들 또는 액션들을 수행하는 전자 논리를 갖는다는 것을 의미한다.
본 명세서는 많은 특정 실시예 상세를 포함하지만, 이들은 청구항들 자체에 의해 정의되는 청구되고 있는 것의 범위에 대한 제한으로서 해석되지 않아야 하며, 오히려 특정 실시예들에 고유할 수 있는 특징들의 설명들로서 해석되어야 한다. 개별 실시예들과 관련하여 본 명세서에서 설명되는 소정의 특징들은 또한 단일 실시예에서 조합하여 실현될 수 있다. 반대로, 단일 실시예와 관련하여 설명되는 다양한 특징들은 또한 다수의 실시예에서 개별적으로 또는 임의의 적절한 하위조합으로 실현될 수 있다. 더욱이, 특징들이 소정 조합들로 작용하는 것으로 위에서 설명될 수 있고, 심지어 초기에 그와 같이 청구될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우들에서 조합으로부터 삭제될 수 있고, 청구항은 하위조합 또는 하위조합의 변형에 관련될 수 있다.
유사하게, 동작들이 특정 순서로 도면들에 도시되고 청구항들에 기재되지만, 이것은 바람직한 결과들을 달성하기 위해 이러한 동작들이 도시된 특정 순서로 또는 순차적으로 수행될 것을 또는 모든 예시된 동작들이 수행될 것을 요구하는 것으로 이해되지 않아야 한다. 소정 상황들에서는, 멀티태스킹 및 병렬 처리가 유리할 수 있다. 더욱이, 전술한 실시예들에서의 다양한 시스템 모듈들 및 컴포넌트들의 분리는 그러한 분리가 모든 실시예들에서 요구되는 것으로 이해되지 않아야 하며, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품에 함께 통합될 수 있거나, 다수의 소프트웨어 제품들로 패키지화될 수 있다는 것을 이해해야 한다.
본 주제의 특정한 실시예들이 설명되었다. 다른 실시예들은 이하의 청구항들의 범위 내에 있다. 예를 들어, 청구항들에서 기재된 액션들은 상이한 순서로 수행되고, 여전히 바람직한 결과들을 달성할 수 있다. 일례로서, 첨부 도면들에 도시된 프로세스들은 바람직한 결과들을 달성하기 위해 반드시 도시된 특정 순서 또는 순차적 순서를 요구하지는 않는다. 일부 경우들에서는, 멀티태스킹 및 병렬 처리가 유리할 수 있다.

Claims (12)

  1. 블록체인 트랜잭션들(blockchain transactions)을 위한 컴퓨터 구현(computer-implemented) 방법으로서,
    하나의 데이터에 대해 병렬로 2개 이상의 블록체인 트랜잭션들을 실행하기 위한 명령어들을 수신하는 단계(602) - 상기 2개 이상의 블록체인 트랜잭션들중의 모든 블록체인 트랜잭션들은 상기 하나의 데이터의 값을 수정하고, 판독-기입 세트 모델(read-write set model)에 기초함 -; 및
    상기 2개 이상의 블록체인 트랜잭션들로부터의 각각의 블록체인 트랜잭션에 대해:
    상기 블록체인 트랜잭션과 연관된 스마트 계약을 사전 실행(pre-executing)하여, 상기 블록체인 트랜잭션을 나타내는, 판독-기입 세트 대신의 특수 명령어를 생성하는 단계(604)
    를 포함하고, 상기 특수 명령어는 상기 블록체인 트랜잭션을 블록체인에 기입(write)하기 위해 상기 스마트 계약을 실행할 때 상기 하나의 데이터의 현재 값이 상기 블록체인 트랜잭션을 지원하는 것을 확인(validate)하는 데 사용되는, 컴퓨터 구현 방법.
  2. 제1항에 있어서, 상기 2개 이상의 블록체인 트랜잭션들로부터의 상기 블록체인 트랜잭션은 상기 하나의 데이터로부터 금액을 공제하고, 상기 하나의 데이터의 상기 현재 값이 상기 블록체인 트랜잭션을 지원하는 것을 확인하는 것은 상기 하나의 데이터의 상기 현재 값이 상기 금액 이상인 것을 확인하는 것을 포함하는 것인, 컴퓨터 구현 방법.
  3. 제2항에 있어서,
    합의 분류(consensus sorting)를 위해 상기 블록체인 트랜잭션을 제출하는 단계; 및
    상기 하나의 데이터의 상기 현재 값이 상기 금액 이상인 것을 확인하는 것에 응답하여, 상기 블록체인 트랜잭션과 연관된 상기 스마트 계약을 실행하여 상기 블록체인 트랜잭션을 상기 블록체인에 기입하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  4. 제3항에 있어서, 상기 하나의 데이터의 상기 현재 값이 상기 금액 이상인 것을 확인하는 것은, 상기 하나의 데이터의 상기 현재 값이 상기 블록체인 트랜잭션을 나타내는 상기 특수 명령어에 의해 표시되는 상기 하나의 데이터의 값과 동일하다는 것을 확인하는 것을 포함하지 않는 것인, 컴퓨터 구현 방법.
  5. 제3항에 있어서, 상기 블록체인 트랜잭션과 연관된 상기 스마트 계약을 실행하여 상기 블록체인 트랜잭션을 상기 블록체인에 기입하는 단계는,
    상기 블록체인 트랜잭션과 연관된 데이터 블록을 생성하는 단계; 및
    상기 데이터 블록을 상기 블록체인에 게시(publish)하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  6. 제1항에 있어서,
    상기 2개 이상의 블록체인 트랜잭션들로부터의 각각의 블록체인 트랜잭션에 대해, 상기 블록체인 트랜잭션과 연관된 상기 스마트 계약을 사전 실행하여 상기 블록체인 트랜잭션을 나타내는 상기 특수 명령어를 생성하는 단계는,
    상기 하나의 데이터에 대한 잔고 체크를 수행하는 단계; 및
    상기 하나의 데이터에 대한 상기 잔고 체크가 상기 블록체인 트랜잭션을 지원하는 경우에, 상기 블록체인 트랜잭션을 나타내는 상기 특수 명령어를 생성하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  7. 제1항에 있어서, 상기 특수 명령어는, 상기 스마트 계약을 실행할 때 비교 동작이 상기 하나의 데이터에 대해 수행된다는 것을 나타내는 것인, 컴퓨터 구현 방법.
  8. 블록체인 트랜잭션들을 위한 시스템으로서,
    하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 결합되고, 제1항 내지 제7항 중 어느 한 항의 방법을 수행하기 위해 상기 하나 이상의 프로세서에 의해 실행 가능한 명령어들이 저장되어 있는 하나 이상의 컴퓨터 판독 가능한 메모리
    를 포함하는, 블록체인 트랜잭션들을 위한 시스템.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
KR1020197032264A 2019-04-30 2019-04-30 판독-기입 세트 모델 기반 블록체인 기술에서 이중 소비 문제를 회피하기 위한 방법 및 디바이스 KR102337171B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/085212 WO2019137567A2 (en) 2019-04-30 2019-04-30 Method and device for avoiding double-spending problem in read-write set-model-based blockchain technology

Publications (2)

Publication Number Publication Date
KR20200128347A KR20200128347A (ko) 2020-11-12
KR102337171B1 true KR102337171B1 (ko) 2021-12-08

Family

ID=67218456

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197032264A KR102337171B1 (ko) 2019-04-30 2019-04-30 판독-기입 세트 모델 기반 블록체인 기술에서 이중 소비 문제를 회피하기 위한 방법 및 디바이스

Country Status (9)

Country Link
US (1) US11449865B2 (ko)
EP (1) EP3628093B1 (ko)
JP (1) JP6941691B2 (ko)
KR (1) KR102337171B1 (ko)
CN (1) CN110998633B (ko)
AU (1) AU2019207314C1 (ko)
CA (1) CA3061810A1 (ko)
SG (1) SG11201910069YA (ko)
WO (1) WO2019137567A2 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111312352B (zh) 2020-02-19 2023-07-21 百度在线网络技术(北京)有限公司 一种基于区块链的数据处理方法、装置、设备和介质
US11362826B2 (en) 2020-03-18 2022-06-14 International Business Machines Corporation Endorsement process for non-deterministic application
CN112579291A (zh) * 2020-12-22 2021-03-30 北京航空航天大学 一种基于StateDB的智能合约并行运行系统及并行运行方法
CN113672635A (zh) * 2021-09-01 2021-11-19 支付宝(杭州)信息技术有限公司 一种区块链中数据的订正方法和系统
CN113744062B (zh) * 2021-11-04 2022-09-02 支付宝(杭州)信息技术有限公司 在区块链中执行交易的方法、区块链节点和区块链
CN114022148B (zh) * 2021-12-24 2022-04-22 杭州趣链科技有限公司 基于区块链的交易冲突检测方法、装置、设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101660627B1 (ko) * 2015-02-03 2016-09-28 한양대학교 에리카산학협력단 암호화 화폐의 거래를 보호하는 방법 및 장치
KR101856038B1 (ko) * 2017-11-07 2018-06-21 주식회사 올아이티탑 이체 사실확인 및 전화번호와 매칭된 블록체인을 갖는 디지털 가상화폐의 거래방법
CN108921559A (zh) * 2018-07-27 2018-11-30 杭州复杂美科技有限公司 跨链交易校验方法、设备和存储介质
CN109271245A (zh) * 2018-09-13 2019-01-25 腾讯科技(深圳)有限公司 一种区块处理任务的控制方法和装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9317549B2 (en) * 2013-06-25 2016-04-19 Optumsoft, Inc. Constraint-based consistency with snapshot isolation
CN106296184A (zh) * 2015-06-05 2017-01-04 地气股份有限公司 电子货币管理方法及电子货币系统
US20170140408A1 (en) * 2015-11-16 2017-05-18 Bank Of America Corporation Transparent self-managing rewards program using blockchain and smart contracts
WO2018120057A1 (zh) * 2016-12-30 2018-07-05 深圳前海达闼云端智能科技有限公司 基于区块链的货币管理方法和系统
KR102384340B1 (ko) * 2017-04-05 2022-04-07 삼성에스디에스 주식회사 블록체인 기반 실시간 거래 처리 방법 및 그 시스템
JP2018181309A (ja) * 2017-04-20 2018-11-15 株式会社岩手銀行 取引情報提供システム、サーバ装置、ノード装置ならびにプログラム
GB201707296D0 (en) * 2017-05-08 2017-06-21 Nchain Holdings Ltd Computer-implemented system and method
US10469248B2 (en) * 2017-10-17 2019-11-05 Amrican Express Travel Related Services Company, Inc. API request and response balancing and control on blockchain
CN111899004A (zh) * 2018-05-29 2020-11-06 创新先进技术有限公司 基于区块链的交易处理方法及装置、电子设备
CN108846659B (zh) * 2018-06-13 2021-09-14 深圳前海微众银行股份有限公司 基于区块链的转账方法、装置及存储介质
CN109087204B (zh) * 2018-07-27 2023-04-14 杭州复杂美科技有限公司 跨链交易校验方法、设备和存储介质
US10896195B2 (en) * 2018-07-29 2021-01-19 International Business Machines Corporation Automatic generation of smart contracts
US11070360B2 (en) * 2018-08-13 2021-07-20 International Business Machines Corporation Parallel transaction validation and block generation in a blockchain
CN109242485B (zh) * 2018-08-13 2020-07-10 阿里巴巴集团控股有限公司 区块链交易方法及装置、电子设备
US10333694B1 (en) * 2018-10-15 2019-06-25 Accelor Ltd. Systems and methods for secure smart contract execution via read-only distributed ledger
CN109508968B (zh) * 2018-10-25 2020-12-18 常州唯康信息科技有限公司 区块链系统以及其控制方法
BR112019016064A2 (pt) * 2018-12-28 2020-03-31 Alibaba Group Holding Limited Método implementado por computador, meio de armazenamento legível e sistema
MX2019009344A (es) * 2018-12-28 2019-10-02 Alibaba Group Holding Ltd Ejecucion paralela de transacciones en una red de cadena de bloques con base en listas blancas de contratos inteligentes.

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101660627B1 (ko) * 2015-02-03 2016-09-28 한양대학교 에리카산학협력단 암호화 화폐의 거래를 보호하는 방법 및 장치
KR101856038B1 (ko) * 2017-11-07 2018-06-21 주식회사 올아이티탑 이체 사실확인 및 전화번호와 매칭된 블록체인을 갖는 디지털 가상화폐의 거래방법
CN108921559A (zh) * 2018-07-27 2018-11-30 杭州复杂美科技有限公司 跨链交易校验方法、设备和存储介质
CN109271245A (zh) * 2018-09-13 2019-01-25 腾讯科技(深圳)有限公司 一种区块处理任务的控制方法和装置

Also Published As

Publication number Publication date
JP2020525874A (ja) 2020-08-27
JP6941691B2 (ja) 2021-09-29
CA3061810A1 (en) 2019-07-18
WO2019137567A2 (en) 2019-07-18
AU2019207314A1 (en) 2020-11-12
KR20200128347A (ko) 2020-11-12
US11449865B2 (en) 2022-09-20
EP3628093A2 (en) 2020-04-01
AU2019207314B2 (en) 2021-05-20
US20200349568A1 (en) 2020-11-05
CN110998633B (zh) 2023-11-21
EP3628093A4 (en) 2020-07-15
AU2019207314C1 (en) 2021-11-18
SG11201910069YA (en) 2019-11-28
WO2019137567A3 (en) 2020-03-12
CN110998633A (zh) 2020-04-10
EP3628093B1 (en) 2021-07-07

Similar Documents

Publication Publication Date Title
US11106817B2 (en) Data isolation in a blockchain network
KR102234128B1 (ko) 블록체인 네트워크에서의 트랜잭션의 병렬 실행
KR102337171B1 (ko) 판독-기입 세트 모델 기반 블록체인 기술에서 이중 소비 문제를 회피하기 위한 방법 및 디바이스
KR102289612B1 (ko) 분산 원장 시스템에서 트랜잭션들의 병렬 실행 수행
US11231957B2 (en) Performing parallel execution of transactions in a distributed ledger system
WO2019120332A2 (en) Performing parallel execution of transactions in a distributed ledger system
US11494766B2 (en) Managing transactions on blockchain networks
US11379866B2 (en) Retrieving values of digital tickets using smart contracts in blockchain networks

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant