<p>I was just asked to review an answer to this question and thought a different viewpoint might be beneficial to new devs.</p>
<p>I'm sure that you will have heard of the block size wars at some point. This was an event in which the bitcoin community was divided into two camps to keep the same block size or increase it. The key point here is that in the bitcoin protocol blocks have a consent frequency at which they are made. If you multiply this frequency by the number of transactions in a block you get how many transactions a blockchain can process. The problem is that if each transaction takes up some space in a block and blocks have limited space in them meaning there's a cap on transactions. Increasing block size would up that limit.</p>
<p>Now Ethereum has a different approach in which the frequency of blocks is set but the size of blocks is variable (higher usage means bigger blocks). In Cardano we have a different approach in which we have slots and can put the blocks into the slots. Now it's possible to have empty slots i.e. slots with no blocks.</p>
<p>If you understand all that then its should be clear that always having empty blocks appended to the network would prevent transactions from happening and make the chain come to a halt. So it can be considered as an attack on the network.</p>
<p>There is another thing that would tell you why some actors are incentives to make blocks with no transactions in them. That is that in some networks miners are asked to make temporary blocks from the mempool which would be added to the chain if the node making the block wins the right to do so. All temp blocks by the nodes that did not win are discarded.</p>
<p>Now you should be able to conclude that these nodes would be incentivised to put less computational resources into processing the transactions in the mempool and more into winning the round.</p>
<p>That leads to the conclusion that when a block with no transactions is added it normly means one of 3 things:</p>
<ol>
<li><p>No transactions in the mempool i.e. no accounts trading value;</p>
</li>
<li><p>An Attack on the Network Is occurring;</p>
</li>
<li><p>Someone gamed the system.</p>
</li>
</ol>
<p>Note: this is in addition to the answer by @Prom not in spite of it. When you combine both answers you get the full picture.</p>

CC BY-SA 4.0
2022-07-01T20:42:17.460Z
Just to be sure: what is the relationship between makingg the temp blocks and winning the round? Is it the case that the more temp blocks are made, the more likely you would win the round?
Aqqqq
CC BY-SA 4.0
2022-06-10T15:50:22.580Z
2022-06-10T15:50:22.580Z
KryptoKing
<p>In order to understand this you have to understand how mining works and this is generally applicable to all blockchains. With mining there are two main types, PoW (proof of work) and PoS (proof of stake).</p>
<p>Regardless of the method employed miners compete to solve blocks. In the case of PoS miners stake funds and one is selected to solve or &quot;mine&quot; a block based on their stake. With PoW miners compete based on finding the lowest hash value below a certain threshold.</p>
<p>In both cases however miners get rewarded for solving a block. They usually get a portion or all of the transaction fees for the transactions included in that block so will include as many as they can or the highest paying ones but there is also usually a reward for solving the block so miners will try to solve it even if there are no transactions.</p>
<p>With solo mining a miner will get all of the block reward and eligible transaction fees for solving it. In the case of pooled mining miners get rewarded a portion of rewards based on their submitted shares out of all shares after a block is solved. But in both cases there's competition for solving blocks so miners will include empty blocks if no transactions are present.</p>

CC BY-SA 4.0
2022-06-07T08:14:48.810Z
But why would the cardano system want to choose a staking pool to validate a block when there is no transactions to validate to begin with? Wouldn't it be wasting rewards (from the point of view of the cardano system)?
Aqqqq
CC BY-SA 4.0
2022-06-07T09:18:25.387Z
@Aqqqq That's not really how it works. With any decentralised system there's a consensus mechanism. With PoW this relies on miners submitting blocks as they are mined and if 50% of validators accept a block as valid it gets added to the chain. With PoS this is still the same except it's interval based. So it's not so much choosing but based on rules and there's no rule that a block can't be empty. There may also be reasons that allowing empty blocks encourages contributors making the system more secure. Unless you move to a fee based system only where there's no incentive to mine empty blocks.
PromZA
CC BY-SA 4.0
2022-06-07T15:47:46.580Z
Thank you for your answer. Can you give me a source that cardano's PoS is interval based?
Aqqqq
CC BY-SA 4.0
2022-06-07T16:44:37.167Z
The Cardano protocol is set to try and produce blocks every 20 seconds on average 
 https://developers.cardano.org/docs/stake-pool-course/introduction-to-cardano/
PromZA
CC BY-SA 4.0
2022-06-06T19:32:07.830Z
2022-06-06T19:32:07.830Z
PromZA
<p>This just means that no transactions happened between the previous block (5387367 at 02/25/2021 5:54:30 PM) and the actual block (5387367 at 02/25/2021 5:54:31 PM).</p>
<p>This behaviour does not affect rewards either: transaction fees are combined together at the end of the epoch and added to the amount of reserves that are being split among the stake pools. This way, it doesn't matter how many transactions a block has in it from a consensus protocol perspective.</p>

CC BY-SA 4.0
2022-06-06T11:05:19.670Z
But why is the block created despite there is no transaction?
Aqqqq
CC BY-SA 4.0
2022-06-10T16:05:42.120Z
I think this has to do with the fact that the cardano PoS consensus protocol is timed based. Each slot has a fixed schedule and slot leaders can propose their blocks at these slots. Now why slots? Since their is no race in PoS their needs to be a schedule at which block need to be published. The who gets the right of these slots is done via VRF (see https://vincenthz.github.io/ouroboros-vrf-explanation/)
Fermat
CC BY-SA 4.0
2022-06-05T21:54:43.000Z
2022-06-05T21:54:43.000Z
Falcon Stakepool
<p>E.g. <a href="https://cardanoscan.io/transactions?blockHeight=5387368" rel="nofollow noreferrer">this block has 0 transactions</a></p>
<p>Is there any technical/ strategic reason for appending such a block to the blockchain?</p>
<p>To make my question more explicit: Why is the block created despite there is no transaction?</p>

<transaction><blockchain>
What does it mean when a block with 0 transactions is appended to the blockchain?
# What does it mean when a block with 0 transactions is appended to the blockchain?

(Asked by: username_0 on 2022-06-05)

E.g. [this block has 0 transactions](https://cardanoscan.io/transactions?blockHeight=5387368)

Is there any technical/ strategic reason for appending such a block to the blockchain?

To make my question more explicit: Why is the block created despite there is no transaction?

**Tags:** transaction, blockchain

---

## 3 answers

### Answer by username_2 on 2022-06-06. Score: 1 | Accepted answer

In order to understand this you have to understand how mining works and this is generally applicable to all blockchains. With mining there are two main types, PoW (proof of work) and PoS (proof of stake).

Regardless of the method employed miners compete to solve blocks. In the case of PoS miners stake funds and one is selected to solve or "mine" a block based on their stake. With PoW miners compete based on finding the lowest hash value below a certain threshold.

In both cases however miners get rewarded for solving a block. They usually get a portion or all of the transaction fees for the transactions included in that block so will include as many as they can or the highest paying ones but there is also usually a reward for solving the block so miners will try to solve it even if there are no transactions.

With solo mining a miner will get all of the block reward and eligible transaction fees for solving it. In the case of pooled mining miners get rewarded a portion of rewards based on their submitted shares out of all shares after a block is solved. But in both cases there's competition for solving blocks so miners will include empty blocks if no transactions are present.

> **Comments:**
> **username_0**: But why would the cardano system want to choose a staking pool to validate a block when there is no transactions to validate to begin with? Wouldn't it be wasting rewards (from the point of view of the cardano system)?  
> **username_2**: @Aqqqq That's not really how it works. With any decentralised system there's a consensus mechanism. With PoW this relies on miners submitting blocks as they are mined and if 50% of validators accept a block as valid it gets added to the chain. With PoS this is still the same except it's interval based. So it's not so much choosing but based on rules and there's no rule that a block can't be empty. There may also be reasons that allowing empty blocks encourages contributors making the system more secure. Unless you move to a fee based system only where there's no incentive to mine empty blocks.  
> **username_0**: Thank you for your answer. Can you give me a source that cardano's PoS is interval based?  
> **username_2**: The Cardano protocol is set to try and produce blocks every 20 seconds on average   https://developers.cardano.org/docs/stake-pool-course/introduction-to-cardano/  

---

### Answer by username_3 on 2022-06-05. Score: 5

This just means that no transactions happened between the previous block (5387367 at 02/25/2021 5:54:30 PM) and the actual block (5387367 at 02/25/2021 5:54:31 PM).

This behaviour does not affect rewards either: transaction fees are combined together at the end of the epoch and added to the amount of reserves that are being split among the stake pools. This way, it doesn't matter how many transactions a block has in it from a consensus protocol perspective.

> **Comments:**
> **username_0**: But why is the block created despite there is no transaction?  
> **username_4**: I think this has to do with the fact that the cardano PoS consensus protocol is timed based. Each slot has a fixed schedule and slot leaders can propose their blocks at these slots. Now why slots? Since their is no race in PoS their needs to be a schedule at which block need to be published. The who gets the right of these slots is done via VRF (see https://vincenthz.github.io/ouroboros-vrf-explanation/)  

---

### Answer by username_1 on 2022-06-10. Score: 1

I was just asked to review an answer to this question and thought a different viewpoint might be beneficial to new devs.

I'm sure that you will have heard of the block size wars at some point. This was an event in which the bitcoin community was divided into two camps to keep the same block size or increase it. The key point here is that in the bitcoin protocol blocks have a consent frequency at which they are made. If you multiply this frequency by the number of transactions in a block you get how many transactions a blockchain can process. The problem is that if each transaction takes up some space in a block and blocks have limited space in them meaning there's a cap on transactions. Increasing block size would up that limit.

Now Ethereum has a different approach in which the frequency of blocks is set but the size of blocks is variable (higher usage means bigger blocks). In Cardano we have a different approach in which we have slots and can put the blocks into the slots. Now it's possible to have empty slots i.e. slots with no blocks.

If you understand all that then its should be clear that always having empty blocks appended to the network would prevent transactions from happening and make the chain come to a halt. So it can be considered as an attack on the network.

There is another thing that would tell you why some actors are incentives to make blocks with no transactions in them. That is that in some networks miners are asked to make temporary blocks from the mempool which would be added to the chain if the node making the block wins the right to do so. All temp blocks by the nodes that did not win are discarded.

Now you should be able to conclude that these nodes would be incentivised to put less computational resources into processing the transactions in the mempool and more into winning the round.

That leads to the conclusion that when a block with no transactions is added it normly means one of 3 things:

1. No transactions in the mempool i.e. no accounts trading value;
2. An Attack on the Network Is occurring;
3. Someone gamed the system.

Note: this is in addition to the answer by @Prom not in spite of it. When you combine both answers you get the full picture.

> **Comments:**
> **username_0**: Just to be sure: what is the relationship between makingg the temp blocks and winning the round? Is it the case that the more temp blocks are made, the more likely you would win the round?  

---

