JP7322621B2 - 取引記録装置、取引記録方法、および、取引記録プログラム - Google Patents

取引記録装置、取引記録方法、および、取引記録プログラム Download PDF

Info

Publication number
JP7322621B2
JP7322621B2 JP2019167925A JP2019167925A JP7322621B2 JP 7322621 B2 JP7322621 B2 JP 7322621B2 JP 2019167925 A JP2019167925 A JP 2019167925A JP 2019167925 A JP2019167925 A JP 2019167925A JP 7322621 B2 JP7322621 B2 JP 7322621B2
Authority
JP
Japan
Prior art keywords
transaction
blockchain
data
sub
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019167925A
Other languages
English (en)
Other versions
JP2021048430A (ja
Inventor
俊也 清水
真吾 藤本
正信 森永
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019167925A priority Critical patent/JP7322621B2/ja
Publication of JP2021048430A publication Critical patent/JP2021048430A/ja
Application granted granted Critical
Publication of JP7322621B2 publication Critical patent/JP7322621B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Description

本発明は、取引記録装置、取引記録方法、および、取引記録プログラムに関する。
取引記録を1つのブロックにまとめ、ブロック同士をチェーンのように繋げるブロックチェーンの技術が知られている。ブロックチェーンは、デジタル仮想通貨のサービスでよく用いられる。この場合、仮想通貨の取引情報(トランザクション)がブロックと呼ばれる単位でまとめられ、ネットワークを介して参加者が共有する台帳情報が生成される。近年、ブロックチェーン技術を、コンテンツ管理、著作権情報管理、サプライチェーン、電力の取引など、仮想通貨以外のサービスにも適用する試みが行われている。
関連する技術として、トランザクション情報中の一次情報をブロック生成検証装置の一時情報用データ格納領域に格納し、一時情報を含まない格納用ブロックを台帳データにつなげるシステムが提案されている(例えば、特許文献1など)。また、複数のノードが参加しているグループで共有されるデータに対するトランザクションを、その複数のノードの一定割合のノードから承認信号を受信した場合に実行する信号処理方法も知られている(例えば、特許文献2など)。さらに、下位ネットワークから上位ネットワークに引き渡す資産の総量を、上位ネットワークより受け取った資産の総量以下にするシステムも提案されている(例えば、特許文献3など)。
特開2018-112827号公報 国際公開第2018/154793号 特開2018-166000号公報
ブロックチェーン技術が電力の取引に使用される場合、ブロックチェーンではデータの改ざんが困難なことから、電力の取引情報や発電量などの計測データをブロックチェーンで管理することが考えられる。ブロックチェーンでは、情報が複数の装置によって分散的に共有されるが、大量のデータをブロックチェーンに記録すると各装置が保持するデータ量も増大するため、データの維持管理が困難になる。従って、電力の取引情報や発電量などの計測データをブロックチェーンで管理すると、ブロックチェーンが肥大化するという問題が発生するが、ブロックチェーンを用いてこれらの情報を管理しないと、情報が改ざんされてしまうおそれがある。電力の取引に限らず、仮想通貨を含む様々な他の取引にブロックチェーンを使用する場合にも同様の問題が発生する。また、関連する技術として述べた技術を用いても、この問題は解決されない。
本発明は、1つの側面として、ブロックチェーンの肥大化を防止することを目的とする。
ある1つの態様にかかる取引記録装置は、第1のブロックチェーンを共有するネットワークに参加し、取得部、生成部、および、登録処理部を備える。取得部は、取引時刻と前記取引時刻に行われた取引に関するデータが登録された第2のブロックチェーンから情報を取得する。生成部は、前記取得部が取得した前記情報を用いて、所定の期間中に行われた前記取引に関するデータを集約した集約データを生成する。登録処理部は、前記集約データが、前記ネットワークに参加している他の取引記録装置での前記所定の期間中に行われた前記取引に関するデータから生成された他の集約データと一致する場合に、前記集約データを前記第1のブロックチェーンに登録する。前記第2のブロックチェーンが所定の移行基準を満たすと、前記取引を行う装置から取得した前記取引時刻と前記取引に関するデータの登録先を前記第2のブロックチェーンから第3のブロックチェーンに切り替えるノード装置が、取得部の通信先である場合、取得部は、前記第1のブロックチェーンを介して前記集約データの計算に使用する取引データを記録したブロックチェーンの識別情報を取得し、前記第2のブロックチェーンと前記第3のブロックチェーンのうち、前記識別情報で識別されるブロックチェーンから、前記所定の期間中に行われた前記取引に関するデータを取得する。
ブロックチェーンの肥大化を防止する。
実施形態にかかる取引の記録を行うシステムの例を説明する図である。 取引記録装置の構成の例を説明する図である。 サブブロックチェーンノードの構成の例を説明する図である。 ハードウェア構成の例を説明する図である。 取引データの例を説明する図である。 取引データの登録処理の例を説明するシーケンス図である。 データ集約モデルの例を説明する図である。 集約データの生成処理の例を説明するシーケンス図である。 集約データの例を説明する図である。 検証処理の例を説明するシーケンス図である。 最終的に発行されるトランザクションの例を説明する図である。 第1の実施形態にかかる処理の例を説明するフローチャートである。 第2の実施形態にかかるシステムの例を説明する図である。 サブブロックチェーンノードの構成の例を説明する図である。 サブブロックチェーンの切り替え処理の例を説明する図である。 サブブロックチェーンの切り替え処理の例を説明するフローチャートである。
図1は、実施形態にかかる取引の記録を行うシステムの例を説明する図である。図1に示すシステムは、端末6(6a~6e)、サブブロックチェーンノード50(50a、50b)、取引記録装置10(10a~10d)を含み、メインブロックチェーン1とサブブロックチェーン5を有する。サブブロックチェーンノード50の各々はサブブロックチェーン5で記録された情報の分散台帳を保持するものとする。一方、取引記録装置10は、サブブロックチェーン5中の情報を取得できるが、サブブロックチェーン5に登録された情報の分散台帳を保持していないとする。さらに、取引記録装置10は、メインブロックチェーン1に記録された情報の分散台帳を保持しているものとする。
各端末6は、測定などによって得られた情報をサブブロックチェーンノード50に送信する。例えば、端末6は、任意のIoT(Internet of Things)機器端末であり得る。例えば、端末6が発電量の測定メータなどの電力の取引に使用される機器端末である場合、端末6からサブブロックチェーンノード50に通知される情報は、発電量や電気の使用量などに関する情報である。サブブロックチェーンノード50は、端末6から受信した情報をサブブロックチェーン5に登録する。なお、登録処理の際に、サブブロックチェーンノード50は、データの送信元の端末6がサブブロックチェーン5へのアクセス権を有するかなどの確認を行い、アクセス権を有する端末6から受信した情報をサブブロックチェーン5に登録しても良い。図1の例では、端末6a~6cはサブブロックチェーンノード50aを介してデータの登録処理を行い、端末6d~6eはサブブロックチェーンノード50bを介してデータの登録処理を行う。
取引記録装置10a~10dの各々は、サブブロックチェーン5に登録された取引データについて、所定の期間中のデータを集計することにより、集約データを生成する。例えば、集約データは端末6ごとに所定の期間中のデータを用いて計算され得る。取引記録装置10a~10dの各々は、他の取引記録装置10が同じ端末6についての同じ期間に対して計算した集約データを取得するとともに、取得した集約データが自装置で計算した集約データと一致するかを判定する。取引記録装置10が計算した集約データを他の取引記録装置10に通知する際には、例えば、集約データを含むトランザクション(集約データトランザクション)が使用される。さらに、各取引記録装置10は、受信した集約トランザクション中の集約データが自装置で計算した集約データと一致すると判定した際に署名を行い、署名した集約データを他の取引記録装置10に送信する。なお、取引記録装置10が比較する集約データを取得する方法や署名した集約データを送信する方法などは、取引記録装置10間で共有しているメインブロックチェーン1で採用されているアルゴリズムに従った任意の方法であるとする。
各取引記録装置10は、自装置が計算した集約データに対して一定数以上の取引記録装置10が署名すると、自装置が計算した集約データが正しいと判定して、メインブロックチェーン1の分散台帳情報に記録する。このため、サブブロックチェーン5中の情報を用いて計算した集約データのうち、メインブロックチェーン1に参加している取引記録装置10の所定の割合の装置が正しいと判定した集約データがメインブロックチェーン1に記録される。
このように、図1に示すシステムでは、メインブロックチェーン1には端末6から得られた取引データは含まれず、所定期間ごとに集約された集約データが記録される。換言すると、図1に示すシステムでは個々の取引データの代わりに集約データがメインブロックチェーン1に記録される。このため、メインブロックチェーン1に記録される情報の量は、端末6で得られた個々の取引データの全てを記録する場合に比べて削減される。さらに、端末6で得られた個々の取引データは、メインブロックチェーン1とは異なるサブブロックチェーン5に記録されている。このため、実施形態にかかるシステムでは、メインブロックチェーン1に記録する集約データの計算のもととなる端末6で得られた取引履歴の改ざんも防止できる。
なお、図1は、システムの一例であり、システム中で使用される端末6、サブブロックチェーンノード50、取引記録装置10の数は、いずれも実装に応じて任意に変更され得る。例えば、端末6は、IoT機器以外の装置であっても良い。また、端末6が測定する情報の種類も実装に応じて任意に変更され得る。例えば、端末6は、図1のシステムの用途に応じて、電力の販売に関する情報以外の情報を測定しても良い。
<装置構成>
図2は、取引記録装置10の構成の例を説明する図である。取引記録装置10は、制御部15と記憶部40を備える。記憶部40は、メインブロックチェーン(BC)台帳41、設定情報42、および、公開鍵情報43を記憶する。記憶部40は、さらに、取引記録装置10自身が暗号化に使用する秘密鍵も保持する。
メインブロックチェーン台帳41は、メインブロックチェーン1を用いて共有される情報を記録する。なお、集約データを計算するための期間の情報や計算対象の端末6の情報などの、集約データを計算するために使用される情報は、メインブロックチェーン1を用いて取引記録装置10間で共有されるものとする。設定情報42は、取引記録装置10が他の取引記録装置10との間で集約データの計算結果や署名付きの情報を交換する際の確認の順序などの設定情報が含まれる。公開鍵情報43は、取引記録装置10の識別情報と、その識別情報で識別される取引記録装置10が暗号化に使用する秘密鍵の対となっている公開鍵を対応付けた情報である。なお、公開鍵情報43は、メインブロックチェーン1で共有されていても良い。公開鍵情報43がメインブロックチェーン1で共有される場合、各取引記録装置10は、メインブロックチェーン台帳41を参照することにより公開鍵の情報を取得しても良い。
制御部15は、集約処理部20とメインブロックチェーン(BC)制御部30を有する。集約処理部20は、取得部21と生成部22を有する。取得部21は、メインブロックチェーン1で共有している条件に従って、サブブロックチェーン5で共有されている情報を取得する。なお、取得部21は、サブブロックチェーン5で共有されている情報を取得するためにアクセスするサブブロックチェーンノード50のアドレスなどの情報を予め保持しているか、記憶部40から取得可能であるものとする。生成部22は、取得部21が取得した情報を用いて集約データを計算する。
メインブロックチェーン制御部30は、トランザクション受信部31、トランザクション発行部32、および、登録処理部33を有する。トランザクション受信部31は、他の取引記録装置10などの他の装置から送信されたトランザクションを受信する。トランザクション発行部32は、他の取引記録装置10などの他の装置にトランザクションを送信する。登録処理部33は、他の取引記録装置10から受信したトランザクション中に含まれている集約データの検証処理を行う。さらに、登録処理部33は、所定の割合以上の取引記録装置10の間で集約データの計算結果が一致した場合、集約データが正しいと判定して、メインブロックチェーン1に登録するための処理を行う。
図3は、サブブロックチェーンノード50の構成の例を説明する図である。サブブロックチェーンノード50は、サブブロックチェーン制御部60と記憶部70を備える。記憶部70は、サブブロックチェーン(BC)台帳71を記憶する。サブブロックチェーン台帳71には、サブブロックチェーン5を用いて共有される情報が記録されている。
サブブロックチェーン制御部60は、トランザクション受信部61、トランザクション発行部62、および、登録処理部63を有する。トランザクション受信部61は、端末6や他のサブブロックチェーンノード50などの他の装置から送信されたトランザクションを受信する。トランザクション発行部62は、他のサブブロックチェーンノード50などの他の装置にトランザクションを送信する。登録処理部63は、端末6から受信したトランザクション中に含まれている取引データをサブブロックチェーン5に登録するための処理を行う。
図4は、ハードウェア構成の例を説明する図である。取引記録装置10とサブブロックチェーンノード50のいずれも、プロセッサ101、メモリ102、バス105、ネットワークインタフェース109を備える。さらに、取引記録装置10とサブブロックチェーンノード50のいずれも、入力装置103、出力装置104、記憶装置106、可搬記憶媒体駆動装置107の1つ以上を有していても良い。取引記録装置10およびサブブロックチェーンノード50は、例えば、コンピュータ、サーバ装置などによって実現され得る。
プロセッサ101は、任意の処理回路であり、例えば、Central Processing Unit(CPU)とすることができる。プロセッサ101は、例えば、メモリ102や記憶装置106に記憶されたプログラムを実行することができる。メモリ102は、プロセッサ101の動作により得られたデータや、プロセッサ101の処理に用いられるデータを、適宜、記憶する。記憶装置106は、プログラムやデータなどを格納し、格納している情報を、適宜、プロセッサ101などに提供する。ネットワークインタフェース109は、取引記録装置10またはサブブロックチェーンノード50が他の装置と通信するための処理を行う。
バス105は、プロセッサ101、メモリ102、入力装置103、出力装置104、記憶装置106、可搬記憶媒体駆動装置107、ネットワークインタフェース109を、相互にデータの送受信が可能になるように接続する。入力装置103は、キーボード、マウス、マイク、カメラなど、情報の入力に使用される任意の装置であり、出力装置104は、ディスプレイなど、データの出力に使用される任意の装置である。可搬記憶媒体駆動装置107は、メモリ102や記憶装置106のデータを可搬記憶媒体108に出力することができ、また、可搬記憶媒体108からプログラムやデータ等を読み出すことができる。ここで、可搬記憶媒体108は、Compact Disc Recordable(CD-R)やDigital Versatile Disk Recordable(DVD-R)を含む、持ち運びが可能な任意の記憶媒体とすることができる。
取引記録装置10において、プロセッサ101とネットワークインタフェース109は、制御部15として動作する。メモリ102および記憶装置106は、記憶部40として動作する。
サブブロックチェーンノード50において、プロセッサ101とネットワークインタフェース109は、サブブロックチェーン制御部60として動作する。メモリ102および記憶装置106は、記憶部70として動作する。
<第1の実施形態>
以下、第1の実施形態を、取引データの登録、データ集約モデルの登録と集約データの生成、集約データの検証と登録に分けて説明する。以下の説明では、端末6が発電量測定メータであり、電力の取引に使用される発電量を所定の周期で計測している場合を例として説明する。この場合、集約データは、端末6ごとの所定期間内の発電量である。
また、以下の説明では、処理を行っている取引記録装置10などを明確にするために、処理を行っている取引記録装置10などの装置の符号の末尾のアルファベットを符号の末尾に示すことがある。例えば、登録処理部33aは取引記録装置10aの登録処理部33であり、メインブロックチェーン台帳41bは取引記録装置10bのメインブロックチェーン台帳41である。
(1)取引データの登録
図5は、取引データの例を説明する図である。図5の取引データは、端末6からサブブロックチェーンノード50に送信される取引データ登録トランザクションに含まれる。図5の例では、取引データ登録トランザクションには、トランザクション番号、送信元の機器の識別情報(測定器名)、発電量、時刻が含まれる。例えば、端末6aの測定器名がAであるとする。また、端末6aは、15:00に0.1kwhの発電が行われたことを計測したとする。すると、測定器名=A、発電量=0.1kwh、時刻=15:00の情報を含む取引データ登録トランザクションを生成する。図5の例では、生成されたトランザクションの番号は1である。
図6は、取引データの登録処理の例を説明するシーケンス図である。図5に示す取引データトランザクションを発行した端末6は、発行した取引データ登録トランザクションをサブブロックチェーンノード50に送信する(ステップS1)。なお、各端末6は、その端末6が取引データトランザクションを送信する先のサブブロックチェーンノード50のアドレス情報などを予め記憶しているものとする。サブブロックチェーンノード50のトランザクション受信部61は、取引データ登録トランザクションを受信すると登録処理部63に出力する(ステップS2)。
登録処理部63は、サブブロックチェーン5に対するアクセス権を有する端末6の測定器名を予め記憶しているか、サブブロックチェーン台帳71から取得できるものとする。登録処理部63は、入力された取引データ登録トランザクションに含まれている測定器名を用いて、サブブロックチェーン5へのアクセス権を有する端末6が取引データ登録トランザクションの送信元であるかを判定する(ステップS3)。サブブロックチェーン5へのアクセス権を有する端末6が取引データ登録トランザクションの送信元ではない場合、登録処理部63は処理を終了する(ステップS3でNo)。この場合、取引データ登録トランザクションで通知された発電量の情報はサブブロックチェーン5に登録されない。
一方、サブブロックチェーン5へのアクセス権を有する端末6が取引データ登録トランザクションの送信元である場合、サブブロックチェーンノード50間での合意形成処理が行われる。データの登録対象のサブブロックチェーンに参加しているサブブロックチェーンノード50間で、トランザクションを登録するための合意形成処理に成功すると、登録処理部63は、サブブロックチェーン台帳71に取引データを登録する(ステップS3でYes、ステップS4)。なお、ステップS4で登録される取引データは、取引データ登録トランザクションに含まれている発電量や時刻情報などである。
(2)データ集約モデルの登録と集約データの生成
図7は、データ集約モデルの例を説明する図である。データ集約モデルはメインブロックチェーン1を用いてデータを管理しようとするクライアントが、クライアントの端末(クライアント端末)を用いてメインブロックチェーン1に登録するモデルである。
図7に示すデータ集約モデルは、サブブロックチェーン5の識別情報、集約データを生成する対象とする端末6の情報、集約処理を行う期間の情報、および、集約方法を含む。図7の例では、「サブBC-X」という識別情報で識別されるサブブロックチェーン5が集約データの計算に用いられる。さらに、集約データは、測定器名がA、B、Cの各々の測定器に対して個別に、15:00~15:29の期間に計測されたデータの総和として計算される。
図8は、集約データの生成処理の例を説明するシーケンス図である。図8を参照しながら、図7に示すデータ集約モデルが登録された場合に行われる処理の例を説明する。クライアント端末7は、メインブロックチェーン1を共有している取引記録装置10のうちの取引記録装置10aに対して、データ集約モデルの登録を要求したとする(ステップS11)。ステップS11において、データ集約モデルがクライアント端末7から取引記録装置10aに送信される。
取引記録装置10aがデータ集約モデルの登録の要求を受信すると、トランザクション発行部32aは、データ集約モデルを登録するためのトランザクション(データ集約モデル登録トランザクション)を生成する。データ集約モデル登録トランザクションには、クライアント端末7の情報が含まれていてもよい。トランザクション発行部32aは、データ集約モデル登録トランザクションを登録処理部33aに送信するとともに、メインブロックチェーン1を共有する他の取引記録装置10に対しても送信する(ステップS12)。取引記録装置10aでは、登録処理部33aが、受信したデータ集約モデル登録トランザクションを用いて、データ集約モデルをメインブロックチェーン台帳41aに記録する。データ集約モデル登録トランザクションにクライアント端末7の情報が含まれている場合、登録処理部33aは、クライアント端末7が取引記録装置10aへのアクセス権を有する装置であるかの認証を行っても良い。この場合、登録処理部33aは、認証処理に成功すると、メインブロックチェーンに参加している取引記録装置10間での、トランザクションを登録するための合意形成処理を行う。トランザクションを登録するための合意形成処理に成功すると、登録処理部33aは、データ集約モデルをメインブロックチェーン台帳41aに登録する。
メインブロックチェーン1を共有している取引記録装置10a以外の装置の各々では、登録処理部33が、トランザクション受信部31を介してデータ集約モデル登録トランザクションを取得する。登録処理部33は、データ集約モデルをその装置が保持するメインブロックチェーン台帳41に記録する。なお、登録処理の前に登録処理部33は、データ集約モデル登録トランザクションに含まれるクライアント端末7の情報を用いた認証処理を行っても良い。各取引記録装置10においてメインブロックチェーン台帳41にデータ集約モデルが記録されることにより、データ集約モデルがメインブロックチェーン1に登録される。
各取引記録装置10では、集約処理部20中の取得部21は、データ集約モデルを参照する(ステップS13)。なお、データ集約モデルに複数の期間が含まれている場合や、複数のデータ集約モデルがメインブロックチェーン1に登録される可能性もある。このため、取得部21は、例えば、ポーリングなどにより一定期間ごとにメインブロックチェーン台帳41にアクセスすることによりデータ集約モデルを参照しても良い。データ集約モデルで指定された集約期間が経過すると、取得部21は、集約期間の時刻情報に対応付けられた取引データを、データ集約モデルで指定された測定器の各々について取得する(ステップS14)。例えば、図7に示すデータ集約モデルがメインブロックチェーン1に登録されており、測定器名A~Cの各々の装置が1分ごとに発電量のデータをサブブロックチェーン5に登録しているとする。この場合、各取引記録装置10の取得部21は、測定器Aが15:00~15:29の期間に計測したデータ、測定器Bが15:00~15:29の期間に計測したデータ、および、測定器Cが15:00~15:29の期間に計測したデータを取得する。
生成部22は、取得部21が取得したデータを用いて、データ集約モデルに指定された集約方法により集約データを生成する(ステップS15)。図7に示すデータ集約モデルでは、集約方法として総和が指定されている。そこで、生成部22は、測定器Aで識別される端末6について、15:00~15:29の期間に計測されたデータの総和を計算する。同様に、生成部22は、測定器Bで識別される端末6と、測定器Cで識別される端末6に対しても、15:00~15:29の期間に計測されたデータの総和を計算する。生成部22は、得られた総和を、集約データとしてトランザクション発行部32に出力する(ステップS16)。
図9は、図7に示すデータ集約モデルを用いて計算された集約データの例を説明する図である。図9の例では、測定器Aで識別される端末6が15:00~15:29の期間に計測した発電量の総和は4.2kwhである。集約データには、測定器B、測定器Cについて得られた情報も含められる。
(3)集約データの検証と登録
図10は、検証処理の例を説明するシーケンス図である。図10では、取引記録装置10a~10cの3台の間での集約データの検証と登録処理の例を説明する。さらに、以下の説明では、取引記録装置10aは秘密鍵KeyAを用いて暗号化を行うものとする。また、秘密鍵KeyAの対となる公開鍵をKeyAPとする。同様に、取引記録装置10bは秘密鍵KeyBを用いて暗号化を行い、取引記録装置10cは秘密鍵KeyCを用いて暗号化を行うものとする。また、秘密鍵KeyBの対となる公開鍵はKeyBPであり、秘密鍵KeyCの対となる公開鍵はKeyCPであるとする。
まず、取引記録装置10a~10cの間で、集約データの検証に関する合意形成方法を設定し、得られた設定を設定情報42として記録する(ステップS21)。図10の例では、取引記録装置10aから集約データを提示し、他の取引記録装置10が提示されたデータを検証するとする。なお、合意形成方法は、ブロックチェーン基盤に応じた任意の方法が用いられ得る。例えば、合意形成方法として、PBFT(Practical Byzantine Fault Tolelance)に基づくアルゴリズムが用いられても良い。
ステップS21での合意形成方法の設定の後で、データ集約モデルで指定された期間が経過すると、各取引記録装置10は、集約データを生成する(ステップS22、S23)。集約データの生成処理は、図8、図9などを参照しながら説明した処理と同様である。なお、取引記録装置10aでも、図8、図9を参照しながら説明した処理が行われたとする。取引記録装置10aのトランザクション発行部32aは、設定情報42を参照することにより、自装置から他の取引記録装置10に集約データを含むトランザクションを送信することを特定できる。そこで、トランザクション発行部32aは、集約データを含む集約トランザクションを生成する(ステップS24)。トランザクション発行部32aは、取引記録装置10aの秘密鍵KeyAを用いて署名を生成し、集約データを含む集約トランザクションに署名を付加する(ステップS25)。トランザクション発行部32aは、署名後の集約トランザクションを取引記録装置10b、取引記録装置10cに送信する(ステップS26、S27)。
取引記録装置10bのトランザクション受信部31bは、受信した集約トランザクションを登録処理部33bに出力する。登録処理部33bは、集約トランザクションに含まれている集約データをステップS23で生成した集約データと比較する。なお、集約データの比較処理の際に、登録処理部33bは、集約トランザクション中の集約データに対応する集約の条件に対応する条件で生成した集約データを比較対象とする。例えば、図9に示す集約データを含む集約トランザクションを受信した場合、登録処理部33bは、15:00~15:29の期間の測定器名=Aの発電量のデータの総和を、測定器名=Aについての集約データと比較する。登録処理部33bは、測定器名=B、測定器名=Cでの発電量の集約データについても同様に比較を行う。集約トランザクションに含まれている集約データとステップS23で生成した集約データが一致する場合、登録処理部33bは、集約データを取引記録装置10bの秘密鍵KeyBで暗号化して署名を生成する。なお、図9に示す集約データのように複数の機器で得られたデータに関する複数の値を含む集約データの場合、集約トランザクション中のデータと計算した集約データが全ての機器について一致すると、登録処理部33bは集約データが一致したと判定する。登録処理部33bは、集約トランザクションに秘密鍵KeyBを用いた署名を付加する(ステップS28)。
なお、登録処理部33bは、検証処理を行う際に、取引記録装置10aによって行われた署名と取引記録装置10aの公開鍵KeyAPを使用することにより、集約トランザクション中の集約データに対する改ざんの有無を検証できる。この場合、登録処理部33bは、集約トランザクション中の集約データが改ざんされておらず、集約トランザクション中の集約データが自装置で計算した集約データと一致するときに、自装置の署名を集約トランザクションに付加する。
トランザクション発行部32bは、登録処理部33bによる処理後の集約トランザクションを、トランザクションの送信元である取引記録装置10aに送信する(ステップS30)。なお、登録処理部33bによる処理後の集約トランザクションは、取引記録装置10bの秘密鍵を用いた署名の有無で取引記録装置10bでの検証の結果を表しているので、検証結果であるといえる。
取引記録装置10cも、集約トランザクションに対して、取引記録装置10bと同様の処理を行う。すなわち、登録処理部33cは、集約トランザクション中の集約データとステップS22で生成した集約データが一致する場合、集約データを秘密鍵KeyCで暗号化して生成した署名を集約トランザクションに付加する(ステップS29)。トランザクション発行部32cは、登録処理部33cによる処理後の集約トランザクションを、トランザクションの送信元である取引記録装置10aに送信する(ステップS30)。
取引記録装置10aの登録処理部33aは、メインブロックチェーン1を共有する全ての取引記録装置10から検証結果を含む集約トランザクションを受け取る。登録処理部33aは、検証結果を含むトランザクションの各々について、署名が含まれているかを判定する。登録処理部33aは、得られた検証結果を用いて、メインブロックチェーン1を共有する全ての取引記録装置10に公開するための最終的なトランザクションを発行する。最終的に発行されるトランザクションは、集約データの集約トランザクションに、いずれかの検証結果に含まれていた全ての署名をトランザクションに追加したものである。
図11は、最終的に発行されるトランザクションの例を説明する図である。図11は、取引記録装置10aが発行した図9の集約データを含む集約トランザクションに対して、取引記録装置10bと取引記録装置10cの両方から署名が得られた場合に生成される最終的なトランザクションの例である。署名には、その署名をした装置の識別情報が対応付けられる。
再度、図10を参照してメインブロックチェーン1への登録処理について説明する。取引記録装置10aのトランザクション発行部32aは、最終的なトランザクションを取引記録装置10bと取引記録装置10cに送信する(図10のステップS31)。登録処理部33aは、最終的なトランザクションに含まれる署名の各々を検証する。署名の検証の際に、登録処理部33aは、署名を行った取引記録装置10が使用する秘密鍵の対となっている公開鍵を用いることができる。例えば、登録処理部33aは、公開鍵KeyBPを用いて取引記録装置10bの署名を検証し、公開鍵KeyCPを用いて取引記録装置10cの署名を検証する。正しい署名数が閾値Th以上の場合、最終的なトランザクションに含まれている集約データをメインブロックチェーン台帳41aに登録する(ステップS32)。なお、最終的なトランザクションに含まれる署名数と比較される閾値は予め登録処理部33aが保持している。また、閾値は、設定情報42などに設定されていても良い。
最終的なトランザクションを受信した取引記録装置10bおよび取引記録装置10cにおいても、登録処理部33は、登録処理部33aと同様に最終的なトランザクションを処理する。すなわち、登録処理部33bと登録処理部33cのいずれも、最終的なトランザクションに含まれている正しい署名の数が閾値以上の場合、最終的なトランザクションに含まれている集約データをメインブロックチェーン台帳41に登録する(ステップS33、S34)。各取引記録装置10のメインブロックチェーン台帳41に集約データが登録されることで、メインブロックチェーン1においてその集約データが共有される。
なお、図10は処理の一例を示しているにすぎず、実装に応じて処理の順序等が変更され得る。例えば、ステップS31で最終的なトランザクションが送信されるより前に、最終的なトランザクションの発行元の取引記録装置10aにおいてメインブロックチェーン台帳41aの登録処理(ステップS32)が行われてもよい。
(4)処理フロー
図12は、第1の実施形態にかかる処理の例を説明するフローチャートである。図12は、図7~図11を参照しながら説明した処理の例を時系列に沿って示している。
クライアントは、クライアント端末7を用いてデータ集約モデルをメインブロックチェーン1に登録する(ステップS41)。各取引記録装置10の取得部21は、集約モデルで指定された期間ごとにサブブロックチェーン5からデータを取得する(ステップS42)。生成部22は、取得部21が取得したデータとメインブロックチェーン1に登録されているデータ集約モデルから、集約データを生成する(ステップS43)。その後、メインブロックチェーン1を共有する取引記録装置10同士が、PBFTプロトコルなどを用いてトランザクションの署名/検証順序を決定する(ステップS44)。署名/検証順序が最初に設定された取引記録装置10は、集約データに対して自装置の秘密鍵を用いて署名を行い、トランザクション(集約トランザクション)を発行する(ステップS45)。このとき、集約トランザクションは、集約トランザクションの発行元以外の全ての取引記録装置10に送信される。集約トランザクションを受信した取引記録装置10の登録処理部33は、受信した集約トランザクション中の集約データについて、自装置が計算した集約データと一致するかを判定する(ステップS45)。
集約トランザクション中の集約データと自装置が計算した集約データが一致したとする(ステップS45で一致)。この場合、登録処理部33は、集約トランザクションに自装置の秘密鍵を用いて署名を行い、署名したトランザクションを集約トランザクションの発行元に送信するためのトランザクションを発行する(ステップS47)。
一方、集約トランザクション中の集約データと自装置が計算した集約データが一致しなかったとする(ステップS45で不一致)。この場合、登録処理部33は、集約トランザクションに署名を行わず、受信したトランザクションを集約トランザクションの発行元に送信するためのトランザクションを発行する(ステップS48)。集約トランザクションの発行元は、各取引記録装置10から受信した検証結果を用いて、最終的なトランザクションを発行する。最終的なトランザクションには、集約トランザクション中の集約データに対して行われた署名が含まれている。集約トランザクションの発行元の取引記録装置10のトランザクション発行部32は、最終的なトランザクションを、メインブロックチェーン1を共有する全ての取引記録装置10に送信する。
各取引記録装置10の登録処理部33は、最終的に発行されたトランザクションについて、署名の検証を行う(ステップS49)。なお、署名の検証の際には、適宜、署名を行った取引記録装置10の公開鍵が用いられる。登録処理部33は、正しい署名が閾値以上あるかを判定する(ステップS50)。正しい署名の数が閾値以上の場合、登録処理部33は、最終的なトランザクションをメインブロックチェーン台帳41に登録する(ステップS50でYes、ステップS51)。一方、正しい署名の数が閾値未満の場合、登録処理部33は処理を終了する(ステップS50でNo)。
このように、第1の実施形態にかかるシステムでは、メインブロックチェーン1には端末6から得られた取引データは含まれず、所定期間ごとに集約された集約データが記録される。すなわち、個々の取引データの代わりに集約データがメインブロックチェーン1に記録される。このため、メインブロックチェーン1に記録される情報の量は、端末6で得られた個々の発電量の計測データの全てを記録する場合に比べて削減される。さらに、端末6で得られた発電量の計測データは、メインブロックチェーン1とは異なるサブブロックチェーン5に記録されているので、発電量の計測データが改ざんされるおそれもない。換言すると、第1の実施形態にかかるシステムでは、メインブロックチェーン1に記録する集約データの計算のもととなる端末6で得られた取引履歴の改ざんも防止されている。さらに、メインブロックチェーン1への集約データの登録は、所定の数以上の取引記録装置10での集約データの計算結果が一致した場合に行われる。このため、メインブロックチェーン1に登録されるデータの信頼性も担保される。
<第2の実施形態>
図13は、第2の実施形態にかかるシステムの例を説明する図である。第2の実施形態では、複数のサブブロックチェーン5を用い、集約データがメインブロックチェーン1に登録された後の取引データを削除する場合について説明する。
第2の実施形態にかかるシステムでは、サブブロックチェーン5aとサブブロックチェーン5bが使用され、個々のサブブロックチェーンノード80(80a、80b)は、サブブロックチェーン5aとサブブロックチェーン5bの両方を共有している。端末6(6a~6e)は、サブブロックチェーンノード80を介してサブブロックチェーン5に計測データを登録する。第2の実施形態でも、第1の実施形態と同様に、取引記録装置10(10a~10d)はメインブロックチェーン1を共有するものとする。
各々のサブブロックチェーンノード80は、共有するサブブロックチェーン5のうちサブブロックチェーンノード80同士で予め設定した所定のサブブロックチェーン5に、端末6から受信した取引データを格納する。例えば、15:30より前の時刻に関する取引データをサブブロックチェーン5aに登録し、15:30以降の時刻に関する取引データをサブブロックチェーン5bに登録することが全てのサブブロックチェーンノード80の間で設定されているとする。この場合、いずれのサブブロックチェーンノード80も、15:30より前に計測された取引データをサブブロックチェーン5aに登録し、15:30以降に計測された取引データをサブブロックチェーン5bに登録する。
図14は、サブブロックチェーンノード80の構成の例を説明する図である。サブブロックチェーンノード80は、サブブロックチェーン制御部85と記憶部70を備える。サブブロックチェーンノード80のハードウェア構成は図4に示すとおりである。また、サブブロックチェーンノード80もコンピュータやサーバ装置として実現され得る。
記憶部70は、サブブロックチェーン台帳71Xとサブブロックチェーン台帳71Yを記憶する。サブブロックチェーン台帳71Xは、「サブBC-X」という識別情報で識別され、サブブロックチェーン5aを用いて共有される情報を保持するものとする。サブブロックチェーン台帳71Yは、「サブBC-Y」という識別情報で識別され、サブブロックチェーン5bを用いて共有される情報を保持するものとする。
サブブロックチェーン制御部85は、トランザクション受信部61、トランザクション発行部62、データ削除判定部86、および、登録処理部87を有する。トランザクション受信部61とトランザクション発行部62は、第1の実施形態のサブブロックチェーンノード50と同様の処理を行う。登録処理部87は、取引データを記録するサブブロックチェーン5の切り替えに関する処理を行う。登録処理部87は、サブブロックチェーン5の切り替えに関する処理を行うために、適宜、サブブロックチェーン5を共有する他のサブブロックチェーンノード80や取引記録装置10と通信する。なお、登録処理部87は、通信先のサブブロックチェーンノード50や取引記録装置10のアドレスなどの情報を予め保持しているか、記憶部70から取得できるものとする。登録処理部87は、端末6から受信したトランザクション中に含まれている取引データを、その取引データの計測時刻に対応付けられたサブブロックチェーン5に登録するための処理を行う。
データ削除判定部86は、メインブロックチェーン1への登録済みの集約データの計算に使用された計測データを削除するための処理を行う。例えば、データ削除判定部86は、サブブロックチェーンノード80が共有するサブブロックチェーン5のうち、集約データの計算に使用されていない計測データを含まないサブブロックチェーン5のサブブロックチェーン台帳71を初期化する。なお、サブブロックチェーン台帳71の初期化のタイミングを他のサブブロックチェーンノード80と合わせるために、データ削除判定部86は適宜、他のサブブロックチェーンノード80や取引記録装置10と通信してもよい。データ削除判定部86も、登録処理部87と同様に、通信先のサブブロックチェーンノード50や取引記録装置10の情報を予め保持しているか、記憶部70から取得できるものとする。
第2の実施形態では、データ集約モデルの中にサブブロックチェーン5の移行基準やサブブロックチェーン5の削除のタイミングを特定する情報が含まれている。サブブロックチェーン5の移行基準は、サブブロックチェーン5の切り替えのタイミング、移行元のサブブロックチェーン5、および、移行先のサブブロックチェーン5を指定可能な任意の情報である。例えば、サブブロックチェーン5の移行基準は、サブブロックチェーン5の切り替え時刻であってもよい。また、サブブロックチェーン5の移行基準は、現用のサブブロックチェーン5に記録される取引データの最大量を指定する値であっても良い。この場合、登録処理部87は、他のサブブロックチェーンノード80との間で適宜トランザクションを送受信することにより、サブブロックチェーン5の切り替えのタイミングを決定してもよい。さらに、移行基準は、特定の時刻を基準として1月ごとなどの所定の期間ごとにサブブロックチェーン5が切り替えられるように設定されてもよい。例えば、2019年6月1日を基準として1か月ごとの15:00にサブブロックチェーン5を切り替えるように移行基準が設定されても良い。
例えば、以下のような情報を含むデータ集約モデルがメインブロックチェーン1に登録されたとする。
移行基準:
時刻2019年6月1日15:00に切り替え実施
移行元サブブロックチェーン :サブBC-Y
移行先サブブロックチェーン :サブBC-X
削除基準:
時刻2019年6月1日18:00に削除実施
データ削除対象のブロックチェーン:サブBC-Y
集約情報
サブBC:サブBC-X
集約対象:測定器名A、測定器名B、測定器名C
集約期間:15:00~15:29
集約方法:測定器ごとに集約期間中のデータの総和を計算
なお、第2の実施形態においても、データ集約モデルのメインブロックチェーン1への登録処理は図8を参照しながら説明した処理と同様である。以下の説明では、データ集約モデルを受信した取引記録装置10は、その取引記録装置10がデータの取得の際にアクセスするサブブロックチェーンノード80のいずれか1つ以上に対して、データ集約モデルを登録した旨を通知するものとする。
以下、サブブロックチェーン5の切り替え処理と切り替え後のサブブロックチェーン5からの情報の削除に分けて第2の実施形態で行われる処理の例を説明する。
(A)サブブロックチェーン5の切り替え処理
図15は、サブブロックチェーン5の切り替え処理の例を説明する図である。図15の例では、取引記録装置10aがクライアント端末7からデータ集約モデルを受信したとする。また、取引記録装置10aは、サブブロックチェーンノード80aに対して、データ集約モデルを受信した旨を通知したとする。図15には、図を簡略化するために、サブブロックチェーンノード80aとサブブロックチェーンノード80bでの処理を記載している。サブブロックチェーン5をサブブロックチェーンノード80aと共有するサブブロックチェーンノード80は、サブブロックチェーンノード80bと同様に動作を行うものとする。さらに、各サブブロックチェーンノード80の登録処理部87は、端末6から受信した取引データを登録するサブブロックチェーン5の識別情報を設定しているとする。すなわち、登録処理部87が登録先として設定している識別情報で識別されるサブブロックチェーン5が現用のサブブロックチェーン5である。図15の最初の段階では、いずれのサブブロックチェーンノード80でも、登録処理部87は「サブBC-Y」(サブブロックチェーン5b)を登録先の識別情報に設定しているとする。
サブブロックチェーンノード80aの登録処理部87aは、取引記録装置10aにアクセスすることにより、メインブロックチェーン台帳41aに登録されたデータ集約モデルに含まれている移行基準を取得する。登録処理部87aは、移行基準を登録するためのトランザクションを生成し、サブブロックチェーンを共有する他のサブブロックチェーンノード80に送信することで、移行基準を共有する(ステップS61)。さらに、登録処理部87aは、移行基準を記憶部70aに登録する(ステップS62)。
移行基準を登録するためのトランザクションを受信したサブブロックチェーンノード80bでは、登録処理部87bが移行基準を記憶部70bに登録する(ステップS63)。サブブロックチェーンノード80の各々においても、登録処理部87は、移行基準を記憶部70に格納する。
移行基準を用いた切り替え処理が行われるまでは、登録処理部87は端末6から受信した計測データを現用のサブブロックチェーン5b(サブBC-Y)に登録する。このときの処理は、例えば、図6を参照しながら説明した処理と同様である。計測データの登録処理と並行して、各サブブロックチェーンノード80の登録処理部87は、一定間隔の時間ごとに、記憶部70に記録されている移行基準を参照して、移行基準を満たしているかを判定する(ステップS64、S65)。
移行基準を満たしたと判定すると、各サブブロックチェーンノード80の登録処理部87は、新しいサブブロックチェーン5の設定を行う(ステップS66)。例えば、時刻2019年6月1日15:00に、各サブブロックチェーンノード80において、登録処理部87はサブブロックチェーン5の移行基準を満たしたと判定する。すると、登録処理部87は、端末6から受信した取引データを登録するサブブロックチェーン5の識別情報を「サブBC-Y」から「サブBC-X」に変更する。このため、取引データの登録先は「サブBC-Y」に対応付けられたサブブロックチェーン台帳71Yから「サブBC-X」に対応付けられたサブブロックチェーン台帳71Xに変更される。従って、取引データの共有に使用されるサブブロックチェーン5が、サブブロックチェーン5bからサブブロックチェーン5aに変更される。
ステップS66の処理後にサブブロックチェーンノード80aに端末6から計測データを含むトランザクションが送信されたとする。登録処理部87aは、トランザクション受信部61aを介してトランザクション中の計測データを取得すると、計測データをサブブロックチェーン台帳71Xに登録する(ステップS67)。このため、計測データがサブブロックチェーン5aに登録される。
ステップS66の処理後にサブブロックチェーンノード80bにも端末6から計測データを含むトランザクションが送信されたとする。この場合も、登録処理部87bは、トランザクション中の計測データをサブブロックチェーン台帳71Xに登録する(ステップS68)。このため、計測データがサブブロックチェーン5aに登録される。
次に、各サブブロックチェーン5からのデータの取得処理について説明する。第2の実施形態では、各取引記録装置10の取得部21はデータの取得先とするサブブロックチェーン5を、データ集約モデルに含まれているサブブロックチェーン5の識別情報を用いて特定する。取得部21は、取得対象のデータを要求する際に、データの要求先のサブブロックチェーンノード80に対して、データを取得するサブブロックチェーン5の識別情報、データを測定した測定器名、測定時刻を通知する。サブブロックチェーンノード80のトランザクション発行部62は、通知された識別情報に対応付けられたサブブロックチェーン台帳71から、通知された条件に合致する情報を取得して、要求元の取引記録装置10に送信する。
例えば、取引記録装置10aの取得部21aは、識別情報=サブBC-X、集約対象=測定器名A~C、集約期間=15:00~15:29という情報をサブブロックチェーンノード80aに送信する。すると、トランザクション受信部61aは、通知された識別情報などの情報をトランザクション発行部62aに通知する。トランザクション発行部62aは、識別情報=サブBC-Xであることから、サブブロックチェーン台帳71Xをデータの検索先とする。トランザクション発行部62aは、集約対象=測定器名A~C、集約期間=15:00~15:29を満たす計測データをサブブロックチェーン台帳71Xから抽出し、取引記録装置10aに送信する。他の取引記録装置10とサブブロックチェーンノード80の間でも、同様に集約データの計算用のデータの取得処理が行われる。なお、集約データの生成、集約データの検証と登録は、第2の実施形態においても第1の実施形態と同様に行われる。
(B)サブブロックチェーン5からの情報の削除
次に、切り替え後に計測データの登録に使用されなくなったサブブロックチェーン5からの情報の削除処理の例を説明する。データ集約モデルが登録されると、各サブブロックチェーンノード80のデータ削除判定部86は、一定間隔の時間ごとに、記憶部70に記録されている削除基準を参照して、削除基準を満たしているかを判定する。削除基準を満たしたと判定すると、各サブブロックチェーンノード80のデータ削除判定部86は、削除対象のデータを保持しているサブブロックチェーン5のサブブロックチェーン台帳71を初期化する。
例えば、時刻2019年6月1日18:00に、サブブロックチェーンノード80aのデータ削除判定部86aはサブブロックチェーン5の削除基準を満たしたと判定する。データ集約モデルでは、削除基準で削除の対象とされているサブブロックチェーン5の識別情報は「サブBC-Y」である。そこで、データ削除判定部86aは、「サブBC-Y」に対応付けられたサブブロックチェーン台帳71Yの情報を削除して初期化する。サブブロックチェーンノード80a以外のサブブロックチェーンノード80も同様に処理を行うので、時刻2019年6月1日18:00を経過すると、サブブロックチェーン5bを共有している全てのサブブロックチェーンノード80において、サブブロックチェーン台帳71Yが初期化され、計測データが削除される。なお、サブブロックチェーン台帳71Yの初期化では、サブブロックチェーン台帳71Yに含まれている計測データだけでなく、チェーン情報を用いてつなげられたブロック全体も削除される。従って、サブブロックチェーン台帳71Yを初期化することにより、サブブロックチェーン5bに含まれる全てのブロックの情報が削除されるので、サブブロックチェーン5b自体が削除されることになる。
(C)処理フロー
図16は、サブブロックチェーン5の切り替え処理の例を説明するフローチャートである。クライアントは、クライアント端末7を用いてサブブロックチェーン5の移行や削除を行うための基準を取引記録装置10に通知する(ステップS81)。ここで、サブブロックチェーン5の移行や削除を行うための基準は、データ集約モデルに含まれていても良い。サブブロックチェーンノード80中の登録処理部87は、取引記録装置10からサブブロックチェーン5の移行の基準と削除基準を取得する(ステップS82)。各サブブロックチェーンノード80は、移行基準を用いてデータを登録するサブブロックチェーン台帳71を変更する(ステップS83)。その後、サブブロックチェーンノード80は、削除基準を用いて、現在使用していないサブブロックチェーン5のサブブロックチェーン台帳71のデータを削除する(ステップS84)。
なお、図16は処理の一例であり、実装に応じて処理が変更され得る。例えば、図15などを参照しながら説明したように、一部のサブブロックチェーンノード80が取引記録装置10から削除基準や移行基準を取得してサブブロックチェーンノード80間でこれらの基準を共有しても良い。さらに、ステップS84において、使用していないサブブロックチェーン5のサブブロックチェーン台帳71を削除する代わりに、サブブロックチェーン台帳71を初期化してもよい。
このように、第2の実施形態にかかるシステムでは、集約データがメインブロックチェーン1に登録された後の取引データを含むサブブロックチェーン5の情報を削除することができる。このため、第2の実施形態によると、サブブロックチェーン5を共有するサブブロックチェーンノード80においても、端末6から通知された計測データを記録し続けることによるサブブロックチェーン5の肥大化を防ぐことができる。従って、サブブロックチェーン5の肥大化によりサブブロックチェーン台帳71のデータ量が大きくなることにより、サブブロックチェーンノード80が保持するメモリ領域を消費することを防ぐことができる。従って、第2の実施形態では、メモリの容量が比較的小さい装置でもサブブロックチェーンノード80として使用可能である。
さらに、第2の実施形態でも、メインブロックチェーン1には端末6から得られた取引データは含まれず、所定期間ごとに集約された集約データが記録される。このため、メインブロックチェーン1の肥大化も防止される。ここで、第2の実施形態でも第1の実施形態と同様に、メインブロックチェーン1への登録は、所定の数以上の取引記録装置10での集約データの計算結果が一致した場合に行われるので、メインブロックチェーン1に登録されるデータの信頼性も担保される。
<その他>
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
以上の説明は、端末6が発電量測定メータであり、取引データが発電量である場合を例として説明したが、取引データや端末6の種類は実装に応じて任意に変更され得る。また、集約データの計算方法も、取引データの種類や取引データの使用形態に応じて任意に変更され得る。
システム中の端末6の数が多い場合などには、複数のサブブロックチェーン5が使用され得る。例えば、第1の実施形態において、端末6a~6eの他に、端末6f~6n(図示せず)も取引データの計測を行っているとする。この状態で各端末6がサブブロックチェーンノード50を介してサブブロックチェーン5に取引データを登録することができる。例えば、端末6f~6iはサブブロックチェーンノード50c~50f(図示せず)を介してサブブロックチェーン5bに取引データを登録できる。さらに、端末6j~6nは、サブブロックチェーンノード50g~50j(図示せず)を介してサブブロックチェーン5cに取引データを登録できる。この場合においても、各取引記録装置10の取得部21には、データ取得先となるサブブロックチェーンノード50のアドレスなどの情報が設定されているものとする。また、第2の実施形態においても、第1の実施形態と同様に、計測データの記録に複数のサブブロックチェーン5を同時に使用してもよい。
以上の説明では、取引記録装置10をサブブロックチェーンノード50、80とは異なる装置として説明したが、取引記録装置10はサブブロックチェーンノード50、80としても動作しても良い。例えば、プロセッサ101の処理能力が高く、メモリ102および記憶装置106の容量の大きいコンピュータが、取引記録装置10とサブブロックチェーンノード50の両方として動作してもよい。
以上の説明では、合意形成や検証の手順にPBFTプロトコルを使用する場合を例として説明したが、任意のブロックチェーンプロトコルの手順に従って合意形成や検証が行われ得る。また、各ブロックチェーンを共有する装置(取引記録装置10、サブブロックチェーンノード50、80)の数は実装に応じて任意に変更され得る。
以上の説明では、取引記録装置10が暗号化に使用する秘密鍵を保持する場合について説明したが、実装に応じて秘密鍵の保管方法も変更され得る。例えば、一部の取引記録装置10は、他の取引記録装置10に保持されている秘密鍵をネットワーク経由で取得して暗号化に使用するように変更され得る。
1 メインブロックチェーン
5 サブブロックチェーン
6 端末
7 クライアント端末
10 取引記録装置
15 制御部
20 集約処理部
21 取得部
22 生成部
30 メインブロックチェーン制御部
31、61 トランザクション受信部
32、62 トランザクション発行部
33、63 登録処理部
40、70 記憶部
41 メインブロックチェーン台帳
42 設定情報
43 公開鍵情報
50 サブブロックチェーンノード
60 サブブロックチェーン制御部
71 サブブロックチェーン台帳
101 プロセッサ
102 メモリ
103 入力装置
104 出力装置
105 バス
106 記憶装置
107 可搬記憶媒体駆動装置
108 可搬記憶媒体
109 ネットワークインタフェース

Claims (6)

  1. 第1のブロックチェーンを共有するネットワークに参加する取引記録装置であって、
    取引時刻と前記取引時刻に行われた取引に関するデータが登録された第2のブロックチェーンから情報を取得する取得部と、
    前記取得部が取得した前記情報を用いて、所定の期間中に行われた前記取引に関するデータを集約した集約データを生成する生成部と、
    前記集約データが、前記ネットワークに参加している他の取引記録装置での前記所定の期間中に行われた前記取引に関するデータから生成された他の集約データと一致する場合に、前記集約データを前記第1のブロックチェーンに登録する登録処理部
    を備え、
    前記第2のブロックチェーンが所定の移行基準を満たすと、前記取引を行う装置から取得した前記取引時刻と前記取引に関するデータの登録先を前記第2のブロックチェーンから第3のブロックチェーンに切り替えるノード装置が、前記取得部の通信先である場合、前記取得部は、
    前記第1のブロックチェーンを介して前記集約データの計算に使用する取引データを記録したブロックチェーンの識別情報を取得し、
    前記第2のブロックチェーンと前記第3のブロックチェーンのうち、前記識別情報で識別されるブロックチェーンから、前記所定の期間中に行われた前記取引に関するデータを取得する
    ことを特徴とする取引記録装置
  2. 第1のブロックチェーンを共有するネットワークに参加する取引記録装置であって、
    取引時刻と前記取引時刻に行われた取引に関するデータが登録された第2のブロックチェーンから情報を取得する取得部と、
    前記取得部が取得した前記情報を用いて、所定の期間中に行われた前記取引に関するデータを集約した集約データを生成する生成部と、
    前記集約データが、前記ネットワークに参加している他の取引記録装置での前記所定の期間中に行われた前記取引に関するデータから生成された他の集約データと一致する場合に、前記集約データを前記第1のブロックチェーンに登録する登録処理部
    を備え、
    前記登録処理部は、前記所定の期間と前記集約データの計算方法を示す情報を取得すると、前記所定の期間と前記集約データの計算方法を前記第1のブロックチェーンに登録し、
    前記取得部は、前記第1のブロックチェーンを介して前記所定の期間を取得することにより、前記所定の期間に行われた取引に関するデータを取得し、
    前記生成部は、前記第1のブロックチェーンを介して取得した前記計算方法を用いて、前記取得部が取得した情報を処理することにより前記集約データを生成する
    ことを特徴とする取引記録装置
  3. 前記第1のブロックチェーンは、前記所定の期間中に行われた前記取引に関するデータの代わりに前記集約データを保持する
    ことを特徴とする請求項1または2に記載の取引記録装置。
  4. 前記集約データを前記ネットワーク中の他の取引記録装置に通知する集約トランザクションを発行するトランザクション発行部をさらに備え、
    前記登録処理部は、前記集約トランザクションに前記ネットワーク中の前記他の取引記録装置が前記集約データと同じ集約結果を得たことを示す署名が所定数以上追加されたトランザクションを取得すると、前記集約データが前記他の集約データと一致すると判定する
    ことを特徴とする請求項1~3のいずれか1項に記載の取引記録装置。
  5. 第1のブロックチェーンを共有するネットワークに参加する取引記録装置が、
    取引時刻と前記取引時刻に行われた取引に関するデータが登録された第2のブロックチェーンから情報を取得し、
    取得した前記情報を用いて、所定の期間中に行われた前記取引に関するデータを集約した集約データを生成し、
    前記集約データが、前記ネットワークに参加している他の取引記録装置での前記所定の期間中に行われた前記取引に関するデータから生成された他の集約データと一致する場合に、前記集約データを前記第1のブロックチェーンに登録し、
    前記第2のブロックチェーンが所定の移行基準を満たすと、前記取引を行う装置から取得した前記取引時刻と前記取引に関するデータの登録先を前記第2のブロックチェーンから第3のブロックチェーンに切り替えるノード装置が、前記情報の取得先である場合、
    前記第1のブロックチェーンを介して前記集約データの計算に使用する取引データを記録したブロックチェーンの識別情報を取得し、
    前記第2のブロックチェーンと前記第3のブロックチェーンのうち、前記識別情報で識別されるブロックチェーンから、前記所定の期間中に行われた前記取引に関するデータを取得する
    ことを特徴とする取引記録方法。
  6. 第1のブロックチェーンを共有するネットワークに参加する取引記録装置に、
    取引時刻と前記取引時刻に行われた取引に関するデータが登録された第2のブロックチェーンから情報を取得し、
    取得した前記情報を用いて、所定の期間中に行われた前記取引に関するデータを集約した集約データを生成し、
    前記集約データが、前記ネットワークに参加している他の取引記録装置での前記所定の期間中に行われた前記取引に関するデータから生成された他の集約データと一致する場合に、前記集約データを前記第1のブロックチェーンに登録し、
    前記第2のブロックチェーンが所定の移行基準を満たすと、前記取引を行う装置から取得した前記取引時刻と前記取引に関するデータの登録先を前記第2のブロックチェーンから第3のブロックチェーンに切り替えるノード装置が、前記情報の取得先である場合、
    前記第1のブロックチェーンを介して前記集約データの計算に使用する取引データを記録したブロックチェーンの識別情報を取得し、
    前記第2のブロックチェーンと前記第3のブロックチェーンのうち、前記識別情報で識別されるブロックチェーンから、前記所定の期間中に行われた前記取引に関するデータを取得する
    処理を行わせることを特徴とする取引記録プログラム。
JP2019167925A 2019-09-17 2019-09-17 取引記録装置、取引記録方法、および、取引記録プログラム Active JP7322621B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019167925A JP7322621B2 (ja) 2019-09-17 2019-09-17 取引記録装置、取引記録方法、および、取引記録プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019167925A JP7322621B2 (ja) 2019-09-17 2019-09-17 取引記録装置、取引記録方法、および、取引記録プログラム

Publications (2)

Publication Number Publication Date
JP2021048430A JP2021048430A (ja) 2021-03-25
JP7322621B2 true JP7322621B2 (ja) 2023-08-08

Family

ID=74876637

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019167925A Active JP7322621B2 (ja) 2019-09-17 2019-09-17 取引記録装置、取引記録方法、および、取引記録プログラム

Country Status (1)

Country Link
JP (1) JP7322621B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7393484B1 (ja) * 2022-07-29 2023-12-06 Kddi株式会社 情報処理装置及び情報処理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160027229A1 (en) 2014-07-25 2016-01-28 Blockchain Technologies Corporation System and method for securely receiving and counting votes in an election
JP5858506B1 (ja) 2015-04-09 2016-02-10 株式会社Orb 仮想通貨管理プログラム、及び仮想通貨管理方法
US20180218003A1 (en) 2017-01-30 2018-08-02 General Electric Company Ephemeral blockchain data structure
JP6478361B1 (ja) 2018-08-11 2019-03-06 株式会社bitFlyer ブロックチェーン・ネットワーク及びそのための確定方法
WO2019072301A2 (en) 2018-12-21 2019-04-18 Alibaba Group Holding Limited VERIFYING THE INTEGRITY OF STORED DATA IN A CONSORTIUM BLOCK CHAIN USING A PUBLIC SECONDARY CHAIN

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160027229A1 (en) 2014-07-25 2016-01-28 Blockchain Technologies Corporation System and method for securely receiving and counting votes in an election
JP5858506B1 (ja) 2015-04-09 2016-02-10 株式会社Orb 仮想通貨管理プログラム、及び仮想通貨管理方法
US20180218003A1 (en) 2017-01-30 2018-08-02 General Electric Company Ephemeral blockchain data structure
JP6478361B1 (ja) 2018-08-11 2019-03-06 株式会社bitFlyer ブロックチェーン・ネットワーク及びそのための確定方法
WO2019072301A2 (en) 2018-12-21 2019-04-18 Alibaba Group Holding Limited VERIFYING THE INTEGRITY OF STORED DATA IN A CONSORTIUM BLOCK CHAIN USING A PUBLIC SECONDARY CHAIN

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ビットバンク株式会社,ブロックチェーンの衝撃,第1版,日本,日経BP社,2016年06月13日,p.242

Also Published As

Publication number Publication date
JP2021048430A (ja) 2021-03-25

Similar Documents

Publication Publication Date Title
US10944570B2 (en) Method and server for providing notary service for file and verifying file recorded by notary service
US20220198410A1 (en) Providing data provenance, permissioning, compliance, and access control for data storage systems using an immutable ledger overlay network
US10235538B2 (en) Method and server for providing notary service for file and verifying file recorded by notary service
Li et al. OPoR: Enabling proof of retrievability in cloud computing with resource-constrained devices
EP3726412B1 (en) Selectively verifying personal data
JP6756041B2 (ja) 情報保護用のシステム及び方法
CN111556120B (zh) 基于区块链的数据处理方法、装置、存储介质及设备
US9712327B1 (en) System and method for remote storage auditing
US10887104B1 (en) Methods and systems for cryptographically secured decentralized testing
CN111740966B (zh) 一种基于区块链网络的数据处理方法及相关设备
KR102074381B1 (ko) 블록체인 기반의 익명 거래 수행 방법, 장치 및 기록 매체
TW202034247A (zh) 向區塊鏈系統提供交易資料以進行處理的方法和設備
US11409907B2 (en) Methods and systems for cryptographically secured decentralized testing
CN110417790A (zh) 区块链实名制排队系统及方法
JP7322621B2 (ja) 取引記録装置、取引記録方法、および、取引記録プログラム
CN110278246A (zh) 一种针对联盟链的存证业务转移方法、装置及设备
WO2019186978A1 (ja) 電子取引システム、取引サーバ、検証サーバ、電子取引方法及びプログラム
He et al. DIV-SC: A data integrity verification scheme for centralized database using smart contract
KR102294569B1 (ko) 블록체인 네트워크를 구축할 수 있는 블록체인 관리시스템
KR102494873B1 (ko) 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 거래 수행장치
CA3011477A1 (en) Method, system, and device for selecting a winner of a raffle based on content from raffle tickets
AU2019101581A4 (en) System and method for information protection
JP6901373B2 (ja) ユーザ管理装置、ユーザ管理システム
WO2021112178A1 (ja) 検知装置、改ざん検知システム、中央サーバ、参加者サーバ、改ざん検知方法、及びプログラム
CN108965051A (zh) 一种通过区块链服务器进行设备调试的方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220609

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230329

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230614

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230627

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230710

R150 Certificate of patent or registration of utility model

Ref document number: 7322621

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150