BCH Group Funding Transactions
Imagine a situation where users, who could be collaborating remotely in some project and who’ve never met each other before, need to collectively agree to make a group payment. Each member will chip in some BCH and everyone will pay for it together, like a group of friends would settle a restaurant bill.
One way to do it would be for each member to prepare a transaction and then send the TXID to a chosen coordinator, who whould gather the payments from each participant and make sure the overall purchase is settled.
This system implies that there is a central trusted entity – someone who would have the responsibility to collect the money, make the payment and then make sure it went through correctly so he could send everyone a receipt afterwards.
This is a fine strategy to adopt with friends, but for unknown parties who don’t trust each other there is a problem: it is not a decentralized solution. Whenever a middleman, an escrow or any other trusted party is required, the solution is no longer decentralized. You trust someone to get the job done.
The PSBT Solution
Enter Partially Signed Bitcoin Transactions (PSBT).
You may be familiar with the concept of a multi-signature, or multisig, system? In this type of system two or more people must sign a transaction in order for it to be valid.
Multisig payments had one limitation, though: the act of signing must be simultaneous. Everyone who agrees with a transaction must sign it at once before it is broadcast to the network.
Now imagine that there was a protocol such that a Bitcoin transaction that required multiple signatures was created but this transaction did not have to be built at once.
One user could sign today, another user could examine the TX and decide whether to sign later on and so forth. All this without a trusted intermediary!
That is what PSBT achieves. BIP 174 was proposed in mid 2017 to address exactly this scenario – and this system is already available in the current Bitcoin Cash Here’s a simple example scenario that illustrates how PSBT works.
To make a group payment, one of the group members creates a PSBT and adds unspent outputs, both his and other’s and the desired target output (who will receive the payment).
Other users whose inputs are included in the PSBT receive the transaction by email or chat.
The user analyzes the inputs, outputs and amounts and decides whether it’s correct or not. If there is agreement, the user then adds his signature to the PSBT.
Once every participant has added their signature, the PSBT is complete. It is then compiled into a regular multisig Bitcoin transaction just as if it had been signed simultaneously. The TX is transmitted and mined like any other transaction.
That is how PSBT’s work! Fully decentralized – no single entity needs to be relied on or trusted to coordinate and distribute funds.
Users must only know each others’s Bitcoin addresses. This is a requirement for all Bitcoin payment processing anyway. So the only manual coordination that is needed between users is to know each others’ addresses. For which they can coordinate via email or chat.
DEX White-Label Product
PSBT BIP 174 Andrew Chow
Third-Party Library Implementation
PSBT Trustless Txs
BIP 174 – Reference Implementation
DEX Automatic MarketMakers