⛓️ Blockchain Learning Path GitHub

Blockchain Data Analytics y minería de datos on-chain · Clases 57–58

Nivel: Inicial → Avanzado · ⏱️ Duración estimada: 240 min · Fuente: documentación de Bitcoin Core y de ethereum.org, especificación JSON-RPC de Ethereum, Mastering Bitcoin (Antonopoulos) y las guías de FATF/GAFI sobre activos virtuales ⬅️ Currículo · 📚 Bibliografía 🧭 ⬅️ Anterior: Clases 55–56 · Regulación y cumplimiento · 📚 Índice · ➡️ Siguiente: Clases 59–60 · Exchanges y operaciones de custodia 📖 Glosario de términos · 🌱 ¿Nuevo en esto? Empieza aquí


Las dos clases independientes de este tema

Esta página conserva el mapa, los conceptos compartidos y las referencias. La enseñanza evaluable ocurre en dos documentos separados; cada uno tiene fundamento, gráfico, caso, práctica, evidencia y fuentes propios.

Clase 57 · Extraer y normalizar datos on-chain

¿Cómo convertimos bloques y transacciones en un dataset reproducible?

Experiencia propia: pipeline reproducible por checkpoints. Evidencia: Dataset con esquema, bloque de corte, hash y reglas de calidad.

Clase 58 · Grafo, anomalías y límites de atribución

¿Qué patrón observamos y qué identidad no podemos afirmar?

Experiencia propia: investigación de grafo con hipótesis rivales. Evidencia: Informe que separe hecho, indicador, inferencia e hipótesis.


🎯 Objetivos

Antes de atribuir identidades o recomendar medidas desde un grafo, aplica ¿Y si cruzas la línea?.

📚 Resultados de aprendizaje

Al finalizar, el estudiante podrá:

  1. Explicar en una frase la diferencia entre minar criptomonedas y minar datos de una blockchain, sin confundir consenso con analítica.
  2. Comparar una transacción UTXO y una de cuentas, identificando dónde vive el saldo, cómo se deduce la comisión y dónde está el importe de un token.
  3. Implementar un extractor idempotente con checkpoint que sobreviva a un fallo transitorio y a una reorganización de cadena.
  4. Calcular direcciones activas, volumen, comisiones y concentración, y defender por qué las cifras no equivalen a "usuarios" ni a "actividad económica".
  5. Contrastar métricas sociales y on-chain sin convertir correlación temporal en causalidad.
  6. Construir un grafo de direcciones y rastrear el recorrido de unos fondos, declarando el criterio de atribución empleado.
  7. Medir un detector de anomalías con precisión y recall sobre una verdad de campo, y razonar el compromiso al mover el umbral.
  8. Redactar una conclusión analítica separando lo observado de lo inferido, con sus limitaciones explícitas.

🗺️ Temas

# Tema Por qué importa
1 Minería de monedas vs. minería de datos Son actividades distintas que comparten palabra: una produce bloques, la otra produce conocimiento.
2 Qué datos contiene realmente una cadena Todo el análisis posterior depende de saber qué hay y qué nunca estuvo ahí.
3 UTXO frente a cuentas El modelo de datos determina qué preguntas se pueden responder y con qué error.
4 Seudonimato frente a anonimato La cadena es pública y persistente: no oculta, solo no nombra.
5 Adquisición: nodo, RPC, API e indexador Cada fuente impone su propio sesgo, límite y coste.
6 Reorganizaciones y datos duplicados Un ETL que ignora el reorg cuenta dinero que nunca se movió.
7 Eventos de contrato La analítica de tokens vive en los logs, no en el campo valor de la transacción.
8 Indicadores on-chain Una métrica mal entendida convence más que un error evidente.
9 Grafos de direcciones Los movimientos son una red; las preguntas interesantes son de red.
10 Patrones y anomalías Detectar es fácil; detectar sin ahogarse en falsos positivos, no.
11 Evaluación y explicabilidad Sin métricas, un detector es una opinión con formato de informe.
12 Ética, privacidad y límites La misma técnica sirve para proteger o para difamar.

🧠 Modelo mental

Una blockchain pública es un registro contable abierto, escrito con seudónimos y que nunca se borra. Analizarla se parece más a la epidemiología que a la contabilidad: no puedes preguntar a los sujetos, no controlas el muestreo y solo observas rastros. Puedes decir con certeza qué se movió, cuándo y entre qué identificadores; puedes conjeturar con evidencia qué comportamiento explica ese patrón; y no puedes concluir por tu cuenta quién es la persona detrás, porque ese salto exige información que no está en la cadena.

Los límites de la analogía. A diferencia del epidemiólogo, aquí tienes el censo completo: no hay muestreo, están todas las transacciones. Eso engaña: la exhaustividad del dato hace sentir que la conclusión también es exhaustiva. No lo es. Tienes el 100 % de las transacciones y el 0 % de las intenciones.

🧩 Esquema visual

flowchart LR
    subgraph FUENTE["1 · Adquisición"]
        N["Nodo propio<br>(RPC)"] --> E
        A["API de explorador"] --> E
        I["Indexador<br>(subgraph)"] --> E
        E["Extracción por rangos<br>+ checkpoint"]
    end
    subgraph PREP["2 · Preparación"]
        E --> L["Normalizar,<br>validar, deduplicar"]
        L --> R{"¿Reorganización?"}
        R -- sí --> X["Retirar bloques<br>huérfanos"] --> L
        R -- no --> D[("Almacén<br>SQL · NoSQL · grafo")]
    end
    subgraph ANALISIS["3 · Análisis"]
        D --> M["Indicadores<br>volumen, comisiones,<br>direcciones activas"]
        D --> G["Grafo<br>caminos, comunidades,<br>fan-in / fan-out"]
        D --> AN["Anomalías<br>y clasificación"]
    end
    M --> C["4 · Conclusión con límites<br>hecho ≠ indicador ≠ inferencia"]
    G --> C
    AN --> C

📖 Conceptos

🔬 Profundización

Nivel 1 — Fundamentos: qué hay dentro y qué nunca estuvo

La primera confusión que hay que desmontar es de vocabulario. Minar criptomonedas es competir por proponer el siguiente bloque y cobrar por ello: es una actividad de consenso, estudiada en las clases 7–8. Minar datos de una blockchain es leer lo ya escrito para encontrar regularidades: es una actividad de análisis, y no produce ni una sola moneda. Comparten el verbo por herencia histórica del inglés mining, y nada más.

Un bloque contiene una cabecera (altura o número, hash propio, hash del bloque anterior, marca de tiempo, y en la EVM el gas usado y el límite) y una lista ordenada de transacciones. El encadenamiento por el hash previo es lo que hace que alterar un bloque antiguo invalide todos los posteriores. Dos campos se malinterpretan sistemáticamente. El primero es la marca de tiempo: la declara quien propone el bloque, dentro de un margen tolerado; es una aproximación útil para agregar por día, y una fuente de error si se usa para afirmar el orden exacto de dos hechos separados por segundos. El segundo son las confirmaciones: no son un sello de validez sino una medida de coste de reversión. Seis confirmaciones no significan "ya es definitivo"; significan "revertirlo ahora saldría muy caro".

La transacción es donde los dos modelos divergen. En UTXO, una transacción consume salidas anteriores y crea salidas nuevas; la comisión no es un campo, se deduce restando: entradas menos salidas. Cada salida se gasta entera, y por eso aparece la salida de cambio, que vuelve al remitente. Un analista novato suma todas las salidas y concluye que se movieron cantidades enormes: buena parte era cambio volviendo a su dueño. En el modelo de cuentas, la transacción declara de, para, valor y nonce, y la comisión es gasUsado × precioGas. Aquí la trampa es otra: en una transferencia de token ERC-20 el campo valor vale cero, porque lo que se mueve no es el activo nativo sino una anotación dentro de un contrato, publicada como evento. Quien analiza tokens leyendo valor concluye que no se movió nada.

Sobre la privacidad, el término correcto es seudonimato, no anonimato. Una dirección es un identificador estable sin nombre asociado; la cadena es pública, permanente y correlacionable. Reutilizar una dirección enlaza toda su historia, y un único punto de contacto con el mundo real (un servicio que conoce a su cliente, un pago publicado, una dirección puesta en una web) puede unir esa historia con una identidad. Lo que se puede saber públicamente son movimientos entre identificadores; lo que no se puede saber desde la cadena es quién los controla, por qué motivo y con qué acuerdo detrás.

Nivel 2 — Adquisición y preparación: donde se pierden los datos

Hay cuatro fuentes y cada una impone su sesgo. Un nodo propio da el dato de primera mano y control total, a cambio de operarlo y almacenarlo (clases 33–34). Una API de explorador es cómoda y trae datos ya enriquecidos, pero introduce una dependencia, límites de tarifa y decisiones ajenas sobre qué es una "transferencia". Un indexador (clases 21–22) devuelve datos consultables por evento, pero solo los que alguien decidió indexar. La mempool ofrece lo que aún no se ha confirmado: útil para estudiar comportamiento y latencia, peligroso para contar dinero, porque lo pendiente puede no ocurrir nunca.

La extracción real es siempre paginada y reanudable. Un proveedor trunca las respuestas: pedir mil bloques puede devolver diez sin que eso sea un error, y un extractor que asume que recibió todo lo que pidió se salta bloques en silencio. Por eso se guarda un checkpoint (el último bloque consolidado) y se reanuda desde ahí, y por eso los reintentos deben ser idempotentes: si el mismo bloque llega dos veces, el almacén no puede duplicarlo. La clave primaria natural (el hash de la transacción) resuelve la mitad del problema; la otra mitad es la reorganización, en la que un bloque ya guardado deja de existir y otro ocupa su altura. Detectarla es comparar el hashPrevio del bloque nuevo con el hash que uno ya tiene almacenado; ignorarla significa contar transacciones que la cadena definitiva nunca incluyó.

La preparación termina en normalización y validación: unificar unidades (siempre unidades mínimas enteras, nunca decimales flotantes, para no perder precisión), derivar campos útiles (día, comisión efectiva), rechazar registros imposibles y dejar registrada la procedencia: de qué fuente, en qué rango de bloques y con qué versión del extractor. El almacén se elige según la pregunta: SQL para agregaciones y series temporales, NoSQL para documentos heterogéneos como los logs, y base de grafos cuando la pregunta es de caminos y vecindades. Es legítimo empezar en SQL y proyectar un grafo solo para las consultas que lo necesitan.

Nivel 3 — Análisis on-chain: métricas que dicen menos de lo que parece

Los indicadores básicos son cuenta, volumen y comisiones. Todos son correctos y todos se malinterpretan. Direcciones activas no es "usuarios": una persona puede tener cientos de direcciones y un servicio puede atender a miles con una sola. Direcciones nuevas no es "adopción": crear una dirección es gratis y no requiere permiso. El volumen incluye auto-transferencias, cambio, movimientos internos de servicios y reequilibrios, así que sobreestima sistemáticamente la actividad económica. Las comisiones sí son un indicador honesto de demanda de espacio en bloque, porque cuestan dinero real. La concentración (cuota del top-N, índice de Herfindahl o Gini) mide desigualdad de tenencia entre direcciones, no entre personas: un exchange con una dirección enorme distorsiona la lectura por completo.

Cuando una pieza de contenido, las búsquedas y el volumen cambian a la vez, el orden temporal permite formular hipótesis, no cerrarlas. El análisis necesita procedencia, contrafactual, variables de confusión y explicaciones rivales. Esta disciplina se aplica en el caso sintético de economía viral.

El salto cualitativo es pasar de contar a modelar la red. Cada dirección es un nodo, cada transferencia una arista dirigida y con peso; entonces se pueden hacer preguntas que la tabla no admite: ¿por dónde pasó este dinero?, ¿qué direcciones forman una comunidad?, ¿qué nodo es un cuello de botella? El grado de entrada y salida distingue de un vistazo a un coleccionista (muchas entradas) de un distribuidor (muchas salidas), y un nodo con grado altísimo suele ser un servicio con miles de clientes, no un sospechoso. El análisis temporal añade la dimensión que más discrimina: fondos que entran y salen en minutos, actividad concentrada en franjas horarias, o el patrón de pelado en el que un saldo va dejando migajas mientras el grueso avanza.

Nivel 4 — Análisis avanzado: detectar, medir y no pasarse de la raya

Detectar anomalías es proponer una definición de "normal" y medir la distancia. El z-score (media y desviación) es intuitivo pero frágil: la propia anomalía infla la media y se auto-oculta. La regla de Tukey sobre mediana e intercuartil resiste mucho mejor los valores extremos. Ambos son transparentes, y esa transparencia vale más que la sofisticación: un detector que no puede explicar por qué marcó algo no se puede defender ante quien lo cuestiona ni corregir cuando se equivoca.

Medir es la parte que más se omite. Con una verdad de campo se calculan precisión (de lo marcado, cuánto era real), recall (de lo real, cuánto se marcó) y su compromiso: bajar el umbral encuentra más casos y multiplica los falsos positivos. Aquí un falso positivo no es un número, es una persona a la que se congela una cuenta. Y hay una honestidad adicional que enseñar: en una cadena real el recall no se puede calcular, porque nadie sabe qué se dejó de detectar; los números limpios de esta unidad de clases existen solo porque el dataset es sintético y los patrones fueron plantados a propósito.

El techo del método es la atribución. El agrupamiento de direcciones se apoya en heurísticas (entradas gastadas juntas, patrones de cambio) que fallan con servicios, coinjoins y contratos. El rastreo de fondos depende del criterio elegido —proporcional, FIFO, LIFO, haircut— y el mismo movimiento produce conclusiones distintas según el criterio, lo que basta para entender que un rastreo es un argumento, no una prueba. Cruzar cadenas mediante puentes añade una discontinuidad que solo se salva con supuestos. Por eso la disciplina profesional consiste en etiquetar cada afirmación: hecho (está en la cadena y es verificable), indicador (un patrón compatible con varias explicaciones), inferencia (una lectura razonada con supuestos declarados) e hipótesis (una conjetura pendiente de contraste). Un informe que mezcla las cuatro categorías en el mismo párrafo es, técnicamente, un informe falso.

🎓 Si ya dominas esto
  • Aprendizaje automático aplicado: clasificación supervisada de direcciones por rasgos (grado, importes, ritmo temporal) y no supervisada para agrupar comportamiento. El obstáculo real no es el modelo: es el etiquetado, escaso, sesgado y caro. Un modelo entrenado con etiquetas de un solo proveedor aprende las decisiones de ese proveedor.
  • Desequilibrio de clases: lo ilícito es una fracción diminuta del total, así que la exactitud (accuracy) es una métrica inútil — marcar "todo legítimo" acierta el 99,9 %. Se usan precisión-recall, área bajo la curva PR y matrices de coste asimétrico.
  • Comportamiento coordinado: detección de sincronía temporal y de estructuras repetidas (structuring) sin caer en el sesgo de confirmación.
  • Análisis entre cadenas: seguimiento conceptual por puentes; la correspondencia entre el depósito en la cadena A y la emisión en la B es una inferencia por correlación de importe y tiempo, no una continuidad verificable.
  • Privacidad: mezcladores, CoinJoin y cadenas con privacidad nativa; qué se degrada del análisis y por qué existe una tensión legítima entre privacidad financiera y supervisión.
  • Forense: cadena de custodia de la evidencia, reproducibilidad del análisis, versionado de datos y umbrales, y el papel de un perito que debe poder ser contrainterrogado sobre su método.
  • Regulación: cómo encaja esto con el enfoque basado en riesgo, la Regla de Viaje y la protección de datos personales, tratado en las clases 55–56.

🧪 Laboratorio guiado

Doce prácticas progresivas (72 a 83 del catálogo) sobre una cadena sintética determinista con dos modelos —UTXO y cuentas—, eventos de token, mempool, reorganizaciones y patrones plantados con su verdad de campo. Sin red, sin claves, sin fondos y sin datos personales. La resolución explicada de cada una está en el cuaderno del bloque.

Nivel Prácticas Comandos
1 · Fundamentos 72–73 pnpm lab:bloque · pnpm lab:tx-comparada
2 · Adquisición y preparación 74–75 pnpm lab:extraccion · pnpm lab:normalizar
3 · Análisis on-chain 76–80 pnpm lab:metricas-onchain · pnpm lab:eventos-token · pnpm lab:grafo · pnpm lab:rastreo · pnpm lab:patrones
4 · Avanzado y síntesis 81–83 pnpm lab:anomalias · pnpm lab:panel · pnpm lab:explorador

Empieza por el primero, que es el que fija el vocabulario:

pnpm lab:bloque

🏁 Reto verificable

Construye tu propia detección de cadena de pelado con un criterio distinto al del laboratorio 80 (por ejemplo, exigiendo que el importe residual decrezca de forma monótona y que cada salto ocurra dentro de una ventana temporal que tú fijes) y mídela contra la verdad de campo del dataset con evaluarDetecciones.

Criterio de aceptación: tu detector alcanza al menos el mismo recall que el del laboratorio sobre la cadena plantada, declaras su precisión, e incluyes un párrafo explicando un caso legítimo que tu criterio marcaría por error. Añade tu prueba a labs/28-data-analytics/ y comprueba que pnpm test sigue en verde.

⚠️ Errores frecuentes

Síntoma Causa real
"El volumen diario es enorme" Se está sumando la salida de cambio (UTXO) o movimientos internos: no es actividad económica
"Las transferencias de este token valen 0" Se lee valor de la transacción; el importe está en el log del evento Transfer
"Mi ETL cuenta más transacciones que el explorador" No se retiran los bloques huérfanos tras una reorganización, o se reinsertan por reintentos no idempotentes
"Faltan bloques y no hubo ningún error" La consulta por rango se truncó a la página máxima y se dio por completa
"Estas 5 000 direcciones activas son 5 000 usuarios" Una persona tiene muchas direcciones y un servicio atiende a muchas personas con una
"El top-10 concentra el 60 %: hay una élite" Las direcciones grandes suelen ser custodios: agregan a miles de clientes
"El modelo tiene 99 % de exactitud" Clases desequilibradas: decir "todo legítimo" ya acierta casi siempre; hay que mirar precisión y recall
"El rastreo demuestra que esos fondos son los mismos" Depende del criterio de atribución; con FIFO en vez de proporcional, la conclusión cambia
"Esta dirección es de esta persona" La cadena no contiene identidades: eso es una inferencia con fuente externa, y hay que declararla

🛡️ Seguridad y ética

Esta unidad de clases enseña técnicas de doble uso: las mismas que protegen a una víctima sirven para difamar a un inocente. Las reglas no son adorno:

🔗 Referencias

Fuentes primarias y documentación oficial, consultadas el 2026-08-24:

Título Organización / autor Enlace Publicación Tema de la unidad
Bitcoin Core — Documentación y referencia RPC Bitcoin Core https://bitcoincore.org/en/doc/ continua Niveles 1–2: bloques, transacciones, extracción
Bitcoin Developer Guide — Transactions bitcoin.org https://developer.bitcoin.org/devguide/transactions.html continua Nivel 1: modelo UTXO, cambio, comisiones
Ethereum JSON-RPC API Specification Ethereum Foundation https://ethereum.org/en/developers/docs/apis/json-rpc/ continua Nivel 2: RPC, rangos, logs
Ethereum — Blocks Ethereum Foundation https://ethereum.org/en/developers/docs/blocks/ continua Nivel 1: modelo de cuentas, gas
Ethereum — Accounts Ethereum Foundation https://ethereum.org/en/developers/docs/accounts/ continua Nivel 1: cuentas, nonce, saldo
EIP-20 — Token Standard (evento Transfer) Fabian Vogelsteller, Vitalik Buterin https://eips.ethereum.org/EIPS/eip-20 2015-11-19 Nivel 3: eventos y métricas de token
The Graph — Documentación de subgraphs The Graph https://thegraph.com/docs/en/ continua Nivel 2: indexadores
Updated Guidance for a Risk-Based Approach to Virtual Assets and VASPs FATF/GAFI https://www.fatf-gafi.org/en/publications/Fatfrecommendations/Guidance-rba-virtual-assets.html 2021-10-28 Nivel 4: riesgo, límites regulatorios
Mastering Bitcoin (3.ª ed., libre) Andreas M. Antonopoulos, David A. Harding https://github.com/bitcoinbook/bitcoinbook 2023 Niveles 1 y 3: UTXO, privacidad, análisis
Bitcoin: A Peer-to-Peer Electronic Cash System (§10, privacidad) Satoshi Nakamoto https://bitcoin.org/bitcoin.pdf 2008-10-31 Nivel 1: seudonimato frente a anonimato
Correlation does not imply causation NIST/SEMATECH https://www.itl.nist.gov/div898/handbook/ppc/section1/ppc136.htm consulta vigente Nivel 3: causalidad y contrafactual

Cómo se relaciona cada obra con el resto del programa: bibliografía central.


🧭 Navegación

⬅️ Clases 55–56 · Regulación y cumplimiento · 📚 Índice del currículo · ➡️ Clases 59–60 · Exchanges y operaciones de custodia


🧠 Autoevaluación de la unidad

Responde sin volver atrás. Cada opción incorrecta corresponde a un error frecuente documentado en estas clases: si fallas, la explicación te dice qué releer.