๐งฑEthereum
์ ๋ฌธ
์ด๋๋ฆฌ์์ด๋?
์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ์์ ํ์ค์ํ ์ ํ๋ฆฌ์ผ์ด์ (Decentralized App, dApp)์ ๊ฐ๋ฐํ๋ ๊ฒ์ ๊ด์ฌ์๋ ๋ชจ๋๋ฅผ ์ํ ๊ธฐ์ด ๋ด์ฉ์ ๋ด์์ต๋๋ค. ํ๋์ ๋ฌธ์ ํํ์ ๊ฐ๊น์ด ๊ฐ์์ด๋ฉฐ, ๋์์์ด๋ ์์ค์ฝ๋๋ฅผ ์ ๊ณตํ๋ ๋ด์ฉ์ ์๋๋๋ค. ๋จ, ์ด๋๋ฆฌ์์ ๋ํด ๋ฐฐ์ธ ๋ ๊ธฐ์ด์ ์ผ๋ก ๋๊ตฌ๋ ์๊ณ ์์ด์ผ ํ ํต์ฌ ๋ด์ฉ์ ๋ด์์ต๋๋ค.
์ง๋ถ(Payment), ๊ทธ ์ด์์ ํฅํด
๋นํธ์ฝ์ธ ๋ธ๋ก์ฒด์ธ์ ์ฃผ๋ก ์ํ๊ณผ ๊ฐ์ ์ค์ ๊ธฐ๊ด์ ์ค์ฌ ์์ด ๋ธ๋ก์ฒด์ธ์ ๋ค์ํ ๋น์ฌ์ ๊ฐ์ ๋์ ์ก๊ธํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๋นํ๋ฆญ ๋ถํ ๋ฆฐ(Vitalik Buterin)์ด๋ผ๋ ์ด๋ฆ์ 19์ธ ์ฒญ๋ ๊ฐ๋ฐ์๋ ์ด๋ฌํ ํ์ค์ํ์ ๊ฐ๋ ์ ์ก๊ธ ์ธ์ ๋ค๋ฅธ ๋ถ์ผ์ ์ ์ฉํ๊ณ ์ ํ์ต๋๋ค. ๊ทธ๋ ์ค์ํ๋ ํต์ ๊ถํ ์์ด ์ ์ธ๊ณ์ ์ผ๋ก ์ด์๋ ์ ์๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ง๋ค๊ณ ์ถ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ํ์ด์ค๋ถ์ ๊ฒฝ์ฐ ํ์ด์ค๋ถ ์ฃผ์ํ์ฌ๊ฐ ์ฌ์ฉ์์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ณ ์์ผ๋ฉฐ ์ํ๋ฉด ์ฌ์ฉ์์ ๊ณ์ ์ ์ ๊ฑฐํ ์ ์๋ ๊ถ๋ฆฌ๋ฅผ ๊ฐ์ง๋๋ค. 10๋ ๋ค ํ์ด์ค๋ถ์ด ํ์๋๋ค๊ณ ๊ฐ์ ํ๋ฉด ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์์ค๋ ์๋ ์์ต๋๋ค. ๋นํ๋ฆญ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋น๋ํ ์ ์๋๋ก ๋นํธ์ฝ์ธ์ ์คํฌ๋ฆฝํ ์ธ์ด๋ฅผ ์ถ๊ฐํ ๊ฒ์ ์ ์ํ์ง๋ง ๋นํธ์ฝ์ธ ๊ฐ๋ฐํ๊ณผ์ ํฉ์์ ๋๋ฌํ์ง ๋ชปํฉ๋๋ค. ๊ฒฐ๊ตญ ๊ทธ๋ 2014๋ 1์์ ์ผ๋ฐ์ ์ธ ์คํฌ๋ฆฝํ ์ธ์ด๋ฅผ ์ฌ์ฉํ ์ ์๋ ์๋ก์ด ํ๋ซํผ์ ๋ํ ๋ฐฑ์ ๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๊ณง์ด์ด ๊ฐ๋ฐํ์ด ๊พธ๋ ค์ง๊ณ , ๊ฐ๋น ์ฐ๋(Gavin Wood) ๋ฐ์ฌ์ ํ์ด ์ด๋๋ฆฌ์ ํฉ์ ์์ ๋คํธ์ํฌ์ ๋ชจ๋ ์ค๋งํธ ๊ณ์ฝ์ ์คํํ๋ ๋ฐํ์ ํ๊ฒฝ์ธ EVM(EVerenum Virtual Machine)์ ๋ํด ์ค๋ช ํ์ต๋๋ค(EVM ๋ฐ ์ค๋งํธ ๊ณ์ฝ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ค์ ์ ์์ ์ค๋ช ํฉ๋๋ค). ์ด ํ๋ซํผ์ ๊ฐ๋ฐ์ ์ํ ์๊ธ์ ํฌ๋ผ์ฐ๋ํ๋ฉ์ 2014๋ 7์๋ถํฐ 8์์ ๊ฑฐ์ณ ์ด๋ฃจ์ด์ก์ผ๋ฉฐ, ํ๋ฉ ์ฐธ๊ฐ์๋ ๋นํธ์ฝ์ธ์ผ๋ก ์ด๋๋ฆฌ์ ๋ฐธ๋ฅ ํ ํฐ(์ด๋)์ ๊ตฌ์ ํ์ต๋๋ค.
์ธ๊ณ์ ์ปดํจํฐ
์ด๋๋ฆฌ์์ ํผ๋ธ๋ฆญ ๋ธ๋ก์ฒด์ธ ๊ธฐ๋ฐ์ ๋ถ์ฐ ์ปดํจํ ํ๋ซํผ์ ๋๋ค. ์ ์ธ๊ณ์ ์๋ง์ ์์ ์ปดํจํฐ๋ก ๊ตฌ์ฑ๋ ํ๋์ ํฐ ์ปดํจํฐ๋ก ์๊ฐํ ์๋ ์์ต๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ฑํ๊ณ ์ด ๊ธ๋ก๋ฒ ์ปดํจํฐ์์ ์คํํ ์ ์์ผ๋ฉฐ, ์ด ํ๋ซํผ์ ์ค๋จ ์๊ฐ, ๊ฒ์ด, ์ฌ๊ธฐ ๋๋ ์ 3 ์์ ๊ฐ์ญ์์ด ํญ์ ์คํ๋๋๋ก ๋ณด์ฅํฉ๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๊ฒ ์ธ์๋, ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ์ ํตํด ์ค์ ๊ถํ์์ด ๋ ๋น์ฌ์๊ฐ์ ๋์ ์ด์ฒดํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ชจ๋ ์ปดํจํฐ(๋ ธ๋๋ผ๊ณ ๋ ํจ)๋ ์๋ก ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉฐ ์ฝ๋์ ๋ฐ์ดํฐ์ ์ ์ฒด ๋ณต์ฌ๋ณธ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ์ ์ฝ๋๋ฅผ ๋ฐฐํฌํ๋ฉด ์ฝ๋๊ฐ ๋คํธ์ํฌ์ ๋ชจ๋ ๋ ธ๋๋ก ๋ณต์ ๋ฉ๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ฉด ๋ชจ๋ ๋ ธ๋์์ ํด๋น ๋ฐ์ดํฐ๊ฐ ๋ณต์ ๋ฉ๋๋ค. ๋คํธ์ํฌ์๋ ์์ฒ ๊ฐ์ ๋ ธ๋๊ฐ ์์ผ๋ฉฐ ๋ชจ๋ ๋ ธ๋๋ฅผ ์ค์ง์ํค๋ ๊ฒ์ ๊ฑฐ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ๋ฐ๋ผ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ํญ์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
์น์ฑ ์ํคํ ์ฒ
์ด๋๋ฆฌ์์ ์ดํดํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ ์ค ํ๋๋ ๊ธฐ์กด์ ํด๋ผ์ด์ธํธ/์๋ฒ ์ํคํ ์ฒ์ ๋น๊ตํ๋ ๊ฒ์ ๋๋ค. ์น ๊ฐ๋ฐ์๋ผ๋ฉด ์ค๋ฅธ์ชฝ ๋ค์ด์ด๊ทธ๋จ์ ์ฝ๊ฒ ์ดํดํ ์ ์์ ๊ฒ์ ๋๋ค(์น ์ํคํ ์ฒ๋ฅผ ๋ชฐ๋ผ๋ ๊ด์ฐฎ์ต๋๋ค). ์ด๊ฒ์ ๊ฐ๋จํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ํด๋ผ์ด์ธํธ/์๋ฒ ์ํคํ ์ฒ์ ๋๋ค. ์ผ๋ฐ์ ์ธ ์น ์์ฉ ํ๋ก๊ทธ๋จ์ ์ผ๋ฐ์ ์ผ๋ก ์๋ฐ, C#, ๋ฃจ๋น, ํ์ด์ฌ๊ณผ ๊ฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์์ฑ๋ ์๋ฒ ๋จ ์ฝ๋๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ํ๋ก ํธ์๋ ์ฝ๋๋ HTML/CSS/์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํ๋ฉ๋๋ค. ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ AWS, ๋ง์ดํฌ๋ก์ํํธ ์ ์ ธ, ๊ตฌ๊ธ ํด๋ผ์ฐ๋ ํ๋ซํผ, Heroku ๋๋ VPS์ ๊ฐ์ ํธ์คํ ์ ๊ณต ์ ์ฒด์์ ํธ์คํ ๋ฉ๋๋ค. ์ฌ์ฉ์๋ ์น ๋ธ๋ผ์ฐ์ , curl/wget(์ปค๋งจ๋ ๋ผ์ธ) ๋๋ API๋ฅผ ํตํด ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ ์น ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ์ํธ ์์ฉํฉ๋๋ค. ์ค์ํ๋ ํ๋์ ์น ์์ฉ ํ๋ก๊ทธ๋จ์ด ์์ผ๋ฉฐ ๋ชจ๋ ํด๋ผ์ด์ธํธ๊ฐ ์ด ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ์ํธ ์์ฉํฉ๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์์ฒญํ๋ฉด ์๋ฒ๋ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ ์บ์์ ์ํธ ์์ฉํ๋ฉฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฝ๊ณ , ์ฐ๊ณ , ์ ๋ฐ์ดํธํ๊ณ ํด๋ผ์ด์ธํธ์ ์๋ต์ ๋ฐํํฉ๋๋ค.
๋ค์ ์ ์์๋ ์ด๋ฌํ ๊ธฐ์กด์ ๊ตฌ์กฐ์ ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ์ ๊ตฌ์กฐ๋ฅผ ๋น๊ตํด ๋ณด๊ฒ ์ต๋๋ค.
์ด๋๋ผ์ ์ํคํ ์ฒ
์ ๊ทธ๋ฆผ์์ ์ ์ ์๋ฏ์ด, ๋ชจ๋ ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ฒด ์ธ์คํด์ค์ ํต์ ํฉ๋๋ค. ๋ชจ๋ ํด๋ผ์ด์ธํธ๊ฐ ์ฐ๊ฒฐํ ์ค์ ์๋ฒ๊ฐ ์์ต๋๋ค. ์ฆ, ์ด์์ ์ธ ํ์ค์ํ ์ธ๊ณ์์, Dapp(ํ์ค์ํ ์ ํ๋ฆฌ์ผ์ด์ )๊ณผ ์ํธ ์์ฉํ๋ ค๋ ๋ชจ๋ ์ฌ๋์ ์ปดํจํฐ/์ค๋งํธ์ฝ ๋ฑ์ ๊ธฐ๊ธฐ์ ์คํ์ค์ธ ๋ธ๋ก์ฒด์ธ์ ์ ์ฒด ๋ณต์ฌ๋ณธ์ด ํ์ํฉ๋๋ค. ์ฆ, ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ๋ ค๋ฉด ๋จผ์ ์ ์ฒด ๋ธ๋ก์ฒด์ธ์ ๋ค์ด๋ก๋ํ ๋ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ฌ์ฉ์ ์์ํด์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ฌ๋ ์ธ๊ณ๋ ์ด์์ ์ธ ์ธ๊ณ๊ฐ ์๋๊ธฐ์, ๋ชจ๋ ์ฌ๋๋ค์ด ์ด๋ฌํ ์ฑ์ ์ฌ์ฉํ๊ธฐ ์ํด ๋ธ๋ก์ฒด์ธ ์๋ฒ๋ฅผ ์ด์ํ ๊ฒ์ผ๋ก ๊ธฐ๋ํ๋ ๊ฒ์ ๋ฌด๋ฆฌ์ ๋๋ค. ํ์ง๋ง ํ์ค์ํ์ ๋ฐฐ๊ฒฝ์ ๋จ์ผ/์ค์ํ๋ ์๋ฒ์ ์์กดํ์ง ์๋ ๊ฒ์ ๋๋ค. ๊ทธ๋์ ์ ์๋ ๋ช ๊ฐ์ง ์๋ฃจ์ ( ๋ธ๋ก์ฒด์ธ ์๋ฒ ํธ์คํ ์๋น์ค , Metamask ๋ฑ)๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ ๋์คํฌ์ RAM์ ๋ง์ด ์ฌ์ฉํ์ง ์์๋ ๋ธ๋ก์ฒด์ธ์ ์ ์ฒด ๋ณต์ฌ๋ณธ์ ๋ค์ด๋ก๋ํ๊ณ ์คํํ๋ฉด์๋ ํ์ค์ํ๋ฅผ ํผ์ํ์ง ์์ ์ ์์ต๋๋ค. ์์ผ๋ก์ ์ด์ด์ง๋ ๋ ์จ์์ ์ด๋ฌํ ๋ฐฉ์์ ๊ฒฝํํ ๊ฒ์ ๋๋ค. ์, ๊ทธ๋ผ ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ์ด ์ ํํ ๋ฌด์์ผ๊น์? ๋ธ๋ก์ฒด์ธ์๋ 2๊ฐ์ง ๊ตฌ์ฑ ์์๊ฐ ์์ต๋๋ค:
๋ฐ์ดํฐ๋ฒ ์ด์ค
๋คํธ์ํฌ์ ๋ชจ๋ ํธ๋์ญ์ ์ ๋ธ๋ก์ฒด์ธ์ ์ ์ฅ๋ฉ๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฐฐํฌํ๋ ํ์๋ ํธ๋์ญ์ ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ํ๋ณด์ ํฌํ๋ฅผ ์ํ ํฌํ ์์ฉ ํ๋ก๊ทธ๋จ์ ์๋ก ๋ค๋ฉด ํ๋ํ๋์ ํฌํ๊ฐ ํธ๋์ญ์ ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ์ด๋ฌํ ๋ชจ๋ ํธ๋์ญ์ ์ ๊ณต๊ฐ๋๋ฉฐ ๋๊ตฌ๋ ๋ณผ ์ ์๊ณ ํ์ธํ ์ ์์ต๋๋ค. ์ด ๋ฐ์ดํฐ๋ ์ ๋๋ก ์กฐ์ํ ์ ์์ต๋๋ค. ๋คํธ์ํฌ์ ๋ชจ๋ ๋ ธ๋์ ๋์ผํ ๋ฐ์ดํฐ ๋ณต์ฌ๋ณธ์ด ์๋์ง ํ์ธํ๊ณ , ์ ํจํ์ง ์์ ๋ฐ์ดํฐ๊ฐ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ก๋์ง ์๋๋ก ํ๊ธฐ ์ํด ์ด๋๋ฆฌ์์ ์์ ์ฆ๋ช (Proof of Work)์ด๋ผ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ๋ฅผ ๋ณดํธํฉ๋๋ค. (http://ethereum.stackexchange.com/questions/14/what-proof-of-work-function-does-ethereum-use)
์ฝ๋
๋ธ๋ก์ฒด์ธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์๋ ํธ๋์ญ์ ์ ์ ์ฅํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ํฌํ ์์ฉ ํ๋ก๊ทธ๋จ์์ ํฌํ์ ๋ํ ๋ชจ๋ ๋ ผ๋ฆฌ๋ ์ด๋์ ๋ด๊ธธ๊น์? ์ด๋๋ฆฌ์ ์ธ๊ณ์์๋ ์๋ฆฌ๋ํฐ(Solidity)๋ผ๋ ์ธ์ด๋ก ๋ ผ๋ฆฌ/์์ฉ ํ๋ก๊ทธ๋จ ์ฝ๋(์ค๋งํธ ๊ณ์ฝ)๋ฅผ ์์ฑํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์๋ฆฌ๋ํฐ ์ปดํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋๋ฆฌ์ ๋ฐ์ดํธ์ฝ๋(Ethereum Byte Code)๋ก ์ปดํ์ผํ ๋ค์ ํด๋น ๋ฐ์ดํธ ์ฝ๋๋ฅผ ๋ธ๋ก์ฒด์ธ์ ๋ฐฐํฌํฉ๋๋ค (์ค๋งํธ ๊ณ์ฝ ์์ฑ์ ์ฌ์ฉํ ์ ์๋ ๋ค๋ฅธ ์ธ์ด๊ฐ ์กฐ๊ธ ์๊ธด ํ์ง๋ง, ๊ฐ์ฅ ์ธ๊ธฐ ์๊ณ ์๋์ ์ผ๋ก ์ฌ์ด ๊ฒ์ด ์๋ฆฌ๋ํฐ). ๋ฐ๋ผ์, ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ์ ํธ๋์ญ์ ์ ์ ์ฅํ ๋ฟ ์๋๋ผ ์ค๋งํธ ๊ณ์ฝ ์ฝ๋๋ฅผ ์ ์ฅํ๊ณ ์คํํฉ๋๋ค.
์ฆ, ๊ธฐ๋ณธ์ ์ผ๋ก ๋ธ๋ก์ฒด์ธ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ฝ๋๋ฅผ ์ ์ฅํ๋ฉฐ ์ฝ๋๋ฅผ EVM (Ethereum Virtual Machine)์์ ์คํํฉ๋๋ค. ์ดํ ์ด์ด์ง๋ ์ ์์ ๋ฐ์ดํธ์ฝ๋ ๋ฐ EVM์ ๋ํด ์์ธํ ๋ฐฐ์ธ ์์ ์ ๋๋ค. ์ด๋๋ฆฌ์์๋ ์น ๊ธฐ๋ฐ Dapp์ ๋ง๋ค๊ธฐ ์ํด web3.js๋ผ๋ ํธ๋ฆฌํ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ต๋๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ธ๋ก์ฒด์ธ ๋ ธ๋์ ์ฐ๊ฒฐ๋ฉ๋๋ค. ๋ฐ๋ผ์ react.js, angular.js ๋ฑ์ ์ ๋ช ํ js ํ๋ ์์ํฌ์ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํฌํจ์ํฌ ์๋ ์์ต๋๋ค.
์ค์ํ ์ด๋๋ฆฌ์ ๊ด๋ จ ๊ฐ๋ ๋ค
์ค๋งํธ ์ปจํธ๋ํธ(Smart Contracts)
์ ์ ์์๋ ์๋ฆฌ๋ํฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ฑํ๊ณ ์ด๋ฅผ ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํ์ต๋๋ค. ์ด๋๋ฆฌ์์์๋ ์ด๋ฌํ ์์ฉ ํ๋ก๊ทธ๋จ์ โ์ค๋งํธ ๊ณ์ฝโ์ด๋ผ๊ณ ํฉ๋๋ค. ์ ์ด๋ฌํ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ค๋งํธ ๊ณ์ฝ์ด๋ผ๊ณ ๋ถ๋ฅด๋์ง ๊ถ๊ธํ๊ฒ ์ฃ ? ์ผ๋ฐ์ ์ผ๋ก ๊ณ์ฝ์ ๋ฒ์ผ๋ก ์งํ๋๋ ๋ ๋น์ฌ์, ๋๋ ์ฌ๋ฌ ๋น์ฌ์ ๊ฐ์ ์๋ฉด ํฉ์์ ๋๋ค. ๊ณ์ฝ์๋ฅผ ์์ฑํ์ฌ ์ฝ๋๋ก ๋ณํํ๊ณ ๋ธ๋ก์ฒด์ธ์ ๋ฐฐํฌํ๋ฉด ๋์งํธ ๊ณ์ฝ์ด ์ฒด๊ฒฐ๋ฉ๋๋ค. ๋ธ๋ก์ฒด์ธ์ ์๋ ์ด ์ฝ๋์ ์ฅ์ ์ ๋น์ฌ์ ๊ฐ์ ํฉ์๋ฅผ ๊ฐํํ ์ ์๋ค๋ ์ ์ ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก โ์ค๋งํธ ๊ณ์ฝโ์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ์ด์ ์ ๋๋ค. ์ด ์ฝ๋๊ฐ ์ด๋ป๊ฒ ๊ณ์ฝ์ ์ํํ ์ ์์๊น์? ์ผ๋จ ๊ณ์ฝ์ด ๋ธ๋ก์ฒด์ธ์ ๋ฐฐํฌ๋๋ฉด ์ด๋ฅผ ์ค์งํ๊ฑฐ๋ ์์ ํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ๊ณ์ฝ์ด ์ํ๋๋ ๋ฐฉ์์ ๋๋ค. ์ดํด๋ฅผ ์ํด ๊ฐ๋จํ ์๋ฅผ ์ดํด ๋ณด๊ฒ ์ต๋๋ค.
- ์์
Crowdsale ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ ค๊ณ ํ๋ค๊ณ ๊ฐ์ ํด ๋ด ์๋ค. ์ ํ์ ๋ง๋ค๊ธฐ ์ํด 10,000๋ฌ๋ฌ๋ฅผ ๋ชจ์ผ๊ณ ์ ํ๋ ์ ์์๊ฐ ์์ผ๋ฉฐ, ์ด ์ ํ์ ๊ด์ฌ์ด ์๊ณ ์ ๋ถ๋ก ๊ธฐ๊บผ์ด ์ง๋ถํ ์ ์ฌ ๊ณ ๊ฐ์ด ์์ต๋๋ค. ๊ณ์ฝ์ ๊ฐ ๊ณ ๊ฐ์ด ๋ณด๋ด๋ ์ก์๊ฐ $10 - $10,000 ์ฌ์ด์ ํด๋นํ๋ฉด ์๋ นํ ๊ฒ์ด๊ณ , ๋ชฉํ๊ฐ ๋ฌ์ฑ๋๋ค๋ฉด ๊ทธ ๋์ ์ ์์์๊ฒ ์ก๊ธ๋ฉ๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ, ๊ธฐ๋ถ์์๊ฒ ๋์ด ๋๋ ค ๋ณด๋ด์ง๋๋ค. ์ด๋ ์ค๋งํธ ๊ณ์ฝ์ ์ฌ์ฉํ์ฌ ์ ์์์ ์ง์ง์ ๊ฐ์ ๊ณ์ฝ์ ์ํํ๋ ์ด์์ ์ธ ์ฌ์ฉ ์ฌ๋ก์ ๋๋ค. ์ค์ํ๋ ์์ฉ ํ๋ก๊ทธ๋จ์์๋ ์ด ๋ ผ๋ฆฌ๋ฅผ ๊ตฌํํ๋ ๊ฒ์ ๊ฐ๋จํฉ๋๋ค. ์ค๋งํธ ๊ณ์ฝ์์ ์ด๋ฅผ ๊ตฌํํ ๋์ ์ฅ์ ์ ์๋์ ๊ฐ์ต๋๋ค.
- ๋ชจ๋ ์ฐธ์ฌ์๊ฐ ๋ณด๋ธ ๋์ด ์ค๋งํธ ๊ณ์ฝ์ ๋ด๊ฒจ ์์ต๋๋ค. ์ฐธ์ฌ์๋ ์ ์์๋ ๊ทธ ๋์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๋ชฉํ์ ๋๋ฌํ์๋ง์ ๋์ด ์ ์์์๊ฒ ๋ณด๋ด์ง๋๋ก ์ฝ๋๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค.
- ํน์ ์๊ฐ ๋ด์ ๋ชฉํ์ ๋๋ฌํ์ง ๋ชปํ๋ฉด ๋ชจ๋ ์ฐธ๊ฐ์์๊ฒ ํ๋ถ์ ์ํํ ์ ์๋๋ก ์ฝ๋๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค.
- ์ด ์ฝ๋๋ ํ๋ฒ ๋ธ๋ก์ฒด์ธ์ ๋ฐฐํฌ๋ ํ์๋ ์กฐ์ํ ์ ์์ต๋๋ค.
์ด๋, ๊ทธ๋ฆฌ๊ณ ์ด๋์ ๋จ์
๊ฐ ๊ตญ๊ฐ๋ง๋ค USD, INR, RNB, GBP, EUR ๋ฑ๊ณผ ๊ฐ์ ์์ฒด ํตํ๊ฐ ์๋ฏ์ด, ๊ฐ ๋ธ๋ก์ฒด์ธ์๋ ์์ฒด ํตํ๊ฐ ์์ต๋๋ค. ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ํตํ๋ฅผ ์ด๋(Ether)๋ผ๊ณ ํฉ๋๋ค. ์ด๋๋ฅผ USD ๋๋ EUR์ ๊ฐ์ ๋ค๋ฅธ ํํ๋ก ๊ตํํ ์ ์๋ ๊ฑฐ๋์๋ ์์ต๋๋ค. ์ด๋์ ํ์ฌ ๊ฐ๊ฒฉ์ ์ด๊ณณ ์์ ํ์ธํ ์ ์์ต๋๋ค.ํ์ค ์ธ๊ณ์ ํตํ์๋ ๋ค์ํ ๋จ์๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ฏธ๊ตญ 1๋ฌ๋ฌ๋ 100์ผํธ์ด๋ฉฐ ํ๋(1์ผํธ), ๋์ผ(5์ผํธ), ์ญ ์ผํธ(10์ผํธ), ์ฟผํฐ(25์ผํธ)์ ๊ฐ์ ๋ค์ํ ๋จ์๊ฐ ์์ต๋๋ค. ๊ตญ๊ฐ ๋ฐ ํตํ์ ๋ฐ๋ผ ๋ค์ํ ๋จ์๊ฐ ์์ ์ ์์ต๋๋ค. ์ด๋์๋ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋ค์ํ ๋จ์ ์์ต๋๋ค. ๊ทธ ์ค์์ ๋ ๊ฐ์ง, ์ด๋์ ์จ์ด๋ง ์ ๊ธฐ์ตํด๋ ๋ฉ๋๋ค. ์จ์ด๋ ๊ฐ์ฅ ๋ฎ์ ๋จ์๋ก, ์ค๋งํธ ๊ณ์ฝ์์์ ์ค์ ๋ก ์ฐ์ด๋ ๋จ์์ ๋๋ค.
์ฃผ์(Addresses)
ํ์ด์ค๋ถ๊ณผ ๊ฐ์ ์น์ฌ์ดํธ์ ๋ก๊ทธ์ธํ๋ ค๋ฉด ์ผ๋ฐ์ ์ผ๋ก ์ด๋ฉ์ผ, ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋น์ ์ ์ฌ์ฉ์ ์ด๋ฆ์ ํ์ด์ค๋ถ์์ ์ ๋ถ์ฆ์ ์คํ๋ฉฐ, ์ฌ์ฉ์ ์ด๋ฆ / ์ํธ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ด์ค๋ถ ๋ก๊ทธ์ธ์ ์ํ ์ธ์ฆ์ ๊ฑฐ์น๊ฒ ๋ฉ๋๋ค.์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ์์ ์ฌ์ฉ์์ ์ ๋ถ์ฆ์ ํด๋นํ๋ ๊ฒ์ ์ฃผ์์ ๋๋ค. ์ด๋๋ฆฌ์ ์ฃผ์๋ 001d3f1ef827552ae1114027bd3ecf1f086ba0f9 ๊ณผ ๊ฐ์ ํํ๋ฅผ ๊ฐ์ง๋๋ค. ๊ฐ ์ฃผ์์๋ ํด๋น ๊ฐ์ธํค๊ฐ ์์ต๋๋ค. ๊ฐ์ธํค๋ ์ฌ์ฉ์๊ฐ ์๊ณ ์๋ ์ผ์ข ์ ์ํธ๋ก ๊ฐ์ฃผํ ์ ์์ต๋๋ค. ๋ธ๋ก์ฒด์ธ๊ณผ ์ํธ ์์ฉํ๋ ค๋ฉด ์ด ์ฃผ์ + ๊ฐ์ธํค ์์ด ํ์ํฉ๋๋ค. ๋ค์์ ๋ธ๋ก์ฒด์ธ๊ณผ ์ด๋๋ฆฌ์์ ์ดํดํ๊ธฐ ์ํด ์๊ธฐํด์ผ ํ ๋ช ๊ฐ์ง ํต์ฌ ์ฌํญ์ ๋๋ค.
- ์ด๋๋ฆฌ์ ์ฃผ์๋ ๊ณต๊ฐ๋์ด ์์ผ๋ฉฐ ์ ์ธ๊ณ ๋๊ตฌ์๋ ๊ณต์ ํ ์ ์์ต๋๋ค.
- ๊ฐ์ธํค๋ ์ ๋ ๋ค๋ฅธ ์ฌ๋๊ณผ ๊ณต์ ํด์๋ ์๋ฉ๋๋ค.
- ์ฃผ์ + ๊ฐ์ธํค๋ ๊ทธ ์ด๋ค ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ์ ์ฅ๋์ง ์์ต๋๋ค. ์ฌ์ฉ์๋ง์ด ์ด ์ ๋ณด๋ฅผ ํต์ ํ ์ ์์ต๋๋ค.
์ด๋๋ฆฌ์ ์ฃผ์๋ ์ด๋ป๊ฒ ์์ฑ๋๋๊ฐ?
์๋์ ์๋ 001d3f1ef827552ae1114027bd3ecf1f086ba0f9 ๋ผ๋ ์ฃผ์๊ฐ ์ด๋ป๊ฒ ์์ฑ๋๋์ง์ ๋ํ ๊ฐ๋จํ ์ค๋ช
์
๋๋ค. ๊ณต๊ฐํค ์ํธํ์ ์๋ฆฌ๋ฅผ ์๊ณ ์๋ค๋ ๊ฐ์ ํ์ ์์ฑ๋ ๋ด์ฉ์ด๋ฉฐ, ์์ธํ ๋ด์ฉ์ ๋ค์ ๋งํฌ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
https://en.wikipedia.org/wiki/Public-key_cryptography
- ๊ฐ์ธํค ์์ฑ k(private key) = f8f8a2f43c8376ccb0871305060d7b27b0554d2cc72bccf41b2705608452f315
- ๊ฐ์ธํค๋ก๋ถํฐ ๊ณต๊ฐํค ์์ฑ K(public key) = 6e145ccef1033dea239875dd00dfb4fee6e3348b84985c92f103444683bae07b83b5c38e5e2b0c8529d7fa3f64d46daa1ece2d9ac14cab9477d042c84c32ccd0
- keccak256 ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๊ณต๊ฐํค์ ํด์๊ฐ ๊ณ์ฐ Keccak256(K) = 2a5bc342ed616b5ba5732269001d3f1ef827552ae1114027bd3ecf1f086ba0f9001d3f1ef827552ae1114027bd3ecf1f086ba0f9
- ์์ฑ๋ ํด์๊ฐ์ ๋ค์ชฝ 20๋ฐ์ดํธ๋ฅผ ์ทจํ์ฌ ์ด๋๋ฆฌ์ ์ฃผ์ ์์ฑ 0x001d3f1ef827552ae1114027bd3ecf1f086ba0f9
๊ณ์ (Accounts)
์ด๋๋ฆฌ์ ์ฃผ์์ ๊ฐ์ธํค์ ์กฐํฉ์ ๊ณ์ (account)์ด๋ผ๊ณ ํฉ๋๋ค. ์ด๋๋ฆฌ์ ๊ณ์ ์ ์ด๋ ์๊ณ ๋ฅผ ๋ณด์ ํ๊ณ ํธ๋์ญ์ ์ ์ ์กํ ์ ์์ผ๋ฉฐ, 2๊ฐ์ง ์ ํ์ด ์์ต๋๋ค.
- ์ธ๋ถ ์์ ๊ณ์ (EOA)
์์์ ์ธ๊ธํ, ๊ณต๊ฐ ์ฃผ์์ ๊ฐ์ธํค์ ์กฐํฉ์ ๋งํฉ๋๋ค. ์ธ๋ถ ์์ ๊ณ์ , ๋๋ ์ธ๋ถ ๊ณ์ ์ ์ฌ์ฉํ๋ฉด,
- ๋ค๋ฅธ ๊ณ์ ๊ณผ ์ด๋๋ฅผ ์ก์์ ํ๊ณ
- ์ค๋งํธ ์ปจํธ๋ํธ์ ํธ๋์ญ์ ์ ๋ณด๋ผ ์ ์์ต๋๋ค.
- ์ปจํธ๋ํธ ๊ณ์
์ปจํธ๋ํธ ๊ณ์ ์๋ ์์ํ๋ ๊ฐ์ธํค๊ฐ ์์ต๋๋ค. ์ด๋ฌํ ๊ณ์ ์ ์ค๋งํธ ๊ณ์ฝ์ ๋ธ๋ก์ฒด์ธ์ ๋ฐฐํฌํ ๋ ์์ฑ๋ฉ๋๋ค. ์ปจํธ๋ํธ ๊ณ์ ๋์ ์ปจํธ๋ํธ(contract)๋ก๋ง ํ์๋๊ธฐ๋ ํฉ๋๋ค. ์ปจํธ๋ํธ(๊ณ์ )์ ๋ช ๊ฐ์ง ์ฃผ์ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋ค๋ฅธ ๊ณ์ ๊ณผ ์ด๋๋ฅผ ์ก์์ ํ๊ณ (EOA์ ๋์ผ)
- ๊ด๋ จ๋ ์ฝ๋๋ฅผ ๋ด๊ณ (EOA์ ๋ค๋ฆ)
- EOA๋ ๋ค๋ฅธ ์ปจํธ๋ํธ์ ํธ์ถ์ ๋ฐ์ ํธ๋์ญ์ ์ ๋ฐ์์ํต๋๋ค.
์ง๊ฐ(Wallets)
์ง๊ฐ์ ์ด๋๋ฆฌ์ ๊ณ์ ์ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ํํธ์จ์ด ํ๋ฌ๊ทธ์ธ ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ์ง๊ฐ์ ํตํด ์ฌ๋ฌ ๊ณ์ ์ ๊ด๋ฆฌํ๊ณ , ํธ๋์ญ์ ์ ์๋ช ํ๊ณ , ์๊ณ ์ ์ถ์ ํ๋ ๋ฑ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ง๊ฐ์ ํฌ๊ฒ 2 ๊ฐ์ง ์ ํ์ผ๋ก ๋ถ๋ฅํ ์ ์์ต๋๋ค.
- ๋น๊ฒฐ์ ์ ์ง๊ฐ: ์ด๊ฒ์ ์์์ ๊ฐ์ธํค/๊ณต๊ฐํค ์์ ์ฌ์ฉํ๋ ์ ํ์ ์ง๊ฐ์ ๋๋ค. ๊ฐ์ธํค/๊ณต๊ฐํค ์์ ๋ง์ด ์์ฑํ ์ ์์ง๋ง ๊ฐ ํค ์ ๊ฐ์๋ ์๋ฌด๋ฐ ์๊ด ๊ด๊ณ๊ฐ ์์ต๋๋ค.
- ๊ฒฐ์ ๋ก ์ ์ง๊ฐ: ์ด ์ ํ์ ์ง๊ฐ์์๋ ๋ชจ๋ ํค๊ฐ ์๋(seed)๋ผ๋ ๋จ์ผ ์์ ์ง์ ์์ ํ์๋ฉ๋๋ค. ์ด ์๋๋ ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ์ ๋ณด๋ฅผ ์๊ตฌํ์ง ์๊ณ ์ง๊ฐ์ ์ฝ๊ฒ ๋ฐฑ์ ํ๊ณ ๋ณต์ํ ์ ์๊ฒ ํด์ฃผ๋ฉฐ, ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๊ฐ์ธํค๋ฅผ ๋ชจ๋ฅธ ์ฑ ๊ณต๊ฐํค๋ฅผ ์์ฑํ ์ ์๊ฒ ํด ์ค๋๋ค. ์๋๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ๋์ด ์ฝ์ ์ ์๋ ๋๋ชจ๋ ๋ฌธ๊ตฌ ๋จ์ด๋ก ๋ฐฐ์ด๋ฉ๋๋ค. ๋ฉํ๋ง์คํฌ(metamask)์ ๊ฐ์ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋ค๋ฉด ์ฒ์ ์ค์นํ์ ๋ 12๊ฐ ๋จ์ด๋ก ์ด๋ฃจ์ด์ง ์๋๋ฅผ ์ ์ฅํ๋ผ๋ ์์ฒญ์ ๋ฐ์์ ๊ฒ์ ๋๋ค.
๊ฐ์ค, ๊ฐ์ค ๊ฐ๊ฒฉ, ๊ฐ์ค ํ๋
๊ฐ์ค(Gas)
์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ์ ์ค๋งํธ ๊ณ์ฝ์ ๋ฐฐํฌํ๊ณ ํธ๋์ญ์ ์ ์คํํ๊ธฐ ์ํด์๋ ๊ฐ ์ํธ ์์ฉ๊ณผ ๊ด๋ จ๋ ๋น์ฉ์ด ์๋ชจ๋ฉ๋๋ค. ๋ธ๋ก์ฒด์ธ์์ ํธ๋์ญ์ ์ ์คํํ๋ ค๋ฉด ๋คํธ์ํฌ์ ์ฑ๊ตด์์๊ฒ ์ด๋๋ฅผ ์ง๋ถํด์ผ ํฉ๋๋ค.
๊ทธ๋ผ ํธ๋์ญ์ ์ ์ํด ์ง๋ถํ๋ ์ด๋์ ์์ ๋๊ฐ ๊ฒฐ์ ํ ๊น์? ์ด๋ ์ด๋๋ฆฌ์์ ์ต์ํ์ง ์์ ๋ง์ ๊ฐ๋ฐ์๋ค์ด ํผ๋์ค๋ฌ์ํ๋ ๋ถ๋ถ์ด๊ธฐ๋ ํฉ๋๋ค. ์ฌ๊ธฐ์ ๋ํ ๋ต์ ์ด๋๋ฆฌ์ ํฉ์์ ๊ธฐ์ฌ๋์ด ์๋๋ฐ, ํธ๋์ญ์ ์ ์ผ๋ง๋ ๋ง์ โ๋จ์ ์ฐ์ฐโ์ด ํฌํจ๋๋์ง์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ์๋ฅผ ๋ค์ด ํธ๋์ญ์ ์ด ๋จ์ํ ๋ ๊ฐ์ ์ซ์๋ฅผ ๋ํ๋ ์์ ์ด๋ผ๋ฉด ์ด๋ 3๊ฐ์ ๋จ์ ์ฐ์ฐ์ ํด๋นํฉ๋๋ค. ๊ณฑ์ ์ด๋ผ๋ฉด 5๊ฐ์ ๋จ์ ์ฐ์ฐ์ ํด๋นํฉ๋๋ค. ์ด๋ฌํ ์ฐ์ฐ์ ๋จ์๋ฅผ ๊ฐ์ค(Gas)๋ผ๊ณ ํฉ๋๋ค.
๊ฐ์ค ๊ฐ๊ฒฉ(Gas Price)
๊ฐ ํธ๋์ญ์ ์ด ์ผ๋ง๋ ๋ง์ ๊ฐ์ค๋ฅผ ํ์๋ก ํ๋์ง ์์๋, ์ค์ ๋ก ์ฑ๊ตด์์๊ฒ ์ง๋ถํด์ผ ํ๋ ์ด๋์ ์์ ์์ง ์ ์ ์์ต๋๋ค. ์ด๊ฒ์ ๊ฒฐ์ ํ๋ ์์๊ฐ ๊ฐ์ค ๊ฐ๊ฒฉ(Gas price)์ ๋๋ค. ์ฌ๋ฏธ์๋ ์ ์, ํธ๋์ญ์ ์์ฑ์๊ฐ ์ํ๋ ๊ฐ์ค ๊ฐ๊ฒฉ์ ์ค์ ํ ์ ์๋ค๋ ์ ์ ๋๋ค. ์๋ฅผ ๋ค์ด,โ๊ฐ์ค๋น 3Gwei๋ฅผ ์ง๋ถํ ์ฉ์๊ฐ ์์ต๋๋คโ๋ผ๊ณ ์ค์ ํ๋ ์์ ๋๋ค. ๋น์ ์ ํธ๋์ญ์ ์ด 100000๊ฐ์ค๋ฅผ ์๋นํ๊ณ ๊ฐ์ค ๊ฐ๊ฒฉ์ 3Gwei๋ก ์ค์ ํ๋ฉด, ํด๋น ํธ๋์ญ์ ์ ๋ํ ์์๋ฃ๋ก 3000000Gwei๋ฅผ ์ง๋ถํ๊ฒ ๋ฉ๋๋ค.
์ค์ ํ ๊ฐ์ค ๊ฐ๊ฒฉ์ด ๋์์๋ก ํธ๋์ญ์ ์ด ๋ ๋นจ๋ฆฌ ์ฒ๋ฆฌ๋ฉ๋๋ค. ์ด๋ ๋๋ถ๋ถ์ ์ฑ๊ตด์๋ค์ด ๊ฐ์ค ๊ฐ๊ฒฉ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ํธ๋์ญ์ ์ ๋ถ๋ฅํ๊ณ ๊ฐ์ค ๊ฐ๊ฒฉ์ด ๋์ ํธ๋์ญ์ ์ ์ ํํ์ฌ ๋ธ๋ก์ ํฌํจ์ํค๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ฐ๊ฒฉ์ ๋ฎ๊ฒ ์ฑ ์ ํด๋ ๊ฒฐ๊ตญ ํธ๋์ญ์ ์ด ๋ธ๋ก์ ํฌํจ๋๊ธฐ๋ ํ๊ฒ ์ง๋ง, ๊ทธ ๋๊ธฐ ์๊ฐ์ด ์๋นํ ๊ธธ์ด์ง ์ ์์ต๋๋ค.
๊ฐ์ค ํ๋(Gas Limit)
ํธ๋์ญ์ ์ด ์๋ชจํ๋ ๊ฐ์ค์ ์์ ์ ํํ๊ฒ ํ์ ํ๋ ๊ฒ์ ๋งค์ฐ ์ด๋ ต์ต๋๋ค. ์ฌ์ฉ์ ์ ์ฅ์์๋ ์๋ฌด ์๊ฐ ์์ด ํธ๋์ญ์ ์ ์ ์กํ๋ค๊ฐ ์๋ฐฑ ๋ฌ๋ฌ ์ด์น์ ์ด๋๋ฅผ ์์๋ฃ๋ก ์๋ชจํ๊ณ ์ถ์ง๋ ์์ ๊ฒ๋๋ค. ์ฌ์ฉ์๋ ์ด ์ํฉ์ ํผํ๊ธฐ ์ํด, ํธ๋์ญ์ ์ ์คํํ๊ธฐ ์ํด ์ฌ์ฉํ ๊ฐ์ค์ ์ต๋ ๊ธ์ก์ ๋ํ๋ด๋ ๊ฐ์ค ํ๋(Gas Limit)๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
๊ฐ์ค ํ๋๋ฅผ ๋ธ๋ก ๊ฐ์ค ํ๋(Block Gas Limit)๊ณผ ํผ๋ํ๋ฉด ์ ๋ฉ๋๋ค. ๋ธ๋ก ๊ฐ์ค ํ๋๋ ์ด๋๋ฆฌ์์ ๊ฐ ๋ธ๋ก์ ์ ์ฉ๋๋ ์ต๋ ์บก์ ๋๋ค. ํ์ฌ ์ด๋๋ฆฌ์์ ๋ธ๋ก์ ๊ฐ์ค ์ด์ก์ด 800๋ง ์ด๋ด์ ๋ฒ์์์๋ง ํธ๋์ญ์ ์ ํฌํจํ ์ ์์ต๋๋ค. ๊ฐ ๋ธ๋ก์ ๋ํด ๊ฐ์ค ์ ํ์ด ์๋ ์ด์ ๋, ๋๊ตฐ๊ฐ๊ฐ ๋ฌดํ ๋ฃจํ๋ฅผ ์คํํ ์ ์๋๋ก ํ๊ธฐ ์ํจ์ ๋๋ค. ๋ฌดํ ๋ฃจํ๊ฐ ๋ฐ์ํ๋ฉด ํธ๋์ญ์ ์คํ์ด ์๋ฃ๋์ง ์์ ๋ธ๋ก ์ฑ๊ตด์ด ๋ฐ์ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ฐ์ดํธ์ฝ๋
์ค๋งํธ ๊ณ์ฝ ์ฝ๋๋ ๋๊ฐ ์๋ฆฌ๋ํฐ(Solidity)์ ๊ฐ์ ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์์ฑ๋ฉ๋๋ค. ์ด ์ฝ๋๋ ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ์ ๋ฐฐํฌ๋๋ EVM ๋ฐ์ดํธ์ฝ๋๋ก ์ปดํ์ผ๋ฉ๋๋ค. ์ด๊ฒ์ ์ฝ๋๊ฐ JVM ๋ฐ์ดํธ์ฝ๋๋ก ๋ณํ๋๋ ์๋ฐ ๋ฑ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋งค์ฐ ์ ์ฌํฉ๋๋ค. ์ด๋๋ฆฌ์์ ๋ฐํ์ ํ๊ฒฝ์ ๋ฐ์ดํธ์ฝ๋๋ง์ ์ดํดํ๊ณ ์คํํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ค๊ณ์ ์ด์ ์ค ํ๋๋ ๊ฐ๋ฐ์๊ฐ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋งํธ ๊ณ์ฝ์ ๊ตฌํํ ์ ์๋ ์ต์ ์ ์ ๊ณตํ๋ค๋ ์ ์ ๋๋ค. ํ์ฌ ํ์ด์ฌ๊ณผ ์ ์ฌํ ๋ฐ์ดํผ(Vyper) ๋ฑ ๋ช๋ช ์ธ์ด๊ฐ EVM ๋ฐ์ดํธ์ฝ๋๋ก ์ปดํ์ผ๋ฉ๋๋ค. ํ๋ก๊ทธ๋จ ์ธ์ด ์ค๊ณ์ ์ ์ฅ์์๋ ์ด๋๋ฆฌ์ ํฉ์๋ฅผ ์ฐธ์กฐํ์ฌ ๋ ์์ ์ธ ์ด๋๋ฆฌ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๊ตฌํํ ์๋ ์์ต๋๋ค!
<์๋ฆฌ๋ํฐ ์ฝ๋="">  <๋ฐ์ดํธ ์ฝ๋="">  ### EVM(Ethereum Virtual Machine) ์ด๋๋ฆฌ์ ๊ฐ์ ๋จธ์ (Ethereum Virtual Machine, EVM)์ ๋จ์ํ์ง๋ง ๊ฐ๋ ฅํ, ํ๋ง ์์ ์ฑ์ ๊ฐ์ง 256๋นํธ ๊ฐ์ ๋จธ์ ์ผ๋ก์จ ๋๊ตฌ๋ ์์์ EVM ๋ฐ์ดํธ์ฝ๋๋ฅผ ์คํํ ์ ์์ต๋๋ค. EVM์ ์ด๋๋ฆฌ์ ํ๋กํ ์ฝ์ ์ผ๋ถ์ด๋ฉฐ, ์ด๋๋ฆฌ์ ์์คํ ์ ํฉ์ ์์ง์์ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. EVM์ ๋๊ตฌ๋ ์ ๋ขฐ๊ฐ ํ์์๋ ํ๊ฒฝ์์ ์์์ ์ฝ๋๋ฅผ ์คํํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ก ์์ ํ ๊ฒฐ์ ๋ก ์ ์ด๊ณ ์คํ ๊ฒฐ๊ณผ๊ฐ ๋ณด์ฅ๋ฉ๋๋ค. geth, parity ๋ฑ์ ์ด๋๋ฆฌ์ ํด๋ผ์ด์ธํธ๋ฅผ ์ค์นํ๊ณ ์คํํ๋ฉด EVM์ด ์์๋๊ณ , EVM์ด ํธ๋์ญ์ ์ ๋๊ธฐํ, ์ ํจ์ฑ ๊ฒ์ฌ ๋ฐ ์คํ์ ์์ํฉ๋๋ค. ## ์๊ณ ์์ด์ผ ํ ๊ฐ๋ฐ ๋๊ตฌ๋ค ### ๊ฒ์ค(Geth) / ํจ๋ฆฌํฐ(Parity) ํด๋ผ์ด์ธํธ #### Geth Geth๋ **์ด๋๋ฆฌ์ ์ฌ๋จ( )** [Ethereum Foundation](http://ethereum.org/) ์ด ์ ๊ณตํ๋ ๊ณต์ ํด๋ผ์ด์ธํธ ์ํํธ์จ์ด๋ก์จ, Go์ธ์ด๋ก ๊ฐ๋ฐ๋์์ต๋๋ค. Geth๋ฅผ ์ฒ์ ์์ํ๋ฉด ๋คํธ์ํฌ ๋ด์ ๋ค๋ฅธ ์ด๋๋ฆฌ์ ํด๋ผ์ด์ธํธ(๋ ธ๋node๋ผ๊ณ ๋ ๋ถ๋ฆผ)์ ์ฐ๊ฒฐํ๋ ์์ ์ ๋จผ์ ์์ํ๊ณ ๋ธ๋ก์ฒด์ธ์ ์ ์ฒด ์ฌ๋ณธ์ ๋ด๋ ค๋ฐ๊ฒ ๋ฉ๋๋ค. Geth๋ **๋ธ๋ก์ฒด์ธ์ ๋ณต์ฌ๋ณธ์ ์ต์ ์ํ๋ก ์ ์ง**ํ๊ธฐ ์ํด ๋์์์ด ๋ค๋ฅธ ๋ ธ๋์ ํต์ ํฉ๋๋ค. ๋ํ **๋ธ๋ก์ ์ฑ๊ตด**ํ๊ณ , ๋ธ๋ก์ฒด์ธ์ ํธ๋์ญ์ ์ ์ถ๊ฐํ๊ณ ๋ธ๋ก์ **ํธ๋์ญ์ ์ ๊ฒ์ฆ**ํ๋ฉฐ **ํธ๋์ญ์ ์ ์คํ**ํ ์๋ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ RPC๋ฅผ ํตํด ์ํธ์์ฉํ ์ ์๋ API๋ฅผ ๋ ธ์ถํ์ฌ ์๋ฒ ์ญํ ์ ํ๊ธฐ๋ ํฉ๋๋ค. ๋ธ๋ก์ฒด์ธ์ ์ฐ๊ฒฐํ ์ ์๋ **์๋ฐ์คํฌ๋ฆฝํธ ํด๋ผ์ด์ธํธ**(geth console)๋ ์์ต๋๋ค.  #### ํจ๋ฆฌํฐ ํจ๋ฆฌํฐ(Parity)๋ ์ด๋๋ฆฌ์ ํ๋กํ ์ฝ์ ๋ ๋ค๋ฅธ ๊ตฌํ์ฒด์ด๋ฉฐ, ๋ฌ์คํธ(Rust) ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๊ฐ๋ฐ๋์์ต๋๋ค. ํ์ฌ Parity Inc. ๋ผ๋ ๊ธฐ์ ์์ ์ด์ํ๊ณ ์์ต๋๋ค. ์ฌ์ค ์ด๋๋ฆฌ์ ๋คํธ์ํฌ์ ์ ์ํ ์ ์๋ ํด๋ผ์ด์ธํธ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ๋ ๊ธธ์ ๋๊ตฌ์๊ฒ๋ ์ด๋ ค ์์ผ๋ฉฐ, C++, ํ์ด์ฌ ๋ฐ ๋ค๋ฅธ ์ธ์ด๋ก ์์ฑ๋ ํด๋ผ์ด์ธํธ๋ ์์ต๋๋ค. ์ํ๋ค๋ฉด ์ด๋๋ฆฌ์ ํฉ์์ ์ฌ์์ ๋ฐ๋ผ ์์ ์ ํด๋ผ์ด์ธํธ๋ฅผ ๊ตฌํํ ์๋ ์์ต๋๋ค!  (A simple illustration of the Ethereum network with various clients connected to one another.) ### Web3.js web3js๋ ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ๊ณผ ์ํธ์์ฉํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ ๋ช ํ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ์ด ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ํ๋ก ํธ์๋ ํ๋ ์์ํฌ์์ ์ฌ์ฉ์๊ฐ ํ์ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด์ฉํ๊ฒ ํ ์ ์์ต๋๋ค. [์ด ์์ ](https://www.zastrin.com/simple-ethereum-voting-dapp.html) ๋ web3.js๋ฅผ ์ฌ์ฉํ์ฌ ๋ง๋ ๋ฐ๋ชจ, ํฌํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค. ๋ธ๋ก์ฒด์ธ๊ณผ ์ํธ์์ฉํ๋ ๋ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก [Ethers.js](https://github.com/ethers-io/ethers.js/) ๋ ์์ต๋๋ค. ### ํธ๋ฌํ(Truffle) Ruby on Rails, Django ๋ฑ๊ณผ ๊ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ํ ํ๋ ์์ํฌ์ฒ๋ผ, ํธ๋ฌํ์ dapps ๊ฐ๋ฐ์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํ๋ ์์ํฌ ์ค ํ๋๋ก์จ ๋ธ๋ก์ฒด์ธ์์ ์ค๋งํธ ๊ณ์ฝ์ ์ปดํ์ผํ๊ณ ๋ฐฐํฌํ๋ ๋ณต์ก์ฑ์ ๋ง์ด ์ถ์ํํฉ๋๋ค. ํธ๋ฌํ ํ๋ ์์ํฌ์ ๋ํ ์์ธํ ๋ด์ฉ์ [http://truffleframework.com/](http://truffleframework.com/) ์์ ํ์ธํ ์ ์์ต๋๋ค.**๋ณธ ๊ฐ์ข์ ๋ชจ๋ ๊ณผ์ ๋ ํธ๋ฌํ ํ๋ ์์ํฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.** ํธ๋ฌํ์ ๋์์ผ๋ก [Embark](https://github.com/embark-framework/embark) ๋ผ๋ ํ๋ ์์ํฌ๋ ์์ต๋๋ค. ### ๊ฐ๋์(Ganache) ๊ฐ๋ฐ์ ์ํด geth ๋๋ ํจ๋ฆฌํฐ ๊ฐ์ ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ ํธ๋์ญ์ ์ ์คํํ๋ ๋ฐ 15 ์ด์ฉ ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ ์๋๊ฐ ๋๋ ค์ง ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ผ๋ฐ์ ์ผ๋ก ๊ฐ๋ฐ ๋ชฉ์ ์ผ๋ก [๊ฐ๋์(ganache)](http://truffleframework.com/ganache/) ๋ผ๋ ๋ฉ๋ชจ๋ฆฌ ๋ด ๋ธ๋ก์ฒด์ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ganache-cli ๋๋ GUI ๋ฒ์ ์ ์ปค๋งจ๋ ๋ผ์ธ ๋ฒ์ ์ ์ค์นํ ์ ์์ต๋๋ค. ๊ฐ๋์์ ๋ ๋ค๋ฅธ ์ฅ์ ์ ํ ์คํธ๋ฅผ ์ํด 100๊ฐ์ ์ด๋๊ฐ ๋ฏธ๋ฆฌ ํ์ฌ๋ 10๊ฐ์ ํ ์คํธ ๊ณ์ ์ ํ๋ณดํ๊ฒ ๋๋ค๋ ์ ์ ๋๋ค. > npm install ganache-cli > node_modules/.bin/ganache-cli  ### ๋ฉํ๋ง์คํฌ(Metamask) ์ ์ฅ์์ ์ง๊ฐ์ ๋ํด ์ค๋ช ํ์ต๋๋ค. ์ด๋๋ฆฌ์ ์ง๊ฐ ์ค ๋ฉํ๋ง์คํฌ๋ ์ปค๋ฎค๋ํฐ์์ ์ฌ์ฉ๋๋ ๊ฐ์ฅ ์ธ๊ธฐ์๋ ์ง๊ฐ ์ค ํ๋์ ๋๋ค. [๋ฉํ๋ง์คํฌ ์น์ฌ์ดํธ](https://www.metamask.io/) ์์ ํฌ๋กฌ ํ๋ฌ๊ทธ์ธ์ผ๋ก ์ค์นํ ์ ์์ต๋๋ค. ์๋์์ ๋ฉํ๋ง์คํฌ๋ฅผ ์ค์นํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ฒฐ์ ๋ก ์ ์ง๊ฐ์ ๊ฐ๋ , ์๋ ๋ฌธ๊ตฌ์ ๊ฐ๋ ์ ๋ณด์ฌ์ฃผ๋ ๋น๋์ค๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ### ์ด๋์ค์บ(Etherscan) [์ด๋์ค์บ(Etherscan)](https://etherscan.io/) ์ ์ด๋์ค์บ ์ฌ์์ ์๋น์คํ๋ ๋ฌด๋ฃ ํ๋ก ํธ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก, ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ์ ์ํ ํธ๋ฆฌํ ํ์๊ธฐ์ ๋๋ค. ํผ๋ธ๋ฆญ ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ์ ๋ชจ๋ ์ฃผ์, ํธ๋์ญ์ ๊ณผ ๋ธ๋ก์ ๋ํ ์ ๋ณด๋ฅผ ์ด ์น์ฌ์ดํธ์์ ํ์ธํ ์ ์์ต๋๋ค. ์ค๋ฅธ์ชฝ ๊ทธ๋ฆผ์ ์ด๋๋ฆฌ์ ๋คํธ์ํฌ๋ฅผ ์๊ฐํํ ๊ฒ์ผ๋ก ๋คํธ์ํฌ ๋ด์์ ์ด๋์ค์บ์ ์์น๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ๋ค์ํ ํผ๋ธ๋ฆญ ๋คํธ์ํฌ์ ๋ํด ๋์๋๋ ๊ฐ๊ฐ์ ์ด๋์ค์บ ํ์ด์ง๊ฐ ์์ผ๋ฉฐ, ๋งํฌ๋ ์๋์ ๊ฐ์ต๋๋ค. ๋ฉ์ธ๋ท: [https://etherscan.io/](https://etherscan.io/) Ropsten: [https://ropsten.etherscan.io/](https://ropsten.etherscan.io/) Rinkeby: [https://rinkeby.etherscan.io/](https://rinkeby.etherscan.io/) Kovan: [https://kovan.etherscan.io/](https://kovan.etherscan.io/)  ### ๋ฆฌ๋ฏน์ค(Remix) ๋ฆฌ๋ฏน์ค๋ ์ค๋งํธ ๊ณ์ฝ์ ์ฝ๋ฉํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๋ธ๋ผ์ฐ์ IDE์ ๋๋ค. ํธ์ง๊ธฐ๋ก ์ฌ์ฉํ ์ ์์ ๋ฟ ์๋๋ผ, IDE๋ก ์ง์ ๋ค์ํ ๋คํธ์ํฌ์ ์ค๋งํธ ๊ณ์ฝ์ ์ปดํ์ผํ๊ณ , ๋ฐฐํฌํ๊ณ ์ํธ์์ฉํ ์ ์์ต๋๋ค. ๋ํ ๋ค์ํ ์ปดํ์ผ๋ฌ ๋ฒ์ ์ ์ ํํ๊ณ , ์ค๋งํธ ๊ณ์ฝ์ ๋๋ฒ๊น ํ๋ ๋ฑ ๋ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. [https://remix.ethereum.org](https://remix.ethereum.org/) ์์ IDE์ ์ ๊ทผํ ์ ์์ต๋๋ค. ๋ฆฌ๋ฏน์ค๋ ์๊ท๋ชจ ์ค๋งํธ ๊ณ์ฝ์ ์ ์ํ๊ฒ ํ ์คํธํ๊ธฐ์ ์ข์ง๋ง, ์ ๋ฌธ์ ์ธ ์ค๋งํธ ๊ณ์ฝ ๊ฐ๋ฐ์ ์ํด์๋ **Vim, Atom, Visual Studio ๋๋ Sublime**๊ณผ ๊ฐ์ ํธ์ง๊ธฐ๋ฅผ ๊ฐ๋ฐ์ฉ์ผ๋ก ์ฌ์ฉํ๊ณ ์ค๋งํธ ๊ณ์ฝ์ ์ปดํ์ผ ๋ฐ ๋ฐฐํฌ์๋ ํธ๋ฌํ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. - - - - [1] ์ธํ๋ฐ, ์ด๋๋ผ์ ์ ๋ฌธ ๋ฐ์ด๋ธ: ๋ชจ๋ ์ด๋๋ฆฌ์ ์ ๋ฌธ์๋ฅผ ์ํ์ฌ [๋ฌด๋ฃ ์ด๋๋ฆฌ์ ์ ๋ฌธ ๋ฐ์ด๋ธ: ๋ชจ๋ ์ด๋๋ฆฌ์ ์ ๋ฌธ์๋ฅผ ์ํ์ฌ - ์ธํ๋ฐ | ๊ฐ์](https://www.inflearn.com/course/ethereum-bible) ๋ฐ์ดํธ>์๋ฆฌ๋ํฐ>