JP7000207B2 - 署名システム - Google Patents

署名システム Download PDF

Info

Publication number
JP7000207B2
JP7000207B2 JP2018041989A JP2018041989A JP7000207B2 JP 7000207 B2 JP7000207 B2 JP 7000207B2 JP 2018041989 A JP2018041989 A JP 2018041989A JP 2018041989 A JP2018041989 A JP 2018041989A JP 7000207 B2 JP7000207 B2 JP 7000207B2
Authority
JP
Japan
Prior art keywords
transaction
signature
multisig
data
user
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
JP2018041989A
Other languages
English (en)
Other versions
JP2019161302A (ja
Inventor
恭平 眞田
Original Assignee
Gmoシステムトレード株式会社
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 Gmoシステムトレード株式会社 filed Critical Gmoシステムトレード株式会社
Priority to JP2018041989A priority Critical patent/JP7000207B2/ja
Publication of JP2019161302A publication Critical patent/JP2019161302A/ja
Application granted granted Critical
Publication of JP7000207B2 publication Critical patent/JP7000207B2/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のトランザクション処理ネットワークは、複数のパブリックノードと、m個のプライベートノードから構成されている。プライベートノードの夫々は、秘密鍵を有している。m個のプライベートノードの秘密鍵は、互いに対応しており且つ互いに異なっている。トランザクション処理ネットワークにおいて、パブリックノードが作成したトランザクション(例えば、送金)は、下記のように処理される。
パブリックノードは、トランザクションを作成し、プライベートノードのうちの1つ(承認依頼元)にトランザクションを送信する。承認依頼元は、パブリックノードからトランザクションを受信すると、他のm-1個のプライベートノード(承認依頼先)に対して、承認依頼を送信する。承認依頼にはトランザクションの内容が付されており、且つ、承認依頼は承認依頼元の秘密鍵によって署名されている。承認依頼先の夫々は、承認依頼元の署名を検証すると共に、承認依頼に付されたトランザクションの内容が改ざんされていない等の検証を行い、これにより承認依頼の正当性を判断する。承認依頼先の夫々は、承認依頼が正当であると判断した場合、承認依頼元に対して、承認依頼先の秘密鍵によって署名された承認結果(即ち、トランザクションを承認する旨の通知)を送信する。承認依頼元は、承認依頼先の署名を検証し、これにより承認結果の正当性を判断する。
上述した処理の結果、承認依頼元を含めたn個のプライベートノードがトランザクションを承認すると、パブリックノードが作成したトランザクションが承認される。このように複数の秘密鍵を使用してトランザクションを承認するマルチシグニチャ技術により、承認されたトランザクションの信頼性が向上する。
特開2017-188883号公報
特許文献1のマルチシグニチャ技術によれば、パブリックノード(利用者端末)がトランザクションに署名し、このトランザクションは、互いに対応する秘密鍵を有する複数のプライベートノード(サーバ)のうちの所定数が検証して承認したときに有効になる。
しかしながら、マルチシグニチャ技術は、これに限られず、様々に応用可能である。例えば、利用者端末の発行依頼に応じて、2つのサーバが互いに対応する2つの秘密鍵によって署名したトランザクション(マルチシグトランザクション)を発行する場合もある。この場合、2つのサーバのうちの一方(署名依頼元)が自らの秘密鍵によって署名した後、2つのサーバのうちの他方(署名依頼先)に対して対応する秘密鍵による署名を依頼する。このとき、署名依頼されたマルチシグトランザクションの内容が署名依頼元によって改ざんされているといった明確な瑕疵がない限り、署名依頼先は、半ば自動的にマルチシグトランザクションに署名する。従って、例えば、署名依頼元(サーバ)の運用管理者が、自らが管理するサーバを使用して虚偽のマルチシグトランザクションを発行して署名した場合、このマルチシグトランザクションは、署名依頼先によって半ば自動的に署名される。即ち、秘密鍵を管理する者による不正な使用といった秘密鍵の悪用によってマルチシグトランザクションの信頼性が低下するおそれがある。
そこで、本発明は、マルチシグトランザクションの信頼性を向上可能な新たな署名システムを提供することを目的とする。
本発明は、第1の署名システムとして、
事業者システムが秘密鍵によって署名して発行したマルチシグトランザクションに対して、前記秘密鍵に対応する他の秘密鍵によって署名する署名システムであって、
利用者端末からのトランザクション参照依頼をトリガーとして、前記他の秘密鍵による署名が必要な前記マルチシグトランザクションを収集し、
前記利用者端末から、前記収集した前記マルチシグトランザクションの署名承認を受信し、
前記署名承認された前記マルチシグトランザクションに対して前記他の秘密鍵によって署名する
署名システムを提供する。
また、本発明は、第2の署名システムとして、第1の署名システムであって、
前記利用者端末から前記マルチシグトランザクションに対する前記署名承認を受信すると、前記署名承認された前記マルチシグトランザクションが所定の署名条件を満たすか否か判定し、前記署名条件を満たした前記マルチシグトランザクションに対して前記他の秘密鍵によって署名する
署名システムを提供する。
また、本発明は、第3の署名システムとして、第1又は第2の署名システムであって、
前記収集した前記マルチシグトランザクションに夫々対応するトランザクションデータのリストであるトランザクションデータリストを前記利用者端末に送信し、
前記利用者端末から、前記トランザクションデータに対応する前記マルチシグトランザクションの前記署名承認を受信する
署名システムを提供する。
また、本発明は、第4の署名システムとして、第3の署名システムであって、
前記事業者システムから受信したエントリデータ追加依頼に夫々応じて作成した1以上のエントリデータを有しており、
前記エントリデータは、前記マルチシグトランザクションと夫々対応しており、
前記エントリデータの夫々には、対応する前記マルチシグトランザクションを特定可能なトランザクション特定データが含まれており、
前記マルチシグトランザクションの前記収集を行う際、前記エントリデータの前記トランザクション特定データによって特定される前記マルチシグトランザクションを収集する
署名システムを提供する。
また、本発明は、第5の署名システムとして、第4の署名システムであって、
前記事業者システムから前記エントリデータ追加依頼を受信したとき、受信した前記エントリデータ追加依頼が所定のエントリデータ追加条件を満たすか否か判定し、前記エントリデータ追加条件を満たした場合に前記エントリデータを作成する
署名システムを提供する。
また、本発明は、第6の署名システムとして、第3から第5までのいずれかの署名システムであって、
前記トランザクションデータリストにおける前記トランザクションデータには、対応する前記マルチシグトランザクションを発行した前記事業者システムを識別可能なデータが含まれている
署名システムを提供する。
また、本発明は、第7の署名システムとして、第1の署名システムであって、
前記利用者端末からの前記トランザクション参照依頼をトリガーとして、前記事業者システムから前記マルチシグトランザクションを特定可能なトランザクション特定データを受信し、
前記マルチシグトランザクションの前記収集を行う際、前記受信した前記トランザクション特定データによって特定される前記マルチシグトランザクションを収集し、
前記利用者端末から、前記事業者システムを経由した二段階認証によって、前記収集した前記マルチシグトランザクションの前記署名承認を受信する
署名システムを提供する。
また、本発明は、第8の署名システムとして、第1から第7までのいずれかの署名システムであって、
パブリックシステムと、プライベートシステムとを備えており、
前記パブリックシステムは、前記マルチシグトランザクションの前記収集と、前記マルチシグトランザクションの前記署名承認の前記受信とを行い、
前記プライベートシステムは、前記マルチシグトランザクションの前記署名を行う
署名システムを提供する。
また、本発明は、第1の利用者端末として、
第3から第6までのいずれかの署名システムと通信可能な利用者端末であって、
表示装置を備えており、
前記署名システムに前記トランザクション参照依頼を送信し、
前記署名システムから受信した前記トランザクションデータリストに基づく表示データを前記表示装置に表示する
利用者端末を提供する。
また、本発明は、第1のプログラムとして、
コンピュータを、第1の利用者端末として機能させるためのプログラムを提供する。
また、本発明は、第9の署名システムとして、
利用者端末が秘密鍵によって署名して発行したマルチシグトランザクションに対して、前記秘密鍵に対応する他の秘密鍵によって署名する署名システムであって、
前記利用者端末からのトランザクション参照依頼をトリガーとして、前記他の秘密鍵による署名が必要な前記マルチシグトランザクションを収集し、
収集した前記マルチシグトランザクションに夫々対応するトランザクションデータのリストであるトランザクションデータリストを前記利用者端末に送信し、
前記利用者端末から前記トランザクションデータに対応する前記マルチシグトランザクションの署名承認を受信し、
前記署名承認された前記マルチシグトランザクションに対して前記他の秘密鍵によって署名する
署名システムを提供する。
また、本発明は、第10の署名システムとして、第9の署名システムであって、
前記トランザクションデータリストにおける前記トランザクションデータには、前記利用者端末が発行した前記マルチシグトランザクションであることを識別可能なデータが含まれている
署名システムを提供する。
本発明によれば、利用者に関連するマルチシグトランザクション、例えば、利用者の発行依頼に応じて事業者システムが秘密鍵によって署名して発行したマルチシグトランザクションは、署名システムが利用者からの署名への承認を受信した場合に、署名システムの秘密鍵によって署名される。即ち、マルチシグトランザクションは、発行依頼した利用者による確認という手順を踏んで署名されるため、事業者システムの秘密鍵が漏洩した場合も、漏洩した秘密鍵の不正な使用による被害を防止できる。本発明によれば、マルチシグトランザクションの信頼性を向上可能な新たな署名システムを提供できる。
本発明の実施の形態による署名システム、利用者システム、事業者システム及びブロックチェーンのネットワークを示す図である。 図1の署名システム、利用者システム、事業者システム及びブロックチェーンの間で行われる処理を示す図である。 図1の署名システム、利用者システムブロックチェーンの間で行われる別の処理を示す図である。 図2の処理と図3の処理とを纏めて示す図である。 図1のブロックチェーンに含まれるトランザクションのデータ構造を部分的に示す図である。 図1の事業者システムが有する秘密鍵を、秘密鍵に対応するデータと共に示す図である。 図1の利用者システムが有する秘密鍵を、秘密鍵に対応するデータと共に示す図である。 図1の署名システムが有する秘密鍵を示す図である。 図1の署名システムが有する利用者情報のデータ構造を示す図である。 図4の事業者システムが署名システムに送信するエントリデータのデータ構造を示す図である。エントリデータに対応するトランザクションの対応するデータを描画している。 図4の署名システムが有するエントリのデータ構造を示す図である。データ内容を例示している。エントリのエントリデータに対して夫々対応するトランザクションを描画している。 図4の署名システムが利用者システムに送信するトランザクションデータリストの一例を示す図である。 図11のエントリの別の例を示す図である。 図12のトランザクションデータリストの別の例を示す図である。 図4の署名システムのパブリックシステム及びプライベートシステムを示す図である。 図15のパブリックシステムのエントリデータ追加処理を示すフローチャートである。 図15のパブリックシステムのエントリデータ更新処理を示すフローチャートである。 図15のプライベートシステムの署名処理を示すフローチャートである。 図17のエントリデータ更新処理において利用者システムに送信されるトランザクションデータリストの例を示す図である。 図17のエントリデータ更新処理において更新されたエントリの例を示す図である。 図4の利用者システム(利用者端末)を示す図である。 図21の利用者端末の処理を示すフローチャートである。 図21の利用者端末の表示例を示す図である。 図2の処理の変形例を示す図である。
図1を参照すると、本発明の実施の形態におけるネットワークは、署名システム10と、1以上の利用者システム40(利用者システム1~n)と、1以上の事業者システム50(事業者システム1~m)とを含んでいる。
利用者システム40の夫々は、1以上の事業者システム50と通信可能に接続されており、事業者システム50の夫々は、1以上の利用者システム40と通信可能に接続されている。また、署名システム10は、1以上の利用者システム40と通信可能に接続されており、且つ、1以上の事業者システム50と通信可能に接続されている。署名システム10、利用者システム40及び事業者システム50は、インターネットによって互いに接続されていてもよいし、他のネットワークによって互いに接続されていてもよい。
本実施の形態によれば、全ての利用者システム40が全ての事業者システム50と接続されている。また、署名システム10は、全ての利用者システム40及び全ての事業者システム50と接続されている。署名システム10は、全ての利用者システム40及び全ての事業者システム50に対して後述する署名サービスを提供する。但し、本発明は、これに限られない。例えば、利用者システム40のうちの1つは、事業者システム50の1つのみと接続されていてもよい。また、署名システム10は、この1つの利用者システム40及び1つの事業者システム50のみと接続されていてもよい。即ち、署名システム10は、1つの利用者システム40及び1つの事業者システム50のみに対して署名サービスを提供してもよい。
本実施の形態による利用者システム40の夫々は、操作者(利用者)が保有するPC(personal computer)やスマートフォン等の利用者端末40である。但し、本発明は、これに限られない。例えば、利用者システム40の夫々は、公共施設に設置された端末であってもよい。また、利用者は、署名システム10や事業者システム50の端末を、利用者端末(利用者システム)40として使用してもよい。一方、利用者システム40の夫々は、利用者の業務を行うために利用者が運営する複数のコンピュータからなるシステムであってもよい。即ち、本実施の形態における利用者システム40は、利用者によって操作される端末やシステムである。
図1及び図9を参照すると、署名システム10は、利用者システム40のアカウントを登録した利用者情報26を有している。利用者情報26には、1以上の利用者特定データ262と、1以上の利用者認証データ264とが含まれている。利用者特定データ262は、署名システム10が署名サービスを提供する利用者システム40と夫々対応している。利用者特定データ262の夫々は、対応する利用者システム40を一意に特定可能なデータである。例えば、利用者特定データ262の夫々は、対応する利用者システム40が署名システム10のアカウントを作成した際の利用者ID(identifier)やメールアドレスである。利用者認証データ264は、利用者特定データ262と夫々対応している。利用者認証データ264の夫々は、対応する利用者システム40を認証するためのデータである。利用者認証データ264の夫々は、例えば、パスワードであってもよいし、指紋情報等の生体情報であってもよい。また、利用者情報26は、必要に応じて設ければよい。
署名システム10は、利用者情報26に加えて、事業者システム50のアカウントを登録した事業者情報(図示せず)を有していてもよい。但し、このような事業者情報は、本実施の形態に必須ではないため特に説明しない。
図1を参照すると、署名システム10、利用者システム40及び事業者システム50は、更に他のノード(図示せず)と共にPtoP(Peer to Peer)ネットワークを構成している。PtoPネットワークは、ブロックチェーン70を含んでいる。ブロックチェーン70は、多数のトランザクション80を含むデータ集合体である。詳しくは、ブロックチェーン70は、1以上のブロック(図示せず)を含んでいる。ブロックの夫々は、直前のブロックのハッシュ値を有することで、チェーン状に互いに連結されている。ブロックの夫々は、1以上のトランザクション80を含んでいる。
トランザクション80は、送金等の取引を記録したデータ構造体である。トランザクション80は、PtoPネットワークによって分散的に管理されている。より具体的には、トランザクション80は、多数のノードの記憶装置に分散して記憶されており、多数のノードは、互いに自律的に通信することで、トランザクション80を整合させている。即ち、全てのトランザクション80を物理的に一か所で管理する特定のノードは存在しない。但し、本実施の形態における図1等の図面は、トランザクション80の全てを記憶したブロックチェーン70が1箇所に存在しているように描画している。また、本発明は、このようなブロックチェーン70が実際に存在している場合にも適用可能である。
トランザクション80には、ノード間の様々な取引を記録可能である。例えば、トランザクション80には、証券の取引を記録してもよく、円やドルなどの現実通貨の取引を記録してもよく、仮想通貨の取引を記録してもよい。本実施の形態において、トランザクション80は、仮想通貨の取引を記録している。即ち、本実施の形態において、事業者システム50は、仮想通貨の取引所システムであり、利用者システム40は、仮想通貨の取引所を介して又は介さずに取引を行う会社や個人のシステムである。但し、本発明は、これに限られない。例えば、事業者システム50は、証券所システムや銀行システムであってもよい。
トランザクション80に記録された取引は、トランザクション80に電子署名(以下、単に「署名」という。)を施すことで承認され有効になる。トランザクション80は、1つの署名のみを施すことによって承認されるトランザクションに加えて、複数の署名(多重署名:マルチシグニチャ)を施すことによって承認されるマルチシグトランザクション80Mを含んでいる。本発明は、マルチシグトランザクション80Mに関連している。
本実施の形態において、事業者システム50の夫々は、仮想通貨の保有額を記憶した1以上の口座と、口座に夫々対応する秘密鍵542とを有している。加えて、図1に示した利用者システム40の夫々は、仮想通貨の保有額を記憶した1以上の口座と、口座に夫々対応する秘密鍵442とを有している。但し、本発明は、これに限られず、利用者システム40は、自らの口座及び秘密鍵442を有していなくてもよい。
本実施の形態において、事業者システム50の夫々は、自らの口座のうちの1つから他の事業者システム50(又は利用者システム40)の口座のうちの1つに仮想通貨を送金する。同様に、秘密鍵442を有する利用者システム40の夫々は、自らの口座のうちの1つから他の利用者システム40(又は事業者システム50)の口座のうちの1つに仮想通貨を送金する。事業者システム50(利用者システム40)の夫々は、この送金取引の際に、送金取引の内容を記憶したマルチシグトランザクション80Mを作成して秘密鍵によって署名し、PtoPネットワークにブロードキャストする。即ち、利用者システム40及び事業者システム50の夫々は、送金取引を行う度に、秘密鍵によって署名したマルチシグトランザクション80Mを発行する。
詳しくは、事業者システム50の口座の夫々について、互いに対応する秘密鍵542及び秘密鍵342が設けられている。互いに対応する秘密鍵542及び秘密鍵342の夫々は、マルチシグトランザクション80Mに署名を施すための複数の秘密鍵のうちの1つである。事業者システム50は、互いに対応する秘密鍵542及び秘密鍵342のうちの一方(秘密鍵542)を有しており、署名システム10は、他方(秘密鍵342)を有している。事業者システム50が秘密鍵542によって署名して発行したマルチシグトランザクション80Mは、署名システム10が対応する秘密鍵342によって更に署名して発行することで有効になる。
同様に、利用者システム40の口座の夫々について、互いに対応する秘密鍵442及び秘密鍵342が設けられている。互いに対応する秘密鍵442及び秘密鍵342の夫々は、マルチシグトランザクション80Mに署名を施すための複数の秘密鍵のうちの1つである。利用者システム40は、互いに対応する秘密鍵442及び秘密鍵342のうちの一方(秘密鍵442)を有しており、署名システム10は、他方(秘密鍵342)を有している。利用者システム40が秘密鍵442によって署名して発行したマルチシグトランザクション80Mは、署名システム10が対応する秘密鍵342によって更に署名して発行することで有効になる。
以下の説明において、事業者システム50又は利用者システム40が署名して発行した時点でのマルチシグトランザクション80Mを、未承認のマルチシグトランザクション80Mといい、署名システム10が更に署名して発行した時点でのマルチシグトランザクション80Mを、承認済みのマルチシグトランザクション80Mという。換言すれば、以下の説明において、マルチシグトランザクション80Mについての「未承認」とは、署名システム10が未だ署名していないことを意味し、マルチシグトランザクション80Mについての「承認済み」とは、署名システム10が既に署名していることを意味する。即ち、未承認のマルチシグトランザクション80Mは、署名システム10の署名によって承認されて承認済みのマルチシグトランザクション80Mになる。
本実施の形態において、未承認のマルチシグトランザクション80Mの全てが、署名システム10の署名対象である。但し、本発明は、これに限られず、ブロックチェーン70は、署名システム10の署名対象とならない未承認のマルチシグトランザクション80Mを含んでいてもよい。換言すれば、署名システム10は、ブロックチェーン70に含まれる未承認のマルチシグトランザクション80Mのうちの一部のみについて署名してもよい。
図5は、マルチシグトランザクション80Mに含まれるデータのうち、以下の説明において必要なデータのみを示している。図1及び図5を参照すると、マルチシグトランザクション80Mの夫々は、送信側アドレス82と、送信先アドレス84と、送信額85と、トランザクション発行日時86と、署名データ88とを含んでいる。送信側アドレス82は、マルチシグトランザクション80Mを発行した発行側システム(利用者システム40又は事業者システム50)の口座を特定するデータである。送信先アドレス84は、発行側システムに対する相手側システム(利用者システム40又は事業者システム50)の口座を特定するデータである。送信額85は、送信先アドレス84に対する仮想通貨の送金額を示すデータである。トランザクション発行日時86は、マルチシグトランザクション80Mを発行した日時である。署名データ88は、発行側システムや署名システム10の秘密鍵による署名である。
図5に描画したデータ構造は、本実施の形態を簡潔に説明するための模式的なデータ構造であり、マルチシグトランザクション80Mの実際のデータ構造は、図5に限定されない。特に、署名データ88は、マルチシグトランザクション80Mが発行側システムや署名システム10の秘密鍵(所定の秘密鍵)によって署名されているか否かを何らかの方法で判定できる限り、マルチシグトランザクション80Mにデータとして含まれていなくてもよい。例えば、マルチシグトランザクション80Mは、マルチシグトランザクション80M全体を所定の秘密鍵によって暗号化することで署名してもよい。
図1及び図6を参照すると、事業者システム50の夫々は、事業者秘密鍵54を有している。事業者秘密鍵54には、1以上の秘密鍵542が含まれている。秘密鍵542は、事業者秘密鍵54のデータとして一括管理されていてもよいし、分散管理されていてもよい。
図1、図5及び図6を参照すると、秘密鍵542は、事業者システム50の口座(送信側アドレス82)に夫々対応している。より具体的には、秘密鍵542の夫々は、事業者システム50が秘密鍵542に対応する口座から送金取引を行う際に、マルチシグトランザクション80Mの署名データ88を生成するために使用される。即ち、本実施の形態において、事業者システム50が発行するマルチシグトランザクション80Mの署名データ88は、所定のデータを、マルチシグトランザクション80Mの送信側アドレス82に対応する秘密鍵542によって暗号化したものである。即ち、本実施の形態における秘密鍵542の夫々は、マルチシグトランザクション80Mに署名するための秘密鍵である。但し、事業者システム50は、事業者秘密鍵54に加えて、マルチシグトランザクション80M以外のトランザクション80に署名するための秘密鍵を有していてもよい。
秘密鍵542の夫々は、公開鍵544及びマルチシグアドレス546と対応している。公開鍵544の夫々は、対応する秘密鍵542から生成されており、対応する秘密鍵542によって暗号化されたデータを復号可能である。マルチシグアドレス546の夫々は、対応する公開鍵544に対してハッシュ等の変換を施すことで生成されている。マルチシグアドレス546の夫々は、事業者システム50の口座を特定する口座番号として機能する。公開鍵544及びマルチシグアドレス546は、秘密鍵542と合わせて事業者秘密鍵54に含まれていてもよいし、事業者秘密鍵54とは別に事業者システム50内部に記憶されていてもよい。また、公開鍵544及びマルチシグアドレス546は、事業者システム50が必要な時点で生成してもよい。
図1及び図7を参照すると、利用者システム40の夫々は、事業者秘密鍵54と同様な利用者秘密鍵44を有している。利用者秘密鍵44には、1以上の秘密鍵442が含まれている。秘密鍵442は、利用者秘密鍵44のデータとして一括管理されていてもよいし、分散管理されていてもよい。
図1、図5及び図7を参照すると、秘密鍵442は、利用者システム40の口座(送信側アドレス82)に夫々対応している。より具体的には、秘密鍵442の夫々は、利用者システム40が秘密鍵442に対応する口座から送金取引を行う際に、マルチシグトランザクション80Mの署名データ88を生成するために使用される。即ち、本実施の形態において、利用者システム40が発行するマルチシグトランザクション80Mの署名データ88は、所定のデータを、マルチシグトランザクション80Mの送信側アドレス82に対応する秘密鍵442によって暗号化したものである。
即ち、本実施の形態における秘密鍵442の夫々は、マルチシグトランザクション80Mに署名するための秘密鍵である。但し、利用者システム40は、利用者秘密鍵44に加えて、マルチシグトランザクション80M以外のトランザクション80に署名するための秘密鍵を有していてもよい。また、利用者システム40は、自らの口座を有しておらず、事業者システム50を介してのみマルチシグトランザクション80Mを発行する場合、利用者秘密鍵44を有していなくてもよい。即ち、利用者システム40の夫々は、必要に応じて利用者秘密鍵44を有していればよい。
秘密鍵442の夫々は、公開鍵444及びマルチシグアドレス446と対応している。公開鍵444の夫々は、対応する秘密鍵442から生成されており、対応する秘密鍵442によって暗号化されたデータを復号可能である。マルチシグアドレス446の夫々は、対応する公開鍵444に対してハッシュ等の変換を施すことで生成されている。マルチシグアドレス446の夫々は、利用者システム40の口座を特定する口座番号として機能する。公開鍵444及びマルチシグアドレス446は、秘密鍵442と合わせて利用者秘密鍵44に含まれていてもよいし、利用者秘密鍵44とは別に利用者システム40内部に記憶されていてもよい。また、公開鍵444及びマルチシグアドレス446は、利用者システム40が必要な時点で生成してもよい。
図1及び図8を参照すると、署名システム10は、事業者システム50及び利用者システム40から預かった預かり秘密鍵34を有している。預かり秘密鍵34には、事業者システム50の夫々について、秘密鍵542に夫々対応する1以上の秘密鍵342と、秘密鍵342に夫々対応する1以上の公開鍵344とが含まれている。加えて、預かり秘密鍵34には、利用者システム40の夫々について、秘密鍵442に夫々対応する1以上の秘密鍵342と、秘密鍵342に夫々対応する1以上の公開鍵344とが含まれている。秘密鍵342及び公開鍵344は、預かり秘密鍵34のデータとして一括管理されていてもよいし、分散管理されていてもよい。
例えば、預かり秘密鍵34の事業者秘密鍵j1Y、事業者秘密鍵j2Y及び事業者秘密鍵j3Y(図8参照)は、事業者秘密鍵54の事業者秘密鍵j1X、事業者秘密鍵j2X及び事業者秘密鍵j3X(図6参照)と夫々対応しており、預かり秘密鍵34の利用者秘密鍵i1Y、事業者秘密鍵i2Y及び事業者秘密鍵i3Y(図8参照)は、利用者秘密鍵44の利用者秘密鍵i1X、利用者秘密鍵i2X及び利用者秘密鍵i3X(図7参照)と夫々対応している。
上述したように、公開鍵344は、秘密鍵342と夫々対応している。また、秘密鍵342の夫々は、秘密鍵542及び秘密鍵442のうちのいずれか1つ(相手側秘密鍵)と対応している。更に、秘密鍵542は、公開鍵544と夫々対応しており(図6参照)、秘密鍵442は、公開鍵444と夫々対応している(図7参照)。公開鍵344の夫々は、対応する秘密鍵342の相手側秘密鍵の公開鍵544(又は、公開鍵444)と一致している。事業者システム50又は利用者システム40が相手側秘密鍵によって署名して発行した未承認のマルチシグトランザクション80Mは、相手側秘密鍵と対応する秘密鍵342によって署名されることで承認され有効になる。換言すれば、マルチシグトランザクション80Mは、事業者システム50又は利用者システム40が秘密鍵542又は秘密鍵442によって署名して発行した時点では未承認であり、署名システム10の秘密鍵342による署名によって承認される。
より具体的には、マルチシグトランザクション80Mの署名データ88(図5参照)は、事業者システム50(利用者システム40)に対応する署名1(図示せず)と、署名システム10に対応する署名2(図示せず)の2つのデータから構成してもよい。このように構成することで、署名システム10は、マルチシグトランザクション80Mが未承認なのか又は既に承認されているかを署名データ88から判定できる。詳しくは、この場合、事業者システム50(利用者システム40)は、所定のデータを秘密鍵542(秘密鍵442)によって暗号化して署名データ88の署名1に設定する。署名システム10は、署名1を対応する公開鍵344によって復号して所定のデータを得ることで、署名1を検証する。また、署名システム10は、他の所定のデータを署名1に対応する秘密鍵342によって暗号化して署名データ88の署名2に設定する。
但し、マルチシグトランザクション80Mが未承認なのか又は既に承認されているかを判定する方法は、上述した方法に限られない。例えば、事業者システム50(利用者システム40)は、マルチシグトランザクション80M全体を秘密鍵542(秘密鍵442)によって暗号化することで署名してもよい。この場合、署名システム10は、暗号化されたマルチシグトランザクション80Mを対応する公開鍵344によって復号することで事業者システム50(利用者システム40)のみによって署名済みであること(未承認であること)を検証してもよい。また、署名システム10は、暗号化されたマルチシグトランザクション80M全体を秘密鍵342によって暗号化することで署名して承認してもよい。以下の説明においては、マルチシグトランザクション80Mの署名に関して、署名データ88に言及しない。
以上の説明から理解されるように、署名システム10は、事業者システム50から、事業者システム50が有する秘密鍵542に対応する秘密鍵342を、秘密鍵542の公開鍵544(図6参照)と同一の公開鍵344と共に預かっている。同様に、署名システム10は、利用者システム40から、利用者システム40が有する秘密鍵442に対応する秘密鍵342を、秘密鍵342の公開鍵444(図7参照)と同一の公開鍵344と共に預かっている。
即ち、事業者システム50は、事業者システム50が発行するマルチシグトランザクション80Mを承認するために必要な2つの秘密鍵342,542の一方である秘密鍵542を有しており、署名システム10は、他方である秘密鍵342と、秘密鍵542による暗号を復号可能な公開鍵344とを有している。同様に、利用者システム40は、利用者システム40が発行するマルチシグトランザクション80Mを承認するために必要な2つの秘密鍵342,442の一方である秘密鍵442を有しており、署名システム10は、他方である秘密鍵342と、秘密鍵442による暗号を復号可能な公開鍵344とを有している。
本実施の形態において、マルチシグトランザクション80Mの夫々についての秘密鍵の数は3である。そのうちの2つは、上述したように、事業者システム50(利用者システム40)及び署名システム10が夫々有しており、他の1つは、通常は使用できないように保管されている。トランザクション80は、秘密鍵342,542(秘密鍵342,442)の一方のみの署名によっては有効にならず、2つの秘密鍵342,542(秘密鍵342,442)の署名(連署)によって有効になる。即ち、本実施の形態におけるマルチシグニチャは、2of3方式である。但し、本発明は、これに限られず、様々な方式のマルチシグニチャに適用可能である。
以下、署名システム10の署名サービスについて、利用者システム40のうちの1つ(利用者システムi)及び事業者システム50のうちの1つ(事業者システムj)に着目して説明する。以下の説明において、特に注記しない限り、「利用者システム40」は、利用者システムiを意味しており、「事業者システム50」は、利用者システムjを意味している。
図2から図4までを参照すると、署名システム10は、利用者に関連して事業者システム50が秘密鍵542によって署名して発行した未承認のマルチシグトランザクション80Mに対して、秘密鍵542に対応する他の秘密鍵342によって署名する。図2を参照すると、署名システム10は、署名サービスの1つとして、利用者システム40及び事業者システム50に対して、BtoBtoCサービス(business to business to consumerサービス)を提供する。加えて、図3を参照すると、署名システム10は、署名サービスの他の1つとして、利用者システム40に対して、BtoCサービス(business to business to consumerサービス)を提供する。従って、図4を参照すると、署名システム10は、利用者システム40及び事業者システム50に対して、上述したBtoBtoCサービス(図2参照)とサービスBtoCサービス(図3参照)の2つのサービスを提供できる。
換言すれば、本実施の形態の署名システム10は、図2に示されるBtoBtoCサービスを提供する機能と、図3に示されるBtoBtoCサービスを提供する機能との2つの機能を有している。但し、本発明は、これに限られない。例えば、署名システム10は、BtoBtoCサービスを提供する機能のみを有していてもよく、BtoCサービスを提供する機能のみを有していてもよい。また、署名システム10は、これらのサービスと異なる署名サービスを提供する機能を更に有していてもよい。
以下、署名システム10のBtoBtoCサービスについて説明する。
図2を参照すると、まず、利用者システム40は、利用者システム40の操作者の操作に応じて、事業者システム50に対して、マルチシグトランザクション80Mの発行を依頼する(図2の(1)発行依頼)。例えば、事業者システム50は、仮想通貨の口座を有しており、利用者システム40は、事業者システム50の口座に保管された仮想通貨の一部を所有している。利用者システム40は、事業者システム50の口座から、利用者システム40が所有する仮想通貨の全部又は一部(以下、「送金額」という。)を、他の利用者システム40又は事業者システム50(図2において描画せず)の口座(以下、「送金先口座」という。)に対して送金するように依頼する。
本実施の形態において、図2の(1)発行依頼は、利用者システム40から事業者システム50へのデータ通信によって行われる。但し、本発明は、これに限られない。例えば、利用者システム40の利用者が、電話やFAXによって、事業者システム50の管理者にマルチシグトランザクション80Mの発行を依頼してもよい。
次に、発行依頼を受信した事業者システム50は、利用者システム40が実際に仮想通貨を所有しているかといった検証を行った後、マルチシグトランザクション80Mを作成し、作成したマルチシグトランザクション80Mに署名してマルチシグトランザクション80Mを発行する(図2の(2)署名&発行)。
図2、図5及び図6を参照すると、図2の(2)署名&発行において、事業者システム50は、マルチシグトランザクション80Mの送信側アドレス82に、利用者システム40が所有する仮想通貨を保管している口座を特定するマルチシグアドレス546を設定し、送信先アドレス84に、送金先口座を特定するデータを設定し、送信額85に、送金額を設定し、トランザクション発行日時86に、マルチシグトランザクション80Mを作成した日時を設定する。次に、事業者システム50は、送信側アドレス82に設定したマルチシグアドレス546に対応する秘密鍵542によってマルチシグトランザクション80Mに署名する。次に、事業者システム50は、マルチシグトランザクション80Mをブロードキャストする。この結果、事業者システム50が作成したマルチシグトランザクション80Mがブロックチェーン70に記憶される。即ち、事業者システム50が作成した未承認のマルチシグトランザクション80Mが発行される。
以上のように発行されたマルチシグトランザクション80Mの送信側アドレス82には、マルチシグアドレス546が設定されている。換言すれば、図2の(2)署名&発行において発行されるマルチシグトランザクション80Mは、マルチシグアドレス546から発行されている。
図2を参照すると、次に、事業者システム50は、発行したマルチシグトランザクション80Mに対応するエントリデータ56を作成する。次に、事業者システム50は、署名システム10に対して、作成したエントリデータ56を付したエントリデータ追加依頼を送信し、これによりマルチシグトランザクション80Mを発行したことを署名システム10に通知する(図2の(3)エントリデータ追加依頼)。
図2及び図10を参照すると、エントリデータ56には、トランザクション特定データ560と、トランザクション発行日時562と、送信先アドレス564と、送信額565と、利用者特定データ566とが含まれている。事業者システム50は、エントリデータ56を作成する際、トランザクション発行日時562に、対応するマルチシグトランザクション80Mのトランザクション発行日時86を設定し、送信先アドレス564に、対応するマルチシグトランザクション80Mの送信先アドレス84を設定し、送信額565に、対応するマルチシグトランザクション80Mの送信額85を設定する。
事業者システム50は、エントリデータ56を作成する際、トランザクション特定データ560に、対応するマルチシグトランザクション80Mを特定可能なデータを設定する。例えば、事業者システム50は、対応するマルチシグトランザクション80Mから、署名システム10に通知しているハッシュ方法によるハッシュ値を生成し、生成したハッシュ値を、トランザクション特定データ560に設定する。但し、本発明は、これに限られない。署名システム10が、ブロックチェーン70におけるトランザクション80から対応するマルチシグトランザクション80Mを一意に特定できる限り、トランザクション特定データ560は、どのようなデータであってもよい。
事業者システム50は、エントリデータ56を作成する際、利用者特定データ566に、対応するマルチシグトランザクション80Mの発行を依頼した利用者システム40を特定可能なデータを設定する。例えば、事業者システム50は、利用者システム40が対応するマルチシグトランザクション80Mの発行を依頼した際に(図2の(1)発行依頼)、利用者システム40が利用者特定データ262として登録しているメールアドレスを利用者システム40から受信し、受信したメールアドレスを利用者特定データ566に設定する。但し、本発明は、これに限られない。署名システム10が、マルチシグトランザクション80Mの発行を依頼した利用者システム40を一意に特定できる限り、利用者特定データ566は、どのようなデータであってもよい。
図2及び図11を参照すると、署名システム10は、エントリ24Cを有している。事業者システム50が署名システム10にエントリデータ56を送信すると(図2の(3)エントリデータ追加依頼)、署名システム10は、受信したエントリデータ56をエントリ24Cに追加する。
詳しくは、エントリ24Cは、エントリデータ24の集合体である。エントリデータ24の夫々は、トランザクション特定データ240と、トランザクション発行日時242と、送信先アドレス244と、送信額245と、利用者特定データ246と、ステータス248とを有している。署名システム10は、エントリデータ56を受信する度に、受信したエントリデータ56に基づいて、新たなエントリデータ24を作成してエントリ24Cに追加する。即ち、署名システム10は、事業者システム50から受信したエントリデータ追加依頼(図2の(3)エントリデータ追加依頼)に夫々応じて作成した1以上のエントリデータ24を有している。エントリデータ24の夫々は、マルチシグトランザクション80Mと対応している。
図10及び図11を参照すると、受信したエントリデータ56に基づくエントリデータ24が追加されたとき、追加されたエントリデータ24のトランザクション特定データ240、トランザクション発行日時242、送信先アドレス244、送信額245及び利用者特定データ246には、受信したエントリデータ56のトランザクション特定データ560、トランザクション発行日時562、送信先アドレス564、送信額565及び利用者特定データ566が夫々設定され、ステータス248には「未承認」を意味するデータが設定される。後述するように、ステータス248の「未承認」を意味するデータは、利用者システム40による署名承認や署名否認に応じて、「署名承認済み」を意味するデータや、「署名否認済み」を意味するデータに変更される。
図2及び図11を参照すると、署名システム10は、上述したように、事業者システム50から受信したエントリデータ56をエントリデータ24として集めたエントリ24Cを有している。エントリデータ24の夫々は、事業者システム50が利用者システム40からの発行依頼(図2の(1)発行依頼)に応じて秘密鍵542によって署名して発行したマルチシグトランザクション80Mと対応している。エントリデータ24の夫々には、エントリデータ24に対応するマルチシグトランザクション80Mを特定可能なトランザクション特定データ240と、対応するマルチシグトランザクション80Mを発行依頼した利用者システム40を特定可能な利用者特定データ246とが含まれている。
図2を参照すると、利用者システム40は、事業者システム50に対してトランザクション80の発行を依頼すると(図2の(1)発行依頼)、その後の所定の時点において、署名システム10にログインする(図2の(4)ログイン)。
図2及び図9を参照すると、署名システム10は、利用者システム40からログイン要求を受けると(図2の(4)ログイン)、利用者特定データ262及び利用者認証データ264を使用して利用者システム40を認証したうえで、利用者システム40のログインを許容する。
本実施の形態による署名システム10は、例えば、ログイン要求(図2の(4)ログイン)の際に、利用者システム40から利用者システム40の操作者のメールアドレスや生体情報を受信する。署名システム10は、受信したメールアドレスを、利用者情報26の利用者特定データ262と照合することで、利用者システム40を特定する。また、署名システム10は、受信した生体情報を、特定した利用者システム40の利用者認証データ264と照合することで、利用者システム40を認証する。
図2を参照すると、署名システム10は、利用者システム40のログイン要求(図2の(4)ログイン)によってトランザクション参照依頼が行われたと判断し、以下の処理を行う。但し、本発明は、これに限られない。例えば、利用者システム40は、ログイン要求と異なるタイミングで、署名システム10に対してトランザクション参照依頼を送信してもよい。また、署名システム10は、ログイン中の利用者システム40に対して、所定の時間が経過する度に、トランザクション参照依頼が行われたものとして以下の処理を行ってもよい。
まず、署名システム10は、利用者システム40からのトランザクション参照依頼(図2の(4)ログイン)をトリガーとして、ブロックチェーン70のトランザクション80から、署名対象となるマルチシグトランザクション80Mを収集する(図2の(5)収集)。詳しくは、署名システム10は、利用者に関連するマルチシグトランザクション80Mであって署名システム10の秘密鍵342による署名が必要なマルチシグトランザクション80Mを収集する。
図2、図5及び図11を参照すると、署名システム10は、BtoBtoCサービスにおいて上述したマルチシグトランザクション80Mの収集を行う際、エントリデータ24のトランザクション特定データ240によって特定される未承認のマルチシグトランザクション80Mを、利用者に関連するマルチシグトランザクション80Mとして収集する。
図2を参照すると、次に、署名システム10は、収集したマルチシグトランザクション80Mからトランザクションデータリスト28Lを作成し、作成したトランザクションデータリスト28Lを、トランザクション参照依頼(図2の(4)ログイン)を送信した利用者システム40に送信する(図2の(6)トランザクションデータリスト送信)。
図2及び図12を参照すると、トランザクションデータリスト28Lは、署名システム10が収集した(図2の(5)収集)マルチシグトランザクション80Mに夫々対応するトランザクションデータ28のリストである。トランザクションデータ28の夫々には、トランザクション特定データ280と、トランザクション発行日時282と、事業者識別データ284と、送信先アドレス286と、送信額288とが含まれている。
図2、図11及び図12を参照すると、トランザクションデータ28の夫々は、署名システム10が収集した(図2の(5)収集)マルチシグトランザクション80Mに対応するエントリデータ24に基づいて作成されている。換言すれば、トランザクションデータ28の夫々は、エントリデータ24のいずれかと対応している。トランザクションデータ28の夫々におけるトランザクション特定データ280、トランザクション発行日時282、送信先アドレス286及び送信額288には、対応するエントリデータ24のトランザクション特定データ240、トランザクション発行日時242、送信先アドレス244及び送信額245が夫々設定されている。
図2、図5及び図12を参照すると、BtoBtoCサービスにおいて、トランザクションデータ28の夫々における事業者識別データ284には、「AAA取引所」といった、利用者システム40の操作者が事業者システム50を識別可能なデータが設定されている。例えば、署名システム10は、トランザクションデータ28の夫々について、対応するマルチシグトランザクション80Mの送信側アドレス82を参照して、事業者識別データ284を作成する。
詳しくは、前述したように、マルチシグトランザクション80Mの送信側アドレス82には、マルチシグトランザクション80Mを発行した事業者システム50のマルチシグアドレス546(図6参照)が設定されている。また、署名システム10は、このマルチシグアドレス546を生成可能な公開鍵344(図8参照)を有している。署名システム10は、マルチシグアドレス546を参照してマルチシグトランザクション80Mを発行した事業者システム50を特定し、特定した事業者システム50を、例えば変換テーブルによって事業者名に変換して事業者識別データ284に設定する。
上述したように、トランザクションデータリスト28Lにおけるトランザクションデータ28の夫々には、対応するマルチシグトランザクション80Mを発行した事業者システム50を識別可能なデータである事業者識別データ284が含まれている。本実施の形態における事業者識別データ284は、事業者システム50の事業者の名称である。但し、本発明は、これに限られない。例えば、事業者識別データ284は、事業者のロゴ等の画像データであってもよい。
図2を参照すると、利用者システム40は、後述するように、受信したトランザクションデータリスト28Lを利用者システム40の操作者に表示する。利用者システム40は、操作者の操作に応じて、トランザクションデータリスト28Lのトランザクションデータ28の夫々についての署名承認又は署名否認を署名システム10に送信する(図2の(7)署名承認or署名否認)。前述したように、トランザクションデータ28の夫々は、マルチシグトランザクション80Mのいずれかと対応している。トランザクションデータ28の夫々についての署名承認又は署名否認は、対応するマルチシグトランザクション80Mの署名承認又は署名否認である。
図2及び図12を参照すると、署名システム10は、利用者システム40からトランザクションデータ28の夫々に対応するマルチシグトランザクション80Mの署名承認又は署名否認を受信する。図2、図11及び図12を参照すると、署名システム10は、署名承認されたトランザクションデータ28に対応するエントリデータ24のステータス248に「署名承認済み」を意味するデータを設定し、署名否認されたトランザクションデータ28に対応するエントリデータ24のステータス248に「署名否認済み」を意味するデータを設定する。
図2及び図11を参照すると、次に、署名システム10は、署名承認されたマルチシグトランザクション80Mに対して秘密鍵342によって署名して発行する(図2の(8)署名&発行)。詳しくは、署名システム10は、ブロックチェーン70から、「署名承認済み」を意味するデータを設定したエントリデータ24に対応するマルチシグトランザクション80Mを取得する。次に、署名システム10は、取得したマルチシグトランザクション80Mに対して、送信側アドレス82(図5参照)に設定されているマルチシグアドレス546(図6参照)に対応する秘密鍵342によって署名する。次に、署名システム10は、署名したマルチシグトランザクション80Mをブロードキャストする。この結果、署名システム10が署名したことによって承認された有効なマルチシグトランザクション80Mがブロックチェーン70に記憶される。即ち、承認済みのマルチシグトランザクション80Mが発行される。
署名システム10は、承認済みのマルチシグトランザクション80Mを発行した後、発行したマルチシグトランザクション80Mに対応するエントリデータ24のステータス248に「署名済み」を意味するデータを設定してもよい。
以上に説明したように、本実施の形態によれば、利用者に関連するマルチシグトランザクション80M、例えば、利用者システム40の発行依頼に応じて事業者システム50が秘密鍵542によって署名して発行したマルチシグトランザクション80Mは、署名システム10が利用者システム40からの署名への承認を受信した場合に、署名システム10の秘密鍵342によって署名される。即ち、マルチシグトランザクション80Mは、発行依頼した利用者システム40の利用者による確認という手順を踏んで署名されるため、事業者システム50の秘密鍵542が漏洩した場合も、漏洩した秘密鍵542の不正な使用による被害を防止できる。本発明によれば、マルチシグトランザクション80Mの信頼性を向上可能な新たな署名システム10を提供できる。
特に、本実施の形態によれば、利用者による署名承認が必要なマルチシグトランザクション80Mは、トランザクションデータリスト28Lに纏められて発行依頼した利用者システム40に送信される。従って、利用者は、マルチシグトランザクション80Mに対して署名承認すべきか署名否認すべきかを、取引内容を確認しつつ判断できる。
署名システム10による署名サービスは、上述したBtoBtoCサービスに限られず、必要に応じて様々に応用可能である。以下、署名システム10のBtoCサービスについて説明する。
図3を参照すると、まず、利用者システム40は、利用者システム40の操作者の操作に応じて、利用者システム40の口座から送金先口座に対して送金額を送金するという内容のマルチシグトランザクション80Mを作成する。利用者システム40は、作成したマルチシグトランザクション80Mに対して秘密鍵442によって署名してマルチシグトランザクション80Mを発行する(図3の(1)署名&発行)。
図3、図5及び図7を参照すると、図3の(1)署名&発行において、利用者システム40は、BtoBtoCサービス(図2参照)における事業者システム50と同様に、マルチシグトランザクション80Mのデータを設定する。詳しくは、利用者システム40は、送信側アドレス82に、利用者システム40の仮想通貨を保管している口座を特定するマルチシグアドレス446を設定し、送信先アドレス84に、送金先口座を特定するデータを設定し、送信額85に、送金額を設定し、トランザクション発行日時86に、トランザクション80を作成した日時を設定する。
次に、利用者システム40は、送信側アドレス82に設定したマルチシグアドレス446に対応する秘密鍵442によってマルチシグトランザクション80Mに署名する。次に、利用者システム40は、マルチシグトランザクション80Mをブロードキャストする。この結果、利用者システム40が作成したマルチシグトランザクション80Mがブロックチェーン70に記憶される。即ち、利用者システム40が作成した未承認のマルチシグトランザクション80Mが発行される。BtoCサービスにおいて発行されたマルチシグトランザクション80Mは、マルチシグアドレス446から発行されている。
図3を参照すると、利用者システム40は、マルチシグトランザクション80Mを発行すると(図3の(1)署名&発行)、その後の所定の時点において、BtoBtoCサービス(図2参照)と同様に、署名システム10にログインし、これにより、署名システム10に対してトランザクション参照依頼を行う(図3の(2)ログイン)。署名システム10は、利用者システム40からログイン要求を受けると、BtoBtoCサービス(図2参照)と同様に、利用者特定データ262及び利用者認証データ264(図9参照)を使用して利用者システム40を認証したうえで、利用者システム40のログインを許容する。
署名システム10は、利用者システム40からのトランザクション参照依頼(図3の(2)ログイン)をトリガーとして、ブロックチェーン70のトランザクション80から、署名対象となる未承認のマルチシグトランザクション80Mを収集する(図3の(3)収集)。詳しくは、署名システム10は、BtoCサービスにおいて、利用者システム40が秘密鍵442によって署名してマルチシグアドレス446から発行したマルチシグトランザクション80Mであって署名システム10の秘密鍵342による署名が必要な未承認のマルチシグトランザクション80Mを収集する。
図3、図5及び図13を参照すると、署名システム10は、収集したマルチシグトランザクション80Mの夫々に基づいて対応するエントリデータ24を作成してエントリ24Cに追加する。署名システム10は、追加したエントリデータ24のトランザクション特定データ240に、対応するマルチシグトランザクション80Mを特定可能なデータ、例えば、対応するマルチシグトランザクション80Mのハッシュ値を設定する。署名システム10は、追加したエントリデータ24のトランザクション発行日時242、送信先アドレス244及び送信額245に、対応するマルチシグトランザクション80Mのトランザクション発行日時86、送信先アドレス84及び送信額85を夫々設定する。署名システム10は、追加したエントリデータ24のステータス248に、「未承認」を意味するデータを設定する。
署名システム10は、追加したエントリデータ24の利用者特定データ246に、ログインした利用者システム40を特定可能なデータを設定する。例えば、署名システム10は、利用者特定データ246に、ログインした利用者システム40に対応する利用者特定データ262(図9参照)を設定する。但し、本発明は、これに限られず、利用者特定データ246は、署名システム10が、ログインした利用者システム40を一意に特定できる限り、どのようなデータであってもよい。
図3、図13及び図14を参照すると、署名システム10は、BtoBtoCサービスと同様に、収集したマルチシグトランザクション80Mに夫々対応するトランザクションデータ28のリストであるトランザクションデータリスト28Lを作成し、作成したトランザクションデータリスト28Lを、トランザクション参照依頼(図3の(2)ログイン)を送信した利用者システム40に送信する(図3の(4)トランザクションデータリスト送信)。図13及び図14を参照すると、トランザクションデータ28の夫々は、エントリデータ24のいずれかと対応している。
図3及び図14を参照すると、BtoCサービスにおいて、トランザクションデータ28の夫々における事業者識別データ284には、スペース等の初期値が設定されている。利用者システム40は、事業者識別データ284に初期値が設定されていることで、事業者システム50ではなく利用者システム40が発行したマルチシグトランザクション80Mに対応するトランザクションデータ28であることを識別できる。即ち、BtoCサービスにおいて、トランザクションデータリスト28Lにおけるトランザクションデータ28の夫々には、利用者システム40が発行したマルチシグトランザクション80Mであることを識別可能なデータである事業者識別データ284が含まれている。
図3を参照すると、利用者システム40は、BtoBtoCサービスと同様に、受信したトランザクションデータリスト28Lを利用者システム40の操作者に表示する。利用者システム40は、操作者の操作に応じて、トランザクションデータリスト28Lのトランザクションデータ28の夫々についての署名承認又は署名否認を署名システム10に送信する(図3の(5)署名承認or署名否認)。BtoBtoCサービスと同様に、トランザクションデータ28の夫々は、マルチシグトランザクション80Mのいずれかと対応している。トランザクションデータ28の夫々についての署名承認又は署名否認は、対応するマルチシグトランザクション80Mの署名承認又は署名否認である。
図3及び図14を参照すると、署名システム10は、BtoBtoCサービスと同様に、利用者システム40からトランザクションデータ28の夫々に対応するマルチシグトランザクション80Mの署名承認又は署名否認を受信する。図3及び図13を参照すると、署名システム10は、BtoBtoCサービスと同様に、利用者システム40から受信した署名承認又は署名否認に基づいて、エントリデータ24のステータス248を設定する。次に、署名システム10は、BtoBtoCサービスと同様に、署名承認されたマルチシグトランザクション80Mに対して秘密鍵342によって署名して発行する(図3の(6)署名&発行)。
詳しくは、署名システム10は、「署名承認済み」を意味するデータを設定したエントリデータ24に対応するマルチシグトランザクション80Mを取得する。次に、署名システム10は、取得したマルチシグトランザクション80Mに対して、送信側アドレス82(図5参照)に設定されているマルチシグアドレス446(図7参照)に対応する秘密鍵342によって署名する。次に、署名システム10は、マルチシグトランザクション80Mをブロードキャストする。この結果、署名システム10が署名したことによって承認された有効なマルチシグトランザクション80Mがブロックチェーン70に記憶される。即ち、承認済みのマルチシグトランザクション80Mが発行される。
上述したように、署名システム10は、利用者システム40が秘密鍵442によって署名して発行したマルチシグトランザクション80Mに対して、秘密鍵442に対応する他の秘密鍵342によって署名する。署名システム10がBtoBtoCサービスに加えてBtoCサービスを提供することで、マルチシグトランザクション80Mの信頼性を更に向上できる。
図1を参照すると、以下、本実施の形態における署名システム10のシステム構成を説明すると共に、署名システム10が複数の利用者システム40及び複数の事業者システム50に対して2つのサービスを提供する際の署名システム10の処理について説明する。
図15を参照すると、署名システム10は、パブリックシステム20と、プライベートシステム30とを備えている。
パブリックシステム20は、CPU(central processing unit:図示せず)を含めた様々な電子部品から構成されるパブリックサーバ22と、エントリ24C及び利用者情報26を記憶した記憶装置とを備えている。パブリックサーバ22は、この記憶装置に対して読み込み可能かつ書き込み可能に接続されている。例えば、パブリックサーバ22は、CPUによって様々なプログラムを実行することで、エントリ24C及び利用者情報26の夫々を参照及び更新する。描画したエントリ24C及び利用者情報26は、夫々異なるディスクユニットに記憶されている。但し、本発明は、これに限られず。エントリ24C及び利用者情報26の物理的な記憶方法は特に限定されない。
パブリックサーバ22は、通信回線によって、利用者システム40及び事業者システム50の夫々と通信可能に接続されている。また、パブリックサーバ22は、通信回線を経由して、ブロックチェーン70からマルチシグトランザクション80Mを収集できる。
プライベートシステム30は、パブリックシステム20と同様に、CPUを含めた様々な電子部品から構成されるプライベートサーバ32と、預かり秘密鍵34が記憶された記憶装置とを備えている。プライベートサーバ32は、この記憶装置に対して読み込み可能かつ書き込み可能に接続されている。例えば、プライベートサーバ32は、CPUによって様々なプログラムを実行することで、預かり秘密鍵34を参照可能である。
プライベートサーバ32は、通信回線を経由して、ブロックチェーン70にマルチシグトランザクション80Mを発行できる。また、パブリックサーバ22は、パブリックシステム20のエントリ24Cを読み込み可能かつ書き込み可能に接続されている。この接続を除き、パブリックシステム20とプライベートシステム30との間は、ファイアウォール等によって完全に遮断されており、これにより預かり秘密鍵34が安全に保管されている。
本実施の形態において、パブリックサーバ22及びプライベートサーバ32の夫々がCPUによって様々なプログラムを実行することで、署名システム10の様々なサービスが提供される。換言すれば、署名システム10のサービスは、パブリックサーバ22を備えたパブリックシステム20と、プライベートサーバ32を備えたプライベートシステム30とによって提供される。但し、署名システム10がサービスを提供するためのシステム構成は本実施の形態に限られず、様々に変形可能である。
図4及び図15を参照すると、本実施の形態において、パブリックシステム20は、事業者システム50からのエントリデータ56の受信(図4の(3)エントリデータ追加依頼)と、エントリデータ56に基づくエントリデータ24のエントリ24Cへの追加と、利用者システム40からのトランザクション参照依頼の受信(図4の(5)ログイン)と、ブロックチェーン70からのマルチシグトランザクション80Mの収集(図4の(6)収集)と、トランザクションデータリスト28Lの作成と、作成したトランザクションデータリスト28Lの利用者システム40への送信(図4の(7)トランザクションデータリスト送信)と、利用者システム40からのマルチシグトランザクション80Mの署名承認又は署名否認の受信(図4の(8)署名承認or署名否認)とを行う。プライベートシステム30は、マルチシグトランザクション80Mの署名及び発行(図4の(9)署名&発行)を行う。
上述したパブリックシステム20の処理は、エントリデータ追加処理(図16参照)と、エントリデータ更新処理(図17参照)とに大別できる。一方、プライベートシステム30は、署名処理(図18参照)を行う。以下、エントリデータ追加処理、エントリデータ更新処理及び署名処理の夫々について、フローチャートを使用して詳細に説明する。
図15及び図16を参照すると、エントリデータ追加処理において、パブリックシステム20のパブリックサーバ22は、事業者システム50から、エントリデータ56を伴うエントリデータ追加依頼を受信する(S1602)。このとき、パブリックサーバ22は、エントリデータ追加依頼が送信されたIP(internet protocol)アドレスを参照して、エントリデータ56を受信するか否かを判断してもよい。
次に、パブリックサーバ22は、受信したエントリデータ追加依頼が所定のエントリデータ追加条件を満たすか否か判定する(S1604)。エントリデータ追加条件は、例えば、受信したエントリデータ56に対応するマルチシグトランザクション80Mが存在することである(S1604)。
詳しくは、パブリックサーバ22は、ブロックチェーン70から、受信したエントリデータ56のトランザクション特定データ560(図10参照)によって特定されるマルチシグトランザクション80Mの取得を試みる。このマルチシグトランザクション80Mが取得できない場合、パブリックサーバ22は、エントリデータ追加条件が満たされていないと判定する。このマルチシグトランザクション80Mが取得できた場合、パブリックサーバ22は、エントリデータ56のトランザクション発行日時562、送信先アドレス564及び送信額565(図10参照)が取得したマルチシグトランザクション80Mのデータと一致するか否か判定する。パブリックサーバ22は、一致する場合、エントリデータ追加条件が満たされていると判定し、一致しない場合、エントリデータ追加条件が満たされていないと判定する。
パブリックサーバ22は、エントリデータ追加条件が満たされていないと判定したとき(S1604のNG)、事業者システム50に警告を送信する(S1606)。
一方、パブリックサーバ22は、エントリデータ追加条件が満たされていると判定したとき(S1604のOK)、受信したエントリデータ56をエントリ24Cに追加する(S1608)。詳しくは、前述したように、エントリデータ56に基づくエントリデータ24をエントリ24Cに追加する。
本実施の形態のエントリデータ追加処理によれば、署名システム10は、事業者システム50からエントリデータ56を受信したとき、受信したエントリデータ56が所定のエントリデータ追加条件を満たすか否か判定する。エントリデータ追加条件は、必要に応じて必要な条件を設定すればよい。署名システム10は、エントリデータ追加条件を満たした場合にエントリデータ24を作成してエントリ24Cに追加する。一方、署名システム10は、エントリデータ追加条件を満たさない場合、例えば、不正なエントリデータ56を受信した旨の警告を、事業者システム50に送信する。事業者システム50への警告により、不正なマルチシグトランザクション80Mの承認を防止でき、これによりマルチシグトランザクション80Mの信頼性を更に向上できる。但し、本発明は、これに限られず、エントリデータ追加条件による判定は、必要に応じて行えばよい。
図15及び図17を参照すると、エントリデータ更新処理において、パブリックシステム20のパブリックサーバ22は、利用者システム40からログインデータ(即ち、トランザクション参照依頼)を受信する(S1702)。
次に、パブリックサーバ22は、受信したログインデータを使用して、ログインデータを送信した利用者システム40を認証する(S1704)。例えば、パブリックサーバ22は、ログインデータに含まれる利用者IDが、利用者情報26の利用者特定データ262のいずれかと一致するか否か判定する。パブリックサーバ22は、更に、ログインデータに含まれる生体情報が、ログインデータの利用者IDと一致する利用者特定データ262に対応する利用者認証データ264と一致するか否か判定する。
パブリックサーバ22は、利用者システム40を認証できなかったとき(S1704のNG)、利用者システム40からのログインを拒否する(S1706)。
一方、パブリックサーバ22は、利用者システム40を認証できたとき(S1704のOK)、利用者システム40のログインを許容する。次に、パブリックサーバ22は、ブロックチェーン70から、ログインした(即ち、トランザクション参照依頼を行った)利用者に関連して利用者システム40のマルチシグアドレス446(図7参照)又は事業者システム50のマルチシグアドレス546(図6参照)から発行されており、且つ、利用者システム40の秘密鍵442(図7参照)又は事業者システム50の秘密鍵542(図6参照)によって署名された未承認のマルチシグトランザクション80Mを収集する。
上述の収集の際、パブリックサーバ22は、エントリ24Cを参照し、トランザクション参照依頼を行った利用者システム40を特定している利用者特定データ246(図13参照)を含むエントリデータ24を選択し、選択したエントリデータ24のトランザクション特定データ240(図10参照)によって特定されるマルチシグトランザクション80Mを、利用者に関連して発行されていると判定する(以下、「判定1」という)。
加えて、上述の収集の際、トランザクション参照依頼を行った利用者システム40が利用者システム40の秘密鍵442(図7参照)によって署名して発行したマルチシグトランザクション80M、即ち、利用者システム40のマルチシグアドレス446(図7参照)からのマルチシグトランザクション80Mを、利用者に関連して発行されていると判定する(以下、「判定2」という)。パブリックサーバ22は、この判定2において、更に、マルチシグトランザクション80Mが所定の収集条件を満たすか否かを判定する。
上述の収集条件は、例えば、送信先アドレス84(図5参照)がホワイトリストに載っていることであってもよいし、送信額85(図5参照)の所定期間内(例えば、1日又は1ヵ月)の合計額が所定限度額を超えないことであってもよい。収集条件は、送信側アドレス82(図5参照)がホワイトリストに載っていることであってもよい。収集条件は、利用者システム40からの送信額85の所定期間内の合計額が所定限度額を超えないことであってもよいし、利用者システム40からの所定期間内のマルチシグトランザクション80Mの発行回数が所定限度回数を超えないことであってもよい。
次に、パブリックサーバ22は、判定2を満たすことで収集したマルチシグトランザクション80Mに基づいてエントリ24Cを更新する(S1710)。詳しくは、BtoCサービスについて説明したように、パブリックサーバ22は、収集したマルチシグトランザクション80Mの夫々から新たなエントリデータ24を作成してエントリ24Cに追加する。
次に、パブリックサーバ22は、収集したマルチシグトランザクション80Mに夫々対応するトランザクションデータ28のリストであるトランザクションデータリスト28Lを作成する(S1712)。次に、パブリックサーバ22は、作成したトランザクションデータリスト28Lを、トランザクション参照依頼を行った利用者システム40に送信する(S1714)。このとき、例えば、図19に示されるトランザクションデータリスト28Lが利用者システム40に送信される。
その後、パブリックサーバ22は、利用者システム40からトランザクションデータ28の夫々について、対応するマルチシグトランザクション80Mの署名承認又は署名否認を受信する(S1716)。パブリックサーバ22は、前述したように、署名承認されたマルチシグトランザクション80Mに対応するエントリデータ24を署名承認済みとし、署名否認されたマルチシグトランザクション80Mに対応するエントリデータ24を署名否認済みとする(S1720)。この結果、例えば、エントリデータ24のステータス248は、図20に示されるように更新される。
エントリデータ更新処理によれば、署名システム10は、利用者システム40が利用者システム40の秘密鍵442(図7参照)によって署名して発行したマルチシグトランザクション80Mを収集する際に、マルチシグトランザクション80Mが収集条件を満たすか否かを判定する。収集条件は、前述したように、必要に応じて様々に設定すればよい。
署名システム10は、収集条件を満たしたマルチシグトランザクション80Mから作成したエントリデータ24をエントリ24Cに追加する。一方、署名システム10は、収集条件を満たさないマルチシグトランザクション80Mについて、例えば、不正なマルチシグトランザクション80Mが発行されている旨の警告を、利用者システム40に送信してもよい。利用者システム40への警告により、不正なマルチシグトランザクション80Mの承認を防止でき、これによりマルチシグトランザクション80Mの信頼性を更に向上できる。但し、本発明は、これに限られず、収集条件による判定は、必要に応じて行えばよい。
図15及び図18を参照すると、プライベートシステム30のプライベートサーバ32は、例えば、所定の時間間隔で定期的に署名処理を行う。プライベートサーバ32は、署名処理において、エントリ24Cから、ステータス248(図20参照)に「署名承認済み」を意味するデータが設定されているエントリデータ24(署名承認済みのエントリデータ24)を検索する(S1802)。プライベートサーバ32は、署名承認済みのエントリデータ24の夫々について、下記の処理を行う。
プライベートサーバ32は、署名承認済みのエントリデータ24に対応する未承認のマルチシグトランザクション80M(即ち、署名承認対象のマルチシグトランザクション80M)が所定の署名条件を満たすか否か判定する(S1804)。署名条件は、例えば、署名承認済みのエントリデータ24が、対応する未承認のマルチシグトランザクション80Mのデータと一致することである(S1804)。
詳しくは、プライベートサーバ32は、ブロックチェーン70から、署名承認対象のマルチシグトランザクション80Mの取得を試みる。このマルチシグトランザクション80Mが取得できない場合、プライベートサーバ32は、署名条件が満たされていないと判定する。このマルチシグトランザクション80Mが取得できた場合、プライベートサーバ32は、エントリデータ24のトランザクション発行日時242、送信先アドレス244及び送信額245(図20参照)が取得したマルチシグトランザクション80Mのデータと一致するか否か判定する。プライベートサーバ32は、一致しない場合、署名条件が満たされていないと判定する。プライベートサーバ32は、一致する場合、署名承認対象のマルチシグトランザクション80Mが未だ承認されていないことを確認する。プライベートサーバ32は、署名承認対象のマルチシグトランザクション80Mが既に承認されている場合、署名条件が満たされていないと判定し、未だ承認されていない場合、署名条件が満たされていると判定する。
プライベートサーバ32は、署名条件が満たされていないと判定したとき(S1804のNG)、エントリデータ24の利用者特定データ246(図20参照)によって特定される利用者システム40に警告を送信する(S1806)。
一方、プライベートサーバ32は、署名条件が満たされていると判定したとき(S1804のOK)、預かり秘密鍵34から、署名承認済みのエントリデータ24に対応する秘密鍵342を取得する(S1808)。次に、プライベートサーバ32は、取得した秘密鍵342を使用して署名承認対象のマルチシグトランザクション80Mに署名する(S1810)。次に、プライベートサーバ32は、署名したマルチシグトランザクション80Mを発行する(S1812)。
本実施の形態の署名処理によれば、署名システム10は、利用者システム40からトランザクションデータ28に対応するマルチシグトランザクション80Mに対する署名承認を受信すると、署名承認されたマルチシグトランザクション80Mが所定の署名条件を満たすか否か判定し、署名条件を満たしたマルチシグトランザクション80Mに対して秘密鍵342によって署名する。
署名条件は、必要に応じて様々に設定すればよい。例えば、署名条件のうちの1つは、エントリデータ24が追加されてから署名が行われるまでの間に所定時間以上の時間が経過していないことであってもよい。署名システム10は、署名条件を満たしたマルチシグトランザクション80Mに署名する。一方、署名システム10は、署名条件を満たさないマルチシグトランザクション80Mについて、例えば、マルチシグトランザクション80Mが改ざんされている旨の警告を、利用者システム40に送信する。利用者システム40への警告により、不正なマルチシグトランザクション80Mの承認を防止でき、これによりマルチシグトランザクション80Mの信頼性を更に向上できる。但し、本発明は、これに限られず、署名条件による判定は、必要に応じて行えばよい。
以下、利用者システム40のシステム構成を説明すると共に、利用者システム40が署名システム10にログインする際の利用者システム40の処理について、更に詳細に説明する。
図21を参照すると、本実施の形態による利用者システム40は、例えば、PCやスマートフォン等の利用者端末40である。利用者端末40は、処理装置42と、利用者秘密鍵44が記憶された記憶装置と、入力装置46と、表示装置48とを備えている。処理装置42は、CPUを含めた様々な電子部品から構成されている。入力装置46は、例えば、PCのキーボードやスマートフォンのタッチパネルである。表示装置48は、例えば、PCやスマートフォンの液晶ディスプレイである。但し、利用者システム40のシステム構成はこれに限られず、様々に変形可能である。例えば、利用者システム40は、複数のコンピュータからなるクライアントサーバシステムであってもよい。また、利用者システム40は、必要に応じて利用者秘密鍵44を有していればよい。
処理装置42は、利用者秘密鍵44が記憶された記憶装置に対して読み込み可能かつ書き込み可能に接続されている。例えば、処理装置42は、CPUによって様々なプログラムを実行することで、入力装置46から利用者(操作者)による入力情報を取得したり、利用者秘密鍵44を参照したり、表示装置48に表示情報を表示する等の様々な処理を行う。利用者端末40は、通信回線によって、署名システム10のパブリックシステム20及び事業者システム50の夫々と通信可能に接続されている。特に、利用者端末40は、署名システム10と通信可能である。また、本実施の形態の利用者端末40は、通信回線を経由して、ブロックチェーン70にマルチシグトランザクション80Mを発行できる。但し、本発明は、これに限られない。例えば、利用者端末40が利用者秘密鍵44を有していない場合、利用者端末40は、マルチシグトランザクション80Mを発行できなくてもよい。
本実施の形態において、記憶装置に記憶されたプログラムを処理装置42がローディングしてCPUによって実行することで、利用者端末40は、上述した様々な処理を行う。換言すれば、利用者端末40の記憶装置は、コンピュータを利用者端末40として機能させるためのプログラムを有している。以下、このプログラムによる利用者端末40の処理について、フローチャートを使用して詳細に説明する。
図21及び図22を参照すると、利用者端末40は、入力装置46を使用した操作者のログイン操作により、署名システム10(パブリックシステム20)にログインデータを送信する(S2202)。ログインデータは、例えば、利用者端末40の操作者のメールアドレスと認証データである。
利用者端末40は、署名システム10(パブリックシステム20)からログインの許容又は拒否を受信し、これによりログインが成功したか否か判定する(S2204)。利用者端末40は、ログインが成功しなかった場合(S2204のNO)、処理を終了する(S2206)。
利用者端末40は、ログインが成功した場合(S2204のYES)、署名システム10(パブリックシステム20)にトランザクション参照依頼を送信する(S2208)。但し、ログインデータの送信がトランザクション参照依頼を兼ねていてもよい。即ち、利用者端末40は、何らかの方法によって、署名システム10にトランザクション参照依頼を送信すればよい。
次に、利用者端末40は、署名システム10(パブリックシステム20)からトランザクションデータリスト28Lを受信する(S2210)。利用者端末40は、署名システム10から受信したトランザクションデータリスト28Lに基づく表示データを表示装置48に表示する(S2212)。図23を図19と比較すると、トランザクションデータリスト28Lのトランザクションデータ28の夫々が表示装置48に表示される。例えば、事業者識別データ284が設定されていないトランザクションデータ28(図19におけるトランザクションデータ1)について、事業者の名称に代えて「?」が表示される。
図22及び図23を参照すると、利用者端末40の操作者は、入力装置46のスワイプ等の操作により、表示装置48に表示されたトランザクションデータ28の夫々に対して、署名承認又は署名否認を入力する。利用者端末40は、入力装置46から入力された署名承認又は署名否認を署名システム10に送信する(S2214)。
本実施の形態によれば、未承認のマルチシグトランザクション80Mの内容を、マルチシグトランザクション80Mに関連する利用者端末40の表示装置48に視覚的に表示する。従って、利用者端末40の操作者は、未承認のマルチシグトランザクション80Mが不正に発行されたものか否かを容易に確認できる。
本実施の形態は、既に説明した変形例に加えて、更に様々に変形可能である。例えば、図15を参照すると、プライベートシステム30は、マルチシグトランザクション80Mを発行することなく、預かり秘密鍵34の保管のみを行ってもよい。この場合、パブリックシステム20は、必要に応じてプライベートシステム30から必要な秘密鍵342及び公開鍵344を取得し、取得した秘密鍵342によって署名したマルチシグトランザクション80Mを発行すればよい。
図24を参照すると、変形例における利用者システム(利用者端末)40は、トランザクション参照依頼及び署名承認を、図2に示されるように署名システム10に対して直接的に行うのでなく、事業者システム50を経由して、署名システム10に対して間接的に行ってもよい。
本変形例において、利用者端末40は、利用者端末40の操作者(利用者)の操作に応じて、事業者システム50に対して、マルチシグトランザクション80Mの発行を依頼すると共に、二段階認証コードを送信する(図22の(1)発行依頼with二段階認証コード)。二段階認証コードは、例えば、利用者が、ワンタイムパスワード生成プログラム(図示せず)から取得したワンタイムパスワード(使い捨てパスワード)である。
本実施の形態において、図22の(1)発行依頼with二段階認証コードは、利用者が保有する利用者端末40から事業者システム50へのデータ通信によって行われる。但し、本発明は、これに限られない。例えば、利用者は、事業者である取引所に設置された端末(即ち、事業者システム50の端末)を利用者端末(利用者システム)40として操作してもよい。
事業者システム50は、利用者が実際に仮想通貨を所有しているかといった検証を行った後、BtoBtoCサービスと同様に、マルチシグトランザクション80Mを作成し、作成したマルチシグトランザクション80Mに署名してマルチシグトランザクション80Mを発行する(図22の(2)署名&発行)。
次に、事業者システム50は、BtoBtoCサービスと同様に、発行したマルチシグトランザクション80Mに対応するエントリデータ56を作成する。次に、事業者システム50は、署名システム10に対して、作成したエントリデータ56及び利用者端末40から受信した二段階認証コードを付したエントリデータ追加依頼を送信し、これによりマルチシグトランザクション80Mを発行したことを署名システム10に通知する(図22の(3)エントリデータ追加依頼with二段階認証コード)。
署名システム10は、受信した二段階認証コードを、例えば、ワンタイムパスワード生成プログラム(図示せず)が生成したはずのワンタイムパスワードと照合し、これにより、エントリデータ追加依頼が正当なものであるか否かを検証する。署名システム10は、エントリデータ追加依頼が正当なものであると判断した場合、以下の処理を行う。一方、署名システム10は、エントリデータ追加依頼が不当なものであると判断した場合、事業者システム50に対して警告を送信し、受信したエントリデータ追加依頼についての処理を終了する。
署名システム10は、エントリデータ追加依頼が正当なものであると判断した場合、BtoBtoCサービスと同様に、受信したエントリデータ56に基づくエントリデータ24をエントリ24Cに追加する。次に、署名システム10は、ブロックチェーン70のトランザクション80から、署名対象となるマルチシグトランザクション80Mを収集する(図22の(4)収集)。詳しくは、署名システム10は、追加したエントリデータ24のトランザクション特定データ240(図11参照)によって特定される未承認のマルチシグトランザクション80Mを、利用者に関連するマルチシグトランザクション80Mとして収集する。
次に、署名システム10は、収集したマルチシグトランザクション80Mに対応するエントリデータ24のステータス248(図11参照)に「署名承認済み」を意味するデータを設定する。次に、署名システム10は、BtoBtoCサービスと同様に、署名承認されたマルチシグトランザクション80Mに対して秘密鍵342によって署名して発行する(図22の(5)署名&発行)。
本変形例において、利用者端末40から事業者システム50へのマルチシグトランザクション80Mの発行依頼は、利用者端末40から署名システム10へのトランザクション参照依頼をも意味する。署名システム10は、事業者システム50からエントリデータ追加依頼を受信することで、利用者端末40からトランザクション参照依頼を検知する。署名システム10は、事業者システム50を経由して受信した利用者端末40からのトランザクション参照依頼をトリガーとして、前述の処理を行う。
詳しくは、署名システム10は、利用者端末40からのトランザクション参照依頼をトリガーとして、事業者システム50から、マルチシグトランザクション80Mを特定可能なトランザクション特定データ560(図10参照)を含むエントリデータ56を受信する。署名システム10は、マルチシグトランザクション80Mの収集を行う際、受信したトランザクション特定データ560によって特定されるマルチシグトランザクション80Mを収集する。即ち、署名システム10は、BtoBtoCサービスと同様に、利用者端末40からのトランザクション参照依頼をトリガーとして、秘密鍵342による署名が必要なマルチシグトランザクション80Mを収集する。
また、署名システム10は、事業者システム50を経由して利用者端末40から二段階認証コードを受信する。署名システム10は、受信した二段階認証コードが正当なものである場合、利用者端末40の利用者が署名承認したと判断して、マルチシグトランザクション80Mに対して、署名システム10の秘密鍵342によって署名する。即ち、本変形例によれば、署名システム10は、利用者端末40から、事業者システム50を経由した二段階認証によって、収集したマルチシグトランザクション80Mの署名承認を受信する。
本変形例によれば、マルチシグトランザクション80Mは、発行依頼した利用者端末40から送信された二段階認証コード(ワンタイムパスワード)による認証という手順を踏んで署名される。仮に、利用者端末40から送信された二段階認証コードが漏洩した場合でも、漏洩した二段階認証コードを再度付したエントリデータ追加依頼が署名システム10に対して送信されると、署名システム10は、エントリデータ追加依頼が不当なものであると判断する。従って、事業者システム50の秘密鍵542が漏洩した場合も、漏洩した秘密鍵542の不正な使用による被害を防止できる。本変形例によっても、マルチシグトランザクション80Mの信頼性を向上可能な新たな署名システム10を提供できる。
10 署名システム
20 パブリックシステム
22 パブリックサーバ
24C エントリ
24 エントリデータ
240 トランザクション特定データ
242 トランザクション発行日時
244 送信先アドレス
245 送信額
246 利用者特定データ
248 ステータス
26 利用者情報
262 利用者特定データ
264 利用者認証データ
28L トランザクションデータリスト
28 トランザクションデータ
280 トランザクション特定データ
282 トランザクション発行日時
284 事業者識別データ
286 送信先アドレス
288 送信額
30 プライベートシステム
32 プライベートサーバ
34 預かり秘密鍵
342 秘密鍵
344 公開鍵
40 利用者システム(利用者端末)
42 処理装置
44 利用者秘密鍵
442 秘密鍵
444 公開鍵
446 マルチシグアドレス
46 入力装置
48 表示装置
50 事業者システム
54 事業者秘密鍵
542 秘密鍵
544 公開鍵
546 マルチシグアドレス
56 エントリデータ
560 トランザクション特定データ
562 トランザクション発行日時
564 送信先アドレス
565 送信額
566 利用者特定データ
70 ブロックチェーン
80 トランザクション
80M マルチシグトランザクション
82 送信側アドレス
84 送信先アドレス
85 送信額
86 トランザクション発行日時
88 署名データ

Claims (10)

  1. 事業者システムが秘密鍵によって署名して発行したマルチシグトランザクションに対して、前記秘密鍵に対応する他の秘密鍵によって署名する署名システムであって、
    利用者端末からのトランザクション参照依頼をトリガーとして、前記他の秘密鍵による署名が必要な前記マルチシグトランザクションを収集し、
    前記利用者端末から、前記収集した前記マルチシグトランザクションの署名承認を受信し、
    前記署名承認された前記マルチシグトランザクションに対して前記他の秘密鍵によって署名する
    署名システム。
  2. 請求項1記載の署名システムであって、
    前記利用者端末から前記マルチシグトランザクションに対する前記署名承認を受信すると、前記署名承認された前記マルチシグトランザクションが所定の署名条件を満たすか否か判定し、前記署名条件を満たした前記マルチシグトランザクションに対して前記他の秘密鍵によって署名する
    署名システム。
  3. 請求項1又は請求項2記載の署名システムであって、
    前記収集した前記マルチシグトランザクションに夫々対応するトランザクションデータのリストであるトランザクションデータリストを前記利用者端末に送信し、
    前記利用者端末から、前記トランザクションデータに対応する前記マルチシグトランザクションの前記署名承認を受信する
    署名システム。
  4. 請求項3記載の署名システムであって、
    前記事業者システムから受信したエントリデータ追加依頼に夫々応じて作成した1以上のエントリデータを有しており、
    前記エントリデータは、前記マルチシグトランザクションと夫々対応しており、
    前記エントリデータの夫々には、対応する前記マルチシグトランザクションを特定可能なトランザクション特定データが含まれており、
    前記マルチシグトランザクションの前記収集を行う際、前記エントリデータの前記トランザクション特定データによって特定される前記マルチシグトランザクションを収集する
    署名システム。
  5. 請求項4記載の署名システムであって、
    前記事業者システムから前記エントリデータ追加依頼を受信したとき、受信した前記エントリデータ追加依頼が所定のエントリデータ追加条件を満たすか否か判定し、前記エントリデータ追加条件を満たした場合に前記エントリデータを作成する
    署名システム。
  6. 請求項3から請求項5までのいずれかに記載の署名システムであって、
    前記トランザクションデータリストにおける前記トランザクションデータには、対応する前記マルチシグトランザクションを発行した前記事業者システムを識別可能なデータが含まれている
    署名システム。
  7. 請求項1記載の署名システムであって、
    前記利用者端末からの前記トランザクション参照依頼をトリガーとして、前記事業者システムから前記マルチシグトランザクションを特定可能なトランザクション特定データを受信し、
    前記マルチシグトランザクションの前記収集を行う際、前記受信した前記トランザクション特定データによって特定される前記マルチシグトランザクションを収集し、
    前記利用者端末から、前記事業者システムを経由した二段階認証によって、前記収集した前記マルチシグトランザクションの前記署名承認を受信する
    署名システム。
  8. 請求項1から請求項7までのいずれかに記載の署名システムであって、
    パブリックシステムと、プライベートシステムとを備えており、
    前記パブリックシステムは、前記マルチシグトランザクションの前記収集と、前記マルチシグトランザクションの前記署名承認の前記受信とを行い、
    前記プライベートシステムは、前記マルチシグトランザクションの前記署名を行う
    署名システム。
  9. 請求項3から請求項6までのいずれかに記載の署名システムと通信可能な利用者端末であって、
    表示装置を備えており、
    前記署名システムに前記トランザクション参照依頼を送信し、
    前記署名システムから受信した前記トランザクションデータリストに基づく表示データを前記表示装置に表示する
    利用者端末。
  10. コンピュータを、請求項9記載の利用者端末として機能させるためのプログラム。
JP2018041989A 2018-03-08 2018-03-08 署名システム Active JP7000207B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018041989A JP7000207B2 (ja) 2018-03-08 2018-03-08 署名システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018041989A JP7000207B2 (ja) 2018-03-08 2018-03-08 署名システム

Publications (2)

Publication Number Publication Date
JP2019161302A JP2019161302A (ja) 2019-09-19
JP7000207B2 true JP7000207B2 (ja) 2022-01-19

Family

ID=67992731

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018041989A Active JP7000207B2 (ja) 2018-03-08 2018-03-08 署名システム

Country Status (1)

Country Link
JP (1) JP7000207B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6840319B1 (ja) * 2019-09-24 2021-03-10 スタンダードキャピタル株式会社 取引情報処理システム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002091303A (ja) 2000-09-19 2002-03-27 Toshiba Corp 署名用記憶媒体及びxml署名授受方法
JP2006252213A (ja) 2005-03-11 2006-09-21 Oki Electric Ind Co Ltd 自動取引装置及び自動取引システム
JP2014216881A (ja) 2013-04-26 2014-11-17 株式会社日立システムズ 電子取引システム、電子取引方法、及びプログラム
US20170178127A1 (en) 2015-12-18 2017-06-22 International Business Machines Corporation Proxy system mediated legacy transactions using multi-tenant transaction database
JP2017188883A (ja) 2017-03-23 2017-10-12 株式会社bitFlyer プライベートノード、プライベートノードにおける処理方法、及びそのためのプログラム
JP2017204070A (ja) 2016-05-10 2017-11-16 日本電信電話株式会社 決済システム、決済方法、トランザクション生成装置及びトランザクション生成プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002091303A (ja) 2000-09-19 2002-03-27 Toshiba Corp 署名用記憶媒体及びxml署名授受方法
JP2006252213A (ja) 2005-03-11 2006-09-21 Oki Electric Ind Co Ltd 自動取引装置及び自動取引システム
JP2014216881A (ja) 2013-04-26 2014-11-17 株式会社日立システムズ 電子取引システム、電子取引方法、及びプログラム
US20170178127A1 (en) 2015-12-18 2017-06-22 International Business Machines Corporation Proxy system mediated legacy transactions using multi-tenant transaction database
JP2017204070A (ja) 2016-05-10 2017-11-16 日本電信電話株式会社 決済システム、決済方法、トランザクション生成装置及びトランザクション生成プログラム
JP2017188883A (ja) 2017-03-23 2017-10-12 株式会社bitFlyer プライベートノード、プライベートノードにおける処理方法、及びそのためのプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
この1冊でまるごとわかる ブロックチェーン&ビットコイン ,日本,日経BP社,2016年12月24日,pp.84-85
石黒尚久ほか,最新ブロックチェーンがよ~くわかる本,第1版,日本,株式会社秀和システム,2017年08月01日,pp.106-107

Also Published As

Publication number Publication date
JP2019161302A (ja) 2019-09-19

Similar Documents

Publication Publication Date Title
KR101661933B1 (ko) 블록체인을 기반으로 하는 공인인증서 인증시스템 및 이를 이용한 인증방법
KR101661930B1 (ko) 블록체인을 기반으로 하는 공인인증서 발급시스템
US20210351931A1 (en) System and method for securely processing an electronic identity
KR101799343B1 (ko) 인증 정보의 사용 방법, 파기 방법 및 이를 지원하는 블록체인기반 인증 정보 관리 서버
US10885501B2 (en) Accredited certificate issuance system based on block chain and accredited certificate issuance method based on block chain using same, and accredited certificate authentication system based on block chain and accredited certificate authentication method based on block chain using same
RU2448365C2 (ru) Устройство и способ защищенной передачи данных
CN102099810B (zh) 移动设备辅助的安全计算机网络通信
US20060123465A1 (en) Method and system of authentication on an open network
US20090271321A1 (en) Method and system for verification of personal information
JP4818664B2 (ja) 機器情報送信方法、機器情報送信装置、機器情報送信プログラム
JP3228339U (ja) 個人認証及び確認システム及び方法
EP1719283B1 (en) Method and apparatus for authentication of users and communications received from computer systems
WO2007111234A1 (ja) 脆弱性検証付きのバイオメトリクス認証システムおよび方法
US20050228687A1 (en) Personal information management system, mediation system and terminal device
US12033142B2 (en) Authenticator app for consent architecture
WO2018088475A1 (ja) 電子認証方法及びプログラム
JP5278495B2 (ja) 機器情報送信方法、機器情報送信装置、機器情報送信プログラム
JP7000207B2 (ja) 署名システム
JP2008502045A5 (ja)
KR101360843B1 (ko) 차세대 금융 거래 시스템
CN117396866A (zh) 授权交易托管服务
KR100905315B1 (ko) 모바일 환경에서의 공인인증서 서비스 방법
TWI737139B (zh) 個人資料保護應用系統與個人資料保護應用方法
JP2005284327A (ja) 領収書発行システム
KR101936941B1 (ko) 생체인증을 이용한 전자결재 시스템, 방법 및 프로그램

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210222

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211117

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211223

R150 Certificate of patent or registration of utility model

Ref document number: 7000207

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150