JP6892513B2 - 信頼できる実行環境に基づいたオフチェーンスマートコントラクトサービス - Google Patents

信頼できる実行環境に基づいたオフチェーンスマートコントラクトサービス Download PDF

Info

Publication number
JP6892513B2
JP6892513B2 JP2019540594A JP2019540594A JP6892513B2 JP 6892513 B2 JP6892513 B2 JP 6892513B2 JP 2019540594 A JP2019540594 A JP 2019540594A JP 2019540594 A JP2019540594 A JP 2019540594A JP 6892513 B2 JP6892513 B2 JP 6892513B2
Authority
JP
Japan
Prior art keywords
smart contract
service provider
client
data
blockchain network
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.)
Active
Application number
JP2019540594A
Other languages
English (en)
Other versions
JP2020516104A (ja
JP2020516104A5 (ja
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 JP2020516104A publication Critical patent/JP2020516104A/ja
Publication of JP2020516104A5 publication Critical patent/JP2020516104A5/ja
Application granted granted Critical
Publication of JP6892513B2 publication Critical patent/JP6892513B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • 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/602Providing cryptographic facilities or services
    • 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/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accounting & Taxation (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Finance (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)

Description

信頼できる実行環境に基づいたオフチェーンスマートコントラクトサービスに関する。
コンセンサスネットワークおよび/またはブロックチェーンネットワークとも称することができる分散型台帳システム(DLS)は、関与エンティティが安全かつ変更不可能な形でデータを記憶することを可能にする。DLSは、任意の特定のユーザケースを指すわけではなく、ブロックチェーンネットワークと一般には指す。ブロックチェーンネットワークのタイプの例には、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、およびコンソーシアムブロックチェーンネットワークを含み得る。パブリックブロックチェーンネットワークは、DLSを使用し、コンセンサスプロセスに関与するように、すべてのエンティティに対してオープンとなっている。プライベートブロックチェーンネットワークは、特定のエンティティに提供されており、読込みパーミッションおよび書込みパーミッションを中央集権的に制御する。コンソーシアムブロックチェーンネットワークは、コンセンサスプロセスを制御する、限定されたエンティティのグループに提供されており、アクセス制御レイヤを含む。
ブロックチェーンは、分散化されるとともに改竄耐性のある分散データストレージ技術である。ユーザデータおよびコントラクトは、パブリック方式でチェーン上で論理的に処理および記憶される。多くのシナリオでは、ユーザは、プライバシー保護要件を満たす必要があり、その者らのデータおよびロジックが不正な関係者に漏洩することを望まない。
いくつかの特定のシナリオ設計に関してプライバシー保護を強化するために暗号化を使用することはできるが、ブロックチェーン処理についての既存のプライバシーの問題を解決するためにより汎用的で効率的なソリューションが切望されている。
本明細書の実施形態は、ブロックチェーン技術に基づいたオフチェーンスマートコントラクトサービス(ブロックチェーンオフチェーンスマートコントラクトサービス、または、単にスマートコントラクトサービスと称する)のためのコンピュータ実施方法を含む。より詳細には、本明細書の実施形態は、信頼できる実行環境においてクロスチェーンデータ(TEE)を処理することができるオフチェーンスマートコントラクトサービスを提供することを目的としている。
いくつかの実施形態においては、アクションは、信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダによって、ターゲットブロックチェーンネットワークに関連付けられたクライアントから、ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを受信するステップであって、スマートコントラクトサービスプロバイダは、ターゲットブロックチェーンネットワーク外にある、ステップと、スマートコントラクトサービスプロバイダによって、データ閲覧サービスプロバイダに、クロスチェーンデータについてのリクエストを送信するステップと、スマートコントラクトサービスプロバイダによって、データ閲覧サービスプロバイダからクロスチェーンデータを受信するステップと、TEEによって、クロスチェーンデータを使用して結果を生成するステップと、スマートコントラクトサービスプロバイダによって、結果をクライアントに返信するステップとを含む。他の実施形態は、対応するシステムと、装置と、コンピュータストレージデバイス上に符号化された、方法のアクションを行うように構成される、コンピュータプログラムとを含む。
いくつかの実施形態においては、非一時的コンピュータ可読記憶媒体は、1つまたは複数のコンピュータに結合され、信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダによって、ターゲットブロックチェーンネットワークに関連付けられたクライアントから、ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを受信することであって、スマートコントラクトサービスプロバイダは、ターゲットブロックチェーンネットワーク外にある、ことと、スマートコントラクトサービスプロバイダによって、データ閲覧サービスプロバイダに、クロスチェーンデータについてのリクエストを送信することと、スマートコントラクトサービスプロバイダによって、データ閲覧サービスプロバイダからクロスチェーンデータを受信することと、TEEによって、クロスチェーンデータを使用して結果を生成することと、スマートコントラクトサービスプロバイダによって、結果をクライアントに返信することとをするように1つまたは複数のコンピュータによって実行可能な命令で構成される。
いくつかの実施形態においては、スマートコントラクトサービスを提供するためのシステムは、ターゲットブロックチェーンネットワークに関連付けられたクライアントから、ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを受信するように構成される、インターフェースであって、システムは、ターゲットブロックチェーンネットワーク外にある、インターフェースと、信頼できる計算実行環境(TEE)とを含み、TEEは、1つまたは複数のコンピュータと、1つまたは複数のコンピュータに結合される、1つまたは複数のコンピュータ可読メモリとを含み、1つまたは複数のコンピュータ可読メモリは、クロスチェーンデータについてのリクエストをデータ閲覧サービスプロバイダに送信することと、データ閲覧サービスプロバイダからクロスチェーンデータを受信することと、クロスチェーンデータを使用して結果を生成することとをするように1つまたは複数のコンピュータによって実行可能な命令で構成され、インターフェースは、結果をクライアントに返信するように構成される。
これらの実施形態および他の実施形態の各々は、以下の特徴の1つまたは複数を必要に応じて含み得る。
下記の特徴のいずれかと組み合わせることが可能な第1の特徴としては、クロスチェーンデータを処理するためのリクエストは、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを含む。
下記の特徴のいずれかと組み合わせることが可能な第2の特徴としては、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックは、クライアントによって自己設計される。
下記の特徴のいずれかと組み合わせることが可能な第3の特徴としては、結果は、クロスチェーンデータを使用してスマートコントラクト計算ロジックを実行するTEEによって生成される。
下記の特徴のいずれかと組み合わせることが可能な第4の特徴としては、スマートコントラクトサービスプロバイダによって、クライアントに、TEEがクロスチェーンデータを処理するためのリクエスト内のスマートコントラクト計算ロジックを実行するように動作可能な仮想マシンを含んでいることを証明するステップをさらに含む。
下記の特徴のいずれかと組み合わせることが可能な第5の特徴としては、クライアントからクロスチェーンデータを処理するためのリクエストを受信することに先立って、スマートコントラクトサービスプロバイダによって、クライアントに、スマートコントラクトサービスプロバイダがTEEを含んでいることを証明するステップをさらに含む。
下記の特徴のいずれかと組み合わせることが可能な第6の特徴としては、スマートコントラクトサービスプロバイダによって、データ閲覧サービスプロバイダに、スマートコントラクトサービスプロバイダがTEEを含んでいることを証明するステップと、スマートコントラクトサービスプロバイダによって、データ閲覧サービスプロバイダがTEEを含んでいることを検証するステップをさらに含む。
下記の特徴のいずれかと組み合わせることが可能な第7の特徴としては、スマートコントラクトサービスプロバイダによって、結果をターゲットブロックチェーンネットワークにアップロードするステップをさらに含む。
下記の特徴のいずれかと組み合わせることが可能な第8の特徴としては、結果をターゲットブロックチェーンネットワークにアップロードするステップと、スマートコントラクトサービスプロバイダによって、ターゲットブロックチェーンネットワークに、スマートコントラクトサービスプロバイダがTEEを含んでいることを証明するステップとをさらに含む。
下記の特徴のいずれかと組み合わせることが可能な第9の特徴としては、スマートコントラクトサービスプロバイダは、クラウドベースサーバを含む。
下記の特徴のいずれかと組み合わせることが可能な第10の特徴としては、結果は、秘密鍵を使用してTEEによって署名される。
下記の特徴のいずれかと組み合わせることが可能な第11の特徴としては、クロスチェーンデータは、2つ以上のブロックチェーンネットワークから取得される。
いくつかの実施形態においては、アクションは、ターゲットブロックチェーンネットワークに関連付けられたクライアントによって、ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを生成するステップであって、クロスチェーンデータを処理するためのリクエストは、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを含む、ステップと、クライアントから、クロスチェーンデータを処理するためのリクエストを信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダに送信するステップであって、スマートコントラクトサービスプロバイダは、ターゲットブロックチェーンネットワーク外にある、ステップと、クライアントによって、スマートコントラクトサービスプロバイダから結果を受信するステップであって、結果は、スマートコントラクトサービスプロバイダによって取得されたクロスチェーンデータを使用してTEEによって生成される、ステップとを含む。他の実施形態は、対応するシステムと、装置と、コンピュータストレージデバイス上に符号化された、方法のアクションを行うように構成される、コンピュータプログラムとを含む。
いくつかの実施形態においては、非一時的コンピュータ可読記憶媒体は、1つまたは複数のコンピュータに結合され、ターゲットブロックチェーンネットワークに関連付けられたクライアントによって、ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを生成することであって、クロスチェーンデータを処理するためのリクエストは、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを含む、ことと、クライアントから、クロスチェーンデータを処理するためのリクエストを信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダに送信することであって、スマートコントラクトサービスプロバイダは、ターゲットブロックチェーンネットワーク外にある、ことと、クライアントによって、スマートコントラクトサービスプロバイダから結果を受信することであって、結果は、スマートコントラクトサービスプロバイダによって取得されたクロスチェーンデータを使用してTEEによって生成される、こととをするように1つまたは複数のコンピュータによって実行可能な命令で構成される。
いくつかの実施形態においては、システムは、1つまたは複数のコンピュータと、1つまたは複数のコンピュータに結合される、1つまたは複数のコンピュータ可読メモリとを含み、1つまたは複数のコンピュータ可読メモリは、ターゲットブロックチェーンネットワークに関連付けられたクライアントによって、ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを生成することであって、クロスチェーンデータを処理するためのリクエストは、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを含む、ことと、クライアントから、クロスチェーンデータを処理するためのリクエストを信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダに送信することであって、スマートコントラクトサービスプロバイダは、ターゲットブロックチェーンネットワーク外にある、ことと、クライアントによって、スマートコントラクトサービスプロバイダから結果を受信することであって、結果は、スマートコントラクトサービスプロバイダによって取得されたクロスチェーンデータを使用してTEEによって生成される、こととをするように1つまたは複数のコンピュータによって実行可能な命令で構成される。
これらの実施形態および他の実施形態の各々は、以下の特徴の1つまたは複数を必要に応じて含み得る。
下記の特徴のいずれかと組み合わせることが可能な第1の特徴としては、クライアントによって、受信した結果をターゲットブロックチェーンネットワークに送信するステップをさらに含む。
下記の特徴のいずれかと組み合わせることが可能な第2の特徴としては、クロスチェーンデータを処理するためのリクエストをスマートコントラクトサービスプロバイダに送信することに先立って、クライアントによって、スマートコントラクトサービスプロバイダがTEEを含んでいることを検証するステップをさらに含む。
下記の特徴のいずれかと組み合わせることが可能な第3の特徴としては、クライアントによって、TEEがリクエスト内のクロスチェーンデータを処理するためのスマートコントラクト計算ロジックを実行するように動作可能な仮想マシンを含んでいることを検証するステップをさらに含む。
下記の特徴のいずれかと組み合わせることが可能な第4の特徴としては、クライアントによって、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを設計するステップをさらに含む。
下記の特徴のいずれかと組み合わせることが可能な第5の特徴としては、クライアントは、ソフトウェア開発キット(SDK)を含む。
下記の特徴のいずれかと組み合わせることが可能な第6の特徴としては、結果は、秘密鍵を使用してTEEによって署名され、方法は、クライアントによって、秘密鍵に対応する公開鍵を使用して受信した結果を復号するステップをさらに含む。
下記の特徴のいずれかと組み合わせることが可能な第7の特徴としては、クロスチェーンデータを処理するためのリクエストをスマートコントラクトサービスプロバイダに送信することに先立って、クライアントによって、クロスチェーンデータを処理するためのリクエストを暗号化するステップをさらに含む。
下記の特徴のいずれかと組み合わせることが可能な第8の特徴としては、クロスチェーンデータは、2つ以上のブロックチェーンネットワークから取得される。
本明細書はまた、1つまたは複数のプロセッサに結合されるとともに、1つまたは複数のプロセッサによって実行されると1つまたは複数のプロセッサに本明細書で提供した方法の実施形態による処理を行わせる命令を記憶している、1つまたは複数の非一時的コンピュータ可読記憶媒体を提供している。
本明細書は、本明細書で提供した方法を実施するためのシステムをさらに提供している。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合されるとともに命令を記憶しているコンピュータ可読記憶媒体であって、1つまたは複数のプロセッサによって実行されると、命令は、1つまたは複数のプロセッサに、本明細書で提供した方法の実施形態により処理を行わせる、コンピュータ可読記憶媒体とを含む。
説明したオフチェーンスマートコントラクトサービスプロバイダは、任意の特定のブロックチェーンネットワークと結合されていない、そのため、提供したサービスは、(例えば、特定のブロックチェーンネットワークについて構成された)特定の形式のコントラクトに限定されず、ユーザに定義されたオフチェーン計算をサポートする。加えて、説明したオフチェーンスマートコントラクトサービスプロバイダは、クロスチェーンデータ閲覧をサポートし、相互に信頼できない関係者が1つまたは複数のブロックチェーンネットワークからプライベートデータを通じてスマートコントラクトを動作させることを可能にし得る。説明している技法は、いくつかの利点を達成し得る。例えば、計算を実行するために中間媒体としてTEEを使用することは、データのプライバシーを保護し得る。さらに、計算タスクをブロックチェーンネットワークからオフチェーンTEEへとオフロードすることは、ブロックチェーンネットワークの計算時間およびリソースを節約し得る。加えて、ユーザはそれが必要とするおよび要求する計算のための計算ロジックを自己設計し得るため、TEEはこれらの計算ロジックを使用して計算を実行し、様々な計算をよりフレキシブルな方法で行うことができる。
本明細書による方法が本明細書に記載の態様および特徴の任意の組合せを含み得ることは諒解されよう。すなわち、本明細書による方法が、本明細書に記載の態様および特徴の組合せに特に限定されるわけではなく、提供した態様および特徴の任意の組合せも含む。
本明細書の1つまたは複数の実施形態の詳細を以下の添付の図面および説明に記載している。本明細書の他の特徴および利点が説明および図面からおよび特許請求の範囲から明らかとなるであろう。
本明細書の実施形態を実行するために使用され得る環境の例を示す図である。 本明細書の実施形態による、概念的機構の例を示す図である。 本明細書の実施形態による、クロスチェーンデータサービスをクライアントに提供するプロセスの例を示す図である。 本明細書の実施形態により実行され得るプロセスの例を示す図である。 本明細書の実施形態による、クロスチェーンデータ処理装置のモジュールを図示している図の例を示す図である。 本明細書の実施形態による、別のクロスチェーンデータ処理装置のモジュールを図示している図の例を示す図である。
様々な図面における類似の参照記号は類似の要素を示す。
本明細書の実施形態は、ブロックチェーン技術(ブロックチェーンオフチェーンスマートコントラクトサービス、または、単にスマートコントラクトサービスと称する)に基づいて、オフチェーンスマートコントラクトサービスのためのコンピュータ実施方法を含む。より詳細には、本明細書の実施形態は、信頼できる実行環境においてクロスチェーンデータを処理することができるオフチェーンスマートコントラクトサービスを提供することを目的としている。
本明細書の実施形態のためのさらなるコンテキストを提供するために、上述したように、コンセンサスネットワーク(例えば、ピア・ツー・ピアノードで構成される)、およびブロックチェーンネットワークとも称することができる、分散型台帳システム(DLS)は、関与エンティティが安全かつ変更不可能な形でトランザクションを実施しデータを記憶することを可能にする。ブロックチェーンという用語を、任意の特定のユースケースを指すのではなく、一般的にDLSを指すために本明細書では使用している。
ブロックチェーンは、トランザクションが変更不可能となる方法でトランザクションを記憶するデータ構造であり、後ほど検証することができる。ブロックチェーンは、1つまたは複数のブロックを含む。チェーン内の各ブロックは、前のブロックの暗号ハッシュを含めることによって、チェーン内のその直前にある前のブロックに連結される。各ブロックはまた、タイムスタンプ、それ自身の暗号ハッシュ、および1つまたは複数のトランザクションを含む。ブロックチェーンネットワークのノードによって既に検証されているトランザクションは、ハッシュ化され、Merkleツリーに符号化される。Merkleツリーは、ツリーのリーフノードにおけるデータがハッシュ化され、ツリーの各ブランチにおけるすべてのハッシュがブランチのルートにおいて連結されるデータ構造である。このプロセスは、ツリー全体のルートまでツリーの上方へと進行し続け、ツリー全体のルートは、ツリー内のすべてのデータを表すハッシュを記憶している。ツリーに記憶されているトランザクションであることを意味するハッシュは、それがツリーの構造と一致しているかどうかを決定することによって素早く検証され得る。
ブロックチェーンが、トランザクションを記憶するためのデータ構造であるのに対して、ブロックチェーンネットワークは、1つまたは複数のブロックチェーンを管理、更新、および保持するコンピューティングノードのネットワークである。上述したように、ブロックチェーンネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、またはコンソーシアムブロックチェーンネットワークとして提供され得る。
パブリックブロックチェーンネットワークにおいては、コンセンサスプロセスは、コンセンサスネットワークのノードによって制御される。例えば、数百、数千、さらには数百万のエンティティがパブリックブロックチェーンネットワークに協力し得るし、その各々がパブリックブロックチェーンネットワーク内の少なくとも1つのノードを管理する。それゆえ、パブリックブロックチェーンネットワークを、関与エンティティに対するパブリックネットワークとみなすことができる。いくつかの例においては、ブロックを有効とするためにおよびブロックチェーンネットワークのブロックチェーン(分散型台帳)に追加するために、大部分のエンティティ(ノード)はブロックごとに記帳する必要がある。例示的なパブリックブロックチェーンネットワークは、ブロックチェーンと称する分散型台帳を活用する特定のピア・ツー・ピア支払ネットワークを含む。しかしながら、上述したように、ブロックチェーンという用語を、任意の特定のブロックチェーンネットワークを特に指すのではなく、一般的に分散型台帳を指すために使用している。
一般に、パブリックブロックチェーンネットワークは、パブリックトランザクションをサポートする。パブリックトランザクションは、パブリックブロックチェーンネットワーク内のノードのすべてに共有され、グローバルブロックチェーンに記憶されている。グローバルブロックチェーンは、すべてのノードにわたって複製されるブロックチェーンである。すなわち、すべてのノードは、グローバルブロックチェーンに関して完全ステータスコンセンサスとなる。コンセンサス(例えば、ブロックチェーンへのブロックの追加に対する合意)を得るために、コンセンサスプロトコルがパブリックブロックチェーンネットワークにおいて実施される。コンセンサスプロトコルの例には、限定ではないが、プルーフ・オブ・ワーク(POW)、プルーフ・オブ・ステーク(POS)、およびプルーフ・オブ・オーソリティ(POA)を含む。POWを非限定的な例として本明細書ではさらに参照する。
一般に、プライベートブロックチェーンネットワークは、読込みパーミッションおよび書込みパーミッションを中央集権的に制御する特定のエンティティに対して提供されるものである。エンティティは、どのノードがブロックチェーンネットワークに関与することができるかを制御する。それゆえ、プライベートブロックチェーンネットワークは、誰がネットワークに関与することができるかについての制約、およびそれらの関与のレベル(例えば、あるトランザクションに限定)についての制約を設定している、パーミッション型ネットワークと一般的には称される。(例えば、既存の関与者が新規エンティティの追加について表決する、監督機関が許可を制御することができるといった)様々なタイプのアクセス制御機構を使用することができる。
一般に、コンソーシアムブロックチェーンネットワークは、関与エンティティの間でプライベートなものとなっている。コンソーシアムブロックチェーンネットワークにおいては、コンセンサスプロセスは権限を与えられたノードのセットによって制御され、1つまたは複数のノードがそれぞれのエンティティ(例えば、金融機関、保険会社)によって管理される。例えば、十(10)のコンソーシアムエンティティ(例えば、金融機関、保険会社)がコンソーシアムブロックチェーンネットワークを管理してもよく、その各々がコンソーシアムブロックチェーンネットワーク内の少なくとも1つのノードを管理する。それゆえ、コンソーシアムブロックチェーンネットワークを、関与エンティティに対するプライベートネットワークとみなすことができる。いくつかの例においては、ブロックを有効とするためにおよびブロックチェーンに追加するために、各エンティティ(ノード)はブロックごとに記帳する必要がある。いくつかの例においては、ブロックを有効とするためにおよびブロックチェーンに追加するために、少なくともエンティティ(ノード)のサブセット(例えば、少なくとも7つのエンティティ)はブロックごとに記帳する必要がある。
ブロックチェーンは、パブリックまたはプライベートピア・ツー・ピアネットワーク内のトランザクションを記録する、改竄耐性のある、共有デジタル台帳である。台帳はネットワーク内のすべてのメンバノードに分散されており、ネットワークにおいて生じるアセットトランザクションの履歴はブロックに恒久的に記録される。トランザクションに関与することに先立って、ブロックチェーン上のノードは、様々な技法を使用して計算を実行する必要があり得る。現在のソリューションの下では、各ブロックチェーンは独立しているため、一方のブロックチェーンのノードが他方のチェーンと通信することはできない。例えば、ノードが他のブロックチェーンからデータを読み出すまたは他のブロックチェーンとデータを交換することはできない。加えて、たとえノードが計算を実行するために他のブロックチェーンからデータを読み出す必要がなくとも、ブロックチェーンの全体でそのような計算を行うことは、それが複雑な計算ロジックおよびプロトコルを必要とする場合には、ブロックチェーンの多くの時間および計算リソースを消費し得る。
関与エンティティ間でパブリックとなっているコンソーシアムブロックチェーンネットワークを参照して、本明細書の実施形態をここではさらに詳細に説明している。しかしながら、本明細書の実施形態が任意の適切なタイプのブロックチェーンネットワークにおいて実現され得ることも考えられる。
上記の事情を考慮してここではさらに詳細に本明細書の実施形態を説明している。より詳細には、上述したように、本明細書の実施形態は、信頼できる実行環境においてクロスチェーンデータを処理することができるオフチェーンスマートコントラクトサービスを提供することを目的としている。
これらの問題に対処するための技法は、計算を行うためにオフチェーンスマートコントラクトサービスを使用し、クロスチェーンデータを処理することを含み得る。スマートコントラクトは、情報的な様式でコントラクトを周知、検証、または実施するように設計されたコンピュータ合意であり得る。スマートコントラクトは、信頼できるトランザクションを第三者の関与なしで行うことを可能にする。これらのトランザクションは、追跡可能かつ不可逆的である。スマートコントラクトは、トランザクションの合意またはルールを具現化するロジックまたはコンピュータプログラムを含む。例えば、スマートコントラクトは、ある条件下における関係者間のデジタル通貨または資産の送金を制御するロジックを含み得る。スマートコントラクトは、プログラミング言語で符号化され、ブロックチェーンネットワークランタイムプラットフォームにデプロイされ得る。
いくつかの実施形態においては、オフチェーン処理は、スマートコントラクトを実行または実施するために使用され得る。例えば、スマートコントラクトに含まれるロジックは、ブロックチェーンネットワークの信頼と透明性とをそのまま維持しつつ、例えば、オフチェーンスマートコントラクトサービスプロバイダによって、ブロックチェーンネットワークの境界外で行われ得る。例えば、オフチェーンスマートコントラクトサービスプロバイダは、ブロックチェーンネットワークから独立したコンピュータ、サーバ、または他のタイプのデータ処理装置であり得る。オフチェーン処理を用いて、スマートコントラクトロジックは、ブロックチェーンネットワークの信頼と透明性とを維持するために信頼できる実行環境(TEE)において実行され得る。TEEは、ブロックチェーンネットワークの外部において、スマートコントラクト内のロジックを実行し、スマートコントラクトに含まれる他の処理およびトランザクションを行うために使用され得る。TEEは、コードをスマートコントラクトに紐付けて、本人確認、キー管理、セログラフィカルサービス、および外界とのインタラクションなどの多数のサービスを提供し得る。TEEの信頼できる環境は、認可されたコードのみがデータにアクセスすることを許可されていることを保証しており、そのような保護は、その内部でのコードの実行全体にわたって実施される。いくつかの実施形態においては、オフチェーンスマートコントラクトサービスによって返信されたスマートコントラクトの実行結果が、例えば、ブロックチェーンネットワークの状態を更新するために、ブロックチェーンネットワークにアップロードまたさもなければ送信され得る。そのため、オフチェーンスマートコントラクトサービスプロバイダは、ブロックチェーンネットワークから計算負荷をオフロードし、様々な複雑な計算ロジックおよびプロトコルを実施する際により多くのフレキシビリティを有し得る。
いくつかの実施形態においては、説明したオフチェーンスマートコントラクトサービスプロバイダは、任意の特定のブロックチェーンネットワークと結合されていない、そのため、提供したサービスは、(例えば、特定のブロックチェーンネットワークについて構成された)特定の形式のコントラクトに限定されず、ユーザに定義されたオフチェーン計算をサポートする。
加えて、説明したオフチェーンスマートコントラクトサービスプロバイダは、クロスチェーンデータ閲覧をサポートし、相互に信頼できない関係者が1つまたは複数のブロックチェーンネットワークからプライベートデータを通じてスマートコントラクトを動作させることを可能にし得る。例えば、ブロックチェーンネットワークAのクライアントは、ブロックチェーンネットワークAからのクライアントのデータだけでなく、異なるブロックチェーンネットワーク、ブロックチェーンネットワークBからのデータも処理するスマートコントラクトを定義し得る。いくつかの実施形態においては、クライアントは、オフチェーンコントラクトサービスを呼び出して、その定義されたスマートコントラクトを実行する。オフチェーンコントラクトサービスは、ブロックチェーンネットワークAおよびブロックチェーンネットワークBから要求されたデータを取り出し、ブロックチェーンネットワークAおよびブロックチェーンネットワークBの外でクライアントが定義したスマートコントラクトを実行して結果を取得し、その後、結果をブロックチェーンネットワークAに送信してクライアントの状態を更新し得る。
ブロックチェーンネットワークノードが複雑な計算を実行することを可能および容易にし、1つまたは複数の他のブロックチェーンネットワークからデータを使用してそのような計算を行う、例示的な技法を説明する。例示的な技法は、信頼できる実行環境(TEE)に基づき得る。TEEは、環境にロードされたコードおよびデータの安全性、機密性、および完全性を保証するホストプロセッサ上のセキュアな領域である。TEEは、隔離された実行、信頼できるアプリケーションの完全性、信頼できるデータの機密性、およびセキュアなストレージなどといったいくつかの安全性の特徴を有する、隔離された実行環境(例えば、専用かつ隔離されたハードウェアを使用して)を提供する。説明したオフチェーンスマートコントラクトサービスプロバイダは、TEEを含み、TEE内のブロックチェーンネットワーク計算を実施し得る。説明している技法は、いくつかの利点を有し得る。例えば、計算を実行するために中間媒体としてTEEを使用することは、データのプライバシーを保護し得る。例えば、ブロックチェーンネットワークAのユーザは、計算を行うためにブロックチェーンネットワークBおよびブロックチェーンネットワークCからのデータを必要とする。通常、ブロックチェーンネットワークBおよびCの各々は、クローズドチェーンであり、プライバシーへの懸念に起因してそれらについてのデータをブロックチェーンネットワークAのユーザと進んで共有することはしない。TEEを使用して、ブロックチェーンネットワークBおよびCからのデータについての詳細な情報をブロックチェーンネットワークAに開示することなく計算を実行し得るし、クロスチェーンデータに基づいてスマートコントラクトのクロスチェーンデータ閲覧および実行をかわらず実現し得る。さらに、前述したように、チェーンのブロックチェーンネットワークコスト計算リソース上で複雑な計算を行う。計算タスクをブロックチェーンネットワークからオフチェーンTEEへとオフロード処理することは、ブロックチェーンネットワークの計算時間およびリソースを節約し得る。加えて、それが必要とするおよび要求する計算のための計算ロジックをユーザが自己設計し得るため、TEEはこれらの計算ロジックを使用して計算を実行し、様々な計算をよりフレキシブルかつ拡張性のある方法で行うことができる。
いくつかの実施形態においては、提案した技法は、プライバシー保護を有する普遍的なスマートコントラクトサービスを提供し得る。例えば、金融トランザクションのために使用されるスマートコントラクトは、プライバシーへの懸念に起因して送金量および関係者(送信元および支払先など)を秘匿化する必要がある。提案したアプローチの下では、送信元は、トランザクションの内容をまず暗号化して、オフチェーンスマートコントラクトサービスを呼び出し得る。オフチェーンスマートコントラクトサービスは、TEE内のトランザクションの内容を復号し、TEE内のトランザクションを実行し、その後、トランザクション結果を(例えば、トランザクションが正しいロジックで実行されている証明を用いて)暗号文の形式でチェーンに返信し得る。ブロックチェーンネットワークが返信された結果を検証した後に、結果は、ブロックチェーンネットワーク上で最新の状態を反映するために更新され得る。
いくつかの実施形態においては、提案した技法は、クロスチェーンデータ計算サービスを提供し得る。例として、提案した技法は、パーソナル信用スコアを計算するために使用され得る。実際には、人々は信用力調査を含む様々なサービスに関与する必要に迫られる。例えば、銀行ローンの申し込み、不動産物件の賃貸、およびレンタカーである。各サービスは、独立したコンソーシアムブロックチェーンネットワークまたはプライベートブロックチェーンネットワークによって運用および維持管理され得る。各サービスは他のサービスとデータを共有することを望んでいない場合があり、それらはいくつかのケースにおいてそれらの保有パーソナルデータを暗号化している場合がある。様々なエリアからある人物の包括的な信用力調査を取得するために、提案したソリューションを使用し得る。いくつかの実施形態においては、ユーザは、信用計算ロジック(コード)、プライベートチャネルを使用して信用力調査要求を開始する(例えば、署名または秘密鍵を使用して)データリクエスト権限を提供し得る。提案したソリューションにおけるサービスは、複数のチェーンからデータを要求し、TEE内のデータを復号しており、結果が正しい計算ロジックの下で生成されていることを保証している。結果およびその結果についての証明書がユーザに返信され、ユーザは検証の証明を経てデータおよびロジックの機密性および完全性を保証することができる。ユーザは、その後、本結果および証明を使用して、認証済みのパーソナル信用スコアをそのブロックチェーンネットワーク上の他のノードに提供し得る。
いくつかの実施形態においては、ユーザがブロックチェーンネットワークのコントラクトの下でトランザクションを実行する必要がある場合には、それは、事前にコントラクト内の複雑な計算をオフチェーンスマートコントラクトサービスに引き渡し、その後、ブロックチェーンネットワークに結果をアップロードおよび記憶する。いくつかの実施形態においては、結果を、ブロックチェーンネットワーク上で行われるトランザクションへの入力として直接使用しようすることができ、ブロックチェーンネットワークのコントラクトの動作時間を低減し、効率を改善している。そのような実施形態においては、ユーザがブロックチェーンネットワーク上で実施されるプライベートコントラクトまたはセキュリティプロトコルを公開することを望んでいない場合には、オフチェーンスマートコントラクトサービスを使用して計算をなし得るし、ブロックチェーンネットワークのデータに信頼できる形でアクセスし得る。
図1は、本明細書の実施形態を実行するために使用され得る環境100の例を示している。いくつかの例においては、環境100は、エンティティがブロックチェーンネットワーク102に関与することを可能にする。環境100は、コンピューティングデバイス106、108、およびネットワーク110を含む。いくつかの例においては、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはその組合せを含み、ウェブサイト、ユーザデバイス(例えば、コンピューティングデバイス)、およびバックエンドシステムを接続する。いくつかの例においては、ネットワーク110は、有線および/または無線通信リンクを介してアクセスされ得る。いくつかの例においては、ネットワーク110は、ブロックチェーンネットワーク102との通信およびブロックチェーンネットワーク102内の通信を可能にする。一般に、ネットワーク110は、1つまたは複数の通信ネットワークを表す。いくつかのケースにおいては、コンピューティングデバイス106、108は、クラウドコンピューティングシステムのノード(図示せず)であり得る、または、コンピューティングデバイス106、108の各々は、ネットワークによって相互接続された多数のコンピュータを含み、分散処理システムとして機能する、独立したクラウドコンピューティングシステムであり得る。
図示した例においては、コンピューティングシステム106、108は各々、ブロックチェーンネットワーク102内のノードとしての関与を可能にする任意の適切なコンピューティングシステムを含み得る。コンピューティングデバイスの例には、限定ではないが、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピューティングデバイス、およびスマートフォンを含む。いくつかの例においては、コンピューティングシステム106、108は、ブロックチェーンネットワーク102と相互接続するための1つまたは複数のコンピュータ実施サービスをホストする。例えば、コンピューティングシステム106は、第1のエンティティが1つまたは複数の他のエンティティ(例えば、他の関与者)とのそのトランザクションを管理するために使用するトランザクション管理システムなどといった、第1のエンティティ(例えば、関与者A)のコンピュータ実施サービスをホストすることができる。コンピューティングシステム108は、第2のエンティティが1つまたは複数の他のエンティティ(例えば、他の関与者)とのそのトランザクションを管理するために使用するトランザクション管理システムなどといった、第2のエンティティ(例えば、関与者B)のコンピュータ実施サービスをホストすることができる。図1の例においては、ブロックチェーンネットワーク102を、ノードのピア・ツー・ピアネットワークとして表しており、コンピューティングシステム106、108は、ブロックチェーンネットワーク102に関与する、第1のエンティティおよび第2のエンティティのノードをそれぞれ提供する。
図2は、本明細書の実施形態による、概念的機構200の例を示している。概念的機構200の例は、関与者A、関与者B、および関与者Cにそれぞれ対応する関与者システム202、204、206を含む。各関与者(例えば、ユーザ、企業)は、その少なくとも一部がブロックチェーン216に情報を変更不可能な形で記録する多数のノード214を含むピア・ツー・ピアネットワークとして提供されたブロックチェーンネットワーク212に関与する。単一のブロックチェーン216をブロックチェーンネットワーク212内に概略的に図示しているが、本明細書でさらに詳細に説明しているように、ブロックチェーン216の複数のコピーが、提供され、ブロックチェーンネットワーク212にわたって維持管理される。
図示した例においては、関与者システム202、204、206の各々は、関与者A、関与者B、および関与者Cによってまたはそれらの代わりにそれぞれ提供され、ブロックチェーンネットワーク内のそれぞれのノード214として機能する。本明細書で使用されており、ノードは、ブロックチェーンネットワーク212に接続されている個々のシステム(例えば、コンピュータ、サーバ)を一般的に指し、それぞれの関与者がブロックチェーンネットワークに関与することを可能にする。図2の例においては、関与者は、各ノード214に対応する。しかしながら、関与者がブロックチェーンネットワーク212内の複数のノード214を処理し得ることおよび/または複数の関与者がノード214を共有し得ることも考えられる。いくつかの例においては、関与者システム202、204、206は、あるプロトコル(例えば、ハイパーテキスト・トランスファー・プロトコル・セキュア(HTTPS))を使用して、および/またはリモートプロシージャコール(RPC)を使用して、ブロックチェーンネットワーク212と通信するまたはブロックチェーンネットワーク212を介して通信する。
ノード214は、ブロックチェーンネットワーク212内の関与についての様々な度合いを有し得る。例えば、いくつかのノード214がコンセンサスプロセス(例えば、ブロックをブロックチェーン216に追加するマイナーノードとして)関与し得る一方で、他のノード214はコンセンサスプロセスには関与しない。別の例としては、いくつかのノード214がブロックチェーン216の完全なコピーを記憶する一方で、他のノード214はブロックチェーン216の一部のコピーのみを記憶する。例えば、データアクセス権は、それぞれの関与者がそのそれぞれのシステムに記憶しているブロックチェーンデータに制限し得る。図2の例においては、関与者システム202、204、206は、ブロックチェーン216の完全なコピー216'、216''、216'''をそれぞれ記憶している。
ブロックチェーン(例えば、図2)のブロックチェーン216は、各ブロックがデータを記憶しているブロックのチェーンで構成される。データの例としては、2つ以上の関与者間のトランザクションを表すトランザクションデータを含む。トランザクションを非限定的な例として本明細書では使用しているが、任意の適切なデータがブロックチェーンに記憶され得ること(例えば、ドキュメント、画像、ビデオ、オーディオ)も考えられる。トランザクションの例には、限定ではないが、価値のあるもの(例えば、資産、製品、サービス、および通貨)の交換を含み得る。トランザクションデータは、ブロックチェーン内に変更不可能な形で記憶される。すなわち、トランザクションデータを変更することはできない。
ブロックに記憶する前に、トランザクションデータはハッシュ化される。ハッシュ化は、トランザクションデータ(文字列データとして提供される)を固定長のハッシュ値(文字列データとしても提供される)に変換するプロセスである。ハッシュ値を逆ハッシュ化してトランザクションデータを取得することはできない。ハッシュ化は、トランザクションデータにおけるわずかな変化でさえも完全に異なるハッシュ値という結果になることを保証している。さらに、上述したように、ハッシュ値は固定長である。すなわち、トランザクションデータのサイズに関係なく、ハッシュ値の長さは固定される。ハッシュ化は、ハッシュ機能によってトランザクションデータを処理してハッシュ値を生成することを含む。ハッシュ機能の例には、限定ではないが、256ビットハッシュ値を出力するセキュアなハッシュアルゴリズム(SHA)-256を含む。
複数のトランザクションのトランザクションデータがハッシュ化されブロックに記憶される。例えば、2つのトランザクションのハッシュ値が提供されると、それら自身がハッシュ化され別のハッシュを提供する。このプロセスは、すべてのトランザクションがブロックに記憶されるように、単一のハッシュ値が提供されるまで繰り返される。このようなハッシュ値は、Merkleルートハッシュと称され、ブロックのヘッダに記憶される。トランザクションについての何らかの変化は、そのハッシュ値における変化、最終的に、Merkleルートハッシュにおける変化をもたらすことになる。
ブロックは、コンセンサスプロトコルを介してブロックチェーンに追加される。ブロックチェーンネットワーク内の複数のノードは、コンセンサスプロトコルに関与し、競合してブロックをブロックチェーンに追加する。そのようなノードをマイナー(またはマイナーノード)と称する。上記で記載したPOWを非限定的な例として使用する。
マイナーノードは、コンセンサスプロセスを実行して、トランザクションをブロックチェーンに追加する。複数のマイナーノードがコンセンサスプロセスに関与しているが、1つのマイナーノードのみがブロックをブロックチェーンに書き込むことができる。すなわち、マイナーノードは、コンセンサスプロセスにおいて競合してそれらのブロックをブロックチェーンに追加する。さらに詳細には、マイナーノードは、(例えば、存在するのであれば、ブロックに含めることができるトランザクションの数についての所定の制限まで)トランザクションプールから保留となっているトランザクションを定期的に収集する。トランザクションプールは、ブロックチェーンネットワーク内の関与者からトランザクションメッセージを含む。マイナーノードは、ブロックを構築し、トランザクションをブロックに追加する。トランザクションをブロックに追加する前に、マイナーノードは、トランザクションのいずれかがブロックチェーンのブロックに既に含まれているかどうかをチェックする。あるトランザクションが別のブロックに既に含まれている場合には、そのトランザクションは破棄する。
マイナーノードは、ブロックヘッダを生成し、ブロック内のトランザクションのすべてをハッシュ化し、単一のハッシュ値がブロック内のすべてのトランザクションに提供される(Merkleルートハッシュ)まで、ハッシュ値がペアとなるように組み合わせてさらなるハッシュ値を生成する。このハッシュがブロックヘッダに追加される。マイナーはまた、ブロックチェーン内の最新のブロック(すなわち、ブロックチェーンに追加された最終ブロック)のハッシュ値を決定する。マイナーノードはまた、ノンス値およびタイムスタンプをブロックヘッダに追加する。マイニングプロセスにおいては、マイナーノードは、所要のパラメータを満たすハッシュ値を探し出すことを試みる。マイナーノードは、所要のパラメータを満たすハッシュ値を探し出すまでノンス値を変化し続ける。
ブロックチェーンネットワーク内のいずれのマイナーも、所要のパラメータを満たすハッシュ値を探し出すことを試み、このようにして、互いに競合する。最終的には、マイナーノードの1つが、所要のパラメータを満たすハッシュ値を探し出し、これをブロックチェーンネットワーク内の他のマイナーノードのすべてに公告する。他のマイナーノードは、ハッシュ値を検証し、正しいと決定された場合には、ブロック内の各トランザクションを検証し、ブロックを受諾し、ブロックをそれらのブロックチェーンのコピーに付け加える。このように、ブロックチェーンのグローバルな状態が、ブロックチェーンネットワーク内のすべてのマイナーノードにわたって一致することになる。上記で説明したプロセスはPOWコンセンサスプロトコルである。
非限定的な例を図2を参照して提供している。この例においては、関与者Aが一定額の資金を関与者Bに送金することを望んでいる。関与者Aは、トランザクションメッセージ(例えば、From、To、およびValueのフィールを含む)を生成し、ブロックチェーンネットワークにトランザクションメッセージを送信する、ブロックチェーンネットワークは、トランザクションメッセージをトランザクションプールに追加する。ブロックチェーンネットワーク内の各マイナーノードは、ブロックを作成し、(例えば、存在するのであれば、ブロックに追加することができるトランザクションの数の所定の制限まで)トランザクションプールからすべてのトランザクションを取り出し、トランザクションをブロックに追加する。このように、関与者Aによって発行されたトランザクションが、マイナーノードのブロックに追加される。
いくつかのブロックチェーンネットワークにおいては、暗号化がトランザクションのプライバシーを保持するために実施される。例えば、ブロックチェーンネットワーク内の他のノードがトランザクションの詳細を理解することができないように、2つのノードがトランザクションをプライベートな状態を維持することを望む場合には、ノードはトランザクションデータを暗号化し得る。暗号化方法の例には、限定ではないが、対称暗号化、および非対称暗号化を含む。対称暗号化とは、暗号化(平文から暗号文を生成すること)および復号(暗号文から平文を生成すること)の両方に関する単一の鍵を使用する暗号化プロセスを指す。対称暗号化においては、同一の鍵が複数のノードで利用可能であるため、各ノードがトランザクションデータを暗号化/復号し得る。
非対称暗号化は、各々が秘密鍵および公開鍵を含む鍵のペアを使用しており、秘密鍵はそれぞれのノードにのみに対して既知となっており、公開鍵はブロックチェーンネットワーク内の他のノードのいずれかまたはすべてに対して既知となっている。あるノードは、別のノードの公開鍵を使用してデータを暗号化し、暗号化されたデータは、他のノードの秘密鍵を使用して復号され得る。例えば、図2を再び参照すれば、関与者Aは、関与者Bの公開鍵を使用してデータを暗号化し、暗号化されたデータを関与者Bに送信し得る。関与者Bは、その秘密鍵を使用して、暗号化されたデータ(暗号文)を復号し、元のデータ(平文)を抽出し得る。ノードの公開鍵で暗号化されたメッセージのみが、ノードの秘密鍵を使用して復号され得る。
非対称暗号化は、トランザクション内の関与者がトランザクション内の他の関与者だけでなくトランザクションの有効性を確認することを可能にするデジタル署名を提供するために使用される。例えば、あるノードは、メッセージをデジタル的に署名し得るし、別のノードは、関与者Aのデジタル署名に基づいてメッセージがそのノードによって送信されたことを確認し得る。デジタル署名はまた、メッセージが送信中に改竄されていないことを保証するために使用され得る。例えば、図2を再び参照すれば、関与者Aは、メッセージを関与者Bに送信しようとしている。関与者Aは、メッセージのハッシュを生成し、その後、その秘密鍵を使用して、ハッシュを暗号化して、暗号化したハッシュとしてデジタル署名を提供する。関与者Aは、デジタル署名をメッセージに付け加え、デジタル署名付きのメッセージを関与者Bに送信する。関与者Bは、関与者Aの公開鍵を使用してデジタル署名を復号し、ハッシュを抽出する。関与者Bは、メッセージをハッシュ化し、ハッシュを比較する。ハッシュが同一である場合には、関与者Bは、メッセージが確かに関与者Aからのものであり改竄されていないことを確認することができる。
図3は、本明細書の実施形態による、クロスチェーンデータサービスをクライアントに提供するプロセス300の例を示している。いくつかの実施形態においては、クライアント302は、ターゲットブロックチェーンネットワーク306などのブロックチェーンネットワークと通信するアプリケーション(例えば、クライアントアプリケーション)を表している。例えば、クライアント302は、ブロックチェーンネットワーク306へアクセスするためのおよびブロックチェーンネットワーク306と通信するためのクライアントソフトウェア開発キット(SDK)を含み得る。クライアント302は、ユーザ(図3には図示せず)のデバイス(クライアント端末またはノードとも称する)にインストールされ得る。いくつかの実施形態においては、ユーザは、クライアント302を使用してトランザクションを開始することによって、ターゲットブロックチェーンネットワーク306のトランザクションに関与し得る。いくつかの実施形態においては、ユーザのアカウント情報は、ターゲットブロックチェーンネットワーク306上に記憶され得るし、ユーザは、ターゲットブロックチェーンネットワーク上でトランザクションを行う権限を有する。クライアント302は、ターゲットブロックチェーンネットワーク306上に記憶されているデータにアクセスし読み出し得る。いくつかの実施形態においては、クロスチェーンデータ、例えば、1つまたは複数の異なるブロックチェーンネットワーク(例えば、図3中の316、328および320)からのデータを取得するために、クライアント302は、ターゲットブロックチェーンネットワーク306のクライアント302と他の異なるブロックチェーンネットワークとの間の通信ギャップを橋渡しをするために、リレーまたは信頼できるデータ閲覧サービスプロバイダ312を必要とし得る。
いくつかの実施形態においては、クライアント302は、ターゲットブロックチェーンネットワークのコントラクトの下で機密トランザクションを開始し得るし、そのようなトランザクション情報は、クライアント302のユーザおよび場合によってはトランザクションの他の関与者または関係者のみに対して閲覧可能となるが、ブロックチェーンネットワーク上または外の任意の他の関係者に対しては閲覧可能とならない。いくつかの実施形態においては、クライアント302は、結果をターゲットブロックチェーンネットワーク306上または外の別のエンティティに提示する必要がある。
いくつかの実施形態においては、ターゲットブロックチェーンネットワーク316のクライアント302のトランザクションは、ターゲットブロックチェーンネットワーク316からのデータ、クロスチェーンデータ(例えば、1つまたは複数の異なるブロックチェーンネットワーク316、318、または320からのデータ)、またはその両方を使用した様々な計算処理を含み得る。いくつかの実施形態においては、ターゲットブロックチェーンネットワーク316のクライアント302のトランザクションは、ターゲットブロックチェーンネットワーク316からデータ、クロスチェーンデータ、またはその両方を使用して計算された結果を含み得る。いくつかの実施形態においては、トランザクションは、様々な計算ロジックおよびプロトコルを含み得る。いくつかの実施形態においては、計算が、複雑なものとなると、ブロックチェーンネットワークの計算リソースを消費し得る。いくつかの実施形態においては、トランザクションは、クライアント302によって設計されたスマートコントラクトに指定され得る。
例えば、図3に示しているように、クライアント302は、例えば、クライアントSDK304を使用して、自己設計された計算ロジックおよびプロトコルを含むスマートコントラクトを準備して、クロスチェーンデータ(例えば、1つまたは複数の異なるブロックチェーンネットワーク316、318、または320からのデータ)に基づいてトランザクションを行い得る。クライアント302は、スマートコントラクトを実行のためのスマートコントラクトサービスプロバイダ308に送信し得る。スマートコントラクトサービスプロバイダ308は、スマートコントラクトサービスプロバイダ308がターゲットブロックチェーンネットワーク306から独立してスマートコントラクトに定義されているような計算ロジックおよびプロトコルを行うことができるようにターゲットブロックチェーンネットワーク306外に存在する。
スマートコントラクトを受信および分析すると、スマートコントラクトサービスプロバイダ308は、クロスチェーンデータがスマートコントラクトを実行するために必要であると決定する。スマートコントラクトサービスプロバイダ308は、クロスチェーンデータからデータを取得するために、クロスチェーンデータについてのリクエストを信頼できるデータ閲覧サービスプロバイダ312に送信し得る。例えば、クライアント302は、「a+b」の計算を行うことを望む場合がある、ここで、aはターゲットブロックチェーンネットワーク306からデータであり、bはブロックチェーンネットワーク316からプライベートデータである。この場合には、クライアント302から送信されたスマートコントラクトは、aとbとをともに加算する計算ロジックを含むとともに、データaおよびbの指示が存在する。スマートコントラクトサービスプロバイダ308は、ブロックチェーンネットワーク316のプライベートデータbを取得するために、リクエストを信頼できるデータ閲覧サービスプロバイダ312に送信し得る。いくつかの実施形態においては、ユーザのプライバシーを保護するためにスマートコントラクトを暗号化し得る。
いくつかの実施形態においては、オフチェーンスマートコントラクトサービスプロバイダ308は、クラウドベースサーバプロバイダであり得る。いくつかの実施形態においては、そのようなクラウドサーバプロバイダは、Alibaba(登録商標)などの独立した第三者のサービスプロバイダであり得る。いくつかの実施形態においては、複数のエンティティは、クロスチェーンデータのデータリソースであり、それらのいずれも、それら自身のデータを第三者のサービスプロバイダにアップロードすることを望まない。そのようなケースにおいては、これらのエンティティは、スマートコントラクトサービスプロバイダを自身で構築し得る。
オフチェーンスマートコントラクトサービスプロバイダ308は、セキュアな計算実行環境を提供する、信頼できる計算実行環境(TEE)310を含む。いくつかの実施形態においては、計算TEE310は、TEE310内で実行されるデータの安全性を独立して保証する独立したハードウェアモジュールである。いくつかの実施形態においては、ブロックチェーンネットワーク処理のためにTEE310を設定するために、仮想マシン、アプリケーションインターフェース、またはオペレーティングシステムのうちの1つまたは複数は、TEE310がスマートコントラクトに定義された計算ロジックを実行するのに適したものとなるようにプログラム、ハードコード化、またさもなければ、TEE310に設定され得る。いくつかの実施形態においては、スマートコントラクトをオフチェーンスマートコントラクトサービスプロバイダ308に送信する前に、クライアント302は、オフチェーンスマートコントラクトサービスプロバイダ308がTEE310を含んでいることを検証してもよく、TEE310は、クライアント302に対応する実行プログラムまたは環境を含み、例えば、ターゲットブロックチェーンネットワーク306がEthereumベースのブロックチェーンネットワークであるとともにクライアント302のSDK304が(例えば、Solidity言語を使用する)EthereumベースのクライアントSDKである場合には、クライアント302は、クライアント302がスマートコントラクトの実行についてのリクエストをオフチェーンスマートコントラクトサービスプロバイダ308に送信する前に、Ethereumベースの計算ロジックを実行するための(例えば、Solidity言語をサポートする)Ethereum Virtual Machine(EVM)をTEE310が含んでいるかどうかを検証してもよい。
実行スマートコントラクトのためのリクエストを受信した後に、リクエストが暗号化されている場合には、TEE310は、リクエストをまず復号し、スマートコントラクトを解析し、スマートコントラクトを実行するために必要となるデータを識別する。TEE310は、信頼できるデータ閲覧サービスプロバイダ312を呼び出し、例えば、信頼できるデータ閲覧サービスプロバイダ312のアプリケーションプログラムインターフェース(API)314を介して、1つまたは複数の異なるソースからデータを取得し得る。信頼できるデータ閲覧サービスプロバイダ312は、1つまたは複数の異なるブロックチェーンネットワークのプライベートデータを取り込み得る信頼できる関係者である。信頼できるデータ閲覧サービスプロバイダ312は、信頼できるデータをオフチェーンスマートコントラクトサービスプロバイダ308のTEE310に提供し、データプライバシーおよび正確さを保証し得る。
いくつかの実施形態においては、信頼できるデータ閲覧サービスプロバイダ312はまた、例えば、1つまたは複数の異なるブロックチェーンネットワークのうちの正しい記憶場所からデータを取り込むために、TEEを含み得る。いくつかの実施形態においては、信頼できるデータ閲覧サービスプロバイダ312に含まれるTEEのロジックは、データ取り込みのために主に使用され、その取り込まれたデータに対して計算を行う必要がないため、オフチェーンスマートコントラクトサービスプロバイダ308内のTEE310のものより簡素なものとなっている。
いくつかの実施形態においては、TEE310がAPI314を呼び出す前に、二方向検証プロセスがオフチェーンスマートコントラクトサービスプロバイダ308と信頼できるデータ閲覧サービスプロバイダ312との間で実行される。いくつかの実施形態においては、検証プロセス中に、それらの各々が、それがTEEを既に含んでいることを他の関係者に証明する。
いくつかの実施形態においては、信頼できるデータ閲覧サービスプロバイダ312は、ブロックチェーンネットワーク、ブロックチェーンネットワーク協調、またはブロックチェーンネットワークプラットフォームのうちの1つまたは複数(まとめて、1つまたは複数のブロックチェーンネットワークと称する)を含む1つまたは複数の異なるソースから、データを取り込み得る。例示的なブロックチェーンネットワークを、図3ではMychain316、Hiperleger318、およびEthereum320として示している。取得したデータは、取得したデータを使用して計算ロジックを実行するTEE310に返信される。
いくつかの実施形態においては、計算結果を計算TEE310において生成した後に、TEE310は、秘密鍵を用いて結果を署名し、結果の完全性および正確さを証明する。いくつかの実施形態においては、署名は、計算結果がクライアント302によって送信されたスマートコントラクトに含まれる計算ロジックに従ってTEE310によって実行されたことを示す証明である。そのため、結果は、ターゲットブロックチェーンネットワーク306の他のノードによって信頼され得る。
いくつかの実施形態においては、TEE310は、結果をクライアント302に返信する。例えば、クライアント302は、TEE310の秘密鍵に対応する公開鍵を用いて結果を復号する。いくつかの実施形態においては、クライアント302は、クライアント302の状態を更新するために結果を使用することができるように、または、ターゲットブロックチェーンネットワーク306のトランザクションに対する入力として、結果をターゲットブロックチェーンネットワーク306にアップロードする。いくつかの実施形態においては、クライアント302は、ユーザの平均信用スコアを計算するためなどといった、ブロックチェーンネットワークに関連しない目的のために、結果に使用し得る。例えば、ユーザは、様々なチェーン(各々がレンタカー、銀行ローン、または家の賃貸などのサービスプロバイダを表す)からデータ情報を取得し、データを使用してユーザの平均信用スコアを計算し得る。ユーザは、結果を任意のブロックチェーンネットワークにアップロードすることなく、結果を業者に提示することができる。
いくつかの実施形態においては、TEE310は、ターゲットチェーン306に直接、結果を返信し得る。そのような実施形態においては、結果を返信することに先立って、ターゲットブロックチェーンネットワーク306は、オフチェーンスマートコントラクトサービスプロバイダ308とターゲットチェーン306との間に信頼を確立するために、オフチェーンスマートコントラクトサービスプロバイダ308が所要のTEEを含んでいるかどうかを検証し得る。
図4は、本明細書の実施形態により実行され得るプロセス400の例を示している。いくつかの実施形態においては、例示的なプロセス400は、1つまたは複数のコンピューティングデバイスを使用して実行される1つまたは複数のコンピュータ実行可能プログラムを使用して行われ得る。提示を明確にするために、以下の説明は、本説明における他の図に即して方法400を一般的に説明している。例えば、クライアント420は、クライアント302であり得るし、スマートコントラクトサービスプロバイダ430は、オフチェーンスマートコントラクトサービスプロバイダ308であり得るし、信頼できるデータ閲覧サービスプロバイダ440は、信頼できるデータ閲覧サービスプロバイダ312であり得るし、ブロックチェーンネットワーク450は、Mychain316、HyperLeger318、および/またはEthereum320であり得るし、ターゲットブロックチェーンネットワーク410は、図3を参照して説明しているターゲットブロックチェーンネットワーク306であり得る。しかしながら、方法400が、例えば、任意の適切なシステム、環境、ソフトウェア、およびハードウェアによって、または、必要に応じて、システムと、環境と、ソフトウェアと、ハードウェアとの組合せによって、行われ得ることは理解されよう。いくつかの実施形態においては、方法400の様々なステップは、並列して、組み合わせて、ループして、または任意の順序で処理され得る。
412において、ターゲットブロックチェーンネットワーク410に関連付けられたクライアント420は、ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを生成する。クロスチェーンデータを処理するためのリクエストは、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを含む。いくつかの実施形態においては、クロスチェーンデータを処理するためのリクエストは、スマートコントラクトとして書き込まれ得る。クロスチェーンデータを処理するためのリクエストは、図3を参照して説明している実行スマートコントラクトのためのリクエストの例であり得る。
いくつかの実施形態においては、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックがクライアントによって自己設計されているため、ターゲットブロックチェーンネットワーク410によって定義された計算ロジックに制限されることなく、ユーザがユーザの目的を達成するために自由かつフレキシブルにスマートコントラクト計算ロジックを指定することを可能にしている。そのような実施形態においては、リクエストを生成するステップは、クライアントによって、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを設計するステップを含む。いくつかの実施形態においては、クライアントは、ユーザがスマートコントラクト計算ロジックを書くことを可能にするソフトウェア開発キット(SDK)を含む。いくつかの実施形態においては、計算ロジックは、Solidity言語で書かれ得る。いくつかの実施形態においては、クロスチェーンデータを処理するためのリクエストは、クライアントによって暗号化される。
414において、ターゲットブロックチェーンネットワーク410に関連付けられたクライアント420は、スマートコントラクトサービスプロバイダ430に、ターゲットブロックチェーンネットワーク410とは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを送信する。スマートコントラクトサービスプロバイダ430は、信頼できる計算実行環境(TEE)を含む。スマートコントラクトサービスプロバイダ430は、ターゲットブロックチェーンネットワーク410外にある。いくつかの実施形態においては、クロスチェーンデータは、2つ以上のブロックチェーンネットワークから取得される。いくつかの実施形態においては、スマートコントラクトサービスプロバイダ430は、クラウドベースサーバを含む。
いくつかの実施形態においては、クロスチェーンデータ閲覧のためのリクエストは、データ閲覧リクエストである。そのような実施形態においては、TEEは、データを取り込み、データをクライアント420に返信する。
いくつかの実施形態においては、複数のブロックチェーンネットワークからデータを取り込むほかに、TEEは、リクエストに含まれるスマートコントラクト計算ロジックに基づいてデータに対して処理をする。いくつかの実施形態においては、スマートコントラクトサービスプロバイダ430は、TEEがリクエストに含まれるスマートコントラクト計算ロジックを適切に実行するように、例えば、EVMをTEEに組み込むことによって、TEEを設定し得る。
いくつかの実施形態においては、クロスチェーンデータを処理するためのリクエストを送信することに先立って、426において、クライアント420は、スマートコントラクトサービスプロバイダ430がセキュアな方式でスマートコントラクト計算ロジックを実行することが可能であることを検証する。いくつかの実施形態においては、本検証プロセスは、スマートコントラクトサービスプロバイダ430が、クライアント420に、スマートコントラクトサービスプロバイダ430がTEEを含んでいることを証明することと、スマートコントラクトサービスプロバイダ430が、クライアント420に、TEEがクロスチェーンデータを処理するためのリクエスト内のスマートコントラクト計算ロジックを実行するように動作可能な仮想マシンを含んでいることを証明することとを含む。
例えば、TEEは、Intel(登録商標) SGXであり得る。この例においては、スマートコントラクトサービスプロバイダ430がSGXを含んでいるかどうかは、Intel(登録商標)から提供される署名および検証サービスによって証明される。加えて、TEEが所要のEVMを含んでいることを証明するために、TEEは、呼び出されたEVMのスクリプトおよびコードのハッシュを計算し、ハッシュを検証のためにクライアント420に送信する。クライアント420も、完全なEVMコードのセットを有しているため、それが有するEVMのスクリプトおよびコードのハッシュ値を計算することもでき、2つのハッシュ値が一致するかどうかを検証し得る。
いくつかの実施形態においては、リクエストを生成することに先立って、クライアント420とスマートコントラクトサービスプロバイダ430とは、鍵のペアをセットアップし得る。したがって、スマートコントラクトサービスプロバイダ430は、鍵のうちの1つによって署名されたリクエストを受信した後に、ペアのうちから他の鍵によってリクエストを復号し得る。428において、スマートコントラクトサービスプロバイダ430は、受信したリクエストを復号および解析する。いくつかの実施形態においては、リクエストは構築中に所定のデータフォーマットで書かれており、そのようなケースにおいては、リクエストは各データセグメントごとに解析される。
435において、スマートコントラクトサービスプロバイダ430は、クロスチェーンデータを処理するためのリクエストに指定されたクロスチェーンデータを取得するために、クロスチェーンデータについてのリクエストをデータ閲覧サービスプロバイダ440に送信する。いくつかの実施形態においては、リクエストをデータ閲覧サービスプロバイダ440に送信することに先立って、432において、スマートコントラクトサービスプロバイダ430は、信頼できるデータ閲覧サービスプロバイダ440がターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークの信頼できるクロスチェーンデータを提供することが可能であることを検証する。いくつかの実施形態においては、本検証プロセスは、データ閲覧サービスプロバイダ440がTEEを含んでいることをスマートコントラクトサービスプロバイダ430が検証することを含む。
いくつかの実施形態においては、リクエストをデータ閲覧サービスプロバイダ440に送信することに先立って、434において、データ閲覧サービスプロバイダ440とスマートコントラクトサービスプロバイダ430とは、二者間に信頼を確立するために検証プロセスを行い得る。いくつかの実施形態においては、本検証プロセスは、スマートコントラクトサービスプロバイダ430がデータ閲覧サービスプロバイダ440にスマートコントラクトサービスプロバイダ430がTEEを含んでいることを証明することを含む。いくつかの実施形態においては、432および434の両方のステップにおいて、TEEの存在を検証/証明するステップは、ステップ426に記載したものと同一の方法で行われ得る。
436において、データ閲覧サービスプロバイダ440は、ターゲットブロックチェーンネットワーク410とは異なる1つまたは複数のブロックチェーンネットワーク450からのデータを要求する。
438において、データ閲覧サービスプロバイダ440は、ターゲットブロックチェーンネットワーク410とは異なる1つまたは複数のブロックチェーンネットワーク450からデータを受信する。
439において、スマートコントラクトサービスプロバイダ430は、データ閲覧サービスプロバイダ440からクロスチェーンデータを受信する。いくつかの実施形態においては、クロスチェーンデータは、2つ以上のブロックチェーンネットワークから取得される。
441において、スマートコントラクトサービスプロバイダ430のTEEは、スマートコントラクト計算ロジックを実行することによって、受信したクロスチェーンデータを使用して結果を生成する。いくつかの実施形態においては、結果は、クロスチェーンデータを使用してスマートコントラクト計算ロジックを実行するTEEによって生成される。いくつかの実施形態においては、TEEに含まれるEVMは、コードを実行し、計算ロジックおよび受信したデータを使用して計算を行う。
442において、スマートコントラクトサービスプロバイダ430は、結果を署名する。いくつかの実施形態においては、結果は、秘密鍵によって署名される。例えば、TEEは、TEEの外部からおよびTEEの他のコンポーネントから隔離された秘密鍵を含む。いくつかの実施形態においては、秘密鍵によって署名された署名は、結果がTEE内で生成されたことについての証明である。いくつかの実施形態においては、スマートコントラクトサービスプロバイダ430が結果を署名した後では、最終的な出力結果は、TEEによって生成された結果および秘密鍵によって署名された結果のハッシュ値を含む。
443において、スマートコントラクトサービスプロバイダ430は、結果をクライアント420に返信する。
444において、クライアント420は、受信した結果を復号する。いくつかの実施形態においては、クライアント420は、秘密鍵に対応する公開鍵を使用して受信した結果を復号する。そのような実施形態においては、受信した結果は、TEEによって生成された結果、およびその結果についての署名されたハッシュ値を含む。そのような実施形態においては、クライアント420は、秘密鍵を使用してTEEによって生成された結果のハッシュ値を計算し、それを結果の署名されたハッシュ値と比較し、それらが一致する場合には目にする。
446において、クライアント420は、受信した結果に基づいてトランザクションをターゲットブロックチェーンネットワーク410に送信する。いくつかの実施形態においては、クライアント420は、クライアント420の状態を更新するためにまたはターゲットブロックチェーンネットワーク410上でトランザクションを行うために、トランザクションをターゲットブロックチェーンネットワーク410にアップロードする。
いくつかの実施形態においては、452において、スマートコントラクトサービスプロバイダ430は、結果をターゲットブロックチェーンネットワーク410にアップロードする。いくつかの実施形態においては、結果をターゲットブロックチェーンネットワークにアップロードすることに先立って、448において、スマートコントラクトサービスプロバイダは、ターゲットブロックチェーンネットワークに、スマートコントラクトサービスプロバイダがTEEを含んでいることを証明する。ここで検証のために使用される方法は、ステップ426において使用されるものと同一であり得る。
図5を参照すれば、図5は、本明細書の実施形態による、装置500のモジュールを図示している図の例を示している。装置500は、信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダの例示的な実施形態であり得る、ここで、スマートコントラクトサービスプロバイダは、ターゲットブロックチェーンネットワーク外に存在する。クロスチェーンデータ処理のための装置500は、ブロックチェーンネットワーク技術に基づいたオフチェーンスマートコントラクトシステムにおいて使用され得る。装置500は、図3および図4に示した実施形態に対応し得るし、装置500は、ターゲットブロックチェーンネットワークに関連付けられたクライアントから、ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを受信するように構成される、第1の受信機または受信ユニット510と、クロスチェーンデータについてのリクエストを送信するように構成される、送信機または送信ユニット520と、データ閲覧サービスプロバイダからクロスチェーンデータを受信するように構成される、第2の受信機または受信ユニット530と、データ閲覧サービスプロバイダからクロスチェーンデータを生成するように構成される、ジェネレータまたは生成ユニット540と、結果をクライアントに返信するように構成される、ユーザインターフェース550とを含む。
随意的な実施形態においては、クロスチェーンデータを処理するためのリクエストは、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを含む。
随意的な実施形態においては、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックは、クライアントによって自己設計される。
随意的な実施形態においては、装置500は、TEEがクロスチェーンデータを処理するためのリクエスト内のスマートコントラクト計算ロジックを実行するように動作可能な仮想マシンを含んでいることを提供するように構成される、第1の提供サブユニットをさらに含む。
随意的な実施形態においては、クライアントからクロスチェーンデータを処理するためのリクエストを受信することに先立って、装置は、スマートコントラクトサービスプロバイダがTEEを含んでいることを提供するように構成される、第2の提供サブユニットをさらに含む。
随意的な実施形態においては、装置500は、スマートコントラクトサービスプロバイダがTEEを含んでいることを提供するように構成される、第3の提供サブユニットと、データ閲覧サービスプロバイダがTEEを含んでいることを検証するように構成される、検証サブユニットとをさらに含む。
随意的な実施形態においては、装置500は、結果をターゲットブロックチェーンネットワークにアップロードするように構成される、アップロードサブユニットをさらに含む。
随意的な実施形態においては、結果をターゲットブロックチェーンネットワークにアップロードすることに先立って、装置500は、スマートコントラクトサービスプロバイダがTEEを含んでいることを提供するように構成される、第4の提供サブユニットをさらに含む。
随意的な実施形態においては、スマートコントラクトサービスプロバイダは、クラウドベースサーバを含む。
随意的な実施形態においては、クロスチェーンデータは、2つ以上のブロックチェーンネットワークから取得される。
図6を参照すれば、図6は、本明細書の実施形態による、別の装置600のモジュールを図示している図の例を示している。装置600は、ターゲットブロックチェーンネットワークに関連付けられたクライアントの例示的な実施形態であり得る。装置600は、ブロックチェーンネットワーク技術に基づいたオフチェーンスマートコントラクトシステムにおいて使用され得る。装置600は、図3および図4に示した実施形態に対応し得るし、装置600は、ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを生成するように構成される、ジェネレータまたは生成ユニット610であって、クロスチェーンデータを処理するためのリクエストは、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを含む、ジェネレータまたは生成ユニット610と、クロスチェーンデータを処理するためのリクエストを信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダに送信するように構成される、送信機または送信ユニット620であって、スマートコントラクトサービスプロバイダは、ターゲットブロックチェーンネットワーク外にある、送信機または送信ユニット620と、スマートコントラクトサービスプロバイダから結果を受信するように構成される、受信機または受信ユニット630であって、結果は、スマートコントラクトサービスプロバイダによって取得されたクロスチェーンデータを使用してTEEによって生成される、受信機または受信ユニット630とを含む。
随意的な実施形態においては、装置600は、受信した結果をターゲットブロックチェーンネットワークに送信するように構成される、第1の送信サブユニットをさらに含む。
随意的な実施形態においては、クロスチェーンデータを処理するためのリクエストをスマートコントラクトサービスプロバイダに送信することに先立って、装置600は、TEEがリクエスト内のクロスチェーンデータを処理するためのスマートコントラクト計算ロジックを実行するように動作可能な仮想マシンを含んでいることを検証するように構成される、検証サブユニットをさらに含む。
随意的な実施形態においては、装置600は、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを設計するように構成される、設計サブユニットをさらに含む。
随意的な実施形態においては、クライアントは、ソフトウェア開発キット(SDK)を含む。
随意的な実施形態においては、結果は、秘密鍵を使用してTEEによって署名され、装置600は、秘密鍵に対応する公開鍵を使用して受信した結果を復号するように構成される、復号サブユニットをさらに含む。
随意的な実施形態においては、クロスチェーンデータを処理するためのリクエストをスマートコントラクトサービスプロバイダに送信することに先立って、装置600は、クロスチェーンデータを処理するためのリクエストを暗号化するように構成される、暗号化ユニットをさらに含む。
随意的な実施形態においては、クロスチェーンデータは、2つ以上のブロックチェーンネットワークから取得される。
上記の実施形態において示したシステム、装置、モジュール、またはユニットは、コンピュータチップまたはエンティティを使用して実装され得る、または、ある機能を有する製品を使用して実装され得る。典型的な実施形態デバイスは、コンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、セルラ電話、カメラ電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メール送受信デバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであり得る。
装置内の各ユニットの機能および役割の実施プロセスについては、前回の方法における対応するステップの実施プロセスを参照することが可能である。簡潔にするために詳細はここでは省略する。
装置の実施形態が方法の実施形態に基本的に対応するため、関連する部分については、方法の実施形態における関連する説明を参照されたい。上記で説明した装置の実施形態は一例に過ぎない。別個の部分として説明したユニットは、物理的に分離され得るしまたはされ得ない。ユニットとして図示した部分は、物理ユニットであり得るしまたはあり得ないし、1つの位置にあり得るし、または多数のネットワークユニットに分散され得る。モジュールの一部またはすべては、本明細書のソリューションの目的を達成するための実際の要求に基づいて選択され得る。当業者は、創造的努力無しで本出願の実施形態を理解および実施できよう。
図5は、クロスチェーンデータ処理装置の内部機能モジュールおよび構造を図示している概略図である。クロスチェーンデータ処理装置は、信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダの例であり得る。本質的な実行の主体は、電子デバイスであり得るし、電子デバイスは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサの実行可能命令を記憶するように構成される、メモリとを含む。
1つまたは複数のプロセッサは、ターゲットブロックチェーンネットワークに関連付けられたクライアントから、ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを受信することであって、スマートコントラクトサービスプロバイダは、ターゲットブロックチェーンネットワーク外にある、ことと、データ閲覧サービスプロバイダに、クロスチェーンデータについてのリクエストを送信することと、データ閲覧サービスプロバイダからクロスチェーンデータを受信することと、TEEによって、クロスチェーンデータを使用して結果を生成することと、結果をクライアントに返信することとをするように構成される。
必要に応じて、クロスチェーンデータを処理するためのリクエストは、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを含む。
必要に応じて、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックは、クライアントによって自己設計される。
必要に応じて、結果は、クロスチェーンデータを使用してスマートコントラクト計算ロジックを実行するTEEによって生成される。
必要に応じて、1つまたは複数のプロセッサは、クライアントに、TEEがクロスチェーンデータを処理するためのリクエスト内のスマートコントラクト計算ロジックを実行するように動作可能な仮想マシンを含んでいることを証明するように構成される。
必要に応じて、クライアントからクロスチェーンデータを処理するためのリクエストを受信することに先立って、1つまたは複数のプロセッサは、クライアントに、スマートコントラクトサービスプロバイダがTEEを含んでいることを証明するように構成される。
必要に応じて、1つまたは複数のプロセッサは、データ閲覧サービスプロバイダに、スマートコントラクトサービスプロバイダがTEEを含んでいることを証明することと、データ閲覧サービスプロバイダがTEEを含んでいることを検証することとをするように構成される。
必要に応じて、1つまたは複数のプロセッサは、結果をターゲットブロックチェーンネットワークにアップロードするように構成される。
必要に応じて、結果をターゲットブロックチェーンネットワークにアップロードすることに先立って、1つまたは複数のプロセッサは、ターゲットブロックチェーンネットワークに、スマートコントラクトサービスプロバイダがTEEを含んでいることを証明するように構成される。
必要に応じて、スマートコントラクトサービスプロバイダは、クラウドベースサーバを含む。
必要に応じて、結果は、秘密鍵を使用してTEEによって署名される。
必要に応じて、クロスチェーンデータは、2つ以上のブロックチェーンネットワークから取得される。
図6は、別のクロスチェーンデータ処理装置の内部機能モジュールおよび構造を図示している概略図である。別のクロスチェーンデータ処理装置は、ターゲットブロックチェーンネットワークに関連付けられたクライアントの例であり得る。本質的な実行の主体は、電子デバイスであり得るし、電子デバイスは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサの実行可能命令を記憶するように構成される、メモリとを含む。
1つまたは複数のプロセッサは、ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークのクロスチェーンデータを処理するためのリクエストを生成することであって、クロスチェーンデータを処理するためのリクエストは、クロスチェーンデータを処理するためのスマートコントラクト計算ロジックを含む、ことと、クロスチェーンデータを処理するためのリクエストを信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダに送信することであって、スマートコントラクトサービスプロバイダは、ターゲットブロックチェーンネットワーク外にある、ことと、スマートコントラクトサービスプロバイダから結果を受信することであって、結果は、スマートコントラクトサービスプロバイダによって取得されたクロスチェーンデータを使用してTEEによって生成される、こととをするように構成される。
必要に応じて、1つまたは複数のプロセッサは、受信した結果をターゲットブロックチェーンネットワークに送信するように構成される。
必要に応じて、クロスチェーンデータを処理するためのリクエストをスマートコントラクトサービスプロバイダに送信することに先立って、1つまたは複数のプロセッサは、スマートコントラクトサービスプロバイダがTEEを含んでいることを検証するように構成される。
必要に応じて、1つまたは複数のプロセッサは、TEEがリクエスト内のクロスチェーンデータを処理するためのスマートコントラクト計算ロジックを実行するように動作可能な仮想マシンを含んでいることを検証するように構成される。
必要に応じて、クライアントは、ソフトウェア開発キット(SDK)を含む。
必要に応じて、結果は、秘密鍵を使用してTEEによって署名される。1つまたは複数のプロセッサは、秘密鍵に対応する公開鍵を使用して受信した結果を復号するように構成される。
必要に応じて、クロスチェーンデータを処理するためのリクエストをスマートコントラクトサービスプロバイダに送信することに先立って、1つまたは複数のプロセッサは、クロスチェーンデータを処理するためのリクエストを暗号化するように構成される。
必要に応じて、クロスチェーンデータは、2つ以上のブロックチェーンネットワークから取得される。
本明細書において説明した発明特定事項ならびにアクションおよび処理の実施形態は、本明細書において開示した構造およびそれらの構造的均等物を含む、デジタル電子回路の形で、有形に具現化されたコンピュータソフトウェアまたはファームウェアの形で、コンピュータハードウェアの形で、またはそれらの組合せのうちの1つまたは複数で実装され得る。本明細書において説明した発明特定事項の実施形態は、データ処理装置による実行のためにまたはデータ処理装置の処理を制御するために、コンピュータプログラムキャリア上に符号化された、例えばコンピュータプログラム命令の1つまたは複数のモジュールといった1つまたは複数のコンピュータプログラムとして実装され得る。キャリアは、有形非一時的コンピュータ記憶媒体であり得る。あるいはまたは加えて、キャリアは、データ処理装置による実行に適した受信機装置への伝送のために情報を符号化するために生成された、人為的に生成した伝搬信号、例えば、機械生成された電気信号、光信号、または電磁気信号であり得る。コンピュータ記憶媒体は、機械可読ストレージデバイス、機械可読ストレージ回路基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つまたは複数の組合せであり得るもしくは一部であり得る。コンピュータ記憶媒体は伝搬信号ではない。
「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、およびマシンを含む。データ処理装置は、特殊用途ロジック回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)、ASIC(特定用途向け集積回路)、またはGPU(グラフィック処理ユニット)を含み得る。装置はまた、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つまたは複数の組合せを構成するコードを含み得る。
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、エンジン、スクリプト、またはコードとも称するもしくはそのようなものとして説明した、コンピュータプログラムは、コンパイル型もしくはインタプリタ型言語、または宣言型もしくは手続き型言語を含む、任意の形式のプログラミング言語で書かれ得るし、スタンドアロンプログラムとして、またはモジュール、コンポーネント、エンジン、サブルーチン、もしくはコンピューティング環境における実行に適した他のユニットとして、といったことを含む任意の形式で、デプロイされ得る。環境は、1つまたは複数のロケーションにおいてデータ通信ネットワークによって相互通信される1つまたは複数のコンピュータを含み得る。
コンピュータプログラムは、ファイルシステム内のファイルに対応し得るが、必ずしも必要ではない。コンピュータプログラムは、例えば、マークアップ言語ドキュメントに記憶されている1つまたは複数のスクリプトといった、他のプログラムまたはデータを保持するファイルの一部に、当該プログラム専用の単一のファイルに、または、例えば、1つまたは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイルといった、複数の協調ファイルに、記憶され得る。
本明細書において説明したプロセスおよびロジックフローは、1つまたは複数のコンピュータプログラムを実行し、入力データを処理して出力を生成することによって処理を行う、1つまたは複数のコンピュータによって行われ得る。プロセスおよびロジックフローはまた、例えばFPGA、ASIC、またはGPUといった特殊用途ロジック回路によって、または、特殊用途ロジック回路と1つまたは複数のプログラマブルコンピュータとの組合せによって、実装され得る。
コンピュータプログラムの実行に適したコンピュータは、汎用もしくは特殊用途マイクロプロセッサもしくはその両方、または任意の他の種類の中央処理ユニットに基づき得る。一般的に、中央処理ユニットは、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信することになる。コンピュータの要素は、命令を実行するための中央処理ユニットと、命令およびデータを記憶するための1つまたは複数のメモリデバイスとを含み得る。中央処理ユニットおよびメモリは、特殊用途ロジック回路によって補完され得る、またはそれに組み込まれ得る。
一般的に、コンピュータは、少なくとも1つの非一時的コンピュータ可読記憶媒体(コンピュータ可読メモリとも称する)に結合されることになる。コンピュータに結合されている記憶媒体は、コンピュータの内部コンポーネント(例えば、内蔵型ハードドライブ)または外部コンポーネント(例えば、ユニバーサルシリアルバス(USB)型ハードドライブまたはネットワークを介してアクセスされるストレージシステム)であり得る。記憶媒体の例としては、例えば、磁気ディスク、光磁気ディスク、もしくは光ディスク、ソリッドステートドライブ、クラウドストレージシステムなどのネットワークストレージリソース、または他のタイプの記憶媒体を含み得る。しかしながら、コンピュータは、そのようなデバイスを必ずしも有する必要はない。さらに、コンピュータは、数例挙げるとすれば、例えば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、Global Positioning System(GPS)受信機、または例えばユニバーサルシリアルバス(USB)フラッシュドライブなどのポータブルストレージデバイスといった別のデバイスに組み込まれ得る。
ユーザとのインタラクションを提供するために、本明細書において説明した発明特定事項の実施形態は、ユーザに情報を表示するための、例えばLCD(液晶ディスプレイ)モニタといった、表示デバイスと、コンピュータに入力を提供することを可能にする、例えば、キーボードおよび例えば、マウス、トラックボール、またはタッチパッドなどのポインティングデバイスといった、入力デバイスとを有するコンピュータ上で実装され得る、または、そのようなコンピュータと通信するように構成され得る。同様に、他の種類のデバイスがユーザとのインタラクションを提供するために使用され得る。例えば、ユーザに提供されるフィードバックは、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックといった任意の形式の感覚フィードバックであり得るし、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受信され得る。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信することおよびユーザによって使用されるデバイスからドキュメントを受信することによって、例えば、ユーザのデバイス上のウェブブラウザから受信した要求に応答してウェブブラウザにウェブページを送信することによって、または、例えばスマートフォンもしくは電子タブレットといったユーザデバイス上で動作するアプリとのインタラクションを行うことによって、ユーザとのインタラクションを行い得る。また、コンピュータは、メッセージングアプリケーションを動作する例えばスマートフォンといったパーソナルデバイスにテキストメッセージまたは他の形式のメッセージを送信し、その返信としてユーザから応答メッセージを受信することによって、ユーザとのインタラクションを行い得る。
本明細書は、システム、装置、およびコンピュータプログラムコンポーネントに関連して「ように構成される」という用語を使用している。特定の処理またはアクションを行うように構成される1つまたは複数のコンピュータのシステムとは、処理においてシステムに処理またはアクションを行わせるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せがインストールされているシステムを意味する。特定の処理またはアクションを行うように構成される1つまたは複数のコンピュータプログラムとは、データ処理装置によって実行されると装置に処理またはアクションを行わせる命令を含む1つまたは複数のプログラムを意味する。特定の処理またはアクションを行うように構成される特殊用途ロジック回路とは、処理またはアクションを行う電子ロジックを有する回路を意味する。
本明細書は多くの特定の実施形態の詳細を含んでいるが、これらを、特許請求の範囲そのものによって定義される主張しているものについての範囲に対する限定として解釈すべきではなく、むしろ特定の実施形態に固有のものであり得る特徴の説明として解釈すべきである。別個の実施形態に即して本明細書において説明したある特徴もまた、組み合わせることで単一の実施形態で実現され得る。反対に、単一の実施形態に即して説明した様々な特徴もまた、別々に複数の実施形態でまたは任意の適切なサブコンビネーションで実現され得る。さらに、ある組合せで動作するものとして特徴を上記で説明している場合があるが、たとえ最初はそのように主張していたとしても、いくつかのケースにおいては、主張した組合せのうちの1つまたは複数の特徴をその組合せから削除し得るし、主張したものをサブコンビネーションまたはサブコンビネーションの変形とし得る。
同様に、処理を特定の順序で図面に図示するとともに特許請求の範囲に記載しているが、このことを、示した特定の順序でもしくは一連の順序でそのような処理を行う必要があると理解すべきではないし、または、望ましい結果を達成するために図示した処理のすべてを行う必要があると理解すべきではない。ある環境においては、マルチタスク処理および並行処理が有利となり得る。さらに、上記で説明した実施形態における様々なシステムモジュールおよびコンポーネントの分離がすべての実施形態においてそのような分離を必要とすると理解すべきではなく、説明したプログラムコンポーネントおよびシステムは一般的に単一のソフトウェア製品に一緒に統合され得るまたは複数のソフトウェア製品にパッケージ化され得ると理解されたい。
発明特定事項の特定の実施形態を説明してきた。他の実施形態も以下の特許請求の範囲の範囲内にある。例えば、特許請求の範囲に記載のアクションは、異なる順序で行われ得るし、それでも望ましい結果を達成し得る。一例として、添付の図面に図示したプロセスは、望ましい結果を達成するために示した特定の順序または一連の順序を必ずしも必要とするわけではない。いくつかのケースにおいては、マルチタスク処理および並行処理が有利となり得る。
110 ネットワーク
208 トランザクション管理
210 インターフェース
306 ターゲットブロックチェーン
308 オフチェーンスマートコントラクトサービスプロバイダ
310 計算TEE
304 クライアントSDK
303 クライアントノード
312 信頼できるデータ閲覧サービスプロバイダ
316 Mychain
318 HyperLeger
320 Ethereum
410 ターゲットブロックチェーン
420 クライアント
430 スマートコントラクトサービスプロバイダ
440 データ閲覧サービスプロバイダ
510 第1の受信ユニット
520 送信ユニット
530 第2の受信ユニット
540 生成ユニット
550 ユーザインターフェース
610 生成ユニット
620 送信ユニット
630 受信ユニット

Claims (21)

  1. スマートコントラクトサービスを提供するためのコンピュータ実施方法であって、
    信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダによって、ターゲットブロックチェーンネットワークに関連付けられたクライアントから、前記ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークに記憶されているプライベートデータを含むクロスチェーンデータを使用してスマートコントラクト計算ロジックを実行するためのリクエストを受信するステップであって、前記スマートコントラクト計算ロジックは、前記クライアントによって定義され、前記スマートコントラクトサービスプロバイダは、前記ターゲットブロックチェーンネットワーク外にある、ステップと、
    前記スマートコントラクトサービスプロバイダによって、データ閲覧サービスプロバイダに、前記クロスチェーンデータについてのリクエストを送信するステップと、
    前記スマートコントラクトサービスプロバイダによって、前記データ閲覧サービスプロバイダから前記クロスチェーンデータを受信するステップと、
    前記TEEによって、前記プライベートデータを含む前記クロスチェーンデータを使用した前記スマートコントラクト計算ロジックの前記実行に基づいて結果を生成するステップと、
    前記スマートコントラクトサービスプロバイダによって、前記結果を前記クライアントに返信するステップとを含む、コンピュータ実施方法。
  2. 前記スマートコントラクトサービスプロバイダによって、前記クライアントに、前記TEEが前記リクエスト内の前記スマートコントラクト計算ロジックを実行するように動作可能な仮想マシンを含んでいることを証明するステップをさらに含む、請求項1に記載のコンピュータ実施方法。
  3. 前記クライアントからリクエストを受信することに先立って、前記スマートコントラクトサービスプロバイダによって、前記クライアントに、前記スマートコントラクトサービスプロバイダが前記TEEを含んでいることを証明するステップをさらに含む、請求項1に記載のコンピュータ実施方法。
  4. 前記スマートコントラクトサービスプロバイダによって、前記データ閲覧サービスプロバイダに、前記スマートコントラクトサービスプロバイダが前記TEEを含んでいることを証明するステップと、
    前記スマートコントラクトサービスプロバイダによって、前記データ閲覧サービスプロバイダがTEEを含んでいることを検証するステップとをさらに含む、請求項1に記載のコンピュータ実施方法。
  5. 前記スマートコントラクトサービスプロバイダによって、前記結果を前記ターゲットブロックチェーンネットワークにアップロードするステップをさらに含む、請求項1に記載のコンピュータ実施方法。
  6. 前記結果を前記ターゲットブロックチェーンネットワークにアップロードすることに先立って、前記スマートコントラクトサービスプロバイダによって、前記ターゲットブロックチェーンネットワークに、前記スマートコントラクトサービスプロバイダが前記TEEを含んでいることを証明するステップをさらに含む、請求項5に記載のコンピュータ実施方法。
  7. 前記スマートコントラクトサービスプロバイダは、クラウドベースサーバを含む、請求項1に記載のコンピュータ実施方法。
  8. 前記結果は、秘密鍵を使用して前記TEEによって署名される、請求項1に記載のコンピュータ実施方法。
  9. 前記クロスチェーンデータは、2つ以上のブロックチェーンネットワークから取得される、請求項1に記載のコンピュータ実施方法。
  10. スマートコントラクトサービスを提供するためのコンピュータ実施方法であって、
    ターゲットブロックチェーンネットワークに関連付けられたクライアントによって、前記ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークに記憶されているプライベートデータを含むクロスチェーンデータを使用してスマートコントラクト計算ロジックを実行するためのリクエストを生成するステップであって、前記スマートコントラクト計算ロジックは、前記クライアントによって定義される、ステップと、
    前記クライアントから、前記リクエストを信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダに送信するステップであって、前記スマートコントラクトサービスプロバイダは、前記ターゲットブロックチェーンネットワーク外にある、ステップと、
    前記クライアントによって、前記スマートコントラクトサービスプロバイダから結果を受信するステップであって、前記結果は、前記プライベートデータを含む前記クロスチェーンデータを使用した前記スマートコントラクト計算ロジックの前記実行に基づいて前記TEEによって生成される、ステップとを含む、コンピュータ実施方法。
  11. 前記クライアントによって、前記受信した結果を前記ターゲットブロックチェーンネットワークに送信するステップをさらに含む、請求項10に記載のコンピュータ実施方法。
  12. 記リクエストを前記スマートコントラクトサービスプロバイダに送信することに先立って、前記クライアントによって、前記スマートコントラクトサービスプロバイダが前記TEEを含んでいることを検証するステップをさらに含む、請求項10に記載のコンピュータ実施方法。
  13. 前記クライアントによって、前記TEEが前記リクエスト内の前記スマートコントラクト計算ロジックを実行するように動作可能な仮想マシンを含んでいることを検証するステップをさらに含む、請求項12に記載のコンピュータ実施方法。
  14. 前記クライアントは、ソフトウェア開発キット(SDK)を含む、請求項10に記載のコンピュータ実施方法。
  15. 前記結果は、秘密鍵を使用して前記TEEによって署名され、前記方法は、前記クライアントによって、前記秘密鍵に対応する公開鍵を使用して前記受信した結果を復号するステップをさらに含む、請求項10に記載のコンピュータ実施方法。
  16. 記リクエストを前記スマートコントラクトサービスプロバイダに送信することに先立って、前記クライアントによって、前記リクエストを暗号化するステップをさらに含む、請求項10に記載のコンピュータ実施方法。
  17. 前記クロスチェーンデータは、2つ以上のブロックチェーンネットワークから取得される、請求項10に記載のコンピュータ実施方法。
  18. 1つまたは複数のコンピュータに結合される、非一時的コンピュータ可読記憶媒体であって、前記非一時的コンピュータ可読記憶媒体は、請求項1から9のいずれか一項に記載の方法を行うように前記1つまたは複数のコンピュータによって実行可能な命令で構成される、非一時的コンピュータ可読記憶媒体。
  19. 1つまたは複数のコンピュータに結合される、非一時的コンピュータ可読記憶媒体であって、前記非一時的コンピュータ可読記憶媒体は、請求項10から17のいずれか一項に記載の方法を行うように前記1つまたは複数のコンピュータによって実行可能な命令で構成される、非一時的コンピュータ可読記憶媒体。
  20. スマートコントラクトサービスを提供するためのシステムであって、
    ターゲットブロックチェーンネットワークに関連付けられたクライアントから、前記ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークに記憶されているプライベートデータを含むクロスチェーンデータを使用してスマートコントラクト計算ロジックを実行するためのリクエストを受信するように構成される、インターフェースであって、前記スマートコントラクト計算ロジックは、前記クライアントによって定義され、前記システムは、前記ターゲットブロックチェーンネットワーク外にある、インターフェースと、
    信頼できる計算実行環境(TEE)とを含み、前記TEEは、
    1つまたは複数のコンピュータと、
    前記1つまたは複数のコンピュータに結合される、1つまたは複数のコンピュータ可読メモリとを含み、前記1つまたは複数のコンピュータ可読メモリは、
    前記クロスチェーンデータについてのリクエストをデータ閲覧サービスプロバイダに送信することと、
    前記データ閲覧サービスプロバイダから前記クロスチェーンデータを受信することと、
    前記プライベートデータを含む前記クロスチェーンデータを使用した前記スマートコントラクト計算ロジックの前記実行に基づいて結果を生成することとをするように前記1つまたは複数のコンピュータによって実行可能な命令で構成され、
    前記インターフェースは、前記結果を前記クライアントに返信するように構成される、システム。
  21. スマートコントラクトサービスを提供するためのシステムであって、
    1つまたは複数のコンピュータと、
    前記1つまたは複数のコンピュータに結合される、1つまたは複数のコンピュータ可読メモリとを含み、前記1つまたは複数のコンピュータ可読メモリは、
    ターゲットブロックチェーンネットワークに関連付けられたクライアントによって、前記ターゲットブロックチェーンネットワークとは異なる1つまたは複数のブロックチェーンネットワークに記憶されているプライベートデータを含むクロスチェーンデータを使用してスマートコントラクト計算ロジックを実行するためのリクエストを生成することであって、前記スマートコントラクト計算ロジックは、前記クライアントによって定義される、ことと、
    前記クライアントから、前記リクエストを信頼できる計算実行環境(TEE)を含むスマートコントラクトサービスプロバイダに送信することであって、前記スマートコントラクトサービスプロバイダは、前記ターゲットブロックチェーンネットワーク外にある、ことと、
    前記クライアントによって、前記スマートコントラクトサービスプロバイダから結果を受信することであって、前記結果は、前記プライベートデータを含む前記クロスチェーンデータを使用した前記スマートコントラクト計算ロジックの前記実行に基づいて前記TEEによって生成される、こととをするように前記1つまたは複数のコンピュータによって実行可能な命令で構成される、システム。
JP2019540594A 2018-12-13 2018-12-13 信頼できる実行環境に基づいたオフチェーンスマートコントラクトサービス Active JP6892513B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/120887 WO2019072297A2 (en) 2018-12-13 2018-12-13 INTELLIGENT CONTRACT SERVICE OUTSIDE CHAIN REGISTRY ("OFF-CHAIN") BASED ON A CONFIDENTIAL EXECUTION ENVIRONMENT

Publications (3)

Publication Number Publication Date
JP2020516104A JP2020516104A (ja) 2020-05-28
JP2020516104A5 JP2020516104A5 (ja) 2020-10-15
JP6892513B2 true JP6892513B2 (ja) 2021-06-23

Family

ID=66100022

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019540594A Active JP6892513B2 (ja) 2018-12-13 2018-12-13 信頼できる実行環境に基づいたオフチェーンスマートコントラクトサービス

Country Status (14)

Country Link
US (1) US20190279206A1 (ja)
EP (1) EP3563329B1 (ja)
JP (1) JP6892513B2 (ja)
KR (1) KR102212817B1 (ja)
CN (1) CN110520884B (ja)
AU (1) AU2018347199B2 (ja)
BR (1) BR112019014847A2 (ja)
CA (1) CA3049924C (ja)
MX (1) MX2019008597A (ja)
PH (1) PH12019501714A1 (ja)
RU (1) RU2729700C1 (ja)
SG (1) SG11201906754SA (ja)
WO (1) WO2019072297A2 (ja)
ZA (1) ZA201904934B (ja)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10686601B2 (en) * 2018-01-24 2020-06-16 Sensoriant, Inc. Consistency and consensus management in decentralized and distributed systems
US10764052B2 (en) * 2018-01-24 2020-09-01 Sensoriant, Inc. User identity and trust models in decentralized and distributed systems
US11218315B2 (en) 2018-01-24 2022-01-04 Safeshare, Inc. System and method establishing a trust model for shared content on the internet
US10728020B2 (en) * 2018-01-24 2020-07-28 Sensoriant, Inc. Efficient mining operations in blockchain environments with non-secure devices
US20210136068A1 (en) * 2018-05-05 2021-05-06 Telefonaktiebolaget Lm Ericsson (Publ) Telecom node control via blockchain
US11966917B2 (en) * 2018-09-12 2024-04-23 Bitclave Pte. Ltd. Systems and methods for providing personal rewards in a trustless ecosystem
US10841213B2 (en) * 2018-10-15 2020-11-17 Moac Blockchain Tech Inc Apparatus and method for communication between chains in a decentralized system
US11068316B2 (en) 2018-12-24 2021-07-20 LiquidApps Ltd Systems and method for managing memory resources used by smart contracts of a blockchain
US11546348B2 (en) * 2018-12-27 2023-01-03 Silver Rocket Data Technology (Shanghai) Co., Ltd. Data service system
US10725744B2 (en) * 2018-12-27 2020-07-28 Silver Rocket Data Technology (Shanghai) Co., Ltd Method for adapting to blockchain and device, terminal and medium performing the same
US11108559B2 (en) * 2019-01-02 2021-08-31 International Business Machines Corporation Producing proof of receipt, existence and other data provenance evidence
CN116132162A (zh) 2019-03-27 2023-05-16 创新先进技术有限公司 使用高可用性的可信执行环境检索区块链网络的公共数据
CN115967534A (zh) * 2019-03-27 2023-04-14 创新先进技术有限公司 使用可信执行环境检索区块链网络的公开数据
WO2019120325A2 (en) 2019-03-29 2019-06-27 Alibaba Group Holding Limited Retrieving access data for blockchain networks using highly available trusted execution environments
WO2019120336A2 (en) * 2019-04-19 2019-06-27 Alibaba Group Holding Limited Methods and devices for establishing communication between blockchain networks
PL3643041T3 (pl) 2019-04-26 2021-09-06 Advanced New Technologies Co., Ltd. Rozproszone zarządzanie kluczami dla zaufanych środowisk wykonawczych
JP2020528224A (ja) * 2019-04-26 2020-09-17 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited 信頼できる実行環境におけるスマート契約動作のセキュアな実行
CN109922162B (zh) * 2019-04-26 2021-09-28 山东建筑大学 一种基于区块链的扁平化建筑设备物联网监控***及方法
CN110166249B (zh) * 2019-05-14 2022-03-04 数字钱包(北京)科技有限公司 一种信息传输方法、装置、验证端及计算机可读存储介质
CN110245946B (zh) * 2019-05-20 2021-04-27 创新先进技术有限公司 结合代码标注与多类型维度的收据存储方法和节点
CN116932564A (zh) 2019-06-28 2023-10-24 创新先进技术有限公司 用于更新区块链中的数据的***和方法
CN116541465A (zh) * 2019-06-28 2023-08-04 创新先进技术有限公司 基于区块链的数据处理方法和装置
US10937096B2 (en) 2019-07-15 2021-03-02 Advanced New Technologies Co., Ltd. Transaction processing in a service blockchain
CN110471984B (zh) * 2019-07-15 2020-08-25 阿里巴巴集团控股有限公司 基于区块链的业务处理方法及装置、电子设备
CN110472974A (zh) * 2019-07-16 2019-11-19 阿里巴巴集团控股有限公司 基于区块链智能合约的资产转移方法、装置及***
US11277260B2 (en) * 2019-09-17 2022-03-15 International Business Machines Corporation Off-chain notification of updates from a private blockchain
CN110648235A (zh) * 2019-09-23 2020-01-03 刘佳 一种基于可信计算环境tee的跨链资产转移方法
KR20210040569A (ko) * 2019-10-04 2021-04-14 삼성에스디에스 주식회사 블록체인 기반 데이터 관리 시스템 및 그 방법
CN110780945B (zh) * 2019-10-24 2023-09-08 杭州趣链科技有限公司 一种异构区块链可插拔的跨链桥接方法、设备和存储介质
CN111222157B (zh) * 2019-10-30 2021-03-23 支付宝(杭州)信息技术有限公司 区块链隐私数据的查询方法及装置
US11349637B2 (en) 2019-11-04 2022-05-31 International Business Machines Corporation Random node selection for permissioned blockchain
WO2020035090A2 (en) 2019-11-08 2020-02-20 Alipay (Hangzhou) Information Technology Co., Ltd. Lightweight decentralized application platform
CN111475827A (zh) * 2019-11-08 2020-07-31 支付宝(杭州)信息技术有限公司 基于链下授权的隐私数据查询方法及装置
WO2020035089A2 (en) 2019-11-08 2020-02-20 Alipay (Hangzhou) Information Technology Co., Ltd. System and method for blockchain-based decentralized application development
CN110888935A (zh) * 2019-11-12 2020-03-17 北京芯际科技有限公司 一种基于区块链的数据交易方法
EP4055774A1 (en) * 2019-12-05 2022-09-14 Huawei Technologies Co., Ltd. System and method of establishing a trusted relationship in a distributed system
CN112989400B (zh) * 2019-12-13 2023-07-28 北京百度网讯科技有限公司 一种隐私事务处理方法、装置、电子设备和介质
JP7403306B2 (ja) * 2019-12-16 2023-12-22 株式会社日立製作所 サーバ、データ処理方法、計算機システム及び計算機
CN111160905B (zh) * 2019-12-17 2023-07-18 浙江大学 一种区块链节点用户请求处理保护方法及装置
CN111222160B (zh) * 2019-12-30 2022-07-29 联动优势科技有限公司 一种智能合约执行方法及***
CN111163093A (zh) * 2019-12-30 2020-05-15 杭州趣链科技有限公司 联盟区块链中从外部数据源获取外部数据的方法和装置
EP3846062A1 (en) * 2020-01-06 2021-07-07 Tata Consultancy Services Limited Method and system for processing transactions in a blockchain network
CN113111389A (zh) * 2020-01-13 2021-07-13 梅特勒-托利多(常州)精密仪器有限公司 测量设备的信息管理方法及装置
CN111258725B (zh) * 2020-01-17 2023-07-25 北京百度网讯科技有限公司 一种基于区块链的数据处理方法、装置、设备和介质
CN111352706B (zh) * 2020-02-28 2023-09-15 百度在线网络技术(北京)有限公司 一种数据访问方法、装置、设备及存储介质
CN111090874B (zh) * 2020-03-18 2020-09-01 支付宝(杭州)信息技术有限公司 调用合约的方法及装置
CN111092727B (zh) * 2020-03-18 2020-07-17 支付宝(杭州)信息技术有限公司 共享集群密钥的方法及装置
CN111092914B (zh) * 2020-03-18 2020-06-26 支付宝(杭州)信息技术有限公司 访问外部数据的方法及装置
CN111090876B (zh) * 2020-03-18 2020-07-17 支付宝(杭州)信息技术有限公司 调用合约的方法及装置
CN111090888B (zh) * 2020-03-18 2020-07-07 支付宝(杭州)信息技术有限公司 验证合约的方法及装置
CN111047450A (zh) * 2020-03-18 2020-04-21 支付宝(杭州)信息技术有限公司 链上数据的链下隐私计算方法及装置
CN111090875B (zh) * 2020-03-18 2020-10-02 支付宝(杭州)信息技术有限公司 部署合约的方法及装置
CN112152800B (zh) * 2020-03-18 2022-05-13 蚂蚁双链科技(上海)有限公司 生成共享合约密钥的方法及装置
CN111478948B (zh) * 2020-03-20 2023-02-17 深圳市芯链科技有限公司 区块链接入方法、物联网设备及存储介质
CN111460458B (zh) * 2020-03-31 2022-05-27 腾讯科技(深圳)有限公司 一种数据处理方法、相关装置及计算机可存储介质
CN111510918B (zh) * 2020-04-28 2022-08-02 拉扎斯网络科技(上海)有限公司 通信方法、***、装置、电子设备和可读存储介质
CN111510462B (zh) * 2020-04-28 2022-07-08 拉扎斯网络科技(上海)有限公司 通信方法、***、装置、电子设备和可读存储介质
CN111586149B (zh) * 2020-04-30 2022-11-11 中国银行股份有限公司 基于云和区块链的网络***及其业务处理方法、装置
CN111666337B (zh) * 2020-05-19 2023-04-25 武汉理工大学 基于区块链技术的专利技术转化运营平台及交易方法
CN111738859B (zh) * 2020-07-08 2021-07-13 支付宝(杭州)信息技术有限公司 区块链一体机及区块链网络
CN111541785B (zh) * 2020-07-08 2021-05-04 支付宝(杭州)信息技术有限公司 基于云计算的区块链数据处理方法及装置
CN111770201B (zh) * 2020-08-31 2020-12-04 支付宝(杭州)信息技术有限公司 一种数据验证方法、装置及设备
CN111930846B (zh) * 2020-09-15 2021-02-23 支付宝(杭州)信息技术有限公司 一种数据处理方法、装置及设备
CN111935318B (zh) * 2020-09-28 2021-01-19 北京百度网讯科技有限公司 跨链数据验证方法、装置、设备及介质
US11700125B2 (en) 2020-10-05 2023-07-11 Redcom Laboratories, Inc. zkMFA: zero-knowledge based multi-factor authentication system
CN112583585B (zh) * 2020-12-09 2022-06-28 杭州复杂美科技有限公司 交易执行方法、设备和存储介质
CN112511355B (zh) * 2020-12-18 2022-02-08 四川大学 一种跨链智能合约合作可能性评估方法
WO2022154339A1 (ko) * 2021-01-13 2022-07-21 서울대학교산학협력단 클라우드 내 증명가능한 데이터 삭제를 위한 추적성 보장 장치 및 방법
CN112948433B (zh) * 2021-02-24 2024-06-04 北京金山云网络技术有限公司 一种跨区块链查询方法、装置、***、设备及介质
CN113052697B (zh) * 2021-03-10 2023-08-01 从法信息科技有限公司 一种基于可信度的跨链任务执行方法、装置和电子设备
CN112948900A (zh) * 2021-03-31 2021-06-11 工银科技有限公司 应用于区块链***的链下数据获取方法和装置
CN113159769B (zh) * 2021-04-21 2022-07-19 中国人民解放军国防科技大学 一种基于区块链的数据流通智能合约实现方法及***
CN112989319B (zh) * 2021-05-12 2021-08-31 支付宝(杭州)信息技术有限公司 一种实现可信计算的方法、装置、电子设备及存储介质
CN112948153B (zh) * 2021-05-14 2021-08-10 支付宝(杭州)信息技术有限公司 一种消息跨链传输的方法和装置
CN113419776B (zh) * 2021-07-09 2022-09-13 杭州复杂美科技有限公司 应用兼容方法、计算机设备和存储介质
US11954226B2 (en) * 2021-08-17 2024-04-09 International Business Machines Corporation Verifiable privacy preserving computation
CN115796861B (zh) * 2021-09-08 2024-01-30 区块链新科技(广州)有限公司 一种区块链上跨链交易方法、***、设备及存储介质
CN114095497B (zh) * 2021-09-30 2024-04-19 网络通信与安全紫金山实验室 面向云网场景的基于区块链的资源使用量证明方法和***
CN114677137A (zh) * 2022-03-30 2022-06-28 网易(杭州)网络有限公司 区块链跨链方法、***及装置、电子设备、存储介质
JP2023168952A (ja) * 2022-05-16 2023-11-29 株式会社日立製作所 データ管理システム及びデータ管理方法

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7516326B2 (en) * 2004-10-15 2009-04-07 Hewlett-Packard Development Company, L.P. Authentication system and method
US8095118B2 (en) * 2009-01-09 2012-01-10 Microsoft Corporation Address book remote access and extensibility
US9904544B2 (en) * 2015-06-08 2018-02-27 Ripple Luxembourg S.A. System and method for determining that results produced from executions of software have not been altered or falsified
US20190188700A1 (en) * 2017-12-15 2019-06-20 Fmr Llc Social Data Tracking Datastructures, Apparatuses, Methods and Systems
US11436598B2 (en) * 2017-12-15 2022-09-06 Fmr Llc Social data tracking datastructures, apparatuses, methods and systems
US10423567B2 (en) * 2016-02-01 2019-09-24 Qualcomm Incorporated Unidirectional clock signaling in a high-speed serial link
US20170344988A1 (en) * 2016-05-24 2017-11-30 Ubs Ag System and method for facilitating blockchain-based validation
US11829998B2 (en) 2016-06-07 2023-11-28 Cornell University Authenticated data feed for blockchains
US10108954B2 (en) * 2016-06-24 2018-10-23 PokitDok, Inc. System and method for cryptographically verified data driven contracts
WO2018006072A1 (en) * 2016-06-30 2018-01-04 Clause, Inc. Systems and method for forming, storing, managing,and executing contracts
CA3033385A1 (en) * 2016-08-23 2018-03-01 BBM Health LLC Blockchain-based mechanisms for secure health information resource exchange
US20180089760A1 (en) * 2016-09-26 2018-03-29 Shapeshift Ag System and method of providing a multi-asset rebalancing mechanism
RU2639015C1 (ru) * 2017-01-26 2017-12-19 Игорь Сан-Сенович Дю Способ контроля подлинности и качества продукции в процессе производства и реализации
US10356102B2 (en) * 2017-02-24 2019-07-16 Verizon Patent And Licensing Inc. Permissions using blockchain
US11538031B2 (en) * 2017-03-31 2022-12-27 Vijay Madisetti Method and system for identity and access management for blockchain interoperability
US20180308072A1 (en) * 2017-04-21 2018-10-25 Gem Method and apparatus for blockchain management
US10742393B2 (en) * 2017-04-25 2020-08-11 Microsoft Technology Licensing, Llc Confidentiality in a consortium blockchain network
US20180315141A1 (en) * 2017-04-26 2018-11-01 Clause, Inc. System and method for business intelligence through data-driven contract analysis
CN108805562A (zh) * 2017-04-27 2018-11-13 中思博安科技(北京)有限公司 智能合约的执行方法和***
US11165589B2 (en) * 2017-05-11 2021-11-02 Shapeshift Ag Trusted agent blockchain oracle
US10833858B2 (en) * 2017-05-11 2020-11-10 Microsoft Technology Licensing, Llc Secure cryptlet tunnel
CN107231299A (zh) * 2017-06-07 2017-10-03 众安信息技术服务有限公司 一种链路由及实现区块链跨链通信的***
CN107342858B (zh) * 2017-07-05 2019-09-10 武汉凤链科技有限公司 一种基于可信环境的智能合约保护方法和***
US11030681B2 (en) * 2017-07-21 2021-06-08 International Business Machines Corporation Intermediate blockchain system for managing transactions
US20190050855A1 (en) * 2017-07-24 2019-02-14 William Martino Blockchain-based systems, methods, and apparatus for securing access to information stores
US11146380B2 (en) * 2017-08-03 2021-10-12 Parity Technologies Ltd. Methods and systems for a heterogeneous multi-chain framework
US10547594B2 (en) * 2017-08-17 2020-01-28 Domanicom Corporation Systems and methods for implementing data communication with security tokens
GB2566741A (en) * 2017-09-26 2019-03-27 Phm Associates Ltd Integrity of data records
US11244309B2 (en) * 2017-11-22 2022-02-08 Cornell University Real-time cryptocurrency exchange using trusted hardware
US20190172026A1 (en) * 2017-12-02 2019-06-06 Alchemy Limited LLC Cross blockchain secure transactions
CN108154366B (zh) * 2017-12-25 2021-09-14 丁江 跨链数字资产转移方法和终端设备
CN108256864B (zh) * 2018-02-13 2019-06-07 中链科技有限公司 一种区块链之间的跨链联盟的建立及通信方法、***
CN108416577B (zh) * 2018-03-02 2021-03-05 上海汉得信息技术股份有限公司 一种区块链服务***
CN108492108B (zh) * 2018-03-29 2021-04-23 深圳前海微众银行股份有限公司 区块链跨链通信方法、***和计算机可读存储介质
CN108712257B (zh) * 2018-04-03 2020-04-17 阿里巴巴集团控股有限公司 跨区块链的认证方法及装置、电子设备
US11194837B2 (en) * 2018-05-01 2021-12-07 International Business Machines Corporation Blockchain implementing cross-chain transactions
CN113095822A (zh) * 2018-06-27 2021-07-09 创新先进技术有限公司 基于区块链的智能合约调用方法及装置、电子设备
CN108694669A (zh) * 2018-07-18 2018-10-23 矩阵元技术(深圳)有限公司 一种区块链智能合约实现方法及装置

Also Published As

Publication number Publication date
SG11201906754SA (en) 2019-08-27
AU2018347199A1 (en) 2020-07-02
EP3563329A4 (en) 2019-12-11
AU2018347199B2 (en) 2021-07-01
CN110520884B (zh) 2023-09-29
WO2019072297A3 (en) 2019-07-18
WO2019072297A2 (en) 2019-04-18
CA3049924C (en) 2021-04-20
CN110520884A (zh) 2019-11-29
PH12019501714A1 (en) 2020-03-09
ZA201904934B (en) 2021-05-26
BR112019014847A2 (pt) 2020-04-14
EP3563329A2 (en) 2019-11-06
EP3563329B1 (en) 2022-02-09
KR102212817B1 (ko) 2021-02-08
JP2020516104A (ja) 2020-05-28
CA3049924A1 (en) 2019-04-18
US20190279206A1 (en) 2019-09-12
KR20200074910A (ko) 2020-06-25
MX2019008597A (es) 2019-09-09
RU2729700C1 (ru) 2020-08-11

Similar Documents

Publication Publication Date Title
JP6892513B2 (ja) 信頼できる実行環境に基づいたオフチェーンスマートコントラクトサービス
JP6690066B2 (ja) パブリックサイドチェーンを使用してコンソーシアムブロックチェーンに記憶されたデータの完全性を検証すること
US11381573B2 (en) Parallel execution of transactions in a blockchain network based on smart contract whitelists
JP2020528224A (ja) 信頼できる実行環境におけるスマート契約動作のセキュアな実行
US11354656B2 (en) Smart contract whitelists
CN111066047A (zh) 实现基于区块链的工作流
JP6921266B2 (ja) パブリックサイドチェーンを使用してコンソーシアムブロックチェーンに記憶されたデータの完全性を検証すること

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200902

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201030

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20201126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210302

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: 20210524

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210527

R150 Certificate of patent or registration of utility model

Ref document number: 6892513

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250