Pages:
Author

Topic: Dust Collection (Read 2670 times)

legendary
Activity: 1064
Merit: 1001
March 10, 2013, 12:37:40 AM
#36
One way it could be done: if all outputs are above the dust cutoff, and if N inputs are below the dust cutoff, prioritize the transaction as if it included N*the minimum fee in addition to fees which are actually present.

Thinking about this idea further, it's a great idea. It would probably work best if we add a tunable command line / config file parameter ranging from 0 to 1 where 0 gives us the current behavior (no prioritizing) and 1 gives us the full "N". Intermediate values would scale N down appropriately. Even better if 1 is the default. This way each miner could use the economic information available to them to decide how important dust collection is to their bottom line.

As I said before, too much SD toxic waste could accumulate in the block chain before sufficient miner action takes place but this is still a good change regardless because it provides the option to do something about it now for miners that don't mind sacrificing a small amount of potential fees, especially since there isn't enough legitimate transaction volume to fill a whole block anyway.


legendary
Activity: 1064
Merit: 1001
March 10, 2013, 12:05:50 AM
#35
The only information that miners absolutely must keep on hand is the set of unspent outputs (UTXO set) because it's possible to allow them to discard all the rest of the historical transaction data using optimizations that have been discussed but not yet implemented. The UTXO set is what some people refer to as unprunable data.

Right now that set is a few hundred megabytes, but if we imagine a billion Bitcoin users all playing Satoshi Dice it would get very large unless there is an incentive for users to limit the number of outputs in their wallet. Especially when the transaction rate is very high miners are probably going to want to keep the UTXO in RAM to speed up verification, which means as the set gets larger their capital equipment costs go up.

So if they effectively subsidize transactions which reduce the UTXO set by requiring a lower fee in the number of outputs is less than the number of inputs they lose a bit in fee revenue but gain in terms of lower hardware requirements.

Once miners start doing this, client developers will have an incentive to include dust collection into their coin selection algorithms and the dust will be cleaned up automatically.

I understand now. Here's the problem, a very long time could pass before the dust carrying cost crosses miners' comfort threshold. And, every miner will have a different threshold so they will start prioritizing at different times. By the time it is in enough miners' best interests to prioritize the transactions in the manner you suggested, we will have incurred a significant and permanent penalty to CPU burden. If only some of the miners prioritize these transactions, they still end up paying the cost for any blocks produced by miners that don't prioritize.

There is too little coupling of the financial incentive to the desired behavior. When I first read your description I thought that there would be some active system of reward. Ideally we would think of something that rewards miners today for taking transactions that collect outputs. Although it's not clear how that could be done, if at all.

legendary
Activity: 1764
Merit: 1002
March 09, 2013, 04:16:47 PM
#34
if i want to combine dust inputs into a tx, how much does it cost in fees to add say 1 vs 100 of them and assuming they are recent?
legendary
Activity: 1400
Merit: 1013
March 09, 2013, 04:10:24 PM
#33
Not just care, but care enough to forgo some income for it when they take a txn consuming more utxo paying lower fees per byte over one consuming less utxo paying more.
They don't necessarily need to forgo income. At high enough transaction rates there must be some economic value in keeping the UTXO set small enough to fit in RAM. Presumably miners are smart enough to analyze their capital equipment costs and determine the correct magnitude of the incentive.
legendary
Activity: 1400
Merit: 1013
March 09, 2013, 04:04:07 PM
#32
how do you arrive at 3?
Blockchain.info is down again so I couldn't get exact numbers but I know the current transaction rate is less than 10 tps. 10->2000 is three orders of magnitude. If we are less than 2 on average now it should be 4 orders of magnitude.
legendary
Activity: 1764
Merit: 1002
March 09, 2013, 04:01:22 PM
#31
So lets say $20 per day per node, compare that to the number of dollars available to be mined each day and you have the number of nodes the network can support I guess, yes?
If we're talking about a Bitcoin economy that is generating 2000 transactions per second there's a bit more to it than just the block reward.

Don't forget to scale the existing fee revenue by three orders of magnitude.

Then make sure to add in the nodes operated by Bitcoin-dependent businesses that absorb that cost into their overhead.

how do you arrive at 3?
sr. member
Activity: 461
Merit: 251
March 09, 2013, 03:59:00 PM
#30
True, it doesn't require any protocol changes... but it does require miners to care.
Not just care, but care enough to forgo some income for it when they take a txn consuming more utxo paying lower fees per byte over one consuming less utxo paying more.
I think there needs to be a mining manual called "Responsible Blockchain Stewardship" Smiley

If it does turn out to be a tragedy of the commons type situation, then I would think that miners would enact block discouraging rules to solve the problem, once it becomes painful enough.  Hopefully they don't end up acting like idiots in the aggregate, though...
legendary
Activity: 1400
Merit: 1013
March 09, 2013, 03:52:50 PM
#29
So lets say $20 per day per node, compare that to the number of dollars available to be mined each day and you have the number of nodes the network can support I guess, yes?
If we're talking about a Bitcoin economy that is generating 2000 transactions per second there's a bit more to it than just the block reward.

Don't forget to scale the existing fee revenue by three orders of magnitude.

Then make sure to add in the nodes operated by Bitcoin-dependent businesses that absorb that cost into their overhead.
legendary
Activity: 2940
Merit: 1090
March 09, 2013, 03:43:31 PM
#28
So lets say $20 per day per node, compare that to the number of dollars available to be mined each day and you have the number of nodes the network can support I guess, yes?

-MarkM-
staff
Activity: 4284
Merit: 8808
March 09, 2013, 03:42:56 PM
#27
True, it doesn't require any protocol changes... but it does require miners to care.
Not just care, but care enough to forgo some income for it when they take a txn consuming more utxo paying lower fees per byte over one consuming less utxo paying more.
sr. member
Activity: 461
Merit: 251
March 09, 2013, 03:38:25 PM
#26
Permanent storage isn't the (significant) scarce resource that requires block space to be rationed, bandwidth is.
Downloading an amount of transactions equal to Visa, based on today's bandwidth costs, would be less than $20/day.
So you agree that bandwidth is a scarce resource?

High frequency trading especially uses up a lot of it...
legendary
Activity: 1400
Merit: 1013
March 09, 2013, 03:30:48 PM
#25
Permanent storage isn't the (significant) scarce resource that requires block space to be rationed, bandwidth is.
Downloading an amount of transactions equal to Visa, based on today's bandwidth costs, would be less than $20/day.
sr. member
Activity: 461
Merit: 251
March 09, 2013, 03:28:44 PM
#24
Your reasoning would make sense to me if UTXO set size was the only scarce resource being rationed, but block space needs to be rationed at the same time.
True at the moment, but in the long term block space does not need to be rationed. It's not even strictly necessary for anyone to keep every transaction all the way back to the Genesis block.

The only data that absolutely must persist forever for the network to function is the UTXO set.
Permanent storage isn't the (significant) scarce resource that requires block space to be rationed, bandwidth is.
legendary
Activity: 2940
Merit: 1090
March 09, 2013, 03:09:25 PM
#23

smallest economical txout value decreases

doesn't the .00000001 BTC become more valuable?

Okay then, lets just hurry up and make bitcoin exchange rates go up to about a million bucks a coin and we'll be set.

(Except for the trifling matter of how much a 0.0005 fee would be in dollars but thats not a hard fork to change.)

-MarkM-
legendary
Activity: 1764
Merit: 1002
March 09, 2013, 03:04:59 PM
#22

smallest economical txout value decreases

doesn't the .00000001 BTC become more valuable if the price goes up thus causing more ppl to want to spend them and thus decreasing UTXO?
sr. member
Activity: 461
Merit: 251
March 09, 2013, 02:53:05 PM
#21
doesn't this depend on how much Bitcoin appreciates assuming of course that as that appreciation occurs fees are reduced?
Yes, absolutely.  This would mean the UTXO set size scales roughly with the number of users, as it should, ideally.

seems to me that as # users increases, Bitcoin price increases, fees decrease, and UTXO decreases.
Um...  Bitcoin price increases -> fees decrease -> smallest economical txout value decreases -> more UTXOs can be created -> UTXO set size increases.
legendary
Activity: 1764
Merit: 1002
March 09, 2013, 02:48:24 PM
#20
doesn't this depend on how much Bitcoin appreciates assuming of course that as that appreciation occurs fees are reduced?
Yes, absolutely.  This would mean the UTXO set size scales roughly with the number of users, as it should, ideally.

seems to me that as # users increases, Bitcoin price increases, fees decrease, and UTXO decreases.
legendary
Activity: 1400
Merit: 1013
March 09, 2013, 02:48:09 PM
#19
Your reasoning would make sense to me if UTXO set size was the only scarce resource being rationed, but block space needs to be rationed at the same time.
True at the moment, but in the long term block space does not need to be rationed. It's not even strictly necessary for anyone to keep every transaction all the way back to the Genesis block.

The only data that absolutely must persist forever for the network to function is the UTXO set.
sr. member
Activity: 461
Merit: 251
March 09, 2013, 02:44:14 PM
#18
doesn't this depend on how much Bitcoin appreciates assuming of course that as that appreciation occurs fees are reduced?
Yes, absolutely.  This would mean the UTXO set size scales roughly with the number of users, as it should, ideally.
legendary
Activity: 1764
Merit: 1002
March 09, 2013, 02:42:15 PM
#17
Without any changes to the protocol itself miners could make it economical to create transactions which reduce the UTXO set by changing their transaction rules to favor transactions which reduce dust. Once this happens, clients could be programmed to do that automatically.

One way it could be done: if all outputs are above the dust cutoff, and if N inputs are below the dust cutoff, prioritize the transaction as if it included N*the minimum fee in addition to fees which are actually present.


I don't think the BTC-size of the inputs should matter.  Simply look at whether it increases or reduces the global UTXO set all full nodes will have to track.  Even huge transactions should be free if they combine dozens of inputs into a one or two outputs.  As long as it is very expensive to go the other way.

In fact, you could look at the contraction efficiency of a transaction:  how many kB did it use to remove X UTXOs from the set?  Above a certain efficiency, those tx should be free.  Any neutral or negative tx will be charged a fee, with the highest fees going to those who dramatically expand the set.  But the rules should be balanced so that it's not cheaper to send 100 single-output transactions instead of a single 100-output tx.
One problem with ignoring coin value altogether is that we're more likely to end up with coins that are uneconomical to ever spend, and thus more likely to bloat the UTXO set indefinitely.

Your reasoning would make sense to me if UTXO set size was the only scarce resource being rationed, but block space needs to be rationed at the same time.  This means transaction priority can't be coin value-agnostic.

Edit: Additionally, the UTXO set size is naturally bounded if uneconomical coin values are discouraged.  Of course this brings up the problem of discouraging exotic uses of small valued coins.  I addressed this here though if you're interested: https://bitcointalksearch.org/topic/discouraging-dust-without-hurting-exotic-uses-of-small-valued-coins-151177.

doesn't this depend on how much Bitcoin appreciates assuming of course that as that appreciation occurs fees are reduced?
Pages:
Jump to: