Mejorando la Privacidad usando Pay-to-EndPoint (P2EP)
Blockstream Research

Mejorando la Privacidad usando Pay-to-EndPoint (P2EP)

Matthew Haywood

Para que un activo opere como medio de intercambio tiene que ser fungible; es decir, que sus unidades, todas del mismo valor, deben ser fácilmente intercambiables. El análisis del blockchain de Bitcoin da la posibilidad de que una entidad, debido a su historial de transacciones, pueda declarar que ciertos bitcoins están “marcados” y etiquetarlos como inaceptables como medio de pago. Las compañías de análisis de blockchain, que intentan rastrear la procedencia y la propiedad de los bitcoins, comprometen la privacidad de los usuarios e inhiben la capacidad de intercambiar bitcoins libremente sin sesgo. Si no se puede mantener la privacidad de las transacciones básicas, los bitcoins pierden parte de su fungibilidad.

Los asistentes de un grupo de trabajo en comunidad recientemente establecieron el objetivo de mejorar la privacidad de las transacciones básicas en bitcoins. A continuación, se presenta un resumen del trabajo que hizo este grupo para proporcionar a los desarrolladores de monederos un enfoque común para defenderse contra la heurística más común utilizada por las compañías de análisis de blockchain y, al mismo tiempo, mejorar la fungibilidad de bitcoin.

El grupo espera promover la discusión dentro de la comunidad y avanzar con la iniciativa de proporcionar un método estandarizado para que los monederos y los procesadores de pagos puedan mejorar la privacidad.

Desmantelamiento de las herramientas de análisis de blockchain

En el artículo de 2013 de Meiklejohn et. al., se describe una heurística clave utilizada para vincular direcciones en el blockchain de Bitcoin. Hicieron la observación de que un principio fundamental del análisis de blockchain considera que un conjunto de “claves públicas usadas como entradas de una transacción pertenecen a un mismo usuario”.

Por lo tanto, la composición de una transacción regular de Bitcoin proporciona un punto de entrada para aquellas empresas de análisis que desean rastrear una dirección y su propietario. Este es el principio que el taller planteaba desmantelar.

Es importante notar que para invalidar el supuesto de “propiedad de entrada común” no es necesario que cada transacción utilice cualquiera de las soluciones propuestas. Para invalidar, simplemente hay que asegurarse de que haya suficientes transacciones que compartan las entradas de distintos propietarios. Dado que este es el elemento fundamental del análisis de blockchain, tiene sentido dar un paso más y asumir que la premisa del análisis de Bitcoin en general podría invalidarse si se usara esta solución con frecuencia.

A partir de este enfoque, el grupo estableció un objetivo más definido:

Ofrecer una manera de garantizar que las transacciones con entradas que son propiedad de más de una parte sean una opción lo suficientemente corriente para que queden invalidados los supuestos de la heurística de “propiedad de entrada común”.

Identificación de requisitos esenciales

De las distintas propuestas que se presentaron, muchas tenían problemas similares. Sin detallar ni comentar cada propuesta en particular, se podría decir que, en general, requieren una solución válida que tenga las siguientes características:

  • Establece un proceso interactivo que se realiza de usuario a usuario.
  • Previene o reduce el impacto de los ataques de snooping (sondeo) por UTXO (donde un emisor intenta conocer el UTXO del receptor mediante solicitudes repetidas que no se completan).
  • Que reduzcan el impacto de los ataques sin respuesta.

La propuesta ‘Pay to EndPoint’ (P2EP)

La iteración de varias ideas dio como resultado la propuesta ‘Pay to EndPoint’ (P2EP). Aunque también presenta algunas disyuntivas, esta propuesta parece cumplir con los objetivos establecidos, es decir, invalidar la heurística de la “propiedad de entrada común” y abordar los requisitos de las interacciones de usuario a usuario para lograr una cierta resistencia a los ataques.

La premisa básica de P2EP es que tanto el emisor como el receptor ofrecen entradas para la transacción a través de interacciones coordinadas por un punto final que el receptor presenta utilizando un URI que cumple con BIP 21.

P2EP no requiere cambios en el protocolo de Bitcoin y las transacciones que establece no son fácilmente identificables ya que tienen la misma “huella” que las transacciones regulares.

Tal vez se pueda explicar con más detalles si se observan los pasos que se siguen para hacer una transacción con P2EP:

Paso 1

El receptor (un comerciante o un usuario final) genera un URI con formato BIP 21 con un parámetro adicional que especifica su punto final P2EP. Como BIP 21 permite usar variables que no se comprenden actualmente, esto no rompe las implementaciones de carteras existentes. La dirección del punto final no debe ser necesariamente una dirección .onion, sino el URI de cualquier punto final compatible.

Un ejemplo de URI (adaptado de los ejemplos de BIP 21) es:

bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?p2ep=3j4tau93wkc8mh32.onion

Paso 2

Para iniciar una interacción con el receptor, el emisor confirma que el punto final proporcionado está disponible. De lo contrario, la transacción se transmite normalmente y se hace el pago a la dirección BIP 21 de Bitcoin regular del receptor. Si el punto final del receptor está disponible, el emisor proporciona al receptor una transacción firmada como prueba de propiedad del UTXO.

Paso 3

El receptor luego envía una serie de transacciones al emisor para que sean firmadas. De todas estas transacciones, solo una incluye el UTXO real del receptor; el resto pueden seleccionarse de un conjunto de UTXO disponibles. Estas transacciones luego pueden enviarse en serie o en paralelo al emisor. Cada opción tiene sus ventajas y sus desventajas con respecto a la privacidad y la velocidad de la interacción, por lo que el método actual sigue en discusión y pendiente de implementación.

Serie: cada transacción que se envía podría ser la del receptor. La probabilidad depende del número de transacciones que seleccionó y firmó el receptor y de cómo se haya aleatorizado la secuencia. La serie de intercambios termina cuando el emisor presenta al receptor una transacción firmada en la que se usa el UTXO del receptor.

En paralelo: las transacciones creadas por el receptor se envían en su totalidad al emisor al mismo tiempo. El emisor tendrá un conjunto de transacciones y solo una que podrán asumir es del receptor. La probabilidad de que el receptor adivine cuál es la correcta es proporcional al número de transacciones seleccionadas y enviadas por el receptor. El emisor firma y devuelve todas las transacciones juntas.

El número propuesto de transacciones enviada por el receptor usando cualquiera de los dos métodos es actualmente 100, que ofrece un balance entre la privacidad y la cantidad de datos transmitidos/procesados en ambos lados del intercambio.

Cabe destacarse que hay potencial para usar Bulletproofs como reemplazo de los métodos de intercambio UTXO mencionados anteriormente.

Paso 4

En cualquiera de los casos anteriores, cuando el receptor recibe una transacción firmada que corresponde a su UTXO, podrán firmar y transmitir la transacción, que ahora tendrá entradas tanto del emisor como del receptor.

En el caso en el que el proceso P2EP falle por cualquier motivo, la transacción se transmitirá como una transacción normal.

Análisis de un ejemplo de una transacción P2EP

Si Alice quiere pagarle a Bob 1 BTC:

  • Alice ingresa 3 BTC para la transacción.
  • Bob, en la misma transacción, ingresa 5 BTC.
  • Alice recibe 2 BTC (como parte de su cambio).
  • Bob recibe 6 BTC (como parte de su cambio más 1 BTC que le pagó Alice).

La transacción anterior rompe con la heurística de la “propiedad de entrada común” y puede interpretarse de muchas maneras distintas. Por ejemplo, se podría interpretar que Alice le paga a Bob 6 BTC, ingresando un total de 8 BTC usando entradas de 3 BTC y 5 BTC, y recibiendo 2 BTC como cambio.

Ventajas y desventajas de P2EP

Ventajas:

  • Rompe con el supuesto de “propiedad de cartera común”. El efecto acumulativo de adopción del método mejora la privacidad de las transacciones regulares que no se realizan por P2EP.
  • Rompe con el análisis por suma de subconjuntos.
  • El consumo del UTXO del receptor podría ayudar a reducir el tamaño del conjunto UTXO.
  • El receptor puede usar P2EP para consolidar su conjunto UTXO.
  • A diferencia de una transacción CoinJoin tradicional de denominación fija, no hay una “huella” obvia para el tipo de transacción, ya que en apariencia es igual que una transacción regular.
  • Las carterasque hacen el envío pueden ser carteras livianas .
  • Los emisores y los receptores tienen más privacidad.

Desventajas:

  • El receptor, al igual que el emisor, debe estar en línea para que el pago pueda procesarse como una transacción P2EP.
  • La naturaleza interactiva de P2EP retrasara levemente la transmisión de la transacción.
  • El receptor debe tener una “cartera caliente” (o en línea) para poder firmar las transacciones.
  • La tarifa que se cobra al emisor podría ser mayor porque el tamaño de la transacción es mayor. Esto podría compensarse negociando con el receptor si valora la consolidación de UTXO.
  • El procesamiento del monedero aumenta en comparación con las transacciones tradicionales.
  • El receptor necesita tener acceso a un nodo completo.

¿Cuáles serán las próximas novedades sobre Pay to EndPoint?

El método P2EP está en su etapa inicial y es necesario que la comunidad lo  revise y afine antes de que se pueda hacer una propuesta formal.

Es posible que la idea pueda expandirse para incluir otros tipos de transacción, como la división de un pago o intercambios de monedas simples.

If you have specific preferences, please, mark the topic(s) you would like to read: