본문으로 건너뛰기
Change page

지분 증명 (PoS)

지분 증명 (PoS)은 이더리움의 합의 메커니즘의 기반이 됩니다. 이더리움은 이전의 작업증명 (PoW) 아키텍처에 비해 더 안전하고, 에너지 집약적이지 않으며, 새로운 확장성 솔루션을 구현하는 데 더 적합하기 때문에 2022년에 지분 증명 메커니즘으로 전환했습니다.

전제 조건

이 페이지를 더 잘 이해하려면 먼저 합의 메커니즘에 대해 읽어보는 것을 권장합니다.

지분 증명 (PoS)이란 무엇인가요?

지분 증명은 검증자가 부정직하게 행동할 경우 파괴될 수 있는 가치 있는 것을 네트워크에 제공했음을 증명하는 방법입니다. 이더리움의 지분 증명에서 검증자는 이더리움의 스마트 컨트랙트에 ETH 형태로 자본을 명시적으로 스테이킹합니다. 그런 다음 검증자는 네트워크를 통해 전파되는 새로운 블록이 유효한지 확인하고, 때로는 스스로 새로운 블록을 생성하고 전파할 책임이 있습니다. 만약 이들이 네트워크를 속이려 한다면(예를 들어, 하나의 블록을 보내야 할 때 여러 블록을 제안하거나 상충되는 증명을 보내는 경우), 스테이킹한 ETH의 일부 또는 전부가 파괴될 수 있습니다.

검증자

검증자로 참여하려면 사용자는 예치 컨트랙트에 32 ETH를 예치하고 실행 클라이언트, 합의 클라이언트, 검증자 클라이언트라는 세 가지 개별 소프트웨어를 실행해야 합니다. ETH를 예치하면 사용자는 네트워크에 참여하는 새로운 검증자의 속도를 제한하는 활성화 대기열에 합류하게 됩니다. 활성화되면 검증자는 이더리움 네트워크의 피어로부터 새로운 블록을 받습니다. 블록에 전달된 트랜잭션은 이더리움의 상태에 대해 제안된 변경 사항이 유효한지 확인하기 위해 재실행되며, 블록 서명이 확인됩니다. 그런 다음 검증자는 네트워크 전체에 해당 블록을 지지하는 투표(증명이라고 함)를 보냅니다.

작업증명 (PoW)에서는 블록의 타이밍이 채굴 난이도에 의해 결정되는 반면, 지분 증명에서는 속도가 고정되어 있습니다. 지분 증명 이더리움의 시간은 슬롯(12초)과 에포크(32슬롯)로 나뉩니다. 매 슬롯마다 한 명의 검증자가 무작위로 블록 제안자로 선택됩니다. 이 검증자는 새로운 블록을 생성하고 네트워크의 다른 노드로 전송할 책임이 있습니다. 또한 매 슬롯마다 검증자 위원회가 무작위로 선택되며, 이들의 투표는 제안되는 블록의 유효성을 결정하는 데 사용됩니다. 검증자 세트를 위원회로 나누는 것은 네트워크 부하를 관리 가능한 수준으로 유지하는 데 중요합니다. 위원회는 모든 활성 검증자가 매 에포크마다 증명하지만 매 슬롯마다 증명하지는 않도록 검증자 세트를 나눕니다.

이더리움 PoS에서 트랜잭션이 실행되는 방법

다음은 이더리움 지분 증명에서 트랜잭션이 어떻게 실행되는지에 대한 엔드투엔드 설명입니다.

  1. 사용자는 개인 키로 트랜잭션을 생성하고 서명합니다. 이는 일반적으로 지갑이나 Ethers.js (opens in a new tab), web3js (opens in a new tab), web3py (opens in a new tab) 등과 같은 라이브러리에 의해 처리되지만, 내부적으로 사용자는 이더리움 JSON-RPC API를 사용하여 노드에 요청을 보내는 것입니다. 사용자는 검증자가 트랜잭션을 블록에 포함하도록 장려하기 위해 팁으로 지불할 가스의 양을 정의합니다. 은 검증자에게 지급되는 반면 기본 수수료는 소각됩니다.
  2. 트랜잭션은 이더리움 실행 클라이언트에 제출되어 유효성을 검증받습니다. 이는 발신자가 트랜잭션을 이행하기에 충분한 ETH를 가지고 있고 올바른 키로 서명했는지 확인하는 것을 의미합니다.
  3. 트랜잭션이 유효한 경우, 실행 클라이언트는 이를 로컬 멤풀(대기 중인 트랜잭션 목록)에 추가하고 실행 계층 가십 네트워크를 통해 다른 노드에도 브로드캐스트합니다. 다른 노드들이 트랜잭션에 대해 듣게 되면 그들의 로컬 멤풀에도 이를 추가합니다. 고급 사용자는 트랜잭션을 브로드캐스트하는 것을 자제하고 대신 Flashbots Auction (opens in a new tab)과 같은 전문 블록 빌더에게 전달할 수 있습니다. 이를 통해 최대 수익(MEV)을 위해 다가오는 블록의 트랜잭션을 구성할 수 있습니다.
  4. 네트워크의 검증자 노드 중 하나는 이전에 RANDAO를 사용하여 의사 난수로 선택된 현재 슬롯의 블록 제안자입니다. 이 노드는 이더리움 블록체인에 추가될 다음 블록을 구축 및 브로드캐스트하고 글로벌 상태를 업데이트할 책임이 있습니다. 노드는 실행 클라이언트, 합의 클라이언트, 검증자 클라이언트의 세 부분으로 구성됩니다. 실행 클라이언트는 로컬 멤풀의 트랜잭션을 "실행 페이로드"로 묶고 로컬에서 실행하여 상태 변경을 생성합니다. 이 정보는 합의 클라이언트로 전달되며, 여기서 실행 페이로드는 네트워크가 체인의 헤드에 있는 블록 시퀀스에 동의할 수 있도록 하는 보상, 페널티, 슬래싱, 증명 등에 대한 정보도 포함하는 "비콘 블록"의 일부로 래핑됩니다. 실행 클라이언트와 합의 클라이언트 간의 통신은 합의 클라이언트와 실행 클라이언트 연결에 더 자세히 설명되어 있습니다.
  5. 다른 노드들은 합의 레이어 가십 네트워크에서 새로운 비콘 블록을 받습니다. 이들은 이를 실행 클라이언트로 전달하여 제안된 상태 변경이 유효한지 확인하기 위해 트랜잭션을 로컬에서 재실행합니다. 그런 다음 검증자 클라이언트는 블록이 유효하며 체인에 대한 그들의 관점에서 논리적인 다음 블록임을 증명합니다(이는 포크 선택 규칙에 정의된 대로 가장 큰 증명 가중치를 가진 체인을 기반으로 구축됨을 의미합니다). 블록은 이를 증명하는 각 노드의 로컬 데이터베이스에 추가됩니다.
  6. 트랜잭션은 두 체크포인트 사이에 "절대다수 링크"가 있는 체인의 일부가 된 경우 "완결된" 것으로 간주될 수 있습니다. 체크포인트는 각 에포크의 시작 부분에서 발생하며, 각 슬롯에서는 활성 검증자의 하위 집합만 증명하지만 각 에포크에 걸쳐서는 모든 활성 검증자가 증명한다는 사실을 설명하기 위해 존재합니다. 따라서 에포크 사이에서만 '절대다수 링크'가 입증될 수 있습니다(이는 네트워크에 스테이킹된 총 ETH의 66%가 두 체크포인트에 동의하는 경우입니다).

완결성에 대한 자세한 내용은 아래에서 확인할 수 있습니다.

완결성

분산 네트워크에서 트랜잭션은 대량의 ETH가 소각되지 않고는 변경될 수 없는 블록의 일부일 때 "완결성"을 갖습니다. 지분 증명 이더리움에서는 "체크포인트" 블록을 사용하여 이를 관리합니다. 각 에포크의 첫 번째 블록이 체크포인트입니다. 검증자는 유효하다고 간주하는 체크포인트 쌍에 투표합니다. 체크포인트 쌍이 스테이킹된 총 ETH의 최소 3분의 2를 나타내는 투표를 끌어모으면 체크포인트가 업그레이드됩니다. 둘 중 더 최근의 것(대상)은 "정당화된" 상태가 됩니다. 둘 중 이전의 것은 이전 에포크에서 "대상"이었기 때문에 이미 정당화된 상태입니다. 이제 이것은 "완결된" 상태로 업그레이드됩니다. 체크포인트를 업그레이드하는 이 과정은 캐스퍼 FFG(Casper the Friendly Finality Gadget) (opens in a new tab)에 의해 처리됩니다. 캐스퍼 FFG는 합의를 위한 블록 완결성 도구입니다. 블록이 완결되면 스테이커의 과반수 슬래싱 없이는 되돌리거나 변경할 수 없으므로 경제적으로 불가능해집니다.

완결된 블록을 되돌리려면 공격자는 스테이킹된 총 ETH 공급량의 최소 3분의 1을 잃을 각오를 해야 합니다. 이에 대한 정확한 이유는 이 이더리움 재단 블로그 게시물 (opens in a new tab)에 설명되어 있습니다. 완결성에는 3분의 2 이상의 다수가 필요하므로 공격자는 총 스테이크의 3분의 1로 투표하여 네트워크가 완결성에 도달하는 것을 막을 수 있습니다. 이를 방어하기 위한 메커니즘이 있는데, 바로 비활동 누수 (opens in a new tab)입니다. 이는 체인이 4개 이상의 에포크 동안 완결되지 못할 때마다 활성화됩니다. 비활동 누수는 다수에 반대하여 투표하는 검증자로부터 스테이킹된 ETH를 서서히 빼앗아 다수가 3분의 2 이상의 다수를 되찾고 체인을 완결할 수 있도록 합니다.

암호경제학적 보안

검증자를 운영하는 것은 하나의 커밋먼트입니다. 검증자는 블록 검증 및 제안에 참여하기 위해 충분한 하드웨어와 연결성을 유지해야 합니다. 그 대가로 검증자는 ETH로 보상을 받습니다(스테이킹된 잔액이 증가함). 반면에 검증자로 참여하는 것은 사용자가 개인적인 이득이나 사보타주를 위해 네트워크를 공격할 수 있는 새로운 길을 열어주기도 합니다. 이를 방지하기 위해 검증자는 호출될 때 참여하지 않으면 ETH 보상을 놓치게 되며, 부정직하게 행동할 경우 기존 스테이크가 파괴될 수 있습니다. 단일 슬롯에서 여러 블록을 제안하는 것(모호성)과 모순되는 증명을 제출하는 것, 이 두 가지 주요 행동이 부정직한 것으로 간주될 수 있습니다.

슬래싱되는 ETH의 양은 거의 같은 시기에 얼마나 많은 검증자가 함께 슬래싱되는지에 따라 달라집니다. 이는 "상관관계 페널티" (opens in a new tab)로 알려져 있으며, 경미할 수도 있고(단일 검증자가 단독으로 슬래싱되는 경우 스테이크의 약 1%), 검증자의 스테이크가 100% 파괴되는 결과(대규모 슬래싱 이벤트)를 초래할 수도 있습니다. 이는 1일 차에 즉각적인 페널티(최대 1 ETH), 18일 차에 상관관계 페널티, 마지막으로 36일 차에 네트워크에서 퇴출되는 것으로 시작되는 강제 종료 기간의 중간에 부과됩니다. 이들은 네트워크에 존재하지만 투표를 제출하지 않기 때문에 매일 경미한 증명 페널티를 받습니다. 이 모든 것은 조직적인 공격이 공격자에게 매우 큰 비용을 초래할 것임을 의미합니다.

포크 선택

네트워크가 최적의 상태로 정직하게 수행될 때, 체인의 헤드에는 항상 하나의 새로운 블록만 존재하며 모든 검증자가 이를 증명합니다. 그러나 네트워크 지연이나 블록 제안자의 모호성으로 인해 검증자들이 체인의 헤드에 대해 서로 다른 관점을 가질 수 있습니다. 따라서 합의 클라이언트는 어느 것을 선호할지 결정하는 알고리즘이 필요합니다. 지분 증명 이더리움에서 사용되는 알고리즘은 엘엠디 고스트(LMD-GHOST) (opens in a new tab)라고 불리며, 역사상 가장 큰 증명 가중치를 가진 포크를 식별하는 방식으로 작동합니다.

지분 증명과 보안

51% 공격 (opens in a new tab)의 위협은 작업증명 (PoW)과 마찬가지로 지분 증명에도 여전히 존재하지만, 공격자에게는 훨씬 더 위험합니다. 공격자는 스테이킹된 ETH의 51%가 필요합니다. 그런 다음 자신의 증명을 사용하여 선호하는 포크가 가장 많은 증명이 누적된 포크가 되도록 할 수 있습니다. 누적된 증명의 '가중치'는 합의 클라이언트가 올바른 체인을 결정하는 데 사용하는 것이므로, 이 공격자는 자신의 포크를 정식 포크로 만들 수 있습니다. 그러나 작업증명 (PoW)에 비해 지분 증명이 갖는 강점은 커뮤니티가 반격을 가하는 데 유연성을 갖는다는 것입니다. 예를 들어, 정직한 검증자들은 소수 체인에 계속 구축하고 공격자의 포크를 무시하기로 결정하는 동시에 앱, 거래소 및 풀도 동일하게 행동하도록 장려할 수 있습니다. 또한 공격자를 네트워크에서 강제로 제거하고 그들이 스테이킹한 ETH를 파괴하기로 결정할 수도 있습니다. 이는 51% 공격에 대한 강력한 경제적 방어 수단입니다.

51% 공격 외에도 악의적인 행위자는 다음과 같은 다른 유형의 악의적인 활동을 시도할 수 있습니다.

  • 장거리 공격 (완결성 가젯이 이 공격 벡터를 무력화하지만)
  • 단거리 '재구성(reorgs)' (제안자 부스팅 및 증명 마감일이 이를 완화하지만)
  • 바운싱 및 밸런싱 공격 (이 역시 제안자 부스팅에 의해 완화되며, 어쨌든 이러한 공격은 이상적인 네트워크 조건에서만 입증되었음)
  • 아발란체 공격 (최신 메시지만 고려하는 포크 선택 알고리즘 규칙에 의해 무력화됨)

전반적으로 이더리움에 구현된 지분 증명은 작업증명 (PoW)보다 경제적으로 더 안전한 것으로 입증되었습니다.

장단점

장점단점
스테이킹은 개인이 네트워크 보안에 참여하기 쉽게 만들어 탈중앙화를 촉진합니다. 검증자 노드는 일반 노트북에서도 실행할 수 있습니다. 스테이킹 풀을 통해 사용자는 32 ETH가 없어도 스테이킹할 수 있습니다.지분 증명은 작업증명 (PoW)에 비해 역사가 짧고 실전 테스트를 덜 거쳤습니다.
스테이킹은 더 탈중앙화되어 있습니다. 규모의 경제가 PoW 채굴과 같은 방식으로 적용되지 않습니다.지분 증명은 작업증명 (PoW)보다 구현하기가 더 복잡합니다.
지분 증명은 작업증명 (PoW)보다 더 큰 암호경제학적 보안을 제공합니다.사용자는 이더리움의 지분 증명에 참여하기 위해 세 가지 소프트웨어를 실행해야 합니다.
네트워크 참여자에게 인센티브를 제공하기 위해 새로운 ETH 발행이 덜 필요합니다.

작업증명 (PoW)과의 비교

이더리움은 원래 작업증명 (PoW)을 사용했지만 2022년 9월에 지분 증명으로 전환했습니다. PoS는 PoW에 비해 다음과 같은 몇 가지 장점을 제공합니다.

  • 더 나은 에너지 효율성 – 작업증명 (PoW) 연산에 많은 에너지를 사용할 필요가 없습니다.
  • 진입 장벽이 낮아지고 하드웨어 요구 사항이 감소함 – 새로운 블록을 생성할 기회를 얻기 위해 최고급 하드웨어가 필요하지 않습니다.
  • 중앙화 위험 감소 – 지분 증명은 더 많은 노드가 네트워크를 보호하도록 이끌어야 합니다.
  • 에너지 요구량이 낮기 때문에 참여를 장려하기 위해 더 적은 ETH 발행이 필요합니다.
  • 잘못된 행동에 대한 경제적 페널티는 작업증명 (PoW)에 비해 공격자에게 51% 스타일 공격의 비용을 더 많이 들게 합니다.
  • 51% 공격이 암호경제학적 방어를 극복하더라도 커뮤니티는 정직한 체인의 소셜 복구에 의존할 수 있습니다.

더 읽어보기