JP2019106612A - 暗号通貨のマイニングシステム - Google Patents

暗号通貨のマイニングシステム Download PDF

Info

Publication number
JP2019106612A
JP2019106612A JP2017237569A JP2017237569A JP2019106612A JP 2019106612 A JP2019106612 A JP 2019106612A JP 2017237569 A JP2017237569 A JP 2017237569A JP 2017237569 A JP2017237569 A JP 2017237569A JP 2019106612 A JP2019106612 A JP 2019106612A
Authority
JP
Japan
Prior art keywords
mining
unit
operation unit
server
resource
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.)
Pending
Application number
JP2017237569A
Other languages
English (en)
Inventor
哲教 本田
Tetsunori Honda
哲教 本田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Eagle Tree Co Ltd
Original Assignee
Eagle Tree Co Ltd
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 Eagle Tree Co Ltd filed Critical Eagle Tree Co Ltd
Priority to JP2017237569A priority Critical patent/JP2019106612A/ja
Publication of JP2019106612A publication Critical patent/JP2019106612A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】計算リソースのユーザに特段意識させることなくユーザの計算リソースでブロックチェーンの整合性の検証を行うことで、マイニングプール全体として効率よく報酬を受領することが可能な暗号通貨のマイニングシステムを提供すること。【解決手段】ネットワーク2上にブロードキャストされた暗号通貨による取引情報を取得するサーバ4と、サーバ4から取引情報の少なくとも一部を取得して、この少なくとも一部の取引情報に基づいて分散台帳としてのブロックチェーンの整合性を検証する計算リソース5とを備え、計算リソース5は、所定のアプリケーションプログラムを実行する第1演算部30と、ブロックチェーンの整合性を検証するマイニングプログラムを実行する第2演算部31とを備え、第2演算部31は、第1演算部30が所定のアプリケーションプログラムを実行している期間においてマイニングを実行する。【選択図】図2

Description

本発明は、暗号通貨による取引で用いられるデジタル署名の完全性を検証するとともに、取引に基づき生成される分散台帳としてのブロックチェーンの整合性を検証して報酬を受領する暗号通貨のマイニングシステムに関し、特に、マイニングプール等のコミュニティにおける計算リソースを有効に活用する暗号通貨のマイニングシステムに関する。
近年、ビットコイン等に代表される暗号通貨が普及しつつある。暗号通貨においては、中央銀行や政府の信用に基づく中央集権的な管理に依存することなく取引に係る情報の信頼性を担保することが可能なブロックチェーンなる機構が導入される。
ブロックチェーンにおいては、取引に係る情報に対する暗号化やデジタル署名等の技術を導入することで取引情報の改ざんが防止される。
また、ブロックチェーンは、暗号通貨の取引情報がブロックと称される単位で連鎖(チェーン)する構造を持ち、ブロックチェーンの生成に際しては、ネットワークに接続された一つのノード(コンピュータ、サーバ等の計算リソース)が当該ネットワークにブロードキャストされた取引情報に不正がないことを検証し、その取引情報を含んだブロックを生成するとともに、検証結果を他のノードに通知し、この検証結果がブロックを生成したノード以外の複数のノードで承認されることで二重譲渡等の不正が防止される。即ち、暗号通貨を用いた取引において当事者間でやり取りされる取引情報の完全性及びブロックチェーンの整合性は、ネットワークに接続された複数のノードによる合意形成によって担保されている。
このように、ブロックチェーンは分散台帳を実現する技術であり、Peer to Peerネットワークにおいて取引に参加する者が共有する台帳として機能する。
暗号通貨を金のような鉱物になぞらえて、ブロックを生成するプロセスは「採掘(マイニング)」、採掘を行う者(ノード)は「採掘者(マイナ)」のように称される。ブロックを生成するプロセスは、いわゆる「くじ引き」に見立てられる全探索・総当たり的な数学的演算処理に基づいており、一般に大きな計算コストを要するものの、取引情報の完全性とブロックチェーンの整合性を検証したマイナとしてのノードは報酬を受領することができる。
具体的には、マイニングによって報酬を受領するノードは、ブロックに格納する先頭の取引を、「無」から自己のノード(アドレス)に宛てられた取引(通貨の生成取引)とすることが許されている。この報酬を受領するためにノード間では激しい競争が行われる。このように、計算コストによって悪用を防ぐ方法は、一般にPoW(Proof of Work:作業証明)と称される。(非特許文献1,非特許文献2)
斉藤賢爾、「これでわかった ビットコイン [生き残る通貨の条件]」、初版、太郎次郎社エディタス、2014年5月5日、p.87−89 斉藤賢爾、ビットコイン−人間不在のデジタル巨石貨幣、WIDEテクニカルレポート
さて、マイニングでは大きな計算能力を有するノードが圧倒的に有利であり、例えばASIC(Application Specific Integrated Circuit)を備える専用ハードウェアを用いたとしても、個人のマイナがマイニングに成功する可能性は極めて低くなっている。そこで、複数のマイナが協力してマイニングを行うマイニングプールと呼ばれるコミュニティが知られている。マイニングプールでは、コミュニティの参加者にマイニングの結果得られた報酬がその貢献度に応じて分配される。
しかしながら、マイニングのためのみに自己が所有する計算リソースの全てを割り当てる(即ち、計算リソースにおいて、いわゆるマイニングツールと称されるアプリケーションプログラムのみを専ら稼働させる)ことに抵抗を覚える者も多い。潜在的には、マイニングツールを自らの意思で稼働させる積極的な参加者よりも、マイニングを特段意識することなくコミュニティへの参加を希望する消極的な参加者が多数存在すると考えられる。
このような潜在的な参加者を増加させることで、マイニングプール全体としてみたときの計算能力を大幅に増大させることが可能となるが、従来技術ではマイニングプールにおいて、消極的な参加者の計算リソースを最大限に活用する技術や手法については示唆されていない。
本発明は、このような従来技術の課題を解決するべく案出されたものであり、その主な目的は、計算リソースのユーザに特段意識させることなくユーザの計算リソースでマイニング、特にブロックチェーンの整合性の検証を行うことで、マイニングプール全体として効率よく報酬を受領することが可能な暗号通貨のマイニングシステムを提供することにある。
前記課題を解決するためになされた本発明は、ネットワークに接続されて、前記ネットワーク上にブロードキャストされた暗号通貨による取引情報を取得するサーバと、前記サーバから前記取引情報の少なくとも一部を取得して、この少なくとも一部の取引情報に基づいて分散台帳としてのブロックチェーンの整合性を検証する計算リソースとを備え、前記計算リソースは、所定のアプリケーションプログラムを実行する第1演算部と、前記ブロックチェーンの整合性を検証するマイニングプログラムを実行する第2演算部とを備え、前記第2演算部は、前記第1演算部が前記所定のアプリケーションプログラムを実行している期間において、前記マイニングプログラムを実行する暗号通貨のマイニングシステムである。
これによって、計算リソースのユーザが所定のアプリケーションプログラムを実行している際に、アプリケーションプログラムを実行するリソースとは異なるリソースにてマイニングプログラムが実行され、計算リソースのユーザに特段意識させることなくマイニングを行わせることが可能となり、結果的にマイニングプール全体として効率よく報酬を受領することが可能となる。
また、本発明は、前記サーバにおいて、前記ネットワーク上にブロードキャストされた暗号通貨による取引情報に含まれるデジタル署名の完全性を検証し、前記計算リソースにおいて、前記ブロックチェーンの整合性を検証するようにしたものである。
これによって、サーバと計算リソースとの間で機能分担を図り、計算リソースをブロックチェーンの整合性の検証にのみ特化させることで、計算リソースのメモリの記憶容量が少なくともマイニングシステム全体として効率よくマイニングを行うことができる。
また、本発明は、前記第2演算部は、前記ブロックチェーンの整合性の検証が成功した場合に、前記第1演算部に対して新たなブロックのハッシュ値の生成に用いたパラメータを出力し、前記第1演算部は、入力された前記パラメータを前記サーバに送信し、前記サーバは、受信した前記パラメータに基づいて新たなブロックを生成し、このブロックが第三者に認定されることで報酬を受領するようにしたものである。
これによって、暗号通貨のマイニングシステムは報酬を得ることが可能となる。
また、本発明は、前記第1演算部をCPUで構成し、前記第2演算部をGPUまたはASICで構成したものである。
これによって、アプリケーションプログラムを実行する際に使用されていないリソースを有効に活用してマイニングを行うことが可能となる。
また、本発明は、前記計算リソースは、更に稼働時間計測部を備え、前記稼働時間計測部は、前記第2演算部が前記マイニングプログラムを実行していた時間を計測するようにしたものである。
これによって、計算リソースがマイニングに貢献した度合を計測することが可能となる。
また、本発明は、前記計算リソースは、前記第1演算部が前記所定のアプリケーションプログラムの実行を停止した後に、前記第2演算部が前記マイニングプログラムを実行した時間を前記サーバに送信するようにしたものである。
これによって、サーバは計算リソースの貢献に応じて、計算リソースに報酬を配分することが可能となる。
また、本発明は、前記サーバは、前記計算リソースに対して前記所定のアプリケーションプログラムを提供するアプリケーション提供部と、前記計算リソースに対して前記アプリケーションプログラムの提供に係る対価を課金する課金部とを更に備え、前記課金部は、前記サーバに対して通知された、前記第2演算部が前記マイニングプログラムを実行した時間に基づいて、前記計算リソースの報酬額を決定し、前記所定のアプリケーションプログラムの提供に係る対価から前記報酬額を減算して、前記計算リソースに対して課金するようにしたものである。
これによって、サーバは受領した報酬を、計算リソースの貢献度に応じて、アプリケーションプログラムの提供の対価に還元させ、計算リソースのユーザの費用負担を軽減することが可能となる。
このように本発明によれば、計算リソースのユーザが所定のアプリケーションプログラムを実行している際に、アプリケーションプログラムを実行するリソースとは異なるリソースにてマイニングプログラムが実行され、計算リソースのユーザに特段意識させることなくマイニングを行わせることが可能となり、結果的にマイニングプール全体として効率よく報酬を受領することが可能となる。
本発明の第1実施形態に係る暗号通貨のマイニングシステムS1と他の構成要素との関係を示す説明図 本発明の第1実施形態に係るマイニングシステムS1の構成を示すブロック構成図 本発明の第1実施形態に係るマイニングシステムS1が検証対象とするブロックチェーン50の構成を示す説明図 本発明の第1実施形態におけるマイニングシステムS1の処理、特にサーバ4における処理の概要を示すフローチャート 本発明の第1実施形態において、計算リソース5の第1演算部30の処理を示すフローチャート 本発明の第1実施形態において、計算リソース5の第2演算部31の処理を示すフローチャート 本発明の第2実施形態に係るマイニングシステムS2の構成を示すブロック構成図 本発明の第3実施形態に係るマイニングシステムS3の構成を示すブロック構成図
(第1実施形態)
以下、本発明の第1実施形態について図面を参照して説明する。図1は、本発明の第1実施形態に係る暗号通貨のマイニングシステムS1と他の構成要素との関係を示す説明図である。
図1において、1は例えばインターネット等のネットワーク2aに接続されて暗号通貨のマイニングを実行するノードであり、本発明に係る暗号通貨のマイニングシステムS1(以降、単に「マイニングシステムS1」と称することがある。)も、ノード1の一つとしてネットワーク2aに接続されている。ネットワーク2aには、スマートフォン等の情報端末で構成され暗号通貨を用いて取引を行う決済端末3が接続されている。決済端末3としてのスマートフォンは暗号通貨の利用者に携帯され、例えばWiFi(Wireless Fidelity)等の無線技術によってネットワーク2aに接続される。もちろん決済端末3は、パーソナルコンピュータやタブレット端末等であっても構わない。なお、以降の説明においてマイニングシステムS1以外のノード1を「第三者ノード6」と称することがある。
暗号通貨を用いた取引が行われると、決済端末3から取引情報がネットワーク2に配信(ブロードキャスト)される。各ノード1はネットワーク2aを介して取引情報(以降、「トランザクション」と称することがある。)を取得し、取引情報の完全性とブロックチェーンの整合性を検証する。そして最初にこれらの検証に成功してブロックチェーンに新たなブロックを追加したノード1が報酬を受領する。この検証によって報酬を得る行為は、上述したように発掘(マイニング)と称され、マイニングを行う者は採掘者(マイナ)と称される。なお、以降、取引情報の完全性とブロックチェーンの整合性を検証して報酬を得られる状況を、「マイニングに成功した」のように称することがある。
ネットワーク2aに接続されたノード1の一つであるマイニングシステムS1は、サーバ4と計算リソース5とを含み、いわゆるマイニングプールを構成する。サーバ4と計算リソース5はインターネット等のネットワーク2bに接続されており、相互にデータをやりとりし、計算リソース5では少なくともブロックチェーンの整合性を検証するマイニングプログラムが実行される。ここで計算リソース5は例えばパーソナルコンピュータのような計算機で構成され、後述するようにCPU(Central Processing Unit)とGPU(Graphics Processing Unit)とを実装している。
なお、上述のごとくマイニングシステムS1を構成するサーバ4と計算リソース5とはネットワーク2aとは独立したネットワーク2bで接続されているものと説明したが、実際はネットワーク2bとネットワーク2aとを区別する必要はなく、これらのネットワーク2a,2bは同一であってもよい(以降、ネットワーク2aとネットワーク2bをまとめて「ネットワーク2」と称することがある)。
マイニングシステムS1も、ネットワーク2a上にブロードキャストされたトランザクションを受信して、マイニングを試みる。
図2は、本発明の第1実施形態に係るマイニングシステムS1の構成を示すブロック構成図である。図2において、サーバ4は、CPU等で構成された第3演算部10と、第3演算部10で実行されるプラグロムを記憶するとともにワークエリアとして機能するRAM(Random Access Memory)やフラッシュメモリ等の不揮発性メモリで構成された第2記憶部11と、ネットワーク2を介して計算リソース5との間でデータを送受信する第2送受信部12と、ネットワーク2にブロードキャストされたトランザクションのうち、取引で使用されるデジタル署名におけるハッシュ値を復号する送信者(一般に複数)の公開鍵を格納した公開鍵データベース13(以降、「公開鍵DB13」と称することがある)と、サーバ4が利用するアプリケーションプログラム、OS(Operating System)及び計算リソース5に有償貸与(利用に係るライセンス許諾)するアプリケーションプログラムを格納したアプリケーションデータベース14(以降、「アプリケーションDB14」と称することがある。)を備える。公開鍵DB13及びアプリケーションDB14は、HDD(Hard Disc Drive)やフラッシュメモリ等の不揮発性メモリで構成される。
第3演算部10と第2記憶部11と第2送受信部12と公開鍵DB13とアプリケーションDB14とは、第2バス15で接続され、相互にデータをやりとりする。
なお、計算リソース5に貸与されるアプリケーションプログラムは、アプリケーションDB14に格納されずに、図示しない第2サーバに格納しておき、計算リソース5は当該第2サーバにアクセスしてアプリケーションプログラムをダウンロードしてもよい。
図3は、本発明の第1実施形態に係るマイニングシステムS1が検証対象とするブロックチェーン50の構成を示す説明図である。図示するように、ブロックチェーン50は複数のブロック51で構成され、各ブロック51には多数の取引情報としてのトランザクション(図3には、単に「取引」と記載している)と、前ブロックのハッシュ値と、マイニングに際して使用するパラメータであるNonce(ナンス)とが含まれる。以降、図2に図3を併用して説明を続ける。
第3演算部10は、受信したトランザクションに含まれるデジタル署名を、公開鍵DB13に記憶された送信者の公開鍵で復号し、デジタル署名が改ざん等されていないか(完全性)を検証する完全性検証部21と、Nonceの範囲を計算リソース5に指定するNonce指定部22と、計算リソース5がマイニングを行ってブロックチェーン50の整合性を検証した場合に報酬を発生させる報酬発生部23と、計算リソース5の要求に応じて計算リソース5が利用するアプリケーションプログラムを提供するアプリケーション提供部24と、計算リソース5に対して貸与したアプリケーションプログラムの利用料金を課金する課金部25とを備える。
図2では、第3演算部10を機能ブロックの集合として記載しているが、実際は第3演算部10の構成要素としてのCPUが、第2記憶部11に記憶されたプログラムを実行することで、これらの機能が発揮される。
計算リソース5は、CPUで構成された第1演算部30と、GPUで構成された第2演算部31と、第1演算部30及び第2演算部31で実行されるプラグロムを記憶するとともにワークエリアとして機能するRAM等で構成された第1記憶部32と、ネットワーク2bを介してサーバ4との間でデータを送受信する第1送受信部33と、サーバ4から提供を受け(貸与されて)第1演算部30で実行されるアプリケーションプログラムや、OSを格納したアプリケーション記憶部34を備える。アプリケーション記憶部34は、HDD(Hard Disc Drive)やフラッシュメモリ等の不揮発性メモリで構成される。
もちろん、第2演算部31が実行するマイニング(特にブロックチェーンの整合性の検証)の用に供されるプログラム(以降、「マイニングプログラム」と称することがある。)はアプリケーション記憶部34に記憶されていてもよい。
なお、ブロックチェーンの整合性の検証に際してはハッシュ関数で用いられ、ハッシュ関数における浮動小数点演算ではGPUが圧倒的に高い演算能力を持つことから、第1実施形態においては、第2演算部31をGPUで構成しているが、もちろん、第2演算部31としてASICを採用してもよい。
第1演算部30と第1記憶部32と第2演算部31とアプリケーション記憶部34と第1送受信部33とは、第1バス36で接続され、相互にデータをやりとりする。
第1演算部30は、アプリケーション記憶部34から第1記憶部32に転送され、第1記憶部32に一時的に記憶されたアプリケーションプログラムを実行するアプリケーション実行部35を備える。
なお、ここではアプリケーションプログラムとは、計算リソース5においてユーザによって実行される例えば文書作成プログラムや、表計算プログラムや、画像処理プログラム等を指すが、アプリケーションプログラムは特に限定されるものではない。
図2では、第1演算部30を機能ブロックとして記載しているが、実際は第1演算部30を構成するCPUが、第1記憶部32に記憶されたプログラムを実行することで、これらの機能が発揮される。
第2演算部31は、アプリケーション記憶部34から第1記憶部32に転送され、第1記憶部32に一時的に記憶されたマイニングプログラムを実行するマイニング部37と、所定のクロック信号に同期してカウントを行うタイマで構成されマイニング部37が実際に稼働した時間を計測する稼働時間計測部38とを備える。
図2では、第1演算部30を機能ブロックの集合として記載しているが、実際は第2演算部31を構成するGPUが、第1記憶部32に記憶されたプログラムを実行することで、これらの機能が発揮される。
なお、独立したデータバス/アドレスバスを介してGPUと接続された記憶部(図示せず)を第2演算部31に別途設けて、この記憶部にマイニングプログラムを記憶させGPUによって実行させるようにしてもよい。このように構成することで、マイニングを高速化することが可能となる。
図4は、本発明の第1実施形態におけるマイニングシステムS1の処理、特にサーバ4における処理の概要を示すフローチャートである。以降、図4に図2を併用して本発明に係るマイニングシステムS1で実行される処理について説明する。
サーバ4は、第2送受信部12を介してネットワーク2上にブロードキャストされたトランザクションを受信する(ST001)。受信したトランザクションは第2記憶部11に記憶される。サーバ4は受信したトランザクションに未検証のトランザクションがないか判定し(ST002)、未検証のトランザクションが存在する場合(ST002でYes)、当該トランザクションを第2記憶部11から取得する(ST003)。
次に完全性検証部21は、トランザクションの完全性、即ち受信したトランザクションに改ざん等が行われていないかを検証する(ST004)。具体的には、公開鍵DB13を参照して、受信したトランザクションに含まれるデジタル署名を、送信元の公開鍵で復号して第1ダイジェストを取り出し、更に受信したトランザクションのデータ全体のうちデジタル署名を除いたデータから、ハッシュ関数を用いて第2ダイジェストを生成する。両者が一致していれば、トランザクションの送信者が正当(なりすましが行われていない)であり、かつトランザクションに改ざんが行われていないことが検証される。もちろん、完全性検証部21が複数のトランザクションに含まれるデジタル署名を全て検証した場合に、完全性が検証されたと判定するようにしてもよい。
完全性検証部21は、第1ダイジェストと第2ダイジェストが一致して完全性が満たされるか否かを判定し(ST005)、完全性が満たされる場合は(ST005でYes)、複数の計算リソース5に対してNonce以外のブロックヘッダ(以降、単に「ブロックヘッダ」と称することがある。)をブロードキャストする(ST006)。ここで、ブロックヘッダとは、トランザクションのデータのうちマークル・ルート(根ノード)のハッシュ値(ルートハッシュとも称される)のみを含み、ハッシュ木(全てのノードがハッシュを持った二分木)で繋がれた個々のトランザクションのハッシュ値は含まない。即ちブロックヘッダにはブロック全体としてのハッシュ値のみが含まれる。
他方、完全性が満たされない場合(ST005でNo)、処理はST002に戻る。ブロードキャストされたブロックヘッダは計算リソース5によって受信され、マイニング(ここでは、ブロックチェーン50の整合性)が検証される(ST007。詳細は後述する)。
なお、ST006において、計算リソース5に対してブロックヘッダをブロードキャストするにあたって、Nonce指定部22でNonceの数値範囲を、例えばマイニングに参加する計算リソース5の演算能力として想定されるランク別に複数定めてリスト化(以降、「Nonceリスト」と称することがある。)しておき、別途Nonceリストをブロードキャストしてもよい。
このとき、ブロックヘッダを受信した計算リソース5は、自己の演算能力に応じてマイニングに際して使用するNonceの数値範囲をNonceリストから選択する。そして計算リソース5は自己が選択したNonceリストの番号をサーバ4に通知(宣言)し、Nonce指定部22は、特定の計算リソース5が使用する旨を宣言した番号を削除したNonceリストを再度ブローキャストしてもよい。これによって、個々の計算リソース5が同一のNonceを重複して使用することを防止して、マイニングシステムS1全体としての効率が向上する。
次にサーバ4は、ブロックヘッダを受信した計算リソース5からマイニングに成功した旨の報告を待ち受ける(ST008)。サーバ4が計算リソース5からマイニングに成功した旨の報告を受信した場合(ST008でYes)、第3演算部10は、計算リソース5から受信したNonce(パラメータ)に基づいて新たなブロックを生成し、その後報酬発生部23は報酬を受領する(ST009)。報酬を受領した後、処理はST001に移る。
さて、報酬の受領は、具体的には報酬発生部23がコインベースと称されるトランザクションを発生させることによって実現される。コインベースは取引ではなくマイニングによって獲得した通貨の生成を行うトランザクション(通貨発生トランザクション)であり、マイニングの成功により新たに生成されたブロックの情報を含む。報酬発生部23は作成した通貨発生トランザクションを、ネットワーク2にブロードキャストする。当該通貨発生トランザクションがネットワーク2に接続された第三者ノード6によって承認されることで、サーバ4は報酬を受領することができる。
このように、報酬の受領者はブロックチェーン50において新しくブロックを生成したノード1となる。通貨発生トランザクションによって、新たにブロックを生成したノード1が所定の通貨を報酬として受領する。マイニングシステムS1が報酬を受領した場合、サーバ4の第2記憶部11を構成する不揮発性メモリ(図示せず)に通貨が記憶される。もちろん図示しないHDD等の記憶手段に記憶してもよい。
サーバ4が計算リソース5からマイニングに成功した旨の報告を受信していない場合(ST008でNo)、サーバ4は、第三者ノード6がマイニングに成功しているか否かを判定する(ST010)。具体的にはマイニングに参加するノード1は、マイニングに成功して新たに生成したブロックを他のノード1にブロードキャストするため、マイニングシステムS1を構成するサーバ4も、第三者ノード6がマイニングに成功したか否かを判定することができる。
第三者ノード6がマイニングに成功した場合(ST010でYes)、処理はST001に戻る。他方、第三者ノード6がマイニングに成功していない場合(ST010でNo)、処理はST008に戻る。
さて、上述したST002で未検証のトランザクションが存在しなかった場合(ST002でNo)、サーバ4は計算リソース5からマイニングを実行した稼働時間を得る(ST011)。そしてサーバ4は受信した稼働時間に基づいて各計算リソース5の貢献度を決定し(ST012)、この貢献度に応じて、受領した報酬の配分額を決定する(ST013)。この配分額は、計算リソース5毎に第2記憶部11を構成する不揮発性メモリ(図示せず)に記憶される。もちろん図示しないHDD等の記憶手段に記憶してもよい。
ここで、第1実施形態においては、上述のごとくサーバ4のアプリケーションDB14には、計算リソース5に対して有償貸与されるアプリケーションプログラムが記憶されており、また、計算リソース5のアプリケーション記憶部34には、サーバ4から貸与されたアプリケーションプログラムが記憶されている。このアプリケーションプログラムの貸与に係る対価は例えば月額料金として定められている。課金部25は当該対価から報酬の配分額を減じて計算リソース5毎の請求額を更新し(ST014)、対価が月額料金として定められている場合は、月に一度、計算リソース5の所有者に対して決済処理を実行する。ST014を終了すると処理はST001に移る。
なお、ST012〜ST014の処理は、実際に課金部25が課金を実行する際に実行されてもよい。即ち、サーバ4は計算リソース5から送信された稼働時間を第2記憶部11等に都度記憶しておき、例えば月に一度、稼働時間を合計し、これに基づいて各計算リソース5の貢献度を決定して、報酬の配分額及び貸与に係る対価からの減額処理を実行してもよい。
図5は、本発明の第1実施形態において、計算リソース5の第1演算部30の処理を示すフローチャートである。以降、図5に図2を併用して、マイニングを実行する計算リソース5の処理、特に第1演算部30の処理について詳細に説明する。
まず、計算リソース5のユーザは、貸与されたアプリケーションプログラムを起動する。これに伴いアプリケーションプログラムは、第1演算部30のアプリケーション実行部35で実行される(ST101)。第1演算部30は、第1送受信部33を介してサーバ4によってブロックヘッダがブロードキャストされているか否かを確認する(ST102)。
ブロックヘッダがブロードキャストされている場合(ST102でYes)、第1演算部30はブロックヘッダを受信する(ST103)。他方、ブロックヘッダがブロードキャストされていない場合(ST102でNo)、アプリケーションプログラムが実行を停止したか(即ち、計算リソース5のユーザがプログラムを終了したか否か)が判定され(ST104)、アプリケーションプログラムの実行が停止している場合(ST104でYes)は、処理を終了する。アプリケーションプログラムの実行が継続されている場合(ST104でNo)、処理はST102に戻る。
ST103を実行した後、第1演算部30は、計算リソース5に第2演算部31が実装されているか否かを判定する(ST105)。実装されている場合(ST105でYes)、第1演算部30は、第2演算部31に対してサーバ4から受信したブロックヘッダを転送する。ここで上述したNonceリストを選択している場合、Nonceの数値範囲もまた第2演算部31に転送される。
ブロックヘッダを転送した後、第1演算部30は第2演算部31に対して稼動指示信号をONに制御する(ST106)。ここでは、第1演算部30と第2演算部31とは信号線40で直接接続されている。具体的には、第1演算部30の所定の出力ポートが第2演算部31の所定の入力ポートに接続されており、第1演算部30は信号線40を介してステート信号としての稼働指示信号をONにする。稼働指示信号をONにすることで、第1演算部30がアプリケーションプログラムを実行していることを前提として、第2演算部31でマイニングが開始される。
なお、計算リソース5に第2演算部31が実装されていない場合(ST105でNo)の処理(図5において、ST2として示す部分の処理)については、第2実施形態で説明する。
ST106を実行した後、第1演算部30は第1バス36を介して第2演算部31からマイニングに成功した旨の通知を待ち受ける(ST107)。マイニングに成功した旨の通知を受け取ると、第1演算部30は第2演算部31に対してマイニングに成功した際のNonceの値と、ブロックヘッダに対するハッシュ値の送信要求を出力し、これらを取得すると、サーバ4に対してネットワーク2を介して送信するとともにマイニングに成功した旨を報告する(ST108)。
ST108を実行した後、第1演算部30は、一旦稼動指示信号をOFFに制御し(ST109)、処理はST102に戻る。
マイニングに成功した旨の通知を受けてない場合(ST107でNo)、第1演算部30はアプリケーション実行部35でのアプリケーションプログラムの実行が停止しているか否かを判定する(ST110)。アプリケーションプログラムの実行が停止されている場合(ST110でYes)、第1演算部30は、第2演算部31からマイニングプログラムを実行した稼働時間を得るとともに、第2演算部31に対する稼動指示信号をOFFに制御する(ST112)。そして、第1演算部30は、サーバ4に対してネットワーク2を介して第2演算部31が稼動した時間を報告し(ST113)、処理を終了する。
即ち、計算リソース5は、第1演算部30が所定のアプリケーションプログラムの実行を停止した後に、第2演算部31がマイニングプログラムを実行した時間をサーバ4に送信する。
図6は、本発明の第1実施形態において、計算リソース5の第2演算部31の処理を示すフローチャートである。以降、図6に図2を併用して、マイニングを実行する計算リソース5の処理、特に第2演算部31の処理について詳細に説明する。
ユーザによって計算リソース5の電源が投入されると、アプリケーション記憶部34から第1記憶部32または第2演算部31の図示しない記憶手段にマイニングプログラムが転送されるとともに、第2演算部31は第1演算部30から信号線40を介して稼働指示信号がONになっているか否かを判定する(ST201)。
第1演算部30でアプリケーションプログラムが実行され(ST101を参照)、稼動指示信号がONになっている場合(ST201でYes)、マイニング部37はマイニングプログラムを実行してマイニングを開始する(ST202)。マイニングプログラムを実行することで、マイニング部37は、第1演算部30から転送されたブロックヘッダに対する整合性検証処理を施す。
具体的には、マイニング部37は、整合性検証処理としてPoW(Proof of Work)と称される処理を実行する。PoWではSHA−256アルゴリズムに基づいて、ブロックヘッダに対してNonceの値を変化させてハッシュ値を計算する。このハッシュ値の先頭に、一定の数以上の0が並んでいるという条件を満たす場合、正当なブロックとして認定される。即ち、「マイニング(発掘)に成功した」とは、上述した条件を満たすハッシュ値を探し当てたことにより、ブロックチェーン50の終端に付加される新しいブロックを生成し得た状況、ということもできる。
このように第1実施形態では、サーバ4で個々のトランザクションの完全性の検証し、計算リソース5でブロックヘッダとNonceを用いてブロックチェーン50の整合性の検証が行われる。即ち、サーバ4と計算リソース5との間で機能分担が図られている。計算リソース5を整合性の検証にのみ特化させることで、計算リソース5の第1記憶部32の容量が少なくともマイニングシステムS1全体として効率よくマイニングを行うことができる。
次に、稼働時間計測部38では、マイニング部37がマイニングを行った稼動時間の計測を開始する(ST203)。具体的には第2演算部31に設けられた図示しないタイマをリセットするとともに、第2演算部31に入力されるクロック信号に基づいて計時を行う。
第2演算部31は、マイニング部37がマイニングに成功したか否かを判定し(ST204)、マイニングに成功したときは(ST204でYes)、第1演算部30に成功した旨の通知を行う(ST205)とともに、PoWで得られた新たなブロックのハッシュ値及びNonceの値(即ち、新たなブロックのハッシュ値の生成に用いたパラメータ)を通知して、処理をST201に戻す。上述したように、第2演算部31からマイニングに成功した旨の通知を受けた第1演算部30は、稼動指示信号を一旦OFFに制御するから(ST109参照)、第2演算部31はマイニングに成功した後は、次に稼動指示信号がONになるのを待ち受ける(ST201参照)。
上述したように、このハッシュ値は第1演算部30からネットワーク2を介してサーバ4に報告され、サーバ4は第三者ノード6による検証を経て通貨発生トランザクションを生成して報酬を受領する。
他方、マイニングに成功していないとき(ST204でNo)は、稼動指示信号がOFFか否かを判定し(ST206)、稼動指示信号がOFFである場合(ST206でYes)は、稼働時間計測部38で計測した稼働時間を第1演算部30に通知し(ST207)、その後処理を終了する。他方、稼動指示信号がONである場合(ST206でNo)は、ST204に処理を移す。
このように、第1実施形態のマイニングシステムS1は、ネットワーク2に接続されて、ネットワーク2上にブロードキャストされた暗号通貨による取引情報(トランザクション)を取得するサーバ4と、サーバ4から取引情報の少なくとも一部(Nonce以外のブロックヘッダ)を取得して、この少なくとも一部の取引情報に基づいて分散台帳としてのブロックチェーン50の整合性を検証する計算リソース5とを備え、計算リソース5は、所定のアプリケーションプログラムを実行する第1演算部30と、ブロックチェーンの整合性を検証するマイニングプログラムを実行する第2演算部31とを備え、第2演算部31は、第1演算部30が所定のアプリケーションプログラムを実行している期間においてマイニングプログラムを実行する。逆に、第2演算部31は、第1演算部30が所定のアプリケーションプログラムを実行していない期間は、マイニングプログラムを実行しない。
また、第1実施形態のマイニングシステムS1は、第2演算部31は、ブロックチェーン50の整合性の検証が成功した場合に、第1演算部30に対して新たなブロックのハッシュ値の生成に用いたパラメータ(Nonce)を出力し、第1演算部30は、入力されたパラメータをサーバ4に送信し、サーバ4は、受信したパラメータに基づいて新たなブロック51を生成し、このブロック51が第三者ノード6に認定されることで、報酬を受領する。
(第2実施形態)
図7は、本発明の第2実施形態に係るマイニングシステムS2の構成を示すブロック構成図である。第1実施形態では、計算リソース5は第2演算部31としてのGPUを具備していたが(図2参照)、第2実施形態では、計算リソース5には第2演算部31が具備されておらず、第1演算部30によってマイニングが実行される。
即ち、第2実施形態のマイニングシステムS2は、図示するように、計算リソース5は、第1演算部30と、第1記憶部32と、アプリケーション記憶部34と、第1送受信部33とを含み、第1演算部30は、アプリケーション実行部35と、マイニング部37と、稼働時間計測部38とを含む。第1演算部30の各構成要素の機能は第1実施形態と同等であるので、ここでの説明は省略する。
なお、第2実施形態は第2演算部31を具備しないことから、図7に示す構成は、図5のST105でNoと判断されたケースに対応する構成であり、図5にST2として示すフローを実行することから、以降、図5に図7を併用して説明を続ける。
計算リソース5のユーザがアプリケーションソフトを実行していることを前提として、第1演算部30はサーバ4がブロードキャストしたブロックヘッダを受信すると(ST103)、ここでは第2演算部31が実装されていないことから(ST105でNo)、第1演算部30は、第1記憶部32の空き容量が十分であるかを判定する(ST114)。空き容量が十分である場合(ST114でYes)、第1演算部30でマイニング(ここでは、ブロックチェーン50の整合性の検証)を開始する(ST115)とともに、稼働時間計測部38による計時を開始する(ST116)。
第1演算部30は、マイニング部37がマイニングに成功したか否かを判定し(ST117)、マイニングに成功していれば(ST117でYes)サーバ4に対して成功した旨と要件を満たすNonceの値及び新たなブロックのハッシュ値を通知する(ST118)。その後、処理をST102に移す。
他方、マイニングに成功していなければ(ST117でNo)、第1演算部30は、アプリケーション実行部35においてアプリケーションプログラムの実行が停止されたか否かを判定し(ST119)、アプリケーションプログラムの実行が停止されている場合(ST119でYes)は、それまでマイニングに要した稼働時間をサーバ4に報告する(ST113)。他方、アプリケーションプログラムが実行されている場合(ST119でNo)は、処理をST117に移す。
ここで、第1記憶部32の空き容量が十分でない場合(ST114でNo)、第1演算部30は、計算リソース5のユーザに対して、表示手段(図示せず)等を介して第1記憶部32の容量が不足しておりマイニングの実行ができない旨、及び貸与の対象ではないプログラムを終了して第1記憶部32を開放するよう通知を行って、ユーザが空き容量を確保するよう促す(ST120)。
次に第1演算部30は、貸与の対象となっているアプリケーションプログラムが実行を停止したか否かを判定し(ST121)、実行を停止している場合(ST121でYes)は、処理を終了する。他方、実行を停止していない場合(ST121でNo)は、処理をST114に移す。
(第3実施形態)
図8は、本発明の第3実施形態に係るマイニングシステムS3の構成を示すブロック構成図である。上述した第1実施形態では、サーバ4の第3演算部10に設けられた完全性検証部21で、個々のトランザクションの完全性を検証しているが、第3実施形態においては、完全性の検証を計算リソース5において行う点が第1実施形態とは異なっている。
第3実施形態のマイニングシステムS3では、図示するように、計算リソース5の第2演算部31のマイニング部37は、完全性検証部21と整合性検証部42とを備えている。第3実施形態では、サーバ4が受信したトランザクションのデータは全て計算リソース5に対してブロードキャストされ、計算リソース5では受信したトランザクションに対して完全性と整合性を検証する。即ち、第2演算部31で実行されるマイニングプログラムは、デジタル署名の完全性及びブロックチェーンの整合性の両方を検証する。
このように、第3実施形態のマイニングシステムS3は、ネットワーク2に接続されて、ネットワーク2上にブロードキャストされた暗号通貨による取引情報を取得するサーバ4と、サーバ4から取引情報(トランザクション)を取得して、この取引情報に基づいてトランザクションの完全性と分散台帳としてのブロックチェーン50の整合性とを検証する計算リソース5とを備え、計算リソース5は、所定のアプリケーションプログラムを実行する第1演算部30と、トランザクションの完全性及びブロックチェーン50の整合性を検証するマイニングプログラムを実行する第2演算部31とを備え、第2演算部31は、第1演算部30が所定のアプリケーションプログラムを実行している期間においてマイニングプログラムを実行する。
以上、本発明に係る暗号通貨のマイニングシステムS1,S2,S3について特定の実施形態に基づいて詳細に説明したが、これらの実施形態はあくまでも例示であって、本発明はこれらの実施形態によって限定されるものではない。例えば、第3実施形態において、完全性検証部21及び整合性検証部42はいずれもマイニング部37に設けられているが、完全性検証部21を第1演算部30に含ませてもよい。また、第1実施形態及び第3実施形態において、稼働時間計測部38は第2演算部31に設けられているが、稼働時間計測部38を第1演算部30に含ませてもよい。
本発明に係る暗号通貨のマイニングシステムは、計算リソースのユーザが意識することなくマイニングに参加することが可能であるから、マイニングに複数のユーザが参加するいわゆるマイニングプール等で用いる暗号通貨のマイニングシステムとして好適に応用することができる。
1 ノード
2,2a,2b ネートワーク
3 決済端末
4 サーバ
5 計算リソース
6 第三者ノード
10 第3演算部
11 第2記憶部
12 第2送受信部
13 公開鍵データベース(公開鍵DB)
14 アプリケーションデータベース(アプリケーションDB)
15 第2バス
21 完全性検証部
22 Nonce指定部
23 報酬発生部
24 アプリケーション提供部
25 課金部
30 第1演算部
31 第2演算部
32 第1記憶部
33 第1送受信部
34 アプリケーション記憶部
35 アプリケーション実行部
36 第1バス
37 マイニング部
38 稼働時間計測部
40 信号線
42 整合性検証部
50 ブロックチェーン
51 ブロック

Claims (7)

  1. ネットワークに接続されて、前記ネットワーク上にブロードキャストされた暗号通貨による取引情報を取得するサーバと、
    前記サーバから前記取引情報の少なくとも一部を取得して、この少なくとも一部の取引情報に基づいて分散台帳としてのブロックチェーンの整合性を検証する計算リソースと
    を備え、
    前記計算リソースは、
    所定のアプリケーションプログラムを実行する第1演算部と、
    前記ブロックチェーンの整合性を検証するマイニングプログラムを実行する第2演算部と
    を備え、
    前記第2演算部は、前記第1演算部が前記所定のアプリケーションプログラムを実行している期間において、前記マイニングプログラムを実行することを特徴とする暗号通貨のマイニングシステム。
  2. 前記サーバにおいて、前記ネットワーク上にブロードキャストされた暗号通貨による取引情報に含まれるデジタル署名の完全性を検証し、前記計算リソースにおいて、前記ブロックチェーンの整合性を検証することを特徴とする請求項1に記載の暗号通貨のマイニングシステム。
  3. 前記第2演算部は、前記ブロックチェーンの整合性の検証が成功した場合に、前記第1演算部に対して新たなブロックのハッシュ値の生成に用いたパラメータを出力し、
    前記第1演算部は、入力された前記パラメータを前記サーバに送信し、前記サーバは、受信した前記パラメータに基づいて新たなブロックを生成し、このブロックが第三者に認定されることで報酬を受領することを特徴とする請求項1または請求項2に記載の暗号通貨のマイニングシステム。
  4. 前記第1演算部をCPUで構成し、前記第2演算部をGPUまたはASICで構成したことを特徴とする請求項1乃至請求項3のいずれか一項に記載の暗号通貨のマイニングシステム。
  5. 前記計算リソースは、更に稼働時間計測部を備え、
    前記稼働時間計測部は、前記第2演算部が前記マイニングプログラムを実行していた時間を計測することを特徴とする請求項1乃至請求項4のいずれか一項に記載の暗号通貨のマイニングシステム。
  6. 前記計算リソースは、前記第1演算部が前記所定のアプリケーションプログラムの実行を停止した後に、前記第2演算部が前記マイニングプログラムを実行した時間を前記サーバに送信することを特徴とする請求項5に記載の暗号通貨のマイニングシステム。
  7. 前記サーバは、
    前記計算リソースに対して前記所定のアプリケーションプログラムを提供するアプリケーション提供部と、
    前記計算リソースに対して前記アプリケーションプログラムの提供に係る対価を課金する課金部と
    を更に備え、
    前記課金部は、
    前記サーバに対して通知された、前記第2演算部が前記マイニングプログラムを実行した時間に基づいて、前記計算リソースの報酬額を決定し、前記所定のアプリケーションプログラムの提供に係る対価から前記報酬額を減算して、前記計算リソースに対して課金することを特徴とする請求項6に記載の暗号通貨のマイニングシステム。
JP2017237569A 2017-12-12 2017-12-12 暗号通貨のマイニングシステム Pending JP2019106612A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017237569A JP2019106612A (ja) 2017-12-12 2017-12-12 暗号通貨のマイニングシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017237569A JP2019106612A (ja) 2017-12-12 2017-12-12 暗号通貨のマイニングシステム

Publications (1)

Publication Number Publication Date
JP2019106612A true JP2019106612A (ja) 2019-06-27

Family

ID=67061468

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017237569A Pending JP2019106612A (ja) 2017-12-12 2017-12-12 暗号通貨のマイニングシステム

Country Status (1)

Country Link
JP (1) JP2019106612A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019139691A (ja) * 2018-02-15 2019-08-22 株式会社アクセル サーバ装置、クライアント装置及びデータ処理システム
WO2021217939A1 (zh) * 2020-04-30 2021-11-04 深圳壹账通智能科技有限公司 用于区块链数据处理的方法、装置及可读存储介质
JP7079539B1 (ja) 2022-01-05 2022-06-02 株式会社Fuel Hash 情報処理方法、情報処理装置及びプログラム
JP7531583B2 (ja) 2020-04-23 2024-08-09 エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー Pow暗号通貨のためのteeベースマイニングプール

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002024417A (ja) * 2000-07-05 2002-01-25 Bookmark Enterprise Inc Aspシステム
JPWO2008096390A1 (ja) * 2007-02-02 2010-05-20 株式会社ソニー・コンピュータエンタテインメント 仲介サーバ、端末、及び分散処理方法
JP2017215728A (ja) * 2016-05-31 2017-12-07 Idein株式会社 報酬分配方法、報酬分配システム及び端末

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002024417A (ja) * 2000-07-05 2002-01-25 Bookmark Enterprise Inc Aspシステム
JPWO2008096390A1 (ja) * 2007-02-02 2010-05-20 株式会社ソニー・コンピュータエンタテインメント 仲介サーバ、端末、及び分散処理方法
JP2017215728A (ja) * 2016-05-31 2017-12-07 Idein株式会社 報酬分配方法、報酬分配システム及び端末

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ナラヤナン アーヴィンド, 仮想通貨の教科書 第1版, JPN6021033903, 9 December 2016 (2016-12-09), pages 196 - 204, ISSN: 0004720794 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019139691A (ja) * 2018-02-15 2019-08-22 株式会社アクセル サーバ装置、クライアント装置及びデータ処理システム
JP2021144736A (ja) * 2018-02-15 2021-09-24 株式会社アクセル サーバ装置、処理システム、処理方法及び処理プログラム
JP7531583B2 (ja) 2020-04-23 2024-08-09 エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー Pow暗号通貨のためのteeベースマイニングプール
WO2021217939A1 (zh) * 2020-04-30 2021-11-04 深圳壹账通智能科技有限公司 用于区块链数据处理的方法、装置及可读存储介质
JP7079539B1 (ja) 2022-01-05 2022-06-02 株式会社Fuel Hash 情報処理方法、情報処理装置及びプログラム
JP2023100174A (ja) * 2022-01-05 2023-07-18 株式会社Fuelhash 情報処理方法、情報処理装置及びプログラム

Similar Documents

Publication Publication Date Title
JP7319404B2 (ja) ブロックチェーン上の迅速な分散型総意
JP7420890B2 (ja) ブロックチェーンで実施されるイベントロック暗号化の方法及びシステム
US12010138B2 (en) Secure blockchain-based consensus
CN109075964B (zh) 支持用于区块验证的多个单向函数的区块链
US10986177B2 (en) Systems and methods of self-forking blockchain protocol
US11836720B2 (en) Infinitely scalable cryptocurrency system with fast, secure verification
KR101950912B1 (ko) 블록체인 기반 트랜잭션 검증 시스템 및 그 방법
JP2019106612A (ja) 暗号通貨のマイニングシステム
US11616649B2 (en) Computer-implemented systems and methods relating to a binary blockchain comprising a pair of coupled blockchains
KR20200099149A (ko) 낮은 엔트로피 패스워드로 블록체인 트랜잭션을 승인하기 위한 컴퓨터 구현 시스템 및 방법
US20190303622A1 (en) Bicameral framework for fast and tamper-resistant blockchain validation
CN111445333A (zh) 区块生成方法、装置、计算机设备以及存储介质
CN112651830A (zh) 应用于电力资源共享网络的区块链共识方法
CN111314066B (zh) 基于区块链的数据转移方法、终端及计算机可读存储介质
Ekbote et al. Blockchain based remittances and mining using CUDA
JP7482893B2 (ja) ブロックチェーンネットワークを利用して取引コストを減らしながらも公正な抽選を行う方法及び装置
KR102504150B1 (ko) 블록체인기반의 더줌코인보상형 포인트환전마켓플레이스 생성장치 및 방법
US20230153770A1 (en) Digital currency
Holmberg How to scale Bitcoin: A payment network that no one controls
KR20200052198A (ko) 블록체인 네트워크에서 보상을 제공하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210831

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220308