메인 콘텐츠로 건너뛰기스마트 컨트랙트의 고유한 위험과 TED Protocol의 완화 방법
스마트 컨트랙트는 블록체인에 배포되면 변경할 수 없습니다. 탈중앙화 운영이 가능하지만, 그에 따른 고유한 위험도 있습니다.
위험 유형
코드 취약점
버그나 로직 오류가 자금 손실로 이어질 수 있습니다.
- 유형: 재진입 공격, 정수 오버플로우, 접근 제어 실패, 로직 오류
- 완화책:
- 다중 독립 감사
- 검증된 OpenZeppelin 라이브러리 사용
- 유닛 테스트, 통합 테스트, 퍼징 포함 광범위한 테스팅
- 버그 바운티 프로그램 운영
업그레이드 위험
컨트랙트 업그레이드가 새로운 취약점으로 이어질 수 있습니다.
- 완화책:
- Diamond Pattern(EIP-2535)으로 모듈형 업그레이드
- 48시간 타임락 지연
- 3-of-5 멀티시그 승인 필요
- 업그레이드 히스토리 완전 공개
의존성 위험
통합된 외부 프로토콜의 취약점이 영향을 줄 수 있습니다.
| 의존성 | 위험도 | 비고 |
|---|
| Curve Finance | 낮음 | 수십억 TVL, 다중 감사 |
| Uniswap V3 | 낮음 | 수십억 TVL, 다중 감사 |
| Circle CCTP | 낮음 | 기관 등급 |
| LayerZero | 낮음 | $10B+ 보안 |
| Wormhole | 중간 | 2022년 사고 후 보안 강화 |
오라클 위험
가격 오라클 조작이 발생할 수 있습니다.
- 완화책:
- 스테이블코인 집중으로 오라클 의존 최소화
- 외부 오라클 대신 DEX 스팟 가격 사용
- TWAP 보호 적용
- 슬리피지 제한으로 최종 안전장치
보안 조치
감사 현황
- 주요 감사: 코어 컨트랙트 및 브릿지 통합 감사 예정
- 자동화 스캐닝: 지속적 활성화
- 보고서 공개: 감사 완료 후 공개 예정
보안 패턴
- 재진입 보호: 실행 중 잠금
- 접근 제어: 역할 기반
- 일시정지 기능: 비상 대응용
- 구현 기준: OpenZeppelin 검증된 구현 사용
비상 제어
| 작업 | 필요 승인 |
|---|
| 일시정지 | 2-of-5 멀티시그 |
| 재개 | 3-of-5 멀티시그 |
| 업그레이드 | 3-of-5 + 타임락 |
| 비상 출금 | 4-of-5 멀티시그 |
컨트랙트 아키텍처
TED Protocol은 Diamond Pattern (EIP-2535) 을 사용합니다.
- DiamondProxy: 단일 진입점
- FXSwapFacet: 스왑 로직
- DEX 어댑터: Curve, Uniswap
- 브릿지 Facet: CCTP, LayerZero, Wormhole
- AdminFacet: 거버넌스
- 진입점을 단일화하여 보안 표면 최소화
- 모듈형 업그레이드 (한 facet 변경이 다른 것에 영향 없음)
- 가스 효율 향상
- 컨트랙트 사이즈 제한 없음
스토리지 안전성
모든 facet이 고유한 스토리지 위치를 사용하는 diamond storage를 공유하여 스토리지 충돌 문제를 방지합니다.
테스팅
| 유형 | 목표 커버리지 |
|---|
| 유닛 테스트 | 95% 이상 |
| 통합 테스트 | 80% 이상 |
| 퍼즈 테스트 | 모든 핵심 경로 |
| 불변성 테스트 | 코어 회계 로직 |
| 포크 테스트 | 메인넷 상태 기준 |
버그 바운티
| 심각도 | 보상 |
|---|
| Critical | 최대 $100,000 |
| High | $25,000 |
| Medium | $5,000 |
| Low | $1,000 |
범위:
- 모든 지원 체인의 스마트 컨트랙트
- 브릿지 통합
- TEDP 토큰 컨트랙트
범위 외: 프론트엔드 이슈, 서드파티 서비스
제보: [email protected]
사용자 보호
트랜잭션 안전장치
- 슬리피지 제한: 수령 금액이 최소값 미만이면 트랜잭션 취소
- 유효 기간: 일정 시간 초과 시 트랜잭션 자동 취소
- 검증: 금액 및 주소 검증으로 일반적인 오류 방지
문제 발생 시
| 상황 | 대응 |
|---|
| 스왑 실패 | 가스 제외 전액 환불 |
| 브릿지 전송 중단 | 수동 재시도 가능 |
| 컨트랙트 일시정지 | 출금은 계속 동작 |
| 공격 탐지 | 비상 일시정지 + 자금 복구 절차 |