Un puñado de Bitcoins – Distinguiendo pagos entre hombres sin nombres

SARAH MEIKLEJOHN, MARJORI POMAROLE, GRANT JORDAN ,
KIRILL LEVCHENKO, DAMON MCCOY, GEOFFREY M. VOELKER Y STEFAN SAVAGE

Bitcoin es una moneda virtual descentralizada cuyo uso se ha disparado desde su introducción en enero del 2009. Al igual que el efectivo, la posesión de bitcoins es anónima, ya que los participantes transmiten bitcoins utilizando seudónimos en lugar de identidades reales. En este artículo, examinamos las limitaciones del anonimato de Bitcoin y descubrimos que la capacidad de agrupar seudónimos de acuerdo con la heurística de propiedad compartida nos permite identificar (es decir, asociarnos con una entidad o usuario del mundo real) un segmento significativo y activo de la economía del Bitcoin. Sobre la marcha, explicamos mucho sobre cómo funciona Bitcoin.

(For the original English version visit this link)

Bitcoin es una forma de efectivo electrónico que fue introducida por Satoshi Nakamoto (un seudónimo) en 2008. Como su nombre indica, Bitcoin es similar al efectivo en el sentido de que las transacciones son irreversibles y los participantes de estas no se identifican explícitamente: tanto el remitente como el receptor se identifican únicamente por un seudónimo, y los participantes en el sistema pueden usar muchos seudónimos diferentes sin incurrir en ningún costo significativo. Bitcoin tiene otras dos propiedades, sin embargo, que lo diferencian del efectivo: (1) está completamente descentralizado (lo que implica una red global entre pares) en lugar de una única entidad central, actúa para regular y generar bitcoins, y (2) proporciona un libro mayor de transacciones públicas, de modo que, aunque las transacciones se llevan a cabo entre seudónimos en lugar de individuos del mundo real, cada una de esas transacciones es visible a nivel mundial.

Desde su introducción, Bitcoin ha atraído cada vez más atención, tanto de los medios como de los gobiernos que buscan formas de regularlo. Gran parte de esta atención se ha debido a la naturaleza de Bitcoin, que ha causado que las organizaciones gubernamentales expresen su preocupación de que pueda permitir el lavado de dinero u otras actividades delictivas, o su volatilidad y crecimiento final como moneda; a fines de 2012, la tasa de cambio comenzó un ascenso exponencial, alcanzando un máximo de 235 dólares por bitcoin en abril de 2013, antes de establecerse en aproximadamente 100 dólares por bitcoin (en septiembre de 2013).

A pesar de las preocupaciones sobre Bitcoin, su uso de seudónimos ha hecho que sea una tarea bastante difícil obtener una comprensión real de cómo y con qué fines se utiliza Bitcoin, ya que el protocolo abstracto de este, si se explota al máximo, proporciona un anonimato bastante sólido. Sin embargo, en el uso moderno de Bitcoin, muchos usuarios confían en los servicios de terceros para almacenar sus bitcoins, como servicios de carteras online e intercambios (es decir, bancos), en lugar de clientes de escritorio que operen de forma independiente. En este contexto, nuestro objetivo es explotar este comportamiento para erosionar el anonimato de los usuarios que interactúan con estos y otros servicios. Al hacerlo, no buscamos sacar del anonimato a los usuarios individuales, sino sacar del anonimato a los flujos de bitcoins en toda la red.

Nuestro enfoque consiste en dos técnicas. Primero, participamos en una variedad de transacciones de Bitcoin para obtener datos empíricos sobre el terreno; por ejemplo, al depositar bitcoins en una cuenta en el mayor intercambio de Bitcoin, Mt. Gox, podemos marcar una dirección como definitivamente perteneciente a ese servicio, y al retirar esos bitcoins más adelante podemos identificar otra. Para expandir estos ínfimos datos empíricos, seguidamente agrupamos las direcciones de Bitcoin de acuerdo con dos heurísticas: una explota una propiedad inherente del protocolo de Bitcoin, y otra explota una expresión idiomática de uso actual en la red de Bitcoin. Al superponer este análisis encima de nuestros datos empíricos recopilados, marcamos transitoriamente grupos completos de direcciones como pertenecientes a ciertos usuarios y servicios; por ejemplo, si nuestro análisis indicó que la dirección que previamente habíamos etiquetado como perteneciente a Mt. Gox estaba dentro de un determinado grupo, podemos etiquetar con confianza todas las direcciones en ese grupo como pertenecientes a Mt. Gox.

Cómo funciona Bitcoin

Antes de describir nuestro análisis, es necesario entender el protocolo de Bitcoin. Criptográficamente, Bitcoin se compone de dos primitivas: un esquema de firma digital (en la práctica, ECDSA) y una función hash unidireccional (en la práctica, SHA-256). Los seudónimos de los usuarios son claves públicas para la firma digital, y ​​los usuarios pueden crear arbitrariamente muchos seudónimos generando pares de claves. Ahora y a partir de aquí, usamos Bitcoin para referirnos a la red entre pares y al protocolo abstracto, y bitcoin, o BTC, para referirnos a la unidad monetaria; también usamos los términos clave pública, dirección y seudónimo de manera intercambiable.

Figura 1: Cómo funciona una transacción de Bitcoin: en este ejemplo, un usuario desea enviar 0.7 bitcoins como pago a un comerciante. En (1), el comerciante genera o elige una clave pública existente, mpk, y (2) envía esta clave pública al usuario. Al crear una firma digital (3), el usuario forma la transacción tx para transferir 0.7 bitcoins desde su clave pública upk a la dirección del comerciante mpk. En (4), el usuario transmite esta transacción a sus pares, lo que (si la transacción es válida) le permite inundar la red. De esta manera, un minero se entera de su transacción. En (5), el minero trabaja para incorporar esta y otras transacciones en un bloque comprobando si su hash está dentro de algún rango objetivo. En (6), el minero transmite este bloque a sus pares, lo que (si el bloque es válido) le permite inundar la red. De esta forma, el comerciante descubre que la transacción ha sido aceptada en la cadena de bloques global y, por lo tanto, ha recibido el pago del usuario.

Para ver cómo se gastan los bitcoins, supongamos que un usuario tiene cierta cantidad de bitcoins almacenados con uno de sus seudónimos. Para simplificar, describimos las transacciones con una entrada y una salida, pero las transacciones generalmente pueden tener cualquier cantidad de direcciones de entrada y salida. Para enviar estos bitcoins, el usuario crea primero un mensaje que contiene (entre otras cosas) el receptor de los bitcoins, identificado por una clave pública, y la transacción en la que su seudónimo recibe los bitcoins. El remitente puede firmar este mensaje usando la clave privada correspondiente a su seudónimo para crear una firma. Luego transmite la firma y el mensaje, que juntos componen la transacción, a sus pares, que a su vez lo transmiten a sus respectivos pares (ver Figura 1).

Antes de transmitir la transacción, cada par confirma que la transacción es válida comprobando dos cosas: primero, que la firma se verifica y por lo tanto (por la imposibilidad de falsificar la firma) fue formada correctamente por el honesto propietario de los bitcoins; y segundo, que ninguna otra transacción utilizó la misma transacción anterior. Esta segunda propiedad es crucial para garantizar que los bitcoins no se gasten dos veces, razón por la cual cada par necesita tener acceso a todo el historial de transacciones (o al menos a las transacciones en las que los bitcoins recibidos no se han gastado). Un bitcoin no es un solo objeto, sino una cadena de estas transacciones.

Después de que transacciones como estas inunden la red, se recopilan en bloques, lo que sirve para marcar las transacciones y garantizar su validez. El proceso de creación de un bloque se denomina minado, ya que también es el proceso mediante el cual se crean bitcoins. Los mineros (es decir, los usuarios que pretenden crear bloques) primero recopilan todas las transacciones de las que se enteran en un grupo de transacciones (en inglés, pool) que aún no se han incorporado a los bloques; con frecuencia se da prioridad a las transacciones que incluyen una pequeña tarifa, aunque en la actualidad la mayoría de las transacciones no necesitan incluirla (las excepciones son transacciones que tienen muchas entradas y/o salidas, o transacciones que llevan una gran cantidad de bitcoins). Luego, el minero añade al grupo una transacción especial para la generación de monedas y realiza un hash de esta colección de transacciones.

El minero apunta a tener una colección de transacciones (y otros metadatos, incluida una referencia al bloque generado más recientemente) que se resume a un valor que comienza con un cierto número de ceros. Esto y lo que sigue es un bosquejo simplificado del proceso de la minería; en realidad, el minero está tratando de generar un hash que es más pequeño que un hash objetivo. El número requerido de ceros a la izquierda es proporcional a la dificultad de la red, que está determinada por su índice de hash actual. El objetivo es que la red produzca un nuevo bloque cada diez minutos, por lo que la dificultad se ajusta en consecuencia (por ejemplo, si la tasa de hash aumenta, entonces la dificultad aumenta también).

Para producir este hash objetivo manteniendo el mismo grupo de transacciones, el minero también incorpora un valor nonce. Entonces uno puede pensar que el proceso de minería comienza con la recolección de transacciones y el nonce se establece en 1; si esto produce un hash dentro del rango objetivo, entonces el minero ha producido un bloque válido, y si no lo hace, entonces puede incrementar el nonce y volver a intentarlo.

Una vez que el minero tiene un bloqueo válido, lo transmite a través de la red de manera análoga a la transmisión de transacciones, y los pares verifican la validez de su bloque al verificar si su hash está dentro del rango objetivo. Su bloque es aceptado en el libro mayor de transacciones globales después de que haya sido referenciado por otro bloque. Debido a que cada bloque hace referencia a un bloque anterior, los bloques forman una cadena al igual que las transacciones, por lo que este libro mayor se denomina cadena de bloques.

Como recompensa por generar este bloque, que, debido a la unidireccionalidad de la función hash, es una tarea computacionalmente intensiva, el minero recibe un cierto número de bitcoins en la clave pública especificada en su transacción de generación de monedas. Este número de bitcoins está determinado por la altura de la cadena de bloques: inicialmente, la recompensa era de 50 bitcoins, pero a una altura de 210.000 (es decir, después de generar 210.000 bloques, lo que sucedió el 28 de noviembre de 2012), la recompensa se redujo a la mitad, y se seguirá reduciendo a la mitad hasta que se generen 21 millones de bitcoins, en cuyo momento la recompensa será 0 y los mineros serán incentivados únicamente por las tarifas de transacción, lo que presumiblemente aumentará como resultado de esto.

Para resumir, el libro mayor que cada par descarga cuando se une a la red de Bitcoin es la cadena de bloques, que consiste en una serie de bloques, cada uno haciendo referencia al que lo precedió. Los bloques se aceptan en la cadena por consenso: si suficientes pares aceptan que un bloque es válido (por ejemplo, está dentro del rango objetivo requerido y crea un número apropiado de bitcoins), entonces elegirán hacer referencia a él cuando generen sus propios bloques, de modo que la extracción de bloques (y la consiguiente generación de bitcoins) sigue un conjunto de reglas definido por consenso en lugar de requisitos del sistema. Estos bloques contienen colecciones de transacciones que, al igual que los bloques, se validan a través de su aceptación por los pares en la red, que especifican la transferencia de bitcoins de un conjunto de pseudónimos a otro.

Dónde se gastan los Bitcoins

A partir del 13 de abril de 2013, la cadena de bloques contenía más de 16 millones de transacciones entre 12 millones de claves públicas distintas. Se han generado más de 11 millones de bitcoins (recordemos que esto representa más de la mitad de todos los bitcoins que se generarán alguna vez), y esos bitcoins se han gastado muchas veces, hasta el punto de que se han tramitado más de 1 billón de bitcoins.

Dado este ritmo de movimiento, uno naturalmente podría preguntarse dónde se están gastando los bitcoins. Desde 2010, se han introducido una variedad de servicios para Bitcoin a un ritmo cada vez mayor. Una de las categorías más utilizadas, los intercambios, permite a los usuarios intercambiar bitcoins por otras monedas, incluyendo monedas fiduciarias como dólares y otras monedas virtuales como Lindens del Second Life. La mayoría de estos intercambios también funcionan como bancos, lo que significa que almacenarán tus bitcoins por ti, aunque también hay servicios de carteras dedicados a hacer precisamente eso. Con todos estos servicios, uno corre el riesgo de robo, que de hecho ocurre con bastante frecuencia.

Los ASIC de minería para Bitcoin se introdujeron en febrero del 2013 y son capaces de calcular 64 mil millones de cálculos SHA-256 por segundo, lo que significa que las probabilidades de generar un bloque con solo una CPU o incluso una GPU son insignificantemente pequeñas. Debido a la intensidad computacional de generar bitcoins, los grupos de minería se han convertido en otro servicio popular en la economía de Bitcoin, permitiendo a los mineros realizar una cierta cantidad de trabajo (por ejemplo, examinar un segmento del espacio nonce) y ganar cantidades fraccionarias de bitcoin por cada parte que ellos contribuyen.

Los usuarios que buscan gastar en lugar de almacenar o generar bitcoins pueden hacerlo con una serie de comerciantes, incluido WordPress, que usa la pasarela de pago BitPay, la cual acepta el pago en bitcoins pero paga al comerciante en la moneda que elija (eliminando así para el comerciante todo el riesgo basado en Bitcoin). Los usuarios también pueden apostar con sus bitcoins, usando webs de póker como BitZino o juegos de dados tremendamente populares como Satoshi Dice.

 

Figura 2: Los artículos físicos que compramos con bitcoins, que van desde carne seca de BitPantry a un CD de Boston usado de Bitmit. Los artículos en verde se compraron de CoinDL (el “iTunes de Bitcoin”), en azul de Bitmit (el “eBay de Bitcoin”), y en rojo usando la pasarela de pago BitPay.

 

Finalmente, los usuarios que buscan utilizar Bitcoin con fines delictivos pueden comprar drogas y otro tipo de contrabando en sitios como Silk Road, a los que a menudo solo se puede acceder a través de la red Tor. También pueden mezclar (es decir, lavar) bitcoins con servicios como Bitfog, que prometen recibir bitcoins y enviar (a la dirección de tu elección) nuevos bitcoins que no tienen ningún vínculo con los que recibieron.

La primera fase de nuestro análisis implicó interactuar con estos y muchos otros servicios. En total, mantuvimos cuentas con 26 intercambios y diez carteras en línea, e hicimos compras con 25 proveedores diferentes, nueve de los cuales utilizaron la pasarela de pago de BitPay; se puede encontrar una lista completa de los servicios con los que interactuamos en la Tabla 1, y se pueden encontrar las imágenes de nuestras compras materiales en la Figura 2. Realizamos 344 transacciones con estos servicios, lo que nos permitió etiquetar 832 direcciones (recuerda que las transacciones pueden tener de forma arbitraria muchas direcciones de entrada, lo que nos permite etiquetar varias direcciones por transacción). También recopilamos varias direcciones que encontramos adjudicadas públicamente, como las firmas de los usuarios en los foros de Bitcoin, aunque tuvimos cuidado de usar solo etiquetas para las cuales pudiéramos realizar una debida diligencia a mano.

 

Tabla 1: Interactuamos con muchos servicios y proporcionamos agrupaciones aproximadas como se muestra aquí.

Agrupando direcciones de Bitcoin

En teoría, el uso de seudónimos dentro de Bitcoin ofrece una propiedad llamada desvinculación, que dice que las transacciones de los usuarios que usan un conjunto de seudónimos no deben vincularse a sus transacciones utilizando un conjunto diferente de seudónimos. En la práctica, sin embargo, ciertas propiedades del uso de Bitcoin erosionan este anonimato.

Recuerda que, para crear una transacción de Bitcoin válida, el remitente debe conocer la clave privada correspondiente a la clave pública en la que se guardan los bitcoins. Ahora supongamos que un usuario desea enviar 10 BTC a un comerciante, pero tiene 4 BTC en una dirección y 6 BTC en otra. Una forma posible de pagar al comerciante sería crear una nueva dirección, enviar los 4 BTC y 6 BTC a esta nueva dirección, y luego enviar los 10 BTC, ahora en esta nueva dirección, al comerciante. (De hecho, este es el método que asegura el mayor anonimato). En cambio, el protocolo Bitcoin permite una solución más simple y eficiente: las transacciones pueden tener arbitrariamente muchas entradas, por lo que las direcciones de 4 BTC y 6 BTC se pueden usar como entrada para la misma transacción, en la que el receptor es el comerciante.

Esta observación da lugar a nuestra primera agrupación heurística: si se han utilizado dos direcciones como entrada para la misma transacción, están controladas por el mismo usuario. Esta heurística es bastante segura, ya que el remitente debe conocer las claves privadas correspondientes a todas las direcciones de entrada para formar una transacción válida, y como tal ya se ha utilizado en la literatura de Bitcoin hasta el punto en que existen herramientas disponibles en línea para realizar este análisis.

Nuestra segunda agrupación heurística expande esta primera heurística y explota la forma en la que se realiza el cambio. En el protocolo de Bitcoin, cuando una dirección recibe cierto número de bitcoins, no tiene más remedio que gastar esos bitcoins de una sola vez (recuerda que esto se debe a que cada transacción debe hacer referencia a una transacción anterior y las transacciones no se pueden referenciar varias veces). Si este número de bitcoins excede lo que el emisor desea gastar (por ejemplo, si tiene 4 BTC almacenados en una dirección y quiere enviar 3 BTC a un comerciante), entonces crea una transacción con dos salidas: una para el destinatario real (p. ej., el comerciante que recibe 3 BTC) y una dirección de cambio que él controla y puede usar para recibir el cambio (p. ej., el BTC restante).

Este comportamiento da lugar a nuestra segunda agrupación heurística: el remitente controla la dirección de cambio en una transacción. Dado que las direcciones de cambio no parecen a priori diferentes de otras direcciones, se debe tener mucho cuidado al identificarlas. Como primer paso, observamos que, en el cliente estándar de Bitcoin, la dirección de cambio se crea internamente y ni siquiera el usuario la conoce (aunque siempre puede conocerla examinando la cadena de bloques manualmente). Además, estas direcciones de cambio se usan solo dos veces: una para recibir el cambio en una transacción y otra para gastar todo su contenido como entrada en otra transacción (en la cual el cliente creará una nueva dirección para recibir cualquier cambio).

Al examinar las transacciones e identificar las salidas que cumplen con este patrón de un solo uso, identificamos las direcciones de cambio. Si más de una salida coincide con este patrón, entonces extremamos la precaución y no marcamos nada como dirección de cambio. Al usar este patrón -con una serie de precauciones adicionales, como esperar una semana para identificar las direcciones de cambio- identificamos 3.5 millones de direcciones de cambio, con una tasa estimada de falsos positivos de 0.17%, señalando que la tasa de falsos positivos solo puede estimarse, ya que, ante la ausencia de datos empíricos, no podemos saber qué es o no es una dirección de cambio. Por ende, agrupando direcciones de acuerdo con esta heurística, reducimos las 12 millones de claves públicas a 3.3 millones de grupos.

Ensamblándolo todo

Al superponer nuestro análisis sobre los datos empíricos (y por ende marcando transitoriamente grupos completos que contienen direcciones previamente etiquetadas), pudimos identificar 1.9 millones de claves públicas con algún servicio o identidad en el mundo real, aunque en muchos casos la identidad no era un nombre real, sino más bien (por ejemplo) un nombre de usuario en un foro. Aunque esta es una fracción algo pequeña (alrededor del 16%) de todas las claves públicas, nos permite, sin embargo, deshacer el anonimato de un número significativo de flujos de bitcoins en toda la red.

Con este objetivo, primero examinamos las interacciones con los servicios conocidos de Bitcoin. Al identificar un gran número de direcciones para varios servicios (por ejemplo, identificamos 500.000 direcciones controladas por Mt. Gox y más de 250.000 direcciones controladas por Silk Road), pudimos observar las interacciones con estos servicios, tales como los depósitos y retiros desde intercambios. Aunque esto no le quita el anonimato al individuo que participa en la transacción (es decir, pudimos ver que un usuario estaba interactuando con un servicio, pero no saber necesariamente qué usuario), sí sirve para eliminar el anonimato del flujo de bitcoins desde y hacia el servicio.

Para demostrar la utilidad de este tipo de análisis, centramos nuestra atención en la actividad delictiva. En la economía de Bitcoin, la actividad delictiva puede aparecer en una variedad de formas, como vender drogas en Silk Road o simplemente robar bitcoins de otra persona. Seguimos el flujo de bitcoins fuera de Silk Road (en particular, desde una dirección notoria) y de una serie de robos altamente publicitados para ver si podíamos rastrear los bitcoins a los conocidos servicios. Aunque algunos de los ladrones intentaron utilizar sofisticadas técnicas de lavado (o posiblemente servicios de lavado) para ocultar el flujo de bitcoins, la mayoría de las veces seguir los bitcoins fue bastante sencillo, y finalmente vimos grandes cantidades de bitcoins fluyendo directamente hacia una variedad de intercambios desde donde fueron robados (o retirados desde Silk Road).

Como se reconoció anteriormente, seguir bitcoins robados hasta el punto en que se depositan en un intercambio no identifica por sí mismo al ladrón; sin embargo, permite reducir el anonimato en cuanto a que ciertas agencias pueden determinar (a través de, por ejemplo, una citación judicial) el propietario en el mundo real de la cuenta en la que se depositaron los bitcoins robados. Debido a que tales intercambios parecen servir como puntos críticos dentro y fuera de la economía de Bitcoin (es decir, hay pocas formas alternativas de cobrar), concluimos que el uso de Bitcoin para el lavado de dinero u otros fines ilícitos no parece (al menos en la actualidad) ser particularmente atractivo.