JP6865850B2 - 高度に利用可能な信頼できる実行環境を使用してブロックチェーンネットワークに対するアクセスデータを取得すること - Google Patents

高度に利用可能な信頼できる実行環境を使用してブロックチェーンネットワークに対するアクセスデータを取得すること Download PDF

Info

Publication number
JP6865850B2
JP6865850B2 JP2019553420A JP2019553420A JP6865850B2 JP 6865850 B2 JP6865850 B2 JP 6865850B2 JP 2019553420 A JP2019553420 A JP 2019553420A JP 2019553420 A JP2019553420 A JP 2019553420A JP 6865850 B2 JP6865850 B2 JP 6865850B2
Authority
JP
Japan
Prior art keywords
relay system
node
attestation
key
service
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
JP2019553420A
Other languages
English (en)
Other versions
JP2020527298A (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 JP2020527298A publication Critical patent/JP2020527298A/ja
Application granted granted Critical
Publication of JP6865850B2 publication Critical patent/JP6865850B2/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/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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
    • 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
    • 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]

Landscapes

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

Description

本明細書は、外部データソースからのデータをブロックチェーンネットワークに提供することに関係する。
分散型台帳システム(DLS)は、参加エンティティ(participating entity)が安全かつ改竄不能にデータを記憶することを可能にする。DLSは、いかなる特定のユースケースを参照することなく、コンセンサスネットワークまたはブロックチェーンネットワークと称され得る。ブロックチェーンネットワークの例は、エンティティのセレクトグループ(select group)に対して提供されるコンソーシアム型ブロックチェーンネットワークを含み得る。コンソーシアム型ブロックチェーンネットワークは、エンティティのセレクトグループに対するコンセンサスプロセスを制御することができる。コンソーシアム型ブロックチェーンネットワークは、アクセス制御層を含む。
スマートコントラクトは、ブロックチェーンネットワーク上で実行されるプログラムである。スマートコントラクトは、そのスマートコントラクトの当事者が互いにインタラクティブにやり取りすることに合意する際に基づく事前定義されたルールのセットを含む。いくつかの事例において、ブロックチェーンネットワーク上で実行するスマートコントラクトは、事前定義されたルールを評価し、対応するアクションを実行するためにブロックチェーンネットワークの外部からの入力を必要とする。しかしながら、スマートコントラクトそれ自体は、外部データソースに直接アクセスすることができない。その結果、外部データを取得しそのデータをブロックチェーンネットワークにサブミットしスマートコントラクトにより処理するために中継エージェントが使用され得る。しかしながら、このプロセスは、結果として、潜在的攻撃ベクトル(potential attack vector)(たとえば、分散型サービス拒否(DDoS)攻撃)などのセキュリティ問題を引き起こし得る。
外部データソースからのデータ取得に関連するセキュリティ問題に対処するための技術が提案されているけれども、セキュリティ問題に対処するためのより効果的な解決方法があれば好都合であろう。
本明細書では、ブロックチェーンネットワーク内の処理のために外部データソースからデータを取得する技術を説明している。これらの技術は、一般的に、鍵管理ノードを通じて共有サービス秘密鍵をマルチノードクラスタ内の複数の中継システムノードに提供し、それにより、中継システムノードを通じてデータソースにデータをリクエストするときにクライアントが中継システムノードのアテステーションを繰り返し実行することを回避できるようにすることを伴う。いくつかの実施形態において、鍵管理ノードに対してリモートアテステーションが実行され、リモートアテステーションの実行の結果、鍵管理ノードのサービス鍵ペア(サービス公開鍵、サービス秘密鍵)が得られる。サービス公開鍵は、リモートアテステーションにおいてクライアントによって取得され記憶される。鍵管理ノードは、信頼実行環境(TEE)を使用することで動作する。鍵管理ノードのリモート認証は、公開監査されるものとしてよく、それにより、個別のクライアントがリモート認証を繰り返す必要がなくなる。いくつかの実施形態において、マルチノードクラスタ内の複数の中継システムノードに対して鍵配布プロセスが鍵管理ノードによって実行され、鍵配布プロセスの実行の結果、同じサービス秘密鍵が中継システムノードの各々に配布される。外部データソースにクエリを実行するために、各クライアントリクエストが中継システムスマートコントラクトによってマルチノードクラスタ内の利用可能な中継システムノードに割り当てられる。クエリの結果を含む応答は、サービス秘密鍵を使用して電子署名される。応答は、サービス公開鍵を使用してクライアントによって検証され得る。
本明細書では、また、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行されたときに1つまたは複数のプロセッサに本明細書で提供される方法の実施形態による動作を実行させる命令が記憶されている、1つまたは複数の非一時的コンピュータ可読記憶媒体も提供する。
本明細書では、本明細書において提供される方法を実装するためのシステムをさらに提供する。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されたときに1つまたは複数のプロセッサに本明細書で提供される方法の実施形態による動作を実行させる命令が記憶されている1つまたは複数のプロセッサに結合されているコンピュータ可読記憶媒体とを備える。
本明細書による方法は、本明細書において説明されている態様および特徴の任意の組合せを含み得ることは理解される。すなわち、本明細書による方法は、本明細書において具体的に説明されている態様および特徴の組合せに限定されないが、提供される態様および特徴の任意の組合せも含む。
本明細書の1つまたは複数の実施形態の詳細は、添付図面および以下の説明で述べられる。本明細書の他の特徴および利点は、説明および図面、さらに請求項から明白になるであろう。
本明細書の実施形態を実行するために使用できる環境の一例を示す図である。 本明細書の実施形態によるアーキテクチャの一例を示す図である。 本明細書の実施形態によるシステムの一例を示す図である。 本明細書の実施形態によるシステムの一例を示す図である。 本明細書の実施形態による信号の流れの一例を示す図である。 本明細書の実施形態によるシステムの一例を示す図である。 本明細書の実施形態による信号の流れの一例を示す図である。 本明細書の実施形態によるシステムの一例を示す図である。 本明細書の実施形態による信号の流れの一例を示す図である。 本明細書の実施形態によるプロセスの一例を示す図である。 本明細書の実施形態による装置のモジュールの例を示す図である。
様々な図面中の同様の参照番号および名称は同様の要素を示す。
本明細書では、ブロックチェーンネットワーク内の処理のために外部データソースからデータを取得する技術を説明している。これらの技術は、一般的に、鍵管理ノードを通じて共有サービス秘密鍵をマルチノードクラスタ内の複数の中継システムノードに提供し、それにより、中継システムノードを通じてデータソースにデータをリクエストするときにクライアントが中継システムノードのアテステーションを繰り返し実行することを回避できるようにすることを伴う。いくつかの実施形態において、鍵管理ノードに対してリモートアテステーションが実行され、リモートアテステーションの実行の結果、鍵管理ノードのサービス鍵ペア(サービス公開鍵、サービス秘密鍵)が得られる。サービス公開鍵は、リモートアテステーションにおいてクライアントによって取得され記憶される。鍵管理ノードは、信頼実行環境(TEE)を使用することで動作する。鍵管理ノードのリモート認証は、公開監査されるものとしてよく、それにより、個別のクライアントがリモート認証を繰り返す必要がなくなる。いくつかの実施形態において、マルチノードクラスタ内の複数の中継システムノードに対して鍵配布プロセスが鍵管理ノードによって実行され、鍵配布プロセスの実行の結果、同じサービス秘密鍵が中継システムノードの各々に配布される。外部データソースにクエリを実行するために、各クライアントリクエストが中継システムスマートコントラクトによってマルチノードクラスタ内の利用可能な中継システムノードに割り当てられる。クエリの結果を含む応答は、サービス秘密鍵を使用して電子署名される。応答は、サービス公開鍵を使用してクライアントによって検証され得る。
特定の実施形態で提供されるような本明細書において説明されている主題は、次の技術的効果のうちの1つまたは複数を実現する。いくつかの実施形態において、サービス秘密鍵を複数の中継システムノードに配布するための鍵管理ノードが提供される。本明細書において説明されているように、鍵管理ノードに対してリモートアテステーションが実行されるものとしてよく、これは各クライアントが中継システムノードのリモートアテステーションを独立して実行する必要をなくす。これは、一般的に、各クライアントからの中継システムノードの個別アテステーションによって引き起こされるネットワークボトルネックを軽減する。さらに、複数の中継システムノードから利用可能な中継システムノードを選択するための中継システムスマートコントラクトが提供される。本明細書において説明されているように、中継システムノードがクラスタ内に展開されている場合、中継システムスマートコントラクトは、クライアントリクエストをクラスタ内の利用可能な中継システムノードに自動的に割り当て、それにより、個別の中継システムノードの障害によりサービスが利用不可能になる事態を低減することができる。そのようなものとして、本明細書の実施形態は、インターネットデータソースにクエリを実行するための中継システムノードの全体的なサービス利用可能性を改善する。いくつかの実施形態において、中継システムスマートコントラクトは、クライアントと中継システムノードとの間の直接的接触を回避することを円滑にし、それにより、中継システムノードの位置またはアクセスポイントを顕わにすることを回避する。そのようなものとして、中継システムノードは、たとえば、分散型サービス拒否(DDoS)攻撃などの、多くの形態のネットワーク上の悪意のある行為を行う者によって見つけられ攻撃される可能性は低い。これは、中継システムノードのセキュリティを改善し、それによって、クライアントと中継システムノードとの間の通信のセキュリティをさらに改善する。
本明細書の実施形態に対するさらなる文脈を提示するために、また上で導入されたように、コンセンサスネットワーク(たとえば、ピアツーピアノードからなる)と称され得る分散型台帳システム(DLS)、およびブロックチェーンネットワークは、参加エンティティがトランザクションを安全かつ改竄不能に実施し、データを記憶することを可能にする。ブロックチェーンという用語は、一般的に、特定のネットワーク、および/またはユースケースに関連付けられているけれども、ブロックチェーンは、本明細書では、特定のユースケースを参照することなく、DLSを指すために使用される。
ブロックチェーンは、トランザクションが改竄不能である仕方でトランザクションを記憶するデータ構造である。したがって、ブロックチェーン上に記録されるトランザクションは、信頼可能であり、信用できる。ブロックチェーンは、1つまたは複数のブロックを含む。チェーン内の各ブロックは、前のブロックの暗号化ハッシュを含めることによってチェーン内で直前にある前のブロックにリンクされる。各ブロックは、タイムスタンプ、それの自暗号化ハッシュ、および1つまたは複数のトランザクションも含む。ブロックチェーンネットワークのノードによってすでに検証済みのトランザクションは、ハッシュ化され、マークルツリーにエンコードされる。マークルツリーは、ツリーのリーフノードのところのデータがハッシュ化されるデータ構造であり、ツリーの各ブランチ内のすべてのハッシュは、ブランチのルートのところで連結される。このプロセスは、ツリー全体のルートに到達するまで、ツリー内のすべてのデータを表すハッシュを記憶しているツリーを上り続ける。ツリー内に記憶されているトランザクションであると主張するハッシュは、ツリーの構造と一致しているかどうかを決定することによって素早く検証され得る。
ブロックチェーンは、トランザクションを記憶するための分散化された、または少なくとも部分的に分散化されたデータ構造であるが、ブロックチェーンネットワークは、トランザクションのブロードキャスト、検証、および正当性確認などを行うことによって1つまたは複数のブロックチェーンの管理、更新、および維持を行うコンピューティングノードのネットワークである。上で紹介されたように、ブロックチェーンネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、またはコンソーシアム型ブロックチェーンネットワークとして提供され得る。本明細書の実施形態は本明細書ではコンソーシアム型ブロックチェーンネットワークを参照しつつさらに詳しく説明される。しかしながら、本明細書の実施形態は、任意の適切なタイプのブロックチェーンネットワークで実現できることが企図されている。
一般に、コンソーシアム型ブロックチェーンネットワークは参加エンティティの間でプライベートである。コンソーシアム型ブロックチェーンネットワークにおいて、コンセンサスプロセスは、コンセンサスノードと称され得る、認可された一組のノードによって制御され、1つまたは複数のコンセンサスノードはそれぞれのエンティティ(たとえば、金融機関、保険会社)によって運用される。たとえば、10エンティティ(たとえば、金融機関、保険会社)のコンソーシアムは、コンソーシアム型ブロックチェーンネットワークを運用することができ、各エンティティは、コンソーシアム型ブロックチェーンネットワーク内の少なくとも1つのノードを運用する。
いくつかの例において、コンソーシアム型ブロックチェーンネットワーク内では、すべてのノードにわたって複製されるブロックチェーンとしてグローバルブロックチェーンが提供される。すなわち、すべてのコンセンサスノードは、グローバルブロックチェーンに関して完全な状態のコンセンサスを有する。コンセンサス(たとえば、ブロックチェーンへのブロックの追加に対する合意)を達成するために、コンソーシアムブロックチェーンネットワーク内にコンセンサスプロトコルが実装される。たとえば、コンソーシアムブロックチェーンネットワークは、以下でさらに詳しく説明される、実用的ビザンチン障害耐性(PBFT)コンセンサスを実装することができる。
図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は、1つまたは複数の他のエンティティ(たとえば、他のユーザ)とのトランザクションを管理するために第2のエンティティが使用するトランザクション管理システムなどの、第2のエンティティ(たとえば、ユーザB)のコンピュータ実装サービスをホストすることができる。図1の例において、コンソーシアム型ブロックチェーンネットワーク102はノードのピアツーピアネットワークとして表され、コンピューティングデバイス106、108は、コンソーシアム型ブロックチェーンネットワーク102に参加する、第1のエンティティ、および第2のエンティティのノードをそれぞれ提供する。
図2は、本明細書の実施形態によるアーキテクチャ200の一例を示す図である。概念的アーキテクチャ200は、参加者A、参加者B、および参加者Cにそれぞれ対応する参加者システム202、204、206を含む。各参加者(たとえば、ユーザ、企業)は、複数のノード214を含むピアツーピアネットワークとして提供されるブロックチェーンネットワーク212に参加し、その少なくともいくつかはブロックチェーン216に情報を改竄不能に記録する。単一のブロックチェーン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は、ブロックチェーン216のそれぞれの完全なコピー216'、216''を記憶する。
ブロックチェーン(たとえば、図2のブロックチェーン216)はブロックのチェーンから構成され、各ブロックがデータを記憶する。データの例は、2者またはそれ以上の参加者の間のトランザクションを表すトランザクションデータを含む。トランザクションは本明細書では非限定的な例で使用されているが、任意の適切なデータがブロックチェーン内に記憶され得る(たとえば、文書、画像、動画、音声)ことが企図されている。トランザクションの例は、限定することなく、価値のある何か(たとえば、資産、製品、サービス、通貨)の交換を含むことができる。トランザクションデータは、ブロックチェーン内に改竄不能に記憶される。すなわち、トランザクションデータは変更できない。
ブロックに記憶する前に、トランザクションデータはハッシュ化される。ハッシュ化は、トランザクションデータ(文字列データとして提供される)を固定長ハッシュ値(これも文字列データとして提供される)に変換するプロセスである。ハッシュ値を逆ハッシュ化して、トランザクションデータを取得することはできない。ハッシュ化は、トランザクションデータにわずかな変化があっても結果として、完全に異なるハッシュ値をもたらすことを確実にする。さらに、上で指摘されているように、ハッシュ値は固定長である。すなわち、トランザクションデータのサイズに関係なくハッシュ値の長さは固定される。ハッシュ化は、ハッシュ関数を通じてトランザクションデータを処理してハッシュ値を生成することを含む。ハッシュ関数の一例は、限定することなく、セキュアハッシュアルゴリズム(SHA)-256を含み、これは256ビットハッシュ値を出力する。
複数のトランザクションのトランザクションデータがハッシュ化され、1つのブロックに記憶される。たとえば、2つのトランザクションのハッシュ値が提供され、それら自体がハッシュ化され別のハッシュを提供する。このプロセスは、1つのブロックに記憶されるべきすべてのトランザクションについて、単一のハッシュ値が提供されるまで繰り返される。このハッシュ値は、マークルルートハッシュと称され、そのブロックのヘッダに記憶される。それらのトランザクションのうちのどれかに変化が生じると結果として、そのハッシュ値が変化し、最終的にマークルルートハッシュが変化することになる。
ブロックは、コンセンサスプロトコルを通じてブロックチェーンに追加される。ブロックチェーンネットワーク内の複数のノードがコンセンサスプロトコルに参加し、ブロックをブロックチェーンに追加させる作業を遂行する。そのようなノードは、コンセンサスノードと称される。上で導入された、PBFTは、コンセンサスプロトコルの非限定的な例として使用される。コンセンサスノードはコンセンサスプロトコルを実行してトランザクションをブロックチェーンに追加し、ブロックチェーンネットワークの全体の状態を更新する。
さらに詳しく言うと、コンセンサスノードは、ブロックヘッダを生成し、ブロック内のトランザクションのすべてをハッシュ化し、ハッシュ値をペアに組み合わせてさらなるハッシュ値を生成し、これを、ブロック内のすべてのトランザクションに対して単一のハッシュ値が提供されるまで続ける(マークルルートハッシュ)。このハッシュは、ブロックヘッダに追加される。コンセンサスノードは、また、ブロックチェーン内の最新ブロック(すなわち、ブロックチェーンに追加された最後のブロック)のハッシュ値を決定する。コンセンサスノードは、ノンス値、およびタイムスタンプもブロックヘッダに追加する。
一般に、PBFTは、ビザンチン障害に耐える実用的ビザンチン状態機械複製を提供する(たとえば、正常に機能していないノード、悪意のあるノード)。これは、PBFTにおいて、その障害が発生することを仮定する(たとえば、独立したノード障害の存在、および/またはコンセンサスノードによって送信される操作されたメッセージの存在を仮定する)ことによって達成される。PBFTにおいて、コンセンサスノードは、プライマリコンセンサスノード、およびバックアップコンセンサスノードを含む順序で提供される。プライマリコンセンサスノードは、定期的に変更される。トランザクションは、ブロックチェーンネットワークのワールドステートに関して合意に達したブロックチェーンネットワーク内のすべてのコンセンサスノードによってブロックチェーンに追加される。このプロセスにおいて、コンセンサスノードの間でメッセージが伝送され、各コンセンサスノードは、指定されたピアノードからメッセージが受信されたことを証明し、そのメッセージが伝送中に修正されなかったことを検証する。
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は、TAをTEEの内側において互いからTAを暗号方式で隔離する。
TEEの一例は、米国カリフォルニア州サンタクララ所在のIntel Corporation社によって提供されている「ソフトウェアガードエクステンションズ」(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は実行を続ける。
アテステーションプロセスが実行され、期待されるコード(たとえば、TAの信頼できる部分)がSGX提供TEE内で安全に実行されていることを検証することができる。一般に、アテステーションプロセスは、TAがチャレンジャー(たとえば、ブロックチェーンネットワーク内の別のノード、またはブロックチェーンネットワークの鍵管理システム(KMS))からのアテステーションリクエストを受信することを含む。それに応答して、TAは、そのエンクレーブがリモートアテステーションを生成することを要求し、これはクオートとも称される。リモートアテステーションを生成することは、ローカルアテステーションがエンクレーブからいわゆるクオーティングエンクレーブに送信され、ローカルアテステーションを検証し、非対称アテステーション鍵を使用してローカルアテステーションに署名することによってローカルアテステーションをリモートアテステーションに変換することを含む。リモートアテステーション(クオート)は、チャレンジャーに提供される(たとえば、ブロックチェーンネットワークのKMS)。
チャレンジャーは、アテステーション検証サービスを使用してリモートアテステーションを検証する。SGXのために、IntelはIntel Attestation Service(IAS)を用意しており、これはチャレンジャーからリモートアテステーションを受信し、リモートアテステーションを検証する。より具体的には、IASはリモートアテステーションを処理し、リモートアテステーションが検証されたかどうかを示す、レポート(たとえば、アテステーション検証レポート(AVR))を提供する。検証されていない場合、エラーが示され得る。検証されている(期待されたコードがTEE内で安全に実行されている)場合、チャレンジャーは、TAとのインタラクティブなやり取りを開始するか、または続行することができる。たとえば、検証に応答して、KMS(チャレンジャーとして)は非対称暗号化鍵(たとえば、公開鍵と秘密鍵とのペア)をTEEを実行しているノードに発行し(たとえば、楕円曲線ディフィー-ヘルマン鍵共有(ECDH)などの鍵交換プロセスを通じて)、ノードが他のノードおよび/またはクライアントと安全に通信することを可能にすることができる。
いくつかのブロックチェーンネットワークにおいて、いわゆるスマートコントラクトが実行され得る。スマートコントラクトは、様々な当事者に影響を及ぼす契約条項を有する実世界の適法契約のデジタル表現として記述され得る。スマートコントラクトは、例示的な文脈において、コンソーシアム型ブロックチェーンネットワーク内で実装され、記憶され、更新され(必要に応じて)、実行される。スマートコントラクトに関連付けられている契約当事者(たとえば、買手および売手)は、コンソーシアム型ブロックチェーンネットワーク内のノードとして表される。いくつかの例において、契約当事者は、スマートコントラクトに(たとえば、スマートコントラクトへの当事者として)関連付けられているエンティティ(たとえば、企業)を含むことができる。
さらに詳しく言うと、スマートコントラクトは、ブロックチェーン上で実行するコンピュータ実行可能プログラム(たとえば、ブロックチェーンネットワーク内のノード)として提供される。スマートコントラクトは、そのスマートコントラクトの当事者が互いにインタラクティブにやり取りすることに合意する際に基づく事前定義されたルールのセットを含む。スマートコントラクトの事前定義されたルールが満たされた場合、スマートコントラクトにおいて定義されている合意が自動的に強制される。スマートコントラクトは、通常、改竄防止対策が施されており、合意またはトランザクションの交渉もしくは履行を円滑にし、検証し、強制する。
いくつかの事例において、ブロックチェーンネットワーク内で実行するスマートコントラクトは、事前定義されたルールを評価し、対応するアクションを実行するためにブロックチェーンネットワークの外部からの入力を必要とする。非限定的な例では、株価はブロックチェーンネットワークの外部のデータソースに由来し、決定が基づくべきスマートコントラクトに対してこの株価が必要になることもあり得る。別の非限定的な例として、決定が基づくべきスマートコントラクトに対してブロックチェーンネットワークの外部で維持されるアカウントに対するアカウント情報が必要になることもあり得る。しかしながら、スマートコントラクトそれ自体は外部データソースに直接クエリを実行することができない場合がある。
いくつかの実施形態において、外部データを取得しそのデータをブロックチェーンにサブミットしスマートコントラクトにより処理するために中継エージェントが使用され得る。しかしながら、このプロセスは、結果として、セキュア情報(たとえば、外部データソースにアクセスするために必要になり得るであろう資格証明書)の漏洩などのセキュリティ問題を引き起こし得る。いくつかの場合において、TEEは、中継エージェントが指定されたクエリリクエストを誠実に実行したことを証明するために使用され得る。しかしながら、ブロックチェーンの開放性により、すべてのクエリリクエストはブロックチェーンネットワーク内のすべてのユーザ(ノード)から見える。その結果、リクエスト文字列は横取りされ、修正され、再生されて、結果として情報漏洩および他のセキュリティ問題が発生し得るおそれがある。
いくつかの場合において、SGX、TA、またはTAの一部は、中継ノードとしてエンクレーブ(エンクレーブプログラム)機能において実行し外部データソースにアクセスするために使用され得る。たとえば、エンクレーブプログラムは、クエリリクエスト(たとえば、HTTPSリクエスト)をインターネットベースのデータソースに送信することができ、その応答をそのリクエストを開始したスマートコントラクトに提供することができる。いくつかの例において、プライバシーフィールド機能が用意され、これはエンクレーブの公開鍵を使用して機密情報(たとえば、アクセス資格証明書)を暗号化するために使用できる。いくつかの例において、中継ノードは、エンクレーブの秘密鍵を使用してプライバシーフィールドを暗号解読し、HTTPSクライアントを呼び出してターゲットのインターネットベースのデータソースにアクセスし、要求されたデータを受信し、秘密鍵を使用して返されたデータに電子署名する。電子署名の後に、データはそのリクエストを開始したスマートコントラクトに返される。
いくつかの例において、エンクレーブプログラムを実装する中継システムノードは、リモートアテステーションプロセスにおいて検証される。各クライアントリクエストは、データソースからデータを取得するために検証済み中継システムノードによって処理され得る。
しかしながら、そのようなアプローチには不都合な点があり得る。データ取得に特定の中継システムノードを使用する不都合な点の例は、中継システムノードが故障するか、またはアクセス不能になった場合に、クライアントリクエストが正しく処理され得ず、その結果サービスが利用不可能になることである。
いくつかの実施形態において、外部データソース(たとえば、インターネットベースのデータソース)に対して、サービス秘密鍵およびTEEを共有する複数の中継システムノードのうちのどれか1つによってクエリが実行され得る。したがって、各クライアントは、中継システムノードのリモートアテステーションを独立して実行しなくてよく、それによって、各クライアントからの中継システムノードの個別のアテステーションによって引き起こされるネットワークボトルネックを軽減し、アテステーションを処理するためのサーバまたはコンピュータの作業負荷を低減する。さらに、中継システムノードは、クラスタ内に配備されてよく、各クライアントリクエストは、クラスタ内の利用可能な中継システムノードに自動的に割り当てられ得る。この方式では、個別の中継システムノードの障害が生じてもサービスが利用不可能にならないので、サービスの利用可能性は改善され得る。
図3は、本明細書の実施形態によるシステム300の一例を示す図である。図示されているように、システム300は、ブロックチェーン302、マルチノードクラスタを形成する複数の中継システムノード308、鍵管理ノード310、ネットワーク312(たとえば、インターネット)、およびクライアント314(たとえば、クライアントコンピューティングデバイス)を含む。示されている例では、ブロックチェーン302は、クライアントスマートコントラクト304と中継システムスマートコントラクト306とを含む。いくつかの実施形態において、中継システムノード308および鍵管理ノード310は、TEE技術(たとえば、Intel SGX)を使用して実装される。一般に、中継システムスマートコントラクト306、中継システムノード308、および中継管理ノード310は、ブロックチェーン302の外部にあるデータがインターネットデータソース314から取得され、ブロックチェーン302内で使用されることを可能にする中継システムを提供する。
クライアントスマートコントラクト304は、ネットワーク312上のデータソースにデータまたはサービスを要求するスマートコントラクトである。中継システムスマートコントラクト306は、中継システム内のブロックチェーン302のフロントエンドとして働くスマートコントラクトである。中継システムスマートコントラクト306は、クライアントスマートコントラクト304に対するアプリケーションプログラムインターフェース(API)を実装し、クライアントスマートコントラクト304から中継システムの他のコンポーネント(たとえば、中継システムノード308)への、およびその逆の方向の、データの処理および中継に使用する。
中継システムノード308は、ブロックチェーン302からのデータリクエストに応答してネットワーク312内の外部データソースからデータを取得するために任意の好適なサーバ、コンピュータ、モジュール、またはコンピューティング要素上に実装され得る。たとえば、中継システムノード308は、クライアントスマートコントラクト304からのオフチェーンデータまたはサービスリクエストを受信し、処理し、ネットワーク312、たとえば、HTTPS対応インターネットサービスにおいて外部データソースに対するクエリを実行するものとしてよい。
鍵管理ノード310は、外部データソースからデータを取得するために使用される暗号鍵を管理するために任意の好適なサーバ、コンピュータ、モジュール、またはコンピューティング要素上に実装され得る。本明細書において説明されているように、暗号鍵は、鍵管理ノード310によって生成されるサービス公開鍵とサービス秘密鍵とを備え、サービス秘密鍵はリクエスト結果に署名するために使用することができ、サービス公開鍵はリクエスト結果を認証するために使用できる。
一般的に、データ取得プロセスは3つのフェーズを含むことができる。第1のフェーズは、クライアント314が鍵管理ノード310を認証し、鍵管理ノード310の認証鍵(たとえば、サービス公開鍵)を取得するリモートアテステーションプロセスを含む。第2のフェーズでは、鍵管理ノード310は、すべての中継システムノード308が同じ署名鍵を共有するように署名鍵(たとえば、サービス秘密鍵)をマルチノードクラスタ内の中継システムノード308の各々に配布する。第3のフェーズは、クライアント314が中継システムを通じて外部データソースから認可されたデータを取得するデータリクエストプロセスを含む。第3のフェーズでは、データは、ネットワーク312にクエリを実行し、そのサービス秘密鍵を使用してリクエスト結果に署名する中継システムノード308によって中継システムを通じて取得され、クライアント314はそのサービス公開鍵を使用してリクエスト結果を認証することができる。以下では、図4〜図10を参照しつつこれら3つのフェーズをさらに詳しく説明する。
図4は、本明細書の実施形態によるシステム400の一例を示す図である。図示されているように、システム400は、デベロッパー402(たとえば、デベロッパーサーバ)、クライアント404(たとえば、クライアントコンピューティングデバイス)、鍵管理ノード406、アテステーションサービス408、およびネットワーク410(たとえば、インターネット)を含む。クライアント404、鍵管理ノード406、およびインターネット410は、それぞれ図3に示されているようなクライアント314、鍵管理ノード310、およびネットワーク312と同じコンポーネントであってよい。クライアント404は、鍵管理ノード406の正当性を決定するためにアテステーションサービス408によって検証され得る、アテステーションエビデンス(attestation evidence)420について鍵管理ノード406にチャレンジすることができる。アテステーションサービス408の一例は、上で説明されている、IASを含む。
デベロッパー402は、本明細書において説明されているような方法を実行するようにプログラムされる任意の好適なサーバ、コンピュータ、モジュール、またはコンピューティング要素であってよい。いくつかの例において、デベロッパー402は、鍵管理ノード406に関係するプログラム、データ、またはその両方を記憶し、処理することができる。たとえば、デベロッパー402は、鍵管理ノード406のソースコードおよび測定値(たとえば、初期状態のダイジェスト)を記憶することができる。デベロッパー402は、リクエストがあり次第、鍵管理ノード406の測定値をクライアント404に送信することができる。
クライアント404は、鍵管理ノード406の正当性を示すアテステーションエビデンス420に対するリクエスト(チャレンジ)を鍵管理ノード406に送信することができる。いくつかの例において、アテステーションエビデンス420は、鍵管理ノード406が正当なTEEノードであるかどうかを決定するために使用される。クライアント404は、アテステーションエビデンス420をアテステーションサービス408に提供し、アテステーションサービス408からアテステーション検証レポート(AVR)430を受信することができる。いくつかの実施形態において、クライアント404はAVR430を検証して、アテステーションエビデンス420が有効であるかどうかを決定する。いくつかの例において、クライアント404は、鍵管理ノード406から測定値422を取得し、それをデベロッパー402から取得された別の測定値422と比較する。AVR430の検証が成功し、2つの測定値422が一致した場合、クライアント404は、鍵管理ノード406が正当なTEEノードであり、したがって信頼できると決定することができる。
鍵管理ノード406は、クライアント404からリクエストがあり次第、アテステーションエビデンス420を生成することができる。いくつかの実施形態において、鍵管理ノード406は、将来の通信の認証および暗号化のためにクライアント404によって使用できる、サービス公開鍵424およびサービス秘密鍵を用意する。いくつかの実施形態において、鍵管理ノード406は、アテステーションエビデンス420に署名するためにアテステーション秘密鍵、たとえば、強化プライバシーID(EPID)秘密鍵をさらに用意する。EPID秘密鍵を使用して署名されたアテステーションエビデンス420は、EPID公開鍵を使用してアテステーションサービス408によって検証され得る。EPIDは、プライバシーを保持しながら、信頼できるシステムのアテステーション用にIntelによって提供されているアルゴリズムである。一般に、ネットワークのメンバー(たとえば、コンピュータまたはサーバ)の各々は、アテステーションエビデンスに署名するためにEPID秘密鍵を割り当てられ、ネットワーク内のアテステーションエビデンスの検証器は、ネットワークの他のメンバーのEPID秘密鍵とペアにされたEPID公開鍵を記憶する。メンバーの各々は、自EPID秘密鍵を使用してアテステーションエビデンスの署名を生成することができ、検証器は、EPID公開鍵を使用して他のメンバーの署名を検証することができる。そのようなものとして、EPID鍵は、コンピュータまたはサーバなどのデバイスが本物のデバイスであることを証明するために使用され得る。
いくつかの例において、アテステーションエビデンス420は、鍵管理ノード406の正当性(たとえば、鍵管理ノード406が信頼できるエンティティであるかどうか)を示し、鍵管理ノード406の測定値422(たとえば、ダイジェスト)と、サービス公開鍵424と、電子署名426とを含む。測定値422は、鍵管理ノード406の初期状態のダイジェスト(たとえば、ハッシュ値)を含み得る。サービス公開鍵424は、サービス秘密鍵とともに鍵管理ノード406によって所定の鍵生成アルゴリズム(たとえば、Rivest-Shamir-Adleman(RSA))を使用してランダムに生成され得る。署名426は、測定値422およびサービス公開鍵424に基づき、鍵管理ノード406のアテステーション秘密鍵(たとえば、EPID秘密鍵)を使用して生成される。
アテステーションサービス408は、アテステーションエビデンス420の妥当性を検証するために任意の好適なサーバ、コンピュータ、モジュール、またはコンピューティング要素上に実装され得る。上で指摘されているように、アテステーションエビデンス420は、鍵管理ノード406の測定値422、サービス公開鍵424、および署名426を含む。アテステーションエビデンス420を受信した後、アテステーションサービス408は署名426を検証し、AVR430を生成することができる。
いくつかの例において、アテステーションサービス408は、アテステーション公開鍵(たとえば、EPID公開鍵)を使用してアテステーションエビデンス420内の署名426を検証することができる。署名426を検証した後、アテステーションサービス408は、アテステーションエビデンス420、アテステーションエビデンス420内の署名426が有効であるかどうかを示す検証結果434、およびアテステーションサービス408の署名436を含むAVR430を生成することができる。
いくつかの実施形態において、AVR430は、鍵管理ノード406の署名426を除いたアテステーションエビデンス420を含む。たとえば、AVR430は、鍵管理ノード406の測定値422、サービス公開鍵424、検証結果434、および署名436を含み得る。いくつかの例において、署名436は、レポート署名鍵(たとえば、秘密鍵)を使用してアテステーションエビデンス420および検証結果434に基づき生成される。
動作時に、クライアント404は、デベロッパー402から鍵管理ノード406の測定値422を取得する。クライアント404は、鍵管理ノード406にクエリ(チャレンジ)を実行し、アテステーションエビデンス420を受信し、アテステーションエビデンス420をアテステーションサービス408に送信する。アテステーションサービス408は、アテステーションエビデンス420を検証し、AVR430をクライアント404に送信する。クライアント404は、AVR430内の署名436および測定値422に基づきAVR430を検証する。AVR430の検証に成功した後、クライアント404は、鍵管理ノード406が信頼できるエンティティであると決定し、鍵管理ノード406のサービス公開鍵424を登録(たとえば、記憶)する。以下では、図5を参照しつつ、アテステーションエビデンス420およびAVR430の検証をさらに詳しく説明する。
図5は、本明細書の実施形態による信号の流れ500の一例を示す図である。信号の流れ500は、鍵管理ノード(たとえば、鍵管理ノード406)のアテステーション検証プロセスを表す。便宜上、プロセスは、1つまたは複数の場所に配置され、本明細書に従って適切にプログラムされている、1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、分散システム(図4のシステム400)は、適切にプログラムされ、プロセスを実行することができる。
図5の例では、デベロッパー402は、クライアント404からリクエストがあった場合に鍵管理ノード406の測定値422をクライアント404に送信する(502)。たとえば、クライアント404は、鍵管理ノード406の測定値422を求めるリクエストをデベロッパーサーバ402に送信し得る。クライアント404の同一性を検証した後、デベロッパーサーバ402は、要求された測定値422をクライアント404に送信することができる。クライアント404は、将来使用するために鍵管理ノード406の測定値422を記憶する。
クライアント404は、アテステーションリクエスト(たとえば、チャレンジ)を鍵管理ノード406に送信する(504)。アテステーションリクエストが鍵管理ノード406に送信され、鍵管理ノード406の正当性を決定するために使用できるアテステーションエビデンス420を要求する。
アテステーションリクエストに応答して、鍵管理ノード406はアテステーションエビデンス420を生成する(506)。いくつかの例において、アテステーションエビデンス420は、鍵管理ノード406の測定値422、サービス公開鍵424、および電子署名426を含む。いくつかの実施形態において、測定値422は、鍵管理ノード406の初期状態のダイジェストを含むことができる。たとえば、測定値422は、鍵管理ノード406上で実装されるプロセスコードのハッシュ値を含み得る。サービス公開鍵424は、サービス秘密鍵とともに鍵管理ノード406によって所定の鍵生成アルゴリズム(たとえば、RSA)を使用してランダムに生成され得る。署名426は、測定値422およびサービス公開鍵424に基づき、鍵管理ノード406のアテステーション秘密鍵(たとえば、EPID秘密鍵)を使用して生成され得る。
鍵管理ノード406は、アテステーションリクエストに応答して、アテステーションエビデンス420をクライアント404に送信する(508)。クライアント404は、アテステーションエビデンス420をアテステーションサービス408に転送する(510)。いくつかの実施形態において、クライアント404は、アテステーション検証リクエストをアテステーションサービス408に送信する。アテステーション検証リクエストは、鍵管理ノード406のアテステーションエビデンス420、およびたとえば、鍵管理ノード406がSGXプラットフォームサービスを使用するかどうかを示すディスクリプタなどの、何らかの補足的情報を含むことができる。
アテステーションサービス408は、クライアント404からアテステーションエビデンス420を受信したことに応答してアテステーションエビデンス420を検証する(512)。指摘されているように、アテステーションエビデンス420は、鍵管理ノード406の測定値422、サービス公開鍵424、および署名426を含む。指摘されているように、署名426は、測定値422およびサービス公開鍵424に基づき、鍵管理ノード406のアテステーション秘密鍵(たとえば、EPID秘密鍵)を使用して生成され得る。いくつかの例において、アテステーションサービス408は、アテステーションエビデンス420内の署名426を検証するために使用できるアテステーション公開鍵(たとえば、EPID公開鍵)を用意する。
アテステーションサービス408が、アテステーションエビデンス420内の署名426が有効であると決定した場合、アテステーションサービス408は、鍵管理ノード406が信頼できるエンティティであると決定することができる。アテステーションサービス408が、署名426が無効であると決定した場合、アテステーションサービス408は、鍵管理ノード406が信頼できるエンティティでないと決定することができ、エラーのフラグを立て、鍵管理ノード406からのその後のデータおよびリクエストを拒否することができる。
アテステーションサービス408は、アテステーションエビデンス420の検証に基づきAVR430を生成する(514)。いくつかの実施形態において、AVR430は、アテステーションエビデンス420、アテステーション検証結果434、およびアテステーションサービス408の電子署名436を含むことができる。いくつかの実施形態において、AVR430は、鍵管理ノード406の署名426を除いたアテステーションエビデンス420を含み得る。たとえば、AVR430は、測定値422、サービス公開鍵424、アテステーション検証結果434、およびアテステーションサービス408の署名436を含み得る。
AVR430内のアテステーション検証結果434は、アテステーションエビデンス420内の署名426が有効であるかどうかを示す。たとえば、アテステーション検証結果430は、「有効」の値、またはアテステーションエビデンス420内の署名426が有効であることを示す「OK」、または署名426が無効であることを示す「無効」の値を含み得る。
いくつかの実施形態において、AVR430内の署名436は、レポート署名鍵を使用してアテステーションエビデンス420およびアテステーション検証結果434に基づき生成される。レポート署名鍵は、アテステーションサービス408がAVR430に署名するために使用する秘密鍵であるものとしてよい。いくつかの例において、レポート署名鍵は、所定の鍵生成アルゴリズムを使用してアテステーションサービス408によって生成される。たとえば、レポート署名鍵は、RSAセキュアハッシュアルゴリズム(SHA)256を使用して生成され得る。
アテステーションサービス408は、AVR430をクライアント404に送信する(516)。いくつかの実施形態において、クライアント404はAVR430を受信した後AVR430を検証する(518)。いくつかの例において、クライアント404は、レポート署名証明書を使用してAVR430内の署名436を検証することができる。レポート署名証明書はX.509電子証明書であってよい。クライアント404が、AVR430内の署名436が有効であると検証した場合、クライアント404は、AVR430がアテステーションサービス408によって本当に送信されたと決定することができる。クライアント404が、AVR430内の署名436が無効であると決定した場合、クライアント404は、AVR430が本物でないと決定することができ、AVR430を拒否することができる。クライアント404は、AVR430内のアテステーション検証結果434をさらに検査してアテステーションエビデンス420がアテステーションサービス408によって正常に検証されたかどうかを決定し得る。
いくつかの実施形態において、クライアント404は、AVR430内のアテステーションエビデンス420の中の測定値422をデベロッパー402からすでに取得されている測定値422と比較し、アテステーションエビデンス420が有効であるかどうかを決定する。
クライアント404は、AVR430が本物であると決定したことに応答して鍵管理ノード406を信頼できるエンティティとして登録する(520)。たとえば、クライアント404は、AVR430内の測定値422がデベロッパーサーバ402からすでに取得されている測定値422と一致する、検証結果434が署名426が有効であることを示している、署名436が有効であると検証される、またはこれらの組合せである場合に、鍵管理ノード406は信頼できるノードであるとみなすことができる。クライアント404は、AVR430内のアテステーションエビデンス420に含まれるサービス公開鍵424をさらに記憶するものとしてよい。
図6は、本明細書の実施形態によるシステム600の一例を示す図である。図示されているように、システム600は、アドミニストレータ602(たとえば、管理コンピューティングデバイス)、鍵管理ノード604、複数の中継システムノード606、アテステーションサービス608、およびネットワーク610(たとえば、インターネット)を含む。一般に、鍵管理ノード604は、中継システムノード606の正当性に関してアテステーションサービス608によって検証され得る、中継システムノード606のアテステーションエビデンスについて中継システムノード606の各々にチャレンジを実行する。中継システムノード606を正常に検証した後、鍵管理ノード604は、すべての中継システムノード606が同じ署名鍵を共有するように署名鍵(たとえば、サービス秘密鍵)を各中継システムノード606に送信することができる。
アドミニストレータ602は、本明細書において説明されているようなアルゴリズムを実行するために任意の好適なサーバ、コンピュータ、モジュール、またはコンピューティング要素上に実装され得る。いくつかの例において、アドミニストレータ602は、中継システムノード606を検証するために鍵管理ノード604にクエリを実行する。いくつかの例において、アドミニストレータ602は、検証されるべき中継システムノード606のネットワークアドレス(たとえば、URL)を含むリクエストを鍵管理ノード604に送信する。
鍵管理ノード604は、アテステーションエビデンスに関して中継システムノード606にチャレンジを実行し、アテステーションエビデンスをアテステーションサービス608に送信してアテステーションエビデンスが有効かどうかを検証することができる。いくつかの例において、鍵管理ノード604は、アドミニストレータ602から、検証されるべき中継システムノード606のURLを含むリクエストを受信する。鍵管理ノード604は、中継システムノード606のURLを使用してアテステーションエビデンスに関して中継システムノード604にクエリを実行することができる。いくつかの例において、鍵管理ノード604は、中継システムノード606から、中継システムノード606の測定値、公開鍵、および署名を含むアテステーションエビデンスを受信する。鍵管理ノード604は、中継システムノード606のアテステーションエビデンスをアテステーションサービス608に送信してアテステーションエビデンスが有効かどうかを検証することができる。鍵管理ノード604は、アテステーションサービス608から、アテステーションエビデンス、アテステーションエビデンスのアテステーション検証結果、およびアテステーションサービス608の署名を含むAVRを受信することができる。鍵管理ノード604は、アテステーションエビデンス内の測定値、検証結果、およびアテステーションサービス608の署名に基づきAVRを検証することができる。たとえば、鍵管理ノード604は、AVR内のアテステーションエビデンスの中の中継システムノード606の測定値を鍵管理ノード604に事前記憶されている別の測定値と比較してそれらが一致しているか調べることができる。鍵管理値604では、アテステーション検証結果を検査してアテステーションエビデンスがアテステーションサービス608によって正常に検証されたかどうかを調べることができる。鍵管理値604ではアテステーションサービス608の署名を検証し、AVRがアテステーションサービス608によって本当に送信されたかどうかを決定することができる。いくつかの例において、鍵管理ノード604が、AVR内のアテステーションエビデンスの中の中継システムノード606の測定値が鍵管理ノード604に事前記憶されている別の測定値と一致していると決定し、アテステーション検証
結果が、アテステーションエビデンスが有効であること、アテステーションサービス608の署名が有効であること、またはこれらの組合せを示している場合に、鍵管理ノード604は、AVRが有効であると決定することができる。
鍵管理ノード604は、AVRが有効であることを検証した後、AVR内のアテステーションエビデンスに含まれる中継システムノード606の公開鍵を取得し、記憶することができる。鍵管理ノード604は、中継システムノード606の公開鍵をさらに使用して、そのサービス秘密鍵を暗号化し、暗号化されたサービス秘密鍵を中継システムノード606に送信することができる。鍵管理ノード604がそのサービス秘密鍵を複数の中継システムノード606に配布するいくつかの例において、鍵管理ノード604は、各中継システムノードのそれぞれの公開鍵を使用してそのサービス秘密鍵を暗号化することができる。
中継システムノード606は、鍵管理ノード604から暗号化されたサービス秘密鍵を暗号解読し、鍵管理ノード604のサービス秘密鍵を取得することができる。たとえば、各中継システムノード606は、そのそれぞれの秘密鍵を使用して、中継システムノード606の公開鍵を使用して暗号化されているサービス秘密鍵を取得することができる。中継システムノード606は、将来使用するために鍵管理ノード604のサービス秘密鍵を記憶する。指摘されているように、複数の中継システムノード606は、鍵管理ノード604の同じサービス秘密鍵を共有する。
アテステーションサービス608は、中継システムノード606のアテステーションエビデンスが有効であるかどうかを検証することができる。指摘されているように、中継システムノード606のアテステーションエビデンスは、中継システムノード606の測定値、公開鍵、および署名を含む。いくつかの例において、中継システムノード606の署名は、中継システムノード606のアテステーション秘密鍵(たとえば、EPID秘密鍵)を使用して生成される。アテステーションサービス608は、アテステーション公開鍵(たとえば、EPID公開鍵)を使用して中継システムノード606の署名を検証し、署名の検証結果に基づきアテステーションエビデンスが有効かどうかを決定することができる。アテステーションエビデンスを検証した後、アテステーションサービス608はAVRを鍵管理ノード604に送信することができる。指摘されているように、AVRは、アテステーションエビデンス、アテステーションエビデンスのアテステーション検証結果、およびアテステーションサービス608の署名を含むことができる。
動作時に、アドミニストレータ602は、検証されるべき中継システムノード606のネットワークアドレスを鍵管理ノード604に送信する。鍵管理ノード604は、ネットワークアドレスを使用して中継システムノード606へのリモートアテステーションリクエストを開始する。中継システムノード606は、公開鍵と秘密鍵とを含む秘密鍵のペアをランダムに生成し、公開鍵を鍵管理ノード604に返されるアテステーションエビデンスの中に含める。鍵管理ノード604は、中継システムノード606のアテステーションエビデンスをアテステーションサービス608にサブミットしてアテステーションエビデンスの妥当性を検証する。アテステーションサービス608は、鍵管理ノード604からのアテステーションエビデンスを検証し、AVRを返す。鍵管理ノード604はAVRを検証して、中継システムノード606が正当なTEEノードであるかどうかを決定する。いくつかの例において、鍵管理ノード604は、AVR内のアテステーションエビデンスの中に含まれる測定値が期待される測定値と一致しているかどうかを決定する。AVRを正常に検証した後、鍵管理ノード604は、アテステーションエビデンスに含まれる中継システムノード606の公開鍵を使用してそのサービス公開鍵を暗号化する。鍵管理ノード604は、暗号化されたサービス秘密鍵を中継システムノード606に送信する。鍵管理ノードから暗号化されたサービス秘密鍵を受信した後、中継システムノード606は、その秘密鍵を使用してサービス秘密鍵を取得する。そのようなものとして、鍵管理ノード604は、そのサービス秘密鍵を、正当なものであるとすでに検証されている中継システムノード606に配布することができる。以下では、図7を参照しつつ、サービス秘密鍵の配布をさらに詳しく説明する。
図7は、本明細書の実施形態による信号の流れ700の一例を示す図である。信号の流れ700は、署名鍵(たとえば、サービス秘密鍵)配布プロセスを表す。便宜上、プロセスは、1つまたは複数の場所に配置され、本明細書に従って適切にプログラムされている、1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、分散システム(図6のシステム600)は、適切にプログラムされ、プロセスを実行することができる。
図7の例では、アドミニストレータ602は、中継システムノード606が正当なTEEノードであるかどうかを決定するためのリクエストを鍵管理ノード604に送信する(702)。いくつかの例において、このリクエストは、検証されるべき中継システムノード606のネットワークアドレス(たとえば、URL)を含む。
鍵管理ノード604は、ネットワークアドレスを使用して中継システムノード606へのリモートアテステーションリクエストを送信する(704)。いくつかの例において、中継システムノード606の正当性を示すアテステーションエビデンスに対するリモートアテステーションリクエストが、中継システムノード606に送信される。アテステーションエビデンスは、検証されるべき中継システムノード606の測定値(たとえば、初期状態のハッシュ値)、公開鍵、および署名を含むことができる。
アテステーションリクエストに応答して、中継システムノード606はアテステーションエビデンスを生成する(706)。指摘されているように、アテステーションエビデンスは、中継システムノード606の測定値、公開鍵、および電子署名を含む。いくつかの実施形態において、測定値は、中継システムノード606の初期状態のダイジェストを含むことができる。たとえば、測定値は、中継システムノード606上で実装されるプロセスコードのハッシュ値を含み得る。公開鍵は、秘密鍵とともに中継システムノード606によって所定の鍵生成アルゴリズム(たとえば、RSA)を使用してランダムに生成され得る。署名は、測定値および公開鍵に基づき、中継システムノード606のアテステーション秘密鍵(たとえば、EPID秘密鍵)を使用して生成され得る。
中継システムノード606は、アテステーションリクエストに応答して、アテステーションエビデンスを鍵管理ノード604に送信する(708)。鍵管理ノード604は、アテステーションエビデンスをアテステーションサービス608に転送する(710)。いくつかの実施形態において、鍵管理ノード604は、アテステーション検証リクエストをアテステーションサービス608に送信する。アテステーション検証リクエストは、中継システムノード606のアテステーションエビデンス、およびたとえば、中継システムノード606がSGXプラットフォームサービスを使用するかどうかを示すディスクリプタなどの、何らかの補足的情報を含むことができる。
アテステーションサービス608は、アテステーションエビデンスを検証する(712)。指摘されているように、アテステーションエビデンスは、中継システムノード606の測定値、公開鍵、および署名を含む。署名は、測定値および公開鍵に基づき、中継システムノード606のアテステーション秘密鍵(EPID秘密鍵)を使用して生成される。いくつかの例において、アテステーションサービス608は、アテステーションエビデンス内の署名を検証するために使用できるアテステーション公開鍵(EPID公開鍵)を用意する。
アテステーションサービス608が、アテステーションエビデンス内の署名が有効であると決定した場合、アテステーションサービス608は、中継システムノード606が信頼できるエンティティであると決定することができる。アテステーションサービス608が、署名が無効であると決定した場合、アテステーションサービス608は、中継システムノード606が信頼できるエンティティでないと決定することができ、エラーのフラグを立て、中継システムノード606からのその後のデータおよびリクエストを拒否することができる。
アテステーションサービス608は、アテステーションエビデンスの検証に基づきAVRを生成する(714)。いくつかの実施形態において、AVRは、アテステーションエビデンス、アテステーション検証結果、およびアテステーションサービス608の電子署名を含むことができる。いくつかの実施形態において、AVRは、中継システムノード606の署名を除いたアテステーションエビデンスを含み得る。いくつかの例において、AVRの署名は、レポート署名鍵(秘密鍵)を使用してアテステーションエビデンスおよびアテステーション検証結果に基づき生成される。
アテステーションサービス608は、AVRを鍵管理ノード604に送信する(716)。いくつかの実施形態において、鍵管理ノード604は、アテステーションサービス608からのAVRを検証する(718)。いくつかの例において、鍵管理ノード604は、レポート署名証明書(公開鍵)を使用してAVRの署名を検証する。いくつかの実施形態において、鍵管理ノード604は、アテステーションエビデンスの中の測定値を鍵管理ノード604に事前記憶されている別の測定値と比較し、アテステーションエビデンスが有効であるかどうかを決定する。AVRおよび測定値を正常に検証した後、鍵管理ノード604は、中継システムノード606の公開鍵を記憶する。
鍵管理ノード604は、中継システムノード606の公開鍵を使用してそのサービス秘密鍵を暗号化し(720)、暗号化されたサービス秘密鍵を中継システムノード606に送信する(722)。
鍵管理ノード604から暗号化されたサービス秘密鍵を受信した後、中継システムノード606は、その秘密鍵を使用して鍵管理ノードのサービス秘密鍵を取得する(724)。中継システムノード606は、将来使用するためにサービス秘密鍵を記憶することができる。
図8は、本明細書の実施形態によるシステム800の一例を示す図である。図示されているように、システム800は、クライアント802(たとえば、クライアントコンピューティングデバイス)、ブロックチェーン804、マルチノードクラスタを形成する複数の中継システムノード810、およびネットワーク812(たとえば、インターネット)を含む。示されている例では、ブロックチェーン804は、クライアントスマートコントラクト806と中継システムスマートコントラクト808とを含む。いくつかの実施形態において、中継システムノード810は、TEE技術(たとえば、Intel SGX)を使用して実装される。
一般に、クライアント802は、ネットワーク812内のデータソースにデータを要求し、リクエストおよび取得データの完全性が検証され得るようにブロックチェーン804および中継システムノード810を通じてデータソースから取得されたデータを受信する。
動作時に、クライアント802は、平文部分と機密データ部分とを含むリクエストを作成し、機密データ部分は鍵管理ノード(たとえば、鍵管理ノード406および604)からすでに取得されているサービス公開鍵を使用してクライアント802によって暗号化される。クライアント802は、そのリクエストをブロックチェーン804内でクライアントスマートコントラクト806にサブミットする。クライアントスマートコントラクト806は、リクエストを中継システムスマートコントラクト808に転送する。中継システムスマートコントラクト808は、リクエストをマルチノードクラスタ内の中継システムノード810に転送する。いくつかの例において、中継システムスマートコントラクト808は、利用可能である中継システムノード810をランダムに選択する。いくつかの例において、中継システムスマートコントラクト808はログメッセージを通じてリクエストを送信する。中継システムノード810は、リクエストを受信し、鍵管理ノードからすでに取得されているサービス秘密鍵を使用して機密データ部分を取得する。中継システムノード810は、平文部分と機密データ部分とを組み合わせてデータリクエストを形成する。次いで、中継システムノード810はデータリクエストをインターネットデータソース812にサブミットする。中継システムノード810は、インターネットデータソース812からリクエスト結果を受信し、サービス秘密鍵を使用してリクエスト結果に署名する。中継システムノード810は、署名済みリクエスト結果を中継システムスマートコントラクト808にサブミットし、これはさらに、クライアントスマートコントラクト806を通じてクライアント802に転送される。クライアント802は、署名済みリクエスト結果を受信し、サービス公開鍵を使用して署名済みリクエスト結果を検証する。署名済みリクエスト結果を正常に検証した後、クライアント802はその結果を使用することができる。
図9は、本明細書の実施形態による信号の流れ900の一例を示す図である。便宜上、プロセス900は、1つまたは複数の場所に配置され、本明細書に従って適切にプログラムされている、1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、分散システム(たとえば、図1のブロックチェーンシステム100、および図8のシステム800)は、適切にプログラムされ、プロセス900を実行することができる。
クライアント802は、インターネットベースのデータソース812へのデータまたはサービスのリクエストを生成する(902)。いくつかの例において、リクエストは、クライアント802のアカウントに対するアクセス要求であってよい。アクセス要求は、たとえば、ウェブアドレスなどの平文部分、およびたとえば、クライアントアカウントの資格証明書(たとえば、ユーザ名、パスワード)などの機密データ部分を含み得る。いくつかの例において、アクセス要求内の機密データ部分は暗号化されるものとしてよく、これにより、ネットワーク上の悪意ある行為を行う者がユーザアカウントの個人情報を取得してユーザアカウントに侵入することをできなくする。いくつかの例において、機密データ部分は、初期段階でアテステーションプロセスにおいて鍵管理ノードから取得されるサービス公開鍵を使用してクライアント802によって暗号化される。
クライアント802は、そのリクエストをクライアントスマートコントラクト806に送信する(904)。クライアントスマートコントラクト806は、リクエストを中継システムスマートコントラクト808に転送する(906)。
中継システムスマートコントラクト808は、リクエストを中継システムノード810に転送する(908)。いくつかの実施形態において、中継システムスマートコントラクト808は、定期的に、鍵管理ノードから、初期鍵配布プロセスにおいて正当であると検証されているマルチノードクラスタ内の中継システムノード810のリストを受信する。中継システムスマートコントラクト808は、検証された中継システムノード810をランダムに選択することができるか、またはリストから作業負荷が最小の検証された中継システムノード810を選択することができる。いくつかの例において、中継システムスマートコントラクト808は、ログメッセージを通じてリクエストを選択された中継システムノード810に送信する。
いくつかの実施形態において、中継システムノード810は、初期鍵配布プロセスにおいて取得されたサービス秘密鍵を使用してリクエストから機密データ部分を取得する(910)。たとえば、中継システムノード810は、サービス秘密鍵を使用して暗号化された機密データ部分を暗号解読することができる。指摘されているように、マルチノードクラスタ内の中継システムノード810は、同じサービス秘密鍵を取得し、共有する。検証された中継システムノード810の各々は、同じサービス秘密鍵を使用して、暗号化された機密データ部分を処理することができる。
中継システムノード810は、平文部分と機密データ部分とを組み合わせてデータリクエストを形成する(912)。インターネットデータソース812にクエリを実行するために、中継システムノード810によって新しいデータリクエストが使用され得る。たとえば、新しいデータリクエストは、クライアント802がアカウントにアクセスすることを望んでいるウェブアドレスを含む平文部分と、アカウントにログインするための資格証明書(たとえば、ユーザ名およびパスワード)を含む機密データ部分とを含み得る。
中継システムノード810はデータリクエストをインターネットデータソース812にサブミットする(914)。インターネットデータソース812は、データリクエストを処理し(916)、リクエスト結果を中継システムノード810に返す(918)。
中継システムノード810はリクエスト結果を処理して(920)、応答を提供する。本明細書の実施形態により、中継システムノード810は、そのサービス秘密鍵を使用して結果に署名し、応答を提供する。さらに詳しく言うと、結果、すなわち結果の少なくとも一部(たとえば、データ)は、ハッシュ関数を通じて中継システムノード810によって処理され、ハッシュ値を提供する。ハッシュ関数の一例は、限定することなく、SHA-256を含む。中継システムノード810は、ハッシュ値およびサービス秘密鍵に基づき電子署名を生成する。たとえば、ハッシュ値およびサービス秘密鍵は、電子署名を提供する、署名アルゴリズムを通じて処理される。中継システムノード810は、結果(たとえば、データ)と電子署名とを含む、応答を提供する。中継システムノード810は、応答を中継システムスマートコントラクト808に送信する(922)。
中継システムスマートコントラクト808は、応答をクライアントスマートコントラクト806に転送する(924)。クライアントスマートコントラクト806は、応答をクライアント802に提供する(926)。
いくつかの実施形態において、クライアント802は、応答の中の署名されたリクエスト結果を検証する(928)。いくつかの例において、クライアント802は、そのサービス公開鍵を使用して署名されたリクエスト結果の中の署名を検証する。クライアント802は、ハッシュ関数を使用して第1のハッシュ値を計算することにより応答の中のリクエスト結果を処理する。次いで、クライアント802は、サービス公開鍵を使用して署名に含まれる第2のハッシュ値を取得することでリクエスト結果の署名を処理する。次いで、クライアント802は第1のハッシュ値を第2のハッシュ値と比較する。2つのハッシュ値が一致した場合、クライアント802は、リクエスト結果であると決定し、リクエスト結果を使用することができる。2つのハッシュ値が一致しない場合、クライアント802は、リクエスト結果が無効であると決定し、エラーのフラグを立てることができる。
図10は、ブロックチェーンネットワークの外部にある外部データソースからデータを取得するためのプロセス1000の一例のフローチャートである。便宜上、プロセス1000は、1つまたは複数の場所に配置され、本明細書に従って適切にプログラムされている、1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、分散システム、たとえば、図3の分散システム300は、適切にプログラムされ、プロセス1000を実行することができる。
1002において、ブロックチェーンネットワーク内で実行されている中継システムスマートコントラクトは、外部データソースからデータを取得するためにクライアントスマートコントラクトからリクエストを受信する。いくつかの実施形態では、リクエストは暗号化されたデータを含む。暗号化されたデータは、鍵管理ノードのサービス公開鍵を使用して暗号化されている外部データソースにアクセスするためのアクセスデータを含む。いくつかの実施形態において、鍵管理ノードは、ブロックチェーンネットワークの外部に配置される。
1004において、中継システムスマートコントラクトは、ブロックチェーンネットワークの外部にある複数の中継システムノードから中継システムノードを選択する。いくつかの実施形態において、複数の中継システムノードは、鍵管理ノードのサービス秘密鍵とともに配布される。
1006において、中継システムスマートコントラクトは、リクエストを選択された中継システムノードに伝送する。
1008において、中継システムスマートコントラクトは、リクエストに応答して選択された中継システムノードから戻り結果を受信する。いくつかの実施形態において、戻り結果は、外部データソースから取得され、中継システムノードによって取得されたデータと、電子署名とを含む。いくつかの実施形態において、電子署名は、外部データソースから取得されたデータおよび鍵管理ノードのサービス秘密鍵に基づき生成される。
1010において、中継システムスマートコントラクトは、戻り結果をクライアントスマートコントラクトに伝送する。
図11は、本明細書の実施形態による装置1100のモジュールの一例の図である。装置1100は、外部データソースからデータを取得するように構成されているブロックチェーンネットワークノードの一実施形態の一例であるものとしてよく、スマートコントラクトはブロックチェーンネットワークノード内で実行される。装置1100は、上で説明されている実施形態に対応するものとしてよく、装置1100は、クライアントスマートコントラクトから、データを外部データソースから取得するためのリクエストを受信する受信モジュール1102であって、リクエストは暗号化されたデータを含み、暗号化されたデータはブロックチェーンネットワークの外部にある鍵管理ノードのサービス公開鍵を使用して暗号化されている外部データソースにアクセスするためのアクセスデータを含む、受信モジュール1102と、ブロックチェーンネットワークの外部にある複数の中継システムノードから中継システムノードを選択する選択モジュール1104であって、複数の中継システムノードは、鍵管理ノードのサービス秘密鍵とともに配布される、選択モジュール1104と、リクエストを中継システムノードに伝送する伝送モジュール1106と、リクエストに応答して中継システムノードから戻り結果を受信する受信モジュール1108であって、戻り結果は中継システムノードによって取得された外部データソースから取得されたデータと、電子署名とを含み、電子署名は、外部データソースから取得されたデータおよび鍵管理ノードのサービス秘密鍵に基づき生成される、受信モジュール1108と、戻り結果をクライアントスマートコントラクトに伝送する伝送モジュール1110とを備える。
任意選択の一実施形態において、鍵管理ノードのサービス秘密鍵およびサービス公開鍵は、鍵管理ノードのアテステーションプロセスによって用意される。
任意選択の一実施形態において、鍵管理ノードおよびアテステーションサービスを伴うアテステーションプロセスは、クライアントデバイスによって実行され、鍵管理ノードのサービス公開鍵は、アテステーションプロセスにおいてクライアントデバイスによって取得される。
任意選択の一実施形態において、戻り結果は、鍵管理ノードのサービス公開鍵を使用してクライアントデバイスによって正当性を確認される。
任意選択の一実施形態において、複数の中継システムノードは、各々、信頼できる実行環境(TEE)を実行する。
任意選択の一実施形態において、リクエストは第1の中継システムノードによって暗号解読され、鍵管理ノードのサービス秘密鍵を使用してアクセスデータを取得する。
任意選択の一実施形態において、複数の中継システムノードの各々およびアテステーションサービスを伴うアテステーションプロセスは、鍵管理ノードによって実行される。
任意選択の一実施形態において、鍵管理ノードは複数の中継システムノードとともに鍵配布プロセスを実行し、鍵配布プロセスを実行した結果、鍵管理ノードのサービス秘密鍵が複数の中継システムノードに配布される。
前述の実装形態において例示されているシステム、装置、モジュール、またはユニットは、コンピュータチップもしくはエンティティを使用することによって実装され得るか、または特定の機能を有する製品を使用することによって実装され得る。典型的な実施形態デバイスはコンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話、カメラ付き携帯電話、スマートフォン、携帯情報端末、メディアプレーヤー、ナビゲーションデバイス、電子メール受信および送信デバイス、ゲーム機、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであってよい。
装置内の各モジュールの機能および役割の実施形態プロセスについて、前述の方法における対応するステップの実施形態プロセスが参照され得る。簡単にするため、詳細はここでは省略される。
装置実施形態は、方法実施形態に基本的に対応しているので、関係する部分について、方法実施形態における関係する説明を参照することができる。すでに説明されている装置実施形態は、一例にすぎない。分離している部分として説明されるモジュールは、物理的に分離し得るかまたは分離し得ず、およびモジュールとして表示される部分は、物理的モジュールであり得るかまたは物理的モジュールであり得ず、1つの位置に配置され得るか、または多数のネットワークモジュール上に分散され得る。モジュールの一部または全部は、本明細書の解決方法の目的を達成するために実際に必要になるものに基づき選択され得る。当業者であれば、創造的労力を費やすことなく本出願の実施形態を理解し、実装することができる。
再び図11を参照すると、これは内部機能モジュールおよびブロックチェーンデータ取得装置の構造を例示しているものとして解釈され得る。ブロックチェーンデータ取得装置は、外部データソースからデータを取り出すように構成されているスマートコントラクトを実行するブロックチェーンノードの一例であり得る。実行本体は、本質的に電子デバイスであるものとしてよく、電子デバイスは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサの実行可能命令を記憶するように構成されているメモリとを備える。
本明細書の実施形態は、従来のシステムに勝る1つまたは複数の技術的効果をもたらす。いくつかの実施形態において、サービス秘密鍵を複数の中継システムノードに配布するための鍵管理ノードが提供される。本明細書において説明されているように、鍵管理ノードに対してリモートアテステーションが実行されるものとしてよく、これは各クライアントが中継システムノードのリモートアテステーションを独立して実行する必要をなくす。これは、一般的に、各クライアントからの中継システムノードの個別アテステーションによって引き起こされるネットワークボトルネックを軽減する。さらに、複数の中継システムノードから利用可能な中継システムノードを選択するための中継システムスマートコントラクトが提供される。本明細書において説明されているように、中継システムノードがクラスタ内に展開されている場合、中継システムスマートコントラクトは、クライアントリクエストをクラスタ内の利用可能な中継システムノードに自動的に割り当て、それにより、個別の中継システムノードの障害によりサービスが利用不可能になる事態を回避することができる。そのようなものとして、本明細書の実施形態は、ネットワークデータソースにクエリを実行するための中継システムノードの全体的なサービス利用可能性を改善する。いくつかの実施形態において、中継システムスマートコントラクトは、クライアントと中継システムノードとの間に直接的接触があることを回避し、それにより、中継システムノードの位置またはアクセスポイントを顕わにすることを回避する。そのようなものとして、中継システムノードは、たとえば、DDoS攻撃などの、多くの形態のネットワーク上の悪意のある行為を行う者によって見つけられ攻撃される可能性は低い。これは、中継システムノードのセキュリティを改善し、それによって、クライアントと中継システムノードとの間の通信のセキュリティをさらに改善する。
主題の説明されている実施形態は、1つまたは複数を、単独で、または組み合わせて含み得る。たとえば、第1の実施形態において、外部データソースからデータを取得するための方法は、クライアントスマートコントラクトから、ブロックチェーンネットワーク内で実行されている中継システムスマートコントラクトによって、外部データソースからデータを取得するリクエストを受信することであって、リクエストは暗号化されたデータを含み、暗号化されたデータはブロックチェーンネットワークの外部にある鍵管理ノードのサービス公開鍵を使用して暗号化されている外部データソースにアクセスするためのアクセスデータを含む、受信することと、中継システムスマートコントラクトによって、ブロックチェーンネットワークの外部にある複数の中継システムノードから中継システムノードを選択することであって、複数の中継システムノードは、鍵管理ノードのサービス秘密鍵とともに配布される、選択することと、中継システムスマートコントラクトによって、リクエストを中継システムノードに伝送することと、中継システムノードから、中継システムスマートコントラクトによって、リクエストに応答して戻り結果を受信することであって、戻り結果は中継システムノードによって取得された外部データソースから取得されたデータと、電子署名とからなり、電子署名は、外部データソースから取得されたデータおよび鍵管理ノードのサービス秘密鍵に基づき生成される、受信することと、中継システムスマートコントラクトによって、戻り結果をクライアントスマートコントラクトに伝送することとを含む。
前述および他の説明されている実施形態は、各々、任意選択で、次の特徴のうちの1つまたは複数を含み得る。
第1の特徴は、次の特徴のうちのどれかと組合せ可能であり、鍵管理ノードのサービス秘密鍵およびサービス公開鍵が鍵管理ノードのアテステーションプロセスによって用意されることを規定する。
第2の特徴は、前のまたは次の特徴のうちのどれかと組合せ可能であり、鍵管理ノードおよびアテステーションサービスによるアテステーションプロセスはクライアントデバイスによって実行されることを規定し、鍵管理ノードのサービス公開鍵は、アテステーションプロセスにおいてクライアントデバイスによって取得される。
第3の特徴は、前のまたは次の特徴のうちのどれかと組合せ可能であり、戻り結果が鍵管理ノードのサービス公開鍵を使用してクライアントデバイスによって正当であるか確認されることを規定する。
第4の特徴は、前のまたは次の特徴のどれかと組合せ可能であり、複数の中継システムノードが各々信頼できる実行環境(TEE)を実行することを規定する。
第5の特徴は、前のまたは次の特徴のうちのどれかと組合せ可能であり、リクエストが鍵管理ノードのサービス秘密鍵を使用してアクセスデータを取得するために第1の中継システムノードによって暗号解読されることを規定する。
第6の特徴は、前のまたは次の特徴のうちのどれかと組合せ可能であり、複数の中継システムノードの各々およびアテステーションサービスによるアテステーションプロセスが鍵管理ノードによって実行されることを規定する。
第7の特徴は、前のまたは次の特徴のうちのどれかと組合せ可能であり、鍵管理ノードが複数の中継システムノードとともに鍵配布プロセスを実行し、鍵配布プロセスを実行した結果、鍵管理ノードのサービス秘密鍵が複数の中継システムノードに配布されることを規定する。
主題ならびに本明細書で説明されているアクションおよび動作の実施形態は、本明細書で開示されている構造およびその構造的等価物を含む、デジタル電子回路で、明白に具現化されたコンピュータソフトウェアもしくはファームウェアで、コンピュータハードウェアで、またはこれらのうちの1つまたは複数のものの組合せで実装することができる。本明細書で説明されている主題の実施形態は、1つまたは複数のコンピュータプログラム、たとえば、データ処理装置による実行のため、またはデータ処理装置のオペレーションを制御するためにコンピュータプログラムキャリア上に符号化されたコンピュータプログラム命令からなる1つまたは複数のモジュールとして実装されることが可能である。たとえば、コンピュータプログラムキャリアは、命令が符号化されるか、または記憶されている1つまたは複数のコンピュータ可読記憶媒体を含むことができる。キャリアは、磁気、光磁気、もしくは光ディスク、ソリッドステートドライブ、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、または他のタイプの媒体などの、有形の非一時的コンピュータ可読媒体であってよい。代替的に、またはそれに加えて、キャリアは、データ処理装置による実行のため好適な受信機装置に伝送する情報を符号化するように生成される人工的に生成された伝搬信号、たとえば、機械で生成された電気、光、または電磁信号であってよい。コンピュータ記憶媒体は、機械可読記憶装置デバイス、機械可読記憶装置基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであるか、またはその一部であってよい。コンピュータ記憶媒体は、伝搬信号ではない。
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、エンジン、スクリプト、またはコードとも称されるか、または記述され得る、コンピュータプログラムは、コンパイル言語またはインタプリタ言語または宣言型言語または手続き型言語を含む、任意の形態のプログラミング言語で書かれるものとしてよく、またスタンドアロンプログラム、またはモジュール、コンポーネント、エンジン、サブルーチン、またはコンピューティング環境において実行するのに適している他のユニットを含む、任意の形態で配備されてよく、この環境は、1つまたは複数の場所にあるデータ通信ネットワークによって相互接続されている1つまたは複数のコンピュータを含んでいてもよい。
コンピュータプログラムは、ファイルシステム内のファイルに対応してよいが、そうである必要はない。コンピュータプログラムは、他のプログラムまたはデータ、たとえば、マークアップ言語ドキュメントに記憶される1つまたは複数のスクリプトを保持するファイルの一部に、注目しているプログラム専用の単一ファイルに、または複数の協調ファイル、たとえば、1つまたは複数のモジュール、副プログラム、またはコードの一部分を記憶するファイルに記憶され得る。
コンピュータプログラムの実行のためのプロセッサは、たとえば、汎用マイクロプロセッサ、専用マイクロプロセッサ、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般的に、プロセッサは、プロセッサに結合されている非一時的コンピュータ可読媒体から、実行するコンピュータプログラムの命令、さらにはデータを受信する。
「データ処理装置」という用語は、たとえばプログラム可能プロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを備える、データを処理するためのすべての種類の装置、デバイス、およびマシンを包含する。データ処理装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)、またはGPU(グラフィックスプロセッシングユニット)を含むことができる。装置は、ハードウェアに加えて、コンピュータプログラム用の実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらのうちの1つまたは複数のものの組合せを構成するコードを含むこともできる。
本明細書で説明されているプロセスおよび論理の流れは、入力データを操作し、出力を生成することによってオペレーションを実行するように1つまたは複数のコンピュータプログラムを実行する1つまたは複数のコンピュータもしくはプロセッサによって実行され得る。プロセスおよび論理の流れは、専用論理回路、たとえば、FPGA、ASIC、もしくはGPUによって、または専用論理回路と1つもしくは複数のプログラムされたコンピュータとの組合せによって実行されてもよい。
コンピュータプログラムの実行に適しているコンピュータは、汎用マイクロプロセッサ、専用マイクロプロセッサ、もしくはその両方、または任意の他の種類の中央演算処理装置に基づくものとしてよい。一般的に、中央演算処理装置は、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受け取る。コンピュータの要素は、命令を実行するための中央演算処理装置ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスを含むことができる。中央演算処理装置およびメモリは、専用論理回路によって補助されるか、または専用論理回路に組み込まれ得る。
一般的に、コンピュータは、1つもしくは複数の記憶装置デバイスも備えるか、またはこれらからデータを受け取るか、もしくはこれらにデータを転送するように動作可能なように結合され得る。記憶装置デバイスは、たとえば、磁気、光磁気、もしくは光ディスク、ソリッドステートドライブ、または任意の他のタイプの非一時的コンピュータ可読媒体であってよい。しかしながら、コンピュータは、そのようなデバイスを有している必要はない。したがって、コンピュータは、ローカルおよび/またはリモートにある、1つもしくは複数のメモリなどの、1つもしくは複数の記憶装置デバイスに結合されるものとしてよい。たとえば、コンピュータは、コンピュータの組み込みコンポーネントである1つもしくは複数のローカルメモリを備えることができるか、またはコンピュータは、クラウドネットワーク内にある1つもしくは複数のリモートメモリに結合され得る。さらに、コンピュータは、他のデバイス、たとえば、2、3例を挙げると、携帯電話、携帯情報端末(PDA)、携帯オーディオまたはビデオプレーヤー、ゲーム機、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに埋め込まれ得る。
コンポーネントは、直接的に、または1つもしくは複数の中間コンポーネントを介してのいずれかで、電気的にもしくは光学的になど、通信可能に接続されることによって互いに「結合される」ものとしてよい。コンポーネントは、また、コンポーネントのうちの一方が他方に一体化される場合に互いに「結合される」ものとしてよい。たとえば、プロセッサに一体化されている記憶コンポーネント(たとえば、L2キャッシュコンポーネント)は、プロセッサに「結合される」。
ユーザとインタラクティブにやり取りするために、本明細書で説明されている主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえば、LCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を送るために使用できる入力デバイス、たとえば、キーボードおよびポインティングデバイス、たとえば、マウス、トラックボール、もしくはタッチパッドを有するコンピュータ上に実装され得るか、またはそのようなコンピュータと通信するように構成され得る。他の種類のデバイスも、ユーザとインタラクティブにやり取りするために使用されてよく、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってよく、ユーザからの入力は、音響、音声、または触覚入力を含む、任意の形態で受信され得る。それに加えて、コンピュータは、文書をユーザによって使用されるデバイスに送信し、そのデバイスから文書を受信することによって、たとえば、ウェブブラウザからリクエストが受信されたことに応答してウェブページをユーザのデバイス上のウェブブラウザに送信することによって、またはユーザデバイス、たとえば、スマートフォンもしくは電子タブレット上で実行しているアプリとインタラクティブにやり取りすることによって、ユーザとインタラクティブにやり取りすることができる。また、コンピュータはテキストメッセージまたは他の形態のメッセージを個人用デバイス、たとえば、メッセージングアプリケーションが稼動しているスマートフォンに送信し、それに応えてユーザから応答メッセージを受信することによってユーザとインタラクティブにやり取りすることができる。
本明細書では、システム、装置、およびコンピュータプログラムコンポーネントと関連して「構成される」という言い回しを使用する。1つまたは複数のコンピュータのシステムについて、特定の動作またはアクションを実行するように構成されることは、システムがその上に動作時にそれらの動作またはアクションをシステムに実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしていることを意味する。1つまたは複数のコンピュータプログラムについて、特定の動作またはアクションを実行するように構成されることは1つまたは複数のプログラムがデータ処理装置によって実行されたときにそれらの動作またはアクションを装置に実行させる命令を含むことを意味する。専用論理回路に対して、特定のオペレーションまたはアクションを実行するように構成されることは、回路がオペレーションまたはアクションを実行する電子論理回路を有していることを意味する。
本明細書は、多くの実施形態固有の詳細事項を含んでいるが、これらは、請求項それ自体によって定義される、請求内容の範囲に対する制限として解釈すべきではなく、むしろ特定の実施形態に特有のものであり得る特徴の説明として解釈すべきである。別の実施形態の文脈において本明細書で説明されているいくつかの特徴も、単一の実施形態において組合せで実現され得る。逆に、単一の実施形態の文脈において説明されている様々な特徴は、複数の実施形態において別個に、または任意の好適な部分組合せで実現されてもよい。さらに、特徴は、いくつかの組合せで働くものとして上記で説明され、初めにそのように請求されることさえあるが、請求される組合せからの1つまたは複数の特徴は、場合によってはその組合せから削除され、請求項は、部分組合せ、または部分組合せの変形形態を対象としてもよい。
同様に、動作は特定の順序で図面に示され、請求項において引用されているが、そのような動作は、望ましい結果を達成するために、示される特定の順序でもしくは順番に実行される必要がないことを、またはすべての図示の動作が実行される必要があるとは限らないことを、理解されたい。ある状況では、マルチタスキングおよび並列処理が有利である場合がある。さらに、上で説明されている実施形態における様々なシステムモジュールおよびコンポーネントの分離は、すべての実施形態においてそのような分離が必要とされるものと理解されるべきではなく、前述のプログラム構成要素およびシステムが概して単一のソフトウェアプロダクトとして一体化されるかまたは複数のソフトウェアプロダクトとしてパッケージ化されてもよいことを理解されたい。
主題の特定の実施形態が説明されている。他の実施形態は、次の請求項の範囲内に収まる。たとえば、請求項に記載のアクションは、異なる順序で実行することができ、それでも、所望の結果を得ることができる。一例として、添付図面に示されているプロセスは、必ずしも、望ましい結果を達成するために、図示されている特定の順序、または順番を必要としない。いくつかの場合において、マルチタスキングおよび並列処理が有利であり得る。
100 環境
102 コンソーシアム型ブロックチェーンネットワーク
106、108 コンピューティングデバイス
110 ネットワーク
200 アーキテクチャ
202、204、206 参加者システム
212 ブロックチェーンネットワーク
214 ノード
216 ブロックチェーン
216'、216'' ブロックチェーンの完全なコピー
256 RSAセキュアハッシュアルゴリズム(SHA)
300 システム
302 ブロックチェーン
304 クライアントスマートコントラクト
306 中継システムスマートコントラクト
308 中継システムノード
310 鍵管理ノード
312 ネットワーク
314 クライアント
400 システム
402 デベロッパー
404 クライアント
406 鍵管理ノード
408 アテステーションサービス
410 ネットワーク
420 アテステーションエビデンス
422 測定値
424 サービス公開鍵
426 電子署名
430 アテステーション検証レポート(AVR)
434 検証結果
436 署名
500 信号の流れ
502 送信する
504 送信する
506 生成する
508 送信する
510 転送する
512 検証する
514 生成する
516 送信する
518 検証する
520 登録する
600 システム
602 アドミニストレータ
604 鍵管理ノード、鍵管理値
606 中継システムノード
608 アテステーションサービス
610 ネットワーク
700 信号の流れ
702 送信する
704 送信する
706 生成する
708 送信する
710 転送する
712 検証する
714 生成する
716 送信する
718 検証する
720 暗号化する
724 取得する
800 システム
802 クライアント
804 ブロックチェーン
806 クライアントスマートコントラクト
808 中継システムスマートコントラクト
810 中継システムノード
812 ネットワーク
900 信号の流れ、プロセス
902 生成する
904 送信する
906 転送する
908 転送する
910 取得する
912 形成する
914 サブミットする
916 処理する
918 返す
920 処理する
922 送信する
924 転送する
926 提供する
928 検証する
1000 プロセス
1100 装置
1102 受信モジュール
1104 選択モジュール
1106 伝送モジュール
1108 受信モジュール
1110 伝送モジュール

Claims (10)

  1. ブロックチェーンネットワークの外部にある外部データソースからデータを取得するためのコンピュータ実装方法であって、
    クライアントスマートコントラクトから、前記ブロックチェーンネットワーク内で実行されている中継システムスマートコントラクトによって、前記外部データソースからデータを取得するリクエストを受信するステップであって、前記リクエストは暗号化されたデータを含み、前記暗号化されたデータは前記ブロックチェーンネットワークの外部にある鍵管理ノードのサービス公開鍵を使用して暗号化されている前記外部データソースにアクセスするためのアクセスデータを含む、ステップと、
    前記中継システムスマートコントラクトによって、前記ブロックチェーンネットワークの外部にある複数の中継システムノードから中継システムノードを選択するステップであって、前記複数の中継システムノードは、前記鍵管理ノードのサービス秘密鍵とともに配布される、ステップと、
    前記中継システムスマートコントラクトによって、前記リクエストを前記中継システムノードに伝送するステップと、
    前記中継システムノードから、前記中継システムスマートコントラクトによって、前記リクエストに応答して戻り結果を受信するステップであって、前記戻り結果は前記中継システムノードによって取得された前記外部データソースから取得された前記データと、電子署名とを含み、前記電子署名は、前記外部データソースから取得された前記データおよび前記鍵管理ノードの前記サービス秘密鍵に基づき生成される、ステップと、
    前記中継システムスマートコントラクトによって、前記戻り結果を前記クライアントスマートコントラクトに伝送するステップと
    を含むコンピュータ実装方法。
  2. 前記鍵管理ノードのアテステーションプロセスによって、前記鍵管理ノードの前記サービス秘密鍵および前記サービス公開鍵を用意するステップをさらに含む、請求項1に記載のコンピュータ実装方法。
  3. クライアントデバイスによって、前記鍵管理ノードおよびアテステーションサービスとともに前記アテステーションプロセスを実行するステップと、
    前記クライアントデバイスによって、前記鍵管理ノードの前記サービス公開鍵を、前記アテステーションプロセスにおいて取得するステップをさらに含む、請求項2に記載のコンピュータ実装方法。
  4. 前記戻り結果は、前記鍵管理ノードの前記サービス公開鍵を使用して前記クライアントデバイスによって正当性を確認される、請求項3に記載のコンピュータ実装方法。
  5. 前記複数の中継システムノードは、各々、信頼できる実行環境(TEE)を実行する、請求項1から4のいずれか一項に記載のコンピュータ実装方法。
  6. 前記リクエストは、前記中継システムノードによって暗号解読され、前記鍵管理ノードの前記サービス秘密鍵を使用して前記アクセスデータを取得する、請求項1から5のいずれか一項に記載のコンピュータ実装方法。
  7. 前記鍵管理ノードによって、前記複数の中継システムノードの各々およびアテステーションサービスとともにアテステーションプロセスを実行するステップをさらに含む、請求項1から6のいずれか一項に記載のコンピュータ実装方法。
  8. 前記鍵管理ノードは、前記複数の中継システムノードとともに鍵配布プロセスを実行し、前記鍵配布プロセスを実行した結果、前記鍵管理ノードの前記サービス秘密鍵が前記複数の中継システムノードに配布される、請求項7に記載の方法。
  9. システムであって、
    1つまたは複数のプロセッサと、
    前記1つまたは複数のプロセッサに結合され、請求項1から8のいずれか一項に記載の方法を実行するように1つまたは複数のプロセッサによって実行可能である命令が記憶されている1つまたは複数のコンピュータ可読メモリとを備える、システム。
  10. ブロックチェーンネットワークの外部にある外部データソースからデータを取得するための装置であって、請求項1から8のいずれか一項に記載の方法を実行するための複数のモジュールを備える、装置。
JP2019553420A 2019-03-29 2019-03-29 高度に利用可能な信頼できる実行環境を使用してブロックチェーンネットワークに対するアクセスデータを取得すること Active JP6865850B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/080478 WO2019120325A2 (en) 2019-03-29 2019-03-29 Retrieving access data for blockchain networks using highly available trusted execution environments

Publications (2)

Publication Number Publication Date
JP2020527298A JP2020527298A (ja) 2020-09-03
JP6865850B2 true JP6865850B2 (ja) 2021-04-28

Family

ID=66994283

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019553420A Active JP6865850B2 (ja) 2019-03-29 2019-03-29 高度に利用可能な信頼できる実行環境を使用してブロックチェーンネットワークに対するアクセスデータを取得すること

Country Status (10)

Country Link
US (3) US10757084B1 (ja)
EP (2) EP3610624B1 (ja)
JP (1) JP6865850B2 (ja)
KR (1) KR102274294B1 (ja)
CN (1) CN110999255B (ja)
AU (1) AU2019204725B2 (ja)
CA (1) CA3058244C (ja)
SG (1) SG11201908983WA (ja)
TW (1) TWI707245B (ja)
WO (1) WO2019120325A2 (ja)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110535833B (zh) * 2019-08-07 2020-06-09 中国石油大学(北京) 一种基于区块链的数据共享控制方法
KR102124942B1 (ko) * 2019-10-07 2020-06-19 신호열 블록체인 데이터 검색 방법
EP4055774A1 (en) * 2019-12-05 2022-09-14 Huawei Technologies Co., Ltd. System and method of establishing a trusted relationship in a distributed system
JP7162634B2 (ja) 2019-12-12 2022-10-28 株式会社bitFlyer Blockchain 証明書データをデジタルに利用可能にするための装置、方法及びそのためのプログラム
US11121864B1 (en) 2020-03-13 2021-09-14 International Business Machines Corporation Secure private key distribution between endpoint instances
CN111507719B (zh) * 2020-04-22 2023-04-28 北京众享比特科技有限公司 一种中心化方式动态更新联盟链验证节点的方法和系统
CN111555870B (zh) * 2020-04-29 2023-01-17 支付宝实验室(新加坡)有限公司 一种密钥运算方法及装置
DE102020205993B3 (de) * 2020-05-13 2021-09-16 Volkswagen Aktiengesellschaft Konzept zum Austausch von kryptographischen Schlüsselinformationen
CN113691570A (zh) * 2020-05-18 2021-11-23 山东浪潮质量链科技有限公司 一种基于多层级区块链的跨组织交流方法、设备及介质
KR20210142983A (ko) * 2020-05-19 2021-11-26 삼성에스디에스 주식회사 오프-체인 데이터 공유 시스템 및 그 방법
CN113742766A (zh) * 2020-05-27 2021-12-03 北京北信源软件股份有限公司 一种基于可信硬件的区块链系统和数据存储方法
CN111401903B (zh) * 2020-06-03 2020-09-11 腾讯科技(深圳)有限公司 区块链消息处理方法、装置、计算机以及可读存储介质
CN111914230B (zh) * 2020-07-17 2023-06-23 中国联合网络通信集团有限公司 基于区块链的身份验证方法、系统、终端设备及存储介质
CN112000632B (zh) * 2020-07-31 2024-05-14 天翼电子商务有限公司 密文的分享方法、介质、分享客户端及系统
JP6935662B1 (ja) * 2020-08-19 2021-09-15 株式会社chaintope 記録が変更されていないことを証明するシステム
CN112153040B (zh) * 2020-09-21 2021-12-21 中国电子科技网络信息安全有限公司 一种区块链系统应用智能合约安装部署管理方法
CN111934990B (zh) 2020-09-25 2021-02-09 支付宝(杭州)信息技术有限公司 消息传输方法及装置
CN113079082B (zh) 2020-09-25 2022-02-18 支付宝(杭州)信息技术有限公司 消息传输方法及装置
CN111934999B (zh) 2020-09-25 2021-01-22 支付宝(杭州)信息技术有限公司 消息传输方法及装置
CN111935000B (zh) 2020-09-25 2021-01-08 支付宝(杭州)信息技术有限公司 消息传输方法及装置
CN111935314B (zh) * 2020-09-25 2021-01-12 支付宝(杭州)信息技术有限公司 区块链系统、消息传输方法及装置
CN111934997B (zh) 2020-09-25 2021-01-12 支付宝(杭州)信息技术有限公司 消息传输方法及装置
CN111934996B (zh) 2020-09-25 2021-01-12 支付宝(杭州)信息技术有限公司 消息传输方法及装置
CN112968967B (zh) 2020-09-25 2023-05-19 支付宝(杭州)信息技术有限公司 区块同步方法及装置
US11615074B2 (en) 2020-10-01 2023-03-28 Bank Of America Corporation System and methods for intelligent path selection of enhanced distributed processors
CN114422159B (zh) * 2020-10-13 2024-08-20 北京金山云网络技术有限公司 一种基于区块链的数据处理方法及装置
CN112380549A (zh) * 2020-11-13 2021-02-19 国网福建省电力有限公司经济技术研究院 一种基于区块链的电网工程项目投资统计数据管理方法
CN112532733B (zh) * 2020-12-02 2024-02-02 东软集团股份有限公司 智能合约调用外部数据的方法、装置、存储介质及电子设备
CN112835974B (zh) * 2021-01-07 2022-06-17 杭州链城数字科技有限公司 一种链外数据可信获取与存证方法及装置
CN113079014A (zh) * 2021-03-08 2021-07-06 朔州市驭通智能家居科技有限公司 一种基于区块链技术的智能家居平台
JP7478440B2 (ja) 2021-03-25 2024-05-07 国立研究開発法人産業技術総合研究所 情報処理方法及び情報処理システム
US11811865B2 (en) 2021-04-08 2023-11-07 International Business Machines Corporation Blockchain declarative descriptor for cross-network communication
CN113591098B (zh) * 2021-06-11 2024-03-26 浙江大学 一种基于sgx的远程安全异构计算方法和系统
CN113393225B (zh) * 2021-06-30 2022-10-28 杭州链网科技有限公司 数字货币加密支付方法及系统
CN113726733B (zh) * 2021-07-19 2022-07-22 东南大学 一种基于可信执行环境的加密智能合约隐私保护方法
TWI788989B (zh) * 2021-09-01 2023-01-01 中華電信股份有限公司 一種基於區塊鏈的行動支付整合系統、方法及其電腦可讀媒介
WO2023049080A1 (en) * 2021-09-24 2023-03-30 The Ethical Identity Company System and method for operating a secure database
CN113852469B (zh) * 2021-09-24 2024-03-22 成都质数斯达克科技有限公司 区块链节点间数据传输方法、装置、设备及可读存储介质
CN113923044B (zh) * 2021-10-29 2023-10-03 博雅正链(北京)科技有限公司 一种基于可信执行环境的跨链系统及方法
CN114142995B (zh) * 2021-11-05 2023-08-22 支付宝(杭州)信息技术有限公司 面向区块链中继通信网络的密钥安全分发方法及装置
CN114143038A (zh) * 2021-11-05 2022-03-04 支付宝(杭州)信息技术有限公司 面向区块链中继通信网络的密钥安全分发方法及装置
CN114358764A (zh) * 2021-11-15 2022-04-15 深圳众联数字科技有限公司 基于区块链中智能合约的隐私计算方法及相关设备
CN115174126B (zh) * 2022-09-08 2022-12-09 山东省计算中心(国家超级计算济南中心) 基于区块链和sgx的外包数据密文搜索方法及系统
CN115913581B (zh) * 2023-02-27 2023-05-16 湖南半岛医疗科技有限公司 一种医疗数据管理方法及系统
CN116405327B (zh) * 2023-06-08 2023-08-22 天津市津能工程管理有限公司 一种数据处理方法、装置、电子设备和存储介质
CN116886444B (zh) * 2023-09-05 2023-12-05 腾讯科技(深圳)有限公司 跨链数据处理方法、装置、计算机、存储介质及程序产品

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
CN102982257B (zh) 2006-05-05 2016-06-22 交互数字技术公司 在re和te间执行平台完整性和drm软件完整性检查的方法
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 松下电器产业株式会社 跨网域信息通信的认证方法、系统及其装置
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
EP2594035A4 (en) * 2010-07-13 2016-09-07 Verisign Inc SYSTEM AND METHOD FOR ZONE SIGNATURE AND KEY MANAGEMENT IN DNS
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
EP3297206B1 (en) 2015-05-08 2020-04-22 Panasonic Intellectual Property Management Co., Ltd. Authentication method, authentication system, and controller
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
US11126976B2 (en) 2016-02-23 2021-09-21 nChain Holdings Limited Method and system for efficient transfer of cryptocurrency associated with a payroll on a blockchain that leads to an automated payroll method and system based on smart contracts
EP3420669B1 (en) * 2016-02-23 2021-03-24 Nchain Holdings Limited Cryptographic method and system for secure extraction of data from a blockchain
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
US11829998B2 (en) * 2016-06-07 2023-11-28 Cornell University Authenticated data feed for blockchains
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 华为技术有限公司 一种网络认证方法、中转节点及相关系统
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
CN109643285B (zh) 2016-09-15 2023-12-08 美商纳兹控股有限责任公司 加密的用户数据传输及储存
CN107079037B (zh) 2016-09-18 2018-10-23 深圳前海达闼云端智能科技有限公司 基于区块链的身份认证方法、装置、节点及系统
WO2018058105A1 (en) * 2016-09-26 2018-03-29 Shapeshift Ag System and method of managing trustless asset portfolios
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
US20180254898A1 (en) * 2017-03-06 2018-09-06 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
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
JP2020522796A (ja) 2017-06-01 2020-07-30 シュヴェイ, インク. ディー/ビー/エー アクソーニSCHVEY, INC. d/b/a AXONI 安全なアクセス制限を管理する分散型のプライベートにサブスペース化されたブロックチェーン・データ構造
US11055703B2 (en) 2017-06-19 2021-07-06 Hitachi, Ltd. Smart contract lifecycle management
CN107566337B (zh) 2017-07-26 2019-08-09 阿里巴巴集团控股有限公司 一种区块链节点间的通信方法及装置
CN107592293A (zh) 2017-07-26 2018-01-16 阿里巴巴集团控股有限公司 区块链节点间通讯方法、数字证书管理方法、装置和电子设备
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
US10541804B2 (en) 2017-08-18 2020-01-21 Intel Corporation Techniques for key provisioning in a trusted execution environment
US10554634B2 (en) 2017-08-18 2020-02-04 Intel Corporation Techniques for shared private data objects 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
US20190116038A1 (en) * 2017-10-12 2019-04-18 Rivetz Corp. Attestation With Embedded 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
EP3718069B1 (en) 2017-11-30 2024-04-17 Visa International Service Association Blockchain system for confidential and anonymous smart contracts
CN108171083B (zh) 2017-12-18 2020-02-07 深圳前海微众银行股份有限公司 区块链可信数据管理方法、系统及计算机可读存储介质
CN108073829B (zh) 2017-12-29 2024-10-15 巍乾全球技术有限责任公司 用于记录对象的运输数据的方法、介质、物联网设备、区块链平台和物联网系统
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
AU2018347199B2 (en) 2018-12-13 2021-07-01 Advanced New Technologies Co., Ltd. Off-chain smart contract service based on trusted execution environment
US11720913B2 (en) 2018-12-18 2023-08-08 Rokfin, Inc. Cryptographic-token minting scheduler
PL3542494T3 (pl) 2018-12-29 2021-08-23 Advanced New Technologies Co., Ltd. System i sposób realizacji umowy wewnętrznej w łańcuchu bloków
WO2019101227A2 (en) * 2019-02-28 2019-05-31 Alibaba Group Holding Limited System and method for implementing blockchain-based digital certificates
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
CN111741035B (zh) 2020-08-28 2020-11-24 支付宝(杭州)信息技术有限公司 电子合同的签署方法、装置及设备

Also Published As

Publication number Publication date
SG11201908983WA (en) 2019-10-30
AU2019204725B2 (en) 2020-11-26
TWI707245B (zh) 2020-10-11
CA3058244A1 (en) 2019-06-27
US10757084B1 (en) 2020-08-25
JP2020527298A (ja) 2020-09-03
US20200366659A1 (en) 2020-11-19
WO2019120325A3 (en) 2020-01-23
EP3910907B1 (en) 2023-08-02
AU2019204725A1 (en) 2019-06-27
CN110999255A (zh) 2020-04-10
TW202040398A (zh) 2020-11-01
CN110999255B (zh) 2021-12-21
KR102274294B1 (ko) 2021-07-08
WO2019120325A2 (en) 2019-06-27
KR20200116013A (ko) 2020-10-08
US11405372B2 (en) 2022-08-02
EP3910907A1 (en) 2021-11-17
EP3610624B1 (en) 2021-07-07
CA3058244C (en) 2021-04-27
EP3610624A4 (en) 2020-06-17
EP3610624A2 (en) 2020-02-19
US20210377235A1 (en) 2021-12-02
US11095629B2 (en) 2021-08-17

Similar Documents

Publication Publication Date Title
JP6865850B2 (ja) 高度に利用可能な信頼できる実行環境を使用してブロックチェーンネットワークに対するアクセスデータを取得すること
US11323271B2 (en) Retrieving public data for blockchain networks using highly available trusted execution environments
KR102392420B1 (ko) 다중키 쌍 시그너처를 사용한 프로그램 실행 및 데이터 증명 체계
WO2019179541A2 (en) Improving integrity of communications between blockchain networks and external data sources
AU2019204708A1 (en) Retrieving public data for blockchain networks using highly available trusted execution environments

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201030

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210406

R150 Certificate of patent or registration of utility model

Ref document number: 6865850

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250