Por qué Stowaway (Polizón)

P_Hold
8 min readMay 23, 2022

--

El polizón es un viajero que aborda en un barco, avión o medio de transporte terrestre sin ser detectado. Se oculta en el lugar menos esperado, también puede hacerse pasar por una caja de mercancías o una maleta de equipaje. La meta del polizón es llegar a destino de manera furtiva.

¿Qué tiene que ver un polizón con Bitcoin?, bien, al ser un libro de contabilidad público y transparente una de las formas de lograr privacidad transaccional es utilizar tácticas de un polizón, por ejemplo, esconder el monto real que se envía, hacer creer que una transacción de pago con coinjoin (payjoin) es una transacción normal. Eso es lo que hace Stowaway, una transacción implementada por los desarrolladores de Samourai Wallet que también está disponible en Sparrow Wallet.

En este artículo te explicaré el problema que resuelve Stowaway y de que va esta transacción, luego compararé un envío de múltiples entradas normal con un envío de múltiples entradas usando Stowaway para observar qué asumirá el software de análisis de cadena en ambos casos, finalmente describiré las razones por las que todo bitcoiner debe usar esta herramienta de privacidad.

Stowaway: Polizón

El problema que resuelve Stowaway

Cuando quieres realizar un pago en Bitcoin cualquier wallet genera la transacción siguiendo pautas de eficiencia, incluye solo la cantidad de entradas (pedacitos de bitcoin) necesarias para satisfacer el monto a pagar. Básicamente existen 2 escenarios:

1- Si una entrada es suficiente para satisfacer el monto a pagar, la wallet tomará esa única entrada para crear la transacción. Seguramente no tendrás una entrada con el monto idéntico al que debes pagar, por lo que terminarás obteniendo un cambio. (envío sencillo).

2- Si una sola entrada no es suficiente para satisfacer el monto a pagar, la wallet tomará tantas como sean necesarias para crear la transacción. Igual que en el escenario 1, terminarás recibiendo un cambio o vuelto, porque es muy difícil que tengas en varias entradas el monto exacto para cubrir el pago (Pago con múltiples entradas).

En ambos escenarios un observador externo obtiene información importante para la privacidad, puede conocer el monto que pagaste y el monto que recibiste como cambio. Adicionalmente, en el escenario 2 el observador puede asumir con algún grado de certeza que todas las entradas te pertenecían, lo que puede llegar a ser un problema si una de las entradas está vinculada a tu identidad.

Estos dos escenarios se resuelven con una transacción que permite realizar pagos y a la vez poner en duda las suposiciones utilizadas para la vigilancia (propiedad de entradas multiples), eso son los payjoins, que serían algo así como pagar haciendo un coinjoin. A dia de hoy existe solo una implementación funcional, conocida con el nombre de Stowaway o polizón.

Stowaway

Es una transacción payjoin (pago con unión de entradas) implementada por los desarrolladores de Samourai Wallet con el fin de confundir el análisis de cadena (creando falsos positivos), hacer invisible el monto que se envía y romper con la suposición que en una transacción de múltiples entradas todas las entradas pertenecen a un único propietario. Todo esto aparentando ser una transacción individual normal.

Transacción Stowaway con 2 entradas y 2 salidas

La imagen anterior muestra una Stowaway. A simple vista parece ser una transacción normal de dos entradas y dos salidas que realiza un único participante. En realidad, es una transacción colaborativa de dos participantes, en la que el pagador es dueño de una entrada y el receptor del pago el dueño de la otra, y cada uno recibe una salida.

Un observador externo asumiría incorrectamente que alguien ha pagado 0.00410248 BTC y ha recibido 0.0012508 BTC como cambio. Cuando el pago pudo ser 0.00015 BTC o 0.00260248 BTC, montos que permanecen completamente invisibles. Al tratar de detectar la huella de la TX el observador asumiría que se trata de una transacción con entradas innecesarias.

Análisis de privacidad de Blockstream

¿Cómo es posible que en una transacción de Bitcoin el monto enviado sea invisible?, la respuesta es que Stowaway se basa en la esteganografia, que es una técnica utilizada para ocultar un mensaje, en este caso el mensaje es el monto enviado, dentro de un medio visible, que en este caso es la propia transacción.

La ventaja de la esteganografía (payjoin) por sobre el cifrado (coinjoin) es que no atrae la atención, el mensaje se esconde sin levantar sospecha de que existe tal mensaje, por lo que pasa completamente desapercibido.

La existencia de Stowaway siembra duda ante cualquier transacción de múltiples entradas y dos salidas. Bajo ciertos escenarios (no reutilización de direcciones) no se podría asumir con certeza si se trata de una transacción de pago normal (individual) o de un payjoin. Por supuesto, el análisis se complica mucho más cuanto mayor sea el número de entradas que conforman la transacción.

En el cuartel general de Chainalysis

Comparación entre un pago típico con múltiples entradas y un pago usando Stowaway

Es interesante observar cómo un software de análisis de la cadena tipifica una transacción de múltiples entradas normal versus una transacción Stowaway, y además de cuál información puede extraer de cada una. Para este ejercicio usé el explorador de bloque OXT.me.

Transacción de múltiples entradas, pago normal

Pago con múltiples entradas normal.

En esta transacción el software de análisis de OXT atribuye la propiedad de todas las entradas a un único dueño y le asigna un número Anon, en este caso el ANON-3909230791, además, por la heurística de entradas innecesarias se puede establecer que el monto pagado es 0.00165590 BTC y que el cambio es la salida ubicada en la posición #1 con un monto de 0.00021402 BTC

Análisis de Boltzmann

El análisis de Boltzmann encontró:

  • Una sola interpretación para esta TX.
  • Entropía: 0 bits — Densidad de entropía: 0 bits por UTXO.

Transacción de múltiples entradas pago con Stowaway.

Pago con múltiples entradas usando Stowaway

El software de análisis OXT al igual que en la transacción anterior atribuye la propiedad de todas las entradas a un único propietario y le asigna un número Anon, en este caso ANON-3300386717, cuando la realidad es que pertenecen a dos propietarios distintos: Al pagador y al receptor del pago. además, fija que el monto pagado es 0.03144414 BTC cuando en realidad es 0.015 BTC y por ultimo marca la salida ubicada en la posición #0 como el cambio con un monto de 0.00484087 BTC.

Análisis de Boltzmann

El análisis de Boltzmann encontró:

  • Una sola interpretación para esta TX.
  • Entropía: 0 bits — Densidad de entropía: 0 bits por UTXO.

Como podemos observar no existe diferencia entre el análisis de Boltzmann de la transacción de pago normal y la Stowaway. Si bien es cierto que la entropía es 0, esto no quiere decir que Stowaway no tenga ambigüedad (privacidad), lo que quiere decir es que engaña a la herramienta de análisis. En palabras del creador de la herramienta de análisis:

Limitaciones — Esta métrica es susceptible de ser engañada por patrones específicos de transacciones como transacciones esteganográficas. Una transacción esteganográfica tiene como objetivo ocultar el pago real dentro de un pago “falso”. Su huella es similar a un pago clásico pero se diferencia de un pago clásico al involucrar al beneficiario en el proceso de pago. -LaurenMT-

Por qué Stowaway es una herramienta que todo bitcoiner debería usar

La privacidad transaccional en Bitcoin se consigue por medio del engaño y aumentando los costos del análisis. El que no se pueda diferenciar Stowaway de una transacción normal incrementa la cantidad de interpretaciones posibles que debe hacer el software de análisis de cadena y aumenta la cantidad de cálculos que se necesitan hacer para saber que monto fue el enviado.

Como hemos visto las transacciones Stowaway son un reto para el análisis de cadena y la vigilancia porque inunda de falso positivos los clusters de las empresas de vigilancia de la cadena, además, resuelven uno de los problemas centrales en la privacidad transaccional en Bitcoin: La asignación de un único responsable para todas las entradas de una transacción.

Como curiosidad, decir que Stowaway te permite enviar/recibir desde 1 sat (0.00000001 BTC) en onchain, la fee de minería es la misma de una transacción normal de Bitcoin.

Pago con stowaway de 1 sat en onchain

Stowaway está disponible solo para hotwallet, no puedes usarla desde una hardware wallet.

Casos reales en los que es útil la aplicación de Stowaway para bitcoiners:

  • Recibir o pagar BTC de anónimos distintos.
  • Consolidar sin dañar la privacidad, es una forma eficiente de aumentar el valor de una moneda antes de entrar al coinjoin de Whirlpool.
  • Evitar que tu transacción parezca un coinjoin.
  • Gastar monedas de postmix al pagar a alguien.
  • Enviar donaciones.
  • Contribuir con la privacidad general de Bitcoin.

En este 2022 empezamos a dictar talleres de privacidad en Bitcoin junto a Arkad. Dentro del temario dedicamos una parte a explicar todo lo referente a transacciones colaborativas como Stowaway que forman parte de un arsenal de herramientas orientadas a dificultar la vigilancia y confundir a los espías de la cadena. Los participantes reciben diferentes estrategias de cómo y cuándo usar cada una. Además, realizamos ejercicios prácticos para adoptar estas herramientas de privacidad. El temario completo del Módulo 1:

Si estas interesado en participar contactanos por telegram en : P_Hold o Arkad

Recientemente abrimos un canal de Telegram para los participantes de nuestros talleres teórico-prácticos sobre herramientas de privacidad en Bitcoin, allí los interesados podrán coordinar y generar transacciones colaborativas sin custodia para mejorar privacidad en sus transacciones.

--

--

P_Hold

Aprender y enseñar sobre Bitcoin son de las actividades que más disfruto. Only-bitcoin.