Vulnerability and countermeasures#

Limit users who are allowed to execute smart contracts#

スマートコントラクトの実行を許可する利用者を限定する#

スマートコントラクト関数は、不特定多数の利用者に対して実行させて問題がないかを検討し、制限が必要であれば実行者を限定するコードを実装する。

実装時の考慮点と対策#

制限対象とする関数を特定し、OpenZeppelinのOwnableを適用する。

実装例#
準備中

オーバーフローとアンダーフロー#

特に、数値を扱う処理に考慮が必要である。

実装時の考慮点と対策#

算術演算を行う処理では、必ずSafeMathモジュールを適用する。

実装例#
準備中

付録#

スマートコントラクトの脆弱性については、CWEと同様に、SWCとして弱点が定義されている。 こちらの内容も合わせて確認すること。

  1. 代表的な攻撃
    https://consensys.github.io/smart-contract-best-practices/known_attacks/

  2. SWC (Smart Contract Weakness Classification)
    https://swcregistry.io/