Skip to content

Latest commit

 

History

History
41 lines (31 loc) · 2.56 KB

0x108-G8-Denial-of-Service.md

File metadata and controls

41 lines (31 loc) · 2.56 KB

G8: Denial of service

Control Objective

Ensure that a verified contract satisfies the following high-level requirements:

  • The contract logic prevents influencing the availability of the contract.

Category “G8” lists requirements related to the possible denial of service of the smart contracts.

Security Verification Requirements

# Description
G8.1 Verify that the contract does not iterate over unbound loops.
G8.2 Verify that self-destruct functionality is used only if necessary. If it is included in the contract, it should be clearly described in the documentation.
G8.3 Verify that the business logic does not block its flows when any of the participants are absent forever.
G8.4 Verify that the contract logic does not disincentivize users to use contracts (e.g. the cost of the transaction is higher than the profit).
G8.5 Verify that expressions of functions assert or require have a passing variant.
G8.6 Verify that if fallback function is not callable by anyone, it is not blocking the functionalities of the contract.
G8.7 Verify that there are no costly operations in a loop.
G8.8 Verify that there are no calls to untrusted contracts in a loop.
G8.9 Verify that if there is a possibility of suspending the operation of the contract, it is also possible to resume it.
G8.10 Verify that if allow lists and deny lists are used, it does not interfere with the normal operation of the system.
G8.11 Verify that there is no DoS caused by overflows and underflows.

References

For more information, see also:

Smart contract audit

Request an audit of your project by SCSVS authors. Contact a specialist.