status

What is the relationship between staking on Cardano and minting blocks?

Published 15.3.2023

In recent debates, it has become apparent that people don't fully understand how staking and block production are related. Some people mistakenly believe that if a pool started using Contingent Staking (CS) functionality and required KYC from stakers, it would simultaneously start censoring transactions. In this context, the two functionalities are completely separate. SPOs can already filter transactions today and do not need CS. Conversely, a pool that would require KYC from stakers can insert a transaction into the block regardless of the fact that the blockchain address is blacklisted. Let's describe it in more detail.

TLDR

  • SPOs can censor transactions by modifying the source code of the Cardano node.
  • Even if 80% of the pools censor transactions according to the same blacklist, the blacklisted transactions still get into the blockchain through the other 20% of the pools.
  • If regulators want to force SPOs to censor transactions, they can do it today.
  • If SPOs want to successfully operate a pool, their conduct must be consistent with the wishes of ADA holders. The degree of censorship of transactions on Cardano is primarily determined by ADA holders.
  • Censorship is prevented by decentralization, permissionless ness, and openness of Cardano.
  • A staker can delegate ADA to a pool and still the pool can censor transactions of the delegator.
  • If the ADA holders refuse KYC and transaction censorship then no central authority has a chance to curb their will.

SPOs can censor transactions today

SPOs can censor transactions today and do not need CS functionality. Any SPO, just like anyone else in the world, can customize the Cardano node source code. There is a section in the source code dedicated to validating incoming transactions, storing them in the mem-pool, selecting transactions for a new block, etc. SPOs can modify the source code in any way they want and if they mint a block that is valid, the block makes it into the blockchain.

SPOs can modify the Cardano node source code in such a way that it will discard some transactions. There is currently no mechanism to penalize pools for not inserting transactions into a block in the expected way, i.e. as dictated by the original source code. This is partly due to the fact that transactions are inserted into the mem-pool in a different order depending on their distribution through the network. So it cannot be proven that the node had a transaction it could have inserted into the block, but deliberately did not.

If the SPO agrees to censor transactions according to a blacklist, he would just need to modify the code in such a way that, for example, the algorithm would compare individual blockchain addresses in a transaction with all addresses in the blacklist. If any address from the transaction were also present in the blacklist, the pool would discard the entire transaction.

So SPO just modifies the source code, creates its own version of the Cardano client, and installs it on its node. An SPO may choose to censor transactions voluntarily, may be motivated by its own selfish economic interests, or may be forced to do so by external circumstances.

Transaction censorship and staking

How does staking affect transaction censorship? For now, we will discuss the current state where CS is not implemented.

The number of blocks the pool can mint in each epoch is determined by the size of the stake. The Total Stake can consist of the SPO's own ADA coins and at the same time coins delegated by stakers.

If coins of stakers are delegated to the pool, they directly influence the number of blocks the pool will mint. If the stakers learn about transaction censorship and disagree with it, they can delegate elsewhere.

It is important to note that if transactions are censored by a single pool, then all transactions will get into the blockchain. This is because all Cardano nodes with unmodified source code would accept all valid transactions. Even if say 80% of the pools censor transactions according to the same blacklist, the blacklisted transactions still get into the blockchain through the other 20% of the pools. The degree of censorship of transactions on the Cardano network is primarily determined by ADA holders. SPOs have less power to decide this because they (together) own fewer ADA coins. Moreover, if at least a small fraction of SPOs disagree with censorship, censorship is unenforceable.

Let's add that all public open-source blockchain networks have the same characteristics in terms of the ability to censor transactions. Censorship is prevented by properties such as decentralization (coin distribution allowing the will of the majority to be enforced), permissionless ness, and openness (the ability to work for the protocol without the permission of a third party).

How does Contingent Staking affect transaction censorship?

If regulators want to force SPOs to censor transactions, they can do it today. CS functionality is not needed for this at all. The regulators just need to share the blacklist with the SPOs.

If an SPO requires KYC information from stakers (using the CS feature), it has almost nothing to do with censoring transactions. Stakers and network users are two independent groups. Of course, a staker can be a user at the same time. However, it is not true that all users must be stakers at the same time.

Moreover, only a small fraction of all stakers delegate to a given pool. This means that if a pool only wants to insert transactions of users that simultaneously stake with it, it might not have any available in a given slot.

Transaction censorship is all about the available information about users. In theory, it is possible for blockchain addresses to be part of the agreement between stakers and SPOs. These addresses would belong on an imaginary white list. Regulators could require all SPOs to censor all transactions except those belonging to stakers and only those stakers who have provided KYC. In other words, SPOs would accept transactions containing whitelisted addresses. Would that work? No. Why? Decentralization prevents this.

This scenario could hypothetically only work if not only all SPOs but also all ADA holders agreed to it. If the ADA holders didn't agree, they would start operating their own pools which would ignore the censorship. SPOs cannot influence the free will of ADA holders. If SPOs want to do business, their behavior must be in line with the wishes of the ADA holders.

ADA holders can refuse to support pools that require KYC and delegate to those pools that do not use the CS feature. In the same way, ADA holders can deal with transaction censorship.

Note that regulators may require acceptance of a blacklist or whitelist even without a CS feature. The CS feature only affects stakers, not Cardano users. If a staker delegates to a non-KYC pool, the regulators may not have any information about the staker (as long as they don't get it elsewhere, such as from a centralized exchange).

Delegating ADA coins to the pool and validating transactions (and minting blocks) are two separate processes. There is a link between these processes, but only an indirect one. A staker delegating to pool X has no effect on the operation of pool Y. If pool X requires KYC and the staker refuses to provide it, nothing happens. Staker will delegate to pool Y. Both pools X and Y can process the transaction of staker. If pool X censors the staker transaction, pool Y will include it.

This scenario is even possible. Pool X will require KYC and the staker will provide this information. SPO accepts ADA coins from the staker. Then for some reason, the blockchain address of the staker gets blacklisted. ADA coins of staker will still be delegated to pool X, yet pool X will censor transactions of staker.

Will it be possible to refuse a delegation after the delegation transaction is signed by the staker and the SPO? We don't know at the moment.

Conclusion

People are often afraid of change because they do not have enough information on the subject. KYC is like a red rag on a bull for the fans of decentralization. I believe the CS feature will have minimal impact on transaction validation and will not help regulators enforce their will. It is important to be aware of who the regulators are really fighting. It's not the SPOs as it may seem at first glance, but it's all the ADA holders. If the ADA holders refuse KYC and transaction censorship then no central authority has a chance to curb their will.

ADA delegation to the pool and transaction validation is essentially two separate and independent processes. Staking takes place between only one staker and one SPO. A randomly selected pool validates all available transactions at a given time. If one pool discards (censors) some transactions, the other pool inserts them into the block. Thus, regulators are very likely to target each process separately, i.e. the delegation process and the transaction validation process.

Refusal of delegation by the SPO, i.e. refusal of cooperation between one staker and the SPO, has no effect on the validation of transactions of other users.

Featured:

Related articles

Did you enjoy this article? Other great articles by the same author