El problema fundamental que aborda esta solución es la falta de confianza verificable en la ejecución de código en entornos de terceros, especialmente en operaciones sensibles donde la corrección e integridad del software son críticas. En el contexto de blockchain, esto se manifiesta como el riesgo de 'blind signing', donde los usuarios aprueban transacciones sin una comprensión clara de sus efectos debido a la incapacidad de las wallets para parsear payloads complejos de forma segura. La solución propuesta, basada en AWS Nitro Enclaves, resuelve esto al proporcionar un entorno de ejecución aislado y una prueba criptográfica (atestación) de que un binario específico y no modificado ha producido un resultado.
Históricamente, la confianza en la ejecución de software se ha basado en la seguridad perimetral, la reputación del proveedor o los contratos legales. Sin embargo, estos enfoques no ofrecen garantías criptográficas. La aparición de tecnologías de enclaves seguros, como AWS Nitro Enclaves, permite un cambio de paradigma: en lugar de confiar en el entorno o el operador, se puede verificar criptográficamente la identidad y el estado del software en ejecución. Esto es particularmente relevante ahora, dada la creciente complejidad de las transacciones digitales y la necesidad de protegerse contra ataques sofisticados que manipulan la percepción del usuario sobre las operaciones subyacentes.
Arquitectura del Sistema
La arquitectura central se basa en la ejecución del VisualSign Parser, un binario Rust de código abierto, dentro de AWS Nitro Enclaves gestionados por Turnkey Verifiable Cloud (TVC). Un cliente de wallet inicia el flujo enviando un payload de transacción raw a la API de Turnkey. Esta API reenvía la solicitud a una instancia EC2 que ejecuta QuorumOS, el sistema operativo de Turnkey para enclaves, donde reside el VisualSign Parser.
Dentro del enclave, el parser procesa la transacción y genera una salida JSON legible. Crucialmente, el enclave firma esta respuesta con una clave P-256 efímera y solicita un documento de atestación de AWS Nitro al Nitro Hypervisor. Este documento contiene Platform Configuration Registers (PCRs), que son mediciones criptográficas de la imagen del enclave, el kernel y la aplicación. El cliente de wallet, al recibir la respuesta, verifica la firma y el documento de atestación. La verificación de los PCRs contra valores esperados (derivados de 'reproducible builds') asegura que el código ejecutado es exactamente el binario auditado y aprobado, sin modificaciones. La biblioteca 'awsnitroverifier' en Go facilita esta validación de la cadena de confianza y los PCRs, mientras que 'visualsign-turnkeyclient' añade la lógica de verificación a nivel de aplicación.
Flujo de Verificación de Transacciones con Nitro Enclaves
- 1 Wallet Client Envía payload de transacción raw a la API de Turnkey.
- 2 Turnkey API Reenvía la solicitud a una instancia EC2 con QuorumOS.
- 3 EC2 Instance (Parent) Aloja el Nitro Enclave con VisualSign Parser.
- 4 Nitro Enclave Parsear transacción, firmar respuesta con clave P-256 efímera.
- 5 Nitro Hypervisor Genera y firma el documento de atestación con PCRs.
- 6 Nitro Enclave Devuelve respuesta firmada y documento de atestación.
- 7 Wallet Client Verifica firma y atestación (PCRs) para confirmar integridad.
| Capa | Tecnología | Justificación |
|---|---|---|
| security | AWS Nitro Enclaves | Proporciona aislamiento de hardware/software, ausencia de almacenamiento persistente/red externa, y atestación criptográfica para la ejecución de código de alta confianza. |
| compute | Rust | Lenguaje de programación utilizado para desarrollar VisualSign Parser, elegido por su seguridad de memoria y rendimiento. |
| orchestration | QuorumOS | Sistema operativo de código abierto de Turnkey para ejecutar enclaves y el binario VisualSign Parser. |
| security | awsnitroverifier (Go Library) | Biblioteca Go de código abierto para validar documentos de atestación de AWS Nitro Enclaves, incluyendo verificación de cadena de confianza y PCRs. vs nitrite (Go library) |
| security | visualsign-turnkeyclient (Go Client) | Cliente Go de código abierto que realiza la verificación de extremo a extremo de transacciones parseadas en Nitro Enclaves, construyendo sobre awsnitroverifier. |
Fundamentos Teóricos
El concepto de 'computación verificable' y 'pruebas de ejecución de programas' tiene raíces profundas en la criptografía y la teoría de la computación. Aunque no se cita directamente un paper específico en el artículo, la idea de asegurar la integridad de la ejecución de un programa en un entorno potencialmente no confiable se relaciona con trabajos sobre 'trusted computing' y 'secure enclaves'.
Los 'Platform Configuration Registers' (PCRs) son un concepto central en Trusted Platform Modules (TPMs), cuya especificación fue desarrollada por el Trusted Computing Group (TCG). Los TPMs, y por extensión los enclaves como Nitro, utilizan mediciones criptográficas (hashes) del estado del hardware y software en diferentes etapas del boot y la ejecución para crear una 'cadena de confianza'. La atestación es el proceso de presentar estas mediciones a una parte remota para que pueda verificar la integridad de la plataforma. Este enfoque se alinea con los principios de seguridad por diseño, donde la confianza se establece a través de pruebas criptográficas en lugar de suposiciones sobre la buena fe de los operadores o la seguridad de la red.