# UUPS vs Transparent **Published by:** [Primrose](https://paragraph.com/@primrose/) **Published on:** 2023-07-22 **URL:** https://paragraph.com/@primrose/uups-vs-transparent ## Content Upgradeable Contract업그레이드 가능한 스마트 컨트랙트는 보통 proxy pattern을 사용해서 배포된다. 한 번 배포된 스마트 컨트랙트의 코드를 변경할 수 없기 때문에, 저장을 담당하는 Storage Contract와 실제 비즈니스 로직을 포함하는 Logic Contract로 분할하여 작동한다. 자세한 내용은 이전에 작성한 글을 참고하면 좋을 것 같다. https://mirror.xyz/0xA1d9f681B25C14C1eE7B87f1CF102E73cA3ad4d9/tCzymqSMhpU5h3y0cuN5oz58O7eVu6r6hr17WxUskZY 아무튼 요약 정리하면 다음과 같다.Upgradeable contract는 코드를 추론하기 어렵게 만들고, 버그의 위험이 증가되므로 충분한 테스트와 Audit process가 이루어져야 한다.Contract를 업그레이드 할 수 있으므로 업그레이드를 수행할 권한이 있는 관리자 계정이 있어야한다. (역으로 말하자면 관리자 계정으로 중앙 집중화가 된다).자료구조의 레이아웃이 변경되어서는 안된다.UUPS (Universal Upgradeable Proxy Standard)EIP-1822에 해당하는 이 표준은 간단하고 효율적으로 업그레이드를 할 수 있도록 해준다. https://eips.ethereum.org/EIPS/eip-1822 이 패턴에선 구현 관리 및 fallback 기능을 포함한 모든 작업이 한 컨트랙트에 포함되어 있다. UUPS 패턴에서는 업그레이드 기능을 호출할 수 있는 사람을 제한하기 위해 modifier를 사용하여 업그레이드 기능을 보호할 수 있다. 또한 UUPS 패턴은 단순성 때문에 더 가스 효율적이다.Transparent (Openzeppelin)Transparent 에서는 Proxy Contract와 Implementation Contract로 나뉜다. 당연히 배포비용이 많이 들지만, 유지 관리가 쉽다. 오픈제플린에서는 UUPS를 권장한다. 말 듣는게 좋을 것 같다. ## Publication Information - [Primrose](https://paragraph.com/@primrose/): Publication homepage - [All Posts](https://paragraph.com/@primrose/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@primrose): Subscribe to updates