Title: The real way to deal with "uneconomic outputs" is to charge for them Post by: dree12 on May 05, 2013, 10:08:26 PM Hardcoding a value isn't going to help anything. Let the free market decide what is uneconomic. There's a simple way to do this, which incidentally should have been how Bitcoin was designed in the first place. It might need a hardfork, but it's still much more elegant than what we have now.
Block size limit replaced by total block output size limit The blockchain's size can be reduced drastically if the number of unspent outputs are reduced. Currently, the block size limit accomplishes this only indirectly. If this were replaced with a limit to block output size (say, at 500 kB), we would be targeting this directly. Charge fees on outputs, not TX size Really, for a transaction, nothing matters except the number of outputs. Outputs increase unprunable blockchain size. Combined with the block output size limit, this will shrink blockchain size considerably. Stop charging for inputs Every input was an output once, and so has already been paid for. There is no reason to double-charge, as that would be double taxation. And since block inputs are no longer limited, miners would gladly accept transactions like this. Enjoy the benefits What's there to lose?
Of course, current inputs have not been paid for, so an implementation would have to start at a certain block. This solution would also seem to hardfork the blockchain. It would also require all inputs to be emptied with every transaction, but this happens already. The solution would make faucets and SatoshiDICE "you lose" messages uneconomic—but is that necessarily a bad thing? Title: Re: The real way to deal with "uneconomic outputs" is to charge for them Post by: TierNolan on May 05, 2013, 10:48:56 PM Block size limit replaced by total block output size limit The blockchain's size can be reduced drastically if the number of unspent outputs are reduced. Currently, the block size limit accomplishes this only indirectly. If this were replaced with a limit to block output size (say, at 500 kB), we would be targeting this directly. Better would be to use number of outputs - number of inputs. That way miners might even pay for transactions with lots of inputs. I assume transactions with negative fees are not allowed atm? Quote Charge fees on outputs, not TX size Really, for a transaction, nothing matters except the number of outputs. Outputs increase unprunable blockchain size. Combined with the block output size limit, this will shrink blockchain size considerably. The network doesn't charge fees. You set your own fee, and the miner accepts it or not. However, if the blocks were limited to a maximum UTXO set increase, then miners would naturally charge only for outputs. Quote
The fee is for a slot in the UTXO set. If that becomes really limited, users may demand merchants provide their own receiving UTXO. Quote
If UTXO slots are inherently expensive, it encourages users to consolidate, so it reduces privacy. Quote Caveat Of course, current inputs have not been paid for, so an implementation would have to start at a certain block. This solution would also seem to hardfork the blockchain. It would also require all inputs to be emptied with every transaction, but this happens already. The solution would make faucets and SatoshiDICE "you lose" messages uneconomic—but is that necessarily a bad thing? You have the risk of UTXO set spam, if it looks like they are going to be expensive. People who split their money into loads of small holding would get more UTXO slots. However, the 1MB limit inherently limits the maximum UTXO set increase, but it could still expand. In the greater order of things that doesn't matter much. Also, if you set a maximum number of outputs per block, then you hard limit the rate at which new users can enter the system. Title: Re: The real way to deal with "uneconomic outputs" is to charge for them Post by: dree12 on May 05, 2013, 11:11:21 PM Block size limit replaced by total block output size limit The blockchain's size can be reduced drastically if the number of unspent outputs are reduced. Currently, the block size limit accomplishes this only indirectly. If this were replaced with a limit to block output size (say, at 500 kB), we would be targeting this directly. Better would be to use number of outputs - number of inputs. That way miners might even pay for transactions with lots of inputs. I assume transactions with negative fees are not allowed atm? Quote Charge fees on outputs, not TX size Really, for a transaction, nothing matters except the number of outputs. Outputs increase unprunable blockchain size. Combined with the block output size limit, this will shrink blockchain size considerably. The network doesn't charge fees. You set your own fee, and the miner accepts it or not. However, if the blocks were limited to a maximum UTXO set increase, then miners would naturally charge only for outputs. Quote
The fee is for a slot in the UTXO set. If that becomes really limited, users may demand merchants provide their own receiving UTXO. Quote
If UTXO slots are inherently expensive, it encourages users to consolidate, so it reduces privacy. Quote Caveat Of course, current inputs have not been paid for, so an implementation would have to start at a certain block. This solution would also seem to hardfork the blockchain. It would also require all inputs to be emptied with every transaction, but this happens already. The solution would make faucets and SatoshiDICE "you lose" messages uneconomic—but is that necessarily a bad thing? You have the risk of UTXO set spam, if it looks like they are going to be expensive. People who split their money into loads of small holding would get more UTXO slots. However, the 1MB limit inherently limits the maximum UTXO set increase, but it could still expand. In the greater order of things that doesn't matter much. Also, if you set a maximum number of outputs per block, then you hard limit the rate at which new users can enter the system. Title: Re: The real way to deal with "uneconomic outputs" is to charge for them Post by: TierNolan on May 06, 2013, 12:40:57 AM That would allow tx spam and unlimited block sizes. The benefit is that it decreases the UTXO space. What about outputs - (inputs / 2) as a compromise? Quote In practice, the fee rules are hardcoded. Clients enforce a minimum tx fee, with no option of bypass. You can bypass the fees if you want. Free transactions are already included by miners. You take a risk, and as block space becomes more limited, they will probably be delayed more. Quote Users do not need to consolidate because that gives no economic benefit anymore, as inputs are not charged fees. It is in the network's interests to encourage consolidation. The UTXO set is effectively the unprunable part of the blockchain. Title: Re: The real way to deal with "uneconomic outputs" is to charge for them Post by: gmaxwell on May 06, 2013, 12:45:29 AM Go ahead, create an altcoin as you describe it...
I'll happily go make it impossible to validate/secure by making a bunch of blocks with gigabyte scriptsigs. While I agree that block limits an txcost objectives must be aligned (and wrote up an elaborate non-bitcoin proposal based on it, search for prepayment (https://en.bitcoin.it/wiki/User:Gmaxwell/alt_ideas)) It's not quite so simple... you can't just ignore parts of transactions of the blocks, lest people start cramming in hundreds of gigs of data they want to make other people store in them. |