쉽게 읽는 Web3

블록체인 합의 알고리즘

벨라아빠 2024. 11. 25. 14:53

 

**합의 알고리즘(Consensus Algorithm)**은 분산 시스템에서 여러 참가자들이 동의할 수 있는 일관된 상태를 유지하기 위한 규칙이나 방법입니다. 특히 블록체인에서는 각 참가자(또는 노드)가 거래 기록을 검증하고 새로운 블록을 추가할 때, 서로 신뢰할 수 있도록 하는 중요한 역할을 합니다. 블록체인 네트워크는 중앙집중적인 기관 없이 여러 컴퓨터들이 참여하는 분산 시스템이기 때문에, 모든 노드가 동일한 데이터에 대해 동의해야만 신뢰할 수 있는 거래를 기록할 수 있습니다.

합의 알고리즘의 역할

  1. 데이터 일관성 유지: 합의 알고리즘의 가장 중요한 역할은 모든 네트워크 참여자가 동일한 트랜잭션 내역을 보유하도록 만드는 것입니다. 블록체인에서는 여러 개의 컴퓨터(노드)가 존재하기 때문에, 각 노드가 기록하는 데이터가 동일해야 신뢰성 있는 시스템이 됩니다.
  2. 부정행위 방지: 합의 알고리즘은 악의적인 노드가 부정행위를 하거나 트랜잭션을 위조하는 것을 방지합니다. 예를 들어, 트랜잭션을 두 번 보내는 이중 지불(double spend)을 막거나, 거짓된 거래 정보를 블록체인에 기록하려는 시도를 막습니다.
  3. 새로운 블록의 추가: 합의 알고리즘은 새로운 블록을 네트워크에 추가하는 규칙을 정의합니다. 네트워크 참가자들이 새로운 블록을 추가하려면, 대다수의 노드가 해당 블록에 동의해야 합니다.

합의 알고리즘의 종류

합의 알고리즘에는 여러 가지가 있으며, 각기 다른 방식으로 분산 네트워크에서 합의를 이끌어냅니다. 대표적인 합의 알고리즘의 종류를 설명하겠습니다.


1. 작업 증명(Proof of Work, PoW)

  • 역할: PoW는 비트코인에서 사용되는 합의 알고리즘으로, 새로운 블록을 생성하기 위해 컴퓨터가 복잡한 수학 문제를 푸는 작업을 수행하도록 합니다. 문제를 풀면 해당 블록에 대한 증명이 완료된 것으로 간주되고, 이를 다른 노드들이 인정하게 됩니다.
  • 특징:
    • 에너지 소모: 문제를 풀기 위해 많은 컴퓨팅 자원을 소모하므로 에너지 소모가 많습니다.
    • 보상: 문제를 먼저 푼 참가자(채굴자)는 블록을 추가하고, 그 대가로 암호화폐 보상을 받습니다.
  • 예시: 비트코인, 라이트코인

    여기서 푸는 수학문제의 계산결과가 생산적이지는 않음. 실제로 푼 복잡한 수학 문제가 뭔가 인류역사에 도움이 되지는 않는다는 뜻. 그렇기에 이를 보완하기 위한 대안 알고리즘 연구가 진행되고 있다고 함.

2. 지분 증명(Proof of Stake, PoS)

  • 역할: PoS는 토큰을 많이 보유한 사람(또는 노드)이 새로운 블록을 생성할 기회를 가지도록 하는 방식입니다. 보유한 토큰을 지분으로 사용하여 블록을 생성하고, 그 대가로 보상을 받습니다.
  • 특징:
    • 에너지 절약: PoW와 달리 복잡한 연산을 필요로 하지 않기 때문에 에너지를 적게 사용합니다.
    • 공정성: 보유한 지분이 많을수록 블록을 생성할 기회가 많지만, 이는 보유한 자산의 크기에 비례합니다.
  • 예시: 이더리움 2.0, 카르다노, 폴카닷

    혹시 지분이 졸라게 많아서, 많은 블록을 생성하면 어떻게 될까? 1. 지분이 막대한 참여자가 블록체인 네트워크를 사실상 통제하게 됨. 2. 지분이 막대한 참여자가 검열할 수 있음. 3. 과거 지분 기록을 바탕으로 새로운 체인을 생성(포크) 하여, 무결성에 위협. 4. 더 많은 보상을 받으므로, 새로운 참여자나 소규모 참여자는 네트워크에 기여할 유인이 줄어듦. 자본 집중 심화. 5. 거버넌스 문제 등등 문제가 많음. 이에 따라 많은 PoS 시스템은 이러한 단점을 해결하지 위해 추가적인 설계 요소를 도입함.

    • 슬래싱(Slashing): 악의적인 행동을 하면 지분의 일부를 소각하거나 몰수.
    • 지분 상한제: 한 계정이 소유한 지분이 특정 비율 이상일 경우, 블록 생성 기회를 제한.
    • 랜덤성 강화: 블록 생성자가 순전히 지분량에 따라 결정되지 않고, 추가적인 랜덤 요소를 도입하여 독점을 방지.
    • 보상 감소: 지분이 많을수록 보상 비율이 감소하도록 설계(비례 보상이 아닌 점감 보상).

3. 위임 지분 증명(Delegated Proof of Stake, DPoS)

  • 역할: DPoS는 PoS의 변형으로, 토큰 보유자들이 대표자(대표 노드)를 선출하고, 이 대표자들이 블록을 생성하도록 하는 방식입니다. 이렇게 하면 거래 검증을 빠르고 효율적으로 처리할 수 있습니다.
  • 특징:
    • 고속 거래 처리: 적은 수의 노드가 거래를 검증하므로 거래 속도가 빠르확장성이 뛰어납니다.
    • 분권화 수준: 블록 생성자 선정이 토큰 보유자의 투표에 의해 결정되므로, 일부 노드에게 집중될 위험이 있을 수 있습니다.
  • 예시: EOS, 트론, 스팀

    일부 노드에게 집중될 경우, 약간 지분증명과 비슷한 결이라고 봐야 함. 

 

4. 비잔틴 장애 허용(Practical Byzantine Fault Tolerance, PBFT)

  • 역할: PBFT는 일부 악의적인 노드가 있어도 네트워크가 올바르게 작동하도록 보장하는 합의 알고리즘입니다. 세 명 이상의 참여자가 서로 신뢰할 수 없다는 가정 하에, 일정 수의 노드가 동의하면 새로운 블록을 생성합니다.
  • 특징:
    • 빠른 처리: 각 블록에 대해 빠른 합의를 이끌어낼 수 있어 높은 처리 속도를 자랑합니다.
    • 에너지 효율적: PoW와 달리 에너지를 적게 소비하며, 빠르고 효율적으로 트랜잭션을 처리할 수 있습니다.
  • 예시: Hyperledger, Zilliqa

    좀더, 쉽게 설명
    비유: 비잔틴 장군 문제
    1. 장군들 사이의 통신이 불완전할 수 있다.
      • 어떤 장군은 다른 장군의 메시지를 받지 못할 수도 있습니다.
    2. 배신자가 있을 수 있다.
      • 몇몇 장군이 의도적으로 잘못된 메시지를 보내거나 협력을 방해하려 할 수도 있습니다.
    비잔틴 장애 허용이란, 이런 환경에서도 장군들(노드들)이 적절한 합의를 이루어, 네트워크가 올바르게 작동하도록 하는 메커니즘을 뜻합니다.
    블록체인에서의 BFT
    1. 노드가 고장난 경우: 네트워크 문제나 버그로 인해 일부 노드가 제대로 작동하지 않을 수 있습니다.
    2. 악의적인 노드가 있는 경우: 일부 노드가 의도적으로 잘못된 정보를 보내거나 네트워크를 속이려 할 수 있습니다.
    BFT는 이런 문제에도 불구하고, 나머지 노드들이 서로 협력해 정확한 정보를 기반으로 합의를 이룰 수 있도록 보장하는 기술입니다.
  • 블록체인의 경우, 네트워크에 있는 컴퓨터들(노드들)이 데이터를 검증하고 블록을 추가하는 역할을 합니다. 하지만 네트워크에는 다음과 같은 문제가 있을 수 있습니다:
  • 옛날에 여러 장군이 각각 다른 성벽 근처에 진을 치고 적을 공격하려고 했습니다. 이들은 성공하려면 모두 동시에 공격하거나 동시에 후퇴해야 했습니다. 그런데 문제가 있었습니다.

    **비잔틴 장애 허용(BFT)**이란, 네트워크 안에서 고장난 노드나 악의적인 노드가 있더라도, 올바른 노드들이 서로 협력하여 올바른 결정을 내릴 수 있도록 보장하는 시스템입니다.
    비잔틴 장애 허용이 중요한 이유
  • 블록체인이나 분산 네트워크는 중앙화된 관리자 없이 운영되기 때문에, 노드들 간의 신뢰가 중요합니다. BFT는 이런 신뢰를 보장해주는 핵심 기술로, Bitcoin, Ethereum, Cosmos 등 다양한 블록체인에서 사용됩니다.

 

 

5. 결합 합의(Proof of Authority, PoA)

  • 역할: PoA는 신뢰할 수 있는 참가자(일반적으로 인증된 노드)만 블록을 생성하도록 하는 합의 알고리즘입니다. 인증된 노드들은 정해진 권한을 갖고 새로운 블록을 생성할 수 있습니다.
  • 특징:
    • 빠른 처리: 블록 생성자가 정해져 있기 때문에 빠르게 합의를 이끌어낼 수 있습니다.
    • 분권화 부족: 노드가 중앙화되어 있을 수 있기 때문에 분권화가 낮은 시스템에서 사용됩니다.
  • 예시: VeChain, POA Network

6. Proof of Space and Time

  • 역할: 이 알고리즘은 디스크 공간을 사용하는 방식입니다. 트랜잭션을 처리하는 데 필요한 **디스크 공간을 "증명"**하는 방식으로, 자원을 활용한 검증이 이루어집니다.
  • 특징:
    • 저전력: 에너지 소모가 적고, 저전력 장치로도 참여할 수 있습니다.
  • 예시: Chia

합의 알고리즘의 선택 기준

합의 알고리즘을 선택하는 것은 블록체인의 목적과 요구사항에 따라 다릅니다. 예를 들어:

  • 보안을 가장 중요시한다면 PoW나 PoS가 적합할 수 있습니다.
  • 속도와 확장성이 중요하다면 DPoS나 PBFT가 더 나은 선택이 될 수 있습니다.
  • 에너지 효율성을 중요시한다면 PoS나 Proof of Space와 같은 방식이 유리합니다.

결론

합의 알고리즘은 블록체인 네트워크에서 신뢰와 일관성을 보장하는 핵심 기술입니다. 각 알고리즘은 서로 다른 방식으로 거래 검증, 블록 생성, 보상 지급을 처리하고, 선택되는 방식에 따라 속도, 보안, 에너지 효율성 등에 차이가 있습니다. 블록체인의 목적에 맞는 합의 알고리즘을 선택하는 것이 매우 중요합니다.