- Bounded block backlog
- Anti-Bloat Proposal: Age-Based Dust Removal
- Minimum account balance to prevent ledger size spam
Nodes can configure a minimum transaction amount they will accept.
Transactions below this minimum will be discaded by the node.
An exception to this would be
change transactions with amount exactly equal to zero.
Nano was designed to be very divisible, which is great because:
- You can send small test transactions
- Faucets are relatively cheap because the min amount they can send is very small
- It is future-proof, even if a candy costs 100 RAW in a few years
But currently, many node operators would agree that using their resources for processing thousand of transactions with amount 1000 RAW do not make much sense.
Just to get an idea, most wallets and faucets send values greater than 10^24 RAW.
It is difficult to reach a consensus on what the minimum value should be.
Some nodes can choose to ignore all transactions with less than 10^22 RAW. Some will ignore transactions with amount below 10^10 RAW. Some nodes can even choose to not ignore any amount at all.
In the end, dust value transactions will have less chance for being confirmed, because some nodes won't rebroadcast it, and will have less impact in the network in general.
Legit transactions should be confirmed at normal speed or even faster because the network can perform better.
Even with V22, a spam attack can still slow down confirmation times, because of high resource usage, as some tests in beta showed us.
And since spam transactions are only delayed, and not dropped (yet), these tranasctions will soon or later bloat the ledger with dust value transactions.
BBB is somewhat similar to what I am proposing, but one does not exclude the other.
While BBB can limit the backlog size and drop less prioritized transactions, a minimum amount can avoid a prioritized 1 RAW transaction of being send, if nodes agree so.
If you combine them:
- Nodes will have less problem syncing
- Transactions can be confirmed faster
- Less resources (costs) for running a node