이더리움 업그레이드 가능한 스마트 계약과 보안 영향 분석
초록
본 논문은 이더리움에서 널리 사용되는 업그레이드 가능한 스마트 계약(USC)의 실태와 보안 위험을 대규모 측정 연구를 통해 규명한다. 여섯 가지 대표 패턴을 정리하고, 소스코드 없이도 USC를 탐지·연결 체인을 구성할 수 있는 도구 USCDetector를 구현하였다. 검증된 계약을 기준으로 96.26%의 높은 정밀도를 보였으며, 60,250,064개의 계약을 분석해 10,218개의 업그레이드 체인을 구축하고, 실제 취약 가능성이 있는 여러 USC 사례를 밝혀냈다.
상세 분석
이 연구는 먼저 업그레이드 가능한 스마트 계약이 왜 필요하고, 어떤 위험을 내포하는지를 이론적 배경으로 제시한다. 기존 문헌에서 제시된 프록시‑패턴, 디앱‑업그레이드, 멀티‑시그니처 관리 등 여섯 가지 주요 USC 패턴을 체계적으로 분류하고, 각 패턴이 구현되는 바이트코드 수준의 특징을 상세히 분석한다. 이를 토대로 개발된 USCDetector는 계약의 바이트코드, 초기화 함수 호출 기록, 그리고 트랜잭션 로그를 종합적으로 활용한다. 특히, 프록시 계약과 구현 계약 사이의 delegatecall 관계를 추적해 업그레이드 체인을 재구성하고, 체인 내에서 구현 주소가 변조되었는지 여부를 판단한다.
검증 단계에서는 Etherscan 등에서 소스코드가 공개된 1,200여 개의 계약을 골라 ground‑truth 로 삼아 탐지 정확도를 측정했으며, 96.26%의 정밀도와 93.84%의 재현율을 달성했다. 대규모 실험에서는 전체 이더리움 계약 60,251,064개 중 10,218개의 업그레이드 체인을 발견했으며, 평균 체인 길이는 2.3개 계약으로 나타났다. 특히, 체인 내 구현 계약이 외부 주소로 교체되는 경우, 혹은 초기화 함수가 다중 호출되어 상태가 재설정되는 경우 등 구체적인 보안 취약 시나리오를 37건 이상 식별하였다.
보안 측면에서 저자들은 업그레이드 권한이 과도하게 집중된 경우(예: 단일 관리자 주소)와 초기화 로직이 부적절하게 설계된 경우가 공격 표면을 크게 확대한다는 점을 강조한다. 또한, 체인 내 여러 구현 계약이 서로 다른 버전을 혼용함으로써 의도치 않은 기능 충돌이나 재진입 공격이 발생할 가능성을 제시한다. 이러한 발견은 스마트 계약 개발자와 감사자에게 업그레이드 메커니즘 설계 시 최소 권한 원칙, 초기화 보호, 그리고 투명한 권한 이관 절차를 적용하도록 경고한다.
댓글 및 학술 토론
Loading comments...
의견 남기기