πŸ”—
Blockchain
  • Blockchain
  • Blockchain Overview
    • Byzantine Generals Problem
    • The emergence of blockchain
    • Blockchain vs Bitcoin
    • Blockchain Structure
    • Blockchain examples
    • Blockchain Consensus
  • Bitcoin
    • Bitcoin
    • (Option) Bitcoin Whitepaper
    • Proof of Work
    • Transaction
    • Unspent Transaction Output
    • Mining
    • Wallet
    • Signature & Verification
    • Merkle Tree
    • Bitcoin Network
    • Consensus Rule Changes
    • Contracts
  • Ethereum
    • Ethereum
    • (Option) Ethereum Whitepaper
    • Web2 vs Web3
    • Smart Contract
    • Solidity
    • Ethereum Virtual Machine (EVM)
    • Accounts
    • Gas
    • (ETH2) Proof of Stake
    • (ETH2) Shard Chain
  • Ethereum Tutorials
    • Geth
    • CryptoZombies
    • Build DeFi App
    • Build Decentralized Bank
  • Ethereum Development Tools
    • Truffle
  • Golang-Blockchain
    • Goμ–Έμ–΄ 블둝체인
    • #1 Blocks and Chain
    • #2 Proof-of-Work
    • #3 Save blockchain persistently
    • #4 Transaction Basic
    • #5 Wallet
    • #6 Transaction Advanced
    • #7 UTXO management
    • #8 Merkle Tree
    • #9 Network 1
    • #10 Network 2
    • #11 p2p network
    • #12 Peer Discovery
    • #13 Console
  • Cosmos
    • Tutorials
  • Binance
    • Binance
  • DeFi
    • DeFi
    • DEX
    • Uniswap
    • Impermanent Loss
  • NFT
    • NFT
    • NFT Marketplace
    • NFT Virtual World
  • Common Algorithms
    • Hash
    • Cryptography
    • Consensus Algorithm
    • Distributed Ledger
Powered by GitBook
On this page
  • λΆ„μ‚°μ‹œμŠ€ν…œκ³Ό 블둝체인
  • 레슬리 λž¨ν¬νŠΈμ™€ λΉ„μž”ν‹°μ›€ μž₯κ΅° 문제
  • λΉ„μž”ν‹°μ›€ μž₯κ΅° 문제의 κ°œμš”
  • λΉ„μž”ν‹°μ›€ μž₯κ΅° 문제
  • 렘포트의 해법
  • λΉ„μž”ν‹°μ›€ λ¬Έμ œμ™€ 블둝체인은 무슨 상관?

Was this helpful?

  1. Blockchain Overview

Byzantine Generals Problem

What is Byzantine Generals Problem?

PreviousBlockchainNextThe emergence of blockchain

Last updated 3 years ago

Was this helpful?

λΆ„μ‚°μ‹œμŠ€ν…œκ³Ό 블둝체인

κ³Όκ±°μ—λŠ” ν•œκ°œμ˜ μ»΄ν“¨ν„°λ‘œ λͺ¨λ“  μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμ—ˆμ§€λ§Œ μ‹œκ°„μ΄ μ§€λ‚˜λ©΄μ„œ ν•˜λ‚˜μ˜ λ¨Έμ‹ μ˜ μ»΄ν“¨νŒ… μžμ› 이상을 ν•„μš”λ‘œ ν•˜λŠ” μž‘μ—…μ΄ λ“±μž₯ν–ˆλ‹€. λΆ„μ‚° μ‹œμŠ€ν…œμ€ 이런 μž‘μ—…μ„ μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ μ—¬λŸ¬ 컴퓨터가 같이 λ™μž‘ν•˜λŠ” μ‹œμŠ€ν…œμ΄λ‹€. λΉ…ν…Œν¬ κΈ°μ—…λ“€μ˜ 데이터 μ„Όν„°λŠ” μ—„μ²­λ‚œ 수의 μ„œλ²„λ“€μ΄ μ„œλ‘œ ν˜‘λ ₯ν•˜μ—¬ 일을 μ²˜λ¦¬ν•œλ‹€.

블둝체인은 λΆ„μ‚°μ‹œμŠ€ν…œκ³Ό μœ μ‚¬ν•˜λ‹€. λ‚˜μ€‘μ— λ‹€μ‹œ μ„€λͺ…ν•˜κ² μ§€λ§Œ, 블둝체인은 기본적으둜 νƒˆμ€‘μ•™ν™” μ‹œμŠ€ν…œ(decentralized system)이닀. 블둝체인 λ„€νŠΈμ›Œν¬μ— μ†ν•œ λ…Έλ“œλ“€μ΄ μ„œλ‘œ κ²°κ³Όλ₯Ό 보고 ν•©μ˜ν•˜λŠ” 블둝체인 μ‹œμŠ€ν…œμ€ 기쑴의 λΆ„μ‚° μ‹œμŠ€ν…œ λΆ„μ•Όμ—μ„œμ˜ 연ꡬλ₯Ό λ°”νƒ•μœΌλ‘œ λ°œμ „ν–ˆλ‹€.

레슬리 λž¨ν¬νŠΈμ™€ λΉ„μž”ν‹°μ›€ μž₯κ΅° 문제

레슬리 λž¨ν¬νŠΈλŠ” λΆ„μ‚° μ‹œμŠ€ν…œμ˜ 아버지라고 λΆˆλ¦¬λŠ” 컴퓨터 κ³΅ν•™μžμ΄λ‹€. λž¨ν¬νŠΈλŠ” λΆ„μ‚° μ‹œμŠ€ν…œμ— λŒ€ν•œ μ „λ°˜μ μΈ 연ꡬλ₯Ό μ§„ν–‰ν–ˆλ‹€. λΆ„μ‚° μ‹œκ³„, νŒ©μ†ŒμŠ€ μ•Œκ³ λ¦¬μ¦˜, μ „μžμ„œλͺ… λ“±μ˜ 논문을 λ°œν‘œν–ˆλ‹€. κ·Έ 외에도 2013년에 νŠœλ§μƒμ„ μˆ˜μƒν–ˆκ³ , LaTeX(λ ˆμ΄ν…)을 λ§Œλ“  업적이 μžˆλ‹€.

κ·Έ 쀑 ν•œ λ…Όλ¬Έ()은 λΉ„μž”ν‹°μ›€ μž₯κ΅° λ¬Έμ œμ— λŒ€ν•˜μ—¬ 닀룬닀.

λΉ„μž”ν‹°μ›€ μž₯κ΅° 문제의 κ°œμš”

λΉ„μž”ν‹°μ›€μ˜ λΆ€λŒ€λŠ” μ—¬λŸ¬ λΆ„λŒ€λ‘œ λ‚˜λ‰˜μ–΄ 적ꡰ을 λ‘˜λŸ¬ μ‹Έκ³  μžˆλ‹€. 각 λΆ„λŒ€λŠ” 각 λΆ„λŒ€μ˜ μž₯ꡰ이 μ§€νœ˜ν•œλ‹€. μž₯ꡰ은 전령을 ν†΅ν•΄μ„œ λ‹€λ₯Έ λΆ„λŒ€μ˜ μž₯κ΅°κ³Ό μ†Œν†΅ν•  수 μžˆλ‹€. 적ꡰ의 λ™νƒœλ₯Ό μ‚΄νŽ΄λ³΄κ³  μž₯ꡰ은 μ„œλ‘œ ν†΅μ‹ ν•΄μ„œ 곡격할지 말지 ν•˜λ‚˜μ˜ ν•©μ˜μ μ— 도달해야 ν•œλ‹€. ν•˜μ§€λ§Œ μž₯κ΅° 쀑 λͺ‡λͺ…은 이듀이 ν•©μ˜μ— λ„λ‹¬ν•˜μ§€ λͺ»ν•˜λ„둝 ν•˜λŠ” λ°°μ‹ μžμ΄λ‹€.

λΉ„μž”ν‹°μ›€ λ¬Έμ œμ—λŠ” 두가지 κ·œμΉ™μ΄ μžˆλ‹€. μ•„λž˜ 두 κ·œμΉ™μ„ λ§Œμ‘±ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μ„ μ°Ύμ•„μ•Όν•œλ‹€.

  1. μΆ©μ„±μŠ€λŸ¬μš΄ μž₯ꡰ은 같은 행동을 μ·¨ν•΄μ•Όν•œλ‹€. 즉, μΆ©μ„±μŠ€λŸ¬μš΄ μž₯ꡰ은 닀같이 κ³΅κ²©ν•˜κ±°λ‚˜ 닀같이 ν›„ν‡΄ν•œλ‹€. λ°°μ‹ μžλ“€μ€ λ§ˆμŒλŒ€λ‘œ 행동해도 상관없닀.

  2. 적은 수의 λ°°μ‹ μžλ“€μ΄ μΆ©μ„±μŠ€λŸ¬μš΄ μž₯ꡰ듀이 잘λͺ»λœ 결정을 ν•˜κ²Œ ν•˜λ©΄ μ•ˆ λœλ‹€.

논문에 μ˜ν•˜λ©΄ 이 쑰건은 κ²°κ΅­ μ•„λž˜μ˜ 쑰건으둜 λ°”κΏ” 말할 수 μžˆλ‹€. (λ…Όλ¬Έ μ°Έκ³ )

  1. v(i)λ₯Ό μžμ‹ μ΄ μ•Œκ³ μžˆλŠ” i번째 μž₯ꡰ의 결정이라고 ν•œλ‹€λ©΄, λͺ¨λ“  μž₯ꡰ은 μ„œλ‘œ 같은 v(i)λ₯Ό κ°€μ Έμ•Όν•œλ‹€.

  2. λ§Œμ•½ i번째 μž₯ꡰ이 μΆ©μ„±μŠ€λŸ¬μš΄ μž₯ꡰ이라면, κ·Έκ°€ 보낸 메세지와 v(i)λŠ” μΌμΉ˜ν•΄μ•Ό ν•œλ‹€.

μ—¬κΈ°μ„œ i번째 μž₯ꡰ을 사령관(commander)라고 λΆ€λ₯΄λ©΄ κ²°κ΅­ λΉ„μž”ν‹°μ›€ μž₯κ΅° λ¬Έμ œλŠ” μ•„λž˜μ™€ 같이 μ •λ¦¬λœλ‹€.

λΉ„μž”ν‹°μ›€ μž₯κ΅° 문제

사령관은 그의 λΆ€ν•˜ n-1λͺ…μ—κ²Œ λͺ…령을 μ „λ‹¬ν•˜λŠ”λ°, μ•„λž˜λ₯Ό λ§Œμ‘±ν•΄μ•Ό ν•œλ‹€. μ–΄λ–»κ²Œ λ©”μ„Έμ§€λ₯Ό μ£Όκ³  λ°›μ•„μ•Όν• κΉŒ?

  1. λͺ¨λ“  μΆ©μ„±μŠ€λŸ¬μš΄ λΆ€ν•˜λŠ” 같은 λͺ…령을 μˆ˜ν–‰ν•˜κ³ ,

  2. 사령관이 μΆ©μ„±μŠ€λŸ½λ‹€λ©΄, λͺ¨λ“  μΆ©μ„±μŠ€λŸ¬μš΄ λΆ€ν•˜λŠ” κ·Έ λͺ…령에 λ”°λ₯Έλ‹€.

렘포트의 해법

λ ˜ν¬νŠΈλŠ” λ…Όλ¬Έμ—μ„œ ꡬ두 λ©”μ„Έμ§€(Oral Message), μ„œλͺ…λœ λ©”μ„Έμ§€(Signed Message)의 κ²½μš°μ— λŒ€ν•œ 해법을 μ œμ‹œν•œλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ λ…Όλ¬Έμ—μ„œ μ‚΄νŽ΄λ³΄μž.

λΉ„μž”ν‹°μ›€ λ¬Έμ œμ™€ 블둝체인은 무슨 상관?

λΉ„μž”ν‹°μ›€ λ¬Έμ œμ—μ„œ μ‚¬λ Ήκ΄€μ˜ λͺ…령을 인풋(Input), λΆ€ν•˜λ₯Ό ν”„λ‘œμ„Έμ„œ(processors), λ°°μ‹ μžλ₯Ό μ˜€μž‘λ™ν•˜λŠ” ν”„λ‘œμ„Έλ‘œ 바꿔보면 λΉ„μž”ν‹°μ›€ λ¬Έμ œλŠ” μ˜¬λ°”λ₯Έ 인풋을 받은 ν”„λ‘œμ„Έμ„œλŠ” μ˜€μž‘λ™ν•˜λŠ” ν”„λ‘œμ„Έκ°€ μžˆλ”λΌλ„ 항상 μ˜¬λ°”λ₯Έ 아웃풋을 λ„μΆœν•΄μ•Ό 함을 닀루고 μžˆμŒμ„ μ•Œ 수 μžˆλ‹€.

더 λ‚˜μ•„κ°€μ„œ λΉ„μž”ν‹°μ›€ λ¬Έμ œμ—μ„œ μ‚¬λ Ήκ΄€μ˜ λͺ…령을 거래(transaction), λΆ€ν•˜λ₯Ό 블둝체인 λ„€νŠΈμ›Œν¬μ— μ°Έμ—¬ν•œ λ…Έλ“œ(Node) ν˜Ήμ€ 컴퓨터, λ°°μ‹ μžλ₯Ό 곡격자(Hacker) 보면 λΉ„μž”ν‹°μ›€ λ¬Έμ œλŠ” λΈ”λ‘μ²΄μΈμ—μ„œ κ³΅κ²©μžκ°€ μ†Œμˆ˜ μ‘΄μž¬ν•˜λ”λΌλ„ λ…Έλ“œκ°€ 단 ν•˜λ‚˜μ˜ ν•©μ˜λ₯Ό λ„μΆœν•˜λŠ” 것에 λŒ€ν•œ 문제둜 λ³Ό 수 μžˆλ‹€.

블둝체인은 이 문제λ₯Ό ν•΄κ²°ν•˜λŠ” ν•˜λ‚˜μ˜ 해법이닀.

λΈ”λ‘μ²΄μΈλ§Œμ΄ 이 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 것이 μ•„λ‹ˆλ‹€. ν™˜κ²½μ— 따라 μ—¬λŸ¬κ°€μ§€ λ³€μˆ˜κ°€ μ‘΄μž¬ν•˜κ³  (μ°Έμ—¬ν•˜λŠ” λ…Έλ“œλ“€μ΄ μ–Όλ§ˆλ‚˜ λ§Žμ€ μ§€, λ„€νŠΈμ›Œν¬κ°€ λŠκ²¨λ„ λ³΅κ΅¬λ˜μ–΄μ•Ό ν•˜λŠ”μ§€ λ“±...) 이에 λ”°λΌμ„œ ν•©μ˜λ₯Ό λ„μΆœν•˜λŠ” 방법 λ˜ν•œ 달라진닀.

Last update: 04/07/2021

μ°Έκ³ :

http://www.distributedsystemscourse.com/
http://people.cs.uchicago.edu/~shanlu/teaching/33100_wi15/papers/byz.pdf
Byzantine Generals Problem by Lamport
μ°©ν•œ 곰듀은 같은 결정을 λ‚΄λ €μ•Όν•œλ‹€. http://www.distributedsystemscourse.com/