KR102193533B1 - 블록체인 네트워크에서의 FaaS 플랫폼 - Google Patents

블록체인 네트워크에서의 FaaS 플랫폼 Download PDF

Info

Publication number
KR102193533B1
KR102193533B1 KR1020197011389A KR20197011389A KR102193533B1 KR 102193533 B1 KR102193533 B1 KR 102193533B1 KR 1020197011389 A KR1020197011389 A KR 1020197011389A KR 20197011389 A KR20197011389 A KR 20197011389A KR 102193533 B1 KR102193533 B1 KR 102193533B1
Authority
KR
South Korea
Prior art keywords
function
transaction
call
smart contract
controller
Prior art date
Application number
KR1020197011389A
Other languages
English (en)
Other versions
KR20200066255A (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 KR20200066255A publication Critical patent/KR20200066255A/ko
Application granted granted Critical
Publication of KR102193533B1 publication Critical patent/KR102193533B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web 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/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Retry When Errors Occur (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 출원의 구현은, 스마트 계약으로부터, 그리고 블록체인 네트워크 내에서 실행되는 함수 컨트롤러에 의해, 함수를 실행하도록 제1 실행을 위한 데이터를 포함하는 함수 호출을 수신하는 단계, 함수 컨트롤러에 의해, 함수 호출의 데이터에 기초하여 함수를 실행하는 함수 컴포넌트에, 함수 호출의 데이터를 전송하는 단계, 함수 컨트롤러에 의해, 함수 컴포넌트로부터 함수 결과를 수신하는 단계, 및 함수 컨트롤러에 의해, 스마트 계약에 함수 결과를 제공하는 단계를 포함한다.

Description

블록체인 네트워크에서의 FaaS 플랫폼
본 발명은 블록체인 네트워크에서의 FaaS 플랫폼에 관한 것이다.
컨센서스(consensus) 네트워크 및/또는 블록체인(blockchain) 네트워크로도 지칭될 수 있는 분산 원장 시스템(DLS; Distributed ledger system)은 참여 엔티티들이 데이터를 안전하고 불변하게(immutably) 저장할 수 있게 한다. DLS는 일반적으로 어떠한 특정 유즈 케이스(예컨대, 암호 통화)도 참조하지 않는 블록체인 네트워크으로서 지칭된다. 블록체인 네트워크의 예시적인 유형은 퍼블릭(public) 블록체인 네트워크, 프라이빗(private) 블록체인 네트워크, 및 컨소시엄(consortium) 블록체인 네트워크를 포함할 수 있다. 퍼블릭 블록체인 네트워크는 모든 엔티티들이 DLS를 사용하며 컨센서스 프로세스에 참여할 수 있도록 공개형이다. 프라이빗 블록체인 네트워크는, 읽기 및 쓰기 권한(permission)을 중앙집중적으로 제어하는 특정 엔티티에 대하여 제공된다. 컨소시엄 블록체인 네트워크는, 컨센서스 프로세스를 제어하는, 엔티티들의 선택 그룹에 대하여 제공되며, 액세스 제어 층을 포함한다.
스마트 계약(Smart contract)은 하나 이상의 함수를 수행하도록 블록체인 네트워크 내에서 실행될 수 있다. 스마트 계약은 코딩된 함수를 포함하는 모놀리식(monolithic) 애플리케이션이라고 할 수 있다. 모놀리식 애플리케이션으로서, 스마트 계약을 지원하기 위해 비교적 견고한 개발 동작이 요구될 수 있다(예컨대, 각각의 함수의 코딩, 전체 스마트 계약의 업데이트를 일으키는 함수에 대한 업데이트).
본 명세서의 구현은 블록체인 네트워크에서의 애플리케이션을 제공하기 위한 컴퓨터 구현 방법을 포함한다. 보다 구체적으로, 블록체인 네트워크에서 실행되는 애플리케이션에 대한 함수를 제공하기 위한 FaaS(function-as-a-service) 플랫픔에 관한 것이다.
일부 구현에서, 동작들은, 스마트 계약으로부터, 그리고 블록체인 네트워크 내에서 실행되는 제1 함수 컨트롤러에 의해, 제1 함수를 실행하도록 상기 제1 함수의 실행을 위한 데이터를 포함하는 제1 함수 호출(function call)을 수신하고, 상기 제1 함수 컨트롤러에 의해, 상기 제1 함수 호출의 데이터에 기초하여 상기 제1 함수를 실행하는 제1 함수 컴포넌트에, 상기 제1 함수 호출의 데이터를 전송하고, 상기 제1 함수 컨트롤러에 의해, 상기 제1 함수 컴포넌트로부터 제1 함수 결과를 수신하고, 상기 제1 함수 컨트롤러에 의해, 상기 스마트 계약에 상기 제1 함수 결과를 제공하는 것을 포함한다. 다른 구현은, 방법의 동작들을 수행하도록 구성된 대응하는 시스템, 장치, 및 컴퓨터 저장 디바이스 상에 인코딩된 컴퓨터 프로그램을 포함한다.
이들 및 기타 구현은 다음 특징들 중의 하나 이상을 각각 선택적으로 포함할 수 있다: 상기 제1 함수 호출은 상기 제1 함수의 어드레스 및 상기 제1 함수의 버전 식별자를 더 포함한다; 상기 버전 식별자는, 상기 제1 함수의 최신 버전이 실행될 것임을 나타내는 null이다; 상기 동작들은, 상기 제1 함수 컨트롤러에 의해, 상기 제1 함수 호출에 응답하여 실행된 상기 제1 함수의 버전과 연관된 통계를 업데이트하는 것을 더 포함한다; 상기 통계는, 제1 함수의 각각의 버전이 실행된 횟수를 나타낸다; 상기 동작들은, 스마트 계약으로부터, 그리고 상기 블록체인 네트워크 내에서 실행되는 제2 함수 컨트롤러에 의해, 제2 함수를 실행하도록 제2 함수의 실행을 위한 데이터를 포함하는 제2 함수 호출을 수신하되, 상기 제2 함수는 상기 제1 함수와 상이한 것이고, 상기 제2 함수 컨트롤러는 상기 제1 함수 컨트롤러와 상이한 것이고, 상기 제2 함수 컨트롤러에 의해, 상기 제2 함수 호출의 데이터에 기초하여 상기 제2 함수를 실행하는 제2 함수 컴포넌트에, 상기 제2 함수 호출의 데이터를 전송하되, 상기 제2 함수 컴포넌트는 상기 제1 함수 컴포넌트와 상이한 것이고, 상기 제2 함수 컨트롤러에 의해, 상기 제2 함수 컴포넌트로부터 제2 함수 결과를 수신하고, 상기 제2 함수 컨트롤러에 의해, 상기 스마트 계약에 상기 제2 함수 결과를 제공하는 것을 더 포함한다; 상기 제1 함수 및 상기 제2 함수는 상이한 프로바이더에 의해 제공된다; 상기 스마트 계약은 상기 함수 결과에 적어도 부분적으로 기초하여 트랜잭션을 실행하며, 상기 트랜잭션은 상기 블록체인 네트워크의 블록체인 내에 기록된다.
본 명세서는 또한, 하나 이상의 프로세서에 연결되며, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금 여기에 제공된 방법의 구현에 따른 동작들을 수행하게 하는 명령어들이 저장되어 있는 하나 이상의 비일시적인 컴퓨터 판독가능한 저장 매체를 제공한다.
본 명세서는 여기에 제공된 방법을 구현하기 위한 시스템을 더 제공한다. 시스템은, 하나 이상의 프로세서, 및 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금 여기에 제공된 방법의 구현에 따른 동작들을 수행하게 하는 명령어들이 저장되어 있는, 상기 하나 이상의 프로세서에 연결된 컴퓨터 판독가능한 저장 매체를 포함한다.
본 명세서에 따른 방법은 여기에 기재된 양상 및 특징의 임의의 조합을 포함할 수 있다는 것을 알아야 한다. 즉, 본 명세서에 따른 방법은 여기에 구체적으로 기재된 양상 및 특징의 조합에 한정되지 않으며, 제공된 양상 및 특징의 임의의 조합도 포함한다.
본 명세서의 하나 이상의 구현의 세부사항은 첨부 도면 및 아래의 상세한 설명에 서술되어 있다. 본 명세서의 다른 특징 및 이점은 상세한 설명 및 도면으로부터 그리고 청구항으로부터 명백해질 것이다.
도 1은 본 명세서의 구현을 실행하는데 사용될 수 있는 예시적인 환경을 도시한다.
도 2는 본 명세서의 구현에 따른 예시적인 개념 아키텍처를 도시한다.
도 3은 본 명세서의 구현에 따른 FaaS(function-as-a-service) 플랫폼에 대한 예시적인 개념 아키텍처를 도시한다.
도 4는 본 명세서의 구현에 따른 컴포넌트들 간의 통신을 도시한 순서도를 도시한다.
도 5는 본 명세서의 구현에 따라 실행될 수 있는 예시적인 프로세스를 도시한다.
다양한 도면에서의 유사한 참조 부호는 유사한 요소를 나타낸다.
본 명세서의 구현은 블록체인 네트워크에서의 애플리케이션을 제공하기 위한 컴퓨터 구현 방법을 포함한다. 보다 구체적으로, 본 명세서의 구현은 블록체인 네트워크에서 실행되는 애플리케이션에 대한 함수를 제공하기 위한 FaaS 플랫픔에 관한 것이다. 일부 구현에서, 동작들은, 스마트 계약으로부터, 그리고 블록체인 네트워크 내에서 실행되는 제1 함수 컨트롤러에 의해, 제1 함수를 실행하도록 제1 함수의 실행을 위한 데이터를 포함하는 제1 함수 호출을 수신하고, 제1 함수 컨트롤러에 의해, 제1 함수 호출의 데이터에 기초하여 제1 함수를 실행하는 제1 함수 컴포넌트에, 제1 함수 호출의 데이터를 전송하고, 제1 함수 컨트롤러에 의해, 제1 함수 컴포넌트로부터 제1 함수 결과를 수신하고, 제1 함수 컨트롤러에 의해, 스마트 계약에 상기 제1 함수 결과를 제공하는 것을 포함한다.
본 명세서의 구현을 위한 부가의 콘텍스트를 제공하기 위해, 그리고 상기에 소개한 바와 같이, 컨센서스 네트워크(예컨대, 피어-투-피어 노드로 구성됨) 및 블록체인 네트워크로도 지칭될 수 있는 분산 원장 시스템(DLS; distributed ledger system)은 참여 엔티티들이 안전하게 그리고 불변하게 트랜잭션을 행하고 데이터를 저장할 수 있게 한다. 용어 블록체인은 일반적으로 비트코인(Bitcoin) 암호통화 네트워크와 연관되지만, 블록체인은 여기에서 어떠한 특정 유즈 케이스도 참조하지 않고 일반적으로 DLS를 지칭하는데 사용된다. 상기에 소개한 바와 같이, 블록체인 네트워크는 퍼블릭 블록체인 네트워크, 프라이빗 블록체인 네트워크, 또는 컨소시엄 블록체인 네트워크로서 제공될 수 있다.
퍼블릭 블록체인 네트워크에서, 컨센서스 프로세스는 컨센서스 네트워크의 노드들에 의해 제어된다. 예를 들어, 수백, 수천, 심지어는 수백만의 엔티티들이 퍼블릭 블록체인 네트워크에서 협력할 수 있으며, 이들의 각각은 퍼블릭 블록체인 네트워크에서 적어도 하나의 노드를 동작시킨다. 따라서, 퍼블릭 블록체인 네트워크는 참여 엔티티들에 관련하여 퍼블릭 네트워크로 간주될 수 있다. 일부 예에서, 대부분의 엔티티(노드)는 블록이 유효하고 블록체인 네트워크의 블록체인(분산 원장)에 추가되게 하기 위하여 모든 블록마다 서명하여야 한다. 예시적인 퍼블릭 블록체인 네트워크는 비트코인 네트워크를 포함하며, 이는 피어-투-피어 결제 네트워크이다. 비트코인 네트워크는 블록체인으로 지칭되는 분산 원장을 활용한다(leverage). 그러나, 상기에 언급한 바와 같이, 용어 블록체인은 특별히 비트코인 네트워크를 참조하지 않고 일반적으로 분산 원장을 지칭하는데 사용된다.
일반적으로, 퍼블릭 블록체인 네트워크는 공개 트랜잭션(public transaction)을 지원한다. 공개 트랜잭션은 퍼블릭 블록체인 네트워크 내의 모든 노드들과 공유되며, 글로벌 블록체인에 저장된다. 글로벌 블록체인은 모든 노드들에 걸쳐 복제되는 블록체인이다. 즉, 모든 노드들은 글로벌 블록체인에 관련하여 완벽한 상태로 합의한다. 합의를 달성하기 위해(예컨대, 블록체인에의 블록의 추가에 대한 동의), 컨센서스 프로토콜이 퍼블릭 블록체인 네트워크 내에서 구현된다. 예시적인 컨센서스 프로토콜은, 비한정적으로, 비트코인 네트워크에서 구현되는 POW(proof-of-work)를 포함한다.
일반적으로, 프라이빗 블록체인 네트워크는, 읽기 및 쓰기 권한을 중앙집중적으로 제어하는 특정 엔티티에 대하여 제공된다. 엔티티는 어느 노드가 블록체인 네트워크에 참여할 수 있는지 제어한다. 그 결과, 프라이빗 블록체인 네트워크는 일반적으로, 네트워크에 참여하는 것이 허용되는 자 및 그의 참여 레벨(예컨대, 특정 트랜잭션에서만)에 대해 제한을 두는 허가된 네트워크로 지칭된다. 다양한 유형의 액세스 제어 메커니즘이 사용될 수 있다(예컨대, 기존의 참여자들이 새로운 엔티티를 추가하는 것에 대해 투표함, 규제 기관이 승인을 제어할 수 있음).
일반적으로, 컨소시엄 블록체인 네트워크는 참여 엔티티들 사이에 비공개적이다(private). 컨소시엄 블록체인 네트워크에서, 컨센서스 프로세스는 인가된 노드 세트에 의해 제어되며, 하나 이상의 노드는 각자의 엔티티(예컨대, 금융 기관, 보험 회사)에 의해 동작된다. 예를 들어, 열 개(10)의 엔티티들(예컨대, 금융 기관, 보험 회사)의 컨소시엄은 컨소시엄 블록체인 네트워크를 동작시킬 수 있으며, 이들의 각각은 컨소시엄 블록체인 네트워크에서 적어도 하나의 노드를 동작시킨다. 따라서, 컨소시엄 블록체인 네트워크는 참여 엔티티들에 관련하여 프라이빗 네트워크로 간주될 수 있다. 일부 예에서, 각각의 엔티티(노드)는 블록이 유효하고 블록체인에 추가되게 하기 위하여 모든 블록마다 서명하여야 한다. 일부 예에서, 적어도 엔티티들(노드들)의 서브세트(예컨대, 적어도 7 개의 엔티티)는 블록이 유효하고 블록체인에 추가되게 하기 위하여 모든 블록마다 서명하여야 한다.
본 명세서의 구현은 참여 엔티티들 사이에 공개적인 퍼블릭 블록체인 네트워크를 참조하여 여기에 더 상세하게 기재된다. 그러나, 본 명세서의 구현은 임의의 적합한 유형의 블록체인 네트워크에서 실현될 수 있는 것으로 고려된다. 본 명세서에 기재된 기술은 퍼블릭 블록체인 네트워크에 관련된 것으로서 나타나 있지만, 기술은 또한, 프라이빗 블록체인 네트워크 및 컨소시엄 블록체인 네트워크를 포함하는 다른 유형의 블록체인 네트워크에도, 변경하거나 아니면 변경없이, 사용될 수 있다.
본 명세서의 구현은 상기 내용을 고려하여 여기에 더 상세하게 기재된다. 보다 구체적으로, 그리고 상기에 소개한 대로, 본 명세서의 구현은 블록체인 네트워크에서 실행되는 애플리케이션에 대한 함수를 제공하기 위한 FaaS 플랫픔에 관한 것이다. 이 방식으로, 개발자들은 비교적 가벼운(예컨대, 코딩에 관련하여) 애플리케이션(예컨대, 스마트 계약)을 개발할 수 있고, 본 명세서의 FaaS 플랫폼을 통해 하나 이상의 함수를 호출할 수 있다.
본 명세서의 구현을 위한 부가의 콘텍스트를 제공하기 위해, 블록체인 네트워크에서, 애플리케이션이 블록체인 네트워크 내의 실행을 위해 개발, 테스트, 및 배치될 수 있다. 예시적인 애플리케이션은 비한정적으로 스마트 계약을 포함할 수 있다. 스마트 계약은, 다양한 당사자들에 영향을 미치는 계약 조건을 갖는 실세계 법적 계약의 디지털 표현이라고 할 수 있다. 스마트 계약은, 예시적인 맥락에서, 컨소시엄 블록체인 네트워크 내에서 구현되고 저장되며 업데이트되고(필요에 따라) 실행된다. 스마트 계약과 연관된 계약 당사자(예컨대, 구매자 및 판매자)는 컨소시엄 블록체인 네트워크에서 노드로 표현된다.
일부 예에서, 스마트 계약은, 정보, 사실, 연관성, 밸런스 및 계약 실행을 위한 로직을 구현하는데 필요한 임의의 다른 정보를 기록하는데 사용될 수 있는 데이터를 저장할 수 있다. 스마트 계약은, 스마트 계약의 인스턴스(instance)가 생성될 수 있는 함수 및 그 안에서의 로직의 실행을 위해 호출된 함수로 구성된 컴퓨터 실행가능 프로그램이라 할 수 있다.
기술 용어로, 스마트 계약은 객체 및 객체 지향 클래스에 기초하여 구현될 수 있다. 예를 들어, 스마트 계약의 용어 및 컴포넌트는 스마트 계약을 구현하는 애플리케이션에 의해 취급되는 객체로서 표현될 수 있다. 스마트 계약(또는 스마트 계약에서의 객체)은 다른 객체 지향 객체와 같은 또다른 스마트 계약(또는 동일 스마트 계약에서의 객체)을 호출할 수 있다. 객체에 의해 이루어지는 호출은, 예를 들어 또다른 클랙스의 객체를 생성, 업데이트, 삭제, 전파 또는 통신하라는 호출일 수 있다. 객체들 간의 호출은, 함수, 방법, API(application programming interface), 또는 다른 호출 메커니즘으로서 구현될 수 있다. 예를 들어, 제1 객체는 제2 객체를 생성하라는 함수를 호출할 수 있다.
블록체인 네트워크에 대한 스마트 계약과 같은 애플리케이션을 개발, 테스트 및 배치하는데 통합 개발 환경(IDE; integrated development environment)이 사용될 수 있다. 예시적인 IDE는, Solidity에서 스마트 계약을 생성하기 위해, Ethereum Foundation of Zug, Switzerland에 의해 제공되는, Remix IDE를 포함한다.
도 1은 본 명세서의 구현을 실행하는데 사용될 수 있는 예시적인 환경(100)을 도시한다. 일부 예에서, 예시적인 환경(100)은 엔티티들이 프라이빗 블록체인 네트워크(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)은 프로토콜(예컨대, HTTP(hypertext transfer protocol secure))을 사용하여 네트워크(예컨대, 도 1의 네트워크(110))를 통해 각자의 인터페이스(210)와 통신한다. 일부 예에서, 각각의 인터페이스(210)는 각자의 트랜잭션 관리 시스템(208)과 블록체인 네트워크 층(206) 사이의 통신 접속을 제공한다. 보다 구체적으로, 인터페이스(210)는 블록체인 네트워크 층(206)의 블록체인 네트워크(212)와 통신한다. 일부 예에서, 인터페이스(210)와 블록체인 네트워크 층(206) 사이의 통신은 원격 프로시저 호출(RPC; remote procedure call)을 사용하여 행해진다. 일부 예에서, 인터페이스(210)는 각자의 트랜잭션 관리 시스템(208)에 대하여 블록체인 네트워크 노드를 "호스팅"한다. 예를 들어, 인터페이스(210)는 블록체인 네트워크(212)에의 액세스를 위한 애플리케이션 프로그래밍 인터페이스(API; application programming interface)를 제공한다.
여기에 기재된 바와 같이, 블록체인 네트워크(212)는 블록체인(216)에 정보를 불변하게 기록하는 복수의 노드들(214)을 포함하는 피어-투-피어 네트워크로서 제공된다. 단일 블록체인(216)이 개략적으로 도시되어 있지만, 블록체인(216)의 복수의 카피들(copies)이 제공되며 블록체인 네트워크(212)에 걸쳐 유지된다. 예를 들어, 각각의 노드(214)는 블록체인의 카피를 저장한다. 일부 구현에서, 블록체인(216)은 프라이빗 블록체인 네트워크에 참여하는 둘 이상의 엔티티들 사이에 수행되는 트랜잭션과 연관된 정보를 저장한다.
도 3은 본 명세서의 구현에 따른 FaaS 플랫폼(300)에 대한 예시적인 개념 아키텍처(300)를 도시한다. 여기에 더 상세하게 기재되는 바와 같이, FaaS 플랫폼(300)은 도 3의 스마트 계약(302)과 같은 스마트 계약의 실행을 지원하는 함수를 제공하도록 사용된다. 일부 예에서, 스마트 계약(302)은 블록체인의 블록(304)에 기록되는 트랜잭션을 실행할 수 있다.
도 3의 예에서, FaaS 플랫폼(300)은, 예를 들어 스마트 계약(302)의 실행을 프롬프트하는 동작을 개시하는 노드일 수 있는 트랜잭션 개시자(transaction initiator)(306)를 포함한다. 예를 들어, 트랜잭션 개시자(306)는 스마트 계약(302)의 실행을 실시하라는 요청(308)을 보낼 수 있다. 일부 예에서, 스마트 계약(302)은 요청을 수신하고, 스마트 계약(302)으로 프로그램된 로직을 실행한다. 본 명세서의 구현에 따르면, 로직은 FaaS 플랫폼(300)의 하나 이상의 함수 애플리케이션(312)에의 호출을 포함할 수 있다.
일부 예에서, 함수 애플리케이션(312)의 각각은 각자의 함수 프로바이더(function provider)(310)에 의해 제공된다. 예를 들어, 함수 프로바이더(310)는, 입력을 수신하고 함수를 실행하며 출력을 제공하도록 함수 애플리케이션을 개발하는 엔티티(예컨대, 개발자)를 포함할 수 있다. 일부 예에서, 각각의 함수 애플리케이션(312)은 함수 컨트롤러(314) 및 하나 이상의 함수(316, 318, 320)(함수 코드)를 포함한다. 함수 프로바이더(310)는 함수의 최초 버전(예컨대, 함수(316))을 제공할 수 있고, 후속 버전(예컨대, 함수(318, 320))을 제공하도록 함수를 업데이트할 수 있다.
일부 구현에서, 스마트 계약(302)은 함수를 호출하는 포인트로 실행된다. 스마트 계약(302)은, 함수 애플리케이션(312)에 의해 처리될 입력을 포함하는 함수 호출을 각자의 함수 애플리케이션(312)에 보낸다. 함수 호출은 각자의 함수 컨트롤러(314)에 의해 수신된다. 함수 컨트롤러(314)는 함수(316, 318, 320)의 적합한 버전에 입력을 라우팅한다. 입력을 수신하는 함수(316, 318, 320)는 입력을 처리하여 출력을 제공하며, 출력은 다시 스마트 계약(302)에 보내진다.
일부 구현에서, FaaS 플랫폼(300)에 의해 제공되는 함수 애플리케이션은 블록체인에 저장되고, FaaS 플랫폼(300)에 등록(register)된다. 일부 예에서, 등록은 사용자(예컨대, 스마트 계약의 개발자)에게 함수의 정보를 노출한다. 예시적인 정보는, 비한정적으로, 프로바이더(310)의 식별자, 함수의 설명, 함수의 버전, 및 함수의 통계(예컨대, 각각의 버전이 호출된 횟수)를 포함할 수 있다. 사용자는 정보를, 예를 들어 각각의 함수와 연관된 신뢰(confidence) 레벨의 표시로서 사용할 수 있다. 예를 들어, 스마트 계약을 개발하는 사용자는 필요로 하는 함수를 식별하도록 레지스트리를 검토할 수 있고, 함수를 호출하도록 스마트 계약을 프로그램할 수 있다.
다음은 본 명세서의 구현에 따른 Faas 플랫폼의 설계 및 사용을 예시하고자 하는 비한정적인 예이다. FaaS 프로바이더로도 지칭되는 하나 이상의 함수 프로바이더(예컨대, 도 3의 함수 프로바이더(310))는 하나 이상의 컴퓨터 실행가능한 함수를 제공한다. 예를 들어, 함수 프로바이더는 함수를 실행하기 위한 컴퓨터 실행가능 코드를 개발할 수 있으며, 함수는 입력을 수신하고 입력을 처리하며 출력을 제공한다. 예시적인 함수는, 비한정적으로, 입력으로서 임의 길이의 메시지를 수신하고 출력으로서 체크섬(checksum)을 생성하는(예컨대, 128 비트(16 옥텟) 체크섬) RSA(Rivest-Shamir-Adleman) 체크섬 함수를 포함할 수 있다. 일부 예에서, 함수는 순수 함수이다. 즉, 함수는 상태 정보 없이, 반복가능한 호출 및/또는 중첩 호출이다.
일부 구현에서, 함수 컨트롤러(FaaS 컨트롤러로도 지칭됨)는 함수에 대하여 제공된다(예컨대, 도 3의 함수 컨트롤러(314)). 일부 예에서, 함수 컨트롤러 및 함수는 함께 함수 애플리케이션을 형성하며, FaaS 애플리케이션으로도 지칭된다(예컨대, 도 3의 함수 애플리케이션(312)). 일부 예에서, 함수 컨트롤러는 함수의 버전에 대한 통계 및 저장 뿐만 아니라 호출 정보를 다룬다. 아래의 표 1은 함수 컨트롤러에 의해 저장된 예시적인 정보를 나타낸다:
명칭 변수 타입 의미
Latest Version String latestVersion 최신 버전의 함수 코드 버전 및 어드레스(예컨대, 23d61f4a88f90be1290c0eeab344992e1a2e8f6d,1.0.0), 여기서 1.0.0이 버전임
Version Mapping Map<String, String> versionMap Key는 스마트 계약 어드레스이고, Value는 함수 코드 어드레스의 버전임. key-to-value key-value 쌍이 있을 때, key로부터의 스마트 계약 호출은 함수 코드의 표시된 버전을 사용하며, 그렇지 않으면 디폴트 버전은 최신 버전을 호출함.
Calling a Statistical Map Map<String, Integer> statistics Key는 버전이고, Value는 호출 수이고, 각각의 호출이 하나씩 트리거됨
표 1: 예시적인 정보
일부 구현에서, 함수가 생산용으로 준비가 되었을 때, 함수 프로바이더는 함수를 (컴퓨터 실행가능 함수 코드로서) 블록체인 네트워크에 제출하고, 함수 코드에 블록체인 네트워크 내의 고유의 어드레스가 할당된다(예컨대, 23d61f4a88f90be1290c0eeab344992e1a2e8f6d). 일부 예에서, 함수 컨트롤러도 또한 블록체인 네트워크에 제출되고, 블록체인 네트워크 내의 그 자신의 고유의 어드레스가 할당된다. 일부 예에서, 함수가 블록체인 네트워크에 처음 제출될 때, 최근 버전 값(예컨대, latestVersion)이 디폴트(예컨대, 1.0.0)로 설정된다. 일부 예에서, 함수는 어드레스 및 버전 값(예컨대, 23d61f4a88f90be1290c0eeab344992e1a2e8f6d, 1.0.0)에 기초하여 버전 맵에 기록되고, 함수에 대한 통계는 비어있다.
일부 구현에서, FaaS 플랫폼의 하나 이상의 함수를 호출하는 하나 이상의 스마트 계약(예컨대, 스마트 계약(302))이 생성될 수 있다. 일부 예에서, 스마트 계약을 생성하는 사용자는 관련 함수 정보(예컨대, 설명, 어드레스, 버전, 통계)를 갖는 이용가능한 함수의 라이브러리를 볼 수 있고, 하나 이상의 함수를 호출하도록 스마트 계약을 프로그램할 수 있다. 예를 들어, 스마트 계약은 상기에 소개한 예시적인 RSA 체크섬 함수를 호출하는 로직을 포함할 수 있다. 일부 예에서, 스마트 계약은 호출되어야 할 함수의 버전(예컨대, 1.0.0)을 나타내는 버전 식별자를 포함할 수 있다. 일부 예에서, 버전 식별자는 비어있을 수 있으며(또는 null), 이는 함수의 최신 버전이 호출되어야 함을 나타낸다. 일부 구현에서, 스마트 계약이 완성되고 사용할 준비가 된 후에, 스마트 계약은 블록체인 네트워크에 제출되고, 스마트 계약에는 블록체인 네트워크 내의 고유의 어드레스가 할당된다(예컨대, 39a1509440f8c549dfd6e995def14b1ce3c98e5d).
일부 구현에서, 함수 코드에의 최종적인 업그레이드(업데이트)의 영향이 스마트 계약의 실행 로직에 영향을 미치는 것으로부터 막기 위하여, 함수 컨트롤러의 버전 맵(versionMap)이 업데이트된다. 상기의 비한정적인 예에서 계속하면, RSA 체크섬 함수에 대한 함수 애플리케이션의 버전 맵은 다음으로 업데이트된다:
{
"39a1509440f8c549dfd6e995def14b1ce3c98e5d"
: "23d61f4a88f90be1290c0eeab344992e1a2e8f6d,1.0.0"
}
이는, 예시적인 스마트 계약이 예시적인 RSA 체크섬 함수의 제1 버전을 사용함을 나타낸다. 즉, 특정 스마트 계약이 함수를 호출할 때 함수의 제1 버전이 항상 사용될 것이다.
도 4는 본 명세서의 구현에 따른 컴포넌트들 간의 통신을 도시한 순서도(400)를 도시한다. 본 명세서의 구현에 따르면, 스마트 계약을 사용하는 트랜잭션이 개시된다(402). 예를 들어, 블록체인 네트워크에서의 노드는(예컨대, 자동으로, 또는 트랜잭션 개시자(404)로서의 역할을 하는 사용자에 의해 프롬프트됨) 스마트 계약(예컨대, 스마트 계약(406))을 사용하여 트랜잭션을 개시할 수 있다. 스마트 계약은 트랜잭션을 완료하기 위해 필요한 함수를 식별할 수 있다(408). 일부 예에서, 스마트 계약의 로직의 실행 동안, 하나 이상의 FaaS 애플리케이션(412)에 하나 이상의 함수 호출이 행해질 수 있다(410). 각각의 FaaS 애플리케이션(412)은 Faas 컨트롤러(414) 및 FaaS 코드(416)를 포함한다. FaaS 애플리케이션(412)은 각각의 프로바이더에 대하여 존재할 수 있다.
상기의 예를 계속해서 참조하면, 스마트 계약은 RSA 체크섬 값에 대하여 함수 호출(410)을 전송할 수 있다. 일부 예에서, 함수 호출은 FaaS 코드(416)에 의한 실행을 위해 함수 컨트롤러(414)에 의해 수신된다. 일부 예에서, 함수 호출은 함수에의 입력 및 실행되어야 할 함수의 버전을 나타내는 버전 변수를 포함한다. 일부 예에서, 함수 호출은 실행되어야 할 버전을 지정하지 않으며(예컨대, 버전 값이 null임), 이 경우에 함수의 최신 버전이 사용된다.
함수 컨트롤러는 입력(예컨대, 메시지)을 처리하여 출력(예컨대, 체크섬 값)을 제공한다. 함수 요청(418)은 FaaS 코드(416)로 이루어진다. 상기에 언급된 바와 같이, 함수 응답(420)에서, 함수의 지정된 버전이나 함수의 최신 버전이 실행된다. 또한, 함수의 실행된 버전에 대응하는 호출 통계 맵 카운트 값이 업데이트된다(422)(예컨대, 증분됨). 상기의 예에서 계속하면, 처음 호출된 후에, 예시적인 RSA 체크섬 함수에 대한 통계 콘텐츠는 다음과 같이 제공될 수 있다:
{
"23d61f4a88f90be1290c0eeab344992e1a2e8f6d,1.0.0": 1
}
함수 결과(424)가 스마트 계약에 제공되며, 스마트 계약은 그 다음 트랜잭션을 완료할 수 있다(426). 트랜잭션은 블록체인(예컨대, 블록체인(430))에 의해 기록될 수 있다(428). 확정(confirmation)(432)이 트랜잭션 개시자(404)에게 보내질 수 있다.
일련의 단계들(410-424)은 스마트 계약(406)에 의해 호출된 각각의 함수에 대하여 반복될 수 있다. 예를 들어, 스마트 계약(406)은 2개의 상이한 FaaS 프로바이더로부터 2개의 함수를 호출할 수 있으며, 각각으로부터 스마트 계약(406)이 트랜잭션을 완료하도록 사용하는 함수 결과를 수신할 수 있다.
일부 구현에서, 함수 프로바이더는 이전에 제공된 함수를 업데이트할 수 있다. 예를 들어, 함수 프로바이더는 실행 효율을 개선하도록(예컨대, 더 빠른, 더 적은 계산 리소스) 함수의 적어도 일부를 다시 코딩할 수 있다. 그 결과, 함수의 후속 버전이 제공될 수 있다. 상기의 예에서 계속하면, RSA 체크섬 함수의 제2 버전이 제공되어 블록체인 네트워크에 제출될 수 있다. 함수의 제2 버전에 블록체인 네트워크 내의 고유의 어드레스가 할당된다(예컨대, 2aae6a1150787a834382d0202ef1e89e3bc89d4d). 함수 컨트롤러 내의 최신 버전 값(latestVersion)은 업데이트된 함수의 어드레스 및 버전 식별자를 포함하도록 업데이트된다(예컨대, 2aae6a1150787a834382d0202ef1e89e3bc89d4d.2.0.0).
스마트 계약을 사용하는 또다른 트랜잭션(제2 트랜잭션)이 개시된다. 예를 들어, 그리고 상기의 예를 계속 참조하면, 스마트 계약은 RSA 체크섬 값에 대한 함수 호출을 전송할 수 있다. 일부 예에서, 함수 호출은 함수 컨트롤러에 의해 수신된다. 일부 예에서, 함수 호출은 함수에의 입력 및 실행되어야 할 함수의 버전을 나타내는 버전 변수를 포함한다.
일부 구현에서, 함수 컨트롤러는 동일 스마트 계약(예컨대, 39a1509440f8c549dfd6e995def14b1ce3c98e5d)이 함수 호출을 발행하였음을 인식한다. 그 결과, 함수의 또다른 버전(예컨대, 2.0.0)이 이용가능하지만, 함수의 마지막 사용된 버전(예컨대, 1.0.0)이 사용된다. 함수는 입력(예컨대, 메시지)을 처리하여 출력(예컨대, 체크섬 값)을 제공하고, 함수의 실행된 버전에 대응하는 호출 통계 맵 카운트 값이 증분된다. 상기의 예에서 계속하면, 두 번째 호출된 후에, 예시적인 RSA 체크섬 함수에 대한 통계 콘텐츠는 다음과 같이 제공될 수 있다:
{
"23d61f4a88f90be1290c0eeab344992e1a2e8f6d,1.0.0": 2
}
일부 구현에서, 스마트 계약이 함수의 다른 버전을 사용할 수 있다고 결정될 수 있다. 예를 들어, 스마트 계약을 발생시키고 특정 버전(예컨대, 1.0.0)이 사용되었음을 나타낸 사용자가, 스마트 계약의 후속 버전(예컨대, 2.0.0)이 만족스럽다고 결정할 수 있다. 그 결과, 사용자는 버전 맵 내의 버전 식별자를 업데이트할 수 있다(예컨대, 다른 버전을 지정하거나, 버전 식별자를 null로 설정함). 비한정적인 예에서, 버전 식별자는 null로 설정된다. 이 방식으로, 다음 번에 스마트 계약이 함수 호출을 행할 때에, 함수의 최신 버전이 사용될 것이다.
스마트 계약을 사용하는 또다른 트랜잭션(제3 트랜잭션)이 개시된다. 예를 들어, 그리고 상기의 예를 계속 참조하면, 스마트 계약은 RSA 체크섬 값에 대한 함수 호출을 전송할 수 있다. 일부 예에서, 함수 호출은 함수 컨트롤러에 의해 수신된다. 일부 예에서, 함수 호출은 함수에의 입력 및 실행되어야 할 함수의 버전을 나타내는 버전 변수를 포함한다.
일부 구현에서, 함수 컨트롤러는 동일 스마트 계약(예컨대, 39a1509440f8c549dfd6e995def14b1ce3c98e5d)이 함수 호출을 발행했지만 버전 식별자가 null인 것을 인식한다. 그 결과, 전에는 함수의 제1 버전(예컨대, 1.0.0)이 사용되었지만, 함수의 마지막 사용된 버전(예컨대, 2.0.0)이 사용된다. 함수는 입력(예컨대, 메시지)을 처리하여 출력(예컨대, 체크섬 값)을 제공하고, 함수의 실행된 버전에 대응하는 호출 통계 맵 카운트 값이 증분된다. 상기의 예에서 계속하면, 예시적인 RSA 체크섬 함수에 대한 통계 콘텐츠는 다음과 같이 제공될 수 있다:
{
"23d61f4a88f90be1290c0eeab344992e1a2e8f6d,1.0.0": 2
"2aae6a1150787a834382d0202ef1e89e3bc89d4d.2.0.0":1
}
도 5는 본 명세서의 구현에 따라 실행될 수 있는 예시적인 프로세스(500)를 도시한다. 일부 구현에서, 예시적인 프로세스(500)는 하나 이상의 컴퓨팅 디바이스를 사용하여 실행되는 하나 이상의 컴퓨터 실행가능한 프로그램을 사용하여 수행될 수 있다.
502에서, 트랜잭션이 개시된다. 예를 들어, 트랜잭션은 블록체인 네트워크의 일부인 스마트 계약을 사용할 수 있다. 트랜잭션은 자동으로 개시될 수 있거나, 또는 트랜잭션은 사용자에 의해 프롬프트될 수 있다. 트랜잭션은 예를 들어, 사용자가 스마트 계약에서 사용하기 위한 난수(random number)를 생성하도록 사용하고 있는 트랜잭션일 수 있다.
504에서, 스마트 계약에 의해 함수가 호출된다. 예로서, 함수 호출(410)은, 예컨대 FaaS 플랫폼에 의해 제공되는 난수 발생기 함수를 호출하도록 이루어질 수 있다. 일부 구현에서, 함수 호출은 함수의 어드레스 및 함수의 버전 식별자를 더 포함할 수 있다. 예를 들어, 스마트 계약(406)은, 함수 호출(410)에서, 함수와 연관되어 있는 블록체인 내의 어드레스 및 호출될 함수의 특정 버전을 식별하는 버전 번호를 포함할 수 있다.
506에서, 스마트 계약은 결과(들)를 수신한다. 예를 들어, 412는 난수 함수에 의해 결정된 난수와 같은 함수 결과(424)를 제공할 수 있다. 508에서, 스마트 계약은 결과(들)에 기초하여 트랜잭션을 완료한다. 예로서, 난수가 수신된 후에, 스마트 계약(406)은 사용자가 요청하였던 난수 연산을 완료할 수 있다. 510에서, 트랜잭션이 블록체인에 기입된다. 예를 들어, 트랜잭션(428)이 기록될 수 있으며, 난수 함수가 또다른 때에 사용되었다는 것을 나타내는 통계를 업데이트한다.
기재된 특징들은 디지털 전자 회로에서, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수 있다. 장치는 프로그램가능 프로세서에 의한 실행을 위해 정보 캐리어에(예컨대, 기계 판독가능한 저장 디바이스에) 유형으로(tangibly) 구현된 컴퓨터 프로그램 제품으로 구현될 수 있고, 방법 단계들은 입력 데이터에 대해 연산하고 출력을 생성함으로써 기재된 구현들의 기능을 수행하도록 명령어들의 프로그램을 실행하는 프로그램가능 프로세서에 의해 수행될 수 있다. 기재된 특징들은 유리하게, 데이터 저장 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령어를 수신하고 이에 데이터 및 명령어를 전송하도록 결합된 적어도 하나의 프로그램가능 프로세서를 포함하는 프로그램가능 시스템 상에서 실행가능한 하나 이상의 컴퓨터 프로그램에서 구현될 수 있다. 컴퓨터 프로그램은 특정 활동을 수행하거나 특정 결과를 가져오도록 컴퓨터에서 직접 또는 간접적으로 사용될 수 있는 명령어 세트이다. 컴퓨터 프로그램은 컴파일 또는 해석 언어를 포함하는 임의의 형태의 프로그래밍 언어로 쓰여질 수 있고, 단독형 프로그램으로서 또는 컴퓨팅 환경에서 사용하기에 적합한 모듈, 컴포넌트, 서브루틴, 또는 다른 단위로서를 포함하는 임의의 형태로 배치될 수 있다.
명령어들의 프로그램의 실행을 위한 적합한 프로세서는 예로써, 범용 및 특수 용도 마이크로프로세서 둘 다를 그리고 임의의 종류의 컴퓨터의 단독 프로세서 또는 복수의 프로세서 중의 하나를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어 및 데이터를 수신할 것이다. 컴퓨터의 요소들은 명령어를 실행하기 위한 프로세서 및 명령어와 데이터를 저장하기 위한 하나 이상의 메모리를 포함할 수 있다. 일반적으로, 컴퓨터는 또한, 데이터 파일을 저장하기 위한 하나 이상의 대용량 저장 디바이스를 포함하거나 이에 동작가능하게 연결될 수 있고, 이러한 디바이스는 내부 하드 디스크 및 이동식 디스크와 같은 자기 디스크, 자기-광학 디스크, 및 광 디스크를 포함한다. 컴퓨터 프로그램 명령어 및 데이터를 유형으로 구현하기에 적합한 저장 디바이스는, 예로써, EPROM, EEPROM, 및 플래시 메모리 디바이스와 같은 반도체 메모리 디바이스; 내부 하드 디스크 및 이동식 디스크와 같은 자기 디스크; 자기-광학 디스크; 및 CD-ROM 및 DVD-ROM 디스크를 포함하는 모든 형태의 비휘발성 메모리를 포함한다. 프로세서 및 메모리는 ASIC(application-specific integrated circuit)에 의해 보완되거나 ASIC에 통합될 수 있다.
사용자와의 상호작용을 제공하기 위해, 사용자에게 정보를 디스플레이하기 위한 CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터와 같은 디스플레이 디바이스 및 사용자가 컴퓨터에 입력을 제공할 수 있는 마우스나 트랙볼과 같은 포인팅 디바이스 및 키보드를 갖는 컴퓨터 상에서 특징들이 구현될 수 있다.
특징들은, 데이터 서버와 같은 백엔드 컴포넌트를 포함하거나, 애플리케이션 서버 또는 인터넷 서버와 같은 미들웨어 컴포넌트를 포함하거나, 또는 그래픽 사용자 인터페이스 또는 인터넷 브라우저, 또는 이들의 임의의 조합을 갖는 클라이언트 컴퓨터와 같은 프론트엔드 컴포넌트를 포함하는 컴퓨터 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 통신 네트워크와 같은 임의의 형태 또는 매체의 디지털 데이터 통신에 의해 접속될 수 있다. 통신 네트워크의 예는 예컨대 LAN, WAN, 및 인터넷을 형성하는 컴퓨터와 네트워크를 포함한다.
컴퓨터 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 원격이며 통상적으로 기재된 바와 같은 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는, 각자의 컴퓨터 상에서 실행되며 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다.
또한, 도면에 도시된 논리 흐름은 바람직한 결과를 달성하도록 도시된 특정 순서 또는 순차적 순서를 요구하지 않는다. 또한, 기재된 흐름으로부터 다른 단계가 제공될 수 있거나 단계가 제거될 수 있고, 기재된 시스템에 다른 컴포넌트가 추가되거나 삭제될 수 있다. 따라서, 다른 구현들은 다음의 청구항의 범위 내에 있다.
본 명세서의 다수의 구현이 기재되었다. 그러나, 본 명세서의 진정한 의미 및 범위에서 벗어나지 않고서 다양한 수정이 행해질 수 있음을 이해할 것이다. 따라서, 다른 구현들은 다음의 청구항의 범위 내에 있다.

Claims (24)

  1. 블록체인 네트워크(blockchain network) 내에서 FaaS(function-as-a-service) 플랫폼을 제공하기 위한 컴퓨터 구현 방법에 있어서, 상기 컴퓨터 구현 방법은 비일시적 컴퓨터 판독가능한 저장 매체에 저장된 명령어가 컴퓨터에 포함되는 하나 이상의 프로세서에 의해 실행됨으로써 수행되고, 상기 컴퓨터 구현 방법은,
    상기 블록체인 네트워크 내의 제1 블록체인 노드에 의해, 상기 블록체인 네트워크 내의 상기 제1 블록체인 노드 또는 제2 블록체인 노드와 연관된 스마트 계약(smart contract)을 사용하여 트랜잭션을 실행하라는 요청을 개시하는 단계;
    상기 스마트 계약에 의해, 상기 트랜잭션을 실행하라는 요청을 수신하는 단계;
    상기 스마트 계약에 의해, 실행할 상기 트랜잭션의 제1 함수를 결정하는 단계;
    상기 스마트 계약으로부터, 그리고 상기 블록체인 네트워크 내에서 실행되는 제1 함수 컨트롤러에 의해, 상기 트랜잭션의 제1 함수를 실행하기 위한 제1 함수 호출(function call) - 상기 제1 함수 호출은 실행을 위한 상기 제1 함수 호출의 데이터를 포함함 - 을 수신하는 단계;
    상기 제1 함수 컨트롤러에 의해, 제1 함수 컴포넌트에, 실행을 위한 상기 제1 함수 호출의 데이터를 전송하는 단계;
    상기 제1 함수 컴포넌트에 의해, 실행을 위한 상기 제1 함수 호출의 데이터에 기초하여, 상기 트랜잭션의 상기 제1 함수를 실행하는 단계;
    상기 제1 함수 컨트롤러에 의해, 상기 제1 함수 컴포넌트로부터 제1 함수 실행 결과를 수신하는 단계; 및
    상기 제1 함수 실행 결과에 적어도 부분적으로 기초한 상기 스마트 계약에 의한 상기 트랜잭션의 실행 전에, 상기 제1 함수 컨트롤러에 의해, 상기 스마트 계약에 상기 제1 함수 실행 결과를 제공하는 단계
    를 포함하는 컴퓨터 구현 방법.
  2. 청구항 1에 있어서, 상기 제1 함수 호출은 상기 트랜잭션의 상기 제1 함수의 어드레스 및 상기 트랜잭션의 상기 제1 함수의 버전 식별자를 더 포함하는 것인 컴퓨터 구현 방법.
  3. 청구항 2에 있어서, 상기 트랜잭션의 상기 제1 함수의 상기 버전 식별자는, 상기 트랜잭션의 상기 제1 함수의 최신 버전이 실행될 것임을 나타내는 null인 것인 컴퓨터 구현 방법.
  4. 청구항 1에 있어서, 상기 제1 함수 컨트롤러에 의해, 상기 제1 함수 호출에 응답하여 실행된 상기 트랜잭션의 상기 제1 함수의 버전과 연관된 통계를 업데이트하는 단계를 더 포함하는 컴퓨터 구현 방법.
  5. 청구항 4에 있어서, 상기 통계는, 상기 트랜잭션의 상기 제1 함수의 각각의 버전이 실행된 횟수를 나타내는 것인 컴퓨터 구현 방법.
  6. 청구항 1에 있어서,
    상기 스마트 계약으로부터, 그리고 상기 블록체인 네트워크 내에서 실행되는 제2 함수 컨트롤러에 의해, 상기 트랜잭션의 제2 함수를 실행하기 위한 제2 함수 호출 - 상기 제2 함수 호출은 실행을 위한 상기 제2 함수 호출의 데이터를 포함함 - 을 수신하는 단계로서, 상기 트랜잭션의 상기 제2 함수는 상기 트랜잭션의 상기 제1 함수와 상이한 것이고, 상기 제2 함수 컨트롤러는 상기 제1 함수 컨트롤러와 상이한 것인, 상기 제2 함수 호출을 수신하는 단계;
    상기 제2 함수 컨트롤러에 의해, 제2 함수 컴포넌트에, 실행을 위한 상기 제2 함수 호출의 데이터를 전송하는 단계로서, 상기 제2 함수 컴포넌트는 상기 제1 함수 컴포넌트와 상이한 것인, 실행을 위한 상기 제2 함수 호출의 데이터를 전송하는 단계;
    상기 제2 함수 컴포넌트에 의해, 실행을 위한 상기 제2 함수 호출의 데이터에 기초하여, 상기 트랜잭션의 상기 제2 함수를 실행하는 단계;
    상기 제2 함수 컨트롤러에 의해, 상기 제2 함수 컴포넌트로부터 제2 함수 실행 결과를 수신하는 단계; 및
    상기 제2 함수 실행 결과에 적어도 부분적으로 기초한 상기 스마트 계약에 의한 상기 트랜잭션의 실행 전에, 상기 제2 함수 컨트롤러에 의해, 상기 스마트 계약에 상기 제2 함수 실행 결과를 제공하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  7. 청구항 6에 있어서, 상기 트랜잭션의 상기 제1 함수와 상기 트랜잭션의 상기 제2 함수는 상이한 프로바이더에 의해 제공되는 것인 컴퓨터 구현 방법.
  8. 하나 이상의 컴퓨터에 의해 실행되는, 상기 하나 이상의 컴퓨터로 하여금 블록체인 네트워크 내에서 FaaS(function-as-a-service) 플랫폼을 제공하기 위한 동작들을 수행하게 하는 명령어들로 인코딩된 하나 이상의 비일시적 컴퓨터 판독가능한 저장 매체에 있어서, 상기 동작들은,
    상기 블록체인 네트워크 내의 제1 블록체인 노드에 의해, 상기 블록체인 네트워크 내의 상기 제1 블록체인 노드 또는 제2 블록체인 노드와 연관된 스마트 계약(smart contract)을 사용하여 트랜잭션을 실행하라는 요청을 개시하는 동작;
    상기 스마트 계약에 의해, 상기 트랜잭션을 실행하라는 요청을 수신하는 동작;
    상기 스마트 계약에 의해, 실행할 상기 트랜잭션의 제1 함수를 결정하는 동작;
    상기 스마트 계약으로부터, 그리고 상기 블록체인 네트워크 내에서 실행되는 제1 함수 컨트롤러에 의해, 상기 트랜잭션의 제1 함수를 실행하기 위한 제1 함수 호출(function call) - 상기 제1 함수 호출은 실행을 위한 상기 제1 함수 호출의 데이터를 포함함 - 을 수신하는 동작;
    상기 제1 함수 컨트롤러에 의해, 제1 함수 컴포넌트에, 실행을 위한 상기 제1 함수 호출의 데이터를 전송하는 동작;
    상기 제1 함수 컴포넌트에 의해, 실행을 위한 상기 제1 함수 호출의 데이터에 기초하여, 상기 트랜잭션의 상기 제1 함수를 실행하는 동작;
    상기 제1 함수 컨트롤러에 의해, 상기 제1 함수 컴포넌트로부터 제1 함수 실행 결과를 수신하는 동작; 및
    상기 제1 함수 실행 결과에 적어도 부분적으로 기초한 상기 스마트 계약에 의한 상기 트랜잭션의 실행 전에, 상기 제1 함수 컨트롤러에 의해, 상기 스마트 계약에 상기 제1 함수 실행 결과를 제공하는 동작
    을 포함하는 것인, 컴퓨터 판독가능한 저장 매체.
  9. 청구항 8에 있어서, 상기 제1 함수 호출은 상기 트랜잭션의 상기 제1 함수의 어드레스 및 상기 트랜잭션의 상기 제1 함수의 버전 식별자를 더 포함하는 것인 컴퓨터 판독가능한 저장 매체.
  10. 청구항 9에 있어서, 상기 트랜잭션의 상기 제1 함수의 상기 버전 식별자는, 상기 트랜잭션의 상기 제1 함수의 최신 버전이 실행될 것임을 나타내는 null인 것인 컴퓨터 판독가능한 저장 매체.
  11. 청구항 8에 있어서, 상기 동작들은, 상기 제1 함수 컨트롤러에 의해, 상기 제1 함수 호출에 응답하여 실행된 상기 트랜잭션의 상기 제1 함수의 버전과 연관된 통계를 업데이트하는 동작을 더 포함하는 것인 컴퓨터 판독가능한 저장 매체.
  12. 청구항 11에 있어서, 상기 통계는, 상기 트랜잭션의 상기 제1 함수의 각각의 버전이 실행된 횟수를 나타내는 것인 컴퓨터 판독가능한 저장 매체.
  13. 청구항 8에 있어서, 상기 동작들은,
    상기 스마트 계약으로부터, 그리고 상기 블록체인 네트워크 내에서 실행되는 제2 함수 컨트롤러에 의해, 상기 트랜잭션의 제2 함수를 실행하기 위한 제2 함수 호출 - 상기 제2 함수 호출은 실행을 위한 상기 제2 함수 호출의 데이터를 포함함 - 을 수신하는 동작으로서, 상기 트랜잭션의 상기 제2 함수는 상기 트랜잭션의 상기 제1 함수와 상이한 것이고, 상기 제2 함수 컨트롤러는 상기 제1 함수 컨트롤러와 상이한 것인, 상기 제2 함수 호출을 수신하는 동작;
    상기 제2 함수 컨트롤러에 의해, 제2 함수 컴포넌트에, 실행을 위한 상기 제2 함수 호출의 데이터를 전송하는 동작으로서, 상기 제2 함수 컴포넌트는 상기 제1 함수 컴포넌트와 상이한 것인, 실행을 위한 상기 제2 함수 호출의 데이터를 전송하는 동작;
    상기 제2 함수 컴포넌트에 의해, 실행을 위한 상기 제2 함수 호출의 데이터에 기초하여, 상기 트랜잭션의 상기 제2 함수를 실행하는 동작;
    상기 제2 함수 컨트롤러에 의해, 상기 제2 함수 컴포넌트로부터 제2 함수 실행 결과를 수신하는 동작; 및
    상기 제2 함수 실행 결과에 적어도 부분적으로 기초한 상기 스마트 계약에 의한 상기 트랜잭션의 실행 전에, 상기 제2 함수 컨트롤러에 의해, 상기 스마트 계약에 상기 제2 함수 실행 결과를 제공하는 동작
    을 포함하는 것인 컴퓨터 판독가능한 저장 매체.
  14. 청구항 13에 있어서, 상기 트랜잭션의 상기 제1 함수와 상기 트랜잭션의 상기 제2 함수는 상이한 프로바이더에 의해 제공되는 것인 컴퓨터 판독가능한 저장 매체.
  15. 시스템에 있어서,
    하나 이상의 컴퓨터; 및
    상기 하나 이상의 컴퓨터에 연결되며, 블록체인 네트워크 내에서 FaaS(function-as-a-service) 플랫폼을 제공하는 동작들을 수행하도록 상기 하나 이상의 컴퓨터에 의해 실행되는 명령어들을 저장한 하나 이상의 메모리를 포함하고, 상기 동작들은,
    상기 블록체인 네트워크 내의 제1 블록체인 노드에 의해, 상기 블록체인 네트워크 내의 상기 제1 블록체인 노드 또는 제2 블록체인 노드와 연관된 스마트 계약(smart contract)을 사용하여 트랜잭션을 실행하라는 요청을 개시하는 동작;
    상기 스마트 계약에 의해, 상기 트랜잭션을 실행하라는 요청을 수신하는 동작;
    상기 스마트 계약에 의해, 실행할 상기 트랜잭션의 제1 함수를 결정하는 동작;
    상기 스마트 계약으로부터, 그리고 상기 블록체인 네트워크 내에서 실행되는 제1 함수 컨트롤러에 의해, 상기 트랜잭션의 제1 함수를 실행하기 위한 제1 함수 호출(function call) - 상기 제1 함수 호출은 실행을 위한 상기 제1 함수 호출의 데이터를 포함함 - 을 수신하는 동작;
    상기 제1 함수 컨트롤러에 의해, 제1 함수 컴포넌트에, 실행을 위한 상기 제1 함수 호출의 데이터를 전송하는 동작;
    상기 제1 함수 컴포넌트에 의해, 실행을 위한 상기 제1 함수 호출의 데이터에 기초하여, 상기 트랜잭션의 상기 제1 함수를 실행하는 동작;
    상기 제1 함수 컨트롤러에 의해, 상기 제1 함수 컴포넌트로부터 제1 함수 실행 결과를 수신하는 동작; 및
    상기 제1 함수 실행 결과에 적어도 부분적으로 기초한 상기 스마트 계약에 의한 상기 트랜잭션의 실행 전에, 상기 제1 함수 컨트롤러에 의해, 상기 스마트 계약에 상기 제1 함수 실행 결과를 제공하는 동작
    을 포함하는 것인, 시스템
  16. 청구항 15에 있어서, 상기 제1 함수 호출은 상기 트랜잭션의 상기 제1 함수의 어드레스 및 상기 트랜잭션의 상기 제1 함수의 버전 식별자를 더 포함하는 것인 시스템.
  17. 청구항 16에 있어서, 상기 트랜잭션의 상기 제1 함수의 상기 버전 식별자는, 상기 트랜잭션의 상기 제1 함수의 최신 버전이 실행될 것임을 나타내는 null인 것인 시스템.
  18. 청구항 15에 있어서, 상기 동작들은, 상기 제1 함수 컨트롤러에 의해, 상기 제1 함수 호출에 응답하여 실행된 상기 트랜잭션의 상기 제1 함수의 버전과 연관된 통계를 업데이트하는 동작을 더 포함하는 것인 시스템.
  19. 청구항 18에 있어서, 상기 통계는, 상기 트랜잭션의 상기 제1 함수의 각각의 버전이 실행된 횟수를 나타내는 것인 시스템.
  20. 청구항 15에 있어서, 상기 동작들은,
    상기 스마트 계약으로부터, 그리고 상기 블록체인 네트워크 내에서 실행되는 제2 함수 컨트롤러에 의해, 상기 트랜잭션의 제2 함수를 실행하기 위한 제2 함수 호출 - 상기 제2 함수 호출은 실행을 위한 상기 제2 함수 호출의 데이터를 포함함 - 을 수신하는 동작으로서, 상기 트랜잭션의 상기 제2 함수는 상기 트랜잭션의 상기 제1 함수와 상이한 것이고, 상기 제2 함수 컨트롤러는 상기 제1 함수 컨트롤러와 상이한 것인, 상기 제2 함수 호출을 수신하는 동작;
    상기 제2 함수 컨트롤러에 의해, 제2 함수 컴포넌트에, 실행을 위한 상기 제2 함수 호출의 데이터를 전송하는 동작으로서, 상기 제2 함수 컴포넌트는 상기 제1 함수 컴포넌트와 상이한 것인, 실행을 위한 상기 제2 함수 호출의 데이터를 전송하는 동작;
    상기 제2 함수 컴포넌트에 의해, 실행을 위한 상기 제2 함수 호출의 데이터에 기초하여, 상기 트랜잭션의 상기 제2 함수를 실행하는 동작;
    상기 제2 함수 컨트롤러에 의해, 상기 제2 함수 컴포넌트로부터 제2 함수 실행 결과를 수신하는 동작; 및
    상기 제2 함수 실행 결과에 적어도 부분적으로 기초한 상기 스마트 계약에 의한 상기 트랜잭션의 실행 전에, 상기 제2 함수 컨트롤러에 의해, 상기 스마트 계약에 상기 제2 함수 실행 결과를 제공하는 동작
    을 더 포함하는 것인 시스템.
  21. 청구항 20에 있어서, 상기 트랜잭션의 상기 제1 함수와 상기 트랜잭션의 상기 제2 함수는 상이한 프로바이더에 의해 제공되는 것인 시스템.
  22. 삭제
  23. 삭제
  24. 삭제
KR1020197011389A 2018-11-27 2018-11-27 블록체인 네트워크에서의 FaaS 플랫폼 KR102193533B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/117637 WO2019072282A2 (en) 2018-11-27 2018-11-27 FUNCTION-AS-A-SERVICE PLATFORM (FAAS) IN BLOCK CHAIN NETWORKS

Publications (2)

Publication Number Publication Date
KR20200066255A KR20200066255A (ko) 2020-06-09
KR102193533B1 true KR102193533B1 (ko) 2020-12-23

Family

ID=66100148

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197011389A KR102193533B1 (ko) 2018-11-27 2018-11-27 블록체인 네트워크에서의 FaaS 플랫폼

Country Status (16)

Country Link
US (2) US10671380B2 (ko)
EP (1) EP3552166B1 (ko)
JP (1) JP6756914B2 (ko)
KR (1) KR102193533B1 (ko)
CN (1) CN110622192B (ko)
AU (1) AU2018348323C1 (ko)
BR (1) BR112019007939B1 (ko)
CA (1) CA3041223C (ko)
ES (1) ES2880455T3 (ko)
MX (1) MX2019004667A (ko)
PH (1) PH12019500872A1 (ko)
PL (1) PL3552166T3 (ko)
RU (1) RU2744322C2 (ko)
SG (1) SG11201903493YA (ko)
TW (1) TWI706647B (ko)
WO (1) WO2019072282A2 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG11201903493YA (en) 2018-11-27 2019-05-30 Alibaba Group Holding Ltd Function-as-a-service (faas) platform in blockchain networks
US11405182B2 (en) 2018-12-03 2022-08-02 Ebay Inc. Adaptive security for smart contracts using high granularity metrics
US11250125B2 (en) 2018-12-03 2022-02-15 Ebay Inc. Highly scalable permissioned block chains
US11263315B2 (en) 2018-12-03 2022-03-01 Ebay Inc. System level function based access control for smart contract execution on a blockchain
US10841153B2 (en) * 2018-12-04 2020-11-17 Bank Of America Corporation Distributed ledger technology network provisioner
FR3094521A1 (fr) * 2019-03-29 2020-10-02 Orange Procédés et dispositifs permettant de prouver la connaissance d’une donnée par un utilisateur d’une chaîne de blocs
CN110704063B (zh) * 2019-09-30 2021-09-07 支付宝(杭州)信息技术有限公司 编译和执行智能合约的方法及装置
CN111158645B (zh) * 2019-12-10 2022-09-20 杭州中天微系统有限公司 提供集成开发环境的系统和方法
TWI804728B (zh) * 2020-05-15 2023-06-11 天宿智能科技股份有限公司 基於區塊鏈之資產動態價值管理系統及其方法
US11948010B2 (en) 2020-10-12 2024-04-02 International Business Machines Corporation Tag-driven scheduling of computing resources for function execution
CN112804359B (zh) * 2021-03-30 2021-07-06 支付宝(杭州)信息技术有限公司 提供跨链消息的方法和装置
CN113472512A (zh) * 2021-06-10 2021-10-01 东软集团股份有限公司 智能合约执行方法、装置、存储介质及电子设备
CN113542435B (zh) * 2021-09-15 2021-12-14 支付宝(杭州)信息技术有限公司 一种用户服务使用方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170187838A1 (en) 2015-12-28 2017-06-29 Quixey, Inc. Adaptive Function-Based Dynamic Application Extension Framework

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6918110B2 (en) * 2001-04-11 2005-07-12 Hewlett-Packard Development Company, L.P. Dynamic instrumentation of an executable program by means of causing a breakpoint at the entry point of a function and providing instrumentation code
US7844574B2 (en) * 2008-04-16 2010-11-30 International Business Machines Corporation Systems, methods and computer program products for automatic network-based persistent XML storage and management
JP6374666B2 (ja) 2014-02-19 2018-08-15 キヤノン株式会社 通信装置およびその制御方法、ならびにプログラム
JP6037460B2 (ja) * 2014-04-14 2016-12-07 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation サービス提供装置、プログラム、及び、方法
US10033702B2 (en) * 2015-08-05 2018-07-24 Intralinks, Inc. Systems and methods of secure data exchange
WO2017070575A1 (en) 2015-10-23 2017-04-27 Oracle International Corporation Self describing configuration with support for sharing data tables
US20170140408A1 (en) * 2015-11-16 2017-05-18 Bank Of America Corporation Transparent self-managing rewards program using blockchain and smart contracts
US9992028B2 (en) * 2015-11-26 2018-06-05 International Business Machines Corporation System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger
WO2017112664A1 (en) * 2015-12-21 2017-06-29 Kochava Inc. Self regulating transaction system and methods therefor
EP3193299A1 (en) * 2016-01-15 2017-07-19 Accenture Global Services Limited Device, method and system for autonomous selection of a commodity supplier through a blockchain distributed database
EP3479519B1 (en) 2016-08-30 2022-11-02 Commonwealth Scientific and Industrial Research Organisation Dynamic access control on blockchain
WO2018051305A1 (en) * 2016-09-19 2018-03-22 Thomson Reuters Global Resources Unlimited Company Systems and methods for interception of smart contracts
KR102639537B1 (ko) * 2016-10-28 2024-02-23 엔체인 홀딩스 리미티드 블록체인을 통한 결정론적 유한 오토마타(DFAs) 구현을 위한 시스템 및 방법
CN106603698A (zh) * 2016-12-28 2017-04-26 北京果仁宝科技有限公司 基于dpos的区块链共识方法和节点
RU2658784C1 (ru) * 2017-03-23 2018-06-22 Общество с ограниченной ответственностью "БУБУКА" Способ и система контроля за воспроизведением медиа-контента, включающего объекты интеллектуальных прав
CN107038242B (zh) * 2017-04-24 2020-02-07 杭州趣链科技有限公司 一种面向区块链全局智能合约业务数据解析方法
US11165589B2 (en) * 2017-05-11 2021-11-02 Shapeshift Ag Trusted agent blockchain oracle
CN107220767A (zh) * 2017-05-26 2017-09-29 中山市博林树投资管理有限公司 一种虚拟化资源池环境下的资源共享系统
WO2019033074A1 (en) * 2017-08-11 2019-02-14 Dragonchain, Inc. SYSTEMS AND METHODS OF INTERACTION WITH DISTRIBUTED REGISTERS
JP6987594B2 (ja) * 2017-10-16 2022-01-05 株式会社日立製作所 アクセス権管理方法、アクセス権管理システム、および、アクセス権管理装置
US10095888B1 (en) * 2018-06-04 2018-10-09 Capital One Services, Llc Secure decentralized system utilizing smart contracts, a blockchain, and/or a distributed file system
CN108717466A (zh) * 2018-06-05 2018-10-30 中国平安人寿保险股份有限公司 征信数据存储方法、装置、计算机设备及存储介质
US10915366B2 (en) * 2018-09-28 2021-02-09 Intel Corporation Secure edge-cloud function as a service
SG11201903493YA (en) 2018-11-27 2019-05-30 Alibaba Group Holding Ltd Function-as-a-service (faas) platform in blockchain networks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170187838A1 (en) 2015-12-28 2017-06-29 Quixey, Inc. Adaptive Function-Based Dynamic Application Extension Framework

Also Published As

Publication number Publication date
US10824419B2 (en) 2020-11-03
ES2880455T3 (es) 2021-11-24
PL3552166T3 (pl) 2021-10-25
KR20200066255A (ko) 2020-06-09
EP3552166A4 (en) 2020-01-22
PH12019500872B1 (en) 2019-12-02
CN110622192A (zh) 2019-12-27
US10671380B2 (en) 2020-06-02
EP3552166A2 (en) 2019-10-16
BR112019007939B1 (pt) 2021-09-21
RU2019111902A (ru) 2020-10-19
RU2744322C2 (ru) 2021-03-05
AU2018348323C1 (en) 2021-04-29
EP3552166B1 (en) 2021-05-05
SG11201903493YA (en) 2019-05-30
BR112019007939A2 (pt) 2019-11-12
CA3041223C (en) 2021-07-13
JP6756914B2 (ja) 2020-09-16
PH12019500872A1 (en) 2019-12-02
WO2019072282A2 (en) 2019-04-18
JP2020507140A (ja) 2020-03-05
RU2019111902A3 (ko) 2020-10-19
AU2018348323A1 (en) 2020-06-11
AU2018348323B2 (en) 2020-11-05
MX2019004667A (es) 2019-08-21
WO2019072282A3 (en) 2019-10-03
TW202021311A (zh) 2020-06-01
US20200225937A1 (en) 2020-07-16
CN110622192B (zh) 2023-07-14
CA3041223A1 (en) 2019-04-18
TWI706647B (zh) 2020-10-01
US20190244294A1 (en) 2019-08-08

Similar Documents

Publication Publication Date Title
KR102193533B1 (ko) 블록체인 네트워크에서의 FaaS 플랫폼
KR102206940B1 (ko) 스마트 계약을 사용하여 다자간 트랜잭션을 실행하는 방법
KR102151893B1 (ko) 탈중앙화 결정을 사용하는 블록체인 스마트 계약 업데이트
KR102225973B1 (ko) 블록체인 네트워크들을 위한 테스트 플랫폼
US11663197B2 (en) Convolutional and ephemeral datachains with conditional period
TW202023224A (zh) 事件驅動的區塊鏈工作流程處理
US10540344B2 (en) Utilizing nonce table to resolve concurrent blockchain transaction failure

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