Blockchain y Cripto-monedas

Reading time: 10 minutes

tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

Conceptos b谩sicos

  • Contratos inteligentes (Smart Contracts) son programas que se ejecutan en una blockchain cuando se cumplen ciertas condiciones, automatizando la ejecuci贸n de acuerdos sin intermediarios.
  • dApps (Decentralized Applications) se construyen sobre contratos inteligentes, con un front-end amigable para el usuario y un back-end transparente y auditable.
  • Tokens & Coins se diferencian en que las coins sirven como dinero digital, mientras que los tokens representan valor o propiedad en contextos espec铆ficos.
  • Utility Tokens otorgan acceso a servicios, y Security Tokens representan la propiedad de un activo.
  • DeFi significa Decentralized Finance, ofreciendo servicios financieros sin autoridades centrales.
  • DEX y DAOs se refieren a plataformas de intercambio descentralizadas y organizaciones aut贸nomas descentralizadas, respectivamente.

Mecanismos de consenso

Los mecanismos de consenso aseguran la validaci贸n segura y acordada de transacciones en la blockchain:

  • Proof of Work (PoW) se basa en la potencia computacional para la verificaci贸n de transacciones.
  • Proof of Stake (PoS) requiere que los validadores mantengan una cierta cantidad de tokens, reduciendo el consumo energ茅tico en comparaci贸n con PoW.

Conceptos esenciales de Bitcoin

Transacciones

Las transacciones de Bitcoin implican transferir fondos entre direcciones. Las transacciones se validan mediante firmas digitales, asegurando que solo el propietario de la clave privada pueda iniciar transferencias.

Componentes clave:

  • Transacciones multifirma (Multisignature Transactions) requieren m煤ltiples firmas para autorizar una transacci贸n.
  • Las transacciones consisten en inputs (origen de los fondos), outputs (destino), fees (pagados a los miners) y scripts (reglas de la transacci贸n).

Lightning Network

Busca mejorar la escalabilidad de Bitcoin permitiendo m煤ltiples transacciones dentro de un canal, solo transmitiendo el estado final a la blockchain.

Preocupaciones de privacidad en Bitcoin

Los ataques a la privacidad, como Common Input Ownership y UTXO Change Address Detection, explotan patrones de las transacciones. Estrategias como Mixers y CoinJoin mejoran el anonimato al ocultar los enlaces entre transacciones de diferentes usuarios.

Adquisici贸n an贸nima de Bitcoins

Los m茅todos incluyen cambios en efectivo, miner铆a y el uso de mixers. CoinJoin mezcla m煤ltiples transacciones para complicar la trazabilidad, mientras que PayJoin disfraza CoinJoins como transacciones normales para mayor privacidad.

Ataques de privacidad en Bitcoin

Resumen de ataques de privacidad en Bitcoin

En el mundo de Bitcoin, la privacidad de las transacciones y el anonimato de los usuarios son a menudo motivo de preocupaci贸n. Aqu铆 hay una visi贸n simplificada de varios m茅todos comunes mediante los cuales los atacantes pueden comprometer la privacidad en Bitcoin.

Suposici贸n de propiedad com煤n de inputs (Common Input Ownership Assumption)

Generalmente es raro que inputs de diferentes usuarios se combinen en una sola transacci贸n debido a la complejidad involucrada. Por lo tanto, dos direcciones input en la misma transacci贸n a menudo se asumen pertenecen al mismo propietario.

Detecci贸n de direcci贸n de cambio UTXO (UTXO Change Address Detection)

Un UTXO (Unspent Transaction Output) debe gastarse completamente en una transacci贸n. Si solo se env铆a una parte a otra direcci贸n, el resto va a una nueva direcci贸n de cambio. Los observadores pueden asumir que esta nueva direcci贸n pertenece al remitente, comprometiendo la privacidad.

Ejemplo

Para mitigar esto, los servicios de mixing o el uso de m煤ltiples direcciones pueden ayudar a ocultar la propiedad.

Exposici贸n en redes sociales y foros

Los usuarios a veces comparten sus direcciones de Bitcoin en l铆nea, lo que facilita vincular la direcci贸n con su propietario.

An谩lisis del grafo de transacciones

Las transacciones pueden visualizarse como grafos, revelando conexiones potenciales entre usuarios basadas en el flujo de fondos.

Heur铆stica de input innecesario (Optimal Change Heuristic)

Esta heur铆stica se basa en analizar transacciones con m煤ltiples inputs y outputs para adivinar cu谩l output es el cambio que regresa al remitente.

Ejemplo

bash
2 btc --> 4 btc
3 btc     1 btc

Si a帽adir m谩s inputs hace que la salida de change sea m谩s grande que cualquier input individual, puede confundir a la heur铆stica.

Forced Address Reuse

Los atacantes pueden enviar peque帽as cantidades a direcciones usadas anteriormente, con la esperanza de que el receptor las combine con otros inputs en transacciones futuras, enlazando as铆 las direcciones entre s铆.

Comportamiento correcto del wallet

Las wallets deber铆an evitar usar coins recibidas en direcciones vac铆as ya usadas para prevenir este privacy leak.

Other Blockchain Analysis Techniques

  • Exact Payment Amounts: Las transacciones sin change probablemente sean entre dos direcciones propiedad del mismo usuario.
  • Round Numbers: Un n煤mero redondo en una transacci贸n sugiere que es un pago, y la salida no redonda probablemente sea el change.
  • Wallet Fingerprinting: Diferentes wallets tienen patrones 煤nicos de creaci贸n de transacciones, lo que permite a los analistas identificar el software usado y potencialmente la direcci贸n de change.
  • Amount & Timing Correlations: Revelar los tiempos o montos de transacciones puede hacer a las transacciones rastreables.

Traffic Analysis

Al monitorizar el tr谩fico de red, los atacantes pueden potencialmente vincular transacciones o bloques a direcciones IP, comprometiendo la privacidad del usuario. Esto es especialmente cierto si una entidad opera muchos nodos de Bitcoin, lo que mejora su capacidad para supervisar transacciones.

M谩s

For a comprehensive list of privacy attacks and defenses, visit Bitcoin Privacy on Bitcoin Wiki.

Transacciones an贸nimas de Bitcoin

Formas de obtener Bitcoins de forma an贸nima

  • Cash Transactions: Adquirir bitcoin con efectivo.
  • Cash Alternatives: Comprar tarjetas regalo y cambiarlas en l铆nea por bitcoin.
  • Mining: El m茅todo m谩s privado para obtener bitcoins es la miner铆a, especialmente si se hace en solitario, ya que los mining pools pueden conocer la direcci贸n IP del minero. Mining Pools Information
  • Theft: En teor铆a, robar bitcoin podr铆a ser otro m茅todo para adquirirlo an贸nimamente, aunque es ilegal y no recomendable.

Mixing Services

Al usar un servicio de mezcla, un usuario puede enviar bitcoins y recibir bitcoins diferentes a cambio, lo que complica rastrear al propietario original. Sin embargo, esto requiere confiar en que el servicio no guarde logs y que realmente devuelva los bitcoins. Opciones alternativas de mezclado incluyen casinos de Bitcoin.

CoinJoin

CoinJoin combina m煤ltiples transacciones de distintos usuarios en una sola, complicando el proceso de emparejar inputs con outputs. A pesar de su efectividad, las transacciones con tama帽os 煤nicos de inputs y outputs a煤n pueden ser rastreadas potencialmente.

Example transactions that may have used CoinJoin include 402d3e1df685d1fdf82f36b220079c1bf44db227df2d676625ebcbee3f6cb22a and 85378815f6ee170aa8c26694ee2df42b99cff7fa9357f073c1192fff1f540238.

Para m谩s informaci贸n, visita CoinJoin. Para un servicio similar en Ethereum, consulta Tornado Cash, que anonimiza transacciones con fondos de los mineros.

PayJoin

Una variante de CoinJoin, PayJoin (o P2EP), disfraza la transacci贸n entre dos partes (p. ej., un cliente y un comerciante) como una transacci贸n normal, sin las salidas iguales distintivas caracter铆sticas de CoinJoin. Esto hace que sea extremadamente dif铆cil de detectar y podr铆a invalidar la common-input-ownership heuristic usada por entidades de vigilancia de transacciones.

plaintext
2 btc --> 3 btc
5 btc     4 btc

Transacciones como la anterior podr铆an ser PayJoin, mejorando la privacidad mientras permanecen indistinguibles de las transacciones est谩ndar de bitcoin.

La utilizaci贸n de PayJoin podr铆a perturbar significativamente los m茅todos tradicionales de vigilancia, convirti茅ndolo en un avance prometedor en la b煤squeda de privacidad transaccional.

Mejores pr谩cticas para la privacidad en criptomonedas

T茅cnicas de sincronizaci贸n de wallets

Para mantener la privacidad y la seguridad, sincronizar las wallets con la blockchain es crucial. Destacan dos m茅todos:

  • Full node: Al descargar toda la blockchain, un nodo completo garantiza la m谩xima privacidad. Todas las transacciones realizadas se almacenan localmente, haciendo imposible que los adversarios identifiquen cu谩les transacciones o direcciones interesan al usuario.
  • Client-side block filtering: Este m茅todo consiste en crear filtros para cada bloque de la blockchain, permitiendo a las wallets identificar transacciones relevantes sin exponer intereses espec铆ficos a los observadores de la red. Las wallets ligeras descargan estos filtros, solicitando bloques completos solo cuando hay una coincidencia con las direcciones del usuario.

Utilizar Tor para anonimato

Dado que Bitcoin opera en una red peer-to-peer, se recomienda usar Tor para ocultar tu direcci贸n IP, mejorando la privacidad al interactuar con la red.

Prevenir la reutilizaci贸n de direcciones

Para salvaguardar la privacidad, es vital usar una direcci贸n nueva para cada transacci贸n. Reutilizar direcciones puede comprometer la privacidad al vincular transacciones con la misma entidad. Las wallets modernas desalientan la reutilizaci贸n de direcciones mediante su dise帽o.

Estrategias para la privacidad de las transacciones

  • M煤ltiples transacciones: Dividir un pago en varias transacciones puede ocultar el monto de la transacci贸n, frustrando ataques de privacidad.
  • Evitaci贸n del cambio: Optar por transacciones que no requieran salidas de cambio mejora la privacidad al dificultar los m茅todos de detecci贸n de cambio.
  • M煤ltiples salidas de cambio: Si evitar el cambio no es factible, generar m煤ltiples salidas de cambio todav铆a puede mejorar la privacidad.

Monero: Un faro de anonimato

Monero responde a la necesidad de anonimato absoluto en las transacciones digitales, estableciendo un alto est谩ndar para la privacidad.

Ethereum: Gas y transacciones

Entendiendo el gas

El gas mide el esfuerzo computacional necesario para ejecutar operaciones en Ethereum, valorado en gwei. Por ejemplo, una transacci贸n que cuesta 2,310,000 gwei (o 0.00231 ETH) implica un gas limit y una base fee, con una propina para incentivar a los mineros. Los usuarios pueden establecer una tarifa m谩xima para asegurarse de no pagar de m谩s, con el exceso reembolsado.

Ejecuci贸n de transacciones

Las transacciones en Ethereum involucran un remitente y un destinatario, que pueden ser direcciones de usuario o de smart contracts. Requieren una tarifa y deben ser minadas. La informaci贸n esencial en una transacci贸n incluye el destinatario, la firma del remitente, el valor, datos opcionales, l铆mite de gas y tarifas. Cabe destacar que la direcci贸n del remitente se deduce de la firma, eliminando la necesidad de incluirla en los datos de la transacci贸n.

Estas pr谩cticas y mecanismos son fundamentales para cualquiera que quiera interactuar con criptomonedas priorizando la privacidad y la seguridad.

Smart Contract Security

  • Pruebas de mutaci贸n para encontrar puntos ciegos en los conjuntos de pruebas:

Mutation Testing With Slither

Referencias

Explotaci贸n DeFi/AMM

Si est谩s investigando la explotaci贸n pr谩ctica de DEXes y AMMs (Uniswap v4 hooks, abuso de redondeo/precisi贸n, swaps de cruce de umbral amplificados por flash鈥憀oan), consulta:

Defi/AMM Hook Precision

tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks