Author: Sjors Provoost 2021-08-05 14:27:12
Published on: 2021-08-05T14:27:12+00:00
Bitcoin Core developer, Andrew Chow, has proposed to formalize the Output Script Descriptors in a set of 7 BIPs. The descriptors are used to describe collections of output scripts, and this format offers a generic solution to issues with wallet backups and exports. The 7 BIPs specify the actual descriptors themselves, which include non-segwit descriptors (pk, pkh, sh), segwit descriptors (wpkh, wsh), multisig descriptors (multi, sortedmulti), the taproot descriptor (tr), the combo descriptor, and opaque descriptors (raw, addr). In addition, the proposal suggests dropping the combo() descriptor, and that software normalizes the use of h vs '. There is also an idea of including a birth date and a metadata format to track birth data, gap limit, and other needed information for future wallets.Another document outlines the specifications for Bitcoin output script descriptors, specifically for P2WPKH and P2WSH formats (wpkh() and wsh() expressions), as well as P2PK, P2PKH, and P2SH formats (pk(), pkh(), and sh() expressions). These expressions allow for the specification of standard output script formats within a descriptor. Additionally, the tr() expression is introduced to specify the P2TR output script format, which can take a key and an optional tree of scripts to produce. The backward compatibility of these descriptors is discussed, noting that while they are not compatible with existing software, the scripts produced are standard and familiar to existing software. Finally, the document notes that these descriptors have been implemented in Bitcoin Core since version 0.17.This document specifies several output script descriptors which can be used in Bitcoin. The descriptors include tr(), tr(KEY, TREE), multi(), sortedmulti(), combo(), raw(HEX), and addr(ADDR). All of these descriptors use the format and general operation specified in bip-descriptor-general.As of 2021-06-27, the only allowed script expression that can be used in a tree expression is pk(). However, there will be future BIPs that specify script expressions that can be used in tree expressions. These descriptors have been implemented in Bitcoin Core since version 0.17, except for tr() descriptors which have been implemented since version 22.0.
Updated on: 2023-06-14T23:47:07.781707+00:00