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

[블록체인 보안] 스마트컨트랙트 취약성 (예측가능한 무작위성 취약점)

by Danny_Kim 2023. 8. 24.

🔑 코인 투자 추천 링크 🔑

  1. 비트코인, 알트코인 투자 노하우 모두 공개
  2. OKX 거래소 - 20% 수수료 할인
  3. 플립스터 거래소 - USDT 15% 이자
  4. 해시키 거래소 - HSK 에어드랍

 

 

블록 해시, 블록 번호, 블록 타임스탬프 및 기타 필드와 같은 전역변수의 사용은 안전하지 않으며, 마이너와 공격자가 이를 제어할 수 있음

 

시나리오

GuessTheRandomNumber는 블록해시와 타임스탬프에서 생성된 유사한 무작위 숫자를 맞춘다면 1 이더를 얻을 수 있는 게임

처음에는 올바른 숫자를 맞추는 것은 불가능한 것처럼 보임

  1. 엘리스가 1 이더와 함께 GuessTheRandomNumber를 배포함
  2. 이브가 Attack을 배포함
  3. 이브가 Attack.attack()를 호출하고 1 이더를 획득함

개선방안

blockhash block.timestamp 무작위성의 소스로 사용하지 말것

 

테스트 소스

https://github.com/SunWeb3Sec/DeFiVulnLabs/blob/main/src/test/Randomness.sol

 

취약성 코드

 

테스트.

 

참고문서

https://web3sec.notion.site/Randomness-c4c2719e6ab04040b50e2b0900da56a6

🔑 코인 투자 추천 링크 🔑

  1. 비트코인, 알트코인 투자 노하우 모두 공개
  2. OKX 거래소 - 20% 수수료 할인
  3. 플립스터 거래소 - USDT 15% 이자
  4. 해시키 거래소 - HSK 에어드랍

댓글