Saltar al contenido
buybitcoinsmart

Glosario / Privacidad y seguridad

Payjoin

También se conoce como P2EP o Pay-to-endpoint.

¿Qué es un payjoin?
Un payjoin es un pago en el que la persona que recibe las monedas añade discretamente una de sus propias entradas a su transacción, de modo que el monto que queda en la cadena ya no coincide con el monto que usted realmente pagó.

Se especifica en el BIP-78.

Ambas partes aportan entradas, lo que rompe la regla que los analistas usan para agrupar direcciones en billeteras. Nicolas Dorier lo especificó como BIP78 en mayo de 2019, y está implementado, no es teórico: BTCPay Server lanzó la compatibilidad en 2020. Para el pagador, la transacción cuesta un poco más en comisiones y parece completamente ordinaria.

Cómo funciona

El protocolo payjoin es una breve conversación que ocurre entre el momento en que usted pulsa enviar y el momento en que la transacción se difunde.

Su billetera construye el pago como un PSBT sin firmar, exactamente como lo haría para un gasto normal, y lo envía a un endpoint que el receptor anunció en la solicitud de pago. El receptor añade uno de sus propios UTXO como segunda entrada, aumenta su propia salida en ese mismo monto para seguir recibiendo el pago correcto, y devuelve el PSBT modificado. Su billetera comprueba que el destino y el monto no han cambiado, firma y difunde.

Lo que queda en la cadena tiene dos entradas que pertenecen a dos personas distintas. Un analista que aplique la regla estándar de agrupación fusionará a dos desconocidos en una sola billetera, una conclusión falsa registrada de forma permanente en su conjunto de datos. El monto del pago también desaparece: ninguna salida es igual a lo que usted pagó, porque la salida del receptor es el pago más su propia entrada aportada. Un observador ya no puede leer la factura a partir de la transacción.

BIP78 limita el costo para usted. El parámetro maxadditionalfeecontribution indica cuántos satoshis está usted dispuesto a pagar por la entrada adicional que añade el receptor, de modo que un receptor no puede inflar discretamente su comisión. Si algo sale mal, el endpoint es inaccesible, la respuesta llega malformada, los montos no cuadran, su billetera recurre a difundir la transacción original. Un payjoin fallido sigue siendo un pago completado, por lo que esto puede activarse de forma predeterminada sin romper nada.

Los receptores obtienen un segundo beneficio que no tiene nada que ver con la privacidad. Cada payjoin les permite incorporar una de sus propias monedas a una transacción que otra persona paga en gran parte, lo cual es una limpieza gratuita frente a una billetera llena de salidas pequeñas.

Dónde aparece

Payjoin vive del lado del comerciante, por lo que la mayoría de las personas lo encuentran sin darse cuenta.

BTCPay Server fue la primera implementación en producción y ofrece payjoin en las facturas, por lo que las páginas de donación y los procesos de pago autoalojados son donde más aparece. Wasabi y Sparrow pueden enviar a un endpoint de payjoin desde el escritorio.

La debilidad del diseño original era que el receptor tenía que ejecutar un servidor público y estar en línea en el momento del pago, lo que lo limitaba a los comerciantes. BIP77, "Async Payjoin", de Dan Gould y Yuval Kogman, creado en agosto de 2023 y aún en borrador, sustituye el endpoint directo por un directorio de almacenamiento y reenvío al que se accede mediante Oblivious HTTP, de modo que dos billeteras de teléfono pueden completar un payjoin sin que ninguna de las dos esté en línea al mismo tiempo. Bull Bitcoin y Cake Wallet han lanzado esa versión en aplicaciones móviles, lo que supone la primera vez que payjoin está disponible para pagos comunes entre personas.

El argumento más fuerte para usarlo es uno que usted nunca ve personalmente. Cada payjoin en el conjunto de datos hace que la regla de propiedad común de las entradas sea menos fiable para todos, incluidas las personas que nunca han hecho uno. Las técnicas de privacidad que solo ayudan a quien las usa son escasas; esta degrada la vigilancia de toda la red con cada transacción.

No confundir con

Preguntas frecuentes

¿Un payjoin le cuesta más al remitente?

Un poco. La entrada adicional del receptor hace que la transacción sea más grande, y BIP78 permite que su billetera limite ese costo con el parámetro maxadditionalfeecontribution, por lo que el aumento suele ser de unos pocos cientos de satoshis y no algo apreciable.

¿Qué ocurre si el endpoint de payjoin del receptor no está disponible?

Su billetera difunde en su lugar la transacción original. Esa alternativa está integrada en el protocolo, por lo que un payjoin fallido sigue siendo un pago completado y el receptor obtiene exactamente lo que usted envió.

Términos relacionados

Más en la sección Privacidad y seguridad

Leer esta página en inglés