Subject: Re: [Bitcoin-development] Changing the fee on already sent transactions

From: Gregory Maxwell <[email-masked]>
Date: Tue, 12 Mar 2013 06:06:49 -0700

On Tue, Mar 12, 2013 at 2:47 AM, Peter Todd <[email-masked]> wrote:
> Followed by the actual replacement logic. We could change this logic to
> instead evaluate if the candidate replacement does not remove or
> decrease the value of any existing outputs. Adding outputs is ok.
> Changing the set of inputs is also ok, provided that there are no
> conflicts with other spent transactions. DoS attacks would be prevented
> by only forwarding/accepting into the mempool replacements that increase
> the fees paid by at least MIN_RELAY_TX_FEE * size - essentially the same
> decision to allow the broadcast of the transaction in the first place.

I _strongly_  prefer this method of addressing this concern.  I think
you've hit the required requirements: pay at least all the same
inputs, increase fee by at least the min_relay_tx_fee*size.

The discussion we had on IRC where some were proposing fast expiration
would practically lower the security of Bitcoin.

While there is complexity and testing required here, getting full
branch coverage of this code would be fairly straight forward.  Doing
this correctly will be easier than child-pays-for-parent and although
it does not replace child-pays-for-parent (the two techniques are
complimentary in my view) it would reduce the urgency of getting
child-pays-for-parent included.