I don't understand. What is the point of transaction fees if new ETH is generated as a mining reward?
The blockchain fee is a cryptocurrency transaction fee that is charged to users when performing crypto transactions. The fee is collected in order to process the transaction on the network.
You need to pay the blockchain fee to ensure your cryptocurrency transfers arrive in a timely manner. The blockchain fee is one of the main tools used to speed up crypto transactions, which are often slow due to high congestion on the blockchain network. The lower the blockchain fee, the lower your transaction's priority in the blockchain network.
Miners have a financial incentive to prioritize the validation of transactions that include a higher fee. For someone looking to send funds and get a quick confirmation, the appropriate fee to include depends on the cryptocurrency being sent and can vary greatly, depending on a number of factors, such as transaction size and network conditions.
In bitcoin’s early history, usage was virtually zero, so users could create fee-less transactions with issue. Once usage increased to a point where transactions competed with each other, paying fees became a necessity for a transaction to be promptly confirmed.
One purpose of transaction fees is as an anti-spam/DoS measure. By prioritizing a transaction based on its fee, we ensure anyone attempting to congest the network by broadcasting many valid transactions must pay more in fees than legitimate users. For the fees to work properly as anti-spam protection, they need to be high enough to discourage an attack,. Reasons an attacker would execute a DoS attack vary, but the cost for doing so should be higher than the possible benefits for the attacker. There are two DoS attacks that that fees protect against:
DoSing the network/a single node with large amounts of transactions, having the nodes process the transactions and being “jammed” on the processing.
DoSing the blockchain, filling up blocks and pushing other people out of the limited blockchain space.
In both cases, the transaction consumes a small amount of a finite quantity: (i) the nodes RAM as the transaction stays in the mempool, and (ii) the blocks capacity available for transactions. Fees mean a person cannot keep doing this indefinitely.
Blocks have limited space
As a result of being close to this limit, a “fee market” is developing. There are more transactions than can fit into the blocks, so users need to decide how much they’re willing to pay to get their transaction into a block. If there are too many users willing to pay more, your transaction will never be included in a block.
This applies to both use cases that aren’t worth paying (high) fees for and attackers, because an attacker needs to pay more in fees than normal users, in order to “push” them out of the limited blockspace. In return, users have a choice to out-pay the attacker if they deem their transaction being confirmed worth more than what the attacker is willing to pay to attack the network.
Learn more about Ethereum transaction fees.
Learn more about BitCoin transaction fees.
A few reasons:
- Transaction fees attach a price to the cost of using compute resources and storage and that discourages abuse.
- The fee is computed from a unit called gas which is coupled to compute intensity at a fine level, i.e. more demanding = higher price. The network enforces a maximum total gas per block and that helps ensure the demand is throttled and the nodes can keep up. The limit is voted on by miners so it's elastic and adaptable and adjusts to the amount of computing power available.
- Gas is priced in Ether. So there are two metrics. How much gas is burned by a given transaction depends on what that transaction does. What it costs, in Eth, depends on the gasPrice the sender offered to pay. This is a pay-for-priority scheme that helps important transactions get through in case of network congestion. It also helps maintain a lost-cost option for transactions that aren't urgent.
As with other proof-of-work systems, it is conceivable that the block reward will become less than the transaction fees over time. Mining reward (minting of new coins) is initially high to encourage the formation of a strong mining network.
Hope it helps.