JP2020507140A - ブロックチェーンネットワーク内のファンクションアズアサービス(FaaS)プラットフォーム - Google Patents

ブロックチェーンネットワーク内のファンクションアズアサービス(FaaS)プラットフォーム Download PDF

Info

Publication number
JP2020507140A
JP2020507140A JP2019521361A JP2019521361A JP2020507140A JP 2020507140 A JP2020507140 A JP 2020507140A JP 2019521361 A JP2019521361 A JP 2019521361A JP 2019521361 A JP2019521361 A JP 2019521361A JP 2020507140 A JP2020507140 A JP 2020507140A
Authority
JP
Japan
Prior art keywords
function
controller
call
component
smart contract
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2019521361A
Other languages
English (en)
Other versions
JP6756914B2 (ja
JP2020507140A5 (ja
Inventor
カイライ・シャオ
シュミン・ル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2020507140A publication Critical patent/JP2020507140A/ja
Publication of JP2020507140A5 publication Critical patent/JP2020507140A5/ja
Application granted granted Critical
Publication of JP6756914B2 publication Critical patent/JP6756914B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本明細書の実装形態は、ブロックチェーンネットワーク内で実行する関数コントローラが、関数を実行するための関数呼出しをスマートコントラクトから受信するステップであって、関数呼出しが関数の実行のためのデータを含む、受信するステップと、関数コントローラが、関数呼出しのデータを関数構成要素に送信するステップであって、関数構成要素が関数呼出しのデータに基づいて関数を実行する、送信するステップと、関数コントローラが、関数結果を関数構成要素から受信するステップと、関数コントローラが、関数結果をスマートコントラクトに提供するステップとを含む。

Description

本発明は、ブロックチェーンネットワーク内のファンクションアズアサービス(FaaS)プラットフォームに関する。
コンセンサスネットワークおよび/またはブロックチェーンネットワークと呼ばれることもある分散元帳システム(DLS:Distributed ledger systems)は、参加エンティティがデータをセキュアに不変に記憶することを可能にする。DLSは、一般に、いずれの特定の使用事例(たとえば、暗号通貨)とも無関係に、ブロックチェーンネットワークと呼ばれる。ブロックチェーンネットワークの例示的なタイプは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、およびコンソーシアムブロックチェーンネットワークを含み得る。パブリックブロックチェーンネットワークは、すべてのエンティティがDLSを使用し、コンセンサスプロセスに参加するために開かれる。プライベートブロックチェーンネットワークは、読取り許可および書込み許可を中央で制御する特定のエンティティに提供される。コンソーシアムブロックチェーンネットワークは、コンセンサスプロセスを制御するエンティティのえり抜きのグループに提供され、アクセス制御レイヤを含む。
スマートコントラクトは、ブロックチェーンネットワーク内で実行して、1つまたは複数の関数を実行することができる。スマートコントラクトは、コード化関数を含むモノリシックアプリケーションとして説明される場合がある。モノリシックアプリケーションとして、スマートコントラクト(たとえば、各関数のコーディング、スマートコントラクト全体の更新をもたらす、関数の更新)をサポートするために、比較的ロバストな開発動作が必要とされる場合がある。
本明細書の実装形態は、ブロックチェーンネットワーク内にアプリケーションをプロビジョニングするためのコンピュータ実装方法を含む。より詳細には、本明細書の実装形態は、ブロックチェーンネットワーク内で実行するアプリケーションに関数をプロビジョニングするためのファンクションアズアサービス(FaaS:function-as-a-service)プラットフォームを対象とする。
いくつかの実装形態では、活動は、ブロックチェーンネットワーク内で実行する第1の関数コントローラが、第1の関数を実行するための第1の関数呼出しをスマートコントラクトから受信するステップであって、第1の関数呼出しが第1の関数の実行のためのデータを含む、受信するステップと、第1の関数コントローラが、第1の関数呼出しのデータを第1の関数構成要素に送信するステップであって、第1の関数構成要素が第1の関数呼出しのデータに基づいて第1の関数を実行する、送信するステップと、第1の関数コントローラが、第1の関数結果を第1の関数構成要素から受信するステップと、第1の関数コントローラが、第1の関数結果をスマートコントラクトに提供するステップとを含む。他の実装形態は、コンピュータ記憶デバイス上で符号化された、これらの方法の活動を実行するように構成された、対応するシステム、装置、およびコンピュータプログラムを含む。
これらのおよび他の実装形態は、各々、以下の特徴のうちの1つまたは複数を随意に含み得る:第1の関数呼出しは、第1の関数のアドレスおよび第1の関数のバージョン識別子をさらに含む;バージョン識別子は、第1の関数の最新バージョンが実行されるべきであることを指示するヌルである;活動は、第1の関数コントローラが、第1の関数呼出しに応じて実行された第1の関数のバージョンに関連する統計を更新するステップをさらに含む;統計は、第1の関数の各バージョンが実行されている回数を指示する;活動は、ブロックチェーンネットワーク内で実行する第2の関数コントローラが、第2の関数を実行するための第2の関数呼出しをスマートコントラクトから受信するステップであって、第2の関数呼出しが第2の関数の実行に関するデータを含む、受信するステップであって、第2の関数が第1の関数とは異なり、第2の関数コントローラが第1の関数コントローラとは異なる、受信するステップと、第2の関数コントローラが、第2の関数呼出しのデータを第2の関数構成要素に送信するステップであって、第2の関数構成要素が第2の関数呼出しのデータに基づいて第2の関数を実行し、第2の関数構成要素が第1の関数構成要素とは異なる、送信するステップと、第2の関数コントローラが第2の関数構成要素から生じる第2の関数を受信するステップと、第2の関数コントローラが、第2の関数結果をスマートコントラクトに提供するステップとをさらに含む;第1の関数および第2の関数は異なるプロバイダによって提供される;スマートコントラクトは関数結果に少なくとも部分的に基づいてトランザクションを実行する、トランザクションはブロックチェーンネットワーク内のブロックチェーン内に記録されている。
本明細書はまた、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、本明細書で提供する方法の実装形態による動作を実行させる命令を記憶した、1つまたは複数の非一時的コンピュータ可読記憶媒体を提供する。
本明細書は、本明細書で提供する方法を実装するためのシステムをさらに提供する。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されると1つまたは複数のプロセッサに本明細書で提供する方法の実装形態に従って動作を実行させる命令を記憶した、1つまたは複数のプロセッサに結合されたコンピュータ可読記憶媒体とを含む。
本明細書によるこれらの方法は、本明細書で説明する態様および特徴の任意の組合せを含み得ることが諒解される。すなわち、本明細書による方法は、本明細書で詳細に説明する態様および特徴の組合せに限定されず、提供する態様および特徴の任意の組合せをやはり含む。
本明細書の1つまたは複数の実装形態の詳細が、添付の図面および下記の説明に記載される。本明細書の他の特徴および利点は、説明および図面から、また特許請求の範囲から明らかになるであろう。
本明細書の実装形態を実行するために使用され得る例示的な環境を示す図である。 本明細書の実装形態による例示的な概念アーキテクチャを示す図である。 本明細書の実装形態による、ファンクションアズアサービス(FaaS)プラットフォームに対する例示的な概念アーキテクチャを示す図である。 本明細書の実装形態による、構成要素間の通信を示すスイムレーン図である。 本明細書の実装形態に従って実行され得る例示的なプロセスを示す図である。
様々な図面における同様の参照番号は、同様の要素を示す。
本明細書の実装形態は、ブロックチェーンネットワーク内にアプリケーションをプロビジョニングするためのコンピュータ実装方法を含む。より詳細には、本明細書の実装形態は、ブロックチェーンネットワーク内で実行するアプリケーションに関数をプロビジョニングするためのファンクションアズアサービス(FaaS)プラットフォームを対象とする。いくつかの実装形態では、活動は、ブロックチェーンネットワーク内で実行する関数コントローラが、関数を実行するための関数呼出しをスマートコントラクトから受信するステップであって、関数呼出しが関数の実行のためのデータを含む、受信するステップと、関数コントローラが、関数呼出しのデータを関数構成要素に送信するステップであって、関数構成要素が関数呼出しのデータに基づいて関数を実行する、送信するステップと、関数コントローラが、関数結果を関数構成要素から受信するステップと、関数コントローラが、関数結果をスマートコントラクトに提供するステップとを含む。
本明細書の実装形態に関してさらなる文脈を提供するために、上記で紹介したように、(たとえば、ピアツーピアノードで構成された)コンセンサスネットワークおよびブロックチェーンネットワークと呼ばれることもある分散元帳システム(DLS)は、参加エンティティが、トランザクションをセキュアに不変に行い、データを記憶することを可能にする。ブロックチェーンという用語は、概して、ビットコイン暗号通貨ネットワークに関連付けられるが、ブロックチェーンは、本明細書において、任意の特定の使用事例とは無関係に、概してDLSを指すために使用される。上記で紹介したように、ブロックチェーンネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、またはコンソーシアムブロックチェーンネットワークとして提供され得る。
パブリックブロックチェーンネットワークでは、コンセンサスプロセスはコンセンサスネットワークのノードによって制御される。たとえば、数百のエンティティ、数千のエンティティ、数百万のエンティティですら、パブリックブロックチェーンネットワーク内で協働することができ、エンティティは各々、パブリックブロックチェーンネットワーク内の少なくとも1つのノードを動作させる。したがって、パブリックブロックチェーンネットワークは、参加エンティティに対してパブリックネットワークと見なされ得る。いくつかの例では、大部分のエンティティ(ノード)は、ブロックを有効化させ、ブロックチェーンネットワークのブロックチェーン(分散元帳)に追加するために、すべてのブロックに署名しなければならない。例示的なパブリックブロックチェーンネットワークは、ピアツーピア支払いネットワークであるビットコインネットワークを含む。ビットコインネットワークは、ブロックチェーンと呼ばれる分散元帳を活用する。上記のように、ブロックチェーンという用語は、しかしながら、概して、ビットコインネットワークとは特に無関係に分散元帳を指すために使用される。
概して、パブリックブロックチェーンネットワークは、公開トランザクションをサポートする。公開トランザクションは、パブリックブロックチェーンネットワーク内のノードのすべてと共有され、グローバルブロックチェーン内に記憶される。グローバルブロックチェーンは、すべてのノードにわたって複製されるブロックチェーンである。すなわち、すべてのノードは、グローバルブロックチェーンに関して完全な状態コンセンサスである。コンセンサス(たとえば、ブロックチェーンに対してブロックを追加する合意)を達成するために、パブリックブロックチェーンネットワーク内でコンセンサスプロトコルが実装される。例示的なコンセンサスプロトコルは、限定はしないが、ビットコインネットワーク内で実装されるプルーフオブワーク(POW:proof-of-work)を含む。
概して、プライベートブロックチェーンネットワークは、読取り許可および書込み許可を中央で制御する特定のエンティティに提供される。エンティティは、どのノードがブロックチェーンネットワークに参加することが可能であるかを制御する。したがって、プライベートブロックチェーンネットワークは、概して、誰がネットワークに参加することが可能にされるか、およびそれらの参加レベル(たとえば、一定のトランザクションのみ)に制限を設ける、許可されたネットワークを指す。様々なタイプのアクセス制御機構が使用され得る(たとえば、既存の参加者は、新しいエンティティの追加に投票する、規制当局は、承認を制御し得る)。
概して、コンソーシアムブロックチェーンネットワークは、参加エンティティ間でプライベートである。コンソーシアムブロックチェーンネットワークでは、コンセンサスプロセスは、許可されたノードのセットによって制御され、1つまたは複数のノードは、それぞれのエンティティ(たとえば、金融機関、保険会社)によって動作させられる。たとえば、10個のエンティティのコンソーシアム(たとえば、金融機関、保険会社)は、コンソーシアムブロックチェーンネットワークを動作させることができ、エンティティの各々は、コンソーシアムブロックチェーンネットワーク内で少なくとも1つのノードを動作させる。したがって、コンソーシアムブロックチェーンネットワークは、参加エンティティに対してプライベートネットワークと見なされ得る。いくつかの例では、各エンティティ(ノード)は、ブロックを有効化させ、ブロックチェーンに追加するために、すべてのブロックに署名しなければならない。いくつかの例では、エンティティ(ノード)の少なくともサブセット(たとえば、少なくとも7個のエンティティ)は、ブロックを有効化させ、ブロックチェーンに追加するために、すべてのブロックに署名しなければならない。
本明細書の実装形態は、参加するエンティティの間で公開されているパブリックブロックチェーンネットワークを参照して、本明細書でさらに詳細に説明される。しかしながら、本明細書の実装形態は、任意の適したタイプのブロックチェーンネットワーク内で実現され得ることが企図される。本明細書で説明する技法はパブリックブロックチェーンネットワークに関連するとして指示されるが、これらの技法は、変更の有無にかかわらず、プライベートブロックチェーンネットワークおよびコンソーシアムブロックチェーンネットワークを含めて、他のタイプのブロックチェーンネットワーク内で使用されてもよい。
本明細書の実装形態は、上記の文脈に鑑みて本明細書でさらに詳細に説明される。より詳細には、上で紹介したように、本明細書の実装形態は、ブロックチェーンネットワーク内で実行するアプリケーションに関数をプロビジョニングするためのFaaSプラットフォームを対象とする。このようにして、開発者は、比較的軽い(たとえば、コーディングの点で)アプリケーション(たとえば、スマートコントラクト)を開発することができ、本明細書のFaaSプラットフォームによって1つまたは複数の関数を呼び出すことができる。
本明細書の実装形態に関してさらなる文脈を提供するために、ブロックチェーンネットワーク内で、ブロックチェーンネットワーク内で実行するためのアプリケーションが開発、テスト、および展開され得る。例示的なアプリケーションは、限定はしないが、スマートコントラクトを含み得る。スマートコントラクトは、様々な当事者に影響を及ぼす契約条項を有する、現実世界の法的契約のデジタル表現として説明される場合がある。スマートコントラクトは、例示的な文脈で、コンソーシアムブロックチェーンネットワーク内で実装、記憶、更新(必要に応じて)、および実行される。スマートコントラクトに関連する契約当事者(たとえば、買い手および売り手)は、コンソーシアムブロックチェーンネットワーク内のノードとして表現される。
いくつかの例では、スマートコントラクトは、情報、事実、関連性、バランス、および契約実行のための論理を実装するために必要な任意の他の情報を記録するために使用され得るデータを記憶することができる。スマートコントラクトは、スマートコントラクトのインスタンスを作成することができ、その中で論理を実行するための関数が呼び出される、関数からなるコンピュータ実行可能プログラムとして説明される場合がある。
スマートコントラクトという技術用語は、オブジェクトクラスおよびオブジェクト指向クラスに基づいて実装され得る。たとえば、スマートコントラクトの条件および構成要素は、スマートコントラクトを実装するアプリケーションによって処理されるオブジェクトとして表現され得る。スマートコントラクト(または、スマートコントラクト内のオブジェクト)は、他のオブジェクト指向オブジェクトとまったく同様に別のスマートコントラクト(または、同じスマートコントラクト内のオブジェクト)を呼び出すことができる。オブジェクトによって行われる呼出しは、たとえば、別のクラスのオブジェクトを作成すること、更新すること、削除すること、伝搬すること、またはそれらのオブジェクトと通信するための呼出しであり得る。オブジェクト間の呼出しは、関数、方法、アプリケーションプログラミングインターフェース(API)、または他の呼出し機構として実装され得る。たとえば、第1のオブジェクトは、第2のオブジェクトを作成するための関数を呼び出すことができる。
統合開発環境(IDE)を使用して、ブロックチェーンネットワークに対するスマートコントラクトなどのアプリケーションを開発、テスト、および展開することができる。例示的なIDEは、スマートコントラクトをSolidityで作成するための、スイス、ツークのEthereum Foundationによって提供されるRemix IDEを含む。
図1は、本明細書の実装形態を実行するために使用され得る例示的な環境100を示す。いくつかの例では、例示的な環境100は、エンティティがプライベートブロックチェーンネットワーク102に参加することを可能にする。例示的な環境100は、コンピューティングシステム106、108と、ネットワーク110とを含む。いくつかの例では、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはこれらの組合せを含み、ウェブサイト、ユーザデバイス(たとえば、コンピューティングデバイス)、およびバックエンドシステムを接続する。いくつかの例では、ネットワーク110は、有線および/またはワイヤレス通信リンクを介してアクセスされ得る。
示した例では、コンピューティングシステム106、108は、各々、プライベートブロックチェーンネットワーク102内のノードとして参加を可能にする任意の適切なコンピューティングシステムを含み得る。例示的なコンピューティングデバイスは、限定はしないが、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピューティングデバイス、およびスマートフォンを含む。いくつかの例では、コンピューティングシステム106、108は、プライベートブロックチェーンネットワーク102と対話するための1つまたは複数のコンピュータ実装サービスをホストする。たとえば、コンピューティングシステム106は、第1のエンティティ(たとえば、ユーザA)が1つまたは複数の他のエンティティ(たとえば、他のユーザ)とのそのトランザクションを管理するために使用するトランザクション管理システムなどの、第1のエンティティのコンピュータ実装サービスをホストし得る。コンピューティングシステム108は、第2のエンティティ(たとえば、ユーザB)が1つまたは複数の他のエンティティ(たとえば、他のユーザ)とのそのトランザクションを管理するために使用するトランザクション管理システムなど、第2のエンティティのコンピュータ実装サービスをホストし得る。図1の例では、プライベートブロックチェーンネットワーク102は、ノードのピアツーピアネットワークとして表され、コンピューティングシステム106、108は、プライベートブロックチェーンネットワーク102に参加する第1のエンティティおよび第2のエンティティのノードをそれぞれ提供する。
図2は、本明細書の実装形態による例示的な概念アーキテクチャ200を示す。例示的な概念アーキテクチャ200は、エンティティレイヤ202と、ホストされたサービスレイヤ204と、ブロックチェーンネットワークレイヤ206とを含む。示した例では、エンティティレイヤ202は3つのエンティティ、Entity_1(E1)、Entity_2(E2)、およびEntity_3(E3)を含み、各エンティティは、それぞれのトランザクション管理システム208を有する。
示した例では、ホストされたサービスレイヤ204は、各トランザクション管理システム208に対するインターフェース210を含む。いくつかの例では、それぞれのトランザクション管理システム208は、プロトコル(たとえば、ハイパーテキストトランスファープロトコルセキュア(HTTPS))を使用してネットワーク(たとえば、図1のネットワーク110)を介してそれぞれのインターフェース210と通信する。いくつかの例では、各インターフェース210は、それぞれのトランザクション管理システム208とブロックチェーンネットワークレイヤ206との間の通信接続を提供する。より詳細には、インターフェース210は、ブロックチェーンネットワークレイヤ206のブロックチェーンネットワーク212と通信する。いくつかの例では、インターフェース210とブロックチェーンネットワークレイヤ206との間の通信はリモートプロシージャコール(RPC:remote procedure calls)を使用して行われる。いくつかの例では、インターフェース210は、それぞれのトランザクション管理システム208に対してブロックチェーンネットワークノードを「ホストする」。たとえば、インターフェース210は、ブロックチェーンネットワーク212にアクセスするためのアプリケーションプログラミングインターフェース(API)を提供する。
本明細書で説明するように、ブロックチェーンネットワーク212は、ブロックチェーン216に情報を不変に記録する複数のノード214を含む、ピアツーピアネットワークとして提供される。単一のブロックチェーン216が概略的に示されているが、ブロックチェーン216の複数のコピーが提供され、ブロックチェーンネットワーク212にわたって維持される。たとえば、各ノード214は、ブロックチェーンのコピーを記憶する。いくつかの実装形態では、ブロックチェーン216は、プライベートブロックチェーンネットワークに参加する2つ以上のエンティティの間で実行されるトランザクションに関連する情報を記憶する。
図3は、本明細書の実装形態による、FaaSプラットフォーム300に対する例示的な概念アーキテクチャを示す。本明細書でさらに詳細に説明するように、FaaSプラットフォーム300は、図3のスマートコントラクト302など、スマートコントラクトの実行をサポートする関数をプロビジョニングするために使用される。いくつかの例では、スマートコントラクト302は、ブロックチェーンのブロック304内に記録されるトランザクションを実行することができる。
図3の例では、FaaSプラットフォーム300は、たとえば、スマートコントラクト302の実行を促進する活動を開始するノードであり得るトランザクションイニシエータ306を含む。たとえば、トランザクションイニシエータ306は、スマートコントラクト302の実行を誘発するための要求308を送ることができる。いくつかの例では、スマートコントラクト302は、要求を受信し、スマートコントラクト302内にプログラムされた論理を実行する。本明細書の実装形態によれば、論理は、FaaSプラットフォーム300の1つまたは複数の関数アプリケーション312に対する呼出しを含み得る。
いくつかの例では、関数アプリケーション312の各々は、それぞれの関数プロバイダ310によって提供される。たとえば、関数プロバイダ310は、入力を受信し、関数を実行し、出力を提供するための関数アプリケーションを開発するエンティティ(たとえば、開発者)を含み得る。いくつかの例では、各関数アプリケーション312は、関数コントローラ314と、1つまたは複数の関数316、318、320(関数コード)とを含む。関数プロバイダ310は、関数(たとえば、関数316)の初期バージョンを提供することができ、その関数を更新して後続のバージョン(たとえば、関数318、320)を提供することができる。
いくつかの実装形態では、スマートコントラクト302は、スマートコントラクト302が関数を呼び出すポイントまで実行する。スマートコントラクト302は、関数呼出しをそれぞれの関数アプリケーション312に送り、その呼出しは関数アプリケーション312によって処理されるべき入力を含む。関数呼出しは、それぞれの関数コントローラ314によって受信される。関数コントローラ314は、入力を関数316、318、320の適切なバージョンに経路指定する。入力を受信する関数316、318、320は、入力を処理して出力を提供し、出力はスマートコントラクト302に送り返される。
いくつかの実装形態では、FaaSプラットフォーム300によって提供される関数アプリケーションは、ブロックチェーン内に記憶され、FaaSプラットフォーム300に登録される。いくつかの例では、登録は、関数の情報をユーザ(たとえば、スマートコントラクトの開発者)に明らかにする。例示的な情報は、限定はしないが、プロバイダ310の識別子、関数の記述、関数のバージョン、および関数の統計(たとえば、各バージョンが呼び出された回数)を含み得る。ユーザは、たとえば、各関数に関連する信頼レベルの指示として情報を使用することができる。たとえば、スマートコントラクトを開発するユーザは、登録を検討し、必要とされる関数を識別することができ、関数を呼び出すようにスマートコントラクトをプログラムすることができる。
以下は、本明細書の実装形態による、FaaSプラットフォームの設計および使用を示すための非限定的な例である。FaaSプロバイダ(たとえば、図3の関数プロバイダ310)とも呼ばれる、1つまたは複数の関数プロバイダは、1つまたは複数のコンピュータ実行可能関数を提供する。たとえば、関数プロバイダは、関数を実行するためのコンピュータ実行可能コードを開発することができ、関数は、入力を受信し、入力を処理し、出力を提供する。例示的な関数は、限定はしないが、任意の長さのメッセージを入力として受信し、チェックサムを出力として(たとえば、128ビット(16オクテット)チェックサム)を製作するRivest-Shamir-Adleman(RSA)チェックサム関数を含み得る。いくつかの例では、関数は純粋関数である。すなわち、この関数は、状態情報を伴わない、繰返し可能な呼出しおよび/またはネスト呼出しである。
いくつかの実装形態では、関数に対して(FaaSコントローラとも呼ばれる)関数コントローラ(図3の関数コントローラ314)が提供される。いくつかの例では、関数コントローラおよび関数はともに、FaaSアプリケーション(たとえば、図3の関数アプリケーション312)とも呼ばれる関数アプリケーションを形成する。いくつかの例では、関数コントローラは、関数のバージョンに関する統計および記憶、ならびに呼出し情報を処理する。下のTable 1(表1)は、関数コントローラによって記憶された例示的な情報を示す。
Figure 2020507140
いくつかの実装形態では、関数が製作使用の準備を整えたとき、関数プロバイダは、関数(コンピュータ実行可能関数コードとして)をブロックチェーンネットワークに提出し、関数コードにブロックチェーンネットワーク内の一意のアドレスが割り当てられる(たとえば、23d61f4a88f90be1290c0eeab344992e1a2e8f6d)。いくつかの例では、関数コントローラは、ブロックチェーンネットワークにも提出され、ブロックチェーンネットワーク内のその独自の一意のアドレスが割り当てられる。いくつかの例では、関数が最初にブロックチェーンネットワークに提出されるとき、最新バージョン値(たとえば、latestVersion)はデフォルト(たとえば、1.0.0)に設定される。いくつかの例では、関数はアドレスおよびバージョン値(たとえば、23d61f4a88f90be1290c0eeab344992e1a2e8f6d, 1.0.0)に基づいてバージョンマップ内に記録され、関数に関する統計は空である。
いくつかの実装形態では、FaaSプラットフォームの1つまたは複数の関数を呼び出す、1つまたは複数のスマートコントラクト(たとえば、スマートコントラクト302)を作成することができる。いくつかの例では、スマートコントラクトを作成するユーザは、関連する関数情報(たとえば、記述、アドレス、バージョン、統計)を有する利用可能な関数のライブラリを閲覧することができ、1つまたは複数の関数を呼び出すようにスマートコントラクトをプログラムし得る。たとえば、スマートコントラクトは、上記で紹介した例示的なRSAチェックサム関数を呼び出す論理を含み得る。いくつかの例では、スマートコントラクトは、呼び出されるべき関数のバージョン(たとえば、1.0.0)を指示するバージョン識別子を含み得る。いくつかの例では、バージョン識別子は、空(すなわち、ヌル)であり得、これは関数の最新バージョンが呼び出されるべきであることを指示する。いくつかの実装形態では、スマートコントラクトが完了し、使用準備が整った後で、スマートコントラクトはブロックチェーンネットワークに提出され、スマートコントラクトはブロックチェーンネットワーク内の一意のアドレス(たとえば、39a1509440f8c549dfd6e995def14b1ce3c98e5d)が割り当てられる。
いくつかの実装形態では、関数コードに対する最終的なアップグレード(update)の影響がスマートコントラクトの実行論理に影響を及ぼす衝撃を防ぐために、関数コントローラのバージョンマップ(versionMap)が更新される。上記の非限定的な例を続けると、RSAチェックサム関数に対する関数アプリケーションのバージョンマップは、以下に更新される:
{
"39a1509440f8c549dfd6e995def14b1ce3c98e5d"
:"23d61f4a88f90be1290c0eeab344992e1a2e8f6d,1.0.0"
}
これは、例示的なスマートコントラクトが例示的なRSAチェックサム関数の第1のバージョンを使用することを指示する。すなわち、関数の第1のバージョンは、常に、特定のスマートコントラクトが関数を呼び出すときに使用されることになる。
図4は、本明細書の実装形態による、構成要素間の通信を示すスイムレーン図400である。本明細書の実装形態によれば、スマートコントラクトを使用するトランザクションを開始する(402)。たとえば、ブロックチェーンネットワーク内のノード(たとえば、自動的に、またはトランザクションイニシエータ404としてサーブするユーザによって促進される)は、スマートコントラクト(たとえば、スマートコントラクト406)を使用してトランザクションを開始することができる。スマートコントラクトは、トランザクションを完了するために必要とされる関数を識別する(408)。いくつかの例では、スマートコントラクトの論理の実行の間に、1つまたは複数のFaaSアプリケーション412に対して1つまたは複数の関数呼出しを行うことができる(410)。各FaaSアプリケーション412は、FaaSコントローラ414とFaaSコード416とを含む。FaaSアプリケーション412は、各プロバイダに対して存在し得る。
上記の例を引き続き参照すると、スマートコントラクトは、RASチェックサム値に関する関数呼出し410を送信することができる。いくつかの例では、関数呼出しは、FaaSコード416によって実行するために関数コントローラ414によって受信される。いくつかの例では、関数呼出しは、関数に対する入力およびバージョン変数を含み、バージョン変数は、実行されるべき関数のバージョンを指示する。いくつかの例では、関数呼出しは、実行されるべきバージョンを指定せず(たとえば、バージョン値はヌルである)、その場合、関数の最新バージョンが使用される。
関数コントローラは、入力(たとえば、メッセージ)を処理して出力(たとえば、チェックサム値)を提供する。関数要求418は、FaaSコード416でできている。上述のように、関数応答420において、関数の指定バージョンまたは関数の最新バージョンが実行される。さらに、関数の実行されたバージョンに対応する呼出し統計マップカウント値が更新される422(たとえば、増分される)。上記の例を続けると、初めに呼び出された後で、例示的なRSAチェックサム関数に対する統計コンテンツが以下として提供され得る:
{
"23d61f4a88f90be1290c0eeab344992e1a2e8f6d,1.0.0":1
}
関数結果424がスマートコントラクトに提供され、スマートコントラクトは、次いで、トランザクションを完了することができる(426)。ブロックチェーン(たとえば、ブロックチェーン430)はトランザクションを記録することができる(428)。確認432をトランザクションイニシエータ404に送ることができる。
ステップ410〜424のシーケンスを、スマートコントラクト406によって呼び出される各関数に対して繰り返すことができる。たとえば、スマートコントラクト406は、2つの異なるFaaSプロバイダから2つの関数を呼び出し、各々から関数結果を受信することができ、スマートコントラクト406はそれらの関数結果を使用してトランザクションを完了する。
いくつかの実装形態では、関数プロバイダは、前に提供された関数を更新することができる。たとえば、関数プロバイダは、関数の少なくとも一部分を記録して、実行を効率的に改善することができる(たとえば、より迅速に、より少ない演算リソース)。したがって、関数の後続のバージョンが提供され得る。上記の例を続けると、RSAチェックサム関数の第2のバージョンを提供し、ブロックチェーンネットワークに提出することができる。関数の第2のバージョンは、ブロックチェーンネットワーク内の一意のアドレス(たとえば、2aae6a1150787a834382d0202ef1e89e3bc89d4d)が割り当てられる。
関数コントローラ内の最終バージョン値(latestVersion)は、更新バージョンのアドレスおよびバージョン識別子(たとえば、2aae6a1150787a834382d0202ef1e89e3bc89d4d.2.0.0)を含むように更新される。
スマートコントラクトを使用する別のトランザクション(第2のトランザクション)が開始される。たとえば、上記の例を引き続き参照すると、スマートコントラクトは、RASチェックサム値に関する関数呼出しを送信することができる。いくつかの例では、関数呼出しは、関数コントローラによって受信される。いくつかの例では、関数呼出しは、関数に対する入力およびバージョン変数を含み、バージョン変数は、実行されるべき関数のバージョンを指示する。
いくつかの実装形態では、関数コントローラは、同じスマートコントラクト(たとえば、39a1509440f8c549dfd6e995def14b1ce3c98e5d)が関数呼出しを発行したことを認識する。したがって、関数の別のバージョン(たとえば、2.0.0)が利用可能であるが、関数の最後に使用されたバージョン(たとえば、1.0.0)が使用される。関数は、入力(たとえば、メッセージ)を処理して出力(たとえば、チェックサム値)を提供し、関数の実行されたバージョンに対応する呼出し統計マップカウント値が増分される。上記の例を続けると、2回目に呼び出された後で、例示的なRSAチェックサム関数に対する統計コンテンツが以下として提供され得る:
{
"23d61f4a88f90be1290c0eeab344992e1a2e8f6d,1.0.0":2
}
いくつかの実装形態では、スマートコントラクトは関数の他のバージョンを使用することができると判定され得る。たとえば、スマートコントラクトを発信し、特定のバージョン(たとえば、1.0.0)が使用されるべきであったことを指示したユーザは、スマートコントラクトの後続バージョン(たとえば、2.0.0)が十分であると判定することができる。したがって、ユーザは、バージョンマップ内のバージョン識別子を更新すること(たとえば、異なるバージョンを指定すること、またはバージョン識別子をヌルに設定すること)ができる。非限定的な例では、バージョン識別子はヌルに設定される。このようにして、スマートコントラクトが次回関数呼出しを行うとき、関数の最新バージョンが使用されることになる。
スマートコントラクトを使用する別のトランザクション(第3のトランザクション)が開始される。たとえば、上記の例を引き続き参照すると、スマートコントラクトは、RASチェックサム値に関する関数呼出しを送信することができる。いくつかの例では、関数呼出しは、関数コントローラによって受信される。いくつかの例では、関数呼出しは、関数に対する入力およびバージョン変数を含み、バージョン変数は、実行されるべき関数のバージョンを指示する。
いくつかの実装形態では、関数コントローラは、同じスマートコントラクト(たとえば、39a1509440f8c549dfd6e995def14b1ce3c98e5d)が関数呼出しを発行したが、バージョン識別子はヌルであることを認識する。したがって、関数の第1のバージョン(たとえば、1.0.0)が前に使用されているが、関数の最後に使用されたバージョン(たとえば、2.0.0)が使用される。関数は、入力(たとえば、メッセージ)を処理して出力(たとえば、チェックサム値)を提供し、関数の実行されたバージョンに対応する呼出し統計マップカウント値が増分される。上記の例を続けると、例示的なRSAチェックサム関数に対する統計コンテンツが以下として提供され得る:
{
"23d61f4a88f90be1290c0eeab344992e1a2e8f6d,1.0.0":2
"2aae6a1150787a834382d0202ef1e89e3bc89d4d.2.0.0":1
}
図5は、本明細書の実装形態に従って実行され得る例示的なプロセス500を示す。いくつかの実装形態では、例示的なプロセス500は、1つまたは複数のコンピューティングデバイスを使用して実行される1つまたは複数のコンピュータ実行可能プログラムを使用して実行され得る。
502において、トランザクションを開始する。たとえば、トランザクションは、ブロックチェーンネットワークの一部であるスマートコントラクトを使用することができる。トランザションは、自動的に開始されてよいか、またはトランザクションはユーザによって促進されてもよい。トランザクションは、たとえば、ユーザがスマートコントラクト内で使用するための乱数を生成するために使用しているトランザクションであり得る。
504において、スマートコントラクトは関数を呼び出す。一例として、関数呼出し410は、FaaSプラットフォームによって提供される乱数生成器関数を呼び出すためなどに行うことができる。いくつかの実装形態では、関数呼出しはさらに、関数のアドレスおよび関数のバージョン識別子を含み得る。たとえば、スマートコントラクト406は、関数呼出し410内に、関数に関連するブロックチェーン内のアドレス、および呼び出されるべき関数の特定のバージョンを識別するバージョン番号を含み得る。
506において、スマートコントラクトは結果を受信する。たとえば、FaaSアプリケーション412は、乱数関数によって判定される乱数など、関数結果424を提供し得る。508において、スマートコントラクトは、結果に基づいてトランザクションを完了する。一例として、乱数が受信された後で、スマートコントラクト406は、ユーザによって要求された乱数動作を完了することができる。510において、トランザクションはブロックチェーンに書き込まれる。たとえば、トランザクション428は記録され、乱数関数が別の時点で使用されていることを指示する統計を更新することができる。
説明した特徴は、デジタル電子回路の形で、またはコンピュータハードウェア、ファームウェア、ソフトウェアの形で、またはそれらの組合せの形で実装され得る。この装置は、プログラマブルプロセッサによって実行するために情報キャリア内で(たとえば、機械可読記憶デバイス内で)有形に実施されるコンピュータプログラム製品の形で実装され得、方法ステップは、入力データを操作し、出力を生成することによって、説明した実装形態の関数を実行するための命令のプログラムを実行するプログラマブルプロセッサによって実行され得る。説明した特徴は、データ記憶システムからデータおよび命令を受信し、データ記憶システムにデータおよび命令を送信するために結合された、少なくとも1つのプログラマブルプロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含む、プログラマブルシステム上で実行可能な1つまたは複数のコンピュータプログラム内で有利に実装され得る。コンピュータプログラムは、一定の活動を実行するため、または一定の結果をもたらすためにコンピュータ内で直接的または間接的に使用され得る命令のセットである。コンピュータプログラムは、コンパイル型言語またはインタープリタ型言語を含めて、任意の形態のプログラミング言語で書き込まれてよく、コンピュータプログラムは、スタンドアロン型プログラムとして、またはモジュール、構成要素、サブルーチン、またはコンピューティング環境で使用するのに適した他のユニットを含めて、任意の形態で展開され得る。
命令のプログラムを実行するのに適したプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、および任意の種類のコンピュータの唯一のプロセッサまたは複数のプロセッサのうちの1つを含む。概して、プロセッサは、読取り専用メモリもしくはランダムアクセスメモリまたは両方から命令およびデータを受信することになる。コンピュータの要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための1つまたは複数のメモリとを含み得る。概して、コンピュータは、データファイルを記憶するための1つまたは複数の大容量記憶デバイスを含んでもよいか、またはそれと通信するように動作可能に結合されてもよく、そのようなデバイスは、内部ハードディスクおよびリムーバブルディスクなどの磁気ディスク、磁気光学ディスク、および光ディスクを含む。コンピュータプログラム命令およびデータを有形に実施するのに適した記憶デバイスは、例として、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内部ハードディスクおよびリムーバブルディスクなどの磁気ディスク、磁気光学ディスク、およびCD-ROMディスクおよびDVD-ROMディスクを含めて、すべての形態の非揮発性メモリを含む。プロセッサおよびメモリは、特定用途向け集積回路(ASIC)によって補完され得るか、またはその中に組み込まれ得る。
ユーザとの対話を提供するために、これらの特徴は、情報をユーザに表示するための、陰極線管(CRT)モニタまたは液晶ディスプレイ(LCD)モニタなどのディスプレイデバイスと、キーボードと、それによりユーザがコンピュータに入力を提供することができる、マウスまたはトラックボールなどのポインティングデバイスとを有するコンピュータ上で実装され得る。
これらの特徴は、データサーバなどのバックエンド構成要素を含むか、もしくはアプリケーションサーバまたはインターネットサーバなどのミドルウェア構成要素を含むか、またはグラフィカルユーザインターフェースまたはインターネットブラウザを有するクライアントコンピュータなどのフロントエンド構成要素を含むか、あるいはそれらの任意の組合せを含む、コンピュータシステム内で実装され得る。このシステムの構成要素は、通信ネットワークなど、任意の形態または媒体のデジタルデータ通信によって接続され得る。通信ネットワークの例は、たとえば、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、ならびにコンピュータおよびインターネットを形成するネットワークを含む。
コンピュータシステムは、クライアントとサーバとを含み得る。クライアントおよびサーバは、概して、互いから離れており、一般に、説明したネットワークなど、ネットワークを介して対話する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で実行し、互いに対してクライアント-サーバ関係を有するコンピュータプログラムにより生じる。
加えて、図に示した論理フローは、所望の結果を達成するために、示した特定の順序、または連続的順序を必要としない。加えて、他のステップを提供することができ、または説明したフローからステップをなくすことができ、説明したシステムに他の構成要素を追加すること、または説明したシステムから他の要素を除去することができる。したがって、他の実装形態が以下の特許請求の範囲内に入る。
本明細書のいくつかの実装形態について説明してきた。それでもなお、本明細書の精神および範囲から逸脱せずに、様々な修正を行うことが可能であることを理解されよう。したがって、他の実装形態が以下の特許請求の範囲内に入る。
100 環境
102 プライベートブロックチェーンネットワーク
106 コンピューティングシステム
108 コンピューティングシステム
110 ネットワーク
200 概念アーキテクチャ
202 エンティティレイヤ
204 ホストサービスレイヤ
206 ブロックチェーンネットワークレイヤ
208 各取引管理システム
210 インターフェース
212 ブロックチェーンネットワーク
214 ノード
216 ブロックチェーン
300 FaaSプラットフォーム
302 スマートコントラクト
304 ブロック
306 トランザクションイニシエータ
308 要求
310 関数プロバイダ
312 機能アプリケーション
314 関数コントローラ
316 関数
318 関数
320 関数
400 スイムレーン図
404 トランザクションイニシエータ
410 関数呼出し
412 FaaSアプリケーション
414 FaaSコントローラ
416 FaaSコード
418 関数要求
420 関数応答
424 関数結果
430 ブロックチェーン
432 確認
500 プロセス

Claims (24)

1つまたは複数のプロセッサによって実行される、ブロックチェーンネットワーク内のファンクションアズアサービス(FaaS)プラットフォームを提供するためのコンピュータ実装方法であって、
前記ブロックチェーンネットワーク内で実行する第1の関数コントローラが、第1の関数を実行するための第1の関数呼出しをスマートコントラクトから受信するステップであって、前記第1の関数呼出しが前記第1の関数の実行のためのデータを含む、受信するステップと、
前記第1の関数コントローラが、前記第1の関数呼出しの前記データを第1の関数構成要素に送信するステップであって、前記第1の関数構成要素が前記第1の関数呼出しの前記データに基づいて前記第1の関数を実行する、送信するステップと、
前記第1の関数コントローラが、第1の関数結果を前記第1の関数構成要素から受信するステップと、
前記第1の関数コントローラが、前記第1の関数結果を前記スマートコントラクトに提供するステップと
を含む、方法。
前記第1の関数呼出しが、前記第1の関数のアドレスおよび前記第1の関数のバージョン識別子をさらに含む、請求項1に記載の方法。
前記バージョン識別子が、前記第1の関数の最新バージョンが実行されるべきであることを指示するヌルである、請求項2に記載の方法。
前記第1の関数コントローラが、前記第1の関数呼出しに応じて実行された前記第1の関数のバージョンに関連する統計を更新するステップをさらに含む、請求項1に記載の方法。
前記統計が、前記第1の関数の各バージョンが実行されている回数を指示する、請求項4に記載の方法。
前記ブロックチェーンネットワーク内で実行する第2の関数コントローラが、第2の関数を実行するための第2の関数呼出しをスマートコントラクトから受信するステップであって、前記第2の関数呼出しが前記第2の関数の実行のためのデータを含み、前記第2の関数が前記第1の関数とは異なり、前記第2の関数コントローラが前記第1の関数コントローラとは異なる、受信するステップと、
前記第2の関数コントローラが、前記第2の関数呼出しの前記データを第2の関数構成要素に送信するステップであって、前記第2の関数構成要素が前記第2の関数呼出しの前記データに基づいて前記第2の関数を実行し、前記第2の関数構成要素が前記第1の関数構成要素とは異なる、送信するステップと、
前記第2の関数コントローラが、第2の関数結果を前記第2の関数構成要素から受信するステップと、
前記第2の関数コントローラが、前記第2の関数結果を前記スマートコントラクトに提供するステップと
をさらに含む、請求項1に記載の方法。
前記第1の関数および前記第2の関数が異なるプロバイダによって提供される、請求項1に記載の方法。
前記スマートコントラクトが前記関数結果に少なくとも部分的に基づいてトランザクションを実行し、前記トランザクションが前記ブロックチェーンネットワークのブロックチェーン内に記録される、請求項1に記載の方法。
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータにブロックチェーンネットワーク内でファンクションアズアサービス(FaaS)プラットフォームを提供するための動作を実行させる命令で符号化された1つまたは複数のコンピュータ可読記憶媒体であって、前記動作が、
前記ブロックチェーンネットワーク内で実行する第1の関数コントローラが、第1の関数を実行するための第1の関数呼出しをスマートコントラクトから受信することであって、前記第1の関数呼出しが前記第1の関数の実行のためのデータを含む、受信することと、
前記第1の関数コントローラが、前記第1の関数呼出しの前記データを第1の関数構成要素に送信することであって、前記第1の関数構成要素が前記第1の関数呼出しの前記データに基づいて前記第1の関数を実行する、送信することと、
前記第1の関数コントローラが、第1の関数結果を前記第1の関数構成要素から受信することと、
前記第1の関数コントローラが、前記第1の関数結果を前記スマートコントラクトに提供することと
を含む、コンピュータ可読記憶媒体。
前記第1の関数呼出しが、前記第1の関数のアドレスおよび前記第1の関数のバージョン識別子をさらに含む、請求項9に記載のコンピュータ可読記憶媒体。
前記バージョン識別子が、前記第1の関数の最新バージョンが実行されるべきであることを指示するヌルである、請求項10に記載のコンピュータ可読記憶媒体。
前記動作が、前記第1の関数コントローラが、前記第1の関数呼出しに応じて実行された前記第1の関数のバージョンに関連する統計を更新することをさらに含む、請求項9に記載のコンピュータ可読記憶媒体。
前記統計が、前記第1の関数の各バージョンが実行されている回数を指示する、請求項12に記載のコンピュータ可読記憶媒体。
前記動作が、
前記ブロックチェーンネットワーク内で実行する第2の関数コントローラが、第2の関数を実行するための第2の関数呼出しをスマートコントラクトから受信することであって、前記第2の関数呼出しが前記第2の関数の実行のためのデータを含み、前記第2の関数が前記第1の関数とは異なり、前記第2の関数コントローラが前記第1の関数コントローラとは異なる、受信することと、
前記第2の関数コントローラが、前記第2の関数呼出しの前記データを第2の関数構成要素に送信することであって、前記第2の関数構成要素が前記第2の関数呼出しの前記データに基づいて前記第2の関数を実行し、前記第2の関数構成要素が前記第1の関数構成要素とは異なる、送信することと、
前記第2の関数コントローラが、第2の関数結果を前記第2の関数構成要素から受信することと、
前記第2の関数コントローラが、前記第2の関数結果を前記スマートコントラクトに提供することと
をさらに含む、請求項9に記載のコンピュータ可読記憶媒体。
前記第1の関数および前記第2の関数が異なるプロバイダによって提供される、請求項14に記載のコンピュータ可読記憶媒体。
前記スマートコントラクトが前記関数結果に少なくとも部分的に基づいてトランザクションを実行し、前記トランザクションが前記ブロックチェーンネットワークのブロックチェーン内に記録される、請求項9に記載のコンピュータ可読記憶媒体。
システムであって、
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに結合され、ブロックチェーンネットワーク内でファンクションアズアサービス(FaaS)プラットフォームを提供するための動作を実行するために前記1つまたは複数のコンピュータによって実行可能な命令で構成された、1つまたは複数のコンピュータ可読メモリと
を備え、前記動作が、
前記ブロックチェーンネットワーク内で実行する第1の関数コントローラが、第1の関数を実行するための第1の関数呼出しをスマートコントラクトから受信することであって、前記第1の関数呼出しが前記第1の関数の実行のためのデータを含む、受信することと、
前記第1の関数コントローラが、前記第1の関数呼出しの前記データを第1の関数構成要素に送信することであって、前記第1の関数構成要素が前記第1の関数呼出しの前記データに基づいて前記第1の関数を実行する、送信することと、
前記第1の関数コントローラが、第1の関数結果を前記第1の関数構成要素から受信することと、
前記第1の関数コントローラが、前記第1の関数結果を前記スマートコントラクトに提供することと
を含む、システム。
前記第1の関数呼出しが、前記第1の関数のアドレスおよび前記第1の関数のバージョン識別子をさらに含む、請求項17に記載のシステム。
前記バージョン識別子が、前記第1の関数の最新バージョンが実行されるべきであることを指示するヌルである、請求項18に記載のシステム。
前記動作が、前記第1の関数コントローラが、前記第1の関数呼出しに応じて実行された前記第1の関数のバージョンに関連する統計を更新することをさらに含む、請求項17に記載のシステム。
前記統計が、前記第1の関数の各バージョンが実行されている回数を指示する、請求項20に記載のシステム。
前記動作が、
前記ブロックチェーンネットワーク内で実行する第2の関数コントローラが、第2の関数を実行するための第2の関数呼出しをスマートコントラクトから受信することであって、前記第2の関数呼出しが前記第2の関数の実行のためのデータを含み、前記第2の関数が前記第1の関数とは異なり、前記第2の関数コントローラが前記第1の関数コントローラとは異なる、受信することと、
前記第2の関数コントローラが、前記第2の関数呼出しの前記データを第2の関数構成要素に送信することであって、前記第2の関数構成要素が前記第2の関数呼出しの前記データに基づいて前記第2の関数を実行し、前記第2の関数構成要素が前記第1の関数構成要素とは異なる、送信することと、
前記第2の関数コントローラが、第2の関数結果を前記第2の関数構成要素から受信することと、
前記第2の関数コントローラが、前記第2の関数結果を前記スマートコントラクトに提供することと
をさらに含む、請求項17に記載のシステム。
前記第1の関数および前記第2の関数が異なるプロバイダによって提供される、請求項22に記載のシステム。
前記スマートコントラクトが前記関数結果に少なくとも部分的に基づいてトランザクションを実行し、前記トランザクションが前記ブロックチェーンネットワークのブロックチェーン内に記録される、請求項17に記載のシステム。
JP2019521361A 2018-11-27 2018-11-27 ブロックチェーンネットワーク内のファンクションアズアサービス(FaaS)プラットフォーム Active JP6756914B2 (ja)

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 (3)

Publication Number Publication Date
JP2020507140A true JP2020507140A (ja) 2020-03-05
JP2020507140A5 JP2020507140A5 (ja) 2020-09-10
JP6756914B2 JP6756914B2 (ja) 2020-09-16

Family

ID=66100148

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019521361A Active JP6756914B2 (ja) 2018-11-27 2018-11-27 ブロックチェーンネットワーク内のファンクションアズアサービス(FaaS)プラットフォーム

Country Status (16)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021179993A (ja) * 2020-05-15 2021-11-18 天宿智能科技股▲分▼有限公司 ブロックチェーンに基づく資産動的価値管理システムとその方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6756914B2 (ja) 2018-11-27 2020-09-16 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ブロックチェーンネットワーク内のファンクションアズアサービス(FaaS)プラットフォーム
US11250125B2 (en) 2018-12-03 2022-02-15 Ebay Inc. Highly scalable permissioned block chains
US11405182B2 (en) 2018-12-03 2022-08-02 Ebay Inc. Adaptive security for smart contracts using high granularity metrics
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 杭州中天微系统有限公司 提供集成开发环境的系统和方法
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 支付宝(杭州)信息技术有限公司 一种用户服务使用方法及装置

Family Cites Families (25)

* 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
CN108604278B (zh) 2015-10-23 2022-03-18 甲骨文国际公司 具有对共享数据表的支持的自描述配置
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
US9898260B2 (en) 2015-12-28 2018-02-20 Samsung Electronics Co., Ltd. Adaptive function-based dynamic application extension framework
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
WO2018039722A1 (en) 2016-08-30 2018-03-08 Commonwealth Scientific And Industrial Research Organisation Dynamic access control on blockchain
US10984494B2 (en) * 2016-09-19 2021-04-20 Refinitiv Us Organization Llc 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
JP6756914B2 (ja) 2018-11-27 2020-09-16 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ブロックチェーンネットワーク内のファンクションアズアサービス(FaaS)プラットフォーム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021179993A (ja) * 2020-05-15 2021-11-18 天宿智能科技股▲分▼有限公司 ブロックチェーンに基づく資産動的価値管理システムとその方法
JP7290224B2 (ja) 2020-05-15 2023-06-13 天宿智能科技股▲分▼有限公司 ブロックチェーンに基づく資産動的価値管理システムとその方法

Also Published As

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

Similar Documents

Publication Publication Date Title
US10824419B2 (en) Function-as-a-service (FaaS) platform in blockchain networks
KR102151893B1 (ko) 탈중앙화 결정을 사용하는 블록체인 스마트 계약 업데이트
JP6727435B2 (ja) ブロックチェーンネットワーク用テストプラットフォーム
KR102206940B1 (ko) 스마트 계약을 사용하여 다자간 트랜잭션을 실행하는 방법
US20200151017A1 (en) Event-driven blockchain workflow processing
KR20200067117A (ko) 블록체인 네트워크 내에서 스마트 에셋의 원자적 전송을 위한 플랫폼
WO2019072287A2 (en) USING A TABLE OF NUTS TO RESOLVE SIMULTANEOUS BLOCK CHAIN TRANSACTION FAILURE
WO2020018939A9 (en) Distributed ledger-based property-listing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200729

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200729

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200730

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200811

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200817

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200827

R150 Certificate of patent or registration of utility model

Ref document number: 6756914

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250