Autor original: Carl Hua, socio y CTO de Shima Capital
Después del reciente exploit de reentrada de Curve, reflexiono sobre mi tiempo en JPL NASA, donde aprendí principios clave para desarrollar software confiable y resistente. Para la industria de la criptografía, estos conocimientos ahora son más importantes que nunca, y he aquí por qué:
Al final del día, solo hay dos tipos de software que realmente le importan a la gente: el software que puede matarte y el software que puede hacerte perder dinero.
La mayor parte del presupuesto (más del 80 %) del software crítico de cualquier máquina aeroespacial no se asigna al desarrollo en sí, sino a la integración y las pruebas. Si el software falla, los vehículos voladores caen del cielo: aviones de combate, drones, naves espaciales, etc.
La mayor parte del código del software aeroespacial (si se clasifica como módulo crítico) cumple con estándares de prueba/desarrollo extremadamente estrictos, como DO-178B Nivel A. No solo es necesario probar cada línea de código, sino que, si hay lógica anidada, cada condición lógica también se prueba específicamente.
En JPL NASA, la filosofía de escribir software avanzado para vuelos espaciales no es escribir el código más bonito y limpio, sino escribir código que sea fácil de probar por unidad. ¿Por qué? Es simple: cuando envías una nave espacial al espacio, solo tienes una oportunidad y nadie quiere correr riesgos con una alta probabilidad de falla. Esta es la misma lógica que las cadenas de bloques, ya que el código inmutable es su característica importante y solo tenemos una oportunidad de gastar nuestros fondos correctamente en cada transacción, entonces, ¿por qué no nos tomamos el proceso de desarrollo de dApps más en serio?
A pesar de los rigurosos procesos de desarrollo, pruebas y auditoría de código, estos medios claramente no son suficientes para mitigar todos los errores y ataques, ya que, de hecho, es casi imposible eliminar todos los errores de tiempo de ejecución mediante pruebas y auditorías. Entonces, ¿cómo protegemos nuestro software contra fallas?
Protección en tiempo de ejecución
La protección en tiempo de ejecución es una técnica de seguridad que protege las aplicaciones de software de ataques maliciosos mientras se ejecutan. Su principio es realizar una detección en tiempo real cuando el código se está ejecutando y analizar el comportamiento real del programa para protegerlo de datos y ataques maliciosos.
Las protecciones en tiempo de ejecución para software de alta confiabilidad requieren un esfuerzo y un diseño significativos porque son la última línea de defensa para garantizar que el software no entre en estados desconocidos ni falle. Esto no es sólo un argumento, sino décadas de práctica comprobada.
Hoy en Web3, creo que las aplicaciones DeFi necesitan la misma alta confiabilidad y deberían considerar el mismo enfoque. Sin embargo, debido a sus posibles limitaciones, EVM no fue diseñado para manejar tareas complejas como la protección en tiempo de ejecución. Entonces, ¿cómo proporcionamos protección en tiempo de ejecución?
Una forma es a través de la programación de Aspect. Aspects está diseñado por la red blockchain de Artela, que puede cambiar el contexto de ejecución durante el ciclo de vida de cualquier transacción de contrato inteligente para realizar comprobaciones avanzadas del estado en tiempo real del programa. Artela proporciona un diseño único de protección en tiempo de ejecución a través de la compatibilidad de Aspect y EVM, y tiene la oportunidad de convertirse en la base futura de la seguridad de contratos inteligentes cifrados.
Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
Reflexionando sobre el evento Curve por qué necesitamos Runtime Protection
Autor original: Carl Hua, socio y CTO de Shima Capital
Después del reciente exploit de reentrada de Curve, reflexiono sobre mi tiempo en JPL NASA, donde aprendí principios clave para desarrollar software confiable y resistente. Para la industria de la criptografía, estos conocimientos ahora son más importantes que nunca, y he aquí por qué:
Al final del día, solo hay dos tipos de software que realmente le importan a la gente: el software que puede matarte y el software que puede hacerte perder dinero.
La mayor parte del presupuesto (más del 80 %) del software crítico de cualquier máquina aeroespacial no se asigna al desarrollo en sí, sino a la integración y las pruebas. Si el software falla, los vehículos voladores caen del cielo: aviones de combate, drones, naves espaciales, etc.
La mayor parte del código del software aeroespacial (si se clasifica como módulo crítico) cumple con estándares de prueba/desarrollo extremadamente estrictos, como DO-178B Nivel A. No solo es necesario probar cada línea de código, sino que, si hay lógica anidada, cada condición lógica también se prueba específicamente.
En JPL NASA, la filosofía de escribir software avanzado para vuelos espaciales no es escribir el código más bonito y limpio, sino escribir código que sea fácil de probar por unidad. ¿Por qué? Es simple: cuando envías una nave espacial al espacio, solo tienes una oportunidad y nadie quiere correr riesgos con una alta probabilidad de falla. Esta es la misma lógica que las cadenas de bloques, ya que el código inmutable es su característica importante y solo tenemos una oportunidad de gastar nuestros fondos correctamente en cada transacción, entonces, ¿por qué no nos tomamos el proceso de desarrollo de dApps más en serio?
A pesar de los rigurosos procesos de desarrollo, pruebas y auditoría de código, estos medios claramente no son suficientes para mitigar todos los errores y ataques, ya que, de hecho, es casi imposible eliminar todos los errores de tiempo de ejecución mediante pruebas y auditorías. Entonces, ¿cómo protegemos nuestro software contra fallas?
Protección en tiempo de ejecución
La protección en tiempo de ejecución es una técnica de seguridad que protege las aplicaciones de software de ataques maliciosos mientras se ejecutan. Su principio es realizar una detección en tiempo real cuando el código se está ejecutando y analizar el comportamiento real del programa para protegerlo de datos y ataques maliciosos.
Las protecciones en tiempo de ejecución para software de alta confiabilidad requieren un esfuerzo y un diseño significativos porque son la última línea de defensa para garantizar que el software no entre en estados desconocidos ni falle. Esto no es sólo un argumento, sino décadas de práctica comprobada.
Hoy en Web3, creo que las aplicaciones DeFi necesitan la misma alta confiabilidad y deberían considerar el mismo enfoque. Sin embargo, debido a sus posibles limitaciones, EVM no fue diseñado para manejar tareas complejas como la protección en tiempo de ejecución. Entonces, ¿cómo proporcionamos protección en tiempo de ejecución?
Una forma es a través de la programación de Aspect. Aspects está diseñado por la red blockchain de Artela, que puede cambiar el contexto de ejecución durante el ciclo de vida de cualquier transacción de contrato inteligente para realizar comprobaciones avanzadas del estado en tiempo real del programa. Artela proporciona un diseño único de protección en tiempo de ejecución a través de la compatibilidad de Aspect y EVM, y tiene la oportunidad de convertirse en la base futura de la seguridad de contratos inteligentes cifrados.