๐ช 2023. 03. 21. Friday_ ์ฒด๊ฐ ์ค๋ ๊ธ์์ผ ์คํ 6์. . . . ๐ช
์๋
ํ์ธ์!๐
์ค๋์ TECHIT-๋ธ๋ก์ฒด์ธ ์ค์ฟจ 3๊ธฐ์ DAY - 7 ์๊ฐ์
๋๋ค ~!~!~!!!๐๐๐
๋ชจ๋ ํจ๊ป 4๊ฐ์ ๋์ ํ๋์ ๋ฉ์ง ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ ๊ทธ๋ ๊น์ง ํ์ดํ ํฉ์๋ค !
* ์ด ๊ณณ์์๋ ๋น์ผ์ ๋ฐฐ์ด ๋ด์ฉ์ ๋ณต์ตํ๋ ์ฉ๋๋ก ๊ธ์ ์์ฑํ๋ ค๊ณ ํฉ๋๋ค.
* ์ค๋์ 'Blockchain 101' ๋ด์ฉ ์ ์ฒด ๋ด์ฉ์ ๋น ๋ฅด๊ฒ ๋ณต์ตํด๋ณด๊ฒ ์ต๋๋ค.
โ โ โ โ
โ โ
โ๏ธ 01. ์ต๋ช
์ฑ
โ โ โช๏ธ ์ง๊ฐ์ ์ฃผ์ํน์ ๊ณต๊ฐํค๋ก ์ค์ ์ฌ๋์ ์ ์์ ์ฐพ๊ธฐ ์ด๋ ต๋ค.
โ โ โ โ โ ๐ธex) ์ ํ ํน์ ๊ณ์ข๋ฒํธ๋ง์ ๊ฐ์ง๊ณ ๋๊ตฌ ๊ฒ์ธ์ง ์์๋ณด๊ธฐ ์ด๋ ต๋ค.
โ โ โ
โ๏ธ 02. ์ถ์ ๊ฐ๋ฅ์ฑ
โ โ โช๏ธ ๋ชจ๋ ๊ฑฐ๋ ์ ๋ณด๋ ๊ธฐ๋ก๋๊ธฐ ๋๋ฌธ์ ์ค์ ์ฌ๋์ ์ ์์ ๋ชจ๋ฅด์ง๋ง, ๊ฑฐ๋ ๋ด์ญ์ ํตํด ์ถ์ ๊ฐ๋ฅ์ฑ์ด ์กด์ฌํ๋ค.
โ โ โช๏ธ ์ด๋ฌํ ํน์ง ๋๋ฌธ์ ์ค์ต๋ช
์ฑ์ด๋ผ๊ณ ๋ถ๋ฆฌ๊ธฐ๋ ํ๋ค.
โ โ โ โ โ ๐ธex1)
โ โ โ โ โ : ์ ๋ช
ํ ์ฌ๋๋ค์ ๊ฑฐ๋ ์ ๋ณด๋ฅผ ์์๋ธ ๊ฑฐ๋์ ๋ณด์ ๋ฐ๋ผ ํ ํฐ์ ๋ฐ๋ผ ์ฌ๋ ์ผ ๋ฐ์
โ โ โ โ โ ๐ธex2)
โ โ โ โ โ : ์ด๋ค ์์คํ
์์ ๋๊ฐ ์
์์ ์ธ ๊ฑฐ๋๋ฅผ ํ๋ค
โ โ โ โ โ -> ๊ฑฐ๋ ๋ด์ญ ์ถ์ ์ ํตํด ํด์ปค์ ์ง๊ฐ ์ฐจ๋จ!
โ โ โ โ โ -> ์ง๊ฐ ์ ๋ณด๋ฅผ ์ฌ๊ธฐ์ ๊ธฐ์ ์๋ฌธ ๋ธ๋ค!
โ โ โ โ โ -> tx ์์ฑ์ ๋ง์ ์ ์์.
โ โ โ โ โ ๐ธex3)
โ โ โ โ โ : ๋ธ๋ก์ฒด์ธ์ Tx๊ฐ ์๊ตฌ๋๋ฉด -> ์ง๊ฐ์ฃผ์๊ฐ ํ์ํ๋ค(== ์ต๋ช
์ฑ๊ณผ ์ถ์ ๊ฐ๋ฅ์ฑ๊ณผ ๊ด๋ จ๋)โ โ
โ โ
โ๏ธ 03. ๋ฌด์ ๋ขฐ์ฑ
โ โ โช๏ธ ํ์ค์ธ๊ณ์์๋ ์ 3 ๊ธฐ๊ด(์ํ)์ ์ ๋ขฐํ๋๋ฐ, ๋ธ๋ก์ฒด์ธ ์์คํ
์์๋ ์์คํ
์์ฒด๊ฐ ์ ๋ขฐ๋ฅผ ๋ด๋ณด๋ก ํ๋ค.
โ โ
โ โ
โ๏ธ 04. ๋ถ์ฐ์์ฅ
โ โ โช๏ธ ๊ฑฐ๋๊ฐ ๋ฐ์ํ์ ๋ ์์คํ
๋ด ๋ชจ๋ ์ฐธ๊ฐ์๋ค์๊ฒ ๊ฑฐ๋ ์ ๋ณด๊ฐ ๊ณต์ (=๊ธฐ๋ก)๋๋ค.
โ โ
โ๏ธ 05. ํ์ค์ํ
โ โ โช๏ธ ์ค์ํ(Centralized) : ์ค์์์ ์ง๊ถ๋๋ ์์คํ
์ผ๋ก, ์ค์์ด ๊ณต๊ฒฉ์ ๋ฐ์ผ๋ฉด ๋คํธ์ํฌ๊ฐ ํ๊ดด๋
โ โ โช๏ธ Single point of Failure : ์์คํ
๊ตฌ์ฑ ์์ ์ค์์ ๋์ํ์ง ์์ผ๋ฉด ์ ์ฒด ์์คํ
์ด ์ค๋จ๋๋ ์์๋ฅผ ๋งํ๋ค.
โ โ โ โ โ ๐ธex) ์นด์นด์ค
โ โ โช๏ธ ํ์ค์ํ(Decentralized) : ์ค์ํ๋ ์ฃผ์ฒด๊ฐ ์์ด ์ ๋ง์ ๋ ธ๋๋ค์ด ๋งํฌ๋์ด ์๋ค.
โ โ
โ๏ธ 06. ํฉ์ ์๊ณ ๋ฆฌ์ฆ
โ โ โช๏ธ ๋ฑ์ฅ๋ฐฐ๊ฒฝ : ์ค์ผ๋ ์ ๋ณด๋ฅผ ๊ฑธ๋ฌ๋ด๊ณ ์ณ์ ์ ๋ณด๋ฅผ ํ๋จํ๋ ๊ท์น์ด ํ์ํ๋ค!
โ โ โช๏ธ ๋์์๋ฆฌ : ๋ชจ๋์๊ฒ ๋๋ฑํ๊ฒ ์ด๋ ค์ฐ๋ฉด์ ํ๋ฑํ๊ฒ ๊ถ๋ฆฌ๋ฅผ ๋ถ์ฌํด์ค์ผํ๋ค.
โ โ โ โ โ โ โ โ โ โ : ์ต๋ช
์ ์จ์ด์ ์ค์ผ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฑฐ๋ฅด๊ธฐ ์ํด์ PoW๋ฅผ ์ฑํํ์๋ค.
โ โ โ โ โ ๐ธex) PoW (์์
์ฆ๋ช
: Proof of Work) -> ์ฑ๊ตด
โ โ โ โ โ : ๋จผ์ ๋๊ตฐ๊ฐ ๋ฌธ์ ๋ฅผ ํ๋ฉด ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ์ ๋ณด๋ฅผ ๊ณต์ ํด์ค๋ค.
โ โ โ โ โ โ โ โ
โ โ โ โ โ โ โ โ
โ๏ธ 07. ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅ์ฑ
โ โ โช๏ธ ํ ๋ฒ ๋ธ๋ก์ฒด์ธ์ ์ ๋ณด๊ฐ ๋ค์ด๊ฐ๋ฉด ์ฝ๊ฒ ๋ฐ๊ฟ ์ ์๋ค! (๋ถ๊ฐ๋ฅ ํผ์ผํธ๊ฐ ํฌ๋ค๋ ์๋ฏธ.)
โ โ โ โ โ ๐ธex)
โ โ โ โ โ : ๋ชจ๋ ๋ธ๋ก์๋ Hash๊ฐ๊ณผ Pre-Hash๊ฐ์ด ๋ค์ด๊ฐ๊ฒ ๋๋ค.
โ โ โ โ โ : SHA-256์ ํน์ง ์ค ํ๋ == input๊ฐ ๋ณ๊ฒฝ์, ouput๊ฐ ๋ณ๊ฒฝ!
โ โ โ โ โ -> ๋๊ตฐ๊ฐ 1๋ฒ ๋ธ๋ก์ ์ ๋ณด ๋ณ๊ฒฝ์ Hash๊ฐ๋ ๋ณ๊ฒฝ๋
โ โ โ โ โ -> ์ฐ๊ฒฐ๋์ด ์๋ 2๋ฒ ๋ธ๋ก์ pre-Hash๊ฐ != 1๋ฒ ๋ธ๋ก์ Hash๊ฐ
โ โ โ โ โ -> ์ ๋ณด ๋ณ๊ฒฝ์ด ๋์์ ๊ฒฝ์ฐ, ๋น ๋ฅด๊ฒ ๋ณ๊ฒฝ์ฌํญ์ ์์๋ด ๋ณต๊ตฌ ์์
์ ํ๋ค!
โ โ โ โ โ => ์ฆ. ์ ๋ณด ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅํ ๊ฒ์ด ์๋, ์ ๋ณด๋ณ๊ฒฝ์ ๋น ๋ฅด๊ฒ ์์๋ด ๋ณต๊ตฌ๋ฅผ ํ ์ ์๋ค!
โ โ โ โ
โ โ
โ๏ธ ์ฑ๊ตด์๋ค์ด ๋ฐ๋ ๋ณด์์ ์ข ๋ฅ์๋ 2๊ฐ์ง๊ฐ ์๋ค.
โ โ โ โ โ ๐ธex1) ๊ฑฐ๋ ์์๋ฃ์ ์ํ ๋ณด์
โ โ โ โ โ : ์์๋ฃ๋ ๊ฑฐ๋ ์ฑ๊ณต ์ ์๋์ผ๋ก ์์ด๊ฒ ๋๋ค.
โ โ โ โ โ ๐ธex2) ๋ธ๋ก ์์ฑ์ ์ํ ๋ณด์ (=์ฝ์ธ๋ฒ ์ด์ค๊ฑฐ๋์)
โ โ โ โ โ ๐นQ: ์ฝ์ธ ๋ฐํ์ด ์ค๋จ๋๋ฉด ์ฑ๊ตด๋ ์ค๋จ๋๋?
โ โ โ โ โ ๐นA: ์๋๋ค. ๋ธ๋ก ๋ณด์๋ง ์ค๋จ๋๋ ๊ฒ์ผ๋ก ์ฑ๊ตด์๋ค์ ๊ณ์ํด์ ๊ฑฐ๋ ์์๋ฃ๋ฅผ ๋ฐ๋๋ค.
โ โ
โ๏ธ ์ฑ๊ตด ๋์ด๋
โ โ โช๏ธ ํ๊ณ๊ฐ์ด(=maximum) 64์๋ฆฌ๋ก ์ ํด์ ธ ์์ด ์ด๊ฒ์ ๋์ด๊ฐ๋ฉด ์๋๋ค!
โ โ โช๏ธ ๋ฐ๋ผ์, ์ฑ๊ตด์ ์ ์ ๋ ์์ ์๋ฅผ ์ฐพ์๋ด๋ ์์คํ
์ผ๋ก ์งํ๋๋ค.
โ โ โช๏ธ ์ฌ๋ผ๊ฐ๋ค~๋ด๋ ค๊ฐ๋ค~~์ ๋ฐ๋ณต!
โ โ โ โ โ ๐ธex1) ํ๊ท 14์ผ๋ง๋ค(2016๊ฐ์ ๋ธ๋ก)๋ง๋ค ๋์ด๋๋ฅผ ์กฐ์ ํ๋ค.
โ โ โ โ โ -> 14์ผ ์๋ 18์ผ์ด ๊ฑธ๋ ธ๋ค (== ๋์ด๋๊ฐ ์ด๋ ค์ ๋ค!)
โ โ โ โ โ -> ํ๊ท ๋ธ๋ก์ฑ๊ตด ๋์ด๋๋ฅผ ๋ง์ถฐ์ค์ผํ๋ค. (== ํ๊ท ๋ธ๋ก ์์ฑ์ด ์ด๋ฃจ์ด์ ธ์ผ ํจ.)
โ โ โ โ โ -> ๋ค์ ๋์ด๋๋ ๋น๊ต์ ์ฝ๊ฒ ๋ง๋ค์.
โ
โ โ
โ๏ธ ๋ณด๋ด๋ ์ฌ๋์ ์๊ณ , ๋ฐ๋ ์ฌ๋๋ง ์กด์ฌํ๋ ๊ฑฐ๋!
โ๏ธ ๋ชจ๋ ๋ธ๋ก์ ํ๋์ฉ ์กด์ฌํ๋ค.
โ โ โ โ
โ โ
โ๏ธ 01. input ๊ฐ์ด ๋ฌ๋ผ์ง๋ฉด output ๊ฐ๋ ๋ฌ๋ผ์ง๋ค.
โ๏ธ 02. output ๊ฐ์ 16์ง์๋ก 256bit๋ก ๊ตฌ์ฑ๋๋ค.
โ โ โ โ
โ โ
โ๏ธ chain์ผ๋ก ์ฐ๊ฒฐ๋์ด ์์ ์ ์๋ ์ด์
โ โ โช๏ธ previous hash๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์, ํจ๋ถ๋ก ๋์ด์ง์ง ์๋๋ค!
โ โ โ โ โ ๐ธex)
โ โ โ โ โ : Merkle Root์ ์ ๋ณด๊ฐ ์ธ๊ณก๋
โ โ โ โ โ -> ๋ธ๋ก Hash๊ฐ์๋ ์ํฅ์ ๋ผ์น๋ค.
โ โ โ โ โ -> ๋ณ๊ฒฝ๋ ๋ธ๋ก Hash๊ฐ์ Target๊ฐ์ ๋ง์กฑ ๋ชป ํ ํ๋ฅ ์ด ์ปค์ง๋ค.
โ โ โ โ โ => ๋ค์ ๊ฑฐ๋๋ฅผ ์์ํด์ผ ํ๋ค.
โ โ โ โ โ ๐นQ: Bits๋ฅผ ๊ฑด๋๋ ค ์ฑ๊ตด ๋์ด๋๋ฅผ ์กฐ์ ํ๋ฉด ๋๋๊ฒ ์๋๊ฐ?
โ โ โ โ โ ๐นA: ํ์์คํฌํ๊ฐ ๋๋ฌด ๋ค์ณ์ ธ ์์ผ๋ฉด ๋ธ๋ก์ ์ธ์ ํด์ฃผ์ง ์๋๋ค.
โ โ โ โ
โ โ
โ๏ธ Public Key(๊ณต๊ฐํค) : ๋์ ๋ฐ์ ๋ ์ฌ์ฉํ๋ค.
โ๏ธ Private Key(๊ฐ์ธํค) : ๋์ ๋ณด๋ผ ๋ ์ฌ์ฉํ๋ค.
โ โ
โ๏ธ ๊ณต๊ฒฉ์ด๋ผ๋ ๋จ์ด๊ฐ ์ฌ๋ฐ๋ฅธ ๊ฒ์ผ๊น? ๊ทธ ๊ธฐ์ค์ ์ ํํ ๋ฌด์์ผ๊น .
โ โ โ โ โ ๐ธex)
โ โ โ โ โ : ๋ด๊ฐ ๋ค๋ฅธ ๋๋จธ์ง 51ํผ์ผํธ ์ปดํจํ
ํ์ ๋ณด๋ค ๋ ํฐ ํ์๊ฐ ์์ ๊ฒฝ์ฐ ?
โ โ โ โ โ : ๊ฑฐ๋๊ฐ ์๋ ๊ฑฐ์ง ๋ธ๋ก์ ๊ธฐ์กด์ ์ฒด์ธ ๊ธธ์ด๋ณด๋ค ๊ธธ๊ฒ ๋ง๋ค์ด ๋ณธ์ฒด์ธ์ ๋์ฒดํ๊ณ ์ ํ ๋,
โ โ โ โ โ -> 60ํผ์ผํธ๋ ์ฌ๋ฐ๋ฅธ ๋ธ๋ก์ ์์ฑํ๋ ค๊ณ ๋
ธ๋ ฅํ๋ค.
โ โ โ โ โ -> ๊ทธ ํ ๋น ๋ธ๋ก๋ณด๋ค ๋ ์ฒด์ธ์ด ๊ธธ์ด์ง๋ ์๊ฐ
โ โ โ โ โ -> ๋น ๋ธ๋ก์ ์ฒด์ธ์ ์ฌ๋ผ์ง๊ฒ ๋๋ค.
โ โ โ โ โ => ์ด ์ํฉ์ด ๋ฐ๋๋ผ๋ฉด? ๊ณผ์ฐ ๊ณต๊ฒฉ์ด๋ผ๋ ํํ์ ์ฌ์ฉํ ์ ์์๊น?
โ โ
๋นํธ์ฝ์ธ ์ฝ์ด - ๊นํ๋ธ : https://github.com/bitcoin/bitcoin
=> ์ค์ ์ฝ์ด๋ฅผ ์ดํด๋ณด๋ฉด, header์ hash๊ฐ์ด ๋น ์ ธ์๋ค.
=> hash ๊ฐ์ GetHash() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค.
โ โ โ