██████╗ ██████╗ ██████╗ ████████╗ ██████╗ █████╗ ██╗ ██╗███████╗███████╗
██╔══██╗██╔═══██╗██╔═══██╗╚══██╔══╝██╔════╝ ██╔══██╗██║ ██║██╔════╝██╔════╝
██████╔╝██║ ██║██║ ██║ ██║ ██║ ███████║██║ ██║███████╗█████╗
██╔══██╗██║ ██║██║ ██║ ██║ ██║ ██╔══██║██║ ██║╚════██║██╔══╝
██║ ██║╚██████╔╝╚██████╔╝ ██║ ╚██████╗ ██║ ██║╚██████╔╝███████║███████╗
╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚══════╝
B L O C K C H A I N S E C U R I T Y
En una cadena programable puedes tener las claves perfectas y perderlo todo igual:
porque una EOA olvidada seguía siendo owner de un proxy, porque un oráculo dejó de
actualizarse,
o porque un puente con quorum 2-de-3 tenía los tres firmantes en la misma nube.
Eso es lo que esta consola vigila —sin custodiar una sola clave.
Diagnóstico primero. Intervención después.
Un semáforo que siempre explica por qué está en el color en que está: la ruta causal completa, de la condición sistémica al impacto, con la evidencia pública que la sostiene.
Postura de seguridad · el panel que se abre al arrancar.
Un rol crítico controlado por una EOA, un multisig con umbral débil, un
upgrade sin demora mínima, un timelock por debajo de política. Son las condiciones que
convierten un error en una pérdida total, y no aparecen en ningún log.
Feeds concentrados sin fallback, datos vencidos respecto de su heartbeat, puentes con quorum insuficiente o con operadores que solo parecen independientes. La dependencia externa es la superficie que más dinero ha costado en este ecosistema.
Bytecode desplegado que no se puede relacionar con fuente, compilador ni artefacto revisado. Y dependencias sin fijar o sin evidencia de procedencia: la cadena de suministro que auditas empieza por la tuya.
Un cambio privilegiado sin aprobación registrada y una salida de valor fuera de política. La aprobación se compara por hash: no basta con que alguien diga que estaba autorizado.
Cuentas públicas vigiladas: allowances ilimitados, spenders fuera de política, operadores NFT, permits usados, candidatos de address poisoning, cambios de smart account y delegaciones EIP-7702. Sin conectar wallet, sin revocar, sin firmar: cada hallazgo remite a un runbook humano.
Un observador caído, conectado al chain ID equivocado o atrasado no es un detalle técnico: es una ceguera. El producto lo trata como incidente, no como un aviso al pie.
Adaptador EVM de solo lectura incluido. Solana, Cosmos, Substrate y cualquier otra red envían hechos ya normalizados a la API. El motor causal no depende de ningún SDK de cadena.
Cada hallazgo abre con lo que un operador necesita para decidir: explicación, causa raíz, evidencia conservada y remediación segura. Nada que haya que interpretar.
Diecinueve incidentes del estado de demostración, ordenados por severidad.
El detalle: causa raíz, evidencia y remediación.
Wallet Posture: cuentas públicas vigiladas, sin conectar wallet, sin revocar, sin firmar.
Inventario: solo procedencia y controles verificables.
Trece controles, veintidós detecciones deterministas.
Reglas deterministas con umbral explícito. Ninguna puntuación opaca, ningún modelo que no pueda explicar su veredicto. Un gate de CI impide que esta tabla se desincronice del motor.
| Código | Control | Detección |
|---|---|---|
BLK-CONTRACT-001 | SC-PROVENANCE | Fuente desplegada sin procedencia verificada |
BLK-ACCESS-001 | ADMIN-CONTAINMENT | Admin crítico controlado por una EOA |
BLK-ACCESS-002 | ADMIN-CONTAINMENT | Multisig administrativo con umbral débil |
BLK-UPGRADE-001 | ADMIN-CONTAINMENT | Upgrade sin demora mínima |
BLK-ORACLE-001 | ORACLE-RESILIENCE | Oráculo concentrado y sin fallback |
BLK-ORACLE-002 | ORACLE-RESILIENCE | Feed vencido respecto de su heartbeat |
BLK-BRIDGE-001 | BRIDGE-QUORUM | Puente con quorum u operadores insuficientes |
BLK-GOV-001 | GOVERNANCE-DELAY | Timelock de gobernanza inferior a política |
BLK-SUPPLY-001 | SUPPLY-CHAIN | Dependencia no fijada o sin procedencia |
BLK-EVENT-001 | CHANGE-APPROVAL | Cambio privilegiado sin aprobación registrada |
BLK-FUNDS-001 | VALUE-EGRESS | Salida de valor anómala no aprobada |
BLK-NODE-001 | OBSERVER-INTEGRITY | Observador RPC no disponible |
BLK-NODE-002 | OBSERVER-INTEGRITY | RPC conectado al chain ID equivocado |
BLK-NODE-003 | OBSERVER-INTEGRITY | Observador atrasado |
BLK-WALLET-001 | WALLET-ALLOWANCE | Allowance ilimitado o superior a política |
BLK-WALLET-002 | WALLET-COUNTERPARTY | Spender no reconocido por la política local |
BLK-WALLET-003 | WALLET-ALLOWANCE | Operador NFT (ApprovalForAll) fuera de política |
BLK-WALLET-004 | WALLET-ALLOWANCE | Permit utilizado fuera de política |
BLK-WALLET-005 | WALLET-COUNTERPARTY | Posible address poisoning (candidato heurístico) |
BLK-WALLET-006 | SMART-ACCOUNT-INTEGRITY | Cambio inesperado en smart account |
BLK-WALLET-007 | SMART-ACCOUNT-INTEGRITY | Delegación EOA EIP-7702 inesperada |
BLK-WALLET-008 | WALLET-ACTIVITY | Actividad inesperada de una cuenta vigilada |
Cualquiera puede escribir «no guardo tus claves» en un README. Aquí cada afirmación tiene un script que la comprueba y un job de CI que lo ejecuta en cada push, sobre la aplicación en marcha.
No acepta material secreto. El gate arranca el servidor real y le envía claves privadas,
mnemónicos, keystores, tokens de proveedor y URLs con credenciales. Todas deben ser rechazadas con
422. Si una pasa, el build cae.
No puede firmar ni gastar. La allowlist JSON-RPC se comprueba por su efecto, no por su
texto: eth_sendRawTransaction, eth_sign, personal_unlockAccount y
compañía deben ser rechazados.
Cero dependencias, cero orígenes remotos. Si alguien añade un paquete npm, un CDN en el panel, un proveedor RPC alojado o abre la CSP, el build cae. El árbol de dependencias se verifica además por una segunda vía independiente.
El paquete de escritorio arranca con contenido. CI empaqueta la aplicación, ejecuta el
.cmd real que usa el usuario y comprueba que sirve inventario. Una aplicación que abre
vacía es el fallo que nadie detecta a tiempo.
El runtime empaquetado es el oficial. El node.exe se descarga de nodejs.org
y se verifica por SHA-256 contra SHASUMS256.txt antes de entrar en el paquete. El hash queda
registrado dentro, en BUILD-INFO.json.
La documentación no miente. Un gate comprueba que ningún documento enlaza a un archivo inexistente, y otro que las reglas del motor, el catálogo de controles, la política y el README describen exactamente el mismo conjunto.
Un producto de seguridad que solo enumera lo que sabe hacer es un folleto. Estos son los límites reales, escritos por quien lo construyó.
Ninguno de los dos formatos requiere Node.js instalado, ni permisos de administrador, ni conexión a Internet en tiempo de ejecución.
Instala por usuario y crea los accesos directos. …-win-x64-setup.exe
Para equipos donde no se instala software, auditoría, o uso desde una unidad extraíble.
…-win-x64-portable.zip
Cada release incluye SHA256SUMS.txt. Compara el resultado con la línea correspondiente.
Get-FileHash .\RootCause-Blockchain-Security-0.3.0-win-x64-setup.exe -Algorithm SHA256
Node.js 22.12 o superior. No instala nada más.
git clone https://github.com/vladimiracunadev-create/rootcause-blockchain-security
cd rootcause-blockchain-security
corepack enable
pnpm start
Abre http://127.0.0.1:8790. Arranca en modo demostración: datos
ficticios y todo en memoria.
Ocho diapositivas en 16:9 y una pauta del expositor con el guion palabra por palabra, los tiempos de cada lámina y cuatro anexos —incluida la lista de lo que no hay que prometer—. Unos 32 minutos de charla.
Diapositivas (PDF) Pauta del expositor (PDF) Ver en el navegador
Seis ediciones, una misma idea: cualquier distorsión anómala de los recursos, la configuración o el control puede ser el primer indicio de que algo está ocurriendo.
Inspectors — ¿este dispositivo se está comportando raro?
Rust + egui · persistencia, defensas, procesos y red en Windows 10/11.
Rust + egui · LaunchAgents, Gatekeeper, SIP, TCC y firewall en macOS 13+.
Extensión MV3 + Node · cookies, sesiones, extensiones, descargas y permisos.
Flutter · permisos de app, consumo y superficie móvil.
Digital Assets — ¿este sistema de valor está bien controlado?
UTXO, wallets, firmantes, PSBT y Bitcoin Core. Procedencia de las claves.
Contratos, proxies, oráculos, puentes, gobernanza y cadena de suministro.