amarillon のブログ

宇宙科学や語学に関する本の紹介をしています。

読書記録:On the Instability of Bitcoin Without the Block Reward

http://randomwalker.info/publications/mining_CCS.pdf

という論文を、会社の人たちが昼ごはんのときに話題にしていたので読んでみた。

プリンストン大学の人たちが書いた、2016年の論文。

ビットコインでは、マイナーがブロックを採掘に成功すると、トランザクションに込められた手数料以外にブロックごとの固定の報酬が支払われる。このブロックごとの報酬は徐々に減少してゆき、最終的にはゼロになる。そのときにはトランザクションの手数料報酬だけがマイナーの報酬になる。

このトランザクション報酬の時代には、ビットコインのチェーンが安全に伸びていけなくなるのではないか、という主張をしている。

マイナーの「マイニング戦略」が何種類か登場する。著者たちは、マイナーたちの行動をシミュレーションするプログラムを C++ で書いて、理論を計算機で実験した。

マイナーたちが、その時に見つかっている最も古いブロックを伸ばそうとするやり方を、default compliant と呼ぶ(従順なマイナー)。これはブロック報酬が保証されている、現在のマイナーのやり方だが、手数料時代が訪れたときには、他の戦略をとるマイナーが現れてくる。

たとえば、手数料がよりたくさんもらえそうな行動をする「petty compliant」(ちょっと従順な)戦略をとるマイナー。より多くの手数料が残されているチェーンにマイニングをしようとする。

この petty compliant マイナーがいるだけでは、ビットコインのセキュリティには脅威とならないが、ここで「lazy undercutting」(undercut = 低賃金で働く)と呼ばれる戦略をとるマイナーが現れてくる。この種のマイナーは、petty compliant マイナーの存在を利用して、チェーンをフォークさせようと試みる。

さらに、lazy undercutting よりも積極的な aggressive undercutting と呼ばれる戦略をとるマイナーが現れる。このマイナーたちは、積極的にチェーンのフォークを作り出し、自分の手数料収入を最大化させようとする。論文の中では、マイナーの行動がモデル化されていて、function-fork と呼ばれるモデル化がされる。

マイナーたちは、自分で設定した関数にしたがって戦略を決めておく。戦略は、たとえば f = kx という比例関数で表されることになる。(k はいろんな値を取りうる。また関数は、正比例でなくても、増加関数であれば良いらしい。)

f が決まると、マイナーたちは、それぞれ「フォークしないときの収益」と「フォークさせたときの収益」を計算する。

もしマイナーが、「フォークさせたときの収益のほうが期待値が大きい」と判断したら、チェーンをフォークさせてしまう。

論文の中では、全部のマイナーが同じ戦略をとる(したがって、マイナーの戦略が平衡状態に達する)ような関数 f を導いていて、それはある区間では Lambert の W 関数というものを使って表されるような関数となっている。

このような状況では、ビットコインのセキュリティに不安が生じるというのが論文の主張。マイナーがあちこちにフォークを作り出すような状況が生じれば、実質的に全体のハッシュパワーが下がることになり、ダブル・スペンディング攻撃が起こりやすくなる。

ブロック報酬が保証されていれば、フォークさせるインセンティブがないので、無事にチェーンを伸ばしていける。しかし、ビットコインのブロック報酬が将来的に減少し、トランザクションの手数料からしか報酬が出ないという状況になると、マイナー側には利益を最大化するために多様な戦略が生じてくることがわかる。

論文では、このまま「ブロック報酬なし、手数料報酬だけの時代に入っても大丈夫なのか?」という問題を、上記のような理論的な計算とシミュレーションを使って提示している。