[์๋ฌธ] https://blog.naver.com/100win12/221137003501
๋ธ๋ก์ฒด์ธ์ ๊ดํ ๊ธ ์ค ์ ์๊ฒ ๊ฐ์ฅ ์ฝ๊ฒ ์ดํด๋๋ ๊ธ์ด์ด์ ํผ์์ต๋๋ค.
์ฒ์์ด๋ผ ํผ์ค๋ ๊ฒ๋ ์ด๋ ต๋ค์ใ
ใ
11์ 8์ผ ์์๋ BlockchainDay ์ปจํผ๋ฐ์ค์ ์ฐธ๊ฐํ ํ๊ธฐ๋ฅผ ์ ์ผ๋ฉฐ
๋ธ๋ก์ฒด์ธ์ด ๋ฌด์์ธ์ง ์์ฝ์ ํด๋ณด๊ฒ ๋ค. ์ผ๋จ ๋ธ๋ก์ฒด์ธ์ ๋นํธ์ฝ์ธ์์ ๋์๋ค.
์ฝ๊ฒ๋งํ๋ฉด ๋นํธ์ฝ์ธ์ ์ ์ฉ๋ ์ด๋ก ์ด๋ค.
์ฌ๋๋ค์ด ์ด๊ฒ์ ๋ธ๋ก์ฒด์ธ์ด๋ผ๊ณ ๋ถ๋ฅด๊ธฐ ์์ํ๋ค.
์์ !
์ ํต์ ์ธ ์๋ฒ์ ํด๋ผ์ด์ธํธ์ ๋ชจ์ต์ด๋ค.
ํด๋ผ์ด์ธํธ๋ค์ด ๊ฐ์ server์ ์ ์ฅํ๊ณ ์ฝ์ด์ค๋ ์ ํ์ ์ธ Centralized์ ๋ชจ์ต์ด๋ค.
๊ฑฐ๊ธฐ์ ๋ฐ์ ๋ ๋ชจ์ต์ ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ฌ์ด์ ๋
ธ๋๋ฐ๋์๋ฅผ ๋ ์ผ๋ก์ ์๋ฒ๋ฅผ ๋ถ์ฐํ๋ ๋ฐฉ๋ฒ์ด๋ค.
๊ทธ ๊ฒฐ๊ณผ ์๋ฒ๋ค ๊ฐ์ ๋๊ธฐํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
๊ทธ๋์ ์๋ฒ๋ค ๋ค์ DB๋ฅผ ๋ ์ผ๋ก์ ๋๊ธฐํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค. ๊ทธ๊ฒฐ๊ณผ ๋ Centralizedํํ๊ฐ ๋์๋ค.
๊ทธ๋ผ ์ด์ DB๋ฅผ ๋๋์ด ๋ณด์ ๊ทธ ๊ฒฐ๊ณผ Master Slaveํํ๊ฐ ๋์๋ค.
ํ์ง๋ง ์ฌ์ ํ Master์ Centralized ๋์๋ค.
์์ฆ ๋ง์ ์๋ฒ - ํด๋ผ์ด์ธํธ์ ๋ชจ์ต์ด ์์ ๊ฐ๋ค.
๊ทธ๋ผ ๋ธ๋ก์ฒด์ธ์ ์๋ฒ - ํด๋ผ์ด์ธํธ์ ๊ตฌ์กฐ๋ฅผ ์ดํด๋ณด์
Replica๋ก Decentralized๋์ด ์๋๊ฒ์ ํ์ธ ํ ์ ์๋ค.
์ด๋ ๊ฒ Distributed Computing์ ์ฅ์ ์
Traffic์ด ๋ถ์ฐ๋์ด ๋ ๊ฐํ DDos๋ฅผ ๊ฒฌ๋ ์ ์๊ณ
No singular point of failure / Master๊ฐ ์๊ธฐ ๋๋ฌธ์ ํ ๋
ธ๋๊ฐ ๋ค์ด๋์ด๋ ์ฌ์ ํ ๋์ํ๋ฉฐ
๋ชจ๋ ๋
ธ๋๋ฅผ ํดํนํด์ผ ์์คํ
์ด ๋ง๊ฐ์ง์ผ๋ก Securityํ๋ค.
ํ์ฅ์ ๊ทธ๋ฆผ์ผ๋ก ์ค๋ช
ํ๋ฉด ์ ํ์ ์ธ Centralized๋
์์ ๊ฐ๋ค๋ฉด Decentralized๋ ์๋์ ๊ฐ๋ค.
์ฌ๊ธฐ๊น์ง ์ด๋ก ์ ์ผ๋ก ์ดํด๊ฐ ๋์์ ๊ฒ์ด๋ค.
์ด๋ฐ ๊ตฌ์กฐ๋ 2๊ฐ์ง ๋ฌธ์ ์ ์ด ์๋ค.
์ด node๋ค์ด ์ด๋ป๊ฒ ์ฐ๊ฒฐ์ด ๋์ด์๋์ง ์ง๊ธ๋ถํฐ ์ค๋ช
์ ํ๊ฒ ๋ค.
Building data structures with hash pointers ์ด๋ ๊ฒ ํด์ฌํฌ์ธํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
์ด ํ์ฅ์ ๊ทธ๋ฆผ์ผ๋ก ์ค๋ช
์ด ์ด๋ ต๋ค ๋ค์ ๊ทธ๋ฆผ์ ๋ณด์
Blockchain = Chain of Blocks ์ด๋ ๊ฒ ๋ธ๋ก์ฒด์ธ์ ์ด์ ๋ธ๋ก์ ํด์ฌํฌ์ธํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
๊ฐ๊ฐ ์ด์ ๋ธ๋ก์ ํด์ฌํฌ์ธํฐ๋ฅผ ๊ฐ์ง๋ ๋จ๋ฐฉํฅ๊ตฌ์กฐ๋ก ๋์ด์๋ค. ๋ธ๋ก์ ๊ตฌ์กฐ๋ฅผ ์ดํด๋ณด๋ฉด ๊ฐ๋จํ๋ค.
๊ฐ๊ฐ์ ๋ธ๋ก๋ค์ Header์ Body๋ก ๊ตฌ์ฑ๋์ด์๋ค.
Body์๋ ๋ชจ๋ ๊ฑฐ๋๋ค์ด Merkle Treeํํ๋ก ์กด์ฌํ๋ค.
Header์๋ Merkle Tree์ root hash์ ์ด์ ๋ธ๋ก์ hash, Nonce๊ฐ, ๋ธ๋ก๋ฒ์ , ํ์์คํฌํ, ๋์ด๋ ๋ชฉํ(nBits)๊ฐ์ด ์๋ค.
๊ฐ๊ฐ ๋ธ๋ก์ ์ด์ ๋ธ๋ก์ ํด์ฌ๊ฐ๋ง ํค๋์ ์ ์ฅ์ํ๊ณ Transactions๋ ์ ์ฅ์ ํ์ง ์๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด์ ์ Transactions์ ๋ณ๊ฒฝํ๋ฉด ๋ชจ๋ฅด๋๊ฒ ์๋๊ฐ??
์ด๋ฌธ์ ๋ Merkle Root๊ฐ์ผ๋ก ํด๊ฒฐํ๋ค.
Merkle Tree: binary tree with hash pointers
์ด๋ ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ๋๋ฉด ๊ฒฐ๊ตญ Merkle Root ๊ฐ์ด ๋ณ๊ฒฝ์ด ๋๋ค.
์์๋ก Data๋ฅผ ๋ณ๊ฒฝํ์ง ๋ชปํ๋ค.
์ต์ข
Bitcoin Blockchain์ ํํ๋ ์์ ๊ฐ๋ค.
๊ฐ๊ฐ์ ๋ธ๋ก์ ์ด์ ์ ๋ธ๋ก ํด์ ๊ฐ๋ค์ ๊ฐ์ง๊ณ ์๋ ์ฒด์ธ ํ์์ด๋ค.
๋ธ๋ก ํด์๋ ์๋ 3๊ฐ์ง๋ฅผ ๋ง์กฑํด์ผํ๋ค.
์์ ๊ทธ๋ฆผ๋ค์ ๋ค ์ดํดํ๋ค๋ฉด ์ด์ ๋ธ๋ก์ฒด์ธ์ด ์ด๋ป๊ฒ ๊ตฌ์ฑ๋์ด์๋์ง๋ ์๊ฒ์ด๋ค.
ํ์ง๋ง ์ฌ๋ฌ๊ฐ์ง ๊ถ๊ธ์ฆ์ด ์์ ๊ฒ์ด๋ค. ์๋ฅผ๋ค์ด
What is Proof of Work
๋งค ํด๋ง๋ค, ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ฑํ๋ ๋ชจ๋ ์ปดํจํฐ๋ค์ด, ์ปดํจํฐ๊ฐ ํ๊ธฐ์๋ ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ณ์ฐ์ ์ํํ๋๋ก ํ์ฌ, ์ผ์ ํ ์กฐ๊ฑด์ ๋ง์กฑ์ํค๋ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํด๋ธ ๋ ธ๋๊ฐ ํด๋น ํด์ ๋ฌธ์ ๋ฅผ ํ์ด๋๋ค๊ณ ๋ชจ๋ ๋ ธ๋๋ค์๊ฒ ์ธ์ ๋ฐ๋(Consensus) ํ์.
๋นํธ์ฝ์ธ ๋คํธ์ํฌ์์ PoW๋ฅผ ์ํํ๋ ํ์๋ฅผ mining์ด๋ผ๊ณ ํ๊ณ , ๋ค๋ฅธ ๋ ธ๋๋ณด๋ค ๋จผ์ PoW ๊ฒฐ๊ณผ๋ฅผ ๋์ถํด๋ธ ๋ ธ๋๋ ํด๋น ํด์์ ๋นํธ์ฝ์ธ์ผ๋ก ๋ณด์์ ๋ฐ์.
PoW์ ์ฐธ์ฌํ๋ ์ปดํจํ ํ์๊ฐ ์ปค์ง์๋ก ๋คํธ์ํฌ๋ ๋ ๊ฒฌ๊ณ (secure)ํด์ง.
๋คํธ์ํฌ๋ฅผ ๊ตฌ์ฑํ๋ ๋ชจ๋ ์ปดํจํ
ํ์์ 51%๋ฅผ ์ ์ ํ๋ฉด, Double spending์ ๋ฐ์์์ผ ๋ถ๋นํ์ด๋์์ทจํ ์์์.
-> ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ฑํ๋ ์ปดํจํ
ํ์๊ฐ ๋งค์ฐ ํฌ๊ธฐ ๋๋ฌธ์ 51%์ ํ์๋ฅผ ์ทจ๋ํ๋ ๊ฒ์ด ํ์ค์ ์ผ๋ก ์ด๋ ค์
-> Double spending ๋ฌธ์ ๋ฅผ ์ผ๊ธฐ์ํค๋ ์๊ฐ, Bitcoin์ ๊ฐ์น๊ฐ ๊ธ๊ฒฉํ ๋จ์ด์ง๊ธฐ ๋๋ฌธ์ miner๋ค์ ๊ฒฝ์ ์ incentive์ ์ ๋ฉด์ผ๋ก ๋ฐฐ์น๋๋ ํ์
์์ ๊ทธ๋ฆผ์ด PoW๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ทธ๋ฆผ์ด๋ค. ์์ธํ ๋ฌธ์ ๋ฅผ ํธ๋ ํ์๊ฐ ์ด๋ป๊ฒ ์ด๋ฃจ์ด ์ง๋์ง ํ์ธํด๋ณด์
์ด๊ฒ์ด ๋ฌธ์ ์ด๋ค. โํ์ฌ ๋ธ๋ก์ hash๊ฐ < ๋์ด๋ ๋ชฉํโ ์ ์กฐ๊ฑด์ ๋ง์กฑํ ๋๊น์ง Nonce์ ํ์์คํฌํ๊ฐ์ ์ฆ๊ฐ์ํค๋ฉด์ hashing (๋ ์๋ฐํ ์ด์ผ๊ธฐํ์๋ฉด, miner๋ค์ ์์ ์ ๊ณ์ ์ผ๋ก Bitcoin์ ๋ฐํํ๋ coinbase ํธ๋์ญ์ ์ ํฌํจ์ํค๋๋ฐ, ์ด ๋ 100byte๊น์ง ์ํ๋ ๋ฌธ๊ตฌ๋ฅผ ๋ฃ์ ์ ์๋๋ฐ, ์ด๋ฅผ ํตํด merkle tree์ root hash๊ฐ๋ ๋ณ๊ฒฝ์์ผ๊ฐ๋ฉด์ mining)
์ ๊ทธ๋ฆผ์ ์์๋ 000100000 ..... ๋ณด๋ค ์์ hash๊ฐ์ ์ฐพ๋๊ฒ ๋ฌธ์ ์ด๋ค. 76e4 nonce ๋ธ๋ก์ด 0001000... ๋ณด๋ค ์์์ ํ์ธํ ๋คํธ์ํฌ๋ ์์ ์ด ๊ฐ์ฅ ๋จผ์ ๋ต์ ์ฐพ์๋ค๊ณ ๋ชจ๋ ๋
ธ๋์๊ฒ ์๋ฆฐ๋ค. ๊ทธ๋ฌ๋ฉด ๋ชจ๋ ๋
ธ๋๋ค์ Verifaction ํ ์๋ก์ด ๋
ธ๋๋ก ์ถ๊ฐํ๋ค.
์๋ก๋ค๋ฅธ๋๋
ธ๋์์๊ฑฐ์๋์์๋ค์๋ธ๋ก์ด์์ฑ๋์์๊ฒฝ์ฐ,๋คํธ์ํฌ Latency๊ฐ์ ์ด์ ๋ก ์ธํด chain์ ๋ถ๊ธฐ๊ฐ ์๊ธฐ๋ ๊ฒฝ์ฐ๊ฐ ์๊ธธ ์ ์๋ค.
์ด๋ฐ ๊ฒฝ์ฐ ์ฒด์ธ์ ๋์ด๋ ํฉ์ด ๋ ๋์ ์ฒด์ธ์ Canonical chain์ผ๋ก ์ธ์ ํจ. - ์ต๋6๊ฐ๊น์ง๋๊ฐ์ด์์์ฒด์ธ์ด์ ์ง๋ ๊ฒฝ์ฐ,๋นํธ์ฝ์ธ๊ฐ๋ฐ์ง์ด ๊ธด๊ธ์ฝ๋๋ฅผ ๋ฐ๋ นํด์ ๊ฐ์ ๋ก ํ๋์ ์ฒด์ธ์ ์ค์ ํจ.
Selecting Chains of Blocks ์ ์ค๋ช
์ ๋ํ์๋ฉด
์์ ๊ทธ๋ฆผ์์ ํ๋์ ๋ธ๋ก์ #40๋ฒ์งธ ๋ธ๋ก์ด๋ผ๊ณ ์๊ฐ์ ํด๋ณด์
๋ชจ๋ ๋ธ๋ก์ #40๋ฒ์ ํ๋์ ๋ธ๋ก์ด ๊ฐ์ฅ ๋ง์ง๋ง ๋ธ๋ก์ด๊ณ
์๋ก์ด ๋ธ๋ก์ ์ฐพ์ผ๋ ค๊ณ ๋ค๊ฐ์ด ๋ฌธ์ ๋ฅผ ์ฐพ๊ณ ์๋ ์ํฉ์ด๋ค.
๊ทธ๋ ๋นจ๊ฐ์๊ณผ ์ฐ๋์ ๋ธ๋ก์ด ๋์์ ์๋ก์ด ๋ธ๋ก์ ์ฐพ์๋ค.
๊ทธ๋ฌ์๋ ์ข์ธก ๊ทธ๋ฆผ์ฒ๋ผ ๋์์ ํผ์ง๊ฒ ๋์ด์๋ค.
๋นจ๊ฐ์์ผ๋ก ๋ณํ ๋ธ๋ก์ ์๋ก์ด ๋ธ๋ก์ ์ฐพ๊ณ ์๊ณ
์ฐ๋์์ผ๋ก ๋ณํ ๋ธ๋ก๋ ์๋ก์ด ๋ธ๋ก์ ์ฐพ๊ณ ์๋ค.
๊ทธ๋ ์ฐ๋์ ๋ธ๋ก์ด ์๋ก์ด ๋ธ๋ก์ธ ํํฌ์ ๋ธ๋ก์ ์ฐพ์๋ค.
๊ทธ๋ฌ๋ฉด ์ฐ์ธก์ ๊ทธ๋ฆผ์ฒ๋ผ ํ๋์- ๋นจ๊ฐ์์ผ๋ก ๋์ด์๋ ๋ธ๋ก ๊ตฌ์กฐ๋ณด๋ค
ํ๋์ - ์ฐ๋์ - ํํฌ์์ผ๋ก ๋ ๋ธ๋ก์ด ๋ ๊ธธ๋ค. ๊ทธ๋ฌ๋ฉด ๋ ๊ธด ๋ธ๋ก์ ์ธ์ ํ๊ณ
๋ชจ๋ ๋ธ๋ก์ ํ๋์ - ์ฐ๋์ - ํํฌ์ ์์๋ก ๊ตฌ์ฑ์ด ๋๋ค.
https://blockexplorer.com/block/00000000000000000058e063aaf68dfdd86ababcc86e0a822e2711a43beb2dda (๋ชจ๋ ๋ธ๋ก์ ์ ๋ณด๋ฅผ ๋ณผ ์ ์๋ค.)
ํ์ฌ ๋ง์ง๋ง ๋ธ๋ก์ ๊ฐ์ #493056์ด์๋ค.
Creating new bitcoin as a PoW incentive, called Block Reward
2040๋ ์ ๊ฒฐ๊ตญ 0์ ์๋ ดํ ๊ฒ์ด๋ผ๊ณ ํ๋ค.