You probably have two PSBTs of the identical transaction, you’ll be able to mix signatures from them to finish a transaction. Nevertheless, it appears to me that you’re speaking about two PSBTs of totally different transactions.
Typically signatures decide to the whole transaction utilizing the SIGHASH_ALL
sighash flag. In that case, you can not switch a signature from one transaction to a distinct one. As the brand new transaction has totally different inputs or outputs, the signature from the unique transaction would now not decide to the brand new transaction’s set of inputs and outputs and can be invalid within the context of the brand new transaction.
The exception is when you might have a signature that doesn’t decide to different inputs and simply to 1 output (SIGHASH_SINGLE
|SIGHASH_ANYONECANPAY
) or no output (SIGHASH_NONE
|SIGHASH_ANYONECANPAY
). Within the first case, you’ll be able to transfer one particular enter and output pair to a brand new transaction, or within the second case even use the enter on any transaction you want. On condition that the previous has very restricted functions and the latter is outright signing your cash away to anybody that wishes it, these signature hash sorts get used sometimes.
Due to this fact, you shouldn’t count on that combining two separate PSBTs to be attainable with out redoing all signatures, as all inputs shall be signed nearly solely with SIGHASH_ALL
.
You possibly can learn extra about Bitcoin’s signature hash sorts in Raghav Sood’s glorious weblog submit on that matter, or within the Signatures chapter of Mastering Bitcoin third Version.