New PSBT version proposal



Summary:

A new version of the Partially Signed Bitcoin Transaction format, PSBT Version 2 (PSBTv2), has been proposed. It allows for inputs and outputs to be added to the transaction after its creation. This eliminates the need to find data in two different places as all information related to a given input or output will be provided by its PSBT. PSBTv2 includes new fields and field inclusion/exclusion requirements. It must exclude PSBT_GLOBAL_UNSIGNED_TX but include PSBT_GLOBAL_VERSION set to version number 2. PSBTv2 introduces new roles and modifies some existing roles such as Constructor, Updater, Signer, and Transaction Extractor. The reference implementation of the PSBT format is available at https://github.com/achow101/bitcoin/tree/psbt2. Another version of PSBT, PSBT v1, has also been proposed to address deficiencies in the current PSBT v0. Several fields are to be added to the Global, Input, and Output categories respectively in order to make PSBT more usable in transaction construction. PSBT_GLOBAL_PREFERRED_LOCKTIME is changed to purely be the fallback option if no input lock time fields are present. If there are input lock times, all lock time calculations must ignore it. Additionally, a new global field, PSBT_GLOBAL_UNDER_CONSTRUCTION = 0x05, is proposed to signal whether inputs and outputs can be added to the PSBT. Furthermore, these newly added inputs must follow additional lock time rules. Lastly, to uniquely identify transactions for combiners, a txid can be computed from the information present in the PSBT.


Updated on: 2023-05-21T00:16:47.114898+00:00