特表2021-513300(P2021-513300A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ スロックイット ゲーエムベーハーの特許一覧

特表2021-513300最小限の検証クライアントを使用したトラストレスステートレスインセンティブ型リモートノードネットワーク
<>
  • 特表2021513300-最小限の検証クライアントを使用したトラストレスステートレスインセンティブ型リモートノードネットワーク 図000003
  • 特表2021513300-最小限の検証クライアントを使用したトラストレスステートレスインセンティブ型リモートノードネットワーク 図000004
  • 特表2021513300-最小限の検証クライアントを使用したトラストレスステートレスインセンティブ型リモートノードネットワーク 図000005
  • 特表2021513300-最小限の検証クライアントを使用したトラストレスステートレスインセンティブ型リモートノードネットワーク 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】特表2021-513300(P2021-513300A)
(43)【公表日】2021年5月20日
(54)【発明の名称】最小限の検証クライアントを使用したトラストレスステートレスインセンティブ型リモートノードネットワーク
(51)【国際特許分類】
   H04L 9/32 20060101AFI20210423BHJP
   G16Y 30/10 20200101ALI20210423BHJP
【FI】
   H04L9/00 675Z
   G16Y30/10
【審査請求】有
【予備審査請求】未請求
【全頁数】28
(21)【出願番号】特願2020-556929(P2020-556929)
(86)(22)【出願日】2019年4月15日
(85)【翻訳文提出日】2020年12月15日
(86)【国際出願番号】IB2019000499
(87)【国際公開番号】WO2019202393
(87)【国際公開日】20191024
(31)【優先権主張番号】62/658,496
(32)【優先日】2018年4月16日
(33)【優先権主張国】US
(81)【指定国】 AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JO,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT
(71)【出願人】
【識別番号】519238989
【氏名又は名称】ビーシー ディベロップメント ラボズ ゲーエムベーハー
(74)【代理人】
【識別番号】110001243
【氏名又は名称】特許業務法人 谷・阿部特許事務所
(72)【発明者】
【氏名】クリストフ イェンチ
(72)【発明者】
【氏名】ステフェン クックス
(72)【発明者】
【氏名】シモン イェンチ
(72)【発明者】
【氏名】ジャン ポール ルイズ デプラ
(57)【要約】
IoTデバイス、ウェブアプリ、モバイルアプリ、および他のアプリケーションのブロックチェーントランザクションを妥当性検査するために、ブロックチェーンネットワークと同期していないクライアントを使用するためのシステムおよび方法が開示される。クライアントは、ブロックチェーンネットワークと同期しているノードのレジスタ(情報プロバイダまたはバリデータとして作動する)を検索し、レジスタからノードを選択して、選択したノードに情報要求を送信する。クライアントは、要求に対する応答、要求された情報および妥当性検査指標(たとえば、証明)を含む応答を受信し、妥当性検査指標に基づいて、応答が有効かどうかを決定する。クライアントは、応答が有効であるという決定に応答して、IoTデバイス、ウェブアプリ、モバイルアプリ、または他のアプリケーションに確認を送信する。
【特許請求の範囲】
【請求項1】
ブロックチェーンネットワークと同期されていないクライアントにおいて、トランザクション要求を受信するステップであって、前記クライアントが、モノのインターネット(IoT)デバイスによって実行される、ステップと、
前記クライアントによって、ノードのレジスタにアクセスするステップであって、前記ノードは、それぞれ前記ブロックチェーンネットワークと同期されている、ステップと、
前記クライアントによって、前記レジスタからノードを選択するステップと、
前記クライアントから前記ノードに、前記ブロックチェーンネットワーク上で前記トランザクション要求を処理するようにとのブロックチェーン要求を送信するステップと、
前記クライアントによって、前記ブロックチェーン要求への応答を受信するステップであって、前記応答は妥当性検査指標を含む、ステップと、
前記クライアントによって、前記妥当性検査指標に基づいて、前記応答が有効であるかどうかを検証するステップと、
前記クライアントによって、前記応答が有効であるという決定に応答して、前記トランザクション要求に対応するトランザクションを妥当性検査するように前記IoTデバイスに指示するステップと
を備える方法。
【請求項2】
前記クライアントによって、前記レジスタから前記ノードを選択するステップは、
前記クライアントによって、前記レジスタから候補ノードをランダムに識別するステップと、
前記クライアントによって、前記候補ノードが前記クライアントによって送信された最後のブロックチェーン要求を処理したかどうかを決定するステップと、
前記候補ノードが前記クライアントによって送信された前記最後のブロックチェーン要求を処理したという決定に応答して、
前記クライアントによって、前記レジスタから異なる候補ノードをランダムに識別するステップと、
前記クライアントによって、前記ノードとして前記異なる候補ノードを選択するステップと、
前記候補ノードが前記クライアントによって送信された前記最後のブロックチェーン要求を処理しなかったという決定に応答して、前記候補ノードを前記ノードとして選択するステップと、
を備える請求項1に記載の方法。
【請求項3】
前記妥当性検査指標は追加ノードからの署名されたブロックハッシュを備え、前記クライアントによって、前記妥当性検査指標に基づいて、前記応答が有効であるかどうかを検証するステップは、前記クライアントによって、前記ノードによる前記処理を補強する前記追加ノードからの前記署名されたブロックハッシュに基づいて前記応答が有効であることを決定するステップを備える請求項1に記載の方法。
【請求項4】
前記妥当性検査指標は証明を備え、前記クライアントによって、前記妥当性検査指標に基づいて、前記応答が有効であるかどうかを検証するステップは、
前記証明を通じてデータを供給することによって証明結果を決定するステップと、
前記証明結果が前記応答に示された結果と一致するかどうかを決定するステップと、
前記証明結果が前記応答に示された前記結果と一致するという決定に応答して、前記応答が有効であると決定するステップと
を備える請求項1に記載の方法。
【請求項5】
前記ノードは、前記ノードの動作時に追加ノードに署名を要求し、前記追加ノードは、前記追加ノードからの前記署名が無効であると決定し、前記ノードは、妥当性検査ノードの前記レジスタから前記追加ノードが削除されるように応答的に要求する請求項1に記載の方法。
【請求項6】
前記クライアントによって、前記応答が有効であるという検証にさらに応答して、前記クライアントのノードのローカルレジスタへのスコア増加更新を処理するステップをさらに備える請求項1に記載の方法。
【請求項7】
前記クライアントによって、前記レジスタから前記ノードを選択する前記ステップは、
前記ローカルレジスタの各候補ノードに、それらのスコアに基づいて重み付けするステップと、
各候補ノードの前記重みに基づいてバイアスがかけられたランダム選択によって前記ノードを選択するステップと
を備える請求項6に記載の方法。
【請求項8】
コンピュータプログラム命令を実行するためのプロセッサと、
ブロックチェーンネットワークと同期されていないクライアントを動作させるために前記プロセッサによって実行可能な記憶されたコンピュータプログラム命令を備える非一時的コンピュータ可読ストレージ媒体とを備え、前記命令が、実行されると、前記プロセッサに、
ブロックチェーンネットワークと同期されていないクライアントにおいて、トランザクション要求を受信することであって、前記クライアントが、モノのインターネット(IoT)デバイスによって実行される、ことと、
前記クライアントによって、ノードのレジスタにアクセスすることであって、前記ノードは、それぞれ前記ブロックチェーンネットワークと同期されている、ことと、
前記クライアントによって、前記レジスタからノードを選択することと、
前記クライアントから前記ノードに、前記ブロックチェーンネットワーク上で前記トランザクション要求を処理するようにとのブロックチェーン要求を送信することと、
前記クライアントによって、前記ブロックチェーン要求への応答を受信することであって、前記応答は妥当性検査指標を含む、ことと、
前記クライアントによって、前記妥当性検査指標に基づいて、前記応答が有効であるかどうかを検証することと、
前記クライアントによって、前記応答が有効であるという決定に応答して、前記トランザクション要求に対応するトランザクションを妥当性検査するように前記IoTデバイスに指示することと
を行わせる、システム。
【請求項9】
前記クライアントによって、前記レジスタから前記ノードを選択するための前記命令は、
前記クライアントによって、前記レジスタから候補ノードをランダムに識別することと、
前記クライアントによって、前記候補ノードが前記クライアントによって送信された最後のブロックチェーン要求を処理したかどうかを決定することと、
前記候補ノードが前記クライアントによって送信された前記最後のブロックチェーン要求を処理したという決定に応答して、
前記クライアントによって、前記レジスタから異なる候補ノードをランダムに識別することと、
前記クライアントによって、前記ノードとして前記異なる候補ノードを選択することと、
前記候補ノードが前記クライアントによって送信された前記最後のブロックチェーン要求を処理しなかったという決定に応答して、前記候補ノードを前記ノードとして選択することと、
を行うための命令をさらに備える請求項8に記載のシステム。
【請求項10】
前記妥当性検査指標は追加ノードからの署名されたブロックハッシュを備え、前記クライアントによって、前記妥当性検査指標に基づいて、前記応答が有効であるかどうかを検証することは、前記クライアントによって、前記ノードによる前記処理を補強する前記追加ノードからの前記署名されたブロックハッシュに基づいて前記応答が有効であることを決定することを備える請求項8に記載のシステム。
【請求項11】
前記妥当性検査指標は証明を備え、前記クライアントによって、前記妥当性検査指標に基づいて、前記応答が有効であるかどうかを決定するための前記命令は、
前記証明を通じてデータを供給することによって証明結果を決定することと、
前記証明結果が前記応答に示された結果と一致するかどうかを決定することと、
前記証明結果が前記応答に示された前記結果と一致するという決定に応答して、前記応答が有効であると決定することと
を行うための命令をさらに備える請求項8に記載のシステム。
【請求項12】
前記ノードは、前記ノードの動作時に追加ノードに署名を要求し、前記追加ノードは、前記追加ノードからの前記署名が無効であると決定し、前記ノードは、妥当性検査ノードの前記レジスタから前記追加ノードが削除されるように応答的に要求する請求項8に記載のシステム。
【請求項13】
前記動作は、さらに、前記クライアントによって、前記応答が有効であるという検証にさらに応答して、前記クライアントのノードのローカルレジスタへのスコア増加更新を処理することをさらに備える請求項8に記載のシステム。
【請求項14】
前記クライアントによって、前記レジスタから前記ノードを選択するための前記命令は、
前記ローカルレジスタの各候補ノードに、それらのスコアに基づいて重み付けすることと、
各候補ノードの前記重みに基づいてバイアスがかけられたランダム選択によって前記ノードを選択することと
を行うための命令を備える請求項13に記載のシステム。
【請求項15】
記憶された命令を備える非一時的コンピュータ可読媒体であって、前記命令はプロセッサによって実行されると、前記プロセッサに、ブロックチェーンネットワークと同期されていないクライアントを、
ブロックチェーンネットワークと同期されていないクライアントにおいて、トランザクション要求を受信することであって、前記クライアントが、モノのインターネット(IoT)デバイスによって実行される、ことと、
前記クライアントによって、ノードのレジスタにアクセスすることであって、前記ノードは、それぞれ前記ブロックチェーンネットワークと同期されている、ことと、
前記クライアントによって、前記レジスタからノードを選択することと、
前記クライアントから前記ノードに、前記ブロックチェーンネットワーク上で前記トランザクション要求を処理するようにとのブロックチェーン要求を送信することと、
前記クライアントによって、前記ブロックチェーン要求への応答を受信することであって、前記応答は妥当性検査指標を含む、ことと、
前記クライアントによって、前記妥当性検査指標に基づいて、前記応答が有効であるかどうかを検証することと、
前記クライアントによって、前記応答が有効であるという決定に応答して、前記トランザクション要求に対応するトランザクションを妥当性検査するように前記IoTデバイスに指示することと
を行うように動作させる非一時的コンピュータ可読媒体。
【請求項16】
前記クライアントによって、前記レジスタから前記妥当性検査ノードを選択するための前記命令は、
前記クライアントによって、前記レジスタから候補ノードをランダムに識別することと、
前記クライアントによって、前記候補ノードが前記クライアントによって送信された最後のブロックチェーン要求を処理したかどうかを決定することと、
前記候補ノードが前記クライアントによって送信された前記最後のブロックチェーン要求を処理したという決定に応答して、
前記クライアントによって、前記レジスタから異なる候補ノードをランダムに識別することと、
前記クライアントによって、前記ノードとして前記異なる候補ノードを選択することと、
前記候補ノードが前記クライアントによって送信された前記最後のブロックチェーン要求を処理しなかったという決定に応答して、前記候補ノードを前記ノードとして選択することと、
を行うための命令を備える請求項15に記載の非一時的コンピュータ可読媒体。
【請求項17】
前記妥当性検査指標は追加ノードからの署名されたブロックハッシュを備え、前記クライアントによって、前記妥当性検査指標に基づいて、前記応答が有効であるかどうかを検証することは、前記クライアントによって、前記ノードによる前記処理を補強する前記追加ノードからの前記署名されたブロックハッシュに基づいて前記応答が有効であることを決定することを備える請求項15に記載の非一時的コンピュータ可読媒体。
【請求項18】
前記妥当性検査指標は証明を備え、前記クライアントによって、前記妥当性検査指標に基づいて、前記応答が有効であるかどうかを決定するための前記命令は、
前記証明を通じてデータを供給することによって証明結果を決定することと、
前記証明結果が前記応答に示された結果と一致するかどうかを決定することと、
前記証明結果が前記応答に示された前記結果と一致するという決定に応答して、前記応答が有効であると決定することと
を行うための命令をさらに備える請求項15に記載の非一時的コンピュータ可読媒体。
【請求項19】
前記ノードは、前記ノードの動作時に追加ノードに署名を要求し、前記追加ノードは、前記追加ノードからの前記署名が無効であると決定し、前記ノードは、妥当性検査ノードの前記レジスタから前記追加ノードが削除されるように応答的に要求する請求項15に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記命令は、さらに、前記クライアントによって、前記応答が有効であるという検証にさらに応答して、前記クライアントのノードのローカルレジスタへのスコア増加更新を送信するための命令をさらに備え、前記クライアントによって、前記レジスタから前記ノードを選択するための前記命令は、
各候補ノードに、それらのスコアに基づいて重み付けすることと、
各候補ノードの前記重みに基づいてバイアスがかけられたランダム選択によって前記ノードを選択することと
を行うための命令を備える請求項15に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、モノのインターネット(IoT)デバイスなどの軽量デバイスの分野に関し、より詳細には、ブロックチェーン技術の分散化され、トラストレスな側面に妥協することのない、軽量デバイスのブロックチェーン相互作用のリモート処理に関する。本開示は、ウェブアプリおよびモバイルアプリなどのアプリケーションの文脈における同様の処理に関する。
【背景技術】
【0002】
関連出願の相互参照
本出願は、2018年4月16日に出願された米国特許仮出願第62/658,496号の利益を主張し、その開示は、参照によりその全体が本明細書に組み込まれる。
【0003】
IoTデバイスなどの、低処理能力、低帯域幅容量(たとえば、インターネットへの接続が制限されている)、および/または低電力容量(本明細書では総称して「軽量デバイス」と呼ぶ)のデバイスの展開は、どこにでも存在するようになっている。軽量デバイスの処理、帯域幅、および/または電力制約により、これらの軽量デバイスのブロックチェーン相互作用を処理および妥当性検査するには、関連技術の実装形態において何らかの形の妥協が必要である。たとえば、ブロックチェーンまたは他のDLT(分散型台帳技術)ネットワークと相互作用するための多くの関連技術の実装形態では、ブロックチェーンまたはDLTネットワークと相互作用しようとしているデバイスにクライアントがインストールされる必要がある。いくつかのデバイスには容量の制約があることを認識し、関連技術システムは、それらのクライアントのプルーニングバージョンと軽量バージョンを開発した(たとえば、データ容量要件を200GBから40GB、さらには50MBに削減する)。
【発明の概要】
【0004】
しかしながら、軽量デバイスには、ブロックチェーンまたはDLTの相互作用を促進するためのクライアントの最も軽量なバージョンでさえ処理する能力がないシナリオがある。そのようなシナリオでは、関連技術システムは、サーバにおいてリモートでインストールされたクライアント(本明細書では「リモートクライアント」と呼ぶ)を使用してブロックチェーンの相互作用を促進する。しかしながら、リモートクライアントの実装形態は、特定の中央サーバを信頼するためにリモートクライアントと相互作用する軽量デバイスが必要であるため、ブロックチェーンまたはDLTの相互作用の中心的な信条に妥協し、ブロックチェーンまたはDLTの使用を普及させてきた分散化の側面を阻むものになる。さらに、リモートクライアントの実装形態により、単一障害点が形成され、リモートクライアントをホストしているサーバに障害が発生すると、ブロックチェーンまたはDLTの相互作用を処理するためにリモートクライアントに依存する軽量デバイスは、相互作用を処理できなくなる。
【図面の簡単な説明】
【0005】
開示された実施形態は、発明を実施するための形態、添付の特許請求の範囲、および添付の図(または図面)からより容易に明らかになる他の利点および特徴を有する。図の簡単な紹介は以下の通りである。
図1】軽量デバイスまたはアプリケーションによってブロックチェーン相互作用を促進するためのトラストレスステートレスリモートクライアントを実装するシステムの一実施形態を示す図である。
図2】マシン可読媒体から命令を読み取り、それらをプロセッサ(または、コントローラ)において実行することができる例示的なマシンの構成要素を示すブロック図である。
図3】本開示のいくつかの実施形態による、トラストレスでステートレスなリモートクライアントによるブロックチェーントランザクションを妥当性検査するためのデータフロー図である。
図4】本開示のいくつかの実施形態による、IoTデバイスのブロックチェーントランザクションを妥当性検査するためのフローチャートである。
【発明を実施するための形態】
【0006】
図面および以下の説明は、例示としてのみ好ましい実施形態に関する。以下の議論から、本明細書に開示される構造および方法の代替的実施形態は、主張されるものの原理から逸脱することなしに採用され得る実行可能な代替として容易に認識される点に留意されたい。
【0007】
ここで、いくつかの実施形態を詳細に参照し、その例を添付の図面に示す。実行可能な場合はいつでも、類似または同様の参照番号が図面において使用され得、類似または同様の機能を示し得る点に留意されたい。これらの図面は、例示のみを目的として、開示されたシステム(または、方法)の実施形態を示している。当業者は、以下の説明から、本明細書に記載の原理から逸脱することなしに、本明細書に例示される構造および方法の代替的実施形態が採用され得ることを容易に認識するであろう。
【0008】
構成の概要
分散型台帳の相互作用の分散型、トラストレスおよびステートレスの利点を維持しながら、分散型台帳の相互作用を処理するために、IoTデバイスなどの軽量デバイスによるリモートクライアントの使用を可能にする、開示されたシステム、方法、およびコンピュータ可読ストレージ媒体の一実施形態が開示される。この目的のために、クライアント(たとえば、以下に説明するような最小限の検証クライアント)が軽量デバイス内にインストールされ得る。クライアントが分散型台帳ネットワークと同期されておらず、モノのインターネット(IoT)デバイスからトランザクション要求を受信する可能性がある。クライアントは、各ノードが分散型台帳ネットワークと同期されているノードのレジスタ(情報プロバイダおよび/またはバリデータとして作動する)を検索し、レジスタから情報プロバイダノードを選択する。クライアントは、分散型台帳ネットワーク上で情報(トランザクション情報、アカウントからの情報、スマートコントラクトなど)の要求を送信し、要求に対する応答であって、情報自体と妥当性検査指標(たとえば、署名されたブロックハッシュ、証明(たとえば、マークル証明)など)を含む応答を受信する。クライアントは、妥当性検査指標に基づいて応答が有効かどうかを決定し、応答が有効であるという決定に応答して、IoTデバイスに確認を送信する。分散型台帳の一例はブロックチェーンである。議論を容易にするために、本明細書に開示される実施形態は、ブロックチェーンの文脈にある。しかしながら、本明細書に開示される原理は、他の形態の電子分散型台帳に適用され得る点に留意されたい。本明細書に開示されるシステムおよび方法は、アプリケーションとしてIoTを使用して説明されているが、同じメカニズムが、特にリソースが制限されているウェブアプリ、モバイルアプリ、および他のソフトウェアにも適用される。
【0009】
システムアーキテクチャ
図1は、軽量デバイスによってブロックチェーン相互作用を促進するためのトラストレスステートレスリモートクライアントを実装するシステムの一実施形態を示している。システム100は、IoTデバイス110、クライアント130、1つまたは複数のノード140、およびレジストリ150を含む。本システムはまた、IoTデバイス110(およびIoTデバイス110によって実行されるクライアント130)が通過するネットワーク120、およびノード140を含む。1つのIoTデバイス110のみが示されているが、これは単に便宜のためであり、任意の数のIoTデバイスがシステム100内にあり得る。さらに、「IoTデバイス」という用語の使用も便宜のために使用されており、本明細書に記載されるような任意の軽量デバイスまたはアプリケーションは、IoTデバイスまたはIoTデバイス110という用語が言及されている場合はいつでも使用され得る。上述のように、IoTという用語は「モノのインターネット」の略であり、従来はインターネットに接続されていなかったデバイスを含む、インターネット対応のデバイスを指すために使用される分野の用語である(たとえば、インターネット接続を備えた自転車ロックなど)。IoTデバイスは、インターネットに直接接続されていない場合があり、インターネットに間接的にアクセスするように構成されている場合(たとえば、インターネットに直接接続されている別のデバイスとの短距離通信を介して)、依然としてIoTデバイスであり得る。従来のコンピューティングデバイスとは異なり、IoTデバイス(および、一般的に軽量デバイス)は通常、処理能力、メモリ、ストレージ容量、および接続帯域幅を含む、処理リソースおよび能力が非常に限られている。したがって、それらの機能的能力はかなり制限されている。
【0010】
ある実施形態では、IoTデバイス110は、IoTデバイス110が、ピアツーピアブロックチェーンネットワークのメンバーとしてブロックチェーン相互作用を実行し、完全に検証するために(上述のような)ローカルのフルまたは軽量クライアントを実行することを妨げる、上述のような制約を有する軽量デバイスである。本明細書で使用されるブロックチェーン相互作用という用語は、一般的なブロックチェーン情報の獲得、アカウントとの相互作用、またはブロックチェーンスマートコントラクトの使用によって記念されるブロックチェーントランザクションを指す場合がある。ブロックチェーン相互作用が処理される方法は、図3に関して以下でさらに詳細に説明される。ネットワークに同期されることによってブロックチェーン相互作用を完全に処理することができるIoTデバイス110上のローカルのフルまたは軽量クライアントの欠如を考えると、IoTデバイス110のクライアント130は、ブロックチェーン相互作用を実行するためにネットワーク120を通じて要求を送信する。クライアント130は、ブロックチェーンネットワークと同期されていないクライアントである。ネットワーク120は、図2に関して以下でさらに詳細に説明される。
【0011】
クライアント130は、トランザクションに関するノードからの応答を妥当性検査する。応答を取得するために、クライアント130は、要求を処理するためにノード140のノードを選択し、ノード140は、ブロックチェーンネットワークと同期される。選択されたノードが要求を処理する方法は、図3および図4に関して以下でさらに詳細に説明される。以下でさらに詳細に説明するように、ノードは、相互作用を処理するときに、ノード140の他のノードからのさらなる妥当性検査を要求し得る。
【0012】
クライアント130は、IoTデバイス110のストレージからノード140のリストを検索することによって、ノード140のどれがブロックチェーン相互作用を処理するかを選択し得、そこからクライアント130は、ランダムまたは疑似ランダムにノードを選択し得る。最初に、クライアント130は、デフォルトのノードのセットに接触するように構成され得、デフォルトのノードのセットのノードから、ノードの最新のレジスタを要求し得る。ノードは、レジストリ150からノード140の最新のレジスタを検索し、最新のレジスタをクライアント130に送信し得る。レジストリ150は、ノード140をカタログ化するブロックチェーン上のスマートコントラクトである。ノード140は、レジストリ150にサブスクライブする要求をレジストリ150に送信するノード140に基づいて、レジストリ150内にリストされ得る。クライアント130がノード140のどれがブロックチェーン相互作用を処理するかを選択する方法は、図3および図4に関して以下でさらに詳細に説明される。3つのノード、ノード140A、ノード140B、およびノード140Cは、ノード140を形成するものとして示されているが、任意の数のノードがノード140を形成し得る。
【0013】
コンピューティングマシンアーキテクチャ
図2は、マシン可読媒体から命令を読み取り、それらをプロセッサ(または、コントローラ)において実行することができる例示的なマシンの構成要素を示すブロック図である。具体的には、図2は、本明細書で論じられる方法論のうちの任意の1つまたは複数をマシンに実行させるためのプログラムコード(たとえば、ソフトウェア)が実行され得るコンピュータシステム200の例示的な形態のマシンの概略図を示している。コンピュータシステム200の構成要素のうちのいくつかまたはすべては、本明細書で論じられるように、IoTデバイス110あるいは他の軽量デバイスまたはアプリケーションのコンピュータシステムを代表し得る。しかしながら、前述のように、そのような構成要素は、より堅牢なコンピューティングシステムに関して限られた容量しか提供しない場合がある。コンピュータシステム200の構成要素のうちのいくつかまたはすべてはまた、クライアント130を実行するコンピューティングデバイス、レジストリ150をホストするコンピューティングデバイス、およびノード140のいずれかを実行するコンピューティングデバイスを表し得る。プログラムコードは、1つまたは複数のプロセッサ202によって実行可能な命令224から構成され得る。IoTデバイス110および他の軽量デバイスは、単純なプロセッサまたはコントローラを有し得るが、クライアントデバイス130は、スマートフォンまたはパーソナルコンピュータ(PC)にしばしば見られる従来のコンピュータプロセッサを有するメイ点に留意されたい。代替的実施形態では、マシンは、スタンドアロンデバイスとして動作するか、または他のマシンに接続(たとえば、ネットワーク化)され得る。ネットワーク展開において、マシンは、サーバ−クライアントネットワーク環境においてサーバマシンまたはクライアントマシンの容量で動作してもよく、あるいはピアツーピア(または、分散)ネットワーク環境においてピアマシンとして動作してもよい。
【0014】
クライアント130またはレジストリ150を実行するシステムなどの複雑なコンピューティングシステムの場合、マシンは、たとえば、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、セルラー電話、スマートフォン、ウェブアプライアンス、ネットワークルータ、スイッチ、またはブリッジであり得る。IoTデバイス(または、他の軽量デバイス)は、ドアベル、サーモスタット、冷蔵庫、自転車ロックなどであり得る。いずれのマシンも、そのマシンによって実行されるべきアクションを指定する命令224(順次またはその他)を実行することが可能であり得る。さらに、単一のマシンのみが示されているが、「マシン(machine)」という用語はまた、本明細書で論じられる方法論のうちの任意の1つまたは複数を実行するために命令124を個別にまたは共同で実行するマシンの任意の集合を含むと解釈されるべきである。
【0015】
例示的なコンピュータシステム200は、バス208を介して互いに通信するように構成された、プロセッサ202(たとえば、中央処理装置(CPU)、グラフィックス処理装置(GPU)、デジタル信号プロセッサ(DSP)、1つまたは複数の特定用途向け集積回路(ASIC)、1つまたは複数の無線周波数集積回路(RFIC)、および/またはこれらの任意の組合せ)、メインメモリ204、およびスタティックメモリ206を含む。コンピュータシステム200は、視覚的表示インターフェース210をさらに含み得る。IoTデバイス110などの軽量デバイスは、専用機能を実行する能力が限られている可能性があるため、上述のように、これらの構成要素のいくつかを除外し得る。IoTデバイス110のクライアント130は、最小限の検証クライアントであり得る。
【0016】
本明細書で使用される最小限の検証クライアントという用語は、ピアツーピアネットワーク(たとえば、ブロックチェーンネットワーク)の一部ではないが、それにもかかわらず、分散型の方法で(たとえば、RPCインターフェースを使用して)、ブロックチェーンまたはDLTの情報を獲得するように構成されているブロックチェーンまたはDLTクライアントを指す場合がある。最小限の検証クライアントは、ブロックチェーンの状態に関する情報を記憶しない。最小限の検証クライアントは、ブロックチェーンまたはDLTからのデータを(1)検証する、および(2)妥当性検査するように構成されている。
【0017】
検証を実行するために、最小限の検証クライアントは、(たとえば、この情報のマークル証明を使用して)返された情報が配信されたブロックに属していることを評価および確認するためにクライアントが使用できる付随する証明などの妥当性検査指標を使用する。妥当性検査を実行するために、最小限の検証クライアントは、他のノード(バリデータ)(たとえば、ノード140)からこの情報を要求することによって、配信されたブロックがブロックチェーンまたはDLTに属することをそれ自体で妥当性検査するように構成される。これらの特性により、最小限の検証クライアントはブロックチェーンに依存せず、複数のブロックチェーン、DLT、およびそのような証明と妥当性検査情報を提供することができる他の任意のデータサービスと相互作用し得る。
【0018】
視覚的インターフェースは、画面(または、ディスプレイ)上にユーザインターフェースを表示することを可能にするソフトウェアドライバを含み得る。視覚的インターフェースは、ユーザインターフェースを直接(たとえば、画面上に)または間接的に(たとえば、視覚的投影ユニットを介して)表面、窓などに表示し得る。議論を容易にするために、視覚的インターフェースは画面として説明され得る。視覚的インターフェース210は、タッチ対応画面を含み得るか、またはそれとインターフェースし得る。コンピュータシステム200はまた、やはりバス208を介して通信するように構成された、英数字入力デバイス212(たとえば、キーボードまたはタッチスクリーンキーボード)、カーソル制御デバイス214(たとえば、マウス、トラックボール、ジョイスティック、モーションセンサ、または他のポインティング機器)、ストレージユニット216、信号生成デバイス218(たとえば、スピーカ)、およびネットワークインターフェースデバイス220を含み得る。
【0019】
ストレージユニット216は、本明細書に記載の方法論または機能のうちの任意の1つまたは複数を具体化する命令224(たとえば、ソフトウェア)が記憶されているマシン可読媒体222を含む。命令224(たとえば、ソフトウェア)はまた、コンピュータシステム200によるそれの実行中に、完全にまたは少なくとも部分的に、メインメモリ204内またはプロセッサ202内(たとえば、プロセッサのキャッシュメモリ内)に存在し得、メインメモリ204およびプロセッサ202はまた、マシン可読媒体を構成する。IoTデバイス110などの軽量デバイスの場合、ストレージは専用機能を実行するために必要なものに制限される場合がある。命令224(たとえば、ソフトウェア)は、ネットワークインターフェースデバイス220を介して、ネットワーク226(たとえば、インターネット、ローカルエリアネットワーク、短距離ネットワーク、または任意の他の通信ネットワークなどのブロードバンドネットワーク)を介して送信または受信され得る。
【0020】
例示的な実施形態では、マシン可読媒体222は単一媒体であると示されているが、「マシン可読媒体(machine−readable medium)」という用語は、命令(たとえば、命令224)を記憶することができる単一の媒体または複数の媒体(たとえば、集中型もしくは分散型データベース、または関連付けられるキャッシュおよびサーバ)を含むと解釈されるべきである。「マシン可読媒体」という用語はまた、マシンによって実行するための命令(たとえば、命令224)を記憶することができ、マシンに本明細書に開示される方法論のうちの任意の1つまたは複数を実行させる任意の媒体を含むと解釈されるべきである。「マシン可読媒体」という用語は、固体メモリ、光学媒体、および磁気媒体の形態のデータリポジトリを含むが、これらに限定されない。
【0021】
例示的なブロックチェーン相互作用処理
図3は、本開示のいくつかの例示的実施形態による、最小限の検証クライアントによるブロックチェーントランザクションを妥当性検査するためのデータフロー図である。図示された通信は、示されたマシン(たとえば、IoTデバイス110および1つまたは複数のノード140)との間のネットワーク(たとえば、ネットワーク120)を通じて発生し得る。図3に示されるように、クライアント(たとえば、クライアント130)は、ノードリストにアクセスし(たとえば、ノードリスト要求にアクセスすること(301)を介して、(たとえば、IoTデバイス110の)メモリにノードリストを返させる(302)。要求301は、ブロックチェーン相互作用を処理する要求を受信したIoTデバイス110に基づいてトリガされ得る。たとえば、IoTデバイス110は、公衆によって(たとえば、小額の料金の支払いと引き換えに)アクセスされ得る(または、そのデータセットがアクセスされ得る)大気質を記述する環境センサであり得る。誰かがデータを要求していることを検出することに応答して、IoTデバイス110のクライアント130は、ブロックチェーン相互作用を処理するためのノードリストを検索するようにトリガされ得る。
【0022】
別の例として、IoTデバイス110は、自転車の共有を可能にするスマート自転車ロックであり得る。自転車ロックの制御ユニットの計算能力は、ロックの制御に制限される場合があり、したがって、エネルギーを節約するために必要な場合にのみ実行される。そのようなロックは、自転車ロックのロックを解除するためのブロックチェーン相互作用を処理する能力を持たず、したがって、たとえば、ロック上で実行される最小限の検証クライアントを使用してトランザクション要求301を送信し、これにより、インターネット接続で限られた帯域幅しか使用できない場合でも、クライアント130を介して必要な時間にブロックチェーンへの安全な接続が確立されることができる。
【0023】
クライアント130は、トランザクション要求を処理するためにノードのリストからノード140のノードを選択し続ける。選択は、本質的にランダムまたは疑似ランダムである。ノードのリストからノード(たとえば、ノード140B)を選択した後、クライアント130は、クライアント130が最後に選択したノード、またはいくつかのノードをチェックし得る。選択されたノードが最後に選択されたノード、または最近選択されたノード(たとえば、選択された最後の10個のノードのうちの1つ)と一致する場合、クライアント130は選択されたノードの使用を控え、代わりに別のノードを選択する。ある実施形態では、クライアント130は、トランザクション要求を処理するために、ノードのリストからノード140の複数のノードを選択する。たとえば、ノードからの無効な応答の取得をヘッジするために、クライアント130は複数のノードを選択し得、応答が一致するかどうかを決定するためにそれらのノードからの複数の応答を評価し得る。したがって、ノード140Bの選択のみが図3に示されているが、並列処理を実行する複数のノード(ノードAおよびCのいずれかを含む)は、本開示の範囲内である。
【0024】
ノード140のノードを選択すると、クライアント130は、要求(たとえば、リモートプロシージャコール(RPC)要求、JSON−RPC要求、または任意の他の構造要求)をそのノードに送信する。たとえば、図3に示されるように、クライアント130はノード140Bを選択し、RPC要求303をノード140Bに送信する。ある実施形態では、RPC要求303を受信すると、ノード140Bは、ブロックチェーントランザクションを処理し(たとえば、トランザクションを反映するようにブロックチェーンを更新することによって)、RPC応答309をクライアント130に送信する。ブロックチェーントランザクション要求は、トランザクションを検証するためのRPC要求として本明細書で一般的に説明されているが、本明細書で説明するブロックチェーントランザクション要求は、スマートコントラクトにおける関数呼出しの検証結果を返す要求、あるいはアカウントの残高またはブロックチェーンに記憶されている任意の他のタイプのデータの単純な要求など、他の目的のためでもあり得る。クライアント130は、RPC応答309を受信し、RPC応答309を検証する。クライアント130は、RPC応答309の内容に基づいて、RPC応答309をそれ自体で検証することができる。ある実施形態では、RPC応答309は証明を含む。クライアント130は、結果(「結果の証明」)を取得するために証明を解決し、その結果をRPC応答309において示される結果と比較する。クライアント130は、証明の結果がRPC応答309において示される結果と一致するという決定に応答して、RPC応答309が有効な結果を含むと決定し、したがって、検証時にトランザクションを妥当性検査する。ある実施形態では、RPC応答309は、ブロックヘッダを含む。クライアント130は、ブロックチェーン台帳を参照し、トランザクションを妥当性検査するために、ブロックヘッダを使用する。
【0025】
RPC応答309はまた、ノード140の1つまたは複数の他のノードからの、証明の結果を比較するために使用されることができる署名されたブロックハッシュまたは任意の他の検証されたデータなどの署名を含み得る。たとえば、RPC要求303は、有効な応答を受信する可能性を改善するために、ノード140Bがノード140の他の1つまたは複数のノードでその結果を妥当性検査することを要求し得る。したがって、RPC応答309をクライアント130に送信する前に、ノード140Bは、ノード140Aからの署名を要求し得(304)、および/またはノード140Cからの署名の要求を送信し得る(305)。ノード140Cは、RPC応答309に含めるために、戻り署名(306)をノード140Bに送信し得る。同様に、ノード140Aは、RPC応答309に含めるために、戻り署名(307)をノード140Bに送信し得る。ノード140Aおよび140Cからの戻り署名は、署名されたブロックハッシュ、またはクライアント130が妥当性検査指標を確認するために必要な任意の他のデータ(たとえば、証明データ)を含み得る。ある実施形態では、戻り署名を受信すると、ノード140Bは、署名されたブロックハッシュが有効であるかどうかを妥当性検査する。署名されたブロックハッシュ(たとえば、306または307において受信されたもの)が無効である場合、ノード140Bは不正をレジストリ150に報告し得(308)、レジストリ150は問題のあるノードをレジストリ150から削除するなどの是正措置を講じ得る(上と下で説明されているように)。
【0026】
クライアント130は、RPC応答を検証し得(310)、検証が成功した場合、クライアント130は、RPC応答内で受信されたノード140Bからの結果を妥当性検査し得る(たとえば、上記の証明の解決に基づいて、ブロックヘッダを利用して、あるいは1つまたは複数の追加ノードからの署名されたブロックハッシュから派生した1つまたは複数のブロックヘッダに基づいて)。ノード140Bからの結果の妥当性検査に応答して、クライアントデバイス130は、トランザクションの正常な処理を確認し得、結果として生じるアクション(たとえば、スマート自転車ロックのロック解除、または要求しているユーザへのセンサ情報の送信)を行うようにIoTデバイス110に信号を送ることができる。RPC応答が無効であるという決定に応答して、クライアント130は不正をレジストリ150に報告し得(311)(たとえば、ノード140Bに報告するためにノード140Aに要求を送信することによって)、レジストリ150は是正措置(たとえば、レジストリからのノードBの削除)をとり得る。
【0027】
ウォッチドッグの実装形態
開示された実施形態は、ノード140のノードが不正にまたは悪意を持って作動するのを防ぐウォッチドッグ実装形態を有益に可能にする。ウォッチドッグ実装形態は、不正または悪意のある活動などの不正行為がレジストリ150に報告されたときに、ノード140のノードをレジストリ150から削除する。ある実施形態では、不正行為は、ノード自体(仮想ウォッチドッグ)によって、または他のノードの行為をチェックするために実行されている特別なノード(ウォッチドッグノード)によって検出および報告される。たとえば、RPC応答309の受信に応答して、クライアント130は、(たとえば、証明またはブロックヘッダに基づいて)ノード140Bから受信された結果が不正確であると決定し得る。ウォッチドッグとして作動するノードは、不正行為を報告するために、代わりに、通信をレジストリ150に送信し得る(310−2)。レジストリ150は、将来のトランザクションを処理するためにクライアント130(または、任意の他のクライアント)によって使用されるノード140のリストからノード140Bを応答的に削除し得る。
【0028】
あるいは、クライアント130は、(ノードを介して)レジストリに不正を報告する(311)ことを控えながら、ノード140Bをブラックリストに載せることができる。たとえば、クライアント130は、「使用しない」フラグに関連してノード140Bのアイデンティティをデータ構造に記憶し得、RPC要求303を処理するためにノードが選択されると、クライアント130は、「使用しない」フラグが存在するかどうかを決定するために、それらのノードをブラックリストに対してダブルチェックし、これは別のノードの選択を促す。さらに別の代替案として、クライアント130は、ノード140Bから受信した結果が不正確であると決定すると、不正確な結果を文書化し得る(たとえば、ノード140Bからの不正確な結果に対応するカウンタをインクリメントすることによって、あるいは、ノード140Bからの不正確な結果の頻度および/または最新性を反映する何らかの他の関数を操作することによって)。クライアントは、ノード140Bからの不正確な結果のしきい値量またはしきい値頻度が検出された場合、不正をブラックリストに載せるか、または報告し得る。このそれほど厳しくない実装形態が使用され得る理由は、ノードが意図せずに一貫性のない応答を提供する可能性があるためである(たとえば、ノードが現在のブロックとまだ同期していない、またはマイクロフォーク上で実行されているシナリオにおいて)。
【0029】
さらに、クライアント130と同様に、ノード140自体は、ブラックリスト(または、同様のもの)を維持し得る。たとえば、ノード140Bは、「使用しない」フラグに関連してノード140Aのアイデンティティをデータ構造に記憶し得、結果に署名するためにノードが選択されると、ノード140Bは、「使用しない」フラグが存在するかどうかを決定するためにそれらのノードをブラックリストに対してダブルチェックし、これは別のノードの選択を促す。さらに別の代替案として、ノード140B(または、任意の他のノード)は、たとえば、ノード140Cから受信した署名が不正確であると決定すると、不正確な結果を文書化し得る(たとえば、ノード140Cからの不正確な結果に対応するカウンタをインクリメントすることによって、あるいは、ノード140Cからの不正確な結果の頻度および/または最新性を反映する何らかの他の関数を操作することによって)。ノードは、ノード140Cからの不正確な結果のしきい値量またはしきい値頻度が検出された場合、不正をブラックリストに載せるか、または報告し得る。このそれほど厳しくない実装形態が使用され得る理由は、ノードが意図せずに一貫性のない応答を提供する可能性があるためである(たとえば、ノードが現在のブロックとまだ同期していない、またはマイクロフォーク上で実行されているシナリオにおいて)。
【0030】
ある実施形態では、ノード140のノードのである不正行為は、別のノードによって報告される。たとえば、上述のように、ノード140Bは、要求をノード140Aに送信し得(304)、ノード140Aは、応答的に署名をノード140Bに返し得る(307)。署名が無効であるという決定に応答して、ノード140Bは、通信をレジストリ150に送信し得る(308)。レジストリ150は、クライアントによる要求を妥当性検査するために選択されることができるノード140のリストからノード140Aへの参照を応答的に削除してもよく、あるいは上述したものと同様の他の是正措置をとってもよい(たとえば、ノード140Aに対応するカウンタをインクリメントし、カウンタがしきい値を超える場合はノード140Aを削除する)。それがクライアント130であろうと、不正行為を報告するノード140のノードであろうと、レジストリ150は、ノードのリストからノードを削除することに応答して、ノードの更新されたリストをクライアント130(および、任意の他のクライアント)に伝播し得る。
【0031】
クライアントとノードによるインセンティブ付け行為
ある実施形態では、ノードは、レジストリ150にリストされる資格を得る前に、ステークを預けることを要求され得る。ノードは、要求が適切に妥当性検査されたときに、要求が妥当性検査されたクライアントから報酬を受け取ることができる。しかしながら、ノードは、将来の要求を妥当性検査する資格がなくなるだけでなく(たとえば、上述のようにレジストリ150から削除することによって)、預け入れられたステークを没収することによって、不正に要求を妥当性検査するふりをするとペナルティを科される場合がある。
【0032】
同様に、クライアントは、正しい応答を受信した後、ノード140への報酬の送信を拒否し得る。応答的に、ノードがそのクライアントからの追加の要求を処理することを防ぐために、ノードはクライアントをブラックリストに載せるかダウングレードし得る。ノードは他のノードにも不正行為を通知する可能性があるため、クライアントが将来のトランザクションを処理するのは現実的ではない。
【0033】
ノード140による良好な行為を促進するための追加または代替的インセンティブとして、クライアントは、様々なパラメータに基づいてノードに重みを付けることができ、良好な行為に対応するスコアに基づいてトランザクションを処理するために、レジストリ150にリストされたノードのランダムな選択にバイアスをかけるために、これらの重み付けを使用し得る。たとえば、重み付けは、所与のノードによる預金額に基づき得る(たとえば、ノードがより多くを失う場合、ノードが不正行為をする可能性が低いため)。重み付けは、追加的または代替的に、過去のパフォーマンスに基づく場合があり、ノードによってクライアントに配信される正しい結果ごとにスコアが増加し(たとえば、小さい単位で)、またノードによってクライアントに配信される不正確な結果ごとにスコアが減少する(たとえば、小さい単位よりも大きな大きい単位で)。
【0034】
クライアント(たとえば、クライアント130および他のクライアント)は、グループ化され、ノード140の1つまたは複数のノードに割り当てられ得る。そのようなグループ化を形成するために、各クライアントは、関連付けられるノードからの承認を提供し得る。これにより、クライアント(たとえば、クライアント130)から要求を受信するノードは、ノード140の他のノードを選択する際に(たとえば、署名されたブロックハッシュを提供するために)、そのクライアントによって決定およびカタログ化された重みを基準として使用することが可能になる。これは、ノード140がそのクライアントの応答の品質を保証するために正確かつ高速な応答を配信するための強力なインセンティブ付けを形成する。
【0035】
実例となるブロックチェーン相互作用処理
図4は、本開示のいくつかの実施形態による、IoTデバイスからのブロックチェーントランザクションを検証するためのフローチャートである。プロセス400は、クライアント(たとえば、クライアント130)がトランザクション要求(たとえば、トランザクション要求301)を受信すること(402)から始まり、クライアントは、IoTデバイス(たとえば、IoTデバイス110)によって実行される。プロセス400は、クライアントが妥当性検査ノードのレジスタ(たとえば、クライアント130へのローカルレジスタに記憶され、要素301および302を通じてアクセスされるノード140のリスト)にアクセスすること(404)に続く。クライアントは、レジスタからノード(たとえば、ノード140B)を選択し続ける(406)(たとえば、ノード140Bを生成するランダムまたは加重ランダムプロセスに基づいて)。
【0036】
クライアントは、ブロックチェーンネットワーク上でトランザクション要求を処理するために、妥当性検査要求(たとえば、ノード140Bに送信されるRPC要求303)を送信する(408)。クライアントは、(たとえば、ノード140Bから)要求への応答(たとえば、RPC応答309)であって、妥当性検査指標を含む応答(たとえば、証明、ブロックヘッダ、ノード140Aまたはノード140Cからの署名されたブロックハッシュなど)を受信する(410)。クライアントは、妥当性検査指標に基づいて(たとえば、証明を解くことによって)、応答が有効であるかどうかを検証する(412)。クライアントは、応答が有効であるという決定に応答して、トランザクション要求に対応するトランザクションを妥当性検査する(たとえば、スマート自転車ロックのロックを解除するか、要求されたセンサデータを送信する)ようにIoTデバイスに指示する(414)。
【0037】
追加の構成に関する考慮事項
本明細書全体を通して、複数のインスタンスは、単一のインスタンスとして記述された構成要素、動作、または構造を実装し得る。1つまたは複数の方法の個々の動作は、別個の動作として図示および説明されているが、個々の動作のうちの1つまたは複数は同時に実行されてよく、動作を図示された順序で実行する必要はない。例示的な構成において別個の構成要素として提示されている構造および機能は、組み合わせた構造または構成要素として実装され得る。同様に、単一の構成要素として提示されている構造および機能は、別個の構成要素として実装され得る。これらおよび他の変形、修正、追加、および改善は、本明細書の主題の範囲内にある。
【0038】
特定の実施形態は、ロジックまたはいくつかの構成要素、モジュール、またはメカニズムを含むものとして本明細書に記載されている。モジュールは、ソフトウェアモジュール(たとえば、マシン可読媒体上で、または送信信号において具体化されたコード)またはハードウェアモジュールのいずれかを構成し得る。ハードウェアモジュールは、特定の動作を実行することができる有形のユニットであり、特定の方法で構成または配置され得る。例示的な実施形態では、1つまたは複数のコンピュータシステム(たとえば、スタンドアロン、クライアント、またはサーバコンピュータシステム)、あるいはコンピュータシステムの1つまたは複数のハードウェアモジュール(たとえば、プロセッサまたはプロセッサのグループ)は、本明細書に記載される特定の動作を実行するように動作するハードウェアモジュールとして、ソフトウェア(たとえば、アプリケーションまたはアプリケーション部分)によって構成され得る。
【0039】
様々な実施形態において、ハードウェアモジュールは、機械的または電子的に実装され得る。たとえば、ハードウェアモジュール(たとえば、コンピュータシステム200によって表される軽量デバイスまたは非軽量デバイスの)は、特定の動作を実行するために恒久的に構成された(たとえば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)などの専用プロセッサとして)専用の回路またはロジックを備え得る。ハードウェアモジュールはまた、特定の動作を実行するためにソフトウェアによって一時的に構成されるプログラム可能なロジックまたは回路(たとえば、汎用プロセッサまたは他のプログラム可能なプロセッサ内に包含される)を備え得る。ハードウェアモジュールを機械的に、専用の恒久的に構成された回路に、または一時的に構成された回路(たとえば、ソフトウェアによって構成された)に実装する決定は、コストおよび時間の考慮によって行われ得ることが理解されよう。
【0040】
したがって、「ハードウェアモジュール(hardware module)」という用語は、特定の方法で動作するように、または本明細書で説明する特定の動作を実行するために物理的に構築された、恒久的に構成された(たとえば、ハードワイヤード)、または一時的に構成された(たとえば、プログラムされた)エンティティである有形のエンティティを包含すると理解されるべきである。本明細書で使用される場合、「ハードウェア実装モジュール(hardware−implemented module)」は、ハードウェアモジュールを指す。ハードウェアモジュールが一時的に構成される(たとえば、プログラムされる)実施形態を考慮すると、ハードウェアモジュールの各々は、任意の一時点において構成またはインスタンス化される必要はない。たとえば、ハードウェアモジュールがソフトウェアを使用して構成された汎用プロセッサを備える場合、汎用プロセッサは、異なる時間にそれぞれの異なるハードウェアモジュールとして構成され得る。したがって、ソフトウェアは、たとえば、ある時点で特定のハードウェアモジュールを構成し、異なる時点で異なるハードウェアモジュールを構成するようにプロセッサを構成し得る。
【0041】
ハードウェアモジュールは、他のハードウェアモジュールに情報を提供したり、他のハードウェアモジュールから情報を受信したりすることができる。したがって、説明されたハードウェアモジュールは、通信可能に結合されていると見なされ得る。そのようなハードウェアモジュールの複数が同時に存在する場合、通信は、ハードウェアモジュールを接続する信号送信(たとえば、適切な回路およびバスを介して)を通じて達成され得る。複数のハードウェアモジュールが異なる時間に構成またはインスタンス化される実施形態では、そのようなハードウェアモジュール間の通信は、たとえば、複数のハードウェアモジュールがアクセスできるメモリ構造内の情報の記憶および検索を通じて達成され得る。たとえば、1つのハードウェアモジュールが動作を実行し、その動作の出力を、通信可能に結合されているメモリデバイスに記憶し得る。その後、さらなるハードウェアモジュールが、記憶された出力を検索および処理するためにメモリデバイスにアクセスし得る。ハードウェアモジュールは、入力デバイスまたは出力デバイスとの通信を開始し得、リソース上で動作(たとえば、情報の収集)することができる。
【0042】
本明細書に記載の例示的な方法の様々な動作は、少なくとも部分的に、関連する動作を実行するように一時的に構成された(たとえば、ソフトウェアによって)または恒久的に構成された1つまたは複数のプロセッサによって実行され得る。一時的であろうと恒久的に構成されていようと、そのようなプロセッサは、1つまたは複数の動作または機能を実行するように動作するプロセッサ実装モジュールを構成し得る。本明細書で言及されるモジュールは、いくつかの例示的な実施形態では、プロセッサ実装モジュールを備え得る。
【0043】
同様に、本明細書に記載の方法は、少なくとも部分的にプロセッサで実装され得る。たとえば、方法の動作のうちの少なくともいくつかは、1つまたは複数のプロセッサあるいはプロセッサ実装ハードウェアモジュールによって実行され得る。動作のうちのいくつかの動作のパフォーマンスは、1台のマシン内に存在するだけでなく、複数のマシンに展開される1つまたは複数のプロセッサの間で分散され得る。いくつかの例示的な実施形態では、1つまたは複数のプロセッサは、単一の場所に配置され得(たとえば、家庭環境内、オフィス環境内、またはサーバファームとして)、他の実施形態では、プロセッサは、いくつかの場所に分散され得る。
【0044】
1つまたは複数のプロセッサは、「クラウドコンピューティング」環境において、または「サービスとしてのソフトウェア」(SaaS)として関連する動作のパフォーマンスをサポートするように動作する場合もある。たとえば、動作のうちの少なくともいくつかは、(プロセッサを含むマシンの例として)コンピュータのグループによって実行され得、これらの動作は、ネットワーク(たとえば、インターネット)および1つまたは複数の適切なインターフェース(たとえば、アプリケーションプログラムインターフェース(API))を介してアクセス可能である。
【0045】
特定の動作のパフォーマンスは、1台のマシン内に存在するだけでなく、複数のマシンに展開される1つまたは複数のプロセッサの間で分散され得る。いくつかの例示的な実施形態では、1つまたは複数のプロセッサ、あるいはプロセッサ実装モジュールは、単一の地理的位置(たとえば、家庭環境、オフィス環境、またはサーバファーム内)に配置され得る。他の例示的な実施形態では、1つまたは複数のプロセッサ、あるいはプロセッサ実装モジュールは、いくつかの地理的位置に分散され得る。
【0046】
本明細書の一部は、マシンメモリ(たとえば、コンピュータメモリ)内にビットまたはバイナリデジタル信号として記憶されたデータに対するアルゴリズムまたは動作の記号表現の観点から提示されている。これらのアルゴリズムまたは記号表現は、データ処理技術の当業者によって、彼らの仕事の実体を他の当業者に伝えるために使用される技法の例である。本明細書で使用される場合、「アルゴリズム」は、所望の結果につながる自己無撞着な一連の動作または同様の処理である。この文脈では、アルゴリズムと動作は物理量の物理的操作を含む。通常、必ずしもそうとは限らないが、そのような量は、マシンによって記憶、アクセス、転送、結合、比較、または他の方法で操作することができる電気、磁気、または光信号の形をとり得る。主に一般的な使用法の理由から、「データ(data)」、「コンテンツ(content)」、「ビット(bits)」、「値(values)」、「要素(elements)」、「記号(symbols)」、「文字(characters)」、「用語(terms)」、「数字(numbers)」、「数値(numerals)」などの単語を使用してそのような信号を参照すると便利な場合がある。しかしながら、これらの単語は単に便利なラベルであり、適切な物理量に関連付けられる必要がある。
【0047】
特に明記しない限り、「処理(processing)」、「コンピューティング(computing)」、「計算(calculating)」、「決定(determining)」、「提示(presenting)」、「表示(displaying)」などの単語を使用する本明細書の説明は、1つもしくは複数のメモリ(たとえば、揮発性メモリ、不揮発性メモリ、もしくはそれらの組合せ)、レジスタ、または情報を受信、記憶、送信もしくは表示する他のマシン構成要素内の物理的(たとえば、電子的、磁気的、または光学的)量として表されるデータを操作または転送するマシン(たとえば、コンピュータ)のアクションまたはプロセスを指す場合がある。
【0048】
本明細書で使用される場合、「一実施形態(one embodiment)」または「ある実施形態(an embodiment)」への言及は、実施形態に関連して説明される特定の要素、特徴、構造、または特性が少なくとも1つの実施形態に含まれることを意味する。本明細書の様々な場所における「一実施形態では(in one embodiment)」という句の出現は、必ずしもすべてが同じ実施形態を指すとは限らない。
【0049】
いくつかの実施形態は、それらの派生物とともに「結合された(coupled)」および「接続された(connected)」という表現を使用して説明され得る。これらの用語は、相互の同義語として意図されたものではないことが理解されるべきである。たとえば、いくつかの実施形態は、2つ以上の要素が互いに直接物理的または電気的に接触していることを示すために「接続された」という用語を使用して説明され得る。別の例では、いくつかの実施形態は、2つ以上の要素が直接物理的または電気的に接触していることを示すために「結合された」という用語を使用して説明され得る。しかしながら、「結合された」という用語は、2つ以上の要素が互いに直接接触していないが、依然として互いに協力または相互作用していることを意味する場合もある。実施形態は、この文脈に限定されない。
【0050】
本明細書で使用される場合、「備える(comprises)」、「備えている(comprising)」、「含む(includes)」、「含んでいる(including)」、「有する(has)」、「有している(having)」という用語、またはそれらの任意の他の変形は、非排他的な包含をカバーすることを意図している。たとえば、要素のリストを備えるプロセス、方法、物品、または装置は、必ずしもそれらの要素のみに限定されるわけではなく、そのようなプロセス、方法、物品、または装置に明示的にリストされていない、または固有ではない他の要素を含み得る。さらに、明示的に反対の記載がない限り、「または(or)」は包括的論理和を指し、排他的論理和を指さない。たとえば、条件AまたはBは、Aが真(または、存在する)およびBが偽(または、存在しない)、Aが偽(または、存在しない)およびBが真(または、存在する)、ならびにAとBの両方が真(または、存在する)のいずれかによって満たされる。
【0051】
さらに、「a」または「an」の使用は、本明細書の実施形態の要素および構成要素を説明するために採用される。これは、単に便宜上、そして本発明の一般的な意味を与えるために行われる。この説明は、1つまたは少なくとも1つを含むように読まれるべきであり、別の意味であることが明らかでない限り、単数形には複数形も含まれる。
【0052】
本開示を読むと、当業者は、本明細書に開示された原理を通じて、IoTデバイスのブロックチェーン相互作用を処理するためのシステムおよびプロセスのためのさらに追加の代替の構造的および機能的設計を理解するであろう。したがって、特定の実施形態および用途が例示および説明されてきたが、開示された実施形態は、本明細書に開示された正確な構造および構成要素に限定されないことが理解されるべきである。当業者に明らかである様々な修正、変更、および変形は、添付の特許請求の範囲において定義される趣旨および範囲から逸脱することなしに、本明細書に開示される方法および装置の配置、動作、および詳細において行われ得る。
図1
図2
図3
図4
【手続補正書】
【提出日】2021年1月13日
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ブロックチェーンネットワークと同期されていないクライアントにおいて、トランザクション要求を受信するステップであって、前記クライアントが、モノのインターネット(IoT)デバイスによって実行される、ステップと、
前記クライアントによって、ノードのレジスタにアクセスするステップであって、前記ノードは、それぞれ前記ブロックチェーンネットワークと同期されている、ステップと、
前記クライアントによって、前記レジスタからノードを選択するステップと、
前記クライアントから前記ノードに、前記ブロックチェーンネットワーク上で前記トランザクション要求を処理するようにとのブロックチェーン要求を送信するステップと、
前記クライアントによって、前記ブロックチェーン要求への応答を受信するステップであって、前記応答は妥当性検査指標を含む、ステップと、
前記クライアントによって、前記妥当性検査指標に基づいて、前記応答が有効であるかどうかを検証するステップと、
前記クライアントによって、前記応答が有効であるという決定に応答して、前記トランザクション要求に対応するトランザクションを妥当性検査するように前記IoTデバイスに指示するステップと
を備える方法。
【請求項2】
前記クライアントによって、前記レジスタから前記ノードを選択するステップは、
前記クライアントによって、前記レジスタから候補ノードをランダムに識別するステップと、
前記クライアントによって、前記候補ノードが前記クライアントによって送信された最後のブロックチェーン要求を処理したかどうかを決定するステップと、
前記候補ノードが前記クライアントによって送信された前記最後のブロックチェーン要求を処理したという決定に応答して、
前記クライアントによって、前記レジスタから異なる候補ノードをランダムに識別するステップと、
前記クライアントによって、前記ノードとして前記異なる候補ノードを選択するステップと、
前記候補ノードが前記クライアントによって送信された前記最後のブロックチェーン要求を処理しなかったという決定に応答して、前記候補ノードを前記ノードとして選択するステップと、
を備える請求項1に記載の方法。
【請求項3】
前記妥当性検査指標は追加ノードからの署名されたブロックハッシュを備え、前記クライアントによって、前記妥当性検査指標に基づいて、前記応答が有効であるかどうかを検証するステップは、前記クライアントによって、前記ノードによる前記処理を補強する前記追加ノードからの前記署名されたブロックハッシュに基づいて前記応答が有効であることを決定するステップを備える請求項1に記載の方法。
【請求項4】
前記妥当性検査指標は証明を備え、前記クライアントによって、前記妥当性検査指標に基づいて、前記応答が有効であるかどうかを検証するステップは、
前記証明を通じてデータを供給することによって証明結果を決定するステップと、
前記証明結果が前記応答に示された結果と一致するかどうかを決定するステップと、
前記証明結果が前記応答に示された前記結果と一致するという決定に応答して、前記応答が有効であると決定するステップと
を備える請求項1に記載の方法。
【請求項5】
前記クライアントによって、前記応答が有効であるという検証にさらに応答して、前記クライアントのノードのローカルレジスタへのスコア増加更新を処理するステップをさらに備える請求項1に記載の方法。
【請求項6】
前記クライアントによって、前記レジスタから前記ノードを選択する前記ステップは、
前記ローカルレジスタの各候補ノードに、それらのスコアに基づいて重み付けするステップと、
各候補ノードの前記重みに基づいてバイアスがかけられたランダム選択によって前記ノードを選択するステップと
を備える請求項に記載の方法。
【請求項7】
コンピュータプログラム命令を実行するためのプロセッサと、
ブロックチェーンネットワークと同期されていないクライアントを動作させるために前記プロセッサによって実行可能な記憶されたコンピュータプログラム命令を備える非一時的コンピュータ可読ストレージ媒体とを備え、前記命令が、実行されると、前記プロセッサに、
ブロックチェーンネットワークと同期されていないクライアントにおいて、トランザクション要求を受信することであって、前記クライアントが、モノのインターネット(IoT)デバイスによって実行される、ことと、
前記クライアントによって、ノードのレジスタにアクセスすることであって、前記ノードは、それぞれ前記ブロックチェーンネットワークと同期されている、ことと、
前記クライアントによって、前記レジスタからノードを選択することと、
前記クライアントから前記ノードに、前記ブロックチェーンネットワーク上で前記トランザクション要求を処理するようにとのブロックチェーン要求を送信することと、
前記クライアントによって、前記ブロックチェーン要求への応答を受信することであって、前記応答は妥当性検査指標を含む、ことと、
前記クライアントによって、前記妥当性検査指標に基づいて、前記応答が有効であるかどうかを検証することと、
前記クライアントによって、前記応答が有効であるという決定に応答して、前記トランザクション要求に対応するトランザクションを妥当性検査するように前記IoTデバイスに指示することと
を行わせる、システム。
【請求項8】
前記クライアントによって、前記レジスタから前記ノードを選択するための前記命令は、
前記クライアントによって、前記レジスタから候補ノードをランダムに識別することと、
前記クライアントによって、前記候補ノードが前記クライアントによって送信された最後のブロックチェーン要求を処理したかどうかを決定することと、
前記候補ノードが前記クライアントによって送信された前記最後のブロックチェーン要求を処理したという決定に応答して、
前記クライアントによって、前記レジスタから異なる候補ノードをランダムに識別することと、
前記クライアントによって、前記ノードとして前記異なる候補ノードを選択することと、
前記候補ノードが前記クライアントによって送信された前記最後のブロックチェーン要求を処理しなかったという決定に応答して、前記候補ノードを前記ノードとして選択することと、
を行うための命令をさらに備える請求項に記載のシステム。
【請求項9】
前記妥当性検査指標は追加ノードからの署名されたブロックハッシュを備え、前記クライアントによって、前記妥当性検査指標に基づいて、前記応答が有効であるかどうかを検証することは、前記クライアントによって、前記ノードによる前記処理を補強する前記追加ノードからの前記署名されたブロックハッシュに基づいて前記応答が有効であることを決定することを備える請求項に記載のシステム。
【請求項10】
前記妥当性検査指標は証明を備え、前記クライアントによって、前記妥当性検査指標に基づいて、前記応答が有効であるかどうかを決定するための前記命令は、
前記証明を通じてデータを供給することによって証明結果を決定することと、
前記証明結果が前記応答に示された結果と一致するかどうかを決定することと、
前記証明結果が前記応答に示された前記結果と一致するという決定に応答して、前記応答が有効であると決定することと
を行うための命令をさらに備える請求項に記載のシステム。
【請求項11】
前記動作は、さらに、前記クライアントによって、前記応答が有効であるという検証にさらに応答して、前記クライアントのノードのローカルレジスタへのスコア増加更新を処理することをさらに備える請求項に記載のシステム。
【請求項12】
前記クライアントによって、前記レジスタから前記ノードを選択するための前記命令は、
前記ローカルレジスタの各候補ノードに、それらのスコアに基づいて重み付けすることと、
各候補ノードの前記重みに基づいてバイアスがかけられたランダム選択によって前記ノードを選択することと
を行うための命令を備える請求項11に記載のシステム。
【請求項13】
記憶された命令を備える非一時的コンピュータ可読媒体であって、前記命令はプロセッサによって実行されると、前記プロセッサに、ブロックチェーンネットワークと同期されていないクライアントを、
ブロックチェーンネットワークと同期されていないクライアントにおいて、トランザクション要求を受信することであって、前記クライアントが、モノのインターネット(IoT)デバイスによって実行される、ことと、
前記クライアントによって、ノードのレジスタにアクセスすることであって、前記ノードは、それぞれ前記ブロックチェーンネットワークと同期されている、ことと、
前記クライアントによって、前記レジスタからノードを選択することと、
前記クライアントから前記ノードに、前記ブロックチェーンネットワーク上で前記トランザクション要求を処理するようにとのブロックチェーン要求を送信することと、
前記クライアントによって、前記ブロックチェーン要求への応答を受信することであって、前記応答は妥当性検査指標を含む、ことと、
前記クライアントによって、前記妥当性検査指標に基づいて、前記応答が有効であるかどうかを検証することと、
前記クライアントによって、前記応答が有効であるという決定に応答して、前記トランザクション要求に対応するトランザクションを妥当性検査するように前記IoTデバイスに指示することと
を行うように動作させる非一時的コンピュータ可読媒体。
【請求項14】
前記クライアントによって、前記レジスタから前記妥当性検査ノードを選択するための前記命令は、
前記クライアントによって、前記レジスタから候補ノードをランダムに識別することと、
前記クライアントによって、前記候補ノードが前記クライアントによって送信された最後のブロックチェーン要求を処理したかどうかを決定することと、
前記候補ノードが前記クライアントによって送信された前記最後のブロックチェーン要求を処理したという決定に応答して、
前記クライアントによって、前記レジスタから異なる候補ノードをランダムに識別することと、
前記クライアントによって、前記ノードとして前記異なる候補ノードを選択することと、
前記候補ノードが前記クライアントによって送信された前記最後のブロックチェーン要求を処理しなかったという決定に応答して、前記候補ノードを前記ノードとして選択することと、
を行うための命令を備える請求項13に記載の非一時的コンピュータ可読媒体。
【請求項15】
前記妥当性検査指標は追加ノードからの署名されたブロックハッシュを備え、前記クライアントによって、前記妥当性検査指標に基づいて、前記応答が有効であるかどうかを検証することは、前記クライアントによって、前記ノードによる前記処理を補強する前記追加ノードからの前記署名されたブロックハッシュに基づいて前記応答が有効であることを決定することを備える請求項13に記載の非一時的コンピュータ可読媒体。
【請求項16】
前記妥当性検査指標は証明を備え、前記クライアントによって、前記妥当性検査指標に基づいて、前記応答が有効であるかどうかを決定するための前記命令は、
前記証明を通じてデータを供給することによって証明結果を決定することと、
前記証明結果が前記応答に示された結果と一致するかどうかを決定することと、
前記証明結果が前記応答に示された前記結果と一致するという決定に応答して、前記応答が有効であると決定することと
を行うための命令をさらに備える請求項13に記載の非一時的コンピュータ可読媒体。
【請求項17】
前記命令は、さらに、前記クライアントによって、前記応答が有効であるという検証にさらに応答して、前記クライアントのノードのローカルレジスタへのスコア増加更新を送信するための命令をさらに備え、前記クライアントによって、前記レジスタから前記ノードを選択するための前記命令は、
各候補ノードに、それらのスコアに基づいて重み付けすることと、
各候補ノードの前記重みに基づいてバイアスがかけられたランダム選択によって前記ノードを選択することと
を行うための命令を備える請求項13に記載の非一時的コンピュータ可読媒体。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0013
【補正方法】変更
【補正の内容】
【0013】
コンピューティングマシンアーキテクチャ
図2は、マシン可読媒体から命令を読み取り、それらをプロセッサ(または、コントローラ)において実行することができる例示的なマシンの構成要素を示すブロック図である。具体的には、図2は、本明細書で論じられる方法論のうちの任意の1つまたは複数をマシンに実行させるためのプログラムコード(たとえば、ソフトウェア)が実行され得るコンピュータシステム200の例示的な形態のマシンの概略図を示している。コンピュータシステム200の構成要素のうちのいくつかまたはすべては、本明細書で論じられるように、IoTデバイス110あるいは他の軽量デバイスまたはアプリケーションのコンピュータシステムを代表し得る。しかしながら、前述のように、そのような構成要素は、より堅牢なコンピューティングシステムに関して限られた容量しか提供しない場合がある。コンピュータシステム200の構成要素のうちのいくつかまたはすべてはまた、クライアント130を実行するコンピューティングデバイス、レジストリ150をホストするコンピューティングデバイス、およびノード140のいずれかを実行するコンピューティングデバイスを表し得る。プログラムコードは、1つまたは複数のプロセッサ202によって実行可能な命令224から構成され得る。IoTデバイス110および他の軽量デバイスは、単純なプロセッサまたはコントローラを有し得るが、クライアントデバイス130は、スマートフォンまたはパーソナルコンピュータ(PC)にしばしば見られる従来のコンピュータプロセッサを有し得る点に留意されたい。代替的実施形態では、マシンは、スタンドアロンデバイスとして動作するか、または他のマシンに接続(たとえば、ネットワーク化)され得る。ネットワーク展開において、マシンは、サーバ−クライアントネットワーク環境においてサーバマシンまたはクライアントマシンの容量で動作してもよく、あるいはピアツーピア(または、分散)ネットワーク環境においてピアマシンとして動作してもよい。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0014
【補正方法】変更
【補正の内容】
【0014】
クライアント130またはレジストリ150を実行するシステムなどの複雑なコンピューティングシステムの場合、マシンは、たとえば、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、セルラー電話、スマートフォン、ウェブアプライアンス、ネットワークルータ、スイッチ、またはブリッジであり得る。IoTデバイス(または、他の軽量デバイス)は、ドアベル、サーモスタット、冷蔵庫、自転車ロックなどであり得る。いずれのマシンも、そのマシンによって実行されるべきアクションを指定する命令224(順次またはその他)を実行することが可能であり得る。さらに、単一のマシンのみが示されているが、「マシン(machine)」という用語はまた、本明細書で論じられる方法論のうちの任意の1つまたは複数を実行するために命令224を個別にまたは共同で実行するマシンの任意の集合を含むと解釈されるべきである。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0021
【補正方法】変更
【補正の内容】
【0021】
例示的なブロックチェーン相互作用処理
図3は、本開示のいくつかの例示的実施形態による、最小限の検証クライアントによるブロックチェーントランザクションを妥当性検査するためのデータフロー図である。図示された通信は、示されたマシン(たとえば、IoTデバイス110および1つまたは複数のノード140)との間のネットワーク(たとえば、ネットワーク120)を通じて発生し得る。図3に示されるように、クライアント(たとえば、クライアント130)は、ノードリストにアクセスし(たとえば、ノードリスト要求にアクセスすること(301)を介して、(たとえば、IoTデバイス110の)メモリにノードリストを返させる(302)。要求301は、ブロックチェーン相互作用を処理する要求を受信したIoTデバイス110に基づいてトリガされ得る。たとえば、IoTデバイス110は、公衆によって(たとえば、小額の料金の支払いと引き換えに)アクセスされ得る(または、そのデータセットがアクセスされ得る)大気質を記述する環境センサであり得る。誰かがデータを要求していることを検出することに応答して、IoTデバイス110のクライアント130は、ブロックチェーン相互作用を処理するためのノードリストを検索するようにトリガされ得る。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0030
【補正方法】変更
【補正の内容】
【0030】
ある実施形態では、ノード140のノードの不正行為は、別のノードによって報告される。たとえば、上述のように、ノード140Bは、要求をノード140Aに送信し得(304)、ノード140Aは、応答的に署名をノード140Bに返し得る(307)。署名が無効であるという決定に応答して、ノード140Bは、通信をレジストリ150に送信し得る(308)。レジストリ150は、クライアントによる要求を妥当性検査するために選択されることができるノード140のリストからノード140Aへの参照を応答的に削除してもよく、あるいは上述したものと同様の他の是正措置をとってもよい(たとえば、ノード140Aに対応するカウンタをインクリメントし、カウンタがしきい値を超える場合はノード140Aを削除する)。それがクライアント130であろうと、不正行為を報告するノード140のノードであろうと、レジストリ150は、ノードのリストからノードを削除することに応答して、ノードの更新されたリストをクライアント130(および、任意の他のクライアント)に伝播し得る。
【国際調査報告】