๐Ÿ’ก ๊ทธ๋ƒฅ ์ •๋ฆฌํ•˜๋Š” ๋ธ”๋ก์ฒด์ธ.....
์ด ํฌ์ŠคํŒ…์€ ๊ณ„์†ํ•ด์„œ ์—…๋ฐ์ดํŠธ ํ•ด๋‚˜๊ฐˆ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค!

01. ๋ธ”๋ก์ฒด์ธ์ด๋ž€?

  • ๋ฐ์ดํ„ฐ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ๊ธฐ์ˆ  ์ž…๋‹ˆ๋‹ค.
  • ๋„คํŠธ์›Œํฌ์— ์ฐธ์—ฌํ•˜๋Š” ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ๊ฑฐ๋ž˜ ์™€ ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ๋ถ„์‚ฐ, ์ €์žฅ ํ•˜๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.
  • ๋ธ”๋ก ์€ ๊ฐœ์ธ๊ณผ ๊ฐœ์ธ์˜ ๊ฑฐ๋ž˜์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ธฐ๋ก๋˜๋Š” ์žฅ๋ถ€์ž…๋‹ˆ๋‹ค.
  • ์ด๋Ÿฐ ๋ธ”๋ก์ด ํ˜•์„ฑ๋œ ํ›„, ์‹œ๊ฐ„์˜ ํ๋ฆ„์— ๋”ฐ๋ผ ์ˆœ์ฐจ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ์‚ฌ์Šฌ(์ฒด์ธ) ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ๊ฑฐ๋ž˜๋‚ด์—ญ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ฑฐ๋ž˜ ๋‚ด์—ญ ํ™•์ธ ์‹œ์—๋Š” ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ์žฅ๋ถ€๋ฅผ ๋น„๊ต, ๋Œ€์กฐํ•˜๋Š” ์ž‘์—…์„ ๊ฑฐ์นฉ๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ, ๊ณต๊ณต ๊ฑฐ๋ž˜์žฅ๋ถ€ , ๋ถ„์‚ฐ ๊ฑฐ๋ž˜์žฅ๋ถ€ ๋ผ๊ณ ๋„ ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค.

02. ๋ธ”๋ก์ฒด์ธ์˜ ํŠน์ง•

  • ๋ณด์•ˆ์„ฑ
    • ๊ธฐ์กด ๊ฑฐ๋ž˜๋ฐฉ์‹(์€ํ–‰์—์„œ ๊ฑฐ๋ž˜๋‚ด์—ญ์„ ๋ณด์œ ํ•จ, ์ค‘์•™์ง‘๊ถŒํ˜•)์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์œ„๋ณ€์กฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์€ํ–‰์˜ ์ค‘์•™ ์„œ๋ฒ„ ๋งŒ ๊ณต๊ฒฉํ•˜๋ฉด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ํ•˜์ง€๋งŒ, ๋ธ”๋ก์ฒด์ธ์„ ์ด์šฉํ•˜๋ฉด ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์žฅ๋ถ€๋ฅผ ์กฐ์ž‘ํ•ด์•ผ ํ•˜๊ธฐ์— ํ˜„์‹ค์ ์œผ๋กœ ํž˜๋“  ์ผ์ž…๋‹ˆ๋‹ค.

03. ๋ธ”๋ก์ฒด์ธ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋‹จ๊ณ„

3-1. Part 1

3-1-1. ๊ธฐ๋ณธ์ ์ธ ๋ธ”๋ก์ฒด์ธ ๋งŒ๋“ค๊ธฐ

  • Data: ๊ฑฐ๋ž˜์ •๋ณด
  • PreviousHash: ์ด์ „ ๋ธ”๋ก์˜ ํ•ด์‰ฌ ๊ฐ’
  • timestamp: ์ƒ์„ฑ๋œ ์‹œ๊ฐ„
  • Nonce
  • Hash: Data + Previous Hash + timestamp
    • ๋ณดํ†ต SHA256 ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•˜์—ฌ ํ•ด์‰ฌ๊ฐ’์„ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.

3-1-2. Pow(Proof of Work) ์‹œ์Šคํ…œ ๊ตฌํ˜„

PoW๋ž€ Proof of Work ์˜ ์•ฝ์ž๋กœ ๋ธ”๋ก์ฒด์ธ์„ ํ†ตํ•ด ์„œ๋กœ ๊ณต์œ ํ•œ ์ž์›์„ ์•…์˜์ ์œผ๋กœ ์œ„๋ณ€์กฐ ํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๊ณ , ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๋ธ”๋ก์ฒด์ธ์„ ๊ณต์œ ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ž…์ฆํ•˜๊ธฐ ์œ„ํ•œ ํ•ฉ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.

์ปดํ“จํŒ… ํŒŒ์›Œ๋ฅผ ์ด์šฉํ•ด ๋ธ”๋ก์˜ hash๊ฐ’์„ ์ถ”์ ํ•˜์—ฌ ๋ธ”๋ก์ฒด์ธ ๋„คํŠธ์›Œํฌ์— ์ƒˆ๋กœ์šด ๋ธ”๋ก์„ ์ถ”๊ฐ€ํ•˜๋Š” ํ•ฉ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž…๋‹ˆ๋‹ค.

3-2. Part 2

3-2-1. ์ง€๊ฐ‘ ์ƒ์„ฑ

๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€๊ฐ‘์€ ์ฃผ์†Œ(๊ฐœ์ธํ‚ค, ๊ณต๊ฐœํ‚ค) ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ธ”๋ก์ฒด์ธ์—์„œ ์˜๋ฏธํ•˜๋Š” ์ง€๊ฐ‘์€ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๊ณ  ํŠธ๋žœ์žญ์…˜์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ํŠธ๋žœ์žญ์…˜์€ ํ•˜๋‚˜์˜ ๊ฑฐ๋ž˜ ๋‚ด์—ญ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€๊ฐ‘์˜ ์†Œ์œ ์ฃผ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ‚ค๋Š” ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
์ง€๊ฐ‘

๋ธ”๋ก์ฒด์ธ์—์„œ ๊ณต๊ฐœํ‚ค์™€ ๊ฐœ์ธํ‚ค๋Š” ํŠธ๋žœ์žญ์…˜์˜ ๊ฒ€์ฆ์ˆ˜๋‹จ ์ž…๋‹ˆ๋‹ค.
ํŠธ๋žœ์žญ์…˜์ด ์ƒ์„ฑ๋˜๊ณ  ์ฒ˜๋ฆฌ๋˜๋Š” ๊ณผ์ •์—์„œ ๊ฐœ์ธํ‚ค๋กœ ํŠธ๋žœ์žญ์…˜์„ ์„œ๋ช…ํ•˜๊ณ 
๊ณต๊ฐœํ‚ค๋กœ ์˜ฌ๋ฐ”๋ฅธ ์„œ๋ช…์ธ์ง€ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค.
์ง€๊ฐ‘

3-2-2. ํŠธ๋žœ์žญ์…˜ ๊ตฌํ˜„

ํŠธ๋žœ์žญ์…˜์— ์–ด๋–ค ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐ€๋Š”์ง€ ํ•œ๋ฒˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ์†ก์‹ ์ž์˜ ๊ณต๊ฐœํ‚ค
  • ์ˆ˜์‹ ์ž์˜ ๊ณต๊ฐœํ‚ค
  • ์ „๋‹ฌํ•  ๊ธˆ์•ก
  • Input(์ˆ˜์‹ ์ž๊ฐ€ ๋ณด๋‚ผ ๋ˆ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ฆ๋ช…ํ•  ์ด์ „ ํŠธ๋žœ์žญ์…˜ ์ฐธ์กฐ๊ฐ’)
  • Output(๊ฑฐ๋ž˜์—์„œ ๋ฐ›์€ ๊ด€๋ จ ์ฃผ์†Œ ๊ธˆ์•ก)
  • ์•”ํ˜ธํ™”๋œ ์„œ๋ช…

3-3. Part 3

3-3-1. P2P ๊ตฌํ˜„

3-3-2. Consensus algorithm

3-3-3. ๋ธ”๋ก ์ €์žฅ์†Œ์™€ DB

Reference