Some of you may have heard of the terms static and dynamic fee system. So, what’s the difference and why did Lisk decide to move to a dynamic fee system?
This article will take a deeper look at what both systems imply, the benefits and disadvantages of both systems, and why Lisk decided to opt for a dynamic fee system. To get started, we need to understand the importance of a fee system and what the differences are.
What is a fee system exactly?
For blockchains, a fee system is a set of rules that defines the number of tokens you have to pay for including a transaction in a block. Different types of transactions have different fees.
However, fee systems are usually divided into two main types. The first one being a static fee system that Lisk uses at this point. The second one is a dynamic fee system that implements the ideology of a free market.
First, let’s explore a static fee system.
Why choose a static fee system?
A fee system is nothing more than a pricing strategy for blockchain resources, typically block space or network bandwidth. It allows a system to define a price for a transaction based on a set of rules and input. For a static fee system, the rules are straightforward with just one possible fee per transaction type. This is also the current implementation Lisk has adopted.
For example, the user has to pay 0.1 LSK tokens for including a transfer transaction into a block. However, this fixed pricing strategy can impose serious threats on the ecosystem of a blockchain. Therefore, let’s learn about the disadvantages of a static fee system.
Disadvantages of a static fee system
To uncover the disadvantages of a static fee system, we have to take a look at traditional pricing strategies for businesses. In simple terms, a static fee system is not able to adapt to changes.
For example, a business might implement a static pricing system for its products. This works well as clients know which prices to expect and it makes sales forecasting easier. However, at some point in time you realize that your cost basis has increased. This can happen because you have to spend more time than estimated on creating a certain product. This means you have to adopt another static price.
In the end, this can become frustrating, especially for a blockchain platform where you can’t change the protocol (or code) on a daily basis.
Cryptocurrencies still come with their well-known characteristic of being volatile. The price of a token can quadruple in a matter of weeks. This means that a simple transfer transaction that costs $0.10 now costs $0.40.
When the price of a token increases, a static fee system can become problematic. This phenomenon exactly happened with Lisk. For example, as of January 7th 2018, the price of Lisk reached its all time high of $39.31. This implicated that a delegate registration cost almost $1000.
These extreme prices have a direct impact on the usability and accessibility of the blockchain. The small fee a blockchain applications charges just became a very big fee of several dollars. This problem can be easily avoided with a dynamic fee system. In the case of Lisk, the fee system only sets a new rule for a minimum fee per transaction for this transaction to be valid. The rest is done by users, delegates, and game theoretic implications of the rules and incentives.
Why did Lisk choose a dynamic fee system?
Lisk has moved to a dynamic fee system for a couple of reasons:
- A fee system must be able to adapt to market and network circumstances creating a free fee market.
- A new fee system must stimulate the Lisk network usage as prices are way more reasonable for voting, registering second passphrase, and also sending transactions over the network.
- With a dynamic fee system, the price of the transactions will be correlated with the usage of the network and not the token price itself.
Lisk has chosen for a dynamic fee system that defines a minimum fee for each transaction type. The minimum fee is still needed to secure the network and avoid spam attacks that can impact the performance of the network. For example, sending many thousands of dust transactions that transfer a meaningless value.
Next, why is such a dynamic fee system important?
The importance of a dynamic fee system
Let’s evaluate a dynamic fee system in three domains. We’ll take the angle of “economy”, “direct effects”, and “game theoretic considerations”. The idea is to learn about the impact of a dynamic fee system on those three domains.
The economical viewpoint is easy to explain. The goal is to create a more balanced network. Whenever multiple users are battling for block space, the fee increases as competition increases.
This means you have to pay a higher fee to have equal chances of being included in a block. Also, a dynamic fee system allows users to gain priority by paying a higher fee than the history of past fees. If we approach delegates from an economical point of view who receive the fees when forging a block, it makes sense they prioritize a higher fee to maximize their profits.
Imagine some user wants to quickly transfer a high-value transaction and have it included in a block immediately. To ensure his position, he can pay a high fee to be included in a block faster.
Lastly, users who are not in a hurry can decide to pay a fee below the fees of the past transactions. This means their transaction will only be included when the network is quiet.
Therefore, we can say a fee estimation algorithm that calculates the current fee based on the history of fees of past transactions fits the needs of different types of users.
So, what effect does a dynamic fee system have on the behavior of participants in the system?
To answer this question, I want to refer to a real-life example where Hoyts, a cinema company, implemented a dynamic pricing system.
Hoyts wanted to encourage people to buy tickets online instead of turning up at the counter to find a last-minute ticket. Therefore, it came up with the idea to give discounts online and implement a dynamic pricing system at the physical counter which increased the price for a ticket whenever the supply of tickets decreased.
Doing so, they noticed the psychological effect it had on cinema consumers.
“Getting stung with a hefty price at the counter educates people quickly to different buying behaviors. People soon learned that going online was a far cheaper way of buying movie tickets at Hoyts. In no time at all, people stopped turning up at the door expecting to buy tickets. They had changed a habit of a lifetime.”
If we draw the line to the crypto space, a dynamic fee system could assist in balancing the network traffic. The busier the network becomes, the higher the fees users have to pay to have their transaction included in a block. This will induce the behavior where users prefer to wait for a more quiet moment to submit their transaction, paying a lower transaction fee. Thus, a dynamic fee system stimulates participants to balance the load on a network.
Game theoretic considerations
From a game theoretic viewpoint, we can approach block producing as an auction house. In specific for Lisk, delegates are actually the auction house to sell block space to include transactions. Therefore, we have to design the protocol so that delegates cannot take advantage of the auction system to maximize profits.
To illustrate how complex it is to get the game theoretic aspects and incentives right, we want to refer to a post about possible advanced game theoretic attacks posted by Vitalik Buterin on the Ethereum.org blog:
“Relying on transaction fees too much opens up the playing field for a very large and difficult-to-analyze category of game-theoretic attacks. The fundamental cause is simple: if you act in a way that prevents another block from getting into the chain, then you can steal that block’s transactions. Hence there is an incentive for a validator to not just help themselves, but also to hurt others. This is even more direct than selfish-mining attacks, as in the case of selfish mining you hurt a specific validator to the benefit of all other validators, whereas here there are often opportunities for the attacker to benefit exclusively.”
In the situation of Lisk, we took the approach of burning fees. You may wonder why? Let’s take a look at the following attack scenario for Bitcoin. A miner can include its own transaction in the block he’s mining and pay a zero fee as he gets the fee back when the block has been mined. If we would allow this attack for Lisk, it would mean a forger can include a very high fee to always make sure his transaction is included in the block. For a delegate registration, this would make even more sense as the cost is high with a minimum fee of 10 LSK tokens. In the end, it would not cost him anything.
For this exact reason, Lisk is burning fees. Important to know, it’s only burning the minimum fee, not the whole fee the forger received. However, even though we are burning fees, we still have an inflationary supply.
Therefore, the Lisk research team has created a small study about the impact of burning the minimum fee on the total supply. The goal of this study is to show that there is a minimal impact on the supply even though we are burning fees. You can read the full study here.
The ideal fee system for Lisk is a dynamic fee system that doesn’t leave much room for unwanted game-theoretic side effects. To avoid this, Lisk implemented the burning concept where the minimum fee of each transaction gets burned. This is a good approach to correctly align the incentives in the network, eliminating game theoretic attacks.
There is no easy answer to the question which is the best fee system; static or dynamic fee? For Lisk it makes more sense to move to a dynamic fee system based on a free fee market. A static fee system is especially problematic because of the fixed pricing property. In general, there is no real winner for this question. It heavily depends on the type of blockchain and the mechanics associated with it.
Lastly, if you want to learn more about the implementation of the dynamic fee system, here are some interesting resources: