JP6897973B2 - サーバ装置、処理システム、処理方法及び処理プログラム - Google Patents
サーバ装置、処理システム、処理方法及び処理プログラム Download PDFInfo
- Publication number
- JP6897973B2 JP6897973B2 JP2018024957A JP2018024957A JP6897973B2 JP 6897973 B2 JP6897973 B2 JP 6897973B2 JP 2018024957 A JP2018024957 A JP 2018024957A JP 2018024957 A JP2018024957 A JP 2018024957A JP 6897973 B2 JP6897973 B2 JP 6897973B2
- Authority
- JP
- Japan
- Prior art keywords
- mining
- blockchain
- currency
- data
- server
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 231
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000005065 mining Methods 0.000 claims description 174
- 238000004364 calculation method Methods 0.000 claims description 41
- 238000000034 method Methods 0.000 claims description 32
- 230000008569 process Effects 0.000 claims description 29
- 230000005540 biological transmission Effects 0.000 claims description 25
- 230000006870 function Effects 0.000 description 25
- 238000013500 data storage Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000009412 basement excavation Methods 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 4
- 239000000126 substance Substances 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 2
- 201000010099 disease Diseases 0.000 description 2
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 206010028980 Neoplasm Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 201000011510 cancer Diseases 0.000 description 1
- 208000032839 leukemia Diseases 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2216/00—Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
- G06F2216/03—Data mining
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Description
低廉且つ比較的低性能であっても多くのクライアント装置に処理を分散させて並列的に処理させることで、1台(少数)の高価且つ高性能なサーバで処理する場合に比べて、システムとしての信頼性を高めるとともに処理速度を大幅に向上することが可能である。
ビットコイン(Bitcoin)やモナコイン(monacoin)など、ブロックチェインを取引の台帳として活用した仮想通貨は広く認知されており、特に仮想通貨に関連する「マイニング」と呼ばれる仕組みでも、計算機パワーを集結させ組織的にブロック生成を行う「マイニングプール」(特許文献2)と呼ばれる分散型の処理が行われている。
例えばビットコインや一部のオルトコインにおいて、ブロックチェインに対して新たなブロックを接続(生成)するためには、ブロックチェインにおける直前のブロックのハッシュ値と、新たなブロックの(トランザクション)データ、Nonce値と呼ばれる数値(例えば32bit固定長数値)とを接続したデータに対するハッシュ値(例えば、SHA−256ハッシュ)を計算した時にその上位数ビットが連続して0となるようなNonce値を探索する。そして、探索された、条件を満たす(正解の)Nonce値を(ネットワーク上の他装置に)報告することを「マイニング」と呼ぶ。
このような条件を満たすNonce値の探索は、ハッシュ関数の一方向性によって全てのNonce値について総当たりを行う以外に方法がなく、この処理は莫大な演算資源を要する。
マイニングプールでは、サーバ装置から複数のクライアント装置に対してマイニングに必要なデータ(直前のブロックのハッシュ値、接続すべき新たなブロックのデータ)と、各クライアント装置が担当するNonce値の探索範囲の情報を送信する。
そして、クライアント装置は、与えられた情報に基づいて、条件を満たすNonceの探索作業(マイニング)を行う。一つのサーバで全てのNonce値について総当たりを行う場合に比べてより高速な処理が可能である。
また、このような分散、並列処理は、ブロックチェインにおけるマイニングのみならず、大量のデータ処理を行う需要がありながら予算上の制約などから高性能の演算資源を有し得ない大学や研究機関等におけるデータ処理にも好適に適用することが出来る。
このようなブロックチェインのシステムは、以下の理由から、正当な演算資源の確保が急務となるからである。
こうした場合、ブロックチェインのシステムとしては、一旦両方のチェインを正しいものと仮定した後、長く伸びたチェインを正しいものとし、短いチェインを分岐(フォーク)として切り捨てる。
不正なデータをブロックチェインに挿入することを意図する攻撃者は、不正なデータを先端に繋いだ後、さらにそこに繋がるブロックを次々につないでチェインを伸ばし続ける必要があるが、このような攻撃は、攻撃者の演算資源がマイニングを行っている演算資源全体の51%を占めることで可能である(いわゆる「51%問題」)。
その結果、ブロックチェインのシステムには正当なマイニングを行うクライアント装置が十分な数あり、これを上回る演算資源を用意して上記のような攻撃を行うことは現実的ではない。
しかしながら、新規にブロックチェインを用いた仮想通貨を立ち上げる場合や、仮想通貨の係るブロックチェインのシステムではないことから報酬を設定出来ず、正当な演算資源を十分に確保出来ない状況では、悪意をもった一組織(一主体)が比較的に簡単に51%を超える演算資源を得てしまう可能性がある。
上記の状況を鑑み、本発明は、演算資源を効果的に活用して、演算資源を必要とするサービスに対して演算能力を提供可能な分散処理システム及び当該システムを実現するサーバ装置を提供することを目的とする。
図1は、本実施形態に係る分散処理サーバが適用されるブロックチェインネットワークの概要を説明する図である。
図1(a)はブロックチェインネットワークの構成を示す概略図である。
図1(a)に示すように、ブロックチェインネットワークは、本実施形態に係る分散処理サーバ(マイニングサーバ)10と、ブロックチェインネットワークに参加してマイニング(プルーフオブワーク)作業を行うマイナーが用いるマイナー装置30と、ブロックチェインネットワークに直接参加(接続)せずマイニングプールに参加してマイニング作業を行うプール参加者が使用するクライアント装置50と、上記マイニングプールを提供するプールサーバ40と、インターネットに接続されている。
ブロックチェインには、仮想通貨に用いられるものを含め、多くのものが存在している。仮想通貨にも、代表的なビットコインの他に、オルトコインと呼ばれるものが知られている。オルトコインの代表的なものとして、Ethereum(イーサリアム)やMonacoin(モナコイン)などが知られている。
各ブロックチェインネットワークには、それぞれマイナー装置30や、プールサーバ40が多く接続されて、プルーフオブワーク作業を行っている。
例えば、ブロックチェインネットワークAには、マイナー装置30Aや、マイニングプールを形成するプールサーバ40A及びクライアント装置50A(50A−1、50A−2・・)が含まれる。
また、ブロックチェインネットワークBには、マイナー装置30Bや、マイニングプールを形成するプールサーバ40B及びクライアント装置50B(50B−1、50B−2・・)が含まれる。
ブロックチェインネットワークは、中央集権的なサーバを持たないP2P(Peer to Peer)ネットワークである。ブロックチェインは、ブロックチェインネットワークに属するそれぞれのマイナー装置が有するストレージやサーバ装置、プールサーバ40に備えるストレージに、同じものが格納されている。ブロックチェインが、分散型取引台帳と呼ばれる所以である。
図1(b)を用いて、ブロックチェインの概略を説明する。
ブロックチェインは、逐次発生する取引情報などをブロック単位で接続することにより成立する。
ハッシュ関数には一方向性という特徴があり、任意データからハッシュ値を求めることは容易であるが、逆に、ハッシュ値から元のデータを復元することは現実的には不可能であるとされる。
SHA−256ハッシュ値は、ほぼランダムな256bitの値となるため、あるNonce値を選んだ時に上位10bitが0となる確率は1024分の1となるが、上記したハッシュ関数の一方向性によって、基本的に、総当たりをするより他に方法がない。この総当たりを行って、ハッシュ値の上位ビットが0となるNonce値を見つけ、報告することをマイニングと呼ぶ。
その結果、図1(b)を示すように、ブロックチェインの各ブロックは、そのブロックのデータと、直前のブロックのハッシュ値と、Nonce値と、を含んでいる。
なお途中のブロックを改ざんしようとすると、そのブロック以降全てのブロックのNonce値を再計算する必要があるが、上記した総当たりを全てのブロックについて行うしかないため、計算量的に不可能である。
このような特徴を有することで、ブロックチェインの信頼性は担保されている。
なお、Nonce値を求めること自体には、非常な困難が伴うが、一度見つけられたNonce値を用いれば、ブロックチェインに対して新たにブロックを追加する処理は非常に容易である。
この場合、ブロックチェインのシステムとしては、一旦両方を正しいものと仮定した後、長く伸びたチェインを正しいものとし、短いチェインを分岐(フォーク)として切り捨てることを行う。
つまり、不正なデータをブロックチェインに挿入したい攻撃者は、不正なデータを先端に繋いだ後、さらにそこに繋がるブロックを次々につないでチェインを伸ばし続ける必要がある。
逆に言えば、ブロックチェインの安全性を保つには、正当なクライアント装置による演算資源を十分に確保することが必要である。
そのため、例えばビットコインの場合には、マイニングに成功したクライアント装置にビットコインを報酬として支払うことで、マイニングを行うユーザを集め、正当なクライアント装置による演算資源を確保している。
ビットコイン等、すでに市場が十分に拡がっているブロックチェインのシステムであれば、マイニングを行う正当なクライアント装置が十分な数あり、これを上回る演算資源を用意することはもはや現実的ではない。
しかしながら、新規にブロックチェインを用いた仮想通貨を立ち上げる場合や、仮想通貨以外のブロックチェインのシステムであり報酬を設定できないことで、マイニングを行うクライアント装置が十分に確保出来ない状況では、悪意をもった一組織(一主体)が比較的簡単に51%を超える演算資源を確保できてしまう可能性がある。
このような状況において、既存のマイニングプールを活用することで、必要な演算資源を容易に確保することができ、これは非常に有用である。
ただし、後述するが、本実施形態の分散処理サーバ(マイニングサーバ)10は、単一のブロックチェインのみならず、複数のブロックチェインに対するプールサーバとして機能しうる。
分散処理サーバ(マイニングサーバ)10は、複数の異なるブロックチェインのP2Pネットワークに参加し、それぞれのブロックチェインの情報を取得する。
その結果、分散処理サーバ(マイニングサーバ)10に接続するクライアント装置は、複数の異なるブロックチェインに対するマイニングに参加することが出来る。
図2を用いて、マイニングプールについて概説する。
ブロックチェインネットワークは、インターネットに接続されている複数のマイナー装置が相互に接続されてP2Pネットワークを形成することによって構成される。
また、本実施形態のブロックチェインネットワークは、マイニングプールを管理するプールサーバ40を含んでいる。
ブロックチェイン(仮想通貨)の技術では、報酬を目的としたマイニングは、大規模な演算資源を有する主体によって組織的且つ大々的に行われている一方で、そのような大規模な演算資源を有さない個人のユーザを集め、ユーザ間で探索範囲を分担してマイニングを行い、得られた報酬を山分けするマイニングプールと呼ばれる仕組みが存在している。
プールサーバ40は、各クライアント装置に対して、ブロックチェインにおける前ブロックのハッシュ値、現ブロックのデータ(トランザクションデータ)及び、各クライアント装置に割り振られたNonce値の探索範囲を送信する。
データを受け取ったクライアント装置では、探索範囲内のNonce値の中から正解となるNonce値を探索する。
正解となるNonce値が発見された場合には、発見したNonce値をプールサーバ40に送信する。
例えば、Nonce値が32bitだとすると、この先頭のブロックのNonce値のうち、0〜99をAさん(のクライアント装置)、100〜199をBさん(のクライアント装置)、200〜299をCさん(のクライアント装置)のように分担して総当たりの探索を行わせる。
そして、マイニングプールの参加者のうち一人でもマイニングに成功すると(正解となるNonce値を発見すると)、マイニングプール全体に報酬が得られる。
マイニングプールは、このマイニングプール全体で得た報酬を、参加者全員で山分けすることで成立している。
上記したように、本実施形態の分散処理サーバ(マイニングサーバ)10は、基本的に、図2に示したプールサーバ40と同様の機能を有する。
分散処理サーバ(マイニングサーバ)10は、各クライアント装置50(50−1、50−2、50−3)に対して、ブロックチェインにおける前ブロックのハッシュ値、現ブロックのデータ(トランザクションデータ)及び、各クライアント装置に割り振られたNonce値の探索範囲を送信する。さらに、そのブロックチェインで用いられるハッシュ関数の指定も行う。
データを受け取ったクライアント装置50では、指定されたハッシュ関数とデータを用いて探索範囲内のNonce値の中から正解となるNonce値を探索する。
正解となるNonce値が発見された場合には、発見したNonce値をプールサーバ40に送信し、仮想通貨の報酬を受け取って参加者に分配することを目的とする。
そして、本実施形態の分散処理サーバ(マイニングサーバ)10は、クライアント装置50(50−1、50−2、50−3)に対して、複数のブロックチェインに係るデータやハッシュ値を選択的に送付可能である。
本実施形態の分散処理サーバ(マイニングサーバ)10は、本来独立して機能するこれらのブロックチェインネットワークを接続する装置であると言える。
なお、クライアント装置は、本実施形態の分散処理サーバ(マイニングサーバ)10ではなく、他のブロックチェインネットワークに属するプールサーバ40A、40Bに接続、参加することも可能であるが、本実施形態の分散処理サーバ(マイニングサーバ)10に接続することで、複数のブロックチェインに間接的に参画して、そのメリットを享受することが出来る。
マイニングプールの参加者たちは、分散処理サーバ(マイニングサーバ)10から与えられたデータやハッシュ値に基づいてマイニングを行い、誰か一人でもマイニングに成功した場合には(正解となるNonce値を発見した場合には)、それについてブロックチェインネットワークから得られる報酬(仮想通貨)を山分けすることが出来る。
つまり、マイニングプールの参加者たちは、ビットコインやその他の仮想通貨のマイニングを行い、誰か一人でもマイニングに成功した場合には、報酬として、マイニングしている通貨とは異なる例えばモナコインを山分けする。
すなわち、複数のブロックチェインのシステムが存在していて、それぞれにマイニングについて報酬が設定されている場合、その中で最も効率が良いものを選択して採掘を行う。
どのブロックチェインについてマイニングを行うことが効率的であるかを決定するためには、例えば、後述するように発掘金額の期待値を考慮することが出来る。
例えば、ブロックチェインネットワークCは、例えば、仮想通貨以外のためのブロックチェインであり、所謂仮想通貨による報酬が支払われることはない。
本実施形態のマイニングシステムは、このような報酬を伴わないブロックチェインについても、十分な演算資源を提供することを一つの目的としているからである。
また、ブロックチェインは、特定の管理者を持たないオープンなP2Pネットワークで実現される仕組みであるが、昨今では、企業が運営するクライアントサーバ型のブロックチェインも現れている。
本実施形態のマイニングシステムは、このような企業が運営する仮想通貨システムにも適用可能とし、このような仮想通貨システムに十分な演算資源を提供することを一つの目的としている。
また、仮想通貨をマイニングの対象とする場合でも、必ずしも発掘可能金額の期待値だけを基準に決定するのではない。
本実施形態のマイニングシステムは、立ち上げから間もなく、接続されたブロックの数が少ないことから悪意あるフォークのリスクがあるブロックチェインについて、十分な演算資源を提供することを一つの目的としているからである。
図4(a)に示すように、分散処理サーバとしてのマイニングサーバ10は、装置全体の制御を行う汎用のオペレーティングシステムを実行するとともに分散処理サーバ(マイニングサーバ)10の機能を実現するプログラムを実行するCPU(Central Processing Unit)11と、CPU11による処理のために各種のプログラムや一時データ、変数が展開されるRAM(Random Access Memory)12と、プログラムやデータが格納されるHDD(Hard Disk Drive)13や不図示のROM(Read Only Memory)と、分散処理サーバ(マイニングサーバ)10をネットワークに接続するためのネットワークI/F14と、を備えている。
また、記憶部には、ブロックデータ記憶部27、通貨情報記憶部28、前ブロックハッシュ値記憶部29がそれぞれ設定されており、上記の各処理部によって各記憶部に対してデータが格納され、あるいはデータが読み出される。
ブロックデータ記憶部27には、本実施形態の分散処理サーバ(マイニングサーバ)10が取り扱う仮想通貨の最新のブロックデータが格納される。
また、通貨情報記憶部28には、本実施形態の分散処理サーバ(マイニングサーバ)10が取り扱う仮想通貨についてのレート情報等が格納される。
前ブロックハッシュ値記憶部29には、本実施形態の分散処理サーバ(マイニングサーバ)10が取り扱う仮想通貨について、最新のブロックよりも前のブロックのハッシュ値が格納される。
ブロックデータ記憶部27、通貨情報記憶部28、前ブロックハッシュ値記憶部29は、RAM12、HDD13の何れに設定されてもよい。
すなわち、ブロックチェインネットワークから取得される最新のブロックデータや、レート情報、前ブロックのハッシュ値などは、RAM12に保持される一時データとしてのみ扱われても良いし、HDD13にファイルとして格納された上でRAM上にロードされてもよい。
ブロックデータ受信処理部20は、本実施形態の分散処理サーバ(マイニングサーバ)10が取り扱う仮想通貨について、新たに発生したブロックデータ(トランザクションデータ)を、ネットワークI/F14を介してブロックチェインネットワークから取得して、記憶部に設定されたブロックデータ記憶部27に格納する。
通貨情報受信処理部21は、ネットワークI/F14を介して、インターネット上に存在する仮想通貨の取引所や販売所のサーバ装置から各仮想通貨のレート情報等を取得して通貨情報記憶部28に格納する。
対象通貨選択処理部22は、通貨情報記憶部28に格納されているレート情報等に応じた所定条件に基づいて、マイニングプールによってマイニングを行う仮想通貨を選択する処理を行う。
Nonce受信処理部24は、ネットワークI/F14を介して、マイニングプールのクライアント装置50(探索に成功した場合)、あるいは、ブロックチェインネットワークに属する他のマイナー装置や他のプールサーバ40から、正解とされるNonce値を受信する。
そして、そのNonce値を用いて、最新のブロックデータを分散処理サーバ(マイニングサーバ)10が保持するブロックチェインに結合する処理を行う。
それをすることで、分散処理サーバ10(マイニングサーバ)の運営者には報酬を受け取る権利が発生し、正解となるNonce値の送信がブロックチェインネットワークの中で最も早ければ、実際に報酬を受け取ることが出来る。
報酬支払処理部26は、マイニングプールの参加者に対して報酬の支払い(山分け)を行う処理部であり、各仮想通貨について参加者が保有するウォレットに対して送金処理を行う。これは、各仮想通貨の取引所に対する送金依頼として行われる。
ブロックデータ受信処理部20は、ステップS101において、ブロックデータを受信したか否かを判定する。
ブロックデータを受信したと判定した場合(ステップS101でYes)、ブロックデータ受信処理部20は、ステップS102において、ブロックチェインネットワークAに係るブロックデータAを受信したか否かを判定する。
ブロックデータAを受信したと判定しなかった場合(ステップS102でNo)、ブロックデータ受信処理部20は、ステップS104において、ブロックチェインネットワークBに係るブロックデータBを受信したか否かを判定する。
ブロックデータBを受信したと判定した場合(ステップS104でYes)、ブロックデータ受信処理部20は、ステップS105において、受信したブロックデータBを、記憶部におけるブロックデータB用のブロックデータ記憶部27Bに格納する。
ブロックデータBを受信したと判定しなかった場合(ステップS104でNo)、ブロックデータ受信処理部20は、ステップS106において、ブロックチェインネットワークCに係るブロックデータCを受信したか否かを判定する。
なお、分散処理サーバ(マイニングサーバ)10が参加し、ブロックデータ(トランザクション)を受け取るブロックチェインネットワークは、ブロックチェインネットワークA〜Cの3つに限らず、これもよりも多くともよく、また2つのネットワークでもよい。ただし、本実施形態の趣旨からは、分散処理サーバ(マイニングサーバ)10は少なくとも2つのブロックチェインネットワークに参加している必要がある。
Nonce受信処理部24は、ステップS111において、Nonce値(Nonceデータ)を受信したか否かを判定する。
Nonce値を受信したと判定した場合(ステップS111でYes)、Nonce受信処理部24は、ステップS112において、ブロックチェインネットワークAに係るNonce値Aを受信したか否かを判定する。
Nonce値Aを受信したと判定した場合(ステップS112でYes)、Nonce受信処理部24は、ステップS113において、受信したNonce値Aを用いて、ブロックデータ記憶部27Aに格納されているブロックデータAを、ブロックチェインAに結合する処理を行う。
Nonce値Aを受信したと判定しなかった場合(ステップS112でNo)、Nonce受信処理部24は、ステップS114において、ブロックチェインネットワークBに係るNonce値Bを受信したか否かを判定する。
Nonce値Bを受信したと判定しなかった場合(ステップS114でNo)、Nonce受信処理部24は、ステップS116において、ブロックチェインネットワークCに係るNonce値Cを受信したか否かを判定する。
Nonce値Cを受信したと判定した場合(ステップS116でYes)、Nonce受信処理部24は、ステップS117において、受信したNonce値Cを用いて、ブロックデータ記憶部27Cに格納されているブロックデータCを、ブロックチェインCに結合する処理を行う。
なお、受信されたNonce値は、Nonce送信処理部25によって、対応するブロックチェインネットワークに向けて送信される。
図7(a)に示すフローチャートにおいて、マイニングサーバ10(対象通貨選択処理部22)は、常に変動する仮想通貨の換金レートを定期的に確認する。
対象通貨選択処理部22は、ステップS121において、換金レートの確認タイミングとなったか否かを判定する。
確認タイミングとなったと判定した場合(ステップS121でYes)、対象通貨選択処理部22は、ステップS122において、換金レート情報をインターネット上に存在する各仮想通貨の取引所や販売所のサーバに対し、換金レート情報を要求する処理を行う。
受信したと判定した場合(ステップS123でYes)、対象通貨選択処理部22は、ステップS124において、受信した換金レートを、記憶部の通貨情報記憶部28に格納する。
そして、対象通貨選択処理部22はステップS125において、ハッシュレート、難易度、換金レートに基づいて、各仮想通貨の発掘可能金額の期待値を算出し、ステップS126において、算出した期待値に基づいてマイニングの対象通貨を決定する。
発掘金額期待値は、例えば、
(式)期待値=ハッシュレート/((2^32)*難易度)*換金レート
で表せられる。
ハッシュレートとは、単位時間当たり(例えば1秒)のハッシュ計算数であり、難易度は、1/2^32に対してどのくらい当たりが少ないかを示す係数である。
図7(b)に示すように、仮想通貨Aは、ハッシュ関数がSHA−256、GPUでのハッシュレート[MH/s]が865、最近の難易度が1873105475221.61、発掘期待度[coin/H]が1.2430193960451E−22、発掘速度期待値[coin/hour]が、0.0000000003870762、換金レート[¥/coin]が1627000としたときに、発掘金額期待値[¥/hour]が0.0006297730である。
この場合、1時間当たりの発掘金額期待値は、仮想通貨Bの方が高いといえ、対象通貨選択処理部22は、仮想通貨Bを、マイニングの対象通貨に決定する。
なお、上記のように、対象通貨情報に定義されるマイニングの対象は仮想通貨に限定されることはない。
例えば、時間帯に基づいてマイニング対象を決定することで、一定時間、仮想通貨ではなく報酬を伴わないブロックチェインのマイニングを行うようにしてもよい。
このようにすることで、報酬を伴わないブロックチェインに正当な演算資源を提供することが出来る。
あるいは、発掘可能金額の期待値によるマイニング対象の決定を基本としつつ、同じ仮想通貨に対するマイニングが続く場合には、他の仮想通貨のマイニングを挟むようにしてもよい。
このようにすることで、参加者数が少なく、接続されたブロック数の少ない比較的新しい仮想通貨のブロックチェインに、正当な演算資源を提供することが出来る。
その場合、企業側が設定する報酬と、その他の仮想通貨(パブリックチェイン)の発掘期待額を考慮して、マイニングを行う仮想通貨を決定してもよい。
企業が発行、運営するプライベートチェインによる仮想通貨のマイニングを、所定の基準によって優先的に行うようにしてもよい。
企業が発行する仮想通貨のマイニングに参加する参加者にとって、企業からのマイニングの依頼がない場合、自身の計算機資源を有効に活用することが出来ない。
しかし、そのような参加者も、本実施形態のマイニングサーバ10に接続することで、企業からのマイニングの依頼がない場合でも、その他のブロックチェイン(仮想通貨)についてマイニングを行うことで計算機資源の稼働率を高めるとことが出来る。
仮想通貨のマイニングでは必ず報酬を受け取ることが出来る保障はないが、並行して企業が発行する仮想通貨のマイニングに参加することでリスクを抑えることが出来る。
探索指示送信処理部23は、ステップS131において、記憶部に格納されている対象通貨情報を確認する。
そして、探索指示送信処理部23は、ステップS132において、ブロックデータ記憶部27を参照し、対象通貨情報で指定されるマイニング対象の仮想通貨について新たなブロックが受信されているか否かを判定する。
そして、探索指示送信処理部23は、ステップS132において、対象通貨について、現ブロックのデータ、前ブロックのハッシュ値、及び探索範囲を、各クライアント装置に対して送信する。
図9(a)に示すように、クライアント装置50は、装置全体の制御を行う汎用のオペレーティングシステムを実行するとともにクライアント装置50の機能を実現するプログラムやマイニングツールを実行するCPU(Central Processing Unit)51と、CPU11による処理のために各種のプログラムや一時データ、変数が展開されるRAM(Random Access Memory)52と、プログラムやデータが格納されるHDD(Hard Disk Drive)53や不図示のROM(Read Only Memory)と、クライアント装置50をネットワークに接続するためのネットワークI/F54と、を備えている。
これらの処理部は、一般にマイニングツールと呼ばれるものに相当する。
探索指示受信処理部60は、本実施形態の分散処理サーバ(マイニングサーバ)10や他のプールサーバ40から探索指示(新たなブロック(トランザクション)データ、前ブロックのハッシュ、探索範囲、ハッシュ関数の指定)を受信して、記憶部の探索指示記憶領域に格納する。
探索処理部61は、探索指示記憶領域に格納された探索指示に基づいて、正解となるNonce値の探索処理を行う。
なお、探索処理部61は、探索指示において指定されるブロックチェイン毎に異なるハッシュ関数によるハッシュ処理(探索処理)を実行可能であり、ブロックチェインAで用いられるハッシュ関数Aによる処理を実行するハッシュA処理部、ブロックチェインBで用いられるハッシュ関数Bによる処理を実行するハッシュB処理部、ブロックチェインCで用いられるハッシュ関数Cによる処理を実行するハッシュC処理部を含む。
Nonce送信処理部62は、探索処理部61によって正解のNonce値が見つかった場合、そのNonce値を、本実施形態の分散処理サーバ(マイニングサーバ)10や他のプールサーバ40に送信する処理を行う。
探索指示受信処理部60は、ステップS201において、探索指示を受信したか否かを判定する。
探索指示を受信したと判定した場合(ステップS201でYes)、探索指示受信処理部60は、ステップS202において、ブロックチェインネットワークAに係る探索指示を受信したか否かを判定する。
ブロックチェインネットワークAに係る探索指示を受信したと判定した場合(ステップS202でYes)、探索指示受信処理部60は、ステップS203において、受信した探索指示に基づいて、ハッシュ処理部Aによる探索処理を開始させる。
ブロックチェインネットワークAに係る探索指示を受信したと判定しなかった場合(ステップS202でNo)、探索指示受信処理部60は、ステップS204において、ブロックチェインネットワークBに係る探索指示を受信したか否かを判定する。
ブロックチェインネットワークBに係る探索指示を受信したと判定しなかった場合(ステップS204でNo)、探索指示受信処理部60は、ステップS206において、ブロックチェインネットワークCに係る探索指示を受信したか否かを判定する。
ブロックチェインネットワークCに係る探索指示を受信したと判定した場合(ステップS206でYes)、Nonce受信処理部24は、ステップS207において、受信した探索指示に基づいて、ハッシュ処理部Bによる探索処理を開始させる。
本実施形態のクライアント装置では、異なるハッシュ処理部による正解の探索処理を、分散処理サーバ(マイニングサーバ)10から受信する探索指示に基づいて、動的に切り替えることが出来る。
従来マイニング用いられていた、PC等にインストールされるマイニングツールは、基本的には単一のハッシュ関数、それに対応した仮想通貨のマイニングのみに対応していたが、本実施形態のクライアント装置は、複数の仮想通貨のマイニングに対応することが出来る。
探索処理部61は、ステップS211において、RAM52にセットした変数Nに、探索指示で指定されている探索範囲内のNonce値の数を設定(代入)する。
次に、探索処理部61は、ステップS212において、探索対象のNonce値が何番目であるかを示す、RAM52にセットした変数Mに1をセットする。
探索処理部61は、ステップS213において、M番目(M=1の場合は1番目)のNonce値(探索範囲として「0」〜「99」が割り当てられている場合には「0」)、前ブロックのハッシュ値、現ブロックのデータを含むデータのハッシュ値を算出する。
条件が満たされると判定した場合(ステップS214でYes)、探索処理部61は、ステップS215において、該当のNonce値を正解の値に決定する。
Nonce送信処理部62は、ステップS216において、正解のNonce値を分散処理サーバ(マイニングサーバ)10又は他のプールサーバ40、マイナー装置に送信する。
条件が満たされないと判定した場合(ステップS214でNo)、探索処理部61は、ステップS217において、M=Nであるか否か、すなわち、割り立てられたすべてのNonce値について探索を行ったか否かを判定する。
M=Nであると判定した場合(ステップS217でYes)、探索処理部61は、ステップS218において、割り当てられた探索範囲内に正解の値はないと判断し、処理を終了する。
M=Nであると判定しなかった場合(ステップS217でNo)、探索処理部61は、ステップS219において、変数MにM+1を代入し、ステップS213に処理を戻し、次のNonce値について探索処理を行う。
報酬支払処理部26は、S141において、何れかのブロックチェイン(仮想通貨)について報酬を獲得したか否かを判定する。
これは、本実施形態の分散処理サーバ10の運営者のウォレットに入金があったか否かの情報等から判断出来る。
報酬が獲得されたと判定した場合(ステップS141でYes)、報酬支払処理部26は、ステップS142において、獲得された報酬をプール参加者の人数で割り、参加者一人分の報酬額を決定する。
報酬支払処理部26は、ステップS143において、一人分の報酬額を、参加者毎に予め定められた他の仮想通貨の相当額に変換する。
この処理には、通貨情報記憶部28に格納されている、法定通貨(日本円、米ドル、人民元など)と仮想通貨の換金レートを活用することが出来る。
仮想通貨同士で価値の変換(両替)を行うことは出来ないが、法定通貨を基準とした割合で換算することは可能である。
換算が終了すると、報酬支払処理部26は、ステップS144において、報酬として支払う仮想通貨の取引所に対し、各参加者のウォレットへの送金処理を依頼する処理を実行する。
この複数のブロックチェインには、既に十分に普及してマイナーの数も十分に確保されて報酬も支払われるビットコインなどの仮想通貨に係るチェイン、立ち上げから間もなく、マイナーの数も少ないことから悪意の攻撃者によるフォークのリスクがある仮想通貨に係るチェイン、さらには、仮想通貨ではなくマイニングよる報酬が支払われないチェインが含まれる。
従って、本発明によれば、新規にブロックチェインを用いた仮想通貨を立ち上げる場合や、仮想通貨以外のブロックチェインについて、正当なマイニングを行うクライアント装置による十分な規模の演算資源を容易に確保することが出来る。
このようにすることで、特定の仮想通貨のマイニングのみをマイニングする場合に比べて、参加者の利益を最大化することが出来るため、参加者のモチベーションを高め、正当なマイニングを行うクライアント装置による十分な規模の演算資源をより確保しやすくなる。
また、本実施形態の分散処理サーバに接続するクライアント装置が増加することで、新たにプライベートチェインを立ち上げたい事業者等に有用な演算リソースを提供し得る。
そして、決定したデータソースから取得した対象データ(ブロックデータ)と、対象データに応じたデータ処理方法(ハッシュ関数の指定)と、を少なくとも含む情報を各クライアント装置50に送信する。
クライアント装置50は、上記の対象データ及びデータ処理方法に基づいてデータ処理を行う。そしえ、クライアント装置50は、データ処理の結果情報を分散処理サーバ(マイニングサーバ)10に送信し分散処理サーバ(マイニングサーバ)10は、結果情報を受信する。
このような構成は、ブロックチェインシステムにおいて用いられるサーバ装置及びクライアント装置に限られることはなく、同様の仕組みを他の分散処理システムに適用することが出来る。
図13において、本実施形態の分散処理サーバ10Zは、インターネットを通じて、複数の異なるネットワークに接続可能となっている。
例えば、分散処理サーバ10Zは、X大学のネットワーク200にルータを介して接続し、外部に公開されたデータベースサーバ210から解析用のデータを取得することが出来る。
また、分散処理サーバ10Zは、Y研究所のネットワーク250にルータを介して接続し、外部に公開されたデータベースサーバ260から解析用のデータを取得することが出来る。
分散処理サーバ10Zは、複数のクライアント装置50Z(50Z―1、50Z−2、50Z−3)の接続を受容する。
当然、対象となる疾病や物質によってデータの内容や、演算手法も異なる。
それに対して、本実施形態においては、参加者のクライアント装置は、分散処理サーバ10Zに接続する。
分散処理サーバ10Zは、定期的にデータベースサーバ210、デーベースサーバ260から分割データを取得し、記憶部のデータ記憶部に格納する。
そして、分割処理サーバ10Aは、CPU11(対象データ選択処理部)によって、所定の条件に基づいてクライアント装置に送信するデータを決定し、CPU11(解析指示送信処理部)が決定したデータをクライアント装置に送信する処理を行う。
クライアント装置にインストールされるクライアントソフトウェアは、サーバから受信するデータに従って、解析ツールを切り替える機能を有する。
対象データ選択処理部がクライアント装置に送信するデータを決定する基準は、例えば時間帯や、各システムにおける解析の状況などを様々に考慮することが出来る。
以上のように構成することによって、分散処理に参加するクライアント装置を、分割処理サーバ10Aに接続させることによって複数のプロジェクトに参加させることができ、演算資源の確保に苦しむプロジェクトにとっての大きな助けとすることが出来る。
Claims (9)
- マイニングを実行する複数のクライアント装置と接続されるマイニングプールを管理するサーバ装置であって、
複数のブロックチェーンからマイニングの対象にする第1ブロックチェーンを選択する選択部と、
前記第1ブロックチェーンのマイニングで用いる、第1演算方法の指示と、第1データとを前記複数のクライアント装置に送信する第1送信部と、
前記第1演算方法を用いて前記第1データを処理した演算結果を前記複数のクライアント装置から受信する受信部と、
前記演算結果を前記第1ブロックチェーンのネットワークに送信する第2送信部と、
前記演算結果を前記第1ブロックチェーンのネットワークに送信したことにより、第1通貨の報酬を獲得した場合、前記報酬を前記複数のクライアント装置に分配し、前記クライアント装置に報酬として支払う第2通貨と前記第1通貨との種類が異なるとき、前記クライアント装置に分配した前記第1通貨の額に相当する額の第2通貨を前記クライアント装置に支払う支払部と、
を備えることを特徴とするサーバ装置。 - 前記支払部は、
前記第1通貨の額に相当する額の第2通貨を前記クライアント装置に支払うとき、前記第1通貨と法定通貨とのレート、及び前記第2通貨と前記法定通貨とのレートを基準に用いて前記第1通貨を前記第2通貨に両替し、両替した前記第2通貨を前記クライアント装置に支払う
ことを特徴とする請求項1に記載のサーバ装置。 - 前記第1演算方法の指示は、
前記第1ブロックチェーンのマイニングで用いるハッシュ関数と、前記各クライアント装置に探索させるNonceの探索範囲とを含み、
前記第1データは、
前記第1ブロックチェーンに接続する新たなブロックのデータと、前記新たなブロックの直前のブロックのハッシュ値とを含み、
前記演算結果は、
前記第1ブロックチェーンのマイニング処理において正解となるNonceを含み、
前記クライアント装置は、
前記第1ブロックチェーンのマイニングで用いるハッシュ関数と、前記新たなブロックのデータと、前記直前のブロックのハッシュ値とを用いて、割り当てられた前記探索範囲から正解となるNonceを探索する処理を実行し、正解となるNonceが発見されたとき、前記演算結果を前記サーバ装置に送信する
ことを特徴とする請求項1または2に記載のサーバ装置。 - 前記複数のブロックチェーンは、
運用母体が報酬額を設定するブロックチェーンを含み、
前記選択部は、
前記複数のブロックチェーンからの報酬の期待値が高い前記第1ブロックチェーンを選択する
ことを特徴とする請求項1から3のいずれか一つに記載のサーバ装置。 - 前記支払部は、
前記複数のクライアント装置に共通の種類の第2通貨を支払う
ことを特徴とする請求項1から4のいずれか一つに記載のサーバ装置。 - マイニングを実行する複数のクライアント装置と接続されるマイニングプールを管理するサーバ装置と、前記複数のクライアント装置とを含む処理システムであって、
前記サーバ装置は、
複数のブロックチェーンからマイニングの対象にする第1ブロックチェーンを選択する選択部と、
前記第1ブロックチェーンのマイニングで用いる、第1演算方法の指示と、第1データとを前記複数のクライアント装置に送信する第1送信部と、
前記第1演算方法を用いて前記第1データを処理した演算結果を前記複数のクライアント装置から受信する第1受信部と、
前記演算結果を前記第1ブロックチェーンのネットワークに送信する第2送信部と、
前記演算結果を前記第1ブロックチェーンのネットワークに送信したことにより、第1通貨の報酬を獲得した場合、前記報酬を前記複数のクライアント装置に分配し、前記クライアント装置に報酬として支払う第2通貨と前記第1通貨との種類が異なるとき、前記クライアント装置に分配した前記第1通貨の額に相当する額の第2通貨を前記クライアント装置に支払う支払部と、
を備え、
前記複数のクライアント装置は、
前記第1演算方法と、前記第1データとを受信する第2受信部と、
前記第1演算方法を用いて前記第1データを処理する演算をする処理部と、
前記処理部による前記演算結果を前記サーバ装置に送信する第3送信部と、
を備えることを特徴とする処理システム。 - 前記第1演算方法の指示は、
前記第1ブロックチェーンのマイニングで用いるハッシュ関数と、前記各クライアント装置に探索させるNonceの探索範囲とを含み、
前記第1データは、
前記第1ブロックチェーンに接続する新たなブロックのデータと、前記新たなブロックの直前のブロックのハッシュ値とを含み、
前記演算結果は、
前記第1ブロックチェーンのマイニング処理において正解となるNonceを含み、
前記クライアント装置において、
前記第2受信部は、
前記第1ブロックチェーンのマイニングで用いるハッシュ関数と、前記新たなブロックのデータと、前記直前のブロックのハッシュ値とを受信し、
前記処理部は、
前記第1ブロックチェーンのマイニングで用いるハッシュ関数と、前記新たなブロックのデータと、前記直前のブロックのハッシュ値とを用いて、割り当てられた前記探索範囲から正解となるNonceを探索する処理を実行し、
前記第3送信部は、
正解となるNonceが発見されたとき、前記演算結果を前記サーバ装置に送信する
ことを特徴とする請求項6に記載の処理システム。 - マイニングを実行する複数のクライアント装置と接続されるマイニングプールを管理するサーバ装置によって実行される処理方法であって、
前記サーバ装置は、
複数のブロックチェーンからマイニングの対象にする第1ブロックチェーンを選択し、
前記第1ブロックチェーンのマイニングで用いる、第1演算方法の指示と、第1データとを前記複数のクライアント装置に送信し、
前記第1演算方法を用いて前記第1データを処理した演算結果を前記複数のクライアント装置から受信し、
前記演算結果を前記第1ブロックチェーンのネットワークに送信し、
前記演算結果を前記第1ブロックチェーンのネットワークに送信したことにより、第1通貨の報酬を獲得した場合、前記報酬を前記複数のクライアント装置に分配し、
前記クライアント装置に報酬として支払う第2通貨と前記第1通貨との種類が異なるとき、前記クライアント装置に分配した前記第1通貨の額に相当する額の第2通貨を前記クライアント装置に支払う、
ことを特徴とする処理方法。 - マイニングを実行する複数のクライアント装置と接続されるマイニングプールを管理するサーバ装置のプロセッサによって実行される処理プログラムであって、
前記プロセッサは、
複数のブロックチェーンからマイニングの対象にする第1ブロックチェーンを選択し、
前記第1ブロックチェーンのマイニングで用いる、第1演算方法の指示と第1データとを前記複数のクライアント装置に送信し、
前記第1演算方法を用いて前記第1データを処理した演算結果を前記複数のクライアント装置から受信し、
前記演算結果を前記第1ブロックチェーンのネットワークに送信し、
前記演算結果を前記第1ブロックチェーンのネットワークに送信したことにより、第1通貨の報酬を獲得した場合、前記報酬を前記複数のクライアント装置に分配し、
前記クライアント装置に報酬として支払う第2通貨と前記第1通貨との種類が異なるとき、前記クライアント装置に分配した前記第1通貨の額に相当する額の第2通貨を前記クライアント装置に支払う、
ことを特徴とする処理プログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018024957A JP6897973B2 (ja) | 2018-02-15 | 2018-02-15 | サーバ装置、処理システム、処理方法及び処理プログラム |
US16/275,240 US20190253524A1 (en) | 2018-02-15 | 2019-02-13 | Server apparatus, client apparatus, and data processing system |
US17/083,155 US11303733B2 (en) | 2018-02-15 | 2020-10-28 | Server apparatus, client apparatus, and data processing system |
JP2021093355A JP2021144736A (ja) | 2018-02-15 | 2021-06-03 | サーバ装置、処理システム、処理方法及び処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018024957A JP6897973B2 (ja) | 2018-02-15 | 2018-02-15 | サーバ装置、処理システム、処理方法及び処理プログラム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021093355A Division JP2021144736A (ja) | 2018-02-15 | 2021-06-03 | サーバ装置、処理システム、処理方法及び処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019139691A JP2019139691A (ja) | 2019-08-22 |
JP6897973B2 true JP6897973B2 (ja) | 2021-07-07 |
Family
ID=67541284
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018024957A Active JP6897973B2 (ja) | 2018-02-15 | 2018-02-15 | サーバ装置、処理システム、処理方法及び処理プログラム |
JP2021093355A Pending JP2021144736A (ja) | 2018-02-15 | 2021-06-03 | サーバ装置、処理システム、処理方法及び処理プログラム |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021093355A Pending JP2021144736A (ja) | 2018-02-15 | 2021-06-03 | サーバ装置、処理システム、処理方法及び処理プログラム |
Country Status (2)
Country | Link |
---|---|
US (2) | US20190253524A1 (ja) |
JP (2) | JP6897973B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210272075A1 (en) * | 2020-02-28 | 2021-09-02 | nChain Holdings Limited | Methods and devices for controlling a mining pool for multiple blockchain networks |
JP2021144736A (ja) * | 2018-02-15 | 2021-09-24 | 株式会社アクセル | サーバ装置、処理システム、処理方法及び処理プログラム |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11556874B2 (en) * | 2018-06-11 | 2023-01-17 | International Business Machines Corporation | Block creation based on transaction cost and size |
CN112232817A (zh) * | 2018-10-25 | 2021-01-15 | 创新先进技术有限公司 | 基于区块链的交易处理方法及装置、电子设备 |
US10992735B2 (en) * | 2019-07-22 | 2021-04-27 | Bank Of America Corporation | System for generating event-based linkages between distributed resources for tailored data access |
US11057188B2 (en) * | 2019-08-19 | 2021-07-06 | International Business Machines Corporation | Database service token |
US12081672B2 (en) * | 2019-09-17 | 2024-09-03 | Micron Technology, Inc. | Distributed ledger appliance and methods of use |
CN110941668B (zh) * | 2019-11-08 | 2022-09-16 | 中国电子科技网络信息安全有限公司 | 一种基于区块链的统一身份管理和认证方法 |
CN110930135A (zh) * | 2019-12-04 | 2020-03-27 | 青梧桐有限责任公司 | 一种零散资源分布式虚拟货币挖掘处理方法及装置 |
US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
WO2022240351A1 (en) * | 2021-05-14 | 2022-11-17 | Rz Capital Holding Ab | Method and apparatus for delegating idle computing resources or networking resources in a communication network |
JP7079539B1 (ja) | 2022-01-05 | 2022-06-02 | 株式会社Fuel Hash | 情報処理方法、情報処理装置及びプログラム |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101322914B1 (ko) * | 2013-02-26 | 2013-10-29 | 김진산 | 비주얼 아이템이 적용된 제품의 검색방법 |
WO2016029119A1 (en) * | 2014-08-21 | 2016-02-25 | myVBO, LLC | Systems and methods for managing alternative currency transactions and optimizing financial rewards |
CA2958327A1 (en) * | 2014-12-08 | 2016-06-16 | International Cruise & Excursion Gallery, Inc. | System and method for utilizing virtual and real currencies for processing transactions |
JP6602075B2 (ja) | 2015-07-09 | 2019-11-06 | 大阪瓦斯株式会社 | ハンチング判定装置、及びハンチング判定方法 |
US20170103458A1 (en) * | 2015-10-13 | 2017-04-13 | Chicago Mercantile Exchange Inc. | Derivative Contracts that Settle Based on a Virtual Currency Difficulty Factor or an Index of Virtual Currency Generation Yield |
JP6355168B2 (ja) | 2015-11-09 | 2018-07-11 | 日本電信電話株式会社 | ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム |
JP6646214B2 (ja) * | 2016-02-10 | 2020-02-14 | 富士通株式会社 | 情報処理システム、情報処理装置、情報処理方法および情報処理プログラム |
KR102050129B1 (ko) * | 2016-05-03 | 2019-11-28 | 안규태 | 블록 검증을 위한 복수의 일방향 함수를 지원하는 블록 체인 |
JP6649173B2 (ja) | 2016-05-17 | 2020-02-19 | 日本電信電話株式会社 | 仮想通貨管理方法及び仮想通貨管理プログラム |
JP6372868B2 (ja) * | 2016-05-31 | 2018-08-15 | Idein株式会社 | 報酬分配方法、報酬分配システム及び端末 |
US11763343B2 (en) * | 2016-11-04 | 2023-09-19 | Google Llc | Systems and methods for validating interaction with third-party interactive media |
US11164107B1 (en) * | 2017-03-27 | 2021-11-02 | Numerai, Inc. | Apparatuses and methods for evaluation of proffered machine intelligence in predictive modelling using cryptographic token staking |
US11165862B2 (en) * | 2017-10-24 | 2021-11-02 | 0Chain, LLC | Systems and methods of blockchain platform for distributed applications |
JP2019106612A (ja) * | 2017-12-12 | 2019-06-27 | 株式会社イーグルツリー | 暗号通貨のマイニングシステム |
US20190213048A1 (en) * | 2018-01-11 | 2019-07-11 | William Bohannon Mason | Device network for incentivized mining utilizing leveraged computing resources within a block chain architecture |
US20190253256A1 (en) * | 2018-02-13 | 2019-08-15 | Texas Precious Metals LLC | Tracking and verifying authenticity of an asset via a distributed ledger |
JP6897973B2 (ja) * | 2018-02-15 | 2021-07-07 | 株式会社アクセル | サーバ装置、処理システム、処理方法及び処理プログラム |
US10764325B2 (en) * | 2018-03-30 | 2020-09-01 | Konica Minolta Laboratory U.S.A., Inc. | Method for adjusting mining difficulty of a cryptocurrency blockchain system by monitoring malicious forks and implementing a miners blockchain |
JP2019117620A (ja) * | 2018-05-23 | 2019-07-18 | 株式会社グルーツ | 仮想通貨管理装置、仮想通貨管理方法及びプログラム |
US11057188B2 (en) * | 2019-08-19 | 2021-07-06 | International Business Machines Corporation | Database service token |
-
2018
- 2018-02-15 JP JP2018024957A patent/JP6897973B2/ja active Active
-
2019
- 2019-02-13 US US16/275,240 patent/US20190253524A1/en not_active Abandoned
-
2020
- 2020-10-28 US US17/083,155 patent/US11303733B2/en active Active
-
2021
- 2021-06-03 JP JP2021093355A patent/JP2021144736A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021144736A (ja) * | 2018-02-15 | 2021-09-24 | 株式会社アクセル | サーバ装置、処理システム、処理方法及び処理プログラム |
US20210272075A1 (en) * | 2020-02-28 | 2021-09-02 | nChain Holdings Limited | Methods and devices for controlling a mining pool for multiple blockchain networks |
US11651335B2 (en) * | 2020-02-28 | 2023-05-16 | Nchain Licensing Ag | Methods and devices for controlling a mining pool for multiple blockchain networks |
US20230245081A1 (en) * | 2020-02-28 | 2023-08-03 | Nchain Licensing Ag | Methods and devices for controlling a mining pool for multiple blockchain networks |
US12086770B2 (en) * | 2020-02-28 | 2024-09-10 | Nchain Licensing Ag | Methods and devices for controlling a mining pool for multiple blockchain networks |
Also Published As
Publication number | Publication date |
---|---|
US20210044676A1 (en) | 2021-02-11 |
JP2021144736A (ja) | 2021-09-24 |
US11303733B2 (en) | 2022-04-12 |
US20190253524A1 (en) | 2019-08-15 |
JP2019139691A (ja) | 2019-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6897973B2 (ja) | サーバ装置、処理システム、処理方法及び処理プログラム | |
Eyal et al. | Majority is not enough: Bitcoin mining is vulnerable | |
CN109075964B (zh) | 支持用于区块验证的多个单向函数的区块链 | |
Luu et al. | {SmartPool}: Practical decentralized pooled mining | |
US20200210451A1 (en) | Scale out blockchain with asynchronized consensus zones | |
Luu et al. | Demystifying incentives in the consensus computer | |
Xu | Section-blockchain: A storage reduced blockchain protocol, the foundation of an autotrophic decentralized storage architecture | |
JP7165148B2 (ja) | ブロックチェーンネットワークにおける整合性のある分散型メモリプールのための方法及びシステム | |
EP4002181A1 (en) | A consensus method and framework for a blockchain system | |
Conti et al. | Blockchain trilemma solver algorand has dilemma over undecidable messages | |
Frey et al. | Bringing secure bitcoin transactions to your smartphone | |
Chaudhary et al. | Modeling and verification of the bitcoin protocol | |
US11475025B2 (en) | Blockchain system comprising consensus protocol using search for good approximate solutions to any optimization problem and its computor program | |
Özyılmaz et al. | Designing a blockchain-based IoT infrastructure with Ethereum, Swarm and LoRa | |
Howell et al. | Measuring node decentralisation in blockchain peer to peer networks | |
CN110716980A (zh) | 一种基于嵌套式容器的虚拟覆盖管理共识区块链操作系统 | |
Gruber et al. | Unifying lightweight blockchain client implementations | |
Klusman et al. | Deanonymisation in ethereum using existing methods for bitcoin | |
US10909534B2 (en) | Cryptocurrency with value based on electronic resources made available to peer nodes | |
Fehnker et al. | Twenty percent and a few days–optimising a bitcoin majority attack | |
US12047387B2 (en) | Distributed digital currency mining to perform network tasks | |
EP3520370B1 (en) | A decentralised database | |
KR102176128B1 (ko) | 블록체인에 기반한, 분산형 컴퓨팅 자원 공유 시스템 상에서의 보안 통신 제공 방법 | |
KR102193890B1 (ko) | 블록체인에 기반한, 분산형 컴퓨팅 자원 공유 시스템 상에서의 워킹 그룹별 동일한 키를 사용하는 보안 통신 제공 방법 | |
Gorbunov et al. | Democoin: a publicly verifiable and jointly serviced cryptocurrency |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190402 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200219 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200225 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200424 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200929 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201022 |
|
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: 20210506 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210603 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6897973 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |