Ownable Class
ICO๋ฅผ ๋ง๋ฌด๋ฆฌํ๊ณ ๋๋ฉด, ๊ฐ๋ฐํ ๋ฐ ์ฌ์ ๊ฐ๋ฐํ์ ์์์น ๋ชปํ ๋ง์ ์ผ์ ๊ฒช๊ฒ ๋๋ค. ๊ฐ๋ฐํ์ ์ด๋ฏธ ๋ฐฐํฌ๋์ด ์๋ ํ ํฐ ์ปจํธ๋ํธ์ ownable ํจ์๋ฅผ ๋๋์ผ๋ก ์คํํด์ผ ํ ์๋ ์๋๋ฐ, ํ ํฐ์ release ํ๊ธฐ ์ ์ ๋ฏธ๋ฆฌ ์์ธก์ ํ๋ค๋ฉด ๋ฌธ์ ๊ฐ ์์ง๋ง, ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ๊ฐ ๋๋ค์์ด๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ setTranferAgent()์ผ ์๋ ์๊ณ , transferFrom() ์ผ ์๋ ์๋ค.
Ownable์ Solidity์ ํ๋ก๊ทธ๋จ ํจํด ์ค์ ํ๋์ด๋ค(https://solidity.readthedocs.io/en/v0.4.25/common-patterns.html). ์ด ํจ์๋ฅผ ์์๋ฐ์ ํ, ํจ์ ์์ onlyOwner(์์ ์๋ง ์ฌ์ฉ) ๋ผ๊ณ ์ง์ (function modifier)ํ๋ฉด ํด๋์ค์์ Owner(์์ ์)๋ง์ด ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์๊ฒ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ Owner(์์ ์)๋ ์ค๋งํธ ์ปจํธ๋ํธ์ ์์ฑ๋ ์ฃผ์๋ก ์ค์ ๋๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ฉฐ, OpenZeppelin( https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/ownership/Ownable.sol)์์ ์ ์๋ ๋ฒ์ ์ด ์์ฃผ ์ฌ์ฉ๋๊ณ ์๋ค.
Problem
Ownable์ ๋ฌธ์ ์ ์ ์ค๋ฆฌ์ง๋์ด ์๋ ๋ค๋ฅธ ์ค๋งํธ ์ปจํธ๋ํธ(smart contract)์์ ํ๋ก๊ทธ๋จ ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ด๋ค. ๊ฐ์ ์ง๊ฐ ์ฃผ์์์ ์์ฑ๋์๋ค๋ฉด ๊ฐ๋ฅํ ๊ฒ ๊ฐ์ง๋ง ๊ทธ๋ ์ง ์๋ค. ์ค๋งํธ ์ปจํธ๋ ํธ๋ฅผ ์์ฑํ๊ณ ์ค๋ฆฌ์ง๋ ์ปจํธ๋ ํธ์ ์ด๋ฅผ ์คํํ๊ณ ์ ํ ๋, ์๋ก์ด ์ค๋งํธ ์ปจํธ๋ ํธ๋ฅผ ๋ง๋ ์ด๊ฐ ์ค๋๊ฐ ๋์ง ์๊ณ ์๋กญ๊ฒ ์์ฑ๋ ์ปจํธ๋ ํธ ์์ฒด๊ฐ ์ค๋๊ฐ ๋๊ธฐ ๋๋ฌธ์ด๋ค.
ํ์ฌ ์ค๋งํธ ์ปจํธ๋ ํธ์ creator๊ฐ ๋ณธ์ธ์ด๋ฉด์ sender๋ฅผ ๊ธฐ๊ฐํ๊ณ ํจ์๋ฅผ ์คํํ๋ ๋ฐฉ๋ฒ์ ์๋ ๊ฒ์ผ๋ก ์๊ณ ์๋ค. ๋ฐ๋ผ์ onlyOwner๊ฐ ๋ถ์ ํจ์๋ฅผ ๋ค๋ฅธ ์ค๋งํธ ์ปจํธ๋ ํธ์์ ์คํํ๋ ค๋ฉด ๋ค๋ฅธ ๋ฌด์ธ๊ฐ๋ฅผ ํด์ผ๋ง ํ๋ค.
๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค์ด์ ์คํํ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ ์ด์๋ ๋ฌธ์ ๊ฐ ์๋ค. ์คํฌ๋ฆฝํธ๋ฅผ owner๊ฐ ์คํํ๋ ค๋ฉด ์ผ๋ฐ์ ์ผ๋ก hardware wallet์ ์ฌ์ฉํ๋๋ฐ, ์คํฌ๋ฆฝํธ์์ ํ๋์จ์ด ์๋ ์ ์ฐ๊ฒฐํ๋ ๊ฒ๋ฟ๋ง ์๋๋ผ ๊ฐ๋ฐ์๋ค์ด ์ค์ ํ๋์จ์ด ์๋ (์ผ๋ฐ์ ์ผ๋ก ๊ต์ฅํ ๋ง์ ์์ฐ์ด ๋ค์ด์๋)์ ์ฃผ๊ณ ๋ฐ์ผ๋ฉด์ ๊ฐ๋ฐํ๋ ๊ฒ์ด ์ฝ์ง ์๊ธฐ ๋๋ฌธ์ด๋ค.
What we did
์ฐ๋ฆฌ๋ ์ด๋ฅผ ํน๋ณํ ๋์์ธ ํจํด์ ๋ง๋ค์ด์ ํด๊ฒฐํ์๋ค. ์๋ก ๋ง๋ ์ปจํธ๋ ํธ์ ์ค๋์ญ์ ๋ถ์ฌํ๊ณ , ์ํ๋ ํจ์๋ฅผ ์คํํ ๋ค์ ๋ค์ ์ค๋์ญ์ ๋ณธ๋์ ํ๋์๊ฒ ์๋ ํน์ ์๋์ผ๋ก ๋๋ ค์ฃผ๋ ๋ฐฉ์์ด๋ค.
์ด๋ ๊ฐ๋จํ๊ฒ ๋ค๋ฆด ์ ์์ผ๋, ์คํํ๋๋ฐ ํฐ ๋ฆฌ์คํฌ๋ฅผ ๊ฐ๊ณ ์๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ๋ค์ํ ์ํ์ ์กฐ๊ฑด์ ๊ฐ์ง๊ณ ํ ์คํธ๋ฅผ ์งํํ์๋ค. ํ๋ฒ ์ปจํธ๋ ํธ์ ์ค๋์ญ์ ์๋ชป ๋ฐ๊พธ๋ฉด ๋ค์๋ ์ค๋์ญ์ ๊ฐ์ง๊ณ ์ฌ ์ ์์ผ๋ฉฐ, ํ ํฐ์ ์ ๊ทธ๋ ์ด๋ํ๋ ๋ฑ์ ๋ค๋ฅธ ๋์์ด ์ด๋ ค์์ง ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๋ํ ๋ช ๊ฐ์ง ์์ ์ฅ์น๋ฅผ ์ถ๊ฐ๋ก ๋ง๋ จํ์๋๋ฐ, ์ค๋์ญ์ ๋ฐ์ ์ฃผ์๋ก๋ง ๋ค์ ์ค๋์ญ์ ๋๋๋ ค์ฃผ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์๋ค. ์ด๋ฐ ๋ฐฉ์์ ์ค์๋ก ์ฃผ์๋ฅผ ์๋ชป ์ ๋ ฅํ๊ฑฐ๋ ํจ์๊ฐ ์๋ชป ํธ์ถ๋์์ ๋์ ์ต์ ์ ์ํฉ์ ๋ง์์ค๋ค.
์ค๋์ญ์ ์ ์กํ ๋๋ ํญ์ ๋ ๋ฒ ์ธ๋ฒ ์ด์ ํ์ธํ ๋ค, ์ปจํธ๋ ํธ๋ฅผ ์คํํ๋ ๊ฒ์ ์ถ์ฒํ๋ค.
์์ผ๋ก๋ ์ธ์์ด๋ฆฌ์์์ ์งํ๋๋ ๋๋ถ๋ถ์ ํ๋ก์ ํธ๋ ๊ณต๊ฐ๋ก ์งํํ ์์ ์ด๋ ๊ด๋ จ ์์์ ์ธ์์ด๋ฆฌ์์ ๋ค์ํ ์ฑ๋์ ํตํด ํ์ธํ์๊ธฐ ๋ฐ๋๋๋ค.
์ธ์์ด๋ฆฌ์ ๋ํ
๊น๊ฒฝํ
Note: ์ ํฌ๊ฐ ์ฌ์ฉํ ์ปจํธ๋ํธ๋ TokenMarketNet์ ๊ธฐ๋ณธ์ผ๋ก ํ๋ฉฐ, ํ์์ ์์ ํ ์ฌํญ์Hosho๊ทธ๋ฃน์๊ฒ ๊ฐ์ฌ๋ฅผ ๋ฐ์์ต๋๋ค.
Join Our Community
Insureum Homepage: https://insureum.co
Kakaotalk: https://open.kakao.com/o/ggNWf8K
Facebook: https://www.facebook.com/ziktokorea
Instagram: https://www.instagram.com/insureum_by_zikto
Telegram (Korean): https://t.me/insureum_korea