(57)【要約】【課題】  非中央集権環境において、特定の中央サーバを設置することなくネッティングを行う。【解決手段】  複数の端末から構成されるブロックチェーンシステムに含まれる端末は、他の端末に送信する金額に係るトランザクションを生成するトランザクション生成処理部と、トランザクション生成処理部が生成したトランザクションと、他の端末から受信したトランザクションと、に基づき計算尻を計算する計算尻算出処理部と、計算尻に基づきネッティングトランザクションを生成するネッティングトランザクション生成処理部と、ネッティングトランザクション生成処理部が生成したネッティングトランザクションを予め定められた他の端末に送信する機能と、を備える。【選択図】図１２
2019091129.tif 000002
【特許請求の範囲】
【請求項１】
複数の端末から構成されるブロックチェーンシステムに含まれる端末であって、
他の端末に送信する金額に係るトランザクションを生成するトランザクション生成処理部と、
前記トランザクション生成処理部が生成したトランザクションと、他の端末から受信したトランザクションと、に基づき計算尻を計算する計算尻算出処理部と、
前記計算尻に基づきネッティングトランザクションを生成するネッティングトランザクション生成処理部と、を備え、
前記ネッティングトランザクション生成処理部が生成したネッティングトランザクションを、予め定められた他の端末に送信する、
ことを特徴とする端末。
【請求項２】
請求項１に記載の端末において、
所定の乱数を生成する乱数生成処理部を更に備え、前記ネッティングトランザクション生成処理部は、前記乱数を用いて前記ネッティングトランザクションを生成する、
ことを特徴とする端末。
【請求項３】
複数の端末から構成されるブロックチェーンシステムに含まれる端末であって、
他の端末に送信する金額に係るトランザクションを生成するトランザクション生成処理部と、
前記トランザクション生成処理部が生成したトランザクションと、他の端末から受信したトランザクションと、に基づき計算尻を計算する計算尻算出処理部と、
前記計算尻と、他の端末から受信したネッティングトランザクションと、に基づきネッティングトランザクションを生成するネッティングトランザクション生成処理部と、を備え、
前記ネッティングトランザクション生成処理部が生成したネッティングトランザクションを、予め定められた他の端末に送信する、
ことを特徴とする端末。
【請求項４】
請求項３に記載の端末において、
前記他の端末から受信したネッティングトランザクションは、他の端末の乱数生成処理部が生成した乱数を用いて生成されている、
ことを特徴とする端末。
【請求項５】
第１の端末と、第２の端末と、第３の端末と、から構成されるブロックチェーンシステムにおいて、
前記第１の端末と、第２の端末と、第３の端末とは、それぞれ、他の端末に送信する金額に係るトランザクションを生成し、それぞれの端末が生成したトランザクションと、それぞれの端末が他の端末から受信したトランザクションと、に基づき、それぞれ計算尻を計算し、
前記第１の端末は、生成した計算尻に基づき第１のネッティングトランザクションを生成して前記第２の端末に送信し、
前記第２の端末は、前記第１のネッティングトランザクションに基づき第２のネッティングトランザクションを生成して前記第３の端末に送信する、
ことを特徴とするブロックチェーンシステム。
【請求項６】
請求項５に記載のブロックチェーンシステムにおいて、
前記第１の端末は、所定の乱数を生成し、当該乱数を用いて前記第１のネッティングトランザクションを生成し、
前記第３の端末は、前記第２のネッティングトランザクションに基づき第３のネッティングトランザクションを生成して前記第１の端末に送信する、
ことを特徴とするブロックチェーンシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非中央集権状況下における決済方法に関する。
【背景技術】
【０００２】
金融機関や政府などの信頼できる中央集権機関を経由して実施されてきた取引を、利用者間のＰ２Ｐ（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）によって直接的な取引に代替する技術として、分散台帳技術（又はブロックチェーン技術）がある。特に、ビットコイン（登録商標、以下同）と呼ばれる仮想通貨を用いて、銀行などの中央集権機関を必要とせずに決済取引を行う技術がある。ビットコインでは、Ｐ２Ｐネットワーク上で取引データ（以下、トランザクションとも呼ぶ）をマイナーと呼ばれるノードが正当性を判定した後、プルーフオブワークと呼ばれる特定のハッシュ値を算出する作業で確定処理を行う。確定されたトランザクションは、１つのブロックにまとめられ、ブロックチェーン（以下、ＢＣとも呼ぶ）と呼ばれる分散台帳に記載される。
【０００３】
さらに、近年では、特定のノードのみが台帳データ、トランザクション承認処理に参加するコンソーシアム型のブロックチェーン技術がエンタープライズ分野で活発に研究、開発されている。コンソーシアム型のブロックチェーン技術の特徴として、トランザクションのスループット、及びシステムのスケーラビリティがビットコインなどのブロックチェーンシステムに比べて高い点があげられる。このため、金融機関同士の送金指図の決済などにおける利用が期待されている。いずれのブロックチェーンシステムも既存システムのような中央集権者や中央のサーバ等が必要にならないので、システムの維持費、利用手数料の削減が期待される。
【０００４】
本分野における公知技術として、特開2017-91149がある。この文献には、「複数のトランザクション生成装置によって生成されたトランザクションデータを含むブロックを連結したブロックチェーンデータに、新たなブロックを連結して、新たなブロックチェーンデータを生成するブロックチェーン生成装置であって、ブロックチェーンデータと、ブロックチェーンに含まれていないトランザクションデータとを含む共有データを取得する同期手段と、ブロックチェーンデータのトランザクションデータのうち、当該ブロックチェーン生成装置を用いる生成者の識別子に関連するトランザクションデータから、生成者の取引パターン量を算出する取引パターン量算出手段と、取引パターン量算出手段が算出した取引パターン量に基づいて、生成者が、新たなブロックチェーンデータを生成する資格を有しているか否かを判定するブロック生成条件確認手段と、ブロック生成条件確認手段が資格を有していると判定した場合、共有データを参照して、新たなブロックチェーンの生成を試みるブロックチェーン生成手段とを備えるブロックチェーン生成装置」が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開2017-91149
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ブロックチェーンシステムでは、システム全体を管理、統括しているノードがいないため、金融機関の間の送金のネッティング決済といった処理を行う事が困難な問題がある。ネッティング決済とは、例えばA銀行からB銀行へ50支払、B銀行からA銀行へ40支払の指図がある時に、差額分である10(＝50−40)の支払(トランザクション)をA銀行からB銀行へ行う処理である(2者間ネッティング処理)。
【０００７】
特許文献１には、ブロックチェーンシステムのような非中央集権環境において、特定のネッティング専用の中央サーバを設置することなくネッティング決裁処理を行うための機構は開示されていない。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の一態様は以下の構成を採用する。すなわち、複数の端末から構成されるブロックチェーンシステムに含まれる端末は、他の端末に送信する金額に係るトランザクションを生成するトランザクション生成処理部と、トランザクション生成処理部が生成したトランザクションと、他の端末から受信したトランザクションと、に基づき計算尻を計算する計算尻算出処理部と、計算尻に基づきネッティングトランザクションを生成するネッティングトランザクション生成処理部と、ネッティングトランザクション生成処理部が生成したネッティングトランザクションを予め定められた他の端末に送信する機能と、を備える。
【発明の効果】
【０００９】
本発明の一態様によれば、例えば分散台帳、ブロックチェーンシステムのような非中央集権環境において、特定のネッティング専用の中央サーバを設置することなく、ネッティング決済が可能となる。
【００１０】
上記の一態様は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１１】
【図１】実施例１における決済システムの構成の一例を示すブロック図。
【図２】実施例１における端末のハードウェア構成の一例を示すブロック図。
【図３】実施例１におけるトランザクション送信処理の一例を示すシーケンス図。
【図４】実施例１におけるトランザクション送信処理中に生成された8つのトランザクションの一例を示す図。
【図５】実施例１における端末１００が持つトランザクション情報の一例を示す図。
【図６】実施例１におけるトランザクションデータおよびネッティングトランザクションデータのデータフォーマットの一例を示す図。
【図７】実施例１におけるネッティング処理の一例を示すシーケンス図。
【図８】実施例１におけるネッティングトランザクションの一例を示す図。
【図９】実施例１におけるネッティングトランザクションの概念図。
【図１０】実施例２におけるネッティング処理の一例を示すシーケンス図。
【図１１】実施例２におけるネッティングトランザクションの一例を示す図。
【図１２】実施例２におけるネッティングトランザクションの概念図。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
【００１３】
本実施形態の端末、ブロックチェーンシステムは、非中央集権環境の分散台帳上で、予め定められた順番に従い、各ノードが予め定められた相手からネッティングの計算尻を徴収する事でネッティング決済を実現し、必ずしも中央集権者、もしくは中央集権サーバを必要としない。
【実施例１】
【００１４】
図１は、ブロックチェーンシステムの構成例を示すブロック図である。
【００１５】
ブロックチェーンシステムは、端末１００と、端末２００と、端末３００と、端末４００と、を含む。ブロックチェーンシステムに含まれる各構成は、ネットワーク５００を介して相互に情報を送受信できる。端末１００と、端末２００と、端末３００と、端末４００とは、以下に述べるトランザクション生成処理と、計算尻算出処理と、ネッティングトランザクション生成処理と、を実行するプログラムを有する。
【００１６】
なお、本実施例では４つの端末を含む構成例を示しているが、３以上の任意の数の端末を含んでいればよい。
【００１７】
図２は、端末１００のハードウェアの構成の一例を示すブロック図である。なお、端末２００と、端末３００と、端末４００のハードウェア構成は、端末１００のハードウェア構成と同様であることを想定するため、説明を省略する。
【００１８】
端末１００は、例えば、ＣＰＵ１０１と、補助記憶装置１０２と、メモリ１０３と、表示装置１０５と、入出力インターフェース１０６と、通信インターフェース１０７と、が内部信号線１０４を介して接続されている計算機によって構成される。
【００１９】
ＣＰＵ１０１はプロセッサを含み、メモリ１０３に格納された各種プログラムを実行する。メモリ１０３は、不揮発性の記憶素子であるＲＯＭ及び揮発性の記憶素子であるＲＡＭを含む。ＲＯＭは、不変のプログラム（例えば、ＢＩＯＳ）などを格納する。ＲＡＭは、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような高速かつ揮発性の記憶素子であり、ＣＰＵ１０１が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【００２０】
補助記憶装置１０２は、例えば、磁気記憶装置（ＨＤＤ）、フラッシュメモリ（ＳＳＤ）等の大容量かつ不揮発性の記憶装置であり、ＣＰＵ１０１が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置１０２から読み出されて、メモリ１０３にロードされて、ＣＰＵ１０１によって実行される。
【００２１】
入出力インターフェース１０６は、キーボードやマウスなどが接続され、オペレータからの入力を受けるインターフェースであり、ディスプレイ装置やプリンタなどが接続され、プログラムの実行結果をオペレータが視認可能な形式で出力するインターフェースである。
【００２２】
通信インターフェース１０７は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。また、通信インターフェース１０７は、例えば、ＵＳＢ等のシリアルインターフェースを含んでもよい。
【００２３】
ＣＰＵ１０１が実行するプログラムは、リムーバブルメディア（ＣＤ−ＲＯＭ、フラッシュメモリなど）又はネットワークを介して端末１００に提供され、非一時的記憶媒体である不揮発性の補助記憶装置１０２に格納される。このため、端末１００は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【００２４】
端末１００は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。他の端末についても同様である。
【００２５】
図３は、端末１００と、端末２００と、端末３００と、端末４００と、の間でネッティング処理前に行われるトランザクション送信処理を示すシーケンス図である。
【００２６】
まず、端末１００はトランザクション生成処理(S100)を実行し、トランザクション(D100)を生成し、生成したトランザクションを端末２００に送信する。
【００２７】
次に、端末２００はトランザクション生成処理(S200)を実行し、トランザクション(D200)を生成し、生成したトランザクションを端末３００に送信する。
【００２８】
次に、端末３００はトランザクション生成処理(S300)を実行し、トランザクション(D300)を生成し、生成したトランザクションを端末４００に送信する。
【００２９】
以下、同様に一定期間内に合計８つのトランザクションが生成され、それぞれの端末間で送信される例を図示している。
【００３０】
図４は、図３トランザクション送信処理中に生成された８つのトランザクション一覧とその計算尻を図示している。例えばID：1のトランザクションは端末１００から端末２００への「50」送信指図であったため、端末１００の値を「-50」、端末２００の値を「50」としている。ID：2〜8のトランザクションも同様に、送金額を「N」とすると、送信者が「-N」で受信者が「+N」となっている。また、最終行には、この8つのトランザクションのネッティング結果である計算尻がそれぞれ、端末１００は「40」、端末２００は「-80」、端末３００は「60」、端末４００は「-20」、と記載されている。
【００３１】
注意点として、本決済システムには中央サーバが存在しない前提であるため、図４のような発生したトランザクションの一覧表を持つノードは存在しない。すなわち、各端末は、例えば端末１００は図５のような、自身の関わったトランザクション情報しか知り得ない状況にある点に注意する。
【００３２】
図５は、端末１００が知る範囲のトランザクション情報である。端末１００は図４に示されている８つのトランザクションにおいて、自身が関係するID（1,4,5,6）の情報と自身のネッティング結果の計算尻40のみを保持している。他の端末２００、端末３００、端末４００についても同様に各端末は自身の関わったトランザクション情報と自身の計算尻のみを保持している点に注意する。
【００３３】
図６は、トランザクションデータD100〜D800と、後述するネッティングトランザクションD210、D310、D410のデータフォーマットの一例である。図６が示すとおり、トランザクションデータ、及びネッティングトランザクションデータはトランザクションIDと、送信者と、受信者と、送金金額と、の４つのフィールドを持っており、各フィールドには、それぞれトランザクションID＝1、送信者＝端末１００、受信者＝端末２００、送金金額＝「50」、の値が格納されている。
【００３４】
図７は、ネッティング処理の一例を示すシーケンス図である。本決済システムでは、予め、端末１００、端末２００、端末３００、端末４００の順でネッティングの帳尻合わせを実行する事を全端末が事前に合意し、その順番にしたがって、トランザクション送信処理で発生したトランザクションに対してネッティングと帳尻合わせを実行する。
【００３５】
まず、端末１００、端末２００、端末３００、端末４００は、図３のトランザクション送信処理で発生したトランザクションに対して、計算尻を算出する。すなわち、端末１００は「40」、端末２００は「-80」、端末３００は「60」、端末４００は「-20」、を算出する(S110)。
【００３６】
次に、端末１００は、予め定められた順番に従い、計算尻を相殺するネッティングトランザクションを端末２００に対して生成し(S210)、端末２００に送信する(D210)。このネッティングトランザクション(D210)は、端末１００の計算尻が「+40」であるため、それを相殺するため、トランザクションの各フィールドは、送信者＝端末１００、受信者＝端末２００、送金金額＝「-40」、となる。つまり、端末２００から端末１００へ「40」を支払うトランザクションに相当する。
【００３７】
次に、端末２００は、予め定められた順番に従い、計算尻を相殺するネッティングトランザクションを端末３００に対して生成し(S310)、端末３００に送信する(D310)。このネッティングトランザクション(D310)は、上述のネッティングトランザクション(D210)の支払「40」と端末２００の計算尻「-80」を、さらにネッティングした結果「-40(＝-80+40)」を相殺するため、トランザクションの各フィールドは、送信者＝端末２００、受信者＝端末３００、送金金額＝「40」、となる。
【００３８】
次に、端末３００は、予め定められた順番に従い、計算尻を相殺するネッティングトランザクションを端末４００に対して生成し(S410)、端末４００に送信する(D410)。このネッティングトランザクション(D410)は、上述のネッティングトランザクション(D310)の「40」と端末３００の計算尻「60」を、さらにネッティングした結果「20(＝60-40)」を相殺するため、トランザクションの各フィールドは、送信者＝端末３００、受信者＝端末４００、送金金額＝「-20」、となる。つまり、端末４００から端末３００へ「20」支払うトランザクションに相当する。
【００３９】
以上の処理で、全端末の計算尻に相当する金額がそれぞれ送受信されネッティング処理、及び決済処理を完了する。なお、順番の定め方は、係るブロックチェーンシステムを構築する際に各端末の保有者により人為的に定めてもよいし、ランダムに定めてもよい。いずれにしても、定められた順番をブロックチェーンシステム内の全ての端末が共有することができていればよい。また、共有の仕方については、同一の順序(例えば端末１００、端末２００、端末３００、端末４００、の順)を全ての端末に記憶させてもよいし、自分の端末がネッティングトランザクションを送付する先の端末のみ(例えば端末１００は端末２００のみ、端末２００は端末３００のみ、端末３００は端末４００のみ)を記憶させてもよい。
【００４０】
図８は、図７で示したネッティングトランザクションD210、D310、D410を図示している。すなわち、ネッティングトランザクション(D210)は、端末１００から端末２００へ「-40」の送金、つまり端末２００から端末１００へ「40」の送金である。同様に、ネッティングトランザクション(D310)は、端末２００から端末３００へ「40」の送金である。同様に、ネッティングトランザクション(D410)は、端末３００から端末４００へ「-20」の送金、つまり端末４００から端末３００へ「20」の送金である。
【００４１】
図９は、図７、８で示したネッティングトランザクションの概念図である。図９に示す通り、実施例１の構成によれば、ネッティングトランザクション処理により、非中央集権の状況下、すなわち各端末のネッティング値(計算尻)を把握している中央サーバが存在しない状況下においても、各端末間のネッティング処理が可能となる。
【実施例２】
【００４２】
実施例１では、非中央集権状況でのネッティングを含む決済処理の方法を例示した。しかし、実施例１の方法では端末１００の計算尻が「40」である事が端末２００に漏えいする(ネッティングトランザクションD210)。また、同様に端末４００の計算尻が「-20」である事が端末３００に漏えいする(ネッティングトランザクションD410)。
【００４３】
そこで、本実施例では、ネッティング処理のスタート地点である端末１００がネッティングトランザクションの金額に乱数を加え、その乱数がネッティングトランザクションを伝播する事で端末１００と端末４００の計算尻を秘匿する方法を例示する。なお、システム構成、トランザクション生成処理、トランザクションデータD100〜800は実施例１と同様のものとする。つまり、図１〜６までは実施例１と同様である。本実施例特有の構成として、端末１００は以下に述べる乱数を生成するプログラムを有する。もちろん、係るプログラムを有するのは端末１００のみに限られない。すなわち、係るプログラムは端末１００以外のある端末が有していてもよいし、ブロックチェーンシステムに含まれる全ての端末が有していてもよい。
【００４４】
図１０は、実施例２におけるネッティング処理の一例を示すシーケンス図である。本ブロックチェーンシステムでは、予め、端末１００、端末２００、端末３００、端末４００の順でネッティングの帳尻合わせを実行する事を全端末が事前に合意し、その順番にしたがって、トランザクション送信処理で発生したトランザクションに対してネッティングと帳尻合わせを実行する。なお、順番の定め方は、実施例１と同様、係るブロックチェーンシステムを構築する際に各端末の保有者により人為的に定めてもよいし、ランダムに定めてもよい。いずれにしても、定められた順番をブロックチェーンシステム内の全ての端末が共有することができていればよい。また、共有の仕方については、同一の順序(例えば端末１００、端末２００、端末３００、端末４００、端末１００、の順)を全ての端末に記憶させてもよいし、自分の端末がネッティングトランザクションを送付する先の端末のみ(例えば端末１００は端末２００のみ、端末２００は端末３００のみ、端末３００は端末４００のみ、端末４００は端末１００のみ)を記憶させてもよい。
【００４５】
まず、端末１００、端末２００、端末３００、端末４００は、実施例１と同様に、図３のトランザクション送信処理で発生したトランザクションに対して、計算尻を計算する。すなわち、端末１００は「40」、端末２００は「-80」、端末３００は「60」、端末４００は「-20」、を算出する(S110)。
【００４６】
次に、端末１００はマスク用の乱数rを生成する(S220)。なお、生成された乱数値は整数値とし、公知の乱数生成の方法を用いてもよい。
【００４７】
次に、端末１００は、予め定められた順番に従い、計算尻を相殺する値に、S220で生成した乱数rを加算した値を送金額として、ネッティングトランザクションを端末２００に対して生成し(S320)、端末２００に送信する(D320)。
【００４８】
次に、端末２００は、予め定められた順番に従い、計算尻を相殺するネッティングトランザクションを端末３００に対して生成し(S420)、端末３００に送信する(D420)。このネッティングトランザクション(D420)は、実施例１と同じ処理である。
【００４９】
次に、端末３００は、予め定められた順番に従い、計算尻を相殺するネッティングトランザクションを端末４００に対して生成し(S520)、端末４００に送信する(D520)。このネッティングトランザクション(D410)は、実施例１と同じ処理である。
【００５０】
次に、端末４００は、予め定められた順番に従い、計算尻を相殺するネッティングトランザクションを端末１００に対して生成し(S620)、端末１００に送信する(D620)。このネッティングトランザクション(D620)の金額はS220で端末１００が生成した乱数rに一致する。
【００５１】
以上の処理で、全端末の計算尻に相当する金額がそれぞれ送受信されネッティング処理、及び決済処理を完了する。
【００５２】
図１１は、図１０で示したネッティングトランザクションD320、D420、D520、D620を図示している。ネッティングトランザクション(D320)は、端末１００から端末２００へ「-40-r」の送金、端末２００から端末３００へ「40-r」の送金、ネッティングトランザクション(D520)は、端末３００から端末４００へ「-20-r」の送金、ネッティングトランザクション(D620)は、端末４００から端末５００へ「-r」の送金である。
【００５３】
図１２は、図１０、１１で示したネッティングトランザクションの概念図である。図１２に示す通り、実施例２の構成によれば、ネッティング値(計算尻)に乱数rを加算することにより、非中央集権の状況下、各端末のネッティング値を他の端末に開示することなくネッティング処理を実行することが可能となる。
【符号の説明】
【００５４】
１００：端末  １０１：ＣＰＵ  １０２：補助記憶装置１０３：メモリ  １０４：内部信号線  １０５：表示装置  １０６：入出力インターフェース  １０７：通信装置
【図１】
2019091129.tif 000003
【図２】
2019091129.tif 000004
【図３】
2019091129.tif 000005
【図４】
2019091129.tif 000006
【図５】
2019091129.tif 000007
【図６】
2019091129.tif 000008
【図７】
2019091129.tif 000009
【図８】
2019091129.tif 000010
【図９】
2019091129.tif 000011
【図１０】
2019091129.tif 000012
【図１１】
2019091129.tif 000013
【図１２】
2019091129.tif 000014