(57)【要約】  本開示の制御方法は、１以上のＩｏＴデバイスと、複数のサーバとを備えるシステムにおける、複数のサーバのうちの第１サーバによって実行される制御方法であって、１以上のＩｏＴデバイスのうちの一のＩｏＴデバイスが故障したことを示す故障情報と、前記一のＩｏＴデバイスが、故障情報を取得したときの時刻情報とを含む第１のトランザクションデータを取得し（Ｓ１２でｙｅｓ）、取得した第１のトランザクションデータを、第１サーバとは異なる複数の第２サーバに転送し（Ｓ１３）、複数の第２サーバとともに、第１のトランザクションデータの正当性について合意するための第１のコンセンサスアルゴリズムを実行し（Ｓ１４）、第１のコンセンサスアルゴリズムによって第１のトランザクションデータの正当性が検証された場合、第１のトランザクションデータを含むブロックを前記第１サーバの分散台帳に記録する（Ｓ１６）。
2020080522.tif 000002
【特許請求の範囲】
【請求項１】
１以上のＩｏＴ（Internet of Things）デバイスと、前記１以上のＩｏＴデバイスとネットワークを介して通信可能な複数のサーバとを備えるシステムにおける、前記複数のサーバのうちの第１サーバによって実行される制御方法であって、
前記１以上のＩｏＴデバイスのうちの一のＩｏＴデバイスが故障したことを示す故障情報と、前記一のＩｏＴデバイスが前記故障情報を取得したときの時刻情報とを含む第１のトランザクションデータを、前記一のＩｏＴデバイスから取得し、
取得した前記第１のトランザクションデータを、前記複数のサーバのうちの前記第１サーバとは異なる複数の第２サーバに転送し、
前記複数の第２サーバとともに、前記第１のトランザクションデータの正当性について合意するための第１のコンセンサスアルゴリズムを実行し、
前記第１のコンセンサスアルゴリズムによって前記第１のトランザクションデータの正当性が検証された場合、前記第１のトランザクションデータを含むブロックを前記第１サーバの分散台帳に記録する、
制御方法。
【請求項２】
前記システムは、さらに、前記複数のサーバと前記ネットワークを介して通信可能な端末でありユーザが使用する端末を備え、
前記制御方法は、
前記端末から、前記ユーザが前記一のＩｏＴデバイスを利用可能かどうか問い合わせるためのユーザ要求を受信した場合、前記一のＩｏＴデバイスが利用可能かどうかを示す状態情報を読み出し、
読み出した前記状態情報から、前記一のＩｏＴデバイスが利用可能であることを判定した場合、前記端末に対して、所定の条件下での前記一のＩｏＴデバイスの利用を許可する旨を示す第１信号を送信する、
請求項１に記載の制御方法。
【請求項３】
前記制御方法は、
読み出した前記状態情報から、前記一のＩｏＴデバイスが利用不可であることを判定した場合、前記端末に対して、前記一のＩｏＴデバイスの利用を許可しない旨を示す信号を送信する、
請求項２に記載の制御方法。
【請求項４】
前記制御方法は、さらに、
前記端末から、前記一のＩｏＴデバイスの利用権を購入した旨を示す第２のトランザクションデータを取得した場合、取得した前記第２のトランザクションデータを、前記複数のサーバのうちの前記複数の第２サーバに転送し、
前記複数の第２サーバとともに、前記第２のトランザクションデータの正当性について合意するための第２のコンセンサスアルゴリズムを実行し、
前記第２のコンセンサスアルゴリズムによって前記第２のトランザクションデータの正当性が検証された場合、前記第２のトランザクションデータを含むブロックを前記第１サーバの分散台帳に記録する、
請求項２に記載の制御方法。
【請求項５】
前記状態情報は、さらに、前記一のＩｏＴデバイスの開閉状態を含み、
前記制御方法は、さらに、
前記端末から、前記利用権に基づく前記一のＩｏＴデバイスの開錠要求を示す第３のトランザクションデータを取得し、
取得した前記第３のトランザクションデータを、前記複数の第２サーバに転送し、
前記複数の第２サーバとともに、前記第３のトランザクションデータの正当性について合意するための第３のコンセンサスアルゴリズムを実行し、
前記第３のコンセンサスアルゴリズムによって前記第３のトランザクションデータの正当性が検証された場合、前記第３のトランザクションデータを含むブロックを前記第１サーバの分散台帳に記録することで、前記状態情報に含まれる前記一のＩｏＴデバイスの開閉状態を変更する、
請求項４に記載の制御方法。
【請求項６】
前記制御方法は、
前記分散台帳に記録された前記第１のトランザクションデータを読み出し、
読み出した前記第１のトランザクションデータに基づいて前記状態情報を生成して、前記第１サーバが有するメモリ上に書き出しており、
前記端末から、前記ユーザ要求を受信した場合、前記メモリ上における前記状態情報を読み出す、
請求項２〜５のいずれか１項に記載の制御方法。
【請求項７】
前記時刻情報は、前記故障情報を取得したときのタイムスタンプまたはシーケンス番号である、
請求項１〜６のいずれか１項に記載の制御方法。
【請求項８】
前記制御方法は、
前記故障情報を取得した場合、前記分散台帳に格納されたスマートコントラクトを動作させることで、前記第１のトランザクションデータを取得する、
請求項１〜７のいずれか１項に記載の制御方法。
【請求項９】
１以上のＩｏＴデバイスと、
前記１以上のＩｏＴデバイスとネットワークを介して通信可能な複数のサーバとを備え、
前記複数のサーバのうちの第１サーバは、
前記１以上のＩｏＴデバイスのうちの一のＩｏＴデバイスが故障したことを示す故障情報と、前記一のＩｏＴデバイスが前記故障情報を取得したときの時刻情報とを含む第１のトランザクションデータを、前記一のＩｏＴデバイスから取得し、
取得した前記第１のトランザクションデータを、前記複数のサーバのうちの前記第１サーバとは異なる複数の第２サーバに転送し、
前記複数の第２サーバとともに、前記第１のトランザクションデータの正当性について合意するための第１のコンセンサスアルゴリズムを実行し、
前記第１のコンセンサスアルゴリズムによって前記第１のトランザクションデータの正当性が検証された場合、前記第１のトランザクションデータを含むブロックを前記第１サーバの分散台帳に記録する、
制御システム。
【請求項１０】
１以上のＩｏＴデバイスと、前記１以上のＩｏＴデバイスとネットワークを介して通信可能な複数のサーバとを備えるシステムにおける、前記複数のサーバのうちの第１サーバであって、
プロセッサと、
前記プロセッサに処理を実行させるプログラムが記憶されたメモリと、
スマートコントラクトが格納された分散台帳が記憶されている記憶装置とを備え、
前記プロセッサは、前記分散台帳に格納されたスマートコントラクトを動作させることで、前記１以上のＩｏＴデバイスのうちの一のＩｏＴデバイスが故障したことを示す故障情報と、前記一のＩｏＴデバイスが前記故障情報を取得したときの時刻情報とを含む第１のトランザクションデータを、前記一のＩｏＴデバイスから取得し、
前記プロセッサは、前記メモリに記憶された前記プログラムを実行することにより、
取得した前記第１のトランザクションデータを、前記複数のサーバのうちの前記第１サーバとは異なる複数の第２サーバに転送し、
前記複数の第２サーバとともに、前記第１のトランザクションデータの正当性について合意するための第１のコンセンサスアルゴリズムを実行し、
前記第１のコンセンサスアルゴリズムによって前記第１のトランザクションデータの正当性が検証された場合、前記第１のトランザクションデータを含むブロックを前記第１サーバの分散台帳に記録する、
第１サーバ。
【請求項１１】
１以上のＩｏＴデバイスと、前記１以上のＩｏＴデバイスとネットワークを介して通信可能な複数のサーバとを備えるシステムにおいて分散台帳に記録されるブロックに用いられるデータ構造であって、
前記データ構造は、
前記１以上のＩｏＴデバイスのうちの一のＩｏＴデバイスが故障したことを示す故障情報と、前記一のＩｏＴデバイスが前記故障情報を取得したときの時刻情報とを含む第１のトランザクションデータを含み、
前記第１のトランザクションデータは、前記分散台帳に格納されたスマートコントラクトが動作されることで前記複数のサーバのうちの第１サーバによって取得され、取得された前記第１のトランザクションデータが前記ブロックに含まれて前記分散台帳に記録される、
データ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、制御方法、制御システム、第１サーバ、及び、データ構造に関する。
【背景技術】
【０００２】
例えば宅配ボックスを構成するユニットの開錠（解錠）又は施錠である開施錠を、ブロックチェーンを用いて管理する技術が開示されている（非特許文献１参照）。宅配ボックスを構成するユニットの開施錠の管理には、ブロックチェーンを用いたスマートコントラクトが用いられ得る。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ＧＭＯインターネット株式会社、“ＧＭＯインターネットグループ、セゾン情報システムズ、パルコが共同でブロックチェーンとＩｏＴを活用した実証実験の第二弾を実施”、［ｏｎｌｉｎｅ］、平成２９年６月２１日、［平成３０年１０月２５日検索］、インターネット<URL:https://cloud.z.com/jp/news-ep/IoT2/>
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、配送業者が宅配ボックスに荷物を配送する場合、当該宅配ボックスを構成する１以上のユニットの利用権を購入した後に当該ユニットが実在する現地に移動する。このため、配送業者が、現地に到着後、当該ユニットを利用するために開錠しようとしても当該ユニットが故障していて動作しないような場合も発生し得る。【０００５】
換言すると、宅配ボックスなどのＩｏＴ（Internet of Things）デバイスは、利用権を購入する地点と、現実に利用する地点であるＩｏＴデバイスがある地点とが離れている。さらに、ブロックチェーンの分散台帳は、複数の台帳を物理的に異なった拠点に設置されるので、ある地点に災害等が発生しても影響を受けずに動作するという特徴がある。一方で、宅配ボックスなどのＩｏＴデバイスは、自身が動作すべき場合に、災害、老朽化などにより故障等が発生して利用できないケースもある。このため、あるＩｏＴデバイスに対して、システム上で利用権を購入できるとしても、実際には故障している場合があり、現地では当該ＩｏＴデバイスを利用できないという場合も発生し得る。【０００６】
このような場合、現地において利用可能なＩｏＴデバイスを探索し、利用権を購入し直したり、現地に利用可能な他のＩｏＴデバイスがなければ利用可能なＩｏＴデバイスがある場所まで改めて移動したりしなければならない。そして、このような場合、故障しているＩｏＴデバイスまでの移動が無駄になり、移動等の手間が余計にかかるだけでなく移動に費やした時間とエネルギーとが無駄になる。【０００７】
本開示は、上述の事情を鑑みてなされたもので、分散台帳を用いて、時間コストとエネルギーコストとをより低減することができる制御方法などを提供する。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本開示の一形態に係る制御方法は、１以上のＩｏＴ（Internet of Things）デバイスと、前記１以上のＩｏＴデバイスとネットワークを介して通信可能な複数のサーバとを備えるシステムにおける、前記複数のサーバのうちの第１サーバによって実行される制御方法であって、前記１以上のＩｏＴデバイスのうちの一のＩｏＴデバイスが故障したことを示す故障情報と、前記一のＩｏＴデバイスが前記故障情報を取得したときの時刻情報とを含む第１のトランザクションデータを、前記一のＩｏＴデバイスから取得し、取得した前記第１のトランザクションデータを、前記複数のサーバのうちの前記第１サーバとは異なる複数の第２サーバに転送し、前記複数の第２サーバとともに、前記第１のトランザクションデータの正当性について合意するための第１のコンセンサスアルゴリズムを実行し、前記第１のコンセンサスアルゴリズムによって前記第１のトランザクションデータの正当性が検証された場合、前記第１のトランザクションデータを含むブロックを前記第１サーバの分散台帳に記録する。【０００９】
なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータで読み取り可能なＣＤ−ＲＯＭなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【００１０】
本開示の制御方法等によれば、分散台帳を用いて、時間コストとエネルギーコストとをより低減することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施の形態における制御システムの構成を模式的に示すブロック図である。
【図２】図２は、図１に示すサーバの全体構成の一例を模式的に示す図である。
【図３】図３は、実施の形態におけるサーバの機能構成を示すブロック図である。
【図４】図４は、ブロックチェーンのデータ構造を示す説明図である。
【図５】図５は、トランザクションデータのデータ構造を示す説明図である。
【図６】図６は、実施の形態におけるスマートコントラクト部の機能構成を示すブロック図である。
【図７】図７は、実施の形態におけるＩｏＴデバイス管理部の機能構成を示すブロック図である。
【図８】図８は、実施の形態におけるユーザ要求処理部の機能構成を示すブロック図である。
【図９】図９は、実施の形態における制御システムが実行する制御方法を示すフローチャートである。
【図１０】図１０は、実施の形態におけるＩｏＴデバイスの制御が不要な場合のユーザ要求の処理を示すシーケンス図である。
【図１１Ａ】図１１Ａは、図１０に示すユーザ要求の処理が行われる際に用いられるトランザクションデータのデータ構造の一例を示す図である。
【図１１Ｂ】図１１Ｂは、図１０に示すユーザ要求の処理が行われる際に用いられるＯＫ通知のデータ構造の一例を示す図である。
【図１１Ｃ】図１１Ｃは、図１０に示すユーザ要求の処理が行われる際に用いられるトランザクションデータのデータ構造の一例を示す図である。
【図１２】図１２は、実施の形態におけるＩｏＴデバイスの制御が必要な場合のユーザ要求の処理を示すシーケンス図である。
【図１３Ａ】図１３Ａは、図１２に示すユーザ要求の処理が行われる際に用いられるＯＫ通知のデータ構造の一例を示す図である。
【図１３Ｂ】図１３Ｂは、図１２に示すユーザ要求の処理が行われる際に用いられるトランザクションデータのデータ構造の一例を示す図である。
【図１３Ｃ】図１３Ｃは、図１２に示すユーザ要求の処理が行われる際に用いられるトランザクションデータのデータ構造の一例を示す図である。
【図１４】図１４は、実施の形態におけるＩｏＴデバイスが故障を検知した際の故障検知処理を示すシーケンス図である。
【図１５】図１５は、図１４に示す故障検知処理が行われる際に用いられるトランザクションデータのデータ構造の一例を示す図である。
【図１６Ａ】図１６Ａは、実施の形態におけるスマートコントラクト部により管理される状態情報を示す図である。
【図１６Ｂ】図１６Ｂは、実施の形態におけるスマートコントラクト部により管理される状態情報を示す図である。
【図１７】図１７は、実施の形態におけるＩｏＴデバイスの制御が不要な場合のユーザ要求の処理の別の例を示すシーケンス図である。
【図１８】図１８は、図１７に示すユーザ要求の処理が行われる際に用いられるＮＧ通知のデータ構造の一例を示す図である。
【図１９】図１９は、比較例における問題を模式的に示す図である。
【図２０】図２０は、本開示における効果を模式的に示す図である。
【発明を実施するための形態】
【００１２】
本開示の一形態に係る制御方法は、１以上のＩｏＴ（Internet of Things）デバイスと、前記１以上のＩｏＴデバイスとネットワークを介して通信可能な複数のサーバとを備えるシステムにおける、前記複数のサーバのうちの第１サーバによって実行される制御方法であって、前記１以上のＩｏＴデバイスのうちの一のＩｏＴデバイスが故障したことを示す故障情報と、前記一のＩｏＴデバイスが前記故障情報を取得したときの時刻情報とを含む第１のトランザクションデータを、前記一のＩｏＴデバイスから取得し、取得した前記第１のトランザクションデータを、前記複数のサーバのうちの前記第１サーバとは異なる複数の第２サーバに転送し、前記複数の第２サーバとともに、前記第１のトランザクションデータの正当性について合意するための第１のコンセンサスアルゴリズムを実行し、前記第１のコンセンサスアルゴリズムによって前記第１のトランザクションデータの正当性が検証された場合、前記第１のトランザクションデータを含むブロックを前記第１サーバの分散台帳に記録する。
【００１３】
これによれば、分散台帳に、ＩｏＴデバイスが故障しているかどうかを示す情報を記録することができる。このため、ＩｏＴデバイスが現実に存在する地点とは異なる場所でＩｏＴデバイスの利用許可を得ようしたときに、ＩｏＴデバイスが故障しているかどうかを知ることができる。よって、故障しているＩｏＴデバイスの利用許可を得てしまうことを抑制できるので、故障しているＩｏＴデバイスまで実際に移動することを抑制でき、移動等の手間が余計にかかることもなく、移動に時間とエネルギーとを費やすことを抑制できる。このようにして、分散台帳を用いて、時間コストとエネルギーコストとをより低減することができる。
【００１４】
ここで、例えば、前記システムは、さらに、前記複数のサーバと前記ネットワークを介して通信可能な端末でありユーザが使用する端末を備え、前記制御方法は、前記端末から、前記ユーザが前記一のＩｏＴデバイスを利用可能かどうか問い合わせるためのユーザ要求を受信した場合、前記一のＩｏＴデバイスが利用可能かどうかを示す状態情報を読み出し、読み出した前記状態情報から、前記一のＩｏＴデバイスが利用可能であることを判定した場合、前記端末に対して、所定の条件下での前記一のＩｏＴデバイスの利用を許可する旨を示す第１信号を送信する。
【００１５】
これによれば、ＩｏＴデバイスが現実に存在する地点とは異なる場所でＩｏＴデバイスの利用許可を得ようしたとき、故障しているＩｏＴデバイスの利用許可を得ることができない。よって、故障しているＩｏＴデバイスの利用許可を得てしまうことを抑制できるので、故障しているＩｏＴデバイスまで実際に移動することを抑制でき、移動等の手間が余計にかかることもなく、移動に時間とエネルギーとを費やすことがなくなる。このようにして、分散台帳を用いて、時間コストとエネルギーコストとを低減することができる。
【００１６】
また、例えば、前記制御方法は、読み出した前記状態情報から、前記一のＩｏＴデバイスが利用不可であることを判定した場合、前記端末に対して、前記一のＩｏＴデバイスの利用を許可しない旨を示す信号を送信する。
【００１７】
これによれば、ＩｏＴデバイスが現実に存在する地点とは異なる場所でＩｏＴデバイスの利用許可を得ようしたとき、故障していないＩｏＴデバイスの利用許可を確実に得ることができる。
【００１８】
また、例えば、前記制御方法は、さらに、前記端末から、前記一のＩｏＴデバイスの利用権を購入した旨を示す第２のトランザクションデータを取得した場合、取得した前記第２のトランザクションデータを、前記複数のサーバのうちの前記複数の第２サーバに転送し、前記複数の第２サーバとともに、前記第２のトランザクションデータの正当性について合意するための第２のコンセンサスアルゴリズムを実行し、前記第２のコンセンサスアルゴリズムによって前記第２のトランザクションデータの正当性が検証された場合、前記第２のトランザクションデータを含むブロックを前記第１サーバの分散台帳に記録する。
【００１９】
これによれば、ＩｏＴデバイスの利用許可を得たこと、すなわちＩｏＴデバイスの利用権を購入したことを履歴として分散台帳に記録することができる。よって、ＩｏＴデバイスの利用権を購入したことが公開され、改ざん検知が可能になるので、ＩｏＴデバイスの利用権についての不正な取引を抑制することができる。
【００２０】
また、例えば、前記状態情報は、さらに、前記一のＩｏＴデバイスの開閉状態を含み、前記制御方法は、さらに、前記端末から、前記利用権に基づく前記一のＩｏＴデバイスの開錠要求を示す第３のトランザクションデータを取得し、取得した前記第３のトランザクションデータを、前記複数の第２サーバに転送し、前記複数の第２サーバとともに、前記第３のトランザクションデータの正当性について合意するための第３のコンセンサスアルゴリズムを実行し、前記第３のコンセンサスアルゴリズムによって前記第３のトランザクションデータの正当性が検証された場合、前記第３のトランザクションデータを含むブロックを前記第１サーバの分散台帳に記録することで、前記状態情報に含まれる前記一のＩｏＴデバイスの開閉状態を変更する。
【００２１】
これによれば、ＩｏＴデバイスの開施錠の履歴を、分散台帳に記録することができる。よって、ＩｏＴデバイスの開施錠の履歴が公開され、改ざん検知が可能になるので、ＩｏＴデバイスの不正な利用を抑制することができる。
【００２２】
また、例えば、前記制御方法は、前記分散台帳に記録された前記第１のトランザクションデータを読み出し、読み出した前記第１のトランザクションデータに基づいて前記状態情報を生成して、前記第１サーバが有するメモリ上に書き出しており、前記端末から、前記ユーザ要求を受信した場合、前記メモリ上における前記状態情報を読み出す。
【００２３】
これによれば、分散台帳に記録されている第１のトランザクションデータを検索せずに、第１サーバのオンメモリに書き出されている状態情報を読み出すことで、ＩｏＴデバイスが利用可能かどうかを判定できる。よって、分散台帳を検索して、状態情報を取得する時間とエネルギーとをより節約することができる。このようにして、分散台帳を用いて、時間コストとエネルギーコストとをより低減することができる。
【００２４】
また、例えば、前記時刻情報は、前記故障情報を取得したときのタイムスタンプまたはシーケンス番号である。
【００２５】
また、例えば、前記制御方法は、前記故障情報を取得した場合、前記分散台帳に格納されたスマートコントラクトを動作させることで、前記第１のトランザクションデータを取得する。
【００２６】
これにより、分散台帳に格納されるスマートコントラクトを用いて、ＩｏＴデバイスの故障検知の結果を分散台帳に記録する仕組みを構築することができる。
【００２７】
また、本開示の一形態に係る制御システムは、１以上のＩｏＴデバイスと、前記１以上のＩｏＴデバイスとネットワークを介して通信可能な複数のサーバとを備え、前記複数のサーバのうちの第１サーバは、前記１以上のＩｏＴデバイスのうちの一のＩｏＴデバイスが故障したことを示す故障情報と、前記一のＩｏＴデバイスが前記故障情報を取得したときの時刻情報とを含む第１のトランザクションデータを、前記一のＩｏＴデバイスから取得し、取得した前記第１のトランザクションデータを、前記複数のサーバのうちの前記第１サーバとは異なる複数の第２サーバに転送し、前記複数の第２サーバとともに、前記第１のトランザクションデータの正当性について合意するための第１のコンセンサスアルゴリズムを実行し、前記第１のコンセンサスアルゴリズムによって前記第１のトランザクションデータの正当性が検証された場合、前記第１のトランザクションデータを含むブロックを前記第１サーバの分散台帳に記録する。
【００２８】
また、本開示の一形態に係る第１サーバは、１以上のＩｏＴデバイスと、前記１以上のＩｏＴデバイスとネットワークを介して通信可能な複数のサーバとを備えるシステムにおける、前記複数のサーバのうちの第１サーバであって、プロセッサと、前記プロセッサに処理を実行させるプログラムが記憶されたメモリと、スマートコントラクトが格納された分散台帳が記憶されている記憶装置とを備え、前記プロセッサは、前記分散台帳に格納されたスマートコントラクトを動作させることで、前記１以上のＩｏＴデバイスのうちの一のＩｏＴデバイスが故障したことを示す故障情報と、前記一のＩｏＴデバイスが前記故障情報を取得したときの時刻情報とを含む第１のトランザクションデータを、前記一のＩｏＴデバイスから取得し、前記プロセッサは、前記メモリに記憶された前記プログラムを実行することにより、取得した前記第１のトランザクションデータを、前記複数のサーバのうちの前記第１サーバとは異なる複数の第２サーバに転送し、前記複数の第２サーバとともに、前記第１のトランザクションデータの正当性について合意するための第１のコンセンサスアルゴリズムを実行し、前記第１のコンセンサスアルゴリズムによって前記第１のトランザクションデータの正当性が検証された場合、前記第１のトランザクションデータを含むブロックを前記第１サーバの分散台帳に記録する。
【００２９】
また、本開示の一形態に係るデータ構造は、１以上のＩｏＴデバイスと、前記１以上のＩｏＴデバイスとネットワークを介して通信可能な複数のサーバとを備えるシステムにおいて分散台帳に記録されるブロックに用いられるデータ構造であって、前記データ構造は、前記１以上のＩｏＴデバイスのうちの一のＩｏＴデバイスが故障したことを示す故障情報と、前記一のＩｏＴデバイスが前記故障情報を取得したときの時刻情報とを含む第１のトランザクションデータを含み、前記第１のトランザクションデータは、前記分散台帳に格納されたスマートコントラクトが動作されることで前記複数のサーバのうちの第１サーバによって取得され、取得された前記第１のトランザクションデータが前記ブロックに含まれて前記分散台帳に記録される。
【００３０】
以下、図面を参照しながら、実施の形態について説明する。なお、以下で説明する実施の形態は、いずれも本開示の好ましい一具体例を示す。つまり、以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。本開示は、請求の範囲の記載に基づいて特定される。したがって、以下の実施の形態における構成要素のうち、本開示の最上位概念を示す独立請求項に記載されていない構成要素は、本開示の課題を達成するために必ずしも必要ではないが、より好ましい形態を構成する構成要素として説明される。
【００３１】
（実施の形態）
以下では、図面を参照しながら、実施の形態における制御システム１について説明する。
【００３２】
［制御システム１の構成］
本開示の制御システム１は、分散台帳に格納されるスマートコントラクトを用いて、ＩｏＴデバイスの故障検知の結果を分散台帳に記録するなど、ブロックチェーン技術を活用してＩｏＴデバイスが故障しているかどうかも記録できる仕組みを有する。
【００３３】
図１は、本実施の形態における制御システム１の構成を模式的に示すブロック図である。
【００３４】
制御システム１は、図１に示されるように、サーバ１０Ａ、１０Ｂ、・・・、１０Ｅと、端末２１と、１以上のＩｏＴデバイス３０とを備える。これらはネットワークＮを介して接続されている。なお、サーバ１０Ａ、１０Ｂ、・・・、１０Ｅを「サーバ１０Ａ等」ともいい、サーバ１０Ａ等のそれぞれを「サーバ１０」ともいう。また、図１では、制御システム１が、５つサーバ１０を備える場合の例が示されているが、これに限らない。すなわち、制御システム１は、６つ以上のサーバ１０を備えてもよい。
【００３５】
［サーバ１０Ａ］
サーバ１０Ａ、１０Ｂ、・・・、１０Ｅは同様の構成であるため、以下では、サーバ１０Ａを例に挙げて説明する。
【００３６】
図２は、図１に示すサーバ１０Ａの全体構成の一例を模式的に示す図である。図３は、本実施の形態に係るサーバ１０Ａの機能構成を示すブロック図である。
【００３７】
サーバ１０Ａは、図２に示すように、記憶装置１２Ａと接続する。なお、サーバ１０Ａは、記憶装置１２ＡとネットワークＮを介して接続されていてもよいし、内部に記憶装置１２Ａを備えるとしてもよい。記憶装置１２Ａは、後述するスマートコントラクト部１４Ａが記憶された分散台帳１３Ａを有する。
【００３８】
サーバ１０Ａは、第１サーバの一例である。本実施の形態では、サーバ１０Ａは、図３に示すように、スマートコントラクト実行部１１１、トランザクションデータ検証部１１２、ブロック生成部１１４、同期部１１５、記録部１１６、及び通信部１１７を備える。サーバ１０Ａは、プロセッサがメモリを用いて所定のプログラムを実行することで実現され得る。以下、各構成要素について説明する。
【００３９】
＜スマートコントラクト実行部１１１＞
スマートコントラクト実行部１１１は、分散台帳１３Ａに格納されているコントラクトコードなどを実行することで、スマートコントラクト部１４Ａを動作させる。スマートコントラクト実行部１１１は、スマートコントラクト部１４Ａを動作させることで、ＩｏＴデバイス３０の利用権の売買、開錠及び施錠などを分散台帳１３Ａによって管理することができる。
【００４０】
本実施の形態では、スマートコントラクト実行部１１１は、スマートコントラクト部１４Ａを実行させる。例えば、スマートコントラクト実行部１１１は、スマートコントラクト部１４Ａに、一のＩｏＴデバイス３０が故障したことを示す故障情報と一のＩｏＴデバイス３０が故障情報を取得したときの時刻情報とを含む第１のトランザクションデータを、取得させる。つまり、スマートコントラクト実行部１１１は、分散台帳１３Ａに格納されたスマートコントラクトを動作させることで、第１のトランザクションデータを取得する。ここで、時刻情報は、当該故障情報を取得したときのタイムスタンプであってもよいし、シーケンス番号であってもよい。
【００４１】
また、スマートコントラクト実行部１１１は、スマートコントラクト部１４Ａを動作させた結果、得られる情報をサーバ１０Ａのオンメモリに保持させてもよい。換言すると、スマートコントラクト実行部１１１は、スマートコントラクト部１４Ａを動作させた結果、分散台帳１３Ａに記録された情報を読み出して、サーバ１０Ａが有するメモリ（オンメモリ）に書き出して保持させてもよい。
【００４２】
なお、スマートコントラクト実行部１１１は、分散台帳１３Ａに記録された第１のトランザクションデータを読み出し、読み出した第１のトランザクションデータに基づいてＩｏＴデバイス３０が利用可能かどうかを示す状態情報を生成してもよい。そして、スマートコントラクト実行部１１１は、生成した状態情報を第１サーバが有するメモリ上に書き出してもよい。スマートコントラクト実行部１１１は、ＩｏＴデバイス３０の利用権の有無、ＩｏＴデバイス３０の鍵の開閉状態を示す情報も同様に、オンメモリに書き出して保持させてもよい。
【００４３】
＜トランザクションデータ検証部１１２＞
トランザクションデータ検証部１１２は、トランザクションデータを受け取った場合、受け取ったトランザクションデータの正当性を検証する。
【００４４】
本実施の形態では、トランザクションデータ検証部１１２は、少なくとも一のＩｏＴデバイス３０が故障したことを示す故障情報と一のＩｏＴデバイス３０が故障情報を取得したときの時刻情報とを含む第１のトランザクションデータをスマートコントラクト実行部１１１から受け取る。すると、トランザクションデータ検証部１１２は、受け取った第１のトランザクションデータに含まれる電子署名の検証を行い、第１のトランザクションデータの正当性の検証を行う。また、トランザクションデータ検証部１１２は、一のＩｏＴデバイス３０の利用権を購入した旨を示す第２のトランザクションデータを受け取った場合、第２のトランザクションデータに含まれる電子署名の検証を行い、第２のトランザクションデータの正当性の検証を行う。同様に、トランザクションデータ検証部１１２は、一のＩｏＴデバイス３０の鍵の開錠要求を示す第３のトランザクションデータを受け取った場合、第３のトランザクションデータに含まれる電子署名の検証を行い、第３のトランザクションデータの正当性の検証を行う。
【００４５】
このように、トランザクションデータ検証部１１２は、取得したトランザクションデータを検証する。そして、トランザクションデータ検証部１１２は、検証した結果、トランザクションデータの正当性を確認した場合、そのトランザクションデータを記録部１１６に記録するとともに、同期部１１５へ通知する。
【００４６】
なお、トランザクションデータ検証部１１２は、トランザクションデータがトランザクションデータ生成部１１３により生成される場合には、トランザクションデータの正当性の検証を行わなくてもよい。
【００４７】
＜ブロック生成部１１４＞
ブロック生成部１１４は、第１のサーバと異なる他の第２のサーバ（サーバ１０Ｂ〜１０Ｅ）とともに、トランザクションデータの正当性について合意するためのコンセンサスアルゴリズムを実行する。
【００４８】
ここでのコンセンサスアルゴリズムは、第１のコンセンサスアルゴリズム〜第３のコンセンサスアルゴリズムに対応する。つまり、第１のコンセンサスアルゴリズム〜第３のコンセンサスアルゴリズムは同一のコンセンサスアルゴリズムであり別タイミングで実施されたことを示すに過ぎない。また、ここでのトランザクションデータは、第１のトランザクションデータ〜第３のトランザクションデータに対応する。
【００４９】
このように、ブロック生成部１１４は、複数の認証サーバの間でコンセンサスアルゴリズムを実行する。コンセンサスアルゴリズムには、ＰＢＦＴ（Ｐｒａｃｔｉｃａｌ  Ｂｙｚａｎｔｉｎｅ  Ｆａｕｌｔ  Ｔｏｌｅｒａｎｃｅ）とよばれるコンセンサスアルゴリズムを用いてもよいし、その他の公知のコンセンサスアルゴリズムを用いてもよい。公知のコンセンサスアルゴリズムとしては、例えばＰＯＷ（Ｐｒｏｏｆ  Ｏｆ  Ｗｏｒｋ）またはＰＯＳ（Ｐｒｏｏｆ  Ｏｆ  Ｓｔａｋｅ）などがある。なお、ＰＢＦＴを用いる場合、ブロック生成部１１４は、まず、他の認証サーバ２００ｂ、２００ｃのそれぞれからトランザクションの検証が成功したか否かを示す報告を受け取り、当該報告の数が所定の数を超えたか否かを判定する。そして、ブロック生成部１１４は、当該報告の数が所定の数を超えたとき、コンセンサスアルゴリズムによってトランザクションデータの正当性が検証された場合であると判定すればよい。
【００５０】
また、ブロック生成部１１４は、コンセンサスアルゴリズムによってトランザクションデータの正当性が検証された場合、トランザクションデータを含むブロックを、サーバ１０Ａの記憶装置１２Ａの分散台帳に記録する。
【００５１】
このように、本実施の形態では、ブロック生成部１１４は、サーバ１０Ａ〜サーバ１０Ｅの間でコンセンサスアルゴリズムを実行する。より具体的には、ブロック生成部１１４は、まず、１以上のトランザクションデータを含むブロックチェーンのブロックを生成する。次に、ブロック生成部１１４は、コンセンサスアルゴリズムを実行する。そして、ブロック生成部１１４は、コンセンサスアルゴリズムを実行することで合意形成ができた場合、生成したブロックを記録部１１６に記録する。ブロック生成部１１４により生成されたブロックは、記録部１１６により、分散台帳１３Ａに格納されているブロックチェーンに接続されて記録される。
【００５２】
ここで、ブロックチェーンのデータ構造と、トランザクションデータのデータ構造とについて説明する。
【００５３】
図４は、ブロックチェーンのデータ構造を示す説明図である。
【００５４】
ブロックチェーンは、その記録単位であるブロックがチェーン（鎖）状に接続されたものである。それぞれのブロックは、複数のトランザクションデータと、直前のブロックのハッシュ値とを有している。具体的には、ブロックＢ２には、その前のブロックＢ１のハッシュ値が含まれている。そして、ブロックＢ２に含まれる複数のトランザクションデータと、ブロックＢ１のハッシュ値とから演算されたハッシュ値が、ブロックＢ２のハッシュ値として、ブロックＢ３に含められる。このように、前のブロックの内容をハッシュ値として含めながら、ブロックをチェーン状に接続することで、接続されたトランザクションデータの改ざんを有効に防止する。
【００５５】
仮に過去のトランザクションデータが変更されると、ブロックのハッシュ値が変更前と異なる値になり、改ざんしたブロックを正しいものとみせかけるには、それ以降のブロックすべてを作り直さなければならず、この作業は現実的には非常に困難である。
【００５６】
図５は、トランザクションデータのデータ構造を示す説明図である。
【００５７】
図５に示されるトランザクションデータＤ１は、第１のトランザクションデータ〜第３のトランザクションデータの一例である。トランザクションデータＤ１は、ユーザＡなどの要求者を示すＰ１と、スマートコントラクトアドレス、関数名、引数を示すアドレスＰ２と、アドレスＰ１及びＰ２のハッシュ値に対して、要求者の署名鍵で署名することで生成される電子署名Ｐ３とを含んでいる。なお、スマートコントラクトアドレス、関数名、引数は、例えばＪＳＯＮ形式で記述されるが、これに限らない。スマートコントラクトアドレスは、契約のためのプログラムであるスマートコントラクトのアドレスである。
【００５８】
＜同期部１１５＞
同期部１１５は、複数のサーバ（サーバ１０Ａ〜サーバ１０Ｅ）の間でブロックチェーンのブロック、または、トランザクションデータの同期を行う。
【００５９】
本実施の形態では、同期部１１５は、第１〜第３のトランザクションデータの検証が成功した場合、他の複数のサーバ（サーバ１０Ｂ〜サーバ１０Ｅ）に第１〜第３のトランザクションデータの複製を転送する。
【００６０】
複数のサーバ（サーバ１０Ａ〜１０Ｅ）では、ｐｅｅｒ  ｔｏ  ｐｅｅｒでブロックチェーンのトランザクションデータの同期が行われる。そして、同期部１１５は、同期が行われたブロックチェーンのトランザクションデータを記録部１１６に記録する。
【００６１】
例えば、同期部１１５は、第１のトランザクションデータの正当性が検証されると、他の複数のサーバ（サーバ１０Ｂ〜１０Ｅ）に第１のトランザクションデータ内容を転送する。また、同期部１１５は、検証された第１のトランザクションデータを記録部１１６に記録する。
【００６２】
また、例えば、同期部１１５は、他のサーバ（サーバ１０Ｂ〜１０Ｅのいずれか）から第１のトランザクションデータを受信した場合、第１のトランザクションデータを記録部１１６に記録する。なお、第２及び第３のトランザクションデータも同様のため説明を省略する。
【００６３】
＜記録部１１６＞
記録部１１６は、トランザクションデータをブロックに含めて、記憶装置１２Ａの分散台帳１３Ａに記録する。本実施の形態では、記録部１１６は、第１のコンセンサスアルゴリズムによって第１のトランザクションデータの正当性が検証された場合、第１のトランザクションデータを含むブロックをサーバ１０Ａの分散台帳１３Ａに記録する。なお、第２及び第３のトランザクションデータも同様のため説明を省略する。
【００６４】
＜通信部１１７＞
通信部１１７は、端末２１、ＩｏＴデバイス３０、及び、他の複数のサーバ１０（サーバ１０Ｂ〜１０Ｅ）との通信を行う。より具体的には、通信部１１７は、端末２１、ＩｏＴデバイス３０、及び、他の複数のサーバ１０（サーバ１０Ｂ〜１０Ｅ）との通信を行う通信インタフェースである。端末２１、ＩｏＴデバイス３０、及び、他の複数のサーバ１０（サーバ１０Ｂ〜１０Ｅ）との通信は、ＴＬＳによりなされてもよい。この場合、ＴＬＳ通信用の暗号鍵は通信部１１７で保持してもよい。
【００６５】
［記憶装置１２Ａの構成］
記憶装置１２Ａは、ＩｏＴデバイス３０の利用権の売買、開錠及び施錠を管理するための分散台帳１３Ａを有している。記憶装置１２Ａは、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）又はＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などにより実現される。
【００６６】
分散台帳１３Ａは、ブロックチェーンのトランザクションデータ及びブロックが電子的に記録される。また、分散台帳１３Ａは、プログラムであるスマートコントラクト部１４Ａが格納されている。記憶装置１２Ａは、例えばコントラクトコードと呼ばれるプログラムコードを記憶しており、このコントラクトコードを実行することで、スマートコントラクト部１４Ａを実行させることができるとしてもよい。
【００６７】
［スマートコントラクト部１４Ａの構成］
図６は、本実施の形態におけるスマートコントラクト部１４Ａの機能構成を示すブロック図である。
【００６８】
スマートコントラクト部１４Ａは、図６に示されるように、デバイス利用権管理部１４１と、サービス提供部１４２と、故障登録部１４５とで構成される。
【００６９】
＜デバイス利用権管理部１４１＞
デバイス利用権管理部１４１は、ＩｏＴデバイス３０の利用権を管理する。本実施の形態では、デバイス利用権管理部１４１は、端末２１から、対象のＩｏＴデバイス３０が利用可能かの問い合わせをユーザ要求として受信すると、分散台帳１３Ａに記録されている、対象のＩｏＴデバイス３０の利用権の最新状況を確認する。デバイス利用権管理部１４１は、問い合わせの内容に応じて、対象のＩｏＴデバイス３０の利用権の購入が可能な状態かどうか、または、対象のＩｏＴデバイス３０の利用権が端末２１のユーザＡに購入されている状態であるかを確認し、サービス提供部１４２に通知する。
【００７０】
＜サービス提供部１４２＞
サービス提供部１４２は、利用可否判断部１４３と、台帳イベント発行部１４４と、で構成されている。
【００７１】
利用可否判断部１４３は、対象のＩｏＴデバイス３０の利用権のあるユーザＡからの要求であるかどうか、及び、対象のＩｏＴデバイス３０がサービス提供可能であるかどうかを判断する。
【００７２】
より具体的には、利用可否判断部１４３は、ユーザＡが一のＩｏＴデバイス３０を利用可能かどうか問い合わせるためのユーザ要求を端末２１から受信した場合、当該一のＩｏＴデバイス３０が利用可能かどうかを示す状態情報を読み出す。ここで、状態情報がオンメモリすなわちサーバ１０Ａのメモリに保持されていてもよい。この場合、利用可否判断部１４３は、当該ユーザ要求を端末２１から受信した場合、サーバ１０Ａのメモリにおける状態情報を読み出せばよい。
【００７３】
利用可否判断部１４３は、読み出した状態情報から、当該一のＩｏＴデバイス３０が利用可能であることを判定した場合、端末２１に対して、所定の条件下での当該一のＩｏＴデバイス３０の利用を許可する旨を示す第１信号を送信する。一方、利用可否判断部１４３は、読み出した状態情報から、当該一のＩｏＴデバイス３０が利用不可であることを判定した場合、端末２１に対して、当該一のＩｏＴデバイスの利用を許可しない旨を示す信号を送信する。
【００７４】
本実施の形態では、利用可否判断部１４３は、ユーザ要求を受信すると、分散台帳１３Ａに記録されている第１のトランザクションデータから取得できるまたはオンメモリ上にある状態情報を読み出して、対象のＩｏＴデバイス３０が故障状態であるか否かを確認する。
【００７５】
また、利用可否判断部１４３は、デバイス利用権管理部１４１から通知された利用権の最新状況と、対象のＩｏＴデバイス３０が故障状態であるか否かとから、対象のＩｏＴデバイス３０が利用可能かどうかを判断する。
【００７６】
利用可否判断部１４３は、対象のＩｏＴデバイス３０が利用可能であると判断すると、端末２１に対して、ＯＫ通知を送信する。ＯＫ通知は、ユーザ要求の内容に応じて、対象のＩｏＴデバイス３０が利用可能であり利用権を購入可能であること、または、対象のＩｏＴデバイス３０の利用権を端末２１のユーザＡが購入済であり、当該ＩｏＴデバイス３０が利用可能であることを示す。
【００７７】
一方、利用可否判断部１４３は、対象のＩｏＴデバイス３０が利用可能でないと判断すると、端末２１に対して、ＮＧ通知を示す信号を送信する。ＮＧ通知は、ユーザ要求の内容に応じて、対象のＩｏＴデバイス３０の利用権が他者により購入済で利用不可であること、または、対象のＩｏＴデバイス３０が故障しており、利用不可であることを示す。
【００７８】
台帳イベント発行部１４４は、サービス提供に必要な台帳イベントを発行する。本実施の形態では、台帳イベント発行部１４４は、端末２１から、ＩｏＴデバイス３０の鍵の開閉要求のトランザクションデータを受け取る（取得する）と、分散台帳１３Ａに記録されているＩｏＴデバイス３０の鍵の開閉状態を変更する。より具体的には、台帳イベント発行部１４４は、当該開閉要求のトランザクションデータを受け取ると、サーバ１０Ａに送信する。すると、サーバ１０Ａは、当該開閉要求のトランザクションを有するブロックをコンセンサスアルゴリズムで同期した後に、当該ブロックを分散台帳１３Ａに記録することで、分散台帳１０Ａ上での状態変更を発生させる。ここで、当該開閉要求のトランザクションデータは、例えば図５に示すＰ２において、コントラクトアドレスと鍵の開閉処理用の関数と引数とがＪＳＯＮ形式で設定されている。
【００７９】
また、本実施の形態では、台帳イベント発行部１４４は、例えばオンメモリ上に保持されている対象のＩｏＴデバイス３０の鍵の開閉状態を変更させる。例えば、台帳イベント発行部１４４は、オンメモリ上に保持されている対象のＩｏＴデバイス３０の鍵の開閉状態を施錠状態から開錠状態に変更させる。
【００８０】
なお、台帳イベント発行部１４４は、対象のＩｏＴデバイス３０から、鍵の開閉状態を変更させた旨を示すトランザクションデータを受け取る場合、当該トランザクションデータを分散台帳１３Ａに記録させてもよい。
【００８１】
また、台帳イベント発行部１４４は、対象のＩｏＴデバイス３０の利用権をユーザＡが購入した旨を示すトランザクションデータを端末２１から受け取る場合、当該トランザクションデータを分散台帳１３Ａに記録させてもよい。
【００８２】
＜故障登録部１４５＞
故障登録部１４５は、ＩｏＴデバイス３０自身からの故障通知であることを確認し、サービスを提供不可状態にする。
【００８３】
本実施の形態では、故障登録部１４５は、一のＩｏＴデバイス３０が故障したことを検知した旨の故障通知を取得すると、当該ＩｏＴデバイス３０そのものからの故障通知であるかどうかを電子署名等により確認する。故障登録部１４５は、ＩｏＴデバイス３０そのものからの故障通知であることを確認すると、オンメモリ上の当該ＩｏＴデバイス３０の状態情報を、正常から故障を示す情報に変更する。
【００８４】
なお、故障登録部１４５は、一のＩｏＴデバイス３０が故障したことを示す故障情報と、当該一のＩｏＴデバイス３０が検知情報または故障情報を取得したときの時刻情報とを含む第１のトランザクションデータを、一のＩｏＴデバイス３０から受け取るとしてもよい。。この場合、故障登録部１４５は、受け取った第１のトランザクションデータをサーバ１０Ａに送信し、サーバ１０Ａに分散台帳１３Ａに記録させる。このようにして、故障登録部１４５は、一のＩｏＴデバイス３０が故障したことを分散台帳１３Ａに登録できる。
【００８５】
［ＩｏＴデバイス３０］
ＩｏＴデバイス３０は、例えば宅配ボックス、シェアリングカー、シェアリングバイク、ホテルの部屋などである。ＩｏＴデバイス３０は、これらに限られず、ユーザＡが利用許可を得ようとする地点と、現実に利用する地点とが離れているデバイスであれば該当し得る。また、ＩｏＴデバイス３０は、利用を許可された者すなわち開施錠をすることができる権限（利用権）を有する者のみが用いることができる。開施錠をすることができる権限（利用権）を有する者は、例えば１人であるが、１人に限られない。
【００８６】
例えば図１に示すように、ＩｏＴデバイス３０が宅配ボックスの場合には、それぞれ物品５を格納できる１以上のユニット３１を備える。ユニット３１は、物品５の一時的な格納場所であり、ユーザＡが他のユーザに物品５を渡すために用いられる。
【００８７】
なお、ＩｏＴデバイス３０の開錠又は施錠の制御は、サーバ１０Ａ等で動作するスマートコントラクトによりなされる。また、ＩｏＴデバイス３０は、自身を制御する機能以外に、自身が故障したことを検知する機能と、故障したことを示す故障情報をサーバ１０Ａに通知する機能とを有する。これらの機能すなわち自身を制御する機能と検知する機能と通知する機能とは、ＩｏＴデバイス３０に記録されたプログラム（以降ＩｏＴデバイス管理部３２と称する）によりなされる。
【００８８】
［ＩｏＴデバイス管理部３２の構成］
図７は、本実施の形態におけるＩｏＴデバイス管理部３２の機能構成を示すブロック図である。
【００８９】
ＩｏＴデバイス管理部３２は、図７に示されるように、台帳イベント監視部３２１と、デバイス制御部３２２と、故障制御部３２３とで構成される。
【００９０】
＜台帳イベント監視部３２１＞
台帳イベント監視部３２１は、分散台帳１３Ａに記録されるイベントを監視し、スマートコントラクト部１４Ａが発行したイベントを取得する。このイベントには、トランザクションデータも含まれる。
【００９１】
本実施の形態では、台帳イベント監視部３２１は、オンメモリ上に保持されているＩｏＴデバイス３０の鍵の開閉状態を監視している。台帳イベント監視部３２１は、オンメモリ上に保持されている一のＩｏＴデバイス３０の鍵の開閉状態が変更されると、当該一のＩｏＴデバイス３０の鍵の開閉状態を、スマートコントラクト部１４Ａが発行したイベント種別として取得する。また、台帳イベント監視部３２１は、取得したイベント種別に基づいて、当該一のＩｏＴデバイス３０の鍵を、変更された開閉状態となるようにデバイス制御部３２２に指示してもよい。
【００９２】
なお、台帳イベント監視部３２１は、スマートコントラクト部１４Ａにより、分散台帳１３Ａを監視していてもよい。例えば、台帳イベント監視部３２１は、対象のＩｏＴデバイス３０の鍵の開閉状態を変更させたトランザクションデータが分散台帳１３Ａに記録された場合、そのことをスマートコントラクト部１４Ａが発行したイベント種別として取得してもよい。また、取得したイベント種別に基づいて、台帳イベント監視部３２１は、分散台帳１３Ａに記録された対象のＩｏＴデバイス３０の鍵の開閉状態となるようにデバイス制御部３２２に指示してもよい。
【００９３】
＜デバイス制御部３２２＞
デバイス制御部３２２は、台帳イベント監視部３２１が取得したイベント種別に基づき、ＩｏＴデバイス３０を制御する。
【００９４】
本実施の形態では、デバイス制御部３２２は、オンメモリ上で変更された、または分散台帳１３Ａに新たに記録された対象のＩｏＴデバイス３０の鍵の開閉状態に基づき、対象のＩｏＴデバイス３０の鍵の開施錠を制御する。デバイス制御部３２２は、台帳イベント監視部３２１により指示された内容に基づき、対象のＩｏＴデバイス３０の鍵の開施錠を制御してもよい。
【００９５】
なお、デバイス制御部３２２は、対象のＩｏＴデバイス３０の鍵の開施錠を制御した後、その旨を示すトランザクションデータを生成し、サーバ１０Ａに送信してもよい。この場合、当該トランザクションデータには、対象のＩｏＴデバイス３０の鍵が開錠された旨を示す開錠情報と当該開錠情報を取得したときの時刻情報とが含まれる。
【００９６】
このようにして、デバイス制御部３２２は、例えばスマートコントラクト部１４Ａが対象のＩｏＴデバイスの利用権に基づく当該ＩｏＴデバイスの開錠要求を取得した場合、当該ＩｏＴデバイスの鍵を開錠する。
【００９７】
＜故障制御部３２３＞
故障制御部３２３は、故障検知部３２４と故障通知部３２５とで構成されている。
【００９８】
故障検知部３２４は、ＩｏＴデバイス３０の故障を検知する。本実施の形態では、故障検知部３２４は、ＩｏＴデバイス３０の状態を常時または所定期間毎に確認することで、ＩｏＴデバイス３０の故障を検知する。
【００９９】
故障通知部３２５は、分散台帳１３Ａに記録されたスマートコントラクト部１４Ａの故障登録部１４５を利用することで、ＩｏＴデバイス３０の故障を通知する。本実施の形態では、故障通知部３２５は、故障検知部３２４によりＩｏＴデバイス３０の故障が検知されると、第１のトランザクションデータを、スマートコントラクト部１４Ａの故障登録部１４５に送信する。第１のトランザクションデータは、上述したように、当該ＩｏＴデバイス３０が故障したことを示す故障情報と、当該ＩｏＴデバイスが故障情報を検知したときの時刻情報とを含む。なお、故障通知部３２５は、第１のトランザクションデータに、当該ＩｏＴデバイス３０を識別する番号等の識別情報と送信元を示す識別情報とを含めて、スマートコントラクト部１４Ａの故障登録部１４５に送信してもよい。
【０１００】
［端末２１］
端末２１は、複数のサーバ１０（サーバ１０Ａ、１０Ｂ、・・・、１０Ｅ）とネットワークＮを介して通信可能な端末であって、ユーザＡが使用する端末である。端末２１は、例えばスマートフォン、パーソナルコンピュータなどである。
【０１０１】
端末２１は、ＩｏＴデバイス３０を利用するための利用権の取得するための操作、または鍵の開錠又は施錠のための操作をユーザから受け、その操作に係る情報をユーザ要求としてサーバ１０Ａなどに送信する。図１では、端末２１は、ユーザＡにより使用され、他のユーザに物品５を渡すために宅配ボックスであるＩｏＴデバイス３０の一のユニット３１を利用しようとする場面が示されている。
【０１０２】
なお、端末２１では、ユーザＡより操作を受け付けたり、サーバ１０Ａにユーザ要求を送信するためにユーザＡの本人認証をしたりする機能は、端末２１に記録されたプログラム（以降、ユーザ要求処理部２２と称する）によりなされる。
【０１０３】
［ユーザ要求処理部２２の構成］
図８は、本実施の形態におけるユーザ要求処理部２２の機能構成を示すブロック図である。
【０１０４】
ユーザ要求処理部２２は、図８に示されるように、ユーザ要求受付部２２１と、ユーザ認証部２２２と、トランザクションデータ処理部２２３とで構成される。
【０１０５】
＜ユーザ要求受付部２２１＞
ユーザ要求受付部２２１は、ＩｏＴデバイス３０の開錠等のユーザ要求を受け付ける。
【０１０６】
本実施の形態では、ユーザ要求受付部２２１は、対象のＩｏＴデバイス３０が利用可能かどうかの問い合わせ、または、対象のＩｏＴデバイス３０の開錠要求を示すユーザ要求を受け付ける。なお、ユーザ要求は、これら以外に、対象のＩｏＴデバイス３０利用権をユーザＡが有するかの問い合わせであってもよい。
【０１０７】
＜ユーザ認証部２２２＞
ユーザ認証部２２２は、ユーザ要求を発行しているユーザの本人認証を実施する。
【０１０８】
本実施の形態では、ユーザ認証部２２２は、ユーザ要求受付部２２１が受け付けたユーザ要求の正当性の検証のために、ユーザ要求を行ったユーザＡの本人認証を行う。
【０１０９】
＜トランザクションデータ処理部２２３＞
トランザクションデータ処理部２２３は、利用可否問い合わせ部２２４と、トランザクションデータ生成部２２５とで構成されている。
【０１１０】
利用可否問い合わせ部２２４は、ユーザ要求に基づくトランザクションデータの受付が可能であるかの問い合わせを行う。本実施の形態では、利用可否問い合わせ部２２４は、対象のＩｏＴデバイス３０が利用可能かどうかの問い合わせ、対象のＩｏＴデバイス３０の開錠要求が受け付けられるかどうかの問い合わせを行う。なお、この問い合わせは、要求者を示す情報と、問い合わせ内容を示す情報と、問い合わせたいＩｏＴデバイス３０を識別する番号等の識別情報とを含むトランザクションデータが生成され、スマートコントラクト部１４Ａに送信されることで行われてもよい。
【０１１１】
トランザクションデータ生成部２２５は、ユーザ要求に基づくトランザクションデータを分散台帳１３Ａに発行する。なお、ユーザ要求に基づくトランザクションデータは、ユーザＡの秘密鍵で暗号化されており、この秘密鍵を用いることでユーザＡの本人認証を行うことができる。
【０１１２】
本実施の形態では、トランザクションデータ生成部２２５は、問い合わせを示すトランザクションデータを生成してもよい。また、トランザクションデータ生成部２２５は、一のＩｏＴデバイス３０の利用権を購入する旨を示すトランザクションデータを生成してもよい。また、トランザクションデータ生成部２２５は、対象のＩｏＴデバイス３０の開錠要求を示すユーザ要求として、対象のＩｏＴデバイス３０の開錠要求を示すトランザクションデータを生成してもよい。
【０１１３】
［本開示の制御方法］
次に、制御システム１が行う制御方法の概要について説明する。
【０１１４】
図９は、本実施の形態における制御システム１が実行する制御方法を示すフローチャートである。
【０１１５】
図９に示されるように、まず、例えばサーバ１０Ａなどの制御システム１における第１サーバは、１以上のＩｏＴデバイス３０のうち少なくとも一のＩｏＴデバイス３０から第１のトランザクションデータを取得したかどうかを確認する（Ｓ１２）。ここで、第１のトランザクションデータには、少なくとも一のＩｏＴデバイスが故障したことを示す故障情報と、当該少なくとも一のＩｏＴデバイスが故障情報を取得したときの時刻情報とが含まれている。
【０１１６】
ステップＳ１２において、第１サーバは、少なくとも一のＩｏＴデバイス３０から第１のトランザクションデータを取得した場合（Ｓ１２でＹｅｓ）、取得した第１のトランザクションデータを、複数のサーバ１０のうちの第１サーバとは異なる複数の第２サーバに転送する（Ｓ１３）。
【０１１７】
次に、第１サーバは、複数の第２サーバとともに、第１のトランザクションデータの正当性について合意するための第１のコンセンサスアルゴリズムを実行する（Ｓ１４）。
【０１１８】
次に、第１サーバは、第１のコンセンサスアルゴリズムによって第１のトランザクションデータの正当性が検証された場合（Ｓ１５でｙｅｓ）、第１のトランザクションデータを含むブロックを第１サーバの分散台帳に記録する（Ｓ１６）。
【０１１９】
なお、第１サーバは、第１のコンセンサスアルゴリズムによって第１のトランザクションデータの正当性が検証されなかった場合（Ｓ１５でＮｏ）、処理を終了する。
【０１２０】
以下、制御システム１が行う制御方法の具体的態様について説明する。以下では、ＩｏＴデバイス３０が、宅配ボックスであり、ＩＤ０００１〜ＩＤ０００３が付与された３つのユニット３１で構成されているとして説明する。
【０１２１】
［ＩｏＴデバイス３０の制御が不要なユーザ要求処理］
図１０は、本実施の形態におけるＩｏＴデバイス３０の制御が不要な場合のユーザ要求の処理を示すシーケンス図である。図１１Ａ及び図１１Ｃは、図１０に示すユーザ要求の処理が行われる際に用いられるトランザクションデータのデータ構造の一例を示す図である。図１１Ｂは、図１０に示すユーザ要求の処理が行われる際に用いられるＯＫ通知のデータ構造の一例を示す図である。図１０に示す例では、対象（つまり利用対象）のＩｏＴデバイス３０は故障しておらず、対象のＩｏＴデバイス３０の利用権も購入できる状態であるとして説明する。
【０１２２】
図１０に示されるように、まず、ユーザＡは、例えばＩｏＴデバイス３０のＩＤ０００２のユニット３１の利用許可を得たい旨のユーザ要求を端末２１に行う。すると、端末２１のユーザ要求処理部２２は、ユーザ要求を受け付けて、ユーザ要求を発行したユーザＡが本人であるかを認証するユーザ認証処理を実施する（Ｓ１０１）。
【０１２３】
次に、ユーザ要求処理部２２は、ステップＳ１０１においてユーザＡのユーザ認証が成功すると、ＩＤ０００２のユニット３１が利用可能かどうかの問い合わせを分散台帳１３Ａに発行する（Ｓ１０２）。本実施の形態では、ユーザ要求処理部２２は、図１１Ａに示すようなデータ構造で構成されるトランザクションデータを分散台帳１３Ａに発行することで、スマートコントラクト部１４Ａを動作させる。図１１Ａには、要求者がユーザＡであることを示すｕｓｒＡと、ＩＤ０００２のユニット３１の識別情報を示す０００２と、ＩＤ０００２のユニット３１の利用可能かどうかの問い合わせを示すｑｕｅｒｙ＿ｒｅｓｅｒｖｅとを含むデータ構造で構成されるトランザクションデータが示されている。なお、図１１Ａでは、ＩＤ０００２のユニット３１の利用可能かどうかの問い合わせとして、ＩＤ０００２のユニット３１の利用権が購入済かどうかを問い合わせている。
【０１２４】
次に、スマートコントラクト部１４Ａは、分散台帳１３Ａの最新状態を確認することで、ＩＤ０００２のユニット３１の利用権の状況と、サービスモードとを確認する（Ｓ１０３）。
【０１２５】
次に、スマートコントラクト部１４Ａは、確認したＩＤ０００２のユニット３１の利用権の状況とサービスモードとから、ＩＤ０００２のユニット３１がサービス提供可能であるかどうかを判断する（Ｓ１０４）。ここでは、スマートコントラクト部１４Ａは、ＩＤ０００２のユニット３１の利用権が購入できる状況であり、ＩＤ０００２のユニット３１が壊れていないので、ＩＤ０００２のユニット３１が利用可能であると判断する。
【０１２６】
次に、スマートコントラクト部１４Ａは、ＩＤ０００２のユニット３１が利用可能であると判断したので、ＯＫ通知を端末２１のユーザ要求処理部２２に送信する（Ｓ１０５）。本実施の形態では、スマートコントラクト部１４Ａは、図１１Ｂに示すようなデータ構造で構成されるＯＫ通知をユーザ要求処理部２２に送信する。図１１Ｂには、ＩＤ０００２のユニット３１の識別情報を示す０００２と、ＩＤ０００２のユニット３１が使われていないことを示すＮｏｔｕｓｅと、利用権を購入できる金額を示す１００円とを含むデータ構造で構成されるＯＫ通知のデータ構造が示されている。
【０１２７】
次に、ユーザ要求処理部２２は、ＩＤ０００２のユニット３１の利用権を購入する旨を示すトランザクションデータを分散台帳１３Ａに発行する（Ｓ１０６）。本実施の形態では、ユーザ要求処理部２２は、図１１Ｃに示すようなデータ構造で構成されるトランザクションデータを生成し、分散台帳１３Ａに送信することで、スマートコントラクト部１４Ａを動作させる。図１１Ｃには、要求者がユーザＡであることを示すｕｓｒＡと、ＩＤ０００２のユニット３１の識別情報を示す０００２と、ＩＤ０００２のユニット３１の予約すなわち利用権の購入する旨を示すｒｅｓｅｒｖｅとを含むデータ構造で構成されるトランザクションデータが示されている。
【０１２８】
次に、スマートコントラクト部１４Ａは、ＩＤ０００２のユニット３１の利用権をユーザＡが購入した旨を示すトランザクションデータを分散台帳１３Ａに発行するサービス処理を行う（Ｓ１０７）。本実施の形態では、スマートコントラクト部１４Ａは、ＩＤ０００２のユニット３１の利用権をユーザＡが購入した旨を示す第２のトランザクションデータをユーザ要求処理部２２から受け取ると、サーバ１０に送信して分散台帳１３Ａに記録させる。
【０１２９】
［ＩｏＴデバイス３０の制御が必要なユーザ要求処理］
図１２は、本実施の形態におけるＩｏＴデバイス３０の制御が必要な場合のユーザ要求の処理を示すシーケンス図である。図１３Ａは、図１２に示すユーザ要求の処理が行われる際に用いられるＯＫ通知のデータ構造の一例を示す図である。図１３Ｂ及び図１３Ｃは、図１２に示すユーザ要求の処理が行われる際に用いられるトランザクションデータのデータ構造の一例を示す図である。図１２に示す例では、対象のＩｏＴデバイス３０は故障しておらず、対象のＩｏＴデバイス３０の利用権がユーザＡに購入された状態であるとして説明する。
【０１３０】
図１２に示されるように、まず、ユーザＡは、例えばＩｏＴデバイス３０のＩＤ０００２のユニット３１の鍵の開錠要求を示すユーザ要求を端末２１に行う。すると、端末２１のユーザ要求処理部２２は、当該ユーザ要求を受け付けて、ユーザ要求を発行したユーザＡが本人であるかを認証するユーザ認証処理を実施する（Ｓ２０１）。
【０１３１】
次に、ユーザ要求処理部２２は、ステップＳ２０１においてユーザＡのユーザ認証が成功すると、ＩＤ０００２のユニット３１が利用可能かどうかの問い合わせを分散台帳１３Ａに発行する（Ｓ２０２）。本実施の形態では、ユーザ要求処理部２２は、図１１Ａに示すようなデータ構造で構成されるトランザクションデータを分散台帳１３Ａに発行することで、スマートコントラクト部１４Ａを動作させる。
【０１３２】
次に、スマートコントラクト部１４Ａは、分散台帳１３Ａの最新状態を確認することで、ＩＤ０００２のユニット３１の利用権の状況と、サービスモードとを確認する（Ｓ２０３）。
【０１３３】
次に、スマートコントラクト部１４Ａは、確認したＩＤ０００２のユニット３１の利用権の状況と、サービスモードとから、ＩＤ０００２のユニット３１がサービス提供可能であるかどうかを判断する（Ｓ２０４）。ここでは、スマートコントラクト部１４Ａは、ＩＤ０００２のユニット３１の利用権がユーザに購入されている状況であり、ＩＤ０００２のユニット３１が壊れていないので、ＩＤ０００２のユニット３１が利用可能であると判断する。
【０１３４】
次に、スマートコントラクト部１４Ａは、ＩＤ０００２のユニット３１が利用可能であると判断したので、ＯＫ通知を端末２１のユーザ要求処理部２２に送信する（Ｓ２０５）。本実施の形態では、スマートコントラクト部１４Ａは、図１３Ａに示すようなデータ構造で構成されるＯＫ通知をユーザ要求処理部２２に送信する。図１３Ａには、ＩＤ０００２のユニット３１の識別情報を示す０００２と、ＩＤ０００２のユニット３１の利用権がユーザＡに購入されていることを示すｕｓｒＡと、利用権が購入された金額を示す１００円とを含むデータ構造で構成されるＯＫ通知のデータ構造が示されている。
【０１３５】
次に、ユーザ要求処理部２２は、ＩＤ０００２のユニット３１の鍵の開錠要求を示すトランザクションデータを分散台帳１３Ａに発行する（Ｓ２０６）。本実施の形態では、ユーザ要求処理部２２は、図１３Ｂに示すようなデータ構造で構成されるトランザクションデータを生成し、分散台帳１３Ａに送信することで、スマートコントラクト部１４Ａを動作させる。図１３Ｂには、要求者がユーザＡであることを示すｕｓｒＡと、ＩＤ０００２のユニット３１の識別情報を示す０００２と、ＩＤ０００２のユニット３１の鍵の開錠要求を示すｏｐｅｎとを含むデータ構造で構成されるトランザクションデータが示されている。
【０１３６】
次に、スマートコントラクト部１４Ａは、ユーザ要求処理部２２から、当該開錠要求を示すトランザクションデータを取得すると、オンメモリ上に保持されているＩＤ０００２のユニット３１の鍵の開閉状態を、ｏｐｅｎすなわち開錠状態に移行させるサービス処理を行う（Ｓ２０７）。また、スマートコントラクト部１４Ａは、分散台帳１３Ａに記録されているＩＤ０００２のユニット３１の鍵の開閉状態を変更する（Ｓ２０８）。より具体的には、スマートコントラクト部１４Ａは、当該開錠要求を示すトランザクションデータを、分散台帳１３Ａを有するサーバ１０Ａに送信する。すると、サーバ１０Ａは、当該開閉要求のトランザクションを有するブロックをコンセンサスアルゴリズムで同期した後に、当該ブロックを分散台帳１３Ａに記録することで、分散台帳１０Ａ上での状態変更を発生させる。
【０１３７】
次に、ＩｏＴデバイス管理部３２は、オンメモリ上に保持されているＩｏＴデバイス３０の鍵の開閉状態などの台帳イベントを監視しており、ＩＤ０００２のユニット３１の鍵の開閉状態が開錠状態に移行したことを取得する（Ｓ２０９）。
【０１３８】
次に、ＩｏＴデバイス管理部３２は、ＩＤ０００２のユニット３１の鍵を開錠する開錠制御を行い（Ｓ２１０）、ＩＤ０００２のユニット３１の鍵を開錠したことを示す第３のトランザクションデータを生成する（Ｓ２１１）。そして、ＩｏＴデバイス管理部３２は、生成した第３のトランザクションデータを分散台帳１３Ａに送信する。本実施の形態では、ＩｏＴデバイス管理部３２は、図１３Ｃに示すようなデータ構造で構成される第３のトランザクションデータを生成し、分散台帳１３Ａに送信する。図１３Ｃには、実施者がＩｏＴデバイス管理部３２であることを示すｄｅｖと、ＩＤ０００２のユニット３１の識別情報を示す０００２と、その鍵が開錠されたことを示すｒｅｇｉｓｔ＿ｏｐｅｎｅｄとを含むデータ構造で構成されるトランザクションデータが示されている。
【０１３９】
次に、スマートコントラクト部１４Ａは、当該第３のトランザクションデータを取得すると、当該第３のトランザクションデータを分散台帳１３Ａに記録させる（Ｓ２１２）。
【０１４０】
［ＩｏＴデバイス３０の故障検知処理］
図１４は、本実施の形態におけるＩｏＴデバイス３０が故障を検知した際の故障検知処理を示すシーケンス図である。図１５は、図１４に示す故障検知処理が行われる際に用いられるトランザクションデータのデータ構造の一例を示す図である。以下では、対象のＩｏＴデバイス３０を構成する３つのユニット３１のうち、ＩＤ０００２が付与されたユニット３１が故障したとする。
【０１４１】
図１４に示されるように、ＩｏＴデバイス３０のＩｏＴデバイス管理部３２は、ＩｏＴデバイス３０の状態を常時または所定期間毎に確認しているので、ＩＤ０００２のユニット３１が故障したことを検知する（Ｓ３０１）。
【０１４２】
すると、ＩｏＴデバイス管理部３２は、ＩＤ０００２のユニット３１が故障したことを示すトランザクションデータを生成する（Ｓ３０２）。ＩｏＴデバイス管理部３２は、ステップＳ３０２で生成したトランザクションデータを、当該ＩｏＴデバイス３０のＩＤ０００２のユニット３１が故障したことを示す故障情報として、スマートコントラクト部１４Ａに送信する故障通知を行う（Ｓ３０３）。本実施の形態では、ＩｏＴデバイス管理部３２は、図１５に示すようなデータ構造で構成されるトランザクションデータを生成する。図１５には、検知者がＩｏＴデバイス管理部３２であることを示すｄｅｖと、ＩＤ０００２のユニット３１の識別情報を示す０００２と、ＩＤ０００２のユニット３１が利用不可であることを示すｄｉｓａｂｌｅｄとを含むデータ構造で構成されるトランザクションデータが示されている。そして、ＩｏＴデバイス管理部３２は、このように作成したトランザクションデータを分散台帳１３Ａに発行することで、スマートコントラクト部１４Ａを動作させる。
【０１４３】
次に、スマートコントラクト部１４Ａは、オンメモリ上に保持されているＩＤ０００２のユニット３１の状態情報を、正常から故障を示すように変更する故障登録を行う（Ｓ３０４）。本実施の形態では、スマートコントラクト部１４Ａは、ＩｏＴデバイス３０の状態情報を、サーバ１０Ａのオンメモリに書き出して保持することで管理している。
【０１４４】
図１６Ａ及び図１６Ｂは、実施の形態におけるスマートコントラクト部１４Ａにより管理される状態情報を示す図である。図１６Ａに示す状態情報は、ＩｏＴデバイス３０を構成する３つのユニット３１すべてが故障していない正常であることを示している。なお、図１６Ａにおいて、ＩＤ０００１のユニット３１の利用権はユーザＡにより購入済であることが示されている。ＩＤ０００２及びＩＤ０００３のユニット３１の利用権はサービス会社が所有しており、利用権の購入が可能すなわち利用可能であることが示されている。一方、図１６Ｂに示す状態情報は、ＩｏＴデバイス３０を構成する３つのユニット３１のうちＩＤ０００２のユニット３１が故障していることを示している。つまり、本実施の形態では、スマートコントラクト部１４Ａは、図１６Ａに示す状態情報を、図１６Ｂに示す状態情報に更新することで、故障登録を行う。
【０１４５】
なお、本実施の形態では、スマートコントラクト部１４Ａは、ＩＤ０００２のユニット３１が故障したことを示す故障情報と、ＩＤ０００２のユニット３１が当該故障情報を取得したときの時刻情報とを含む第１のトランザクションデータを取得する。このため、スマートコントラクト部１４Ａは、取得した第１のトランザクションデータを、分散台帳１３Ａに送信することで、第１のトランザクションデータを分散台帳１３Ａに記録させる。
【０１４６】
このようにして、スマートコントラクト部１４Ａは、図１６Ｂに示す状態情報を用いて、ＩＤ０００２のユニット３１を利用不可であるサービス停止状態として管理する（Ｓ３０５）。
【０１４７】
［ＩｏＴデバイス３０の制御が不要なユーザ要求処理の別の例］
図１７は、本実施の形態におけるＩｏＴデバイス３０の制御が不要な場合のユーザ要求の処理の別の例を示すシーケンス図である。図１８は、図１７に示すユーザ要求の処理が行われる際に用いられるＮＧ通知のデータ構造の一例を示す図である。図１７に示す例では、対象のＩｏＴデバイス３０を構成する３つのユニット３１のすべての利用権は購入可能であるが、ＩＤ０００２が付与されたユニット３１が故障しているとして以下説明する。
【０１４８】
図１７に示されるように、まず、ユーザＡは、例えばＩｏＴデバイス３０のＩＤ０００２のユニット３１の利用許可を得たい旨のユーザ要求を端末２１に行う。すると、端末２１のユーザ要求処理部２２は、ユーザ要求を受け付けて、ユーザ要求を発行したユーザＡが本人であるかを認証するユーザ認証処理を実施する（Ｓ４０１）。
【０１４９】
次に、ユーザ要求処理部２２は、ステップＳ４０１においてユーザＡのユーザ認証が成功すると、ＩＤ０００２のユニット３１が利用可能かどうかの問い合わせを分散台帳１３Ａに発行する（Ｓ４０２）。本実施の形態では、ユーザ要求処理部２２は、図１１Ａに示すようなデータ構造で構成されるトランザクションデータを分散台帳１３Ａに発行することで、スマートコントラクト部１４Ａを動作させる。図１１Ａについては上述したのでここでの説明を省略する。
【０１５０】
次に、スマートコントラクト部１４Ａは、分散台帳１３Ａの最新状態を確認することで、ＩＤ０００２のユニット３１の利用権の状況と、サービスモードとを確認する（Ｓ４０３）。
【０１５１】
次に、スマートコントラクト部１４Ａは、確認したＩＤ０００２のユニット３１の利用権の状況とサービスモードとから、ＩＤ０００２のユニット３１がサービス提供可能であるかどうかを判断する（Ｓ４０４）。ここでは、スマートコントラクト部１４Ａは、ＩＤ０００２のユニット３１の利用権が購入できる状況であるもの、ＩＤ０００２のユニット３１が故障しており、ＩＤ０００２のユニット３１が利用不可であると判断する。
【０１５２】
次に、スマートコントラクト部１４Ａは、ＩＤ０００２のユニット３１が利用不可であると判断したので、ＮＧ通知を端末２１のユーザ要求処理部２２に送信する（Ｓ４０５）。本実施の形態では、スマートコントラクト部１４Ａは、図１８に示すようなデータ構造で構成されるＮＧ通知をユーザ要求処理部２２に送信する。図１８には、ＩＤ０００２のユニット３１の識別情報を示す０００２と、ＩＤ０００２のユニット３１が利用不可であることを示すｄｉｓａｂｌｅと、利用権を購入できる金額を示す１００円とを含むデータ構造で構成されるＮＧ通知のデータ構造が示されている。
【０１５３】
次に、ユーザ要求処理部２２は、ＮＧ通知を受信したので、ユーザＡに、ＮＧ通知を送信し（Ｓ４０６）、ユーザＡに対してＩＤ０００２のユニット３１の利用許可が得られない旨を通知する。
【０１５４】
このように、ユーザＡは、故障しているＩｏＴデバイス３０の利用許可を得ることができないので、故障しているＩｏＴデバイスまで実際に移動することを抑制でき、移動等の手間が余計にかかることもなく、移動に時間とエネルギーとを費やすことがなくなる。
【０１５５】
［効果等］
以上のように、本開示の制御方法、制御システムによれば、分散台帳に、ＩｏＴデバイスが故障しているかどうかを示す情報を記録することができる。このため、ユーザＡは、ＩｏＴデバイスが現実に存在する地点とは異なる場所でＩｏＴデバイスの利用許可を得ようしたときに、故障しているＩｏＴデバイスの利用許可を得てしまうことが抑制される。これにより、ユーザＡは、故障しているＩｏＴデバイスまで実際に移動することを抑制できるので、移動等の手間が余計にかかることもなく、移動に時間とエネルギーとを費やすことを抑制できる。このようにして、分散台帳を用いて、時間コストとエネルギーコストとをより低減することができる。
【０１５６】
別の観点から見ると、本開示の制御方法、制御システム１では、スマートコントラクトを用いてＩｏＴデバイスが故障したことを通知するためのメソッドを有する。例えば、ＩｏＴデバイスは、自ら故障を検知すると、故障したことを通知するためのメソッドを利用して、自分が故障状態であることを通知する。ここで、故障したことを通知するためのメソッドを利用する際には、ＰＫＩ（署名）を用いるので、故障を検知したＩｏＴデバイスからの通知であることを保証することができる。
【０１５７】
これにより、故障状態であるＩｏＴデバイスのサービスが停止されるので、故障しているＩｏＴデバイスの利用許可を得ることができない。したがって、故障しているＩｏＴデバイスまで実際に移動することを抑制でき、移動等の手間が余計にかかることもなく、移動に時間とエネルギーとを費やすことがなくなる。
【０１５８】
ここで、図１９及び図２０を用いて、本開示の制御方法、制御システム１の効果について説明する。図１９は、比較例における問題を模式的に示す図である。図２０は、本開示における効果を模式的に示す図である。図１９及び図２０はいずれも、例えば宅配ボックスであるＩｏＴデバイス３０を構成する複数のユニット３１のうちの一のユニット３１が故障しているとして説明する。
【０１５９】
図１９に示すように、比較例では、配送業者５０は、利用対象である一のユニット３１が故障しているのを知らないので、当該一のユニット３１に荷物を配送する場合、当該一のユニット３１の利用権を購入するなどにより、当該一のユニット３１の利用を予約できる。このため、配送業者５０は、当該一のユニット３１の利用権を購入後、当該ユニットがある現地に移動することになる。しかし、当該一のユニット３１は故障しているので、配送業者５０は、現地に到着後、当該一のユニットを利用するために開錠しようとしても当該一のユニットは動作しない。
【０１６０】
よって、故障している当該一のユニット３１までの移動が無駄になり、移動等の手間が余計にかかるだけでなく移動に費やした時間とエネルギーとが無駄になる。
【０１６１】
一方、図２０に示すように、本開示では、配送業者５０は、当該一のユニット３１が故障しているのを知らなくても、当該一のユニット３１に荷物を配送するために当該一のユニット３１の利用を予約することができない。このため、配送業者５０は、故障しているＩｏＴデバイスまで実際に移動することを抑制でき、移動等の手間が余計にかかることもなく、移動に時間とエネルギーとを費やすことがなくなる。
【０１６２】
また、本開示の制御方法、制御システムでは、分散台帳を利用するので、どのタイミングでＩｏＴデバイスが故障したのか、ＩｏＴデバイスの利用のための取引がいつ発生したのかなど、すべての履歴を改ざんできない状態で管理できるという効果もある。
【０１６３】
また、本開示の制御方法、制御システムでは、取引条件のプログラムをスマートコントラクトとして分散台帳に格納することで、分散台帳に、ＩｏＴデバイスが故障しているかどうかを示す情報を記録することができる。このようにして、ＩｏＴデバイスが故障しているかどうかを示す情報をブロックチェーンで改ざんできない形で公開することができるので、不正な取引を抑制できる。
【０１６４】
さらに、本開示の制御方法、制御システムでは、ＩｏＴデバイスを利用するというサービスを開始後に、ＩｏＴデバイスが故障したとしても、ＩｏＴデバイスが故障したことを利用者に通知できるだけでなく、エビデンスとして分散台帳に記録することができる。これにより、ＩｏＴデバイスを利用する利用者及びＩｏＴデバイスを利用するというサービスを提供する提供者においても、迅速に対応できるので、被害を最小限にすることができる。
【０１６５】
なお、本開示を上記の実施の形態に基づいて説明してきたが、本開示は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本開示に含まれる。
【０１６６】
（１）例えば本開示には、上記実施の形態の制御システム１においてブロックチェーンとして記録されるブロックに用いられるデータ構造も含まれる。より具体的には、本開示のデータ構造は、１以上のＩｏＴデバイスと、１以上のＩｏＴデバイスとネットワークを介して通信可能な複数のサーバとを備えるシステムにおいて分散台帳に記録されるブロックに用いられるデータ構造である。当該データ構造は、１以上のＩｏＴデバイスのうちの一のＩｏＴデバイスが故障したことを示す故障情報と、当該一のＩｏＴデバイスが故障情報を取得したときの時刻情報とを含む第１のトランザクションデータを含む。そして、本開示のデータ構造に含まれる第１のトランザクションデータは、分散台帳に格納されたスマートコントラクトが動作されることで複数のサーバのうちの第１サーバによって取得され、取得された第１のトランザクションデータがブロックに含まれて分散台帳に記録される。
【０１６７】
（２）なお、本開示では、分散型の台帳管理を実現するブロックチェーン実装基盤としてブロックチェーンを挙げて説明しているが、これに限らない。Hyperledger fabricなど、他のブロックチェーン実装基盤を用いてもよい。
【０１６８】
（３）上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０１６９】
（４）上記の実施の形態における各装置は、構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。
【０１７０】
また、上記の各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部またはすべてを含むように１チップ化されてもよい。
【０１７１】
また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０１７２】
さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【０１７３】
（５）上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。前記ＩＣカードまたは前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。前記ＩＣカードまたは前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【０１７４】
（６）本開示は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０１７５】
また、本開示は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ（登録商標）Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【０１７６】
また、本開示は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【０１７７】
また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【０１７８】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【０１７９】
（７）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【０１８０】
本開示は、制御方法、制御システム、第１サーバ、及び、データ構造に利用でき、例えば宅配ボックス、シェアリングカー、シェアリングバイク、ホテルの部屋などのＩｏＴデバイスの故障検知の結果を、分散台帳に格納されるスマートコントラクトを用いて分散台帳に記録する制御方法、制御システム、第１サーバ、及び、データ構造などに利用可能である。
【符号の説明】
【０１８１】
１    制御システム
５    物品
１０、１０Ａ、１０Ｂ、１０Ｃ、１０Ｄ、１０Ｅ    サーバ
１２Ａ    記憶装置
１３Ａ    分散台帳
１４Ａ    スマートコントラクト部
２１    端末
２２    ユーザ要求処理部
３０    ＩｏＴデバイス
３１    ユニット
３２    ＩｏＴデバイス管理部
１１１    スマートコントラクト実行部
１１２    トランザクションデータ検証部
１１４    ブロック生成部
１１５    同期部
１１６    記録部
１４１    デバイス利用権管理部
１４２    サービス提供部
１４３    利用可否判断部
１４４  台帳イベント発行部
１４５    故障登録部
２２１    ユーザ要求受付部
２２２    ユーザ認証部
２２３    トランザクションデータ処理部
２２４    利用可否問い合わせ部
２２５    トランザクションデータ生成部
３２１    台帳イベント監視部
３２２    デバイス制御部
３２３    故障制御部
３２４    故障検知部
３２５    故障通知部
【図１】
2020080522.tif 000003
【図２】
2020080522.tif 000004
【図３】
2020080522.tif 000005
【図４】
2020080522.tif 000006
【図５】
2020080522.tif 000007
【図６】
2020080522.tif 000008
【図７】
2020080522.tif 000009
【図８】
2020080522.tif 000010
【図９】
2020080522.tif 000011
【図１０】
2020080522.tif 000012
【図１１Ａ】
2020080522.tif 000013
【図１１Ｂ】
2020080522.tif 000014
【図１１Ｃ】
2020080522.tif 000015
【図１２】
2020080522.tif 000016
【図１３Ａ】
2020080522.tif 000017
【図１３Ｂ】
2020080522.tif 000018
【図１３Ｃ】
2020080522.tif 000019
【図１４】
2020080522.tif 000020
【図１５】
2020080522.tif 000021
【図１６Ａ】
2020080522.tif 000022
【図１６Ｂ】
2020080522.tif 000023
【図１７】
2020080522.tif 000024
【図１８】
2020080522.tif 000025
【図１９】
2020080522.tif 000026
【図２０】
2020080522.tif 000027
【国際調査報告】
2020080522.tif 000028
2020080522.tif 000029
2020080522.tif 000030