Rastree los flujos de fondos de Bitcoin cuando hay múltiples direcciones de entrada y salida

Estoy tratando de analizar los datos de las transacciones y me pregunto si hay una manera de saber cuánto se transfirió de una dirección de billetera a otra cuando hay múltiples entradas y salidas para una transacción.

Por ejemplo, los datos de la transacción se ven así

      Hash        Input_Addresses        Output_Addresses      Input_Amounts      Output_Amounts
a77c56410e71...  [Address1, Address2]   [Address3, Address4]  [0.5BTC, 1.5BTC]  [1.1BTC,  0.9BTC]

En esta transacción hubo dos entradas y dos salidas. Dirección1 pagó 0,5 BTC y Dirección2 pagó 1,5 BTC. Dirección3 recibió 1,1 BTC y Dirección4 recibió 0,9 BTC.

¿Hay alguna forma de saber cuánto de los 1,1 BTC recibidos en la Dirección3 procedía realmente de la Dirección1 o de la Dirección2? La cantidad total de entrada coincide con la cantidad total de salida, que es de 2 BTC (ignore la tarifa de transacción para el cálculo), pero me pregunto si es posible rastrear de qué billetera provienen las cantidades de salida individuales.

Si es posible, ¿qué datos debo mirar para rastrear esos flujos?

Respuestas (2)

Por definición de una transacción de bitcoin, cada una de las salidas tiene todas las entradas como parte de su historial. No hay forma de rastrear qué entrada contribuye a qué salida, porque todas las entradas contribuyen a todas las salidas por igual.

Ahora, si la transacción es de varios propietarios y requiere varias firmas, podría decir que cada uno de los firmantes del tx solo firma cuando el tx general se suma a las direcciones que controlan y, de esa manera, ciertas entradas conducen a ciertas salidas.

En ese sentido, si la construcción del tx en sí se hizo públicamente, podría escuchar los datos a medida que se construyen mediante la comunicación entre los pares en el tx. Sin embargo, dicha coordinación generalmente se realiza por motivos de privacidad, bajo un coordinador de caja negra, por lo que dichos datos no serían observables.

En términos de datos que realmente se colocan en la cadena de bloques, no habría forma de aplicar ingeniería inversa a una construcción más granular que la lista de entradas y salidas.

No existe una relación uno a uno entre entradas y salidas.

"Bitcoins se refunden con cada gasto".

Los bitcoins se mantienen en salidas de transacciones no gastadas (UTXO) . Una entrada de transacción hace referencia a un UTXO específico y lo consume. En el mismo paso, estos bitcoins "efímeros" se utilizan para crear nuevos UTXO. No existe un vínculo directo entre entradas y salidas específicas más allá de que todas estén definidas en una transacción: todos los UTXO consumidos en una transacción fueron predecesores de todos los UTXO creados por esa transacción. En general, no hay una "dirección de origen" en Bitcoin, tanto en el sentido de que a menudo no se puede reducir a una sola como en el hecho de que el instigador de la transacción puede no controlar las direcciones asociadas con los UTXO que se gastan, por ejemplo. cuando se envía desde una cuenta de custodia.

Hay algunos enfoques de seguimiento que usan heurística, por ejemplo, para adivinar si las salidas asignaron fondos a un receptor o al remitente, pero se aplican más al gráfico de transacciones que a la relación entrada-salida y, a menudo, solo otorgan probabilidades.
Algunas transacciones no estándar revelan un poco más de información, por ejemplo, en una SIGHASH_SINGLEtransacción, una entrada solo se compromete con una salida específica. Pero, por otro lado, también hay más formas de crear transacciones multiparte que también rompen la heurística de propiedad común.