Vai al contenuto principale

Elenco di controllo per l'integrazione dei token

soliditycontratti intelligentisicurezzatoken
Intermedio
Trailofbits
Creare contratti sicuri(opens in a new tab)
13 agosto 2020
5 minuti letti minute read

Segui questo elenco di controllo quando interagisci con token arbitrari. Assicurati di conoscere i rischi associati a ogni oggetto e giustifica ogni eccezione a queste regole.

Per comodità, tutte le utilità(opens in a new tab) di Slither sono direttamente eseguibili su un indirizzo di un token, come:

Uso del tutorial di Slither

slither-check-erc 0xdac17f958d2ee523a2206206994597c13d831ec7 TetherToken

Per seguire questo elenco di controllo, è utile questo output da Slither per il 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

Considerazioni generali

Conformità ERC

Slither include un'utilità, slither-check-erc(opens in a new tab), che revisiona la conformità di un token rispetto a molti standard ERC correlati. Usa slither-check-erc per controllare che siano soddisfatte le seguenti condizioni:

Slither include una utility, slither.prop(opens in a new tab) che genera unit test e proprietà di sicurezza che possono scoprire molti difetti ERC comuni. Usa slither-prop per verificare quanto segue:

Infine, ci sono alcune caratteristiche che sono difficili da identificare automaticamente. Riesamina manualmente queste condizioni:

  • Transfer e transferFrom non devono richiedere commissioni. I token deflazionistici possono condurre a comportamenti imprevisti.
  • I potenziali interessi guadagnati dal token sono considerati. Alcuni token distribuiscono interessi ai possessori di token. Questo interesse potrebbe rimanere intrappolato nel contratto se non preso in considerazione.

Composizione del contratto

Privilegi del proprietario

Scarsezza di token

Le verifiche dei problemi di scarsità dei token richiedono un controllo manuale. Verifica queste condizioni:

  • Nessun utente possiede la maggior parte della disponibilità. Se pochi utenti possiedono gran parte dei token, possono influenzare le operazioni in base alla ripartizione dei token.
  • La disponibilità totale di token è sufficiente. I token con una limitata disponibilità totale sono facilmente manipolabili.
  • I token si trovano in più di un paio di scambi. Se tutti i token si trovano in un solo scambio, compromettere lo scambio può causare la compromissione del contratto basato sul token.
  • Gli utenti comprendono i rischi associati a fondi di vaste dimensioni o prestiti lampo. I contratti che si basano sul saldo dei token devono fare molta attenzione agli aggressori con fondi molto estesi o attacchi tramite prestiti lampo.
  • I token non consentono il conio lampo. Il conio lampo può condurre a oscillazioni sostanziali del saldo e della disponibilità totale, che necessitano di controlli rigorosi e completi dell'overflow nel funzionamento del token.

Ultima modifica: @nhsz(opens in a new tab), 15 agosto 2023

Questo tutorial è stato utile?