4

E.g. this block has 0 transactions

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?

3 Answers 3

1

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.

4
  • 1
    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
    Jun 7, 2022 at 8:14
  • 1
    @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
    Jun 7, 2022 at 9:18
  • Thank you for your answer. Can you give me a source that cardano's PoS is interval based?
    – Aqqqq
    Jun 7, 2022 at 15:47
  • 2
    The Cardano protocol is set to try and produce blocks every 20 seconds on average developers.cardano.org/docs/stake-pool-course/…
    – PromZA
    Jun 7, 2022 at 16:44
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.

2
  • But why is the block created despite there is no transaction?
    – Aqqqq
    Jun 6, 2022 at 11:05
  • 1
    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 vincenthz.github.io/ouroboros-vrf-explanation)
    – Fermat
    Jun 10, 2022 at 16:05
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.

1
  • 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
    Jul 1, 2022 at 20:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.