(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-27
(45)【発行日】2024-04-04
(54)【発明の名称】モノのインターネットのデバイスプールを利用した暗号オペレーション
(51)【国際特許分類】
H04L 9/32 20060101AFI20240328BHJP
G06F 15/00 20060101ALI20240328BHJP
【FI】
H04L9/32 200A
G06F15/00 470
(21)【出願番号】P 2021522435
(86)(22)【出願日】2019-10-22
(86)【国際出願番号】 US2019057327
(87)【国際公開番号】W WO2020086511
(87)【国際公開日】2020-04-30
【審査請求日】2022-10-07
(32)【優先日】2018-10-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】513113895
【氏名又は名称】ランディス・ギア イノベーションズ インコーポレイテッド
【氏名又は名称原語表記】LANDIS+GYR INNOVATIONS, INC.
(74)【代理人】
【識別番号】100145403
【氏名又は名称】山尾 憲人
(74)【代理人】
【識別番号】100135703
【氏名又は名称】岡部 英隆
(74)【代理人】
【識別番号】100189544
【氏名又は名称】柏原 啓伸
(72)【発明者】
【氏名】チャスコ,スティーブン
(72)【発明者】
【氏名】ディミーター,マイケル
【審査官】中里 裕正
(56)【参考文献】
【文献】特表2005-515551(JP,A)
【文献】特開2013-017179(JP,A)
【文献】米国特許出願公開第2018/0115425(US,A1)
【文献】米国特許出願公開第2017/0249606(US,A1)
【文献】米国特許出願公開第2018/0109541(US,A1)
【文献】SHOKER, A.,Sustainable Blockchain through Proof of eXercise,2017 IEEE 16th International Symposium on Network Computing and Applications (NCA),2017年11月01日,pp.1-9
【文献】HASSAN, R., HOSSAIN, M. M. and KHAN, R.,Aura: An IoT based Cloud Infrastructure for Localized Mobile Computation Outsourcing,2015 3rd IEEE International Conference on Mobile Cloud Computing, Services, and Engineering,2015年,pp.183-188
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06F 15/00
(57)【特許請求の範囲】
【請求項1】
ブロックチェーンオペレーションを実行するための方法であって、
処理ネットワーク内の複数のエンドポイントの数の表示を受信するステップと、
前記複数のエンドポイントの各エンドポイントにノンスオフセットを割り当てるステップ
であって、ノンスオフセットの範囲は、ブロックチェーンオペレーションにおける利用可能なノンスの総数を、複数のエンドポイントの数の半分よりも小さい数で割ったものからなり、各エンドポイントには、少なくとも一つの他のエンドポイントにも割り当てられている個々のノンスオフセットが割り当てられ、ノンスオフセットの範囲の一つは、ノンス一致値からなる、
割り当てるステップと、
前記複数のエンドポイントの各エンドポイントに通信ランダム化ウィンドウを割り当てるステップであって、前記通信ランダム化ウィンドウは、前記エンドポイントのヘッドエンドへの通信ウィンドウをずらすように構成されるステップと、
実行するオペレーションと予想される結果を示すメッセージを前記エンドポイントの夫々に送信するステップと、
前記複数のエンドポイントのうちの第1のエンドポイントから成功表示を受信するステップであって、前記成功表示は、前記第1のエンドポイントのノンスオフセットからのノンス一致値を含む、受信するステップと、並びに、
予想される結果によりノンス一致値を検証するステップと
を含む、方法。
【請求項2】
前記エンドポイントは、モノのインターネットのネットワークのデバイスから構成され、前記デバイスは夫々、モノのインターネットのネットワークを介した通信を可能にする通信技術を備えている、
請求項1に記載の方法。
【請求項3】
前記デバイスは、スマートメータリングデバイスで構成される、
請求項
2に記載の方法。
【請求項4】
実行するオペレーションがハッシュアルゴリズムからなり、予想される結果が目標値からなる、
請求項1に記載の方法。
【請求項5】
前記ノンス一致値は、ハッシュアルゴリズムに提供されたときに、前記予想される結果の目標値よりも小さいハッシュ値をもたらす利用可能なノンスの総数のうちの一つからなる、
請求項1に記載の方法。
【請求項6】
前記予想される結果による前記ノンス一致値の検証時に、プルーフオブワーク(PoW)インセンティブを受け取るステップと、並びに、
新しいブロックをブロックチェーンに追加するステップであって、前記新しいブロックは前記ノンス一致値に基づくものである、追加するステップと、
を含む、請求項1に記載の方法。
【請求項7】
前記プルーフオブワーク(PoW)インセンティブは、所定の量の暗号通貨からなる、
請求項
6に記載の方法。
【請求項8】
システムであって、
ヘッドエンドと、及び、
前記ヘッドエンドと通信するように構成された複数のノードと
を含み、
前記複数のノードの各々は、
コンピュータ可読命令を実行するように構成されたプロセッサと、
前記プロセッサによって実行されたときに、プロセッサにオペレーションを行わせるコンピュータ可読命令を格納するように構成されたメモリとを含み、
前記オペレーションは、
ノンスオフセットを受信するステップであって、前記ノンスオフセットは、ブロックチェーンオペレーションで利用可能なノンス値の総数よりも小さいノンス値の範囲を構成
し、ノンスオフセットの範囲は、ブロックチェーンオペレーションにおける利用可能なノンスの総数を、複数のエンドポイントの数の半分よりも小さい数で割ったものからなり、各エンドポイントには、少なくとも一つの他のエンドポイントにも割り当てられている個々のノンスオフセットが割り当てられ、ノンスオフセットの範囲の一つは、ノンス一致値からなる、
受信するステップと、
複数の通信ランダム化ウィンドウから通信ランダム化ウィンドウを受信するステップであって、前記複数の通信ランダム化ウィンドウは、前記複数のノードのヘッドエンドへの通信をずらすように構成されている、受信するステップと、
実行するオペレーションと予想される結果の表示を受信するステップと、
実行するオペレーションとノンスオフセットとに基づいてハッシュオペレーションを実行するステップと、並びに、
前記予想される結果を達成したときに成功表示を前記ヘッドエンドに送信するステップであって、前記成功表示は、前記ノンスオフセットからのノンス一致値を含む、送信するステップと
を含む、システム。
【請求項9】
前記複数のノードは、複数のスマートメータリングデバイスを含む
請求項
8に記載のシステム。
【請求項10】
前記ハッシュオペレーションを実行するステップは、
第1のブロックヘッダの第1のハッシュ値を計算するステップであって、前記第1のブロックヘッダは、ノンスオフセット内の第1のノンス値を含む、計算するステップと、
前記第1のハッシュ値が前記予想される結果を満たす場合に、前記成功表示を送信するステップと、
前記第1のハッシュ値が前記予想される結果を満たさない場合に、第2のブロックヘッダの第2のハッシュ値を計算するステップであって、前記第2のブロックヘッダは前記ノンスオフセット内の第2のノンス値を含む、計算するステップと、並びに、
前記第2のハッシュ値が前記予想される結果を満たす場合に、前記成功表示を送信するステップと
を含む、請求項
8に記載のシステム。
【請求項11】
前記ハッシュオペレーションを実行するステップは、
前記ノンスオフセット内のノンス値を含むブロックヘッダに対してセキュアハッシュアルゴリズム256(SHA-256)を実行するステップを含む
請求項
8に記載のシステム。
【請求項12】
前記複数のノードの夫々は更に、
ノンスオフセット内に異なるノンス値を持つ複数のブロックヘッダに対してハッシュオペレーションを同時に実行するように構成された暗号アクセラレータコプロセッサを含む、
請求項
8に記載のシステム。
【請求項13】
前記プロセッサは、
前記ノンスオフセット内に異なる
ノンス値を持つ複数のブロックヘッダに対してハッシュオペレーションを同時に実行するように構成された暗号アクセラレータブロックを含む、
請求項
8に記載のシステム。
【請求項14】
前記予想される結果は目標値からなり、前記ノンス一致値は、前記目標値よりも小さいブロックヘッダのハッシュ値を生成する前記ノンスオフセット内の任意のノンス値である、
請求項
8に記載のシステム。
【請求項15】
前記複数のノードのうち少なくとも一つは、スマートメータリングデバイスを含み、
前記スマートメータリングデバイスのハッシュオペレーションは、前記スマートメータリングデバイスのアイドル処理サイクル中に実行される、
請求項
8に記載のシステム。
【請求項16】
ノンスオフセットを受信するステップであって、前記ノンスオフセットは、ブロックチェーンオペレーションで利用可能なノンスの総数よりも小さいノンス値の範囲を構成
し、ノンスオフセットの範囲は、ブロックチェーンオペレーションにおける利用可能なノンスの総数を、複数のエンドポイントの数の半分よりも小さい数で割ったものからなり、各エンドポイントには、少なくとも一つの他のエンドポイントにも割り当てられている個々のノンスオフセットが割り当てられ、ノンスオフセットの範囲の一つは、ノンス一致値からなる、
受信するステップと、
通信ランダム化ウィンドウを受信するステップと、
実行するオペレーションと予想される結果の表示を受信するステップと、
実行するオペレーションとノンスオフセットとに基づいて、ハッシュオペレーションを実行するステップと、並びに、
前記予想される結果を達成したときに処理ネットワークのヘッドエンドに成功表示を送信するステップであって、前記成功表示は、前記ノンスオフセットからのノンス一致値を含む、送信するステップと
を含む、方法。
【請求項17】
前記予想される結果が目標値を含み、
前記ノンス一致値が、ハッシュアルゴリズムに提供されたときに前記目標値よりも小さいハッシュ値をもたらすノンスオフセットからのノンス値を含む、
請求項
16に記載の方法。
【請求項18】
前記成功表示を前記処理ネットワークのヘッドエンドに送信する前に、前記成功表示を暗号化するステップを、
更に含む、請求項
16に記載の方法。
【請求項19】
前記成功表示を前記ヘッドエンドに送信する前に、前記成功表示にデジタル署名するステップと、並びに、
前記ヘッドエンドからデジタル署名されたバルクストップメッセージを受信するステップであって、前記バルクストップメッセージは、前記処理ネットワークの各ノードに提供されて、前記ノードの各々に実行する前記オペレーションの作業を停止するように指示する、受信するステップと
を更に含む、請求項
16に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概略、暗号オペレーションを行うためのプロセスに関する。より詳細には、本開示は、モノのインターネット(IoT)デバイスのプールを使用して、暗号オペレーションのための処理帯域幅を提供することに関する。
【背景技術】
【0002】
スマート電力、ガス、水道メータやその他のスマート電子機器などの、モノのインターネット(IoT)デバイスは、IoTデータネットワークを形成するためにデバイスを相互接続するメカニズムとして使用される。IoTデータネットワーク内の各デバイスは、メータの読み取り、他のデバイスとの通信、またはIoTデバイスに関連する他の機能の実行に使用される一つ以上のプロセッサを含む。IoTデータネットワーク内のデバイスのプロセッサは、多くの場合、時間の一部だけ処理オペレーションを行う。残りの時間の間、プロセッサは、スケジュールされた別の処理オペレーション、及び/又は、他のIoTデバイスからのスケジュールされていない通信を待って、アイドル状態になる。例えば、スマート電力メータのプロセッサは、メータの読み取りを行うとき、メッシュネットワークまたは別のIoTデータネットワークを介してメータ読み取り値を伝送するとき、およびメッシュネットワーク若しくは別のIoTデータネットワークから情報を受信するときにのみ、オペレートし得る。
【発明の概要】
【発明が解決しようとする課題】
【0003】
IoTデータネットワーク内のデバイスのプロセッサは、メータリング機能と通信機能との間で利用可能な相当量の処理帯域幅を利用できないことがある。したがって、デバイスは、デバイスの主な機能に関連する完了すべきタスクがないときに、かなりの期間アイドル状態になることがある。IoTデータネットワーク全体におけるデバイスのこれらのアイドル時間帯のために、デバイスにおいて重要な処理機会が失われる。
【課題を解決するための手段】
【0004】
モノのインターネット(IoT)のデバイスプールを使用してブロックチェーンオペレーションを実行するための装置及びプロセスについて、態様及び実施例が開示される。例えば、ブロックチェーンオペレーションを実行するための方法は、処理ネットワーク内の複数のエンドポイントの数の表示を受信するステップと、複数のエンドポイントの各エンドポイントにノンスオフセットを割り当てるステップとを含む。本方法は又、複数のエンドポイントの各エンドポイントに通信ランダム化ウィンドウを割り当てるステップを含む。通信ランダム化ウィンドウは、ヘッドエンドに対するエンドポイントの通信ウィンドウをずらす。更に、本方法は、実行するオペレーションと予想される結果を示すメッセージをエンドポイントの夫々に送信するステップを含む。更に、この方法は、複数のエンドポイントのうちの第1のエンドポイントから成功表示を受信するステップを含む。成功表示は、第1のエンドポイントのノンスオフセットからのノンス一致値を含む。更に、本方法は、予想される結果によりノンス一致値を検証するステップを含む。
【0005】
別の例では、システムは、ヘッドエンドと、ヘッドエンドに通信可能に結合された複数のノードとを含む。複数のノードの各々は、コンピュータ可読命令を実行するように構成されたプロセッサと、コンピュータ可読命令を格納するメモリとを含む。コンピュータ可読命令は、プロセッサによって実行されると、プロセッサに、ブロックチェーンオペレーションで利用可能なノンス値の総数よりも小さいノンス値の範囲を含むノンスオフセットを受信させる。又、命令は、プロセッサに、複数のノードのヘッドエンドへの通信をずらす複数の通信ランダム化ウィンドウから、通信ランダム化ウィンドウを受信させる。更に、命令は、プロセッサに、実行するオペレーションと予想される結果の表示を受信させる。更に、命令は、プロセッサに、実行するオペレーションとノンスオフセットとに基づいてハッシュオペレーションを実行させ、予想される結果を達成したときに成功表示をヘッドエンドに送信させる。成功表示は、ノンスオフセットからのノンス一致値を含む。
【0006】
更なる例では、方法は、ノンスオフセットを受信するステップを含む。ノンスオフセットは、ブロックチェーンオペレーションで利用可能なノンスの総数よりも小さいノンス値の範囲を含む。又、本方法は、通信ランダム化ウィンドウを受信するステップと、実行するオペレーションと予想される結果の表示を受信するステップとを含む。更に、本方法は、実行するオペレーションとノンスオフセットとに基づいてハッシュオペレーションを実行するステップを含む。更に、方法は、予想される結果を達成したときに処理ネットワークのヘッドエンドに成功表示を送信するステップを含む。成功表示は、ノンスオフセットからのノンス一致値を含む。
【0007】
これらの例示的な態様及び特徴は、本発明を限定または定義するためではなく、本願で開示する発明概念の理解を助ける例を提供するために、言及されている。本発明の他の態様、利点、及び特徴は、本願全体を検討した後に明らかになるであろう。
【図面の簡単な説明】
【0008】
本開示のこれら並びにその他の特徴、態様、および利点は、添付の図面を参照して以下の詳細な説明を読むとよりよく理解できる。
【
図1】
図1は、一つ以上の実施例に係る、モノのインターネット(IoT)システムの例を示すブロック図である。
【
図2】
図2は、一つ以上の実施例に係る、暗号通貨のマイニングのためのプロセスの例である。
【
図3】
図3は、一つ以上の実施例に係る、IoTシステムを使用する暗号通貨のマイニングのためのプロセスの例である。
【
図4】
図4は、一つ以上の実施例に係る、暗号化アクセラレータを含むIoTシステムのノードの例である。
【
図5】
図5は、一つ以上の実施例に係る、統合された暗号化アクセラレータブロックを伴うプロセッサを含むIoTシステムのノードの例である。
【発明を実施するための形態】
【0009】
モノのインターネット(IoT)デバイスのプールを使用する暗号通貨のマイニングのためのシステムおよび方法が、提供される。IoTネットワーク内に接続されたIoTデバイスは、二次機能として暗号通貨のマイニングのオペレーションを実行しながら、一次機能(例えば、メータリングデバイス)をすべて実行するデバイスを含み得る。別の例では、IoTネットワークは、複数の異なるタイプのIoTデバイス(例えば、メータ、ルータ、ゲートウェイなど)を接続し得る。一例として、IoTシステムのエンドポイントまたは他のノード(例えば、IoTデバイス)は、一次機能を実行している間、エンドポイントまたは他のノードで利用可能なプロセッサの処理帯域幅を最大化しないことがある。IoTデバイス内のプロセッサは、スケジュールされたタスクが実行されるまで、または(例えば、別のIoTデバイスによって)IoTデバイスにオペレーションが要求されるまで、アイドル状態になることがある。未使用の処理帯域幅の損失を改善するために、IoTデータネットワークは、IoTデバイスのプロセッサによって実行される処理オペレーションを調整してもよい。このようにして、過剰な処理帯域幅は、IoTデバイスによって実行される典型的なオペレーションを超える生産的な二次タスクを達成するために使用される。
【0010】
IoTシステムは多数のIoTデバイスを含んでいてもよく、IoTデバイスの各々は未使用の処理帯域幅を有していてもよいので、IoTシステムのIoTデバイスのプールは、IoTデバイスの典型的なオペレーションとは無関係の処理機能を実行することができる。例えば、IoTデバイスのプールは、IoTデバイスの従来のオペレーション中にIoTデバイスのプロセッサがアイドル状態になっている時間帯に、暗号通貨のマイニングのオペレーションを実行してもよい。同様に、IoTデバイスのプールは、暗号通貨のマイニングに特に関連しない他の処理機能を実行してもよい。例えば、IoTデバイスのプールは、処理能力をプールし、任意の数の処理集約的なタスクを実行することが可能であってもよい。
【0011】
図1は、モノのインターネット(IoT)システム100の一例を示すブロック図である。IoTシステム100は、スマートデバイス(例えば、通信技術を含む、資源消費量計、車両、家電製品など)が、ノード(すなわち、スマートデバイス)のネットワーク、インターネット、イントラネット、またはそれらの組み合わせを介して通信するための、ネットワークインフラストラクチャを提供する。IoTシステム100がスマートメータのメッシュネットワークを作成する例では、IoTシステム100は、ネットワーク104からデータのストリームを受信する中央処理装置として機能し得る、ヘッドエンド102を含む。ネットワーク104は、メッシュネットワーク、インターネット、イントラネット、または任意の他のデータ通信ネットワークであってもよい。ノード106、108は、ノード106、108のオペレーションに関連するデータを収集し、そのデータをネットワーク104に、最終的にはヘッドエンド102に伝送する。
【0012】
ノード106及び108は、ルートノード106a及び106bと、子ノード108とを含んでもよい。例えば、ルートノード106a及び106bは、ネットワーク104と直接通信するものとして示されており、子ノード108は、ルートノード106a及び106bと通信するものとして示されている。ルートノード106a及び106bは、PAN(Personal Area Network)コーディネータ、インターネットゲートウェイ、セルラ接続デバイス、PLC(Power Line Carrier)デバイス、またはネットワーク104に接続可能な他のデバイスであってもよい。ルートノード106a及び106bは、一般に、ルートノード106a及び106bの下のノードレイヤ(例えば、レイヤ1)に位置する子ノード108とのデータリンクにより、親ノードと呼ばれることがある。
【0013】
楕円110で表される他の子ノードとリンクしている子ノード108は、子ノード108がネットワークトポロジーのレイヤ1に位置している一方で、楕円110で表される子ノードがネットワークトポロジーのレイヤ2以下に位置していることから、親ノードと呼ばれることもある。例えば、楕円110で表される子ノードからのデータは、データがネットワーク104及びヘッドエンド102に到達する前に、子ノード108及びルートノード106を経由して移動する可能性があるが、子ノード108からのデータは、ネットワーク104及びヘッドエンド102に到達する前に、ルートノード106のみを経由して移動する。
図1では、ルートレイヤ(すなわち、ルートノード106)及びレイヤ1(すなわち、子ノード108)のみが示されているが、より多くのまたはより少ないレイヤがIoTシステム100に含まれることもある。さらに、
図1は、特定のネットワークトポロジー(例えば、DODAGツリー)を描いているが、他のネットワークトポロジーも可能である(例えば、リングトポロジー、メッシュトポロジー、スタートポロジーなど)。
【0014】
ノード106及び108は、オペレーションデータ及び通信データを、ヘッドエンド102に向けて上流側に伝送し、メッシュネットワーク112のエンドポイントノードに向けて下流側に伝送する。メッシュネットワーク112は、一般に、ノード106及び108の間の通信リンクによって生成されるデータ通信のネットワークを指し得る。ノード106及び108は、夫々、個々のノード106及び108に関連するタスクを実行することができるプロセッサを含み得る。例えば、スマートメータリングデバイスを表すノード106又は108は、メータリング情報(例えば、消費電力)を読み取り、メータリング情報をメッシュネットワーク112上でネットワーク104及びヘッドエンド102に通信することが可能なプロセッサを含み得る。このようなタスクは、ノード106及び108内のプロセッサの利用可能な処理帯域幅の一部を占めるだけでよい。
【0015】
個々のノード106又は108の帯域幅は、暗号通貨のマイニング中などの、計算上困難なオペレーション中に使用されるわずかな帯域幅しか提供しないかもしれないが、IoTシステム100内のノード106及び108のプールは、重要な集約された処理能力を提供する。例えば、典型的なオペレーションの間、IoTシステム100内のノード106及び108の各々は、追加のオペレーションに利用可能な余剰サイクルを有する。余剰サイクルの間、ノード106及び108は、IoTシステム100全体で同時に暗号オペレーションを行うことができる。IoTシステム100が、ノード106及び108として100万台のスマートメータを含む例(例えば、大都市または地域の電力網)では、IoTシステム100は、セキュアハッシュアルゴリズム256(SHA-256)を使用して、1時間あたり約3.6兆のハッシュ(Th)を実行することができる。この例を続けると、約2700Thが1ビットコインを生成する場合、100万のノード106及び108がマイニングのオペレーションを実行する(すなわち、ハッシュを実行する)IoTシステム100は、平均して、1ヶ月あたり約1ビットコインをマイニングすることができる。さらに、
図4及び
図5に関して後述するように、ノード106及び108の、マイニングのハードウェア及び戦略の、更なる最適化は、IoTシステム100のマイニングレートの増加をもたらす可能性がある。
【0016】
図2は、暗号通貨のマイニングのためのプロセス200の一例である。プロセス200は、IoTシステム100の過剰な処理帯域幅を使用して、暗号通貨のマイニングのオペレーションを実行し得る。例えば、ブロック202では、プロセス200は、ヘッドエンド102から、ノード106又は108で目標値を受信することを含む。目標値は、すべての暗号通貨のマイナ(採掘者)に公開されている256ビットの数値である。ブロックヘッダとして以下に詳述する値がSHA-256ハッシングアルゴリズムを用いてハッシュ化されると、結果として得られるハッシュが目標値と比較され、結果として得られるハッシュが目標課題を解決するかどうかが判断される。目標課題とは、目標値よりも低いハッシュ値を持つハッシュが得られるブロックヘッダを見つけることである。暗号通貨のマイニングのオペレーションは、SHA-256ハッシングアルゴリズムを使用して以下に説明されるが、暗号通貨のマイニングのオペレーションの特定のプラットフォームに応じて、他のハッシングアルゴリズムも使用され得る。
【0017】
目標値は、新しいブロックがブロックチェーンに追加される度に変化してもよく、ビットコインのマイニングの環境のように、2016個の新しいブロックがブロックチェーンに追加される度に、目標課題の難易度が調整されてもよい。更に、難易度は、特定のマイニングの環境又はプラットフォーム(例えば、ビットコイン、ライトコイン、イーサリアムなど)に応じて、他の間隔で変化してもよい。本明細書では、「ブロックチェーン」という用語は、記録(すなわち、ブロック)のリストを指すために使用され、各ブロックは、ブロックチェーンの、前のブロックの暗号ハッシュを含む。ブロックチェーンの各ブロックは、以下でより詳細に説明するように、マイニングのオペレーションが現在の目標値に対する目標課題を解決したときに生成される。目標値の難易度は、目標値の256ビットの数字をリードするゼロの数で表すことができる。例えば、256ビットの数字の先頭に0が多ければ難易度が高くなり、256ビットの数字の先頭に0が少なければ難易度が低くなるということである。つまり、目標値が大きい(先頭のゼロが少ない)ほど、目標値よりも小さい値にハッシュ化されるブロックヘッダを見つけやすくなる。難易度は、新しいブロックが追加される速さに応じて、高くなったり低くなったりする。例えば、1ブロックあたりの平均のマイニング時間が10分になるように、難易度を上げたり下げたりすることもできる。マイニングのオペレーションが増加すると、平均のマイニング時間を維持するために、難易度も上がり得る。
【0018】
ブロック204において、プロセス200は、ブロックを作成することを含む。ブロックは、ヘッドエンド102で作成されてもよく、ヘッドエンド102は次にブロックをノード106及び108に提供するものである。更にブロックは、個々のノード106又は108の夫々で作成されてもよく、又は、ブロックは、ヘッドエンド102とノード106及び108との組み合わせを使用して作成されてもよい。例えば、有効な暗号通貨のトランザクションを処理することにより、ブロックチェーンには追加はされないが、ブロックは作成される。
【0019】
ノード106及び108、ヘッドエンド102、又はそれらの組み合わせは、少なくとも1MBのトランザクションが検証されてブロックにリスト化されるように、暗号通貨トランザクションプールからのトランザクションを検証し得る。一例では、暗号通貨トランザクションプールは、暗号通貨保有者間の暗号通貨トランザクションを含む(例えば、ある暗号通貨保有者が、別の暗号通貨保有者から、暗号通貨と引き換えに商品又はサービスを購入する)。これらのトランザクションは、購入者が送信しようとしている暗号通貨を実際に所有していることを確認し、購入者が既に暗号通貨を使用しているのではないことを確認することで、検証される。トランザクションが検証されると、そのトランザクションデータがブロック204で作成されるブロックに追加される。このトランザクション検証プロセスは、ブロックが少なくとも1MBの検証されたトランザクションデータを含むまで続く。
【0020】
各暗号通貨マイナは、異なるセットの暗号通貨トランザクションを検証する可能性が高いため、マイニングプロセス中に生成される各ブロックは異なる可能性が高い。これは、各暗号通貨マイナが、目標値よりも小さいブロックヘッダハッシュを生成するために、異なるノンス値を検索することを意味する。1MBのトランザクションを検証することは、マイナが目標値よりも小さいハッシュとなる値を推測し始めることを可能にするキーとして機能する可能性がある。
【0021】
検証されたトランザクションのリストに加えて、ブロック204で作成されるブロックは、以下を含み得る:マジックナンバ(即ち、ブロックチェーンネットワークを特定する数字)、ブロックサイズ(即ち、ブロックのサイズを示す数字)、バージョン(即ち、暗号通貨プロトコル)、前ブロックハッシュ(即ち、ブロックチェーンの前ブロックのブロックヘッダのハッシュ)、メルクルルート(即ち、ブロックに含まれる全てのトランザクションのデジタルフィンガープリント)、タイムスタンプ(即ち、ブロックが確立された時刻)、難易度ターゲット(即ち、現在の難易度を示す数値)、ノンス値(即ち、ターゲット値よりも小さいハッシュを見つけるために調整可能な変数値)、トランザクションカウンタ(即ち、ブロックに含まれるトランザクションのカウントを示す数値)、及び、トランザクションリスト(即ち、ブロック内の各トランザクションのリスト)。
【0022】
ブロックのブロックヘッダは、目標値と比較されるハッシュ値を生成するためにハッシュ化されるブロックの一部分であってもよい。ブロックヘッダは、前ブロックハッシュの数値表現、メルクルルート、タイムスタンプ、難易度ターゲット、及び、ノンス値を含み得る。上述のように、ノンス値は、ブロックヘッダ値を生成するためにマイナによって変更可能なブロックの可変部分である。ノンス値に基づき可変である、ブロックヘッダ値は、ハッシュアルゴリズムを用いてハッシュ値にハッシュ化される。ブロックヘッダ値に対するハッシュオペレーションの成功結果は、目標値よりも小さいハッシュ値である。ノンス値は、32ビットの数値を含み得る。従って、ノンス値は、0から4,294,967,295(即ち、232-1)までの範囲を有し得、それぞれの異なるノンス値は、異なるブロックヘッダと、目標値と比較するブロックヘッダの異なるハッシュ値とをもたらす。
【0023】
ブロック206において、プロセス200は、ノード106及び108にてブロックヘッダのハッシュを計算することを含む。一つの例では、ブロックヘッダのハッシュを計算することは、ブロックヘッダに関してSHA-256ハッシングアルゴリズムを実行することを含む。別の例では、他のハッシュアルゴリズムも企図される。ブロックヘッダに対するSHA-256ハッシングアルゴリズムの結果は、256ビットのハッシュ値である。
【0024】
ブロック208において、プロセス200は、ブロック206で計算されるハッシュ値を、ブロック202で受け取る目標値と比較することを含む。ハッシュ値が目標値よりも小さい場合、ブロック210にて、プロセス200は、プルーフオブワーク(PoW)インセンティブを受け取り、ブロックチェーンに新しいブロックを追加することを含む。ビットコインマイニングの例では、プルーフオブワーク(PoW)インセンティブは12.5ビットコインであってもよい。しかしながら、プルーフオブワーク(PoW)インセンティブの値は、ブロックチェーンに追加される210,000ブロック毎に、半分になる。また、プロセス200中にどの種類の暗号通貨がマイニング(採掘)されたかに応じて、他の暗号通貨がプルーフオブワーク(PoW)インセンティブとして提供されることもある。更に、ブロックチェーンに追加される新しいブロックは、ブロックヘッダで使用された特定のノンス値を含む、ブロック204で作成されるブロックである。新しいブロックは、ソリューション(即ち、目標値よりも小さいハッシュ値)が過半数のマイナに受け入れられたときに、ブロックチェーンに追加されてもよい。
【0025】
ブロック208にて、ハッシュ値が目標値よりも大きい場合、ブロック212にて、プロセス200は、異なるマイナからのブロックが受け入れられたかどうかを判断することを含む。例えば、異なるマイナからの別のブロックが受け入れられた場合、ブロック204で作成されるブロックは、ブロックチェーンに新しいエントリを作成する上で、最早有効ではない。従って、別のブロックが受け入れられた場合、プロセス200は、新しい目標値を受信することによって、ブロック202で再起動してもよい。
【0026】
別のマイナからのブロックが受け入れられていない場合、ブロック214にて、プロセス200は、オフセット内のノンス値をインクリメントすること、またはその他の方法で調整することを、含む。即ち、目標値よりも小さくないハッシュが計算される度に、ノンス値を1ずつ増加させてもよい。さらに、目標値よりも小さくないハッシュが計算される度に、後続のノンス値が(例えば、増分ではなく)ランダムに調整してもよい。一つの例では、異なるノード106及び108には、異なるオフセット値が割り当てられてもよい。ノード106及び108の各々が、ブロックのタイムフレーム(即ち、新しいブロックがマイニング(採掘)される平均時間)内に可能な全てのノンス値をハッシュ化することができない例では、ノンス値の範囲をノード106及び108の間で分割してもよい。例えば、IoTシステム100が100万個のノードを含む場合、各ノードは、ノンス値の範囲全体をカバーするために、約4295(例えば、(232-1)/1,000,000)個のノンス値を割り当てられてもよい。他の例では、ノード106及び108は、成功したノンス値がIoTシステム100の不可逆性メッシュネットワーク112で失われる可能性を減少させるために、冗長性を含んでもよい。二つのノード106及び108が同じノンスの範囲をカバーする例では、100万個のノードの各々は、ノンス値の全体範囲を2回カバーするために、約8590(例えば、(232-1)/500,000)個のノンス値を割り当てられてもよい。
【0027】
ノード106又は108のノンス値がノード106又は108のオフセット内で1だけ増加する場合、プロセス200は、ブロック206にて、新しいブロックヘッダのハッシュ値を計算することを含む。新しいハッシュ値と目標値との比較はブロック208で再び実行され、計算されたハッシュ値が目標値よりも小さくなるか、別のブロックが受け入れられるか、又は、ブロックの全てのノンス値が成功したハッシュ値無しに使い果たされるまで、サイクルが繰り返される。
【0028】
ブロックのための全てのノンス値が使い果たされた場合、ノード106及び108は、新しいブロックを作成した後、プロセス200を繰り返してもよい。例えば、新しいブロックは、ブロック206で計算されるハッシュ値を変更する、異なるタイムスタンプ、異なるトランザクションリスト、またはその両方を、含んでもよい。新しいブロックが作成された後、目標値よりも小さい新しいブロックヘッダのハッシュを見つけるために、ノンス値のインクリメントを再び開始してもよい。
【0029】
図3は、IoTシステム100を使用する暗号通貨のマイニングのためのプロセス300の一例である。ブロック302において、プロセス300は、処理ネットワーク(例えば、IoTデバイスのプール)内のノード106及び108の数の表示を受信することを含む。ノード106及び108の数の表示は、IoTネットワーク100のヘッドエンド102によって受信されてもよく、ノードの数の表示は、ノード106及び108の夫々からヘッドエンド102での可用性の表示を受信することによって生成されてもよい。別の例では、ヘッドエンド102は、ヘッドエンド102とノード106及び108との間の標準的な相互作用に基づいて、処理ネットワーク内のノード106及び108の数を既に認識していることもある。一つの例では、ノード106及び108の数の表示は、ノード106又は108の典型的なオペレーションを超えて(例えば、メータの典型的なメータリングオペレーションを超えて)タスクを実行するための処理帯域幅を有し、電源への十分なアクセスを有する、ノード106及び108の数の表示であってもよい(例えば、バッテリ駆動ではないノード106又は108)。また、ノード106及び108から受信したか、又はヘッドエンド102で既に知られているか、のいずれかのノード106及び108の数の表示は、ノード106及び108の典型的なオペレーションを超える追加的なタスクのための十分な処理能力を有するノード106及び108の数(例えば、利用可能な処理帯域幅を仮定して暗号通貨のマイニングのオペレーションを実行できるノード106及び108の数)の表示を提供してもよい。
【0030】
ブロック304において、プロセス300は、ブロック302で利用可能であると示されたノード106及び108の夫々に、ノンスオフセットを割り当てることを含む。ビットコインマイニングの例では、トータルのノンス値は、32ビットフィールドで利用可能な数字の総量(即ち、ノンスフィールドのサイズ)に制限される場合がある。従って、ビットコインマイニングの例では、ノンス値の範囲は、0から4,294,967,295(即ち、232-1)までとなる。ノンス値は、暗号通貨のマイニングやその他のブロックチェーン機能において、ハッシュアルゴリズムで実行されるブロックヘッダの可変部分として使用される。結果として得られるハッシュ化されたブロックヘッダは、目標値との比較に使用され、その比較によって、ノンス値が目標値の問題を解決するブロックチェーンブロックを生成したかどうかが判断される。例えば、ハッシュ化されたブロックヘッダの値が目標値よりも小さい場合、ハッシュ化されたブロックヘッダと関連付けられるブロックが目標値問題を解決し、ブロックチェーンへのブロックの追加が可能になる。
【0031】
ノード106及び108の夫々にノンスオフセットを割り当てることによって、プロセス300は、可能な限り多くのノンス値をカバーする可能性を向上させることができる。 例えば、100万個のノード106及び108を伴う実施形態では、ノード106及び108の夫々に割り当てられるノンスオフセットは、ノンス値の全範囲をカバーするために、約4295個のノンス値を含み得る。他の例では、ノード106及び108は、成功したノンス値がIoTシステム100の不可逆性メッシュネットワーク112で失われる可能性を減少させるために、冗長性を含んでもよい。二つのノード106及び108が同じノンス範囲をカバーする例では、100万個のノードの各々は、ノンス値の全範囲を2回カバーするために約8590個のノンス値を割り当てられてもよい。
【0032】
ノード106及び108がより大きい処理能力を含み、ノード106及び108がノンス値の範囲を通じて効率的にインクリメントすることができる場合、オフセットは、タイムオフセット及びトランザクションオフセットも含むことができる。本明細書で使用されるように、オフセットという用語は、特定のノード106又は108が多数の変数に対してオペレートするウィンドウに関するものであってもよい。例えば、ノード106及び108のうちのいくつかは、第1の時間値(例えば、第1の時間オフセット)によって示される一つのタイムスタンプでノンス値を介してインクリメントすることができ、一方、他のノード106及び108は、異なる時間値(例えば、第2の時間オフセット)によって示される異なるタイムスタンプが割り当てられる。このような例では、第1のタイムスタンプは午後12時であってもよく、第2のタイムスタンプは午後12時10分であってもよい。別の例では、ノード106及び108には、目標値問題を解決するために使用されるブロックを生成する検証済みトランザクションのバリエーションが割り当てられ得る。即ち、異なるノード106及び108は、異なる検証済みトランザクション(例えば、異なるトランザクションオフセット)に基づく、ブロックのブロックヘッダをハッシュし得る。任意の例において、オフセットは、メッシュネットワーク112が成功したブロックを失う可能性を減少させる計画された冗長性は別として、ノード106及び108によって行われる任意の作業を大幅に繰り返すことなく、ノード106及び108のプールを使用して可能な限り多くのハッシュオペレーションを実行するように、確立されてもよい。
【0033】
ブロック306において、プロセス300は、IoTシステム100の各ノード106又は108に通信ランダム化ウィンドウを割り当てることを含む。通信ランダム化ウィンドウは、分単位の開始及び停止パラメータを含んでもよい。開始及び停止パラメータは、ノード106及び108がヘッドエンド102と通信することができるウィンドウを提供する。IoTシステム100のノード106及び108に亘って通信ランダム化ウィンドウを確立することによって、ノード106及び108からの通信は、メッシュネットワーク112を圧倒すること、ノード106及び108が通信する他のネットワーク(例えば、セルラネットワーク、電力線搬送ネットワーク、有線ネットワーク)を圧倒すること、並びに、ノード106及び108のプールを管理するヘッドエンド102又は他のシステムを圧倒することを、回避するために、千鳥状で行われてもよい。メッシュネットワーク112は本質的に不可逆性であるため、ノード106及び108によるメッシュネットワーク112を横断する通信を、割り当てられた千鳥状の通信ウィンドウに制限することで、所定の時間におけるメッシュネットワーク112上の最大通信負荷を制約することができる。
【0034】
ブロック308にて、プロセス300は、実行するオペレーションおよびオペレーションの予想される結果を示すメッセージをノード106及び108に送信することを含む。一つの例では、ヘッドエンド102は、IoTシステム100のノード106及び108の夫々に、特定の目標値問題を解決するために作成されたブロックを提供し得る。また、ヘッドエンド102は、ブロックのブロックヘッダに対するハッシュアルゴリズムの予想される結果(例えば、目標値)を、ノード106及び108の夫々に提供し得る。そのような例では、ノード106及び108の各々は、ブロック304にてノード106及び108に割り当てられたノンスオフセットを使用して、ブロックヘッダに対するハッシュオペレーションを実行してもよい。
【0035】
ノード106及び108のプロセッサがハッシュオペレーションを効率的に処理することができる別の例では、ヘッドエンド102は、IoTシステム100全体のノード106及び108に異なるブロックを割り当ててもよい。上述したように、ブロックは、特定の目標値問題を解決するために作成されてもよい。例えば、異なるトランザクション、タイムスタンプ、若しくは両方を含む複数のブロックを作成してもよいし、ブロックを、ノード106及び108に、又は、ノード106及び108のセットに、提供してもよい。いくつかの異なるブロックヘッダをハッシュ化することにより、ノード106及び108は、個々のブロックに関連するいくつかのノンス値に制限される代わりに、より多くの値に対してハッシュオペレーションを行うことができる。
【0036】
ノード106及び108に提供される、予想される結果は、ブロックチェーンの現在のブロックに対する特定の目標値の問題を示すものであり得る。従って、ノード106及び108によって実行されるオペレーションは、ノード106及び108のためのオフセット値で受信したブロックにハッシュオペレーションを実行することと、ブロックヘッダのハッシュ値を目標値と比較して、ブロックヘッダのハッシュ値が成功しているか(例えば、目標値よりも小さい数値か)どうかを判断することとを含んでもよい。
【0037】
ブロック310において、プロセス300は、ヘッドエンド102においてノード106及び108からオペレーション開始応答を受信することを含む。オペレーション開始応答は、ノード106又は108が、ヘッドエンド102によってノード106又は108に割り当てられたブロック及び目標値問題を使用してハッシュオペレーションを開始したことを、ヘッドエンド102に示すものである。ノード106及び108は、個々のノード106又は108に割り当てられた開始及び停止パラメータを用いて、通信ランダム化ウィンドウの間にオペレーション開始応答を通信してもよい。通信ランダム化ウィンドウの間にオペレーション開始応答を通信することによって、メッシュネットワーク112は、同時に送信されるノード106及び108の各々からの個別の通信に過大な負担をかけない。
【0038】
オペレーション開始応答の受信に加えて、ノード106及び108は、通信ランダム化ウィンドウの間に、ステータス及びヘルスアップデートもヘッドエンド102に提供し得る。ステータス及びヘルスアップデートは、ノード106及び108の処理ステータスの表示をヘッドエンド102に提供し得る。更に、ヘッドエンド102は、ステータス及びヘルスアップデートを使用して、ノード106及び108のいずれかが処理遅延を有するかどうかを判断し得る。また、ステータス及びヘルスアップデートにより、ヘッドエンド102は、ハッシュオペレーションを実行するノード106及び108のバルクオペレーションのパフォーマンスを判断することができてもよい。ヘッドエンド102は、この情報を使用して、パフォーマンスの低いノード106及び108から、より効率的にオペレートする他のノード106および108にオフセットを再割り当てしてもよい。一つの例では、ヘッドエンド102は、将来の目標値問題を解決する際にオフセットを再割り当てするために、ステータス及びヘルスアップデートからの情報を使用することもできる。
【0039】
ブロック312において、プロセス300は、ノード106又は108から成功表示を受信することを含む。ノード106及び108のうちの一つが目標値問題を満たすハッシュオペレーションを行うと、成功したノード106又は108は、直ちに、又は、次の通信ウィンドウを待たずに、ヘッドエンド102に成功メッセージを通信することができる。成功メッセージは、ブロックの成功したノンス値と、成功したブロックのブロックヘッダの成功したハッシュ値の表示とを含む。一つの例では、成功メッセージは、ヘッドエンド102が成功メッセージの受信の確認を提供するまで、ノード106又は108によって繰り返され得る。
【0040】
一つの例では、ノード106又は108がヘッドエンド102に提供する成功メッセージは、暗号化され得る。成功メッセージの暗号化は、競合他社又は不正なエンティティが成功メッセージを傍受し、成功したブロックを盗むことを防止することができる。そのような例では、ヘッドエンド102は、成功ブロックが目標値問題を解決することを検証する前に、復号化鍵を使用して成功メッセージを復号化してもよい。
【0041】
ブロック314において、プロセス300は、一致(例えば、ノンス一致値を含むブロックヘッダのハッシュ値が目標値よりも小さいことを示すノンス一致値)を検証し、ノード106及び108にバルクストップメッセージを送信することを含む。検証処理では、成功メッセージで受信したブロックのブロックヘッダに対してハッシュオペレーションを行い、その結果が目標値よりも小さいことを検証してもよい。一つの例では、ノンス一致値は、目標値よりも小さい値にハッシュ化されたブロックヘッダをもたらす、特定のノード106又は108のノンスオフセット内のノンスの一つである。ヘッドエンド102が、ブロックが成功したことを検証する場合、ヘッドエンド102は、バルクストップメッセージをノード106及び108に送信してもよい。バルクストップメッセージは、ノード106及び108に対して、現在の問題(例えば、目標値問題)に対する作業を停止するように指示する。バルクストップメッセージがノード106及び108に送信されると、ヘッドエンド102は、ブロックチェーンの次のブロックのための新しい目標値問題を開始し得る。
【0042】
さらに、ヘッドエンド102による一致の検証時に、ヘッドエンド102は、成功したブロックを、同じ目標値問題に取り組む他のブロックチェーンマイナからの成功検証のために提出してもよい。ビットコインの例では、ブロックチェーンマイナの過半数が、ブロックチェーンに追加される成功ブロックのために、提出された成功ブロックを検証し得る。成功したブロックがブロックチェーンに追加されると、IoTシステム100を制御するエンティティは、プルーフオブワーク(PoW)のインセンティブ(例えば、ビットコイン、他の暗号通貨、または他のインセンティブ)を受け取る。
【0043】
一つの例では、ヘッドエンド102からノード106及び108に送信されるメッセージのいずれかは、デジタル署名を含み得る。いくつかの例では、二つのデジタル署名は、処理ネットワークによる鍵更新オペレーションの実行に関連する重複期間中に有効であり得る。そのような例では、ノード106及び108の各々は、処理ネットワークの公開鍵及び処理ネットワークのバックアップ公開鍵を備え得る。同様に、ヘッドエンド102は、公開鍵およびバックアップ公開鍵に関連付けられた秘密鍵およびバックアップ秘密鍵を夫々備え得る。公開鍵とバックアップ公開鍵は、異なる有効期限に関連付けられている。一つの例では、公開鍵とバックアップ公開鍵の重複する期間は、処理ネットワークに対するサービス拒否攻撃を防止するために、実装され得る。
【0044】
公開鍵及びバックアップ公開鍵を更新するために、ヘッドエンド102は、新しいバックアップ公開鍵及び関連する有効期限を示すメッセージを、処理ネットワークを介して送信し得る。一つの例では、新しいバックアップ公開鍵を示すメッセージは、前のバックアップ秘密鍵を用いてヘッドエンド102によって署名され得る。その結果、前のバックアップ秘密鍵とバックアップ公開鍵が、新しい秘密鍵と新しい公開鍵に移行することになる。新しいバックアップ公開鍵を示すメッセージは、ノード106及び108の全てに同時に送信され得、ノード106及び108は、割り当てられた通信ランダム化ウィンドウを用いて、メッセージの受取を確認し得る。また、ヘッドエンド102から発信されるメッセージに対するデジタル署名に加えて、ノード106及び108は、ヘッドエンド102に提供されるメッセージにもデジタル署名し得る。
【0045】
図4は、暗号アクセラレータを含むIoTシステム100のノード106又は108(例えば、エンドポイント)の例である。ノード106又は108は、プロセッサ402及びメモリ404を含んでもよい。メモリ404は、ノード106又は108に関連するオペレーションを実行するためにプロセッサによって実行可能なコンピュータ可読命令を格納することが可能な非一過性のコンピュータ可読媒体を含み得る。例えば、ノード106又は108がスマートメータリングデバイスである場合、メモリ404は、プロセッサによって実行され、メータの読み取りを行い、及び、メータの読み取りをヘッドエンド102に通信する、命令を、格納し得る。また、メモリ404は、メータの読み取りに関連するデータなど、ノード106又は108のオペレーションに関連する情報も格納し得る。
【0046】
オペレーション中、ノード106又は108は、低活動の期間を経ることもある。低活動の期間中、プロセッサ402は、アイドル状態であるか、又は、プロセッサ402の処理帯域幅よりもかなり低いレベルでオペレートし得る。従って、上述のプロセス300は、IoTシステム100内のノード106及び108のプールされた処理能力を利用するために、プロセッサ402のアイドル処理サイクルの間に暗号通貨のマイニングのオペレーションまたは他のオペレーションを実行するべく、ノード106及び108のプールからプロセッサ402のプールを利用し得る。
【0047】
ノード106及び108のプールからプロセッサ402によって実行されるオペレーションの処理速度を向上させるために、ノード106及び108の一部又は全ては、暗号アクセラレータ406を含み得る。暗号アクセラレータ406は、暗号通貨のマイニングなどの、暗号オペレーションを効率的に行うために特別に設計されたコプロセッサとして、ノード106及び108内に設置され得る。暗号アクセラレータ406の設置は、ノード106及び108の製造時に行われてもよいし、暗号アクセラレータ406を既存のノード106及び108に後付けしてもよい。暗号アクセラレータ406は、プロセッサ402よりもはるかに効率的にハッシュオペレーションを実行し得る。例えば、暗号アクセラレータ406は、矢印408で示すように、異なるノンス値を持つ複数のブロックヘッダに対してハッシュアルゴリズムを同時に実行することができる。このような例では、ノード106又は108がハッシュオペレーションを実行できる速度に乗数を与えることができる。更に、暗号アクセラレータ406は、IoTシステム100内のノード106及び108の主要機能に対する暗号オペレーションの影響を制限し得る。
【0048】
図5は、統合された暗号アクセラレータブロック504を伴うプロセッサ502を含むIoTシステム100のノード106又は108の例である。ノード106又は108は、プロセッサ502及びメモリ506を含み得る。メモリ506は、ノード106又は108に関連するオペレーションを実行するためにプロセッサ502によって実行可能な命令を格納することが可能な非一過性のコンピュータ可読媒体を含み得る。例えば、ノード106又は108がスマートメータリングデバイスである場合、メモリ506は、プロセッサ502によって実行され、メータの読み取りを行い、及び、メータの読み取りをヘッドエンド102に通信する、命令を、格納し得る。また、メモリ506は、メータの読み取りに関連するデータなど、ノード106又は108のオペレーションに関連する情報も格納し得る。
【0049】
オペレーション中、ノード106又は108は、低活動の期間を経ることもある。低活動の期間中、プロセッサ502は、アイドル状態であるか、又は、プロセッサ502の処理帯域幅よりもかなり低いレベルでオペレートし得る。従って、IoTシステム100内のノード106及び108のプールされた処理能力を利用するために、プロセッサ502のアイドル処理サイクルの間に暗号通貨のマイニングのオペレーションまたは他のオペレーションを実行するべく、IoTシステム100のノード106及び108のプールからのプロセッサ502のプールが利用され得る。
【0050】
ノード106及び108のプールからプロセッサ502によって実行されるオペレーションの処理速度を向上させるために、ノード106及び108のプロセッサ502の一部または全部は、暗号アクセラレータブロック504を含み得る。暗号アクセラレータブロック504は、プロセッサ502の一体型コンポーネントであってもよい。更に、暗号アクセラレータブロック504は、構成可能なオペレーション設定、オフセット設定、目標値設定、及び、割込み設定を含み得る。オペレーション設定は、ヘッドエンド102がノード106又は108に実行させたい種類のオペレーション(例えば、ノンス値をインクリメントしながらブロックヘッダをハッシュ化すること)を含み得る。オフセット設定は、ノード106又は108がオペレートするオフセット範囲(例えば、ハッシュオペレーションで使用するノンス値の範囲)を含み得る。目標値設定は、ノード106又は108が実行を指示されるオペレーションの目標値(例えば、目標値問題の目標値)を含み得る。割り込み設定は、目標値設定で示された目標を達成したときにノード106又は108がどのように反応するか(例えば、ノード106又は108がどのように成功メッセージを送信するか)を含み得る。
【0051】
暗号アクセラレータ406と同様に、一体型の暗号アクセラレータブロック504は、汎用プロセッサよりもはるかに効率的にハッシュオペレーションを実行し得る。例えば、暗号アクセラレータブロック504は、異なるノンス値を持つ複数のブロックヘッダに対してハッシュアルゴリズムを同時に実行し得る。このような例は、ノード106又は108がハッシュオペレーションを実行することができる速度に乗数を提供し得る。
【0052】
一般的な検討事項
【0053】
請求項の発明の趣旨の完全な理解を提供するために、多数の具体的な詳細な説明を本明細書に記載している。しかしながら、当業者であれば、請求項の発明の趣旨がこれらの具体的な詳細な説明無しに実施され得ることを理解するであろう。他の例では、当業者に知られているであろう方法、装置、又はシステムは、請求項の発明の趣旨を不明瞭にしないように、詳細には記載されていない。
【0054】
本明細書で説明する特徴は、特定のハードウェアアーキテクチャ又は構成に限定されない。コンピューティングデバイスは、一つまたは複数の入力を条件として結果を提供するコンポーネントの任意の適切な配置を含むことができる。適切なコンピューティングデバイスには、コンピューティングシステムを汎用コンピューティング装置から本発明の一つ又は複数の態様を実装する特殊なコンピューティング装置にプログラム又は構成する格納されたソフトウェアにアクセスする多目的マイクロプロセッサベースのコンピュータシステムが、含まれる。適切なプログラミング、スクリプト、その他の言語、または言語の組み合わせを使用して、本明細書に記載されている内容をソフトウェアに実装し、コンピューティングデバイスのプログラミングまたは構成に用いることができる。
【0055】
本明細書に開示の方法の態様は、そのようなコンピューティングデバイスのオペレーションにおいて実行することができる。上述の例で提示されるブロックの順序は変化させることができ、例えば、ブロックを再順序付けしたり、組み合わせたり、及び/又は、サブブロックに分割したりすることができる。特定のブロックまたはプロセスは、並行して実行することができる。
【0056】
本明細書での「~に適応した」又は「~ように構成された」の使用は、追加のタスク又はステップを実行するように適応された又は構成されたデバイスを排除しない、オープンで包括的な言語として意図されている。更に、「~に基づく」の使用は、一つ又は複数の記載された条件または値に「基づく」プロセス、ステップ、計算、または他のアクションが、実際には、記載されたものを超える更なる条件又は値に基づいていてもよいという意味で、オープンで包括的であることを意味する。本明細書に含まれる見出し、リスト、及び番号付けは、説明を容易にするためだけのものであり、限定することを意味するものではない。
【0057】
本発明は、その特定の態様に関して詳細に説明してきたが、当業者は、前述の理解を得た上で、そのような態様に対する変更、変形、および等価物を、容易に作り出すことができることが理解されるであろう。従って、本開示は、限定ではなく例示を目的として提示されており、当業者に容易に明らかになるような発明の趣旨の変更、変形、及び/又は追加を含めることを排除するものではないことを理解されたい。