지분 증명이란

Bora Lee
6 min readSep 19, 2023

--

이더리움을 중심으로 지분 증명이란 무엇인지 알아봅니다.

2022년 9월 15일 이더리움은 The Merge 이벤트를 통해 이더리움을 작업 증명 네트워크에서 지분 증명 네트워크로 전환하는 데 성공하였습니다. 수년간의 계획과 테스트를 거쳐 이뤄진 The Merge는 이더리움 역사에서 아주 중요한 사건 중 하나입니다.

The Merge 이벤트가 있기 이전에도 지분 증명 합의 알고리즘을 사용하는 블록체인은 다양했습니다. 이번 글에선 지분 증명이란 무엇인지, 어떻게 동작하는지를 살펴보겠습니다.

합의란

지분 증명 합의 알고리즘에 대해 알아보기 전에 먼저 ‘합의’란 무엇인지를 명확하게 짚고 넘어갑시다. 합의의 기술적 정의뿐만 아니라 사전적 적의도 알아야 합니다. Merriam-Webster 사전에 따르면 합의(consensus)의 정의는 다음과 같습니다.

어떤 것에 대하여 둘 이상(그룹)의 의견이 일치하는 상태. 또는 그 의견
> 예문 1: 계획을 진행하자고 합의하였다.
> 예문 2: 과학자들은 질병의 원인에 대한 합의에 도달하지 못했다.

블록체인을 기술적 측면에서 바라보았을 때 ‘합의’는 탈중앙화된 블록체인 네트워크의 모든 노드가 현재 상태(거래, 계정 잔액 등)를 동의하는 것을 의미합니다.

합의 프로토콜이란

블록체인에선 네트워크에 있는 모든 노드가 네트워크의 현재 상태에 대한 합의에 도달하는 것이 중요합니다. 합의 프로토콜은 이러한 합의를 달성하는 데 도움을 줍니다.

합의 프로토콜은 주로 네트워크 내 노드가 좋은 행동을 했을 때 이익을 주고, 나쁜 행동을 했을 땐 불이익을 주는 경제 시스템입니다. 이론적으로 네트워크의 과반수를 제어하면 블록체인의 합의를 손상할 수 있습니다. 건전한 합의 프로토콜은 이러한 공격을 경제적으로 실현 불가능하게 만드는데 그 목표를 두는데, 작업 증명과 지분 증명 같은 각 프로토콜은 자신만의 방식으로 문제를 해결합니다.

지분 증명

지분 증명 합의 메커니즘의 핵심은 다음과 같습니다.

  • 검증자는 이더리움 메인넷의 스마트 컨트랙트에 ETH 토큰 형태의 자본을 예치합니다(스테이킹).
  • 스테이킹된 이더리움은 담보 역할을 하는데, 검증자가 블록체인의 상태를 조작하거나 다른 검증자의 요청에 응답하지 않는 등의 악의적인 행동을 하는 경우 담보를 잃을 수 있습니다.
  • 검증자는 새로 생성된 블록이 유효한지 확인해야 하고, 직접 블록을 생성할 책임이 있습니다.

검증자는 악의적 행동을 하면 스테이킹한 자본을 잃을 수 있기 때문에 거짓된 행동은 하지 않으려는 금전적 동기부여를 받습니다.

지분 증명과 작업 증명의 차이

지분 증명은 작업 증명 대비 다양한 장점이 있습니다.

  • 에너지 사용량 감소: 이더리움이 작업 증명에서 지분 증명으로 전환하면서 전 세계 에너지 사용량이 0.2% 감소했습니다. 전 세계 규모로 봤을 때 0.2%는 엄청난 양의 에너지 절감입니다.
  • 낮은 진입 장벽: 작업 증명 방식에선 채굴을 하려면 고가의 특수 하드웨어를 보유해야 하고 높은 전기 비용을 감당해야 합니다. 여기에 더하여 하드웨어나 채굴장을 관리하는 인적 자원도 필요합니다. 하드웨어를 지속해서 업그레이드 해주는 비용도 충당해야 합니다. 지분 증명에선 검증 노드를 운영하기 위해 32ETH를 스테이킹 해야하지만 하드웨어 요구사항이 낮아서 채굴 진입 장벽이 낮아집니다.
  • 중앙화 위험 감소: 작업증명 방식에선 전문화된 채굴장을 운영하는데 큰 비용과 전문가가 필요하기 때문에 관련된 중앙화 위험이 존재했습니다. 그런데 지분증명 방식에선 스테이킹만 해두면 검증자는 저렴한 하드웨어로 노드를 운영할 수 있기 때문에 작업 증명 방식을 사용했을 때 보다 훨씬 더 많은 수의 노드가 네트워크에 참여하여 보안에 기여할 수 있습니다. 현재 이더리움엔 60만 명 이상의 검증자가 활동 중이며, 9만 명 이상이 검증자가 되기 위해 대기 중입니다.
  • 이더리움 발행량 감소: 에너지 소비량과 블록 생성 비용 감소 때문에 검증자에게 인센티브로 제공할 이더리움이 줄어들어 발행해야 하는 이더리움 양이 시간이 지남에 따라 감소하여 이더리움 토큰의 인플레이션을 줄이는 데 도움이 됩니다.
  • 페널티 증가: 미리 자본을 스테이킹 해야하기 때문에 다수 공격(majority attack)에 대한 경제적 페널티(벌금)를 작업 증명 대비 기하급수적으로 비싸게 매길 수 있습니다.

블록 생성

지분 증명 블록체인에선 검증자(validator)가 블록 생성을 담당합니다. 체인마다 블록 생성 담당 주체를 지칭하는 이름은 다르긴 하지만(Tezos에선 Baker라고 부름) 앞으로 검증자로 통합해서 부르겠습니다.

지분 증명 세계에선 어려운 수학 문제를 풀지 않아도 되기 때문에 채굴자라는 개념이 없습니다.

검증자가 되려면 32ETH를 이더리움 메인넷 내 특정 컨트랙트에 예치하고 실행 클라이언트와 합의 클라이언트, 검증자 클라이언트가 있는 노드 소프트웨어를 실행할 수 있어야 합니다.

실행 클라이언트(Execution Client)는 작업증명방식에서 채굴자가 실행했어야 했던 Geth(go-ethereum)와 아주 유사한 역할을 합니다. 실행 클라이언트는 EVM내에서 트랜잭션을 실행하고 상태 변화를 파악하는 역할을 담당합니다. 합의 클라이언트(Consensus Client)는 비컨 노드(Beacon Node)라고도 불리는데 체인 내 다른 비컨 노드들과 통신하며 합의에 필요한 정보를 교환하여 합의 달성을 주도합니다. 검증자 클라이언트(Validator Client)는 어떤 블록을 체인에 추가할지에 대한 투표와 (필요한 경우) 새로운 블록을 생성하는 역할을 담당합니다.

검증자는 이더리움 네트워크 내 다른 노드로부터 새로운 블록을 전달받고 블록 내 트랜잭션이 유효한지 확인합니다. 그다음 전체 네트워크 대상으로 블록 생성에 동의한다는 선서(attestation, 찬성투표)를 합니다. 블록에 찬성한다는 투표가 충분히 모이면 해당 블록은 비로소 체인에 추가됩니다. 그리고 이 과정은 계속 반복됩니다.

지분 증명 방식에선 새로운 블록이 생성되는 시간인 12초마다 무작위로 검증자를 선정하여 블록을 제안하도록 합니다. 제안자로 선정되면 해당 검증자는 새 블록을 생성하여 다른 노드에 전송하고, 다른 노드는 블록을 찬성하는지 반대하는지를 투표합니다.

네트워크 보안

검증자가 된다는 것은 이더리움 네트워크 보안을 위해 노력하겠다는 약속과 같습니다. 검증자는 블록 제안과 검증에 참여하기 위해 충분한 하드웨어, 네트워크 장비, 가동 시간을 유지해야 하는데, 그 대가로 이더리움을 보상받습니다.

약속을 지키지 않는 검증자에겐 보상이 없습니다. 예를 들어 블록에 투표하라는 요청을 받았는데 이에 응답하지 않으면 ETH 보상을 받지 못합니다. 부정직하거나 악의적으로 행동하면 예치해 두었던 ETH도 삭감되어 금전적 손실을 봅니다. 심할 경우엔 검증자 자격을 박탈당할 수도 있습니다.

악의적인 행동의 예시론 12초 동안 여러 블록 제안하기, 블록 검증 중에 허위 증명을 제출하기 등이 있습니다. 악의적 활동으로 인해 삭감(slashing, 업계에선 슬래싱이라고 표현)되는 이더리움 양은 같은 시간대에 얼마나 많은 다른 검증자로부터 이더리움이 삭감되었는지에 따라 달라집니다. 이런 규칙이 있는 이유는 한 명의 검증인이 인터넷이 불안정해서 약속을 못 지키는 것과 백 명의 검증인이 함께 작당모의 해서 악의적인 행동을 하는 것에 대해 다른 페널티를 주기 위함입니다.

--

--