Author

Topic: Deleting abandoned UTXO (Read 1543 times)

staff
Activity: 4172
Merit: 8419
July 23, 2015, 12:08:38 AM
#9
This may be possible with UTXO set commitments of some kind.
This is the argument for TXO commitments.  But it's a storage vs bandwidth tradeoff, instead of storing a (say) 64 byte UTXO entry you need a 2.5KB proof when its spent. It takes some pretty tortued assumptions about storage vs bandwidth costs to make this win unless you assume a very low probablity of being spent and only use the proofs for accurately predicted low probablity of spend transactions.
legendary
Activity: 1232
Merit: 1083
July 22, 2015, 07:12:35 PM
#8
This defeats one of the purposes of the proposal: to prove that some coins are irrecoverably lost and we could forget them forever.

The problem is that each UTXO requires unprunable space on every node.

The revival would require that the spender provide additional information than a normal transaction.  Effectively, the spender has to prove that the UTXO is valid.

This may be possible with UTXO set commitments of some kind.
staff
Activity: 4172
Merit: 8419
July 22, 2015, 02:34:09 PM
#7
1. 0-value outputs are not spendable
This would greatly reduce the scope of functionality introducable in future soft-forks.  E.g. CT like private values could no longer deployed, soft-fork increases in coin precision, etc.
sr. member
Activity: 433
Merit: 263
July 21, 2015, 01:41:16 PM
#6
I don't see why proposal's like Amaclin's are particularly bad. Sure there's an incentive for miners to reject transactions in order to confiscate the property but it's not likely because it would damage the fungibility of the very currency they're trying to acquire, and because a collusion of 50% of the hash-power represents a broken system anyway, and finally because the user can always pay a fee that outweigh's the potential benefit of the colluding miners.

Expanding on that last point, if you had 1000 btc and you wanted to move it to another address, 51 out of 100 miners (Each have 1% of total hashpower for simplicity.) could reject all of your transactions to get potentially 19.6 btc a piece. The sender could provide a 19.61 fee, and suddenly the incentive to collude is gone. So even in the unlikely event that half the hashpower will collude against one address, the conspiracy could be foiled by just paying a high enough fee to at least compete with the least significant reward of one of the colluding participants.

If something like Confidential Transactions is implemented, then it wouldn't be possible to reward the contents of the outputs to the miners. There would be no reward or maybe an inflationary reward.
legendary
Activity: 1260
Merit: 1019
July 21, 2015, 01:16:30 PM
#5
I suppose you are joking but that will provide an incentive for miners not to confirm tx as they could take the money

Yes, something like
https://en.wikipedia.org/wiki/Unexpected_hanging_paradox
The owner of funds must transfer them to new block before miners take his utxo. Point.
The miner will confirm his transaction because of fee attached to it.
legendary
Activity: 1792
Merit: 1087
July 21, 2015, 12:54:20 PM
#4
A compromise would be to have a rule to allow UTXOs to be "revived".  This would require a proof that the output actually exists and no double spends happen.

I wonder if it would be possible to have a UTXO commitment that you can store the legacy path and combine it somehow with the live path to prove that the output exists.

This defeats one of the purposes of the proposal: to prove that some coins are irrecoverably lost and we could forget them forever.

A problem of the current Bitcoin social contract is that people assume that everything valid today is still valid after 100 years. They may sign a tx timelocked for 100 years and assume that will be confirmed eventually. This assumption limits all sorts of consensus fork as we could not introduce any rules with potential to confiscate coins.

This also create instability in the value of bitcoins. Satoshi and other early miners own millions of bitcoin and we don't even know if they are still alive or whether the keys were lost. As I explained in OP I am not asking to delete their UTXOs but we should avoid this kind of dormant coins in the future.



Your rules are too complicated.

Let us create hardfork with a rule(s):
1) all unspent outputs with an age of X blocks ( X > 366307 at least ) are unspendable.
2) all amounts of these outputs go to the miners reward

And now we can determine the exact number of X.  Grin


I suppose you are joking but that will provide an incentive for miners not to confirm tx as they could take the money
legendary
Activity: 1232
Merit: 1083
July 21, 2015, 10:51:58 AM
#3
A compromise would be to have a rule to allow UTXOs to be "revived".  This would require a proof that the output actually exists and no double spends happen.

I wonder if it would be possible to have a UTXO commitment that you can store the legacy path and combine it somehow with the live path to prove that the output exists.
legendary
Activity: 1260
Merit: 1019
July 21, 2015, 10:31:54 AM
#2
Your rules are too complicated.

Let us create hardfork with a rule(s):
1) all unspent outputs with an age of X blocks ( X > 366307 at least ) are unspendable.
2) all amounts of these outputs go to the miners reward

And now we can determine the exact number of X.  Grin
legendary
Activity: 1792
Merit: 1087
July 21, 2015, 06:54:31 AM
#1
There are some ways to limit the growth of UTXO set:

1. Discouraging creation of new UTXO --- fee and relay rules

2. Encouraging consumption of UTXO --- fee reduction and relay rules

3. Limit the delta-UTXO-size for each block --- softfork/hardfork

However, some small UTXOs may never be economic to spend, or the private keys are simply lost. I bet this is not a new idea but I think we should consider to delete those "abandoned" UTXOs.

That would be too controversial if we are trying to delete any existing UTXOs. Therefore, this proposal applies only to new UTXOs.

This is a softfork:

1. 0-value outputs are not spendable

1a. (variation) 0-value outputs must be spent within 5,000,000s

2. An output of 1 satoshi must be spent within 10,000,000s (3.8 months) after it is created. The creation time and the deadline are both determined by the block timestamp.

3. As the value doubles, the deadline is extended by 10,000,000s. For example, with 1.34217728BTC (2^27), the UTXO can stay untouched for 280,000,000s (8.87 years)

4. No interpolation: e.g., the deadline for 1.34217727BTC is 270,000,000s after creation. In practice, it just measures the length of value in binary with leading zeros removed, and multiplies the length with 10,000,000. The code should be simple.

5. Bitcoin in deleted UTXOs are lost permanently. Most commercial banks will just confiscate your money if the account is dormant for many (say 5) years. The blockchain bank, however, will just delete the record.

The initial value of 10,000,000s is chosen, so that assuming the extreme case of 1BTC = 1,000,000USD, an UTXO with 128 satoshi (1.28USD) will still have 2.5 years to spend. Anything with at least 327.68USD will have minimum 5 years of storage period.

------------------

The arguments for this proposal are:

1. Limiting the growth of UTXO set.

2. No one should assume that other people would store data for free indefinitely.

3. Stabilizing Bitcoin's value if we could prove some bitcoins are really lost.

4. The original "Bitcoin contract" is not violated if the proposal is not applied to existing UTXOs

The arguments against this proposal are:

1. It opens a Pandora's box of confiscating bitcoin

2. It will create more on-chain transactions as people are forced to move their bitcoin. Enough block size is needed to make sure people will not lose bitcoin due to lack of block size.
Jump to: