JP2020521343A - ブロックチェーンネットワーク内で使用するためのフィールドプログラマブルゲートアレイベースの信頼できる実行環境 - Google Patents

ブロックチェーンネットワーク内で使用するためのフィールドプログラマブルゲートアレイベースの信頼できる実行環境 Download PDF

Info

Publication number
JP2020521343A
JP2020521343A JP2019553842A JP2019553842A JP2020521343A JP 2020521343 A JP2020521343 A JP 2020521343A JP 2019553842 A JP2019553842 A JP 2019553842A JP 2019553842 A JP2019553842 A JP 2019553842A JP 2020521343 A JP2020521343 A JP 2020521343A
Authority
JP
Japan
Prior art keywords
fpga
key
blockchain
random number
bitstream
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
JP2019553842A
Other languages
English (en)
Other versions
JP6840264B2 (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 JP2020521343A publication Critical patent/JP2020521343A/ja
Application granted granted Critical
Publication of JP6840264B2 publication Critical patent/JP6840264B2/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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/64Protecting data integrity, e.g. using checksums, certificates or 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/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
    • G06F21/72Protecting 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 in cryptographic circuits
    • 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
    • G06F21/76Protecting 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 in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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/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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

本明細書で開示されるのは、ブロックチェーンネットワーク内で使用するためのフィールドプログラマブルゲートアレイ(FPGA)ベースの信頼できる実行環境(TEE)を構成するための、コンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む方法、システム、および装置である。これらの方法のうちの1つは、デバイス識別子(ID)、第1の乱数、および第1の暗号鍵をフィールドプログラマブルゲートアレイ(FPGA)デバイスに記憶することと、暗号化されたビットストリームをFPGAデバイスに送信することであって、暗号化されたビットストリームは、第1の鍵によって、第2の乱数を含む暗号解読されたビットストリームに暗号解読されることが可能である、送信することと、暗号化されたメッセージをFPGAデバイスから受信することと、第3の鍵を使用してFPGAデバイスからの暗号化されたメッセージを暗号解読し、暗号解読されたメッセージを生成することと、暗号化されたメッセージを暗号解読したことに応答して、暗号解読されたメッセージ内の第3の乱数を決定することと、第3の乱数を使用して鍵を暗号化することと、鍵をFPGAデバイスに送信することとを含む。

Description

本明細書は、ブロックチェーンコントラクト仮想マシンを実行するためのフィールドプログラマブルゲートアレイ(FPGA)ベースの信頼できる実行環境(TEE)を構成することに関する。
コンセンサスネットワーク、および/またはブロックチェーンネットワークと称することもできる、分散型台帳システム(DLS)は、参加エンティティが安全かつ改竄不能にデータを記憶することを可能にする。DLSは、いかなる特定のユースケースを参照することなく、ブロックチェーンネットワークと一般に称される。ブロックチェーンネットワークのタイプの例は、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、およびコンソーシアム型ブロックチェーンネットワークを含むことができる。コンソーシアム型ブロックチェーンネットワークが、コンセンサスプロセスを制御する、エンティティのセレクトグループに対して提供され、アクセス制御層を含む。
ブロックチェーンネットワーク内のノードは、ブロックチェーン関係のタスクを実行するために、1つまたは複数のプログラム、たとえばブロックチェーン仮想マシンを稼動させる。ブロックチェーン関係のタスクの例は、口座残高を照会すること、スマートコントラクトをデプロイすること、新規ブロックチェーントランザクションを検証することなどを含む。
フィールドプログラマブルゲートアレイ(FPGA)は、異なる論理機能を実行するように構成されることが可能である集積回路である。FPGAは、プログラム可能な論理ブロックと、異なる構成において論理ブロックを配線するために使用することができる相互接続部とのアレイを収容する。FPGAビットストリームは、FPGAに対するプログラミング情報を収容するファイルである。
いくつかの現代的なプロセッサは、信頼できる実行環境(TEE)機能性を含む。TEEは、プロセッサ上で実行しているソフトウェアコードを不正修正から保護する安全なハードウェア環境である。TEEは、外部プロセス(たとえば、オペレーションシステム、外部アクターなど)が任意のデータまたはエンクレーブの内側で実行しているソフトウェアコードを改変することを防ぐための隔離されたエンクレーブを提供する。TEEはまた、一般的にプロセッサ上で実行しているソフトウェアコード、またはいくつかの場合において、実行ソフトウェアに関連付けられたデータが修正されていないことを検証するためのメカニズムを備える。TEE実装形態の一例は、IntelのCPUベースのSGX(登録商標)技術であり、これはIntelによって運営されている中央集中信頼当局に頼った技術である。
デベロッパーが外部エンティティの関与なく自らの信頼メカニズムを実装することが望ましいであろう。
本明細書では、ブロックチェーンノード上のデータおよびコードのセキュリティを強化するための技術を説明する。これらの技術は、一般的にブロックチェーンノード上でブロックチェーン関係のプログラムを稼動させるようにFPGAベースのTEEを構成することを伴う。
本明細書ではまた、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行されたときに1つまたは複数のプロセッサに本明細書で提供される方法の実装形態による動作を実行させる命令が記憶された、1つまたは複数の非一時的コンピュータ可読記憶媒体も提供する。
本明細書では、本明細書において提供される方法を実装するためのシステムをさらに提供する。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されたときに1つまたは複数のプロセッサに本明細書で提供される方法の実装形態による動作を実行させる命令が記憶された1つまたは複数のプロセッサに結合されるコンピュータ可読記憶媒体とを備える。
本明細書による方法は、本明細書において説明される態様および特徴の任意の組合せを含むことが可能であることが理解される。すなわち、本明細書による方法は、本明細書において具体的に説明される態様および特徴の組合せに限定されないが、提供される態様および特徴の任意の組合せも含む。
本明細書の1つまたは複数の実装形態の詳細は、添付図面および以下の説明で述べられる。本明細書の他の特徴および利点は、説明および図面、さらに請求項から明白になるであろう。
本明細書の実装形態を実行するために使用できる環境の一例を示す図である。 本明細書の実装形態によるアーキテクチャの一例を示す図である。 本明細書の実装形態によるFPGAベースのTEEを有するブロックチェーンノードの一例を示す図である。 本明細書の実装形態によるFPGAベースのTEEのセットアップの一例を示す図である。 FPGAベースのTEEを実装するためのプロセス500の一例の流れ図である。 本明細書の実施形態による装置600のモジュールの一例の図である。
様々な図面中の同様の参照記号は同様の要素を示す。
本明細書では、ブロックチェーンノード上のデータおよびコードのセキュリティを強化するための技術を説明する。これらの技術は、一般的にブロックチェーンノード上でブロックチェーン関係のプログラムを稼動させるようにFPGAベースのTEEを構成することを伴う。
本明細書の実施形態に対するさらなる文脈を提示するために、また上で導入されたように、コンセンサスネットワーク(たとえば、ピアツーピアノードからなる)と称されることが可能である分散型台帳システム(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は、エンティティ層202と、ホストサービス層(hosted services layer)204と、ブロックチェーンネットワーク層206とを備える。図示された例では、エンティティ層202は、3人の参加者、参加者A、参加者B、および参加者Cを含み、各参加者はそれぞれのトランザクション管理システム208を有する。
図示された例において、ホストサービス層204は、各トランザクション管理システム208に対するインターフェース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者またはそれ以上の参加者の間のトランザクションを表すトランザクションデータを含む。トランザクションは本明細書では非限定的な例で使用されるが、任意の適切なデータがブロックチェーン内に記憶されることが可能である(たとえば、文書、画像、動画、音声)ことが企図される。トランザクションの例は、限定することなく、価値のある何か(たとえば、資産、製品、サービス、通貨)の交換を含むことができる。トランザクションデータは、ブロックチェーン内に改竄不能に記憶される。すなわち、トランザクションデータは変更できない。
ブロックに記憶する前に、トランザクションデータはハッシュ化される。ハッシュ化は、トランザクションデータ(文字列データとして提供される)を固定長ハッシュ値(これも文字列データとして提供される)に変換するプロセスである。ハッシュ値を逆ハッシュ化して、トランザクションデータを取得することはできない。ハッシュ化は、トランザクションデータにわずかな変化があっても結果として、完全に異なるハッシュ値をもたらすことを確実にする。さらに、上で指摘されているように、ハッシュ値は固定長である。すなわち、トランザクションデータのサイズに関係なくハッシュ値の長さは固定される。ハッシュ化は、ハッシュ関数を通じてトランザクションデータを処理してハッシュ値を生成することを含む。ハッシュ関数の一例は、限定することなく、セキュアハッシュアルゴリズム(SHA)-256を含み、これは256ビットハッシュ値を出力する。
複数のトランザクションのトランザクションデータがハッシュ化され、1つのブロックに記憶される。たとえば、2つのトランザクションのハッシュ値が提供され、それら自体がハッシュ化され別のハッシュを提供する。このプロセスは、1つのブロックに記憶されるべきすべてのトランザクションについて、単一のハッシュ値が提供されるまで繰り返される。このハッシュ値は、マークルルートハッシュと称され、そのブロックのヘッダに記憶される。それらのトランザクションのうちのどれかに変化が生じると結果として、そのハッシュ値が変化し、最終的にマークルルートハッシュが変化することになる。
ブロックは、コンセンサスプロトコルを通じてブロックチェーンに追加される。ブロックチェーンネットワーク内の複数のノードがコンセンサスプロトコルに参加し、ブロックをブロックチェーンに追加させる作業を遂行する。そのようなノードは、コンセンサスノードと称される。上で導入された、PBFTは、コンセンサスプロトコルの非限定的な例として使用される。コンセンサスノードはコンセンサスプロトコルを実行してトランザクションをブロックチェーンに追加し、ブロックチェーンネットワークの全体の状態を更新する。
さらに詳しく言うと、コンセンサスノードは、ブロックヘッダを生成し、ブロック内のトランザクションのすべてをハッシュ化し、ハッシュ値をペアに組み合わせてさらなるハッシュ値を生成し、これを、ブロック内のすべてのトランザクションに対して単一のハッシュ値が提供されるまで続ける(マークルルートハッシュ)。このハッシュは、ブロックヘッダに追加される。コンセンサスノードはまた、ブロックチェーン内の最新ブロック(すなわち、ブロックチェーンに追加された最後のブロック)のハッシュ値を決定する。コンセンサスノードは、ノンス値、およびタイムスタンプもブロックヘッダに追加する。
一般に、PBFTは、ビザンチン障害に耐える実用的ビザンチンステートマシン複製を提供する(たとえば、正常に機能していないノード、悪意のあるノード)。これは、PBFTにおいて、その障害が発生することを仮定する(たとえば、独立したノード障害の存在、および/またはコンセンサスノードによって送信される操作されたメッセージの存在を仮定する)ことによって達成される。PBFTにおいて、コンセンサスノードは、プライマリコンセンサスノード、およびバックアップコンセンサスノードを含む順序で提供される。プライマリコンセンサスノードは、定期的に変更される。トランザクションは、ブロックチェーンネットワークのワールドステートに関して合意に達したブロックチェーンネットワーク内のすべてのコンセンサスノードによってブロックチェーンに追加される。このプロセスにおいて、コンセンサスノードの間でメッセージが伝送され、各コンセンサスノードは、指定されたピアノードからメッセージが受信されたことを証明し、そのメッセージが伝送中に修正されなかったことを検証する。
PBFTにおいて、コンセンサスプロトコルは、同じ状態から始まるすべてのコンセンサスノードとともに複数のフェーズで提供される。まず、クライアントがリクエストをプライマリコンセンサスノードに送信して、サービスオペレーションを呼び出す(たとえば、ブロックチェーンネットワーク内でトランザクションを実行する)。リクエストを受信したことに応答して、プライマリコンセンサスノードは、そのリクエストをバックアップコンセンサスノードにマルチキャストする。バックアップコンセンサスノードは、そのリクエストを実行し、各々返信をクライアントに送信する。クライアントは、閾値個数のリプライが受信されるまで待機する。いくつかの例において、クライアントは、f+1個のリプライが受信されるのを待つが、fはブロックチェーンネットワーク内で耐えることができる障害のあるコンセンサスノードの最大数である。最終的な結果として、十分な数のコンセンサスノードがあればブロックチェーンに追加されるべき記録の順序に関して合意に達し、記録は受け入れられるか、または拒否されるかのいずれかである。
[この、および次の2つの段落は一般的な暗号化の説明であり、本発明の詳細に基づき保持するか、強化するか、または取り除く]。いくつかのブロックチェーンネットワークにおいて、トランザクションのプライバシーを維持するために暗号方式が実装される。たとえば、2つのノードがトランザクションを秘密に保ち、ブロックチェーンネットワーク内の他のノードがトランザクションの詳細を認識できないようにしたい場合、それらのノードはトランザクションデータを暗号化することができる。暗号方式の一例は、限定はしないが、対称暗号化、および非対称暗号化を含む。対称暗号化は、暗号化(平文から暗号文を生成すること)と暗号解読(暗号文から平文を生成すること)の両方に単一の鍵を使用する暗号化プロセスを指す。対称暗号化において、同じ鍵は複数のノードに利用可能であり、したがって各ノードはトランザクションデータを暗号化/暗号解読することができる。
非対称暗号化は、各々秘密鍵と公開鍵とを含む鍵のペアを使用し、秘密鍵はそれぞれのノードにのみ知られており、公開鍵はブロックチェーンネットワーク内のどれかまたはすべての他のノードに知られている。ノードは別のノードの公開鍵を使用してデータを暗号化することができ、暗号化されたデータは他のノードの秘密鍵を使用して暗号解読されることが可能である。たとえば、再び図2を参照すると、参加者Aは参加者Bの公開鍵を使用してデータを暗号化し、暗号化済みデータを参加者Bに送信することができる。参加者Bはその秘密鍵を使用して暗号化済みデータ(暗号文)を暗号解読し、元のデータ(平文)を抽出することができる。ノードの公開鍵で暗号化されたメッセージは、ノードの秘密鍵を使用してのみ暗号解読されることが可能である。
非対称暗号化は、電子署名を提供するために使用され、これはトランザクションに関わっている参加者がトランザクションに関わっている他の参加者、さらにはトランザクションの妥当性を確認することを可能にする。たとえば、一方のノードがメッセージに電子署名し、他方のノードが、参加者Aの電子署名に基づきそのメッセージがノードによって送信されたことを確認することができる。電子署名は、メッセージが伝送中に改竄されないことを確実にするためにも使用されることが可能である。たとえば、再び図2を参照すると、参加者Aはメッセージを参加者Bに送信しようとしている。参加者Aはメッセージのハッシュを生成し、次いでその秘密鍵を使用して、ハッシュを暗号化し、電子署名を暗号化済みハッシュとして提供する。参加者Aは電子署名をメッセージに付加し、そのメッセージを電子署名とともに参加者Bに送信する。参加者Bは、参加者Aの公開鍵を使用して電子署名を暗号解読し、ハッシュを抽出する。参加者Bは、メッセージをハッシュ化し、ハッシュ同士を比較する。ハッシュが同じであれば、参加者Bは、そのメッセージが本当に参加者Aから来たものであり、改竄されていないことを確認することができる。
図3は、本明細書の実装形態によるFPGAベースの信頼できる実行環境(TEE)を有するブロックチェーンノード300の一例を示す。ブロックチェーンノード300は、ブロックチェーンネットワーク、たとえば図2のブロックチェーンネットワーク212の複数のノードのうちの1つである。いくつかの場合において、ブロックチェーンノード300は、ブロックチェーン情報を記憶し、スマートコントラクトなどのブロックチェーン関係のタスクを実行することができる。
いくつかの実装形態において、ブロックチェーンノード300は、ペリフェラルコンポーネントインターコネクトエクスプレス(PCI-e)デバイス303に通信可能に結合されるプラットフォーム301を含む。プラットフォーム301は、一般コンピューティングタスクを実行することができ、DRAM301a、CPU301b、およびハードドライブ301cなどのコンピュータハードウェアを備える。一例において、プラットフォーム301は、サーバ、パーソナルコンピュータ、タブレットコンピュータなどであることが可能である。
いくつかの実装形態において、データおよびコードのセキュリティを強化するために、ブロックチェーンノード300は、TEE内でブロックチェーン関係のタスクを実行する。結果として、不正なプログラムおよびデバイス、たとえばプラットフォーム301のオペレーションシステムは、ブロックチェーンノード300上のブロックチェーン関係の情報、さらにはTEE内で実行しているソフトウェアコードにアクセスし、改変することを禁止される。
いくつかの実装形態において、FPGAベースのTEEをブロックチェーンノード300上に実装するために、プラットフォーム301は、PCI-eデバイス303に通信可能に結合される。PCI-eデバイス303は、TEEを実装するために必要なFPGA304および追加のハードウェアリソース306を含む。FPGA304は、特定の論理機能を実行するように構成されることが可能であるプログラム可能集積回路である。FPGA304は、プログラム可能領域319と、eFUSE320と、ASIC領域322とを備える。プログラム可能領域319は、複雑な組合せ機能を実行するように配線して繋ぎ合わせることができるプログラム可能ブロックのアレイを備える。FPGA304は、FPGAビットストリームをプログラム可能領域319にロードすることによってプログラムすることができる。たとえば、FPGAビットストリームは、プログラム可能領域319内にTEEを作成するための命令を含むことができる。eFUSE320は、ヒューズリンクのアレイを含むワンタイムプログラム可能領域であり、ビットを1つ記憶するように各ヒューズリンクを焼くことができる。結果として、プログラム可能領域319と異なり、eFUSE320は、いったん書き込まれると再度プログラムすることができない。たとえば、eFUSE320は、固有デバイスIDなどのFPGA304に固有の情報を記憶することができる。ASIC領域322は、FPGAビットストリームでは再プログラム可能でない固定論理領域である。ASIC領域322は、FPGA304の機能をサポートするプログラムを記憶することができる。一例において、ASIC領域322は、新規にロードされたFPGAビットストリームを認証するビットストリーム認証モジュール324を記憶することができる。
いくつかの実装形態において、FPGA304は、PCI-eデバイス上の追加のハードウェアリソース306に結合される。たとえば、FPGA304は、トラステッドプラットフォームモジュール(TPM)332、フラッシュ334、およびDRAM336とインターフェースすることができる。
いくつかの実装形態において、TEEの「実行」態様を提供するために、FPGA304は、少なくともK-V(鍵値ペア)テーブル319a、クエリサービス319b、およびブロックチェーン仮想マシン319cを稼動させるようにプログラムされる。K-Vテーブル319aは、ブロックチェーン情報をローカルのFPGA304上に記憶するキャッシュである。クエリサービス319bは、ブロックチェーンにサブミットされるクエリに答えることを受け持つプログラムである。ブロックチェーンクエリの例は、過去のトランザクション、口座残高などのクエリを行うことを含む。ブロックチェーン仮想マシン319cは、ブロックチェーンノード300上でブロックチェーン関係のタスクを実行することを受け持つプログラムである。たとえば、ブロックチェーン仮想マシン319cは、ブロックチェーンネットワーク上にデプロイされるスマートコントラクトを実行することができる。
いくつかの実装形態において、TEEの「信頼できる」態様を提供するために、FPGA304は、少なくともメモリ暗号化サービス319d、鍵サービス319e、およびアテステーションサービス319fを稼動させるようにプログラムされる。メモリ暗号化サービス319dは、FPGA304上のクリティカル情報を符号化する。鍵サービス319eは、秘密鍵を管理し、秘密鍵を使用してブロックチェーンと通信することを受け持つ。アテステーションサービス319fは、FPGA304がリモートデバイスまたはユーザに対してFPGA304が信頼できることを、たとえばビットストリーム測定レポートを提供することによって、証明することを可能にする。FPGA304をTEEとしてプログラムするためのステップおよび方法は、図4および以下の関係する説明に関して説明される。
図4は、本明細書の実装形態によるFPGAベースのTEEセットアップ400の一例を示す。TEEセットアップ400において、セットアップサーバ402はFPGA304と情報を交換してFPGAベースのTEEを作成する。TEEセットアップ400の目的は2つあり、1つは(1)セットアップサーバ402から暗号化されたビットストリーム408aを復号し、認証し、インストールするようにプログラムされること、もう1つは(2)FPGA304との認証を行い、デプロイされるべき秘密鍵(404a)をFPGA304に送信するようにプログラムされることである。デプロイされた秘密鍵404bを受信した後、FPGA304の鍵サービス319e(図3)は、それらの鍵を管理し、それらを使用して外部プロセスおよびデバイスと通信する。不正プロセスおよびデバイス、たとえば適切な鍵情報を持たないものは、FPGA304と情報を交換することを妨げられる。プログラム可能領域319は、ブロックチェーン関係のタスクを実行するために、1つまたは複数のプログラム、たとえば図3のプログラム319a〜319cも含む。これらのプログラムは、TEEの「実行」態様を形成する。
いくつかの実装形態において、TEEセットアップ400の開始時に、セットアップサーバ402は、FPGA304をプログラムするのに必要なすべての情報をTEEに記憶する。たとえば、セットアップサーバ402は、デバイスID410a、デバイス秘密鍵エントロピー412a、およびビットストリーム認証鍵414aを含むFPGA304に対するデバイス情報を記憶することができる。デバイスID410aは、FPGA304を一意的に識別する文字列であり、デバイス秘密鍵エントロピー412aはFPGA304に対するランダムまたは疑似ランダム生成文字列であり、ビットストリーム認証鍵414aは暗号化されたビットストリーム408aを認証するための文字列である。ブロックチェーンネットワーク内の異なるFPGAデバイスは、デバイス情報の異なるセットを有する。セットアップサーバ402は、デバイス情報の集合体を鍵値テーブルなどの任意の好適なデータ構造体に記憶することができる。
セットアップサーバ402は、デバイス情報をeFUSE320内にプログラムする(401)。たとえば、デバイス情報は、JTAG規格を使用してeFUSE320に書き込むことができる。結果として、eFUSE320は、対応するデバイスID410b、デバイス秘密鍵エントロピー412b、およびビットストリーム認証鍵414bを記憶する。eFUSE320はワンタイムプログラム可能であるだけなので、FPGA304内のデバイス情報は改変できない。
セットアップサーバ402は、暗号化されたビットストリーム408aをFPGA304に送信することを行わせる。暗号化されたビットストリーム408aは、TEE機能を実装するようにプログラム可能領域319を構成するように設計されたファイルである。暗号化されたビットストリーム408aは、高度暗号化標準(AES)などの任意の好適な暗号化方式を使用して符号化できる。暗号化されたビットストリーム408aは、ブロックチェーンネットワーク内の異なるFPGAデバイスにデプロイすることができる。
暗号化されたビットストリーム408aを受信した後、FPGA304は、eFUSE320に記憶されたビットストリーム認証鍵414bを使用して暗号化されたビットストリーム408aを認証する(403)。たとえば、FPGA304は、認証を実行するためにASIC領域322に記憶された専用ビットストリーム認証モジュール324を使用するようにプログラムすることができる。暗号化されたビットストリーム408aがFPGA304に対する正しいビットストリームである場合、認証は成功する。結果として、FPGA304は暗号化されたビットストリーム408aを復号し、復号されたビットストリームをプログラム可能領域319にロードする(405)。
いくつかの実装形態において、復号されたビットストリームは、鍵生成モジュール418と、ルート秘密鍵エントロピー416とを含む。ルート秘密鍵エントロピー416は暗号化されたビットストリーム408aに固有のランダムまたは疑似ランダム生成文字列であり、鍵生成モジュール418はルート秘密鍵を生成するように設計されたプログラムである。
鍵生成モジュール418は、入力として、ルート秘密鍵エントロピー416、デバイスID410b、およびデバイス秘密鍵エントロピー412bを取り、生成されたルート秘密鍵406bを出力する。異なるFPGAデバイスは同じルート秘密鍵エントロピーを有するけれども、生成されたルート秘密鍵406bは、デバイスID410bおよびデバイス秘密鍵エントロピー412bがFPGA304に固有であるのでFPGA304に固有である。このようにして、FPGAビットストリームは、コミュニティによってオープンソース化されかつ監査されてもよく、それでもFPGA304上でTEEを作成するために使用できる。
次に、FPGA304は、生成されたルート秘密鍵406bでメッセージを暗号化し、メッセージをセットアップサーバ402に送信する(407)。たとえば、メッセージは、固有のデバイスID410bと乱数との連結であることが可能である。FPGA304は、AESまたはGCMなどの任意の好適な暗号化方式を使用してメッセージを符号化することができる。
暗号化されたメッセージをFPGA304から受信した後、セットアップサーバ402は、メッセージを暗号解読し、生成されたルート秘密鍵406bがルート秘密鍵406aと同一であるかどうかを判定する(407)。そうである場合、セットアップサーバ402は、デプロイされるべき秘密鍵404aを暗号化し、暗号化された鍵をFPGA304に送信する(409)。FPGA304は、デプロイされた秘密鍵404bを受信し、記憶する。デプロイされた秘密鍵404bは、FPGAベースのTEEと外部環境との間で情報を交換することに関わる鍵である。たとえば、デプロイされた秘密鍵404bは、封印解除秘密鍵、署名秘密鍵などを含むことができる。
いくつかの実装形態において、リモートユーザは、TEE環境を検証するアテステーションリクエストを開始する。それに応答して、FPGA304は、ビットストリームアテステーションレポートを準備し、それをデプロイされた秘密鍵404bで暗号化し、それをリモートユーザに送信する。たとえば、FPGA304は、アテステーションサービス319f(図3)を使用してそのリクエストに応答することができる。
図5は、FPGAベースのTEEを実装するためのプロセス500の一例の流れ図である。便宜上、プロセス500は、1つまたは複数の場所に配置され、本明細書に従って適切にプログラムされた、1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、ブロックチェーンノード、たとえば図1のコンピューティングデバイス106は、適切にプログラムされ、プロセス500を実行することができる。
第1のステップとして、サーバは、デバイス識別子(ID)、第1の乱数、および第1の暗号鍵をフィールドプログラマブルゲートアレイ(FPGA)デバイスに記憶する(502)。たとえば、サーバは、情報をeFUSEなどのFPGAデバイスのワンタイムプログラム可能領域内に記憶することができる。FPGAデバイスはサーバに通信可能に結合され、デバイスIDはFPGAデバイスに固有である。
次に、サーバは、暗号化されたビットストリームをFPGAデバイスに送信する(504)。暗号化されたビットストリームは、適切に暗号解読された場合に、事前定義済み機能を実行するようにFPGAデバイスをプログラムする。サーバは、ペリフェラルコンポーネントインターコネクトエクスプレス(PCI-e)レーンなどの1つまたは複数の通信チャネルを介して、暗号化されたビットストリームをFPGAデバイスに送信することができる。
FPGAデバイスは、それに応答して、ビットストリーム認証モジュールと以前受信された第1の暗号鍵とを使用して暗号化されたビットストリームを暗号解読する。正常に暗号解読した後、FPGAデバイスは暗号解読されたビットストリームをロードする。ビットストリームにおける鍵生成モジュールは、(1)デバイスID、(2)第1の乱数、および(3)ビットストリームに含まれる第2の乱数を使用して第2の鍵を生成するようにプログラムされる。
次いで、FPGAデバイスは、第2の鍵を使用してメッセージを暗号化する。たとえば、メッセージは、Advanced Encryption Standard-Galois/Counter Mode(AES-GCM)を使用するデバイスIDと第3の乱数との連結(デバイスID||第3の乱数)の連結であることが可能である。
サーバは、暗号化されたメッセージをFPGAデバイスから受信する(506)。
サーバは、第3の鍵を使用してFPGAデバイスからの暗号化されたメッセージを暗号解読し、暗号解読されたメッセージを生成する(508)。第3の鍵は、サーバ内に事前に記憶され、FPGAデバイスによって生成される第2の鍵と同一であるべきである。
暗号解読が正常に行われたことに応答して、サーバは、暗号解読されたメッセージに含まれる第3の乱数を決定する(510)。サーバは、サーバがすでにデバイスIDを記憶しているので第3の乱数を決定することができる。
サーバは、次に第3の乱数を使用して1つまたは複数の鍵を暗号化する(512)。たとえば、鍵は、アテステーションサービスなどの様々な機能を実行するためにFPGAデバイスによって使用できる。次いで、サーバは、暗号化された鍵をFPGAデバイスに送信する(514)。
図6は、本明細書の実施形態による装置600のモジュールの一例の図である。
装置600は、ブロックチェーンネットワーク内のデータを同期するように構成されているブロックチェーンノードの一実施形態の一例とすることができ、ブロックチェーンネットワークはコンソーシアム型ブロックチェーンネットワークである。装置600は、上で説明される実施形態に対応することができ、装置600は、デバイス識別子(ID)、第1の乱数、および第1の暗号鍵をフィールドプログラマブルゲートアレイ(FPGA)デバイスに記憶する記憶モジュール610と、暗号化されたビットストリームをFPGAデバイスに送信する第1の送信モジュール620であって、暗号化されたビットストリームは、第1の鍵によって、第2の乱数を含む暗号解読されたビットストリームに暗号解読されることが可能である、第1の送信モジュール620と、暗号化されたメッセージをFPGAデバイスから受信する受信モジュール630であって、暗号化されたメッセージは、第2の鍵を使用してFPGAデバイスによって暗号化され、第2の鍵は、デバイスID、第1の乱数、および第2の乱数を使用してFPGAによって生成される、受信モジュール630と、第3の鍵を使用してFPGAデバイスからの暗号化されたメッセージを暗号解読し、暗号解読されたメッセージを生成する暗号解読モジュール640であって、第3の鍵は、サーバに記憶される、暗号解読モジュール640と、暗号解読されたメッセージに埋め込まれた第3の乱数を決定する決定モジュール650と、第3の乱数を使用して1つまたは複数の鍵を暗号化する暗号化モジュール660と、1つまたは複数の鍵をFPGAデバイスに送信する第2の送信モジュール670とを備える。
本明細書において説明される技術は、1つまたは複数の技術的効果を生み出す。たとえば、いくつかの実施形態において、これらの技術は、コンピューティングデバイスがFPGAとの信頼関係を築くことを可能にして、それが信頼できる実行環境(TEE)として働くことを可能にする。いくつかの実施形態において、これらの技術は、この信頼関係がFPGAのメーカーからの認可を必要とすることなく確立されることを可能にする。これは、延いては、セキュリティを向上させることができるが、それは、攻撃者による傍受または改竄の影響を受けやすい場合がある検証時の外部エンティティとのインタラクティブなやり取りをなくすことができるからである。
主題の説明される実施形態は、1つまたは複数の特徴を、単独で、または組み合わせて含むことができる。たとえば、第1の実施形態において、ブロックチェーンネットワーク内で使用するための信頼できる実行環境を構成するためのコンピュータ実装方法は、ブロックチェーンノードによって、デバイス識別子(ID)、第1の乱数、および第1の暗号鍵をブロックチェーンノードに関連付けられたフィールドプログラマブルゲートアレイ(FPGA)デバイスに記憶することと、ブロックチェーンノードによって、暗号化されたビットストリームをFPGAデバイスに送信することであって、暗号化されたビットストリームは、第1の鍵によって、第2の乱数を含む暗号解読されたビットストリームに暗号解読されることが可能である、送信することと、ブロックチェーンノードによって、暗号化されたメッセージをFPGAデバイスから受信することであって、暗号化されたメッセージは、第2の鍵を使用してFPGAデバイスによって暗号化され、第2の鍵は、デバイスID、第1の乱数、および第2の乱数を使用してFPGAによって生成される、受信することと、ブロックチェーンノードによって、第3の鍵を使用してFPGAデバイスからの暗号化されたメッセージを暗号解読し、暗号解読されたメッセージを生成することであって、第3の鍵は、サーバに記憶される、暗号解読することと、第3の鍵を使用して暗号化されたメッセージを暗号解読したことに応答して、ブロックチェーンノードによって、暗号解読されたメッセージに埋め込まれた第3の乱数を決定することと、ブロックチェーンノードによって、第3の乱数を使用して1つまたは複数の鍵を暗号化することと、ブロックチェーンノードによって、1つまたは複数の鍵をFPGAデバイスに送信することとを含む。
前述および他の説明される実施形態は、各々オプションで次の特徴のうちの1つまたは複数を含むことが可能である。
第1の特徴は、次の特徴のうちのどれかと組合せ可能であり、デバイスID、第1の乱数、および第1の鍵がFPGAデバイスのワンタイムプログラム可能領域に記憶されることを規定する。
第2の特徴は、前のまたは次の特徴のうちのどれかと組合せ可能であり、暗号解読されたビットストリームおよび第2の乱数がFPGAデバイスの再プログラム可能領域に記憶されることを規定する。
第3の特徴は、前のまたは次の特徴のうちのどれかと組合せ可能であり、デバイスIDおよび第1の乱数がFPGAデバイスに固有であることを規定する。
第4の特徴は、前のまたは次の特徴のうちのどれかと組合せ可能であり、暗号解読されたメッセージがデバイスIDを含むことを規定する。
第5の特徴は、前のまたは次の特徴のうちのどれかと組合せ可能であり、第3の鍵が第2の鍵と同一であることを規定する。
第6の特徴は、前のまたは次の特徴のうちのどれかと組合せ可能であり、FPGAデバイスが、ビットストリーム認証モジュールおよび第1の鍵を使用して、暗号化されたビットストリームを暗号解読し、認証することを規定する。
主題ならびに本明細書で説明されるアクションおよび動作の実施形態は、本明細書で開示されている構造およびその構造的均等物を含む、デジタル電子回路で、明白に具現化されたコンピュータソフトウェアもしくはファームウェアで、コンピュータハードウェアで、またはこれらのうちの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つもしくは複数のリモートメモリに結合されることが可能である。さらに、コンピュータは、他のデバイス、たとえば数例を挙げると、携帯電話、携帯情報端末(PDA)、携帯オーディオまたはビデオプレーヤー、ゲーム機、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス、たとえばユニバーサルシリアルバス(USB)フラッシュドライブに埋め込まれることが可能である。
コンポーネントは、直接的に、または1つもしくは複数の中間コンポーネントを介してのいずれかで、電気的にもしくは光学的になど、通信可能に接続されることによって互いに「結合され」てもよい。コンポーネントはまた、コンポーネントのうちの一方が他方に一体化される場合に互いに「結合され」てもよい。たとえば、プロセッサに一体化されている記憶コンポーネント(たとえば、L2キャッシュコンポーネント)は、プロセッサに「結合される」。
ユーザとインタラクティブにやり取りするために、本明細書で説明される主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえばLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を送るために使用できる入力デバイス、たとえばキーボードおよびポインティングデバイス、たとえばマウス、トラックボール、もしくはタッチパッドを有するコンピュータ上に実装されることが可能であるか、またはそのようなコンピュータと通信するように構成されることが可能である。他の種類のデバイスも、ユーザとインタラクティブにやり取りするために使用されてもよく、たとえばユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってもよく、ユーザからの入力は、音響、音声、または触覚入力を含む、任意の形態で受信されることが可能である。それに加えて、コンピュータは、文書をユーザによって使用されるデバイスに送信し、そのデバイスから文書を受信することによって、たとえばウェブブラウザからリクエストが受信されたことに応答してウェブページをユーザのデバイス上のウェブブラウザに送信することによって、またはユーザデバイス、たとえばスマートフォンもしくは電子タブレット上で実行しているアプリとインタラクティブにやり取りすることによって、ユーザとインタラクティブにやり取りすることができる。また、コンピュータはテキストメッセージまたは他の形態のメッセージを個人用デバイス、たとえばメッセージングアプリケーションが稼動しているスマートフォンに送信し、それに応えてユーザから応答メッセージを受信することによってユーザとインタラクティブにやり取りすることができる。
本明細書では、システム、装置、およびコンピュータプログラムコンポーネントと関連して「構成される」という言い回しを使用する。1つまたは複数のコンピュータのシステムについて、特定の動作またはアクションを実行するように構成されることは、システムがその上に動作時にそれらの動作またはアクションをシステムに実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしていることを意味する。1つまたは複数のコンピュータプログラムについて、特定の動作またはアクションを実行するように構成されることは1つまたは複数のプログラムがデータ処理装置によって実行されたときにそれらの動作またはアクションを装置に実行させる命令を含むことを意味する。専用論理回路に対して、特定のオペレーションまたはアクションを実行するように構成されることは、回路がオペレーションまたはアクションを実行する電子論理回路を有することを意味する。
本明細書は、多くの実施形態固有の詳細事項を含んでいるが、これらは、請求項それ自体によって定義される、請求内容の範囲に対する制限として解釈すべきではなく、むしろ特定の実施形態に特有のものであることが可能である特徴の説明として解釈すべきである。別の実施形態の文脈において本明細書で説明されるいくつかの特徴も、単一の実施形態において組合せで実現されることが可能である。逆に、単一の実施形態の文脈において説明される様々な特徴は、複数の実施形態において別個に、または任意の好適な部分組合せで実現されてもよい。さらに、特徴は、いくつかの組合せで働くものとして上記で説明され、初めにそのように請求されることさえあるが、請求される組合せからの1つまたは複数の特徴は、場合によってはその組合せから削除され、請求項は、部分組合せ、または部分組合せの変形形態を対象としてもよい。
同様に、動作は特定の順序で図面に示され、請求項において引用されているが、そのような動作は、望ましい結果を達成するために、示される特定の順序でもしくは順番に実行される必要がないことを、またはすべての図示の動作が実行される必要があるとは限らないことを理解されたい。ある状況では、マルチタスキングおよび並列処理が有利である場合がある。さらに、上で説明される実施形態における様々なシステムモジュールおよびコンポーネントの分離は、すべての実施形態においてそのような分離が必要とされるものと理解されるべきではなく、前述のプログラム構成要素およびシステムが概して単一のソフトウェアプロダクトとして一体化されるかまたは複数のソフトウェアプロダクトとしてパッケージ化されてもよいことを理解されたい。
主題の特定の実施形態が説明された。他の実施形態は、次の請求項の範囲内に収まる。たとえば、請求項に記載のアクションは、異なる順序で実行することができ、それでも所望の結果を得ることができる。一例として、添付図面に示されているプロセスは、必ずしも望ましい結果を達成するために、図示された特定の順序、または順番を必要としない。いくつかの場合において、マルチタスキングおよび並列処理が有利であることがある。
106 コンピューティングデバイス
110 ネットワーク
200 アーキテクチャ
202 エンティティ層
204 ホストサービス層
206 ブロックチェーンネットワーク層
208 トランザクション管理システム
210 インターフェース
212 ブロックチェーンネットワーク
214 ノード
216 ブロックチェーン
300 ブロックチェーンノード
301 プラットフォーム
301a DRAM
301b CPU
301c ハードドライブ
303 ペリフェラルコンポーネントインターコネクトエクスプレス(PCI-e)デバイス
304 FPGA
306 ハードウェアリソース
319 プログラム可能領域
319a K-V(鍵値ペア)テーブル
319b クエリサービス
319c ブロックチェーン仮想マシン
319d メモリ暗号化サービス
319e 鍵サービス
319f アテステーションサービス
320 eFUSE
322 ASIC領域
324 ビットストリーム認証モジュール
332 トラステッドプラットフォームモジュール(TPM)
334 フラッシュ
336 DRAM
400 FPGAベースのTEEセットアップ
402 セットアップサーバ
404a デプロイされるべき秘密鍵
404b デプロイされた秘密鍵
406b ルート秘密鍵
408a ビットストリーム
410a デバイスID
410b デバイスID
412a デバイス秘密鍵エントロピー
412b デバイス秘密鍵エントロピー
414a ビットストリーム認証鍵
414b ビットストリーム認証鍵
416 ルート秘密鍵エントロピー
418 鍵生成モジュール
500 プロセス
600 装置
610 記憶モジュール
620 第1の送信モジュール
630 受信モジュール
640 暗号解読モジュール
650 決定モジュール
660 暗号化モジュール
670 第2の送信モジュール

Claims (10)

  1. ブロックチェーンネットワーク内で使用するためのフィールドプログラマブルゲートアレイ(FPGA)ベースの信頼できる実行環境(TEE)を構成するためのコンピュータ実装方法であって、
    前記ブロックチェーンネットワーク内のブロックチェーンノードによって、デバイス識別子(ID)、第1の乱数、および第1の暗号鍵を前記ブロックチェーンノードに関連付けられたFPGAデバイスに記憶するステップと、
    前記ブロックチェーンノードによって、暗号化されたビットストリームを前記FPGAデバイスに送信するステップであって、前記暗号化されたビットストリームは、前記FPGAデバイスによって、前記第1の暗号鍵を使用して第2の乱数を含む暗号解読されたビットストリームに暗号解読されることが可能である、ステップと、
    前記ブロックチェーンノードによって、暗号化されたメッセージを前記FPGAデバイスから受信するステップであって、前記暗号化されたメッセージは、第2の鍵を使用して前記FPGAデバイスによって暗号化され、前記第2の鍵は、前記デバイスID、前記第1の乱数、および前記第2の乱数を使用して前記FPGAによって生成される、ステップと、
    前記ブロックチェーンノードによって、解読されたメッセージを生成するために、第3の鍵を使用して前記FPGAデバイスからの前記暗号化されたメッセージを暗号解読するステップであって、前記第3の鍵は、サーバに事前に記憶される、ステップと
    を含み、
    前記第3の鍵を使用して前記暗号化されたメッセージを暗号解読したことに応答して、
    前記ブロックチェーンノードによって、前記暗号解読されたメッセージに埋め込まれた第3の乱数を決定するステップと、
    前記ブロックチェーンノードによって、前記第3の乱数を使用して1つまたは複数の鍵を暗号化するステップと、
    前記ブロックチェーンノードによって、前記1つまたは複数の鍵を前記FPGAデバイスに送信するステップと
    を含む、方法。
  2. 前記デバイスID、前記第1の乱数、および前記第1の鍵は、前記FPGAデバイスのワンタイムプログラム可能領域に記憶される、請求項1に記載の方法。
  3. 前記暗号解読されたビットストリームおよび前記第2の乱数は前記FPGAデバイスの再プログラム可能領域に記憶される、請求項1に記載の方法。
  4. 前記デバイスIDおよび前記第1の乱数は前記FPGAデバイスに固有である、請求項1に記載の方法。
  5. 前記暗号解読されたメッセージは前記デバイスIDを含む、請求項1に記載の方法。
  6. 前記第3の鍵は前記第2の鍵と同一である、請求項1に記載の方法。
  7. 前記FPGAデバイスは、ビットストリーム認証モジュールおよび前記第1の鍵を使用して、前記暗号化されたビットストリームを暗号解読しかつ認証する、請求項1に記載の方法。
  8. 前記1つまたは複数の鍵を前記FPGAデバイスに送信したことに応答して、前記ブロックチェーンノードによって、前記FPGAデバイスによる実行のためにスマートコントラクト仮想マシンを起動するステップをさらに含む、請求項1に記載の方法。
  9. ブロックチェーンネットワーク内で使用するためのフィールドプログラマブルゲートアレイ(FPGA)ベースの信頼できる実行環境(TEE)を構成するためのシステムであって、
    1つまたは複数のプロセッサと、
    前記1つまたは複数のプロセッサに結合され、請求項1から8のいずれか一項に記載の方法を実行するように前記1つまたは複数のプロセッサによって実行可能である命令が記憶された1つまたは複数のコンピュータ可読メモリと
    を備える、システム。
  10. ブロックチェーンネットワーク内で使用するためのフィールドプログラマブルゲートアレイ(FPGA)ベースの信頼できる実行環境(TEE)を構成するための装置であって、請求項1から8のいずれか一項に記載の前記方法を実行するための複数のモジュールを備える、装置。
JP2019553842A 2019-03-26 2019-03-26 ブロックチェーンネットワーク内で使用するためのフィールドプログラマブルゲートアレイベースの信頼できる実行環境 Active JP6840264B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/079705 WO2019120315A2 (en) 2019-03-26 2019-03-26 Field-programmable gate array based trusted execution environment for use in a blockchain network

Publications (2)

Publication Number Publication Date
JP2020521343A true JP2020521343A (ja) 2020-07-16
JP6840264B2 JP6840264B2 (ja) 2021-03-10

Family

ID=66994225

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019553842A Active JP6840264B2 (ja) 2019-03-26 2019-03-26 ブロックチェーンネットワーク内で使用するためのフィールドプログラマブルゲートアレイベースの信頼できる実行環境

Country Status (10)

Country Link
US (1) US10657293B1 (ja)
EP (1) EP3628087B1 (ja)
JP (1) JP6840264B2 (ja)
KR (1) KR102151904B1 (ja)
CN (2) CN110392889B (ja)
AU (1) AU2019204735B2 (ja)
CA (1) CA3058239C (ja)
SG (1) SG11201909112PA (ja)
TW (1) TWI715338B (ja)
WO (1) WO2019120315A2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110751555B (zh) * 2019-09-25 2021-01-12 支付宝(杭州)信息技术有限公司 基于fpga实现合约调用的方法及装置
CN110716724B (zh) * 2019-09-25 2021-01-08 支付宝(杭州)信息技术有限公司 基于fpga实现隐私区块链的方法及装置
CN110690963B (zh) * 2019-09-25 2021-04-02 支付宝(杭州)信息技术有限公司 基于fpga的密钥协商方法及装置
CN110717203B (zh) * 2019-09-25 2021-04-27 支付宝(杭州)信息技术有限公司 基于fpga实现隐私区块链的方法及装置
CN113157635B (zh) * 2019-09-25 2024-01-05 支付宝(杭州)信息技术有限公司 在fpga上实现合约调用的方法及装置
CN110738567B (zh) * 2019-09-25 2021-02-09 支付宝(杭州)信息技术有限公司 基于fpga的安全智能合约处理器的交易处理方法及装置
CN110750488B (zh) * 2019-09-25 2021-02-19 支付宝(杭州)信息技术有限公司 在fpga中实现外部调用的方法及装置
CN110716728B (zh) * 2019-09-25 2020-11-10 支付宝(杭州)信息技术有限公司 Fpga逻辑的可信更新方法及装置
CN111538782B (zh) * 2020-04-14 2023-08-08 浙江浙燃能源有限公司 基于区块链的能源大数据管理系统
CN111738859B (zh) * 2020-07-08 2021-07-13 支付宝(杭州)信息技术有限公司 区块链一体机及区块链网络
CN111541553B (zh) 2020-07-08 2021-08-24 支付宝(杭州)信息技术有限公司 区块链一体机的可信启动方法及装置
CN112491812B (zh) * 2020-07-08 2022-03-01 支付宝(杭州)信息技术有限公司 区块链一体机的哈希更新方法及装置
CN111741028B (zh) * 2020-08-24 2020-11-24 支付宝(杭州)信息技术有限公司 业务处理方法、装置、设备及系统
US11681832B2 (en) * 2020-10-14 2023-06-20 Infineon Technologies Ag Electronic circuit identification (ID) techniques using both a client-side ID and a supplier-side ID
CN112765270B (zh) * 2020-12-31 2022-06-17 杭州趣链科技有限公司 区块链数据处理方法、装置、计算机设备及介质
US11379125B1 (en) 2021-03-31 2022-07-05 International Business Machines Corporation Trusted field programmable gate array
US20220417045A1 (en) * 2021-06-28 2022-12-29 Medellin Applied Research Concepts, LLC Device for implementing gated array blockchain protection codes for iot devices
CN114978626B (zh) * 2022-05-10 2023-03-10 北京百度网讯科技有限公司 基于区块链的可信计算方法、装置、设备及介质
CN116614317B (zh) * 2023-07-20 2023-09-12 中国标准化研究院 一种基于区块链的贸易数据处理方法及系统

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070288765A1 (en) 1999-12-22 2007-12-13 Kean Thomas A Method and Apparatus for Secure Configuration of a Field Programmable Gate Array
US6904527B1 (en) 2000-03-14 2005-06-07 Xilinx, Inc. Intellectual property protection in a programmable logic device
US8516268B2 (en) * 2010-08-23 2013-08-20 Raytheon Company Secure field-programmable gate array (FPGA) architecture
US8898480B2 (en) * 2012-06-20 2014-11-25 Microsoft Corporation Managing use of a field programmable gate array with reprogammable cryptographic operations
KR101687275B1 (ko) * 2013-03-14 2016-12-16 인텔 코포레이션 공개 클라우드에서의 신뢰 데이터 프로세싱
US20140344581A1 (en) * 2013-05-16 2014-11-20 Cisco Technology, Inc. Secure Upgrades for Field Programmable Devices
US20160379212A1 (en) * 2015-06-26 2016-12-29 Intel Corporation System, apparatus and method for performing cryptographic operations in a trusted execution environment
US11941588B2 (en) * 2015-11-06 2024-03-26 Cable Television Laboratories, Inc. Systems and methods for blockchain virtualization and scalability
EP3520318A4 (en) * 2016-09-29 2020-04-29 Nokia Technologies Oy CONFIDENCE CALCULATION METHOD AND APPARATUS
US10984081B2 (en) * 2016-09-30 2021-04-20 Cable Television Laboratories, Inc. Systems and methods for secure person to device association
WO2018118591A1 (en) * 2016-12-23 2018-06-28 Wal-Mart Stores, Inc. Verifying authenticity of computer readable information using the blockchain
US10382485B2 (en) * 2016-12-23 2019-08-13 Vmware, Inc. Blockchain-assisted public key infrastructure for internet of things applications
WO2018126076A1 (en) * 2016-12-30 2018-07-05 Intel Corporation Data packaging protocols for communications between iot devices
US10897459B2 (en) * 2017-01-26 2021-01-19 Microsoft Technology Licensing, Llc Addressing a trusted execution environment using encryption key
CN107046542B (zh) * 2017-04-24 2020-04-14 杭州云象网络技术有限公司 一种在网络级采用硬件实现共识验证的方法
CN107294709A (zh) * 2017-06-27 2017-10-24 阿里巴巴集团控股有限公司 一种区块链数据处理方法、装置及系统
US10476879B2 (en) * 2017-07-26 2019-11-12 International Business Machines Corporation Blockchain authentication via hard/soft token verification
CN108055125B (zh) * 2017-11-23 2020-06-30 阿里巴巴集团控股有限公司 一种产品信息的加密、解密方法及装置
CN109492419B (zh) * 2018-11-27 2022-07-01 众安信息技术服务有限公司 用于获取区块链中的数据的方法、装置及存储介质

Also Published As

Publication number Publication date
CA3058239A1 (en) 2019-06-27
WO2019120315A2 (en) 2019-06-27
US10657293B1 (en) 2020-05-19
JP6840264B2 (ja) 2021-03-10
EP3628087A4 (en) 2020-06-24
SG11201909112PA (en) 2019-10-30
TWI715338B (zh) 2021-01-01
KR102151904B1 (ko) 2020-09-03
CN110392889A (zh) 2019-10-29
EP3628087A2 (en) 2020-04-01
CA3058239C (en) 2021-01-05
TW202036351A (zh) 2020-10-01
AU2019204735B2 (en) 2020-08-27
CN112231708A (zh) 2021-01-15
EP3628087B1 (en) 2021-09-08
AU2019204735A1 (en) 2019-06-27
WO2019120315A3 (en) 2020-02-20
CN110392889B (zh) 2020-09-01

Similar Documents

Publication Publication Date Title
JP6840264B2 (ja) ブロックチェーンネットワーク内で使用するためのフィールドプログラマブルゲートアレイベースの信頼できる実行環境
JP6869374B2 (ja) トラステッド実行環境のための分散型鍵管理
TWI737240B (zh) 提高區塊鏈網路與外部資料源之間的通信的完整性
TWI707245B (zh) 使用高可用性的可信執行環境檢索區塊鏈網路的存取資料
TWI725655B (zh) 用於在可信執行環境中執行子邏輯代碼的程式執行和資料證明的方法、設備和系統
JP6811339B2 (ja) 高可用な高信頼実行環境を使用したブロックチェーンネットワークのためのパブリックデータの読み出し
KR102227685B1 (ko) 블록 체인 네트워크에서 민감 데이터 요소를 관리하는 방법
JP2020528224A (ja) 信頼できる実行環境におけるスマート契約動作のセキュアな実行
JP6894007B2 (ja) ブロックチェーンネットワークに基づいたデジタルチケットの転送
KR20200113155A (ko) 블록체인 네트워크에서의 데이터 격리

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200527

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200527

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200717

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

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210216

R150 Certificate of patent or registration of utility model

Ref document number: 6840264

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250