現実世界のマイニング。マイニングプールとは。カリフォルニア大学バークレー校 ビットコインと仮想通貨の無料講義超訳|Week4-5

前回までの記事はこちら

ーーーーーーーーーー

こんにちは!クレメア(@cremea_tw)です。

前回に引き続き、カリフォルニア大学バークレー校の無料講義、
「ビットコインと仮想通貨のオンライン講座」で学んだ内容をシェアしていきます。

講義そのものにおいて、

読者対象:ビットコインや仮想通貨について詳しく知りたい全ての人
前提知識:不要

という感じなので、
講義内容を読むだけでもかなり理解が深まるのではないかと思います。

 

文章のスタイルとしては、
翻訳ではなく、個人的解釈バリバリの超訳をしていきます。

荒削りですがスピード重視で、
クレメア的な解釈も交えてお伝えするので、
間違いや意見などあればコメントいただければと思います。

 

また、太字や文字色などの文章の装飾は極力していません。

学びの本質はそこではない、時間がもったいない、あとでできる、
ということで、今回は泣く泣くカットしました。

見辛いかもしれませんが、予めご了承ください。

 

ということで、
講義の内容に沿って進めます。

今回の記事は、
現実世界のマイニング、マイニングプールとは。についてお伝えします。

それでは、本題に入っていきましょう。

イントロ:現実世界のマイニング

私たちは理論と技術面からマイニングを見て理解しましたが、
実際にはどのように見えるのでしょうか?

このセクションでは、
現実世界でどのようなマイニング作業が行われるかを見ていきます。

理論と実践は多くのシナリオで異なることが多く、
ビットコインではこれが当てはまります。

ビットコインの最初の目標は分散化され、
「1 CPU 1票」の真言を称えていますが、
これは真実から遠く離れていないことがわかります。

 

ASICとは

マイニングファームの写真を見ています。

ご覧のとおり、見た目は非常に工業的です。

これは、ファームが不必要なコストを削減することに焦点を当て、
マイナーの利益を増やすためです。

ラックはハードウェアの体系的な割り当て用で、
巨大なファンは冷却用です。

 

中には水冷が使用されているものもあります。

ハードウェアのメンテナンスに精通している人なら、
水冷は空冷よりもはるかに高価であることに気づくでしょう。

つまり、水冷でデバイスを冷却する人は誰でも、
ハードウェアのメンテナンスコストを引き上げる意思があります。

長い目で見れば、メンテナンス性が向上すれば、
ハードウェアを交換する必要が少なくなるということです。

いずれにせよ、これらのマイニングファームのそれぞれの目標は、
利益を最大化することです。

このため、寒い場所、つまり自然冷却を提供する場所、
または安価な電力を提供する場所が、長期間の採掘作業を設定する上でより有利です。

 

ここにASICの例があります。

このマシンはAntminer S9で、毎秒14兆ハッシュです。

現在市場で最も強力なASICの1つです。

BITMAIN社は、世界のマイニングパワーの約70%を、
ハードウェアに提供していると主張しています。

しかし、もちろん、最も印象的な技術であっても、
ブロックを見つけるにはまだまだ時間がかかります。

ハードウェアから利益を得るために必要な時間を、
短縮できる方法はあるのでしょうか?

 

マイニングプールとは

マイニングプールでは、
個々のマイナーがハッシュ・パワーに一緒に参加することができます。

こうすることで、プールが見つけたブロックごとに少量しか得られなくても、
ブロックをまとめて見つけてより多くの報酬を得ることができます。

マイニングプールは、
プールマネージャーまたはプールオペレーターによって実行され、
ビットコインのフルノードを実行し、ジョブを他のマイナーに配布します。

彼らはまた、報酬として全体の報酬の一部を手に入れます。

 

この方法では、マイナーは、
ブロックチェーン自体を格納する必要もなくなります。

クラウドコンピューティングと同様に、
プールから利益を得る代わりに、プールにハードウェアへのアクセスを提供します。

ビットコインは分散されているため、
プールに計算力を費やしていることを証明するにはどうしたらよいか、
疑問に思うかもしれません。

この問題はビットコイン自体が解決した問題のより小さなバージョンです。

 

私たちは、
マイナーがシェアを使ってプールの仕事をしていることを、
証明するようにすることができます。

シェアは、
ほぼ有効なブロックまたは有効なブロックとして定義されます。

私がBerkeleyPool、
仮説的なUC Berkeleyマイニングプールにいるとしましょう。

私のマイナーは、
有効なブロックの先頭の半分の半分のブロックハッシュを見つけました。

これは、相当量の計算資源を消費した結果、
起こりそうな出来事ではありません。

 

マイニングプールは、この情報を使用して、
あなたが貢献しているマイニングパワーの量を把握することができ、
有効なシェアについてあなたに報酬を与えることができます。

そうすれば、たとえ有効なブロックが見つからなくても、
私はBerkeleyPoolによって支払いを受けることができます。

なぜなら、これらの有効なブロックは、
少なくとも有効なブロックを見つけようとする指標なのです。

これは、
ビットコインを使用してマイニングプールを作成する方法です。

さらに、
マイニングプールのマイナーは自分自身で報酬を受け取ることはできません。

報酬はコインベース取引を通じて与えられることを
覚えておいてください。

 

マイニングプールでは、
解決しようとしているパズルにコインベース取引が含まれており、
プールマネージャーにブロック報酬を支払っています。

そして、プールマネージャーは、
ブロック報酬をうまく再配分するでしょう。

マイナーはマークルルートに基づいて問題を解決しています。

彼らはブロックヘッダ内のすべてを
ハッシュしているからです。

ブロックのマークルルートは
コインベース取引に基づいています。

マイナーが自分自身で報酬を得たい場合、
コインベースの取引を変更してブロック報酬を自分自身にリダイレクトする必要があります。

したがって、マイニングプールマネージャーは、
マイニングのコインベース取引がマネージャーのアドレスに支払われないことを知るため、
マイニングプールからシェアを得ることはできません。

 

Quick Check 1

マイニングプールのポイントはなんですか?
  • They’re like mining jacuzzis, but not as interesting.
  • They allow miners to solve several blocks at once by combining their puzzles into one.
  • They reduce the variance of an individual miner’s rewards so that they don’t need to wait decades for a payout.
  • They enable Bitcoin nodes to shard their blockchain data between themselves to reduce the storage burden at the expense of network costs.

 

マイニングプールスキーム

マイニングプールが使用する支払いスキームには、
様々なスキームがあります。

最も基本的な2つのカテゴリは、
ペイ・パー・シェアとプロポーショナルです。

あなたはおそらく名前から基本的なアイデアを集めることができます。

 

ペイ・パー・シェア・スキームは、
各シェアについて一定の金額を支払うことになります。

プールの報酬額にかかわらず、
この支払いは保証され、一株当たり一定です。

ほとんどのプールでは、実装と理解が容易なため、
このスキームが使用されます。

あなたが知ることができるように、これはマイナーの方が有利です。
配当の変動が少なくなるからです。

これは、プールがブロックを見つけられなかった場合にコストがかかるため、
プールがよりリスクを負うことを意味します。

その上に、マイナーが実際に有効なブロックを、
プールに提出するインセンティブはありません。

なぜこれが問題になるのか、ゲーム理論の講義で分かります。

 

プロポーショナルは、
ブロックが見つかったときにのみ支払う他のカテゴリです。

各マイナーの報酬は、
ブロックが見つかる前に提出された株式数に比例します。

これは、彼らが持っているよりも多くのお金を支払うことは決してないので、
プールにとってより有利ですが、それはマイナーのためのより多くの分散とリスクにつながります。

買い戻しの難しさのため、マイニング業界では、
プロポーショナルスキームが頻繁に見られることはありません。

これは考えられていたいくつかの異なる支払いスキームの、
デモンストレーションです。

要点は、マイナーに支払うことについて多くの方法があり、
それぞれに異なるインセンティブトレードオフがあることです。

それはすべてマイニングプールの規模と前提条件に依存します。

 

マイニングプールのメリット・デメリット

私たちはマイニングプールのスキームに精通しているので、
マイニングプールのメリット・デメリットについて話すことができます。

マイニングプールのメリットは個々の小規模のマイナーに、
支払いを得るために何十年も待たずに利益を得る機会を与えることです。

さらに、ソフトウェアの変更も容易です。

1人の人だけがマイニングプールのフルノードを実行しており、
その人はプールに代わってアップグレードできます。

 

短所には、プールマネージャの信頼が含まれます。

あなたはマイニングパワーを悪用したり、
報酬を控えることはしないでください。

これは集中化の結果です。

さらに、マイニングのプールによって多数の攻撃が可能になります。

これについては、ゲーム理論の講義でさらに詳しく説明します。

 

コミュニティは、通常、大規模な鉱山プールを嫌う。

たとえば、GHash.ioは、
ネットワークマイニングパワーの50%に近づいてしまいました。

GHash内のマイナーは、
ネットワークの51%に近づくという危険性を認識していたので、
マイニングプールから自発的に抜け出しました。

さらに、もう一つの懸念事項は、
単一の企業がマイニングパワーの総額を隠している可能性があるということです。

 

マイニングプールの統計

ソロ・マイニングとプール・マイニングの間の対比を示すための、
概要について話していきます。

この対比は、より多くのマイニングパワーが集中化をもたらすという、
興味深いパラドックスを見せるでしょう。

 

blockchain.infoの今日のネットワークハッシュレートは、
33,971,919 TH / s(約3,400万)です。

マイニング報酬は現在ブロックあたり12.5BTCであり、
ブロックは平均して10分ごとにマイニングされるため、
年間合計マイニング報酬は657,000BTC /年であると計算できます。

また、計算のために、
ビットコインの価格は一定で、10,000ドルと仮定します。

 

あなたが今日、ソロマイニングを開始したいとします。

最初に、マイニングのハードウェアを購入する必要があります。

ハットレート14 TH / sで3000ドルのAntminer S9を購入しましょう。

あなたのハッシュレートはネットワーク全体のハッシュレートに比べて非常に小さいです。

数学を行うと、ネットワークのハッシュ・パワーの合計が0.0000004%になります。

この場合の年間報酬は年間2707ドルになると予想しています。
これはあなたの平均所得の見積もりに過ぎません。

しかし、あなたが不運な場合、
非常に長い時間ブロックを見つけることで終わるかもしれません。

ネットワークハッシュレートの割合が小さいことを考慮すると、
現在の数字では、2,426,566(約240万)のブロックごとに、
1つのブロックをマイニングすることが期待できます。

これは約125,000ドルの報酬に46.2年ごと一度変換されることを意味します。

 

一方、あなたがプールでマイニングする場合、
より多くの定期的な支払いを期待することができます。

参加するプールにネットワークハッシュレートの6分の1があるとすると、
プールは6ブロックごと、または1時間ごとに検索されます。

つまり、1時間に31セントを期待することができます。

 

ここで疑問なのが、
あなたは、ソロ・マイナーとして数十年に一度の巨額の支払いを待つか、
それともプールでの小規模だが定期的な支払いマイニングを持つか、
どちらを選ぶべきでしょうか?

明らかに、プールマイニングは、
分散性が低いために魅力的です。

そして、とにかく、
あなたのASICはおそらく数年後には時代遅れになるかもしれないので、
あなたはマイナスの支払いに大きな差異を持つことは現実的にはあり得ません。

これは、より多くのハッシュパワーがネットワークに加わると、
個々のハッシュパワーが減少するため、
より安全なビットコインが取得するハッシュパワーが増えるほど、
マイニングプールへの参加の魅力が大きくなるというパラドックスにつながります。

 

マイナーのタイプ

さまざまな種類のマイナーがいることを覚えておいてください。

 

まず「リファレンスクライアント」として知られる種類のマイナーがいます。

これらは、秘密鍵を格納するウォレット、
他のノードと通信するルーティングノード、
トランザクションを検証するブロックチェーン、
およびハッシュ機能をネットワークに送信するマイニングソフトウェアを制御します。

これはBitcoin Coreによってマイナーにリリースされたコードです。

 

一方、ソロマイナーは、ウォレットの機能性を持たず、
おそらく他の別個のウォレットソフトウェアを所有しているだけです。

ウォレットとは別の部分は、
リファレンスクライアントと同じです。

 

マイニングノードは、マイニングハードウェアと、
マイニングプールに接続するためのプロトコルを持つ汎用ノードです。

プールにハッシュ・パワーを提出するための、
非公式スタンダード・マイニング・プロトコルがありますが、それだけではありません。

これらのノードには、情報を格納する負担がありません。
マイニングプールと対話するためのコードと制御ハードウェアを格納するだけで済みます。

 

補足:軽量マイニング

概要

Simple Payment Verification(SPV)は、
すべてのトランザクションを含むブロック全体ではなく、
各ブロックのブロックヘッダをダウンロードするだけで、
特定のトランザクションがブロックに含まれているかどうかを検証する方法です。

これらのSPV /軽量クライアントは、メモリスペースが限られていて、
ブロックチェーン全体をダウンロードせずに、
単にビットコインウォレットを必要とするクライアントに特に便利です。

 

軽量ウォレットソフトウェアとは異なる、
軽量マイニングソフトウェアもあります。

 

SPVを使用する代わりに、
ユーザーはブロックチェーンからデータをダウンロードせずに、
他の方法を使用してマイニングすることができます。

これらの軽量クライアントを使用するユーザーの1つの方法で
マイニングプールに参加することができます。

これらのマイナーはネットワークの外で働き、
オペレータがブロックチェーン全体を持ち、
それらに与えられたトランザクションが有効であると信じて、
プールオペレータが提供するトランザクションを掘り起こすだけでよいです。

新しいブロックに耳を傾けてトランザクションを検証するのは、
プールオペレーターの責任です。

これを行うために、オペレータは、
作業するブロックのテンプレートをマイナーに送信します。

ブロックが見つかると、
このテンプレートに従わなければなりません。

このテンプレートには、
プールオペレーターに報酬を与えるコインベーストランザクションが含まれています。

このようにして、ユーザーがブロックを見つけた場合、
ユーザーは報酬を盗むことはできません。

 

getwork、getblocktemplate、Stratum

getworkは、クライアントがマイニングプールオペレータから、
ブロックヘッダを取得するために呼び出すことができる、
リモートプロシージャコールメソッドです。

ただし、このメソッドの呼び出し元は、
ブロックまたはブロック内のトランザクションに関する情報を受け取りません。

悪意のあるサーバーは、
無効なトランザクションを含むブロックヘッダハッシュを、
このユーザーに簡単に送信し、ユーザーはこの無効なブロックをマイニングします。

 

getworkはgetblocktemplateに置き換えられました。

これにより、マイナーは他の誰か(たとえばプールオペレータ)を信用して、
自分のブロックを提供することなく、独自のブロックを作成することができます。

ブロックテンプレートには、
クライアントが必要に応じて変更できるブロックデータとともに、
特定の設定パラメータが用意されています。

このようにして、管理者は、
マイニングしているブロックに含まれるトランザクションを選択できるようになり、
制御がマイナーに戻されます。

しかし、マイナーは、有効なシェアを作り、
マイニングプールから報酬を得るために、
プール運営者とのコインベース取引など、
プール固有のデータを含むようにインセンティブを与えています。

 

getblocktemplateは優れた機能を提供しますが、
ブロック全体の転送により多くの帯域幅が必要です。

このスケーラビリティの問題により、
現在、一部のプールではStratumが使用されています。

これは、マイニングの別のプロトコルです。

getblocktemplateと同様に、
サーバーはクライアントにブロックテンプレートを送信します。

しかし、Stratumでは、ブロック全体ではなく、
ブロックヘッダと最初のトランザクションのみが含まれています。

 

検証のないマイニング

マイニングするためには、
クライアントは前のブロックのブロックヘッダを持つ必要があります。

これは前のブロックから生成されます。

新しいブロックに必要な情報の1つは、
ブロックヘッダハッシュです。

これは、チェーン内の前のブロックを参照する必要があるためです。

彼らは単にこの値を外部ソースから受け取って、
そのブロックでマイニングすることができます。

しかし、これには1つの注意点があります。

これは、マイナーがブロックヘッダハッシュを検証できないため、
ブロックヘッダハッシュを代わりに取得している、
プールオペレーターを信頼する必要があることです。

 

スパイマイニング

マイニングプールでは、
ブロックが見つかるとすぐにブロックヘッダハッシュがマイナーに送信され、
できるだけ早く新しいブロックでマイニングを開始できるようになります。

このマイニングプールの外にいる競合するマイナーは、
マイニングプールに接続し、ブロックヘッダハッシュをリッスンし、
自分自身でマイニングして、これを利用できます。

 

あとがき

ということで、
いかがでしたでしょうか?

 

実際にマイニングをする際は、
コストとリターンと時間を考えると、
マイニングプールへ参加した方が良さそうですね。

マイニングのリアルな部分は知らなかったので、
とても勉強になりました。

 

技術進歩の早い分野でもあると思うので、
かなりリスクもあるのかなと思います。

 

にしても、暗号通貨周りの生態系は、
全く新しい概念ばかりで面白いですね。

 

ってことで、
今回はこの辺で失礼します。

このブログを書く僕の目的は、
「ファンを作ること・仲間を増やすこと」です。

趣味が合う、気が合う、考え方が合う。
なんかええなーと思ったら、気軽にメッセージください。喜びます。

終わり。

 

次の記事
ビットコインのガバナンス。カリフォルニア大学バークレー校 ビットコインと仮想通貨の無料講義超訳|Week4-6

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

ABOUTこの記事をかいた人

物語の引き金を引く男 / 「てめえの人生に火をつける」 / プロ火付け役 / 腐れニートからの再始動 / 見知らぬ人にMacBook Proを買った人 / 32日で100記事達成 / ただの足跡を伝説に変えていく男 / Youtubeで #クレメアラジオ 不定期配信 / サロン「裏世界」オーナー 参加希望者はDMまで