(57)【要約】      （修正有）【課題】ブロックチェーンに記録された取引の情報をトレース可能にするプログラム、情報処理システム及び情報処理方法を提供する。【解決手段】プログラムは、端末からの要求に応じてブロックチェーンを用いた取引を記録するコンピュータに、一連の複数の取引のうちの一の取引を特定するキーと、当該キーに対応する取引識別情報とを、ブロックチェーンを構成するブロックの外に登録し、複数の取引の内容及び順序を示すトレース情報又は当該トレース情報のハッシュ値と、キーと、直前のトランザクションを示すキー及び／又は直前のトランザクションを示す取引識別情報とを、前記ブロック内に登録する処理を実行する。【選択図】図１２
2020035214.tif 000002
【特許請求の範囲】
【請求項１】
端末からの要求に応じてブロックチェーンを用いた取引を記録するコンピュータに、
一連の複数の取引のうちの一の取引を特定するキーと、当該キーに対応する取引識別情報とを、前記ブロックチェーンを構成するブロックの外に登録し、
前記複数の取引の内容及び順序を示すトレース情報又は当該トレース情報のハッシュ値と、前記キーと、直前のトランザクションを示すキー及び／又は直前のトランザクションを示す取引識別情報とを、前記ブロック内に登録する、
処理を実行させる、プログラム。
【請求項２】
前記トレース情報を登録する際に、前記ブロック外のデータ集合に記憶されている最新のキーと、前記ブロック内に記憶されている前記複数の取引に含まれる最新のキーとを比較して、異なる場合に前記ブロック外のデータ集合が改ざんされていると判定する、
処理を前記コンピュータに実行させる、請求項１に記載のプログラム。
【請求項３】
前記ブロック外において、前記複数の取引の内容を登録しない、
処理を前記コンピュータに実行させる、請求項１又は２に記載のプログラム。
【請求項４】
情報処理装置と端末とを備え、前記端末からの要求に応じてブロックチェーンを用いた取引を記録する情報処理システムであって、
前記情報処理装置は、
一連の複数の取引のうちの一の取引を特定するキーと、当該キーに対応する取引識別情報とを、前記ブロックチェーンを構成するブロックの外に登録する第１登録処理部と、
前記複数の取引の内容及び順序を示すトレース情報又は当該トレース情報のハッシュ値と、前記キーと、直前のトランザクションを示すキー及び／又は直前のトランザクションを示す取引識別情報とを、前記ブロック内に登録する第２登録処理部と、
を備える、情報処理システム。
【請求項５】
端末からの要求に応じてブロックチェーンを用いた取引を記録する情報処理方法であって、
一連の複数の取引のうちの一の取引を特定するキーと、当該キーに対応する取引識別情報とを、前記ブロックチェーンを構成するブロックの外に登録し、
前記複数の取引の内容及び順序を示すトレース情報又は当該トレース情報のハッシュ値と、前記キーと、直前のトランザクションを示すキー及び／又は直前のトランザクションを示す取引識別情報とを、前記ブロック内に登録する、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム，情報処理システム及び情報処理方法に関する。
【背景技術】
【０００２】
ブロックチェーンでは、取引の情報が最初から最後まで連続して記録されており、記録されたデータの改ざんが発生しづらい。このようなブロックチェーンの特徴を活かして、製品品質に関する情報をトレース可能にすることが研究されている。
【０００３】
ブロックチェーン上の取引をトレースすることができれば、例えば、生産者は提供した製品の品質に問題が無いことを証明でき、消費者は購入した製品の原材料・部品等が安全なものかを知ることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−５５２０３号公報
【特許文献２】特許第６２４７７３７号公報
【特許文献３】特開２０１７−２２４０１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
オープンソースのブロックチェーンを提供するHyperledger Fabricでは、トレーサビリティ機能が提供されていない。そこで、取引をトレースするためには、チェーンコード（別言すれば、「スマートコントラクト」）によるトレーサビリティ機能の実装が必要である。
【０００６】
しかしながら、ブロックチェーン上の各情報を関連付けた再帰的なトレースを実現することは、容易でない。
【０００７】
１つの側面では、ブロックチェーンに記録された取引の情報をトレース可能にすることを目的とする。
【課題を解決するための手段】
【０００８】
プログラムは、端末からの要求に応じてブロックチェーンを用いた取引を記録するコンピュータに、一連の複数の取引のうちの一の取引を特定するキーと、当該キーに対応する取引識別情報とを、前記ブロックチェーンを構成するブロックの外に登録し、前記複数の取引の内容及び順序を示すトレース情報又は当該トレース情報のハッシュ値と、前記キーと、直前のトランザクションを示すキー及び／又は直前のトランザクションを示す取引識別情報とを、前記ブロック内に登録する、処理を実行させる。
【発明の効果】
【０００９】
１つの側面では、ブロックチェーンに記録された取引の情報をトレースすることができる。
【図面の簡単な説明】
【００１０】
【図１】関連例における取引情報の登録処理を説明するブロック図である。
【図２】関連例における取引情報の登録処理を説明するブロック図である。
【図３】関連例における取引情報の一例を示すテーブルである。
【図４】図３に示した取引情報の登録処理の詳細例を説明するブロック図である。
【図５】図３に示した取引情報の登録処理の詳細例を説明するブロック図である。
【図６】図３に示した取引情報の登録処理の詳細例を説明するブロック図である。
【図７】実施形態の一例におけるブロックチェーンシステムを模式的に示すブロック図である。
【図８】図７に示したブロックチェーンシステムにおけるトレース処理の概要を説明するブロック図である。
【図９】図８に示したピアコマンド及びClient SDKを説明する図である。
【図１０】図７及び図８に示したピアのハードウェア構成を模式的に示すブロック図である。
【図１１】図１０に示したピアの機能構成を模式的に示すブロック図である。
【図１２】図７に示したブロックチェーンシステムにおける取引情報の登録処理を説明する図である。
【図１３】図７に示したブロックチェーンシステムにおける取引情報の登録処理を説明する図である。
【図１４】図７に示したブロックチェーンシステムにおける取引情報の登録処理の詳細例を示すテーブルである。
【図１５】図７に示したブロックチェーンシステムにおける取引情報の登録処理の詳細例を説明するブロック図である。
【図１６】図７に示したブロックチェーンシステムにおける取引情報の登録処理の詳細例を説明するブロック図である。
【図１７】図７に示したブロックチェーンシステムにおける取引情報の登録処理の詳細例を説明するブロック図である。
【図１８】図７に示したブロックチェーンシステムにおける取引情報の登録処理の詳細例を説明するブロック図である。
【図１９】図７に示したブロックチェーンシステムにおける取引情報の登録処理の詳細例を説明するブロック図である。
【図２０】図７に示したブロックチェーンシステムにおける取引情報の登録処理を説明するフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照して一実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。
【００１２】
また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００１３】
以下、図中において、同一の各符号は同様の部分を示しているので、その説明は省略する。
【００１４】
〔Ａ〕関連例
図１及び図２は、関連例における取引情報の登録処理を説明するブロック図である。
【００１５】
図１に示すように、取引＃１はＡ社からＢ社への取引であり（符号Ａ１参照）、取引＃２はＢ社からＣ社への取引であり（符号Ａ２参照）、取引＃３はＣ社からＤ社への取引である（符号Ａ３参照）。
【００１６】
ブロックチェーン６２において、取引情報（「トランザクション」と称してもよい。）は、複数個がまとめられて各ブロック６２１に登録される。図１に示す例では、各ブロック６２１は、３つのトランザクションが登録されている。ブロックチェーン６２では、各ブロック６２１が数珠繋ぎにされて（別言すれば、「一列に繋げられて」）管理される。
【００１７】
符号Ａ１及びＡ２で示したように、Ｔｘ１で示されるＡ社からＢ社へのトランザクションの後には、Ｔｘ４で示されるＢ社からＣ社へのトランザクションが発生する。また、符号Ａ２及びＡ３で示したように、Ｔｘ４で示されるＢ社からＣ社へのトランザクションの後には、Ｔｘ７で示されるＣ社からＤ社へのトランザクションが発生する。
【００１８】
しかしながら、ブロックチェーン６２の各ブロック６２１には符号Ａ１〜Ａ３に示したトランザクション以外の複数のトランザクションが記録されているため、隣り合うブロック６２１間においてもトランザクション同士の連続性が不明である（符号Ａ４参照）。
【００１９】
そこで、トランザクションの順序については、チェーンコード６１によって、ワールドステート６３と呼ばれるデータベースに格納される。図１に示す例では、ワールドステート６３において、Ａ社からＢ社への取引＃１，Ｂ社からＣ社への取引＃２，Ｃ社からＤ社への取引＃３の順に、トランザクションの順序を示す情報が記録されている（符号Ａ５参照）。
【００２０】
図２に示すように、ブロックチェーン６２とワールドステート６３とで、同一のトランザクションが二重に管理される。例えば、ブロックチェーン６２においてはＡ社からＢ社への取引内容を示すＴｘ１が管理されると共に、ワールドステート６３においてはＡ社からＢ社への取引内容を示す取引＃１が管理される（符号Ｂ１参照）。これにより、システムにおいて記録されるデータ容量が増加する。
【００２１】
また、ワールドステート６３において記録されている取引内容が書き換えられるおそれがある。図２に示す例では、Ｃ社からＤ社への取引＃３が、Ｃ社からＥ社への取引＃４に変更（別言すれば、「改ざん」）されている（符号Ｂ２参照）。
【００２２】
図３は、関連例における取引情報の一例を示すテーブルである。
【００２３】
図３に示す登録情報には、イベント，UserID，UserName，Operation，SrcResourceID，ResourceID，ResourceGroup，ResourceName，Owner，Hash，CreatedDate，RegisterdDate及びキー情報の各値が含まれる。
【００２４】
図３に例示するテーブルでは、取引＃１〜＃３にそれぞれ対応する「データ登録」，「データ購入」及び「学習済モデル作成」について、各値が登録されている。
【００２５】
図４〜図６は、図３に示した取引情報の登録処理の詳細例を説明するブロック図である。
【００２６】
図４において、取引＃１では教師データ登録のイベントが発生する（符号Ｃ１参照）。このイベントの登録情報において、ユーザＩＤがUS0001で特定されるKenによって実行され、教師データを示すリソースＩＤはdata0001である。また、登録情報には、登録されるデータの種別は教師データであり、元データは無い。更に、登録情報には、教師データのハッシュ値や作成日時が含まれてよい。
【００２７】
図４において、ブロック＃１には、直前ブロックのハッシュ値と共に、トランザクション＃１〜＃３が登録される。図示する例では、トランザクション＃３において、取引＃１が登録される（符号Ｃ２参照）。
【００２８】
トランザクション＃３には、ユーザＩＤがUS0001で特定されるKenによって実行され、教師データを示すリソースＩＤがdata0001である教師データ登録のイベントが登録される（符号Ｃ３参照）。また、登録情報には、登録されるデータの種別は教師データであり、元データは無い。更に、登録情報には、教師データのハッシュ値や作成日時に加えて、ブロック＃１へのトランザクション＃３の登録日時が含まれてよい。
【００２９】
また、トランザクションには、直前の取引を示す「前のキー」と当該取引を示す「キー」が登録される。図４に示す例において、前のキーはＮＵＬＬであり、キーはUS0001+data0001である（符号Ｃ４参照）。なお、「前のキー」は、例えば、「前のトランザクションＩＤ」や「前のキー及び前のトランザクションＩＤ」であってもよい。
【００３０】
ワールドステート６３では、トランザクションＩＤ管理及びトレーサビリティ管理が行なわれる。
【００３１】
トランザクションＩＤ管理では、キーとトランザクションＩＤとの対応付けが行なわれる。図４に示す例では、キーUS0001+data0001に対して、トランザクションＩＤとしてＴｘ３が登録されている（符号Ｃ５参照）。
【００３２】
トレーサビリティ管理では、トランザクションＩＤに対する子トランザクション及び親トランザクションの対応付けが行なわれる。ここで、子トランザクションは当該トランザクションＩＤで示される取引の直後の取引を示し、親トランザクションは当該トランザクションＩＤで示される取引の直前の取引を示す。図４に示す例では、トランザクションＩＤ  Ｔｘ３の子トランザクション及び親トランザクションは、いずれも存在しない（符号Ｃ６参照）。
【００３３】
図５において、取引＃２では教師データ購入のイベントが発生する（符号Ｄ１参照）。このイベントの登録情報において、ユーザＩＤがUS0002で特定されるMikeによって実行され、教師データを示すリソースＩＤはdata0001である。また、登録情報には、購入されるデータの種別は教師データであり、元データ（別言すれば、「購入対象」）はユーザＩＤがUS0001で特定されるKenが登録した、リソースＩＤがdata0001で特定される教師データである。更に、登録情報には、教師データのハッシュ値が含まれてよい。
【００３４】
図５において、図４に示したブロック＃１に加えて、ブロック＃２には、直前ブロックのハッシュ値と共に、トランザクション＃４〜＃７が登録される。図示する例では、トランザクション＃５において、取引＃２が登録される（符号Ｄ２参照）。
【００３５】
トランザクション＃５には、ユーザＩＤがUS0002で特定されるMikeによって実行され、教師データを示すリソースＩＤがdata0001である教師データ購入のイベントが登録される（符号Ｄ３参照）。また、登録情報において購入されるデータの種別は教師データであり、元データはユーザＩＤがUS0001で特定されるKenが登録した、リソースＩＤがdata0001で特定される教師データである。更に、登録情報には、教師データのハッシュ値が含まれてよい。
【００３６】
また、トランザクションには、直前の取引を示す「前のキー」と当該取引を示す「キー」が登録される。図５に示す例において、前のキーはUS0001+data0001であり、キーはUS0002+data0001である（符号Ｄ４参照）。なお、「前のキー」は、例えば、「前のトランザクションＩＤ」や「前のキー及び前のトランザクションＩＤ」であってもよい。
【００３７】
トランザクションＩＤ管理では、キーとトランザクションＩＤとの対応付けが行なわれる。図５に示す例では、キーUS0001+data0001に対してトランザクションＩＤとしてＴｘ３が登録されていると共に、キーUS0002+data0001に対してトランザクションＩＤとしてＴｘ５が登録されている（符号Ｄ５参照）。
【００３８】
トレーサビリティ管理では、トランザクションＩＤに対する子トランザクション及び親トランザクションの対応付けが行なわれる。図５に示す例では、トランザクションＩＤ  Ｔｘ３の子トランザクションはＴｘ５であり、親トランザクションは存在しない。また、トランザクションＩＤ  Ｔｘ５の子トランザクションＩＤは存在せず、親トランザクションはＴｘ３である（符号Ｄ６参照）。
【００３９】
図６において、取引＃３では学習済モデル作成のイベントが発生する（符号Ｅ１参照）。このイベントの登録情報において、ユーザＩＤがUS0002で特定されるMikeによって実行され、学習済モデルを示すリソースＩＤはmdl0001である。また、登録情報には、作成されるデータの種別は学習済モデルであり、元データはユーザＩＤがUS0002で特定されるMikeが購入した、リソースＩＤがdata0001で特定される教師データである。更に、登録情報には、学習済モデルのハッシュ値が含まれてよい。
【００４０】
図６において、図５に示したブロック＃１及び＃２に加えて、ブロック＃３には、直前ブロックのハッシュ値と共に、トランザクション＃８〜＃１０が登録される。図示する例では、トランザクション＃９において、取引＃３が登録される（符号Ｅ２参照）。
【００４１】
トランザクション＃９には、ユーザＩＤがUS0002で特定されるMikeによって実行され、学習済モデルを示すリソースＩＤがmdl0001である学習済モデル作成のイベントが登録される（符号Ｅ３参照）。また、登録情報において購入されるデータの種別は学習済モデルであり、元データはユーザＩＤがUS0002で特定されるMikeが購入した、リソースＩＤがdata0001で特定される教師データである。更に、登録情報には、学習済モデルのハッシュ値が含まれてよい。
【００４２】
また、トランザクションには、直前の取引を示す「前のキー」と当該取引を示す「キー」が登録される。図６に示す例において、前のキーはUS0002+data0001であり、キーはUS0002+mdl0001である（符号Ｅ４参照）。なお、「前のキー」は、例えば、「前のトランザクションＩＤ」や「前のキー及び前のトランザクションＩＤ」であってもよい。
【００４３】
トランザクションＩＤ管理では、キーとトランザクションＩＤとの対応付けが行なわれる。図６に示す例では、キーUS0001+data0001に対してトランザクションＩＤとしてＴｘ３が登録され、キーUS0002+data0001に対してトランザクションＩＤとしてＴｘ５が登録されていると共に、キーUS0002+mdl0001に対してトランザクションＩＤとしてＴｘ９が登録されている（符号Ｅ５参照）。
【００４４】
トレーサビリティ管理では、トランザクションＩＤに対する子トランザクション及び親トランザクションの対応付けが行なわれる。図６に示す例では、トランザクションＩＤ  Ｔｘ３の子トランザクションはＴｘ５であり、親トランザクションは存在しない。また、トランザクションＩＤ  Ｔｘ５の子トランザクションＩＤはＴｘ９であり、親トランザクションはＴｘ３である。更に、トランザクションＩＤ  Ｔｘ９の子トランザクションは存在せず、親トランザクションはＴｘ５である（符号Ｅ６参照）。
【００４５】
ここで、ワールドステート２３のトレーサビリティ管理においてデータの改ざんが生じると、取引のトレースが正しくできず、データの正当性を証明できないおそれがある。
【００４６】
〔Ｂ〕実施形態の一例
〔Ｂ−１〕システム構成例
図７は、実施形態の一例におけるブロックチェーンシステム１００を模式的に示すブロック図である。
【００４７】
ブロックチェーンシステム１００は、情報処理システムの一例であり、ブロックチェーンプラットフォーム１０１及びクライアントアプリケーション１０２を備える。ブロックチェーンプラットフォーム１０１とクライアントアプリケーション１０２とは、ネットワークを介して通信可能に接続される。
【００４８】
クライアントアプリケーション１０２は、例えばウェブブラウザ５を展開する。ユーザは、ウェブブラウザ５を介して、取引内容に関する情報を入力してよい。なお、クライアントアプリケーション１０２は、curlコマンドを使用してサーバアプリケーション４に対して情報を入力してもよい。
【００４９】
ブロックチェーンプラットフォーム１０１は、Hyperledger Fabric１０及びサーバアプリケーション４を展開する。
【００５０】
サーバアプリケーション４は、図８を用いて後述するクライアント４０によって実行される。
【００５１】
Hyperledger Fabric１０は、ピア１，オーダリングサービス２及びCertificate Authority（ＣＡ）３を展開する。
【００５２】
オーダリングサービス２は、トランザクションの順序付けを行ない、トランザクションの一貫性を確保する。
【００５３】
ＣＡ３は、メンバーシップサービスプロバイダとして、証明書の発行や管理のためのＩＤを発行する。
【００５４】
ピア１は、情報処理装置の一例であり、トランザクションの承認及びコミットを実行する。また、ピア１は、トランザクションを検証し、後述する台帳１０１２を同期させる。
【００５５】
図７に示すように、ピア１は、チェーンコード２１（別言すれば、「スマートコントラクト」）及び台帳１０１２を備える。
【００５６】
チェーンコード２１は、ピア１にインストールされるアプリケーションであり、取引を自動化させるための機能を有する。
【００５７】
台帳１０１２は、ブロックチェーン２２（「取引記録」と称してもよい。）及びワールドステート２３として機能するデータベースである。ブロックチェーン２２は、取引内容を記録する。ワールドステート２３は、取引をトレース可能な状態で記憶する。
【００５８】
図８は、図７に示したブロックチェーンシステム１００におけるトレース処理の概要を説明するブロック図である。
【００５９】
クライアント４０は、ピアコマンド４１を用いて、Hyperledger Fabric１０のピア１に対して、関数呼び出しを実行する。ピアコマンド４１については、図９の（Ａ）を用いて後述する。また、クライアント４０においては、Client Software Development Kit（Client SDK）４２が用いられる。Client SDK４２については、図９の（Ｂ）を用いて後述する。
【００６０】
ピア１のチェーンコード２１において、トレースデータを記録する関数１１１１は、クライアント４０からのピアコマンド４１を用いた関数呼び出しにより、トレーサビリティ機能ライブラリ１１１３に対して登録関数呼び出しを行なう。また。トレース結果を参照する関数１１１２は、クライアント４０からの関数呼び出しにより、トレーサビリティ機能ライブラリ１１１３に対して参照関数呼び出しを行なう。なお、チェーンコード２１に直接に書き込まれた関数に対して、呼び出しが実行されてもよい。
【００６１】
図９の（Ａ）はピアコマンド４１を説明する図であり、図９の（Ｂ）はClient SDK４２を説明する図である。
【００６２】
ピアコマンド４１は、管理者がピア１に対して特定なタスクを行なう際に使うツールである。ピアコマンド４１は、例えば、図９（Ａ）に示す記述により、チェーンコード２１を実行する。
【００６３】
図９の（Ｂ）に示すように、Client SDK４２は、クライアント４０側におけるHyperleadger Fabric１０に対応するアプリケーション（Ａｐｐ）４３を開発するためのプログラムやツール等の一式である。
【００６４】
図１０は、図７及び図８に示したピア１のハードウェア構成を模式的に示すブロック図である。
【００６５】
ピア１は、Central Processing Unit（ＣＰＵ）１１，メモリ１２，表示制御部１３，記憶装置１４，入力Interface（Ｉ／Ｆ）１５，読み書き処理部１６及び通信Ｉ／Ｆ１７を備える。
【００６６】
メモリ１２は、記憶部の一例であり、例示的に、Read Only Memory（ＲＯＭ）及びRandom Access Memory（ＲＡＭ）を含む記憶装置である。メモリ１２のＲＯＭには、Basic Input/Output System（ＢＩＯＳ）等のプログラムが書き込まれてよい。メモリ１２のソフトウェアプログラムは、ＣＰＵ１１に適宜に読み込まれて実行されてよい。また、メモリ１２のＲＡＭは、一次記録メモリあるいはワーキングメモリとして利用されてよい。
【００６７】
表示制御部１３は、表示装置１３０と接続され、表示装置１３０を制御する。表示装置１３０は、液晶ディスプレイやOrganic Light-Emitting Diode（ＯＬＥＤ）ディスプレイ，Cathode Ray Tube（ＣＲＴ），電子ペーパーディスプレイ等であり、オペレータ等に対する各種情報を表示する。表示装置１３０は、入力装置と組み合わされたものでもよく、例えば、タッチパネルでもよい。
【００６８】
記憶装置１４は、例示的に、データを読み書き可能に記憶する装置であり、例えば、Hard Disk Drive（ＨＤＤ）やSolid State Drive（ＳＳＤ），Storage Class Memory（ＳＣＭ）が用いられてよい。
【００６９】
入力Ｉ／Ｆ１５は、マウス１５１やキーボード１５２等の入力装置と接続され、マウス１５１やキーボード１５２等の入力装置を制御する。マウス１５１やキーボード１５２は、入力装置の一例であり、これらの入力装置を介して、オペレータが各種の入力操作を行なう。
【００７０】
読み書き処理部１６は、記録媒体１６０が装着可能に構成される。読み書き処理部１６は、記録媒体１６０が装着された状態において、記録媒体１６０に記録されている情報を読み取り可能に構成される。本例では、記録媒体１６０は、可搬性を有する。例えば、記録媒体１６０は、フレキシブルディスク、光ディスク、磁気ディスク、光磁気ディスク、又は、半導体メモリ等である。
【００７１】
通信Ｉ／Ｆ１７は、外部装置との通信を可能にするためのインタフェースである。
【００７２】
ＣＰＵ１１は、種々の制御や演算を行なう処理装置であり、メモリ１２に格納されたOperating System（ＯＳ）やプログラムを実行することにより、種々の機能を実現する。
【００７３】
ＣＰＵ１１は例示的にピア１全体の動作を制御するための装置は、ＣＰＵ１１に限定されず、例えば、ＭＰＵやＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのいずれか１つであってもよい。また、ピア１全体の動作を制御するための装置は、ＣＰＵ，ＭＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ及びＦＰＧＡのうちの２種類以上の組み合わせであってもよい。なお、ＭＰＵはMicro Processing Unitの略称であり、ＤＳＰはDigital Signal Processorの略称であり、ＡＳＩＣはApplication Specific Integrated Circuitの略称である。また、ＰＬＤはProgrammable Logic Deviceの略称であり、ＦＰＧＡはField Programmable Gate Arrayの略称である。
【００７４】
図１１は、図１０に示したピア１の機能構成を模式的に示すブロック図である。
【００７５】
ピア１は、処理部１１０としての機能を備える。図１１に示すように、処理部１１０は、第１登録処理部１１１，第２登録処理部１１２及び判定部１１３として機能する。
【００７６】
なお、これらの第１登録処理部１１１，第２登録処理部１１２及び判定部１１３として機能を実現するためのプログラムは、例えば前述した記録媒体１６０に記録された形態で提供される。そして、コンピュータは読み書き処理部１６を介してその記録媒体１６０からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供してもよい。
【００７７】
第１登録処理部１１１，第２登録処理部１１２及び判定部１１３としての機能を実現する際には、内部記憶装置に格納されたプログラムがコンピュータのマイクロプロセッサによって実行される。このとき、記録媒体１６０に記録されたプログラムをコンピュータが読み取って実行してもよい。なお、本実施形態において、内部記憶装置はメモリ１２であり、マイクロプロセッサはＣＰＵ１１である。
【００７８】
第１登録処理部１１１は、取引を特定するキーに対応するトランザクションＩＤ（「取引識別情報」と称してもよい。）をワールドステート２３に登録する。別言すれば、第１登録処理部１１１は、一連の複数の取引のうちの一の取引を特定するキーと、当該キーに対応するトランザクションＩＤとを、ブロックチェーン２２を構成するブロック２２１の外に登録する。
【００７９】
第２登録処理部１１２は、トレース情報及びトランザクションＩＤをブロックチェーン２２のブロック２２１（図１２及び図１３等を用いて後述。）に登録する。別言すれば、第２登録処理部１１２は、複数の取引の内容及び順序を示すトレース情報又は当該トレース情報のハッシュ値と、キーと、直前のトランザクションを示すキー及び／又は直前のトランザクションを示すトランザクションＩＤとを、ブロック２２１内に登録する。
【００８０】
判定部１１３は、トランザクションを生成した際に、ワールドステート２３に記憶されている最新の関連付け情報と、ブロック２２１に記憶されている過去のトランザクションに含まれる最新の関連付け情報とを比較して、異なる場合に改ざんが発生していると判定する。別言すれば、トレース情報を登録する際に、ブロック２２１外のデータ集合に記憶されている最新のトランザクションＩＤと、ブロック２２１内に記憶されている複数の取引に含まれる最新のトランザクションＩＤとを比較して、異なる場合にブロック２２１外のデータ集合が改ざんされていると判定する。
【００８１】
図１２及び図１３は、図７に示したブロックチェーンシステム１００における取引情報の登録処理を説明する図である。
【００８２】
図１２に示すように、取引＃１はＡ社からＢ社への取引であり（符号Ｆ１参照）、取引＃２はＢ社からＣ社への取引であり（符号Ｆ２参照）、取引＃３はＣ社からＤ社への取引である（符号Ｆ３参照）。
【００８３】
ブロックチェーン２２において、取引情報（「トランザクション」と称してもよい。）は、複数個がまとめられて各ブロック２２１に登録される。図１２に示す例では、各ブロック２２１は、３つのトランザクションが登録されている。ブロックチェーン２２では、各ブロック２２１が数珠繋ぎにされて（別言すれば、「一列に繋げられて」）管理される。
【００８４】
別言すれば、ブロックチェーン２２では、複数の取引の内容及び順序を示すトレース情報と、トランザクションＩＤとが、ブロック２２１に登録される。
【００８５】
符号Ｆ１及びＦ２で示したように、Ｔｘ１で示されるＡ社からＢ社へのトランザクションの後には、Ｔｘ４で示されるＢ社からＣ社へのトランザクションが発生する。また、符号Ｆ２及びＦ３で示したように、Ｔｘ４で示されるＢ社からＣ社へのトランザクションの後には、Ｔｘ７で示されるＣ社からＤ社へのトランザクションが発生する。
【００８６】
ワールドステート２３では、取引を特定するキー（例えば、取引＃１〜＃３）と、キーに対応するトランザクションＩＤ（例えば、Ｔｘ１，Ｔｘ４及びＴｘ７）とが、トランザクションの発生順に登録される。これにより、ブロックチェーン２２とワールドステート２３とが関連付けられて（符号Ｆ４参照）、ブロック２２１に登録されているトランザクションのデータを解析して情報を取得できる。
【００８７】
図１３に示すように、取引元や取引先等を示す取引内容はブロック２２１から取得される（符号Ｇ１参照）。これにより、取引内容がワールドステート２３に登録されず、ブロック２２１に限って登録されるため、データ量を削減できる。
【００８８】
また、取引を特定するキーを指定してトレースの起点を決定できる（符号Ｇ２参照）。これにより、任意の取引からトレースを開始できるため、ブロックチェーン２２のトレース処理を高速化できる。
【００８９】
更に、ワールドステート２３が改ざんされた場合においても、ワールドステート２３にはトレースに必要な情報は登録されない（符号Ｇ３参照）。図１３に示す例では、取引＃３に対応するＴｘ７が取引＃４に対応するＴｘ１０に改ざんされているが、ワールドステート２３には取引元及び取引先は登録されない。これにより、ワールドステート２３の情報が改ざんされても検知可能であり、ブロックチェーンシステム１００における信頼性を向上できる。
【００９０】
図１４は、図７に示したブロックチェーンシステム１００における取引情報の登録処理の詳細例を示すテーブルである。
【００９１】
図１４に示す登録情報には、No，取引，イベント，UserID，UserName，Operation，SrcResourceID，ResourceID，ResourceGroup，ResourceName，Owner，Hash，CreatedDate，RegisterdDate及びキー情報の各値が含まれる。
【００９２】
図１４に例示するテーブルでは、取引Ａ〜Ｄにそれぞれ対応する「データ登録」，「データ購入」，「学習済モデル作成」及び「データ購入」について、各値が登録されている。
【００９３】
図１５〜図１９は、図７に示したブロックチェーンシステム１００における取引情報の登録処理の詳細例を説明するブロック図である。
【００９４】
図１５において、取引Ａでは教師データ登録のイベントが発生する（符号Ｈ１参照）。このイベントの登録情報において、ユーザＩＤがUS0001で特定されるKenによって実行され、教師データを示すリソースＩＤはdata0001である。また、登録情報には、登録されるデータの種別は教師データであり、元データは無い。更に、登録情報には、教師データのハッシュ値や作成日時が含まれてよい。
【００９５】
図１６において、ブロック＃１には、直前ブロックのハッシュ値と共に、トランザクション＃１〜＃３が登録される。図示する例では、トランザクション＃３において、取引Ａが登録される（符号Ｉ１参照）。
【００９６】
トランザクション＃３には、ユーザＩＤがUS0001で特定されるKenによって実行され、教師データを示すリソースＩＤがdata0001である教師データ登録のイベントが登録される（符号Ｉ２参照）。また、登録情報には、登録されるデータの種別は教師データであり、元データは無い。更に、登録情報には、教師データのハッシュ値や作成日時に加えて、ブロック＃１へのトランザクション＃３の登録日時が含まれてよい。
【００９７】
また、トランザクションには、直前の取引を示す「前のキー」と当該取引を示す「キー」が登録される。図１６に示す例において、前のキーはＮＵＬＬであり、キーはUS0001+data0001である（符号Ｉ３参照）。なお、「前のキー」は、例えば、「前のトランザクションＩＤ」や「前のキー及び前のトランザクションＩＤ」であってもよい。
【００９８】
ワールドステート２３では、トランザクションＩＤ管理が行なわれる。
【００９９】
トランザクションＩＤ管理では、キーとトランザクションＩＤとの対応付けが行なわれる。図１６に示す例では、キーUS0001+data0001に対してトランザクションＩＤとしてＴｘ３が登録されていると共に、最新取引としてＴｘ３が登録されている（符号Ｉ４参照）。
【０１００】
判定部１１３は、ワールドステート２３における最新のトランザクションＩＤであるＴｘ３に対応するキーUS0001+data0001と、ブロック２２１に登録されているキーUS0001+data0001とが一致するか比較する。これにより、ワールドステート２３における改ざんがないことを保証できる。
【０１０１】
図１５において、取引Ｂでは教師データ購入のイベントが発生する（符号Ｈ２参照）。このイベントの登録情報において、ユーザＩＤがUS0002で特定されるMikeによって実行され、教師データを示すリソースＩＤはdata0001である。また、登録情報には、購入されるデータの種別は教師データであり、元データ（別言すれば、「購入対象」）はユーザＩＤがUS0001で特定されるKenが登録した、リソースＩＤがdata0001で特定される教師データである。更に、登録情報には、教師データのハッシュ値が含まれてよい。
【０１０２】
図１７において、図１６に示したブロック＃１に加えて、ブロック＃２には、直前ブロックのハッシュ値と共に、トランザクション＃４〜＃７が登録される。図示する例では、トランザクション＃５において、取引Ｂが登録される（符号Ｊ１参照）。
【０１０３】
トランザクション＃５には、ユーザＩＤがUS0002で特定されるMikeによって実行され、教師データを示すリソースＩＤがdata0001である教師データ購入のイベントが登録される（符号Ｊ２参照）。また、登録情報において購入されるデータの種別は教師データであり、元データはユーザＩＤがUS0001で特定されるKenが登録した、リソースＩＤがdata0001で特定される教師データである。更に、登録情報には、教師データのハッシュ値が含まれてよい。
【０１０４】
また、トランザクションには、直前の取引を示す「前のキー」と当該取引を示す「キー」が登録される。図１７に示す例において、前のキーはUS0001+data0001であり、キーはUS0002+data0001である（符号Ｊ３参照）。なお、「前のキー」は、例えば、「前のトランザクションＩＤ」や「前のキー及び前のトランザクションＩＤ」であってもよい。
【０１０５】
更に、トランザクションには、トレース情報が記録される。図１７に示す例では、US0001+data0001（Ｔｘ３）の次にUS0002+data0001（Ｔｘ５）が発生したことを示すトレース情報が記録されている（符号Ｊ４参照）。記録されるトレース情報は、例えば、「キー」，「トランザクションＩＤ」又は「キー及びトランザクションＩＤ」であってよい。また、ブロック２２１の各トランザクションには、トレース情報ではなく、トレース情報のハッシュ値が登録されてもよい。トランザクションにトレース情報のハッシュ値が登録される場合には、トレース情報はワールドステート２３に登録される。これにより、ワールドステート２３に登録されたトレース情報が改ざんされた場合には、改ざんされたトレース情報とトランザクションのハッシュ値とを比較することにより、改ざんを検知できる。
【０１０６】
ワールドステート２３のトランザクションＩＤ管理では、キーとトランザクションＩＤとの対応付けが行なわれる。図１７に示す例では、キーUS0001+data0001に対してトランザクションＩＤとしてＴｘ３が登録されていると共に、最新取引としてＴｘ３がＴｘ５に変更されている。また、キーUS0002+data0001に対してトランザクションＩＤとしてＴｘ５が登録されていると共に、最新取引としてＴｘ５が登録されている（符号Ｊ５参照）。
【０１０７】
判定部１１３は、ワールドステート２３における最新のトランザクションＩＤであるＴｘ５に対応するキーUS0002+data0001と、ブロック２２１に登録されているキーUS0002+data0001とが一致するか比較する。これにより、ワールドステート２３における改ざんがないことを保証できる。
【０１０８】
図１５において、取引Ｃでは学習済モデル作成のイベントが発生する（符号Ｈ３参照）。このイベントの登録情報において、ユーザＩＤがUS0002で特定されるMikeによって実行され、学習済モデルを示すリソースＩＤはmdl0001である。また、登録情報には、作成されるデータの種別は学習済モデルであり、元データはユーザＩＤがUS0002で特定されるMikeが購入した、リソースＩＤがdata0001で特定される教師データである。更に、登録情報には、学習済モデルのハッシュ値が含まれてよい。
【０１０９】
図１８において、図１７に示したブロック＃１及び＃２に加えて、ブロック＃３には、直前ブロックのハッシュ値と共に、トランザクション＃８〜＃１０が登録される。図示する例では、トランザクション＃９において、取引Ｃが登録される（符号Ｋ１参照）。
【０１１０】
トランザクション＃９には、ユーザＩＤがUS0002で特定されるMikeによって実行され、学習済モデルを示すリソースＩＤがmdl0001である学習済モデル作成のイベントが登録される（符号Ｋ２参照）。また、登録情報において購入されるデータの種別は学習済モデルであり、元データはユーザＩＤがUS0002で特定されるMikeが購入した、リソースＩＤがdata0001で特定される教師データである。更に、登録情報には、学習済モデルのハッシュ値が含まれてよい。
【０１１１】
また、トランザクションには、直前の取引を示す「前のキー」と当該取引を示す「キー」が登録される。図１８に示す例において、前のキーはUS0002+data0001であり、キーはUS0002+mdl0001である（符号Ｋ３参照）。なお、「前のキー」は、例えば、「前のトランザクションＩＤ」や「前のキー及び前のトランザクションＩＤ」であってもよい。
【０１１２】
更に、トランザクションには、トレース情報が記録される。図１７に示す例では、US0001+data0001（Ｔｘ３）の次にUS0002+data0001（Ｔｘ５）が発生し、US0002+data0001（Ｔｘ５）の次にUS0002+mdl0001（Ｔｘ９）が発生したことを示すトレース情報が記録されている（符号Ｋ４参照）。記録されるトレース情報は、例えば、「キー」，「トランザクションＩＤ」又は「キー及びトランザクションＩＤ」であってよい。また、ブロック２２１の各トランザクションには、トレース情報ではなく、トレース情報のハッシュ値が登録されてもよい。トランザクションにトレース情報のハッシュ値が登録される場合には、トレース情報はワールドステート２３に登録される。これにより、ワールドステート２３に登録されたトレース情報が改ざんされた場合には、改ざんされたトレース情報とトランザクションのハッシュ値とを比較することにより、改ざんを検知できる。
【０１１３】
ワールドステート２３のトランザクションＩＤ管理では、キーとトランザクションＩＤとの対応付けが行なわれる。図６に示す例では、キーUS0001+data0001に対してトランザクションＩＤとしてＴｘ３が登録されていると共に、最新取引としてＴｘ５がＴｘ９に変更されている。また、キーUS0002+data0001に対してトランザクションＩＤとしてＴｘ５が登録されていると共に、最新取引としてＴｘ５がＴｘ９に変更されている。更に、キーUS0002+mdl0001に対してトランザクションＩＤとしてＴｘ９が登録されていると共に、最新取引としてＴｘ９が登録されている（符号Ｋ５参照）。
【０１１４】
判定部１１３は、ワールドステート２３における最新のトランザクションＩＤであるＴｘ９に対応するキーUS0002+mdl0001と、ブロック２２１に登録されているキーUS0002+mdl0001とが一致するか比較する。これにより、ワールドステート２３における改ざんがないことを保証できる。
【０１１５】
図１５において、取引Ｄでは教師データ購入のイベントが発生する（符号Ｈ４参照）。このイベントの登録情報において、ユーザＩＤがUS0005で特定されるNancyによって実行され、教師データを示すリソースＩＤはdata0001である。また、登録情報には、登録されるデータの種別は教師データであり、元データ（別言すれば、「購入対象」）はユーザＩＤがUS0001で特定されるKenが登録した、リソースＩＤがdata0001で特定される教師データである。更に、登録情報には、教師データのハッシュ値が含まれてよい。
【０１１６】
図１９において、図１８に示したブロック＃１〜＃３に加えて、ブロック＃４には、直前ブロックのハッシュ値と共に、トランザクション＃１１〜＃１３が登録される。図示する例では、トランザクション＃１３において、取引Ｄが登録される（符号Ｌ１参照）。
【０１１７】
トランザクション＃１３には、ユーザＩＤがUS0005で特定されるNancyによって実行され、教師データを示すリソースＩＤがdata0001である教師データ購入のイベントが登録される（符号Ｌ２参照）。また、登録情報において購入されるデータの種別は教師データであり、元データはユーザＩＤがUS0001で特定されるKenが登録した、リソースＩＤがdata0001で特定される教師データである。更に、登録情報には、教師データのハッシュ値が含まれてよい。
【０１１８】
また、トランザクションには、直前の取引を示す「前のキー」と当該取引を示す「キー」が登録される。図１９に示す例において、前のキーはUS0001+data0001であり、キーはUS0005+data0001である（符号Ｌ３参照）。なお、「前のキー」は、例えば、「前のトランザクションＩＤ」や「前のキー及び前のトランザクションＩＤ」であってもよい。
【０１１９】
更に、トランザクションには、トレース情報が記録される。図１９に示す例では、US0001+data0001（Ｔｘ３）の次にUS0002+data0001（Ｔｘ５）が発生し、US0002+data0001（Ｔｘ５）の次にUS0002+mdl0001（Ｔｘ９）が発生したことを示すトレース情報が記録されている。また、図１９に示す例では、US0001+data0001（Ｔｘ３）の次にUS0005+data0001（Ｔｘ１３）が発生したことを示すトレース情報が記録されている（符号Ｌ４参照）。記録されるトレース情報は、例えば、「キー」，「トランザクションＩＤ」又は「キー及びトランザクションＩＤ」であってよい。また、ブロック２２１の各トランザクションには、トレース情報ではなく、トレース情報のハッシュ値が登録されてもよい。トランザクションにトレース情報のハッシュ値が登録される場合には、トレース情報はワールドステート２３に登録される。これにより、ワールドステート２３に登録されたトレース情報が改ざんされた場合には、改ざんされたトレース情報とトランザクションのハッシュ値とを比較することにより、改ざんを検知できる。
【０１２０】
ワールドステート２３のトランザクションＩＤ管理では、キーとトランザクションＩＤとの対応付けが行なわれる。図１７に示す例では、キーUS0001+data0001に対してトランザクションＩＤとしてＴｘ３が登録されていると共に、最新取引としてＴｘ１３が登録されている。また、キーUS0002+data0001に対してトランザクションＩＤとしてＴｘ５が登録されていると共に、最新取引としてＴｘ１３が登録されている。更に、キーUS0002+mdl0001に対してトランザクションＩＤとしてＴｘ９が登録されていると共に、最新取引としてＴｘ１３が登録されている。また、キーUS0005+data0001に対してトランザクションＩＤとしてＴｘ１３が登録されていると共に、最新取引としてＴｘ１３が登録されている（符号Ｌ５参照）。
【０１２１】
判定部１１３は、ワールドステート２３における最新のトランザクションＩＤであるＴｘ１３に対応するキーUS0005+data0001と、ブロック２２１に登録されているキーUS0005+data0001とが一致するか比較する。これにより、ワールドステート２３における改ざんがないことを保証できる。
【０１２２】
〔Ｂ−２〕動作例
図７に示したブロックチェーンシステム１００における取引情報の登録処理を、図２０に示すフローチャート（ステップＳ１〜Ｓ９）に従って説明する。
【０１２３】
第１登録処理部１１１は、ワールドステート２３に対して、今回追加する取引のデータを追加する（ステップＳ１）。
【０１２４】
第２登録処理部１１２は、追加するトランザクションに対して、前のキーを記録する（ステップＳ２）。
【０１２５】
第２登録処理部１１２は、元データがあるかを判定する（ステップＳ３）。
【０１２６】
元データがない場合には（ステップＳ３のＮｏルート参照）、第２登録処理部１１２は、今回追加する取引を新規のトレース情報として作成する（ステップＳ４）。そして、処理はステップＳ８へ移行する。
【０１２７】
一方、元データがある場合には（ステップＳ３のＹｅｓルート参照）、第２登録処理部１１２は、ワールドステート２３から元データの最新取引トランザクションＩＤを取得する（ステップＳ５）。
【０１２８】
第２登録処理部１１２は、最新取引トランザクションＩＤのトランザクションから、トレース情報を取得する（ステップＳ６）。
【０１２９】
第２登録処理部１１２は、トレース情報に今回追加する取引の関連付けを追加して、新たなトレース情報を作成する（ステップＳ７）。
【０１３０】
第２登録処理部１１２は、追加するトランザクションにトレース情報を記録する（ステップＳ８）。
【０１３１】
第２登録処理部１１２は、トレース情報の各データについて、ワールドステート２３の最新取引トランザクションＩＤを、今回追加するトランザクションＩＤに更新する（ステップＳ９）。そして、取引情報の登録処理は終了する。
【０１３２】
〔Ｂ−３〕効果
上述した実施形態の一例におけるブロックチェーンシステム１００によれば、例えば、以下の作用効果を奏することができる。
【０１３３】
第１登録処理部１１１は、一連の複数の取引のうちの一の取引を特定するキーと、当該キーに対応するトランザクションＩＤとを、ブロックチェーン２２を構成するブロック２２１の外に登録する。また、第２登録処理部１１２は、複数の取引の内容及び順序を示すトレース情報又は当該トレース情報のハッシュ値と、キーと、直前のトランザクションを示すキー及び／又は直前のトランザクションを示すトランザクションＩＤとを、ブロック２２１内に登録する。
【０１３４】
これにより、任意の取引を起点としてブロックチェーン２２に記録された取引の情報をトレースすることができ、トレース処理を高速化できる。すなわち、トレーサビリティ機能を有するブロックチェーンシステム１００を提供することができる。
【０１３５】
判定部１１３は、トレース情報を登録する際に、ブロック２２１外のデータ集合に記憶されている最新のキーと、ブロック２２１内に記憶されている複数の取引に含まれる最新のキーとを比較して、異なる場合にブロック２２１外のデータ集合が改ざんされていると判定する。
【０１３６】
これにより、ワールドステート２３の情報が改ざんされても、改ざんの発生を検知でき、ブロックチェーンシステム１００における信頼性を向上できる。
【０１３７】
第１登録処理部１１１は、ブロック２２１外において、複数の取引の内容を登録しない。
【０１３８】
これにより、取引の内容及び順序を示すトレース情報がブロックチェーン２２のブロック２２１に限って登録されるため、ブロックチェーンシステム１００におけるデータ量を削減できる。
【０１３９】
〔Ｃ〕その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【０１４０】
上述した実施形態の一例においては、ブロックチェーン基盤として「Hyperledger Fabric」を挙げたが、これに限定されるものではない。実施形態においては、種々のブロックチェーン基盤を採用できる。
【０１４１】
〔Ｄ〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
【０１４２】
（付記１）
端末からの要求に応じてブロックチェーンを用いた取引を記録するコンピュータに、
一連の複数の取引のうちの一の取引を特定するキーと、当該キーに対応する取引識別情報とを、前記ブロックチェーンを構成するブロックの外に登録し、
前記複数の取引の内容及び順序を示すトレース情報又は当該トレース情報のハッシュ値と、前記キーとを、直前のトランザクションを示すキー及び／又は直前のトランザクションを示す取引識別情報と前記ブロック内に登録する、
処理を実行させる、プログラム。
【０１４３】
（付記２）
前記トレース情報を登録する際に、前記ブロック外のデータ集合に記憶されている最新のキーと、前記ブロック内に記憶されている前記複数の取引に含まれる最新のキーとを比較して、異なる場合に前記ブロック外のデータ集合が改ざんされていると判定する、
処理を前記コンピュータに実行させる、付記１に記載のプログラム。
【０１４４】
（付記３）
前記ブロック外において、前記複数の取引の内容を登録しない、
処理を前記コンピュータに実行させる、付記１又は２に記載のプログラム。
【０１４５】
（付記４）
情報処理装置と端末とを備え、前記端末からの要求に応じてブロックチェーンを用いた取引を記録する情報処理システムであって、
前記情報処理装置は、
一連の複数の取引のうちの一の取引を特定するキーと、当該キーに対応する取引識別情報とを、前記ブロックチェーンを構成するブロックの外に登録する第１登録処理部と、
前記複数の取引の内容及び順序を示すトレース情報又は当該トレース情報のハッシュ値と、前記キーと、直前のトランザクションを示すキー及び／又は直前のトランザクションを示す取引識別情報とを、前記ブロック内に登録する第２登録処理部と、
を備える、情報処理システム。
【０１４６】
（付記５）
前記トレース情報を登録する際に、前記ブロック外のデータ集合に記憶されている最新のキーと、前記ブロック内に記憶されている前記複数の取引に含まれる最新のキーとを比較して、異なる場合に前記ブロック外のデータ集合が改ざんされていると判定する判定部
を更に備える、付記４に記載の情報処理システム。
【０１４７】
（付記６）
前記第１登録処理部は、前記ブロック外において、前記複数の取引の内容を登録しない、
付記４又は５に記載の情報処理システム。
【０１４８】
（付記７）
端末からの要求に応じてブロックチェーンを用いた取引を記録する情報処理方法であって、
一連の複数の取引のうちの一の取引を特定するキーと、当該キーに対応する取引識別情報とを、前記ブロックチェーンを構成するブロックの外に登録し、
前記複数の取引の内容及び順序を示すトレース情報又は当該トレース情報のハッシュ値と、前記キーと、直前のトランザクションを示すキー及び／又は直前のトランザクションを示す取引識別情報とを、前記ブロック内に登録する、
情報処理方法。
【０１４９】
（付記８）
前記トレース情報を登録する際に、前記ブロック外のデータ集合に記憶されている最新のキーと、前記ブロック内に記憶されている前記複数の取引に含まれる最新のキーとを比較して、異なる場合に前記ブロック外のデータ集合が改ざんされていると判定する、
付記７に記載の情報処理方法。
【０１５０】
（付記９）
前記ブロック外において、前記複数の取引の内容を登録しない、
付記７又は８に記載の情報処理方法。
【符号の説明】
【０１５１】
１００        ：ブロックチェーンシステム
１０          ：Hyperledger Fabric
１０１        ：ブロックチェーンプラットフォーム
１０１２      ：台帳
１０２        ：クライアントアプリケーション
１１１１      ：トレースデータを記録する関数
１１１２      ：トレース結果を参照する関数
１１１３      ：トレーサビリティ機能ライブラリ
１            ：ピア
１１０        ：処理部
１１          ：ＣＰＵ
１１１        ：第１登録処理部
１１２        ：第２登録処理部
１１３        ：判定部
１２          ：メモリ
１３          ：表示制御部
１３０        ：表示装置
１４          ：記憶装置
１５          ：入力Ｉ／Ｆ
１５１        ：マウス
１５２        ：キーボード
１６          ：読み書き処理部
１６０        ：記録媒体
１７          ：通信Ｉ／Ｆ
２            ：オーダリングサービス
４            ：サーバアプリケーション
５            ：ウェブブラウザ
２１，６１    ：チェーンコード
２２，６２    ：ブロックチェーン
２２１，６２１：ブロック
２３，６３    ：ワールドステート
４０          ：クライアント
４１          ：ピアコマンド
４２          ：Client SDK
４３          ：アプリケーション
【図１】
2020035214.tif 000003
【図２】
2020035214.tif 000004
【図３】
2020035214.tif 000005
【図４】
2020035214.tif 000006
【図５】
2020035214.tif 000007
【図６】
2020035214.tif 000008
【図７】
2020035214.tif 000009
【図８】
2020035214.tif 000010
【図９】
2020035214.tif 000011
【図１０】
2020035214.tif 000012
【図１１】
2020035214.tif 000013
【図１２】
2020035214.tif 000014
【図１３】
2020035214.tif 000015
【図１４】
2020035214.tif 000016
【図１５】
2020035214.tif 000017
【図１６】
2020035214.tif 000018
【図１７】
2020035214.tif 000019
【図１８】
2020035214.tif 000020
【図１９】
2020035214.tif 000021
【図２０】
2020035214.tif 000022