特許第6886724号(P6886724)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社アクセルの特許一覧

特許6886724サーバ装置、手数料設定方法及びプログラム
<>
  • 特許6886724-サーバ装置、手数料設定方法及びプログラム 図000002
  • 特許6886724-サーバ装置、手数料設定方法及びプログラム 図000003
  • 特許6886724-サーバ装置、手数料設定方法及びプログラム 図000004
  • 特許6886724-サーバ装置、手数料設定方法及びプログラム 図000005
  • 特許6886724-サーバ装置、手数料設定方法及びプログラム 図000006
  • 特許6886724-サーバ装置、手数料設定方法及びプログラム 図000007
  • 特許6886724-サーバ装置、手数料設定方法及びプログラム 図000008
  • 特許6886724-サーバ装置、手数料設定方法及びプログラム 図000009
  • 特許6886724-サーバ装置、手数料設定方法及びプログラム 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6886724
(24)【登録日】2021年5月19日
(45)【発行日】2021年6月16日
(54)【発明の名称】サーバ装置、手数料設定方法及びプログラム
(51)【国際特許分類】
   G06Q 50/10 20120101AFI20210603BHJP
   H04L 9/32 20060101ALI20210603BHJP
【FI】
   G06Q50/10
   H04L9/00 675Z
【請求項の数】9
【全頁数】17
(21)【出願番号】特願2019-102531(P2019-102531)
(22)【出願日】2019年5月31日
(65)【公開番号】特開2020-197822(P2020-197822A)
(43)【公開日】2020年12月10日
【審査請求日】2020年6月2日
(73)【特許権者】
【識別番号】398034168
【氏名又は名称】株式会社アクセル
(74)【代理人】
【識別番号】100085660
【弁理士】
【氏名又は名称】鈴木 均
(74)【代理人】
【識別番号】100149892
【弁理士】
【氏名又は名称】小川 弥生
(74)【代理人】
【識別番号】100185672
【弁理士】
【氏名又は名称】池田 雅人
(72)【発明者】
【氏名】小島 悠貴
(72)【発明者】
【氏名】森重 孝
【審査官】 藤原 拓也
(56)【参考文献】
【文献】 国際公開第2018/220709(WO,A1)
【文献】 米国特許出願公開第2017/0103458(US,A1)
【文献】 特開2018−101367(JP,A)
【文献】 特開2019−003402(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00−99/00
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
ナンスを変化させながら前記ナンスを含む入力値にハッシュ関数を適用することにより、探索閾値よりも小さい値のハッシュ値が得られる正しいナンスを探索するマイニング装置に、前記入力値に含まれる値と正しいナンスの探索を要求する探索要求とを送信し、前記正しいナンスが得られたとき、前記正しいナンスとデータとを含むブロックをブロックチェーンのネットワークに送信する送信部と、
前記探索要求に応じて探索された前記正しいナンスを前記マイニング装置から受信する受信部と、
前記探索要求の送信先である1以上の前記マイニング装置が有する第1処理能力と、前記ネットワークが有する第2処理能力との比率に応じて、手数料を設定する設定部と、
マイニングにより得られた第1報酬から前記手数料を取得する取得部と、
前記第1報酬から前記手数料を差し引いた第2報酬を、1以上の前記マイニング装置に分配する分配部と、
を備えることを特徴とするサーバ装置。
【請求項2】
前記設定部は、
前記第2処理能力に対する前記第1処理能力の比率が大きくなるほど、前記手数料を高く設定する
ことを特徴とする請求項1に記載のサーバ装置。
【請求項3】
前記設定部は、
前記第2処理能力に対する前記第1処理能力の比率の目標値と現実値との差分について、所定の期間の平均値を求め、前記平均値に応じて前記手数料を設定する
ことを特徴とする請求項1または2に記載のサーバ装置。
【請求項4】
前記設定部は、
前記第2処理能力に対する前記第1処理能力の比率の目標値と現実値との差分について、現在時刻に近いほど重みを強くした所定の期間の平均値を求め、前記平均値に応じて前記手数料を設定する
ことを特徴とする請求項1または2に記載のサーバ装置。
【請求項5】
前記設定部は、
前記探索要求の送信先である1以上の前記マイニング装置から提出される、前記マイニング装置の処理能力に対応するデータを用いて、前記第1処理能力を求める
ことを特徴とする請求項1から4のいずれか一つに記載のサーバ装置。
【請求項6】
前記受信部は、さらに、
前記ネットワークから前記正しいナンスを含むブロックを受信し、
前記送信部は、
前記受信部が、前記ネットワークから前記正しいナンスを含むブロックを受信する前に、前記探索要求の送信先である1以上の前記マイニング装置から前記正しいナンスを含むブロックを受信したとき、前記正しいナンスと前記データとを含むブロックを前記ネットワークに送信し、
前記設定部は、
所定の期間ごとに、前記送信部から送信されて前記ブロックチェーンに記録された前記ブロックと、前記ブロックチェーンに記録された全てのブロックとの比率から前記第1処理能力を求める
ことを特徴とする請求項1から5のいずれか一つに記載のサーバ装置。
【請求項7】
外部装置からの要求に応じて、前記設定部によって設定された前記手数料に係る情報を、前記設定部が当該手数料を設定したときの前記第1処理能力、前記第2処理能力及び前記比率のうちの少なくとも一つの情報とともに前記外部装置に提示する提示部をさらに備える、
ことを特徴とする請求項1から6のいずれか一つに記載のサーバ装置。
【請求項8】
サーバ装置により実行される手数料設定方法であって、
ナンスを変化させながら前記ナンスを含む入力値にハッシュ関数を適用することにより、探索閾値よりも小さい値のハッシュ値が得られる正しいナンスを探索するマイニング装置に、前記入力値に含まれる値と正しいナンスの探索を要求する探索要求とを送信し、
前記探索要求に応じて探索された前記正しいナンスを前記マイニング装置から受信し、
前記正しいナンスとデータとを含むブロックをブロックチェーンのネットワークに送信し、
前記探索要求の送信先である1以上の前記マイニング装置が有する第1処理能力と、前記ネットワークが有する第2処理能力との比率に応じて手数料を設定し、
マイニングにより得られた第1報酬から前記手数料を取得し、
前記第1報酬から前記手数料を差し引いた第2報酬を、1以上の前記マイニング装置に分配する
ことを特徴とする手数料設定方法。
【請求項9】
ナンスを変化させながら前記ナンスを含む入力値にハッシュ関数を適用することにより、探索閾値よりも小さい値のハッシュ値が得られる正しいナンスを探索するマイニング装置に、前記入力値に含まれる値と正しいナンスの探索を要求する探索要求とを送信し、
前記探索要求に応じて探索された前記正しいナンスを前記マイニング装置から受信し、
前記正しいナンスとデータとを含むブロックをブロックチェーンのネットワークに送信し、
前記探索要求の送信先である1以上の前記マイニング装置が有する第1処理能力と、前記ネットワークが有する第2処理能力との比率に応じて手数料を設定し、
マイニングにより得られた第1報酬から前記手数料を取得し、
前記第1報酬から前記手数料を差し引いた第2報酬を、1以上の前記マイニング装置に分配する
処理をプロセッサに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分散コンピューティングの手数料設定法に関するものであり、特に暗号通貨のマイニングに係る手数料設定法に関する。
【背景技術】
【0002】
ブロックチェーン上に取引情報(トランザクション)を記録する暗号通貨が用いられている。ブロックチェーンとは、取引情報を含むブロックを生成し、生成したブロックを連結することにより分散型ネットワークに取引情報を記録するデータベースのことである。
ブロックには、取引情報と正しいナンスとに加えて、1つ前に生成されたブロックの内容を示すハッシュ値が含まれるので、ブロックチェーンは、生成されたブロックが時系列に沿ってつながっていく、改ざんが困難なデータ構造を有する。正しいナンスとは、例えば、前のブロックのハッシュ値と、正しいナンスと、取引情報とを含む入力値にハッシュ関数を適用したとき、決められた特定閾値よりも小さなヘッダハッシュ値が得られるナンスである。
正しいナンスは、マイニングによって探索される。プルーフオブワークにおいて、マイニングとは、ブロックに含まれるナンスを変化させながらブロックに含まれるデータにハッシュ関数を適用することにより、正しいナンスを探す作業のことである。
また近年では、暗号通貨のマイニング報酬を安定化させる為のサービスとしてマイニングプールが知られている(特許文献1)。
プルーフオブワークには莫大な計算力が必要となるため、獲得されるマイニング報酬は大規模な事業者等に偏りがちとなる。
それに対してマイニングプールは、参加する個人による計算力により分担をしてマイニングを行うことで大規模事業者にも対抗できる計算力を確保して、マイニング報酬を安定化することが出来る。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2017−91148公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、従来のマイニングプールでは人気のあるマイニングプールに利用者、すなわち計算力が集まりすぎる問題点がある。計算力が集まりすぎる現象は言い換えれば分散性が損なわれるということであり、暗号通貨システムの信頼性が損なわれる危険がある。
典型例としては1つのプールがネットワーク全体に提供される50%を超える計算力を保持した場合には51%攻撃と呼ばれる攻撃がプールオペレータによって可能となる。
これを防ぐために、従来は特定のマイニングプールに計算力が集中しないようにプールオペレータや利用者同士で呼びかけが行われてきた。
しかし、どのマイニングプールに参加するかは最終的に利用者個々の判断に委ねられており、結果に確実性が無い。一方で強制性をもってマイニングプールへの参加数を規制するような方法では、参加を望む利用者の納得が得られにくい。
本発明は、一側面として、特定のマイニングプールへの計算力集中の防止と利用者の納得を両立可能なマイニングプールを実現する。
【課題を解決するための手段】
【0005】
本発明は、上記の課題を解決するためになされたものであり、一形態として、ナンスを変化させながら前記ナンスを含む入力値にハッシュ関数を適用することにより、探索閾値よりも小さい値のハッシュ値が得られる正しいナンスを探索するマイニング装置に、前記入力値に含まれる値と正しいナンスの探索を要求する探索要求とを送信し、前記正しいナンスが得られたとき、前記正しいナンスとデータとを含むブロックをブロックチェーンのネットワークに送信する送信部と、前記探索要求に応じて探索された前記正しいナンスを前記マイニング装置から受信する受信部と、前記探索要求の送信先である1以上の前記マイニング装置が有する第1処理能力と、前記ネットワークが有する第2処理能力との比率に応じて、手数料を設定する設定部と、マイニングにより得られた第1報酬から前記手数料を取得する取得部と、前記第1報酬から前記手数料を差し引いた第2報酬を、1以上の前記マイニング装置に分配する分配部と、を備えるサーバ装置を特徴とする。
【発明の効果】
【0006】
本発明によれば、一側面として、特定のマイニングプールへの計算力集中の防止と利用者の納得を両立可能なマイニングプールを実現する。
【図面の簡単な説明】
【0007】
図1】本実施形態のブロックチェーンのネットワーク構造の一例を示す図である。
図2】本実施形態のマイニング装置の一実施例を示す機能ブロック図である。
図3】本実施形態のマイニング装置の一実施例を示す機能ブロック図である。
図4】本実施形態のサーバ装置の一実施例を示す機能ブロック図である。
図5】本実施形態のサーバ装置が行う手数料設定方法を説明する図である。
図6】手数料設定テーブルを示す図である。
図7】本実施形態のサーバ装置によって行われる情報の提示を説明する図である。
図8】本実施形態のサーバ装置が行う処理を説明するフローチャートである。
図9】コンピュータ装置の一実施例を示すブロック図である。
【発明を実施するための形態】
【0008】
以下に、図面を参照して本発明の実施の形態を詳細に説明する。
図1は本実施形態のブロックチェーンのネットワーク構造の一例を示す図である。
図1を参照して、ブロックチェーンのネットワーク構造100を説明する。
ブロックチェーンのネットワーク構造100は、サーバ装置1と、クライアント装置2と、マイニング装置3と、取引装置4と、ネットワーク150と、ネットワーク160を含む。
サーバ装置1と、マイニング装置3と、取引装置4とは、それぞれネットワーク150を介して互いに通信可能に接続されている。
マイニング装置3、取引装置4は夫々複数、ネットワーク150に接続されうる。
サーバ装置1、クライアント装置2、マイニング装置3及び取引装置4は、例えば、後述するコンピュータ装置である。
【0009】
図1の例では、複数のマイニング装置3として、マイニング装置3a、3b、3cが接続されている。また、複数の取引装置4として、取引装置4a、4bが接続されている。
ネットワーク150は、P2P(Peer to Peer)ネットワークなどの分散型ネットワークであり、ブロックチェーン上に取引情報を記録する。
ブロックチェーンとは、取引情報を含むブロックを生成し、生成したブロックを連結することにより、分散型ネットワークに取引情報を記録するデータベースである。
ブロックには、取引情報と正しいナンスとに加えて、1つ前に生成されたブロックの内容を示すハッシュ値が含まれるので、ブロックチェーンは、生成されたブロックが時系列に沿ってつながっていく、改ざんが困難なデータ構造を有する。
【0010】
正しいナンスとは、例えば、前のブロックのハッシュ値と、正しいナンスと、取引情報とを含む入力値にハッシュ関数を適用したとき、決められた特定閾値よりも小さなヘッダハッシュ値が得られるナンスである。なお、正しいナンスの条件は、難易度調整がしやすいように、他の条件を適宜設定してもよい。
正しいナンスは、マイニングによって探索される。プルーフオブワークにおいて、マイニングとは、ブロックに含まれるナンスを変化させながらブロックに含まれるデータにハッシュ関数を適用するハッシュ計算を行うことにより、正しいナンスを探す作業である。
プルーフオブワークにおいて、マイニング装置や後述するマイニングプールが上記ハッシュ計算を1秒あたりに実行する回数をハッシュレートと呼ぶ。
サーバ装置1は、接続されているクライアント装置2にナンスの探索範囲を指示し、複数のクライアント装置2の計算能力を効率よく利用するいわゆるプールサーバである。プールサーバは、以下ではマイニングプールともいう。
なお、マイニングプールの語が、サーバ装置1とクライアント装置2によって構成する分散処理システム全体を指す場合もある。
また本明細書に記載されるマイニングプールは、特定のサーバ装置1が提供する特定のマイニングプールを指すものとする。
クライアント装置2は、ネットワーク160を介して、サーバ装置1に複数接続されうる。複数のクライアント装置2として、クライアント装置2a、2b、2c、2dが接続されている。
ネットワーク160は、ネットワーク150とは異なり、P2Pネットワークではない通常のクライアント/サーバ型のネットワークであってよい。
【0011】
[マイニング装置]
図2は、本実施形態のマイニング装置の一実施例を示す機能ブロック図である。
図2を参照して、マイニング装置3の機能について説明する。
マイニング装置3は、制御部10と、記憶部20とを含み、表示装置8と接続されている。
記憶部40は、ブロックチェーン21と、未承認情報22とを記憶する。
ブロックチェーン21は、分散型ネットワークに取引情報を記録するデータベースである。
未承認情報22は、未承認の取引情報を格納するいわゆるトランザクションプールである。
【0012】
制御部10は、受信部11と、検証部12と、探索部13と、生成部14と、判定部15と、送信部16と、を含む。
受信部11は、取引装置4からネットワーク150を介してブロードキャストされる取引情報を受信する。
検証部12は、取引情報の検証をしたうえで、未承認情報22として取引情報を記憶部20に格納する。
探索部13は、未承認情報22からブロックに含ませる未承認の取引情報を抽出し、正しいナンスを探索する。
生成部14は、未承認の取引情報と、正しいナンスと、前のブロックのハッシュ値とを含むブロックを生成する。
判定部15は、マイニングが成功したか否かを判定する。
送信部16は、生成部14が生成したブロックを、ネットワーク150を介して接続されている各装置にブロードキャストする。
なお、検証部12は、さらに、探索部13による探索処理の前及び生成部14による生成処理の前の少なくとも一方において、ブロックに含ませる取引情報の検証を実行してもよい。また、検証部12は、検証前の取引情報を未承認情報22として記憶部20に格納し、探索部13による探索処理の前及び生成部14による生成処理の前の少なくとも一方において、ブロックに含ませる取引情報の検証を実行してもよい。
【0013】
[クライアント装置2]
図3は本実施形態のクライアント装置2の一実施例を示す機能ブロック図である。
図3を参照して、クライアント装置2の機能について説明する。
クライアント装置2は、マイニング装置3と同様にマイニングを実行可能な装置であるが、単独でマイニングを行うのではなく、マイニングプールに参加することでマイニングを行う。実際には、クライアント装置2はマイニングプールから探索するナンスの範囲の割当をうけ、その範囲内で正しいナンスを探索する。
図2で説明したマイニング装置3も、サーバ装置1に接続し、図3で説明する処理部を備えることによってマイニングプールに参加することが出来る。
図3はクライアント装置2が備えるマイニングプールに接続するための構成を特に説明している。
クライアント装置2は、制御部30と記憶部40とを含み、表示装置8に接続されている。
記憶部40は、ブロックチェーン21と、未承認情報22とを記憶する。
上記したようにブロックチェーン21は、分散型ネットワークに取引情報を記録するデータベースである。これも上記のように未承認情報22は、未承認の取引情報を格納するいわゆるトランザクションプールである。
【0014】
制御部30は、受信部31と、探索部32と、送信部33、接続部34、取得部35と、を含む
受信部31は、サーバ装置1が送信した探索要求を、接続部34を介して受信して記憶部40に格納する。
後述するが、探索要求は、取引情報及び前ブロックのハッシュ値と、サーバ装置1で振り分けられたナンスの探索範囲を示す情報である。
探索部32は、マイニング処理として、マイニングプールから指定された探索するナンスの範囲に正しいナンスがあるかを探索する。
探索部32は指定された範囲の中でナンスを変化させながらナンスを含む入力値にハッシュ関数を適用することにより、探索閾値よりも小さい値のハッシュ値が得られる正しいナンスを探索する。
送信部33は、探索部32が探索した正しいナンスを、接続部34を介してサーバ装置1に送信する。
接続部34は、ネットワーク160を介してサーバ装置1に接続する。
取得部35は、所謂Webブラウザとして機能し、サーバ装置1が公開するマイニング手数料に関するグラフ情報を、ネットワーク160を介してWebページとして取得して表示装置8に表示する。
【0015】
[サーバ装置]
図4は、本実施形態のサーバ装置の一実施例を示す機能ブロック図である。
図4を参照して、サーバ装置1の機能について説明する。
サーバ装置1は、制御部50と記憶部60とを含む。
記憶部60は、ブロックチェーン21と、未承認情報22と、計算力情報23と、を記憶する。
上記したようにブロックチェーン21は、分散型ネットワークに取引情報を記録するデータベースである。これも上記のように未承認情報22は、未承認の取引情報を格納するいわゆるトランザクションプールである。
【0016】
また計算力情報23は、サーバ装置1が、ネットワークやクライアント装置2から収集した情報に基づくネットワークやマイニングプールの計算力に関するログ情報を記録するデータベースである。
計算力情報23に格納されるのは、具体的に、
(1)マイニングプールの計算力であるマイニングプールのハッシュレート
(2)ネットワーク全体の計算力であるネットワーク全体のハッシュレート
(3)(1)、(2)に基づいて算出されたマイニングプールの計算力提供率の現実値
(4)後述する計算力提供率の目標値と現実値の差分(偏差)
のログ情報である。
制御部50は、接続部51と、振分部52と、受信部53と、送信部54と、判定部55と、取得部56と、設定部57と、分配部58と、提示部59と、を含む。
接続部51はネットワーク160を介してクライアント装置2と通信可能に接続する。
上記のようにクライアント装置2は、ナンスを変化させながらナンスを含む入力値にハッシュ関数を適用することにより、探索閾値よりも小さい値のハッシュ値が得られる正しいナンスを探索するマイニングを行う。
振分部52は、サーバ装置1に接続されている複数のクライアント装置2に、探索するナンスの範囲を振り分ける。
【0017】
受信部53は、取引情報をネットワーク150から入力値として受信して、未承認情報として記憶部60に格納する。
また、受信部53は、接続部51を介して、探索要求に応じて正しいナンスを探索したクライアント装置2から上記正しいナンスを受信する。
送信部54は、接続部51を介して、入力値に含まれる取引情報及び前ブロックのハッシュ値と振分部52によって振り分けられたナンスの探索範囲を示す情報を上記探索要求としてクライアント装置2に出力する。
また、送信部54は、サーバ装置1に接続するマイニング装置2によって正しいナンスが得られたとき、正しいナンスとデータとを含むブロックをブロックチェーンのネットワーク150に送信する。
判定部55は、マイニングプールがブロックを接続する権限を獲得したか否かを判定する。
取得部56は、マイニングにより得られたマイニング報酬から所定のマイニング手数料を取得する。
【0018】
設定部57は、後述するように目標値設定部61と、手数料設定部62と、提供率算出部63と、を含む。
設定部57は、探索要求の送信先であるマイニングプールに参加する1以上のクライアント装置が有する計算力と、ネットワーク150が有する計算力と、の比率である計算力提供率に応じて手数料を設定する。
分配部58は、マイニング報酬からマイニング手数料を差し引いた差し引き後の報酬を、マイニングプールに参加するクライアント装置2に分配する。
提示部59は、設定部57によって設定された手数料と、その手数料が設定された根拠となったマイニングプールのハッシュレート及びネットワーク全体のハッシュレートと、マイニングプールの計算力提供率との情報を外部に提示する。これらの情報は記憶部60の計算力情報23に格納されている情報である。
後述するように、これらの情報の提示はWebページに記載されるかたちで行われ、提示部59は所謂Webサーバとして機能する。
【0019】
図5は、本実施形態のサーバ装置が行う手数料設定方法を説明する図である。
本実施形態のサーバ装置1は、マイニングプールがネットワーク全体に占める計算力提供率、すなわちマイニングプールのハッシュレートとネットワーク全体のハッシュレートの割合に応じて、利用者から徴収するマイニング手数料を動的に変更する。
マイニング手数料を適切に変更することによって、特定のマイニングプールの計算力提供率が適正な目標値となるように利用者に働きかけるのである。
マイニング手数料を変動させることで利用者自身の判断でマイニングプールへの参加を決めさせるので、利用者の納得いくかたちでマイニングプールの計算力提供率が過剰になることを避けることが出来る。
【0020】
より詳細に説明する。
上記したように、サーバ装置1が備える設定部57は、目標値設定部61と、手数料設定部62と、提供率算出部63と、を含んでいる。
目標値設定部61は、サーバ装置1を管理するプールオペレータ等によるキーボード等を用いた目標値の設定を受け付ける。
提供率算出部63は、サーバ装置1が提供するマイニングプールに対して利用者かが提供した計算力に基づいてマイニングプールのハッシュレートを検出するとともに、ネットワークのハッシュレートも検出する。
以下では、マイニングプールの計算力を示すハッシュレートをプールハッシュレートと記載し、ネットワーク全体の計算力を示すハッシュレートをネットワークハッシュレートと記載する。
提供率算出部63は、プールハッシュレートとネットワークハッシュレートとに基づいてマイニングプールの計算力提供率を算出する。
提供率算出部63は、計算力提供率を、[プールハッシュレート]/[ネットワークハッシュレート]の除算によって算出することが出来る。
【0021】
プールハッシュレートを算出する第1の方法として、提供率算出部63は、マイニングプールに参加するクライアント装置2から提出された、クライアント装置2の処理能力に対応するデータから、プールハッシュレートを算出することが出来る。
クライアント装置2の処理能力に対応するデータは、そのクライアント装置2のハッシュレートである。
マイニングプールに接続する全てのクライアント装置2のハッシュレートを合算すればプールハッシュレートを導き出すことが出来る。
プールハッシュレートを算出する第2の方法として、提供率算出部63は、マイニングプールが正しいナンスを発見してブロックチェーンに記録したブロックの数からプールハッシュレートを計算することが出来る。
この場合提供率算出部63は、所定の期間ごとに送信部54から送信されてブロックチェーンに記録されたブロックと、ブロックチェーンに記録された全てのブロックとの比率からマイニングプールのハッシュレートを求めることが出来る。
【0022】
上記第1の方法では、プールハッシュレートを、マイニングプールに参加する利用者から提出されたデータから計算するため、正確な値が得られる一方で第三者検証が難しく、またサーバ装置1が保持すべきデータが大きくなるという問題がある。
上記第2の方法では、マイニングプールが実際に発見したブロック数からプールハッシュレートを計算するため、特にハッシュレートの低いプールで値が不正確になる問題がある。その一方で上記第2の方法によれば、実際にブロックチェーンに記録されたデータを参照するために第三者検証が容易である。
ネットワークのハッシュレートについては、ブロックチェーンに記録されたデータを参照することでおおよその値を知ることができる。
【0023】
目標値設定部61は、提供率算出部63が算出する、サーバ装置1が提供するマイニングプールがネットワーク全体に占める計算力提供率に関して、任意の制御目標を目標値として設定する。
手数料設定部62は、マイニングプールの計算力提供率を制御するために、マイニングプールに参加する利用者から徴収するマイニング手数料を設定する。
目標値設定部61によって設定された目標値と、提供率算出部63によって観測された計算力提供率の現実値との偏差、差分が手数料設定部62に入力される。
手数料設定部62は、入力された偏差の情報に基づいて下記に説明する方法で、マイニングプールに参加する利用者から徴収するマイニング手数料を決定する。決定された手数料は取得部56によって即時反映される。
【0024】
手数料設定部62が決定したマイニング手数料は、マイニングプールに参加する利用者の数、すなわちマイニングプールの計算力に影響を与える。
ここで、マイニングプールの参加者数とはマイニングプールあるいはサーバ装置1に接続するクライアント装置2の数と同義である。
マイニング手数料が高くなればマイニングプールに参加する利用者数が減少して計算力が減少し、逆に手数料が低くなれば、マイニングプールに参加する利用者数が増加して計算力が増加すると考えられる。
提供率算出部63は、手数料の変更に伴って変動したマイニングプールの計算力のネットワーク全体に占める計算力提供率をさらに算出して、算出した現実値と目標値との偏差を手数料設定部62に入力するフィードバック制御を行う。
このフィードバック制御はマイニングプールの計算力提供率が目標値設定部61によって設定された目標値に到達するまで繰り返される。フィードバック制御は、計算力提供率が目標値に到達したあとも、計算力提供率が目標値を維持できるように継続して行われてもよい。
目標値設定部61で設定した目標値、手数料設定部62での処理内用、提供率算出部63での処理内容は、いずれも公に開示する。
【0025】
なお、マイニング手数料の変動以外のマイニングプールの計算力に影響を与える要因として、市況などの外乱が考えられる。
外乱とは、例えば暗号通貨の法定通貨に対する価値変動や社会的・政治的動向さらには風評などである。
暗号通貨の価値変動によるマイニング参加人口の増減などネットワーク全体が影響を受ける外乱もあれば、運営会社の不祥事などによる風評で特定のマイニングプールが影響を受ける外乱もある。
このように様々な外的要因でプールの計算力としてのハッシュレートは影響を受ける。本実施形態ではサーバ装置1はそのような外乱を折り込みつつ、マイニング手数料の増減によって計算力提供率の制御を行うものである。
本実施形態のサーバ装置1はプールハッシュレートの絶対値ではなく、ネットワーク全体に占める計算力提供率を制御するものであり、ネットワーク全体に影響を与えるような外乱については事実上無視することが出来る。
また、マイニング手数料を変動させることで、マイニングプール個々に対する外乱の影響を抑えたハッシュレートを実現することもできる。
【0026】
本実施形態の処理の一例を説明する。
計算力提供率の目標値は、目標値設定部61によって任意の実数の値に設定することができ、例えば25%に設定したとする。
手数料設定部62は、図6に示す手数料設定テーブルに基づいて、入力された偏差に応じた手数料を設定する。
25%の目標値に対して対象マイニングプールがネットワーク全体に占める計算力提供率が45%以上になると、目標値との偏差は20%以上となる。
その場合、図6に示すように、手数料設定部62は手数料を5%に設定する。
手数料が5%に設定されることで、参加する利用者が減少して計算力が大きく減少する作用が働く。
25%の目標値に対して上記計算力提供率が35%〜45%になると、目標値との偏差は10%〜20%となる。
その場合、図6に示すように、手数料設定部62は手数料を2%に設定する。
25%の目標値に対して対象マイニングプールがネットワーク全体に占める計算力提供率が25%〜35%になると、目標値との偏差は0%〜10%となる。
その場合、図6に示すように、手数料設定部62は手数料を1%に設定する。
25%の目標値に対して上記計算力提供率が15%〜25%になると、目標値との偏差は−10%〜0%となる。
その場合、図6に示すように、手数料設定部62は手数料を0.5%に設定する。
【0027】
25%の目標値に対して上記計算力提供率が5%〜15%になると、目標値との偏差は−20%〜−10%となる。
その場合、図6に示すように、手数料設定部62は手数料を0%に設定する。すなわちマイニング報酬から手数料を徴収しないかたちとなる。
手数料が0%に設定されることで、参加する利用者が増加して計算力が増加する作用が働く。
さらに、25%の目標値に対して上記計算力提供率が5%以下になると、目標値との偏差は20%以下となる。
その場合、図6に示すように手数料設定部62は手数料を−0.1%に設定する。すなわちマイニング報酬に対して0.1%分を上乗せした報酬を支払うことになる。
手数料をとられるどころかマイニング報酬に上乗せがされるため、参加する利用者が大幅に増加して計算力が大きく増加する作用が働く。
計算力提供率を抑えるためにマイニングプールの参加する利用者数が極端に減ると、今度はマイニングプールの事業そのものの継続性が厳しくなる。
そこで、手数料設定部62は手数料を低くあるいはマイナスに設定して、利用者数を増加させることも可能にしている。
【0028】
このように図6のテーブルに従って、設定部57は、ネットワーク全体の計算力に対して対象マイニングプールの計算力が占める比率、すなわち計算力提供率が大きくなるほどマイニング手数料を高く設定する。
サーバ装置1は、マイニング手数料を高く設定することでマイニングプールに参加する利用者を減らしてマイニングプールの計算力を下げ、計算力提供率を適正に保つことが可能となる。
しかも、マイニング手数料を変動させることで利用者自身の判断でマイニングプールへの参加を決めさせるので、利用者の納得いくかたちでマイニングプールの計算力提供率が過剰になることを避けることが出来る。
【0029】
なお、記憶部60の計算力情報23に過去の計算力提供率の履歴を保持し、手数料設定部62はそれに基づいて手数料の決定を行なってもよい。
計算力情報23には、例えば、過去1日分の計算力提供率の履歴を保持する。
そして、手数料設定部62は、保持されている過去1日分の計算力提供率と目標値との偏差の平均値(移動平均)に対し、図6のテーブルに基づいてマイニング手数料を決定する。
このようにすることで、突発要因による急激な手数料の変動を抑制して緩やかにし、利用者を混乱させることを防ぐことが出来る。
また、手数料設定部62は、計算力提供率の現実値と目標値の偏差について、現在時刻に近いほど重みを強くした所定期間の平均値(重み付け移動平均)を求め、その平均値に基づいてマイニング手数料の決定を行なってもよい。
このようにすることで、サーバ装置1は、急激な手数料の変動を抑制しながらも、参加する利用者数など現在時刻の状況に応じた手数料の設定を行うことが出来る。
サーバ装置1は、マイニングプールに提供された計算力のネットワーク全体に占める割合を計算し、計算結果をフィードバックすることでマイニング手数料を自動的に計算して設定する。自動計算の計算式は利用者に開示されるものとする。
【0030】
図7は本実施形態のサーバ装置によって行われる情報の提示を説明する図である。
Webサーバとして機能するサーバ装置1の提示部59は、クライアント装置2、マイニング装置3、取引装置4等外部装置からの要求に応じて、グラフ200(図7参照)を動的に生成して提示する。グラフ200は、マイニング手数料と、手数料を設定した根拠となったマイニングプール及びネットワークの各ハッシュレートと、計算力提供率と、の関連性を表す。
グラフ200はマイニング手数料の時系列上の推移と、その根拠となったデータを確認できるグラフであり、クライアント装置2では、Webブラウザによって表示装置8にグラフ200を表示可能にされる。
手数料の根拠となったデータは、ネットワークハッシュレート、プールハッシュレート、計算力提供率のうちの少なくとも一つである。
利用者が例えばグラフ200上にマウスカーソル201を合わせる操作を行うと、Webブラウザによって、マウスカーソル201に対応する箇所のデータが提示部59に問い合わされる。
問い合わされたデータを提示部59がブラウザに返すことにより、該当のデータがグラフ200上にポップアップ表示されうる。
なお、グラフ200において計算力提供率とマイニング手数料との関係は図6のテーブルに示した関係と同じである。計算力提供率の目標値も図6と同様25%で設定されているものとする。
グラフ200における、ある日付の5時時点では、ネットワークハッシュレートが14.6TH/s、マイニングプールのハッシュレートが5.59TH/sであり、その結果、計算力提供率が38.3%である。
また、グラフ200は、ある日付の5時時点において、その時点の計算力提供率と、計算力提供率の目標値との差分が13.3%であるため、図6のテーブルに従って、マイニング手数料が2%に設定されていたことを明示している。
このようにマイニング手数料が決定された根拠が明示されることによって、特にクライアント装置2の利用者はマイニング手数料の変動に不信感を抱くことなく、安心してマイニングプールに参加することが出来る。
【0031】
図8は、本実施形態のサーバ装置が行う処理を説明するフローチャートである。
図8を参照して、実施形態のサーバ装置1において実行される処理を説明する。以下の説明において、説明の簡単化のため、サーバ装置1の制御部50が実行する処理のことをサーバ装置1が実行する処理と記載する。
ステップS100において、サーバ装置1は振分部52によって、接続されている複数のクライアント装置2に探索するナンスの範囲を振り分ける。
ステップS101において、サーバ装置1は、送信部54によって探索範囲を含む探索要求をクライアント装置2に送信する。
ステップS102において、サーバ装置1は、受信部53によってネットワークから正しいナンスを受信したかを判定する。
正しいナンスを受信したと判定した場合(ステップS102でYes)、サーバ装置1はそのまま処理を終了する。
正しいナンスを受信していないと判定した場合(ステップS102でNo)、ステップS103において、サーバ装置1は、受信部53によって正しいナンスをクライアント装置から受信したか否かを判定する。
正しいナンスをクライアント装置から受信したと判定した場合、ステップS104において、サーバ装置1は、送信部54によって正しいナンスとデータを含むブロックをネットワークに送信する。
そして、ステップ105において、サーバ装置1は、設定部57によって今回のマイニングに関するマイニング手数料を設定する。
このマイニング手数料の設定処理は、図5で説明した、計算力提供率と目標値とに基づいてマイニング手数料設定部62で行われる処理そのものである。
次に、ステップS106において、サーバ装置1は、取得部56によって今回のマイニングで得られたマイニング報酬からマイニング手数料を取得し、ステップS107において、分配部58によってマイニング報酬からマイニング手数料を差し引いた報酬を、各クライアント装置に分配する。
以上のように構成したので、本実施形態のサーバ装置1は、マイニングプールがネットワーク全体に占める計算力提供率を目標値に常に近づくように制御して、計算力提供率を適正に保つことが出来る。
しかも、マイニング手数料を変動させることで利用者自身の判断でマイニングプールへの参加を決めさせるので、利用者の納得いくかたちでマイニングプールの計算力提供率が過剰になることを避けることが出来る。
【0032】
図9は、コンピュータ装置の一実施例を示すブロック図である。
図9を参照して、サーバ装置1、クライアント装置2、マイニング装置3の構成を説明する。サーバ装置1、クライアント装置2、マイニング装置3及び取引装置4は、コンピュータ装置300に記載の構成要素の一部または全てを適宜選択して構成することができる。
図23において、コンピュータ装置300は、制御回路301と、記憶装置302と、読書装置303と、記録媒体304と、通信インターフェイス305(通信I/F)と、入出力インターフェイス306(入出力I/F)と、入力装置307と、表示装置308とネットワーク309とを備えている。
上記の各構成要素は、バス310により接続されている。
制御回路301は、コンピュータ装置300全体の制御をする。そして、制御回路301は、例えば、CPU、マルチコアCPU、FPGA(Field Programmable Gate Array)およびPLD(Programmable Logic Device)などのプロセッサである。
制御回路301は、図2において、制御部10として機能する。
また制御回路301は、図3において、制御部30として機能する。
また制御回路301は、図4において、制御部50として機能する。
【0033】
記憶装置302は、各種データを記憶する。そして、記憶装置302は、例えば、ROM(Read Only Memory)およびRAM(Random Access Memory)などのメモリや、HD(Hard Disk)などで構成される。記憶装置302は、制御回路301を制御部として機能させるプログラムを記憶してもよい。
記憶装置302は、図2において記憶部20として機能する。
また記憶装置302は、図3において記憶部40として機能する。
また記憶装置302は、図4において記憶部60として機能する。
また記憶装置302のうち、ROMは、ブートプログラムなどのプログラムを記憶している。RAMは、制御回路301のワークエリアとして使用される。HDは、OS、アプリケーションプログラム、ファームウェアなどのプログラム、および各種データを記憶している。
【0034】
読書装置303は、制御回路301に制御され、着脱可能な記録媒体304のデータのリード/ライトを行なう。そして、読書装置303は、例えば、FDD(Floppy Disk Drive)、CDD(Compact Disc Drive)、DVDD(Digital Versatile Disk Drive)、BDD(Blu-ray(登録商標) Disk Drive)およびUSB(Universal Serial Bus)などである。
【0035】
記録媒体304は、各種データを保存する。そして、記録媒体304は、読書装置303を介してバス310に接続され、制御回路301が読書装置303を制御することにより、データのリード/ライトが行なわれる。
記録媒体304は、制御回路301を制御部10、30、50として機能させるプログラムを記録してもよい。
また、記録媒体304は、例えば、FD(Floppy Disk)、CD(Compact Disc)、DVD(Digital Versatile Disk)、BD(Blu-ray(登録商標) Disk)、及びフラッシュメモリなどの非一時的記録媒体である。
【0036】
通信インターフェイス305は、ネットワーク309を介してコンピュータ装置300と他の装置とを通信可能に接続する。
通信インターフェイス305は、図2において、受信部11、送信部16として機能する。
また通信インターフェイス305は、図3において、受信部31、送信部33、接続部34、取得部35として機能する。
また通信インターフェイス305は、図4において、接続部51、受信部53、送信部54、取得部56、提示部59として機能する。
【0037】
入出力インターフェイス306は、例えば、キーボード、マウス、タッチパネル、およびスキャナなどの入力装置307と接続され、接続された装置から各種情報を示す信号が入力されると、バス310を介して入力された信号を制御回路301に出力する。また、入出力インターフェイス306は、制御回路301から出力された各種情報を示す信号がバス310を介して入力されると、接続された各種装置に入力された信号を出力する。
【0038】
表示装置308は、制御部30から入力される信号に基づいて、各種情報を表示する。また、表示装置308は、例えば、例えばCRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)、PDP(Plasma Display Panel)、およびOELD(Organic Electroluminescence Display)などである。
そして、表示装置308は、図3において、表示装置8として機能する。
ネットワーク309は、例えば、LAN、無線通信、またはインターネットなどであり、コンピュータ装置300と他の装置を通信接続する。
なお、本実施形態は、以上に述べた実施形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【符号の説明】
【0039】
1 サーバ装置、2 クライアント装置、3 マイニング装置、4 取引装置、8 表示装置、10 制御部、11 受信部、12 検証部、13 探索部、14 生成部、15 判定部、16 送信部、20 記憶部、21 ブロックチェーン、22 未承認情報、23 計算力情報、30 制御部、31 受信部、32 探索部、33 送信部、34 接続部、35 取得部、40 記憶部、50 制御部、51 接続部、52 振分部、53 受信部、54 送信部、55 判定部、56 取得部、57 設定部、58 分配部、59 提示部、60 記憶部、61 目標値設定部、62 手数料設定部、63 提供率算出部、100 ネットワーク構造、150 ネットワーク、160 ネットワーク、200 グラフ、201 マウスカーソル、300 コンピュータ装置、301 制御回路、302 記憶装置、302 制御回路、303 読書装置、304 記録媒体、305 通信インターフェイス、306 入出力インターフェイス、307 入力装置、308 表示装置、309 ネットワーク、310 バス
図1
図2
図3
図4
図5
図6
図7
図8
図9