합의 알고리즘(Consensus Algorithm)

다수의 참여자들이 통일된 의사결정을 하기 위해 사용하는 알고리즘
합의 모델 / 합의 방식 / 합의 메커니즘 / 합의 프로토콜 이라고도 불린다

  • 블록체인 시스템의 경우 통일된 의사결정을 내릴 수 있는 권위 있는 중앙(Center)이 존재하지 않는다

  • 블록체인의 데이터는 중앙화된 서버 대신 전세계에 흩어져 있는 수많은 노드에 보관되기 때문에, 각각의 노드들은 블록에 기록하는 데이터가 위변조되지 않은 ‘원본’이라는 것이라는 것을 상호간에 합의하는 과정이 필요하다

  • 누군가 악의적으로 데이터를 조작하려고 해도 다수의 노드들이 상호검증을 거쳐 올바른 블록 생성을 할 수 있게 하는 프로세스와 알고리즘을 바로 ‘합의(Consensus)’라고 한다


작업 증명 (PoW, Proof of Work)

비트코인을 창시한 ‘사토시 나카모토’가 제안한 합의 알고리즘이다

장점

  • 모든 노드의 승인을 거쳐야 해서 거래 내역을 속이기 힘들다

  • (탈중앙화라는 본질을 가장 잘 살린 방식)

단점

  • 모든 노드의 승인을 거쳐야 하기 때문에 거래 처리 속도가 느리고

  • 채굴에 따른 부수적인 비용과 에너지 과잉 소비 (전기 이용)

  • 블록생성 시간동안 가장 많은 해시파워를 제공한 노드가 블록을 생성할 수 있도록 설계가 되어있다

  • 이 기법은 비트코인, 비트코인캐시, 라이트코인 등 여러 암호화폐 블록체인에서 사용 된다

  • 블록을 생성하기 위해 논스(Nonce)라는 임의의 값을 맞히는 과정을 ‘마이닝(Mining, 채굴)’이라고 부른다


노드(Node)

  • P2P(Peer to Peer) 로 연결되어 블록 체인 네트워크에 연결된

  • 모든 블록 정보를 가지는 각각의 서버</u>를 노드(Node)라고 한다


노드의 종류

  • 풀 노드 : 모든 기능을 다 가지고 있는 노드

  • 라이트 노드 : 모든 블록정보의 원본을 가지고 있지 않고 일종의 요약본 즉 헤더정보만 가지고 있는 노드


채굴(Mining)

암호화폐의 거래내역을 기록한 블록을 생성하고 그 대가로 암호화폐를 얻는 행위

채굴 노드가 하는 일은,

  • 목표값 이하의 블록해시를 생성하는 ‘논스’를 찾아 새로운 블록을 생성하는 것이다

  • 블록체인 네트워크에 전송된 암호화된 거래정보를 새로운 블록에 담고,
    새로운 블록을 체인에 연결하는 작업을 완료했다는 것을 증명하는데 사용되는 ‘컴퓨팅 파워’라고 이해할 수 있다

  • 작업 증명에서는 브랜치가 생긴 경우 가장 긴 블록체인이 남을 때까지 서로 경쟁하여
    이긴 브랜치가 최종적인 브랜치로 채택이 되며, 다른 브랜치는 버려진다

작업 증명은 현재 ‘시빌공격(Sybil Attack)’과 같은 블록체인 네트워크에 대한 각종 공격을 막을 수 있다고 증명된 유일한 알고리즘이다

  • 작업 증명 방식은 채굴시 모든 것을 처음부터 계산하다 보니 블록체인의 속도가 느리다

  • 이 방식은 노드의 51%가 정당하다고 인정해야 블록이 생성된다

  • 거대 자본의 담합으로 연산 능력의 51%를 장악하여 채굴권이 집중되는 문제가 발생할 수 있다

  • 이로 인해 거대 단합 조직이 엉뚱한 블록을 생성하고 조작할 수도 있다


지분 증명 (PoS, Proof of Stake)

지분이 많을수록 블록 생성 권한을 얻을 확률이 올라간다

장점

  • PoW 처럼 무의미한 계산을 지속적으로 하지 않아 조금 더 경제적이고,

  • 더 분산화된 네트워크를 가진다

단점

  • 빈익빈 부익부, 모든 네트워크가 참여하여 속도가 저하된다

  • 아직 보안성이 검증되지 않았다

  • 지분이 많은 소수의 거대 권력이 독점할 가능성이 있다


Nothing at Stake Problem

  • 지분 증명(PoS) 방식은 모든 노드들이 제한없이 여러 블록에 자신의 지분을 증명할 수 있기 때문에,

  • 만약 하나의 거래에서 서로 다른 거래내용이 발생한 경우

  • 많은 지분을 가진 노드가 공격을 목적으로 두 개의 블록에 모두 증명을 해놓고,

  • 거짓인 체인도 참인 것처럼 길게 체인을 형성시킬 수 있다

  • 블록에 새로 참여한 검증자(Validator)는 어느 것이 정당한 블록체인인지 알 수 있는 방법이 없다

  • 그래서 새로 많은 지분을 사들여 검증에 참여하는 노드가 거짓인 블록체인에 증명(합의)을 해버릴 경우 제대로 된 거래를 한 사람은 모두 공격에 당하는 꼴이 되는 것이다

  • PoS는 지분을 많이 가지고 있는 노드에게 블록을 생성할 권한을 준다

  • 작업이 아닌 더 많은 지분(해당 코인)을 가지고 있을 수록 그에 비례하여 블록에 기록할 권한이 더 많이 부여된다는 개념

  • 채굴자에게는 마치 이자와 같은 방식으로 코인이 지급된다

  • 일정 수 이상의 코인을 보관하고 있는 지갑을 블록체인 네트워크에 연결시켜놓기만 하면 보상을 받을 수 있다

  • 블록 생성자와 지분 생성자의 이해관계를 일치시킴으로써 블록을 나쁜 의도로 생성할 동기부여를 없애며, 잘못 생성할 경우 패널티를 부여

  • PoW보다 에너지 소모가 적다

  • 코인을 가진 노드 누구나 네트워크에 허가없이 참여하기 때문에 분산화가 더 잘 되어 많은 노드가 의사결정 과정에 쉽게 참여할 수 있다


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

  • ‘위임 지분 증명’은 PoS에서 변형된 것이다

  • 시스템의 지분을 가진 각 노드가 투표를 통해
    트랜잭션의 유효성 검사를 다른 노드에 위임하여 증명하는 개념

장점

  • PoS에 비해 빠른 처리 속도(적은 수의 노드들끼리 합의)

  • PoW에 비해 저렴한 비용

단점

  • BP끼리 단합의 위험(탈중앙화에서 거리가 멀어짐)

  • BP에 대한 디도스 공격 위험 가능성

  • BP (Block Producer) 👉 선출한 대표자


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

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

장점

  • 빠른 처리 속도, 포크가 일어나지 않고 완료성이 좋다.

단점

  • 특정 노드에 권력 집중, 노드들 간의 단합 위험

포크 (Fork)

👉 블록체인 시스템 업그레이드 시 , 차이가 생겨 갈라지는 현상

하드 포크

  • 기존의 블록체인과 호환이 되지 않고 새로운 블록체인에서 새로운 암호화폐가 탄생 되는 것

  • 이 경우, 이전 버전을 사용할 수 없기 때문에 업그레이드 해야 사용 가능

소프트 포트

👉 기존 버전의 블록체인과 호환이 가능한 업그레이드


참고 했던 사이트 🖥

https://m.blog.naver.com/bodoblock00/221657805838