Fabric์ด ์ƒ์†Œํ•˜์‹  ๋ถ„๋“ค๋„ ์•„ํ‚คํ…์ณ๋ฅผ ์ตํ˜€๊ฐ€์‹ค ์ˆ˜ ์žˆ๋Š” ๋‚ด์šฉ์œผ๋กœ ์—ฐ์žฌ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. 5์ฐจ ์ด์ „์—๋Š” ๊ฐœ๋…์ ์œผ๋กœ Fabric์˜ ์ „๋ฐ˜์„ ํ›‘์Šต๋‹ˆ๋‹ค. ๊ทธ ์ดํ›„์—๋Š” ๋ณด๋‹ค Deep-dive ํ•ด์„œ ์‚ดํŽด๋ณผ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

1. ๋“ค์–ด๊ฐ€๋ฉฐ: ์—ฐ์žฌ ๊ฐœ์š” ๋ฐ ๋น„์ฆˆ๋‹ˆ์Šค๋ฅผ ์œ„ํ•œ ๋ธ”๋ก์ฒด์ธ์˜ ๊ธฐ์ค€
2. Hyperledger Fabric Model: ํŒจ๋ธŒ๋ฆญ์„ ๊ตฌ์„ฑํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ
3. Hyperledger Fabric Network 1: ์ปดํฌ๋„ŒํŠธ๋“ค์ด ์‹ค์ œ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ชจ์–‘์ƒˆ
4. Hyperledger Fabric Network 2: ๊ทธ๋ž˜์„œ ํŠธ๋žœ์žญ์…˜์ด ์–ด๋–ป๊ฒŒ ์ผ์–ด๋‚œ๋‹ค๊ตฌ์š”?
5. Hyperledger Fabric Architecture: ํŠธ๋žœ์žญ์…˜๊ณผ gRPC
6. Hyperledger Fabric Architecture: ํ•ฉ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ข…๋ฅ˜์™€ HLF๊ฐ€ Kafka๋ฅผ ์„ ํƒํ•œ ์ด์œ 
7. Hyperledger Fabric Architecture: ๋ธ”๋ก์ฒด์ธ์˜ ์„ฑ๋Šฅ์— ๋Œ€ํ•œ ๋ชจ๋“  ๊ฒƒ
8. Hyperledger Fabric Architecture: ๋ธ”๋ก์ฒด์ธ์„ ์œ„ํ•œ ๋ณด์•ˆ



๋น„์ฆˆ๋‹ˆ์Šค๋ฅผ ์œ„ํ•œ ๋ธ”๋ก์ฒด์ธ์€ ์–ด๋•Œ์•ผ ํ•˜๋Š”๊ฐ€

๋ธ”๋ก์ฒด์ธ์˜ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ค๋ฅธ ๋ถ„๋“ค์ด ๊ธ€์„ ๋งŽ์ด ์จ์ฃผ์…จ์œผ๋‹ˆ ์ €๋Š” ์–ธ๊ธ‰ํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด์ œ๋Š” IT ๋ฐ”๋‹ฅ์—์„œ ๋ธ”๋ก์ฒด์ธ์„ ๋…ผํ•˜์ง€ ์•Š๋Š” ์‚ฌ๋žŒ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒŒ ๋งˆ๋ฒ•์˜ ํ‚ค์ธ ๊ฒƒ์ฒ˜๋Ÿผ ์ด์•ผ๊ธฐ๋˜๋Š” ๊ฒฝ์šฐ๋„ ์ •๋ง ๋งŽ์ฃ . ๊ทธ๋Ÿฐ๋ฐ ์‚ฌ์‹ค ๋งŽ์€ ๊ฒฝ์šฐ, ์ œ์‹œ๋œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ผญ ๋ธ”๋ก์ฒด์ธ์„ ๋„์ž…ํ•ด์•ผ ํ•˜๋Š” ๊ฑด ์•„๋‹™๋‹ˆ๋‹ค. ๋‚˜์—๊ฒŒ ์ •๋ง ๋ธ”๋ก์ฒด์ธ์ด ํ•„์š”ํ• ๊นŒ? ๊ถ๊ธˆํ•˜์‹œ๋‹ค๋ฉด ์ด ๋…ผ๋ฌธ์„ ํ•œ ๋ฒˆ ์‚ดํŽด๋ณด์„ธ์š”. 3ํŽ˜์ด์ง€ ๋„ํ‘œ๋ฅผ ์‚ดํŽด๋ณด์‹œ๋ฉด ์–ด๋–ค ๊ธฐ์ค€์œผ๋กœ ๋ธ”๋ก์ฒด์ธ์„ ๋„์ž…ํ•ด์•ผ ํ•˜๋Š”์ง€ ๊ฐ์„ ์žก์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ธ”๋ก์ฒด์ธ ํ”Œ๋žซํผ ์„ ํƒ์„ ์œ„ํ•œ ์˜์‚ฌ๊ฒฐ์ • ํ๋ฆ„์„ ํ•œ ๋ฒˆ ์ƒ๊ฐํ•ด๋ณด์‹œ์ฃ . ์ง€๊ธˆ์˜ ๊ธฐ์—… ์„ฑ๊ฒฉโ€” ๋ณด์•ˆ๊ณผ ๊ธฐ๋ฐ€์ด ์ค‘์š”ํ•˜๊ณ  ์ •๋ณด์˜ ์‹ ๋ขฐ์„ฑ๊ณผ ๋ฌด๊ฒฐ์„ฑ์ด ๋ณด์žฅ๋˜์–ด์•ผ ํ•˜๋Š” โ€”์„ ๊ณ ๋ คํ•œ๋‹ค๋ฉด, ๋Œ€๊ฐœ ๋„์ž…ํ•˜๊ฒŒ ๋  ๋ธ”๋ก์ฒด์ธ์€ ์œ„ ๋…ผ๋ฌธ์˜ Permissioned Private Blockchain์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๊ทธ Permissioned Private Blockchain์€ ์–ด๋•Œ์•ผ ํ• ๊นŒ์š”? Hyperledger Fabric์˜ ๋‹ต๋ณ€์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

* ๋ชจ๋“  ์ฐธ์—ฌ์ž๋“ค์˜ ์‹ ์›์ด ํ™•์ธ๋˜์–ด์•ผ ํ•จ.
* ๋„คํŠธ์›Œํฌ ์ƒ์˜ ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์ด ์ ๋ฒ•ํ•œ ์ ˆ์ฐจ์— ๋”ฐ๋ผ ํ—ˆ๊ฐ€๋˜์–ด์•ผ ํ•จ.
* ํŠธ๋žœ์žญ์…˜ throughput์ด ๋ณด์žฅ๋˜์–ด์•ผ ํ•จ.
* ํŠธ๋žœ์žญ์…˜ ์ตœ์ข… ์Šน์ธ์— ๋Œ€ํ•œ latency ์ตœ์ ํ™”.
* ํŠธ๋žœ์žญ์…˜๊ณผ ํ•ด๋‹น ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๊ธฐ๋ฐ€์ด ์œ ์ง€๋˜์–ด์•ผ ํ•จ.

์–ด๋–ค ๋ธ”๋ก์ฒด์ธ ๋น„์ฆˆ๋‹ˆ์Šค๊ฐ€ ์œ„ ์š”๊ฑด๋“ค์„ ๋ชจ๋‘ ๋งŒ์กฑ์‹œ์ผœ์•ผ ํ•œ๋‹ค๋ฉด, ์ตœ์ ์˜ ํ”Œ๋žซํผ์€ Hyperledger Fabric์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์ด ๊ธˆ์œต๊ถŒ์ด๋ผ๋ฉด R3 Corda๋ฅผ, ์กฐ๊ธˆ ๋” ์ž์œ ๋กœ์šด ๋น„์ฆˆ๋‹ˆ์Šค๋ผ๋ฉด ์ด๋”๋ฆฌ์›€์„, ๋„์ „์„ ์›ํ•œ๋‹ค๋ฉด EOS ๋“ฑ ๊ธฐํƒ€ ํ”Œ๋žซํผ์— ๋„์ „ํ•  ์ˆ˜ ์žˆ์ฃ . ๊ทธ๋ ‡์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์œ  ๋•Œ๋ฌธ์— Fabric์ด ์•ˆ์ „ํ•œ ์„ ํƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค:

    1. Configurable Module ๊ตฌ์กฐ: ๋ธ”๋ก์ฒด์ธ ๋„คํŠธ์›Œํฌ์—๋Š” ๋งŽ์€ ์ปดํฌ๋„ŒํŠธ์™€ ์ •์ฑ…๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๋ชจ๋“  ๊ฒŒ โ€˜์กฐ๋ฆฝ์‹’์œผ๋กœ ์›ํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋ชจ๋ธ์— ๋งž๊ฒŒ ์ทจ์‚ฌ ์„ ํƒํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ, ์œ ์—ฐํ•˜๊ฒŒ ์ฒซ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒ ์ฃ . ์ƒŒ๋“œ๋ฐ•์Šค ์šฉ์œผ๋กœ ์ ‘๊ทผํ•˜๊ธฐ๋„ ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.
    2. ์ผ๋ฐ˜ ๊ฐœ๋ฐœ ์–ธ์–ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ: ์ œ๊ฐ€ Fabric์—์„œ ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ์ ! ๋ธ”๋ก์ฒด์ธ์ด๋ผ๋Š” ๊ฒŒ ์ƒ์†Œํ•˜๊ธฐ๋„ ํ•˜๊ณ , ์•„ํ‚คํ…์ณ ๋ฌธ์„œ๋“ค ๋ณด๋ฉด ๋ญ”๊ฐ€ ์••๋„๋˜๋Š” ๊ฒƒ ๊ฐ™์€ ์ค‘์••๊ฐ์„ ๋Š๋‚๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๊ฑฐ๊ธฐ๋‹ค๊ฐ€ solidity๋‚˜ ๋‹ค๋ฅธ ์–ธ์–ด๋ฅผ ์ถ”๊ฐ€๋กœ ๋ฐฐ์›Œ์•ผ ํ•œ๋‹ค๊ณ ์š”? ๋Ÿฌ๋‹ ์ปค๋ธŒ ๊ฐ๋„ ์ˆ˜์ง ์ƒ์Šนํ•˜๋Š” ์†Œ๋ฆฌ๊ฐ€ ์—ฌ๊ธฐ๊นŒ์ง€ ๋“ค๋ฆฝ๋‹ˆ๋‹ค..! Fabric์€ golang, nodejs, java ๋“ฑ์„ ์ง€์›ํ•ด์„œ ๋ณด๋‹ค ๊ฐ€๋ณ๊ฒŒ ์‹œ์ž‘ํ•˜๊ธฐ ์ข‹๋”๋ผ๊ตฌ์š”.
    3. Execute-Order-Validate ์•„ํ‚คํ…์ฒ˜: ๋‹ค๋ฅธ ํ”Œ๋žซํผ์€ ๋ณดํ†ต ์‹คํ–‰ํ•˜๊ณ  ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. Fabric์€ ์ด์™€ ๋‹ฌ๋ฆฌ order๋ผ๋Š” ๋‹จ๊ณ„๊ฐ€ ์ถ”๊ฐ€๋˜๋Š”๋ฐ์š”, ์ด๋Š” ์›์žฅ์— ๋Œ€ํ•œ ํŠธ๋žœ์žญ์…˜์ด ๋น„๊ฒฐ์ •์„ฑ(non-determinism)์„ ๊ฐ–๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ฐฐ์ œํ•˜๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค. ๋น„๊ฒฐ์ •์„ฑ์ด๋ผ๋Š” ๊ฑด, a๋ผ๋Š” ์ธํ’‹์— ๋Œ€ํ•ด b๋ผ๋Š” ์•„์›ƒํ’‹์ด ํ•˜๋‚˜๋กœ ๊ฒฐ์ •๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ [b,c..] ์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์•„์›ƒํ’‹์ด ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์›์žฅ์„ ๋™์ผํ•œ ์ƒํƒœ๋กœ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•˜๋Š” ๋ธ”๋ก์ฒด์ธ์˜ ๋ฏธ์…˜์„ ์œ„ํ•ดํ•˜๋Š” ๊ฒฝ์šฐ์ฃ . ๋‹ค๋ฅธ ๋ธ”๋ก์ฒด์ธ ํ”Œ๋žซํผ์—์„œ๋Š” ๊ณ ์œ  ๊ฐœ๋ฐœ ์–ธ์–ด(solidity..)๋กœ ์ด๋ฅผ ์ปจํŠธ๋กค ํ•˜๋Š”๋ฐ, Fabric์—์„œ๋Š” ์ผ๋ฐ˜ ์–ธ์–ด๋ฅผ ์ฐจ์šฉํ•˜๋˜ ์•„ํ‚คํ…์ณ๋ฅผ ๋‹ฌ๋ฆฌํ•˜์—ฌ ์ด๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
    4. ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ€์„ ์œ„ํ•œ ์ฑ„๋„: ๋น„์ฆˆ๋‹ˆ์Šค๋ผ๋Š” ์ƒํ™ฉ์—์„œ, ์–ด๋–จ ๋•Œ์—๋Š” ๋ช‡๋ช‡ ์‚ฌ๋žŒ๋ผ๋ฆฌ๋งŒ ํŠน์ • ๋‚ด์šฉ์„ ๊ณต์œ ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐ˜๋“œ์‹œ ์ƒ๊น๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€๋งŒ ์ผ๋ฐ˜ ๋ธ”๋ก์ฒด์ธ ํ”Œ๋žซํผ์—์„œ๋Š” ์ด๋Ÿฐ ๊ฒฝ์šฐ๋ฅผ ์ง€์›ํ•˜์ง€ ๋ชปํ•˜์ฃ . ์ด๋Ÿด ๋•Œ์—๋Š” ์ „ํ˜€ ๋‹ค๋ฅธ ์ฑ„๋„์„ ํ†ตํ•ด์„œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. Fabric์€ ์ด๋Ÿฐ ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ฑด๊นŒ์ง€ ๋„คํŠธ์›Œํฌ ์•ˆ์—์„œ ํฌ์šฉํ•˜๊ณ , ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์— ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์ฒ˜ํ•˜๊ณ ์ž ์ฑ„๋„์ด๋ผ๋Š” ์š”์†Œ๋ฅผ ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค. ํ”ผ์–ด๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ์ฑ„๋„์— ๊ฐ€์ž…ํ•˜๊ฒŒ ๋˜๊ณ , ๊ทธ ์ฑ„๋„์—์„œ ๊ณต์œ ๋˜๋Š” ๋‚ด์šฉ์„ ๊ตฌ๋…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์Šฌ๋ž™์˜ ์ฑ„๋„๊ณผ ์œ ์‚ฌํ•˜์ฃ .




๋น„์ฆˆ๋‹ˆ์Šค๋ฅผ ๋งํ•˜๋Š” ๋ธ”๋ก์ฒด์ธ์ด ๊ฐ–์ถ”์–ด์•ผ ํ•  ๊ฒƒ์€ ์ด๋ ‡์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ด€์ ์—์„œ Hyperledger Fabric์€ ๊ฝค ํ›Œ๋ฅญํ•œ ์‹œ์ž‘ ํฌ์ธํŠธ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ๋Š” Fabric์„ ๊ตฌ์„ฑํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ์™€ ๊ฐ ์ปดํฌ๋„ŒํŠธ์˜ ์—ญํ• ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ† ๋ก  ์ฐธ๊ฐ€

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