JP2023542681A - ブロックチェーンの許可フレームワークへのデバイスアイデンティティの統合 - Google Patents
ブロックチェーンの許可フレームワークへのデバイスアイデンティティの統合 Download PDFInfo
- Publication number
- JP2023542681A JP2023542681A JP2023517884A JP2023517884A JP2023542681A JP 2023542681 A JP2023542681 A JP 2023542681A JP 2023517884 A JP2023517884 A JP 2023517884A JP 2023517884 A JP2023517884 A JP 2023517884A JP 2023542681 A JP2023542681 A JP 2023542681A
- Authority
- JP
- Japan
- Prior art keywords
- blockchain
- node
- transaction
- blockchain network
- service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 74
- 238000004590 computer program Methods 0.000 claims abstract description 11
- 238000013475 authorization Methods 0.000 claims abstract description 6
- 230000002085 persistent effect Effects 0.000 claims abstract description 5
- 230000006870 function Effects 0.000 claims description 38
- 238000004891 communication Methods 0.000 claims description 32
- 230000004044 response Effects 0.000 claims description 32
- 230000007246 mechanism Effects 0.000 claims description 9
- 238000012795 verification Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 42
- 238000010586 diagram Methods 0.000 description 29
- 230000008569 process Effects 0.000 description 16
- 238000007726 management method Methods 0.000 description 11
- 230000008901 benefit Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000008520 organization Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- RWSOTUBLDIXVET-UHFFFAOYSA-N Dihydrogen sulfide Chemical compound S RWSOTUBLDIXVET-UHFFFAOYSA-N 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 101100219315 Arabidopsis thaliana CYP83A1 gene Proteins 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241000258963 Diplopoda Species 0.000 description 1
- 101000806846 Homo sapiens DNA-(apurinic or apyrimidinic site) endonuclease Proteins 0.000 description 1
- 101000835083 Homo sapiens Tissue factor pathway inhibitor 2 Proteins 0.000 description 1
- 101100269674 Mus musculus Alyref2 gene Proteins 0.000 description 1
- 101100140580 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) REF2 gene Proteins 0.000 description 1
- 102100026134 Tissue factor pathway inhibitor 2 Human genes 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000011248 coating agent Substances 0.000 description 1
- 238000000576 coating method Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3271—Cryptographic 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 challenge-response
- H04L9/3278—Cryptographic 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 challenge-response using physically unclonable functions [PUF]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3218—Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3239—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3271—Cryptographic 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 challenge-response
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
- H04L2209/805—Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
ブロックチェーンネットワークを構成するためのコンピュータ実装方法、ブロックチェーンの許可フレームワークへのデバイスアイデンティティを統合するためのコンピュータプログラム製品、およびブロックチェーンネットワークである。一実施形態は、ブロックチェーンネットワークの区切りノードにデバイスを登録することと、登録に基づく区切りノードのプロセッサによって、デバイスのプロファイルを作成することと、区切りノードのプロセッサによって、デバイスのためのパススルーサービスを実行することと、を含み得る。登録は、ネットワークインターフェースによって、デバイスから不変のデバイスアイデンティティを受信することを含み得る。
Description
本開示は、ブロックチェーンネットワークの構成および管理に関し、より具体的には、ブロックチェーンネットワークにおける「モノのインターネット」(IoT)デバイスの構成および管理に関するものである。
1948年のEDVACシステムの開発は、しばしばコンピュータ時代の始まりと言われる。それ以来、コンピュータシステムは非常に複雑な装置へと進化してきた。現在のコンピュータシステムは、通常、洗練されたハードウェアおよびソフトウェアコンポーネント、アプリケーションプログラム、オペレーティングシステム、プロセッサ、バス、メモリ、入力/出力デバイスなどの組み合わせを含む。半導体処理技術やコンピュータアーキテクチャの進歩により性能がどんどん向上し、その高い性能を生かすためにさらに高度なコンピュータソフトウェアが進化し、現在のコンピュータシステムはほんの数年前に比べてはるかに高性能になっている。
この新しい能力の応用のひとつがブロックチェーンである。ブロックチェーンとは、一般に、ビジネスネットワークにおけるトランザクションの記録と資産の追跡のプロセスを容易にする、共有された不変の台帳を指す。資産は有形(家、車、現金、土地)でも無形(知的財産、特許、著作権、ブランド)でもよい。ブロックチェーンネットワーク上では、実質的に価値のあるものなら何でも追跡および取引が可能であり、関係者全員のリスク軽減とコスト削減を実現する。
本開示の実施形態によれば、ブロックチェーンネットワークを構成するためのコンピュータ実装方法が提供される。一実施形態では、ブロックチェーンネットワークの区切りノードにデバイスを登録することと、前記区切りノードのプロセッサによって、前記登録に基づいて、前記デバイスのプロファイルを作成することと、前記区切りノードのプロセッサによって、前記デバイスのためのパススルーサービスを実行することと、を含み得る。前記登録は、ネットワークインタフェースによって、前記デバイスから不変のデバイスアイデンティティを受信することを含み得る。
本開示の実施形態によれば、ブロックチェーンネットワークの許可フレームワークにデバイスアイデンティティを統合するためのコンピュータプログラム製品が提供される。前記コンピュータプログラム製品は、プログラム命令をその中に実装したコンピュータ可読記憶媒体を含み得る。前記プログラム命令は、前記プロセッサに、ノードによって、パススルーセキュリティサービスを提供することと、前記ノードによって、デバイスを前記ブロックチェーンネットワーク上の登録ノードとして登録することと、前記登録に基づく前記ノードによって、セキュアエンクレーブ内の前記デバイスに仮想プロファイルを作成することと、前記デバイスのトランザクション相関テーブルを維持することと、前記ノードによって、前記デバイスのトランザクションコミットメントおよびクライアント通信を促進することと、を実行させることができる。いくつかの実施形態における前記デバイスはそれに関連する物理的複製不可関数を有する場合がある。前記登録は、前記デバイスが前記ノードに物理的複製不可関数チャレンジ応答を送信することを含む場合がある。前記パススルーセキュリティサービスは、ブロックチェーンネットワークにおけるピアの信頼できる登録を含む場合がある。前記トランザクション相関テーブルは、前記デバイスに関連するブロックチェーンエッセンシャルのレコードを含む場合があり、前記ブロックチェーンエッセンシャルは、チャネル、エンドースメントポリシー、および代理権限証明を含む。
好ましくは、本発明は、前記デバイスのトランザクション相関テーブルを更新することであって、前記トランザクション相関テーブルは、前記デバイスに関連するブロックチェーン関数のレコードを含む、更新することをさらに含む、方法を提供する。
好ましくは、本発明は、前記ブロックチェーン関数が、前記ブロックチェーンネットワークのエンドースメントポリシーおよび代理権限証明を維持することを含む、方法を提供する。
好ましくは、本発明は、ブロックチェーンネットワークのノードから、前記デバイスに向けられたメンバーシップサービスディレクティブを受信することと、前記メンバーシップサービスディレクティブに応答して、前記デバイスの前記トランザクション相関テーブルを更新することと、をさらに含む、方法を提供する。
好ましくは、本発明は、前記ブロックチェーンネットワークに向けられた前記デバイスからのメンバーシップサービスディレクティブを受信することと、前記メンバーシップサービスディレクティブに応答して、前記デバイスの前記トランザクション相関テーブルを更新することと、をさらに含む、方法を提供する。
好ましくは、本発明は、パススルーサービスが、前記ブロックチェーンネットワーク上のピア間の通信のためのチャネルを作成することを含む、方法を提供する。
好ましくは、本発明は、前記パススルーサービスが、前記デバイスに代わってトランザクションを促進することを含む、方法を提供する。
好ましくは、本発明は、前記パススルーサービスが、前記デバイスと前記ブロックチェーンネットワークの他のノードとの間の通信を促進することを含む、方法を提供する。
好ましくは、本発明は、前記パススルーサービスが、前記デバイスと前記ブロックチェーンネットワークの前記他のノードとの間のすべての通信をプロキシすることをさらに含む、方法を提供する。
好ましくは、本発明は、前記登録が、前記ブロックチェーンネットワークのメンバーシップサービスに前記デバイスを登録することをさらに含む、方法を提供する。
好ましくは、本発明は、前記登録が、前記デバイスをプライベートブロックチェーンネットワーク上のピアノードとして登録することを可能にする、方法を提供する。
好ましくは、本発明は、前記プロファイルが、前記デバイスのための仮想プロファイルを含み、前記仮想プロファイルは、前記デバイスのための暗号化鍵ペアを含み、前記暗号化鍵ペアは、前記区切りノードと関連付けられた安全な保管庫に格納される、方法を提供する。
好ましくは、本発明は、前記安全な保管庫が、ハードウェアセキュリティアーキテクチャを含む、方法を提供する。
好ましくは、本発明は、前記デバイスから登録要求を受信することと、前記登録要求に応答して、前記デバイスにチャレンジを送信することと、前記デバイスからの応答を検証することと、成功した検証に応答して、前記デバイスを登録することと、をさらに含む、方法を提供する。
好ましくは、本発明は、前記不変のデバイスアイデンティティが、前記デバイスに関連する物理的複製不可関数(PUF)を含む、方法を提供する。
好ましくは、本発明は、前記PUFが、不変の登録鍵に対する暗号証明を自動的に提供し、前記不変の登録鍵が、前記ブロックチェーンネットワークにおけるアイデンティティ機構として使用される、方法を提供する。
好ましくは、本発明は、前記デバイスがモノのインターネット(IoT)デバイスであり、前記区切りノードは、前記IoTデバイスに代わって分散型台帳を維持する、方法を提供する。
好ましくは、本発明は、前記区切りノードが、前記パススルーサービスを実行するための専用のハードウェアコプロセッサを備える、方法を提供する。
好ましくは、本発明は、前記区切りノードが、前記パススルーサービスを実行するための専用のハードウェアコプロセッサを備える、方法を提供する。
本開示の実施形態によれば、ブロックチェーンネットワークが提供される。一実施形態は、複数の比較的低い能力のピアと、少なくとも1つの比較的高い能力のピアと、を含む。前記比較的低い能力のピアの各々は、それに関連する不変のデバイスアイデンティティを有する場合がある。前記比較的高い能力のピアは、前記複数の前記比較的低い能力のピアに代わって、1または複数の予め定義された閾値を超えるコンピューティング能力を必要とするワークロードを実行する場合がある。
上記の概要は、本開示の図示された各実施形態またはすべての実装を説明することを意図するものではない。
本願に含まれる図面は、本明細書に組み込まれ、本明細書の一部を構成する。それらは、本開示の実施形態を例示し、説明とともに、本開示の原理を説明するのに役立つ。図面は、特定の実施形態を例示するものに過ぎず、本開示を限定するものではない。
本発明は、様々な変更および代替形態に従うことができるが、その具体的な内容は、図面において例として示されており、詳細に説明されることがある。しかしながら、その意図は、本発明を記載された特定の実施形態に限定することではないことを理解されたい。それどころか、その意図は、本発明の範囲内に入るすべての変更、等価物、および代替物をカバーすることである。
本開示の態様は、ブロックチェーンネットワークの構成および管理に関し、より特定の態様は、ブロックチェーンネットワークにおけるIoTデバイスの構成および管理に関するものである。本開示は、必ずしもそのような用途に限定されないが、本開示の様々な態様は、この文脈を用いた様々な例の議論を通じて理解され得る。
IoTは、一般に、電子機器、ソフトウェア、センサー、もしくはアクチュエーター、またはその組み合わせが組み込まれたデバイス、車両、標識、建物、およびその他のオブジェクトなどの特殊目的のコンピューティングシステムのネットワークとネットワーク接続を指し、これらのシステムが、他のIoTデバイスもしくはコンピュータシステムまたはその両方とデータを収集および交換できるようになるかもしれない。IoTは、既存のネットワークインフラストラクチャを全体で、これらのオブジェクトを遠隔で感知または制御することを可能にし、物理世界をコンピュータベースのシステムにさらに直接統合する機会を創出し、人間の介入の低減に加えて、効率、精度、および経済的利益を改善することにつながる。物理世界のオブジェクトがIoTセンサーやアクチュエーターで拡張されると、その組み合わせは、スマートグリッド、仮想発電所、スマートホーム、インテリジェント交通、スマートシティなどの技術も含む、サイバー物理システムのより一般的なクラスのインスタンスとなるのである。
現在、世界では、商業環境、産業環境、プライベート環境で使用されるIoTデバイスの数が劇的に増加している。職場環境、産業環境、家庭環境、公共施設、街中などは、他の機器と接続し、コマンドを受信し、情報を送信し、特定の機能を実行することができるネットワーク対応デバイスを装備することが増えている。一部の推定では、最終的に500億台を超えるIoTデバイス(相互に通信可能なインテリジェントデバイス)が存在すると予想されている。
しかし、IoTデバイスは、小型、安価、軽量に設計されていることが多い。また、パッシブ動作(例えば、リーダーによって送信される無線エネルギーだけを使用する)用に設計されている場合もある。これらの制約は、典型的には、特に現代のラップトップコンピュータ、スマートフォン、およびサーバコンピュータ(例えば、1または複数の予め定義された閾値よりも大きいプロセッサ速度、メモリサイズ、もしくはストレージサイズ、またはその組み合わせを有する)と比較して、比較的少ないローカルコンピューティング能力を有するIoTデバイス(例えば、1または複数の予め定義された閾値より小さいプロセッサ速度、メモリサイズ、もしくはストレージサイズ、またはその組み合わせを有する)に変換される。
このローカルコンピューティング能力の欠如は、IoTデバイスを含むブロックチェーンネットワークトランザクションなどのマシンツーマシン(M2M)トランザクションの処理に困難をもたらす可能性がある。例えば、いくつかのタイプのブロックチェーンネットワークにおける1つの重大な問題は、新しいピアデバイス(すなわち、この例示的な例におけるIoTデバイス)のアイデンティティおよび信頼性を確立することである。いくつかのタイプのブロックチェーンネットワークの関連する問題は、それらのピアデバイスのレジストリおよび中央管理である可能性があることである。この問題を解決するために、IoTおよび他のデバイスのアイデンティティ管理の使用からデバイスの署名の検証および証明まで、様々な選択肢が検討されてきたが、これらの選択肢のいずれも、多くのIoTデバイスのような低能力のコンピューティングシステムにとって適切であるとは判明していない。
したがって、本開示のいくつかの実施形態は、ブロックチェーンネットワークの処理ノードサービスもしくはインフラストラクチャまたはその両方に統合され得る、物理的複製不可関数などの不変のデバイスアイデンティティを提供し得る。いくつかの実施形態は、登録機構として不変のデバイスアイデンティティを採用することができ、より低いコンピューティングパワーのデバイスがブロックチェーンネットワークに参加することを可能にするためにパススルー信頼サービスを提供してもよい。これらのパススルーサービスは、登録、エンドースメント、台帳維持、チャネル定義および維持、データベースポインタ追跡、および代理権限証明を含んでもよい。
いくつかの実施形態は、IoTデバイスなどの低電力デバイスがブロックチェーンネットワークにおける計算ノードの要件を満たすことを可能にするために、低い処理オーバーヘッドでブロックチェーンネットワークの許可フレームワークに不変デバイスアイデンティティを統合し得る。これらの実施形態の1つの特徴および利点は、IoTデバイスなどの低電力デバイスおよびセンサーの信頼が、ブロックチェーンネットワークに参加することを可能にすることができることである。
これらの実施形態の1つの特徴および利点は、不変のデバイスアイデンティティが、不変の登録鍵に対する暗号証明を自動的に提供してもよく、この登録鍵は、その後、ブロックチェーンネットワークにおけるアイデンティティ機構として使用されてもよいということである。次いで、代表的なノードが区切りノードとして選択されてもよく、このノードは、IoTデバイスを認証し、信頼を確立するためにこの登録鍵を使用してもよい。信頼が確立されると、区切りノードは、ネットワークへの登録、IoTデバイスに代わる分散型台帳の維持、チャネルの要素の管理、エンドースメント機能の提供、および他のクライアント/ピア関連活動など、IoTデバイスのための、もしくはIoTデバイスの代わりに、またはその両方としてパススルーサービスを提供してもよい。このようにして、本開示のいくつかの実施形態は、区切りノードがネットワークの処理効率を有効にするトランザクション処理の局所的バージョンを提供し得るため、M2Mもしくはデバイス間通信またはその両方を改善し得る。
本開示は、ブロックチェーンネットワークの効率も向上させ得る。区切りノードは、特定の性能および計算集約的な作業負荷(例えば、1または複数の予め定義された閾値を超えるプロセッサ速度、メモリサイズ、もしくはストレージサイズ、またはその組み合わせを必要とする作業負荷)を指示するための専用ノードとして機能し得る。いくつかの実施形態は、これらのワークロードのために特別に設計されたハードウェア構成もしくはコプロセッサまたはその両方を用いて、これらの特殊なノードをさらに最適化することができる。例えば、区切りノードは、中央処理装置(CPU)から通信オーバーヘッドの一部をオフロードするための特殊な入力/出力プロセッサ(IOP)、多数のIoTデバイスのトランザクションを格納するためのより大きな量のランダムアクセスメモリ、もしくはIoTデバイスに代わって暗号化を実行するコプロセッサ、またはその組み合わせを含んでもよい。
本開示の実施形態は、一般に、IoTデバイス間の安全なトランザクション処理におけるM2Mおよびデバイス間(D2D)参加のための実用的なモデルを参照して説明されるが、他の様々な用途に適用することが可能である。例えば、いくつかの実施形態は、物理的複製不可関数(PUF)対応モバイルデバイスを使用するエンドユーザ/消費者に許可されたネットワークを拡張するための様々なプロキシサービスとして、もしくは鍵管理の対応する拡張とともに、またはその両方として使用され得る。
<データ処理システム>
図1は、いくつかの実施形態と一致する、データ処理システム(DPS)100aの実施形態を示している。この実施形態におけるDPS100aは、パーソナルコンピュータ、サーバコンピュータ、ラップトップまたはノートブックコンピュータ・PDA(Personal Digital Assistant)・タブレットコンピュータまたはスマートフォンなどのポータブルコンピュータ、自動車・飛行機・電話会議システム・家電などの大型デバイスに組み込まれたプロセッサ、スマートデバイス、または任意の他の適切なタイプの電子デバイスとして実施されてもよい。さらに、図1に示される構成要素以外の、またはこれに加えて構成要素が存在してもよく、そのような構成要素の数、タイプ、および構成は異なってもよい。さらに、図1は、DPS100aの代表的な主要構成要素を描いているに過ぎず、個々の構成要素は、図1に表されるよりも複雑であってよい。
図1は、いくつかの実施形態と一致する、データ処理システム(DPS)100aの実施形態を示している。この実施形態におけるDPS100aは、パーソナルコンピュータ、サーバコンピュータ、ラップトップまたはノートブックコンピュータ・PDA(Personal Digital Assistant)・タブレットコンピュータまたはスマートフォンなどのポータブルコンピュータ、自動車・飛行機・電話会議システム・家電などの大型デバイスに組み込まれたプロセッサ、スマートデバイス、または任意の他の適切なタイプの電子デバイスとして実施されてもよい。さらに、図1に示される構成要素以外の、またはこれに加えて構成要素が存在してもよく、そのような構成要素の数、タイプ、および構成は異なってもよい。さらに、図1は、DPS100aの代表的な主要構成要素を描いているに過ぎず、個々の構成要素は、図1に表されるよりも複雑であってよい。
図1のデータ処理システム100aは、システムバス122によって、メモリ112、大容量記憶インタフェース114、端末/ディスプレイインタフェース116、ネットワークインタフェース118および入力/出力(「I/O」)インタフェース120に接続された複数の中央処理装置110a~110d(ここでは一般的に、プロセッサ110またはCPU110と呼ぶ)を含む。本実施形態における大容量記憶装置インタフェース114は、システムバス122を、ダイレクトアクセス記憶装置140、ユニバーサルシリアルバス(「USB」)記憶装置141、または読み書き可能な光ディスクドライブ142などの1または複数の大容量記憶装置と接続させるものである。ネットワークインタフェース118は、DPS100aが、他のDPS100bと、通信媒体106を介して通信することを可能にする。また、メモリ112は、オペレーティングシステム124、複数のアプリケーションプログラム126、およびプログラムデータ128を含む。
図1のデータ処理システム100aの実施形態は、汎用コンピューティング装置である。したがって、プロセッサ110は、メモリ112に格納されたプログラム命令を実行することができる任意のデバイスであってよく、それ自体が1または複数のマイクロプロセッサもしくは集積回路またはその両方から構成されてもよい。本実施形態では、DPS100aは、より大きく、より能力の高いコンピュータシステムに典型的に見られるように、複数のプロセッサもしくは処理コアまたはその両方を含むが、他の実施形態では、DPS100aは、単一のプロセッサシステムもしくはマルチプロセッサシステムをエミュレートするように設計された単一のプロセッサまたはその両方を含んでよい。さらに、プロセッサ110は、メインプロセッサが単一チップ上のセカンダリプロセッサと共に存在する多数の異種データ処理システム100aを使用して実装されてもよい。別の例示的な例として、プロセッサ110は、同じタイプの複数のプロセッサを含む対称型マルチプロセッサシステムであってもよい。
データ処理システム100aが起動すると、関連するプロセッサ110は、最初に、DPS100aの物理的および論理的リソースを管理するオペレーティングシステム124を構成するプログラム命令を実行する。これらのリソースには、メモリ112、大容量記憶装置インタフェース114、端末/ディスプレイインタフェース116、ネットワークインタフェース118、およびシステムバス122が含まれる。プロセッサ110と同様に、いくつかのDPS100aの実施形態は、複数のシステムインタフェース114、116、118、120、およびバス122を利用することができ、これらは順番に、それぞれ独自の個別の完全にプログラムされたマイクロプロセッサを含むことができる。
オペレーティングシステム、アプリケーション、もしくはプログラム、またはその組み合わせのための命令(一般に「プログラムコード」、「コンピュータ使用可能プログラムコード」または「コンピュータ可読プログラムコード」と呼ばれる)は、システムバス122を介してプロセッサ110と通信している大容量記憶装置140、141、142に初期配置されてもよい。異なる実施形態におけるプログラムコードは、システムメモリ112または大容量記憶装置140、141、142などの異なる物理的または有形のコンピュータ可読媒体上に実装されてもよい。図1の例示的な例では、命令は、ダイレクトアクセス記憶装置140上の永続的ストレージの機能的形態で格納される。これらの命令は、次に、プロセッサ110による実行のためにメモリ112にロードされる。しかしながら、プログラムコードは、選択的に取り外し可能であり、プロセッサ110による実行のためにDPS100aにロードまたは転送され得るコンピュータ可読媒体142上の機能的形態で配置されてもよい。
システムバス122は、プロセッサ110、メモリ112、およびインタフェース114、116、118、120の間における通信を促進する任意のデバイスであってよい。さらに、本実施形態におけるシステムバス122は、システムバス122間の直接通信経路を提供する比較的単純な単一バス構造であるが、他のバス構造は、階層的、スターまたはウェブ構成におけるポイントツーポイントリンク、複数の階層的バス、並列経路および冗長経路などを含むが、これらに限定されず、本開示と一致する。
メモリ112と大容量記憶装置140、141、142は協調して動作し、オペレーティングシステム124、アプリケーションプログラム126、およびプログラムデータ128を格納する。本実施形態では、メモリ112は、データおよびプログラムを格納することができるランダムアクセス型の半導体装置である。図1では、その装置を単一のモノリシックな実体として概念的に描いているが、いくつかの実施形態におけるメモリ112は、キャッシュや他のメモリデバイスの階層構造など、より複雑な配置であってもよい。例えば、メモリ112は、複数のレベルのキャッシュに存在してもよく、これらのキャッシュは、1つのキャッシュが命令を保持する一方で、別のキャッシュが1または複数のプロセッサによって使用される非命令データを保持するように、機能によってさらに分割されてもよい。メモリ112は、様々ないわゆる不均一メモリアクセス(NUMA)コンピュータアーキテクチャのいずれかにおいて知られているように、さらに分散され、異なるプロセッサ110またはプロセッサ110のセットに関連付けられることがある。さらに、いくつかの実施形態は、DPS100aが、メモリ112および大容量記憶装置140、141、142などの複数の小さい記憶エンティティへのアクセスではなく、大きな単一の記憶エンティティへのアクセスを有するかのように動作することを可能にする仮想アドレス指定機構を利用してもよい。
オペレーティングシステム124、アプリケーションプログラム126、およびプログラムデータ128は、メモリ112内に含まれるものとして図示されているが、それらの一部または全部は、物理的に異なるコンピュータシステム上に位置してもよく、いくつかの実施形態では、例えば、通信媒体106を介して遠隔的にアクセスすることができる。このように、オペレーティングシステム124、アプリケーションプログラム126、およびプログラムデータ128は、メモリ112内に含まれるものとして図示されているが、これらの要素は、必ずしもすべてが同時に同じ物理デバイスに完全に含まれるわけではなく、他のDPS100aの仮想メモリに存在する可能性さえある。
システムインタフェース114、116、118、120は、様々な記憶装置およびI/Oデバイスとの通信をサポートする。大容量記憶装置インタフェース114は、典型的には回転磁気ディスクドライブ記憶装置、典型的にはフラッシュメモリを使用してデータを持続的に記憶するためにメモリとして集積回路アセンブリを使用するソリッドステートストレージデバイス(SSD)、またはこれら2つの組み合わせである1または複数の大容量記憶装置140、141、142の装着をサポートする。しかしながら、大容量記憶装置140、141、142は、ホストに対して単一の大型記憶装置として見えるように構成されたディスクドライブのアレイ(一般にRAIDアレイと呼ばれる)もしくはアーカイブ記憶媒体(ハードディスクドライブ、テープ(例えば、ミニDV)、書き込み可能なコンパクトディスク(例えば、CD-RおよびCD-RW)、デジタル多用途ディスク(例えば、DVD、DVD-R、DVD+R、DVD+RW、DVD-RAM)、ホログラフィー記憶システム、青色レーザーディスク(登録商標)、IBMミリピード装置など)、またはその両方を含む他の装置を含んでもよい。
端末/ディスプレイインタフェース116は、モニタ180などの1または複数のディスプレイユニットをデータ処理システム100aに直接接続するために使用される。これらのディスプレイユニット180は、LEDモニタなどの非インテリジェント(すなわち、ダム)端末であってもよいし、それ自体が、IT管理者や顧客がDPS100aと通信できるようにするために用いられる完全にプログラム可能なワークステーションであってもよい。しかしながら、ディスプレイインタフェース116は、1または複数のディスプレイユニット180との通信をサポートするために提供されるが、DPS100aは、顧客および他のプロセスとのすべての必要な対話がネットワークインタフェース118を介して起こり得るので、ディスプレイユニット180を必ずしも必要としないことに注意されたい。
通信媒体106は、任意の適切なネットワークまたはネットワークの組み合わせであってもよく、複数のDPS100aとの間のデータもしくはコードまたはその両方の通信に適した任意の適切なプロトコルをサポートしてもよい。したがって、ネットワークインタフェース118は、ネットワーク接続が現在のアナログ技術もしくはデジタル技術またはその両方を使用して行われるか、または将来の何らかのネットワーク機構を介して行われるかにかかわらず、そのような通信を促進する任意のデバイスであり得る。適切な通信媒体106は、「InfiniBand」またはIEEE(Institute of Electrical and Electronics Engineers)802.3x 「Ethernet」仕様の1または複数を使用して実装されたネットワーク、セルラー伝送ネットワーク、IEEE 802.11x・IEEE 802.16・General Packet Radio Service(「GPRS」)・FRS(Family Radio Service)またはBluetooth仕様のいずれかを実装した無線ネットワーク、FCC 02-48に記述されているものなどの超広帯域(「UWB」)技術、または同様のものを含むが、これらに制限されない。当業者は、多くの異なるネットワークおよびトランスポートプロトコルが、通信媒体106を実装するために使用できることを理解するであろう。Transmission Control Protocol/Internet Protocol(「TCP/IP」)スイートは、適切なネットワークおよびトランスポートプロトコルを含む。
<クラウドコンピューティング>
図2は、いくつかの実施形態と一致する、1または複数のDPS100aを含むクラウド環境を示す図である。本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載した教示の実装はクラウドコンピューティング環境に限定されない。むしろ、本発明の実施形態は、現在公知のまたは将来開発される他の任意の種類のコンピュータ環境と共に実施することができる。
図2は、いくつかの実施形態と一致する、1または複数のDPS100aを含むクラウド環境を示す図である。本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載した教示の実装はクラウドコンピューティング環境に限定されない。むしろ、本発明の実施形態は、現在公知のまたは将来開発される他の任意の種類のコンピュータ環境と共に実施することができる。
クラウドコンピューティングは、設定可能なコンピューティングリソースの共有プール(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシンおよびサービス)へ、簡便かつオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルであり、リソースは、最小限の管理労力または最小限のサービスプロバイダとのやり取りによって速やかに準備(provision)およびリリースできるものである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの実装モデルを含むことがある。
特性は以下の通りである。
・オンデマンド・セルフサービス:クラウドの消費者は、サービスプロバイダとの人的な対話を必要することなく、必要に応じて自動的に、サーバ時間やネットワークストレージなどのコンピューティング能力を一方的に準備することができる。
・ブロード・ネットワークアクセス:コンピューティング能力はネットワーク経由で利用可能であり、また、標準的なメカニズムを介してアクセスできる。それにより、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、PDA)による利用が促進される。
・リソースプーリング:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを利用して複数の消費者に提供される。様々な物理リソースおよび仮想リソースが、需要に応じて動的に割り当ておよび再割り当てされる。一般に消費者は、提供されたリソースの正確な位置を管理または把握していないため、位置非依存(location independence)の感覚がある。ただし消費者は、より高い抽象レベル(例えば、国、州、データセンタ)では場所を特定可能な場合がある。
・迅速な柔軟性(elasticity):コンピューティング能力は、迅速かつ柔軟に準備することができるため、場合によっては自動的に、直ちにスケールアウトし、また、速やかにリリースされて直ちにスケールインすることができる。消費者にとって、準備に利用可能なコンピューティング能力は無制限に見える場合が多く、任意の時間に任意の数量で購入することができる。
・測定されるサービス:クラウドシステムは、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブ顧客アカウント)に適したある程度の抽象化レベルでの測定機能を活用して、リソースの使用を自動的に制御し最適化する。リソース使用量を監視、制御、および報告して、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供することができる。
・オンデマンド・セルフサービス:クラウドの消費者は、サービスプロバイダとの人的な対話を必要することなく、必要に応じて自動的に、サーバ時間やネットワークストレージなどのコンピューティング能力を一方的に準備することができる。
・ブロード・ネットワークアクセス:コンピューティング能力はネットワーク経由で利用可能であり、また、標準的なメカニズムを介してアクセスできる。それにより、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、PDA)による利用が促進される。
・リソースプーリング:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを利用して複数の消費者に提供される。様々な物理リソースおよび仮想リソースが、需要に応じて動的に割り当ておよび再割り当てされる。一般に消費者は、提供されたリソースの正確な位置を管理または把握していないため、位置非依存(location independence)の感覚がある。ただし消費者は、より高い抽象レベル(例えば、国、州、データセンタ)では場所を特定可能な場合がある。
・迅速な柔軟性(elasticity):コンピューティング能力は、迅速かつ柔軟に準備することができるため、場合によっては自動的に、直ちにスケールアウトし、また、速やかにリリースされて直ちにスケールインすることができる。消費者にとって、準備に利用可能なコンピューティング能力は無制限に見える場合が多く、任意の時間に任意の数量で購入することができる。
・測定されるサービス:クラウドシステムは、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブ顧客アカウント)に適したある程度の抽象化レベルでの測定機能を活用して、リソースの使用を自動的に制御し最適化する。リソース使用量を監視、制御、および報告して、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供することができる。
サービスモデルは以下の通りである。
・サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを利用できることである。当該そのアプリケーションは、ウェブブラウザ(例えばウェブメール)などのシンクライアントインタフェースを介して、各種のクライアント装置からアクセスできる。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージや、個別のアプリケーション機能さえも含めて、基礎となるクラウドインフラストラクチャの管理や制御は行わない。ただし、顧客固有の限られたアプリケーション構成の設定はその限りではない。
・サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラム言語およびツールを用いて、消費者が作成または取得したアプリケーションを、クラウドインフラストラクチャに展開(deploy)することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、展開されたアプリケーションを制御でき、かつ場合によってはそのホスティング環境の構成も制御できる。
・サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、オペレーティングシステムやアプリケーションを含む任意のソフトウェアを消費者が展開および実行可能な、プロセッサ、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを準備することである。消費者は、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御でき、かつ場合によっては一部のネットワークコンポーネント(例えばホストファイアウォール)を部分的に制御できる。
・サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを利用できることである。当該そのアプリケーションは、ウェブブラウザ(例えばウェブメール)などのシンクライアントインタフェースを介して、各種のクライアント装置からアクセスできる。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージや、個別のアプリケーション機能さえも含めて、基礎となるクラウドインフラストラクチャの管理や制御は行わない。ただし、顧客固有の限られたアプリケーション構成の設定はその限りではない。
・サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラム言語およびツールを用いて、消費者が作成または取得したアプリケーションを、クラウドインフラストラクチャに展開(deploy)することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、展開されたアプリケーションを制御でき、かつ場合によってはそのホスティング環境の構成も制御できる。
・サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、オペレーティングシステムやアプリケーションを含む任意のソフトウェアを消費者が展開および実行可能な、プロセッサ、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを準備することである。消費者は、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御でき、かつ場合によっては一部のネットワークコンポーネント(例えばホストファイアウォール)を部分的に制御できる。
展開モデルは以下の通りである。
・プライベートクラウド:このクラウドインフラストラクチャは、特定の組織専用で運用される。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
・コミュニティクラウド:このクラウドインフラストラクチャは、複数の組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス)を持つ特定のコミュニティをサポートする。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
・パブリッククラウド:このクラウドインフラストラクチャは、不特定多数の人々や大規模な業界団体に提供され、クラウドサービスを販売する組織によって所有される。
・ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ以上のクラウドモデル(プライベート、コミュニティまたはパブリック)を組み合わせたものとなる。それぞれのモデル固有の実体は保持するが、標準または個別の技術によってバインドされ、データとアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を実現する。
・プライベートクラウド:このクラウドインフラストラクチャは、特定の組織専用で運用される。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
・コミュニティクラウド:このクラウドインフラストラクチャは、複数の組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス)を持つ特定のコミュニティをサポートする。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
・パブリッククラウド:このクラウドインフラストラクチャは、不特定多数の人々や大規模な業界団体に提供され、クラウドサービスを販売する組織によって所有される。
・ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ以上のクラウドモデル(プライベート、コミュニティまたはパブリック)を組み合わせたものとなる。それぞれのモデル固有の実体は保持するが、標準または個別の技術によってバインドされ、データとアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を実現する。
クラウドコンピューティング環境は、ステートレス性(statelessness)、低結合性(low coupling)、モジュール性(modularity)および意味論的相互運用性(semantic interoperability)に重点を置いたサービス指向型環境である。クラウドコンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
ここで図2を参照すると、例示的なクラウドコンピューティング環境50が描かれている。図示されるように、クラウドコンピューティング環境50は1つまたは複数のクラウドコンピューティングノード10を含む。これらに対して、クラウド消費者が使用するローカルコンピュータ装置(例えば、PDAもしくは携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、もしくは自動車コンピュータシステム54Nまたはこれらの組み合わせなど)は通信を行うことができる。ノード10は互いに通信することができる。ノード10は、例えば、上述のプライベート、コミュニティ、パブリックもしくはハイブリッドクラウドまたはこれらの組み合わせなど、1つまたは複数のネットワークにおいて、物理的または仮想的にグループ化(不図示)することができる。これにより、クラウドコンピューティング環境50は、サービスとしてのインフラストラクチャ、プラットフォームもしくはソフトウェアまたはこれらの組み合わせを提供することができ、クラウド消費者はこれらについて、ローカルコンピュータ装置上にリソースを維持する必要がない。なお、図2に示すコンピュータ装置54A~Nの種類は例示に過ぎず、コンピューティングノード10およびクラウドコンピューティング環境50は、任意の種類のネットワークもしくはネットワークアドレス指定可能接続(例えば、ウェブブラウザの使用)またはその両方を介して、任意の種類の電子装置と通信可能であることを理解されたい。
ここで図3を参照すると、クラウドコンピューティング環境50(図2)によって提供される機能的抽象化レイヤのセットが示されている。図2に示されるコンポーネント、レイヤおよび機能は例示に過ぎず、本発明の実施形態はこれらに限定されないことをあらかじめ理解されたい。図示するように、以下のレイヤおよび対応する機能が提供される。
ハードウェアおよびソフトウェアレイヤ60は、ハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム61、縮小命令セットコンピュータ(RISC)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶装置65、ならびにネットワークおよびネットワークコンポーネント66が含まれる。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
仮想化レイヤ70は、抽象化レイヤを提供する。当該レイヤから、例えば以下の仮想エンティティを提供することができる:仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75。
一例として、管理レイヤ80は以下の機能を提供することができる。リソース準備81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を可能にする。計量および価格設定82は、クラウドコンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する請求またはインボイス送付を可能にする。一例として、これらのリソースはアプリケーションソフトウェアのライセンスを含んでよい。セキュリティは、データおよび他のリソースに対する保護のみならず、クラウドコンシューマおよびタスクの識別確認を可能にする。ユーザポータル83は、コンシューマおよびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されたサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を可能にする。サービス品質保証(SLA)の計画および履行85は、SLAに従って将来必要になると予想されるクラウドコンピューティングリソースの事前手配および調達を可能にする。
ワークロードレイヤ90は、クラウドコンピューティング環境が利用可能な機能の例を提供する。このレイヤから提供可能なワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育の配信93、データ分析処理94、取引処理95、ならびに、ブロックチェーンノード96が含まれる。
<ブロックチェーンシステム>
図4は、いくつかの実施形態と一致する、ブロックチェーンネットワーク400の一実施形態のシステム図である。有利なことに、本実施形態のブロックチェーンネットワーク400は、ブロックチェーンにおけるアイデンティティ機構として使用される不変の登録鍵のための暗号証明を自動的に提供することができるPUFを提供してもよい。ネットワーク400は、PUFで有効にされた比較的低いコンピューティングパワーの複数のIoTデバイス(IoTデバイス)410(個々に、および集合的に、明確化のために一部のみラベル付けされる)、分散型台帳425を維持するブロックチェーンネットワーク420、および区切りノード430を含んでよい。いくつかの実施形態におけるブロックチェーンネットワーク420は、Hyperledger(登録商標)フレームワーク(HyperledgerはThe Linux Foundationの商標)など、既存のブロックチェーンインフラストラクチャを使用して、もしくはそれと互換性を持って、またはその両方で作成されてもよい。区切りノード430は、順番に、ブロックチェーンネットワーク420への登録、登録されたIoTデバイス410に代わって分散型台帳425を維持すること、登録されたIoTデバイス410に関連するトランザクション相関テーブル435の維持、チャンネルの要素の提供、エンドースメント機能の提供、および他のクライアント関連ブロックチェーン活動など、ブロックチェーンネットワーク420のパススルーサービスを提供し得る。
図4は、いくつかの実施形態と一致する、ブロックチェーンネットワーク400の一実施形態のシステム図である。有利なことに、本実施形態のブロックチェーンネットワーク400は、ブロックチェーンにおけるアイデンティティ機構として使用される不変の登録鍵のための暗号証明を自動的に提供することができるPUFを提供してもよい。ネットワーク400は、PUFで有効にされた比較的低いコンピューティングパワーの複数のIoTデバイス(IoTデバイス)410(個々に、および集合的に、明確化のために一部のみラベル付けされる)、分散型台帳425を維持するブロックチェーンネットワーク420、および区切りノード430を含んでよい。いくつかの実施形態におけるブロックチェーンネットワーク420は、Hyperledger(登録商標)フレームワーク(HyperledgerはThe Linux Foundationの商標)など、既存のブロックチェーンインフラストラクチャを使用して、もしくはそれと互換性を持って、またはその両方で作成されてもよい。区切りノード430は、順番に、ブロックチェーンネットワーク420への登録、登録されたIoTデバイス410に代わって分散型台帳425を維持すること、登録されたIoTデバイス410に関連するトランザクション相関テーブル435の維持、チャンネルの要素の提供、エンドースメント機能の提供、および他のクライアント関連ブロックチェーン活動など、ブロックチェーンネットワーク420のパススルーサービスを提供し得る。
本実施形態におけるIoTデバイス410は、ブロックチェーンネットワーク420などのM2Mまたはデバイス主導のトランザクションネットワークに参加してもよい。IoTデバイス410は、順に、各々、SRAM PUF、遅延PUF、バタフライPUF、金属抵抗PUF、双安定リングPUF、DRAM PUF、デジタルPUF、酸化物破断PUF、コーティングPUF、量子電子PUF、磁気PUF、光PUF、量子光PUF、RF PUF等のPUFで有効にされてもよい。いくつかの実施形態におけるPUFは、IoTデバイス410の固有の識別子として機能し得る所定の入力および条件(チャレンジ)に応答して、物理的に定義された「デジタル指紋」出力を提供し得る。
本実施形態におけるブロックチェーンネットワーク420は、暗号アーティファクトの管理を含む、信頼およびトランザクション処理設備を提供するトランザクション処理インフラストラクチャを含んでもよい。ブロックチェーンネットワーク上のノード410は、分散型台帳425を協調的に維持してもよい。
本実施形態における区切りノード430は、典型的には、クラウドコンピューティング環境50において比較的高いコンピューティングパワーを有するDPS100a上で実行される代表ノードであってよく、ブロックチェーンネットワーク420への登録などのパススルーサービスを提供することができ、比較的低いパワーのIoTデバイス410に代わって分散型台帳425を維持することができ、いくつかの実施形態において、チャネルの要素、エンドースメント機能、および他のクライアント関連またはピア関連の活動を含む場合がある。
いくつかの実施形態における区切りノード430は、IoTデバイス410とブロックチェーンネットワーク420との間の通信作業負荷を低減した仮想かつ安全なデバイス間通信のための独自のインタフェースを提供し得る。したがって、区切りノード430は、以下の方法の一部または全部を実行してもよい。
a.プロバイダパススルーセキュリティサービス―この方法は、IoTデバイス410の初期登録から、IoTデバイスPUF対応デバイスとのすべての通信に及ぶ可能性がある。
b.初期登録―この方法は、IoTデバイス410が、PUF応答をパススルーサービスに送信して、メンバーシップサービスとの信頼できる登録を実行することを可能にする。この方法は、IoTデバイス410がブロックチェーンネットワーク420上のノードとして登録されることを可能にし得る。
c.仮想セキュアプロファイル作成―登録時に、この方法は、セキュリティを促進するために、信頼できる実行環境(TEE)、信頼できるコンピューティングベース(TCB)、または同様のアーキテクチャを使用しなくても、ノードがセキュアエンクレーブ内にIoTデバイス410の仮想プロファイルを作成することを可能にする。すべての暗号アーティファクトを有する仮想プロファイルは、ノード上に作成されてもよく、これらの仮想プロファイルは、特にIoTデバイス410が低電力である場合に、IoTデバイス410に代わって互いにトランザクションを行ってもよい。
d.安全な鍵管理―この方法は、暗号アーティファクト、PUFを保護するための安全なプロファイルを提供し、設計はハードウェアセキュリティモジュール(HSM)を要求するので、PUF対応IoTデバイス410はすでに複製不可アドレスを有する特殊なハードウェアであるため、TEE/TCBおよびHSMが有効になっている特殊なハードウェアである必要はないだろう。
a.プロバイダパススルーセキュリティサービス―この方法は、IoTデバイス410の初期登録から、IoTデバイスPUF対応デバイスとのすべての通信に及ぶ可能性がある。
b.初期登録―この方法は、IoTデバイス410が、PUF応答をパススルーサービスに送信して、メンバーシップサービスとの信頼できる登録を実行することを可能にする。この方法は、IoTデバイス410がブロックチェーンネットワーク420上のノードとして登録されることを可能にし得る。
c.仮想セキュアプロファイル作成―登録時に、この方法は、セキュリティを促進するために、信頼できる実行環境(TEE)、信頼できるコンピューティングベース(TCB)、または同様のアーキテクチャを使用しなくても、ノードがセキュアエンクレーブ内にIoTデバイス410の仮想プロファイルを作成することを可能にする。すべての暗号アーティファクトを有する仮想プロファイルは、ノード上に作成されてもよく、これらの仮想プロファイルは、特にIoTデバイス410が低電力である場合に、IoTデバイス410に代わって互いにトランザクションを行ってもよい。
d.安全な鍵管理―この方法は、暗号アーティファクト、PUFを保護するための安全なプロファイルを提供し、設計はハードウェアセキュリティモジュール(HSM)を要求するので、PUF対応IoTデバイス410はすでに複製不可アドレスを有する特殊なハードウェアであるため、TEE/TCBおよびHSMが有効になっている特殊なハードウェアである必要はないだろう。
区切りノード430は、これらの方法を使用して、トランザクション相関テーブル(不図示)を維持してもよい。このテーブルは、チャネル、エンドースメントポリシー、データベースポインタおよび代理権限証明などのブロックチェーンネットワーク420の状態および構成のレコードを維持するテーブル形式であってよい。本実施形態における区切りノード430は、トランザクションのファイナリティにも参加することができる。すなわち、暗号アーティファクトおよびプロキシサービスの維持者として機能する以外に、このノード430は、トランザクションのコミットメントおよびクライアント通信を含む、トランザクションのファイナリティに参加してもよい。
いくつかの実施形態における区切りノード430は、公開鍵基盤(PKI)メンバーシップに基づいて、ブロックチェーンネットワーク420に対するプロキシと同様に、ハードウェアベースのアイデンティティデバイスのサブセットに対する分散/焦点化認証局(CA)としても機能し得る。これらの実施形態における区切りノード430は、ハードウェアベースのアイデンティティデバイスとネットワークとの間の登録およびプロキシの両方を行うことができる。その結果、外部の認証機関は、分散型性質、一時的な登録、およびトランザクションが提出されるかなりの数のデバイスを考えると、そのような登録されたデバイスを認識しない可能性がある。
<パススルー・サービス>
図5は、いくつかの実施形態と一致する、動作中の区切りノード430によって提供されるパススルーサービスの一例の方法500を例示するフローチャートである。図5の実施形態では、パススルーサービスは、IoTもしくは低電力PUFデバイスまたはその両方のすべてが通信する1つのサーバとして機能することができ、通信およびセキュリティを簡素化することができる。区切りノード430は、デバイスを登録してよく、仮想プロファイルを作成してよく、仮想プロファイル間などのすべてのトランザクションを実行してもよい。より具体的には、動作505において、区切りノード430は、初期化してよく、パススルーサービスの提供を開始してもよい。次に、区切りノード430は、動作510において、IoTデバイス410のうちの1つから登録要求を受信してもよい。これに応答して、区切りノードは、動作512において、そのIoTデバイス410に関連付けられたPUFを検証してよい。いくつかの実施形態では、これは、IoTデバイス410にチャレンジを送信すること、および応答を受信すること等を含み得る。いくつかの実施形態では、正しい応答は、IoTデバイス410の製造業者によって以前に測定/計算され、独立した安全なチャネルを介して通信された可能性がある。他の実施形態では、応答は、正しいものとして定義され、ブロックチェーンネットワーク420に対する将来の攻撃を防止するために使用される。
図5は、いくつかの実施形態と一致する、動作中の区切りノード430によって提供されるパススルーサービスの一例の方法500を例示するフローチャートである。図5の実施形態では、パススルーサービスは、IoTもしくは低電力PUFデバイスまたはその両方のすべてが通信する1つのサーバとして機能することができ、通信およびセキュリティを簡素化することができる。区切りノード430は、デバイスを登録してよく、仮想プロファイルを作成してよく、仮想プロファイル間などのすべてのトランザクションを実行してもよい。より具体的には、動作505において、区切りノード430は、初期化してよく、パススルーサービスの提供を開始してもよい。次に、区切りノード430は、動作510において、IoTデバイス410のうちの1つから登録要求を受信してもよい。これに応答して、区切りノードは、動作512において、そのIoTデバイス410に関連付けられたPUFを検証してよい。いくつかの実施形態では、これは、IoTデバイス410にチャレンジを送信すること、および応答を受信すること等を含み得る。いくつかの実施形態では、正しい応答は、IoTデバイス410の製造業者によって以前に測定/計算され、独立した安全なチャネルを介して通信された可能性がある。他の実施形態では、応答は、正しいものとして定義され、ブロックチェーンネットワーク420に対する将来の攻撃を防止するために使用される。
実施形態によっては、チャレンジ/応答ハンドシェイクが正常に検証された場合、または正常に完了した場合、区切りノード430は、動作515において、仮想サーバプロファイルにIoTデバイス410を登録することができる。任意選択で、区切りノード430はまた、動作520でIoTデバイス410の公開/秘密鍵ペアを作成してよく、動作525で鍵ペアを安全な保管庫に保管してもよい。
次に、動作530において、区切りノード430は、IoTデバイス410またはブロックチェーンネットワーク420内の他のノードのいずれかからメンバーシップサービスディレクティブを受信し得る。これに応じて、要求の性質(例えば、新しいチャネルを作成する要求であるか、既存のチャネルに向けられた新しい通信であるか)に応じて、区切りノード430は、動作540において、トランザクション相関テーブル内に新しいエントリを作成するか、トランザクション相関テーブル内の既存のエントリを参照するかのいずれかを行うことができる。いずれの場合も、区切りノード430は、動作550でメンバーシップサービスディレクティブに応答する。
図6Aは、いくつかの実施形態と一致する、動作中の区切りノード430によって提供されるパススルーサービスの別の例示的な方法600を示すフローチャートである。この例の区切りノード430は、IoTデバイス410(すなわち、アイデンティティピアノード)のプロキシとして機能する。動作605において、区切りノード430は、IoTデバイス410のうちの1つから、分散型台帳425に追加される提案されたトランザクションを受信し得る。動作610において、区切りノード430は、IoTデバイス410のうちの1つに関連付けられかつ認証局によって署名された、その安全な保管庫に格納された鍵ペアを使用して、いくつかの実施形態においてその専用のPKIハードウェアを用いて、提案されたトランザクションに代理で署名してもよい。動作612において、区切りノード430は、提案されたトランザクションへのポインタをそのトランザクション相関テーブルに格納し得る。
動作615において、区切りノード430は、ブロックチェーンネットワーク420のエンドーサーノードのうちの1つに提案されたトランザクションを提示してもよく、ブロックチェーンネットワーク420のプロトコルに従って提案されたトランザクションを通常処理することになる。これは、IoTデバイスのアイデンティティを確認するために認証局を使用することを含み得る。次に、動作620において、区切りノード430は、ブロックチェーンネットワーク420内の順序付けノードのうちの1つにエンドースされたトランザクションを提示してもよく、このノードもブロックチェーンネットワーク420のプロトコルに従って提案されたトランザクションを通常通り処理することになる。これは、再び、認証局を使用してIoTデバイス410のアイデンティティを確認することを含み得る。動作625において、ブロックチェーンネットワーク420は、ネットワークの通常のプロトコルを使用して、提案されたトランザクションを分散型台帳425上にファイナライズしてもよい。
図6Bは、いくつかの実施形態と一致する、動作中の区切りノード430によって提供されるパススルーサービスの別の例示的な方法650を示すフローチャートである。この例における区切りノード430は、IoTデバイス410(すなわち、アイデンティティピアノード)のプロキシとして機能する。動作655において、区切りノード430は、ブロックチェーンネットワーク420上の別のピアノードに向けられたIoTノード410のうちの1つからの作成チャネル要求を受信し得る。動作660において、区切りノード430は、いくつかの実施形態においてその専用のPKIハードウェアを使用し、IoTデバイス410のうちの1つに関連付けられかつ認証局によって署名された、その安全な保管庫に格納された鍵ペアを使用して、IoTデバイス410の代理でチャネル要求に署名してもよい。動作665において、区切りノード430は、そのトランザクション相関テーブルに要求されたチャネルのレコードを作成し得る。
次に、動作670において、区切りノード430は、チャネル要求を要求されたピアノードに転送し得る。ピアノードは、順番に、動作675において、署名および認証局を使用して、要求されたIoTデバイス410のアイデンティティを最初に確認することによって応答し得る。次いで、ピアノードは、動作680において、ブロックチェーンネットワーク420のプロトコルに従って、チャネル要求トランザクションを通常処理する。
これらの方法の1つの特徴および利点は、区切りノード430が、エンドーサーノード、オーダラーノード、および他のピアノードを含む、いくつかの実施形態におけるブロックチェーンネットワーク420の残りの部分に対して透過的であり得るということである。すなわち、他のノードは、提案されたトランザクションおよび要求がIoTデバイス410のうちの1つから直接来たかのように処理してもよい。有利には、これは、計算集約的なワークロードもしくはワークフローまたはその両方の性能を向上させるために、特殊なノードを使用することを可能にし得る。さらに、これらの実施形態における区切りノード430は、IoTデバイス410とブロックチェーンネットワーク420との間の通信作業負荷を低減した仮想かつ安全なデバイス間通信のためのインタフェースを提供し得る。
<ブロックチェーンアーキテクチャ>
図7Aは、いくつかの実施形態と一致する、ブロックチェーンアーキテクチャ構成700を示す。これらの実施形態におけるブロックチェーンアーキテクチャ700は、特定のブロックチェーン要素(例えば、ブロックチェーンノード702のグループ)を含んでもよい。区切りノード430上に作成された仮想セキュアプロファイルは、いくつかの実施形態において、個々のブロックチェーンノード720のように動作することもできる。ブロックチェーンノードのグループ702は、順番に、1つまたは複数のメンバーノード704~710(これらの4つのノードは例示によってのみ描かれている)を含んでもよい。これらのメンバーノード704~710は、ブロックチェーントランザクション追加および検証プロセス(コンセンサス)などの多くの活動に参加してもよい。メンバーノード704~710のうちの1または複数が、エンドースメントポリシーに基づいてトランザクションをエンドースしてもよく、アーキテクチャ700内のすべてのブロックチェーンノードに対して順序付けサービスを提供してもよい。メンバーノード704~710は、ブロックチェーン認証を開始し、ブロックチェーン層716に格納されたブロックチェーン不変台帳に書き込むことを求めてもよく、そのコピーは、基盤となる物理インフラストラクチャ714上に格納されてもよい。
図7Aは、いくつかの実施形態と一致する、ブロックチェーンアーキテクチャ構成700を示す。これらの実施形態におけるブロックチェーンアーキテクチャ700は、特定のブロックチェーン要素(例えば、ブロックチェーンノード702のグループ)を含んでもよい。区切りノード430上に作成された仮想セキュアプロファイルは、いくつかの実施形態において、個々のブロックチェーンノード720のように動作することもできる。ブロックチェーンノードのグループ702は、順番に、1つまたは複数のメンバーノード704~710(これらの4つのノードは例示によってのみ描かれている)を含んでもよい。これらのメンバーノード704~710は、ブロックチェーントランザクション追加および検証プロセス(コンセンサス)などの多くの活動に参加してもよい。メンバーノード704~710のうちの1または複数が、エンドースメントポリシーに基づいてトランザクションをエンドースしてもよく、アーキテクチャ700内のすべてのブロックチェーンノードに対して順序付けサービスを提供してもよい。メンバーノード704~710は、ブロックチェーン認証を開始し、ブロックチェーン層716に格納されたブロックチェーン不変台帳に書き込むことを求めてもよく、そのコピーは、基盤となる物理インフラストラクチャ714上に格納されてもよい。
いくつかの実施形態におけるブロックチェーンアーキテクチャ700は、アプリケーションプログラミングインタフェース(API)722にリンクされて、格納されたプログラム/アプリケーションコード720(例えば、チェーンコード、スマートコントラクトなど)にアクセスおよび実行する1または複数のアプリケーション724を含んでもよい。格納されたプログラム/アプリケーションコード720は、順番に、参加者が求めるカスタマイズされた構成に従って作成されることができ、自身の状態を維持することができ、自身の資産を制御することができ、外部情報を受信することができる。格納されたプログラム/アプリケーションコード720は、トランザクションとして展開され、分散型台帳への追記を介して、すべてのブロックチェーンノード704~710にインストールされることができる。
ブロックチェーン基盤またはプラットフォーム712は、ブロックチェーンデータ、サービス(例えば、暗号信頼サービス、仮想実行環境など)、および新しいトランザクションを受信および格納し、データエントリにアクセスしようとしている監査人にアクセスを提供するために使用され得る物理コンピュータインフラストラクチャ基盤の様々な層を含んでもよい。ブロックチェーン層716は、プログラムコードを処理するために必要な仮想実行環境へのアクセスを提供し、物理インフラストラクチャ714に関与するインタフェースを公開してもよい。暗号信頼サービス718は、資産交換取引などのトランザクションを検証し、情報を非公開にするために使用されてもよい。
図7Aのブロックチェーンアーキテクチャ構成は、ブロックチェーンプラットフォーム712によって公開される1または複数のインタフェースおよび提供されるサービスを介して、プログラム/アプリケーションコード720を処理および実行することができる。プログラム/アプリケーションコード720は、ブロックチェーンアセットを制御し得る。例えば、コード720は、データを格納および転送することができ、スマートコントラクトおよびその実行の対象となる条件または他のコード要素を有する関連するチェーンコードの形態でメンバーノード704~710によって実行されてもよい。非限定的な例として、スマートコントラクトは、リマインダー、更新、もしくは変更、更新等を対象とする他の通知、またはその組み合わせを実行するために作成されてもよい。スマートコントラクトは、それ自体、認可およびアクセス要件ならびに台帳の使用に関連するルールを識別するために使用され得る。例えば、文書属性情報726は、ブロックチェーン層716に含まれる1または複数の処理エンティティ(例えば、仮想マシン)によって処理されてもよい。結果728は、複数のリンクされた共有ドキュメントを含んでもよい。物理インフラストラクチャ714は、本明細書に記載されるデータまたは情報のいずれかを取得するために利用されてもよい。
いくつかの実施形態では、スマートコントラクトは、ハイレベルのアプリケーションおよびプログラミング言語を介して作成され、その後、ブロックチェーン内のブロックに書き込まれ得る。スマートコントラクトは、ブロックチェーン(例えば、ブロックチェーンピアの分散ネットワーク)に登録、保存、もしくは複製、またはその組み合わせが行われる実行可能コードを含んでもよい。トランザクションは、スマートコントラクトに関連する条件が満たされることに応答して、実行され得るスマートコントラクトコードの実行である。スマートコントラクトの実行は、デジタルブロックチェーン台帳の状態に対する信頼できる修正をトリガーすることができる。スマートコントラクトの実行によって引き起こされたブロックチェーン台帳への修正は、いくつかの実施形態において、1または複数のコンセンサスプロトコルを通じてブロックチェーンピアの分散ネットワーク全体に自動的に複製されてもよい。
スマートコントラクトは、鍵と値のペアのフォーマットでブロックチェーンにデータを書き込むことができる。いくつかの実施形態では、スマートコントラクトコードは、ブロックチェーンに格納された値を読み取ることができ、アプリケーション操作でそれらを使用することもできる。これらの実施形態におけるスマートコントラクトコードは、その後、様々な論理演算の出力をブロックチェーンに書き込むことができる。いくつかの実施形態におけるスマートコントラクトコードは、仮想マシンまたは他のコンピューティングプラットフォームにおいて一時的なデータ構造を作成するために使用され得る。これらの実施形態においてブロックチェーンに書き込まれるデータは、公開されてもよいし、暗号化されてプライベートとして維持されてもよい。スマートコントラクトによって使用/生成される一時的なデータは、供給された実行環境によってメモリに保持される場合があり、その後、ブロックチェーンに必要なデータが識別されると削除される場合がある。
いくつかの実施形態におけるチェーンコードは、付加的な機能を有するスマートコントラクトのコード解釈を含んでよい。いくつかの実施形態において、チェーンコードは、コンピューティングネットワーク上に展開されたプログラムコードとして実装されてもよく、ここで、コンセンサスプロセス中にチェーンバリデータによって一緒に実行および検証される。チェーンコードは、ハッシュを受信してもよく、ブロックチェーンから、以前に格納された特徴量抽出器の使用によって作成されたデータテンプレートに関連するハッシュを取得してもよい。ハッシュ識別子のハッシュと、格納された識別子テンプレートデータから作成されたハッシュとが一致する場合、チェーンコードは、要求されたサービスに認証鍵を送信してもよい。チェーンコードは、暗号の詳細と関連するブロックチェーンデータに書き込んでもよい。
図7Bは、いくつかの実施形態による、ブロックチェーンのノード間のブロックチェーントランザクションフロー750の一例を示している。これらの実施形態におけるトランザクションフローは、アプリケーションクライアントノード760によって承認ピアノード781に送信されたトランザクション提案791を含んでもよい。承認ピア781は、クライアント署名を検証してよく、トランザクションを開始するためにチェーンコード関数を実行してもよい。出力は、チェーンコードの結果、チェーンコードで読み取られた鍵/値のバージョンのセット(リードセット)、およびチェーンコードで書き込まれた鍵/値のセット(ライトセット)を含んでもよい。その後、提案応答792は、承認された場合、エンドースメント署名とともに、クライアント760に送り返されてもよい。
これに応答して、クライアント760は、エンドースメントをトランザクションペイロード793に組み立ててよく、それを順序付けサービスノード784にブロードキャストしてもよい。順序付けサービスノード784は、次に、順序付けされたトランザクションをブロックとしてチャネル上のすべてのピア781~783に配信してもよい。ブロックチェーンにコミットする前に、各ピア781~783は、トランザクションを検証してもよい。例えば、いくつかの実施形態におけるピアは、指定されたピアの正しい割当てが結果に署名し、トランザクションペイロード793に対して署名を認証したことを保証するために、エンドースメントポリシーをチェックしてもよい。
図7Bを引き続き参照すると、いくつかの実施形態におけるクライアントノード760は、エンドーサーを務めることができるピアノード781に要求を構築および送信することによって、トランザクション791を開始することができる。クライアント760は、サポートされるソフトウェア開発キット(SDK)を活用するアプリケーションを含んでもよく、このアプリケーションは、トランザクション提案を生成するために利用可能なAPIを利用してもよい。トランザクション提案は、今度は、データが分散型台帳に読み込まれるもしくは書き込まれるまたはその両方である(すなわち、資産のための新しい鍵値ペアを書き込む)ように、チェーンコード機能を呼び出す要求であってよい。SDKはトランザクション提案を適切に設計されたフォーマット(例えば、リモートプロシージャコール(RPC)上のプロトコルバッファ)にパッケージし、クライアントの暗号化クレデンシャルを取得してトランザクション提案に固有の署名を生成するためのシムとして機能する場合がある。
応答として、承認ピアノード781は、(a)トランザクション提案が整形式であること、(b)トランザクションが過去に既に提出されていないこと(リプレイ攻撃保護)、(c)署名が有効であること、(d)提出者(本例実施形態ではクライアント760)がそのチャネル上で提案された操作を行うことを適切に認可されていることを検証してもよい。承認ピアノード781は、トランザクション提案の入力を、呼び出されたチェーンコード関数の引数として受け取ることができる。次いで、チェーンコードは、応答値、リードセット、およびライトセットを含むトランザクション結果を生成するために、現在の状態データベースに対して実行されてもよい。いくつかの実施形態では、この時点では台帳の更新は行われない。その代わりに、値のセットは、承認ピアノード781の署名とともに、クライアント760のSDKに提案応答792として返されることがあり、クライアント760はアプリケーションが消費するペイロードを解析する。
これに対して、クライアント760のアプリケーションは、承認ピアの署名を検査/検証してもよく、提案応答が同じかどうかを判断するために、提案応答を比較してもよい。チェーンコードが台帳を照会しただけの場合、アプリケーションは照会応答を検査してもよく、通常、順序付けサービス784にトランザクションを送信しないであろう。クライアントアプリケーションが、台帳を更新するためにトランザクションを順序付けサービス784に提出しようとする場合、アプリケーションは、提出する前に、指定されたエンドースメントポリシーが満たされたかどうか(すなわち、トランザクションに必要なすべてのピアノードはトランザクションを承認したか)を判断してもよい。ここで、クライアントは、トランザクションの複数の当事者のうちの1つだけを含んでもよい。この場合、各クライアントは独自の承認ノードを有することができ、各承認ノードはトランザクションを承認する必要がある。このアーキテクチャは、アプリケーションが応答を検査しないことを選択するか、そうでなければ承認されていないトランザクションを転送する場合でも、エンドースメントポリシーはピアによって実行され、コミット検証フェーズで支持される。
検査が成功した後、動作793において、クライアント760は、エンドースメントをトランザクションに組み立ててよく、トランザクションメッセージ内のトランザクション提案および応答を、順序付けサービス784にブロードキャストしてもよい。トランザクションは、リード/ライトセット、承認ピアの署名、およびチャネルIDを含むことができる。順序付けサービス784は、動作を実行するためにトランザクションのコンテンツ全体を検査する必要はない。代わりに、順序付けサービス784は、単に、ネットワークにおけるすべてのチャネルからトランザクションを受信することができ、チャネルごとに時系列に順序付けすることができ、チャネルごとのトランザクションのブロックを作成することができる。
+トランザクションの実行によって生成される。ブロックにおけるトランザクションは、有効または無効であるとしてタグ付けされてもよい。さらに、動作795において、各ピアノード781~783は、ブロックをチャネルのチェーンに追加してもよく、有効なトランザクションごとに、ライトセットが現在の状態データベースにコミットされる。トランザクション(呼び出し)がチェーンに不変に付加されたことをクライアントアプリケーションに通知するために、また、トランザクションが有効であったか無効であったかを通知するために、イベントが発行されてもよい。
<許可されたブロックチェーン>
図8Aは、いくつかの実施形態と一致する、分散型非集中ピアツーピアアーキテクチャを特徴とする、許可されたブロックチェーンネットワークの一例を示す図である。この例では、ブロックチェーンユーザ802は、許可されたブロックチェーン804に対してトランザクションを開始し得る。この例では、トランザクションは、展開、呼び出し、または照会であってよく、SDKを活用するクライアント側アプリケーションを介して、APIを介して直接などで、発行されてもよい。ネットワークは、監査人のようなレギュレータ806へのアクセスを提供してもよい。ブロックチェーンネットワークオペレータ808は、レギュレータ806を「監査人」として、およびブロックチェーンユーザ802を「クライアント」として登録するなど、メンバーの許可を管理する。監査人は、台帳を照会することのみに制限されてもよく、一方、クライアントは、ある種のチェーンコードの展開、呼び出し、および照会を許可されてもよい。
図8Aは、いくつかの実施形態と一致する、分散型非集中ピアツーピアアーキテクチャを特徴とする、許可されたブロックチェーンネットワークの一例を示す図である。この例では、ブロックチェーンユーザ802は、許可されたブロックチェーン804に対してトランザクションを開始し得る。この例では、トランザクションは、展開、呼び出し、または照会であってよく、SDKを活用するクライアント側アプリケーションを介して、APIを介して直接などで、発行されてもよい。ネットワークは、監査人のようなレギュレータ806へのアクセスを提供してもよい。ブロックチェーンネットワークオペレータ808は、レギュレータ806を「監査人」として、およびブロックチェーンユーザ802を「クライアント」として登録するなど、メンバーの許可を管理する。監査人は、台帳を照会することのみに制限されてもよく、一方、クライアントは、ある種のチェーンコードの展開、呼び出し、および照会を許可されてもよい。
ブロックチェーン開発者810は、いくつかの実施形態において、チェーンコードおよびクライアント側アプリケーションを書くことができる。これらの実施形態におけるブロックチェーン開発者810は、インタフェースを介してネットワークに直接チェーンコードを展開することができる。従来のデータソース812からのクレデンシャルをチェーンコードに含めるために、開発者810は、データにアクセスするために帯域外接続を使用してもよい。この例では、ブロックチェーンユーザ802は、ピアノード814を介して、許可されたブロックチェーン804に接続してもよい。任意のトランザクションを進める前に、ピアノード814は、ユーザの役割および許可を管理する認証局816からユーザの登録証明書およびトランザクション証明書を取得することができる。いくつかの実施形態では、ブロックチェーンユーザは、許可されたブロックチェーン804上で取引するために、これらのデジタル証明書を所有する必要がある。他の実施形態では、ブロックチェーンユーザは、信頼の分散型チェーンを介するなど、他の技法を用いて認証されてもよい。一方、チェーンコードを利用しようとするユーザは、従来のデータソース812上でそのクレデンシャルを確認することを要求されてもよい。チェーンコードは、従来の処理プラットフォーム818を介してこのデータへの帯域外の接続を使用して、ユーザの認証を確認してもよい。
図8Bは、いくつかの実施形態と一致する、分散型非集中ピアツーピアアーキテクチャを特徴とする、許可されたブロックチェーンネットワークの別の例を示している。この例では、ブロックチェーンユーザ822は、許可されたブロックチェーン824にトランザクションを提出することができる。この例では、トランザクションは、展開、呼び出し、または照会であってよく、SDKを活用するクライアント側アプリケーションを介して、APIを介して直接などで、発行されてもよい。ネットワークは、監査人のようなレギュレータ826へのアクセスを提供してもよい。ブロックチェーンネットワークオペレータ828は、レギュレータ826を「監査人」として、およびブロックチェーンユーザ822を「クライアント」として登録するなど、メンバーの許可を管理する。監査人は、台帳を照会することのみに制限されてもよく、一方、クライアントは、ある種のチェーンコードの展開、呼び出し、および照会を許可されてもよい。
ブロックチェーン開発者831は、これらの実施形態において、チェーンコードおよびクライアント側アプリケーションを書くことができる。ブロックチェーン開発者831は、インタフェースを介してネットワークに直接チェーンコードを展開することができる。従来のデータソース832からのクレデンシャルをチェーンコードに含めるために、開発者831は、データにアクセスするために帯域外接続を使用してもよい。この例では、ブロックチェーンユーザ822は、ピアノード834を介して、ネットワークに接続する。任意のトランザクションを進める前に、ピアノード834は、認証局836からユーザの登録証明書およびトランザクション証明書を取得する。いくつかの実施形態では、ブロックチェーンユーザは、許可されたブロックチェーン824上で取引するために、これらのデジタル証明書を所有する必要がある。他の実施形態では、ブロックチェーンユーザは、信頼の分散型チェーンを介するなど、他の技法を用いて認証されてもよい。一方、チェーンコードを利用しようとするユーザは、従来のデータソース832上でそのクレデンシャルを確認することを要求されてもよい。チェーンコードは、従来の処理プラットフォーム838を介してこのデータへの帯域外の接続を使用して、ユーザの認証を確認してもよい。
図8Cは、いくつかの実施形態と一致する、様々な動作を実行するように構成された物理インフラストラクチャ811を含む例示的なシステムを示している。図8Cを参照すると、物理インフラストラクチャ811は、モジュール888およびモジュール889を含む。モジュール889は、例示的な実施形態のいずれかに含まれる動作ステップ878のいずれかを(モジュール812において)実行してもよいブロックチェーン820およびスマートコントラクト830(ブロックチェーン820に常駐してもよい)を含む。ステップ/動作878は、説明または図示された実施形態のうちの1または複数を含んでもよく、1または複数のスマートコントラクト830もしくはブロックチェーン820またはその両方から書き込まれるまたは読み取られる出力または書き込まれた情報を表すことができる。物理インフラストラクチャ811、モジュール888、およびモジュール889は、1または複数のコンピュータ、サーバ、プロセッサ、メモリ、もしくは無線通信デバイス、またはその組み合わせを含んでもよい。さらに、モジュール888およびモジュール889は、同じモジュールであってもよい。
図8Dは、いくつかの実施形態と一致する、様々な動作を実行するように構成された別の例示的なシステムを示す。図8Dを参照すると、システムは、モジュール812およびモジュール814を含む。モジュール814は、例示的な実施形態のいずれかに含まれる動作ステップ878のいずれかを(モジュール812において)実行してもよいブロックチェーン820およびスマートコントラクト830(ブロックチェーン820に常駐してもよい)を含む。ステップ/動作878は、説明または図示された実施形態のうちの1または複数を含んでもよく、1または複数のスマートコントラクト830もしくはブロックチェーン820またはその両方から書き込まれるまたは読み取られる出力または書き込まれた情報を表すことができる。物理モジュール812およびモジュール814は、1または複数のコンピュータ、サーバ、プロセッサ、メモリ、もしくは無線通信デバイス、またはその組み合わせを含んでもよい。さらに、モジュール812およびモジュール814は、同じモジュールであってもよい。
図8Eは、いくつかの実施形態と一致する、契約当事者間のスマートコントラクト構成と、ブロックチェーン820上でスマートコントラクト条件を強制するように構成された仲介サーバとを利用するように構成された例示的なシステムを示す。図8Eを参照すると、構成は、通信セッション、資産転送セッション、または1または複数のユーザデバイス852もしくは856またはその両方を明示的に識別するスマートコントラクト830によって駆動されるプロセスもしくは手順を表すことができる。スマートコントラクトの実行、動作、および結果は、サーバ854によって管理されてもよい。スマートコントラクト830のコンテンツは、スマートコントラクトトランザクションの当事者である1または複数のエンティティ852および856によるデジタル署名を要求してもよい。スマートコントラクトの実行結果は、ブロックチェーントランザクションとしてブロックチェーン820に書き込まれてもよい。スマートコントラクト830は、1または複数のコンピュータ、サーバ、プロセッサ、メモリ、もしくは無線通信デバイス、またはその組み合わせに存在し得るブロックチェーン820に存在する。
図8Fは、いくつかの実施形態と一致する、ブロックチェーンを含むシステム860を示す。図8Dの例を参照すると、アプリケーションプログラミングインタフェース(API)ゲートウェイ862は、ブロックチェーンロジック(例えば、スマートコントラクト830または他のチェーンコード)およびデータ(例えば、分散型台帳など)にアクセスするための共通のインタフェースを提供する。この例では、APIゲートウェイ862は、1または複数のエンティティ852および856をブロックチェーンピア(すなわち、サーバ854)に接続することによって、ブロックチェーン上でトランザクション(呼び出し、照会など)を実行するための共通インタフェースである。ここで、サーバ854は、世界状態のコピーおよび分散型台帳を保持するブロックチェーンネットワークピアコンポーネントであり、クライアント852および856が世界段階のデータを照会するだけでなく、スマートコントラクト830および承認ポリシーに応じて、承認ピアがスマートコントラクト830を実行するブロックチェーンネットワークにトランザクションを提出できるようにするものである。
<ブロック処理>
図9Aは、いくつかの実施形態と一致する、新しいデータブロック930が分散型台帳920に追加されるプロセス900を示し、図9Bは、いくつかの実施形態と一致する、ブロックチェーンのための新しいデータブロック930のコンテンツを示す。新しいデータブロック930は、ドキュメントリンクデータを含んでもよい。
図9Aは、いくつかの実施形態と一致する、新しいデータブロック930が分散型台帳920に追加されるプロセス900を示し、図9Bは、いくつかの実施形態と一致する、ブロックチェーンのための新しいデータブロック930のコンテンツを示す。新しいデータブロック930は、ドキュメントリンクデータを含んでもよい。
図9Aを参照すると、クライアント(不図示)は、ブロックチェーンノード911、912、もしくは913、またはその組み合わせにトランザクションを提出することができる。クライアントは、ブロックチェーン922上でアクティビティを実行するために任意のソースから受信された指示であってもよい。一例として、クライアントは、デバイス、人、またはエンティティなどの要求者の代わりに行動し、ブロックチェーンのためのトランザクションを提案するアプリケーションであってもよい。複数のブロックチェーンピア(例えば、ブロックチェーンノード911、912、および913)は、ブロックチェーンネットワークの状態および分散型台帳920のコピーを維持してもよい。異なるタイプのブロックチェーンノード/ピアは、クライアントによって提案されたトランザクションをシミュレートおよび承認する承認ピアと、エンドースメントを確認し、トランザクションを検証し、分散型台帳920にトランザクションをコミットするコミットピアとを含むブロックチェーンネットワークに存在してもよい。いくつかの実施形態では、ブロックチェーンノード911、912、および913は、エンドーサーノード、コミッターノード、またはその両方の役割を果たすことができる。
分散型台帳920は、不変の、シーケンス化されたレコードをブロックに格納するブロックチェーンと、ブロックチェーン922の現在の状態を維持する状態データベース924(現在の世界状態)とを含んでもよい。チャネルごとに1つの分散型台帳920が存在してもよく、各ピアは、自分がメンバーであるチャネルごとに分散型台帳920の自身のコピーを維持する。ブロックチェーン922は、各ブロックがN個のトランザクションのシーケンスを含むハッシュリンクされたブロックとして構造化された、トランザクションログであってよい。ブロックは、図9Bに示されるような様々な構成要素を含んでもよい。ブロックのリンク(図9Aに矢印で示す)は、現在のブロックのブロックヘッダ内に前のブロックのヘッダのハッシュを追加することによって生成されてもよい。このようにして、ブロックチェーン922上の全てのトランザクションは、ハッシュリンクを壊すことなくブロックチェーンデータの改ざんを防止して、シーケンスされ、暗号的にリンクされてもよい。さらに、リンクのために、ブロックチェーン922の最新のブロックは、それ以前に来たすべてのトランザクションを表す。ブロックチェーン922は、追加専用のブロックチェーンワークロードをサポートするピアファイルシステム(ローカルストレージまたは接続されたストレージ)上に格納されてもよい。
ブロックチェーン922および分散型台帳920の現在の状態は、状態データベース924に格納されてもよい。ここで、現在の状態データは、ブロックチェーン922のチェーントランザクションログに含まれたことのある全ての鍵の最新値を表す。チェーンコードの呼び出しは、状態データベース924の現在の状態に対してトランザクションを実行する。これらのチェーンコードの相互作用をより効率的にするために、すべての鍵の最新の値は、状態データベース924に格納されてもよい。状態データベース924は、ブロックチェーン922のトランザクションログへのインデックス付きビューを含んでもよく、したがって、それはいつでもチェーンから再生成され得る。状態データベース924は、トランザクションが受け入れられる前に、ピアの起動時に自動的に回復される(または必要に応じて生成される)場合がある。
承認ノードは、クライアントからトランザクションを受信し、シミュレーション結果に基づいてトランザクションを承認する。承認ノードは、トランザクションの提案をシミュレートするスマートコントラクトを保有している。承認ノードがトランザクションを承認すると、承認ノードはトランザクションの承認を作成し、これは承認ノードからクライアントアプリケーションに対して、シミュレーションされたトランザクションの承認を示す署名付き応答である。トランザクションを承認する方法は、チェーンコード内で指定される場合があるエンドースメントポリシーに依存する。エンドースメントポリシーの例は、「承認ピアの大多数がトランザクションを承認しなければならない」である。異なるチャネルは異なるエンドースメントポリシーを有する場合がある。承認されたトランザクションは、クライアントアプリケーションによって順序付けサービス910に転送される。
順序付けサービス910は、承認されたトランザクションを受け入れ、それらをブロックに順序付けし、ブロックをコミットピアに配信する。例えば、順序付けサービス910は、トランザクションの閾値に達したとき、タイマーがタイムアウトしたとき、または別の条件で、新しいブロックを開始することができる。図9Aの例では、ブロックチェーンノード912は、ブロックチェーン922に格納するための新しいデータブロック930を受信したコミットピアである。ブロックチェーンの最初のブロックは、ブロックチェーン、そのメンバー、そこに格納されたデータなどに関する情報を含む、ジェネシスブロックと呼ばれることがある。
順序付けサービス910は、順序付けノードのクラスタによって構成されてもよい。いくつかの実施形態における順序付けサービス910は、トランザクション、スマートコントラクトを処理しない場合がある、または共有台帳を維持しない場合がある。むしろ、これらの実施形態における順序付けサービス910は、承認されたトランザクションを受け入れ、それらのトランザクションが分散型台帳920にコミットされる順序を指定してもよい。ブロックチェーンネットワークのアーキテクチャは、「順序」の特定の実装(例えば、Solo、Kafka、BFTなど)がプラガブルコンポーネントとなるように設計されてもよい。
いくつかの実施形態におけるトランザクションは、一貫した順序で分散型台帳920に書き込まれてもよい。これらの実施形態におけるトランザクションの順序は、状態データベース924への更新がネットワークにコミットされるときに有効であることを保証するために確立されてもよい。暗号パズルを解くこと、すなわちマイニングによって順序付けが行われる暗号通貨ブロックチェーンシステム(例えば、ビットコインなど)とは異なり、この例では、分散型台帳920の当事者は、そのネットワークに最も適した順序付け機構を選択することができる。
いくつかの実施形態では、順序付けサービス910が新しいデータブロック930を初期化するとき、新しいデータブロック930はコミットピア(例えば、ブロックチェーンノード911、912、および913)にブロードキャストされてもよい。これに応答して、各コミットピアは、リードセットおよびライトセットが状態データベース924における現在の世界状態と依然として一致することを確認することによって、新しいデータブロック930内のトランザクションを検証してもよい。具体的には、コミットピアは、エンドーサーがトランザクションをシミュレートしたときに存在した読み取りデータが、状態データベース924における現在の世界状態と同一であるかどうかを判断してもよい。コミットピアは、トランザクションを検証すると、トランザクションを分散型台帳920上のブロックチェーン922に書き込んでよく、状態データベース924は、リードライトセットからのライトデータで更新されてよい。いくつかの実施形態では、トランザクションが失敗した場合(例えば、リードライトセットが状態データベース924における現在の世界状態と一致しないことをコミットピアが見つけた場合)、ブロックに順序付けされたトランザクションは依然としてそのブロックに含まれるが、無効であるとマークされ、状態データベース924は更新されない。
図9Bを参照すると、分散型台帳920のブロックチェーン922に格納される新しいデータブロック930(データブロックとも呼ばれる)は、いくつかの実施形態において、ブロックヘッダ940、ブロックデータ950、およびブロックメタデータ960などの複数のデータセグメントを含んでもよい。図9Bに示される新しいデータブロック930およびその内容などの様々な描かれたブロックおよびその内容は単なる例であり、例示的な実施形態の範囲を制限することを意図していないことを理解されたい。新しいデータブロック930は、ブロックデータ950内のN個のトランザクション(例えば、1、10、100、200、1000、2000、3000など)のトランザクション情報を格納してもよい。新しいデータブロック930はまた、ブロックヘッダ940内に前のブロック(例えば、図9Aのブロックチェーン922上)へのリンクを含んでもよい。特に、ブロックヘッダ940は、前のブロックのヘッダのハッシュを含んでもよい。また、ブロックヘッダ940は、固有のブロック番号、新しいデータブロック930のブロックデータ950のハッシュなどを含んでもよい。新しいデータブロック930のブロック番号は、固有であってよく、ゼロから始まる増分/連続した順序など、様々な順序で割り当てられてもよい。
ブロックデータ950は、新しいデータブロック930内に記録される各トランザクションのトランザクション情報を格納してもよい。例えば、トランザクションデータは、以下のうちの1または複数を含んでもよい:トランザクションのタイプ、バージョン、タイムスタンプ、分散型台帳920のチャネルID、トランザクションID、エポック、ペイロードの可視性、チェーンコードパス(deploy tx)、チェーンコード名、チェーンコードバージョン、入力(チェーンコードおよび関数)、公開鍵や証明書などのクライアント(作成者)の識別、クライアントの署名、エンドーサーの識別、エンドーサーの署名、提案ハッシュ、チェーンコードイベント、応答ステータス、名前空間、リードセット(トランザクションが読み取った鍵やバージョンのリストなど)、ライトセット(鍵と値のリストなど)、開始鍵、終了鍵、鍵のリスト、マークルツリークエリの概要などである。なお、トランザクションデータは、N個のトランザクションごとに格納してもよい。
いくつかの実施形態では、ブロックデータ950は、ブロックチェーン922におけるブロックのハッシュリンクされたチェーンに追加情報を追加する新しいデータ962を格納することもできる。追加情報は、本明細書で説明または図示されるステップ、特徴、プロセス、もしくはアクション、またはその組み合わせのうちの1または複数を含んでもよい。したがって、新しいデータ962は、分散型台帳920上のブロックの不変のログに格納されてもよい。そのような新しいデータ962を格納することの利点のいくつかは、本明細書に開示および図示された様々な実施形態に反映されている。図9Bでは、新しいデータ962はブロックデータ950に描かれているが、いくつかの実施形態では、ブロックヘッダ940またはブロックメタデータ960に配置されることも可能である。新しいデータ962は、組織内の文書をリンクするために使用される文書複合鍵を含むこともできる。
ブロックメタデータ960は、メタデータの複数のフィールドを(例えば、バイト配列などとして)格納してもよい。メタデータフィールドは、ブロック作成時の署名、最後の構成ブロックへの参照、ブロック内の有効および無効なトランザクションを識別するトランザクションフィルタ、ブロックを順序付けした順序付けサービスの持続された最後のオフセット、等を含んでもよい。署名、最後の構成ブロック、およびオーダラーメタデータは、順序付けサービス910によって追加されてもよい。一方、ブロックのコミッター(ブロックチェーンノード912など)は、エンドースメントポリシー、リード/ライトセットの検証などに基づいて、有効性/無効性情報を追加してもよい。トランザクションフィルタは、ブロックデータ950のトランザクション数に等しいサイズのバイト配列と、トランザクションが有効/無効であったかどうかを識別する検証コードとを含んでもよい。
図9Cは、いくつかの実施形態と一致する、デジタルコンテンツのためのブロックチェーン970の実施形態を示す。デジタルコンテンツは、1または複数のファイルおよび関連情報を含んでもよい。ファイルは、トランザクションデータ、メディア、画像、ビデオ、オーディオ、テキスト、リンク、グラフィック、アニメーション、ウェブページ、文書、または他の形態のデジタルコンテンツを含んでもよい。いくつかのブロックチェーンの実施形態の不変の、追加専用の態様は、デジタルコンテンツの完全性、有効性、および真正性を保護するセーフガードとして機能することが望ましい場合があり、許容性規則が適用される法的手続き、または証拠が考慮される他の設定、あるいはデジタル情報の提示および使用がその他の点で関心を持たれる場所での使用を好適なものにすることができる。この場合、デジタルコンテンツはデジタルエビデンスと呼ばれることがある。
これらの実施形態におけるブロックチェーンは、様々な方法で形成されてもよい。一実施形態では、デジタルコンテンツは、ブロックチェーン自体に含まれ、ブロックチェーンからアクセスされてもよい。例えば、ブロックチェーンの各ブロックは、関連するデジタルコンテンツに沿って、参照情報(例えば、ヘッダ、値など)のハッシュ値を格納してもよい。その後、ハッシュ値および関連するデジタルコンテンツは、一緒に暗号化されてもよい。したがって、ブロックチェーン内の各ブロックを復号化することによって、各ブロックのデジタルコンテンツにアクセスしてもよく、各ブロックのハッシュ値は、以前のブロックを参照するための基準として使用されてもよい。このことは、以下のように例示され得る。
ブロック1 ブロック2 ....... ブロックN
ハッシュ値1 ハッシュ値2 ハッシュ値N
デジタルコンテンツ1 デジタルコンテンツ2 デジタルコンテンツN
ブロック1 ブロック2 ....... ブロックN
ハッシュ値1 ハッシュ値2 ハッシュ値N
デジタルコンテンツ1 デジタルコンテンツ2 デジタルコンテンツN
一実施形態では、デジタルコンテンツは、ブロックチェーンに含まれなくてもよい。例えば、ブロックチェーンは、デジタルコンテンツを一切含まずに、各ブロックのコンテンツの暗号化されたハッシュを格納してもよい。デジタルコンテンツは、オリジナルファイルのハッシュ値に関連付けて、別の記憶領域またはメモリアドレスに格納されてもよい。別の記憶領域は、ブロックチェーンを格納するために使用されるのと同じ記憶装置であってもよいし、別の記憶領域、あるいは別のリレーショナルデータベースであってもよい。各ブロックのデジタルコンテンツは、関心のあるブロックのハッシュ値を取得または照会し、実際のデジタルコンテンツと対応付けて格納されている記憶領域でそのハッシュ値を検索することにより、参照またはアクセスすることができる。この動作は、例えば、データベースゲートキーパーによって実行されてもよい。このことは、以下のように例示することができる。
ブロックチェーン ストレージ領域
ブロック1ハッシュ値 ブロック1ハッシュ値...コンテンツ
. .
. .
. .
ブロックNハッシュ値 ブロックNハッシュ値...コンテンツ
ブロックチェーン ストレージ領域
ブロック1ハッシュ値 ブロック1ハッシュ値...コンテンツ
. .
. .
. .
ブロックNハッシュ値 ブロックNハッシュ値...コンテンツ
図9Cの例示的な実施形態では、ブロックチェーン970は、順序付けられたシーケンスにおいて暗号的にリンクされた多数のブロック9781、9782、・・・978Nを含み、N≧1である。ブロック9781、9782、・・・978Nを連結するために用いられる暗号化は、多数の鍵付きまたは非鍵付きハッシュ関数のいずれでもよい。一実施形態では、ブロック9781、9782、・・・978Nは、ブロック内の情報に基づく入力からnビット英数字出力(ここでnは256または他の数)を生成するハッシュ関数に従う。このようなハッシュ関数の例としては、SHA型(SHAはSecured Hash Algorithmの略)アルゴリズム、Merkle-Damgardアルゴリズム、HAIFAアルゴリズム、マークルツリーアルゴリズム、ノンスベースアルゴリズム、および非衝突耐性PRFアルゴリズムなどがあるが、それらに限定はしない。別の実施形態では、ブロック9781、9782、・・・978Nは、ハッシュ関数とは異なる関数によって暗号的に連結されてもよい。説明のために、以下の説明は、ハッシュ関数(例えば、SHA-2)を参照して行われる。
ブロックチェーンにおけるブロック9781、9782、・・・978Nの各々は、ヘッダ、ファイルのバージョン、および値を含んでもよい。ブロックチェーンにおけるハッシュ化の結果として、ヘッダおよび値は、ブロックごとに異なってもよい。一実施形態では、値は、ヘッダに含まれてもよい。以下により詳細に説明するように、ファイルのバージョンは、オリジナルファイルであってもよく、あるいはオリジナルファイルの異なるバージョンであってもよい。
ブロックチェーンの第1のブロック9781は、ジェネシスブロックと呼ばれ、ヘッダ9721、オリジナルファイル9741、および初期値9761を含む場合がある。ジェネシスブロックに使用されるハッシュスキーム、および実際に後続のすべてのブロックに使用されるハッシュスキームは、異なる場合がある。例えば、第1のブロック9781のすべての情報をまとめて一度にハッシュ化してもよいし、第1のブロック9781の情報のそれぞれまたは一部を個別にハッシュ化し、その後、個別にハッシュ化された部分のハッシュ化を実行してもよい。
ヘッダ9721は、1または複数の初期パラメータを含んでもよく、例えば、バージョン番号、タイムスタンプ、ノンス、ルート情報、難易度、合意プロトコル、期間、メディア形式、ソース、記述的キーワード、もしくはオリジナルファイル9741、もしくはブロックチェーンまたはその両方に関連する他の情報、またはその組み合わせを含むことができる。ヘッダ9721は、自動的(例えば、ブロックチェーンネットワーク管理ソフトウェアによって)またはブロックチェーン参加者によって手動で生成されてもよい。ブロックチェーンの他のブロック9782から978Nのヘッダとは異なり、ジェネシスブロックのヘッダ9721は、単に前のブロックがないため、前のブロックを参照しない可能性がある。
ジェネシスブロックのオリジナルファイル9741は、例えば、ブロックチェーンに含める前の処理の有無にかかわらず、デバイスによってキャプチャされたままのデータであってもよい。オリジナルファイル9741は、デバイス、メディアソース、またはノードからシステムのインタフェースを介して受信されてもよい。オリジナルファイル9741は、例えば、ユーザ、デバイス、もしくはシステムプロセッサ、またはその組み合わせによって手動または自動で生成され得るメタデータと関連付けられる場合がある。メタデータは、オリジナルファイル9741に関連して、第1のブロック9781に含まれる場合がある。
ジェネシスブロックにおける値9761は、オリジナルファイル9741の1または複数の固有の属性に基づいて生成された初期値であってよい。一実施形態では、1または複数の固有の属性は、オリジナルファイル9741のハッシュ値、オリジナルファイル9741のメタデータ、およびファイルに関連する他の情報を含んでもよい。一実施形態では、初期値9761は、以下の固有の属性に基づいてもよい。
1)オリジナルファイルのSHA-2計算ハッシュ値
2)発信元デバイスID
3)オリジナルファイルの開始タイムスタンプ
4)オリジナルファイルの初期保存場所
5)オリジナルファイルと関連するメタデータを現在制御するソフトウェアのためのブロックチェーンネットワークのメンバーID
1)オリジナルファイルのSHA-2計算ハッシュ値
2)発信元デバイスID
3)オリジナルファイルの開始タイムスタンプ
4)オリジナルファイルの初期保存場所
5)オリジナルファイルと関連するメタデータを現在制御するソフトウェアのためのブロックチェーンネットワークのメンバーID
ブロックチェーンにおける他のブロック9782から978Nもヘッダ、ファイル、および値を持つ。ただし、第1のブロックのヘッダ9721とは異なり、他のブロックにおけるヘッダ9722から972Nのそれぞれは、直前のブロックのハッシュ値を含んでいる。直前のブロックのハッシュ値は、直前のブロックのヘッダのハッシュ値だけであってもよいし、直前のブロック全体のハッシュ値であってもよい。残りの各ブロックに直前のブロックのハッシュ値を含めることで、矢印980で示すように、N番目のブロックからブロック単位でジェネシスブロック(および関連するオリジナルファイル)に戻ってトレースを実行し、監査可能かつ不変の管理の連鎖を確立することが可能である。
他のブロックにおけるヘッダ9722から972Nの各々は、他の情報(例えば、バージョン番号、タイムスタンプ、ノンス、ルート情報、難易度、合意プロトコルもしくは他のパラメータまたはその組み合わせ)、もしくは対応するファイルもしくは一般的なブロックチェーンまたはその両方に関連する情報も含むことができる。
他のブロックにおけるファイル9742~974Nは、例えば、実行される処理の種類に応じて、オリジナルファイルと同等であってもよいし、あるいはジェネシスブロックのオリジナルファイルを修正したものであってもよい。実行される処理の種類は、ブロックごとに異なってもよい。処理は、例えば、情報の訂正など、先行するブロックのファイルの情報を変更したり、ファイルから情報を取り去ったり、ファイルに情報を追加または追記したりするような、あらゆる変更を含むことができる。
加えて、または代替的に、処理は、先行するブロックからファイルを単にコピーすること、ファイルの記憶場所を変更すること、1または複数の先行するブロックからファイルを分析すること、ある記憶場所またはメモリ場所から別の場所にファイルを移動すること、またはブロックチェーンのファイルもしくはその関連メタデータまたはその両方に関連するアクションを実行することを含んでもよい。ファイルの分析を伴う処理は、例えば、ファイルに関連する様々な分析、統計、または他の情報を付加すること、含むこと、または他の方法で関連付けることを含んでもよい。
他のブロックにおける他のブロック9762から976Nの各値は固有の値であり、実行された処理の結果、すべて異なる値である。例えば、あるブロックの値は、前のブロックの値の更新バージョンに相当する。更新は、その値が割り当てられたブロックのハッシュに反映される。したがって、ブロックの値は、ブロックにおいてどのような処理が行われたかを示すとともに、ブロックチェーンを通じてオリジナルファイルに戻る追跡を可能にする。この追跡により、ブロックチェーン全体でファイルの管理の連鎖を確認することができる。
例えば、前のブロックのファイルの一部が、そのファイルに写っている人物の身元を保護するために、訂正、ブロックアウト、またはピクセル化されている場合を考える。この場合、訂正されたファイルを含むブロックは、訂正されたファイルに関連するメタデータ(例えば、どのように訂正が行われたか、誰が訂正を行ったか、訂正が行われた場所のタイムスタンプなど)を含むことになる。メタデータは、値を形成するためにハッシュ化されてもよい。ブロックのメタデータは、前のブロックの値を形成するためにハッシュ化された情報とは異なるため、値は互いに異なり、復号化されたときに復元される可能性がある。
一実施形態では、以下のいずれか1または複数が発生したときに、現在のブロックの値を形成するために、前のブロックの値が更新されて(例えば、新しいハッシュ値が計算されて)もよい。新しいハッシュ値は、この例示的な実施形態では、以下に記す情報の全てまたは一部をハッシュ化することによって計算されてもよい。
a)ファイルが何らかの形で処理された場合、新しいSHA-2計算ハッシュ値(例えば、ファイルが訂正、コピー、変更、アクセスされた場合、または他の何らかのアクションが行われた場合)。
b)ファイルの新しい保存場所
c)ファイルに関連付けられた新しいメタデータ
d)あるブロックチェーン参加者から別のブロックチェーン参加者へのファイルへのアクセスまたは制御の移転
a)ファイルが何らかの形で処理された場合、新しいSHA-2計算ハッシュ値(例えば、ファイルが訂正、コピー、変更、アクセスされた場合、または他の何らかのアクションが行われた場合)。
b)ファイルの新しい保存場所
c)ファイルに関連付けられた新しいメタデータ
d)あるブロックチェーン参加者から別のブロックチェーン参加者へのファイルへのアクセスまたは制御の移転
図9Dは、いくつかの実施形態と一致する、ブロックチェーン990のブロックの構造を表すことができる、ブロックの実施形態を示す図である。ブロック、ブロックi、ヘッダ972i、ファイル974i、および値976iを含んでもよい。
ヘッダ972iは、前のブロックであるブロックi-1のハッシュ値、および追加の参照情報を含んでもよく、これは、例えば、本明細書で議論される情報のタイプ(例えば、参照、特性、パラメータなどを含むヘッダ情報)のいずれかであってもよい。いくつかの実施形態におけるすべてのブロックは、いくつかの実施形態におけるジェネシスブロックを除く前のブロックのハッシュを参照してもよい。前のブロックのハッシュ値は、前のブロックのヘッダのハッシュだけであってもよいし、あるいはファイルおよびメタデータを含む前のブロックにおける情報のすべてまたは一部のハッシュであってもよい。
ファイル974iは、データ1、データ2、...、データNのような複数のデータを順番に含んでもよい。データは、データに関連する内容もしくは特性またはその両方を記述するメタデータ1、メタデータ2、...、メタデータNでタグ付けされる。例えば、各データのメタデータは、データのタイムスタンプを示す情報、データを処理する情報、データに描かれた人物または他のコンテンツを示すキーワード、もしくはファイル全体としての妥当性およびコンテンツ、特に後述の実施形態に関連して説明するようなデジタルエビデンスとしての使用を確立するために有用であり得る他の特徴、またはその組み合わせを含んでもよい。メタデータに加えて、各データは、改ざん、ファイル内のギャップ、およびファイルを介した順次参照を防止するために、前のデータへの参照REF1、REF2、...、REFNでタグ付けされてもよい。一旦メタデータがデータに割り当てられると(例えば、スマートコントラクトを通じて)、メタデータは、いくつかの実施形態においてハッシュが変化しない限り変更できず、無効化のために容易に特定することができる。したがって、これらの実施形態におけるメタデータは、ブロックチェーンにおける参加者による使用のためにアクセスされ得る情報のデータログを作成する。
いくつかの実施形態における値976iは、ハッシュ値または以前に議論された情報のタイプのいずれかに基づいて計算された他の値であってもよい。例えば、任意のブロックであるブロックiについて、そのブロックの値は、そのブロックに対して行われた処理(例えば、新しいハッシュ値、新しい記憶場所、関連するファイルの新しいメタデータ、制御またはアクセスの転送、識別子、または他のアクションまたは追加される情報を反映するために更新されてもよい。各ブロックの値は、ファイルおよびヘッダのデータに対するメタデータとは別であることが示されているが、別の実施形態では、このメタデータの一部または全部に基づくことができる。
ブロックチェーン970が形成されると、任意の時点で、いくつかの実施形態において、ブロックにわたる値のトランザクション履歴についてブロックチェーンに問い合わせることによって、ファイルに対する不変の管理の連鎖を得ることができる。この問い合わせ、または追跡手順は、最も現在含まれているブロック(例えば、最後の(N番目の)ブロック)の値を復号することから始まり、その後、ジェネシスブロックに到達してオリジナルファイルが復元されるまで、他のブロックの値を復号し続けることができる。復号化には、各ブロックでのヘッダやファイル、関連するメタデータの復号化も含まれる場合がある。
復号化は、各ブロックで行われた暗号化の種類に基づいて行われることがある。これは、秘密鍵、公開鍵、または公開鍵-秘密鍵のペアの使用を含む可能性がある。例えば、非対称暗号化が使用される場合、ブロックチェーン参加者またはネットワーク内のプロセッサは、予め定義されたアルゴリズムを使用して公開鍵および秘密鍵のペアを生成してもよい。公開鍵および秘密鍵は、何らかの数学的関係を通じて互いに関連付けられる場合がある。公開鍵は、他のユーザからメッセージを受信するためのアドレス(例えば、IPアドレスまたは自宅のアドレス)として機能するように、公に配布されてもよい。秘密鍵は秘密にされてもよく、他のブロックチェーン参加者に送信されるメッセージにデジタル署名するために使用されてもよい。署名は、今度は、受信者が送信者の公開鍵を使用して検証できるように、メッセージに含まれてもよい。このようにして、受信者は、送信者だけがこのメッセージを送信できたと確信することができる。
いくつかの実施形態では、鍵ペアを生成することは、ブロックチェーン上でアカウントを作成することと類似しているかもしれないが、実際にどこかに登録する必要はない。これらの実施形態において、ブロックチェーン上で実行されるすべてのトランザクションは、その秘密鍵を使用して送信者によってデジタル署名されてもよい。この署名は、アカウントの所有者のみが、ブロックチェーンのファイルを(スマートコントラクトによって決定される許可の範囲内であれば)追跡および処理できることを保証するのに役立つ場合がある。
<コンピュータプログラム製品>
本発明は、任意の可能な技術詳細レベルで統合されたシステム、方法もしくはコンピュータプログラム製品またはそれらの組み合せとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでよい。
本発明は、任意の可能な技術詳細レベルで統合されたシステム、方法もしくはコンピュータプログラム製品またはそれらの組み合せとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでよい。
コンピュータ可読記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有形の装置とすることができる。コンピュータ可読記憶媒体は、一例として、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置またはこれらの適切な組み合わせであってよい。コンピュータ可読記憶媒体のより具体的な一例としては、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、EPROM(またはフラッシュメモリ)、SRAM、CD-ROM、DVD、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化された装置、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータ可読記憶装置は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理装置に、または、ネットワーク(例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、もしくはワイヤレスネットワークネットワークまたはその組み合わせ)を介して外部コンピュータまたは外部記憶装置にダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバー、無線伝送、ルーター、ファイアウォール、スイッチ、ゲートウェイコンピュータ、もしくはエッジサーバーまたはその組み合わせで構成される。各コンピューティング/処理装置のネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理装置内のコンピュータ可読記憶媒体に格納するためにコンピュータ可読プログラム命令を転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、統合回路のための構成データ、またはSmalltalk、C++などのオブジェクト指向プログラミング言語と「C」プログラミング言語や類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかであってよい。コンピュータ可読プログラム命令は、スタンドアロンソフトウェアパッケージとして、完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または完全にリモートコンピュータまたはサーバ上で実行可能である。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され、または(例えば、インターネットサービスプロバイダーを使用したインターネット経由で)外部コンピュータに接続されてよい。いくつかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用してパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図もしくはブロック図またはその両方を参照して本明細書に記載されている。フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令がフローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/動作を実装するための手段を生成するように、機械を生成するためにコンピュータのプロセッサまたは他のプログラム可能なデータ処理装置に提供されることができる。これらのコンピュータ可読プログラム命令はまた、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/行為の態様を実装する命令を含む生成品の1つを命令が記憶されたコンピュータ可読プログラム命令が構成するように、コンピュータ、プログラム可能なデータ処理装置、もしくは特定の方法で機能する他のデバイスまたはその組み合わせに接続可能なコンピュータ可読記憶媒体の中に記憶されることができる。
コンピュータ、他のプログラム可能な装置、または他のデバイス上でフローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/行為を実行する命令のように、コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能な装置、または他のデバイス上で一連の操作ステップを実行し、コンピュータ実装された過程を生成することができる。
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品が実行可能な実装の構成、機能、および動作を示している。これに関して、フローチャートまたはブロック図の各ブロックは、モジュール、セグメント、または命令の一部を表してよく、これは、指定された論理機能を実装するための1つまたは複数の実行可能命令を構成する。いくつかの代替の実施形態では、ブロックに示されている機能は、図に示されている順序とは異なる場合がある。例えば、連続して示される2つのブロックは、実際には、1つのステップとして達成される場合があり、同時に、実質的に同時に、部分的または全体的に時間的に重複する方法で実行されるか、またはブロックは、関係する機能に応じて逆の順序で実行される場合がある。ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方のブロックの組み合わせは、指定された機能または動作を実行する、または特別な目的のハードウェアとコンピュータ命令の組み合わせを実行する特別な目的のハードウェアベースのシステムによって実装できることにも留意されたい。
<一般>
本明細書で使用される任意の特定のプログラム命名法は単に便宜上のものであり、したがって本発明は、かかる命名法によって識別もしくは暗示またはその両方がなされる任意の特定のアプリケーションにおける使用のみに限定されるべきではない。したがって、例えば、本発明の実施形態を実装するために実行されるルーチンは、オペレーティングシステムまたは特定のアプリケーション、コンポーネント、プログラム、モジュール、オブジェクト、または命令のシーケンスの一部として実装されているかどうかにかかわらず、「プログラム」、「アプリケーション」、「サーバ」、または他の意味のある命名法と呼ばれていた可能性があった。実際、本発明の範囲から逸脱することなく、他の代替的なハードウェアもしくはソフトウェアまたはその両方の環境を使用することができる。
本明細書で使用される任意の特定のプログラム命名法は単に便宜上のものであり、したがって本発明は、かかる命名法によって識別もしくは暗示またはその両方がなされる任意の特定のアプリケーションにおける使用のみに限定されるべきではない。したがって、例えば、本発明の実施形態を実装するために実行されるルーチンは、オペレーティングシステムまたは特定のアプリケーション、コンポーネント、プログラム、モジュール、オブジェクト、または命令のシーケンスの一部として実装されているかどうかにかかわらず、「プログラム」、「アプリケーション」、「サーバ」、または他の意味のある命名法と呼ばれていた可能性があった。実際、本発明の範囲から逸脱することなく、他の代替的なハードウェアもしくはソフトウェアまたはその両方の環境を使用することができる。
したがって、本明細書に記載された実施形態は、すべての点で制限的ではなく、例示的であるとみなされ、本発明の範囲を決定するために添付の請求の範囲を参照することが望まれる。
Claims (20)
- ブロックチェーンネットワークを構成するためのコンピュータ実装方法であって、
ブロックチェーンネットワークの区切りノードにデバイスを登録することであって、前記登録は、ネットワークインタフェースによって、前記デバイスから不変のデバイスアイデンティティを受信することを含む、登録することと、
前記登録に基づく前記区切りノードのプロセッサによって、前記デバイスのプロファイルを作成することと、
前記区切りノードのプロセッサによって、前記デバイスのためのパススルーサービスを実行することと、
を含む、コンピュータ実装方法。 - 前記デバイスのトランザクション相関テーブルを更新することであって、前記トランザクション相関テーブルは、前記デバイスに関連するブロックチェーン関数のレコードを含む、更新すること
を含む、請求項1に記載の方法。 - 前記ブロックチェーン関数は、前記ブロックチェーンネットワークのエンドースメントポリシーおよび代理権限証明を維持することを含む、請求項2に記載の方法。
- ブロックチェーンネットワークのノードから、前記デバイスに向けられたメンバーシップサービスディレクティブを受信することと、
前記メンバーシップサービスディレクティブに応答して、前記デバイスの前記トランザクション相関テーブルを更新することと、
をさらに含む、請求項2に記載の方法。 - 前記ブロックチェーンネットワークに向けられた前記デバイスからのメンバーシップサービスディレクティブを受信することと、
前記メンバーシップサービスディレクティブに応答して、前記デバイスの前記トランザクション相関テーブルを更新することと、
をさらに含む、請求項2に記載の方法。 - 前記パススルーサービスは、前記ブロックチェーンネットワーク上のピア間の通信のためのチャネルを作成することを含む、請求項1に記載の方法。
- 前記パススルーサービスは、前記デバイスに代わってトランザクションを促進することを含む、請求項1に記載の方法。
- 前記パススルーサービスは、前記デバイスと前記ブロックチェーンネットワークの他のノードとの間の通信を促進することを含む、請求項1に記載の方法。
- 前記パススルーサービスは、前記デバイスと前記ブロックチェーンネットワークの前記他のノードとの間のすべての通信をプロキシすることをさらに含む、請求項8に記載の方法。
- 前記登録は、前記ブロックチェーンネットワークのメンバーシップサービスに前記デバイスを登録することをさらに含む、請求項1に記載の方法。
- 前記登録は、前記デバイスをプライベートブロックチェーンネットワーク上のピアノードとして登録することを可能にする、請求項10に記載の方法。
- 前記プロファイルは、前記デバイスのための仮想プロファイルを含み、前記仮想プロファイルは、前記デバイスのための暗号化鍵ペアを含み、前記暗号化鍵ペアは、前記区切りノードと関連付けられた安全な保管庫に格納される、請求項1に記載の方法。
- 前記安全な保管庫は、ハードウェアセキュリティアーキテクチャを含む、請求項12に記載の方法。
- 前記デバイスから登録要求を受信することと、
前記登録要求に応答して、
前記デバイスにチャレンジを送信することと、
前記デバイスからの応答を検証することと、
成功した検証に応答して、前記デバイスを登録することと、
をさらに含む、請求項1に記載の方法。 - 前記不変のデバイスアイデンティティは、前記デバイスに関連する物理的複製不可関数(PUF)を含む、請求項1に記載の方法。
- 前記PUFが、不変の登録鍵に対する暗号証明を自動的に提供し、前記不変の登録鍵が、前記ブロックチェーンネットワークにおけるアイデンティティ機構として使用される、請求項15に記載の方法。
- 前記デバイスは、モノのインターネット(IoT)デバイスであり、前記区切りノードは、前記IoTデバイスに代わって分散型台帳を維持する、請求項1に記載の方法。
- 前記区切りノードは、前記パススルーサービスを実行するための専用のハードウェアコプロセッサを備える、請求項1に記載の方法。
- ブロックチェーンネットワークの許可フレームワークにデバイスアイデンティティを統合するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、プログラム命令をその中に実装したコンピュータ可読記憶媒体を含み、前記プログラム命令は、プロセッサによって実行可能であり、前記プロセッサに、
ノードによって、パススルーセキュリティサービスを提供することであって、前記パススルーセキュリティサービスは、ブロックチェーンネットワークにおけるピアの信頼できる登録を含む、提供することと、
前記ノードによって、デバイスを前記ブロックチェーンネットワーク上の登録ノードとして登録することであって、前記デバイスはそれに関連する物理的複製不可関数を有し、前記登録は、前記デバイスが前記ノードに物理的複製不可関数チャレンジ応答を送信することを含む、登録することと、
前記登録に基づく前記ノードによって、セキュアエンクレーブ内の前記デバイスに仮想プロファイルを作成することと、
前記デバイスのトランザクション相関テーブルを維持することであって、前記トランザクション相関テーブルは、前記デバイスに関連するブロックチェーンエッセンシャルのレコードを含み、前記ブロックチェーンエッセンシャルは、チャネル、エンドースメントポリシー、および代理権限証明を含む、維持することと、
前記ノードによって、前記デバイスのトランザクションコミットメントおよびクライアント通信を促進することと、
を実行させる、コンピュータプログラム製品。 - 複数の比較的低い能力のピアであって、前記比較的低い能力のピアの各々は、それに関連する不変のデバイスアイデンティティを有する、複数の比較的低い能力のピアと、
少なくとも1つの比較的高い能力のピアであって、前記比較的高い能力のピアは、前記複数の前記比較的低い能力のピアに代わって、1または複数の予め定義された閾値を超えるコンピューティング能力を必要とするワークロードを実行する、少なくとも1つの比較的高い能力のピアと、
を含む、ブロックチェーンネットワーク。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/026,467 | 2020-09-21 | ||
US17/026,467 US11917088B2 (en) | 2020-09-21 | 2020-09-21 | Integrating device identity into a permissioning framework of a blockchain |
PCT/EP2021/074365 WO2022058183A1 (en) | 2020-09-21 | 2021-09-03 | Integrating device identity into a permissioning framework of a blockchain |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023542681A true JP2023542681A (ja) | 2023-10-11 |
Family
ID=77801729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023517884A Pending JP2023542681A (ja) | 2020-09-21 | 2021-09-03 | ブロックチェーンの許可フレームワークへのデバイスアイデンティティの統合 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11917088B2 (ja) |
JP (1) | JP2023542681A (ja) |
CN (1) | CN116325833A (ja) |
WO (1) | WO2022058183A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10887090B2 (en) * | 2017-09-22 | 2021-01-05 | Nec Corporation | Scalable byzantine fault-tolerant protocol with partial tee support |
US20210185091A1 (en) * | 2018-12-28 | 2021-06-17 | Mox-SpeedChain, LLC | Advanced Security System for Implementation in an Internet of Things (IOT) Blockchain Network |
US11917088B2 (en) | 2020-09-21 | 2024-02-27 | International Business Machines Corporation | Integrating device identity into a permissioning framework of a blockchain |
US11627011B1 (en) * | 2020-11-04 | 2023-04-11 | T-Mobile Innovations Llc | Smart device network provisioning |
EP4280566A1 (en) | 2022-05-18 | 2023-11-22 | Telia Company AB | Connecting device to a mesh network |
CN115022053A (zh) * | 2022-06-08 | 2022-09-06 | 京东科技控股股份有限公司 | 访问区块链网络的方法、装置和系统 |
CN114866357B (zh) * | 2022-07-07 | 2022-09-13 | 中国电力科学研究院有限公司 | 一种基于跨链技术的电力数据共享方法及系统 |
CN115314375B (zh) * | 2022-07-22 | 2024-02-06 | 京东科技信息技术有限公司 | 区块链网络跨域组网方法、设备、存储介质及程序产品 |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8200818B2 (en) * | 2001-07-06 | 2012-06-12 | Check Point Software Technologies, Inc. | System providing internet access management with router-based policy enforcement |
US20130147511A1 (en) * | 2011-12-07 | 2013-06-13 | Patrick Koeberl | Offline Device Authentication and Anti-Counterfeiting Using Physically Unclonable Functions |
US9038133B2 (en) * | 2012-12-07 | 2015-05-19 | International Business Machines Corporation | Self-authenticating of chip based on intrinsic features |
US8938792B2 (en) * | 2012-12-28 | 2015-01-20 | Intel Corporation | Device authentication using a physically unclonable functions based key generation system |
CN105229965B (zh) * | 2013-05-15 | 2018-10-09 | 三菱电机株式会社 | 设备真伪判定系统以及设备真伪判定方法 |
US10069635B2 (en) * | 2014-09-10 | 2018-09-04 | Carnegie Mellon University | Methods and systems for achieving system-level counterfeit protection in integrated chips |
CN107851111A (zh) | 2015-05-05 | 2018-03-27 | 识卡公司 | 使用区块链的身份管理服务 |
US11494761B2 (en) * | 2015-11-06 | 2022-11-08 | Cable Television Laboratories, Inc. | Systems and methods for digital asset security ecosystems |
US9688855B2 (en) | 2015-11-17 | 2017-06-27 | Sabic Global Technologies B.V. | Polycarbonate-polysiloxane copolymer compositions for mobile phone housing applications |
US20170302663A1 (en) | 2016-04-14 | 2017-10-19 | Cisco Technology, Inc. | BLOCK CHAIN BASED IoT DEVICE IDENTITY VERIFICATION AND ANOMALY DETECTION |
US10235517B2 (en) * | 2016-05-13 | 2019-03-19 | Regents Of The University Of Minnesota | Robust device authentication |
US10536437B2 (en) * | 2017-01-31 | 2020-01-14 | Hewlett Packard Enterprise Development Lp | Performing privacy-preserving multi-party analytics on vertically partitioned local data |
US10833858B2 (en) * | 2017-05-11 | 2020-11-10 | Microsoft Technology Licensing, Llc | Secure cryptlet tunnel |
US11823141B2 (en) * | 2017-06-16 | 2023-11-21 | Visa International Service Association | Blockchain network interaction controller |
US20190251199A1 (en) * | 2018-02-14 | 2019-08-15 | Ivan Klianev | Transactions Across Blockchain Networks |
US11429967B2 (en) * | 2018-03-13 | 2022-08-30 | Nec Corporation | Mechanism for efficient validation of finality proof in lightweight distributed ledger clients |
US20190306235A1 (en) * | 2018-03-27 | 2019-10-03 | Makecents Llc | Private Blockchain With Decentralized External Gateway |
US10705842B2 (en) * | 2018-04-02 | 2020-07-07 | Intel Corporation | Hardware accelerators and methods for high-performance authenticated encryption |
US10924363B2 (en) * | 2018-04-13 | 2021-02-16 | The Curators Of The University Of Missouri | Method and system for secure resource management utilizing blockchain and smart contracts |
US20220393881A1 (en) * | 2018-04-24 | 2022-12-08 | Devon Corporation | Autonomous exchange via entrusted ledger digital signature management and administration |
US11475419B2 (en) * | 2018-04-30 | 2022-10-18 | Robert Dale Beadles | Universal subscription and cryptocurrency payment management platforms and methods of use |
US11010465B2 (en) * | 2018-05-17 | 2021-05-18 | Arizona Board Of Regents On Behalf Of Northern Arizona University | Password management with addressable physical unclonable function generators |
US11489816B2 (en) * | 2018-07-31 | 2022-11-01 | Ezblock Ltd. | Blockchain joining for a limited processing capability device and device access security |
US11182379B2 (en) * | 2018-08-24 | 2021-11-23 | Oracle International Corporation | DAG based methods and systems of transaction processing in a distributed ledger |
US11271759B2 (en) * | 2018-09-05 | 2022-03-08 | Arizona Board Of Regents On Behalf Of Northern Arizona University | Secure digital signatures using physical unclonable function devices with reduced error rates |
US11477039B2 (en) * | 2018-10-11 | 2022-10-18 | Arizona Board Of Regents On Behalf Of Northern Arizona University | Response-based cryptography using physical unclonable functions |
US11303462B2 (en) * | 2018-11-19 | 2022-04-12 | Arizona Board Of Regents On Behalf Of Northern Arizona University | Unequally powered cryptography using physical unclonable functions |
US11405365B2 (en) * | 2019-03-13 | 2022-08-02 | Springcoin, Inc. | Method and apparatus for effecting a data-based activity |
US11764950B2 (en) * | 2019-05-22 | 2023-09-19 | Salesforce, Inc. | System or method to implement right to be forgotten on metadata driven blockchain using shared secrets and consensus on read |
US11862313B2 (en) * | 2019-06-10 | 2024-01-02 | International Business Machines Corporation | Decentralized prescription refills |
US11249947B2 (en) * | 2019-06-15 | 2022-02-15 | Facebook, Inc. | Distributed digital ledger transaction network for flexible, lazy deletion of data stored within an authenticated data structure |
US10798094B2 (en) * | 2019-07-24 | 2020-10-06 | Alibaba Group Holding Limited | Blockchain-based account management |
US11494763B2 (en) * | 2019-08-19 | 2022-11-08 | Anchor Labs, Inc. | Cryptoasset custodial system with custom logic |
WO2021061415A1 (en) * | 2019-09-26 | 2021-04-01 | Rui Wang | Blockchain hot wallet based on secure enclave and multi-signature authorization |
US11245514B1 (en) * | 2019-10-15 | 2022-02-08 | ArcBlock, Inc | Blockchain delegation |
US11095431B2 (en) * | 2019-12-13 | 2021-08-17 | DLT Global, Inc. | Blockchain transaction manager |
US11271728B2 (en) * | 2019-12-20 | 2022-03-08 | Fujitsu Limited | Secure key management |
US11516028B2 (en) * | 2019-12-24 | 2022-11-29 | CERA Licensing Limited | Temperature sensing physical unclonable function (PUF) authentication system |
US20230216838A1 (en) * | 2020-06-02 | 2023-07-06 | UNM Rainforest Building | System and methods for puf-based authentication |
US11917088B2 (en) | 2020-09-21 | 2024-02-27 | International Business Machines Corporation | Integrating device identity into a permissioning framework of a blockchain |
-
2020
- 2020-09-21 US US17/026,467 patent/US11917088B2/en active Active
-
2021
- 2021-09-03 CN CN202180064307.6A patent/CN116325833A/zh active Pending
- 2021-09-03 JP JP2023517884A patent/JP2023542681A/ja active Pending
- 2021-09-03 WO PCT/EP2021/074365 patent/WO2022058183A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US11917088B2 (en) | 2024-02-27 |
WO2022058183A1 (en) | 2022-03-24 |
US20220094560A1 (en) | 2022-03-24 |
CN116325833A (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11917088B2 (en) | Integrating device identity into a permissioning framework of a blockchain | |
US20210352077A1 (en) | Low trust privileged access management | |
US11431503B2 (en) | Self-sovereign data access via bot-chain | |
US20220103532A1 (en) | Consensus service for blockchain networks | |
US11693948B2 (en) | Verifiable labels for mandatory access control | |
US11550796B2 (en) | Coexistence mediator for facilitating blockchain transactions | |
US11816069B2 (en) | Data deduplication in blockchain platforms | |
US11943360B2 (en) | Generative cryptogram for blockchain data management | |
US11888981B2 (en) | Privacy preserving auditable accounts | |
WO2022007548A1 (en) | Blockchain implementation to securely store information off-chain | |
US11640392B2 (en) | Blockchain endorsement agreement | |
US11804950B2 (en) | Parallel processing of blockchain procedures | |
US11573952B2 (en) | Private shared resource confirmations on blockchain | |
US12015715B2 (en) | Trusted aggregation with data privacy based on zero-knowledge-proofs | |
US20220311595A1 (en) | Reducing transaction aborts in execute-order-validate blockchain models | |
US11782823B2 (en) | Automatically capturing weather data during engineering tests | |
JP2022088326A (ja) | ブロックチェーン・ネットワークにおけるワールドステート・データベースを選択的に更新するための方法、システム、およびコンピュータ・プログラム | |
US11683173B2 (en) | Consensus algorithm for distributed ledger technology | |
US20230267457A1 (en) | Privacy preserving asset transfer between networks | |
US20230267220A1 (en) | Privacy preserving asset token exchange |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD16 | Notification of change of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7436 Effective date: 20230428 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240215 |