Przejdź do głównej zawartości

Lista kontrolna integracji tokenów

solidityinteligentne kontraktyochronatokeny
Średnie
Trailofbits
Tworzenie bezpiecznych kontraktów(opens in a new tab)
13 sierpnia 2020
4 minuta czytania minute read

Postępuj zgodnie z tą listą kontrolną podczas interakcji z dowolnymi tokenami. Upewnij się, że rozumiesz ryzyko związane z każdym produktem i uzasadnij wszelkie wyjątki od tych zasad.

Dla wygody wszystkie narzędzia(opens in a new tab) Slithera można uruchomić bezpośrednio na adresie tokena, takim jak:

Korzystanie z samouczka Slither

slither-check-erc 0xdac17f958d2ee523a2206206994597c13d831ec7 TetherToken

Aby postępować zgodnie z tą listą kontrolną, będziesz chciał uzyskać dane wyjściowe ze Slither dla tokena:

- 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

Uwagi ogólne

Zgodność ERC

Slither zawiera narzędzie slither-check-erc(opens in a new tab), które sprawdza zgodność tokenu z wieloma powiązanymi ERC standardami. Użyj slither-check-erc, aby sprawdzić, czy:

Slither zawiera narzędzie slither-prop(opens in a new tab), które generuje testy jednostkowe i właściwości bezpieczeństwa, które mogą wykryć wiele popularnych wad ERC. Użyj slither-prop, aby sprawdzić, czy:

Wreszcie istnieją pewne cechy, które trudno zidentyfikować automatycznie. Sprawdź te warunki ręcznie:

  • Transfer i transferFrom nie powinny wiązać się z opłatami. Tokeny deflacyjne mogą prowadzić do nieoczekiwanego zachowania.
  • Potencjalne odsetki uzyskane z tokena są brane pod uwagę. Niektóre tokeny rozdzielają odsetki na posiadaczy tokenów. Te odsetki mogą zostać zablokowane w kontrakcie, jeśli nie zostanie on wzięty pod uwagę.

Kompozycja kontraktu

Uprawnienia właściciela

Niedobór tokenów

Przeglądy pod kątem problemów związanych z niedoborem tokenów wymagają ręcznego sprawdzenia. Sprawdź te warunki:

  • Żaden użytkownik nie jest właścicielem większości zasobów. Jeśli kilku użytkowników posiada większość tokenów, mogą wpływać na operacje na podstawie podziału tokena.
  • Całkowita podaż jest wystarczająca. Tokenami o niskiej łącznej podaży można łatwo manipulować.
  • Tokeny znajdują się na więcej niż kilku giełdach. Jeśli wszystkie tokeny znajdują się na jednej giełdzie, kompromis giełdy może naruszyć kontrakt polegający na tokenie.
  • Użytkownicy rozumieją ryzyko związane z dużymi funduszami lub błyskawicznymi pożyczkami. Kontrakty opierające się na saldzie tokenów muszą uwzględniać osoby atakujące z dużymi funduszami lub ataki za pośrednictwem błyskawicznych pożyczek.
  • Token nie pozwala na błyskawiczne wybijanie. Błyskawiczne wybijanie może prowadzić do znacznych wahań salda i całkowitej podaży, co wymaga ścisłych i kompleksowych kontroli przepełnienia w działaniu tokena.

Ostatnia edycja: @nhsz(opens in a new tab), 15 sierpnia 2023

Czy ten samouczek był pomocny?