합의 메커니즘
'합의 메커니즘'이라는 용어는 종종 일상적으로 '지분 증명(PoS)', '작업증명(PoW)' 또는 '권위 증명(PoA)' 프로토콜을 지칭하는 데 사용됩니다. 하지만 이들은 으로부터 보호하는 합의 메커니즘의 구성 요소일 뿐입니다. 합의 메커니즘은 분산된 노드 세트가 블록체인의 상태에 동의할 수 있도록 하는 아이디어, 프로토콜 및 인센티브의 완전한 스택입니다.
전제 조건
이 페이지를 더 잘 이해하려면 먼저 이더리움 소개를 읽어보시기 바랍니다.
합의란 무엇인가요?
합의란 일반적인 동의에 도달했음을 의미합니다. 영화관에 가는 사람들의 그룹을 생각해 보세요. 제안된 영화 선택에 이견이 없다면 합의가 이루어진 것입니다. 이견이 있는 경우, 그룹은 어떤 영화를 볼지 결정할 수 있는 수단이 있어야 합니다. 극단적인 경우 그룹은 결국 분열될 것입니다.
이더리움 블록체인과 관련하여 이 프로세스는 공식화되어 있으며, 합의에 도달한다는 것은 네트워크 노드의 최소 66%가 네트워크의 전역 상태에 동의한다는 것을 의미합니다.
합의 메커니즘이란 무엇인가요?
합의 메커니즘이라는 용어는 노드 네트워크가 블록체인의 상태에 동의할 수 있도록 하는 프로토콜, 인센티브 및 아이디어의 전체 스택을 의미합니다.
이더리움은 스테이킹 참여자가 예치한 자본에 적용되는 일련의 보상과 벌칙에서 암호화폐 경제적 보안을 도출하는 지분 증명 기반 합의 메커니즘을 사용합니다. 이러한 인센티브 구조는 개별 스테이킹 참여자가 정직한 검증자를 운영하도록 장려하고, 그렇지 않은 사람을 처벌하며, 네트워크를 공격하는 데 엄청나게 높은 비용을 발생시킵니다.
또한 정직한 검증자가 블록을 제안하거나 검증하고, 트랜잭션을 처리하며, 체인의 헤드(head)에 대한 자신의 관점에 투표하도록 선택되는 방식을 관리하는 프로토콜이 있습니다. 체인의 헤드 근처의 동일한 위치에 여러 블록이 존재하는 드문 상황에서는, 스테이킹된 이더 잔액으로 가중치를 부여하여 블록에 투표한 검증자의 수로 측정된 '가장 무거운(heaviest)' 체인을 구성하는 블록을 선택하는 포크 선택 메커니즘(fork-choice mechanism)이 있습니다.
네트워크 공격에 대한 최후의 방어선으로서 잠재적인 대역 외(out-of-band) 사회적 조정이 제공하는 추가적인 보안과 같이, 코드에 명시적으로 정의되어 있지는 않지만 합의에 중요한 몇 가지 개념이 있습니다.
이러한 구성 요소들이 모여 합의 메커니즘을 형성합니다.
합의 메커니즘의 유형
작업증명 기반
비트코인과 마찬가지로 이더리움도 한때 작업증명(PoW) 기반 합의 프로토콜을 사용했습니다.
블록 생성
채굴자들은 처리된 트랜잭션으로 채워진 새로운 블록을 생성하기 위해 경쟁합니다. 승자는 나머지 네트워크와 새 블록을 공유하고 새로 발행된 약간의 ETH를 얻습니다. 이 경쟁은 수학 퍼즐을 가장 빨리 푸는 컴퓨터가 승리합니다. 이는 현재 블록과 이전 블록 사이에 암호화 링크를 생성합니다. 이 퍼즐을 푸는 것이 "작업증명"에서의 작업(work)입니다. 그런 다음 정규 체인(canonical chain)은 채굴하는 데 가장 많은 작업이 수행된 블록 세트를 선택하는 포크 선택 규칙에 의해 결정됩니다.
보안
체인을 속이려면 네트워크 컴퓨팅 파워의 51%가 필요하다는 사실에 의해 네트워크가 안전하게 유지됩니다. 이를 위해서는 장비와 에너지에 막대한 투자가 필요하며, 얻는 것보다 더 많은 비용을 지출하게 될 가능성이 높습니다.
작업증명에 대해 자세히 알아보기
지분 증명 기반
이더리움은 이제 지분 증명(PoS) 기반 합의 프로토콜을 사용합니다.
블록 생성
검증자가 블록을 생성합니다. 각 슬롯에서 한 명의 검증자가 무작위로 선택되어 블록 제안자가 됩니다. 이들의 합의 클라이언트는 페어링된 실행 클라이언트에게 트랜잭션 번들을 '실행 페이로드'로 요청합니다. 이들은 이를 합의 데이터로 감싸 블록을 형성하고, 이더리움 네트워크의 다른 노드로 전송합니다. 이러한 블록 생성은 ETH로 보상받습니다. 단일 슬롯에 대해 여러 개의 가능한 블록이 존재하거나 노드가 서로 다른 시간에 블록에 대해 듣는 드문 경우, 포크 선택 알고리즘은 증명(attestation)의 가중치가 가장 큰 체인을 형성하는 블록을 선택합니다(여기서 가중치는 증명하는 검증자의 수에 ETH 잔액을 곱한 값입니다).
보안
지분 증명 시스템은 체인을 장악하려는 공격자가 엄청난 양의 ETH를 파괴해야 하므로 암호화폐 경제적으로 안전합니다. 보상 시스템은 개별 스테이킹 참여자가 정직하게 행동하도록 장려하고, 벌칙은 스테이킹 참여자가 악의적으로 행동하는 것을 억제합니다.
지분 증명에 대해 자세히 알아보기
시각적 가이드
이더리움에서 사용되는 다양한 유형의 합의 메커니즘에 대해 자세히 시청하세요.
시빌 저항성 및 체인 선택
작업증명과 지분 증명만으로는 합의 프로토콜이 아니지만, 단순성을 위해 종종 그렇게 불립니다. 이들은 실제로는 시빌 저항성 메커니즘이자 블록 작성자 선택기입니다. 즉, 최신 블록의 작성자가 누구인지 결정하는 방법입니다. 또 다른 중요한 구성 요소는 동일한 위치에 여러 블록이 존재하는 시나리오에서 노드가 체인의 헤드에서 단일한 올바른 블록을 선택할 수 있도록 하는 체인 선택(일명 포크 선택) 알고리즘입니다.
시빌 저항성(Sybil resistance)은 프로토콜이 시빌 공격에 어떻게 대처하는지를 측정합니다. 이러한 유형의 공격에 대한 저항성은 탈중앙화된 블록체인에 필수적이며, 채굴자와 검증자가 투입한 자원을 기반으로 동등하게 보상받을 수 있도록 합니다. 작업증명과 지분 증명은 사용자가 많은 에너지를 소비하거나 많은 담보를 제공하도록 함으로써 이를 방어합니다. 이러한 보호 장치는 시빌 공격에 대한 경제적 억지력입니다.
체인 선택 규칙(chain selection rule)은 어느 체인이 "올바른" 체인인지 결정하는 데 사용됩니다. 비트코인은 "가장 긴 체인(longest chain)" 규칙을 사용하는데, 이는 가장 긴 블록체인이 나머지 노드들이 유효하다고 수용하고 작업할 체인이 된다는 것을 의미합니다. 작업증명 체인의 경우, 가장 긴 체인은 체인의 총 누적 작업증명 난이도에 의해 결정됩니다. 이더리움도 예전에는 가장 긴 체인 규칙을 사용했습니다. 하지만 이제 이더리움은 지분 증명으로 실행되므로 체인의 '가중치'를 측정하는 업데이트된 포크 선택 알고리즘을 채택했습니다. 가중치는 검증자의 스테이킹된 이더 잔액으로 가중치가 부여된 검증자 투표의 누적 합계입니다.
이더리움은 캐스퍼 FFG 지분 증명 (opens in a new tab)과 GHOST 포크 선택 규칙 (opens in a new tab)을 결합한 Gasper라는 합의 메커니즘을 사용합니다.
더 읽을거리
- 블록체인 합의 알고리즘이란 무엇인가요? (opens in a new tab)
- 나카모토 합의란 무엇인가요? 완전 초보자 가이드 (opens in a new tab)
- Casper는 어떻게 작동하나요? (opens in a new tab)
- 작업증명 블록체인의 보안 및 성능에 관하여 (opens in a new tab)
- 비잔틴 장애(Byzantine fault) (opens in a new tab)
도움이 된 커뮤니티 리소스를 알고 계신가요? 이 페이지를 편집하여 추가해 주세요!