Przejdź do głównej zawartości

Wskazówki dotyczące bezpieczeństwa kontraktów inteligentnych

solidityinteligentne kontraktyochrona
Średnie
Trailofbits
Tworzenie bezpiecznych kontraktów(opens in a new tab)
6 września 2020
4 minuta czytania minute read

Postępuj zgodnie z tymi ogólnymi zaleceniami, aby tworzyć bezpieczniejsze inteligentne kontrakty.

Wytyczne dotyczące projektowania

Projekt kontraktu powinien być omówiony z wyprzedzeniem, przed napisaniem jakiejkolwiek linijki kodu.

Dokumentacja i specyfikacje

Dokumentacja może być pisana na różnych poziomach i powinna być aktualizowana w trakcie realizacji umów:

Obliczenia on-chain vs off-chain

  • Zachowaj jak najwięcej kodu off-chain. Zatrzymaj niewielką warstwę on-chain. Wstępnie przetwarzaj dane z kodem off-chain w taki sposób, aby weryfikacja on-chain była prosta. Potrzebujesz uporządkowanej listy? Posortuj listę off-chain, a następnie sprawdź tylko jej kolejność on-chain.

Możliwość uaktualnienia

Omówiliśmy różne rozwiązania dotyczące możliwości uaktualnień w poście na blogu(opens in a new tab). Dokonaj rozważnego wyboru, czy wspierać możliwość uaktualniania, czy nie, przed napisaniem jakiegokolwiek kodu. Decyzja wpłynie na sposób, w jaki ustrukturyzujesz kod. Generalnie zalecamy:

Wytyczne dotyczące wdrażania

Poszukaj prostoty. Zawsze używaj najprostszego rozwiązania, które pasuje do Twojego celu. Każdy członek twojego zespołu powinien być w stanie zrozumieć Twoje rozwiązanie.

Skład funkcji

Architektura Twojej bazy kodu powinna ułatwić sprawdzenie twojego kodu. Unikaj wyborów architektonicznych, które zmniejszają zdolność rozumowania o jego poprawności.

  • Podziel logikę swojego systemu poprzez wiele umów lub grupowanie podobnych funkcji (na przykład uwierzytelniające, arytmetyczne, ...).
  • Pisz małe funkcje o wyraźnym celu celu. To ułatwi sprawdzenie i umożliwi testowanie poszczególnych komponentów.

Dziedziczenie

Zdarzenia

  • Rejestruj wszystkie kluczowe operacje. Zdarzenia pomogą debugować kontrakt podczas jego oprawcowywania i będą go monitorować po wdrożeniu.

Unikanie znanych pułapek

Zależności

Testy i weryfikacja

Solidity

Wytyczne dotyczące wdrażania

Po opracowaniu i wdrożeniu kontraktu:

Ostatnia edycja: @pettinarip(opens in a new tab), 8 grudnia 2023

Czy ten samouczek był pomocny?