260 lines
11 KiB
Markdown
260 lines
11 KiB
Markdown
# Changelog
|
||
|
||
Todos los cambios notables de Txoko Node Dashboard se documentan aquí.
|
||
|
||
El formato sigue [Keep a Changelog](https://keepachangelog.com/es-ES/1.0.0/)
|
||
y el versionado sigue [Versionado Semántico](https://semver.org/lang/es/):
|
||
`MAYOR.MENOR.PARCHE`.
|
||
|
||
- **MAYOR** — cambios grandes que cambian cómo se usa la herramienta
|
||
- **MENOR** — características nuevas que no rompen lo anterior
|
||
- **PARCHE** — arreglos de errores
|
||
|
||
---
|
||
|
||
## [1.7.0] — 2026-06-04
|
||
|
||
### Añadido
|
||
|
||
- Detección de CoinJoin estructural (WabiSabi y similares). El motor reconocía
|
||
CoinJoin por denominaciones fijas (Whirlpool) o por outputs de igual valor
|
||
(CoinJoin genérico), pero no capturaba WabiSabi, que usa outputs de valor
|
||
variable. Se añadió una tercera variante: detecta mezclas por forma estructural
|
||
(muchos inputs y outputs, ratio cercano a 1, sin output dominante). El
|
||
fingerprint "Wasabi o JoinMarket" se activa también para esta variante.
|
||
|
||
- Check de datos OP_RETURN en el motor de privacidad. Hasta ahora OP_RETURN solo
|
||
se detectaba en la herramienta dedicada de TOOLS. Ahora aparece en el informe
|
||
de privacidad de Auditoría: informa de cuántos outputs OP_RETURN hay y su
|
||
tamaño en bytes, sin mostrar el contenido. Una transacción con OP_RETURN fuerza
|
||
banda BAJA independientemente del resto de señales.
|
||
|
||
- Check de tipo de script legacy (P2PKH/P2SH). Detecta cuando los inputs usan
|
||
direcciones legacy (1... o 3...) en lugar de SegWit (bc1q...) o Taproot
|
||
(bc1p...). Informa de que forman un conjunto de usuarios cada vez más pequeño,
|
||
lo que reduce el anonimato por conjunto. Peso −15, certeza CERTEZA,
|
||
actionability "wallet" (depende del software).
|
||
|
||
### Cambiado
|
||
|
||
- En transacciones CoinJoin, los checks "Mezcla de tipos de script en inputs",
|
||
"Inputs innecesarios (consolidación revelada)" y "Fingerprinting de wallet"
|
||
ahora se muestran como informativos (punto gris, sin penalización) en lugar de
|
||
como advertencias en rojo. En una mezcla, estas condiciones son esperadas por
|
||
diseño del protocolo — no son fallos del usuario.
|
||
|
||
### Corregido
|
||
|
||
- El check de batch payment ya no dispara en transacciones WabiSabi. Al no
|
||
detectarse como CoinJoin, el filtro `!likelyCJ` no se activaba y un WabiSabi
|
||
de 327×279 aparecía marcado como batch. Resuelto al corregir la detección.
|
||
|
||
---
|
||
|
||
## [1.6.0] — 2026-06-03
|
||
|
||
### Añadido
|
||
|
||
- Detección de exchanges (cuarta categoría de entidad, junto a OFAC, minería y
|
||
CoinJoin). Cuando una transacción o un eslabón del rastro toca una dirección
|
||
asociada a un exchange conocido, se marca con 🏦 y aparece en el veredicto y
|
||
en la distancia a entidad del rastro.
|
||
- La detección distingue la fiabilidad de cada dirección según su origen, en
|
||
línea con la honestidad del resto de la herramienta:
|
||
- Direcciones que el propio exchange ha publicado, o de etiquetas públicas
|
||
conocidas, se muestran como coincidencia (certeza PROBABLE).
|
||
- Direcciones inferidas por agrupación (clustering) se muestran como "posible"
|
||
(certeza POSIBLE), avisando claramente de que es una inferencia estadística
|
||
no confirmada por el exchange y de que puede haber falsos positivos.
|
||
- Conjunto inicial de ~590 direcciones de 16 exchanges, mayoritariamente de
|
||
datos de agrupación pública, etiquetadas con su fuente para reflejar su
|
||
fiabilidad.
|
||
|
||
---
|
||
|
||
## [1.5.0] — 2026-06-03
|
||
|
||
### Cambiado
|
||
|
||
- Mejoras de legibilidad del rastro de procedencia, para interpretar los datos
|
||
de un vistazo:
|
||
- Veredicto arriba del rastro: "Camino limpio" (en verde) si nada de lo
|
||
explorado toca entidades marcadas, o "Atención" (en ámbar) indicando qué
|
||
toca y a cuántos saltos. Responde de un vistazo si hay algo que revisar.
|
||
- Jerarquía visual: los eslabones con buena privacidad y sin marcas se
|
||
muestran discretos; los que merecen atención (marca o banda no alta) se
|
||
destacan con color. El ojo va directo a lo relevante.
|
||
- Barra visual de cantidad en cada eslabón, para captar la proporción sin
|
||
leer la cifra; el número queda al lado como apoyo.
|
||
- Indicador de estructura (entradas → salidas) siempre visible junto a cada
|
||
eslabón, útil para detectar consolidaciones grandes de un vistazo.
|
||
- Detalle ampliado al pasar el ratón (o tocar en móvil) sobre el indicador
|
||
de estructura: número exacto de entradas y salidas, valor en sat y BTC,
|
||
bloque, comisión y tasa. Mantiene la vista limpia y el detalle a mano.
|
||
- Contraste de texto mejorado en toda la aplicación. El texto secundario
|
||
(descripciones, datos de apoyo, el texto dentro de las casillas y el pie de
|
||
página) era demasiado tenue y costaba leerlo. Se ha subido su contraste en
|
||
los cuatro temas, manteniendo la jerarquía visual: el texto secundario se
|
||
sigue distinguiendo del principal, pero ahora se lee con comodidad.
|
||
|
||
---
|
||
|
||
## [1.4.0] — 2026-06-02
|
||
|
||
### Añadido
|
||
|
||
- Distancia a una entidad en el rastro de procedencia. A medida que se exploran
|
||
eslabones, un resumen arriba del rastro indica a cuántos saltos está lo más
|
||
cercano de cada tipo marcado (OFAC, minería, CoinJoin) — por ejemplo "minería
|
||
· a 2 saltos". Es honesto sobre su alcance: solo cuenta las ramas que se han
|
||
seguido y avisa de que puede haber más sin explorar.
|
||
|
||
### Corregido
|
||
|
||
- Transacciones coinbase como origen del rastro. Antes mostraban un aviso
|
||
confuso ("este input no indica su transacción de origen"), como si fuera un
|
||
error. Ahora se reconocen como el principio natural del rastro: un mensaje
|
||
claro indica que esas monedas se crearon ahí como recompensa de minado y no
|
||
proceden de ninguna transacción anterior.
|
||
|
||
---
|
||
|
||
## [1.3.0] — 2026-06-02
|
||
|
||
### Añadido
|
||
|
||
- Rastro de procedencia. En la pestaña Auditoría, debajo del informe de
|
||
privacidad, cada input de la transacción tiene un botón "seguir rastro" que
|
||
trae su transacción de origen y muestra un eslabón con: el txid de origen
|
||
(enlace a tu propio Mempool), cuánto fluyó, la fecha, la banda de privacidad
|
||
de esa transacción y marcas relevantes (CoinJoin, OFAC, minería, coinbase).
|
||
- El rastro es recursivo: desde cada eslabón se puede seguir bajando por sus
|
||
propios inputs, encadenando saltos hacia atrás nivel a nivel. Funciona bajo
|
||
demanda —cada consulta la pide el usuario, para no sobrecargar el nodo— y
|
||
comparte una caché en memoria para no repetir transacciones ya consultadas.
|
||
Incluye un límite de profundidad y un botón para limpiar el rastro.
|
||
|
||
### Corregido
|
||
|
||
- Detección de CoinJoin en el rastro: antes marcaba como CoinJoin cualquier
|
||
transacción cuyo análisis mencionara la palabra (lo que ocurría siempre,
|
||
porque existe un indicador con ese nombre aunque dé negativo), produciendo
|
||
falsos positivos. Ahora la marca solo aparece cuando el indicador de CoinJoin
|
||
da positivo de verdad (estructura de varios inputs y salidas de igual valor).
|
||
|
||
---
|
||
|
||
## [1.2.1] — 2026-06-02
|
||
|
||
### Cambiado
|
||
|
||
- La herramienta de OP_RETURN pasa de decodificar y mostrar el contenido a
|
||
solo detectar su presencia y tamaño. Para auditar privacidad, lo relevante
|
||
es que una transacción contenga datos arbitrarios (revela uso de un
|
||
protocolo o servicio), no qué dicen esos datos. Además, la herramienta no
|
||
debe funcionar como visor de contenido arbitrario de la cadena. Ahora indica
|
||
cuántos outputs OP_RETURN hay y su tamaño en bytes, sin mostrar el contenido.
|
||
|
||
---
|
||
|
||
## [1.2.0] — 2026-06-01
|
||
|
||
### Añadido
|
||
|
||
- Exportación del informe de privacidad de una transacción en dos formatos,
|
||
desde la pestaña Auditoría. El botón "↓ JSON" descarga el análisis completo
|
||
con su estructura (score, banda, wallets detectados y todas las señales con
|
||
su detalle), pensado para procesar con scripts o archivar en formato máquina.
|
||
El botón "↓ MD" descarga el informe legible en Markdown (diagnóstico, qué
|
||
puede saber un analista, limitaciones, recomendaciones y una tabla de señales),
|
||
para leer o guardar como documento. Ambos se generan en el navegador y se
|
||
descargan en local — no sale nada del nodo.
|
||
|
||
### Corregido
|
||
|
||
- El botón "Analizar privacidad" del Lab ahora envía correctamente el txid a
|
||
la pestaña Auditoría y lanza el análisis. Antes la pestaña aparecía vacía
|
||
porque el identificador no se transmitía entre vistas.
|
||
|
||
---
|
||
|
||
## [1.1.0] — 2026-06-01
|
||
|
||
### Añadido
|
||
|
||
- Exportación del UTXO Map a CSV. Un botón "↓ CSV" en el UTXO Map descarga
|
||
todos los UTXOs de la dirección analizada con su información: txid, vout,
|
||
valor en sats y en BTC, estado de confirmación, altura de bloque, score
|
||
de privacidad y problemas detectados. El archivo se genera en el navegador
|
||
y se descarga en local — no pasa por ningún servidor, no sale nada del nodo.
|
||
Pensado para abrir en una hoja de cálculo y ordenar o filtrar los UTXOs
|
||
por privacidad.
|
||
|
||
---
|
||
|
||
## [1.0.0] — 2026-05-31
|
||
|
||
Primera versión completa y funcional. Suite de auditoría de privacidad
|
||
Bitcoin self-hosted, con motor de análisis, exploración de cadena, monitor
|
||
del nodo y detección de entidades.
|
||
|
||
### Motor de análisis de privacidad
|
||
|
||
- Análisis de transacción con 15+ heurísticas ponderadas
|
||
- Score de privacidad por bandas (ALTA / MEDIA / BAJA), sin precisión
|
||
numérica falsa
|
||
- Informe narrativo en prosa: explica qué puede deducir un observador
|
||
- Distinción explícita entre certeza, probabilidad y posibilidad en cada señal
|
||
- Etiquetas de accionabilidad: qué es evitable, qué depende del wallet,
|
||
qué ya está en la cadena y no se puede cambiar
|
||
|
||
### Detección de CoinJoin
|
||
|
||
- Whirlpool con denominaciones fijas y tolerancia del 2%
|
||
- CoinJoin genérico por outputs de igual valor
|
||
- Filtro de denominación mínima (10.000 sats) — descarta mezclas de polvo
|
||
que no son CoinJoin reales
|
||
- OP_RETURN tratado correctamente: un Whirlpool con OP_RETURN de cambio se
|
||
sigue detectando
|
||
- Supresión de penalizaciones coherente: en una mezcla no penaliza señales
|
||
que son esperadas
|
||
|
||
### Fingerprinting de wallet
|
||
|
||
- Detección de BlueWallet, Bitcoin Core, Sparrow, Electrum y wallets con
|
||
Taproot nativo a partir de señales estructurales combinadas
|
||
- Wallet inferido del tipo de CoinJoin (Whirlpool → Samourai/Sparrow,
|
||
genérico → Wasabi/JoinMarket)
|
||
- En CoinJoin el fingerprinting es informativo y no penaliza
|
||
|
||
### Detección de entidades
|
||
|
||
- Índice de ~155 direcciones embebido, lookup local sin consultas externas
|
||
- OFAC: alerta crítica si una dirección está en la lista de sanciones
|
||
(Blender.io, Sinbad, Garantex, Suex, Chatex, Lazarus Group)
|
||
- Mining pools: marca informativa de origen en pool de minería
|
||
(F2Pool, Foundry, Antpool, MARA, Braiins, Luxor, Ocean, NiceHash, Bitfury)
|
||
|
||
### Exploración y monitor
|
||
|
||
- Explorador de bloques y búsqueda on-chain
|
||
- Vista de Mempool con stats, fees y bloques proyectados
|
||
- Monitor del nodo: estado de Bitcoin Core, sistema y logs en tiempo real
|
||
- UTXO Map con score de privacidad por moneda
|
||
- Herramientas: conversor de unidades, validador de dirección, decodificadores
|
||
|
||
### Experiencia de uso
|
||
|
||
- El análisis se mantiene al cambiar de pestaña y volver (Privacy Lab y
|
||
Auditoría) — el estado vive en memoria, sin escribir en disco
|
||
- Diseño responsive para móvil
|
||
- Tema cypherpunk
|
||
|
||
### Filosofía
|
||
|
||
- Sin dependencias externas de datos: todo viene del propio nodo del usuario
|
||
- Ninguna consulta sale de la red del usuario
|
||
- Didáctica honesta sobre las limitaciones del análisis
|
||
|
||
[1.0.0]: https://git.bitcointxoko.org/pikaro/txoko-dashboard
|