피드로 돌아가기
Dev.toInfrastructure
원문 읽기
신뢰 경계 분리로 구현한 Uniswap V2의 불변 아키텍처
Before the Swaps: A Map of Uniswap V2
AI 요약
Context
자산 보관 컨트랙트의 보안 사고 위험 상존. 복잡한 라우팅 로직과 자산 관리 로직이 결합될 경우 공격 표면 확대. 업데이트 필요성과 불변성 유지 사이의 기술적 충돌 발생.
Technical Solution
- 자산 보관과 실행 로직을 분리한 v2-core 및 v2-periphery 구조 설계
- v2-core를 최소 기능의 불변 컨트랙트로 구현하여 관리자 키나 업그레이드 메커니즘을 완전히 배제한 보안 전략
- CREATE2를 활용해 팩토리 주소와 토큰 주소만으로 풀 주소를 오프체인에서 계산하는 결정적 배포 방식 도입
- 사용자 인터페이스 역할을 하는 Router를 Periphery에 배치하여 최적 경로 계산 및 슬리피지 체크 로직의 유연한 교체 구조 확보
- ERC-20 표준의 반환 값 불일치 문제를 해결하기 위해 low-level call로 래핑한 TransferHelper 라이브러리 적용
- Solidity의 부동 소수점 부재를 극복하기 위해 FixedPoint 라이브러리를 통한 정밀한 가격 누적 계산 방식 구현
Key Takeaway
신뢰가 필요한 핵심 로직(Core)은 최소화하여 불변성을 확보하고, 편의 기능(Periphery)은 분리하여 유연성을 높이는 신뢰 경계(Trust Boundary) 설계 원칙.
실천 포인트
금융 자산 처리 시스템 설계 시, 수정 불가능한 자산 보관 계층과 업데이트 가능한 비즈니스 로직 계층을 엄격히 분리할 것