Files
txoko-dashboard/README.md
T

6.8 KiB

Txoko Node Dashboard

Suite de auditoría de privacidad Bitcoin para nodos propios.

your node, your rules — ninguna consulta sale de tu red.


Qué es

Txoko es una herramienta de auditoría de privacidad Bitcoin que corre sobre tu propio nodo. Analiza tus transacciones y te explica qué puede deducir un observador externo sobre tu actividad on-chain.

No es un explorador de bloques genérico. Es una herramienta para que el propietario de un nodo audite su propia privacidad con total control sobre sus datos.

Lo esencial: ninguna consulta sale de tu red. Todo el análisis ocurre en tu nodo y en tu navegador. No dependes de servicios externos ni expones qué transacciones o direcciones estás investigando.


Qué NO hace

Tan importante como saber qué hace es saber qué no hace:

  • No envía datos a ningún servidor externo — ni analíticas, ni telemetría, ni consultas a APIs de terceros
  • No identifica a otras personas — es una herramienta de auto-auditoría, no de vigilancia
  • No da consejos de inversión — analiza privacidad on-chain, nada más
  • No afirma más de lo que sabe — distingue siempre entre CERTEZA, PROBABLE e POSIBLE
  • No tiene número de score exacto — muestra bandas (ALTA/MEDIA/BAJA); la precisión numérica sería falsa
  • No muestra el contenido de OP_RETURN — solo informa de su presencia y tamaño

Cómo verificar que nada sale de tu red

El código es un único archivo HTML autocontenido. Puedes auditarlo tú mismo:

# Buscar cualquier llamada a dominios externos
grep -E "fetch\(|XMLHttpRequest|src=\"http|href=\"http" dashboard.html

Verás que todas las llamadas van a rutas relativas (/api/, /system/) que apuntan a tu propio nodo vía nginx. No hay ninguna llamada a dominios externos en el código de análisis.

Las únicas dependencias externas son las librerías del frontend (React, Babel) que se cargan desde CDN al abrir la página. Estas no reciben ningún dato de tus transacciones — solo sirven el código de la interfaz.


Funcionalidades

Auditoría de privacidad

  • Análisis de transacción con más de 20 heurísticas ponderadas
  • Detección de CoinJoin: Whirlpool (denominaciones fijas), WabiSabi (estructura de mezcla), CoinJoin genérico
  • Detección de OP_RETURN: presencia y tamaño, sin mostrar contenido
  • Detección de tipo legacy (P2PKH/P2SH) vs SegWit/Taproot
  • Wallet fingerprinting: Bitcoin Core, Sparrow, BlueWallet, Taproot nativo y otros
  • Detección de entidades: OFAC, pools de minería, exchanges conocidos (~745 direcciones)
  • Rastro de procedencia: sigue cada input hacia atrás salto a salto, bajo demanda
  • Distancia a entidad: a cuántos saltos está lo más cercano de cada tipo marcado
  • Informe narrativo: qué puede deducir un analista, en prosa, sin jerga
  • Bandas de privacidad con distinción explícita CERTEZA / PROBABLE / POSIBLE
  • Exportación del informe en JSON y Markdown

Exploración on-chain

  • UTXO Map con score de privacidad por moneda, exportable a CSV
  • Explorador de bloques y búsqueda on-chain
  • Mempool: stats, fees, fee intelligence, bloques proyectados

Monitor del nodo

  • Estado de Bitcoin Core, sistema (CPU, RAM, disco) y logs en tiempo real
  • Checklist de seguridad del nodo

Herramientas

  • Conversor sat/BTC/fiat
  • Validador de dirección
  • Detector OP_RETURN
  • Decodificador PSBT y transacción raw

Filosofía

  • Sin dependencias externas de datos — todo viene de tu propio nodo
  • Honestidad sobre la certeza — siempre distingue hechos de inferencias
  • Informa, no aconseja — da el dato y la consecuencia; tú decides
  • Calibrado al riesgo real — no alarma por lo normal; reserva la alerta para lo que importa
  • Ligero por defecto — el rastro de procedencia es bajo demanda para no estresar el nodo

Requisitos

  • Bitcoin Core con txindex=1
  • Mempool.space self-hosted (backend API)
  • Fulcrum (índice Electrum, recomendado)
  • nginx como proxy inverso
  • Acceso via Tailscale, red local o similar

Probado sobre Ubuntu Server 24.04 con HP EliteDesk (i5, 32GB RAM, 2TB NVMe).


Instalación

1. Clonar el repositorio

git clone https://git.bitcointxoko.org/pikaro/txoko-dashboard.git
cd txoko-dashboard

2. Copiar el dashboard

cp dashboard.html /var/www/txoko/dashboard.html
# o donde lo sirvas con nginx

3. Copiar el backend de métricas

cp system-metrics.js /home/armg/txoko/system-metrics.js

Editar system-metrics.js y añadir tus credenciales RPC de Bitcoin Core (el archivo del repo usa placeholders).

4. Configurar el servicio systemd

sudo cp txoko-metrics.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable txoko-metrics
sudo systemctl start txoko-metrics

5. Configurar nginx

Añadir a tu configuración de nginx:

# Dashboard
location /dashboard {
    alias /var/www/txoko/dashboard.html;
}

# API Mempool (ajusta el puerto según tu instalación)
location /api/ {
    proxy_pass http://localhost:8999;
}

# Métricas del sistema
location /system/ {
    proxy_pass http://127.0.0.1:4082;
}

6. Abrir en el navegador

http://TU-IP-TAILSCALE:4080/dashboard

Introduce la URL de tu Mempool en el modal de configuración y empieza a analizar.


Estructura del repositorio

txoko-dashboard/
├── dashboard.html          # Frontend completo (HTML + CSS + JS en un solo archivo)
├── system-metrics.js       # Backend de métricas del nodo (Node.js)
├── txoko-metrics.service   # Servicio systemd
├── README.md
├── SETUP.md
├── CHANGELOG.md
└── LICENSE

El frontend es un único archivo HTML autocontenido. Sin bundler, sin npm, sin proceso de build. Babel transpila el JSX en el navegador. Puedes auditarlo todo abriendo el archivo.


Limitaciones conocidas

  • Análisis de transacción aislada — sin seguir el grafo completo, algunas heurísticas tienen techo. El rastro de procedencia amplía el contexto pero es bajo demanda y no exhaustivo
  • 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
  • Sin análisis de red — no cruza datos con otros nodos ni mempool distribuida

Historial de cambios

Los cambios de cada versión se documentan en CHANGELOG.md.


Contribuir

Proyecto en desarrollo activo. Issues y PRs bienvenidos.

Si encuentras un falso positivo en alguna heurística o tienes un caso de prueba interesante, abre un issue con el txid y lo que esperabas ver.


Licencia

MIT — ver LICENSE


₿ txoko · your node, your rules