IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ ソニー株式会社の特許一覧

特開2022-38416情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システム
<>
  • 特開-情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システム 図1
  • 特開-情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システム 図2
  • 特開-情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システム 図3
  • 特開-情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システム 図4
  • 特開-情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システム 図5
  • 特開-情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システム 図6
  • 特開-情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システム 図7
  • 特開-情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システム 図8
  • 特開-情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システム 図9
  • 特開-情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システム 図10
  • 特開-情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システム 図11
  • 特開-情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システム 図12
  • 特開-情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システム 図13
  • 特開-情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システム 図14
  • 特開-情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システム 図15
  • 特開-情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システム 図16
  • 特開-情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システム 図17
  • 特開-情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システム 図18
  • 特開-情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システム 図19
  • 特開-情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システム 図20
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022038416
(43)【公開日】2022-03-10
(54)【発明の名称】情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システム
(51)【国際特許分類】
   H03M 13/47 20060101AFI20220303BHJP
   H04L 1/00 20060101ALI20220303BHJP
【FI】
H03M13/47
H04L1/00 B
【審査請求】未請求
【請求項の数】18
【出願形態】OL
(21)【出願番号】P 2020142913
(22)【出願日】2020-08-26
(71)【出願人】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】100091487
【弁理士】
【氏名又は名称】中村 行孝
(74)【代理人】
【識別番号】100105153
【弁理士】
【氏名又は名称】朝倉 悟
(72)【発明者】
【氏名】木村 亮太
【テーマコード(参考)】
5J065
5K014
【Fターム(参考)】
5J065AB01
5J065AC02
5J065AD03
5J065AE06
5K014BA02
5K014BA06
5K014EA01
(57)【要約】
【課題】同一データを複数の装置で分散して管理する分散ネットワークに用いて有効な信頼性の高い通信を実現する情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システムを提供する。
【解決手段】本開示の情報処理装置は、対象データを符号化することにより、前記対象データの冗長データを生成する符号化部と、前記対象データと前記冗長データとを、前記対象データを複数の装置で分散して管理する分散ネットワークにブロードキャスト又はマルチキャストする通信部と、を備える。
【選択図】図5
【特許請求の範囲】
【請求項1】
対象データを符号化することにより、前記対象データの冗長データを生成する符号化部と、
前記対象データと前記冗長データとを、前記対象データを複数の装置で分散して管理する分散ネットワークにブロードキャスト又はマルチキャストする通信部と、
を備えた情報処理装置。
【請求項2】
前記符号化部は、前記対象データをアプリケーション層又はトランスポート層で符号化する
請求項1に記載の情報処理装置。
【請求項3】
前記対象データは、ブロックチェーンのアプリケーションによって生成されたデータである
請求項1に記載の情報処理装置。
【請求項4】
前記対象データは、前記ブロックチェーンのトランザクションである
請求項3に記載の情報処理装置。
【請求項5】
前記対象データは、前記ブロックチェーンにおけるブロックの承認要求又は承認データである
請求項3に記載の情報処理装置。
【請求項6】
前記符号化部は、前記対象データの種類に応じて、前記符号化で用いる符号の種類を変更する
請求項1に記載の情報処理装置。
【請求項7】
前記符号化部は、前記対象データの種類に応じて、前記冗長データの個数を変更する
請求項1に記載の情報処理装置。
【請求項8】
前記符号化部は、前記対象データの種類に応じて、前記符号化の実行有無を切り替える
請求項1に記載の情報処理装置。
【請求項9】
前記符号化部は、前記対象データに基づき、複数の前記冗長データを生成する
請求項1に記載の情報処理装置。
【請求項10】
前記符号化部は、複数の前記対象データに基づき、複数の前記冗長データを生成する
請求項1に記載の情報処理装置。
【請求項11】
前記符号化部は、複数の前記冗長データに基づき復元可能な対象データの個数以下の前記対象データを、複数の前記対象データから間引き、
前記通信部は、間引き後に残った前記対象データを送信し、間引かれた前記対象データを送信しない
請求項1に記載の情報処理装置。
【請求項12】
前記符号化部は、第1の順序で配置された複数の前記対象データから非連続の複数の対象データを選択し、前記非連続の複数の対象データに基づき、複数の前記冗長データを生成し、
前記通信部は、前記第1の順序で複数の前記対象データを送信し、複数の前記冗長データを送信する
請求項1に記載の情報処理装置。
【請求項13】
前記通信部は、前記対象データと前記冗長データとを含むメッセージを送信する
請求項1に記載の情報処理装置。
【請求項14】
前記通信部は、前記対象データを含む第1メッセージと、前記冗長データを含む第2メッセージとを送信する
請求項1に記載の情報処理装置。
【請求項15】
前記通信部は、前記分散ネットワークから前記装置によって生成された対象データと、前記対象データの冗長データとを受信し、
受信した前記対象データと受信した前記冗長データとを含むブロックをブロックチェーンに追加する処理部を備えた
請求項1に記載の情報処理装置。
【請求項16】
対象データを符号化することにより、前記対象データの冗長データを生成し、
前記対象データと前記冗長データとを、前記対象データを複数の装置で分散して管理する分散ネットワークにブロードキャスト又はマルチキャストする
情報処理方法。
【請求項17】
対象データを符号化することにより、前記対象データの冗長データを生成するステップと、
前記対象データと前記冗長データとを、前記対象データを複数の装置で分散して管理する分散ネットワークにブロードキャスト又はマルチキャストするステップと
をコンピュータに実行させるためのコンピュータプログラム。
【請求項18】
対象データを符号化することにより、前記対象データの冗長データを生成する符号化部と、前記対象データと前記冗長データとを、前記対象データを複数の装置で分散して管理する分散ネットワークにブロードキャスト又はマルチキャストする通信部と、を備えた第1情報処理装置と、
前記分散ネットワークから前記対象データと前記冗長データとを受信する受信部と、前記対象データが消失した場合又は前記対象データに誤りが検出された場合に、前記冗長データに基づき前記対象データを復元する復号部と、を備えた第2情報処理装置と
を備えた情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システムに関する。
【背景技術】
【0002】
分散台帳を実現する技術としてブロックチェーンが、仮想通貨・暗号通貨の決済や送金の取引データの管理などに用いられている。今後、ブロックチェーンを利用するアプリケーションが、仮想通貨・暗号通貨以外にも増えていく可能性がある。例えば、物流トレース、権利処理(例えば、著作権、土地権利)、監視データの共有などが考えられる。
【0003】
ブロックチェーンを利用するアプリケーションによっては、無線ネットワークを介した通信が必要になる可能性がある。無線ネットワークでは電波環境が不安定になることが懸念されるが、無線環境の状態にかかわらず、安定してブロックチェーンのメッセージを送受信できることが要求される。特に、ブロックチェーンを利用するシステムでは、トランザクションや承認データ等のメッセージのやり取りがブロードキャスト又はマルチキャストベースで行われ、ブロードキャスト又はマルチキャストを安定して実施できることが要求される。ブロードキャスト又はマルチキャストで送信されたメッセージを受信できない装置では、ブロックチェーンを更新できず、この結果、ブロックチェーンが分断(または分岐)してしまう。
【0004】
下記特許文献1はデータの秘密性を保つ符号化装置を開示している。この符号化装置では、保存すべきデータを分割し、各データ部分を誤り符号化して冗長部分を取得する。各冗長部分を再生成符号化して、複数の再生符号化データを別々の記憶装置に保存する。復号時は、複数の記憶装置のうち一部の記憶装置から再生符号化データを読み出して復号し、冗長部分を得る。各冗長部分からデータ部分を復元する。これによれば、情報が漏洩した記憶装置の数が閾値以内であれば、漏洩した情報からデータ部分を復元できず、よって、元のデータは秘密に保たれる。
【0005】
特許文献1に開示された技術をブロックチェーンシステムに適用した場合、メッセージから生成した複数の再生符号化データを別々の装置に記憶させることが考えられる。しかしながら、各装置で同じ情報を共有できないことから、特許文献1の技術はブロックチェーンシステムおいて有効ではない。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2014-68337号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
本開示は、同一データを複数の装置で分散して管理する分散ネットワークに用いて有効な信頼性の高い通信を実現する情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システムを提供する。
【課題を解決するための手段】
【0008】
本開示の情報処理装置は、対象データを符号化することにより、前記対象データの冗長データを生成する符号化部と、前記対象データと前記冗長データとを、前記対象データを複数の装置で分散して管理する分散ネットワークにブロードキャスト又はマルチキャストする通信部と、を備える。
【0009】
本開示の情報処理方法は、対象データを符号化することにより、前記対象データの冗長データを生成し、前記対象データと前記冗長データとを、前記対象データを複数の装置で分散して管理する分散ネットワークにブロードキャスト又はマルチキャストする。
【0010】
本開示のコンピュータプログラムは、対象データを符号化することにより、前記対象データの冗長データを生成するステップと、前記対象データと前記冗長データとを、前記対象データを複数の装置で分散して管理する分散ネットワークにブロードキャスト又はマルチキャストするステップとをコンピュータに実行させる。
【0011】
本開示の情報処理システムは、対象データを符号化することにより、前記対象データの冗長データを生成する符号化部と、前記対象データと前記冗長データとを、前記対象データを複数の装置で分散して管理する分散ネットワークにブロードキャスト又はマルチキャストする通信部と、を備えた第1情報処理装置と、前記分散ネットワークから前記対象データと前記冗長データとを受信する受信部と、前記対象データが消失した場合又は前記対象データに誤りが検出された場合に、前記冗長データに基づき前記対象データを復元する復号部と、を備えた第2情報処理装置と、を備える。
【図面の簡単な説明】
【0012】
図1】本開示の第1実施形態に係る情報処理システムを備えた分散ネットワークのブロック図。
図2】分散ネットワークに用いられる通信ネットワークの一例を示す図。
図3】ブロックチェーンの通信をプロトコルスタックの観点から示した図。
図4】承認されたブロックをブロックチェーンに追加する様子を模式的に示す図。
図5】本開示の実施形態に係る情報処理装置を含む端末装置のブロック図。
図6】ブロックチェーンシステムへの参加のシーケンス例を示す図。
図7】トランザクションの符号化及び復号化に係る手続きの一例のシーケンス図。
図8】承認データの符号化及び復号化に係る手続きの一例のシーケンス図。
図9】端末装置において行う符号化の具体例を示す図。
図10】複数のトランザクションから複数の符号化メッセージを生成する処理のバリエーションを示す図。
図11】複数の符号化メッセージの送信順序のバリエーションを示す図。
図12】端末装置における復号化処理の例を示すフローチャート。
図13】メッセージの消失の有無を判断する処理の第1の例を示すフローチャート。
図14】メッセージの消失の有無を判断する処理の第2の例を示すフローチャート。
図15】メッセージの消失の有無を判断する処理の第3の例を示すフローチャート。
図16】パンクチャリングの例を示す図。
図17】本開示の実施形態に係る情報処理装置のハードウェアブロック図。
図18】ブロックチェーンの概要を示す図。
図19】トランザクションに含まれる対象データをユーザAが登録する例を模式的に示す図。
図20】承認要求をブロードキャスト又はマルチキャストする例を示す図。
【発明を実施するための形態】
【0013】
以下、図面を参照して、本開示の実施形態について説明する。本開示において示される1以上の実施形態において、各実施形態が含む要素を互いに組み合わせることができ、かつ、当該組み合わせられた結果物も本開示が示す実施形態の一部をなす。
【0014】
図1は、本開示の第1実施形態に係る情報処理システムであるブロックチェーンシステムを備えた分散ネットワークのブロック図である。図1の分散ネットワーク(ブロックチェーンシステム)100は、複数の端末装置101A、101B、101C、101D、101Eと、複数の端末装置101A~101E間を接続する通信ネットワーク102とを備える。複数の端末装置101A~101Eのうち任意の1台の端末装置を端末装置101と記載する。通信ネットワーク102は、無線ネットワーク、有線ネットワーク又は無線と有線の混合ネットワークである。端末装置101A、101B、101C、101Dは、通信ネットワーク102に無線で接続し、通信を行う。端末装置101Cは通信ネットワーク102に有線で接続し、通信を行う。すべての端末装置が無線又は有線で通信ネットワーク102に接続されてもよい。通信ネットワーク102は、無線LAN(Local Area Network)、モバイルネットワーク、インターネットなど、どのようなネットワークでもよい。また、通信ネットワーク102は、複数種類のネットワークが混在したネットワークでもよい。
【0015】
図2は、通信ネットワーク102の一例を示す。通信ネットワーク102は複数の基地局103A、103Bを備えている。基地局103Aは端末装置101A、101Bと無線で通信し、端末装置101Cと有線で通信する。基地局103Bは端末装置101E、101Dと無線で通信する。基地局103A及び基地局103B間は有線で接続されている。基地局103A、103Bは、自局のカバレッジ内の端末装置から受信したパケットを、パケットの宛先に応じて、カバレッジ内の宛先の端末装置に送信するか、他方の基地局に中継する。宛先アドレスがブロードキャストアドレス又はマルチキャストアドレスの場合は、カバレッジ内の他の全端末装置又は特定のグループの端末装置群にパケットを送信し、他方の基地局にパケットを中継する。中継されたパケットを受信した基地局はカバレッジ内の全端末装置又は特定のグループの端末装置群にパケットを送信する。図2の例では基地局103A、103B間が有線で接続されているが、無線で接続されていてもよい。
【0016】
図1又は図2の分散ネットワーク100は、分散台帳を実現するための技術であるブロックチェーンにより、端末装置101A~101E間で同一のデータである対象データを分散して管理する。つまりブロックチェーンにより端末装置101A~101E間で同一のデータを保存、記録、保持あるいは記憶等する。端末装置101~101Eには、ブロックチェーンを実現するアプリケーション(ブロックチェーンプログラム)が搭載されており、各端末装置がアプリケーションを実行することでブロックチェーンが正しく実現されるように各端末装置で情報処理が行われる。通信ネットワーク102の物理的な構成に関わらず、端末装置間ではアプリケーション層において互いにブロックチェーンに関する通信がなされる。
【0017】
図3は、複数の端末装置のアプリケーション層間でブロックチェーン通信が行われることをプロトコルスタックの観点から示した図である。一例として端末装置101Aと端末装置101D間のアプリケーション通信が示されているが、他の端末装置間でも同様にして行われる。トランスポート層より上位のすべてをアプリケーション層としてもよいし、トランスポート層の上位をセッション層、プレゼンテーション層、アプリケーション層に分けてもよい。データリンク層には、PDCP(Packet Data Convergence Protocol)層、RLC(Radio Link Control)層、MAC(Medium Access Control)層が含まれる。データリンク層の構成は一例であり、他の構成も可能である。
【0018】
ここで本実施形態の技術的背景について説明する。ブロックチェーンの通信において、例えば、端末装置においては、他の端末装置からブロードキャスト又はマルチキャストされたトランザクションを受信する。端末装置は、1つ以上のトランザクションを含むブロックの生成と、生成したブロックに対して合意アルゴリズムに基づく承認を取得する処理を行う。端末装置は、承認を取得すると、承認されたブロックに関する情報を含む承認データをブロードキャスト又はマルチキャストする。また、端末装置は、分散ネットワークから、承認データを受信し、承認されたブロックをブロックチェーンに追加することによりブロックチェーンを更新する処理を行う。このようにして承認されたブロックを追加することにより、各端末装置で同一のブロックチェーンが維持される。通信ネットワーク102の電波環境に起因して通信品質が低くなると、承認データ又はトランザクションを正しく受信できない端末装置が発生し、当該端末装置ではブロックを追加できなくなる可能性がある。当該端末装置は他の端末装置と同一のブロックチェーンを所有することできず、ブロックチェーンが分断(または分岐)されてしまう。この場合、例えば合意アルゴリズムにより最も長いブロックチェーンが採用され、最も長いブロックチェーンの情報を当該端末装置が他のノードから取得することになる。このため、ブロックチェーンの更新が遅くなる可能性がある。以下、図4を用いて、ブロックチェーンの更新について説明する。
【0019】
図4は、端末装置101Aから、承認されたブロックに関する情報を含む承認データをブロードキャスト又はマルチキャストし、端末装置101B~101Eで、当該承認されたブロックをブロックチェーンに追加する様子を模式的に示している。端末装置101B~101Dでは、ブロードキャスト又はマルチキャストされたすべての承認データに係るブロック(1~7番目のブロック及びそれ以降のブロック)をブロックチェーンに追加できている。一方、端末装置101Eでは5番目のブロックに関する承認データを取得できなかったため、5番目以降のブロックをブロックチェーンに追加できず、ブロックチェーンが分断されている。
【0020】
本実施形態は、通信ネットワーク102の電波環境に起因して通信品質が不安定な場合でも、ブロックチェーンに関するデータ(トランザクション、承認データ等)を正しく送受信できる仕組みを提供し、これにより、ブロックチェーンを安定して運用可能にすることを実現する。
【0021】
以下では、本実施形態の詳細を説明するに先立ち、ブロックチェーンに係るトランザクションおよびブロックの承認に関する手続きの概要について説明する。なお、本実施形態に係るブロックチェーン (Blockchain)は、分散台帳 (Distributed Ledger)、分散データベース (Distributed Database)、非中央集権台帳 (De-centralized Ledger)、非中央集権データベース (De-centralized Ledger)、ビットコインコア (Bitcoin Core)、イーサリウム (Ethereum)、Hyperledger Fabricと呼ばれている各種のデータ又はアルゴリズムを包含する。
【0022】
図18は、ブロックチェーンの概要を示す図である。ブロックチェーンは、複数のブロックが鎖のように連なったデータである。各ブロックには、1又は2つ以上のトランザクション1~n(nは1以上の整数)が含まれる。また各ブロックには、一例として、直前のブロックのハッシュ値と、ナンス(Nonce)と呼ばれる値が含まれる。その他の情報、例えばブロックに含まれる全てのトランザクションのハッシュ値が含まれてもよい。
【0023】
直前のブロックのハッシュ値は、当該直前のブロックから連なるブロックが、直前のブロックから正しく連なった正当なブロックであるか否かを判定するために用いられる情報である。あるブロックに含まれるトランザクションが削除されたり改ざんされたりした場合には当該ブロックのハッシュ値が変わり、直後のブロックに含まれるハッシュとの整合性が失われるため、トランザクションの削除および改ざんの検出が可能となる。ハッシュ値を生成するハッシュ関数としてはSHA-256(この場合、ハッシュ値は固定の256ビット)などがある。但し、ハッシュ関数の種類は特に限定されない。
【0024】
ナンスは、ハッシュ値を用いた認証において、なりすましを防ぐために用いられる情報である。ナンスを用いることによって改ざんが防止される。ナンスとしては、例えば、文字列、数字列、あるいは、これらの組み合わせを示すデータ等を用いることができる。
【0025】
本例では、ブロックチェーンシステム内の合意形成のアルゴリズムとしてPOW(Proof of Work)が用いられる場合を想定しているが、アルゴリズムの種類は特に限定されない。
【0026】
また、各トランザクションには暗号鍵を用いた電子署名が付与される。これにより、なりすましが防止される。各トランザクションは公開され、ブロックチェーンネットワーク全体で共有される。なお、各トランザクションが暗号鍵を用いて暗号化されてもよい。
【0027】
図19は、図1のブロックチェーンシステムにおいて、トランザクションの対象データ(例えば、ユーザAからユーザDへの10ビットコイン(BTC)の送金依頼)をユーザAが登録する例を模式的に示す。ユーザAは端末装置101Aのユーザである。ユーザAは、ブロックチェーンに登録する対象データに対して、ユーザAの秘密鍵を用いて生成された電子署名を付加する。電子署名を付加することによって、対象データの保有者がユーザAであることが保証される。ユーザAの端末装置101Aは、電子署名が付加された対象データを含むトランザクションをブロックチェーンネットワークにブロードキャスト又はマルチキャストする。ブロードキャスト又はマルチキャストされたトランザクションは端末装置101B~端末装置101Eで受信される。トランザクションに送信対象のユーザDの公開鍵を含めてもよい。
【0028】
端末装置101B~101Eは、端末装置101Aから受信したトランザクションを内部の記憶部に格納する。端末装置101B~101Eは、記憶部に記憶されているトランザクションの中から、新たなブロックに含める1つ以上のトランザクションを指定し、新たなブロックの生成に関する処理を行う。この際、トランザクションに付加されている電子署名に基づきトランザクションの生成元の正当性を認証する。
【0029】
端末装置101B~101Eは、新たに生成するブロックに関して、ブロックチェーンシステムでの合意形成に関する処理として、当該ブロックの承認を得る手続きを行う。端末装置101B~101Eは、指定したトランザクション、直前のブロックのハッシュ値、およびナンスを、新たに生成するブロックに追加する。ナンスは、例えば直前のブロックのハッシュ値と、指定した全てのトランザクションのハッシュ値と、パラメータとを加算して、加算後の値を所定のハッシュ関数に入力する。ハッシュ値の出力値であるハッシュ値が所定の条件を満たすパラメータを探索し、発見したパラメータをナンスとして採用する。所定の条件としてハッシュ値が閾値以下になることがある。所定の条件を満たすナンスを発見できた場合は、当該ブロックに関する情報(ブロックの内容を特定する情報又はブロック自体など)を含む承認要求を、ブロックチェーンシステム100にブロードキャスト又はマルチキャストする。つまり所定の条件を満たすナンスを最初に発見した端末装置が承認要求をブロードキャスト又はマルチキャストする。
【0030】
図20は、端末装置101Eが最初に所定の条件を満たすナンスを発見し、承認要求をブロードキャスト又はマルチキャストする例を示している。端末装置101Eは一定数以上の他の端末装置による承認を得ると、新たなブロックをブロックチェーンに正式に追加する。他の端末装置によって行われる承認処理の内容は、例えば、ナンスが適切であることを確認する処理を含む。端末装置101Eは、他の端末装置の承認が得られると、承認が得られたブロックに関する情報を含む承認データを生成する。端末装置101Eは、承認データをブロードキャスト又はマルチキャストする。他の端末装置101A~101Dは、端末装置101Eから、承認が得られたブロックに関する情報を含む承認データを受信すると、承認が得られた当該ブロックをブロックチェーンへ新たに追加する。あるいは、他の端末装置101A~101Dは、自装置で承認処理を行ってナンスが適切であることを確認した時点で、承認したブロックをブロックチェーンに追加してもよい。
【0031】
図5は、本開示の実施形態に係る情報処理装置を含む端末装置101のブロック図である。端末装置101は、アンテナ10、通信部11、処理部14、記憶部15を備えている。処理部14は、符号化部12及び復号化部13を備えている。図5は端末装置101が無線通信を行う場合の構成を示すが、有線通信を行う場合、アンテナ10はなくてもよい。
【0032】
処理部14は、ブロックチェーンに関するプログラム(アプリケーション)を実行することで、ブロックチェーンに関する各種の処理を行う。処理部14は、本実施形態に係る対象データの一例であるトランザクションを生成する。例えば、処理部14は、ユーザの操作入力等の所定のイベントの検出をトリガとして、トランザクションを生成する。トランザクションは、ユーザが入力したデータでもよいし、センシング装置が検出したデータでもよいし、その他のデータでもよい。処理部14は、生成したトランザクションを記憶部15に格納する。また、処理部14は、生成したトランザクションをメッセージとして、符号化部12を用いて符号化し、符号化メッセージを、通信部11を介して、分散ネットワーク100にブロードキャスト又はマルチキャストする。符号化メッセージは、使用するプロトコルに応じた形式のパケットで送信され、パケットの宛先アドレスがブロードキャストアドレス又はマルチキャストアドレスである。トランザクションデータを符号化しないでブロードキャスト又はマルチキャストすることも可能である。
【0033】
符号化部12は、本実施形態に係る対象データを符号化することにより、符号化データを生成する。例えば、処理部14によって生成されたトランザクション又は後述する承認データ等をメッセージとして、符号化方式に基づき符号化することにより、符号化メッセージを生成する。符号化方式で用いる符号の例として、消失訂正符号(Erasure Codes)、レートレス符号(Rateless Codes)、噴水符号(Fountain Codes)、トルネード符号 (Tornado Codes)、LT符号(Luby Transform Codes)、ラプタ符号(Raptor Codes)、ラプタQ符号(RaptorQ Codes)、LDPC符号(Low Density Parity Check Codes)、BCH符号(Bose-Chaudhuri-Hocquenghem Codes)、RS符号(Reed-Solomon Codes )、又はXOR符号(Exclusive OR Codes)などがある。符号化部12による符号化の詳細は後述する。
【0034】
処理部14は、他の端末装置101から送信(例えばブロードキャスト又はマルチキャスト)された符号化メッセージを受信すると、復号化部13を用いて符号化メッセージを復号し、復号化されたメッセージを取得する。取得されたメッセージがトランザクションの場合、処理部14は、取得したトランザクションを記憶部15に格納する。
【0035】
復号化部13は、受信された符号化メッセージを、符号化方式に対応する復号化方式に基づき復号化し、復号されたメッセージ(トランザクション、承認データ等)を取得する。
【0036】
記憶部15は、各種情報又はデータを記憶する。記憶部15は、端末装置101(情報処理装置)の各機能を実現するブロックチェーンのプログラム等を記憶する。処理部14が、記憶部15に記憶されているブロックチェーンのプログラムを実行することで、ブロックチェーンを実現するための各種の処理が実現される。
【0037】
また、記憶部15は、処理部14によって生成されたトランザクションを記憶し、また、他の端末装置101から受信したトランザクションを記憶する。
【0038】
また、記憶部15は、ブロックチェーンシステムに参加している端末装置(情報処理装置)で共有されるデータ(ブロック)の集合であるブロックチェーンを記憶している。端末装置は、分散ネットワーク100を介してブロックチェーンの情報を取得し、他の端末装置101が保持するブロックチェーンとの整合性を保ちつつ、ブロックチェーンを更新する。
【0039】
処理部14は、ブロックチェーンに追加する新たなブロックの生成に関する処理を行う。処理部14は、所定のタイミングで新たなブロックの生成処理を開始する。所定のタイミングは、一例として、処理部14が直前に生成したブロックを生成した直後、又は、直前にブロックを生成してから所定時間が経過した後でもよい。あるいは、所定のタイミングは、ユーザの操作入力をトリガとして決まるタイミングでもよいし、その他のタイミングでもよい。
【0040】
処理部14は、新たなブロックの生成に関する処理として、記憶部15に記憶されているトランザクションの中から、新たなブロックに含めるトランザクションを指定する。例えば、処理部14は、1つ以上の所定の項目のトランザクションを新たなブロックに含めるトランザクションとして指定してもよい。あるいは、所定のデータサイズに達するまでのトランザクションを、新たなブロックに含めるトランザクションとして指定してもよい。その他の方法で新たなブロックに含めるトランザクションを指定してもよい。
【0041】
処理部14は、新たに生成するブロックに関して、ブロックチェーンシステムでの合意形成に関する処理として、当該ブロックの承認を得る手続きを行う。承認アルゴリズムの例として、POW(Proof of Work)、POS(Proof of Stake)、POI(Proof of Importance)、POC(Proof of Consensus)、POB(Proof of Burn)、PBFT(Practical Byzantine Fault Tolerance)などがある。POWの場合、処理部14は、例えば、指定したトランザクション、直前のブロックのハッシュ値、およびナンスを新たに生成するブロックに追加する。この際、処理部14は、所定のハッシュ関数に入力して出力されるハッシュ値が所定の条件を満たすナンスを探索し、所定の条件を満たすナンスを追加する。処理部14は、ブロックチェーンへ新たなブロックを追加し、当該ブロックに関する情報(ブロックの内容を特定する情報又はブロック自体など)を含む承認要求を、分散ネットワーク100にブロードキャスト又はマルチキャストする。その後、例えば、一定数以上の他の端末装置による承認を得ると、新たなブロックをブロックチェーンに正式に追加する。他の端末装置101によって行われる承認処理の内容は、例えば、ナンスが適切であることを確認する処理を含む。処理部14は、承認要求を符号化部12によって符号化することによって符号化メッセージを生成し、符号化メッセージをブロードキャスト又はマルチキャストしてもよい。
【0042】
処理部14は、承認が得られると、承認が得られたブロックに関する情報を含む承認データを生成する。処理部14は、承認データを符号化部12を用いて符号化し、符号化によって得られた符号化メッセージをブロードキャスト又はマルチキャストする。符号化メッセージは、使用するプロトコルに応じた形式のパケットで送信される。パケットの宛先アドレスはブロードキャストアドレス又はマルチキャストアドレスである。承認データを符号化しないでブロードキャスト又はマルチキャストすることも可能である。
【0043】
処理部14は、他の端末装置101から、承認が得られたブロックに関する情報を含む承認データを受信した場合、承認が得られた当該ブロックをブロックチェーンへ新たに追加する。
【0044】
また、処理部14は、例えば承認アルゴリズムがPOWの場合、他の端末装置101から承認要求を受信したとき、承認処理を行い、承認処理の結果を含む承認応答を、承認要求の送信元の端末装置101に送信する。処理部14は、符号化部12を用いて承認要求を符号化して符号化メッセージとし、符号化メッセージを送信してもよい。処理部14は、承認処理の結果として、ブロックを承認した場合、承認した時点で、当該ブロックをブロックチェーンに追加してもよい。この場合、他の端末装置101から承認データを受信しなくてもよい。
【0045】
通信部11は、アンテナ10を介して、符号化メッセージ、各種データ及びメッセージを送受信する。具体的には、通信部11は、トランザクション又はトランザクションを符号化することによって得られる符号化メッセージを、ブロードキャスト又はマルチキャストする。また、通信部11は、例えばPOWの場合に、新たに生成されたブロックの承認を得るための承認要求、又は承認要求を符号化することによって得られる符号化メッセージを送信してもよい。この送信は、ブロードキャスト又はマルチキャストでもよい。通信部11は、他の端末装置101からブロードキャスト又はマルチキャストされた符号化メッセージ(例えばトランザクションの符号化メッセージ、承認要求の符号化メッセージ、承認データの符号化メッセージなど)を受信する。通信部11は、符号化部12及び復号化部13による符号化及び復号化の対象とならない各種のデータまたはメッセージを送受信する。
【0046】
プロトコルスタックの各層の処理は、一例として処理部14と通信部11の少なくとも一方で行われる。一例として、アプリケーション層、プレゼンテーション層、セッション層を処理部14で行い、トランスポート層以下の層の処理を通信部11で行ってもよい。あるいは、すべての層を処理部14で処理し、通信部11では物理層のパケットと無線信号との間の変換に関する処理(変復調、帯域制限、AD/DA変換、増幅等)のみを行ってもよい。各層の処理を行うブロックはその他の方法で定めてもよい。
【0047】
図6は、ブロックチェーンシステム(情報処理システム)への参加のシーケンス例を示す。端末装置101Xが、ブロックチェーンシステムに参加する場合、参加承認の権限を持つ端末装置から参加の承認を得る必要がある。端末装置101Xは、権限を持つ端末装置(本例では端末装置101Y、101Z)に参加リクエストのメッセージを、通信ネットワーク102を介して送信する(S101)。端末装置101Y、101Zは、端末装置101Xの参加を承認することを決定すると、通信ネットワーク102を介して参加承認のメッセージを端末装置101Xに送信する(S102_Y、S102_Z)。また端末装置101Y、101Zは、端末装置101Y、101Zで保持しているブロックチェーンの情報を含むメッセージを、通信ネットワーク102を介して端末装置101Xに送信する(S103_Y、S103_Z)。また、端末装置101Y、101Zは、トランザクション、承認要求及び承認データの少なくとも1つの符号化及び復号化に関する設定情報を含むメッセージを、通信ネットワーク102を介して端末装置101Xに送信する(S104_Y、S104_Z)。
【0048】
端末装置101Xは、参加承認のメッセージを受信すると、ブロックチェーンシステムへの参加を承認されたと判断する。端末装置101Xは、端末装置101Y、101Zから受信したブロックチェーンの情報に基づき、ブロックチェーンを記憶部15に格納する。一例として最も早く受信した情報が示すブロックチェーンを記憶部15に格納する。端末装置101Y、101Zから受信したブロックチェーンが異なる場合は、例えば長い方のブロックチェーンを採用し、採用したブロックチェーンを記憶してもよい。また、端末装置101Xは、端末装置101Y、101Zから受信した設定情報に基づき、トランザクション、承認要求及び承認データの少なくとも1つに関する符号化及び復号化に関する設定情報を記憶部15に格納する(S105)。符号化に関する設定情報は、トランザクションの符号化方法及び復号化方法の情報を含む。承認要求又は承認データに関する設定情報は、承認要求又は承認データの符号化方法及び復号化方法の情報を含む。承認要求又は承認データの符号化方法及び復号化方法と、トランザクションの符号化及び復号化方法は同じでもよいし、異なってもよい。端末装置101Y、101Zから受信した設定情報は同じであるとし、いずれか一方の設定情報を記憶する。ただし、端末装置101Y、101Zから受信した設定情報が異なる場合を許容してもよい。この場合、設定情報に適用範囲となる端末装置群が指定されており、端末装置101Xは、通信先の端末装置群に応じて、符号化方法及び復号化方法を使い分けてもよい。
【0049】
図6の例では、権限を持つ端末装置が2台存在したが、権限を持つ端末装置は1台でもよいし、3台以上でもよい。また、参加承認、ブロックチェーンの情報及び設定情報を別々のメッセージで送信したが、同じ1つのメッセージで、参加承認、ブロックチェーンの情報及び設定情報を送信してもよい。
【0050】
図7は、トランザクションの符号化及び復号化に係る手続きの一例のシーケンス図である。端末装置101Xは、ブロックチェーンに登録するデータ(対象データ)であるトランザクションを生成する(S201)。端末装置101Xは、生成したトランザクションを符号化することにより符号化メッセージを生成する(S202)。本例では、符号化は、アプリケーション層で行う。ただし、後述するように、符号化を行う層は、データリンク層、トランスポート層など、他の層でもよい。端末装置101Xは、トランザクションに関する符号化メッセージをブロードキャストする(S203)。ただし、ブロードキャストでなく、マルチキャストすることも可能である。
【0051】
端末装置101Xからブロードキャストされる符号化メッセージは端末装置101Y、102Zで受信される(S204_Y、S204_Z)。端末装置101Y、102Z以外の端末装置でも符号化メッセージは受信されるが、ここでは端末装置101Y、102Zに着目している。端末装置101Y、102Zは、受信した符号化メッセージを、トランザクションに用いられた符号化方法に対応する復号化方法で復号化する(S205_Y、S205_Z)。本例では、トランザクションはアプリケーション層で符号化されており、復号化もアプリケーション層で行われる。端末装置101Y、102Zは、復号化したトランザクションを記憶部15に格納する。
【0052】
図8は、承認データの符号化及び復号化に係る手続きの一例のシーケンス図である。端末装置101Xは、他の端末装置からトランザクションに関する符号化メッセージを受信する(S301)。他の端末装置は、端末装置101_Yまたは端末装置101_Zでもよいし、端末装置101_Y、102_Z以外の端末装置でもよい。端末装置101Xは、受信した符号化メッセージを、トランザクションの符号化に用いられた符号化方法に対応する復号化方法で復号する(S302)。本例では、トランザクションはアプリケーション層で符号化されており、トランザクションの復号化もアプリケーション層で行われる。端末装置101Xは、復号化したトランザクションを記憶部15に格納する。ステップS301とステップS302は、図7のS204_Y、S204_Z、S205_Y、S205_Zと同様である。
【0053】
端末装置101Xは、記憶部15から新たにブロックに含める少なくとも1つのトランザクションを指定し、指定したトランザクションおよびその他の情報を含むブロックを生成する。端末装置101Xは、合意形成のアルゴリズムである承認アルゴリズムに基づきブロックの承認を得る(S303)。この際、ブロックの承認を得るための承認要求を符号化することにより符号化メッセージを生成し、符号化メッセージをブロードキャスト又はマルチキャストしてもよい。端末装置101Xはブロックの承認を得ると(S304)、承認されたブロックに関する情報を含む承認データを生成し、承認データを符号化することにより符号化メッセージを生成する(S305)。符号化は、本例では、アプリケーション層で行う。端末装置101Xは、符号化メッセージをブロードキャストする(S306)。ただし、符号化メッセージをブロードキャストでなく、マルチキャストすることも可能である。承認要求又は承認データの符号化を行う層は、データリンク層、トランスポート層など、他の層でもよい。
【0054】
端末装置101Xからブロードキャストされる符号化メッセージは端末装置101Y、102Zで受信される(S307_Y、S307_Z)。端末装置101Y、102Z以外の端末装置でも符号化メッセージは受信されるが、ここでは端末装置101Y、102Zに着目している。端末装置101Y、102Zは、承認要求の符号化メッセージを受信した場合は、受信した符号化メッセージを復号して、承認要求を取得し、ブロックの承認処理を行う。また、端末装置101Y、102Zは、承認データの符号化メッセージを復号して、承認データを得る(S308_Y、S308_Z)。端末装置101Y、101Zは、承認データに基づき、承認されたブロックを特定し、特定したブロックをブロックチェーンに追加する(S309)。これによりブロックチェーンを更新する。
【0055】
以下、端末装置101において行う符号化の具体例を示す。トランザクションを符号化する例を示すが、承認データ又は承認要求の場合も同様である。
【0056】
図9(A)~図9(C)は、端末装置101において行う符号化の具体例を示す。
図9(A)は、オリジナルメッセージとしてのトランザクションから1つの符号化メッセージを生成する例を示す。トランザクションから、誤りを復元(訂正)するための冗長データとして、所定サイズのパリティを生成する。トランザクションの末尾にパリティを付加し、トランザクションの先頭には符号化制御情報51を付加する。これにより符号化メッセージを生成する。1つの符号化メッセージ内に、符号化制御情報51と、トランザクションと、パリティとが含まれる。符号化により符号化制御情報とパリティの分だけメッセージサイズが大きくなる。
【0057】
符号化制御情報51には、オリジナルメッセージ(本例ではトランザクション)の順序を表すインデックス、タイムスタンプなどが格納される。パリティを用いることで、受信側において、符号化メッセージにおける一部のビットの誤りを復元(訂正)できる。本例におけるパリティは、ビット誤りを訂正する誤り訂正符号である。パリティが誤りを検出する機能を備えていてもよい。符号化メッセージにおけるパリティの後に、さらに、ビット誤りを検出するCRC(Cyclic Redundancy Check)ビット系列を付与してもよい。
【0058】
図9(B)は、オリジナルメッセージとしてトランザクションから複数の符号化メッセージを生成する例を示す。1つのトランザクションから、冗長データとして、所定サイズのパリティをP(Pは2以上の整数)個生成する。トランザクションとP個のパリティとのそれぞれに符号化制御情報52、52_1~52_Pを付加する。これによりトランザクションを含む符号化メッセージと、パリティを含むP個の符号化メッセージとの、P+1個の符号化メッセージを得る。各符号化メッセージにおけるパリティの後に、さらに、ビット誤りを検出するCRC(Cyclic Redundancy Check)ビット系列を付与してもよい。
【0059】
符号化制御情報52には、オリジナルのメッセージ(本例ではトランザクション)の順序を表すインデックス、パリティに関する符号化メッセージの個数(P)、符号化メッセージの総数(P+1)、タイムスタンプなどが格納される。符号化制御情報52_1~52_Pには、トランザクションのインデックス、パリティの順序を表すインデックス、タイムスタンプなどが格納される。符号化制御情報52に格納される情報の一部または全部が符号化制御情報52_1~52_Pに格納されてもよいし、符号化制御情報52_1~52_Pに格納される情報の一部または全部が、符号化制御情報52に格納されてもよい。他の情報が符号化制御情報52、52_1~52_Pに格納されてもよい。
【0060】
パリティを用いることで、受信側でトランザクションを含む符号化メッセージの受信に失敗した場合でも(例えば、当該符号化メッセージのパケットが消失したり、トランザクションに誤りがある場合でも)、トランザクションを復元できる。復元に必要なパリティの個数は符号化方式に依存する。パリティは、消失したトランザクションを復元する消失訂正符号である。
【0061】
図9(C)は、オリジナルメッセージとしてのN(Nは2以上の整数)個のトランザクションから複数(N+P個)の符号化メッセージを生成する例を示す。N個のトランザクションから、所定サイズのパリティ(冗長データ)をP(Pは2以上の整数)個生成する。N個のトランザクションとP個のパリティとのそれぞれに符号化制御情報53_1~53_N、54_1~54_Pを付加して、複数(N+P個)の符号化メッセージを得る。各符号化メッセージにおけるパリティの後に、さらに、ビット誤りを検出するCRC(Cyclic Redundancy Check)ビット系列を付与してもよい。
【0062】
符号化制御情報53_1~53_Nには、オリジナルメッセージ数(N)、オリジナルメッセージの順序を表すインデックス、パリティメッセージの個数(P)、符号化メッセージ数(N+P)、タイムスタンプなどが格納される。符号化制御情報54_1~54_Pには、トランザクション1~Nのインデックス、パリティメッセージの順序を表すインデックス、タイムスタンプなどが格納される。符号化制御情報53_1~53_Nに格納されるとした情報の一部または全部が符号化制御情報54_1~54_Pに格納されてもよいし、符号化制御情報54_1~54_Pに格納されるとした情報の一部または全部が、符号化制御情報53_1~53_Pに格納されてもよい。他の情報が符号化制御情報53_1~53_N、54_1~54_Pに格納されてもよい。
【0063】
送信時は、例えばトランザクションの符号化メッセージをインデックスの順番に連続して送信し、パリティの符号化メッセージをパリティのインデックスの順番に連続して送信する。受信側では、パリティを用いることで、トランザクションを含む符号化メッセージが途中で消失した場合でも(符号化メッセージのパケットが消失した場合や、トランザクションのビットに誤りがある場合でも)、トランザクションを復元できる。復元可能なオリジナルメッセージ(トランザクション)の個数、及び復元に必要なパリティの個数等は符号化方式に依存する。
【0064】
図10は、図9(C)に示した複数のトランザクションから複数の符号化メッセージを生成する場合のバリエーションを示す。図9(C)の例では、連続するインデックス1~Nの複数のトランザクションを用いた。この場合、符号化及び復号化時に待ち時間を短くできる利点がある。これに対して、図10の例では、非連続のインデックスのトランザクションを選択する。具体的には、連続するインデックスのトランザクションからK個おきにトランザクションをN個選択する。選択したN個のトランザクションからP個のパリティを生成する。送信時は、例えば、トランザクションの符号化メッセージを元のインデックスの順番で送信する。パリティの符号化メッセージはパリティのインデックスの順番に連続して送信する。このように非連続のトランザクションを用いてパリティを生成することにより、通信品質が不安定になりバーストエラーが発生しても、トランザクションを復号化できる可能性が向上する。
【0065】
図11は、図9(C)の符号化方法で生成した複数の符号化メッセージの送信順序のバリエーションを示す。図11の例では、トランザクションの符号化メッセージの送信の途中で、パリティの符号化メッセージを等間隔に挿入して送信する。具体的には、N個のトランザクションの符号化メッセージ(トランザクションパケット)に対して、P個のパリティの符号化メッセージ(パリティパケット)を等間隔に入れて送信する。図の左には、符号化により生成されたN個のトランザクションパットとP個のパリティパケットを示し、図の右には、N個のトランザクションパケットに、P個のパリティパケットを等間隔に入れた例を示す。このように並び替えられた順序でトランザクションパケットとパリティパケットを送信することで、通信品質が不安定になりバーストエラーが発生した場合に、トランザクションを復号化できる可能性が一層向上する。
【0066】
図11の例ではパリティパケットをトランザクションパケットに対して等間隔に挿入したが、パリティパケットを不等間隔に入れて送信することも可能である。また、パリティパケットを等間隔に入れる場合においても、NがPで割り切れない値である場合には、特定の箇所においてパリティパケットの挿入を不等間隔とすることも可能である。
【0067】
以下、図12図14を用いて、端末装置101における復号化処理の例について説明する。この例では復号化によりトランザクションを取得する例を示すが、承認データ等の他のデータの場合も同様である。
【0068】
図12は、端末装置101における復号化処理の例を示すフローチャートである。端末装置101は、通信ネットワーク102を介して、トランザクションに関する1つ又は複数の符号化メッセージを受信する(S401)。受信した符号化メッセージに基づき、メッセージ(本例ではトランザクション)の消失又は誤りがあるかを判断する(S402)。誤りがあるか否かは、一例として、CRC等の誤り検出符号を用いて判断する。メッセージの消失があるか否かの判断の詳細は後述する。
【0069】
メッセージに消失及び誤りがない場合は(YES)、メッセージの受信を完了する(S403)。すなわち、メッセージの受信に成功したことになる。
【0070】
一方、メッセージに誤りがある場合は(NO)、パリティを用いて誤り訂正(図9(A)の場合)又は、消失訂正(図9(B)、図9(C)の場合)を行うことにより、メッセージを復元する(S404)。メッセージが復元されたら、復元されたメッセージを取得する。これによりメッセージの受信を完了する(S403)。
【0071】
またメッセージに消失がある場合は(NO)、パリティを用いて消失訂正(図9(B)、図9(C)の場合)を行うことにより、メッセージを復元する(S404)。これによりメッセージの受信を完了する(S403)。
【0072】
図13は、図12のステップS402で行うメッセージの消失の有無を判断する処理の第1の例を示すフローチャートである。
【0073】
端末装置101は、メッセージ(本例ではトランザクション)のインデックスが、直前に受信したメッセージのインデックスと連続しているかを判断する(S411)。具体的には、インデックスn-1のメッセージの次に受信したメッセージのインデックスがnであるかを判断する。
【0074】
インデックスn-1のメッセージの次に受信したメッセージのインデックスがnでない場合は、インデックスnのメッセージは消失したと判断する(S412)。
【0075】
インデックスn-1のメッセージの次に受信したメッセージのインデックスがnである場合、インデックスnのメッセージに誤りがあるか否かを、CRC等の誤り検出符号に基づき判断する(S413)。誤りがある場合は、インデックスnのメッセージは消失したと判断する(S412)。誤りがない場合は、インデックスnのメッセージは消失していないと判断する(S414)。
【0076】
図14は、図12のステップS402で行うメッセージの消失の有無を判断する処理の第2の例を示すフローチャートである。
【0077】
端末装置101は、メッセージ(本例ではトランザクション)を受信した後、所定の時間を待機する(S421、S422)。所定の時間以内に、次のインデックスのメッセージを受信したかを判断する(S423)。すなわち、直前に受信したメッセージのインデックスn-1に連続するインデックスnのメッセージを、インデックスn-1のメッセージの受信から所定の時間以内に受信したかを判断する。所定の時間を待機することで、メッセージがインデックスの順序と異なって到着する場合にも対応できる。
【0078】
所定の時間以内にインデックスnのメッセージを受信しない場合は、インデックスnのメッセージは消失したと判断する(S424)。
【0079】
所定の時間以内にインデックスnのメッセージを受信した場、インデックスnのメッセージに誤りがあるか否かを、CRC等の誤り検出符号に基づき判断する(S425)。誤りがある場合は、インデックスnのメッセージは消失したと判断する(S424)。誤りがない場合は、インデックスnのメッセージは消失していないと判断する(S426)。
【0080】
図15は、図12のステップS402で行うメッセージの消失の有無を判断する処理の第3の例を示すフローチャートである。
【0081】
端末装置101はN+P個分の符号化メッセージに相当する期間の間、符号化メッセージの受信を待機する(S431)。Nはトランザクションを含む符号化メッセージの個数、Pはパリティを含む符号化メッセージの個数である(図9(C)参照)。
【0082】
端末装置101は、当該期間に受信された符号化メッセージに基づき、当該期間で受信されるべきN個のトランザクションのメッセージのそれぞれ(インデックスnのメッセージとする)が受信されたかを判断する(S432)。受信されていないインデックスnのメッセージが存在する場合は、インデックスnのメッセージは消失したと判断する(S433)。
【0083】
インデックスnのメッセージが受信されている場合、インデックスnのメッセージに誤りがあるか否かを、CRC等の誤り検出符号に基づき判断する(S434)。誤りがある場合は、インデックスnのメッセージは消失したと判断する(S433)。誤りがない場合は、インデックスnのメッセージは消失していないと判断する(S435)。
【0084】
以上、本実施形態によれば、電波環境が不安定なネットワークにおいても、ブロードキャスト又はマルチキャストを安定して実行できるため、ブロックチェーンを安定して運用可能にすることが可能になる。関連技術におけるブロックチェーンでは、通信ネットワークで下位レイヤでのビットレベルでの誤り検出又は誤り訂正は行われているが、アプリのデータ(トランザクション、承認データ等)を含むメッセージ自体が届かない場合、メッセージの再送は行われていない。このため、メッセージが届かないノードではブロックチェーンが分断される。この場合、例えば合意アルゴリズムにより最も長いブロックチェーンが採用され、最も長いブロックチェーンの情報を当該ノードで他のノードから取得することになる。これに対して、本実施形態では、消失したデータまたは誤りのあるデータを、パリティを用いて復元することができる。よって、データの消失又は誤りがあってもデータの受信に成功する可能性を高め、ブロックチェーンの分断の可能性を軽減又はブロックチェーンの分断を回避できる。他のノードから最も長いブロックチェーンの情報を取得する等の機会は少なくなり、ブロックチェーンシステムにおける全体の処理量を低減できる。
【0085】
(変形例1)
データの種類(トランザクション、承認要求、承認データ等)によって、符号化方法又は符号化の強さを変えてもよい。例えばPの値を大きくするほど、符号化の強さを大きくできる。
【0086】
また、トランザクション、承認要求及び承認データのうち、いずれか1つを符号化及び復号化の対象とし、その他を符号化及び復号化の対象としなくてもよい。例えば、トランザクションは符号化するが、承認要求及び承認データは符号化しないようにしてもよい。トランザクションは、各端末装置で承認を正しく完了するために必要な材料である。このため、特に安定してトランザクションをやり取りしたいという要求がある場合に、トランザクションを符号化することが効果的である。
【0087】
また、例えば、トランザクションは符号化しないが、承認要求又は承認データは符号化するようにしてもよい。ブロックチェーンとして残るのは承認されたブロックなので、特に安定して承認要求又は承認データをやり取りしたいという要求がある場合に、承認要求又は承認データを符号化することが効果的である。
【0088】
(変形例2)
図9(C)のようにトランザクションを含むN個の符号化メッセージと、パリティを含むP個の符号化メッセージを生成する場合に、パリティ(消失訂正符号)の復号能力に応じて、一部の符号化メッセージを間引き(パンクチャ)してもよい。この場合、パンクチャ後に残った符号化メッセージを送信し、パンクチャされた符号化メッセージは送信しない。これにより、送信するデータ量を圧縮できる。
【0089】
図16は、変形例2におけるパンクチャリングの例を示す図である。N個のトランザクションから、トランザクションを含むN個の符号化メッセージと、パリティを含むP個の符号化メッセージが生成されている。N+P個の符号化メッセージからM個の符号化メッセージをパンクチャする。図の例では、トランザクションN’を含む符号化メッセージと、トランザクションN’-2を含む符号化メッセージ等がパンクチャされている。M個の符号化メッセージをパンクチャした残りのN+P-M個の符号化メッセージを送信(ブロードキャスト又はマルチキャスト)する。図16の例では、パンクチャリングする符号化メッセージは、トランザクションを含む符号化メッセージであったが、パリティを含む符号化メッセージをパンクチャしてもよい。トランザクションを含む符号化メッセージと、パリティを含む符号化メッセージとの両方をパンクチャしてもよい。
【0090】
M、P、Nの関係の目安は、一例として以下のようになる。以下の関係は、使用する符号化方式に依存する。使用する符号化方式に応じて、適宜、M、P、Nの値を決定すればよい。
Pの目安の例:P>N*(Pe+0.1)
Mの目安の例:M<(N+P)*Pe、もしくはM<(N+P)*(P/N-0.1)
Pe(0<=Pe<=1):復元可能なメッセージの比率
【0091】
(変形例3)
前述した実施形態ではアプリケーション層で符号化及び復号化を行う場合を想定したが、他の層で符号化及び復号化を行うことも可能である。前述した図3に示したトランスポート層、データリンク層(例えばRLC層)、又は物理層で、符号化及び復号化を行ってもよい。また、アプリケーション層、トランスポート層、データリンク層、物理層のうち2つ以上の層で、符号化及び復号化を行ってもよい。特に、トランスポート層での符号化は、アプリケーション層と同様に有効である。いずれの場合も複数の端末装置間で符号化及び復号化を行うことが可能である。
【0092】
また、端末装置と基地局間で符号化及び復号化を行うことも可能である。この場合、例えば、データリンク層及び物理層の少なくとも一方で符号化及び復号化を行うことが可能である。本実施形態に係る情報処理装置を基地局が備えていてもよい。ただし、基地局は、ブロックチェーンに参加するノードではなく、端末装置間で送受信されるメッセージを中継する中継局として機能する。基地局及び端末装置間の符号化及び復号化の処理は、端末装置間の符号化及び復号化と同様でよい。このように基地局及び端末装置間でも、本実施形態に係る符号化及び復号化を行うことができる。
【0093】
(変形例4)
前述した実施形態では、ブロックチェーンを構成するブロックにトランザクション等を格納したが、トランザクションを含む符号化メッセージと、パリティを含む符号化メッセージとを格納してもよい。例えばN個のトランザクションから、トランザクションを含むN個の符号化メッセージと、パリティを含むP個の符号化メッセージを生成する場合、N個の符号化メッセージとP個の符号化メッセージとをブロックに格納する。つまり、オリジナルメッセージとしてトランザクションと、符号化により生成されたパリティとの両方を用いて、ブロックチェーンに追加するブロックを生成する。これにより、例えばブロックチェーンシステムに新規に参加する参加者の端末装置が他の端末装置からブロックチェーンの情報を取得する場合に、消失訂正によるパケット復元(消失したトランザクションの復元)の効果を得ることが期待できる。一方、前述した実施形態のようにパリティを含む符号化メッセージをブロックに格納しない場合は、ブロックチェーン全体のサイズを小さく保つことができる。
【0094】
本実施形態に係るブロックチェーンシステムのユースケース例について説明する。
【0095】
(地図の管理)
本実施形態に係るブロックチェーンシステムを複数のユーザ間で地図を共有する場合に用いることができる。一例として、自動車、飛行機等の移動体に搭載された電子機器、歩行者が保持する電子機器、インターネットに配置されたデータベース装置(サーバ)等を、図1の端末装置101(情報処理装置)として用いる。移動体に搭載された電子機器、歩行者に保持された電子機器及びデータベース装置が、トランザクションを生成して、ブロックチェーンシステムへブロードキャスト又はマルチキャストする。
【0096】
電子機器及びデータベース装置で生成するトランザクションの例としては、位置情報、タイムスタンプ、カメラの動画像及び音声、建物名、店名・カテゴリ(例えば飲食店、小売店、病院など)がある。
【0097】
電子機器及びデータベース装置のうちのあるノードは、ブロックチェーンシステムからトランザクションを収集し、収集したトランザクションを含むブロックを生成する。生成したブロックの承認を合意アルゴリズムに基づき取得し、承認されたブロックに関する情報を含む承認データをブロードキャスト又はマルチキャストする。他のノードは、ブロードキャスト又はマルチキャストされた承認データを受信し、承認されたブロックをブロックチェーンに追加する。これにより電子機器及びデータベース装置間で地図を共有し、また地図を更新していくことができる。
【0098】
(運転の指示・記録)
本実施形態に係るブロックチェーンシステムを、車両や飛行機等の移動体に運転(自動運転を含む)の指示を出すための補助情報の提供に用いることができる。また、当該ブロックチェーンシステムを、車両等の移動体の故障・事故発生時の検証や保険適用可否の判断のためのデータの記録に用いることができる。
【0099】
一例として、移動体に搭載された電子機器、インターネットに配置されたデータベース装置(サーバ)等を、図1の端末装置101(情報処理装置)として用いる。移動体に搭載された電子機器及びデータベース装置が、トランザクションを生成して、ブロックチェーンシステムへブロードキャスト又はマルチキャストする。
【0100】
電子機器及びデータベース装置で生成するトランザクションの例としては、位置情報、タイムスタンプ、車種・整備状況、車載カメラの動画像・音声、車載レーダの検出結果、アクセル・ブレーキなどの運転操作履歴(自動運転の場合を含む)、ドライバの状態、などがある。
【0101】
電子機器及びデータベース装置のうちのあるノードは、ブロックチェーンシステムからトランザクションを収集し、収集したトランザクションを含むブロックを生成する。生成したブロックの承認を合意アルゴリズムに基づき取得し、承認されたブロックに関する情報を含む承認データをブロードキャスト又はマルチキャストする。他のノードは、ブロードキャスト又はマルチキャストされた承認データを受信し、承認されたブロックをブロックチェーンに追加する。これにより電子機器又はデータベース装置で、ブロックチェーンに登録されている情報を補助情報として用いて運転の指示を生成し、生成した指示を移動体又はドライバに送信することができる。また、移動体の故障又は事故が発生した場合に、故障又は事故の検証や、保険適用の可否を判断するために、ブロックチェーンに登録されている情報を利用することができる。
【0102】
(ロボットのタスク管理)
本実施形態に係るブロックチェーンシステムを、倉庫又は工場等の施設内で稼働する複数のロボットのタスク管理に用いることができる。
【0103】
一例として、施設内の複数のロボットに搭載された電子機器、インターネットに配置されたデータベース装置(サーバ)等を、図1の端末装置101(情報処理装置)として用いる。ロボットに搭載された電子機器及びデータベース装置が、トランザクションを生成して、ブロックチェーンシステムへブロードキャスト又はマルチキャストする。
【0104】
データベース装置で生成するトランザクションの例としては、ロボットに対する作業指示がある。ロボットに搭載された電子機器で生成するトランザクションの例としては、作業開始、作業状況、作業完了、作業報告などがある。
【0105】
ロボットに搭載された電子機器及びデータベース装置のうちのあるノードは、ブロックチェーンシステムからトランザクションを収集し、収集したトランザクションを含むブロックを生成する。生成したブロックの承認を合意アルゴリズムに基づき取得し、承認されたブロックに関する情報を含む承認データをブロードキャスト又はマルチキャストする。他のノードは、ブロードキャスト又はマルチキャストされた承認データを受信し、承認されたブロックをブロックチェーンに追加する。ブロックチェーンに登録された情報を複数のロボットによる作業管理、及び在庫管理に用いることができる。また、ブロックチェーンに登録された情報を、複数のロボット間の作業の重複、作業の漏れを回避するのに用いることができる。これにより、作業効率を高めることができる。
【0106】
(人物トレース)
本実施形態に係るブロックチェーンシステムを、犯罪者又は前科者の追跡といった人物のトレースに用いることができる。
【0107】
一例として、追跡対象となる人が保持する電子機器、追跡対象となる人が移動する環境に設置されたセンシング装置、インターネットに配置されたデータベース装置(サーバ)等を、図1の端末装置101(情報処理装置)として用いる。
【0108】
追跡対象となる人が保持する電子機器で生成するトランザクションの例としては、位置情報、タイムスタンプ、行動履歴等がある。センシング装置で生成するトランザクションの例としては、位置情報、タイムスタンプ、センシングデータ等がある。センシングデータの例として、動画像、音声、検出した人物を識別する情報、検出した物体(例えば検出した人物が保持している物体等)を識別する情報がある。
【0109】
電子機器及びセンシング装置のうちのあるノードが、トランザクションを生成して、ブロックチェーンシステムへブロードキャスト又はマルチキャストする。データベース装置は、ブロックチェーンシステムからトランザクションを収集し、収集したトランザクションを含むブロックを生成する。生成したブロックの承認を合意アルゴリズムに基づき取得し、承認されたブロックに関する情報を含む承認データをブロードキャスト又はマルチキャストする。当該他のノード(例えばデータベース装置)は、ブロードキャスト又はマルチキャストされた承認データを受信し、承認されたブロックをブロックチェーンに追加する。ブロックチェーンに登録された情報を人物のトレースに用いることができる。本例では、ブロックチェーンを保持するノードはデータベース装置のみであったが、電子機器及びセンシング装置の少なくとも一方もブロックチェーンを保持してもよい。
【0110】
(その他)
本実施形態に係るブロックチェーンシステムの対象データとなり得る他のデータ例を以下に列挙する。
・金融取引(株、未公開株、クラウドファンディング、債権、投資信託、デリバティブ、年金保険、年金、など)
・公的情報(不動産登記、自動車登録、二輪車登録、自転車登録、事業者登録、結婚証明、死亡証明、など)
・ID(運転免許、IDカード、パスポート、有権者登録、など)
・民間(借用証書、ローン、契約、賭博、署名、遺言、信託、など)
・証明(保険証明、所有証明、公証、など)
・鍵(家、ホテル、レンタカー、自動車利用、など)
・無形資産(特許、商標、著作権、予約、ドメイン名、など)
・取引(エスクロー取引、担保付取引、第三者裁定、複数者取引、など)
【0111】
(ハードウェア構成)
図17に、本実施形態に係る情報処理装置のハードウェア構成の一例を示す。端末装置101が備える情報処理装置は、コンピュータ装置300により構成される。コンピュータ装置300は、CPU301と、入力インタフェース302と、表示装置303と、通信装置304と、主記憶装置305と、外部記憶装置306とを備え、これらはバス307により相互に接続されている。基地局103が備える情報処理装置も端末装置101と同様の構成を備えている。
【0112】
CPU(中央演算装置)301は、主記憶装置305上で、コンピュータプログラムを実行する。コンピュータプログラムは、情報処理装置の上述の各機能構成を実現するプログラムのことである。コンピュータプログラムは、1つのプログラムではなく、複数のプログラムやスクリプトの組み合わせにより実現されていてもよい。CPU301が、コンピュータプログラムを実行することにより、各機能構成は実現される。
【0113】
入力インタフェース302は、キーボード、マウス、およびタッチパネルなどの入力装置からの操作信号を、情報処理装置に入力するための回路である。
【0114】
表示装置303は、情報処理装置に記憶されているデータ又は情報処理装置で算出されたデータを表示する。表示装置303は、例えば、LCD(液晶ディスプレイ)、有機エレクトロルミネッセンスディスプレイ、CRT(ブラウン管)、またはPDP(プラズマディスプレイ)であるが、これに限られない。
【0115】
通信装置304は、情報処理装置が外部装置と無線または有線で通信するための回路である。情報処理装置で用いるデータを、通信装置304を介して外部装置から入力することができる。通信装置304はアンテナを含む。外部装置から入力したデータを、主記憶装置305や外部記憶装置306に格納することができる。
【0116】
主記憶装置305は、コンピュータプログラム、コンピュータプログラムの実行に必要なデータ、およびコンピュータプログラムの実行により生成されたデータなどを記憶する。コンピュータプログラムは、主記憶装置305上で展開され、実行される。主記憶装置305は、例えば、RAM、DRAM、SRAMであるが、これに限られない。図5の記憶部は、主記憶装置305上に構築されてもよい。
【0117】
外部記憶装置306は、コンピュータプログラム、コンピュータプログラムの実行に必要なデータ、およびコンピュータプログラムの実行により生成されたデータなどを記憶する。これらのコンピュータプログラムやデータは、コンピュータプログラムの実行の際に、主記憶装置305に読み出される。外部記憶装置306は、例えば、ハードディスク、光ディスク、フラッシュメモリ、及び磁気テープであるが、これに限られない。図5の記憶部は、外部記憶装置306上に構築されてもよい。
【0118】
なお、コンピュータプログラムは、コンピュータ装置300に予めインストールされていてもよいし、CD-ROMなどの記憶媒体に記憶されていてもよい。また、コンピュータプログラムは、インターネット上にアップロードされていてもよい。
【0119】
また、コンピュータ装置300は単一の装置により構成されてもよいし、相互に接続された複数のコンピュータ装置からなるシステムとして構成されてもよい。
【0120】
なお、上述の実施形態は本開示を具現化するための一例を示したものであり、その他の様々な形態で本開示を実施することが可能である。例えば、本開示の要旨を逸脱しない範囲で、種々の変形、置換、省略又はこれらの組み合わせが可能である。そのような変形、置換、省略等を行った形態も、本開示の範囲に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【0121】
また、本明細書に記載された本開示の効果は例示に過ぎず、その他の効果があってもよい。
【0122】
なお、本開示は以下のような構成を取ることもできる。
[項目1]
対象データを符号化することにより、前記対象データの冗長データを生成する符号化部と、
前記対象データと前記冗長データとを、前記対象データを複数の装置で分散して管理する分散ネットワークにブロードキャスト又はマルチキャストする通信部と、
を備えた情報処理装置。
[項目2]
前記符号化部は、前記対象データをアプリケーション層又はトランスポート層で符号化する
項目1に記載の情報処理装置。
[項目3]
前記対象データは、ブロックチェーンのアプリケーションによって生成されたデータである
項目1又は2に記載の情報処理装置。
[項目4]
前記対象データは、前記ブロックチェーンのトランザクションである
項目3に記載の情報処理装置。
[項目5]
前記対象データは、前記ブロックチェーンにおけるブロックの承認要求又は承認データである
項目3に記載の情報処理装置。
[項目6]
前記符号化部は、前記対象データの種類に応じて、前記符号化で用いる符号の種類を変更する
項目1~5のいずれか一項に記載の情報処理装置。
[項目7]
前記符号化部は、前記対象データの種類に応じて、前記冗長データの個数を変更する
項目1~6のいずれか一項に記載の情報処理装置。
[項目8]
前記符号化部は、前記対象データの種類に応じて、前記符号化の実行有無を切り替える
項目1~7のいずれか一項に記載の情報処理装置。
[項目9]
前記符号化部は、前記対象データに基づき、複数の前記冗長データを生成する
項目1~8のいずれか一項に記載の情報処理装置。
[項目10]
前記符号化部は、複数の前記対象データに基づき、複数の前記冗長データを生成する
項目1~9のいずれか一項に記載の情報処理装置。
[項目11]
前記符号化部は、複数の前記冗長データに基づき復元可能な対象データの個数以下の前記対象データを、複数の前記対象データから間引き、
前記通信部は、間引き後に残った前記対象データを送信し、間引かれた前記対象データを送信しない
項目1~10のいずれか一項に記載の情報処理装置。
[項目12]
前記符号化部は、第1の順序で配置された複数の前記対象データから非連続の複数の対象データを選択し、前記非連続の複数の対象データに基づき、複数の前記冗長データを生成し、
前記通信部は、前記第1の順序で複数の前記対象データを送信し、複数の前記冗長データを送信する
項目1~11のいずれか一項に記載の情報処理装置。
[項目13]
前記通信部は、前記対象データと前記冗長データとを含むメッセージを送信する
項目1~12のいずれか一項に記載の情報処理装置。
[項目14]
前記通信部は、前記対象データを含む第1メッセージと、前記冗長データを含む第2メッセージとを送信する
項目1~13のいずれか一項に記載の情報処理装置。
[項目15]
前記通信部は、前記分散ネットワークから前記装置によって生成された対象データと、前記対象データのための冗長データとを受信し、
受信した前記対象データと受信した前記冗長データとを含むブロックをブロックチェーンに追加する処理部を備えた
項目1~14のいずれか一項に記載の情報処理装置。
[項目16]
対象データを符号化することにより、前記対象データの冗長データを生成し、
前記対象データと前記冗長データとを、前記対象データを複数の装置で分散して管理する分散ネットワークにブロードキャスト又はマルチキャストする
情報処理方法。
[項目17]
対象データを符号化することにより、前記対象データの冗長データを生成するステップと、
前記対象データと前記冗長データとを、前記対象データを複数の装置で分散して管理する分散ネットワークにブロードキャスト又はマルチキャストするステップと
をコンピュータに実行させるためのコンピュータプログラム。
[項目18]
対象データを符号化することにより、前記対象データの冗長データを生成する符号化部と、前記対象データと前記冗長データとを、前記対象データを複数の装置で分散して管理する分散ネットワークにブロードキャスト又はマルチキャストする通信部と、を備えた第1情報処理装置と、
前記分散ネットワークから前記対象データと前記冗長データとを受信する受信部と、前記対象データが消失した場合又は前記対象データに誤りが検出された場合に、前記冗長データに基づき前記対象データを復元する復号部と、を備えた第2情報処理装置と
を備えた情報処理システム。
【符号の説明】
【0123】
10:アンテナ
11:通信部
12:符号化部
13:復号化部
14:処理部
15:記憶部
100:分散ネットワーク
101A~101E:端末装置
102:通信ネットワーク
103A、103B:基地局
300:コンピュータ装置
301:CPU
302:入力インタフェース
303:表示装置
304:通信装置
305:主記憶装置
306:外部記憶装置
307:バス
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20