(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-06
(45)【発行日】2023-09-14
(54)【発明の名称】有価物管理システム
(51)【国際特許分類】
H04L 9/32 20060101AFI20230907BHJP
G06F 21/60 20130101ALI20230907BHJP
G06F 21/64 20130101ALI20230907BHJP
【FI】
H04L9/32 200Z
G06F21/60 320
G06F21/60 340
G06F21/64
(21)【出願番号】P 2019130138
(22)【出願日】2019-07-12
【審査請求日】2022-05-27
(73)【特許権者】
【識別番号】319002393
【氏名又は名称】シスナ株式会社
(74)【代理人】
【識別番号】100094569
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100109335
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100176418
【氏名又は名称】工藤 嘉晃
(72)【発明者】
【氏名】杉浦 伸一
(72)【発明者】
【氏名】中原 伸之
(72)【発明者】
【氏名】浅野 美香
【審査官】岸野 徹
(56)【参考文献】
【文献】特開2000-113083(JP,A)
【文献】特開2018-132931(JP,A)
【文献】特開2019-105903(JP,A)
【文献】特開平11-250164(JP,A)
【文献】特表2007-531127(JP,A)
【文献】米国特許出願公開第2016/0071096(US,A1)
【文献】国際公開第2002/050789(WO,A1)
【文献】国際公開第2018/174112(WO,A1)
【文献】国際公開第2011/102080(WO,A1)
【文献】沖野 健一,分散台帳技術のセキュリティ要件:銀行口座振替処理への適用,日本銀行 金融研究所ディスカッション・ペーパー・シリーズ IMES DISCUSSION PAPER,日本銀行,2017年03月23日,pp.1-19
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06F 21/60
G06F 21/64
(57)【特許請求の範囲】
【請求項1】
端末と、
前記端末と第1のネットワークを介して接続されたコロニーサーバと、
前記コロニーサーバと第2のネットワークを介して接続されたセンターサーバと
を少なくとも備え、
前記端末は、有価物に関する取引要求を前記コロニーサーバに送信し、
前記コロニーサーバは、前記有価物に関する取引要求に応じて取得又は生成した有価物データを先頭から所定のサイズまでのデータを含む部分データと、
前記所定のサイズ+1以降のデータを含む本体データとに分割して、前記部分データを前記センターサーバに送信する分割送信部と、
前記センターサーバからブロックハッシュ値を受け取り、前記本体データに関連付けて前記ブロックハッシュ値を前記本体データのハッシュ値として記憶する本体データ管理部と
を含み、
前記センターサーバは、前記部分データを暗号化し、前記暗号化した部分データを暗号化キーとして記憶したブロックを生成して、前記ブロックをブロックチェーンに追加する部分データ管理部と、
所定の間隔で前記ブロックのブロックハッシュ値を更新して、前記更新されたブロックハッシュ値を前記コロニーサーバに送信するハッシュ通知部と
を含み、
前記本体データ管理部は、前記本体データのハッシュ値を、前記ハッシュ通知部から前記所定の間隔で送信されるブロックハッシュ値に更新する、
有価物管理システム。
【請求項2】
前記ブロックチェーンにおけるブロックは、当該ブロックに新たにブロックを接続することが可能な場合に有効を示し、接続することが可能でない場合に無効を示すフラグを含み、
前記部分データ管理部は、新たにブロックを接続する際に、接続先のブロックの前記フラグが有効である否かを判断し、前記フラグが有効である場合に、新たなブロックを生成し、前記新たなブロックに、少なくとも前記暗号化キーと、接続先のブロックのブロックハッシュと、前記新たなブロックのブロックハッシュとを記憶して、前記新たなブロックが前記接続先のブロックに接続された場合に、前記接続先のブロックの前記フラグを無効にし、前記新たなブロックに、初期値として有効を示すフラグを更に記憶する、
請求項1に記載の有価物管理システム。
【請求項3】
前記部分データ管理部は、前記部分データの他に、前記有価物データのファイル名及び取引日時の少なくとも一方を含めて、暗号化を行い、
前記暗号化キーは、前記部分データの他に、前記ファイル名及び前記取引日時の少なくとも一方を含む、
請求項1又は2に記載の有価物管理システム。
【請求項4】
前記有価物に関する取引要求は、前記端末においてアップロードされた、前記有価物に対応する有価物データを含む、
請求項1から3のいずれか1項に記載の有価物管理システム。
【請求項5】
前記有価物に関する取引要求は、前記コロニーサーバにおいて前記有価物に対応する有価物データを生成させる要求である、
請求項1から3のいずれか1項に記載の有価物管理システム。
【請求項6】
前記所定のサイズは、前記有価物データの先頭から30バイト以下である、
請求項1から5のいずれか1項に記載の有価物管理システム。
【請求項7】
前記所定の間隔は、24時間以下の間隔である、
請求項1から6のいずれか1項に記載の有価物管理システム。
【請求項8】
前記第1のネットワークはインターネットであり、前記第2のネットワークはクローズドネットワークである、
請求項1から7のいずれか1項に記載の有価物管理システム。
【請求項9】
前記ブロックチェーンの改ざんを監視する監視ボットをさらに含み、
前記監視ボットが、前記ブロックチェーンにおける1つのブロックの改ざんを見つけた場合に、前記1つのブロック以降のブロックの各々を無効化する、
請求項1から8のいずれか1項に記載の有価物管理システム。
【請求項10】
前記ブロックチェーンの修復を行う修復ボットをさらに含み、
前記1つのブロック以降のブロックの各々が無効化された後、
前記修復ボットが、前記ブロックチェーンとは独立して管理された帳簿データベースを参照して、前記ブロックチェーンにおけるブロックを修復する、
請求項9に記載の有価物管理システム。
【請求項11】
前記コロニーサーバの分割送信部は、前記有価物データを先頭から所定のサイズまでのデータに代えて、前記有価物データの任意の一部分から所定のサイズのデータを前記部分データとし、
前記所定のサイズ+1以降のデータに代えて、前記有価物データの前記任意の一部分以外の残余部分のデータを前記本体データとするように分割する、
請求項1から10のいずれか1項に記載の有価物管理システム。
【請求項12】
端末と、
前記端末と第1のネットワークを介して接続されたコロニーサーバと、
前記コロニーサーバと第2のネットワークを介して接続されたセンターサーバと
を少なくとも備え有価証券システムによって実行される有価物管理方法において、
前記端末が有価物に対する取引要求を前記コロニーサーバに送信するステップと、
前記コロニーサーバが前記有価物に関する取引要求に応じて取得又は生成した有価物データを先頭から所定のサイズまでのデータを含む部分データと、前記所定のサイズ+1以降のデータを含む本体データとに分割して、前記部分データを前記センターサーバに送信するステップと、
前記センターサーバが、前記部分データを暗号化するステップと、
前記センターサーバが、前記暗号化した部分データを暗号化キーとして記憶したブロックを生成して、前記ブロックをブロックチェーンに追加するステップと、
前記センターサーバが、
所定の間隔で前記ブロックのブロックハッシュ値を更新して、前記更新されたブロックハッシュ値を前記コロニーサーバに送信するステップと
を含み、
前記コロニーサーバが、前記本体データのハッシュ値を、前記センターサーバから前記所定の間隔で送信されるブロックハッシュ値に更新する、
有価物管理方法。
【請求項13】
前記ブロックチェーンにおけるブロックは、当該ブロックに新たにブロックを接続することが可能な場合に有効を示し、接続することが可能でない場合に無効を示すフラグを含み、
前記センターサーバは、前記ブロックをブロックチェーンに追加するステップにおいて、新たにブロックを接続する際に、接続先のブロックの前記フラグが有効である否かを判断し、前記フラグが有効である場合に、新たなブロックを生成し、前記新たなブロックに、少なくとも前記暗号化キーと、接続先のブロックのブロックハッシュと、前記新たなブロックのブロックハッシュとを記憶して、前記新たなブロックが前記接続先のブロックに接続された場合に、前記接続先のブロックの前記フラグを無効にし、前記新たなブロックに、初期値として有効を示すフラグを更に記憶する、
請求項
12に記載の有価物管理方法。
【請求項14】
前記センターサーバは、前記部分データを暗号化するステップにおいて、前記部分データの他に、前記有価物データのファイル名及び取引日時の少なくとも一方を含めて、暗号化を行い、
前記暗号化キーは、前記部分データの他に、前記ファイル名及び前記取引日時の少なくとも一方を含む、
請求項
12又は
13に記載の有価物管理方法。
【請求項15】
前記有価物に関する取引要求は、前記端末においてアップロードされた、前記有価物に対応する有価物データを含む、
請求項
12から
14のいずれか1項に記載の有価物管理方法。
【請求項16】
前記有価物に関する取引要求は、前記コロニーサーバにおいて前記有価物に対応する有価物データを生成させる要求である、
請求項
12から
15のいずれか1項に記載の有価物管理方法。
【請求項17】
前記所定のサイズは、前記有価物データの先頭から30バイト以下である、
請求項
12から
15のいずれか1項に記載の有価物管理方法。
【請求項18】
前記所定の間隔は、24時間以下の間隔である、
請求項
12から
17のいずれか1項に記載の有価物管理方法。
【請求項19】
前記第1のネットワークはインターネットであり、前記第2のネットワークはクローズドネットワークである、
請求項
12から
18のいずれか1項に記載の有価物管理方法。
【請求項20】
前記コロニーサーバが前記有価物に関する取引要求に応じて取得又は生成した有価物データを先頭から所定のサイズまでのデータを含む部分データと、前記所定のサイズ+1以降のデータを含む本体データとに分割して、前記部分データを前記センターサーバに送信するステップは、
前記有価物データを先頭から所定のサイズまでのデータに代えて、前記有価物データの任意の一部分から所定のサイズのデータを前記部分データとし、
前記所定のサイズ+1以降のデータに代えて、前記有価物データの前記任意の一部分以外の残余部分のデータを前記本体データとするように分割する、
請求項12から19のいずれか1項に記載の有価物管理方法。
【請求項21】
有価物に関する取引要求を受け取る手段と、
前記有価物に関する取引要求に応じて取得又は生成した有価物データを先頭から所定のサイズまでのデータを含む部分データと、前記所定のサイズ+1以降のデータを含む本体データとに分割して、前記部分データをセンターサーバに送信する分割送信手段と、
前記センターサーバからブロックハッシュ値を受け取り、前記本体データに関連付けて前記ブロックハッシュ値を前記本体データのハッシュ値として記憶する本体データ管理手段と
を含み、
前記本体データのハッシュ値は、前記センターサーバから所定の間隔で送信されるブロックハッシュ値で更新される、
コロニーサーバ装置。
【請求項22】
前記分割送信手段は、前記有価物データを先頭から所定のサイズまでのデータに代えて、前記有価物データの任意の一部分から所定のサイズのデータを前記部分データとし、
前記所定のサイズ+1以降のデータに代えて、前記有価物データの前記任意の一部分以外の残余部分のデータを前記本体データとするように分割する、
請求項21に記載のコロニーサーバ装置。
【請求項23】
コロニーサーバから、有価物データを先頭から所定のサイズまでのデータを含む部分データを受け取る手段と、
前記部分データを暗号化する暗号化手段と、
前記暗号化した部分データを暗号化キーとして記憶したブロックを生成して、前記ブロックをブロックチェーンに追加するブロックチェーン管理手段と、
所定の間隔で前記ブロックのブロックハッシュ値を更新して、前記更新されたブロックハッシュ値を前記コロニーサーバに送信するハッシュ通知手段と
を含み、
前記ブロックハッシュ値は、前記コロニーサーバにおいて前記所定のサイズ+1以降のデータを含む本体データのハッシュ値として記憶される、
センターサーバ装置。
【請求項24】
前記部分データは、前記有価物データを先頭から所定のサイズまでのデータに代えて、前記有価物データの任意の一部分から所定のサイズのデータを含み、
前記本体データは、前記所定のサイズ+1以降のデータに代えて、前記有価物データの前記任意の一部分以外の残余部分のデータを含む、
請求項
23に記載のセンターサーバ装置。
【請求項25】
コンピュータによって実行されることで、前記コンピュータを請求項21又は22に記載のコロニーサーバ装置の各手段として機能されるプログラム。
【請求項26】
コンピュータによって実行されることで、前記コンピュータを請求項23又は24に記載のセンターサーバ装置の各手段として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、インターネット等のネットワークを介して暗号資産、仮想通貨、電子通貨、有価証券等の有価物データを、クラウドを構成する複数のサーバで安全に保存し、利用者が使用する情報処理端末からの要求に応じて、当該端末に有価物データを適宜取得させることを可能にするためのシステム、方法、装置及びプログラムに関する。
【0002】
具体的には、本発明は、利用者のスマートフォン、コンピュータ等の情報処理端末とインターネット等のネットワークを介して接続されたサーバ(以下、「コロニーサーバ」という)が、利用者の情報処理端末からアップロードされた有価物データを、先頭から所定のサイズまでのデータを含む部分データと、それ以降のデータを含む本体データとに分割して、コロニーサーバとクローズドネットワークを介して接続されたサーバ(以下、「センターサーバ」という)に部分データを送信し、センターサーバは受信した部分データを暗号化して、ブロックチェーンの1ブロックとして記憶し、部分データのハッシュ値を所定の間隔で更新するとともに、本体データのハッシュ値を部分データのものと同じ値に更新することで、高度なセキュリティを実現しつつ、有価物データを安全に流通させることを可能にする技術に関する。
【背景技術】
【0003】
従来、金融商品等の取引は、金融機関や政府などの信頼できる中央集権機関を経由して実施されてきたが、近年、利用者間のP2P(Peer to Peer)によって直接的な取引に代替する技術として、ブロックチェーンを用いた分散台帳技術がある。
【0004】
分散台帳技術は、主に、分散台帳システムへの参加者間の取引において、中央集権機関ではなく(任意ないしは特定の)参加者による合意形成や承認によって取引を確定させることができる。また、分散台帳技術は、複数のトランザクションをブロックとしてまとめ、数珠つなぎにブロックチェーンと呼ばれる分散台帳に記録し、連続するブロックにハッシュ計算を施すことにより、改ざんを実質不可能にすることができる。さらに、分散台帳技術は、参加者全員が同一の台帳データを共有することにより、参加者全員での取引の確認を可能とする。
【0005】
以上のような特徴から、ブロックチェーン等の分散台帳技術は、信頼できるデータの管理及び共有や、契約に基づく取引の執行及び管理を行う仕組みとして、金融分野やIoT(Internet of Thing)等の幅広い分野での応用が検討されている。その1つの応用例として、ビットコイン等の暗号資産の取引には、既にブロックチェーン等の分散台帳技術が実装されている。暗号資産は、仮想通貨とも呼ばれている。
【0006】
スマートフォン等の情報処理端末を用いて、ネットワーク経由によるオンラインで、利用者が暗号資産(仮想通貨、種々の金融商品等)を売買する電子商取引では、その取引記録をブロックチェーン上に記録することができる。例えば、特開2019-106639号公報(特許文献1)には、上記のような電子商取引をブロックチェーン上で行うことが可能な電子商取引装置等が記載されており、ブロックチェーン上では、当事者間の信頼関係や第三者への信頼が存在しなくても、取引記録の改竄困難性などから、コンテンツの持ち逃げ等を防ぐことができる。
【先行技術文献】
【特許文献】
【0007】
【発明の概要】
【発明が解決しようとする課題】
【0008】
上記のように、暗号資産の電子商取引は、ブロックチェーンを用いることで実現することができるが、ブロックチェーンでは、取引の公正性が、当該ブロックチェーンを構成する各ノードによって保証されるため、取引の内容が基本的に公開されるという性質が有るため、悪意のある者がブロックチェーンのシステム的な脆弱性を探すことは可能である。そして、脆弱性が見つかった場合に、その脆弱性を突いて不正アクセス等で意図しない第三者に暗号資産を流出させることは現実に起こり得るため、ブロックチェーンのセキュリティ対策が十分であるとはいえない。
【0009】
また、ブロックチェーン上に記録される取引の公正性を保証するためには、コンピュータによって、ブロックチェーンにおける複数のブロックの各々が正しい記録であることを検証する検証作業が必要になる。例えば、ビットコインで採用されているプルーフオブワーク(POW)という仕組みでは、ブロックチェーンに新たなブロックを追加するために、ナンス(nonce)と呼ばれる値を総当たり式に変化させて、所定の条件を満たすハッシュ値(例えば、一定回数の「0」の連続から始まるハッシュ値)を算出するのに、コンピュータの膨大な計算が必要となり、その計算ために大量の電力が消費されることになる。
【0010】
これらの課題を解決するために、本発明では、暗号資産、有価証券等の有価物データをクラウド上で安全に保存し、オンラインで適宜利用者に配布するために、端末と、コロニーサーバと、センターサーバとを少なくとも備える有価物管理システムを提供する。本発明に係る有価物管理システムにおいて、コロニーサーバが端末から受信した有価物データを先頭から所定のサイズまでのデータを含む部分データを記憶し、センターサーバが所定のサイズ+1以降のデータを含む本体データを記憶することで、有価物データを部分データと本体データとに分散させて管理するだけでなく、不正アクセス等によってコロニーサーバから本体データが流出したとしても、そもそも本体データは、有価物データの一部のデータでしかなく、本体データのみでは無価値なものである。このように、本発明では、たとえコロニーサーバから本体データが不正に流出したとしても、実質的な被害を受けることのない堅牢なセキュリティを実現した有価物管理システム、方法、装置及びプログラム(以下、単に「有価物システム等」ともという)を提供する。
【0011】
また、本発明では、センターサーバは受信した部分データを暗号化して、ブロックチェーンの1ブロックとして記憶し、部分データのハッシュ値を所定の間隔で更新するとともに、コロニーサーバにおける本体データのハッシュ値を部分データのハッシュ値と同じ値に更新させることで、不正アクセス等によってコロニーサーバから本体データが流出した場合であっても、当該本体データと対となる部分データを含む暗号化キーを特定しようとしても、暗号化キーのハッシュ値は所定の間隔で更新されるため、不正に流出した本体データに含まれるハッシュ値に一致するハッシュ値を含む暗号化キーは存在しなくなり、不正に流出した本体データから有価物データを復元することを不可能にする有価物管理システム等を提供する。
【0012】
さらに、本発明では、センターサーバは、有価物データの全体ではなく一部のデータである部分データのみをブロックチェーン上に記憶することができるため、比較的小さな記憶領域でブロックチェーンを管理することができ、センターサーバを政府や銀行等の信頼できる機関で運用することで、ブロックチェーンの公正性を保証する計算作業を簡略化もしくは省略することができる有価物管理システム等を提供する。
【課題を解決するための手段】
【0013】
本発明に係る有価物管理システムの1つの実施形態として、
前記有価物管理システムは、
端末と、
前記端末と第1のネットワークを介して接続されたコロニーサーバと、
前記コロニーサーバと第2のネットワークを介して接続されたセンターサーバと
を少なくとも備え、
前記端末は、有価物に関する取引要求を前記コロニーサーバに送信し、
前記コロニーサーバは、前記有価物に関する取引要求に応じて取得又は生成した有価物データを先頭から所定のサイズまでのデータを含む部分データと、
前記所定のサイズ+1以降のデータを含む本体データとに分割して、前記部分データを前記センターサーバに送信する分割送信部と、
前記センターサーバからブロックハッシュ値を受け取り、前記本体データに関連付けて前記ブロックハッシュ値を前記本体データのハッシュ値として記憶する本体データ管理部と
を含み、
前記センターサーバは、前記部分データを暗号化し、前記暗号化した部分データを暗号化キーとして記憶したブロックを生成して、前記ブロックをブロックチェーンに追加する部分データ管理部と、
前記所定の間隔で前記ブロックのブロックハッシュ値を更新して、前記更新されたブロックハッシュ値を前記コロニーサーバに送信するハッシュ通知部と
を含み、
前記本体データ管理部は、前記本体データのハッシュ値を、前記ハッシュ通知部から前記所定の間隔で送信されるブロックハッシュ値に更新することを特徴とする。
【0014】
本発明に係る有価物管理システムの好ましい実施形態として、
前記ブロックチェーンにおけるブロックは、当該ブロックに新たにブロックを接続することが可能な場合に有効を示し、接続することが可能でない場合に無効を示すフラグを含み、
前記部分データ管理部は、新たにブロックを接続する際に、接続先のブロックの前記フラグが有効である否かを判断し、前記フラグが有効である場合に、新たなブロックを生成し、前記新たなブロックに、少なくとも前記暗号化キーと、接続先のブロックのブロックハッシュと、前記新たなブロックのブロックハッシュとを記憶して、前記新たなブロックが前記接続先のブロックに接続された場合に、前記接続先のブロックの前記フラグを無効にし、前記新たなブロックに、初期値として有効を示すフラグを更に記憶することを特徴とする。
【0015】
本発明に係る有価物管理システムの好ましい実施形態として、
前記部分データ管理部は、前記部分データの他に、前記有価物データのファイル名及び取引日時の少なくとも一方を含めて、暗号化を行い、
前記暗号化キーは、前記部分データの他に、前記ファイル名及び前記取引日時の少なくとも一方を含むことを特徴とする。
【0016】
本発明に係る有価物管理システムの好ましい実施形態として、
前記有価物に関する取引要求は、前記端末においてアップロードされた、前記有価物に対応する有価物データを含むことを特徴とする。
【0017】
本発明に係る有価物管理システムの好ましい実施形態として、
前記有価物に関する取引要求は、前記コロニーサーバにおいて前記有価物に対応する有価物データを生成させる要求であることを特徴とする。
【0018】
本発明に係る有価物管理システムの好ましい実施形態として、
前記所定のサイズは、前記有価物データの先頭から30バイト以下であることを特徴とする。
【0019】
本発明に係る有価物管理システムの好ましい実施形態として、
前記所定の間隔は、24時間以下の間隔であることを特徴とする。
【0020】
本発明に係る有価物管理システムの好ましい実施形態として、
前記第1のネットワークはインターネットであり、前記第2のネットワークはクローズドネットワークであることを特徴とする。
【0021】
本発明に係る有価物管理システムの好ましい実施形態として、
前記ブロックチェーンの改ざんを監視する監視ボットをさらに含み、
前記監視ボットが、前記ブロックチェーンにおける1つのブロックの改ざんを見つけた場合に、前記1つのブロック以降のブロックの各々を無効化することを特徴とする。
【0022】
本発明に係る有価物管理システムの好ましい実施形態として、
前記ブロックチェーンの修復を行う修復ボットをさらに含み、
前記1つのブロック以降のブロックの各々が無効化された後、
前記修復ボットが、前記ブロックチェーンとは独立して管理された帳簿データベースを参照して、前記ブロックチェーンにおけるブロックを修復することを特徴とする。
【0023】
本発明に係る有価物管理システムの好ましい実施形態として、
前記コロニーサーバの分割送信部は、前記有価物データを先頭から所定のサイズまでのデータに代えて、前記有価物データの任意の一部分から所定のサイズのデータを前記部分データとし、
前記所定のサイズ+1以降のデータに代えて、前記有価物データの前記任意の一部分以外の残余部分のデータを前記本体データとするように分割することを特徴とする。
【0024】
本発明に係る有価物管理方法の1つの実施形態として、前記有価物管理方法は、
端末と、
前記端末と第1のネットワークを介して接続されたコロニーサーバと、
前記コロニーサーバと第2のネットワークを介して接続されたセンターサーバと
を少なくとも備え有価証券システムによって実行され、
前記端末が有価物に対する取引要求を前記コロニーサーバに送信するステップと、
前記コロニーサーバが前記有価物に関する取引要求に応じて取得又は生成した有価物データを先頭から所定のサイズまでのデータを含む部分データと、前記所定のサイズ+1以降のデータを含む本体データとに分割して、前記部分データを前記センターサーバに送信するステップと、
前記センターサーバが、前記部分データを暗号化するステップと、
前記センターサーバが、前記暗号化した部分データを暗号化キーとして記憶したブロックを生成して、前記ブロックをブロックチェーンに追加するステップと、
前記センターサーバが、前記所定の間隔で前記ブロックのブロックハッシュ値を更新して、前記更新されたブロックハッシュ値を前記コロニーサーバに送信するステップと
を含み、
前記コロニーサーバが、前記本体データのハッシュ値を、前記センターサーバから前記所定の間隔で送信されるブロックハッシュ値に更新することを特徴とする。
【0025】
本発明に係る有価物管理方法の好ましい実施形態として、
前記ブロックチェーンにおけるブロックは、当該ブロックに新たにブロックを接続することが可能な場合に有効を示し、接続することが可能でない場合に無効を示すフラグを含み、
前記センターサーバは、前記ブロックをブロックチェーンに追加するステップにおいて、新たにブロックを接続する際に、接続先のブロックの前記フラグが有効である否かを判断し、前記フラグが有効である場合に、新たなブロックを生成し、前記新たなブロックに、少なくとも前記暗号化キーと、接続先のブロックのブロックハッシュと、前記新たなブロックのブロックハッシュとを記憶して、前記新たなブロックが前記接続先のブロックに接続された場合に、前記接続先のブロックの前記フラグを無効にし、前記新たなブロックに、初期値として有効を示すフラグを更に記憶することを特徴とする。
【0026】
本発明に係る有価物管理方法の好ましい実施形態として、
前記センターサーバは、前記部分データを暗号化するステップにおいて、前記部分データの他に、前記有価物データのファイル名及び取引日時の少なくとも一方を含めて、暗号化を行い、
前記暗号化キーは、前記部分データの他に、前記ファイル名及び前記取引日時の少なくとも一方を含むことを特徴とする。
【0027】
本発明に係る有価物管理方法の好ましい実施形態として、
前記有価物に関する取引要求は、前記端末においてアップロードされた、前記有価物に対応する有価物データを含むことを特徴とする。
【0028】
本発明に係る有価物管理方法の好ましい実施形態として、
前記有価物に関する取引要求は、前記コロニーサーバにおいて前記有価物に対応する有価物データを生成させる要求であることを特徴とする。
【0029】
本発明に係る有価物管理方法の好ましい実施形態として、
前記所定のサイズは、前記有価物データの先頭から30バイト以下であることを特徴とする。
【0030】
本発明に係る有価物管理方法の好ましい実施形態として、
前記第1のネットワークはインターネットであり、前記第2のネットワークはクローズドネットワークであることを特徴とする。
【0031】
本発明に係る有価物管理方法の好ましい実施形態として、
前記コロニーサーバが前記有価物に関する取引要求に応じて取得又は生成した有価物データを先頭から所定のサイズまでのデータを含む部分データと、前記所定のサイズ+1以降のデータを含む本体データとに分割して、前記部分データを前記センターサーバに送信するステップは、
前記有価物データを先頭から所定のサイズまでのデータに代えて、前記有価物データの任意の一部分から所定のサイズのデータを前記部分データとし、
前記所定のサイズ+1以降のデータに代えて、前記有価物データの前記任意の一部分以外の残余部分のデータを前記本体データとするように分割することを特徴とする。
【0032】
本発明に係るコロニーサーバ装置の1つの実施形態として、前記コロニーサーバ装置は、
有価物に関する取引要求を受け取る手段と、
前記有価物に関する取引要求に応じて取得又は生成した有価物データを先頭から所定のサイズまでのデータを含む部分データと、前記所定のサイズ+1以降のデータを含む本体データとに分割して、前記部分データをセンターサーバに送信する分割送信手段と、
前記センターサーバからブロックハッシュ値を受け取り、前記本体データに関連付けて前記ブロックハッシュ値を前記本体データのハッシュ値として記憶する本体データ管理手段と
を含み、
前記本体データのハッシュ値は、前記センターサーバから所定の間隔で送信されるブロックハッシュ値で更新されることを特徴とする。
【0033】
本発明に係るコロニーサーバ装置の好ましい実施形態として、
前記分割送信手段は、前記有価物データを先頭から所定のサイズまでのデータに代えて、前記有価物データの任意の一部分から所定のサイズのデータを前記部分データとし、
前記所定のサイズ+1以降のデータに代えて、前記有価物データの前記任意の一部分以外の残余部分のデータを前記本体データとするように分割することを特徴とする。
【0034】
本発明に係るセンターサーバ装置の1つの実施形態として、前記センターサーバ装置は、
コロニーサーバから、有価物データを先頭から所定のサイズまでのデータを含む部分データを受け取る手段と、
前記部分データを暗号化する暗号化手段と、
前記暗号化した部分データを暗号化キーとして記憶したブロックを生成して、前記ブロックをブロックチェーンに追加するブロックチェーン管理手段と、
所定の間隔で前記ブロックのブロックハッシュ値を更新して、前記更新されたブロックハッシュ値を前記コロニーサーバに送信するハッシュ通知手段と
を含み、
前記ブロックハッシュ値は、前記コロニーサーバにおいて前記所定のサイズ+1以降のデータを含む本体データのハッシュ値として記憶されることを特徴とする。
【0035】
本発明に係るセンターサーバ装置の好ましい実施形態として、
前記部分データは、前記有価物データを先頭から所定のサイズまでのデータに代えて、前記有価物データの任意の一部分から所定のサイズのデータを含み、
前記本体データは、前記所定のサイズ+1以降のデータに代えて、前記有価物データの前記任意の一部分以外の残余部分のデータを含むことを特徴とする。
【0036】
本発明に係るプログラムの1つの実施形態として、前記プログラムは、コンピュータによって実行されることで、前記コンピュータを前記コロニーサーバ装置の各手段として機能されることを特徴とする。
【0037】
本発明に係るプログラムの1つの実施形態として、前記プログラムは、コンピュータによって実行されることで、前記コンピュータを前記センターサーバ装置の各手段として機能されることを特徴とする。
【発明の効果】
【0038】
本発明に係る有価物管理システム、方法、装置及びプログラムは、コロニーサーバが端末から受信した有価物データを先頭から所定のサイズまでのデータを含む部分データを記憶し、センターサーバが所定のサイズ+1以降のデータを含む本体データを記憶することで、有価物データを分散させて管理するだけでなく、不正アクセス等によってコロニーサーバから本体データが流出したとしても、そもそも本体データは、有価物データの一部のデータでしかなく、本体データのみでは無価値なものであることから、不正アクセスに対して堅牢なセキュリティを実現することができる。
【0039】
また、本発明に係る有価物管理システム等は、センターサーバの管理下にあるブロックチェーンにおける1ブロックに暗号化キーとして記憶した部分データのハッシュ値を、所定の間隔で更新するとともに、コロニーサーバにおける本体データのハッシュ値を部分データのハッシュ値と同じ値に更新させることで、不正アクセス等によってコロニーサーバから本体データが流出した場合であっても、不正に流出した本体データと対となる部分データを含む暗号化キーのハッシュ値は所定の間隔で更新されるため、当該本体データのハッシュ値に一致するハッシュ値を含む暗号化キーは存在しなくなり、不正に流出した本体データを解析しても、有価物データを復元するために必要な暗号化キーにたどり着くことは困難となり、有価物データを復元することは実質的に不可能にすることができる。
【0040】
さらに、本発明に係る有価物管理システム等は、センターサーバは、有価物データの全体ではなく一部のデータである部分データのみをブロックチェーン上に記憶することができるため、比較的小さな記憶領域でブロックチェーンを管理することができる。これにより、センターサーバでブロックチェーンに新たなブロックを形成する際等に、ハッシュ値の計算等は比較的小さな情報に基づいて行えることになるから、コンピュータにおける計算量を大幅に減らすことが期待できる。そして、センターサーバを政府や銀行等の信頼できる機関で運用することで、ブロックチェーンの公正性を保証する検証作業を簡略化もしくは省略することができ、コンピュータを用いた膨大な計算及びそれに伴う電力の消費を抑えることができる。
【図面の簡単な説明】
【0041】
【
図1】本発明の一実施形態に係る有価物管理システムの構成を示す概略構成図(システム構成図)である。
【
図2】本発明の一実施形態に係るサーバ及び情報処理端末のハードウェア構成の一例を示す概略構成図(ブロック図)である。
【
図3】本発明の一実施形態に係るセンターサーバ及びコロニーサーバの概略構成図(ブロック図)である。
【
図4】センターサーバ及びコロニーサーバのデータ処理の手順の一例を示す図である。
【
図5】コロニーサーバからセンターサーバへの有価物データの登録処理の概要を示す図である。
【
図6】センターサーバで管理されるブロックチェーンの基本的な構成の概要を示す概略図である。
【
図7】有価物の一例として電子通貨をセンターサーバに登録する処理の流れを示すシーケンス図である。
【
図8】センターサーバから有価物の一例として電子通貨を取得する処理の流れを示すシーケンス図である。
【
図9】有価物の一例として電子通貨を同じコロニーサーバに接続された端末間で譲渡する処理の流れを示すシーケンス図である。
【
図10】有価物の一例として電子通貨を異なるコロニーサーバに接続された端末間で譲渡する処理の流れを示すシーケンス図である。
【
図11】有価物の一例として電子通貨を異なるコロニーサーバに接続された端末間で譲渡する処理の流れを示すシーケンス図である。
【
図12】有価物の一例として電子通貨を暗号化キーと本体データとに分割する処理の流れを示す有価物管理システム全体としてのフローチャートである。
【
図13】センターサーバからアクセス可能なブロックチェーンにおける1ブロックと、コロニーサーバからアクセス可能な本体データとの関係を示す図である。
【
図14】コロニーサーバにおいて独立して記憶される本体データの概要を示す図である。
【
図15】センターサーバにおいてブロックチェーンに新たに暗号化キーを含むブロックを接続する処理の流れを示すフローチャートである。
【
図16】センターサーバの管理下にあるブロックチェーンの構成を示す図である。
【
図17】センターサーバのデータベースに記憶される各種情報の概要を示す図である。
【
図18】コロニーサーバのデータベースに記憶される情報の概要を示す図である。
【
図19】ブロックチェーンにおいて改ざんを検出した際の各ブロックの凍結及び修復の処理の概要を示す図である。
【
図20】ブロックチェーンを監視して改ざんを検出した際の処理の流れを示すフローチャートである。
【
図21】ブロックチェーンにおけるブロックを凍結する処理の流れを示すフローチャートである。
【
図22】ブロックチェーンを修復する処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0042】
以下に図面を参照して、本発明の一実施形態について説明する。なお、実施の形態を説明するための全ての図において、同じものには原則として同一の符号を付し、その繰り返しの説明は省略する。本発明の個々の実施形態は、独立したものではなく、それぞれ組み合わせて適宜実施することができる。
【0043】
図1は、本発明の一実施形態に係る有価物管理システムの構成を示すシステム構成図である。有価物とは、金銭上の価値があるものであり、例えば、暗号資産、仮想通貨、電子通貨、有価証券等である。有価物管理システムは、例示的に、センターサーバ10と、コロニーサーバ20と、情報処理端末30とを含む。情報処理端末30は、例えば、パーソナルコンピュータ、ノートパソコン、スマートフォン、携帯電話等のインターネットに接続可能な端末である。センターサーバ10とコロニーサーバ20とは、ネットワークN1を介して接続される。ネットワークN1は、例えば、専用回線で接続されたイントラネットであり、クローズドネットワークである。コロニーサーバ20と情報処理端末30とは、ネットワークN2を介して接続される。ネットワークN2は、例えば、インターネット等のオープンなネットワークである。ネットワークN1及びN2は、これに限定されるものではなく、要求されるセキュリティのレベル等に応じて、適宜、クローズドネットワークかオープンネットワークかを選択することができる。
【0044】
情報処理端末30は、例えば、インターネット等であるネットワークN2を介してコロニーサーバ20にアクセスすることは可能であるが、センターサーバ10とはクローズドネットワークであるネットワークN1を介して接続されていないため、直接的にアクセスすることはできない。センターサーバ10にアクセスすることができるのは、ネットワークN2を介して接続されたコロニーサーバ20のみである。
図1に示す実施形態では、センターサーバ10は、1台であるが複数台設けてもよい。
【0045】
図2は、本発明の一実施形態に係るサーバ及び情報処理端末のハードウェア構成の一例を示すブロック図である。なお、図中では、センターサーバ10のハードウェアに対応する符号には括弧を付すことなく記載し、コロニーサーバ20及び情報処理端末30のハードウェアに対応する符号には括弧を付して記載する。
【0046】
センターサーバ10は、例示的に、CPU(Central Processing Unit)11と、ROM(Read Only Memory)及びRAM(Random Access Memory)等からなるメモリ12と、バス13と、入出力インターフェース14と、入力部15と、出力部16と、記憶部17と、通信部18と、を備えている。
【0047】
CPU11は、メモリ12に記録されているプログラム、又は、記憶部27からメモリ12にロードされたプログラムにしたがって各種の処理を実行する。CPU11は、例えば、サーバ装置を本発明のセンターサーバとして機能させるためのプログラムを実行することができる。また、センターサーバの少なくとも一部の機能を、特定用途向け集積回路(ASIC)等でハードウェア的に実装することも可能である。本発明のその他のサーバ、情報処理端末についても同様である。
【0048】
メモリ12には、CPU11が各種の処理を実行する上において必要なデータ等も適宜記憶される。CPU11及びメモリ12は、バス13を介して相互に接続されている。このバス13には、入出力インターフェース14も接続されている。入出力インターフェース14には、入力部15と、出力部16と、記憶部17と、通信部18と、が接続されている。
【0049】
入力部15は、各種ボタン、タッチパネルあるいはマイク等で構成され、センターサーバ10の管理者等の指示操作に応じて各種情報を入力する。なお、入力部15は、センターサーバ10の他の各部を収容する本体とは独立した、キーボードやマウス等の入力装置により実現されてもよい。
【0050】
出力部16は、ディスプレイやスピーカ等で構成されており、画像データや音声データを出力する。出力部16が出力した画像データや音楽データは、ディスプレイやスピーカ等から、画像や音楽としてプレイヤが認識可能に出力される。
【0051】
記憶部17は、DRAM(Dynamic Random Access Memory)等の半導体メモリで構成され、各種データを記憶する。
【0052】
通信部18は、他の装置との間で行う通信を実現する。例えば、通信部18は、ネットワークN1を介して、コロニーサーバ20との間で相互に通信を行う。
【0053】
なお、センターサーバ10には、不図示であるがドライブを必要に応じて適宜設けられる。ドライブには、例えば、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリ等から構成されるリムーバブルメディアが適宜装着される。リムーバブルメディアには、暗号資産取引を実行するためのプログラムや、テキストデータ、画像データ等の各種データが格納される。ドライブによってリムーバブルメディアから読み出されたプログラムや、画像データ等の各種のデータは、必要に応じて記憶部17にインストールされる。
【0054】
次に、コロニーサーバ20のハードウェアの構成について説明する。コロニーサーバ20は、
図2に示すように、例示的に、CPU21と、メモリ22と、バス23と、入出力インターフェース24と、入力部25と、出力部26と、記憶部27と、通信部28と、を備えている。これら各部は、上述のセンターサーバ10が備える、符号のみが異なる同名の各部と同等の機能を有している。従って、重複する説明を省略する。情報処理端末30についても同様である。なお、情報処理端末30を、携帯型の装置として構成する場合には、情報処理端末30が備える各ハードウェアと、ディスプレイやスピーカとを一体の装置として実現するようにしてもよい。
【0055】
図3を参照して有価物管理システムを構成するセンターサーバ10及びコロニーサーバ20の機能的構成について説明する。
図3は、本発明の一実施形態に係るセンターサーバ及びコロニーサーバのブロック図である。センターサーバ10は、センターサーバ側の有価物管理のためのプログラムが実行された場合、CPU11において、部分データ管理部111と、ハッシュ通知部112とが機能する。また、記憶部17の一部の記憶領域には、コロニー情報記憶部171と、ユーザ情報記憶部172と、暗号化キー記憶部173とが設定される。コロニー情報記憶部171、ユーザ情報記憶部172及び暗号化キー記憶部173に記憶される情報の詳細は後述する。
【0056】
センターサーバ10の部分データ管理部111は、コロニーサーバ20から送信させる有価物データの一部のデータである部分データを暗号化し、暗号化した部分データを暗号化キーとして記憶したブロックを生成して、ブロックをブロックチェーンに追加することができる。また、部分データ管理部111は、部分データの他に、有価物データのファイル名及び取引日時の少なくとも一方を含めて、暗号化を行ってもよく、暗号化キーには、部分データの他に、そのファイル名及び取引日時の少なくとも一方を含めてもよい。
【0057】
ハッシュ通知部112は、所定の間隔で暗号化キーを記憶したブロックのブロックハッシュ値を更新して、更新されたブロックハッシュ値をコロニーサーバに送信することができる。所定の間隔は、24時間以下の間隔とすることができ、例えば、1時間、6時間、12時間、24時間等を指定することができる。また、所定の間隔は、24時間を超える時間を指定することもできる。
【0058】
コロニーサーバ20は、コロニーサーバ側の有価物管理のためのプログラムが実行された場合、CPU21において、分割送信部211と、本体データ管理部212とが機能する。また、記憶部27の一部の記憶領域には、ハッシュ情報記憶部271と、本体データ記憶部272とが設定される。ハッシュ情報記憶部271及び本体データ記憶部272に記憶される情報の詳細は後述する。
【0059】
コロニーサーバ20の分割送信部211は、情報処理端末30からの有価物に関する取引要求に応じて取得又は生成した有価物データを先頭から所定のサイズまでのデータを含む部分データと、所定のサイズ+1以降のデータを含む本体データとに分割して、部分データをセンターサーバ10に送信することができる。ここで、所定のサイズは、例えば、有価物データの先頭から30バイト以下とすることができる。所定のサイズは、これに限定されるものではなく、適宜設定することができる。
【0060】
また、分割送信部211は、有価物データを先頭から所定のサイズまでのデータに代えて、有価物データの任意の一部分から所定のサイズのデータを部分データとし、先頭から所定のサイズ+1以降のデータに代えて、有価物データの任意の一部分(つまり、部分データ)以外の残余部分のデータを本体データとするように分割することもできる。
【0061】
本体データ管理部212は、センターサーバ10からブロックハッシュ値を受け取り、本体データに関連付けてブロックハッシュ値を本体データのハッシュ値として記憶することができる。
【0062】
図4は、センターサーバ及びコロニーサーバのデータ処理の手順の一例を示す。はじめに、コロニーサーバ20において、利用者の情報処理端末30から有価物データのアップロード(もしくは、コロニーサーバ20において有価物データの生成)を行い(ステップ1)、有価物データを圧縮して(ステップ2)、有価物データに相当する圧縮データの0と1のビット列を、MIME(Multipurpose Internet Mail Extensions)に基づいて、16進数のテキストデータに置き換える(ステップ3)。
図4に示す一例では、有価物データを圧縮しているが、これに限定されるものではなく、有価物データを圧縮しなくてもよい。MIMEは、インターネットの電子メールの規格を拡張して、さまざまな形式を扱えるようにした規格である。
【0063】
次に、コロニーサーバ20において、例えば、有価物データに相当する16進数テキストデータの先頭30バイトを部分データとして切り取り(カットし)(ステップ4)、31バイト以降のデータを本体データとしてデータベース(例えば、本体データ記憶部272)に登録(記憶)する(ステップ5)。
【0064】
そして、部分データ(先頭30バイトのデータ)は、コロニーサーバ20から有価物データの登録ファイル名と共に、センターサーバ10に送信される。センターサーバ10では、部分データ(先頭30バイトのデータ)と有価物データのファイル名を受信して(ステップ6)、それらに基づいて有価物データの暗号化を行う(ステップ7)。例えば、有価物データを暗号化して暗号化キー(DBED(Data Binary Encrypted Data)ともいう)を生成する。暗号化キー(DBED)をブロックチェーン(又はブロックチェーンデータツリー(Block chain data tree))の1ブロックとして追加(登録)して(ステップ8)、ブロックチェーンハッシュ(Block chain hash)を生成、すなわち、ブロックチェーンに追加されたブロックのブロックハッシュ値を計算する(ステップ9)。最後に、センターサーバ10からコロニーサーバ20にブロックハッシュ値を送信して、コロニーサーバ20において、バイナリラージオブジェクト(BLOB)として、バイナリーデータであるブロックハッシュ値をデータベース(例えば、ハッシュ情報記憶部271)に登録する(ステップ10)。
【0065】
図5は、コロニーサーバからセンターサーバへの有価物データの登録処理の概要を示す。利用者X(ユーザX)は、情報処理端末30Xを用いて、ネットワークN1を介して、コロニーサーバ20にログインして有価物データをコロニーサーバ20にアップロードする。コロニーサーバ20にアップロードされた有価物データは、上述のとおり、MIME(例えばMIME64)に基づいて、例えば、ABCDEFG2345678等のように文字列化され、有価物データを示すファイル名と共に次の処理に渡される。コロニーサーバ20において、文字列化された有価物データを先頭から所定のサイズまでの部分データ(例えば、ABC)と、所定のサイズ+1以降の本体データ(例えば、DEFG2345678)とに分割して、部分データはファイル名と共に、ネットワークN2を介した暗号化通信により、センターサーバ10に送信される。
図4及び5に示す例では、文字列化された有価物データの先頭から所定のサイズまでのデータを部分データとし、それ以降のデータを本体データとしているが、これに限定されるものではなく、部分データは、有価物データを先頭から所定のサイズまでのデータに代えて、有価物データの任意の一部分から所定のサイズのデータを含み、本体データは、所定のサイズ+1以降のデータに代えて、有価物データの任意の一部分以外の残余部分のデータを含むこともできる。
【0066】
このように、本発明の一実施形態に係る有価物管理システムは、コロニーサーバ20が情報処理端末30から受信した有価物データを先頭から所定のサイズまでのデータを含む部分データを記憶し、センターサーバ10が所定のサイズ+1以降のデータを含む本体データを記憶することで、有価物データを分散させて管理するだけでなく、不正アクセス等によってコロニーサーバ20から本体データが流出したとしても、そもそも本体データは、有価物データの一部のデータでしかなく、本体データのみでは無価値なものであることから、不正アクセスに対して堅牢なセキュリティを実現することができる。
【0067】
また、本発明の一実施形態に係る有価物管理システムは、センターサーバ10は、有価物データの全体ではなく一部のデータである部分データのみをブロックチェーン上に記憶することができるため、比較的小さな記憶領域でブロックチェーンを管理することができる。これにより、センターサーバ10でブロックチェーンに新たなブロックを形成する際等に、ハッシュ値の計算等は比較的小さな情報に基づいて行えることになるから、センターサーバ10等のコンピュータにおける計算量を大幅に減らすことが期待できる。そして、センターサーバ10を政府や銀行等の信頼できる機関で運用することで、ブロックチェーンの公正性を保証する検証作業を簡略化もしくは省略することができ、コンピュータを用いた膨大な計算及びそれに伴う電力の消費を抑えることができる。
【0068】
図6は、センターサーバで管理されるブロックチェーンの基本的な構成の概要を示す。ブロックチェーン100の1つのブロック101Aは、互いに異なる2つのブロックハッシュ値(Block Chain Hash(1)とBlock Chain Hash (2)、例えば、0xaa708c8c, 0x038b67cf)と、有価物データの部分データを暗号化した暗号化キー(例えば、ddyymmSUGIURA100)とを含む。一方のブロックハッシュ値(Block Chain Hash (1))は、前のブロックのブロックハッシュ値と同じハッシュ値であり、ハッシュ値が同じであることに基づいてブロック101Aは前のブロックと結合される。同様に、他方のブロックハッシュ値(Block Chain Hash (2))は、先のブロックハッシュ値と同じハッシュ値であり、ハッシュ値が同じであることに基づいて、ブロック101Aは先のブロックとも結合される。
【0069】
図7は、有価物の一例として電子通貨をセンターサーバに登録する処理の流れを示すシーケンス図である。利用者は情報処理端末30を用いて、例えばインターネットを介してコロニーサーバ20にログイン(サインイン)してアクセスし(ステップS101)、コロニーサーバ20は、利用者の情報処理端末30を用いたログインが成功した場合に、ログイン成功(OK)の応答を情報処理端末30に送信する(ステップS102)。そして、利用者は、情報処理端末30上で、有価物データの1つとして電子通貨データのアップロード又は電子通貨データの生成リクエストを選択して(ステップS103)、コロニーサーバ20に電子通貨データをアップロードする、又は電子通貨データの生成リクエストを送信する(ステップS104)。コロニーサーバ20では、アップロード又は生成された電子通貨データを、上述したとおり、圧縮、文字列化等の暗号化処理を行い、例えば、先頭から30バイトまでの部分データと31バイト以降の本体データとに分割して、先頭30バイトの部分データをセンターサーバ10に送信する(ステップS106)。
【0070】
センターサーバ10において、ブロックチェーンに追加するため1つのブロックを生成し(ステップS107)、先頭30バイトの部分データの他に少なくとも電子通貨の取引日時(例えば、アップロード日時又は生成日時)及び電子通貨データに対応するファイル名の少なくとも一方を含めて暗号化を行い、部分データの他にファイル名及び取引日時の少なくとも一方を含む暗号化キーを生成する(ステップS108)。本実施例では、暗号化の際に、部分データの他に、取引日時、ファイル名を用いているが、これに限定されるものではなく、その他の文字列、データ等(例えば、利用者のログインID、パスワード)を用いることもできる。
【0071】
センターサーバ10は、生成したブロックに暗号化キーを含めて、ブロックチェーンに当該ブロックを追加し(ステップS109)、追加されたブロックのブロックハッシュ値をコロニーサーバ20に送信する(ステップS110)。コロニーサーバ20において、受信したブロックハッシュ値を本体データとともにデータベース(本体データ記憶部272)に記憶して、部分データが欠落した電子通貨を生成する(ステップS111)。最後に、コロニーサーバ20は、電子通貨の生成が完了した場合に、完了通知を情報処理端末30に送信する(ステップS112)。
【0072】
図8は、センターサーバから有価物の一例として電子通貨を取得する処理の流れを示すシーケンス図である。利用者は情報処理端末30を用いて、例えばインターネットを介してコロニーサーバ20にログイン(サインイン)してアクセスし(ステップS201)、コロニーサーバ20は、利用者の情報処理端末30を用いたログインが成功した場合に、ログイン成功(OK)の応答を情報処理端末30に送信する(ステップS202)とともに、電子通貨等の目録を送信する(ステップS203)。
【0073】
利用者は、情報処理端末30の画面上に表示される電子通貨等の目録から、電子通貨の取得のために必要な項目を選択して(ステップS204)、情報処理端末30は、利用者が選択した項目とともに、電子通貨の取得のリクエストをコロニーサーバ20に送信する(ステップS205)。コロニーサーバ20において、情報処理端末30からのリクエストに基づいて、データベースからリクエストされた電子通貨(に対応する本体データ)を特定して検証を行う(ステップS206)。検証の結果、問題なければ、電子通貨の31バイト以降のデータである本体データを情報処理端末30に送信する(ステップS207)とともに、本体データに関連付けて記憶されているブロックハッシュ値に基づいて、本体データに対応する部分データをセンターサーバ10にリクエストする(ステップS208)。
【0074】
センターサーバ10は、リクエストに応じて、ブロックチェーンのブロックを検証し(ステップS209)、暗号化キーから電子通貨データの先頭から30バイトのデータである部分データを復元して、コロニーサーバ20に送信する(ステップS210)。コロニーサーバ20は受信した部分データを情報処理端末30に送信し(ステップS211)、情報処理端末30において、受信した部分データを本体データに結合して、電子通貨データを生成する(ステップS212)。
【0075】
図9は、有価物の一例として電子通貨を同じコロニーサーバに接続された端末間で譲渡する処理の流れを示すシーケンス図である。同じコロニーサーバ20に接続された情報処理端末30Xの利用者Xから情報処理端末30Yの利用者Yに電子通貨を譲渡する場合、利用者Xは情報処理端末30Xを用いて、例えばインターネットを介してコロニーサーバ20にログイン(サインイン)してアクセスし(ステップS301)、コロニーサーバ20は、利用者の情報処理端末30Xを用いたログインが成功した場合に、ログイン成功(OK)の応答を情報処理端末30Xに送信する(ステップS302)とともに、電子通貨等の目録を送信する(ステップS303)。
【0076】
利用者Xは、情報処理端末30Xの画面上に表示される電子通貨等の目録から、電子通貨の譲渡のために必要な項目を選択して(ステップS304)、譲渡先である利用者YのユーザIDを入力する(ステップS305)とともに、譲渡のリクエストをコロニーサーバ20に送信する(ステップS306)。
【0077】
コロニーサーバ20は、譲渡先のユーザIDを検証し(ステップS307)、問題なければ、ダウンロードURLを生成し(ステップS308)、譲渡先の利用者Yのメールアドレスをセンターサーバ10にリクエストして(ステップS309)、応答(OK)とともにメールアドレスを取得する(ステップS310)。コロニーサーバ20は、取得したメールアドレス宛(情報処理端末30Y)にダウンロードURLを電子メールで通知する(ステップS311)。
【0078】
譲渡先の利用者Yは、情報処理端末30Yにおいて電子メールを確認し、ダウンロードURLを用いてコロニーサーバ20にログインして、電子通貨の本体データである31バイト以降のデータをダウンロードする(ステップS312)。コロニーサーバ20は、本体データがダウンロードされると、当該本体データのブロックハッシュ値をセンターサーバ10に送信する(ステップS313)。センターサーバ10は、受信したハッシュ値に一致するハッシュ値を有するブロックをブロックチェーンから特定し、ブロックに含まれる電子通貨を検証する(ステップS314)。センターサーバ10は、検証結果が正しい場合に、電子通貨の先頭30バイトである部分データをコロニーサーバ20に送信し(ステップS315)、コロニーサーバ20は受信した部分データを情報処理端末30Yに送信する(ステップS316)。最後に、情報処理端末30Yにおいて、受信した部分データを本体データに結合して、電子通貨データを生成する(ステップS317)。
【0079】
図10及び
図11は、有価物の一例として電子通貨を異なるコロニーサーバに接続された端末間で譲渡する処理の流れを示すシーケンス図であり、
図10及び
図11にシーケンス図を合わせて、コロニーサーバ20A(コロニA)に接続された情報処理端末30Xからコロニーサーバ20B(コロニB)に接続された情報処理端末30Yへの電子通貨を譲渡する処理の流れを示す。
【0080】
まず、
図10を参照すると、利用者Xは情報処理端末30Xを用いて、例えばインターネットを介してコロニーサーバ20Aにログイン(サインイン)してアクセスし(ステップS401)、コロニーサーバ20は、利用者の情報処理端末30Xを用いたログインが成功した場合に、ログイン成功(OK)の応答(失敗した場合には、ログイン失敗(NG)の応答)を情報処理端末30Xに送信する(ステップS402)とともに、電子通貨等の目録を送信する(ステップS403)。
【0081】
利用者Xは、情報処理端末30Xの画面上に表示される電子通貨等の目録から、電子通貨の譲渡のために必要な項目を選択して(ステップS404)、譲渡先である利用者YのユーザIDと、コロニーサーバ20BのIDを指定する(ステップS405)とともに、譲渡のリクエストをコロニーサーバ20Aに送信する(ステップS406)。コロニーサーバ20Aは、リクエストされた電子通貨の本体データを特定し、本体データのブロックハッシュ値と譲渡先の利用者YのユーザIDとを含むリクエストをセンターサーバ10に送信する(ステップS407)。
【0082】
センターサーバ10は、受信したユーザID及びブロックハッシュ値を検証し(ステップS408)、検証の結果正しければ、その旨の応答(OK)とともに譲渡先の利用者Yのメールアドレスをコロニーサーバ20Aに送信し(ステップS409)、コロニーサーバ20は、電子通貨の譲渡を行うか否かの最終確認を情報処理端末30Xに送信する(ステップS410)。情報処理端末30Xは、譲渡の実行を商品する旨の応答(OK)ともに最終的な譲渡のリクエストをコロニーサーバ20Aに送信し(ステップS411)、コロニーサーバ20Aは、リクエストをセンターサーバ10に送信する(ステップS412)。
【0083】
センターサーバ10は電子通貨の先頭30バイトを含む部分データをコロニーサーバ20Bに送信する(ステップS413)。ここで、
図11を参照すると、コロニーサーバ20Bは、利用者Xからの電子通貨の譲渡がある旨の通知を、譲渡先の利用者Yは情報処理端末30Yに通知する(ステップS414)。利用者Yは、情報処理端末30Yの画面上に表示される通知等に応じて、情報処理端末30Yからログインしてコロニーサーバ20Bにアクセスして(ステップS415)、情報処理端末30Yは、センターサーバ10から送られてきた電子通貨の先頭30バイトである部分データを受信する(ステップS416)。
【0084】
図10を再び参照すると、コロニーサーバ20Aはリクエストをセンターサーバ10に送信した直後又は実質的には同時に、電子通貨の31バイト以降のデータである本体データをダウンロードするためのURLを生成する(ステップS417)。
図11を参照すると、ダウンロードURLを生成した(ステップS417)後、コロニーサーバ20Aは、ダウンロードURLを電子メールで、情報処理端末30Yに送信し(ステップS418)、譲渡先の利用者Yは、情報処理端末30Yにおいて電子メールを確認し、ダウンロードURLを用いてコロニーサーバ20Aにログインして、電子通貨の本体データである31バイト以降のデータをダウンロードする(ステップS419)。最後に、情報処理端末30Yにおいて、受信した部分データを本体データに結合して、電子通貨データを生成する(ステップS420)。
【0085】
図12は、有価物の一例として電子通貨を暗号化キーと本体データとに分割する処理の流れを示す有価物管理システム全体としてのフローチャートである。有価物データの一例として電子通貨データを扱う場合に、情報処理端末30は、電子通貨をコロニーサーバ20にアップロードして(ステップS501)、コロニーサーバ20において電子通貨データの暗号化を行う(ステップS502)。例えば、AES暗号化(AES-256-CBC)を用いることができる。また、有価物データの暗号化については、
図4及び
図5に示すように圧縮、MIMEを用いた方法でもよく、その他の暗号化方法でもよい。
【0086】
コロニーサーバ20は、暗号化した電子通貨データを、所定のサイズの部分データと、当該部分データ以外の残りのデータを含む本体データとに分離する(ステップS503)。例えば、部分データを暗号化した電子通貨データの先頭から30バイトまでのデータとし、本体データを31バイト以降から最後までのデータとすることができるが、これに限定されるものではない。
【0087】
センターサーバ10側では、部分データ(例えば、先頭30バイトのデータ)を保存するためのブロックチェーンの1ブロックを生成し(ステップS504)、部分データを含む暗号化キーを生成し(ステップS505)、生成された現在のブロックハッシュ値をコロニーサーバ20に通知する(ステップS506)。コロニーサーバ20側では、データベース(ハッシュ情報記憶部271)にハッシュ値を格納する(ステップS507)。有価物管理システムで生成される部分データを含むブロックチェーン及び本体データの詳細は、
図13から
図14に示す。
【0088】
図13は、センターサーバからアクセス可能なブロックチェーンにおける1ブロックと、コロニーサーバからアクセス可能な本体データとの関係を示す。また、
図14は、コロニーサーバにおいて独立して記憶される本体データの概要を示す。ブロックチェーン100の概要は、
図6に示したが、
図13においてより具体的に示すと、センターサーバ10のデータベース(暗号化キー記憶部173)に記憶されるブロックチェーン100の1つのブロック101Aには、例えば、少なくとも前のブロックのハッシュ値102Aと、現在のブロックのハッシュ値104Aと、暗号化キー105Aとを含む。ハッシュ値102A及び104Aは、例えば64バイトのデータとすることができる。現在のブロックのハッシュ値104Aは、センターサーバ10によって、所定の間隔で新たなハッシュ値に更新される。暗号化キー105は、更新されることなく固定されたデータである。暗号化キー105は、例えば、有価物データのファイル名と、取引又はファイル作成等の日時と、先頭から30バイトのデータとを含み、それらを暗号化したデータである。なお、ブロック101Aには、ブロック101Aを識別するための情報として4バイトのファイルIDを含めることができる。
【0089】
図13及び
図14を参照すると、コロニーサーバ20のデータベース(本体データ記憶部272)には、データブロック群200が格納される。データブロック群200に含まれる複数のデータブロック201Aから201Dは、ブロックチェーンを構成するものではなく互いに独立して記憶される。
【0090】
1つのデータブロック201Aには、例えば、少なくとも現在のブロックのハッシュ値204Aと、本体データ205Aとを含む。ハッシュ値204Aは、例えば64バイトのデータとすることができる。本体データ205Aは、例えば、有価物データの31バイト以降のデータであり、必要に応じて、有価物データのファイル名、利用者のユーザIDを適宜含めることができる。なお、データブロック201Aには、データブロック201Aを識別するための情報として4バイトのファイルIDを含めることができる。
【0091】
センターサーバ10は、現在のブロックのハッシュ値104Aを所定の間隔で更新して、コロニーサーバ20に通知する。所定の間隔は、24時間以下で1時間、2時間、3時間、4時間、5時間、6時間の間隔としても良いし、24時間よりも大きい間隔にしてもよい。コロニーサーバ20は、センターサーバ10からの通知を受け取り、ハッシュ値104Aと同じ値に、ハッシュ値204Aに更新することで、あたかも、ブロックチェーンにおいて暗号化キー105Aを含むブロックのハッシュ値104Aと、本体データ205Aを含むハッシュ値204Aとがリンクして更新しているように動作する。このような動作を本発明においては、代謝とも表現する。つまり、ハッシュ値104Aとハッシュ値204Aとが、所定の間隔で更新することを、リンクしながら代謝ともいう。
【0092】
このように、本発明に係る有価物管理システムは、有価物データを部分データと本体データとに分けて管理し、センターサーバ10の管理下にあるブロックチェーン100における1ブロックに暗号化キーとして記憶した部分データに対応するハッシュ値を、所定の間隔で更新するとともに、コロニーサーバ20における本体データに対応するハッシュ値を、部分データに対応するハッシュ値と同じ値に更新させること(つまり、リンクしながら代謝させること)で、不正アクセス等によってコロニーサーバ20から本体データが流出した場合であっても、不正に流出した本体データと対となる部分データを含む暗号化キーのハッシュ値は所定の間隔で更新されるため、当該本体データのハッシュ値に一致するハッシュ値を含む暗号化キーは存在しなくなり、不正に流出した本体データを解析しても、有価物データを復元するために必要な暗号化キーにたどり着くことは困難となり、有価物データを復元することは実質的に不可能にすることができる。
【0093】
図15は、センターサーバにおいてブロックチェーンに新たに暗号化キーを含むブロックを接続する処理の流れを示すフローチャートである。
図15に示すフローチャートは、例えば、
図7に示したように、情報処理端末30からコロニーサーバ20を介してセンターサーバ10に有価物データの1つのである電子通貨データを登録する際の処理の流れに対応する。
【0094】
コロニーサーバ20は、情報処理端末30等から、有価物データの一例である電子通貨データの登録や生成等、電子通貨データへのアクセスあると(ステップS601)、センターサーバ10にその旨を通知し(ステップS602)、センターサーバ10ではブロックチェーン100のブロックの検証が行われる(ステップS602)。センターサーバ10は、ブロックチェーン100における複数のブロックの各々について有効か無効かを示す有効フラグを各ブロックに関連付けて記憶する。ブロックチェーン100の現在のブロック(例えば、末尾のブロック)に対応する有効フラグをチェックして(ステップ、S604)、有効でない場合(ステップS604のNO)には、エラーメッセージ等の通知処理を実行する(ステップS612)。
【0095】
ブロックチェーン100の現在のブロック(末尾のブロック)に対応する有効フラグが有効を示す場合(例えば、ステップS604のYES)には、センターサーバ10において、ブロックチェーン100に新たに追加するためのブロックを生成する(ステップS605)。そして、センターサーバ10は、ブロックチェーン100に新たに生成したブロック(新ブロック)を接続するために、新ブロックに電子通貨データの部分データ(例えば、先頭から30バイト)を格納する(ステップS606)。さらに、センターサーバ10は、いままで有効フラグが有効であったブロック(旧ブロック)の有効フラグを、無効を示す値に変更して(ステップS607)、ブロックチェーン100に新ブロックを追加する(ステップS608)。具体的には、ブロックチェーン100において、旧ブロックに新ブロックを接続する。
【0096】
その後、センターサーバ10は、電子通貨の部分データ(例えば、先頭30バイトのデータ)の追加が完了した旨とともに、新ブロックのブロックハッシュ値を、コロニーサーバ20に通知する(ステップS609)。コロニーサーバ20では、電子通貨の本体データ(例えば、31バイト以降のデータ)に対応するハッシュ値を、センターサーバ10から通知された新ブロックのハッシュ値に更新する(ステップS610)。コロニーサーバ20は、センターサーバ10への電子通貨の登録が成功したか否かをチェックし(ステップS610)、成功した場合(ステップS611のYES)には処理を終了し、失敗した場合(ステップS611のNO)にはエラーメッセージ等の通知処理を実行する(ステップS612)。
【0097】
図16は、センターサーバの管理下にあるブロックチェーンの構成を示す。ブロックチェーン100における1つのブロック101Aは、基本的には、
図13に示す構成と同様であり、直前のブロックのハッシュ値102Aと、現在のブロックのハッシュ値104Aと、暗号化キー105Aとを含む。その他のブロック101B、101Cについても同様である。ブロック101A、101B及び101Cの各々には、ナンス103A、103B及び103Cが含まれ、例えば、プルーフオブワークと同様の手法により、次のブロックをつなげるためのハッシュ値の計算に用いることができる。センターサーバ10が1台の場合には、ブロックチェーンの検証を省略できるため、ナンスを使用する必要がないが、有価物管理システムが複数のセンターサーバ10を備え、ブロックチェーン100が複数のセンターサーバ10の管理下にある場合には、各センターサーバ10において、ブロックチェーンの検証を行い、新たなブロックを追加するために、ナンスを使用することができる。
【0098】
ブロックチェーン100において、ブロック101Aとブロック101Bとは、ハッシュ値104Aとハッシュ値102Bとが同じ値であることで結合され、ブロック101Bとブロック101Cとは、ハッシュ値104Bとハッシュ値102Cとが同じ値であることで結合される。
【0099】
図17は、センターサーバのデータベースに記憶される各種情報の概要を示す。センターサーバ10のデータベースとして、例えば、
図2に示すように、コロニー情報を記憶するためのコロニー情報記憶部171と、ユーザ情報を記憶するためのユーザ情報記憶部172と、
図16に示したようなブロックチェーン100を記憶するための暗号化キー記憶部173とを備える。
図17(a)に示すコロニー情報は、例えば、コロニー情報記憶部171に記憶される。コロニー情報としては、例えば、センターサーバ10に接続される1以上のコロニーサーバ20のコロニーサーバIDと、コロニーサーバ20に情報処理端末30からログインする利用者のユーザIDと、コロニーサーバID及びユーザIDが有効(TRUE)であるか、いずれか一方が無効(FALSE)であるかを示す有効フラグとを含む。例えば、センターサーバ10は、コロニー情報記憶部171に記憶されたコロニー情報を参照して、有効フラグに基づいて有効なコロニーサーバID及びユーザIDを特定することができる。
【0100】
図17(b)に示すユーザ情報は、例えば、ユーザ情報記憶部172に記憶される。ユーザ情報としては、例えば、有価物管理システムの利用者のユーザIDと、メールアドレスと、ユーザID及びメールアドレスが有効(TRUE)であるか、いずれか一方が無効(FALSE)であるかを示す有効フラグとを含む。例えば、センターサーバ10は、ユーザ情報記憶部172に記憶されたユーザ情報を参照して、有効フラグに基づいて有効なユーザID及びメールアドレスを特定することができる。なお、本実施形態では、コロニー情報記憶部171に記憶されるコロニー情報及びユーザ情報記憶部172に記憶されるユーザ情報は、暗号化キー記憶部173に記憶されるブロックチェーン100に関連するデータとは独立して、別のデータとして記憶される。
【0101】
図18は、コロニーサーバのデータベースに記憶される情報の概要を示す。コロニーサーバ20のデータベースとして、例えば、
図2に示すように、ハッシュ情報を記憶するためのハッシュ情報記憶部271と、
図14に示したような本体データのデータブロック群200を記憶するための本体データ記憶部272とを備える。
図18に示すハッシュ情報は、例えば、ハッシュ情報記憶部271に記憶される。ハッシュ情報としては、例えば、ユーザIDと、本体データを保存するデータブロックのブロックハッシュ(例えば、64バイトのデータ)と、有価物の取引日時(年/月/日/時:分:秒(YYYY/MM/DD/HH:MM:SS))と、少なくともブロックハッシュ値が有効(TRUE)であるか、無効(FALSE)であるかを示す有効フラグとを含む。例えば、コロニーサーバ20は、ハッシュ情報記憶部271に記憶されたハッシュ情報を参照して、有効フラグに基づいて有効なハッシュ値か否かを判断することができる。
【0102】
センターサーバ10には、ブロックチェーンの改ざんを監視するための監視ボットと、ブロックチェーンを修復するための修復ボットとを備えることができる。ボットとは、一定のタスクや処理を自動化するためのアプリケーションやプログラムのことである。
図19は、例示的に、複数のブロック301Aから301Dが連結されたブロックチェーン300に対する、監視ボット及び修復ボットの処理の概要を示す。つまり、
図19は、ブロックチェーンにおいて改ざんを検出した際の各ブロックの凍結及び修復の処理の概要を示す。
図19にブロックチェーンの一例として示したブロックチェーン300は、
図16に示したブロックチェーン100と基本的には同じ構造を有するブロックチェーンである。
【0103】
監視ボットは、センターサーバ10の管理下にあるブロックチェーン300の常時監視を行うことができる。例えば、監視ボットが、ブロックチェーン300において、ブロック301Bに改ざん(不正な改変等)を見つけた場合には、センターサーバ10又は監視ボットは、例えば、ブロック301Bに対応するフラグを無効にすることでブロック301Bを無効化するとともに、ブロック301B以降のブロック、つまり、ブロック301Bに連結されたブロック301C、ブロック301Cに連結されたブロック301Dも同様に無効化する。このようにブロックを無効化することを、ここではブロックを凍結するともいう。
【0104】
不正改ざんが見つかったことに応じて、不正改ざんブロック以降のブロックを凍結した後、修復ボットによって、ブロックチェーン300の修復処理が実行される。修復ボットは、センターサーバ10の管理下にあるブロックチェーン300とは独立して管理された帳簿データベース(図示せず)を参照して、正しい取引記録に基づいて、改ざんされたブロック301B以降のブロックを復元するために、ブロックの修正を行う。例えば、銀行等の金融機関において、センターサーバ10を運用する場合には、センターサーバ10とは、完全に独立したサーバの帳簿データベースによって有価物の取引記録が格納されている。この帳簿データベースを参照することで、センターサーバ10の管理下にあるブロックチェーン300を復元することができる。
【0105】
図19に示す修復処理の例では、修復ボットにより、帳簿データベースを参照して修復されたブロック302Bが生成され、ブロック301Aのハッシュ値を書き換えて、ブロック302Bのハッシュ値をブロック301Aのハッシュ値と同じにすることで、ブロック301Aに、ブロック302Bを結合する。同様に、ブロック302Cは、修復ボットにより、帳簿データベースを参照して修復されたブロックであり、ブロック302Cのハッシュ値をブロック302Bのハッシュ値と同じにすることで、ブロック302Bに、ブロック302Cを結合する。ブロック302Dについても同様である。
【0106】
修正ボットの修正中に、新しい取引があった場合、例えば、ブロック302Bが修正された後に、新たな取引があると、ブロック302Bとブロック302Cとの間に、新たなブロック303Aが挟み込まれる。つまり、ブロック302Bが修正された後に、新たな取引記録を格納するブロック303Aが生成されて、ブロック303Aのハッシュ値を、修正されたブロック302Bのハッシュ値と同じにすることで、ブロック302Bにブロック303Aが連結される。同様に、ブロック303Aにブロック302Cが連結され、ブロック302Cにブロック302Dが連結される。
【0107】
図20は、ブロックチェーンを監視して改ざんを検出した際の処理の流れを示すフローチャートである。監視ボットは、例えば、センターサーバ10に少なくとも一時的に常駐して、ブロックチェーン(例えば、ブロックチェーン100)を常時監視する処理を実行する(ステップS701)。監視によってブロックチェーンにおけるブロックに改ざん(不正な改変等)が見つかったか否かをチェックし(ステップS702)、見つからない場合(ステップS702のNO)には、監視処理(ステップS701)を続行する。改ざんが見つかった場合(ステップS702のYES)には、
図19に示したように、監視ボット又はセンターサーバ10が、不正に改ざんされたブロックを凍結する処理を実行する(ステップS703)。そして、ブロックチェーンの構成をチェックした(ステップS704)後、改ざんされたブロック以降に連結されたブロックも同様に凍結処理を実行する(ステップS705)。
【0108】
ブロックチェーンの改ざんブロックを凍結した後、センターサーバ10は、管理者にメールを送信し(ステップS706)、メール送信が成功したか否かをチェックし(ステップS707)、失敗した場合(ステップS707のNO)には、メールの送信を再度実行する(ステップS706)。メールの送信が成功した場合(ステップS707のYES)には、ブロックチェーンの凍結の影響がおよぶコロニーサーバ20の各々の管理者にメールを送信する(ステップS708)。
【0109】
各コロニーサーバ20の管理者へのメールの送信が成功したか否かをチェックし(ステップS709)、成功した場合(ステップS709のYES)には、処理を終了する。メール送信が失敗した場合(ステップS709のNO)には、センターサーバ10の管理者にメールを送信してその旨を連絡して(ステップS710)、メール送信が失敗したコロニーサーバの管理者へのメール送信をリトライする(ステップS708)。
【0110】
図21は、ブロックチェーンにおけるブロックを凍結する処理の流れを示すフローチャートである。
図20に示すフローチャートとは別の実施形態である。利用者が手動でブロックチェーンのブロックに対応するデータを取得するか、又はボットの代謝処理(更新されたハッシュ値を通知する処理)等の際にブロックチェーンのブロックに対応するデータにアクセスする(ステップS801)。当該データに対応する保存されたファイルのハッシュ値を比較して(ステップS802)、改ざんされていないか否かをチェックする(ステップS803)。改ざんされていない場合(ステップS803のYES)には、正常に処理を終了し、改ざんされている場合(ステップS803のNO)には、センターサーバ10から利用者(及び管理者)のメールアドレスを取得し(ステップS804)、利用者及びコロニーサーバ管理者宛にメール送信を行い、メール送信が成功したか否かをチェックする(ステップS805)。メール送信が成功した場合(ステップS805のYES)には、該当するデータを凍結する(つまり、そのデータが無効であることを示すために、そのデータに関連する有効または無効を示すフラグをオフする)(ステップS806)。メール送信が失敗した場合(ステップS805のNO)には、再度メールの送信を行ってメールの送信状況をチェックする(ステップS805)。
【0111】
図22は、ブロックチェーンを修復する処理の流れを示すフローチャートである。ブロックチェーンの凍結処理後に、センターサーバ10において、コロニーサーバ20から有価物データの部分データとともに新たにブロックを追加する指示を受け(ステップS901)、ブロックチェーンの末尾が凍結状態か否かをチェックする(ステップS902)。チェーンの末尾が凍結状態にない場合(ステップS902のNO)には、ステップS905に進む。ブロックチェーンの末尾が凍結状態にある場合(ステップS902のYES)には、ブロックチェーンを辿り凍結されていないブロックを探す(ステップS903)。凍結されていないブロックを見つけると、凍結されていないブロックに新たなブロックを連結することで、チェーンを分岐させる(ステップS904)。そして、コロニーサーバ20から受け取った部分データを含む暗号化キーを生成して(ステップS905)、暗号化キーを格納してブロックチェーンの生成を行う(ステップS906)。最後に、センターサーバ10は、
図7に示す有価物データの登録の処理と同様に、コロニーサーバ20に生成したブロックのハッシュ値を通知する(ステップS907)
【産業上の利用可能性】
【0112】
本発明に係る有価物管理システム等は、インターネット等のネットワークを介して暗号資産、仮想通貨、電子通貨、有価証券等の有価物データを、クラウドを構成する複数のサーバで安全に保存し、利用者が使用する情報処理端末からの要求に応じて、当該端末に有価物データを適宜取得させるような電子商取引などに利用可能である。
【符号の説明】
【0113】
10 :センターサーバ
11 :CPU
12 :メモリ
13 :バス
14 :入出力インターフェース
15 :入力部
16 :出力部
17 :記憶部
18 :通信部
20 :コロニーサーバ
20A :コロニーサーバ
20B :コロニーサーバ
21 :CPU
22 :メモリ
23 :バス
24 :入出力インターフェース
25 :入力部
26 :出力部
27 :記憶部
28 :通信部
30 :情報処理端末
30X :情報処理端末
30Y :情報処理端末
100 :ブロックチェーン
101A :ブロック
101B :ブロック
101C :ブロック
102A :ハッシュ値
102B :ハッシュ値
102C :ハッシュ値
103A :ナンス
103B :ナンス
104A :ハッシュ値
104B :ハッシュ値
105 :暗号化キー
105A :暗号化キー
111 :部分データ管理部
112 :ハッシュ通知部
171 :コロニー情報記憶部
172 :ユーザ情報記憶部
173 :暗号化キー記憶部
200 :データブロック群
201A :データブロック
204A :ハッシュ値
205A :本体データ
211 :分割送信部
212 :本体データ管理部
271 :ハッシュ情報記憶部
272 :本体データ記憶部
300 :ブロックチェーン
N1 :ネットワーク
N2 :ネットワーク
X :利用者
Y :利用者