Hyperledger Fabric Model: ํŒจ๋ธŒ๋ฆญ์„ ๊ตฌ์„ฑํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ

Hyperledger Fabric์—์„œ ์ œ์‹œํ•˜๋Š” โ€˜๋ชจ๋ธโ€™, ์ฆ‰ ์ด ํ”Œ๋žซํผ์˜ ๊ตฌ์„ฑ์›์€ ์ด ์—ฌ์„ฏ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. Asset, Chaincode, Ledger, Privacy, Security & Membership Service, Consensus ์ธ๋ฐ์š”, ์ด๋“ค์„ ์•Œ์•„์•ผ Fabric์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ฐ๊ฐ์˜ ์ •์˜์™€ ์˜ˆ์‹œ, ๊ด€๋ จ๋œ ๋˜ ๋‹ค๋ฅธ ์ฃผ์š” ๊ฐœ๋…๋“ค์„ ์งš์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Asset๊ณผ Ledger


๋ธ”๋ก์ฒด์ธ์€ โ€˜๊ฑฐ๋ž˜โ€™๋ฅผ ์ „์ œ๋กœ ํ•˜๋Š” โ€˜๋„คํŠธ์›Œํฌ’์ž…๋‹ˆ๋‹ค. ๋‹ฌ๋ฆฌ ๋งํ•ด๋ณด์ž๋ฉด, ๋ฌด์–ธ๊ฐ€๊ฐ€ ์˜ค๊ณ  ๊ฐ€๊ณ , ๊ทธ ์˜ค๊ณ  ๊ฐ์˜ ๊ณผ์ •์—์„œ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๊ฐœ์ž…ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋ญ”๊ฐ€ โ€˜์˜ค๊ณ  ๊ฐˆ ๊ฒƒ’์ด ์žˆ๊ฒ ์ฃ ? ๊ทธ๊ฒŒ Asset์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ์—๋Š” ๋”ธ๊ธฐ๊ฐ€ ๋˜๊ฒ ์ฃ .

๊ทธ๋Ÿฐ๋ฐ ๊ฑฐ๋ž˜์˜ ๊ณผ์ •์— ๋”ฐ๋ผ, ์ด Asset์—๋Š” ์ƒํƒœ๊ฐ’(State)์ด ์ƒ๊น๋‹ˆ๋‹ค. ์ด ๋”ธ๊ธฐ๊ฐ€ ์ƒ์‚ฐ๋˜์—ˆ๋‹ค, ์ƒ์‚ฐ๋ผ์„œ ์ง€๊ธˆ ํฌ์žฅ ์ค‘์ด๋‹ค, ๋งค์žฅ์œผ๋กœ ์ด๋™ ์ค‘์ด๋‹ค, ๋งค์žฅ ์–ด๋””์— ์ง„์—ด๋˜์–ด ์žˆ๋‹ค, ๋ˆ„๊ฐ€ ์‚ฌ๊ฐ”๋‹ค ์ด๋Ÿฐ ๊ฒƒ๋“ค, ์ฆ‰ ์ด asset์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•˜๋Š” ๊ฐ’์ด state๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ State ๊ฐ’์˜ ๋ณ€ํ•˜๋Š” ๊ฒƒ์„ ํ•œ์ค„ ํ•œ์ค„ ๊ธฐ๋กํ•ด๋‘” ๊ฒƒ์ด ์›์žฅ(ledger)์ž…๋‹ˆ๋‹ค. ์ด ๋”ธ๊ธฐ๊ฐ€ ์šฐ๋ฆฌ์—๊ฒŒ ์˜ค๊ธฐ๊นŒ์ง€์˜ ๋ชจ๋“  ๋ฐœ์ž์ทจ๋ฅผ ๊ธฐ๋กํ•œ ๊ฒƒ์ด์ฃ . ์ด๊ฒŒ ๋ชจ๋“  ๋ธ”๋ก์ฒด์ธ์˜ ํ•ต์‹ฌ์ด์ž ์ถœ๋ฐœ์ ์ž…๋‹ˆ๋‹ค. ๋’ค์— ์„ค๋ช…๋“œ๋ฆด ๊ฒƒ๋“ค์€, ๊ทธ ์›์žฅ์„ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ณผ์ •์„ ๊ฒฌ๊ณ ํžˆ ํ•˜๋Š” ์žฅ์น˜๋“ค์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Chaincode์™€ Consensus


Chaincode์™€ Consensus๋Š” ๋ธ”๋ก์ฒด์ธ์„ ๋ธ”๋ก์ฒด์ธ๋‹ต๊ฒŒ ํ•ด์ฃผ๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ๋ธ”๋ก์ฒด์ธ์— ์กฐ๊ธˆ์”ฉ ๊ฐ€๊นŒ์›Œ์ง€๋ฉด์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋“œ๋Š” ์˜๋ฌธ์€ ์˜์™ธ๋กœ, ์ด๊ฑธ ์™œ ๊ผญ ๋ธ”๋ก์ฒด์ธ์œผ๋กœ ํ•ด๊ฒฐํ•ด์•ผ๋งŒ ํ•˜๋Š”๊ฑฐ์ง€?์ž…๋‹ˆ๋‹ค. ๋ธ”๋ก์ฒด์ธ๊ณผ ์ข…์ข… ํ˜ผ๋™๋˜๊ธฐ๋„ ํ•˜๋Š” ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ •๋ง ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์™”๊ณ , ์•ž์œผ๋กœ๋„ ๊ทธ๋Ÿด ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ โ€˜์‹ ๋ขฐ’์˜ ๋ฌธ์ œ๋Š” ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•˜์ฃ . ์—ฌ๊ธฐ์—์„œ์˜ ์‹ ๋ขฐ๋Š” ๋ˆ„๊ฐ€ ๋„คํŠธ์›Œํฌ์— ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ๋Š๋ƒ๊ฐ€ ์•„๋‹ˆ๋ผ, DB์—์˜ ์—…๋ฐ์ดํŠธ ์‹œ๋„๊ฐ€ ์ •๋ง๋กœ ๋ฏฟ์„ ์ˆ˜ ์žˆ๋Š๋ƒ๋Š” ๊ด€์ ์—์„œ์˜ ์‹ ๋ขฐ์ž…๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ State ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์›์žฅ์— ๊ธฐ๋กํ•˜๊ณ ์ž ์‹œ๋„ํ•  ๋•Œโ€Šโ€”โ€Š๋”ธ๊ธฐ๋ฅผ ํฌ์žฅ ์ƒํƒœ์—์„œ ๋ฐฐ๋‹ฌ ์ƒํƒœ๋กœ ๋ฐ”๊ฟ€ ๋•Œโ€Šโ€”โ€Š์—ฌ๊ธฐ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ programaticํ•œ ์˜์‚ฌ๊ฒฐ์ •์„ ํ•  ๊ฒƒ์ธ๊ฐ€๋ฅผ chaincode์™€ consensus๊ฐ€ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

Chaincode๋Š” STATE ๊ฐ’์— ๋ณ€ํ™”๋ฅผ ์ฃผ๊ณ  (๋ฐฐ๋‹ฌ์ค‘->์ง„์—ด์™„๋ฃŒ) ์›์žฅ์— ์—…๋ฐ์ดํŠธ๋ฅผ ํ•˜๋Š” ์‹ค์ œ ๋กœ์ง ๋ถ€๋ถ„์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ถŒํ•œ์— ๋”ฐ๋ผ ํ•œ ๋„คํŠธ์›Œํฌ์— ์žˆ๋”๋ผ๋„ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” chaincode๊ฐ€ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. Consensus๋Š” ๋ธ”๋ก์ฒด์ธ ๋„คํŠธ์›Œํฌ ๋‚ด์˜ peer๋“ค์ด ํ•ญ์ƒ ๋™๊ธฐํ™”๋œ State๊ณผ ์›์žฅ์„ ๊ฐ–๋„๋ก ํ•˜๋Š” ํ•ต์‹ฌ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ํŠน์ • ์กฐ๊ฑด*์— ์˜ํ•ด ์Šน์ธ๋œ ์—…๋ฐ์ดํŠธ ์‹œ๋„ ๋งŒ์„ ๊ณจ๋ผ์„œ chaincode๋ฅผ ์‹คํ–‰ํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ๋ฐœ์ƒํ•œ๋‹ค๋ฉด, ๊ทธ ๋ฐœ์ƒํ•œ ์ˆœ์„œ์— ๋”ฐ๋ผ ์ œ๋Œ€๋กœ ordering* ๋˜์—ˆ์„ ๋•Œ์—๋งŒ ์‹ค์ œ ์›์žฅ์— ๋ฐ˜์˜ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด์ฃ .

*ํŠน์ • ์กฐ๊ฑด์ด๋ž€ endorsement policy๋ฅผ ๋œปํ•˜๋ฉฐ, Ordering service๋Š” hyperledger fabric์˜ ํ•ต์‹ฌ consensus๋ฅผ ์ด๋ฃจ๋Š” ํ•œ ์ถ•์ž…๋‹ˆ๋‹ค. ์ด ๋‘˜์— ๋Œ€ํ•ด์„œ๋Š” ํ–ฅํ›„ ํฌ์ŠคํŒ…์—์„œ ๋ณด๋‹ค ๋” ์ž์„ธํžˆ ๋‹ค๋ฃฐ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

Privacy

๋ธ”๋ก์ฒด์ธ์—์„œ๋Š” ์›์žฅ ๋‚ด์šฉ๊ณผ ์ž์‚ฐ์˜ ์ƒํƒœ๊ฐ€ ๋„คํŠธ์›Œํฌ์— ์ฐธ์—ฌํ•œ ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ๊ณต์œ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€๋งŒ ๋น„์ฆˆ๋‹ˆ์Šค๋ผ๋Š” ๊ฒŒ, ํ•˜๋‹ค ๋ณด๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค ๋ชจ๋ฅด๊ฒŒ ํ•˜๊ณ  ์‹ถ์€ ์ด์•ผ๊ธฐ๊ฐ€ ์ƒ๊ธฐ๊ธฐ ๋งˆ๋ จ์ด์ฃ . ์ „์ฒด ์ฑ„๋„ ๋ง๊ณ  ๋”ฐ๋กœ ์ƒํ˜ธ์ž‘์šฉ ํ•ด์•ผ ํ•  ํ”ผ์–ด๋“ค์ด ์žˆ๋‹ค๋ฉด Hyperledger Fabric์—์„œ๋Š” Channel์ด๋ผ๋Š” ๊ฒƒ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Channel ์ด๋ž€ ์—ฌ๋Ÿฌ ํ”ผ์–ด๋“ค์˜ ๊ทธ๋ฃน์œผ๋กœ, ๋„คํŠธ์›Œํฌ ์„œ๋ธŒ๋„ท ๊ฐœ๋…์œผ๋กœ ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ ์•ˆ์—์„œ๋งŒ ๊ณต์œ ๋˜๋Š” ๋‚ด์šฉ์ด ์žˆ๋Š”๋ฐ ๊ทธ ์„œ๋ธŒ๋„ท(์ฑ„๋„) ๋ฐ–์œผ๋กœ๋Š” ์ „ํŒŒ๋˜์ง€ ์•Š๋Š” ๊ฑฐ์ฃ . ์ฑ„๋„ ์•ˆ์—์„œ ํ”ผ์–ด๋“ค์€ ํ”„๋ผ์ด๋น—ํ•˜๊ฒŒ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๊ณ , state ๊ฐ’์„ ์ž„์˜๋กœ ์ˆ˜์ •ํ•˜๋Š” ๋“ฑ์˜ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์—…์šฉ ๋ธ”๋ก์ฒด์ธ์„ ์ง€ํ–ฅํ•˜๋Š” Fabric์˜ ํŠน์„ฑ ์ค‘ ํ•˜๋‚˜๋กœ ๊ผฝ์„ ์ˆ˜ ์žˆ๋Š” ์ง€์ ์ž…๋‹ˆ๋‹ค.

Security & Membership Service

Hyperledger Fabric์˜ ์ „์ œ๋Š”, ์‹ ์›์ด ํ™•์ธ๋˜๊ณ  ๊ฐ€์ž…์— ๋Œ€ํ•ด ์‚ฌ์ „ ์Šน์ธ์„ ๋ฐ›์€ ์กฐ์ง/๊ฐœ์ธ ๋งŒ์ด ๋„คํŠธ์›Œํฌ์— ๊ฐ€์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Membership Service Provider๋ผ๋Š” ๋ชจ๋“ˆ์ด, ์ด๋Ÿฌํ•œ Fabric์˜ ์ ‘๊ทผ ํ†ต์ œ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋Š ์กฐ์ง์—์„œ ๋ˆ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋กœ, ๋ˆ„๊ฐ€ ํ”ผ์–ด๋กœ, ๋ˆ„๊ฐ€ endorser๋กœ ๋“ค์–ด ์˜ฌ ์ˆ˜ ์žˆ๋Š”์ง€, orderer๋Š” ๋ˆ„๊ฐ€ ๋  ๊ฒƒ์ธ์ง€ ๋“ฑ๋“ฑ์„ ์ปจํŠธ๋กคํ•˜๋Š” ๊ฒƒ์ด์ฃ .

Hyperledger Fabric์˜ ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋…์€ ์ด๋ ‡์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์—ฌ, ์‹ค์ œ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ์— ์–ด๋””์— ๋ˆ„๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ฐฐ์น˜๋˜๋Š”์ง€๋ฅผ ์ค‘์ ์ ์œผ๋กœ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ถ๊ธˆํ•œ ์ ์ด๋‚˜ ๋ณด์™„์ด ํ•„์š”ํ•œ ๋ถ€๋ถ„, ํ† ๋ก ํ•˜๊ณ  ์‹ถ์€ ๋ถ€๋ถ„์ด ์žˆ์œผ์‹œ๋ฉด ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š”. ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. :)

ํ† ๋ก  ์ฐธ๊ฐ€

์ด๋ฉ”์ผ์€ ๊ณต๊ฐœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•„์ˆ˜ ์ž…๋ ฅ์ฐฝ์€ * ๋กœ ํ‘œ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.