258 / 736BWH

Block Withholding Attack

ブロック解を提出しない攻撃

あるマイナーが、プールへ定期的に作業の証明を送っているとします。ところが、有効なブロックに必要な結果を見つけたときだけ、それを隠してしまいます。画面では働いている参加者に見える一方、プールは報酬を得る機会を失います。これが古典的な Block Withholding Attack です。マイナー同士の協力を損なう攻撃ですが、その痕跡は単なる不運にも見えます。理解するには、日常的な作業証明、実際のブロック、お金の分配ルールを分けて考える必要があります。

Block Withholding Attack は、通常の作業証明をプールへ送りながら、有効なブロックの解を見つけても意図的に提出しない攻撃です。プールはその参加者の作業を計上しても、それに見合うブロック報酬の機会を受け取れません。

Mining Pool はマイナーの作業をまとめ、合意したルールで報酬を分配します。小さな参加者がそれぞれ丸ごとブロックを見つけるまで待つことはできません。Bitcoin Developer Guide が説明する shares は、より緩い条件を満たす結果で、継続的な作業の証拠になります。まれな結果は、Bitcoin ネットワークの厳しい条件も満たします。攻撃者は通常の shares を提出し、この価値の高い発見だけを捨てます。機械は本当に計算して電力を使っており、費用なしで採掘を装っているわけではありません。 [3]

答えは支払い方式によります。Meni Rosenfeld は、受理された shares に運営者が支払う Pay Per Share(PPS)と、決められた範囲の直近の shares に応じて実際のブロック報酬を分配する Pay Per Last N Shares(PPLNS)を区別しています。PPS では、約束した支払いを守る限り、失われたブロックによる収入不足を運営者が負担します。PPLNS では、攻撃者を含む参加者に分けられるお金が減ります。同じ発見の破棄でも、損失を負う人は変わります。大切なのは画面の「採掘」という表示より、具体的なプールのルールです。 [1]

発見を捨てるだけなら、費用のかかる妨害になり得ます。攻撃者は機械代と電気代を払い、正直に採掘すれば得られた収入も手放します。Ittay Eyal はさらに、競合するプールが計算能力の一部で正直に採掘し、別の一部で他のプールを攻撃する場合を分析しています。一定の仮定では、この配分により総収入が増えることがあります。ただし、数学モデルの結果は全費用を差し引いた利益の約束ではありません。被害者の損失だけでは、攻撃全体が儲かったかは分かりません。 [2]

どちらにも未公開のブロックが登場しますが、その後の扱いが異なります。Eyal と Emin Gün Sirer が説明する Selfish Mining では、非公開のチェーン分岐で採掘し、そのブロックを戦略的に公開します。攻撃者は自分の分岐を採用させ、報酬を得ようとします。一方、プール内部の古典的な Block Withholding Attack は発見したブロックを捨てるため、勝つための非公開分岐を作る必要はありません。提出を遅らせるだけの派生形もあります。分析を読む際は、どの戦略を扱っているのか確認しましょう。 [4]

計算能力と難易度から、正直なマイナーが平均 1 ブロックを見つける期間を考えます。Rosenfeld も用いる Poisson モデルは、期待される発見の頻度が一定で、個々の発見が独立してランダムに起こる状況を表します。このモデルでは、何も見つからない確率は約 37% です。期待される数が 3 ブロックなら約 5% になります。これは不正をした確率ではありません。正直に採掘するという前提で結果がゼロになる確率を求めており、ゼロを見た後の不正の確率ではないのです。例では、適切に安定した条件と事前に決めた観測期間を仮定しています。平均はブロック発見の期限ではありません。 [1]

Eyal は、特定の小さなマイナーに攻撃を結びつける難しさを指摘しています。発見ブロックのないアカウントを示すだけでは足りません。同じ期間の受理された shares とブロックを比較し、shares の難易度、つまり表す作業量を考慮する必要があります。Hashrate は計算速度で、こうした証拠から得る推定値も変動します。停止、記録の欠落、条件の変化も調べるべきです。問題を調査する理由があっても、個人を非難する証拠が十分とは限りません。 [2]

Eyal は、ブロック発見へのボーナス、信用の積み重ね、答えが分かっている試験用作業を検討しています。しかし、いずれも条件を変えます。ボーナスは発見者に報酬をより多く配分するため、小さなマイナーの収入変動を大きくし得ます。信用を求めるルールはプール間の移動を難しくし、試験用作業には維持と信頼できる判定が必要です。スイッチを入れるだけの万能な防御ではありません。運営者は効果と副作用を評価し、何を検出できるのかを正直に説明する必要があります。 [2]

Bitcoin Developer Guide は、ブロックの発見とネットワークによる検証を区別しています。発見を隠しても取引の有効性ルールは変わらず、それだけで他人のコインを使ったり、確認済みの履歴を書き換えたりすることはできません。主に損なわれるのは、共同採掘の経済的な仕組みと信頼です。何が隠されたのか、合意したルールでは誰が損をするのか、実際にどんな証拠があるのか。この三つを意識すると理解しやすくなります。この説明は現在の特定のプールを告発するものではありません。 [3]

理解を深めるには、この項目とあわせて次もお読みください Mining Pool, Pay Per Last N Shares, Hashrate, Selfish Mining.

DOC · 001Rosenfeld — Analysis of Bitcoin Pooled Mining Reward Systems一次資料 DOC · 002Eyal — The Miner’s Dilemma一次資料 DOC · 003Bitcoin Developer Guide — Mining文書 DOC · 004Eyal and Sirer — Majority is not Enough一次資料
改訂日: 一次資料を優先 · 投資助言ではありません