非特許文献1記載の技術は、中央の管理者(financial institution)を無くしてトランザクション(送金や課金の取引)をP2Pネットワークにブロードキャストすることにより実現する。さらに、ブロックチェーン技術を使うことにより過去のデータ改ざん(残高不足や悪意をもった二重払い等)を検知する。このブロックチェーン全体をレッジャー(ledger、帳簿)と呼ぶこともある。
ブロックチェーン技術を使用することにより、改ざん等を簡単に検知できる。しかしながら、近時、検証時間が膨大になる一方、量子コンピュータ等により検証時間に大きな差が生じ、データを改ざんしたものが正当化され得るなどの問題が明らかとなってきている。さらに、仮想通貨の技術分野では、ノードのプロトコルの蓄積に力を注ぎ、クライアントのセキュリティの対策がほとんどないままで使用されている。
なお、他の仮想通貨は、ほとんどがビットコイン(BTC)を参考に改善をしている程度である。Rippleは、プライベート・ブロックチェーンを使用し、中央管理でコミッションベースのシステムである。Rippleは、BTCの特徴である分散管理とマイニングを打破してはいるが、BTCを置き換えるほどの革新的なシステムではない。
発明者は、BTCに生じている問題が、中央管理者を排除することを前提としたことにあると分析した。P2Pネットワークを使用するメリットは、本来、中央サーバにアクセスや処理が集中するような場合に、P2Pにより中央サーバを経由しないで行うことができることにある。しかしながら、現在の形態においては、一般のユーザが取引所とクライアント・サーバの関係を構築し、取引所に登録してウォレットをダウンロードして取引を行っている。本来、これらの一般のユーザが、P2Pによる処理での負荷分散のメリットを享受すべきであるが、実現できていない。
重要なのは、中央管理者がいないことではなく、改ざんができないことである。このような課題は、仮想通貨の技術分野に限らず、他の処理であっても同様に存在する。
特許文献1は、秘密保持の新たな手法に関するものである。
よって、本発明は、セキュリティに配慮しつつ、正当性を確保して履歴情報を運用することに適した正当性管理システム等を提供することを目的とする。
本願発明の第1の観点は、利用者に関する処理の履歴を示す履歴情報を運用する正当性管理システムであって、当該正当性管理システムは、利用者装置と分散装置と取引所装置と認証手段を備え、前記利用者装置は、前記履歴情報を分割処理して複数の分割ファイルを得る分割手段と、前記取引所装置に対して合成要求を行う処理手段を備え、前記分散装置は、前記複数の分割ファイルの一部又は全部を記憶する分割ファイル記憶手段を備え、前記取引所装置は、前記合成要求に応じて、少なくとも一つの分割ファイルを前記分散装置から受信して、前記複数の分割ファイルの一部又は全部を合成処理して合成ファイルを得る合成手段を備え、前記認証手段は、前記合成ファイルが前記分割処理から前記合成処理までの間に改ざんされてるか否かを判断し、前記処理手段は、前記認証手段により改ざんされていないと判断された前記合成ファイルに新たな処理の履歴を追加して新たな履歴情報とする。
本願発明の第2の観点は、第1の観点の正当性管理システムであって、前記利用者装置として、メッセージを送信する送信装置と、前記メッセージを受信する受信装置があり、前記認証手段は、前記メッセージを事前確認し、前記メッセージが正当である場合に、前記送信装置及び前記受信装置の前記処理手段は、それぞれ、前記メッセージを送信及び受信し、前記送信装置及び前記受信装置に対応する合成ファイルに、前記メッセージの送信処理及び受信処理の履歴を追加する。
本願発明の第3の観点は、第1又は第2の観点の正当性管理システムであって、前記複数の分割ファイルは、前記合成手段が1回しか合成に使用できない構造を有する特権分割ファイルと、前記合成手段が複数回合成に使用できる通常分割ファイルを含み、前記分割手段は、前記通常分割ファイルの一部又は全部を前記分散装置に記憶させ、前記特権分割ファイルを前記利用者装置に保持させて前記分散装置に保持させず、前記合成手段は、前記利用者装置から前記特権分割ファイルを受信し、前記分散装置から少なくとも一つの前記通常分割ファイルを受信し、前記特権分割ファイルと一つ又は複数の前記通常分割ファイルとを用いて合成処理を行う。
本願発明の第4の観点は、利用者に関する処理の履歴を示す履歴情報を運用する正当性管理方法であって、利用者装置が備える分割手段が、前記履歴情報を分割して複数の分割ファイルを得るステップと、分散装置が備える分割ファイル記憶手段が、前記複数の分割ファイルの一部又は全部を記憶するステップと、前記利用者装置が備える処理手段が、取引所装置に対して合成要求を行い、前記取引所装置が備える合成手段が、前記合成要求に応じて、少なくとも一つの分割ファイルを前記分散装置から受信して、前記複数の分割ファイルの一部又は全部を合成して合成ファイルを得るステップと、前記認証手段が、前記合成ファイルが前記分割処理から前記合成処理までの間に改ざんされてるか否かを判断し、前記処理手段は、前記認証手段により改ざんされていないと判断された前記合成ファイルに新たな処理の履歴を追加して新たな履歴情報とするステップを含む。
本願発明の第5の観点は、コンピュータを、第1から第3のいずれかの観点の分割手段として、又は、第1から第3のいずれかの観点の認証手段として機能させるためのプログラムである。なお、本願発明を、第5の観点のプログラムを記録するコンピュータ読み取り可能な記録媒体として捉えてもよい。
なお、認証手段は、ハッシュ値等を利用して改ざんの有無を判断するものとして捉えてもよい。さらに、認証手段は、分割処理時に、一部又は全部の分割ファイルが合成処理できることを確認するものとして捉えてもよい。さらに、認証手段は、メッセージ送受信において、送信側及び受信側の合成ファイルが改ざんされておらず、かつ、新たな履歴情報の分割ファイルの一部又は全部が合成処理できることを、個別に確認することに加えて、互いに確認できていることを通知するものとして捉えてもよい。
また、利用者装置及び取引所装置は、履歴情報や合成ファイルなどを、処理の間は記憶し、処理が終わると記憶しないものとして取られてもよい。例えば、利用者装置及び/又は取引所装置は、処理に必要な履歴情報等を主記憶装置に記憶し、補助記憶装置への書き込みは、しないものとしてもよく、少なくとも処理が終了しても保持する書き込み(持続的な書き込み)を行わずに処理時のキャッシュ等の一時的な書き込みは許容してもよい。また、利用者装置及び分散装置は、分割ファイルを補助記憶装置等に記憶して処理後も保存するものとして捉えてもよい。
本願発明の各観点によれば、取引所装置や認証手段を導入する。利用者は、認証手段という「検証する機関」と契約して自分の履歴情報が過去から現在まで改ざんされていないことを検証する。マイニングが不要であるためにマイナーによる過度な競争を防止することができる。さらに、利用者装置は分割エンジンがあって合成エンジンがなく、取引所装置には合成エンジンがあって分割エンジンがない。履歴情報(ヒストリーファイル、レッジャーなど)は、利用者装置が例えば自身とは利害関係のない第三者の分散装置に秘密分散する。他方、取引所装置は、分割エンジンがないために、秘密分散されたファイルを合成しても、改ざんして再度分割保存することはできない。これにより、利用者も取引所も、互いに牽制し、単独では履歴情報を改ざんできないシステムを実現することができる。
特に、非特許文献1では、利用者が管理する秘密鍵の保管方法が規定されておらず、秘密鍵が失われてしまうと復元することができなかった。本願発明の各観点によれば、分割ファイルを利用して、従来と同様に、利用者装置が壊れれば履歴情報を合成できない運用を採用することも、利用者装置が壊れたりしても分割ファイルから履歴情報を合成できる運用を採用することもできる。
さらに、本願発明の各観点によれば、例えば分散装置が記憶領域を提供する等の処理を行うものであるため、例えばIoTデバイス(冷蔵庫やオーブンなどの家電など)でも利用することができる。なお、本願発明では、例えば、クライアント(利用者装置、分散装置、利用者装置に分散装置の機能を併せて実現させたもの、など)が提供した空きストレージ容量に対して報酬を支払う運用であってもよい。このように、世の中の各装置における余分な記憶スペースを有効に活用することができる。特に、利用者ごとの履歴情報を管理するため、非特許文献1などと比較して保存されるデータは極めて小さくて済む。ただし、仮に個人の履歴情報が時間経過と共に大きくなってきた場合には、(一部又は全部を)ブロックチェーン化して「固める」ことを排除するものではなく、併用することができる。
さらに、本願発明の第2の観点によれば、利用者装置の間で真にP2Pのメカニズムによってメッセージ通信を行う。そのため、利用者装置は、中央サーバを経由しない等のP2Pのメリットを享受することができる。すなわち、仮想通貨の技術分野でいえば、トランザクションは、ウォレットからウォレットに直接送られる。取引所においてトランザクションを改ざんすることはできない。
さらに、本願発明の第3の観点によれば、分割ファイルに、通常分割ファイルに加えて特権分割ファイル(特権小片)を含ませることにより、例えば、取引所は特権小片を利用しなければ合成できないとし、利用者は、特権小片を適切に管理することにより、取引所からの情報漏洩等を防止することができる。仮に、通常分散ファイルの改ざんや通信途中のビット落ちなどが生じたとしても、他の通常分割ファイルを利用して合成すること等が可能である。
以下、図面を参照して、本願発明の実施例について述べる。なお、本願発明の実施の形態は、以下の実施例に限定されるものではない。
図1及び図2は、それぞれ、本願発明の実施の形態の一例に係る正当性管理システム1の構成及び処理の一例を示す図である。
図1の正当性管理システム1は、利用者Aに関する処理の履歴を示す履歴情報を運用するためのものである。
図1(a)を参照して、正当性管理システム1は、利用者装置3(本願請求項の「利用者装置」の一例)と、分散装置51及び52(本願請求項の「分散装置」の一例)(添え字は省略する場合がある。)と、取引所装置7(本願請求項の「取引所装置」の一例)を備える。利用者装置3は、利用者Aが利用している。分散装置5は、他の利用者が利用している。利用者装置3及び分散装置5は、取引所装置7の管理下にある。
例えば、利用者装置3及び分散装置5は、スマートフォンやパソコンのように個人で使用している情報処理装置などである。プログラム等を利用して利用者装置と分散装置の機能を共に実現し、当該情報処理装置の利用者との関係では利用者装置として、他の利用者との関係では分散装置として捉えることができる。取引所装置7は、サーバなどである。簡単のために、利用者装置3及び取引所装置7が一つずつであり、分散装置5が2つであるとする。
図1(b)を参照して、利用者装置3は、特権分割ファイル記憶部13と、処理部17(本願請求項の「処理手段」の一例)と、利用者側ハッシュ値演算部19と、分割部21(本願請求項の「分割手段」の一例)と、利用者側認証部23と、通信部25を備える。
図1(c)を参照して、分散装置5は、通常分割ファイル記憶部31(本願請求項の「分割ファイル記憶手段」の一例)と、処理部33と、通信部35を備える。
図1(d)を参照して、取引所装置7は、装置情報記憶部41と、処理部47と、取引所側ハッシュ値演算部49と、合成部51(本願請求項の「合成手段」の一例)と、取引所側認証部53(利用者側認証部23と取引所側認証部53が、本願請求項の「認証手段」の一例である。)と、通信部55を備える。
図2の(a)及び(b)を参照して、履歴情報を分割して分散処理を行う処理について説明する。
分割部21は、例えば特許文献1記載の手法などにより、履歴情報を秘密分散して分割し、複数の分割ファイルを得る(ステップSTD1)。
履歴情報は、例えば、利用者装置の利用者が送った全てのメッセージの記録や、仮想通貨のアプリケーションに於いてはレッジャー(仮想通貨のやり取り(送信・受信)であるトランザクションの時系列的履歴情報)などである。利用者装置3では、例えば主記憶装置において履歴情報を記憶する。
分割ファイルは、特権分割ファイルと通常分割ファイルが存在する。特権分割ファイル及び通常分割ファイルは、履歴情報を特許文献1記載の手法により分割処理して得られる小片である。特権分割ファイルは、合成部51が1回しか合成に使用できない構造を有する小片である。合成部51が複数回合成に使用できる小片である。(特許文献1参照)。特権分割ファイルは利用者装置3に保存し、通常分割ファイルは分散装置5に保存する。
分割部21は、分散処理を行う(ステップSTD2)。具体的には、分割部21は、特権分割ファイルを特権分割ファイル記憶部13に記憶する。分割部21は、通信部25を用いて取引所装置7に対して通常分割ファイルを管理すべき分散装置を問い合わせる。取引所装置7の装置情報記憶部41は、管理下にある利用者装置及び分散装置に関する情報を記憶する。処理部47は、装置情報記憶部41の分散装置に関する情報を用いて管理下にある分散装置のうち、利用者Aとは関係性が認められない利用者装置を検索し、これを分散装置51とする。処理部47は、装置情報記憶部41において分散装置51に利用者装置3の通常分割ファイルがあることを管理し、利用者装置3に対して通信部55を用いて分散装置51を特定する情報を提供する。分割部21は、通信部25を用いて通常分割ファイルを分散装置51に送信する。分散装置51の処理部33は、通信部35により受信した通常分割ファイルを通常分割ファイル記憶部31に記憶する。通常分割ファイル記憶部31は、補助記憶装置により実現され、処理が終了しても情報を保持することができる。
なお、分割部21における分割処理において、分割数と合成数は任意である。例えば他の利用者のストレージにアクセスできない場合(通信契約解除等)等を考慮し、例えば、安全のために合成数を3~5合成とし、分割数は20~30などとすることが考えられる。他方、特権分割ファイルは、履歴情報の合成を依頼する都度必要になるため、10~20個を生成する。なお、足りなくなれば最後の特権分割ファイルを使用して再分割すればよい。
例えば、特許文献1の技術において、合成数を2、分割数を10とし、10個の分割暗号文E1,…,E10と分割鍵K1及びK2の組合せSq(q=1,…,10)とする。ここで、S1=(E1,K1)及びSq=(Eq,K2)(q=2,…,10)とする。例えば、S1が通常分割ファイルである。Sq(q=2,…,10)に加えて、合成部51が1回しか合成に使用できない構造を設けたものが特権分割ファイルである。1回しか合成に使用できない構造は、例えば、カウンタ、フラグ、セマフォなどを使用して実現することができる。フラグを例に説明すると、合成部51は、利用者装置3から特権分割ファイルSqの一つを受信し、分散装置5からS1を受信して、合成処理を行う。合成部51は、使用した特権分割ファイルにおいて、フラグを未使用状態から使用状態に変更させる。合成部51は、フラグが使用状態のものは、合成処理に使用しない。これにより、使用した特権分割ファイルは、2回以上は使用しないようにする。
図2の(c)~(f)を参照して、履歴情報の更新処理について説明する。
図2の(c)及び(f)を参照して、利用者装置3の処理部17は、例えば非特許文献1における新たに送金処理を行うなどの処理を行う場合に、取引所装置7に対して、新たな処理が正当であるか否かの事前判断を求める認証依頼をする(ステップSTN1)。取引所側認証部53は、利用者Aが新たな処理を行うことが正当であるか否かを判断する(ステップSTN2)。例えば、仮想通貨の支払いであれば、直前の利用者Aの残高と比較して、利用者Aが支払う額以上の仮想通貨を所持しているならば正当と判断し、所持していないならば正当でないと判断する。ここで、取引所装置7は、利用者Aの最終の残高を示す情報は保持しているが、その履歴情報は保持していない。取引所側認証部53が正当であると判断したならば利用者装置3に伝えてステップSTN3に進む。正当でないと判断したならば、取引所側認証部53は、エラー処理(ステップSTN14)として利用者装置3に対して新たな処理を行うことは正当でないことを伝え、処理を終了する。
図2の(d)及び(f)を参照して、ステップSTN3において、利用者装置3の処理部17は、取引所装置7に対して、1つの特権分割ファイルを送信して合成依頼をする。合成部51は、装置情報記憶部41を参照して分散装置51に対して通常分割ファイルの送信を依頼する。分散装置51の処理部33は、取引所装置7に対して通常分割ファイルを送信する(ステップSTN4)。合成部51は、特権分割ファイル及び通常分割ファイルを用いて復号及び合成処理を行い、合成ファイルを得る(ステップSTN5)。取引所側ハッシュ値演算部49は、合成ファイルに対して取引所側ハッシュ値(第1ハッシュ値)を得る。取引所側認証部53は、取引所側ハッシュ値の認証処理を行う(ステップSTN6)。具体的には、取引所側認証部53は、前回の合成処理において計算した取引所側ハッシュ値(第2ハッシュ値)を記憶しており(ステップSTN15参照)、第1ハッシュ値と第2ハッシュ値を比較して、同じであれば正当(前回の合成処理から改ざんはない)と判断し、異なれば不当と判断する。なお、利用者Aについて取引所側ハッシュ値を初めて演算するときには、初期値と比較して判断すればよい。
取引所側認証部53は、取引所側ハッシュ値の正当性を判断し、正当であると判断したならば、処理部47は、管理下にある分散装置を検索して新たな分散装置52とし、利用者装置3に対して、合成ファイル及び新たな分散装置52を特定する情報を通知する(ステップSTN7)。利用者側ハッシュ値演算部19は、受信した合成ファイルのハッシュ値を計算する。利用者側認証部23は、前回に計算された利用者側ハッシュ値(ステップSTN10参照)と同じか否かを判断する(ステップSTN8)。同じであるならば、前回の履歴更新から改ざんはないとしてステップSTN9に進む。同じでないならば、利用者側認証部23は、エラー処理(ステップSTN14)として、合成ファイルが改ざんされたものであることを伝え、処理を終了する。
なお、利用者側認証部23及び取引所側認証部53は、異なる特権分散ファイルと通常分割ファイルの組合せにより合成処理を繰り返しても正当な合成ファイルを得ることができない場合に、改ざんされたと判断してもよい。
図2の(e)及び(f)を参照して、ステップSTN9において、利用者装置3の処理部17は、送金処理等の新たな処理を行い、合成ファイルに対して新たな処理についての履歴を追加して新たな履歴情報(新履歴情報)とする。ここで、履歴情報は、単に新たなメッセージを追加するだけでなく、例えば一定量及び/又は一定期間などの履歴を考慮するようにしてもよい。利用者側ハッシュ値演算部19は、新履歴情報に対して利用者側ハッシュ値を計算する(ステップSTN10)。分割部21は、新履歴情報に対して秘密分散により複数の新分割ファイルを得(ステップSTN11)、分散処理を行う(ステップSTN12)。具体的には、分割部21は、新たな特権分割ファイルを特権分割ファイル記憶部13に記憶する。分散装置52の処理部33は、新たな通常分割ファイルを通常分割ファイル記憶部31に記憶する。
利用者装置3の処理部17は、取引所装置7に対して特権分割ファイルを送信して合成確認依頼を行う(ステップSTN13)。取引所側認証部53は、合成部51により分散装置52から通常分割ファイルを受信して合成処理を行うことができるか否かを判断する。合成処理ができるならば、取引所側ハッシュ値演算部49は、合成処理により得られた新合成ファイルに対してハッシュ値を計算して(ステップSTN15)、処理を終了する。合成処理ができなければ、正当でないと判断したならば、取引所側認証部53は、エラー処理(ステップSTN14)として、利用者装置3に対して合成処理ができないことを伝え、処理を終了する。
計算した利用者側ハッシュ値(ステップSTN10参照)及び取引所側ハッシュ値(ステップSTN15参照)は、次回のハッシュ値での確認処理(ステップSTN6、ステップSTN8参照)において使用するため、補助記憶装置などで記憶しておく。また、利用者Aの仮想通貨の所持額などについても、次回の新たな処理の正当性判断(ステップSTN2)において使用するため、補助記憶装置などで記憶しておく。
本実施例では、複数の利用者に関する情報処理の履歴情報の運用の例を説明する。図3を参照して、利用者Sが利用者Nにメッセージを送信する場合を例に具体的に説明する。なお、各装置が行う処理は、明示が無い場合、例えば各装置の処理部が行う。
図3では、正当性管理システムにおいて、利用者装置として、利用者Sが利用する送信装置71と、利用者Rが利用する受信装置61がある。分散装置として、送信側分散装置73と、受信側分散装置63がある。取引所装置として、送信側取引所装置75と受信側取引所装置65がある。利用者装置、分散装置、取引所装置の構成は、それぞれ、図1の(b)、(c)及び(d)と同じである。
送信装置71及び送信側分散装置73は、送信側取引所装置75の管理下にある。受信装置61及び受信側分散装置63は、受信側取引所装置65の管理下にある。
図3(a)を参照して、送信装置71及び受信装置61による分散処理について説明する。送信装置71と受信装置61は、それぞれ、図2(a)及び(b)と同様にして、履歴情報を分割処理し、特権分割ファイルを自身で保存し、送信側取引所装置75及び受信側取引所装置65に問い合わせて指定された送信側分散装置731及び受信側分散装置631に通常分割ファイルを保存する。
図3(b)~(e)を参照して、送信装置71が受信装置61にメッセージを送信する情報処理について説明する。
図3(b)を参照して、送信装置71の利用者Sは、利用者Rにメッセージを伝えるために送信装置71を操作する。送信装置71は、送信側取引所装置75に対し、利用者Rへのメッセージの事前確認を依頼する(図2のステップSTN1参照)。送信側取引所装置75の取引所側認証部は、利用者Sがメッセージの内容を事前確認し、正当か否かを判断する(図2のステップSTN2参照)。正当でないならば、送信装置にその旨伝える。
図3(c)を参照して、正当であるならば、送信装置71は、送信側取引所装置75に対して、メッセージの送信準備を依頼する。送信側取引所装置75は、正当性管理システムの他の取引所装置に対して、管理下に利用者Rが使用する受信装置61がある場合に連絡する依頼(利用者Rの連絡先通知依頼)をブロードキャストする。なお、取引所装置の連絡先は、図示を省略する中央サーバにて管理している。管理下に利用者Rが使用する利用者装置がない取引所装置は、依頼した取引所装置に対して、管理していない旨通知してもよく、何も通知しなくてもよい。
受信側取引所装置65は、利用者Rの連絡先通知依頼を受信すると、受信装置61が管理下にあることから、受信装置61に対して利用者Sからのメッセージを受信するか否かの受信確認を行う。受信装置61は、メッセージを受信する場合、その旨を受信側取引所装置65に伝える(図2のステップSTN1参照)。受信側取引所装置65は、受信装置61より受信を行うことの連絡があったならば、受信装置61がメッセージの受信処理を行うことが正当と判断し(図2のステップSTN2参照)、送信側取引所装置75に対して利用者Rへの連絡先情報として、受信装置61の連絡先情報(送信装置71が受信装置61にメッセージを送信するためのアドレス等)を伝える。
送信側取引所装置75は、一定時間経過しても利用者Rが使用する利用者装置に関しての情報が得られない場合、及び、受信装置61が受信を拒否した場合、送信装置71に対して受信装置61にメッセージを送信することができないことを伝える。
送信側取引所装置75は、受信側取引所装置65から受信装置61の連絡先情報を受信すると、送信装置71に対して、メッセージ送信を正当と判断して、受信装置61の連絡先情報を伝える。送信装置71は、受信装置61の連絡先情報を用いて受信装置61に対してメッセージを送信する。受信装置61は、メッセージを受信する。受信装置61は、メッセージを受信すると、受信側取引所装置にAckを送信し、メッセージを受信したことを伝える。
図3(d)を参照して、受信装置61は、受信側取引所装置65に対して、メッセージを受信することを承諾する旨送信することに併せて、特権分割ファイルを送信して合成処理を依頼する(図2のステップSTN3参照)。受信側取引所装置65は、受信側分散装置631から通常分割ファイルを受信して合成処理を行い、改ざんがなければ合成ファイルを受信装置61に送信する(図2のステップSTN4~STN6参照)。
図3(e)を参照して、受信装置61は、合成ファイルの改ざんがないことを確認し、合成ファイルにメッセージを受信した処理の履歴を追加して新履歴情報を得、分割処理を行って受信側分散装置632に新通常分割ファイルを格納する(ステップSTN7~STN12参照)。受信側取引所装置65は、合成できることを確認し、その結果を送信側取引所装置75に連絡する(ステップSTN13~STN15参照)。
図3(d)を参照して、送信装置71は、送信側取引所装置75に対して、メッセージ認証確認を送信することに併せて、特権分割ファイルを送信して合成処理を依頼する(図2のステップSTN3参照)。送信側取引所装置75は、送信側分散装置731から通常分割ファイルを受信して合成処理を行い、改ざんがなければ合成ファイルを送信装置71に送信する(図2のステップSTN4~STN6参照)。
図3(e)を参照して、送信装置71は、合成ファイルの改ざんがないことを確認し、合成ファイルに受信装置61にメッセージを送信した処理の履歴を追加して新履歴情報を得、分割処理を行って送信側分散装置732に新通常分割ファイルを格納する(ステップSTN7~STN12参照)。送信側取引所装置75は、合成できることを確認する。そして、受信側取引所装置65において合成できることの連絡を受け、さらに、送信側取引所装置75でも合成できるならば、その結果を受信側取引所装置65に連絡し(ステップSTN13~STN15参照)、送信装置71に対して正当であることを伝える。
受信側取引所装置65は、送信側取引所装置75において合成できることの連絡を受けたならば、受信装置61に対して正当であることを伝える。
このように、複数の利用者装置が関係する処理の履歴については、各利用者装置が所属する各取引所装置が正当であると判断し、かつ、これらの取引所装置がすべて正当と判断した場合に、複数の利用者装置における処理が正当であると判断すればよい。
なお、例えば、図1及び図2の利用者装置と取引所装置が共謀すること、さらには、図3の送信装置と送信側取引所装置と受信装置と受信側取引所装置が共謀することをチェックするために、PKIでいうところの認証局を使うことができる。
前提として、認証局は公正であり、メカニズムの都合上、一般で言うところの秘密鍵が実は公開鍵であり(PrvKey)と表記し、一般で言うところの公開鍵が実は秘密鍵であり(PubKey)と表記する。
認証局は事前に登録された会員から秘密鍵と公開鍵の生成を要求されたら、会員から送られてきた情報がパラメーターの一部となる(PrvKey)を元に、公開鍵(PubKey)を生成し、公開鍵(PubKey)を会員に戻し、秘密鍵(PrvKey)は他の会員から公開要求があった時のために認証局で保管しておく。つまり、(PrvKey)は一般に公開されるので、通常でいう公開鍵に相当するが、実際には秘密鍵なのである。他方、(PubKey)はBTCでいう秘密鍵に相当し、会員はこの鍵を使ってトランザクションを暗号化し、送金相手(受益人)にP2Pで送るものとする。受益人は認証局に送信元のIDで検索してもらい、送金人の(PrvKey)を送ってもらう。受益人も認証局に事前に登録された会員であることから、誰が(PrvKey)を要求して来て、開示したかのログは残る。受益人は認証局から送ってもらった(送金人の)(PrvKey)でトランザクションを復号し、読むことができる。(PrvKey)と(PubKey)はトランザクションごとに発行され、使い捨てである。
このように、全ての会員が最初のトランザクションからこの操作を行なえば、認証局は各トランザクションが残高の範囲内で行われていることをチェックし、残高を含む(PrvKey)が更新されていくことになる。認証局はこれのログを保存しておけば、各会員の残高の動きが追跡できることになり、過去を改ざんしようとした場合でも、動きを再確認することができる。また公開されている(PrvKey)を要求してくるリクエストもログを取っておけば、誰と誰が何かを起こそうとしている、という情報も集積することができる。
また、利用者は、自分担当の「電子公証人」を選定し、ここに自分の遺言状を預けるようにしてもよい。ここで、遺言状を預けることは、通信が一定期間途絶えた場合等に、自分の資産に関する処理(特定の誰かに引き渡す、寄付するなど)の指示を電子公証人に委託する行為である。利用者は、電子公証人に最新のロケーション情報、特権分割ファイル、処理内容を記載したメッセージを預ける。電子公証人は、定期的に利用者装置を呼び出して、連絡が取れるかどうかを確認し、もし一定期間連絡が取れない場合には、その指示を実行する。
電子公証人を使用することにより、ドーマント(口座の休止状態)となった状態でも、利用者は、口座の残高等を自分の他の口座、あるいは相続人の口座に自動的に移動することができる。また、ドーマント(口座の休止状態)になってから遺言実行までの期間を短くして、例えば利用者装置が故障した場合などに、直ちに口座と利用者装置を切り替えることができる。
この「電子公証人」による処理を実現するために、処理の開始時等に設定を行い、分散処理(図2のステップSTD2、STN12など)において、特権分割ファイルを、自身で保存することに加えて「電子公証人」にも預けるようにすればよい。
なお、図3では、(b)メッセージの事前確認と(c)送信準備等とを別に依頼しているが、同時に依頼し、送信側取引所装置75は、メッセージの事前確認で正当であるならば、引き続き送信準備等の処理を行うようにしてもよい。
図3を用いて説明したように、本願発明は、メッセージの安全な送受信として捉えることができる。さらに、仮想通貨を運用するシステムへ応用することができる。この例を説明することにより、非特許文献1の技術との本質的な違いを明らかにする。
非特許文献1での「取引所」「会員」は、本願発明の「取引所装置」「利用者」に対応する。決定的に異なるのは、本願発明の「取引所装置」が認証機能も果たすことである。さらに、秘密分散エンジンには、「分割エンジン」と「合成エンジン」があり、これは別物として運用される。
中央管理者として、運営母体のコミュニティサーバ(図示省略)が存在する。利用者は、取引所装置に登録し、コミュニティサーバから、自身が使用する装置(クライアント)にクライアント用のアプリケーション・ソフト(ウォレットソフト)をダウンロードして使用する。なお、利用者が取引所装置に登録するときに、身分証明等を行ってもよい。また、全ての取引所装置も、自分(の所在地)をコミュニティサーバに登録する。これにより、取引所装置と別の取引所装置がP2P通信をできる。
このウォレットソフトは、利用者が使用する装置を、利用者装置として機能させるとともに、分散装置としても機能させる。利用者は、利用者同士でストレージ(自分の利用者装置に搭載してあるストレージデバイスの容量)を提供する(貸し出す)。運営母体は、利用者に、貸し出すストレージに対してストレージ料を支払ってもよい。ただし、クライアントは常に取引所から評価されており、例えば、応答速度、データ転送速度、容量、ダウンタイムの少なさ、などで評価点が与えられる。クライアントは、主に「近傍」のクライアントに対してストレージを提供する。利用者装置は、主に「近傍」の分散装置のストレージを利用する。ここで、「近傍」とは、特定のクライアントと別のクライアントとが近いときに、その位置を近傍と呼ぶ。例えば、IPアドレスの近さ、距離的な近さ、取引所装置からのアクセスの速さ、ファイルの転送速度の速さ、などを指す。
仮想通貨のやり取り(送信・受信)をトランザクションという。このトランザクションの時系列的履歴情報を「レッジャー」と呼ぶ。データベースでいえば、トランザクションはレコードとなり、レコードが集まったレッジャーがデータベースである。
図3を参照して、送信側取引所装置75及び受信側取引所装置65は、それぞれ、利用者S及びRが保有する仮想通貨の額は保持するものの、その経過は保有する必要はない。
送信装置71は、メッセージ(トランザクション)の作成の準備に入る。送信装置71は、送信側取引所装置75に以下の情報を送る。送信相手である受信装置61の識別子、送金予定額、合成処理をするための特権分割ファイル(ワンタイム特権小片)、更新された通常分割ファイルを分割保存する分散装置の数。
送信側取引所装置75は送信装置71から送られて来たワンタイム特権小片を使い合成処理を行い、これのハッシュ値を取り、これと前回より保存したハッシュ値を比較する。一致していれば(前回より改変がないということで)送信側取引所装置75は送金予定額に対して残高が足りているかどうかを確認する。不足していれば送信装置71にエラーを返す。同時に送信側取引所装置75は近傍で保管できる分散招致のIPアドレスを、要求された分割数分だけ、「評価点の高い」提供者の中から空き容量を確認しておく。
送信側取引所装置75は、受信装置61の所在地(IPアドレス)を全ての取引所装置に問いかける。受信側取引所装置65は、受信装置61が自分の会員であることから、送信側取引所装置75に「受信装置61が自分の会員であること」を知らせる。
送信側取引所装置75は受信側取引所装置65から受信装置61が自分の会員である連絡を受けると、以下の情報を受信側取引所装置65に送る。送信装置71から(送金のための)情報開示要求が来ていること、送信装置71の名前とIPアドレス、送信装置71の現在の残高と送金予定金額。受信側取引所装置65はこの情報を受けると、これを受信装置61に伝える。
受信装置61はこれを受け、この送金を受領するのであれば、送信装置71に以下の情報を送る。自分のID、現在のIPアドレス、自分の公開鍵。
他方、送信側取引所装置75は、残高が足りていれば以下のものを送信装置71に送る。履歴情報、新たな履歴情報を保存する分散装置のIPアドレス(要求された数だけ)。
送信装置71は送信側取引所装置75から送られてきた履歴情報のハッシュ値を取り、これと前回保存したハッシュ値を比較する。一致していれば(前回より改変がないということで)残高を確認し、不足がなければトランザクション(メッセージ)を作成、これを受信装置61から送られてきた受信装置61の公開鍵で暗号化し、これを受信装置61に直接(IPアドレス宛に)送る。受信装置61はトランザクション(メッセージ)を受け取ったら、秘密鍵で復号し内容を確認、もし受け取った残高に不足がなければ送信装置71に受領メッセージを返す。
送信装置71は受信装置61からの受領メッセージを確認してから、履歴情報に今回のトランザクションを加え、この新しい履歴情報のハッシュ値を取り、それを自分で保管し、その履歴情報を秘密分散する。この時、ワンタイム特権小片を適当数作成して、これも自分で保管しておく。
受信装置61はメッセージを受信すると、履歴情報に今回のトランザクションを加え、この新しい履歴情報のハッシュ値を取り、それを自分で保管し、その履歴情報を秘密分散する。この時、ワンタイム特権小片を適当数作成して、これも自分で保管しておく。
受信側取引所装置65は、受信装置61から特権小片を受領して合成確認依頼があると、合成できるか否かを確認し、合成できるならば、そのハッシュ値と前回合成時に取ったハッシュ値と同じであることを検証して、送信側取引所装置75に検証結果を連絡する。送信側取引所装置75は、送信装置71から特権小片を受領して合成確認依頼があると、合成できるならば、そのハッシュ値と前回合成時に取ったハッシュ値と同じであることを検証して正当であることを確認し、さらに、受信側取引所装置65から正当なことの確認の検証結果の連絡があったならば、受信側取引所装置65に検証結果を連絡する。
なお、メッセージの内容を取引条件(支払いを許可する条件)とすることで、メッセージの送信側と受信側の取引所装置が互いに仲裁人的な立場で条件検証を行なうことができる。これにより、従来の銀行(L/Cの発行側銀行と受領側銀行)間で互いに保証している信用状取引を、電子化(仮想通貨化)して代替えとすることができる。
例えば図3において、送信装置71が開設したトランザクションを完結させるのは、受信側取引所装置65が受信装置61にレッジャーを合成して、これを更新することで資金移動が固まるときである。トラブルがあった場合(例えば、商品が違うとか、納期が遅れたとか)に、送信側取引所装置75と受信側取引所装置65が仲裁して判断を行ってもよく、第三の仲裁人を立てて多数決で決めてもよい。このように、現行の商習慣も維持しながら、仮想通貨で決済することができる。
このように、信用状を置き換え、かつ、買い手と売り手の意見が割れた場合にはその仲裁を行なうことができ、仮に判定が「条件を満たしていない」つまり売買契約不成立であるとなった場合には、資金の移動を中断して支払いがなされない機構となる。さらに、通常の通信販売においても、仲介人(エスクロー)を立てることになるので、「仮想通貨による安全な取引形態」として使うことができる。