Ir al contenido principal

Lista de verificación de integración de tokens

soliditycontratos inteligentesseguridadtókenes
Intermedio
Trailofbits
Desarrollar contratos seguros(opens in a new tab)
13 de agosto de 2020
5 minuto leído minute read

Siga esta lista de verificación al interactuar con tokens arbitrarios. Asegúrese de comprender los riesgos asociados con cada elemento y de justificar cualquier excepción a estas reglas.

Por conveniencia, todas las utilidades(opens in a new tab) de Slither pueden correr directamente en una dirección de token, como:

Uso del tutorial de Slither

slither-check-erc 0xdac17f958d2ee523a2206206994597c13d831ec7 TetherToken

Para seguir esta lista de verificación, querrá tener esta salida de Slither para el token:

- slither-check-erc [target] [contractName] [optional: --erc ERC_NUMBER]
- slither [target] --print human-summary
- slither [target] --print contract-summary
- slither-prop . --contract ContractName # requires configuration, and use of Echidna and Manticore

Consideraciones generales

Conformidad con ERC

Slither incluye una utilidad, slither-check-erc(opens in a new tab), que verifica la conformidad de un token con varios estándares ERC. Utilice slither-check-erc para revisar eso:

Slither incluye una utilidad, slither-prop(opens in a new tab), que genera pruebas unitarias y propiedades de seguridad que pueden descubrir muchas fallas comunes de ERC. Use slither-prop para revisar que:

Por último, hay ciertas características que son difíciles de identificar automáticamente. Revise estas condiciones a mano:

  • Transfer y transferFrom no deben cobrar una tarifa. Los token deflacionarios pueden resultar en un comportamiento inesperado.
  • Se tiene en cuenta el interés potencial obtenido con el token. Algunos tokens distribuyen interés a los portadores del token. Este interés podría quedar atrapado en el contrato si no se tiene en cuenta.

Composición del contrato

Privilegios de propietario

Escasez de tokens

Las revisiones de problemas de escasez de tokens requieren una revisión manual. Compruebe estas condiciones:

  • Ningún usuario posee la mayor parte del suministro. Si unos pocos usuarios poseen la mayoría de los tokens, pueden influir en las operaciones en función de la repartición del token.
  • El suministro total es suficiente. Los tokens con un suministro total bajo pueden ser manipuladas fácilmente.
  • Los tokens se encuentran en más que algunos pocos exchanges. Si todos los tokens están en un solo exchange, la vulneración del exchange puede comprometer el contrato asociado al token.
  • Los usuarios comprenden los riesgos asociados a fondos grandes o préstamos flash. Los contratos que dependen del saldo de token deben tomar en consideración a atacantes con grandes fondos o ataques a través de préstamos flash.
  • El token no permite minteos flash. Los minteos flash pueden provocar oscilaciones sustanciales en el saldo y el suministro total, que requieren un control estricto y exhaustivo del desbordamiento en el funcionamiento del token.

Última edición: @nhsz(opens in a new tab), 15 de agosto de 2023

¿Le ha resultado útil este tutorial?