Password-protected wallet on Taproot

Password-protected wallet on Taproot
2022-05-04  0:26 ` Lloyd Fournier
  
From: vjudeu @ 2022-05-01 16:18 UTC (permalink / raw)
  To: bitcoin-dev

It seems that Taproot allows us to protect each individual public key with a password. It could work in this way: we have some normal, Taproot-based public key, that is generated in a secure and random way, as it is today in Bitcoin Core wallet. Then, we can create another public key, just by taking password from the user, executing SHA-256 on that, and using it as a private key, so the second key will be just a brainwallet. Then, we can combine them in a Schnorr signature, forming 2-of-2 multisig, where the first key is totally random, and the second key is just a brainwallet that takes a password chosen by the user. By default, each key can be protected with the same password, used for the whole wallet, but it could be possible to choose different passwords for different addresses, if needed. Descriptors should handle that nicely, in the same way as they can be used to handle any other 2-of-2 multisig.


 permalink raw reply	[|nested]
2022-05-01 16:18 [bitcoin-dev] Password-protected wallet on Taproot vjudeu

  
From: Lloyd Fournier @ 2022-05-04  0:26 UTC ( / )
  To: vjudeu, Bitcoin Protocol Discussion



Hi Vjudeu,

Perhaps this could make sense in some setting. e.g. instead of a hardware
device which protects your secret key via pin you use a pinless device but
you create a strong password and use a proper password hash to create
another key and put them in a 2-of-2. But make sure you don't use sha256 to
hash the password. Use a proper password hash. Keep in mind there's also
bip39 passwords which do a similar but this does involve entering them into
the possibly malicious hardware device.

Cheers,

LL

On Mon, 2 May 2022 at 03:56, vjudeu via bitcoin-dev <
bitcoin-dev@lists•linuxfoundation.org> wrote:

> It seems that Taproot allows us to protect each individual public key with
> a password. It could work in this way: we have some normal, Taproot-based
> public key, that is generated in a secure and random way, as it is today in
> Bitcoin Core wallet. Then, we can create another public key, just by taking
> password from the user, executing SHA-256 on that, and using it as a
> private key, so the second key will be just a brainwallet. Then, we can
> combine them in a Schnorr signature, forming 2-of-2 multisig, where the
> first key is totally random, and the second key is just a brainwallet that
> takes a password chosen by the user. By default, each key can be protected
> with the same password, used for the whole wallet, but it could be possible
> to choose different passwords for different addresses, if needed.
> Descriptors should handle that nicely, in the same way as they can be used
> to handle any other 2-of-2 multisig.
> _______________________________________________
> bitcoin-dev mailing list
> bitcoin-dev@lists•linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>