Hi Greg,
> The security of LN and other related systems are something like: "given
> proper fees offered, can a transaction be mined within N blocks?" You're
> simply not allowed to out-bid your attacker in certain circumstances due to
> today's miner incentive-incompatible relay policies.
It is not possible to guarantee that a transaction will be mined within N
blocks irrespective of fees. It is vulnerable if a project's security relies on
it,and should fix it by changing the security assumptions. Miners can try
full-rbf or other policy without core so I won't consider opt-in as
incentive-incompatible.
>> ... arguments about how many people RBF being sufficient or not ...
>
> The idea that we should only build robust systems after the broken ones are
> attacked is not a serious argument.
Its true and was even mentioned in PR #16171 that a policy is only useful if
enough nodes and miners follow it. We should build robust systems but I don't
think this change will help in doing it.
> This is a strawman.
>
> Full-RBF is a simple, obvious, incentive-compatible step to getting closer to
> more robust layer two systems.Fixing the rest of the holes is for future
> proposals which are a bit more involved and definitely less mature.
I do not have issues with multiple RBF policies being tried out and full-rbf
being one of them. My disagreements are with rationale, lack of basic options
in Bitcoin Core to employ/disable different RBF policies and a few arguments
made in support for full-rbf. Whether it appears strawman or offtopic on
github, there should be a place to share these disagreements.
> If Knots has these knobs, just use Knots rather than lobby all
> implementations to have miner incentive incompatible knobs?
Everyone can share options that would help users in the bitcoin implementation
used by 90% nodes. I don't think this is reserved only for a few developers. I
would personally use Knots and others are free to try the suggestion or
continue using Bitcoin Core.
/dev/fd0
Sent with [Proton Mail](https://proton.me/) secure email.
------- Original Message -------
On Thursday, June 16th, 2022 at 6:32 AM, Greg Sanders <gsander...@gmail.com>
wrote:
>> If something relies on a policy which can be changed without breaking
>> consensus rules, how is it secure in any case with or without full rbf?
>
> The security of LN and other related systems are something like: "given
> proper fees offered, can a transaction be mined within N blocks?" You're
> simply not allowed to out-bid your attacker in certain circumstances due to
> today's miner incentive-incompatible relay policies.
>
> There is also a time-value dimension to this with other simpler systems where
> your funds can be locked up for potentially weeks for similar reasons.
>
>> ... arguments about how many people RBF being sufficient or not ...
>
> The idea that we should only build robust systems after the broken ones are
> attacked is not a serious argument.
>
>> I am not opposed to full-rbf; rather, I am opposed to the notion that
>> full-rbf will solve all problems
>
> This is a strawman.
>
> Full-RBF is a simple, obvious, incentive-compatible step to getting closer to
> more robust layer two systems. Fixing the rest of the holes is for future
> proposals which are a bit more involved and definitely less mature.
>
>> would suggest users to try Bitcoin Knots instead
>> Developers should provide basic RBF policy options rather than attempting to
>> define what constitutes a good policy and removing the ability to disable
>> something when necessary.
>
> If Knots has these knobs, just use Knots rather than lobby all
> implementations to have miner incentive incompatible knobs?
>
> Cheers,
> Greg
>
> On Wed, Jun 15, 2022 at 8:27 PM alicexbt via bitcoin-dev
> <bitcoin-dev@lists.linuxfoundation.org> wrote:
>
>> Hi Antoine,
>>
>> Thanks for opening the pull request to add support for full-rbf in Bitcoin
>> Core. I have a few disagreements with the approach and questions.
>>
>>> Recent discussions among LN devs have brought back on the surface concerns
>>> about the security of multi-party funded transactions (coinjoins,
>>> dual-funded LN channels, on-chain DLCs, ...). It turns out there is a
>>> low-fruit, naive DoS vector playable against the funding flow of any such
>>> construction due to the lack of existent full-rbf transaction-relay
>>> topology on today's p2p network [0] [1].
>>
>> 1)If something relies on a policy which can be changed without breaking
>> consensus rules, how is it secure in any case with or without full rbf? If I
>> write a python script that expects user to enter char 'a' or 'b' but user
>> can enter 'c' and there is no code to handle exceptions or other chars, will
>> it be secure?
>>
>> 2)full-rbf is not default in the 2 open pull requests, so this experiment
>> still relies on users changing RBF policies manually. If majority of nodes
>> use default opt-in policy, how would this affect vulnerable projects?
>>
>>> If you're a mining operator looking to increase your income, you might be
>>> interested to experiment with full-rbf as a policy.
>>
>> Miners can only increase their income if users replace transactions. 2-3%
>> transactions are replaced with opt-in RBF, if someone did not replace
>> earlier why would they do it with full RBF? Or even if we add some users in
>> it who could not signal for some reasons, do you think it would be anything
>> above 5%?
>>
>>> If you're a Bitcoin user or business and you don't like full-rbf, please
>>> express an opinion on how it might affect your software/operations. I'm
>>> always interested to learn more about mempool and transaction-relay
>>> interactions with upper-layers and applications and to listen to feedback
>>> in those areas, and I guess a lot of other Bitcoin researchers/devs too. I
>>> know there have been a lot of concerns about full-rbf in the past, however
>>> I believe the Bitcoin ecosystem has matured a lot since then.
>>
>> I am not opposed to full-rbf; rather, I am opposed to the notion that
>> full-rbf will solve all problems and the lack of basic options in Bitcoin
>> Core to employ/disable different RBF policies. There is also a speculation
>> about making full RBF default in an year which isn't relevant to discuss at
>> this point without trying different RBF policies.
>>
>> I would suggest users to try Bitcoin Knots instead which already has an
>> option to disable all RBF policies if required, opt-in and full RBF policy.
>> This can also be done using GUI if not familiar with config
>> optionmempoolreplacement​.
>>
>> The rationale in PR #16171 was insufficient to justify removing it in the
>> first place, had 2 NACKs and was reopened to merge it. Why bother with a few
>> lines of code that may allow someone disable it if required in local mempool
>> since it's only useful when a big percentage of miners utilize it and
>> essentially underused according to the PR author? Developers should provide
>> basic RBF policy options rather than attempting to define what constitutes a
>> good policy and removing the ability to disable something when necessary.
>>
>> /dev/fd0
>>
>> Sent with [Proton Mail](https://proton.me/) secure email.
>>
>> ------- Original Message -------
>> On Tuesday, June 14th, 2022 at 5:55 AM, Antoine Riard via bitcoin-dev
>> <bitcoin-dev@lists.linuxfoundation.org> wrote:
>>
>>> Hi list,
>>>
>>> Recent discussions among LN devs have brought back on the surface concerns
>>> about the security of multi-party funded transactions (coinjoins,
>>> dual-funded LN channels, on-chain DLCs, ...). It turns out there is a
>>> low-fruit, naive DoS vector playable against the funding flow of any such
>>> construction due to the lack of existent full-rbf transaction-relay
>>> topology on today's p2p network [0] [1]. While it does not consist in a
>>> direct loss of funds, if exploited well I think it's annoying enough to
>>> inflict significant timevalue loss or fee-bumping waste
>>> to the future providers or distributed swarm of users doing multi-party
>>> funded transactions. Of course, it can be fixed one layer above by
>>> introducing either fidelity bonds or a reliable centralized coordinator,
>>> though at the price of an overhead per-participant ressources cost and loss
>>> in system openness [1].
>>>
>>> For that reason, I believe it would be beneficial to the flourishing of
>>> multi-party funded transactions to fix the Dos vector by seeing a subset of
>>> the network running full-rbf and enabling propagation of honest multi-party
>>> transactions to the interested miners, replacing potential non-signaling
>>> double-spend from a malicious counterparty. Moving towards that direction,
>>> I've submitted a small patch against Bitcoin Core enabling it to turn on
>>> full-rbf as a policy, still under review [3]. The default setting stays
>>> **false**, i.e keeping opt-in RBF as a default replacement policy. I've
>>> started to run the patch on a public node at 146.190.224.15.
>>>
>>> If you're a node operator curious to play with full-rbf, feel free to
>>> connect to this node or spawn up a toy, public node yourself. There is a
>>> ##uafrbf libera chat if you would like information on the settings or
>>> looking for full-rbf friends (though that step could be automated in the
>>> future by setting up a dedicated network bit and reserving a few outbound
>>> slots for them).
>>>
>>> If you're a mining operator looking to increase your income, you might be
>>> interested to experiment with full-rbf as a policy. Indeed, in the future I
>>> believe the multi-party transactions issuers who need full-rbf to secure
>>> their funding flow should connect by default to full-rbf peers. One can
>>> conjecture that their transactions are likely to be more compelling in
>>> their feerate as their liquidity needs are higher than the simple
>>> transaction. For today, I think we have really few standards and bitcoin
>>> softwares relying on multi-party funded transactions [4].
>>>
>>> If you're a Bitcoin user or business and you don't like full-rbf, please
>>> express an opinion on how it might affect your software/operations. I'm
>>> always interested to learn more about mempool and transaction-relay
>>> interactions with upper-layers and applications and to listen to feedback
>>> in those areas, and I guess a lot of other Bitcoin researchers/devs too. I
>>> know there have been a lot of concerns about full-rbf in the past, however
>>> I believe the Bitcoin ecosystem has matured a lot since then.
>>>
>>> Any mistakes or missing context is my own.
>>>
>>> Cheers,
>>> Antoine
>>>
>>> [0] For more info about replace-by-fee, see
>>> https://bitcoinops.org/en/topics/replace-by-fee/
>>>
>>> [1] For more details about the DoS vector, see
>>> https://lists.linuxfoundation.org/pipermail/lightning-dev/2021-May/003033.html
>>>
>>> [2] E.g I think it does not affect the Lightning Pool service, as there is
>>> a preliminary step where the participant funds are locked first in a 2-of-2
>>> with the coordinator before being committed in the multi-party batch
>>> transaction.
>>>
>>> [3] https://github.com/bitcoin/bitcoin/pull/25353
>>>
>>> [4] E.g DLCs :
>>> https://github.com/discreetlogcontracts/dlcspecs/blob/master/Transactions.md
>>> ; Lightning dual-funded channel :
>>> https://github.com/lightning/bolts/pull/851
>>
>> _______________________________________________
>> bitcoin-dev mailing list
>> bitcoin-dev@lists.linuxfoundation.org
>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev