Compare commits
15
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2abcdee144 | ||
|
|
50c19ebc9f | ||
|
|
a5d58dadd4 | ||
|
|
4280274239 | ||
|
|
7f3e2b5abc | ||
|
|
b9477c6139 | ||
|
|
039c916f55 | ||
|
|
d8c1e845b3 | ||
|
|
fcc19c31e1 | ||
|
|
6f3ca4ed7a | ||
|
|
6fcffb2096 | ||
|
|
ee817a8c9b | ||
|
|
2e97a6b822 | ||
|
|
133e292aab | ||
|
|
e89fea499c |
@@ -10,6 +10,64 @@ 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.
|
||||||
|
- **A demanda, salto a salto:** el rastreo no corre solo — tú decides
|
||||||
|
cuándo se explora el siguiente salto con el botón "Seguir el rastro",
|
||||||
|
viendo en todo momento cuántas transacciones se han explorado y
|
||||||
|
cuántas ramas quedan pendientes. Mismo espíritu que el rastro de
|
||||||
|
procedencia hacia atrás (RastroProcedencia), aplicado al rastreo hacia
|
||||||
|
adelante. Puedes generar el informe con lo explorado hasta ese momento,
|
||||||
|
sin necesidad de terminar el rastreo entero.
|
||||||
|
- Tope de volumen de transacciones (`tx_count`) como cinturón de
|
||||||
|
seguridad aparte del control manual: si una dirección de salida tiene
|
||||||
|
un historial extremadamente largo (miles de transacciones — típico de
|
||||||
|
un hot wallet de exchange), el rastro se detiene ahí por precaución
|
||||||
|
aunque el heurístico de perfil no la clasifique como custodio. Evita
|
||||||
|
que una sola rama intente paginar el historial completo de una
|
||||||
|
dirección con decenas de miles de transacciones.
|
||||||
|
- 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
|
||||||
|
|||||||
@@ -60,6 +60,16 @@ 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)
|
||||||
|
- A demanda: tú decides cuándo se explora cada salto con el botón "Seguir el rastro" — nada corre sin que lo pidas, igual que el rastro de procedencia hacia atrás. Puedes generar el informe con lo explorado hasta ese momento, sin terminar el rastreo entero
|
||||||
|
- Tope de volumen de transacciones como cinturón de seguridad extra: una dirección con un historial enorme (típico de un hot wallet de exchange) detiene el rastro por precaución, para no intentar paginar decenas de miles de transacciones
|
||||||
|
- 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 +203,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
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
+1130
-80
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user