docs: documentar módulo Peritaje forense implementado

CHANGELOG (1.10.0) y README reflejan que el peritaje forense ya está
implementado, no solo especificado: qué hace, qué heurísticas reutiliza
y cuáles son nuevas, el marco HECHO/INFERENCIA/DECLARACION, y la
limitación conocida de depender de /api/address/{addr}/txs en vez de
/outspend (el backend Mempool self-hosted no lo expone).
This commit is contained in:
Aitor
2026-07-16 12:51:30 +02:00
parent fcc19c31e1
commit d8c1e845b3
2 changed files with 54 additions and 0 deletions
+45
View File
@@ -10,6 +10,51 @@ y el versionado sigue [Versionado Semántico](https://semver.org/lang/es/):
- **MENOR** — características nuevas que no rompen lo anterior - **MENOR** — características nuevas que no rompen lo anterior
- **PARCHE** — arreglos de errores - **PARCHE** — arreglos de errores
---
## [1.10.0] — 2026-07-16
### Añadido
- Peritaje forense: nueva pestaña que rastrea fondos robados o perdidos hacia
adelante, salto a salto, desde una transacción de origen (`txid:vout`) hasta
un punto de parada natural — custodio identificado, dilución excesiva,
CoinJoin real, o fondos aún sin gastar. Todo el rastreo corre sobre tu
propio nodo (Bitcoin Core + Fulcrum + Mempool self-hosted), como el resto
de la app: ninguna consulta sale de tu red.
- Sigue todos los outputs de cada salto (no solo el presunto cambio),
porque los fondos pueden repartirse en varias ramas; cada rama se
detiene de forma independiente y puede ampliarse con "seguir más
saltos" si el límite por defecto se queda corto.
- Reutiliza las heurísticas existentes del analizador (CIOH, detección de
cambio estructural, huella de wallet, CoinJoin, entidades conocidas) y
añade tres nuevas: perfil de dirección (personal vs hot wallet de
exchange), cambio conductual (se gasta rápido vs queda quieto) cruzado
con la señal estructural, y comparación de huella de software entre
saltos consecutivos.
- Confirma cadenas de peeling multi-salto: el check de patrón de pago
simple ya avisaba de que una sola transacción no basta para confirmar
una cadena — este módulo es lo que cierra ese hueco, siguiendo el rastro
hacia adelante de verdad.
- Marco de tres niveles en cada afirmación del informe: HECHO (dato
on-chain verificable), INFERENCIA (conclusión de una heurística, con su
propia sub-etiqueta CERTEZA/PROBABLE/POSIBLE) y DECLARACIÓN (lo que
cuenta el afectado, en un formulario de texto libre, siempre mostrado
aparte y nunca mezclado con los hechos).
- Informe con resumen, declaración del afectado, cronología, direcciones
atribuidas con su fundamento, fondos localizados sin gastar,
conclusiones numeradas, recomendaciones (con un aviso fijo contra
estafas de "recuperación de fondos" siempre que hay declaración),
metodología y anexo de verificación. Exportable a JSON y Markdown, igual
que el informe de wallet.
- No identifica la identidad real de nadie: como mucho llega a "hot wallet
de [exchange]" o "custodio no identificado". No hace denuncias ni envíos
automáticos a terceros — el informe es un documento que decides tú a
dónde llevar.
### Cambiado
- `unionFindCluster` (vinculación por CIOH) y `guessChangeOutput` (señales de
cambio estructural) se extrajeron de `buildWalletReport` y `analyzeTx`
respectivamente a funciones compartidas, sin cambio de comportamiento, para
que el peritaje forense las reutilice salto a salto.
--- ---
## [1.9.0] — 2026-06-12 ## [1.9.0] — 2026-06-12
### Añadido ### Añadido
+9
View File
@@ -60,6 +60,14 @@ Las únicas dependencias externas son las librerías del frontend (React, Babel)
- Bandas de privacidad con distinción explícita CERTEZA / PROBABLE / POSIBLE - Bandas de privacidad con distinción explícita CERTEZA / PROBABLE / POSIBLE
- Exportación del informe en JSON y Markdown - Exportación del informe en JSON y Markdown
**Peritaje forense**
- Rastreo de fondos robados o perdidos hacia adelante, salto a salto, desde una transacción de origen hasta un punto de parada natural (custodio identificado, dilución, CoinJoin, o fondos aún sin gastar)
- Reutiliza las heurísticas del analizador (CIOH, cambio, huella de wallet, entidades) y añade perfil de dirección (personal vs hot wallet), cambio conductual y comparación de huella entre saltos
- Confirma cadenas de peeling multi-salto, algo que el análisis de una sola transacción no puede hacer por sí solo
- Cada afirmación del informe se etiqueta como HECHO, INFERENCIA (con su propia certeza) o DECLARACIÓN — nunca se mezclan
- Informe exportable a JSON y Markdown con cronología, direcciones atribuidas, fondos sin gastar, conclusiones y metodología
- No identifica la identidad real de nadie; no envía nada a terceros — el informe es tuyo para decidir qué hacer con él
**Integración con Sparrow** **Integración con Sparrow**
- Importación de etiquetas BIP-329: carga el `.jsonl` que exporta Sparrow y muestra tus propias etiquetas junto al análisis. Se lee en memoria, no sale del navegador - Importación de etiquetas BIP-329: carga el `.jsonl` que exporta Sparrow y muestra tus propias etiquetas junto al análisis. Se lee en memoria, no sale del navegador
- Watch-only por xpub/zpub: pega tu Master Public Key y Txoko deriva tus direcciones en local para marcar, en cada transacción, qué outputs son tuyos (recepción o cambio). La derivación BIP32 está implementada sin librerías externas; el xpub nunca sale del navegador. Requiere HTTPS (ver nota más abajo) - Watch-only por xpub/zpub: pega tu Master Public Key y Txoko deriva tus direcciones en local para marcar, en cada transacción, qué outputs son tuyos (recepción o cambio). La derivación BIP32 está implementada sin librerías externas; el xpub nunca sale del navegador. Requiere HTTPS (ver nota más abajo)
@@ -193,6 +201,7 @@ El frontend es un único archivo HTML autocontenido. Sin bundler, sin npm, sin p
- **Base de datos de entidades parcial** — ~745 direcciones de exchanges, OFAC y minería. Cubre los casos más comunes; no es completa - **Base de datos de entidades parcial** — ~745 direcciones de exchanges, OFAC y minería. Cubre los casos más comunes; no es completa
- **Fingerprinting conservador** — requiere varias señales coincidentes; prefiere no detectar antes que detectar mal - **Fingerprinting conservador** — requiere varias señales coincidentes; prefiere no detectar antes que detectar mal
- **Sin análisis de red** — no cruza datos con otros nodos ni mempool distribuida - **Sin análisis de red** — no cruza datos con otros nodos ni mempool distribuida
- **Peritaje forense sin `/outspend`** — el backend Mempool self-hosted no expone ese endpoint, así que cada salto se resuelve recorriendo el historial de la dirección receptora. Más peticiones que un `/outspend` directo, con throttling por lotes para no saturar el nodo
--- ---