2022년 9월 15일, 이더리움은 작업 증명(Proof of Work) 네트워크에서 지분 증명 네트워크로 전환하는 '머지(The Merge)' 이벤트를 성공적으로 진행했습니다. 이는 수년간의 계획 끝에 이루어진 공동의 노력으로, 이더리움 네트워크의 주요 전환점을 기록했습니다.
이더리움 외에도 여러 블록체인들은 이미 그 이전부터 지분 증명을 합의 알고리즘으로 사용해 왔습니다. 오늘은 지분 증명이 무엇이며 어떻게 작동하는지 살펴보겠습니다.
알고리즘을 자세히 살펴보기 전에, 합의가 정확히 무엇을 의미하는지 명확히 이해해야 합니다. 단순히 기술적 정의뿐만 아니라 영어 단어 자체의 정의도 포함해서 말입니다. 이 섹션은 작업 증명(Proof of Work) 강의에서 반복된 내용으로, 해당 강의를 읽지 않았거나 복습이 필요한 분들을 위해 재수록합니다.
메리엄-웹스터 사전은 합의(Consensus)를 다음과 같이 정의합니다:
어떤 것에 대한 일반적인 동의: 집단 내 모든 구성원이 공유하는 아이디어나 의견
// (집단의) 일반적인 합의는 계획을 진행하는 것이었다
// 과학자들은 질병의 원인에 대해 합의에 이르지 못했다
블록체인 기술 맥락에서의 기술적 정의에 따르면, 합의란 분산형 블록체인 네트워크 내 모든 노드가 네트워크의 현재 상태(즉, 거래 내역, 계정 잔액 등)에 대해 동의하는 것을 의미합니다.
블록체인에서 네트워크의 모든 노드가 네트워크의 현재 상태에 대해 합의에 도달할 수 있어야 합니다. 합의 프로토콜은 이러한 합의를 이루는 데 도움을 줍니다. 이 섹션은 작업 증명(Proof of Work) 강의에서 반복된 내용으로, 복습이 필요할 경우 참고하시기 바랍니다.
이 주제는 dApp 구축과 직접적인 관련은 없지만, 구축 기반이 되는 기술을 깊이 이해하면 더 나은 결정을 내리고 궁극적으로 더 뛰어난 개발자가 되는 데 도움이 됩니다.
합의 프로토콜은 주로 네트워크 노드의 바람직한 행동을 장려하고 바람직하지 않은 행동을 억제하는 경제적 시스템입니다. 이론적으로 네트워크의 과반수를 장악하면 블록체인의 합의를 훼손할 수 있습니다. 건전한 합의 프로토콜의 목표는 적어도 사람들이 사용하고 관심을 갖는 블록체인(예: 비트코인, 이더리움)에서는 그러한 공격을 경제적으로 불가능하게 만드는 것입니다. 작업 증명(Proof of Work)과 지분 증명(Proof of Stake)과 같은 서로 다른 프로토콜들은 이 문제를 각기 다른 방식으로 해결합니다.
지분 증명은 이더리움 네트워크와 오늘날 수많은 블록체인이 사용하는 합의 메커니즘의 기반이 됩니다. 핵심 개념은 다음과 같습니다:
검증자는 이더리움 메인넷의 스마트 계약에 $ETH 토큰 형태로 자본을 스테이킹합니다
스테이킹된 ETH는 담보 역할을 하며, 검증자가 블록체인의 현재 상태에 대해 거짓말을 하거나 다른 검증자의 요청에 응답하지 않는 등 악의적인 행동을 할 경우 소멸될 수 있습니다
이후 검증자는 생성되는 새 블록의 유효성을 확인하고, 때로는 직접 블록을 생성할 책임이 있습니다
지분이 걸려 있기 때문에 검증자로서 거짓말을 하면 스테이킹한 자본을 잃을 수 있습니다. 따라서 검증자들은 자신의 행동에 대해 거짓말을 하지 않도록 경제적 유인을 받습니다.
지분 증명 시스템은 작업 증명 대비 다양한 장점을 지닙니다:
에너지 사용량 감소: 이더리움을 PoW에서 PoS로 전환함으로써 전 세계 에너지 사용량을 0.2% 절감했습니다. 전 세계적 규모로 볼 때 이는 엄청난 양의 에너지 절약입니다.
낮은 진입 장벽: 작업 증명에서는 채굴자들이 채굴을 위해 고가의 특수 하드웨어를 보유해야 합니다. 또한 전기 비용을 부담하고 하드웨어를 관리하며 원활한 운영을 유지할 인력을 확보해야 합니다. 게다가 계산 능력의 발전에 따라 이 하드웨어를 지속적으로 업그레이드해야 합니다. 지분 증명에서는 단독 검증자를 운영하려면 최소 32 ETH의 스테이킹이 필요하지만, 하드웨어 요구 사항은 크게 낮아져 훨씬 저렴해졌습니다. 따라서 32 ETH는 적절한 채굴 설비를 구축하는 데 드는 비용과 비교하면 매우 저렴한 수준입니다.
중앙화 위험 감소: PoW에서 채굴장 구축에 필요한 비용과 전문 지식으로 인해 이더리움에는 중앙화 위험이 존재했습니다. 지분 증명을 통해 검증자는 훨씬 합리적인 하드웨어 요구사항으로 초기 자본만 스테이킹하면 되므로, 작업 증명보다 훨씬 더 많은 노드가 네트워크 보안을 돕고 있습니다. 현재 이더리움에는 60만 명 이상의 활성 검증자가 있으며, 9만 명 이상이 검증자가 되기 위해 대기 중입니다.
ETH 발행량 감소: 에너지 요구량과 비용이 낮아짐에 따라 검증자 유인에 필요한 ETH가 줄어들어, 시간이 지남에 따라 발행되는 ETH 총량이 전반적으로 감소합니다. 이는 ETH 토큰의 전체적인 인플레이션 억제에 기여합니다.
증가된 페널티: 다수 공격에 대한 경제적 페널티는 작업 증명 방식의 하드웨어 비용에 비해 선불 자본 스테이킹이 필요하기 때문에 기하급수적으로 더 비쌉니다.
지분 증명(Proof of Stake)에서는 검증자(validator)가 새로운 블록을 생성하는 역할을 담당합니다. 블록체인마다 이를 다르게 지칭할 수 있습니다(예: 테조스(Tezos)에서는 베이커(Baker)라고 부름). 그러나 본 문서에서는 이더리움 생태계에서 사용되는 용어인 '검증자'를 사용하겠습니다.
지분 증명 세계에는 채굴자(miner)라는 개념이 존재하지 않으며, 어려운 수학적 퍼즐을 풀 필요도 없습니다.
검증자가 되려면 사용자는 이더리움 메인넷의 예치 계약에 32 ETH를 예치하고, 필요한 노드 소프트웨어(실행 클라이언트, 합의 클라이언트, 검증자 클라이언트)를 실행하기만 하면 됩니다.
실행 클라이언트는 작업 증명(PoW) 이더리움 환경에서 실행했을 법한 소프트웨어와 거의 동일합니다. 예를 들어 go-ethereum(Geth) 같은 것이죠. 이 클라이언트는 EVM 내에서 트랜잭션을 실행하고 상태 변화를 파악하는 역할을 합니다. 합의 클라이언트는 비콘 체인을 통해 체인 내 다른 노드들과 합의를 이루는 책임을 지며, 검증자 클라이언트는 블록에 대한 투표를 수행하고 필요 시 새 블록을 생성하는 역할을 담당합니다.
검증자는 이더리움 네트워크 내 동료 노드로부터 새 블록을 수신합니다. 검증자는 해당 블록 내 트랜잭션을 재실행하여 블록의 유효성을 확인한 후, 블록을 지지하는 증명(긍정적 투표)을 전체 네트워크에 전송합니다. 블록을 지지하는 충분한 투표가 모이면 해당 블록이 체인에 추가됩니다. 이 과정은 향후 블록에 대해 반복됩니다.
지분 증명(Proof of Stake) 이더리움에서는 12초마다 새로운 블록이 생성되며, 이때 검증자 중 한 명이 무작위로 블록 제안자로 선정됩니다. 제안자로 선정된 검증자는 새로운 블록을 생성하고 이를 다른 노드에 전송하는 역할을 맡습니다. 이후 해당 노드들은 해당 블록에 찬성 또는 반대 투표를 할 수 있습니다.
검증자가 되는 것은 이더리움 네트워크 보안을 돕기 위한 약속입니다. 검증자는 블록 제안 및 검증에 참여하기 위해 충분한 하드웨어, 인터넷 연결성 및 가동 시간을 유지해야 합니다. 그 대가로 ETH로 보상을 받습니다.
검증자가 약속을 지키지 못하면 ETH 보상을 받지 못합니다. 요청 시 참여하지 못할 경우(예: 블록 투표 요청 시) ETH 보상을 받지 못합니다. 부정직하거나 악의적인 행동을 할 경우, 스테이크가 삭감되어 재정적 손실을 입을 뿐만 아니라 검증자 자격을 박탈당할 수 있습니다.
악의적인 행동에는 12초 단일 시간 내에 여러 블록을 제안하거나 블록 검증 과정에서 허위 증명을 제출하는 등의 행위가 포함될 수 있습니다. 이러한 악의적 활동으로 인해 삭감되는 ETH의 양은 동일한 시기에 다른 검증자들도 얼마나 삭감되었는지에 따라 달라집니다. 이는 단일 검증자의 인터넷 연결 장애가 네트워크 공격을 위해 악의적으로 행동하는 수백 명의 검증자들이 공모하는 것과 동일한 처벌을 받아서는 안 되기 때문입니다.
가끔 인터넷 지연과 같은 문제로 인해 두 검증자가 블록체인의 현재 상태에 대해 서로 다른 시각을 가질 수 있으며, 따라서 유효한 새 블록을 구성하는 요소에 대해서도 서로 다른 시각을 가질 수 있습니다. 이를 블록체인의 포크라고 합니다.
일반적으로 네트워크가 최적의 상태로 정직하게 작동할 때는 체인 최상단에 단 하나의 블록만 존재하며, 모든 검증자가 이에 동의합니다. 그러나 포크 발생 시에는 단일 체인으로 수렴하여 네트워크의 현재 상태에 대한 단일 시각을 확보하는 방법이 중요합니다.
상태 분할을 방지하고 포크가 지나치게 오래 지속되는 것을 막기 위해 "올바른 체인"을 선택해야 합니다.
이를 위해 지분 증명 이더리움은 LMD-GHOST라는 알고리즘을 사용합니다. 이 알고리즘은 역사상 가장 많은 인증을 받은 포크를 식별하는 방식으로 작동합니다. 예를 들어, 체인이 어느 시점에서 두 개로 분할되고 서로 다른 검증자들이 서로 다른 믿음을 가질 경우, LMD-GHOST는 두 포크 중 어느 쪽이 더 많은 긍정적 투표(즉, 네트워크 내 다수 검증자에 의해 승인된)를 받았는지 파악합니다. 그러면 나머지 검증자들은 다수 체인에서 재개하는 방향으로 수렴하고 다른 포크는 폐기됩니다.
때로는 이 과정이 일시적 포크의 일부로 검증된 거래가 다른 포크로 대체될 때 롤백될 수 있음을 의미하기도 합니다. 이는 최종성(Finality) 개념으로 자연스럽게 이어지는 부분입니다.
이더리움에서 거래는 변경 불가능한 블록의 일부가 되었을 때 확정성을 얻습니다. 즉, 해당 블록 내 거래는 롤백될 수 없으며, 적어도 현실적으로 불가능합니다.
PoS 이더리움에서는 "체크포인트" 블록을 통해 이를 관리합니다. 에포크라고 불리는 32개 블록마다 체크포인트 블록이 생성됩니다. 검증자들은 개별 블록에 대한 투표와 함께, 에포크마다 체크포인트 블록 쌍에 대해서도 투표합니다.
예를 들어, 블록 N이 체크포인트 블록이라면, 블록 N+32도 체크포인트 블록입니다. 검증자들은 체인의 유효한 시퀀스로 간주하는 쌍(블록 N, 블록 N+32)에 투표합니다. 해당 쌍에 충분한 찬성표가 모이면:
💡
참고: 이전 블록 N은 에포크(블록 N - 32, 블록 N) 동안 투표될 당시 이미 정당화 상태여야 합니다.
블록이 최종 확정 상태에 진입하면, 공격자가 이를 되돌리려면 막대한 자금을 투입해야 합니다. 지분 증명(PoS) 시스템에서는 네트워크 전체 지분의 33%를 통제할 경우 이론적으로 일부 이력을 재작성할 수 있습니다. 따라서 최종 확정된 블록을 되돌리려면 공격자는 스테이킹된 ETH 총 공급량의 최소 1/3을 스테이킹해야 합니다. 만약 그 정도의 자금을 확보했다면, 체크포인트 블록 쌍(블록 N, 블록 N + 32)에 반대 투표를 하여 블록 N이 절대 최종 확정되지 못하게 할 수 있습니다.
막대한 비용이 드는 것 외에도 네트워크에는 이를 우회하는 방법이 존재합니다. 4개 에포크(128개 블록) 이상 동안 최종 확정된 블록이 없으면, 네트워크는 다수결을 저지하고 투표 통과를 막으려는 소수 검증자 집단(33%)의 스테이킹을 삭감하기 시작합니다. 이를 통해 다수파가 다시 권력을 회복하고 체인을 최종 확정할 수 있게 됩니다.
그러나 모든 것이 장밋빛인 것은 아닙니다. 수많은 장점에도 불구하고, 지분 증명은 합의 메커니즘을 활발한 연구 및 혁신 분야로 유지시키는 몇 가지 단점을 지니고 있습니다.
지분 증명은 작업 증명에 비해 훨씬 신생 기술이며 실전 검증을 덜 거쳤습니다. 작업 증명은 비트코인 탄생 이후 10년 넘게 시간의 시험을 견뎌냈습니다. 사실 비트코인과 그 프로토콜 구현은 세계 최대의 버그 바운티라고 할 수 있습니다.
지분 증명 프로토콜은 코드 구현이 훨씬 복잡합니다. 이는 버그 발생 위험이 높고 문제가 발생할 가능성이 크다는 의미이기도 합니다.
이러한 이유로 이더리움 커뮤니티 내외부 많은 이들이 합의 메커니즘을 지속적으로 개선하는 방안을 여전히 적극적으로 연구하고 있습니다.
다음은 선택 사항이지만, 지분 증명에 대한 이해를 더욱 깊게 하는 데 도움이 될 만한 권장 추가 자료입니다:
https://vitalik.eth.limo/general/2017/12/31/pos_faq.html
https://bitcoinmagazine.com/culture/what-proof-of-stake-is-and-why-it-matters-1377531463
https://vitalik.eth.limo/general/2020/11/06/pos2020.html
원본 : https://learnweb3.io/degrees/ethereum-developer-degree/sophomore/how-does-proof-of-stake-work/
블록체인 트위터 : https://x.com/yonggal05739034
Providers, Signers, ABIs, and Token Approval Flow - LearnWeb3 번역 (1) | 2025.10.05 |
---|---|
Digging deeper into Solidity's syntax - LearnWeb3 번역 (0) | 2025.10.05 |
작업 증명(Proof of Work)은 어떻게 작동하나요? - LearnWeb3-번역 (0) | 2025.10.03 |
What is Space and Time? [Select * from ETHEREUM.Transaction ] (1) | 2023.05.05 |
What is Truflation ? 트루플레이션이란? (0) | 2023.05.05 |