https://secureum.substack.com/p/audit-findings-201
176. Withdrawn 이벤트 로그 중독(Log Poisoning) 가능성
- 내용
withdraw() 함수는 호출 시 Withdrawn 이벤트를 발생시킴
- 그러나
amount = 0으로 호출해도 이벤트가 발생하므로, UNI 토큰 없이도 무제한 호출 가능
- 악의적인 사용자가 이를 반복 호출해 임의의
Withdrawn 이벤트를 대량 생성할 수 있음
- 이로 인해 이벤트 로그가 스팸으로 오염되고, 온체인 데이터 분석 및 모니터링의 신뢰성이 저하될 수 있음
- 영향
- 이벤트 기반 모니터링·분석 도구의 데이터 신뢰성 훼손
- 로그 저장·인덱싱 비용 증가 및 성능 저하
- 보안 경보 시스템 혼란 및 잘못된 알림 발생 가능성
- 권장 조치
withdraw() 함수에서 amount > 0일 때만 Withdrawn 이벤트 발생
- 0 금액 호출에 대해 조기 종료(
require(amount > 0)) 또는 조건부 이벤트 발생 처리
- 이벤트 발행 로직 점검 및 유사 스팸 가능 구간 차단
- 심각도: 낮음(Low)
- 출처: Sigma Prime’s Audit of Synthetix Unipool
177. 청산자(Liquidator)에 대한 인센티브 부족
- 내용
- 청산(liquidation)은 DeFi 프로젝트에서 시스템이 저담보 상태로 전환되는 것을 방지하는 핵심 메커니즘
- Holdefi 계약은 담보 부족 상태이거나 1년 이상 비활성 상태인 계정을 청산 가능하게 함
- 그러나 현재 설계에서는 청산자가 비용이 많이 드는 청산 절차를 수행하고도 별다른 보상을 받지 못함
- 청산 속도와 실행을 장려할 인센티브 구조가 부족함
- 영향
- 시장 급변 시 청산이 지연되어 시스템 전반이 저담보 상태로 장기간 유지될 위험
- 담보 자산 가격 하락 시 전체 프로토콜의 지급 불능 가능성 증가
- 청산 프로세스 참여율 저하
- 권장 조치
- 담보 자산을 시가 대비 할인된 가격으로 구매할 수 있는 권한 제공
- 청산 시 별도의 수수료 또는 보너스 토큰 지급
- 청산 절차 비용 대비 충분한 보상이 제공되도록 파라미터 조정
- 청산 인센티브 구조를 시뮬레이션하여, 시장 변동성이 높은 상황에서도 청산 참여가 지속되도록 설계
- 심각도: 높음(High)
- 출처: OpenZeppelin’s Audit of Holdefi