PayJoin, también conocido como Pay to Endpoint (P2EP), es un tipo especial de transacción de Bitcoin donde el emisor al destinatario contribuyen en las entradas para romper con “heurística de propiedad de entrada común”, una suposición que es utilizada para analizar las cadenas de bloques y así quitarle la privacidad y el anonimato a los usuarios.
Este tipo de heurística para analizar la cadena de bloques de Bitcoin es bastante común, una de las más utilizadas. En ella se asume que, dada una transacción, todas las entradas son firmadas por la misma persona.
Hasta el momento había sido una suposición bastante acercata debido al poco uso que tenían las direcciones multi firma. Sin embargo, la propuesta del protocolo P2EP fue creada justamente para romper con esta suposición y mejorar la privacidad de Bitcoin.
Pero a pesar de que PayJoin se asemeja bastante a muchos tipos de scripts de Bitcoin, P2EP no es uno de ellos.
En su lugar, es un protocolo que permite que dos usuarios lleven a cabo una transacción de forma privada, o al menos más privada de lo que sería sin él.
Utilizando un canal punto a punto, como el de una dirección onion (cebolla), un emisor y destinatario pueden intercambiar información acerca de la UTXO que les gustaría utilizar como entrada en una transacción.
Luego pueden construir de forma cooperativa y firmar la transacción utilizando el estándar de transacciones parcialmente firmadas (PSBT, por sus siglas en inglés) que se define en la propuesta de mejora de Bitcoin llamada BIP 174.
El resultado es una transacción que para un tercero se asemejara a cualquier transacción típica de esta cadena de bloques, la cual continúe múltiples entradas y salidas.
Contenido
¿Cómo funciona PayJoin?
PayJoin es una transacción colaborativa entre la parte que recibe los fondos y la que los envía, por ejemplo un comerciante y su cliente.
El objetivo principal es romper con la heurística que supone que las entradas son de una misma persona, al mismo tiempo que hace más difícil determinar que en calidad la transacción se trata de una CoinJoin.
Por último, ayuda a reducir las comisiones pagadas por el comerciante debido a la unión de monedas.
1. Coordinación
La coordinación de este tipo de transición es realizada gracias al concento de Pay to Endpoint. El destinatario es contactado a través de internet, tanto con un servicio de enrutamiento onion tipo Tor o con una dirección de IP normal.
Un enlace es provisto, utilizando la URI de Bitcoin propuesta en BIP 21, en la que se le entrega al emisor de la transacción una factura de pago.
El emisor utiliza el servicio de enrutamiento o la dirección IP para conectarse al servidor del destinatario y comunicar cual será el protocolo usado a partir de ahora.
Toda esta coordinación entre las partes suele durar unos pocos segundos, y será abortará la transacción luego de un tiempo si la conexión se rompe.
2. Creación de una transacción normal
En la primera petición al servidor del destinatario, el emisor provee una transacción firmada que solo tiene la entrada del emisor, al igual que cualquier otra transacción de Bitcoin.
Aquí, las entradas son solo del emisor. Las salidas son la dirección del destinatario, mientras que la dirección de cambio es la del emisor.
Supongamos que queremos pagar en una tienda online 0,2 BTC:
![Primer paso de una transacción PayJoin](https://criptotario.com/wp-content/uploads/2022/02/Primer-paso-de-una-transacción-PayJoin.webp)
Tanto nosotros como la tienda pueden transmitir a la red de Bitcoin la transacción en cualquier momento. El único problema es que se perdería la privacidad de la misma.
3. Creación de la transacción CoinJoin
El servidor del destinatario responde la propuesta inicial con una transacción que agrega nuevas entradas a la original. También incrementa la salida de la transacción destinada a él.
![Segundo paso de una transacción PayJoin](https://criptotario.com/wp-content/uploads/2022/02/Segundo-paso-de-una-transacción-PayJoin-1.webp)
El emisor envía la transacción a la red de Bitcoin para que sea procesada.
Monederos que permiten hacer PayJoin
Existen algunos monederos que permiten realizar este tipo de transacciones, aunque no todos cuentan con la funcionalidad completa. Y es que algunos soportan solo el envío, mientras que otros tienen toda la lógica de programación para enviar y recibir este tipo de transacciones.
Monedero | Enviar | Recibir |
---|---|---|
BTCPay Server | Si | Si |
JoinMarket | Si | Si |
Wasabi Wallet | Si | No |
Bluewallet | Si | En el futuro |
Sparrow Wallet | Si | ? |
Ventajas de PayJoin
Primero y principal, el mayor beneficio de este tipo de transacciones es romper con la heurística de propiedad, lo que implica que la entrada no pertenecen a la misma persona o entidad, sino a varias de ellas.
Esto destruyen una de las suposiciones más importantes que suelen tener las empresas orientadas a la vigilancia.
A diferencia de otras implementaciones de CoinJoin, aquí las salidas no tienen el mismo valor, lo que provoca que la transacción tampoco parezca una de tipo CoinJoin.
Por otro lado, las salidas no reflejan el valor real de la transacción. En el ejemplo que vimos arriba, el intercambio monetario real fue de solo 0,2 bitcoins, pero las salidas son de 0,7 y 0,8 bitcoins. Esto también ofusca la cantidad pagada.
Por último, el destinatario también está consolidando sus monedas, lo que le permite ahorrar comisiones en el futuro. Sin PayJoin, el destinatario tendría dos UTXO, una de 0,2 BTC y otra de 0,5 BTC, por lo que tendrá que pagar más comisiones para poder gastarlas.
Pero como ahora ha utilizado PayJoin, solo tiene una UTXO con valor de 0,7 BTC, lo que reduce las comisiones en el futuro cuando deba hacer uso de esta.
Agrega un Comentario