Back to Blog

적게 예치하고 더 많이 얻기: yCREDIT 공격 상세 내용

Code Auditing
January 3, 2021
2 min read

2021년 1월 2일 (베이징 시간 오전 07:25), 저희의 모니터링 시스템 ThunderForecast가 yCREDIT 스마트 컨트랙트를 향한 일련의 의심스러운 트랜잭션을 보고했습니다. 이후 저희는 연구팀이 개발한 EthScope 시스템을 사용하여 해당 트랜잭션들을 분석하고, 보고된 모든 트랜잭션이 악의적임을 확인했습니다. 이 블로그에서는 공격의 세부 사항을 설명합니다.

세부 사항

이번 공격은 실제로 발행된 토큰 수량이 의도된 수량과 일치하지 않는 문제로 인해 발생했습니다. 이로 인해 공격자는 더 낮은 가격으로 훨씬 더 많은 yCREDIT 토큰을 획득할 수 있었습니다. 이렇게 획득한 토큰은 이익을 얻기 위해 판매될 수 있습니다.

취약한 함수는 StableYieldCredit 컨트랙트_deposit 함수에 있습니다.

아래에서는 공격 트랜잭션을 사용하여 전체 과정을 설명합니다.

공격자는 먼저 1e-8 WBTC331.335 yCredit 토큰을 WBTC-yCREDIT 페어 풀로 전송했습니다. 그런 다음 공격자는 StableYieldCredit 컨트랙트에 0.5 WBTC를 예치하여 공격을 시작했습니다.

구체적으로, _value는 가격 오라클 제공자 ChainLink를 기반으로 token (0x2260fac5e5542a773aa44fbcfedf7c193bc2c599 - WBTC)의 amount (0.5)를 사용하여 계산됩니다 (480번째 줄, _value는 1466786010075). 이는 예치된 WBTC의 USD 가치를 계산하기 위한 것입니다. 그런 다음 컨트랙트는 WBTC를 예치한 사람(공격자)에게 yCREDIT 토큰 수량(_value - fee)을 전송합니다. 이는 시스템 설계상 yCREDIT의 가치가 1 USD이기 때문입니다. 공격자가 소량의 fee를 잃는 것을 제외하면 모든 것이 정상적으로 작동합니다.

또한, 컨트랙트는 예치된 WBTC를 WBTC-yCREDIT 페어 풀에 추가합니다. 이는 예치된 WBTC가 컨트랙트에 잠기면 유동성을 잃게 되기 때문입니다. 따라서 풀에 투입될 토큰 페어(WBTC 대 yCREDIT)의 가치를 먼저 계산합니다. 이 값은 _addLiquidity 함수를 사용하여 계산됩니다. 기본적으로 풀 내의 기존 준비금을 기반으로 계산됩니다. 풀에는 1e-8 WBTC331.335 yCREDIT 토큰만 있으므로, 계산된 amountA44입니다 (amountB는 1466786010075). 즉, 공격자는 44e-8 WBTC만 소비하고 (485번째 줄) 14667.86010075 - fee = 14594.52080025 yCREDIT 토큰을 얻습니다 (493번째 줄). 동시에, 소량의 WBTC (1e-8 + 44e-8)와 (331.335 + 14667.86010075) yCREDIT 토큰이 풀에 남게 됩니다.

이익을 얻기 위해 공격자는 획득한 14594.52080025 yCREDIT 토큰을 거래소에서 간단히 거래할 수 있습니다. 흥미롭게도, 이 트랜잭션에서 이익을 얻는 과정은 필요 이상으로 훨씬 복잡합니다. 다른 트랜잭션에서도 영리한 공격 전략이 관찰되었습니다.

공격에는 다음을 포함한 (이에 국한되지 않는) 일련의 트랜잭션이 관련되어 있습니다.

업데이트

2020/01/03: 취약점을 수정한 새로운 스마트 컨트랙트가 배포되었습니다.

타임라인

  • 2021/01/01 23:25 UTC, 저희 시스템에 의해 공격이 감지됨
  • 2021/01/02 16:20 UTC, 본 블로그 게시
Sign up for the latest updates
~$410만 손실: Taiko, SecondFi 익스플로잇 | BlockSec 위클리
Security Insights

~$410만 손실: Taiko, SecondFi 익스플로잇 | BlockSec 위클리

이 주간 블록체인 보안 리포트는 2026년 6월 22~28일 발생한 주요 사건 2건을 다루며, 이더리움과 카르다노에서 약 410만 달러의 피해가 확인됐습니다. Taiko 브릿지 공격은 노출된 SGX 서명 키와 디버그 엔클레이브를 거부하지 못한 증명 정책 결함을 이용해 악성 증명자를 등록하고 L2 상태 증명을 위조했습니다. SecondFi 지갑은 Ed25519 논스 도출 시 비밀 입력이 제거되는 결함으로 공개 트랜잭션 데이터만으로 개인 키 복구가 가능했습니다.

~$18M 손실: jaredFromSubway, Aztec 등 | BlockSec 위클리
Security Insights

~$18M 손실: jaredFromSubway, Aztec 등 | BlockSec 위클리

이 주간 블록체인 보안 보고서는 2026년 6월 15일~21일을 다루며, 이더리움과 BNB 체인에서 3건의 주요 사고가 발생해 약 $18.3M의 손실이 발생했습니다. jaredFromSubway 사건은 MEV 봇이 차익거래를 위해 신뢰할 수 없는 제3자 컨트랙트에 자산을 승인한 역방향 승인 공격으로, 가짜 래퍼 토큰과 스왑 풀을 이용해 약 $15M 손실이 발생했습니다. Aztec은 이스케이프 해치 ZK 회로의 제약 누락으로 공격자가 가짜 머클 트리로 온체인 검증을 통과했습니다.

Web3 컴패니언: 오픈소스 보안 에이전틱 지갑

Web3 컴패니언: 오픈소스 보안 에이전틱 지갑

BlockSec가 Web3 Companion을 오픈소스로 공개했습니다. 이 보안 중심의 에이전트 지갑은 자체 AI 에이전트를 신뢰하지 않는 방식으로 설계되었으며, 키 격리, 강력한 정책, Passkey를 활용해 온체인 자산을 보호합니다.

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit