Mastering Bitcoin
Chap 8. ์ฑ„๊ตด๊ณผ ํ•ฉ์˜
Song Je-Ho
qwerwon@gmail.com
์ฑ„๊ตด์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€?
์ฑ„๊ตด( Mining )
๏‚ง ์ƒˆ๋กœ์šด ๋น„ํŠธ์ฝ”์ธ์ด ํ†ตํ™” ๊ณต๊ธ‰๋Ÿ‰์— ์ถ”๊ฐ€๋˜๋Š” ๊ณผ์ •
๏‚ง ์ฑ„๊ตด์ž๋“ค์€ ๋น„ํŠธ์ฝ”์ธ ๋„คํŠธ์›Œํฌ์— ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์„ ์ œ๊ณตํ•˜์—ฌ ๋ธ”๋ก์„ ์ƒ์„ฑํ•ด์ฃผ๊ณ , ๊ทธ ๋Œ€๊ฐ€๋กœ ๋น„ํŠธ์ฝ”์ธ
(ํ†ตํ™” ๋ฐœํ–‰๋Ÿ‰ + ๊ฑฐ๋ž˜ ์ˆ˜์ˆ˜๋ฃŒ)์„ ๋ฐ›๋Š”๋‹ค.
๏‚ง ๋‹จ์ˆœํ•œ ์ธ์„ผํ‹ฐ๋ธŒ๋ฅผ ์–ป๊ธฐ์œ„ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์•„๋‹ˆ๋ผ, ๋ถ„์‚ฐํ™”๋œ ๋„คํŠธ์›Œํฌ์—์„œ ๊ฑฐ๋ž˜๋ฅผ ๊ฒ€์ฆํ•˜๊ณ  ๋ชจ๋“ 
์ฐธ์—ฌ์ž๊ฐ€ ํ•ฉ์˜๋ฅผ ์ด๋ฃฐ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ์ˆ˜๋‹จ์ด๋‹ค.
๏‚ง ์ด๋Ÿฌํ•œ ๊ฒ€์ฆ ์ž‘์—…์— ์ธ์„ผํ‹ฐ๋ธŒ๋ฅผ ๋ถ€๊ณผํ•˜์—ฌ ์ฐธ์—ฌ์ž๋กœ ํ•˜์—ฌ๊ธˆ ์ž์œจ์ ์œผ๋กœ ๊ฒ€์ฆ ์ž‘์—…์— ์ฐธ์—ฌํ•˜๋„๋ก
์œ ๋„ํ•œ๋‹ค.
์ฑ„๊ตด ๋ณด์ƒ
ํ†ตํ™” ๋ฐœํ–‰
๏‚ง ๋น„ํŠธ์ฝ”์ธ์—์„œ๋Š” ์•ฝ 10๋ถ„๋งˆ๋‹ค ์ƒ์„ฑ๋˜๋Š” ๋ธ”๋ก์—์„œ ํ†ตํ™” ๋ฐœํ–‰์ด ์ผ์–ด๋‚œ๋‹ค(์ดˆ๊ธฐ 50๋น„ํŠธ์ฝ”์ธ).
๏‚ง 210,000๊ฐœ์˜ ๋ธ”๋ก(์•ฝ 4๋…„)๋งˆ๋‹ค ํ†ตํ™”๋Ÿ‰์€ ์ ˆ๋ฐ˜์œผ๋กœ ๊ฐ์†Œํ•˜๊ณ (ํ˜„์žฌ 12.5๋น„ํŠธ์ฝ”์ธ ๋ฐœํ–‰), 13,440,00
๊ฐœ์˜ ๋ธ”๋ก์ด ์ƒ์„ฑ๋˜๋Š” ์•ผ 2140๋…„๊ฒฝ์—๋Š” 2,100๋งŒ ๋น„ํŠธ์ฝ”์ธ ์ „๋ถ€๊ฐ€ ๋ฐœํ–‰๋˜๊ณ  ๋” ์ด์ƒ ์ƒˆ๋กœ์šด ๋น„ํŠธ
์ฝ”์ธ์ด ๋ฐœํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค(์ฑ„๊ตด ์ž‘์—…์€ ๊ณ„์† ์ง„ํ–‰, ์ฑ„๊ตด์ž๋Š” ๊ฑฐ๋ž˜ ์ˆ˜์ˆ˜๋ฃŒ๋งŒ ์–ป๊ฒŒ ๋œ๋‹ค).
๊ทธ๋ฆผ1] main.cpp์˜ ๋ธ”๋ก ๋ณด์ƒ๊ธˆ์„ returnํ•ด์ฃผ๋Š” ํ•จ์ˆ˜
๋งค 210,000 ๋ธ”๋ก๋งˆ๋‹ค ์ฑ„๊ตด ๋ณด์ƒ์ด
์ ˆ๋ฐ˜์”ฉ ์ค„์–ด๋“ ๋‹ค(binary shift)
๋ถ„์‚ฐ ํ•ฉ์˜
ํ•ฉ์˜ ๊ณผ์ •์˜ ํ•„์š”์„ฑ
๏‚ง ๊ธฐ์กด์˜ ์ค‘์•™ ๊ธฐ๊ด€์„ ๋ณด์œ ํ•˜๊ณ  ์žˆ๋Š” ์‹ ๋ขฐ ๋ชจ๋ธ์—์„œ๋Š” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ค‘์•™ ํ†ต์ œ ๊ธฐ๊ด€์˜ ํŒ๋‹จ
์— ๋”ฐ๋ผ์„œ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฒ˜๋ฆฌ๋˜์—ˆ๋‹ค.
๏‚ง ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  ์ฐธ์—ฌ์ž(ํ’€ ๋…ธ๋“œ)๊ฐ€ ๋™๋“ฑํ•œ ๊ถŒํ•œ์„ ๊ฐ–๋Š” ๋น„ํŠธ์ฝ”์ธ์—์„œ๋Š” ์ค‘์•™ ๊ธฐ๊ด€์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์–ด
๋–ค ๊ณผ์ •(ํŠธ๋žœ์žญ์…˜)์— ๋Œ€ํ•˜์—ฌ ๋ชจ๋“  ๋„คํŠธ์›Œํฌ๊ฐ€ ๋™์ผํ•œ ๊ฒฐ๋ก ์— ๋„๋‹ฌํ•  ์ˆ˜๋‹จ์ธ โ€˜ํ•ฉ์˜โ€˜ ํ”„๋กœ์„ธ์Šค๊ฐ€
ํ•„์š”ํ•˜๋‹ค.
๏‚ง โ€œํˆฌํ‘œ์™€ ๊ฐ™์ด ๋ช…์‹œ์ ์ธ ํ•ฉ์˜๊ฐ€ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— โ€˜๋„์ถœ์ (emergent)โ€™์ด๋ผ๋Š” ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉ
ํ–ˆ์œผ๋ฉฐ, ์ด๋Š” ํ•ฉ์˜๊ฐ€ ์ผ์–ด๋‚˜๋Š” ์ •ํ™•ํ•œ ์‹œ์ ์ด๋‚˜ ์„ ์ถœ ๊ณผ์ •์ด ์—†๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.โ€
๋ถ„์‚ฐ ํ•ฉ์˜
ํ•ฉ์˜ ๊ณผ์ •
๏‚ง ๊ฐ ๋…ธ๋“œ๋ณ„๋กœ ํŠธ๋žœ์žญ์…˜์„ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฒ€์ฆ
Tx ๊ฒ€์ฆ
Tx ๊ฒ€์ฆ
Tx ๊ฒ€์ฆ Tx ๊ฒ€์ฆ
Tx ๊ฒ€์ฆ
Tx ๊ฒ€์ฆ
๋ถ„์‚ฐ ํ•ฉ์˜
๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์  ๊ฒ€์ฆ(์ฒดํฌ ๋ฆฌ์ŠคํŠธ)
๏‚ง ๊ฑฐ๋ž˜์˜ ๊ตฌ๋ฌธ๊ณผ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ์ •ํ™•ํ•ด์•ผํ•œ๋‹ค.
๏‚ง ์ž…๋ ฅ๊ฐ’์ด๋‚˜ ์ถœ๋ ฅ๊ฐ’ ๋ชฉ๋ก์ด ๋น„์–ด ์žˆ์ง€ ์•Š๋‹ค.
๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ MAX_BLOCK_SIZE๋ณด๋‹ค ์ž‘๋‹ค.
๏‚ง ์ถœ๋ ฅ๊ฐ’ ๊ธˆ์•ก๊ณผ ๋…ธ๋“œ์˜ ์ด ๊ธˆ์•ก์ด ํ—ˆ์šฉ๋œ ๊ฐ€์น˜ ๋ฒ”์œ„(0๋ณด๋‹ค ํฌ๊ณ  2,100๋งŒ ๋น„ํŠธ์ฝ”์ธ๋ณด๋‹ค ์ž‘์Œ) ๋‚ด์—
์žˆ์–ด์•ผ ํ•œ๋‹ค.
๏‚ง ์ž…๋ ฅ๊ฐ’ ์ค‘ ํ•ด์‹œ๊ฐ’์€ 0, N๊ฐ’์€ -1์ด์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค.
๏‚ง nLOCKTime ์€ INT_MAX๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค.
๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ 100๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค.
๏‚ง ๊ฑฐ๋ž˜์— ๋‹ด๊ฒจ์žˆ๋Š” ์„œ๋ช… ์ž‘์—… ๊ฑด์ˆ˜๊ฐ€ ์„œ๋ช… ์ž‘์—… ํ•œ๋„ ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค.
๏‚ง ํ•ด์ œ ์Šคํฌ๋ฆฝํŠธ๋Š” ์Šคํƒ ์ƒ๋ถ€์— ์ˆซ์ž๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜๋งŒ ์žˆ๊ณ  ์ž ๊ธˆ ์Šคํฌ๋ฆฝํŠธ๋Š” isStandard ํ˜•ํƒœ์™€ ์ผ์น˜
ํ•ด์•ผํ•œ๋‹ค.
๏‚ง ํ’€์ด๋‚˜ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— ์žˆ๋Š” ๋ธ”๋ก์— ์ง์„ ์ด๋ฃจ๋Š” ๊ฑฐ๋ž˜๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค.
๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด, ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์ด ํ’€ ๋‚ด์˜ ์–ด๋– ํ•œ ๊ฑฐ๋ž˜ ๋‚ด๋ถ€์— ์กด์žฌํ•œ๋‹ค๋ฉด ํ•ด๋‹น ๊ฑฐ๋ž˜๋Š” ๊ฑฐ๋ถ€
๋˜์–ด์•ผ ํ•œ๋‹ค.
๋ถ„์‚ฐ ํ•ฉ์˜
๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์  ๊ฒ€์ฆ(์ฒดํฌ ๋ฆฌ์ŠคํŠธ)
๏‚ง ๊ฑฐ๋ž˜์˜ ๊ตฌ๋ฌธ๊ณผ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ์ •ํ™•ํ•ด์•ผํ•œ๋‹ค.
๏‚ง ์ž…๋ ฅ๊ฐ’์ด๋‚˜ ์ถœ๋ ฅ๊ฐ’ ๋ชฉ๋ก์ด ๋น„์–ด ์žˆ์ง€ ์•Š๋‹ค.
๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ MAX_BLOCK_SIZE๋ณด๋‹ค ์ž‘๋‹ค.
๏‚ง ์ถœ๋ ฅ๊ฐ’ ๊ธˆ์•ก๊ณผ ๋…ธ๋“œ์˜ ์ด ๊ธˆ์•ก์ด ํ—ˆ์šฉ๋œ ๊ฐ€์น˜ ๋ฒ”์œ„(0๋ณด๋‹ค ํฌ๊ณ  2,100๋งŒ ๋น„ํŠธ์ฝ”์ธ๋ณด๋‹ค ์ž‘์Œ) ๋‚ด์—
์žˆ์–ด์•ผ ํ•œ๋‹ค.
๏‚ง ์ž…๋ ฅ๊ฐ’ ์ค‘ ํ•ด์‹œ๊ฐ’์€ 0, N๊ฐ’์€ -1์ด์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค.
๏‚ง nLOCKTime ์€ INT_MAX๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค.
๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ 100๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค.
๏‚ง ๊ฑฐ๋ž˜์— ๋‹ด๊ฒจ์žˆ๋Š” ์„œ๋ช… ์ž‘์—… ๊ฑด์ˆ˜๊ฐ€ ์„œ๋ช… ์ž‘์—… ํ•œ๋„ ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค.
๏‚ง ํ•ด์ œ ์Šคํฌ๋ฆฝํŠธ๋Š” ์Šคํƒ ์ƒ๋ถ€์— ์ˆซ์ž๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜๋งŒ ์žˆ๊ณ  ์ž ๊ธˆ ์Šคํฌ๋ฆฝํŠธ๋Š” isStandard ํ˜•ํƒœ์™€ ์ผ์น˜
ํ•ด์•ผํ•œ๋‹ค.
๏‚ง ํ’€์ด๋‚˜ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— ์žˆ๋Š” ๋ธ”๋ก์— ์ง์„ ์ด๋ฃจ๋Š” ๊ฑฐ๋ž˜๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค.
๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด, ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์ด ํ’€ ๋‚ด์˜ ์–ด๋– ํ•œ ๊ฑฐ๋ž˜ ๋‚ด๋ถ€์— ์กด์žฌํ•œ๋‹ค๋ฉด ํ•ด๋‹น ๊ฑฐ๋ž˜๋Š” ๊ฑฐ๋ถ€
๋˜์–ด์•ผ ํ•œ๋‹ค.
Output์˜ index
๋ถ„์‚ฐ ํ•ฉ์˜
๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์  ๊ฒ€์ฆ(์ฒดํฌ ๋ฆฌ์ŠคํŠธ)
๏‚ง ๊ฑฐ๋ž˜์˜ ๊ตฌ๋ฌธ๊ณผ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ์ •ํ™•ํ•ด์•ผํ•œ๋‹ค.
๏‚ง ์ž…๋ ฅ๊ฐ’์ด๋‚˜ ์ถœ๋ ฅ๊ฐ’ ๋ชฉ๋ก์ด ๋น„์–ด ์žˆ์ง€ ์•Š๋‹ค.
๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ MAX_BLOCK_SIZE๋ณด๋‹ค ์ž‘๋‹ค.
๏‚ง ์ถœ๋ ฅ๊ฐ’ ๊ธˆ์•ก๊ณผ ๋…ธ๋“œ์˜ ์ด ๊ธˆ์•ก์ด ํ—ˆ์šฉ๋œ ๊ฐ€์น˜ ๋ฒ”์œ„(0๋ณด๋‹ค ํฌ๊ณ  2,100๋งŒ ๋น„ํŠธ์ฝ”์ธ๋ณด๋‹ค ์ž‘์Œ) ๋‚ด์—
์žˆ์–ด์•ผ ํ•œ๋‹ค.
๏‚ง ์ž…๋ ฅ๊ฐ’ ์ค‘ ํ•ด์‹œ๊ฐ’์€ 0, N๊ฐ’์€ -1์ด์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค.
๏‚ง nLOCKTime ์€ INT_MAX๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค.
๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ 100๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค.
๏‚ง ๊ฑฐ๋ž˜์— ๋‹ด๊ฒจ์žˆ๋Š” ์„œ๋ช… ์ž‘์—… ๊ฑด์ˆ˜๊ฐ€ ์„œ๋ช… ์ž‘์—… ํ•œ๋„ ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค.
๏‚ง ํ•ด์ œ ์Šคํฌ๋ฆฝํŠธ๋Š” ์Šคํƒ ์ƒ๋ถ€์— ์ˆซ์ž๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜๋งŒ ์žˆ๊ณ  ์ž ๊ธˆ ์Šคํฌ๋ฆฝํŠธ๋Š” isStandard ํ˜•ํƒœ์™€ ์ผ์น˜
ํ•ด์•ผํ•œ๋‹ค.
๏‚ง ํ’€์ด๋‚˜ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— ์žˆ๋Š” ๋ธ”๋ก์— ์ง์„ ์ด๋ฃจ๋Š” ๊ฑฐ๋ž˜๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค.
๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด, ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์ด ํ’€ ๋‚ด์˜ ์–ด๋– ํ•œ ๊ฑฐ๋ž˜ ๋‚ด๋ถ€์— ์กด์žฌํ•œ๋‹ค๋ฉด ํ•ด๋‹น ๊ฑฐ๋ž˜๋Š” ๊ฑฐ๋ถ€
๋˜์–ด์•ผ ํ•œ๋‹ค.
ํŠธ๋žœ์žญ์…˜์ด ๋ธ”๋ก์— ํฌํ•จ๋  ์ˆ˜ ์—†๋Š” ์ตœ์†Œ
์‹œ๊ฐ„(unix time or block height)
๋ถ„์‚ฐ ํ•ฉ์˜
๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์  ๊ฒ€์ฆ(์ฒดํฌ ๋ฆฌ์ŠคํŠธ)
๏‚ง ๊ฑฐ๋ž˜์˜ ๊ตฌ๋ฌธ๊ณผ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ์ •ํ™•ํ•ด์•ผํ•œ๋‹ค.
๏‚ง ์ž…๋ ฅ๊ฐ’์ด๋‚˜ ์ถœ๋ ฅ๊ฐ’ ๋ชฉ๋ก์ด ๋น„์–ด ์žˆ์ง€ ์•Š๋‹ค.
๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ MAX_BLOCK_SIZE๋ณด๋‹ค ์ž‘๋‹ค.
๏‚ง ์ถœ๋ ฅ๊ฐ’ ๊ธˆ์•ก๊ณผ ๋…ธ๋“œ์˜ ์ด ๊ธˆ์•ก์ด ํ—ˆ์šฉ๋œ ๊ฐ€์น˜ ๋ฒ”์œ„(0๋ณด๋‹ค ํฌ๊ณ  2,100๋งŒ ๋น„ํŠธ์ฝ”์ธ๋ณด๋‹ค ์ž‘์Œ) ๋‚ด์—
์žˆ์–ด์•ผ ํ•œ๋‹ค.
๏‚ง ์ž…๋ ฅ๊ฐ’ ์ค‘ ํ•ด์‹œ๊ฐ’์€ 0, N๊ฐ’์€ -1์ด์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค.
๏‚ง nLOCKTime ์€ INT_MAX๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค.
๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ 100๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค.
๏‚ง ๊ฑฐ๋ž˜์— ๋‹ด๊ฒจ์žˆ๋Š” ์„œ๋ช… ์ž‘์—… ๊ฑด์ˆ˜๊ฐ€ ์„œ๋ช… ์ž‘์—… ํ•œ๋„ ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค.
๏‚ง ํ•ด์ œ ์Šคํฌ๋ฆฝํŠธ๋Š” ์Šคํƒ ์ƒ๋ถ€์— ์ˆซ์ž๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜๋งŒ ์žˆ๊ณ  ์ž ๊ธˆ ์Šคํฌ๋ฆฝํŠธ๋Š” isStandard ํ˜•ํƒœ์™€ ์ผ์น˜
ํ•ด์•ผํ•œ๋‹ค.
๏‚ง ํ’€์ด๋‚˜ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— ์žˆ๋Š” ๋ธ”๋ก์— ์ง์„ ์ด๋ฃจ๋Š” ๊ฑฐ๋ž˜๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค.
๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด, ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์ด ํ’€ ๋‚ด์˜ ์–ด๋– ํ•œ ๊ฑฐ๋ž˜ ๋‚ด๋ถ€์— ์กด์žฌํ•œ๋‹ค๋ฉด ํ•ด๋‹น ๊ฑฐ๋ž˜๋Š” ๊ฑฐ๋ถ€
๋˜์–ด์•ผ ํ•œ๋‹ค.
๋ถ„์‚ฐ ํ•ฉ์˜
๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์  ๊ฒ€์ฆ(์ฒดํฌ ๋ฆฌ์ŠคํŠธ)
์—… ํ•œ๋„ ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค.
๏‚ง ํ•ด์ œ ์Šคํฌ๋ฆฝํŠธ๋Š” ์Šคํƒ ์ƒ๋ถ€์— ์ˆซ์ž๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜๋งŒ ์žˆ๊ณ  ์ž ๊ธˆ ์Šคํฌ๋ฆฝํŠธ๋Š” isStandard ํ˜•ํƒœ์™€ ์ผ์น˜
ํ•ด์•ผํ•œ๋‹ค.
bitcoin/src/policy/policy.cpp
๋ถ„์‚ฐ ํ•ฉ์˜
๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์  ๊ฒ€์ฆ(์ฒดํฌ ๋ฆฌ์ŠคํŠธ)
๏‚ง ๊ฑฐ๋ž˜์˜ ๊ตฌ๋ฌธ๊ณผ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ์ •ํ™•ํ•ด์•ผํ•œ๋‹ค.
๏‚ง ์ž…๋ ฅ๊ฐ’์ด๋‚˜ ์ถœ๋ ฅ๊ฐ’ ๋ชฉ๋ก์ด ๋น„์–ด ์žˆ์ง€ ์•Š๋‹ค.
๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ MAX_BLOCK_SIZE๋ณด๋‹ค ์ž‘๋‹ค.
๏‚ง ์ถœ๋ ฅ๊ฐ’ ๊ธˆ์•ก๊ณผ ๋…ธ๋“œ์˜ ์ด ๊ธˆ์•ก์ด ํ—ˆ์šฉ๋œ ๊ฐ€์น˜ ๋ฒ”์œ„(0๋ณด๋‹ค ํฌ๊ณ  2,100๋งŒ ๋น„ํŠธ์ฝ”์ธ๋ณด๋‹ค ์ž‘์Œ) ๋‚ด์—
์žˆ์–ด์•ผ ํ•œ๋‹ค.
๏‚ง ์ž…๋ ฅ๊ฐ’ ์ค‘ ํ•ด์‹œ๊ฐ’์€ 0, N๊ฐ’์€ -1์ด์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค.
๏‚ง nLOCKTime ์€ INT_MAX๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค.
๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ 100๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค.
๏‚ง ๊ฑฐ๋ž˜์— ๋‹ด๊ฒจ์žˆ๋Š” ์„œ๋ช… ์ž‘์—… ๊ฑด์ˆ˜๊ฐ€ ์„œ๋ช… ์ž‘์—… ํ•œ๋„ ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค.
๏‚ง ํ•ด์ œ ์Šคํฌ๋ฆฝํŠธ๋Š” ์Šคํƒ ์ƒ๋ถ€์— ์ˆซ์ž๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜๋งŒ ์žˆ๊ณ  ์ž ๊ธˆ ์Šคํฌ๋ฆฝํŠธ๋Š” isStandard ํ˜•ํƒœ์™€ ์ผ์น˜
ํ•ด์•ผํ•œ๋‹ค.
๏‚ง ํ’€์ด๋‚˜ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— ์žˆ๋Š” ๋ธ”๋ก์— ์ง์„ ์ด๋ฃจ๋Š” ๊ฑฐ๋ž˜๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค.
๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด, ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์ด ํ’€ ๋‚ด์˜ ์–ด๋– ํ•œ ๊ฑฐ๋ž˜ ๋‚ด๋ถ€์— ์กด์žฌํ•œ๋‹ค๋ฉด ํ•ด๋‹น ๊ฑฐ๋ž˜๋Š” ๊ฑฐ๋ถ€
๋˜์–ด์•ผ ํ•œ๋‹ค.
ํŠธ๋žœ์žญ์…˜์˜ input์— ๋Œ€์‘ํ•˜๋Š” output์ด
๋ฉ”๋ชจ๋ฆฌ ํ’€์ด๋‚˜ ๊ธฐ์กด ๋ธ”๋ก์— ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค
๋ถ„์‚ฐ ํ•ฉ์˜
๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์  ๊ฒ€์ฆ(์ฒดํฌ ๋ฆฌ์ŠคํŠธ)
๏‚ง ๊ฑฐ๋ž˜์˜ ๊ตฌ๋ฌธ๊ณผ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ์ •ํ™•ํ•ด์•ผํ•œ๋‹ค.
๏‚ง ์ž…๋ ฅ๊ฐ’์ด๋‚˜ ์ถœ๋ ฅ๊ฐ’ ๋ชฉ๋ก์ด ๋น„์–ด ์žˆ์ง€ ์•Š๋‹ค.
๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ MAX_BLOCK_SIZE๋ณด๋‹ค ์ž‘๋‹ค.
๏‚ง ์ถœ๋ ฅ๊ฐ’ ๊ธˆ์•ก๊ณผ ๋…ธ๋“œ์˜ ์ด ๊ธˆ์•ก์ด ํ—ˆ์šฉ๋œ ๊ฐ€์น˜ ๋ฒ”์œ„(0๋ณด๋‹ค ํฌ๊ณ  2,100๋งŒ ๋น„ํŠธ์ฝ”์ธ๋ณด๋‹ค ์ž‘์Œ) ๋‚ด์—
์žˆ์–ด์•ผ ํ•œ๋‹ค.
๏‚ง ์ž…๋ ฅ๊ฐ’ ์ค‘ ํ•ด์‹œ๊ฐ’์€ 0, N๊ฐ’์€ -1์ด์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค.
๏‚ง nLOCKTime ์€ INT_MAX๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค.
๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ 100๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค.
๏‚ง ๊ฑฐ๋ž˜์— ๋‹ด๊ฒจ์žˆ๋Š” ์„œ๋ช… ์ž‘์—… ๊ฑด์ˆ˜๊ฐ€ ์„œ๋ช… ์ž‘์—… ํ•œ๋„ ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค.
๏‚ง ํ•ด์ œ ์Šคํฌ๋ฆฝํŠธ๋Š” ์Šคํƒ ์ƒ๋ถ€์— ์ˆซ์ž๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜๋งŒ ์žˆ๊ณ  ์ž ๊ธˆ ์Šคํฌ๋ฆฝํŠธ๋Š” isStandard ํ˜•ํƒœ์™€ ์ผ์น˜
ํ•ด์•ผํ•œ๋‹ค.
๏‚ง ํ’€์ด๋‚˜ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— ์žˆ๋Š” ๋ธ”๋ก์— ์ง์„ ์ด๋ฃจ๋Š” ๊ฑฐ๋ž˜๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค.
๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด, ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์ด ํ’€ ๋‚ด์˜ ์–ด๋– ํ•œ ๊ฑฐ๋ž˜ ๋‚ด๋ถ€์— ์กด์žฌํ•œ๋‹ค๋ฉด ํ•ด๋‹น ๊ฑฐ๋ž˜๋Š” ๊ฑฐ๋ถ€
๋˜์–ด์•ผ ํ•œ๋‹ค.
์ด๋ฏธ ์†Œ๋ชจ๋œ ํŠธ๋žœ์žญ์…˜์ด๋ฉด ๊ฑฐ๋ถ€ํ•œ๋‹ค
๋ถ„์‚ฐ ํ•ฉ์˜
๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์  ๊ฒ€์ฆ(์ฒดํฌ ๋ฆฌ์ŠคํŠธ)
๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด, ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์ด ๊ฑฐ๋ž˜ ๋‚ด์— ์žˆ๋Š”์ง€ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์™€ ๊ฑฐ๋ž˜ ํ’€์„
์‚ดํŽด๋ณด์ž. ๋งŒ์•ฝ ์ถœ๋ ฅ ๊ฑฐ๋ž˜์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•œ ์ด์ „ ์ถœ๋ ฅ๊ฐ’์„ ์ฐพ์„ ์ˆ˜ ์—†์„ ๋•Œ๋Š” ์ด ๊ฑฐ๋ž˜๋Š” ๊ณ ์•„๊ฑฐ๋ž˜
๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค. ์ง์„ ์ด๋ฃจ๋Š” ๊ฑฐ๋ž˜๊ฐ€ ํ’€์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๊ณ ์•„๊ฑฐ๋ž˜ ํ’€์— ์ถ”๊ฐ€ํ•˜๋ผ.
๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์ด ์ฝ”์ธ๋ฒ ์ด์Šค ์ถœ๋ ฅ์ด๋ผ๋ฉด, ์ตœ์†Œ COINBASE_MATURITY(100) ์Šน
์ธ์„ ๋ฐ›์•„์•ผ ํ•œ๋‹ค.
๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์€ ์กด์žฌํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋ฏธ ์†Œ๋น„๋˜์—ˆ์œผ๋ฉด ์•ˆ ๋œ๋‹ค.
๏‚ง ์ฐธ์กฐ ์ถœ๋ ฅ ๊ฑฐ๋ž˜์—์„œ ์ž…๋ ฅ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๊ฐ ์ž…๋ ฅ๊ฐ’ ๊ธˆ์•ก๊ณผ ์ž…๋ ฅ๊ฐ’ ์ด์•ก์ด ํ—ˆ์šฉ๋œ ๊ฐ€์น˜ ๋ฒ”์œ„(0๋ณด
๋‹ค ํฌ๊ณ  2,100๋งŒ ๋น„ํŠธ์ฝ”์ธ๋ณด๋‹ค ์ž‘์Œ) ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค.
๏‚ง ์ž…๋ ฅ๊ฐ’ ๊ธˆ์•ก์ด ์ถœ๋ ฅ๊ฐ’ ์ด์•ก๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ ํ•ด๋‹น ๊ฑฐ๋ž˜๋ฅผ ๊ฑฐ์ ˆํ•˜๋ผ.
๏‚ง ๊ฑฐ๋ž˜ ์ˆ˜์ˆ˜๋ฃŒ๊ฐ€ ๋น„์–ด ์žˆ๋Š” ๋ธ”๋ก์— ๋“ค์–ด๊ฐ€๊ธฐ์— ๋„ˆ๋ฌด ์ž‘์„ ๋•Œ๋Š” ํ•ด๋‹น ๊ฑฐ๋ž˜๋ฅผ ๊ฑฐ์ ˆํ•˜๋ผ.
๏‚ง ๊ฑฐ๋ž˜ ์ˆ˜์ˆ˜๋ฃŒ๊ฐ€ ๋น„์–ด ์žˆ๋Š” ๋ธ”๋ก์— ๋“ค์–ด๊ฐ€๊ธฐ์— ๋„ˆ๋ฌด ์ž‘์„ ๋•Œ๋Š” ํ•ด๋‹น ๊ฑฐ๋ž˜๋ฅผ ๊ฑฐ์ ˆํ•˜๋ผ.
๏‚ง ๊ฐ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•œ ํ•ด์ œ ์Šคํฌ๋ฆฝํŠธ๋Š” ๊ทธ์— ํ•ด๋‹นํ•˜๋Š” ์ถœ๋ ฅ๊ฐ’ ์ž ๊ธˆ ์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•ด ๊ฒ€์ฆํ•ด์•ผ ํ•œ๋‹ค.
๋ถ„์‚ฐ ํ•ฉ์˜
๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์  ๊ฒ€์ฆ(์ฒดํฌ ๋ฆฌ์ŠคํŠธ)
๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด, ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์ด ๊ฑฐ๋ž˜ ๋‚ด์— ์žˆ๋Š”์ง€ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์™€ ๊ฑฐ๋ž˜ ํ’€์„
์‚ดํŽด๋ณด์ž. ๋งŒ์•ฝ ์ถœ๋ ฅ ๊ฑฐ๋ž˜์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•œ ์ด์ „ ์ถœ๋ ฅ๊ฐ’์„ ์ฐพ์„ ์ˆ˜ ์—†์„ ๋•Œ๋Š” ์ด ๊ฑฐ๋ž˜๋Š” ๊ณ ์•„๊ฑฐ๋ž˜
๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค. ์ง์„ ์ด๋ฃจ๋Š” ๊ฑฐ๋ž˜๊ฐ€ ํ’€์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๊ณ ์•„๊ฑฐ๋ž˜ ํ’€์— ์ถ”๊ฐ€ํ•˜๋ผ.
๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์ด ์ฝ”์ธ๋ฒ ์ด์Šค ์ถœ๋ ฅ์ด๋ผ๋ฉด, ์ตœ์†Œ COINBASE_MATURITY(100) ์Šน
์ธ์„ ๋ฐ›์•„์•ผ ํ•œ๋‹ค.
๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์€ ์กด์žฌํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋ฏธ ์†Œ๋น„๋˜์—ˆ์œผ๋ฉด ์•ˆ ๋œ๋‹ค.
๏‚ง ์ฐธ์กฐ ์ถœ๋ ฅ ๊ฑฐ๋ž˜์—์„œ ์ž…๋ ฅ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๊ฐ ์ž…๋ ฅ๊ฐ’ ๊ธˆ์•ก๊ณผ ์ž…๋ ฅ๊ฐ’ ์ด์•ก์ด ํ—ˆ์šฉ๋œ ๊ฐ€์น˜ ๋ฒ”์œ„(0๋ณด
๋‹ค ํฌ๊ณ  2,100๋งŒ ๋น„ํŠธ์ฝ”์ธ๋ณด๋‹ค ์ž‘์Œ) ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค.
๏‚ง ์ž…๋ ฅ๊ฐ’ ๊ธˆ์•ก์ด ์ถœ๋ ฅ๊ฐ’ ์ด์•ก๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ ํ•ด๋‹น ๊ฑฐ๋ž˜๋ฅผ ๊ฑฐ์ ˆํ•˜๋ผ.
๏‚ง ๊ฑฐ๋ž˜ ์ˆ˜์ˆ˜๋ฃŒ๊ฐ€ ๋น„์–ด ์žˆ๋Š” ๋ธ”๋ก์— ๋“ค์–ด๊ฐ€๊ธฐ์— ๋„ˆ๋ฌด ์ž‘์„ ๋•Œ๋Š” ํ•ด๋‹น ๊ฑฐ๋ž˜๋ฅผ ๊ฑฐ์ ˆํ•˜๋ผ.
๏‚ง ๊ฑฐ๋ž˜ ์ˆ˜์ˆ˜๋ฃŒ๊ฐ€ ๋น„์–ด ์žˆ๋Š” ๋ธ”๋ก์— ๋“ค์–ด๊ฐ€๊ธฐ์— ๋„ˆ๋ฌด ์ž‘์„ ๋•Œ๋Š” ํ•ด๋‹น ๊ฑฐ๋ž˜๋ฅผ ๊ฑฐ์ ˆํ•˜๋ผ.
๏‚ง ๊ฐ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•œ ํ•ด์ œ ์Šคํฌ๋ฆฝํŠธ๋Š” ๊ทธ์— ํ•ด๋‹นํ•˜๋Š” ์ถœ๋ ฅ๊ฐ’ ์ž ๊ธˆ ์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•ด ๊ฒ€์ฆํ•ด์•ผ ํ•œ๋‹ค.
์ฝ”์ธ๋ฒ ์ด์Šค ์ถœ๋ ฅ์ด๋ฉด, 100๊ฐœ์˜ ๋ธ”๋ก height ์ดํ›„์—์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ถ„์‚ฐ ํ•ฉ์˜
Transaction 0
Transaction 1
Transaction 2
...
Transaction N
Block
#123528
ํ•ฉ์˜ ๊ณผ์ •
๏‚ง ์ž‘์—…์ฆ๋ช…์„ ํ†ตํ•ด ๋ธ”๋ก ์ƒ์„ฑ
์ฑ„๊ตด
์ฑ„๊ตด ๋…ธ๋“œ
Block header
๋ถ„์‚ฐ ํ•ฉ์˜
ํ•ฉ์˜ ๊ณผ์ •
๏‚ง ๊ฐ ๋…ธ๋“œ์˜ ์ƒˆ ๋ธ”๋ก ๊ฒ€์ฆ
๋ธ”๋ก ์ „ํŒŒTransaction 0
Transaction 1
Transaction 2
...
Transaction N
Block
#123528
Block header
๋ถ„์‚ฐ ํ•ฉ์˜
ํ•ฉ์˜ ๊ณผ์ •
๏‚ง ๊ฐ ๋…ธ๋“œ์˜ ์ƒˆ ๋ธ”๋ก ๊ฒ€์ฆ
๋ธ”๋ก ๊ฒ€์ฆ
๋ธ”๋ก ๊ฒ€์ฆ
Transaction 0
Transaction 1
Transaction 2
...
Transaction N
Block
#123528
Block header
๋ถ„์‚ฐ ํ•ฉ์˜
...
...
...
...
...
Block
#???
ํ•ฉ์˜ ๊ณผ์ •
๏‚ง ์ตœ๊ณ  ๋ˆ„์  ์—ฐ์‚ฐ ์ฒด์ธ(Longest Chain)์„ ๋…๋ฆฝ์ ์œผ๋กœ ์„ ํƒ
๋…ธ๋“œ
...
...
...
...
...
Block
#???
...
...
...
...
...
Block
#???
...
...
...
...
...
Block
#???
...
...
...
...
...
Block
#???
์ฒด์ธ ์„ ํƒ
ํ›„๋ณด ๋ธ”๋ก
Transaction 0
Transaction 1
Transaction 2
Transaction 3
Transaction 4
๋ฉ”๋ชจ๋ฆฌ ํ’€
์šฐ์„ ์ˆœ์œ„
...
Transaction N-3
Transaction N-2
Transaction N-1
Transaction N
ํ›„๋ณด ๋ธ”๋ก #6114
Transaction 0
Transaction 1
Transaction 8
Transaction 11
Transaction N-2
์ฑ„๊ตด ๋…ธ๋“œ A
???
ํ›„๋ณด ๋ธ”๋ก
Transaction 0
Transaction 1
Transaction 2
Transaction 3
Transaction 4
๋ฉ”๋ชจ๋ฆฌ ํ’€
์šฐ์„ ์ˆœ์œ„
...
Transaction N-3
Transaction N-2
Transaction N-1
Transaction N
ํ›„๋ณด ๋ธ”๋ก #6114
Transaction 0
Transaction 1
Transaction 8
Transaction 11
Transaction N-2
์ฑ„๊ตด ๋…ธ๋“œ A
50KB์˜ ๊ณต๊ฐ„์€
(Input ๊ฐ’์˜ ์ดํ•ฉ * Age) / Transacion size
๊ฐ’์ด ๋†’์€ ํŠธ๋žœ์žญ์…˜์„ ํ• ๋‹นํ•˜๊ณ ,
???
ํ›„๋ณด ๋ธ”๋ก
Transaction 0
Transaction 1
Transaction 2
Transaction 3
Transaction 4
๋ฉ”๋ชจ๋ฆฌ ํ’€
์šฐ์„ ์ˆœ์œ„
...
Transaction N-3
Transaction N-2
Transaction N-1
Transaction N
ํ›„๋ณด ๋ธ”๋ก #6114
Transaction 0
Transaction 1
Transaction 8
Transaction 11
Transaction N-2
์ฑ„๊ตด ๋…ธ๋“œ A
๋‚˜๋จธ์ง€ ๊ณต๊ฐ„์€ ํ‚ฌ๋กœ๋ฐ”์ดํŠธ ๋Œ€๋น„ ์ตœ๊ณ 
์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ๊ฐ€์ง„ ๊ฑฐ๋ž˜ ์ˆœ์œผ๋กœ ๋ธ”๋ก์— ๋‹ด๋Š”๋‹ค
ํ›„๋ณด ๋ธ”๋ก
Transaction 0
Transaction 1
Transaction 2
Transaction 3
Transaction 4
๋ฉ”๋ชจ๋ฆฌ ํ’€
์šฐ์„ ์ˆœ์œ„
...
Transaction N-3
Transaction N-2
Transaction N-1
Transaction N
ํ›„๋ณด ๋ธ”๋ก #6114
Transaction 0
Transaction 1
Transaction 8
Transaction 11
Transaction N-2
์ฑ„๊ตด ๋…ธ๋“œ A
๋ธ”๋ก #6114
Transaction 0
Transaction 2
Transaction 8
Transaction 9
Transaction N-2
Block Header
ํ›„๋ณด ๋ธ”๋ก
Transaction 0
Transaction 1
Transaction 2
Transaction 3
Transaction 4
๋ฉ”๋ชจ๋ฆฌ ํ’€...
Transaction N-3
Transaction N-2
Transaction N-1
Transaction N
ํ›„๋ณด ๋ธ”๋ก #6114
Transaction 0
Transaction 1
Transaction 8
Transaction 11
Transaction N-2
์ฑ„๊ตด ๋…ธ๋“œ A
๏‚ง ๋‹ค๋ฅธ ๋…ธ๋“œ๊ฐ€ ๋จผ์ € ๋ธ”๋ก์„ ์ฑ„๊ตดํ–ˆ์œผ๋ฏ€๋กœ ์ „ํŒŒ๋œ ๋ธ”๋ก์˜ ๊ฒ€์ฆ์ž‘์—… ํ›„์—, ๋ฉ”๋ชจ๋ฆฌ ํ’€ ๋‚ด์— ์žˆ๋Š”
ํŠธ๋žœ์žญ์…˜ ์ค‘์—์„œ ์ „ํŒŒ๋œ ๋ธ”๋ก์— ํฌํ•จ๋œ ํŠธ๋žœ์žญ์…˜์„ ์ œ๊ฑฐํ•˜๊ณ  ์ƒˆ๋กœ์šด ํ›„๋ณด ๋ธ”๋ก์„ ๋งŒ๋“ ๋‹ค.
์ „ํŒŒ๋œ ๋ธ”๋ก์— ํฌํ•จ๋œ
ํŠธ๋žœ์žญ์…˜ ์ œ๊ฑฐ
๋ธ”๋ก #6114
Transaction 0
Transaction 2
Transaction 8
Transaction 9
Transaction N-2
Block Header
์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜
๏‚ง ์ฑ„๊ตด์ž๊ฐ€ ๋ธ”๋ก์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ฑ„๊ตดํ–ˆ์„๋•Œ ๋ณด์ƒ์„ ์ œ๊ณตํ•˜๋Š” ํŠธ๋žœ์žญ์…˜์œผ๋กœ, input์ด ์ฝ”์ธ๋ฒ ์ด์Šค์ธ
ํŠธ๋žœ์žญ์…˜์„ ๋งํ•œ๋‹ค.
๏‚ง ๋ณด์ƒ์„ ๋ฐ›์€ ๋’ค 100๊ฐœ์˜ block height๊ฐ€ ์ง€๋‚˜๊ณ ์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
๊ทธ๋ฆผ2] ์‹ค์ œ ์ฝ”์ธ๋ฒ ์ด์Šค ํŠธ๋žœ์žญ์…˜์˜ json ํฌ๋งท ๋ฐ์ดํ„ฐ
์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜
์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ
๊ทธ๋ฆผ3] ๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data
์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜
์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ
๊ทธ๋ฆผ3] ๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data
๋ฒ„์ „ ์ •๋ณด
์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜
์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ
๊ทธ๋ฆผ3] ๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data
Input ์นด์šดํŠธ
์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜
์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ
๊ทธ๋ฆผ3] ๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data
Input ํŠธ๋žœ์žญ์…˜์˜ ํ•ด์‹œ(์ฝ”์ธ๋ฒ ์ด์Šค๋Š”
์—†์œผ๋ฏ€๋กœ ๋ชจ๋‘ 0)
์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜
์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ
๊ทธ๋ฆผ3] ๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data
์†Œ๋ชจ๋  Input์˜ ํŠธ๋žœ์žญ์…˜ ๋‚ด
index(๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์กด์žฌํ•˜์ง€ ์•Š์Œ)
์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜
์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ
๊ทธ๋ฆผ3] ๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data
์ฝ”์ธ๋ฒ ์ด์Šค ๋ฐ์ดํ„ฐ์˜ ๊ธธ์ด
์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜
์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ
๊ทธ๋ฆผ3] ๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data
์ฝ”์ธ๋ฒ ์ด์Šค ๋ฐ์ดํ„ฐ
์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜
์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ
๊ทธ๋ฆผ3] ๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data
์ผ๋ จ๋ฒˆํ˜ธ
์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜
์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ
๊ทธ๋ฆผ3] ๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data
Output ์นด์šดํŠธ
์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜
์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ
๊ทธ๋ฆผ3] ๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data
๋ณด์ƒ(Value)
์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜
์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ
๊ทธ๋ฆผ3] ๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data
scriptPubkey
์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜
์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ
๊ทธ๋ฆผ3] ๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data
locktime
๋ธ”๋ก ํ—ค๋”
ํฌ๊ธฐ ํ•„๋“œ ์„ค๋ช…
4๋ฐ”์ดํŠธ ๋ฒ„์ „ ์†Œํ”„ํŠธ์›จ์–ด/ํ”„๋กœํ† ์ฝœ ์—…๊ทธ๋ ˆ์ด๋“œ ์ถ”์ ์„ ์œ„ํ•œ ๋ฒ„์ „ ๋ฒˆํ˜ธ
32๋ฐ”์ดํŠธ ์ด์ „ ๋ธ”๋ก ํ•ด์‹œ ์ฒด์ธ ๋‚ด ์ด์ „ ๋ธ”๋ก์˜ ํ•ด์‹œ์— ๋Œ€ํ•œ ์ฐธ์กฐ
32๋ฐ”์ดํŠธ ๋จธํด ๋ฃจํŠธ ๋ธ”๋ก ๊ฑฐ๋ž˜์˜ ๋จธํด ํŠธ๋ฆฌ์˜ ๋ฃจํŠธ์— ๋Œ€ํ•œ ํ•ด์‹œ
4๋ฐ”์ดํŠธ ํƒ€์ž„์Šคํƒฌํ”„ ๋ธ”๋ก์˜ ๋Œ€๋žต์ ์ธ ์ƒ์„ฑ์‹œ๊ฐ„(UNIX time)
4๋ฐ”์ดํŠธ ๋‚œ์ด๋„ ๋ชฉํ‘œ ๋ธ”๋ก์˜ ์ž‘์—…์ฆ๋ช… ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ๋‚œ์ด๋„ ๋ชฉํ‘œ
4๋ฐ”์ดํŠธ ๋‚œ์Šค(Nonce) ์ž‘์—…์ฆ๋ช… ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์‚ฌ์šฉ๋˜๋Š” ์นด์šดํ„ฐ
ํ‘œ 1] ๋ธ”๋ก ํ—ค๋”์˜ ๊ตฌ์„ฑ
๏‚ง ๋ธ”๋ก ํ—ค๋” ๊ตฌ์กฐ
๋ธ”๋ก ํ—ค๋”
๊ทธ๋ฆผ 4] ์‹ค์ œ ๋น„ํŠธ์ฝ”์ธ 123,456๋ฒˆ ๋ธ”๋ก์˜ ํ—ค๋”
๏‚ง ๋ธ”๋ก ํ—ค๋” ์˜ˆ์‹œ
๋ธ”๋ก ํ—ค๋”
๊ทธ๋ฆผ 4] ์‹ค์ œ ๋น„ํŠธ์ฝ”์ธ 123,456๋ฒˆ ๋ธ”๋ก์˜ ํ—ค๋”
๋‚œ์ด๋„(difficulty) : coefficient * 2**(8 * (exponent โ€“ 3))
๏‚ง ๋ธ”๋ก ํ—ค๋” ์˜ˆ์‹œ
๋ธ”๋ก ํ—ค๋”
๊ทธ๋ฆผ 4] ์‹ค์ œ ๋น„ํŠธ์ฝ”์ธ 123,456๋ฒˆ ๋ธ”๋ก์˜ ํ—ค๋”
๋‚œ์ด๋„(difficulty) : coefficient * 2**(8 * (exponent โ€“ 3)) ๐‘ก๐‘Ž๐‘Ÿ๐‘”๐‘’๐‘ก ๐‘‘๐‘–๐‘“๐‘“๐‘–๐‘๐‘ข๐‘™๐‘ก๐‘ฆ = 0๐‘ฅ6๐‘Ž93๐‘3 ร— 28ร—(0๐‘ฅ1๐‘Žโˆ’0๐‘ฅ03)
= ๐ŸŽ๐’™๐Ÿ”๐’‚๐Ÿ—๐Ÿ‘๐’ƒ๐Ÿ‘ ร— ๐Ÿ ๐ŸŽ๐’™๐’ƒ๐Ÿ–
๏‚ง ๋ธ”๋ก ํ—ค๋” ์˜ˆ์‹œ
๋ธ”๋ก ํ—ค๋”
๊ทธ๋ฆผ 4] ์‹ค์ œ ๋น„ํŠธ์ฝ”์ธ 123,456๋ฒˆ ๋ธ”๋ก์˜ ํ—ค๋”
0๐‘ฅ6๐‘Ž93๐‘3 ร— 20๐‘ฅ๐‘8๏‚ง ์ฑ„๊ตด์ž๋Š” sha256(encode_hex(โ€œversionโ€ + โ€œpreviousblockโ€ + โ€œmerklerootโ€ + โ€œtimeโ€ + โ€œbitsโ€ + โ€œnonceโ€)) <
์„ ๋งŒ์กฑ์‹œํ‚ค๋Š” nonce๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ์ฐพ์•„์„œ ๋ธ”๋ก์„ ๋„คํŠธ์›Œํฌ์— ์ „ํŒŒํ•˜๋ฉด, ์ฑ„๊ตด ๋ณด์ƒ์„ ๋ฐ›๊ฒŒ ๋œ๋‹ค.
๏‚ง ๋ธ”๋ก ํ—ค๋” ์˜ˆ์‹œ
๋ธ”๋ก ํ—ค๋”
๊ทธ๋ฆผ 4] ์‹ค์ œ ๋น„ํŠธ์ฝ”์ธ 123,456๋ฒˆ ๋ธ”๋ก์˜ ํ—ค๋”
sha256(encode_hex(โ€œversionโ€ + โ€œpreviousblockโ€ + โ€œmerklerootโ€ + โ€œtimeโ€ + โ€œbitsโ€ + โ€œnonceโ€))
Block hash
๏‚ง ๋ธ”๋ก ํ—ค๋” ์˜ˆ์‹œ
๋ธ”๋ก ํ—ค๋”
๊ทธ๋ฆผ 4] ์‹ค์ œ ๋น„ํŠธ์ฝ”์ธ 123,456๋ฒˆ ๋ธ”๋ก์˜ ํ—ค๋”
๏‚ง ๋ธ”๋ก ํ—ค๋” ์˜ˆ์‹œ
๏‚ง ์ง€๋‚œ 2,016๊ฐœ์˜ ๋ธ”๋ก ์ƒ์„ฑ ์‹œ๊ฐ„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ ๋‚œ์ด๋„(๋‹ค์Œ ๋ธ”๋ก์˜ ๋‚œ์ด๋„)๋ฅผ ์„ค์ •ํ•œ๋‹ค.
๏‚ง ๐‘๐‘’๐‘ค ๐ท๐‘–๐‘“๐‘“๐‘–๐‘๐‘ข๐‘™๐‘ก๐‘ฆ = ๐‘‚๐‘™๐‘‘ ๐ท๐‘–๐‘“๐‘“๐‘–๐‘๐‘ข๐‘™๐‘ก๐‘ฆ ร—
๐ด๐‘๐‘ก๐‘ข๐‘Ž๐‘™ ๐‘‡๐‘–๐‘š๐‘’ ๐‘œ๐‘“ ๐ฟ๐‘Ž๐‘ ๐‘ก 2016 ๐ต๐‘™๐‘œ๐‘๐‘˜๐‘ 
20160 ๐‘š๐‘–๐‘›๐‘ข๐‘ก๐‘’๐‘ 
๋ธ”๋ก ๊ฒ€์ฆ
๏‚ง ๋ธ”๋ก์„ ์ „ํŒŒ๋ฐ›์€ ๋…ธ๋“œ๋“ค์€ ๋ธ”๋ก์ด ๋‹ค์Œ ๊ธฐ์ค€๋“ค์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
โ€ข ํ•ด๋‹น ๋ธ”๋ก์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋Š” ๋ฌธ๋ฒ•์ ์œผ๋กœ ์œ ํšจํ•˜๋‹ค.
โ€ข ํ•ด๋‹น ๋ธ”๋ก ํ—ค๋” ํ•ด์‹œ๋Š” ๋ชฉํ‘œ ๋‚œ์ด๋„๋ณด๋‹ค ์ž‘๋‹ค.
โ€ข ํ•ด๋‹น ๋ธ”๋ก์˜ ํƒ€์ž„์Šคํƒฌํ”„๋Š” ํ–ฅํ›„ 2์‹œ๊ฐ„ ์ด๋‚ด๋‹ค.
โ€ข ํ•ด๋‹น ๋ธ”๋ก์˜ ํฌ๊ธฐ๋Š” ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ๋„ ๋‚ด์— ์žˆ๋‹ค.
โ€ข ์ œ์ผ ์ฒซ ๊ฑฐ๋ž˜๋Š” ์ฝ”์ธ๋ฒ ์ด์Šค ์ƒ์„ฑ๊ฑฐ๋ž˜๋‹ค.
โ€ข ๋ธ”๋ก ๋‚ด์— ์žˆ๋Š” ๊ฑฐ๋ž˜ ์ „๋ถ€๋Š” ์•ž ํŽ˜์ด์ง€์˜ โ€˜๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์  ๊ฒ€์ฆโ€™ ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•œ๋‹ค.
๋ธ”๋ก ๊ฒ€์ฆ
๏‚ง ๋ธ”๋ก์„ ์ „ํŒŒ๋ฐ›์€ ๋…ธ๋“œ๋“ค์€ ๋ธ”๋ก์ด ๋‹ค์Œ ๊ธฐ์ค€๋“ค์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
โ€ข ํ•ด๋‹น ๋ธ”๋ก์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋Š” ๋ฌธ๋ฒ•์ ์œผ๋กœ ์œ ํšจํ•˜๋‹ค.
โ€ข ํ•ด๋‹น ๋ธ”๋ก ํ—ค๋” ํ•ด์‹œ๋Š” ๋ชฉํ‘œ ๋‚œ์ด๋„๋ณด๋‹ค ์ž‘๋‹ค.
โ€ข ํ•ด๋‹น ๋ธ”๋ก์˜ ํƒ€์ž„์Šคํƒฌํ”„๋Š” ํ–ฅํ›„ 2์‹œ๊ฐ„ ์ด๋‚ด๋‹ค.
โ€ข ํ•ด๋‹น ๋ธ”๋ก์˜ ํฌ๊ธฐ๋Š” ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ๋„ ๋‚ด์— ์žˆ๋‹ค.
โ€ข ์ œ์ผ ์ฒซ ๊ฑฐ๋ž˜๋Š” ์ฝ”์ธ๋ฒ ์ด์Šค ์ƒ์„ฑ๊ฑฐ๋ž˜๋‹ค.
โ€ข ๋ธ”๋ก ๋‚ด์— ์žˆ๋Š” ๊ฑฐ๋ž˜ ์ „๋ถ€๋Š” ์•ž ํŽ˜์ด์ง€์˜ โ€˜๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์  ๊ฒ€์ฆโ€™ ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•œ๋‹ค.
๋ธ”๋ก ๊ฒ€์ฆ
๏‚ง ๋ธ”๋ก์„ ์ „ํŒŒ๋ฐ›์€ ๋…ธ๋“œ๋“ค์€ ๋ธ”๋ก์ด ๋‹ค์Œ ๊ธฐ์ค€๋“ค์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
โ€ข ํ•ด๋‹น ๋ธ”๋ก์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋Š” ๋ฌธ๋ฒ•์ ์œผ๋กœ ์œ ํšจํ•˜๋‹ค.
โ€ข ํ•ด๋‹น ๋ธ”๋ก ํ—ค๋” ํ•ด์‹œ๋Š” ๋ชฉํ‘œ ๋‚œ์ด๋„๋ณด๋‹ค ์ž‘๋‹ค.
โ€ข ํ•ด๋‹น ๋ธ”๋ก์˜ ํƒ€์ž„์Šคํƒฌํ”„๋Š” ํ–ฅํ›„ 2์‹œ๊ฐ„ ์ด๋‚ด๋‹ค.
โ€ข ํ•ด๋‹น ๋ธ”๋ก์˜ ํฌ๊ธฐ๋Š” ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ๋„ ๋‚ด์— ์žˆ๋‹ค.
โ€ข ์ œ์ผ ์ฒซ ๊ฑฐ๋ž˜๋Š” ์ฝ”์ธ๋ฒ ์ด์Šค ์ƒ์„ฑ๊ฑฐ๋ž˜๋‹ค.
โ€ข ๋ธ”๋ก ๋‚ด์— ์žˆ๋Š” ๊ฑฐ๋ž˜ ์ „๋ถ€๋Š” ์•ž ํŽ˜์ด์ง€์˜ โ€˜๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์  ๊ฒ€์ฆโ€™ ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•œ๋‹ค.
๋ธ”๋ก์ฒด์ธ ๋ถ„๊ธฐ
๏‚ง ๋ถ„์‚ฐ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๋ธ”๋ก์ด ๋™์ผํ•œ ๋‚ด์šฉ์ด ์•„๋‹ˆ๊ฑฐ๋‚˜, propagation delay๋กœ ๋ธ”๋ก
๋“ค์ด ์„œ๋กœ ๋‹ค๋ฅธ ์‹œ๊ฐ„์— ๋…ธ๋“œ์— ์ „ํŒŒ๋  ์ˆ˜ ์žˆ๋‹ค.
๏‚ง ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ๊ฐ ๋…ธ๋“œ๋Š” ๋‹ค๋ฅธ ์ƒํƒœ์˜ ๋ธ”๋ก์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค(๋ธ”๋ก์˜ ๋ถ„๊ธฐ).
๏‚ง ๋ธ”๋ก์˜ ๋ถ„๊ธฐ๊ฐ€ ์ผ์–ด๋‚ฌ์„ ๋•Œ, ๋…ธ๋“œ๋“ค์€ ๋” ๊ธด ์ฒด์ธ์„ ๋ฉ”์ธ ์ฒด์ธ์œผ๋กœ ์ฑ„ํƒํ•œ๋‹ค(Longest chain).
๊ทธ๋ฆผ5] ๋ธ”๋ก์˜ ๋ถ„๊ธฐ
#279067
#279068
#279068
New
arrival
#279069

Mastering bitcoin chap8

  • 1.
    Mastering Bitcoin Chap 8.์ฑ„๊ตด๊ณผ ํ•ฉ์˜ Song Je-Ho qwerwon@gmail.com
  • 2.
    ์ฑ„๊ตด์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ์ฑ„๊ตด( Mining) ๏‚ง ์ƒˆ๋กœ์šด ๋น„ํŠธ์ฝ”์ธ์ด ํ†ตํ™” ๊ณต๊ธ‰๋Ÿ‰์— ์ถ”๊ฐ€๋˜๋Š” ๊ณผ์ • ๏‚ง ์ฑ„๊ตด์ž๋“ค์€ ๋น„ํŠธ์ฝ”์ธ ๋„คํŠธ์›Œํฌ์— ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์„ ์ œ๊ณตํ•˜์—ฌ ๋ธ”๋ก์„ ์ƒ์„ฑํ•ด์ฃผ๊ณ , ๊ทธ ๋Œ€๊ฐ€๋กœ ๋น„ํŠธ์ฝ”์ธ (ํ†ตํ™” ๋ฐœํ–‰๋Ÿ‰ + ๊ฑฐ๋ž˜ ์ˆ˜์ˆ˜๋ฃŒ)์„ ๋ฐ›๋Š”๋‹ค. ๏‚ง ๋‹จ์ˆœํ•œ ์ธ์„ผํ‹ฐ๋ธŒ๋ฅผ ์–ป๊ธฐ์œ„ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์•„๋‹ˆ๋ผ, ๋ถ„์‚ฐํ™”๋œ ๋„คํŠธ์›Œํฌ์—์„œ ๊ฑฐ๋ž˜๋ฅผ ๊ฒ€์ฆํ•˜๊ณ  ๋ชจ๋“  ์ฐธ์—ฌ์ž๊ฐ€ ํ•ฉ์˜๋ฅผ ์ด๋ฃฐ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ์ˆ˜๋‹จ์ด๋‹ค. ๏‚ง ์ด๋Ÿฌํ•œ ๊ฒ€์ฆ ์ž‘์—…์— ์ธ์„ผํ‹ฐ๋ธŒ๋ฅผ ๋ถ€๊ณผํ•˜์—ฌ ์ฐธ์—ฌ์ž๋กœ ํ•˜์—ฌ๊ธˆ ์ž์œจ์ ์œผ๋กœ ๊ฒ€์ฆ ์ž‘์—…์— ์ฐธ์—ฌํ•˜๋„๋ก ์œ ๋„ํ•œ๋‹ค.
  • 3.
    ์ฑ„๊ตด ๋ณด์ƒ ํ†ตํ™” ๋ฐœํ–‰ ๏‚ง๋น„ํŠธ์ฝ”์ธ์—์„œ๋Š” ์•ฝ 10๋ถ„๋งˆ๋‹ค ์ƒ์„ฑ๋˜๋Š” ๋ธ”๋ก์—์„œ ํ†ตํ™” ๋ฐœํ–‰์ด ์ผ์–ด๋‚œ๋‹ค(์ดˆ๊ธฐ 50๋น„ํŠธ์ฝ”์ธ). ๏‚ง 210,000๊ฐœ์˜ ๋ธ”๋ก(์•ฝ 4๋…„)๋งˆ๋‹ค ํ†ตํ™”๋Ÿ‰์€ ์ ˆ๋ฐ˜์œผ๋กœ ๊ฐ์†Œํ•˜๊ณ (ํ˜„์žฌ 12.5๋น„ํŠธ์ฝ”์ธ ๋ฐœํ–‰), 13,440,00 ๊ฐœ์˜ ๋ธ”๋ก์ด ์ƒ์„ฑ๋˜๋Š” ์•ผ 2140๋…„๊ฒฝ์—๋Š” 2,100๋งŒ ๋น„ํŠธ์ฝ”์ธ ์ „๋ถ€๊ฐ€ ๋ฐœํ–‰๋˜๊ณ  ๋” ์ด์ƒ ์ƒˆ๋กœ์šด ๋น„ํŠธ ์ฝ”์ธ์ด ๋ฐœํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค(์ฑ„๊ตด ์ž‘์—…์€ ๊ณ„์† ์ง„ํ–‰, ์ฑ„๊ตด์ž๋Š” ๊ฑฐ๋ž˜ ์ˆ˜์ˆ˜๋ฃŒ๋งŒ ์–ป๊ฒŒ ๋œ๋‹ค). ๊ทธ๋ฆผ1] main.cpp์˜ ๋ธ”๋ก ๋ณด์ƒ๊ธˆ์„ returnํ•ด์ฃผ๋Š” ํ•จ์ˆ˜ ๋งค 210,000 ๋ธ”๋ก๋งˆ๋‹ค ์ฑ„๊ตด ๋ณด์ƒ์ด ์ ˆ๋ฐ˜์”ฉ ์ค„์–ด๋“ ๋‹ค(binary shift)
  • 4.
    ๋ถ„์‚ฐ ํ•ฉ์˜ ํ•ฉ์˜ ๊ณผ์ •์˜ํ•„์š”์„ฑ ๏‚ง ๊ธฐ์กด์˜ ์ค‘์•™ ๊ธฐ๊ด€์„ ๋ณด์œ ํ•˜๊ณ  ์žˆ๋Š” ์‹ ๋ขฐ ๋ชจ๋ธ์—์„œ๋Š” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ค‘์•™ ํ†ต์ œ ๊ธฐ๊ด€์˜ ํŒ๋‹จ ์— ๋”ฐ๋ผ์„œ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฒ˜๋ฆฌ๋˜์—ˆ๋‹ค. ๏‚ง ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  ์ฐธ์—ฌ์ž(ํ’€ ๋…ธ๋“œ)๊ฐ€ ๋™๋“ฑํ•œ ๊ถŒํ•œ์„ ๊ฐ–๋Š” ๋น„ํŠธ์ฝ”์ธ์—์„œ๋Š” ์ค‘์•™ ๊ธฐ๊ด€์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์–ด ๋–ค ๊ณผ์ •(ํŠธ๋žœ์žญ์…˜)์— ๋Œ€ํ•˜์—ฌ ๋ชจ๋“  ๋„คํŠธ์›Œํฌ๊ฐ€ ๋™์ผํ•œ ๊ฒฐ๋ก ์— ๋„๋‹ฌํ•  ์ˆ˜๋‹จ์ธ โ€˜ํ•ฉ์˜โ€˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๏‚ง โ€œํˆฌํ‘œ์™€ ๊ฐ™์ด ๋ช…์‹œ์ ์ธ ํ•ฉ์˜๊ฐ€ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— โ€˜๋„์ถœ์ (emergent)โ€™์ด๋ผ๋Š” ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉ ํ–ˆ์œผ๋ฉฐ, ์ด๋Š” ํ•ฉ์˜๊ฐ€ ์ผ์–ด๋‚˜๋Š” ์ •ํ™•ํ•œ ์‹œ์ ์ด๋‚˜ ์„ ์ถœ ๊ณผ์ •์ด ์—†๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.โ€
  • 5.
    ๋ถ„์‚ฐ ํ•ฉ์˜ ํ•ฉ์˜ ๊ณผ์ • ๏‚ง๊ฐ ๋…ธ๋“œ๋ณ„๋กœ ํŠธ๋žœ์žญ์…˜์„ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฒ€์ฆ Tx ๊ฒ€์ฆ Tx ๊ฒ€์ฆ Tx ๊ฒ€์ฆ Tx ๊ฒ€์ฆ Tx ๊ฒ€์ฆ Tx ๊ฒ€์ฆ
  • 6.
    ๋ถ„์‚ฐ ํ•ฉ์˜ ๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์ ๊ฒ€์ฆ(์ฒดํฌ ๋ฆฌ์ŠคํŠธ) ๏‚ง ๊ฑฐ๋ž˜์˜ ๊ตฌ๋ฌธ๊ณผ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ์ •ํ™•ํ•ด์•ผํ•œ๋‹ค. ๏‚ง ์ž…๋ ฅ๊ฐ’์ด๋‚˜ ์ถœ๋ ฅ๊ฐ’ ๋ชฉ๋ก์ด ๋น„์–ด ์žˆ์ง€ ์•Š๋‹ค. ๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ MAX_BLOCK_SIZE๋ณด๋‹ค ์ž‘๋‹ค. ๏‚ง ์ถœ๋ ฅ๊ฐ’ ๊ธˆ์•ก๊ณผ ๋…ธ๋“œ์˜ ์ด ๊ธˆ์•ก์ด ํ—ˆ์šฉ๋œ ๊ฐ€์น˜ ๋ฒ”์œ„(0๋ณด๋‹ค ํฌ๊ณ  2,100๋งŒ ๋น„ํŠธ์ฝ”์ธ๋ณด๋‹ค ์ž‘์Œ) ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๏‚ง ์ž…๋ ฅ๊ฐ’ ์ค‘ ํ•ด์‹œ๊ฐ’์€ 0, N๊ฐ’์€ -1์ด์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค. ๏‚ง nLOCKTime ์€ INT_MAX๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค. ๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ 100๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค. ๏‚ง ๊ฑฐ๋ž˜์— ๋‹ด๊ฒจ์žˆ๋Š” ์„œ๋ช… ์ž‘์—… ๊ฑด์ˆ˜๊ฐ€ ์„œ๋ช… ์ž‘์—… ํ•œ๋„ ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๏‚ง ํ•ด์ œ ์Šคํฌ๋ฆฝํŠธ๋Š” ์Šคํƒ ์ƒ๋ถ€์— ์ˆซ์ž๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜๋งŒ ์žˆ๊ณ  ์ž ๊ธˆ ์Šคํฌ๋ฆฝํŠธ๋Š” isStandard ํ˜•ํƒœ์™€ ์ผ์น˜ ํ•ด์•ผํ•œ๋‹ค. ๏‚ง ํ’€์ด๋‚˜ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— ์žˆ๋Š” ๋ธ”๋ก์— ์ง์„ ์ด๋ฃจ๋Š” ๊ฑฐ๋ž˜๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค. ๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด, ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์ด ํ’€ ๋‚ด์˜ ์–ด๋– ํ•œ ๊ฑฐ๋ž˜ ๋‚ด๋ถ€์— ์กด์žฌํ•œ๋‹ค๋ฉด ํ•ด๋‹น ๊ฑฐ๋ž˜๋Š” ๊ฑฐ๋ถ€ ๋˜์–ด์•ผ ํ•œ๋‹ค.
  • 7.
    ๋ถ„์‚ฐ ํ•ฉ์˜ ๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์ ๊ฒ€์ฆ(์ฒดํฌ ๋ฆฌ์ŠคํŠธ) ๏‚ง ๊ฑฐ๋ž˜์˜ ๊ตฌ๋ฌธ๊ณผ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ์ •ํ™•ํ•ด์•ผํ•œ๋‹ค. ๏‚ง ์ž…๋ ฅ๊ฐ’์ด๋‚˜ ์ถœ๋ ฅ๊ฐ’ ๋ชฉ๋ก์ด ๋น„์–ด ์žˆ์ง€ ์•Š๋‹ค. ๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ MAX_BLOCK_SIZE๋ณด๋‹ค ์ž‘๋‹ค. ๏‚ง ์ถœ๋ ฅ๊ฐ’ ๊ธˆ์•ก๊ณผ ๋…ธ๋“œ์˜ ์ด ๊ธˆ์•ก์ด ํ—ˆ์šฉ๋œ ๊ฐ€์น˜ ๋ฒ”์œ„(0๋ณด๋‹ค ํฌ๊ณ  2,100๋งŒ ๋น„ํŠธ์ฝ”์ธ๋ณด๋‹ค ์ž‘์Œ) ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๏‚ง ์ž…๋ ฅ๊ฐ’ ์ค‘ ํ•ด์‹œ๊ฐ’์€ 0, N๊ฐ’์€ -1์ด์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค. ๏‚ง nLOCKTime ์€ INT_MAX๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค. ๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ 100๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค. ๏‚ง ๊ฑฐ๋ž˜์— ๋‹ด๊ฒจ์žˆ๋Š” ์„œ๋ช… ์ž‘์—… ๊ฑด์ˆ˜๊ฐ€ ์„œ๋ช… ์ž‘์—… ํ•œ๋„ ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๏‚ง ํ•ด์ œ ์Šคํฌ๋ฆฝํŠธ๋Š” ์Šคํƒ ์ƒ๋ถ€์— ์ˆซ์ž๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜๋งŒ ์žˆ๊ณ  ์ž ๊ธˆ ์Šคํฌ๋ฆฝํŠธ๋Š” isStandard ํ˜•ํƒœ์™€ ์ผ์น˜ ํ•ด์•ผํ•œ๋‹ค. ๏‚ง ํ’€์ด๋‚˜ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— ์žˆ๋Š” ๋ธ”๋ก์— ์ง์„ ์ด๋ฃจ๋Š” ๊ฑฐ๋ž˜๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค. ๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด, ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์ด ํ’€ ๋‚ด์˜ ์–ด๋– ํ•œ ๊ฑฐ๋ž˜ ๋‚ด๋ถ€์— ์กด์žฌํ•œ๋‹ค๋ฉด ํ•ด๋‹น ๊ฑฐ๋ž˜๋Š” ๊ฑฐ๋ถ€ ๋˜์–ด์•ผ ํ•œ๋‹ค. Output์˜ index
  • 8.
    ๋ถ„์‚ฐ ํ•ฉ์˜ ๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์ ๊ฒ€์ฆ(์ฒดํฌ ๋ฆฌ์ŠคํŠธ) ๏‚ง ๊ฑฐ๋ž˜์˜ ๊ตฌ๋ฌธ๊ณผ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ์ •ํ™•ํ•ด์•ผํ•œ๋‹ค. ๏‚ง ์ž…๋ ฅ๊ฐ’์ด๋‚˜ ์ถœ๋ ฅ๊ฐ’ ๋ชฉ๋ก์ด ๋น„์–ด ์žˆ์ง€ ์•Š๋‹ค. ๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ MAX_BLOCK_SIZE๋ณด๋‹ค ์ž‘๋‹ค. ๏‚ง ์ถœ๋ ฅ๊ฐ’ ๊ธˆ์•ก๊ณผ ๋…ธ๋“œ์˜ ์ด ๊ธˆ์•ก์ด ํ—ˆ์šฉ๋œ ๊ฐ€์น˜ ๋ฒ”์œ„(0๋ณด๋‹ค ํฌ๊ณ  2,100๋งŒ ๋น„ํŠธ์ฝ”์ธ๋ณด๋‹ค ์ž‘์Œ) ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๏‚ง ์ž…๋ ฅ๊ฐ’ ์ค‘ ํ•ด์‹œ๊ฐ’์€ 0, N๊ฐ’์€ -1์ด์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค. ๏‚ง nLOCKTime ์€ INT_MAX๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค. ๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ 100๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค. ๏‚ง ๊ฑฐ๋ž˜์— ๋‹ด๊ฒจ์žˆ๋Š” ์„œ๋ช… ์ž‘์—… ๊ฑด์ˆ˜๊ฐ€ ์„œ๋ช… ์ž‘์—… ํ•œ๋„ ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๏‚ง ํ•ด์ œ ์Šคํฌ๋ฆฝํŠธ๋Š” ์Šคํƒ ์ƒ๋ถ€์— ์ˆซ์ž๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜๋งŒ ์žˆ๊ณ  ์ž ๊ธˆ ์Šคํฌ๋ฆฝํŠธ๋Š” isStandard ํ˜•ํƒœ์™€ ์ผ์น˜ ํ•ด์•ผํ•œ๋‹ค. ๏‚ง ํ’€์ด๋‚˜ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— ์žˆ๋Š” ๋ธ”๋ก์— ์ง์„ ์ด๋ฃจ๋Š” ๊ฑฐ๋ž˜๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค. ๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด, ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์ด ํ’€ ๋‚ด์˜ ์–ด๋– ํ•œ ๊ฑฐ๋ž˜ ๋‚ด๋ถ€์— ์กด์žฌํ•œ๋‹ค๋ฉด ํ•ด๋‹น ๊ฑฐ๋ž˜๋Š” ๊ฑฐ๋ถ€ ๋˜์–ด์•ผ ํ•œ๋‹ค. ํŠธ๋žœ์žญ์…˜์ด ๋ธ”๋ก์— ํฌํ•จ๋  ์ˆ˜ ์—†๋Š” ์ตœ์†Œ ์‹œ๊ฐ„(unix time or block height)
  • 9.
    ๋ถ„์‚ฐ ํ•ฉ์˜ ๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์ ๊ฒ€์ฆ(์ฒดํฌ ๋ฆฌ์ŠคํŠธ) ๏‚ง ๊ฑฐ๋ž˜์˜ ๊ตฌ๋ฌธ๊ณผ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ์ •ํ™•ํ•ด์•ผํ•œ๋‹ค. ๏‚ง ์ž…๋ ฅ๊ฐ’์ด๋‚˜ ์ถœ๋ ฅ๊ฐ’ ๋ชฉ๋ก์ด ๋น„์–ด ์žˆ์ง€ ์•Š๋‹ค. ๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ MAX_BLOCK_SIZE๋ณด๋‹ค ์ž‘๋‹ค. ๏‚ง ์ถœ๋ ฅ๊ฐ’ ๊ธˆ์•ก๊ณผ ๋…ธ๋“œ์˜ ์ด ๊ธˆ์•ก์ด ํ—ˆ์šฉ๋œ ๊ฐ€์น˜ ๋ฒ”์œ„(0๋ณด๋‹ค ํฌ๊ณ  2,100๋งŒ ๋น„ํŠธ์ฝ”์ธ๋ณด๋‹ค ์ž‘์Œ) ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๏‚ง ์ž…๋ ฅ๊ฐ’ ์ค‘ ํ•ด์‹œ๊ฐ’์€ 0, N๊ฐ’์€ -1์ด์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค. ๏‚ง nLOCKTime ์€ INT_MAX๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค. ๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ 100๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค. ๏‚ง ๊ฑฐ๋ž˜์— ๋‹ด๊ฒจ์žˆ๋Š” ์„œ๋ช… ์ž‘์—… ๊ฑด์ˆ˜๊ฐ€ ์„œ๋ช… ์ž‘์—… ํ•œ๋„ ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๏‚ง ํ•ด์ œ ์Šคํฌ๋ฆฝํŠธ๋Š” ์Šคํƒ ์ƒ๋ถ€์— ์ˆซ์ž๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜๋งŒ ์žˆ๊ณ  ์ž ๊ธˆ ์Šคํฌ๋ฆฝํŠธ๋Š” isStandard ํ˜•ํƒœ์™€ ์ผ์น˜ ํ•ด์•ผํ•œ๋‹ค. ๏‚ง ํ’€์ด๋‚˜ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— ์žˆ๋Š” ๋ธ”๋ก์— ์ง์„ ์ด๋ฃจ๋Š” ๊ฑฐ๋ž˜๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค. ๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด, ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์ด ํ’€ ๋‚ด์˜ ์–ด๋– ํ•œ ๊ฑฐ๋ž˜ ๋‚ด๋ถ€์— ์กด์žฌํ•œ๋‹ค๋ฉด ํ•ด๋‹น ๊ฑฐ๋ž˜๋Š” ๊ฑฐ๋ถ€ ๋˜์–ด์•ผ ํ•œ๋‹ค.
  • 10.
    ๋ถ„์‚ฐ ํ•ฉ์˜ ๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์ ๊ฒ€์ฆ(์ฒดํฌ ๋ฆฌ์ŠคํŠธ) ์—… ํ•œ๋„ ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๏‚ง ํ•ด์ œ ์Šคํฌ๋ฆฝํŠธ๋Š” ์Šคํƒ ์ƒ๋ถ€์— ์ˆซ์ž๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜๋งŒ ์žˆ๊ณ  ์ž ๊ธˆ ์Šคํฌ๋ฆฝํŠธ๋Š” isStandard ํ˜•ํƒœ์™€ ์ผ์น˜ ํ•ด์•ผํ•œ๋‹ค. bitcoin/src/policy/policy.cpp
  • 11.
    ๋ถ„์‚ฐ ํ•ฉ์˜ ๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์ ๊ฒ€์ฆ(์ฒดํฌ ๋ฆฌ์ŠคํŠธ) ๏‚ง ๊ฑฐ๋ž˜์˜ ๊ตฌ๋ฌธ๊ณผ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ์ •ํ™•ํ•ด์•ผํ•œ๋‹ค. ๏‚ง ์ž…๋ ฅ๊ฐ’์ด๋‚˜ ์ถœ๋ ฅ๊ฐ’ ๋ชฉ๋ก์ด ๋น„์–ด ์žˆ์ง€ ์•Š๋‹ค. ๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ MAX_BLOCK_SIZE๋ณด๋‹ค ์ž‘๋‹ค. ๏‚ง ์ถœ๋ ฅ๊ฐ’ ๊ธˆ์•ก๊ณผ ๋…ธ๋“œ์˜ ์ด ๊ธˆ์•ก์ด ํ—ˆ์šฉ๋œ ๊ฐ€์น˜ ๋ฒ”์œ„(0๋ณด๋‹ค ํฌ๊ณ  2,100๋งŒ ๋น„ํŠธ์ฝ”์ธ๋ณด๋‹ค ์ž‘์Œ) ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๏‚ง ์ž…๋ ฅ๊ฐ’ ์ค‘ ํ•ด์‹œ๊ฐ’์€ 0, N๊ฐ’์€ -1์ด์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค. ๏‚ง nLOCKTime ์€ INT_MAX๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค. ๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ 100๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค. ๏‚ง ๊ฑฐ๋ž˜์— ๋‹ด๊ฒจ์žˆ๋Š” ์„œ๋ช… ์ž‘์—… ๊ฑด์ˆ˜๊ฐ€ ์„œ๋ช… ์ž‘์—… ํ•œ๋„ ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๏‚ง ํ•ด์ œ ์Šคํฌ๋ฆฝํŠธ๋Š” ์Šคํƒ ์ƒ๋ถ€์— ์ˆซ์ž๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜๋งŒ ์žˆ๊ณ  ์ž ๊ธˆ ์Šคํฌ๋ฆฝํŠธ๋Š” isStandard ํ˜•ํƒœ์™€ ์ผ์น˜ ํ•ด์•ผํ•œ๋‹ค. ๏‚ง ํ’€์ด๋‚˜ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— ์žˆ๋Š” ๋ธ”๋ก์— ์ง์„ ์ด๋ฃจ๋Š” ๊ฑฐ๋ž˜๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค. ๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด, ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์ด ํ’€ ๋‚ด์˜ ์–ด๋– ํ•œ ๊ฑฐ๋ž˜ ๋‚ด๋ถ€์— ์กด์žฌํ•œ๋‹ค๋ฉด ํ•ด๋‹น ๊ฑฐ๋ž˜๋Š” ๊ฑฐ๋ถ€ ๋˜์–ด์•ผ ํ•œ๋‹ค. ํŠธ๋žœ์žญ์…˜์˜ input์— ๋Œ€์‘ํ•˜๋Š” output์ด ๋ฉ”๋ชจ๋ฆฌ ํ’€์ด๋‚˜ ๊ธฐ์กด ๋ธ”๋ก์— ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค
  • 12.
    ๋ถ„์‚ฐ ํ•ฉ์˜ ๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์ ๊ฒ€์ฆ(์ฒดํฌ ๋ฆฌ์ŠคํŠธ) ๏‚ง ๊ฑฐ๋ž˜์˜ ๊ตฌ๋ฌธ๊ณผ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ์ •ํ™•ํ•ด์•ผํ•œ๋‹ค. ๏‚ง ์ž…๋ ฅ๊ฐ’์ด๋‚˜ ์ถœ๋ ฅ๊ฐ’ ๋ชฉ๋ก์ด ๋น„์–ด ์žˆ์ง€ ์•Š๋‹ค. ๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ MAX_BLOCK_SIZE๋ณด๋‹ค ์ž‘๋‹ค. ๏‚ง ์ถœ๋ ฅ๊ฐ’ ๊ธˆ์•ก๊ณผ ๋…ธ๋“œ์˜ ์ด ๊ธˆ์•ก์ด ํ—ˆ์šฉ๋œ ๊ฐ€์น˜ ๋ฒ”์œ„(0๋ณด๋‹ค ํฌ๊ณ  2,100๋งŒ ๋น„ํŠธ์ฝ”์ธ๋ณด๋‹ค ์ž‘์Œ) ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๏‚ง ์ž…๋ ฅ๊ฐ’ ์ค‘ ํ•ด์‹œ๊ฐ’์€ 0, N๊ฐ’์€ -1์ด์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค. ๏‚ง nLOCKTime ์€ INT_MAX๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค. ๏‚ง ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ๊ฑฐ๋ž˜ ํฌ๊ธฐ๊ฐ€ 100๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค. ๏‚ง ๊ฑฐ๋ž˜์— ๋‹ด๊ฒจ์žˆ๋Š” ์„œ๋ช… ์ž‘์—… ๊ฑด์ˆ˜๊ฐ€ ์„œ๋ช… ์ž‘์—… ํ•œ๋„ ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๏‚ง ํ•ด์ œ ์Šคํฌ๋ฆฝํŠธ๋Š” ์Šคํƒ ์ƒ๋ถ€์— ์ˆซ์ž๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜๋งŒ ์žˆ๊ณ  ์ž ๊ธˆ ์Šคํฌ๋ฆฝํŠธ๋Š” isStandard ํ˜•ํƒœ์™€ ์ผ์น˜ ํ•ด์•ผํ•œ๋‹ค. ๏‚ง ํ’€์ด๋‚˜ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— ์žˆ๋Š” ๋ธ”๋ก์— ์ง์„ ์ด๋ฃจ๋Š” ๊ฑฐ๋ž˜๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค. ๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด, ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์ด ํ’€ ๋‚ด์˜ ์–ด๋– ํ•œ ๊ฑฐ๋ž˜ ๋‚ด๋ถ€์— ์กด์žฌํ•œ๋‹ค๋ฉด ํ•ด๋‹น ๊ฑฐ๋ž˜๋Š” ๊ฑฐ๋ถ€ ๋˜์–ด์•ผ ํ•œ๋‹ค. ์ด๋ฏธ ์†Œ๋ชจ๋œ ํŠธ๋žœ์žญ์…˜์ด๋ฉด ๊ฑฐ๋ถ€ํ•œ๋‹ค
  • 13.
    ๋ถ„์‚ฐ ํ•ฉ์˜ ๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์ ๊ฒ€์ฆ(์ฒดํฌ ๋ฆฌ์ŠคํŠธ) ๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด, ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์ด ๊ฑฐ๋ž˜ ๋‚ด์— ์žˆ๋Š”์ง€ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์™€ ๊ฑฐ๋ž˜ ํ’€์„ ์‚ดํŽด๋ณด์ž. ๋งŒ์•ฝ ์ถœ๋ ฅ ๊ฑฐ๋ž˜์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•œ ์ด์ „ ์ถœ๋ ฅ๊ฐ’์„ ์ฐพ์„ ์ˆ˜ ์—†์„ ๋•Œ๋Š” ์ด ๊ฑฐ๋ž˜๋Š” ๊ณ ์•„๊ฑฐ๋ž˜ ๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค. ์ง์„ ์ด๋ฃจ๋Š” ๊ฑฐ๋ž˜๊ฐ€ ํ’€์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๊ณ ์•„๊ฑฐ๋ž˜ ํ’€์— ์ถ”๊ฐ€ํ•˜๋ผ. ๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์ด ์ฝ”์ธ๋ฒ ์ด์Šค ์ถœ๋ ฅ์ด๋ผ๋ฉด, ์ตœ์†Œ COINBASE_MATURITY(100) ์Šน ์ธ์„ ๋ฐ›์•„์•ผ ํ•œ๋‹ค. ๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์€ ์กด์žฌํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋ฏธ ์†Œ๋น„๋˜์—ˆ์œผ๋ฉด ์•ˆ ๋œ๋‹ค. ๏‚ง ์ฐธ์กฐ ์ถœ๋ ฅ ๊ฑฐ๋ž˜์—์„œ ์ž…๋ ฅ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๊ฐ ์ž…๋ ฅ๊ฐ’ ๊ธˆ์•ก๊ณผ ์ž…๋ ฅ๊ฐ’ ์ด์•ก์ด ํ—ˆ์šฉ๋œ ๊ฐ€์น˜ ๋ฒ”์œ„(0๋ณด ๋‹ค ํฌ๊ณ  2,100๋งŒ ๋น„ํŠธ์ฝ”์ธ๋ณด๋‹ค ์ž‘์Œ) ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๏‚ง ์ž…๋ ฅ๊ฐ’ ๊ธˆ์•ก์ด ์ถœ๋ ฅ๊ฐ’ ์ด์•ก๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ ํ•ด๋‹น ๊ฑฐ๋ž˜๋ฅผ ๊ฑฐ์ ˆํ•˜๋ผ. ๏‚ง ๊ฑฐ๋ž˜ ์ˆ˜์ˆ˜๋ฃŒ๊ฐ€ ๋น„์–ด ์žˆ๋Š” ๋ธ”๋ก์— ๋“ค์–ด๊ฐ€๊ธฐ์— ๋„ˆ๋ฌด ์ž‘์„ ๋•Œ๋Š” ํ•ด๋‹น ๊ฑฐ๋ž˜๋ฅผ ๊ฑฐ์ ˆํ•˜๋ผ. ๏‚ง ๊ฑฐ๋ž˜ ์ˆ˜์ˆ˜๋ฃŒ๊ฐ€ ๋น„์–ด ์žˆ๋Š” ๋ธ”๋ก์— ๋“ค์–ด๊ฐ€๊ธฐ์— ๋„ˆ๋ฌด ์ž‘์„ ๋•Œ๋Š” ํ•ด๋‹น ๊ฑฐ๋ž˜๋ฅผ ๊ฑฐ์ ˆํ•˜๋ผ. ๏‚ง ๊ฐ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•œ ํ•ด์ œ ์Šคํฌ๋ฆฝํŠธ๋Š” ๊ทธ์— ํ•ด๋‹นํ•˜๋Š” ์ถœ๋ ฅ๊ฐ’ ์ž ๊ธˆ ์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•ด ๊ฒ€์ฆํ•ด์•ผ ํ•œ๋‹ค.
  • 14.
    ๋ถ„์‚ฐ ํ•ฉ์˜ ๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์ ๊ฒ€์ฆ(์ฒดํฌ ๋ฆฌ์ŠคํŠธ) ๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด, ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์ด ๊ฑฐ๋ž˜ ๋‚ด์— ์žˆ๋Š”์ง€ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์™€ ๊ฑฐ๋ž˜ ํ’€์„ ์‚ดํŽด๋ณด์ž. ๋งŒ์•ฝ ์ถœ๋ ฅ ๊ฑฐ๋ž˜์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•œ ์ด์ „ ์ถœ๋ ฅ๊ฐ’์„ ์ฐพ์„ ์ˆ˜ ์—†์„ ๋•Œ๋Š” ์ด ๊ฑฐ๋ž˜๋Š” ๊ณ ์•„๊ฑฐ๋ž˜ ๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค. ์ง์„ ์ด๋ฃจ๋Š” ๊ฑฐ๋ž˜๊ฐ€ ํ’€์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๊ณ ์•„๊ฑฐ๋ž˜ ํ’€์— ์ถ”๊ฐ€ํ•˜๋ผ. ๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์ด ์ฝ”์ธ๋ฒ ์ด์Šค ์ถœ๋ ฅ์ด๋ผ๋ฉด, ์ตœ์†Œ COINBASE_MATURITY(100) ์Šน ์ธ์„ ๋ฐ›์•„์•ผ ํ•œ๋‹ค. ๏‚ง ๊ฐ๊ฐ์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด ์ฐธ์กฐ ์ถœ๋ ฅ๊ฐ’์€ ์กด์žฌํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋ฏธ ์†Œ๋น„๋˜์—ˆ์œผ๋ฉด ์•ˆ ๋œ๋‹ค. ๏‚ง ์ฐธ์กฐ ์ถœ๋ ฅ ๊ฑฐ๋ž˜์—์„œ ์ž…๋ ฅ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๊ฐ ์ž…๋ ฅ๊ฐ’ ๊ธˆ์•ก๊ณผ ์ž…๋ ฅ๊ฐ’ ์ด์•ก์ด ํ—ˆ์šฉ๋œ ๊ฐ€์น˜ ๋ฒ”์œ„(0๋ณด ๋‹ค ํฌ๊ณ  2,100๋งŒ ๋น„ํŠธ์ฝ”์ธ๋ณด๋‹ค ์ž‘์Œ) ๋‚ด์— ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๏‚ง ์ž…๋ ฅ๊ฐ’ ๊ธˆ์•ก์ด ์ถœ๋ ฅ๊ฐ’ ์ด์•ก๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ ํ•ด๋‹น ๊ฑฐ๋ž˜๋ฅผ ๊ฑฐ์ ˆํ•˜๋ผ. ๏‚ง ๊ฑฐ๋ž˜ ์ˆ˜์ˆ˜๋ฃŒ๊ฐ€ ๋น„์–ด ์žˆ๋Š” ๋ธ”๋ก์— ๋“ค์–ด๊ฐ€๊ธฐ์— ๋„ˆ๋ฌด ์ž‘์„ ๋•Œ๋Š” ํ•ด๋‹น ๊ฑฐ๋ž˜๋ฅผ ๊ฑฐ์ ˆํ•˜๋ผ. ๏‚ง ๊ฑฐ๋ž˜ ์ˆ˜์ˆ˜๋ฃŒ๊ฐ€ ๋น„์–ด ์žˆ๋Š” ๋ธ”๋ก์— ๋“ค์–ด๊ฐ€๊ธฐ์— ๋„ˆ๋ฌด ์ž‘์„ ๋•Œ๋Š” ํ•ด๋‹น ๊ฑฐ๋ž˜๋ฅผ ๊ฑฐ์ ˆํ•˜๋ผ. ๏‚ง ๊ฐ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•œ ํ•ด์ œ ์Šคํฌ๋ฆฝํŠธ๋Š” ๊ทธ์— ํ•ด๋‹นํ•˜๋Š” ์ถœ๋ ฅ๊ฐ’ ์ž ๊ธˆ ์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•ด ๊ฒ€์ฆํ•ด์•ผ ํ•œ๋‹ค. ์ฝ”์ธ๋ฒ ์ด์Šค ์ถœ๋ ฅ์ด๋ฉด, 100๊ฐœ์˜ ๋ธ”๋ก height ์ดํ›„์—์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • 15.
    ๋ถ„์‚ฐ ํ•ฉ์˜ Transaction 0 Transaction1 Transaction 2 ... Transaction N Block #123528 ํ•ฉ์˜ ๊ณผ์ • ๏‚ง ์ž‘์—…์ฆ๋ช…์„ ํ†ตํ•ด ๋ธ”๋ก ์ƒ์„ฑ ์ฑ„๊ตด ์ฑ„๊ตด ๋…ธ๋“œ Block header
  • 16.
    ๋ถ„์‚ฐ ํ•ฉ์˜ ํ•ฉ์˜ ๊ณผ์ • ๏‚ง๊ฐ ๋…ธ๋“œ์˜ ์ƒˆ ๋ธ”๋ก ๊ฒ€์ฆ ๋ธ”๋ก ์ „ํŒŒTransaction 0 Transaction 1 Transaction 2 ... Transaction N Block #123528 Block header
  • 17.
    ๋ถ„์‚ฐ ํ•ฉ์˜ ํ•ฉ์˜ ๊ณผ์ • ๏‚ง๊ฐ ๋…ธ๋“œ์˜ ์ƒˆ ๋ธ”๋ก ๊ฒ€์ฆ ๋ธ”๋ก ๊ฒ€์ฆ ๋ธ”๋ก ๊ฒ€์ฆ Transaction 0 Transaction 1 Transaction 2 ... Transaction N Block #123528 Block header
  • 18.
    ๋ถ„์‚ฐ ํ•ฉ์˜ ... ... ... ... ... Block #??? ํ•ฉ์˜ ๊ณผ์ • ๏‚ง์ตœ๊ณ  ๋ˆ„์  ์—ฐ์‚ฐ ์ฒด์ธ(Longest Chain)์„ ๋…๋ฆฝ์ ์œผ๋กœ ์„ ํƒ ๋…ธ๋“œ ... ... ... ... ... Block #??? ... ... ... ... ... Block #??? ... ... ... ... ... Block #??? ... ... ... ... ... Block #??? ์ฒด์ธ ์„ ํƒ
  • 19.
    ํ›„๋ณด ๋ธ”๋ก Transaction 0 Transaction1 Transaction 2 Transaction 3 Transaction 4 ๋ฉ”๋ชจ๋ฆฌ ํ’€ ์šฐ์„ ์ˆœ์œ„ ... Transaction N-3 Transaction N-2 Transaction N-1 Transaction N ํ›„๋ณด ๋ธ”๋ก #6114 Transaction 0 Transaction 1 Transaction 8 Transaction 11 Transaction N-2 ์ฑ„๊ตด ๋…ธ๋“œ A ???
  • 20.
    ํ›„๋ณด ๋ธ”๋ก Transaction 0 Transaction1 Transaction 2 Transaction 3 Transaction 4 ๋ฉ”๋ชจ๋ฆฌ ํ’€ ์šฐ์„ ์ˆœ์œ„ ... Transaction N-3 Transaction N-2 Transaction N-1 Transaction N ํ›„๋ณด ๋ธ”๋ก #6114 Transaction 0 Transaction 1 Transaction 8 Transaction 11 Transaction N-2 ์ฑ„๊ตด ๋…ธ๋“œ A 50KB์˜ ๊ณต๊ฐ„์€ (Input ๊ฐ’์˜ ์ดํ•ฉ * Age) / Transacion size ๊ฐ’์ด ๋†’์€ ํŠธ๋žœ์žญ์…˜์„ ํ• ๋‹นํ•˜๊ณ , ???
  • 21.
    ํ›„๋ณด ๋ธ”๋ก Transaction 0 Transaction1 Transaction 2 Transaction 3 Transaction 4 ๋ฉ”๋ชจ๋ฆฌ ํ’€ ์šฐ์„ ์ˆœ์œ„ ... Transaction N-3 Transaction N-2 Transaction N-1 Transaction N ํ›„๋ณด ๋ธ”๋ก #6114 Transaction 0 Transaction 1 Transaction 8 Transaction 11 Transaction N-2 ์ฑ„๊ตด ๋…ธ๋“œ A ๋‚˜๋จธ์ง€ ๊ณต๊ฐ„์€ ํ‚ฌ๋กœ๋ฐ”์ดํŠธ ๋Œ€๋น„ ์ตœ๊ณ  ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ๊ฐ€์ง„ ๊ฑฐ๋ž˜ ์ˆœ์œผ๋กœ ๋ธ”๋ก์— ๋‹ด๋Š”๋‹ค
  • 22.
    ํ›„๋ณด ๋ธ”๋ก Transaction 0 Transaction1 Transaction 2 Transaction 3 Transaction 4 ๋ฉ”๋ชจ๋ฆฌ ํ’€ ์šฐ์„ ์ˆœ์œ„ ... Transaction N-3 Transaction N-2 Transaction N-1 Transaction N ํ›„๋ณด ๋ธ”๋ก #6114 Transaction 0 Transaction 1 Transaction 8 Transaction 11 Transaction N-2 ์ฑ„๊ตด ๋…ธ๋“œ A ๋ธ”๋ก #6114 Transaction 0 Transaction 2 Transaction 8 Transaction 9 Transaction N-2 Block Header
  • 23.
    ํ›„๋ณด ๋ธ”๋ก Transaction 0 Transaction1 Transaction 2 Transaction 3 Transaction 4 ๋ฉ”๋ชจ๋ฆฌ ํ’€... Transaction N-3 Transaction N-2 Transaction N-1 Transaction N ํ›„๋ณด ๋ธ”๋ก #6114 Transaction 0 Transaction 1 Transaction 8 Transaction 11 Transaction N-2 ์ฑ„๊ตด ๋…ธ๋“œ A ๏‚ง ๋‹ค๋ฅธ ๋…ธ๋“œ๊ฐ€ ๋จผ์ € ๋ธ”๋ก์„ ์ฑ„๊ตดํ–ˆ์œผ๋ฏ€๋กœ ์ „ํŒŒ๋œ ๋ธ”๋ก์˜ ๊ฒ€์ฆ์ž‘์—… ํ›„์—, ๋ฉ”๋ชจ๋ฆฌ ํ’€ ๋‚ด์— ์žˆ๋Š” ํŠธ๋žœ์žญ์…˜ ์ค‘์—์„œ ์ „ํŒŒ๋œ ๋ธ”๋ก์— ํฌํ•จ๋œ ํŠธ๋žœ์žญ์…˜์„ ์ œ๊ฑฐํ•˜๊ณ  ์ƒˆ๋กœ์šด ํ›„๋ณด ๋ธ”๋ก์„ ๋งŒ๋“ ๋‹ค. ์ „ํŒŒ๋œ ๋ธ”๋ก์— ํฌํ•จ๋œ ํŠธ๋žœ์žญ์…˜ ์ œ๊ฑฐ ๋ธ”๋ก #6114 Transaction 0 Transaction 2 Transaction 8 Transaction 9 Transaction N-2 Block Header
  • 24.
    ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜ ๏‚ง ์ฑ„๊ตด์ž๊ฐ€๋ธ”๋ก์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ฑ„๊ตดํ–ˆ์„๋•Œ ๋ณด์ƒ์„ ์ œ๊ณตํ•˜๋Š” ํŠธ๋žœ์žญ์…˜์œผ๋กœ, input์ด ์ฝ”์ธ๋ฒ ์ด์Šค์ธ ํŠธ๋žœ์žญ์…˜์„ ๋งํ•œ๋‹ค. ๏‚ง ๋ณด์ƒ์„ ๋ฐ›์€ ๋’ค 100๊ฐœ์˜ block height๊ฐ€ ์ง€๋‚˜๊ณ ์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆผ2] ์‹ค์ œ ์ฝ”์ธ๋ฒ ์ด์Šค ํŠธ๋žœ์žญ์…˜์˜ json ํฌ๋งท ๋ฐ์ดํ„ฐ
  • 25.
    ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜ ์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ ๊ทธ๋ฆผ3]๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data
  • 26.
    ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜ ์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ ๊ทธ๋ฆผ3]๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data ๋ฒ„์ „ ์ •๋ณด
  • 27.
    ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜ ์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ ๊ทธ๋ฆผ3]๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data Input ์นด์šดํŠธ
  • 28.
    ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜ ์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ ๊ทธ๋ฆผ3]๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data Input ํŠธ๋žœ์žญ์…˜์˜ ํ•ด์‹œ(์ฝ”์ธ๋ฒ ์ด์Šค๋Š” ์—†์œผ๋ฏ€๋กœ ๋ชจ๋‘ 0)
  • 29.
    ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜ ์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ ๊ทธ๋ฆผ3]๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data ์†Œ๋ชจ๋  Input์˜ ํŠธ๋žœ์žญ์…˜ ๋‚ด index(๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์กด์žฌํ•˜์ง€ ์•Š์Œ)
  • 30.
    ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜ ์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ ๊ทธ๋ฆผ3]๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data ์ฝ”์ธ๋ฒ ์ด์Šค ๋ฐ์ดํ„ฐ์˜ ๊ธธ์ด
  • 31.
    ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜ ์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ ๊ทธ๋ฆผ3]๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data ์ฝ”์ธ๋ฒ ์ด์Šค ๋ฐ์ดํ„ฐ
  • 32.
    ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜ ์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ ๊ทธ๋ฆผ3]๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data ์ผ๋ จ๋ฒˆํ˜ธ
  • 33.
    ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜ ์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ ๊ทธ๋ฆผ3]๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data Output ์นด์šดํŠธ
  • 34.
    ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜ ์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ ๊ทธ๋ฆผ3]๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data ๋ณด์ƒ(Value)
  • 35.
    ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜ ์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ ๊ทธ๋ฆผ3]๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data scriptPubkey
  • 36.
    ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜ ์ž…๋ ฅ๊ฐ’ ๊ตฌ์กฐ ๊ทธ๋ฆผ3]๊ทธ๋ฆผ 2 ์ฝ”์ธ๋ฒ ์ด์Šค ๊ฑฐ๋ž˜์˜ Raw data locktime
  • 37.
    ๋ธ”๋ก ํ—ค๋” ํฌ๊ธฐ ํ•„๋“œ์„ค๋ช… 4๋ฐ”์ดํŠธ ๋ฒ„์ „ ์†Œํ”„ํŠธ์›จ์–ด/ํ”„๋กœํ† ์ฝœ ์—…๊ทธ๋ ˆ์ด๋“œ ์ถ”์ ์„ ์œ„ํ•œ ๋ฒ„์ „ ๋ฒˆํ˜ธ 32๋ฐ”์ดํŠธ ์ด์ „ ๋ธ”๋ก ํ•ด์‹œ ์ฒด์ธ ๋‚ด ์ด์ „ ๋ธ”๋ก์˜ ํ•ด์‹œ์— ๋Œ€ํ•œ ์ฐธ์กฐ 32๋ฐ”์ดํŠธ ๋จธํด ๋ฃจํŠธ ๋ธ”๋ก ๊ฑฐ๋ž˜์˜ ๋จธํด ํŠธ๋ฆฌ์˜ ๋ฃจํŠธ์— ๋Œ€ํ•œ ํ•ด์‹œ 4๋ฐ”์ดํŠธ ํƒ€์ž„์Šคํƒฌํ”„ ๋ธ”๋ก์˜ ๋Œ€๋žต์ ์ธ ์ƒ์„ฑ์‹œ๊ฐ„(UNIX time) 4๋ฐ”์ดํŠธ ๋‚œ์ด๋„ ๋ชฉํ‘œ ๋ธ”๋ก์˜ ์ž‘์—…์ฆ๋ช… ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ๋‚œ์ด๋„ ๋ชฉํ‘œ 4๋ฐ”์ดํŠธ ๋‚œ์Šค(Nonce) ์ž‘์—…์ฆ๋ช… ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์‚ฌ์šฉ๋˜๋Š” ์นด์šดํ„ฐ ํ‘œ 1] ๋ธ”๋ก ํ—ค๋”์˜ ๊ตฌ์„ฑ ๏‚ง ๋ธ”๋ก ํ—ค๋” ๊ตฌ์กฐ
  • 38.
    ๋ธ”๋ก ํ—ค๋” ๊ทธ๋ฆผ 4]์‹ค์ œ ๋น„ํŠธ์ฝ”์ธ 123,456๋ฒˆ ๋ธ”๋ก์˜ ํ—ค๋” ๏‚ง ๋ธ”๋ก ํ—ค๋” ์˜ˆ์‹œ
  • 39.
    ๋ธ”๋ก ํ—ค๋” ๊ทธ๋ฆผ 4]์‹ค์ œ ๋น„ํŠธ์ฝ”์ธ 123,456๋ฒˆ ๋ธ”๋ก์˜ ํ—ค๋” ๋‚œ์ด๋„(difficulty) : coefficient * 2**(8 * (exponent โ€“ 3)) ๏‚ง ๋ธ”๋ก ํ—ค๋” ์˜ˆ์‹œ
  • 40.
    ๋ธ”๋ก ํ—ค๋” ๊ทธ๋ฆผ 4]์‹ค์ œ ๋น„ํŠธ์ฝ”์ธ 123,456๋ฒˆ ๋ธ”๋ก์˜ ํ—ค๋” ๋‚œ์ด๋„(difficulty) : coefficient * 2**(8 * (exponent โ€“ 3)) ๐‘ก๐‘Ž๐‘Ÿ๐‘”๐‘’๐‘ก ๐‘‘๐‘–๐‘“๐‘“๐‘–๐‘๐‘ข๐‘™๐‘ก๐‘ฆ = 0๐‘ฅ6๐‘Ž93๐‘3 ร— 28ร—(0๐‘ฅ1๐‘Žโˆ’0๐‘ฅ03) = ๐ŸŽ๐’™๐Ÿ”๐’‚๐Ÿ—๐Ÿ‘๐’ƒ๐Ÿ‘ ร— ๐Ÿ ๐ŸŽ๐’™๐’ƒ๐Ÿ– ๏‚ง ๋ธ”๋ก ํ—ค๋” ์˜ˆ์‹œ
  • 41.
    ๋ธ”๋ก ํ—ค๋” ๊ทธ๋ฆผ 4]์‹ค์ œ ๋น„ํŠธ์ฝ”์ธ 123,456๋ฒˆ ๋ธ”๋ก์˜ ํ—ค๋” 0๐‘ฅ6๐‘Ž93๐‘3 ร— 20๐‘ฅ๐‘8๏‚ง ์ฑ„๊ตด์ž๋Š” sha256(encode_hex(โ€œversionโ€ + โ€œpreviousblockโ€ + โ€œmerklerootโ€ + โ€œtimeโ€ + โ€œbitsโ€ + โ€œnonceโ€)) < ์„ ๋งŒ์กฑ์‹œํ‚ค๋Š” nonce๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ์ฐพ์•„์„œ ๋ธ”๋ก์„ ๋„คํŠธ์›Œํฌ์— ์ „ํŒŒํ•˜๋ฉด, ์ฑ„๊ตด ๋ณด์ƒ์„ ๋ฐ›๊ฒŒ ๋œ๋‹ค. ๏‚ง ๋ธ”๋ก ํ—ค๋” ์˜ˆ์‹œ
  • 42.
    ๋ธ”๋ก ํ—ค๋” ๊ทธ๋ฆผ 4]์‹ค์ œ ๋น„ํŠธ์ฝ”์ธ 123,456๋ฒˆ ๋ธ”๋ก์˜ ํ—ค๋” sha256(encode_hex(โ€œversionโ€ + โ€œpreviousblockโ€ + โ€œmerklerootโ€ + โ€œtimeโ€ + โ€œbitsโ€ + โ€œnonceโ€)) Block hash ๏‚ง ๋ธ”๋ก ํ—ค๋” ์˜ˆ์‹œ
  • 43.
    ๋ธ”๋ก ํ—ค๋” ๊ทธ๋ฆผ 4]์‹ค์ œ ๋น„ํŠธ์ฝ”์ธ 123,456๋ฒˆ ๋ธ”๋ก์˜ ํ—ค๋” ๏‚ง ๋ธ”๋ก ํ—ค๋” ์˜ˆ์‹œ ๏‚ง ์ง€๋‚œ 2,016๊ฐœ์˜ ๋ธ”๋ก ์ƒ์„ฑ ์‹œ๊ฐ„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ ๋‚œ์ด๋„(๋‹ค์Œ ๋ธ”๋ก์˜ ๋‚œ์ด๋„)๋ฅผ ์„ค์ •ํ•œ๋‹ค. ๏‚ง ๐‘๐‘’๐‘ค ๐ท๐‘–๐‘“๐‘“๐‘–๐‘๐‘ข๐‘™๐‘ก๐‘ฆ = ๐‘‚๐‘™๐‘‘ ๐ท๐‘–๐‘“๐‘“๐‘–๐‘๐‘ข๐‘™๐‘ก๐‘ฆ ร— ๐ด๐‘๐‘ก๐‘ข๐‘Ž๐‘™ ๐‘‡๐‘–๐‘š๐‘’ ๐‘œ๐‘“ ๐ฟ๐‘Ž๐‘ ๐‘ก 2016 ๐ต๐‘™๐‘œ๐‘๐‘˜๐‘  20160 ๐‘š๐‘–๐‘›๐‘ข๐‘ก๐‘’๐‘ 
  • 44.
    ๋ธ”๋ก ๊ฒ€์ฆ ๏‚ง ๋ธ”๋ก์„์ „ํŒŒ๋ฐ›์€ ๋…ธ๋“œ๋“ค์€ ๋ธ”๋ก์ด ๋‹ค์Œ ๊ธฐ์ค€๋“ค์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. โ€ข ํ•ด๋‹น ๋ธ”๋ก์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋Š” ๋ฌธ๋ฒ•์ ์œผ๋กœ ์œ ํšจํ•˜๋‹ค. โ€ข ํ•ด๋‹น ๋ธ”๋ก ํ—ค๋” ํ•ด์‹œ๋Š” ๋ชฉํ‘œ ๋‚œ์ด๋„๋ณด๋‹ค ์ž‘๋‹ค. โ€ข ํ•ด๋‹น ๋ธ”๋ก์˜ ํƒ€์ž„์Šคํƒฌํ”„๋Š” ํ–ฅํ›„ 2์‹œ๊ฐ„ ์ด๋‚ด๋‹ค. โ€ข ํ•ด๋‹น ๋ธ”๋ก์˜ ํฌ๊ธฐ๋Š” ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ๋„ ๋‚ด์— ์žˆ๋‹ค. โ€ข ์ œ์ผ ์ฒซ ๊ฑฐ๋ž˜๋Š” ์ฝ”์ธ๋ฒ ์ด์Šค ์ƒ์„ฑ๊ฑฐ๋ž˜๋‹ค. โ€ข ๋ธ”๋ก ๋‚ด์— ์žˆ๋Š” ๊ฑฐ๋ž˜ ์ „๋ถ€๋Š” ์•ž ํŽ˜์ด์ง€์˜ โ€˜๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์  ๊ฒ€์ฆโ€™ ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•œ๋‹ค.
  • 45.
    ๋ธ”๋ก ๊ฒ€์ฆ ๏‚ง ๋ธ”๋ก์„์ „ํŒŒ๋ฐ›์€ ๋…ธ๋“œ๋“ค์€ ๋ธ”๋ก์ด ๋‹ค์Œ ๊ธฐ์ค€๋“ค์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. โ€ข ํ•ด๋‹น ๋ธ”๋ก์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋Š” ๋ฌธ๋ฒ•์ ์œผ๋กœ ์œ ํšจํ•˜๋‹ค. โ€ข ํ•ด๋‹น ๋ธ”๋ก ํ—ค๋” ํ•ด์‹œ๋Š” ๋ชฉํ‘œ ๋‚œ์ด๋„๋ณด๋‹ค ์ž‘๋‹ค. โ€ข ํ•ด๋‹น ๋ธ”๋ก์˜ ํƒ€์ž„์Šคํƒฌํ”„๋Š” ํ–ฅํ›„ 2์‹œ๊ฐ„ ์ด๋‚ด๋‹ค. โ€ข ํ•ด๋‹น ๋ธ”๋ก์˜ ํฌ๊ธฐ๋Š” ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ๋„ ๋‚ด์— ์žˆ๋‹ค. โ€ข ์ œ์ผ ์ฒซ ๊ฑฐ๋ž˜๋Š” ์ฝ”์ธ๋ฒ ์ด์Šค ์ƒ์„ฑ๊ฑฐ๋ž˜๋‹ค. โ€ข ๋ธ”๋ก ๋‚ด์— ์žˆ๋Š” ๊ฑฐ๋ž˜ ์ „๋ถ€๋Š” ์•ž ํŽ˜์ด์ง€์˜ โ€˜๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์  ๊ฒ€์ฆโ€™ ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•œ๋‹ค.
  • 46.
    ๋ธ”๋ก ๊ฒ€์ฆ ๏‚ง ๋ธ”๋ก์„์ „ํŒŒ๋ฐ›์€ ๋…ธ๋“œ๋“ค์€ ๋ธ”๋ก์ด ๋‹ค์Œ ๊ธฐ์ค€๋“ค์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. โ€ข ํ•ด๋‹น ๋ธ”๋ก์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋Š” ๋ฌธ๋ฒ•์ ์œผ๋กœ ์œ ํšจํ•˜๋‹ค. โ€ข ํ•ด๋‹น ๋ธ”๋ก ํ—ค๋” ํ•ด์‹œ๋Š” ๋ชฉํ‘œ ๋‚œ์ด๋„๋ณด๋‹ค ์ž‘๋‹ค. โ€ข ํ•ด๋‹น ๋ธ”๋ก์˜ ํƒ€์ž„์Šคํƒฌํ”„๋Š” ํ–ฅํ›„ 2์‹œ๊ฐ„ ์ด๋‚ด๋‹ค. โ€ข ํ•ด๋‹น ๋ธ”๋ก์˜ ํฌ๊ธฐ๋Š” ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ๋„ ๋‚ด์— ์žˆ๋‹ค. โ€ข ์ œ์ผ ์ฒซ ๊ฑฐ๋ž˜๋Š” ์ฝ”์ธ๋ฒ ์ด์Šค ์ƒ์„ฑ๊ฑฐ๋ž˜๋‹ค. โ€ข ๋ธ”๋ก ๋‚ด์— ์žˆ๋Š” ๊ฑฐ๋ž˜ ์ „๋ถ€๋Š” ์•ž ํŽ˜์ด์ง€์˜ โ€˜๊ฑฐ๋ž˜์˜ ๋…๋ฆฝ์  ๊ฒ€์ฆโ€™ ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•œ๋‹ค.
  • 47.
    ๋ธ”๋ก์ฒด์ธ ๋ถ„๊ธฐ ๏‚ง ๋ถ„์‚ฐ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๋ธ”๋ก์ด ๋™์ผํ•œ ๋‚ด์šฉ์ด ์•„๋‹ˆ๊ฑฐ๋‚˜, propagation delay๋กœ ๋ธ”๋ก ๋“ค์ด ์„œ๋กœ ๋‹ค๋ฅธ ์‹œ๊ฐ„์— ๋…ธ๋“œ์— ์ „ํŒŒ๋  ์ˆ˜ ์žˆ๋‹ค. ๏‚ง ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ๊ฐ ๋…ธ๋“œ๋Š” ๋‹ค๋ฅธ ์ƒํƒœ์˜ ๋ธ”๋ก์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค(๋ธ”๋ก์˜ ๋ถ„๊ธฐ). ๏‚ง ๋ธ”๋ก์˜ ๋ถ„๊ธฐ๊ฐ€ ์ผ์–ด๋‚ฌ์„ ๋•Œ, ๋…ธ๋“œ๋“ค์€ ๋” ๊ธด ์ฒด์ธ์„ ๋ฉ”์ธ ์ฒด์ธ์œผ๋กœ ์ฑ„ํƒํ•œ๋‹ค(Longest chain). ๊ทธ๋ฆผ5] ๋ธ”๋ก์˜ ๋ถ„๊ธฐ #279067 #279068 #279068 New arrival #279069