본문 바로가기
블록체인교육/블록체인보안

[블록체인 보안] 스마트컨트랙트 취약성(토큰의 소수점이슈)

by Danny_Kim 2023. 8. 25.

🔑 100배 수익 경험자의 노하우가 담긴 치트키 공개 🔑

  1. 네이버, 카카오 임직원들이 듣고 있는 비트코인 강의
  2. 아무도 알려주지 않은 비트코인, 이더리움의 리스크
  3. 블록체인 전문가들도 놓치기 쉬운 비트코인, 이더리움의 핵심 가치
  4. 천배 수익이 가능한 디파이(DeFi), 코인 생태계 지도
  5. 토큰 제작, 1억 연봉의 블록체인 개발자로 거듭나자!

정밀도 손실 - 소수점 이하를 반올림하여 0으로

 

모든 ERC20 토큰을 지원하면서, 이러한 토큰들은 서로 다른 소수 자리를 가질 수 있음.

예를들어 USDC와 USDC는 6개의 소수자리를 가짐. (계산시 조심해야 함)

 

분자가 분모보다 작으면 결과가 0이 되는 상황을 피해야 함

반올림과 관련된 문제는 다음과 같은 방법으로 피할 수 있음

  1. 필요한대로 반올림/버림 라이브러리 사용
  2. 결과가 0 아니거나 분모가 분자보다 작거나 같음을 요구
  3. 분자를 먼저 나눈 다음 곱하는 대신에 연산을 리팩토링하여 정밀도 손실이 증폭되는 상황 피하기

 

테스트소스

https://github.com/SunWeb3Sec/DeFiVulnLabs/blob/main/src/test/Precision-loss.sol

 

취약코드

 

 

테스트결과

 

참고문서

https://web3sec.notion.site/Precision-Loss-Rounded-down-to-zero-9d67b54681b3461fb574c5a745582b03

🔑 100배 수익 경험자의 노하우가 담긴 치트키 공개 🔑

  1. 네이버, 카카오 임직원들이 듣고 있는 비트코인 강의
  2. 아무도 알려주지 않은 비트코인, 이더리움의 리스크
  3. 블록체인 전문가들도 놓치기 쉬운 비트코인, 이더리움의 핵심 가치
  4. 천배 수익이 가능한 디파이(DeFi), 코인 생태계 지도
  5. 토큰 제작, 1억 연봉의 블록체인 개발자로 거듭나자!

댓글