LearnBitcoin

Bitcoin Dev Archive 2024

Redefine packages to discourage address reuse

6 messages, 20 to 29 Oct 2024. Started by /dev /fd0.

/dev /fd0 (3), Peter Todd (2), sadiq Ismail

Permalink Original thread on gnusha.org

/dev /fd0 permalink original

Hi Bitcoin Developers,

Address re-use is bad for privacy and such transactions affect everyone involved. A mempool policy to reject such transactions will be useless, however packages could be redefined to avoid address re-use in package transactions.

BIP 331 defines packages as a list of unconfirmed transactions, representable by a connected Directed Acyclic Graph (a directed edge exists between a transaction that spends the output of another transaction). With the new definition, transactions with address reuse cannot be a part of package relayed by nodes with SENDPACKAGES P2P message.

The only downside that I could think of is the scanning time required to check address reuse. Maybe others could suggest solutions for this problem or we can limit the address reuse check only for the chain of transactions.

I am not sure if BIP author would agree with this change and a new BIP wont make a difference if its not implemented in bitcoin core.

/dev/fd0 floppy disk guy

sadiq Ismail in reply to /dev /fd0 permalink original

Hi Floppy

Quoted text (1 line)
> however packages could be redefined to avoid address >re-use in package

transactions.

What type of redefinition are you talking about here, is this not policy rule still.

I don't think it's good for a node to reject an incentive compatible transaction in a package because it reuses an address. I believe miners won't.

Quoted text (1 line)
> The only downside that I could think of is the scanning time required to

check address reuse. Maybe others could suggest solutions for this problem or we can limit the address reuse check only for the chain of transactions.

Other disadvantage of this is that it will affect compact block reconstruction, nodes fee estimation.

Wouldn't it be better to encourage using other safe mitigations of address reuse like silent payments?

Abubakar

On Sun, Oct 20, 2024, 8:01 AM /dev /fd0 <alicexbtong@gmail•com> wrote:

Quoted text (33 lines)
> Hi Bitcoin Developers,
>
> Address re-use is bad for privacy and such transactions affect everyone
> involved. A mempool policy to reject such transactions will be useless,
> however packages could be redefined to avoid address re-use in package
> transactions.
>
> BIP 331 defines packages as a list of unconfirmed transactions,
> representable by a connected Directed Acyclic Graph (a directed edge exists
> between a transaction that spends the output of another transaction). With
> the new definition, transactions with address reuse cannot be a part of
> package relayed by nodes with SENDPACKAGES P2P message.
>
> The only downside that I could think of is the scanning time required to
> check address reuse. Maybe others could suggest solutions for this problem
> or we can limit the address reuse check only for the chain of transactions.
>
> I am not sure if BIP author would agree with this change and a new BIP
> wont make a difference if its not implemented in bitcoin core.
>
> /dev/fd0
> floppy disk guy
>
> --
> You received this message because you are subscribed to the Google Groups
> "Bitcoin Development Mailing List" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to bitcoindev+unsubscribe@googlegroups•com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/bitcoindev/b383aad2-1abc-4b82-9851-1750b1b52f12n%40googlegroups.com
> <https://groups.google.com/d/msgid/bitcoindev/b383aad2-1abc-4b82-9851-1750b1b52f12n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
Peter Todd in reply to /dev /fd0 permalink original

On Sat, Oct 19, 2024 at 11:19:15PM -0700, /dev /fd0 wrote:

Quoted text (12 lines)
> Hi Bitcoin Developers,
>
> Address re-use is bad for privacy and such transactions affect everyone
> involved. A mempool policy to reject such transactions will be useless,
> however packages could be redefined to avoid address re-use in package
> transactions.
>
> BIP 331 defines packages as a list of unconfirmed transactions,
> representable by a connected Directed Acyclic Graph (a directed edge exists
> between a transaction that spends the output of another transaction). With
> the new definition, transactions with address reuse cannot be a part of
> package relayed by nodes with SENDPACKAGES P2P message.

This kind of idea has been proposed multiple times and rejected.

In this particular case, an especially bad problem with it is there are probably L2 protocols that actually need to reuse addresses in certain circumstances. There are likely to also be situations where an adversary can trigger unintentional address reuse, and thus get transactions pinned by this filter.

For these reasons alone, NACK.

/dev /fd0 in reply to sadiq Ismail permalink original

Hi Abubakar,

Quoted text (1 line)
> I don't think it's good for a node to reject an incentive compatible

transaction in a package because it reuses an address. I believe miners won't.

The transactions are not rejected. They will continue to work as they did before packages existed. It is incentive compatible and does not reduce miner revenue.

Quoted text (1 line)
> Other disadvantage of this is that it will affect compact block

reconstruction, nodes fee estimation.

It wont.

Quoted text (1 line)
> Wouldn't it be better to encourage using other safe mitigations of

address reuse like silent payments?

Silent payments are used for reusable payment codes that help in creating multiple addresses. Its not a protocol change that discourages address reuse on-chain.

/dev/fd0 floppy disk guy

On Monday, October 21, 2024 at 9:09:35 PM UTC+5:30 Abubakar Ismail wrote:

Quoted text (61 lines)
> Hi Floppy
>
> > however packages could be redefined to avoid address >re-use in package
> transactions.
>
> What type of redefinition are you talking about here, is this not policy
> rule still.
>
> I don't think it's good for a node to reject an incentive compatible
> transaction in a package because it reuses an address. I believe miners
> won't.
>
> > The only downside that I could think of is the scanning time required to
> check address reuse. Maybe others could suggest solutions for this problem
> or we can limit the address reuse check only for the chain of transactions.
>
> Other disadvantage of this is that it will affect compact block
> reconstruction, nodes fee estimation.
>
>
> Wouldn't it be better to encourage using other safe mitigations of address
> reuse like silent payments?
>
> Abubakar
>
> On Sun, Oct 20, 2024, 8:01 AM /dev /fd0 <alice...@gmail•com> wrote:
>
>> Hi Bitcoin Developers,
>>
>> Address re-use is bad for privacy and such transactions affect everyone
>> involved. A mempool policy to reject such transactions will be useless,
>> however packages could be redefined to avoid address re-use in package
>> transactions.
>>
>> BIP 331 defines packages as a list of unconfirmed transactions,
>> representable by a connected Directed Acyclic Graph (a directed edge exists
>> between a transaction that spends the output of another transaction). With
>> the new definition, transactions with address reuse cannot be a part of
>> package relayed by nodes with SENDPACKAGES P2P message.
>>
>> The only downside that I could think of is the scanning time required to
>> check address reuse. Maybe others could suggest solutions for this problem
>> or we can limit the address reuse check only for the chain of transactions.
>>
>> I am not sure if BIP author would agree with this change and a new BIP
>> wont make a difference if its not implemented in bitcoin core.
>>
>> /dev/fd0
>> floppy disk guy
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Bitcoin Development Mailing List" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to bitcoindev+...@googlegroups•com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/bitcoindev/b383aad2-1abc-4b82-9851-1750b1b52f12n%40googlegroups.com
>> <https://groups.google.com/d/msgid/bitcoindev/b383aad2-1abc-4b82-9851-1750b1b52f12n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>
/dev /fd0 in reply to Peter Todd permalink original

Hi Peter,

Quoted text (1 line)
> This kind of idea has been proposed multiple times and rejected.

This is the first time packages are used in bitcoin. My proposal is limited to packages.

Quoted text (3 lines)
> In this particular case, an especially bad problem with it is there are
> probably L2 protocols that actually need to reuse addresses in certain
> circumstances.

Can you share an example?

Packages will be used with covenants, inscriptions etc. apart from L2 protocols and I think there would be lot of address-reuse which can be prevented by redefining the packages early.

/dev/fd0 floppy disk guy

On Wednesday, October 23, 2024 at 8:47:41 PM UTC+5:30 Peter Todd wrote:

Quoted text (29 lines)
> On Sat, Oct 19, 2024 at 11:19:15PM -0700, /dev /fd0 wrote:
> > Hi Bitcoin Developers,
> >
> > Address re-use is bad for privacy and such transactions affect everyone
> > involved. A mempool policy to reject such transactions will be useless,
> > however packages could be redefined to avoid address re-use in package
> > transactions.
> >
> > BIP 331 defines packages as a list of unconfirmed transactions,
> > representable by a connected Directed Acyclic Graph (a directed edge
> exists
> > between a transaction that spends the output of another transaction).
> With
> > the new definition, transactions with address reuse cannot be a part of
> > package relayed by nodes with SENDPACKAGES P2P message.
>
> This kind of idea has been proposed multiple times and rejected.
>
> In this particular case, an especially bad problem with it is there are
> probably L2 protocols that actually need to reuse addresses in certain
> circumstances. There are likely to also be situations where an adversary
> can trigger unintentional address reuse, and thus get transactions
> pinned by this filter.
>
> For these reasons alone, NACK.
>
> --
> https://petertodd.org 'peter'[:-1]@petertodd.org
>
Peter Todd in reply to /dev /fd0 permalink original

On Wed, Oct 23, 2024 at 08:43:50PM -0700, /dev /fd0 wrote:

Quoted text (12 lines)
> Hi Peter,
>
> > This kind of idea has been proposed multiple times and rejected.
>
> This is the first time packages are used in bitcoin. My proposal is limited
> to packages.
>
> > In this particular case, an especially bad problem with it is there are
> > probably L2 protocols that actually need to reuse addresses in certain
> > circumstances.
>
> Can you share an example?

For example in Lightning you can do closes to arbitrary addresses. An adversary could pick an address that they know you will use in a package to cause package propagation to fail, effectively resulting in a form of transaction pinning.

There's no reason to add this complexity for essentially zero gain.

Quoted text (3 lines)
> Packages will be used with covenants, inscriptions etc. apart from L2
> protocols and I think there would be lot of address-reuse which can be
> prevented by redefining the packages early.

Packages tell chainalysis services that the transactions are related and probably created by the same person anyway. Avoiding address reuse in them doesn't improve privacy meaningfully.