ProgPoW アルゴリズムに脆弱性が露呈、Ethereum ASIC マイニングは止められないのか?

ProgPoW アルゴリズムに脆弱性が露呈、Ethereum ASIC マイニングは止められないのか?

物議を醸している ProgPoW アルゴリズムに関して、独立系開発者の kikx は本日、このアルゴリズムの脆弱性を公開しました。この脆弱性により、ASIC 対策の目標を真に達成することは不可能になります。 Kikx 氏はまた、この脆弱性は新たに発見されたもので、現在 Ethereum で使用されている Ethash アルゴリズムに脅威を与えるものではないとも付け加えた。

これに対して、イーサリアム開発者のフィリップ・カストンガイ氏は次のようにコメントした。

「ProgPoW の現在の実装は、ASIC 耐性がそれほど高くないようです。基本的に、ProgPoW ハッシュ関数は 64 ビットのシードを使用しますが、ASIC は、意図したとおりにマイニングするのではなく、これを「簡単に」ブルート フォース攻撃することができます。これを公式に確認するには、さらに注意が必要です。」

イーサリアムのハードフォークコーディネーターのジェームズ・ハンコック氏は後に脆弱性の存在を確認し、感謝の意を表した。

では、この抜け穴とは一体何なのでしょうか?

Kikx が公開した詳細を見てみましょう。

ProgPoWの設計上の欠陥

ProgPow には設計上の欠陥があります。

64 ビットのシードは小さすぎるため、ASIC はメモリにアクセスせずにハッシュを計算できます。

初期実装

読みやすい実装を提供してくれた chfast に感謝します。

ProgPoW ハッシュ関数は次のように定義されます。

結果ハッシュ(const epoch_context& context, int block_number, const hash256& header_hash,
uint64_t nonce) 例外なし
{
const uint64_t シード = keccak_progpow_64(header_hash、nonce);
const hash256 mix_hash = hash_mix(コンテキスト、ブロック番号、シード、calculate_dataset_item_2048);
定数hash256 final_hash = keccak_progpow_256(header_hash、seed、mix_hash);
{final_hash, mix_hash} を返します。
}

ASICフレンドリーなコンピューティング

ブロック ヘッダー block_header とブロック番号 block_number が指定されていると仮定します。

次に、次の 3 つの手順に従います。

  1. シードを任意の 64 ビット値に固定し、 mix_hash = hash_mix(block_number, seed); を計算します。

  2. header_hash が難易度条件を満たすように extra_nonce を検索します。

  3. keccak_progpow_64(header_hash, nonce) == seed となるように nonce を検索します。

最初のステップは、固定のシードとブロック番号の mix_hash を計算することです。 mix_hash は seed と block_number の関数として設計されているため、有効な 3 つの要素 (seed、mix_hash、block_number) が得られます。ここでの目標は、次の 2 つの条件を満たす header_hash と nonce を見つけることです。
    1. (A) keccak_progpow_64(header_hash、nonce) == シード;

    2. (B) keccak_progpow_256(header_hash、seed、mix_hash) <= 境界;

覚えておいてください、追加の乱数を変更することで、任意の数のヘッダー ハッシュを生成できます (Ethereum の ExtraData を使用)。したがって、条件 (B) はステップ 2 で簡単に達成できます。これで、(header_hash、seed、mix_hash、block_number) は固定されますが、nonce は自由になります。最後に、ステップ 3 では条件 (A) の nonce をスキャンします。シードの長さは 64 ビットしかないため、条件 (A) では 64 ビットのセキュリティしか提供されず、ステップ 3 は ASIC によって実行できます。

コストを計算する

関数は keccak_1600、keccak_progpow_64、hash_mix、keccak_progpow_256 の 4 つです。コストは、ネットワーク難易度 D に応じて必要な関数の呼び出しを計算することによって計算できます。

通常のハッシュ計算では、block_header から header_hash を計算するために keccak_1600 呼び出しが必要であり、その他の関数は nonce 値ごとに順番に呼び出されます。

ASIC ハッシュ計算では、ステップ 1 で hash_mix 呼び出しが必要であり、ステップ 2 で keccak_1600 と keccak_progpow_256 が呼び出され、ステップ 3 で keccak_progpow_64 が呼び出されます。

hash_mix は ASIC 計算で 1 回だけ呼び出されるため、ホスト CPU を使用して hash_mix を計算できます。その他の関数はすべて keccak ハッシュ関数であり、メモリ ストレージを必要とせず、ASIC 上で簡単に計算できます。

keccak_progpow_64 行の D を 2^64 と比較する必要があります。簡単に言えば、D が大きいほど ASIC の収益性が高まります。閾値を見積もることは困難ですが、現在の難易度 (> 2^50) は十分に大きいと思います。

デモ

デモはこのリポジトリにあります。
 $ git クローン https://github.com/kik/progpow-exploit.git
$ cd progpow-exploit
$ mkdir ビルド
$ cd ビルド
$ cmake ..
$ 作る
$ ./test/ethash-test --gtest_filter=asic.search
このデモでは、CPU 上で実行するためにシードは 24 ビット幅に切り捨てられます。コードを参照してください。

テストコードはシンプルです。

search_asicはここで定義されます

この脆弱性の存在を考えると、イーサリアムマイニングマシンメーカーは安堵のため息をつくことができるでしょうか?

<<:  プロの鉱山労働者のための必修コース:金融ツールを使用した鉱山リスクの管理

>>:  「半減期」の年に、ETHも「半減」しました!

推薦する

ビットコイン公式サイト管理者コブラがBCHの支払い属性を認める

昨日、ビットコインの公式サイトであるBitcoin.orgの管理者であるコブラは、次のようにツイート...

ベルギー規制当局がワンコインに警告

ベルギーの最高金融規制当局はワンコインについて警告を発し、このデジタル通貨は詐欺だと非難した。金融サ...

ビットコインの狂ったような上昇と下降は、その投機的な性質によるものです。

今週の木曜日、狂乱の月が続いていたビットコインは、崖のような下落を経験した。 ビットコインは9月から...

インドではビットコイン取引はマネーロンダリングとみなされますか?インドの大臣がビットコインは違法だと発言

インド議会の上院であるラージヤ・サバーでの質問に対する書面による回答の中で、インドの大臣は最近、イン...

韓国の新韓銀行がブロックチェーンベンチャーに200万ドルの投資に参加

コメント:アジアは、ブロックチェーン技術の発展動向において、依然として比較的保守的な立場にあります。...

エネルギーを運ぶ科学採掘プールの運用パート1

マイナーがマイニングに参加するには、マイニング機器を購入して単独でマイニングするか、マイニング プー...

市場のボラティリティは低く、変動の余地は非常に小さい

最近、国内での流行が深刻化しているが、主な原因は、無症状の感染者が多数出回っていることだ。新型コロナ...

ビットコインの最近の半減期は市場にどのような影響を与えるでしょうか?

ビットコインの半減期に関する指標やデータについては、皆さんも多くの議論を目にしたことがあると思います...

BitEasyの創設者の死はビットコイン先物の暴落による自殺と疑われている

著者: Big Short 出典: CoinBlack BitEasyの創設者が亡くなり、100倍の...

中国人民銀行の副総裁は、ビットコインやその他の暗号資産を投資ツールや代替投資として利用すべきだという重要なシグナルを送った。

ウー・サイード著者 |コリン・ウーこの号の編集者 |コリン・ウー4月18日に開催されたボアオ・アジア...

有名なビットコインエンジニアのジェイムソン・ロップが暗号通貨ウォレットサービスプロバイダーのカサに引き抜かれた

Casa Wallet のサービスには、物理​​的な脅威を含む攻撃を阻止するために設計されたいくつか...

2017年のビットコイン強気相場の兆候が再び現れる

ビットコインはここ数週間、1万ドルから1万1000ドルの範囲で横ばいで取引されている。マクロ的な観点...

暗号通貨市場は引き続き弱体化、ビットコインは1万ドルを突破間近

暗号通貨市場は過去24時間にわたって弱まり続けました。市場価値が最も高い暗号通貨ビットコインは、先週...