La asunción más usada en el análisis de cadena es que todas las entradas de una transacción pertenecen al pagador. PayJoin la rompe con un truco sencillo: el receptor añade una de sus propias monedas como entrada.
Cómo funciona (BIP78)
- El pagador crea una transacción firmada normal (un psbt) y la envía al endpoint del receptor.
- El receptor añade una entrada propia y aumenta su salida en la misma cantidad.
- El pagador comprueba que no paga más de lo previsto, luego firma y difunde.
On-chain parece un pago ordinario. Pero las entradas vienen de dos personas, y los importes ya no revelan el pago real.
Por qué ayuda a todos
BIP78 señala que payjoin puede invalidar las heurísticas de common-input, change-script-type y round-amount. Como los payjoins parecen transacciones normales, el mero hecho de que existan hace esas heurísticas menos fiables para todos, incluidos quienes nunca usan payjoin.
Estado
- BIP78 tiene estado «Deployed» y lo admiten algunas billeteras y servidores de pago (como BTCPay Server).
- BIP77 (Async Payjoin, estado Draft) elimina la necesidad de que el receptor ejecute un servidor en línea en el momento del pago.
Límite: ambos lados deben usar billeteras que lo admitan.