🔑 100배 수익 경험자의 노하우가 담긴 치트키 공개 🔑
- 네이버, 카카오 임직원들이 듣고 있는 비트코인 강의
- 아무도 알려주지 않은 비트코인, 이더리움의 리스크
- 블록체인 전문가들도 놓치기 쉬운 비트코인, 이더리움의 핵심 가치
- 천배 수익이 가능한 디파이(DeFi), 코인 생태계 지도
- 토큰 제작, 1억 연봉의 블록체인 개발자로 거듭나자!
정밀도 손실 - 소수점 이하를 반올림하여 0으로
모든 ERC20 토큰을 지원하면서, 이러한 토큰들은 서로 다른 소수 자리를 가질 수 있음.
예를들어 USDC와 USDC는 6개의 소수자리를 가짐. (계산시 조심해야 함)
분자가 분모보다 작으면 결과가 0이 되는 상황을 피해야 함
반올림과 관련된 문제는 다음과 같은 방법으로 피할 수 있음
- 필요한대로 반올림/버림 라이브러리 사용
- 결과가 0이 아니거나 분모가 분자보다 작거나 같음을 요구
- 분자를 먼저 나눈 다음 곱하는 대신에 연산을 리팩토링하여 정밀도 손실이 증폭되는 상황 피하기
테스트소스
https://github.com/SunWeb3Sec/DeFiVulnLabs/blob/main/src/test/Precision-loss.sol
취약코드
테스트결과
참고문서
https://web3sec.notion.site/Precision-Loss-Rounded-down-to-zero-9d67b54681b3461fb574c5a745582b03
댓글