블록체인 합의 알고리즘

  • 합의: 최소 2명 이상 특정 문제 해결을 위해 결과에 도달하는 과정 (다수결 비율에 따라 결정)

  • 합의 알고리즘은 기존 알고리즘의 단점을 보완하기 위해 계속해서 새롭게 나오고 있다.



작업 증명 (PoW, Proof of Work)


한이음 ICT 멘토링 - 하이퍼레저 패브릭 강의 자료 일부



  • 내가 얼마나 일을 많이 했느냐에 따라 보상을 받는 방식이다.

  • 자본주의 사상에 맞는 증명 방식

  • 블록체인의 블록 사이즈 한계 때문에 거래량과 거래 속도에 제한이 있다.

  • 일을 하기 위해 자원을 많이 필요로 하기 때문에 전기 에너지 소모가 크다.

  • 채굴 보상보다 더 많은 수익을 얻어야 할 만한 가치가 있다.

    • 보통 전기가 저렴한 나라에서 대량 채굴을 한다.
  • 빈익빈 부익부 현상이 발생한다.

    • 블록을 많이 생성하는 사람이 계속해서 생성할 확률이 높다.
  • 수학 문제를 가장 빨리 푸는 사람에게 보상해주는 개념이다.

  • 비트코인의 경우 약 10분 정도 안에 풀릴 수 있도록 난이도를 조절하였으며, 4년마다 반감기를 가진다.



지분 증명 (PoS, Proof of Stake)


  • 내가 가진 지분이 어느 정도냐에 따라 보상을 받는 비율이 결정된다.

  • 합계 노드가 51%를 넘지 못하면 블록을 생성할 수 없는 구조이다.

  • PoW 방식에 비해 비용이 많이 들지 않는다.

  • 수학 문제를 풀게 되는데 많은 지분의 소유자가 더 쉬운 난이도의 문제를 풀게 된다.

  • 빈익빈 부익부 현상이 발생한다.

    • 지분이 많은 사람이 계속해서 블록을 생성할 확률이 높다.

  • Nothing at Stake: 자산 증명을 하는 데 있어 한계 비용(Marginal cost)이 없다.



위임 지분 증명 (DPoS, Delegated PoS)


  • 내 권리를 누군가에게 양도하여 특정 인원에게만 PoS를 할 수 있도록 권한을 위임하는 방식이다.

  • PoS에 비해 적은 노드 수로 높은 확장성을 가지고, 인원이 적기 때문에 거래 속도가 빠르다.

  • 대표를 잘못 선출하게 되면 나머지 사람들이 피해를 받을 가능성이 높다.


  • DPoS는 라운드 로빈 방식으로 블록을 생성한다.
    * 라운드 로빈 방식: 트랜잭션이 들어왔을 때 그것을 처리하기 위해 자원을 확보해야 하는데 OS가 자원을 최대한 공평하게 사용할 수 있도록 노드들에게 번갈아가면서 자원을 할당하는 방식이다.

  • DPoS 블록 대표자 수는 홀수로 운영된다.

  • 올바른 대표자 선출을 위해 본인이 누군지 밝혀야 한다는 딜레마가 있다.

  • 모든 사람이 투표에 참여한다는 보장이 없다.



신분 증명 (권한 증명, PoA, Proof of Authority)


권한을 가진 사람만이 합의에 참여하는 방식이다.



PBFT (Permissioned BFT, 비잔틴 장군 문제)


  • A라는 장군이 멀리 떨어진 곳에 있는 B장군에게 같이 성을 공격하자는 협공의 전령을 보냈는데 메시지를 주고받는 와중에 시간적 문제, 장소적 문제 등을 바탕으로 서로 간에 신뢰할 수 있는지에 대해 고민하는 과정에서부터 도출되어 발전하였다.
    합의를 하는 과정에서 악의적인 행동을 할 수 있는 사람을 걸러내는 방법이다.

  • Practical BFT: 허가형 블록체인 시스템에 적용한다.

  • PBFT는 이전에 사용되었다가 현재는 하이퍼레저의 Kafka 방식을 사용한다.


  • 텐더민트: 변형된 PBFT 프로토콜을 사용한다.

  • 비동기 네트워크에서 한 번의 절차로만 합의를 시행할 경우 배신자 노드가 합의 알고리즘의 안전을 위협할 수 있기 때문에 최종 합의까지 2번 투표해야 한다.

  • PBFT는 Prepared Certificate와 Commit Certificate라는 두 번의 절차를 활용하여 배신자 노드가 존재하는 상황에서도 네트워크의 합의를 도출한다.



합의 알고리즘 비교


한이음 ICT 멘토링 - 하이퍼레저 패브릭 강의 자료 일부



한이음 ICT 멘토링 - 하이퍼레저 패브릭 강의 자료 일부



한이음 ICT 멘토링 - 하이퍼레저 패브릭 강의 자료 일부



합의 알고리즘 적용 분야


  • Public blockchain에서는 주로 PoW, PoS를 쓰지만 빈익빈 부익부 문제가 존재한다.

  • 하이퍼레저는 PBFT, Kafka 방식을 이용한다. (투표 방식으로 합의 도출)

  • Private blockchain에서는 보편적으로 PBFT와 PAXOS 알고리즘을 사용한다.

  • Enterprise Ethereum의 대표적인 Quorum의 경우 Raft 알고리즘을 채택하였다.

Author

Alec J

Posted on

2019-11-07

Updated on

2021-02-09

Licensed under