ビットコインのマイニングとは?
ビットコインの採掘と聞くと、つるはし、土、一攫千金といった西洋のファンタジーを思い浮かべる方も多いでしょう。しかし、この例えはあながち間違いではないようだ。
ビットコインの採掘は、高性能なコンピューターが複雑な計算問題を解くことで行われます。これらの問題は、人の手では解決できないほど複雑で、どんなに高性能なコンピューターでも負担になるほどです。
キーステートメント
- ビットコインのマイニングとは、計算上のパズルを解くことで新たなビットコインを生み出す作業のことです。
- マイニングは、ビットコインの基盤となる取引台帳を維持するために必要です。
- マイナーはここ数年で非常に洗練されてきており、複雑な機械を使って採掘作業を高速化しています。
ビットコインマイニングの成果は2つあります。まず、コンピュータがビットコインネットワーク上で複雑な計算問題を解くことで、新たなビットコインが生成されます(採掘作業で地中から金を取り出すのと同じです)。そして第二に、計算機上の数学問題を解くことで、ビットコインマイナーは、ビットコイン決済ネットワークの取引情報を検証することで、ビットコイン決済ネットワークを信頼性の高い安全なものにする。
誰かがどこかにビットコインを送ることを取引と呼びます。店頭やオンラインで行われる取引は、銀行やPOSシステム、物理的な領収書によって記録されます。ビットコインのマイナーは、トランザクションを「ブロック」にまとめ、「ブロックチェーン」と呼ばれる公開記録に追加することで、同じことを実現しています。ノードはそのブロックの記録を管理し、将来的に検証できるようにします。
ビットコインのマイナーは、新しいブロックをブロックチェーンに追加する際、その取引が正確であるかどうかを確認することが仕事の一部です。特にビットコインマイナーは、ビットコインが重複していないかどうかを確認します。これは「二重支出」と呼ばれるデジタル通貨特有の現象です。印刷された通貨の場合、偽造の問題が常につきまといます。しかし、一般的には、お店で20ドル使ったら、そのお札は店員の手の中にあります。しかし、デジタル通貨の場合は話が違います。
デジタル情報は比較的容易に複製することができるため、ビットコインをはじめとするデジタル通貨では、支出者がビットコインのコピーを作成し、原本を保有したまま別の相手に送ることができるリスクがあります。
特別な配慮
ビットコインの採掘者への報酬
1日に30万件もの売買が発生すると、その1件1件を検証するのはマイナーにとって大変な作業になります。その報酬として、マイナーはブロックチェーンに新しい取引ブロックを追加するたびにビットコインを受け取ることができます。
採掘されたブロックごとに放出される新しいビットコインの量を「ブロック報酬」と呼びます。ブロック報酬は、210,000ブロックごと(または約4年ごと)に半分になります。2009年には50でした。2013年には25、2018年には12.5、そして2020年5月には6.25と半減した。
このシステムは2140年頃まで続きます。その時点で、マイナーはネットワークユーザーが支払う取引処理の手数料を報酬とする。この手数料によって、マイナーはマイニングを行い、ネットワークを維持するインセンティブを確保することができます。この手数料の競争により、ハーフビットが終了した後も、手数料は低く抑えられるという考えです。
ハーフビングを行うことで、新しいコインが作られる割合が減り、その結果、利用可能な供給量が減少します。これは投資家にとっても意味のあることで、金のように供給量の少ない他の資産は需要が高く、価格を押し上げる可能性があるからです。このペースで半減すると、流通しているビットコインの総数は2,100万枚が限界となり、この通貨は完全に有限であり、時間の経過とともに価値が高まる可能性があります。
ビットコインの取引を検証する
ビットコインマイナーが取引を検証して実際にビットコインを得るためには、2つのことが必要です。まず、1メガバイト(MB)分の取引を検証しなければなりません。理論的には1つの取引で済むこともありますが、各取引が保存するデータ量に応じて、数千件に及ぶこともあります。
次に、ブロックチェーンにトランザクションのブロックを追加するために、マイナーは複雑な計算問題を解かなければなりません。これはProof-of-Workとも呼ばれます。鉱夫たちが実際に行っているのは、「ハッシュ」と呼ばれる64桁の16進法の数字を、目標とするハッシュと同じかそれ以下にすることです。基本的にマイナーのコンピュータは、単位に応じてMH/s(メガハッシュ)、GH/s(ギガハッシュ)、TH/s(テラハッシュ)という異なる速度でハッシュを吐き出し、64桁の数字をすべて推測して解答を導き出します。つまり、ギャンブルである。
2021年5月時点での最新ブロックの難易度は25兆以上。つまり、コンピュータが目標値以下のハッシュを出す確率は16兆分の1。これを踏まえて考えると、1枚の宝くじでパワーボールの大当たりを獲得する確率は、1回の挑戦で正しいハッシュを選ぶ確率の約44,500倍になる。幸いなことに、マイニング用のコンピュータシステムは、多くのハッシュの可能性を吐き出します。しかし、ビットコインの採掘には膨大なエネルギーと高度な計算処理が必要です。
難易度の調整は2016ブロックごと、つまり約2週間ごとに行われ、採掘率を一定に保つことを目的としています。つまり、採掘者の数が多ければ多いほど、問題の難易度は高くなります。その逆もまた然り。ネットワークから計算能力を奪えば、難易度は下方に調整され、マイニングが容易になります。
ビットコイン採掘の例え
私が3人の友人に「1から100までの数字を考えている」と言い、その数字を紙に書いて封筒に入れて封をしたとします。友人たちは正確な数字を当てる必要はなく、私が考えている数字以下の任意の数字を最初に当てる人になればいいのです。そして、当てられる数に制限はありません。
例えば、私が19という数字を考えているとします。友人Aが21を当てた場合、21は19より大きいので負けとなります。友人Bが16、友人Cが12と推測した場合、16は19よりも小さく、12は19よりも小さいので、理論的には二人とも有効な答えに到達したことになります。友人Bの答えが目標の19に近かったとしても、友人Bの追加クレジットはありません。
ここで、私が「私が考えている数字を当ててください」という質問をしたと想像してみてください。しかし、3人の友人だけに聞いているわけではありませんし、1から100までの数字を考えているわけでもありません。むしろ、何百万人もの鉱山労働者を対象に、64桁の16進法の数字を考えているのです。これで、正解を当てるのが非常に難しいことがお分かりいただけたと思います。
ビットコインの採掘者は、正しいハッシュを考え出すだけでなく、それを最初に実行しなければなりません。
ビットコインの採掘は基本的に当てずっぽうで行われるため、他のマイナーよりも先に正解を導き出すには、コンピューターがどれだけ速くハッシュを生成できるかがほぼ全てとなります。ほんの10年前までは、ビットコインのマイニングは、普通のデスクトップコンピュータでも競争力を持って行うことができました。しかし、時が経つにつれ、ビデオゲームに使われるグラフィックカードの方が効果的であることに気づき、マイナーたちはゲームを支配するようになりました。2013年になると、ビットコイン採掘者たちは、ASIC(Application-Specific Integrated Circuits)と呼ばれる、暗号通貨をできるだけ効率的に採掘するために特別に設計されたコンピューターを使うようになりました。これらは数百ドルから数万ドルしますが、ビットコインを採掘する際の効率は優れています。
現在、ビットコインのマイニングは非常に競争が激しく、最新のASICでなければ利益を上げることができません。デスクトップPCやGPU、旧型のASICを使うと、エネルギー消費のコストが収益を上回ってしまいます。最新のユニットを自由に使えるようにしても、マイナーが「マイニングプール」と呼んでいるものに対抗するには、1台のコンピューターでは不十分なのです。
マイニングプールとは、複数のマイナー(採掘者)がそれぞれの計算能力を結集し、採掘したビットコインを参加者で分け合うことです。マイニングプールでは、個々の採掘者ではなく、プールで採掘されたブロックの数が圧倒的に多い。マイニングプールや企業は、ビットコインのコンピューティングパワーの大きな割合を占めています。
ビットコインと伝統的な通貨との比較
消費者は印刷された通貨を信用する傾向があります。それは、米ドルが連邦準備制度と呼ばれる米国の中央銀行に支えられているからです。連邦準備銀行は、他の多くの責任に加えて、新しい通貨の生産を規制し、連邦政府は偽造通貨の使用を起訴しています。ユーロは、欧州中央銀行によって支えられている。
米ドルを使ったデジタル決済でも、中央機関の支援を受けています。例えば、デビットカードやクレジットカードを使ってオンラインで買い物をすると、その取引は決済処理会社(MastercardやVisaなど)によって処理されます。これらの会社は、お客様の取引履歴を記録するだけでなく、取引が不正なものでないことを確認します。
一方、ビットコインは、中央機関の規制を受けていません。その代わり、ビットコインは「ノード」と呼ばれる世界中の何百万台ものコンピュータによって支えられています。このコンピュータのネットワークは、連邦準備制度、Visa、Mastercardと同じ機能を果たしていますが、いくつかの重要な違いがあります。ノードは、過去の取引に関する情報を保存し、その信憑性を確認するのに役立ちます。しかし、これらの中央機関とは異なり、ビットコインのノードは世界中に散らばっており、誰もがアクセスできる公開リストに取引データを記録しています。
ビットコイン採掘の歴史
16兆分の1の確率、スケーリングされた難易度、取引を検証するユーザーの巨大なネットワークにより、およそ10分ごとに1ブロックの取引が検証されています。しかし、10分というのはルールではなく目標であることを忘れてはいけません。
ビットコインのネットワークは、2020年8月現在、1秒間に4件弱のトランザクションを処理しており、10分ごとにトランザクションがブロックチェーンに記録されています。ちなみに、VISAは1秒間に約65,000件のトランザクションを処理できます。しかし、ビットコインユーザーのネットワークが成長を続けると、10分間に行われるトランザクションの数は、いずれ10分間に処理できるトランザクションの数を超えてしまいます。そうなると、ビットコインのプロトコルに変更がない限り、取引の待ち時間が始まり、さらに長くなっていきます。
このビットコインプロトコルの根幹に関わる問題は、「スケーリング」と呼ばれています。スケーリングに対処するために何かをしなければならないという点では、ビットコインの採掘者たちは概ね同意していますが、その方法についてはあまり同意していません。スケーリングの問題に対処するために、2つの主要な解決策が提案されています。開発者たちは、(1)ビットコインに二次的な「オフチェーン」レイヤーを設けて、後からブロックチェーンで検証できる高速トランザクションを可能にする、(2)各ブロックが保存できるトランザクションの数を増やす、のいずれかを提案しています。解決策1では、ブロックごとに検証するデータが少なくなるため、マイナーにとっては取引が速くなり、コストも安くなる。解決策2は、ブロックサイズを大きくすることで、10分ごとに処理できる情報量を増やすことで、スケーリングに対応する。
2017年7月、ネットワークのコンピューティングパワーのおよそ8割から9割を代表するビットコインマイナーとマイニング企業が、各ブロックの検証に必要なデータ量を減少させるプログラムを組み込むことを投票で決定した。
採掘者が投票でビットコインのプロトコルに追加したプログラムは、Segregated Witness(セグウィット)と呼ばれています。この言葉は、「分離する」という意味のSegregatedと、「ビットコイン取引の署名」を意味するWitnessを合体させたものです。つまり、Segregated Witnessとは、取引の署名をブロックから分離して、拡張ブロックとして添付することを意味します。ビットコインのプロトコルに1つのプログラムを追加するだけでは、大した解決策にはならないように思えますが、署名データは、各ブロックのトランザクションで処理されるデータの最大65%を占めると言われています。
それから1カ月も経たない2017年8月、マイナーと開発者のグループがハードフォークを開始し、ビットコインネットワークから離れて、ビットコインと同じコードベースを使って新しい通貨を作りました。このグループは、スケーリングに対する解決策の必要性には同意していましたが、分離された証人技術を採用してもスケーリングの問題を完全に解決できないことを懸念していました。
そこで、解決策2を採用しました。その結果、「ビットコインキャッシュ」と呼ばれる通貨は、ブロックサイズを8MBに増やして検証プロセスを高速化し、1日あたり約200万件の取引を可能にしました。2021年5月27日には、ビットコインの約40,100ドルに対して、ビットコインキャッシュは約762ドルとなった。