JP6274680B1 - 取引記録システムおよびプログラム - Google Patents

取引記録システムおよびプログラム Download PDF

Info

Publication number
JP6274680B1
JP6274680B1 JP2016204628A JP2016204628A JP6274680B1 JP 6274680 B1 JP6274680 B1 JP 6274680B1 JP 2016204628 A JP2016204628 A JP 2016204628A JP 2016204628 A JP2016204628 A JP 2016204628A JP 6274680 B1 JP6274680 B1 JP 6274680B1
Authority
JP
Japan
Prior art keywords
node
network
user
user node
transaction data
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
JP2016204628A
Other languages
English (en)
Other versions
JP2018067108A (ja
Inventor
俊祐 鈴木
俊祐 鈴木
卓也 大島
卓也 大島
Original Assignee
株式会社大和総研ビジネス・イノベーション
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 株式会社大和総研ビジネス・イノベーション filed Critical 株式会社大和総研ビジネス・イノベーション
Priority to JP2016204628A priority Critical patent/JP6274680B1/ja
Application granted granted Critical
Publication of JP6274680B1 publication Critical patent/JP6274680B1/ja
Publication of JP2018067108A publication Critical patent/JP2018067108A/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)
  • Computer And Data Communications (AREA)

Abstract

【課題】各ノードの保有データ量を少なくすることができ、取引履歴の肥大化によるノードの容量逼迫の問題を解消または軽減することができる取引記録システムを提供する。【解決手段】階層化したネットワーク20,30と、複数のノード40,50とにより取引記録システム10を構成し、最下層のネットワーク30にはユーザノード40を配置し、上位のネットワーク20には振分ノード50を配置した。ユーザノード40は、自ネットワーク30内での取引データを、自ネットワーク30内の他のノードと共有記憶し、複数のネットワーク30間に跨る取引データは、振分ノード50に送信し、かつ、自ネットワーク30内の他のノードと共有記憶する。振分ノード50は、取引データを取引相手のユーザノード40までリレー送信し、かつ、自分を経由した取引データを共有記憶する。【選択図】図1

Description

本発明は、ユーザ間の取引データを記録する複数のコンピュータにより構成された取引記録システムおよびその構成要素であるノードに搭載されるプログラムに係り、例えば、金銭、ポイント、有価証券、債権債務、資産、労働力、コンテンツ等のような価値についての送金、決済、貯蓄、分配、付与、交換、移動、消費、貸借、売買、権利行使、義務履行等や、契約、コミュニケーション、IoT(インターネット・オヴ・スィングズ)等の各種データの送受信などに利用できる。
近年、ビットコインに代表される取引データの記録技術として、ブロックチェーンと呼ばれる技術が用いられるようになってきた。このブロックチェーンは、非中央集権的な取引記録技術であり、分散型台帳とも呼ばれている。通常、取引には第三者機関(政府や金融機関)による「信頼できる記録」が必要となる。これまでの技術では「信頼できる記録」を非中央集権的に行うことは不可能と考えられてきたが、ブロックチェーンはそれを可能とする。
従来のブロックチェーンは、1つのP2P(ピア・ツー・ピア)ネットワークに全てのノード(参加者)が参加しており、ネットワーク内の全取引記録を各ノードが保有している。
本発明に関連するP2Pネットワーク技術としては、例えば、ピア・グループ内で1または複数のピアが1つまたは複数の他のピアとメッセージを通信するP2P通信システム内のピアコンピュータにおいて、スケーラブルなピア・グループを使用して通信を最適化する技術が知られている(特許文献1参照)。また、P2P方式のネットワークにおいてセッションへの参加ノード数に上限がある場合であっても、当該上限を超えた数のノードで情報共有するための技術が知られている(特許文献2参照)。さらに、互いにP2P通信を行う複数のピアによって構成されたネットワークシステムにおいて、複数のピアは、属性情報に基づく関連性を有するピア同士でピア・グループを形成するとともに、複数のピアの中には、自己が形成するピア・グループ以外の1のピアが送信する接続要求を受信し、当該ピア・グループに属する接続要求の宛先である他のピアに、通信要求を中継する中継ピアが複数含まれているという技術が知られている(特許文献3参照)。
特開2014−78250号公報 特開2012−88960号公報 特開2011−55282号公報
しかしながら、前述した通り、従来技術では、同一のP2Pネットワーク内の全取引記録を各ノードが保有しているため、各ノードの容量が逼迫してしまうことが想定される。すなわち、ノードの数が多ければ多いほど取引は多くなり、取引履歴の容量は肥大化するため、大規模サービスへのブロックチェーン活用を検討する際には、この課題を解決することが求められる。
なお、参考情報であるが、ビットコインおいては、参加ユーザは約800万ユーザであり(2016年4月現在)、各ノードが60GB(ギガバイト)の取引履歴を保持しており、今もそのサイズは増加を続けている。
本発明の目的は、各ノードの保有データ量を少なくすることができ、取引履歴の肥大化によるノードの容量逼迫の問題を解消または軽減することができる取引記録システムおよびプログラムを提供するところにある。
本発明は、ユーザ間の取引データを記録する複数のコンピュータにより構成された取引記録システムであって、
階層化された複数のネットワークと、これらの複数のネットワークの各々について少なくとも1つのノードが配置される状態で複数のネットワークに接続された複数のノードとを備え、
複数のノードには、取引の当事者となり得るユーザが操作するユーザノードと、各ユーザノードが前記複数のネットワークのうちのいずれに配置されているか並びに複数のネットワークの上下関係若しくはこれに代わるノードの上下関係を示す配置情報に従って取引データを取引相手のユーザノードに向けて送信する振分ノードとが含まれ、
複数のネットワークのうちの最下層のネットワークには、少なくとも1つのユーザノードが配置され、
複数のネットワークのうちの最下層以外のネットワークには、少なくとも1つの振分ノードが配置され、
ユーザノードは、
自分が配置されている自ネットワークに取引相手のユーザノードも配置されている場合の自ネットワーク内での取引データについては、自ネットワークに配置された他のノードおよび自分で共有して記憶し、
取引相手のユーザノードが自ネットワークとは異なるネットワークに配置されている場合の複数のネットワーク間に跨る取引データについては、配置情報で定まる取引相手のユーザノードまでの送信経路上の振分ノードのうち自分に最も近い位置の振分ノードに向けて送信するとともに、自ネットワークに配置された他のノードおよび自分で共有して記憶する構成とされ、
振分ノードは、
ユーザノードまたは他の振分ノードから受信した取引データを、取引相手のユーザノードに向け、または配置情報で定まる取引相手のユーザノードまでの送信経路上の他の振分ノードのうち自分に最も近い位置の他の振分ノードに向けて送信するとともに、自ネットワークを経由した取引データを、自ネットワークに配置された他のノードおよび自分で共有して記憶する構成とされていることを特徴とするものである。
ここで、「取引」には、例えば、金銭、ポイント、有価証券、債権債務、資産、労働力、コンテンツ等のような価値についての送金、決済、貯蓄、分配、付与、交換、移動、消費、貸借、売買、権利行使、義務履行等や、契約、コミュニケーション、IoT等の各種データの送受信などが含まれる。
また、「複数のネットワークの各々について少なくとも1つのノードが配置される状態で」とは、原則として、あるいは通常は、いずれのネットワークにも複数のノードが接続される状態となるが、例外的に、あるいは一時的に、1つのノードしか接続されていない状態のネットワークがあってもよい趣旨である。
さらに、「階層化された複数のネットワーク」を構成する各ネットワークは、いずれもP2Pネットワークであるが、例えばインターネットや通信事業者が提供する各種のサービス網等の公衆ネットワークを使って形成された仮想的なネットワーク(インターネット上にVPN(バーチャル・プライベート・ネットワーク)を用いて構築されたイントラネットを含む。)でもよく、例えばLAN(ローカル・エリア・ネットワーク)等の内部ネットワークのように物理的に閉じたネットワークでもよく、それらの混在型でもよい。
そして、「ユーザノード」における「自ネットワークに配置された他のノードおよび自分で共有して記憶し」の「他のノード」には、ユーザノードでもなく振分ノードでもないノード(以下、メモリノードという。)が含まれていてもよい。
また、「振分ノード」における「自ネットワークに配置された他のノードおよび自分で共有して記憶する」の「他のノード」には、メモリノードが含まれていてもよく、さらに、ユーザノードが含まれていてもよい。ユーザノードが含まれている場合は、後述する混在型である。
さらに、「振分ノード」を構成するコンピュータは、「ユーザノード」を兼任してもよい。
このような本発明の取引記録システムにおいては、各ノードは、自分が配置されている自ネットワーク内(自ネットワークに接続配置されている各ノードからなるグループ内)のノードが関与した取引データのみを保有することになる。なお、ここでの保有は、自ネットワークに接続配置された各ノードで共有して記憶することである。
すなわち、ユーザノードについては、自ネットワーク内での取引データ(振分データが介在しなかった場合の取引データ)と、複数のネットワーク間に跨る取引データのうちの自ネットワーク内のノード(ユーザノードと振分ノードとが同一のネットワークに配置されることのない完全分離型では、ユーザノードとなるが、それらが同一のネットワークに配置されることのある混在型では、振分ノードの場合もある。)が関与した取引データとを保有する。
また、振分ノードは、自ネットワークを経由した取引データを保有する。自ネットワークを経由した取引データには、自分が関与した取引データと、自ネットワーク内の他の振分ノードが関与した取引データとがあり、さらに、混在型では、自ネットワーク内のユーザノードが関与した取引データである場合もある。
従って、各ノードは、自分が配置されている自ネットワーク以外のネットワーク内での取引データ(自ネットワーク以外のネットワーク内で取引が完結した場合の取引データ)や、自ネットワークを経由していない取引データ(自ネットワーク以外のネットワークのみを経由した取引データ)については、保有しない状態となる。
このため、各ノードが保有するデータ量は少なくなる。また、同一のネットワークに配置された各ノードにより形成されたグループでは、いずれのグループにおいても、そのグループの全参加者(全ノード)が取引履歴を保有(共有状態で記憶)するため、既存のブロックチェーン技術が持つ「改ざんしにくい」という特性の損失は少ない。そして、各ノードの保有データ量が少なくなるため、各ノードの容量逼迫の問題が解消または軽減され、これらにより前記目的が達成される。
<ユーザノード、振分ノードの詳細構成>
また、前述した取引記録システムにおいて、
ユーザノードは、
自分が有する配置情報記憶手段に記憶されている配置情報を用いるか、配置情報を記憶する配置情報記憶手段を有する他のノード若しくは他のシステムへの問合せによるか、配置情報取得アルゴリズムにより求めた配置情報によるか、または取引相手のユーザノードに該当するか否かについての自ネットワーク内の他のノードへの問合せにより、自ネットワークに、取引相手のユーザノードが配置されているか否かを判断する処理を実行する相手位置判断手段と、
この相手位置判断手段により取引相手のユーザノードが自ネットワークに配置されていないと判断した場合に、配置情報に従って決定した取引相手のユーザノードまでの送信経路上の振分ノードのうち自分に最も近い位置の振分ノードに向け、取引データを送信する処理を実行する引渡手段と、
取引相手のユーザノードとして、振分ノードから取引データを受信する処理を実行する受取手段と、
相手位置判断手段により取引相手のユーザノードが自ネットワークに配置されていると判断した場合、または受取手段により取引データを受信した場合に、取引データを含むブロックを生成し、生成したブロックを自ネットワーク内で承認して自ネットワークに配置された他のノードおよび自分で共有して記憶するためのブロック追加処理を実行するブロック追加手段と、
このブロック追加手段により生成および承認されたブロックを記憶するブロック記憶手段とを含んで構成され、
振分ノードは、
ユーザノードまたは他の振分ノードから取引データを受信した場合に、自分が有する配置情報記憶手段に記憶されている配置情報を用いるか、配置情報を記憶する配置情報記憶手段を有する他のノード若しくは他のシステムへの問合せによるか、配置情報取得アルゴリズムにより求めた配置情報によるか、取引相手のユーザノードを配下に有する振分ノードに該当するか否かについての自ネットワーク内の他のノードへの問合せによるか、または取引相手のユーザノードに該当するか否かについての自ネットワーク内の他のノードへの問合せにより、取引データを振り分けて送信する送信先のノードを決定し、取引相手のユーザノードに向け、または取引相手のユーザノードまでの送信経路上の他の振分ノードのうち自分に最も近い位置の他の振分ノードに向け、取引データを送信する処理を実行する振分手段と、
ユーザノードまたは他の振分ノードから受信した取引データを含むブロックを生成し、生成したブロックを自ネットワーク内で承認して自ネットワークに配置された他のノードおよび自分で共有して記憶するためのブロック追加処理を実行するブロック追加手段と、
このブロック追加手段により生成および承認された前記ブロックを記憶するブロック記憶手段とを含んで構成されていることが望ましい。
ここで、「ユーザノード」の「配置情報を記憶する配置情報記憶手段を有する他のノード若しくは他のシステムへの問合せ」における「他のノード」には、自ネットワーク内の他のノードである場合と、直上のネットワークに配置された自分の直上の振分ノードである場合とが含まれる。
このようにユーザノードを、相手位置判断手段、引渡手段、受取手段、ブロック追加手段、およびブロック記憶手段を含む構成とし、かつ、振分ノードを、振分手段、ブロック追加手段、およびブロック記憶手段を含む構成とした場合には、相手位置判断手段により、自ネットワーク内での取引で済ませることができるか否かの判断をし、自ネットワーク内での取引で済ませることができるときには、自ネットワーク内での処理で済ませ、自ネットワーク内での取引で済ませることができないときには、取引相手のユーザノードまでの送信経路上の振分ノードを経由させて取引データの伝達を行うので、データを「改ざんしにくい」というブロックチェーンの本来的な効果を発揮させつつ、各ノードの保有データ量を少なくするという処理を、より確実に実現することが可能となる。
<取引データの送信処理の詳細>
さらに、より具体的には、次のような構成をとることができる。この際、(1)最下層以外のネットワークが1階層であり、かつ、最下層以外のネットワークにユーザノードが配置されることのない完全分離型である場合と、(2)最下層以外のネットワークが1階層であり、かつ、最下層以外のネットワークにユーザノードが配置されることのある混在型である場合と、(3)最下層以外のネットワークが複数階層であり、かつ、最下層以外のネットワークにユーザノードが配置されることのない完全分離型である場合と、(4)最下層以外のネットワークが複数階層であり、かつ、最下層以外のネットワークにユーザノードが配置されることのある混在型である場合とに分けて、送信処理を記載している。
このうち、(1)、(2)の場合は、最下層以外のネットワークが1階層であるが、最初から1階層しかないことを前提としてアルゴリズムを記載している。一方、(3)、(4)の場合は、最下層以外のネットワークが複数階層であるが、このアルゴリズムは、最下層以外のネットワークが、たまたま1階層になった場合でも使用することができる。従って、(3)、(4)の場合は、(1)、(2)の場合に比べ、複雑なアルゴリズムになっているが、(3)、(4)の場合において、最下層以外のネットワークが、たまたま1階層になった場合を考えると、(1)、(2)の場合と同じ送信処理を行うことになる。よって、(1)、(2)の場合のアルゴリズムは、特定状況下の(3)、(4)の場合のアルゴリズムと等価である。
すなわち、より具体的には、前述したように、ユーザノードを、相手位置判断手段、引渡手段、受取手段、ブロック追加手段、およびブロック記憶手段を含む構成とし、かつ、振分ノードを、振分手段、ブロック追加手段、およびブロック記憶手段を含む構成とした場合において、
ユーザノードの引渡手段は、
(1)最下層以外のネットワークが1階層であり、かつ、最下層以外のネットワークにユーザノードが配置されることのない場合には、
ユーザノードの相手位置判断手段により取引相手のユーザノードが自ネットワークに配置されていないと判断したときに、自分の上位のネットワークに配置された自分の上位の振分ノードに向け、取引データを送信する処理を実行し、
(2)最下層以外のネットワークが1階層であり、かつ、最下層以外のネットワークにユーザノードが配置されることのある場合には、
ユーザノードの相手位置判断手段により取引相手のユーザノードが自ネットワークに配置されていないと判断したときに、自分の上位のネットワークに配置された自分の上位の振分ノードに向け、または自ネットワークに配置された振分ノードのうちの取引相手のユーザノードを配下に有する振分ノードに向け、取引データを送信する処理を実行し、
(3)最下層以外のネットワークが複数階層であり、かつ、最下層以外のネットワークにユーザノードが配置されることのない場合には、
ユーザノードの相手位置判断手段により取引相手のユーザノードが自ネットワークに配置されていないと判断したときに、自分の直上のネットワークに配置された自分の直上の振分ノードに向け、取引データを送信する処理を実行し、
(4)最下層以外のネットワークが複数階層であり、かつ、最下層以外のネットワークにユーザノードが配置されることのある場合には、
ユーザノードの相手位置判断手段により取引相手のユーザノードが自ネットワークに配置されていないと判断したときに、自分の直上のネットワークに配置された自分の直上の振分ノードに向け、または自ネットワークに配置された振分ノードのうちの取引相手のユーザノードを配下に有する振分ノードに向け、取引データを送信する処理を実行する構成とされ、
振分ノードの振分手段は、
(1)最下層以外のネットワークが1階層であり、かつ、最下層以外のネットワークにユーザノードが配置されることのない場合には、
ユーザノードから取引データを受信した際に、自ネットワークに配置された他の振替ノードのうちの取引相手のユーザノードを配下に有する他の振替ノードに向け、取引データを送信するネットワーク内送信処理を実行するとともに、
自ネットワークに配置された他の振替ノードから取引データを受信した際に、下位のネットワークに配置された取引相手のユーザノードに向け、取引データを送信する下り方向送信処理を実行する構成とされ、
(2)最下層以外のネットワークが1階層であり、かつ、最下層以外のネットワークにユーザノードが配置されることのある場合には、
下位のネットワークに配置された自分の下位のユーザノードから取引データを受信した際に、取引相手のユーザノードが自ネットワークに配置されていないときには、自ネットワークに配置された他の振替ノードのうちの取引相手のユーザノードを配下に有する振替ノードに向け、取引データを送信するネットワーク内送信処理を実行するとともに、
自ネットワークに配置された他の振替ノードまたは自ネットワークに配置されたユーザノードから取引データを受信した際に、下位のネットワークに配置された取引相手のユーザノードに向け、取引データを送信する下り方向送信処理を実行する構成とされ、
(3)最下層以外のネットワークが複数階層であり、かつ、最下層以外のネットワークにユーザノードが配置されることのない場合には、
ユーザノード、自ネットワークに配置された他の振分ノード、または直上若しくは直下のネットワークに配置された他の振分ノードから取引データを受信した際に、
自分の下位の全てのネットワークからなる配下のネットワークに取引相手のユーザノードが配置されているときには、直下のネットワークに配置された他の振分ノードのうちの取引相手のユーザノードを配下に有する他の振分ノードに向け、または取引相手のユーザノードに向け、取引データを送信する下り方向送信処理を実行し、
自ネットワークに配置された他の振替ノードの中に取引相手のユーザノードを配下に有する他の振替ノードがあるときには、当該他の振替ノードに向け、取引データを送信するネットワーク内送信処理を実行し、
配下のネットワークに取引相手のユーザノードが配置されておらず、かつ、自ネットワークに配置された他の振替ノードの中に取引相手のユーザノードを配下に有する他の振替ノードがないときには、直上のネットワークに配置された自分の直上の他の振分ノードに向け、取引データを送信する上り方向送信処理を実行する構成とされ、
(4)最下層以外のネットワークが複数階層であり、かつ、最下層以外のネットワークにユーザノードが配置されることのある場合には、
直下のネットワークに配置された直下のユーザノード、自ネットワークに配置されたユーザノード、自ネットワークに配置された他の振分ノード、または直上若しくは直下のネットワークに配置された他の振分ノードから取引データを受信した際に、取引相手のユーザノードが自ネットワークに配置されていないときであり、かつ、
配下のネットワークに取引相手のユーザノードが配置されているときには、直下のネットワークに配置された他の振分ノードのうちの取引相手のユーザノードを配下に有する他の振分ノードに向け、または取引相手のユーザノードに向け、取引データを送信する下り方向送信処理を実行し、
自ネットワークに配置された他の振替ノードの中に取引相手のユーザノードを配下に有する他の振替ノードがあるときには、当該他の振替ノードに向け、取引データを送信するネットワーク内送信処理を実行し、
配下のネットワークに取引相手のユーザノードが配置されておらず、かつ、自ネットワークに配置された他の振替ノードの中に取引相手のユーザノードを配下のネットワークに有する他の振替ノードがないときには、直上のネットワークに配置された自分の直上の他の振分ノードに向け、取引データを送信する上り方向送信処理を実行する構成とすることができる。
<ブロックへの取引データの格納態様>
また、以上に述べた取引記録システムにおいて、
ユーザノードのブロック追加手段は、
ユーザノードのブロック記憶手段に記憶させるブロックを生成する際には、同一のネットワークに配置されたユーザノード間の取引については、取引の当事者の双方のユーザノードの識別情報を含む取引データを用い、
異なるネットワークに配置されたユーザノード間の取引については、取引の当事者の一方のユーザノードの識別情報、および取引データの送受信に関与した振分ノードの識別情報を含む取引データを用いて、ブロックを生成するための処理を実行する構成とされ、
振分ノードのブロック追加手段は、
振分ノードのブロック記憶手段に記憶させるブロックを生成する際には、取引データの送受信に関与した自分の識別情報、および送受信の相手の他の振分ノード若しくは取引相手のユーザノードの識別情報を用いて、ブロックを生成するための処理を実行する構成とされていることが望ましい。
このようにブロックに取引データを格納する際に、原要求の取引データ(アクションを起こしたユーザノードの識別情報を送信元情報として含み、かつ、取引相手のユーザノードの識別情報を送信先情報として含む。)のままではなく、振分ノードの識別情報を使った置換処理を行う構成とした場合には、それぞれのノードに記録される取引データの中に、送信元情報や送信先情報として、自ネットワーク内のノードの識別情報か、または自分の直上の振分ノードの識別情報が含まれる状態となる。従って、取引データの中に、自ネットワーク内のノードの識別情報が2つ含まれていれば、自ネットワーク内で完結させた取引ということになり、自分の直上の振分ノードの識別情報が含まれていれば、自ネットワークの外部への引き渡しがあった取引、または自ネットワークの外部からの受け取りがあった取引ということになる。このため、アクションを起こしたユーザノードから取引相手のユーザノードへ金銭やポイント等の価値を送信する場合に、形式上、ノードからノードへと次々に金銭やポイント等の価値をリレーしていった形態をとることが可能となる。
なお、置換されたノードの識別情報を含む取引データを含むブロックについては、そのブロックの中に、置換されていない原要求の取引データが含まれていてもよい。
<ユーザノードの配置変更(異なるネットワークへの移動)>
さらに、以上に述べた取引記録システムにおいて、
ユーザノードは、
現在配置されているネットワークから異なるネットワークへの配置変更をする処理を実行する配置変更手段を備え、
振分ノードは、
ユーザノードの配置変更を支援する処理を実行する配置変更支援手段を備え、
ユーザノードの配置変更手段または振分ノードの配置変更支援手段は、配置変更に伴って、全てのノード若しくは一部のノードまたは他のシステムが有する配置情報記憶手段に記憶されている配置情報について、ユーザノードが移動元のネットワークに配置されている状態から移動先のネットワークに配置されている状態に変更する配置情報更新処理を実行する構成とされ、
ユーザノードの配置変更手段は、
ユーザによる移動先のネットワークの入力を受け付け、自分が現在配置されている移動元のネットワークの直上の振分ノードから移動先のネットワークの直上の振分ノードまでの送信経路上の任意の振分ノードまたは全ての振分ノードのうちの任意の振分ノードを配置変更用ノードとして選択し、自分が有する残高記憶手段に記憶されている当該ユーザの残高、当該ユーザのユーザノードの識別情報を用いて他のシステムに設けられた残高記憶手段から取得した当該ユーザの残高、自分が記憶している取引データに含まれる当該ユーザの残高、または自分が記憶している取引データを用いて算出される当該ユーザの残高、並びに、送信先となる配置変更用ノードの識別情報を含む配置変更アクション用の取引データを生成し、配置情報記憶手段に記憶されている移動前の状態の配置情報に従って決定した送信経路で、生成した配置変更アクション用の取引データを、配置変更用ノードに向けて送信する処理を実行し、
その後、配置情報更新処理を経て、移動先のネットワークに配置された移動後の状態で、配置変更用ノードから送信されてくる配置変更リターン用の取引データを受信する処理を実行する構成とされ、
振分ノードの配置変更支援手段は、
配置変更アクション用の取引データを受信した場合に、受信した配置変更アクション用の取引データに含まれている当該ユーザの残高、および送信先となる配置変更に係るユーザノードの識別情報を含む配置変更リターン用の取引データを生成し、配置情報更新処理を経て配置情報記憶手段に記憶されている移動後の状態の配置情報に従って決定した送信経路で、生成した配置変更リターン用の取引データを、移動先のネットワークに配置されたユーザノードに向けて送信する処理を実行する構成とされていることが望ましい。
このようにユーザノードに配置変更手段を設けるとともに、振分ノードに配置変更支援手段を設けた構成とした場合には、ユーザノードの識別情報を変更することなく、ユーザノードが配置されるネットワークを、異なるネットワークに変更することが可能となる。すなわち、所属ネットワークを移動させるユーザノードについて、新しい識別番号を付与しなくても、配置変更を実現することが可能となる。また、配置変更用ノードを、ユーザノードではなく、振分ノードの中から選択するので、当該ユーザ(配置変更に係るユーザノードを操作するユーザ)以外のユーザの残高が、配置変更に伴って不自然に増減する事態は避けられる。そして、配置変更用ノードを、振分ノードの中から選択するので、通常の取引の処理を利用して配置変更を実現することが可能となる。
<順方向送信処理、および逆進処理を行う場合>
また、以上に述べた取引記録システムにおいて、
ユーザノードは、
自ネットワーク以外のネットワークに配置された取引相手のユーザノードに対して取引データを直接に送信することができる場合には、アクションを起こすユーザノードとして、配置情報で定まる取引相手のユーザノードまでの送信経路上の振分ノードのうち自分に最も近い位置の振分ノードに向けて取引データを送信する順方向送信処理と併せ、取引相手のユーザノードに取引データを直接に送信する直接送信処理を実行し、
取引相手のユーザノードとして、アクションを起こすユーザノードから直接送信処理により送信されてくる取引データを直接に受信した場合には、送信経路上の振分ノードおよびネットワークを逆方向に進むように取引データを送信する逆進処理を実行する構成とされ、
順方向送信処理による取引データと逆進処理による取引データとは、それぞれ送信経路上の中間に位置する予め定められた振分ノードまたはネットワークまで送信されるか、または、取引データに付帯する突合位置情報により指定される送信経路上の振分ノードまたはネットワークまで送信される構成としてもよい。
ここで、「自ネットワーク以外のネットワークに配置された取引相手のユーザノードに対して取引データを直接に送信することができる場合」とあるのは、取引の当事者ユーザの操作するユーザノード同士が、異なるネットワークに接続されていてもP2P通信を行うことができないわけではないからであり、例えば、本発明におけるネットワークは、前述したように物理的に同じネットワークに形成された仮想のネットワークの場合もあるので、そのような場合には直接送信が可能な場合がある。
このように順方向送信処理、および逆進処理を行う構成とした場合には、取引相手のユーザノードまでの送信経路上の各ネットワークに配置された各ノードでのブロックの生成、承認、保存(共有状態での記憶)のための処理を、全体として早期に完了させることが可能となる。特に、送信経路上の振分ノードやネットワークの数が多いときには、その効果が顕著となる。
<プログラムの発明>
そして、本発明のプログラムは、以上に述べた取引記録システムを構成するユーザノードとして、コンピュータを機能させるためのものである。
また、本発明のプログラムは、以上に述べた取引記録システムを構成する振分ノードとして、コンピュータを機能させるためのものである。
なお、以上に述べたプログラムまたはその一部は、例えば、光磁気ディスク(MO)、コンパクトディスク(CD)、デジタル・バーサタイル・ディスク(DVD)、フレキシブルディスク(FD)、磁気テープ、読出し専用メモリ(ROM)、電気的消去および書換可能な読出し専用メモリ(EEPROM)、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、ハードディスク、ソリッドステートドライブ(SSD)、フラッシュディスク等の記録媒体に記録して保存や流通等させることが可能であるとともに、例えば、LAN、MAN、WAN、インターネット、イントラネット、エクストラネット等の有線ネットワーク、あるいは無線通信ネットワーク、さらにはこれらの組合せ等の伝送媒体を用いて伝送することが可能であり、また、搬送波に載せて搬送することも可能である。さらに、上記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。
以上に述べたように本発明によれば、各ノードは、自ネットワーク内のノードが関与した取引データのみを保有することになり、自ネットワーク以外のネットワーク内での取引データや、自ネットワークを経由していない取引データについては、保有しない状態となるので、各ノードの保有データ量を少なくすることができ、取引履歴の肥大化によるノードの容量逼迫の問題を解消または軽減することができるという効果がある。
本発明の第1実施形態の取引記録システムの全体構成図。 第1実施形態のユーザノードの構成図。 第1実施形態の振分ノードの構成図。 第1実施形態のメモリノードの構成図。 第1実施形態の配置情報記憶手段の構成図。 第1実施形態において、振分層が1階層であり、かつ、振分層にユーザノードが配置されていない完全分離型の場合の取引データの送信経路のパターンを示す説明図。 第1実施形態において、振分層が1階層であり、かつ、振分層にもユーザノードが配置されている混在型の場合の取引データの送信経路のパターンを示す説明図。 第1実施形態のユーザノードによる処理の流れを示すフローチャートの図。 第1実施形態の振分ノードによる処理の流れを示すフローチャートの図。 第1実施形態の送金処理の具体例を示す第1の図。 第1実施形態の送金処理の具体例を示す第2の図。 第1実施形態の送金処理の具体例を示す第3の図。 第1実施形態の送金処理の具体例を示す第4の図。 第1実施形態の送金処理の具体例を示す第5の図。 第1実施形態の配置変更処理の流れを示すフローチャートの図。 本発明の第2実施形態の取引記録システムの全体構成図。 第2実施形態の配置情報記憶手段の構成図。 第2実施形態において、振分層が複数階層であり、かつ、振分層にユーザノードが配置されていない完全分離型の場合の取引データの送信経路のパターンを示す説明図。 第2実施形態において、振分層が複数階層であり、かつ、振分層にもユーザノードが配置されている混在型の場合の取引データの送信経路のパターンを示す説明図。 第2実施形態の振分ノードによる処理の流れを示すフローチャートの図。 第2実施形態のユーザノードによる取引データの引渡時および受取時の処理の内容を示す説明図。 第2実施形態の振分ノードによる取引データの受信時および送信時の処理の内容を示す説明図。 第2実施形態の送金処理の具体例を示す第1の図。 第2実施形態の送金処理の具体例を示す第2の図。 第2実施形態の送金処理の具体例を示す第3の図。 第2実施形態の送金処理の具体例を示す第4の図。 第2実施形態の送金処理の具体例を示す第5の図。 第2実施形態の送金処理の具体例を示す第6の図。 第2実施形態の送金処理の具体例を示す第7の図。 本発明の変形の形態を示す説明図。
以下に本発明の各実施形態について図面を参照して説明する。
[第1実施形態]
図1には、第1実施形態の取引記録システム10の全体構成が示されている。図2〜図5には、第1実施形態のユーザノード40、振分ノード50、メモリノード60、配置情報記憶手段43,53の構成が示されている。また、図6、図7には、第1実施形態における完全分離型、混在型の場合の取引データの送信経路のパターンが示されている。さらに、図8、図9には、第1実施形態のユーザノード40、振分ノード50による処理の流れがフローチャートで示されている。また、図10〜図14には、第1実施形態の送金処理の具体例が示されている。さらに、図15には、配置変更処理の流れがフローチャートで示されている。
<取引記録システム10の全体構成>
図1において、取引記録システム10は、階層化された複数のネットワーク20,30と、これらのネットワーク20,30に接続された複数のノード40,50,60とを備えて構成されている。
ここで、各ネットワーク20,30は、いずれもP2Pネットワークであり、例えばインターネットや通信事業者が提供する各種のサービス網等の公衆ネットワークを使って形成された仮想的なネットワーク(インターネット上にVPN(バーチャル・プライベート・ネットワーク)を用いて構築されたイントラネットを含む。)でもよく、例えばLAN等の内部ネットワークのように物理的に閉じたネットワークでもよく、それらの混在型でもよい。
各ノードは、それぞれコンピュータにより構成され、取引記録システム10を構成する複数のノードには、取引の当事者となり得るユーザが操作するユーザノード40と、各ユーザノード40の配置情報に従って送信経路を決定して取引データを取引相手のユーザノード40に向けて送信する振分ノード50と、ユーザノード40および振分ノード50のいずれにも該当しないメモリノード60とが含まれている。
最上層(上位)のネットワーク20は、複数の振分ノード50が配置された振分層のネットワークである。このネットワーク20には、複数の振分ノード50の他に、1つまたは複数のユーザノード40や、1つまたは複数のメモリノード60が配置されていてもよい。
振分層のネットワーク20にユーザノード40が1つも配置されていない場合は、ユーザノード40と振分ノード50とが分離された完全分離型である。一方、ネットワーク20に少なくとも1つのユーザノード40が配置されている場合は、振分層においてユーザノード40と振分ノード50とが混在する混在型である。従って、図1において、ネットワーク20に、2点鎖線で囲まれているユーザノード40が配置されている場合は、混在型となり、配置されていない場合には、完全分離型となる。また、ネットワーク20にはメモリノード60が1つも配置されていなくてもよい。
最下層(下位)のネットワーク30については、本第1実施形態では、一例として、3つのネットワーク30A,30B,30Cがあるが、最下層(下位)のネットワーク30の個数は任意である。これらのネットワーク30A,30B,30Cの各々は、少なくとも1つ(通常は、複数である。)のユーザノード40が配置されたアクション層のネットワークである。これらのネットワーク30A,30B,30Cの各々には、少なくとも1つのユーザノード40の他に、1つまたは複数のメモリノード60が配置されていてもよい。また、ネットワーク30A,30B,30Cの各々には、メモリノード60が1つも配置されていなくてもよい。
また、アクション層のネットワーク30A,30B,30Cは、それぞれが上位(直上)の振分ノード50を備えている。図1の例では、ネットワーク30Aおよびそこに配置された各ノード(ユーザノード40、メモリノード60)の上位(直上)の振分ノード50は、振分ノード50Aであり、これを逆に言えば、振分ノード50Aの配下に、ネットワーク30Aおよびそこに配置された各ノード(ユーザノード40、メモリノード60)があることになる。同様に、ネットワーク30Bおよびそこに配置された各ノード(ユーザノード40、メモリノード60)の上位(直上)の振分ノード50は、振分ノード50Bであり、これを逆に言えば、振分ノード50Bの配下に、ネットワーク30Bおよびそこに配置された各ノード(ユーザノード40、メモリノード60)があることになる。また、ネットワーク30Cおよびそこに配置された各ノード(ユーザノード40、メモリノード60)の上位(直上)の振分ノード50は、振分ノード50Cであり、これを逆に言えば、振分ノード50Cの配下に、ネットワーク30Cおよびそこに配置された各ノード(ユーザノード40、メモリノード60)があることになる。
<ユーザノード40の構成>
ユーザノード40(例えば40A)は、自分が配置されている自ネットワーク20,30(例えば30A)に取引相手のユーザノード40(例えば40D)も配置されている場合の自ネットワーク20,30(例えば30A)内での取引データについては、自ネットワーク20,30(例えば30A)に配置された他のノードおよび自分で共有して記憶するようになっている。ここで、他のノードとは、自ネットワーク30の場合には、他のユーザノード40や、メモリノード60であり、自ネットワーク20の場合には、振分ノード50や、メモリノード60である。
一方、ユーザノード40(例えば40A)は、取引相手のユーザノード40(例えば40B)が自ネットワーク20,30(例えば30A)とは異なるネットワーク20,30(例えば30B)に配置されている場合の複数のネットワーク間に跨る取引データについては、配置情報で定まる取引相手のユーザノード40(例えば40B)までの送信経路上の振分ノード50のうち自分に最も近い位置の振分ノード50(例えば50A)に向けて送信するとともに、自ネットワーク20,30(例えば30A)に配置された他のノードおよび自分で共有して記憶するようになっている。ここで、他のノードとは、自ネットワーク30の場合には、他のユーザノード40や、メモリノード60であり、自ネットワーク20の場合には、振分ノード50や、メモリノード60である。
具体的には、ユーザノード40は、図2に示すように、取引データの記録に必要な各種の処理を実行する処理手段41と、この処理手段41による処理に必要な各種のデータおよび処理で得られた各種のデータを記憶するデータベース42とを備えている。
処理手段41は、相手位置判断手段41Aと、引渡手段41Bと、受取手段41Cと、ブロック追加手段41Dと、配置変更手段41Eとを含んで構成されている。また、処理手段41は、図示されないデータベース・マネジメント・システム(DBMS)の機能を備えている。
データベース42は、配置情報記憶手段43(図5参照)と、ブロック記憶手段44とを含んで構成されている。また、データベース42は、例えば自分が保有する金銭やポイント等の価値の残高を記憶する残高記憶手段(不図示)を有していてもよい。
相手位置判断手段41Aは、配置情報記憶手段43(図5参照)に記憶されている配置情報を用いて、自ネットワーク20,30に、取引相手のユーザノード40が配置されているか否かを判断する処理を実行するものである。より具体的には、自分(アクションを起こしたユーザノード40)の識別情報を用いて、自分が配置されているネットワーク20,30の識別情報または自分の上位(直上)の振分ノード50の識別情報を特定し、取引相手のユーザノード40の識別情報を用いて、取引相手のユーザノード40が配置されているネットワーク20,30の識別情報または取引相手のユーザノード40の上位(直上)の振分ノード50の識別情報を特定し、それらが一致しているか否かを判断する。
ここで、ノードの識別情報は、例えば、ユーザID、IPアドレス、コンピュータ名、MACアドレス、あるいはこれらの組合せ等である。なお、振分ノード50やメモリノード60は、ユーザが操作するコンピュータではないが、振分ノード50やメモリノード60の識別情報については、例えば、疑似的に付したユーザIDを用いてもよい。また、ユーザノード40の識別情報と、振分ノード50の識別情報とは、同じ体系の識別情報としてもよく、異なる体系の識別情報としてもよく、同様に、メモリノード60の識別情報も、他の種類のノードと同じ体系の識別情報としてもよく、異なる体系の識別情報としてもよい。
なお、相手位置判断手段41Aは、同様な配置情報記憶手段を有する他のノード(自ネットワーク20,30内の他のノードまたは自分の上位(直上)の振分ノード50)への問合せにより上記の判断結果を取得してもよく、同様な配置情報記憶手段を有する他のシステム(取引記録システム10の外部のシステム)への通信回線を介した問合せにより上記の判断結果を取得してもよく、配置情報取得アルゴリズムによる演算処理で上記の判断結果を求めてもよく、自ネットワーク20,30がLAN等のように参加ノード数の比較的少ない閉じたネットワークである場合には、取引相手のユーザノード40に該当するか否かについての自ネットワーク20,30内の他の全てのノードへの問合せにより上記の判断結果を取得してもよい。なお、配置情報取得アルゴリズムによる演算処理とは、例えば、ノードの識別情報の一部(例えば下4桁の数字や記号等)を抽出し、その抽出部分により示される配置情報で上記の判断結果を得る処理等である。
引渡手段41Bは、相手位置判断手段41Aにより取引相手のユーザノード40が自ネットワーク20,30に配置されていないと判断した場合に、配置情報記憶手段43(図5参照)に記憶されている配置情報に従って決定した取引相手のユーザノード40までの送信経路上の振分ノード50のうち自分に最も近い位置の振分ノード50に向け、取引データを送信する処理を実行するものである。この際、引渡手段41Bは、原要求の取引データを送信する。また、この送信処理は、後述する図21(第2実施形態用の説明図であるが、第1実施形態でも同様である。)のD1,D3の送信処理である。なお、D2の送信処理は、必須ではない。D2の場合は、自分がブロック生成以降の処理を主導するので、自ネットワーク20,30内の他のノードはその主導役のノードにはならないため、必ずしも自ネットワーク20,30内の他のノード(ここでは取引相手のユーザノード40)に向けて取引データを送信する必要がないからである。
より具体的には、引渡手段41Bは、振分層のネットワーク20にユーザノード40が配置されることのない完全分離型の場合には、相手位置判断手段41Aにより取引相手のユーザノード40が自ネットワーク30に配置されていないと判断したときに、自分の上位(直上)のネットワーク20に配置された自分の上位の振分ノード50に向け、取引データを送信する処理を実行する。これは、後述する図21のD1の送信処理であり、例えば、図1において、ユーザノード40Aが、上位(直上)の振分ノード50Aに向けて送信する処理である。
また、振分層のネットワーク20にユーザノード40が配置されることのある混在型の場合には、自分(アクションを起こすユーザノード40)がアクション層のネットワーク30に配置されている通常ケースと、自分が振分層のネットワーク20に配置されている特殊ケースとがある。
引渡手段41Bは、通常ケースでは、相手位置判断手段41Aにより取引相手のユーザノード40が自ネットワーク30に配置されていないと判断したときに、自分の上位(直上)のネットワーク20に配置された自分の上位(直上)の振分ノード50に向け、取引データを送信する処理を実行する。これは、後述する図21のD1の送信処理であり、例えば、図1において、ユーザノード40Aが、上位(直上)の振分ノード50Aに向けて送信する処理である。従って、完全分離型の場合と同様である。
また、引渡手段41Bは、特殊ケースでは、相手位置判断手段41Aにより取引相手のユーザノード40が自ネットワーク20に配置されていないと判断したときに、自ネットワーク20に配置された振分ノード50のうちの取引相手のユーザノード40を配下に有する振分ノード50に向け、取引データを送信する処理を実行する。これは、後述する図21のD3の送信処理であり、例えば、図1において、ユーザノード40Eが、自ネットワーク20内の振分ノード50Bに向けて送信する処理である。
なお、引渡手段41Bが送信経路を決定する際に、配置情報記憶手段43(図5参照)に記憶されている配置情報を用いる代わりに、様々な代替手段を用いてもよいのは、上述した相手位置判断手段41Aの場合と同様である。
受取手段41Cは、取引相手のユーザノード40として、上位(直上)の振分ノード50から取引データを受信する処理を実行するものである。この際、受取手段41Cは、原要求の取引データを受信する。この受信処理は、後述する図21(第2実施形態用の説明図であるが、第1実施形態でも同様である。)のR1の受信処理である。なお、R2,R3の受信処理は、必須ではない。R2,R3の場合は、自分以外のノードがブロック生成以降の処理を主導するので、自分はその主導役のノードにはならないため、必ずしも自ネットワーク20,30内の他のノード(ここではユーザノード40または振分ノード50)から取引データを受信する必要がないからである。
ブロック追加手段41Dは、相手位置判断手段41Aにより取引相手のユーザノード40が自ネットワーク20,30に配置されていると判断した場合、または受取手段41Cにより取引データを受信した場合に、取引データを含むブロックを生成し、生成したブロックを自ネットワーク20,30内で承認して自ネットワーク20,30に配置された他のノード(自分以外のユーザノード40、振分ノード50、メモリノード60)および自分で共有して記憶するためのブロック追加処理を実行するものである。
ここで、ブロック追加処理、すなわちブロックの生成・承認・共有記憶のための処理は、必ずしも自ら(アクションを起こしたユーザノード40や、取引相手のユーザノード40)がブロックの生成処理を実行する必要はなく、また、必ずしも自らが承認処理を実行したり、承認処理に参加する必要はなく、さらには、必ずしも自らが共有記憶のための各ノードへの配信処理を実行する必要はない。従って、ブロックの生成処理・承認処理・共有記憶のための各ノードへの配信処理については、これらの処理を担当する自ネットワーク20,30内の他のノードに対し、ブロックの生成指示(取引データや、識別情報の置換指示を含む。)・承認指示・配信指示を送ってもよく、要するに、自ら(アクションを起こしたユーザノード40や、取引相手のユーザノード40)は、処理のタイミング等を管理し、ブロックの生成処理・承認処理・共有記憶のための各ノードへの配信処理を主導すればよい。
ブロック追加処理のうちのブロック生成処理は、取引データを用いて、それまでに蓄積記憶されたブロック(既にブロック記憶手段44に記憶されている前回までのブロック)とともにチェーンを形成するブロックを新たに生成する処理である。このブロック生成処理は、上述したように、自分(アクションを起こしたユーザノード40や、取引相手のユーザノード40)で直接に実行するか、または自ネットワーク20,30内の他のノードに対してブロックの生成指示(取引データや、識別情報の置換指示を含む。)を送ることにより実行される。生成指示を送る場合は、生成指示を受けたノードに設けられたブロック追加手段(他のユーザノード40のブロック追加手段41D、振分ノード50のブロック追加手段51B、またはメモリノード60のブロック追加手段61A)が実行する。
ブロック生成処理では、原要求の取引データをそのまま用いてブロックを生成する場合と、識別情報の置換処理を行った取引データを用いてブロックを生成する場合と、これらの双方の取引データを用いてブロックを生成する場合とがある。生成されるブロックは、図2に示すように、生成時刻を示すタイムスタンプ、前のブロックのハッシュ値等のチェーン形成情報、置換後の取引データ(識別情報の置換処理が不要なため原要求のままの取引データ、または置換処理を行った取引データ)とを含み、さらに、図中2点鎖線で示されるように、識別情報の置換処理が行われた場合には、原要求の取引データを合わせて含むようにしてもよい。
チェーン形成情報は、通常のブロックチェーンのように、前のブロックのハッシュ値としてもよく、あるいは、例えば前のブロック以外の情報を用いて形成されたものとしてもよく、チェーンの形成方式は任意である。
取引データについてのノードの識別情報の置換処理は、次のようになる。先ず、同一のネットワークに配置されたユーザノード40間の取引については、取引の当事者の双方のユーザノード40の識別情報を含む取引データを用いてブロックを生成するので、識別情報の置換は不要となる(後述する図8のステップS3参照)。次に、異なるネットワークに配置されたユーザノード40間の取引については、取引の当事者の一方のユーザノード40の識別情報、および取引データの送受信に関与した振分ノード50の識別情報を含む取引データを用いて、ブロックを生成する(後述する図8のステップS5,S6参照)。
ブロック追加処理のうちのブロック承認処理は、データの改ざんがないか、残高は正しいか、残高を越える不正な取引ではないか等について、それ以前のブロックが有する情報との整合性等により判断する処理であり、この承認処理を経て、初めて自ネットワーク20,30内でのブロックの共有記憶が可能となる。
承認方式は問わない。例えば、自ネットワーク20,30内の特定または任意の1つのノード(自分でもよい。)が担当してもよく、特定または任意の複数のノード(自分が含まれていても、含まれていなくてもよい。)が担当してもよく、全ノードが担当してもよい。例えば、複数のノードや全ノードが担当する場合には、そのうちの一定比率(例えば3分の2以上)の合意を条件として承認する等とすることができる。
このブロック承認処理は、ブロック生成処理を担当したノードから配信されてくるブロックを、ブロック承認処理を担当する1つまたは複数のノードが受け取るか、またはブロックの生成指示を送ったノードから配信されてくるブロックを、ブロック承認処理を担当する1つまたは複数のノードが受け取ることにより実行される。
ブロック追加処理のうちの共有記憶のための各ノードへの配信処理は、承認されたブロックが自ネットワーク20,30内の全てのノードに行き渡るように、すなわち、配信元のノードから、配信元を除く全てのノードに向け、承認されたブロックを配信するとともに、承認されたブロックを受け取ったノードが、各自のブロック記憶手段(ユーザノード40のブロック記憶手段44、振分ノード50のブロック記憶手段54、またはメモリノード60のブロック記憶手段63)に、受け取ったブロックを保存する処理である。配信元のノードは、承認処理を実行したノードや承認処理に参加したノードでもよく、承認指示を送ったノードでもよく、また、配信元のノードが複数ある場合には、複数個受け取ったブロックが同一のものであるときに保存するようにしてもよい。
配置変更手段41Eは、自分(ユーザノード40)の配置位置につき、現在配置されているネットワーク20,30から異なるネットワーク20,30への配置変更をする処理を実行するものである。
具体的には、配置変更手段41Eは、配置変更に伴って、全てのユーザノード40の配置情報記憶手段43および全ての振分ノード50の配置情報記憶手段53に記憶されている各配置情報(図5参照)について、自分(ユーザノード40)が移動元のネットワーク20,30に配置されている状態から移動先のネットワーク20,30に配置されている状態に変更する配置情報更新処理(更新のタイミングは、後述する図15のステップS108参照)を実行する。但し、振分ノード50の配置変更支援手段51Cに、この配置情報更新処理を実行する機能がある場合には、配置変更手段41Eには、この機能はなくてもよい。なお、配置情報記憶手段43,53と同様な配置情報記憶手段が、他のシステムに設けられている場合には、配置変更手段41Eは、他のシステムの配置情報記憶手段に記憶されている配置情報について、配置情報更新処理を実行する。また、メモリノード60が配置情報記憶手段を有する場合には、配置変更手段41Eは、全てのメモリノード60の配置情報記憶手段に記憶されている各配置情報について、配置情報更新処理を実行する。
また、配置変更手段41Eは、ユーザによる移動先のネットワーク20,30の入力を受け付け、自分(ユーザノード40)が現在配置されている移動元のネットワーク20,30の直上の振分ノード50から移動先のネットワーク20,30の直上の振分ノード50までの送信経路上の任意の振分ノード50または全ての振分ノード50のうちの任意の振分ノード50を配置変更用ノードとして選択し、配置変更アクション用の取引データを生成し、配置情報記憶手段43(図5参照)に記憶されている移動前の状態の配置情報に従って決定した送信経路で、生成した配置変更アクション用の取引データを、配置変更用ノード(選択した振分ノード50)に向けて送信する処理を実行する。
この際、配置変更手段41Eは、生成する配置変更アクション用の取引データの中に、自分(ユーザノード40)が有する残高記憶手段(不図示)に記憶されている当該ユーザの残高、自分(ユーザノード40)の識別情報を用いて他のシステムに設けられた残高記憶手段から取得した当該ユーザの残高、自分(ユーザノード40)が記憶している取引データに含まれる当該ユーザの残高、または自分(ユーザノード40)が記憶している取引データを用いて算出される当該ユーザの残高、並びに、送信先となる配置変更用ノード(選択した振分ノード50)の識別情報を含ませる。また、配置変更用ノード(選択した振分ノード50)に向けた送信処理は、相手位置判断手段41Aおよび引渡手段41Bの場合と同様であり、同じアルゴリズムを使って送信経路を決定する。
そして、配置変更手段41Eは、配置変更用ノードに向けた送信処理を実行するとともに、生成した配置変更アクション用の取引データを、ブロック追加手段41Dに渡すことにより、配置変更ではない通常の取引の場合と同様に、ブロック追加処理(ブロックの生成・承認・共有記憶のための処理)を実行させる。従って、ブロック記憶手段44には、当該ユーザの残高が一時的にゼロになることを意味する取引データ(識別情報の置換を含む。)が、自ネットワーク20,30(未だ移動元のネットワークにある状態)内の他のノードと共有した状態で記憶されることになり、配置変更に伴って、当該ユーザから仮想のユーザ(仮想の管理者)に金銭やポイント等の価値が移動したことになる。
さらに、配置変更手段41Eは、前述した配置情報更新処理(更新のタイミングは、後述する図15のステップS108参照)を経て、自分(ユーザノード40)が移動先のネットワーク20,30に配置された移動後の状態で、配置変更用ノード(選択した振分ノード50)から送信されてくる配置変更リターン用の取引データを受信する処理を実行する。この受信処理は、受取手段41Cの場合と同様である。
そして、配置変更手段41Eは、受信した配置変更リターン用の取引データをブロック追加手段41Dに渡すことにより、配置変更ではない通常の取引の場合と同様に、ブロック追加処理(ブロックの生成・承認・共有記憶のための処理)を実行させる。従って、ブロック記憶手段44には、一時的にゼロになっていた当該ユーザの残高が元に戻ることを意味する取引データ(識別情報の置換を含む。)が、自ネットワーク20,30(既に移動先のネットワークに変わっている。)内の他のノードと共有した状態で記憶されることになり、仮想のユーザ(仮想の管理者)から当該ユーザに金銭やポイント等の価値が戻されたことになる。
配置情報記憶手段43は、図5に示すように、各ユーザノード40が複数のネットワーク20,30のうちのいずれに配置されているか並びに複数のネットワーク20,30の上下関係若しくはこれに代わるノードの上下関係を示す配置情報を記憶するものであり、本第1実施形態では、一例として、ノードの識別情報と、所属するネットワークの識別情報と、所属する階層種別と、上位(直上)のノードの識別情報とを関連付けて記憶している。なお、配置情報記憶手段43の構成は、図5に例に限定されるものではなく、要するに、図1のツリー構造を記憶することができるようになっていればよい。
ブロック記憶手段44は、ブロック追加手段41Dにより生成および承認されたブロック(自分のブロック追加手段41Dではなく、他のノードのブロック追加手段41D,51B,61Aが主導して生成および承認されたブロックでもよい。)を記憶するものである。このブロック記憶手段44に記憶されるブロックは、ブロックチェーンを形成している。また、自ネットワーク20,30内の全てのノードが、同じブロックチェーンを共有する状態で記憶している。なお、ブロックの構成は、ブロック追加手段41Dを説明する記載において、前述した通りである。
<振分ノード50の構成>
振分ノード50は、ユーザノード40または他の振分ノード50から受信した取引データを、取引相手のユーザノード40に向け、または配置情報で定まる取引相手のユーザノード40までの送信経路上の他の振分ノード50のうち自分に最も近い位置の他の振分ノード50に向けて送信するとともに、自ネットワーク20を経由した取引データを、自ネットワーク20に配置された他のノードおよび自分で共有して記憶するようになっている。ここで、他のノードとは、他の振分ノード50や、メモリノード60である。
具体的には、振分ノード50は、図3に示すように、取引データの記録に必要な各種の処理を実行する処理手段51と、この処理手段51による処理に必要な各種のデータおよび処理で得られた各種のデータを記憶するデータベース52とを備えている。
処理手段51は、振分手段51Aと、ブロック追加手段51Bと、配置変更支援手段51Cとを含んで構成されている。また、処理手段51は、図示されないデータベース・マネジメント・システム(DBMS)の機能を備えている。
データベース52は、配置情報記憶手段53(図5参照)と、ブロック記憶手段54とを含んで構成されている。また、データベース52は、例えば自分が保有する金銭やポイント等の価値の残高を記憶する残高記憶手段(不図示)を有していてもよい。
振分手段51Aは、ユーザノード40または他の振分ノード50から取引データを受信した場合に、配置情報記憶手段53(図5参照)に記憶されている配置情報を用いて、取引データを振り分けて送信する送信先のノードを決定し、取引相手のユーザノード40に向け、または取引相手のユーザノード40までの送信経路上の他の振分ノード50のうち自分に最も近い位置の他の振分ノード50に向け、取引データを送信する処理を実行するものである。この際、振分手段51Aは、原要求の取引データを送信する。
なお、振分手段51Aは、同様な配置情報記憶手段を有する他のノード(自ネットワーク20内の他のノードであるが、後述する第2実施形態では、自分の上位(直上)の振分ノード50でもよい。)への問合せにより上記の決定結果を取得してもよく、同様な配置情報記憶手段を有する他のシステム(取引記録システム10の外部のシステム)への通信回線を介した問合せにより上記の決定結果を取得してもよく、配置情報取得アルゴリズムによる演算処理で上記の決定結果を求めてもよく、自ネットワーク20がLAN等のように参加ノード数の比較的少ない閉じたネットワークである場合には、取引相手のユーザノード40を配下に有する振分ノード50に該当するか否かについての自ネットワーク20内の他のノードへの問合せによるか、または取引相手のユーザノード40に該当するか否かについての自ネットワーク20内の他のノードへの問合せにより上記の決定結果を取得してもよい。なお、配置情報取得アルゴリズムによる演算処理とは、例えば、ノードの識別情報の一部(例えば下4桁の数字や記号等)を抽出し、その抽出部分により示される配置情報で上記の決定結果を得る処理等である。
より具体的には、振分手段51Aは、振分層のネットワーク20にユーザノード40が配置されることのない完全分離型の場合には、ユーザノード40から取引データを受信した際に、自ネットワーク20に配置された他の振替ノード50のうちの取引相手のユーザノード40を配下に有する他の振替ノード50に向け、取引データを送信するネットワーク内送信処理を実行する。これは、後述する図22(第2実施形態用の説明図であるが、部分的には第1実施形態でも同様である。)のG2の送信処理であり、例えば、図1において、振分ノード50Aが、自ネットワーク20内の振分ノード50Bに向けて送信する処理である。
また、振分手段51Aは、完全分離型の場合には、自ネットワーク20に配置された他の振替ノード50から取引データを受信した際に、下位(直下)のネットワーク30に配置された取引相手のユーザノード40に向け、取引データを送信する下り方向送信処理を実行する。これは、後述する図22のG4の送信処理であり、例えば、図1において、振分ノード50Bが、下位(直下)のユーザノード40Bに向けて送信する処理である。
さらに、振分手段51Aは、振分層のネットワーク20にユーザノード40が配置されることのある混在型の場合には、下位(直下)のネットワーク30(例えば30A)に配置された自分の下位(直下)のユーザノード40(例えば40A)から取引データを受信した際に、取引相手のユーザノード40が自ネットワーク20に配置されていないときには、自ネットワーク20に配置された他の振替ノード50のうちの取引相手のユーザノード40を配下に有する振替ノード50(例えば50B)に向け、取引データを送信するネットワーク内送信処理を実行する。これは、後述する図22のG2の送信処理であり、例えば、図1において、振分ノード50Aが、自ネットワーク20内の振分ノード50Bに向けて送信する処理である。なお、取引相手のユーザノード40が自ネットワーク20に配置されているときは、後述する図22のG3の送信処理は行う必要はない。G3の場合は、自分がブロック生成以降の処理を主導するので、自ネットワーク20内の他のノードはその主導役のノードにはならないため、必ずしも自ネットワーク20内の他のノード(ここでは取引相手のユーザノード40)に向けて取引データを送信する必要がないからである。
そして、振分手段51Aは、混在型の場合には、自ネットワーク20に配置された他の振替ノード50(例えば50A)または自ネットワーク20に配置されたユーザノード40(例えば40E)から取引データを受信した際に、下位(直下)のネットワーク30(例えば30B)に配置された取引相手のユーザノード40(例えば40B)に向け、取引データを送信する下り方向送信処理を実行する。これは、後述する図22のG4の送信処理であり、例えば、図1において、振分ノード50Bが、下位(直下)のユーザノード40Bに向けて送信する処理である。
ブロック追加手段51Bは、ユーザノード40または他の振分ノード50から受信した取引データを含むブロックを生成し、生成したブロックを自ネットワーク20内で承認して自ネットワーク20に配置された他のノードおよび自分で共有して記憶するためのブロック追加処理を実行するものである。
ここで、ブロック追加処理、すなわちブロックの生成・承認・共有記憶のための処理は、必ずしも自ら(振分ノード50)がブロックの生成処理を実行する必要はなく、また、必ずしも自らが承認処理を実行したり、承認処理に参加する必要はなく、さらには、必ずしも自らが共有記憶のための各ノードへの配信処理を実行する必要はない。従って、ブロックの生成処理・承認処理・共有記憶のための各ノードへの配信処理については、これらの処理を担当する自ネットワーク20内の他のノードに対し、ブロックの生成指示(取引データや、識別情報の置換指示を含む。)・承認指示・配信指示を送ってもよく、要するに、自ら(振分ノード50)は、処理のタイミング等を管理し、ブロックの生成処理・承認処理・共有記憶のための各ノードへの配信処理を主導すればよい。この点は、ユーザノード40のブロック追加手段41Dの場合と同様である。
このブロック追加処理の内容は、ユーザノード40のブロック追加手段41Dの場合と同様である。従って、生成されるブロックは、図2のユーザノード40の場合と同様であり、図3に示すように、生成時刻を示すタイムスタンプ、前のブロックのハッシュ値等のチェーン形成情報、置換後の取引データ(識別情報の置換処理が不要なため原要求のままの取引データ、または置換処理を行った取引データ)とを含み、さらに、図中2点鎖線で示されるように、識別情報の置換処理が行われた場合には、原要求の取引データを合わせて含むようにしてもよい。
また、ブロック追加手段51Bは、ブロック記憶手段54に記憶させるブロックを生成する際には、取引データの送受信に関与した自分(振分ノード50)の識別情報、および送受信の相手の他の振分ノード50若しくは取引相手のユーザノード40の識別情報を用いて、ブロックを生成するための処理を実行する(後述する図9のステップS24,S27参照)。
配置変更支援手段51Cは、ユーザノード40の配置変更(所属するネットワーク20,30の変更)を支援する処理を実行するものである。
より具体的には、配置変更支援手段51Cは、配置変更に伴って、全てのユーザノード40の配置情報記憶手段43および全ての振分ノード50の配置情報記憶手段53に記憶されている各配置情報(図5参照)について、配置変更に係るユーザノード40が移動元のネットワーク20,30に配置されている状態から移動先のネットワーク20,30に配置されている状態に変更する配置情報更新処理(更新のタイミングは、後述する図15のステップS108参照)を実行する。但し、ユーザノード40の配置変更手段41Eに、この配置情報更新処理を実行する機能がある場合には、配置変更支援手段51Cには、この機能はなくてもよい。なお、配置情報記憶手段43,53と同様な配置情報記憶手段が、他のシステムに設けられている場合には、配置変更支援手段51Cは、他のシステムの配置情報記憶手段に記憶されている配置情報について、配置情報更新処理を実行する。また、メモリノード60が配置情報記憶手段を有する場合には、配置変更支援手段51Cは、全てのメモリノード60の配置情報記憶手段に記憶されている各配置情報について、配置情報更新処理を実行する。
また、配置変更支援手段51Cは、配置変更に係るユーザノード40から送信されてくる配置変更アクション用の取引データを受信する処理を実行するとともに、受信した配置変更アクション用の取引データをブロック追加手段51Bに渡すことにより、配置変更ではない通常の取引の場合と同様に、ブロック追加処理(ブロックの生成・承認・共有記憶のための処理)を実行させる。従って、ブロック記憶手段54には、当該ユーザの残高を一時的に預かったことを意味する取引データ(識別情報の置換を含む。)が、自ネットワーク20内の他のノードと共有した状態で記憶されることになり、配置変更に伴って、当該ユーザから仮想のユーザ(仮想の管理者)に金銭やポイント等の価値が移動したことになる。
そして、配置変更支援手段51Cは、受信した配置変更アクション用の取引データに含まれている当該ユーザの残高を用いて、当該ユーザの残高、および送信先となる配置変更に係るユーザノード40の識別情報を含む配置変更リターン用の取引データを生成し、配置情報更新処理(更新のタイミングは、後述する図15のステップS108参照)を経て配置情報記憶手段53(図5参照)に記憶されている移動後の状態の配置情報に従って決定した送信経路で、生成した配置変更リターン用の取引データを、移動先のネットワーク20,30に配置されたユーザノード40に向けて送信する処理を実行する。このユーザノード40に向けた送信処理は、振分手段51Aの場合と同様であり、同じアルゴリズムを使って送信経路を決定する。
さらに、配置変更支援手段51Cは、配置変更に係るユーザノード40に向けた送信処理を実行するとともに、生成した配置変更リターン用の取引データを、ブロック追加手段51Bに渡すことにより、配置変更ではない通常の取引の場合と同様に、ブロック追加処理(ブロックの生成・承認・共有記憶のための処理)を実行させる。従って、ブロック記憶手段54には、一時的に預かっていた当該ユーザの残高を元に戻したことを意味する取引データ(識別情報の置換を含む。)が、自ネットワーク20内の他のノードと共有した状態で記憶されることになり、仮想のユーザ(仮想の管理者)から当該ユーザに金銭やポイント等の価値が戻されたことになる。
配置情報記憶手段53は、図5に示すように、ユーザノード40の配置情報記憶手段43と同様である。なお、振分ノード50の配置情報記憶手段53とユーザノード40の配置情報記憶手段43とを異なるものとし、双方に記憶された配置情報を総合することにより、全体的な配置情報(図1のツリー構造の全体を示す情報)を把握することができるようになっていてもよい。例えば、ユーザノード40の配置情報記憶手段43には、自ネットワーク20,30内の各ノードおよび自分の上位(直上)の振分ノード50についての配置情報しか記憶されていない状態としてもよい。
ブロック記憶手段54は、ブロック追加手段51Bにより生成および承認されたブロック(自分のブロック追加手段51Bではなく、他のノードのブロック追加手段41D,51B,61Aが主導して生成および承認されたブロックでもよい。)を記憶するものである。このブロック記憶手段54に記憶されるブロックは、ブロックチェーンを形成している。ブロック記憶手段54の構成およびそこに記憶されるブロックの構成(図3参照)は、ユーザノード40のブロック記憶手段44の場合(図2参照)と同様であるが、自分が配置されているネットワーク20が、ユーザノード40が配置されているネットワーク30と異なっていれば、異なるブロックチェーンを記憶することになる。ブロックチェーンは、各ネットワーク20,30(30A,30B,30C)毎に異なるからである。
<メモリノード60の構成>
メモリノード60は、自分が配置されている自ネットワーク20,30内の他のノード(ユーザノード40、振分ノード50、他のメモリノード60)と取引データを共有した状態で記憶するものであり、バックアップ機能を果たすノードであるとともに、他のノードからの指示を受けてブロックの生成処理・承認処理・共有記憶のための各ノードへの配信処理を行うことも可能なノードである。
具体的には、メモリノード60は、図4に示すように、取引データの記録に必要な各種の処理を実行する処理手段61と、この処理手段61による処理に必要な各種のデータおよび処理で得られた各種のデータを記憶するデータベース62とを備えている。
処理手段61は、ブロック追加手段61Aを備えている。また、データベース62は、ブロック記憶手段63を含んで構成されている。
ブロック追加手段61Aは、自ネットワーク20,30内の他のノード(ユーザノード40、振分ノード50、他のメモリノード60)から送信されてくる自ネットワーク20,30内で承認されたブロックを受信し、受信したブロックをブロック記憶手段63に記憶させる処理を実行するものである。また、ブロック追加手段61Aは、他のノード(ユーザノード40、振分ノード50)からの指示を受けてブロックの生成処理・承認処理・共有記憶のための各ノードへの配信処理を実行する機能を備えていてもよく、この場合には、ブロック追加手段61Aは、ユーザノード40のブロック追加手段41Dや振分ノード50のブロック追加手段51Bと同様な機能を持つことになる。
ブロック記憶手段63は、ブロック追加手段61Aにより受信したブロック、すなわち自ネットワーク20,30内で承認されたブロックを記憶するものである。このブロック記憶手段63に記憶されるブロックは、ブロックチェーンを形成している。ブロック記憶手段63の構成およびそこに記憶されるブロックの構成(図4参照)は、ユーザノード40のブロック記憶手段44の場合(図2参照)や振分ノード50のブロック記憶手段54の場合(図3参照)と同様である。
<ユーザノード40、振分ノード50、メモリノード60の構成デバイス>
以上において、ユーザノード40、振分ノード50、メモリノード60は、それぞれコンピュータにより構成されるが、記憶容量や通信速度等に問題が生じない範囲であれば、タブレット端末や、コンピュータの機能を併せ持った高機能な携帯電話機等のような携帯機器であってもよい。
また、ユーザノード40の処理手段41、振分ノード50の処理手段51、メモリノード60の処理手段61に含まれる各手段41A〜41E,51A〜51C,61Aは、ユーザノード40、振分ノード50、メモリノード60を構成する各コンピュータ本体の内部に設けられた中央演算処理装置(CPU)、およびこのCPUの動作手順を規定する1つまたは複数のプログラムにより実現される。
さらに、ユーザノード40のデータベース42、振分ノード50のデータベース52、メモリノード60のデータベース62は、例えばハードディスクやソリッドステートドライブ(SSD)等により好適に実現されるが、記憶容量やアクセス速度等に問題が生じない範囲であれば、例えば、DVD(デジタル・バーサタイル・ディスク)、磁気テープ等の他の記録媒体を採用してもよい。
そして、ユーザノード40は、マウスやキーボード等の入力手段と、液晶ディスプレイ等の表示手段とを備えているが、振分ノード50やメモリノード60は、必ずしも入力手段や表示手段を備えている必要はない。
<取引記録システム10による取引データの記録処理の流れ>
このような第1実施形態においては、以下のようにして取引記録システム10により、取引データの記録処理が行われる。
図6において、完全分離型の場合の取引データの送信経路のパターンは、次の通りであり、ノードに付された符号は、図1と対応している。但し、等価なパターンは、記載を省略している。
パターンP1は、アクション層のネットワーク30A内のユーザノード40A(図6中の★印)から、同じネットワーク30A内のユーザノード40Dに至る送信経路である。
パターンP2は、アクション層のネットワーク30A内のユーザノード40A(図6中の★印)から、振分層のネットワーク20内の振分ノード50A、振分ノード50Bをこの順に介して、アクション層のネットワーク30B内のユーザノード40Bに至る送信経路である。
図7において、混在型の場合の取引データの送信経路のパターンは、次の通りであり、ノードに付された符号は、図1と対応している。但し、等価なパターンは、記載を省略している。
パターンM1は、パターンP1と同じであり、アクション層のネットワーク30A内のユーザノード40A(図7中の★印)から、同じネットワーク30A内のユーザノード40Dに至る送信経路である。
パターンM2は、パターンP2と同じであり、アクション層のネットワーク30A内のユーザノード40A(図7中の★印)から、振分層のネットワーク20内の振分ノード50A、振分ノード50Bをこの順に介して、アクション層のネットワーク30B内のユーザノード40Bに至る送信経路である。
パターンM3は、振分層のネットワーク20内のユーザノード40E(図7中の★印)から、同じネットワーク20内のユーザノード40Fに至る送信経路である。
パターンM4は、アクション層のネットワーク30A内のユーザノード40A(図7中の★印)から、振分層のネットワーク20内の振分ノード50Aを介して、振分層のネットワーク20内のユーザノード40Fに至る送信経路である。
パターンM5は、振分層のネットワーク20内のユーザノード40E(図7中の★印)から、振分層のネットワーク20内の振分ノード50Bを介して、アクション層のネットワーク30B内のユーザノード40Bに至る送信経路である。
図8および図9には、以上のような各種のパターンの送信経路で取引データを送信する場合における、個々のユーザノード40および個々の振分ノード50での処理の流れが示されている。
図8において、ユーザノード40は、アクションを起こすユーザノード40(送金元のユーザノード40)として、ユーザによる原要求の取引データ(送金元の識別情報、送金先の識別情報、送金の金額を含む。)の入力を受け付けた場合(ステップS1)には、相手位置判断手段41Aにより、自ネットワーク20,30内に、送金先(取引相手)のユーザノード40があるか否かを判断する(ステップS2)。
相手位置判断手段41Aにより、自ネットワーク20,30内に、送金先(取引相手)のユーザノード40があると判断した場合には、ブロック追加手段41Dにより、原要求のままの取引データ(ノードの識別情報の置換を行わない取引データ)を含むブロックの生成のための処理を実行する(ステップS3)。この場合は、自ネットワーク20,30内で完結する取引であるため、送金元および送金先の識別情報の双方ともに、原要求のままのユーザノード40の識別情報でよいからである。
一方、前述したステップS2で、相手位置判断手段41Aにより、自ネットワーク20,30内に、送金先(取引相手)のユーザノード40がないと判断した場合には、引渡手段41Bにより、配置情報で定まる送信経路上の振分ノード50のうち自分に最も近い位置の振分ノード50への取引データ(原要求)の送信を行う(ステップS4)。
この際、引渡手段41Bは、完全分離型の場合には、自分の上位(直上)のネットワーク20に配置された自分の上位の振分ノード50に向け、取引データ(原要求)を送信する(ステップS4)。
また、引渡手段41Bは、混在型の場合には、自分(アクションを起こすユーザノード40)がアクション層のネットワーク30に配置されている通常ケースと、自分が振分層のネットワーク20に配置されている特殊ケースとで異なる処理を行う。すなわち、引渡手段41Bは、通常ケースでは、自分の上位(直上)のネットワーク20に配置された自分の上位(直上)の振分ノード50に向け、取引データ(原要求)を送信し、特殊ケースでは、自ネットワーク20に配置された振分ノード50のうちの取引相手のユーザノード40を配下に有する振分ノード50に向け、取引データ(原要求)を送信する(ステップS4)。
続いて、ブロック追加手段41Dにより、取引データ(ノードの識別情報の置換を行った取引データ)を含むブロックの生成のための処理を実行する(ステップS5)。この場合は、自ネットワーク20,30内で完結しない取引であり、自ネットワーク20,30の外部への送信が行われたので、送金先の識別情報を、取引データ(原要求)の送信先の振分ノード50の識別情報に置換する。
また、ユーザノード40は、前述したステップS1で、受取手段41Cにより、送金先(取引相手)のユーザノード40として、上位(直上)の振分ノード50から取引データ(原要求)を受信した場合には、ブロック追加手段41Dにより、取引データ(ノードの識別情報の置換を行った取引データ)を含むブロックの生成のための処理を実行する(ステップS6)。この場合は、自ネットワーク20,30内で完結しない取引であり、自ネットワーク20,30の外部からの受信が行われたので、送金元の識別情報を、取引データ(原要求)の送信元の振分ノード50の識別情報に置換する。
その後、ブロック追加手段41Dにより、生成したブロックの承認のための処理を実行し(ステップS7)、さらに、生成・承認されたブロックを自ネットワーク20,30内の各ノードに保存するための処理を実行する(ステップS8)。
図9において、振分ノード50は、振分手段51Aにより、取引データ(原要求)をどのノードから受信したのかを判断し(ステップS21)、下位(直下)のユーザノード40から受信した場合には、振分手段51Aにより、自ネットワーク20内に、送金先(取引相手)のユーザノード40があるか否かを判断する(ステップS22)。但し、振分層のネットワーク20内にユーザノード40があるのは、混在型のみであるため、ステップS22の処理は、完全分離型では不要である。
ステップS22で、自ネットワーク20内に、送金先(取引相手)のユーザノード40がないと判断した場合には、振分手段51Aにより、自ネットワーク20に配置された他の振替ノード50のうちの取引相手のユーザノード40を配下に有する他の振替ノード50に向け、取引データ(原要求)を送信する(ステップS23)。
続いて、ブロック追加手段51Bにより、取引データ(ノードの識別情報の置換を行った取引データ)を含むブロックの生成のための処理を実行する(ステップS24)。この場合は、送金元の識別情報は、自分(振替ノード50)の識別情報であり、送金先の識別情報は、取引データ(原要求)の送信先の振替ノード50の識別情報である。
その後、ブロック追加手段51Bにより、生成したブロックの承認のための処理を実行し(ステップS25)、さらに、生成・承認されたブロックを自ネットワーク20内の各ノードに保存するための処理を実行する(ステップS26)。
一方、前述したステップS22で、自ネットワーク20内に、送金先(取引相手)のユーザノード40があると判断した場合には、ブロック追加手段51Bにより、取引データ(ノードの識別情報の置換を行った取引データ)を含むブロックの生成のための処理を実行する(ステップS27)。この場合は、送金元の識別情報は、自分(振替ノード50)の識別情報であり、送金先の識別情報は、取引相手のユーザノード40の識別情報である。そして、前述したステップS25,S26の処理へ進む。
また、前述したステップS21で、完全分離型については、自ネットワーク20に配置された他の振替ノード50から取引データを受信した場合、混在型については、自ネットワーク20に配置された他の振替ノード50から取引データを受信した場合、または自ネットワーク20に配置されたユーザノード40から取引データを受信した場合には、振分手段51Aにより、下位(直下)のネットワーク30に配置された取引相手のユーザノード40に向け、取引データ(原要求)を送信する下り方向送信処理を実行する(ステップS28)。この場合は、振替ノード50は、後述する図22のT2,T3の受信処理を行っているので、他ノード主導ケースに該当する。他ノード主導ケースとは、自ネットワーク20内の他のノード(送金元のノード、すなわち自分(振替ノード50)に対して取引データを送信してきたノード)がブロック生成以降の処理を主導し、自分はその主導役のノードにはならずに、自ネットワーク20内でのブロックの共有記憶に参加する場合である。従って、自分(振替ノード50)は、ブロックの生成・承認・共有記憶のための各ノードへの配信処理を主導する必要がないことから、ブロック追加手段51Bによる自分からの積極的な処理(ステップS24〜S27に相当する処理)を行うことなく、これで処理を終了する。但し、主導役にならないというだけであり、他のノードから送信されてくる生成・承認されたブロックを保存する処理は実行するので、図9に自分の処理フローとしては記載されない処理(他のノードについての処理フローに属する処理)は行うことになる。
図10〜図14には、図7に示された取引データの送信経路のパターンに、上述した図8に示されたユーザノード40による処理の流れ(ステップS1〜S8)および図9に示された振分ノード50による処理の流れ(ステップS21〜S28)を嵌め込んだ状態の送金処理の全体的な流れが示されている。
図10は、図7を用いて説明したパターンM2の送信経路で取引データ(原要求)が送られていく場合の例であり、アクション層のネットワーク30A内のユーザノード40Aから、振分層のネットワーク20内の振分ノード50A、振分ノード50Bをこの順に介して、アクション層のネットワーク30B内のユーザノード40Bに至る送信経路の場合の送金処理の流れであり、詳細は、図示の通りである。図10中のS1〜S8の符号は、図8中のステップ番号を示し、図10中のS21〜S28の符号は、図9中のステップ番号を示している。この場合、ブロック内に格納される取引データ(置換を含む。)は、「送金元:ユーザノード40A⇒送金先:振分ノード50A」、「送金元:振分ノード50A⇒送金先:振分ノード50B」、「送金元:振分ノード50B⇒送金先:ユーザノード40B」という順番になっているので、形式的には、取引データ(原要求)である「送金元:ユーザノード40A⇒送金先:ユーザノード40B」という送金(取引)を実現するために、ノードからノードへと次々にリレーのような送金が行われたことになる。以下の他の例でも同様である。
なお、他のノードへの取引データ(原要求)の送信処理と、自分が主導する自ネットワーク内でのブロック追加処理(ブロックの生成・承認・共有記憶のための処理)とを逆の処理順とし、少なくとも承認が済んでから、他のノードへの取引データ(原要求)の送信処理を行うようにしてもよいが、承認に時間がかかる場合には、図示の通りの順番で、他のノードへの取引データ(原要求)の送信処理を先に行うことが好ましい。以下の他の例でも同様である。
図11は、図7を用いて説明したパターンM1の送信経路で取引データ(原要求)が送られていく場合の例であり、アクション層のネットワーク30A内のユーザノード40Aから、同じネットワーク30A内のユーザノード40Dに至る送信経路の場合の送金処理の流れであり、詳細は、図示の通りである。この場合には、同じネットワーク30A内の取引相手のユーザノード40Dには、取引データ(原要求)の送信処理は行っていないので、取引相手のユーザノード40Dがネットワーク30A内でのブロック追加処理(ブロックの生成・承認・共有記憶のための処理)を主導することはないが、取引相手のユーザノード40Dも、ネットワーク30Aに参加しているため、取引相手のユーザノード40Dにおけるブロックの保存処理(図11の処理フローに記載されない処理)は行われる。
図12は、図7を用いて説明したパターンM3の送信経路で取引データ(原要求)が送られていく場合の例であり、振分層のネットワーク20内のユーザノード40Eから、同じネットワーク20内のユーザノード40Fに至る送信経路の場合の送金処理の流れであり、詳細は、図示の通りである。
図13は、図7を用いて説明したパターンM4と等価な送信経路で取引データ(原要求)が送られていく場合の例であり、アクション層のネットワーク30A内のユーザノード40Aから、振分層のネットワーク20内の振分ノード50Aを介して、振分層のネットワーク20内のユーザノード40Eに至る送信経路の場合の送金処理の流れであり、詳細は、図示の通りである。
図14は、図7を用いて説明したパターンM5と等価な送信経路で取引データ(原要求)が送られていく場合の例であり、振分層のネットワーク20内のユーザノード40Eから、振分層のネットワーク20内の振分ノード50Aを介して、アクション層のネットワーク30A内のユーザノード40Aに至る送信経路の場合の送金処理の流れであり、詳細は、図示の通りである。
<ユーザノード40の配置変更処理の流れ>
図15において、先ず、ユーザノード40において、配置変更手段41Eにより、ユーザによるユーザノード40の配置変更要求(移動先のネットワークの指定を含む。)の入力を受け付ける(ステップS101)。
次に、配置変更手段41Eにより、自分(ユーザノード40)が現在配置されている移動元のネットワーク20,30の直上の振分ノード50から移動先のネットワーク20,30の直上の振分ノード50までの送信経路上の任意の振分ノード50または全ての振分ノード50のうちの任意の振分ノード50を配置変更用ノードとして選択する(ステップS102)。この際、配置変更手段41Eは、配置情報記憶手段43(図5参照)に記憶された配置情報を用いて、上記の送信経路や、配置変更に係るユーザノード40との位置関係等に基づき、振分ノード50の自動選択を行うが、ユーザの指定による選択としてもよい。
続いて、配置変更手段41Eにより、当該ユーザ(ユーザノード40の配置変更要求を行ったユーザ)の残高を取得または計算し、配置変更アクション用の取引データを生成する(ステップS103)。この際、配置変更手段41Eは、配置変更アクション用の取引データの中に、当該ユーザの残高と、送信先となる配置変更用ノード(選択した振分ノード50)の識別情報とを含ませる。また、当該ユーザの残高の取得は、外部のシステムからの取得であってもよい。
それから、配置変更手段41Eにより、配置情報記憶手段43(図5参照)に記憶されている移動前の状態の配置情報に従って決定した送信経路で、生成した配置変更アクション用の取引データを、配置変更用ノード(選択した振分ノード50)に向けて送信する(ステップS104)。
そして、配置変更用ノード(選択した振分ノード50)では、配置変更支援手段51Cにより、配置変更に係るユーザノード40から送信されてくる配置変更アクション用の取引データを受信する(ステップS105)。
その後、配置変更に係るユーザノード40では、配置変更手段41Eにより、生成した配置変更アクション用の取引データをブロック追加手段41Dに渡すことにより、配置変更ではない通常の取引の場合と同様に、ブロック追加処理(ブロックの生成・承認・共有記憶のための処理)を実行させる(ステップS106)。これにより、ブロック記憶手段44には、当該ユーザの残高が一時的にゼロになることを意味する取引データ(識別情報の置換を含む。)が他のノードと共有した状態で記憶される。従って、配置変更に伴って、当該ユーザから仮想のユーザ(仮想の管理者)に金銭やポイント等の価値が移動したことになる。
また、配置変更用ノード(選択した振分ノード50)では、受信した配置変更アクション用の取引データをブロック追加手段41Dに渡すことにより、配置変更ではない通常の取引の場合と同様に、ブロック追加処理(ブロックの生成・承認・共有記憶のための処理)を実行させる(ステップS107)。これにより、ブロック記憶手段54には、当該ユーザの残高を一時的に預かったことを意味する取引データ(識別情報の置換を含む。)が、自ネットワーク20内の他のノードと共有した状態で記憶される。従って、配置変更に伴って、当該ユーザから仮想のユーザ(仮想の管理者)に金銭やポイント等の価値が移動したことになる。
それから、配置変更用ノード(選択した振分ノード50)では、配置変更支援手段51Cにより、全てのユーザノード40の配置情報記憶手段43および全ての振分ノード50の配置情報記憶手段53に記憶されている各配置情報(図5参照)について、配置変更に係るユーザノード40が移動元のネットワーク20,30に配置されている状態から移動先のネットワーク20,30に配置されている状態に変更する配置情報更新処理を実行する(ステップS108)。なお、この配置情報更新処理は、ユーザノード40の配置変更手段41Eにより実行してもよい。
その後、配置変更用ノード(選択した振分ノード50)では、配置変更支援手段51Cにより、受信した配置変更アクション用の取引データに含まれている当該ユーザの残高を用いて、当該ユーザの残高、および送信先となる配置変更に係るユーザノード40の識別情報を含む配置変更リターン用の取引データを生成する(ステップS109)。
続いて、配置変更支援手段51Cにより、前述したステップS108の配置情報更新処理を経て配置情報記憶手段53(図5参照)に記憶されている移動後の状態の配置情報に従って決定した送信経路で、生成した配置変更リターン用の取引データを、移動先のネットワーク20,30に配置されたユーザノード40に向けて送信する(ステップS110)。
配置変更に係るユーザノード40では、配置変更手段41Eにより、前述したステップS108の配置情報更新処理を経て、自分(ユーザノード40)が移動先のネットワーク20,30に配置された移動後の状態で、配置変更用ノード(選択した振分ノード50)から送信されてくる配置変更リターン用の取引データを受信する(ステップS111)。
その後、配置変更用ノード(選択した振分ノード50)では、配置変更支援手段51Cにより、生成した配置変更リターン用の取引データをブロック追加手段51Bに渡すことにより、配置変更ではない通常の取引の場合と同様に、ブロック追加処理(ブロックの生成・承認・共有記憶のための処理)を実行させる(ステップS112)。これにより、ブロック記憶手段54には、一時的に預かっていた当該ユーザの残高を元に戻したことを意味する取引データ(識別情報の置換を含む。)が、自ネットワーク20内の他のノードと共有した状態で記憶される。従って、仮想のユーザ(仮想の管理者)から当該ユーザに金銭やポイント等の価値が戻されたことになる。
また、配置変更に係るユーザノード40では、配置変更手段41Eにより、受信した配置変更リターン用の取引データをブロック追加手段41Dに渡すことにより、配置変更ではない通常の取引の場合と同様に、ブロック追加処理(ブロックの生成・承認・共有記憶のための処理)を実行させる(ステップS113)。これにより、ブロック記憶手段44には、一時的にゼロになっていた当該ユーザの残高が元に戻ることを意味する取引データ(識別情報の置換を含む。)が、自ネットワーク20,30(既に移動先のネットワークに変わっている。)内の他のノードと共有した状態で記憶される。従って、仮想のユーザ(仮想の管理者)から当該ユーザに金銭やポイント等の価値が戻されたことになる。
<第1実施形態の効果>
このような第1実施形態によれば、次のような効果がある。すなわち、取引記録システム10では、各ノード40,50,60は、自分が配置されている自ネットワーク20,30内(自ネットワーク20,30に接続配置されている各ノード40,50,60からなるグループ内)のノードが関与した取引データのみを保有すればよい。
すなわち、ユーザノード40については、自ネットワーク20,30内での取引データ(振分データ50が介在しなかった場合の取引データ)と、複数のネットワーク間に跨る取引データのうちの自ネットワーク内のノード(ユーザノード40と振分ノード50とが同一のネットワークに配置されることのない完全分離型では、ユーザノード40となるが、それらが同一のネットワークに配置されることのある混在型では、振分ノード50の場合もある。)が関与した取引データとを保有すればよい。また、振分ノード50は、自ネットワーク20を経由した取引データを保有すればよい。さらに、メモリノード60は、自ネットワーク20,30を経由した取引データを保有すればよい。
従って、各ノード40,50,60は、自ネットワーク以外のネットワーク内での取引データ(自ネットワーク以外のネットワーク内で取引が完結した場合の取引データ)や、自ネットワークを経由していない取引データ(自ネットワーク以外のネットワークのみを経由した取引データ)については、保有しなくてよい。
このため、各ノード40,50,60が保有するデータ量を少なくすることができる。また、同一のネットワークに配置された各ノードにより形成されたグループでは、いずれのグループにおいても、そのグループの全参加者(全ノード)が取引履歴を保有(共有状態で記憶)するため、既存のブロックチェーン技術が持つ「改ざんしにくい」という特性の損失を少なくすることができる。そして、各ノード40,50,60の保有データ量を少なくすることができるため、各ノード40,50,60の容量逼迫の問題を解消または軽減することができる。
また、ユーザノード40のブロック追加手段41D、および振分ノード50のブロック追加手段51Bは、ブロックに取引データを格納する際に、原要求の取引データのままではなく、振分ノードの識別情報を使った置換処理を行う構成とされているので、それぞれのノードに記録される取引データの中に、送信元情報や送信先情報として、自ネットワーク内のノード40,50の識別情報か、または自分の直上の振分ノード50の識別情報が含まれる状態とすることができる。従って、取引データの中に、自ネットワーク内のノードの識別情報が2つ含まれていれば、自ネットワーク内で完結させた取引ということになり、自分の直上の振分ノードの識別情報が含まれていれば、自ネットワークの外部への引き渡しがあった取引、または自ネットワークの外部からの受け取りがあった取引ということになる。このため、アクションを起こしたユーザノード40から取引相手のユーザノード40へ金銭やポイント等の価値を送信する場合に、形式上、ノードからノードへと次々に金銭やポイント等の価値をリレーしていった形態をとることができる。
さらに、ユーザノード40は、配置変更手段41Eを備え、振分ノード50は、配置変更支援手段51Cを備えているので、ユーザノード40の識別情報を変更することなく、ユーザノード40が配置されるネットワークを、異なるネットワークに変更することができる。すなわち、所属ネットワークを移動させるユーザノード40について、新しい識別番号を付与しなくても、配置変更を実現することができる。
また、配置変更用ノードを、ユーザノード40ではなく、振分ノード50の中から選択するので、配置変更に係るユーザノード40を操作するユーザ以外のユーザの残高が、配置変更に伴って不自然に増減する事態を回避することができる。そして、配置変更用ノードを、振分ノード50の中から選択するので、通常の取引の処理を利用して配置変更を実現することができる。
[第2実施形態]
図16には、本発明の第2実施形態の取引記録システム200の全体構成が示されている。図17には、第2実施形態の配置情報記憶手段43,53の構成が示されている。また、図18、図19には、第2実施形態における完全分離型、混在型の場合の取引データの送信経路のパターンが示されている。さらに、図20には、第2実施形態の振分ノード50による処理の流れがフローチャートで示されている。また、図21は、第2実施形態のユーザノード40による取引データの引渡時および受取時の処理の内容を示す説明図であり、図22は、第2実施形態の振分ノード50による取引データの受信時および送信時の処理の内容を示す説明図である。さらに、図23〜図29には、第2実施形態の送金処理の具体例が示されている。
<取引記録システム200の全体構成>
本第2実施形態の取引記録システム200は、振分層が複数階層からなり、従って、アクション層と合わせるとシステム全体では3階層以上となる点を除き、前記第1実施形態の取引記録システム10と同様であるから、同様な構成や機能を有する部分には同一符号を付して詳しい説明を省略し、以下では異なる部分を中心に説明を行う。
前記第1実施形態の取引記録システム10は、1階層の振分層であるネットワーク20と、最下層のアクション層であるネットワーク30(30A,30B,30C)とを備え、システム全体で2階層であった。これに対し、図16に示すように、本第2実施形態の取引記録システム200は、複数階層からなる振分層であるネットワーク20(20J,20K,20L,20M,20N,20P,20Q)と、最下層のアクション層であるネットワーク30(30S,30T,30U,30V,30W)とを備え、システム全体で3階層以上である。
より詳細には、取引記録システム200は、第1振分層であるネットワーク20Jと、その直下の第2振分層であるネットワーク20K,20Lと、さらにそれらの直下の第3振分層であるネットワーク20M,20N,20P,20Qと、第2振分層のネットワーク20Kの直下に位置する最下層のアクション層であるネットワーク30Sと、第3振分層のネットワーク20M,20N,20P,20Qの直下に位置する最下層のアクション層であるネットワーク30T,30U,30V,30Wとを備えている。
従って、図16に示す例では、最上層の第1振分層のネットワーク20Jから最下層のアクション層のネットワーク30Sまでは、3階層であり、最上層の第1振分層のネットワーク20Jから最下層のアクション層のネットワーク30T,30U,30V,30Wまでは、4階層となっている。このように取引記録システム200では、部分的に見たときに、階層の数が異なっている部分があってもよい。また、取引記録システム200の全体を、同じ階層の数で統一してもよい。
前記第1実施形態の取引記録システム10の場合と同様に、取引記録システム200を構成する第1振分層、第2振分層、第3振分層のネットワーク20(20J,20K,20L,20M,20N,20P,20Q)には、図16中の2点鎖線のようにユーザノード40が配置されていてもよく、その場合は、混合型であり、配置されていない場合は、完全分離型である。
また、前記第1実施形態の取引記録システム10では、振分層が1階層であったため、振分ノード50が上位(直上)の振分ノード50を有することや、下位(直下)の振分ノード50を有することはなかったが、本第2実施形態の取引記録システム200では、振分層が複数階層であるため、振分ノード50の上位(直上)の振分ノード50や、振分ノード50の下位(直下)の振分ノード50が存在してもよい。
<取引記録システム200における配置情報記憶手段43,53>
図17に示すように、本第2実施形態の取引記録システム200では、ユーザノード40の配置情報記憶手段43および振分ノード50の配置情報記憶手段53は、前記第1実施形態の取引記録システム10の場合と同じ構成を有しているので、同じ符号を付している。但し、前記第1実施形態の図1のツリー構造と、本第2実施形態の図16のツリー構造とは、図示の通り異なっているので、記憶している配置情報は異なっている。
<取引記録システム200におけるユーザノード40>
本第2実施形態の取引記録システム200では、ユーザノード40の引渡手段41Bは、図21に示すように、直上の振分ノード50への取引データの送信処理D1を実行する場合と、自ネットワーク内の振分ノード50のうちの送金先(取引相手)のユーザノード40を配下に有する振分ノード50への取引データの送信処理D3を実行する場合とがあるが、このことは、前記第1実施形態の場合と同様である。なお、自ネットワーク内の送金先(取引相手)のユーザノード40への取引データの送信処理D2は必須ではなく、このことも、前記第1実施形態の場合と同様である。D2の場合は、自分がブロック生成以降の処理を主導するので、自ネットワーク内の他のノードはその主導役のノードにはならないため、必ずしも自ネットワーク内の他のノード(ここでは取引相手のユーザノード40)に向けて取引データを送信する必要がないからである。
すなわち、本第2実施形態の取引記録システム200では、ユーザノード40の引渡手段41Bは、第1、第2、第3振分層のネットワーク20(20J,20K,20L,20M,20N,20P,20Q)にユーザノード40が配置されることのない完全分離型の場合には、相手位置判断手段41Aにより取引相手のユーザノード40が自ネットワークに配置されていないと判断したときに、自分の直上のネットワーク20に配置された自分の直上の振分ノード50に向け(図21のD1)、取引データを送信する処理を実行する。
また、本第2実施形態の取引記録システム200では、ユーザノード40の引渡手段41Bは、第1、第2、第3振分層のネットワーク20(20J,20K,20L,20M,20N,20P,20Q)にユーザノード40が配置されることのある混在型の場合には、相手位置判断手段41Aにより取引相手のユーザノード40が自ネットワークに配置されていないと判断したときに、自分の直上のネットワーク20に配置された自分の直上の振分ノード50に向け(図21のD1)、または自ネットワークに配置された振分ノード50のうちの取引相手のユーザノード40を配下に有する振分ノード50に向け(図21のD3)、取引データを送信する処理を実行する。
さらに、本第2実施形態の取引記録システム200では、ユーザノード40の受取手段41Cは、図21に示すように、直上の振分ノード50からの取引データの受信処理R1を実行する場合があるが、このことは、前記第1実施形態の場合と同様である。なお、自ネットワーク内の送金先(取引相手)のユーザノード40からの取引データの受信処理R2や、自ネットワーク内の振分ノード50からの取引データの受信処理R3は、必須ではなく、このことも、前記第1実施形態の場合と同様である。R2,R3の場合は、自分以外のノードがブロック生成以降の処理を主導するので、自分はその主導役のノードにはならないため、必ずしも自ネットワーク内の他のノード(ここではユーザノード40または振分ノード50)から取引データを受信する必要がないからである。
<取引記録システム200における振分ノード50>
本第2実施形態の取引記録システム200では、振分層が複数階層になっているので、振分ノード50の振分手段51Aは、図22に示すように、前記第1実施形態の取引記録システム10の場合よりも、実行する処理の種類が多くなる。但し、取引記録システム200における振分ノード50の処理のアルゴリズムは、振分層がたまたま1階層になった場合にも適用することができるので、その場合には、前記第1実施形態の取引記録システム10における振分ノード50と等価な処理を行うことになる。
具体的には、本第2実施形態の取引記録システム200では、振分ノード50の振分手段51Aは、図22に示すように、直上の他の振分ノード50からの取引データの受信処理T1を実行する場合(このT1は、前記第1実施形態の取引記録システム10にはない。)と、自ネットワーク内の他の振分ノード50からの取引データの受信処理T2を実行する場合と、自ネットワーク内の送金元のユーザノード40からの取引データの受信処理T3を実行する場合と、直下の送金元のユーザノード40からの取引データの受信処理T4を実行する場合と、直下の他の振分ノード50からの取引データの受信処理T5を実行する場合(このT5は、前記第1実施形態の取引記録システム10にはない。)とがある。このうち、T2,T3の受信処理を行った場合は、他ノード主導ケースに該当する。他ノード主導ケースとは、自ネットワーク内の他のノード(送金元のノード)がブロック生成以降の処理を主導し、自分はその主導役のノードにはならずに、自ネットワーク内でのブロックの共有記憶に参加する場合である。完全分離型では、T2の場合があり(T3の場合はない。)、混在型では、T2,T3の場合がある。
また、本第2実施形態の取引記録システム200では、振分ノード50の振分手段51Aは、図22に示すように、直上の他の振分ノード50への取引データの送信処理G1を実行する場合(このG1は、前記第1実施形態の取引記録システム10にはない。)と、自ネットワーク内の他の振分ノード50のうちの取引相手のユーザノード40を配下に有する他の振分ノード50への取引データの送信処理G2を実行する場合と、直下の送金先(取引相手)のユーザノード40への取引データの送信処理G4を実行する場合と、直下の他の振分ノード50のうちの取引相手のユーザノード40を配下に有する他の振分ノード50への取引データの送信処理G5を実行する場合とがある。G3は、自分がブロック生成以降の処理を主導するので、自ネットワーク内の他のノードはその主導役のノードにはならないため、必ずしも自ネットワーク内の他のノード(ここでは取引相手のユーザノード40)に向けて取引データを送信する必要がない場合である。これに対し、G2は、自分がブロック生成以降の処理を主導するので、自ネットワーク内の他のノードはその主導役のノードにはならないものの、さらに配下のノードに取引データを転送する処理を行う必要があるため、自ネットワーク内の他のノード(ここでは他の振分ノード50)に向けて取引データを送信する必要がある場合である。
すなわち、本第2実施形態の取引記録システム200では、振分ノード50の振分手段51Aは、第1、第2、第3振分層のネットワーク20(20J,20K,20L,20M,20N,20P,20Q)にユーザノード40が配置されることのない完全分離型の場合には、ユーザノード40(図22のT4はあるが、T3はない)、自ネットワークに配置された他の振分ノード(図22のT2)、または直上若しくは直下のネットワークに配置された他の振分ノード50(図22のT1,T5)から取引データを受信した際に、自分の下位の全てのネットワーク(直下のネットワークだけではなく、さらにその下方のネットワークがあれば、それらの全てを含むという意味)からなる配下のネットワークに取引相手のユーザノード40が配置されているときには、直下のネットワークに配置された他の振分ノード50のうちの取引相手のユーザノード40を配下に有する他の振分ノード50に向け(図22のG5)、または取引相手のユーザノード40に向け(図22のG4)、取引データを送信する下り方向送信処理を実行する。
また、振分手段51Aは、自ネットワークに配置された他の振替ノード50の中に取引相手のユーザノード40を配下に有する他の振替ノード50があるときには、当該他の振替ノード50に向け(図22のG2)、取引データを送信するネットワーク内送信処理を実行する。
さらに、振分手段51Aは、配下のネットワークに取引相手のユーザノード40が配置されておらず、かつ、自ネットワークに配置された他の振替ノード50の中に取引相手のユーザノード40を配下に有する他の振替ノード50がないときには、直上のネットワークに配置された自分の直上の他の振分ノード50に向け(図22のG1)、取引データを送信する上り方向送信処理を実行する。
そして、本第2実施形態の取引記録システム200では、振分ノード50の振分手段51Aは、第1、第2、第3振分層のネットワーク20(20J,20K,20L,20M,20N,20P,20Q)にユーザノード40が配置されることのある混在型の場合には、直下のネットワークに配置された直下のユーザノード40(図22のT4)、自ネットワークに配置されたユーザノード(図22のT3)、自ネットワークに配置された他の振分ノード50(図22のT2)、または直上若しくは直下のネットワークに配置された他の振分ノード50(図22のT1,T5)から取引データを受信した際に、取引相手のユーザノード40が自ネットワークに配置されていないときであり、かつ、配下のネットワークに取引相手のユーザノード40が配置されているときには、直下のネットワークに配置された他の振分ノード50のうちの取引相手のユーザノード40を配下に有する他の振分ノード50に向け(図22のG5)、または取引相手のユーザノード40に向け(図22のG4)、取引データを送信する下り方向送信処理を実行する。なお、取引相手のユーザノード40が自ネットワークに配置されているときは、図22のG3の場合であるから、取引データの送信の必要はない。
また、振分手段51Aは、自ネットワークに配置された他の振替ノード50の中に取引相手のユーザノード40を配下に有する他の振替ノード50があるときには、当該他の振替ノード50に向け(図22のG2)、取引データを送信するネットワーク内送信処理を実行する。
さらに、振分手段51Aは、配下のネットワークに取引相手のユーザノード40が配置されておらず、かつ、自ネットワークに配置された他の振替ノード50の中に取引相手のユーザノード40を配下のネットワークに有する他の振替ノード50がないときには、直上のネットワークに配置された自分の直上の他の振分ノード50に向け(図22のG1)、取引データを送信する上り方向送信処理を実行する。
<取引記録システム200による取引データの記録処理の流れ>
このような第2実施形態においては、以下のようにして取引記録システム200により、取引データの記録処理が行われる。
図18において、完全分離型の場合の取引データの送信経路のパターンは、次の通りであり、ノードに付された符号は、図16と対応している。但し、等価なパターンは、記載を省略している。この図18は、第1実施形態の図6に相当するものである。
パターンP3は、アクション層のネットワーク30T内のユーザノード40T(図18中の★印)から、同じネットワーク30T内のユーザノード40Xに至る送信経路である。
パターンP4は、アクション層のネットワーク30T内のユーザノード40T(図18中の★印)から、第3振分層のネットワーク20M内の振分ノード50R、第2振分層のネットワーク20K内の振分ノード50M、第1振分層のネットワーク20J内の振分ノード50J、振分ノード50Kを、第2振分層のネットワーク20L内の振分ノード50Q、第3振分層のネットワーク20Q内の振分ノード50Xをこの順に介して、アクション層のネットワーク30W内のユーザノード40Wに至る送信経路である。
図19において、混在型の場合の取引データの送信経路のパターンは、次の通りであり、ノードに付された符号は、図16と対応している。但し、等価なパターンは、記載を省略している。この図19は、第1実施形態の図7に相当するものである。
パターンM6は、パターンP3と同じであり、アクション層のネットワーク30T内のユーザノード40T(図19中の★印)から、同じネットワーク30T内のユーザノード40Xに至る送信経路である。
パターンM7は、パターンP4と同じであり、アクション層のネットワーク30T内のユーザノード40T(図19中の★印)から、第3振分層のネットワーク20M内の振分ノード50R、第2振分層のネットワーク20K内の振分ノード50M、第1振分層のネットワーク20J内の振分ノード50J、振分ノード50K、第2振分層のネットワーク20L内の振分ノード50Q、第3振分層のネットワーク20Q内の振分ノード50Xをこの順に介して、アクション層のネットワーク30W内のユーザノード40Wに至る送信経路である。
パターンM8は、第1振分層のネットワーク20J内のユーザノード40(図19中の★印、図16には不図示)から、同じネットワーク20J内のユーザノード40(図16には不図示)に至る送信経路である。
パターンM9は、第2振分層のネットワーク20K内のユーザノード40J(図19中の★印)から、同じネットワーク20K内のユーザノード40Kに至る送信経路である。
パターンM10は、アクション層のネットワーク30T内のユーザノード40T(図19中の★印)から、第3振分層のネットワーク20M内の振分ノード50R、第2振分層のネットワーク20K内の振分ノード50Mをこの順に介して、第2振分層のネットワーク20K内のユーザノード40Kに至る送信経路である。
パターンM11は、アクション層のネットワーク30T内のユーザノード40T(図19中の★印)から、第3振分層のネットワーク20M内の振分ノード50R、第2振分層のネットワーク20K内の振分ノード50M、第1振分層のネットワーク20J内の振分ノード50Jをこの順に介して、第1振分層のネットワーク20J内のユーザノード40(図16には不図示)に至る送信経路である。
パターンM11は、アクション層のネットワーク30T内のユーザノード40T(図19中の★印)から、第3振分層のネットワーク20M内の振分ノード50R、第2振分層のネットワーク20K内の振分ノード50M、第1振分層のネットワーク20J内の振分ノード50J、振分ノード50Kをこの順に介して、第2振分層のネットワーク20L内のユーザノード40Mに至る送信経路である。
パターンM12は、第2振分層のネットワーク20K内のユーザノード40J(図19中の★印)から、第1振分層のネットワーク20J内の振分ノード50Jを介して、第1振分層のネットワーク20J内のユーザノード40(図16には不図示)に至る送信経路である。
パターンM13は、第2振分層のネットワーク20K内のユーザノード40J(図19中の★印)から、第1振分層のネットワーク20J内の振分ノード50J、振分ノード50Kをこの順に介して、第2振分層のネットワーク20L内のユーザノード40Mに至る送信経路である。
パターンM14は、第2振分層のネットワーク20K内のユーザノード40J(図19中の★印)から、第1振分層のネットワーク20J内の振分ノード50J、振分ノード50K、第2振分層のネットワーク20L内の振分ノード50Q、第3振分層のネットワーク20Q内の振分ノード50Xをこの順に介して、アクション層のネットワーク30W内のユーザノード40Wに至る送信経路である。
パターンM15は、第1振分層のネットワーク20J内のユーザノード40(図19中の★印、図16には不図示)から、第1振分層のネットワーク20J内の振分ノード50Kを介して、第2振分層のネットワーク20L内のユーザノード40Mに至る送信経路である。
パターンM16は、第1振分層のネットワーク20J内のユーザノード40(図19中の★印、図16には不図示)から、第1振分層のネットワーク20J内の振分ノード50K、第2振分層のネットワーク20L内の振分ノード50Q、第3振分層のネットワーク20Q内の振分ノード50Xをこの順に介して、アクション層のネットワーク30W内のユーザノード40Wに至る送信経路である。
パターンM17は、第2振分層のネットワーク20L内のユーザノード40L(図19中の★印)から、第2振分層のネットワーク20L内の振分ノード50Q、第3振分層のネットワーク20Q内の振分ノード50Xをこの順に介して、アクション層のネットワーク30W内のユーザノード40Wに至る送信経路である。
図20には、以上のような各種のパターンの送信経路で取引データを送信する場合における、個々の振分ノード50での処理の流れが示されている。なお、個々のユーザノード40での処理の流れは、前記第1実施形態の図8に示した処理の流れと同じである。
図20において、振替ノード50は、取引データ(原要求)を受信した場合には(ステップS41)、振分手段51Aにより、自ネットワーク20内に、送金先(取引相手)のユーザノード40が配置されているか否かを判断する(ステップS42)。このステップS42の処理は、第1、第2、第3振分層のネットワーク20(20J,20K,20L,20M,20N,20P,20Q)にユーザノード40が配置されることのある混在型の場合のみの処理であり、完全分離型の場合は、自ネットワーク20内に、送金先(取引相手)のユーザノード40が配置されることはない。
ステップS42で、送金先(取引相手)のユーザノード40が配置されていないと判断した場合には、振分手段51Aにより、配下のネットワーク(直下のネットワークだけではなく、その下方のネットワークがあれば、それらのネットワークも含む。)に、送金先(取引相手)のユーザノード40が配置されているか否かを判断する(ステップS43)。
ステップS43で、配下のネットワークに、送金先(取引相手)のユーザノード40が配置されていないと判断した場合には、振分手段51Aにより、自ネットワーク20に配置された他の振替ノード50の中に、送金先(取引相手)のユーザノード40を配下に有する他の振替ノード50があるか否かを判断する(ステップS44)。
ステップS44で、送金先(取引相手)のユーザノード40を配下に有する他の振替ノード50がないと判断された場合には、振分手段51Aにより、直上のネットワーク20に配置された自分の直上の他の振分ノード50に向け(図22のG1)、取引データ(原要求)を送信する上り方向送信処理を実行する(ステップS45)。
続いて、ブロック追加手段51Bにより、取引データ(ノードの識別情報の置換を行った取引データ)を含むブロックの生成のための処理を実行する(ステップS46)。この場合は、送金元の識別情報は、自分(振替ノード50)の識別情報であり、送金先の識別情報は、取引データ(原要求)の送信先の振替ノード50の識別情報である。
一方、ステップS44で、自ネットワーク20内に、送金先(取引相手)のユーザノード40を配下に有する他の振替ノード50があると判断された場合には、振分手段51Aにより、当該他の振替ノード50に向け(図22のG2)、取引データ(原要求)を送信するネットワーク内送信処理を実行する(ステップS47)。そして、前述したステップS46に進む。
また、ステップS43で、配下のネットワークに、送金先(取引相手)のユーザノード40が配置されていると判断した場合には、直下のネットワークに配置された他の振分ノード50のうちの取引相手のユーザノード40を配下に有する他の振分ノード50に向け(図22のG5)、または取引相手のユーザノード40に向け(図22のG4)、取引データ(原要求)を送信する下り方向送信処理を実行する(ステップS48)。
続いて、ブロック追加手段51Bにより、取引データ(ノードの識別情報の置換を行った取引データ)を含むブロックの生成のための処理を実行する(ステップS49)。この場合は、送金元の識別情報は、取引データ(原要求)の送信元の振替ノード50の識別情報であり、送金先の識別情報は、自分(振替ノード50)の識別情報である。但し、前述した他ノード主導ケースの場合(図22のT2,T3)は、このステップS49の処理を行う必要はない。
また、ステップS42で、自ネットワーク20内に、送金先(取引相手)のユーザノード40が配置されていると判断した場合は、図22のG3の場合であるから、振分手段51Aによる取引データ(原要求)の送信の必要はないので(但し、送信してもよい。)、ブロック追加手段51Bにより、取引データ(ノードの識別情報の置換を行った取引データ)を含むブロックの生成のための処理を実行する(ステップS50)。この場合は、送金元の識別情報は、自分(振替ノード50)の識別情報であり、送金先の識別情報は、取引相手のユーザノード40の識別情報である。
その後、ブロック追加手段51Bにより、生成したブロックの承認のための処理を実行し(ステップS51)、さらに、生成・承認されたブロックを自ネットワーク20内の各ノードに保存するための処理を実行する(ステップS52)。但し、前述した他ノード主導ケースの場合(図22のT2,T3)は、これらのステップS51,S52の処理を行う必要はない。
図23〜図29には、図19に示された取引データの送信経路のパターンに、前記第1実施形態の図8に示されたユーザノード40による処理の流れ(ステップS1〜S8)および上述した図20に示された振分ノード50による処理の流れ(ステップS41〜S52)を嵌め込んだ状態の送金処理の全体的な流れが示されている。
図23および図24は、図19を用いて説明したパターンM7の送信経路で取引データ(原要求)が送られていく場合の例であり、アクション層のネットワーク30T内のユーザノード40Tから、第3振分層のネットワーク20M内の振分ノード50R、第2振分層のネットワーク20K内の振分ノード50M、第1振分層のネットワーク20J内の振分ノード50J、振分ノード50K、第2振分層のネットワーク20L内の振分ノード50Q、第3振分層のネットワーク20Q内の振分ノード50Xをこの順に介して、アクション層のネットワーク30W内のユーザノード40Wに至る送信経路の場合の送金処理の流れであり、詳細は、図示の通りである。図23中および図24中のS1〜S8の符号は、図8中のステップ番号を示し、図23中および図24中のS41〜S52の符号は、図20中のステップ番号を示している。この場合、ブロック内に格納される取引データ(置換を含む。)は、「送金元:ユーザノード40T⇒送金先:振分ノード50R」、「送金元:振分ノード50R⇒送金先:振分ノード50M」、「送金元:振分ノード50M⇒送金先:振分ノード50J」、「送金元:振分ノード50J⇒送金先:振分ノード50K」、「送金元:振分ノード50K⇒送金先:振分ノード50Q」、「送金元:振分ノード50Q⇒送金先:振分ノード50X」、「送金元:振分ノード50X⇒送金先:ユーザノード40W」という順番になっているので、形式的には、取引データ(原要求)である「送金元:ユーザノード40T⇒送金先:ユーザノード40W」という送金(取引)を実現するために、ノードからノードへと次々にリレーのような送金が行われたことになる。以下の他の例でも同様である。
なお、他のノードへの取引データ(原要求)の送信処理と、自分が主導する自ネットワーク内でのブロック追加処理(ブロックの生成・承認・共有記憶のための処理)とを逆の処理順とし、少なくとも承認が済んでから、他のノードへの取引データ(原要求)の送信処理を行うようにしてもよいが、承認に時間がかかる場合には、図示の通りの順番で、他のノードへの取引データ(原要求)の送信処理を先に行うことが好ましい。以下の他の例でも同様である。
図25は、アクション層のネットワークのユーザから、異なるアクション層のネットワークのユーザへの送金という点では、図19を用いて説明したパターンM7と略等価な送信経路で取引データ(原要求)が送られていく場合の例であり、アクション層のネットワーク30S内のユーザノード40Sから、第2振分層のネットワーク20K内の振分ノード50L、振分ノード50M、第3振分層のネットワーク20M内の振分ノード50Rをこの順に介して、アクション層のネットワーク30T内のユーザノード40Tに至る送信経路の場合の送金処理の流れであり、詳細は、図示の通りである。
図26は、振分層のネットワークのユーザから、異なる振分層のネットワークのユーザへの送金であり、かつ、上ってから下るという点では、図19を用いて説明したパターンM13と等価な送信経路で取引データ(原要求)が送られていく場合の例であり、第2振分層のネットワーク20K内のユーザノード40Kから、第1振分層のネットワーク20J内の振分ノード50J、振分ノード50Kをこの順に介して、第2振分層のネットワーク20L内のユーザノード40Lに至る送信経路の場合の送金処理の流れであり、詳細は、図示の通りである。
図27は、図19を用いて説明したパターンM9と等価な送信経路で取引データ(原要求)が送られていく場合の例であり、第2振分層のネットワーク20L内のユーザノード40Lから、同じネットワーク20L内のユーザノード40Mに至る送信経路の場合の送金処理の流れであり、詳細は、図示の通りである。この場合には、同じネットワーク20L内の取引相手のユーザノード40Mには、取引データ(原要求)の送信処理は行っていないので、取引相手のユーザノード40Mがネットワーク20L内でのブロック追加処理(ブロックの生成・承認・共有記憶のための処理)を主導することはないが、取引相手のユーザノード40Mも、ネットワーク20Lに参加しているため、取引相手のユーザノード40Mにおけるブロックの保存処理(図27の処理フローに記載されない処理)は行われる。
図28は、アクション層のネットワークのユーザから、振分層のネットワークのユーザまで上っていくという点では、図19を用いて説明したパターンM10と等価な送信経路で取引データ(原要求)が送られていく場合の例であり、アクション層のネットワーク30S内のユーザノード40Sから、第2振分層のネットワーク20K内の振分ノード50Lを介して、第2振分層のネットワーク20K内のユーザノード40Kに至る送信経路の場合の送金処理の流れであり、詳細は、図示の通りである。
図29は、振分層のネットワークのユーザから、アクション層のネットワークのユーザまで下がっていくという点では、図19を用いて説明したパターンM17と等価な送信経路で取引データ(原要求)が送られていく場合の例であり、第2振分層のネットワーク20K内のユーザノード40Kから、第2振分層のネットワーク20K内の振分ノード50Lを介して、アクション層のネットワーク30S内のユーザノード40Sに至る送信経路の場合の送金処理の流れであり、詳細は、図示の通りである。
<第2実施形態の効果>
このような第2実施形態によれば、前記第1実施形態の場合と同様に、各ノード40,50,60は、自ネットワーク以外のネットワーク内での取引データ(自ネットワーク以外のネットワーク内で取引が完結した場合の取引データ)や、自ネットワークを経由していない取引データ(自ネットワーク以外のネットワークのみを経由した取引データ)については、保有しなくてよいので、各ノード40,50,60が保有するデータ量を少なくすることができる。そして、本第2実施形態では、振分層が複数階層からなるので、前記第1実施形態の場合に比べ、各ノード40,50,60の保有データ量を、より一層少なくすることができるため、各ノード40,50,60の容量逼迫の問題を、より効果的に解消または軽減することができる。
また、前記第1実施形態の場合と同様に、同一のネットワークに配置された各ノードにより形成されたグループでは、いずれのグループにおいても、そのグループの全参加者(全ノード)が取引履歴を保有(共有状態で記憶)するため、既存のブロックチェーン技術が持つ「改ざんしにくい」という特性の損失を少なくすることができる。
さらに、前記第1実施形態の場合と同様に、ユーザノード40のブロック追加手段41D、および振分ノード50のブロック追加手段51Bは、ブロックに取引データを格納する際に、原要求の取引データのままではなく、振分ノードの識別情報を使った置換処理を行う構成とされているので、アクションを起こしたユーザノード40から取引相手のユーザノード40へ金銭やポイント等の価値を送信する場合に、形式上、ノードからノードへと次々に金銭やポイント等の価値をリレーしていった形態をとることができる。
そして、前記第1実施形態の場合と同様に、ユーザノード40は、配置変更手段41Eを備え、振分ノード50は、配置変更支援手段51Cを備えているので、ユーザノード40の識別情報を変更することなく、ユーザノード40が配置されるネットワークを、異なるネットワークに変更することができる。すなわち、所属ネットワークを移動させるユーザノード40について、新しい識別番号を付与しなくても、配置変更を実現することができる。
また、前記第1実施形態の場合と同様に、配置変更用ノードを、ユーザノード40ではなく、振分ノード50の中から選択するので、配置変更に係るユーザノード40を操作するユーザ以外のユーザの残高が、配置変更に伴って不自然に増減する事態を回避することができる。そして、配置変更用ノードを、振分ノード50の中から選択するので、通常の取引の処理を利用して配置変更を実現することができる。
[変形の形態]
なお、本発明は前記各実施形態に限定されるものではなく、本発明の目的を達成できる範囲内での変形等は本発明に含まれるものである。
例えば、前記各実施形態では、アクションを起こすユーザノード40から、取引相手のユーザノード40への送金等の取引に関する処理を行う際には、取引データ(原要求)が、配置情報(前記第1実施形態の図1や前記第2実施形態の図16のツリー構造)により定まる送信経路上を、アクションを起こすユーザノード40から取引相手のユーザノード40に向かって進むようにしていた。しかし、このような順方向送信処理だけではなく、逆進処理も行う次のような構成としてもよい。
すなわち、図30に示すように、アクションを起こすユーザノード40が、自ネットワーク以外のネットワークに配置された取引相手のユーザノード40に対して取引データ(原要求)を直接に送信することができる場合には、アクションを起こすユーザノード40は、配置情報で定まる取引相手のユーザノード40までの送信経路上の振分ノード50のうち自分に最も近い位置の振分ノード50に向けて取引データ(原要求)を送信する順方向送信処理(前記各実施形態で行っていた処理)と併せ、取引相手のユーザノード40に取引データ(原要求)を直接に送信する直接送信処理を実行する。
次に、取引相手のユーザノード40は、アクションを起こすユーザノード40から直接送信処理により送信されてくる取引データ(原要求)を直接に受信した場合には、送信経路上の振分ノード50およびネットワークを逆方向に進むように取引データ(原要求)を送信する逆進処理(図30中の点線)を実行する。
順方向送信処理による取引データ(原要求)と、逆進処理による取引データ(原要求)とは、それぞれ送信経路上の中間に位置する予め定められた振分ノード50やネットワークまで送信されるか、または、取引データ(原要求)に付帯する突合位置情報(どこまで担当するのかの情報)により指定される送信経路上の振分ノード50やネットワークまで送信されるようにすればよい。図30の例では、最上層の振分層であるネットワーク20内での取引データ(ノードの識別情報の置換を含む。)の記録については、順方向送信処理が担当し、逆進処理は関与していない。要するに、順方向送信処理の担当分(図30中の●印)についての振分ノード50やネットワークと、逆進処理の担当分(図30中の★印)についての振分ノード50やネットワークとが、重ならないように定めておけばよい。
このように順方向送信処理、および逆進処理を行う構成とした場合には、取引相手のユーザノード40までの送信経路上の各ネットワーク20,30に配置された各ノード40,50,60でのブロックの生成、承認、保存(共有状態での記憶)のための処理を、全体として早期に完了させることができる。特に、送信経路上の振分ノード50やネットワーク20,30の数が多いときには、顕著な効果を得ることができる。
以上のように、本発明の取引記録システムおよびプログラムは、例えば、金銭、ポイント、有価証券、債権債務、資産、労働力、コンテンツ等のような価値についての送金、決済、貯蓄、分配、付与、交換、移動、消費、貸借、売買、権利行使、義務履行等や、契約、コミュニケーション、IoT(インターネット・オヴ・スィングズ)等の各種データの送受信などに用いるのに適している。
10,200 取引記録システム
20(20J,20K,20L,20M,20N,20P,20Q) 振分層のネットワーク
30(30A,30B,30C,30S,30T,30U,30V,30W) アクション層のネットワーク
40(40A,40B,40C,40D,40E,40F,40J,40K,40L,40M,40S,40T,40W) ユーザノード
41A 相手位置判断手段
41B 引渡手段
41C 受取手段
41D ブロック追加手段
41E 配置変更手段
43 配置情報記憶手段
44 ブロック記憶手段
50(50A,50B,50C,50J,50K,50L,50M,50N,50P,50Q,50R,50S,50T,50U,50V,50W,50X,50Y) 振分ノード
51A 振分手段
51B ブロック追加手段
51C 配置変更支援手段
53 配置情報記憶手段
54 ブロック記憶手段
60 メモリノード

Claims (8)

  1. ユーザ間の取引データを記録する複数のコンピュータにより構成された取引記録システムであって、
    階層化された複数のネットワークと、これらの複数のネットワークの各々について少なくとも1つのノードが配置される状態で前記複数のネットワークに接続された複数のノードとを備え、
    前記複数のノードには、取引の当事者となり得るユーザが操作するユーザノードと、各ユーザノードが前記複数のネットワークのうちのいずれに配置されているか並びに前記複数のネットワークの上下関係若しくはこれに代わるノードの上下関係を示す配置情報に従って前記取引データを取引相手のユーザノードに向けて送信する振分ノードとが含まれ、
    前記複数のネットワークのうちの最下層のネットワークには、少なくとも1つの前記ユーザノードが配置され、
    前記複数のネットワークのうちの最下層以外のネットワークには、少なくとも1つの前記振分ノードが配置され、
    前記ユーザノードは、
    自分が配置されている自ネットワークに前記取引相手のユーザノードも配置されている場合の自ネットワーク内での取引データについては、自ネットワークに配置された他のノードおよび自分で共有して記憶し、
    前記取引相手のユーザノードが自ネットワークとは異なるネットワークに配置されている場合の複数のネットワーク間に跨る取引データについては、前記配置情報で定まる前記取引相手のユーザノードまでの送信経路上の振分ノードのうち自分に最も近い位置の振分ノードに向けて送信するとともに、自ネットワークに配置された他のノードおよび自分で共有して記憶する構成とされ、
    前記振分ノードは、
    前記ユーザノードまたは他の振分ノードから受信した前記取引データを、前記取引相手のユーザノードに向け、または前記配置情報で定まる前記取引相手のユーザノードまでの送信経路上の他の振分ノードのうち自分に最も近い位置の他の振分ノードに向けて送信するとともに、自ネットワークを経由した取引データを、自ネットワークに配置された他のノードおよび自分で共有して記憶する構成とされている
    ことを特徴とする取引記録システム。
  2. 前記ユーザノードは、
    自分が有する配置情報記憶手段に記憶されている前記配置情報を用いるか、前記配置情報を記憶する配置情報記憶手段を有する他のノード若しくは他のシステムへの問合せによるか、配置情報取得アルゴリズムにより求めた前記配置情報によるか、または前記取引相手のユーザノードに該当するか否かについての自ネットワーク内の他のノードへの問合せにより、自ネットワークに、前記取引相手のユーザノードが配置されているか否かを判断する処理を実行する相手位置判断手段と、
    この相手位置判断手段により前記取引相手のユーザノードが自ネットワークに配置されていないと判断した場合に、前記配置情報に従って決定した前記取引相手のユーザノードまでの送信経路上の振分ノードのうち自分に最も近い位置の振分ノードに向け、前記取引データを送信する処理を実行する引渡手段と、
    前記取引相手のユーザノードとして、前記振分ノードから前記取引データを受信する処理を実行する受取手段と、
    前記相手位置判断手段により前記取引相手のユーザノードが自ネットワークに配置されていると判断した場合、または前記受取手段により前記取引データを受信した場合に、前記取引データを含むブロックを生成し、生成したブロックを自ネットワーク内で承認して自ネットワークに配置された他のノードおよび自分で共有して記憶するためのブロック追加処理を実行するブロック追加手段と、
    このブロック追加手段により生成および承認された前記ブロックを記憶するブロック記憶手段とを含んで構成され、
    前記振分ノードは、
    前記ユーザノードまたは他の振分ノードから前記取引データを受信した場合に、自分が有する配置情報記憶手段に記憶されている前記配置情報を用いるか、前記配置情報を記憶する配置情報記憶手段を有する他のノード若しくは他のシステムへの問合せによるか、配置情報取得アルゴリズムにより求めた前記配置情報によるか、前記取引相手のユーザノードを配下に有する振分ノードに該当するか否かについての自ネットワーク内の他のノードへの問合せによるか、または前記取引相手のユーザノードに該当するか否かについての自ネットワーク内の他のノードへの問合せにより、前記取引データを振り分けて送信する送信先のノードを決定し、前記取引相手のユーザノードに向け、または前記取引相手のユーザノードまでの送信経路上の他の振分ノードのうち自分に最も近い位置の他の振分ノードに向け、前記取引データを送信する処理を実行する振分手段と、
    前記ユーザノードまたは他の振分ノードから受信した前記取引データを含むブロックを生成し、生成したブロックを自ネットワーク内で承認して自ネットワークに配置された他のノードおよび自分で共有して記憶するためのブロック追加処理を実行するブロック追加手段と、
    このブロック追加手段により生成および承認された前記ブロックを記憶するブロック記憶手段とを含んで構成されている
    ことを特徴とする請求項1に記載の取引記録システム。
  3. 前記ユーザノードの前記引渡手段は、
    (1)前記最下層以外のネットワークが1階層であり、かつ、前記最下層以外のネットワークに前記ユーザノードが配置されることのない場合には、
    前記ユーザノードの前記相手位置判断手段により前記取引相手のユーザノードが自ネットワークに配置されていないと判断したときに、自分の上位のネットワークに配置された自分の上位の振分ノードに向け、前記取引データを送信する処理を実行し、
    (2)前記最下層以外のネットワークが1階層であり、かつ、前記最下層以外のネットワークに前記ユーザノードが配置されることのある場合には、
    前記ユーザノードの前記相手位置判断手段により前記取引相手のユーザノードが自ネットワークに配置されていないと判断したときに、自分の上位のネットワークに配置された自分の上位の振分ノードに向け、または自ネットワークに配置された振分ノードのうちの前記取引相手のユーザノードを配下に有する振分ノードに向け、前記取引データを送信する処理を実行し、
    (3)前記最下層以外のネットワークが複数階層であり、かつ、前記最下層以外のネットワークに前記ユーザノードが配置されることのない場合には、
    前記ユーザノードの前記相手位置判断手段により前記取引相手のユーザノードが自ネットワークに配置されていないと判断したときに、自分の直上のネットワークに配置された自分の直上の振分ノードに向け、前記取引データを送信する処理を実行し、
    (4)前記最下層以外のネットワークが複数階層であり、かつ、前記最下層以外のネットワークに前記ユーザノードが配置されることのある場合には、
    前記ユーザノードの前記相手位置判断手段により前記取引相手のユーザノードが自ネットワークに配置されていないと判断したときに、自分の直上のネットワークに配置された自分の直上の振分ノードに向け、または自ネットワークに配置された振分ノードのうちの前記取引相手のユーザノードを配下に有する振分ノードに向け、前記取引データを送信する処理を実行する構成とされ、
    前記振分ノードの前記振分手段は、
    (1)前記最下層以外のネットワークが1階層であり、かつ、前記最下層以外のネットワークに前記ユーザノードが配置されることのない場合には、
    前記ユーザノードから前記取引データを受信した際に、自ネットワークに配置された他の振替ノードのうちの前記取引相手のユーザノードを配下に有する他の振替ノードに向け、前記取引データを送信するネットワーク内送信処理を実行するとともに、
    自ネットワークに配置された他の振替ノードから前記取引データを受信した際に、下位のネットワークに配置された前記取引相手のユーザノードに向け、前記取引データを送信する下り方向送信処理を実行する構成とされ、
    (2)前記最下層以外のネットワークが1階層であり、かつ、前記最下層以外のネットワークに前記ユーザノードが配置されることのある場合には、
    下位のネットワークに配置された自分の下位の前記ユーザノードから前記取引データを受信した際に、前記取引相手のユーザノードが自ネットワークに配置されていないときには、自ネットワークに配置された他の振替ノードのうちの前記取引相手のユーザノードを配下に有する振替ノードに向け、前記取引データを送信するネットワーク内送信処理を実行するとともに、
    自ネットワークに配置された他の振替ノードまたは自ネットワークに配置された前記ユーザノードから前記取引データを受信した際に、下位のネットワークに配置された前記取引相手のユーザノードに向け、前記取引データを送信する下り方向送信処理を実行する構成とされ、
    (3)前記最下層以外のネットワークが複数階層であり、かつ、前記最下層以外のネットワークに前記ユーザノードが配置されることのない場合には、
    前記ユーザノード、自ネットワークに配置された他の振分ノード、または直上若しくは直下のネットワークに配置された他の振分ノードから前記取引データを受信した際に、
    自分の下位の全てのネットワークからなる配下のネットワークに前記取引相手のユーザノードが配置されているときには、直下のネットワークに配置された他の振分ノードのうちの前記取引相手のユーザノードを配下に有する他の振分ノードに向け、または前記取引相手のユーザノードに向け、前記取引データを送信する下り方向送信処理を実行し、
    自ネットワークに配置された他の振替ノードの中に前記取引相手のユーザノードを配下に有する他の振替ノードがあるときには、当該他の振替ノードに向け、前記取引データを送信するネットワーク内送信処理を実行し、
    配下のネットワークに前記取引相手のユーザノードが配置されておらず、かつ、自ネットワークに配置された他の振替ノードの中に前記取引相手のユーザノードを配下に有する他の振替ノードがないときには、直上のネットワークに配置された自分の直上の他の振分ノードに向け、前記取引データを送信する上り方向送信処理を実行する構成とされ、
    (4)前記最下層以外のネットワークが複数階層であり、かつ、前記最下層以外のネットワークに前記ユーザノードが配置されることのある場合には、
    直下のネットワークに配置された直下の前記ユーザノード、自ネットワークに配置された前記ユーザノード、自ネットワークに配置された他の振分ノード、または直上若しくは直下のネットワークに配置された他の振分ノードから前記取引データを受信した際に、前記取引相手のユーザノードが自ネットワークに配置されていないときであり、かつ、
    配下のネットワークに前記取引相手のユーザノードが配置されているときには、直下のネットワークに配置された他の振分ノードのうちの前記取引相手のユーザノードを配下に有する他の振分ノードに向け、または前記取引相手のユーザノードに向け、前記取引データを送信する下り方向送信処理を実行し、
    自ネットワークに配置された他の振替ノードの中に前記取引相手のユーザノードを配下に有する他の振替ノードがあるときには、当該他の振替ノードに向け、前記取引データを送信するネットワーク内送信処理を実行し、
    配下のネットワークに前記取引相手のユーザノードが配置されておらず、かつ、自ネットワークに配置された他の振替ノードの中に前記取引相手のユーザノードを配下のネットワークに有する他の振替ノードがないときには、直上のネットワークに配置された自分の直上の他の振分ノードに向け、前記取引データを送信する上り方向送信処理を実行する構成とされている
    ことを特徴とする請求項2に記載の取引記録システム。
  4. 前記ユーザノードの前記ブロック追加手段は、
    前記ユーザノードの前記ブロック記憶手段に記憶させる前記ブロックを生成する際には、同一のネットワークに配置された前記ユーザノード間の取引については、取引の当事者の双方のユーザノードの識別情報を含む前記取引データを用い、
    異なるネットワークに配置された前記ユーザノード間の取引については、取引の当事者の一方のユーザノードの識別情報、および前記取引データの送受信に関与した前記振分ノードの識別情報を含む前記取引データを用いて、前記ブロックを生成するための処理を実行する構成とされ、
    前記振分ノードの前記ブロック追加手段は、
    前記振分ノードの前記ブロック記憶手段に記憶させる前記ブロックを生成する際には、前記取引データの送受信に関与した自分の識別情報、および送受信の相手の他の振分ノード若しくは前記取引相手のユーザノードの識別情報を用いて、前記ブロックを生成するための処理を実行する構成とされている
    ことを特徴とする請求項2または3に記載の取引記録システム。
  5. 前記ユーザノードは、
    現在配置されているネットワークから異なるネットワークへの配置変更をする処理を実行する配置変更手段を備え、
    前記振分ノードは、
    前記ユーザノードの配置変更を支援する処理を実行する配置変更支援手段を備え、
    前記ユーザノードの前記配置変更手段または前記振分ノードの前記配置変更支援手段は、前記配置変更に伴って、全てのノード若しくは一部のノードまたは他のシステムが有する配置情報記憶手段に記憶されている前記配置情報について、前記ユーザノードが移動元のネットワークに配置されている状態から移動先のネットワークに配置されている状態に変更する配置情報更新処理を実行する構成とされ、
    前記ユーザノードの前記配置変更手段は、
    ユーザによる移動先のネットワークの入力を受け付け、自分が現在配置されている移動元のネットワークの直上の振分ノードから移動先のネットワークの直上の振分ノードまでの送信経路上の任意の振分ノードまたは全ての振分ノードのうちの任意の振分ノードを配置変更用ノードとして選択し、自分が有する残高記憶手段に記憶されている当該ユーザの残高、当該ユーザのユーザノードの識別情報を用いて他のシステムに設けられた残高記憶手段から取得した当該ユーザの残高、自分が記憶している取引データに含まれる当該ユーザの残高、または自分が記憶している取引データを用いて算出される当該ユーザの残高、並びに、送信先となる前記配置変更用ノードの識別情報を含む配置変更アクション用の取引データを生成し、前記配置情報記憶手段に記憶されている移動前の状態の配置情報に従って決定した送信経路で、生成した前記配置変更アクション用の取引データを、前記配置変更用ノードに向けて送信する処理を実行し、
    その後、前記配置情報更新処理を経て、移動先のネットワークに配置された移動後の状態で、前記配置変更用ノードから送信されてくる配置変更リターン用の取引データを受信する処理を実行する構成とされ、
    前記振分ノードの前記配置変更支援手段は、
    前記配置変更アクション用の取引データを受信した場合に、受信した前記配置変更アクション用の取引データに含まれている当該ユーザの残高、および送信先となる配置変更に係る前記ユーザノードの識別情報を含む前記配置変更リターン用の取引データを生成し、前記配置情報更新処理を経て前記配置情報記憶手段に記憶されている移動後の状態の配置情報に従って決定した送信経路で、生成した前記配置変更リターン用の取引データを、移動先のネットワークに配置された前記ユーザノードに向けて送信する処理を実行する構成とされている
    ことを特徴とする請求項1〜4のいずれかに記載の取引記録システム。
  6. 前記ユーザノードは、
    自ネットワーク以外のネットワークに配置された前記取引相手のユーザノードに対して前記取引データを直接に送信することができる場合には、アクションを起こすユーザノードとして、前記配置情報で定まる前記取引相手のユーザノードまでの送信経路上の振分ノードのうち自分に最も近い位置の振分ノードに向けて前記取引データを送信する順方向送信処理と併せ、前記取引相手のユーザノードに前記取引データを直接に送信する直接送信処理を実行し、
    前記取引相手のユーザノードとして、前記アクションを起こすユーザノードから前記直接送信処理により送信されてくる前記取引データを直接に受信した場合には、前記送信経路上の振分ノードおよびネットワークを逆方向に進むように前記取引データを送信する逆進処理を実行する構成とされ、
    前記順方向送信処理による前記取引データと前記逆進処理による前記取引データとは、それぞれ前記送信経路上の中間に位置する予め定められた振分ノードまたはネットワークまで送信されるか、または、前記取引データに付帯する突合位置情報により指定される前記送信経路上の振分ノードまたはネットワークまで送信されるようになっている
    ことを特徴とする請求項1〜5のいずれかに記載の取引記録システム。
  7. 請求項1〜6のいずれかに記載の取引記録システムを構成するユーザノードとして、コンピュータを機能させるためのプログラム。
  8. 請求項1〜6のいずれかに記載の取引記録システムを構成する振分ノードとして、コンピュータを機能させるためのプログラム。
JP2016204628A 2016-10-18 2016-10-18 取引記録システムおよびプログラム Active JP6274680B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016204628A JP6274680B1 (ja) 2016-10-18 2016-10-18 取引記録システムおよびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016204628A JP6274680B1 (ja) 2016-10-18 2016-10-18 取引記録システムおよびプログラム

Publications (2)

Publication Number Publication Date
JP6274680B1 true JP6274680B1 (ja) 2018-02-07
JP2018067108A JP2018067108A (ja) 2018-04-26

Family

ID=61158285

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016204628A Active JP6274680B1 (ja) 2016-10-18 2016-10-18 取引記録システムおよびプログラム

Country Status (1)

Country Link
JP (1) JP6274680B1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110740158A (zh) * 2018-07-18 2020-01-31 株式会社电装 历史管理方法以及历史管理装置
CN111324633A (zh) * 2020-02-18 2020-06-23 杭州复杂美科技有限公司 一种区块链交易分布式缓存方法和系统、设备及存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210003234A (ko) * 2018-04-27 2021-01-11 엔체인 홀딩스 리미티드 분할된 블록체인 네트워크에서 블록체인의 블록을 유지하는 것
JP7056430B2 (ja) 2018-07-18 2022-04-19 株式会社デンソー 履歴管理方法、履歴管理装置及び履歴管理システム
JP6860045B2 (ja) * 2019-08-02 2021-04-14 富士通株式会社 通信装置、通信方法、および、通信プログラム
WO2023127530A1 (ja) * 2021-12-28 2023-07-06 京セラ株式会社 システム、ノード、及びプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011171804A (ja) * 2010-02-16 2011-09-01 Mitsubishi Electric Corp ネットワークシステム及び経路検索方法
JP2016015144A (ja) * 2000-10-25 2016-01-28 トムソン・フィナンシャル・インコーポレイテッド 商業的な取引のために用いられるのに適合した方法
JP5858506B1 (ja) * 2015-04-09 2016-02-10 株式会社Orb 仮想通貨管理プログラム、及び仮想通貨管理方法
JP2016081134A (ja) * 2014-10-10 2016-05-16 山下 健一 広告閲覧促進システム、情報処理方法及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016015144A (ja) * 2000-10-25 2016-01-28 トムソン・フィナンシャル・インコーポレイテッド 商業的な取引のために用いられるのに適合した方法
JP2011171804A (ja) * 2010-02-16 2011-09-01 Mitsubishi Electric Corp ネットワークシステム及び経路検索方法
JP2016081134A (ja) * 2014-10-10 2016-05-16 山下 健一 広告閲覧促進システム、情報処理方法及びプログラム
JP5858506B1 (ja) * 2015-04-09 2016-02-10 株式会社Orb 仮想通貨管理プログラム、及び仮想通貨管理方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110740158A (zh) * 2018-07-18 2020-01-31 株式会社电装 历史管理方法以及历史管理装置
CN110740158B (zh) * 2018-07-18 2024-03-01 株式会社电装 历史管理方法以及历史管理装置
CN111324633A (zh) * 2020-02-18 2020-06-23 杭州复杂美科技有限公司 一种区块链交易分布式缓存方法和系统、设备及存储介质

Also Published As

Publication number Publication date
JP2018067108A (ja) 2018-04-26

Similar Documents

Publication Publication Date Title
JP6274680B1 (ja) 取引記録システムおよびプログラム
Wang et al. Flash: efficient dynamic routing for offchain networks
AU2020205231B2 (en) Methods and apparatus for efficiently implementing a distributed database within a network
Vimal et al. A new cluster P2P file sharing system based on IPFS and blockchain technology
KR102432731B1 (ko) 네트워크 내의 분산 데이터베이스를 위한 방법 및 장치
CN107733855A (zh) 一种可同时支持公有链、联盟链及私有链的区块链系统及应用方法
WO2018224954A1 (en) Computer-Implemented System and Method for Managing Transactions Over a Blockchain Network
US20230109969A1 (en) Data processing method and apparatus based on node internal memory, device and medium
JP6296630B1 (ja) 分散型台帳システムおよびプログラム
WO2021227706A1 (zh) 数据处理方法、装置、计算机设备以及存储介质
Hao et al. BlockP2P: Enabling fast blockchain broadcast with scalable peer-to-peer network topology
CN108616394A (zh) 一种虚拟网络功能备份和部署方法
Thyfronitis Litos et al. Trust is risk: a decentralized financial trust platform
Han et al. Social butterfly: Social caches for distributed social networks
CN110956463B (zh) 基于可扩展分布式查询系统的可信存证方法与系统
Vu et al. An efficient peer-to-peer bitcoin protocol with probabilistic flooding
CN114124384A (zh) 一种qkd网络的虚拟化方法及量子密钥云平台
CN114677218A (zh) 一种基于支付结的链下交易方法
Du et al. Biecs: A blockchain-based intelligent edge cooperation system for latency-sensitive services
Coutinho et al. Enabling Blockchain Scalability and Interoperability with Mobile Computing through LayerOne. X
Nallakannu et al. PSO‐based optimal peer selection approach for highly secure and trusted P2P system
Lin et al. A Mechanism design solution for DTN routing
Guo et al. Improving transaction succeed ratio in payment channel networks via enhanced node connectivity and balanced channel capacity
CN101369915A (zh) 可运营p2p网络资源管理系统
Yuan et al. AME Blockchain: An Architecture Design for Closed-Loop Fluid Economy Token System

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171228

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180105

R150 Certificate of patent or registration of utility model

Ref document number: 6274680

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250