|
May 01, 2013, 09:32:17 AM |
|
This came up in the thread about the new rule that transactions with very low outputs were not to be relayed.
What about a rule which directly restricts the growth of the UTXO set. A simple rule is that for a block to be valid, the number of outputs can be no more than 100 greater than the number of inputs. The sums up the number of outputs and inputs for all transactions in the block.
This would encourage people to try to keep the the UTXO set low. A transaction with an equal number of inputs and outputs would automatically be ok to include.
On the other hand, transaction outputs are inherently linked to unique users. The maximum number of unique users can't be greater than the UTXO set size.
If the limit is to low, then UTXO "slots" would suddenly have value in and of themselves. When sending cash to a merchant, the merchant would have to provide a UTXO to receive the funds.
Input 0: Merchant's input (M) Input 1: Customer's input Input 2: Customer's input
Output 0: Merchant's output (M + purchase price) Output 1: Customer change 1 Output 2: Customer change 2
This way the customer doesn't lose a UTXO slot.
It would act against privacy. Ideally, UTXO should be sufficiently scare so as to prevent spam, but not so scarce that "real" users can't get their hands on them.
Another option would be to define the limit based on block number. Something like A * pow(growth, block number), but getting the growth rate right is hard.
|