
์๋
ํ์ธ์, ๋ชจ๋์ ์ฐ๊ตฌ์ ๋ธ๋ก์ฒด์ธ ์ฐ๊ตฌ์ค์
๋๋ค.
10์ 27์ผ 4ํ์ฐจ ์คํฐ๋์์ ์งํํ Introducing Ethereum and Solidity์ 4์ฅ ์์ฝ๋ณธ์
๋๋ค.
4์ฅ ์๋ฆฌ๋ํฐ ์ธ์ด
๋ฌธ์ ์ ๊ธฐ
- ์ค๋งํธํฐ์ผ๋ก ๋ฌธ์๋ฅผ ๋ณด๋ด๋ ๊ฑด ๋๋ฌด๋ ์ฌ์ด๋ฐ,
- ์ค๋งํธํฐ์ผ๋ก ๋์ ๋ณด๋ด๋ ๊ฑด ๋๋ฌด๋ ์ด๋ ต๋ค?
- ํด์์ง ์๋๋ฆฌ์ค: ํ์ ์ํ๊ณ ์ ์ฉ์นด๋๋ง ๋ค๊ณ ์๋๋ฐ, ๊ฐํ๋ ์ง์์ด ์นด๋ ๋ฆฌ๋๊ธฐ๊ฐ ์์. ์ค๋งํธํฐ๋ง ์์.
์ปดํจํฐ ํ๊ฒฝ
- ๋ฌดํ ๋ฃจํ๊ฐ ๊ธฐ๋ณธ์ด๋ฉฐ, ์ธ ๊ฐ์ง ์ข
๋ฅ์ ์์
๊ณต๊ฐ์์ ์์
์ด ์ํ๋จ
- ์คํ(stack): ๊ฐ์ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ ์ ์๋ ์ผ์ข
์ ์ปจํ
์ด๋ ์๋ฃํ. ์คํ์ ๊ฐ์ ์ถ๊ฐํ๋ ๋์์ ํธ์(push), ๊บผ๋ด๋ ๋์์ ํ(pop).
- ๋์ ๋ฉ๋ชจ๋ฆฌ(dynamic memory)๋ ํ(heap)์ด๋ผ๋ ์ด๋ฆ์ผ๋ก๋ ๋ถ๋ฆฌ์ฐ๋ฉฐ, ๋ฌดํํ ํ์ฅ ๊ฐ๋ฅํ ๋ฐ์ดํธ ๋ฐฐ์ด์ ๋งํ๋ค. ๋์ ๋ฉ๋ชจ๋ฆฌ๋ ํ๋ก๊ทธ๋จ์ด ๋๋๋ฉด ๋ฆฌ์
- ํค/๊ฐ ์ ์ฅ์(key/value store): ๊ณ์ ์๊ณ ๋ฅผ ๋ณด๊ดํ๋ฉฐ, ์ค๋งํธ ๊ณ์ฝ ๊ณ์ ์ ๊ฒฝ์ฐ ์๋ฆฌ๋ํฐ ์ฝ๋๋ ๋ณด๊ด
๋์ ํํ
- ๋ฒ์ฉ ์ํธํํ๋ผ๋ ๊ฐ๋
์ ๊ถ๊ทน์ ์ผ๋ก ์ง๊ตฌ์์ ๋ชจ๋ ์ธ๊ฐ์ด ํด๋์ ํ์ ์ํธํํ ์ง๊ฐ์ ๋ด๋ ค๋ฐ๊ณ ์ฌ์ฉํ๋ค๊ณ ๊ฐ์ .
- ์ด๋ฌํ ๋ชฝ์์ ์ด๋๋ฆฌ์์ ๋ก๋๋งต๊ณผ๋ ๋ฌด๊ด.
- ๋์ ์ด๋๋ฆฌ์ ํต์ฌ ๊ฐ๋ฐํ์ ์ 3์๊ฐ ํน๋ณํ ๋ชฉ์ ์ผ๋ก ๋ธ๋๋ฉํ์ฌ ์ฌ์ฉํ ์ ์๋ ๋์ ํํ(complementary currencies), ๋๋ ๋ง์ถคํ ํ ํฐ(custom token)์ ์ฝ๊ฒ ๋ง๋ค ์ ์๊ฒ ํ๋ ๋ฐฉ์์ ์ฑํ
- ์ ์ฉ์นด๋ ํฌ์ธํธ๊ฐ ์ด ์ฉ๋์ ๋ถํฉํ๋ค.
- ์ด๋ฌํ ์ 3์(๊ธฐ์กด ๊ธฐ์
, ์คํํธ์
, ์ง๋ฐฉ ์์น ๋จ์ฒด, ๋ํ ๋๋ ๋น์ ๋ถ ๊ธฐ๊ตฌ)๋ ํผ๋ธ๋ฆญ ์ฒด์ธ ๋๋ ๋๊ท๋ชจ ํ๊ฐํ ์ฒด์ธ์ ํตํด ๋ค์ํ ์ ํ์ ํ ํฐ์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์ด๋ ์ง์ง ๊ธ๋ก๋ฒ ์ํ ์์คํ
์ด ๋ค์ํ ํตํ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์๊ณผ ์ ์ฌํจ.
๋์ํํ์ ํ์์ฑ
- ์๊ท๋ชจ ๊ณต๋์ฒด ๋ด์์ ์ง์ญ ๊ฒฝ์ ๋ฐ์ ์ ์ด์ง
- ์๊ท๋ชจ ๊ณต๋์ฒด์ ์ฌํ์ ์๋ณธ ๊ตฌ์ถ
- ์ง์ ๊ฐ๋ฅํ ์ํ ์์์ ์์ฑ
- ์ฃผ๋ฅ ํํ๊ฐ ์ถฉ์กฑ์ํค์ง ๋ชปํ๋ ์์๋ฅผ ์ถฉ์กฑ
- ์๋ฆฌ๋ํฐ ํ๋ก๊ทธ๋๋ฐ์ ์ฌ์ฉํ๋ฉด ๋๊ตฌ๋ ๊ฐ๋จํ ํ ํฐ ๊ณ์ฝ ์์ฑ์ ํตํด ๋์ ํํ๋ฅผ ๋ง๋ค ์ ์๋ค!
๋ค์ํ EVM์ฉ ์ธ์ด
- Solidity
- Serpent(Python-alike)
- LLL(Lisp-alike)
- Mutan(์ง์ ์ค๋จ)
EVM ํ๋ก๊ทธ๋๋ฐ ํ์ต์ ๋ํ์ฌ
- ๊ฐ๋ฐ์๊ฐ ์๋๋ผ๋ ์ซ์ง ๋ง์. ๋์ ์ต๊ด์ด ์๋ ๊ฒ ๋ ์ ๋ฆฌํจ. (???)
- ์ด๋๋ฆฌ์์์๋ ์ผ๋ฐ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐฐํฌํ๊ณ ํ์ฅํ๋ ๋ฒ๊ฑฐ๋ก์์ด ๊ฑฐ์ ์์. Dapp์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ์ฐ๋ ๋ถ์ฐ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐฑ์๋์ ํ์ํ ๋ชจ๋ ์ค๋งํธ ๊ณ์ฝ์ ๋ช ๊ฐ์ง ๋ฌธ์๋ก ๊น๋ํ๊ฒ ๋ฌถ์ด์ EVM์ผ๋ก ์ ์กํ ์ ์์ผ๋ฉฐ ๊ณง๋ฐ๋ก ๊ธ๋ก๋ฒํ๊ฒ ์คํ ๊ฐ๋ฅ.
- ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์ ๊ทผํ ์ ์๋ โํ์ด๋ธ๋ฆฌ๋โ ์ด๋๋ฆฌ์ dapp์ ๊ฐ๋ฐํ๋ ์ฌ๋ก๋ ์์. ์ด๋ ์ง๋ถ์ ์ถ๊ฐํ๋ ์์
์ ๊ทธ๋ฆฌ ๋ง์ ์์ ํ์๋ก ํ์ง ์์
- ๊ทธ๋๋ ์ด๋๋ฆฌ์ ์์ฑ ์ ์๋ ์ด๋๋ฆฌ์ ํ๋ก์ฝ๋ง์ผ๋ก ํธ์คํ
ํ๋๊ฒ ํธํ๋ค.
์๋ฆฌ๋ํฐ ํน์ง
- ์ ์ ์๋ฃํ ์ธ์ด์ด๋ฉฐ, ์์, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ๋ณต์กํ ์ฌ์ฉ์ ์ ์ ์๋ฃํ์ ์ง์
- ์ด์
๋ธ๋ฆฌ ์ฝ๋๋ฅผ ์ธ๋ผ์ธ์ผ๋ก ์์ฑํ ์ ์์
- ๋ฐ๋ณต๋ฌธ ๊ตฌํ์ด ์๋ฐ์คํฌ๋ฆฝํธ/C์ ๊ฑฐ์ ๋์ผ. for (i = 0; i < 10; i++) {...}
- High-level ์ธ์ด์ด๋ฉฐ ํ์๊ฒ์ฆ(formal verification)์ด ์ฉ์ดํจ
ํ์๊ฒ์ฆ์ ํ์์ฑ
- โ๋๊ตฐ๊ฐ๊ฐ ๋ฌดํ ๋ฃจํ๋ฅผ ์์ฑํด์ ๊ธฐ๊ณ๋ฅผ ๋ง๋น์ํค๋ ๊ฒ์ ์ด๋ป๊ฒ ๋ง์ ์ ์์๊น?โ
- ๊ณต์ ์ง์ ๋น๊ทน(tragedy of the commons), ๋๋์ ํด์ด์ ๋ํ ๋๋น
- ๋ผ์ด์ค์ ์ ๋ฆฌ(Riceโs theorem)์ ๋ฐ๋ฅด๋ฉด, ์ด๋ค ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ ํ๋ ํน์ฑ์ ์ํ์ ์ผ๋ก ๊ฒฐ์ ๋ถ๊ฐ๋ฅํ ๊ฒ์ด ๋๋ฌธ์ ์๋ฆฌ๋ํฐ ์ฝ๋๊ฐ ์ข
๋ฃ๋ ๊ฒ์์ ๋ถ๋ช
ํ ์์ธกํ ์ ์๋ ๋ ๋ค๋ฅธ ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ ์์ฑํ ์๋ ์์.
- EVM์ ๋ธ๋ก๋น ๊ณ์ฐ ๋จ๊ณ ์, ๊ฒฐ์ ๋ก ์ ์ธ์ด ๋ฐ ๊ฐ์ค ๋น์ฉ์ ๋ํ ์๊ฒฉํ ์ ํ์ ํฌํจํ์ฌ ๋ค์ํ ๋ฐฉ์์ผ๋ก ์ด๋ฌํ ํ์ค์ ์ํ ์์๋ฅผ ๊ทน๋ณต. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ๊ฒฝ์ ์ ์ธ์ผํฐ๋ธ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ณต๊ฒฉ์๋ ํญ์ ๋ฐฉ๋ฒ์ ๋ชจ์ํ ๊ฒ.
ํ๋ง ์์ ์ด ์๋์์ด?
- ์ค์ธ๊ณ์์ ๊ณต์ฉ ์์คํ
์ ์ค๊ณํ ๋ ํ๋ง ์์ ์ ํ์์ ๋ถ๊ณผ
- ์๋ฆฌ๋ํฐ ์ค๋งํธ ๊ณ์ฝ ์คํ์ด ๊ฐ์ง๋ ์ ํ์ ์ธ ์ฑ๊ฒฉ์ EVM์ด ์คํํ ํ๋ก๊ทธ๋จ์ ๋์์ ์ด๋ก ์ ์ผ๋ก ์์ธกํ ์ ์๊ธฐ ๋๋ฌธ์, ์ค์ง์ ์ผ๋ก EVM์ ํ๋ง ์์ ์ฑ์ ๊ฐ์ง์ง ์๋๋ค?
- ๊ณ ์์ค ์ฝ๋๋ ํ์ ๊ฒ์ฆ์ด ๊ฐ๋ฅํ์ง๋ง, ์ปดํ์ผ ์ดํ์ ๋ฐ์ดํธ์ฝ๋๋ ์ฌ์ค์ ๊ฒ์ฆ์ด ๋ถ๊ฐ๋ฅ
- ๊ฒฐ๊ตญ ์ ์ผํ ๋ต์ ๋ฌดํํ ํ
์คํธ
- Ropsten ํ
์คํธ๋ท: ์๋๊ผญ์ง๋ฅผ ํ๋ฉด ์ด๋๊ฐ ๋์จ๋ค
์ค์ต ๋ฐฉ๋ฒ
- ์ค๋น๋ฌผ 1: ํ
์คํธ ํธ์ง๊ธฐ
- ์ค๋น๋ฌผ 2: ๋ฏธ์คํธ ์ง๊ฐ
- ์ค๋น๋ฌผ 3: ๋ธ๋ผ์ฐ์ ์๋ฆฌ๋ํฐ ์ปดํ์ผ๋ฌ(https://ethereum. github.io/browser-solidity/ )
- ํ
์คํธ ํธ์ง๊ธฐ์ ์์ฑํ ์๋ฆฌ๋ํฐ ์ฝ๋๋ฅผ ๋ธ๋ผ์ฐ์ ํ ์๋ฆฌ๋ํฐ ์ปดํ์ผ๋ฌ์ ๋ณต๋ถ
- ์ปดํ์ผ๋ฌ์์ ์ฝ๋๋ฅผ ๋ฐ์ดํธ์ฝ๋๋ก ์ปดํ์ผํ๊ณ , ํด๋น ๋ฐ์ดํธ์ฝ๋๋ฅผ ๋ฏธ์คํธ์ ๋ณต๋ถ
- ๋ฐฐํฌ
ํผ๋ธ๋ฆญ/ํ๋ผ์ด๋น ํจ์ - ๊ธฐ์กด ๊ฐ์ฒด์งํฅ์ ํด๋์ค ๋์ ๊ณ์ ์ผ๋ก ๋์ฒด๋์๋ค๊ณ ๋ณด๋ฉด ๋จ
- public: ์ธ๋ถ ๋ฐ ๋ด๋ถ ๊ณ์ ์์ ๋ณผ ์ ์๋ค(์ ์ฅ ๋ฐ ์ํ ๋ณ์์ ๋ํ ์ ๊ทผ์ ํจ์๊ฐ ๋ง๋ค์ด์ง).
- private: ํ์ฌ์ ๊ณ์ฝ ๊ณ์ ์์๋ง ๋ณผ ์ ์๋ค(๊ธฐ๋ณธ๊ฐ).
๊ธฐ๋ณธ ๋ณ์ํ - ๋ชจ๋ 256๋นํธ
- ๋ถ๋ฆฌ์ธ
- ๋ถํธ ์๋ ์ ์ ๋ฐ ๋ถํธ ์๋ ์ ์
- ์ฃผ์(20๋ฐ์ดํธ)
- ๋์ ๋ฐ์ดํธ ๋ฐฐ์ด
- ๋ถ๋ ์์์ ์
- ์ ๋ฆฌ์ ๋ฐ ์ ์ ๋ฆฌํฐ๋ด
- ๋ฌธ์์ด ๋ฆฌํฐ๋ด
- 16์ง์ ๋ฆฌํฐ๋ด
- ์ด๊ฑฐํ
๋ณตํฉ ์๋ฃํ - 256๋นํธ๋ณด๋ค ํฌ๊ธฐ ๋๋ฌธ์ ๊ฐ์ค ๋น์ฉ ์ปค์ง ์ ์์
- ๋ฐฐ์ด
- ๋ฐฐ์ด ๋ฆฌํฐ๋ด/์ธ๋ผ์ธ ๋ฐฐ์ด
- ๊ตฌ์กฐ์ฒด
- ๋งตํ
๊ฐ์ฌํฉ๋๋ค.
https://drive.google.com/open?id=1Vm-3jw2VAKJNQDjppBmhPZhb5_nthChDPbz-Ws7TKJo