弱気相場におけるテクノロジーの学習—《マイニング = POW = プルーフ・オブ・ワーク》

弱気相場におけるテクノロジーの学習—《マイニング = POW = プルーフ・オブ・ワーク》

「ビットコイン:480,000ページの元帳」では、通貨の本質は会計方法であり、ビットコインは分散型会計方法であると述べられています。では、このアカウントを誰がどのように管理するのか、という疑問が生じます。

回答:マイナーはマイニングによってアカウントを保持します。

「採掘」という言葉を聞くと、人々が最初に抱く印象は、鍬とサーチライトを持ち、暗い地下で掘っている黒い肌の鉱夫たちの集団だろう。無数のカチャカチャという音がした後、突然、鉱夫が透明な宝石や黄金を手に取り、「見つけた、見つけた」と叫びます。これは映画や小説の筋書きです。現実には、ブロックチェーン ネットワークの世界では、「マイニング」という言葉は正確には使用されていません。

しかし、今や「マイニング」という言葉が人々の心に深く根付いてしまったので、これからも語り続けざるを得ません。

「マイニング」とは、実際にはビットコインなどのデジタル通貨の計算と発行を表す比喩的な名前です。この行動の背後にある実際の行動は、インターネット上の無数のコンピュータがアカウントを記録し、特定の問題を解決する権利を求めて競争していることです。問題を最初に解決したコンピューターは、ネットワーク全体のすべてのコンピューターの監視下でアカウンティング(ブロックのパッケージ化)を完了し、ネットワーク報酬としてビットコインを受け取ります。

それで、問題は何でしょうか?

特定のブロックのブロックヘッダーの特別なハッシュ値を見つけることです。この特別なハッシュ値は、事前に設定されたターゲット値よりも小さくなければなりません。

この文章をどう理解しますか?

便宜上、簡単な例を挙げてみましょう。ブロックチェーンの世界では、SHA256と呼ばれるアルゴリズムが使用されています。その特徴は、任意のステートメントが与えられた場合、アルゴリズムを通過するとハッシュ値を取得できることです。

たとえば、「power overlooking」(StarCraft をプレイしたことがある人ならこの人が誰なのか知っているでしょう、笑)と入力すると、SHA256 アルゴリズムの後、32 バイトのハッシュ値が得られます。

'8fe12dec3dc8433bfe04ca1e4381feaa58d30c5ece06d37756d88face23aa3e1'

sha256 アルゴリズムの特殊性により、このステートメント内の文字を変更、追加、または削除すると、出力ハッシュ値が変わります。

たとえば、元の文の後に「1」を追加し、「power overlooking1」と入力すると、新しい 32 バイトのハッシュ値が得られます。

'd9e940764a410ecf7eae1f27a63248070ab45292e41de1cdfc89433ba2c20ac7'

さあ、目標を設定しましょう。ステートメントの末尾の数字を変更することで、出力される 16 進ハッシュ値の最初の桁は 0 になります (256 ビットのバイナリ ハッシュの最初の 4 桁がすべて 0 になるのと同じです)。以下は、文末に異なる数字の繰り返し処理を実装し、要件を満たすハッシュ値をカウントする簡単なコードです。

コードは次のとおりです

図1

プログラムを実行し、ステートメント「power overlooking」と数字「4」をそれぞれ入力します。数字「4」は、対象のハッシュ値の最初の 16 進桁が 0 であることを意味します。

図2

上記の操作結果から、

- ターゲットハッシュ値は次のとおりです。

0×1000000000000000000000000000000000000000000000000000000000000000

- 合計 32 回の計算が行われ、条件を満たすハッシュ値が 2 回出現しました。これは、平均すると 16 回の計算ごとに 1 つのハッシュ値です。これは、16 進数は 0 から 16 (0 から f) までの任意の数字を表すため、要件を満たす末尾の数字が発生する確率は 1/16 になるからです。

プログラムを再度実行して「show me the money」と入力すると、数字「4」が「8」に変更されます。これは、ターゲットハッシュの最初の2ビットがすべて0であることを意味します(または、256ビットバイナリの最初の8ビットがすべて0です)。

- ターゲットハッシュ値は次のとおりです。

0×0100000000000000000000000000000000000000000000000000000000000000

・合計1024回の計算が行われ、条件を満たすハッシュ値が5回出現しました。データの量が十分ではありません。十分に大きい場合、発生確率は 1/256 になるはずです。

したがって、ルールは非常に明白です。ハッシュ値の 0 ビットが多くなるほど、目標を達成するために必要な計算が多くなります。たとえば、ビットコイン ブロックチェーンのブロック 477016 のデータの場合、そのハッシュ値は次のようになります。

00000000000000000097cf400e2634e1b42cb0b55bbd25476a3e97a5e0d481d5

バイナリに変換すると 72 ビット必要となり、正しいハッシュ値はおよそ 4.7×10^21 回の計算ごとに 1 回出現することになります。正しいハッシュ値を得るために末尾の値を変更して計算を繰り返し実行するこの方法は、プルーフ・オブ・ワーク・メカニズム (POW プルーフ・オブ・ワーク) と呼ばれ、末尾の継続的に繰り返される数値はノンス値と呼ばれます。

では、実際のブロック ヘッダー ハッシュはどのように計算されるのでしょうか?

ブロック ヘッダー ハッシュ値の実際の計算には、次の 6 つのデータが使用されます。

図3

最初の 5 つは既知の値で、バージョン番号、前のブロックのハッシュ値、ジェネシス ブロックから現在までのタイムスタンプ、ルート マークル値、難易度マークです。

マークル値は、ブロックにパッケージ化されるのを待機しているすべてのトランザクションによって再帰的に生成される値です。詳細については、Day2 の記事を参照してください。さまざまな理由により、ネットワーク上の異なるマイニング マシンでは、パッケージ化を待機しているブロックに異なるトランザクション レコードとタイムスタンプが存在する場合があります。

ビット難易度マークは、ビットコイン ネットワーク全体が自ら調整するパラメーターです。調整の基準となるのはビットコインの総量と年間生産量です。サトシ・ナカモトの計画によれば、ビットコインの総量は2100万で、採掘量は4年ごとに半減する。このパラメータは、このリズムを維持するために作成されます。 2 つの機能があります。

まず、ネットワーク全体のハッシュ レートがどれだけ高速であっても、2 つのブロックの生成間隔が常に約 10 分に保たれるようにします。

2 番目に、このパラメータは、パッケージ化を待機しているブロックのターゲット ハッシュ値でもあります。

ブロック番号 477016 に戻ると、その難易度目標は 18015dcc です。最初の 2 桁は累乗で、最後の 6 桁は係数です。次の式を展開すると、目的の HASH 値を取得できます。

計算式:ターゲットハッシュ=係数*2^(8*(指数-3)

係数=0x015dcc

指数=0×18

ターゲットハッシュ=

0x00000000000000000015dcc00000000000000000000000000000000000000000000

次に、ブロックヘッダーのノンス値を反復し、目標値より小さいハッシュを見つけます。

式は次のとおりです。

ハッシュ=SHA256(SHA256(ブロックヘッダー))

ブロック ヘッダー = 16 進リトルエンディアン (バージョン情報 + 前のブロック ヘッダー + ルート マークル + タイムスタンプ + 難易度ターゲット + nonce 値)

ただし、16 進数のターゲット ハッシュには合計 17 個のゼロがあるため、2 進数に変換すると、0 ビットは 72 個になります。 4.7×10^21 回の計算ごとに、およそ 1 つの正しいハッシュ値が生成されますが、これは非常に異常なことです。ただし、ビットコイン ネットワーク全体の現在のハッシュ パワーは -6200Ph/s であり、これは 1 秒あたり 6.2×10^18 回のハッシュ計算を実行できることを意味します。したがって、各ブロックの生成時間は約 750 秒、つまり 12.5 分となり、これはビットコインの各ブロックの生成時間 -10 分よりもわずかに長くなります。このリズムはビットコイン ネットワークの鼓動です。

一般的なラップトップの計算能力は約 1*10^8 回/秒です。このデータは正確ではないかもしれませんが、それは問題ではありません。なぜなら、このような異常なハッシュ計算能力の要件によれば、ゼロが 1 つ多いか 1 つ少ないかによって、15 万年または 150 万年の違いが生じるからです。これは、人間の短命な存在にとっても同じです。

ただし、正しい nonce が見つかり、ハッシュ値がターゲットより小さいと計算されると、誰もが同じパラメータ セットを使用して計算が正しいかどうかを確認できます。例えば、ブロック477016の場合、そのブロックヘッダー情報は次のようになります。

図4

式 hash=SHA256(SHA256(ブロック ヘッダー)) に従って、Python コードを次のように記述します。

図5

実行後、以下の6つの情報をそれぞれ入力します。

バージョン情報

前のブロックヘッダー

ルートマークル

タイムスタンプ

難易度ターゲット

ノンス値

ブロック番号477016のハッシュ値と等しいハッシュ値を取得します。

00000000000000000097cf400e2634e1b42cb0b55bbd25476a3e97a5e0d481d5

図6

マイニング マシンが正しいハッシュ値を計算すると、ブロックのブロック ヘッダーが正常にパッケージ化されたことを意味し、成功したマイナーはネットワークからビットコインの報酬を受け取ります。失敗したマイニングマシンは次のブロックの計算を開始し、上記のプロセスを繰り返します。

まさに計算量が膨大であるからこそ、いわゆるプロフェッショナルマイニングマシンが登場したのです。これらはすべて、ビッグデータ コンピューティングに非常によく似たプロフェッショナル GPU アレイを備えています。実際、このような大量の同種データは、GPU を使用するとより高速かつ効率的に移動できます。ビットコインの鉱山は通常このように見えます。非常に多くのプロフェッショナルなマイニングマシンが連携して稼働すると、エネルギー消費量は驚くほどになります。
図7

前述のように、ビットコイン ネットワーク全体のハッシュ パワーは -6200Ph/s です。この電力により、世界中のマイニングファームは1時間あたり230万kWh以上、年間190億kWhの電力を消費します。現在の国内の民間電力消費量は約0.55元/kWhです。この価格に基づくと、年間の電力消費量は105億人民元となる。現在のビットコインの年間生産量は約66万で、1コインあたりの価格が2万8000人民元なので、その価値は約180億人民元になります。

電力消費量が非常に大きいため、コストを削減するために、ほとんどの鉱山は、電気料金が約0.35元/kWhである中国南西部などの水力発電が豊富な地域に建設されています。下の写真は西部の奥地にある鉱山の外観です。周囲の景色と相まって、本当に「鉱山」のように見えます。
図8


以下は上記のコードです。 Python インターフェースをお持ちの場合は、自宅に持ち帰って試してみることができます。

#ハッシュノンス
ハッシュライブラリをインポートする

text = raw_input(“文章を入力してください:”)
# nonce を 0 から xxx まで反復する
難しい = raw_input(“0~32の数字を入力してください:”)
bit=int(難しい)
カウント=0
リスト=[]
ターゲット=2**(256ビット)
hextar=hex(ターゲット)
xrange(4*(2**bit))内のnonceの場合:
# テキストの末尾に nonce を追加します
入力 = テキスト + str(nonce)

# 入力のSHA-256ハッシュを計算します(テキスト+ノンス)
ハッシュ = hashlib.sha256(入力).hexdigest()
# 入力とハッシュ結果を表示
入力を印刷、'=>'、ハッシュ
long(ハッシュ、16)<ターゲット:
カウント=カウント+1
リストに追加(ハッシュ)

print "ターゲットを満たすハッシュが %d 個あります"%(count)
print "ターゲットハッシュは:", hextar
「次のハッシュはターゲットを満たしています:」と出力します
in リストの場合:
印刷する

#ハッシュカル
ハッシュライブラリをインポートする

#入力を求める
ver = raw_input(“バージョン番号の6桁を入力してください:”)
phash = raw_input(“前のブロックのハッシュを入力してください:”)
rmerkle = raw_input(“ルートマークル値を入力してください:”)
t = raw_input(“時間をデジタルで入力してください:”)
bits = raw_input(“16進数のビット数を16進数で入力してください:”)
nonce = raw_input(“デジタル nonce 値を入力してください:”)
#時間とノンスをintに変換する
t = int(t) です。
n = int(ノンス)
#すべての入力を16進数形式に変換し、小数点以下を省略
sver=”0x”+str(ver)
hexver = sver[2::].decode('hex')[::-1].encode('hex')
hexphash = phash.decode('hex')[::-1].encode('hex')
hexrmerkle = rmerkle.decode('hex')[::-1].encode('hex')
hextime=hex(t)[2::].decode('hex')[::-1].encode('hex')
hexbits = bits.decode('hex')[::-1].encode('hex')
hexnonce = hex(n)[2::].decode('hex')[::-1].encode('hex')
「hexver は:」と印刷します。hexver
「hexphash は:」と印刷します。hexphash
「hexrmerkle is:」と印刷します。hexrmerkle
「hextime is:」と印刷します。hextime
「hexbits is:」と表示します。hexbits
「hexnonce は:」と出力します。hexnonce
#ハッシュ値を計算する
header_hex=(hexver+hexphash+hexrmerkle+hextime+hexbits+hexnonce)
header_bin = header_hex.decode('hex')
ハッシュ = hashlib.sha256(hashlib.sha256(header_bin).digest()).digest()
new_hash = ハッシュ[::-1].encode('hex_codec')
「ハッシュは:」と出力します。new_hash

冬が近づいています。テクノロジーについてもっと学び、次の春に備えましょう


<<:  Huobi.comとOKCoinがすべての仮想通貨事業を停止。プラットフォーム管理者は一時的に北京を離れることが許可されていない

>>:  JPモルガン・チェースは、ヨーロッパでビットコインを秘密裏に低価格で購入したことを否定。顧客が自ら購入したのだ!

推薦する

BTC-eは16時間以上サービスウィンドウを閉じた

ゴールデンファイナンスニュース -暗号通貨の売買を行う最大規模の取引所の一つであるBTC-e取引所は...

ロシアの暗号通貨取引所Livecoinがハッキング後に閉鎖

2020年12月末、ロシアの暗号通貨取引所Livecoinが突然運営を停止し、その後閉鎖を発表しまし...

最初の分散型フィンテック取引プラットフォーム

デジタル通貨!まだ好きじゃないんですか?今年、2015 年には、デジタル通貨とブロックチェーンに関す...

SEC、GAW Minersを採掘ポンジースキームの疑いで調査

写真: GAW Miners CEO ジョシュ・ガルザ8月19日、米国証券取引委員会(SEC)は、暗...

シンガポールの中央銀行は、銀行間の決済プロセスを簡素化し、取引コストを削減するためにデジタル通貨をテストしている。

シンガポール通貨庁​​(MAS)は、ブロックチェーンシステムの試験運用で銀行間決済に使用される独自の...

調査:フィンドラの巨額株式公開開始、スタンフォードのスターは「中国版悪意」の疑い

謎の中国人女性がスタンフォード大学の大物実業家から奇跡的な支持を得た。上司が突然癌で亡くなり、スタン...

暗号通貨業界に携わる6つの主要資産運用会社:暗号通貨は金融の未来への架け橋

インタビューソース |ユーロマネー誌編集:百澤研究所ビットコインの理論は、支払いレイヤーからデジタル...

[BitPush インタビュー] ジャスティン・サン: 大使は「国の最も重要な資産」であり、彼の将来の仕事は中国の WTO 大使である李成剛の仕事と結びつくかもしれない

カリブ海東部の島国グレナダ政府は、ジャスティン・サン氏を世界貿易機関(WTO)の常任代表および特命全...

ビットコインマイニングの第一選択肢として中国四川省を選ぶ人が増えています。四川省ではビットコイン採掘産業が活況を呈している。

ゴールデンファイナンスニュース - 国内の一部メディアの報道によると、他の地域よりも寒い四川省康定地...

近年の人民日報のビットコインに関するコメント

写真: 人民日報本社ビル第0章 はじめに人民日報は今週、ビットコインについて論評する新たな記事を掲載...

2022年に大人気だったMove2Earnゲームは2023年も好調でしょうか?

1. 2023年にMove 2 Earnというゲームでどれくらいのお金を稼ぐことができますか? G...

アウトライアー:イーサリアムの 6 つの L2 のインセンティブ効果に関する調査:新しい L2 がエアドロップ後にユーザーを維持できない理由

1.エコシステムインセンティブ活動に関する提案多段階エアドロップ戦略を実行する:長期的なユーザーの粘...

BCHは2週間で3倍になりました。 PoW 物語の復活は夢でしょうか?

ビットコイン現物 ETF を申請する主流金融機関によって推進されたこの市場の最大の受益者が、ビットコ...

データ:ビットコインのネットワーク難易度は明日7.95%増加して15.65兆円に達すると予想

データによると、ビットコインネットワークの現在の難易度は14.50Tで、明日13時頃にネットワーク全...

iBOLCK.one、RedBlock Capital主導のシリーズA資金調達を獲得

海外メディアの報道によると、ブロックチェーン金融サービスプラットフォームiBLOCK.oneは3月2...