-
Notifications
You must be signed in to change notification settings - Fork 966
Taproot keys implementation strategy #588
Copy link
Copy link
Closed
Labels
API breakThis PR requires a version bump for the next releaseThis PR requires a version bump for the next releaseminor API ChangeThis PR should get a minor version bumpThis PR should get a minor version bump
Milestone
Description
After #561 (comment) and #561 (comment)
- Leave
bitcoin::PublicKeyas is, probably addingbitcoin::util::ecdsa::PublicKeyalias to it (the same for private keys). - Re-export Taproot keys under
bitcoin::util::schnorr - Change
ExtendedP(ub/priv)Keyto holdsecp256k1::Keyrather than bitcoin equivalents. It is a necessary change anyway, since BIP32 does not support uncompressed keys and using type with compression flag is a mistake - Introduce to
Extended*key*functionsto_ecdsa(returning always compressed ECDSA key) andto_shchnorr.
... and that's all for the first non-API breaking release.
Next, more invasive change will be:
- Remove
bitcoin::PublicKeytype - Create
UncompressedKeytypes (for legacy purposes) and - Introduce
PublicKeyenum with justCompressedandTaprootvariants (such that it can be used in SegWit miniscript/descriptor context without the need for errors/panics).
The first phase is implemented with the following PRs:
- Non-API breaking changes for
0.26.1Non-API breaking introduction of Schnorr keys #589 - API-breaking changes to Extended keys internal key representation: Taproot: BIP32 extended keys using Scep256k1 keys instead of bitcoin ECDSA #590
- API-breaking changes to PSBT internal BIP32 key representation: PSBT BIP32 keys using to Secp256k1 keys instead of bitcoin ECDSA #591
- Minimally-invasive separation of bitcoin keys from ECDSA signature types #757
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
API breakThis PR requires a version bump for the next releaseThis PR requires a version bump for the next releaseminor API ChangeThis PR should get a minor version bumpThis PR should get a minor version bump