0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-03-11 15:56:58 -04:00
bitcoin-core/src/wallet
Wladimir J. van der Laan cebe910718
Merge #15039: wallet: Avoid leaking nLockTime fingerprint when anti-fee-sniping
fa48baf23e wallet: Avoid leaking locktime fingerprint when anti-fee-sniping (MarcoFalke)
453803adc9 [test] wallet_txn_clone: Correctly clone txin sequence (MarcoFalke)

Pull request description:

  The wallet sets the locktime to the current height of our active chain. This is fine, as long as our node is connected to other nodes. However, when we fall back and get stuck at a particular height (e.g. taking the wallet offline), the same (potentially unique) locktime is used for all transactions. This makes it easier for passive observers to cluster transactions by wallet.

  For reference, I visualized "locktime-reuse" with the data:
  * blocks 545k-555k (both inclusive)
  * locktimes<=60k
  * excluding coinbase txs

  ![distribution of height-based tx locktimes used at least twice](https://user-images.githubusercontent.com/6399679/50446163-b8256d80-0913-11e9-9832-40b76052b2b9.png)

Tree-SHA512: 2af259dd8f9f863312e2732d80ca8ba6a20c8d6d1c486b10a48479e1c85ccf13b0c38723740ebadde0f28d321cd9c133ad3e5d1e925472eb27681143bda2d0e7
2019-01-10 15:56:54 +01:00
..
test test: Run invalid_txs.InputMissing test in feature_block 2019-01-05 14:51:25 +01:00
coincontrol.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
coincontrol.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
coinselection.cpp Introduce a Shuffle for FastRandomContext and use it in wallet and coinselection 2018-12-12 14:22:12 -08:00
coinselection.h amount: Move CAmount CENT to unit test header 2018-09-17 14:34:56 -04:00
crypter.cpp Merge #14478: Show error to user when corrupt wallet unlock fails 2018-11-14 11:27:01 -05:00
crypter.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
db.cpp Merge #14760: Log env path in BerkeleyEnvironment::Flush 2018-12-04 11:34:43 +01:00
db.h wallet: Create IsDatabaseLoaded function 2018-11-08 11:54:37 +08:00
feebumper.cpp Pass chain locked variables where needed 2018-11-06 11:44:40 -04:00
feebumper.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
fees.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
fees.h Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
init.cpp Remove direct node->wallet calls in init.cpp 2018-11-06 11:44:40 -04:00
rpcdump.cpp Overhaul importmulti logic 2018-12-12 16:32:33 -08:00
rpcwallet.cpp Use C++11 default member initializers 2019-01-05 16:16:37 +01:00
rpcwallet.h Simplify arguments to SignPSBTInput 2018-11-01 12:11:24 -07:00
wallet.cpp wallet: Avoid leaking locktime fingerprint when anti-fee-sniping 2018-12-27 13:03:10 +01:00
wallet.h Use C++11 default member initializers 2019-01-05 16:16:37 +01:00
walletdb.cpp Use C++11 default member initializers 2019-01-05 16:16:37 +01:00
walletdb.h [wallet] Kill accounts 2018-08-30 16:08:42 +02:00
walletutil.cpp Merge #14350: Add WalletLocation class 2018-11-05 13:17:03 +01:00
walletutil.h wallet: Add WalletLocation utility class 2018-10-25 11:53:17 +01:00