En uno de los
artículos anteriores
, revisamos tecnologías de criptomonedas anónimas. Hoy, por otro lado, observamos el problema del anonimato y damos una visión general de los métodos más famosos para analizar blockchains anónimos en la actualidad. En este artículo, nos centraremos en el análisis de las transacciones de blockchain, evitando la posibilidad de conectar direcciones de billetera con sus direcciones IP en el nivel de protocolo p2p, ya que en este caso las técnicas son bastante monótonas. Para comprender este artículo, un conocimiento superficial del dispositivo de las criptomonedas populares es suficiente para entender cuáles son las entradas y salidas de una transacción.

En 2009, cuando apareció Bitcoin, se consideraba un medio de transferencias anónimas, porque no era posible comparar la clave pública de la billetera con su propietario. Pero estos tiempos han pasado, y hoy se conocen técnicas para analizar el gráfico de pagos e identificar grupos de direcciones de casi todos los sitios en la red: intercambios, grupos mineros, intercambiadores y mercados de redes oscuras.
Casi todas estas técnicas usan los mismos enfoques: primero, usando heurística simple, las direcciones se combinan en grupos, luego se determina empíricamente que cada grupo pertenece a un sitio en particular. Puede leer más sobre esto en
Un puñado de Bitcoins: caracterizando pagos entre hombres sin nombres .
Dado que la privacidad de las transferencias aún no es el objetivo principal de bitcoin, ha comenzado a aparecer una demanda de formas de mantener en secreto el gráfico de sus pagos. Los primeros intentos fueron "interruptores de palanca", servicios que envían transacciones en nombre de varios usuarios, lo que requiere confianza en el propio mezclador. Para reducir los riesgos asociados con la confianza en los servicios centralizados, apareció el conocido protocolo CoinJoin, que no permitía que un tercero (es decir, el propio mezclador) tomara el control del dinero de los usuarios. A medida que comenzó a aparecer el desarrollo de esta idea, las criptomonedas comenzaron a aparecer, por lo que lo principal es la privacidad de las transferencias. En la
parte superior de
Coinmarketcap ahora puede encontrar tres de ellos: Monero, Dash y ZCash, cuya capitalización total al momento de escribir este artículo es de aproximadamente $ 1.8 mil millones. A continuación, veremos más de cerca las formas de analizar estas cadenas de bloques.
Moneda
El protocolo
CoinJoin fue propuesto por Greg Maxwell en 2013 como reemplazo de los mezcladores existentes, lo que no requiere la transferencia de sus bitcoins a un tercero. La esencia del protocolo es que varios usuarios son rechazados para realizar sus pagos en una sola transacción.
En este ejemplo, Ernie y Barack deciden contribuir y hacer transferencias a Charlie y Donald con una transacción conjunta. Como vemos en la imagen, se hace difícil entender quién decidió pagar por la campaña de Donald - Ernie o Barack.
Pero en este caso, "difícil" no significa "imposible". Una de las primeras técnicas (y bastante exitosas) para desanonimizar las transacciones de
CoinJoin fue
CoinJoin sudoku . El autor sugiere analizar varias combinaciones de entradas y salidas, que en total dan el mismo valor, suponiendo que pueden corresponder a un pago. En la práctica, esto puede verse más o menos así (Fuente:
https://www.coinjoinsudoku.com/advisory/ ):
En el trabajo
"Superposiciones de mejora de la privacidad en Bitcoin", los autores fueron más allá y examinaron al atacante, un atacante que participó activamente en las transacciones. Si el atacante participó en varias transacciones conjuntas, puede excluir sus entradas y salidas, lo que facilita su análisis.
Pero el punto principal de la "desconfianza" en este esquema es su naturaleza centralizada. Los usuarios deben elegir un servicio "confiable" para estos fines, que simplemente puede guardar los registros de amasamiento que lo atraviesan (aunque no puede robar dinero).
Entre otras cosas, el propio usuario también debe tomar medidas para reducir el riesgo de desanonimizar su pago. Es extremadamente importante no usar la misma dirección para pagos más de una vez, ya que esto facilitará en gran medida el análisis del atacante de la cadena de transacciones.
Sin embargo, aunque este es uno de los primeros intentos y tiene un modelo de anonimato bastante débil, durante el año pasado la cantidad de transacciones se triplicó y alcanzó el 4.09% del número total de pagos (según
longhash.com ), lo que indica una creciente demanda de privacidad en Redes de Bitcoin
Rociada
Dash (anteriormente DarkCoin) → tenedor de Bitcoin. Las transacciones en Dash no son privadas de forma predeterminada, para realizar pagos privados en Dash hay una función de envío privado. Ella heredó el principio de CoinJoin, junto con la mayoría de sus defectos.
Dash divide las salidas de usuario en dos tipos: regular y privado. El primero se puede utilizar para realizar una transacción transparente, y el segundo es necesario para participar en la mezcla. Al convertir salidas ordinarias, la transacción que las gasta las divide en denominaciones de la forma 1.00001 DASH, 0.100001 DASH, etc., y transfiere direcciones únicas a las controladas por el usuario. Después de eso, el remitente selecciona el nodo principal con el que se vinculará la transacción. Cuando se recluta un número suficiente de participantes, se forma una transacción y se envía a la firma de cada uno de los remitentes. Después de eso, ella está lista para enviar a la red.
Un ejemplo de una transacción PrivateSend en Dash que utiliza tres direcciones diferentes de remitente y destinatario. Fuente -
Dash detallado :
A diferencia de CoinJoin, el usuario elimina la necesidad de asegurarse de que su clave pública no aparezca dos veces en una de esas confusiones. Sin embargo, esto protege débilmente contra el seguimiento de la fuente: puede rastrear de manera trivial la cadena de "conversiones" hasta una salida real, desde donde puede usar uno de los métodos estándar para analizar las fuentes de transacción para bitcoin. Empíricamente, se reveló que si las salidas tienen un ancestro común, lo más probable es que este sea el remitente.
La denominación de los resultados de transacciones privadas complica los ataques como el sudoku CoinJoin, pero no protege completamente contra ellos. Junto con algunas heurísticas, esta ventaja puede ser anulada.
El hecho de que el protocolo de mezcla forme parte de Dash y elimine la necesidad de utilizar servicios de terceros no elimina la necesidad de confiar en los nodos maestros seleccionados. Nadie puede garantizar que el propietario de ninguno de los masternodes no recopile registros sobre las solicitudes de transacciones de su parte.
Al igual que con CoinJoin, el usuario puede encontrarse con una falta de liquidez para amasar su transferencia. En este caso, se aconsejó a los usuarios que seleccionaran varios masternodes para la formación de la transacción, sin embargo, esto solo aumenta el riesgo de tropezar con un propietario sin escrúpulos.
Ahora la web critica activamente el modelo de privacidad de Dash. Puede encontrar publicaciones en Reddit sobre cómo alguien logró desanonimizar parte de las transacciones de envío privadas. Por ejemplo, en
esta publicación, el autor afirma que en los últimos 15 días logró rastrear alrededor del 13% de las transacciones a su fuente.
ZCash
ZCash apareció en 2016 como una implementación del protocolo
ZeroCash y se hizo conocido por todos a través del uso de zkSNARK de evidencia de conocimiento cero. ZCash no obliga a usar solo transacciones confidenciales: la mayoría de las transacciones en su red son transparentes y heredan su dispositivo de bitcoin.
Para utilizar la función de pago confidencial, el usuario debe transferir la parte necesaria de los fondos al denominado grupo blindado. Por lo tanto, las transacciones seguras se pueden dividir en tres tipos, dependiendo de la etapa del grupo protegido:
- Blindaje de la transacción. Transacción desde espacio público a piscina blindada. Aquí, el remitente, a diferencia del destinatario, no se esconde, pero puede ver cuánto dinero va "a las sombras".
- Transacción privada Transacción dentro de una piscina blindada. Aquí, ni el remitente, ni el destinatario, ni el monto de la transferencia son conocidos. De hecho, solo se sabe que los fondos se gastan en esta transacción que "alguna vez han estado en el grupo".
- Deshielding transacción. Una transacción que retira fondos de un grupo. No se sabe quién los muestra, pero se sabe a quién y cuántos.
Ilustración de diferentes tipos de transacciones. De izquierda a derecha: transacción transparente regular, transacción de protección, transacción privada, transacción de deshield. Fuente -
"Un análisis empírico del anonimato en Zcash" :
Es importante tener en cuenta que la red requiere que todas las monedas generadas (recompensas de bloque) caigan en el grupo protegido, lo que aumenta efectivamente el conjunto de anonimato para mezclar transacciones.
El análisis empírico de las transacciones públicas en ZCash (a principios de 2018 representaban el 73% del número total de transacciones) no es particularmente difícil y está sujeto a las mismas técnicas que el propio Bitcoin. Sin embargo, obtener estadísticas sobre quién y cuánto dinero se retiró del grupo protegido es mucho más difícil. Uno de los primeros intentos de analizar transacciones seguras en 2018 fue el trabajo
"Un análisis empírico del anonimato en Zcash" . Sus autores investigaron los pagos basados en varias heurísticas: observaciones hechas en función del comportamiento del usuario:
- Si una transacción gasta dos o más salidas transparentes (independientemente de si la transacción es transparente, protegida o mixta), lo más probable es que estas salidas pertenezcan al mismo miembro de la red.
- Si solo se indica un destinatario en una transferencia transparente (es decir, sin cambios), lo más probable es que todas las fuentes de fondos para esta transacción pertenezcan al destinatario.
- Cualquier retiro del grupo blindado por un monto de 250,0001 ZEC (hubo muchas de esas transferencias) pertenece a los fundadores de la red. Esto equivale aproximadamente a la recompensa de 100 bloques.
- Si hay más de 100 salidas en una transacción deshielding, una de las cuales pertenece a un grupo minero conocido, entonces podemos concluir que se trata de un retiro de fondos de los mineros. Todas las demás salidas pueden designarse como pertenecientes a los mineros.
- Si hay un par de transacciones de blindaje y deshield con una cantidad única y una diferencia de varios bloques, y la transacción de blindaje ocurrió antes, entonces estas transacciones están interconectadas. Esto se describe en Sobre la vinculación de las transacciones de Zcash .
Las siguientes ilustraciones muestran algunos análisis que los autores del trabajo pudieron construir sobre la base de estas heurísticas:
Los autores pudieron identificar el 65,6% de las transacciones que retiraron fondos del grupo. No se pudieron lograr éxitos significativos en la identificación de pagos dentro del grupo.
En un trabajo reciente,
"Privacidad y vinculación de la minería en Zcash", investigadores de la Universidad de Luxemburgo analizaron el desempeño de los grupos mineros e identificaron dos patrones al pagar recompensas:
- El grupo de minería muestra la recompensa en bloque a su dirección pública y desde allí distribuye la recompensa a los mineros. Lo llamaron Patrón T.
- El grupo de minería almacena las monedas extraídas en el grupo protegido y en algún momento otorga recompensas a los mineros desde allí a sus direcciones públicas. Este patrón se llamó Patrón Z.
No fue difícil establecer la propiedad de las transacciones para grupos específicos: los investigadores simplemente compararon las direcciones públicas para pagar recompensas con las direcciones de los principales mineros publicados en los sitios web de los grupos.
Siguiendo este enfoque, los investigadores lograron aumentar la proporción de pagos de grupo identificados del 65,6% en el trabajo anterior al 84,1% en los mismos datos.
Sin embargo, este enfoque tiene sus inconvenientes:
- Se puede aplicar a un intervalo de tiempo bastante estrecho de aproximadamente 2000 bloques (aproximadamente cuatro días), ya que los mineros tienden a cambiar las piscinas mineras;
- Es muy difícil identificar transacciones que pertenecen a grupos pequeños que han encontrado solo unos pocos bloques, ya que sus transacciones pagas no se ajustan al patrón general con grupos grandes debido a la pequeña cantidad de salidas a ellos.
Los resultados del análisis se presentan en la ilustración:
Con base en estos datos, los autores concluyen que el 95.6% de todas las transacciones de ZCash son potencialmente "divulgadas", lo que acerca la privacidad de ZCash al nivel de bitcoin.
Como podemos ver, a pesar de la fuerte protección criptográfica, se pueden obtener muchos datos para el análisis y las conclusiones de la información abierta en la cadena de bloques.
Monero
Monero se lanzó en abril de 2014 y es la implementación más popular del protocolo
CryptoNote . En lugar de las direcciones públicas de los destinatarios de los fondos, Monero utiliza direcciones únicas en cada pago, por lo que no es posible que un observador externo haga coincidir criptográficamente la dirección única del destinatario con su dirección pública. Para ocultar al remitente, esta tecnología utiliza la idea de amasar, pero lo hace de una manera diferente a CoinJoin. En Monero, el remitente no necesita buscar otro candidato para completar una transacción conjunta. En cambio, la billetera en sí recolecta salidas arbitrarias de la cadena de bloques, oculta entre ellas la salida que quiere gastar y lo cierra todo con una firma de anillo. La firma del anillo aquí sirve para convencer al validador de transacciones de que el remitente realmente posee una de las salidas de amasado y que no se gasta. Esto logra un alto grado de incertidumbre al tratar de rastrear un pago a su destinatario. Un ejemplo que podemos ver en la ilustración:

Resulta que el "grado de privacidad" de una transacción depende del tamaño de su firma de anillo: cuanto más salidas aleatorias se usan para mezclar, más difícil es rastrearla.
Hasta 2016, la mezcla en la red Monero era opcional, y luego el tamaño mínimo de la firma del anillo se aumentó a 3. Por lo tanto, creció cada año y ahora es 11.
En 2017, en un trabajo titulado
"Un análisis empírico de la trazabilidad en la cadena de bloques de Monero", un grupo de investigadores señaló dos debilidades del protocolo de criptomonedas (vale la pena señalar que no fueron los primeros en hablar de esto, pero pudieron proporcionar los resultados del análisis de transacciones en la práctica )
La primera vulnerabilidad se refiere al efecto negativo del uso de transacciones previamente válidas con amasamiento cero. También se llama análisis de "reacción en cadena". Los autores han demostrado en la práctica que confiar solo en el anonimato con direcciones de un solo uso no solo es inútil, sino que también conduce a la desanonimización de otros pagos utilizando estos resultados como amasadores: ya se sabe dónde se gastaron. Con un pequeño número de salidas falsas en una transacción, las reales pueden calcularse con un alto grado de probabilidad por el método de exclusión. Por lo tanto, los investigadores pudieron rastrear aproximadamente el 62% de las transacciones realizadas antes de febrero de 2017.
La segunda vulnerabilidad está relacionada con la forma en que la billetera eligió las salidas para mezclar. La cuestión es que las salidas falsas se seleccionaron de la cadena de bloques de manera uniforme, lo que en ese momento no reflejaba los patrones de comportamiento de los usuarios de criptomonedas. Los autores señalaron que el usuario gasta con mayor frecuencia el dinero recibido en dos o tres meses. Por lo tanto, en la mayoría de los casos, las salidas más recientes se gastaron realmente. Los siguientes son ejemplos de la distribución de las edades de salida en las transacciones:
Utilizando esta heurística en ese momento, los autores lograron revelar aproximadamente el 80% de las fuentes de las transacciones.
Sin embargo, ahora estas técnicas son de mayor interés académico, ya que los desarrolladores ya han corregido estas debilidades: elevaron la mezcla mínima a 11, la ley de distribución, según la cual se recopilan los resultados para la mezcla, se reemplazan con una realidad más aproximada e implementan un protocolo de transacciones confidenciales.
En otro trabajo, titulado
"Nuevo análisis de trazabilidad empírica de cadenas de bloques de estilo CryptoNote", los investigadores intentan analizar las transacciones de Monero utilizando "conjuntos cerrados".
Vamos a explicar con un ejemplo. Supongamos que tenemos cuatro salidas pk1, pk2, pk3 y pk4. Ahora necesitamos encontrar cuatro de esas transacciones donde se utilizarán exclusivamente:
En nuestro caso, podemos concluir que estas cuatro salidas se gastan en estas cuatro transacciones, y la próxima vez que nos encontremos con una transacción que amase al menos una de estas salidas, podemos excluirlas del conjunto de anonimato como intencionalmente falsas.
Los autores realizaron experimentos en la cadena de bloques Monero con transacciones confidenciales ya incluidas y un tamaño mínimo de la firma del anillo 5. Sin embargo, dado que tales conjuntos son un fenómeno bastante raro, lograron rastrear solo el 0.084% de los resultados, y esta técnica puede considerarse como una adición a otros métodos de análisis. Este resultado nos permite concluir que Monero moderno ofrece garantías bastante fuertes de confidencialidad.
Cual es el resultado
Realizamos un estudio bastante amplio de formas de analizar blockchains anónimos. Aunque nadie intenta descifrar la criptografía, el punto débil de algunos de ellos es la naturaleza centralizada de los servicios de anonimización, otros: la capacidad de realizar transacciones transparentes. En nuestra opinión, Monero ofrece las mejores garantías de confidencialidad para el día de hoy (con vulnerabilidades previamente arregladas), ya que los estudios recientes no brindan ningún resultado significativo de la trazabilidad de las transacciones.