Skip to content Skip to footer

4 formas de comparar los entornos de ejecución confiable contra las pruebas de conocimiento cero

Aviso legal: Esta es una publicación traducida por un embajador de Oasis Network. Se hacen rigurosas comprobaciones para proporcionar traducciones precisas, pero pueden estar sujetas a errores u omisiones. Oasis Network no se hace responsable de la precisión, confiabilidad o actualidad de la información traducida.

Publicación original en inglés: 4 Ways to Compare Trusted Execution Environments and Zero-Knowledge Proofs

La tecnología Blockchain ofrece un enfoque radicalmente transparente a internet con decenas de redes abiertas y libre acceso que sirven a millones de usuarios alrededor del mundo. Sin embargo, mientras la transparencia ofrece algunos beneficios, esta debe ser balanceada con herramientas robustas de privacidad que fortifiquen la confidencialidad y la seguridad de los datos de cada usuario en la cadena de bloques. A medida que la Web 3.0 adopta la privacidad es necesario comprender las tendencias y tecnologías que impulsan la privacidad en la cadena de bloques. Este blog ofrece una comparación simplificada de dos distintos enfoques de privacidad para la Web 3.0: Las pruebas de conocimiento cero y los entornos de ejecución confiable. Desde los desarrolladores hasta los usuarios, el aprender las diferencias entre estas tecnologías es crucial para entender el futuro de la Web 3.0.

Antes de comparar estas tecnologías, definiremos los siguientes términos de utilidad:

Pruebas de conocimiento cero: Una prueba de conocimiento cero es un mecanismo criptográfico que permite a cualquiera probar la verdad de un estado sin tener que compartir la información que este contiene y sin revelar cómo fue recibida la información. Los validadores de la cadena de bloques corren computadores que verifican si la prueba es correcta y, si lo es, aplican cambios al estado sin llegar a conocer los datos que fueron verificados. Aprende más sobre ZKP a través de ZK MOOC.

Entornos de ejecución confiables: Un entorno de ejecución confiable (TEEs) usa un hardware basado en un modelo computacional seguro, mediante la separación de una región del procesador del resto de la Unidad de procesamiento central. Cuando es usado para habilitar cadenas de privacidad, estos entornos reciben datos encriptados y realizan los cálculos sin que estos sean directamente observados o manipulados por nadie, ni siquiera el dueño del equipo. Puedes leer más acerca de los TEEs en el siguiente blog.

Profundicemos en ambas tecnologías de preservación a la privacidad!

Escalabilidad De Aplicaciones

Una característica clave de las pruebas de conocimiento cero es la frecuente necesidad de desarrollar circuitos únicos en ciertas aplicaciones para alcanzar casos de uso específicos y lograr que la prueba demuestre el conocimiento sin revelar nada de información. Esto normalmente es realizado mediante la construcción de un circuito que ejecute un cálculo en específico basado en un secreto en particular. El verificador entonces recibe la prueba de que el circuito ha sido ejecutado con éxito.

En algunas aplicaciones, el mismo circuito no puede ser usado por múltiples verificadores, mientras que en otros, usando un esquema genérico de prueba de conocimiento cero, un único circuito puede ser usado por múltiples verificadores. Pero el uso múltiple de circuitos debe ser cuidadosamente diseñado para asegurarse de que no sean usados para revelar alguna información acerca del secreto que está siendo probado.

Para los entornos de ejecución confiables, la escalabilidad entre usos y aplicaciones es dependiente de su implementación, la cual es determinada por un conjunto establecido de factores, que incluyen los equipos, la arquitectura del software usado y requisitos específicos para el caso de uso que se le quiera dar al entorno de ejecución. En algunas circunstancias, por ejemplo, con un entorno de ejecución confiable implementado en un dispositivo móvil, los usos se pueden limitar a aplicaciones simples. En cambio, para las aplicaciones Web 3.0, TEE es normalmente usado por validadores de cadenas de bloques capaces de procesar grandes cargas computacionales de trabajo. Y estos entornos soportan la ejecución de una máquina de código arbitrario, por lo tanto, pueden ser usados por múltiples desarrolladores con numerosas aplicaciones.

Oasis abstrae los detalles de bajo nivel, pero críticos para la seguridad relacionados con el entorno de ejecución, la realización de retesteo remoto, organización de comités de cómputo, proporcionando pruebas confiables de almacenamiento no manipulable, disponibilidad de datos y más. Para los usuarios y desarrolladores, Oasis empaqueta TEE en tiempos de ejecución que se corren en la red de Oasis, con interfaces externas cuidadosamente diseñadas, lo que hace que la computación confidencial basada en TEE sea fácil de consumir de manera segura.

En particular, para los desarrolladores de Solidity, esto significa que cuando construyan usando TEE sobre la red de Oasis no hay limitaciones o requerimientos basados en el recuento de usuarios o ecosistemas específicos. Los desarrolladores no solo pueden añadir un estado encriptado a cualquier aplicación ya construida en Solidity, de una manera sencilla y con pocas modificaciones, sino que también pueden elegir específicamente qué aspectos del estado desean encriptar y cuáles desean mantener públicos. En vez de lidiar con la fricción de desarrollar circuitos de prueba de conocimientos cero para sus contratos inteligentes, los desarrolladores de Web 3 pueden tomar ventaja de la notable flexibilidad y escalabilidad que ofrece TEE con una ejecución segura para cualquier aplicación construida en cualquier cadena de bloques.

Seguridad y Rendimiento

ZKP puede ser computacionalmente caro, dependiendo del tipo de algoritmo usado y la complejidad del problema que está siendo probado. Las ZKPs usualmente requieren una cantidad significante de recursos computacionales para generar las pruebas porque su seguridad es derivada solamente de las operaciones criptográficas. La verificación en sí misma es rápida. Pero la complejidad de la mayoría de los algoritmos que usan ZKP es proporcional al tamaño de sus circuitos, y existen muchos tipos de algoritmos basados en ZKP. Algunos son más costosos computacionalmente que otros. Los desarrolladores que usan ZKPs a menudo creen que los beneficios de privacidad y seguridad compensan los altos costos computacionales.

TEEs son diseñados para proporcionar ambientes seguros y aislados donde se pueda correr código sensible sin la carga de operaciones criptográficas costosas. Debido a que la seguridad de TEEs se basa en los equipos de cómputo con algunos elementos de software en lugar de depender únicamente de la criptografía, hay una mejora en la realización de cargas de trabajo complejas. Los TEE no son inmunes a los ataques, especialmente a los ataques de canal lateral, que intentan explotar la fuga de información no deseada de un sistema. Por otro lado, existen diversas técnicas de mitigación que van desde las más generales y conocidas (por ejemplo, la criptografía de tiempo constante) hasta métodos más específicos requeridos por casos de uso únicos.

TEEs son diseñados para el balance entre la seguridad y el rendimiento, la mayoría de las configuraciones de los TEEs están optimizadas eficientemente y suelen usar hardware especializado para minimizar el impacto en el rendimiento de cualquier operación de seguridad adicional. De hecho, la mayoría de la carga computacional para TEE se basa en operaciones que provienen de la necesidad de tareas adicionales relacionadas con la seguridad, como encriptar y desencriptar los datos o verificar la integridad del código corriendo dentro de un TEE.

Por ejemplo, si queremos proveer de características de privacidad a un Exchange Descentralizado en web 3, usando solamente ZKPs, podría no ser suficiente y volverse una tarea extremadamente complicada. En cambio, si se implementa un TEE, esto daría mucha más flexibilidad a la tarea de agregar datos más complejos, haciendo esta tarea más fácil y eficiente de implementar.

Consideremos un escenario en el que se involucren transacciones con monedas estables entre un remitente y un destinatario. Hoy en día, la norma es la visibilidad completa de todos los datos en las transacciones por parte del remitente, el receptor, el emisor y cualquier otra persona que mire la cadena de bloques. Al usar TEE, los desarrolladores pueden construir aplicaciones sofisticadas y complejas que personalizan la visibilidad de los datos en cadena. Si solo el destinatario y el remitente miran los datos, el emisor también tiene permisos de visibilidad, incluso solo el remitente puede ver los datos, todas estas opciones están disponibles para desarrolladores de dApps que busquen construir un complejo y robusto TEE.

Flexibilidad de los Smart Contracts

Los TEE están diseñados para un alto rendimiento bajo cargas de trabajo computacionales significativas, como las que producen los contratos inteligentes avanzados y las aplicaciones Web3 con una gran cantidad de datos. La facilidad de uso y la flexibilidad para los desarrolladores dentro de los TEE son una razón principal por la cual estos entornos son adecuados para muchas de las aplicaciones complejas construidas en todo el Web3.

En general, los TEEs son adecuados para la ejecución general de contratos inteligentes y especialmente de contratos inteligentes que necesitan agregar grandes cantidades de información privada. La experiencia del desarrollador también es mucho más simple. Por ejemplo, las aplicaciones confidenciales en Oasis construidas sobre Sapphire (La capa confidencial compatible con la EVM impulsada por TEEs) pueden ser desarrolladas en días en comparación con los meses o incluso años que se necesitan si se usa algún otro tipo de tecnología de privacidad alternativa.

Las ZKP tradicionalmente no están bien optimizadas para la ejecución de los contratos inteligentes. Recientemente ha existido un notable progreso en la compatibilidad para soportar EVM, no obstante, estas mejoras de compatibilidad se centran en casos de uso de escalabilidad (y no de privacidad) como ZK-EVMs. Las pruebas de conocimiento cero todavía tienen limitaciones para permitir la privacidad en la ejecución generalizada de contratos inteligentes. Esto es debido a que las pruebas de conocimiento cero requieren de un proveedor que tenga acceso al estado general y a los datos de la transacción, lo que no se puede lograr si ciertos aspectos del estado general se mantienen privados. Esto crea limitaciones severas para el uso de las pruebas de conocimiento cero como soluciones de privacidad para cualquier aplicación que necesite lograr en múltiples contextos, donde el conocimiento de múltiples participantes es requerido.

En ciertas aplicaciones con casos de uso simples, las pruebas de conocimiento cero resuelven fácilmente el tema de privacidad para los usuarios. Pero a medida que aumenta la carga computacional y los datos que ingresan, se vuelve más complejo. Alcanzar la privacidad se vuelve más desafiante, más costoso y menos flexible. Para mitigar estos problemas y proteger aplicaciones descentralizadas con cargas de información grandes y complejas, a veces se requiere la personalización de los circuitos. Algunos equipos que usan pruebas de conocimiento cero construyen entornos de desarrollo para simplificar el proceso de integrar pruebas de conocimiento cero a los contratos inteligentes, pero estos no otorgan los mismos niveles de flexibilidad y privacidad que ofrecen los entornos de ejecución confiable (TEEs).

Compensaciones De Confianza

Entender el modelo de confianza de cualquier tecnología de privacidad en la web 3 es importante para los desarrolladores y los usuarios. Algunas soluciones basadas en pruebas de conocimiento cero, por ejemplo, pueden depender de secuenciadores semi confiables para verificar la información. Incluso si las pruebas de conocimiento cero pueden ser una solución de escalabilidad efectiva, debe quedar claro el por qué las ZKP son una solución de privacidad limitada para WEB 3. Si una aplicación permite múltiples secuenciadores, la privacidad empeora. Pero en casos de uso específicos, las pruebas de conocimiento cero pueden proveer de una privacidad útil, un ejemplo sería la moneda de Zcash. Sin revelar cuántos tokens pertenecen o son gastados, cada usuario necesita probar que no hay un gasto doble de tokens. Usar las pruebas de conocimiento cero son esenciales para probar que los usuarios no hacen malos usos. Pero para ser claros, esta técnica se encuentra limitada a casos de uso muy específicos (e.j. monedas) y no está optimizado para una computación generalizada segura.

Para TEEs, la noción de confianza está en el nombre. Pero la confiabilidad de un TEE se limita en gran medida a la confianza basada en hardware, donde el TEE se implementa para proporcionar un entorno de ejecución seguro que está aislado del resto del sistema. Esta confianza basada en hardware se basa principalmente en el diseñador y fabricante de hardware y sus prácticas de seguridad. Esta confianza se puede verificar en gran medida mediante procesos de arranque seguro, enclaves seguros y otras técnicas estándar de la industria. Los TEE permiten a los desarrolladores producir certificaciones a prueba de manipulaciones para entradas de datos y certificaciones para cualquier aplicación que estén construyendo o utilizando.

En Conclusión

En resumen, las tecnologías de privacidad para Web3 existen en un espectro con muchas fortalezas, debilidades y compensaciones.

Las tecnologías como el ZKP pueden satisfacer algunos casos de uso enfocados en la privacidad, pero tienen limitaciones en su rendimiento, escalabilidad y soporte para computacion en general. En cambio otras tecnologías de privacidad como los entornos de ejecución confiables son mas atractivos para desarrollar aplicaciones descetralizadas con grandes cantidades de usuarios constantes y grandes cantidades de informacion. En estas situaciones, TEEs ofrecen una flexibilidad, escalabilidad y un alto rendimiento para la integracion de herramientas confidenciales robustas en un sistema basado en un entorno de ejecucion confiable.

Independientemente de qué herramientas de privacidad utilice un desarrollador, el futuro de Web3 es brillante con una amplia gama de tecnologías de privacidad para elegir.