JP2020527259A - 高可用な高信頼実行環境を使用したブロックチェーンネットワークのためのパブリックデータの読み出し - Google Patents

高可用な高信頼実行環境を使用したブロックチェーンネットワークのためのパブリックデータの読み出し Download PDF

Info

Publication number
JP2020527259A
JP2020527259A JP2019553385A JP2019553385A JP2020527259A JP 2020527259 A JP2020527259 A JP 2020527259A JP 2019553385 A JP2019553385 A JP 2019553385A JP 2019553385 A JP2019553385 A JP 2019553385A JP 2020527259 A JP2020527259 A JP 2020527259A
Authority
JP
Japan
Prior art keywords
relay system
node
smart contract
system node
request
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
JP2019553385A
Other languages
English (en)
Other versions
JP6811339B2 (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 JP2020527259A publication Critical patent/JP2020527259A/ja
Application granted granted Critical
Publication of JP6811339B2 publication Critical patent/JP6811339B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

ブロックチェーンネットワークセキュリティを強化するための方法、システム、および装置であり、コンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む。実施形態は、データソースからのデータのための要求を受信するステップと、ブロックチェーンネットワークの外部にあるとともに複数のリレーシステムノードを含むマルチノードクラスタを含むリレーシステムに要求を送信するステップと、リレーシステムノードから提供される結果を受信するステップであって、結果は、リレーシステムノードの秘密鍵を使用してデジタル署名される、ステップと、リレーシステムノードが登録されていることを検証するステップと、リレーシステムノードが登録されていることを検証したことに応答して、リレーシステムノードの公開鍵と結果のデジタル署名とに基づいて結果の完全性を検証するステップと、結果の完全性を検証したことに応答して、結果をクライアントに送信するステップとを含む。

Description

本明細書は、外部データソースからブロックチェーンネットワークにデータを提供することに関する。
コンセンサスネットワークおよび/またはブロックチェーンネットワークとも称し得る、分散型台帳システム(DLS)は、関与エンティティが安全かつ変更不可能な形でデータを記憶することを可能にする。DLSは、任意の特定のユースケースを指すわけではなく、ブロックチェーンネットワークを一般には指す。ブロックチェーンネットワークのタイプの例は、コンセンサスプロセスを制御するとともにアクセス制御レイヤを含む、限定されたエンティティのグループに提供されるコンソーシアムブロックチェーンネットワークを含み得る。
スマートコントラクトは、ブロックチェーン上で実行されるプログラムである。スマートコントラクトは、そのルールの下でそのスマートコントラクトに対する関係者が互いにやりとりすることに合意する事前に定義されたルールのセットを含む。スマートコントラクトの事前に定義されたルールを満たしている場合には、スマートコントラクトにおいて定義された合意が自動的に実施される。スマートコントラクトは、通常は改竄抵抗性があり、合意またはトランザクションの交渉または遂行を容易にし、検証し、実施する。
いくつかの事例においては、ブロックチェーンネットワーク内で動作するスマートコントラクトは、事前に定義されたルールを評価して対応するアクションを行うために、ブロックチェーンネットワークの外部からの入力を必要とする。しかしながら、スマートコントラクト自身が、外部データソースに直接アクセスすることはできない。それゆえ、リレーエージェントが、スマートコントラクトによる処理のために、外部データを読み出し、ブロックチェーンにデータを送信するために使用され得る。しかしながら、このプロセスは、潜在的攻撃ベクトル(例えば、分散型サービス妨害(DDoS)攻撃)などのセキュリティ問題を引き起こし得る。さらに、各クライアントは、リモートエージェントを個別に認証することが必要となり得るし、このことは、スケーラビリティを阻害し、リソースオーバーヘッド(例えば、プロセッサ、メモリ、帯域幅)を増大させる。いくつかの事例においては、クライアントによって送信された各要求は、クライアントによって検証が完了しているあるリレーエージェントによって処理される。リレーエージェントが機能していない場合またはアクセスできなかった場合には、クライアント要求を正確に処理することができず、非可用なサービスをもたらすことになる。
外部データソースからのデータ読み出しに関連するセキュリティおよび他の問題に対処するために技法がこれまでも提案されてきたが、これらの問題に対処するより効率的なソリューションなものとなるであろう。
本明細書は、ブロックチェーンネットワーク内の処理のために外部データソースからデータを読み出すための技術を説明している。
本明細書の実施形態は、検証可能かつ高可用な方式で外部データソースから公的に可用なデータおよび/またはサービスを読み出すために使用されるマルチノードクラスタを含むリレーシステムを目的としている。いくつかの実施形態においては、リモート認証が、マルチノードクラスタ内の複数のリレーシステムノードの各々に対して行われ、リモート認証は、それぞれ、各リレーシステムノードに対して鍵ペア(公開鍵、秘密鍵)をもたらす。各リレーシステムノードは、高信頼実行環境(TEE)を使用して動作する。リレーシステムスマートコントラクトは、リレーシステムノードのリモート認証のために使用され、公的に監査することを可能にし、個々のクライアントがリモート認証を繰り返す必要性を取り除く。認証済みのリレーシステムノードは、使用のためにリレーシステムスマートコントラクトによって登録される。マルチノードクラスタ内のリレーシステムノードの各々の状態は、リレーシステムコントローラによって周期的にチェックおよび記録され得る。各クライアント要求は、外部データソースにクエリを行うためにマルチノードクラスタ内の可用なリレーシステムノードにリレーシステムコントローラによって割り当てられる。クエリの結果を含む応答は、リレーシステムノードの秘密鍵を使用してデジタル署名される。応答は、それが登録済みのリレーシステムノードによって送信されているかどうかに関して、リレーシステムスマートコントラクトによって検証され得る。応答の完全性は、リレーシステムノードの公開鍵を使用して、リレーシステムスマートコントラクトによって検証され得る。
特定の実施形態において提供したように本明細書において説明した発明特定事項は、以下の技術的利点のうちの1つまたは複数を実現する。いくつかの実施形態においては、外部データソースからデータおよび/またはサービスを読み出しまたはアクセスするためのマルチノードクラスタを提供している、ここで、マルチノードクラスタ内のリレーシステムノードの状態は、リレーシステムコントローラによって周期的にチェックおよび記録される。本明細書に記載しているように、クラスタにデプロイされているリレーシステムノードを用いて、リレーシステムコントローラは、クライアントサービス要求をクラスタ内の可用なリレーシステムノードに自動的に割り当てることができ、個々のリレーシステムノードの故障に起因するサービス不可用性を回避している。そのため、本明細書の実施形態は、インターネットデータソースにクエリを行うためのリレーシステムの総合的なサービス可用性を改善している。いくつかの実施形態においては、外部データソースからブロックチェーンネットワークに戻されるように提供される応答の完全性が保証される。それゆえ、本明細書の実施形態は、ブロックチェーンネットワークとブロックチェーンネットワークの外部にあるデータを読み出すために使用されるリレーシステムのコンポーネントとの間の通信の完全性を改善している。このように、不正ユーザに対する潜在的攻撃チャネルを抑制してセキュリティを強化している。いくつかの実施形態においては、リレーシステムは、ユーザとリレーシステムノードとの間の直接的な接点を回避することを容易にしており、それによって、リレーシステムノードの位置またはアクセスポイントがさらされることを回避している。そのため、例えば分散型サービス妨害(DDoS)攻撃などといった多くの形式でネットワークを通じて不正な動作主体によってリレーシステムノードが発見および攻撃される可能性が低くなる。このことは、リレーシステムノードのセキュリティを改善しており、それによって、ブロックチェーンネットワークとリレーシステムノードとの間の通信のセキュリティをさらに改善している。
本明細書はまた、1つまたは複数のプロセッサに結合されるとともに命令を記憶している1つまたは複数の非一時的コンピュータ可読記憶媒体を提供しており、命令は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに本明細書で提供した方法の実施形態による動作を行わせる。
本明細書は、本明細書で提供している方法を実施するためのシステムをさらに提供している。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合されるとともに命令を記憶しているコンピュータ可読記憶媒体とを含み、命令は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに本明細書で提供した方法の実施形態による動作を行わせる。
本明細書による方法が本明細書に記載の態様と特徴との任意の組合せを含み得ることは諒解されよう。すなわち、本明細書による方法は、特に本明細書に記載の態様と特徴との組合せに限定されるわけではなく、提供した態様と特徴との任意の組合せも含む。
本明細書の1つまたは複数の実施形態の詳細を添付の図面および以下の説明に記載している。本明細書の他の特徴および利点が、説明および図面から、および特許請求の範囲から明らかとなるであろう。
本明細書の実施形態を実行するために使用され得る環境の例を図示している図である。 本明細書の実施形態による、概念的機構の例を図示している図である。 本明細書の実施形態による、システムの例を図示している図である。 本明細書の実施形態による、信号フローの例を図示している図である。 本明細書の実施形態による、信号フローの例を図示している図である。 本明細書の実施形態による、信号フローの例を図示している図である。 本明細書の実施形態により実行され得るプロセスの例を図示している図である。 本明細書の実施形態による、装置のモジュールの例を図示している図である。
類似の参照番号および様々な図面内の記号は類似の要素を示す。
本明細書は、ブロックチェーンネットワーク内の処理のために外部データソースからデータを読み出すための技術を説明している。本明細書の実施形態は、検証可能かつ高可用な方式で外部データソースからデータおよび/またはサービスを読み出すまたはアクセスするために使用されるマルチノードクラスタを含むリレーシステムを目的としている。いくつかの実施形態においては、リモート認証が、マルチノードクラスタ内の複数のリレーシステムノードの各々に対して行われ、リモート認証は、それぞれ、各リレーシステムノードに対して鍵ペア(公開鍵、秘密鍵)をもたらす。各リレーシステムノードは、高信頼実行環境(TEE)を使用して動作する。リレーシステムスマートコントラクトは、リレーシステムノードのリモート認証のために使用され、公的に監査することを可能にし、個々のクライアントがリモート認証を繰り返す必要性を取り除く。認証済みのリレーシステムノードは、使用のためにリレーシステムスマートコントラクトによって登録される。マルチノードクラスタ内のリレーシステムノードの各々の状態は、リレーシステムコントローラによって周期的にチェックおよび記録され得る。クライアント要求は、外部データソースにクエリを行うためにクラスタ内の可用なリレーシステムノードにリレーシステムコントローラによって割り当てられる。クエリの結果を含む応答は、リレーシステムノードの秘密鍵を使用してデジタル署名される。応答は、それが登録済みのリレーシステムノードによって送信されているかどうかに関して、リレーシステムスマートコントラクトによって検証され得る。応答の完全性は、リレーシステムノードの公開鍵を使用して、リレーシステムスマートコントラクトによって検証され得る。
本明細書の実施形態についてのさらなる状況をあげるとすれば、上述したように、コンセンサスネットワーク(例えば、ピア・ツー・ピアノードで構成される)およびブロックチェーンネットワークとも称し得る、分散型台帳システム(DLS)は、関与エンティティが安全かつ変更不可能な形でトランザクションを実施しデータを記憶することを可能にする。ブロックチェーンという用語は、特定のネットワークおよび/またはユースケースに一般的に関連付けられているが、ブロックチェーンは、任意の特定のユースケースを指すわけではなくDLSを一般的に指すために本明細書では使用している。
ブロックチェーンは、トランザクションが変更不可能となる方法でトランザクションを記憶するデータ構造である。そのため、ブロックチェーン上に記録されるトランザクションは、信頼性のあるものおよび信頼できるものとなる。ブロックチェーンは、1つまたは複数のブロックを含む。チェーン内の各ブロックは、前のブロックの暗号ハッシュを含めることによって、チェーン内のその直前にある前のブロックに連結される。各ブロックはまた、タイムスタンプ、それ自身の暗号ハッシュ、および1つまたは複数のトランザクションを含む。ブロックチェーンネットワークのノードによって既に検証されているトランザクションは、ハッシュ化され、Merkleツリーに符号化される。Merkleツリーは、ツリーのリーフノードにおけるデータがハッシュ化され、ツリーの各ブランチにおけるすべてのハッシュがブランチのルートにおいて連結されるデータ構造である。このプロセスは、ツリー全体のルートまでツリーの上方へと進行し続け、ツリー全体のルートは、ツリー内のすべてのデータを表すハッシュを記憶している。ツリーに記憶されているトランザクションであることを意味するハッシュは、それがツリーの構造と一致しているかどうかを決定することによって素早く検証され得る。
ブロックチェーンは、トランザクションを記憶するための分散化または少なくとも部分的に分散化されたデータ構造である一方で、ブロックチェーンネットワークは、トランザクションをブロードキャストすること、検証すること、および有効性を確認することなどによって、1つまたは複数のブロックチェーンを管理、更新、および維持管理するコンピューティングノードのネットワークである。上述したように、ブロックチェーンネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、またはコンソーシアムブロックチェーンネットワークとして提供され得る。コンソーシアムブロックチェーンネットワークを参照して、本明細書の実施形態をここではさらに詳細に説明している。しかしながら、本明細書の実施形態が任意の適切なタイプのブロックチェーンネットワークにおいて実現され得ることも考えられる。
一般に、コンソーシアムブロックチェーンネットワークは、関与エンティティの間でプライベートなものとなっている。コンソーシアムブロックチェーンネットワークにおいては、コンセンサスプロセスは、コンセンサスノードとも称し得る、権限を与えられたノードのセットによって制御され、1つまたは複数のコンセンサスノードがそれぞれのエンティティ(例えば、金融機関、保険会社)に管理される。例えば、十(10)のコンソーシアムエンティティ(例えば、金融機関、保険会社)がコンソーシアムブロックチェーンネットワークを管理してもよく、その各々がコンソーシアムブロックチェーンネットワーク内の少なくとも1つのノードを管理する。
いくつかの例においては、コンソーシアムブロックチェーンネットワーク内では、グローバルブロックチェーンが、すべてのノードにわたって複製されるブロックチェーンとして提供される。すなわち、すべてのコンセンサスノードは、グローバルブロックチェーンに関する完全状態コンセンサスにある。コンセンサス(例えば、ブロックチェーンへのブロックの追加に対する合意)を得るために、コンセンサスプロトコルがコンソーシアムブロックチェーンネットワークにおいて実施される。例えば、コンソーシアムブロックチェーンネットワークは、以下でさらに詳細に説明している、実用的Byzantineフォールトトレランス(PBFT)コンセンサスを実施し得る。
図1は、本明細書の実施形態を実行するために使用され得る環境100の例を図示している図である。いくつかの例においては、例示的な環境100は、エンティティがコンソーシアムブロックチェーンネットワーク102に参加することを可能にする。例示的な環境100は、コンピューティングデバイス106、108、およびネットワーク110を含む。いくつかの例においては、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはその組合せを含み、ウェブサイト、ユーザデバイス(例えば、コンピューティングデバイス)、およびバックエンドシステムを接続する。いくつかの例においては、ネットワーク110は、有線および/または無線通信リンクを介してアクセスされ得る。
図示した例においては、コンピューティングシステム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は、エンティティレイヤ202、ホステッドサービスレイヤ204、およびブロックチェーンネットワークレイヤ206を含む。図示した例においては、エンティティレイヤ202は、関与者A、関与者B、および関与者Cの3つの関与者を含み、各関与者は、それぞれのトランザクション管理システム208を有する。
図示した例においては、ホステッドサービスレイヤ204は、各トランザクション管理システム210のためのインターフェース210を含む。いくつかの例においては、それぞれのトランザクション管理システム208は、プロトコル(例えば、ハイパーテキスト・トランスファー・プロトコル・セキュア(HTTPS))を使用してネットワーク(例えば、図1のネットワーク110)を介してそれぞれのインターフェース210と通信する。いくつかの例においては、各インターフェース210は、それぞれのトランザクション管理システム208とブロックチェーンネットワークレイヤ206との間の通信接続を提供する。より詳細には、インターフェース210は、ブロックチェーンネットワークレイヤ206のブロックチェーンネットワーク212と通信する。いくつかの例においては、インターフェース210とブロックチェーンネットワークレイヤ206との間の通信は、リモートプロシージャコール(RPC)を使用して実施される。いくつかの例においては、インターフェース210は、それぞれのトランザクション管理システム208のためのブロックチェーンネットワークノードを「ホスト」する。例えば、インターフェース210は、ブロックチェーンネットワーク212へのアクセスのためのアプリケーションプログラミングインターフェース(API)を提供する。
本明細書に記載しているように、ブロックチェーンネットワーク212は、ブロックチェーン216に情報を変更不可能な形で記録する複数のノード214を含むピア・ツー・ピアネットワークとして提供される。単一のブロックチェーン216を概略的に図示しているが、ブロックチェーン216の複数のコピーが、提供され、ブロックチェーンネットワーク212にわたって維持管理される。例えば、各ノード214は、ブロックチェーンのコピーを記憶する。いくつかの実施形態においては、ブロックチェーン216は、コンソーシアムブロックチェーンネットワークに参加する2つ以上のエンティティの間で行われるトランザクションに関連付けられた情報を記憶する。
ブロックチェーン(例えば、図2のブロックチェーン216)は、各ブロックがデータを記憶しているブロックのチェーンで構成される。例示的なデータは、2つ以上の関与者間のトランザクションを表すトランザクションデータを含む。トランザクションを非限定的な例として本明細書では使用しているが、任意の適切なデータがブロックチェーンに記憶され得ること(例えば、ドキュメント、画像、ビデオ、オーディオ)も考えられる。例示的なトランザクションは、価値のあるもの(例えば、資産、製品、サービス、および通貨)の交換を含み得るがこれに限定されない。トランザクションデータは、ブロックチェーン内に変更不可能な形で記憶される。すなわち、トランザクションデータを変更することはできない。
ブロックに記憶する前に、トランザクションデータはハッシュ化される。ハッシュ化は、トランザクションデータ(文字列データとして提供される)を固定長のハッシュ値(文字列データとしても提供される)に変換するプロセスである。ハッシュ値を逆ハッシュ化してトランザクションデータを取得することはできない。ハッシュ化は、トランザクションデータにおけるわずかな変化でさえも完全に異なるハッシュ値という結果になることを保証している。さらに、上述したように、ハッシュ値は固定長である。すなわち、トランザクションデータのサイズに関係なく、ハッシュ値の長さは固定される。ハッシュ化は、ハッシュ関数によってトランザクションデータを処理してハッシュ値を生成することを含む。ハッシュ関数の例は、256ビットハッシュ値を出力するセキュアなハッシュアルゴリズム(SHA)-256を含むがこれに限定されない。
複数のトランザクションのトランザクションデータがハッシュ化されブロックに記憶される。例えば、2つのトランザクションのハッシュ値が提供されると、それら自身がハッシュ化され別のハッシュを提供する。このプロセスは、すべてのトランザクションがブロックに記憶されるように、単一のハッシュ値が提供されるまで繰り返される。このようなハッシュ値は、Merkleルートハッシュと称され、ブロックのヘッダに記憶される。トランザクションについての何らかの変化は、そのハッシュ値における変化、最終的に、Merkleルートハッシュにおける変化をもたらすことになる。
ブロックは、コンセンサスプロトコルを介してブロックチェーンに追加される。ブロックチェーンネットワーク内の複数のノードは、コンセンサスプロトコルに関与し、ブロックがブロックチェーンに追加されるようにする作業を行う。そのようなノードをコンセンサスノードと称する。上述したように、PBFTは、コンセンサスプロトコルの非限定的な例として使用される。コンセンサスノードは、コンセンサスプロトコルを実行してトランザクションをブロックチェーンに追加し、ブロックチェーンネットワークの総合的な状態を更新する。
さらに詳細には、コンセンサスノードは、ブロックヘッダを生成し、ブロック内のトランザクションのすべてをハッシュ化し、単一のハッシュ値がブロック内のすべてのトランザクションに対して提供される(Merkleルートハッシュ)まで、ハッシュ値がペアになるように組み合わせてさらなるハッシュ値を生成する。このハッシュがブロックヘッダに追加される。コンセンサスノードはまた、ブロックチェーン内の最新ブロック(すなわち、ブロックチェーンに追加された最終ブロック)のハッシュ値を決定する。コンセンサスノードはまた、ノンス値およびタイムスタンプをブロックヘッダに追加する。
一般に、PBFTは、Byzantine障害(例えば、正常に動作していないノード、不正ノード)に耐性がある実用的Byzantineステートマシンの複製を提供する。このことは、障害が生じるであろうことを想定すること(例えば、独立したノードの故障の存在および/またはコンセンサスノードによって送信される操作メッセージを想定すること)によってPBFTでは実現される。PBFTでは、コンセンサスノードは、プライマリコンセンサスノードおよびバックアップコンセンサスノードを含むシーケンスにおいて提供される。プライマリコンセンサスノードは、周期的に変更される。トランザクションは、ブロックチェーンネットワークの系全体の状態(world state)に関して合意に至ったブロックチェーンネットワーク内のコンセンサスノードによってブロックチェーンに追加される。このプロセスにおいては、メッセージは、コンセンサスノード間で送信され、各コンセンサスノードは、メッセージが指定のピアノードから受信されたことを証明し、メッセージが送信中に変更されなかったことを検証する。
PBFTでは、多様な局面において、コンセンサスプロトコルが、同じ状態で開始するすべてのコンセンサスノードに提供される。はじめに、クライアントは、サービス動作を発動する(例えば、ブロックチェーンネットワーク内のトランザクションを実行する)ためにプライマリコンセンサスノードに要求を送信する。要求を受信したことに応答して、プライマリコンセンサスノードは、バックアップコンセンサスノードに要求をマルチキャストする。バックアップコンセンサスノードが要求を実行し、各々がクライアントに応答を送信する。クライアントは、閾値数の応答が受信されるまで待機する。いくつかの例においては、クライアントは、f+1個の応答が受信されるまで待機する、ここで、fは、ブロックチェーンネットワーク内で許容され得る、障害のあるコンセンサスノードの最大数である。目標達成は、ブロックチェーンに追加されることになるレコードの順で十分な数のコンセンサスノードが合意に至ることであり、レコードは、受理されるか拒否される。
いくつかのブロックチェーンネットワークにおいては、暗号化がトランザクションのプライバシーを維持管理するために実施される。例えば、ブロックチェーンネットワーク内の他のノードがトランザクションの詳細を理解することができないように、2つのノードがトランザクションをプライベートな状態を維持することを望む場合には、ノードはトランザクションデータを暗号化し得る。暗号化の例は、対称暗号化および非対称暗号化を含むがこれらに限定されない。対称暗号化とは、暗号化(平文から暗号文を生成すること)および復号(暗号文から平文を生成すること)の両方に関して単一の鍵を使用する暗号化プロセスを指す。対称暗号化においては、同一の鍵が複数のノードで利用可能であるため、各ノードがトランザクションデータを暗号化/復号し得る。
非対称暗号化は、各々が秘密鍵と公開鍵とを含む鍵ペアを使用しており、秘密鍵はそれぞれのノードにのみに対して既知となっており、公開鍵はブロックチェーンネットワーク内の他のノードのいずれかまたはすべてに対して既知となっている。あるノードは、別のノードの公開鍵を使用してデータを暗号化し、暗号化されたデータは、他のノードの秘密鍵を使用して復号され得る。例えば、図2を再び参照すれば、関与者Aは、関与者Bの公開鍵を使用してデータを暗号化し、暗号化されたデータを関与者Bに送信し得る。関与者Bは、その秘密鍵を使用して、暗号化されたデータ(暗号文)を復号し、元のデータ(平文)を抽出し得る。ノードの公開鍵で暗号化されたメッセージのみが、ノードの秘密鍵を使用して復号され得る。
非対称暗号化は、トランザクション内の関与者がトランザクション内の他の関与者だけでなくトランザクションの有効性を確認することを可能にするデジタル署名を提供するために使用される。例えば、あるノードは、メッセージをデジタル的に署名し得るし、別のノードは、関与者Aのデジタル署名に基づいてメッセージがそのノードによって送信されたことを確認し得る。デジタル署名はまた、メッセージが送信中に改竄されていないことを保証するために使用され得る。例えば、図2を再び参照すれば、関与者Aは、メッセージを関与者Bに送信しようとしている。関与者Aは、メッセージのハッシュを生成し、その後、その秘密鍵を使用して、ハッシュを暗号化して、暗号化したハッシュとしてデジタル署名を提供する。関与者Aは、デジタル署名をメッセージに付け加え、デジタル署名付きのメッセージを関与者Bに送信する。関与者Bは、関与者Aの公開鍵を使用してデジタル署名を復号し、ハッシュを抽出する。関与者Bは、メッセージをハッシュ化し、ハッシュを比較する。ハッシュが同一である場合には、関与者Bは、メッセージが確かに関与者Aからのものであり改竄されていないことを確認することができる。
いくつかの実施形態においては、ブロックチェーンネットワークのノード、および/またはブロックチェーンネットワークと通信するノードは、TEEを使用して動作し得る。高次においては、TEEは、ハードウェアの動作環境(例えば、オペレーティングシステム(OS)、基本入出力システム(BIOS))から隔離された、ハードウェア(1つまたは複数のプロセッサ、メモリ)における高信頼環境である。さらに詳細には、TEEは、実行されるコードおよびメインプロセッサ内へロードされるデータの機密性および完全性を保証する、プロセッサの独立したセキュアなエリアである。プロセッサ内では、TEEは、OSと並列して動作する。所謂、高信頼アプリケーション(TA)の少なくとも一部が、TEE内で実行され、プロセッサおよびメモリへのアクセスを有する。TEEのおかげで、TAは、メインOSで動作している他のアプリケーションから保護される。さらに、TEEは、TEE内で互いにTAを暗号的に隔離している。
TEEの例は、米国カリフォルニア州サンタ・クララ市のIntel Corporationによって提供されるSoftware Guard Extension(SGX)を含む。SGXを例としてここでは検討しているが、本明細書の実施形態が任意の適切なTEEを使用して実現され得ることも考えられる。
SGXは、ハードウェアベースのTEEを提供する。SGXにおいては、高信頼ハードウェアは、中央処理装置(CPU)のダイであり、物理メモリの一部は、限定されたコードおよびデータを保護するために隔離されている。メモリの隔離された部分をエンクレーブと称する。より詳細には、エンクレーブは、メモリ内のエンクレーブページキャッシュ(EPC)として提供されており、アプリケーションアドレス領域にマッピングされている。メモリ(例えば、DRAM)は、SGX用にプリザーブドランダムメモリ(PRM)を含む。PRMは、最も低いBIOSレベルにおける連続的なメモリ領域であり、いかなるソフトウェアによってもアクセスすることはできない。各EPCは、PRMにアプリケーションデータおよびコードをロードするためにOSによって割り振られたメモリセット(例えば、4KB)である。EPCメタデータ(EPCM)は、それぞれのEPCのためのエントリアドレスであり、各EPCが1つのエンクレーブによってのみ共有され得ることを保証する。すなわち、単一のエンクレーブが複数のEPCを使用することができる一方で、EPCは単一のエンクレーブに対して専用とされる。
TAの実行中には、プロセッサは、エンクレーブに記憶されているデータにアクセスする際には、所謂、エンクレーブモードで動作する。エンクレーブモードにおける動作は、各メモリアクセスに対して追加のハードウェアチェックを強制する。SGXにおいては、TAは、高信頼部分と非高信頼部分とにコンパイルされる。高信頼部分は、例えば、OS、BIOS、特権システムコード、仮想マシンマネージャ(VMM)、システム管理モード(SMM)などによってアクセスすることはできない。動作中には、TAは、メモリのPRM内で動作しエンクレーブを作成する。エンクレーブ内の高信頼部分によって実行される高信頼関数は非高信頼部分によって呼び出され、エンクレーブ内で実行されるコードはデータを平文データ(暗号化されていない)として認識し、データへの外部アクセスは拒否される。高信頼部分は暗号化された応答を呼び出しに提供し、TAは実行を継続する。
認証プロセスは、SGXが提供されるTEE内で予期されるコード(例えば、TAの高信頼部分)がセキュアに実行されていることを検証するために行われ得る。一般に、認証プロセスは、チャレンジ側(例えば、ブロックチェーンネットワーク内の別のノード、ブロックチェーンネットワークの鍵管理システム(KMS))から認証要求を受信するTAを含む。それに応じて、TAは、そのエンクレーブがクォートとも称するリモート認証を生成することを要求する。リモート認証を生成することは、ローカル認証を検証する、所謂、クォーティングエンクレーブにエンクレーブから送信される記ローカル認証を含み、非対称認証鍵を使用してローカル認証を署名することによってローカル認証をリモート認証に変換する。リモート認証(クォート)は、チャレンジ側(例えば、ブロックチェーンネットワークのKMS)に提供される。
チャレンジ側は、認証検証サービスを使用してリモート認証を検証する。SGXについては、Intelが、チャレンジ側からリモート認証を受信してリモート認証を検証する、Intel Attestation Service(IAS)を提供している。より詳細には、IASが、リモート認証を処理し、リモート認証が検証されたかどうかを示す、レポート(例えば、認証検証レポート(AVR))を提供する。検証されなかった場合には、エラーが示され得る。検証された(予期されるコードがTEEにおいてセキュアに実行されている)場合には、チャレンジ側は、TAとのインタラクションを開始または継続し得る。例えば、検証に応答して、(チャレンジ側として)KMSは、ノードが他のノードおよび/またはクライアントとセキュアに通信することを可能にするために、(例えば、楕円曲線Diffie-Hellman(ECDH)などの鍵交換プロセスを介して)TEEを実行するノードに非対称暗号鍵(例えば、公開鍵と秘密鍵とのペア)を発行し得る。
いくつかのブロックチェーンネットワークにおいては、所謂、スマートコントラクトが実行されてもよい。スマートコントラクトは、様々な関係者に影響を及ぼす契約条項を有する現実世界の適法契約のデジタル表現として説明することができる。スマートコントラクトは、例示的な状況では、コンソーシアムブロックチェーンネットワーク内で、実施され、記憶され、更新され(必要に応じて)、実行される。スマートコントラクトに関連付けられた契約関係者(例えば、買主および売主)は、コンソーシアムブロックチェーンネットワーク内のノードとして表される。いくつかの例においては、契約関係者は、(例えば、スマートコントラクトに対する関係者として)スマートコントラクトに関連付けられたエンティティ(例えば、企業)を含み得る。
さらに詳細には、スマートコントラクトは、ブロックチェーン(例えば、ブロックチェーンネットワーク内のノード)上で実行されるコンピュータ実行可能プログラムとして提供される。スマートコントラクトは、そのルールの下でそのスマートコントラクトに対する関係者が互いにやりとりすることに合意する事前に定義されたルールのセットを含む。スマートコントラクトの事前に定義されたルールを満たしている場合には、スマートコントラクトにおいて定義された合意が自動的に実施される。スマートコントラクトは、通常は改竄抵抗性があり、合意またはトランザクションの交渉または遂行を容易にし、検証し、実施する。
いくつかの事例においては、ブロックチェーンネットワーク内で実行されるスマートコントラクトは、事前に定義されたルールを評価して対応するアクションを行うために、ブロックチェーンネットワークの外部からの入力を必要とする。非限定的な例として、スマートコントラクトが決定の根拠とするために株価情報が必要になる場合があり、株価情報は、データソース外部からブロックチェーンネットワークにもたらされる。別の非限定的な例として、スマートコントラクトが決定の根拠とするためにブロックチェーンネットワークの外部で維持管理されているアカウントについてのアカウント情報が必要になる場合がある。しかしながら、スマートコントラクト自身が、外部データソースに直接クエリを行うことはできない。
従来のアプローチは、スマートコントラクトによる処理のために、外部データを読み出し、ブロックチェーンにデータを送信するためにリレーエージェントの使用を含む。しかしながら、このプロセスは、セキュアな情報(例えば、外部データソースにアクセスするために要求され得る認証情報)の漏洩などのセキュリティ問題を引き起こし得る。例えば、従来のアプローチは、リレーエージェントが指定のクエリ要求を実際に行っていたことを証明するためにTEEを使用し得る。しかしながら、ブロックチェーンの開放性に起因して、すべてのクエリ要求が、ブロックチェーンネットワーク内のすべてのユーザ(ノード)に対して可視となっている。それゆえ、アクセス制御(例えば、クエリ)を要求する外部データソースへのアクセスを要求するクエリ要求についてパーミッション漏洩のリスクが存在する。例えば、要求文字列が傍受、変更、およびリプレイされ、情報漏洩または他の問題を引き起こし得るリスクが存在する。
SGXを使用した従来のアプローチの1つにおいては、エンクレーブ(エンクレーブプログラム)を実行するTAまたはTAの一部が、外部データソースにアクセスするリレーノードとして機能する。例えば、エンクレーブプログラムは、クエリ要求(例えば、HTTPS要求)をインターネットベースのデータソースに送信し得るし、要求を開始したスマートコントラクトに応答を提供し得る。いくつかの例においては、エンクレーブの公開鍵を使用して機密情報(例えば、アクセス認証情報)を暗号化するために使用され得るプライバシーフィールド機能を提供している。いくつかの例においては、リレーノードは、エンクレーブの秘密鍵を使用してプライバシーフィールドを復号し、HTTPSクライアントを呼び出してターゲットインターネットベースのデータソースにアクセスし、要求されたデータを受信し、秘密鍵を使用して返信データをデジタル署名する。デジタル署名の後に、データが、要求を開始したスマートコントラクトに返信される。
しかしながら、そのような従来のアプローチはデメリットを有する。プライバシーフィールドを直接暗号化する例示的なデメリットは、プライバシーフィールドを有する要求の暗号文が完全性保護を有していないことである。例えば、ユーザは、インターネットベースのデータソースのすべての許可情報を要求するための要求において暗号化されたAPI鍵フィールドを含める。攻撃者が、通信を傍受することができる。攻撃者はAPI鍵情報の平文を直接復号することはできないが、攻撃者は、要求を変更し、同一のプライバシーフィールドを使用して情報にアクセスするための要求を構築し、それをリレーノードに送信し得る。このことは、機密情報(例えば、認証情報)の漏洩を引き起こすことになり得る。
上記の状況を考慮して、本明細書の実施形態は、リレーシステムおよびTEEを使用して外部データソース(例えば、インターネットベースのデータソース)にクエリを行うことを目的としている。より詳細には、ここでさらに詳細に説明しているように、本明細書の実施形態は、各々がTEEを実行する複数のリレーシステムノードを含むマルチノードクラスタを提供している。各リレーシステムノードの状態が維持管理され、リレーシステムノードが外部データについてのクライアント要求に応答してマルチノードクラスタから選択され得る。このように、リレーシステムの可用性を保証している。本明細書の実施形態は、機密情報(例えば、認証情報)を保護しつつ、許可要求の完全性チェックをさらに提供している。このように、ここでさらに詳細に説明しているように、本明細書の実施形態は、ユーザ権限が漏洩することを防止するなど、従来のアプローチのデメリットに対処している。
図3は、本明細書の実施形態による、システム300の例を図示している図である。図示しているように、システム300は、ブロックチェーン302、リレーシステムコントローラ308、複数のリレーシステムノード310を含むマルチノードクラスタ309、認証サービス312、およびネットワーク314(例えば、インターネット)を含む。図示した例においては、ブロックチェーン302は、クライアントスマートコントラクト304およびリレーシステムスマートコントラクト306を含む。一般に、リレーシステムスマートコントラクト306、リレーシステムコントローラ308、およびリレーシステムノード310は、ブロックチェーン302の外部にあるデータがブロックチェーン302内に読み出され使用されることを可能にするリレーシステムを提供する。
いくつかの実施形態においては、リレーシステムノード310は、TEE技術(例えば、Intel SGX)を使用して実装される。一般に、認証サービス312は、クライアントスマートコントラクト304についてのリレーシステムノード310の正当性を検証する。認証サービスの例は、上記で説明した、IASを含む。本明細書に記載しているように、リレーシステムスマートコントラクト306、リレーシステムコントローラ308、およびリレーシステムノード310は、クライアントスマートコントラクト304からネットワーク314(例えば、ネットワーク314を介してアクセス可能となっている外部データソース)へとデータまたは要求を中継するとともにネットワーク314からクライアントスマートコントラクト304へとデータまたは要求結果を中継するリレーシステムとして共に動作する。
クライアントスマートコントラクト304は、ネットワーク314からデータまたはサービスを要求する要求元として動作するスマートコントラクトである。いくつかの実施形態においては、クライアントスマートコントラクト304のオフライン所有者、例えば、クライアントまたはユーザ(図示せず)が、クライアントスマートコントラクト304にデータまたは要求を送信し得る、または、クライアントスマートコントラクト304においてデータまたはサービス要求を生成し得る。データまたは要求は、データグラム要素であり得る。クライアントスマートコントラクト304は、リレーシステムコントラクト306と通信可能なように結合されている。例えば、クライアントスマートコントラクト304は、リレーシステムスマートコントラクト306に要求を送信し、リレーシステムスマートコントラクト306から要求結果を受信し得る。
上述したように、リレーシステムスマートコントラクト306、リレーシステムコントローラ308、およびリレーシステムノード310は、クライアントスマートコントラクト304からネットワーク314へとデータまたは要求を中継するとともにネットワーク314からクライアントスマートコントラクト304へとデータまたは要求結果を中継するリレーシステムとして共に動作する。リレーシステムスマートコントラクト306は、リレーシステム内のブロックチェーン302のフロントエンドとしての機能を果たすスマートコントラクトである。リレーシステムスマートコントラクト306は、クライアントスマートコントラクト304からリレーシステムの他のコンポーネント(例えば、リレーシステムコントローラ308)へと要求を処理および中継するための、および、リレーシステムコントローラ308からクライアントスマートコントラクト304へと要求結果を中継するための、クライアントスマートコントラクト304に対する、アプリケーションプログラムインターフェース(API)を含むまたはそのようなAPIとして動作する。いくつかの実施形態においては、リレーシステムスマートコントラクト306は、クライアントスマートコントラクト304へと要求結果を中継する前に、要求結果に関連付けられた署名を検証する。要するに、リレーシステムスマートコントラクト306は、ブロックチェーン302とブロックチェーン302(例えば、リレーシステムコントローラ308)の外部にあるリレーシステムコンポーネントとの間のインターフェースを提供するスマートコントラクトである。リレーシステムスマートコントラクト306は、ブロックチェーン302(例えば、クライアントスマートコントラクト304)内で実行されるコンポーネントから要求を受け取り、対応する応答を返信する。
リレーシステムコントローラ308は、リレーシステムスマートコントラクト306からリレーシステムノード310へと要求を中継するとともにリレーシステムノード310からリレーシステムスマートコントラクト306へと要求結果を中継する、任意の適切なコンピュータ、プロセッサ、モジュール、またはコンピューティング要素を含む。そのため、リレーシステムコントローラ308は、リレーシステムスマートコントラクト306がネットワーク314への直接的な接続性を有していないため、リレーシステムスマートコントラクト306の状態を監視する監視エンティティとして動作する。
リレーシステムコントローラ308は、リレーシステムノード310から認証サービス312へとリレーシステムノード310の正当性を示す認証エビデンス320も中継する。いくつかの実施形態においては、認証エビデンス320は、リレーシステムノード310の測定値322およびリレーシステムノード310の署名326を含む。リレーシステムノード310の測定値322は、リレーシステムノード310の初期状態のハッシュ値を含み得る。認証エビデンス320に含まれるリレーシステムノード310の署名326は、リレーシステムノード310の認証鍵を使用して署名されたリレーシステムノード310の測定値322を含み得る。
いくつかの実施形態においては、リレーシステムノード310の認証鍵は、強化プライバシー識別(EPID)秘密鍵を含む。EPIDは、プライバシーを保護しつつ、高信頼システムの認証のためにIntelによって提供されるアルゴリズムである。一般に、ネットワークのメンバ(例えば、コンピュータまたはサーバ)の各々は、認証エビデンスを署名するためにEPID秘密鍵が割り当てられており、ネットワークにおける認証エビデンスの検証側は、ネットワークの他のメンバのEPID秘密鍵と対をなすEPID公開鍵を記憶している。メンバの各々は、それ自身のEPID秘密鍵を使用して認証エビデンスの署名を生成し得るし、検証側は、EPID公開鍵を使用して他のメンバの署名を検証し得る。そのため、EPID鍵は、コンピュータまたはサーバなどのデバイスが正規デバイスであることを証明するために使用され得る。
認証エビデンス320は、リレーシステムノード310によって生成された公開鍵324をさらに含み得る。認証エビデンス320がリレーシステムノード310によって生成された公開鍵324を含んでいる場合には、リレーシステムノード310の署名326は、測定値322と、リレーシステムノード310の認証鍵を使用して署名された公開鍵324とを含む。
リレーシステムノード310は、ブロックチェーン302からの要求を取り込み全うする、任意の適切なサーバ、コンピュータ、モジュール、またはコンピューティング要素を含む。例えば、リレーシステムノード310は、クライアントからオフチェーンサービス要求を受信および処理し、例えば、HTTPS対応のインターネットサービスなどといった、ネットワーク314内の外部データソースにクエリを行い得る。クライアントまたはクライアントスマートコントラクト304からの要求を処理する前に、リレーシステムノード310は、リレーシステムノード310の正当性を検証するために、認証エビデンス320を生成し、認証サービス312に認証エビデンス320を送信し得る。いくつかの実施形態においては、リレーシステムノード310は、公開鍵324と秘密鍵とを含む鍵ペアを生成し、認証エビデンス320に公開鍵324を含む。公開鍵324は、リレーシステムスマートコントラクト306とリレーシステムノード310との間の今後の通信のために、リレーシステムスマートコントラクト306へとリレーシステムコントローラ308によってさらに中継され得る。例えば、リレーシステムノード310は秘密鍵を使用して要求結果を署名し得るし、リレーシステムスマートコントラクト306は公開鍵324を使用して署名された要求結果を検証し得る。
図3の図示した例においては、複数のリレーシステムノード310は、マルチノードクラスタ309を形成し得る。クラスタのリレーシステムノード310の各々は、認証プロセス中にリレーシステムスマートコントラクト306によって個別に検証される。それゆえ、マルチノードクラスタ309の検証済みのリレーシステムノード310の各々は、インターネットデータソース314にクエリを行うために使用され得る。
認証サービス312は、リレーシステムノード310からリレーシステムコントローラ308によって転送された認証エビデンス320の正当性を検証する、任意の適切なサーバ、コンピュータ、モジュール、またはコンピューティング要素を含む。上述したように、認証エビデンス320は、リレーシステムノード310の測定値322、リレーシステムノード310の署名326、および/またはリレーシステムノード310によって生成された公開鍵324を含む。認証エビデンス320を受信すると、認証サービス312は、認証エビデンス320内のリレーシステムノード310の署名326を検証し、認証検証レポート(AVR)330を生成する。
認証サービス312は、認証サービス312の認証鍵を使用して認証エビデンス320内の署名326を検証する。いくつかの実施形態においては、認証サービス312の認証鍵は、リレーシステムノード310が認証エビデンス320に署名するために使用したEPID秘密鍵と対をなすEPID公開鍵を含む。認証エビデンス320内の署名を検証した後に、認証サービス312は、認証エビデンス320、認証エビデンス320内の署名326が有効であるかどうかを示す検証結果334、および認証サービス312の署名336を含む、AVR330を生成する。
いくつかの実施形態においては、AVR330は、リレーシステムノード310の署名326を除いて認証エビデンス320を含む。例えば、AVR330は、リレーシステムノード310の測定値322、リレーシステムノード310によって生成された公開鍵324、検証結果334、および認証サービス312の署名336を含み得る。いくつかの実施形態においては、認証サービス312の署名336は、認証サービス312のレポート署名鍵(例えば、認証サービス312が認証検証レポートを署名するために使用する秘密鍵)を使用して署名された認証エビデンス320および検証結果334を含む。レポート署名鍵が認証サービス312の認証鍵とは異なる得ることに留意されたい。
図3で説明したようなリレーシステムは、外部データソースから公的に可用なデータおよび/またはサービスを読み出すために使用され得る。読み出しプロセスの全体は、3つの段階を含む。第1の段階において、リレーシステムスマートコントラクト306は、マルチノードクラスタ309内のリレーシステムノード310についての認証確認を行い、認証済みのリレーシステムノード310を登録(記憶)する。第2の段階において、リレーシステムコントローラ308は、マルチノードクラスタ309内のリレーシステムノード310の状態をチェックし、リレーシステムノード310が使用のために可用なものであると決定する。第3の段階において、クライアントスマートコントラクト304は、リレーシステムスマートコントラクト306、リレーシステムコントローラ308、およびマルチノードクラスタ309内の可用なリレーシステムノード310を介して外部データソース314から公的に可用なデータおよび/またはサービスを読み出す。
図4は、本明細書の実施形態による、信号フロー400の例を図示している。信号フロー400は、認証検証プロセスを表している。便宜上、プロセスが、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって行われるとともに本明細書に従って適切に行われるものとして説明することにする。例えば、適切にプログラムされた分散システム(例えば、図1のブロックチェーンシステム100、図3のシステム300)がそのプロセスを行い得る。
一般的に、動作中には、リレーシステムコントローラ308は、リレーシステムノード310から認証エビデンスを読み出し、認証エビデンスを検証するために認証サービス312に認証エビデンスを送信する。リレーシステムコントローラ308は、認証エビデンス内のリレーシステムノード310の署名に対する検証に基づいてリレーシステムノード310の正当性を示す認証サービス312からAVRを受信する。リレーシステムコントローラ308は、リレーシステムスマートコントラクト306へと認証サービス312の署名を含むAVRをさらに中継する。
手始めに、認証エビデンスについてリレーシステムノード310にチャレンジを行う前に、リレーシステムコントローラ308は、リレーシステムノード310の測定値(例えば、初期状態のダイジェスト)を取得する。いくつかの実施形態においては、リレーシステムコントローラ308は、リレーシステムノード310から測定値を取得する。代替の実施形態においては、リレーシステムコントローラ308は、リレーシステムノード310のデベロッパから測定値を取得する。リレーシステムコントローラ308は、リレーシステムスマートコントラクト306へとリレーシステムノード310の測定値を転送する。リレーシステムスマートコントラクト306は、今後の使用のためにリレーシステムノード310の測定値を登録(記憶)する。例えば、リレーシステムスマートコントラクト306は、保存されている測定値を認証サービス312から受信したAVR内の別の測定値と比較し得る。
図4の例においては、リレーシステムコントローラ308が、認証要求(例えば、チャレンジ)をリレーシステムノード310に送信する(410)。認証要求が、リレーシステムノード310の正当性または有効性を示す認証エビデンスを要求するためにリレーシステムノード310に送信される。いくつかの実施形態においては、認証エビデンスは、リレーシステムノード310の測定値およびリレーシステムノード310の署名を含む。リレーシステムノード310の測定値は、リレーシステムノード310の初期状態のハッシュ値を含み得る。例えば、リレーシステムノード310の測定値は、リレーシステムノード310上で実施されるプロセスコードのハッシュ値を含み得る。
認証要求に応答して、リレーシステムノード310が、認証エビデンスを生成する(412)。上述したように、認証エビデンスは、リレーシステムノード310の正当性または有効性を示し、リレーシステムノード310の測定値および署名を含み得る。いくつかの実施形態においては、認証エビデンスは、リレーシステムノード310によって生成された公開鍵をさらに含む。例えば、リレーシステムノード310は、例えば、Rivest-Shamir-Adleman(RSA)アルゴリズムなどといった、所定の鍵生成アルゴリズムを使用して、秘密鍵と公開鍵とを含むランダム暗号鍵ペアを生成し得る。いくつかの例においては、公開鍵は、リレーシステムスマートコントラクト306に送信されることになる認証エビデンスにおいて提供され、リレーシステムスマートコントラクト306とリレーシステムノード310との間の今後の通信のために使用され得る。例えば、リレーシステムノード310は秘密鍵を使用して要求結果を署名し得るし、リレーシステムスマートコントラクト306は公開鍵を使用して署名された要求結果を検証し得る。
いくつかの実施形態においては、リレーシステムノード310の測定値は、リレーシステムノード310の初期状態のハッシュ値を含む。認証エビデンス内のリレーシステムノード310の署名は、リレーシステムノード310の認証鍵を使用して署名されている、測定値およびリレーシステムノード310によって生成された公開鍵を含む。いくつかの実施形態においては、リレーシステムノード310の認証鍵は、EPID秘密鍵を含む。EPID秘密鍵を使用して署名された認証エビデンスは、認証エビデンスを生成したデバイスが正規のものであることを証明するために、EPID秘密鍵と対をなすEPID公開鍵を使用して検証側によって検証され得る。
リレーシステムノード310が、認証エビデンスをリレーシステムコントローラ308に送信する(414)。リレーシステムコントローラ308に送信される認証エビデンスは、リレーシステムノード310の測定値、リレーシステムノード310によって生成された公開鍵、およびリレーシステムノード310のEPID秘密鍵を使用して署名されている測定値および公開鍵を含むリレーシステムノード310の署名を含み得る。
リレーシステムコントローラ308が、認証サービス312へと認証エビデンスを転送する(416)。いくつかの実施形態においては、リレーシステムコントローラ308は、認証検証要求を認証サービス312に送信する。認証検証要求は、リレーシステムノード310から送信された認証エビデンスと、例えば、リレーシステムノード310がSGXプラットフォームサービスを使用しているかどうかを示す記述子などといった、いくつかの補足情報とを含む。
認証サービス312が、リレーシステムコントローラ308によって転送された認証エビデンスを受信したことに応答して認証エビデンスを検証する(418)。上述したように、認証エビデンスは、リレーシステムノード310の測定値、リレーシステムノード310によって生成された公開鍵、およびリレーシステムノード310の署名を含む。認証サービス312は、認証サービス312の認証鍵を使用して認証エビデンス内のリレーシステムノード310の署名を検証することによって認証エビデンスを検証し得る。例えば、認証サービス312は、リレーシステムノード310が認証エビデンスを署名するために使用するEPID秘密鍵と対をなす認証検証サーバのEPID公開鍵を使用してリレーシステムノード310の署名を検証する。
認証エビデンス内のリレーシステムノード310の署名が有効であると認証サービス312が決定した場合には、認証サービス312は、リレーシステムノード310が正規または正当なデバイスであると決定し得る。認証エビデンス内のリレーシステムノード310の署名が無効であると認証サービス312が決定した場合には、認証サービス312は、リレーシステムノード310が正規のデバイスではないまたは正当なデバイスではないと決定し、リレーシステムノード310から任意の後続のデータおよび要求を拒否し得る。
認証サービス312が、認証エビデンスの検証に基づいてAVRを生成する(420)。いくつかの実施形態においては、AVRは、リレーシステムノード310の認証エビデンス、認証検証結果、および認証サービス312のデジタル署名を含み得る。いくつかの実施形態においては、AVRは、リレーシステムノード310の署名を除いてリレーシステムノード310の認証エビデンスを含み得る。例えば、AVRは、リレーシステムノード310の測定値、リレーシステムノード310によって生成された公開鍵、認証検証結果、および認証サービス312の署名を含み得る。
AVR内の認証検証結果は、リレーシステムノード310の署名が有効であるかどうかを示す。例えば、認証検証結果は、リレーシステムノード310の署名が有効であることを示す「有効」もしくは「OK」の値または署名が無効であることを示す「無効」の値を含み得る。
いくつかの実施形態においては、認証サービス312の署名は、レポート署名鍵を使用して署名されている認証エビデンスおよび認証検証結果を含む。レポート署名鍵は、認証サービス312がAVRを署名するために使用する秘密鍵であり得る。いくつかの実施形態においては、レポート署名鍵は、所定の鍵生成アルゴリズムを使用して認証サービス312によって生成される。例えば、レポート署名鍵は、RSA-Secure Hash Algorithm(SHA)256を使用して生成され得る。レポート署名鍵が、認証サービス312が認証エビデンスを検証するために使用している認証鍵(例えば、EPID公開鍵)とは異なるものであることに留意されたい。
いくつかの実施形態においては、認証サービス312が、AVRをリレーシステムコントローラ308に送信する(422)。上述したように、AVRは、リレーシステムノード310の識別の検証についての暗号的に署名されたレポートを含み、リレーシステムノード310の認証エビデンス、認証検証結果、および認証サービス312のデジタル署名を含み得る。
いくつかの実施形態においては、リレーシステムコントローラ308が、認証サービス312からAVRを受信した後にリレーシステムスマートコントラクト306へとAVRを転送する(424)。リレーシステムスマートコントラクト306が、AVRを検証する(426)。例えば、リレーシステムスマートコントラクト306は、AVR内の認証サービス312の署名を検証し得る。いくつかの実施形態においては、リレーシステムスマートコントラクト306は、レポート署名証明書を使用して認証サービス312の署名を検証する。レポート署名証明書は、X.509デジタル証明書であり得る。レポート署名証明書は、認証サービス312によって生成されるとともに、認証サービス312がAVRを署名するために使用するレポート署名鍵と対をなす、公開鍵を含み得る。AVR内の認証サービス312の署名が有効であることをリレーシステムスマートコントラクト306が検証した場合には、リレーシステムスマートコントラクト306は、AVRが認証サービス312によって実際に送信されたと決定する。AVR内の認証サービス312の署名が無効であるとリレーシステムスマートコントラクト306が決定した場合には、リレーシステムスマートコントラクト306は、認証検証レポートが正規のものではないと決定し、AVRを拒否することになる。リレーシステムスマートコントラクト306は、さらに、AVR内の認証検証結果を検査して、リレーシステムノード310の認証エビデンスが有効であるかどうかを決定し得る。いくつかの実施形態においては、リレーシステムスマートコントラクト306は、さらに、認証エビデンス内の測定値をリレーシステムスマートコントラクト306に事前に記憶されている測定値と比較して、認証エビデンスが有効であるかどうかを決定する。
リレーシステムスマートコントラクト306が、AVRが正規のものであると決定するとともにリレーシステムノード310の認証エビデンスが有効であると決定したことに応答して、有効または正当なデバイスとしてリレーシステムノード310を登録する(428)。リレーシステムスマートコントラクト306は、認証エビデンスに含まれるとともにリレーシステムノード310によって生成される公開鍵をさらに記憶し得る。公開鍵は、リレーシステムスマートコントラクト306とリレーシステムノード310との間の今後の通信のためにリレーシステムスマートコントラクト306によって使用されることになる。
図5は、本明細書の実施形態による、信号フロー500の例を図示している。信号フロー500は、本明細書の実施形態による、マルチノードクラスタ309のリレーシステムノード310のノード状態をチェックするためのプロセスを表している。便宜上、プロセスが、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって行われるとともに本明細書に従って適切に行われるものとして説明することにする。例えば、適切にプログラムされた分散システム(例えば、図1のブロックチェーンシステム100、図3のシステム300)がそのプロセスを行い得る。
一般的に、動作中には、リレーシステムコントローラ308は、マルチノードクラスタ309内のリレーシステムノード310に状態要求を周期的に送信する。リレーシステムノード310は、状態要求を受信すると状態応答を応答する。リレーシステムコントローラ308は、リレーシステムノード310の状態応答に基づいてリレーシステムノード310の状態を記録する。
さらに詳細には、リレーシステムコントローラ308が、マルチノードクラスタ309のリレーシステムノード310aに状態要求を送信する(502)。マルチノードクラスタ309は、例えば、310aおよび310bなどといった、複数のリレーシステムノード310を含む。図5は図示することだけを目的としてリレーシステムノード310aおよび310bを含むように示されていることに留意されたい。マルチノードクラスタ309は、任意の適切な数のリレーシステムノード310を含み得る。
リレーシステムノード310aが、状態要求を処理し(504)、状態応答をリレーシステムコントローラ308に送信する(506)。例えば、リレーシステムノード310aは、正常状態となっている場合には、リレーシステムコントローラ308に状態確認メッセージを送信し得る。別の例としては、リレーシステムノード310aは、異常状態となっている場合には、状態要求に応答し得ない。
リレーシステムコントローラ308が、リレーシステムノード310aの状態応答に基づいてリレーシステムノード310aの状態を記録する(508)。例えば、リレーシステムコントローラ308は、リレーシステムコントローラ308がリレーシステムノード310から状態確認メッセージを受信した場合には、「可用」なものとしてリレーシステムノード310aの状態を記録する。別の例としては、リレーシステムコントローラ308は、リレーシステムノード310aが所定の時間ウィンドウ内に応答しなかった場合には、「非可用」なものとしてリレーシステムノード310aの状態を記録する。
リレーシステムコントローラ308は、例えば、リレーシステムノード310bなどといった、クラスタ内の他のリレーシステムノード310に状態要求を送信し得る。リレーシステムコントローラ308が、リレーシステムノード310bに状態要求を送信し(510)得るし、リレーシステムノード310bが、状態要求を処理し(512)、状態応答をリレーシステムコントローラ308に送信する(514)。リレーシステムコントローラ308が、リレーシステムノード310bの状態応答に基づいてリレーシステムノード310bの状態を記録する(516)。
上述したように、リレーシステムコントローラ308は、クラスタ内のリレーシステムノード310のノード状態について周期的にクエリを行い、リレーシステムノード310の状態を記録する。その後、外部データソースからデータについてのクエリを受信すると、リレーシステムコントローラ308は、可用なものとして記録されたリレーシステムノード310のうちの1つを選択してクエリを処理し得る。
図6は、データ読み出しを行うためのプロセス600の例を図示している。便宜上、プロセス600が、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって行われるとともに本明細書に従って適切に行われるものとして説明することにする。例えば、適切にプログラムされた分散システム(例えば、図1のブロックチェーンシステム100、図3のシステム300)がそのプロセス600を行い得る。
一般的に、動作中には、クライアントスマートコントラクト304が、リレーシステムスマートコントラクト306を介してリレーシステムコントローラ308へと中継されることになる要求を生成する。リレーシステムコントローラ308は、マルチノードクラスタ309内の可用なリレーシステムノード310を選択する。選択したリレーシステムノード310が、インターネットデータソース314にクエリを行う。いくつかの例においては、インターネットデータソース314はパブリックデータソースであり、認証情報はアクセスに必要とされない。リレーシステムノード310は、インターネットデータソース314から応答を受信し、応答は、本明細書の実施形態に従って、リレーシステムスマートコントラクト306によって検証され、クライアントスマートコントラクト304に返信される。
さらに詳細には、クライアントスマートコントラクト304が、インターネットベースのデータソース314からのデータまたはサービスについての要求を送信する(602)。要求は、クライアントスマートコントラクト304からリレーシステムスマートコントラクト306に送信される。いくつかの例においては、要求は、公的にアクセス可能ウェブサイトからの公的に可用なデータについての要求であり得る。要求は、例えば、インターネットデータソース314のウェブアドレス(URL)および1つまたは複数の要求パラメータ(例えば、データを示すパラメータ、および/または要求されたサービス)などといった、平文部分を含み得る。要求を受信したことに応答して、リレーシステムスマートコントラクト306が、ログメッセージとしてリレーシステムコントローラ308に要求を転送する(604)。
リレーシステムコントローラ308が、マルチノードクラスタ309内の複数のリレーシステムノード310からリレーシステムノード310を選択する(606)。例えば、本明細書に記載しているように、リレーシステムコントローラ308は、マルチノードクラスタ309内のリレーシステムノード310に周期的にクエリを行い、リレーシステムノード310の状態を記録する。いくつかの例においては、リレーシステムコントローラ308は、クラスタ内のリレーシステムノード310から可用なものとなっているリレーシステムノード310をランダムに選択する。他の例においては、リレーシステムコントローラ308は、クラスタ内のリレーシステムノード310から可用なものとなっているとともに最も少ない作業負荷を有しているリレーシステムノード310を選択する。
リレーシステムコントローラ308が、606において決定されるようなリレーシステムノード310に要求を送信する(608)。いくつかの例においては、リレーシステムコントローラ308は、要求を受信することになるリレーシステムノード310(例えば、リレーシステムコントローラ308によって選択されたリレーシステムノード310)のインジケータとともに要求を送信する。例えば、要求は、リレーシステムノード310の識別子(例えば、URL)を含むようにリレーシステムコントローラ308によって変更され得る。
要求を受信したことに応答して、リレーシステムノード310が、インターネットデータソース314にクエリを行う(610)。例えば、リレーシステムノード310は、クエリを作成して、(例えば、HTTP GETメソッドを使用して)インターネットデータソース314からデータを要求し得る。いくつかの例においては、クエリは、1つまたは複数の要求パラメータを含み得る。クエリを受信したことに応答して、インターネットデータソース314が、クエリを処理して、応答を提供する(612)。例えば、インターネットデータソース314は、1つまたは複数の要求パラメータを処理して、1つまたは複数の要求パラメータに応答するデータを識別し、そのデータを含む結果を提供し得る。インターネットデータソース314が、結果をリレーシステムノード310に送信する(614)。
リレーシステムノード310が、結果を処理して、応答を提供する(616)。本明細書の実施形態によれば、リレーシステムノード310は、その秘密鍵を使用して結果を署名して、応答を提供する。本明細書に記載しているように、秘密鍵は、リレーシステムノード310のリモート認証中に生成される。さらに詳細には、結果または結果の少なくとも一部(例えば、データ)は、第1のハッシュ値を提供するハッシュ関数を用いてリレーシステムノード310によって処理される。ハッシュ関数の例は、SHA-256を含むがこれに限定されない。リレーシステムノード310は、第1のハッシュ値および秘密鍵に基づいてデジタル署名を生成する。例えば、第1のハッシュ値および秘密鍵は、デジタル署名を提供する署名アルゴリズムによって処理される。リレーシステムノード310は、結果(例えば、データ)およびデジタル署名を含む応答を提供する。リレーシステムノード310が、応答をリレーシステムコントローラ308に送信し(618)、リレーシステムコントローラ308は、応答をリレーシステムスマートコントラクト306に送信する(620)。
リレーシステムスマートコントラクト306が、応答を処理して、応答が登録済みのリレーシステムノード310によって送信されているかどうかを検証し、応答の完全性を保証する(622)。上述したように、リレーシステムスマートコントラクト306は、認証プロセス中に認証されたリレーシステムノード310を登録(記憶)する。いくつかの実施形態においては、応答は、リレーシステムノード310の一意な識別情報(例えば、URL)を含み得るし、リレーシステムスマートコントラクト306は、応答内の識別情報を登録済みのリレーシステムノード310の識別情報(例えば、URL)とマッチングし得る。一致するものが存在する場合には、リレーシステムスマートコントラクト306は、応答が登録済みのリレーシステムノード310によって送信されていると決定し、応答の完全性をチェックすることに取り掛かり得る。一致するものが存在しない場合には、リレーシステムスマートコントラクト306は、応答が登録済みのリレーシステムノード310によって送信されていないと決定し、応答を拒否し得る。
本開示の実施形態によれば、リレーシステムスマートコントラクト306は、さらに、ハッシュ関数(例えば、SHA-256)を用いて結果(例えば、データ)を処理して、第2のハッシュ値を提供する。リレーシステムスマートコントラクト306は、検証アルゴリズムによってデジタル署名およびリレーシステムノード310の公開鍵を処理して、第1のハッシュ値を提供する。例えば、リレーシステムスマートコントラクト306は、公開鍵を使用してデジタル署名を復号して、第1のハッシュ値を明らかにする。本明細書に記載しているように、公開鍵は、リレーシステムノード310のリモート認証中に生成される。
リレーシステムスマートコントラクト306は、第1のハッシュ値および第2のハッシュ値に基づいて。応答の完全性を検証する例えば、リレーシステムスマートコントラクト306は、第1のハッシュ値を第2のハッシュ値と比較する。第1のハッシュ値と第2のハッシュ値とが同一でなければ、応答は、改竄されており、信頼できない。それゆえ、リレーシステムスマートコントラクト306は、任意の下流コンポーネント(例えば、クライアントスマートコントラクト)に結果(例えば、データ)を提供しない、および/または、フラグエラーのフラグを立て得る。第1のハッシュ値と第2のハッシュ値とが同一であれば、応答の完全性は瑕疵がない。それゆえ、リレーシステムスマートコントラクト306が、さらなる処理のためにクライアントスマートコントラクト304に結果(例えば、データ)を提供する(624)。
図7は、本明細書の実施形態により実行され得るプロセス700の例を図示している。いくつかの実施形態においては、例示的なプロセス700は、1つまたは複数のコンピューティングデバイスを使用して実行される1つまたは複数のコンピュータ実行可能プログラムを使用して行われ得る。いくつかの例においては、例示的なプロセス700は、ブロックチェーンネットワークの外部にあるデータを読み出すためのリレーシステム(例えば、図3のリレーシステムスマートコントラクト306、リレーシステムコントローラ308、リレーシステムノード310)によって行われ得る。
要求を受信する(702)。例えば、図3のリレーシステムコントローラ308は、リレーシステムスマートコントラクト306を介してクライアントスマートコントラクト304から要求を受信する。いくつかの例においては、本明細書に記載しているように、クライアントスマートコントラクト304は、クエリを行われることになるデータソースの識別子(例えば、URL)および1つまたは複数の要求パラメータを含むように要求を生成する。リレーシステムノード310を選択する(704)。例えば、リレーシステムコントローラ308は、マルチノードクラスタ309内のリレーシステムノード310のうちの可用なものとなっている1つを選択する。いくつかの実施形態においては、リレーシステムコントローラ308は、クラスタ内の可用なリレーシステムノード310をランダムに選択する。代替の実施形態においては、リレーシステムコントローラ308は、クラスタ内のリレーシステムノード310のうちの最も少ない作業負荷を有する可用なリレーシステムノード310を選択する。要求を送信する(706)。例えば、リレーシステムコントローラ308は、選択したリレーシステムノード310に要求を転送する。
データソースにクエリを行う(708)。例えば、リレーシステムノード310は、既に受信された要求(例えば、元の要求)の1つまたは複数の要求パラメータを含むクエリ(例えば、新規要求)を構築する。例えば、新規要求は、クエリを行われることになるインターネットデータソース314のウェブアドレスを含む平文データ要素と、1つまたは複数の要求パラメータとを含み得る。リレーシステムノード310は、クエリを使用してインターネットベースのデータソース504にクエリを行う。
結果をデータソースから受信する(710)。いくつかの例においては、インターネットベースのデータソース314は、クエリを処理し、要求結果(例えば、データ値)をリレーシステムノード310に返信する。応答を準備し(712)、応答を送信する(714)。例えば、リレーシステムノード310は、本明細書に記載しているように、リレーシステムノード310の秘密鍵を使用して署名された要求結果を含む署名を生成し得る。リレーシステムノード310が要求結果を署名するために使用する秘密鍵は、リレーシステムノード310のリモート認証の早期の間に生成される。
応答を受信し、応答が有効であるかどうかを決定する(716)。例えば、リレーシステムスマートコントラクト306は、応答を処理して、応答が登録済みのリレーシステムノード310によって送信されていることを検証し、応答の完全性を保証する。いくつかの実施形態においては、応答は、リレーシステムノード310の一意な識別情報(例えば、URL)を含み得るし、リレーシステムスマートコントラクト306は、識別情報を登録済みのリレーシステムノード310の識別情報(例えば、URL)とマッチングし得る。一致するものが存在する場合には、リレーシステムスマートコントラクト306は、応答が登録済みのリレーシステムノード310によって送信されていると決定し、応答の完全性をチェックすることに取り掛かり得る。一致するものが存在しない場合には、リレーシステムスマートコントラクト306は、応答が登録済みのリレーシステムノード310によって送信されていないと決定する。
応答の完全性をチェックするために、リレーシステムスマートコントラクト306は、要求結果(例えば、データ値)に基づいてハッシュ値を計算する。その後、リレーシステムスマートコントラクト306は、公開鍵を使用して要求結果のハッシュ値を取得し、それが計算したハッシュ値と一致するかどうかを決定する。2つのハッシュ値が一致する場合には、リレーシステムスマートコントラクト306は、要求結果が有効であると決定する。2つのハッシュ値が一致しない場合には、リレーシステムスマートコントラクト306は、要求結果が無効であると決定し、要求結果を拒否し得る。応答が登録済みのリレーシステムノード310によって送信されていない場合および/または要求結果が無効である場合には、エラーを示し(718)、例示的なプロセス700は終了する。応答が登録済みのリレーシステムノード310によって送信されている場合には、要求結果は有効であり、要求結果の完全性は瑕疵がなく、要求結果が使用される(720)。例えば、結果は、さらなる処理のためにクライアントスマートコントラクト304に提供される。
本明細書に記載しているように、本明細書の実施形態は、従来のシステムと比較して1つまたは複数の技術的効果を達成している。いくつかの実施形態においては、リレーシステムノードのマルチノードクラスタを外部データソースからデータおよび/またはサービスを読み出しまたはアクセスするために提供している、ここで、マルチクラスタ内のリレーシステムノードの状態は、リレーシステムコントローラによって周期的にチェックおよび記録される。本明細書に記載しているように、マルチノードクラスタにデプロイされているリレーシステムノードを用いて、リレーシステムコントローラは、クライアントサービス要求をマルチノードクラスタ内の可用なリレーシステムノードに自動的に割り当てることができ、個々のノードの故障に起因するサービス不可用性を引き起こすことを回避している。そのため、本明細書の実施形態は、インターネットデータソースにクエリを行うためのリレーシステムの総合的なサービス可用性を改善している。いくつかの実施形態においては、外部データソースからブロックチェーンネットワークに戻されるように提供される応答の完全性が保証される。それゆえ、本明細書の実施形態は、ブロックチェーンネットワークとブロックチェーンネットワークの外部にあるデータを読み出すために使用されるリレーシステムのコンポーネントとの間の通信の完全性を改善している。このように、不正ユーザに対する潜在的攻撃チャネルを抑制してセキュリティを強化している。いくつかの実施形態においては、リレーシステムは、ユーザとリレーシステムノードとの間の直接的な接点を回避しており、それによって、リレーシステムノードの位置またはアクセスポイントがさらされることを回避している。そのため、例えばDDoS攻撃などといった多くの形式でネットワークを通じて不正な動作主体によってリレーシステムノードが発見および攻撃される可能性が低くなる。このことは、リレーシステムノードのセキュリティを改善しており、それによって、ブロックチェーンネットワークとリレーシステムノードとの間の通信のセキュリティをさらに改善している。
図8は、本明細書の実施形態による、装置800のモジュールの例を図示している。装置800は、ブロックチェーンネットワーク内で実行されるリレーシステムスマートコントラクトの例示的な実施形態であり得る。いくつかの例においては、リレーシステムスマートコントラクトは、ブロックチェーンネットワークの外部にあるとともにブロックチェーンネットワークの外部にあるデータソースにクエリを行うリレーシステムの1つまたは複数のコンポーネントに要求を発行しそのリレーシステムの1つまたは複数のコンポーネントから応答を受信する。
装置800は、上記で説明した実施形態に対応し得るし、装置800は、データソースからのデータのための要求を受信するための受信モジュール802と、ブロックチェーンネットワークの外部にあるマルチノードクラスタに要求を送信するための送信モジュール804であって、マルチノードクラスタは、複数のリレーシステムコンポーネントを含む、送信モジュール804と、マルチノードクラスタのリレーシステムコンポーネントから結果を受信するための受信モジュール806であって、結果は、リレーシステムコンポーネントの秘密鍵を使用してデジタル署名される、受信モジュール806と、リレーシステムスマートコントラクトにおいてリレーシステムコンポーネントが登録されていることを検証するための検証モジュール808と、リレーシステムコンポーネントが登録されていることを検証したことに応答して、リレーシステムコンポーネントの公開鍵と結果のデジタル署名とに基づいて結果の完全性を検証するための検証モジュール810と、結果の完全性を検証したことに応答して、結果をブロックチェーンネットワーク内のクライアントに送信するための送信モジュール812とを含む。
一般に、本明細書において説明した発明特定事項の革新的な態様は、ブロックチェーンネットワーク内で実行されるリレーシステムスマートコントラクトによってデータソースからのデータのための要求を受信するステップと、リレーシステムスマートコントラクトによって、ブロックチェーンネットワークの外部にあるとともにマルチノードクラスタを含むリレーシステムに要求を送信するステップであって、マルチノードクラスタは、複数のリレーシステムノードを含む、ステップと、リレーシステムスマートコントラクトによってマルチノードクラスタのリレーシステムノードから提供される結果を受信するステップであって、結果は、リレーシステムノードの秘密鍵を使用してデジタル署名される、ステップと、リレーシステムスマートコントラクトにおいてリレーシステムノードが登録されていることをリレーシステムスマートコントラクトによって検証するステップと、リレーシステムノードが登録されていることを検証したことに応答して、リレーシステムノードの公開鍵と結果のデジタル署名とに基づいてリレーシステムスマートコントラクトによって結果の完全性を検証するステップと、結果の完全性を検証したことに応答して、結果をブロックチェーンネットワーク内のクライアントに送信するステップとのアクションにおいて具現化され得る。
前述のおよび他の実施形態の各々は、リレーシステムコントローラが、マルチノードクラスタ内の複数のリレーシステムノードに状態クエリを周期的に送信して、複数のリレーシステムノードから状態応答を受信し、リレーシステムコントローラが、所定の時間ウィンドウ内にリレーシステムノードから状態応答を受信した場合には、可用なものとしてマルチノードクラスタ内のリレーシステムノードの状態を記録し、リレーシステムコントローラが、所定の時間ウィンドウ内に状態応答を受信しなかった場合には、非可用なものとしてマルチノードクラスタのリレーシステムノードの状態を記録することと、リレーシステムコントローラが、可用な状態を有しているとマルチノードクラスタ内のリレーシステムノードを選択し、要求をリレーシステムノードに送信することと、リレーシステムスマートコントラクトが、第1のハッシュ値を第2のハッシュ値と比較することによって結果の完全性を検証し、第1のハッシュ値が、公開鍵を使用してデジタル署名を復号することによって決定され、第2のハッシュ値が、結果およびハッシュ関数を使用して計算されることと、リレーシステムノードが、高信頼実行環境(TEE)を実行し、リレーシステムノードの秘密鍵と公開鍵とが、TEEの認証プロセス中に設定されることと、認証プロセスが、マルチノードクラスタ内の各リレーシステムノードについてリレーシステムコントローラによって行われ、リレーシステムコントローラが、各リレーシステムコンポーネントの公開鍵をリレーシステムスマートコントラクトに提供することと、データソースが、インターネットベースのデータソースを含むことと、クライアントが、クライアントスマートコントラクトを含むことといった、特徴のうちの1つまたは複数を単独または組合せで必要に応じて含み得る。
上記の実施形態において示したシステム、装置、モジュール、またはユニットは、コンピュータチップまたはエンティティを使用して実装され得る、または、ある機能を有する製品を使用して実装され得る。典型的な実施形態デバイスは、コンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、セルラ電話、カメラ電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メール送受信デバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであり得る。
装置内の各ユニットの機能および役割の実施プロセスについては、前回の方法における対応するステップの実施プロセスを参照することが可能である。簡潔にするために詳細はここでは省略する。
装置の実施形態が方法の実施形態に基本的に対応するため、関連する部分については、方法の実施形態における関連する説明を参照されたい。上記で説明した装置の実施形態は一例に過ぎない。別個の部分として説明したユニットは、物理的に分離され得るしまたはされ得ない。ユニットとして図示した部分は、物理ユニットであり得るしまたはあり得ないし、1つの位置にあり得るし、または多数のネットワークユニットに分散され得る。モジュールの一部またはすべては、本明細書のソリューションの目的を達成するための実際の要求に基づいて選択され得る。当業者は、創造的努力無しで本出願の実施形態を理解および実施できよう。
本明細書において説明した発明特定事項ならびにアクションおよび処理の実施形態は、本明細書において開示した構造およびそれらの構造的均等物を含む、デジタル電子回路の形で、有形に具現化されたコンピュータソフトウェアまたはファームウェアの形で、コンピュータハードウェアの形で、またはそれらの組合せのうちの1つまたは複数で実装され得る。本明細書において説明した発明特定事項の実施形態は、データ処理装置による実行のためにまたはデータ処理装置の処理を制御するために、コンピュータプログラムキャリア上に符号化された、例えばコンピュータプログラム命令の1つまたは複数のモジュールといった1つまたは複数のコンピュータプログラムとして実装され得る。キャリアは、有形非一時的コンピュータ記憶媒体であり得る。あるいはまたは加えて、キャリアは、データ処理装置による実行に適した受信機装置への伝送のために情報を符号化するために生成された、人為的に生成した伝搬信号、例えば、機械生成された電気信号、光信号、または電磁気信号であり得る。コンピュータ記憶媒体は、機械可読ストレージデバイス、機械可読ストレージ回路基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つまたは複数の組合せであり得るもしくは一部であり得る。コンピュータ記憶媒体は伝搬信号ではない。
「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、およびマシンを含む。データ処理装置は、特殊用途ロジック回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)、ASIC(特定用途向け集積回路)、またはGPU(グラフィック処理ユニット)を含み得る。装置はまた、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つまたは複数の組合せを構成するコードを含み得る。
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、エンジン、スクリプト、またはコードとも称し得るまたは記述し得る、コンピュータプログラムは、コンパイル型もしくはインタプリタ型言語、または宣言型もしくは手続き型言語を含む、任意の形式のプログラミング言語で書かれ得るし、スタンドアロンプログラムとして、またはモジュール、コンポーネント、エンジン、サブルーチン、もしくはコンピューティング環境における実行に適した他のユニットとして、といったことを含む任意の形式で、デプロイされ得る。環境は、1つまたは複数のロケーションにおいてデータ通信ネットワークによって相互接続される1つまたは複数のコンピュータを含み得る。
コンピュータプログラムは、ファイルシステム内のファイルに対応し得るが、必ずしも必要ではない。コンピュータプログラムは、例えば、マークアップ言語ドキュメントに記憶されている1つまたは複数のスクリプトといった、他のプログラムまたはデータを保持するファイルの一部に、当該プログラム専用の単一のファイルに、または、例えば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイルといった、複数の協調ファイルに、記憶され得る。
本明細書において説明したプロセスおよびロジックフローは、1つまたは複数のコンピュータプログラムを実行し、入力データを処理して出力を生成することによって処理を行う、1つまたは複数のコンピュータによって行われ得る。プロセスおよびロジックフローはまた、例えばFPGA、ASIC、またはGPUといった特殊用途ロジック回路によって、または、特殊用途ロジック回路と1つまたは複数のプログラマブルコンピュータとの組合せによって、実装され得る。
コンピュータプログラムの実行に適したコンピュータは、汎用もしくは特殊用途マイクロプロセッサもしくはその両方、または任意の他の種類の中央処理ユニットに基づき得る。一般的に、中央処理ユニットは、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信することになる。コンピュータの要素は、命令を実行するための中央処理ユニットと、命令およびデータを記憶するための1つまたは複数のメモリデバイスとを含み得る。中央処理ユニットおよびメモリは、特殊用途ロジック回路によって補完され得る、またはそれに組み込まれ得る。
一般的に、コンピュータはまた、1つまたは複数のマスストレージデバイスを含むことになる、または、1つまたは複数のマスストレージデバイスからデータを受信もしくは1つまたは複数のマスストレージデバイスにデータを送信することが動作可能なように結合されることになる。マスストレージデバイスは、例えば、磁気ディスク、光磁気ディスク、もしくは光ディスク、またはソリッドステートドライブであり得る。しかしながら、コンピュータは、そのようなデバイスを必ずしも有する必要はない。さらに、コンピュータは、数例挙げるとすれば、例えば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、Global Positioning System(GPS)受信機、または例えばユニバーサルシリアルバス(USB)フラッシュドライブなどのポータブルストレージデバイスといった別のデバイスに組み込まれ得る。
ユーザとのインタラクションを提供するために、本明細書において説明した発明特定事項の実施形態は、ユーザに情報を表示するための、例えばLCD(液晶ディスプレイ)モニタといった、表示デバイスと、コンピュータに入力を提供することを可能にする、例えば、キーボード、および例えば、マウス、トラックボール、またはタッチパッドなどのポインティングデバイスといった、入力デバイスとを有するコンピュータ上で実装され得る、または、そのようなコンピュータと通信するように構成され得る。同様に、他の種類のデバイスがユーザとのインタラクションを提供するために使用され得る。例えば、ユーザに提供されるフィードバックは、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックといった任意の形式の感覚フィードバックであり得るし、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受信され得る。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信することおよびユーザによって使用されるデバイスからドキュメントを受信することによって、例えば、ユーザのデバイス上のウェブブラウザから受信した要求に応答してウェブブラウザにウェブページを送信することによって、または、例えばスマートフォンもしくは電子タブレットといったユーザデバイス上で動作するアプリとのインタラクションを行うことによって、ユーザとのインタラクションを行い得る。また、コンピュータは、メッセージングアプリケーションを動作する例えばスマートフォンといったパーソナルデバイスにテキストメッセージまたは他の形式のメッセージを送信し、その返信としてユーザから応答メッセージを受信することによって、ユーザとのインタラクションを行い得る。
本明細書は、システム、装置、およびコンピュータプログラムコンポーネントに関連して「ように構成される」という用語を使用している。特定の処理またはアクションを行うように構成される1つまたは複数のコンピュータのシステムとは、処理においてシステムに処理またはアクションを行わせるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せがインストールされているシステムを意味する。特定の処理またはアクションを行うように構成される1つまたは複数のコンピュータプログラムとは、データ処理装置によって実行されると装置に処理またはアクションを行わせる命令を含む1つまたは複数のプログラムを意味する。特定の処理またはアクションを行うように構成される特殊用途ロジック回路とは、処理またはアクションを行う電子ロジックを有する回路を意味する。
本明細書は多くの特定の実施形態の詳細を含んでいるが、これらを、特許請求の範囲そのものによって定義される、主張しているものについての範囲に対する限定として解釈すべきではなく、むしろ特定の実施形態に固有のものであり得る特徴の説明として解釈すべきである。別個の実施形態に即して本明細書において説明したある特徴もまた、組み合わせることで単一の実施形態で実現され得る。反対に、単一の実施形態に即して説明した様々な特徴もまた、別々に複数の実施形態でまたは任意のサブコンビネーションで実現され得る。さらに、ある組合せで動作するものとして特徴を上記で説明している場合があるが、たとえ最初はそのように主張していたとしても、いくつかのケースにおいては、主張した組合せのうちの1つまたは複数の特徴をその組合せから削除し得るし、主張したものをサブコンビネーションまたはサブコンビネーションの変形とし得る。
同様に、処理を特定の順序で図面に図示するとともに特許請求の範囲に記載しているが、このことを、示した特定の順序でもしくは一連の順序でそのような処理を行う必要があると理解すべきではないし、または、望ましい結果を達成するために図示した処理のすべてを行う必要があると理解すべきではない。ある環境においては、マルチタスク処理および並行処理が有利となり得る。さらに、上記で説明した実施形態における様々なシステムモジュールおよびコンポーネントの分離がすべての実施形態においてそのような分離を必要とすると理解すべきではなく、説明したプログラムコンポーネントおよびシステムは一般的に単一のソフトウェア製品に一緒に統合され得るまたは複数のソフトウェア製品にパッケージ化され得ると理解されたい。
発明特定事項の特定の実施形態を説明してきた。他の実施形態も以下の特許請求の範囲の範囲内にある。例えば、特許請求の範囲に記載のアクションは、異なる順序で行われ得るし、それでも望ましい結果を達成し得る。一例として、添付の図面に図示したプロセスは、望ましい結果を達成するために示した特定の順序または一連の順序を必ずしも必要とするわけではない。いくつかのケースにおいては、マルチタスク処理およびパラレル処理が有利となり得る。
110 ネットワーク
202 関与者A
204 関与者B
206 関与者C
302 ブロックチェーン
304 クライアントスマートコントラクト
306 リレーシステムスマートコントラクト
308 リレーシステムコントローラ
310 リレーシステムノード
310 リレーシステムノード(TEE)
310a リレーシステムノード
310b リレーシステムノード
312 認証サービス
314 インターネット
314 インターネットデータソース
320 認証エビデンス
322 測定値
324 公開鍵
326 署名
334 検証結果
336 署名
802 受信モジュール
804 送信モジュール
806 受信モジュール
808 検証モジュール
810 検証モジュール
812 送信モジュール

Claims (10)

  1. ブロックチェーンネットワークの外部にあるデータソースからデータを読み出すためのコンピュータ実施方法であって、前記方法は、
    前記ブロックチェーンネットワーク内で実行されるリレーシステムスマートコントラクトによって、前記ブロックチェーンネットワーク内のクライアントから、前記データソースからのデータのための要求を受信するステップと、
    前記リレーシステムスマートコントラクトによって、前記ブロックチェーンネットワークの外部にあるリレーシステムに前記要求を送信するステップであって、前記リレーシステムは、複数のリレーシステムノードを含むマルチノードクラスタを含む、ステップと、
    前記リレーシステムスマートコントラクトによって、前記マルチノードクラスタのリレーシステムノードから提供される結果を受信するステップであって、前記結果は、前記リレーシステムノードの秘密鍵を使用してデジタル署名を用いてデジタル署名され、前記結果は、前記要求された前記データソースからのデータを含む、ステップと、
    前記リレーシステムスマートコントラクトによって、前記リレーシステムスマートコントラクトにおいて前記リレーシステムノードが登録されていることを検証するステップと、
    前記リレーシステムスマートコントラクトにおいて前記リレーシステムノードが登録されていることを検証したことに応答して、前記リレーシステムスマートコントラクトによって、前記リレーシステムノードの公開鍵と前記デジタル署名とに基づいて前記結果の完全性を検証するステップと、
    前記結果の前記完全性を検証したことに応答して、前記結果を前記クライアントに送信するステップと
    を含む、方法。
  2. リレーシステムコントローラは、前記マルチノードクラスタ内の前記複数のリレーシステムノードに状態クエリを周期的に送信して、前記複数のリレーシステムノードから状態応答を受信し、前記リレーシステムコントローラは、所定の時間ウィンドウ内に前記リレーシステムノードから状態応答を受信した場合には、可用なものとして前記マルチノードクラスタ内のリレーシステムノードの状態を記録し、前記リレーシステムコントローラは、前記所定の時間ウィンドウ内に前記リレーシステムノードから状態応答を受信しなかった場合には、非可用なものとして前記リレーシステムクラスタのリレーシステムノードの前記状態を記録する、請求項1に記載の方法。
  3. 前記リレーシステムスマートコントラクトは、前記リレーシステムコントローラを介して、前記マルチノードクラスタに前記要求を送信し、前記リレーシステムコントローラは、可用な状態を有していると前記マルチノードクラスタ内の前記リレーシステムノードを選択し、前記要求を前記リレーシステムノードに転送する、請求項2に記載の方法。
  4. 前記リレーシステムスマートコントラクトは、第1のハッシュ値を第2のハッシュ値と比較することによって前記結果の前記完全性を検証し、前記第1のハッシュ値は、前記公開鍵を使用して前記デジタル署名を復号することによって決定され、前記第2のハッシュ値は、前記結果およびハッシュ関数を使用して計算される、請求項1から3のいずれか一項に記載の方法。
  5. 前記リレーシステムノードは、高信頼実行環境(TEE)を実行し、前記リレーシステムノードの前記秘密鍵と前記公開鍵とは、前記TEEの認証プロセス中に設定される、請求項1に記載の方法。
  6. 前記認証プロセスは、前記マルチノードクラスタ内の各リレーシステムノードについてリレーシステムコントローラによって行われ、前記リレーシステムコントローラは、各リレーシステムノードの公開鍵を前記リレーシステムスマートコントラクトに提供する、請求項5に記載の方法。
  7. 前記データソースは、インターネットベースのデータソースを含む、請求項1から6のいずれか一項に記載の方法。
  8. 前記クライアントは、クライアントスマートコントラクトを含む、請求項1から7のいずれか一項に記載の方法。
  9. ブロックチェーンネットワークの外部にあるデータソースからデータを読み出すための装置であって、前記装置は、請求項1から8のいずれか一項に記載の方法を行うための複数のモジュールを含む、装置。
  10. 1つまたは複数のコンピュータと、
    前記1つまたは複数のコンピュータに結合されるとともに、請求項1から8のいずれか一項に記載の方法を行うように前記1つまたは複数のコンピュータによって実行可能な命令を記憶している、1つまたは複数のコンピュータ可読メモリと
    を含む、システム。
JP2019553385A 2019-03-27 2019-03-27 高可用な高信頼実行環境を使用したブロックチェーンネットワークのためのパブリックデータの読み出し Active JP6811339B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/079800 WO2019120318A2 (en) 2019-03-27 2019-03-27 Retrieving public data for blockchain networks using highly available trusted execution environments

Publications (2)

Publication Number Publication Date
JP2020527259A true JP2020527259A (ja) 2020-09-03
JP6811339B2 JP6811339B2 (ja) 2021-01-13

Family

ID=66992756

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019553385A Active JP6811339B2 (ja) 2019-03-27 2019-03-27 高可用な高信頼実行環境を使用したブロックチェーンネットワークのためのパブリックデータの読み出し

Country Status (9)

Country Link
US (5) US10805089B1 (ja)
EP (1) EP3619889B1 (ja)
JP (1) JP6811339B2 (ja)
KR (1) KR102136960B1 (ja)
CN (2) CN111066286B (ja)
AU (1) AU2019204708B2 (ja)
CA (1) CA3058236C (ja)
SG (1) SG11201908981SA (ja)
WO (1) WO2019120318A2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11128603B2 (en) * 2016-09-30 2021-09-21 Nec Corporation Method and system for providing a transaction forwarding service in blockchain implementations
US10541818B2 (en) * 2017-04-19 2020-01-21 International Business Machines Corporation Decentralized biometric signing of digital contracts
CN108683747B (zh) * 2018-06-11 2020-11-27 华为技术有限公司 资源获取、分发、下载方法、装置、设备及存储介质
AU2019204708B2 (en) * 2019-03-27 2020-08-20 Advanced New Technologies Co., Ltd. Retrieving public data for blockchain networks using highly available trusted execution environments
CA3058244C (en) 2019-03-29 2021-04-27 Alibaba Group Holding Limited Retrieving access data for blockchain networks using highly available trusted execution environments
CN112217775B (zh) * 2019-07-12 2022-04-05 华为技术有限公司 一种远程证明方法及装置
WO2021011893A1 (en) * 2019-07-17 2021-01-21 Algorand Inc. Relay system for blockchain
GB2587028A (en) * 2019-09-16 2021-03-17 Nchain Holdings Ltd Cryptographically linked identities
CN110633328B (zh) * 2019-09-25 2024-03-22 腾讯云计算(北京)有限责任公司 一种信息处理方法、装置及计算机可读存储介质
CN113221169B (zh) * 2019-10-30 2023-01-20 支付宝(杭州)信息技术有限公司 区块链隐私数据的查询方法及装置
US11704636B2 (en) * 2019-10-31 2023-07-18 Adi Association Proxied cross-ledger authentication
EP3910880A1 (en) 2020-05-14 2021-11-17 Nokia Technologies Oy Blockchain based device monitoring
DE102020114199A1 (de) * 2020-05-27 2021-12-02 Basler Aktiengesellschaft Absicherung von Computersystemen gegen Manipulationen und Funktionsanomalien
CN111680305B (zh) * 2020-07-31 2023-04-18 支付宝(杭州)信息技术有限公司 一种基于区块链的数据处理方法、装置及设备
CN112929285B (zh) * 2020-08-28 2022-05-31 支付宝(杭州)信息技术有限公司 区块链网络的通信优化系统
WO2022056097A1 (en) * 2020-09-09 2022-03-17 Springcoin, Inc. Method and apparatus for third-party managed data transference and corroboration via tokenization
CN111814198B (zh) * 2020-09-11 2021-03-23 支付宝(杭州)信息技术有限公司 一种基于区块链的用户隐私数据提供方法及装置
CN111934997B (zh) 2020-09-25 2021-01-12 支付宝(杭州)信息技术有限公司 消息传输方法及装置
CN113079079B (zh) 2020-09-25 2022-08-02 支付宝(杭州)信息技术有限公司 消息传输方法及装置
CN112968967B (zh) 2020-09-25 2023-05-19 支付宝(杭州)信息技术有限公司 区块同步方法及装置
CN111934998B (zh) 2020-09-25 2021-02-09 支付宝(杭州)信息技术有限公司 消息传输方法及装置
CN111935314B (zh) * 2020-09-25 2021-01-12 支付宝(杭州)信息技术有限公司 区块链系统、消息传输方法及装置
CN111935000B (zh) 2020-09-25 2021-01-08 支付宝(杭州)信息技术有限公司 消息传输方法及装置
CN113079081B (zh) 2020-09-25 2022-08-02 支付宝(杭州)信息技术有限公司 消息传输方法及装置
CN112953821B (zh) 2020-09-25 2022-02-25 支付宝(杭州)信息技术有限公司 消息传输方法及装置
CN112800453B (zh) * 2021-03-22 2021-08-13 上海众旦信息科技有限公司 一种基于多节点共识的可信查询方法及系统
CN112906067B (zh) * 2021-03-22 2024-02-23 北京送好运信息技术有限公司 一种基于电子邮件传递方式的区块链数据保全方法
NL2029245B1 (en) * 2021-09-24 2022-08-12 Shenzhen Hande Finmaker Co Ltd Method and a system for cross-ecological identification of digital product based on blockchain, and medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170352027A1 (en) * 2016-06-07 2017-12-07 Cornell University Authenticated data feed for blockchains
WO2018223042A1 (en) * 2017-06-01 2018-12-06 Schvey, Inc. d/b/a/ Axoni Distributed privately subspaced blockchain data structures with secure access restriction management
JP2019008791A (ja) * 2017-06-19 2019-01-17 株式会社日立製作所 スマートコントラクトライフサイクル管理

Family Cites Families (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7698398B1 (en) 2003-08-18 2010-04-13 Sun Microsystems, Inc. System and method for generating Web Service architectures using a Web Services structured methodology
US8069435B1 (en) 2003-08-18 2011-11-29 Oracle America, Inc. System and method for integration of web services
US20060206616A1 (en) 2005-03-14 2006-09-14 Gridiron Software, Inc. Decentralized secure network login
JP4788212B2 (ja) 2005-07-13 2011-10-05 富士ゼロックス株式会社 デジタル署名プログラム及びデジタル署名システム
JP4640083B2 (ja) 2005-09-29 2011-03-02 セイコーエプソン株式会社 デバイス管理システム
US7623659B2 (en) 2005-11-04 2009-11-24 Cisco Technology, Inc. Biometric non-repudiation network security systems and methods
EP2052524B1 (en) 2006-05-05 2014-12-24 InterDigital Technology Corporation Digital rights management using trusted processing techniques
US7860883B2 (en) 2006-07-08 2010-12-28 International Business Machines Corporation Method and system for distributed retrieval of data objects within multi-protocol profiles in federated environments
CN101207613B (zh) 2006-12-21 2012-01-04 松下电器产业株式会社 跨网域信息通信的认证方法、系统及其装置
US9258217B2 (en) 2008-12-16 2016-02-09 At&T Intellectual Property I, L.P. Systems and methods for rule-based anomaly detection on IP network flow
US9077543B2 (en) 2009-10-09 2015-07-07 Apple Inc. Methods and apparatus for digital attestation
US8601569B2 (en) 2010-04-09 2013-12-03 International Business Machines Corporation Secure access to a private network through a public wireless network
US8645701B2 (en) 2010-07-13 2014-02-04 Verisign, Inc. System and method for zone signing and key management in a DNS system
US9065637B2 (en) 2012-01-25 2015-06-23 CertiVox Ltd. System and method for securing private keys issued from distributed private key generator (D-PKG) nodes
AU2013200916B2 (en) 2012-02-20 2014-09-11 Kl Data Security Pty Ltd Cryptographic Method and System
CN103679436B (zh) 2013-12-17 2018-08-14 重庆邮电大学 一种基于生物信息识别的电子合同保全系统和方法
US9680872B1 (en) 2014-03-25 2017-06-13 Amazon Technologies, Inc. Trusted-code generated requests
US9998449B2 (en) 2014-09-26 2018-06-12 Qualcomm Incorporated On-demand serving network authentication
EP3026557A1 (en) 2014-11-28 2016-06-01 Thomson Licensing Method and device for providing verifying application integrity
US9537862B2 (en) 2014-12-31 2017-01-03 Vivint, Inc. Relayed network access control systems and methods
WO2016154001A1 (en) * 2015-03-20 2016-09-29 Rivetz Corp. Automated attestation of device integrity using the block chain
JP6436425B2 (ja) 2015-05-08 2018-12-12 パナソニックIpマネジメント株式会社 認証方法、認証システムおよびコントローラ
US20180191503A1 (en) * 2015-07-14 2018-07-05 Fmr Llc Asynchronous Crypto Asset Transfer and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
CN106487765B (zh) 2015-08-31 2021-10-29 索尼公司 授权访问方法以及使用该方法的设备
KR101637854B1 (ko) 2015-10-16 2016-07-08 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법 및 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법
US9832024B2 (en) 2015-11-13 2017-11-28 Visa International Service Association Methods and systems for PKI-based authentication
CN107181717B (zh) 2016-03-10 2020-05-15 阿里巴巴集团控股有限公司 一种风险终端检测方法及装置
US10366388B2 (en) 2016-04-13 2019-07-30 Tyco Fire & Security Gmbh Method and apparatus for information management
US10044701B2 (en) 2016-05-24 2018-08-07 Vantiv, Llc Technologies for token-based authentication and authorization of distributed computing resources
US10447478B2 (en) 2016-06-06 2019-10-15 Microsoft Technology Licensing, Llc Cryptographic applications for a blockchain system
US10560274B2 (en) * 2016-06-09 2020-02-11 International Business Machines Corporation Credential-based authorization
US10108954B2 (en) 2016-06-24 2018-10-23 PokitDok, Inc. System and method for cryptographically verified data driven contracts
CN107579826B (zh) 2016-07-04 2022-07-22 华为技术有限公司 一种网络认证方法、中转节点及相关系统
WO2018006180A1 (en) 2016-07-08 2018-01-11 Ats Automation Tooling Systems Inc. System and method for combined automatic and manual inspection
US10700861B2 (en) * 2016-07-29 2020-06-30 Workday, Inc. System and method for generating a recovery key and managing credentials using a smart blockchain contract
US11088855B2 (en) 2016-07-29 2021-08-10 Workday, Inc. System and method for verifying an identity of a user using a cryptographic challenge based on a cryptographic operation
MX2019002385A (es) 2016-09-15 2019-06-20 Nuts Holdings Llc Transito y almacenamiento de datos de usuario encriptados.
JP6684930B2 (ja) * 2016-09-18 2020-04-22 深▲セン▼前▲海▼▲達▼▲闥▼▲雲▼端智能科技有限公司Cloudminds (Shenzhen) Robotics Systems Co., Ltd. ブロックチェーンに基づくアイデンティティ認証方法、装置、ノード及びシステム
US20180089760A1 (en) * 2016-09-26 2018-03-29 Shapeshift Ag System and method of providing a multi-asset rebalancing mechanism
US10749684B2 (en) 2016-09-30 2020-08-18 Entrust, Inc. Methods and apparatus for providing blockchain participant identity binding
US11115418B2 (en) 2016-12-23 2021-09-07 Cloudminds (Shanghai) Robotics Co., Ltd. Registration and authorization method device and system
US11631077B2 (en) 2017-01-17 2023-04-18 HashLynx Inc. System for facilitating secure electronic communications between entities and processing resource transfers
US10419225B2 (en) 2017-01-30 2019-09-17 Factom, Inc. Validating documents via blockchain
KR101816653B1 (ko) * 2017-02-14 2018-02-21 주식회사 코인플러그 스마트 컨트랙트 및 블록체인 데이터베이스를 사용하여 서비스 제공 서버에 의하여 제공되는 서비스를 이용하기 위한 사용자의 로그인 요청에 대하여 pki 기반의 인증을 통해 로그인을 대행하는 방법 및 이를 이용한 서버
US20180241572A1 (en) 2017-02-22 2018-08-23 Intel Corporation Techniques for remote sgx enclave authentication
WO2018164955A1 (en) 2017-03-06 2018-09-13 Rivetz Corp. Device enrollment protocol
EP3379447B1 (de) 2017-03-22 2022-04-27 Siemens Aktiengesellschaft Verfahren und vorrichtung zum manipulationssicheren speichern von informationen bezüglich objektbezogener massnahmen
TW201837305A (zh) 2017-03-28 2018-10-16 台灣國際銅業有限公司 水產養殖共構風力發電設備
US10489597B2 (en) 2017-03-28 2019-11-26 General Electric Company Blockchain verification of network security service
GB201705749D0 (en) 2017-04-10 2017-05-24 Nchain Holdings Ltd Computer-implemented system and method
GB201706132D0 (en) 2017-04-18 2017-05-31 Nchain Holdings Ltd Computer-implemented system and method
US10742393B2 (en) 2017-04-25 2020-08-11 Microsoft Technology Licensing, Llc Confidentiality in a consortium blockchain network
CN107592293A (zh) 2017-07-26 2018-01-16 阿里巴巴集团控股有限公司 区块链节点间通讯方法、数字证书管理方法、装置和电子设备
CN107566337B (zh) * 2017-07-26 2019-08-09 阿里巴巴集团控股有限公司 一种区块链节点间的通信方法及装置
CN107592292B (zh) * 2017-07-26 2019-08-09 阿里巴巴集团控股有限公司 一种区块链节点间通信方法及装置
US10452776B2 (en) 2017-07-28 2019-10-22 International Business Machines Corporation Cognitive mediator for generating blockchain smart contracts
CN107395349A (zh) * 2017-08-16 2017-11-24 深圳国微技术有限公司 一种基于自认证公钥体制的区块链网络密钥分发方法
US10554634B2 (en) 2017-08-18 2020-02-04 Intel Corporation Techniques for shared private data objects in a trusted execution environment
US10541804B2 (en) 2017-08-18 2020-01-21 Intel Corporation Techniques for key provisioning in a trusted execution environment
TWI636411B (zh) 2017-09-13 2018-09-21 現代財富控股有限公司 對非區塊鏈節點提供交易不可否認性之系統及其方法
US20190102163A1 (en) 2017-10-04 2019-04-04 Dispatch Labs, LLC System and Method for a Blockchain-Supported Programmable Information Management and Data Distribution System
WO2019075234A1 (en) 2017-10-12 2019-04-18 Rivetz Corp. CERTIFICATE COMPRISING INTEGRATED ENCRYPTION KEYS
TWI650723B (zh) 2017-10-30 2019-02-11 天逸財金科技服務股份有限公司 資產證明授權查詢方法與系統
US20190158275A1 (en) 2017-11-22 2019-05-23 Michael Beck Digital containers for smart contracts
EP3489874A1 (en) 2017-11-27 2019-05-29 Wipro Limited System and method for dual blockchain based validation of instrument reference data and transaction reporting
US11257077B2 (en) * 2017-11-30 2022-02-22 Visa International Service Association Blockchain system for confidential and anonymous smart contracts
CN108171083B (zh) 2017-12-18 2020-02-07 深圳前海微众银行股份有限公司 区块链可信数据管理方法、系统及计算机可读存储介质
CN108073829A (zh) 2017-12-29 2018-05-25 上海唯链信息科技有限公司 用于记录对象的运输数据的方法、介质、物联网设备、区块链平台和物联网系统
CN208335190U (zh) * 2017-12-29 2019-01-04 上海唯链信息科技有限公司 记录对象的运输数据的物联网设备、区块链平台和物联网系统
EP3522088B1 (en) 2018-02-05 2022-03-16 Nokia Technologies Oy Securing blockchain access through a gateway
US11100503B2 (en) 2018-02-07 2021-08-24 Mastercard International Incorporated Systems and methods for use in managing digital identities
TWM561279U (zh) 2018-02-12 2018-06-01 林俊良 用於處理金融資產之策略模型腳本之區塊鏈系統與節點伺服器
US20190281028A1 (en) 2018-03-06 2019-09-12 Michael Thomas Gillan System and method for decentralized authentication using a distributed transaction-based state machine
CN108305170A (zh) 2018-03-07 2018-07-20 物数(上海)信息科技有限公司 基于区块链的外部服务访问方法、系统、设备及存储介质
CN108600182B (zh) 2018-03-29 2021-03-19 深圳前海微众银行股份有限公司 区块链密钥管理方法、系统及密钥管理设备、存储介质
US20190305959A1 (en) 2018-04-02 2019-10-03 Ca, Inc. Announcement smart contracts to announce software release
US20190303541A1 (en) 2018-04-02 2019-10-03 Ca, Inc. Auditing smart contracts configured to manage and document software audits
US10958642B2 (en) 2018-04-05 2021-03-23 The Toronto-Dominion Bank Dynamic biometric authentication based on distributed ledger data
US11728995B2 (en) 2018-04-09 2023-08-15 American Express Travel Related Services Company, Inc. Reward point transfers using blockchain
CN108846776B (zh) 2018-04-19 2021-09-21 中山大学 一种基于区块链技术的数字版权保护方法
US10917234B2 (en) 2018-05-03 2021-02-09 International Business Machines Corporation Blockchain for on-chain management of off-chain storage
US11038672B2 (en) 2018-06-01 2021-06-15 Duality Technologies, Inc. Secure and distributed management of a proxy re-encryption key ledger
CN108880794A (zh) 2018-06-15 2018-11-23 浙江华信区块链科技服务有限公司 跨链用户身份及其数字资产管理系统
US10243748B1 (en) 2018-06-28 2019-03-26 Jonathan Sean Callan Blockchain based digital certificate provisioning of internet of things devices
CN108846297B (zh) 2018-07-16 2019-11-01 广州追溯信息科技有限公司 一种在具有对等节点的区块链网络上分发和检索数据的方法
CN109191108B (zh) 2018-08-07 2022-03-11 广东蓝蜜蜂信息技术有限公司 基于区块链的二维码聚合支付系统及其工作方法
US10601828B2 (en) 2018-08-21 2020-03-24 HYPR Corp. Out-of-band authentication based on secure channel to trusted execution environment on client device
US10250395B1 (en) * 2018-08-29 2019-04-02 Accenture Global Solutions Limited Cryptologic blockchain interoperation
CN109327512B (zh) 2018-09-19 2021-04-13 广东微链科技有限公司 基于区块链hash寻址和重加密的游戏数据分区储存方法
CN108965342B (zh) 2018-09-28 2021-05-28 真相网络科技(北京)有限公司 数据请求方访问数据源的鉴权方法及系统
CN109345259A (zh) 2018-09-29 2019-02-15 腾讯科技(深圳)有限公司 基于区块链的虚拟资源转移方法、装置、介质及电子设备
US10778603B2 (en) 2018-10-11 2020-09-15 Citrix Systems, Inc. Systems and methods for controlling access to broker resources
CN109299338B (zh) 2018-10-31 2019-08-06 山东云溪网络科技有限公司 一种跨区块链数据管理系统及方法
US10671372B2 (en) 2018-11-01 2020-06-02 Dell Products L.P. Blockchain-based secure customized catalog system
CN109462588B (zh) 2018-11-13 2021-04-16 上海物融智能科技有限公司 一种基于区块链的去中心化数据交易方法及系统
US20200167770A1 (en) 2018-11-28 2020-05-28 Bank Of America Corporation Blockchain implementation across multiple organizations
JP6892513B2 (ja) 2018-12-13 2021-06-23 アドバンスド ニュー テクノロジーズ カンパニー リミテッド 信頼できる実行環境に基づいたオフチェーンスマートコントラクトサービス
US10600009B1 (en) * 2018-12-18 2020-03-24 Rokfin, Inc. Mint-and-burn blockchain-based feedback-communication protocol
US11086847B2 (en) 2018-12-29 2021-08-10 Advanced New Technologies Co., Ltd. System and method for implementing native contract on blockchain
KR102332031B1 (ko) 2019-02-28 2021-11-29 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. 블록체인-기반 디지털 인증서를 구현하기 위한 시스템 및 방법
AU2019204708B2 (en) * 2019-03-27 2020-08-20 Advanced New Technologies Co., Ltd. Retrieving public data for blockchain networks using highly available trusted execution environments
CN112671769B (zh) * 2020-08-28 2022-10-11 支付宝(杭州)信息技术有限公司 电子合同的签署方法、装置及设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170352027A1 (en) * 2016-06-07 2017-12-07 Cornell University Authenticated data feed for blockchains
WO2018223042A1 (en) * 2017-06-01 2018-12-06 Schvey, Inc. d/b/a/ Axoni Distributed privately subspaced blockchain data structures with secure access restriction management
JP2019008791A (ja) * 2017-06-19 2019-01-17 株式会社日立製作所 スマートコントラクトライフサイクル管理

Also Published As

Publication number Publication date
EP3619889A2 (en) 2020-03-11
US10805089B1 (en) 2020-10-13
CN111066286B (zh) 2023-02-28
JP6811339B2 (ja) 2021-01-13
US20210160083A1 (en) 2021-05-27
SG11201908981SA (en) 2019-10-30
CA3058236C (en) 2020-08-25
US20210367789A1 (en) 2021-11-25
US11088850B2 (en) 2021-08-10
WO2019120318A3 (en) 2020-02-06
AU2019204708B2 (en) 2020-08-20
EP3619889B1 (en) 2021-07-07
US20200313902A1 (en) 2020-10-01
WO2019120318A2 (en) 2019-06-27
CA3058236A1 (en) 2019-06-27
US11323271B2 (en) 2022-05-03
CN111066286A (zh) 2020-04-24
CN116132162A (zh) 2023-05-16
KR102136960B1 (ko) 2020-07-23
US20200366498A1 (en) 2020-11-19
US10911244B2 (en) 2021-02-02
EP3619889A4 (en) 2020-05-20
US11082240B2 (en) 2021-08-03
US20210160084A1 (en) 2021-05-27

Similar Documents

Publication Publication Date Title
JP6811339B2 (ja) 高可用な高信頼実行環境を使用したブロックチェーンネットワークのためのパブリックデータの読み出し
TWI707245B (zh) 使用高可用性的可信執行環境檢索區塊鏈網路的存取資料
CN111066287B (zh) 使用可信执行环境检索区块链网络的公开数据
AU2019204708A1 (en) Retrieving public data for blockchain networks using highly available trusted execution environments
JP2020528224A (ja) 信頼できる実行環境におけるスマート契約動作のセキュアな実行

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200217

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200217

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200217

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201116

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201214

R150 Certificate of patent or registration of utility model

Ref document number: 6811339

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250