Ir al contenido principal

Directrices de seguridad de contratos inteligentes

soliditycontratos inteligentesseguridad
Intermedio
Trailofbits
Desarrollar contratos seguros(opens in a new tab)
6 de septiembre de 2020
5 minuto leído minute read

Siga estas recomendaciones generales para crear contratos inteligentes más seguros.

Directrices de diseño

El diseño del contrato debe ser verse con antelación, antes de escribir cualquier línea de código.

Documentación y especificaciones

La documentación se puede escribir en diferentes niveles y debe actualizarse al implementar los contratos:

Cálculo en cadena vs. fuera de cadena

  • Mantenga todo el código que se pueda fuera de cadena. Mantenga una capa en cadena pequeña. Preprocese datos con código fuera de la cadena de tal manera que la verificación en cadena sea simple. ¿Necesito una lista ordenada? Ordene la lista fuera de la cadena y luego solo compruebe su orden dentro de la cadena.

Capacidad de mejora

Analizamos diferentes soluciones de mejora en nuestra entrada de blog(opens in a new tab). Tome una decisión deliberada de si admitir la capacidad de mejora o no antes de escribir cualquier código. La decisión influirá en la forma en que estructura su código. En general, se recomienda:

Guías de implementación

Busque simplicidad ante todo. Use simpre la solución más simple que se adapte a su propósito. Cualquier miembro del equipo debería ser capaz de entender la solución.

Composición de funciones

La arquitectura del código base debería hacer que el código sea fácil de revisar. Evite opciones arquitectónicas que disminuyan la capacidad de razonar acerca de la corrección.

  • Divida la lógica de su sistema, ya sea a través de múltiples contratos o agrupando funciones similares (por ejemplo, autenticación, aritmética, ...).
  • Escriba pequeñas funciones con un propósito claro. Esto facilitará la revisión y permitirá la prueba de componentes individuales.

Herencia

Events

  • Registre todas las operaciones cruciales. Los eventos ayudarán a depurar el contrato durante el desarrollo y monitorearlo después de la implementación.

Evite inconvenientes conocidos

Dependencias

Pruebas y verificación

Solidity

Directrices para la implementación

Una vez que el contrato haya sido desarrollado e implementado:

Última edición: @pettinarip(opens in a new tab), 8 de diciembre de 2023

¿Le ha resultado útil este tutorial?