{
  "release": {
    "id": "bitcoin-safe-open-threat-model",
    "version": "1.0.0",
    "status": "current",
    "publishedAt": "2026-08-28",
    "reviewedAt": "2026-08-28",
    "canonicalPath": "/research/bitcoin-threat-model/1.0.0",
    "currentPath": "/research/bitcoin-threat-model",
    "license": {
      "id": "CC-BY-4.0",
      "name": "Creative Commons Attribution 4.0 International",
      "url": "https://creativecommons.org/licenses/by/4.0/",
      "scope": "El texto, la taxonomía, los datos de relaciones y los archivos de investigación generados del modelo se publican con licencia CC BY 4.0. El código de la aplicación y el resto del sitio quedan fuera de este aviso."
    },
    "repositoryUrl": "https://github.com/kevinkinnett/bitcoinsafe/tree/main/public/research/bitcoin-threat-model/1.0.0",
    "correctionUrl": "https://github.com/kevinkinnett/bitcoinsafe/issues"
  },
  "language": "es",
  "title": "Modelo abierto de amenazas para la custodia de Bitcoin de BitcoinSafe",
  "summary": "Un marco público para examinar cómo los fallos operativos y los ataques pueden provocar gastos no autorizados, pérdida de capacidad de recuperación, exposición de privacidad o fallos de continuidad. Cada amenaza se vincula con controles, pruebas esperadas y riesgo restante.",
  "audience": "Personas que gestionan su propia custodia de Bitcoin, educadores que explican la autocustodia y desarrolladores que necesitan identificadores públicos estables para sus guías. El modelo no se adapta a una persona, saldo, jurisdicción o adversario concretos.",
  "methodology": "El modelo sigue una secuencia de alcance, amenaza, respuesta y revisión. Las prioridades describen hasta qué punto una condición puede conducir directamente a una pérdida; no estiman probabilidades. Los controles reducen vías de fallo concretas, pero nunca certifican que una cartera o configuración sea segura.",
  "certificationBoundary": "Esta publicación es un marco de razonamiento, no una puntuación de seguridad, auditoría, garantía, recomendación de producto ni certificación. La documentación pública puede estar incompleta, las implementaciones pueden contener fallos y los controles bien aplicados siguen dejando riesgo residual.",
  "assumptions": [
    {
      "id": "assumption-bitcoin-key-authority",
      "title": "La autoridad de gasto depende de las claves y la política válidas",
      "description": "Quien pueda satisfacer la política de la cartera puede autorizar un gasto. Perder todas las vías de recuperación válidas puede volver inaccesibles los fondos aunque la red Bitcoin siga funcionando."
    },
    {
      "id": "assumption-hosts-can-fail",
      "title": "Los dispositivos y servicios de uso general pueden fallar o ser comprometidos",
      "description": "Los teléfonos, ordenadores, sesiones del navegador, cuentas en la nube, plataformas, coordinadores y canales de comunicación se consideran falibles, no fiables por defecto."
    },
    {
      "id": "assumption-human-operation",
      "title": "El error humano forma parte del entorno operativo",
      "description": "El modelo incluye errores al manejar copias, recuperar, revisar transacciones, controlar accesos, documentar y transferir responsabilidades. No presupone un operador perfectamente formado."
    },
    {
      "id": "assumption-public-evidence",
      "title": "Solo las pruebas verificables respaldan una afirmación publicada",
      "description": "Un control se documenta solo hasta el nivel respaldado por especificaciones públicas, documentación del proveedor, registros reproducibles o una revisión identificada. La ausencia de un problema divulgado no demuestra seguridad."
    }
  ],
  "assets": [
    {
      "id": "asset-spending-authority",
      "title": "Autoridad de gasto",
      "description": "Claves privadas, dispositivos de firma, contraseñas adicionales, políticas y componentes de quórum que pueden autorizar una transacción."
    },
    {
      "id": "asset-recovery-capability",
      "title": "Capacidad de recuperación",
      "description": "Copias, metadatos de la cartera, información de derivación, instrucciones y procedimientos probados necesarios para restaurar el acceso."
    },
    {
      "id": "asset-transaction-intent",
      "title": "Intención de la transacción",
      "description": "El destinatario, importe, comisión, cambio, entradas y política de firma previstos para un gasto."
    },
    {
      "id": "asset-privacy-metadata",
      "title": "Privacidad y metadatos de la cartera",
      "description": "Direcciones, claves públicas extendidas, saldos, historial de transacciones, contrapartes y relaciones de propiedad."
    },
    {
      "id": "asset-operational-continuity",
      "title": "Continuidad operativa",
      "description": "La capacidad de una persona autorizada para entender, mantener, recuperar y transferir la configuración con el tiempo."
    }
  ],
  "categories": [
    {
      "id": "custody",
      "order": 1,
      "title": "Autoridad de custodia",
      "summary": "Quién puede autorizar gastos y qué partes o componentes deben seguir disponibles y actuar correctamente."
    },
    {
      "id": "backup",
      "order": 2,
      "title": "Resiliencia de las copias",
      "summary": "Si el material de recuperación sobrevive a una pérdida y permanece fuera del alcance de personas no autorizadas."
    },
    {
      "id": "recovery",
      "order": 3,
      "title": "Preparación para la recuperación",
      "summary": "Si las claves, el contexto de la cartera, las herramientas y el procedimiento pueden restaurar la cartera antes de una emergencia."
    },
    {
      "id": "access",
      "order": 4,
      "title": "Protección de acceso",
      "summary": "Cómo resisten la apropiación o el compromiso las cuentas de proveedores, los dispositivos, el software y las interfaces de firma."
    },
    {
      "id": "transaction",
      "order": 5,
      "title": "Verificación de transacciones",
      "summary": "Si el firmante puede confirmar de forma independiente qué autoriza antes de que una transacción sea irreversible."
    },
    {
      "id": "continuity",
      "order": 6,
      "title": "Continuidad y sucesión",
      "summary": "Si un sucesor autorizado puede localizar la información no secreta adecuada y seguir un proceso probado sin reunir todos los secretos."
    }
  ],
  "severityTerms": [
    {
      "id": "high",
      "label": "Atención alta",
      "definition": "La condición descrita puede permitir directamente un gasto no autorizado o una pérdida permanente de acceso. La etiqueta no estima la probabilidad del suceso."
    },
    {
      "id": "important",
      "label": "Importante",
      "definition": "La condición puede impedir la recuperación, debilitar la verificación o dificultar considerablemente la contención de otro fallo."
    },
    {
      "id": "contextual",
      "label": "Depende del contexto",
      "definition": "La consecuencia depende mucho del modelo de custodia, el valor en riesgo, el adversario, la jurisdicción o la frecuencia de uso. Aun así exige una decisión explícita."
    }
  ],
  "threats": [
    {
      "id": "threat-custody-provider-control",
      "categoryId": "custody",
      "priority": "high",
      "assetIds": [
        "asset-spending-authority",
        "asset-operational-continuity"
      ],
      "sourceIds": [
        "source-bitcoin-wallet-guide",
        "source-nist-risk-assessment"
      ],
      "title": "Un proveedor controla el retiro o la firma",
      "scenario": "Una plataforma, custodio, cartera alojada o servicio de políticas puede retrasar, rechazar, redirigir o perder la capacidad de autorizar un retiro.",
      "rationale": "El operador no posee todas las claves necesarias para gastar. La solvencia, los controles de cuenta, la política, la jurisdicción y la disponibilidad del proveedor forman parte del límite de custodia."
    },
    {
      "id": "threat-custody-signer-compromise",
      "categoryId": "custody",
      "priority": "high",
      "assetIds": [
        "asset-spending-authority",
        "asset-privacy-metadata"
      ],
      "sourceIds": [
        "source-bitcoin-wallet-guide",
        "source-bip32",
        "source-bip39"
      ],
      "title": "Se roba o copia suficiente autoridad de firma",
      "scenario": "Un atacante obtiene una clave privada, frase de recuperación, contraseña adicional, dispositivo de firma o suficientes componentes para cumplir la política.",
      "rationale": "Bitcoin valida la autorización, no la identidad ni la intención de quien presenta una firma válida. La separación solo ayuda mientras el umbral de la política siga sin comprometerse."
    },
    {
      "id": "threat-backup-unavailable",
      "categoryId": "backup",
      "priority": "high",
      "assetIds": [
        "asset-recovery-capability",
        "asset-operational-continuity"
      ],
      "sourceIds": [
        "source-bip32",
        "source-bip39",
        "source-cisa-backups"
      ],
      "title": "El material de recuperación falta o no se puede leer",
      "scenario": "Pérdida, incendio, agua, corrosión, eliminación accidental, fallo de memoria o una única ubicación compartida destruyen todas las copias utilizables.",
      "rationale": "La recuperación de una cartera determinista depende de conservar la semilla o las claves necesarias. Una copia no verificada puede fallar solo cuando ya no exista el dispositivo."
    },
    {
      "id": "threat-backup-secret-exposure",
      "categoryId": "backup",
      "priority": "high",
      "assetIds": [
        "asset-spending-authority",
        "asset-privacy-metadata"
      ],
      "sourceIds": [
        "source-bip32",
        "source-bip39"
      ],
      "title": "Una copia expone secretos de firma",
      "scenario": "Las palabras de recuperación, claves privadas o contraseñas adicionales aparecen en una foto, nube, ordenador común, nota compartida o lugar accesible para otra persona.",
      "rationale": "Una semilla determinista puede derivar las claves privadas de la cartera. La redundancia mejora la disponibilidad, pero crea más copias que deben protegerse."
    },
    {
      "id": "threat-recovery-not-rehearsed",
      "categoryId": "recovery",
      "priority": "important",
      "assetIds": [
        "asset-recovery-capability",
        "asset-operational-continuity"
      ],
      "sourceIds": [
        "source-cisa-backups",
        "source-nist-contingency"
      ],
      "title": "El procedimiento de recuperación no se ha ensayado",
      "scenario": "Al perder o romperse el dispositivo, el operador descubre una palabra incorrecta, una contraseña olvidada, una cartera incompatible, un firmante ausente o un procedimiento que no puede completar.",
      "rationale": "Tener una copia no demuestra que pueda reconstruirse la cartera completa. Un ensayo controlado puede revelar fallos de procedimiento y compatibilidad antes de depender de la recuperación."
    },
    {
      "id": "threat-recovery-wallet-context-missing",
      "categoryId": "recovery",
      "priority": "important",
      "assetIds": [
        "asset-recovery-capability",
        "asset-privacy-metadata"
      ],
      "sourceIds": [
        "source-bip380"
      ],
      "title": "Las claves sobreviven, pero falta el contexto de la cartera",
      "scenario": "La recuperación conserva la semilla o las claves, pero no el tipo de script, la ruta de derivación, el descriptor, la política de quórum, las claves de cofirmantes o el coordinador necesarios.",
      "rationale": "BIP 380 explica por qué las claves privadas por sí solas pueden no bastar para reconstruir los scripts y rutas usados, sobre todo con políticas no predeterminadas o multifirma."
    },
    {
      "id": "threat-access-provider-account-takeover",
      "categoryId": "access",
      "priority": "high",
      "assetIds": [
        "asset-spending-authority",
        "asset-recovery-capability",
        "asset-privacy-metadata"
      ],
      "sourceIds": [
        "source-nist-authentication"
      ],
      "title": "Una cuenta de proveedor es apropiada por un atacante",
      "scenario": "Phishing, reutilización de contraseñas, robo de sesión, recuperación débil o correo comprometido permiten controlar una plataforma, cartera alojada, copia en la nube o cuenta de comunicación.",
      "rationale": "Los controles de cuenta pueden formar parte de la custodia, la confidencialidad de las copias o la continuidad. Según NIST, los códigos de un solo uso introducidos manualmente no resisten el phishing."
    },
    {
      "id": "threat-access-signing-environment-compromise",
      "categoryId": "access",
      "priority": "high",
      "assetIds": [
        "asset-spending-authority",
        "asset-transaction-intent",
        "asset-privacy-metadata"
      ],
      "sourceIds": [
        "source-bitcoin-core-offline-signing",
        "source-bip174"
      ],
      "title": "El entorno de firma está comprometido",
      "scenario": "Malware, una actualización maliciosa, acceso remoto, una aplicación falsa o un dispositivo modificado intentan exponer claves o alterar datos de transacciones.",
      "rationale": "Separar la firma del equipo conectado reduce oportunidades de extraer claves, pero el firmante, el canal de transferencia, el firmware y la revisión siguen siendo límites de confianza."
    },
    {
      "id": "threat-transaction-destination-substitution",
      "categoryId": "transaction",
      "priority": "high",
      "assetIds": [
        "asset-transaction-intent",
        "asset-spending-authority"
      ],
      "sourceIds": [
        "source-bip174",
        "source-bitcoin-core-offline-signing"
      ],
      "title": "Se sustituye el destino o el importe",
      "scenario": "Un equipo, portapapeles, código QR, solicitud de pago o coordinador comprometido presenta datos distintos de la intención del operador.",
      "rationale": "Una firma válida autoriza la transacción realmente presentada. La revisión independiente debe abarcar destino, importe, comisión y cambio mediante un canal o pantalla de confianza."
    },
    {
      "id": "threat-transaction-incomplete-signing-context",
      "categoryId": "transaction",
      "priority": "important",
      "assetIds": [
        "asset-transaction-intent",
        "asset-spending-authority"
      ],
      "sourceIds": [
        "source-bip174"
      ],
      "title": "El firmante no tiene contexto suficiente para verificar el gasto",
      "scenario": "El dispositivo o la persona que firma no puede identificar con fiabilidad entradas, cambio, comisiones, política de la cartera o modificaciones de otro sistema.",
      "rationale": "PSBT normaliza el intercambio de datos entre funciones, pero el formato por sí solo no demuestra que el firmante haya mostrado o comprobado todos los campos relevantes."
    },
    {
      "id": "threat-continuity-operator-unavailability",
      "categoryId": "continuity",
      "priority": "important",
      "assetIds": [
        "asset-operational-continuity",
        "asset-recovery-capability"
      ],
      "sourceIds": [
        "source-nist-contingency"
      ],
      "title": "El único operador informado no está disponible",
      "scenario": "Fallecimiento, incapacidad, viaje, coacción, conflicto o pérdida de contacto impiden que los sucesores autorizados localicen la cartera o entiendan la recuperación.",
      "rationale": "El material técnico no comunica autoridad legal, funciones, ubicaciones, dependencias ni orden de actuación. La continuidad exige procedimientos documentados y ensayados."
    },
    {
      "id": "threat-continuity-secret-concentration",
      "categoryId": "continuity",
      "priority": "high",
      "assetIds": [
        "asset-spending-authority",
        "asset-operational-continuity",
        "asset-privacy-metadata"
      ],
      "sourceIds": [
        "source-nist-contingency",
        "source-bip32"
      ],
      "title": "Un documento de continuidad concentra todos los secretos",
      "scenario": "Un documento, caja fuerte, abogado, familiar o cuenta digital contiene material e instrucciones suficientes para gastar sin otro control independiente.",
      "rationale": "La continuidad puede mejorar la disponibilidad y debilitar la confidencialidad. Un traspaso útil explica funciones y ubicaciones sin convertir un único registro en autoridad completa de gasto."
    }
  ],
  "mitigations": [
    {
      "id": "mitigation-define-custody-boundary",
      "sourceIds": [
        "source-nist-risk-assessment",
        "source-bitcoin-wallet-guide"
      ],
      "title": "Documenta el límite de custodia",
      "action": "Identifica cada persona, proveedor, dispositivo, clave, política y proceso que puede autorizar o bloquear un gasto. Decide qué dependencias son aceptables antes de mover fondos importantes.",
      "limitation": "La documentación hace visibles las dependencias; no elimina riesgos del proveedor, legales, de solvencia o de implementación."
    },
    {
      "id": "mitigation-isolate-signing-keys",
      "sourceIds": [
        "source-bitcoin-core-offline-signing",
        "source-bip174"
      ],
      "title": "Aísla suficiente autoridad de firma",
      "action": "Mantén las claves privadas fuera de dispositivos conectados cuando el modelo lo permita. En carteras con quórum, separa firmantes para que un solo compromiso no cumpla la política.",
      "limitation": "El aislamiento añade pasos de transferencia, actualización, verificación y recuperación. No demuestra que el firmante o el firmware sean fiables."
    },
    {
      "id": "mitigation-redundant-offline-backups",
      "sourceIds": [
        "source-cisa-backups",
        "source-bip32",
        "source-bip39"
      ],
      "title": "Mantén copias verificadas entre límites de fallo",
      "action": "Guarda el material necesario en más de un lugar protegido cuando el escenario lo justifique. Comprueba legibilidad, integridad y acceso sin exponer el secreto en línea.",
      "limitation": "Cada copia adicional amplía el problema de confidencialidad y control de acceso. La separación geográfica también puede complicar la recuperación."
    },
    {
      "id": "mitigation-separate-secret-material",
      "sourceIds": [
        "source-bip32",
        "source-bip39",
        "source-nist-contingency"
      ],
      "title": "Separa los secretos de las instrucciones y entre sí",
      "action": "No pongas semilla, contraseña adicional, PIN y procedimiento completo en un único documento o cuenta en línea. Usa límites de acceso distintos acordes con la política.",
      "limitation": "La separación puede provocar bloqueo si no se documentan las dependencias o si una persona autorizada no puede reunir las partes necesarias."
    },
    {
      "id": "mitigation-rehearse-recovery",
      "sourceIds": [
        "source-cisa-backups",
        "source-nist-contingency"
      ],
      "title": "Ensaya la recuperación antes de una emergencia",
      "action": "Usa un procedimiento controlado, un dispositivo de repuesto o reiniciado y una cartera de prueba sin valor cuando corresponda. Confirma cartera, política, direcciones y firma sin introducir secretos en un equipo no fiable.",
      "limitation": "Un ensayo solo prueba la vía comprobada en ese momento. El software, los dispositivos, las personas, los lugares y la documentación pueden cambiar."
    },
    {
      "id": "mitigation-preserve-wallet-context",
      "sourceIds": [
        "source-bip380"
      ],
      "title": "Conserva el contexto no secreto de la cartera",
      "action": "Registra tipo de cartera, política de script, derivación, huellas maestras, quórum, requisitos del coordinador y software probado sin reunirlos con todos los secretos.",
      "limitation": "Los descriptores y claves públicas extendidas pueden exponer direcciones e historial. Trátalos como información sensible aunque no permitan gastar por sí solos."
    },
    {
      "id": "mitigation-phishing-resistant-access",
      "sourceIds": [
        "source-nist-authentication"
      ],
      "title": "Usa acceso resistente al phishing cuando esté disponible",
      "action": "Protege cuentas de proveedor, correo y nube con credenciales únicas y un autenticador criptográfico vinculado al dominio real cuando sea compatible. Revisa también las vías de recuperación.",
      "limitation": "La autenticación fuerte no resuelve insolvencia, empleados maliciosos, equipos comprometidos ni procesos de retiro defectuosos."
    },
    {
      "id": "mitigation-harden-signing-environment",
      "sourceIds": [
        "source-bitcoin-core-offline-signing",
        "source-nist-risk-assessment"
      ],
      "title": "Reduce la confianza en el entorno conectado de firma",
      "action": "Usa software mantenido de fuentes autenticadas, limita acceso remoto y aplicaciones innecesarias, aísla claves cuando proceda y conserva una vía independiente para verificar la intención.",
      "limitation": "El endurecimiento reduce la exposición, pero no demuestra que todas las dependencias, actualizaciones, bibliotecas o dispositivos estén libres de fallos."
    },
    {
      "id": "mitigation-verify-on-trusted-display",
      "sourceIds": [
        "source-bip174",
        "source-bitcoin-core-external-signer"
      ],
      "title": "Verifica la intención en una pantalla independiente",
      "action": "Antes de firmar, compara destinatario, importe, comisión, cambio, red y política con la intención original en un firmante o canal que no dependa solo del equipo creador.",
      "limitation": "Una pantalla puede omitir campos, mostrar datos confusos o estar comprometida. La verificación depende de la referencia independiente y de la revisión del operador."
    },
    {
      "id": "mitigation-separate-transaction-roles",
      "sourceIds": [
        "source-bip174",
        "source-bitcoin-core-offline-signing"
      ],
      "title": "Separa creación, firma y difusión cuando sea útil",
      "action": "Usa un formato estándar como PSBT cuando cooperen varios sistemas o firmantes. Exige que cada firmante valide la política y los campos relevantes antes de firmar.",
      "limitation": "Separar funciones aumenta coordinación y tratamiento de metadatos. PSBT puede contener información sensible y no obliga al dispositivo a mostrar cada campo relevante."
    },
    {
      "id": "mitigation-document-continuity-roles",
      "sourceIds": [
        "source-nist-contingency"
      ],
      "title": "Documenta funciones, dependencias y lugares sin anotar secretos",
      "action": "Registra quién debe actuar, qué documentos no secretos existen, dónde están los materiales separados, qué profesionales o proveedores intervienen y cómo se verifica la autoridad. Mantén los secretos fuera.",
      "limitation": "La documentación operativa no es un plan sucesorio y puede no crear autoridad legal. El asesoramiento jurídico y fiscal depende de la jurisdicción."
    },
    {
      "id": "mitigation-rehearse-continuity",
      "sourceIds": [
        "source-nist-contingency"
      ],
      "title": "Ensaya el traspaso de continuidad",
      "action": "Haz que una persona autorizada explique o simule el proceso con documentos no secretos. Confirma contactos, lugares, dependencias, destino de dispositivos y vías de escalado con fecha.",
      "limitation": "Un ensayo puede exponer relaciones sensibles y quedar obsoleto tras cambios familiares, legales, de proveedor, dispositivo o cartera."
    }
  ],
  "evidenceExpectations": [
    {
      "id": "evidence-custody-boundary",
      "title": "Pruebas del límite de custodia",
      "description": "Un inventario actualizado de firmantes, proveedores, políticas, vías de recuperación y dependencias que pueden bloquear. El marketing por sí solo no demuestra control."
    },
    {
      "id": "evidence-backup-check",
      "title": "Pruebas de las copias",
      "description": "Una comprobación fechada de que el material existe, sigue legible, está separado según los límites previstos y no se ha introducido en un sistema no fiable."
    },
    {
      "id": "evidence-recovery-rehearsal",
      "title": "Pruebas de recuperación",
      "description": "Un registro fechado de la vía probada, identificación de cartera, herramientas, política reconstruida, problemas y correcciones. No debe contener el secreto."
    },
    {
      "id": "evidence-access-controls",
      "title": "Pruebas de control de acceso",
      "description": "Métodos documentados de recuperación de cuentas, tipo de autenticador, procedencia de dispositivos y software, proceso de actualización y eliminación de accesos antiguos."
    },
    {
      "id": "evidence-transaction-verification",
      "title": "Pruebas de verificación de transacciones",
      "description": "Un procedimiento repetible que identifica qué campos revisa cada firmante, la fuente independiente de la intención, la validación de la política y cuándo se permite difundir."
    },
    {
      "id": "evidence-continuity-rehearsal",
      "title": "Pruebas de continuidad",
      "description": "Un inventario fechado y no secreto de funciones y lugares, responsable de cada seguimiento, registro del ensayo y revisión tras cambios familiares, legales, de proveedor o cartera."
    }
  ],
  "residualRisks": [
    {
      "id": "residual-custody",
      "title": "Siguen existiendo dependencias de custodia",
      "description": "Claves, dispositivos, personas, proveedores y políticas pueden fallar juntos o actuar de forma distinta a la documentación. Más independencia suele añadir complejidad."
    },
    {
      "id": "residual-backup",
      "title": "Disponibilidad y secreto siguen en tensión",
      "description": "Más copias pueden sobrevivir a más pérdidas, pero crean más oportunidades de descubrimiento, coacción, mal manejo o registros obsoletos."
    },
    {
      "id": "residual-recovery",
      "title": "Un ensayo pasado no garantiza una recuperación futura",
      "description": "Dispositivos, compatibilidad, personas, memoria, documentación y estado de la cartera pueden cambiar después de una prueba correcta."
    },
    {
      "id": "residual-access",
      "title": "Un acceso fuerte no protege todas las dependencias",
      "description": "Equipos, soporte, personal del servicio, firmware, acceso físico y cadena de suministro del software siguen siendo posibles vías de fallo."
    },
    {
      "id": "residual-transaction",
      "title": "La verificación aún puede fallar en la persona o la pantalla",
      "description": "Un firmante puede omitir información importante, la referencia puede estar comprometida o el operador puede aprobar datos confusos o inesperados."
    },
    {
      "id": "residual-continuity",
      "title": "La sucesión combina incertidumbre técnica y legal",
      "description": "Un traspaso técnicamente correcto puede entrar en conflicto con la ley, los impuestos, la familia, las reglas del proveedor o la voluntad actual del propietario."
    }
  ],
  "relationships": [
    {
      "threatId": "threat-custody-provider-control",
      "mitigationIds": [
        "mitigation-define-custody-boundary",
        "mitigation-phishing-resistant-access"
      ],
      "evidenceExpectationIds": [
        "evidence-custody-boundary",
        "evidence-access-controls"
      ],
      "residualRiskIds": [
        "residual-custody",
        "residual-access"
      ]
    },
    {
      "threatId": "threat-custody-signer-compromise",
      "mitigationIds": [
        "mitigation-isolate-signing-keys",
        "mitigation-separate-secret-material"
      ],
      "evidenceExpectationIds": [
        "evidence-custody-boundary",
        "evidence-backup-check"
      ],
      "residualRiskIds": [
        "residual-custody",
        "residual-backup"
      ]
    },
    {
      "threatId": "threat-backup-unavailable",
      "mitigationIds": [
        "mitigation-redundant-offline-backups",
        "mitigation-rehearse-recovery"
      ],
      "evidenceExpectationIds": [
        "evidence-backup-check",
        "evidence-recovery-rehearsal"
      ],
      "residualRiskIds": [
        "residual-backup",
        "residual-recovery"
      ]
    },
    {
      "threatId": "threat-backup-secret-exposure",
      "mitigationIds": [
        "mitigation-separate-secret-material",
        "mitigation-redundant-offline-backups"
      ],
      "evidenceExpectationIds": [
        "evidence-backup-check"
      ],
      "residualRiskIds": [
        "residual-backup"
      ]
    },
    {
      "threatId": "threat-recovery-not-rehearsed",
      "mitigationIds": [
        "mitigation-rehearse-recovery",
        "mitigation-preserve-wallet-context"
      ],
      "evidenceExpectationIds": [
        "evidence-recovery-rehearsal"
      ],
      "residualRiskIds": [
        "residual-recovery"
      ]
    },
    {
      "threatId": "threat-recovery-wallet-context-missing",
      "mitigationIds": [
        "mitigation-preserve-wallet-context",
        "mitigation-rehearse-recovery"
      ],
      "evidenceExpectationIds": [
        "evidence-recovery-rehearsal"
      ],
      "residualRiskIds": [
        "residual-recovery",
        "residual-backup"
      ]
    },
    {
      "threatId": "threat-access-provider-account-takeover",
      "mitigationIds": [
        "mitigation-phishing-resistant-access",
        "mitigation-define-custody-boundary"
      ],
      "evidenceExpectationIds": [
        "evidence-access-controls",
        "evidence-custody-boundary"
      ],
      "residualRiskIds": [
        "residual-access",
        "residual-custody"
      ]
    },
    {
      "threatId": "threat-access-signing-environment-compromise",
      "mitigationIds": [
        "mitigation-harden-signing-environment",
        "mitigation-isolate-signing-keys",
        "mitigation-verify-on-trusted-display"
      ],
      "evidenceExpectationIds": [
        "evidence-access-controls",
        "evidence-transaction-verification"
      ],
      "residualRiskIds": [
        "residual-access",
        "residual-transaction"
      ]
    },
    {
      "threatId": "threat-transaction-destination-substitution",
      "mitigationIds": [
        "mitigation-verify-on-trusted-display",
        "mitigation-separate-transaction-roles"
      ],
      "evidenceExpectationIds": [
        "evidence-transaction-verification"
      ],
      "residualRiskIds": [
        "residual-transaction"
      ]
    },
    {
      "threatId": "threat-transaction-incomplete-signing-context",
      "mitigationIds": [
        "mitigation-separate-transaction-roles",
        "mitigation-verify-on-trusted-display"
      ],
      "evidenceExpectationIds": [
        "evidence-transaction-verification"
      ],
      "residualRiskIds": [
        "residual-transaction"
      ]
    },
    {
      "threatId": "threat-continuity-operator-unavailability",
      "mitigationIds": [
        "mitigation-document-continuity-roles",
        "mitigation-rehearse-continuity"
      ],
      "evidenceExpectationIds": [
        "evidence-continuity-rehearsal"
      ],
      "residualRiskIds": [
        "residual-continuity",
        "residual-recovery"
      ]
    },
    {
      "threatId": "threat-continuity-secret-concentration",
      "mitigationIds": [
        "mitigation-document-continuity-roles",
        "mitigation-separate-secret-material",
        "mitigation-rehearse-continuity"
      ],
      "evidenceExpectationIds": [
        "evidence-continuity-rehearsal",
        "evidence-backup-check"
      ],
      "residualRiskIds": [
        "residual-continuity",
        "residual-backup"
      ]
    }
  ],
  "exclusions": [
    {
      "id": "exclusion-market-risk",
      "title": "Riesgo de mercado y precio",
      "description": "El modelo no predice precio, liquidez, tratamiento fiscal ni la conveniencia de mantener bitcoin."
    },
    {
      "id": "exclusion-consensus-network",
      "title": "Consenso y seguridad de la red Bitcoin",
      "description": "Los fallos de consenso, ataques de minería, defectos del protocolo y particiones de red quedan fuera de este modelo operativo."
    },
    {
      "id": "exclusion-product-certification",
      "title": "Certificación o clasificación de productos",
      "description": "El modelo no certifica carteras físicas o de software, plataformas, custodios, servicios multifirma ni proveedores de recuperación."
    },
    {
      "id": "exclusion-personalized-assessment",
      "title": "Determinación de riesgo personalizada",
      "description": "Ninguna prioridad tiene en cuenta el saldo, habilidades, adversarios, ubicación, familia o frecuencia de uso del lector."
    },
    {
      "id": "exclusion-legal-advice",
      "title": "Asesoramiento jurídico, fiscal y sucesorio",
      "description": "Los controles de continuidad solo describen operaciones. No crean autoridad legal ni sustituyen asesoramiento cualificado en la jurisdicción correspondiente."
    }
  ],
  "sources": [
    {
      "id": "source-nist-risk-assessment",
      "title": "NIST SP 800-30 Rev. 1, Guide for Conducting Risk Assessments",
      "publisher": "National Institute of Standards and Technology",
      "url": "https://doi.org/10.6028/NIST.SP.800-30r1",
      "kind": "government-standard",
      "checkedAt": "2026-08-28",
      "note": "Se usa para alcance, supuestos, fuentes de amenaza, incertidumbre y revisión. BitcoinSafe no copia las escalas de probabilidad de NIST."
    },
    {
      "id": "source-owasp-threat-modeling",
      "title": "OWASP Threat Modeling Cheat Sheet",
      "publisher": "OWASP Foundation",
      "url": "https://cheatsheetseries.owasp.org/cheatsheets/Threat_Modeling_Cheat_Sheet.html",
      "kind": "authoritative-guidance",
      "checkedAt": "2026-08-28",
      "note": "Se usa para la secuencia de alcance, identificación, respuesta y revisión, y para documentar mitigaciones prácticas."
    },
    {
      "id": "source-bitcoin-wallet-guide",
      "title": "Bitcoin Developer Guide: Wallets",
      "publisher": "Bitcoin Developer Documentation",
      "url": "https://developer.bitcoin.org/devguide/wallets.html",
      "kind": "bitcoin-core-documentation",
      "checkedAt": "2026-08-28",
      "note": "Se usa para separar distribución de claves, firma y red, y para explicar la función de las claves privadas en el gasto."
    },
    {
      "id": "source-bip32",
      "title": "BIP 32: Hierarchical Deterministic Wallets",
      "publisher": "Bitcoin Improvement Proposals",
      "url": "https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki",
      "kind": "bitcoin-specification",
      "checkedAt": "2026-08-28",
      "note": "Se usa para la derivación determinista y las consecuencias de exponer o perder el material raíz."
    },
    {
      "id": "source-bip39",
      "title": "BIP 39: Mnemonic code for generating deterministic keys",
      "publisher": "Bitcoin Improvement Proposals",
      "url": "https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki",
      "kind": "bitcoin-specification",
      "checkedAt": "2026-08-28",
      "note": "Se usa solo para describir material mnemónico y contraseña adicional. El modelo no afirma que BIP 39 sea obligatorio para toda cartera."
    },
    {
      "id": "source-bip174",
      "title": "BIP 174: Partially Signed Bitcoin Transaction Format",
      "publisher": "Bitcoin Improvement Proposals",
      "url": "https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki",
      "kind": "bitcoin-specification",
      "checkedAt": "2026-08-28",
      "note": "Se usa para separar funciones de transacción, firma sin conexión, datos del firmante y límites de metadatos PSBT."
    },
    {
      "id": "source-bip380",
      "title": "BIP 380: Output Script Descriptors General Operation",
      "publisher": "Bitcoin Improvement Proposals",
      "url": "https://github.com/bitcoin/bips/blob/master/bip-0380.mediawiki",
      "kind": "bitcoin-specification",
      "checkedAt": "2026-08-28",
      "note": "Se usa para explicar la importancia del tipo de script, rutas, claves y suma de comprobación del descriptor además de las claves privadas."
    },
    {
      "id": "source-bitcoin-core-offline-signing",
      "title": "Bitcoin Core Offline Signing Tutorial",
      "publisher": "Bitcoin Core",
      "url": "https://github.com/bitcoin/bitcoin/blob/master/doc/offline-signing-tutorial.md",
      "kind": "bitcoin-core-documentation",
      "checkedAt": "2026-08-28",
      "note": "Se usa para el objetivo de seguridad y el límite operativo documentados de la firma PSBT sin conexión."
    },
    {
      "id": "source-bitcoin-core-external-signer",
      "title": "Bitcoin Core External Signer Documentation",
      "publisher": "Bitcoin Core",
      "url": "https://github.com/bitcoin/bitcoin/blob/master/doc/external-signer.md",
      "kind": "bitcoin-core-documentation",
      "checkedAt": "2026-08-28",
      "note": "Se usa para comprobaciones de identidad del firmante externo, coincidencia de descriptores y visualización de direcciones."
    },
    {
      "id": "source-nist-authentication",
      "title": "NIST SP 800-63B-4: Authentication and Authenticator Management",
      "publisher": "National Institute of Standards and Technology",
      "url": "https://pages.nist.gov/800-63-4/sp800-63b.html",
      "kind": "government-standard",
      "checkedAt": "2026-08-28",
      "note": "Se usa para resistencia al phishing, vinculación al verificador, controles de autenticadores y límites de códigos introducidos manualmente."
    },
    {
      "id": "source-cisa-backups",
      "title": "#StopRansomware Guide",
      "publisher": "Cybersecurity and Infrastructure Security Agency",
      "url": "https://www.cisa.gov/stopransomware/ransomware-guide",
      "kind": "government-standard",
      "checkedAt": "2026-08-28",
      "note": "Se usa para la práctica general de copias sin conexión y pruebas periódicas de restauración. La recuperación de Bitcoin añade requisitos de secreto."
    },
    {
      "id": "source-nist-contingency",
      "title": "NIST SP 800-34 Rev. 1: Contingency Planning Guide",
      "publisher": "National Institute of Standards and Technology",
      "url": "https://doi.org/10.6028/NIST.SP.800-34r1",
      "kind": "government-standard",
      "checkedAt": "2026-08-28",
      "note": "Se usa para funciones, recuperación, pruebas, validación, material externo y registros fechados. Es una guía general, no asesoramiento específico de Bitcoin."
    },
    {
      "id": "source-cc-by-4",
      "title": "Creative Commons Attribution 4.0 International",
      "publisher": "Creative Commons",
      "url": "https://creativecommons.org/licenses/by/4.0/",
      "kind": "license",
      "checkedAt": "2026-08-28",
      "note": "Define las condiciones de reutilización del texto y los datos de investigación incluidos."
    },
    {
      "id": "source-semver",
      "title": "Semantic Versioning 2.0.0",
      "publisher": "Semantic Versioning",
      "url": "https://semver.org/",
      "kind": "versioning-standard",
      "checkedAt": "2026-08-28",
      "note": "Define la versión inmutable y las reglas de versiones mayores, menores y de parche usadas por el modelo."
    }
  ],
  "changelog": [
    {
      "version": "1.0.0",
      "date": "2026-08-28",
      "summary": "Primera versión pública con seis categorías, 12 amenazas, 12 mitigaciones, pruebas esperadas, riesgos residuales, correspondencias con la evaluación y recursos traducidos."
    }
  ]
}
