As much as I dislike SD's (and other's) abuse of the blockchain, this is a bad idea. First, any idea that is admitted to be "temporary" should be suspected of being a bad idea. Second, IMHO, it is philosophically wrong -- at best a band-aid for a bigger problem that needs a different solution. Third, it's debatable whether or not this change will alter the behavior of those (ab)using the blockchain. The motivation of gamblers is different. I don't see how it will have any impact on them, other than to change the "dust" amount from 1 unit to 5430 units. Those storing data in the blockchain will just move data around in units of 5430 Satoshi, rather than disposing of units of 1 Satoshi. But fourth, I fear the technical issues have not been fully considered, and that's my main objection to this scheme...
Satoshi Dice
has said they already send 5000 satoshi minimum, so they will probably be upping it to 5430. I agree that the default limit will do little to discourage data-embedders, who recently spent a total of 0.32 BTC in fees to embed some porn-link text files (see
here and
here -- there were many other transactions around the same time, and I've heard rumors that the transaction fees ran up to several hundred $ in total, though I don't care to dig up any more data from the blockchain to confirm it.) Real solutions to the data problem are going to be more complicated, and I'm not entirely sure why data-embedding has entered into this conversation as prominently as it has.
One technical problem noted somewhere in this thread is how do you deal with change that's under the limit. If you are a "bitcoin millionaire", it's probably not much of a problem. If you are just starting out, it might be a significant problem. Say you have 0.01005429 BTC to your name. One rule says you can't spend less than 0.01. This new rule says you can't spend between 0.01000000 and 0.01005428. (I haven't looked at the code. Does the client fail? Are you forced to overpay the recipient? Are you forced to pay your change as part of your "fee"?)
[...]
Similarly, what if you have one account with just slightly more funds than needed for a transaction. Does the client automatically choose a second account to make sure the change is at least 5430 Satoshis? I thought one of the goals of the client was to avoid mixing payment sources as much as possible to maintain some "privacy". Although this shouldn't happen often, if you are dealing with random amounts between a bitcent or two, it seems this would occur about 1 in 300 such transactions. (Again, not a problem for "bitcoin millionaires", but a potential problem for those just starting out.)
You will not overpay, but if your transaction would have created dust change,
the dust is added to the fee instead. As TradeFortress and
gmaxwell have pointed out, this is
already happening in the current client. Anyway, I really don't get the "this is an economic hardship for the poor bitcoiners" argument. 5429 satoshi is $0.00629764 at current prices (and the limit can be adjusted if the price skyrockets.) What are you going to be doing with that little money? If the bitcoin price goes up, it might barely be able to afford sending an SMS message. I don't think the few satoshis lost this way will add up to anything significant, and larger amounts (0.0005 in gmaxwell's message) are already being forfeit under the current rules. If you're "just starting out" and having problems with piddling around with small amounts for tests or whatever, use testnet! You can get more than enough coins from faucets to play around with before you'll hit divisibility/dust problems.
Another technical problem noted (but dismissed as irrelevant by some developers) is the increased window for double-spends. Deny it if you want, but when each mining pool (and each full node) can choose parameters to decide whether or not a transaction is to be relayed, I think the surface area for double-spends has increased significantly.
This only matters if the receiver doesn't wait for a confirmation, which has always been considered unsafe. Nodes can already create uneven transaction flooding patterns for any reason, including collusion with the double-spender, slow network links, or disapproval of the parties/transactions involved. The blockchain is the only authoritative and safe ledger of transactions.
Related to the above is the question of a node's "banscore". I haven't examined the code. If node B receives a transaction from node A, which node B thinks is non-standard, does node B bump node A's banscore? I won't speculate on the implications until I look at the code, because this might be a red herring.
I could be wrong, but I don't think dust txs affect banscores. My reasoning is the few lines around
here. Notice that failing IsStandard() (which now contains txout.IsDust()) is just "error", whereas the obviously-suspicious loose coinbase a few lines up has a DoS score associated. But I could be misunderstanding.
Finally, in many respects, you are trying to achieve results similar to that of a "5430 to 1 reverse stock split". Of course, I'm not actually proposing this! But some of the things corporations and stock exchanges go through when handling a reverse stock split might be considered in handling this proposed change. Do you want to consider making every transaction output a multiple of 5430 Satoshis? If it were a more round number, such as 5000 Satoshis, this might actually make sense. For your very small "stockholders", the way I see it, you are changing the value of very small balances from "economically unspendable" to "practically unspendable". To avoid a perceived hit in public confidence, the Bitcoin Foundation should send up to 5429 Satoshis to every address now containing 1 Satoshi of "dust". (Or whatever amount is necessary to bring every address up to the minimum spendable amount.)
Existing tiny outputs will continue to be as (un)spendable as they are now. This change just discourages creation of more dust outputs, not the redemption of existing ones. Topping-up 1-satoshi addresses to exactly 5430 will not be possible because the 5429 output will be discouraged (not relayed or mined by default), and I don't think it would help with the "practical spendability" either, because the definition of dust seems to err on the side of uneconomical: it's when
"you'd pay more than 1/3 in fees to spend something". If I'm understanding that definition (maybe not?), you'd have to give them quite a bit more than 5430, to overcome the fees for redeeming now
two outputs (the 1-satoshi and the "compensation"). (Edit 2: If you could be sure everyone holding 1-satoshi outputs would spend them if you sent another couple of US pennies, this might actually be worth it to help prune the UTXO. Or if they don't you're just throwing away money and further bloating the set...)