Bitcoin Forum
June 20, 2024, 06:19:04 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: Dust Collection  (Read 2651 times)
justusranvier (OP)
Legendary
*
Offline Offline

Activity: 1400
Merit: 1009



View Profile
March 08, 2013, 09:49:34 PM
 #1

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.

etotheipi
Legendary
*
expert
Offline Offline

Activity: 1428
Merit: 1093


Core Armory Developer


View Profile WWW
March 09, 2013, 04:56:27 AM
 #2

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.

Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
solex
Legendary
*
Offline Offline

Activity: 1078
Merit: 1002


100 satoshis -> ISO code


View Profile
March 09, 2013, 05:05:51 AM
 #3

Excellent ideas!
Is it feasible to get such an improvement into an official version during 2013?

justusranvier (OP)
Legendary
*
Offline Offline

Activity: 1400
Merit: 1009



View Profile
March 09, 2013, 05:16:16 AM
 #4

Is it feasible to get such an improvement into an official version during 2013?
Solo miners and pool operators could change how they prioritize transactions at any time.

To make dust collection automatic it would require changes in the various client programs. Any client that can do coin control could do this manually.
etotheipi
Legendary
*
expert
Offline Offline

Activity: 1428
Merit: 1093


Core Armory Developer


View Profile WWW
March 09, 2013, 05:21:20 AM
 #5

Is it feasible to get such an improvement into an official version during 2013?
Solo miners and pool operators could change how they prioritize transactions at any time.

To make dust collection automatic it would require changes in the various client programs. Any client that can do coin control could do this manually.

True, it doesn't require any protocol changes... but it does require miners to care.  At the moment they don't care, because they still use the full blockchain.  No one uses the UTXO set.  But once they start transitioning, I'm sure we'll see fee "schedules" get stirred up to reflect their new priorities.

Armory already does some degree of dust collection, but it doesn't do a very good job of it.  The logic has been tested, but I think it doesn't work well in practice, unless you recycle addresses a lot.  Part of it, is that I didn't want to reduce anonymity just to clean up dust, and frequently throwing in that dust would link more addresses on the input side, so I avoid it.  Only if you have a default coin-selection that includes addresses that also have dust inputs, then it will throw it in there.

Someone recently brought up the idea that I don't have to consider same addresses only.... I can consider dust from any address that is already linked to one of the addresses on the input side.  There's no privacy issues if the addresses were already linked.  But that's a much more complicated algorithm to figure that out.  Maybe one day it will reach priority for me...

Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
solex
Legendary
*
Offline Offline

Activity: 1078
Merit: 1002


100 satoshis -> ISO code


View Profile
March 09, 2013, 05:23:58 AM
 #6

etotheipi, Just want to say: "Thanks very much. I use Armory and it is great."
edit: donation pinged your way now...

justusranvier (OP)
Legendary
*
Offline Offline

Activity: 1400
Merit: 1009



View Profile
March 09, 2013, 05:33:46 AM
 #7

True, it doesn't require any protocol changes... but it does require miners to care.  At the moment they don't care, because they still use the full blockchain.  No one uses the UTXO set.
I was sure that I recently saw a pool operator vocally complaining about a certain service bloating the blockchain with unprunable outputs. Maybe I was just imagining it though.
etotheipi
Legendary
*
expert
Offline Offline

Activity: 1428
Merit: 1093


Core Armory Developer


View Profile WWW
March 09, 2013, 05:54:32 AM
 #8

True, it doesn't require any protocol changes... but it does require miners to care.  At the moment they don't care, because they still use the full blockchain.  No one uses the UTXO set.
I was sure that I recently saw a pool operator vocally complaining about a certain service bloating the blockchain with unprunable outputs. Maybe I was just imagining it though.

To say they "don't care" was perhaps too strong of a statement.  I think everyone acknowledges that it will be important in the future, and would like to see a pleasant blockchain waiting for them when we get there.  But I think UTXO-only nodes are not happening for a while, so their immediate priorities are different.


Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
justusranvier (OP)
Legendary
*
Offline Offline

Activity: 1400
Merit: 1009



View Profile
March 09, 2013, 05:59:18 AM
 #9

If dust collection is ever going to happen it should be started as soon as possible, because each day a certain percentage of bitcoin users will die, lose their private keys, stop using bitcoins, or otherwise stop making new transactions. The sooner dust collection starts the less of those outputs will stay in the UTXO set forever.
etotheipi
Legendary
*
expert
Offline Offline

Activity: 1428
Merit: 1093


Core Armory Developer


View Profile WWW
March 09, 2013, 06:01:15 AM
 #10

If dust collection is ever going to happen it should be started as soon as possible, because each day a certain percentage of bitcoin users will die, lose their private keys, stop using bitcoins, or otherwise stop making new transactions. The sooner dust collection starts the less of those outputs will stay in the UTXO set forever.

Well I do agree, I would feel more inspired to optimize my dust collection algo in Armory, if it helped me avoid requiring my users to pay a fee..

Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
niko
Hero Member
*****
Offline Offline

Activity: 756
Merit: 501


There is more to Bitcoin than bitcoins.


View Profile
March 09, 2013, 06:17:04 AM
 #11

If I use the reference client to spend the whole wallet to one new address in the same wallet, have I removed the dust from the blockchain?

They're there, in their room.
Your mining rig is on fire, yet you're very calm.
killerstorm
Legendary
*
Offline Offline

Activity: 1022
Merit: 1033



View Profile
March 09, 2013, 09:33:47 AM
 #12

At the moment they don't care, because they still use the full blockchain.  No one uses the UTXO set.

Well, if they use bitcoind 0.8, while they still full blockchain on disk, working set depends on UTXO set.

Performance difference is probably too small to be considered, but still, UTXO set has effect on performance.

Chromia: a better dapp platform
etotheipi
Legendary
*
expert
Offline Offline

Activity: 1428
Merit: 1093


Core Armory Developer


View Profile WWW
March 09, 2013, 06:33:56 PM
 #13

In fact, I think miners should find a way to pay for transactions like this:  

http://blockchain.info/tx/8d46c863dbbbbe7c99ef8cb1a5b2c24cf45bbacda01a751f939d0b32b64e2a08

That is 410 inputs turned into two, for a net reduction of 408 UTXOs.  I feel skinnier already...


Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
cypherdoc
Legendary
*
Offline Offline

Activity: 1764
Merit: 1002



View Profile
March 09, 2013, 06:51:12 PM
 #14

In fact, I think miners should find a way to pay for transactions like this:  

http://blockchain.info/tx/8d46c863dbbbbe7c99ef8cb1a5b2c24cf45bbacda01a751f939d0b32b64e2a08

That is 410 inputs turned into two, for a net reduction of 408 UTXOs.  I feel skinnier already...



are you sure you gave us the right tx?  i only see 2 inputs.
etotheipi
Legendary
*
expert
Offline Offline

Activity: 1428
Merit: 1093


Core Armory Developer


View Profile WWW
March 09, 2013, 06:54:53 PM
 #15

are you sure you gave us the right tx?  i only see 2 inputs.

You have to click "Show scripts & coinbase".  There's only two input addresses, but there's 409 UTXOs being spent by the 12vNB address.

Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
d'aniel
Sr. Member
****
Offline Offline

Activity: 461
Merit: 251


View Profile
March 09, 2013, 07:20:24 PM
 #16

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://bitcointalk.org/index.php?topic=151177.0.
cypherdoc
Legendary
*
Offline Offline

Activity: 1764
Merit: 1002



View Profile
March 09, 2013, 07: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://bitcointalk.org/index.php?topic=151177.0.

doesn't this depend on how much Bitcoin appreciates assuming of course that as that appreciation occurs fees are reduced?
d'aniel
Sr. Member
****
Offline Offline

Activity: 461
Merit: 251


View Profile
March 09, 2013, 07: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.
justusranvier (OP)
Legendary
*
Offline Offline

Activity: 1400
Merit: 1009



View Profile
March 09, 2013, 07: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.
cypherdoc
Legendary
*
Offline Offline

Activity: 1764
Merit: 1002



View Profile
March 09, 2013, 07: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.
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!