UUPS vs Transparent
Upgradeable Contract
์ ๊ทธ๋ ์ด๋ ๊ฐ๋ฅํ ์ค๋งํธ ์ปจํธ๋ํธ๋ ๋ณดํต proxy pattern์ ์ฌ์ฉํด์ ๋ฐฐํฌ๋๋ค.
ํ ๋ฒ ๋ฐฐํฌ๋ ์ค๋งํธ ์ปจํธ๋ํธ์ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ ์ ์๊ธฐ ๋๋ฌธ์, ์ ์ฅ์ ๋ด๋นํ๋ Storage Contract์ ์ค์ ๋น์ฆ๋์ค ๋ก์ง์ ํฌํจํ๋ Logic Contract๋ก ๋ถํ ํ์ฌ ์๋ํ๋ค.
์์ธํ ๋ด์ฉ์ ์ด์ ์ ์์ฑํ ๊ธ์ ์ฐธ๊ณ ํ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.
์๋ฌดํผ ์์ฝ ์ ๋ฆฌํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
Upgradeable contract๋ ์ฝ๋๋ฅผ ์ถ๋ก ํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ค๊ณ , ๋ฒ๊ทธ์ ์ํ์ด ์ฆ๊ฐ๋๋ฏ๋ก ์ถฉ๋ถํ ํ ์คํธ์ Audit process๊ฐ ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค.
Contract๋ฅผ ์ ๊ทธ๋ ์ด๋ ํ ์ ์์ผ๋ฏ๋ก ์ ๊ทธ๋ ์ด๋๋ฅผ ์ํํ ๊ถํ์ด ์๋ ๊ด๋ฆฌ์ ๊ณ์ ์ด ์์ด์ผํ๋ค. (์ญ์ผ๋ก ๋งํ์๋ฉด ๊ด๋ฆฌ์ ๊ณ์ ์ผ๋ก ์ค์ ์ง์คํ๊ฐ ๋๋ค).
์๋ฃ๊ตฌ์กฐ์ ๋ ์ด์์์ด ๋ณ๊ฒฝ๋์ด์๋ ์๋๋ค.
UUPS (Universal Upgradeable Proxy Standard)
EIP-1822์ ํด๋นํ๋ ์ด ํ์ค์ ๊ฐ๋จํ๊ณ ํจ์จ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋๋ฅผ ํ ์ ์๋๋ก ํด์ค๋ค.
์ด ํจํด์์ ๊ตฌํ ๊ด๋ฆฌ ๋ฐ fallback ๊ธฐ๋ฅ์ ํฌํจํ ๋ชจ๋ ์์ ์ด ํ ์ปจํธ๋ํธ์ ํฌํจ๋์ด ์๋ค.
UUPS ํจํด์์๋ ์ ๊ทธ๋ ์ด๋ ๊ธฐ๋ฅ์ ํธ์ถํ ์ ์๋ ์ฌ๋์ ์ ํํ๊ธฐ ์ํด modifier๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ทธ๋ ์ด๋ ๊ธฐ๋ฅ์ ๋ณดํธํ ์ ์๋ค.
๋ํ UUPS ํจํด์ ๋จ์์ฑ ๋๋ฌธ์ ๋ ๊ฐ์ค ํจ์จ์ ์ด๋ค.
Transparent (Openzeppelin)
Transparent ์์๋ Proxy Contract์ Implementation Contract๋ก ๋๋๋ค.
๋น์ฐํ ๋ฐฐํฌ๋น์ฉ์ด ๋ง์ด ๋ค์ง๋ง, ์ ์ง ๊ด๋ฆฌ๊ฐ ์ฝ๋ค.
์คํ์ ํ๋ฆฐ์์๋ UUPS๋ฅผ ๊ถ์ฅํ๋ค. ๋ง ๋ฃ๋๊ฒ ์ข์ ๊ฒ ๊ฐ๋ค.
Last updated