Hyperledger Frabric(Key Concepts Part 1) - NomadJin/Blockchain-Study GitHub Wiki
์๊ฐ
Hyperledger Fabric์ ๋์ ์์ค์ ๊ธฐ๋ฐ์ฑ, ํ๋ ฅ์ฑ, ์ ์ฐ์ฑ ๋ฐ ํ์ฅ์ฑ์ ์ ๊ณตํ๋ ๋ชจ๋ํ ์ํคํ ์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ถ์ฐ ์์ฅ ์๋ฃจ์ ํ๋ซํผ์ด๋ค. ๋ค์ํ ์์๋ค์ ํ๋ฌ๊ทธํ ๊ตฌํ์ ์ง์ํ๊ณ ์ฌ์ ๊ฒฝ์ ์ํ๊ณ ์ ๋ฐ์ ๊ฑธ์ณ ์กด์ฌํ๋ ๋ณต์ก์ฑ์ ์์ฉํ๋๋ก ์ค๊ณ๋์๋ค.
์ด๋ฅผ ์ฒ์ ์ ํ๋ ์ฌ๋์ Blockchain์ด ์ด๋ป๊ฒ ์๋ํ๋์ง์ Hyperledger Fabric์ ํน์ ๊ธฐ๋ฅ ๋ฐ ๊ตฌ์ฑ ์์์ ์ต์ํด์ง๊ธฐ ์ํด ์๋ ์๊ฐ ๊ณผ์ ์ ๊ฑฐ์น๋ ๊ฒ์ด ์ข๋ค.
๋ธ๋ก์ฒด์ธ์ด๋?
๋ถ์ฐ ์์ฅ
๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ์ ์ค์ฌ์๋ ๋คํธ์ํฌ์์ ๋ฐ์ํ๋ ๋ชจ๋ ํธ๋์ญ์ ์ ๊ธฐ๋กํ๋ ๋ถ์ฐ๋ ์์ฅ์ด ์๋ค.
๋ธ๋ก์ฒด์ธ ์์ฅ์ ์ ์ง ๊ด๋ฆฌ๋ฅผ ์ํด ์๋ก ํ๋ ฅํ๋ ๋ง์ ๋คํธ์ํฌ ์ฐธ์ฌ์๋ค์ ๊ฑธ์ณ ๋ณต์ ๋๊ธฐ ๋๋ฌธ์ ๋ถ์ฐ๋ ๊ฒ์ผ๋ก ์ฃผ๋ก ์ค๋ช ๋๋ค. ์ฐ๋ฆฌ๋ ๋ถ๊ถ๊ณผ ํ๋ ฅ์ด ๊ธฐ์ ๋ค์ด ํ์ค ์ธ๊ณ์์ ์ฌํ์ ์ฉ์ญ์ ๊ตํํ๋ ๋ฐฉ์์ ๋ฐ์ํ๋ ๊ฐ๋ ฅํ ์์ฑ์ด๋ผ๋ ๊ฒ์ ์๊ฒ ๋ ๊ฒ์ด๋ค.
์ค๋งํธ ์ปจํธ๋ํธ
์ ๋ณด์ ์ผ๊ด๋ ์ ๋ฐ์ดํธ๋ฅผ ์ง์ํ๊ณ ์ ์ฒด ์์ฅ ๊ธฐ๋ฅ(ํธ๋์ญ์ , ์ฟผ๋ฆฌ ๋ฑ)์ ๊ฐ๋ฅํ๊ฒํ๊ธฐ ์ํด ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ๋ ์ค๋งํธ ์ปจํธ๋ํธ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฅ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ์ดํ๋ค.
์ค๋งํธ ์ปจํธ๋ํธ๋ ์ ๋ณด๋ฅผ ์บก์ํํ๊ณ ๋คํธ์ํฌ ์ ์ฒด์์ ๋จ์ํ๊ฒ ์ ์งํ๋ ํต์ฌ ๋ฉ์ปค๋์ฆ์ผ ๋ฟ๋ง ์๋๋ผ ์ฐธ๊ฐ์๊ฐ ํธ๋์ญ์ ์ ํน์ ์ธก๋ฉด์ ์๋์ผ๋ก ์คํํ ์ ์๋๋ก ์์ฑ๋ ์ ์๋ค.
์๋ฅผ ๋ค์ด, ์ค๋งํธ ์ปจํธ๋ํธ๋ ๋ฌผํ์ด ์ผ๋ง๋ ๋นจ๋ฆฌ ๋์ฐฉํ๋์ง์ ๋ฐ๋ผ ๋ฐฐ์ก๋ฃ๊ฐ ๋ฌ๋ผ์ง๋ ํ๋ชฉ์ ๋ฐฐ์ก ๋น์ฉ์ ๊ท์ ํ๊ธฐ ์ํด ์์ฑ๋ ์ ์๋ค. ์ ๋น์ฌ์๊ฐ ๋์ํ๊ณ ์์ฅ์ ์๋ฉด์ผ๋ก ํฉ์๋ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฌผํ์ ์๋ นํ๋ฉด ํด๋น ์๊ธ์ ์๋์ผ๋ก ์ง๋ถ๋๋ค.
ํฉ์
๋คํธ์ํธ์ํฌ ์์์ ๋๊ธฐํ๋ ์ํ์ ์์ฅ ๊ฑฐ๋๋ฅผ ์ ์งํ๋ ํ๋ก์ธ์ค -- ์ ํฉํ ์ฐธ์ฌ์์ ์ํด ์น์ธ๋ ๊ฑฐ๋๋ง ์์ฅ์ ์ ๋ฐ์ดํธํ๊ณ ์์ฅ์ด ์ ๋ฐ์ดํธ ํ ๋ ๋์ผํ ์์, ๋์ผํ ํธ๋์ญ์ ์ผ๋ก ์ ๋ฐ์ดํธํ๋ ๊ฒ์ ํฉ์๋ผ๊ณ ํ๋ค.
์์ฅ, ์ค๋งํธ์ปจํธ๋ํธ, ํฉ์์ ๋ํด ๋ ๋ง์ด ์๊ฒ ๋ ๊ฒ์ด๋ค. ์ง๊ธ์ ๋ธ๋ก์ฒด์ธ์ ์ค๋งํธ ์ปจํธ๋ํธ๋ฅผ ํตํด ์ ๋ฐ์ดํธ๋๊ณ ํฉ์๋ผ๋ ๊ณต๋์ ํ๋ก์ธ์ค๋ฅผ ํตํด ์ง์์ ์ผ๋ก ๋๊ธฐํ๋ ๊ณต์ ๋ณต์ ํธ๋์ญ์ ์์คํ ์ผ๋ก ์๊ฐํด๋ ์ถฉ๋ถํ๋ค.
๋ธ๋ก์ฒด์ธ์ด ์ ์ฉํ ์ด์ ๋?
์ค๋๋ ์ ๊ธฐ๋ก ์์คํ
์ค๋๋ ์ ํธ๋์ญ์ ๋คํธ์ํฌ๋ ๋น์ฆ๋์ค ๊ธฐ๋ก์ด ๋ณด๋ค๋ ์ดํ๋ก ์กด์ฌํ๋ ๋คํธ์ํฌ์์ ์ฝ๊ฐ ์ ๋ฐ์ดํธ๋ ๋ฒ์ ์ด๋ค. ๋น์ฆ๋์ค ๋คํธ์ํฌ์ ๊ตฌ์ฑ์์ ์๋ก ๊ฑฐ๋ํ์ง๋ง ๊ทธ ๊ธฐ๋ก์ ๋ณ๋๋ก ์ ์ง ๊ด๋ฆฌํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ด ๊ฑฐ๋ํ๋ ๊ฒ๋ค์ -- 16์ธ๊ธฐ ํ๋๋๋ฅด ํํผ์คํธ๋ฆฌ๋ , ์ค๋๋ ์ ์ฆ๊ถ์ด๋ ๊ฐ์ -- ์์ดํ ์ ํ๋งคํ๋ ์ฌ์ ์ฒด๊ฐ ๊ทธ๊ฒ์ ์์ ๊ถ์ ํ์ธํ๋ ํ์ดํ ์ฒด์ธ์ ๊ฐ์ง ์ ์๋๋ก ๋งค๋๋ ๋๋ง๋ค ๊ทธ๋ค์ ์ฆ๋ช ์๊ฐ ํ๋ฆฝ๋์ด์ผ ํ๋ค.
๋จ์์๋ ๊ฒ์ ๋ค์๊ณผ ๊ฐ์ ๋น์ฆ๋์ค ๋คํธ์ํฌ์ด๋ค.
ํ๋ ๊ธฐ์ ์ ์ํ, ์ข ์ด ํด๋์์ ํ๋ ๋๋ผ์ด๋ธ ๋ฐ ํด๋ผ์ฐ๋ ํ๋ซํผ์ผ๋ก ์ด ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ ธ ์์ง๋ง ๊ทผ๋ณธ์ ์ธ ๊ตฌ์กฐ๋ ๋์ผํ๋ค. ๋คํธ์ํฌ ์ฐธ์ฌ์์ ์ ์์ ๊ด๋ฆฌํ๊ธฐ ์ํ ํตํฉ ์์คํ ์ด ์กด์ฌํ์ง ์์ผ๋ฉฐ, ์ฆ๋ช ์๋ฅผ ํ์ฆํ๋ ๊ฒ์ด ์ด๋ ค์ ์ฆ๊ถ ๊ฑฐ๋๋ฅผ ์ ๋ฆฌํ๋๋ฐ ๋ฉฐ์น ์ด ๊ฑธ๋ฆฌ๊ณ (์ธ๊ณ์ ์ผ๋ก ์์กฐ ๋ฌ๋ฌ์ ๋ฌํจ), ๊ณ์ฝ์ ์๋์ผ๋ก ์๋ช ํ๊ณ ์คํํด์ผ ํ๋ฉฐ, ์์คํ ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ณ ์ ํ ์ ๋ณด๋ฅผ ํฌํจํ๋ฏ๋ก ์ฑ๊ธ Faliure ํฌ์ธํธ์์ ๋ํ๋ธ๋ค.
๊ฐ์์ฑ๊ณผ ์ ๋ขฐ์ฑ์ด ๋ถ๋ช ํ ํ์ํจ์๋ ๋ถ๊ตฌํ๊ณ ์ค๋๋ ์ ์ ๋ณด์ ํ๋ก์ธ์ค ๊ณต์ ์ ๋ํ ๋ถ์ด๋ ๋ฐฉ์์ผ๋ก๋ ๋น์ฆ๋์ค ๋คํธ์ํฌ ์ ๋ฐ์ ๊ฑธ์ณ ๊ธฐ๋ก ์์คํ ์ ๊ตฌ์ถํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค.
๋ธ๋ก์ฒด์ธ์ ์ฐจ์ด์
ํ์ฌ์ ํธ๋์ญ์ ์์คํ ์ผ๋ก ๋ํ๋๋ ๋นํจ์จ์ ์ธ ์ฅ์ ๋ณด๊ธ์๋ฆฌ ๋์ ๋น์ฆ๋์ค ๋คํธ์ํฌ๊ฐ ๋คํธ์ํฌ์์ ์ ์์ ํ์ธํ๊ณ , ํธ๋์ญ์ ์ ์คํํ๊ณ , ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ํ์ค ๋ฐฉ๋ฒ์ ๊ฐ๊ณ ์๋ค๋ฉด ์ด๋จ๊ฐ? ์ผ๋จ ์์ฑ๋๋ฉด ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅํ๊ณ ์ ๋ขฐํ ์ ์๋ ๊ฑฐ๋ ๋ชฉ๋ก์ ์ดํด๋ด์ผ๋ก์จ ์์ฐ์ ์ถ์ฒ๋ฅผ ๊ฒฐ์ ํ ์ ์๋ค๋ฉด ์ด๋จ๊น?
๊ทธ ๋น์ฆ๋์ค ๋คํธ์ํฌ๋ ๋ค์๊ณผ ๊ฐ์ด ๋ณด์ธ๋ค.
์ด๊ฒ์ ๋ชจ๋ ์ฐธ์ฌ์๊ฐ ๋ณต์ ๋ ์์ฅ์ ๊ฐ์ง๊ณ ์๋ ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ์ด๋ค. ์์ฅ์ ์ ๋ณด๋ฟ ์๋๋ผ ์์ฅ์ ์ ๋ฐ์ดํธํ๋ ํ๋ก์ธ์ค๋ ๊ณต์ ๋๋ค. ์ฐธ์ฌ์์ ๊ฐ์ธ ํ๋ก๊ทธ๋จ์ด ๊ฐ์ธ ์์ฅ์ ์ ๋ฐ์ดํธ๋๋ ์ค๋๋ ์ ์์คํ ๊ณผ ๋ฌ๋ฆฌ, ๋ธ๋ก์ฒด์ธ ์์คํ ์ ์๋ก ๊ณต์ ๋ ์์ฅ์ ์ ๋ฐ์ดํธํ๋ ํ๋ก๊ทธ๋จ์ ๊ณต์ ํ๋ค.
๊ณต์ ๋ ์์ฅ์ ํตํ ๋น์ฆ๋์ค ๋คํธ์ํฌ ์กฐ์ ์ผ๋ก ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ๋ ๊ฐ์ธ ์ ๋ณด ๋ฐ ์ฒ๋ฆฌ์ ๊ด๋ จ๋ ์๊ฐ, ๋น์ฉ, ๋ฆฌ์คํฌ๋ฅผ ์ค์ด๋ฉด์ ์ ๋ขฐ์ ๊ฐ์์ฑ์ ํฅ์์ํฌ ์ ์๋ค.
๋ธ๋ก์ฒด์ธ์ด ๋ฌด์์ธ์ง, ์ ์ ์ฉํ์ง ์๊ฒ๋์๋ค. ๋ค๋ฅธ ์ค์ฉํ ์ธ๋ถ ์ฌํญ์ด ๋ง์ด ์์ง๋ง, ๋ชจ๋ ์ ๋ณด์ ํ๋ก์ธ์ค์ ๊ณต์ ์ ๋ํ ์์ด๋์ด๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ํ๊ณ ์๋ค.
Hyperledger Fabric์ด๋?
Linux Foundation์ ์ ๊ณ ๊ฐ ๋ธ๋ก์ฒด์ธ ๊ธฐ์ ๊ฐ๋ฐ์ ์ํด 2015๋ Hyperledger ํ๋ก์ ํธ๋ฅผ ์ค๋ฆฝํ๋ค. ๋จ์ผ ๋ธ๋ก์ฒด์ธ ํ์ค์ ์ ์ธํ๋ ๋์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ฃผ์ ํ์ค์ ์ฑํํ๊ณ ๊ณต๊ฐ ๊ฐ๋ฐ์ ์ฅ๋ คํ๋ ์ปค๋ฎค๋ํฐ ํ๋ก์ธ์ค ํตํด ๋ธ๋ก์ฒด์ธ ๊ธฐ์ ์ ๊ฐ๋ฐํ๊ธฐ ์ํ ํ์ ์ ๊ทผ ๋ฐฉ์์ ๊ถ์ฅํ๋ค.
Hyperledger Fabric์ Hyperledger ๋ด ํ๋ก์ ํธ ์ค ํ๋์ด๋ค. ๋ค๋ฅธ ๋ธ๋ก์ฒด์ธ ๊ธฐ์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก, ์์ฅ์ ๊ฐ์ง๊ณ , ์ค๋งํธ ์ปจํธ๋ํธ๋ฅผ ์ฌ์ฉํ๋ฉฐ, ๊ทธ๋ค์ ๊ฑฐ๋๋ฅผ ๊ด๋ฆฌํ๋ ์ฐธ์ฌ์์ ์ํ ์์คํ ์ด๋ค.
Hyperledger Fabric์ด ๋ค๋ฅธ ๋ธ๋ก์ฒด์ธ ์์คํ ๊ณผ ๋ถ๋ฆฌ๋๋ ์ด์ ๋ Private ๊ณผ permissioned ์ด๋ค. ์ ์ ์๋ ID๊ฐ ๋คํธ์ํฌ์ ์ฐธ์ฌํ๋๋ก ํ์ฉํ๋ ์คํ ์์คํ ๋์ (ํธ๋์ญ์ ์ ์น์ธ๊ณผ ๋คํธ์ํฌ ๋ณด์์ ์ํด "proof of work"์ ๊ฐ์ ํ๋กํ ์ฝ์ด ํ์ํ๋ค), Hyperledger Fabric Network์ ๊ตฌ์ฑ์์ ์ ๋ขฐ๋ Membership Service Provider(MSP)๋ฅผ ํตํด ๋ฑ๋ก๋๋ค.
Hyperledger Fabric์ ์ฌ๋ฌ๊ฐ์ง ํ๋ฌ๊ทธํ ์ต์ ๋ ์ ๊ณตํ๋ค. ์์ฅ์ ๋ฐ์ดํฐ๋ ์ฌ๋ฌ ํฌ๋งท์ผ๋ก ์ ์ฅ ๊ฐ๋ฅํ๊ณ , ํฉ์ ๋ฉ์ปค๋์ฆ์ ์ ํํ ์ ์๊ณ , ๋ค์ํ MSP๊ฐ ์ ๊ณต๋๋ค.
๋ํ Hyperledger Fabric์ ์ฐธ์ฌ์ ๊ทธ๋ฃน์ด ๋ณ๋์ ํธ๋์ญ์ ์์ฅ์ ๋ง๋ค์ ์๋ ์ฑ๋์ ์์ฑํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ์ด๋ ์ผ๋ถ ์ฐธ์ฌ์๊ฐ ๊ฒฝ์์์ผ์๋ ์๊ณ ๋ชจ๋ ๊ฑฐ๋๋ฅผ ์ํ๋ ์๋ -- ์๋ฅผ ๋ค์ด, ์ผ๋ถ ์ฐธ๊ฐ์์๊ฒ ํน๋ณํ ๊ฐ๊ฒฉ์ ์ ๊ณตํ ๋ -- ๋คํธ์ํฌ์ ํนํ ์ค์ํ ์ต์ ์ด๋ค. ๋ ๋ช ์ ์ฐธ๊ฐ์๊ฐ ํ ์ฑ๋์ ๊ตฌ์ฑํ๋ฉด, ํด๋น ์ฐธ๊ฐ์๋ ๋ฌผ๋ก ๋ค๋ฅธ ์ฐธ๊ฐ์๋ ํด๋น ์ฑ๋์ ๋ํ ์์ฅ์ ๋ณต์ฌ๋ณธ์ ๊ฐ์ง๋ค.
๊ณต์ ์์ฅ
Hyperledger Fabric์๋ world state์ ํธ๋์ญ์ ๋ก๊ทธ ๋ ๊ฐ์ง ์์๋ก ๊ตฌ์ฑ๋ ์์ฅ ์๋ธ์์คํ ์ ๊ฐ์ง๊ณ ์๋ค. ๊ฐ ์ฐธ์ฌ์๋ ์์ ์ด ์ํ ๋ชจ๋ Hyperledger Fabric ๋คํธ์ํฌ์ ๋ํ ์์ฅ ์ฌ๋ณธ์ ๊ฐ์ง๊ณ ์๋ค.
World state ํด๋น ์์ ์ ์์ฅ ์ํ๋ฅผ ๋ํ๋ด๋ ๊ตฌ์ฑ ์์์ด๋ค. ์์ฅ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ค. ํธ๋์ญ์ ๋ก๊ทธ๋ world state์ ํ์ฌ ๊ฐ์ ๋ฐ์ํ ๋ชจ๋ ํธ๋์ญ์ ์ ๊ธฐ๋กํ๋ค. ์ด๋ world state์ ๋ํ ์ ๋ฐ์ดํธ ๊ธฐ๋ก์ผ๋ก ๋ฐ๋ผ์ ์์ฅ์ world state ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํธ๋์ญ์ ๋ก๊ทธ ๊ธฐ๋ก์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
์์๋ world state ๋ฅผ ๋์ฒดํ ์ ์๋ ๋ฐ์ดํฐ ์ ์ฅ์๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๊ธฐ๋ณธ์ ์ผ๋ ธ ์ด๊ฒ์ LevelDB๋ก key - value ๊ตฌ์กฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ค. ํธ๋์ญ์ ๋ก๊ทธ๋ ํ๋ฌ๊ทธํ์ผ ํ์๊ฐ ์๋ค. ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ์ ์ํด ์ฌ์ฉ๋๊ณ ์๋ ์์ฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ํ ๊ฐ์ ๊ฐ๋จํ ๊ธฐ๋กํ๋ค.
์ค๋งํธ ์ปจํธ๋ํธ
Hyperledger Fabric ์ค๋งํธ ์ปจํธ๋ํธ๋ ์ฒด์ธ์ฝ๋๋ก ์์ฑ๋๋ฉฐ ํด๋น ์์ฉ ํ๋ก๊ทธ๋จ์ด ์์ฅ๊ณผ ์ํธ ์์ฉ์ด ์์ ๋ ๋ธ๋ก์ฒด์ธ ์ธ๋ถ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ํด ํธ์ถ๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ฒด์ธ์ฝ๋๋ ํธ๋์ญ์ ๋ก๊ทธ๊ฐ ์๋ world state์๋ง ์ํธ์์ฉํ๋ค.
์ฒด์ธ์ฝ๋๋ ์ฌ๋ฌ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๊ตฌํ๋ ์ ์๋ค. ํ์ฌ๋ Go์ Node๊ฐ ์ง์๋๋ค.
Privacy
๋คํธ์ํฌ์ ์๊ตฌ์ฌํญ์ ๋ฐ๋ผ, ๊ธฐ์ ๊ฐ(B2B) ๋คํธ์ํฌ ์ฐธ์ฌ์๋ค์ ๊ทธ๋ค์ด ์ผ๋ง๋ ๋ง์ ์์ ์ ๋ณด๋ฅผ ๊ณต์ ํ๋์ง์ ๋ํด ๊ทน๋๋ก ๋ฏผ๊ฐํ ์ ์๋ค. ๋ค๋ฅธ ๋คํธ์ํฌ์ ๊ฒฝ์ฐ ๊ฐ์ธ ์ ๋ณด๊ฐ ์ฃผ์ ๊ด์ฌ์ฌ๋ ์๋๋ค.
Hyperledger Fabric์ ํ๋ผ์ด๋ฒ์(์ฑ๋์ ์ฌ์ฉํ๋)๊ฐ ์ฃผ์ํ ์ด์ ์๊ตฌ์ฌํญ๋ฟ๋ง ์๋๋ผ ๋น๊ต์ ๊ฐ๋ฐฉ๋ ๋คํธ์ํฌ๋ฅผ ์ง์ํ๋ค.
ํฉ์
ํธ๋์ญ์ ์ ๋คํธ์ํฌ ๋ด ์๋ก ๋ค๋ฅธ ์ฐธ์ฌ์๋ค ์ฌ์ด์ ์๋๋ผ๋ ๋ฐ์ ์์์ ๋ฐ๋ผ ์์ฅ์ ๊ธฐ๋ก๋์ด์ผ ํ๋ค.
Hyperledger Fabric ๊ธฐ๋ฅ
Hyperledger Fabric์ ๋ชจ๋ํ ๋ธ๋ก์ฒด์ธ ๊ตฌ์กฐ๋ก ์ํฐํ๋ผ์ด์ฆ๊ธ์ ๋คํธ์ํฌ ๋ณด์, ํ์ฅ์ฑ, ๊ธฐ๋ฐ์ฑ ๋ฐ ์ฑ๋ฅ์ ์ ๊ณตํ๋ ๋ถ์ฐ ์์ฅ ๊ธฐ์ (DLT)์ ๊ตฌํํ ๊ฒ์ด๋ค. ๋ค์๊ณผ ๊ฐ์ ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํ๋ค. ์ด๋ฅผ ์ํด์๋ ๊ฑฐ๋ ์์๋ฅผ ์ ํ๊ณ , ์ค๋ฅ(๋๋ ์ ์์ ์ผ๋ก) ๋ฐ์๋ ๊ฑฐ๋๋ฅผ ๊ฑฐ๋ถํ๋ ๋ฐฉ๋ฒ์ ๋ง๋ จํด์ผํ๋ค.
์ด๊ฒ์ ์ปดํจํฐ ๊ณผํ์์ ๋ฉด๋ฐํ๊ฒ ์ฐ๊ตฌ๋ ๋ถ์ผ์ด๊ณ , ์ด๋ฅผ ๋ฌ์ฑํ๋ ๋ง์ ๋ฐฉ๋ฒ๋ค์ด ์๋ค. ์๋ฅผ ๋ค์ด, PBFT(Practical Byzantine Falut Tolerance)๋ ํ์ผ ๋ณต์ ๋ณธ์ด ์๋ก ํต์ ํ ์ ์๋ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ์ฌ ์์์ด ๋ฐ์ํ ๊ฒฝ์ฐ์๋ ๊ฐ ๋ณต์ฌ๋ณธ์ ์ผ๊ด๋๊ฒ ์ ์งํ ์ ์๋ค. ๋์ ๋นํธ์ฝ์ธ์ ๋ชจ๋ ํ๋ก์ธ์ค์ ๋ค์ ๋น๋ ์์๋ฅผ ์ ์ํ๋ ์ํธํ ํผ์ฆ์ ํด๊ฒฐํ๊ธฐ ์ํด ๊ฒฝ์ํ๋ ๋ง์ด๋์ด๋ผ ๋ถ๋ฆฌ๋ ํ๋ก์ธ์ค๋ฅผ ํตํด ์ํ๋๋ค.
Hyperledger Fabric์ ๋คํธ์ํฌ ์์์๊ฐ ์ฐธ์ฌ์ ์ฌ์ด์ ์กด์ฌํ๋ ๊ด๊ณ๋ฅผ ๊ฐ์ฅ ์ ๋ํํ๋ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ ์ ์๋๋ก ์ค๊ณ๋์๋ค. ํ๋ผ์ด๋ฒ์์ ๊ฐ์ด, ๊ทธ๋ค์ ๋ peer-to-peer ๊ด๊ณ์์ ๊ณ ๋๋ก ๊ตฌ์กฐํ๋ ๋คํธ์ํฌ๊น์ง ๋ค์ํ ์๊ตฌ์ฌํญ์ด ์๋ค.
ID ๊ด๋ฆฌ
ํ์ฉ๋ ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก Hyperledger Fabric์ ์ฌ์ฉ์ ID ๊ด๋ฆฌ ๋ฐ ๋คํธ์ํฌ์ ๋ชจ๋ ์ฐธ์ฌ์๋ฅผ ์ธ์ฆํ๋ Membership ID ์๋น์ค๋ฅผ ์ ๊ณตํ๋ค. ์ ๊ทผ ์ ์ด ๋ชฉ๋ก์ ํน์ ๋คํธ์ํฌ ์์ ์ ๊ถํ ๋ถ์ฌ๋ฅผ ํตํด ์ถ๊ฐ์ ์ธ ๊ถํ ๊ณ์ธต์ ์ ๊ณตํ๋๋ฐ ์ฌ์ฉ๋ ์ ์๋ค. ์๋ฅผ ๋ค์ด, ํน์ ์ฌ์ฉ์ ID๋ ์ฒด์ธ์ฝ๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ํธ์ถํ ์ ์์ง๋ง ์๋ก์ด ์ฒด์ธ์ฝ๋๋ฅผ ๋ฐฐํฌํ๋ ๊ฒ์ ์ฐจ๋จ๋ ์ ์๋ค.
๊ฐ์ธ ์ ๋ณด ๋ฐ ๊ธฐ๋ฐ ์ ์ง
Hyperledger Fabric์ ๊ฒฝ์ ์ ์ฒด์ ๋น์ฆ๋์ค ์ด์ต๊ณผ ๊ธฐ๋ฐ ๊ฑฐ๋๊ฐ ํ์ํ ๊ทธ๋ฃน์ด ๋์ผํ๊ฒ ํ๊ฐ๋ ๋คํธ์ํฌ์์ ๊ณต์กด์ด ๊ฐ๋ฅํ๊ฒ ํ๋ค. Private ์ฑ๋์ ๋คํธ์ํฌ ๊ตฌ์ฑ์์ ํน์ ํ์ ์งํฉ์ ๋ํ ํธ๋์ญ์ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ๋ฐ ๊ธฐ๋ฐ์ฑ์ ์ ๊ณตํ๋๋ฐ ์ฌ์ฉํ ์ ์๋ ์ ํ๋ ๋ฉ์์ง ๊ฒฝ๋ก์ด๋ค. ์ฑ๋์ ํธ๋์ญ์ , ๋ฉค๋ฒ ๋ฐ ์ฑ๋ ์ ๋ณด๋ฅผ ํฌํจํ ๋ชจ๋ ๋ฐ์ดํฐ๋ ๋ณด์ด์ง ์์ผ๋ฉฐ ๋ช ์์ ์ผ๋ก ์ฑ๋์ ๋ํ ์ ๊ทผ์ด ํ๊ฐ๋์ง ์์ ๋คํธ์ํฌ ๋ฉค๋ฒ๊ฐ ์ ๊ทผํ ์ ์๋ค.
ํจ์จ์ ์ธ ์ฒ๋ฆฌ
Hyperledger Fabric์ ๋ ธ๋ ์ ํ๋ณ๋ก ๋คํธ์ํฌ ์ญํ ์ ํ ๋นํ๋ค. ๋คํธ์ํฌ์ ๋์์ฑ๊ณผ ๋ณ๋ ฌ์ฑ์ ์ ๊ณตํ๊ธฐ ์ํด ํธ๋์ญ์ ์คํ์ ํธ๋์ญ์ ordering ๊ณผ commitment๋ก ๊ตฌ๋ถ๋๋ค. ํธ๋์ญ์ ์ ์์ํํ๊ธฐ ์ ์ ์คํํ๋ฉด ๊ฐ ํผ์ด ๋ ธ๋๊ฐ ์ฌ๋ฌ ํธ๋์ญ์ ์ ๋์์ ์ฒ๋ฆฌํ ์ ์๋ค. ์ด๋ฌํ ๋์ ์คํ์ ๊ฐ ํผ์ด์ ์ฒ๋ฆฌ ํจ์จ์ฑ์ ๋์ด๊ณ ordering ์๋น์ค๋ก์ ํธ๋์ญ์ ์ ์ก์ ๊ฐ์ํ ํ๋ค.
๋ณ๋ ฌ ํ๋ก์ธ์ค์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๊ฒ ์ธ์๋, ์ ๋ฌด ๋ถ์ฅ์ ํธ๋์ญ์ ์คํ ๋ฐ ์์ฅ ์ ์ง ๋ณด์ ์๊ตฌ์์ ordering ๋ ธ๋ ๋ถ๋ดํ์ง ์์ผ๋ฉฐ ํผ์ด ๋ ธ๋๋ ordering(ํฉ์) ์์ ๋ถํ์์ ์์ ๋ก์์ง๋ค. ์ด๋ฌํ ์ญํ ๋ถ๊ธฐ๋ ๊ถํ ๋ถ์ฌ์ ์ธ์ฆ์ ํ์ํ ์ฒ๋ฆฌ๋ ์ ํํ๋ค. ๋ชจ๋ ํผ์ด ๋ ธ๋๋ ๋ชจ๋ ordering ๋ ธ๋๋ฅผ ์ ๋ขฐํ ํ์๊ฐ ์์ผ๋ฉฐ, ๊ทธ ๋ฐ๋๋ ๋ง์ฐฌ๊ฐ์ง๋ก ํ ๋ ธ๋์ ํ๋ก์ธ์ค๋ ๋ค๋ฅธ ๋ ธ๋์ ๊ฒ์ฆ๊ณผ ๋ ๋ฆฝ์ ์ผ๋ก ์คํํ ์ ์๋ค.
Chaincode ๊ธฐ๋ฅ
์ฒด์ธ์ฝ๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋์ ํน์ ํธ๋์ญ์ ์ ํ์ ์ํด ํธ์ถ๋๋ ๋ก์ง์ ์ธ์ฝ๋ฉํ๋ค. ์๋ฅผ ๋ค์ด ์์ ๊ถ ๋ณ๊ฒฝ ๋งค๊ฐ ๋ณ์๋ฅผ ์ ์ํ๋ ์ฒด์ธ์ฝ๋๋ ์์ ๊ถ์ ์ด์ ํ๋ ๋ชจ๋ ํธ๋์ญ์ ์ด ๋์ผํ ๊ท์น ๋ฐ ์๊ตฌ ์ฌํญ์ ์ ์ฉํ๋๋ก ๋ณด์ฅํ๋ค. ์์คํ ์ฒด์ธ์ฝ๋๋ ์ ์ฒด ์ฑ๋์ ๋์ํ๋ ๋งค๊ฐ ๋ณ์๋ฅผ ์ ์ํ๋ ์ฒด์ธ์ฝ๋๋ก ๊ตฌ๋ถ๋๋ค. ๋ผ์ดํ์ฌ์ดํด ๋ฐ Configuraion ์์คํ ์ฒด์ธ์ฝ๋๋ ์ฑ๋์ ๋ํ ๊ท์น์ ์ ์ํ๊ณ , ์น์ธ ๋ฐ ๊ฒ์ฆ ์์คํ ์ฒด์ธ์ฝ๋๋ ํธ๋์ญ์ ์ ์น์ธํ๊ณ ๊ฒ์ฆํ๊ธฐ ์ํ ์๊ตฌ ์ฌํญ์ ์ ์ํ๋ค.
๋ชจ๋ํ ์ค๊ณ
Hyperledger Fabric์ ๋คํธ์ํฌ ์ค๊ณ์์๊ฒ ๊ธฐ๋ฅ์ ์ ํ์ ์ ๊ณตํ๋ ๋ชจ๋ํ ์ํคํ ์ณ๋ฅผ ๊ตฌํํ๋ค. ์๋ฅผ ๋ค์ด ID, Ordering(ํฉ์) ๋ฐ ์ํธํ๋ฅผ ์ํ ํน์ ์๊ณ ๋ฆฌ์ฆ์ ๋ชจ๋ Hyperledger Fabric ๋คํธ์ํฌ์ ์ฐ๊ฒฐํ ์ ์๋ค. ๊ทธ ๊ฒฐ๊ณผ ๋ชจ๋ ์ฐ์ ๋๋ ๊ณต๊ณต ๋๋ฉ์ธ์ด ์ฑํํ ์ ์๋ ๋ฒ์ฉ ๋ธ๋ก์ฒด์ธ ๊ตฌ์กฐ๋ก, ์์ฅ๊ณผ ๊ท์ ๋ฐ ์ง๋ฆฌ์ ๊ฒฝ๊ณ๋ฅผ ๋์ด์๋ ์ํธ์ด์ฉ์ด ๊ฐ๋ฅํ ๋คํธ์ํฌ๋ฅผ ๋ณด์ฅํ๋ค.