- マイニングの役割は報酬だけではない
- マイナーは全体ネットワークの監視者
- ブロックチェーンの生成にマイニングは不可欠
マイニングという言葉を聞いたことがあるでしょうか?マイニングとは、日本語で「採掘」という意味で、ブロックチェーンを支える根幹技術のことを指します。また、マイニングによって新しい暗号資産(仮想通貨)が生み出されるということも大きな特徴です。
この記事ではマイニングが暗号資産(仮想通貨)・ブロックチェーンと一体何の関係があるのか。マイニングをするとどのような得があるのか。そのしくみの概要を説明しながらくわしく解説していきます。
ブロックチェーンとは
ブロックチェーンとは、過去の取引履歴 (トランザクション) がまとまった超巨大なデータベースのことです。2009年の誕生の瞬間から現在まで途切れることなく、続く長いデータベースです。
そして、文字通り「ブロック」と「チェーン」という2つの用語からなり、ブロックには数1000ものトランザクションが格納されています。
ブロックチェーンの特徴
コンピューターで改ざんしても他のコンピューターによって正しい取引データが選択されるので記録改ざんが防げるところが特徴です。
よって特定の管理者がいなくてもデータの信頼性が担保できるところも大きな特徴です。
ブロックチェーンのしくみ
ブロックと呼ばれているデータを作り、時間に沿ってブロックをつなぎチェーンとすることでデータベースが作成されます。
ブロックはそれぞれ繋がったブロックの1個前のハッシュ値を持っていることでチェーンをたどっていくことが可能です。
ハッシュ値
ランダムな値をハッシュ関数によって変換することで得られる『一意な固定長の数値 (文字列)』
ブロックチェーンに必要不可欠なマイニングとは
ビットコインをはじめとする暗号資産(仮想通貨)の根幹技術であるブロックチェーン。そのシステムを稼働させていく上で絶対的に必要不可欠なのが「マイニング」という作業です。
本来、言葉通りなら「マイニング (採掘) 」と聞くとビットコインが貰えるのか、掘れるのかということばかりに目がいきがちですが (実際にビットコインは掘れますし、貰えます) 、本質的にはマイニングはビットコインの送金やネットワークが正しく稼働するようなメンテナンスを行っています。
ブロックチェーンの役割はビットコインを例にとると、世界中のビットコインユーザーの取引履歴 (トランザクション) を記録することです。インターネット上にトランザクションを記録するブロックが、チェーンで数珠繋に増殖していくのをイメージしてください。
それが文字通りブロックチェーンです。そして、その実質上の管理者は「ノード」と呼ばれ、これらはブロックチェーンに記述されたトランザクションが改ざんされたものでないか、監視する役割を担うことになっています。
ざっくり言えば、この時のその監視作業のために必要な数学的な計算のことを「マイニング」、そしてそれを行う人を「マイナー」と呼んでいるのです。
マイニングの役割
暗号資産(仮想通貨)の発行
マイニングが成功したらその通貨が新しく発行されます。逆に言えば通貨が新しく発行されるのはマイニングが成功したときだけです。
しかしビットコインを例に取ると2040年までの発行量は2,100万BTCと決められており、8割はもう発行されています。
そのためマイニング難易度はどんどん上がっていくと考えられます。
取引を承認する機能
マイニングは取引を承認するという機能を持っています。
取引が正しいと認められ、書き換えが起こるのを防ぐのがマイニングであり改ざんなどができなくなります。
マイニングのしくみ
マイニングにはハッシュ関数という関数が用いられています。
このハッシュ関数は、出てきた結果を見るだけでは代入した値が判明しないという特徴があります。
ブロック内のナンスを変えることで、ハッシュ値が切り替わりマイニングが成功するナンスを探します。あらゆる値を探す中で、ブロックヘッダー部分のハッシュ値が特定の条件を満たすときにマイニングが成功となります。
この行為が非常に難しいことからマイニングという名前が付きました。
マイニング報酬を受けとるしくみ
マイニングの報酬は新しくブロックを作ったマイナーしか受け取ることができません。
よってマイニング報酬を受け取るためには、マイニングを誰よりも速く終わらせなくてはなりません。
なので、世界中のマイナーは機能の高いハードウェアを準備しマイニングを行いますが、そのためにはそのハードウェアを動かすための電力や冷却するための設備などが必要となります。
よって電力が安い中国や冷却に向いている北欧の国でマイニング事業を行う企業も存在します。
ブロックチェーンにおけるコンセンサスアルゴリズム2つ
PoW (プルーフオブワーク)
取引が正しいものか調べ、その報酬として対価をもらうしくみでビットコインやモナコインが採用しています。
1番のメリットは攻撃に強く、不正が起きにくいということです。
反対にデメリットは、多くの計算を施さなければならずコストがかかるということとパソコンなどを用意する費用やそれらの機器を動かすための電気代が膨大となる点が挙げられます。
コンピューターを用いて、大量の計算を行うことがPoWの特徴です。
PoS (プルーフオブステーク)
暗号資産(仮想通貨)をどれだけ持っているかに応じて、新しく発行される通貨がもらえるしくみです。
ネオなどはこの方法を採用しています。
メリットはPoWに比べて圧倒的に電気代がかからないということと51%攻撃に強いということが挙げられます。
しかしもちろんデメリットも存在し、通貨を保有量によりマイニングで得られる報酬が多くなるのでその通貨の流動性が下がってしまうと言われています。
PoI(プルーフオブインターポンス)
ネムなどがこの制度を採用しており、所持量や取引回数など様々な指標から重要度を割り出し経済活動にどれだけ貢献したかで取引を承認する人を決定するしくみです。
PoWによって起こっていた、富がかたよってしまうという問題を解決するために作られました。
PoC(プルーフオブコンセンサス)
企業や組織が承認者 (バリデータ) を選択します。リップルなどがこの制度を採用しています。
リップルにはリップル社という管理者がおり、ブロックチェーンを使っていないので取引データはバリデータによって記録されていきます。
DPoS(デリゲートプルーフオブステーク)
通貨の保有者全員が保有量に応じた投票権をもっており、代理人を選択します。それにより選ばれた複数人の代理人が承認者になれます。
マイニングで生じる報酬は、投票した人すべてに配られます。
承認スピードが速く、電力が他のコンセンサス・アルゴリズムよりも少ないというメリットがあります。
しかしデメリットは存在し、人々が協力し合うと不正が起こってしまう可能性があります。
ブロックチェーンとマイニングの関係
皆さんは「ハッシュ関数」というものを聞いたことがあるでしょうか。
ハッシュ関数 |
暗号化などで主に用いられる演算手法
具体的な例を見てみましょう。
- This is a pen (元データ) → 5a3737e180810ef8aef… (ハッシュ化された数値)
- This is a pan (元データ) → b82aef5d6ef2d6f4306… (ハッシュ化された数値)
上記の例の通り、データにハッシュ関数を適用すると非常に不規則な英数字になります。
そして注目すべきは元データが1文字でも違うと全く違う数値となる点です。
では、ブロックチェーンにこれを当てはめてみていきましょう。
先ほどの通り、ブロック内の構造はこうです。
- ブロック1 トランザクション + ハッシュ値
- ブロック2 トランザクション + ハッシュ値
- ブロック3 トランザクション + ハッシュ値
例えば、ブロック1のハッシュ値の一部に変更があった場合や、ミスがあった場合、続くブロック2,3も立て続けに違う値になります。
これが10分おきに生成されるビットコインのブロックチェーンならどうでしょうか。無限に計算し直す手間が増え、不正を起こす方も骨が折れる作業を行わなければならないはずです。そして、これが1つ不正防止に役立っています。
しかし、話はそれほど単純ではありません。というのもハッシュ値の計算自体はとてもかんたんで、たとえ1万個のハッシュ値でさえ、ある程度のスペックのPCなら計算が難なく行えるほどです。かんたんに解読され、書き換えられたらブロックチェーンは破綻しかねません。そこで考えられたのが、「ナンス」でした。
ナンスとは
ナンスはハッシュ値の計算を複雑にします。具体的にはナンスをブロックの中に入れてしまおうという発想です。
ナンス |
「number used once」という言葉の略称で、主に暗号通信などの領域で使用されており、使い捨てのランダムな32ビットの値のことを指します。
つまり、ナンスを含むブロックは下記のように変換されます。
ブロック ナンス + トランザクション + ハッシュ値
ナンスとマイニングの関係
ナンスという数字を含めることにより、ビットコインのブロック構造は前述の通り、『①ナンス』と『②トランザクション』と『③ハッシュ値』となりました。ここから生み出されるハッシュ関数を用いたハッシュ値は前述のナンス抜きのハッシュ値よりも何倍も計算能力を必要とする値となります。
そして、中でもとりわけ、出力値が000000...といった具合に並ぶナンスを見つけ出すことをルール化すれば、その結果を得られるようなナンスをひたすらに1から順に足していって計算することになります。
例えば、ここでは47というナンスを入れ込むとハッシュ値に0が並びました。この47という数字を見つけ出すために、コンピューターはひたすら適当なノンスを入れ込んではハッシュ化してを繰り返します。
- This is a pen 47 → 006d8976e9a10ed5bxs…
ビットコインのマイニングにおいては、このハッシュ値を見つけ出すことで、ビットコインの新規発行を行うことが可能になるしくみを採用しています。まさにマイニングとは、かんたんに言えば、かなり地道なハッシュ値探し = ナンス探しをするための作業になります。そして、この作業を誰よりも早く行えたマイナーただ1人に対してビットコイン報酬が支払われます。
ただ、マイニングは人間が手動で行うのはおよそ不可能なほど面倒な計算です。そして、これこそマイニングが個人のPCの計算能力では太刀打ちできないと言われる所以であり、複雑な計算でも何でもなく、ただ単に計算能力スペックが足りないということです。
ブロックの最終チェック
マイニングが完了し、見事ハッシュ値が決定すると、新しいブロックの情報 (先ほどの送金の情報) はP2Pネットワークを通じて、全てのコンピューターに通知。最終チェックが行われます。
マイナーが提出したハッシュ値の情報とトランザクションデータから
- 暗号資産(仮想通貨)を2重に使ったり不正をしていないか
- 送金情報を流したAさんが本当にその送金情報の保持者なのか
のチェックを行い、見事ノードからの承認が下りるとネットワーク全体での合意となり、見事ブロック承認、チェーンに連結されます。
こうしてみてくると、マイニングはブロックチェーンにブロックを連結させる橋渡しをしていることがよくお分りいただけたと思います。
ブロックチェーンのマイニングに参加する方法
ソロマイニング
自分でコンピューターを動かし、1人でマイニングを行うのがソロマイニングです。
ソロマイニングのメリットは報酬が得られた場合、それをすべて独り占めできるところです。デメリットは報酬にばらつきがあったり、機材をすべて自分で用意しなくてはならないなどが挙げられます。
プールマイニング
複数のマイナーが協力しマイニングを行うのが、プールマイニングです。マイニング成功するとプールの管理者が報酬をすべて受け取り、それから参加したマイナーに分配されます。
メリットは複数人が参加するため、マイングが成功しやすくなり報酬のばらつきが減ります。
デメリットは手数料が必要となったり、大きな報酬が得られる可能性が減ってしまいます。また機材を準備する必要性もあります。
クラウドマイニング
マイニング企業にマイニングを行ってもらう方法です。マイナー企業にお金を出資することで報酬をもらえるものから、マイニングマシンを貸すことで成功報酬を得るというものもあります。
メリットは機材準備がいらず、パソコンの知識が少なくてもできます。
デメリットは初期費用が他のものよりもかかってしまう場合が大きいです。マイナー企業の倒産などの可能性もあり、出資資金がなくなってしまう可能性もあります。
ブロックチェーンのマイニングに関するQ&A
マイニングで得た利益にかかる税金はどうなりますか?
雑所得、事業所得として確定申告をする必要があります。
マイニングの報酬として暗号資産(仮想通貨)を得たら、報酬をもらった度に時価で収入を計上し、最終的にすべてを合わせて年間収入を計算します。
マイニングに必要となった経費は差し引き、所得を計算してください。
ブロックチェーンとマイニングの関係について教えて下さい。
ブロックには新しい取引データや過去の取引データ、その他の値が含まれているのですが、その他の値がハッシュ値やナンス値です。
これらの値はあたしくブロックを作成するのに必要な値で、この値を見つけるのがマイニングです。
ブロックチェーンのマイニングに関するまとめ
新規参入が難しいならマイニングについて知ってもしょうがないのでは?と思われるかもしれませんが、知っておいて損な知識では決してありません。暗号資産(仮想通貨)のことを調べれば、決まってブロックチェーンという言葉と出会います。そしてブロックチェーンというシステムを掘り下げると、マイニングという言葉に出会います。
ブロックチェーンとマイニングは深く関連しており、それは暗号資産(仮想通貨)のテクノロジーを理解するのに必要不可欠な知識です。それは、投資のために暗号資産(仮想通貨)を取引するみなさんにとっても役立つ知識ですのでこの機会にぜひチェックしておきましょう。