Skip to content

Conversation

@rodentrabies
Copy link
Contributor

@rodentrabies rodentrabies commented Jan 16, 2023

This is a draft implementation for #26526 and #26527. As suggested by 0xB10C, back-dating locktime in transactions that are RBF replacements or spend unconfirmed UTXOs may be used as a fingerprint of Bitcoin Core wallet.

@DrahtBot
Copy link
Contributor

DrahtBot commented Jan 16, 2023

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Reviews

See the guideline for information on the review process.

Type Reviewers
Concept ACK 0xB10C

If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

Conflicts

Reviewers, this pull request conflicts with the following ones:

  • #28944 (wallet, rpc: add anti-fee-sniping to send and sendall by ishaanam)
  • #25273 (wallet: Pass through transaction locktime and preset input sequences and scripts to CreateTransaction by achow101)
  • #24128 (wallet: BIP 326 sequence based anti-fee-snipe for taproot inputs by maflcko)

If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

@0xB10C
Copy link
Contributor

0xB10C commented Jan 17, 2023

Concept ACK. Thanks for picking this up!

(Please drop the @ from the @0xB10C mention from the PR description. This creates notifications if software-forks of Bitcoin Core include this commit too. )

@S3RK
Copy link
Contributor

S3RK commented Jan 19, 2023

Do we want to align the implementation with Electrum? spesmilo/electrum#8073

I'm not sure if that could be a source of further fingerprinting

@rodentrabies rodentrabies force-pushed the avoid-locktime-backdating branch 3 times, most recently from 479c7cc to 832af31 Compare March 20, 2023 22:30
@rodentrabies rodentrabies force-pushed the avoid-locktime-backdating branch from 832af31 to a97bd1b Compare April 23, 2023 19:32
@rodentrabies rodentrabies force-pushed the avoid-locktime-backdating branch from a97bd1b to 0303616 Compare April 24, 2023 20:30
Copy link
Contributor

@ishaanam ishaanam left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a good start, but I think that these transactions would be harder to fingerprint if the following modifications were made:

  1. For RBF transactions: the nLockTime is set to the same value as the transaction being replaced.
  2. For spending unconfirmed utxos: Use the same behavior as before, but make sure that the nLockTIme value is greater than or equal to the highest nLockTIme of the inputs.

For convenience I've implemented this here: ishaanam@eb92a9a

@achow101 achow101 requested a review from 0xB10C September 20, 2023 17:03
@achow101
Copy link
Member

Are you still working on this?

@DrahtBot
Copy link
Contributor

🐙 This pull request conflicts with the target branch and needs rebase.

@fanquake
Copy link
Member

fanquake commented Mar 6, 2024

Closing for now. Can be reopened if picked back up etc. Looks like the user is no-longer on GH.

@fanquake fanquake closed this Mar 6, 2024
@jgabarda

This comment has been minimized.

@bitcoin bitcoin locked and limited conversation to collaborators Aug 5, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants