solidity-security은(는) 무엇을 하나요?
스마트 계약 보안 모범 사례를 숙지하여 일반적인 취약점을 방지하고 안전한 Solidity 패턴을 구현합니다. 스마트 계약 작성, 기존 계약 감사, 블록체인 애플리케이션의 보안 조치 구현 시 사용하세요.
주요 기능
- 취약점 탐지: 재진입(Reentrancy), 정수 오버플로우(Overflow), 접근 제어 오류 등 일반적인 취약점을 식별합니다.
- 보안 패턴 적용: Checks-Effects-Interactions 패턴, Pull over Push 결제 패턴 등을 권장합니다.
- 최신 보안 업데이트: Solidity 0.8+에서 기본 제공되는 오버플로우 검사 및 기타 내장 보안 기능을 활용합니다.
- 감사 도구 통합: Slither, MythX, Echidna 등의 보안 분석 도구 사용법을 안내합니다.
사용 방법
- 계약을 작성하기 전에 보안 요구사항을 정의합니다.
- 개발 중에 권장 패턴과 모범 사례를 적용합니다.
- 완료 후 보안 분석 도구를 실행하여 취약점을 검사합니다.
- 감사 보고서 예제를 참고하여 최종 계약을 검토합니다.
예제
// Checks-Effects-Interactions 패턴 예제
function withdraw(uint256 amount) public {
require(balances[msg.sender] >= amount, "Insufficient balance");
// Effects (상태 변경)
balances[msg.sender] -= amount;
// Interactions (외부 호출)
(bool success, ) = msg.sender.call{value: amount}("");
require(success, "Transfer failed");
}