Ver3.5 ๐ ํฌ๋ก์ค์ฒด์ธ ๋ธ๋ฆฌ์ง์ ๋ณด์ ์ทจ์ฝ์ ๊ณผ ํดํน ์ฌ๋ก ์์ ๋ถ์

๐ ํฌ๋ก์ค์ฒด์ธ ๋ธ๋ฆฌ์ง์ ๋ณด์ ์ทจ์ฝ์ ๊ณผ ํดํน ์ฌ๋ก ์์ ๋ถ์
ํฌ๋ก์ค์ฒด์ธ ๋ธ๋ฆฌ์ง(Cross-Chain Bridge)๋ ์๋ก ๋ค๋ฅธ ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ ๊ฐ์ ์์ฐ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ด๋์์ผ์ฃผ๋ ํต์ฌ ์ธํ๋ผ์ผ. ์ด๋๋ฆฌ์์์ ์๋ผ๋๋ก, ๋นํธ์ฝ์ธ์์ ํด๋ฆฌ๊ณค์ผ๋ก ์์ฐ์ ์ฎ๊ธฐ๊ณ ์ถ์ ๋ ๋ฐ๋ก ์ด ๋ธ๋ฆฌ์ง๋ฅผ ์ฐ๋ ๊ฑฐ์ง.
๊ทผ๋ฐ ๋ฌธ์ ๋... ์ด ๋ธ๋ฆฌ์ง๊ฐ Web3 ์ญ์ฌ์ ๊ฐ์ฅ ๋ง์ด ํดํน๋นํ ์ธํ๋ผ๋ผ๋ ๊ฑฐ์ผ. 2022๋
ํ ํด์๋ง ํฌ๋ก์ค์ฒด์ธ ๋ธ๋ฆฌ์ง ํดํน์ผ๋ก ๋ ์๊ฐ ๋์ด ๋ฌด๋ ค 20์ต ๋ฌ๋ฌ(์ฝ 2.6์กฐ ์)๋ฅผ ๋์์ด. ์ง์ง ์ด๋ง์ด๋งํ์ง ์์? ๐ต
์ค๋์ ์ ์ด๋ ๊ฒ ํธ๋ฆฌ๋์ง, ์ด๋ค ๊ตฌ์กฐ์ ๋ฌธ์ ๊ฐ ์๋์ง, ๊ทธ๋ฆฌ๊ณ ์ค์ ํดํน ์ฌ๋ก๋ค์ ๋ฑ๋ฑ์ด ๋ถ์ํด๋ณผ๊ฒ. ๊ฐ๋ฐ์๋ผ๋ฉด ๋ฐ๋์ ์์์ผ ํ ๋ด์ฉ์ด๋๊น ์ง์คํด์ค! ๐ฏ
๐ ํฌ๋ก์ค์ฒด์ธ ๋ธ๋ฆฌ์ง๊ฐ ๋ญ๋ฐ? ๊ธฐ์ด๋ถํฐ ์ง๊ณ ๊ฐ์
๋ธ๋ก์ฒด์ธ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋
๋ฆฝ๋ ์ฌ์ด์ผ. ์ด๋๋ฆฌ์์ ์ด๋๋ฆฌ์๋ผ๋ฆฌ, ๋นํธ์ฝ์ธ์ ๋นํธ์ฝ์ธ๋ผ๋ฆฌ๋ง ํต์ ํด. ๊ทผ๋ฐ DeFi ์ํ๊ณ๊ฐ ์ปค์ง๋ฉด์ "์ผ, ๋ด ETH๋ฅผ ์๋ผ๋ DeFi์์ ์ฐ๊ณ ์ถ์๋ฐ?" ๊ฐ์ ์์๊ฐ ํญ๋ฐ์ ์ผ๋ก ๋์ด๋ ๊ฑฐ์ง.
๊ทธ๋์ ๋ฑ์ฅํ ๊ฒ ๋ฐ๋ก ํฌ๋ก์ค์ฒด์ธ ๋ธ๋ฆฌ์ง์ผ. ์ฝ๊ฒ ๋งํ๋ฉด ์๋ก ๋ค๋ฅธ ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ๋ค๋ฆฌ ์ญํ ์ ํ๋ ํ๋กํ ์ฝ์ด์ผ. ๐
๐ ํฌ๋ก์ค์ฒด์ธ ๋ธ๋ฆฌ์ง์ ๊ธฐ๋ณธ ๋์ ์๋ฆฌ
Lock & Mint ๋ฐฉ์ (๊ฐ์ฅ ์ผ๋ฐ์ )
1 ์ฌ์ฉ์๊ฐ ์ฒด์ธ A์์ ์์ฐ์ ์ค๋งํธ ์ปจํธ๋ํธ์ ์ ๊ธ(Lock)
2 ๋ธ๋ฆฌ์ง ๊ฒ์ฆ์(Validator/Oracle)๊ฐ ์ด ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ๊ณ ์๋ช
3 ์ฒด์ธ B์์ ๋์ผํ ๊ฐ์น์ ๋ํ๋ ํ ํฐ(Wrapped Token)์ ๋ฐํ(Mint)
4 ๋ฐ๋๋ก ๋์์ฌ ๋๋ ๋ํ ํ ํฐ์ ์๊ฐ(Burn)ํ๊ณ ์๋ณธ ์์ฐ ์ ๊ธ ํด์
๐๏ธ ๋ธ๋ฆฌ์ง์ ์ฃผ์ ์ ํ
| ์ ํ | ํน์ง | ๋ํ ์ฌ๋ก |
|---|---|---|
| ์ค์ํ ๋ธ๋ฆฌ์ง | ์ค์ ๊ธฐ๊ด์ด ์์ฐ ๋ณด๊ด | Binance Bridge |
| ์ ๋ขฐ ๊ธฐ๋ฐ ๋ธ๋ฆฌ์ง | ๊ฒ์ฆ์ ๊ทธ๋ฃน์ด ๋ค์๊ฒฐ ์๋ช | Ronin Bridge, Wormhole |
| ์ ๋ขฐ ์ต์ํ ๋ธ๋ฆฌ์ง | ๋ผ์ดํธ ํด๋ผ์ด์ธํธ + ์ํธํ์ ์ฆ๋ช | IBC Protocol, Near Rainbow |
| ๋๊ด์ ๋ธ๋ฆฌ์ง | ์ฌ๊ธฐ ์ฆ๋ช (Fraud Proof) ๊ธฐ๋ฐ | Optimism Bridge |
์ฌ๊ธฐ์ ์ค์ํ ํฌ์ธํธ! ๋ธ๋ฆฌ์ง์ ๋ณด์ ์์ค์ "์ผ๋ง๋ ํ์ค์ํ๋์ด ์๋๋"์ ํฌ๊ฒ ๋ฌ๋ ค์์ด. ์ค์ํ๋ ์๋ก ํธ๋ฆฌํ์ง๋ง ์ทจ์ฝํ๊ณ , ํ์ค์ํ๋ ์๋ก ์์ ํ์ง๋ง ๋ณต์กํ๊ณ ๋๋ ค. ์ด๊ฒ ๋ฐ๋ก ๋ธ๋ฆฌ์ง ํธ๋ฆด๋ ๋ง(Bridge Trilemma)์ผ โ ๋ณด์, ํ์ค์ํ, ํ์ฅ์ฑ์ ๋์์ ์ก๊ธฐ๊ฐ ๊ทน๋๋ก ์ด๋ ต๋ค๋ ๊ฑฐ์ง. ๐ค
๐ ์ ํฌ๋ก์ค์ฒด์ธ ๋ธ๋ฆฌ์ง๋ ์ด๋ ๊ฒ ์ทจ์ฝํ๊ฐ?
ใ ใ ใ ์ง์ง ์ด๊ฒ ํต์ฌ์ด์์. ์ ์ด๋ ๊ฒ ์๊พธ ํธ๋ฆฌ๋๊ณ . ๊ตฌ์กฐ์ ์ธ ์ด์ ๊ฐ ์์ด. ํ๋์ฉ ๋ฏ์ด๋ณผ๊ฒ.
๐ฏ ์ฃผ์ ์ทจ์ฝ์ ์ ํ 6๊ฐ์ง
โ ์ค๋งํธ ์ปจํธ๋ํธ ๋ฒ๊ทธ (Smart Contract Vulnerabilities)
๋ธ๋ฆฌ์ง ๋ก์ง์ด ๋ด๊ธด ์ค๋งํธ ์ปจํธ๋ํธ์ ๋ฒ๊ทธ๊ฐ ์์ผ๋ฉด ๋์ด์ผ. ํนํ ์
๋ ฅ๊ฐ ๊ฒ์ฆ ๋ฏธํก, ์ฌ์ง์
๊ณต๊ฒฉ(Reentrancy), ์ ์ ์ค๋ฒํ๋ก์ฐ ๊ฐ์ ๊ณ ์ ์ ์ธ ์ทจ์ฝ์ ๋ค์ด ์ฌ์ ํ ๋ฐ๊ฒฌ๋ผ.
Wormhole ํดํน(2022๋
2์, 3.2์ต ๋ฌ๋ฌ)์ด ๋ฐ๋ก ์ด ์ผ์ด์ค์ผ. Solana ์ธก ์ปจํธ๋ํธ์์ ์๋ช
๊ฒ์ฆ ๋ก์ง์ ๋ฒ๊ทธ๊ฐ ์์๊ณ , ๊ณต๊ฒฉ์๊ฐ ๊ฐ์ง ์๋ช
์ผ๋ก 120,000 wETH๋ฅผ ๋ฏผํ
ํด๋ฒ๋ ธ์ด. ๐ฑ
โก ๊ฒ์ฆ์ ํค ํ์ทจ (Validator Key Compromise)
๋ฉํฐ์๊ทธ ๋ธ๋ฆฌ์ง์์ ๊ฒ์ฆ์๋ค์ ๊ฐ์ธํค๊ฐ ํ์ทจ๋๋ฉด ๊ณต๊ฒฉ์๊ฐ ์์๋ก ํธ๋์ญ์
์ ์๋ช
ํ ์ ์์ด. Ronin Bridge ํดํน(2022๋
3์, 6.25์ต ๋ฌ๋ฌ)์ด ๋ฐ๋ก ์ด ์ผ์ด์ค์ผ.
Axie Infinity์ Ronin ๋ธ๋ฆฌ์ง๋ 9๊ฐ ๊ฒ์ฆ์ ๋
ธ๋ ์ค 5๊ฐ ์๋ช
์ด ํ์ํ ๊ตฌ์กฐ์๋๋ฐ, ๊ณต๊ฒฉ์๊ฐ 5๊ฐ ๋
ธ๋์ ๊ฐ์ธํค๋ฅผ ํ์ทจํด์ ๋ฌด๋ ค 6.25์ต ๋ฌ๋ฌ๋ฅผ ๋นผ๊ฐ์ด. ๋์ค์ ๋ถํ ํดํน ๊ทธ๋ฃน ๋ผ์๋ฃจ์ค(Lazarus Group)์ ์ํ์ผ๋ก ๋ฐํ์ก์ง. ๐ฐ
โข ์ค๋ผํด ์กฐ์ (Oracle Manipulation)
๋ธ๋ฆฌ์ง๋ ์ฒด์ธ ๊ฐ ์ด๋ฒคํธ๋ฅผ ์ ๋ฌํ๊ธฐ ์ํด ์ค๋ผํด(Oracle)์ ์ฌ์ฉํด. ์ด ์ค๋ผํด์ด ์กฐ์๋๋ฉด ์กด์ฌํ์ง ์๋ ํธ๋์ญ์
์ "๋ฐ์ํ๋ค"๊ณ ์์ผ ์ ์์ด.
๊ณต๊ฒฉ์๊ฐ ์ฒด์ธ A์์ ์์ฐ์ ์ค์ ๋ก ์ ๊ทธ์ง ์์๋๋ฐ, ์ค๋ผํด์ ์์ฌ์ ์ฒด์ธ B์์ ํ ํฐ์ ๋ฐํ๋ฐ๋ ์๋๋ฆฌ์ค์ผ. ์ด๊ฒ ์ฑ๊ณตํ๋ฉด ๋ฌด์์ ์ ๋ฅผ ์ฐฝ์กฐํ๋ ๊ฑฐ๋ ๋ง์ฐฌ๊ฐ์ง์ผ.
โฃ ์ฌ์ง์
๊ณต๊ฒฉ (Reentrancy Attack)
๋ธ๋ฆฌ์ง์ ์ถ๊ธ ํจ์๊ฐ ์ํ๋ฅผ ์
๋ฐ์ดํธํ๊ธฐ ์ ์ ์ธ๋ถ ์ปจํธ๋ํธ๋ฅผ ํธ์ถํ๋ฉด, ๊ณต๊ฒฉ์๊ฐ ๊ทธ ํ์ ํ์ ๊ฐ์ ํจ์๋ฅผ ๋ฐ๋ณต ํธ์ถํ ์ ์์ด. Nomad Bridge ํดํน(2022๋
8์, 1.9์ต ๋ฌ๋ฌ)์์ ์ด์ ์ ์ฌํ ํจํด์ด ์ฌ์ฉ๋์ด.
ํนํ Nomad๋ ๋ ํฉ๋นํ ์ผ์ด์ค์๋๋ฐ, ์ด๊ธฐ ๊ณต๊ฒฉ์๊ฐ ์ทจ์ฝ์ ์ ๋ฐ๊ฒฌํ์ ์๋ฐฑ ๋ช
์ ์นดํผ์บฃ ๊ณต๊ฒฉ์๋ค์ด ๋์์ ๋ฌ๋ ค๋ค์ด์ ๋ง์น ์ํ ๋ฑ
ํฌ๋ฐ์ฒ๋ผ ์๊ธ์ด ๋น ์ ธ๋๊ฐ์ด. ์ง์ง DeFi ์ญ์ฌ์ ๊ฐ์ฅ ์นด์ค์คํ ํดํน ์ค ํ๋์ผ. ๐คฏ
โค ์
๊ทธ๋ ์ด๋ ๊ฐ๋ฅ ์ปจํธ๋ํธ์ ์ํ (Upgradeable Contract Risk)
๋ง์ ๋ธ๋ฆฌ์ง๊ฐ ๋ฒ๊ทธ ์์ ์ ์ํด ์
๊ทธ๋ ์ด๋ ๊ฐ๋ฅํ ํ๋ก์ ํจํด์ ์ฌ์ฉํด. ๊ทผ๋ฐ ์ด ์
๊ทธ๋ ์ด๋ ๊ถํ์ด ์์์ ๋ฉํฐ์๊ทธ ์ง๊ฐ์ ์ง์ค๋์ด ์์ผ๋ฉด, ๊ทธ ํค๊ฐ ํ์ทจ๋๋ ์๊ฐ ๊ณต๊ฒฉ์๊ฐ ์
์ฑ ์ฝ๋๋ก ์ปจํธ๋ํธ๋ฅผ ๊ต์ฒดํ ์ ์์ด.
์ด๊ฑด ๊ธฐ์ ์ ์ทจ์ฝ์ ์ด๋ผ๊ธฐ๋ณด๋ค ๊ฑฐ๋ฒ๋์ค ์ทจ์ฝ์ ์ด์ผ. ํ์ค์ํ๋ฅผ ํ๋ฐฉํ๋ฉด์ ์ค์ ๋ก๋ ๋ช ๋ช
์ด ์ ์ฒด ์์คํ
์ ํต์ ํ๋ ๊ตฌ์กฐ์ธ ๊ฑฐ์ง.
โฅ ๋ฉ์์ง ๊ฒ์ฆ ์ทจ์ฝ์ (Message Verification Flaws)
์ฒด์ธ ๊ฐ ๋ฉ์์ง๋ฅผ ๊ฒ์ฆํ๋ ๋ก์ง์ ๊ฒฐํจ์ด ์์ผ๋ฉด, ๊ณต๊ฒฉ์๊ฐ ์์กฐ๋ ๋ฉ์์ง๋ฅผ ์ฃผ์
ํ ์ ์์ด. Nomad ํดํน์ ํต์ฌ ์์ธ์ด ๋ฐ๋ก ์ด๊ฑฐ์ผ.
Nomad์ ์ปจํธ๋ํธ๋ messages ๋งคํ์์ 0x00 ๊ฐ์ "์ ๋ขฐํ ์ ์๋ ๋ฃจํธ"๋ก ์ฒ๋ฆฌํ๋ ๋ฒ๊ทธ๊ฐ ์์์ด. ์ฆ, ์๋ฌด ๋ฉ์์ง๋ ๋ณด๋ด๋ ์ ํจํ ๊ฒ์ผ๋ก ์ฒ๋ฆฌ๋๋ ๊ฑฐ์ผ. ์ด ๋ฒ๊ทธ ํ๋๋ก 1.9์ต ๋ฌ๋ฌ๊ฐ ๋ ์๊ฐ์ด. ๐ตโ๐ซ
๐ ์ฃผ์ ํดํน ์ฌ๋ก ์์ธ ๋ถ์
๐ฎ Case 1: Ronin Bridge ํดํน (2022.03) โ ์ญ๋ ์ต๋ DeFi ํดํน
Ronin Bridge๋ Axie Infinity ๊ฒ์์ ์ด๋๋ฆฌ์-์ฌ์ด๋์ฒด์ธ ๋ธ๋ฆฌ์ง์ผ. 9๊ฐ์ ๊ฒ์ฆ์ ๋
ธ๋ ์ค 5๊ฐ ์ด์์ ์๋ช
์ด ์์ด์ผ ์ถ๊ธ์ด ๊ฐ๋ฅํ ๊ตฌ์กฐ์์ด.
๊ทผ๋ฐ ๋ฌธ์ ๊ฐ ์์์ด. Sky Mavis(Axie ๊ฐ๋ฐ์ฌ)๊ฐ ์ด์ํ๋ ๋
ธ๋๊ฐ 4๊ฐ์๊ณ , Axie DAO๊ฐ ์ด์ํ๋ ๋
ธ๋๊ฐ 5๊ฐ์์ด. ๊ทธ๋ฐ๋ฐ 2021๋
11์, ํธ๋ํฝ ํญ์ฆ์ผ๋ก ์ธํด Sky Mavis๊ฐ Axie DAO์๊ฒ ์์๋ก ํธ๋์ญ์
์๋ช
๊ถํ์ ์์๋ฐ์์ด. ๊ทธ๋ฆฌ๊ณ ์ด ์์ ๊ถํ์ด ํด์ ๋์ง ์์ ์ฑ๋ก ๋ฐฉ์น๋์ด. ๐ฑ
๊ณต๊ฒฉ ์๋๋ฆฌ์ค:
1 ๊ณต๊ฒฉ์๊ฐ Sky Mavis ์ง์์๊ฒ ์คํผ์ด ํผ์ฑ(Spear Phishing) ์ด๋ฉ์ผ ๋ฐ์ก
2 ๊ฐ์ง ์ฑ์ฉ ์ ์์ PDF๋ฅผ ํตํด ์ง์ ์ปดํจํฐ์ ์
์ฑ์ฝ๋ ์ค์น
3 Sky Mavis ์ด์ 4๊ฐ ๋
ธ๋์ ๊ฐ์ธํค ํ์ทจ
4 ๋ฐฉ์น๋ Axie DAO ์์ ๊ถํ์ผ๋ก 5๋ฒ์งธ ์๋ช
ํ๋
5 5/9 ์๋ช
์์ฑ โ 6.25์ต ๋ฌ๋ฌ ์ถ๊ธ ์๋ฃ
๋ ์ถฉ๊ฒฉ์ ์ธ ๊ฑด? ์ด ํดํน์ด 6์ผ ๋์ ๋ฐ๊ฒฌ๋์ง ์์์ด. ํ ์ฌ์ฉ์๊ฐ ์ถ๊ธ์ด ์ ๋๋ค๊ณ ์ ๊ณ ํ๋ฉด์ ๋ฐ๊ฒฌ๋์ด. ๐คฆ
๐ Case 2: Wormhole ํดํน (2022.02) โ ์ฝ๋ ํ ์ค์ ์ฌ์
Wormhole์ ์ด๋๋ฆฌ์-์๋ผ๋ ๊ฐ ๊ฐ์ฅ ํฐ ๋ธ๋ฆฌ์ง ์ค ํ๋์ผ. ๊ณต๊ฒฉ์๋ Solana ์ธก ์ปจํธ๋ํธ์ ์๋ช ๊ฒ์ฆ ๋ก์ง์์ ์น๋ช ์ ์ธ ๋ฒ๊ทธ๋ฅผ ๋ฐ๊ฒฌํ์ด.
// ์ทจ์ฝํ ์ฝ๋ (๋จ์ํ๋ ๋ฒ์ )
// verify_signatures ํจ์๊ฐ deprecated๋ sysvar ๊ณ์ ์ ์ฌ์ฉ
// ๊ณต๊ฒฉ์๋ ์ด ๊ฒ์ฆ์ ์ฐํํ์ฌ ๊ฐ์ง VAA(Verified Action Approval) ์์ฑ
pub fn verify_signatures(
ctx: Context<VerifySignatures>,
data: VerifySignaturesData,
) -> Result<()> {
// โ ๏ธ ์ฌ๊ธฐ์ sysvar ๊ณ์ ๊ฒ์ฆ์ด ๋๋ฝ๋จ
// ๊ณต๊ฒฉ์๊ฐ ์์์ ๊ณ์ ์ sysvar๋ก ์์ฅ ๊ฐ๋ฅ
let sig_infos = ...
}
๊ณต๊ฒฉ ํต์ฌ:
Solana์ secp256k1 ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๋ ์๋ช
๊ฒ์ฆ ๊ณผ์ ์์, ๊ณต๊ฒฉ์๊ฐ deprecated๋ sysvar ๊ณ์ ์ ์์์ ๊ณ์ ์ผ๋ก ๊ต์ฒดํ ์ ์์์ด. ์ด๋ฅผ ํตํด ๊ฐ๋์ธ(Guardian) ์๋ช
์์ด๋ ์ ํจํ VAA(Verified Action Approval)๋ฅผ ์์ฑํ ์ ์์๊ณ , ์ด๊ฑธ๋ก 120,000 wETH๋ฅผ ๋ฏผํ
ํ์ด.
Jump Crypto(Wormhole ํฌ์์ฌ)๊ฐ ๋ค์๋ 3.2์ต ๋ฌ๋ฌ๋ฅผ ์ง์ ๋ณด์ถฉํด์คฌ์ด. ์ง์ง ์ด๋ง์ด๋งํ ๊ท๋ชจ์ง. ๐ฎ
๐ช๏ธ Case 3: Nomad Bridge ํดํน (2022.08) โ ์ง๋จ ์ฝํ ์ฌํ
Nomad ํดํน์ ๊ธฐ์ ์ ์ผ๋ก๋ ์ถฉ๊ฒฉ์ ์ด์์ง๋ง, ์ฌํ์ ์ผ๋ก๋ ์์ฒญ๋ ์ฌ๊ฑด์ด์์ด. ์ทจ์ฝ์ ์ด ๋ฐ๊ฒฌ๋์ ์๋ฐฑ ๋ช ์ ์ผ๋ฐ์ธ๋ค๊น์ง ๋ฌ๋ ค๋ค์ด์ ์๊ธ์ ๋นผ๊ฐ๊ฑฐ๋ . ๋ง์น ์ํ ๊ธ๊ณ ๊ฐ ์ด๋ ค์๋๋ฐ ์ง๋๊ฐ๋ ์ฌ๋๋ค์ด ๋ค ์ง์ด๊ฐ๋ ์ํฉ์ด์์ด. ๐คฏ
๋ฒ๊ทธ์ ํต์ฌ:
Nomad์ Replica ์ปจํธ๋ํธ์์ ๋ฉ์์ง ๋ฃจํธ๋ฅผ ๊ฒ์ฆํ๋ ์ฝ๋์ ๋ฌธ์ ๊ฐ ์์์ด. ์
๊ทธ๋ ์ด๋ ๊ณผ์ ์์ committedRoot๊ฐ 0x00์ผ๋ก ์ด๊ธฐํ๋๋๋ฐ, ์ฝ๋๊ฐ ์ด ๊ฐ์ "์ ๋ขฐํ ์ ์๋ ๋ฃจํธ"๋ก ์ฒ๋ฆฌํ์ด.
// ์ทจ์ฝํ ๊ฒ์ฆ ๋ก์ง (๋จ์ํ)
function process(bytes memory _message) public returns (bool _success) {
bytes32 _messageHash = _message.ref(0).keccak();
// โ ๏ธ ๋ฌธ์ : acceptableRoot(0x00)์ด true๋ฅผ ๋ฐํ
// ์๋ํ๋ฉด messages[0x00] = 0x00 (์ด๊ธฐ๊ฐ)
// ๊ทธ๋ฆฌ๊ณ 0x00์ "์ฒ๋ฆฌ๋จ" ์ํ๊ฐ ์๋ ๊ฒ์ผ๋ก ํ๋จ
require(acceptableRoot(messages[_messageHash]));
// ๊ฒฐ๊ณผ: ์๋ฌด ๋ฉ์์ง๋ ์ ํจํ ๊ฒ์ผ๋ก ์ฒ๋ฆฌ๋จ
_success = IMessageRecipient(_recipient).handle(...);
}
์ด ๋ฒ๊ทธ ๋๋ถ์ ๊ณต๊ฒฉ์๋ ๊ทธ๋ฅ ์์์ ํธ๋์ญ์ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํด์ ์์ ์ฃผ์๋ง ์๊ธฐ ์ฃผ์๋ก ๋ฐ๊พธ๋ฉด ๋์ด. ์ฝ๋ฉ ์ค๋ ฅ์ด ์์ด๋ ๋์ด. ๊ทธ๋์ ์๋ฐฑ ๋ช ์ด ๋ฌ๋ ค๋ ๊ฑฐ์ผ. ์ง์ง DeFi ์ญ์ฌ์ ๊ฐ์ฅ ํฉ๋นํ ํดํน์ด์ผ. ๐
๐ต Case 4: Harmony Horizon Bridge (2022.06)
Harmony์ Horizon ๋ธ๋ฆฌ์ง๋ 5๊ฐ ๊ฒ์ฆ์ ์ค 2๊ฐ ์๋ช
๋ง ์์ผ๋ฉด ์ถ๊ธ์ด ๊ฐ๋ฅํ ๊ตฌ์กฐ์์ด. ์ด๊ฑด ์ง์ง ๋๋ฌด ๋ฎ์ ์๊ณ๊ฐ์ด์ผ. ๊ณต๊ฒฉ์(์ญ์ ๋ผ์๋ฃจ์ค ๊ทธ๋ฃน์ผ๋ก ์ถ์ )๊ฐ 2๊ฐ ํค๋ฅผ ํ์ทจํ์๋ง์ ๋ฐ๋ก ํธ๋ ธ์ด.
2/5 ๋ฉํฐ์๊ทธ๋ ์ฌ์ค์ ์ค์ํ๋ ๋ค๋ฆ์์ด. 5๋ช
์ค 2๋ช
๋ง ํดํนํด๋ ๋๋๊น. ์ด๊ฑด ์ค๊ณ ์์ฒด๊ฐ ์๋ชป๋ ๊ฑฐ์ผ.
โ๏ธ ๊ธฐ์ ์ ์ฌ์ธต ๋ถ์: ์ ๋ธ๋ฆฌ์ง๋ ๊ทผ๋ณธ์ ์ผ๋ก ์ด๋ ค์ด๊ฐ?
์ด์ ์ข ๋ ๊น์ด ๋ค์ด๊ฐ๋ณผ๊ฒ. ๊ฐ๋ฐ์ ๊ด์ ์์ ํฌ๋ก์ค์ฒด์ธ ๋ธ๋ฆฌ์ง๊ฐ ์ ์ด๋ ๊ฒ ๋ณด์์ ์ ์งํ๊ธฐ ์ด๋ ค์ด์ง ํํค์ณ๋ณด์. ๐ค
๐ ์ ๋ขฐ ๊ฐ์ (Trust Assumption)์ ๋ฌธ์
๋ธ๋ก์ฒด์ธ์ ํต์ฌ ๊ฐ์น๋ "์ ๋ขฐ ์๋ ์ ๋ขฐ(Trustless)"์ผ. ๊ทผ๋ฐ ๋ธ๋ฆฌ์ง๋ ๋ณธ์ง์ ์ผ๋ก ์ ๋ขฐ ๊ฐ์ ์ ๋์
ํด.
์ด๋๋ฆฌ์ ์์ฒด์ ๋ณด์: ์์ฒ ๊ฐ์ ๊ฒ์ฆ์ ๋
ธ๋, ์๋ฐฑ์ต ๋ฌ๋ฌ์ ์คํ
์ดํน
์ผ๋ฐ์ ์ธ ๋ธ๋ฆฌ์ง์ ๋ณด์: 5~20๊ฐ์ ๊ฒ์ฆ์, ํจ์ฌ ์ ์ ๊ฒฝ์ ์ ๋ณด์
์ด๋๋ฆฌ์ ์์์ ๋์ํ๋ ์ค๋งํธ ์ปจํธ๋ํธ๋ ์ด๋๋ฆฌ์์ ๋ณด์์ ์์๋ฐ์. ๊ทผ๋ฐ ๋ธ๋ฆฌ์ง๋ ๋ ์ฒด์ธ ์ค ์ด๋ ์ชฝ์ ๋ณด์๋ ์์ ํ ์์๋ฐ์ง ๋ชปํ๊ณ , ์์ฒด์ ์ธ ์ ๋ขฐ ๋ ์ด์ด๋ฅผ ๋ง๋ค์ด. ์ด๊ฒ ๋ฐ๋ก ๋ณด์์ ์ต์ฝ์ ์ด ๋๋ ๊ฑฐ์ผ.
๐ก ๊ฒฝ์ ์ ๋ณด์ ๋ชจ๋ธ์ ํ๊ณ
PoS ๋ธ๋ก์ฒด์ธ์์ ๊ฒ์ฆ์๊ฐ ์
์์ ์ผ๋ก ํ๋ํ๋ฉด ์คํ
์ดํนํ ์์ฐ์ ์์ด(์ฌ๋์ฑ). ์ด๊ฒ ๊ฒฝ์ ์ ์ต์ ๋ ฅ์ด์ผ.
๊ทผ๋ฐ ๋ธ๋ฆฌ์ง ๊ฒ์ฆ์๋? ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ฌ๋์ฑ ๋ฉ์ปค๋์ฆ์ด ์๊ฑฐ๋ ๋งค์ฐ ์ฝํด. ๊ฒ์ฆ์๊ฐ ์
์์ ์ผ๋ก ํ๋ํด๋ ์์ ๊ฒ ๋ณ๋ก ์์ด. ๋ฐ๋ฉด ๋ธ๋ฆฌ์ง์ ์ ๊ธด ์์ฐ์ ์์ต ๋ฌ๋ฌ์ผ. ์ด ๋ถ๊ท ํ์ด ๊ณต๊ฒฉ ์ธ์ผํฐ๋ธ๋ฅผ ๋ง๋ค์ด.
๊ณต๊ฒฉ ์์ต >> ๊ณต๊ฒฉ ๋น์ฉ โ ๊ณต๊ฒฉ์ด ํฉ๋ฆฌ์ ์ธ ์ ํ์ด ๋จ ๐
๐งฉ ๋ณต์ก์ฑ์ ์ ์ฃผ (Complexity Curse)
๋ธ๋ฆฌ์ง๋ ๋ ๊ฐ ์ด์์ ์ฒด์ธ์์ ๋์์ ๋์ํด์ผ ํด. ์ด๊ฑด ์ฝ๋ ๋ณต์ก์ฑ์ด ๊ธฐํ๊ธ์์ ์ผ๋ก ๋์ด๋๋ค๋ ๋ป์ด์ผ.
๋จ์ผ ์ฒด์ธ ์ค๋งํธ ์ปจํธ๋ํธ: ํ๋์ ์คํ ํ๊ฒฝ, ํ๋์ ์ํ ๋จธ์
ํฌ๋ก์ค์ฒด์ธ ๋ธ๋ฆฌ์ง: ์ฌ๋ฌ ์คํ ํ๊ฒฝ, ์ฌ๋ฌ ์ํ ๋จธ์ , ๋น๋๊ธฐ ๋ฉ์์ง ์ ๋ฌ, ๋คํธ์ํฌ ์ง์ฐ, ์ฒด์ธ ์ฌ๊ตฌ์ฑ(Reorg) ์ฒ๋ฆฌ...
๋ณต์ก์ฑ์ด ๋์ด๋ ์๋ก ๋ฒ๊ทธ๊ฐ ์จ์ ๊ณต๊ฐ์ด ๋์ด๋. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฌ(Audit)๋ ํจ์ฌ ์ด๋ ค์์ ธ. ๋จ์ผ ์ฒด์ธ ์ปจํธ๋ํธ ๊ฐ์ฌ๋ ์ด๋ ค์ด๋ฐ, ๋ฉํฐ์ฒด์ธ ์์คํ
๊ฐ์ฌ๋ ์ฐจ์์ด ๋ฌ๋ผ.
โก ์์์ฑ(Atomicity) ๋ฌธ์
๋จ์ผ ์ฒด์ธ์์๋ ํธ๋์ญ์
์ด ์์์ ์ด์ผ. ์ ๋ถ ์ฑ๊ณตํ๊ฑฐ๋ ์ ๋ถ ์คํจํด. ๊ทผ๋ฐ ํฌ๋ก์ค์ฒด์ธ ํธ๋์ญ์
์?
์ฒด์ธ A์์ ์์ฐ์ ์ ๊ฐ๋๋ฐ ์ฒด์ธ B์์ ๋ฏผํ
์ด ์คํจํ๋ฉด? ๋๋ ์ฒด์ธ B์์ ํ ํฐ์ ์๊ฐํ๋๋ฐ ์ฒด์ธ A์์ ์ ๊ธ ํด์ ๊ฐ ์คํจํ๋ฉด? ์ด๋ฐ ๋ถ๋ถ ์คํจ(Partial Failure) ์๋๋ฆฌ์ค๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ ์์ฒญ ๋ณต์กํด.
์ด ๋ณต์กํ ์์ธ ์ฒ๋ฆฌ ๋ก์ง์์ ๋ฒ๊ทธ๊ฐ ์์ฃผ ๋ฐ์ํด. ๊ทธ๋ฆฌ๊ณ ๊ณต๊ฒฉ์๋ค์ ๋ฐ๋ก ์ด๋ฐ ์ฃ์ง ์ผ์ด์ค๋ฅผ ๋
ธ๋ ค.
๐ฌ ๊ฒ์ฆ ๋ฐฉ์๋ณ ๋ณด์ ์์ค ๋น๊ต
1. ์ธ๋ถ ๊ฒ์ฆ์ (External Validators)
๋ณด์ ๋ฎ์ ์๋ ๋น ๋ฆ ๊ตฌํ ์ฌ์
๋ฉํฐ์๊ทธ ๊ฒ์ฆ์๋ค์ด ํฌ๋ก์ค์ฒด์ธ ๋ฉ์์ง๋ฅผ ์๋ช
. ๊ฐ์ฅ ์ผ๋ฐ์ ์ด์ง๋ง ๊ฐ์ฅ ์ทจ์ฝํด. ๊ฒ์ฆ์ ํค ํ์ทจ = ์ฆ์ ํดํน ๊ฐ๋ฅ.
2. ๋๊ด์ ๊ฒ์ฆ (Optimistic Verification)
๋ณด์ ์ค๊ฐ ์๋ ๋๋ฆผ ๊ตฌํ ์ค๊ฐ
ํธ๋์ญ์
์ ์ผ๋จ ์ ํจํ๋ค๊ณ ๊ฐ์ ํ๊ณ , ์ด์ ์ ๊ธฐ ๊ธฐ๊ฐ(๋ณดํต 7์ผ) ๋์ ์ฌ๊ธฐ ์ฆ๋ช
์ ์ ์ถํ ์ ์์ด. ์ด์ ์ ๊ธฐ๊ฐ ์์ผ๋ฉด ์ต์ข
ํ์ . Optimism, Arbitrum์ L2 ๋ธ๋ฆฌ์ง๊ฐ ์ด ๋ฐฉ์์ด์ผ.
3. ZK ์ฆ๋ช
๊ธฐ๋ฐ (ZK-Proof Based)
๋ณด์ ๋์ ์๋ ๋๋ฆผ ๊ตฌํ ๋งค์ฐ ์ด๋ ค์
์์ง์ ์ฆ๋ช
(Zero-Knowledge Proof)์ ์ฌ์ฉํด์ ์ฒด์ธ A์ ์ํ๋ฅผ ์ฒด์ธ B์์ ์ํ์ ์ผ๋ก ๊ฒ์ฆ. ์ด๋ก ์ ์ผ๋ก ๊ฐ์ฅ ์์ ํ์ง๋ง ๊ณ์ฐ ๋น์ฉ์ด ์์ฒญ๋๊ณ ๊ตฌํ์ด ๊ทน๋๋ก ๋ณต์กํด. zkBridge, Succinct Labs ๋ฑ์ด ์ด ๋ฐฉํฅ์ผ๋ก ์ฐ๊ตฌ ์ค์ด์ผ.
4. ๋ผ์ดํธ ํด๋ผ์ด์ธํธ (Light Client)
๋ณด์ ๋์ ์๋ ์ค๊ฐ ๊ตฌํ ์ด๋ ค์
์ฒด์ธ B์์ ์ฒด์ธ A์ ๋ธ๋ก ํค๋๋ฅผ ์ง์ ๊ฒ์ฆ. IBC(Inter-Blockchain Communication) ํ๋กํ ์ฝ์ด ์ด ๋ฐฉ์์ด์ผ. Cosmos ์ํ๊ณ์์ ์ฌ์ฉ๋๋ฉฐ ๋ณด์์ฑ์ด ๋์ง๋ง, ๋ชจ๋ ์ฒด์ธ์ด ์ง์ํ์ง๋ ์์.
โ ๊ฐ๋ฐ์๊ฐ ๋ฐ๋์ ์์์ผ ํ ๋ธ๋ฆฌ์ง ๋ณด์ ์ฒดํฌ๋ฆฌ์คํธ
์, ์ด์ ์ค์ฉ์ ์ธ ๋ด์ฉ์ผ๋ก ๋์ด๊ฐ๋ณผ๊ฒ. ๋ธ๋ฆฌ์ง๋ฅผ ๊ฐ๋ฐํ๊ฑฐ๋ ๊ฐ์ฌํ ๋ ๋ฐ๋์ ํ์ธํด์ผ ํ ํญ๋ชฉ๋ค์ด์ผ. ์ฌ๋ฅ๋ท ๊ฐ์ ํ๋ซํผ์์ ๋ธ๋ก์ฒด์ธ ๊ฐ๋ฐ ์ฌ๋ฅ์ ๊ณต์ ํ๋ ๋ถ๋ค์ด๋ผ๋ฉด ํนํ ์ฃผ๋ชฉํด์ค! ๐ฏ
๐ก๏ธ ์ค๋งํธ ์ปจํธ๋ํธ ๋ณด์
1 ์
๋ ฅ๊ฐ ๊ฒ์ฆ ์ฒ ์ ํ โ ๋ชจ๋ ์ธ๋ถ ์
๋ ฅ๊ฐ์ ๋ํด ํ์
, ๋ฒ์, ํ์ ๊ฒ์ฆ
2 ์ฌ์ง์
๊ณต๊ฒฉ ๋ฐฉ์ด โ CEI(Checks-Effects-Interactions) ํจํด ์ค์, ReentrancyGuard ์ฌ์ฉ
3 ์ ์ ์ค๋ฒํ๋ก์ฐ ๋ฐฉ์ง โ Solidity 0.8+ ์ฌ์ฉ ๋๋ SafeMath ๋ผ์ด๋ธ๋ฌ๋ฆฌ
4 ์ ๊ทผ ์ ์ด ์ฒ ์ ํ โ ๊ด๋ฆฌ์ ํจ์์ ์ ์ ํ ๊ถํ ์ฒดํฌ, ๋ฉํฐ์๊ทธ ์ ์ฉ
5 ์
๊ทธ๋ ์ด๋ ๊ฐ๋ฅ์ฑ ์ต์ํ โ ๋ถํ์ํ ์
๊ทธ๋ ์ด๋ ๊ธฐ๋ฅ ์ ๊ฑฐ, ํ์๋ฝ(Timelock) ์ ์ฉ
๐ ํค ๊ด๋ฆฌ ๋ณด์
1 HSM(Hardware Security Module) ์ฌ์ฉ โ ๊ฒ์ฆ์ ํค๋ฅผ ํ๋์จ์ด์ ์ ์ฅ
2 ์ถฉ๋ถํ ๋ฉํฐ์๊ทธ ์๊ณ๊ฐ โ ์ต์ 2/3 ์ด์ ๊ถ์ฅ (2/5๋ ๋๋ฌด ๋ฎ์!)
3 ๊ฒ์ฆ์ ๋ค์ํ โ ์ง๋ฆฌ์ , ์กฐ์ง์ ์ผ๋ก ๋ถ์ฐ๋ ๊ฒ์ฆ์ ๊ตฌ์ฑ
4 ํค ๋กํ
์ด์
์ ์ฑ
โ ์ ๊ธฐ์ ์ธ ํค ๊ต์ฒด ๋ฐ ํ๊ธฐ ์ ์ฐจ
5 ์์
์์ง๋์ด๋ง ๋ฐฉ์ด โ ์ง์ ๋ณด์ ๊ต์ก, ํผ์ฑ ์๋ฎฌ๋ ์ด์
ํ๋ จ
๐ ๋ชจ๋ํฐ๋ง ๋ฐ ๋์
1 ์ค์๊ฐ ์ด์ ํ์ง โ ๋น์ ์์ ์ธ ๋๋ ์ถ๊ธ ํจํด ๋ชจ๋ํฐ๋ง
2 ์ํท ๋ธ๋ ์ด์ปค(Circuit Breaker) โ ์ผ์ ๊ธ์ก ์ด์ ์ถ๊ธ ์ ์๋ ์ผ์ ์ ์ง
3 ์ถ๊ธ ํ๋ ์ค์ โ ์๊ฐ๋น/์ผ๋ณ ์ต๋ ์ถ๊ธ ํ๋ ์ค์
4 ์ธ์๋ํธ ๋์ ๊ณํ โ ํดํน ๋ฐ์ ์ ์ฆ๊ฐ ๋์ ์ ์ฐจ ์๋ฆฝ
5 ๋ฒ๊ทธ ๋ฐ์ดํฐ ํ๋ก๊ทธ๋จ โ ํ์ดํธํ ํด์ปค๋ค์ ์ทจ์ฝ์ ์ ๊ณ ์ฅ๋ ค
โ ๏ธ ๊ฐ์ฌ(Audit) ๊ด๋ จ ์ฃผ์์ฌํญ
๊ฐ์ฌ ํ ๋ฒ์ผ๋ก ์์ฌํ์ง ๋ง!
Wormhole๋ ๊ฐ์ฌ๋ฅผ ๋ฐ์์ด. Nomad๋ ๊ฐ์ฌ๋ฅผ ๋ฐ์์ด. ๊ทผ๋ฐ ํธ๋ ธ์์. ๊ฐ์ฌ๋ ํ์์กฐ๊ฑด์ด์ง ์ถฉ๋ถ์กฐ๊ฑด์ด ์๋์ผ.
โข ์ฌ๋ฌ ๋
๋ฆฝ์ ์ธ ๊ฐ์ฌ ํ์ฌ์์ ๋ณต์ ๊ฐ์ฌ ๋ฐ๊ธฐ
โข ๊ฐ์ฌ ํ ์ฝ๋ ๋ณ๊ฒฝ ์ ์ฌ๊ฐ์ฌ ํ์
โข ํ์์ ๊ฒ์ฆ(Formal Verification) ๋๊ตฌ ํ์ฉ ๊ณ ๋ ค
โข ์ง์์ ์ธ ์๋ํ ๋ณด์ ํ
์คํธ ํ์ดํ๋ผ์ธ ๊ตฌ์ถ
// ์ํท ๋ธ๋ ์ด์ปค ํจํด ์์ (Solidity)
contract BridgeWithCircuitBreaker {
uint256 public constant MAX_DAILY_WITHDRAWAL = 1000 ether;
uint256 public dailyWithdrawn;
uint256 public lastResetTime;
bool public paused;
modifier notPaused() {
require(!paused, "Bridge is paused");
_;
}
modifier withinDailyLimit(uint256 amount) {
// 24์๊ฐ๋ง๋ค ์นด์ดํฐ ๋ฆฌ์
if (block.timestamp >= lastResetTime + 1 days) {
dailyWithdrawn = 0;
lastResetTime = block.timestamp;
}
require(
dailyWithdrawn + amount <= MAX_DAILY_WITHDRAWAL,
"Daily withdrawal limit exceeded"
);
dailyWithdrawn += amount;
_;
}
function withdraw(
address recipient,
uint256 amount
) external notPaused withinDailyLimit(amount) {
// CEI ํจํด: Checks-Effects-Interactions
// 1. Checks (์ modifier์์ ์ฒ๋ฆฌ)
// 2. Effects (์ํ ์
๋ฐ์ดํธ ๋จผ์ )
balances[recipient] -= amount;
// 3. Interactions (์ธ๋ถ ํธ์ถ ๋ง์ง๋ง์)
(bool success, ) = recipient.call{value: amount}("");
require(success, "Transfer failed");
}
// ๋น์ ์ ์ง (๋ฉํฐ์๊ทธ๋ก ๋ณดํธ๋์ด์ผ ํจ)
function emergencyPause() external onlyMultisig {
paused = true;
emit BridgePaused(block.timestamp);
}
}
๐ ์ต์ ํธ๋ ๋: ๋ ์์ ํ ๋ธ๋ฆฌ์ง๋ฅผ ํฅํ ์ฌ์
ํดํน์ด ๊ณ์๋๋ฉด์ ์ ๊ณ๋ ๊ฐ๋งํ ์์ง ์์์ด. ๋ ์์ ํ ๋ธ๋ฆฌ์ง๋ฅผ ๋ง๋ค๊ธฐ ์ํ ๋ค์ํ ์๋๋ค์ด ์งํ ์ค์ด์ผ. ๐ฌ
๐ LayerZero์ Chainlink CCIP์ ์ ๊ทผ๋ฒ
LayerZero: ์ธํธ๋ผ ๋ผ์ดํธ ๋
ธ๋(Ultra Light Node) ๋ฐฉ์. ์ฒด์ธ A์ ๋ธ๋ก ํค๋๋ฅผ ์ค๋ผํด์ด ์ ๋ฌํ๊ณ , ๋ฆด๋ ์ด์ด๊ฐ ํธ๋์ญ์
์ฆ๋ช
์ ์ ๋ฌ. ๋ ๋
๋ฆฝ์ ์ธ ์ฃผ์ฒด๊ฐ ๋ชจ๋ ๋์ํด์ผ ์ ํจ. ์ค๋ผํด๊ณผ ๋ฆด๋ ์ด์ด๊ฐ ๊ณต๋ชจํ์ง ์๋ ํ ์์ .
Chainlink CCIP (Cross-Chain Interoperability Protocol): Chainlink์ ํ์ค์ํ ์ค๋ผํด ๋คํธ์ํฌ๋ฅผ ํ์ฉ. ๋ฆฌ์คํฌ ๊ด๋ฆฌ ๋คํธ์ํฌ(Risk Management Network)๊ฐ ๋ณ๋๋ก ๋ชจ๋ํฐ๋ง. ๊ธฐ์
๊ธ ๋ณด์์ ๋ชฉํ๋ก ํจ.
โ Vitalik Buterin, ํฌ๋ก์ค์ฒด์ธ ๋ธ๋ฆฌ์ง ๋ณด์์ ๊ดํ ๊ธ์์
๋นํ๋ฆญ ๋ถํ
๋ฆฐ์ 2022๋
์ด์ ํฌ๋ก์ค์ฒด์ธ ๋ธ๋ฆฌ์ง์ ๊ทผ๋ณธ์ ์ธ ํ๊ณ์ ๋ํด ๊ฒฝ๊ณ ํ์ด. ๊ทธ๋ "๋ฉํฐ์ฒด์ธ ๋ฏธ๋๋ณด๋ค ํฌ๋ก์ค์ฒด์ธ ๋ฏธ๋๊ฐ ๋ ์ํํ๋ค"๊ณ ์ฃผ์ฅํ์ด. ๊ฐ ์ฒด์ธ์ด ๋
๋ฆฝ์ ์ผ๋ก ๊ฐ๋ ฅํ ๋ณด์์ ์ ์งํ๋ ๊ฒ, ์ฒด์ธ๋ค์ ์ฐ๊ฒฐํ๋ ๋ธ๋ฆฌ์ง์ ์์กดํ๋ ๊ฒ๋ณด๋ค ๋ ์์ ํ๋ค๋ ๊ฑฐ์ผ.
๋ฌผ๋ก ํ์ค์ ์ผ๋ก ํฌ๋ก์ค์ฒด์ธ ์ธํฐ์คํผ๋น๋ฆฌํฐ๋ ํ์ํด. ๊ทธ๋์ ๋ ์์ ํ ๋ธ๋ฆฌ์ง๋ฅผ ๋ง๋๋ ์ฐ๊ตฌ๊ฐ ๊ณ์๋๋ ๊ฑฐ์ผ.
๐ค ์ฌ์ฉ์ ๊ด์ ์์์ ๋ธ๋ฆฌ์ง ์์ ์ฌ์ฉ๋ฒ
๊ฐ๋ฐ์๊ฐ ์๋ ์ผ๋ฐ ์ฌ์ฉ์๋ผ๋ ๋ธ๋ฆฌ์ง๋ฅผ ์์ ํ๊ฒ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์์ผ ํด. ๋ด ์์ฐ์ ์งํค๋ ๊ฑด ๊ฒฐ๊ตญ ๋ ์์ ์ด๋๊น! ๐ช
๐ ๋ธ๋ฆฌ์ง ์ ํ ์ ํ์ธ์ฌํญ
1 ๊ฐ์ฌ ์ด๋ ฅ ํ์ธ โ ์ ๋ขฐํ ์ ์๋ ๊ฐ์ฌ ํ์ฌ(Trail of Bits, OpenZeppelin, Certik ๋ฑ)์ ๊ฐ์ฌ ๋ณด๊ณ ์ ํ์ธ
2 TVL(Total Value Locked) ํ์ธ โ ๋๋ฌด ์๋ก์ด ๋ธ๋ฆฌ์ง๋ ๊ฒ์ฆ์ด ๋ ๋์ ์ ์์ด. ํ์ง๋ง TVL์ด ๋๋ค๊ณ ๋ฌด์กฐ๊ฑด ์์ ํ ๊ฑด ์๋
3 ๊ฒ์ฆ์ ๊ตฌ์กฐ ํ์ธ โ ๋ฉํฐ์๊ทธ ์๊ณ๊ฐ์ด ์ผ๋ง์ธ์ง, ๊ฒ์ฆ์๊ฐ ๋ช ๋ช
์ธ์ง ํ์ธ
4 ์ด์ ๊ธฐ๊ฐ ํ์ธ โ ์ค๋ ์ด์๋๋ฉด์ ํดํน ์์ด ์ด์๋จ์ ๋ธ๋ฆฌ์ง๊ฐ ์๋์ ์ผ๋ก ์์
5 ๋ฒ๊ทธ ๋ฐ์ดํฐ ํ๋ก๊ทธ๋จ ํ์ธ โ ํ์ดํธํ ํด์ปค๋ค์ด ์ทจ์ฝ์ ์ ์ฐพ์ ์ธ์ผํฐ๋ธ๊ฐ ์๋์ง
โ ๏ธ ๋ธ๋ฆฌ์ง ์ฌ์ฉ ์ ์ฃผ์์ฌํญ
โข ํ ๋ฒ์ ํฐ ๊ธ์ก ์ด๋ ๊ธ์ง โ ์์ก์ผ๋ก ํ
์คํธ ํ ํฐ ๊ธ์ก ์ด๋
โข ๊ณต์ URL ๋ฐ๋์ ํ์ธ โ ํผ์ฑ ์ฌ์ดํธ๊ฐ ๋งค์ฐ ๋ง์. ๋ถ๋งํฌ ํ์ฉ
โข ํธ๋์ญ์
์๋ฃ ํ ํ์ธ โ ์์ชฝ ์ฒด์ธ์์ ์์ก ํ์ธ
โข ์ด์ํ ํ์
/์น์ธ ์์ฒญ ์ฃผ์ โ ๋ธ๋ฆฌ์ง ์ฌ์ฉ ์ค ์์์น ๋ชปํ ์ปจํธ๋ํธ ์น์ธ ์์ฒญ์ ๊ฑฐ์
โข ๋ถ์ฐ ๋ณด๊ด โ ๋ชจ๋ ์์ฐ์ ํ ๋ธ๋ฆฌ์ง์ ์ง์คํ์ง ๋ง ๊ฒ
๐ฎ ํฌ๋ก์ค์ฒด์ธ ๋ณด์์ ๋ฏธ๋ ์ ๋ง
2022๋ ์ ๋๊ท๋ชจ ํดํน๋ค ์ดํ, ์ ๊ณ๋ ๋ง์ด ๋ณํ์ด. ์ด๋ค ๋ฐฉํฅ์ผ๋ก ๊ฐ๊ณ ์๋์ง ์ดํด๋ณด์.
๐ 2023~2024๋ ๋ณํ
โข ๋ณด์ ๊ฐ์ฌ ๊ฐํ: ๋จ์ ์ฝ๋ ๊ฐ์ฌ๋ฅผ ๋์ด ๊ฒฝ์ ์ ๋ณด์ ๋ชจ๋ธ, ๊ฒ์ ์ด๋ก ์ ๋ถ์๊น์ง ํฌํจ
โข ๋ณดํ ํ๋กํ ์ฝ ์ฑ์ฅ: Nexus Mutual, InsurAce ๋ฑ DeFi ๋ณดํ ํ๋กํ ์ฝ์ด ๋ธ๋ฆฌ์ง ๋ฆฌ์คํฌ ์ปค๋ฒ๋ฆฌ์ง ์ ๊ณต
โข ๊ท์ ์๋ ฅ: ๋๊ท๋ชจ ํดํน ์ดํ ๊ฐ๊ตญ ๊ท์ ๊ธฐ๊ด์ ๊ด์ฌ ์ฆ๊ฐ. ํนํ ๋ถํ ์ฐ๊ณ ํดํน ๊ทธ๋ฃน ์ ์ฌ
โข ZK ๊ธฐ์ ์ฑ์: ZK-SNARK, ZK-STARK ๊ธฐ์ ์ด ๋น ๋ฅด๊ฒ ๋ฐ์ ํ๋ฉด์ ZK ๋ธ๋ฆฌ์ง์ ์ค์ฉํ ๊ฐ์
โข ํ์คํ ๋
ธ๋ ฅ: ERC-7683(ํฌ๋ก์ค์ฒด์ธ ์ธํ
ํธ ํ์ค) ๋ฑ ์
๊ณ ํ์ค ์ ์ ์์ง์
๐ก ์ฅ๊ธฐ์ ํด๊ฒฐ ๋ฐฉํฅ
1. ๋ค์ดํฐ๋ธ ํฌ๋ก์ค์ฒด์ธ ํต์ : ์ด๋๋ฆฌ์ ๋ ์ด์ด1 ์์ค์์ ํฌ๋ก์ค์ฒด์ธ ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉํฅ. EIP-7683 ๊ฐ์ ์ ์๋ค์ด ์ด ๋ฐฉํฅ์ ํ์ ์ค.
2. ๊ณต์ ๋ณด์ ๋ชจ๋ธ: Eigenlayer ๊ฐ์ ๋ฆฌ์คํ
์ดํน ํ๋กํ ์ฝ์ ํตํด ์ด๋๋ฆฌ์์ ๊ฒฝ์ ์ ๋ณด์์ ๋ธ๋ฆฌ์ง์ ํ์ฅํ๋ ์๋.
3. ์ธํ
ํธ ๊ธฐ๋ฐ ์ํคํ
์ฒ: ๋ธ๋ฆฌ์ง ์์ฒด์ ๋ณต์ก์ฑ์ ์จ๊ธฐ๊ณ , ์ฌ์ฉ์๋ ์ํ๋ ๊ฒฐ๊ณผ๋ง ์ ์ธ. ๊ฒฝ์์ ์ธ ์๋ฒ๋ค์ด ์ต์ ์ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ ์คํ.
4. ์ฒด์ธ ์ถ์ํ(Chain Abstraction): ์ฌ์ฉ์๊ฐ ์ด๋ค ์ฒด์ธ์ ์๋์ง ์ ๊ฒฝ ์ฐ์ง ์์๋ ๋๋ ๋ฏธ๋. ๋ธ๋ฆฌ์ง์ ๋ณต์ก์ฑ์ด ์์ ํ ์ถ์ํ๋จ.
์ฌ๋ฅ๋ท์์ ๋ธ๋ก์ฒด์ธ ๊ฐ๋ฐ ๊ด๋ จ ์ฌ๋ฅ์ ๊ณต์ ํ๊ฑฐ๋ ๋ฐฐ์ฐ๊ณ ์ถ๋ค๋ฉด, ํฌ๋ก์ค์ฒด์ธ ๋ณด์์ ๋ฐ๋์ ์์์ผ ํ ํต์ฌ ์ง์์ด์ผ. Web3 ๊ฐ๋ฐ์๋ก์ ์ด ๋ถ์ผ์ ์ดํด๋ ์ ํ์ด ์๋ ํ์์ผ! ๐
๐ฏ ๋ง๋ฌด๋ฆฌ: ํฌ๋ก์ค์ฒด์ธ ๋ธ๋ฆฌ์ง ๋ณด์์ ํต์ฌ ์ ๋ฆฌ
๐ ํต์ฌ ์์ฝ
์ํ ํฌ๋ก์ค์ฒด์ธ ๋ธ๋ฆฌ์ง๋ Web3์์ ๊ฐ์ฅ ๋ง์ด ํดํน๋นํ๋ ์ธํ๋ผ
์ํ 2022๋
ํ ํด์๋ง 20์ต ๋ฌ๋ฌ ์ด์ ํผํด
์์ธ ์ค๋งํธ ์ปจํธ๋ํธ ๋ฒ๊ทธ, ๊ฒ์ฆ์ ํค ํ์ทจ, ๋ฉ์์ง ๊ฒ์ฆ ์ทจ์ฝ์ , ์ค๋ผํด ์กฐ์
๊ตฌ์กฐ ๋ธ๋ฆฌ์ง๋ ๋ ์ฒด์ธ์ ๋ณด์์ ์์๋ฐ์ง ๋ชปํ๊ณ ๋
์์ ์ธ ์ ๋ขฐ ๋ ์ด์ด๋ฅผ ๋ง๋ฆ
ํด๊ฒฐ ZK ์ฆ๋ช
, ๋ผ์ดํธ ํด๋ผ์ด์ธํธ, ๋๊ด์ ๊ฒ์ฆ ๋ฑ ๋ ์์ ํ ๋ฐฉ์์ผ๋ก ์งํ ์ค
์ค์ฒ ๊ฐ๋ฐ์: ๋ณต์ ๊ฐ์ฌ, ์ํท ๋ธ๋ ์ด์ปค, ์ถฉ๋ถํ ๋ฉํฐ์๊ทธ ์๊ณ๊ฐ
์ค์ฒ ์ฌ์ฉ์: ์์ก ํ
์คํธ, ๊ณต์ URL ํ์ธ, ๋ถ์ฐ ๋ณด๊ด
ํฌ๋ก์ค์ฒด์ธ ๋ธ๋ฆฌ์ง ๋ณด์์ ๋จ์ํ ์ฝ๋ ๋ฒ๊ทธ์ ๋ฌธ์ ๊ฐ ์๋์ผ. ์ํธํ, ๊ฒ์ ์ด๋ก , ๊ฒฝ์ ์ ์ธ์ผํฐ๋ธ, ์ด์ ๋ณด์์ด ๋ชจ๋ ์ฝํ์๋ ๋ณต์กํ ๋ฌธ์ ์ผ. ๊ทธ๋์ ์ด ๋ถ์ผ๊ฐ ์ด๋ ต๊ณ , ๊ทธ๋์ ํดํน์ด ๊ณ์ ๋ฐ์ํ๋ ๊ฑฐ์ผ.
ํ์ง๋ง ์
๊ณ๋ ๊ณ์ ๋ฐ์ ํ๊ณ ์์ด. ZK ๊ธฐ์ ์ ์ฑ์, ๋ ๋์ ์ค๊ณ ํจํด์ ๋ฑ์ฅ, ๋ณด์ ๊ฐ์ฌ ์์ค์ ํฅ์... ์ด๋ฐ ๊ฒ๋ค์ด ์์ฌ์ ๊ฒฐ๊ตญ ๋ ์์ ํ ํฌ๋ก์ค์ฒด์ธ ์ํ๊ณ๊ฐ ๋ง๋ค์ด์ง ๊ฑฐ์ผ. ๐
Web3 ๊ฐ๋ฐ์๋ผ๋ฉด ์ด ๋ถ์ผ๋ฅผ ๊ณ์ ๊ณต๋ถํ๊ณ , ๋ณด์์ ์ต์ฐ์ ์ผ๋ก ์๊ฐํ๋ ๋ง์ธ๋์
์ ๊ฐ์ ธ์ผ ํด. ๋ด๊ฐ ๋ง๋ ๋ธ๋ฆฌ์ง์์ ์ฌ์ฉ์์ ์์ฐ์ด ํธ๋ฆฌ๋ ๊ฑด ๋จ์ํ ๋ฒ๊ทธ๊ฐ ์๋๋ผ ์๋ง์ ์ฌ๋๋ค์ ์ถ์ ์ง์ ์ ์ธ ํผํด๋ฅผ ์ฃผ๋ ์ผ์ด๋๊น. ๐ช
๐ ๋ ๊ณต๋ถํ๊ณ ์ถ๋ค๋ฉด?
โข Chainalysis Crypto Crime Report โ ๋งค๋
๋ฐํ๋๋ ํฌ๋ฆฝํ ๋ฒ์ฃ ๋ณด๊ณ ์
โข Rekt.news โ DeFi ํดํน ์ฌ๋ก ๋ถ์ ์ ๋ฌธ ๋ฏธ๋์ด
โข Vitalik Buterin์ ํฌ๋ก์ค์ฒด์ธ ๋ธ๋ฆฌ์ง ๊ธ โ ์ด๋๋ฆฌ์ ์ฐฝ์์์ ํต์ฐฐ
โข Trail of Bits, OpenZeppelin ๋ธ๋ก๊ทธ โ ์ต์ ์ค๋งํธ ์ปจํธ๋ํธ ๋ณด์ ์ฐ๊ตฌ
โข Ethereum Foundation์ ๋ณด์ ๊ฐ์ด๋๋ผ์ธ โ ๊ฐ๋ฐ์๋ฅผ ์ํ ๊ณต์ ๊ฐ์ด๋
๋ธ๋ก์ฒด์ธ/Web3 ๊ฐ๋ฐ ์ฌ๋ฅ์ ๋๋๊ณ ์ถ๋ค๋ฉด ์ฌ๋ฅ๋ท์์ ๊ด๋ จ ์ง์์ ๊ณต์ ํด๋ณด๋ ๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ์ด์ผ! ๐ฏ
๊ด๋ จ ํค์๋
๋๊ธ ์์ฑ
์ด ๊ธ์ ๋ํ ์ฌ๋ฌ๋ถ์ ์๊ฐ์ ๋ค๋ ค์ฃผ์ธ์
๋ก๊ทธ์ธ์ด ํ์ํฉ๋๋ค
๋๊ธ์ ์์ฑํ๋ ค๋ฉด ๋จผ์ ๋ก๊ทธ์ธํด์ฃผ์ธ์.
๋๊ธ 0
์ง์์ธ์ ์ฒ - ์ง์ ์ฌ์ฐ๊ถ ๋ณดํธ ๊ณ ์ง
์ง์ ์ฌ์ฐ๊ถ ๋ณดํธ ๊ณ ์ง
- ์ ์๊ถ ๋ฐ ์์ ๊ถ: ๋ณธ ์ปจํ ์ธ ๋ ์ฌ๋ฅ๋ท์ ๋ ์ AI ๊ธฐ์ ๋ก ์์ฑ๋์์ผ๋ฉฐ, ๋ํ๋ฏผ๊ตญ ์ ์๊ถ๋ฒ ๋ฐ ๊ตญ์ ์ ์๊ถ ํ์ฝ์ ์ํด ๋ณดํธ๋ฉ๋๋ค.
- AI ์์ฑ ์ปจํ ์ธ ์ ๋ฒ์ ์ง์: ๋ณธ AI ์์ฑ ์ปจํ ์ธ ๋ ์ฌ๋ฅ๋ท์ ์ง์ ์ฐฝ์๋ฌผ๋ก ์ธ์ ๋๋ฉฐ, ๊ด๋ จ ๋ฒ๊ท์ ๋ฐ๋ผ ์ ์๊ถ ๋ณดํธ๋ฅผ ๋ฐ์ต๋๋ค.
- ์ฌ์ฉ ์ ํ: ์ฌ๋ฅ๋ท์ ๋ช ์์ ์๋ฉด ๋์ ์์ด ๋ณธ ์ปจํ ์ธ ๋ฅผ ๋ณต์ , ์์ , ๋ฐฐํฌ, ๋๋ ์์ ์ ์ผ๋ก ํ์ฉํ๋ ํ์๋ ์๊ฒฉํ ๊ธ์ง๋ฉ๋๋ค.
- ๋ฐ์ดํฐ ์์ง ๊ธ์ง: ๋ณธ ์ปจํ ์ธ ์ ๋ํ ๋ฌด๋จ ์คํฌ๋ํ, ํฌ๋กค๋ง, ๋ฐ ์๋ํ๋ ๋ฐ์ดํฐ ์์ง์ ๋ฒ์ ์ ์ฌ์ ๋์์ด ๋ฉ๋๋ค.
- AI ํ์ต ์ ํ: ์ฌ๋ฅ๋ท์ AI ์์ฑ ์ปจํ ์ธ ๋ฅผ ํ AI ๋ชจ๋ธ ํ์ต์ ๋ฌด๋จ ์ฌ์ฉํ๋ ํ์๋ ๊ธ์ง๋๋ฉฐ, ์ด๋ ์ง์ ์ฌ์ฐ๊ถ ์นจํด๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
์์ง ๋๊ธ์ด ์์ต๋๋ค.