Blog

The Myth and Reality of DoS Attacks via Unbounded Loops in Smart Contracts

A frequently discussed vulnerability is the potential for denial-of-service (DoS) attacks caused by unbounded loops. These attacks can theoretically occur when a contract function runs out of gas due to iterating over excessively large datasets, thus preventing the execution of the function. At first glance, this seems like a critical issue that could plague any smart contract. But how much of a threat is it really in the day-to-day operations on Ethereum and similar blockchains?


Understanding Gas Limits

Ethereum and other blockchains like BSC operate under a gas limit system. This system is designed to limit the amount of gas a block can consume, thereby preventing spam and ensuring network stability. As example, Ethereum's block gas limit sits around 30 million, while BSC has an even higher limit of 140 million. If these numbers are incorrect, please correct me.


The Practical Perspective

Given these gas limits, one might wonder how often contracts actually hit these limits due to unbounded loops. In practice, the instances are less common than one might expect.

The reason is twofold:
Smart Contract Design: Developers are generally aware of the potential pitfalls of unbounded loops and design their contracts to avoid them. This includes using patterns that limit the number of iterations in a loop or opting for alternative architectural choices that minimize on-chain computation.

Gas Limit Awareness:
The high block gas limits provide a substantial buffer for transaction execution. While it's theoretically possible to craft a transaction that hits these limits, practical constraints (including transaction costs and the inherent limitations of what needs to be computed on-chain) often keep operations well within safe bounds. Usually operations won't run out of gas, even after the contract being in an un-updated state for years.

Despite the theoretical nature of DoS attacks via unbounded loops, it remains essential for auditors to report potential vulnerabilities. The landscape of blockchain technology is ever-evolving, and what may seem impractical today could become a significant threat tomorrow. Vigilance and proactive security practices are key to maintaining the integrity and trustworthiness of smart contracts.

The threat of DoS attacks through unbounded loops, while theoretically plausible, is mitigated in practice by the relatively high gas limits of blockchains. However, this does not diminish the importance of diligent security practices.