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も「半減」しました!

推薦する

世界のダイヤモンド埋蔵量に基づくデジタル通貨「ピンクコイン」が1月18日に発売される。

原題:ダイヤモンドに裏付けられた初の暗号通貨、 PinkCoin が1 月 18 日にクラウドセール...

【Filecoinウィークリーレポート-58】キャリブレーションネットワークが開始、報酬付きテストがカウントダウンに突入

スティーブン・リーとアイリスが共同編集【プロジェクト紹介】Filecoin は、クラウド ストレージ...

ビットコインエコシステムのトラフィック競争:犬とピザがリード

ビットコインエコシステムにおけるRunesプロトコルは、最近新たな人気の波を経験しています。重要な推...

米上院議員、SECに新たな仮想通貨ETFの承認停止を要請

最近、ジャック・リード上院議員とラフォンザ・バトラー上院議員は、個人投資家が直面するリスクを理由に、...

MicroBTは東南アジアの企業と生産契約を締結し、北米の顧客に採掘機器を直接供給する。

プラネット・デイリーによると、マイクロBTは金曜日、デジタル・カレンシー・グループ(DCG)のマイニ...

ジャック・マーはブロックチェーンの計画と開発を開始しました。中国のブロックチェーン業界は爆発的に成長するのか?

アリババは米国でのIPO以来、世界中で買収を続けている。最近の投資には、インドとフィリピンの電子商取...

ポピュラーサイエンス:ビットコインの創始者サトシ・ナカモトとは誰ですか?

ブロックチェーンの世界で最も謎に包まれた人物は、ビットコインの発明者であるサトシ・ナカモトに他なりま...

英国政府報告書「ブロックチェーンを超えて」の中国語版

クレイジーコメント: 2016年1月19日、英国政府はブロックチェーン技術に関する重要なレポートを発...

Wabi.comは多くの有名企業と提携しています

Wabi.com は Alibaba Cloud と提携し、主に基本的なクラウド コンピューティング...

シンガポール金融管理局:デジタル決済トークン(DPT)サービスプロバイダーライセンスの申請170件を受理

出典: Cailianshe |ブロックチェーンデイリー記者 徐慈豪 李紅輝元のタイトル: 「独占 ...

データ:ETHの破壊が65万を超える

データによると、現在破壊されているイーサリアムの量は 650077.48 ETH で、破壊率は 5....

ビットメインのハッシュレートが10%近く低下

BitmainはAntpoolとBTC.comのマイニングプールを所有しており、両プールのハッシュレ...

ビットコインのシステム拡張を理解する方法

ビットコインに関して2016年に最も話題になったトピックの1つは、将来の成長と拡大に関する適切な計画...