Hi all, I would like to propose an idea for discussion. What would the pros/cons be to penalizing the creation of new "dust" accounts? If it is desirable to penalize the creation of dust accounts, how could/should we penalize them?
In one respect an open transaction is no different than a receive transaction to the network. But I think there's a hidden cost to every new account added to the ledger because of these factors:
- Creation of millions of dust accounts is a powerful weapon for spammers
- Horizontal pruning of the ledger is a much more challenging long-term problem than vertical pruning; it may require eventual creation of specialized "historical" nodes; it may require periodic manually-reviewed/researched purges of dust accounts that can be proven to have been created by spammers (this would need to be done very carefully)
- There is additional data storage overhead for the node which scales on a per-account basis (e.g. time since use)
I know there are some legitimate uses such as faucets and tip-bots; however there are always opportunities to cleverly redesign such utilities so that they don't automatically generate new accounts (or otherwise minimize the penalty).
Here is a graph that shows penalty as inverse of initial account balance. The penalty would max out as the initial balance approached 1 raw and there would be no penalty above a certain "threshold" balance (e.g. 0.1 NANO). This theoretical penalty would only be applied to open transactions.
Note: the actual formula used for this graph is: penalty = (11 / (balance + 1)) - 1. The curve crosses the y-axis at a value of 10 (max penalty), and it crosses the x-axis at a value of 10 (balance threshold). These numbers were arbitrary: I just picked them to make the graph look curvy. It's a variant of the inverse function x = 1 / y.
In a PoW system I think the penalty would just be more work; but how much?
In the recent election scheduler and prioritization revamp that Colin has proposed, the penalty could be a time delay that pushes the open transaction to the rear of the LRU ordered queue(s). Perhaps max delay = 4 hours or 24 hours. The queues could be ordered by LRU + penalty.
In my most recent load balancer proposal the penalty could be a number added to "tx processed this week" during the sort.
What do you guys think?