์ ๋ขฐ์ฑ ์๊ณ ๋ด๊ฒฐํจ์ฑ์ ๊ฐ์ถ ๋ถ์ฐ ์์คํ ๊ตฌ์ถ์ ํ์์ ์ธ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ธ๊ณ๋ฅผ ํํํด ๋ณด์ธ์. Paxos, Raft, ์์ ์ฆ๋ช ๋ฑ์ ๋ํด ์์๋ณด์ธ์.
๋ถ์ฐ ์์คํ ์์์ ์์ฌ๊ฒฐ์ : ํฉ์ ์๊ณ ๋ฆฌ์ฆ ์ฌ์ธต ๋ถ์
ํ๋ ๋์งํธ ํ๊ฒฝ์์ ๋ถ์ฐ ์์คํ ์ ์จ๋ผ์ธ ๋ฑ ํน, ์ ์ ์๊ฑฐ๋ ํ๋ซํผ๋ถํฐ ์์ ๋ฏธ๋์ด ๋คํธ์ํฌ์ ๋ธ๋ก์ฒด์ธ ๊ธฐ์ ์ ์ด๋ฅด๊ธฐ๊น์ง ์๋ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์ถ๋ฅผ ์ด๋ฃน๋๋ค. ์ด๋ฌํ ์์คํ ์ ๋ณธ์ง์ ์ผ๋ก ๋ถ์ฐ๋์ด ์์ผ๋ฉฐ, ์ด๋ ๋ฐ์ดํฐ์ ์ฒ๋ฆฌ๊ฐ ์ฌ๋ฌ ์ปดํจํฐ์ ๋ถ์ฐ๋์ด ์์์ ์๋ฏธํฉ๋๋ค. ์ด๋ฌํ ์์คํ ์ ๊ทผ๋ณธ์ ์ธ ๊ณผ์ ๋ ์ฅ์ ๋ ์ ์์ ์ธ ํ์์๊ฐ ์๋ ์ํฉ์์๋ ๋คํธ์ํฌ์ ๋ชจ๋ ๋ ธ๋๊ฐ ๋จ์ผํ๊ณ ์ผ๊ด๋ ์ํ์ ๋์ํ๋๋ก ๋ณด์ฅํ๋ ํฉ์(consensus)๋ฅผ ๋ฌ์ฑํ๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ก ์ด ์ง์ ์์ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ด ์ญํ ์ ํฉ๋๋ค.
ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ด๋ ๋ฌด์์ธ๊ฐ?
ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฌ์ ์ธ ์ฅ์ ๋ ์ ๋์ ํ์์๋ ๋ถ๊ตฌํ๊ณ ๋ถ์ฐ ์์คํ ์ด ๋จ์ผ ๋ฐ์ดํฐ ๊ฐ์ด๋ ์ํ์ ๋ํ ํฉ์์ ๋๋ฌํ ์ ์๋๋ก ํ๋ ํ๋กํ ์ฝ์ ๋๋ค. ์ด๋ ์์คํ ์ ๋ ธ๋๋ค์ด ํ๋ ฅํ์ฌ ์ง๋จ์ ์ผ๋ก ์์ฌ๊ฒฐ์ ์ ๋ด๋ฆด ์ ์๋ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ์ฌ ๋ฐ์ดํฐ ์ผ๊ด์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
์ฌ๋ฌ ์ํ ์๋ฒ๊ฐ ๊ณ ๊ฐ์ ๊ณ์ข ์์ก์ ์ ๋ฐ์ดํธํด์ผ ํ๋ ์๋๋ฆฌ์ค๋ฅผ ์์ํด ๋ณด์ธ์. ํฉ์ ๋ฉ์ปค๋์ฆ์ด ์๋ค๋ฉด ํ ์๋ฒ๋ ์ ๊ธ์ ์ฒ๋ฆฌํ๋ ๋์ ๋ค๋ฅธ ์๋ฒ๋ ๋์์ ์ถ๊ธ์ ์ฒ๋ฆฌํ์ฌ ๋ฐ์ดํฐ๊ฐ ์ผ์นํ์ง ์๋ ์ํฉ์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ชจ๋ ์๋ฒ๊ฐ ์ด๋ฌํ ํธ๋์ญ์ ์ ์์์ ๊ฒฐ๊ณผ์ ๋์ํ๋๋ก ๋ณด์ฅํจ์ผ๋ก์จ ๊ทธ๋ฌํ ๋ถ์ผ์น๋ฅผ ๋ฐฉ์งํฉ๋๋ค.
ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ค์ํ๊ฐ?
ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๋ก ๊ฒฌ๊ณ ํ๊ณ ์ ๋ขฐ์ฑ ์๋ ๋ถ์ฐ ์์คํ ์ ๊ตฌ์ถํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค:
- ๋ด๊ฒฐํจ์ฑ(Fault Tolerance): ์ผ๋ถ ๋ ธ๋๊ฐ ์คํจํ๊ฑฐ๋ ์ฌ์ฉํ ์ ์๊ฒ ๋๋๋ผ๋ ์์คํ ์ด ๊ณ์ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋๋ก ํฉ๋๋ค. ์ด๋ ๊ธ์ต ๊ธฐ๊ด์ด๋ ๋น์ ๋์ ์์คํ ๊ณผ ๊ฐ์ด ๊ณ ๊ฐ์ฉ์ฑ์ด ํ์ํ ์์คํ ์์ ํนํ ์ค์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฐ์ดํฐ ์ผํฐ์ ํ ์๋ฒ๊ฐ ๋ค์ด๋๋๋ผ๋ ๋ค๋ฅธ ์๋ฒ๋ค์ ์ฌ์ ํ ํฉ์์ ๋๋ฌํ๊ณ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ ์ ์์ต๋๋ค.
- ๋ฐ์ดํฐ ์ผ๊ด์ฑ(Data Consistency): ์์คํ ์ ๋ชจ๋ ๋ ธ๋๊ฐ ๋ฐ์ดํฐ์ ๋ํด ๋์ผํ ๋ทฐ๋ฅผ ๊ฐ๋๋ก ๋ณด์ฅํ์ฌ ๋ถ์ผ์น์ ์ถฉ๋์ ๋ฐฉ์งํฉ๋๋ค. ์ด๋ ์๋ฃ ๊ธฐ๋ก์ด๋ ๊ณต๊ธ๋ง ๊ด๋ฆฌ์ ๊ฐ์ด ๋์ ์์ค์ ๋ฐ์ดํฐ ์ ํ์ฑ์ด ์๊ตฌ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
- ๋น์ํด ์ฅ์ ํ์ฉ(Byzantine Fault Tolerance): ์ผ๋ถ ๊ณ ๊ธ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ ธ๋๊ฐ ๋ถ์ ํํ๊ฑฐ๋ ์ ์์ ์ธ ์ ๋ณด๋ฅผ ๋ณด๋ด๋ ๋ฑ ์์์ ํ๋์ ๋ณด์ผ ์ ์๋ ๋น์ํด ์ฅ์ ๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค. ์ด๋ ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ์ ๊ฐ์ด ์ ๋ขฐ๊ฐ ๋ณด์ฅ๋์ง ์๋ ์์คํ ์์ ํนํ ์ค์ํฉ๋๋ค.
- ๋ณด์(Security): ๋ ธ๋ ๊ฐ์ ํฉ์๋ฅผ ๊ฐ์ ํจ์ผ๋ก์จ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๊ฑฐ๋ ์์์ํค๋ ค๋ ๊ณต๊ฒฉ์ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ์ด๋ ์ ๋ขฐํ ์ ์๋ ๋ถ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ธฐ ์ํ ์์ ํ ๊ธฐ๋ฐ์ ์ ๊ณตํฉ๋๋ค.
ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ข ๋ฅ
ํฉ์ ์๊ณ ๋ฆฌ์ฆ์๋ ์ฌ๋ฌ ๊ฐ์ง ์ข ๋ฅ๊ฐ ์์ผ๋ฉฐ, ๊ฐ๊ฐ์ ์ฅ๋จ์ ์ด ์์ต๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
1. Paxos
Paxos๋ ๋ถ์ฐ ์์คํ ์์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํฉ์ ์๊ณ ๋ฆฌ์ฆ ์ ํ๊ตฐ์ ๋๋ค. ๊ฒฌ๊ณ ์ฑ๊ณผ ์ฅ์ ํ์ฉ ๋ฅ๋ ฅ์ผ๋ก ์ ์๋ ค์ ธ ์์ง๋ง, ๊ตฌํํ๊ณ ์ดํดํ๊ธฐ๊ฐ ๋ณต์กํ ์ ์์ต๋๋ค.
Paxos์ ์๋ ๋ฐฉ์:
Paxos๋ ์ ์์(Proposers), ์๋ฝ์(Acceptors), ํ์ต์(Learners)์ ์ธ ๊ฐ์ง ์ ํ์ ํ์์๋ฅผ ํฌํจํฉ๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ ๋ ๋จ๊ณ๋ก ์งํ๋ฉ๋๋ค:
- 1๋จ๊ณ (์ค๋น): ์ ์์๋ ๋ค์์ ์๋ฝ์์๊ฒ ์ค๋น ์์ฒญ์ ๋ณด๋ด ๊ฐ์ ์ ์ํฉ๋๋ค. ์๋ฝ์๋ค์ ๋ ๋ฎ์ ์ ์ ๋ฒํธ๋ฅผ ๊ฐ์ง ๋ฏธ๋์ ์ค๋น ์์ฒญ์ ๋ฌด์ํ๊ฒ ๋ค๊ณ ์ฝ์ํฉ๋๋ค.
- 2๋จ๊ณ (์๋ฝ): ์ ์์๊ฐ ๋ค์์ ์๋ฝ์๋ก๋ถํฐ ์ฝ์์ ๋ฐ์ผ๋ฉด ์ ์๋ ๊ฐ์ผ๋ก ์๋ฝ ์์ฒญ์ ๋ณด๋ ๋๋ค. ์๋ฝ์๋ค์ ๋ ๋์ ์ ์ ๋ฒํธ๋ฅผ ๊ฐ์ง ๊ฐ์ ์ด๋ฏธ ์๋ฝํ์ง ์์ ๊ฒฝ์ฐ์๋ง ํด๋น ๊ฐ์ ์๋ฝํฉ๋๋ค.
๋ค์์ ์๋ฝ์๊ฐ ๊ฐ์ ์๋ฝํ๋ฉด ํ์ต์์๊ฒ ํต์ง๋๊ณ ํด๋น ๊ฐ์ ์ ํ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
์์: ๊ตฌ๊ธ์ Chubby ์ ๊ธ ์๋น์ค๋ ์๋ฒ ๊ฐ์ ํฉ์๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด Paxos์ ์ ์ฌํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ชจ๋ ๊ตฌ๊ธ ์๋น์ค๊ฐ ์ ๊ธ ์ํ์ ๋ํด ์ผ๊ด๋ ๋ทฐ๋ฅผ ๊ฐ์ง๊ฒ ๋์ด ๋ฐ์ดํฐ ์์ ๋ฐ ์ถฉ๋์ ๋ฐฉ์งํฉ๋๋ค.
2. Raft
Raft๋ Paxos๋ณด๋ค ์ดํดํ๊ธฐ ์ฝ๊ฒ ์ค๊ณ๋ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ๋ฆฌ๋ ์ ์ถ ๊ณผ์ ๊ณผ ๋ณต์ ๋ ๋ก๊ทธ๋ฅผ ํตํด ํฉ์๋ฅผ ๋ฌ์ฑํฉ๋๋ค.
Raft์ ์๋ ๋ฐฉ์:
Raft๋ ์์คํ ์ ๋ฆฌ๋(Leaders), ํ๋ก์(Followers), ํ๋ณด์(Candidates)์ ์ธ ๊ฐ์ง ์ญํ ๋ก ๋๋๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์ธ ๊ฐ์ง ์ํ๋ก ์๋ํฉ๋๋ค:
- ๋ฆฌ๋ ์ ์ถ: ํ๋ก์๊ฐ ์ผ์ ์๊ฐ ๋ด์ ๋ฆฌ๋๋ก๋ถํฐ ํํธ๋นํธ๋ฅผ ๋ฐ์ง ๋ชปํ๋ฉด ํ๋ณด์๊ฐ ๋์ด ์ ๊ฑฐ๋ฅผ ์์ํฉ๋๋ค.
- ๋ก๊ทธ ๋ณต์ : ๋ฆฌ๋๋ ์์ ์ ๋ก๊ทธ ํญ๋ชฉ์ ํ๋ก์์๊ฒ ๋ณต์ ํฉ๋๋ค. ํ๋ก์์ ๋ก๊ทธ๊ฐ ๋ค์ฒ์ ธ ์์ผ๋ฉด ๋ฆฌ๋์ ์ํด ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
- ์์ ์ฑ: Raft๋ ๋ฆฌ๋๋ง์ด ์๋ก์ด ๋ก๊ทธ ํญ๋ชฉ์ ์ปค๋ฐํ ์ ์์ผ๋ฉฐ, ๋ชจ๋ ์ปค๋ฐ๋ ํญ๋ชฉ์ ๊ฒฐ๊ตญ ๋ชจ๋ ํ๋ก์์๊ฒ ๋ณต์ ๋๋๋ก ๋ณด์ฅํฉ๋๋ค.
์์: ์ฟ ๋ฒ๋คํฐ์ค์์ ์ฌ์ฉํ๋ ๋ถ์ฐ ํค-๊ฐ ์ ์ฅ์์ธ etcd๋ ํฉ์ ๋ฉ์ปค๋์ฆ์ผ๋ก Raft์ ์์กดํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ ์ํ๊ฐ ๋ชจ๋ ๋ ธ๋์์ ์ผ๊ด๋๊ฒ ์ ์ง๋ฉ๋๋ค.
3. ์์ ์ฆ๋ช (Proof-of-Work, PoW)
์์ ์ฆ๋ช (PoW)์ ๋นํธ์ฝ์ธ๊ณผ ๊ฐ์ ๋ง์ ์ํธํํ์์ ์ฌ์ฉ๋๋ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ์ฑ๊ตด์๋ค์ด ๊ณ์ฐ์ ์ผ๋ก ์ด๋ ค์ด ํผ์ฆ์ ํ์ด ๊ฑฐ๋๋ฅผ ๊ฒ์ฆํ๊ณ ๋ธ๋ก์ฒด์ธ์ ์๋ก์ด ๋ธ๋ก์ ์ถ๊ฐํ๋ ๋ฐฉ์์ ๋๋ค.
์์ ์ฆ๋ช ์ ์๋ ๋ฐฉ์:
์ฑ๊ตด์๋ค์ ์ํธํ ํผ์ฆ์ ํ๊ธฐ ์ํด ๊ฒฝ์ํฉ๋๋ค. ํด๊ฒฐ์ฑ ์ ๊ฐ์ฅ ๋จผ์ ์ฐพ์ ์ฑ๊ตด์๋ ์ด๋ฅผ ๋คํธ์ํฌ์ ์ ํํฉ๋๋ค. ๋ค๋ฅธ ๋ ธ๋๋ค์ ํด๊ฒฐ์ฑ ์ ๊ฒ์ฆํ๊ณ , ์ ํจํ๋ฉด ํด๋น ๋ธ๋ก์ ๋ธ๋ก์ฒด์ธ์ ์ถ๊ฐํฉ๋๋ค.
ํผ์ฆ์ ๋์ด๋๋ ์ผ๊ด๋ ๋ธ๋ก ์์ฑ ์๊ฐ์ ์ ์งํ๊ธฐ ์ํด ์ฃผ๊ธฐ์ ์ผ๋ก ์กฐ์ ๋ฉ๋๋ค. ์ด๋ ๊ณต๊ฒฉ์๊ฐ ๋คํธ์ํฌ๋ฅผ ์ฝ๊ฒ ์ฅ์ ํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
์์: ๋นํธ์ฝ์ธ์ ๋ธ๋ก์ฒด์ธ์ ๋ณดํธํ๊ธฐ ์ํด PoW๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฑ๊ตด์๋ค์ ํผ์ฆ์ ํ๊ธฐ ์ํด ์๋นํ ๊ณ์ฐ ์์์ ์๋นํ๋ฏ๋ก ๊ณต๊ฒฉ์๊ฐ ๋ธ๋ก์ฒด์ธ์ ์กฐ์ํ๊ธฐ ์ด๋ ต๊ณ ๋น์ฉ์ด ๋ง์ด ๋ญ๋๋ค.
4. ์ง๋ถ ์ฆ๋ช (Proof-of-Stake, PoS)
์ง๋ถ ์ฆ๋ช (PoS)์ ์์ ์ฆ๋ช ๋ณด๋ค ์๋์ง ํจ์จ์ ์ธ ๋์์ ๋ชฉํ๋ก ํ๋ ๋ฐฉ์์ ๋๋ค. PoS์์๋ ๊ฒ์ฆ์๋ค์ด ๋ณด์ ํ๊ณ ๋ด๋ณด๋ก '์คํ ์ดํน'ํ ์์ฌ๊ฐ ์๋ ์ํธํํ์ ์์ ๋ฐ๋ผ ์๋ก์ด ๋ธ๋ก์ ์์ฑํ๋๋ก ์ ํ๋ฉ๋๋ค.
์ง๋ถ ์ฆ๋ช ์ ์๋ ๋ฐฉ์:
๊ฒ์ฆ์๋ ๋ฌด์์๋ก ๋๋ ์ง๋ถ ์ฐ๋ น ๋ฐ ์ฝ์ธ ์ฐ๋ น๊ณผ ๊ฐ์ ์์ธ์ ๋ฐ๋ผ ์ ํ๋ฉ๋๋ค. ์ ํ๋ ๊ฒ์ฆ์๋ ์๋ก์ด ๋ธ๋ก์ ์ ์ํ๊ณ ๋ค๋ฅธ ๊ฒ์ฆ์๋ค์ ๊ทธ ์ ํจ์ฑ์ ์ฆ๋ช ํฉ๋๋ค.
๋ธ๋ก์ด ์ ํจํ๋ฉด ๋ธ๋ก์ฒด์ธ์ ์ถ๊ฐ๋๊ณ ๊ฒ์ฆ์๋ ๋ณด์์ ๋ฐ์ต๋๋ค. ๊ฒ์ฆ์๊ฐ ์ ํจํ์ง ์์ ๋ธ๋ก์ ์์ฑํ๋ ค๊ณ ์๋ํ๋ฉด ์์ ์ ์ง๋ถ์ ์์ ์ ์์ต๋๋ค.
์์: ์ด๋๋ฆฌ์์ ์๋์ง ์๋น๋ฅผ ์ค์ด๊ณ ํ์ฅ์ฑ์ ๊ฐ์ ํ๊ธฐ ์ํด ์ง๋ถ ์ฆ๋ช ํฉ์ ๋ฉ์ปค๋์ฆ์ผ๋ก ์ ํํ๊ณ ์์ต๋๋ค.
5. ์ค์ฉ์ ๋น์ํด ์ฅ์ ํ์ฉ (Practical Byzantine Fault Tolerance, PBFT)
์ค์ฉ์ ๋น์ํด ์ฅ์ ํ์ฉ(PBFT)์ ๋ ธ๋๊ฐ ์๋ชป๋ ์ ๋ณด๋ ์ ์์ ์ธ ์ ๋ณด๋ฅผ ๋ณด๋ด๋ ๋ฑ ์์์ ํ๋์ ๋ณด์ผ ์ ์๋ ๋น์ํด ์ฅ์ ๋ฅผ ํ์ฉํ ์ ์๋ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค.
PBFT์ ์๋ ๋ฐฉ์:
PBFT๋ ๋ฆฌ๋ ๋ ธ๋์ ๋ณต์ ๋ ธ๋ ์งํฉ์ ํฌํจํฉ๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์ธ ๋จ๊ณ๋ก ์งํ๋ฉ๋๋ค:
- Pre-prepare (์ฌ์ ์ค๋น): ๋ฆฌ๋๊ฐ ๋ณต์ ๋ ธ๋๋ค์๊ฒ ์๋ก์ด ๋ธ๋ก์ ์ ์ํฉ๋๋ค.
- Prepare (์ค๋น): ๋ณต์ ๋ ธ๋๋ค์ด ๋ธ๋ก์ ๋ํ ํฌํ๋ฅผ ๋ฐฉ์กํฉ๋๋ค.
- Commit (์ปค๋ฐ): ์ถฉ๋ถํ ์์ ๋ณต์ ๋ ธ๋๊ฐ ๋ธ๋ก์ ๋์ํ๋ฉด ์ปค๋ฐ๋ฉ๋๋ค.
PBFT๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋ ค๋ฉด ๋ ธ๋์ ์ ๋ ๋ค์๊ฐ ์ ์งํด์ผ ํฉ๋๋ค.
์์: ํ๊ฐํ ๋ธ๋ก์ฒด์ธ ํ๋ ์์ํฌ์ธ ํ์ดํผ๋ ์ ํจ๋ธ๋ฆญ(Hyperledger Fabric)์ ํฉ์ ๋ฉ์ปค๋์ฆ์ผ๋ก PBFT๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ผ๋ถ ๋ ธ๋๊ฐ ์์๋๋๋ผ๋ ๋ธ๋ก์ฒด์ธ์ด ์์ ํ๊ฒ ์ ์ง๋ฉ๋๋ค.
์ฌ๋ฐ๋ฅธ ํฉ์ ์๊ณ ๋ฆฌ์ฆ ์ ํํ๊ธฐ
์ ์ ํ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ๋ ๊ฒ์ ๋ถ์ฐ ์์คํ ์ ํน์ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ๊ณ ๋ คํด์ผ ํ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ๋ด๊ฒฐํจ์ฑ: ์์คํ ์ด ์ผ๋ง๋ ๋ง์ ์ฅ์ ๋ฅผ ํ์ฉํ ์ ์๋๊ฐ? ๋น์ํด ์ฅ์ ๋ฅผ ํ์ฉํด์ผ ํ๋๊ฐ?
- ์ฑ๋ฅ: ์๊ตฌ๋๋ ์ฒ๋ฆฌ๋๊ณผ ์ง์ฐ ์๊ฐ์ ์ผ๋ง์ธ๊ฐ?
- ํ์ฅ์ฑ: ์์คํ ์ด ์ง์ํด์ผ ํ ๋ ธ๋์ ์๋ ์ผ๋ง์ธ๊ฐ?
- ๋ณต์ก์ฑ: ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ๊ณ ์ ์ง ๊ด๋ฆฌํ๊ธฐ๊ฐ ์ผ๋ง๋ ์ด๋ ค์ด๊ฐ?
- ๋ณด์: ์ ์ฌ์ ์ธ ๊ณต๊ฒฉ ๋ฒกํฐ๋ ๋ฌด์์ด๋ฉฐ, ์๊ณ ๋ฆฌ์ฆ์ด ์ด๋ฅผ ์ผ๋ง๋ ์ ๋ฐฉ์ดํ๋๊ฐ?
- ์๋์ง ์๋น: ์๋์ง ํจ์จ์ฑ์ด ์ค์ํ๊ฐ? (ํนํ ๋ธ๋ก์ฒด์ธ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๋ จ)
์์์ ์ธ๊ธ๋ ์๊ณ ๋ฆฌ์ฆ ๊ฐ์ ์ฃผ์ ์ฐจ์ด์ ์ ์์ฝํ ํ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
| ์๊ณ ๋ฆฌ์ฆ | ๋ด๊ฒฐํจ์ฑ | ์ฑ๋ฅ | ๋ณต์ก์ฑ | ์ฌ์ฉ ์ฌ๋ก |
|---|---|---|---|---|
| Paxos | ์ถฉ๋ ์ฅ์ ํ์ฉ | ์ต์ ํ๊ฐ ๋น๊ต์ ๋ณต์กํจ | ๋์ | ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์ ๊ธ ์๋น์ค |
| Raft | ์ถฉ๋ ์ฅ์ ํ์ฉ | Paxos๋ณด๋ค ๊ตฌํํ๊ณ ์ดํดํ๊ธฐ ์ฌ์ | ์ค๊ฐ | ๋ถ์ฐ ํค-๊ฐ ์ ์ฅ์, ๊ตฌ์ฑ ๊ด๋ฆฌ |
| ์์ ์ฆ๋ช | ๋น์ํด ์ฅ์ ํ์ฉ | ๋ฎ์ ์ฒ๋ฆฌ๋, ๋์ ์ง์ฐ ์๊ฐ, ๋์ ์๋์ง ์๋น | ์ค๊ฐ | ์ํธํํ (๋นํธ์ฝ์ธ) |
| ์ง๋ถ ์ฆ๋ช | ๋น์ํด ์ฅ์ ํ์ฉ | PoW๋ณด๋ค ๋์ ์ฒ๋ฆฌ๋, ๋ฎ์ ์ง์ฐ ์๊ฐ, ๋ฎ์ ์๋์ง ์๋น | ์ค๊ฐ | ์ํธํํ (์ด๋๋ฆฌ์ 2.0) |
| PBFT | ๋น์ํด ์ฅ์ ํ์ฉ | ๋์ ์ฒ๋ฆฌ๋, ๋ฎ์ ์ง์ฐ ์๊ฐ, ๊ทธ๋ฌ๋ ์ ํ๋ ํ์ฅ์ฑ | ๋์ | ํ๊ฐํ ๋ธ๋ก์ฒด์ธ, ์ํ ๋จธ์ ๋ณต์ |
์ค์ ์ฌ๋ก ๋ฐ ์์ฉ ๋ถ์ผ
ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ค์ํ ์ฐ์ ๋ถ์ผ์ ๊ด๋ฒ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ๋ฉ๋๋ค:
- ๋ธ๋ก์ฒด์ธ: ๋นํธ์ฝ์ธ์ด๋ ์ด๋๋ฆฌ์ ๊ฐ์ ์ํธํํ๋ ๋คํธ์ํฌ๋ฅผ ๋ณดํธํ๊ณ ํธ๋์ญ์ ์ ๊ฒ์ฆํ๊ธฐ ์ํด ํฉ์ ์๊ณ ๋ฆฌ์ฆ(๊ฐ๊ฐ PoW ๋ฐ PoS)์ ์์กดํฉ๋๋ค.
- ํด๋ผ์ฐ๋ ์ปดํจํ : ๊ตฌ๊ธ ์คํจ๋(Google Spanner)์ ์๋ง์กด ๋ค์ด๋๋ชจDB(Amazon DynamoDB)์ ๊ฐ์ ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฌ๋ฌ ์๋ฒ ๊ฐ์ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํฉ๋๋ค.
- ๊ธ์ต ์๋น์ค: ์ํ ๋ฐ ๊ธฐํ ๊ธ์ต ๊ธฐ๊ด์ ํธ๋์ญ์ ์ ์ฒ๋ฆฌํ๊ณ ์ ํํ ๊ณ์ข ์์ก์ ์ ์งํ๊ธฐ ์ํด ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํฉ๋๋ค.
- ํญ๊ณต ์ฐ์ : ํ๋ ํญ๊ณต๊ธฐ๋ ๋นํ ์ ์ด, ํญ๋ฒ ๋ฐ ํต์ ์ ์ํด ๋ถ์ฐ ์์คํ ์ ์์กดํฉ๋๋ค. ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ด๋ฌํ ์์คํ ์ ์์ ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ํ์์ ์ ๋๋ค. ์ฌ๋ฌ ๋นํ ์ ์ด ์ปดํจํฐ๊ฐ ๋๊ธฐ๋ฅ์ ๋์ํ์ฌ ์ ์ ํ ๊ฒฝ๋ก ์์ ์ ๋์ํด์ผ ํ๋ ์ํฉ์ ์์ํด ๋ณด์ญ์์ค.
- ์๋ฃ: ์ ์ ๊ฑด๊ฐ ๊ธฐ๋ก(EHR)์ ๊ฐ์ฉ์ฑ๊ณผ ์ ๊ทผ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ๋ถ์ฐ ์์คํ ์ ์ ์ฅ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ๋ฌ ์์น์์ ํ์ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ๊ณผ ์ผ๊ด์ฑ์ ์ ์งํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
- ๊ณต๊ธ๋ง ๊ด๋ฆฌ: ๋ณต์กํ ๊ณต๊ธ๋ง ์ ๋ฐ์ ๊ฑธ์ณ ์ํ๊ณผ ์์ฌ๋ฅผ ์ถ์ ํ๋ ค๋ฉด ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ๋ณด์ฅํ ์ ์๋ ๋ถ์ฐ ์์คํ ์ด ํ์ํฉ๋๋ค. ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ชจ๋ ๋น์ฌ์๊ฐ ๊ณต๊ธ๋ง์ ๋ํ ์ ํํ ์๊ฐ์ ๊ฐ๋๋ก ๋ณด์ฅํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
๊ณผ์ ์ ๋ฏธ๋ ๋ํฅ
์ต๊ทผ ๋ช ๋ ๋์ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ด ์๋นํ ๋ฐ์ ์ ์ด๋ฃจ์์ง๋ง, ์ฌ์ ํ ๊ทน๋ณตํด์ผ ํ ๋ช ๊ฐ์ง ๊ณผ์ ๊ฐ ์์ต๋๋ค:
- ํ์ฅ์ฑ: ๋ง์ ์์ ๋ ธ๋๋ฅผ ์ฒ๋ฆฌํ๋๋ก ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ํ์ฅํ๋ ๊ฒ์ ์ฌ์ ํ ๊ณผ์ ์ ๋๋ค. ๋ง์ ์๊ณ ๋ฆฌ์ฆ์ด ๋ ธ๋ ์๊ฐ ์ฆ๊ฐํจ์ ๋ฐ๋ผ ์ฑ๋ฅ ์ ํ๋ฅผ ๊ฒช์ต๋๋ค.
- ๋ณต์ก์ฑ: ์ผ๋ถ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ๊ณ ์ดํดํ๊ธฐ ๋ณต์กํ์ฌ ๋ฐฐํฌํ๊ณ ์ ์ง ๊ด๋ฆฌํ๊ธฐ ์ด๋ ต์ต๋๋ค.
- ์๋์ง ์๋น: ์์ ์ฆ๋ช ์๊ณ ๋ฆฌ์ฆ์ ์๋นํ ์์ ์๋์ง๋ฅผ ์๋นํ์ฌ ํ๊ฒฝ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํฉ๋๋ค.
- ๋น์ํด ์ฅ์ ํ์ฉ: ๋์ ๋น์จ์ ๋น์ํด ์ฅ์ ๋ฅผ ํ์ฉํ ์ ์๋ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ๋ฐํ๋ ๊ฒ์ ์ง์์ ์ธ ์ฐ๊ตฌ ๋ถ์ผ์ ๋๋ค.
ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ฏธ๋ ๋ํฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ํ์ด๋ธ๋ฆฌ๋ ํฉ์: ์๋ก ๋ค๋ฅธ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ฒฐํฉํ์ฌ ๊ฐ์ ์ ํ์ฉํ๊ณ ์ฝ์ ์ ์ํํฉ๋๋ค.
- ์์ ์ง๋ถ ์ฆ๋ช (DPoS): ํ ํฐ ๋ณด์ ์๊ฐ ํฌํ๊ถ์ ์์์ ๋ํ์์๊ฒ ์์ํ ์ ์๋๋ก ํ๋ PoS์ ๋ณํ์ ๋๋ค.
- ์ฐํฉ ๋น์ํด ํฉ์(FBA): ์ค์ ๊ธฐ๊ด ์์ด ๋ค๋ฅธ ์กฐ์ง๋ค์ด ๋ถ์ฐ ์์คํ ์ ์ฐธ์ฌํ ์ ์๋๋ก ํ๋ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ์คํ ๋ผ(Stellar)์ ๋ฆฌํ(Ripple)์ FBA์ ๋ณํ์ ์ฌ์ฉํฉ๋๋ค.
- ์ค๋ฉ(Sharding): ํ์ฅ์ฑ์ ๊ฐ์ ํ๊ธฐ ์ํด ๋ธ๋ก์ฒด์ธ์ ๋ ์๊ณ ๊ด๋ฆฌํ๊ธฐ ์ฌ์ด ์กฐ๊ฐ์ผ๋ก ๋๋๋ ๊ฒ์ ๋๋ค.
๊ฒฐ๋ก
ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ๋ขฐ์ฑ ์๊ณ ๋ด๊ฒฐํจ์ฑ์ ๊ฐ์ถ ๋ถ์ฐ ์์คํ ์ ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์์ ๋๋ค. ์ด๋ฅผ ํตํด ๋คํธ์ํฌ์ ๋ ธ๋๋ค์ด ํ๋ ฅํ์ฌ ์ง๋จ์ ์ผ๋ก ์์ฌ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ณ , ๋ฐ์ดํฐ ์ผ๊ด์ฑ๊ณผ ๋ณด์์ ๋ณด์ฅํฉ๋๋ค. ์ฌ๋ฌ ๊ฐ์ง ์ ํ์ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ด ์์ผ๋ฉฐ ๊ฐ๊ฐ ์ฅ๋จ์ ์ด ์์ง๋ง, ์๊ณ ๋ฆฌ์ฆ์ ์ ํ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํน์ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
๋ถ์ฐ ์์คํ ์ด ๊ณ์ ๋ฐ์ ํจ์ ๋ฐ๋ผ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ด๋ฌํ ์์คํ ์ ์ ๋ขฐ์ฑ๊ณผ ๋ณด์์ ๋ณด์ฅํ๋ ๋ฐ ์ ์ ๋ ์ค์ํ ์ญํ ์ ํ ๊ฒ์ ๋๋ค. ๋ค์ํ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์๋ฆฌ์ ์ฅ๋จ์ ์ ์ดํดํ๋ ๊ฒ์ ๋ถ์ฐ ์์คํ ์ ๊ตฌ์ถํ๊ฑฐ๋ ๋ค๋ฃจ๋ ๋ชจ๋ ์ฌ๋์๊ฒ ํ์์ ์ ๋๋ค.
์คํ ๊ฐ๋ฅํ ํต์ฐฐ๋ ฅ:
- ์์คํ ์๊ตฌ ์ฌํญ ํ๊ฐ: ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ๊ธฐ ์ ์ ๋ถ์ฐ ์์คํ ์ ๋ด๊ฒฐํจ์ฑ, ์ฑ๋ฅ, ํ์ฅ์ฑ ๋ฐ ๋ณด์ ์๊ตฌ ์ฌํญ์ ์ ์คํ๊ฒ ๊ณ ๋ คํ์ญ์์ค.
- ์ ํ๋ฆฝ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์์: ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฒ์ ์ ํ๋ ๊ฒฝ์ฐ Raft๋ Paxos์ ๊ฐ์ด ์ ํ๋ฆฝ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์์ํ์ญ์์ค. ์ด๋ฌํ ์๊ณ ๋ฆฌ์ฆ์ ์ฒ ์ ํ ํ ์คํธ๋์์ผ๋ฉฐ ๊ด๋ฒ์ํ ๋ฆฌ์์ค์ ์ง์์ ์ ๊ณตํฉ๋๋ค.
- ํ์ด๋ธ๋ฆฌ๋ ์ ๊ทผ ๋ฐฉ์ ๊ณ ๋ ค: ์๋ก ๋ค๋ฅธ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ฒฐํฉํ์ฌ ๊ฐ์ ์ ํ์ฉํ๊ณ ์ฝ์ ์ ์ํํ ์ ์๋ ๊ฐ๋ฅ์ฑ์ ํ์ํ์ญ์์ค.
- ์ต์ ์ฐ๊ตฌ ๋ํฅ ํ์ : ํฉ์ ์๊ณ ๋ฆฌ์ฆ ๋ถ์ผ๋ ๋์์์ด ๋ฐ์ ํ๊ณ ์์ผ๋ฏ๋ก ์ต์ ์ฐ๊ตฌ ๋ฐ ๊ฐ๋ฐ ๋ํฅ์ ํ์ ํ์ญ์์ค.