What Is a Partially Signed Bitcoin Transaction (PSBT)?
A Partially Signed Bitcoin Transaction (PSBT) is a Bitcoin standard for transactions that are not yet fully signed, allowing multiple parties to easily sign the same transaction. PSBT was introduced in BIP 174, which was designed to improve the interoperability between different wallets, making it easier to conduct complex transactions that require multiple signatures.
The PSBT standard defines a precise format for conveying Bitcoin transactions. This format can carry metadata about a transaction to make signing and verifying the transaction easier for signers. The standard also defines the process for combining and finalizing transactions, so multiple parties can sign the same transaction in parallel and then combine their respective PSBTs to form a fully signed transaction.
What are Partially Signed Bitcoin Transactions Used For?
Partially Signed Bitcoin Transactions are essential for trustless atomic swaps, allowing users to exchange assets across different blockchains without needing a third party. PSBTs are also crucial for multi-signature (multi-sig) wallets, enabling multiple parties to sign a transaction securely. Additionally, PSBTs are used in offline payments and transactions involving cold hardware wallets. They allow users to sign transactions securely on offline devices, keeping private keys safe from online threats.
Partially Signed Bitcoin Transactions offer several advantages to the Bitcoin community and make previously complicated transaction protocols simpler and more easily verifiable.
- Interoperability: PSBTs were originally designed to enhance interoperability between wallets and other Bitcoin software, making transactions more portable between wallets and nodes. PSBT has succeeded to a large extent in gaining industry adoption by all major wallet providers and node softwares.
- Offline Signing: The PSBT format provides useful metadata to assist cold devices in verifying the addresses and amounts being sent in the transaction they are signing. This makes signing a transaction from cold storage more secure and makes it easier to craft a transaction using a watch-only wallet, sign it using a cold wallet, and broadcast it with a Bitcoin node.
- Multi-Signature Signing: Because PSBT makes a partially signed transaction portable and recognizable, a transaction can be signed by multiple parties or devices easily and securely, making multisig more usable. User-friendly multisig will have second-order benefits for the Bitcoin community, including superior privacy, security, and loss prevention.
- Multi-party Transactions: PSBT is particularly useful for coordinating between parties who wish to sign the same transaction. For example, CoinJoin, CoinSwap, and PayJoin protocols require multiple different parties to all sign the same transaction. The PSBT format provides a method for constructing a transaction, passing it between the different signers, and then assembling the final transaction to be broadcast.
How Do Partially Signed Bitcoin Transactions Work?
PSBTs work by encapsulating the information necessary for multiple parties to independently sign a Bitcoin transaction without needing to share sensitive information. PSBTs are useful in a variety of cases. For example, in order to construct a CoinJoin transaction with five participants, all five participants would send a message to a coordinator containing some UTXOs they would like to CoinJoin. Each participant would also provide addresses where the CoinJoin transaction should return their bitcoin.
The coordinator would construct a transaction with each of these UTXOs as an input, and create the appropriate outputs to distribute the same amount of bitcoin back to each participant.
Next, the coordinator would convert this transaction to a PSBT, and send the PSBT to each of the five participants. Each participant would separately add their own signatures to the PSBT, and return the PSBTs to the coordinator, who would then combine the five PSBTs, and finalize it. The result would be a fully signed transaction with inputs from each participant.
This process is completely trustless. Even though each member relied on the coordinator to create and finalize the PSBT, neither the coordinator nor any participant was ever capable of stealing funds from other participants.
Adoption of Partially Signed Bitcoin Transactions
Partially Signed Bitcoin Transactions (PSBT) were introduced in Bitcoin Core version 0.17.0 in 2018 and formally defined in Bitcoin Improvement Proposal (BIP) 174. PSBTs improve how different wallet software and devices work together, making transactions more secure and efficient.
However, the PSBT standard does have several drawbacks, which is why work is currently being done to develop a PSBT v2 standard. In particular, constructing a transaction by adding inputs iteratively is inefficient, and PSBT files can grow relatively large, especially for hardware wallets, which typically have minimal memory.
For the time being, however, PSBT is greatly advancing interoperability between Bitcoin software and hardware, facilitating CoinJoins and other cooperative transaction types, and making multisig easier to use.
Key Takeaways
- Partially Signed Bitcoin Transactions are a Bitcoin standard that makes communicating and signing unsigned transactions easier for wallets and nodes.
- The PSBT standard increases interoperability between different Bitcoin software and hardware.
- The PSBT standard facilitates multisig, CoinJoin, and other more complicated transaction types in a trustless manner.