エムティーアイ エンジニアブログ

株式会社エムティーアイのエンジニア達による技術ブログ

ちょBitだけ仮想通貨に興味を持った話(マイニング実践編)

皆さん、おはようございます!こんにちは!こんばんは!
music.jpの基幹システムの開発・保守運用している小櫃(こびつ)です。
二度目の投稿となりますが…
なんと前回記事から3ヶ月も間が空いてしまいました!1/4年です!
カクカクシカジカありまして………
また、記事自体は数か月前に作成済みでしたので、少々内容が古くなっていたりするところがありますがご了承くださいませm(__)m

※読み進める前に
完全なる個人的興味により、自宅でマイニングに取り組みました
※弊社の事業内容とは一切関わりはございません。┏○ペコ

今回は第二部目をお届けいたします!(やっと…!)
前回:第一部「そもそも仮想通貨って何?」 tech.mti.co.jp


今回:第二部「実際にマイニングしてみた」

前回からの続き

マイニング(採掘)で報酬として手に入れる

s_つるはし.jpg

前回の記事にて、「仮想通貨の入手方法はいくつかあります」とお伝えしたかと思います。 その中でも、「マイニング」と呼ばれているものに関して、今回はじっくりお話できればと思います。


マイニングとは

ここでは代表的な仮想通貨として、ビットコインを例に話を進めていきます。

ビットコインは参加者みんなで運用する仕組みとなっています。 日々いろいろなところで取引されている全ての記録を数珠繋ぎのように順に繋げていくのです。

この仕組みをブロックチェーンと言います。(前記事参照)

しかしこれがまたものすごい量の計算が必要となるわけでして・・・

そこでビットコインは考えました。
「世界中から計算手伝ってくれる人(コンピュータ)を募ろう! 見事成果を上げてくれた人には報酬としてビットコインあげるぜ!」

そのお手伝い(マイニング)に参加したのが今回のお話です。

※マイニング参加者のことを「マイナー」と呼びます


マイニングの種類

さて、では実際にどうやってお手伝いをするのか。

マイニングにはいくつか種類があります。 ざっくり説明しますと、、、

1.ソロマイニング:誰の手も借りず、一人でマイニング作業を行います
2.プールマイニング:複数人で力を合わせてマイニング、成果物を分配します
3.クラウドマイニング:マイニング団体に投資をすることによって参加します

この中でも、今回は

2.プールマイニング

を行ってみました。

では実際にマイニングを行うための準備~結果までを順を追ってお話いたします。


Minergate

急に出てきたけど、Minergateってなんぞや・・・?
s_はてな.JPG

Minergateとは今回私がプールマイニングをするに当たって利用させていただいたフリーソフトです。
仮想通貨のマイニングは面倒な設定が多く、始めるのは難しそう・・・。
そんな人にぴったりなソフトです。

~導入手順~

1.まずはMinergateをダウンロードしましょう
サイト内の「Download&Start Mining」をクリックします。 image.png

2.インストール後(1分かからずインストールできました)、ファイルを開くと下図の画面になります。
右上の「Create Account」から、アカウントを作成しましょう。 image.png

3.登録は至ってシンプル!メールアドレスとパスワードを設定してあげるだけです。 image.png

4.登録したメールアドレスとパスワードでログイン
すると下図のような画面に遷移します。
実はもうこれ掘り(マイニング)始めてます!
┗(現在のタブはSMART MINERが選択されています) image.png

これであなたもプールマイナーだ!!!

・・・ ・・・・・・

設定自体は本当にこれだけで完了なのですが、もう少し詳細を見ていきます。

先ほど、「SMART MINER」タブが選択されているといいましたが、このタブは換金効率が良い通貨を自動的に選択してマイニングしてくれる画面です。
どうしてもこれが掘りたい!といった希望がなければ、自動的に選ばれたものをマイニングしてしまうのもありかもしれませんね。

ちなみに、今回はXMR(Monero)と言う仮想通貨が選択されていましたので、知識に乏しい私はこのままXMRを掘り進めていきます。

・・・
・・・・・・

本当にこれで終わりなの?後は起動しっぱなしにしておけばいいの?
答えは「YES」であり、「NO」でもあります。

自分なりに細かくカスタマイズが可能です。少しでも効率よくマイニングするには、自分の環境に合った設定をしてあげることが大切です。
では、詳細設定に移りましょう!


以下をチェックしましょう。 image.png

左から順に
CURRENCY BALANCE : 通貨残高
CPU MINING : CPUを用いたマイニングの速度(ハッシュレート)
CPU CORES : 割り当てているCPUのCore数
GPU MINING : GPUを用いたマイニングの速度
INTENSITY : GPUを割り当てる強さ
SHARES GOOD BAD/LAST : 総採掘量 失敗した採掘量/採掘時間
SHARES DIFFICULTY : 採掘の難易度
UNCONFIRMED BALANCE : 未確定報酬額
REWARD METHOD : 採掘方式
MERGED MINING : 合併鉱業(複数同時マイニング)

・・・いやいや多すぎでしょ

この中で設定が可能な項目は

CPU CORES : 割り当てているCPUのCore数
INTENSITY : GPUを割り当てる強さ
REWARD METHOD : 採掘方式

この三つです

私の環境では(一般的なノートPC)、GPUを用いての採掘が不可であったため、
CPU CORESREWARD METHODを調整することにしました。


CPU CORES
私:「なんかよく分からないけど、初期値でいいっかー」
~数分後~
私:「あれ・・・PCちゃん苦しそう・・・??あ、設定ミスだこれ」

image.png

コア数をちゃんと確認して設定しましょう
ほかに作業をしなければ最大値まで引き上げていいと思いますが、同時に何か作業したい場合は調整しましょう。


REWARD METHOD
私:「謎。なんだこいつぁ・・・」
調べてみると、「PPS」と「PPLNS」の二種類が存在する模様。

結論から言いますと
・ずっと起動しっぱなしマイニングし続ける人はPPLNS
・時々中断する人、合間にマイニングする人はPPS

PPLNSはブロックの採掘を途中でやめると報酬が入らない反面、PPSより5%程度多くもらえます。
手数料も0.5%安い。

PPSはマイニングした分(時間)だけ報酬が入りますがPPLNSより報酬は少ないです。作業の合間にマイニングを行う人向き。
手数料が0.5%高い。

手数料とはマイニングプールに取られる手数料です。誤差レベル。

ちなみに、私は当初この設定に気付かず、200時間ほどPPSで採掘し続けました。
ただ、どちらが自分にあっていたかというと・・・続きは後ほど


マイニング&リザルト

とりあえず結果はどうだったのよ? 焦らないでください。順を追って書きます。

2018/1/12~3月中旬にかけて
少しずつ採掘を進め、計456時間分計測してみました。

基本的には、
起床後Minergate起動⇒出社⇒帰宅⇒私用でPC使いたくなったらマイニング停止
上記サイクルで進めてみました。
起動したときは、1日約12時間程度動かしっぱなしにしてました。

結果(XMR/h)
PPS:346h
0.000014036161 XMR/h
PPLNS:110h
0.000013735734 XMR/h

残念ながらPPSとPPLNSの違いを大きく感じることは出来ませんでした。
PPSに関しては、稼働総時間で計算は良いと思うのですが、PPLNSに関しては途中で止めてしまったがために一部報酬が得られなかった可能性があるため、単純比較はできていない気がします。(110時間動かしっぱなしではないので…)
PPLNSを選択する人は、数日単位で連続起動させておく必要があるのかもしれませんね。

それにしても分かりにくいですね?
円換算しましょう。

2018/4/12 11:52 時点
1XMR=18,175円

PPS:0.000014036161 XMR ≒ 0.25円
PPLNS:0.000013735734 XMR ≒ 0.25円
(有効数字の関係上、0.0・・・140と0.0・・・137で計算していますが、値が小さすぎて同じような感じになります)

つまり、1時間あたり0.25円分マイニングできたということですね!!!

あれあれ・・・?
まぁ少ないけど動かしてるだけで丸儲k・・・ちょっと待って?
あれ忘れてますね?

電気代


消費電力【W】×利用時間【h】)/1000 × 電力料金【円/kWh】
"消費電力はノートパソコンの場合は30Wほどです。ちなみに、デスクトップ型パソコンの場合は120Wほどです。また、電力料金は電力会社や加入しているプランによって違います。"
今回は、最も標準的な料金プランの26【円/kWh】を計算に使ってみます。
そうすると、例えばノートパソコンを1日10時間程度利用する場合にかかっている電気代は、
(30×10)/1000×26=7.8円

XMRマイニング・・・10h・・・2.5円・・・

赤字だ!!!
(XMR掘り始めたときは! 1XMR=45,000とかだったんですよ。。。あっ、それでも10hで6.2円・・・)

・・・・・・・・・
・・・・・・
・・・

終わりに

結果としては惨敗だったわけですが、得たものもたくさんあります。
主に知識ですけど!

敗因
・下調べ不足
・機材不足
・そもそもマイニングで簡単に儲けを出そうという浅い考え

仮想通貨なので、持っておけば輝く日が来る可能性もあります。
そんな未来に希望を膨らませて・・・


・・・・・・・・・
・・・・・・
・・・

これだけじゃあれなので、学んだ知識(技術)の共有

プルーフ・オブ・ワーク(Proof of Work:PoW)

「成果をだして報酬をもらう!」と話しましたが、具体的にどのような技術が用いられているか紹介します。
プルーフ・オブ・ワーク(Proof of Work:PoW)
仕事を多くして生成したものを正しいとするアルゴリズムです

なんのこっちゃ?実際の手順に沿って説明いたします。(以下引用)
1.ある一定期間の取引を一つにまとめたブロックと呼ばれるものを作る

2.マイナーたちは、すでに承認されているブロックに、1.で作成した未承認のブロックをチェーンで繋げるためにハッシュ値を検索

3.ハッシュ値の検索は、例えるなら暗証番号を連打して解読するようなものなので大量のマシンパワーを消費して行う

4.マイナーの中で、いち早く暗号を解いた人が未承認ブロックをネットワークノードに提示する

5.提示されたブロックが正しいかどうかを、ぶつけたハッシュ量(暗証番号の連打量)を投票券として投票する

6.51%以上の承認が得られれば正式なブロックとして承認される

7.承認を得たマイナーは報酬を得る


引用:http://vicryptopix.com/proofofwork/

一見、多人数で管理するすばらしい技術のように見えますが、落とし穴もあります。

51%を超える計算力を持つ集団が現れたら・・・?

そのような集団が現れた場合、この技術はまったく機能しなくなってしまいますね。。。


二部構成で書かせて頂きましたが、技術を用いる!と言うところまでなかなか詰められなかったので、
別の題材でまた書かせていただければなと思います!