(57)【要約】【課題】更新される情報の参照時間を短縮可能とすること。【解決手段】トランザクション管理装置は、複数のパラメータの値を含む第１のトランザクションがブロックチェーンに発行されてから第１の条件が満たされるまでに発行された、前記複数のパラメータのいずれかの値を更新する第２のトランザクションを前記ブロックチェーンから取得する取得部と、前記取得部が取得したいずれかの前記第２のトランザクションによって値が更新されたパラメータの値を前記ブロックチェーンの外部の記憶部に記憶すると共に、前記記憶部に記憶された当該値と前記第１のトランザクションとを関連付ける情報を含む第３のトランザクションを前記ブロックチェーンに発行する発行部と、を有する。【選択図】図３
2019215627.tif 000002
【特許請求の範囲】
【請求項１】
複数のパラメータの値を含む第１のトランザクションがブロックチェーンに発行されてから第１の条件が満たされるまでに発行された、前記複数のパラメータのいずれかの値を更新する第２のトランザクションを前記ブロックチェーンから取得する取得部と、
前記取得部が取得したいずれかの前記第２のトランザクションによって値が更新されたパラメータの値を前記ブロックチェーンの外部の記憶部に記憶すると共に、前記記憶部に記憶された当該値と前記第１のトランザクションとを関連付ける情報を含む第３のトランザクションを前記ブロックチェーンに発行する発行部と、
を有することを特徴とするトランザクション管理装置。
【請求項２】
前記情報は、前記第１のトランザクションに含まれている識別情報であり、
前記発行部は、前記取得部が取得したいずれかの前記第２のトランザクションによって値が更新されたパラメータの値を、前記識別情報に関連付けて前記記憶部に記憶し、前記識別情報を含む前記第３のトランザクションを発行する、
ことを特徴とする請求項１記載のトランザクション管理装置。
【請求項３】
前記発行部は、前記取得部が取得したいずれかの前記第２のトランザクションによって値が更新されたパラメータの名前を前記第３のトランザクションに含める、
ことを特徴とする請求項１又は２記載のトランザクション管理装置。
【請求項４】
前記第３のトランザクションが発行されてから第２の条件が満たされるたびに、前記第１のトランザクションに対して新たに発行された前記第２のトランザクションを前記ブロックチェーンから検索し、検索された前記第２のトランザクションに基づいて、前記記憶部に記憶された値を更新する更新部、
を有することを特徴とする請求項１乃至３いずれか一項記載のトランザクション管理装置。
【請求項５】
複数のパラメータの値を含む第１のトランザクションがブロックチェーンに発行されてから第１の条件が満たされるまでに発行された、前記複数のパラメータのいずれかの値を更新する第２のトランザクションを前記ブロックチェーンから取得する処理と、
前記取得する処理が取得したいずれかの前記第２のトランザクションによって値が更新されたパラメータの値を前記ブロックチェーンの外部の記憶部に記憶すると共に、前記記憶部に記憶された当該値と前記第１のトランザクションとを関連付ける情報を含む第３のトランザクションを前記ブロックチェーンに発行する処理と、
をコンピュータが実行することを特徴とするトランザクション管理方法。
【請求項６】
複数のパラメータの値を含む第１のトランザクションがブロックチェーンに発行されてから第１の条件が満たされるまでに発行された、前記複数のパラメータのいずれかの値を更新する第２のトランザクションを前記ブロックチェーンから取得する処理と、
前記取得する処理が取得したいずれかの前記第２のトランザクションによって値が更新されたパラメータの値を前記ブロックチェーンの外部の記憶部に記憶すると共に、前記記憶部に記憶された当該値と前記第１のトランザクションとを関連付ける情報を含む第３のトランザクションを前記ブロックチェーンに発行する処理と、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トランザクション管理装置、トランザクション管理方法及びプログラムに関する。
【背景技術】
【０００２】
ブロックチェーン技術には、中央データベースが不要、改竄が困難、ゼロダウンタイムといった特徴が有る。近年、ブロックチェーン技術のこのような特徴と有するネットワーク構成を利用した、情報共有サービスなどの開発や利用に向けて、産業界の各社が実証実験などの試みを進めている。
【０００３】
現実の情報共有サービスにおいては、一度発行したら二度と変更させたくない情報（以下、「固有情報」という。）と、発行後に更新されうる情報（以下、「付加情報」という。）を含むトランザクションを同時に管理したいというニーズがある。例えば、ＩｏＴ機器であれば、機器のＩＤ、仕様、製造日等が固有情報の一例として挙げられ、測定温度、測定電流、通信状態等が付加情報の一例として挙げられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−１２３６９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のようなニーズに対して、固有情報及び付加情報の双方を含むトランザクションをブロックチェーンに発行した後、付加情報が変化するたびに、付加情報を更新するトランザクションを当該ブロックチェーンに発行することが考えられる。
【０００６】
このような方法のメリットとして、固有情報が改竄困難だという点が挙げられる。なぜならば、ブロックチェーン上に発行されたトランザクションにのみ固有情報が含まれているところ、ブロックチェーンは改竄困難という性質を有するからである。
【０００７】
しかしながら、付加情報を参照する際には、過去に発行された更新のための全てのトランザクションを参照する必要があるため、トランザクションの総量に比例して、付加情報の参照のための計算量が増加してしまう。
【０００８】
一方、固有情報をブロックチェーン内で、付加情報はブロックチェーン外（ストレージ等）で管理する手法が考えられる。付加情報の更新・参照はブロックチェーンではなく、ストレージで行われる。したがって、付加情報参照の際に見るべき情報はストレージ内の付加情報が記載された部分のみでよく、付加情報の計算量は少なく済むブロックチェーンおよびストレージを組み合わせた方式として特許文献１に開示された方式が存在する。しかし、ブロックチェーンとストレージとを組み合わせたとしても、固有情報と付加情報の区分が曖昧な場合には活かせないことが挙げられる。
【０００９】
例えば、単一の規格のＩｏＴ機器を管理する場合では、固有情報（機器のＩＤ、製造日等）と付加情報（測定電流、通信状態等）とが固定されたフォーマットで定まっており、ブロックチェーンとストレージとを併用した管理が容易である。しかし、同一のブロックチェーン上でフォーマットが統一されていない多数のＩｏＴ機器を管理する場合は、それぞれの機器に対する知見がないと、固有情報と付加情報の区別がつかない。従って、ブロックチェーンとストレージとを併用した管理が難しく、更新情報の参照時間の短縮する手法としては十分ではない。
【００１０】
そこで、一側面では、本発明は、更新される情報の参照時間を短縮可能とすることを目的とする。
【課題を解決するための手段】
【００１１】
一つの態様では、トランザクション管理装置は、複数のパラメータの値を含む第１のトランザクションがブロックチェーンに発行されてから第１の条件が満たされるまでに発行された、前記複数のパラメータのいずれかの値を更新する第２のトランザクションを前記ブロックチェーンから取得する取得部と、前記取得部が取得したいずれかの前記第２のトランザクションによって値が更新されたパラメータの値を前記ブロックチェーンの外部の記憶部に記憶すると共に、前記記憶部に記憶された当該値と前記第１のトランザクションとを関連付ける情報を含む第３のトランザクションを前記ブロックチェーンに発行する発行部と、を有する。
【発明の効果】
【００１２】
一側面として、更新される情報の参照時間を短縮可能とすることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態におけるシステム構成例を示す図である。
【図２】本発明の実施の形態における付加情報管理装置１０のハードウェア構成例を示す図である。
【図３】本発明の実施の形態における各装置の機能構成例を示す図である。
【図４】機器２０の初期トランザクション発行部２１を説明するための図である。
【図５】機器２０の更新トランザクション発行部２２を説明するための図である。
【図６】付加情報管理装置１０の付加情報分離部１１を説明するための図である。
【図７】付加情報管理装置１０の付加情報更新部１２を説明するための図である。
【図８】対象機器２０の初期トランザクション発行部２１が実行する処理手順の一例を説明するためのフローチャートである。
【図９】初期トランザクションＴ０の例を示す図である。
【図１０】更新トランザクション発行部２２が実行する処理手順の一例を説明するためのフローチャートである。
【図１１】更新トランザクションＴ１の例を示す図である。
【図１２】更新トランザクションＴ２の例を示す図である。
【図１３】付加情報分離部１１が実行する処理手順の一例を説明するためのフローチャートである。
【図１４】分離トランザクションＴ３の例を示す図である。
【図１５】分離情報記憶部１３の構成例を示す図である。
【図１６】付加情報更新部１２が実行する処理手順の一例を説明するためのフローチャートである。
【図１７】更新トランザクションＴ４の例を示す図である。
【図１８】分離情報記憶部１３の更新例を示す図である。
【図１９】付加情報参照部３１が実行する処理手順の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態におけるシステム構成例を示す図である。図１において、１以上の機器２０は、付加情報管理装置１０、及び分散型ネットワークとしてのブロックチェーン４０とネットワークを介して接続される。また、付加情報管理装置１０もブロックチェーン４０とネットワークを介して接続される。更に、参照装置３０がブロックチェーン４０及び付加情報管理装置１０にネットワークを介して接続される。
【００１５】
各機器２０は、当該機器２０が生成する情報（以下、「パラメータ情報」という。）を含むトランザクションをブロックチェーン４０上に発行する装置である。例えば、機器２０は、ＩｏＴ機器であってもよい。パラメータ情報には、１つの機器２０についてトランザクションごとに変わらないパラメータ（項目）以下、「固有情報」という。）と、トランザクションに応じて変化しうるパラメータ（項目）（以下、「付加情報」という。）の値とが含まれる。
【００１６】
なお、トランザクションとは、ブロックチェーン上において、或るユーザ（本実施の形態では機器２０）から発行される情報である。例えば、ビットコインのような仮想通貨基盤であれば、送金者、受取者、金額、タイムスタンプなどが書き込まれる領域のほか、任意の情報が８０バイト以下であれば書き込み可能なＯＰ＿ＲＥＴＵＲＮと呼ばれる領域もトランザクション内に含まれる。
【００１７】
ブロックチェーン４０は、複数のブロックチェーンノードによって分散してトランザクションを管理するネットワークである。各ブロックチェーンノードは、Ｐ２Ｐ（peer-to-peer）によってデータ（台帳）を共有する。各トランザクションは、ブロックの単位で各ブロックチェーンノードの台帳に記録される。ブロックとは、直近の複数個のトランザクションの中で、第三者の検証により正当性が保証されたトランザクションの集合である。新しいブロックが作られるたびに、ブロックに順番に番号が付与される。最初のブロックを０番目として、１番目のブロック、２番目のブロック、・・・といった具合にブロック番号の付与されたブロックが連鎖的に（チェーン状に）続く。
【００１８】
付加情報管理装置１０は、パラメータ情報のうちの付加情報を、ブロックチェーン４０の外部で管理するための装置である。
【００１９】
参照装置３０は、パラメータ情報を構成するいずれかのパラメータの参照に利用される装置である。
【００２０】
本実施の形態では、或る機器２０からの所定期間の間のトランザクションについては、固有情報及び付加情報の全てがブロックチェーン４０内で管理される。所定期間の経過後、当該所定期間において更新が行われたパラメータ（項目）が付加情報であると判定され、当該付加情報が付加情報管理装置１０において管理される。付加情報が付加情報管理装置１０に管理されるようになった以降は、所定のタイミングごとに、ブロックチェーン４０における付加情報に対する更新が、付加情報管理装置１０に反映される。
【００２１】
図２は、本発明の実施の形態における付加情報管理装置１０のハードウェア構成例を示す図である。図２の付加情報管理装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００２２】
付加情報管理装置１０での処理を実現するプログラムは、記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００２３】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って付加情報管理装置１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００２４】
なお、記録媒体１０１の一例としては、ＣＤ−ＲＯＭ、ＤＶＤディスク、又はＵＳＢメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置１０２の一例としては、ＨＤＤ（Hard  Disk  Drive）又はフラッシュメモリ等が挙げられる。記録媒体１０１及び補助記憶装置１０２のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
【００２５】
図３は、本発明の実施の形態における各装置の機能構成例を示す図である。図３において、機器２０は、初期トランザクション発行部２１及び更新トランザクション発行部２２等を有する。これら各部は、機器２０にインストールされた１以上のプログラムが、機器２０のＣＰＵに実行させる処理により実現される。
【００２６】
また、付加情報管理装置１０は、付加情報分離部１１及び付加情報更新部１２等を有する。これら各部は、付加情報管理装置１０にインストールされた１以上のプログラムが、付加情報管理装置１０のＣＰＵ１０４に実行させる処理により実現される。付加情報管理装置１０は、また、分離情報記憶部１３を有する。分離情報記憶部１３は、例えば、付加情報管理装置１０の補助記憶装置１０２等のストレージを用いて実現可能である。
【００２７】
また、参照装置３０は、付加情報参照部３１等を有する。付加情報参照部３１は、参照装置３０にインストールされた１以上のプログラムが、参照装置３０のＣＰＵに実行させる処理により実現される。
【００２８】
本実施の形態では、ビットコイン基盤のブロックチェーン４０に、上記の各部が追加された拡張ビットコイン基盤が採用される。但し、本実施の形態は、ビットコイン基盤のブロックチェーン４０に限らず、例えば、イーサリアムと呼ばれるブロックチェーン４０等、種々のブロックチェーン４０をベースとしたブロックチェーン基盤を用いて実現可能である。
【００２９】
機器２０の初期トランザクション発行部２１は、当該機器２０のパラメータ情報の初期値を含むトランザクション（以下、「初期トランザクション」という。）をブロックチェーン４０に対して発行する。すなわち、初期トランザクションは、当該パラメータ情報に関する最初のトランザクションである。初期トランザクション発行部２１は、パラメータ情報の他に付加情報分離符号を初期トランザクションに記録する。付加情報分離符号とは、付加情報が付加情報管理装置１０において管理される際に、ブロックチェーン４０で管理される初期トランザクションと、付加情報管理装置１０において管理される付加情報とを関連付けるために用いられる識別情報である。なお、付加情報分離符号は、例えば、トランザクションを構成する領域のうち、ＯＰ＿ＲＥＴＵＲＮという８０バイト以下の任意のデータを書き込み可能な領域に記録されてもよい。また、８０バイトを越えるデータは，複数のトランザクションに分割して記載してもよい。
【００３０】
図４は、機器２０の初期トランザクション発行部２１を説明するための図である。図４には、機器２０において、トランザクションＩＤが「Ａ０ｘｘ」である初期トランザクションＡ０がブロックチェーン４０上に発行される例が示されている。初期トランザクションＡ０は、機器２０のパラメータ情報に関する最初のトランザクションである。図４に示されるように、初期トランザクションＡ０には、パラメータ情報を構成する全部のパラメータである、パラメータＰ、パラメータＱ及びパラメータＲのそれぞれの値と、初期トランザクションごとに一意な符号列である付加情報分離符号とが含まれる。初期トランザクション発行部２１は、当該パラメータ情報及び当該付加情報分離符号を、トランザクションＡ０に記録する。なお、付加情報分離符号は、初期トランザクションごとに異なる値であればどのような値でもよいので、初期トランザクションのトランザクションＩＤが、付加情報分離符号として利用されてもよい。この場合、初期トランザクション内に、「付加情報分離符号」の項目は設けられなくてもよい。「トランザクションＩＤ」の項目が付加情報分離符号の項目としての役割を兼ねるからである。
【００３１】
機器２０の更新トランザクション発行部２２は、初期トランザクションのパラメータ情報を構成するパラメータのうち、いずれかのパラメータの値を更新（変更）する際に、当該パラメータの更新後の値を含むトランザクション（以下、「更新トランザクション」という。）をブロックチェーン４０上に発行する。
【００３２】
図５は、機器２０の更新トランザクション発行部２２を説明するための図である。図５では、機器２０の更新トランザクション発行部２２が、「書き込み先ＩＤ」が「Ａ０ｘｘ」であり、パラメータＲが「２００」である更新トランザクションＡ１をブロックチェーン４０上に発行し、その後に。「書き込み先ＩＤ」が「Ａ０ｘｘ」であり、パラメータＲが「４００」である更新トランザクションＡ２をブロックチェーン４０上に発行する例が示されている。ここで、「書き込先ＩＤ」とは、パラメータの更新対象となる初期トランザクションのトランザクションＩＤである。すなわち、図５には、図４に示した初期トランザクションＡ０のパラメータＲの値を２００に更新する更新トランザクションに続いて、初期トランザクションＡ０のパラメータＲの値を４００に更新する更新トランザクションが２発行された例が示されている。なお、各更新トランザクションの発行元となる機器２０は、必ずしも初期トランザクションの発行元の機器２０でなくてもよい。例えば、図５の例によれば、更新トランザクションＡ１及び更新トランザクションＡ２の発行元のそれぞれの機器２０は、初期トランザクションＡ０の発行元の機器２０と異なる機器２０であってもよい。
【００３３】
付加情報管理装置１０の付加情報分離部１１は、初期トランザクションＡ０の発行時期から所定期間の経過後において、当該所定期間において更新トランザクションによって値が更新されたパラメータを付加情報であると特定し、当該付加情報を構成するパラメータの名前及び値を、初期トランザクションＡ０の付加情報分離符号に関連付けて分離情報記憶部１３に記憶する。また、この際、付加情報分離部１１は、当該付加情報分離符号と当該付加情報のパラメータの名前とを含むトランザクション（以下「分離トランザクション」という。）をブロックチェーン４０上に発行する。
【００３４】
図６は、付加情報管理装置１０の付加情報分離部１１を説明するための図である。図６には、図５に示した更新トランザクションが発行された後で、付加情報分離部１１が分離情報記憶部１３に記憶する情報（以下、「分離情報」という。）が示されている。分離情報は、初期トランザクションＡ０の付加情報分離符号と、付加情報として特定されたパラメータの名前及び値が含まれる。図６の例では、パラメータＲが付加情報として特定された例が示されている。図５における更新トランザクションでは、パラメータＲのみが更新されているからである。
【００３５】
また、図６には、分離トランザクションの一例としてトランザクションＡ３が示されている。分離トランザクションＡ３は、「書き込み先ＩＤ」、「付加情報分離符号」及び「パラメータ名」等を含む。「書き込み先ＩＤ」は、分離トランザクションＡ３の対象とされる初期トランザクションＡ０のトランザクションＩＤである。「付加情報分離符号」は、当該初期トランザクションＡ０に含まれる付加情報分離符号である。「パラメータ名」は、付加情報分離部１１によって付加情報であるとして特定されたパラメータの名前である。
【００３６】
付加情報更新部１２は、分離情報が分離情報記憶部１３に記憶された付加情報について、当該分離情報の生成後の新たな更新トランザクションによる更新を、所定条件（以下、「分離条件」という。）が満たされるタイミングごと（所定期間ごと）に反映する。
【００３７】
図７は、付加情報管理装置１０の付加情報更新部１２を説明するための図である。図７には、図５において説明した分離情報の生成後（付加情報の分離後）からの所定期間内において、初期トランザクションＡ０のパラメータＲを８００に更新する更新トランザクションＡ４が発行された例が示されている。当該所定期間の経過後、付加情報更新部１２は、当該所定期間における初期トランザクションＡ０の付加情報に対する更新トランザクションＡ４を取得し、収集した更新トランザクションＡ４に基づいて、分離情報に含まれているパラメータＲの値を更新する。
【００３８】
参照装置３０の付加情報参照部３１は、トランザクションＩＤ及びパラメータ名を含む参照指示の入力に応じ、当該トランザクションＩＤに係る初期トランザクションのパラメータ情報のうち、当該パラメータ名に係るパラメータの値をブロックチェーン４０又は付加情報管理装置１０から取得し、当該値を出力する。例えば、図７の状態において、初期トランザクションＡ０に関するいずれかのパラメータについて参照指示が入力されると、付加情報参照部３１は、当該パラメータが固有情報（パラメータＰ又はＱ）であれば、初期トランザクションＡ０に記録されている値を取得し、当該パラメータが付加情報（パラメータＲ）であれば、付加情報管理装置１０の分離情報記憶部１３に記憶されている分離情報から値を取得する。なお、各機器２０や付加情報管理装置１０が付加情報参照部３１を有してもよい。
【００３９】
以下、図３の各部が実行する処理手順について説明する。以下においては、機器２０が、或るＩｏＴ機器であり、当該機器２０（以下、「対象機器２０」という。）のパラメータ情報を管理する場合を考える。ここで、パラメータ情報を構成するパラメータは、パラメータＡ、Ｂ、Ｃ、Ｄ及びＥの５種類であり、各種パラメータについての知見は無いとする（例えば、「パラメータＣは測定温度を表す」などといった知見は与えられていないとする。）。
【００４０】
図８は、対象機器２０の初期トランザクション発行部２１が実行する処理手順の一例を説明するためのフローチャートである。
【００４１】
ステップＳ１０１において、初期トランザクション発行部２１は、対象機器２０のパラメータ情報である。パラメータＡ、Ｂ、Ｃ、Ｄ及びＥの値を取得する。ここで、Ａは、“Ａｌｉｃｅ”、Ｂは“Ｓ４０３”、Ｃは“２５．７”、Ｄは“２３７．２”、Ｅは“１４”であったとする。
【００４２】
続いて、初期トランザクション発行部２１は、付加情報分離符号を生成する（Ｓ１０２）。例えば、付加情報分離符号として、対象機器２０の識別情報である“ＩｏＴ−Ｄｅｖｉｃｅ１”が生成される。但し、初期トランザクションのトランザクションＩＤが付加情報分離符号とされる場合には、ステップＳ１０２は実行されなくてもよい。
【００４３】
続いて、初期トランザクション発行部２１は、上記の各パラメータ及び付加情報分離符号を含む初期トランザクションＴ０をブロックチェーン４０上に発行する（Ｓ１０３）。
【００４４】
図９は、初期トランザクションＴ０の例を示す図である。図９には、初期トランザクションＴ０の「トランザクションＩＤ」が、“Ｔ０ｘｘ＃”であり、「パラメータ情報」が、｛Ａ：“Ａｌｉｃｅ”，Ｂ：“Ｓ４０３”，Ｃ：“２５．７”，Ｄ：“２３７．２”，Ｅ：“１４”｝であり、「付加情報分離符号」が“ＩｏＴ−Ｄｅｖｉｃｅ１”であり、「付加情報分離時のブロック番号」が、“１５０”であることが示されている。
【００４５】
ここで、「付加情報分離時のブロック番号」は、分離条件が満たされるタイミングを示す情報である。本実施の形態では、ブロックチェーン４０における最新の（末尾の）ブロック番号が、初期トランザクションＴ０の発行時又は初期トランザクションＴ０が格納されるブロックのブロック番号から５０以上大きくなるタイミングが分離条件を満たすタイミングであるとする。したがって、初期トランザクション発行部２１は、ステップＳ１０３において初期トランザクションＴ０を発行する際に、現時点において最新のブロック番号をブロックチェーン４０に問い合わせ、当該ブロック番号に対して５０＋αを加算した値を、初期トランザクションＴ０の「付加情報分離時のブロック番号」に記録する。ここで、αは、分離条件が、初期トランザクションＴ０の発行時のブロック番号を起点する場合には０であり、初期トランザクションＴ０が格納されるブロックのブロック番号を起点する場合には、Ｎ（Ｎは、０より大きい整数）である。Ｎは、初期トランザクションＴ０が発行されてから、初期トランザクションＴ０がブロックに格納されるまでにタイミングのずれがあるところ、当該ずれを見込んだ値である。本実施の形態では、α＝１０である例が採用されている。すなわち、初期トランザクションＴ０の発行時における最新のブロック番号が９０であり、そのため、「付加情報分離時のブロック番号」には、９０＋５０＋１０＝１５０が記録された例が示されている。
【００４６】
図１０は、更新トランザクション発行部２２が実行する処理手順の一例を説明するためのフローチャートである。
【００４７】
いずれかの機器２０において、初期トランザクションＴ０のパラメータ情報のうちのいずれかのパラメータの更新が生じると（Ｓ２０１でＹｅｓ）、当該機器２０の更新トランザクション発行部２２は、更新後の値を含む更新トランザクションをブロックチェーン４０上に発行する（Ｓ２０２）。
【００４８】
ここでは、まず、図１１に示されるような更新トランザクションＴ１が発行されたとする。
【００４９】
図１１は、更新トランザクションＴ１の例を示す図である。図１１には、更新トランザクションＴ１の「トランザクションＩＤ」が、“Ｔ１ｘｘ”であり、「書き込み先ＩＤ」が、“Ｔ０ｘｘ”であり、「更新情報」が、｛Ｃ：“２４．３”，Ｅ：“９”｝である例が示されている。すなわち、更新トランザクションＴ１は、初期トランザクションＴ０のパラメータＣを“２４．３”に更新し、パラメータＤを“９”に更新する更新トランザクションである。
【００５０】
なお、更新トランザクションＴ１は、ブロックチェーン４０上において、ブロック番号１１０のブロックに格納されたとする。
【００５１】
続いて、いずれかの機器２０の更新トランザクション発行部２２によって図１０の処理が実行されて図１２に示されるような更新トランザクションＴ２が発行されたとする。
【００５２】
図１２は、更新トランザクションＴ２の例を示す図である。図１２には、更新トランザクションＴ２の「トランザクションＩＤ」が、“Ｔ２ｘｘ”であり、「書き込み先ＩＤ」が、“Ｔ０ｘｘ”であり、「更新情報」が、｛Ｃ：  “２７．８”｝である例が示されている。すなわち、更新トランザクションＴ２は、初期トランザクションＴ０のパラメータＣを“２７．８”に更新する更新トランザクションである。
【００５３】
なお、更新トランザクションＴ２は、ブロックチェーン４０上において、ブロック番号１２０のブロックに格納されたとする。
【００５４】
図１３は、付加情報分離部１１が実行する処理手順の一例を説明するためのフローチャートである。
【００５５】
付加情報分離部１１は、分離条件を充足していない各初期トランザクションについて分離条件の充足を待機している（Ｓ３０１）。或る初期トランザクションの分離条件は、ブロックチェーン４０における最新のブロック番号が、当該初期トランザクションの「付加情報分離時のブロック番号」に到達することで満たされる。すなわち、初期トランザクションＴ０については、ブロックチェーン４０における最新のブロック番号が、“１５０”に到達ことで分離条件が満たされる。したがって、付加情報分離部１１は、ブロックチェーン４０に最新のブロック番号を定期的に照会し、当該ブロック番号を初期トランザクションＴ０の「付加情報分離時のブロック番号」と比較することで、初期トランザクションＴ０についての分離条件の充足の有無を判定する。但し、初期トランザクションＴ０の格納先のブロックの生成時期からの一定時間の経過や、初期トランザクションＴ０の発行時期からの一定時間の経過や、初期トランザクションＴ０の発行からの所定数の更新トランザクションの発行等、他の条件が分離条件とされてもよい。
【００５６】
初期トランザクションＴ０について分離条件が満たされると（すなわち、ブロックチェーン４０上の最新のブロック番号が１５０に到達すると）（Ｓ３０１でＹｅｓ）、付加情報分離部１１は、ブロックチェーン４０から「書き込み先ＩＤ」が“Ｔ０ｘｘ”である更新トランザクションを検索する（Ｓ３０２）。すなわち、初期トランザクションＴ０のトランザクションＩＤを「書き込み先ＩＤ」とする更新トランザクションが検索される。本実施の形態では、更新トランザクションＴ１（図１１）及びＴ２（図１２）が検索結果として取得される。
【００５７】
続いて、付加情報分離部１１は、取得した各更新トランザクションの「パラメータ情報」を参照して、付加情報であるパラメータを特定する（Ｓ３０３）。図１１及び図１２によれば、更新の対象とされているバラメータは、Ｃ及びＥである。したがって、初期トランザクションＴ０については、Ｃ及びＥが付加情報として特定される。換言すれば、Ａ、Ｂ及びＤは固有情報として特定される。
【００５８】
続いて、付加情報分離部１１は、付加情報として特定されたパラメータＣ及びＥのそれぞれについて、更新トランザクションＴ１及びＴ２に基づいて、最新の値（現在値）を特定する（Ｓ３０４）。或るパラメータの現在値は、当該パラメータの値を最後に更新した更新トランザクションを参照することで特定できる。パラメータＣについては、更新トランザクションＴ２（図１２）によって最後に更新され、パラメータＥについては、更新トランザクションＴ１（図１１）によって最後に更新されている。したがって、パラメータＣの現在値は、“２７．８”であり、パラメータＥの現在値は、“９”であることが特定される。
【００５９】
続いて、付加情報分離部１１は、パラメータＣ及びＥを付加情報として分離することを示す分離トランザクションＴ３をブロックチェーン４０上に発行する（Ｓ３０５）。
【００６０】
図１４は、分離トランザクションＴ３の例を示す図である。図１４には、分離トランザクションＴ３の「トランザクションＩＤ」が、“Ｔ３ｘｘ”であり、「書き込み先ＩＤ」が、“Ｔ０ｘｘ”であり、「付加情報分離符号」が、“ＩｏＴ−Ｄｅｖｉｃｅ１”であり、「付加情報パラメータ名」が、｛Ｃ，Ｅ｝である例が示されている。ここで、「書き込み先ＩＤ」は、分離トランザクションＴ３が対象とする初期トランザクションＴ０のトランザクションＩＤである。また、「付加情報分離符号」の値は、初期トランザクションＴ０（図９）の「付加情報分離符号」の値が採用される。但し、初期トランザクションＴ０のトランザクションＩＤが付加情報分離符号として利用される場合には、「書き込み先ＩＤ」によって付加情報分離符号を特定可能であるため、分離トランザクションＴ３に「付加情報分離符号」の項目は設けられなくてもよい。「付加情報パラメータ名」は、ステップＳ３０３において付加情報として特定された各パラメータのパラメータ名である。
【００６１】
続いて、付加情報分離部１１は、付加情報（パラメータＣ及びＥ）に関する分離情報を生成し、当該分離情報を分離情報記憶部１３に記憶する（Ｓ３０６）。
【００６２】
図１５は、分離情報記憶部１３の構成例を示す図である。図１５に示されるように、分離情報記憶部１３には、初期トランザクションごとに、当該初期トランザクションの付加情報分離符号と、当該初期トランザクションのパラメータ情報のうち付加情報として判定されたパラメータのパラメータ名及び値とを対応付ける分離情報が記憶されている。
【００６３】
ここでは、初期トランザクションＴ０に着目しているため、図１５における１行目のレコード（分離情報）が分離情報記憶部１３に記憶される。すなわち、当該分離情報の「付加情報分離符号」は、初期トランザクションＴ０の「付加情報分離符号」であり、当該分離情報の「付加情報」は、パラメータＣの値が“２７．８”であり、パラメータＥの値が“９”であることを示す。
【００６４】
図１６は、付加情報更新部１２が実行する処理手順の一例を説明するためのフローチャートである。
【００６５】
付加情報更新部１２は、分離トランザクションＴ３の発行後から所定条件（以下「更新条件」という。）が満たされるたびに（Ｓ４０１でＹｅｓ）、前回の更新条件の充足時から現時点までの期間において初期トランザクションＴ０に対して発行された更新トランザクション（すなわち、「書き込み先ＩＤ」が初期トランザクションＴ０のトランザクションＩＤである更新トランザクション）をブロックチェーン４０から検索する（Ｓ４０２）。該当する更新トランザクションが検索されない場合（Ｓ４０３でＮｏ）、ステップＳ４０１に戻る。該当する更新トランザクションが検索された場合（Ｓ４０３でＹｅｓ）、ステップＳ４０４以降が実行される。
【００６６】
本実施の形態では、ブロックチェーン４０上に３つのブロックが新たに生成されることが更新条件であるとする。ここでは、分離トランザクションＴ３の発行のタイミングにおける最新のブロック番号が１５０であるため、ブロックチェーン４０上の最新のブロック番号が、１５３、１５６、１５９、１６２、・・・のタイミングでステップＳ４０２及びＳ４０３が実行される。
【００６７】
ここでは、分離トランザクションＴ３の発行後に、図１７に示される更新トランザクションＴ４がいずれかの機器２０の更新トランザクション発行部２２によって発行されたとする。
【００６８】
図１７は、更新トランザクションＴ４の例を示す図である。図１７には、更新トランザクションＴ４の「トランザクションＩＤ」が、“Ｔ４ｘｘ”であり、「書き込み先ＩＤ」が、“Ｔ０ｘｘ”であり、「更新情報」が、｛Ｃ：“２８．５”｝である例が示されている。すなわち、更新トランザクションＴ４は、初期トランザクションＴ０のパラメータＣを｛Ｃ：  “２８．５”｝に更新するトランザクションである。
【００６９】
なお、更新トランザクションＴ４は、ブロック番号が１６０であるブロックに格納されたとする。
【００７０】
この場合、付加情報更新部１２は、ブロックチェーン４０上の最新のブロック番号が１６２のタイミングにおいて、更新トランザクションＴ４を検索することができる。
【００７１】
そこで、付加情報更新部１２は、更新トランザクションＴ４に基づいて、付加情報の各パラメータの最新の値を特定する（Ｓ４０４）。具体的には、付加情報更新部１２は、パラメータＣを“２８．５”に更新すべきことを認識する。
【００７２】
続いて、付加情報更新部１２は、当該付加情報に対応する付加情報分離符号を取得する（Ｓ４０５）。具体的には、付加情報更新部１２は、初期トランザクションＴ０の「付加情報分離符号」の値を取得する。但し、付加情報分離符号が、初期トランザクションＴ０のトランザクションＩＤである場合、初期トランザクションＴ０の「トランザクションＩＤ」の値が取得されればよい。
【００７３】
続いて、付加情報更新部１２は、分離情報記憶部１３に記憶されている分離情報の中で、ステップＳ４０５において取得した付加情報分離符号を含む分離情報の「付加情報」を、ステップＳ４０４において特定した最新の値によって更新する（Ｓ４０６）。
【００７４】
図１８は、分離情報記憶部１３の更新例を示す図である。図１８では、「付加情報分離符号」が“ＩｏＴ−Ｄｅｖｉｃｅ１”であるレコード（分離情報）の「付加情報」において、パラメータＣの値が“２８．５”に更新された例が示されている。
【００７５】
図１９は、付加情報参照部３１が実行する処理手順の一例を説明するためのフローチャートである。例えば、付加情報参照部３１は、参照装置３０のユーザによる参照指示に応じて処理を開始する。
【００７６】
参照対象とするパラメータに係る初期トランザクションのトランザクションＩＤと、当該パラメータ（以下、「対象パラメータ」という。）のパラメータ名とが指定された参照指示がユーザによって入力されると（Ｓ５０１でＹｅｓ）、付加情報参照部３１は、当該トランザクションＩＤを含む初期トランザクションをブロックチェーン４０から検索する（Ｓ５０２）。ここでは、トランザクションＩＤとして“Ｔ０ｘｘ”が指定され、対象パラメータのパラメータ名として、“Ａ”〜“Ｅ”のいずれかが指定されたとする。したがって、初期トランザクションＴ０（図９）が、検索される。
【００７７】
続いて、付加情報参照部３１は、検索された初期トランザクションＴ０から付加情報分離符号（“ＩｏＴ−Ｄｅｖｉｃｅ１”）を取得する（Ｓ５０３）。続いて、付加情報参照部３１は、当該付加情報分離符号（“ＩｏＴ−Ｄｅｖｉｃｅ１”）を含む分離トランザクションをブロックチェーン４０から検索して、分離トランザクションＴ３（図１４）を取得する（Ｓ５０４）。但し、トランザクションＩＤが付加情報分離符号として利用される場合、「書き込み先ＩＤ」が初期トランザクションＴ０のトランザクションＩＤに一致する離トランザクションが検索される。
【００７８】
続いて、付加情報参照部３１は、対象パラメータのパラメータ名が、分離トランザクションＴ３（図１４）の「付加情報」に含まれているか否かを判定する（Ｓ５０５）。対象パラメータのパラメータ名が、当該「付加情報」に含まれている場合（Ｓ５０５でＹｅｓ）、付加情報参照部３１は、当該付加情報分離符号（“ＩｏＴ−Ｄｅｖｉｃｅ１”）に関連付けられて分離情報記憶部１３（図１８）に記憶されている対象パラメータの値を、分離情報記憶部１３から取得する（Ｓ５０６）。例えば、対象パラメータのパラメータ名が“Ｃ”又は“Ｅ”である場合、対象パラメータの値は、分離情報記憶部１３から取得される。
【００７９】
一方、対象パラメータのパラメータ名が、分離トランザクションＴ３（図１４）の「付加情報」に含まれていない場合（すなわち、対象パラメータが固有情報である場合）（Ｓ５０５でＮｏ）、付加情報参照部３１は、初期トランザクションＴ０の「パラメータ情報」から対象パラメータの値を取得する（Ｓ５０７）。例えば、対象パラメータのパラメータ名が“Ａ”、“Ｂ”又は“Ｄ”である場合、対象パラメータの値は、初期トランザクションＴ０の「パラメータ情報」から取得される。
【００８０】
ステップＳ５０６又はＳ５０７に続いて、付加情報参照部３１は、対象パラメータの値を出力する（Ｓ５０８）。例えば、参照装置３０が表示装置を有する場合、当該表示装置に当該値が表示されてもよい。
【００８１】
上述したように、本実施の形態によれば、或る初期トランザクションに含まれるパラメータ群のうち、付加情報に該当するパラメータの最新の値は、ブロックチェーンの外部の記憶装置に記憶される。その結果、当該初期トランザクションに対応する更新トランザクションを検索せずとも、当該パラメータの最新の値を参照することができる。したがって、更新される情報の参照時間を短縮可能とすることができる。
【００８２】
また、本実施の形態では、初期トランザクションに含まれる各パラメータについて、固有情報であるのか付加情報であるのかが自動的に判別される。したがって、当該各パラメータのうちのいずれが付加情報であるか事前の知見のない状況下においても、固有情報をブロックチェーン４０内のみで管理することができ、付加情報を外部の記憶装置を用いて管理することができる。
【００８３】
更に、もし付加情報に改竄の疑いの有る場合には、改竄事実の検証を後から行うことが可能である。分離情報記憶部１３に記憶される情報はブロックチェーン４０のトランザクションに含まれる情報の抜粋であるはずであり、トランザクションの情報は改竄不可能である。したがって、付加情報の改竄事実の検証の際は、分離情報記憶部１３に記憶された付加情報がブロックチェーン４０から抜粋されたものであるかどうかを確認すればよい。
【００８４】
なお、本実施の形態において、付加情報管理装置１０は、トランザクション管理装置の一例である。初期トランザクションは、第１のトランザクションの一例である。更新トランザクションは、第２のトランザクションの一例である。分離トランザクションは、第３のトランザクションの一例である。付加情報分離部１１は、取得部及び発行部の一例である。補助記憶装置１０２は、ブロックチェーン４０の外部の記憶部の一例である。付加情報更新部１２は、更新部の一例である。分離条件は、第１の条件の一例である。更新条件は、第２の条件の一例である。
【００８５】
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００８６】
以上の説明に関し、更に以下の項を開示する。
（付記１）
複数のパラメータの値を含む第１のトランザクションがブロックチェーンに発行されてから第１の条件が満たされるまでに発行された、前記複数のパラメータのいずれかの値を更新する第２のトランザクションを前記ブロックチェーンから取得する取得部と、
前記取得部が取得したいずれかの前記第２のトランザクションによって値が更新されたパラメータの値を前記ブロックチェーンの外部の記憶部に記憶すると共に、前記記憶部に記憶された当該値と前記第１のトランザクションとを関連付ける情報を含む第３のトランザクションを前記ブロックチェーンに発行する発行部と、
を有することを特徴とするトランザクション管理装置。
（付記２）
前記情報は、前記第１のトランザクションに含まれている識別情報であり、
前記発行部は、前記取得部が取得したいずれかの前記第２のトランザクションによって値が更新されたパラメータの値を、前記識別情報に関連付けて前記記憶部に記憶し、前記識別情報を含む前記第３のトランザクションを発行する、
ことを特徴とする付記１記載のトランザクション管理装置。
（付記３）
前記発行部は、前記取得部が取得したいずれかの前記第２のトランザクションによって値が更新されたパラメータの名前を前記第３のトランザクションに含める、
ことを特徴とする付記１又は２記載のトランザクション管理装置。
（付記４）
前記第３のトランザクションが発行されてから第２の条件が満たされるたびに、前記第１のトランザクションに対して新たに発行された前記第２のトランザクションを前記ブロックチェーンから検索し、検索された前記第２のトランザクションに基づいて、前記記憶部に記憶された値を更新する更新部、
を有することを特徴とする付記１乃至３いずれか一項記載のトランザクション管理装置。
（付記５）
複数のパラメータの値を含む第１のトランザクションがブロックチェーンに発行されてから第１の条件が満たされるまでに発行された、前記複数のパラメータのいずれかの値を更新する第２のトランザクションを前記ブロックチェーンから取得する処理と、
前記取得する処理が取得したいずれかの前記第２のトランザクションによって値が更新されたパラメータの値を前記ブロックチェーンの外部の記憶部に記憶すると共に、前記記憶部に記憶された当該値と前記第１のトランザクションとを関連付ける情報を含む第３のトランザクションを前記ブロックチェーンに発行する処理と、
をコンピュータが実行することを特徴とするトランザクション管理方法。
（付記６）
前記情報は、前記第１のトランザクションに含まれている識別情報であり、
前記発行する処理は、前記取得する処理が取得したいずれかの前記第２のトランザクションによって値が更新されたパラメータの値を、前記識別情報に関連付けて前記記憶部に記憶し、前記識別情報を含む前記第３のトランザクションを発行する、
ことを特徴とする付記５記載のトランザクション管理方法。
（付記７）
前記発行する処理は、前記取得する処理が取得したいずれかの前記第２のトランザクションによって値が更新されたパラメータの名前を前記第３のトランザクションに含める、
ことを特徴とする付記５又は６記載のトランザクション管理方法。
（付記８）
前記第３のトランザクションが発行されてから第２の条件が満たされるたびに、前記第１のトランザクションに対して新たに発行された前記第２のトランザクションを前記ブロックチェーンから検索し、検索された前記第２のトランザクションに基づいて、前記記憶部に記憶された値を更新する処理、
を前記コンピュータが実行することを特徴とする付記５乃至７いずれか一項記載のトランザクション管理方法。
（付記９）
複数のパラメータの値を含む第１のトランザクションがブロックチェーンに発行されてから第１の条件が満たされるまでに発行された、前記複数のパラメータのいずれかの値を更新する第２のトランザクションを前記ブロックチェーンから取得する処理と、
前記取得する処理が取得したいずれかの前記第２のトランザクションによって値が更新されたパラメータの値を前記ブロックチェーンの外部の記憶部に記憶すると共に、前記記憶部に記憶された当該値と前記第１のトランザクションとを関連付ける情報を含む第３のトランザクションを前記ブロックチェーンに発行する処理と、
をコンピュータに実行させることを特徴とするプログラム。
（付記１０）
前記情報は、前記第１のトランザクションに含まれている識別情報であり、
前記発行する処理は、前記取得する処理が取得したいずれかの前記第２のトランザクションによって値が更新されたパラメータの値を、前記識別情報に関連付けて前記記憶部に記憶し、前記識別情報を含む前記第３のトランザクションを発行する、
ことを特徴とする付記９記載のプログラム。
（付記１１）
前記発行する処理は、前記取得する処理が取得したいずれかの前記第２のトランザクションによって値が更新されたパラメータの名前を前記第３のトランザクションに含める、
ことを特徴とする付記９又は１０記載のプログラム。
（付記１２）
前記第３のトランザクションが発行されてから第２の条件が満たされるたびに、前記第１のトランザクションに対して新たに発行された前記第２のトランザクションを前記ブロックチェーンから検索し、検索された前記第２のトランザクションに基づいて、前記記憶部に記憶された値を更新する処理、
を前記コンピュータに実行させることを特徴とする付記９乃至１１いずれか一項記載のプログラム。
【符号の説明】
【００８７】
１０          付加情報管理装置
１１          付加情報分離部
１２          付加情報更新部
１３          分離情報記憶部
２０          機器
２１          初期トランザクション発行部
２２          更新トランザクション発行部
３０          参照装置
３１          付加情報参照部
４０          ブロックチェーン
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
Ｂ            バス
【図１】
2019215627.tif 000003
【図２】
2019215627.tif 000004
【図３】
2019215627.tif 000005
【図４】
2019215627.tif 000006
【図５】
2019215627.tif 000007
【図６】
2019215627.tif 000008
【図７】
2019215627.tif 000009
【図８】
2019215627.tif 000010
【図９】
2019215627.tif 000011
【図１０】
2019215627.tif 000012
【図１１】
2019215627.tif 000013
【図１２】
2019215627.tif 000014
【図１３】
2019215627.tif 000015
【図１４】
2019215627.tif 000016
【図１５】
2019215627.tif 000017
【図１６】
2019215627.tif 000018
【図１７】
2019215627.tif 000019
【図１８】
2019215627.tif 000020
【図１９】
2019215627.tif 000021