fix: OFAC y RBF dejan de penalizar la privacidad; heurísticas que no afirman de más

Un hit de OFAC restaba 20 puntos de la banda de privacidad, pero no revela
nada más sobre el usuario: su privacidad es idéntica antes y después. Lo que
cambia es la exposición a que un servicio regulado le bloquee un depósito —
otro eje distinto. Penalizarlo era además asumir la lógica de las 'monedas
contaminadas', la que la fungibilidad de Bitcoin niega. Ahora es informativo,
con el contexto que faltaba sobre qué es y qué no es esa lista.

RBF igual: es buena práctica y casi universal; restar por usarlo empujaba a
gastar peor para esconder una señal débil.

Checks con inferencia fuerte reescritos con Hecho/Interpretación/Consecuencia:
ya no dicen 'sin ambigüedad' donde la señal puede fallar.

README: nueva sección 'Sí, esto es chain analysis' — negarlo restaba
credibilidad ante quien lee el código. Y el informe advierte ahora del coste
de denunciar y de manejar el archivo exportado.
This commit is contained in:
2026-07-27 13:56:18 +02:00
parent a696e55bef
commit 0223bb16ef
3 changed files with 136 additions and 28 deletions
+44
View File
@@ -42,6 +42,50 @@ y el versionado sigue [Versionado Semántico](https://semver.org/lang/es/):
`system-metrics.js` en el servidor.
- Medido: repetir un rastreo forense ya explorado cuesta **cero peticiones**.
### Cambiado
- **Un hit de OFAC ya no penaliza la banda de privacidad.** Era un error
conceptual con consecuencias ideológicas: que tus monedas hayan pasado por una
dirección sancionada no revela nada más sobre ti — tu privacidad es idéntica
antes y después. Lo que cambia es la probabilidad de que un servicio regulado
te bloquee un depósito, que es otro eje: censurabilidad, no privacidad.
Restar puntos ahí equivalía a dar por buena la idea de "monedas contaminadas",
justo la que la fungibilidad de Bitcoin niega. Se sigue informando del riesgo
real, ahora como aviso de censura y con el contexto que faltaba: la lista OFAC
es una decisión política de un gobierno concreto, no una determinación
judicial, y fuera de su jurisdicción solo llega a través de intermediarios que
la aplican.
- **RBF pasa a informativo, sin penalización.** Es buena práctica —permite
desatascar una transacción sin sobrepagar de entrada— y hoy lo activan casi
todos los wallets, así que distingue poco. Restar puntos empujaba al usuario
hacia una decisión peor para esconder una señal débil.
- Checks con inferencia fuerte (`round_numbers`, `unnecessary_input`,
`output_type_mismatch`) reescritos con el patrón Hecho / Interpretación /
Consecuencia que ya usaban `dust` e `input_type_mixing`. Antes afirmaban de
más ("un analista puede identificarlo sin ambigüedad"); ahora explican cuándo
la señal falla y por qué son PROBABLE y no CERTEZA.
- `timing`: el texto didáctico describía patrones entre varias transacciones
cuando el check solo ve una. Además se aclara que la hora mostrada es la del
bloque, no la de la firma — entre ambas puede haber horas de mempool.
### Documentación
- README: nueva sección **"Sí, esto es chain analysis"**. El peritaje usa las
mismas técnicas que las empresas de vigilancia de cadena y negarlo restaba
credibilidad ante quien lee el código. Se explica qué cambia —quién lo
ejecuta, sobre qué, dónde se detiene, quién se queda el informe— y el motivo
de fondo: la misma herramienta que sigue el rastro de un ladrón demuestra lo
fácil que es seguir el tuyo.
- El informe forense advierte del coste de denunciar: entregarlo vincula tu
identidad legal con esas direcciones de forma permanente, ante una autoridad
que puede compartir el expediente con empresas de análisis. Antes se
recomendaba denunciar sin mencionar el precio.
- Aviso junto a los botones de exportación: el archivo lleva tus direcciones y
tu declaración dentro. Nada ha salido de tu red hasta ese punto; a partir de
ahí depende de quien lo descarga.
- Corregido "un único archivo HTML autocontenido" (aparecía cuatro veces): desde
la 1.11.0 las librerías viven en `vendor/`. Se sustituye por una descripción
exacta que además dice más — lo que lees en el archivo es lo que se ejecuta,
no hay versión compilada que auditar por separado.
### Corregido
- **El informe ya no atribuye al actor direcciones del otro lado de un
CoinJoin.** Detectado probando un rastro que atraviesa un Whirlpool real: el