Pular para o conteúdo principal

Checklist de integração do token

soliditycontratos inteligentessegurançatokens
Intermediário
Trailofbits
Construindo contratos seguros(opens in a new tab)
13 de agosto de 2020
5 minutos de leitura minute read

Siga este checklist ao interagir com tokens arbitrários. Certifique-se de que você entende os riscos associados a cada item e justifique qualquer exceção a essas regras.

Por conveniência, todos os utilitários(opens in a new tab) do Slither podem ser executados diretamente em um endereço de token, como:

Usando Tutorial do Slither

slither-check-erc 0xdac17f958d2ee523a2206206994597c13d831ec7 TetherToken

Para seguir esta lista de verificação, você vai querer ter essa saída do Slither para o token:

- slither-check-erc [target] [contractName] [optional: --erc ERC_NUMBER]
- slither [target] --print human-summary
- slither [target] --print contract-summary
- slither-prop . --contract ContractName # requer configuração, e uso de Echidna e Manticore

Considerações gerais

Conformidade do ERC

O Slither inclui um utilitário, slither-check-erc(opens in a new tab), que analisa a conformidade de um token com vários padrões de ERC relacionados. Use slither-check-erc para revisar que:

O Slither inclui um utilitário, slither-prop(opens in a new tab), que gera testes unitários e propriedades de segurança que podem descobrir muitas falhas comuns do ERC. Use slither-check-erc para revisar que:

Por último, há certas características que são difíceis de identificar automaticamente. Revisão destas condições manualmente:

  • "Transfer" e "transferFrom" não devem cobrar taxas. Os tokens deflacionários podem levar a um comportamento inesperado.
  • Os potenciais juros obtidos com os token são retirados da conta. Alguns tokens distribuem juros para os titulares (holders) de tokens. Estes juros podem estar atados ao contrato caso não tenham sido retirados da conta.

Composição do contrato

Privilégios do proprietário

Escassez de token

Revisões de problemas de escassez de tokens requerem revisão manual. Verifique estas condições:

  • Nenhum usuário é dono da maior parte do abastecimento. Se alguns usuários possuem a maioria dos tokens, eles podem influenciar operações baseadas na repartição do token.
  • A oferta total é suficiente. Tokens com uma oferta baixa podem ser facilmente manipulados.
  • Os tokens estão localizados em mais de algumas trocas. Se todos os tokens estiverem em uma troca, um compromisso da troca pode comprometer o contrato que depende do token.
  • Os usuários entendem os riscos associados a grandes fundos ou flash loans. Contratos que dependem do saldo do token devem levar cuidadosamente em consideração ataques com grandes fundos ou ataques por meio de flash loans.
  • O token não permite flash minting. O "Flash minting" pode levar a oscilações substanciais na balança e no fornecimento total, o que exige verificações de overflow rigorosas e abrangentes na operação do token.

Última edição: @nhsz(opens in a new tab), 15 de agosto de 2023

Este tutorial foi útil?