Skip to main content
QUICK REVIEW

[論文レビュー] TokenHook: Secure ERC-20 smart contract

Reza Rahimian, Jeremy Clark|arXiv (Cornell University)|Jul 7, 2021
Blockchain Technology Applications and Security参考文献 16被引用数 6
ひとこと要約

この論文では、既知の脆弱性を軽減し、セキュリティのベストプラクティスへの準拠を向上させるために設計された、VyperおよびSolidityで実装された安全でオープンソースのERC-20スマートコントラクト、TokenHookを紹介する。7つの業界用ツールにおいて、検出された欠陥の数が最小限(主に誤検出)であることを報告し、監査の正確性において既存の実装を上回り、ソフトウェアの多様性と監査の信頼性を高めるための第二の基準実装としての堅牢さと適性を示している。

ABSTRACT

ERC-20 is the most prominent Ethereum standard for fungible tokens. Tokens implementing the ERC-20 interface can interoperate with a large number of already deployed internet-based services and Ethereum-based smart contracts. In recent years, security vulnerabilities in ERC-20 have received special attention due to their widespread use and increased value. We systemize these vulnerabilities and their applicability to ERC-20 tokens, which has not been done before. Next, we use our domain expertise to provide a new implementation of the ERC-20 interface that is freely available in Vyper and Solidity, and has enhanced security properties and stronger compliance with best practices compared to the sole surviving reference implementation (from OpenZeppelin) in the ERC-20 specification. Finally, we use our implementation to study the effectiveness of seven static analysis tools, designed for general smart contracts, for identifying ERC-20 specific vulnerabilities. We find large inconsistencies across the tools and a high number of false positives which shows there is room for further improvement of these tools.

研究の動機と目的

  • ERC-20トークンに適用可能な82の異なる脆弱性およびベストプラクティスを体系化し、分析することで、先行研究における空白を埋める。
  • 現在のOpenZeppelin基準実装を上回るセキュリティと準拠性を実現する新しい安全なERC-20実装、TokenHookを開発する。
  • 7つの広く使われている静的解析ツールがERC-20固有の脆弱性をどれだけ正確に検出できるか、その有効性、正確性、包括性を評価する。
  • VyperネイティブなERC-20実装を提供することでソフトウェアの多様性を促進する。現時点では、このような基準実装は存在しない。
  • TokenHookをゴールドスタンダード実装として用いて、監査ツールの性能をベンチマーク化し、重大な不一致および誤検出率を明らかにする。

提案手法

  • 著者は、既知のERC-20脆弱性を包括的に調査し、特定の攻撃ベクトルと緩和戦略にマッピングした。
  • 彼らは、防御プログラミングパターンを組み込み、Vyperの組み込みのオーバーフロー保護を活用することで、VyperおよびSolidityの両方でTokenHookを設計・実装した。
  • 標準化された条件下で、7つの静的解析ツール(Securify、MythX、ContractGuard、Slither、Odin、その他のツール)を用いて実装を監査した。
  • 誤検出は手動でレビューされ、除外され、TokenHookにおけるツール全体の洗練済み成功率は99.5%に達した。
  • 監査結果は、時価総額上位10位のERC-20トークンと比較され、相対的なセキュリティ報告の正確性を評価した。
  • 本研究では、TokenHookをベンチマークとして用い、再entrant攻撃、オーバーフロー、フロントランニングの問題の検出におけるツールの限界を評価した。

実験結果

リサーチクエスチョン

  • RQ1ERC-20トークンコントラクトに特有の最も一般的で影響力のある脆弱性は何か。また、それらはどのように体系的に分類できるか?
  • RQ2既存の静的解析ツールは、ERC-20固有の脆弱性をどれだけ正確に検出できるか。誤検出率はその信頼性にどのように影響するか?
  • RQ3新しいERC-20実装は、現在のOpenZeppelin基準実装を上回るより強固なセキュリティ特性と、より良いベストプラクティス準拠を達成できるか?
  • RQ4プログラミング言語の選択(Vyper対Solidity)は、ERC-20コントラクトのセキュリティおよび監査可能性にどのように影響するか?
  • RQ5TokenHookは、スマートコントラクト監査ツールの正確性および包括性を評価するための信頼できるベンチマークとして機能できるか?

主な発見

  • TokenHookは、USDT や USDC などの時価総額上位のトークンを含む、すべての評価対象ERC-20トークンの中で、検出されたセキュリティ欠陥の数が最小(40件)であった。
  • 他のトークン(例:USDTで197件、LEOで252件)では高い検出率を示したが、TokenHookで検出された欠陥はすべて誤検出であり、コード品質の高さを示している。
  • 誤検出を手動で除外した後、監査ツールの平均成功率は99.5%に達し、TokenHookの堅牢さと信頼性を示している。
  • 研究では、ツール間で顕著な不一致が明らかになった。一部のツールは、ガス制限やコントラクトウォレットとのやり取りといった非問題を脆弱性としてマークしていた。
  • Vyper実装はネイティブに整数オーバーフローを防止するが、SolidityではSafeMathまたはバージョン0.8.4が必要で、言語レベルのセキュリティ差を示している。
  • 監査結果から、既存のツールは役立つが、熟練したコードレビューを置き換えることはできない。また、TokenHookの設計は誤検出のノイズを顕著に低減していることが示唆された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。