<p>While the above answers are both correct, they focus on the practical of how an SPO protects themselves from a DoS and the large number of nodes that would need to be attacked to be successful. The real key is the leadership schedule isn't public. An attacker cannot know when a pool will make a block until that block producer has forged and sent the block on to a relay the attacker is monitoring. At this point, it's too late to DoS the node. There's a bunch of really cool cryptography that if you want to dig into, IOG (formerly IOHK) has written many papers on, but the key point is you need to control the VRF secret key to know a block producers leadership schedule. As long as the operator doesn't share that schedule, they can't be targeted when it's their time to make a block.</p>

CC BY-SA 4.0
2022-01-17T00:16:32.473Z
Commentary on other answers is a bad idea.  They may be edited in future and their position is dependent on the number of votes they get.  Better to focus on answering the question to the best of your ability.  This comment will need to be deleted if the answer is edited appropriately.
gRebel
CC BY-SA 4.0
2022-01-11T04:54:53.920Z
2022-01-11T04:54:53.920Z
Samuel Leathers
<p>It will take a lot more than 1 system (DoS) to take down Cardano!</p>
<p>But we're also protected well from <em>DDoS</em> attacks, here are a few reasons why:</p>
<ol>
<li>In terms of the network, the <code>a parameter</code> &quot;collateral&quot; in the <a href="https://docs.cardano.org/explore-cardano/fee-structure" rel="nofollow noreferrer">transaction fee structure</a> helps prevent someone from flooding the network with useless transactions that can cause congestion etc. They must send along some fixed ADA so that makes a DDoS attack this way very expensive.</li>
<li>Stake pools don't expose their BP (block producer) node to the open Internet. They interface through Relay nodes so identifying and attacking the BP is difficult.</li>
<li>Stake pools often have &gt;1 Relays and to successfully stop block production you would need to attack all Relays registered to that pool. Not to mention private Relays that are not registered for peer discovery.</li>
<li>Stake pool operators can take additional DDoS protection measures. Some include: stricter firewall configurations, private subnets, VPN, ets</li>
<li>The attacker can't know who will be the next pool to produce a block. This is due to the VRF (Verifiable Random Function). It's a really interesting concept, definitely consider <a href="https://crypto.bi/vrf/" rel="nofollow noreferrer">a read</a>.</li>
</ol>

CC BY-SA 4.0
2022-01-09T08:00:54.297Z
To add to this (and answer OPs question in latest edit):
Basically, the SPO (or owner of the VRF private key) is the only person who can determine the random slot number generated by the VRF and therefore only they know when a block is expected.
BETTR Stake Pool
CC BY-SA 4.0
2022-01-09T07:29:06.367Z
2022-01-09T07:29:06.367Z
BETTR Stake Pool
<p>This is just a strategy I've been using, feel free to poke holes in it.</p>
<ol>
<li>Keep your block producer on a private subnet (it does not need to be on the public IP space).</li>
<li>Give it a relay that is not advertised.</li>
</ol>
<p>In the event that an attacker decides to slow your pool down, the BP still has the unadvertised relay to propagate in a timely manner.</p>

CC BY-SA 4.0
2022-01-09T04:57:51.787Z
2022-01-09T04:57:51.787Z
Louis Waweru
<p>There are around 3000 pools in Cardano network(they call them delegates in that link what you shared). I would expect at least 2 relays per pool, some pools have even more and I doubt that any pool run with just one relay. To take down whole network you will need to DoS(by the way currently nobody use DoS, but mostly DDoS, because DoS is attack from one location and it is ineffective, because you can just block that IP/location with FW and etc) 6000 servers in different locations and different hosting like AWS, OVH and etc. This will be defiantly not an easy task and not cheap, I can assure you. Additionally most hosting like AWS, OVH and etc has quite sophisticated anti-DDOS mechanism:</p>
<p><a href="https://www.ovh.com/world/anti-ddos/" rel="nofollow noreferrer">https://www.ovh.com/world/anti-ddos/</a></p>
<p><a href="https://aws.amazon.com/shield/?whats-new-cards.sort-by=item.additionalFields.postDateTime&amp;whats-new-cards.sort-order=desc" rel="nofollow noreferrer">https://aws.amazon.com/shield/?whats-new-cards.sort-by=item.additionalFields.postDateTime&amp;whats-new-cards.sort-order=desc</a></p>
<p>And if your pool is using other hosting it probably has some similar mechanism to prevent this.</p>
<p>Additionally if your pool will become target of such attacks, you can try to use hidden relays, just allow well known peers to connect to your relays and etc.</p>
<p>To summarize I would like to add that any service connected to internet can be target for DDoS and in theory can be taken down, even bitcoin network, but I personally think this is definitely not an issue for Cardano and in most cases if you follow best practices for system administrating, you should mitigate most of the risks.</p>
<p>Additionally I strongly disagree that you can easily and cheap DoS 1000 people[probably he meant servers/devices, people do not have yet IP connection, I'm still waiting for neuralink :)]</p>

CC BY-SA 4.0
2022-09-15T19:20:06.070Z
There are plenty of pools with 1 relay node.
Matthias Sieber
CC BY-SA 4.0
2022-09-16T07:43:58.063Z
Hi, not sure how that affects my answer... There are more then 6k known relays(and much more hidden) - https://adapools.org/relays. So to take down 6000 single relays or 3000 with double relays, seems for me quite a similar task... In any case, thank you for your comment.
os11k
CC BY-SA 4.0
2022-01-08T22:31:42.190Z
2022-01-09T11:53:50.107Z
2022-01-09T11:53:50.107Z
os11k
<p>I was reading about <a href="https://www.algorand.com/resources/blog/algorands-core-technology-in-a-nutshell" rel="nofollow noreferrer">Algorand’s core technology</a>, and in their section on delegated proof of stake, they argue that DoS attacks are a key weakness of this, and hence Cardano‘s, model.</p>
<p>I was wondering what is Cardano‘s approach to address that challenge.</p>
<p>A related question, also comparison to Algorand; Algorand trumpets that the slot leader (in Cardano terms) picks itself via a VRF. Who picks the slot leader in Ouroboros?</p>

CC BY-SA 4.0
2022-01-17T00:27:27.513Z
I think you should consider whether this post should be edited to be more specific (detail the attack referred to) or more general (remove references to Algorand) and the title updated accordingly.  The [help] guidelines for quoting external sources should also be followed.
gRebel
<stake-pool>
How does Cardano protect against DoS attacks against stake pools?
# How does Cardano protect against DoS attacks against stake pools?

(Asked by: username_0 on 2022-01-08)

I was reading about [Algorand’s core technology](https://www.algorand.com/resources/blog/algorands-core-technology-in-a-nutshell), and in their section on delegated proof of stake, they argue that DoS attacks are a key weakness of this, and hence Cardano‘s, model.

I was wondering what is Cardano‘s approach to address that challenge.

A related question, also comparison to Algorand; Algorand trumpets that the slot leader (in Cardano terms) picks itself via a VRF. Who picks the slot leader in Ouroboros?

**Tags:** stake-pool
> **Comments:**
> **username_1**: I think you should consider whether this post should be edited to be more specific (detail the attack referred to) or more general (remove references to Algorand) and the title updated accordingly.  The [help] guidelines for quoting external sources should also be followed.  

---

## 4 answers

### Answer by username_5 on 2022-01-08. Score: 4

There are around 3000 pools in Cardano network(they call them delegates in that link what you shared). I would expect at least 2 relays per pool, some pools have even more and I doubt that any pool run with just one relay. To take down whole network you will need to DoS(by the way currently nobody use DoS, but mostly DDoS, because DoS is attack from one location and it is ineffective, because you can just block that IP/location with FW and etc) 6000 servers in different locations and different hosting like AWS, OVH and etc. This will be defiantly not an easy task and not cheap, I can assure you. Additionally most hosting like AWS, OVH and etc has quite sophisticated anti-DDOS mechanism:

<https://www.ovh.com/world/anti-ddos/>

<https://aws.amazon.com/shield/?whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc>

And if your pool is using other hosting it probably has some similar mechanism to prevent this.

Additionally if your pool will become target of such attacks, you can try to use hidden relays, just allow well known peers to connect to your relays and etc.

To summarize I would like to add that any service connected to internet can be target for DDoS and in theory can be taken down, even bitcoin network, but I personally think this is definitely not an issue for Cardano and in most cases if you follow best practices for system administrating, you should mitigate most of the risks.

Additionally I strongly disagree that you can easily and cheap DoS 1000 people[probably he meant servers/devices, people do not have yet IP connection, I'm still waiting for neuralink :)]

> **Comments:**
> **username_6**: There are plenty of pools with 1 relay node.  
> **username_5**: Hi, not sure how that affects my answer... There are more then 6k known relays(and much more hidden) - https://adapools.org/relays. So to take down 6000 single relays or 3000 with double relays, seems for me quite a similar task... In any case, thank you for your comment.  

---

### Answer by username_2 on 2022-01-11. Score: 3

While the above answers are both correct, they focus on the practical of how an SPO protects themselves from a DoS and the large number of nodes that would need to be attacked to be successful. The real key is the leadership schedule isn't public. An attacker cannot know when a pool will make a block until that block producer has forged and sent the block on to a relay the attacker is monitoring. At this point, it's too late to DoS the node. There's a bunch of really cool cryptography that if you want to dig into, IOG (formerly IOHK) has written many papers on, but the key point is you need to control the VRF secret key to know a block producers leadership schedule. As long as the operator doesn't share that schedule, they can't be targeted when it's their time to make a block.

> **Comments:**
> **username_1**: Commentary on other answers is a bad idea.  They may be edited in future and their position is dependent on the number of votes they get.  Better to focus on answering the question to the best of your ability.  This comment will need to be deleted if the answer is edited appropriately.  

---

### Answer by username_3 on 2022-01-09. Score: 3

It will take a lot more than 1 system (DoS) to take down Cardano!

But we're also protected well from *DDoS* attacks, here are a few reasons why:

1. In terms of the network, the `a parameter` "collateral" in the [transaction fee structure](https://docs.cardano.org/explore-cardano/fee-structure) helps prevent someone from flooding the network with useless transactions that can cause congestion etc. They must send along some fixed ADA so that makes a DDoS attack this way very expensive.
2. Stake pools don't expose their BP (block producer) node to the open Internet. They interface through Relay nodes so identifying and attacking the BP is difficult.
3. Stake pools often have >1 Relays and to successfully stop block production you would need to attack all Relays registered to that pool. Not to mention private Relays that are not registered for peer discovery.
4. Stake pool operators can take additional DDoS protection measures. Some include: stricter firewall configurations, private subnets, VPN, ets
5. The attacker can't know who will be the next pool to produce a block. This is due to the VRF (Verifiable Random Function). It's a really interesting concept, definitely consider [a read](https://crypto.bi/vrf/).

> **Comments:**
> **username_3**: To add to this (and answer OPs question in latest edit): Basically, the SPO (or owner of the VRF private key) is the only person who can determine the random slot number generated by the VRF and therefore only they know when a block is expected.  

---

### Answer by username_4 on 2022-01-09. Score: 1

This is just a strategy I've been using, feel free to poke holes in it.

1. Keep your block producer on a private subnet (it does not need to be on the public IP space).
2. Give it a relay that is not advertised.

In the event that an attacker decides to slow your pool down, the BP still has the unadvertised relay to propagate in a timely manner.


---

