amarillon のブログ

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

読書記録:Sluggish Mining: Profiting from the Verifier’s Dilemma

先日の記事で、ビットコインのマイナー戦略の論文を読んでまとめを書いてみました。 inu123.hatenablog.com

それの関連で、イーサリアムのマイニング戦略についても文献を探してみたところ、最近出た論文を見つけたので読んでみました。

http://fc19.ifca.ai/wtsc/SluggishMining.pdf

背景として、2015 年に、L. Luu, J. Teutsch, R. Kulkarni, and P. Saxena. Demystifying incentives in the consensus https://eprint.iacr.org/2015/702.pdf という研究のなかで提唱された verifier のジレンマという概念があります。現在のイーサリアム等ではブロックの検証じたいから報酬をもらうことはできないため、マイナーとしては検証をやるための電力や計算機資源を「次のブロックをマイニングする」ために使いたいと考えたくなります。しかし、検証をスキップしてしまうと、incorrect なブロックにつながるマイニングをしてしまう危険性があり、この場合やはりマイナーは自分の計算機資源を無駄遣いしてしまうことになります。この現象を verifier のジレンマと呼んでいます。

今回読んでみた論文では、検証に時間がかかるスマートコントラクト(= Sluggish (動きがのろい)コントラクト)をわざとデプロイして、他のマイナーが検証に時間をかけている間に自分が相対的な利得を得るという戦略について調べています。

イーサリアムでは、トランザクションを発行してトークンを送ったり、コントラクトをデプロイするためにガスと呼ばれるお金(Ether)がかかる仕組みになっています。ガスは計算にかかる時間コストを反映するように作られていますが、よく調べると、計算コストを正確に反映していない(安いガスでコストが高い命令を実行できる)opcode があるらしく、それらを組み合わせることで計算コストが高いコントラクトを作成することができるそうです。

コントラクトをデプロイするには手数料がかかるので、それでも攻撃者が利益を得るための条件が、「sluggish contract によって他マイナーから相対的に得るアドバンテージ」「手数料」「ブロック報酬」「マイナーのハッシュパワー」に関する関係式として導かれています。

イーサリアムのブロック報酬は先日のコンスタンティノープルのハードフォークで 3 Ether から 2 Ether に変わりましたが、これはマイナーが sluggish mining による攻撃をやったとしても、得られる利益が少なくなることを意味することになります。とはいえ、論文の Conclusion のところに、プルーフ・オブ・ステークのブロックチェーンに対しても類似の攻撃ができるのではないか?と書いてあったこともあり、今後も注目していきたい話題だと思いました。