JP2023525973A - マルチレイヤ通信ネットワーク - Google Patents
マルチレイヤ通信ネットワーク Download PDFInfo
- Publication number
- JP2023525973A JP2023525973A JP2022565556A JP2022565556A JP2023525973A JP 2023525973 A JP2023525973 A JP 2023525973A JP 2022565556 A JP2022565556 A JP 2022565556A JP 2022565556 A JP2022565556 A JP 2022565556A JP 2023525973 A JP2023525973 A JP 2023525973A
- Authority
- JP
- Japan
- Prior art keywords
- node
- nodes
- transaction
- blockchain
- iot
- 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
- 238000004891 communication Methods 0.000 title description 25
- 239000010410 layer Substances 0.000 claims abstract description 132
- 239000012792 core layer Substances 0.000 claims abstract description 29
- 238000000034 method Methods 0.000 claims description 75
- 230000015654 memory Effects 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 22
- 230000008878 coupling Effects 0.000 claims description 21
- 238000010168 coupling process Methods 0.000 claims description 21
- 238000005859 coupling reaction Methods 0.000 claims description 21
- 230000004044 response Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 2
- 238000013515 script Methods 0.000 description 46
- 230000027455 binding Effects 0.000 description 16
- 238000009739 binding Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 14
- 230000009471 action Effects 0.000 description 10
- 230000000644 propagated effect Effects 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000001902 propagating effect Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000003203 everyday effect Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000005065 mining Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000012550 audit Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 231100001261 hazardous Toxicity 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Images
Classifications
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1034—Reaction to server failures by a load balancer
-
- 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/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1031—Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/108—Resource delivery mechanisms characterised by resources being split in blocks or fragments
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1087—Peer-to-peer [P2P] networks using cross-functional networking aspects
- H04L67/1093—Some peer nodes performing special functions
-
- 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/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/26—Special purpose or proprietary protocols or architectures
-
- 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
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- 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
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/30—Security of mobile devices; Security of mobile applications
- H04W12/37—Managing security policies for mobile devices or for controlling mobile applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/70—Services for machine-to-machine communication [M2M] or machine type communication [MTC]
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y10/00—Economic sectors
- G16Y10/75—Information technology; Communication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
階層型ネットワークを含むシステムであって、前記階層型ネットワークは、順序付きレイヤセットに構成された複数のLNノードを含み、前記順序付きレイヤセットは、順に、各々がブロックチェーンネットワークの1つ以上のブロックチェーンノードに結合された複数のマスタノードを含むコアレイヤ、各々の中間ノードセットを含む1つ以上の中間レイヤ、及びエンド装置セットを含む装置レイヤ、を含み、各マスタノードは、各々の中間ノードサブセットを制御するよう構成され、第1マスタノードは第1中間ノードサブセットを制御するよう構成され、第2マスタノードは第2中間ノードサブセットを制御するよう構成され、各中間ノードは、各々のエンド装置サブセットを制御するよう構成される、システム。
Description
本開示は、ブロックチェーントランザクションを用いて階層型ネットワークの装置を制御することに関する。
ブロックチェーンとは、分散型ピアツーピア(P2P)ネットワーク(以下で「ブロックチェーンネットワーク」とも呼ばれる)内の複数のノードの各々において、ブロックチェーンの重複コピーが維持され広く公表される、分散データ構造の形態を指す。ブロックチェーンは、データのブロックのチェーンを含み、各ブロックは1つ以上のトランザクションを含む。所謂「コインベーストランザクション」以外の各トランザクションは、シーケンス内の先行するトランザクションをポイントする。シーケンスは、1つ以上のコインベーストランザクションまで1つ以上のブロックに跨がってよい。コインベーストランザクションは以下で議論される。ブロックチェーンネットワークに提出されるトランザクションは、新しいブロックに含まれる。新しいブロックは、「マイニング」として知られる処理により生成される。「マイニング」は、複数のノードの各々が「proof-of-work」を実行するために競争する、つまり、ブロックチェーンの新しいブロックに含まれることを待っている順序付き及び検証済みの保留中のトランザクションの定義されたセットの提示に基づき、暗号パズルを解くことを含む。留意すべきことに、ブロックチェーンはノードにおいてプルーニング(pruned)されてよく、ブロックの公開はブロックヘッダのみの公開を通じて達成できる。
ブロックチェーン内のトランザクションは、以下:デジタルアセット(つまり、多数のデジタルトークン)を運ぶこと、仮想台帳又はレジストリの中のジャーナルエントリのセットを順序付けること、タイムスタンプエントリを受信し処理すること、及び/又はインデックスポインタを時系列にすること、のうちの1つ以上を実行するために使用される。ブロックチェーンの上に追加の機能をレイヤ化するために、ブロックチェーンを利用することもできる。ブロックチェーンプロトコルは、トランザクション内のデータに追加のユーザデータ又はインデックスを格納できるようにし得る。単一トランザクション内に格納できる最大データ容量に対する予め指定された限度は存在しない。従って、より複雑なデータを組み込むことができる。例えば、これは、ブロックチェーン内に電子文書(electronic document)、或いはオーディオ若しくはビデオデータを格納するために使用され得る。
ブロックチェーンネットワークのノード(「マイナー」と呼ばれることがある)は、以下に説明する分散型トランザクション登録及び検証処理を実行する。つまり、この処理の間、ノードは、トランザクションの妥当性確認を行い、それらをブロックテンプレイトに挿入し、それに対して有効なproof-of-work解を特定しようと試みる。有効な解が見付かると、新しいブロックはネットワークの他のノードへと伝播され、それにより、各ノードがブロックチェーンに新しいブロックを記録できるようになる。トランザクションをブロックチェーンに記録させるために、ユーザ(例えば、ブロックチェーンクライアントアプリケーション)は、伝播させるために、ネットワークのノードの1つにトランザクションを送信する。トランザクションを受信したノードは、proof-of-work解を見付けるために競争し、妥当性確認されたトランザクションを新しいブロックに組み込む。各ノードは、トランザクションが有効であるための1つ以上の条件を含む同じノードプロトコルを実施するよう構成される。無効なトランザクションは、伝播されず、ブロックに組み込まれることもない。トランザクションが検証され、それによってブロックチェーンに受け入れられたと仮定すると、(任意のユーザデータを含む)トランザクションは、従って、不変の公開レコードとしてブロックチェーンネットワークの各ノードに登録されインデックスされたままである。
最新のブロックを生成するためにproof-of-workパズルを解くことに成功したノードは、標準的に、デジタルアセットの新しい量、つまりトークンの数を生成する「コインベーストランザクション(coinbase transaction)」と呼ばれる新しいトランザクションにより報酬を受ける。無効なトランザクションの検出及び拒否は、ネットワークのエージェントとして動作し及び不法行為を報告及び阻止するよう奨励される競合ノードの動作により実施される。情報の広範な公開により、ユーザはノードの性能を継続的に監査できる。単なるブロックヘッダの公開により、参加者はブロックチェーンの現下の完全性を保証できる。
「アウトプットベースの」モデル(UTXOに基づくモデルと呼ばれることもある)では、所与のトランザクションのデータ構造は、1つ以上のインプット及び1つ以上のアウトプットを含む。任意の使用可能アウトプットは、先行するトランザクションシーケンスから導出可能なデジタルアセットの量を指定する要素を含む。使用可能アウトプットは、時にUTXO(unspent transaction output、未使用トランザクションアウトプット)と呼ばれる。アウトプットは、アウトプットの将来の償還(redemption)のための条件を指定するロックスクリプトを更に含んでよい。ロックスクリプトは、デジタルトークン又はアセットを妥当性確認し及び移転するために必要な条件を定義する述部(predicate)である。(コインベーストランザクション以外の)トランザクションの各インプットは、先行するトランザクション内のそのようなアウトプットへのポインタ(つまり参照)を含み、ポイントされたアウトプットのロックスクリプトをアンロックするためのアンロックスクリプトを更に含んでよい。従って、トランザクションのペアを考えるとき、それらを、第1トランザクション及び第2トランザクション(又は「ターゲット」トランザクション)と呼ぶ。第1トランザクションは、デジタルアセットの量を指定する、及びアウトプットをアンロックする1つ以上の条件を定義するロックスクリプトを含む、少なくとも1つのアウトプットを含む。第2ターゲットトランザクションは、第1トランザクションのアウトプットへのポインタと、第1トランザクションのアウトプットをアンロックするためのアンロックスクリプトとを含む、少なくとも1つのインプットを含む。
このようなモデルでは、第2ターゲットトランザクションがブロックチェーンで伝播され記録されるブロックチェーンネットワークに送られるとき、各ノードで適用される有効性の基準の1つは、アンロックスクリプトが第1トランザクションのロックスクリプトで定義された1つ以上の条件のすべてを満たすことである。もう1つは、第1トランザクションのアウトプットが、別の前の有効なトランザクションによって未だ償還されていないことである。これらの条件のうちのいずれかに従いターゲットトランザクションが無効であると分かった任意のノードは、該トランザクションを(有効なトランザクションとして)伝搬させず(しかし、無効なトランザクションを登録する場合がある)、ブロックチェーンに記録させるために新しいブロックに含めることもしない。
モノのインターネット(Internet of Things (IoT))技術は、物理装置のネットワークが、人間の介入無しにデータを、イベントを監視し及びデータを交換できるようにする。IoT技術が発展する動機を与えることは、広範囲の産業に渡り従来の監視及び制御方法を置き換えるためのリアルタイムデータ収集及び自動制御メカニズムのために必要である。IoTシステムは、膨大な量のデータを生成し、ネットワークスケーラビリティ、強力なサイバーセキュリティ、信頼できる接続性及び最小のネットワーク遅延、を有するシステムに依存する。
伝統的なIoT装置は、標準的に、ネットワーク上の他のノード又は装置にコマンドを発行する単一のマスタノード又は装置を有する。例えば、IoTネットワークは、マスタノードがネットワークを通じる、階層構造内の全部のノードの間の通信を含む活動を監視できるよう設計されたネットワークトポロジを有してよい。しかしながら、単一のマスタノードは、シングルポイント障害(single-point-of-failure)を導入する。例えば、マスタノードへ途絶は、マスタノードがトランザクションを発行すること及び受信することを防ぎ、残りのネットワークが監視され及び/又は制御されることを防ぐ。従って、このシングルポイント障害を回避することが望ましい。
本願明細書に開示される一態様によると、ブロックチェーントランザクションを用いて階層型ネットワークの装置を制御する、コンピュータにより実施される方法であって、前記階層型ネットワーク(LN)は、順序付きレイヤセットに構成された複数のLNノードを含み、前記順序付きレイヤセットは、順に、各々がブロックチェーンネットワークの1つ以上のブロックチェーンノードに結合された複数のマスタノードを含むコアレイヤ、各々の中間ノードセットを含む1つ以上の中間レイヤ、及びエンド装置セットを含む装置レイヤ、を含み、各マスタノードは、各々の中間ノードサブセットを制御するよう構成され、第1マスタノードは第1中間ノードサブセットを制御するよう構成され、第2マスタノードは第2中間ノードサブセットを制御するよう構成され、各中間ノードは、各々のエンド装置サブセットを制御するよう構成され、前記方法は、第1マスタノードにより実行され、
前記第2マスタノードによる、前記第2中間ノードサブセットのうちの少なくとも1つの制御に影響を与える1つ以上の問題を識別するステップと、
応答して、前記第2中間ノードセットのうちの前記少なくとも1つのノードに該ノードを制御する各々のコマンドトランザクションを発行するステップと、
を含む方法が提供される。
前記第2マスタノードによる、前記第2中間ノードサブセットのうちの少なくとも1つの制御に影響を与える1つ以上の問題を識別するステップと、
応答して、前記第2中間ノードセットのうちの前記少なくとも1つのノードに該ノードを制御する各々のコマンドトランザクションを発行するステップと、
を含む方法が提供される。
ネットワークのノード(以後、IoTノードと呼ばれる)は、階層型ネットワーク(例えば、IoTネットワーク)とブロックチェーンネットワークとの間のブリッジとして動作する。つまり、階層型ネットワークのIoTノードは、IoTネットワークの一部であり、ブロックチェーンネットワークのブロックチェーンノードへの結合を形成できる。これにより、IoTノードは、(例えば、他のIoTノード及び装置と通信するために)IoTネットワークに、及び(例えば、トランザクションをブロックチェーンノードへ送信するため、及びブロックチェーン上で公開されたトランザクションを取得するために)ブロックチェーンネットワークに結合できる。幾つかの例では、階層型ネットワークの装置のうちの1つ以上の装置は、ブロックチェーンネットワークのブロックチェーンノードにも結合できる。
階層型ネットワークのIoTノードは、連携して、ブロックチェーントランザクションを用いて非集中化されたIoT通信プロトコルを動作させる。ブロックチェーンネットワークは、能力が高く手数料の安いマイクロトランザクションスループットを可能にする。それにより、IoTノード及び装置は、最小限のコストで通信しながら、信頼できる方法で地球規模で結合できるようになる。複数レベルの制御階層構造及びブロックチェーンに基づく通信プロトコルを結合することにより、要求及び通信プロトコルは、手数料の安いマイクロトランザクション、価値移転及び制御の1つのプラットフォームへの統合、IoTネットワーク装置がエントリするのに低い障壁、IoT通信データのタイムスタンプを付されたセキュアな記憶、及び監査及び性能監視のためにアクセス可能なIoTデータ、を用いて大規模通信を提供する。
階層型ネットワークは、少なくとも2つの独立したマスタIoTノードを含む。この構成は、単一のマスタIoTノードが有する制御の量を分配することにより、IoTネットワーク内のシングルポイント障害を除去する。各マスタIoTノードは、通常の動作条件下で、IoTネットワークの各々のサブセットに責任がある。つまり、各マスタIoTノードは、中間IoTノードの各々のセットを、従ってエンド装置の各々のサブセットを、主に制御するよう構成される。本発明によると、マスタIoTノードの有する欠陥が検出されると、別のマスタIoTノードがバックアップとして動作して、欠陥のあるマスタIoTノードの中間IoTノードサブセットの制御を引き継ぐ。
本願明細書に開示される一態様によると、階層型ネットワークを含むシステムであって、前記階層型ネットワークは、順序付きレイヤセットに構成された複数のLNノードを含み、前記順序付きレイヤセットは、順に、各々がブロックチェーンネットワークの1つ以上のブロックチェーンノードに結合された複数のマスタノードを含むコアレイヤ、各々の中間ノードセットを含む1つ以上の中間レイヤ、及びエンド装置セットを含む装置レイヤ、を含み、各マスタノードは、各々の中間ノードサブセットを制御するよう構成され、第1マスタノードは第1中間ノードサブセットを制御するよう構成され、第2マスタノードは第2中間ノードサブセットを制御するよう構成され、各中間ノードは、各々のエンド装置サブセットを制御するよう構成される、システムが開示される。
本開示の実施形態の理解を助け、そのような実施形態がどのように実施され得るかを示すために、例としてのみ以下の添付の図面を参照する:
ブロックチェーンを実装するためのシステムの概略ブロック図である。
ブロックチェーンに記録されるトランザクションの幾つかの例を概略的に示している。
IoTネットワークとブロックチェーンネットワークとの間の重なり合いを概略的に示す。
階層型ネットワークトポロジを概略的に示す。
部分及び完全コマンドトランザクションを概略的に示す。
部分及び完全コマンドトランザクションを概略的に示す。
代替部分及び完全トランザクションを概略的に示す。
代替部分及び完全トランザクションを概略的に示す。
コマンド要求及び応答サイクルを概略的に示す。
例示的なコマンドデータフォーマットを示す。
例示的な階層型ネットワークの概略表現である。
例示的な階層型ネットワークの別の概略表現である。
例示的な階層型ネットワークの別の概略表現である。
例示的な階層型ネットワークの別の概略表現である。
障害のある又は破壊されたマスタノードを概略的に示す。
複数のマスタノードを含む階層型ネットワークを概略的に示す。
例示的なシステムの概要
図1は、ブロックチェーン150を実装するための例示的なシステム100を示す。システム100は、典型的にはインターネットのような広域インターネットワークであるパケット交換ネットワーク101を含んでよい。パケット交換ネットワーク101は、パケット交換ネットワーク101内にピアツーピア(P2P)ネットワーク106を形成するように配置され得る複数のブロックチェーンノード104を含む。図示されないが、ブロックチェーンノード104は、ほぼ完全なグラフとして配置されてよい。各ブロックチェーンノード104は、従って、他のブロックチェーンノード104と高度に結合される。
図1は、ブロックチェーン150を実装するための例示的なシステム100を示す。システム100は、典型的にはインターネットのような広域インターネットワークであるパケット交換ネットワーク101を含んでよい。パケット交換ネットワーク101は、パケット交換ネットワーク101内にピアツーピア(P2P)ネットワーク106を形成するように配置され得る複数のブロックチェーンノード104を含む。図示されないが、ブロックチェーンノード104は、ほぼ完全なグラフとして配置されてよい。各ブロックチェーンノード104は、従って、他のブロックチェーンノード104と高度に結合される。
各ブロックチェーンノード104は、異なるピアに属するノード104のうちの異なるノード104を有す、ピアのコンピュータ装置を含む。各ブロックチェーンノード104は、1つ以上のプロセッサ、例えば、1つ以上の中央処理装置(CPU)、アクセラレータプロセッサ、特定用途向けプロセッサ、及び/又はフィールドプログラマブルゲートアレイ(FPGA)、及び特定用途向け集積回路(ASIC)のような他の機器を含む処理装置を含む。各ノードは、メモリ、すなわち、非一時的コンピュータ読み取り可能媒体の形態のコンピュータ読み取り可能記憶装置も含む。メモリは、1つ以上のメモリ媒体、例えば、ハードディスクなどの磁気媒体、固体ドライブ(solid-state drive (SSD))、フラッシュメモリ又はEEPROMなどの電子媒体、及び/又は光ディスクドライブなどの光学的媒体を使用する1つ以上のメモリユニットを含んでもよい。
ブロックチェーン150は、データのブロック151のチェーンを含み、ブロックチェーン150の各々のコピーは、分散型又はブロックチェーンネットワーク160内の複数のノード104の各々において維持される。上述のように、ブロックチェーン150のコピーを維持することは、必ずしも、ブロックチェーン150全体を格納することを意味しない。代わりに、各ブロックチェーンノード150が各ブロック151のブロックヘッダ(後述する)を格納する限り、ブロックチェーン150からデータを取り除くことができる。チェーン内の各ブロック151は、1つ以上のトランザクション152を含み、この文脈ではトランザクションは、一種のデータ構造を表す。データ構造の性質は、トランザクションモデル又はスキームの一部として使用されるトランザクションプロトコルのタイプに依存する。所与のブロックチェーンは、全体を通して、1つの特定のトランザクションプロトコルを使用する。1つの一般的なタイプのトランザクションプロトコルでは、各トランザクション152のデータ構造は、少なくとも1つのインプット及び少なくとも1つのアウトプットを含む。各アウトプットは、資産としてのデジタルアセットの量を表す量を指定する。この例では、アウトプットが暗号的にロックされているのはユーザ103である(ロックを解除し、それによって償還又は使用するために、そのユーザの署名又は他の解を必要とする)。各インプットは、先行するトランザクション152のアウトプットを指し示し、それによって、トランザクションをリンクする。
各ブロック151は、また、ブロック151への逐次的順序を定義するように、チェーン内の先に生成されたブロック151を遡ってポイントするブロックポインタ155を含む。(コインベーストランザクション以外の)各トランザクション152は、トランザクションのシーケンスに順序を定義するために、前のトランザクションへのポインタを含む(注:トランザクション152のシーケンスは、分岐することが許される)。ブロック151のチェーンは、チェーンの最初のブロックであったジェネシスブロック(genesis block (Gb))153にまで戻る。チェーン150の初期に1つ以上のオリジナルトランザクション152は、先行するトランザクションではなくジェネシスブロック153を指し示した。
ブロックチェーンノード104の各々はトランザクション152を他のブロックチェーンノード104へ転送し、それにより、ネットワーク106に渡りトランザクション152を伝播させるよう構成される。各ブロックチェーンノード104は、ブロック151を生成し、同じブロックチェーン150の各々のコピーを自身の各々のメモリに格納するよう構成される。各ブロックチェーンノード104はまた、ブロック151に組み込まれるのを待つトランザクション152の順序付きセット154を維持する。順序付きセット154は、時に「メモプール(mempool)」と呼ばれる。この用語は、本願明細書では、任意の特定のブロックチェーン、プロトコル、又はモデルに限定されない。それは、ノード104が有効であるとして受け付けた、及びノード104が同じアウトプットを使用しようと試みる他のトランザクションを受け付けないよう義務付けられたトランザクションの順序付きセットを表す。
所与の現在のトランザクション152jにおいて、インプット(又はその各々)は、トランザクションのシーケンスの中の先行トランザクション152iのアウトプットを参照するポインタを含み、このアウトプットが現在のトランザクション152jにおいて償還されるか又は「使用される(spent)」ことを指定する。一般に、先行するトランザクションは、順序付きセット154又は任意のブロック151内の任意のトランザクションであり得る。先行するトランザクション152iは、必ずしも、現在のトランザクション152jが生成された又はネットワーク106へ送信されたときに存在する必要はないが、先行するトランザクション152iは、現在のトランザクションが有効であるために存在し検証されている必要がある。従って、本願明細書で「先行する」は、ポインタによりリンクされた論理的シーケンスの中で先行するものを表し、必ずしも時系列の中での生成又は送信の時間を表さない。従って、それは、必ずしも、トランザクション152i,152jが順不同で生成され又は送信されることを排除しない(以下の親のない(orphan)トランザクションに関する議論を参照する)。先行するトランザクション152iは、等しく、祖先(antecedent)又は先行(predecessor)トランザクションと呼ばれ得る。
現在のトランザクション152jのインプットは、インプット認可、例えば先行するトランザクション152iのアウトプットがロックされているユーザ103aの署名も含む。次に、現在のトランザクション152jのアウトプットは、新しいユーザ又はエンティティ103bに暗号的にロックすることができる。従って、現在のトランザクション152jは、先行するトランザクション152iのインプットに定義された量を、現在のトランザクション152jのアウトプットに定義された新しいユーザ又はエンティティ103bに移転することができる。ある場合には、トランザクション152は、複数のユーザ又はエンティティ間でインプット量を分割するために複数のアウトプットを有してもよいエンティティ(そのうちの1つは、お釣りを与えるために、元のユーザ又はエンティティ103aであってもよい)。幾つかの場合には、トランザクションが複数のインプットを有し、1つ以上の先行するトランザクションの複数のアウトプットから量をまとめ、現在のトランザクションの1つ以上のアウトプットに再分配することもできる。
ビットコインのようなアウトプットに基づくトランザクションプロトコルによると、ユーザ又はマシンのようなエンティティ103は、新しいトランザクション152jに作用したいとき、エンティティは新しいトランザクションを自身のコンピュータ端末102から受信側へ送信する。エンティティ又は受信側は、結局、このトランザクションをネットワーク106のブロックチェーンノード104のうちの1つ以上(これらは、今日では、標準的にサーバ又はデータセンタであるが、原理的に他のユーザ端末も可能である)へと送信する。幾つかの例では、新しいトランザクション152jに作用するエンティティ103が、トランザクションを、受信側ではなくブロックチェーンノード104のうちの1つ以上へと送信し得ることも排除されない。トランザクションを受信するブロックチェーンノード104は、各ブロックチェーンノード104に適用されるブロックチェーンノードプロトコルに従って、トランザクションが有効であるかどうかをチェックする。ブロックチェーンノードプロトコルは、典型的には、ブロックチェーンノード104に、新しいトランザクション152j内の暗号署名が、トランザクション152の順序付きシーケンスの中の前のトランザクション152iに依存する、期待される署名と一致することをチェックすることを要求する。このようなアウトプットに基づくトランザクションプロトコルの場合、これは、新しいトランザクション152jのインプットに含まれるエンティティ103の暗号署名又は他の認証が、新しいトランザクションが割り当てる先行するトランザクション152jのアウトプットに定義された条件と一致することをチェックすることを含んでよく、この条件は、典型的には、新しいトランザクション152jのインプット内の暗号署名又は他の認証が、新しいトランザクションのインプットがリンクされた前のトランザクション152iのアウトプットをアンロックすることを少なくともチェックすることを含む。条件は、先行するトランザクション152iのアウトプットに含まれるスクリプトにより少なくとも部分的に定義されてよい。あるいは、単にブロックチェーンノードプロトコルだけで固定することもできるし、あるいは、これらの組み合わせによることもある。いずれにせよ、新しいトランザクション152jが有効であれば、ブロックチェーンノード104は、新しいトランザクションをブロックチェーンネットワーク106内の1つ以上の他のブロックチェーンノード104に転送する。これらの他のブロックチェーンノード104は、同じノードプロトコルに従って同じテストを適用し、新しいトランザクション152jを1つ以上のさらなるノード104に転送し、以下で同様である。このようにして、新しいトランザクションは、ブロックチェーンノード104のネットワーク全体に伝播される。
アウトプットベースのモデルでは、与えられ割り当てアウトプット(例えば、UTXO)が割り当てられるかどうかの定義は、ブロックチェーンノードプロトコルに従って別の今後の(onward)トランザクション152jのインプットによって既に有効に償還されているかどうかである。トランザクションが有効であるための別の条件は、それが割り当て又は償還を試みる先行するトランザクション152iのアウトプットが、別のトランザクションによって未だ割り当て/償還されていことである。ここでも、有効でない場合、トランザクション152jは、(無効であるとしてフラグが立てられ変更するために伝播されない限り)ブロックチェーン150に伝播又は記録されない。これは、取引者が同じトランザクションのアウトプットを複数回割り当てようとする二重支出を防ぐ。一方、アカウントベースモデルは、口座残高を維持することによって、二重支出を防ぐ。この場合も、トランザクションの順序が定義されているため、口座残高は、一度に単一の定義された状態を有する。
検証トランザクションに加えて、ブロックチェーンノード104は、また、「proof -of -work」により支えられているマイニングと呼ばれるプロセスで、トランザクションのブロックを最初に作成するために競合する。ブロックチェーンノード104では、ブロックチェーン150に記録されたブロック151にまだ現れていない有効なトランザクションの順序付きセット154に新しいトランザクションが追加される。ブロックチェーンノードは、次に、暗号パズルを解くことを試みることにより、トランザクションの順序付きセット154からトランザクション152の新しい有効なブロック151を組み立てるために競争する。これは、典型的には、ノンス(nonce)がトランザクションの順序付きセット154の表現と連結され、ハッシュされるときに、ハッシュのアウトプットが所定の条件を満たすような「ノンス」値を探すことを含む。例えば、所定の条件は、ハッシュのアウトプットが、所定の数の先頭ゼロを有することであってもよい。これは、単に1つの特定の種類のproof-of-workパズルであり、他の種類が排除されないことに留意する。ハッシュ関数の特性は、インプットに関して予測不可能なアウトプットを持つことである。従って、この探索は、ブルートフォースによってのみ実行することができ、従って、パズルを解決しようとしている各ブロックチェーンノード104において、相当量の処理リソースを消費する。
パズルを解いた最初のブロックチェーンノード104は、これをネットワーク106に通知し、その解を証明として提供する。この解は、ネットワーク内の他のブロックチェーンノード104によって簡単にチェックすることができる(ハッシュに対する解が与えられれば、ハッシュのアウトプットが条件を満たすことを確認することは簡単である)。第1ブロックチェーンノード104は、該ブロックを受け入れる閾値の他のノードの合意に、ブロックを伝播させ、従ってプロトコルルールを実施する。トランザクションの順序付きセット154は、次に、ブロックチェーンノード104の各々により、ブロックチェーン150内の新しいブロック151として記録されるようになる。また、新しいブロック151nにはブロックポインタ155が割り当てられ、チェーン内で前に作成されたブロック151n-1を指すようになっている。proof-of-work解を生成するために必要とされる例えばハッシュの形式の有意な量の労力が、ブロックチェーンプロトコルのルールに従うという第1IoTノード104の意図をシグナリングする。そのようなルールは、前に妥当性確認されたトランザクションと同じアウトプットを割り当てる場合に有効としてトランザクションを受け付けないこと、或いは二重支払いとして知られいることを含む。一旦生成されると、ブロック151は、ブロックチェーンネットワーク106内のブロックチェーンノード104の各々で認識され、維持されるので、修正することができない。また、ブロックポインタ155は、ブロック151に順序を課す。トランザクション152は、ネットワーク106内の各ブロックチェーンノード104において順序付きブロックに記録されるので、これは、トランザクションの不変の公開台帳を提供する。
パズルを解決するために常に競争している異なるブロックチェーンノード104は、いつ解を探し始めたか、又はトランザクションが受信された順序によって、いつでも未だ公開されていないトランザクションの順序付きセット154の異なるスナップショットに基づいてパズルを解いているかもしれないことに留意する。パズルを解く者は誰でも、最初に次の新しいブロック151nに含まれるトランザクション152を定義し、その順序で、未公開のトランザクションの現在のセット154が更新される。そして、ブロックチェーンノード104は、新たに定義された未公開トランザクションの現在の順序付きセット154からブロックを作り出すために、競争を続ける。また、生じ得る「分岐(フォーク、fork)」を解決するためのプロトコルも存在する。これは、2つのブロックチェーンノード104が互いに非常に短い時間内にパズルを解き、ブロックチェーンの矛盾したビューがノード104の間で伝播する場合である。要するに、分岐の枝が伸びるときは常に、最長のものが最終的なブロックチェーン150になる。これは、同じトランザクションが両方の分岐に現れるので、ネットワークのユーザ又はエージェントに影響しないことに留意する。
ビットコインブロックチェーン(及び殆どの他のブロックチェーン)によると、新しいブロック104を構成するのに成功したノードは、デジタルアセットの所定量を分配する新しい特別な種類のトランザクションの中でデジタルアセットの承認された量を割り当てる能力を与えられる(1人のエージェント又はユーザから別のエージェント又はユーザへとデジタルアセットの量を移転するエージェント間又はユーザ間トランザクションと異なる)。この特別な種類のトランザクションは、通常、「コインベーストランザクション」と呼ばれるが、「開始(initiation)トランザクション」とも呼ばれることがある。それは標準に新しいブロック151nの最初のトランザクションを形成する。proof-of-workは、この特別なトランザクションが後に償還できるように、新しいブロックを構成したノードがプロトコルルールに従うことを意図していることをシグナリングする。ブロックチェーンプロトコルルールは、この特別なトランザクションが償還できる前に、満期、例えば100ブロックを必要としてよい。通常の(非生成)トランザクション152は、そのアウトプットの1つに追加のトランザクション手数料を指定し、そのトランザクションが公開されたブロック151nを生成したブロックチェーンノード104にさらに報酬を与えることが多い。この手数料は、通常、「トランザクション手数料」と呼ばれ、後述する。
トランザクションの妥当性確認及び公開に関連するリソースのために、典型的には、少なくともブロックチェーンノード104の各々は、1つ以上の物理的サーバユニットを含むサーバ、又はデータセンタ全体の形態をとる。しかしながら、原理的に、任意の所与のブロックチェーンノード104は、ユーザ端末又は互いにネットワーク接続されたユーザ端末又はユーザ端末のグループの形態をとることができる。
各ブロックチェーンノード104のメモリは、各々の1つ以上の役割を実行し、ブロックチェーンノードプロトコルに従ってトランザクション152を処理するために、ブロックチェーンノード104の処理装置上で動作するように構成されたソフトウェアを記憶する。ブロックチェーンノード104に属するいずれの動作も、各々のコンピュータ装置の処理装置上で実行されるソフトウェアによって実行され得ることが理解されよう。ノードソフトウェアは、アプリケーションレイヤにおける1つ以上のアプリケーション、又はオペレーティングシステムレイヤ若しくはプロトコルレイヤのような下位レイヤ、又はこれらの任意の組合せの中に実装されてよい。
また、ネットワーク101には、消費者ユーザの役割を果たす複数のパーティ103の各々のコンピュータ装置102も接続されている。これらのユーザは、ブロックチェーンネットワークと相互作用できるが、トランザクション及びブロックを妥当性確認し、構成し、又は伝播させることに参加しない。これらのユーザ又はエージェントのうちの一部は、トランザクションにおいて送信側及び受信側として動作してよい。他のユーザは、必ずしも送信側又は受信側として動作することなく、ブロックチェーン150と相互作用してよい。例えば、幾つかのパーティは、ブロックチェーン150のコピーを格納する(例えば、ブロックチェーンノード104からブロックチェーンのコピーを取得した)記憶エンティティとして動作してよい。
パーティ103の一部又は全部は、異なるネットワーク、例えば、ブロックチェーンネットワーク106の上に重ねられたネットワークの部分として結合されてよい。ブロックチェーンネットワークのユーザ(「クライアント」と呼ばれることが多い)は、ブロックチェーンネットワークを含むシステムの部分であると言うことができる。しかしながら、これらのユーザは、ブロックチェーンノードの要求される役割を実行しないので、ブロックチェーンノード104ではない。代わりに、各パーティ103は、ブロックチェーンネットワーク106と相互作用し、それにより、ブロックチェーンノード106に結合する(つまり通信する)ことにより、ブロックチェーン150を利用してよい。2つのパーティ103及び各々の機器102は、説明のために示されており、第1パーティ103a及びその各々のコンピュータ機器102a、ならびに第2パーティ103b及びその各々のコンピュータ機器102bである。より多くのこのようなパーティ103及びそれらの各々のコンピュータ機器102がシステム100に存在し、参加することができるが、便宜上、それらは図示されていないことが理解されよう。各パーティ103は、個人又は組織であってもよい。純粋に例示として、第1パーティ103aは、本明細書においてAliceと称され、第2パーティ103bは、Bobと称されるが、これは限定的なものではなく、本明細書においてAlice又はBobという言及は、各々「第1パーティ」及び「第2パーティ」と置き換えることができることは理解されるであろう。
各パーティ103のコンピュータ機器102は、1つ以上のプロセッサ、例えば、1つ以上のCPU、GPU、他のアクセラレータプロセッサ、特定用途向けプロセッサ、及び/又はFPGAを備える各々の処理装置を備える。各パーティ103のコンピュータ機器102は、さらに、メモリ、すなわち、非一時的コンピュータ読み取り可能媒体又は媒体の形態のコンピュータ読み取り可能記憶装置を備える。このメモリは、1つ以上のメモリ媒体、例えば、ハードディスクのような磁気媒体、SSD、フラッシュメモリ又はEEPROMのような電子媒体、及び/又は光学ディスクドライブのような光学媒体を使用する1つ以上のメモリユニットを含むことができる。各パーティ103のコンピュータ機器102上のメモリは、処理装置上で動作するように配置された少なくとも1つのクライアントアプリケーション105の各々のインスタンスを含むソフトウェアを記憶する。本明細書で与えられたパーティ103に帰属するいずれのアクションも、各々のコンピュータ装置102の処理装置上で実行されるソフトウェアを使用して実行され得ることが理解されよう。各パーティ103のコンピュータ機器102は、少なくとも1つのユーザ端末、例えばデスクトップ又はラップトップコンピュータ、タブレット、スマートフォン、又はスマートウォッチのようなウェアラブルデバイスを備えている。所与のパーティ103のコンピュータ装置102は、ユーザ端末を介してアクセスされるクラウドコンピューティングリソースのような、1つ以上の他のネットワーク化されたリソースを含んでもよい。
クライアントアプリケーション105は、最初に、1つ以上の適切なコンピュータ読み取り可能な記憶媒体、例えばサーバからダウンロードされたもの、又はリムーバブルSSD、フラッシュメモリキー、リムーバブルEEPROM、リムーバブル磁気ディスクドライブ、磁気フロッピーディスク又はテープ、光ディスク、例えばCD又はDVD ROM、又はリムーバブル光学ドライブなどのリムーバブル記憶装置上で、任意の所与のパーティ103のコンピュータ機器102に提供され得る。
クライアントアプリケーション105は、少なくとも「ウォレット」機能を備える。これには主に2つの機能を有する。これらのうちの1つは、各々のパーティ103が、ブロックチェーンノード104のネットワーク全体にわたって伝播され、それによってブロックチェーン150に含まれるべきトランザクション152を作成し、認可し(例えば署名し)、送信することを可能にすることである。もう1つは、現在所有しているデジタルアセットの量を各々のパーティに報告することである。アウトプットベースのシステムでは、この第2の機能は、当該パーティに属するブロックチェーン150全体に散在する様々なトランザクション152のアウトプットの中で定義される量を照合することを含む。
注:種々のクライアント機能が所与のクライアントアプリケーション105に統合されるとして説明されることがあるが、これは、必ずしも限定的ではなく、代わりに、本願明細書に記載される任意のクライアント機能が2つ以上の異なるアプリケーションのスーツに実装されてよく、例えばAPIを介してインタフェースし、又は一方が他方へのプラグインである。より一般的には、クライアント機能は、アプリケーションレイヤ、又はオペレーティングシステムのような下位レイヤ、又はこれらの任意の組合せにおいて実装され得る。以下は、クライアントアプリケーション105の観点で説明されるが、これは限定的ではないことが理解される。
各コンピュータ機器102上のクライアントアプリケーション又はソフトウェア105のインスタンスは、ネットワーク106のブロックチェーンノード104の少なくとも1つに動作可能に結合される。これにより、クライアント105のウォレット機能は、トランザクション152をネットワーク106に送信することができる。クライアント105は、また、ブロックチェーンノード104にコンタクトして、各々のパーティ103が受信側である任意のトランザクションについてブロックチェーン150に問い合わせることができる(又は、実施形態では、ブロックチェーン150は、部分的にその公開視認性を通じてトランザクションの信頼を提供する公開的設備であるため、実際には、ブロックチェーン150内の他のパーティのトランザクションを検査する)。各コンピュータ機器102上のウォレット機能は、トランザクションプロトコルに従ってトランザクション152を形成し、送信するように構成される。上述のように、各ブロックチェーンノード104は、ブロックチェーンノードプロトコルに従いトランザクション152を妥当性確認し、トランザクション152をブロックチェーンネットワーク106全体に渡り伝播させるために、トランザクション152を転送するよう構成されるソフトウェアを実行する。トランザクションプロトコルとノードプロトコルは互いに対応し、所与のトランザクションプロトコルは所与のノードプロトコルと共に所与のトランザクションモデルを実装する。同じトランザクションプロトコルは、ブロックチェーン150内の全部のトランザクション152について使用される。同じノードプロトコルは、ネットワーク106内の全部のノード104について使用される。
所与のパーティ103、例えばAliceがブロックチェーン150に含まれる新たなトランザクション152jを送信したいと望む場合、彼女は関連するトランザクションプロトコルに従って(彼女のクライアントアプリケーション105のウォレット機能を使用して)新たなトランザクションを作成する(formulate)。彼女は、次に、クライアントアプリケーション105からトランザクション152を、彼女が接続されている1つ以上のブロックチェーンノード104に送信する。例えば、これは、Aliceのコンピュータ102に最も良好に接続されているブロックチェーンノード104であってもよい。任意の所与のブロックチェーンノード104が新しいトランザクション152jを受信すると、ブロックチェーンノードプロトコル及びその各々の役割に従って、それを処理する。これは、最初に、新たに受信されたトランザクション152jが「有効」であるための特定の条件を満たしているかどうかをチェックすることを含み、その例については、簡単に詳述する。幾つかのトランザクションプロトコルでは、妥当性確認のための条件は、トランザクション152に含まれるスクリプトによってトランザクションごとに構成可能であってよい。或いは、条件は単にノードプロトコルの組み込み機能であってもよく、或いはスクリプトとノードプロトコルの組み合わせによって定義されてもよい。
新たに受信されたトランザクション152jが、有効であると見なされるテストに合格したという条件で(すなわち、「有効である」という条件で)、トランザクション152jを受信した任意のブロックチェーンノード104は、そのブロックチェーンノード104に維持されているブロックチェーンの順序付きセット154に、新たな検証済みトランザクション152を追加する。さらに、トランザクション152jを受信する任意のブロックチェーンノード104は、検証済みトランザクション152をネットワーク106内の1つ以上の他のブロックチェーンノード104に伝播する。各ブロックチェーンノード104は同じプロトコルを適用するので、トランザクション152jが有効であると仮定すると、これは、ネットワーク106全体に間もなく伝播されることを意味する。
所与のブロックチェーンノード104において維持されるトランザクションの順序付きセット154に入れられると、該ブロックチェーンノード104は、新しいトランザクション152を含む、彼ら各々のトランザクションの順序付きセットの最新バージョンについて、proof-of-workパズルを解く競争を開始する(他のブロックチェーンノード104は、トランザクションの異なる順序付きセット154に基づきパズルを解こうとしているが、誰であっても1番の者が、最新のブロック151に含まれるトランザクションの順序付きセットを定義することに留意する。最終的に、ブロックチェーンノード104は、Aliceのトランザクション152jを含む順序付きセット154の一部についてパズルを解くだろう。)。一旦、新しいトランザクション152jを含む順序付きセット154についてproof-of-workが行われると、それは不変の方法でブロックチェーン150内のブロック151のうちの1つの一部となる。各トランザクション152は、以前のトランザクションへのポインタを含むので、トランザクションの順序もまた、不変的に記録される。
異なるブロックチェーンノード104は、最初に所与のトランザクションの異なるインスタンスを受信する可能性があり、従って、1つのインスタンスが公開(Publishing)されて新しいブロック151になる前に、どのインスタンスが「有効」であるかについて矛盾するビューを有することがあり、その時点で、全部のブロックチェーンノード104は公開されたインスタンスのみが有効なインスタンスであることに合意する。ブロックチェーンノード104が1つのインスタンスを有効であるとして受け入れ、次に第2のインスタンスがブロックチェーン150に記録されていることを発見した場合、該ブロックチェーンノード104は、これを受け入れなければならず、最初に受け入れたインスタンス(つまり未だブロック151の中で公開されていないもの)を破棄する(つまり、無効であるとして扱う)。
アカウントベースのトランザクションモデルの一部として、幾つかのブロックチェーンネットワークにより運用される別のタイプのトランザクションプロトコルを「アカウントベース」のプロトコルと呼ぶことがある。アカウントベースの場合、各トランザクションは、過去の一連のトランザクションにおいて、先行するトランザクションのUTXOに戻って参照することによって移転される量を定義するのではなく、絶対的な口座(アカウント)残高を参照することによって移転される。すべてのアカウントの現在の状態は、ブロックチェーンと分離して、ネットワークのノードにより格納され、絶えず更新される。このようなシステムでは、トランザクションは、アカウントの連続したトランザクション記録(いわゆる「ポジション」)を用いて発注される。この値は、送信者により彼らの暗号署名の一部として署名され、トランザクション参照計算の一部としてハッシュされる。さらに、任意的なデータフィールドもトランザクションに署名することができる。このデータフィールドは、例えば、前のトランザクションIDがデータフィールドに含まれている場合、前のトランザクションを遡ってポイントしてよい。
UTXOベースのモデル
図2は、トランザクションプロトコルの例を示している。これは、UTXOベースのプロトコルの例である。トランザクション152(「Tx」と略す)は、ブロックチェーン150(各ブロック151は1つ以上のトランザクション152を含む)の基本的なデータ構造である。以下は、アウトプットベース又は「UTXO」ベースのプロトコルを参照して説明される。しかし、これは、全ての可能な実施形態に限定されるものではない。例示的なUTXOベースのプロトコルは、ビットコインを参照して説明されるが、他の例示的なブロックチェーンネットワーク上でも等しく実施できることに留意する。
図2は、トランザクションプロトコルの例を示している。これは、UTXOベースのプロトコルの例である。トランザクション152(「Tx」と略す)は、ブロックチェーン150(各ブロック151は1つ以上のトランザクション152を含む)の基本的なデータ構造である。以下は、アウトプットベース又は「UTXO」ベースのプロトコルを参照して説明される。しかし、これは、全ての可能な実施形態に限定されるものではない。例示的なUTXOベースのプロトコルは、ビットコインを参照して説明されるが、他の例示的なブロックチェーンネットワーク上でも等しく実施できることに留意する。
UTXOベースのモデルでは、各トランザクション(「Tx」)152は、1つ以上のインプット202及び1つ以上のアウトプット203を含むデータ構造を含む。各アウトプット203は、未使用トランザクションアウトプット(UTXO)を含んでもよく、これは、別の新しいトランザクションのインプット202のソースとして使用することができる(UTXOが未だ償還されていない場合)。UTXOは、デジタルアセットの量を指定する値を含む。これは、分散型台帳上のトークンの設定数を表す。また、他の情報の中でも、UTXOは、それが由来するトランザクションのトランザクションIDも含んでよい。トランザクションデータ構造はまた、ヘッダ201も含んでよく、ヘッダ201は、インプットフィールド202及びアウトプットフィールド203のサイズの指示子を含んでもよい。ヘッダ201は、トランザクションのIDも含んでもよい。実施形態において、トランザクションIDは、トランザクションデータ(トランザクションID自体を除く)のハッシュであり、ノード104に提出された未処理トランザクション152のヘッダ201に格納される。
例えばAlice103aは、問題のデジタルアセットの量をBob103bに移転するトランザクション152jを作成したいと考えているとする。図2において、Aliceの新しいトランザクション152jは「Tx1」とラベル付けされている。これは、Aliceにロックされているデジタルアセットの量を、シーケンス内の先行するトランザクション152iのアウトプット203に取り入れ、その少なくとも一部をBobに移転する。先行するトランザクション152iは、図2において「Tx0」とラベル付けされている。Tx0とTx1は、単なる任意のラベルである。これらは、必ずしも、Tx0がブロックチェーン151の最初のトランザクションであること、又は、Tx1がプール154の直ぐ次のトランザクションであることを意味しない。Tx1は、まだAliceへのロックされた未使用アウトプット203を有する任意の先行する(つまり祖先)トランザクションのいずれかを指し示すことができる。
先行するトランザクションTx0は、Aliceが彼女の新しいトランザクションTx1を作成するとき、又は少なくとも彼女がそれをネットワーク106に送信するときに、既に検証され、ブロックチェーン150のブロック151に含まれていてもよい。それは、その時点で既にブロック151のうちの1つに含まれていてもよく、あるいは、順序付きセット154内でまだ待機していてもよく、その場合、新しいブロック151にすぐに含まれることになる。あるいは、Tx0及びTx1が生成されネットワーク106に送信されることができ、あるいは、ノードプロトコルが「孤児(orphan)」トランザクションのバッファリングを許容する場合にはTx1の後にTx0が送信されることもできる。ここでトランザクションのシーケンスの文脈で使用される「先行する」及び「後の」という用語は、トランザクション内で指定されたトランザクションポインタ(どのトランザクションがどの他のトランザクションを指すかなど)によって定義されるシーケンス内のトランザクションの順序を指す。それらは、「先行する」及び「相続する」又は「祖先」及び「子孫」、「親」及び「子」、等により、等しく置き換えられ得る。これは、必ずしも、それらが作成され、ネットワーク106に送られ、又は任意の所与のブロックチェーンノード104に到達する順序を意味しない。それにもかかわらず、先行するトランザクション(祖先トランザクション又は「親」)を指す後続のトランザクション(子孫トランザクション又は「子」)は、親トランザクションが検証されない限り、検証されない。親の前にブロックチェーンノード104に到着した子は孤児とみなされる。それは、ノードプロトコル及び/又はノードの行動に応じて、親を待つために特定の時間、破棄又はバッファリングされることがある。
先行するトランザクションTx0の1つ以上のアウトプット203のうちの1つは、本明細書でUTXO0とラベル付けされた特定のUTXOを含む。各UTXOは、UTXOによって表されるデジタルアセットの量を指定する値と、後続のトランザクションが検証されるために、従ってUTXOが正常に償還されるために、後続のトランザクションのインプット202の中のアンロックスクリプトによって満たされなければならない条件を定義するロックスクリプトとを含む。典型的には、ロックスクリプトは、特定のパーティ(それが含まれているトランザクションの受益者)に量をロックする。すなわち、ロックスクリプトは、標準的に以下のようなアンロック条件を定義する:後続のトランザクションのインプット内のアンロックスクリプトは、先行するトランザクションがロックされたパーティの暗号署名を含む。
ロックスクリプト(別名scriptPubKey)は、ノードプロトコルによって認識されるドメイン固有の言語で書かれたコードの一部である。そのような言語の特定の例は、ブロックチェーンネットワークにより使用される「スクリプト」(Script,大文字S)と呼ばれる。ロックスクリプトは、トランザクションアウトプット203を消費するために必要な情報、例えば、Aliceの署名の必要条件を指定する。トランザクションのアウトプットには、アンロックスクリプトが現れる。アンロックスクリプト(別名:scriptSig)は、ロックスクリプトの基準を満たすために必要な情報を提供するドメイン固有の言語で書かれたコードの一部である。例えば、Bobの署名を含んでもよい。アンロックスクリプトは、トランザクションのインプット202に現れる。
図示の例では、Tx0のアウトプット203のUTXO0は、ロックスクリプト[ChecksigPA]を含み、これは、UTXO0が償還されるために(厳密には、UTXO0を償還しようとする後続のトランザクションが有効であるために)、Aliceの署名SigPAを必要とする。[Checksig PA]は、Aliceの公開-秘密鍵ペアからの公開鍵PAの表現(つまりハッシュ)を含む。Tx1のインプット202は、Tx1を指すポインタ(例えば、そのトランザクションID、実施形態ではトランザクションTx0全体のハッシュであるTxID0による)を含む。Tx1のインプット202は、Tx0の任意の他の可能なアウトプットの中でそれを識別するために、Tx0内のUTXO0を識別するインデックスを含む。Tx1のインプット202は、さらに、Aliceが鍵ペアからのAliceの秘密鍵をデータの所定の部分(暗号において「メッセージ」と呼ばれることもある)に適用することによって作成された、Aliceの暗号署名を含むアンロックスクリプト<SigPA>を含む。有効な署名を提供するためにAliceが署名する必要があるデータ(又は「メッセージ」)は、ロックスクリプトにより、又はノードプロトコルにより、又はこれらの組み合わせによって定義され得る。
新しいトランザクションTx1がブロックチェーンノード104に到着すると、ノードはノードプロトコルを適用する。これは、ロックスクリプトとアンロックスクリプトを一緒に実行して、アンロックスクリプトがロックスクリプトで定義されている条件(この条件は1つ以上の基準を含むことができる)を満たしているかどうかをチェックすることを含む。実施形態では、これは、2つのスクリプトの連結を含む。
ここで、「||」は連結を表し、「<...>」はスタックにデータを配置することを意味し、「[...]」はロックスクリプトに含まれる機能である(本例では、スタックベースの言語)。同等に、スクリプトは。、スクリプトを連結するのではなく共通のスタックにより1つずつ実行されてよい。いずれの方法でも、一緒に実行する場合、スクリプトは、Tx0のアウトプット内のロックスクリプトに含まれるAliceの公開鍵PAを使用して、Tx1のインプット内のアンロックスクリプトが、データの期待部分に署名するAliceの署名を含むことを認証する。また、データの期待部分(「メッセージ」)も、この認証を実行するために含まれる必要がある。実施形態において、署名されたデータは、Tx1の全体を含む(従って、データの署名された部分がすでに本質的に存在するので、データの署名された部分を平文で指定する別個の要素が含まれる必要はない)。
公開-秘密暗号法による認証の詳細は、当業者には周知であろう。基本的に、Aliceが彼女の秘密鍵を用いてメッセージに署名した場合、Aliceの公開鍵とそのメッセージが平文ならば、ノード104のような別のエンティティは、そのメッセージがAliceによって署名されていなければならないことを認証することができる。署名は、典型的には、メッセージをハッシュし、ハッシュに署名し、署名としてメッセージにこれをタグ付けすることによって、公開鍵の所有者が署名を認証することを可能にする。従って、実施形態では、特定のデータ片又はトランザクションの部分等に署名するという言及は、データ片又はトランザクションの部分のハッシュに署名することを意味し得る。
Tx1内のアンロックスクリプトが、Tx0のロックスクリプトで指定された1つ以上の条件を満たす場合(示される例では、Aliceの署名がTx1内で提供され、認証されている場合)、ブロックチェーンノード104は、Tx1が有効であるとみなす。これは、ブロックチェーンノード104がTx1をトランザクションの順序付きセット154に追加することを意味する。ブロックチェーンノード104は、トランザクションTx1をネットワーク106内の1つ以上の他のブロックチェーンノード104に転送し、それによって、それがネットワーク106全体に電波されることになる。一旦、Tx1が妥当性確認され、ブロックチェーン150に含まれると、これは、Tx0からのUTXO0を消費したものとして定義する。Tx1は、未使用トランザクションアウトプット203を使用する場合にのみ有効であることに留意されたい。別のトランザクション152によって既に消費されたアウトプットを消費しようとする場合、Tx1は、たとえ他のすべての条件が満たされていても無効となる。従って、ブロックチェーンノード104は、先行するトランザクションTx0において参照されたUTXOが既に使用されているかどうか(既に別の有効なトランザクションへの有効なインプットを形成しているかどうか)もチェックする必要がある。これが、ブロックチェーン150がトランザクション152に定義された順序を課すことが重要である理由の1つである。実際には、所与のブロックチェーンノード104は、トランザクション152が消費されたUTXO203をマークする別個のデータベースを維持することができるが、最終的には、UTXOが消費されたかどうかを定義するのは、ブロックチェーン150内の別の有効なトランザクションへの有効なインプットを既に形成しているかどうかである。
所与のトランザクション152の全部のアウトプット203の中で指定された総量が全部のそのインプット202により指される総量より大きい場合、これは、殆どのトランザクションモデルにおいて無効の別の基礎である。従って、このようなトランザクションは、伝播されず、ブロック151に含まれることもない。
UTXOベースのトランザクションモデルでは、所定のUTXOを全体として使用する必要があることに注意する。UTXOで定義されている量のうち、別の分量が消費されている一方で、分量を「残しておく」ことはできない。ただし、UTXOからの量は、次のトランザクションの複数のアウトプットに分割できる。例えば、Tx0のUTXO0で定義された量は、Tx1の複数のUTXOに分割できる。従って、AliceがBobにUTXO0で定義された量の全てを与えることを望まない場合、彼女は残りの量を使って、Tx1の第2アウトプットの中で自分自身にお釣りを与えるか、又は別のパーティに支払うことができる。
特に、Aliceは、通常、彼女のトランザクションを公開するビットコインノード104のために手数料も含む必要がある。Aliceがマイナーのための手数料を含まない場合、Tx0はマイナーのブロックチェーンノード104によって拒否される可能性が高く、したがって、技術的には有効であるが、それは依然として伝搬されず、ブロックチェーン150に含まれない(ノードプロトコルは、彼らが望まない場合には、ブロックチェーンノード104にトランザクション152を受け入れることを強制しない)。一部のプロトコルでは、トランザクション手数料は、独自の別個のアウトプット203を必要としない(すなわち、別個のUTXOを必要としない)。代わりに、インプット202によって示される総量と、所与のトランザクション152のアウトプット203で指定される総量との間の差は、トランザクションを公開するブロックチェーンノード104に自動的に与えられる。例えば、UTXO0へのポインタがTx1への唯一のインプットであり、Tx1は1つのアウトプットUTXO1しか持っていないとする。UTXO0で指定されたデジタルアセットの量がUTXO1で指定された量より多い場合、その差は、UTXO1を含むブロックを公開するノード104により割り当てられてよい。しかし、代替的又は追加的に、必ずしも、トランザクション152のUTXO203のうちの独自のものにおいて、トランザクション手数料を明示的に指定できることは除外されない。
Alice及びBobのデジタルアセットは、ブロックチェーン150内の任意のトランザクション152の中で彼らにロックされたUTXOで構成されている。従って、典型的には、所与のパーティ103のアセットは、ブロックチェーン150を通して、様々なトランザクション152のUTXO全体に分散される。ブロックチェーン150内のどこにも、所与のパーティ103の総残高を定義する1つの数値は記憶されていない。各パーティへのロックされた、別の将来の(onward)トランザクションに未だ使用されていない全ての様々なUTXOの値をまとめることは、クライアントアプリケーション105におけるウォレット機能の役割である。ビットコインノード104のいずれかに格納されたブロックチェーン150のコピーをクエリすることにより、これを行うことができる。
スクリプトコードは、概略的に表現されることが多い(すなわち、正確な言語を用いない)ことに注意する。例えば、特定の機能を表現するオペレーションコード(opcode、オペコード)を使用してよい。「OP_....」は、スクリプト言語の特定のオペコードを表す。例として、OP_RETURNは、ロックスクリプトの始めにあるOP_FALSEが先行するとき、トランザクション内にデータを格納することができ、それによってデータをブロックチェーン150に不変に記録することができるトランザクションの使用不可能アウトプットを生成するためのスクリプト言語のオペコードである。例えば、データは、ブロックチェーンに格納することが望ましいドキュメントを含むことができる。
標準的に、トランザクションのインプットは、公開鍵PAに対応するデジタル署名を含む。実施形態において、これは楕円曲線secp256k1を使用するECDSAに基づく。デジタル署名は、特定のデータに署名する。幾つかの実施形態では、所与のトランザクションについて、署名はトランザクションインプットの一部、及びトランザクションアウトプットの全部又は一部に署名する。署名するアウトプットの特定の部分はSIGHASHフラグに依存する。SIGHASHフラグは、通常、署名の最後に含まれる4バイトのコードであり、どのアウトプットが署名されるかを選択する(従って、署名の時点で固定される)。
ロックスクリプトは、通常、各々のトランザクションがロックされているパーティの公開鍵を含んでいることを表す「scriptPubKey」と呼ばれることがある。アンロックスクリプトは、通常、対応する署名を提供することを表す「scriptSig」と呼ばれることがある。しかし、より一般的には、UTXOが償還される条件が署名を認証することを含むことは、ブロックチェーン150の全てのアプリケーションにおいて必須ではない。より一般的には、スクリプト言語は、任意の1つ以上の条件を定義するために使用され得る。したがって、より一般的な用語「ロックスクリプト」及び「アンロックスクリプト」が好ましい。
図1に示されるようにAlice及びBobのコンピュータ装置102a、120bの各々にあるクライアントアプリケーションは、付加的な通信機能を備えてよい。この追加機能は、Alice103aが、(いずれかのパーティ又は第三者の勧誘で)Bob103bと別個のサイドチャネル301を確立することを可能にする。サイドチャネル301は、ブロックチェーンネットワークと別個にデータの交換を可能にする。このような通信は、時に「オフチェーン」通信と呼ばれる。例えば、これは、パーティの一方がネットワーク106にトランザクション152をブロードキャストすることを選択するまで、ブロックチェーンネットワーク106上に登録されることなく、又はチェーン150上に進むことなく、AliceとBobとの間でトランザクション152を交換するために使用され得る。このようにトランザクションを共有することは、時に、「トランザクションテンプレイト」の共有と呼ばれる。トランザクションテンプレイトは、完全なトランザクションを形成するために必要な1つ以上のインプット及び/又はアウトプットが欠けていてよい。代替又は追加で、サイドチャネル301は、任意の他のトランザクションに関連するデータ、例えば、鍵、交渉される量又は条項、データコンテンツ、等を交換するために使用されてよい。
サイドチャネル301は、ブロックチェーンネットワーク106と同じパケット交換ネットワーク101を介して確立されてもよい。代替又は追加で、サイドチャネル301は、モバイルセルラネットワーク、又はローカル無線ネットワークのようなローカルエリアネットワーク、又はAliceとBobの装置102a、102bの間の直接有線若しくは無線リンクのような異なるネットワークを介して確立されてよい。一般に、本願明細書のどこかで言及されるサイドチャネル301は、「オフチェーン」で、つまりブロックチェーンネットワーク106と別個にデータを交換するための1つ以上のネットワーキング技術又は通信媒体を介する任意の1つ以上のリンクを含んでよい。1つより多くのリンクが使用されるとき、全体としてのオフチェーンリンクのバンドル又は集合がサイドチャネル301と呼ばれてよい。従って、Alice及びBobが特定の情報又はデータ片等をサイドチャネル301を介して交換すると言われる場合、これは、必ずしも全部のこれらのデータ片が正確に同じリンク又は同じ種類のネットワークを介して送信される必要があることを意味しないことに留意する。
モノのインターネット
IoTは、日常の物理的装置及びオブジェクトへのインターネットの拡張である。計算処理能力及びインターネット接続性を装備されると、装置は、互いに通信し相互作用でき、リモートで監視され制御されることができる。時間と共に、機械学習、リアルタイム分析及び複数の技術の収束により、IoTの定義は進化するが、無線センサネットワーク及び/又は制御システムをサポートできる装置のシステムがIoTを可能にする可能性があることが一般的に受け入れられる。
IoTは、日常の物理的装置及びオブジェクトへのインターネットの拡張である。計算処理能力及びインターネット接続性を装備されると、装置は、互いに通信し相互作用でき、リモートで監視され制御されることができる。時間と共に、機械学習、リアルタイム分析及び複数の技術の収束により、IoTの定義は進化するが、無線センサネットワーク及び/又は制御システムをサポートできる装置のシステムがIoTを可能にする可能性があることが一般的に受け入れられる。
IoTシステムは、幾つかの問題に直面している。例えば、そのようなシステムの拡張性及びコストは、IoTシステムがそれらの最大の可能性に到達するのを妨げる可能性がある。集中化された方法で結合され制御されるとき、IoT装置は、データを送信するため及び制御コマンドを受信するために、バックエンドインフラストラクチャを必要とする。これらのバックエンドインフラストラクチャは、第三者クラウドサービス又は自社保有のサーバファーム上でホスティングされる。IoTソリューションの拡張性は、バックエンドサーバ及びデータセンタの拡張性により決定され、これは、IoTサービスプロバイダの法外に高い運用コストにつながる。結果として、多くの提案されるIoTソリューションは、コスト効率が悪く、毎日のシナリオでの使用に適さない。ネットワーク遅延のような性能測定も、IoT採用の率を決定する重要な因子になる。
IoTシステムが直面している別の問題は、自動化と制御との間のトレードオフである。IoTソリューションは、日常の電子装置へのリモートアクセス及び制御を可能にするよう設計される。殆どのIoTソリューションは、完全なユーザ制御、及び装置と他のIoTソリューションコンポーネントとの間の自動化された通信の間のバランスをとる。装置又はIoTシステムのいずれかが故障した場合、オーバライドメカニズムのような安全措置が取られる必要がある。
別の問題は、サイバー攻撃の脅威である。インターネットを介した装置の自動制御を可能にすることにより、ユーザは、彼ら自身をセキュリティリスクに晒している。これは2つの形式があり、1つはIoT装置メタデータをインターネットを介して送信することにより引き起こされるプライバシのリスクである。例えば、盗聴者が家電機器のような装置からのデータへのアクセスを得た場合、装置使用のパターンが犯罪者により、例えば不法目的侵入者が家に人がいるときを予測するために、使用される可能性がある。第2のリスクは、攻撃者又は第三者がIoT装置の制御を得る可能性である。重機又は危険な物品を操作するために使用されるような実行が厳格な制御ソフトウェアでは、攻撃は悲劇的な結果をもたらす可能性がある。
IoTシステムは、集中化又は非集中化及び/又はハイブリッドであるよう設計できる。集中化ソリューションは、ボトルネックに苦しむが、IoTシステム内の特権のあるコンポーネントにより、より速くより信頼できる制御が可能である。非集中化状態レポートは、IoTソリューションをより拡張性のあるものにする。エッジコンピューティングは、重要なアプリケーションについてネットワーク遅延を低減し、IoTシステムのクラウドへの依存を低減し、膨大な量のIoTデータの良好な管理を提供するのを助ける。非集中化処理の出現は、システムアーキテクチャにおいて、集中化及び分散型アーキテクチャの利点を利用する機会を強調する。階層型制御構造の中で集中化及び分散型システムを結合するハイブリッドシステムは、ユーザの安全性及び有用性の目的を向上できる。
図3は、本開示の実施形態を実施するための例示的なシステム300を示す。例示的なシステム300は、1つ以上の装置(つまりコンピューティング装置)302及び1つ以上のIoTノード303(つまり、ブロックチェーンクライアントアプリケーション105を実行する、従ってブロックチェーンネットワーク106の上に第1ネットワークを形成できるコンピューティング装置)の第1ネットワークを含む。明確化のために、第1ネットワークは、IoTネットワーク、つまりインターネットにより相互接続されるコンピューティング装置のネットワークとも呼ばれる。通常、エンド装置302及びIoTノード303は、日常の装置に実装される。エンド装置302は、様々な形式、例えば、ユーザ装置(例えば、スマートTV、スマートスピーカ、おもちゃ、ウェアラブル、等)、スマート家電(例えば、冷蔵庫、洗濯機、オーブン、等)、メータ若しくはセンサ(例えば、スマートサーモスタット、スマート照明器具、セキュリティセンサ、等)、のうちの1つを取ってよい。同様に、IoTノード303も、限定ではないが、エンド装置が取り得るのと同じ形式を含んでよい様々な形式をとってよい。IoTノード303は、専用サーバ機器、基地局、アクセスポイント、ルータ、等の形式を取ってもよい。幾つかの例では、各装置は、固定ネットワーク(例えば、IP)アドレスを有してよい。例えば、エンド装置のうちの1つ、一部又は全部は、モバイル装置と反対に、固定装置(例えば、スマート照明器具、又はスマート中央暖房制御、等)であってよい。
IoTネットワークは、パケット交換ネットワーク101、通常、インターネットのような広域インターネットワークである。パケット交換ネットワーク101のIoTノード303及び装置302は、パケット交換ネットワーク101内のオーバレイネットワークを形成するよう構成される。各ノード303は、1つ以上のプロセッサ、例えば、1つ以上の中央処理装置(CPU)、アクセラレータプロセッサ、特定用途向けプロセッサ、及び/又はフィールドプログラマブルゲートアレイ(FPGA)を含む各々のコンピュータ機器を含む。各IoTノード303はまた、メモリ、すなわち、非一時的コンピュータ読み取り可能媒体又は媒体の形態のコンピュータ読み取り可能記憶装置を備える。メモリは、1つ以上のメモリ媒体、例えば、ハードディスクなどの磁気媒体、固体ドライブ(solid-state drive (SSD))、フラッシュメモリ又はEEPROMなどの電子媒体、及び/又は光ディスクドライブなどの光学的媒体を使用する1つ以上のメモリユニットを含んでもよい。
IoTネットワークの各IoTノード303は、ブロックチェーンクライアントアプリケーション105を作動する。IoTネットワークの各IoTノード303は、直接又は間接的にエンド装置302を制御するよう構成される。エンド装置302に直接結合されるIoTノード303は、該装置を直接制御できる。エンド装置302に直接結合されないIoTノード303は、例えば1つ以上の中間IoTノードを介して制御メッセージをエンド装置に転送することにより、該装置を間接的にのみ制御できる。各IoTノード303は、1つ以上のブロックチェーンノード104に結合される。
図3は、ブロックチェーンネットワーク106のサブセットであるブロックチェーンノード104のネットワーク304も示す。
図3に示されるように、IoTノード303は、IoTネットワーク及びブロックチェーンネットワーク106の両方の部分を形成する。一方で、ブロックチェーンノード104は、ブロックチェーンネットワーク106の部分のみを形成する。エンド装置302は図3ではIoTネットワークのみの部分を形成するとして示されるが、エンド装置302がブロックチェーンノード104に結合できることも排除されない。
図4は、例示的なIoTネットワークポロジを示す。IoTネットワークは、マスタIoTノード303a、1つ以上の中間IoTノード303b、303cのうちの1つ以上のセット401、及びエンド装置302のセットを制御してよい。マスタIoTノード303aは、1つ以上の中間IoTノード303b、303cを制御するよう構成される。IoTネットワークが、中間IoTノードの複数のセット(例えばレイヤ)401a、401bを含む場合、マスタIoTノード303aは、中間IoTノードの第1セット(レイヤ)601a(例えば、「サーバノード」303bのレイヤ)を直接制御し、及び中間IoTノードの1つ以上の更なるセット(レイヤ)401(例えば、「スレーブノード」303cのレイヤ)を間接的に制御するよう構成される。マスタIoTノード303aは、サーバ及びスレーブノードをオーバライドし及び制御する能力(つまり、許可)を有する。各サーバノード303bは、スレーブノード303cを制御する能力を有する。各スレーブノード303cは、スレーブノード303b及びマスタIoTノード303aの制御下にあるノードである。例として、エンド装置302aに指示するために、マスタIoTノード303aは、家来のノード303bを介してスレーブノード303cにコマンドを発行する。
図4の例示的なIoTネットワークは中間IoTノード303の2つのレイヤのみを示すが(サーバノードとスレーブノード)、他の例は、例えばマスタIoTノード303aとサーバノード303bとの間、及び/又はサーバノード303bとスレーブノード303cとの間に、中間IoTノードの1つ以上の更なるセットを含んでよい。図示のように、各IoTノードは、各々の結合402を介して1つ以上の他のノードに結合され、各エンド装置302は、各々の結合402を介して1つ以上のスレーブノードに結合される。1つ以上のノード(例えば、マスタIoTノード)は、以下では制御ノードと呼ばれる。
IoTネットワークノード303は、機能の範囲で、命令/特権の優位性で、及び/又はアクセスの範囲で、階層に対応してよい。幾つかの実装では、SPVノードの階層的セットは、「IoT制御部」を実装し、図3及び4のマスタ303a、サーバ303b、及びスレーブ303cに対応する3つの階層レベルを有する。マスタIoTノード303aは、1つ以上のサーバノード303bに指示子、各サーバノードは、1つ以上のスレーブノード303cに指示する。各スレーブノード303cは、1つ以上のサーバノード303bから命令を受信する。各スレーブノード303cは、1つ以上のIoT装置302と通信し、これらは、IoT制御部303とIoTエンド装置302との間の直接通信チャネルである。IoT制御部303の実行状態は、ブロックチェーントランザクションTxに記録される。各IoTノード、つまり、マスタ、サーバ、又はスレーブは、対応するトランザクションTxを生成し、ブロックチェーンネットワーク106にブロードキャストする能力を有する。各スレーブノードは、エンド装置302からのトリガ及び/又は確認信号をモニタし、全てのIoTノード303は、IoT制御部の全ロジックを実行するために、任意の他のIoTノードと相互作用する能力を有する。
マスタIoTノード、サーバノード、及びスレーブノードは、各々、ブロックチェーンネットワーク106上のノードに独立に結合し、ブロックチェーンクライアントアプリケーション105を動作させることができる。マスタIoTノード303aは、それらの制御下で直接及び間接的に、他のIoTノードの活動を監視し、ブロックチェーントランザクションTxの形式でこれらの他のIoTノードにコマンドを発行し、警告に応答するよう構成される。サーバノード303bは、サーバノード303bにより直接制御されないアドレスを含む複数のアドレスを見張るよう構成される。サーバノード303bは、マスタIoTノード303aにより、アクションを実行するよう命令され得る。スレーブノード303cは、それらの制御下でエンド装置302の活動を監視するよう構成される。スレーブノード303cは、サーバノード303bの直接コマンドの下にあり、マスタIoTノード303aによりアクションを実行するよう命令されることもできる。スレーブノード303cは、エンド装置302に対してゲートウェイノードとして動作する(つまり、エンド装置とブロックチェーンネットワーク106との間のゲートウェイ)。エンド装置302は、近くにあるスレーブノードに結合するよう構成される。それらは、エンド装置状態について、オフチェーンメッセージプロトコルを用いて報告する。
エンド装置302がIoTノード303により制御されるが、それら自体がIoTノード303を制御しないという点で、IoTノード303とエンド装置302とが区別されるが、エンド装置302はブロックチェーンネットワーク106のブロックチェーンノード104にも結合できることに留意する。つまり、幾つかの例では、エンド装置302は、ブロックチェーンクライアントアプリケーション105を動作させてよい。
IoTネットワークは、ブロックチェーンネットワークインフラストラクチャを使用して、コマンド及び制御階層構造を結合することにより、集中化と非集中化との間のバランスをとる。ネットワークのユーザは、クライアントサーバ、及び装置間のピアツーピア関係を含む、彼ら自身のマルチレベル制御階層構造を生成できる。ネットワークアーキテクチャは、2つのレイヤ:IoTネットワーク及びブロックチェーンネットワーク104を含む。ブロックチェーンネットワーク106は、バックエンドインフラストラクチャとして動作し、IoTネットワークとブロックチェーンネットワーク106との間には重なり合いがある。
要求及び応答プロトコル
IoTネットワーク303のIoTノード303は、通信プロトコルに従い動作してよい。ここで、IoTノード303はブロックチェーントランザクションTxを使用して、コマンド要求を発行し、それらのコマンド要求に基づき装置に命令し、コマンド確認応答を発行する。実施形態はIoTネットワークに関して説明されるが、一般に、本開示の教示は、ブロックチェーンクライアントアプリケーション105を作動させるネットワークエンティティ303及び該ネットワークエンティティの少なくともサブセットにより制御可能なエンド装置を含む任意のネットワークに適用され得る。
IoTネットワーク303のIoTノード303は、通信プロトコルに従い動作してよい。ここで、IoTノード303はブロックチェーントランザクションTxを使用して、コマンド要求を発行し、それらのコマンド要求に基づき装置に命令し、コマンド確認応答を発行する。実施形態はIoTネットワークに関して説明されるが、一般に、本開示の教示は、ブロックチェーンクライアントアプリケーション105を作動させるネットワークエンティティ303及び該ネットワークエンティティの少なくともサブセットにより制御可能なエンド装置を含む任意のネットワークに適用され得る。
IoTネットワークの第1IoTノード303(例えば、マスタIoTノード303a又はサーバノード303b)は、第1トランザクションTx1を生成する。第1トランザクションTx1は、第1IoTノードにより署名されたインプットと、コマンドデータを含むアウトプットと、を含むコマンドデータは、制御されるべきエンド装置302の識別子と、エンド装置302を制御するためのコマンドメッセージと、を含む。第1IoTノードは、コマンドの生成元であってよい。つまり、第1IoTノードは、コマンドデータを生成してよい。
第1IoTノードは、第1トランザクションTx1を、エンド装置302を制御する、第1ネットワークの第2IoTノード303(例えば、スレーブノード303c)へ送信してよい。第1トランザクションTx1は、オフチェーンで送信されてよく、つまりブロックチェーンに送信されない。例えば、第1トランザクションTx1は、第1IoTノードから第2IoTノードへと直接、例えばインターネットを介して、送信されてよい。例えば、第1IoTノードはサーバノード303bであってよく、第2IoTノードはスレーブノード303cであってよい。代替として、第1トランザクションTx1は、間接的に、例えば1つ以上の中間IoTノードを介して送信されてよい。例として、第1トランザクションTx1は、マスタIoTノード303aからスレーブノード303cへ、サーバノード303bを介して送信されてよい。第2IoTノードは、エンド装置302に、有線又は無線結合を介して、例えばイーサネット又はWi-Fi結合を介して結合されてよい。
追加又は代替として、第1IoTノードは、ブロックチェーン150上で公開されるように、第1トランザクションTx1をブロックチェーンネットワーク106へ送信してよい。これは、第1トランザクションTx1が有効なトランザクションであることに依存する。後述するように、幾つかの場合には、第1トランザクションTx1をブロックチェーン150へ送信しないことが望ましい。
第2IoTノードは、第1トランザクションTx1を直接又は間接的に第1IoTノードから取得してよい。例えば、第1トランザクションTx1は、第2IoTノードへ1つ以上の中間IoTノードを介して転送されてよい。第2IoTノードは、コマンドデータを使用して、制御命令を、コマンドデータ内の装置識別子(「Device ID」)により識別されるエンド装置302へ送信する。コマンドデータ内の制御メッセージは、エンド装置302の所望のアクションを定義してよい。制御メッセージは、第2IoTノードに、複数の可能な命令のうちの特定の1つをエンド装置302へ送信させる。代替として、第2IoTノードは、単一の命令をエンド装置302へ送信するよう構成されてよい。つまり、第2IoTノードは、同じ命令のみをエンド装置へ送信する。これは、例えば、エンド装置302がセンサのような簡易な装置であり、命令がセンサ読み取りのための要求である場合に当てはまる。
コマンド(つまり、エンド装置に対する命令)は、装置へと、オフチェーンで有線又は無線結合を介して、例えばWi-Fiを使用して、送信されてよい。代替として、装置がネットワークのノードでもある場合、コマンドは、ブロックチェーントランザクションTxを介して送信されてよい。
幾つかの実施形態では、装置及び制御部通信の要求及び応答サイクルは、第1及び第2IoTノードにより実施されてよい。要求(コマンド)は、コマンドデータ(例えば、OP_FALSE OP_RETURNペイロード)を含むアウトプットを含む部分的に完了したトランザクションとして発行される。応答(コマンドの確認応答)は、要求側及び応答側ノードの両方の署名を含む最終トランザクションのブロードキャストである。メッセージの受信側がインプット及びアウトプットを追加できるが、コマンドデータ(例えば、OP_FALSE OP_RETURNペイロード)を変更することはできないので、トランザクションの順応性(malleability)はこの通信方法を可能にする。
第1IoTノードから第2IoTノードへと送信される第1トランザクションTx1は、第2アウトプットを有しないで送信されてよい。つまり、トランザクションは、単一のアウトプット(コマンドデータを含むアウトプット)を含む。部分的トランザクションを完成するために、第2IoTノードは、第1トランザクションにインプット及びアウトプットを追加することにより、トランザクションを更新してよい。インプットは、第2IoTノードの署名、つまり第2ノードの秘密鍵を用いて生成された署名を含む。アウトプットは、第2IoTノードの公開鍵にロックされたアウトプット、例えばP2PKHアウトプットである。P2PKHアウトプットをアンロックするために、支払いトランザクションのインプットは公開鍵を含まなければならない。その結果、公開鍵のハッシュ(例えばOP_HASH160)がP2PKHアウトプット内の公開鍵ハッシュと一致する。P2PKHアウトプットは、アウトプットをアンロックしようとするパーティに、2つのアイテム:公開鍵のハッシュがP2PKHアウトプット内のアドレス(ハッシュ)と一致するような公開鍵、及び公開鍵とトランザクションメッセージについて有効である署名、を必ずしもその順序でなく提供するよう課題を課す。公開鍵は、署名を生成するために使用される秘密鍵に対応してよい。代替として、署名は、第1公開鍵にリンクされてよく、アウトプットは異なる公開鍵にロックされてよい。第2IoTノードは、次に、ブロックチェーンネットワーク106に完了したトランザクションを送信してよい。完了したトランザクション(これらの実施形態ではコマンドトランザクションと呼ばれる)は、他のIoTノードが取得するように、ブロックチェーン150上で公開され、装置により実行されるコマンドのレコードとして機能する。つまり、トランザクションがブロードキャストされると、独立した観察者は、どの公開鍵がコマンド/メッセージを発行したか、及びどの公開鍵がそれに応答したか、を知ることができる。
図5A及び5Bは、例示的な部分的第1トランザクションTx1(partial)及び例示的な更新済み第1トランザクションTx1(complete)を示す。部分的第1トランザクションは、単一のインプット及び単一のアウトプットを含む。更新済み第1トランザクションは、第2IoTノードにより追加されたインプット及びアウトプットを含む。SIGHASH_SINGLE署名タイプは、所望のレベルのトランザクション順応性を達成するために使用できる。例えば、公開鍵PK0を有するIoTノードは、公開鍵PK1を有するIoTノードに命令を送信する。命令は、SIGHASH_SINGLE署名タイプを用いて署名されたトランザクションの使用不可能アウトプット(例えば、OP_FALSE OP_RETURNアウトプット)の中に符号化される。部分的に完了したトランザクションは有効である。命令が完了すると、PK1を有する第2IoTノードは、彼らの公開鍵にロックされたアウトプットを追加する。PK1を有する第2IoTノードは、SIGHASH_ALL署名タイプを用いてトランザクション全体に署名することにより、トランザクションを完成させる。
代替的実施形態では、第1IoTノードから第2IoTノードへと送信される第1トランザクションTx1は、第2アウトプットを有して送信されてよい。第2アウトプットは、第2IoTノードの公開鍵にロックされる。例えば、第2アウトプットは、第2IoTノードの公開鍵に対するP2PKHであってよい。
第1トランザクションTx1を完了するために、第2IoTノードは、第1トランザクションにインプットを追加することにより、第1トランザクションを更新する。第1トランザクションTx1は、今や、2つのインプットと2つのアウトプットを含む。第2インプットは、第2IoTノードの公開鍵を含む。第2インプット内の公開鍵は、第2アウトプットがロックされる公開鍵と同じであってよく又は同じでなくてもよい。完了すると、更新済み第1トランザクション(これらの実施形態ではコマンドトランザクションと呼ばれる)は、ブロックチェーン150上で公開されるように、ブロックチェーンネットワーク106へ送信される。コマンドトランザクションがブロードキャストされると、任意の独立した観察者は、どの公開鍵がコマンド/メッセージを発行したか、及びどの公開鍵がそれに応答したか、を知ることができる。
第2IoTノードの公開鍵にロックされた第2アウトプットは、第1トランザクションの第1インプットにより参照されるデジタルアセットの量よりも大きいデジタルアセットの量を割り当ててよい。その場合、第1トランザクションTx1は、ブロックチェーンノード104により有効であると見なされない、部分的に完了したトランザクションである。つまり、第1トランザクションTx1は、ブロックチェーンノード104が従う合意ルールを満たさないので、ブロックチェーン150のブロック151の中で公開されない。第1トランザクションTx1を更新するとき、第2IoTノードは、第1及び第2インプットにより参照されるデジタルアセットの結合された量が、第2アウトプットにロックされたデジタルアセットの量よりも大きいことを保証する必要がある。
図6A及び6Bは、例示的な部分的第1トランザクションTx1(partial)及び例示的な更新済み第1トランザクションTx1(complete)を示す。第1トランザクションは、第1アウトプット内のコマンドデータと、第2IoTノードの公開鍵にロックされた第2アウトプットと、を含む。更新済み第1トランザクションは、第2IoTノードにより追加された追加インプットを含む。PK0を有する第1IoTノードがPK1を有する第2IoTノードに、彼らがPK1を有する第2IoTノードによってのみ実行されることを望む命令を送信する場合、彼らは、両方のアウトプットをロックするがトランザクション手数料を支払わない(従って、ブロックチェーンノード104によりブロック151に含まれる可能性が低い)部分的に完了したトランザクションを送信できる。PK1にロックされたデジタルアセットを償還するために、PK1を有する第2IoTノードは、トランザクション手数料をカバーするインプットを提供する必要がある。部分的に完了したトランザクションを用いてコマンドを発行するために、<SigPK0>のSIGHASHフラグは、SIGHASH_ANYONECANPAYに設定され、コマンドデータを有するOP_FALSEOP_RETURNアウトプットを含む。これは、第1アウトプットに含まれるコマンドデータは確定するが、誰でも追加インプットを追加できることを意味する。コマンドを受信した公開鍵は、インプット801a内のデジタルトークンを償還するために、追加インプットを追加できる。新しいインプットを保証し、更なるトランザクションの順応性を防ぐために、トークンの受信側は、最小価値(ダスト)インプットを追加し、SIGHASH_ALLを用いてトランザクションアウトプットに署名する。
SIGHASHフラグは、署名がトランザクションのどの部分に署名したかを示すために、トランザクションインプット内の署名に追加されたフラグであることに留意する。デフォルトはSIGHASH_ALL(ScriptSig以外のトランザクションの全部の部分が署名されている)である。トランザクションの署名されていない部分は、変更できる。
図7を参照して、例示的な要求及び応答アルゴリズムが以下に提供される。制御装置303bは、IoTネットワーク上の他のIoTノードと通信するよう構成され、IoTネットワーク上の任意の他のIoTノードへの最短通信経路を計算できる。例えば、PKservは、PKslaveが、device_IDを有する装置に最も近い制御部であることを識別する。
ステップ1:公開鍵PKservを有する制御装置303bは、PKslaveを有する第2制御装置303cに部分コマンドTx1を送信する。トランザクションに含まれるIoTメッセージは、device_IDを有するターゲット装置及びコマンドを指定する。
ステップ2:第2制御装置(PKslave)は、トランザクションの署名が有効であること、及びIoTメッセージペイロードに含まれるメッセージがネットワークのルールに従い有効であることをチェックする。
ステップ3:第2制御装置(PKslave)は、コマンドメッセージ(「Msg」)を装置(device_ID)へ、オフチェーン通信(例えば、有線結合、Bluetooth、IP-to-IP)を介して送信する。
ステップ4:コマンドの要求するアクションが完了すると、装置(device_ID)は、コマンド完了又は確認応答メッセージ(「ack」)を、第2制御装置(PKslave)に返送する。
ステップ5:第2制御部(PKslave)は、第2インプットを追加し、署名し、トランザクションを完成させる。これは、第2制御部がコマンドの完了を確認したことをシグナリングする。
ステップ6:第2制御部(PKslave)は、ブロックチェーンネットワーク106に完成したトランザクションをブロードキャストする。
図8は、コマンドトランザクションの例示的なコマンドデータアウトプットを示す。第1コマンドトランザクションは、IoTノード303の署名を含むインプット(図示しない)と、コマンドデータを含むアウトプットと、を含む。この例では、プロトコル識別子(4バイト)に続いて、IoT通信情報を含む93バイトのペイロードがある。通信情報は、コマンド命令の意図された受信側の32バイトの装置ID、装置証明書の位置、コマンド、及び装置状態を含む。幾つかの例では、新しいコマンド又は状態更新を発行する全てのトランザクションは、このフォーマットに従わなければならない。さもなければ、それは無効なコマンドであると考えられる。任意のオンチェーンメッセージについてフィールドが必要ない場合、そのバイトは0x00000000に設定されてよい。望ましくは、後述するように、ペイロードデータ自体は暗号化される。ペイロードデータは、次に、復号鍵を保持するパーティによってのみアクセスできる。以下の表は、例示的なIoTメッセージペイロードのフィールドを示す。ここで使用されるデータフィールドの特定のサイズ(バイト数)は例であり限定ではないことに留意する。
装置状態の複製は、装置の報告された状態又は所望の状態の論理的表現である。IoTメッセージ内で、装置状態情報は、Device ID、Status、及びPrev. Statusに符号化される。装置IDに関連する最新のトランザクションは、現在の装置状態を表す。コマンド、応答、及び装置の状態に関連するデータを含むメッセージは、ブロックチェーン150上のタイムスタンプ付きブロック150に含まれる。
要するに、IoTネットワーク上のノード303は、IoTコマンドデータを含むトランザクションを用いて、及びブロックチェーンネットワーク106に結合してトランザクションをブロードキャストすることにより、直接通信する。ブロックチェーン150は、IoTネットワークコンポーネントからのコマンド及び状態更新を記録する、及びIoT装置302に関連するレポート及び警告を発行する、永久データストアとして使用される。
階層型ネットワーク
階層型ネットワーク(layered network (LN))は、通信チャネルの上に重ねられたオーバレイネットワークである。例えば、通信チャネルは、個人域ネットワーク、ローカルエリアネットワーク(例えば、企業間P2Pネットワーク)、又はインターネットのような広域ネットワークのような、基礎にあるインフラストラクチャネットワークであってよい。他の例では、階層型ネットワークは、有線結合を介して結合されたLNノードのネットワークであってよい。更に他の例では、結合は、無線結合、例えば、Bluetooth又はWi-Fi結合であってよい。幾つかの例では、上述の例示的な結合の一部又は全部が使用されて、階層型ネットワークを形成してよい。
階層型ネットワーク(layered network (LN))は、通信チャネルの上に重ねられたオーバレイネットワークである。例えば、通信チャネルは、個人域ネットワーク、ローカルエリアネットワーク(例えば、企業間P2Pネットワーク)、又はインターネットのような広域ネットワークのような、基礎にあるインフラストラクチャネットワークであってよい。他の例では、階層型ネットワークは、有線結合を介して結合されたLNノードのネットワークであってよい。更に他の例では、結合は、無線結合、例えば、Bluetooth又はWi-Fi結合であってよい。幾つかの例では、上述の例示的な結合の一部又は全部が使用されて、階層型ネットワークを形成してよい。
ネットワークのLNノードの一部又は全部は、結合プロトコルに従い階層型ネットワークに結合する(つまり、参加する又は再参加する)よう構成されてよい。結合プロトコルは、結合ノードが結合する(つまり参加又は再参加しようとする)ネットワークの特定のレイヤに依存して変化してよい。結合プロトコルを詳細に説明する前に、結合プロトコルにより生成され又は実施される一連の例示的な階層型ネットワークが説明される。しかしながら、これらは単なる説明のための例であり、一般に、結合プロトコルに従う任意の階層型ネットワークが生成されてよいことが理解される。
図9は、例示的な階層型ネットワーク(LN)900の概略表現を示す。通常、LNは、コアLNノード901により構成されるコアネットワーク(又はコアレイヤ)、及び一連のレイヤ(又はシェル)を含む。コアレイヤは、第1LNレイヤとも呼ばれる。一連のレイヤは、コアレイヤの外側へ向かって、順に、第2LNノード902で構成される第2レイヤから、1つ以上の外側のレイヤへと広がる。各々の外側のレイヤは、外側のLNノード903のセットで構成される。図9には1つの外側のレイヤのみが示されるが、LNは任意の数の外側のレイヤを含んでよいことが分かる。特定の例として、図11は、5つのレイヤを含むLN1100の例を示し、図12は、4つのレイヤを含むLN1200の例を示す。
図9の例示的なLN900は、5個のLNノード901、6個のLNノード902、及び8個の外側LNノード903を含む。幾つかのLN900では、LNノードの数は、各レイヤと共に増大してよい。つまり、コアレイヤは最も少ないLNノードで構成され、最も外側のレイヤは最も多いLNノードで構成される。他の例では、コアレイヤと最も外側のレイヤとの間の1つ以上のレイヤが、最大数のLNノードで構成されてよい。本例では、コアレイヤは、LN900の最も内側のレイヤであり、第2レイヤは中間レイヤであり、唯一の外側レイヤである外側レイヤが最も外側のレイヤである。
本例のコアレイヤ(LN内のネットワーク)は、完全なグラフを形成する。つまいr、各コアLNノード901は、各々の他のコアLNノード901に結合される。5個のLNノード901のコアレイヤでは、所与の例では、コアレイヤは10個の別個のコア結合(つまり、2っつのコアLNノードの間の結合)を必要とする。他の例では(例えば、図10)、コアレイヤは、完全なグラフでなくてもよい。コアレイヤは「ほぼ完全なグラフ」を形成してよい。ほぼ完全なグラフでは、少なくとも1つのLNノード901は、少なくとも1つの他のコアLNノード901に結合されない。1つのコア結合のみが失われていてよい。ほぼ完全なグラフの特定の例では、書くコアLNノード901は、他のコアLNノード901の全部ではないが1つ以上に結合されてよい。
第2レイヤは、第2LNノード902を含む。用語「第2LNノード」は、構成によりLN900の第2レイヤ内に配置されたLNノード902のラベルとしてのみ使用されることに留意する。各第2LNノード902は、少なくとも1つのコアLNノード901に結合される。幾つかの例では、各第2LNノード902は、1つのコアLNノード901のみに結合されてよい。代替として、第2LNノード902の一部又は全部は、1つより多くのコアLNノード901に結合されてよい。例えば、第2LNノード902の一部又は全部は、コアLNノード901の各々全てに結合してよい。図9の例示的なLN900では、各コアLNノード901は、2つの第2LNノード902に結合される。しかしながら、本例では、幾つかの第2LNノード902(縞模様の円で示されるノード)は、1つのコアLNノード901に結合され、幾つかの第2LNノード902(白い円で示されるノード及び影付きの円で示されるノード)は、2つのコアLNノード901に結合される。第2LNノード902(及び外側レイヤの外側LNノード903)は、同じコアLNノード901に結合され、「コミュニティ」と呼ばれる。例えば、各白色ノードは一緒に1つのコミュニティを形成し、各縞模様のノードは一緒にコミュニティを形成し、各影付きのノードは一緒にまた別のコミュニティを形成する。第2LNノード902とコアLNノード901との間の結合は、「祖先(ancestor)結合」と呼ばれ、太い破線で示される。
図9の例では、各第2LNノード902は、2つの他の第2LNノード902に結合される。幾つかの例では、第2LNノード902の一部又は全部は、他の第2LNノードとの結合を形成しなくてよい。例えば、幾つかの第2LNノード902は、他の第2LNノード902と結合されてよく、幾つかの第2LNノードは他の第2LNノード902と結合されてよい。これらの「イントラレイヤ」結合は、図9のノード間の実線で示される。
図9の外側レイヤは外側LNノード903を含む。ここで「外側レイヤ」の用語「外側」は、可能ではあるが全体としてLNネットワークの最も外側のレイヤに限定される必要はないことに留意する。各外側LNノード903は、少なくとも1つの第2LNノード902に結合される。幾つかの例では、各外側LNノード903は、1つのコアLNノード902のみに結合されてよい。代替として、外側LNノード903の一部又は全部は、1つより多くの第2LNノード902に結合されてよい。例えば、外側LNノード903の一部又は全部は、第2LNノード901の各々全てに結合してよい。図9の例示的なLN900では、各外側LNノード903は、2つの第2LNノード902に結合される。幾つかの第2LNノード902(つまり、縞模様のノード)は、2つの外側LNノード903に結合され、幾つかの第2LNノード902(つまり、白いノード及び影付きのノード)は、3つの外側LNノード903に結合される。
図9の例では、各外側LNノード903は、同じレイヤの2つの他の外側LNノード903に結合される。幾つかの例では、外側LNノード903の一部又は全部は、同じレイヤの他の外側LNノード903との結合を形成しなくてよい。外側LNノード903の一部又は全部は、同じレイヤの別の外側LNノード903との少なくとも1つの結合を形成してよい。
同様に、少なくとも1つの第2LNノード902に結合されているので、各外側LNノード903も、少なくとも1つのコアLNノード901に結合される。外側LNノード903とコアLNノード901との間の結合は、「コア祖先(ancestor)結合」と呼ばれ、細い点線で示される。各外側LNノード903は、それらの祖先の第2LNノード902が結合さえっるコアLNノード901の各々に結合されてよい。図9に示されるように、各外側LNノード903は、それらの祖先の第2LNノード902が結合さえっるコアLNノード901の各々に結合されてよく、他のコアLNノード901には結合されない。この場合、各外側LNノード903は単一のコミュニティに属する。
図10は、LN1000の別の例の概略表現を示す。図9のLN900と同様に、例示的なLN1000は、コアレイヤ、第2レイヤ、及び外側レイヤを含む。これらの例示的なLN900、1000は、同じ数のLNノード(つまり、5このLNノード901、6個の第2LNノード902、及び8個の外側LNノード903)を共有するが、異なる数の結合を含む。例えば、本例では、コアLNノード901の間の幾つかの結合が存在しないので、コアレイヤは完全なグラフではない。別の相違点は、2つのコミュニティ(白いノードと影付きのノード)が、単一のコアLNノード901を含み、別のコミュニティ(影付きのノード)が3個のLNノード901を含むことである。更に別の相違点は、LN400の外側シェルの中のLNノードの度数(degree)が1であり、LN900の外側シェルにあるノードの度数が2であることと異なる点である。つまり、本例のLN1000では、各外側LNノード903は、単一の他の外側LNノード903に結合される。従って、異なるレイヤのLNノードは異なる度数を有する。
図11は、LN1100の別の例の概略表現を示す。本例では、幾つかのコアLNノード901のみが、第2LNノード及び外側LNノード903に結合される。つまいr、本例では、幾つかのコアLNノード901のみが、他のコアLNノード901との結合を形成する。従って、本例では、LN900は、単一のコミュニティ(影付きのノード)を含む。本例のLN900は、5個のレイヤ:コアレイヤ、第2レイヤ、及び3個の外側レイヤを含む。コアレイヤは、ほぼ完全なグラフを形成する5個のコアノード901で構成される。ほぼ完全なグラフの本例では、単一のコア結合のみが欠けている。第2レイヤは、2個のコアLNノード901に結合される単一の第2LNノード902で構成される。第2レイヤは、2個のコアLNノード901に結合される単一の第2LNノード902で構成される。第3レイヤは、祖先結合を介して第2LNノード902に結合される単一の外側LNノード903で構成される。第3レイヤの外側LNノード903は、第2LNノード902が結合される2個のコアLNノード901にも結合される。外側LNノード903は、各々のコア祖先結合を介して、2個のコアLNノード901に結合される。第4レイヤも、単一の外側LNノード904で構成される。第4レイヤの外側ノードは、祖先結合を介して第3レイヤの外側LNノード903に、及び祖先結合を介して第2LNノード902に結合される。第4レイヤの外側LNノード904は、第3レイヤの第2LNノード902及び外側LNノード903が結合される2個のコアLNノード901にも結合される。外側LNノード904は、各々のコア祖先結合を介して、2個のコアLNノード901に結合される。最後に、第5レイヤは、2個の外側LNノード905で構成される。第5レイヤの2個の外側ノード905は、第4レイヤの外側LNノード904に、及び第3レイヤの外側LNノード903に、及び第2LNノード902に、結合される。各結合は祖先結合である。2個の外側LNノード905は、コア祖先結合を介して、2個のコアLNノード901にも結合される。本例のLN1100では、第2レイヤのLNノード及び外側レイヤのLNノードは、同じレイヤの任意の他のLNノードに結合されない。
図12は、LN1200の別の例の概略表現を示す。このLNは、白いノード及び黒いノードにより示されるLNノードの2つのコミュニティを含む。本例では、コアレイヤは、完全なグラフ(つまりLNノードの完全なネットワーク)を形成する。各コミュニティは、3個のコアLNノード901の個別のセットを含む。本例のLN1200は、4個のレイヤ(コアレイヤ、第2レイヤ、及び2個の外側レイヤ)を含む。外側レイヤの各LNノードは、先行するレイヤの中の1つのLNノードに結合される。図11の例示的なLN1100と同様に、第2レイヤのノード及び外側レイヤのLNノードは、同じレイヤの任意の他のLNノードに結合されない。
本発明の幾つかの実施形態のLNは、曼荼羅ネットワークであり(又はそれを含み)、又は曼荼羅ネットワークの全部ではなく一部の特性を共有してよい。例えば、LNは、幾つかの類似の特徴を共有してよいが、代わりに、ブロックチェーンネットワーク106を利用するサービス及びユーザネットワークのためにより柔軟な望ましい接続構造を可能にするよう設計されてよい。
一般に、LNの基礎にあるインフラストラクチャネットワークは、ブロックチェーン150であり、LNはブロックチェーン150の上に重ねられたオーバレイネットワークである。LNのLNノードは、ブロックチェーンネットワーク106との結合を有するノード(例えば、簡易支払い検証(simplified payment verification (SPV))方法を実行するよう構成される軽量クライアント)である。レイヤネットワークの外側ノードは、オフチェーン装置に結合される。しかしながら、装置の一部又は全部がブロックチェーンネットワーク106との結合を有し得ることが排除されない。
LNノード901、902、903は、オーバレイネットワークレベルで互いの間の結合を形成するよう構成される。つまり、階層型ネットワークのLNノード901、902、903は、それらが階層型ネットワークの他のLNノード901、902、903と形成できる及びできない結合を指定するオーバレイネットワークプロトコルに従うよう構成される。従って、全部のLNノードは基礎にあるインフラストラクチャ(例えば、インターネット)を介して物理的に互いに結合可能であってよいが(しかし必須ではない)、それらが階層型ネットワークのLNノード901、902、903として参加しているとき、階層型ネットワーク900の関連するオーバレイネットワークプロトコルに従い動作し、従って、そのようなLNノード901、902、903の間の結合がより限定されてよい。階層型ネットワーク900のLNノード901、902、903の間の結合は、それらのノードが直接通信できる事を意味する。これは、この文脈では、階層型ネットワーク900の別のLNノード901、902、903を介してホップを実行する必要がないことを意味する。階層型ネットワークのようなオーバレイネットワークの文脈では、「結合」は、階層型ネットワーク900のレベル(つまり、階層型ネットワークのオーバレイネットワークのレベル)の結合(つまり、エッジ)を意味する。
LN900のLNノード901、902、903は、デジタル証明書により、互いに識別し通信してよい。つまり、LNノード901、902、903のうちの一部又は全部は、各々のデジタル証明書に関連付けられてよい。デジタル証明書は、各々のLNノード901、902、903の識別子、例えば該ノードに関連付けられた公開鍵、ノードのネットワークアドレス(例えば、IPアドレス)、等を含み、それを表明する。LN900のLNノード901、902、903は、該LNノードに結合するために、異なるノードのデジタル証明書を使用してよい。例えば、外側LNノード903は、第2LNノード902からデジタル証明書を取得し、デジタル証明書に含まれる第2LNノードの識別情報を使用して、第2LNノード902に結合してよい。所与のレイヤのLNノードは、レイヤの順序付きセットの中の次のレイヤのLNノードにデジタル証明書を発行してよい。つまり、コアLNノード901は、第2LNノード902にデジタル証明書を発行してよく、第2LNノード902は第1外側レイヤの外側LNノード903にデジタル証明書を発行してよく、以下同様である。幾つかの例では、所与のレイヤのLNノードは、同じレイヤのLNノードにデジタル証明書を発行してよい。例えば、第2LNノード902は、1つ以上の他の第2LNノード902に各々のデジタル証明書を発行してよい。
複数のマスタノード
図13は、図4の例示的なネットワーク303の重要性を示す。つまり、マスタIoTノード303aが壊れ、障害になり、又はネットワーク300上の他のIoTノード303を制御若しくは監視できなくなった場合、ネットワーク303は、意図したように動作できない可能性がある。例えば、悪意あるパーティが、マスタIoTノード303aを乗っ取り、該マスタIoTノード303aがIoTネットワーク上の他のIoTノードを制御することを妨害するかもしれない。
図13は、図4の例示的なネットワーク303の重要性を示す。つまり、マスタIoTノード303aが壊れ、障害になり、又はネットワーク300上の他のIoTノード303を制御若しくは監視できなくなった場合、ネットワーク303は、意図したように動作できない可能性がある。例えば、悪意あるパーティが、マスタIoTノード303aを乗っ取り、該マスタIoTノード303aがIoTネットワーク上の他のIoTノードを制御することを妨害するかもしれない。
図14は、本発明の実施形態を実施するための例示的なネットワーク1400を示す。ネットワークは、層に(つまり、IoTネットワークの各々のレイヤにより定義される階層構造で)配置された複数のIoTノードを含む点で図3のネットワークと同様である。ネットワーク1400は、複数のマスタIoTノード303aを含む点で、図3のネットワークと異なる。本例では、2つのマスタIoTノード303a、303a’のみが示されるが、通常、ネットワーク1400は、任意の数のマスタIoTノード303aを含んでよい。各マスタIoTノードは、中間IoTノードの各々のセットに結合され、それらを制御するよう構成される。例えば、第1マスタIoTノード303a’(白い円で示される)は、1つの中間IoTノード303b’(白い円で示される)に結合され、それを制御するよう構成される。一方、第2マスタIoTノード303a(縞模様の円で示される)は、2個の中間IoTノード303b(縞模様の円で示される)に結合される。図14から分かるように、第1マスタIoTノード303a’は、第2マスタIoTノード303aにより制御される2個の中間IoTノード303bにも結合される。幾つかの例では、第2マスタIoTノード303aは、第1マスタIoTノード303a’により制御される中間IoTノード303b’に結合されてよい。各中間レイヤの各中間IoTノード303b、303b’は、次の中間レイヤの1つ以上の中間IoTノード303cに、又は装置レイヤの場合には1つ以上のエンド装置302に結合される。
別の方法では、ネットワーク1400は、階層型ネットワークとして構成され、コアレイヤが複数のマスタIoTノード303aと、次に一連の外側レイヤを含む。マスタIoTノードの各々は、各々の他のマスタIoTノードに結合されてよい(例えば、コアレイヤは完全なグラフであってよい。)。代替として、コアレイヤは、上述のようなほぼ完全なグラフであってよい。外側レイヤは、1つ以上の中間レイヤを含む。各中間レイヤは、1つ以上の中間IoTノードを含む。コアレイヤの各マスタIoTノードは、通常動作下で、第1中間レイヤの中間IoTノードの各々のセットを制御する。つまり、中間レイヤは、コアレイヤに直接結合される。第1マスタIoTノード303a’により制御される中間IoTノードの各々のセット、及び第2マスタIoTノード303aにより制御される中間IoTノードの各々のセットは、排他的セットであってもそうでなくてもよい(つまり、それらは重複してもしなくてもよい)。また、マスタIoTノードのうちの1つ以上が、異なる中間レイヤ、例えば第2中間レイヤの1つ以上の中間IoTノードに結合されることも排除されない。階層型ネットワークは、1つ以上のエンド装置を含む装置レイヤも含む。図3~8を参照して、マスタIoTノード303a、中間IoTノード303b、303c、及びエンド装置302に属する特徴の任意のものが、それらのノード及び装置の以下の説明に等しく適用できる。
幾つかの実施形態では、ネットワーク1400は、各々図9~12を参照して説明された階層型ネットワーク900、1000、1100、1200のうちのいずれか1つの特性のうちの1つ、一部又は全部を共有してよい。例えば、ネットワーク1400は、曼荼羅ネットワークの形式をとり、又は曼荼羅のような特性を共有してよい。
図13に示すように、ネットワークが単一のマスタIoTノード303aで構成されるとき、問題が生じる。この問題は、異なるマスタIoTノードに問題が生じた場合に、マスタIoTノードをバックアップとして動作させることにより、本発明により解決される。例えば、第1マスタIoTノード303a’は、第2マスタIoTノード303aに問題がある(例えば、故障した)場合に、第2マスタIoTノード303aにより制御される中間IoTノード303bの制御を引き受けてよい。
以下は、第2マスタIoTノード303aのバックアップとして動作する第1マスタIoTノード303a’の観点で説明する。しかし、一般に、複数のマスタIoTノードのいずれかが第1マスタIoTノード303aに属するアクションを実行してよいことが理解される。
第1マスタIoTノード303a’は、第2マスタIoTノードの各々の中間IoTノードのセット、つまり第2中間IoTノードセットを制御する能力に影響を与える問題(又は複数の問題)を識別する。
例えば、問題は、例えば、上述の要求及び応答プロトコルに従いコマンドトランザクションを第2中間IoTノードセットのうちの1つ以上のノードに発行することにより、第2マスタIoTノード303aが第2中間IoTノードセットを制御できないことであってよい。第2マスタIoTノード303aは、例えば、第2マスタノード303aの故障又は他の技術的問題のために、又は第2マスタIoTノード303aが悪意あるパーティにより侵害されたために、第2中間IoTノードセットを制御できないことがある。
別の例として、問題は、第2マスタIoTノード303aが、ロードバランス問題を経験していることであってよい(例えば、ネットワーク1400の1つ以上の結合に渡るトラフィックが多すぎる)。ロードバランス問題は、ネットワーク全体の問題であってよい。つまり、ネットワークに渡る負荷は、全体として、閾値量を上回る。その状況では、第2マスタIoTノードは、負荷を許容可能な閾値より低くするために、自身の結合のうちの1つ以上を無効にする必要があってよい。他の例では、第2マスタIoTノードは、他のマスタIoTノードのうちの1つ(例えば、第2マスタIoTノード)から命令を受信してよい。命令は、特定の結合をドロップするよう第2マスタIoTノードに指示する。幾つかの例では、第2マスタIoTノード303aは、結合をドロップするのではなく、トラフィックを第1マスタIoTノード303a’へとリダイレクトすることにより、ロードバランス問題を処理してよい。
ロードバランス問題は、第2マスタIoTノードと、第2マスタIoTノード303aに結合された特定の中間IoTノード又は中間IoTノードセットとの間の負荷であってよい。第2マスタIoTノードは、例えば増大した負荷を許容可能な閾値量の範囲内にするよう、結合又は複数の結合を無効にしてよい。代替として、第2マスタIoTノードは、例えば別のマスタIoTノードからの結合をドロップする命令に応答して、該マスタIoTノードとの結合をドロップしてよい。
(第2マスタIoTノード303自身又は別のノード、例えば第1マスタIoTノードによる)ロードバランス問題の検出は、階層型ネットワーク内の第2マスタIoTノードと1つ以上の他のノードとの間の結合上の負荷が閾値を超えると検出することを含んでよい。このような負荷は、例えば、帯域幅、誤り率、パケット損失レート、遅延、ジッタ、又は1つ以上のそのような測定の中で結合する結合メトリックの観点で測定されてよい。代替として又は追加で、ロードバランス問題の検出は、第2マスタIoTノードにおける処理負荷が閾値を超えると検出することを含んでよい。これは、例えば、第2マスタIoTノードの消費された処理リソース、又は第2マスタIoTノードの利用可能な処理リソースの観点の指標であってよい。
実施形態では、ロードバランス問題の検出は、IoTネットワークの第2マスタIoTノードと1つ以上の他のノード(例えば、第2ノードセットのうちの1つ以上のノード)との間の結合の数が、結合の閾数、例えば第2マスタIoTノードへの合計結合の最大数を超えたと検出することを含んでよい。例えば、第2マスタIoTノードは、ネットワーク1400の結合プロトコルにより許容される最小又は最大数の結合を維持するよう要求されてよい。
閾値は、第2マスタIoTノードと特定のレイヤのノードとの間の結合の閾値であってよい。例えば、第2マスタIoTノードは、特定数のコア結合、又は(例えば、特定の中間レイヤの若しくは中間レイヤ全体に渡る)中間IoTノード303bへの結合を形成(及び維持)することのみを許可されてよい。第2マスタIoTノードは、中間IoTノードへの自身の結合のうちの1つ以上をドロップし、及び/又は自身の結合した中間IoTノードのうちの1つ以上に、第2マスタIoTノードへのそれらの結合をドロップするよう指示してよい。ドロップされる結合の数は、許容可能な結合の閾数を上回る結合の数に等しいか又はそれより多くてよい。
幾つかの実施形態では、各々のIoTノードとの結合を無効にすることは、第2マスタIoTノードにより各々のIoTノードに発行された各々のデジタル証明書を取り消すことを含んでよい。これらの例では、IoTノードは、別のIoTノードと結合するために、有効なデジタル証明書を有していなければならない。第2マスタIoTノードは、中間ノードにデジタル証明書を発行する責任があってよい。第2マスタIoTノードは、中間IoTノード303bとの結合を無効にするために、該ノードのデジタル証明書を取り消してよい。
別の例として、問題はプライバシ問題であってよい。つまり、第2マスタIoTノードは、ネットワークのプライバシ侵害の指示を受信してよい(又はそれに関する情報を取得してよい)。プライバシ問題は、第2マスタIoTノードがハッキングされるか又は故障になることであってよい。或いは、プライバシ問題は、(例えば、第2マスタIoTノード又はネットワークの他のノードの)識別情報が破損する(例えば、盗まれるか漏洩する)ことであってよい。第2マスタIoTノード303aは、IoTネットワークに対する更なる損傷を防ぐために、第2中間IoTノードセットのうちの1つ以上のノードとの自身の結合をドロップしてよい。識別情報は、第2マスタIoTノード303aに関連付けられた秘密及び/又は公開鍵を含んでよい。
第1マスタIoTノード303a’は、ネットワークの1つ以上の他のノードからの指示に基づき問題を識別するよう構成されてよい。例えば、第1マスタIoTノード303a’は、第2マスタIoTノード303aから、及び/又は第2中間IoTノードセットのうちの1つ以上のノードから、例えば、第2マスタIoTノード303aがもはや制御できないという指示、又は第2マスタIoTノード303aによる制御が影響を受けているという指示のような、指示を受信してよい。特定の例として、第2マスタIoTノード303aが1つ以上の中間IoTノードとの結合を無効にしなければならない場合、第2マスタIoTノード303aは、第1マスタIoTノード303a’に、無効にされる結合を通知してよい。第2マスタIoTノード303aとの結合が無効にされた中間IoTノードは、又は第2マスタIoTノード303aの代わりに、第1マスタIoTノード303aに無効にされた結合を通知してよい。例えば、第2中間IoTノードセットのうちの1つ以上のノードは、第1マスタIoTノード303a’がそれらの又は第2中間IoTノードセットのうちの他のノードの制御を引き受けることを要求してよい。
追加又は代替として、第1マスタIoTノード303a’は、第2マスタIoTノード303aと通信する試みが失敗したことに基づき、問題を識別するよう構成されてよい。つまり、第1マスタIoTノード303a’は、第1マスタIoTノード303a’はが第2マスタIoTノード303aと結合できない場合に、第2マスタIoTノード303aに問題があると決定してよい。
第2マスタIoTノード303aの問題を識別する別の追加又は代替のオプションとして、第1マスタIoTノード303a’は、第2マスタIoTノード303aが閾時間量の間に第2中間IoTノードセットのうちの1つ以上のノードにコマンドトランザクションを(例えば、上述の要求及び応答プロトコルの部分として)発行しないと決定してよい。例えば、第1マスタIoTノード303a’は、第2マスタIoTノード303aにより発行された及び/又はその制御下で中間IoTノードへ送信されるトランザクションについて、ブロックチェーン150を(例えば、周期的に又はアドホックベースで)監視してよい。つまり、第2マスタIoTノードの署名により署名された又は各々の中間IoTノードの各々の公開鍵(又は公開鍵ハッシュ又は所与の中間IoTノードに関連付けられた任意の他のブロックチェーンアドレス)にロックされたトランザクションである。そのようなトランザクションが期待される時間期間(例えば、1分、1時間、等)内に発行されない場合、第1マスタIoTノード303a’は、それを、第2マスタIoTノード303aに問題があることの指示として取り入れる。
別のオプションとして、第1マスタIoTノード303a’は、中間IoTノードの状態が所定の時間期間に渡り変化しない場合に、第2マスタIoTノード303aに問題があると識別してよい。追加又は代替として、第1マスタIoTノード303a’は、第2中間IoTノードセットにより制御されるエンド装置のうちの1つ以上の状態が所定の時間期間に渡り変化しない場合に、第2マスタIoTノード303aに問題があると識別してよい。例えば、図8に示すように、要求及び応答プロトコルの部分として、ノード及び/又はエンド装置は、要求及び応答トランザクションの中で、それらの状態を報告してよい。装置の状態が設定された時間期間内に変化しない場合、これは、中間IoTノードが装置にその時間期間内にアクションを実行するよう指示しなかったことを示してよい。これは、また、第2マスタIoTノード303aが中間IoTノードに、その時間期間内にエンド装置302を制御するよう指示しなかったことを示してよい。
第1マスタIoTノード303a’は、第2マスタIoTノード303aの上述の問題のうちの1つ以上を識別することに応答して、第2中間IoTノードセットのうちの1つ以上のノードを制御するよう構成される。上述のように、ネットワーク1400上のノードの制御は、コマンドトランザクションを発行することにより実行される。従って、問題の識別に応答して、第1マスタIoTノード303a’は、各々のコマンドトランザクションを、第2中間IoTノードセットのうちの1つ以上のノードに発行するよう構成される。幾つかの例では、コマンドトランザクションは、第2中間IoTノードセットの各々のために使用される。他の例では、コマンドトランザクションは、第2中間IoTノードセットのうちの幾つかのノードにのみ、例えば、第2中間IoTノード303aが制御することができないノードに、発行されてよい。
IoTネットワークのIoTノード(マスタIoTノード及び中間IoTノードを含む)により実施される例示的な要求及び応答プロトコルの完全な説明は以上に提供されたので、第1マスタIoTノード303a’により実行され得る特定のアクションに関するものを除き、詳細は再び説明されない。
第2中間IoTノードセットのうちの1つのノードに発行された各コマンドトランザクションは、例えばP2PKHアウトプットにより、その中間IoTノードの公開鍵にロックされたアウトプットを含んでよい。コマンドトランザクションは、1つ以上のインプット、例えば第1マスタIoTノード303a’の署名を含むインプットも含んでよい。
第2中間IoTノードセットのうちの1つのノードに発行されたコマンドトランザクションは、該中間IoTノードにより制御される1つ以上のエンド装置を制御するためのコマンドデータを含んでよい。例えば、コマンドデータは、制御されるべき装置の各々の装置識別子を含んでよい。上述のように、コマンドデータは、コマンドトランザクションの使用不可能アウトプットに含まれてもよい。しかしながら、コマンドデータが使用可能アウトプット、例えば中間IoTノードの公開鍵にロックされたアウトプットに含まれてよいことが排除されない。
第1マスタIoTノード303a’は、ブロックチェーン150に含まれるように、ブロックチェーンネットワーク106にコマンドトランザクションを提出してよい。追加又は代替として、各々のコマンドトランザクションは、各々の中間IoTノードに、例えばセキュアな通信チャネルを介して直接送信されてよい。
幾つかの例では、第1マスタIoTノード303a’は、例えば要求トランザクションの形式で、第2中間IoTノードセットのうちの1つのノードを制御するための要求を受信してよい。第1マスタIoTノード303a’は、これを、第2マスタIoTノード303aに問題があることの指示として受け取り、次に、第2中間IoTノードセットのうちの1つ以上のノードにコマンドトランザクションを発行してよい。例として、要求トランザクションは、第1マスタIoTノード303a’が完成させブロックチェーンネットワークに提出する部分的トランザクションであってよい。要求トランザクションを完成させることは、要求トランザクションに(第1マスタIoTノード303a’の署名を含む)インプットを追加することを含んでよい。他の例では、要求トランザクションは、第1マスタIoTノード303a’の公開鍵にロックされたアウトプットを有する完成トランザクションであってよく、第1マスタIoTノード303a’は、中間IoTノードを制御するために、コマンドトランザクションを使用して該アウトプットを使用してよい。
結論
開示された技術の他の変形例又は使用事例は、本明細書で開示されると、当業者に明らかになり得る。本開示の範囲は、記載された実施形態によって限定されるものではなく、添付の特許請求の範囲によってのみ限定される。
開示された技術の他の変形例又は使用事例は、本明細書で開示されると、当業者に明らかになり得る。本開示の範囲は、記載された実施形態によって限定されるものではなく、添付の特許請求の範囲によってのみ限定される。
例えば、上述の幾つかの実施形態は、ビットコインネットワーク106、ビットコインブロックチェーン150、及びビットコインノード104の観点で説明された。しかしながら、ビットコインブロックチェーンは、ブロックチェーン150の1つの特定の例であり、上述の説明は任意のブロックチェーンに一般的に適用されてよいことが理解される。つまり、本発明は、ビットコインブロックチェーンに何ら限定されない。より一般的には、上述のビットコインネットワーク106、ビットコインブロックチェーン150、及びビットコインノード104への言及は、ブロックチェーンネットワーク106、ブロックチェーン150、及びブロックチェーンノード104により各々置き換えられてよい。ブロックチェーン、ブロックチェーンネットワーク、及び/又はブロックチェーンノードは、ビットコインブロックチェーン150、ビットコインネットワーク106、及びビットコインノード104の上述の特性の一部又は全部を共有してよい。
本発明の好適な実施形態では、ブロックチェーンネットワーク106は、ビットコインネットワークであり、ビットコインノード104はブロックチェーン150のブロック151を生成し、公開し、伝播し、及び格納する上述の機能の少なくとも全部を実行する。これらの機能の全部ではなく1つ又は一部のみを実行する他のネットワークエンティティ(又はネットワーク要素)が存在することが除外されない。つまり、ネットワークエンティティは、ブロックを伝播し及び/又は格納する機能を実行してよいが、ブロックを生成し公開しなくてよい(これらのエンティティが好適なビットコインネットワーク106のノードと見なされないことを思い出してほしい)。
本発明の好適でない実施形態では、ブロックチェーンネットワーク106はビットコインネットワークでなくてもよい。これらの実施形態では、ノードが、ブロックチェーン150のブロック151を生成し、公開し、伝播し、及び格納する機能の全部ではなく少なくとも1つ又は一部を実行してよいことが除外されない。例えば、これらの他のブロックチェーンネットワークでは、「ノード」は、ブロック151を生成し公開するよう構成されるが該ブロック151を格納し及び/又は他のノードに伝播しないネットワークエンティティを表すために使用されてよい。
更に一般的には、上述の用語「ビットコインノード」104の言及は、用語「ネットワークエンティティ」又は「ネットワーク要素」と置き換えられてよい。このようなエンティティ/要素は、ブロックを生成し、公開し、伝播し、及び格納する役割のうちの一部又は全部を実行するよう構成される。そのようなネットワークエンティティ/要素の機能は、ハードウェアで、ブロックチェーンノード104を参照して上述したのと同じ方法で実装されてよい。
上記の実施形態は、単なる例示として説明したものであることが理解されるであろう。より一般的には、以下の記述のうちの任意の1つ以上に従った方法、装置又はプログラムが提供され得る。
(ステートメント1)
ブロックチェーントランザクションを用いて階層型ネットワークの装置を制御する、コンピュータにより実施される方法であって、前記階層型ネットワーク(LN)は、順序付きレイヤセットに構成された複数のLNノードを含み、前記順序付きレイヤセットは、順に、各々がブロックチェーンネットワークの1つ以上のブロックチェーンノードに結合された複数のマスタノードを含むコアレイヤ、各々の中間ノードセットを含む1つ以上の中間レイヤ、及びエンド装置セットを含む装置レイヤ、を含み、各マスタノードは、各々の中間ノードサブセットを制御するよう構成され、第1マスタノードは第1中間ノードサブセットを制御するよう構成され、第2マスタノードは第2中間ノードサブセットを制御するよう構成され、各中間ノードは、各々のエンド装置サブセットを制御するよう構成され、前記方法は、第1マスタノードにより実行され、
前記第2マスタノードによる、前記第2中間ノードサブセットのうちの少なくとも1つの制御に影響を与える1つ以上の問題を識別するステップと、
応答して、前記第2中間ノードセットのうちの前記少なくとも1つのノードに該ノードを制御する各々のコマンドトランザクションを発行するステップと、
を含む方法。
ブロックチェーントランザクションを用いて階層型ネットワークの装置を制御する、コンピュータにより実施される方法であって、前記階層型ネットワーク(LN)は、順序付きレイヤセットに構成された複数のLNノードを含み、前記順序付きレイヤセットは、順に、各々がブロックチェーンネットワークの1つ以上のブロックチェーンノードに結合された複数のマスタノードを含むコアレイヤ、各々の中間ノードセットを含む1つ以上の中間レイヤ、及びエンド装置セットを含む装置レイヤ、を含み、各マスタノードは、各々の中間ノードサブセットを制御するよう構成され、第1マスタノードは第1中間ノードサブセットを制御するよう構成され、第2マスタノードは第2中間ノードサブセットを制御するよう構成され、各中間ノードは、各々のエンド装置サブセットを制御するよう構成され、前記方法は、第1マスタノードにより実行され、
前記第2マスタノードによる、前記第2中間ノードサブセットのうちの少なくとも1つの制御に影響を与える1つ以上の問題を識別するステップと、
応答して、前記第2中間ノードセットのうちの前記少なくとも1つのノードに該ノードを制御する各々のコマンドトランザクションを発行するステップと、
を含む方法。
(ステートメント2)
前記1つ以上の問題を識別するステップは、前記第2中間ノードセットのうちの前記少なくとも1つのノードを制御するために、前記第2マスタノードが使用できないと識別するステップを含む、ステートメント1に記載の方法。
前記1つ以上の問題を識別するステップは、前記第2中間ノードセットのうちの前記少なくとも1つのノードを制御するために、前記第2マスタノードが使用できないと識別するステップを含む、ステートメント1に記載の方法。
(ステートメント3)
前記1つ以上の問題を識別するステップは、前記第2マスタノードに関連付けられたロードバランス問題を識別するステップを含む、ステートメント1又は2に記載の方法。
前記1つ以上の問題を識別するステップは、前記第2マスタノードに関連付けられたロードバランス問題を識別するステップを含む、ステートメント1又は2に記載の方法。
(ステートメント4)
前記ロードバランス問題は、前記第2中間ノードセットのうちの1つ以上と前記第2マスタノードとの間の結合に渡る負荷が所定の閾値より高いことを含む、ステートメント3に記載の方法。
前記ロードバランス問題は、前記第2中間ノードセットのうちの1つ以上と前記第2マスタノードとの間の結合に渡る負荷が所定の閾値より高いことを含む、ステートメント3に記載の方法。
(ステートメント5)
前記ロードバランス問題は、前記第2中間ノードセットのうちの1つ以上と前記第2マスタノードとの間の結合に渡る負荷が全体として所定の閾値より高いことを含む、ステートメント3又は4に記載の方法。
前記ロードバランス問題は、前記第2中間ノードセットのうちの1つ以上と前記第2マスタノードとの間の結合に渡る負荷が全体として所定の閾値より高いことを含む、ステートメント3又は4に記載の方法。
(ステートメント6)
前記ロードバランス問題は、前記第2マスタノードと前記第2中間ノードセットとの間の結合の数が所定の閾値より高いことを含む、ステートメント3~5のいずれか一項に記載の方法。
前記ロードバランス問題は、前記第2マスタノードと前記第2中間ノードセットとの間の結合の数が所定の閾値より高いことを含む、ステートメント3~5のいずれか一項に記載の方法。
(ステートメント7)
前記各々のコマンドトランザクションは、前記第2中間ノードセットのうちの前記少なくとも1つのノードに関連付けられた各々の公開鍵にロックされた第1アウトプットを含む、ステートメント1~6のいずれかに記載の方法。
前記各々のコマンドトランザクションは、前記第2中間ノードセットのうちの前記少なくとも1つのノードに関連付けられた各々の公開鍵にロックされた第1アウトプットを含む、ステートメント1~6のいずれかに記載の方法。
(ステートメント8)
前記各々のコマンドトランザクションは、前記第2中間ノードセットのうちの前記少なくとも1つのノードに、該ノードにより制御されるエンド装置サブセットのうちの1つ以上のエンド装置を制御させる、ステートメント1~7のいずれかに記載の方法。
前記各々のコマンドトランザクションは、前記第2中間ノードセットのうちの前記少なくとも1つのノードに、該ノードにより制御されるエンド装置サブセットのうちの1つ以上のエンド装置を制御させる、ステートメント1~7のいずれかに記載の方法。
(ステートメント9)
前記各々のコマンドトランザクションは、各々のコマンドデータを含み、前記各々のコマンドデータは、前記第2中間ノードセットのうちの前記少なくとも1つのノードにより制御されるエンド装置サブセットのうちの前記1つ以上のエンド装置の各々の識別子を含む、ステートメント8に記載の方法。
前記各々のコマンドトランザクションは、各々のコマンドデータを含み、前記各々のコマンドデータは、前記第2中間ノードセットのうちの前記少なくとも1つのノードにより制御されるエンド装置サブセットのうちの前記1つ以上のエンド装置の各々の識別子を含む、ステートメント8に記載の方法。
例えば、コマンドデータは、コマンドトランザクションの使用不可能アウトプットに含まれてもよい。
(ステートメント10)
前記各々のコマンドトランザクションは、前記第2中間ノードセットのうちの前記少なくとも1つのノードに、各々の制御命令を前記エンド装置サブセットのうちの前記1つ以上のエンド装置へ送信させるよう構成され、前記各々の制御命令は前記各々のコマンドデータに基づく、ステートメント1~9のいずれかに記載の方法。
前記各々のコマンドトランザクションは、前記第2中間ノードセットのうちの前記少なくとも1つのノードに、各々の制御命令を前記エンド装置サブセットのうちの前記1つ以上のエンド装置へ送信させるよう構成され、前記各々の制御命令は前記各々のコマンドデータに基づく、ステートメント1~9のいずれかに記載の方法。
コマンドデータは、暗号化されるか又は符号化されてよい。
(ステートメント11)
前記各々のコマンドトランザクションは、前記第1マスタノードの各々の公開鍵にリンクされた署名を含む第1インプットを含む、ステートメント1~10のいずれかに記載の方法。
前記各々のコマンドトランザクションは、前記第1マスタノードの各々の公開鍵にリンクされた署名を含む第1インプットを含む、ステートメント1~10のいずれかに記載の方法。
(ステートメント12)
前記第2中間ノードセットのうちの前記少なくとも1つのノードに前記各々のコマンドトランザクションを発行するステップは、前記各々のコマンドトランザクションを該ノードに送信するステップを含む、ステートメント1~11のいずれかに記載の方法。
前記第2中間ノードセットのうちの前記少なくとも1つのノードに前記各々のコマンドトランザクションを発行するステップは、前記各々のコマンドトランザクションを該ノードに送信するステップを含む、ステートメント1~11のいずれかに記載の方法。
例えば、オフチェーン通信チャネルを用いる。
(ステートメント13)
前記第2中間ノードセットのうちの前記少なくとも1つのノードに前記各々のコマンドトランザクションを発行するステップは、前記ブロックチェーン上で公開されるように、前記各々のコマンドトランザクションを1つ以上のブロックチェーンノードに送信するステップを含む、ステートメント1~12のいずれかに記載の方法。
前記第2中間ノードセットのうちの前記少なくとも1つのノードに前記各々のコマンドトランザクションを発行するステップは、前記ブロックチェーン上で公開されるように、前記各々のコマンドトランザクションを1つ以上のブロックチェーンノードに送信するステップを含む、ステートメント1~12のいずれかに記載の方法。
(ステートメント14)
前記1つ以上の問題を識別するステップは、
前記第2マスタノードにより前記第2中間ノードサブセットのうちの一部又は全部のノードの制御に影響を与える1つ以上の問題を識別するステップと、
応答して、前記第2中間ノードサブセットのうちの前記一部又は全部のノードを制御するために、前記第2中間ノードサブセットのうちの前記一部又は全部のノードに各々のコマンドトランザクションを発行するステップと、
を含むステートメント1~13のいずれかに記載の方法。
前記1つ以上の問題を識別するステップは、
前記第2マスタノードにより前記第2中間ノードサブセットのうちの一部又は全部のノードの制御に影響を与える1つ以上の問題を識別するステップと、
応答して、前記第2中間ノードサブセットのうちの前記一部又は全部のノードを制御するために、前記第2中間ノードサブセットのうちの前記一部又は全部のノードに各々のコマンドトランザクションを発行するステップと、
を含むステートメント1~13のいずれかに記載の方法。
(ステートメント15)
前記1つ以上の問題を識別するステップは、以下:
前記階層型ネットワークの1つ以上のノードから指示を受信するステップであって、前記指示は、前記第2マスタノードが、前記第2マスタノードにより前記第2中間ノードサブセットのうちの一部又は全部のノードの制御に影響を与える1つ以上の問題を経験していることを示す、ステップと、
前記第2マスタノードとの結合を確立しようと試み失敗するステップと、
前記第2中間ノードセットのうちの前記少なくとも1つのノード、及び/又は前記第2中間ノードセットのうちの前記少なくとも1つのノードにより制御される1つ以上のエンド装置の各々の状態が、所定の時間期間に渡り変化していないと決定するステップと、及び/又は、
前記第2マスタノードが、所定の時間期間内に前記第2中間ノードセットのうちの前記少なくとも1つのノードに各々のコマンドトランザクションを発行していないことを識別するステップと、
のうちの1つ以上を含む、ステートメント1~14のいずれかに記載の方法。
前記1つ以上の問題を識別するステップは、以下:
前記階層型ネットワークの1つ以上のノードから指示を受信するステップであって、前記指示は、前記第2マスタノードが、前記第2マスタノードにより前記第2中間ノードサブセットのうちの一部又は全部のノードの制御に影響を与える1つ以上の問題を経験していることを示す、ステップと、
前記第2マスタノードとの結合を確立しようと試み失敗するステップと、
前記第2中間ノードセットのうちの前記少なくとも1つのノード、及び/又は前記第2中間ノードセットのうちの前記少なくとも1つのノードにより制御される1つ以上のエンド装置の各々の状態が、所定の時間期間に渡り変化していないと決定するステップと、及び/又は、
前記第2マスタノードが、所定の時間期間内に前記第2中間ノードセットのうちの前記少なくとも1つのノードに各々のコマンドトランザクションを発行していないことを識別するステップと、
のうちの1つ以上を含む、ステートメント1~14のいずれかに記載の方法。
指示は、例えば、所定の閾数の結合の失敗に続いて、中間ノードのうちの1つにより送信されてよい。
(ステートメント16)
前記第2マスタノードが、所定の時間期間内に前記第2中間ノードセットのうちの前記少なくとも1つのノードに各々のコマンドトランザクションを発行していないことを識別するステップは、該ノードに関連付けられた各々のブロックチェーンアドレスが、前記所定の時間期間内に前記各々のコマンドトランザクションを受信していないことを識別するステップを含む、ステートメント15に記載の方法。
前記第2マスタノードが、所定の時間期間内に前記第2中間ノードセットのうちの前記少なくとも1つのノードに各々のコマンドトランザクションを発行していないことを識別するステップは、該ノードに関連付けられた各々のブロックチェーンアドレスが、前記所定の時間期間内に前記各々のコマンドトランザクションを受信していないことを識別するステップを含む、ステートメント15に記載の方法。
(ステートメント17)
前記階層型ネットワークの1つ以上のLNノードから指示を受信するステップは、前記第2中間ノードセットのうちの前記少なくとも1つのノードを制御するための要求を受信するステップを含む、ステートメント15又は16に記載の方法。
前記階層型ネットワークの1つ以上のLNノードから指示を受信するステップは、前記第2中間ノードセットのうちの前記少なくとも1つのノードを制御するための要求を受信するステップを含む、ステートメント15又は16に記載の方法。
例えば、中間ノードのうちの別の1つは、第2マスタノードに、第2中間ノードセットのうちの前記少なくとも1つのノードを制御するよう要求を送信してよく、該要求は、第2マスタノードが前記の他のマスタノードを制御するために使用できないために、返信がなくてよい。従って、他の中間ノードは、バックアップとして第1マスタノードに頼ってよい。
(Statement18)
前記第2中間ノードセットのうちの前記少なくとも1つのノードを制御するための要求を受信するステップは、要求トランザクションを受信するステップを含む、ステートメント17に記載の方法。
前記第2中間ノードセットのうちの前記少なくとも1つのノードを制御するための要求を受信するステップは、要求トランザクションを受信するステップを含む、ステートメント17に記載の方法。
(ステートメント19)
前記要求トランザクションは、前記第1マスタノードに関連付けられた各々の公開鍵にロックされたアウトプットを含む、ステートメント18に記載の方法。
前記要求トランザクションは、前記第1マスタノードに関連付けられた各々の公開鍵にロックされたアウトプットを含む、ステートメント18に記載の方法。
(ステートメント20)
前記第1マスタノードは、前記ブロックチェーンネットワークの複数のブロックチェーンノードに結合される、ステートメント1~19のいずれかに記載の方法。
前記第1マスタノードは、前記ブロックチェーンネットワークの複数のブロックチェーンノードに結合される、ステートメント1~19のいずれかに記載の方法。
(ステートメント21)
各マスタノードは、前記ブロックチェーンネットワークの複数のブロックチェーンノードに結合される、ステートメント20に記載の方法。
各マスタノードは、前記ブロックチェーンネットワークの複数のブロックチェーンノードに結合される、ステートメント20に記載の方法。
(ステートメント22)
各マスタノードは、他のマスタノードの各々に結合される、ステートメント1~21のいずれかに記載の方法。
各マスタノードは、他のマスタノードの各々に結合される、ステートメント1~21のいずれかに記載の方法。
(ステートメント23)
前記中間レイヤのうちの第1レイヤの各中間ノードは、少なくとも2つのマスタノードに結合される、ステートメント1~22のいずれかに記載の方法。
前記中間レイヤのうちの第1レイヤの各中間ノードは、少なくとも2つのマスタノードに結合される、ステートメント1~22のいずれかに記載の方法。
(ステートメント24)
所与のレイヤの各中間ノードは、前のレイヤの少なくとも1つのノードに結合される、ステートメント1~23のいずれかに記載の方法。
所与のレイヤの各中間ノードは、前のレイヤの少なくとも1つのノードに結合される、ステートメント1~23のいずれかに記載の方法。
(ステートメント25)
前記第1中間ノードサブセット及び前記第2中間ノードサブセットは、重複しないサブセットである、ステートメント1~24のいずれかに記載の方法。
前記第1中間ノードサブセット及び前記第2中間ノードサブセットは、重複しないサブセットである、ステートメント1~24のいずれかに記載の方法。
(ステートメント26)
前記エンド装置はIoT装置である、ステートメント1~25のいずれかに記載の方法。
前記エンド装置はIoT装置である、ステートメント1~25のいずれかに記載の方法。
(ステートメント27)
コンピュータ機器であって、
1つ以上のメモリユニットを含むメモリと、
1つ以上の処理ユニットを含む処理機器と、
1つ以上のネットワークインタフェースを含むネットワークインタフェースと、
を含み、前記メモリは前記処理機器で実行するよう構成されるコードを格納し、前記コードは、前記処理機器で実行すると、ステートメント1~26のいずれかに記載の方法を実行することにより前記コンピュータ機器を作動させるよう構成される、コンピュータ機器。
コンピュータ機器であって、
1つ以上のメモリユニットを含むメモリと、
1つ以上の処理ユニットを含む処理機器と、
1つ以上のネットワークインタフェースを含むネットワークインタフェースと、
を含み、前記メモリは前記処理機器で実行するよう構成されるコードを格納し、前記コードは、前記処理機器で実行すると、ステートメント1~26のいずれかに記載の方法を実行することにより前記コンピュータ機器を作動させるよう構成される、コンピュータ機器。
(ステートメント28)
コンピュータ可読記憶装置上に具現化され、1つ以上のプロセッサ上で実行するとステートメント1~26のいずれかに記載の方法を実行するよう構成される、コンピュータプログラム。
コンピュータ可読記憶装置上に具現化され、1つ以上のプロセッサ上で実行するとステートメント1~26のいずれかに記載の方法を実行するよう構成される、コンピュータプログラム。
(ステートメント29)
階層型ネットワークを含むシステムであって、前記階層型ネットワークは、順序付きレイヤセットに構成された複数のLNノードを含み、前記順序付きレイヤセットは、順に、各々がブロックチェーンネットワークの1つ以上のブロックチェーンノードに結合された複数のマスタノードを含むコアレイヤ、各々の中間ノードセットを含む1つ以上の中間レイヤ、及びエンド装置セットを含む装置レイヤ、を含み、各マスタノードは、各々の中間ノードサブセットを制御するよう構成され、第1マスタノードは第1中間ノードサブセットを制御するよう構成され、第2マスタノードは第2中間ノードサブセットを制御するよう構成され、各中間ノードは、各々のエンド装置サブセットを制御するよう構成される、システム。
階層型ネットワークを含むシステムであって、前記階層型ネットワークは、順序付きレイヤセットに構成された複数のLNノードを含み、前記順序付きレイヤセットは、順に、各々がブロックチェーンネットワークの1つ以上のブロックチェーンノードに結合された複数のマスタノードを含むコアレイヤ、各々の中間ノードセットを含む1つ以上の中間レイヤ、及びエンド装置セットを含む装置レイヤ、を含み、各マスタノードは、各々の中間ノードサブセットを制御するよう構成され、第1マスタノードは第1中間ノードサブセットを制御するよう構成され、第2マスタノードは第2中間ノードサブセットを制御するよう構成され、各中間ノードは、各々のエンド装置サブセットを制御するよう構成される、システム。
本願明細書に開示される別の態様によると、第1マスタノード及び中間ノードのうちの一部又は全部の動作を含む方法が提供され得る。
本明細書に開示される別の態様によれば、第1マスタノードのコンピュータ機器、及び中間ノードのうちの一部又は全部のコンピュータ機器を備えるシステムを提供することができる。
Claims (29)
- ブロックチェーントランザクションを用いて階層型ネットワークの装置を制御する、コンピュータにより実施される方法であって、前記階層型ネットワーク(LN)は、順序付きレイヤセットに構成された複数のLNノードを含み、前記順序付きレイヤセットは、順に、各々がブロックチェーンネットワークの1つ以上のブロックチェーンノードに結合された複数のマスタノードを含むコアレイヤ、各々の中間ノードセットを含む1つ以上の中間レイヤ、及びエンド装置セットを含む装置レイヤ、を含み、各マスタノードは、各々の中間ノードサブセットを制御するよう構成され、第1マスタノードは第1中間ノードサブセットを制御するよう構成され、第2マスタノードは第2中間ノードサブセットを制御するよう構成され、各中間ノードは、各々のエンド装置サブセットを制御するよう構成され、前記方法は、第1マスタノードにより実行され、
前記第2マスタノードによる、前記第2中間ノードサブセットのうちの少なくとも1つの制御に影響を与える1つ以上の問題を識別するステップと、
応答して、前記第2中間ノードサブセットのうちの前記少なくとも1つのノードに該ノードを制御する各々のコマンドトランザクションを発行するステップと、
を含む方法。 - 前記1つ以上の問題を識別するステップは、前記第2中間ノードサブセットのうちの前記少なくとも1つのノードを制御するために、前記第2マスタノードが使用できないと識別するステップを含む、請求項1に記載の方法。
- 前記1つ以上の問題を識別するステップは、前記第2マスタノードに関連付けられたロードバランス問題を識別するステップを含む、請求項1又は2に記載の方法。
- 前記ロードバランス問題は、前記第2中間ノードサブセットのうちの1つ以上と前記第2マスタノードとの間の結合に渡る負荷が所定の閾値より高いことを含む、請求項3に記載の方法。
- 前記ロードバランス問題は、前記第2中間ノードサブセットのうちの1つ以上と前記第2マスタノードとの間の結合に渡る負荷が全体として所定の閾値より高いことを含む、請求項3又は4に記載の方法。
- 前記ロードバランス問題は、前記第2マスタノードと前記第2中間ノードサブセットとの間の結合の数が所定の閾値より高いことを含む、請求項3~5のいずれか一項に記載の方法。
- 前記各々のコマンドトランザクションは、前記第2中間ノードサブセットのうちの前記少なくとも1つのノードに関連付けられた各々の公開鍵にロックされた第1アウトプットを含む、請求項1~6のいずれかに記載の方法。
- 前記各々のコマンドトランザクションは、前記第2中間ノードサブセットのうちの前記少なくとも1つのノードに、該ノードにより制御されるエンド装置サブセットのうちの1つ以上のエンド装置を制御させる、請求項1~7のいずれかに記載の方法。
- 前記各々のコマンドトランザクションは、各々のコマンドデータを含み、前記各々のコマンドデータは、前記第2中間ノードサブセットのうちの前記少なくとも1つのノードにより制御されるエンド装置サブセットのうちの前記1つ以上のエンド装置の各々の識別子を含む、請求項8に記載の方法。
- 前記各々のコマンドトランザクションは、前記第2中間ノードサブセットのうちの前記少なくとも1つのノードに、各々の制御命令を前記エンド装置サブセットのうちの前記1つ以上のエンド装置へ送信させるよう構成され、前記各々の制御命令は前記各々のコマンドデータに基づく、請求項1~9のいずれかに記載の方法。
- 前記各々のコマンドトランザクションは、前記第1マスタノードの各々の公開鍵にリンクされた署名を含む第1インプットを含む、請求項1~10のいずれかに記載の方法。
- 前記第2中間ノードサブセットのうちの前記少なくとも1つのノードに前記各々のコマンドトランザクションを発行するステップは、前記各々のコマンドトランザクションを該ノードに送信するステップを含む、請求項1~11のいずれかに記載の方法。
- 前記第2中間ノードサブセットのうちの前記少なくとも1つのノードに前記各々のコマンドトランザクションを発行するステップは、ブロックチェーン上で公開されるように、前記各々のコマンドトランザクションを1つ以上のブロックチェーンノードに送信するステップを含む、請求項1~12のいずれかに記載の方法。
- 前記1つ以上の問題を識別するステップは、
前記第2マスタノードにより前記第2中間ノードサブセットのうちの一部又は全部のノードの制御に影響を与える1つ以上の問題を識別するステップと、
応答して、前記第2中間ノードサブセットのうちの前記一部又は全部のノードを制御するために、前記第2中間ノードサブセットのうちの前記一部又は全部のノードに各々のコマンドトランザクションを発行するステップと、
を含む請求項1~13のいずれかに記載の方法。 - 前記1つ以上の問題を識別するステップは、以下:
前記階層型ネットワークの1つ以上のノードから指示を受信するステップであって、前記指示は、前記第2マスタノードが、前記第2マスタノードにより前記第2中間ノードサブセットのうちの一部又は全部のノードの制御に影響を与える1つ以上の問題を経験していることを示す、ステップと、
前記第2マスタノードとの結合を確立しようと試み失敗するステップと、
前記第2中間ノードサブセットのうちの前記少なくとも1つのノード、及び/又は前記第2中間ノードサブセットのうちの前記少なくとも1つのノードにより制御される1つ以上のエンド装置の各々の状態が、所定の時間期間に渡り変化していないと決定するステップと、及び/又は、
前記第2マスタノードが、所定の時間期間内に前記第2中間ノードサブセットのうちの前記少なくとも1つのノードに各々のコマンドトランザクションを発行していないことを識別するステップと、
のうちの1つ以上を含む、請求項1~14のいずれかに記載の方法。 - 前記第2マスタノードが、所定の時間期間内に前記第2中間ノードサブセットのうちの前記少なくとも1つのノードに各々のコマンドトランザクションを発行していないことを識別するステップは、該ノードに関連付けられた各々のブロックチェーンアドレスが、前記所定の時間期間内に前記各々のコマンドトランザクションを受信していないことを識別するステップを含む、請求項15に記載の方法。
- 前記階層型ネットワークの1つ以上のLNノードから指示を受信するステップは、前記第2中間ノードサブセットのうちの前記少なくとも1つのノードを制御するための要求を受信するステップを含む、請求項15又は16に記載の方法。
- 前記第2中間ノードサブセットのうちの前記少なくとも1つのノードを制御するための要求を受信するステップは、要求トランザクションを受信するステップを含む、請求項17に記載の方法。
- 前記要求トランザクションは、前記第1マスタノードに関連付けられた各々の公開鍵にロックされたアウトプットを含む、請求項18に記載の方法。
- 前記第1マスタノードは、前記ブロックチェーンネットワークの複数のブロックチェーンノードに結合される、請求項1~19のいずれかに記載の方法。
- 各マスタノードは、前記ブロックチェーンネットワークの複数のブロックチェーンノードに結合される、請求項20に記載の方法。
- 各マスタノードは、他のマスタノードの各々に結合される、請求項1~21のいずれかに記載の方法。
- 前記中間レイヤのうちの第1レイヤの各中間ノードは、少なくとも2つのマスタノードに結合される、請求項1~22のいずれかに記載の方法。
- 所与のレイヤの各中間ノードは、前のレイヤの少なくとも1つのノードに結合される、請求項1~23のいずれかに記載の方法。
- 前記第1中間ノードサブセット及び前記第2中間ノードサブセットは、重複しないサブセットである、請求項1~24のいずれかに記載の方法。
- エンド装置はIoT装置である、請求項1~25のいずれかに記載の方法。
- コンピュータ機器であって、
1つ以上のメモリユニットを含むメモリと、
1つ以上の処理ユニットを含む処理機器と、
1つ以上のネットワークインタフェースを含むネットワークインタフェースと、
を含み、前記メモリは前記処理機器で実行するよう構成されるコードを格納し、前記コードは、前記処理機器で実行すると、請求項1~26のいずれかに記載の方法を実行することにより前記コンピュータ機器を作動させるよう構成される、コンピュータ機器。 - コンピュータ可読記憶装置上に具現化され、1つ以上のプロセッサ上で実行すると請求項1~26のいずれかに記載の方法を実行するよう構成される、コンピュータプログラム。
- 階層型ネットワークを含むシステムであって、前記階層型ネットワークは、順序付きレイヤセットに構成された複数のLNノードを含み、前記順序付きレイヤセットは、順に、各々がブロックチェーンネットワークの1つ以上のブロックチェーンノードに結合された複数のマスタノードを含むコアレイヤ、各々の中間ノードセットを含む1つ以上の中間レイヤ、及びエンド装置セットを含む装置レイヤ、を含み、各マスタノードは、各々の中間ノードサブセットを制御するよう構成され、第1マスタノードは第1中間ノードサブセットを制御するよう構成され、第2マスタノードは第2中間ノードサブセットを制御するよう構成され、各中間ノードは、各々のエンド装置サブセットを制御するよう構成される、システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB2007191.6 | 2020-05-15 | ||
GB2007191.6A GB2595216A (en) | 2020-05-15 | 2020-05-15 | Multi-layer communication network |
PCT/EP2021/060506 WO2021228528A1 (en) | 2020-05-15 | 2021-04-22 | Multi-layer communication network |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2023525973A true JP2023525973A (ja) | 2023-06-20 |
JPWO2021228528A5 JPWO2021228528A5 (ja) | 2024-04-05 |
Family
ID=71135352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022565556A Pending JP2023525973A (ja) | 2020-05-15 | 2021-04-22 | マルチレイヤ通信ネットワーク |
Country Status (6)
Country | Link |
---|---|
US (1) | US20230199063A1 (ja) |
EP (1) | EP4122154A1 (ja) |
JP (1) | JP2023525973A (ja) |
CN (1) | CN115606150A (ja) |
GB (1) | GB2595216A (ja) |
WO (1) | WO2021228528A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3958507A1 (en) * | 2020-08-17 | 2022-02-23 | Nokia Solutions and Networks Oy | Blockchain-based network device management methods and devices |
US20230125542A1 (en) * | 2021-10-22 | 2023-04-27 | Mastercard International Incorporated | Method and system of initiating simultaneous start of block formation |
GB2614295A (en) * | 2021-12-23 | 2023-07-05 | Nchain Licensing Ag | Methods and systems for recipient-facilitated blockchain transactions |
GB2617161A (en) * | 2022-03-31 | 2023-10-04 | Nchain Licensing Ag | Communication system,method and computer program |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102648074B (zh) * | 2009-06-25 | 2015-11-25 | Abb股份公司 | 机器人系统和附属控制方法 |
US10868674B2 (en) * | 2016-08-12 | 2020-12-15 | ALTR Solutions, Inc. | Decentralized database optimizations |
KR102576062B1 (ko) * | 2018-11-07 | 2023-09-07 | 삼성전자주식회사 | 관통 실리콘 비아를 포함하는 반도체 소자 및 그 제조 방법 |
US20200177373A1 (en) * | 2018-11-14 | 2020-06-04 | Royal Bank Of Canada | System and method for storing contract data structures on permissioned distributed ledgers |
CN109617992B (zh) * | 2018-12-29 | 2021-08-03 | 杭州趣链科技有限公司 | 一种基于区块链的边缘计算节点动态选举方法 |
US20200272945A1 (en) * | 2019-02-21 | 2020-08-27 | Hewlett Packard Enterprise Development Lp | System and method of decentralized model building for machine learning and data privacy preserving using blockchain |
-
2020
- 2020-05-15 GB GB2007191.6A patent/GB2595216A/en active Pending
-
2021
- 2021-04-22 CN CN202180035108.2A patent/CN115606150A/zh active Pending
- 2021-04-22 JP JP2022565556A patent/JP2023525973A/ja active Pending
- 2021-04-22 US US17/924,960 patent/US20230199063A1/en active Pending
- 2021-04-22 WO PCT/EP2021/060506 patent/WO2021228528A1/en unknown
- 2021-04-22 EP EP21719663.3A patent/EP4122154A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230199063A1 (en) | 2023-06-22 |
WO2021228528A1 (en) | 2021-11-18 |
GB202007191D0 (en) | 2020-07-01 |
EP4122154A1 (en) | 2023-01-25 |
CN115606150A (zh) | 2023-01-13 |
GB2595216A (en) | 2021-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220393891A1 (en) | Communication protocol using blockchain transactions | |
JP2023525973A (ja) | マルチレイヤ通信ネットワーク | |
US20220376897A1 (en) | Request and response protocol using blockchain transactions | |
JP2023515368A (ja) | ブロックチェーンネットワークと共に使用される証明サービス | |
US20240305687A1 (en) | Layered network | |
US20240333790A1 (en) | Adapting connections of a layered network | |
US20230125507A1 (en) | Blockchain transaction double spend proof | |
EP4088442A1 (en) | Revoking access to a network | |
GB2614221A (en) | Forming peer-to-peer connections using blockchain | |
GB2617161A (en) | Communication system,method and computer program | |
JP2024530444A (ja) | ブロックチェーンを使用するピアツーピア接続の形成 | |
WO2023227381A1 (en) | Coordinating peer-to-peer data transfer using blockchain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240326 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240326 |