Ampliar zkSNARKS con Intel SGX para la prueba de transcodificación

Para cumplir con el nivel de verificación requerido para la red VideoCoin, nuestro equipo de desarrollo ha hecho un gran avance para mejorar la prueba de transcodificación con una solución integrada de zkSNARKS y Extensiones de protección de software de Intel (Intel SGX).

Hace unos meses, compartimos los avances innovadores de VideoCoin en el uso de zkSNARKS como prueba de la transcodificación de video. Sobre la base de estos avances, nuestro equipo tiene una solución recientemente implementada que mejora la verificación en cadena a través de la red VideoCoin.

En la prueba de transcodificación basada en zkSNARKS, el trabajador (Transcode Miner) genera la prueba de zkSNARKS y la envía a la red VideoCoin. El proceso de verificación de zkSNARKS requiere la verificación de emparejamientos de curvas elípticas (mapas bilineales) que son tareas intensivas en computación. El problema es que el uso elevado de la CPU limita el número de verificaciones que se pueden realizar, y esto afecta el rendimiento.

Nos complace compartir la nueva solución altamente escalable basada en las Extensiones de Intel Software Guard (SGX) en las que un verificador zkSNARKS separado se ejecuta en SGX Enclave junto con el Trabajador.

Intel SGX Enclave es un entorno de ejecución confiable integrado en un proceso que protege el código y los datos de la divulgación o modificación. Los enclaves son áreas protegidas de ejecución. El código de la aplicación se puede poner en un enclave mediante instrucciones especiales y software disponible para los desarrolladores a través del SDK Intel SGX. Los enclaves SGX están reforzados por mecanismos de seguridad basados ​​en CPU. Los enclaves SGX también se pueden aprovisionar y atestiguar de forma remota. Una parte de la memoria física (RAM) está reservada para enclaves. Se llama Enclave Page Cache, o EPC. La memoria EPC está encriptada en la RAM.

Cuando el trabajador se ejecuta en una máquina con soporte SGX, la red VideoCoin permite descargar los cálculos de verificación a un programa que se ejecuta en el enclave SGX. Un servidor de certificación confiable, que es una forma de Oracle que se ejecuta en la red VideoCoin, establece la cadena de confianza. El servidor de certificación mantiene una lista de verificadores válidos. Puede detectar nodos comprometidos y eliminarlos de los verificadores autorizados.

Cada máquina SGX remota tendrá dos cuentas en la red VideoCoin, una cuenta de trabajador que realiza el trabajo y recibe recompensas, y una cuenta de verificador que se ejecuta en SGX Enclave para realizar verificaciones. La función de la cuenta de trabajador es la misma que la de los mineros de transcodificación actuales en VideoCoin Network. La función de la cuenta Verifier es similar a Verifier Oracles en la VideoCoin Network, excepto que el Verifier se ejecuta junto con el Worker en la misma máquina. El verificador que se ejecuta en el enclave de confianza será atestiguado. Vea este documento técnico para obtener más información sobre la certificación: https://software.intel.com/en-us/articles/innovative-technology-for-cpu-based-attestation-and-sealing Después de realizar la transcodificación de un fragmento, el Trabajador genera pruebas de zkSNARKS y las envía al verificador que se ejecuta en el enclave SGX. El verificador realiza la verificación y envía el resultado a la red VideoCoin. El verificador firma la transacción de validación con la clave privada correspondiente a la cuenta registrada en la red VideoCoin. El mismo esquema zkSNARKS diseñado para sistemas que no son SGX se usará con el sistema SGX, excepto que el verificador se ejecutará en el Enclave SGX.

Q: ¿Cuál es el papel de zkSNARKS en la nueva prueba de transcodificación? ¿Podemos eliminarlo y usar alguna alternativa?

UN: Las "pruebas probabilísticamente comprobables" de zkSNARKS proporcionan un mecanismo eficiente de generación y verificación de pruebas. Proporciona pruebas sucintas para grabar en blockchain.

Q: ¿Cuáles son las ventajas de usar zkSNARKS Verifier basado en SGX?

A: escalabilidad: El verificador que se ejecuta en un enclave SGX puede tratarse como equivalente al "verificador Oracle" para la cadena de bloques. Esto alivia la necesidad de ejecutar verificadores dedicados o cargar EVM con verificación en cadena.

Seguridad mejorada: Dado que el sistema de prueba, el sistema de verificación y los recursos de cómputo se encuentran cerca, se eliminan los ataques de intermediario.

Verificación más robusta: Dado que el verificador se ejecuta en el mismo sistema que un transcodificador, podemos habilitar esquemas de compromiso más sólidos para los datos transcodificados.

Q: ¿Cuales son las desventajas?

UN: Requiere la configuración de un servidor de aprovisionamiento de ISV que se comunica con el servidor de certificación Intel que incorpora un componente centralizado a la red.

1. Descripción general de Intel SGX: https://blog.quarkslab.com/overview-of-intel-sgx-part-1-sgx-internals.html

2. Una implementación de óxido puro de un generador de pares de claves de curva elíptica en un enclave Intel SGX: https://github.com/provable-things/ethereum-keys-sgx