Bitcoin Forum

Bitcoin => Bitcoin Technical Support => Topic started by: Oreyva on February 12, 2018, 04:17:21 PM



Title: Expected Core v0.16 Segwit/non-Segwit wallet handling
Post by: Oreyva on February 12, 2018, 04:17:21 PM
Trying to prepare and plan for Core v0.16:

Will wallets (including GUI wallet access) permit mixing different address types, or will the wallet itself have a "type"?

We count 3 address types for pay to (some sort of) key hash:  Non-Segwit "1" addresses, Segwit "3" addresses, Segwit Bech32.  It would be an easier transition to keep all in one wallet.  We try to avoid sweeping (unnecessary fees, coin merge, blockchain bloat).

Thanks in advance for any tips on how the new Core will handle this, and the best strategy to use it.


Title: Re: Expected Core v0.16 Segwit/non-Segwit wallet handling
Post by: cellard on February 12, 2018, 06:01:55 PM
Trying to prepare and plan for Core v0.16:

Will wallets (including GUI wallet access) permit mixing different address types, or will the wallet itself have a "type"?

We count 3 address types for pay to (some sort of) key hash:  Non-Segwit "1" addresses, Segwit "3" addresses, Segwit Bech32.  It would be an easier transition to keep all in one wallet.  We try to avoid sweeping (unnecessary fees, coin merge, blockchain bloat).

Thanks in advance for any tips on how the new Core will handle this, and the best strategy to use it.

I think I or someone else asked something similar, and the answer I remember is that from now on the default address creation will be the addresses that begin with "3", and also there will be no multi-wallet support, it will be the same wallet. So you will see in the list of recieving addresses, legacy addresses, nested addresses and bech32 addresses all mixed, which I find annoying because of X reasons, including the one you mentioned (I don't want to mix my legacy addresses with segwit addresses). I thought they were going to give us multi wallet support to be able to have a segwit wallet and a legacy wallet and keep things separated. So if you want to keep everything within the same wallet it must be good news for you. I will need to keep 2 wallets, keep the old one and then make a new wallet.dat for segwit.


Title: Re: Expected Core v0.16 Segwit/non-Segwit wallet handling
Post by: LoyceV on February 12, 2018, 06:19:16 PM
Oreyva's question got me curious, so I started looking for release notes (https://github.com/bitcoin-core/bitcoin-devwiki/wiki/0.16.0-Release-notes):
Quote
Bitcoin Core 0.16.0 introduces full support for segwit in the wallet and user interfaces. A new -addresstype argument has been added, which supports legacy, p2sh-segwit (default), and bech32 addresses.

~ and also there will be no multi-wallet support
Multi wallet support was introduced (https://bitcoin.org/en/release/v0.15.0.1#multi-wallet-support) in 0.15, although I haven't tested it. Are you saying they remove that again in 0.16?

Quote
So you will see in the list of recieving addresses, legacy addresses, nested addresses and bech32 addresses all mixed, which I find annoying because of X reasons, including the one you mentioned (I don't want to mix my legacy addresses with segwit addresses).
This doesn't bother me, as I always use coin control to choose which input I use anyway. I'd love to have all possible address types in the same wallet. Currently I can only use Electrum for Bech32-addresses, and it needs a separate wallet for this.


Title: Re: Expected Core v0.16 Segwit/non-Segwit wallet handling
Post by: achow101 on February 12, 2018, 10:59:52 PM
Will wallets (including GUI wallet access) permit mixing different address types, or will the wallet itself have a "type"?
You can have all 3 different address types in each wallet.

Multi wallet support was introduced (https://bitcoin.org/en/release/v0.15.0.1#multi-wallet-support) in 0.15, although I haven't tested it. Are you saying they remove that again in 0.16?
Multiwallet is still in 0.16. It is still just an RPC only thing, no GUI support yet.


Title: Re: Expected Core v0.16 Segwit/non-Segwit wallet handling
Post by: cellard on February 13, 2018, 01:18:04 PM
This doesn't bother me, as I always use coin control to choose which input I use anyway. I'd love to have all possible address types in the same wallet. Currently I can only use Electrum for Bech32-addresses, and it needs a separate wallet for this.

I always sue coin control myself. The main reason I use Bitcoin Core is because of that. Other wallets suck at dealing with inputs/outputs or not even give you the option to manage them which is ridiculous. But still, compartmentalized address types within wallets would be ideal imo.


Multiwallet is still in 0.16. It is still just an RPC only thing, no GUI support yet.

How far are we from multiwallet GUI support?


Title: Re: Expected Core v0.16 Segwit/non-Segwit wallet handling
Post by: LoyceV on February 13, 2018, 02:26:25 PM
But still, compartmentalized address types within wallets would be ideal imo.
If you sort them on "Received with address", you'll get pretty close to that.


Title: Re: Expected Core v0.16 Segwit/non-Segwit wallet handling
Post by: achow101 on February 13, 2018, 06:59:22 PM
How far are we from multiwallet GUI support?
We're pretty close. It will likely be in the next major release (0.17) but there is no guarantee. Basically it's just whenever this PR: https://github.com/bitcoin/bitcoin/pull/11383 gets merged.


Title: Re: Expected Core v0.16 Segwit/non-Segwit wallet handling
Post by: Oreyva on February 13, 2018, 07:25:42 PM
Will wallets (including GUI wallet access) permit mixing different address types, or will the wallet itself have a "type"?
You can have all 3 different address types in each wallet.

Thank you.

This doesn't bother me, as I always use coin control to choose which input I use anyway. I'd love to have all possible address types in the same wallet. Currently I can only use Electrum for Bech32-addresses, and it needs a separate wallet for this.

But still, compartmentalized address types within wallets would be ideal imo.
If you sort them on "Received with address", you'll get pretty close to that.

We think there is too much risk of mistakes.  A proper compartmentation needs no easy way to err.  Everybody makes a dumb mistake sometimes, especially when tired/stressed/whatever.

It is the same reason even an excellent driver cannot always drive at extreme speeds, without accident.

To be clear, we absolutely support mixing address types in the wallet.  We just don't see it as any security or coin compartmentation feature.  It's irrelevant.  Coins which must be separate, must be in separate wallets.

How far are we from multiwallet GUI support?
We're pretty close. It will likely be in the next major release (0.17) but there is no guarantee. Basically it's just whenever this PR: https://github.com/bitcoin/bitcoin/pull/11383 gets merged.

Segwit GUI support in v0.16 will be awesome.  Don't tell us we need to wait for more awe!