합의 알고리즘(Consensus Algorithm)

워뇽쿤·2022년 9월 15일
0

블록체인(BlockChain)

목록 보기
10/13
post-thumbnail

1. 합의 알고리즘

  • 다수의 참여자들이 통일된 의사결정을 하기 위해 사용하는 알고리즘
  • 합의 모델, 합의 방식, 합의 메커니즘 또는 합의 프로토콜 이라고도 불림
  • 블록체인의 데이터는 중앙화된 서버 대신 전세계에 흩어진 수많은 노드에 보관되기 때문에, 각각의 노드들은 블록에 기록하는 데이터가 위변조되지 않은 원본이라는 것을 상호간에 합의하는 과정이 필요하다.

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

  • 블록생성 시간동안 가장 많은 해시파워를 제공한 노드가 블록을 생성할 수 있도록 설계되어있음
    (좋은 장비로 블록을 생성하려고하면 되는 구조 -> 그래픽카드 가격 상승의 원인)
    • 비트코인, 라이트코인 등 사용
  • 작업증명은 시빌 공격과 같은 블록체인 네트워크에 대한 각종 공격을 막을 수 있다고 증명된 유일한 알고리즘
    • 시빌 공격 : 공격자가 실제로는 한명인데 마치 여러명인것처럼 속여서 네트워크상의 여러 노드를 제어함
  • PoW의 장단점

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

  • 지분을 많이 가지고 있는 노드에게 블록을 생성할 권한을 준다.
    • 쉽게 말해 코인?을 많이 가지고있으면 블록에 생성할 권한을 준다
    • 이더리움이 PoS로 변경 중
  • 에너지 소모가 적고, 코인을 가진 노드 누구나 네트워크에 허가없이 참여하기 때문에 분산화가 더 잘되어 많은 노드가 의사결정 과정에 쉽게 참여할 수 있다.
  • PoS의 장단점

1.3. 위임 지분 증명(DPoS, Delegeted Proof of Stake)

  • PoS에서 변형된 것으로, 시스템의 지분을 가진 각 노드가 투표를 통해 트랜잭션의 유효성 검사를 다른 노드에 위임하여 증명하는 개념
    • 이오스(EOS)에서 사용
  • 모든 노드의 자격을 가진 주주들이 블록생성에 참여하는 대신, 네트워크의 모든 노드의 투표 결과로 선출한 '상위 노드'에게 권한을 위임해 합의하도록 하는 방식

1.4. 비잔틴 장애 허용(BFT, Byzantine Fault Tolerance)

  • 장애가 있더라도 전체의 3분의 1을 넘지 않는다면 시스템이 정상 작동하도록 허용하는 합의 알고리즘

1.5. 프랙티컬 비잔틴 장애 허용(PBFT, Practical Byzantine Fault Tolerance)

  • 여러 노드로 구성된 네트워크에서 악의적 공격을 방어하기 위해 만들어짐
  • 네오, 질리카, 하이퍼레저, R3, ITC, 텐더민트 등에서 사용

1.6. 합의 알고리즘의 종류와 장단점 (정리)

profile
취미로 개발하기 @wonyongkoon

0개의 댓글