JP2020528224A - 信頼できる実行環境におけるスマート契約動作のセキュアな実行 - Google Patents

信頼できる実行環境におけるスマート契約動作のセキュアな実行 Download PDF

Info

Publication number
JP2020528224A
JP2020528224A JP2019559279A JP2019559279A JP2020528224A JP 2020528224 A JP2020528224 A JP 2020528224A JP 2019559279 A JP2019559279 A JP 2019559279A JP 2019559279 A JP2019559279 A JP 2019559279A JP 2020528224 A JP2020528224 A JP 2020528224A
Authority
JP
Japan
Prior art keywords
key
tee
service
private key
blockchain
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.)
Pending
Application number
JP2019559279A
Other languages
English (en)
Other versions
JP2020528224A5 (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 JP2020528224A publication Critical patent/JP2020528224A/ja
Publication of JP2020528224A5 publication Critical patent/JP2020528224A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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)
    • H04L9/0825Key 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) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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)
    • H04L9/083Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • 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
    • 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
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/3297Cryptographic 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 time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本明細書では、信頼できる実行環境(TEE)においてスマート契約動作をセキュアに実行するための、コンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む、方法、システム、および装置が開示される。本方法のうちの1つは、ブロックチェーンネットワークに参加しているブロックチェーンノードによって、ブロックチェーンノードによってホストされたサービスTEEにおいて1つまたは複数のソフトウェア命令を実行するようにとの要求を受信するステップであって、要求が、サービスTEEに関連付けられた公開鍵によって暗号化された、受信するステップと、サービスTEEに関連付けられた第1の秘密鍵を用いて要求を解読するステップであって、第1の秘密鍵が公開鍵とペアにされた、解読するステップと、要求の解読に応答して、実行結果を作成するために1つまたは複数のソフトウェア命令を実行するステップと、暗号化された結果を作成するために、サービスTEEに関連付けられたクライアント暗号化鍵を用いて実行結果を暗号化するステップと、署名された暗号化された結果を作成するために、TEEに関連付けられた第2の秘密鍵を使用して暗号化された結果に署名するステップとを含む。

Description

本明細書は、信頼できる実行環境(trusted execution environment)においてスマート契約動作(smart contract operation)をセキュアに実行することに関する。
コンセンサス(consensus)ネットワークおよび/またはブロックチェーンネットワークと呼ばれることもある分散元帳システム(DLS:distributed ledger system)は、参加エンティティがデータをセキュアに不変に記憶することを可能にする。DLSは、一般に、特定の使用事例に言及することなく、ブロックチェーンネットワークと呼ばれる。ブロックチェーンネットワークのタイプの一例は、コンセンサスプロセスを制御するエンティティの選択グループのために与えられたコンソーシアムブロックチェーンネットワーク(consortium blockchain network)を含むことができ、アクセス制御レイヤを含む。
スマート契約は、ブロックチェーン上で実行するプログラムである。スマート契約は、あらかじめ定義された規則のセットを含んでおり、その規則の下でそのスマート契約の関係者が互いに対話することに合意する。スマート契約のあらかじめ定義された規則が満たされる場合、スマート契約において定義された合意は自動的にエンフォース(enforce)される。スマート契約は、通常、改ざん耐性(tamper resistant)であり、合意またはトランザクションのネゴシエーションまたは実施を容易にし、検証し、エンフォースする。
コンソーシアムブロックチェーンネットワークでは、選択されたグループのノードのみがコンセンサスプロセスを制御するので、攻撃者は、コンセンサスプロセスに影響を及ぼすために、比較的少数のノードの制御権を得る必要がある。コンソーシアムブロックチェーンネットワークにおけるこれらのタイプのセキュリティ問題に対処するための技法が提案されてきたが、より効果的でセキュアなソリューションが有利であろう。
本明細書は、ブロックチェーンノードによって実行される、信頼できる実行環境(TEE)における、要求されたスマート契約動作をセキュアに実行するための技術について説明する。より詳細には、本明細書の実施形態は、関係者が、動作が実行される環境が改ざんされていないかまたは損なわれていないことを信頼することができるように、ブロックチェーンノードが、TEE内で、セキュアで検証可能な様式においてスマート契約動作を実施することを可能にする。
本明細書はまた、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、本明細書で提供される方法の実施形態による動作を実施させる命令を記憶した、1つまたは複数の非一時的コンピュータ可読記憶媒体を提供する。
本明細書は、本明細書で提供される方法を実装するためのシステムをさらに提供する。本システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに本明細書で提供される方法の実施形態による動作を実施させる命令を記憶したコンピュータ可読記憶媒体とを含む。
本明細書による方法は、本明細書で説明される態様および特徴の任意の組合せを含み得ることを諒解されたい。すなわち、本明細書による方法は、本明細書で詳細に説明される態様および特徴の組合せに限定されず、提供される態様および特徴の任意の組合せをも含む。
本明細書の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載される。本明細書の他の特徴および利点が、説明および図面から、ならびに特許請求の範囲から明らかになるであろう。
本明細書の実施形態を実行するために使用され得る環境の一例を示す図である。 本明細書の実施形態によるアーキテクチャの一例を示す図である。 本明細書の実施形態によるシステムの一例を示す図である。 本明細書の実施形態によるシステムの一例を示す図である。 本明細書の実施形態に従って実行され得るプロセスの一例を示す図である。 本明細書の実施形態による装置のモジュールの例を示す図である。
様々な図面における同様の参照番号および名称は、同様の要素を示す。
本明細書は、ブロックチェーンノードによって実行される、信頼できる実行環境(TEE)における、要求されたスマート契約動作をセキュアに実行するための技術について説明する。より詳細には、本明細書の実施形態は、関係者が、動作が実行される環境が改ざんされていないかまたは損なわれていないことを信頼することができるように、ブロックチェーンノードが、TEE内で、セキュアで検証可能な様式においてスマート契約動作を実施することを可能にする。
本明細書の実施形態に関してさらなる文脈を提供するために、および上記で紹介されたように、(たとえば、ピアツーピアノードからなる)コンセンサスネットワークおよびブロックチェーンネットワークと呼ばれることもある分散元帳システム(DLS)は、参加エンティティが、トランザクションをセキュアに不変に行い、データを記憶することを可能にする。ブロックチェーンという用語は、概して、特定のネットワークおよび/または使用事例に関連付けられるが、ブロックチェーンは、本明細書では、特定の使用事例に言及することなく、概してDLSを指すために使用される。
ブロックチェーンは、トランザクションが不変であるやり方でトランザクションを記憶するデータ構造である。したがって、ブロックチェーン上に記録されたトランザクションは、確実であり、信頼できる。ブロックチェーンは1つまたは複数のブロックを含む。チェーン中の各ブロックは、チェーン中でその直前にある前のブロックの暗号化ハッシュを含めることによって、前のブロックにリンクされる。各ブロックはまた、タイムスタンプと、それ自体の暗号化ハッシュと、1つまたは複数のトランザクションとを含む。ブロックチェーンネットワークのノードによってすでに検証されたトランザクションは、ハッシングされ、マークルツリー(Merkle tree)に符号化される。マークルツリーは、ツリーのリーフノードにおけるデータがハッシングされ、ツリーの各ブランチにおけるすべてのハッシュが、ブランチのルートにおいて連結されるデータ構造である。このプロセスは、ツリーを上ってツリー全体のルートまで続き、これは、ツリー中のすべてのデータを表すハッシュを記憶する。ツリーに記憶されたトランザクションのものであると主張するハッシュは、それがツリーの構造に一致するかどうかを決定することによって、迅速に検証され得る。
ブロックチェーンは、トランザクションを記憶するための分散されたまたは少なくとも部分的に分散されたデータ構造であるが、ブロックチェーンネットワークは、トランザクションなどをブロードキャストし、検証し、確認することによって、1つまたは複数のブロックチェーンを管理し、更新し、維持するコンピューティングノードのネットワークである。上記で紹介されたように、ブロックチェーンネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、またはコンソーシアムブロックチェーンネットワークとして提供され得る。本明細書の実施形態は、コンソーシアムブロックチェーンネットワークを参照しながら、本明細書でさらに詳細に説明される。しかしながら、本明細書の実施形態は、任意の適切なタイプのブロックチェーンネットワークにおいて実現され得ることが企図される。
概して、コンソーシアムブロックチェーンネットワークは、参加エンティティの間でプライベートである。コンソーシアムブロックチェーンネットワークでは、コンセンサスプロセスは、コンセンサスノードと呼ばれることがある、許可されたノードのセットによって制御され、1つまたは複数のコンセンサスノードは、それぞれのエンティティ(たとえば、金融機関、保険会社)によって動作させられる。たとえば、10個のエンティティのコンソーシアム(たとえば、金融機関、保険会社)は、コンソーシアムブロックチェーンネットワークを動作させることができ、エンティティの各々は、コンソーシアムブロックチェーンネットワーク内で少なくとも1つのノードを動作させる。
いくつかの例では、コンソーシアムブロックチェーンネットワーク内で、グローバルブロックチェーンが、すべてのノードにわたって複製されるブロックチェーンとして提供される。すなわち、すべてのコンセンサスノードがグローバルブロックチェーンに関して完全にコンセンサスのとれた状態にある。コンセンサス(たとえば、ブロックチェーンへのブロックの追加に対する合意)を達成するために、コンソーシアムブロックチェーンネットワーク内でコンセンサスプロトコルが実装される。たとえば、コンソーシアムブロックチェーンネットワークは、以下でさらに詳細に説明される実用的ビザンチンフォールトトレランス(PBFT:practical Byzantine fault tolerance)コンセンサスを実装することができる。
図1は、本明細書の実施形態を実行するために使用され得る環境100の一例を示す図である。いくつかの例では、例示的な環境100は、エンティティがコンソーシアムブロックチェーンネットワーク102に参加することを可能にする。例示的な環境100は、コンピューティングデバイス106、108と、ネットワーク110とを含む。いくつかの例では、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはそれらの組合せを含み、ウェブサイト、ユーザデバイス(たとえば、コンピューティングデバイス)、およびバックエンドシステムを接続する。いくつかの例では、ネットワーク110は、ワイヤードおよび/またはワイヤレス通信リンクを介してアクセスされ得る。
示された例では、コンピューティングシステム106、108は、各々、コンソーシアムブロックチェーンネットワーク102内のノードとして参加を可能にする任意の適切なコンピューティングシステムを含むことができる。例示的なコンピューティングデバイスは、限定はしないが、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピューティングデバイス、およびスマートフォンを含む。いくつかの例では、コンピューティングシステム106、108は、コンソーシアムブロックチェーンネットワーク102と対話するための1つまたは複数のコンピュータ実装サービスをホストする。たとえば、コンピューティングシステム106は、第1のエンティティ(たとえば、ユーザA)が1つまたは複数の他のエンティティ(たとえば、他のユーザ)とのそのトランザクションを管理するために使用するトランザクション管理システムなど、第1のエンティティのコンピュータ実装サービスをホストすることができる。コンピューティングシステム108は、第2のエンティティ(たとえば、ユーザB)が1つまたは複数の他のエンティティ(たとえば、他のユーザ)とのそのトランザクションを管理するために使用するトランザクション管理システムなど、第2のエンティティのコンピュータ実装サービスをホストすることができる。図1の例では、コンソーシアムブロックチェーンネットワーク102は、ノードのピアツーピアネットワークとして表され、コンピューティングシステム106、108は、それぞれ、第1のエンティティおよび第2のエンティティのノードを提供し、それらのノードはコンソーシアムブロックチェーンネットワーク102に参加する。
図2は、本明細書の実施形態による概念アーキテクチャ200の一例を示す。概念アーキテクチャ200は、エンティティレイヤ202と、ホストされたサービスレイヤ204と、ブロックチェーンネットワークレイヤ206とを含む。示された例では、エンティティレイヤ202は、3人の参加者、参加者A、参加者B、および参加者Cを含み、各参加者は、それぞれのトランザクション管理システム208を有する。
示された例では、ホストされたサービスレイヤ204は、各トランザクション管理システム210のためのインターフェース210を含む。いくつかの例では、それぞれのトランザクション管理システム208は、プロトコル(たとえば、ハイパーテキスト転送プロトコルセキュア(HTTPS:hypertext transfer protocol secure))を使用してネットワーク(たとえば、図1のネットワーク110)を介してそれぞれのインターフェース210と通信する。いくつかの例では、各インターフェース210は、それぞれのトランザクション管理システム208とブロックチェーンネットワークレイヤ206との間の通信接続を提供する。より詳細には、インターフェース210は、ブロックチェーンネットワークレイヤ206のブロックチェーンネットワーク212と通信する。いくつかの例では、インターフェース210とブロックチェーンネットワークレイヤ206との間の通信は、リモートプロシージャコール(RPC:remote procedure call)を使用して行われる。いくつかの例では、インターフェース210は、それぞれのトランザクション管理システム208のためのブロックチェーンネットワークノードを「ホストする」。たとえば、インターフェース210は、ブロックチェーンネットワーク212へのアクセスのためのアプリケーションプログラミングインターフェース(API)を提供する。
本明細書で説明されるように、ブロックチェーンネットワーク212は、ブロックチェーン216に情報を不変に記録する複数のノード214を含む、ピアツーピアネットワークとして提供される。単一のブロックチェーン216が概略的に示されているが、ブロックチェーン216の複数のコピーが提供され、ブロックチェーンネットワーク212にわたって維持される。たとえば、各ノード214は、ブロックチェーンのコピーを記憶する。いくつかの実施形態では、ブロックチェーン216は、コンソーシアムブロックチェーンネットワークに参加している2つまたはそれ以上のエンティティ間で実施されるトランザクションに関連付けられた情報を記憶する。
ブロックチェーン(たとえば、図2のブロックチェーン216)は、ブロックのチェーンからなり、各ブロックはデータを記憶する。例示的なデータは、2人またはそれ以上の参加者間のトランザクションを表すトランザクションデータを含む。トランザクションは、本明細書では、非限定的な例として使用されるが、任意の適切なデータがブロックチェーンに記憶され得ることが企図される(たとえば、ドキュメント、画像、ビデオ、オーディオ)。例示的なトランザクションは、限定はしないが、価値のある何か(たとえば、資産、製品、サービス、通貨)の交換を含むことができる。トランザクションデータは、ブロックチェーン内に不変に記憶される。すなわち、トランザクションデータは変更され得ない。
ブロックに記憶する前に、トランザクションデータはハッシングされる。ハッシングは、(ストリングデータとして与えられる)トランザクションデータを、(同じくストリングデータとして与えられる)固定長ハッシュ値に変換するプロセスである。ハッシュ値をアンハッシング(un-hash)してトランザクションデータを取得することは可能でない。ハッシングは、トランザクションデータのわずかな変更でも、まったく異なるハッシュ値を生じることを保証する。さらに、上述のように、ハッシュ値は固定長のものである。すなわち、トランザクションデータのサイズにかかわらず、ハッシュ値の長さは固定である。ハッシングは、ハッシュ値を生成するためのハッシュ関数を通してトランザクションデータを処理することを含む。ハッシュ関数の一例は、限定はしないが、256ビットハッシュ値を出力するセキュアハッシュアルゴリズム(SHA:secure hash algorithm)-256を含む。
複数のトランザクションのトランザクションデータは、ハッシングされ、ブロックに記憶される。たとえば、2つのトランザクションのハッシュ値が与えられ、それら自体ハッシングされて別のハッシュを与える。このプロセスは、ブロックに記憶されるべきすべてのトランザクションについて、単一のハッシュ値が与えられるまで繰り返される。このハッシュ値は、マークルルートハッシュ(Merkle root hash)と呼ばれ、ブロックのヘッダに記憶される。トランザクションのいずれかの変更は、そのハッシュ値の変更を生じ、最終的に、マークルルートハッシュの変更を生じる。
ブロックは、コンセンサスプロトコルを通してブロックチェーンに追加される。ブロックチェーンネットワーク内の複数のノードは、コンセンサスプロトコルに参加し、ブロックをブロックチェーンに追加させるための作業を実施する。そのようなノードはコンセンサスノードと呼ばれる。上記で紹介されたPBFTは、コンセンサスプロトコルの非限定的な例として使用される。コンセンサスノードは、コンセンサスプロトコルを実行してブロックチェーンにトランザクションを追加し、ブロックチェーンネットワークの全体的状態を更新する。
さらに詳細には、コンセンサスノードは、ブロックヘッダを生成し、ブロック中のトランザクションのすべてをハッシングし、ブロック中のすべてのトランザクションのための単一のハッシュ値が与えられるまで、ペアでハッシュ値を組み合わせてさらなるハッシュ値を生成する(マークルルートハッシュ)。このハッシュはブロックヘッダに追加される。コンセンサスノードはまた、ブロックチェーン中の直近のブロック(すなわち、ブロックチェーンに追加された最後のブロック)のハッシュ値を決定する。コンセンサスノードはまた、ブロックヘッダにナンス(nonce)値およびタイムスタンプを追加する。
概して、PBFTは、ビザンチン障害(Byzantine fault)(たとえば、誤動作ノード、悪意のあるノード)を許容する実用的ビザンチン状態機械の複製を提供する。これは、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:trusted application)の少なくとも一部は、TEE内で実行し、プロセッサおよびメモリへのアクセスを有する。TEEを通して、TAは、メインOSにおいて実行している他のアプリケーションから保護される。さらに、TEEは、TEE内でTAを互いから暗号学的に分離する。
TEEの一例は、Santa Clara、California、United StatesのIntel Corporationによって提供されるソフトウェアガードエクステンションズ(SGX:Software Guard Extensions)を含む。本明細書ではSGXが例として説明されるが、本明細書の実施形態は、任意の適切なTEEを使用して実現され得ることが企図される。
SGXはハードウェアベースのTEEを提供する。SGXでは、信頼できるハードウェアは、中央処理ユニット(CPU)のダイであり、物理メモリの一部分が、選択されたコードおよびデータを保護するために分離される。メモリの分離された部分はエンクレーブ(enclave)と呼ばれる。より詳細には、エンクレーブは、メモリ中のエンクレーブページキャッシュ(EPC:enclave page cache)として提供され、アプリケーションアドレス空間にマッピングされる。メモリ(たとえば、DRAM)は、SGXのための保存されたランダムメモリ(PRM:preserved random memory)を含む。PRMは、最も低いBIOSレベルにおける連続するメモリスペースであり、どんなソフトウェアによってもアクセスされ得ない。各EPCは、アプリケーションデータおよびコードをPRMにロードするためにOSによって割り当てられたメモリセット(たとえば、4KB)である。EPCメタデータ(EPCM)は、それぞれのEPCのためのエントリアドレスであり、各EPCが1つのエンクレーブのみによってシェアされ得ることを保証する。すなわち、単一のエンクレーブは、複数のEPCを使用することができるが、EPCは単一のエンクレーブに専用化される。
TAの実行中、プロセッサは、エンクレーブに記憶されたデータにアクセスするとき、いわゆるエンクレーブモードで動作する。エンクレーブモードにおける動作は、各メモリアクセスに対する追加のハードウェアチェックをエンフォースする。SGXでは、TAは、信頼できる部分と信頼できない部分とにコンパイルされる。信頼できる部分は、たとえば、OS、BIOS、特権的システムコード、仮想マシンマネージャ(VMM:virtual machine manager)、システム管理モード(SMM:system management mode)などによってアクセス不可能である。動作中、TAは、実行し、メモリのPRM内にエンクレーブを作る。エンクレーブ内の信頼できる部分によって実行される信頼できる関数(trusted function)が、信頼できない部分によって呼び出され、エンクレーブ内で実行しているコードは、(暗号化されていない)平文データとしてデータを参照し、データへの外部アクセスは拒否される。信頼できる部分は、呼出しに対して暗号化された応答を与え、TAは実行し続ける。
予想されるコード(たとえば、TAの信頼できる部分)が、SGX提供TEE内でセキュアに実行していることを検証するために、構成証明(attestation)プロセスが実施され得る。概して、構成証明プロセスは、TAが、チャレンジャー(たとえば、ブロックチェーンネットワーク内の別のノード、ブロックチェーンネットワークの鍵管理システム(KMS:key management system))から、構成証明要求を受信することを含む。応答して、TAは、そのエンクレーブが、クォート(quote)とも呼ばれる、リモート構成証明(remote-attestation)を作成することを要求する。リモート構成証明を作成することは、ローカル構成証明(local-attestation)が、エンクレーブから、いわゆるクォーティングエンクレーブ(quoting enclave)に送られることを含み、クォーティングエンクレーブは、ローカル構成証明を検証し、非対称構成証明鍵を使用してローカル構成証明に署名することによって、ローカル構成証明をリモート構成証明に変換する。リモート構成証明(クォート)は、チャレンジャー(たとえば、ブロックチェーンネットワークのKMS)に提供される。
チャレンジャーは、リモート構成証明を検証するために、構成証明検証サービスを使用する。SGXの場合、IntelはIntel Attestation Service(IAS)を提供し、これは、チャレンジャーからリモート構成証明を受信し、リモート構成証明を検証する。より詳細には、IASは、リモート構成証明を処理し、リモート構成証明が検証されたかどうかを指示する報告(たとえば、構成証明検証報告(AVR:attestation verification report))を提供する。検証されない場合、エラーが指示され得る。検証された(予想されるコードがTEEにおいてセキュアに実行している)場合、チャレンジャーは、TAとの対話を開始するかまたは続けることができる。たとえば、検証に応答して、(チャレンジャーとしての)KMSは、(たとえば、楕円曲線ディフィーヘルマン(ECDH:elliptical curve Diffie-Hellman)など、鍵交換プロセスを通して、)TEEを実行しているノードに非対称暗号化鍵(たとえば、公開鍵と秘密鍵とのペア)を発行して、ノードがセキュアに他のノードおよび/またはクライアントと通信することを可能にすることができる。
いくつかのブロックチェーンネットワークでは、いわゆるスマート契約が実行され得る。スマート契約は、様々な関係者に影響を及ぼす契約条件を有する、現実世界の法的契約のデジタル表現として説明され得る。スマート契約は、例示的な文脈では、コンソーシアムブロックチェーンネットワーク内で実装され、記憶され、(必要に応じて)更新され、実行される。スマート契約に関連付けられた契約関係者(たとえば、購入者および販売者)は、コンソーシアムブロックチェーンネットワークにおいてノードとして表される。いくつかの例では、契約関係者は、(たとえば、スマート契約の関係者として)スマート契約に関連付けられたエンティティ(たとえば、企業)を含むことができる。
さらに詳細には、スマート契約は、ブロックチェーン(たとえば、ブロックチェーンネットワーク内のノード)上で実行するコンピュータ実行可能プログラムとして提供される。スマート契約は、あらかじめ定義された規則のセットを含んでおり、その規則の下でそのスマート契約の関係者が互いに対話することに合意する。スマート契約のあらかじめ定義された規則が満たされる場合、スマート契約において定義された合意は自動的にエンフォースされる。スマート契約は、通常、改ざん耐性であり、合意またはトランザクションのネゴシエーションまたは実施を容易にし、検証し、エンフォースする。
図3は、本明細書の実施形態によるシステム300の一例を示す図である。示されているように、システム300は、ブロックチェーンノード304a〜304dを含む、ブロックチェーンネットワーク302を含む。ブロックチェーンノード304a〜304dは、サービスTEE306a〜306dと、鍵管理(KM)TEE308a〜308dとを含む。ノード304a〜304dは、スマート契約サービス論理330へのアクセスを有する。鍵管理センタ310は、ノード304a〜304dに通信可能に結合される。
ノード304a〜304dの各々は、ブロックチェーンネットワーク302に参加し、ブロックチェーンネットワーク302に関連付けられたブロックチェーンの保守に寄与している(図示せず)、ブロックチェーンノードである。上記で説明されたように、ノード304a〜304dは、ブロックチェーンネットワーク302に関連付けられたコンセンサスプロセスに参加することができ、ブロックチェーンへの追加のためにトランザクションを収集してブロックにすることができ、ブロックチェーンネットワーク302のユーザによって要求されたトランザクションを処理することができ、スマート契約において符号化された動作を実行することができ、ブロックチェーンの管理に関係する他のタスクを実施する。いくつかの実施形態では、各ノードは、1つまたは複数のプロセッサとストレージデバイスと他の構成要素とを含む、コンピューティングデバイス(たとえば、サーバ)であり得る。いくつかの場合には、ノード304a〜304dは、互いに、およびブロックチェーンネットワーク302に参加している他のノードに、通信ネットワーク(図示せず)を介して通信する。図3の説明の残りについて、ノード304b〜304dもノード304aの特徴を含むことができるという理解とともに、ノード304aが一例として説明される。
ノード304aはサービスTEE306aを含む。いくつかの実施形態では、サービスTEE306aは、TEE技術(たとえば、インテルSGX)を使用して実装されるセキュアアプリケーション環境である。1つまたは複数のソフトウェアプログラムまたはライブラリが、サービスTEE306aによって実行され得る。本明細書では、サービスTEE306aは、セキュア環境(TEE)、ならびに説明される動作を実施するTEE内で実行するソフトウェアを指す。いくつかの実施形態では、サービスTEE306aは、暗号化されたクライアント要求によって指定されたスマート契約動作を実行し、スマート契約動作に関連付けられた暗号化された結果を出力する。この機能性は、以下で図4に関してより詳細に説明される。
ノード304aは鍵管理TEE(KM TEE)308aをも含む。いくつかの実施形態では、KM TEE308aは、TEE技術(たとえば、インテルSGX)を使用して実装されるセキュアアプリケーション環境である。1つまたは複数のソフトウェアプログラムまたはライブラリが、KM TEE308aによって実行され得る。本明細書では、KM TEE308aは、セキュア環境(TEE)、ならびに説明される動作を実施するTEE内で実行するソフトウェアを指す。いくつかの実施形態では、KM TEE308aは、以下で図4に関してより詳細に説明されるように、鍵管理センタ310から暗号化鍵を取得する。
鍵管理センタ310は、暗号化鍵を生成し、記憶し、維持することができる。鍵管理センタ310はまた、リモート構成証明および鍵展開プロセス320を通して、KM TEE308a〜308dの識別情報を認証し、ノード304a〜304dに暗号化鍵を提供することができる。いくつかの実施形態では、鍵管理は、クライアントに、ノード304a〜304dと対話するための暗号化鍵をさらに提供することができる。この機能性は、以下で図4に関してより詳細に説明される。いくつかの実施形態では、鍵管理センタ310は、通信ネットワーク(図示せず)を介してブロックチェーンネットワーク302の1つまたは複数のノードと通信している、1つまたは複数のサーバまたは他のコンピューティングデバイスであり得る。鍵管理センタ310はまた、暗号化鍵および他のデータを記憶するために、鍵管理センタ310に結合された、または通信ネットワークを介してアクセス可能な、1つまたは複数のストレージデバイスを含むことができる。
いくつかの場合には、鍵管理センタ310は、暗号化鍵展開を実施する前に、KM TEE308a〜308dの識別情報を認証するように動作する。たとえば、KM TEE308aに1つまたは複数の暗号化鍵を提供すること(以下で説明される)より前に、鍵管理センタ310は、KM TEE308aの真正性を検証することができる。この検証は、KM TEE308aによって実行されるソフトウェアが、プロビジョニングされた後に改ざんされていないことを保証する。いくつかの実施形態では、検証は、上記で説明されたものなど、リモート構成証明プロセス320を含むことができる。
KM TEE308a〜308dが、鍵管理センタ310から1つまたは複数の暗号化鍵を取得した後、鍵は、暗号化動作を実施するためのサービスTEE306a〜306dにフォワーディングされ得る。いくつかの場合には、KM TEEとサービスTEEとのペア(たとえば、KM TEE308aとサービスTEE306a)は、単一のノード(たとえば、ノード304a)上で動作するが、それらは、各々、それら自体の独立したTEEを有する。その結果、KM TEE308a〜308dとサービスTEE306a〜306dとの間で通信される情報は、信頼できないエリアを通って送信される。そのような場合、KM TEE308a〜308dは、たとえば、ローカル構成証明プロセスを実施することによって、サービスTEE306a〜306dの識別情報を認証することができる。
ローカル構成証明は、エンクレーブが、その識別情報または真正性を、同じローカルプラットフォーム内の別のエンクレーブに証明することを可能にすることができる。たとえば、KM TEE308aは、サービスTEE306aの真正性を検証するためにチャレンジを送ることができる。チャレンジを受信すると、サービスTEE306aは、サービスTEE306aがノード304a上に存在するという暗号化証明を含む報告を生成するように、ノード304aのハードウェア(たとえば、CPU)に要求することができる。その報告は、KM TEE308aに提供されて、そのエンクレーブ報告が、同じプラットフォーム上でノード304aによって生成されたことを検証することができる。いくつかの場合には、ローカル構成証明は、報告を検証するKM TEE308aおよび報告を生成するエンクレーブハードウェアのみが、ノード304aのハードウェアプラットフォーム中に埋め込まれた対称鍵を知る、対称鍵システムに基づいて実施され得る。
サービスTEE306a〜306dが、ローカル構成証明を通して認証された後、KM TEE308a〜308dは、サービスTEE306a〜306dに1つまたは複数の暗号化鍵を提供することができる。いくつかの場合には、KM TEE308a〜308dは、サービスTEE306a〜306dの認証に応答して暗号化鍵を提供することができるか、またはサービスTEE306a〜306dによる1つまたは複数の要求に応答して鍵を提供することができる。
スマート契約サービス論理330は、1つまたは複数のスマート契約定義を含む。ノード304a〜304dは、(たとえば、図4に示されているように、クライアントの要求時に)スマート契約サービス論理330からの特定の動作を実行する。いくつかの実施形態では、スマート契約サービス論理330におけるスマート契約定義は、ブロックチェーンネットワーク302のノードによって実行される命令を含む。スマート契約サービス論理330は、ブロックチェーンネットワーク302によって維持される1つまたは複数のブロックチェーンに記憶されたスマート契約定義を含むことができる(図示せず)。
図4は、本明細書の実装形態によるシステム400の一例を示す図である。示されているように、システム400は、図3に関して説明された、(サービスTEE306aとKM TEE308aとを含む)ノード304aと、鍵管理センタ310とを含む。システム400は、鍵管理センタ310に通信可能に結合されたクライアント480をも含む。
動作中、システム400は、スマート契約命令をセキュアに実行し、(たとえば、ブロックチェーン中に含めるための)動作の暗号化された結果を作成することができる。上記で説明されたように、鍵管理センタ310は、暗号化鍵を用いて、KM TEE308aの識別情報を信頼する前にそれを認証するために、リモート構成証明を実施することができる。KM TEE308が認証された後、鍵管理センタ310は、ノード304aのKM TEE308aに、アンシール(unseal)秘密鍵402、ルート鍵404および署名秘密鍵406を提供することができる。鍵管理センタ310はまた、シール(seal)公開鍵414および検証公開鍵416をホストする。鍵管理センタ310は、以下で説明されるように、サービスTEE306aに関連付けられた様々なデータの暗号化および解読を実施するために、許可されたクライアントにこれらの鍵を提供する。
示されているように、鍵管理センタ310は、クライアント480にシール公開鍵414を提供する。いくつかの場合には、鍵管理センタ310は、クライアント480を認証し、シール公開鍵414を、クライアント480がそれにアクセスすることを許可されている場合にのみ提供する。鍵管理センタ310は、この決定を行うために、内部または外部パーミッションリソースを調べることができる。シール公開鍵414は、KM TEE308aに提供されたアンシール秘密鍵402に関連付けられる。シール公開鍵414とアンシール秘密鍵402とは鍵ペアを形成し、これは、シール公開鍵414で暗号化されたデータが、アンシール秘密鍵402を使用して解読され得ることを意味する。
クライアント480は、サービスTEE306aにおいて展開されるイーサリアム仮想マシン(VM)460によって実行されることになるスマート契約動作である、要求された契約動作450を識別する。いくつかの場合には、スマート契約動作450は、スマート契約プログラミング言語に符号化された、その言語の命令を実行するように動作可能なVMが実行するための1つまたは複数の命令を含む。スマート契約動作450は、要求契約動作450に関連付けられたスマート契約についての実行状態を含むことができる。スマート契約の実行中に、ブロックチェーンネットワークの複数のノードは、個々にスマート契約の各命令を実行し、命令の完了の後にスマート契約の実行状態を指示する結果を作成する。実行状態は、スマート契約に関連付けられたデータを含むことができる。契約の各実行される命令は、(たとえば、スマート契約における後の命令によって使用されるべき値を記憶するために)データの内容を変更することができる。スマート契約の命令の実行の後、ブロックチェーンネットワークのノードは、命令の実行の後の新しい実行状態に関してコンセンサスに達する。このコンセンサスプロセスは、スマート契約において実行される各命令について実施され、スマート契約の実行経路に関する、および、最終的に、実行の最終結果に関するコンセンサスにつながる。
452において、クライアント480は、ノード304aによって実行されるサービスTEE306aへの送信のために、要求された契約動作450をデジタルエンベロープ454に符号化する(またはシールする)。たとえば、クライアント480は、一時対称鍵408を生成し、その鍵408を使用して、要求された契約動作450を暗号化する。次いで、クライアント480は、シール公開鍵414を使用して一時対称鍵408を暗号化し、暗号化された契約動作450と暗号化された鍵408とを連結してデジタルエンベロープ454を作成する。
クライアント480は、ノード304aにデジタルエンベロープ454を送信し、それはサービスTEE306aに提供される。いくつかの場合には、クライアント480は、要求された契約動作450の処理を要求するために、複数のノード304a〜304dにデジタルエンベロープ454を送ることができる。いくつかの場合には、クライアント480は、特定のノードに固有のシール公開鍵を使用して作られたデジタルエンベロープを送ることができる。クライアント480はまた、同じシール公開鍵414およびアンシール秘密鍵402が、すべてのノード304a〜304dに関連付けられる場合、ノード304a〜304dにデジタルエンベロープ454をブロードキャストすることができる。
サービスTEE306aは、クライアント480からデジタルエンベロープ454を受信し、デジタルエンベロープ454から、要求された契約動作450を復元する。示されているように、サービスTEE306aは、KM TEE308aから取得されたアンシール秘密鍵402を使用して、デジタルエンベロープ454を復号する。いくつかの場合には、サービスTEE306aは、(456において)アンシール秘密鍵402を使用して一時対称鍵408を解読し(アンシールし)、次いで、(458において)一時対称鍵408を使用して、要求された契約動作450を解読する。
次いで、サービスTEE306aは、サービスTEE306aにおいて展開されるVM460を使用して、要求された契約動作450を実行する。いくつかの実施形態では、VM460は、イーサリアムVMまたは他のタイプのVMなど、スマート契約プログラミング言語の命令を実行するように構成されたVMであり得る。いくつかの場合には、VM460は、動作450の実行中に、たとえば、外部サーバ、ブロックチェーン、データベース、または動作450によって指示される他のリソースなど、サービスTEE306aの外部のリソースにアクセスすることができる。いくつかの実施形態では、外部リソースにアクセスすることは制限または拒否され得、その結果、動作の実行の全体が、(スマート契約状態などの)サービスTEE306aに記憶されたデータのみに依存する。このタイプの制限は、動作450の実行を改ざんする可能性をさらに低減することができる。
VM460による動作450の実行は、1つまたは複数の結果を作成することができる。いくつかの場合には、結果は、上記で説明されたように、動作450を実行した後のスマート契約の実行状態を含むことができる。462において、スマート契約動作450の結果は、契約鍵412を使用してサービスTEE306aによって暗号化される。契約鍵412は、(410において)鍵導出関数(KDF:key derivation function)に基づいてルート鍵404から導出される。いくつかの例では、KDFは、HMACベースの抽出および展開鍵導出関数(HKDF:HMAC-based extract-and-expand key derivation function)または擬似ランダム関数(PRF:pseudo-random function)など、反復ハッシュアルゴリズムに基づいて実施され得る。契約鍵は、KM TEE308aによってサービスTEE306aに提供され得る。いくつかの実施形態では、ルート鍵404は、ノード304aに関連付けられた対称暗号化鍵であり得る。ルート鍵404はまた、ルート鍵404から導出され得る1つまたは複数のサブ鍵を含むことができる。契約鍵412はこれらのサブ鍵のうちの1つであり得る。いくつかの場合には、ルート鍵404自体が、462において結果を暗号化するために使用され得る。
結果を暗号化した後、サービスTEE308aは、464において、署名された結果466を作成するために、KM TEE308aによってサービスTEE 306aに提供された署名秘密鍵406を使用して、暗号化された結果に署名する。これは、鍵管理センタ310によって維持された(対応して署名秘密鍵406とペアにされた)検証公開鍵416を使用する、第三者(たとえば、クライアント)による、署名された結果の後の検証を可能にすることができる。いくつかの場合には、署名秘密鍵406によって、暗号化された結果に署名することは、結果を暗号化するために使用された契約鍵412とともに、暗号化された結果を暗号化することを含むことができる。そのような場合、検証公開鍵416を保持する第三者は、最初に契約鍵412を解読し、さらに契約鍵412を使用して結果を解読することができる。
いくつかの場合には、サービスTEE306aは、署名された結果466をブロックチェーンに記憶することができる。上記で説明されたように、検証公開鍵416を保持する第三者は、検査するためにその鍵を使用して結果466を解読することができる。たとえば、クライアント480は、(たとえば、前に説明された認証を条件として)鍵管理センタ310から検証公開鍵416を取り出すことができ、検証公開鍵416を使用して、署名された結果466にアクセスし、それを解読することができる。次いで、クライアント480は、スマート契約における次の動作がサービスTEE306aによって実行されることを要求することができ、要求される次の動作と、(解読された署名された結果466からの)スマート契約の実行状態とを、サービスTEE306aに送られるデジタルエンベロープに含めることができる。
図5は、本明細書の実施形態に従って実行され得るプロセスの一例を示す。502において、ブロックチェーンネットワーク(たとえば、302)に参加しているブロックチェーンノード(たとえば、304a)が、ブロックチェーンノードによってホストされたサービスTEEにおいて1つまたは複数のソフトウェア命令を実行するようにとの要求を受信し、要求は、サービスTEEに関連付けられた公開鍵によって暗号化される。
504において、ブロックチェーンノードは、サービスTEEに関連付けられた第1の秘密鍵を用いて要求を解読し、第1の秘密鍵は公開鍵とペアにされる。
506において、ブロックチェーンノードは、実行結果を作成するために1つまたは複数のソフトウェア命令を実行する。
508において、ブロックチェーンノードは、暗号化された結果を作成するために、サービスTEEに関連付けられたクライアント暗号化鍵を用いて実行結果を暗号化する。
510において、ブロックチェーンノードは、署名された暗号化された結果を作成するために、TEEに関連付けられた第2の秘密鍵を使用して暗号化された結果に署名する。
いくつかの場合には、公開鍵は第1の公開鍵であり、クライアント暗号化鍵は、第2の公開鍵、または鍵導出関数に基づいてルート鍵から導出された対称鍵のうちの1つである。
いくつかの場合には、ブロックチェーンノードは、第1の秘密鍵、第2の秘密鍵のうちの1つまたは複数を記憶する鍵管理TEEをさらにホストし、鍵管理TEEは、鍵管理TEEによって開始されるローカル構成証明を実施することに基づいてサービスTEEの識別情報が認証された後、第1の秘密鍵、第2の秘密鍵、およびルート鍵をサービスTEEに提供する。
いくつかの場合には、第1の秘密鍵、第2の秘密鍵、およびルート鍵は、鍵管理センタによって生成され、鍵管理センタによって開始されるリモート構成証明を実施することに基づいて鍵管理TEEの識別情報が認証された後、鍵管理TEEに提供される。
いくつかの場合には、第1の秘密鍵およびルート鍵は、サービスTEEのリブート動作に応答して、鍵管理TEEによってサービスTEEに提供される。
いくつかの場合には、1つまたは複数のソフトウェア命令は、スマート契約に関連付けられ、ルート鍵は、スマート契約の状態に基づいて、鍵管理TEEに記憶された複数のルート鍵から選択される。
いくつかの場合には、第1の公開鍵は、鍵管理センタによって生成され、要求を暗号化するためにクライアントに提供される。
いくつかの場合には、ブロックチェーンノードによって受信された要求は、1つまたは複数のソフトウェア命令を暗号化するためにクライアント暗号化鍵を使用することをさらに含む。
いくつかの場合には、第1の秘密鍵を用いて要求を解読することは、第1の秘密鍵を用いてクライアント暗号化鍵を解読することと、クライアント暗号化鍵を用いて1つまたは複数のソフトウェア命令を解読することとをさらに含む。
図6は、本明細書の実施形態による装置600のモジュールの例を示す。装置600は、ブロックチェーンネットワーク内で実行するブロックチェーンノードの例示的な実施形態であり得る。装置600は、上記で説明された実施形態に対応することができ、装置600は、以下、すなわち、ブロックチェーンノードによってホストされたサービスTEEにおいて1つまたは複数のソフトウェア命令を実行するようにとの要求を受信する受信モジュール602であって、要求が、サービスTEEに関連付けられた公開鍵によって暗号化された、受信モジュール602と、サービスTEEに関連付けられた第1の秘密鍵を用いて要求を解読する解読モジュール604であって、第1の秘密鍵が公開鍵とペアにされた、解読モジュール604と、実行結果を作成するために1つまたは複数のソフトウェア命令を実行する実行モジュール606と、暗号化された結果を作成するために、サービスTEEに関連付けられたクライアント暗号化鍵を用いて実行結果を暗号化する暗号化モジュール608と、署名された暗号化された結果を作成するために、TEEに関連付けられた第2の秘密鍵を使用して暗号化された結果に署名する署名モジュール610とを含む。
前の実施形態において示されたシステム、装置、モジュール、またはユニットは、コンピュータチップまたはエンティティを使用することによって実装され得るか、あるいはある機能を有する製品を使用することによって実装され得る。典型的な実施形態デバイスはコンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、セルラーフォン、カメラフォン、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メール送受信デバイス、ゲーム機、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであり得る。
装置中の各モジュールの機能および役割の実施形態プロセスについて、前の方法における対応するステップの実施形態プロセスへの参照が行われ得る。簡単のために、詳細はここでは省略される。
装置実施形態は、基本的に方法実施形態に対応するので、関係する部分について、方法実施形態における関係する説明への参照が行われ得る。前に説明された装置実施形態は一例にすぎない。別個の部分として説明されるモジュールは、物理的に別個であることも別個でないこともあり、モジュールとして表示される部分は、物理モジュールであることも物理モジュールでないこともあり、1つの位置にあり得るか、またはいくつかのネットワークモジュール上に分散され得る。モジュールの一部または全部は、本明細書のソリューションの目的を達成するために、実際の需要に基づいて選択され得る。当業者は、創造的な労力なしに本出願の実施形態を理解および実装することができる。
再び図6を参照すると、図6は、ブロックチェーンネットワーク内で実行し、実行本体として機能するブロックチェーンノードの内部機能モジュールおよび構造を示すものとして解釈され得る。実行本体は本質的に電子デバイスであり得、電子デバイスは、以下、すなわち、1つまたは複数のプロセッサと、1つまたは複数のプロセッサの実行可能な命令を記憶するように構成されたメモリとを含む。
本明細書で説明される技法は、1つまたは複数の技術的効果を生み出す。たとえば、説明される技法は、スマート契約動作を実行することと、それらの動作の結果に関してコンセンサスに到達することとを担当する、コンソーシアムブロックチェーンネットワーク内のブロックチェーンノードが、攻撃者によって損なわれていないことを、そのネットワークの関係者が検証することを可能にする。この検証は、攻撃者が、ブロックチェーンノードのうちの1つまたは複数を制御し、スマート契約動作またはコンセンサスプロセスの実行を改ざんすることに成功することを妨げるか、あるいはその可能性を低減し、攻撃に対してより耐性があるコンソーシアムブロックチェーンネットワークのよりセキュアな実施形態をもたらすという効果を有する。
主題の説明される実施形態は、1つまたは複数の特徴を、単独でまたは組合せで含むことができる。一実施形態は、ブロックチェーンネットワークに参加しているブロックチェーンノードによって、ブロックチェーンノードによってホストされたサービスTEEにおいて1つまたは複数のソフトウェア命令を実行するようにとの要求を受信するアクションであって、要求が、サービスTEEに関連付けられた公開鍵によって暗号化された、受信するアクションと、サービスTEEにおいてブロックチェーンノードによって、サービスTEEに関連付けられた第1の秘密鍵を用いて要求を解読するアクションであって、第1の秘密鍵が公開鍵とペアにされた、解読するアクションと、要求の解読に応答して、サービスTEEにおいてブロックチェーンノードによって、実行結果を作成するために1つまたは複数のソフトウェア命令を実行するアクションと、サービスTEEにおいてブロックチェーンノードによって、暗号化された結果を作成するために、サービスTEEに関連付けられたクライアント暗号化鍵を用いて実行結果を暗号化するアクションと、TEEにおいてブロックチェーンノードによって、署名された暗号化された結果を作成するために、TEEに関連付けられた第2の秘密鍵を使用して暗号化された結果に署名するアクションとを含む、コンピュータで実行される方法を含む。
上記および他の説明される実施形態は、各々、随意に、以下の特徴のうちの1つまたは複数を含むことができる。
以下の特徴のうちのいずれかと組合せ可能な第1の特徴は、公開鍵が第1の公開鍵であり、クライアント暗号化鍵が、第2の公開鍵、または鍵導出関数に基づいてルート鍵から導出された対称鍵のうちの1つであることを指定する。
前のまたは以下の特徴のうちのいずれかと組合せ可能な第2の特徴は、ブロックチェーンノードが、第1の秘密鍵、第2の秘密鍵のうちの1つまたは複数を記憶する鍵管理TEEをさらにホストし、鍵管理TEEは、鍵管理TEEによって開始されるローカル構成証明を実施することに基づいてサービスTEEの識別情報が認証された後、第1の秘密鍵、第2の秘密鍵、およびルート鍵をサービスTEEに提供することを指定する。
前のまたは以下の特徴のうちのいずれかと組合せ可能な第3の特徴は、第1の秘密鍵、第2の秘密鍵、およびルート鍵は、鍵管理センタによって生成され、鍵管理センタによって開始されるリモート構成証明を実施することに基づいて鍵管理TEEの識別情報が認証された後、鍵管理TEEに提供されることを指定する。
前のまたは以下の特徴のうちのいずれかと組合せ可能な第4の特徴は、第1の秘密鍵およびルート鍵が、サービスTEEのリブート動作に応答して、鍵管理TEEによってサービスTEEに提供されることを指定する。
前のまたは以下の特徴のうちのいずれかと組合せ可能な第5の特徴は、1つまたは複数のソフトウェア命令が、スマート契約に関連付けられ、ルート鍵が、スマート契約の状態に基づいて、鍵管理TEEに記憶された複数のルート鍵から選択されることを指定する。
前のまたは以下の特徴のうちのいずれかと組合せ可能な第6の特徴は、第1の公開鍵が、鍵管理センタによって生成され、要求を暗号化するためにクライアントに提供されることを指定する。
前のまたは以下の特徴のうちのいずれかと組合せ可能な第7の特徴は、ブロックチェーンノードによって受信された要求が、1つまたは複数のソフトウェア命令を暗号化するためにクライアント暗号化鍵を使用することをさらに含むことを指定する。
前のまたは以下の特徴のうちのいずれかと組合せ可能な第8の特徴は、第1の秘密鍵を用いて要求を解読することが、第1の秘密鍵を用いてクライアント暗号化鍵を解読することと、クライアント暗号化鍵を用いて1つまたは複数のソフトウェア命令を解読することとをさらに含むことを指定する。
前のまたは以下の特徴のうちのいずれかと組合せ可能な第9の特徴は、鍵管理センタが、第2の秘密鍵に対応する検証公開鍵を記憶し、署名された暗号化された結果を検証するために検証公開鍵をクライアントに提供することを指定する。
本明細書で説明される主題の実施形態、ならびにアクションおよび動作は、本明細書で開示される構造およびそれらの構造等価物を含む、デジタル電子回路において、有形に具現化されたコンピュータソフトウェアまたはファームウェアにおいて、コンピュータハードウェアにおいて、あるいはそれらのうちの1つまたは複数の組合せにおいて実装され得る。本明細書で説明される主題の実施形態は、1つまたは複数のコンピュータプログラム、たとえば、データ処理装置が実行するために、またはデータ処理装置の動作を制御するために、コンピュータプログラムキャリア上に符号化された、コンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。たとえば、コンピュータプログラムキャリアは、命令を符号化または記憶した、1つまたは複数のコンピュータ可読記憶媒体を含むことができる。キャリアは、磁気ディスク、光磁気ディスク、または光ディスク、ソリッドステートドライブ、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、あるいは他のタイプの媒体など、有形非一時的コンピュータ可読媒体であり得る。代替的に、または追加として、キャリアは、人工的に生成された伝搬される信号、たとえば、データ処理装置が実行するための好適な受信機装置への送信のための情報を符号化するために生成される、機械生成の電気信号、光信号、または電磁信号であり得る。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つまたは複数の組合せであるか、あるいはそれらの一部であり得る。コンピュータ記憶媒体は、伝搬される信号ではない。
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、エンジン、スクリプト、またはコードと呼ばれるかまたはそれらとして説明されることもある、コンピュータプログラムは、コンパイル型言語またはインタープリタ型言語、あるいは宣言型言語または手続き型言語を含む、任意の形態のプログラミング言語で書かれ得、それは、スタンドアロンプログラムとして、あるいはモジュール、構成要素、エンジン、サブルーチン、またはコンピューティング環境において実行するのに好適な他のユニットとしてを含む、任意の形態において展開され得、その環境は、1つまたは複数のロケーション中でデータ通信ネットワークによって相互接続された1つまたは複数のコンピュータを含み得る。
コンピュータプログラムは、ファイルシステム中のファイルに対応し得るが、それに対応する必要はない。コンピュータプログラムは、他のプログラムまたはデータ、たとえば、マークアップ言語ドキュメントに記憶された1つまたは複数のスクリプトを保持するファイルの一部分に、当該のプログラムに専用の単一のファイルに、あるいは複数の協調ファイル(coordinated file)、たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイルに記憶され得る。
コンピュータプログラムの実行のためのプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータのいずれか1つまたは複数のプロセッサを含む。概して、プロセッサは、プロセッサに結合された非一時的コンピュータ可読媒体から、実行のためのコンピュータプログラムの命令、ならびにデータを受信する。
「データ処理装置(data processing apparatus)」という用語は、例として、プログラマブルプロセッサ、コンピュータ、あるいは複数のプロセッサまたはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。データ処理装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、ASIC(特定用途向け集積回路)、またはGPU(グラフィックス処理ユニット)を含むことができる。装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を作るコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つまたは複数の組合せをなすコードをも含むことができる。
本明細書で説明されるプロセスおよび論理フローは、入力データに対して動作し、出力を生成することによって動作を実施するために、1つまたは複数のコンピュータプログラムを実行する、1つまたは複数のコンピュータまたはプロセッサによって実施され得る。プロセスおよび論理フローは、専用論理回路、たとえば、FPGA、ASIC、またはGPUによって、あるいは専用論理回路と1つまたは複数のプログラムされたコンピュータとの組合せによっても実施され得る。
コンピュータプログラムの実行に好適なコンピュータは、汎用マイクロプロセッサまたは専用マイクロプロセッサまたはその両方、あるいは任意の他の種類の中央処理ユニットに基づき得る。概して、中央処理ユニットは、読取り専用メモリまたはランダムアクセスメモリ、あるいはその両方から、命令およびデータを受信する。コンピュータの要素は、命令を実行するための中央処理ユニットと、命令およびデータを記憶するための1つまたは複数のメモリデバイスとを含むことができる。中央処理ユニットおよびメモリは、専用論理回路によって増補されるか、または専用論理回路に組み込まれ得る。
概して、コンピュータはまた、1つまたは複数の記憶デバイスを含み、あるいは、それらからデータを受信するように、またはそれらにデータを転送するように動作可能に結合される。記憶デバイスは、たとえば、磁気ディスク、光磁気ディスク、または光ディスク、ソリッドステートドライブ、あるいは任意の他のタイプの非一時的コンピュータ可読媒体であり得る。ただし、コンピュータはそのようなデバイスを有する必要はない。したがって、コンピュータは、ローカルおよび/またはリモートである、1つまたは複数のメモリなど、1つまたは複数の記憶デバイスに結合され得る。たとえば、コンピュータは、コンピュータの一体構成要素である1つまたは複数のローカルメモリを含むことができるか、または、コンピュータは、クラウドネットワーク内にある1つまたは複数のリモートメモリに結合され得る。その上、コンピュータは、別のデバイス、ほんのいくつかの例を挙げれば、たとえば、携帯電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲーム機、全地球測位システム(GPS)受信機、あるいはポータブル記憶デバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ中に埋め込まれ得る。
構成要素は、直接的にまたは1つまたは複数の中間構成要素を介してのいずれかで、電気的にまたは光学的になど、相互的に互いに接続されることによって互い「に結合され(coupled to)」得る。構成要素はまた、構成要素のうちの1つが他のものに統合される場合、互い「に結合され」得る。たとえば、プロセッサに統合される記憶構成要素(たとえば、L2キャッシュ構成要素)が、プロセッサ「に結合され」る。
ユーザとの対話を提供するために、本明細書で説明される主題の実施形態は、ユーザへの情報を表示するためのディスプレイデバイス、たとえば、LCD(液晶ディスプレイ)モニタと、ユーザがコンピュータに入力を与えることができる入力デバイス、たとえば、キーボード、および、ポインティングデバイス、たとえば、マウス、トラックボールまたはタッチパッドとを有する、コンピュータ上に実装されるか、あるいはそのコンピュータと通信するように構成され得る。他の種類のデバイスも、ユーザとの対話を提供するために使用され得、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであり得、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む、任意の形態において受信され得る。さらに、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信することと、そのデバイスからドキュメントを受信することとによって、たとえば、ウェブブラウザから受信された要求に応答してユーザのデバイス上のウェブブラウザにウェブページを送信することによって、あるいは、ユーザデバイス、たとえば、スマートフォンまたは電子タブレット上で実行しているアプリと対話することによって、ユーザと対話することができる。また、コンピュータは、パーソナルデバイス、たとえば、メッセージングアプリケーションを実行しているスマートフォンに、テキストメッセージまたは他の形態のメッセージを送ることと、返信としてユーザから応答メッセージを受信することとによって、ユーザと対話することができる。
本明細書は、システム、装置、およびコンピュータプログラム構成要素に関して「ように構成される(configured to)」という用語を使用する。1つまたは複数のコンピュータのシステムが、特定の動作またはアクションを実施するように構成されることは、動作中、システムに動作またはアクションを実施させる、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せを、システムがその上にインストールしたことを意味する。1つまたは複数のコンピュータプログラムが、特定の動作またはアクションを実施するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されたときにその装置に動作またはアクションを実施させる命令を含むことを意味する。専用論理回路が、特定の動作またはアクションを実施するように構成されることは、その回路が、動作またはアクションを実施する電子論理を有することを意味する。
本明細書は多くの特有の実施形態の詳細を含んでいるが、これらは、特許請求の範囲自体によって定義される、請求されているものの範囲に対する限定として解釈されるべきでなく、むしろ、特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。また、別個の実施形態の文脈において本明細書で説明されるいくつかの特徴は、単一の実施形態における組合せで実現され得る。また、逆に、単一の実施形態の文脈において説明される様々な特徴は、複数の実施形態において別々に、または任意の好適な部分組合せで実現され得る。その上、特徴は、いくつかの組合せで働くものとして上記で説明され、さらには最初にそのようなものとして請求され得るが、請求される組合せからの1つまたは複数の特徴は、いくつかの場合にはその組合せから削除され得、請求項は、部分組合せ、または部分組合せの変形を対象とし得る。
同様に、動作は、特定の順序で、図面に示され、特許請求の範囲に記載されているが、これは、望ましい結果を達成するために、そのような動作が、示された特定の順序で、または連続した順序で実施されること、あるいはすべての示された動作が実施されることを必要とするものとして理解されるべきでない。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。その上、上記で説明された実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきでなく、説明されるプログラム構成要素およびシステムは、概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされ得ることを理解されたい。
主題の特定の実施形態が説明された。他の実施形態が以下の特許請求の範囲内に入る。たとえば、特許請求の範囲に記載されているアクションは、異なる順序で実施され得、依然として、望ましい結果を達成することができる。一例として、添付図に示されたているプロセスは、望ましい結果を達成するために、必ずしも、示された特定の順序、または連続した順序を必要とするとは限らない。いくつかの場合には、マルチタスキングおよび並列処理が有利であり得る。
100 環境
102 コンソーシアムブロックチェーンネットワーク
106 コンピューティングデバイス、コンピューティングシステム
108 コンピューティングデバイス、コンピューティングシステム
110 ネットワーク
200 概念アーキテクチャ
202 エンティティレイヤ
204 ホストされたサービスレイヤ
206 ブロックチェーンネットワークレイヤ
208 トランザクション管理システム
210 インターフェース
212 ブロックチェーンネットワーク
214 ノード
216 ブロックチェーン
300 システム
302 ブロックチェーンネットワーク
304a-d ブロックチェーンノード
306a-d サービスTEE
308a-d 鍵管理TEE、KM TEE
310 鍵管理センタ
320 リモート構成証明および鍵展開プロセス、リモート構成証明プロセス
330 スマート契約サービス論理
400 システム
402 アンシール秘密鍵
404 ルート鍵
406 署名秘密鍵
408 一時対称鍵、暗号化された鍵
410 KDF
412 契約鍵
414 シール公開鍵
416 検証公開鍵
450 要求された契約動作、スマート契約動作
452 シール
454 デジタルエンベロープ
456 アンシール
458 解読
460 イーサリアム仮想マシン、VM
462 暗号化
464 署名
466 署名された結果
480 クライアント
600 装置
602 受信モジュール
604 解読モジュール
606 実行モジュール
608 暗号化モジュール
610 署名モジュール

Claims (12)

  1. 信頼できる実行環境(TEE)においてスマート契約動作をセキュアに実行するためのコンピュータで実行される方法であって、前記方法は、
    ブロックチェーンネットワークに参加しているブロックチェーンノードによって、前記ブロックチェーンノードによってホストされたサービスTEEにおいて1つまたは複数のソフトウェア命令を実行するようにとの要求を受信するステップであって、前記要求が、前記サービスTEEに関連付けられた公開鍵によって暗号化されている、ステップと、
    前記サービスTEEにおいて前記ブロックチェーンノードによって、前記サービスTEEに関連付けられた第1の秘密鍵を用いて前記要求を解読するステップであって、前記第1の秘密鍵が、前記公開鍵とペアにされた、ステップと、
    前記要求の解読に応答して、前記サービスTEEにおいて前記ブロックチェーンノードによって、実行結果を作成するために前記1つまたは複数のソフトウェア命令を実行するステップと、
    前記サービスTEEにおいて前記ブロックチェーンノードによって、暗号化された結果を作成するために、前記サービスTEEに関連付けられたクライアント暗号化鍵を用いて前記実行結果を暗号化するステップと、
    前記TEEにおいて前記ブロックチェーンノードによって、署名された暗号化された結果を作成するために、前記TEEに関連付けられた第2の秘密鍵を使用して前記暗号化された結果に署名するステップとを含む、
    コンピュータで実行される方法。
  2. 前記公開鍵が、第1の公開鍵であり、
    前記クライアント暗号化鍵が、第2の公開鍵、または鍵導出関数に基づいてルート鍵から導出された対称鍵のうちの1つである、
    請求項1に記載のコンピュータで実行される方法。
  3. 前記ブロックチェーンノードが、前記第1の秘密鍵、前記第2の秘密鍵のうちの1つまたは複数を記憶する鍵管理TEEをさらにホストし、
    前記鍵管理TEEは、前記鍵管理TEEによって開始されるローカル構成証明を実施することに基づいて前記サービスTEEの識別情報が認証された後、前記第1の秘密鍵、前記第2の秘密鍵、および前記ルート鍵を前記サービスTEEに提供する、
    請求項2に記載のコンピュータで実行される方法。
  4. 前記第1の秘密鍵、前記第2の秘密鍵、およびルート鍵は、鍵管理センタによって生成され、前記鍵管理センタによって開始されるリモート構成証明を実施することに基づいて鍵管理TEEの識別情報が認証された後、前記鍵管理TEEに提供される、
    請求項1から3のいずれか一項に記載のコンピュータで実行される方法。
  5. 前記第1の秘密鍵およびルート鍵が、前記サービスTEEのリブート動作に応答して、鍵管理TEEによって前記サービスTEEに提供される、
    請求項1から4のいずれか一項に記載のコンピュータで実行される方法。
  6. 前記1つまたは複数のソフトウェア命令が、スマート契約に関連付けられ、
    ルート鍵が、前記スマート契約の状態に基づいて、鍵管理TEEに記憶された複数の前記ルート鍵から選択される、
    請求項1から5のいずれか一項に記載のコンピュータで実行される方法。
  7. 第1の公開鍵が、鍵管理センタによって生成され、前記要求を暗号化するためにクライアントに提供される、
    請求項1から6のいずれか一項に記載のコンピュータで実行される方法。
  8. 前記ブロックチェーンノードによって受信された前記要求が、前記1つまたは複数のソフトウェア命令を暗号化するために前記クライアント暗号化鍵を使用することをさらに含む、
    請求項1から7のいずれか一項に記載のコンピュータで実行される方法。
  9. 前記第1の秘密鍵を用いて前記要求を解読するステップが、
    前記第1の秘密鍵を用いて前記クライアント暗号化鍵を解読するステップと、
    前記クライアント暗号化鍵を用いて前記1つまたは複数のソフトウェア命令を解読するステップとを含む、
    請求項8に記載のコンピュータで実行される方法。
  10. 鍵管理センタが、前記第2の秘密鍵に対応する検証公開鍵を記憶し、前記署名された暗号化された結果を検証するために前記検証公開鍵をクライアントに提供する、
    請求項1から9のいずれか一項に記載のコンピュータで実行される方法。
  11. 信頼できる実行環境(TEE)においてスマート契約動作をセキュアに実行するシステムであって、
    1つまたは複数のプロセッサと、
    前記1つまたは複数のプロセッサに結合され、請求項1から10のいずれか一項に記載の方法を実行するために、前記1つまたは複数のプロセッサによって実行可能である命令を記憶した1つまたは複数のコンピュータ可読メモリとを含む、
    システム。
  12. 信頼できる実行環境(TEE)においてスマート契約動作をセキュアに実行する装置であって、前記装置が、請求項1から10のいずれか一項に記載の方法を実施するための複数のモジュールを含む、
    装置。
JP2019559279A 2019-04-26 2019-04-26 信頼できる実行環境におけるスマート契約動作のセキュアな実行 Pending JP2020528224A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/084523 WO2019137564A2 (en) 2019-04-26 2019-04-26 Securely executing smart contract operations in a trusted execution environment

Publications (2)

Publication Number Publication Date
JP2020528224A true JP2020528224A (ja) 2020-09-17
JP2020528224A5 JP2020528224A5 (ja) 2021-01-07

Family

ID=67218454

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019559279A Pending JP2020528224A (ja) 2019-04-26 2019-04-26 信頼できる実行環境におけるスマート契約動作のセキュアな実行

Country Status (9)

Country Link
US (1) US10839070B1 (ja)
EP (1) EP3642753B1 (ja)
JP (1) JP2020528224A (ja)
KR (1) KR102263325B1 (ja)
CN (1) CN111095256B (ja)
AU (1) AU2019207311B2 (ja)
CA (1) CA3061808C (ja)
SG (1) SG11201910054WA (ja)
WO (1) WO2019137564A2 (ja)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110535833B (zh) * 2019-08-07 2020-06-09 中国石油大学(北京) 一种基于区块链的数据共享控制方法
CN112765610A (zh) * 2019-08-30 2021-05-07 创新先进技术有限公司 交易调度方法及装置
EP3732644A4 (en) 2019-09-11 2020-11-04 Advanced New Technologies Co., Ltd. SYSTEM AND PROCEDURE FOR MANAGING DIGITAL ASSETS
WO2019228564A2 (en) 2019-09-11 2019-12-05 Alibaba Group Holding Limited System and method for digital asset transfer
CN110473108B (zh) * 2019-09-16 2023-09-01 北京京东振世信息技术有限公司 基于区块链的合约生成方法和装置
CN112862483B (zh) * 2019-11-12 2024-04-09 航天信息股份有限公司 一种基于智能合约的身份验证方法和装置
US11134112B2 (en) 2019-11-21 2021-09-28 Visa International Service Association Secure multi-party random bit generation
CN110890962B (zh) * 2019-12-20 2021-04-13 支付宝(杭州)信息技术有限公司 认证密钥协商方法、装置、存储介质及设备
EP3859652A1 (en) * 2020-01-30 2021-08-04 elblox AG Technique for trustless cryptographic verification of energy allocations
CN111371557B (zh) * 2020-02-26 2024-01-23 百度在线网络技术(北京)有限公司 区块链数据处理方法、装置、电子设备及介质
CN111427663A (zh) * 2020-03-24 2020-07-17 杭州溪塔科技有限公司 一种基于智能合约的虚拟机系统及其操作方法
CN111460482B (zh) * 2020-04-15 2024-04-16 中国银行股份有限公司 一种基于区块链的摇号方法及装置
CN113691437B (zh) * 2020-05-18 2023-04-18 山东浪潮质量链科技有限公司 一种基于区块链的即时通讯方法、设备及介质
CN111565204B (zh) * 2020-07-16 2021-06-18 百度在线网络技术(北京)有限公司 区块链运行方法、装置、设备及存储介质
CN111563253B (zh) * 2020-07-16 2020-11-03 百度在线网络技术(北京)有限公司 智能合约运行方法、装置、设备及存储介质
CN111858768B (zh) * 2020-07-27 2023-06-16 苏州区盟链数字科技有限公司 一种优化区块链可信节点与共识算法的装置
CN112104606B (zh) * 2020-08-12 2022-06-17 北京智融云河科技有限公司 一种基于随机多节点的可信执行方法和系统
CN112800071A (zh) * 2020-08-24 2021-05-14 支付宝(杭州)信息技术有限公司 基于区块链的业务处理方法、装置、设备及存储介质
CN111741028B (zh) * 2020-08-24 2020-11-24 支付宝(杭州)信息技术有限公司 业务处理方法、装置、设备及系统
CN111767578B (zh) * 2020-08-31 2021-06-04 支付宝(杭州)信息技术有限公司 一种数据检验方法、装置及设备
CN112118245B (zh) * 2020-09-10 2023-01-10 中国联合网络通信集团有限公司 密钥管理方法、系统和设备
CN111814198B (zh) * 2020-09-11 2021-03-23 支付宝(杭州)信息技术有限公司 一种基于区块链的用户隐私数据提供方法及装置
CN112134956A (zh) * 2020-09-23 2020-12-25 中国科学院深圳先进技术研究院 一种基于区块链的分布式物联网指令管理方法和系统
US11700178B2 (en) 2020-10-30 2023-07-11 Nutanix, Inc. System and method for managing clusters in an edge network
US11153163B1 (en) * 2020-10-30 2021-10-19 Nutanix, Inc. Cloud-controlled configuration of edge processing units
CN112532385A (zh) * 2020-11-20 2021-03-19 天翼电子商务有限公司 一种基于可信执行环境的数据共享方法
CN114637995A (zh) 2020-12-15 2022-06-17 福瑞斯技术有限公司 具有多种异构tee实施的方法和系统
CN112560097B (zh) * 2020-12-22 2022-09-30 广州技象科技有限公司 一种电力业务数据的存储管理方法及装置
CN113079025A (zh) * 2021-04-07 2021-07-06 上海万向区块链股份公司 兼容多种公开密钥算法签名的方法和系统
CN113221165B (zh) * 2021-05-11 2022-04-22 支付宝(杭州)信息技术有限公司 一种基于区块链的用户要素认证方法及装置
CN113239375B (zh) * 2021-05-13 2022-06-17 杭州趣链科技有限公司 基于区块链的隐私要素数据共享系统、方法、计算机设备及介质
CN113688394B (zh) * 2021-06-07 2023-08-25 重庆大学 安全可信执行环境下的基于区块链的外包计算系统及方法
US11954226B2 (en) * 2021-08-17 2024-04-09 International Business Machines Corporation Verifiable privacy preserving computation
CN113422688B (zh) * 2021-08-19 2021-10-29 西南石油大学 一种云存储数据的快速审计方法
EP4145322A1 (en) * 2021-09-01 2023-03-08 Fluency Group Ltd Systems and methods for implementing privacy layer in cbdc networks
US20230074475A1 (en) * 2021-09-01 2023-03-09 Fluency Group Ltd. Systems And Methods For Implementing Privacy Layer In CBDC Networks
WO2023030998A1 (en) * 2021-09-01 2023-03-09 Fluency Group Ltd Systems and methods for implementing privacy layer in cbdc networks
CN113849565A (zh) * 2021-09-26 2021-12-28 支付宝(杭州)信息技术有限公司 用于可信上链的方法及终端设备
CN114124454A (zh) * 2021-10-21 2022-03-01 深圳致星科技有限公司 消息发送方法、系统、电子设备、可读存储介质及产品
CN114143117B (zh) * 2022-02-08 2022-07-22 阿里云计算有限公司 数据处理方法及设备
WO2023158695A1 (en) * 2022-02-15 2023-08-24 Google Llc Secure environment for operations on private data
CN114584293B (zh) * 2022-02-28 2024-03-26 同济大学 一种基于TrustZone的区块链智能合约执行系统及方法
CN114553590B (zh) * 2022-03-17 2023-08-22 抖音视界有限公司 数据传输方法及相关设备
US11765065B1 (en) 2022-03-23 2023-09-19 Nutanix, Inc. System and method for scalable telemetry
CN114726878B (zh) * 2022-03-28 2024-02-23 广州广电运通金融电子股份有限公司 一种云端存储系统、设备和方法
FR3129504B1 (fr) * 2022-04-20 2023-11-17 Blocs Et Cie Procédés, terminal et serveur de gestion de données personnelles
CN114584306B (zh) * 2022-05-05 2022-08-02 腾讯科技(深圳)有限公司 一种数据处理方法和相关装置
CN114584307B (zh) * 2022-05-07 2022-09-02 腾讯科技(深圳)有限公司 一种可信密钥管理方法、装置、电子设备和存储介质
CN114595437B (zh) * 2022-05-09 2022-09-30 荣耀终端有限公司 访问控制方法、电子设备及计算机可读存储介质
CN114900318B (zh) * 2022-06-02 2024-04-19 浙江工商大学 基于密钥协商协议以及可验证的一轮通信可搜索加密方法
WO2023239946A1 (en) * 2022-06-09 2023-12-14 Precidian Investments, Llc Asset-backed digital tokens
CN115134075A (zh) * 2022-06-29 2022-09-30 蚂蚁区块链科技(上海)有限公司 跨子网调用方法、装置、电子设备和存储介质
CN115910255A (zh) * 2022-09-29 2023-04-04 海南星捷安科技集团股份有限公司 一种诊断辅助系统
CN116506227B (zh) * 2023-06-27 2023-09-19 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007060213A (ja) * 2005-08-24 2007-03-08 Fuji Xerox Co Ltd 鍵配布装置及び鍵配布方法
JP2011034530A (ja) * 2009-08-06 2011-02-17 Fuji Xerox Co Ltd 情報処理装置及びソフトウェア管理プログラム
JP2015186101A (ja) * 2014-03-25 2015-10-22 三菱電機株式会社 鍵交換装置、及び鍵交換方法
JP2018502505A (ja) * 2014-12-23 2018-01-25 ヴァレオ、コンフォート、アンド、ドライビング、アシスタンスValeo Comfort And Driving Assistance 仮想鍵を安全に送信する方法、およびモバイル端末を認証する方法
JP2019047334A (ja) * 2017-09-01 2019-03-22 学校法人慶應義塾 データ処理装置、データ処理方法及びデータ処理用プログラム
WO2019072297A2 (en) * 2018-12-13 2019-04-18 Alibaba Group Holding Limited INTELLIGENT CONTRACT SERVICE OUTSIDE CHAIN REGISTRY ("OFF-CHAIN") BASED ON A CONFIDENTIAL EXECUTION ENVIRONMENT

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3520318A4 (en) * 2016-09-29 2020-04-29 Nokia Technologies Oy CONFIDENCE CALCULATION METHOD AND APPARATUS
US10742393B2 (en) * 2017-04-25 2020-08-11 Microsoft Technology Licensing, Llc Confidentiality in a consortium blockchain network
US10747905B2 (en) 2017-05-11 2020-08-18 Microsoft Technology Licensing, Llc Enclave ring and pair topologies
GB201711878D0 (en) * 2017-07-24 2017-09-06 Nchain Holdings Ltd Computer - implemented system and method
US20190095879A1 (en) * 2017-09-26 2019-03-28 Cornell University Blockchain payment channels with trusted execution environments
CN107844704B (zh) * 2017-11-01 2019-12-31 浪潮集团有限公司 一种基于区块链可信智能合约加固方法
CN108449178B (zh) 2018-03-26 2020-12-22 北京豆荚科技有限公司 一种安全可信执行环境中根密钥的生成方法
US10305914B1 (en) * 2018-10-03 2019-05-28 Cyberark Software Ltd. Secure transfer of secrets for computing devices to access network resources
CN109461076A (zh) * 2018-10-09 2019-03-12 哈希(武汉)网络科技有限公司 一种区块链交易方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007060213A (ja) * 2005-08-24 2007-03-08 Fuji Xerox Co Ltd 鍵配布装置及び鍵配布方法
JP2011034530A (ja) * 2009-08-06 2011-02-17 Fuji Xerox Co Ltd 情報処理装置及びソフトウェア管理プログラム
JP2015186101A (ja) * 2014-03-25 2015-10-22 三菱電機株式会社 鍵交換装置、及び鍵交換方法
JP2018502505A (ja) * 2014-12-23 2018-01-25 ヴァレオ、コンフォート、アンド、ドライビング、アシスタンスValeo Comfort And Driving Assistance 仮想鍵を安全に送信する方法、およびモバイル端末を認証する方法
JP2019047334A (ja) * 2017-09-01 2019-03-22 学校法人慶應義塾 データ処理装置、データ処理方法及びデータ処理用プログラム
WO2019072297A2 (en) * 2018-12-13 2019-04-18 Alibaba Group Holding Limited INTELLIGENT CONTRACT SERVICE OUTSIDE CHAIN REGISTRY ("OFF-CHAIN") BASED ON A CONFIDENTIAL EXECUTION ENVIRONMENT

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CHENG, R. ET AL., EKIDEN: A PLATFORM FOR CONFIDENTIALITY-PRESERVING, TRUSTWORTHY, AND PERFORMANT SMART CONTRACT EXECUT, vol. arXiv:1804.05141v1, JPN6021007174, 14 April 2018 (2018-04-14), pages 1 - 26, ISSN: 0004456339 *

Also Published As

Publication number Publication date
AU2019207311A1 (en) 2019-07-18
US20200342092A1 (en) 2020-10-29
AU2019207311B2 (en) 2020-10-29
KR20200126321A (ko) 2020-11-06
WO2019137564A2 (en) 2019-07-18
CN111095256A (zh) 2020-05-01
CA3061808A1 (en) 2019-07-18
WO2019137564A3 (en) 2020-03-12
CN111095256B (zh) 2023-12-01
KR102263325B1 (ko) 2021-06-15
EP3642753A4 (en) 2020-06-03
EP3642753A2 (en) 2020-04-29
SG11201910054WA (en) 2019-11-28
EP3642753B1 (en) 2022-06-15
CA3061808C (en) 2022-07-19
US10839070B1 (en) 2020-11-17

Similar Documents

Publication Publication Date Title
JP6869374B2 (ja) トラステッド実行環境のための分散型鍵管理
KR102263325B1 (ko) 신뢰 실행 환경에서 스마트 계약 동작을 안전하게 실행하는 방법
KR102392420B1 (ko) 다중키 쌍 시그너처를 사용한 프로그램 실행 및 데이터 증명 체계
EP3910907B1 (en) Retrieving access data for blockchain networks using highly available trusted execution environments
JP6811339B2 (ja) 高可用な高信頼実行環境を使用したブロックチェーンネットワークのためのパブリックデータの読み出し
US10657293B1 (en) Field-programmable gate array based trusted execution environment for use in a blockchain network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200124

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

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20201120

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20210216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210308

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210607

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210906