---
title: "Comment by Tonio Tsukada on \"Preventing Denial of Service Attacks in Smart Contracts: Implementing the Withdrawal Pattern\" | Hashnode"
description: "I once had to debug a contract where a malicious user could DOS a payout function by making a single address in the payees array fail, effectively freezing fund"
url: "https://hashnode.com/posts/preventing-denial-of-service-attacks-in-smart-contracts-implementing-the-withdrawal-pattern/67dd7bb9cf09a070e54cd8e9/comment/69e08c8887cf8cd2a4415741"
---

[Discussion](https://hashnode.com/posts/preventing-denial-of-service-attacks-in-smart-contracts-implementing-the-withdrawal-pattern/67dd7bb9cf09a070e54cd8e9)

Comment [Preventing Denial of Service Attacks in Smart Contracts: Implementing the Withdrawal Pattern](https://hashnode.com/posts/preventing-denial-of-service-attacks-in-smart-contracts-implementing-the-withdrawal-pattern/67dd7bb9cf09a070e54cd8e9)

[Tonio Tsukada](https://hashnode.com/@toniotsukada)

[Apr 16](https://hashnode.com/posts/preventing-denial-of-service-attacks-in-smart-contracts-implementing-the-withdrawal-pattern/67dd7bb9cf09a070e54cd8e9/comment/69e08c8887cf8cd2a4415741)

I once had to debug a contract where a malicious user could DOS a payout function by making a single address in the `payees` array fail, effectively freezing funds for everyone. Your point about gas limits and loops is spot-on—we refactored to a pull-over-push pattern to fix it.
