0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-03-09 15:37:00 -04:00
bitcoin-core/src/wallet
Wladimir J. van der Laan 487dcbe80c
Merge #13002: Do not treat bare multisig outputs as IsMine unless watched
7d0f80b Use anonymous namespace instead of static functions (Pieter Wuille)
b61fb71 Mention removal of bare multisig IsMine in release notes (Pieter Wuille)
9c2a8b8 Do not treat bare multisig as IsMine (Pieter Wuille)
08f3228 Optimization: only test for witness scripts at top level (Pieter Wuille)
3619735 Track difference between scriptPubKey and P2SH execution in IsMine (Pieter Wuille)
ac6ec62 Switch to a private version of SigVersion inside IsMine (Pieter Wuille)
19fc973 Do not expose SigVersion argument to IsMine (Pieter Wuille)
fb1dfbb Remove unused IsMine overload (Pieter Wuille)
952d821 Make CScript -> CScriptID conversion explicit (Pieter Wuille)

Pull request description:

  Currently our wallet code will treat bare multisig outputs (meaning scriptPubKeys with multiple public keys + `OP_CHECKMULTISIG` operator in it) as ours without the user asking for it, as long as all private keys in it are in our wallet.

  This is a pointless feature. As it only works when all private keys are in one place, it's useless compared to single key outputs (P2PK, P2PKH, P2WPKH, P2SH-P2WPKH), and worse in terms of space, cost, UTXO size, and ability to test (due to lack of address format for them).

  Furthermore, they are problematic in that producing a list of all `scriptPubKeys` we accept is not tractable (it involves all combinations of all public keys that are ours). In further wallet changes I'd like to move to a model where all scriptPubKeys that are treated as ours are explicit, rather than defined by whatever keys we have. The current behavior of the wallet is very hard to model in such a design, so I'd like to get rid of it.

  I think there are two options:
  * Remove it entirely (do not ever accept bare multisig outputs as ours, unless watched)
  * Only accept bare multisig outputs in situations where the P2SH version of that output would also be acceptable

  This PR implements the first option. The second option was explored in #12874.

Tree-SHA512: 917ed45b3cac864cee53e27f9a3e900390c576277fbd6751b1250becea04d692b3b426fa09065a3399931013bd579c4f3dbeeb29d51d19ed0c64da75d430ad9a
2018-04-26 20:10:12 +02:00
..
test wallet: Add AddWallet, RemoveWallet, GetWallet and GetWallets 2018-04-18 22:07:33 +01:00
coincontrol.h wallet: Make fee settings non-static members 2018-04-23 10:49:21 -04:00
coinselection.cpp Move current coin selection algorithm to coinselection.{cpp,h} 2018-03-13 12:39:26 -04:00
coinselection.h Fix missing or inconsistent include guards 2018-03-22 16:23:04 +01:00
crypter.cpp Merge #11403: SegWit wallet support 2018-01-10 20:55:41 -10:00
crypter.h tests: Avoid test suite name collision in wallet crypto_tests 2018-04-06 16:29:14 +02:00
db.cpp Merge #11851: scripted-diff: Rename wallet database classes 2018-04-09 19:29:54 +02:00
db.h scripted-diff: Rename wallet database classes 2018-04-07 11:48:27 -05:00
feebumper.cpp wallet: Make fee settings non-static members 2018-04-23 10:49:21 -04:00
feebumper.h feebumper: Use PreconditionChecks to determine bump eligibility 2018-01-29 18:31:33 -05:00
fees.cpp wallet: Make fee settings non-static members 2018-04-23 10:49:21 -04:00
fees.h wallet: Make fee settings non-static members 2018-04-23 10:49:21 -04:00
init.cpp Merge #12909: wallet: Make fee settings to be non-static members 2018-04-24 16:37:30 +02:00
rpcdump.cpp Make CScript -> CScriptID conversion explicit 2018-04-18 17:08:50 -07:00
rpcwallet.cpp Merge #12909: wallet: Make fee settings to be non-static members 2018-04-24 16:37:30 +02:00
rpcwallet.h Split signrawtransaction into wallet and non-wallet 2018-02-17 11:42:00 -05:00
wallet.cpp wallet: Make fee settings non-static members 2018-04-23 10:49:21 -04:00
wallet.h wallet: Make fee settings non-static members 2018-04-23 10:49:21 -04:00
walletdb.cpp wallet: Add AddWallet, RemoveWallet, GetWallet and GetWallets 2018-04-18 22:07:33 +01:00
walletdb.h [wallet] [rpc] introduce 'label' API for wallet 2018-04-10 19:27:22 -04:00
walletutil.cpp Don't allow relative -walletdir paths 2018-01-18 15:09:27 -05:00
walletutil.h Fix missing or inconsistent include guards 2018-03-22 16:23:04 +01:00