์น3 ๊ฐ๋ฐ, ์ด๋์๋ถํฐ ์์ํด์ผ ํ ์ง ๊ณ ๋ฏผ์ด์ จ๋์? ๐ค ์ง์ ์ปจํ ์ธ ๋ถํฐ ์ค์ ์ฝ๋ฉ๊น์ง ๋ ๋ง์ ๊ฐ๋ฐ์๋ค๊ณผ ํํํ Web3 ์ธํ๋ผ๋ฅผ ๋ง๋ค์ด๊ฐ๊ธฐ ์ํด, DSRV๋ ๋ค์ํ ๋ฉ์ธ๋ท๊ณผ ์ค๋งํธ ์ปจํธ๋ํธ์ ๋ํ ๊ฐ์ด๋๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ ๋ณด๋ฅผ ์ฐพ๊ธฐ ์ด๋ ค์ ์ฝ์ฌ๋ฆฌ ์์ํ์ง ๋ชปํ๋ Web3 dApp ๋ฐ ์ปจํธ๋ํธ ๊ฐ๋ฐ, ์ด์ Dev Playground์ ํจ๊ป ์ฐจ๊ทผ์ฐจ๊ทผ ์์๊ฐ๋ณด์์! ๐ฉโ๐ป
๋ธ๋ก์ฒด์ธ/Web3 dApp ๋ฐ ์ปจํธ๋ํธ ๊ฐ๋ฐ
๋ฉ์ธ๋ท๊ณผ ์ค๋งํธ ์ปจํธ๋ํธ์ ๋ํ ๊ฐ์ด๋
CosmWasm 101 ์์!
์น3 ์๋, ๋ด ์์ผ๋ก ๋ง๋๋ ๋์ฑ ๐
CosmWasm ๋คํธ์ํฌ ์์์ ๊ฐ๋จํ dApp์ ๋ง๋ค๋ฉฐ
WEB3์ ํ ๊ฑธ์ ๋ ์นํด์ ธ ๋ณด์ธ์.
์์ฆ ๋์ธ๋ก ๋ ์ค๋ฅธ WEB3, ์ ์ง ๋ง์ฐํ๊ฒ ๋๊ปด์ง์๋์? WEB3๋ฅผ ํ์ตํ๊ธฐ ์ํด ์๋ฃ๋ฅผ ์ฐพ์๋ณด๋ฉด ๊ธฐ์ ์ ์ผ๋ก ์ฐ์ฌ์ง ํํ ๋ฆฌ์ผ์ด ๋ง์ด ์์ต๋๋ค. ํ์ง๋ง WEB3๊ฐ ์์ํ ์ฌ๋๋ค์๊ฒ๋ ์ด๋ฐ ์ค๋ช ๋ค์ด ๋ฑ๋ฑํ๊ณ ๋ณต์กํด ๋ณด์ฌ ์ดํดํ๊ธฐ ์ด๋ ต๊ธฐ ๋ง๋ จ์ด์ฃ . ํ์ง๋ง DSRV๋ ๋ ๋ง์ ์น ๊ฐ๋ฐ์๊ฐ ์ค๋งํธ ์ปจํธ๋ํธ(Smart Contract) ๊ฐ๋ฐ์ ์ ํ ์ ์๋๋ก, ์ง์ ๋ฌด์ธ๊ฐ๋ฅผ ๋ง๋ค์ด๋ณด๋ฉด์ WEB3๋ฅผ ํ์ตํ ์ ์๊ฒ ์๋ดํด ๋๋ฆฝ๋๋ค.
์ด๋ฒ CosmWasm 101 ์๋ฆฌ์ฆ๋ ๊ฐ๋จํ ํด๋ฆฌ์ปค ๊ฒ์(Clicker Game)์ ๋ง๋ค๊ธฐ ์ํด ํ์ํ ์ปจํธ๋ํธ ์ค๋ช , ๋ฐฐํฌ, ๋ฆฌ์กํธ(React) ํ๋ก ํธ์๋ ์ฐ๊ฒฐ๊น์ง ํ์ํ ๋ชจ๋ ๋ด์ฉ์ ์ค์ต์ ํตํด ์ฐจ๊ทผ์ฐจ๊ทผ ์ดํดํ ์ ์๋๋ก ๊ตฌ์ฑ๋์์ต๋๋ค. WEB3.0๊ณผ ๋ธ๋ก์ฒด์ธ์ ๊ด์ฌ์ด ๋ง์ ์น ๊ฐ๋ฐ์๋ผ๋ฉด ๋๊ตฌ๋ ํจ๊ปํ ์ ์์ต๋๋ค. ๊ทธ๋ผ ์ง์ ๋ง๋ค์ด๋ด ์๋ค!
๋ค์ํ ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ๋ฅผ ์ํธ ์ฐ๊ฒฐํ ์ ์๋ค๋ ์ ์์ ์ด๋๋ฆฌ์(Ethereum)์ ๊ฐ๋ ฅํ ๊ฒฝ์์๋ก ๊ผฝํ๋ Cosmos ๋คํธ์ํฌ๋ ์ต๊ทผ WebAssembly์ Rust๋ฅผ ์ฌ์ฉํด ์ค๋งํธ ์ปจํธ๋ํธ๋ฅผ ๋ฐฐํฌํ ์ ์๋ CosmWasm(์ฝ์ด์์ฆ)์ ๋ฐํํ์ต๋๋ค.
CosmWasm์ ๋ํ ๊ด์ฌ์ด ๋์์ง๊ณ ์์ง๋ง, CosmWasm ๋คํธ์ํฌ์์ Rust ์ธ์ด๋ฅผ ํ์ฉํด ์ปจํธ๋ํธ๋ฅผ ์์ฑํ๋ ์์ ๋ ๊ทธ๋์ ๊ณต์ ๋ฌธ์์ ์์ด๋ก๋ง ์ ๊ณต๋์ด ์์ต๋๋ค. ๋๋ฌธ์ ์ด์ฌ์ ์ ์ฅ์์ ์ค์ ๋ก CosmWasm์ ํ์ฉํ๊ธฐ ์ํ ํํ ๋ฆฌ์ผ์ด ์กด์ฌํ์ง ์์๊ณ , ์ง์ ์ฅ๋ฒฝ์ด ๋งค์ฐ ๋๊ฒ ๋๊ปด์ง ์๋ฐ์ ์์์ต๋๋ค.
์ด ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋๋ฉด CosmWasm ๋คํธ์ํฌ ์์์ ๊ฐ๋จํ ์ปจํธ๋ํธ ๋ฐ ํ๋ก ํธ์๋ ํ์ด์ง๋ฅผ ์์ฑํ ์ ์๊ฒ ๋ฉ๋๋ค. CosmWasm, ๊ทธ๋ฆฌ๊ณ ์ค๋งํธ ์ปจํธ๋ํธ ๊ฐ๋ฐ์ ๊ด์ฌ์ด ์์์ง๋ง ์ฝ์ฌ๋ฆฌ ์์ํ์ง ๋ชปํ๋ ๋ง์ ๋ถ๋ค๊ป ์ด ๊ฐ์๊ฐ ์ข์ ์ถ๋ฐ์ ์ด ๋ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
โ๏ธ ๊ฐ์์์ ์ฐ์ด๋ ํด ๋ฐ ์ ์ ์ง์
๋ณธ ๊ฐ์๋ ์ค์ต ์์ฃผ๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ, ์ค๊ฐ์ค๊ฐ ํ์ํ ์ด๋ก ์ ์ค๋ช ํ๋ ๋ฐฉ์์ผ๋ก ์งํ๋ฉ๋๋ค.
๋จผ์ 1ํธ์์๋ Counter ์ปจํธ๋ํธ๋ฅผ ์ง์ ์์ฑํด๋ณด๊ณ , ํ ์คํธ๋ฅผ ํต๊ณผ์์ผ๋ณด๋ฉฐ ํด๋น ์ปจํธ๋ํธ๊ฐ ์ด๋ป๊ฒ ๊ตฌํ๋์ด ์๋์ง ์ดํด๋ด ๋๋ค. Entrypoint, Processor, Error ๋ฑ CosmWasm์ด ์ฌ์ฉํ๋ ๊ธฐ๋ณธ์ ์ธ ๋์์ธ ํจํด์ ๋ํด ํ์ตํ์ค ์ ์์ต๋๋ค.
๋ค์ 2ํธ์์๋ Counter ์ปจํธ๋ํธ๋ฅผ Osmosis์ Juno Testnet์์ ๋ฐฐํฌํด๋ด ๋๋ค. osmosisd์ CosmJS, ๊ทธ๋ฆฌ๊ณ DSRV์ Multi RPC ๋ ธ๋ ํ๋ซํผ์ธ All That Node๋ฅผ ํ์ฉํ์ฌ ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ์ ํต์ ํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ธ ์๋ฐ์คํฌ๋ฆฝํธ ์ง์๊ณผ Node.js๋ฅผ ์ฌ์ฉํด๋ณธ ๊ฒฝํ์ด ์๋ค๋ฉด ํฐ ๋ฌด๋ฆฌ ์์ด ํ์ตํ์ค ์ ์์ต๋๋ค.
๋ง์ง๋ง 3ํธ์์๋ ์ด์ ์ ๋ฐฐํฌํ์ฌ ์์ฑํ ์ปจํธ๋ํธ๋ฅผ ๋ฐํ์ผ๋ก ํ๋ก ํธ์๋์ ํต์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํ๊ฒ ๋ฉ๋๋ค. CosmJS์ Keplr Wallet๋ฅผ ํ์ฉํ์ฌ ๋ฐฐํฌํ ์ปจํธ๋ํธ๊ฐ React.js์ ์ํธ ํต์ ํ๋ฉด์ ์ปจํธ๋ํธ์ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ณ , ๋ธ๋ก์ฒด์ธ์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋กํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์์ต๋๋ค.
Q. Solidity(์๋ฆฌ๋ํฐ) ๋ฑ ๊ธฐ์กด ์ด๋๋ฆฌ์ ๊ด๋ จ ์ง์์ด ์ด๋ ์ ๋๊น์ง ํ์ํ๋์?
๊ธฐ๋ณธ์ ์ธ ERC20 ์ปจํธ๋ํธ๋ฅผ ๋ฐฐํฌํด๋ณด๊ณ ํ๋ก ํธ์๋์ ํต์ ํด ๋ณธ ๊ฒฝํ์ด ์๋ค๋ฉด ์ฝ๊ฒ ํ์ตํ ์ ์์ต๋๋ค.
Q. Rust ์ธ์ด์ ์ต์ํ์ง ์์๋ฐ ํ์ตํ ์ ์์๊น์?
๋ณธ ๊ฐ์๋ Rust ์ธ์ด๋ฅผ ์ง์ค์ ์ผ๋ก ๋ค๋ฃจ์ง ์์ต๋๋ค. ํ์ง๋ง Rust์ ๊ธฐ์ด์ ์ธ ๊ฐ๋ ๋ง ๋ค๋ฃจ๊ธฐ ๋๋ฌธ์ ํ๊ตญ์ด Rust Docs๋ฅผ 1~4์ฅ ์ ๋๊น์ง ์ฝ์ด์ค์๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค. (https://rinthel.github.io/rust-lang-book-ko/)
Q. Cosmos ๊ธฐ๋ฐ ๋คํธ์ํฌ๊ฐ ์ข์ ๊ฒ ๊ฐ๋ค์. ๊ฐ์ธ์ ์ผ๋ก ํฌ์ํด์ผ ํ ๊น์?
์ด ๊ฐ์๋ ์ ๋ณด ์ ๋ฌ์ ์ํ ๋ชฉ์ ์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ, ํน์ ํ๋ก์ ํธ์ ๋ํ ํฌ์ ๊ถ๊ณ , ๋ฒ๋ฅ ์ ์๋ฌธ ๋ฑ์ ๋ชฉ์ ์ผ๋ก ํ์ง ์์ต๋๋ค. ๋ชจ๋ ํฌ์์ ์ฑ ์์ ๊ฐ์ธ์๊ฒ ์์ผ๋ฉฐ, ์ด๋ก ๋ฐ์๋ ๊ฒฐ๊ณผ์ ๋ํด ์ด๋ค ๋ถ๋ถ์์๋ DSRV๋ ์ฑ ์์ ์ง์ง ์์ต๋๋ค. ๊ฐ์์์ ํฌ๊ดํ๋ ๋ด์ฉ๋ค์ ํน์ ์์ฐ์ ๋ํ ํฌ์๋ฅผ ์ถ์ฒํ๋ ๊ฒ์ด ์๋๋ฉฐ, ์ธ์ ๋ ๊ฐ์ ๋ด์ฉ๋ง์ ํตํ ์์ฌ ๊ฒฐ์ ์ ์ง์ํ์๊ธธ ๋ฐ๋๋๋ค.
ํ์ต ๋์์
๋๊ตฌ์ผ๊น์?
๋ธ๋ก์ฒด์ธ ์ปจํธ๋ํธ ๊ฐ๋ฐ์ ๊ด์ฌ์ด ์๋ ์ฌ๋
์น3 ์ํ๊ณ๋ฅผ ๋ง๋ค์ด๋๊ฐ๋ ๋น๋๊ฐ ๋๊ณ ์ถ์ ์ฌ๋
์ ์ ์ง์,
ํ์ํ ๊น์?
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ํ ๊ธฐ์ด์ ์ธ ์ดํด
์ ์ฒด
5๊ฐ โ (3์๊ฐ 22๋ถ)
๋ฌด๋ฃ