(57)【要約】      （修正有）【課題】特定のマイニングプールへの計算力集中の防止と利用者の納得を両立可能なマイニングプールを実現することができるサーバ装置、手数料設定方法及びプログラムを提供する。【解決手段】ネットワーク構造において、複数のマイニング装置に正しいナンスの探索を要求する探索要求を送信し、マイニング装置から正しいナンスが得られたとき、その正しいナンスとデータとを含むブロックをブロックチェーンのネットワークに送信するサーバ装置１は、探索要求の送信先である１以上のクライアント装置のハッシュレートとネットワーク全体のハッシュレートとの比率に応じて手数料を設定する設定部５７と、マイニング報酬から手数料を取得する取得部５６と、手数料差し引き後のマイニング報酬をマイニング装置に分配する分配部５８と、を備える。【選択図】図４
2020197822.tif 000002
【特許請求の範囲】
【請求項１】
ナンスを変化させながら前記ナンスを含む入力値にハッシュ関数を適用することにより、探索閾値よりも小さい値のハッシュ値が得られる正しいナンスを探索するマイニング装置に、前記入力値に含まれる値と正しいナンスの探索を要求する探索要求とを送信し、前記正しいナンスが得られたとき、前記正しいナンスとデータとを含むブロックをブロックチェーンのネットワークに送信する送信部と、
前記探索要求に応じて探索された前記正しいナンスを前記マイニング装置から受信する受信部と、
前記探索要求の送信先である１以上の前記マイニング装置が有する第１処理能力と、前記ネットワークが有する第２処理能力との比率に応じて、手数料を設定する設定部と、
マイニングにより得られた第１報酬から前記手数料を取得する取得部と、
前記第１報酬から前記手数料を差し引いた第２報酬を、１以上の前記マイニング装置に分配する分配部と、
を備えることを特徴とするサーバ装置。
【請求項２】
前記設定部は、
前記第２処理能力に対する前記第１処理能力の比率が大きくなるほど、前記手数料を高く設定する
ことを特徴とする請求項１に記載のサーバ装置。
【請求項３】
前記設定部は、
前記第２処理能力に対する前記第１処理能力の比率の目標値と現実値との差分について、所定の期間の平均値を求め、前記平均値に応じて前記手数料を設定する
ことを特徴とする請求項１または２に記載のサーバ装置。
【請求項４】
前記設定部は、
前記第２処理能力に対する前記第１処理能力の比率の目標値と現実値との差分について、現在時刻に近いほど重みを強くした所定の期間の平均値を求め、前記平均値に応じて前記手数料を設定する
ことを特徴とする請求項１または２に記載のサーバ装置。
【請求項５】
前記設定部は、
前記探索要求の送信先である１以上の前記マイニング装置から提出される、前記マイニング装置の処理能力に対応するデータを用いて、前記第１処理能力を求める
ことを特徴とする請求項１から４のいずれか一つに記載のサーバ装置。
【請求項６】
前記受信部は、さらに、
前記ネットワークから前記正しいナンスを含むブロックを受信し、
前記送信部は、
前記受信部が、前記ネットワークから前記正しいナンスを含むブロックを受信する前に、前記探索要求の送信先である１以上の前記マイニング装置から前記正しいナンスを含むブロックを受信したとき、前記正しいナンスと前記データとを含むブロックを前記ネットワークに送信し、
前記設定部は、
所定の期間ごとに、前記送信部から送信されて前記ブロックチェーンに記録された前記ブロックと、前記ブロックチェーンに記録された全てのブロックとの比率から前記第１処理能力を求める
ことを特徴とする請求項１から５のいずれか一つに記載のサーバ装置。
【請求項７】
外部装置からの要求に応じて、前記設定部によって設定された前記手数料に係る情報を、前記設定部が当該手数料を設定したときの前記第１処理能力、前記第２処理能力及び前記比率のうちの少なくとも一つの情報とともに前記外部装置に提示する提示部をさらに備える、
ことを特徴とする請求項１から６のいずれか一つに記載のサーバ装置。
【請求項８】
サーバ装置により実行される手数料設定方法であって、
ナンスを変化させながら前記ナンスを含む入力値にハッシュ関数を適用することにより、探索閾値よりも小さい値のハッシュ値が得られる正しいナンスを探索するマイニング装置に、前記入力値に含まれる値と正しいナンスの探索を要求する探索要求とを送信し、
前記探索要求に応じて探索された前記正しいナンスを前記マイニング装置から受信し、
前記正しいナンスとデータとを含むブロックをブロックチェーンのネットワークに送信し、
前記探索要求の送信先である１以上の前記マイニング装置が有する第１処理能力と、前記ネットワークが有する第２処理能力との比率に応じて手数料を設定し、
マイニングにより得られた第１報酬から前記手数料を取得し、
前記第１報酬から前記手数料を差し引いた第２報酬を、１以上の前記マイニング装置に分配する
ことを特徴とする手数料設定方法。
【請求項９】
ナンスを変化させながら前記ナンスを含む入力値にハッシュ関数を適用することにより、探索閾値よりも小さい値のハッシュ値が得られる正しいナンスを探索するマイニング装置に、前記入力値に含まれる値と正しいナンスの探索を要求する探索要求とを送信し、
前記探索要求に応じて探索された前記正しいナンスを前記マイニング装置から受信し、
前記正しいナンスとデータとを含むブロックをブロックチェーンのネットワークに送信し、
前記探索要求の送信先である１以上の前記マイニング装置が有する第１処理能力と、前記ネットワークが有する第２処理能力との比率に応じて手数料を設定し、
マイニングにより得られた第１報酬から前記手数料を取得し、
前記第１報酬から前記手数料を差し引いた第２報酬を、１以上の前記マイニング装置に分配する
処理をプロセッサに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散コンピューティングの手数料設定法に関するものであり、特に暗号通貨のマイニングに係る手数料設定法に関する。
【背景技術】
【０００２】
ブロックチェーン上に取引情報（トランザクション）を記録する暗号通貨が用いられている。ブロックチェーンとは、取引情報を含むブロックを生成し、生成したブロックを連結することにより分散型ネットワークに取引情報を記録するデータベースのことである。
ブロックには、取引情報と正しいナンスとに加えて、１つ前に生成されたブロックの内容を示すハッシュ値が含まれるので、ブロックチェーンは、生成されたブロックが時系列に沿ってつながっていく、改ざんが困難なデータ構造を有する。正しいナンスとは、例えば、前のブロックのハッシュ値と、正しいナンスと、取引情報とを含む入力値にハッシュ関数を適用したとき、決められた特定閾値よりも小さなヘッダハッシュ値が得られるナンスである。
正しいナンスは、マイニングによって探索される。プルーフオブワークにおいて、マイニングとは、ブロックに含まれるナンスを変化させながらブロックに含まれるデータにハッシュ関数を適用することにより、正しいナンスを探す作業のことである。
また近年では、暗号通貨のマイニング報酬を安定化させる為のサービスとしてマイニングプールが知られている（特許文献１）。
プルーフオブワークには莫大な計算力が必要となるため、獲得されるマイニング報酬は大規模な事業者等に偏りがちとなる。
それに対してマイニングプールは、参加する個人による計算力により分担をしてマイニングを行うことで大規模事業者にも対抗できる計算力を確保して、マイニング報酬を安定化することが出来る。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−９１１４８公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、従来のマイニングプールでは人気のあるマイニングプールに利用者、すなわち計算力が集まりすぎる問題点がある。計算力が集まりすぎる現象は言い換えれば分散性が損なわれるということであり、暗号通貨システムの信頼性が損なわれる危険がある。
典型例としては１つのプールがネットワーク全体に提供される５０％を超える計算力を保持した場合には５１％攻撃と呼ばれる攻撃がプールオペレータによって可能となる。
これを防ぐために、従来は特定のマイニングプールに計算力が集中しないようにプールオペレータや利用者同士で呼びかけが行われてきた。
しかし、どのマイニングプールに参加するかは最終的に利用者個々の判断に委ねられており、結果に確実性が無い。一方で強制性をもってマイニングプールへの参加数を規制するような方法では、参加を望む利用者の納得が得られにくい。
本発明は、一側面として、特定のマイニングプールへの計算力集中の防止と利用者の納得を両立可能なマイニングプールを実現する。
【課題を解決するための手段】
【０００５】
本発明は、上記の課題を解決するためになされたものであり、一形態として、ナンスを変化させながら前記ナンスを含む入力値にハッシュ関数を適用することにより、探索閾値よりも小さい値のハッシュ値が得られる正しいナンスを探索するマイニング装置に、前記入力値に含まれる値と正しいナンスの探索を要求する探索要求とを送信し、前記正しいナンスが得られたとき、前記正しいナンスとデータとを含むブロックをブロックチェーンのネットワークに送信する送信部と、前記探索要求に応じて探索された前記正しいナンスを前記マイニング装置から受信する受信部と、前記探索要求の送信先である１以上の前記マイニング装置が有する第１処理能力と、前記ネットワークが有する第２処理能力との比率に応じて、手数料を設定する設定部と、マイニングにより得られた第１報酬から前記手数料を取得する取得部と、前記第１報酬から前記手数料を差し引いた第２報酬を、１以上の前記マイニング装置に分配する分配部と、を備えるサーバ装置を特徴とする。
【発明の効果】
【０００６】
本発明によれば、一側面として、特定のマイニングプールへの計算力集中の防止と利用者の納得を両立可能なマイニングプールを実現する。
【図面の簡単な説明】
【０００７】
【図１】本実施形態のブロックチェーンのネットワーク構造の一例を示す図である。
【図２】本実施形態のマイニング装置の一実施例を示す機能ブロック図である。
【図３】本実施形態のマイニング装置の一実施例を示す機能ブロック図である。
【図４】本実施形態のサーバ装置の一実施例を示す機能ブロック図である。
【図５】本実施形態のサーバ装置が行う手数料設定方法を説明する図である。
【図６】手数料設定テーブルを示す図である。
【図７】本実施形態のサーバ装置によって行われる情報の提示を説明する図である。
【図８】本実施形態のサーバ装置が行う処理を説明するフローチャートである。
【図９】コンピュータ装置の一実施例を示すブロック図である。
【発明を実施するための形態】
【０００８】
以下に、図面を参照して本発明の実施の形態を詳細に説明する。
図１は本実施形態のブロックチェーンのネットワーク構造の一例を示す図である。
図１を参照して、ブロックチェーンのネットワーク構造１００を説明する。
ブロックチェーンのネットワーク構造１００は、サーバ装置１と、クライアント装置２と、マイニング装置３と、取引装置４と、ネットワーク１５０と、ネットワーク１６０を含む。
サーバ装置１と、マイニング装置３と、取引装置４とは、それぞれネットワーク１５０を介して互いに通信可能に接続されている。
マイニング装置３、取引装置４は夫々複数、ネットワーク１５０に接続されうる。
サーバ装置１、クライアント装置２、マイニング装置３及び取引装置４は、例えば、後述するコンピュータ装置である。
【０００９】
図１の例では、複数のマイニング装置３として、マイニング装置３ａ、３ｂ、３ｃが接続されている。また、複数の取引装置４として、取引装置４ａ、４ｂが接続されている。
ネットワーク１５０は、Ｐ２Ｐ（Peer to Peer）ネットワークなどの分散型ネットワークであり、ブロックチェーン上に取引情報を記録する。
ブロックチェーンとは、取引情報を含むブロックを生成し、生成したブロックを連結することにより、分散型ネットワークに取引情報を記録するデータベースである。
ブロックには、取引情報と正しいナンスとに加えて、１つ前に生成されたブロックの内容を示すハッシュ値が含まれるので、ブロックチェーンは、生成されたブロックが時系列に沿ってつながっていく、改ざんが困難なデータ構造を有する。
【００１０】
正しいナンスとは、例えば、前のブロックのハッシュ値と、正しいナンスと、取引情報とを含む入力値にハッシュ関数を適用したとき、決められた特定閾値よりも小さなヘッダハッシュ値が得られるナンスである。なお、正しいナンスの条件は、難易度調整がしやすいように、他の条件を適宜設定してもよい。
正しいナンスは、マイニングによって探索される。プルーフオブワークにおいて、マイニングとは、ブロックに含まれるナンスを変化させながらブロックに含まれるデータにハッシュ関数を適用するハッシュ計算を行うことにより、正しいナンスを探す作業である。
プルーフオブワークにおいて、マイニング装置や後述するマイニングプールが上記ハッシュ計算を１秒あたりに実行する回数をハッシュレートと呼ぶ。
サーバ装置１は、接続されているクライアント装置２にナンスの探索範囲を指示し、複数のクライアント装置２の計算能力を効率よく利用するいわゆるプールサーバである。プールサーバは、以下ではマイニングプールともいう。
なお、マイニングプールの語が、サーバ装置１とクライアント装置２によって構成する分散処理システム全体を指す場合もある。
また本明細書に記載されるマイニングプールは、特定のサーバ装置１が提供する特定のマイニングプールを指すものとする。
クライアント装置２は、ネットワーク１６０を介して、サーバ装置１に複数接続されうる。複数のクライアント装置２として、クライアント装置２ａ、２ｂ、２ｃ、２ｄが接続されている。
ネットワーク１６０は、ネットワーク１５０とは異なり、Ｐ２Ｐネットワークではない通常のクライアント／サーバ型のネットワークであってよい。
【００１１】
［マイニング装置］
図２は、本実施形態のマイニング装置の一実施例を示す機能ブロック図である。
図２を参照して、マイニング装置３の機能について説明する。
マイニング装置３は、制御部１０と、記憶部２０とを含み、表示装置８と接続されている。
記憶部４０は、ブロックチェーン２１と、未承認情報２２とを記憶する。
ブロックチェーン２１は、分散型ネットワークに取引情報を記録するデータベースである。
未承認情報２２は、未承認の取引情報を格納するいわゆるトランザクションプールである。
【００１２】
制御部１０は、受信部１１と、検証部１２と、探索部１３と、生成部１４と、判定部１５と、送信部１６と、を含む。
受信部１１は、取引装置４からネットワーク１５０を介してブロードキャストされる取引情報を受信する。
検証部１２は、取引情報の検証をしたうえで、未承認情報２２として取引情報を記憶部２０に格納する。
探索部１３は、未承認情報２２からブロックに含ませる未承認の取引情報を抽出し、正しいナンスを探索する。
生成部１４は、未承認の取引情報と、正しいナンスと、前のブロックのハッシュ値とを含むブロックを生成する。
判定部１５は、マイニングが成功したか否かを判定する。
送信部１６は、生成部１４が生成したブロックを、ネットワーク１５０を介して接続されている各装置にブロードキャストする。
なお、検証部１２は、さらに、探索部１３による探索処理の前及び生成部１４による生成処理の前の少なくとも一方において、ブロックに含ませる取引情報の検証を実行してもよい。また、検証部１２は、検証前の取引情報を未承認情報２２として記憶部２０に格納し、探索部１３による探索処理の前及び生成部１４による生成処理の前の少なくとも一方において、ブロックに含ませる取引情報の検証を実行してもよい。
【００１３】
［クライアント装置２］
図３は本実施形態のクライアント装置２の一実施例を示す機能ブロック図である。
図３を参照して、クライアント装置２の機能について説明する。
クライアント装置２は、マイニング装置３と同様にマイニングを実行可能な装置であるが、単独でマイニングを行うのではなく、マイニングプールに参加することでマイニングを行う。実際には、クライアント装置２はマイニングプールから探索するナンスの範囲の割当をうけ、その範囲内で正しいナンスを探索する。
図２で説明したマイニング装置３も、サーバ装置１に接続し、図３で説明する処理部を備えることによってマイニングプールに参加することが出来る。
図３はクライアント装置２が備えるマイニングプールに接続するための構成を特に説明している。
クライアント装置２は、制御部３０と記憶部４０とを含み、表示装置８に接続されている。
記憶部４０は、ブロックチェーン２１と、未承認情報２２とを記憶する。
上記したようにブロックチェーン２１は、分散型ネットワークに取引情報を記録するデータベースである。これも上記のように未承認情報２２は、未承認の取引情報を格納するいわゆるトランザクションプールである。
【００１４】
制御部３０は、受信部３１と、探索部３２と、送信部３３、接続部３４、取得部３５と、を含む
受信部３１は、サーバ装置１が送信した探索要求を、接続部３４を介して受信して記憶部４０に格納する。
後述するが、探索要求は、取引情報及び前ブロックのハッシュ値と、サーバ装置１で振り分けられたナンスの探索範囲を示す情報である。
探索部３２は、マイニング処理として、マイニングプールから指定された探索するナンスの範囲に正しいナンスがあるかを探索する。
探索部３２は指定された範囲の中でナンスを変化させながらナンスを含む入力値にハッシュ関数を適用することにより、探索閾値よりも小さい値のハッシュ値が得られる正しいナンスを探索する。
送信部３３は、探索部３２が探索した正しいナンスを、接続部３４を介してサーバ装置１に送信する。
接続部３４は、ネットワーク１６０を介してサーバ装置１に接続する。
取得部３５は、所謂Ｗｅｂブラウザとして機能し、サーバ装置１が公開するマイニング手数料に関するグラフ情報を、ネットワーク１６０を介してＷｅｂページとして取得して表示装置８に表示する。
【００１５】
［サーバ装置］
図４は、本実施形態のサーバ装置の一実施例を示す機能ブロック図である。
図４を参照して、サーバ装置１の機能について説明する。
サーバ装置１は、制御部５０と記憶部６０とを含む。
記憶部６０は、ブロックチェーン２１と、未承認情報２２と、計算力情報２３と、を記憶する。
上記したようにブロックチェーン２１は、分散型ネットワークに取引情報を記録するデータベースである。これも上記のように未承認情報２２は、未承認の取引情報を格納するいわゆるトランザクションプールである。
【００１６】
また計算力情報２３は、サーバ装置１が、ネットワークやクライアント装置２から収集した情報に基づくネットワークやマイニングプールの計算力に関するログ情報を記録するデータベースである。
計算力情報２３に格納されるのは、具体的に、
（１）マイニングプールの計算力であるマイニングプールのハッシュレート
（２）ネットワーク全体の計算力であるネットワーク全体のハッシュレート
（３）（１）、（２）に基づいて算出されたマイニングプールの計算力提供率の現実値
（４）後述する計算力提供率の目標値と現実値の差分（偏差）
のログ情報である。
制御部５０は、接続部５１と、振分部５２と、受信部５３と、送信部５４と、判定部５５と、取得部５６と、設定部５７と、分配部５８と、提示部５９と、を含む。
接続部５１はネットワーク１６０を介してクライアント装置２と通信可能に接続する。
上記のようにクライアント装置２は、ナンスを変化させながらナンスを含む入力値にハッシュ関数を適用することにより、探索閾値よりも小さい値のハッシュ値が得られる正しいナンスを探索するマイニングを行う。
振分部５２は、サーバ装置１に接続されている複数のクライアント装置２に、探索するナンスの範囲を振り分ける。
【００１７】
受信部５３は、取引情報をネットワーク１５０から入力値として受信して、未承認情報として記憶部６０に格納する。
また、受信部５３は、接続部５１を介して、探索要求に応じて正しいナンスを探索したクライアント装置２から上記正しいナンスを受信する。
送信部５４は、接続部５１を介して、入力値に含まれる取引情報及び前ブロックのハッシュ値と振分部５２によって振り分けられたナンスの探索範囲を示す情報を上記探索要求としてクライアント装置２に出力する。
また、送信部５４は、サーバ装置１に接続するマイニング装置２によって正しいナンスが得られたとき、正しいナンスとデータとを含むブロックをブロックチェーンのネットワーク１５０に送信する。
判定部５５は、マイニングプールがブロックを接続する権限を獲得したか否かを判定する。
取得部５６は、マイニングにより得られたマイニング報酬から所定のマイニング手数料を取得する。
【００１８】
設定部５７は、後述するように目標値設定部６１と、手数料設定部６２と、提供率算出部６３と、を含む。
設定部５７は、探索要求の送信先であるマイニングプールに参加する１以上のクライアント装置が有する計算力と、ネットワーク１５０が有する計算力と、の比率である計算力提供率に応じて手数料を設定する。
分配部５８は、マイニング報酬からマイニング手数料を差し引いた差し引き後の報酬を、マイニングプールに参加するクライアント装置２に分配する。
提示部５９は、設定部５７によって設定された手数料と、その手数料が設定された根拠となったマイニングプールのハッシュレート及びネットワーク全体のハッシュレートと、マイニングプールの計算力提供率との情報を外部に提示する。これらの情報は記憶部６０の計算力情報２３に格納されている情報である。
後述するように、これらの情報の提示はＷｅｂページに記載されるかたちで行われ、提示部５９は所謂Ｗｅｂサーバとして機能する。
【００１９】
図５は、本実施形態のサーバ装置が行う手数料設定方法を説明する図である。
本実施形態のサーバ装置１は、マイニングプールがネットワーク全体に占める計算力提供率、すなわちマイニングプールのハッシュレートとネットワーク全体のハッシュレートの割合に応じて、利用者から徴収するマイニング手数料を動的に変更する。
マイニング手数料を適切に変更することによって、特定のマイニングプールの計算力提供率が適正な目標値となるように利用者に働きかけるのである。
マイニング手数料を変動させることで利用者自身の判断でマイニングプールへの参加を決めさせるので、利用者の納得いくかたちでマイニングプールの計算力提供率が過剰になることを避けることが出来る。
【００２０】
より詳細に説明する。
上記したように、サーバ装置１が備える設定部５７は、目標値設定部６１と、手数料設定部６２と、提供率算出部６３と、を含んでいる。
目標値設定部６１は、サーバ装置１を管理するプールオペレータ等によるキーボード等を用いた目標値の設定を受け付ける。
提供率算出部６３は、サーバ装置１が提供するマイニングプールに対して利用者かが提供した計算力に基づいてマイニングプールのハッシュレートを検出するとともに、ネットワークのハッシュレートも検出する。
以下では、マイニングプールの計算力を示すハッシュレートをプールハッシュレートと記載し、ネットワーク全体の計算力を示すハッシュレートをネットワークハッシュレートと記載する。
提供率算出部６３は、プールハッシュレートとネットワークハッシュレートとに基づいてマイニングプールの計算力提供率を算出する。
提供率算出部６３は、計算力提供率を、［プールハッシュレート］／［ネットワークハッシュレート］の除算によって算出することが出来る。
【００２１】
プールハッシュレートを算出する第１の方法として、提供率算出部６３は、マイニングプールに参加するクライアント装置２から提出された、クライアント装置２の処理能力に対応するデータから、プールハッシュレートを算出することが出来る。
クライアント装置２の処理能力に対応するデータは、そのクライアント装置２のハッシュレートである。
マイニングプールに接続する全てのクライアント装置２のハッシュレートを合算すればプールハッシュレートを導き出すことが出来る。
プールハッシュレートを算出する第２の方法として、提供率算出部６３は、マイニングプールが正しいナンスを発見してブロックチェーンに記録したブロックの数からプールハッシュレートを計算することが出来る。
この場合提供率算出部６３は、所定の期間ごとに送信部５４から送信されてブロックチェーンに記録されたブロックと、ブロックチェーンに記録された全てのブロックとの比率からマイニングプールのハッシュレートを求めることが出来る。
【００２２】
上記第１の方法では、プールハッシュレートを、マイニングプールに参加する利用者から提出されたデータから計算するため、正確な値が得られる一方で第三者検証が難しく、またサーバ装置１が保持すべきデータが大きくなるという問題がある。
上記第２の方法では、マイニングプールが実際に発見したブロック数からプールハッシュレートを計算するため、特にハッシュレートの低いプールで値が不正確になる問題がある。その一方で上記第２の方法によれば、実際にブロックチェーンに記録されたデータを参照するために第三者検証が容易である。
ネットワークのハッシュレートについては、ブロックチェーンに記録されたデータを参照することでおおよその値を知ることができる。
【００２３】
目標値設定部６１は、提供率算出部６３が算出する、サーバ装置１が提供するマイニングプールがネットワーク全体に占める計算力提供率に関して、任意の制御目標を目標値として設定する。
手数料設定部６２は、マイニングプールの計算力提供率を制御するために、マイニングプールに参加する利用者から徴収するマイニング手数料を設定する。
目標値設定部６１によって設定された目標値と、提供率算出部６３によって観測された計算力提供率の現実値との偏差、差分が手数料設定部６２に入力される。
手数料設定部６２は、入力された偏差の情報に基づいて下記に説明する方法で、マイニングプールに参加する利用者から徴収するマイニング手数料を決定する。決定された手数料は取得部５６によって即時反映される。
【００２４】
手数料設定部６２が決定したマイニング手数料は、マイニングプールに参加する利用者の数、すなわちマイニングプールの計算力に影響を与える。
ここで、マイニングプールの参加者数とはマイニングプールあるいはサーバ装置１に接続するクライアント装置２の数と同義である。
マイニング手数料が高くなればマイニングプールに参加する利用者数が減少して計算力が減少し、逆に手数料が低くなれば、マイニングプールに参加する利用者数が増加して計算力が増加すると考えられる。
提供率算出部６３は、手数料の変更に伴って変動したマイニングプールの計算力のネットワーク全体に占める計算力提供率をさらに算出して、算出した現実値と目標値との偏差を手数料設定部６２に入力するフィードバック制御を行う。
このフィードバック制御はマイニングプールの計算力提供率が目標値設定部６１によって設定された目標値に到達するまで繰り返される。フィードバック制御は、計算力提供率が目標値に到達したあとも、計算力提供率が目標値を維持できるように継続して行われてもよい。
目標値設定部６１で設定した目標値、手数料設定部６２での処理内用、提供率算出部６３での処理内容は、いずれも公に開示する。
【００２５】
なお、マイニング手数料の変動以外のマイニングプールの計算力に影響を与える要因として、市況などの外乱が考えられる。
外乱とは、例えば暗号通貨の法定通貨に対する価値変動や社会的・政治的動向さらには風評などである。
暗号通貨の価値変動によるマイニング参加人口の増減などネットワーク全体が影響を受ける外乱もあれば、運営会社の不祥事などによる風評で特定のマイニングプールが影響を受ける外乱もある。
このように様々な外的要因でプールの計算力としてのハッシュレートは影響を受ける。本実施形態ではサーバ装置１はそのような外乱を折り込みつつ、マイニング手数料の増減によって計算力提供率の制御を行うものである。
本実施形態のサーバ装置１はプールハッシュレートの絶対値ではなく、ネットワーク全体に占める計算力提供率を制御するものであり、ネットワーク全体に影響を与えるような外乱については事実上無視することが出来る。
また、マイニング手数料を変動させることで、マイニングプール個々に対する外乱の影響を抑えたハッシュレートを実現することもできる。
【００２６】
本実施形態の処理の一例を説明する。
計算力提供率の目標値は、目標値設定部６１によって任意の実数の値に設定することができ、例えば２５％に設定したとする。
手数料設定部６２は、図６に示す手数料設定テーブルに基づいて、入力された偏差に応じた手数料を設定する。
２５％の目標値に対して対象マイニングプールがネットワーク全体に占める計算力提供率が４５％以上になると、目標値との偏差は２０％以上となる。
その場合、図６に示すように、手数料設定部６２は手数料を５％に設定する。
手数料が５％に設定されることで、参加する利用者が減少して計算力が大きく減少する作用が働く。
２５％の目標値に対して上記計算力提供率が３５％〜４５％になると、目標値との偏差は１０％〜２０％となる。
その場合、図６に示すように、手数料設定部６２は手数料を２％に設定する。
２５％の目標値に対して対象マイニングプールがネットワーク全体に占める計算力提供率が２５％〜３５％になると、目標値との偏差は０％〜１０％となる。
その場合、図６に示すように、手数料設定部６２は手数料を１％に設定する。
２５％の目標値に対して上記計算力提供率が１５％〜２５％になると、目標値との偏差は−１０％〜０％となる。
その場合、図６に示すように、手数料設定部６２は手数料を０．５％に設定する。
【００２７】
２５％の目標値に対して上記計算力提供率が５％〜１５％になると、目標値との偏差は−２０％〜−１０％となる。
その場合、図６に示すように、手数料設定部６２は手数料を０％に設定する。すなわちマイニング報酬から手数料を徴収しないかたちとなる。
手数料が０％に設定されることで、参加する利用者が増加して計算力が増加する作用が働く。
さらに、２５％の目標値に対して上記計算力提供率が５％以下になると、目標値との偏差は２０％以下となる。
その場合、図６に示すように手数料設定部６２は手数料を−０．１％に設定する。すなわちマイニング報酬に対して０．１％分を上乗せした報酬を支払うことになる。
手数料をとられるどころかマイニング報酬に上乗せがされるため、参加する利用者が大幅に増加して計算力が大きく増加する作用が働く。
計算力提供率を抑えるためにマイニングプールの参加する利用者数が極端に減ると、今度はマイニングプールの事業そのものの継続性が厳しくなる。
そこで、手数料設定部６２は手数料を低くあるいはマイナスに設定して、利用者数を増加させることも可能にしている。
【００２８】
このように図６のテーブルに従って、設定部５７は、ネットワーク全体の計算力に対して対象マイニングプールの計算力が占める比率、すなわち計算力提供率が大きくなるほどマイニング手数料を高く設定する。
サーバ装置１は、マイニング手数料を高く設定することでマイニングプールに参加する利用者を減らしてマイニングプールの計算力を下げ、計算力提供率を適正に保つことが可能となる。
しかも、マイニング手数料を変動させることで利用者自身の判断でマイニングプールへの参加を決めさせるので、利用者の納得いくかたちでマイニングプールの計算力提供率が過剰になることを避けることが出来る。
【００２９】
なお、記憶部６０の計算力情報２３に過去の計算力提供率の履歴を保持し、手数料設定部６２はそれに基づいて手数料の決定を行なってもよい。
計算力情報２３には、例えば、過去１日分の計算力提供率の履歴を保持する。
そして、手数料設定部６２は、保持されている過去１日分の計算力提供率と目標値との偏差の平均値（移動平均）に対し、図６のテーブルに基づいてマイニング手数料を決定する。
このようにすることで、突発要因による急激な手数料の変動を抑制して緩やかにし、利用者を混乱させることを防ぐことが出来る。
また、手数料設定部６２は、計算力提供率の現実値と目標値の偏差について、現在時刻に近いほど重みを強くした所定期間の平均値（重み付け移動平均）を求め、その平均値に基づいてマイニング手数料の決定を行なってもよい。
このようにすることで、サーバ装置１は、急激な手数料の変動を抑制しながらも、参加する利用者数など現在時刻の状況に応じた手数料の設定を行うことが出来る。
サーバ装置１は、マイニングプールに提供された計算力のネットワーク全体に占める割合を計算し、計算結果をフィードバックすることでマイニング手数料を自動的に計算して設定する。自動計算の計算式は利用者に開示されるものとする。
【００３０】
図７は本実施形態のサーバ装置によって行われる情報の提示を説明する図である。
Ｗｅｂサーバとして機能するサーバ装置１の提示部５９は、クライアント装置２、マイニング装置３、取引装置４等外部装置からの要求に応じて、グラフ２００（図７参照）を動的に生成して提示する。グラフ２００は、マイニング手数料と、手数料を設定した根拠となったマイニングプール及びネットワークの各ハッシュレートと、計算力提供率と、の関連性を表す。
グラフ２００はマイニング手数料の時系列上の推移と、その根拠となったデータを確認できるグラフであり、クライアント装置２では、Ｗｅｂブラウザによって表示装置８にグラフ２００を表示可能にされる。
手数料の根拠となったデータは、ネットワークハッシュレート、プールハッシュレート、計算力提供率のうちの少なくとも一つである。
利用者が例えばグラフ２００上にマウスカーソル２０１を合わせる操作を行うと、Ｗｅｂブラウザによって、マウスカーソル２０１に対応する箇所のデータが提示部５９に問い合わされる。
問い合わされたデータを提示部５９がブラウザに返すことにより、該当のデータがグラフ２００上にポップアップ表示されうる。
なお、グラフ２００において計算力提供率とマイニング手数料との関係は図６のテーブルに示した関係と同じである。計算力提供率の目標値も図６と同様２５％で設定されているものとする。
グラフ２００における、ある日付の５時時点では、ネットワークハッシュレートが１４．６ＴＨ／ｓ、マイニングプールのハッシュレートが５．５９ＴＨ／ｓであり、その結果、計算力提供率が３８．３％である。
また、グラフ２００は、ある日付の５時時点において、その時点の計算力提供率と、計算力提供率の目標値との差分が１３．３％であるため、図６のテーブルに従って、マイニング手数料が２％に設定されていたことを明示している。
このようにマイニング手数料が決定された根拠が明示されることによって、特にクライアント装置２の利用者はマイニング手数料の変動に不信感を抱くことなく、安心してマイニングプールに参加することが出来る。
【００３１】
図８は、本実施形態のサーバ装置が行う処理を説明するフローチャートである。
図８を参照して、実施形態のサーバ装置１において実行される処理を説明する。以下の説明において、説明の簡単化のため、サーバ装置１の制御部５０が実行する処理のことをサーバ装置１が実行する処理と記載する。
ステップＳ１００において、サーバ装置１は振分部５２によって、接続されている複数のクライアント装置２に探索するナンスの範囲を振り分ける。
ステップＳ１０１において、サーバ装置１は、送信部５４によって探索範囲を含む探索要求をクライアント装置２に送信する。
ステップＳ１０２において、サーバ装置１は、受信部５３によってネットワークから正しいナンスを受信したかを判定する。
正しいナンスを受信したと判定した場合（ステップＳ１０２でＹｅｓ）、サーバ装置１はそのまま処理を終了する。
正しいナンスを受信していないと判定した場合（ステップＳ１０２でＮｏ）、ステップＳ１０３において、サーバ装置１は、受信部５３によって正しいナンスをクライアント装置から受信したか否かを判定する。
正しいナンスをクライアント装置から受信したと判定した場合、ステップＳ１０４において、サーバ装置１は、送信部５４によって正しいナンスとデータを含むブロックをネットワークに送信する。
そして、ステップ１０５において、サーバ装置１は、設定部５７によって今回のマイニングに関するマイニング手数料を設定する。
このマイニング手数料の設定処理は、図５で説明した、計算力提供率と目標値とに基づいてマイニング手数料設定部６２で行われる処理そのものである。
次に、ステップＳ１０６において、サーバ装置１は、取得部５６によって今回のマイニングで得られたマイニング報酬からマイニング手数料を取得し、ステップＳ１０７において、分配部５８によってマイニング報酬からマイニング手数料を差し引いた報酬を、各クライアント装置に分配する。
以上のように構成したので、本実施形態のサーバ装置１は、マイニングプールがネットワーク全体に占める計算力提供率を目標値に常に近づくように制御して、計算力提供率を適正に保つことが出来る。
しかも、マイニング手数料を変動させることで利用者自身の判断でマイニングプールへの参加を決めさせるので、利用者の納得いくかたちでマイニングプールの計算力提供率が過剰になることを避けることが出来る。
【００３２】
図９は、コンピュータ装置の一実施例を示すブロック図である。
図９を参照して、サーバ装置１、クライアント装置２、マイニング装置３の構成を説明する。サーバ装置１、クライアント装置２、マイニング装置３及び取引装置４は、コンピュータ装置３００に記載の構成要素の一部または全てを適宜選択して構成することができる。
図２３において、コンピュータ装置３００は、制御回路３０１と、記憶装置３０２と、読書装置３０３と、記録媒体３０４と、通信インターフェイス３０５（通信Ｉ／Ｆ）と、入出力インターフェイス３０６（入出力Ｉ／Ｆ）と、入力装置３０７と、表示装置３０８とネットワーク３０９とを備えている。
上記の各構成要素は、バス３１０により接続されている。
制御回路３０１は、コンピュータ装置３００全体の制御をする。そして、制御回路３０１は、例えば、ＣＰＵ、マルチコアＣＰＵ、ＦＰＧＡ（Field Programmable Gate Array）およびＰＬＤ（Programmable Logic Device）などのプロセッサである。
制御回路３０１は、図２において、制御部１０として機能する。
また制御回路３０１は、図３において、制御部３０として機能する。
また制御回路３０１は、図４において、制御部５０として機能する。
【００３３】
記憶装置３０２は、各種データを記憶する。そして、記憶装置３０２は、例えば、ＲＯＭ（Read Only Memory）およびＲＡＭ（Random Access Memory）などのメモリや、ＨＤ（Hard Disk）などで構成される。記憶装置３０２は、制御回路３０１を制御部として機能させるプログラムを記憶してもよい。
記憶装置３０２は、図２において記憶部２０として機能する。
また記憶装置３０２は、図３において記憶部４０として機能する。
また記憶装置３０２は、図４において記憶部６０として機能する。
また記憶装置３０２のうち、ＲＯＭは、ブートプログラムなどのプログラムを記憶している。ＲＡＭは、制御回路３０１のワークエリアとして使用される。ＨＤは、ＯＳ、アプリケーションプログラム、ファームウェアなどのプログラム、および各種データを記憶している。
【００３４】
読書装置３０３は、制御回路３０１に制御され、着脱可能な記録媒体３０４のデータのリード／ライトを行なう。そして、読書装置３０３は、例えば、ＦＤＤ（Floppy Disk Drive）、ＣＤＤ（Compact Disc Drive）、ＤＶＤＤ（Digital Versatile Disk Drive）、ＢＤＤ（Blu-ray（登録商標） Disk Drive）およびＵＳＢ（Universal Serial Bus）などである。
【００３５】
記録媒体３０４は、各種データを保存する。そして、記録媒体３０４は、読書装置３０３を介してバス３１０に接続され、制御回路３０１が読書装置３０３を制御することにより、データのリード／ライトが行なわれる。
記録媒体３０４は、制御回路３０１を制御部１０、３０、５０として機能させるプログラムを記録してもよい。
また、記録媒体３０４は、例えば、ＦＤ（Floppy Disk）、ＣＤ（Ｃompact Disc）、ＤＶＤ（Digital Versatile Disk）、ＢＤ（Blu-ray（登録商標） Disk）、及びフラッシュメモリなどの非一時的記録媒体である。
【００３６】
通信インターフェイス３０５は、ネットワーク３０９を介してコンピュータ装置３００と他の装置とを通信可能に接続する。
通信インターフェイス３０５は、図２において、受信部１１、送信部１６として機能する。
また通信インターフェイス３０５は、図３において、受信部３１、送信部３３、接続部３４、取得部３５として機能する。
また通信インターフェイス３０５は、図４において、接続部５１、受信部５３、送信部５４、取得部５６、提示部５９として機能する。
【００３７】
入出力インターフェイス３０６は、例えば、キーボード、マウス、タッチパネル、およびスキャナなどの入力装置３０７と接続され、接続された装置から各種情報を示す信号が入力されると、バス３１０を介して入力された信号を制御回路３０１に出力する。また、入出力インターフェイス３０６は、制御回路３０１から出力された各種情報を示す信号がバス３１０を介して入力されると、接続された各種装置に入力された信号を出力する。
【００３８】
表示装置３０８は、制御部３０から入力される信号に基づいて、各種情報を表示する。また、表示装置３０８は、例えば、例えばＣＲＴ（Cathode Ray Tube）、ＬＣＤ（Liquid Crystal Display）、ＰＤＰ（Plasma Display Panel）、およびＯＥＬＤ（Organic Electroluminescence Display）などである。
そして、表示装置３０８は、図３において、表示装置８として機能する。
ネットワーク３０９は、例えば、ＬＡＮ、無線通信、またはインターネットなどであり、コンピュータ装置３００と他の装置を通信接続する。
なお、本実施形態は、以上に述べた実施形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【符号の説明】
【００３９】
１  サーバ装置、２  クライアント装置、３  マイニング装置、４  取引装置、８  表示装置、１０  制御部、１１  受信部、１２  検証部、１３  探索部、１４  生成部、１５  判定部、１６  送信部、２０  記憶部、２１  ブロックチェーン、２２  未承認情報、２３  計算力情報、３０  制御部、３１  受信部、３２  探索部、３３  送信部、３４  接続部、３５  取得部、４０  記憶部、５０  制御部、５１  接続部、５２  振分部、５３  受信部、５４  送信部、５５  判定部、５６  取得部、５７  設定部、５８  分配部、５９  提示部、６０  記憶部、６１  目標値設定部、６２  手数料設定部、６３  提供率算出部、１００  ネットワーク構造、１５０  ネットワーク、１６０  ネットワーク、２００  グラフ、２０１  マウスカーソル、３００  コンピュータ装置、３０１  制御回路、３０２  記憶装置、３０２  制御回路、３０３  読書装置、３０４  記録媒体、３０５  通信インターフェイス、３０６  入出力インターフェイス、３０７  入力装置、３０８  表示装置、３０９  ネットワーク、３１０  バス
【図１】
2020197822.tif 000003
【図２】
2020197822.tif 000004
【図３】
2020197822.tif 000005
【図４】
2020197822.tif 000006
【図５】
2020197822.tif 000007
【図６】
2020197822.tif 000008
【図７】
2020197822.tif 000009
【図８】
2020197822.tif 000010
【図９】
2020197822.tif 000011