(57)【要約】【課題】ローカルネットワークに接続された端末であっても、グローバルIPアドレスを有する装置にのみ許されるデータ処理を行えるようにする。【解決手段】グローバルネットワークに接続されたグローバルＩＰアドレスを有するサーバ装置と、グローバルネットワークに接続する中継装置の配下に設けられ、ローカルネットワークに接続されているクライアント端末と、を有するデータ処理システムにおいて、サーバ装置に対してポートフォワード設定とSocks Proxy設定を行い、ポートフォワードによりサーバ装置からデータを受信すると所定の処理を行って、サーバ装置へ送信する制御部を有するクライアント端末と、ポートフォワード設定で設定されたポート番号でデータを受信した場合、クライアント端末へデータを送信し、クライアント端末から処理されたデータを受信する制御部を有するサーバ装置と、を有するデータ処理システム。【選択図】図１
2020204991.tif 000002
【特許請求の範囲】
【請求項１】
グローバルネットワークに接続されたグローバルＩＰアドレスを有するサーバ装置と、
前記グローバルネットワークに接続する中継装置の配下に設けられ、ローカルネットワークに接続されているクライアント端末と、を有するデータ処理システムにおいて、
前記サーバ装置に対してポートフォワード設定とSocks Proxy設定を行い、ポートフォワードにより前記サーバ装置からデータを受信すると所定の処理を行って、前記サーバ装置へ送信する制御部を有するクライアント端末と、
前記ポートフォワード設定で設定されたポート番号でデータを受信した場合、前記クライアント端末へ前記データを送信し、前記クライアント端末から処理されたデータを受信する制御部を有するサーバ装置と、を有するデータ処理システム。
【請求項２】
請求項１記載のデータ処理システムであって、
前記サーバ装置は、他のグローバルIPアドレスを有するコンピュータとＰ２Ｐネットワークで接続され、他のコンピュータにより生成されたトランザクションデータを受信し、
前記クライアント端末は、前記サーバ装置よりポートフォワードされた前記トランザクションデータに所定の処理を行って、前記サーバ装置へ送信する、データ処理システム。
【請求項３】
グローバルネットワークに接続する中継装置の配下に設けられ、ローカルネットワークに接続されているクライアント端末において、
グローバルＩＰアドレスを有するサーバ装置に対して前記サーバ装置に対してポートフォワード設定とSocks Proxy設定を行い、ポートフォワードにより前記サーバ装置からデータを受信すると所定の処理を行って、前記サーバ装置へ送信する制御部を有するクライアント端末。
【請求項４】
前記制御部は、前記サーバ装置よりポートフォワードされた他のコンピュータが生成したトランザクションデータに所定の処理を行い、Socks Proxy設定に基づき、処理結果を前記サーバ装置へ送信する、請求項３記載のクライアント端末。
【請求項５】
さらに、暗号資産を貯蓄し、トランザクションデータの処理を行う暗号資産取引プログラムを記憶する記憶部を有し、
前記制御部は、前記サーバ装置よりポートフォワードされたトランザクションデータを、前記記憶部に記憶された前記暗号資産プログラムを読み出して所定の処理を行う、請求項４記載のクライアント端末。
【請求項６】
グローバルネットワークに接続されたグローバルＩＰアドレスを有するサーバ装置であって、
前記グローバルネットワークに接続する中継装置の配下に設けられ、ローカルネットワークに接続されているクライアント端末からポートフォワード設定を受信すると、前記ポートフォワード設定で設定されたポート番号でデータを受信した場合、前記クライアント端末へ前記データを送信し、前記クライアント端末から処理されたデータを受信する制御部を有するサーバ装置。
【請求項７】
請求項６記載のサーバ装置の制御部は、さらに、前記クライアント端末から受信した暗号資産データに基づいて、他のグローバルIPアドレスを有するコンピュータとＰ２Ｐネットワークで接続し、トランザクションデータを他のコンピュータから受信し、前記クライアント端末へポートフォワードにより前記トランザクションデータを送信する、サーバ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ローカルネットワークに接続されたクライアント端末であっても、データの送受信を、グローバルIPアドレスを有するサーバ装置を中継させることで、グローバルIPアドレスが要求されるデータ処理を行うことができるクライアント端末、サーバ装置、データ処理システムに関する。
【背景技術】
【０００２】
グローバルIPアドレスを有する装置であることが、データ処理を行うための仕様として要求される場合、ローカルネットワークに接続されているコンピュータではデータ処理を行うことができなかった。
【０００３】
例えば、暗号資産（仮想通貨）においては、ブロックチェーンという技術が用いられており、参加者間でやり取りされる取引情報（トランザクションデータ）の信頼性を担保するため、参加者全体で形成されるネットワークで改ざんや二重使用などの不正を防止している。ブロックチェーンは、Peer to Peerで接続されたネットワークにおいて、トランザクションデータをブロック単位でまとめたものであり、ブロックチェーンは、参加者が共有する一つの巨大な元帳として機能する。このブロックチェーンに参加し、仮想通貨の取引やブロックの生成、PoS（Proof of Stake）などのトランザクションデータに関する処理を行うためには、グローバルIPアドレスを有する装置であることが必要である。
【０００４】
しかし、インターネットへ直接接続することはセキュリティ上のリスクが存在することから、ルータなどの中継装置の配下にコンピュータが接続されることが多く、ローカルネットワークに接続されたコンピュータはグローバルIPアドレスを有しない。このため、こうしたネットワーク上の問題を解決するため、ローカルネットワークに接続されたコンピュータであっても、インターネット上でのコンピュータ間での通信に参加できるようにするため、ルータなどの中継装置をこえてインターネット上の中継用サーバに接続することができる、SoftEtherなどのVPN（Virtual Private Network）が提案されている。（非特許文献１）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】『SoftEther による Ethernet の仮想化とトンネリング通信』情報処理学会、登 大遊、2004年１月
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、SoftEtherにおいては、グローバルIPアドレスを有する仮想HUBとなるコンピュータに仮想LANカードをインストールしたコンピュータを接続することで、中継装置を超えて通信することができるが、すべての外部からのデータがローカルネットワークに配置されたクライアント端末に転送されてしまうため、クライアント端末の処理能力の低下やセキュリティレベルの低下などの問題があった。また、SoftEtherの利用開始、終了にあっては、クライアント端末の代わりにインターネット上で通信を行う中継用サーバに接続して設定を行う必要があった。
【０００７】
本発明は、このような状況を鑑みてなされたものであり、インターネット上のグローバルIPアドレスを有するサーバ装置の所定のポートで受信したトランザクションデータをポートフォワードでローカルネットワーク内のクライアント端末で受信し、処理したデータをSocks Proxy設定により、サーバ装置へと送信することで、ローカルネットワーク内のクライアント端末が、仮想的にグローバルIPアドレスを有し、インターネット上のコンピュータとして所定のタスクを行うことができるデータ処理システムを提供する。
【課題を解決するための手段】
【０００８】
本発明にあっては、グローバルネットワークに接続されたグローバルＩＰアドレスを有するサーバ装置と、グローバルネットワークに接続する中継装置の配下に設けられ、ローカルネットワークに接続されているクライアント端末と、を有するデータ処理システムにおいて、サーバ装置に対してポートフォワード設定とSocks Proxy設定を行い、ポートフォワードによりサーバ装置からデータを受信すると所定の処理を行って、サーバ装置へ送信する制御部を有するクライアント端末と、ポートフォワード設定で設定されたポート番号でデータを受信した場合、クライアント端末へデータを送信し、クライアント端末から処理されたデータを受信する制御部を有するサーバ装置と、を有するデータ処理システムを提供することができる。
【０００９】
さらに、サーバ装置は、他のグローバルIPアドレスを有するコンピュータとＰ２Ｐで接続され、他のコンピュータにより生成されたトランザクションデータを受信し、クライアント端末は、前記サーバ装置よりポートフォワードされた前記トランザクションデータに所定の処理を行って、前記サーバ装置へ送信する。
【００１０】
本発明にかかるクライアント端末は、グローバルネットワークに接続する中継装置の配下に設けられ、ローカルネットワークに接続されているクライアント端末において、グローバルＩＰアドレスを有するサーバ装置に対してサーバ装置に対してポートフォワード設定とSocks Proxy設定を行い、ポートフォワードによりサーバ装置からデータを受信すると所定の処理を行って、サーバ装置へ送信する制御部を有するクライアント端末を提供する。
【００１１】
また、制御部は、サーバ装置よりポートフォワードされた他のコンピュータが生成したトランザクションデータに所定の処理を行い、Socks Proxy設定に基づき、処理結果をサーバ装置へ送信する。
【００１２】
さらに、暗号資産を貯蓄し、トランザクションデータの処理を行う暗号資産取引プログラムを記憶する記憶部を有し、制御部は、サーバ装置よりポートフォワードされたトランザクションデータを、前記記憶部に記憶された前記暗号資産プログラムを読み出して所定の処理を行う。
【００１３】
本発明にかかるサーバ装置は、グローバルネットワークに接続されたグローバルＩＰアドレスを有するサーバ装置であって、グローバルネットワークに接続する中継装置の配下に設けられ、ローカルネットワークに接続されているクライアント端末からポートフォワード設定を受信すると、ポートフォワード設定で設定されたポート番号でデータを受信した場合、クライアント端末へデータを送信し、クライアント端末から処理されたデータを受信する制御部を有するサーバ装置を提供する。
【００１４】
サーバ装置の制御部は、さらに、クライアント端末から受信した暗号資産データに基づいて、他のグローバルIPアドレスを有するコンピュータとＰ２Ｐネットワークで接続し、トランザクションデータを他のコンピュータから受信し、クライアント端末へポートフォワードによりトランザクションデータを送信する。
【発明の効果】
【００１５】
本発明によれば、必要なポートのみを中継することでセキュリティを保持しながら、必要なデータ処理をローカルネットワーク内のクライアント端末で行うことができる。
【００１６】
また、本発明によれば、初めにポートフォワード設定を行えば、ポートフォワードの開始や停止、Socks Proxyの開始や停止は、クライアント端末で行うことができるため、サーバ装置にアクセスする必要はなく、簡便にセキュリティを保持したまま、所定ポートで受信したデータの送信やクライアント端末からのデータの受信を行うことができる。
【００１７】
さらに、ポートフォワードとSocks Proxyを用いることでどのようなネットワークに接続されたクライアント端末であっても、サーバ装置が有するグローバルIPアドレスを仮想的に持つことができるため、インターネット上のコンピュータとしてデータ処理を行うことができるという効果がある。
【図面の簡単な説明】
【００１８】
【図１】図１は、本発明におけるサーバ装置とクライアント端末を有するデータ処理システムの一例を示す図である。
【図２】図２は、暗号資産プログラムによるブロックチェーンの概念図である。
【図３】図３は、本発明にかかるサーバ装置２００のハードウェア構成と機能ブロックを説明する図である。
【図４】図４は、本発明にかかるクライアント端末１００のハードウェア構成と機能ブロックを説明する図である。
【図５】図５は、本発明にかかるデータ処理システムにおけるサーバ装置とクライアント端末間における設定のシーケンスチャートである。
【図６】図６は、本発明にかかるデータ処理システムのおけるサーバ装置とクライアント端末間におけるデータの送受信にかかるシーケンスチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明を実施するための形態について、図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能及び構成を有する構成要素については同一の符号を付し、重複説明を省略する。
【００２０】
図１は、本発明におけるサーバ装置とクライアント端末を有するデータ処理システムの一例を示す図である。データ処理システム１は、クライアント端末１００（１００ａ〜ｃ）が中継装置４００（４００ａ、ｂ）を介してインターネット５００に接続し、インターネット５００を介して、サーバ装置２００（２００ａ〜ｃ）に接続されることで構成される。また、サーバ装置２００は、暗号資産プログラムがクライアント端末内で起動している場合、インターネット５００を介してPeer to Peer（Ｐ２Ｐ）で自律分散的にブロックチェーンを形成する他のノード３００（３００ａ〜ｃ）と接続され、トランザクションデータを分散共有している。
【００２１】
クライアント端末１００は、例えば、パーソナルコンピュータ、タブレット端末など、データ処理可能なコンピュータ装置で、サーバ装置２００が受信したデータのデータ処理を行う。具体的には、トランザクションデータのバリデーションやマイニングなどの処理である。クライアント端末１００は、例えば、サーバ装置２００に対してポートフォワードとSocks Proxy設定を行って、サーバ装置２００の所定のポートが受信したデータはすべてクライアント端末１００へ転送され、クライアント端末１００で処理されたデータはサーバ装置２００へ送信されるようにする。
【００２２】
サーバ装置２００に対してクライアント端末１００は、インターネット５００に直接接続されておらず、中継装置４００を介してインターネットに接続されている。このため、クライアント端末１００は、グローバルＩＰアドレスを有していない。クライアント端末１００ａは、サーバ装置２００ａと、クライアント端末１００ｂは、サーバ装置２００ｂ、クライアント端末１００ｃは、サーバ装置２００ｃとデータ送受信を行う。
【００２３】
クライアント端末１００ａと１００ｂが中継装置４００ａの配下であるローカルネットワークに接続されており、クライアント端末１００ｃは中継装置４００ｂの配下であるローカルネットワークに接続されている。なお、これは一例にすぎず、クライアント端末１００は、中継装置４００の配下に２台以上接続されていても、１台のみ接続されていてもよい。
【００２４】
クライアント端末１００は、トランザクションデータをサーバ装置２００から受信すると、例えばクライアント端末１００に記憶されている暗号資産プログラムなどにより、トランザクションデータに所定の処理を行い、処理結果である処理済データをサーバ装置２００へと送信するよう構成してもよい。処理済データは、サーバ装置２００から他のノードへと送信されるため、サーバ装置２００が有するグローバルＩＰアドレスを用いることができる。
【００２５】
サーバ装置２００は、インターネット５００に接続されているコンピュータである。クライアント端末１００とサーバ装置２００とにより一つのノードを形成し、クライアント端末１００に記憶されている暗号資産プログラムが起動している場合、Ｐ２Ｐで他のノード３００と自律分散的に接続する。インターネット上にあるため、グローバルＩＰアドレスが付与されている。サーバ装置２００は、ポートフォワードの許可又は不許可の設定を行うことができ、ポートフォワードが許可されている場合、所定のポート番号で受信したデータは、あらかじめ決められたコンピュータ（クライアント端末１００）へと転送（ポートフォワード）する。
【００２６】
ノード３００は、インターネット５００に接続されているコンピュータであり、各々グローバルＩＰアドレスを有している。ノード３００には、クライアント端末１００と同様、例えば暗号資産プログラムが記憶されており、実行することでトランザクションデータの検証や生成など所定の処理を行う。また、暗号資産プログラムが実行されることで、Ｐ２Ｐネットワークにより、他のノードと互いに通信して自律分散的に接続され、互いにトランザクションデータを含むブロックを連結したブロックチェーンデータやトランザクションデータを共有する。ここでは、ノード３００がノード３００ａ〜ｃとして３台接続されているが、３台のみならず、多数のノードが接続されている。
【００２７】
中継装置４００は、ルータなど、インターネットと接続可能なインターフェースを有し、ローカルネットワーク（ＬＡＮ）側のポートを複数備えて、配下のクライアント端末１００に対してルーティングを行い、クライアント端末１００から送信されたデータやインターネットからクライアント端末１００へと送信されたデータの通信制御を行う。中継装置４００は、ＮＡＴ（Network Address Translation）機能やファイアウォールの機能を有していてもよい。ここでは、中継装置４００ａにはクライアント端末１００ａと１００ｂの２台、中継装置４００ｂにはクライアント端末１００ｃの１台が接続されているが、これらは例示であって、３台以上が接続されていてもよい。
【００２８】
インターネット５００は、複数のサーバ装置２００及びノード３００、中継装置４００を接続する。
【００２９】
図２は、暗号資産プログラムによるブロックチェーンの概念図である。本発明にあっては、暗号資産プログラムが記憶されているクライアント端末１００とグローバルＩＰアドレスを有するサーバ装置２００により一つのノード３００を形成する。暗号資産プログラムが起動されると、例えば、暗号資産プログラムに記憶されている「暗号資産の貯蓄量」や「暗号資産の消費量」に関するデータが読み出され、ブロックの生成やトランザクションデータの検証などを行うための所定の条件を満たすと判定された場合、トランザクションデータやブロックチェーンデータを共有するため、他のノードと通信を行って、データを共有する。
【００３０】
ここでは、各ノードが他の６のノードと通信を行ってデータを共有している場合を図示しているが、これに限らず、８でも１０でもよい。各ノードは、トランザクションデータを処理することで新たなデータを生成すると、そのデータをＰ２Ｐネットワークにより他のノードと共有する。ノードは、各々複数のノードとデータを共有しているため、不正を監視し、信頼性の高いブロックチェーンを生成することができる。
【００３１】
図３は、本発明にかかるサーバ装置２００のハードウェア構成と機能ブロックを説明する図である。サーバ装置２００は、通信部２０１と制御部２０２、記憶部２０３を有するコンピュータである。ほかに、入出力インターフェースや、表示部を有していてもよい。制御部２０２が、記憶部２０３に記憶されたプログラムを読み出して実行することで、各種機能を実現する。また、制御部２０２の制御により、通信部２０１は、他のノード３００又はクライアント端末１００と通信を行う。サーバ装置２００は、インターネット５００に接続されており、グローバルＩＰアドレスを有している。
【００３２】
記憶部２０３は、グローバルＩＰアドレスデータ２０４、ポートフォワード許可設定データ２０５、ＳＳＨ通信プログラム２０６を記憶している。グローバルIPアドレスデータ２０４は、本サーバ装置２００に付与されたグローバルIPアドレスである。サーバ装置２００が、インターネット上の他のコンピュータと通信するとき、本グローバルIPアドレスが通知される。
【００３３】
ポートフォワード許可設定データ２０５は、本サーバ装置２００がポートフォワード要求を受信したときに、ポートフォワードを許可するかどうかを示すデータである。制御部２０２は、ポートフォワード許可設定データ２０５を読み出し、設定を参照することで、ポートフォワードを行うか、決定する。ポートフォワード許可設定データ２０５が「許可」である場合、制御部２０２は、クライアント端末１００から受信したポートフォワード要求に従って、所定のポート番号でデータを受信した場合、当該データをクライアント端末１００へと送信する。
【００３４】
例えば、他のノード３００から暗号資産に関するトランザクションデータを暗号資産プログラムが指定している所定のポート番号で受信したとき、ポートフォワード許可設定データ２０５を参照し、ポートフォワード許可の場合、クライアント端末１００からのポートフォワード要求に従って、トランザクションデータをクライアント端末１００へと送信する。
【００３５】
ＳＳＨ通信プログラム２０６は、ＳＳＨ（Secure Shell）で通信を管理するためのプログラムである。ＳＳＨ通信プログラムにより、ＳＳＨ通信を行うことでネットワーク上でのデータが暗号化され、セキュアに通信することができる。ＳＳＨ通信プログラム２０６は、制御部２０２がＳＳＨ通信を行うときに読み出して実行する。例えば、クライアント端末１００からＳＳＨによるポートフォワード要求を受信すると、制御部２０２はＳＳＨ通信プログラム２０６を読み出して、クライアント端末１００との通信部２０１によるＳＳＨ通信を制御する。
【００３６】
図４は、本発明にかかるクライアント端末１００のハードウェア構成と機能ブロックを説明する図である。クライアント端末１００は、通信部１１０と制御部１２０、記憶部１３０を有するコンピュータである。ほかに、入出力インターフェースや、表示部を有していてもよい。制御部１２０が、記憶部１３０に記憶されたプログラムを読み出して実行することで、各種機能を実現する。また、制御部１２０の制御により、通信部１１０は、中継装置４００を介してインターネット上のコンピュータと通信を行う。なお、本発明においては、ポートフォワード設定とSocks Proxy設定により、インターネット上のサーバ装置２００と通信を行う。
【００３７】
制御部１２０は、ポートフォワード制御部１２２、Socks Proxy制御部１２４、暗号資産算出部１２６、トランザクションデータ処理部１２８を有する。ポートフォワード制御部１２２は、サーバ装置２００に対してＳＳＨによるポートフォワード設定を行う制御部である。具体的には、サーバ装置のポート番号とサーバ装置２００を示すドメイン又はＩＰアドレスを指定するとともに、クライアント端末１００で受信するポート番号を指定し、ＳＳＨによるコマンドをサーバ装置２００へ送信する。また、ポートフォワード制御部１２２は、設定したポートフォワードを記憶部１３０のポートフォワード設定記憶部１３４に記憶し、ポートフォワード設定記憶部１３４を参照してサーバ装置２００へ通信部１１０を介して送信するよう制御する。制御部１２０は、設定したポートフォワードによる通信が途切れないよう、制御部１２０は、通信切断を検知するとすぐにポートフォワードによる通信がサーバ装置２００と行えるよう、通信接続を行う。
【００３８】
Socks Proxy制御部１２４は、Socks Proxy設定を受け付けると、Socks Proxy設定記憶部１３６に設定情報を記憶させ、記憶された設定情報に基づき、制御を行う。具体的には、データの送信先のアドレスとしてサーバ装置２００のIPアドレスとポート番号を指定してSocks Proxy設定を行う。なお、クライアント端末１００と同一のローカルネットワーク内からの通信については、サーバ装置２００を介して外部へと送信されないように、すべて送信元に直接通信するように設定を行う。Socks Proxy制御部は、クライアント端末１００内のプログラムにおいて設定されている送信先データをすべて無視して、Socks Proxy設定記憶部１３６に記憶された設定情報に基づいてクライアント端末１００からインターネット上へと送信されようとするデータを捕捉して、すべてのデータをサーバ装置２００へと送信する。
【００３９】
暗号資産算出部１２６は、記憶部１３０に記憶されている暗号資産プログラム１３２により制御され、記憶部１３０の暗号資産プログラム１３２に記憶されている暗号資産に関するパラメータに基づいて暗号資産を算出する。暗号資産の種類によって異なるものの、PoSにおいては、参加者が所持する暗号資産の貯蓄量と、トランザクションを承認する権限を比例させ、所定の貯蓄量以上の貯蓄量を所有していなければ、権限を付与しない。また、暗号資産の貯蓄量に応じて、ブロックの生成の権限を認めることがある。このため、暗号資産算出部１２６は、暗号資産を算出する。
【００４０】
トランザクションデータ処理部１２８は、サーバ装置２００が他のノード３００から受信したトランザクションデータの処理を行う。記憶部１３０に記憶されている暗号資産プログラム１３２を読み出すことにより、受信したトランザクションデータの処理を行う。具体的には、ブロックの生成（マイニング）やトランザクションデータのバリデーションなど、受信データのなかで指定された処理を行う。
【００４１】
記憶部１３０は、例えば、ハードディスク、ROM、RAMなどのストレージで構成され、様々なデータを記憶し、暗号資産プログラム１３２、ポートフォワード設定記憶部１３４、Socks Proxy設定記憶部１３６を有する。暗号資産プログラム１３２は、暗号資産を管理し、またブロックチェーンを形成する他のノード３００との通信や受信したトランザクションデータの処理を行う。暗号資産プログラム１３２が制御部１２０により読み出されることで、暗号資産算出部１２６やトランザクションデータ処理部１２８による処理が行われる。
【００４２】
ポートフォワード設定記憶部１３４は、ポートフォワードの設定情報を記憶する。具体的には、クライアント端末でポートフォワードデータを受信するポート番号、サーバ装置２００のIPアドレスとポート番号が記憶されている。これらのポートフォワード情報がポートフォワード制御部１２２により、サーバ装置２００にＳＳＨによる実行コマンドが送信されることで、ポートフォワードを開始する。
【００４３】
Socks Proxy設定記憶部１３６は、Socks Proxy制御部１２４によって設定されたSocks Proxy設定情報を記憶する。具体的には、データの送信先のアドレスとしてサーバ装置２００のIPアドレスとポート番号が記憶されている。
【００４４】
図５は、本発明にかかるデータ処理システムにおけるサーバ装置とクライアント端末間における設定のシーケンスチャートである。最初に、サーバ装置２００においてポートフォワード許可設定を行う（ステップS501）。制御部２０２は、ポートフォワード許可設定データ２０５を記憶部２０３から読み出し、ポートフォワード要求について「許可」へと変更する設定を行い、変更後のポートフォワード設定を記憶させる。
【００４５】
次にクライアント端末１００において、サーバ装置２００へのポートフォワード設定を行う（ステップS502）。例えば、ポートフォワード制御部１２２は、ポートフォワードデータを受信するクライアント端末１００のポート番号、サーバ装置２００のIPアドレスとポート番号を指定することによりポートフォワード設定を行い、設定した情報はポートフォワード設定記憶部、サーバ装置２００は、ローカルネットワーク内にあるクライアント端末１００に代わって、サーバ装置２００に付与されているグローバルIPアドレスを用いて、他のノード３００との通信を行う。サーバ装置２００のポート番号は、暗号資産プログラムによってデータ受信用として指定されているポート番号を指定する。
【００４６】
また、クライアント端末１００において、クライアント端末からインターネットへ送信されるデータがすべてサーバ装置２００を経由して送信されるよう、Socks Proxy設定を行う（ステップS503）。例えば、Socks Proxy制御部１２４は、データの送信先となるサーバ装置２００のIPアドレスやポート番号などをSocks Proxy設定記憶部１３６に記憶させる。
【００４７】
クライアント端末のポートフォワード制御部１２２は、設定したポートフォワード設定記憶部１３４の設定情報を参照し、ＳＳＨポートフォワードコマンドを実行する（ステップS504）。コマンドには、サーバ装置２００のIPアドレスとポート番号が含まれているため、中継装置４００を介してサーバ装置２００へと送信される。一方、サーバ装置２００において、ポートフォワード許可設定データ２０５は、「許可」に変更されているため、クライアント端末１００からポートフォワードコマンドを受信すると、コマンド受信後、他のノード３００からコマンドで指定されているポート番号にデータを受信すると、クライアント端末１００へと送信する。
【００４８】
このように、クライアント端末１００は、中継装置４００の配下のローカルネットワークに接続されているが、中継装置４００に対する設定を特に行うことなく、クライアント端末１００は、サーバ装置２００からポートフォワードでデータを受信し、Socks Proxyによりデータをサーバ装置２００へ送信することができるため、サーバ装置２００のグローバルＩＰアドレスを用いてブロックチェーンに参加し、暗号資産に関するデータ処理を行うことができる。
【００４９】
図６は、本発明にかかるデータ処理システムのおけるサーバ装置とクライアント端末間におけるデータの送受信にかかるシーケンスチャートである。なお、ここでは、既にサーバ装置２００とクライアント端末１００の設定は終わっており、クライアント端末１００は、暗号資産プログラム１３２を起動しており、自己の有する暗号資産を暗号資産算出部１２６により算出している。
【００５０】
初めにクライアント端末１００は、ポートフォワードを開始する（ステップS601）。ポートフォワードの開始処理は、図５のステップＳ５０４と同じ処理であり、具体的には、ポートフォワード制御部１２２がＳＳＨポートフォワードコマンドを実行し、中継装置４００を介してサーバ装置２００へポートフォワード要求を送信する。ＳＳＨポートフォワードコマンドがサーバ装置２００へ送信されることで、サーバ装置２００と通信が接続される状態となる。サーバ装置２００は、ポートフォワード許可設定データを参照し、「許可」に設定されているため、コマンドを受信後は、ポートフォワードに含まれるポート番号にデータを受信した場合、ポートフォワードコマンドに含まれるクライアント端末のポート番号へとポートフォワードを開始する。
【００５１】
また、ここでSocks Proxyも開始し、クライアント端末１００からインターネットへ送信されるデータは、Socks Proxy制御部１２４によりすべてSocks Proxyが捕捉し、Socks Proxyにより設定されたIPアドレスとポート番号を有するサーバ装置２００へと送信される。このため、クライアント端末１００において算出された処理済データなどがサーバ装置２００へと送信され、他のノード３００と共有する。
【００５２】
ポートフォワード通信が開始された後、ノード３００からトランザクションデータを所定のポート番号でサーバ装置２００が受信する（ステップS602）。サーバ装置２００は、クライアント端末１００から受信したポートフォワードコマンドに含まれるポート番号でトランザクションデータを受信すると、クライアント端末１００へポートフォワードする（ステップS603）。
【００５３】
なお、ポートフォワードコマンドによるポートフォワード要求の通信セッションが、切断されることがある（ステップS604）。このため、クライアント端末１００は、切断を検知するとすぐにポートフォワードコマンドを送信し、通信を自動的に再接続する（ステップS605）。具体的には、オートＳＳＨ（autoＳＳＨ）コマンドにより行う。図６では、ポートフォワードの後に通信切断と通信接続が図示されているが、あくまで例示であって、こうした通信切断や通信再接続は実際にはデータの送受信とは無関係にランダムに生じる。
【００５４】
クライアント端末１００は、ポートフォワードにより受信したトランザクションデータを処理する（ステップS606）。トランザクションデータの処理は、暗号資産プログラム１３２を読み出し、トランザクションデータ処理部１２８によって行われる。処理内容は、トランザクションデータの検証やブロックチェーンの生成等によって異なるが、受信したデータに対して要求される処理が行われる。
【００５５】
データ処理が終わると、Socks Proxy制御部１２４が処理されたデータを捕捉し、Socks Proxy設定記憶部１３６に記憶された設定に基づいてサーバ装置２００の所定のポート番号へと送信する（ステップS607）。
【００５６】
サーバ装置２００は、受信した処理済トランザクションデータを、トランザクションデータの送信元であるノード３００へと送信する（ステップS608）。なお、トランザクションデータを受信し、処理を行ってから、処理済のトランザクションデータの送信までが所定時間内でなければ、処理済トランザクションデータをノード３００に送信してもエラーになるように構成してもよい。
【００５７】
なお、ポートフォワードコマンドによるポートフォワード要求の通信セッションが、切断されることがある（ステップS609）。このため、クライアント端末１００は、切断を検知するとすぐにポートフォワードコマンドを送信し、通信を自動的に再接続する（ステップS610）。通信切断は任意のタイミングで生じ、図６においては、２度通信切断が生じているが、全く通信切断が生じない場合もある。これらはあくまで例示であって、これに限定されない。通信切断が生じることを検知した場合、クライアント端末１００は、通信の再接続を行う。
【符号の説明】
【００５８】
１００  クライアント端末
２００  サーバ装置
３００  ノード
４００  中継装置
５００  インターネット
【図１】
2020204991.tif 000003
【図２】
2020204991.tif 000004
【図３】
2020204991.tif 000005
【図４】
2020204991.tif 000006
【図５】
2020204991.tif 000007
【図６】
2020204991.tif 000008