On Thu, Mar 8, 2018 at 1:34 PM, Peter Todd <pete@petertodd.org> wrote:
On Thu, Mar 08, 2018 at 10:39:46AM -0500, Russell O'Connor wrote:
> On Thu, Mar 1, 2018 at 10:11 AM, Peter Todd <pete@petertodd.org> wrote:
> > I mean, I think in general solving this problem is probably not possible.
> > Basically, the fundamental problem is someone else has consumed network
> > bandwidth that should be paid for with fees. What you're trying to do is
> > replace a transaction without paying those fees, which is identical to
> > what an
> > attacker is trying to do, and thus any such scheme will be as vulnerable to
> > attack as not having that protection in the first place.
> >
> > ...which does give you an out: maybe the attack isn't important enough to
> > matter. :)
> >
>
> Thanks, that makes sense.
>
> I still think it is worthwhile pursuing this proposed change in RBF policy
> as it would seem that the current policy is problematic in practice today
> where participants are just performing normal transactions and are not
> trying to attack each other.

But that's not a good argument: whether or not normal users are trying to
attack each other has nothing to do with whether or not you're opening up an
attack by relaxing anti-DoS protections.

I'm not suggesting removing the anti-DoS protections.  I'm suggesting that replaced transaction require a fee increase of at least the min-fee-rate times the size of all the transactions being ejected (in addition to the other proposed requirements).
 
Equally, how often are normal users who aren't attacking each other creating
issues anyway? You can always have your wallet code just skip use of RBF
replacements in the event that someone does spend an unconfirmed output that
you sent them; how often does this actually happen in practice?

Just ask rhavar.  It happens regularly.

Not many wallets let you spend unconfirmed outputs that you didn't create.

The problem is with institutional wallets sweeping incoming payments.  It seems that in practice they are happy to sweep unconfirmed outputs.

Setting all of the above aside for a moment.  We need to understand that rational miners are going to prefer to transactions with higher package fee rates regardless of whatever your personal preferred RBF policy is.  If we do not bring the RBF policy to alignment with what is economically rational, then miners are going to change their own policies anyways, probably all in slightly different ways.  It behooves everyone to develop a reasonable standard RBF policy, that is still robust against possible DoS vectors, and aligns with miner incentives, so that all participants know what behaviour they can reasonably expect.  It is simply a bonus that this change in RBF policy also partially mitigates the problem of pinned transactions.