πŸ‡°πŸ‡· μΉ΄λ₯΄λ‹€λ…Έ 배우기: ν•©μ˜ μ„€λͺ…

ν•©μ˜ μ„€λͺ…

ν•©μ˜λŠ” 블둝체인을 μš΄μ˜ν•˜λŠ” 데 κ΄€λ ¨λœ λͺ¨λ“  이듀이 λ‹€μˆ˜μ˜ μ˜κ²¬μ— λ„λ‹¬ν•˜λŠ” κ³Όμ •μž…λ‹ˆλ‹€. 생성할 블둝, 채택할 체인, λ„€νŠΈμ›Œν¬μ˜ ν†΅μΌλœ μƒνƒœλ₯Ό κ²°μ •ν•˜κΈ° μœ„ν•΄μ„œλŠ” ν•©μ˜κ°€ 이루어져야 ν•©λ‹ˆλ‹€. ν•©μ˜ ν”„λ‘œν† μ½œμ€ κ°œλ³„ λ…Έλ“œκ°€ 원μž₯ μ‹œμŠ€ν…œμ˜ ν˜„μž¬ μƒνƒœλ₯Ό ν‰κ°€ν•˜κ³  ν•©μ˜μ— λ„λ‹¬ν•˜λŠ” 방법을 κ²°μ •ν•©λ‹ˆλ‹€.

블둝체인은 λ‹€λ₯Έ μ°Έμ—¬μžλ“€μ΄ μ‹œμŠ€ν…œμ— μ œμΆœν•œ νŠΈλžœμž­μ…˜μ„ λΈ”λ‘μœΌλ‘œ λ¬Άμ–΄ μžμ‹ μ˜ 체인(블둝 μ‹œν€€μŠ€)에 μΆ”κ°€ν•  수 μžˆλ„λ‘ ν•¨μœΌλ‘œμ¨ ν•©μ˜λ₯Ό λ„μΆœν•©λ‹ˆλ‹€. λˆ„κ°€ μ–Έμ œ 블둝을 생성할 수 μžˆλŠ”μ§€, 좩돌이 λ°œμƒν•  경우(예: 두 λͺ…μ˜ μ°Έμ—¬μžκ°€ 체인의 같은 지점에 μ„œλ‘œ λ‹€λ₯Έ 블둝을 μΆ”κ°€ν•˜λŠ” 경우) μ–΄λ–»κ²Œ μ²˜λ¦¬ν•  것인지λ₯Ό κ²°μ •ν•˜λŠ” 것이 λ‹€μ–‘ν•œ ν•©μ˜ ν”„λ‘œν† μ½œμ˜ λͺ©μ μž…λ‹ˆλ‹€.

ν”„λ‘œν† μ½œμ€ λ‹€μŒκ³Ό 같은 μ„Έ 가지 μ£Όμš” 역할을 가지고 μžˆμŠ΅λ‹ˆλ‹€.

  • 리더 확인을 μˆ˜ν–‰ν•˜κ³  블둝 생성 μ—¬λΆ€λ₯Ό κ²°μ •
  • 체인 선택 κ²°μ •
  • μƒμ„±λœ 블둝 검증

우둜보둜슀 μ†Œκ°œ

μΉ΄λ₯΄λ‹€λ…ΈλŠ” 사이버 λ³΄μ•ˆ 및 μ•”ν˜Έν•™ λΆ„μ•Ό 졜고 μˆ˜μ€€μ˜ 컨퍼런슀 및 μΆœνŒλ¬Όμ— λ°œν‘œλœ, λ™λ£Œ κ²€ν† λ₯Ό 거친 μ—¬λŸ¬ λ…Όλ¬Έκ³Ό ν•¨κ»˜ 곡개된 우둜보둜슀(Ouroboros) ν•©μ˜ ν”„λ‘œν† μ½œ μœ„μ—μ„œ μ‹€ν–‰λ©λ‹ˆλ‹€. μž‘μ—… 증λͺ…(PoW) ν”„λ‘œν† μ½œμ—μ„œμ²˜λŸΌ 'μ±„κ΅΄μžβ€™κ°€ λ³΅μž‘ν•œ 계산 방정식을 ν’€μ–΄ μƒˆλ‘œμš΄ 블둝을 μƒμ„±ν•˜κ³  κ°€μž₯ λ¨Όμ € 블둝을 μƒμ„±ν•œ μ΄μ—κ²Œ 보상을 μ£ΌλŠ” λŒ€μ‹ , 지뢄 증λͺ…(PoS)은 λ„€νŠΈμ›Œν¬μ—μ„œ κ΄€λ¦¬ν•˜λŠ” 지뢄에 따라 μƒˆλ‘œμš΄ 블둝을 생성할 μŠ€ν…Œμ΄ν¬ 풀을 μ„ νƒν•©λ‹ˆλ‹€.

우둜보둜슀 μž‘λ™ 방식

μš°λ‘œλ³΄λ‘œμŠ€λŠ” μΉ΄λ₯΄λ‹€λ…Έμ˜ μ‹œκ°„μ„ μ—ν¬ν¬λ‘œ λ‚˜λˆ„κ³ , 각 에포크λ₯Ό 슬둯으둜 λ‚˜λˆ•λ‹ˆλ‹€. μŠ¬λ‘―μ€ 블둝을 생성할 수 μžˆλŠ” 짧은 κΈ°κ°„μž…λ‹ˆλ‹€. 리더 μ„ μΆœ 과정을 λ™μ μœΌλ‘œ λ³€ν•˜λŠ” 지뢄 뢄포에 맞게 μ‘°μ •ν•˜κΈ° μœ„ν•΄μ„œλŠ” μŠ¬λ‘―μ„ μ—ν¬ν¬λ‘œ κ·Έλ£Ήν™”ν•˜λŠ” 것이 ν•΅μ‹¬μž…λ‹ˆλ‹€.

우둜보둜슀 λ””μžμΈμ˜ 핡심은 곡격이 μžˆμ„ λ•Œμ—λ„ λ³΄μ•ˆμ„ μœ μ§€ν•΄μ•Ό ν•œλ‹€λŠ” μ μž…λ‹ˆλ‹€. λ”°λΌμ„œ ν”„λ‘œν† μ½œμ€ κ³΅κ²©μžκ°€ λΈ”λ‘μ²΄μΈμ˜ λ³€ν˜•λœ 버전을 μ „νŒŒν•˜λŠ” 것을 λ°©μ§€ν•˜κΈ° μœ„ν•΄ 내결함성이 λ‚΄μž₯λ˜μ–΄ 있으며, κ³΅κ²©μžκ°€ μž„μ˜μ˜ λ©”μ‹œμ§€λ₯Ό λͺ¨λ“  μ°Έμ—¬μžμ—κ²Œ μ–Έμ œλ“  보낼 수 μžˆλ‹€κ³  κ°€μ •ν•©λ‹ˆλ‹€. 이 ν”„λ‘œν† μ½œμ€ μ •μ§ν•œ μ°Έμ—¬μž(즉, ν”„λ‘œν† μ½œμ„ λ”°λ₯΄λŠ” μ°Έμ—¬μž)κ°€ 51% μ΄μƒμ˜ 지뢄을 λ³΄μœ ν•˜λŠ” ν•œ, μ†Œμœ„ 동기 μ„€μ •(즉, λ©”μ‹œμ§€ 전달 μ‹œκ°„μ„ κ°•λ ₯ν•˜κ²Œ 보μž₯ν•˜λŠ” μ„€μ •) ν•˜μ—μ„œ λ³΄μ•ˆμ΄ 보μž₯λ©λ‹ˆλ‹€.

각 μŠ¬λ‘―λ§ˆλ‹€ 슬둯 리더가 μ„ μΆœλ˜λ©°, 슬둯 λ¦¬λ”λŠ” 체인에 블둝을 μΆ”κ°€ν•˜κ³  λ‹€μŒ 슬둯 λ¦¬λ”μ—κ²Œ 블둝을 전달할 μ±…μž„μ΄ μžˆμŠ΅λ‹ˆλ‹€. μƒˆλ‘œμš΄ 슬둯 λ¦¬λ”λŠ” ν”„λ‘œν† μ½œμ„ μ „λ³΅ν•˜λ €λŠ” μ λŒ€μ μΈ μ‹œλ„λ‘œλΆ€ν„° λ³΄ν˜Έν•˜κΈ° μœ„ν•΄ μˆ˜μ‹ λœ 체인의 λ§ˆμ§€λ§‰ λͺ‡ 블둝을 μž„μ‹œ λΈ”λ‘μœΌλ‘œ κ°„μ£Όν•΄μ•Ό ν•˜λ©°, 미리 μ§€μ •ν•œ μž„μ‹œ 블둝 μˆ˜λ³΄λ‹€ μ•žμ„  μ²΄μΈλ§Œμ„ ν™•μ •λœ λΈ”λ‘μœΌλ‘œ κ°„μ£Όν•©λ‹ˆλ‹€. 이λ₯Ό ν™•μ • 지연(settlement delay)이라고도 ν•©λ‹ˆλ‹€. 무엇보닀도 μ΄ν•΄κ΄€κ³„μžκ°€ μ˜€ν”„λΌμΈ μƒνƒœκ°€ λ˜μ–΄λ„ ν™•μ • 지연 μ‹œκ°„λ³΄λ‹€ 길지 μ•Šλ‹€λ©΄ 블둝체인에 동기화될 수 μžˆλ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€.

우둜보둜슀 ν”„λ‘œν† μ½œ μƒμ—μ„œ 각 λ„€νŠΈμ›Œν¬ λ…Έλ“œλŠ” νŠΈλžœμž­μ…˜ λ©€ν’€(mempool, νŠΈλžœμž­μ…˜μ΄ 기쑴의 νŠΈλžœμž­μ…˜κ³Ό μΌμΉ˜ν•˜λŠ” 경우 μΆ”κ°€ν•˜λŠ” κ³³)κ³Ό λΈ”λ‘μ²΄μΈμ˜ 사본을 μ €μž₯ν•©λ‹ˆλ‹€. λ…Έλ“œκ°€ 더 κΈ΄ 유효 체인을 μΈμ§€ν•˜κ²Œ 되면 λ‘œμ»¬μ— μ €μž₯된 블둝체인을 λŒ€μ²΄ν•©λ‹ˆλ‹€.

μ—¬κΈ°μ„œ 우둜보둜슀의 λ‹€μ–‘ν•œ 버전에 λŒ€ν•΄ μžμ„Ένžˆ μ•Œμ•„λ³΄μ„Έμš”.


* 원문: https://docs.cardano.org/learn/consensus-explained
* λ²ˆμ—­: Ilhun@CryptoVeri :twitter: enics_sky@naver.com