์ค๋งํธ ๊ณ์ฝ (๋๋ ์ค๋งํธ ์ปจํธ๋)์ ๋ธ๋ก์ฒด์ธ์ ์์ฑ๋ ๋์งํธ ๊ณ์ฝ์ด๋ผ์ ์์๋ก ๋ณ๊ฒฝ๋ ์ ์๊ณ ๊ทธ ํจ๋ ฅ์ด ์๋์ผ๋ก ๊ฐ์ ๋ ์ ์๋ค. ์ด๋๋ฆฌ์ ๊ฐ๋ฐํ๊ฒฝ์ ํ์ํ Geth, Solidity๋ฅผ ์ค์นํ๋ค.
์ค๋งํธ ๊ณ์ฝ(Smart Contract)์ 1994๋ Nick Szabo๊ฐ ์ฒ์์ผ๋ก ์๊ฐํ ๊ฐ๋ ์ผ๋ก, ๋ง ๊ทธ๋๋ก '์ค๋งํธ'ํ๊ฒ ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ผ๋ก ์์ฑ๋ ๊ณ์ฝ์ ๋งํ๋ค.
๋ณธ๋ ๊ณ์ฝ์ด๋ **'์๋ฐฉ์ ์๋ฌด๋ ๊ถ๋ฆฌ์ ๋ํ ์ฝ์'**์ ์๋ฏธํ๊ณ ๋ณดํต ๋ฌธ์์ ์์ฌ์ง์ง๋ง, ์ค๋งํธ ๊ณ์ฝ์ ๋์งํธ ํ์์ ํ๋ก๊ทธ๋จ์ผ๋ก ์์ฑ๋์ด ๊ทธ ์ฝ์์ด ์๋์ผ๋ก ์ดํ๋ ์ ์๋ค.
์ด๋ฌํ ๊ฐ๋ ์ด ๋ฐ์ ํ์ฌ ํ์ฌ๋ ๋ธ๋ก์ฒด์ธ์ ์ฌ๋ ค์ ธ ์คํ๋๋ ๋จ๊ณ์ ์ด๋ฅด๊ณ ์๋ค. ํนํ ์ด๋๋ฆฌ์(Ethereum)์ ์ค๋งํธ ๊ณ์ฝ์ ๊ฐ๋ฐํ๊ณ ์คํํ๋ ๋ฐ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํ๋ซํผ ์ค ํ๋์ด๋ค.
๋ธ๋ก์ฒด์ธ์ ์ค๋งํธ ๊ณ์ฝ์ ์ผ๋จ ์ฌ๋ ค์ง๋ฉด ์์๋ก ๋ณ๊ฒฝ๋ ์ ์์ผ๋ฉฐ ๊ทธ ํจ๋ ฅ์ด ์๋์ผ๋ก ๊ฐ์ ๋ ์ ์๋ค๋ ํน์ง์ด ์๋ค.
์ค๋งํธ ๊ณ์ฝ์ ์์ค์ฝ๋๋ก ์์ฑ์ด ๋๊ณ ๋ธ๋ก์ฒด์ธ์ ์ฌ๋ ค์ง๊ธฐ ๋๋ฌธ์, ๊ณ์ฝ๊ณผ ๊ด๋ จ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ์ง๊ธ ๋ฑ ์ํํ ์ ์ฐจ๊ฐ ์์จ์ ์ผ๋ก ์ดํ๋ ์ ์๊ฒ ๋๋ค. ์์จ ์คํ ๊ณ์ฝ์ด๊ณ ์ ์์ ์ผ๋ก ์คํ๋๋ค๋ ๊ฒ์ ์๋์ ์ด๋ ์๋ฏธ๋ฅผ ๋ดํฌํ๊ณ ์์ด์, ์กฐ๊ฑด์ ๋ถํฉ๋์ง ์์์ ์ฒ๋ฆฌ๋์ง ์๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๋ฉด ์ค๋จ๋๊ฑฐ๋ ์ทจ์๋ ์ ์๋ค.
๋ํ ์ค๊ฐ๊ฑฐ๋์ ์์ด (์ค๋งํธํ๊ฒ) ๊ณ์ฝ์ ์ฒด๊ฒฐํ๊ณ ๊ทธ์ ์๋ฐ๋๋ ์๋ฌด๋ฅผ ๊ฐ์ ํ ์ ์๋ค.
๊ธ์ต๊ฑฐ๋, ๋ถ๋์ฐ ๊ณ์ฝ, ์ฃผ์ ๊ฑฐ๋ ๋ฑ ์ด๋ค ํํ ๊ฐ์น๊ฐ ์๋ ์ฌํ ๋ฑ์ ๊ฑฐ๋ํ๋ฉด์ ๋น์ฌ์ ๊ฐ์ ์๋ฉด์ผ๋ก ํ๋ ๊ณ์ฝ ๋์ ๋ถ์ฐ์์ฅ์ ๊ธฐ๋ก๋๋ค. ๋ํ ๊ฑฐ๋์ ์ฒด๊ฒฐ, ์ง๊ธ ๋ฐ ์กฐ๊ฑด์ ์ดํ ๋ฑ๋ ์ฌ๋์ ๊ฐ์ ์์ด ๊ฐ๋ฅํ๊ฒ ๋๋ค.
์ค๋งํธ ๊ณ์ฝ์ด๋ผ๋ ๋จ์ด๊ฐ ์ฒ์ ์ธ๊ธ๋ 1990๋ ์ด๋ฐ์ ๋ธ๋ก์ฒด์ธ์ด ์กด์ฌํ์ง ์๋ ์๊ธฐ์๋ค. 2009๋ ์ ๋นํธ์ฝ์ธ์ด ๋ฑ์ฅํ๊ณ , ๋นํธ์ฝ์ธ ์์์์ ๋ธ๋ก์ฒด์ธ์ด ์งํํด์ ์ค๋งํธ ๊ณ์ฝ์ ์คํํ๋ ํ๋ซํผ์ผ๋ก ํ์ฉ๋๊ณ ์๋ค.
๊ทธ๋ ๋ค๊ณ ๋นํธ์ฝ์ธ์ด ํ๋ซํผ์ด๋ผ๋ ๋ง์ ์๋๋ค! ๋นํธ์ฝ์ธ์ ๋ธ๋ก์ฒด์ธ์ ๊ฐ์ง๊ณ ์์ง๋ง ์ค๋งํธ ๊ณ์ฝ์ ๋ง๋ค ์๋ ์๋ค. ๋นํธ์ฝ์ธ์ ์ค๋งํธ ๊ณ์ฝ์ ํ๋ก๊ทธ๋๋ฐํ ์ ์๋ ํ๋ซํผ์ด ์๋๊ธฐ ๋๋ฌธ์ด๋ค.
๋นํธ์ฝ์ธ์์์ ๋ธ๋ก์ฒด์ธ์ ๊ฑฐ๋๊ฐ ๋ฐ์ํ๋ฉด ์ด๋ฅผ ์ ์ฅํ๊ณ , ์ฐธ์ฌ์ ๋๊ตฌ์๊ฒ๋ ๊ทธ ๊ฑฐ๋๊ฐ ๊ณต์ ๋๋ฉด์ ์์ ์ด ๋ถ๊ฐ๋ฅํ ์์ ํ ๋งค์ฒด์ธ ๊ฒ์ ๋ง๋ค. ๋ฐ๋ฉด ์ด๋๋ฆฌ์์ ํ๋ก๊ทธ๋๋ฐ์ ํด์ ๋ธ๋ก์ฒด์ธ์ ์ค๋งํธ ๊ณ์ฝ์ ์คํํ ์ ์๊ฒ ๋๋ฉด์, ์ ์ถ๊ธ ๋ฟ๋ง ์๋๋ผ ๋ค์ํ ๊ฑฐ๋๋ฅผ ๋ณด๋ค ์ค๋งํธํ๊ฒ ํ ์ ์๊ฒ ํ๋ค.
์ด๋ป๊ฒ ๋ณด๋ฉด, ์ค๋งํธ ๊ณ์ฝ์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํด๋์ค์ ๋งค์ฐ ๋น์ทํ๋ค. ์ค๋งํธ ๊ณ์ฝ์ ์ปดํ์ผํ๊ณ ๋ธ๋ก์ฒด์ธ์ ์ ๋ก๋ํ๋ฉด, ๋ถ์ฐ์ด๋ผ๋ ์ ์ ๋นผ ๋๊ณ ๋ ํด๋์ค/๊ฐ์ฒด์ ํฌ๊ฒ ์ฐจ์ด๊ฐ ์์ด ๋ณด์ธ๋ค.
๋ธ๋ก์ฒด์ธ์ ๋ถ์ฐ์์คํ ์์ ์๋ํ๋ ํน์ง์ด ์๋ค. ๊ณ์ฝ์๋ฅผ ๋ง๋ค๋ฉด ๋ฌธ์๋ก ์กด์ฌํ๋ ๊ฒ์ด ์๋๋ผ ์ฃผ์๋ฅผ ์ํธํ ์๊ณ ๋ฆฌ๋ฌ์ ๋ฐ๋ผ ์์ฑํ๊ณ , ๊ทธ ๋ธ๋ก์ฒด์ธ์ ์ฃผ์์ ์ ๋ก๋ ๋๋ค. ๊ณ ์ ํ ๊ณ์ ์ ๊ฐ์ง๊ณ ์๋ ๊ฐ์ฒด๋ก์, ์ํ ๋ณ์ ๋ฐ ์คํ ๊ฐ๋ฅํ ํจ์๋ฅผ ํฌํจํ์ฌ, ๊ธ์ต ํ๋ซํผ์ผ๋ก์ ๊ธ์ก์ ์ง๊ธํ๊ณ ๋ฐ์ ์ ์๊ฒ ๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ์ ์๋ ๋ชจ๋ ์ฐธ์ฌ์๊ฐ ๊ณ์ฝ์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๊ฑฐ๋๋ฅผ ๊ณ์ฝ์๋ก ๋ณด๋ด๋ฉด ๋คํธ์ํฌ์ ์ฐธ์ฌํ๋ ๊ฐ ๋ ธ๋์์ ๋ง์ด๋๋๊ณ ์คํ๋๋ค. ๊ทธ๋ ๊ฒ ํ๋ฉด์ ๋น์ฌ์ ๊ฐ ์๋์ผ๋ก ๊ฑฐ๋๊ฐ ์ฒด๊ฒฐ๋๊ณ ์๋ฌด๋ฅผ ๊ฐ์ ํ ์ ์๊ฒ ๋๋ค.
๋ฐ๋ผ์ ์ค๋งํธ ๊ณ์ฝ์ ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ์์์ ์คํ๋๋ฉด์, ํฉ์ํ๋กํ ์ฝ์ ๋ฐ๋ผ ๊ณ์ฝ ํ์ธ, ์ดํ ์๋ฐ ๋ฑ์ ํตํฉ์ ์ผ๋ก ๊ฐ์ ํ ์ ์์ผ๋ฉฐ ๋งค์ฐ ์์ ํ ๊ฑฐ๋๋ฅผ ๋ณด์ฅํ ์ ์๋ ํน์ง์ ๊ฐ์ง๊ฒ ๋๋ค.
์ค๋งํธ ๊ณ์ฝ์ ๋ค์ํ ์ฐ์ ๋ถ์ผ์์ ํ์ฉ๋ ์ ์์ผ๋ฉฐ, ๋ช ์ฌ๋ก๋ฅผ ์ค๋ช ํด๋ณด์.
๊ธ๋ก๋ฒ ์๋์ฐจ ํ์ฌ์์ ๋ธ๋ก์ฒด์ธ ์๋์ฐจ๋ฅผ ๊ฐ๋ฐํ๋ ค๊ณ ๋์๊ณ ์๋ค๊ณ ๋ณด๋๋๊ณ ์๋ค.
์๋์ฐจ๋ ์์ฐ๋ถํฐ ํ๊ธฐ๊น์ง ์ ํต์ฑ๋์ ๊ฑฐ์ณ ์ํ๋๋๋ฐ, ์ค๋งํธ ์ปจํธ๋์ ํตํด ๊ฐ ๋จ๊ณ์ ์๋์ฐจ ์์ ์๋ฅผ ๋ฑ๋กํ์ฌ ๋ณ๊ฒฝํ ์ ์๋ค. IBM์์๋ ํ์ดํผ๋ ์ ์ ๋ธ๋ก์ฒด์ธ์ ํ์ฉํ์ฌ ์๋์ฐจ ๋ฆฌ์ค๋ฅผ ๊ตฌํํ ์ฌ๋ก๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์๋ค (https://github.com/IBM-Blockchain-Archive/car-lease-demo)
- ์๋์ฐจ ๋ฆฌ์ค ๋ฐ ๋ ํ ๊ณ์ฝ: ์ค๋งํธ ๊ณ์ฝ์ ๊ณ์ฝ ์กฐ๊ฑด๊ณผ ์ดํ ์ฌํญ์ ์๋ํํ ์ ์๋ค. ์์ฌ์ฉ๋ฃ๋ฅผ ์ง๊ธํ์ง ์์ผ๋ฉด, ์ฐจ๋์ ์ฌ์ฉํ์ง ๋ชปํ๋๋ก ์๊ฒฉ์์ ์ ๊ธ ์ ์๋ค.
- ์๋์ฐจ ๊ณต์ ์๋น์ค: ์ค๋งํธ ๊ณ์ฝ์ ํตํด ๋์ฌ ๋ฐ ๋ฐ๋ฉ ์กฐ๊ฑด, ์๊ธ ์ฒญ๊ตฌ, ์ฐ๋ฃ ์ถฉ์ ๋ฑ์ ์๋์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ค.
- ์ค๊ณ ์ฐจ ๊ฑฐ๋: ์ค๋งํธ ๊ณ์ฝ์ ํ์ฉํ์ฌ ์๋์ฐจ ์์ ๊ถ ์ด์ , ๊ฒฐ์ ๋ฐ ์ค๊ณ ์ฐจ ์ํ์ ๊ดํ ์กฐ๊ฑด์ ํ๋ก๊ทธ๋๋ฐํ ์ ์๋ค.
์ค๋งํธ ๊ณ์ฝ์ ๋ฒ์ ์ธ ๊ณ์ฝ๊ณผ ๊ฐ์ง๋ง, ํ์ํ ์ ๋ ฅ ๊ฐ์ ๋ฐ์, ๊ณ์ฝ์ ๋ช ์๋ ์ ์ฐจ์ ๋ฐ๋ผ ์ฒ๋ฆฌํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ์ ๋ฐ๋ฅธ ํ์๋ฅผ ์ดํํ ์ ์๊ฒ ๋๋ค.
์ค๋งํธ ๊ณ์ฝ์ ๋ฌผ๋ฅ ๋ฐ ๊ณต๊ธ๋ง ๊ด๋ฆฌ ๋ถ์ผ์ ํ์ฉ๋ ์ ์๋ค.
๋ฌผ๋ฅ๋ ์ ์กฐ์ฌ์์ ๊ณ ๊ฐ๊น์ง ์ํ์ด ๋ฐฐ๋ฌ๋๋ฉด์ ๋ง์ ๊ธฐ๊ด, ๋ฐ์ก์(shippers), DHL ๊ฐ์ 3PLs (Third-Party Logistics Providers), ์ด์ก์ธ(carriers), ์ํ์(consignees)๊ฐ ๊ด์ฌ๋ ๋ฟ๋ง ์๋๋ผ, ์ด๋ค ๊ฐ์ ๋ง์ ๊ฑฐ๋๊ฐ ๋ฐ์ํ๊ณ ๊ด๋ จ ๋ฌธ์๊ฐ ์์ฑ๋๋ค ์ ํ์ฆ๊ถ(BOL-Bills Of Landing), ์ ์ฉ์ฅ(invoices), ๋ฐฐ์ก ์ฆ๋ช (POD-Proof Of Delivery) ๋ฑ์ด ์์ฑ๋๋ ๋ฌธ์๋ค์ ์์ด๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ ๋ณด๊ฐ ํฌ๋ช ํ๊ฒ ๊ณต์ ๋์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
์๋ก ์์ง ๋ชปํ๋ ๋น์ฌ์๋ผ๋ฆฌ ๊ฑฐ๋๋ฅผ ์ฑ์ฌ์ํค๋ ค๋ฉด, ์ค์์์ ๋งค๊ฐํ๋ ์ 3์ ๊ธฐ๊ด์ด ํ์ํ๊ฒ ๋๋ค. ์จ๋ผ์ธ์ผํ์ ๊ฒฝ์ฐ, ๊ฒฐ์ ํ ๋ฐฐ์ก, ๊ฑฐ๋์ทจ์ ๋ฑ์ ๊ฒฝ์ฐ ์ด๋ฅผ ์ค์๊ธฐ๊ด์ ๋ฏฟ๊ณ ์ ๋ขฐํด์ผ ๋์ง๋ง ์ค๊ฐ๋งค๊ฐ์ ์์ด ๊ฑฐ๋๊ฐ ์์ฑ์ด ๋๋ค.
์๋ฅผ ๋ค๋ฉด, ์์ฌ๋ฃ ๊ตฌ์ , ์์ , ๊ณต์ฅ ์์ฐ, ์ ํต, ํ๋งค๊น์ง ๊ธฐ๋กํ๊ณ , ํนํ ๊ฑฐ๋๋๊ธ์ ๊ฒฐ์ ๋ถ์ดํ ๋๋ ์ฐ์ฒด๋ก ์ธํด ์์ถ๋ณด์ฆ๋ณดํ ๋น์ฉ๊ณผ ๋ฏธ์๊ธ ํ์ ๋น์ฉ์ด ๋ฐ์ํ๋๋ฐ, ๋ธ๋ก์ฒด์ธ์ผ๋ก ์ค์๊ฐ ํฌ๋ช ํ ๊ฑฐ๋๋ก ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
IBM์ ์ปคํผ ์์ฐ์ง๋ฅผ ์ถ์ ํ ์ ์๋๋ก ๋ธ๋ก์ฒด์ธ์ ์ ์ฉํ๊ณ ์๋ค. ๋ธ๋ก์ฒด์ธ์ด ์ ์ฉ๋๋ฉด, ๋์ฅ์์ ์ปคํผ๋ฅผ ์์ฅ์ ๋งค๋ฌผ๋ก ์ฌ๋ ค ๋๋๋ค. ๊ณต๊ธ๋ง ๊ธฐ๋ก์ ๋จ๊ณ๋ณ๋ก ์งํ๋๋ค. ์์์ฐ์๊ฐ ์ฌ๋ฐฐํ๋ฉด์ ์๋ฌผ ์ํ๋ฅผ ๊ธฐ๋กํ๊ณ , ์ํํ๊ณ ๋๋ฉด ๊ฐ๊ณต์ ์์๊ฒ ๋ณด๋ธ๋ค. ๊ฐ๊ณต์ ์๋ ์๋ ์ธ์ฒ ์ฌ๋ถ, ๊ฑด์กฐ, ๋ก์คํ , ๊ณต์ ๊ฑฐ๋ ๋ฐ ์ ๊ธฐ๋ ์ฌ๋ถ ๋ฑ์ ๋ธ๋ก์ฒด์ธ์ ๊ธฐ๋กํ๋ค.
๋์๋งค์ ์ฒด๋ ์ค๋งํธ ๊ณ์ฝ์ ์คํํ์ฌ ์ด๋ฌํ ์ ๋ณด๋ฅผ ๊ณต์ ๋ฐ์ ํ์ง, ๋ถ๋, ๊ฐ๊ฒฉ์ ์ ํ์ฌ ๊ตฌ๋งคํ๋ค. ๋ธ๋ก์ฒด์ธ์ ์ปคํผ์ฝฉ์ ์ ํต๊ณผ์ ์ ๋ชจ๋ ๊ธฐ๋กํ๊ณ , ์ด ๊ธฐ๋ก์ ์์ ๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋๊ตฌ๋ ๋ฏฟ๊ณ ํฌ๋ช ํ ๊ณต๊ธ๋ง ์ถ์ , ์์ ํ ๊ฑฐ๋๊ฐ ์คํ๋ ์ ์๋ค. ๋ํ ์ด๋ฅผ ํตํด ์ปคํผ ๋๊ฐ์ ์์ต ๋ฐฐ๋ถ์ด ๊ฐ์ ๋ ์ ์๋ค.
์ถ์ฒ: https://developer.ibm.com/articles/cl-coffee-with-blockchain-introduction-to-how-blockchain-works/
์ค๋งํธ ๊ณ์ฝ์ ๊ตฌํํ ์ ์๋ ํ๋ซํผ์ ๋ง์ด ์๋๋ฐ, ๊ทธ ์ค ๋ช ๊ฐ์ง๋ฅผ ์ดํด๋ณด์.
- ์ด๋๋ฆฌ์: Solidity๋ผ๋ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋งํธ ๊ณ์ฝ์ ์์ฑํ๊ณ ์ด๋๋ฆฌ์๊ฐ์ ๋จธ์ (EVM)์์ ์คํ๋๋ค. ํ์ฌ ๋ธ๋ก์ฒด์ธ ์์ฅ์ ์ฃผ๋ํ๊ณ ์๋ ํ๋ซํผ์ด๊ณ , ์ฑ ์์๋ ์ด ํ๋ซํผ์ ์ฌ์ฉํ๋ค.
- **ํ์ดํผ๋ ์ (HYPERLEDGER)**๋ 2015๋ ๋ฆฌ๋ ์ค์ฌ๋จ์์ ํ์ดํผ๋ ์ ํ๋ก์ ํธ๋ฅผ ์์ํ๊ณ , ์ด๋๋ฆฌ์๊ณผ ๋๋ถ์ด ๋ธ๋ก์ฒด์ธ์ ์ฃผ๋ํ๋ ์ปจ์์์์ด๋ค. ๊ธฐ์ ์์ ์ฌ์ฉํ ์ ์๋ ํ์ค์ ์ธ ๋ธ๋ก์ฒด์ธ ๊ธฐ์ ์ ๊ตฌํํ๋ ๊ฒ ๋ชฉ์ ์ด๊ณ , ํ์ ํ๋ก์ ํธ์ธ ๋ธ๋ก์ฒด์ธ ์ต์คํ๋ก๋ฌ(Blockchain Explorer), ํจ๋ธ๋ฆญ(Fabric), ์ด๋กํ(Iroha), ์์ฐํฌ์ค ๋ ์ดํฌ(Sawtooth Lake)๋ฑ์ด ์๋ค.
- ์ด์ค์์ค์์ด์ค https://eos.io/ 2017๋ ๋ธ๋ก์(Block.one)์์ ๊ฐ๋ฐ์ ์์ํ์ฌ 2018๋ 6์ ์คํ์์ค๋ก ๋ฐํํ๋ค. ICO(Initial Coin Offering) ์ญ์ฌ ์ ์ต๋ ํ๋ ์ด 41์ต5000๋ง๋ฌ๋ฌ(์ํ ์ฝ 4์กฐ4630์ต์)๋ฅผ ๋ชจ์งํ์๋ค. PoS์ ์ผ์ข ์ธ ์์ ์ง๋ถ ์ฆ๋ช ๋ฐฉ์์ผ๋ก ๊ตฌ๋๋์ด, ์ด๋๋ฆฌ์์ ๋นํด ๋น ๋ฅด๊ณ , ๊ฐ์ค ์ฌ์ฉ๋ฃ๋ฅผ ์ฌ์ฉ์๊ฐ ์ง๋ถํ์ง ์๊ณ ๊ฐ๋ฐ์๊ฐ ๋ถ๋ดํ๋ค.
๋ ์์๋ณด๊ธฐ: ICO
ICO (Initial Coin Offering)๋ ์๋ก์ด ์ํธํํ๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํด ํฌ์์๋ค๋ก๋ถํฐ ๊ฐ๋ฐ ์๊ธ์ ๋ชจ์งํ๊ณ ๋์ ์ฝ์ธ์ ๋๋ ์ฃผ๋ ๊ฒ์ ๋งํ๋ค. ์ฃผ์์ ์์ฅํ ๋ ํ๋ IPO Initial Public Offering์ ๋น์ทํ๋ค. IPO๋ ๊ธฐ์ ์ ์ค๋ฆฝํ๊ณ , ์ฒ์์ผ๋ก ์ธ๋ถ์ ํฌ์์์๊ฒ ์ฃผ์์ ๊ณต๋ชจํ๋ ํ๋ ๊ฒ์ธ๋ฐ, ์ฃผ์ ๋์ ์ฝ์ธ์ ๋ํ์ฌ ๊ณต๋ชจํ๋ค.
๊ทธ ์ธ์๋ ๋ฐ์ด๋ธ์ค์ BSC(Binance Smart Chain), R3์ Corda, Tezos, Stellar, ConsenSys์ Quorum ๋ฑ ๋ง์ ํ๋ซํผ์ด ์ ๊ณต๋๊ณ ์๋ค.
์ด๋ค ํ๋ซํผ ์ค์์ ๋ํ์ ์ธ ์ด๋๋ฆฌ์๊ณผ ํ์ดํผ๋ ์ ๋ฅผ ๋น๊ตํด๋ณด์.
๋นํธ์ฝ์ธ, ์ด์ค์์ค์์ด์ค๋ฅผ ํฌํจํด์ ์ด๋๋ฆฌ์์ ๊ณต์ค๋ง(public network)์์ ์ ๊ณต๋๊ณ ์๊ณ , ๋ฐ๋ฉด์ ํ์ดํผ๋ ์ ๋ ํ๊ฐํ ๋คํธ์ํฌ(permissioned network)์ด๋ผ์ ์๋์ ์ผ๋ก ์ฒ๋ฆฌ ์๋๊ฐ ๋น ๋ฅด๋ค.
์ด๋๋ฆฌ์์ ๋นํธ์ฝ์ธ๊ณผ ๋๋ถ์ด ์์ ์ฆ๋ช ํฉ์๋ฅผ ์ฌ์ฉํ๊ณ ์๊ณ , ์ด๋๋ฆฌ์์ ์บ์คํผ์์๋ ์ง๋ถ ์ฆ๋ช ์ ์ฌ์ฉํ๋ค. ํ์ดํผ๋ ์ ๋ PBFT(Practical Byzantine Fault Tolerance)๋ฅผ ์ ์ฉํ๊ณ ์๋ค.
์ด๋๋ฆฌ์์ ์ํธํํ ์ด๋(Ether)๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ง, ํ์ดํผ๋ ์ ๋ ์์ฒด ํตํ๊ฐ ์๋ค๊ฐ, 2.0์์๋ ํจ๋ธ๋ฆญ ํ ํฐ์ด๋ผ๋ ๋ฐํ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์๋ค.
๊ตฌ๋ถ | ๋นํธ์ฝ์ธ | ์ด๋๋ฆฌ์ | ํ์ดํผ๋ ์ ํจ๋ธ๋ฆญ |
---|---|---|---|
์ํธํํ | ๋นํธ์ฝ์ธ | ์ด๋(ether) | ์์ฒด ์ฝ์ธ ์๋ค (๋ฒ์ 2.0์์ 'ํจ๋ธ๋ฆญ ํ ํฐ(FabToken)'์ด๋ผ๋ ํ ํฐ ๋ฐํ ๊ธฐ๋ฅ ์ถ๊ฐ) |
๋คํธ์ํฌ | ๊ณต์ค๋ง | ๊ณต์ค๋ง์ด๋ ํ๊ฐํ ๋คํธ์ํฌ ๊ฐ๋ฅ | ํ๊ฐํ |
ํฉ์ | ์์ ์ฆ๋ช | ์์ ์ฆ๋ช (์ง๋ถ ์ฆ๋ช ์ผ๋ก ๋ณ๊ฒฝ) | PBFT |
์ค๋งํธ ๊ณ์ฝ | ํด๋น ์๋ค | ๊ตฌํ ๊ฐ๋ฅ (Solidity, Vyper, LLL) | ๊ตฌํ ๊ฐ๋ฅ (chaincode) |
์ธ์ด | C++ | Golang, C++, Python | Golang, Java |
๋ ์์๋ณด๊ธฐ: ๊ณต์ค๋ง๊ณผ ํ๊ฐ๋ง
๊ณต์ค๋ง์ด๋ ๋ชจ๋ ์ฌ๋๋ค์ด ์ฐธ์ฌํ ์ ์๋ ๋คํธ์ํฌ์ด๋ค. ๊ณต์ค๋ง์ ์ฌ์ฉํ๋ ๋ธ๋ก์ฒด์ธ ํ๋ซํผ์ ์ฃผ๋ก ์คํ์์ค๋ก ๊ฐ๋ฐ๋๊ณ , ๋ชจ๋์๊ฒ ์ด๋ ค์๋ค. ๋๊ตฌ๋ผ๋ ์ฐธ์ฌํ ์ ์๊ณ , ํน์ ๊ธฐ๊ด์ ํ๊ฐ๊ฐ ํ์ ์๋ค. ํ๊ฐ๋ง์ ๊ถํ์ด ์๋ ๊ธฐ๊ด์ ํ๊ฐ๋ฅผ ๋ฐ์ ์ฐธ์ฌ์๋ค์๊ฒ๋ง ์ฌ์ฉ์ด ์ ํ๋๋ ํ๋ซํผ์ด๋ค. ๊ณต์ค๋ง์ ์ฌ์ฉํ๋ ๋ํ์ ์ธ ๋ธ๋ก์ฒด์ธ์ ๋นํธ์ฝ์ธ๊ณผ ์ด๋๋ฆฌ์์ด๊ณ , ํ๊ฐ๋ง์ ๋ํ์ ์ธ ์๋ ํ์ดํผ๋์ ํจ๋ธ๋ฆญ์ด๋ค. ๋ค์ ์ฅ์์ ์์ธํ ์ค๋ช ํ๋ค.
์ค๋งํธ ๊ณ์ฝ์ ๊ตฌํํ๊ธฐ ์ํ ํ๊ฒฝ์ผ๋ก๋ ํ์ฌ ์ด๋๋ฆฌ์์ด ๋ง์ด ์ฌ์ฉ๋๋ค.
์ด๋๋ฆฌ์์ ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ์์ ์ค๋งํธ ๊ณ์ฝ์ ์์ฑํ์ฌ ๋ฐ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋นํธ์ฝ์ธ์์ ์ฌ์ฉํ๋ ๋ธ๋ก์ฒด์ธ์ ๊ธฐ๋กํ ๋ฟ๋ง ์๋๋ผ ์ค๋งํธ ๊ณ์ฝ์ ๊ตฌํํ์ฌ ์คํํ๋ ํ๊ฒฝ์ ์ ๊ณตํ๋ค. ํ๋ก๊ทธ๋๋ฐ ์ฝ๋ ํํ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ์ฌ ํด๋น์ฝ๋๋ฅผ ์คํํ ์ ์๋ ์คํ ํ๋ซํผ์ด๋ค.
์ด๋๋ฆฌ์์ ๋ธ๋ก์ฒด์ธ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ๋ด์ฅ๋ ํ๋ซํผ์ผ๋ก ๋๊ตฌ๋ ์ค๋งํธ ๊ณ์ฝ์ ๋ฐ ๋ถ์ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ฑํ ์ ์๋ค.
์ํธํํ **์ด๋(Ether)**๋ผ๊ณ ํ๋ ๋ด๋ถ์์ ์ฐ๋ ํํ๋ฅผ ๊ฐ์ง๊ณ ์์ด ๊ธ์ ๊ฑฐ๋์ ๊ฐ์ค(gas)๋ผ๊ณ ํ๋ ํธ๋์ญ์ ์ฒ๋ฆฌ ๋น์ฉ์ ์ฐ์ด๊ณ ์๋ค. ๊ฐ์ค๋ฅผ ๋ถ๋ดํด์ผ ํ๋ฏ๋ก ๋ถํ์ํ ํธ๋์ญ์ ์ด ๋ฐ์๋๋ ๊ฒ์ ๋ง์ ์ ์์ด ํดํน ๋๋ ์ ์ฑ ํธ๋ํฝ์ ๋๋์ผ๋ก ์ ์กํ๋ DDoS ๊ณต๊ฒฉ์ ์๋ฐฉํ ์ ์๋ค.
๋นํธ์ฝ์ธ๊ณผ ๋น๊ตํด์, ์ด๋๋ฆฌ์์ ์ค๋งํธ ๊ณ์ฝ์ ์คํํ ์ ์๋ค๋ ์ ์ด ๊ฐ์ฅ ํฐ ์ฐจ์ด์ด๋ค. ๋นํธ์ฝ์ธ์ ๋ธ๋ญ์ฒด์ธ์ ๊ฑฐ๋๊ธฐ๋ก์ ์ ์ฅํ๋ค๋ฉด, ์ด๋๋ฆฌ์์ ํ๋ก๊ทธ๋จ ์ฝ๋๋ฅผ ์คํํ ์ ์๋ค. ๋นํธ์ฝ์ธ๋ ์คํฌ๋ฆฝํธ์ธ์ด๋ฅผ ์ฌ์ฉํ ์ ์์ง๋ง ํ์ํ ๊ธฐ๋ฅ์๋ง ์ ํํ์ฌ ์ฌ์ฉํ๋ค.
๋ธ๋ก ์์ฑ์๊ฐ์ ๋น๊ตํ๋ฉด, ๋นํธ์ฝ์ธ์ด ์ฝ 10๋ถ์ด๊ณ ์ด๋๋ฆฌ์์ ์ฝ 14์ด์ด๊ณ (https://ethstats.net/), ์ด๋ฌํ ์ฐจ์ด๋ ๋๋จํ ๊ธฐ์ ์ด ์ ์ฉ๋์ด์ ๊ทธ๋ ๋ค๊ธฐ ๋ณด๋ค๋ ๊ทธ ์๊ฐ์ ๋ธ๋ก์ด ์์ฑ๋๋๋ก ๊ทธ๋ ๊ฒ ์ค๊ณ๋์๊ธฐ ๋๋ฌธ์ด๋ค.
๋ํ ๋ธ๋ก์ ํฌ๊ธฐ๋ ์๋ก ์ฐจ์ด๊ฐ ์๋ค. ๋นํธ์ฝ์ธ์ ๋ธ๋ก์ ํฌ๊ธฐ๊ฐ 1MB์ด์ง๋ง, ์ด๋๋ฆฌ์์ ๋ธ๋ก์ gas limit์ ๋ฐ๋ผ ๊ทธ ํฌ๊ธฐ๊ฐ ๊ฒฐ์ ๋๋ค. ํ์ฌ gas limit์ ์ฝ 800๋ง https://ethstats.net/, ๋ธ๋ก์ ํฌ๊ธฐ๋ ํ๊ท ์ฝ 20KB์ด๋ค (์ฐธ์กฐ: https://etherscan.io/chart/blocksize)
๊ตฌ๋ถ | ๋นํธ์ฝ์ธ | ์ด๋๋ฆฌ์ |
---|---|---|
์ฃผ ์ฌ์ฉ | ํํ | ์ค๋งํธ ์ปจํธ๋ |
๋ฐํ | ์ต๋ 2,100๋ง ๋นํธ์ฝ์ธ. ๋ชจ๋ ๋ง์ด๋์ ๋ณด์์ผ๋ก ๋ฐ๊ธ | 7,200๋ง ether๊ฐ ์ฌ์ ํ๋งค. ๋๋จธ์ง๋ ๋ง์ด๋ ๋ณด์ ๋ฐ๊ธ. |
๋ธ๋ก์ฒด์ธ | ๊ฑฐ๋๊ธฐ๋ก | ๊ฑฐ๋๊ธฐ๋ก + ํ๋ก๊ทธ๋จ ์ฝ๋ |
๋ธ๋ก ์์ฑ ์๊ฐ | ์ฝ 10๋ถ | ์ฝ 14์ด (์ง๋ถ์ฆ๋ช PoS ์ ์ฉํ๋ฉด ๋จ์ถ) |
๋ธ๋ก ํฌ๊ธฐ | currently 1 MB, ์ฝ 500๊ฑฐ๋ | ๋ธ๋กํฌ๊ธฐ๋ผ๊ธฐ ๋ณด๋ค๋ Gas limit์ ๋ฐ๋ผ ๊ฒฐ์ , ์ฝ 20KB |
Smart Contract | No | Yes |
2013๋ Vitalik Buterin์ด ์ฒ์ ์ ์ํ ํ, ๊ณง 2014๋ 7~8์ ํด๋ผ์ฐ๋ ํ๋งค๋ก 6์ฒ๋ง Ether๋ฅผ ๊ณต๋ชจํ์๊ณ , ๋งค๋ 20%์ฉ ๋ง์ด๋ ๋ณด์์ผ๋ก ๋ฐ๋งค๋๋ค.
์ฌ๋ฌ ํ์ ๊ฑธ์ณ ์ํ๋ฒ์ ์ ์ถ์ํ์๊ณ , 2015๋ 5์ Olympic, Frontier์ ๋ฒ ํ์ ํด๋น๋๋ ์ํ๋ฒ์ ์ด ๋ฐํ๋๊ณ , ๊ณง ์ด์ด 2015๋ 7์ Frontier๋ฅผ ๋ฐํํ๋ค. ์ด ๋ฒ์ ์ด ์ต์ด์ ๊ณต์ ๋ฒ์ ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.
2016๋ 3์ Homestead๊ฐ ๋ฐํ๋์๊ณ , ์์ ํ๋ ํ๋ซํผ์ด๋ค. Byzantium์ 4,370,000 ๋ธ๋ก์์, Constantinople์ 7,280,000 ๋ธ๋ก์์ ํ๋ํฌํฌ๋ฅผ ๊ฑฐ์ณ Metropolis๋ก ๋ง๋ค์ด์ง ๋ฒ์ ์ด๋ค.
๊ทธ๋ฌ๋ ์ด๋ค ๋ฒ์ ์์๋ ์์ ์ฆ๋ช ์ด ์ ์ฉ๋๋ฉด์, ์ปดํจํ ์์์ด ์๋ชจ๋๊ณ ์ฒ๋ฆฌ์๋๊ฐ ๋ฆ์ด์ง๋ค๋ ๋ฌธ์ ๊ฐ ์ง์ ๋์ด ์๋ค. ํฉ์๋ฐฉ์์ ์์ ์ฆ๋ช ์์ ์ง๋ถ ์ฆ๋ช ์ผ๋ก ๋ณ๊ฒฝํ Serenity๊ฐ 2020๋ 12์ ์ ์์ ์ธ ๊ฐ๋์ ๋ค์ด๊ฐ 3๋จ๊ณ์ ๊ฑธ์ณ ์์ ํ๋๊ณ ์๋ค.
Serenity๋ ์ด๋๋ฆฌ์ 2.0์ผ๋ก ๋ถ๋ฆฌ์ฐ๊ณ ์๊ณ 2014๋ ๋ถํฐ ์์ ํด ์ค๋ ์บ์คํผ(Casper) ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ ์ง๋ถ ์ฆ๋ช PoS (Proof of Stake)๋ฅผ ์ ์ฉํ๊ณ , ๋ถ์ฐ์ ์ฅ๊ธฐ๋ฒ์ธ ์ค๋ฉ(Sharding), ์๋ก์ด ๊ฐ์ ๋จธ์ (eWASM) ๋ฑ์ด ์ ๊ณต๋๋ค.
๋ฒ์ | ๋ฒ์ ์ ๋ช ์นญ | ๋ฐํ ์์ | ์ค๋ช |
---|---|---|---|
0 | Olympic | 2015๋ 5์ | ์ด๋๋ฆฌ์ 0.9, Frontier๋ฅผ ๋ฐฐํฌํ๊ธฐ ์ ์ ์ํ ๋ฒ์ |
1 | Frontier | 2015๋ 7์ | ์ด๋๋ฆฌ์ 1.0, ์ต์ด์ ๊ณต์ ๋ฒ์ . 0๋ฒ์งธ Genesis block ์์ฑ. |
2 | Homestead | 2016๋ 3์ | 1,150,00 ๋ธ๋ก์์ ํ๋ํฌํฌ๋ ๋ ๋ฒ์งธ ์ ์ ๋ฒ์ . ์๋นํ ์์ ํ๋ ๋ฒ์ . |
3 | Metropolis | 2017๋ 10์ | Byzantium, Constantinople์ ๊ฑฐ์ณ์ ์์ฑ. |
4 | Serenity | 2020๋ 12์ ์ ์๊ฐ๋ ์์ | ์ด๋๋ฆฌ์ 2.0์ผ๋ก ๋ถ๋ฆฌ์ฐ๊ณ ์๊ณ ์ง๋ถ ์ฆ๋ช ์ ์ ์ฉํ๋ค. |
๋ ์์๋ณด๊ธฐ: ํฌํฌ(Fork)
**ํ๋ ํฌํฌ(Hard Fork)**๋ ์ด์ ๋ฒ์ ๊ณผ ํธํ์ด ๋์ง ์๋ ๋ณ๊ฒฝ์ด๊ณ , ์ฌ์ฉ์๋ ๋ฒ์ ์ ๊ทธ๋ ์ด๋๋ฅผ ํด์ผ๋ง ํ๋ค. ํ๋ ํฌํฌ๊ฐ ๋ฐ์ํ๋ฉด ์ฒด์ธ์ด ๋ฉ์ธ์์ ๋ถ๊ธฐ๊ฐ ๋๋ค. ์ ํ์์ ๋ณด๋ ๋ฒ์ ์ ๊ทธ๋ ์ด๋ Frontier, Homestead ๋ชจ๋ ํ๋ ํฌํฌ์ด๋ค. Metropolis ์ญ์ Byzantium, Constantinople๋ผ๋ ํ๋ ํฌํฌ๋ฅผ ํ๊ณ ๋ ๊ฒฐ๊ณผ๋ฌผ์ด๋ค. ๋ํ ํ๋ ํฌํฌ๋ก ์ธํด ETH, ETC ํํ๊ฐ ๋ถ๋ฆฌ๋ ๊ฒฝ์ฐ๋ฅผ ๋ค ์ ์๋ค. ๋ฐ๋ฉด์ **์ํํธ ํฌํฌ(Soft Fork)**๋ ์ด์ ๋ฒ์ ๊ณผ ํธํ์ด ์ ์ง๋๋ฉฐ, ์ฒด์ธ์ด ๋ถ๋ฆฌ๋์ง ์๋๋ค. ์ด๋๋ฆฌ์์ ํต์์ ์ธ ํ๋กํ ์ฝ ์ ๊ทธ๋ ์ด๋๋ ์ํํธ ํฌํฌ์ด๋ค.
์ด๋๋ฆฌ์์์ ์ฐ์ด๋ ๊ฐ์ํํ์ด๋ค. ์ค๋งํธ ๊ณ์ฝ์ ์ฌ์ฉํ๋ฉด์ ๋ฐ์ํ๋ ๋น์ฉ์ด๋ ๊ณ์ข ์ด์ฒด ๋ฑ ๋ณดํต ํํ์ฒ๋ผ ์ด๋๋ฆฌ์ ํ๊ฒฝ์์ ์ฐ์ธ๋ค. ๋ํ ํธ๋์ญ์ ์ ๋ง์ด๋ํ๋ ๋๊ฐ๋ก ์ง๊ธํ๋ ๊ฐ์ค(gas)๋ ์ด๋(Ether)๋ก ์ง๊ธํ๋ค.
๋นํธ์ฝ์ธ์์๋ Unspent Transaction Output (UTXO)๋ฅผ ํตํ์ฌ ๊ณ์ ์ ์๊ณ ๋ฅผ ๋ณด๊ดํ๋ ๋ฐ๋ฉด์, ์ด๋๋ฆฌ์์์๋ ๊ณ์ ์ ์๊ณ ๋ฅผ ์ต์ ํํด์ ์ ์ฅํ๋ค. ๊ทธ๋ฌ๋๊น ๋ณ๋๋ก ์๊ณ ๋ฅผ ํฉ์ฐํด์ ๊ณ์ฐํ ํ์๊ฐ ์๋ค. ์ด๋๋ฆฌ์์์ ์ํ๋ฅผ ์ ์ฅํ๋ ๋จธํด ํธ๋ฆฌ(Merkle Patricia Trie)๋ฅผ ์ฌ์ฉํด ์๊ณ ๋ฅผ ์ ์ฅํ๋ค.
์ด๋๋ฆฌ์์ ๋ฐ๋ฅด๋ฉด ํํ๋ ๋ฌดํ์ ๋ฐํ๋์ง ์์ ๊ฒ์ด๋ผ๊ณ ํ๋ค.
- ์ฒ์ ํ๋งค๋ 6์ฒ๋ง ์ด๋(ether), ๋งค๋ ์ด๊ธฐ ๊ณต๊ธ๋ถ์ ์ฝ 25%์ด ๋ฐํ๋๊ณ ์๋ค.
- ํฅํ PoS ์๊ณ ๋ฆฌ์ฆ Casper์์๋ ๋ง์ด๋ ๋ณด์์ด ์ ๊ฒ ๋ฐ์ํ๊ฒ ๋๋ค.
์ด๋๋ฆฌ์(Ethereum, ETH))๊ณผ ์ด๋๋ฆฌ์ ํด๋์(Ethereum Classic, ETC)๋ ๋ค๋ฅธ ํํ์ด๋ค. 2016๋ 7์ ๊ณต๊ฒฉ์ผ๋ก ํ๋ ํฌํฌ ๋๋ฉด์ ๊ฐ๋ผ์ง ํํ๊ฐ ETH์ด๊ณ ๊ณต์์ ์ผ๋ก ํต์ฉ๋๊ณ ์๋ค.
์๋ ํ์์ ์ต์ํ ํํ๋จ์ ์จ์ด(wei), ์ค์๋ณด(szabo), ํผ๋(finney)๊ฐ ๋ณด์ธ๋ค.
1998๋ ์ b-money๋ฅผ ์ ์ํ Wei Dai, 2004๋ ๋นํธ์ฝ์ธ์ ์์ PoW๋ฅผ ๊ณ ์ํ Hal Finney, ์ค๋งํธ ๊ณ์ฝ์ 1996๋ ์ฒ์ ์ธ๊ธํ๋ NickSzabo์ ์ด๋ฆ์์ ๋ฐ์จ ํํ ๋ช ์นญ์ด๋ค.
์จ์ด(wei)๋ ์ด๋๋ฆฌ์์์์ ๊ฐ์ฅ ์์ ํํ ๋จ์์ด๊ณ 10์ 18์น์จ์ด๊ฐ 1 ์ด๋๊ฐ ๋๋ค.
ํผ๋๋ ์จ์ด์ 10์ 15์น, ์ค์๋ณด๋ 10์ 12์น์ด๋ค.
Unit | Wei Value | Wei |
---|---|---|
wei | 1 wei | 1 |
Kwei (babbage) | 1e3 wei | 1,000 |
Mwei (lovelace) | 1e6 wei | 1,000,000 |
Gwei (shannon) | 1e9 wei | 1,000,000,000 |
microether (szabo) | 1e12 wei | 1,000,000,000,000 |
milliether (finney) | 1e15 wei | 1,000,000,000,000,000 |
ether | 1e18 wei | 1,000,000,000,000,000,000 |
์ด๋๋ฆฌ์์ ๊ฐ๋ฐ์ ํ์ํ ํ๊ฒฝ์ ์ดํด๋ณด์. ์ด ์ฑ ์์ ์ด๋๋ฆฌ์์ ๋ฐฐ์ฐ๊ฑฐ๋ ๋์ฑ์ ๋ง๋ค๋ฉด์ ๋ค์์ ๊ธฐ์ ๋ฑ์ ์ฌ์ฉํ๊ฒ ๋๋ค.
-
๋คํธ์ํฌ: geth ๋ช ๋ น์ด๋ก ๋ธ๋ก์ฒด์ธ์ ์ฌ์ฉํ๊ธฐ ์ํ P2P๋คํธ์ํฌ๋ฅผ ๊ตฌ์ฑํ๋ค.
-
์ค๋งํธ ๊ณ์ฝ: ์ค๋งํธ ๊ณ์ฝ์ ์๋ฆฌ๋ํฐ(Solidity), ๋ฐ์ดํผ(Vyper, Serpent์ ํ์), LLL๋ก ๊ตฌํํ๋ค. ์ด ์ปจํธ๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๊ณ ํ๋ก์ธ์ค๋ฅผ ์คํํ๋ฉด์ ๊ธฐ์กด์ ์๋ฒ๊ฐ ํ๋ ์ญํ ์ ํ๋ค. ์ด๋ฐ ์์ ๋ค์ด P2P๋คํธ์ํฌ ๋ธ๋ก์ฒด์ธ ์์์ ์คํ๋๋ค.
-
evm(Ethereum Virtual Machine): ์๋ฐ ๊ฐ์ ๋จธ์ ๊ณผ ๋น์ทํ๊ฒ ์ด๋๋ฆฌ์์ ์ค๋งํธ ๊ณ์ฝ ๋ฐ์ดํธ ์ฝ๋๋ฅผ ์คํํ ์ ์๋ ํ๊ฒฝ(runtime environment)์ด๋ค.
-
๋ผ์ด๋ธ๋ฌ๋ฆฌ: (1) web3.js๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก JSON RPC. contract ํจ์ ํธ์ถ ๋ฑ์ ์ ๊ณตํ๋ค. (2) web3.py๋ ๊ฐ์ ๊ธฐ๋ฅ์ ์ด๋๋ฆฌ์ ํ๋ก๊ทธ๋๋ฐ์ ์ง์ํ๋ ํ์ด์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
-
ํด๋ผ์ด์ธํธ: ๋ธ๋ก์ฒด์ธ์ ์๋ฒ๋ก ๊ฐ์ฃผํด์, ๊ทธ ์๋ฒ์ ์๋ ๋ฐ์ดํฐ ๋๋ ์์ค์ฝ๋๋ฅผ ์คํํ์ฌ ์์ ์ ์ฒ๋ฆฌํ๊ฒ ์์ ์ ๋ก์ปฌ์ปดํจํฐ์์ ์ฒ๋ฆฌํ๋ค. geth ๋จ๋ง ๋๋ nodejs๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
-
Swarm: ์ด๋๋ฆฌ์์ ๋ถ์ฐ ์ ์ฅ์์ด๋ค. ์ ์ฌํ๊ฒ ์ ์ฅ์๊ธฐ๋ฅ์ ์ ๊ณตํ๋ IPFS (P2P๊ธฐ๋ฐ์ ๋ถ์ฐํ ํ์ผ ์ ์ฅ์), BigchainDB (๋ถ์ฐํ ๋ฐ์ดํฐ๋ฒ ์ด์ค)๊ฐ ์๋ค.
-
Whisper: ๋ถ์ฐํ P2P ๋ฉ์์ง ํต์ ํ๋กํ ์ฝ์ด๋ค. ๋ธ๋ก์ฒด์ธ ์์์ ์๋ํ๋ฏ๋ก ์ต๋ช ์ฑ์ด ๋ณด์ฅ๋๋ค.
์ต์์ ๋๋ ํ ๋ฆฌ 'Code'๋ฅผ ๋จผ์ ๋ง๋ ๋ค. ๋ฌธ์ ๋๋ ํ ๋ฆฌ๊ฐ ์๋ฏ์ด, ๊ฐ๋ฐ์๋ ์์ค์ฝ๋๋ฅผ 'Code'์ ์ ์ฅํ๋ ๊ฒ์ด ์ข๋ค. ๊ทธ 'Code' ์๋ ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ ๋ค. 'myProject', ์์ ์ ์ด๋ฆ ๋๋ ํ๋ฒ์ผ๋ก ํด๋ ์ข๋ค. ์ ๋์ฝ๋ ์ง์์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ง๋ง ๋๋ ํ ๋ฆฌ ์ด๋ฆ์ ๊ฐ๋ฅํ๋ฉด ํ๊ธ์ ์ฌ์ฉํ์ง ๋ง๊ณ ์๋ฌธ์ผ๋ก ์์ฑํ๋ฉฐ, ๊ณต๋ฐฑ์ ํฌํจํ์ง ์๋๋ก ํ๋ค.
์๋ฅผ ๋ค์ด, ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ๋ ์๋์ ๊ฐ์ด ๋ช ๋ช ๋ ์ ์๋ค.
- ์๋์ฐ์์๋
C:\Users\jsl\Code\20171111\
- ๋ฆฌ๋
์ค๋
home/user/Code/jsl
์์ผ๋ก ๋ช
๋ น์ฐฝ์์ ํ๋ก์ ํธ์ ๋๋ ํ ๋ฆฌ ํ๋กฌํํธ๋ pjt_dir>
๋ผ๊ณ ํ๊ธฐํ๋ค.
pjt_dir ์๋์ ๋ค์ ๋๋ ํ ๋ฆฌ, ํ์ผ์ ๋ง๋ ๋ค. ์๋ ์์๋ฅผ ์ฐธ์กฐํ๋ค. ์ด ๊ฐ์ด๋ฐ package.json, node_modules, eth๋ ์์ฑ์ด ๋์ด ์์ ๊ฒ์ด๋ค.
- 'src' ๋๋ ํ ๋ฆฌ์๋ ์๋ฆฌ๋ํฐ, ์๋ฐ์คํฌ๋ฆฝํธ ์์ค์ฝ๋๋ฅผ ์ ์ฅ,
- 'scripts'๋ html ํ์ผ์ ์ ์ฅ,
- npm์ผ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๋ฉด node_moudles, package.json์ด ์์ฑ,
- eth๋ ๋ธ๋ก์ฒด์ธ์ ์์ฑํ๋ฉด ๋ง๋ค์ด์ง๋ ๋๋ ํ ๋ฆฌ์ด๋ค.
pjt_dir> dir (๋ฆฌ๋
์ค๋ ls -l)
ํ์ผ -----> _gethNow.sh ๋๋ _gethNow.bat ๋ฑ ์ผ๊ด์คํ ํ์ผ
๋๋ ํ ๋ฆฌ --> sripts\
๋๋ ํ ๋ฆฌ --> src\
---> Hello.sol
---> HelloDeploy.js ๋ฑ ์์ค์ฝ๋ ํ์ผ
ํ์ผ ------> package.json
๋๋ ํ ๋ฆฌ ---> node_modules\
๋๋ ํ ๋ฆฌ ---> eth\ ๋ธ๋ก์ฒด์ธ ์ค์ ํ์ผ ๋ฑ์ ์ ์ฅ
Geth๋ ์ด๋๋ฆฌ์(Ethereum)์ Go ์ธ์ด๋ก ๊ตฌํ ๋๋ฉฐ,
- ๋งฅ์์๋ ํจํค์ง์ค์น๊ด๋ฆฌ์์ brew๋ฅผ ์ด์ฉํด ์ค์นํ๋ฉด ํธ๋ฆฌํ๋ค.
brew install ethereum
- ๋ฆฌ๋ ์ค ์ฐ๋ถํฌ์ ์ค์น
๋ค์๊ณผ ๊ฐ์ด ppa๋ฅผ ๋ฑ๋กํ๊ณ ๋์ ์ค์นํ๋ค.
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ethereum/ethereum
sudo add-apt-repository ppa:ethereum/ethereum-dev
sudo apt-get update
sudo apt-get install ethereum
- ์๋์ฐ์ Geth๋ฅผ ์ค์นํด๋ณด์
https://geth.ethereum.org/downloads/ ์ ์ ์ํ ํ, geth ์ค์น ํ์ผ์ ๋ค์ด๋ก๋ ๋ฐ๋๋ค. 32๋นํธ ๋๋ 64๋นํธ ์๋ง์ ๋ฒ์ ์ ์ ํํด์ ์ค์นํ๋ฉด ๋๋ค.
์ค์นํ๋ ๋๋ ํ ๋ฆฌ C:\Program Files\Geth
๋ฅผ ์ค์ ํ๋ค.
๊ฒฝ๋ก๋ฅผ ์ค์ ํ๊ธฐ ์ํด์:
- ์ ์ดํ์ 'ํ๊ฒฝ ๋ณ์ ํธ์ง' ์ฐฝ์ ์ฐ๋ค. (์ ์ดํ -> ์์คํ ๋ฐ ๋ณด์ -> ์์คํ -> ๊ณ ๊ธ ์์คํ ์ค์ -> ํ๊ฒฝ ๋ณ์)
- ์ฌ์ฉ์ ํ๊ฒฝ ๋ณ์์์ 'Path'๋ฅผ ์ ํํ๊ณ 'ํธ์ง'์ ํด๋ฆญํ๋ค.
- ์๋ก ๋ง๋ค๊ธฐ๋ฅผ ์ ํํ๊ณ , Geth ์คํ ํ์ผ์ด ์๋ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํ๋ค. (์:
C:\Program Files\Geth
)
์ค์นํ๊ณ ๋๋ฉด, geth ํด๋ผ์ด์ธํธ์์ ๋ธ๋ก์ฒด์ธ์ ์ฐ๊ฒฐํ ์ ์๋ค. geth ์ธ์๋ ๊ฐ์ Go๋ก ๊ตฌํํ Erigon, C#์ผ๋ก ๊ตฌํ๋ Nethermind, ์๋ฐ๋ก ๊ตฌํ๋ Hyperledger Besu ๋ฑ ์ฌ๋ฌ ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
์ค๋งํธ ๊ณ์ฝ์ ์๋ฆฌ๋ํฐ(Solidity) ๋๋ Python์ ๋ฎ์ ๋ฐ์ดํผ(Vyper)๋ก ๊ตฌํํ ์ ์๋ค. ์ฌ๊ธฐ์๋ ์๋ฆฌ๋ํฐ๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๋ฏ๋ก Solidity๋ฅผ ์ค์นํด๋ณด์.
- ๋ฆฌ๋ ์ค๋ ๋ช ๋ น์ฐฝ์์ ๋ค์๊ณผ ๊ฐ์ด ์ ๋ ฅํด์ Solidity ์ค์นํ๋ค.
sudo apt get install solc
- ๋งฅ์์๋ ํจํค์ง์ค์น๊ด๋ฆฌ์์ brew๋ฅผ ์ค์นํ๋ ํธ์ด ํธ๋ฆฌํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ ๋ค์๊ณผ ๊ฐ์ด Solidity๋ฅผ ์ค์นํ๋ค.
brew install solidity (@4 ํน์ ๋ฒ์ ์ ์ ํด์ ์ค์นํ๋ ค๋ฉด solidity@4)
- Soldity๋ฅผ ์ง์ ์ปดํ์ผํด์ ๋ง๋ค ์๋ ์์ง๋ง ์๋ จ์๊ฐ ์๋๋ฉด ์ด๋ ต๊ธฐ ๋๋ฌธ์ ์ถ์ฒํ์ง ์๋๋ค. ์ปดํ์ผํด์ ์ค์นํ๋ ค๋ฉด,
git
clone์ผ๋ก ์์ค๋ฅผ ๋ค์ด๋ก๋ํ๊ณmake
ํ๋ค. ๊ทธ๋ฌ๋ฉดgo-ethereum/build/
์ ์ค์น๋๋ค.
$ git clone https://github.com/ethereum/go-ethereum
$ cd go-ethereum
$ make geth
$ ./build/bin/geth
$ make all (๋ชจ๋ ๋น๋ํ๋ ค๋ฉด)
- ์๋์ฐ์์๋ ๋งค์ฐ ๊ฐํธํ๊ฒ ์ค์นํ ์ ์๋ค.
๋ฒ์ ์ ๋ง์ถ์ด, https://github.com/ethereum/solidity/releases ๋ก ๊ฐ์ Solidity๋ฅผ ์ค์นํ๋ค. ํน์ ๋ฒ์ ์ ์ํ๋ค๋ฉด ์ข์๋จ์ 'Tags'์์ ๋ด๋ ค๋ฐ์ ๋ฒ์ ์ ์ ํํ์ฌ ์ค์นํ๋ฉด ๋๋ค.
- ๋ฒ์ 0.7.2๋ถํฐ ์คํํ์ผ ํ ๊ฐ๋ง ์ ๊ณตํ๋ฏ๋ก, ์๋ฆฌ๋ํฐ ํ์ผ์ ๋ค์ด๋ก๋ ๋ฐ์ ์ ์ ํ ๊ฒฝ๋ก๋ฅผ ์์ฑํด์ ์ ์ฅํ๊ธฐ๋ง ํ๋ฉด ๋๋ค. ์ฑ ์์๋ 0.8 ์ด์์ ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์๋ค.
- 0.7.2 ์ด์ ๋ฒ์ ์ ์์ถ ํ์ผ๋ก ์ ๊ณตํ๋ค. ์์ถ ํ์ผ์ ์ ์ ํ ๊ฒฝ๋ก์ ํ๋ฉด ๋๋ค.
์ฌ๊ธฐ์๋ C:\\Program Files\\solidity-windows\
์ Solidity ์ปดํ์ผ๋ฌ๋ฅผ ์ค์นํ๋ ๊ฒ์ผ๋ก ํ๊ณ , ์ด ๊ฒฝ๋ก๋ฅผ ์ค์ ํด๋๋ฉด ํธ๋ฆฌํ๋ฐ ์์์ ํ ๊ฒ์ฒ๋ผ ์ ์ดํ์ ์ฌ์ฉ์ ํ๊ฒฝ๋ณ์์ 'Path'์ ์ถ๊ฐํ๋ฉด ๋๋ค.
์์ง ์๋ฆฌ๋ํฐ ์ธ์ด๋ ๋ฐ์ ํ๊ณ ์๋ค. ์ต์ ๋ฒ์ ์ ์ค์นํ๋ฉด ๋ช ๋ น์ด์ ์ฐจ์ด๊ฐ ์์ ์ ์์ผ๋ ์ฃผ์ํด์ผ ํ๋ค. ๊ฒฝ์ฐ์ ๋ฐ๋ผ์๋ ์์ ์ฑ ๋ฌธ์ ๋ก ๋ฎ์ ๋ฒ์ 0.5 ๋๋ 0.4.25๋ฅผ ์ค์นํ์ฌ ์ฌ์ฉํ๊ธฐ๋ ํ๋ค.
๊ทธ๋ฆฌ๊ณ Python์์ ์ฌ์ฉํ๋ ค๋ฉด pip install py-solc
ํ์ฌ ์ผ์ข
์ Wrapper๋ฅผ ์ค์นํ๋ฉด, ์ค์น๋ solidity๋ฅผ ์คํํ์ฌ ๊ฒฝ์ ํด ์ฌ์ฉํ๋ค.
๋ธ๋ก์ฒด์ธ ํ๋ก๊ทธ๋๋ฐ์ ๋ฉํฐ์ธ์ด๋ก ๊ฐ๋ฐ๋๋ค. ํ์ฌ๋ geth, solidity๋ฅผ ์ค์นํ์๊ณ , ๋๋จธ์ง๋ ์ฐจ์ธฐ ๋ฐฐ์ฐ๊ฒ ๋๋ค. ์ธ์ด๋ณ๋ก ํ๋กฌํํธ๊ฐ ๋์ผํ ๊ฒฝ์ฐ๋ ์์ด, ์ฑ ์์๋ ํ๋กฌํํธ์ ์ธ์ด๋ช ์ ํ๊ธฐํด์ ํผ๋์ ๋๊ณ ์ ํ๋ค.
ํ๋กฌํํธ ํ๊ธฐ | ํ๋กฌํํธ์ ์คํ ํ๊ฒฝ |
---|---|
pjt_dir> |
๋ช
๋ น์ฐฝ ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ์์์ ํ๋กฌํํธ ์: C:\Users\jsl\Code\201711111> |
geth> |
pjt_dir> ์์ geth attach http://localhost:8345 ํ๋ฉด ์๊ธฐ๋ geth ์ฝ์์ ํ๋กฌํํธ |
node> |
pjt_dir> ์์ node ํ๋ฉด ์๊ธฐ๋ node ์ฝ์์ ํ๋กฌํํธ |
javascript> |
์๋ฐ์คํฌ๋ฆฝํธ ์ฝ์์ ํ๋กฌํํธ |
>>> |
Python ๊ณ ์ ํ๋กฌํํธ |
- ๋ณดํต ๊ณ์ฝ์ ๋ฌธ์๋ก ์์ฑ๋์ง๋ง, ์ค๋งํธ ๊ณ์ฝ์ ๋ธ๋ก์ฒด์ธ์์ ์์ฑ๋๊ณ ์คํ๋๋ค. OX๋ก ๋ตํ์์ค.
- ์ค๋งํธ ๊ณ์ฝ์ด๋ผ๋ ์ฉ์ด๋ ์ธ์ , ๋๊ฐ ์ฒ์ ์ธ๊ธํ๋์ง ์ ์ผ์์ค.
- ๋นํธ์ฝ์ธ๋ ๋ธ๋ก์ฒด์ธ์ ๊ฐ์ง๊ณ ์์ง๋ง, ์ค๋งํธ ๊ณ์ฝ์ ๋ง๋ค ์๋ ์๋ค. OX๋ก ๋ตํ์์ค.
- ์๋์ฐจ ์๋ช ์ฃผ๊ธฐ์ ์ค๋งํธ ๊ณ์ฝ์ ์ ์ฉํ ์ ์๋์ง ์ค๋ช ํ์์ค.
- ์ปคํผ์ ๋ฌผ๋ฅ/์ ํต์ ๋ธ๋ก์ฒด์ธ์ ์ ์ฉํ ์ฌ๋ก๋ฅผ ์กฐ์ฌํด ๋ณด๊ณ , ์ด๋ค ์ ์ด ๊ฐ์ ๋์๋์ง ์ค๋ช ํ์์ค.
- ๋ธ๋ก์ฒด์ธ์ด ๋ค์ํ ์ฐ์ ์ ์ ์ฉ๋๊ณ ์๋ค. ํฌํ์๋ ์ ์ฉ๋๊ณ ์๋๋ฐ, ์ ์ฉ ์ ๊ณผ ๋น๊ตํ๋ฉด ์ด๋ค ๋ณํ๊ฐ ์๋ ๊ฒ์ธ์ง ์ค๋ช ํ์์ค.
- 2017๋ ๊ฒฝ๊ธฐ๋ ์ง์ญ๊ณต๋์ฒด์ ์์ฐ ๋ฐฐ๋ถ ํฌํ์ ์ฃผ๋ฏผ๋ค์ด ์จ๋ผ์ธ์ผ๋ก ์ง์ ์ฐธ์ฌํ๋๋ฐ, ์ด ๋ ๋ธ๋ก์ฒด์ธ์ ์ ์ฉํ์๋ค. OX๋ก ๋ตํ์์ค.
- ๋ํ์ ์ธ ์ค๋งํธ ๊ณ์ฝ ํ๋ซํผ์ผ๋ก ์ด๋๋ฆฌ์๊ณผ ํ์ดํผ๋ ์ ๋ฅผ ๊ผฝ์ ์ ์๋ค. ์ ๊ณตํ๋ ๋คํธ์ํฌ์ ์ฑ๊ฒฉ, ํฉ์ ๋ฐฉ์์ด ์ด๋ป๊ฒ ๋ค๋ฅธ์ง ์ค๋ช ํ์์ค.
- ํ์ดํผ๋ ์ ํ๋ซํผ์๋ ์ํธํํ๊ฐ ์๋ค. OX๋ก ๋ตํ์์ค.
- ๋์ผํ ํฉ์ ๋ฐฉ์์ธ ์์ ์ฆ๋ช ์ ์ฌ์ฉํ๋ค๊ณ ํด๋ ๋นํธ์ฝ์ธ๊ณผ ์ด๋๋ฆฌ์์ ๋ธ๋ก์ ์์ฑํ๋ ์๊ฐ์ ์ฐจ์ด๊ฐ ์๋ค. OX๋ก ๋ตํ์์ค.
- ์ด๋๋ฆฌ์ 2.0์ ์ด์ ๋ฒ์ ๊ณผ ํฉ์ ๋ฐฉ์์ ์์ด ์ด๋ค ์ฐจ์ด๊ฐ ์๋์ง ์ค๋ช ํ์์ค.
- ํ๋ ํฌํฌ์ ์ํํธ ํฌํฌ์ ์ฐจ์ด๋ฅผ ์ค๋ช ํ์์ค.
- ETC๋ ETH์ ๊ฐ๊ฒฉ์ด ๋ค๋ฅด๋ค. ์๋ก ๋ค๋ฅธ ์ด์ ๋ฅผ ์ค๋ช ํ์์ค.
- ํ๋ ํฌํฌ๊ฐ ์ธ์ , ์ ์ผ์ด๋ฌ๋์ง ๋ช ๊ฐ์ง๋ง ์๋ฅผ ๋ค์ด ์ค๋ช ํ์์ค.
- Ether๋ฅผ ๊ธฐ์ค์ผ๋ก Wei, Finney์ ๋จ์๋ฅผ ์ ์ผ์์ค.
- CBDC๋ Central Bank Digitial Currency์ ์ค์๋ง์ด๋ค. ์ค์์ํ์ด ๋ฐํํ๋ ๋์งํธ ํํ๋ฅผ ๋งํ๊ณ ํ๊ตญ์ ๋์งํธ ์ ๋ ๊ตญ๊ฐ๋ก์ ์ด๋ฏธ ๊ฒฐ์ ์ ํ์ฉํ๊ณ ์๋ค. OX๋ก ๋ตํ์์ค.
- Geth์ ๋ช ์นญ์ go ethereum์ ์ค์๋ง์ด๋ค. OX๋ก ๋ตํ์์ค.
- P2P๊ธฐ๋ฐ์ ๋ถ์ฐํ ํ์ผ ์ ์ฅ์๋ฅผ ์ ์ผ์์ค.
Code/myProect/
๋๋ ํ ๋ฆฌ์ src, scripts, eth, node_modules ๋ฑ ๊ทธ ํ์ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ๊ณdir
๋ช ๋ น์ด๋ก ์ถ๋ ฅํ์์ค.solc --version
์ ์คํํ์ฌ, ์ค์น๋ ๋ฒ์ ์ ์ถ๋ ฅํ์์ค.geth -h
๋ก geth์ ๋์๋ง์ ์ถ๋ ฅํ์์ค.