KR102206940B1 - 스마트 계약을 사용하여 다자간 트랜잭션을 실행하는 방법 - Google Patents

스마트 계약을 사용하여 다자간 트랜잭션을 실행하는 방법 Download PDF

Info

Publication number
KR102206940B1
KR102206940B1 KR1020197011345A KR20197011345A KR102206940B1 KR 102206940 B1 KR102206940 B1 KR 102206940B1 KR 1020197011345 A KR1020197011345 A KR 1020197011345A KR 20197011345 A KR20197011345 A KR 20197011345A KR 102206940 B1 KR102206940 B1 KR 102206940B1
Authority
KR
South Korea
Prior art keywords
transaction
payload
computer
blockchain network
unconfirmed
Prior art date
Application number
KR1020197011345A
Other languages
English (en)
Other versions
KR20200066254A (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 KR20200066254A publication Critical patent/KR20200066254A/ko
Application granted granted Critical
Publication of KR102206940B1 publication Critical patent/KR102206940B1/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/389Keeping log of transactions for guaranteeing non-repudiation of 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • 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/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • 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
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/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/3242Cryptographic 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 keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/3247Cryptographic 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 digital signatures
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • 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
    • 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)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Power Engineering (AREA)
  • Computing Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)

Abstract

본원의 구현예들은, 제1 노드로부터 제1 트랜잭션 정보를 수신하는 단계로서, 제1 노드는 블록체인 네트워크 내의 컴퓨터 노드이고, 제1 트랜잭션 정보는 트랜잭션 페이로드, 제1 공개키, 트랜잭션에 대한 서명된 트랜잭션 페이로드를 포함하는, 제1 트랜잭션 정보 수신 단계와, 제1 공개키를 사용하여 서명된 트랜잭션 페이로드를 검증하는 단계와, 서명된 트랜잭션 페이로드의 검증에 응답하여, 미확인 트랜잭션 데이터 패키지를 구성하고, 미확인 트랜잭션 데이터 패키지의 확인 상태를 설정하는 단계와, 제2 노드로부터 제2 트랜잭션 정보를 수신하는 단계로서, 제2 노드는 블록체인 네트워크 내의 컴퓨터 노드이고, 제2 트랜잭션 정보는 트랜잭션 페이로드의 해시, 제2 공개키, 및 트랜잭션에 대한 트랜잭션 페이로드의 서명된 해시를 포함하는, 제2 트랜잭션 정보 수신 단계와, 제2 공개키를 사용하여 제2 트랜잭션 정보를 검증하는 단계와, 미확인 트랜잭션 데이터 패키지의 확인 상태를 업데이트하는 단계와, 트랜잭션의 모든 당사자가 트랜잭션을 확인했음을 확인 상태가 표시하는 것에 응답하여, 트랜잭션 페이로드를 실행하는 단계를 포함한다.

Description

스마트 계약을 사용하여 다자간 트랜잭션을 실행하는 방법
합의 네트워크(consensus network) 및/또는 블록체인 네트워크라고도 하는 분산 장부 시스템(DLS, distributed ledger system)은 참여하는 엔티티가 데이터를 안전하게 그리고 불변으로 저장할 수 있게 한다. DLS는 임의의 특정 용례(예컨대, 암호 화폐)에 관계없이 일반적으로 블록체인 네트워크라고 칭해진다. 블록체인 네트워크의 예는 공개형 블록체인 네트워크(public blockchain network), 폐쇄형 블록체인 네트워크(private blockchain network), 및 컨소시엄 블록체인 네트워크를 포함할 수 있다. 공개형 블록체인 네트워크는 모든 엔티티가 DLS를 사용하고 합의 프로세스에 참여할 수 있도록 공개되어 있다. 폐쇄형 블록체인 네트워크는 중앙에서 읽기 및 쓰기 권한을 제어하는 특정 엔티티에 제공된다. 컨소시엄 블록체인 네트워크는 합의 프로세스를 제어하는 선택된 엔티티 그룹에 제공되며, 액세스 제어 계층을 포함한다.
스마트 계약(smart contract)은 엔티티 간에 작성되어, 블록체인 네트워크 내에서 실행될 수 있다. 일부 예에서, 스마트 계약은 블록체인 네트워크 내의 엔티티 간의 트랜잭션을 정의할 수 있다. 예를 들어, 블록체인 네트워크 내의 엔티티는 스마트 계약을 호출하여 다자간 트랜잭션을 개시할 수 있다. 경우에 따라, 각 참여 엔티티는 스마트 계약이 실행되기 전에, 트랜잭션을 개별적으로 확인해야 한다. 예를 들어, 참여한 각 엔티티의 단일 서명을 확인해야 한다.
본원의 구현예들은 블록체인 네트워크에서의 다자간 스마트 계약 실행을 검증하기 위한 컴퓨터 구현 방법(computer-implemented method)을 포함한다. 보다 구체적으로, 본원의 구현예들은 스마트 계약 실행에 있어서 효율성과 데이터 보안성을 향상시키는 것에 관한 것이다.
일부 구현예에 따르면, 액션(action)은, 제1 노드로부터 제1 트랜잭션 정보를 수신하는 단계로서, 제1 노드는 블록체인 네트워크 내의 컴퓨터 노드이고, 제1 트랜잭션 정보는 트랜잭션 페이로드, 제1 공개키, 및 트랜잭션에 대한 서명된 트랜잭션 페이로드를 포함하는, 제1 트랜잭션 정보 수신 단계와, 제1 공개키를 사용하여 서명된 트랜잭션 페이로드를 검증하는 단계와, 서명된 트랜잭션 페이로드의 검증에 응답하여, 미확인 트랜잭션 데이터 패키지를 구성하고, 미확인 트랜잭션 데이터 패키지의 확인 상태를 설정하는 단계와, 제2 노드로부터 제2 트랜잭션 정보를 수신하는 단계로서, 제2 노드는 블록체인 네트워크 내의 컴퓨터 노드이고, 제2 트랜잭션 정보는 트랜잭션 페이로드의 해시, 제2 공개키, 및 트랜잭션에 대한 트랜잭션 페이로드의 서명된 해시를 포함하는, 제2 트랜잭션 정보 수신 단계와, 제2 공개키를 사용하여 제2 트랜잭션 정보를 검증하는 단계와, 미확인 트랜잭션 데이터 패키지의 확인 상태를 업데이트하는 단계와, 트랜잭션의 모든 당사자가 트랜잭션을 확인했음을 확인 상태가 표시하는 것에 응답하여, 트랜잭션 페이로드를 실행하는 단계를 포함한다. 다른 구현예들은 방법의 액션을 수행하도록 구성된, 대응하는 시스템, 장치, 그리고 컴퓨터 저장 디바이스 상에 인코딩된 컴퓨터 프로그램을 포함한다.
이들 구현예 및 다른 구현예들은, 각각 옵션으로 다음의 특징 중 하나 이상을 포함하는데, 이들 특징은, 미확인 데이터 패키지는 다자간 트랜잭션의 실행에 필요한 모든 노드의 어드레스를 포함하는 것; 미확인 데이터 패키지는 블록체인 네트워크에 의해 유지되는 미확인 트랜잭션 풀에 키-값 쌍 중의 값으로서 저장되는 것― 키-값 쌍 중의 키는 미확인 데이터 패키지와 연관된 트랜잭션 페이로드의 해시임―; 트랜잭션 페이로드는 블록체인 네트워크에서 범용 고유 식별자(universally unique identifier)를 포함하는 것; 액션은 블록체인 네트워크에 의해 유지되는 블록체인에 트랜잭션 페이로드의 실행을 기록하는 단계를 더 포함하는 것; 제1 및 제2 공개키는 블록체인 네트워크에 의해 유지되는 블록체인의 블록에 저장되는 것; 및 트랜잭션 페이로드는 제1 노드와 제2 노드 간의 적어도 하나의 자산의 교환을 포함하는 것이다.
본원은 또한 하나 이상의 프로세서에 결합되며, 명령어가 저장된 하나 이상의 비일시적 컴퓨터 판독 가능한 저장 매체를 제공하고, 명령어는 하나 이상의 프로세서에 의해 실행될 때에, 하나 이상의 프로세서로 하여금, 여기에 제공되는 방법의 구현예들에 따른 동작을 수행하게 한다.
본원은 또한 여기에 제공되는 방법을 구현하기 위한 시스템을 제공한다. 시스템은 하나 이상의 프로세서와, 하나 이상의 프로세서에 결합되며, 명령어가 저장된 컴퓨터 판독 가능한 저장 매체를 제공하고, 명령어는 하나 이상의 프로세서에 의해 실행될 때에, 하나 이상의 프로세서로 하여금, 여기에 제공되는 방법의 구현예들에 따른 동작을 수행하게 한다.
본원에 따른 방법은 여기에서 설명하는 양태 및 특징의 임의의 조합을 포함할 수 있음이 이해될 것이다. 즉, 본원에 따른 방법은 여기에서 특정적으로 설명한 양태 및 특징의 조합에 제한되지 않을 뿐만 아니라, 제공되는 양태 및 특징의 임의의 조합을 포함한다.
본원의 하나 이상의 구현예의 상세내용은 첨부하는 도면 및 이하에서 설명한다. 본원의 다른 특징 및 효과는 본 명세서와 도면으로부터 그리고 청구범위로부터 명백해질 것이다.
도 1은 본원의 구현예를 실행하는데 사용될 수 있는 환경예를 도시한다.
도 2는 본원의 구현예에 따른 개념상 아키텍처예를 도시한다.
도 3은 본원의 구현예에 따라 다자간 트랜잭션을 실행하기 위한 예시적인 신호도를 도시한다.
도 4는 본원의 구현예에 따라 실행될 수 있는 프로세스예를 도시한다.
여러 도면에서의 같은 참조 부호는 같은 엘리먼트를 가리킨다.
본원의 구현예들은 블록체인 네트워크에서의 다자간 스마트 계약 실행을 검증하기 위한 컴퓨터 구현 방법(computer-implemented method)을 포함한다. 보다 구체적으로, 본원의 구현예들은, 스마트 계약을 사용하여 다자간 트랜잭션의 트랜잭션 확인 상태를 유지하는 것과, 모든 당사자의 확인을 수신한 후에 트랜잭션을 실행하는 것에 관한 것이다. 일부 구현예에 따르면, 액션은, 제1 노드로부터 제1 트랜잭션 정보를 수신하는 단계로서, 제1 노드는 블록체인 네트워크 내의 컴퓨터 노드이고, 제1 트랜잭션 정보는 트랜잭션 페이로드, 제1 공개키, 트랜잭션에 대한 서명된 트랜잭션 페이로드를 포함하는, 제1 트랜잭션 정보 수신 단계와, 제1 공개키를 사용하여 서명된 트랜잭션 페이로드를 검증하는 단계와, 서명된 트랜잭션 페이로드의 검증에 응답하여, 미확인 트랜잭션 데이터 패키지를 구성하고, 미확인 트랜잭션 데이터 패키지의 확인 상태를 설정하는 단계와, 제2 노드로부터 제2 트랜잭션 정보를 수신하는 단계로서, 제2 노드는 블록체인 네트워크 내의 컴퓨터 노드이고, 제2 트랜잭션 정보는 트랜잭션 페이로드의 해시, 제2 공개키, 및 트랜잭션에 대한 트랜잭션 페이로드의 서명된 해시를 포함하는, 제2 트랜잭션 정보 수신 단계와, 제2 공개키를 사용하여 제2 트랜잭션 정보를 검증하는 단계와, 미확인 트랜잭션 데이터 패키지의 확인 상태를 업데이트하는 단계와, 트랜잭션의 모든 당사자가 트랜잭션을 확인했음을 확인 상태가 표시하는 것에 응답하여, 트랜잭션 페이로드를 실행하는 단계를 포함한다.
본원의 구현예에 대한 추가 컨텍스트를 제공하자면, 앞에서 소개한 바와 같이, 합의 네트워크(예를 들어, 피어 투 피어(peer-to-peer) 노드로 구성) 및 블록체인 네트워크라고도 할 수 있는 분산 장부 시스템(DLS)은 참여 엔티티가 안전하고 그리고 불변으로 트랜잭션을 수행하고 데이터를 저장하게 할 수 있다. 블록체인이라는 용어가 일반적으로 비트코인(Bitcoin) 암호 화폐 네트워크와 연관되어 있지만, 여기서는 임의의 특정 용례에 관계없이 일반적으로 DLS를 언급하기 위해 블록체인을 사용한다. 앞에서 소개한 바와 같이, 블록체인 네트워크는 공개형 블록체인 네트워크, 폐쇄형 블록체인 네트워크, 또는 컨소시엄 블록체인 네트워크로서 제공될 수 있다. 참여하는 엔티티 사이에서 공개되어 있는 공개형 블록체인 네트워크를 참조하여 본원의 구현예들에 대해 더 상세하게 한다. 그러나, 본원의 구현예들은 임의의 적절한 유형의 블록체인 네트워크에서도 실현될 수 있는 것으로 간주된다.
본원의 구현예에 대한 추가 컨텍스트를 제공하자면, 블록체인 네트워크에서, 블록체인 네트워크 내에서의 실행을 위해 애플리케이션이 개발, 테스트, 및 배포(deploy)될 수 있다. 애플리케이션의 예는, 비제한적으로, 스마트 계약을 포함할 수 있다. 스마트 계약은 여러 당사자에게 영향을 미치는 계약 조건을 가진 실제의 법적 계약을 디지털 방식으로 표현한 것(digital representation)으로서 기술될 수 있다. 스마트 계약은, 예시적인 컨텍스트에 있어서, 컨소시엄 블록체인 네트워크 내에서 구현, 저장, 업데이트(필요에 따라), 및 실행된다. 스마트 계약과 연관된 계약 당사자(예컨대, 구매자 및 판매자)는 컨소시엄 블록체인 네트워크에서 노드로서 표현된다.
일부 예에서는, 스마트 계약이, 정보, 사실, 연관성(association), 잔액 및 계약 실행을 위한 로직을 구현하는데 필요한 기타 정보를 기록하는데 사용될 수 있는 데이터를 저장할 수 있다. 스마트 계약은 스마트 계약의 인스턴스가 생성될 수 있는 함수, 및 로직의 실행을 위해 호출되는 함수로 구성된 컴퓨터 실행 가능 프로그램으로서 기술될 수 있다.
전문 용어에 있어서, 스마트 계약은 객체 및 객체 지향 클래스를 기반으로 구현될 수 있다. 예를 들어, 스마트 계약의 조건 및 컴포넌트는 스마트 계약을 구현하는 애플리케이션에 의해 취급되는 객체로서 표현될 수 있다. 스마트 계약(또는 스마트 계약 내의 객체)은 다른 객체 지향 객체와 마찬가지로 또 다른 스마트 계약(또는 동일한 스마트 계약 내의 객체)을 호출할 수 있다. 객체에 의해 행해진 호출은 예를 들어 또 다른 클래스의 객체를 생성하고, 업데이트하며, 삭제하고, 전파시키거나 그 객체와 통신하기 위한 호출일 수 있다. 객체간 호출은 함수, 메소드, API(Application Programming Interface), 또는 기타 호출 메커니즘으로 구현될 수 있다. 예를 들어, 제1 객체는 제2 객체를 생성하기 위한 함수를 호출할 수 있다.
본원의 구현예들은 전술한 컨텍스트를 고려하면서 여기에서 더 상세하게 설명된다. 보다 구체적으로, 앞에서 소개한 바와 같이, 본원의 구현예들은 스마트 계약을 사용하여 다자간 트랜잭션의 트랜잭션 확인 상태를 유지하는 것과, 모든 당사자의 확인을 수신한 후에 트랜잭션을 실행하는 것에 관한 것이다.
도 1은 본원의 구현예를 실행하는데 사용될 수 있는 환경예(100)를 도시한다. 일부 예에서, 예시적인 환경(100)은 엔티티가 블록체인 네트워크(102)에 참여할 수 있게 한다. 블록체인 네트워크(102)는 공개형 블록체인 네트워크, 폐쇄형 블록체인 네트워크, 또는 컨소시엄 블록체인 네트워크일 수 있다. 예시적인 환경(100)은 컴퓨팅 디바이스(106, 108) 및 네트워크(110)를 포함한다. 일부 예로, 네트워크(110)는 근거리 네트워크(LAN, local area network), 원거리 네트워크(WAN, wide area network), 인터넷, 또는 이들의 조합을 포함하고. 웹 사이트, 사용자 디바이스(예를 들어, 컴퓨팅 디바이스), 및 백엔드 시스템을 접속시킨다. 일부 예에서, 네트워크(110)는 유선 및/또는 무선 통신 링크를 통해 액세스될 수 있다.
도시하는 예에서, 컴퓨팅 디바이스(106, 108)는 각각 블록체인 네트워크(102)에서 노드로서의 참여를 가능하게 하는 임의의 적절한 컴퓨팅 시스템을 포함할 수 있다. 예시적인 컴퓨팅 디바이스는 비제한적으로, 서버, 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨팅 디바이스, 및 스마트폰을 포함한다. 일부 예로, 컴퓨팅 디바이스(106, 108)는 각각 블록체인 네트워크(102)와 인터랙션하기 위한 하나 이상의 컴퓨터 구현 서비스를 호스팅한다. 예를 들어, 컴퓨팅 디바이스(106)는 제1 엔티티(예를 들어, 사용자 A)가 하나 이상의 다른 엔티티(예를 들어, 다른 사용자)와의 트랜잭션을 관리하는데 사용하는 트랜잭션 관리 시스템과 같은, 제1 엔티티의 컴퓨터 구현 서비스를 호스팅할 수 있다. 컴퓨팅 디바이스(108)는 제2 엔티티(예를 들어, 사용자 B)가 하나 이상의 다른 엔티티(예를 들어, 다른 사용자)와의 트랜잭션을 관리하는데 사용하는 트랜잭션 관리 시스템과 같은, 제2 엔티티의 컴퓨터 구현 서비스를 호스팅할 수 있다. 도 1의 예에서, 블록체인 네트워크(102)는 노드들의 피어 투 피어 네트워크로 표현되고, 컴퓨팅 디바이스(106, 108)는 각각 블록체인 네트워크(102)에 참여하는 제1 엔티티 및 제2 엔티티의 노드를 제공한다 .
도 2는 본원의 구현예에 따른 개념상 아키텍처예(200)를 도시한다. 예시적인 개념상 아키텍처(200)는 엔티티 계층(202), 호스팅된 서비스 계층(204), 및 블록체인 네트워크 계층(206)을 포함한다. 도시하는 예에서, 엔티티 계층(202)은 3개의 엔티티인 Entity_1(E1), Entity_2(E2) 및 Entity_3(E3)을 포함하며, 각각의 엔티티는 각각의 트랜잭션 관리 시스템(208)을 갖는다.
도시하는 예에서, 호스팅 서비스 계층(204)은 각 트랜잭션 관리 시스템(208)에 대한 인터페이스(210)를 포함한다. 일부 예에서, 각각의 트랜잭션 관리 시스템(208)은 프로토콜(예컨대, 하이퍼텍스트 트랜스퍼 프로토콜 시큐어(HTTPS, hypertext transfer protocol secure))을 사용하여 네트워크(예를 들어, 도 1의 네트워크(110))를 통해 각각의 인터페이스(210)와 통신한다. 일부 예에서, 각각의 인터페이스(210)는 각각의 트랜잭션 관리 시스템(208)과 블록체인 네트워크 계층(206) 사이에 통신 접속을 제공한다. 보다 구체적으로, 인터페이스(210)는 블록체인 네트워크 계층(206)의 블록체인 네트워크(212)와 통신한다. 일부 예에서, 인터페이스(210)와 블록체인 네트워크 계층(206) 사이의 통신은 원격 프로시저 호출(RPC, remote procedure call)을 사용하여 수행된다. 일부 예에서, 인터페이스(210)는 각각의 트랜잭션 관리 시스템(208)에 대해 블록체인 네트워크 노드를 "호스팅"한다. 예를 들어, 인터페이스(210)는 블록체인 네트워크(212)에의 액세스를 위해 애플리케이션 프로그래밍 인터페이스(API)를 제공한다.
여기에 설명하는 바와 같이, 블록체인 네트워크(212)는 블록체인(216)에 정보를 불변으로 기록하는 복수의 노드(214)를 포함한 피어 투 피어 네트워크로서 제공된다. 단일 블록체인(216)이 개략적으로 도시되어 있지만, 블록체인(216)의 다수의 사본(copy)이 제공되어 블록체인 네트워크(212) 상에 유지된다. 예를 들어, 각 노드(214)는 블록체인의 사본을 저장한다. 일부 구현예에서, 블록체인(216)은 블록체인 네트워크에 참여하는 둘 이상의 엔티티 사이에서 수행되는 트랜잭션과 연관된 정보를 저장한다.
여기에 더 상세하게 설명하겠지만, 본원의 구현예들은 블록체인 네트워크 내에서의 다자간 트랜잭션의 실행에 관한 것이다. 본원의 구현예에 따르면, 스마트 계약은 블록체인 네트워크에서 실행되고, 트랜잭션에 참여하는 사용자(당사자)의 서명을 검증한다. 일부 구현예에서, 스마트 계약은 트랜잭션 상태가 유지되어 있는 미확인 데이터 구조(unconfirmed data structure)를 포함한다. 트랜잭션에 대한 모든 당사자의 확인이 있으면, 트랜잭션이 실행된다.
도 3은 본원의 구현예에 따라 다자간 트랜잭션을 실행하기 위한 예시적인 신호도(300)를 도시한다. 도 3의 예시적인 신호도(300)는 사용자 A(302)(예를 들어, 블록체인 네트워크 내의 노드), 사용자 B(304)(예를 들어, 블록체인 네트워크 내의 노드), 블록체인 네트워크에서 실행중인 스마트 계약(306), 및 계약 관리자(308)를 포함한다.
사용자 A(302)는 트랜잭션 페이로드(310)를 구성함으로써 블록체인 네트워크에서 트랜잭션을 개시한다. 트랜잭션 페이로드는 의도된 트랜잭션의 세부사항을 제공하는 데이터 패키지이다. 예를 들어, 사용자 A(302)는 페이로드에, 블록체인 네트워크 내의 모든 참여 엔티티(예를 들어, 사용자 A(302) 및 사용자 B(304))의 어드레스, 트랜잭션의 대상이 되는 자산 및/또는 가격(value) 등을 포함할 수 있다.
사용자 A(302)는 트랜잭션 페이로드를 디지털로 서명한다(312). 일부 구현예에서, 사용자 A(302)는 비대칭 암호화 기술을 사용하여 트랜잭션 페이로드에 서명한다. 예를 들어, 사용자 A(302)는 연관되어 있는 키 쌍을 가질 수 있으며, 이 키 쌍은 공개키(예를 들어, 블록체인 네트워크에 참여하는 누구에게나 알려질 수 있는 pubkey_A)와 개인키(예를 들어, 사용자 A에게만 알려진 privkey_A)를 포함한다. 사용자 A(302)는 (예를 들어 sig_A(payload)로 표현되는) 해시 값을 제공하기 위해 개인키로 트랜잭션 페이로드에 서명한다. 다음과 같은 예시적인 트랜잭션 정보 패키지가 제공될 수 있다. [payload, pubkey_A, sig_A(payload)].
본원의 구현예에 따르면, 사용자 A(302)는 트랜잭션 페이로드, 디지털 서명된 트랜잭션 페이로드, 및 공개키를 포함하는 트랜잭션 정보 패키지를 스마트 계약(306)에 제출한다(314). 사용자 A(302)의 디지털 서명은 공개키를 사용하여 검증된다(316). 일부 예에서, 스마트 계약(306)은 트랜잭션이 유효하다고(예를 들어, 트랜잭션이 사용자 A(302)로부터 전송되었음)을 검증하고, 스마트 계약(306)은 트랜잭션 페이로드를 실행하기 시작한다(314). 일부 예에서, 블록체인 네트워크는 공개키를 사용하여 사용자 A(302)의 디지털 서명을 검증한다.
트랜잭션이 다자간 트랜잭션, 즉 적어도 2개의 참여 엔티티를 포함하는 트랜잭션인 경우에, 스마트 계약(306)은 트랜잭션 페이로드를 사용하여 미확인 트랜잭션 데이터 패키지를 구성하고, 미확인 트랜잭션 데이터 패키지를 미확인 트랜잭션 풀에 저장하며, 확인을 설정한다(318). 미확인 트랜잭션 데이터 패키지의 예시적인 확인 상태는 [A: 확인, B: 미확인]을 포함할 수 있다.
일부 예에서, 미확인 트랜잭션 풀은 스마트 계약(306)에 의해 유지되는 키(key)-값(value) 쌍을 포함하는 저장된 데이터(예를 들어, 연관 배열, 테이블)일 수 있다. 미확인 트랜잭션 풀 내의 키는 트랜잭션 페이로드의 해시값이며, 미확인 트랜잭션 풀 내의 값은 대응하는 미확인 트랜잭션 데이터 패키지이다. 예를 들어, 사용자 A(302)가 트랜잭션 페이로드를 스마트 계약(306)에 제출할 때, 미확인 트랜잭션 풀 내의 대응 엔트리는 다음과 같이 표현될 수 있다. (hash(payload), [payload, node_A_address, node_B_address, node_A_confirmation_status, node_B_confirmation_status]).
서명된 트랜잭션 페이로드를 스마트 계약(306)에 제출하는 것과 함께, 사용자 A(302)는 서명된 트랜잭션 페이로드를 다른 참여 엔티티(예를 들어, 사용자 B(304))에게도 제출한다(320). 사용자 B(304)는 서명된 페이로드를 검증하기 위해 사용자 A(302)의 공개키를 사용하고, 페이로드를 해싱하며, 해싱된 페이로드를 사용자 B(304)의 개인키로 서명한다(322). 사용자 B(304)는 해싱된 페이로드, 서명된 해싱 페이로드, 및 자신의 공개키를 스마트 계약(306)에 제출한다.
스마트 계약(306)은 사용자 B(304)의 공개키를 사용하여 사용자 B(304)의 디지털 서명을 검증한다(326). 스마트 계약(306)은 해싱된 페이로드를 키로 사용하여 미확인 트랜잭션 풀에서 대응하는 미확인 트랜잭션 데이터 패키지를 찾는다(328). 사용자 B(304)에 의해 사용된 해시 함수는, 미확인 트랜잭션 데이터 패키지를 구성할 때 스마트 계약(306)에 의해 사용된 것과 동일한 해시 함수이다. 스마트 계약(306)은 사용자 B(304)의 확인 상태를 확인(예를 들어, [A: 확인, B: 미확인])으로 변경함으로써 미확인 트랜잭션 데이터 패키지를 업데이트한다(328).
다른 구현예에서, 미확인 트랜잭션 데이터 패키지는 각 트랜잭션 페이로드에 범용 고유 식별자(UUID)를 배정하는 것에 의해 찾아질 수 있다. 해싱된 페이로드에 서명하는 대신에, 사용자 B(304)는 사용자 A(302)가 행한 것과 마찬가지로 전체 페이로드에 서명한다. 스마트 계약(306)은 UUID를 사용하여 사용자 B(304)의 미확인 트랜잭션 미결 확인을 찾는다.
모든 당사자(예를 들어, 사용자 A(302)와 사용자 B(304))가 트랜잭션을 확인하였다면, 스마트 계약(306)은 트랜잭션을 실행한다(330). 트랜잭션이 둘보다 많은 엔티티를 포함하는 경우, 개시측 엔티티 외의 각 엔티티는 개별적으로 트랜잭션 페이로드를 해싱하고 서명해야 한다. 일부 예에서, 트랜잭션의 실행은 합의 프로세싱을 위해 블록체인 네트워크에 트랜잭션을 제출하는 것과, 블록체인에 추가되는 블록 내에 트랜잭션을 패키징하는 것을 포함한다.
트랜잭션이 종결된 후(예를 들어, 합의 프로세싱이 성공적이며, 트랜잭션이 블록체인에 추가됨), 스마트 계약(306)은 미확인 트랜잭션 풀(332)에서 트랜잭션을 삭제한다.
일부 구현예에서, 계약 관리자(308)는 만료 조건에 대해 미확인 트랜잭션 풀을 주기적으로 체크한다. 일부 예에서, 미확인 트랜잭션 데이터 패키지는 미리 결정된 기간 동안에만 미확인 트랜잭션 풀에 유지된다. 미리 결정된 기간이 만료되면(예를 들어, 모든 당사자가 미리 결정된 기간 내에 트랜잭션을 확인하지 않으면), 미확인 트랜잭션은 삭제된다(334). 이 시간 제한을 부과하면 악의적 엔티티가 제출한 원치 않는 트랜잭션이 블록체인 네트워크의 리소스를 차지하지 않도록 할 수 있다.
도 4는 본원의 구현예에 따라 실행될 수 있는 프로세스예(400)를 도시한다. 일부 예에서, 하나 이상의 컴퓨팅 디바이스에 의해 실행되는 하나 이상의 컴퓨터 실행 가능 프로그램을 사용하여 예시적인 프로세스(400)가 제공된다. 예를 들어, 예시 프로세스(400)의 적어도 일부는 블록체인 네트워크 내에서 실행중인 스마트 계약(예를 들어, 도 2의 블록체인 네트워크(212) 내에서 실행중인 도 3의 스마트 계약(306))에 의해 실행될 수 있다.
서명된 트랜잭션이 수신된다(402). 예를 들어, 스마트 계약(306)은 사용자 A(302)로부터 트랜잭션을 수신한다(예를 들어, 사용자 A(302)는 서명된 트랜잭션 패키지를 스마트 계약(306)에 전송한다). 서명된 트랜잭션의 서명이 유효한지가 결정된다(404). 예를 들어, 스마트 계약(306)은 트랜잭션의 서명이 유효한지 결정하기 위해 사용자 A(302)의 공개키를 사용한다. 서명이 유효하지 않으면, 에러가 표시되고, 예시 프로세스(400)가 종료된다.
서명이 유효하면, 미확인 트랜잭션 패키지가 제공되어 미확인 트랜잭션 풀에 저장된다(408). 예를 들어, 여기에 설명한 바와 같이, 스마트 계약(306)은 (예를 들어, UUID에 기초해서, 해시에 기반하여) 트랜잭션을 위한 키를 제공하고 그 키와 함께 미확인 트랜잭션 풀에 트랜잭션을 저장한다. 당사자 상태가 설정된다(410). 예를 들어, 스마트 계약(306)은 트랜잭션의 당사자 상태를 [A: 확인, B: 미확인]으로 설정한다.
트랜잭션의 모든 당사자가 트랜잭션을 확인했는지가 결정된다(412). 모든 당사자가 트랜잭션을 확인하였으면, 트랜잭션이 실행된다. 예를 들어, 스마트 계약(306)은 합의 프로세싱을 위해 블록체인 네트워크에 트랜잭션을 제출한다. 일부 예에서는 트랜잭션이 미확인 트랜잭션 풀에서 삭제된다.
트랜잭션이 만료되었는지가 결정된다(416). 예를 들어, 스마트 계약(306)은 트랜잭션의 만료 여부(예를 들어, 트랜잭션이 미리 결정 기간 이상 동안 미확인 상태였는지)를 결정하기 위해 스마트 계약(306)을 트리거한 계약 관리자(308)로부터 주기적인 신호를 수신한다. 트랜잭션이 만료되면, 트랜잭션은 미확인 트랜잭션 풀에서 삭제된다(418). 트랜잭션이 만료되지 않았으면, 또 다른 트랜잭션이 수신되었는지가 결정된다(420). 또 다른 트랜잭션이 수신되지 않았다면, 예시 프로세스(400)는 만료 체크로 되돌아간다.
또 다른 트랜잭션이 수신되었으면, 트랜잭션의 서명이 유효한지가 결정된다(422). 예를 들어, 스마트 계약(306)은 사용자 B(304)로부터 트랜잭션을 수신한다(예를 들어, 사용자 B(304)가 서명된 트랜잭션 패키지를 스마트 계약(306)에 전송한다). 서명이 유효하지 않다면, 에러가 표시되고(424), 예시 프로세스(400)는 루프백한다. 서명이 유효하면, 트랜잭션이 미확인 트랜잭션 풀 내에 저장된 트랜잭션에 대응하는지가 결정된다(426). 예를 들어, 스마트 계약(306)은 미확인 트랜잭션 풀 내의 대응하는 키를 서치하기 위해 수신된 트랜잭션의 값(예를 들어, 해시, UUID)을 사용한다. 트랜잭션이 미확인 트랜잭션 풀 내에 없으면, 트랜잭션은 새로운 트랜잭션으로 간주될 수 있고, 예시 프로세스(400)는 루프백하여 미확인 트랜잭션 풀에 트랜잭션을 추가한다. 트랜잭션이 미확인 트랜잭션 풀에 있으면, 예시 프로세스(400)는 루프백하여 당사자의 상태를 업데이트하고(예를 들어, 스마트 계약(306)은 트랜잭션의 당사자 상태를 [A: 확인, B: 미확인]로 설정하고)(410), 여기에 설명한 바와 같이, 모든 당사자가 해당 트랜잭션을 확인했는지를 결정한다(412).
기술한 특징들은 디지털 전자 회로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수 있다. 장치는 프로그래머블 프로세서에 의한 실행을 위해 정보 캐리어 내에(예를 들어, 머신 판독 가능한 저장 디바이스 내에) 실체적으로 수록되는 컴퓨터 프로그램 제품으로 구현될 수 있으며, 방법의 단계들은 입력 데이터를 연산하고 출력을 생성함으로써 기술된 구현예의 기능을 수행하기 위해 명령어의 프로그램을 실행하는 프로그래머블 프로세서에 의해 수행될 수 있다. 기술한 특징들은 데이터 저장 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령어를 수신하고 적어도 하나의 출력 디바이스에 데이터 및 명령어를 전송하도록 결합된, 적어도 하나의 프로그래머블 프로세서를 포함한 프로그래머블 시스템 상에서 실행 가능한 하나 이상의 컴퓨터 프로그램으로 유리하게 구현될 수 있다. 컴퓨터 프로그램은 컴퓨터에서 특정 액티비티를 수행하거나 특정 결과를 초래하기 위해 직접 또는 간접적으로 사용될 수 있는 명령어 세트이다. 컴퓨터 프로그램은 컴파일팅된 언어나 인터프리팅된 언어를 포함하여 임의의 프로그래밍 언어로 작성될 수 있으며, 스탠드얼론 실행형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 또 다른 유닛으로서 포함하는, 모든 형태로 배포될 수 있다.
명령어의 프로그램의 실행에 적절한 프로세서는 예시적으로 범용 및 전문용 마이크로프로세서 둘 다와, 임의의 종류의 컴퓨터의 단독 프로세서 또는 다중 프로세서 중 하나를 포함한다. 일반적으로, 프로세서는 리드 온리 메모리나 랜덤 액세스 메모리 또는 둘 다로부터 명령어와 데이터를 수신할 것이다. 컴퓨터의 엘리먼트는 명령어를 실행하기 위한 프로세서와, 명령어와 데이터를 저장하기 위한 하나 이상의 메모리를 포함할 수 있다. 일반적으로, 컴퓨터는 또한 데이터 파일을 저장하기 위한 하나 이상의 대용량 저장 디바이스를 포함할 수도 있고 또는 그 대용량 저장 디바이스와 통신하도록 동작 가능하게 결합될 수도 있으며, 이러한 대용량 저장 디바이스는 내장형 하드 디스크 및 착탈형 디스크 등의 자기 디스크와, 광 자기 디스크와, 광 디스크를 포함한다. 컴퓨터 프로그램 명령어 및 데이터를 실체적으로 수록하기에 적절한 저장 디바이스는, 예시적으로 EPROM, EEPROM 및 플래시 메모리 디바이스 등의 반도체 메모리 디바이스와, 내장형 하드 디스크 및 착탈형 디스크 등의 자기 디스크와, 광 자기 디스크와, CD-ROM 및 DVD-ROM 디스크를 포함한, 모든 형태의 비휘발성 메모리를 포함한다. 프로세서 및 메모리는 주문형 집적 회로(ASIC, application-specific integrated circuit)에 의해 보완될 수도 또는 그 내부에 통합될 수도 있다.
사용자와의 인터랙션을 제공하기 위해, 특징들은 사용자에게 정보를 표시하는, 예컨대 음극선관(CRT) 또는 액정 디스플레이(LCD) 모니터 등의 디스플레이 디바이스와, 사용자가 컴퓨터에 입력을 제공하는데 쓰이는, 키보드와, 예컨대 마우스나 트래볼 등의 포인팅 디바이스를 구비한 컴퓨터 상에서 구현될 수 있다.
특징들은 데이터 서버와 같은 백엔드 컴포넌트를 포함하거나, 애플리케이션 서버 또는 인터넷 서버 등의 미들웨어 컴포넌트를 포함하거나, 그래픽 사용자 인터페이스나 인터넷 브라우저, 또는 이들의 임의의 조합을 구비한 클라이언트 컴퓨터 등의 프론트엔드 컴포넌트를 포함하는 컴퓨터 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 통신 네트워크와 같은 디지털 데이터 통신의 임의의 형태 또는 매체에 의해 접속될 수 있다. 통신 네트워크의 예는, 예를 들어 근거리 네트워크(LAN), 원거리 네트워크(WAN), 및 인터넷을 형성하는 컴퓨터 및 네트워크를 포함한다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 원격으로 배치되며, 통상 전술한 것과 같은 네트워크를 통해 인터랙션한다. 클라이언트와 서버의 관계는, 각각의 컴퓨터 상에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램의 덕택에 생긴다.
또한, 도면에 나타낸 로직 흐름은 바람직한 결과를 달성하기 위해, 표시한 특정 순서 또는 순차적 순서를 반드시 필요로 하지 않는다. 또한, 다른 단계들이 제공될 수도 있고 설명한 흐름 중에서 단계들이 삭제될 수도 있으며, 설명한 시스템에서, 다른 컴포넌트가 추가될 수도 또는 제거될 수도 있다. 따라서, 다른 구현예들은 다음의 청구범위 내에 있다.
본원의 여러 구현예들을 설명하였다. 그럼에도 불구하고, 본원의 사상 및 범위를 벗어나지 않고 다양한 변형예가 있을 수 있음을 이해할 것이다. 따라서, 다른 구현예들은 다음의 청구범위 내에 있다.

Claims (9)

  1. 블록체인 네트워크에서 다자간 트랜잭션(multi-party transaction)을 실행하기 위한 컴퓨터 구현 방법(computer-implemented method)으로서, 비일시적 저장 매체에 저장된 명령어에 의해 컴퓨터에서 수행되는 것인, 컴퓨터 구현 방법에 있어서,
    상기 블록체인 네트워크 내의 제1 노드로부터 상기 다자간 트랜잭션에 대한 제1 트랜잭션 정보를 수신하는 단계로서, 상기 제1 트랜잭션 정보는 제1 공개키, 및 상기 제1 공개키에 대응하는 제1 개인키로 서명된 상기 다자간 트랜잭션에 대한 서명된 트랜잭션 페이로드를 포함하는 것인, 상기 제1 트랜잭션 정보 수신 단계와,
    상기 제1 공개키를 사용하여 상기 서명된 트랜잭션 페이로드를 검증하는 단계와,
    상기 서명된 트랜잭션 페이로드의 검증에 응답하여,
    미확인(unconfirmed) 트랜잭션 데이터 패키지를 구성(constructing)하는 단계와,
    상기 미확인 트랜잭션 데이터 패키지를 키값 쌍 내의 값으로서 저장하는 단계로서, 상기 키값 쌍 내의 값은 상기 트랜잭션 페이로드의 해시(hash)인 것인, 상기 저장 단계와,
    상기 미확인 트랜잭션 데이터 패키지의 확인 상태를 설정하는 단계와,
    상기 블록체인 네트워크 내의 제2 노드로부터 상기 다자간 트랜잭션에 대한 제2 트랜잭션 정보를 수신하는 단계로서, 상기 제2 트랜잭션 정보는 상기 트랜잭션 페이로드의 해시, 제2 공개키, 및 상기 제2 공개키에 대응하는 제2 개인키로 서명된 상기 다자간 트랜잭션에 대한 제2 서명된 트랜잭션 페이로드를 포함하는 것인, 상기 제2 트랜잭션 정보 수신 단계와,
    상기 제2 공개키를 사용하여 상기 제2 서명된 트랜잭션 페이로드를 검증하는 단계와,
    상기 제2 서명된 트랜잭션 페이로드의 검증에 응답하여, 상기 제2 트랜잭션 정보의 상기 트랜잭션 페이로드의 해쉬를 사용하여 상기 미확인 트랜잭션 데이터 패키지를 찾는(locating) 단계와,
    상기 미확인 트랜잭션 데이터 패키지의 확인 상태를 업데이트하는 단계와,
    상기 다자간 트랜잭션의 모든 당사자가 상기 다자간 트랜잭션을 확인했음을 상기 확인 상태가 표시하는 것에 응답하여, 상기 트랜잭션 페이로드를 실행하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  2. 제1항에 있어서, 상기 미확인 트랜잭션 데이터 패키지는 상기 블록체인 네트워크 내의 상기 다자간 트랜잭션의 실행을 위한 모든 노드의 어드레스를 포함하는, 컴퓨터 구현 방법.
  3. 제1항에 있어서, 상기 미확인 트랜잭션 데이터 패키지는 상기 블록체인 네트워크에 의해 유지되는 미확인 트랜잭션 풀(pool)에 저장되는, 컴퓨터 구현 방법.
  4. 제1항에 있어서, 상기 트랜잭션 페이로드는 상기 블록체인 네트워크에서 범용 고유 식별자(universally unique identifier)를 포함하는, 컴퓨터 구현 방법.
  5. 제1항에 있어서, 상기 블록체인 네트워크에 의해 유지되는 블록체인에 상기 트랜잭션 페이로드의 실행을 기록하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  6. 제1항에 있어서, 상기 제1 및 제2 공개키는 상기 블록체인 네트워크에 의해 유지되는 블록체인의 블록에 저장되는, 컴퓨터 구현 방법.
  7. 제1항에 있어서, 상기 트랜잭션 페이로드는 상기 제1 노드와 상기 제2 노드 간의 적어도 하나의 자산의 교환을 포함하는, 컴퓨터 구현 방법.
  8. 하나 이상의 컴퓨터에 의해 실행될 때에, 상기 하나 이상의 컴퓨터로 하여금 제1항 내지 제7항 중 어느 한 항에 기재된 방법에 따른 동작을 수행하게 하는 명령어가 인코딩되어 있는 하나 이상의 컴퓨터 판독 가능한 저장 매체.
  9. 시스템에 있어서,
    하나 이상의 컴퓨터와,
    상기 하나 이상의 컴퓨터에 결합되고, 제1항 내지 제7항 중 어느 한 항에 기재된 방법에 따른 동작을 수행하도록 상기 하나 이상의 컴퓨터에 의해 실행 가능한명령어로 구성(configure)된 하나 이상의 컴퓨터 판독 가능 메모리
    를 포함하는, 시스템.
KR1020197011345A 2018-11-27 2018-11-27 스마트 계약을 사용하여 다자간 트랜잭션을 실행하는 방법 KR102206940B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/117575 WO2019072280A2 (en) 2018-11-27 2018-11-27 EXECUTION OF MULTI-PARTY TRANSACTIONS USING INTELLIGENT CONTRACTS

Publications (2)

Publication Number Publication Date
KR20200066254A KR20200066254A (ko) 2020-06-09
KR102206940B1 true KR102206940B1 (ko) 2021-01-26

Family

ID=66100051

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197011345A KR102206940B1 (ko) 2018-11-27 2018-11-27 스마트 계약을 사용하여 다자간 트랜잭션을 실행하는 방법

Country Status (9)

Country Link
US (1) US20190251557A1 (ko)
EP (1) EP3559891B1 (ko)
JP (1) JP6892504B2 (ko)
KR (1) KR102206940B1 (ko)
CN (1) CN110352445B (ko)
PH (1) PH12019500866A1 (ko)
SG (1) SG11201903528SA (ko)
TW (1) TWI728418B (ko)
WO (1) WO2019072280A2 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10419225B2 (en) 2017-01-30 2019-09-17 Factom, Inc. Validating documents via blockchain
US10411897B2 (en) 2017-02-17 2019-09-10 Factom, Inc. Secret sharing via blockchains
US20180260889A1 (en) * 2017-03-10 2018-09-13 Factom Sourcing Mortgage Documents via Blockchains
US20180268504A1 (en) * 2017-03-15 2018-09-20 Factom Indexing Mortgage Documents via Blockchains
US10817873B2 (en) 2017-03-22 2020-10-27 Factom, Inc. Auditing of electronic documents
US11386232B2 (en) * 2017-12-05 2022-07-12 The Guppy Group Inc. Distributed data management and verification
US11170366B2 (en) 2018-05-18 2021-11-09 Inveniam Capital Partners, Inc. Private blockchain services
US10783164B2 (en) 2018-05-18 2020-09-22 Factom, Inc. Import and export in blockchain environments
US11134120B2 (en) 2018-05-18 2021-09-28 Inveniam Capital Partners, Inc. Load balancing in blockchain environments
US11328290B2 (en) 2018-08-06 2022-05-10 Inveniam Capital Partners, Inc. Stable cryptocurrency coinage
US11989208B2 (en) 2018-08-06 2024-05-21 Inveniam Capital Partners, Inc. Transactional sharding of blockchain transactions
US11276056B2 (en) 2018-08-06 2022-03-15 Inveniam Capital Partners, Inc. Digital contracts in blockchain environments
US10536537B1 (en) * 2019-06-13 2020-01-14 Accenture Global Solutions Limited Multi-source deterministic oracle management
IT201900020476A1 (it) * 2019-11-06 2021-05-06 Ailia Sa Metodo di esecuzione di una istanza di uno smart contract mediante una blockchain
US11991298B2 (en) * 2019-06-14 2024-05-21 Ailia Sa Method for the execution of an instance of a smart contract by means of a blockchain
SG11202002911UA (en) 2019-09-02 2021-04-29 Advanced New Technologies Co Ltd Managing blockchain-based centralized ledger systems
CN110648125B (zh) * 2019-09-10 2022-08-02 杭州秘猿科技有限公司 一种打包交易方法、装置、电子设备及存储介质
CN111178885B (zh) * 2019-12-18 2023-08-04 达闼机器人股份有限公司 基于区块链的数据处理方法、装置、数据处理设备及系统
US11444749B2 (en) 2020-01-17 2022-09-13 Inveniam Capital Partners, Inc. Separating hashing from proof-of-work in blockchain environments
EP3841549B1 (en) 2020-04-22 2022-10-26 Alipay (Hangzhou) Information Technology Co., Ltd. Managing transaction requests in ledger systems
EP3837657B1 (en) 2020-04-22 2022-12-07 Alipay (Hangzhou) Information Technology Co., Ltd. Managing transaction requests in ledger systems
CN111630545B (zh) 2020-04-22 2022-05-27 支付宝(杭州)信息技术有限公司 管理账本系统中的交易请求
CN112581130B (zh) * 2020-12-22 2022-12-23 北京航空航天大学 一种基于多链互联的跨链交易方法
CN112884579A (zh) * 2021-02-08 2021-06-01 京东数科海益信息科技有限公司 区块链交易共识方法和装置
CN113065965A (zh) * 2021-04-23 2021-07-02 深圳壹账通智能科技有限公司 多方确认的区块链交易处理方法、装置、设备及存储介质
CN113592639B (zh) * 2021-05-21 2023-10-13 上海简苏网络科技有限公司 一种区块链交易删除方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030033255A1 (en) 2001-08-13 2003-02-13 Burton Margaret Jane License repository and method
US20090327140A1 (en) 2006-04-18 2009-12-31 Online Security Portfolio Llc System and Method for Secure Online Transaction
US20140379638A1 (en) 2013-06-21 2014-12-25 Sap Ag Concurrent request handling for database transactions
US20170344988A1 (en) 2016-05-24 2017-11-30 Ubs Ag System and method for facilitating blockchain-based validation
US20180183600A1 (en) 2016-12-28 2018-06-28 Mastercard International Incorporated Method and system for providing validated, auditable, and immutable inputs to a smart contract

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6387908B2 (ja) * 2015-06-22 2018-09-12 トヨタ自動車株式会社 認証システム
US11562353B2 (en) * 2015-11-24 2023-01-24 Mastercard International Incorporated Method and system for gross settlement by use of an opaque blockchain
CA3013185A1 (en) * 2016-02-23 2017-08-31 nChain Holdings Limited A method and system for securing computer software using a distributed hash table and a blockchain
US10984081B2 (en) * 2016-09-30 2021-04-20 Cable Television Laboratories, Inc. Systems and methods for secure person to device association
CN106548349B (zh) * 2016-11-02 2020-09-29 江苏通付盾科技有限公司 交易信息验证方法及系统
JP6775086B2 (ja) * 2016-12-16 2020-10-28 株式会社日立製作所 ブロックチェーン監視及び管理
JP6495346B2 (ja) * 2017-01-10 2019-04-03 日本電信電話株式会社 情報処理システム
WO2018158936A1 (ja) * 2017-03-03 2018-09-07 日本電気株式会社 ブロックチェーン管理装置、ブロックチェーン管理方法及びプログラム
CN107341702B (zh) * 2017-03-08 2020-06-23 创新先进技术有限公司 一种业务处理的方法及装置
CN107395557B (zh) * 2017-03-28 2020-05-15 创新先进技术有限公司 一种业务请求的处理方法及装置
KR102407187B1 (ko) * 2017-04-05 2022-06-10 삼성에스디에스 주식회사 블록체인 기반 전자 화폐 자동 충전 방법 및 그 시스템
CN107273556A (zh) * 2017-08-23 2017-10-20 上海点融信息科技有限责任公司 区块链数据索引方法和设备
CN108123936B (zh) * 2017-12-13 2021-04-13 北京科技大学 一种基于区块链技术的访问控制方法及系统
CN108242013B (zh) * 2017-12-25 2024-04-05 招商银行股份有限公司 基于区块链的交易监管方法、设备及计算机可读存储介质
CN108256859B (zh) * 2018-01-02 2021-02-23 中国工商银行股份有限公司 基于区块链的金融产品交易共识方法、节点及系统
CN108229981A (zh) * 2018-01-29 2018-06-29 杭州云象网络技术有限公司 一种基于区块链的供应链金融防伪溯源方法
CN108596613A (zh) * 2018-03-22 2018-09-28 深圳市网心科技有限公司 区块链交易处理方法、装置及存储介质
CN108632045A (zh) * 2018-05-10 2018-10-09 阿里巴巴集团控股有限公司 一种区块链数据处理方法、装置、处理设备及系统
CN108804112B (zh) * 2018-05-22 2022-02-11 上海分布信息科技有限公司 一种区块链落账处理方法及系统
CN108765159B (zh) * 2018-06-04 2022-07-15 杭州溪塔科技有限公司 一种基于区块链的上链与状态处理方法、装置及互联系统
CN108712263B (zh) * 2018-06-11 2021-05-25 北京京东尚科信息技术有限公司 信息验证方法、装置、系统和计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030033255A1 (en) 2001-08-13 2003-02-13 Burton Margaret Jane License repository and method
US20090327140A1 (en) 2006-04-18 2009-12-31 Online Security Portfolio Llc System and Method for Secure Online Transaction
US20140379638A1 (en) 2013-06-21 2014-12-25 Sap Ag Concurrent request handling for database transactions
US20170344988A1 (en) 2016-05-24 2017-11-30 Ubs Ag System and method for facilitating blockchain-based validation
US20180183600A1 (en) 2016-12-28 2018-06-28 Mastercard International Incorporated Method and system for providing validated, auditable, and immutable inputs to a smart contract

Also Published As

Publication number Publication date
SG11201903528SA (en) 2019-05-30
JP2020502619A (ja) 2020-01-23
EP3559891A2 (en) 2019-10-30
PH12019500866A1 (en) 2019-12-02
EP3559891A4 (en) 2020-03-04
WO2019072280A2 (en) 2019-04-18
EP3559891B1 (en) 2021-11-17
US20190251557A1 (en) 2019-08-15
CN110352445B (zh) 2023-08-22
TWI728418B (zh) 2021-05-21
WO2019072280A3 (en) 2019-09-19
CN110352445A (zh) 2019-10-18
TW202020785A (zh) 2020-06-01
JP6892504B2 (ja) 2021-06-23
KR20200066254A (ko) 2020-06-09

Similar Documents

Publication Publication Date Title
KR102206940B1 (ko) 스마트 계약을 사용하여 다자간 트랜잭션을 실행하는 방법
JP7341225B2 (ja) マルチテナント環境における非集中型台帳による高度なスマートコントラクト
US20240048378A1 (en) Partitioning a blockchain network
US10824419B2 (en) Function-as-a-service (FaaS) platform in blockchain networks
US11100091B2 (en) Lightweight node in a multi-tenant blockchain network
US20220209948A1 (en) Blockchain notification board storing blockchain resources
TW201935384A (zh) 資產管理方法及裝置、電子設備
TW201935375A (zh) 資產管理方法及裝置、電子設備
JP7228322B2 (ja) ブロックチェーン・ネットワークにおける自動コミット・トランザクション管理
US11367055B2 (en) Decentralized pooled mining for enabling proof-of-work on blockchains
WO2022121538A1 (zh) 基于区块链的数据同步方法、系统及相关设备
US20200110825A1 (en) Blockchain notification board storing blockchain resources
CN113228076A (zh) 区块链管理系统
US10540344B2 (en) Utilizing nonce table to resolve concurrent blockchain transaction failure
WO2023207529A1 (zh) 数据处理方法、装置及设备、介质、产品
WO2020248657A1 (zh) 一种在区块链中锁定账户的方法和装置
EP4360032A1 (en) Systems and methods for transaction validation in layer 2

Legal Events

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