์ ๋ XNUMX๋
๋๊ฒ "Creating Solidity Smart Contracts for the Ethereum Blockchain"์ด๋ผ๋ ์ฑ
์ ์งํํด ์์ต๋๋ค. Practical Guide', ์ด์ ์ด ์์
์ด ์๋ฃ๋์๊ณ , ์ฑ
์ด ๋์์ต๋๋ค.
๋ด ์ฑ ์ด ์ฌ๋ฌ๋ถ์ด ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ์ ์ํ Solidity ์ค๋งํธ ์ฐ๋ฝ์ฒ ๋ฐ ๋ถ์ฐ DApp์ ๋น ๋ฅด๊ฒ ๋ง๋๋ ๋ฐ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ค์ต์ด ํฌํจ๋ 12๊ฐ์ ์์ ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ์ด๋ฅผ ์๋ฃํ๋ฉด ๋ ์๋ ์์ ์ ๋ก์ปฌ Ethereum ๋ ธ๋๋ฅผ ์์ฑํ๊ณ , ์ค๋งํธ ๊ณ์ฝ์ ๊ฒ์ํ๊ณ ํด๋น ๋ฉ์๋๋ฅผ ํธ์ถํ๊ณ , ์ค๋ผํด์ ์ฌ์ฉํ์ฌ ํ์ค ์ธ๊ณ์ ์ค๋งํธ ๊ณ์ฝ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๊ณ , Rinkeby ํ ์คํธ ๋๋ฒ๊ทธ ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด ์ฑ ์ ๋ธ๋ก ์ฒด์ธ ๋ถ์ผ์ ๊ณ ๊ธ ๊ธฐ์ ์ ๊ด์ฌ์ด ์๊ณ ํฅ๋ฏธ๋กญ๊ณ ์ ๋งํ ์์ ์ ํ ์์๋ ์ง์์ ๋น ๋ฅด๊ฒ ์ป๊ณ ์ํ๋ ๋ชจ๋ ์ฌ๋์ ๋์์ผ๋กํฉ๋๋ค.
์๋์๋ ์ฑ
์ ๋ชฉ์ฐจ์ ์ฒซ ๋ฒ์งธ ์ฅ์ด ๋์ ์์ต๋๋ค.
์ฐจ๋ก์๊ฐ์ฐ๋ฆฌ ์ฑ
์ ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ์ ์๋ฆฌ๋ฅผ ์ดํดํ๊ณ ์ถ์ ๋ฟ๋ง ์๋๋ผ ์ด ๋คํธ์ํฌ๋ฅผ ์ํ Solidity ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๋ถ์ฐ DApp์ ๋ง๋๋ ๋ฐ ํ์ํ ์ค์ฉ์ ์ธ ๊ธฐ์ ์ ์ป๊ณ ์ถ์ ์ฌ๋๋ค์ ๋์์ผ๋ก ํฉ๋๋ค.
์ด ์ฑ ์ ์ฝ๋ ๊ฒ๋ฟ๋ง ์๋๋ผ ์ด ์ฑ ์ ํ์ฉํ์ฌ ์์ ์ ์ค๋ช ๋ ์ค์ ์์ ์ ์๋ฃํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์์ ํ๋ ค๋ฉด Debian ๋๋ Ubuntu OS๊ฐ ์ค์น๋ ๋ก์ปฌ ์ปดํจํฐ, ๊ฐ์ ๋๋ ํด๋ผ์ฐ๋ ์๋ฒ๊ฐ ํ์ํฉ๋๋ค. Raspberry Pi๋ฅผ ์ฌ์ฉํ์ฌ ๋ง์ ์์ ์ ์ํํ ์๋ ์์ต๋๋ค.
์ฒซ ์์ ์์๋ ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ์ ์๋ ์๋ฆฌ์ ๊ธฐ๋ณธ ์ฉ์ด๋ฅผ ์ดํด๋ณด๊ณ , ์ด ๋ธ๋ก์ฒด์ธ์ด ์ด๋์ ์ฌ์ฉ๋ ์ ์๋์ง์ ๋ํด์๋ ์ด์ผ๊ธฐํด๋ณด๊ฒ ์ต๋๋ค.
๊ณจ ๋ ๋ฒ์งธ ์์ โ Ubuntu ๋ฐ Debian ์๋ฒ์์ ์ด ๊ณผ์ ์ ์ถ๊ฐ ์์ ์ ์ํด ๊ฐ์ธ Ethereum ๋ธ๋ก์ฒด์ธ ๋ ธ๋๋ฅผ ๋ง๋ญ๋๋ค. ๋ธ๋ก์ฒด์ธ ๋ ธ๋์ ์๋์ ๋ณด์ฅํ๋ geth์ ๋ผ ๋ถ์ฐํ ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ๋ชฌ๊ณผ ๊ฐ์ ๊ธฐ๋ณธ ์ ํธ๋ฆฌํฐ ์ค์น ๊ธฐ๋ฅ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ธ ๋ฒ์งธ ์์ ์ ๋ ดํ Raspberry Pi ๋ง์ดํฌ๋ก์ปดํจํฐ์์ Ethereum์ ์คํํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋ฅด์ณ ๋๋ฆฌ๊ฒ ์ต๋๋ค. Raspberry Pi์ Rasberian ์ด์ ์ฒด์ (OS), ๋ธ๋ก์ฒด์ธ ๋ ธ๋๋ฅผ ๊ตฌ๋ํ๋ Geth ์ ํธ๋ฆฌํฐ ๋ฐ Swarm ๋ถ์ฐํ ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ๋ชฌ์ ์ค์นํฉ๋๋ค.
XNUMX๊ณผ ์ด๋๋ฆฌ์ ๋คํธ์ํฌ์ ๊ณ์ ๋ฐ ์ํธํํ ๋จ์๋ฟ๋ง ์๋๋ผ Geth ์ฝ์์์ ํ ๊ณ์ ์์ ๋ค๋ฅธ ๊ณ์ ์ผ๋ก ์๊ธ์ ์ด์ฒดํ๋ ๋ฐฉ๋ฒ์ ์ ๋ ํฉ๋๋ค. ๊ณ์ ์ ์์ฑํ๊ณ , ์๊ธ ์ด์ฒด ๊ฑฐ๋๋ฅผ ์์ํ๊ณ , ๊ฑฐ๋ ์ํ ๋ฐ ์์์ฆ์ ์ป๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค.
๋ค์ฏ ๋ฒ์งธ ์์ ์์๋ Ethereum ๋คํธ์ํฌ์ ์ค๋งํธ ๊ณ์ฝ์ ๋ํด ์์๋ณด๊ณ Ethereum ๊ฐ์ ๋จธ์ ์ ์ํ ์ค๋งํธ ๊ณ์ฝ ์คํ์ ๋ํด ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค.
Ethereum ํ๋ผ์ด๋น ๋คํธ์ํฌ์์ ์ฒซ ๋ฒ์งธ ์ค๋งํธ ๊ณ์ฝ์ ์์ฑ ๋ฐ ๊ฒ์ํ๊ณ ํด๋น ๊ธฐ๋ฅ์ ํธ์ถํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋๋ค. ์ด๋ฅผ ์ํด Remix Solidity IDE๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ํ solc ๋ฐฐ์น ์ปดํ์ผ๋ฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๋ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค.
๋ํ ์์ ABI(Application Binary Interface)์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์๋ ค๋๋ฆฝ๋๋ค.
์ฌ์ฏ๋ฒ์งธ ์์ Node.js๋ฅผ ์คํํ๋ JavaScript ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๊ณ Solidity ์ค๋งํธ ๊ณ์ฝ์ ์ฌ์ฉํ์ฌ ์์ ์ ์ํํ๋ ๋ฐ ์ ๋ ํฉ๋๋ค.
Ubuntu, Debian ๋ฐ Rasberian OS์ Node.js๋ฅผ ์ค์นํ๊ณ Ethereum ๋ก์ปฌ ๋คํธ์ํฌ์ ์ค๋งํธ ๊ณ์ฝ์ ๊ฒ์ํ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๊ณ ํด๋น ๊ธฐ๋ฅ์ ํธ์ถํฉ๋๋ค.
๋ํ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ผ๋ฐ ๊ณ์ข ๊ฐ์ ์๊ธ์ ์ด์ฒดํ๋ ๋ฐฉ๋ฒ๊ณผ ์ค๋งํธ ๊ณ์ฝ ๊ณ์ข์ ์ ๊ธํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค.
์ผ๊ณฑ ๋ฒ์งธ ์์ ์์๋ Solidity ์ค๋งํธ ๊ณ์ฝ ๊ฐ๋ฐ์๋ค ์ฌ์ด์์ ์ธ๊ธฐ ์๋ Truffle ํ๋ ์์ํฌ๋ฅผ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค. truffle-contract ๋ชจ๋์ ์ฌ์ฉํ์ฌ ๊ณ์ฝ ๊ธฐ๋ฅ์ ํธ์ถํ๋ JavaScript ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๊ณ Truffle์ ์ฌ์ฉํ์ฌ ์ค๋งํธ ๊ณ์ฝ์ ํ ์คํธํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค.
์ฌ๋ ๋ฒ์งธ ์์ Solidity ๋ฐ์ดํฐ ์ ํ ์ ์ฉ์ ๋๋ค. ๋ถํธ ์๋ ์ ์์ ๋ถํธ ์๋ ์ ์, ๋ถํธ ์๋ ์ซ์, ๋ฌธ์์ด, ์ฃผ์, ๋ณตํฉ ๋ณ์, ๋ฐฐ์ด, ์ด๊ฑฐํ, ๊ตฌ์กฐ ๋ฐ ์ฌ์ ๊ณผ ๊ฐ์ ๋ฐ์ดํฐ ์ ํ๊ณผ ํจ๊ป ์๋ํ๋ ์ค๋งํธ ๊ณ์ฝ์ ์์ฑํ๊ฒ ๋ฉ๋๋ค.
์ํ ๋ฒ์งธ ์์ ์์๋ ์ด๋๋ฆฌ์ ๋ฉ์ธ๋ท์ ์ํ ์ค๋งํธ ๊ณ์ฝ ์์ฑ์ ํ ๊ฑธ์ ๋ ๊ฐ๊น์์ง ๊ฒ์ ๋๋ค. Geth ๊ฐ์ธ ๋คํธ์ํฌ์ Rinkeby ํ ์คํธ๋ท์์ Truffle์ ์ฌ์ฉํ์ฌ ๊ณ์ฝ์ ๊ฒ์ํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค. Rinkeby ๋คํธ์ํฌ์์ ์ค๋งํธ ๊ณ์ฝ์ ๋๋ฒ๊น ํ๋ ๊ฒ์ ๋ฉ์ธ ๋คํธ์ํฌ์ ๊ฒ์ํ๊ธฐ ์ ์ ๋งค์ฐ ์ ์ฉํฉ๋๋ค. ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ด ๊ฑฐ๊ธฐ์ ์์ง๋ง ๋ฌด๋ฃ์ ๋๋ค.
์์ ์ ์ผ๋ถ๋ก Rinkeby ํ ์คํธ ๋คํธ์ํฌ ๋ ธ๋๋ฅผ ์์ฑํ๊ณ , ์๊ธ์ ์กฐ๋ฌํ๊ณ , ์ค๋งํธ ๊ณ์ฝ์ ๊ฒ์ํ๊ฒ ๋ฉ๋๋ค.
ํ์ต 10 Ethereum Swarm ๋ถ์ฐ ๋ฐ์ดํฐ ์ ์ฅ ์ ์ฉ์ ๋๋ค. ๋ถ์ฐ ์คํ ๋ฆฌ์ง๋ฅผ ์ฌ์ฉํ๋ฉด Ethereum ๋ธ๋ก์ฒด์ธ์ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋น์ฉ์ด ์ ์ฝ๋ฉ๋๋ค.
์ด ํํ ๋ฆฌ์ผ์์๋ ๋ก์ปฌ Swarm ์คํ ๋ฆฌ์ง๋ฅผ ์์ฑํ๊ณ ํ์ผ ๋ฐ ํ์ผ ๋๋ ํฐ๋ฆฌ์ ๋ํ ์ฐ๊ธฐ ๋ฐ ์ฝ๊ธฐ ์์ ์ ์ํํฉ๋๋ค. ๋ค์์ผ๋ก, ๊ณต์ฉ Swarm ๊ฒ์ดํธ์จ์ด๋ก ์์ ํ๋ ๋ฐฉ๋ฒ, Node.js์์ Swarm์ ์ก์ธ์คํ๋ ์คํฌ๋ฆฝํธ ์์ฑ ๋ฐฉ๋ฒ, Perl Net::Ethereum::Swarm ๋ชจ๋ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค.
์์ ๋ชฉํ 11 โ ๋๋ฆฌ ์ฌ์ฉ๋๋ Python ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ Web3.py ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ Solidity ์ค๋งํธ ๊ณ์ฝ ์์ ์ ๋ง์คํฐํฉ๋๋ค. ํ๋ ์์ํฌ๋ฅผ ์ค์นํ๊ณ , ์ค๋งํธ ๊ณ์ฝ์ ์ปดํ์ผ ๋ฐ ๊ฒ์ํ๊ธฐ ์ํ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๊ณ , ํด๋น ๊ธฐ๋ฅ์ ํธ์ถํ๊ฒ ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ Web3.py๋ ๋จ๋ ์ผ๋ก ์ฌ์ฉ๋๊ฑฐ๋ Truffle ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ํจ๊ป ์ฌ์ฉ๋ฉ๋๋ค.
12๊ณผ์์ ์ค๋ผํด์ ์ฌ์ฉํ์ฌ ์ค๋งํธ ๊ณ์ฝ๊ณผ ์ค์ ์ธ๊ณ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋๋ค. ์ด๋ ์น ์ฌ์ดํธ, IoT ์ฅ์น, ๋ค์ํ ์ฅ์น ๋ฐ ์ผ์์์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ณ ์ค๋งํธ ๊ณ์ฝ์์ ์ด๋ฌํ ์ฅ์น๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ๋ฐ ์ ์ฉํฉ๋๋ค. ์์ ์ ์ค์ ๋ถ๋ถ์์๋ ๋ฌ์์ ์ค์ ์ํ ์น ์ฌ์ดํธ์์ USD์ ๋ฃจ๋ธ ๊ฐ์ ํ์ฌ ํ์จ์ ์์ ํ๋ ์ค๋ผํด๊ณผ ์ค๋งํธ ๊ณ์ฝ์ ์์ฑํฉ๋๋ค.
๋ ์จ 1. ๋ธ๋ก์ฒด์ธ๊ณผ ์ด๋๋ฆฌ์ ๋คํธ์ํฌ์ ๋ํด ๊ฐ๋ตํ๊ฒ ์ค๋ช
์์
์ ๋ชฉ์ : ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ์ ์ด์ ์๋ฆฌ, ์ ์ฉ ๋ถ์ผ ๋ฐ ๊ธฐ๋ณธ ์ฉ์ด์ ๋ํด ์์๋ณด์ธ์.
์ค์ ์์
: ์ด๋ฒ ๊ฐ์์๋ ํฌํจ๋์ง ์์์ต๋๋ค.
์ค๋๋ ๋ธ๋ก์ฒด์ธ ๊ธฐ์ (Blockchain), ์ํธํํ(Cryptocurrency or Crypto ํตํ), ๋นํธ์ฝ์ธ(Bitcoin), ICO(Initial Coin Offering), ์ค๋งํธ ๊ณ์ฝ(Smart Contract), ๋ธ๋ก์ฒด์ธ๊ณผ ๊ด๋ จ๋ ๋ค๋ฅธ ๊ฐ๋ ๊ณผ ์ฉ์ด๋ ํฌํจ๋ฉ๋๋ค.
๋ธ๋ก์ฒด์ธ ๊ธฐ์ ์ ์๋ก์ด ์์ฅ์ ์ด๊ณ ํ๋ก๊ทธ๋๋จธ๋ฅผ ์ํ ์ผ์๋ฆฌ๋ฅผ ์ฐฝ์ถํฉ๋๋ค. ์ํธํํ ๊ธฐ์ ๊ณผ ์ค๋งํธ ๊ณ์ฝ ๊ธฐ์ ์ ๋ชจ๋ ๋ณต์ก์ฑ์ ์ดํดํ๋ค๋ฉด ์ด ์ง์์ ์ค์ ๋ก ์ ์ฉํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ด์ผ ํฉ๋๋ค.
์ํธํํ์ ๋ธ๋ก์ฒด์ธ์ ๋๋ฌ์ธ๊ณ ๋ง์ ์ถ์ธก์ด ๋๋ฌดํ๊ณ ์์ต๋๋ค. ์ํธํํ ์์จ ๋ณ๊ฒฝ, ํผ๋ผ๋ฏธ๋ ์์ฑ, ์ํธํํ ๋ฒ๋ฅ ์ ๋ณต์ก์ฑ ๋ฑ์ ๋ํ ๋ ผ์๋ ์ ์ณ๋๊ฒ ์ต๋๋ค. ๊ต์ก ๊ณผ์ ์์๋ ์ฃผ๋ก ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ(์ด๋๋ฆฌ์, ์ด๋๋ฆฌ์)์ ์ค๋งํธ ๊ณ์ฝ ์ ์ฉ๊ณผ ์์ ๋ถ์ฐ ์ ํ๋ฆฌ์ผ์ด์ (๋ถ์ฐ ์ ํ๋ฆฌ์ผ์ด์ , DApp) ๊ฐ๋ฐ์ ๊ธฐ์ ์ ์ธก๋ฉด์ ์ค์ ์ ๋ ๊ฒ์ ๋๋ค.
๋ธ๋ก ์ฒด์ธ์ด๋?
๋ธ๋ก์ฒด์ธ(Block Chain)์ ์ผ์ ํ ๋ฐฉ์์ผ๋ก ์๋ก ์ฐ๊ฒฐ๋ ๋ฐ์ดํฐ ๋ธ๋ก์ ์ฒด์ธ์ ๋๋ค. ์ฒด์ธ์ ์์ ๋ถ๋ถ์๋ ์ฒซ ๋ฒ์งธ ๋ธ๋ก์ด ์๋๋ฐ ์ด๋ฅผ ๊ธฐ๋ณธ ๋ธ๋ก(์ ๋ค์์ค ๋ธ๋ก) ๋๋ ์ ๋ค์์ค ๋ธ๋ก์ด๋ผ๊ณ ํฉ๋๋ค. ๊ทธ ๋ค์์๋ ๋ ๋ฒ์งธ, ์ธ ๋ฒ์งธ ๋ฑ์ด ์ด์ด์ง๋๋ค.
์ด๋ฌํ ๋ชจ๋ ๋ฐ์ดํฐ ๋ธ๋ก์ ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ์ ์๋ง์ ๋
ธ๋์ ์๋์ผ๋ก ๋ณต์ ๋ฉ๋๋ค. ์ด๋ ๋ธ๋ก์ฒด์ธ ๋ฐ์ดํฐ์ ๋ถ์ฐ๋ ์ ์ฅ์ ๋ณด์ฅํฉ๋๋ค.
๋ธ๋ก์ฒด์ธ ์์คํ
์ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋์ด ์๊ณ ๋ฐ์ดํฐ ๋ธ๋ก ์ฒด์ธ์ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ณต์ ํ๋ ์๋ง์ ๋
ธ๋(๋ฌผ๋ฆฌ์ ๋๋ ๊ฐ์ ์๋ฒ)๋ก ์๊ฐํ ์ ์์ต๋๋ค. ์ด๋ ๋ง์น ๊ฑฐ๋ํ ๋ค์ค ์๋ฒ ์ปดํจํฐ์ ๊ฐ์ผ๋ฉฐ, ์ด๋ฌํ ์ปดํจํฐ(์๋ฒ)์ ๋
ธ๋๋ ์ ์ธ๊ณ์ ๋ถ์ฐ๋ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋น์ ๋ ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ์ ์ปดํจํฐ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค.
๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค
๋ธ๋ก์ฒด์ธ์ ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ์ ๋ชจ๋ ๋ ธ๋์ ๊ฑธ์ณ ๋ณต์ ๋๋ ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์๊ฐํ ์ ์์ต๋๋ค. ์ด๋ก ์ ์ผ๋ก ๋ธ๋ก์ฒด์ธ์ ํ๋ ์ด์์ ๋ ธ๋๊ฐ ์๋ํ์ฌ ๋ธ๋ก์ฒด์ธ์ ๋ชจ๋ ๋ธ๋ก์ ์ ์ฅํ๋ ํ ์๋๋ฉ๋๋ค.
๋ถ์ฐ ๋ฐ์ดํฐ ๋ ์ง์คํธ๋ฆฌ
๋ธ๋ก์ฒด์ธ์ ๋ฐ์ดํฐ ๋ฐ ์ด์(ํธ๋์ญ์ )์ ๋ถ์ฐ ์์ฅ์ผ๋ก ์๊ฐํ ์ ์์ต๋๋ค. ๊ทธ๋ฌํ ๋ ์ง์คํฐ์ ๋ ๋ค๋ฅธ ์ด๋ฆ์ ์์ฅ์ ๋๋ค.
๋ถ์ฐ ์์ฅ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ ์๋ ์์ง๋ง ๋ณ๊ฒฝํ๊ฑฐ๋ ์ญ์ ํ ์๋ ์์ต๋๋ค. ์ด๋ฌํ ๋ถ๊ฐ๋ฅ์ฑ์ ํนํ ์ํธํ ์๊ณ ๋ฆฌ์ฆ, ์ฒด์ธ์ ๋ธ๋ก์ ์ถ๊ฐํ๋ ํน์ ์๊ณ ๋ฆฌ์ฆ ๋ฐ ๋ถ์ฐํ ๋ฐ์ดํฐ ์ ์ฅ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌ์ฑ๋ฉ๋๋ค.
๋ธ๋ก์ ์ถ๊ฐํ๊ณ ์์ (ํธ๋์ญ์ )์ ์ํํ ๋ ๊ฐ์ธ ํค์ ๊ณต๊ฐ ํค๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๋ธ๋ก์ฒด์ธ ์ฌ์ฉ์์๊ฒ ์์ ์ ๋ฐ์ดํฐ ๋ธ๋ก์ ๋ํ ์ก์ธ์ค ๊ถํ๋ง ๋ถ์ฌํ์ฌ ์ ํํฉ๋๋ค.
๊ฑฐ๋
๋ธ๋ก์ฒด์ธ์ ์์ (ํธ๋์ญ์ )์ ๋ํ ์ ๋ณด๋ฅผ ๋ธ๋ก์ ์ ์ฅํฉ๋๋ค. ๋์์ ์ด๋ฏธ ์๋ฃ๋ ์ค๋๋ ํธ๋์ญ์ ์ ๋กค๋ฐฑํ๊ฑฐ๋ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์๋ก์ด ๊ฑฐ๋๋ ์๋ก ์ถ๊ฐ๋ ๋ธ๋ก์ ์ ์ฅ๋ฉ๋๋ค.
์ด๋ฐ ๋ฐฉ์์ผ๋ก ์ ์ฒด ๊ฑฐ๋ ๋ด์ญ์ ๋ธ๋ก์ฒด์ธ์ ๊ทธ๋๋ก ๊ธฐ๋กํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ธ๋ก์ฒด์ธ์ ์ฌ์ฉํ๋ฉด ์ํ ๊ฑฐ๋, ์ ์๊ถ ์ ๋ณด, ์์ฐ ์์ ์ ๋ณ๊ฒฝ ๋ด์ญ ๋ฑ์ ์์ ํ๊ฒ ์ ์ฅํ ์ ์์ต๋๋ค.
์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ์๋ ์์ ์์คํ ์ํ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ํธ๋์ญ์ ์ด ์คํ๋๋ฉด์ ์ํ๋ ์ด๊ธฐ ์ํ์์ ํ์ฌ ์ํ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค. ๊ฑฐ๋๋ ๋ธ๋ก ๋จ์๋ก ๊ธฐ๋ก๋ฉ๋๋ค.
ํผ๋ธ๋ฆญ ๋ฐ ํ๋ผ์ด๋น ๋ธ๋ก์ฒด์ธ
์ฌ๊ธฐ์์ ์ธ๊ธ๋ ๋ชจ๋ ๋ด์ฉ์ ๊ฐ์ธ์ด๋ ๋ฒ์ธ, ์ ๋ถ ๊ธฐ๊ด ๋๋ ์ ๋ถ๊ฐ ํต์ ํ ์ ์๋ ์์ ํผ๋ธ๋ฆญ ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ์๋ง ์ ์ฉ๋๋ค๋ ์ ์ ์ ์ํด์ผ ํฉ๋๋ค.
์์ ํ๋ผ์ด๋น ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ๋ ์ ์์์ ์์ ํ ํต์ ํ์ ์์ผ๋ฉฐ, ์๋ฅผ ๋ค์ด ์ฒด์ธ์ ๋ชจ๋ ๋ธ๋ก์ ์์ ํ ๊ต์ฒดํ๋ ๋ฑ ๋ชจ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค.
๋ธ๋ก์ฒด์ธ์ ์ค์ ์ ์ฉ
๋ธ๋ก์ฒด์ธ์ ์ด๋์ ์ ์ฉํ ๊น์?
๊ฐ๋จํ ๋งํด์, ๋ธ๋ก์ฒด์ธ์ ์ฌ์ฉํ๋ฉด ์๋ก ์ ๋ขฐํ์ง ์๋ ์ฌ๋์ด๋ ๊ธฐ์ ๊ฐ์ ๊ฑฐ๋(๊ฑฐ๋)๋ฅผ ์์ ํ๊ฒ ์ํํ ์ ์์ต๋๋ค. ๋ธ๋ก์ฒด์ธ์ ๊ธฐ๋ก๋ ๋ฐ์ดํฐ(๊ฑฐ๋, ๊ฐ์ธ์ ๋ณด, ๋ฌธ์, ์ฆ๋ช ์, ๊ณ์ฝ์, ์ก์ฅ ๋ฑ)๋ ๊ธฐ๋ก ํ์ ์์กฐ๋๊ฑฐ๋ ๋์ฒด๋ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ธ๋ก์ฒด์ธ์ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ํ ์ข ๋ฅ์ ๋ฌธ์์ ๋ํ ์ ๋ขฐํ ์ ์๋ ๋ถ์ฐ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์์ฑํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค.
๋ฌผ๋ก , ์ํธํํ ์์คํ
์ด ์ผ๋ฐ ์งํ๋ฅผ ๋์ฒดํ๋๋ก ์ค๊ณ๋ ๋ธ๋ก์ฒด์ธ์ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ง๊ณ ์๋ค๋ ๊ฒ์ ์๊ณ ๊ณ์ค ๊ฒ์
๋๋ค. ์งํ๋ ๋ฒ์ ํํ(Fiat Money์์ ์ ๋)๋ผ๊ณ ๋ ํฉ๋๋ค.
๋ธ๋ก์ฒด์ธ์ ๋ธ๋ก์ ๊ธฐ๋ก๋ ๊ฑฐ๋์ ์ ์ฅ๊ณผ ๋ถ๋ณ์ฑ์ ๋ณด์ฅํ๋ฏ๋ก ์ํธํํ ์์คํ
์ ๋ง๋๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ์๋ก ๋ค๋ฅธ ์ฌ์ฉ์(๊ณ์ ) ๊ฐ์ ์ํธํํ ์๊ธ ์ด์ฒด์ ๋ํ ์ ์ฒด ๋ด์ญ์ด ํฌํจ๋์ด ์์ผ๋ฉฐ ๋ชจ๋ ์์
์ ์ถ์ ํ ์ ์์ต๋๋ค.
์ํธํํ ์์คํ ๋ด ๊ฑฐ๋๋ ์ต๋ช ์ผ๋ก ์ด๋ฃจ์ด์ง ์ ์์ง๋ง, ์ํธํํ๋ฅผ ์ธ์ถํ๊ณ ๋ฒ์ ํํ๋ก ๊ตํํ๋ฉด ์ผ๋ฐ์ ์ผ๋ก ์ํธํํ ์์ฐ ์์ ์์ ์ ์์ด ๋ ธ์ถ๋ฉ๋๋ค.
์ด๋๋ฆฌ์ ๋คํธ์ํฌ์์ ์คํ๋๋ ์ํํธ์จ์ด์ธ ์์ ์ค๋งํธ ๊ณ์ฝ์ ์ฌ์ฉํ๋ฉด ๊ฑฐ๋๋ฅผ ์๋ฃํ๊ณ ๊ตฌํ์ ๋ชจ๋ํฐ๋งํ๋ ํ๋ก์ธ์ค๋ฅผ ์๋ํํ ์ ์์ต๋๋ค. ์ด๋ ๊ฑฐ๋์ ๋ํ ๊ฒฐ์ ๊ฐ Ether ์ํธํํ๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋๋ ๊ฒฝ์ฐ ํนํ ํจ๊ณผ์ ์ ๋๋ค.
Solidity ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์์ฑ๋ ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ ๋ฐ ์ด๋๋ฆฌ์ ์ค๋งํธ ๊ณ์ฝ์ ์๋ฅผ ๋ค์ด ๋ค์ ์์ญ์์ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
- ๋ฌธ์ ๊ณต์ฆ์ ๋์;
- ๋ถ๋์ฐ ๋ฌผ๊ฑด ๋ฑ๋ก๋ถ ๋ฐ ๋ถ๋์ฐ ๋ฌผ๊ฑด๊ณผ์ ๊ฑฐ๋์ ๊ดํ ์ ๋ณด ์ ์ฅ;
- ์ง์ ์ฌ์ฐ(๋์, ์ด๋ฏธ์ง, ์์ ์ํ ๋ฑ)์ ๋ํ ์ ์๊ถ ์ ๋ณด ์ ์ฅ
- ๋ ๋ฆฝ์ ์ธ ํฌํ ์์คํ ๊ตฌ์ถ;
- ๊ธ์ต ๋ฐ ์ํ์ ;
- ๊ตญ์ ์ ๊ท๋ชจ์ ๋ฌผ๋ฅ, ์ํ ์ด๋ ์ถ์ ;
- ์ ๋ถ์ฆ ์์คํ ๊ณผ ์ ์ฌํ ๋ฐฉ์์ผ๋ก ๊ฐ์ธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค.
- ์์ ๋ถ์ผ์ ์์ ํ ๊ฑฐ๋;
- ๊ฑด๊ฐ์ง๋จ ๊ฒฐ๊ณผ, ์ฒ๋ฐฉ๋ ์์ ์ด๋ ฅ ์ ์ฅ
๋ธ๋ก์ฒด์ธ์ ๋ฌธ์ ์
ํ์ง๋ง ๋ฌผ๋ก ๋ชจ๋ ๊ฒ์ด ๋ณด์ด๋ ๊ฒ๋งํผ ๋จ์ํ์ง๋ ์์ต๋๋ค!
๋ธ๋ก์ฒด์ธ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๊ธฐ ์ ์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ฆํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค(์: ๊ฐ์ง์ธ๊ฐ์?), ๋ธ๋ก์ฒด์ธ๊ณผ ํจ๊ป ์๋ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์์คํ ๋ฐ ์์ฉ ์ํํธ์จ์ด์ ๋ณด์ ๋ฌธ์ , ์ฌํ ๊ณตํ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ์ก์ธ์ค๋ฅผ ๋์ฉํ ๊ฐ๋ฅ์ฑ์ ๋ํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ํธํํ ์ง๊ฐ ๋ฑ .P.
๋ค์ ๋งํ์ง๋ง, ๋ ธ๋๊ฐ ์ ์ธ๊ณ์ ํฉ์ด์ ธ ์๋ ํผ๋ธ๋ฆญ ๋ธ๋ก์ฒด์ธ์ด ์๋๋ผ ๊ฐ์ธ์ด๋ ์กฐ์ง์ ์ํ ํ๋ผ์ด๋น ๋ธ๋ก์ฒด์ธ์ ๋ํด ์ด์ผ๊ธฐํ๋ ๊ฒฝ์ฐ ์ฌ๊ธฐ์์ ์ ๋ขฐ ์์ค์ ์ ๋ขฐ ์์ค๋ณด๋ค ๋์ง ์์ต๋๋ค. ์ด ์ฌ๋์ด๋ ์ด ์กฐ์ง์์.
๋ธ๋ก์ฒด์ธ์ ๊ธฐ๋ก๋ ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ ์ฌ๋์๊ฒ ๊ณต๊ฐ๋๋ค๋ ์ ๋ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์ด๋ฐ ์๋ฏธ์์ ๋ธ๋ก์ฒด์ธ(ํนํ ๊ณต๊ฐ)์ ๊ธฐ๋ฐ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๋ฐ ์ ํฉํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ธ๋ก์ฒด์ธ์ ์๋ ์ ๋ณด๋ ๋ณ๊ฒฝํ ์ ์๋ค๋ ์ฌ์ค์ ๋ค์ํ ์ ํ์ ์ฌ๊ธฐ ํ์๋ฅผ ์๋ฐฉํ๊ฑฐ๋ ์กฐ์ฌํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
์ด๋๋ฆฌ์ ๋ถ์ฐํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํธํํ๋ก ์ฌ์ฉ ๋น์ฉ์ ์ง๋ถํ๋ฉด ํธ๋ฆฌํฉ๋๋ค. ์ํธํํ๋ฅผ ์์ ํ๊ฑฐ๋ ๊ตฌ๋งคํ๋ ค๋ ์ฌ๋์ด ๋ง์์ง์๋ก DApp๊ณผ ์ค๋งํธ ๊ณ์ฝ์ ์ธ๊ธฐ๊ฐ ๋์์ง ๊ฒ์ ๋๋ค.
์ค์ ์ ์ฉ์ ๋ฐฉํดํ๋ ๋ธ๋ก์ฒด์ธ์ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ์๋ ์๋ก์ด ๋ธ๋ก์ ์ถ๊ฐํ ์ ์๋ ์๋์ ์ ํ๊ณผ ์๋์ ์ผ๋ก ๋์ ๊ฑฐ๋ ๋น์ฉ์ด ํฌํจ๋ฉ๋๋ค. ํ์ง๋ง ์ด ๋ถ์ผ์ ๊ธฐ์ ์ ํ๋ฐํ ๋ฐ์ ํ๊ณ ์์ผ๋ฉฐ, ์๊ฐ์ด ์ง๋๋ฉด ๊ธฐ์ ์ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ๊ฒ์ด๋ผ๋ ํฌ๋ง์ด ์์ต๋๋ค.
๋ ๋ค๋ฅธ ๋ฌธ์ ๋ ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ์ ์ค๋งํธ ๊ณ์ฝ์ด ๊ฐ์ ๋จธ์ ์ ๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ์์ ์๋ํ๋ฉฐ ์ค์ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ํนํ, ์ค๋งํธ ๊ณ์ฝ ํ๋ก๊ทธ๋จ ์์ฒด๋ ์ฌ์ดํธ๋ ๋ฌผ๋ฆฌ์ ์ฅ์น(์ผ์, ์ ์ ๋ฑ)์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์ ์์ผ๋ฉฐ ์ธ๋ถ ์ฅ์น๋ก ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ ์๋ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์์ ์ค๋ผํด(์ค๋งํธ ๊ณ์ฝ์ ์ ๋ณด ์ค๊ฐ์)์ ๋ํ ๊ฐ์์์ ์ด ๋ฌธ์ ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ ผ์ํ ๊ฒ์ ๋๋ค.
๋ฒ์ ์ ํ๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ผ๋ถ ๊ตญ๊ฐ์์๋ ์ํธํํ๋ฅผ ๊ฒฐ์ ์๋จ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ๊ธ์ง๋์ด ์์ง๋ง ์ฆ๊ถ๊ณผ ๊ฐ์ ์ผ์ข ์ ๋์งํธ ์์ฐ์ผ๋ก ์์ ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์์ฐ์ ๊ฑฐ๋์์์ ์ฌ๊ณ ํ ์ ์์ต๋๋ค. ์ด๋ค ๊ฒฝ์ฐ๋ , ์ํธํํ๋ก ์๋ํ๋ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค ๋ ๊ทํ์ ํ๋ก์ ํธ๊ฐ ๊ดํ ๊ถ์ ์ํ๋ ๊ตญ๊ฐ์ ๋ฒ๋ฅ ์ ์์งํด์ผ ํฉ๋๋ค.
๋ธ๋ก์ฒด์ธ ์ฒด์ธ์ด ํ์ฑ๋๋ ๋ฐฉ์
์ด๋ฏธ ๋งํ๋ฏ์ด ๋ธ๋ก์ฒด์ธ์ ๋ฐ์ดํฐ ๋ธ๋ก์ ๋จ์ํ ์ฒด์ธ์ ๋๋ค. ๋จผ์ ์ด ์ฒด์ธ์ ์ฒซ ๋ฒ์งธ ๋ธ๋ก์ด ํ์ฑ๋ ๋ค์ ๋ ๋ฒ์งธ ๋ธ๋ก์ด ์ถ๊ฐ๋๋ ์์ ๋๋ค. ๊ฑฐ๋ ๋ฐ์ดํฐ๋ ๋ธ๋ก ๋จ์๋ก ์ ์ฅ๋๋ค๊ณ ๊ฐ์ ํ๋ฉฐ, ๊ฐ์ฅ ์ต๊ทผ ๋ธ๋ก์ ์ถ๊ฐ๋ฉ๋๋ค.
๊ทธ๋ฆผ์์. 1.1์์๋ ์ฒซ ๋ฒ์งธ ๋ธ๋ก์ด ๋ค์ ๋ธ๋ก์ ์ฐธ์กฐํ๋ ๋ธ๋ก ์ํ์ค์ ๊ฐ์ฅ ๊ฐ๋จํ ๋ฒ์ ์ ๋ณด์ฌ์ฃผ์์ต๋๋ค.
์. 1.1. ๊ฐ๋จํ ๋ธ๋ก ์์
๊ทธ๋ฌ๋ ์ด ์ต์ ์ ์ฌ์ฉํ๋ฉด ์ฒด์ธ์ ์๋ ๋ชจ๋ ๋ธ๋ก์ ๋ด์ฉ์ ๋ณ์กฐํ๋ ๊ฒ์ด ๋งค์ฐ ์ฝ์ต๋๋ค. ๋ธ๋ก์๋ ๋ณ๊ฒฝ์ผ๋ก๋ถํฐ ๋ณดํธํ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ธ๋ก์ฒด์ธ์ ์ ๋ขฐ๊ฐ ์๋ ์ฌ๋๊ณผ ๊ธฐ์ ์ด ์ฌ์ฉํ๋๋ก ๋์ด ์๋ค๋ ์ ์ ๊ณ ๋ คํ๋ฉด ์ด๋ฌํ ๋ฐ์ดํฐ ์ ์ฅ ๋ฐฉ์์ ๋ธ๋ก์ฒด์ธ์ ์ ํฉํ์ง ์๋ค๋ ๊ฒฐ๋ก ์ ๋ด๋ฆด ์ ์์ต๋๋ค.
๋ธ๋ก ์์กฐ ๋ฐฉ์ง๋ฅผ ์์ํ๊ฒ ์ต๋๋ค. ์ฒซ ๋ฒ์งธ ๋จ๊ณ์์๋ ์ฒดํฌ์ฌ์ ์ฌ์ฉํ์ฌ ๊ฐ ๋ธ๋ก์ ๋ณดํธํ๋ ค๊ณ ํฉ๋๋ค(๊ทธ๋ฆผ 1.2).
์. 1.2. ์ฒดํฌ์ฌ์ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ๋ธ๋ก์ ๋ํ ๋ณดํธ ์ถ๊ฐ
์ด์ ๊ณต๊ฒฉ์๋ ๋ธ๋ก ๋ฐ์ดํฐ์ ์ฒดํฌ์ฌ์ ํฌํจํ๊ณ ์์ผ๋ฏ๋ก ๋ธ๋ก์ ๊ฐ๋จํ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ฒดํฌ์ฌ์ ํ์ธํ๋ฉด ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋์์์ ์ ์ ์์ต๋๋ค.
์ฒดํฌ์ฌ์ ๊ณ์ฐํ๋ ค๋ฉด MD-5, SHA-1, SHA-256 ๋ฑ๊ณผ ๊ฐ์ ํด์ฑ ํจ์ ์ค ํ๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํด์ ํจ์๋ ๋ฐ์ดํฐ ๋ธ๋ก์ ๋ํด ๋๋๋ฆด ์ ์๋ ์์ ์ ์ํํ์ฌ ๊ฐ(์: ์ผ์ ํ ๊ธธ์ด์ ํ ์คํธ ๋ฌธ์์ด)์ ๊ณ์ฐํฉ๋๋ค. ์์ ์ ํด์ ํจ์ ์ ํ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
๋ฐ์ดํฐ ๋ธ๋ก์ ๋ด์ฉ์ด ์ฝ๊ฐ ๋ณ๊ฒฝ๋๋๋ผ๋ ํด์ ๊ฐ๋ ๋ณ๊ฒฝ๋ฉ๋๋ค. ํด์ ํจ์ ๊ฐ์ ๋ถ์ํ์ฌ ๊ณ์ฐ๋ ๋ฐ์ดํฐ ๋ธ๋ก์ ์ฌ๊ตฌ์ฑํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
๊ทธ๋ฌํ ๋ณดํธ๋ก ์ถฉ๋ถํฉ๋๊น? ๋ถํํ๊ฒ๋.
์ด ๋ฐฉ์์์ ์ฒดํฌ์ฌ(ํด์ ํจ์)์ ๊ฐ๋ณ ๋ธ๋ก๋ง ๋ณดํธํ ๋ฟ ์ ์ฒด ๋ธ๋ก์ฒด์ธ์ ๋ณดํธํ์ง๋ ์์ต๋๋ค. ํด์ ํจ์๋ฅผ ๊ณ์ฐํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์๋ฉด ๊ณต๊ฒฉ์๋ ๋ธ๋ก์ ๋ด์ฉ์ ์ฝ๊ฒ ๊ต์ฒดํ ์ ์์ต๋๋ค. ๋ํ ์ฒด์ธ์์ ๋ธ๋ก์ ์ ๊ฑฐํ๊ฑฐ๋ ์ ๋ธ๋ก์ ์ถ๊ฐํ๋ ๊ฒ์ ๋ง์ ์ ์๋ ๊ฒ์ ์์ต๋๋ค.
์ ์ฒด ์ฒด์ธ์ ์ ์ฒด์ ์ผ๋ก ๋ณดํธํ๊ธฐ ์ํด ๋ฐ์ดํฐ์ ํจ๊ป ์ด์ ๋ธ๋ก์ ๋ฐ์ดํฐ ํด์๋ฅผ ๊ฐ ๋ธ๋ก์ ์ ์ฅํ ์๋ ์์ต๋๋ค(๊ทธ๋ฆผ 1.3).
์. 1.3. ์ด์ ๋ธ๋ก์ ํด์๋ฅผ ๋ฐ์ดํฐ ๋ธ๋ก์ ์ถ๊ฐ
์ด ๋ฐฉ์์์๋ ๋ธ๋ก์ ๋ณ๊ฒฝํ๋ ค๋ฉด ๋ชจ๋ ํ์ ๋ธ๋ก์ ํด์ ํจ์๋ฅผ ๋ค์ ๊ณ์ฐํด์ผ ํฉ๋๋ค. ๋ฌธ์ ๊ฐ ๋ฌด์์ธ ๊ฒ ๊ฐ๋์?
์ค์ ๋ธ๋ก์ฒด์ธ์์๋ ์๋ก์ด ๋ธ๋ก์ ์ถ๊ฐํ๊ธฐ ์ํด ์ธ์์ ์ธ ์ด๋ ค์์ด ์ถ๊ฐ๋ก ๋ฐ์ํ๋ฉฐ, ์ปดํจํ ๋ฆฌ์์ค๊ฐ ๋ง์ด ํ์ํ ์๊ณ ๋ฆฌ์ฆ์ด ์ฌ์ฉ๋ฉ๋๋ค. ๋ธ๋ก์ ๋ณ๊ฒฝํ๋ ค๋ฉด ์ด ๋ธ๋ก๋ฟ๋ง ์๋๋ผ ์ดํ์ ๋ชจ๋ ๋ธ๋ก์ ๋ค์ ๊ณ์ฐํด์ผ ํ๋ค๋ ์ ์ ๊ณ ๋ คํ๋ฉด ์ด๋ ๋งค์ฐ ์ด๋ ค์ธ ๊ฒ์ ๋๋ค.
๋ํ ๋ธ๋ก์ฒด์ธ ๋ฐ์ดํฐ๋ ์๋ง์ ๋คํธ์ํฌ ๋ ธ๋์ ์ ์ฅ(๋ณต์ )๋๋ค๋ ์ ์ ๊ธฐ์ตํ์ธ์. ๋ถ์ฐํ ์ ์ฅ์๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ๋ธ๋ก์ ์์กฐํ๋ ๊ฒ์ ํจ์ฌ ๋ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค. ์๋ํ๋ฉด ๋ชจ๋ ๋คํธ์ํฌ ๋ ธ๋๋ฅผ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค.
๋ธ๋ก์ ์ด์ ๋ธ๋ก์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ์ฒด์ธ ๋ด ๋ชจ๋ ๋ธ๋ก์ ๋ด์ฉ์ ํ์ธํ ์ ์๋ค.
์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ
์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ์ ๋ถ์ฐ DApp์ ์์ฑํ ์ ์๋ ํ๋ซํผ์ ๋๋ค. ๋ค๋ฅธ ํ๋ซํผ๊ณผ ๋ฌ๋ฆฌ ์ด๋๋ฆฌ์์ Solidity ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์์ฑ๋ ์์ ์ค๋งํธ ๊ณ์ฝ(์ค๋งํธ ๊ณ์ฝ)์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด ํ๋ซํผ์ ๋นํธ์ฝ์ธ โโ๋งค๊ฑฐ์ง์ ์ฐฝ๋ฆฝ์์ธ Vitalik Buterin์ ์ํด 2013๋ ์ ๋ง๋ค์ด์ก์ผ๋ฉฐ 2015๋ ์ ์ถ์๋์์ต๋๋ค. ๊ต์ก ๊ณผ์ ์์ ์ฐ๋ฆฌ๊ฐ ๊ณต๋ถํ๊ฑฐ๋ ์ํํ ๋ชจ๋ ๊ฒ์ ํนํ ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ ๋ฐ Solidity ์ค๋งํธ ๊ณ์ฝ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค.
์ฑ๊ตด ๋๋ ๋ธ๋ก ์์ฑ ๋ฐฉ๋ฒ
์ฑ๊ตด์ ๋ธ๋ก์ฒด์ธ ์ฒด์ธ์ ์๋ก์ด ๋ธ๋ก์ ์ถ๊ฐํ๋ ๋ค์ ๋ณต์กํ๊ณ ์์ ์ง์ฝ์ ์ธ ํ๋ก์ธ์ค์ด๋ฉฐ ์ ํ "์ํธํํ ์ฑ๊ตด"์ด ์๋๋๋ค. ์ฑ๊ตด์ ๋ธ๋ก์ฒด์ธ์ ๊ธฐ๋ฅ์ ๋ณด์ฅํฉ๋๋ค. Ethereum ๋ธ๋ก์ฒด์ธ์ ํธ๋์ญ์ ์ ์ถ๊ฐํ๋ ์ญํ ์ ๋ด๋นํ๋ ๊ฒ์ด ๋ฐ๋ก ์ด ํ๋ก์ธ์ค์ ๋๋ค.
๋ธ๋ก ์ถ๊ฐ์ ๊ด์ฌํ๋ ์ฌ๋๊ณผ ์กฐ์ง์ ์ฑ๊ตด์๋ผ๊ณ ํฉ๋๋ค.
์ฑ๊ตด์ ๋
ธ๋์์ ์คํ๋๋ ์ํํธ์จ์ด๋ ๋คํธ์ํฌ์์ ์ง์ ํ ํน์ ํด์ ๊ฐ์ ์ป๊ธฐ ์ํด ๋ง์ง๋ง ๋ธ๋ก์ ๋ํด Nonce๋ผ๋ ํด์ฑ ๋งค๊ฐ๋ณ์๋ฅผ ์ฐพ์ผ๋ ค๊ณ ํฉ๋๋ค. ์ด๋๋ฆฌ์์์ ์ฌ์ฉํ๋ Ethash ํด์ฑ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ฉด ์์ฐจ ๊ฒ์์ ํตํด์๋ง Nonce ๊ฐ์ ์ป์ ์ ์์ต๋๋ค.
์ฑ๊ตด์ ๋ ธ๋๊ฐ ์ฌ๋ฐ๋ฅธ Nonce ๊ฐ์ ์ฐพ์ผ๋ฉด ์ด๊ฒ์ด ์์ ์์ ์ฆ๋ช (PoW, Proof-of-work)์ ๋๋ค. ์ด ๊ฒฝ์ฐ ์ด๋๋ฆฌ์ ๋คํธ์ํฌ์ ๋ธ๋ก์ด ์ถ๊ฐ๋๋ฉด ์ฑ๊ตด์๋ ๋คํธ์ํฌ ํตํ์ธ Ether๋ก ํน์ ๋ณด์์ ๋ฐ์ต๋๋ค. ๊ธ์ ์ฐ๋ ์์ ์์๋ ๋ณด์์ด 5Ether์ด์ง๋ง ์๊ฐ์ด ์ง๋๋ฉด์ ์ค์ด๋ค ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ ์ด๋๋ฆฌ์ ์ฑ๊ตด์๋ ๋ธ๋ก์ ์ถ๊ฐํ์ฌ ๋คํธ์ํฌ์ ์ด์์ ๋ณด์ฅํ๊ณ ์ด๋ฅผ ์ํด ์ํธํํ๋ฅผ ๋ฐ์ต๋๋ค. ์ฑ๊ตด์์ ์ฑ๊ตด์ ๊ดํ ๋ง์ ์ ๋ณด๋ฅผ ์ธํฐ๋ท์์ ์ฐพ์ ์ ์์ง๋ง, ์ฐ๋ฆฌ๋ Ethereum ๋คํธ์ํฌ์์ Solidity ๊ณ์ฝ๊ณผ DApp์ ๋ง๋๋ ๋ฐ ์ค์ ์ ๋ ๊ฒ์ ๋๋ค.
์์ ์์ฝ
์ฒซ ๋ฒ์งธ ์์ ์์ ์ฌ๋ฌ๋ถ์ ๋ธ๋ก์ฒด์ธ์ ๋ํด ์๊ฒ ๋์๊ณ ๊ทธ๊ฒ์ด ํน๋ณํ ๊ตฌ์ฑ๋ ๋ธ๋ก์ ์ํ์ค๋ผ๋ ๊ฒ์ ๋ฐฐ์ ์ต๋๋ค. ์ด์ ์ ๊ธฐ๋ก๋ ๋ธ๋ก์ ๋ด์ฉ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ํด์๋ ๋ง์ ๋คํธ์ํฌ ๋ ธ๋์์ ๋ชจ๋ ํ์ ๋ธ๋ก์ ๋ค์ ๊ณ์ฐํด์ผ ํ๋ฉฐ, ์ด๋ ๋ง์ ๋ฆฌ์์ค์ ์๊ฐ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ธ๋ก์ฒด์ธ์ ์ฌ์ฉํ์ฌ ๊ฑฐ๋ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค. ์ฃผ์ ๋ชฉ์ ์ ์ ๋ขฐ๊ฐ ์๋ ๋น์ฌ์(๊ฐ์ธ ๋ฐ ์กฐ์ง) ๊ฐ์ ์์ ํ ๊ฑฐ๋๋ฅผ ์กฐ์งํ๋ ๊ฒ์ ๋๋ค. ์ด๋ค ํน์ ๋น์ฆ๋์ค ์์ญ๊ณผ Ethereum ๋ธ๋ก์ฒด์ธ ๋ฐ Solidity ์ค๋งํธ ๊ณ์ฝ์ ์ฌ์ฉํ ์ ์๋์ง ๋ฐฐ์ ์ต๋๋ค. ์ด๊ฒ์ ์ํ ๋ถ๋ฌธ, ์ฌ์ฐ๊ถ ๋ฑ๋ก, ๋ฌธ์ ๋ฑ์ ๋๋ค.
๋ํ ๋ธ๋ก์ฒด์ธ์ ์ฌ์ฉํ ๋ ๋ค์ํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค๋ ๊ฒ๋ ๋ฐฐ์ ์ต๋๋ค. ์ด๋ ๋ธ๋ก์ฒด์ธ์ ์ถ๊ฐ๋ ์ ๋ณด๋ฅผ ๊ฒ์ฆํ๋ ๋ฌธ์ , ๋ธ๋ก์ฒด์ธ์ ์๋, ๊ฑฐ๋ ๋น์ฉ, ์ค๋งํธ ๊ณ์ฝ๊ณผ ํ์ค ์ธ๊ณ ๊ฐ์ ๋ฐ์ดํฐ ๊ตํ ๋ฌธ์ , ์ฌ์ฉ์ ๊ณ์ ์์ ์ํธํํ ์๊ธ์ ํ์น๋ ค๋ ๊ณต๊ฒฉ์์ ์ ์ฌ์ ์ธ ๊ณต๊ฒฉ ๋ฑ์ ๋ฌธ์ ์ ๋๋ค. .
๋ธ๋ก์ฒด์ธ์ ์๋ก์ด ๋ธ๋ก์ ์ถ๊ฐํ๋ ๊ณผ์ ์ผ๋ก์ ์ฑ๊ตด์ ๋ํด์๋ ๊ฐ๋ตํ๊ฒ ์ด์ผ๊ธฐํ์ต๋๋ค. ๊ฑฐ๋๋ฅผ ์๋ฃํ๋ ค๋ฉด ์ฑ๊ตด์ด ํ์ํฉ๋๋ค. ์ฑ๊ตด์ ์ฐธ์ฌํ๋ ์ฌ๋๋ค์ ๋ธ๋ก์ฒด์ธ์ ๊ธฐ๋ฅ์ ๋ณด์ฅํ๊ณ ์ด์ ๋ํ ๋ณด์์ผ๋ก ์ํธํํ๋ฅผ ๋ฐ์ต๋๋ค.
2๊ณผ. Ubuntu ๋ฐ Debian OS์์ ์์
ํ๊ฒฝ ์ค๋น์ด์ ์ฒด์ ์ ํ
ํ์ํ ์ ํธ๋ฆฌํฐ ์ค์น
์ฐ๋ถํฌ์ Geth์ Swarm ์ค์นํ๊ธฐ
๋ฐ๋น์์ Geth์ Swarm ์ค์นํ๊ธฐ
์๋น ์ค๋น
Go ๋ฐฐํฌํ ๋ค์ด๋ก๋
ํ๊ฒฝ ๋ณ์ ์ค์
Go ๋ฒ์ ํ์ธ
Geth ๋ฐ Swarm ์ค์น
ํ๋ผ์ด๋น ๋ธ๋ก์ฒด์ธ ์์ฑ
Genesis.json ํ์ผ ์ค๋น
์
๋ฌด์ฉ ๋๋ ํฐ๋ฆฌ ๋ง๋ค๊ธฐ
๊ณ์ ๋ง๋ค๊ธฐ
๋
ธ๋ ์ด๊ธฐํ ์์
๋
ธ๋ ์์ ์ต์
์ฐ๋ฆฌ ๋
ธ๋์ ์ฐ๊ฒฐ
์ฑ๊ตด ๊ด๋ฆฌ ๋ฐ ์์ก ํ์ธ
Geth ์ฝ์ ์ข
๋ฃ
์์
์์ฝ
3๊ณผ. Raspberry Pi 3์์ ์์
ํ๊ฒฝ ์ค๋นRaspberry Pi 3 ์์
์ค๋น
Rasberian ์ค์น
์
๋ฐ์ดํธ ์ค์น
SSH ์ก์ธ์ค ํ์ฑํ
๊ณ ์ IP ์ฃผ์ ์ค์
ํ์ํ ์ ํธ๋ฆฌํฐ ์ค์น
Go ์ค์น
Go ๋ฐฐํฌํ ๋ค์ด๋ก๋
ํ๊ฒฝ ๋ณ์ ์ค์
Go ๋ฒ์ ํ์ธ
Geth ๋ฐ Swarm ์ค์น
ํ๋ผ์ด๋น ๋ธ๋ก์ฒด์ธ ์์ฑ
๊ณ์ข ๋ฐ ์์ก ํ์ธ
์์
์์ฝ
4๊ณผ. ๊ณ์ข ๋ฐ ๊ณ์ข ๊ฐ ์๊ธ ์ด์ฒด๊ณ์ ๋ณด๊ธฐ ๋ฐ ์ถ๊ฐ
๊ณ์ ๋ชฉ๋ก ๋ณด๊ธฐ
๊ณ์ ์ถ๊ฐ
geth ๊ณ์ ๋ช
๋ น ์ต์
๊ณ์ ๋น๋ฐ๋ฒํธ
์ด๋๋ฆฌ์์ ์ํธํํ
์ด๋๋ฆฌ์ ํตํ ๋จ์
์ฐ๋ฆฌ๋ ๊ณ์ ์ ํ์ฌ ์์ก์ ๊ฒฐ์ ํฉ๋๋ค
ํ ๊ณ์ข์์ ๋ค๋ฅธ ๊ณ์ข๋ก ์๊ธ ์ด์ฒด
eth.sendTransaction ๋ฉ์๋
๊ฑฐ๋ ์ํ ๋ณด๊ธฐ
๊ฑฐ๋ ์์์ฆ
์์
์์ฝ
5๊ณผ. ์ฒซ ๋ฒ์งธ ๊ณ์ฝ ๊ฒ์์ด๋๋ฆฌ์์ ์ค๋งํธ ๊ณ์ฝ
์ค๋งํธ ๊ณ์ฝ ์คํ
์ด๋๋ฆฌ์ ๊ฐ์ ๋จธ์
ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ Remix Solidity IDE
์ปดํ์ผ ์คํ ์ค
๊ณ์ฝ ํจ์ ํธ์ถ
๊ฐ์ธ ๋คํธ์ํฌ์ ๊ณ์ฝ ๊ฒ์
ABI ์ ์ ๋ฐ ๊ณ์ฝ ๋ฐ์ด๋๋ฆฌ ์ฝ๋ ๊ฐ์ ธ์ค๊ธฐ
๊ณ์ฝ์์ ๊ณต๊ฐ
๊ณ์ฝ์ ๋ฐํ ๊ฑฐ๋ ์ํ ํ์ธ
๊ณ์ฝ ํจ์ ํธ์ถ
๋ฐฐ์น ์ปดํ์ผ๋ฌ solc
์ฐ๋ถํฌ์ solc ์ค์น
๋ฐ๋น์์ solc ์ค์นํ๊ธฐ
HelloSol ๊ณ์ฝ ์ปดํ์ผ
๊ณ์ฝ์์ ๊ณต๊ฐ
Rasberian์ solc ์ค์น
์์
์์ฝ
๊ฐ์ 6. ์ค๋งํธ ๊ณ์ฝ๊ณผ Node.jsNode.js ์ค์น
์ฐ๋ถํฌ์ ์ค์น
๋ฐ๋น์์ ์ค์น
Ganache-cli ์ค์น ๋ฐ ์คํ
์น3 ์ค์น
์ํฌ ์ค์น
Rasberian์ Node.js ์ค์น
์ฝ์์์ ๊ณ์ ๋ชฉ๋ก์ ๊ฐ์ ธ์ค๋ ์คํฌ๋ฆฝํธ
์ค๋งํธ ๊ณ์ฝ ๊ฒ์๋ฅผ ์ํ ์คํฌ๋ฆฝํธ
๋งค๊ฐ๋ณ์ ์คํ ๋ฐ ๊ฐ์ ธ์ค๊ธฐ
์์ ์ต์
๊ฐ์ ธ์ค๊ธฐ
๊ณ์ฝ์ ํธ์ง
๊ณ์ ์ฐจ๋จ ํด์
ABI ๋ฐ ๊ณ์ฝ ๋ฐ์ด๋๋ฆฌ ์ฝ๋ ๋ก๋
ํ์ํ ๊ฐ์ค๋ ์ถ์
๊ฐ์ฒด ์์ฑ ๋ฐ ๊ณ์ฝ ๊ฒ์ ์์
๊ณ์ฝ ๊ฒ์ ์คํฌ๋ฆฝํธ ์คํ
์ค๋งํธ ๊ณ์ฝ ๊ธฐ๋ฅ ํธ์ถ
๊ฒ์๋ ์ค๋งํธ ๊ณ์ฝ์ ์
๋ฐ์ดํธํ ์ ์๋์?
Web3 ๋ฒ์ 1.0.x๋ก ์์
ํ๊ธฐ
๊ณ์ ๋ชฉ๋ก ๊ฐ์ ธ์ค๊ธฐ
๊ณ์ฝ์์ ๊ณต๊ฐ
๊ณ์ฝ ํจ์ ํธ์ถ
ํ ๊ณ์ข์์ ๋ค๋ฅธ ๊ณ์ข๋ก ์๊ธ ์ด์ฒด
๊ณ์ฝ ๊ณ์ข๋ก ์๊ธ ์ด์ฒด
HelloSol ์ค๋งํธ ๊ณ์ฝ ์
๋ฐ์ดํธ
๊ณ์ ์์ก์ ๋ณด๊ธฐ ์ํ ์คํฌ๋ฆฝํธ ๋ง๋ค๊ธฐ
call_contract_get_promise.js ์คํฌ๋ฆฝํธ์ getBalance ํจ์ ํธ์ถ์ ์ถ๊ฐํฉ๋๋ค.
์ค๋งํธ ๊ณ์ฝ ๊ณ์ ์ ์ถฉ์ ํฉ๋๋ค
์์
์์ฝ
๋ ์จ 7. ํธ๋ฌํ ์๊ฐํธ๋ฌํ ์ค์น
HelloSol ํ๋ก์ ํธ ์์ฑ
ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ ๋ฐ ํ์ผ ์์ฑ
๊ณ์ฝ ๋๋ ํ ๋ฆฌ
์นดํ๋ก๊ทธ ๋ง์ด๊ทธ๋ ์ด์
๋๋ ํ ๋ฆฌ ํ
์คํธ
ํธ๋ฌํ-config.js ํ์ผ
HelloSol ๊ณ์ฝ ์ปดํ์ผ
๊ณ์ฝ์ ๊ฒ์ ์์
ํธ๋ฌํ ํ๋กฌํํธ์์ HelloSol ๊ณ์ฝ ํจ์ ํธ์ถ
Node.js๋ฅผ ์คํํ๋ JavaScript ์คํฌ๋ฆฝํธ์์ HelloSol ๊ณ์ฝ ํจ์ ํธ์ถ
ํธ๋ฌํ ๊ณ์ฝ ๋ชจ๋ ์ค์น
๊ณ์ฝ ํจ์ getValue ๋ฐ getString ํธ์ถ
๊ณ์ฝ ํจ์ setValue ๋ฐ setString ํธ์ถ
๊ณ์ฝ ์์ ๋ฐ ์ฌ๊ณต์
Web3 ๋ฒ์ 1.0.x๋ก ์์
ํ๊ธฐ
HelloSol ์ค๋งํธ ๊ณ์ฝ ๋ณ๊ฒฝ
๊ณ์ฝ ๋ฉ์๋ ํธ์ถ์ ์ํ ์คํฌ๋ฆฝํธ
ํธ๋คผํ์์ ํ
์คํธํ๊ธฐ
๊ฒฌ๊ณ ์ฑ ํ
์คํธ
์๋ฐ์คํฌ๋ฆฝํธ ํ
์คํธ
์์
์์ฝ
8๊ฐ. Solidity ๋ฐ์ดํฐ ์ ํ๋ฐ์ดํฐ ์ ํ ํ์ต ๊ณ์ฝ
๋ถ์ธ ๋ฐ์ดํฐ ์ ํ
๋ถํธ ์๋ ์ ์ ๋ฐ ๋ถํธ ์๋ ์ ์
๊ณ ์ ์์์ ์
์ฃผ์
๋ณตํฉ ์ ํ์ ๋ณ์
๊ณ ์ ํฌ๊ธฐ ๋ฐฐ์ด
๋์ ๋ฐฐ์ด
๋ฆฌ์คํ
๊ตฌ์กฐ
์ฌ์ ๋งคํ
์์
์์ฝ
Lesson 9. ํ๋ผ์ด๋น ๋คํธ์ํฌ์ Rinkeby ๋คํธ์ํฌ๋ก ๊ณ์ฝ ๋ง์ด๊ทธ๋ ์ด์
Truffle์์ ๊ฐ์ธ Geth ๋คํธ์ํฌ๋ก ๊ณ์ฝ ๊ฒ์
๊ฐ์ธ ๋คํธ์ํฌ ๋
ธ๋ ์ค๋น
๊ทผ๋ก ๊ณ์ฝ ์ค๋น
Truffle ๋คํธ์ํฌ๋ก ๊ณ์ฝ ์ปดํ์ผ ๋ฐ ๋ง์ด๊ทธ๋ ์ด์
๋ก์ปฌ ๋คํธ์ํฌ ๋ง์ด๊ทธ๋ ์ด์
geth ์์
์ก๋ก๋ฒ์ฏ ์ ๋ฌผ ์ป๊ธฐ
Truffle์์ Rinkeby ํ
์คํธ๋ท์ผ๋ก ๊ณ์ฝ ๊ฒ์
Rinkeby์ ํจ๊ป ์๋ํ๋๋ก Geth ๋
ธ๋ ์ค๋น
๋
ธ๋ ๋๊ธฐํ
๊ณ์ ์ถ๊ฐ
Ether๋ก Rinkeby ๊ณ์ ์ถฉ์ ํ๊ธฐ
Rinkeby ๋คํธ์ํฌ๋ก ๊ณ์ฝ ๋ง์ด๊ทธ๋ ์ด์
์์
Rinkeby ๋คํธ์ํฌ์์ ๊ณ์ฝ ์ ๋ณด ๋ณด๊ธฐ
Rinkeby Network์ฉ ํธ๋ฌํ ์ฝ์
๊ณ์ฝ ํจ์๋ฅผ ํธ์ถํ๋ ๋ ์ฌ์ด ๋ฐฉ๋ฒ
Node.js๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ์ฝ ๋ฉ์๋ ํธ์ถ
Rinkby์ฉ Truffle ์ฝ์์์ ๊ณ์ ๊ฐ ์๊ธ ์ด์ฒด
์์
์์ฝ
๊ฐ์ 10. ์ด๋๋ฆฌ์ ์ค์(Ethereum Swarm) ๋ถ์ฐํ ๋ฐ์ดํฐ ์ ์ฅ์ด๋๋ฆฌ์ ์ค์์ ์ด๋ป๊ฒ ์๋ํ๋์?
Swarm ์ค์น ๋ฐ ์คํ
ํ์ผ ๋ฐ ๋๋ ํฐ๋ฆฌ ์์
Ethereum Swarm์ ํ์ผ ์
๋ก๋
Ethereum Swarm์์ ํ์ผ ์ฝ๊ธฐ
์
๋ก๋๋ ํ์ผ์ ๋งค๋ํ์คํธ ๋ณด๊ธฐ
ํ์ ๋๋ ํฐ๋ฆฌ๊ฐ ์๋ ๋๋ ํฐ๋ฆฌ ๋ก๋
๋ค์ด๋ก๋ํ ๋๋ ํฐ๋ฆฌ์์ ํ์ผ ์ฝ๊ธฐ
๊ณต๊ฐ Swarm ๊ฒ์ดํธ์จ์ด ์ฌ์ฉ
Node.js ์คํฌ๋ฆฝํธ์์ Swarm์ ์ก์ธ์ค
Perl Net::Ethereum::Swarm ๋ชจ๋
Net::Ethereum::Swarm ๋ชจ๋ ์ค์น
๋ฐ์ดํฐ ์ฐ๊ธฐ ๋ฐ ์ฝ๊ธฐ
์์
์์ฝ
๊ฐ์ 11. Python์์ Ethereum ์์
์ ์ํ Web3.py ํ๋ ์์ํฌWeb3.py ์ค์น
ํ์ํ ํจํค์ง ์
๋ฐ์ดํธ ๋ฐ ์ค์น
easysolc ๋ชจ๋ ์ค์น
Web3.py๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ์ฝ ๊ฒ์
๊ณ์ฝ์ ํธ์ง
๊ณต๊ธ์์ ์ฐ๊ฒฐ
๊ณ์ฝ์ ๋ฐํ ์คํ
์ปจํธ๋ํธ ์ฃผ์์ abi๋ฅผ ํ์ผ๋ก ์ ์ฅ
๊ณ์ฝ ๊ฒ์ ์คํฌ๋ฆฝํธ ์คํ
๊ณ์ฝ ๋ฐฉ๋ฒ ํธ์ถ
JSON ํ์ผ์์ ์ปจํธ๋ํธ์ ์ฃผ์์ abi ์ฝ๊ธฐ
๊ณต๊ธ์์ ์ฐ๊ฒฐ
๊ณ์ฝ ๊ฐ์ฒด ์์ฑ
๊ณ์ฝ ๋ฐฉ๋ฒ ํธ์ถ
ํธ๋ฌํ๊ณผ Web3.py
์์
์์ฝ
12๊ณผ. ์ค๋ผํด์ค๋งํธ ๊ณ์ฝ์ด ์ธ๋ถ ์ธ๊ณ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ขฐํ ์ ์์ต๋๊น?
๋ธ๋ก์ฒด์ธ ์ ๋ณด ์ค๊ฐ์๋ก์์ ์ค๋ผํด
๋ฐ์ดํฐ ์์ค
์์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ด๋ ์ฝ๋
๋ธ๋ก์ฒด์ธ์ ํ์จ์ ๊ธฐ๋กํ๋ ์ค๋ผํด
USDํ์จOracle ๊ณ์ฝ
์ค๋งํธ ๊ณ์ฝ์ ํ์จ ์
๋ฐ์ดํธ
์น ์์ผ ๊ณต๊ธ์ ์ฌ์ฉ
RateUpdate ์ด๋ฒคํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ค
RateUpdate ์ด๋ฒคํธ ์ฒ๋ฆฌ
์ค๋งํธ ๊ณ์ฝ์์ ๋ฐ์ดํฐ ์
๋ฐ์ดํธ ์์
์์
์์ฝ
์ถ์ฒ : habr.com