ビットコインマイニングの難しさ-それは何ですか、そしてそれはどのように機能しますか?

ビットコインマイニングの難しさが何を意味するのかを理解し始める前に、マイニングがどのように機能するかを知る必要があります。このトピックについては以前に詳しく説明したので、さまざまな難しさのニュアンスに入る前に、少し概要を説明します。続いて、マイニングの難易度がどのように計算され、ネットワークのニーズに合わせてどのように変化するかを見ていきます。.

マイニングはどのように機能しますか? 1ビットコインをマイニングするのにどのくらい時間がかかりますか?

ビットコインのネットワークには、暗号化された難しいパズルを解くために特殊な機器を使用する「マイナー」と呼ばれるいくつかの特殊なノードがあります。彼らが成功した場合、彼らはBTCブロックチェーンにブロックを正常に追加する機会を得るでしょう。これがその仕組みです:

  • マイナーは、mempoolで待機しているトランザクションをピックアップし、それらをハッシュします.
  • ハッシュの前にランダムな16進値を追加し、値全体をハッシュします.

このハッシュは、「難易度」と呼ばれる特定の値よりも小さい必要があります。

ビットコインマイニングの難しさを決定するものは何ですか? BTCの難易度が上がるのはなぜですか?

#1ネットワークの整合性を維持する

ビットコインマイニングの難易度は、プロトコル内のマイニングの容易さに応じて増減します。ビットコインは10分の一貫したブロック時間を持っている必要があることを忘れないでください。言い換えれば、新しいBTCを10分ごとに循環供給に注入することができます。このタイミングでビットコインプロトコルが変更されないようにするには、次の手順に従います。

  • 鉱夫が採掘しやすくなると、ネットワークの難易度が上がります.
  • 鉱夫が採掘するのが難しくなったときにネットワークの難易度を下げる.

ビットコインネットワークには、普遍的なブロックの難しさがあります。すべての有効なブロックには、ターゲットの下にハッシュが必要です。マイニングプールには、共有の下限を設定するプール固有の共有の難しさもあります.

#2ハッシュレートとの関係

プルーフオブワークネットワークの状態を判断する際の重要な指標の1つは、ハッシュレートです。簡単に言えば、ハッシュレートは、マイナーがネットワーク内でどれほど強力であるかを示します。ビットコインネットワークのハッシュレートが高いほど、全体的なセキュリティと速度が高くなります。ただし、これらのネットワークは、一貫したブロック生成のためにハッシュレートを制御下に保つ必要があります。これが、ハッシュレートが高くなると、ビットコインの難易度も最終的に高くなり、マイナーがネットワーク内で簡単にマイニングするのが難しくなる理由です.

逆もまた真です.

ビットコインのハッシュレートが低下すると、ネットワークの難易度も低下します。次の理由により、ハッシュレートが低下する場合があります。

  • ビットコインは現在非常に困難であるため、鉱山労働者はシステムでの採掘に苦労しています.
  • BTCの価格が下がったため、多くの鉱山労働者が採掘をやめました.

2つの相関関係を理解するために、グラフを確認してみましょう。まず、ハッシュレートがあります.

その後、ビットコインの難易度チャートがあります:

ご覧のとおり、この2つには非常に密接な相関関係があります。 3月26日頃、ネットワークの難易度は16.55兆から13.9兆に16%減少しました。これは2013年の初め以来、ネットワークの難易度で最大のクラッシュでした。今回これが発生した理由を理解するには、ビットコインの難易度が下がる直前にハッシュレートがどのように下がったかを見てください。この落ち込みは、ビットコインの価格暴落が原因で発生し、多くの鉱夫が操業をやめざるを得なくなりました.

ビットコインはどのように難易度を計算しますか?

ビットコインのネットワークの難易度は、2016ブロックごとに変わります。ネットワークが難易度を計算するために使用する式は次のようになります。

難易度=難易度_1_target / current_target

上記の式では:

  • ターゲットは256ビットの数値です。ビットコインのプロトコルによると、ターゲットは精度が制限されたカスタム浮動小数点タイプです。ビットコインクライアントは、この事実に基づいて難易度を概算します。この値はbdiffとも呼ばれます.
  • 難易度_1_targetは、難易度の測定方法によって異なる場合があります。従来、これは先頭の32ビットが0で、残りが1のハッシュを表します。実際、この値はプールの難易度またはpdiffとしても知られています.

すべてのブロックは、「ビット」と呼ばれるブロックにビットコインの難易度のパックされた表現を格納します。このターゲットは通常、0x1b0404cbとして表示されます(リトルエンディアンの順序で格納されます:cb 04 04 1b).

ブロックは、所定の式を介して目標値を計算します。例えば。上記のパックされたターゲット、つまり0x1b0404cbを使用します。 16進ターゲットは次のとおりです。

0x0404cb * 2 **(8 *(0x1b – 3))= 0x00000000000404CB000000000000000000000000000000000000000000000000

それでは、bdiffとpdiffを計算しましょう.

可能な最高のターゲット(difficulty_1_target)は、0x1d00ffff、または16進形式で次のように定義されます。

0x00ffff * 2 **(8 *(0x1d – 3))= 0x00000000FFFF0000000000000000000000000000000000000000000000000000

この値がわかったので、これを使用して、難易度=難易度_1_target / current_targetの式を使用してbdiffを計算できます。

これで、前のセクションで定義したように、current_targetは0x1b0404cbまたは0x00000000000404CB000000000000000000000000000000000000000000000000です。.

したがって、現在の難易度を計算するには:

0x00000000FFFF0000000000000000000000000000000000000000000000000000 /

0x00000000000404CB000000000000000000000000000000000000000000000000

= 16307.420938523983

したがって、bdiffは16307.420938523983です。.

それでは、pdiffを計算しましょう。マイニングプールは、tardability_1_targetを0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFに設定する切り捨てられていないターゲットを使用する傾向があります.

その場合、同じcurrent_targetの場合、pdiffは次のようになります。

0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF /

0x00000000000404CB000000000000000000000000000000000000000000000000

= 16307.669773817162

これはから取られたプログラムコードです ビットコインウィキ 難易度の計算を容易にするためにログに依存しています。

#include

#include

インラインfloatfast_log(float val)

{{

int * const exp_ptr = reinterpret_cast(&val);

int x = * exp_ptr;

const int log_2 =((x >> 23) & 255)– 128;

バツ &=〜(255 << 23);

x + = 127 << 23;

* exp_ptr = x;

val =((-1.0f / 3)* val + 2)* val – 2.0f / 3;

return((val + log_2)* 0.69314718f);

}

フロート難易度(符号なし整数ビット)

{{

static double max_body = fast_log(0x00ffff)、scaland = fast_log(256);

exp(max_body – fast_log(bits)を返します & 0x00ffffff)+スカランド*(0x1d –((ビット & 0xff000000) >> 24)));

}

int main()

{{

std :: cout << 難易度(0x1b0404cb) << std :: endl;

0を返します。

}

採掘の難易度をどのように設定しますか?

マイナーは、専用のASICハードウェアを使用してビットコインをマイニングします。これらのマシンは非常に高速で、毎秒テトラハッシュを生成します。システムがそれらのすべてを入念にチェックして、それらがすべての必要条件を満たしているかどうかを確認することは非常に非現実的です。これは、マイニングプールに指数関数的に当てはまります。彼らは、ビットコインマイナーによって生成されたすべてのハッシュを毎秒チェックすることはできません。これが、マイニングプールが「共有時間.」

それで、あなたのビットコインマイニングプールが5秒の共有時間を設定したと想像してみましょう。つまり、平均して、マイニングプールでは、マイナーが5秒ごとにシェアを送信する必要があります。.

これはどの程度正確に行われますか?

あなたのビットコインマイニングプールは、すべてのマイナーに共有難易度と呼ばれる値を設定します。マイナーのシェアの難易度は、個々のハッシュレートに正比例します。そのため、鉱夫のハッシュレートが高いほど、共有の難易度は高くなります。アイデアは、鉱夫が自分の機器を使用して大量のハッシュを生成するというものです。目標の共有難易度を満たすハッシュを見つけた瞬間に、ハッシュをプールに送信します.

鉱夫はどのように報われますか?

プール内の鉱夫は、「1株あたりの支払い」(PPS)ベースで報奨を受けます。このシステムでは、鉱夫は提出した株式に対して報酬を受け取ります。株式の価値は、株式を見つけるのがどれほど困難であったかに完全に依存しています.

これがどのように機能するかを確認するために例を見てみましょう。

  • あなたが50TH / sの個々のハッシュレートを持つ鉱夫であると仮定します.
  • 参加したマイニングプールにより、共有の難易度が1,000,000に設定されました.
  • 1,000,000を超えるシェアを獲得すると、プールから報酬が得られます.
  • プールはあなたがあなたの株をあまりにも速く提出していないことを確認するためにあなたの難しさを変えるかもしれません.
  • ここで、新しい機器を購入してハッシュレートを150 TH / sに上げると、プールによって難易度が3,000,000に上がります。以前に提出したのと同じレートで株式を提出します。ただし、提出した株式に対して以前に受け取っていた報酬の3倍の報酬を受け取ります.
  • プールがより高速なハードウェアに対してより高い難易度を推奨する理由は、マイナーのシステムとプールの両方のネットワーク負荷を軽減するためです。また、次のワークユニットの準備をする際のマイニングハードウェアの再起動遅延が減少します。同時に、プールは難易度を高く設定しすぎないように注意する必要があります。これにより、多くの古い共有が発生します。.

注:共有ターゲット= 1 /共有難易度

中本コンセンサスにおける難しさの重要性

ビットコインのエコシステムにとってどれほど重大な困難であるかを理解するには、ナカモトのコンセンサスがどのように機能するかを知る必要があります。一元化されたエンティティのないワイドエリアネットワークの場合、コンセンサスプロトコルは、あらゆる形式のガバナンスを維持する唯一の方法です。 Raftのような従来のコンセンサスアルゴリズムは、広域暗号経済プロトコルを維持するのに理想的ではありません。これが、ビットコインの作成者である中本聡が中本のコンセンサスを思いついた理由です。ナカモトコンセンサスの中心的な信条は、システムに参加するには、代償を払わなければならないということです。プルーフオブワーク(POW)、つまりビットコインのコンセンサスの場合、鉱山労働者は「仕事」で代償を払います。この場合、作業は、マイナーが1つのビットコインをマイニングするために費やさなければならない大量の計算エネルギーです。ここで問題が発生します。問題はビットコインのマイニングを困難にする指標です。さらに、これは中本のコンセンサスが二重支払いの問題を解決するために活用するものです。.

二重支払いとは?

二重支払いは、分散型暗号通貨を作成するすべての試みがビットコインの前に惨めに失敗した理由です。簡単に言えば、1つのビットコインが同時に複数回使用される可能性があるのは欠陥です。現物の現金を扱っているときにこの問題に遭遇したことはありません。結局のところ、10ドルのノートで何かを購入している場合、同じノートで他の何かを同時に購入することはできません。?

ただし、デジタルトークンには簡単に複製できるデジタルファイルが含まれているため、二重支払いが避けられません。ご想像のとおり、二重支払いは生態系の経済にいくつかの壊滅的な影響を与える可能性があります。

  • 第一に、それは生態系内のコインの総供給を膨らませ、それは需給方程式を制御不能にします.
  • 第二に、誰かがどこでも同じコインを制限なく使うことができれば、それはその通貨の神聖さに対する人々の信頼を低下させるでしょう.

ビットコインでは、すべてのトランザクションが必ずブロックチェーンに含まれている必要があります。これにより、ネットワーク内の誰もがすべてのビットコインをそのソースまで正確に追跡できるようになります。このような高レベルの透明性により、ネットワーク全体に気付かれることなく、誰も二重支払いを行うことができなくなります。しかし、もっと悪魔的なことを考えてみましょう。誰かがフォークアウトしてブロックチェーンをハイジャックし、すべてのビットコインを二重支払いしようと決心したとします。.

その後何が起こるか?

ネットワークの難しさのために、攻撃者がチェーンを引き継ぐために必要なリソースとお金の量は指数関数的になることがわかりました。そのため、システムの利益に反して行動することは、経済的に価値がないだけです。これが、ネットワークの難しさが中本コンセンサスにネットワークのセキュリティと整合性を維持するために必要な火力を与える方法です。.

結論–ビットコインマイニングの難しさ

この記事で多くの価値を見つけていただければ幸いです。ご不明な点がございましたら、いつでもお気軽にお問い合わせください.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me