๋ง์ดํฌ๋ก์ํํธ, ๊ธฐ์ ์ฉ ๋ธ๋ก์ฒด์ธ โ์ฝ์ฝ ํ๋ ์์ํฌโ ์ ๋ฌธ๊ธฐ์ฌ๋ฅผ ๋ณด๊ณ MS์ COCO framework์ ๋ํด์ ์์๋ณด์๋ค.
๊ฐ๋ตํ๊ฒ, COCO framework๋ ๊ธฐ์ ์ ์ํ ์ฉ๋์ด๊ณ , ์์ฒด์ ์ธ ๋ธ๋ญ์ฒด์ธ์ ์๋๊ณ , ์ด๋๋ฆฌ์, R3 ์ฝ๋ค ๋ฑ์ ๋ธ๋ญ์ฒด์ธ์ ์ง์ํ๋ค. ์๋๋ ์ ๋ฌธ๊ธฐ์ฌ ์ค ์ผ๋ถ์ด๋ค.
"์ด ํ๋ ์ ์ํฌ๋ ๋์งํธ ๋ถ์ฐ์์ฅ ์์ฒด๋ ์๋์ง๋ง, ์ด๋๋ฆฌ์(Ethereum)๊ณผ ๊ฐ์ ๊ธฐ์กด ๋ธ๋ก์ฒด์ธ์ ๋ณด๋ค ๊ธฐ์ ์์ ํ์ฉํ๊ธฐ ์ฝ๊ฒ ํธ๋์ญ์ (Transaction) ์ฒ๋ฆฌ๋๊ณผ ์๋, ๊ทธ๋ฆฌ๊ณ ํธ๋์ญ์ ์ ๋ํ ์ก์ธ์ค ์ ์ด๋ฅผ ๊ธฐ์ ์ด ์ฝ๊ฒ ๊ด๋ฆฌํ๋ ๊ฒ์ ์ ๊ณตํ๋ค. ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ์ ํตํฉ ๋ ๊ฒฝ์ฐ ์ฝ์ฝ ํ๋ ์์ํฌ๋ ์ด๋น 1,600๊ฐ ์ด์์ ํธ๋์ญ์ ์ฒ๋ฆฌ์๋๋ฅผ ์๋ํ๋ค.
์ด ํ๋ ์์ํฌ๋ ๋ชจ๋ ๋์งํธ ๋ถ์ฐ์์ฅ ํ๋กํ ์ฝ๊ณผ ํธํ๋๋ค. ํ์ฌ ์ฝ์ฝ ํ๋ ์์ํฌ ๊ตฌํ์๋ R3 ์ฝ๋ค(Corda), ์ธํ ํ์ด๋ฒ๋ ์ ์์ฐํฌ์ค(Intel Hyperledger Sawtooth), JP๋ชจ๊ฑด ์ฟผ๋ผ(JP Morgan Quorum) ๋ฐ ์ด๋๋ฆฌ์(Ethereum) ๋ฑ 10์ฌ ๊ฐ ๋์งํธ ๋ถ์ฐ์์ฅ ๊ธฐ์ ์ ์ง์ํ๋ค."
COCO framework์ ํน์ง์ ๋ค์๊ณผ ๊ฐ๋ค.
์๋๋ Coco ํ๋ ์์ํฌ์ ๋ฐฑ์์ ์๋ ๊ทธ๋ฆผ์ ์ค์ฌ์ผ๋ก ๊ฐ๋จํ ์ค๋ช ํ ๊ฒ์ด๋ค.
Coco ํ๋ ์์ํฌ์ ๊ตฌ์กฐ๋ 1) TEE (trusted execution environments, ์ ๋ขฐ ์คํํ๊ฒฝ), 2) Coco ํ๋ ์์ํฌ, 3) ๊ธฐ์กด ๋ธ๋ญ์ฒด์ธ ๋ฐ DApp(๋ถ์ฐ ์ดํ)๋ก ๊ตฌ์ฑ๋๋ค.
TEE๋ ๊ธฐ์กด์ ์๋ ๊ฒ์ผ๋ก, ๋ถ์ฐ ๋ ์ (๋ธ๋ญ์ฒด์ธ)์ ์ด์ํ๋ ๋ ธ๋๋ฅผ ์ ๋ขฐํ ์ ์๋ ๋คํธ์ํฌ๋ฅผ ๋ง๋๋ ์ญํ ์ ํ๋ค. ์๋์ ์ค๋ช ์ ์ฐธ์กฐ.
๊ทธ๋ฆฌ๊ณ ๋งจ์์๋ ๊ธฐ์กด์ ๋ธ๋ญ์ฒด์ธ ๋ฐ DApp์ด ์์นํ๋ค.
๊ทธ๋ฆฌ๊ณ , ์ด๋ค ์ค๊ฐ์ Coco ํ๋ ์์ํฌ๊ฐ ์์นํ๋ค.
Coco๋ ์๋์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
์๋์ ๋นจ๊ฐ ๋ถ๋ถ์ด Coco์์ ์ ๊ณตํ๋ ๋ถ๋ถ์ด๋ฉฐ ๊ธฐ๋ฅ์ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ๋ค.
๊ทธ๋ฆฌ๊ณ , ์ด๊ฒ์์ ์ ์ธ๋ ๋ถ๋ถ์ 1) ๋ถ์ฐ ์์ฅ(๋ธ๋ญ์ฒด์ธ) ๋ชจ๋ธ, 2) VM(EVM), 3) ๊ฑฐ๋ ์ฒ๋ฆฌ ์ด๊ณ , ์ด ๋ถ๋ถ์ ๊ธฐ์กด์ ์ด๋๋ฆฌ์ ๋ฑ์ด ์ ๊ณตํ๋ค.
Coco ์์คํ ์ ์ ๋ขฐํ ์์๋ ๊ฒ์ฆ ๋ ธ๋ (validating nodes, VN)๊ฐ ๋ถ์ฐ๋ ๋คํธ์ํฌ์ด๋ฉฐ, ๊ฐ ๋ ธ๋๋ Coco Framework ๋ฐ ํตํฉ ๋ธ๋ก์ฒด์ธ ํ๋กํ ์ฝ์ ์คํํ๋ค.
VN์ ๊ฑฐ๋๋ฅผ ๋ฐ์๋ค์ด๊ณ ๋คํธ์ํฌ์ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฐธ์ฌํ๋ค. ์ ํํ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ผ ํ๋ ๋๋ ์ผ๋ถ VN์ด ํธ๋์ญ์ ์ ์ฒ๋ฆฌํ๊ณ ์ค๋งํธ ๊ณ์ฝ ์ฝ๋๋ฅผ ์คํํ๋ค.
Coco ํ๋ ์์ํฌ๋ 1) host (์ ์ฌ์ ์ผ๋ก ์ ๋ขฐํ ์์๋ hypervisor ๋๋ virtual machine monitor์ด๋ผํจ, ๋ฐ ๋ ธ๋์ ์ด์ ์ฒด์ )์ 2) TEE ๋ด์ ๋ณดํธ๋๊ณ ์์ ํ ์ปจํ ์ด๋์ธ enclave๋ก ๋๋์ด์ง๋ค.
์์คํ ์ ๋ชจ๋ ๋ฏผ๊ฐํ ๊ตฌ์ฑ ์์๋ enclave์์ ์คํ๋๋ฉฐ ๋ฌด๊ฒฐ์ฑ, ๊ธฐ๋ฐ ์ ์ง ๋ฐ ์์ฅ ๋ณด์์ ์ ์ง ๊ด๋ฆฌํ๋ค.
Coco ๋คํธ์ํฌ์๋ 1) ๋ฉค๋ฒ์ 1)์ฐธ๊ฐ์์ ๋ ๊ฐ์ง๊ฐ ์๋ค.
๋ฉค๋ฒ: ๋คํธ์ํฌ์ ๋ฉค๋ฒ, TEE์์ ์คํ๋๋ ์ฝ๋ ๋ฐ ๋คํธ์ํฌ ์ ์ฑ ์ ์ ์๋ฅผ ํฌํจํ์ฌ ๋๊ฐ ๋คํธ์ํฌ์์ ๊ฑฐ๋ ํ ์ ์๋์ง, ๊ทธ๋ฆฌ๊ณ ๊ฑฐ๋ฒ๋์ค๋ฅผ ํต์ ํ ์์๋ค.
์ฐธ๊ฐ์: ํ์๊ณผ ๋ฌ๋ฆฌ ํฌํ๋ฅผ ํ ์ ์์ผ๋ฏ๋ก ๋๊ฐ ๋คํธ์ํฌ ๋๋ ๊ทธ ์ง๋ฐฐ ๊ตฌ์กฐ์ ์ง์ ์ก์ธ์ค ํ ์ ์๋์ง์ ๋ํ ์ด์ ํต์ ๊ถํ์ด ์๋ค. ์ฐธ๊ฐ์๋ ๋คํธ์ํฌ ๊ตฌ์ฑ์์ ์ํด ๊ฒฐ์ ๋๋ฉฐ, ๊ตฌ์ฑ์๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฐธ๊ฐ์๋ ๋คํธ์ํฌ์์ ๊ฑฐ๋๋ฅผ ํ ์ ์๋ค.
๋ชจ๋ ๋ฉค๋ฒ๊ณผ ์ฐธ์ฌ์๋ ๋น๋ฐ/๊ณต๊ฐํค ์ (PrivKeyMi, PubKeyMi ๋ฐ PrivKeyPi, PubKeyPi)์ ๊ฐ์ง๋ฉฐ, X.509 ์ธ์ฆ์๋ก Coco ๋คํธ์ํฌ์์ ์๋ณ๋๋ค.
๊ทธ๋ฆผ 5๋ ์์ฉ ํ๋ก๊ทธ๋จ ํธ๋์ญ์ ์ ์์ ํ๋ฆ์ ๋ณด์ฌ์ค๋ค.
๊ฑฐ๋๋ฅผ ๋ณด๋ด๊ธฐ ์ ์ ์์ฉ ํ๋ก๊ทธ๋จ (์ : Ethereum DApp)์ด ๋คํธ์ํฌ์ VN๊ณผ ์ธ์ฆ๋๊ณ ์ํธํ ๋ ์ฐ๊ฒฐ์ ์ค์ ํ๋ค.
Coco ํ๋ ์ ์ํฌ๋ ํธ๋์ญ์ ์ ์์ ํ๋ฉด, ์ํธํด๋ ํ ๋ค์ ํ๋กํ ์ฝ์ ํด๋น ๋ธ๋ก์ฒด์ธ ์ด๋ํฐ๋ก ๋ณด๋ธ๋ค.
์ด๋ํฐ๋ ํธ๋์ญ์ ์ธํธ๋ฅผ ์์ํ๊ณ ๋ธ๋ก์์ฑ ๋ก์ง ๋ฐ Ethereum ๊ฐ์ ๋จธ์ (EVM)๊ณผ ๊ฐ์ ๋ธ๋ก์ฒด์ธ ํ๋กํ ์ฝ์ ํ์ ์์คํ ์ ๊ตฌ์ฑ ์์์ ์ํธ ์์ฉํ์ฌ ํธ๋์ญ์ ์ ์ฒ๋ฆฌํ๋ค.
์ด๋ํฐ๋ ๊ตฌ์ฑ๋ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ๋ฅผ ํตํด ๋ชจ๋ ์ํ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์งํ๊ณ ๋ณต์ ํ๋ ๋ถ์ฐ ์ ์ฅ์๋ฅผ ํตํด ํธ๋์ญ์ ์ธํธ๋ฅผ ์ปค๋ฐํฉ๋๋ค.