On Fri, Sep 18, 2020 at 05:51:39PM -0700, Jeremy via bitcoin-dev wrote: > I'd like to share with you a draft proposal for a mechanism to replace > CPFP and RBF for increasing fees on transactions in the mempool that > should be more robust against attacks. Interesting idea! This is going to take a while to think about, but I have one immediate question: > To prevent garbage sponsors, we also require that: > > 1. The Sponsor's feerate must be greater than the Sponsored's ancestor fee rate > > We allow one Sponsor to replace another subject to normal replacement > policies, they are treated as conflicts. Is this in the reference implementation? I don't see it and I'm confused by this text. I think it could mean either: 1. Sponsor Tx A can be replaced by Sponsor Tx B if A and B have at least one input in common (which is part of the "normal replacement policies") 2. A can be replaced by B even if they don't have any inputs in common as long as they do have a Sponsor Vector in common (while otherwise using the "normal replacement policies"). In the first case, I think Mallory can prevent Bob from sponsor-fee-bumping (sponsor-bumping?) his transaction by submitting a sponsor before he does; since Bob has no control over Mallory's inputs, he can't replace Mallory's sponsor tx. In the second case, I think Mallory can use an existing pinning technique to make it expensive for Bob to fee bump. The normal replacement policies require a replacement to pay an absolute higher fee than the original transaction, so Mallory can create a 100,000 vbyte transaction with a single-vector sponsor at the end pointing to Bob's transaction. This sponsor transaction pays the same feerate as Bob's transaction---let's say 50 nBTC/vbyte, so 5 mBTC total fee. In order for Bob to replace Mallory's sponsor transaction with his own sponsor transaction, Bob needs to pay the incremental relay feerate (10 nBTC/vbyte) more, so 6 mBTC total ($66 at $11k/BTC). Thanks, -Dave