mirror of
https://github.com/bitcoin/bips.git
synced 2025-03-04 11:08:05 +01:00
BIP78: Clarify output substitution
The original text is ambiguous to allowing transaction cut-through or not. Transaction cut-through enables savings by posting multiple transaction intents through a single 2-party payjoin and is used in practice in payjoins today. Let's explicitly allow it in the text. Co-authored-by: Martin Habovstiak <martin.habovstiak@gmail.com>
This commit is contained in:
parent
539fd85498
commit
72d8bb04b8
1 changed files with 2 additions and 2 deletions
|
@ -116,7 +116,7 @@ The payjoin proposal MUST:
|
|||
* Only fill the <code>witnessUTXO</code> or <code>nonWitnessUTXO</code> for the additional inputs.
|
||||
|
||||
The payjoin proposal MAY:
|
||||
* Add, remove or modify the outputs belonging to the receiver.
|
||||
* Add, or replace the outputs belonging to the receiver unless output substitution is disabled.
|
||||
|
||||
The payjoin proposal SHOULD NOT:
|
||||
* Include mixed input types until September 2024. Mixed inputs were previously completely disallowed so this gives some grace period for senders to update.
|
||||
|
@ -329,7 +329,7 @@ On top of this the receiver can poison analysis by randomly faking a round amoun
|
|||
|
||||
===<span id="output-substitution"></span>Payment output substitution===
|
||||
|
||||
Unless disallowed by sender explicitly via `disableoutputsubstitution=true` or by the BIP21 url via query parameter the `pjos=0`, the receiver is free to decrease the amount, remove, or change the scriptPubKey output paying to himself.
|
||||
Unless disallowed by sender explicitly via `disableoutputsubstitution=true` or by the BIP21 url via query parameter the `pjos=0`, the receiver is free to decrease the amount, or change the scriptPubKey output paying to himself.
|
||||
Note that if payment output substitution is disallowed, the reveiver can still increase the amount of the output. (See [[#reference-impl|the reference implementation]])
|
||||
|
||||
For example, if the sender's scriptPubKey type is P2WPKH while the receiver's payment output in the original PSBT is P2SH, then the receiver can substitute the payment output to be P2WPKH to match the sender's scriptPubKey type.
|
||||
|
|
Loading…
Add table
Reference in a new issue