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