There are two main reasons to have transaction fees on Cardano , or any other cryptocurrency:
- Preventing distributed denial of service (DDoS) attacks. In a DDoS attack, an attacker attempts to flood the network with spam transactions. If he were required to pay a sufficiently high fee for each of these fictitious transactions, this form of attack would be prohibitively expensive.
- Provide funds for incentives.
How transaction fees work
Each time someone wants to transfer an amount of Ada, a minimum fee is paid for that transaction. This minimum fee validates the transaction, although the sender is free to pay higher fees if they wish.
A transaction of 200 bytes in size (a fairly typical size) costs ( at the time of writing ):
0,155381 Ada + 0,000043946 Ada/byte × 200 byte = 0,1641702 Ada.
The minimum fees for a transaction are calculated according to the formula:
a + b × size
a: is a special constant, currently 0.155381 Ada;
b: is a special constant, currently 0.000043946 Ada/byte;
size: is the size of the transaction in bytes.
The reason for having the a parameter is to prevent the DDoS attacks mentioned above. Even a very small dummy transaction should cost enough to hurt an attacker trying to generate many thousands of them.
The parameter b has been introduced to reflect the real costs: storing larger transactions requires more computer memory than storing smaller transactions, so larger transactions should be more expensive than smaller ones.
Although particular values were calculated for parameters a and b, it is likely that these values will be adjusted in the future to better reflect actual costs.