KR102254500B1 - 블록체인 상의 스마트 계약의 보안을 개선하기 위한 시스템 및 방법 - Google Patents

블록체인 상의 스마트 계약의 보안을 개선하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR102254500B1
KR102254500B1 KR1020197011448A KR20197011448A KR102254500B1 KR 102254500 B1 KR102254500 B1 KR 102254500B1 KR 1020197011448 A KR1020197011448 A KR 1020197011448A KR 20197011448 A KR20197011448 A KR 20197011448A KR 102254500 B1 KR102254500 B1 KR 102254500B1
Authority
KR
South Korea
Prior art keywords
transaction
smart contract
blockchain
execution
protection condition
Prior art date
Application number
KR1020197011448A
Other languages
English (en)
Other versions
KR20200066261A (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 KR20200066261A publication Critical patent/KR20200066261A/ko
Application granted granted Critical
Publication of KR102254500B1 publication Critical patent/KR102254500B1/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
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0633Lists, e.g. purchase orders, compilation or processing
    • G06Q30/0635Processing of requisition or of purchase orders
    • G06Q30/0637Approvals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/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/388Payment protocols; Details thereof using mutual authentication without cards, e.g. challenge-response
    • 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/405Establishing or using transaction specific rules
    • 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
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • 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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

스마트 계약의 보안을 개선하기 위한 컴퓨터 구현 방법은, 스마트 계약을 각각 호출하는 제1 트랜잭션과 제2 트랜잭션을 취득하는 단계로서, 제1 트랜잭션이 보호 조건과 연관된, 상기 취득하는 단계; 제2 트랜잭션을 실행하고, 스마트 계약의 현재 상태를 업데이트하는 단계; 스마트 계약의 업데이트된 현재 상태가 보호 조건을 충족시키는지를 결정하는 단계; 업데이트된 현재 상태가 보호 조건을 충족시킨다는 결정에 응답하여, 제1 트랜잭션을 실행하고, 제1 및 제2 트랜잭션을 블록체인에 추가할 데이터 블록에 기록하는 단계; 및 업데이트된 현재 상태가 보호 조건을 충족시키지 못한다는 결정에 응답하여, 제1 트랜잭션을 실행하지 않고 제2 트랜잭션을 블록체인에 추가할 다른 데이터 블록에 기록하는 단계를 포함한다.

Description

블록체인 상의 스마트 계약의 보안을 개선하기 위한 시스템 및 방법
본 개시내용은, 일반적으로 컴퓨터 기술에 관한 것으로서, 구체적으로는 블록체인(blockchain) 상의 스마트 계약의 보안을 개선하기 위한 시스템 및 방법에 관한 것이다.
블록체인 기술은 분산된 방식으로 데이터 저장을 약속한다. 데이터는, 블록들의 체인을 형성하는, 서로 선행 관계를 갖는 일련의 데이터 블록에 저장될 수 있다. 블록들의 체인은, 데이터를 블록들에 저장하기 전에 그 데이터의 유효성을 확인하는 것을 담당하는 노드들의 네트워크에 의해 유지된다. 노드들에 의해 사용되는 암호 및 합의 기술을 사용함으로써, 블록체인에 저장된 데이터가 거의 변경되지 않는다. 따라서, 노드들의 네트워크는 블록체인 합의 네트워크라고도 한다. 최근, 블록체인 기술은 스마트 계약의 실행을 위한 프레임워크를 제공하도록 확장되었다. 스마트 계약은, 사용자가 만든 비즈니스 로직을 달성하도록 블록체인 합의 네트워크에서 실행될 수 있는 코드이다. 스마트 계약은, 디지털 형식으로 정의된 일련의 약속을 포함할 수 있고, 관련 약속이 코드로 설명되어 있는 당사자들 간의 합의서를 포함할 수 있다. 스마트 계약은 향후 서명 또는 트리거 이벤트에 따라 자동으로 정산될 수 있다. 그러나, 블록체인 스마트 계약은, 인가되지 않은 자산 이전과 같은 온라인 상의 악의적인 공격에 취약하다. 따라서 이러한 위험을 최소한으로 줄이기 위해서는 스마트 계약의 보안을 개선하는 것이 필수적이다.
본 개시내용의 다양한 실시형태는, 블록체인 상의 스마트 계약의 보안을 개선하기 위한 시스템, 방법, 및 비일시적 컴퓨터 판독가능 매체를 포함할 수 있다. 일 양태에 따르면, 스마트 계약의 보안을 개선하기 위한 시스템은, 하나 이상의 프로세서; 및 하나 이상의 프로세서에 결합되고, 시스템이 동작을 수행하게 하도록 하나 이상의 프로세서에 의해 실행 가능한 명령어와 함께 구성된 하나 이상의 비일시적 컴퓨터 판독가능 메모리를 포함하고, 동작은, 스마트 계약을 각각 호출(invoke)하는 제1 트랜잭션(transaction)과 제2 트랜잭션을 취득하는 단계로서, 제1 트랜잭션이 보호 조건과 연관된, 상기 취득하는 단계; 제2 트랜잭션을 실행하고, 스마트 계약의 현재 상태를 업데이트하는 단계; 스마트 계약의 업데이트된 현재 상태가 보호 조건을 충족시키는지를 결정하는 단계; 업데이트된 현재 상태가 보호 조건을 충족시킨다는 결정에 응답하여, 제1 트랜잭션을 실행하고, 제1 및 제2 트랜잭션을 블록체인에 추가할 새로운 데이터 블록에 기록하는 단계; 및 업데이트된 현재 상태가 보호 조건을 충족시키지 못한다는 결정에 응답하여, 제1 트랜잭션을 실행하지 않고 제2 트랜잭션을 블록체인에 추가할 다른 새로운 데이터 블록에 기록하는 단계를 포함한다.
일부 실시형태에서, 시스템은, 또한, 업데이트된 현재 상태가 보호 조건을 충족시키지 못한다는 결정에 응답하여, 실행 예외를 제1 트랜잭션을 제출한 연산 장치에 귀환되도록 구성된다.
일부 실시형태에서, 현재 상태는 스마트 계약의 트랜잭션 항목의 현재 가격을 포함하고, 보호 조건은, 트랜잭션 항목의 가격 범위, 양 범위, 또는 시간 범위와 연관된다.
일부 실시형태에서, 제1 트랜잭션은 가격 범위에서의 트랜잭션 항목의 구매 주문과 연관되고, 제2 트랜잭션은 트랜잭션 항목을 판매하는 판매 주문과 연관된다.
일부 실시형태에서, 보호 조건은 제1 트랜잭션에 기초하여 자동 생성된다.
일부 실시형태에서, 보호 조건은 제1 트랜잭션을 제출한 연산 장치에 의해 제출된다.
일부 실시형태에서, 제1 트랜잭션과 제2 트랜잭션을 취득하는 단계는, 풀 데이터베이스(pool database)로부터 제1 트랜잭션과 제2 트랜잭션을 취득하는 단계를 포함한다.
일부 실시형태에서, 복수의 노드 각각은 블록체인의 복사본을 원장(ledger)으로서 저장하기 위한 메모리를 포함하고, 노드들은, 새로운 데이터 블록 또는 다른 새로운 데이터 블록이 블록체인에 추가될 때 원장을 업데이트하도록 구성된다.
다른 일 양태에 따르면, 스마트 계약의 보안을 개선하기 위한 컴퓨터 구현 방법은, 스마트 계약을 각각 호출하는 제1 트랜잭션과 제2 트랜잭션을 취득하는 단계로서, 제1 트랜잭션이 보호 조건과 연관된, 상기 취득하는 단계; 제2 트랜잭션을 실행하고, 스마트 계약의 현재 상태를 업데이트하는 단계; 스마트 계약의 업데이트된 현재 상태가 보호 조건을 충족시키는지를 결정하는 단계; 업데이트된 현재 상태가 보호 조건을 충족시킨다는 결정에 응답하여, 제1 트랜잭션을 실행하고, 제1 및 제2 트랜잭션을 블록체인에 추가할 데이터 블록에 기록하는 단계; 및 업데이트된 현재 상태가 보호 조건을 충족시키지 못한다는 결정에 응답하여, 제1 트랜잭션을 실행하지 않고 제2 트랜잭션을 블록체인에 추가할 다른 데이터 블록에 기록하는 단계를 포함한다.
또 다른 일 양태에 따르면, 비일시적 컴퓨터 판독가능 저장 매체는, 하나 이상의 프로세서가 동작을 수행하게 하도록 하나 이상의 프로세서에 의해 실행 가능한 명령어와 함께 구성되고, 동작은, 스마트 계약을 각각 호출하는 제1 트랜잭션과 제2 트랜잭션을 취득하는 단계로서, 제1 트랜잭션이 보호 조건과 연관된, 상기 취득하는 단계; 제2 트랜잭션을 실행하고, 스마트 계약의 현재 상태를 업데이트하는 단계; 스마트 계약의 업데이트된 현재 상태가 보호 조건을 충족시키는지를 결정하는 단계; 업데이트된 현재 상태가 보호 조건을 충족시킨다는 결정에 응답하여, 제1 트랜잭션을 실행하고, 제1 및 제2 트랜잭션을 블록체인에 추가할 데이터 블록에 기록하는 단계; 및 업데이트된 현재 상태가 보호 조건을 충족시키지 못한다는 결정에 응답하여, 제1 트랜잭션을 실행하지 않고 제2 트랜잭션을 블록체인에 추가할 다른 데이터 블록에 기록하는 단계를 포함한다.
제조 부품과 제조 부품의 조합 및 구조의 관련 요소들의 동작과 기능의 방법뿐만 아니라 본 명세서에서 개시하는 시스템, 방법, 및 비일시적 컴퓨터 판독가능 매체의 이러한 기능, 및 기타 기능은, 첨부 도면을 참조하여 다음에 따르는 설명과 청구범위를 고려할 때 더욱 명백해질 것이며, 이들 모두는 본 명세서의 일부를 이루며, 유사한 참조 번호는 다양한 도면에서의 대응 부분을 가리킨다. 그러나, 도면은 예시와 설명을 위한 것일 뿐이며 본 발명을 한정하도록 정의하는 것이 아님을 명확하게 이해해야 한다.
본 기술의 다양한 실시형태의 소정의 기능은 첨부된 청구범위에서 상세히 설명되어 있다. 본 발명의 원리를 이용하는 예시적인 실시형태를 설명하는 다음에 따르는 상세한 설명 및 첨부 도면을 참조함으로써, 본 기술의 기능과 이점을 더 잘 이해할 수 있으며, 도면에서:
도 1은 다양한 실시형태에 따라 예시적인 블록체인을 도시한 도면.
도 2a는 다양한 실시형태에 따라 스마트 계약의 보안을 개선하기 위한 예시적인 연산 환경을 도시한 도면.
도 2b는 다양한 실시형태에 따라 예시적인 풀 데이터베이스를 도시한 도면.
도 3은 다양한 실시형태에 따라 예시적인 스마트 계약 실행 모델을 도시한 도면.
도 4는 다양한 실시형태에 따라 스마트 계약의 보안을 개선하기 위한 예시적인 방법의 흐름도를 도시한 도면.
도 5는 다양한 실시형태에 따라 스마트 계약의 보안을 개선하기 위한 예시적인 방법의 흐름도를 도시한 도면.
도 6은 본 명세서에서 설명하는 임의의 실시형태가 구현될 수 있는 예시적인 컴퓨터 시스템의 블록도를 도시한 도면.
이제, 예시적인 실시형태를 상세히 참조하며, 그 예들이 첨부 도면에 도시되어 있다. 다음에 따르는 설명은, 달리 언급하지 않는 한 상이한 도면에서의 동일한 번호가 동일하거나 유사한 요소를 가리키는 첨부 도면을 참조하는 것이다. 본 발명에 부합하는 다음에 따르는 예시적인 실시형태들의 설명에 개시된 구현예는 본 발명에 부합하는 모든 구현예를 나타내는 것은 아니다. 대신, 이러한 구현예는 본 발명에 관한 양태에 부합하는 시스템 및 방법의 예일 뿐이다.
스마트 계약은, 프로세스 또는 워크플로우에 대한 합의서를 포함할 수 있으며, 당사자가 충족해야 할 조건과 의무를 설명할 수 있다. 동작 시, 이벤트 구동 상태 기계는 스마트 계약의 조건을 검사하는 데 사용될 수 있다. 당사자는 서명 및 취소 불가능한 기타 데이터를 공유 원장에 기록할 수 있다. 트랜잭션은, 스마트 계약을 호출하고 실행하도록 사용자에 의해 사용될 수 있다. 트랜잭션은, 사용자들 간의 또는 사용자와 금융 기관 간의 임의의 통신을 가리킨다. 예를 들어, 트랜잭션은, 상품 또는 서비스의 구매 또는 판매, 상품 또는 서비스의 제공 또는 반환, 지불 트랜잭션, 신용 트랜잭션, 또는 기타 유사한 상호작용을 가리킬 수 있다. 트랜잭션은, "트랜잭션 요청", "트레이드", 또는 "트레이딩"이라고도 할 수 있다.
일부 실시형태에서, 스마트 계약은 이더리움(Ethereum) 환경 내에서 구현, 배치, 및 실행되는 계약이다. 스마트 계약은 법적 계약이 디지털화된 것이다. 스마트 계약은, 이더리움 가상 기계 또는 다양한 블록체인 노드 내에서 배치, 저장, 및 실행된다. 스마트 계약은 데이터를 저장할 수 있다. 저장된 데이터는, 실제 계약에 대한 로직을 구현하는 데 필요한 정보, 사실, 연관성, 잔액, 및 다른 임의의 정보를 기록하는 데 사용될 수 있다. 스마트 계약은 객체 지향 클래스와 유사할 수 있다. 스마트 계약은, 다른 클래스의 객체를 생성하고 사용하도록 객체 지향 객체 등의 다른 스마트 계약을 호출할 수 있다.
블록체인 기술은, 스마트 계약의 트랜잭션 서비스와 같은 다양한 서비스의 최적화를 달성하는 데 사용되었다. 도 1은 다양한 실시형태에 따라 예시적인 블록체인을 도시한다. 도 1에 도시된 바와 같이, 블록체인(100)은 복수의 데이터 블록(102)을 포함할 수 있다. 각 블록은 암호 해시를 통해 이전 블록에 링크될 수 있다. 예를 들어, 블록 2는 블록 1의 해시(106)를 통해 블록 1에 링크되고, 블록 n은 블록 n-1의 다른 해시를 통해 블록 n-1에 링크된다. 각 블록(102)은 데이터 구조를 더 포함한다. 데이터 구조는, 예를 들어, 계좌 잔액, 지불 영수증과 같은 스마트 계약의 실행 결과에 대응하는 데이터(104)를 포함할 수 있다. 새로운 데이터가 제출되고 검증됨에 따라, 그 새로운 데이터를 포함하는 추가 블록이, 생성될 수 있고 이전 블록의 해시를 포함함으로써 블록체인(100)의 마지막 블록에 첨부될 수 있다.
일부 실시형태에서, 블록체인 노드는, 미확인 트랜잭션의 트랜잭션 요청을 수신하면, 블록체인 네트워크(예를 들어, 하나 이상의 노드)가 합의에 의해 미확인 트랜잭션을 검증하고 그 트랜잭션을 블록체인에 패킹하기 전에, (도 2b를 참조하여 더 상세히 후술하는) 메모리 풀에 트랜잭션 요청을 일시적으로 저장한다. 소정의 시점에서, 메모리 풀은 다수의 미확인 트랜잭션을 저장할 수 있다. 블록체인 합의 네트워크가 트랜잭션을 블록체인에 패킹하기 전에 메모리 풀의 미확인 트랜잭션을 수행하기 위한 순서는 결정되지 않는다. 트랜잭션의 순서는, 스마트 계약을 실행하는 최종 결과에 영향을 미치며, 이를 트랜잭션 주문 종속성(TOD)이라고 한다.
TOD 사항을 본 개시내용의 관점에서 더 설명한다. 일부 실시형태에서, 블록체인의 데이터 블록들은 스마트 계약과 관련된 트랜잭션들의 세트를 포함할 수 있다. 스마트 계약의 상태는, 블록체인의 각 업데이트 동안 여러 번 업데이트될 수 있다. 일례로, 블록체인은 현재 상태
Figure 112020086721202-pct00001
에 있고, 블록체인에 추가될 새로운 데이터 블록은, 동일한 스마트 계약을 각각 호출하는 (
Figure 112020086721202-pct00002
Figure 112020086721202-pct00003
)로 표현되는 두 개의 트랜잭션을 포함한다. 두 개의 트랜잭션의 실행 순서가 결정되지 않으므로 두 개의 트랜잭션의 각각이 스마트 계약의 실행을 호출할 때 스마트 계약의 정확한 상태를 결정할 수 없다. 예를 들어, 트랜잭션
Figure 112020086721202-pct00004
가 스마트 계약을 호출하면, 계약이 상태
Figure 112020086721202-pct00005
에 있는지를 또는 트랜잭션
Figure 112020086721202-pct00006
의 호출에 기초하여 계약이 실행되었고 이에 따라 계약의 상태가
Figure 112020086721202-pct00007
와 같이 변경되었는지를 결정할 수 없다. 다시 말하면, 트랜잭션
Figure 112020086721202-pct00008
가 스마트 계약을 호출하면, 스마트 계약은 상태
Figure 112020086721202-pct00009
또는 상태
Figure 112020086721202-pct00010
에 있을 수 있다. 마찬가지로, 트랜잭션
Figure 112020086721202-pct00011
가 동일한 스마트 계약을 호출하면, 스마트 계약은 상태
Figure 112020086721202-pct00012
에 있을 수 있고, 또는 계약이 트랜잭션
Figure 112020086721202-pct00013
의 호출에 따라 실행되었고 이에 따라 상태 천이
Figure 112020086721202-pct00014
를 완료하였다. 따라서, 두 개의 트랜잭션에 의해 호출되는 경우의 스마트 계약의 상태는, 트랜잭션
Figure 112020086721202-pct00015
Figure 112020086721202-pct00016
의 실행 순서에 의존한다.
트랜잭션이 스마트 계약을 호출하려 할 때의 스마트 계약의 초기 상태와 트랜잭션에 의한 호출로 인해 해당 실행이 발생할 때의 스마트 계약의 실제 상태 간에 차이가 있을 수 있다. 블록체인 노드(예를 들어, 블록체인 마이너)는, 이들 트랜잭션의 실행 순서를 결정할 수 있고, 따라서 블록의 업데이트 순서를 결정할 수 있다. 즉, 스마트 계약의 최종 상태는 블록체인 노드에 의한 호출 순서에 의존할 수 있다. 이것을 TOD라고 한다.
TOD는 스마트 계약의 실행에 보안 위험을 초래할 수 있다. 첫째, 스마트 계약의 동시 호출이 있는 경우, 스마트 계약의 호출이 악의적이지 않은 경우에도, 호출들이 서로 간섭할 수 있고 트랜잭션을 통해 계약을 호출하는 사용자들에게 예상치 않은 결과를 가져올 수 있다. 둘째, 악의적 사용자는 스마트 계약의 TOD를 활용하여 불공평한 이익을 얻고 심지어 다른 사용자들의 자산을 도용할 수 있다. 예를 들어, 판매자는, 구매자가 대폭 인상(hike) 전에 원래 가격으로 구매를 기대하면서 구매 트랜잭션을 제출하는 것과 동일한 기간에 판매 트랜잭션을 제출하여 가격을 대폭 인상할 수 있다. 판매 트랜잭션과 구매 트랜잭션이 블록체인의 동일한 블록에 추가되는 이러한 상황에서, 구매자는, 판매 트랜잭션이 구매 트랜잭션보다 먼저 실행되면 결국 대폭 인상된 가격을 지불하게 될 수 있다.
이더리움에 관하여, 일괄 경매와 사전 제출(pre-submission)과 같은 일부 방법이 TOD 문제를 해결하는 데 사용되었다. 일괄 경매 해결책은, TOD 문제를 해결하고 극초단타 트레이딩을 방지할 수 있지만, 단일 트랜잭션의 실행 효율이 희생된다. 한 트랜잭션이 실패하게 되면, 제출된 모든 트랜잭션이 실패하게 된다. 트랜잭션의 공식 실행 전에 트랜잭션을 사전 제출하면, TOD의 위험을 피할 수 있다. 그러나, 사전 제출 해결책은, 실행 전에 양측 당사자가 결과에 대한 합의에 도달해야 하므로, 실행 효율이 감소된다. 상술한 어떠한 해결책도 TOD 문제를 근본적으로 해결하지 못한다.
본 방법 및 시스템은, 적어도 TOD 문제를 완화시키는 기술적 해결책을 제공한다. 개시된 유형의 동작은, 컴퓨터 시스템에 필연적으로 의존하고 컴퓨터 시대 전에는 존재하지 않았던 기술을 나타낸다. 개시된 방법 및 시스템은, 또한, 블록체인 스마트 계약을 수행하는 보안을 향상시킴으로써 컴퓨터의 기능을 개선한다. 스마트 계약의 트랜잭션들이 블록체인 마이너에 의해 임의의 순서로 구현되는 경우에도, 본 시스템 및 방법은, 스마트 계약의 트랜잭션 호출이 예상 결과 또는 실행 예외를 귀환시킬 수 있게 한다. 예상치 않은 결과를 방지할 수 있다. 예를 들어, (구매자와 같은) 사용자가 어떤 가격으로 제품을 구매할 것을 요청하는 트랜잭션을 제출하면, 스마트 계약을 호출하는 구매 트랜잭션의 결과는, 요청된 가격으로 제품 구매를 달성하는 것일 수 있고 또는 다른 트랜잭션의 구현으로 인해 스마트 계약에서의 가격이 변경되었다면 실패를 귀환시키는 것일 수 있다. 따라서, 구매자의 트랜잭션은, 구매자에 의한 예상치 못한 변경된 가격에서 구현되지 않을 수 있다. 이에 따라, 판매자 측으로부터의 사기 트랜잭션 또는 트랜잭션 조작에 의해 실현되는 자산의 무인가 이전을 피할 수 있다.
도 2a는, 다양한 실시형태에 따라 예시적인 연산 환경, 예를 들어, 블록체인 상에서 스마트 계약을 수행하는 블록체인 네트워크(200)를 도시한다. 도 2a에 도시된 바와 같이, 블록체인 네트워크(200)는, 하나 이상의 네트워크를 통해 서로 간에 통신할 수 있는 복수의 노드(202), 풀 데이터베이스(230), 및 하나 이상의 사용자 연산 장치(240)를 포함할 수 있다. 예시적인 네트워크(220)(예를 들어, 인터넷을 통한 유선 또는 무선 접속 등)는, 하나 이상의 통신 프로토콜, 예를 들어, 셀룰러, WiFi, 및 다른 통신 프로토콜을 사용할 수 있다. 네트워크(220)는 피어-투-피어 및/또는 클라이언트/서버 모델에 기초할 수 있다. 일부 실시형태에서, 복수의 노드(202)는, 하나 이상의 프로세서(204) 및 하나 이상의 프로세서(204)에 결합된 하나 이상의 메모리(206)(예를 들어, 명령어를 저장하는 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체)를 각각 포함하는 연산 장치들을 포함할 수 있다. 노드(202)는 스마트 계약의 보안을 개선하기 위한 예시적인 시스템일 수 있다. 하나 이상의 메모리는, 시스템(예를 들어, 하나 이상의 프로세서)이 본 명세서에서 설명하는 동작을 수행하게 하도록 하나 이상의 프로세서에 의해 실행 가능한 명령어와 함께 구성될 수 있다. 일부 실시형태에서, 프로세서(204)는 하나 이상의 로직 회로로서 부분적으로 또는 전체적으로 구현될 수 있다. 일부 실시형태에서, 노드(202) 및 사용자 연산 장치(240)는, 다른 연산 자원을 포함할 수 있고 및/또는 (예를 들어, 하나 이상의 접속/네트워크를 통해) 다른 연산 자원에 대한 액세스를 가질 수 있다.
일부 실시형태에서, 노드(202)는 스마트 계약 실행 엔진(예를 들어, 이더리움 가상 기계)을 포함할 수 있다. 스마트 계약 실행 엔진은, 메모리(206) 상에 저장되고 프로세서(204)에 의해 실행 가능한 명령어 또는 프로그램 코드를 포함할 수 있다. 스마트 계약 실행 엔진이 프로세서(204)에 의해 실행되는 경우, 스마트 계약 실행 엔진은 스마트 계약의 파라미터를 적용하여 스마트 계약을 실행한다. 일부 실시형태에서, 사용자 연산 장치(204)는, 사용자 연산 장치(204) 상의 프로세서에 의해 실행되는 경우 사용자 연산 장치(204)가 사용자 연산 장치(240) 상의 호출 인터페이스를 렌더링하게 하는 명령어 또는 프로그램 코드를 저장할 수 있다. 호출 인터페이스는, 사용자가 스마트 계약을 호출하여 트랜잭션 요청을 구현할 수 있도록 구성된다. 호출 인터페이스는, 사용자에 의해 제출된 트랜잭션과 함께 보호 조건(예를 들어, 상품의 가격 조건)을 사용자가 입력할 수 있도록 구성될 수 있다. 스마트 계약 실행 엔진은, 스마트 계약의 상태가 사용자 입력에 의해 트랜잭션과 함께 제출된 보호 조건을 충족시키는지를 결정하도록 구성될 수 있다.
일부 실시형태에서, 풀 데이터베이스(230)는 분산 방식으로 복수의 노드(202)에 액세스할 수 있다. 예를 들어, 풀 데이터베이스(230)는 복수의 노드(202)의 메모리들(206)에 각각 저장될 수 있다. 도 2b를 참조하면, 다양한 실시형태에 따라 예시적인 풀 데이터베이스(230)가 도시되어 있다. 풀 데이터베이스(230)는, 사용자에 의해 운영되는 하나 이상의 사용자 연산 장치(240)에 의해 제출된 복수의 트랜잭션을 저장할 수 있다.
다시 도 2a를 참조하면, 일부 실시형태에서, 블록체인(100)은 복수의 노드(202) 상에 분산 방식으로 저장된다. 일부 실시형태에서, 노드들(202) 중 일부는, 합의를 통해 수신된 트랜잭션을 유효성 확인할 수 있고 유효성 확인된 트랜잭션을 다른 노드(202)에 전파할 수 있다. 이에 따라, 노드(202)는 유효성 확인된 트랜잭션에 따라 원장(208)을 업데이트할 수 있다. 노드들(202)은, 네트워크(220)를 통해 서로 통신하여 원장(208)에 관련된 데이터를 송신 및 수신할 수 있다. 원장(208)은, 유효성 확인되고 블록체인(100)에 추가된 데이터 블록(102)을 포함한다. 새로운 데이터 블록이 원장(208)에 추가될 때, 노드들(202)은 네트워크(220)를 통해 그 새로운 데이터 블록을 통신하거나 공유할 수 있다. 노드(202)의 메모리(206)는 블록체인(100)의 원장(208)의 적어도 일부를 저장할 수 있다.
일부 실시형태에서, 노드들(202) 중 일부는, 데이터 블록(102)에 포함시킬 트랜잭션을 선택하는 합의 노드들(예를 들어, 블록체인 마이너)일 수 있으며, 이렇게 함으로써, 노드들(202)은, 트랜잭션의 순서를 설정하는데, 예를 들어, 어떤 트랜잭션이 먼저 실행되고 어떤 트랜잭션이 나중에 구현되어야 하는지를 설정한다. 예를 들어, 사용자에 의해 운영되는 사용자 연산 장치(240)가 트랜잭션 요청을 제출하면, 트랜잭션은 풀 데이터베이스(230)에 일시적으로 저장될 수 있다. 노드(202)(예를 들어, 마이너 노드)는 트랜잭션을 실행할 시간을 선택할 수 있다. 트랜잭션의 결과는, 실행하도록 노드(202)가 결정하는 상대적인 순서 또는 타이밍에 의존할 수 있다. 간략화 및 간결함을 위해, 본 개시내용은 노드(202)의 단수 형태를 사용한다. 통상의 기술자는, 블록체인이 다수의 노드(202)를 가질 수 있고 하나 이상의 노드(202)가 하나의 트랜잭션을 처리하는 데 관련될 수 있음을 이해할 것이다. 단수 형태의 노드(202)는 하나 이상의 노드를 나타낼 수 있다.
노드(202)의 대안적으로서, (예를 들어, 하나 이상의 컴퓨터 또는 서버에 설치된) 전용 이더리움 가상 기계가 본 명세서에서 설명하는 다양한 단계를 수행할 수 있다. 이더리움 가상 기계는, 하나 이상의 프로세서 및 하나 이상의 프로세서에 결합된 하나 이상의 비일시적 컴퓨터 판독가능 메모리를 포함할 수 있고, 이러한 비일시적 컴퓨터 판독가능 메모리는, 이더리움 가상 기계가 본 명세서에서 설명하는 동작을 수행하게 하도록 하나 이상의 프로세서에 의해 실행 가능한 명령어와 함께 구성될 수 있다. 대안적으로, 이더리움 가상 기계 대신, 가상 기계 또는 소프트웨어의 다른 유형을 사용할 수 있다.
일부 실시형태에서, 노드(202)는 사용자 연산 장치(240)를 통해 사용자로부터 트랜잭션을 수신할 수 있다. 노드(202)는, 또한, 사용자로부터의 트랜잭션과 함께 보호 조건을 수신할 수 있다. 일부 실시형태에서, 사용자 연산 장치(240)의 호출 인터페이스는 사용자에게 사용자의 트랜잭션에 보호 조건을 추가하도록 지시할 수 있다. 대안적으로, 노드(202)는 사용자에 의해 제출된 트랜잭션의 내용에 기초하여 보호 조건을 생성할 수 있다. 보호 조건은, 상품 또는 서비스의 가격, 상품 또는 서비스의 양, 상품의 선적 시간, 또는 서비스의 전달 등일 수 있다. 일부 실시형태에서, 제출된 트랜잭션은 그룹에서의 실행을 위해 풀 데이터베이스(230)에 저장된다. 보호 조건과 연관된 트랜잭션은 스마트 계약을 호출하는 것을 포함할 수 있다. 예를 들어, 사용자는 스마트 계약을 호출하는 트랜잭션을 제출한 구매자이며, 스마트 계약은 10개 단위의 상품을 1달러 가격으로 구매할 것을 요청한다. 트랜잭션과 연관된 보호 조건은, 상품 가격이 1달러(또는 1달러 미만의 범위)이며 보호 조건이 충족되지 않으면 트랜잭션을 구현할 수 없다는 것이다.
TOD로 인한 예상치 않은 결과를 피하기 위해 보호 조건이 트랜잭션에 추가될 수 있다. 보호 조건은, 실행 조건, 실행 보호 조건, 또는 조건이라고도 할 수 있다. 일부 실시형태에서, 보호 조건에 대한 스마트 계약의 상태를 체크함으로써, 노드(202)는, 예를 들어, 예상 결과 또는 실패를 귀환시키도록 스마트 계약을 호출하는 트랜잭션을 구현할 수 있어서, 예상치 않은 결과, 예컨대, 예상치 않은 가격으로 상품을 구매하는 것을 피할 수 있다. 즉, 보호 조건은, 사용자가 예상치 않은 트랜잭션(예컨대, 대폭 인상된 트랜잭션)에 진입하는 것을 방지하도록 정의될 수 있다.
일부 실시형태에서, 노드(202)는 스마트 계약의 현재 상태를 결정할 수 있다. 예를 들어, 스마트 계약의 상태는 블록체인의 세계 상태라고도 할 수 있다. 블록체인의 세계 상태는, 블록체인에서 실행되는 모든 트랜잭션에 대하여 가장 업데이트된 상태를 반영할 수 있다. 예를 들어, 트랜잭션들의 세트가 구현되었을 때마다, 블록체인의 세계 상태가 그 구현을 반영하도록 업데이트될 수 있다. 노드(202)는 스마트 계약의 보호 상태 및 현재 상태에 기초하여 트랜잭션을 구현할 수 있다. 트랜잭션의 구현 결과에 기초하여, 노드(202)는 스마트 계약의 현재 상태를 (현재 상태와 동일하거나 상이할 수 있는) 다른 상태로 업데이트할 수 있다. 스마트 계약의 보호 조건과 현재 상태에 기초하는 트랜잭션의 구현은 다음과 같은 많은 시나리오를 포함할 수 있다.
일부 실시형태에서, 노드(202)는, 스마트 계약의 현재 상태 σ에서, 트랜잭션 T를 실행하기 전에 트랜잭션 보호 조건 c(예를 들어, 가격은 1달러)가 충족되는지를 결정할 수 있다. 스마트 계약의 현재 상태 σ에서, 보호 조건 c가 충족되지 않으면(
Figure 112019040780621-pct00017
), 다음에 따르는 등식 (1)에 표시된 바와 같이 트랜잭션 T를 폐기할 수 있다. 위 예에서, 스마트 계약의 현재 상태 σ에서, 상품의 가격이 1달러가 아니면(예를 들어, 이전 트랜잭션의 실행으로 인해 가격이 2달러로 대폭 인상되었다면), 조건 c가 충족되지 않으며, 이 트랜잭션을 폐기할 수 있다. 등식 (1)은, 규칙
Figure 112019040780621-pct00018
라고도 할 수 있다.
Figure 112019040780621-pct00019
(1)
여기서, TX와 T는 제출된 트랜잭션을 나타내고, c는 트랜잭션 TX 또는 T의 보호 조건을 나타내고,
Figure 112019040780621-pct00020
는 블록체인의 세계 상태를 나타내고,
Figure 112019040780621-pct00021
는 트랜잭션을 나타낸다. 일부 실시형태에서, 트랜잭션에서 특정된 보호 조건이 없다면, 트랜잭션에 보호 조건이 필요없다고 간주할 수 있다.
일부 실시형태에서, 트랜잭션에 의해 호출될 스마트 계약의 현재 상태 σ에서, 트랜잭션의 보호 조건 c가 충족되면(
Figure 112019040780621-pct00022
), 노드(202)는 값
Figure 112019040780621-pct00023
에 의해 스마트 계약의 잔액을 업데이트할 수 있다. 예를 들어, 노드(202)는 값
Figure 112019040780621-pct00024
를 잔액에 추가할 수 있고 또는 잔액으로부터 감액할 수 있다. 값
Figure 112019040780621-pct00025
는, 트랜잭션의 내용에 기초하여 결정되는 값일 수 있다. 일부 실시형태에서, 스마트 계약은, 블록체인 네트워크(200)에 저장된 인벤토리, 예를 들어, 풀 데이터베이스(230), 또는 노드들(202) 중 하나 이상과 연관될 수 있다. 인벤토리는, 트랜잭션의 항목들의 수, 이들의 가격, 및 항목들의 다른 관련 정보를 저장할 수 있다. 스마트 계약의 잔액은 항목들 중 하나의 항목의 수를 가리킬 수 있다. 따라서, 스마트 계약의 현재 상태가 트랜잭션의 조건을 충족시키면, 노드(202)는, 스마트 계약의 잔액(예를 들어, 인벤토리화된 항목의 수)를 업데이트하여 트랜잭션에 의해 구매 또는 판매될 항목의 수를 일시적으로 보유할 수 있다. 위 예에서, 스마트 계약의 현재 상태 σ에서, 상품의 가격이 1달러이면, 트랜잭션의 보호 조건 c가 충족되고, 노드(202)는, 잔액으로부터 구매될 상품의 10개 단위를 감액함으로써 스마트 계약의 잔액을 업데이트할 수 있다.
다른 일례로, 판매자가 스마트 계약 하에 상품을 판매하기 위한 트랜잭션(예를 들어, 상품의 15개 단위)을 제출하고 스마트 계약의 현재 상태가 판매자의 트랜잭션과 연관된 보호 조건을 충족시키면(예를 들어, 계약 가격이 트랜잭션의 판매 가격과 일치하면), 노드(202)는, 스마트 계약의 잔액에 상품의 15개 단위를 추가함으로써 판매될 상품의 수에 기초하여 스마트 계약의 잔액을 업데이트할 수 있다. 일부 실시형태에서, 노드(202)는 또한 판매자 또는 구매자의 잔액을 업데이트할 수 있다. 예를 들어, 노드(202)는, 구매될 상품의 수를 구매자의 잔액에 추가할 수 있고, 판매자의 잔액으로부터 판매될 상품의 수를 감소시킬 수 있다.
일부 실시형태에서, 스마트 계약의 잔액의 업데이트가 성공하면, 노드(202)는 스마트 계약의 현재 상태 σ를 천이 상태
Figure 112019040780621-pct00026
로 변경할 수 있다. 예를 들어, 블록체인의 세계 상태는, 상태 σ로부터 천이 상태
Figure 112019040780621-pct00027
로 변경될 수 있다. 스마트 계약의 잔액의 업데이트가 실패하면(예를 들어, 구매될 상품의 수를 제공하도록 스마트 계약의 충분한 인벤토리가 없으면), 트랜잭션은 진행될 수 없고, 노드(202)가 트랜잭션을 폐기할 수 있다. 스마트 계약의 상태는 상태 σ에서 유지될 수 있다.
일부 실시형태에서, 스마트 계약 잔액의 업데이트가 성공하면, 노드(202)는 스마트 계약의 대응하는 코드를 호출하거나 호출함으로써 트랜잭션을 실행할 수 있다. 예를 들어, 노드(202)는 풀 데이터베이스(230)에 일시적으로 저장된 트랜잭션들의 세트를 실행할 수 있으며, 트랜잭션들의 세트는 스마트 계약의 상태에 대해 체크된 보호 조건을 갖는 트랜잭션을 포함한다. 일부 실시형태에서, 그룹에서 실행될 트랜잭션들 각각은 보호 조건을 가질 수 있다. 일부 실시형태에서, 그룹 내의 일부 트랜잭션은 보호 조건을 갖지 않을 수 있고, 노드(202)는 이들 트랜잭션이 전술한 바와 같이 조건 체크를 통과했다고 가정한다. 이러한 방식으로, 블록체인 네트워크(200) 또는 노드(202)는 보호 조건을 갖지 않을 수 있는 기존의 스마트 계약을 실행할 수 있다.
일부 실시형태에서, 스마트 계약을 실행할 때, 트랜잭션과 연관된 파라미터
Figure 112019040780621-pct00028
는 스마트 계약의 하나 이상의 프로세스 또는 함수에 전달될 수 있고, 스마트 계약의 하나 이상의 프로세스 또는 함수가 실행될 수 있다. 스마트 계약의 실행이 완료될 수 있다면, 노드(202)는 스마트 계약의 상태를 천이 상태
Figure 112019040780621-pct00029
로부터 종료 상태
Figure 112019040780621-pct00030
로 변경할 수 있다. 따라서, 트랜잭션의 구현이 완료되었다. 이러한 프로세스는 다음에 따르는 등식 (2)에 의해 표현될 수 있다.
Figure 112019040780621-pct00031
(2)
여기서, TX와 T는 제출된 트랜잭션을 나타내고, c는 트랜잭션 TX 또는 T의 보호 조건을 나타내고,
Figure 112019040780621-pct00032
는 블록체인의 스마트 계약의 어드레스를 나타내고, M은 스마트 계약 실행 코드 또는 스마트 계약 실행 코드의 일부를 나타내고,
Figure 112019040780621-pct00033
은 스마트 계약 인보케이션 파라미터를 나타내고,
Figure 112019040780621-pct00034
은 스마트 계약의 계좌 잔액을 나타내고,
Figure 112019040780621-pct00035
는 상태
Figure 112019040780621-pct00036
에서 어드레스
Figure 112019040780621-pct00037
에서의 대응하는 스마트 계약 코드를 나타내고,
Figure 112019040780621-pct00038
은 상태
Figure 112019040780621-pct00039
에서 어드레스
Figure 112019040780621-pct00040
에서의 스마트 계약의 계좌 잔액을 나타내고,
Figure 112019040780621-pct00041
, 및
Figure 112019040780621-pct00042
은 블록체인의 3개의 세계 상태를 나타내고,
Figure 112019040780621-pct00043
는 할당값을 나타내고,
Figure 112019040780621-pct00044
Figure 112019040780621-pct00045
는 변환을 나타내고,
Figure 112019040780621-pct00046
은 스마트 계약 실행 코드 M의 실행을 위한 호출 스택을 나타낸다.
일부 실시형태에서, 스마트 계약의 천이 상태
Figure 112019040780621-pct00047
에서, 스마트 계약의 실행이 완료될 수 없고 실행 예외가 발생하면, 노드(202)는 스마트 계약의 천이 상태
Figure 112019040780621-pct00048
을 상태
Figure 112019040780621-pct00049
로 복귀시킬 수 있다. 예를 들어, 블록체인의 세계 상태는, 천이 상태
Figure 112019040780621-pct00050
로부터 초기 상태
Figure 112019040780621-pct00051
로 복귀될 수 있다. 실행 예외는, 실행 프로세스에서 에러가 있는 경우 또는 현재 조건이 충족되는 경우 발생할 수 있다. 예를 들어, 실행은, 미리 정해진 시간 이상으로 실행되었고 계속 실행 중이며(실행 타임아웃이라고도 함), 또는 구매될 상품의 수가 스마트 계약의 인벤토리보다 많다. 일부 실시형태에서, 노드(202)는, 트랜잭션의 실행이 실패하였음을 나타내는 실행 예외
Figure 112019040780621-pct00052
를 귀환시킬 수 있다. 이 상황을 다음에 따르는 등식 (3)에서 설명할 수 있다.
Figure 112019040780621-pct00053
(3)
여기서, TX와 T는 제출된 트랜잭션을 나타내고, c는 트랜잭션 TX 또는 T의 보호 조건을 나타내고,
Figure 112019040780621-pct00054
는 블록체인의 스마트 계약의 어드레스를 나타내고, M은 기계 코드이며 스마트 계약 실행 코드를 나타내고,
Figure 112019040780621-pct00055
은 스마트 계약 인보케이션 파라미터를 나타내고,
Figure 112019040780621-pct00056
은 스마트 계약의 계좌 잔액을 나타내고,
Figure 112019040780621-pct00057
는 상태
Figure 112019040780621-pct00058
에서 어드레스
Figure 112019040780621-pct00059
에서의 대응하는 스마트 계약 코드를 나타내고,
Figure 112019040780621-pct00060
은 상태
Figure 112019040780621-pct00061
에서 어드레스
Figure 112019040780621-pct00062
에서의 스마트 계약의 계좌 잔액을 나타내고,
Figure 112019040780621-pct00063
, 및
Figure 112019040780621-pct00064
은 블록체인의 3개의 세계 상태를 나타내고,
Figure 112019040780621-pct00065
는 할당값을 나타내고,
Figure 112019040780621-pct00066
Figure 112019040780621-pct00067
는 변환을 나타내고,
Figure 112019040780621-pct00068
은 스마트 계약 실행 코드 M의 실행을 위한 호출 스택을 나타내고,
Figure 112019040780621-pct00069
은 트랜잭션의 실행 예외를 나타낸다.
등식 (1) 내지 (3)에서 설명한 예시적인 기법은, 트랜잭션을 제출하는 당사자가 트랜잭션의 예상 출력 또는 실패를 얻는 것을 보장한다. 구매자는, 자신이 구매 주문서를 발행했을 때 합의한 가격 이상을 지불하지 않을 것이라고 확신할 수 있다. 또한, 이 기법은 이전 버전과 호환될 수 있다. 기존의 스마트 계약에서, 보호 조건은 "참"을 디폴트로 하도록 설정될 수 있으므로 기존의 스마트 계약 코드를 변경하여 등식 (1) 내지 (3)에 설명된 기법에 적용할 필요가 없다.
도 3을 참조하면, 다양한 실시형태에 따라 예시적인 스마트 계약 실행 모델(300)이 도시되어 있다. 예시적인 스마트 계약 실행 모델(300)은, 도 2a와 도 2b를 참조하여 전술한 기법의 애플리케이션일 수 있으며, 블록체인 네트워크(200) 내의 하나 이상의 엔티티, 예를 들어, 노드(202), 사용자 연산 장치(240), 및 풀 데이터베이스(230)에 의해 구현될 수 있다. 도 3에 도시된 바와 같이, 판매자는 트랜잭션 "TxB"를 제출하였고, 구매자는 실질적으로 동일한 기간 내에 트랜잭션 "TxA"를 제출하였다. 기간은, 블록체인이 유효성 검사를 위해 트랜잭션 제출을 수락하는 기간일 수 있다. 일부 실시형태에서, 두 개의 트랜잭션은 풀 데이터베이스(230)에 일시적으로 저장되었다. 트랜잭션 "TxA"는, 상품의 가격이 $5로 고정된다는 보호 조건("c= 'p==5'") 하에서 스마트 계약 "X"의 "구매" 프로세스를 호출하여 $5의 가격으로 상품의 두 개 단위(트랜잭션 "TxA"에서 "g=2"로 표시)를 구매하는 것이다. 반면, 판매자가 제출한 트랜잭션 "TxB"는, 스마트 계약 "X"의 "판매" 프로세스를 실행하여 $6의 가격("p=6")으로 상품의 모든 단위(예를 들어, "g=50"으로 표현되는 50개 단위)를 판매하는 것이다.
구매자는, 판매자의 트랜잭션 "TxB"의 존재를 모르고서, 현재 계약 가격이 $5이라는 것을 알게 되었으며 이에 따라 트랜잭션 "TxA"를 $5의 가격으로 완료할 것으로 예상하였다. 구매자의 트랜잭션 "TxA"가 먼저 실행되면, 트랜잭션 "TxA"에 대한 보호 조건이 충족되고, 트랜잭션 "TxA"가 정상적으로 구현될 수 있다. 그러나, 판매자의 트랜잭션 "TxB"가 먼저 실행되면, 스마트 계약 "X"의 상품의 모든 단위의 가격이 $6로 증가하고 스마트 계약 "X"의 상태가 새로운 상태로 변환된다. 따라서, 스마트 계약 "X"의 새로운 상태에서 구매자의 트랜잭션 "TxA"를 후속 실행하면, 구매자의 트랜잭션 "TxA"의 보호 조건인 "c= 'p==5'"이 충족되지 않으므로, 구매자와 판매자가 가격 합의에 도달하지 않았기 때문에 구매자의 트랜잭션 "TxA"가 종료된다.
이더리움에서의 일괄 경매 및 사전 제출 방법에 비해, 본 조건부 보호 기반 트랜잭션 실행 메커니즘은, 각 트랜잭션에 대한 실행 조건을 설정함으로써 트랜잭션 간의 순서 의존성을 피할 수 있으므로, 개별 트랜잭션의 실행 효율에 영향을 주지 않는다. 또한, 개시된 시스템 및 방법은 사전 제출 방법에 의해 초래되는 다수의 실행 단계로 인한 추가 비용을 방지한다.
도 4는 다양한 실시형태에 따라 스마트 계약 실행을 위한 예시적인 방법(400)의 흐름도를 도시한다. 방법(400)은, 예를 들어, 도 2a의 블록체인 네트워크(200)의 하나 이상의 구성요소를 포함하는 시스템에 의해 구현될 수 있다. 예시적인 방법(400)은, 하나 이상의 노드(202), 사용자 연산 장치(240), 및/또는 이더리움 가상 기계에 의해 구현될 수 있다. 예시적인 방법(400)은, 노드(202)의 하나 이상의 구성요소(예를 들어, 프로세서, 프로세스와 메모리 조합, 하나 이상의 로직 회로 등)에 의해 구현될 수 있다. 방법(400)은 환경(200)과 유사한 다수의 시스템에 의해 구현될 수 있다. 이하 제시되는 방법(400)의 동작은 예시적인 것이다. 구현예에 따라, 예시적인 방법(400)은 다양한 순서 또는 병렬로 수행되는 추가 단계들, 더 적은 단계들, 또는 대체 단계들을 포함할 수 있다.
블록(402)은 스마트 계약을 각각 호출하는 제1 트랜잭션(예컨대, TxA)과 제2 트랜잭션(예를 들어, TxB)을 취득하는 단계를 포함하며, 제1 트랜잭션은 보호 조건과 연관된다. 일부 실시형태에서, 제2 트랜잭션을 실행함으로써, 스마트 계약의 현재 상태(예를 들어, 트랜잭션 항목의 가격)를 변경할 수 있다. 일부 실시형태에서, 보호 조건은 제1 트랜잭션에 기초하여 자동 생성된다. 일부 실시형태에서, 보호 조건은 제1 트랜잭션을 제출한 연산 장치에 의해 제출된다. 일부 실시형태에서, 예를 들어, 풀 데이터베이스에서 제1 및 제2 트랜잭션이 수신될 때 제1 및 제2 트랜잭션을 실행하는 순서가 있을 수도 있고 없을 수도 있다. 제2 트랜잭션은 보호 조건을 가질 수도 있고 갖지 않을 수도 있다.
일부 실시형태에서, 현재 상태는 스마트 계약의 트랜잭션 항목의 현재 가격을 포함하고, 보호 조건은 트랜잭션 항목의 가격 범위(예를 들어, 미리 설정된 가격), 양 범위, 또는 시간 범위와 연관된다. 예를 들어, 제1 트랜잭션은 가격 범위에서 트랜잭션 항목의 구매 주문과 연관되고, 제2 트랜잭션은 트랜잭션 항목을 판매하는 판매 주문과 연관된다.
일부 실시형태에서, 블록체인 노드들(예를 들어, 노드(202))은, 미확인 트랜잭션들을 수집하여 풀 데이터베이스에 주기적으로(예를 들어 10분마다) 수집하도록 구성되고, 제1 트랜잭션과 제2 트랜잭션을 취득하는 단계는, 풀 데이터베이스 내의 미확인 트랜잭션들의 풀로부터 제1 트랜잭션과 제2 트랜잭션을 취득하는 단계를 포함한다. 미확인 트랜잭션을 수집하고 저장하는 노드는, 반드시 풀 데이터베이스로부터 미확인 트랜잭션을 취득하는 노드일 필요는 없다. 미확인 트랜잭션들의 풀은, 실행 순서가 없으며, 풀 데이터베이스로부터 취득된 후, 다음에 따르는 단계들을 수행하여, 실행 순서를 결정할 수 있다.
일부 실시형태에서, 블록체인 노드들(예를 들어, 노드 (202)) 각각은 블록체인의 복사본을 원장으로서 저장하기 위한 메모리를 포함하고, 데이터 블록들의 블록체인을 유지하기 위해, 블록체인 노드는, 새로운 데이터 블록 또는 다른 새로운 데이터 블록이 블록체인에 추가될 때 원장을 업데이트하도록 구성된다.
블록(404)은, 제2 트랜잭션을 실행하고 스마트 계약의 현재 상태를 업데이트하는 단계를 포함한다. 제1 및 제2 트랜잭션은 실행을 위해 랜덤하게 선택될 수 있다. 이 블록은, 제2 트랜잭션이 먼저 선택되는 시나리오를 캡처한다.
대안적으로, 일부 실시형태에서, 제1 트랜잭션은 제2 트랜잭션보다 먼저 실행될 수 있고, 스마트 계약의 현재 상태가 업데이트된다.
블록(406)은 스마트 계약의 업데이트된 현재 상태가 보호 조건을 충족시키는지를 결정하는 단계를 포함한다.
블록(407)은, 업데이트된 현재 상태가 보호 조건을 충족시키는 것으로 결정한 것에 응답하여, 제1 트랜잭션을 실행하고, 블록체인에 추가하기 위한 새로운 데이터 블록에 제2 트랜잭션과 제1 트랜잭션을 기록하는 단계를 포함한다.
블록(408)은, 업데이트된 현재 상태가 보호 조건을 충족시키지 못한다는 결정에 응답하여, 제1 트랜잭션을 실행하지 않고 블록체인에 추가하기 위한 다른 새로운 데이터 블록에 제2 트랜잭션을 기록한다. 일부 실시형태에서, 블록(408)은, 업데이트된 현재 상태가 보호 조건을 충족시키지 못한다는 결정에 응답하여, 제1 트랜잭션을 제출한 연산 장치에 실행 예외를 귀환시키는 단계를 더 포함한다.
일부 실시형태에서, 현재 상태는, 이전의 트랜잭션(예를 들어, 제2 트랜잭션)으로 한정되지 않는 임의의 인자에 의해 변경될 수 있다. 예를 들어, 스마트 계약의 보안을 개선하기 위한 컴퓨터 구현 방법은, 스마트 계약을 호출하는 제1 트랜잭션을 취득하는 단계로서, 제1 트랜잭션이 보호 조건과 연관된, 상기 취득하는 단계; 스마트 계약의 현재 상태가 보호 조건을 충족시키는지를 결정하는 단계; 현재 상태가 보호 조건을 충족시킨다는 결정에 응답하여, 제1 트랜잭션을 실행하고, 제1 트랜잭션을 블록체인에 추가할 데이터 블록에 기록하는 단계; 및 현재 상태가 보호 조건을 충족시키지 못한다는 결정에 응답하여, 제1 트랜잭션을 실행하지 않는 단계를 포함한다.
도 5는 다양한 실시형태에 따라 트랜잭션을 구현하기 위한 예시적인 방법(500)의 흐름도를 도시한다. 방법(500)은, 예를 들어, 도 2a의 블록체인 네트워크(200)를 포함하는 다양한 시스템에서 구현될 수 있다. 예시적인 방법(500)은 노드(202) 및 사용자 연산 장치(240)에 의해 구현될 수 있다. 방법(500)은 블록체인 네트워크(200)와 유사한 다수의 시스템에 의해 구현될 수 있다. 방법(500)의 동작들은 도 4의 블록들(406 및 407)의 실시형태일 수 있다. 이하 제시되는 방법(500)의 동작들은 예시적인 것이다. 구현예에 따라, 예시적인 방법(500)은, 다양한 순서로 또는 병렬로 수행되는 추가 단계, 더 적은 단계, 또는 대체 단계를 포함할 수 있다.
블록(502)에서는, 스마트 계약의 현재 상태(제1 상태라고도 함)가 트랜잭션의 조건(예를 들어, 도 4의 블록(402)에서 수신된 트랜잭션의 조건)을 충족시키는지를 결정할 수 있다. 현재 상태는 도 4의 블록(406)에서의 "업데이트된 현재 상태"일 수 있다. 예를 들어, 조건은, 상품의 가격이 트랜잭션에서 정의된 값으로 고정된 것일 수 있다. 블록(504)에서, 스마트 계약의 제1 상태가 트랜잭션의 조건을 충족시키지 못한다고 결정되면, 트랜잭션은 중단될 수 있다. 예를 들어 스마트 계약의 제1 상태에서, 상품 가격이 트랜잭션에서 정의된 가격과는 다른 값으로 변경되었다면, 조건이 충족되지 않았으며 트랜잭션이 중단될 수 있다.
블록(506)에서, 스마트 계약의 제1 상태가 트랜잭션의 조건을 충족시키는 것으로 결정되면, 스마트 계약의 잔액이 업데이트될 수 있다. 블록(508)에서는, 스마트 계약의 잔액의 업데이트가 성공적이었는지를 결정할 수 있다. 업데이트가 실패하면, 블록(504)에 나타낸 바와 같이, 트랜잭션이 중단될 수 있다. 블록(510)에서, 스마트 계약의 잔액의 업데이트가 성공하면, 스마트 계약의 제1 상태가 제2 상태로 변경될 수 있다. 블록(512)에서, 트랜잭션은 트랜잭션과 연관된 파라미터들에 기초하여 스마트 계약을 실행함으로써 구현될 수 있다. 예를 들어, 트랜잭션과 연관된 파라미터의 값은 스마트 계약의 하나 이상의 프로세스에 전달될 수 있으며, 하나 이상의 프로세스가 실행될 수 있다.
블록(514)에서는, 스마트 계약의 실행이 성공했는지를 결정한다. 블록(516)에서, 스마트 계약의 실행이 성공했다고 결정되면, 스마트 계약의 상태는 제3 상태로 변경될 수 있다. 트랜잭션은 성공적으로 구현되었다. 블록(518)에서, 스마트 계약의 실행이 실패하면, 실행 예외가 귀환될 수 있다. 블록(520)에서, 스마트 계약의 상태는 다시 제1 상태로 변경될 수 있다. 일부 실시형태에서, 도 4의 블록(407)은 도 5의 블록(506 내지 516)을 포함할 수 있다.
본 명세서에서 설명하는 기술은 하나 이상의 전용 연산 장치에 의해 구현된다. 전용 연산 장치는, 기술을 구현하기 위해 유선 및/또는 프로그램 로직을 통합하는 데스크톱 컴퓨터 시스템, 서버 컴퓨터 시스템, 휴대용 컴퓨터 시스템, 핸드헬드 장치, 네트워킹 장치, 또는 기술을 구현하도록 유선 및/또는 프로그램 로직을 포함하는 다른 임의의 장치 또는 장치들의 조합일 수 있다.
도 6은 본 명세서에서 설명하는 임의의 실시형태가 구현될 수 있는 예시적인 컴퓨터 시스템(600)을 도시하는 블록도이다. 시스템(600)은, 도 2a를 참조하여 전술한 노드(202) 또는 사용자 연산 장치(240)에 대응할 수 있다. 컴퓨터 시스템(600)은, 정보를 통신하기 위한 버스(602) 또는 다른 통신 메커니즘, 및 정보를 처리하도록 버스(602)에 결합된 하나 이상의 하드웨어 프로세서(604)를 포함한다. 하드웨어 프로세서(들)(604)는, 예를 들어, 하나 이상의 범용 마이크로프로세서일 수 있다.
컴퓨터 시스템(600)은, 또한, 프로세서(들)(604)에 의해 실행될 정보와 명령어를 저장하도록 버스(602)에 결합된, RAM, 캐시, 및/또는 다른 동적 저장 장치와 같은 메인 메모리(606)를 포함한다. 메인 메모리(606)는, 또한, 프로세서(들)(604)에 의해 실행될 명령어의 실행 동안 임시 변수 또는 다른 중간 정보를 저장하기 위해 사용될 수 있다. 이러한 명령어는, 프로세서(들)(604)가 액세스할 수 있는 저장 매체에 저장되는 경우, 컴퓨터 시스템(600)을 명령어에서 특정된 동작을 수행하도록 맞춤화된 전용 기계로 되게 한다. 컴퓨터 시스템(600)은, 프로세서(604)에 대한 정적 정보와 명령어를 저장하도록 버스(602)에 결합된 ROM(608) 또는 다른 정적 저장 장치를 더 포함한다. 정보와 명령어를 저장하도록 자기 디스크, 광 디스크, 또는 USB 섬 드라이브(플래시 드라이브) 등의 저장 장치(610)가 제공되어 버스(602)에 결합된다.
컴퓨터 시스템(600)은, 컴퓨터 시스템과 함께 컴퓨터 시스템(600)을 전용 기계로 되게 하거나 전용 기계로 되도록 프로그래밍하는 맞춤형 유선 로직, 하나 이상의 ASIC 또는 FPGA, 펌웨어, 및/또는 프로그램 로직을 사용하여 본 명세서에서 설명하는 기술을 구현할 수 있다. 일 실시형태에 따르면, 본 명세서에서 설명하는 동작, 방법, 및 프로세스는, 메인 메모리(606)에 포함된 하나 이상의 명령어의 하나 이상의 시퀀스를 실행하는 프로세서(들)(604)에 응답하여 컴퓨터 시스템(600)에 의해 수행된다. 이러한 명령어는, 저장 장치(610) 등의 다른 저장 매체로부터 메인 메모리(606)로 판독될 수 있다. 메인 메모리(606)에 포함된 명령어들의 시퀀스들의 실행은, 프로세서(들)(604)가 본 명세서에서 설명하는 프로세스 단계들을 수행하게 한다. 대체 실시형태에서는, 소프트웨어 명령어 대신 또는 소프트웨어 명령어와 함께 유선 회로를 사용할 수 있다.
프로세서(들)(604)는 전술한 프로세서(204)에 대응할 수 있고, 메인 메모리(606), ROM(608), 및/또는 저장 장치(610)는 전술한 메모리(206)에 대응할 수 있다. 메인 메모리(606), ROM(608), 및/또는 저장 장치(610)는 비일시적 저장 매체를 포함할 수 있다. "비일시적 매체"라는 용어 및 이와 유사한 용어는, 본 명세서에서 사용되는 바와 같이, 기계가 특정 방식으로 동작하게 하는 데이터 및/또는 명령어를 저장하는 매체를 가리키며, 매체는 일시적 신호를 배제한다. 이러한 비일시적 매체는 비휘발성 매체 및/또는 휘발성 매체를 포함할 수 있다. 비휘발성 매체는, 예를 들어, 저장 장치(610)와 같은 광학 또는 자기 디스크를 포함한다. 휘발성 매체는 메인 메모리(606)와 같은 동적 메모리를 포함한다. 비일시적 매체의 일반적인 형태는, 예를 들어, 플로피 디스크, 플렉시블 디스크, 하드 디스크, 솔리드 스테이트 드라이브, 자기 테이프, 또는 다른 임의의 자기 데이터 저장 매체, CD-ROM, 다른 임의의 광 데이터 저장 매체, 구멍 패턴이 있는 임의의 물리적 매체, RAM, PROM, EPROM, FLASH-EPROM, NVRAM, 다른 임의의 메모리 칩이나 카트리지, 및 이들의 네트워크화된 버전을 포함할 수 있다.
컴퓨터 시스템(600)은, 또한, 버스(602)에 결합된 네트워크 인터페이스/네트워크 포트(618)를 포함한다. 네트워크 인터페이스/네트워크 포트(618)는, 하나 이상의 로컬 네트워크에 접속된 하나 이상의 네트워크 링크에 양방향 데이터 통신 결합을 제공한다. 예를 들어, 네트워크 인터페이스/네트워크 포트(618)는, 종합 정보 통신망(ISDN) 카드, 케이블 모뎀, 위성 모뎀 또는 대응하는 유형의 전화선에 데이터 통신 접속을 제공하는 모뎀일 수 있다. 다른 일례로, 네트워크 인터페이스/네트워크 포트(618)는, 호환성 LAN(또는 WAN과 통신하기 위한 WAN 구성요소)에 데이터 통신 접속을 제공하기 위한 근거리 통신망(LAN) 카드일 수 있다. 무선 링크도 구현될 수 있다. 이러한 임의의 구현예에서, 네트워크 인터페이스/네트워크 포트(618)는, 다양한 유형의 정보를 나타내는 디지털 데이터 스트림을 반송하는 전기 신호, 전자기 신호, 또는 광 신호를 전송 및 수신한다.
컴퓨터 시스템(600)은, 네트워크(들), 네트워크 링크, 및 네트워크 인터페이스/네트워크 포트(618)를 통해 메시지를 전송할 수 있고 프로그램 코드를 포함하는 데이터를 수신할 수 있다. 인터넷 예에서, 서버는, 인터넷, ISP, 로컬 네트워크, 및 네트워크 인터페이스/네트워크 포트(618)를 통해 애플리케이션 프로그램에 대한 요청 코드를 송신할 수 있다. 수신된 코드는, 수신될 때 및/또는 나중에 실행하도록 저장 장치(610) 또는 다른 비휘발성 저장 장치에 저장될 때 프로세서(604)에 의해 실행될 수 있다.
전술한 섹션들에서 설명한 기법, 메커니즘, 해결책, 프로세스, 방법, 및 알고리즘의 각각은, 하나 이상의 컴퓨터 시스템 또는 컴퓨터 하드웨어를 포함하는 컴퓨터 프로세서에 의해 실행되는 코드 모듈로 구체화될 수 있고, 이러한 코드 모듈에 의해 완전히 또는 부분적으로 자동화될 수 있다. 프로세스와 알고리즘은 애플리케이션 특정 회로에서 부분적으로 또는 전체적으로 구현될 수 있다. 일부 실시형태에서, 프로세서(들)(604)는 전술한 하나 이상의 로직 회로로서 부분적으로 또는 완전히 구현될 수 있다.
전술한 다양한 특징과 프로세스는, 서로 독립적으로 사용될 수 있고, 또는 다양한 방식으로 결합될 수 있다. 모든 가능한 조합과 부조합은 본 개시내용의 범위 내에 속한다. 또한, 일부 구현예에서는 소정의 방법 또는 프로세스 블록이 생략될 수 있다. 또한, 본 명세서에서 설명하는 방법과 프로세스는 임의의 특정 시퀀스로 한정되지 않으며, 이에 관련된 블록 또는 상태는 적절한 다른 시퀀스로 수행될 수 있다. 예를 들어, 설명한 블록 또는 상태는 특정하게 개시된 순서와는 다른 순서로 수행될 수 있고, 또는 다수의 블록 또는 상태가 단일 블록 또는 상태로 결합될 수 있다. 예시적인 블록들 또는 상태들은, 직렬, 병렬, 또는 다른 임의의 방식으로 수행될 수 있다. 블록 또는 상태는, 개시된 예시적인 실시형태에 추가되거나 이러한 실시형태로부터 제거될 수 있다. 본 명세서에 설명하는 예시적인 시스템과 구성요소는 설명과는 다르게 구성될 수 있다. 예를 들어, 개시된 예시적인 실시형태와 비교하여 요소를 추가, 제거, 또는 재배치할 수 있다.
본 명세서에 설명하는 예시적인 방법의 다양한 동작은 알고리즘에 의해 적어도 부분적으로 수행될 수 있다. 알고리즘은, 메모리(예를 들어, 전술한 비일시적 컴퓨터 판독가능 저장 매체)에 저장된 프로그램 코드 또는 명령어에 포함될 수 있다. 이러한 알고리즘은 기계 학습 알고리즘을 포함할 수 있다. 일부 실시형태에서, 기계 학습 알고리즘은, 기능을 수행하도록 컴퓨터를 명시적으로 프로그래밍하지 않을 수도 있지만, 그 기능을 수행하는 예측 모델을 형성하도록 훈련 데이터로부터 학습할 수 있다.
본 명세서에서 설명하는 예시적인 방법들의 다양한 동작은, 관련 동작을 수행하도록 (예를 들어, 소프트웨어에 의해) 일시적으로 구성된 또는 영구적으로 구성된 하나 이상의 프로세서에 의해 적어도 부분적으로 수행될 수 있다. 일시적으로 또는 영구적으로 구성되어 있는지 여부에 관계없이, 이러한 프로세서는, 본 명세서에서 설명하는 하나 이상의 동작 또는 기능을 수행하도록 동작하는 프로세서 구현 엔진을 구성할 수 있다.
유사하게, 본 명세서에서 설명하는 방법들은 적어도 부분적으로 프로세서로 구현될 수 있으며, 특정 프로세서 또는 프로세서들은 하드웨어의 일례이다. 예를 들어, 방법의 동작들 중 적어도 일부는 하나 이상의 프로세서 또는 프로세서 구현 엔진에 의해 수행될 수 있다. 또한, 하나 이상의 프로세서는, "클라우드 연산" 환경 또는 "서비스형 소프트웨어"(SaaS)에서의 관련 동작의 성능을 지원하도록 또한 동작할 수 있다. 예를 들어, 적어도 일부 동작은 (프로세서를 포함하는 기계의 예로서) 컴퓨터들의 그룹에 의해 수행될 수 있으며, 이들 동작은, 네트워크(예를 들어, 인터넷)를 통해 및 하나 이상의 적절한 인터페이스(예를 들어, 애플리케이션 프로그램 인터페이스(Application Program Interface: API))를 통해 액세스될 수 있다.
소정의 동작의 성능은, 프로세서들 간에 분산될 수 있어서, 단일 시스템 내에 상주할 뿐만 아니라 다수의 기계에 걸쳐 배치될 수도 있다. 일부 예시적인 실시형태에서, 프로세서 또는 프로세서 구현 엔진은, 단일 지리적 위치에(예를 들어, 가정 환경, 사무실 환경, 또는 서버 팜 내에) 위치할 수 있다. 다른 예시적인 실시형태에서, 프로세서 또는 프로세서 구현 엔진은 다수의 지리적 위치에 걸쳐 분산될 수 있다.
본 명세서 전체에 걸쳐, 복수의 인스턴스는, 단일 인스턴스로서 설명된 구성요소, 동작, 또는 구조를 구현할 수 있다. 하나 이상의 방법의 개별적인 동작이 별개의 동작으로서 도시되고 설명되었지만, 하나 이상의 개별적인 동작은, 동시에 수행될 수 있고, 동작들이 도시된 순서대로 수행될 필요는 없다. 예시적인 구성에서 별개의 구성요소로서 제시된 구조와 기능은 결합된 구조 또는 구성요소로서 구현될 수 있다. 유사하게, 단일 구성요소로서 제시된 구조와 기능은 별개의 구성요소들로서 구현될 수 있다. 이러한 변형, 수정, 추가, 개선, 및 다른 변형, 수정, 추가, 개선은, 본 명세서의 대상 범위 내에 있다.
첨부 도면에 개시되고 및/또는 본 명세서에서 설명한 흐름도의 임의의 프로세스 설명, 요소, 또는 블록은, 프로세스의 특정 논리 함수 또는 단계를 구현하기 위한 하나 이상의 실행 가능 명령어를 포함하는, 모듈, 세그먼트, 또는 코드의 일부를 잠재적으로 나타내는 것으로서 이해해야 한다. 대체 구현예는 본 명세서에서 설명하는 실시형태의 범위에 포함되며, 그 요소 또는 기능은, 통상의 기술자가 이해할 수 있듯이, 삭제될 수 있고, 관련된 기능에 따라 실질적으로 동시에 또는 역순을 비롯하여, 도시되거나 설명된 순서를 벗어나 실행될 수 있다.
특정한 예시적인 실시형태를 참조하여 대상의 개요를 설명하였지만, 본 개시내용의 더욱 넓은 범위를 벗어나지 않으면서 이들 실시형태에 대한 다양한 수정과 변경을 행할 수 있다. 대상의 이러한 실시형태들은, 본 명세서의 범위를, 사실 하나보다 많은 개시내용이 있지만 임의의 단일 개시내용이나 개념으로 자발적으로 제한하려 하지 않고서 단지 편의상 본 명세서에서 "발명"이라는 용어로 개별적으로 또는 총괄적으로 칭할 수 있다.
본 명세서에서 예시한 실시형태들은, 통상의 기술자가 개시된 교시를 실시할 수 있도록 충분히 상세하게 설명되었다. 이러한 실시형태들로부터 다른 실시형태들을 사용할 수 있고 도출할 수 있으며, 본 개시내용의 범위를 벗어나지 않으면서 구조적 및 논리적 대체 및 변경을 행할 수 있다. 따라서, 상세한 설명은 제한적인 의미로 받아들여서는 안 되며, 다양한 실시형태의 범위는, 이러한 청구항들에 부여되는 균등물의 전체 범위와 함께 청구범위에 의해서만 정의된다.

Claims (20)

  1. 하나 이상의 프로세서를 포함하는 시스템에 의해 실행되는, 스마트 계약의 보안을 개선하기 위한 방법으로서,
    블록체인 노드가 제1 트랜잭션(transaction)과 제2 트랜잭션을 취득하는 단계로서, 상기 제1 트랜잭션은 상기 스마트 계약의 실행가능한 코드를 지시하는 블록체인 내 스마트 계약의 어드레스, 상기 스마트 계약을 호출하는 하나 이상의 제1 파라미터, 및 제1 트랜잭션 값을 포함하고, 상기 제2 트랜잭션은 상기 스마트 계약의 실행가능한 코드를 지시하는 블록체인 내 상기 스마트 계약의 어드레스, 상기 스마트 계약을 호출하는 하나 이상의 제2 파라미터, 및 제2 트랜잭션 값을 포함하는, 취득하는 단계;
    상기 블록체인 노드가, 상기 제1 트랜잭션에 근거하여 상기 스마트 계약의 실행을 제한하는 상기 제1 트랜잭션에 대한 보호 조건을 생성하는 단계;
    상기 블록체인 노드가 상기 제1트랜잭션 및 상기 제2 트랜잭션을 임의의 순서로 선택하는 단계; 및
    상기 블록체인 노드가 상기 제1 트랜잭션을 선택하기 전에 상기 제2 트랜잭션을 선택하는 것에 응답하여,
    상기 제2 트랜잭션 값에 근거하여 상기 스마트 계약의 잔액을 업데이트하는 것에 의해, 상기 블록체인 노드가 상기 블록체인의 제1 세계 상태(world state)를 제1 천이 상태로 업데이트하는 단계;
    블록체인 내 상기 스마트 계약의 어드레스와 상기 하나 이상의 제2 파라미터에 따라 상기 스마트 계약의 실행가능한 코드를 호출하는 것에 의해, 상기 블록체인 노드가 상기 제1 천이 상태를 제2 세계 상태로 업데이트하는 단계;
    상기 제1 트랜잭션 값에 근거하여 상기 스마트 계약의 잔액을 업데이트하는 것에 의해, 상기 블록체인 노드가 상기 제2 세계 상태를 제2 천이 상태로 업데이트하는 단계;
    상기 블록체인 노드가, 상기 블록체인의 상기 제2 천이 상태가 상기 보호 조건을 충족시키는지 여부를 결정하는 단계; 및
    상기 블록체인의 상기 제2 천이 상태가 상기 보호 조건을 충족시키지 않는다는 결정에 응답하여: 상기 블록체인 노드가 상기 블록체인을 상기 제2 천이 상태로부터 상기 제2 세계 상태로 복귀시키는 단계, 상기 블록체인 노드가 상기 제1 트랜잭션을 실행하지 않고 상기 제2 세계 상태에 대응하는 상기 제2 트랜잭션의 실행을 새로운 데이터 블록에 기록하는 단계, 및 상기 블록체인 노드가 상기 제1 트랜잭션을 폐기하는 단계
    를 포함하는, 스마트 계약의 보안을 개선하기 위한 방법.
  2. 제1항에 있어서,
    상기 제2 천이 상태가 상기 보호 조건을 충족시키지 못한다는 결정에 응답하여, 상기 제1 트랜잭션의 실행이 실패하였음을 나타내는 실행 예외를 상기 제1 트랜잭션을 제출한 사용자 연산 장치에 귀환시키는 단계를 더 포함하는, 스마트 계약의 보안을 개선하기 위한 방법.
  3. 제1항에 있어서,
    상기 보호 조건은, 항목을 거래하는 시간 범위, 가격 범위 또는 양 범위와 연관된, 스마트 계약의 보안을 개선하기 위한 방법.
  4. 제3항에 있어서,
    상기 제1 트랜잭션은 상기 가격 범위에서의 트랜잭션 항목의 구매 주문과 연관되고; 그리고
    상기 제2 트랜잭션은 상기 트랜잭션 항목을 판매하는 판매 주문과 연관된, 스마트 계약의 보안을 개선하기 위한 방법.
  5. 제1항에 있어서,
    상기 제2 트랜잭션 전에 상기 제1 트랜잭션을 선택하는 것에 응답하여, 상기 보호 조건이 충족되면 상기 제1 트랜잭션을 실행하고, 이후 상기 제2 트랜잭션을 실행하고, 상기 제1 트랜잭션과 상기 제2 트랜잭션의 실행을 상기 블록체인에 추가할 새로운 데이터 블록에 기록하는 단계를 더 포함하는, 스마트 계약의 보안을 개선하기 위한 방법.
  6. 삭제
  7. 제1항에 있어서,
    상기 제1 트랜잭션과 상기 제2 트랜잭션을 취득하는 단계는, 풀 데이터베이스로부터 상기 제1 트랜잭션과 상기 제2 트랜잭션을 취득하는 단계를 포함하되,
    상기 풀 데이터베이스는 하나 이상의 사용자 연산 장치에 의해 제출된 상기 제1 트랜잭션 및 상기 제2 트랜잭션을 저장하고, 상기 시스템에 액세스 가능한, 스마트 계약의 보안을 개선하기 위한 방법.
  8. 제1항에 있어서,
    상기 제2 천이 상태가 상기 보호 조건을 충족시킨다는 결정에 응답하여, 상기 제2 트랜잭션의 실행 후에 상기 제1 트랜잭션을 실행하고, 상기 제2 트랜잭션 및 상기 제1 트랜잭션의 실행을 상기 블록체인에 추가할 실행의 순서로 제2 새로운 데이터 블록에 기록하는 단계를 더 포함하는, 스마트 계약의 보안을 개선하기 위한 방법.
  9. 스마트 계약의 보안을 개선하기 위한 시스템으로서,
    하나 이상의 프로세서, 및 상기 하나 이상의 프로세서에 결합되고, 상기 시스템이 동작을 수행하게 하도록 상기 하나 이상의 프로세서에 의해 실행 가능한 명령어와 함께 구성된 하나 이상의 비일시적 컴퓨터 판독가능 메모리를 포함하되, 상기 동작은,
    블록체인 노드가 제1 트랜잭션(transaction)과 제2 트랜잭션을 취득하는 단계로서, 상기 제1 트랜잭션은 상기 스마트 계약의 실행가능한 코드를 지시하는 블록체인 내 스마트 계약의 어드레스, 상기 스마트 계약을 호출하는 하나 이상의 제1 파라미터, 및 제1 트랜잭션 값을 포함하고, 상기 제2 트랜잭션은 상기 스마트 계약의 실행가능한 코드를 지시하는 블록체인 내 상기 스마트 계약의 어드레스, 상기 스마트 계약을 호출하는 하나 이상의 제2 파라미터, 및 제2 트랜잭션 값을 포함하는, 취득하는 단계;
    상기 블록체인 노드가, 상기 제1 트랜잭션에 근거하여 상기 스마트 계약의 실행을 제한하는 상기 제1 트랜잭션에 대한 보호 조건을 생성하는 단계;
    상기 블록체인 노드가 상기 제1트랜잭션 및 상기 제2 트랜잭션을 임의의 순서로 선택하는 단계; 및
    상기 블록체인 노드가 상기 제1 트랜잭션을 선택하기 전에 상기 제2 트랜잭션을 선택하는 것에 응답하여,
    상기 제2 트랜잭션 값에 근거하여 상기 스마트 계약의 잔액을 업데이트하는 것에 의해, 상기 블록체인 노드가 상기 블록체인의 제1 세계 상태(world state)를 제1 천이 상태로 업데이트하는 단계;
    블록체인 내 상기 스마트 계약의 어드레스와 상기 하나 이상의 제2 파라미터에 따라 상기 스마트 계약의 실행가능한 코드를 호출하는 것에 의해, 상기 블록체인 노드가 상기 제1 천이 상태를 제2 세계 상태로 업데이트하는 단계;
    상기 제1 트랜잭션 값에 근거하여 상기 스마트 계약의 잔액을 업데이트하는 것에 의해, 상기 블록체인 노드가 상기 제2 세계 상태를 제2 천이 상태로 업데이트하는 단계;
    상기 블록체인 노드가, 상기 블록체인의 상기 제2 천이 상태가 상기 보호 조건을 충족시키는지 여부를 결정하는 단계; 및
    상기 블록체인의 상기 제2 천이 상태가 상기 보호 조건을 충족시키지 않는다는 결정에 응답하여: 상기 블록체인 노드가 상기 블록체인을 상기 제2 천이 상태로부터 상기 제2 세계 상태로 복귀시키는 단계, 상기 블록체인 노드가 상기 제1 트랜잭션을 실행하지 않고 상기 제2 세계 상태에 대응하는 상기 제2 트랜잭션의 실행을 새로운 데이터 블록에 기록하는 단계, 및 상기 블록체인 노드가 상기 제1 트랜잭션을 폐기하는 단계
    를 포함하는, 시스템.
  10. 제9항에 있어서, 상기 시스템은,
    상기 제2 천이 상태가 상기 보호 조건을 충족시키지 못한다는 결정에 응답하여, 상기 제1 트랜잭션의 실행이 실패하였음을 나타내는 실행 예외를 상기 제1 트랜잭션을 제출한 사용자 연산 장치에 귀환시키도록 더 구성된, 시스템.
  11. 제9항에 있어서,
    상기 보호 조건은, 항목을 거래하는 시간 범위, 가격 범위 또는 양 범위와 연관된, 시스템.
  12. 제11항에 있어서,
    상기 제1 트랜잭션은 상기 가격 범위에서의 트랜잭션 항목의 구매 주문과 연관되고; 그리고
    상기 제2 트랜잭션은 상기 트랜잭션 항목을 판매하는 판매 주문과 연관된, 시스템.
  13. 제9항에 있어서,
    상기 동작은, 상기 제2 트랜잭션 전에 상기 제1 트랜잭션을 선택하는 것에 응답하여, 상기 보호 조건이 충족되면 상기 제1 트랜잭션을 실행하고, 이후 상기 제2 트랜잭션을 실행하고, 상기 제1 트랜잭션과 상기 제2 트랜잭션의 실행을 상기 블록체인에 추가할 새로운 데이터 블록에 기록하는 단계를 더 포함하는, 시스템.
  14. 삭제
  15. 하나 이상의 프로세서가 동작을 수행하게 하도록 상기 하나 이상의 프로세서에 의해 실행 가능한 명령어와 함께 구성된 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 동작은,
    블록체인 노드가 제1 트랜잭션(transaction)과 제2 트랜잭션을 취득하는 단계로서, 상기 제1 트랜잭션은 스마트 계약의 실행가능한 코드를 지시하는 블록체인 내 스마트 계약의 어드레스, 상기 스마트 계약을 호출하는 하나 이상의 제1 파라미터, 및 제1 트랜잭션 값을 포함하고, 상기 제2 트랜잭션은 상기 스마트 계약의 실행가능한 코드를 지시하는 블록체인 내 상기 스마트 계약의 어드레스, 상기 스마트 계약을 호출하는 하나 이상의 제2 파라미터, 및 제2 트랜잭션 값을 포함하는, 취득하는 단계;
    상기 블록체인 노드가, 상기 제1 트랜잭션에 근거하여 상기 스마트 계약의 실행을 제한하는 상기 제1 트랜잭션에 대한 보호 조건을 생성하는 단계;
    상기 블록체인 노드가 상기 제1트랜잭션 및 상기 제2 트랜잭션을 임의의 순서로 선택하는 단계; 및
    상기 블록체인 노드가 상기 제1 트랜잭션을 선택하기 전에 상기 제2 트랜잭션을 선택하는 것에 응답하여,
    상기 제2 트랜잭션 값에 근거하여 상기 스마트 계약의 잔액을 업데이트하는 것에 의해, 상기 블록체인 노드가 상기 블록체인의 제1 세계 상태(world state)를 제1 천이 상태로 업데이트하는 단계;
    블록체인 내 상기 스마트 계약의 어드레스와 상기 하나 이상의 제2 파라미터에 따라 상기 스마트 계약의 실행가능한 코드를 호출하는 것에 의해, 상기 블록체인 노드가 상기 제1 천이 상태를 제2 세계 상태로 업데이트하는 단계;
    상기 제1 트랜잭션 값에 근거하여 상기 스마트 계약의 잔액을 업데이트하는 것에 의해, 상기 블록체인 노드가 상기 제2 세계 상태를 제2 천이 상태로 업데이트하는 단계;
    상기 블록체인 노드가, 상기 블록체인의 상기 제2 천이 상태가 상기 보호 조건을 충족시키는지 여부를 결정하는 단계; 및
    상기 블록체인의 상기 제2 천이 상태가 상기 보호 조건을 충족시키지 않는다는 결정에 응답하여: 상기 블록체인 노드가 상기 블록체인을 상기 제2 천이 상태로부터 상기 제2 세계 상태로 복귀시키는 단계, 상기 블록체인 노드가 상기 제1 트랜잭션을 실행하지 않고 상기 제2 세계 상태에 대응하는 상기 제2 트랜잭션의 실행을 새로운 데이터 블록에 기록하는 단계, 및 상기 블록체인 노드가 상기 제1 트랜잭션을 폐기하는 단계
    를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  16. 제15항에 있어서, 상기 프로세서는,
    상기 제2 천이 상태가 상기 보호 조건을 충족시키지 못한다는 결정에 응답하여, 상기 제1 트랜잭션의 실행이 실패하였음을 나타내는 실행 예외를 상기 제1 트랜잭션을 제출한 사용자 연산 장치에 귀환시키도록 더 구성된, 비일시적 컴퓨터 판독가능 저장 매체.
  17. 제15항에 있어서,
    상기 보호 조건은, 항목을 거래하는 시간 범위, 가격 범위 또는 양 범위와 연관된, 비일시적 컴퓨터 판독가능 저장 매체.
  18. 제17항에 있어서,
    상기 제1 트랜잭션은 상기 가격 범위에서의 트랜잭션 항목의 구매 주문과 연관되고; 그리고
    상기 제2 트랜잭션은 상기 트랜잭션 항목을 판매하는 판매 주문과 연관된, 비일시적 컴퓨터 판독가능 저장 매체.
  19. 제15항에 있어서,
    상기 동작은, 상기 제2 트랜잭션 전에 상기 제1 트랜잭션을 선택하는 것에 응답하여, 상기 보호 조건이 충족되면 상기 제1 트랜잭션을 실행하고, 이후 상기 제2 트랜잭션을 실행하고, 상기 제1 트랜잭션과 상기 제2 트랜잭션의 실행을 상기 블록체인에 추가할 새로운 데이터 블록에 기록하는 단계를 더 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  20. 삭제
KR1020197011448A 2018-11-27 2018-11-27 블록체인 상의 스마트 계약의 보안을 개선하기 위한 시스템 및 방법 KR102254500B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/117666 WO2019072283A2 (en) 2018-11-27 2018-11-27 SYSTEM AND METHOD FOR ENHANCING THE SECURITY OF AN INTELLIGENT CONTRACT ON A BLOCK CHAIN

Publications (2)

Publication Number Publication Date
KR20200066261A KR20200066261A (ko) 2020-06-09
KR102254500B1 true KR102254500B1 (ko) 2021-05-24

Family

ID=66100130

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197011448A KR102254500B1 (ko) 2018-11-27 2018-11-27 블록체인 상의 스마트 계약의 보안을 개선하기 위한 시스템 및 방법

Country Status (14)

Country Link
US (1) US11354727B2 (ko)
EP (1) EP3545481A4 (ko)
JP (1) JP6864088B2 (ko)
KR (1) KR102254500B1 (ko)
CN (1) CN110291550A (ko)
AU (1) AU2018348324A1 (ko)
BR (1) BR112019008064B1 (ko)
CA (1) CA3040783A1 (ko)
MX (1) MX2019004546A (ko)
PH (1) PH12019500869A1 (ko)
RU (1) RU2744496C2 (ko)
SG (1) SG11201903439RA (ko)
WO (1) WO2019072283A2 (ko)
ZA (1) ZA201902474B (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11544782B2 (en) 2018-05-06 2023-01-03 Strong Force TX Portfolio 2018, LLC System and method of a smart contract and distributed ledger platform with blockchain custody service
US11550299B2 (en) 2020-02-03 2023-01-10 Strong Force TX Portfolio 2018, LLC Automated robotic process selection and configuration
US11669914B2 (en) 2018-05-06 2023-06-06 Strong Force TX Portfolio 2018, LLC Adaptive intelligence and shared infrastructure lending transaction enablement platform responsive to crowd sourced information
EP3791347A4 (en) * 2018-05-06 2022-05-25 Strong Force TX Portfolio 2018, LLC METHODS AND SYSTEMS FOR IMPROVING MACHINES AND SYSTEMS THAT AUTOMATE THE EXECUTION OF DISTRIBUTED LEADER AND OTHER TRANSACTIONS IN SPOT AND FUTURES MARKETS FOR ENERGY, COMPUTING, STORAGE AND OTHER RESOURCES
US11842322B2 (en) * 2018-08-22 2023-12-12 Equinix, Inc. Smart contract interpreter
US11880882B2 (en) * 2019-04-25 2024-01-23 Intellectual Frontiers Llc Computer-controlled marketplace network for digital transactions
GB2583738B (en) * 2019-05-07 2021-05-05 Arm Ip Ltd Content distribution integrity control
EP3983922A1 (en) * 2019-06-14 2022-04-20 Ailia SA Method for the execution of an instance of a smart contract by means of a blockchain
US11249985B2 (en) * 2019-06-15 2022-02-15 Facebook, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
JP7394211B2 (ja) * 2019-08-19 2023-12-07 杭州趣鏈科技有限公司 スマートコントラクトの並行実行の方法、装置、機器、及び媒体
US11893578B2 (en) 2019-10-11 2024-02-06 Christopher Charles Anderson System and method for online transactions using cryptographic digital tokens
US11982993B2 (en) 2020-02-03 2024-05-14 Strong Force TX Portfolio 2018, LLC AI solution selection for an automated robotic process
EP3955224A1 (en) * 2020-08-14 2022-02-16 Nagravision S.A. Localized betting system and method
CN111767097B (zh) * 2020-08-31 2020-12-11 支付宝(杭州)信息技术有限公司 调用智能合约的方法及装置、电子设备、存储介质
CN112529589B (zh) * 2021-02-10 2021-07-27 北京全息智信科技有限公司 一种长耗时区块链交易的处理方法、装置和电子设备
CN112580112B (zh) * 2021-02-26 2021-06-22 北京全息智信科技有限公司 一种基于全链共识、局部部署的智能合约实现方法、装置
KR102670647B1 (ko) 2022-02-03 2024-05-31 충남대학교 산학협력단 스마트 컨트랙트 개인정보보호 방법 및 이를 이용한 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107330701A (zh) 2017-07-28 2017-11-07 中链科技有限公司 植入智能合约的方法和设备
JP2018036893A (ja) 2016-08-31 2018-03-08 ヤフー株式会社 生成プログラム、生成装置及び生成方法

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9436923B1 (en) * 2015-02-26 2016-09-06 Skuchain, Inc. Tracking unitization occurring in a supply chain
US20170011460A1 (en) 2015-07-09 2017-01-12 Ouisa, LLC Systems and methods for trading, clearing and settling securities transactions using blockchain technology
EP3125489B1 (en) 2015-07-31 2017-08-09 BRITISH TELECOMMUNICATIONS public limited company Mitigating blockchain attack
US10114969B1 (en) 2015-08-04 2018-10-30 Jordan White Chaney Ultra-secure blockchain-based electronic information transfer system
EP3380984A4 (en) 2015-11-24 2019-07-31 Ben-Ari, Adi SYSTEM AND METHOD FOR THE PROTECTION OF DATA BY INTELLIGENT BLOCKCHAIN CONTRACT
US10230756B2 (en) 2015-11-25 2019-03-12 International Business Machines Corporation Resisting replay attacks efficiently in a permissioned and privacy-preserving blockchain network
EP3384455A1 (en) 2015-11-30 2018-10-10 Innogy Innovation GmbH Supply medium (e.g. electrical power) transaction agreement system
EP3257191B1 (en) 2016-02-23 2018-04-11 Nchain Holdings Limited Registry and automated management method for blockchain-enforced smart contracts
CN108885745B (zh) 2016-02-23 2023-06-30 区块链控股有限公司 具有令牌化的基于区块链的交换
EP3437002A4 (en) 2016-03-31 2019-08-21 Clause, Inc. SYSTEM AND METHOD FOR CREATING AND EXECUTING LEGAL CONTRACTS PILOTED BY DATA
WO2017170997A1 (ja) * 2016-03-31 2017-10-05 株式会社bitFlyer 階層型ネットワークシステム、これに用いられるノード及びプログラム
AU2017240682B2 (en) * 2016-04-01 2022-06-30 Consensys Software Inc. Systems and methods for providing data privacy in a private distributed ledger
US10022613B2 (en) 2016-05-02 2018-07-17 Bao Tran Smart device
US10447478B2 (en) 2016-06-06 2019-10-15 Microsoft Technology Licensing, Llc Cryptographic applications for a blockchain system
US11829998B2 (en) 2016-06-07 2023-11-28 Cornell University Authenticated data feed for blockchains
KR101949705B1 (ko) 2016-07-21 2019-02-19 대전보건대학 산학협력단 정맥수액 투약오류 예방을 위한 수액연결관 공기탐지 방법
US10740844B2 (en) * 2016-09-26 2020-08-11 Shapeshift Ag System and method of managing trustless asset portfolios
GB2557577A (en) * 2016-10-21 2018-06-27 Cygnetise Ltd Methods and apparatus for recording a change of authorisation state of one or more authorisation agents
US10726343B2 (en) 2016-11-09 2020-07-28 Cognitive Scale, Inc. Performing compliance operations using cognitive blockchains
US10726346B2 (en) 2016-11-09 2020-07-28 Cognitive Scale, Inc. System for performing compliance operations using cognitive blockchains
JP6775086B2 (ja) 2016-12-16 2020-10-28 株式会社日立製作所 ブロックチェーン監視及び管理
WO2018115567A1 (en) 2016-12-19 2018-06-28 Nokia Technologies Oy Method and apparatus for private data transfer between parties
CN106874087A (zh) 2017-01-25 2017-06-20 上海钜真金融信息服务有限公司 一种区块链智能合约定时任务调度方法
WO2018140913A1 (en) * 2017-01-30 2018-08-02 SALT Lending Holdings, Inc. System and method of creating an asset based automated secure agreement
US11411963B2 (en) 2017-02-13 2022-08-09 Nokia Technologies Oy Network access sharing
US10225076B2 (en) * 2017-02-17 2019-03-05 Tianqing Leng Splitting digital promises recorded in a blockchain
US10356102B2 (en) 2017-02-24 2019-07-16 Verizon Patent And Licensing Inc. Permissions using blockchain
CN106980649B (zh) * 2017-02-28 2020-07-10 创新先进技术有限公司 写入区块链业务数据的方法和装置及业务子集合确定方法
CN107341702B (zh) * 2017-03-08 2020-06-23 创新先进技术有限公司 一种业务处理的方法及装置
US20180285810A1 (en) 2017-03-29 2018-10-04 Ripe Technology, Inc. Systems and methods of blockchain transaction recordation in a food supply chain
US20180285971A1 (en) 2017-03-31 2018-10-04 International Business Machines Corporation Management of consumer debt collection using a blockchain and machine learning
US10541818B2 (en) 2017-04-19 2020-01-21 International Business Machines Corporation Decentralized biometric signing of digital contracts
JP6952506B2 (ja) 2017-06-13 2021-10-20 株式会社野村総合研究所 検査装置
CN107392618B (zh) 2017-07-28 2021-02-12 苏州朗润创新知识产权运营有限公司 植入智能合约的方法和设备
US10891694B1 (en) * 2017-09-06 2021-01-12 State Farm Mutual Automobile Insurance Company Using vehicle mode for subrogation on a distributed ledger
CN109508981A (zh) * 2017-09-15 2019-03-22 富士通株式会社 用于测试智能合约的方法和装置
US11144893B2 (en) 2017-10-30 2021-10-12 Nec Corporation Method and system for securing smart contracts in blockchains
CN107993069A (zh) 2017-12-13 2018-05-04 清华大学 一种基于区块链网络的在线交易方法及系统
US10896418B2 (en) * 2017-12-29 2021-01-19 Ebay Inc. Secure management of data files using a blockchain
CN108109017A (zh) 2018-01-11 2018-06-01 杭州秘猿科技有限公司 基于区块链智能合约的商品交易系统
RU181439U1 (ru) 2018-04-06 2018-07-13 Оксана Валерьевна Кириченко Децентрализованная технологическая платформа хранения и обмена данными транзакций в распределенной вычислительной сети
CN108833398B (zh) 2018-06-08 2020-12-15 深圳智链未来科技有限公司 一种区块链智能合约更新方法、装置及设备
KR102121930B1 (ko) * 2018-07-03 2020-06-11 네이버 주식회사 블록체인 기반의 개인 데이터 처리 방법 및 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018036893A (ja) 2016-08-31 2018-03-08 ヤフー株式会社 生成プログラム、生成装置及び生成方法
CN107330701A (zh) 2017-07-28 2017-11-07 中链科技有限公司 植入智能合约的方法和设备

Also Published As

Publication number Publication date
SG11201903439RA (en) 2019-05-30
KR20200066261A (ko) 2020-06-09
WO2019072283A2 (en) 2019-04-18
AU2018348324A1 (en) 2020-06-11
JP6864088B2 (ja) 2021-04-21
MX2019004546A (es) 2019-12-09
US20210082033A1 (en) 2021-03-18
RU2744496C2 (ru) 2021-03-10
CA3040783A1 (en) 2019-04-18
BR112019008064A2 (pt) 2019-11-12
WO2019072283A3 (en) 2019-09-26
CN110291550A (zh) 2019-09-27
PH12019500869A1 (en) 2019-12-02
RU2019111962A (ru) 2020-10-23
US11354727B2 (en) 2022-06-07
ZA201902474B (en) 2021-06-30
BR112019008064B1 (pt) 2022-07-12
EP3545481A4 (en) 2020-02-12
RU2019111962A3 (ko) 2020-10-23
EP3545481A2 (en) 2019-10-02
JP2020502617A (ja) 2020-01-23

Similar Documents

Publication Publication Date Title
KR102254500B1 (ko) 블록체인 상의 스마트 계약의 보안을 개선하기 위한 시스템 및 방법
US11695578B2 (en) Systems and methods for storing and sharing transactional data using distributed computer systems
US11138597B2 (en) System and method for improving security of smart contract on blockchain
US20100161399A1 (en) Instant payout incentive system
CN112330181A (zh) 基于区块链的企业信用评价方法及装置
EP4149046A1 (en) Systems and methods for blockchain network congestion-adaptive digital asset event handling
AU2019101593A4 (en) System and method for improving security of smart contract on blockchain
CN111260362A (zh) 一种区块链网络的信息处理方法及装置、存储介质
US20220398572A1 (en) Systems and methods for controlling transfers of digital assets
US12008573B2 (en) Computer-implemented systems and methods for detecting fraudulent activity
US11516208B2 (en) System and method for merging accounts
US20240020683A1 (en) Methods and systems for multiple gating verifications based on a blockchain wallet
US20220398568A1 (en) Methods and systems for authorizing devices in multiple domains
CN112734449A (zh) 售后服务数据处理方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right