DRESS Token 온체인 분석 보고서

Polygon Mainnet - UUPS Proxy 업그레이드 히스토리 분석

분석일: 2026-01-13
네트워크: Polygon Mainnet
토큰: 0xE680...bC78

01 분석 개요

본 문서는 DRESS Token (Polygon) 컨트랙트의 현재 상태 및 업그레이드 히스토리를 온체인 데이터 기반으로 분석한 결과입니다.

Token Proxy
0xE6800Cf598015A3Ec5DD534f328F349da239bC78
Token Name
Dress (DRESS)
Total Supply
2,000,000,000 DRESS
Pattern
UUPS Proxy (ERC1967)
Owner
Gnosis Safe 2/3
Deployer
0x333dc24b...abf0e9

02 토큰 기본 정보

Token Address 0xE6800Cf598015A3Ec5DD534f328F349da239bC78
Network Polygon Mainnet
Name Dress
Symbol DRESS
Total Supply 2,000,000,000
Paused false

03 Owner 구조

Gnosis Safe Multisig 2/3 Threshold
Owner Address 0xc9002aF889A8D98C49cb5796F5Cd8e9B6b4Ccd3a
Owner Type Gnosis Safe
Threshold 2/3 (3명 중 2명 서명 필요)

Signers

1 0x40e193D4841Eb41cA2ab61f3E957a6Bae8710509
2 0x3f83D5EdD1c0AD524f0B2b3640713c0b255AF619
3 0xeFe7Fa014ca634a9002E7057c88cF19Df3c812F5

04 Proxy 정보

Pattern UUPS (ERC1967)
Implementation 0xce5d05fae38930aee729616fec8ba1e3ce5fd8e7
Admin None (UUPS 방식)
ℹ️
UUPS Proxy 특징

UUPS(Universal Upgradeable Proxy Standard)는 업그레이드 로직이 Implementation 컨트랙트에 포함되어 있으며, 별도의 Admin 슬롯이 필요하지 않습니다.

05 타임락 적용 현황

현재 DRESS 토큰 구조
┌─────────────────────────────────────────────────────────────────┐ │ │ │ [2/3 Multisig Safe] ────────▶ [DRESS Token] │ │ 0xc9002aF889... 0xE6800Cf598... │ │ │ │ ⚠️ TimelockController 없음 │ │ ⚠️ Safe에서 직접 owner 함수 실행 가능 │ │ │ └─────────────────────────────────────────────────────────────────┘
TimelockController
미적용 - Owner가 Safe이며, TLC가 아님
Multisig
적용됨 - 2/3 다중서명
업그레이드 타임락
없음 - Safe 승인 즉시 실행 가능
대량 이체 타임락
없음 - 컨트랙트 내장 타임락 없음

06 업그레이드 히스토리

타임라인

2025-01-23
V1 (Initial) - 최초 배포
Block: 67,032,639
Implementation: 0x2cdB1F65...16adD
2025-03-20
V2 (1st Upgrade) - 배포 56일 후
Block: 69,290,282
Implementation: 0x82395B0d...8DBB
2025-04-07
V3 (Current) - V2 후 18일
Block: 69,993,278
Implementation: 0xCe5d05FA...d8e7

Implementation 주소 목록

버전 Implementation 주소 배포일 블록 Bytecode
V1 0x2cdB1F652094947E4F4939c68e61E4FEbEb16adD 2025-01-23 67,032,639 11,509 bytes
V2 0x82395B0dec21c990A42EAeB2c5F01Fdfe0a98DBB 2025-03-20 69,290,282 13,070 bytes
V3 Current 0xCe5d05FAE38930aeE729616FEC8BA1e3ce5Fd8e7 2025-04-07 69,993,278 12,542 bytes

07 트랜잭션 상세

최초 배포 (V1) 2025-01-23
TX Hash 0x3772d52f14ca3d2a953c29a8b71c3f3a83db7c3301502e9cfdf6a6d0f2eef579
날짜 2025-01-23 04:03:22 UTC
블록 67,032,639
실행자 0x333dc24b2ad3f19086c06113b253ef4421abf0e9
작업 ERC1967Proxy 생성
Initial Impl 0x2cdB1F652094947E4F4939c68e61E4FEbEb16adD
1차 업그레이드 (V1 → V2) 2025-03-20
TX Hash 0xe1cde051b3ce9561371197692d8ff9bf9a32679e75dc771165a08cbddcffc116
날짜 2025-03-20 18:36:51 UTC
블록 69,290,282
실행자 0x333dc24b2ad3f19086c06113b253ef4421abf0e9
함수 upgradeTo(address)
Bytecode 변화 +1,561 bytes
2차 업그레이드 (V2 → V3) 2025-04-07
TX Hash 0xd549c6a653f049b34feed18660fd798e9bc17017764f828808b72e7e24d8b11f
날짜 2025-04-07 04:04:37 UTC
블록 69,993,278
실행자 0x333dc24b2ad3f19086c06113b253ef4421abf0e9
함수 upgradeTo(address)
Bytecode 변화 -528 bytes

08 버전별 주요 기능

V1 (Initial) 2025-01-23
  • ├── ERC20 표준 (transfer, transferFrom, approve, balanceOf)
  • ├── 8개 할당 주소별 베스팅 스케줄
  • ├── getUnlockedAmount() - 언락 수량 계산
  • ├── getUnlockedLiquidityAmount() - 유동성 특수 언락
  • ├── pause/unpause - 긴급 정지
  • ├── burn/burnFrom - 토큰 소각
  • └── UUPS 업그레이드 지원
V2 (1st Upgrade) 2025-03-20 +1,561 bytes
  • ├── transferLockedByOwner() - 오너가 클리프 기간 중 잠긴 토큰 이체 가능
  • ├── 베스팅 로직 개선/수정
  • └── (상세 diff는 소스 코드 직접 비교 필요)
V3 (Current) 2025-04-07 -528 bytes
  • ├── resetTransferTracking() - 이체 추적 초기화 기능 추가
  • ├── _receivedUnlockedAmount 변수 제거
  • ├── _transferredAmount로 추적 방식 단순화
  • └── 코드 최적화/리팩토링

09 보안 분석

업그레이드 실행 구조

업그레이드 실행 경로 (실제 기록 기반)
┌────────────────────────────────────────────────────────────────┐ │ │ │ [Deployer EOA] ──upgradeTo()──▶ [DRESS Token Proxy] │ │ 0x333dc24b... 0xE6800Cf5... │ │ │ │ ⚠️ 업그레이드 당시 Owner가 Deployer였음 │ │ ⚠️ 현재 Owner는 Safe (2/3 Multisig)로 변경됨 │ │ ⚠️ TimelockController 미적용 - 즉시 실행 │ │ │ └────────────────────────────────────────────────────────────────┘

오딧 관점 체크리스트

항목 당시 상태 현재 상태 오딧 권장
업그레이드 실행자 Deployer (EOA) Safe (2/3) Safe 또는 TLC
타임락 없음 없음 24시간 이상 권장
다중서명 없음 2/3 2/3 이상 권장
사전 공지 없음 없음 온체인 이벤트 로그
⚠️
보안 주의사항

업그레이드 당시 EOA 단일 키로 실행되었습니다. 현재는 2/3 Multisig로 변경되었으나, TimelockController가 없어 Safe 승인 즉시 업그레이드가 반영됩니다. 중요 변경 시 사전 공지 기간을 확보하는 것이 권장됩니다.

10 결론 및 권장사항

주요 발견 사항

  • 1 총 2회 업그레이드 수행됨 (온체인 검증 완료)
  • 2 업그레이드 실행자: Deployer EOA가 직접 실행
  • 3 타임락 미적용: upgradeTo() 직접 호출로 즉시 반영
  • 4 Owner 변경: 업그레이드 이후 Safe(2/3)로 변경됨

권장 개선 구조

권장 업그레이드 구조
[현재] Safe (2/3) ────▶ Token Proxy (upgradeTo) [권장] Safe (2/3) ────▶ TimelockController (24h) ────▶ Token Proxy
현재 상태 검증 완료

Proxy Address: 0xE6800Cf598015A3Ec5DD534f328F349da239bC78
Current Implementation: 0xCe5d05FAE38930aeE729616FEC8BA1e3ce5Fd8e7
Status: V3 (Latest) - 온체인 검증 완료