はじめに
この記事は論文 1の解説記事です。これはビットコインとイーサリアムに対する攻撃のコストを定量化し、ブロックチェーンのセキュリティに関して考察した論文です。51%攻撃(ビットコイン)と34%攻撃(イーサリアム)に関する多くの仮説と懸念を検討し、これらの攻撃を実行するためのコストと利益を定量化しています。攻撃の全体コスト(Total Cost to Attack, TCA)という新しい指標を導入し、運用費用(OpEx)と資本費用(CapEx)を含めた攻撃コストを計算しています。
既存の分析ではビットコインの攻撃におけるCapExを算出することが困難でしたが、本論文では「どのようなASICがどのくらい稼働し、全体のブロック生成に占める割合がどの程度であるか」を試算することでCapExを初めて導出しています。
この分析によると、ビットコインとイーサリアムの現在のセキュリティ状態においては攻撃が行われることは非現実的であると結論付けられています。
さらに、セキュリティがブロック報酬に比例するというよく知られた考え方に疑問を投げかけ、ブロックの生成者が報酬サイクルに先んじて投機的に行動することで、報酬が低下傾向にある時でもネットワークのセキュリティが向上することが示されています。
これによって、セキュリティは手数料ではなく、採掘者が将来的にどのくらいコインに価値があると見なすかというパラメータによって決定されているように見えると報告しています。
今回の解説では、主にビットコインのパートを取り上げます。イーサリアムについては前提としてセキュリティがコイン自体の価格に依存しているという点のみ言及しておきます。
詳細
1-5章の用語解説はスキップし、6章のTotal Cost-to-Attack (TCA)のモデル導入から入ります。
既存のモデルの問題点
ビットコインの51%攻撃の可能性について試算するウェブサイト2では、現在NiceHashなどの市場で購入できるハッシュレートから、不適切な推定を行っています。ビットコインのような巨大なネットワークの場合、現実的には、市場で借りることができるハッシュレートは、0.01%未満であると考えられています。
CapEx と OpEx
CapExは初期投資の資本費用(Capital Expenditures)、OpExは単位時間ごとにかかる運用費用(Operational Expenditures)を意味します。ビットコインを時間Tの間51%攻撃するコストC_\text{attack}
としては CapExとOpExの和になるとTCAモデルでは定義しています。
C_\text{attack} = C_\text{CapEx} + \sum_{t=1}^{T}C_\text{OpEx}(t)
大雑把に言うと、CapExはASICを用意するのにかかる費用で、OpExは電気代です。
MINE-MATCHアルゴリズムによるASIC分布の試算
ナンスなどビットコインのブロックに含まれる情報から、どのASICによって採掘されたかを推定し、全体のハッシュレートのうちASICのモデル別の割合を算出するアルゴリズムです。詳細は公開されていないようですが、別論文3を参照してください。
ビットコインASICのCapEx
51%攻撃をするため、ビットコインASICを大量に取得するのにかかる費用を算出してみます。
単純計算
表1のビットコインASICの平均価格を、図2の各ASICの分布台数に掛け合わせて合計値を取ることで、ASICを市場から調達する際に必要になる合計金額をCapExとして算出することができます。
表1: ビットコインASICの価格(モデルごと)
図2: 各ASICの分布数(台数)
図3: ASICの分布数に価格を乗じた図
ASICの二次流通市場の流動性を考慮した計算
現実には、単純計算のように全員がASICを売ってくれるわけではなく、ASICを一度に購入しようとすると、ASICの流動性が下がり、価格が上昇します。
この流動性が低下して価格が上昇するメカニズムを考慮したCapExの計算を考えます。
P_0
を表1の平均的なASICの価格とします。
Q
を現在流通しているASIC(のモデルひとつあたり)の流通数合計とします。
Q_a
を、攻撃者が購入したいASICのモデルの個数とします。例えば、これは Q
の51%になるでしょう。
P
を、攻撃者が51%攻撃を実行しようとしてASICを大量に購入した場合の最終的な価格とします。
k
は定数で、攻撃者がASICを買い集めようとしたときにどのくらいASIC価格が上昇するかを決定するパラメータです。kが大きいほど、上昇幅が大きくなります。
これらの変数を使って、P
を以下のように表現します。
P = P_0 \times (1 + k \times \frac{Q_a}{Q})
... (※)
あとはkを決定すればokです。このモデルでは、ビットコイン価格と公開されているASIC市場価格の歴史的推移を使って、ASICの市場がどのようにASIC需要の変化に応じて価格変化を起こすかを推定しています。
この根拠としては、ビットコイン価格が上がるとASICの需要が伸び、下がるとASICの需要が落ちるという経験則があります。
この手法から推定されたkの値は 0.71 と算出されています。
このkの値を使って、51%分のASICを購入するのに必要なCapExを導くと、以下のとおりになります。
図5: 異なるkの値に対応したCapExの値
単純計算では5B USDだったのが、市場の価格変化を考慮することで7B USD程度になっていることがわかります。kの値として 0.71, 0.71×2, 0.71×2^2, 0.71×2^3 の値を使った場合がプロットされています。
攻撃者が自分でビットコインASICを製造するコスト
攻撃者が自分でビットコインASICを製造する場合について考えます。既存のASICのチップはブラックボックスですが、S9については解析した論文があることやBitMainの財務諸表からの類推によって、最もコスト導出のモデルとして使いやすいものと考えられます。
このような理由から、S9一台あたりの製造コストをBitMainの2017年の財務諸表から算出される$500と仮定します。攻撃者がS9だけを大量に製造して、全体のハッシュレートの51%を占めるに至るには、4000万台のS9を製造する必要があり、そのCapExは 20B USD になります。
この分析を最新のS21で行うと(不正確なコスト推定ではありますが)、一台あたりの製造コストが$2240であり、250万台の製造を行うことになり、そのCapExは 5.6B USDになります。市場から買う場合における単純計算時の5B USDよりはまだ高い値ですが、それでもその差は小さくなっています。
ビットコインASICのOpEx
OpExはここでは単純化され、電気代のみがかかるとされています。実際には、施設の維持管理費用などがかかりますが、電気代が主要なコストであるためです。
以下は2023年12月時点における、ビットコインの51%攻撃を実行するのにかかる電力量と、その調達費用です。
表2: 51%攻撃を実行するOpEx(市場でASICを買う場合)
これは「市場でASICを調達する場合の単純計算したCapEx」「市場でASICを調達する場合の価格モデルを使ったCapEx」の場合にあてはまります。
以下は2023年12月時点において、攻撃者が自分でASICを製造してビットコインの51%攻撃を実行するのにかかる電力量と、その調達費用です。
表3: 51%攻撃を実行するOpEx(ASICを自分で作る場合)
以下はOpExとCapExの値から(※)の式にしたがって導出した攻撃費用です。
図7: 各シナリオにおける1時間51%攻撃を行う場合のTCA
ブロック報酬減少に関する予測
上記で算出したTCAとブロック報酬の間には、歴史的に見て相関関係はほとんどありません。直感的にはブロック報酬が高ければTCAが上がりネットワークの安全性が増すように思えますが、これまでのところ、そのような傾向は見られません。
マイナーにとっては、ビットコインの価格が安定しないことと、手数料マーケットが予測不可能な景気循環サイクルを持つことから、どのようなマイニング環境下であっても平均的に新しいASICを投入し続けて、好景気下における長期的リターンを期待して投資する決定を下しているのだと考えられます。
このようにマイナーは手数料マーケットに即座に反応するわけではなく、水面下で行動するため、手数料とセキュリティに関連を見出すことが一層難しくなっています。
またマイナーによるビットコイン採掘・売却の行動パターンを説明するには、マイナーが投機的な存在であり、「ビットコインが安いときにマイニングして高くなったら売る」という行動を取ると考える方が、これまでのところは理に適っています。これはマイナーが採掘手数料マーケットに即座に反応するわけではないという仮説を補強しています。
結論と感想
いずれの攻撃も、理論上は可能ですが、実際には非常に高額なコストがかかり、攻撃者にとってのリスクが大きいため、実行される可能性は低いと考察しています。一方で、攻撃のリスクがある以上は、ブロックチェーンの安全性を向上させていくことが重要であると強調されています。
個人的には、CapExの解析の中で既存のものを買う(7B USD)より自分で最新機種を作る方が安いかもしれない(5.6B USD)という結論になっているのが意外でした。
また、MINE-MATCHのアルゴリズムがどのようなものなのか詳細が公開されていないのも残念な点です。
なお4のSelfish Miningという攻撃手法と組み合わせることで、実際にはもうすこし攻撃コストは下がる可能性がありそうですが、この論文では考察の対象から外されているようです。
参考文献
-
Breaking BFT: Quantifying the Cost to Attack Bitcoin and Ethereum https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4727999 ↩
-
PoW 51% Attack Cost https://www.crypto51.app/ ↩
-
Bitcoin MINE-MATCH https://labs.coinmetrics.io/ ↩
-
50%では不十分?Selfish-Mining攻撃の脅威とは https://tech.hashport.io/2546/ ↩