
비탈릭의 PoS 단순화 제안: SSF 이후 각 슬롯에서 8192개의 서명 사용 유지
글: Vitalik Buterin, ethresearch
번역: 송설, 금색재경
이더리움과 다른 대부분의(최종성 기반) 지분 증명 시스템 사이의 주요 차이점은 이더리움이 매우 많은 검증자 개체를 지원하려 한다는 점이다. 현재 우리는 895,000개의 검증자 개체를 보유하고 있으며, 단순한 짐프 법칙(Zipf's Law) 분석에 따르면 이는 수만 명의 개별 개인 또는 실체가 독립된 검증자임을 의미한다. 이 접근 방식의 목적은 탈중앙화를 지원하고, 일반 개인도 스테이킹에 참여할 수 있도록 하되, 모든 사용자가 자신의 대리권을 포기하고 소수의 스테이킹 풀 중 하나에게 제어권을 넘길 필요가 없도록 하는 것이다.
그러나 이러한 방법은 체인이 각 슬롯마다 엄청난 수의 서명을 처리해야 한다는 부담을 수반한다(현재 약 28,000개; SSF 이후 1,790,000개). 이는 매우 높은 부하이며, 이를 지원하기 위해 상당한 기술적 타협이 필요하다:
-
여러 서브넷 간에 서명을 분할하는 복잡한 증명 전파 메커니즘이 필요하며, BLS 서명 연산의 극한 최적화 등을 통해 이러한 서명들을 검증해야 한다.
-
양자 저항성이 있는 대안으로 충분히 효율적인 명확한 방안이 없다.
-
뷰 머징(view merging)과 유사한 포크 선택 수정이 더 복잡해지며, 개별 서명을 추출할 수 없다는 점에서 어려움이 있다.
-
서명 수가 많기 때문에 SNARK 처리가 어렵다. Helios는 동기화 위원회 서명이라는 전용 추가 서명 위에서 작동해야 한다.
-
두 개 대신 세 개의 서브슬롯을 요구함으로써 안전한 최소 슬롯 시간을 늘린다.
서명 집약 시스템은 겉보기에 합리적으로 보이지만, 실제로는 시스템 전반에 걸쳐 구조적 복잡성을 만들어낸다.
게다가, 이 방식은 자기 목표조차 달성하지 못한다. 스테이킹의 최소 요건은 여전히 32 ETH이며, 이는 많은 사람들에게 여전히 접근하기 어려운 수준이다. 논리적으로 장기적으로 모두가 서명에 참여하는 시스템이 일반인에게 스테이킹을 제공한다는 것은 실현 가능해 보이지 않는다. 만약 이더리움에 5억 명의 사용자가 있고 그 중 10%가 스테이킹을 한다면, 각 슬롯마다 1억 개의 서명이 발생하게 된다. 정보 이론적으로 보면, 이 설계에서 슬래싱(slashing) 처리를 위해서는 각 슬롯마다 최소 12.5MB의 데이터 가용성이 필요하며, 이는 거의 완전한 danksharding의 목표와 동일한 수준이다(!!!). 아마도 기술적으로는 가능할 수 있지만, 스테이킹 자체가 데이터 가용성 샘플링에 의존하도록 만드는 것은 상당한 복잡성 증가를 초래한다—이는 세계 인구의 약 0.6%만 스테이킹하는 경우에도 해당되며, 수많은 서명을 검증하는 계산 문제는 아직 고려되지도 않았다.
따라서, 암호학자들이 매 슬롯마다 무한정 증가하는 서명 수를 가능하게 할 마법의 총알(또는 마법의 방탄복)을 기대하는 대신, 나는 철학적 전환을 제안한다: 그런 기대 자체를 처음부터 포기하는 것이다. 이는 PoS 설계 공간을 크게 확장시켜 기술적 단순화를 가능하게 하고, Helios가 이더리움 컨센서스 위에서 직접 SNARK를 수행할 수 있게 하여 보안을 강화하며, Winternitz처럼 오래되고 지루하지만 존재하는 서명 방식조차 양자 저항성 문제를 해결할 수 있도록 만들 수 있다.
왜 "단지 위원회만 사용"하면 안 되는가?
이 정확한 문제에 직면한 비이더리움 블록체인들은 종종 기반 위원회 기반 보안 접근 방식을 사용한다. 각 슬롯에서 N명의 검증자(예: N ≈ 1000)를 무작위로 선정하여 해당 슬롯의 작업을 완료하게 한다. 그러나 이 방법이 충분하지 않은 이유를 기억할 필요가 있다: 책임성(lack of accountability)이 부족하기 때문이다.
이유를 이해하기 위해, 51% 공격이 발생했다고 가정하자. 이것은 최종성 역전 공격이거나 검열 공격일 수 있다. 공격을 실행하려면 여전히 대부분의 스테이킹을 통제하는 경제적 참여자들이 공격 소프트웨어를 실행하고, 위원회에 선출된 모든 검증자들과 함께 공격에 참여하기로 동의해야 한다. 무작위 추출의 수학적 원리는 이것을 보장한다. 그러나 이러한 공격에 대해 감수해야 할 처벌은 거의 없는데, 공격에 동의한 대부분의 검증자들이 위원회 멤버로 선정되지 않아 실제로 드러나지 않기 때문이다.
현재 이더리움은 반대 극단을 취하고 있다. 51% 공격이 발생하면, 공격에 참여한 전체 검증자 집합의 대부분이 슬래싱된다. 현재 공격 비용은 약 900만 ETH(약 200억 달러)이며, 네트워크 싱크가 공격자에게 최대한 유리하게 끊어진다고 가정한 경우이다.
나는 이것이 너무 높은 비용이며 과도하다고 생각하며, 이 문제에서 어느 정도 타협할 수 있다고 본다. 공격 비용이 100~200만 ETH 수준이라도 충분히 효과적일 것이다. 또한, 이더리움의 현재 주요 중앙화 위험은 완전히 다른 지점에 있다: 최소 스테이킹 금액이 거의 0에 가까워지면, 대규모 스테이킹 풀들 간의 실질적인 힘의 차이는 크지 않을 것이다.
그래서 나는 온건한 해결책을 주장한다: 검증자의 책임성에서 일부 타협을 하지만, 여전히 슬래싱 가능한 ETH总量이 상당히 높게 유지되도록 하며, 그 대가로 작은 검증자 집합의 대부분의 이점을 얻는 것이다.
SSF 하에서 각 슬롯당 8192개의 서명은 어떻게 구성될 것인가?
전통적인 두 단계 컨센서스 프로토콜(테ン더민트(Tendermint)가 사용하는 방식과 SSF가 불가피하게 사용하게 될 방식)을 가정하면, 각 참여 검증자는 슬롯 당 두 개의 서명이 필요하다. 우리는 이 현실을 우회해야 한다. 나는 이를 위한 세 가지 주요 방법을 본다.
방법 1: 탈중앙화 스테이킹 풀에 전력 투구
파이썬에는 매우 중요한 말이 있다:
무언가를 하는 한 가지 방법—바람직하게는 단 하나뿐인—명백한 방법이 있어야 한다.
스테이킹 평등화 문제에 대해 이더리움은 현재 이 규칙을 위반하고 있다. 우리는 (i) 소규모 개인 스테이킹과 (ii) 분산형 검증자 기술(DVT)을 이용한 탈중앙화 스테이킹 풀이라는 두 가지 서로 다른 전략을 동시에 시행하고 있기 때문이다. 위에서 언급한 이유로 (i)는 일부 개인 스테이커만을 지원할 수 있으며, 항상 최소 예치금이 너무 큰 사람들이 존재할 것이다. 그러나 이더리움은 (i)를 지원하기 위해 매우 높은 기술적 부담을 지고 있다.
가능한 해결책 중 하나는 (i)를 포기하고 (ii)에 전력 투구하는 것이다. 우리는 최소 스테이킹 금액을 4096 ETH로 올리고, 총 검증자 수를 4096명으로 제한할 수 있다(약 1670만 ETH). 소규모 스테이커들은 자금을 제공하거나 노드 운영자가 되어 DVT 풀에 참여할 것으로 예상된다. 공격자의 악용을 방지하기 위해, 노드 운영자 역할은 평판 기반으로 제한되어야 하며, 풀들은 이를 통해 다양한 선택지를 제공하며 경쟁하게 될 것이다. 자금 제공은 무허가로 이루어질 수 있다.
우리는 처벌을 제한함으로써 이 모델 내에서 집단 스테이킹을 더욱 '관대하게' 만들 수 있다. 예를 들어, 제공된 스테이크 총량의 1/8까지로 제한할 수 있다. 이는 노드 운영자에 대한 신뢰를 줄이겠지만, 여기서 설명한 문제들 때문에 조심스럽게 다뤄야 한다.
방법 2: 이중 계층 스테이킹
우리는 두 개의 스테이킹 계층을 도입한다: 4096 ETH가 필요한 '헤비' 계층(최종성에 참여)과 최소 스테이킹 요건이 없으며(입출금 지연도 없고 슬래싱 리스크도 없음) 추가적인 보안 계층을 제공하는 '라이트' 계층. 블록이 최종화되기 위해서는 헤비 계층이 최종화해야 하며, 라이트 계층에서 온라인 상태인 경량 검증자의 >=50%가 이를 증명해야 한다.
이러한 이질성은 검열 저항성 및 공격 저항성에 유익하다. 공격이 성공하려면 헤비 계층과 라이트 계층 모두가 타락해야 하기 때문이다. 한 계층이 타락하고 다른 계층이 그렇지 않다면 체인은 정지하게 되며, 헤비 계층이 타락했을 경우 이를 처벌할 수 있다.
이 방법의 또 다른 장점은 라이트 계층이 애플리케이션 내 담보물로 동시에 사용되는 ETH를 포함할 수 있다는 점이다. 주요 단점은 소규모 스테이커와 대규모 스테이커 사이의 분열을 고착화함으로써 스테이킹의 평등성을 낮춘다는 점이다.
방법 3: 순차적 참여(즉, 책임 있는 위원회)
우리는 여기서 제안된 슈퍼 위원회 설계와 유사한 접근 방식을 취한다: 각 슬롯마다 현재 활성화된 4096명의 검증자를 선택하며, 각 슬롯 기간 동안 이 집합을 세심하게 조정하여 여전히 안전성을 유지한다.
그러나 우리는 이 프레임워크 내에서 '최대 효율'을 얻기 위해 다른 파라미터 선택을 한다. 특히, 검증자가 임의로 높은 잔액으로 참여할 수 있도록 하며, 검증자가 일정량 M 이상의 ETH를 보유할 경우(M은 변동 가능해야 함), 매 슬롯마다 위원회에 참여한다. 검증자가 N
여기서 우리는 흥미로운 레버리지를 가지고 있는데, 그것은 인센티브 목적의 '가중치'와 컨센서스 목적의 '가중치'를 분리하는 것이다: 위원회 내 각 검증자의 보상은 동일해야 하며(≤M ETH 검증자 기준), 평균 보상이 비례하도록 유지한다. 우리는 여전히 ETH를 가중치로 사용하여 위원회 내 검증자의 컨센서스 카운트를 진행할 수 있다. 이는 최종성을 깨뜨리기 위해선 위원회 내 ETH 총량의 1/3 초과가 필요하다는 것을 보장한다.
짐프 법칙 분석은 다음과 같이 ETH 수량을 계산한다:
각 잔액 수준의 제곱근 단계마다, 검증자의 수는 해당 잔액 수준에 반비례하며, 이 검증자들의 총 잔액은 동일하다.
따라서 위원회는 각 잔액 수준에서 동일한 양의 ETH가 참여하게 되며, 다만 장벽 M 이상의 수준(검증자가 항상 위원회에 있음)은 제외된다.
따라서 우리는 위의 각 K 검증자 수준에서 Log2(M) 수준과 K+K/2+...=2K 이상의 검증자를 갖는다. 따라서 K = 4096 / (Log2(M) + 2)이다.
가장 큰 검증자는 M*k ETH를 가진다. 우리는 거꾸로 계산할 수 있다: 가장 큰 검증자가 2^18 = 262,144 ETH를 가진다면, 이는 대략 M = 1024이고 k = 256임을 의미한다.
총 스테이킹된 ETH는 다음과 같다:
상위 512명 검증자의 전체 지분 (2^18*1 + 2^17*2 + ... + 2^10*2^8 = 2,359,296)
더 작은 지분의 무작위 샘플링 추가 (2^8*(2^9 + 2^8 + 2^7 + ...) ≈ 2^8 * 2^10 = 2^18)
총합 2,621,440 ETH를 얻으며, 공격 비용은 약 90만 ETH이다.
이 방법의 주요 단점은 프로토콜 내부에 더 많은 복잡성을 도입하여, 위원회 변경 시에도 여전히 컨센서스 보안을 확보할 수 있는 방식으로 검증자를 무작위로 선택해야 한다는 점이다.
주요 장점은 독립 스테이킹의 인식 가능한 형태를 유지하고, 단일 시스템을 보존하며, 최소 스테이킹 금액을 매우 낮은 수준(예: 1 ETH)까지 낮추는 것도 허용한다는 점이다.
결론
SSF 프로토콜 이후에도 슬롯당 8192개의 서명을 유지하기로 결정한다면, 기술 구현자와 경량 클라이언트 등의 보조 인프라 개발자들의 작업이 훨씬 쉬워질 것이다. 누구나 컨센서스 클라이언트를 실행하기가 더 쉬워지며, 사용자, 스테이킹 애호가 및 기타 관련자들이 즉시 이 가정 위에서 작업할 수 있다. 이더리움 프로토콜의 미래 부하는 더 이상 미지수가 아니다: 향후 하드포크를 통해 증가시킬 수 있지만, 개발자들이 기술이 충분히 발전하여 각 슬롯에서 더 많은 서명을 동일한 수준의 용이성으로 처리할 수 있다고 확신할 때만 그렇게 할 것이다.
남은 과제는 위의 세 가지 방법 중 어느 하나를 선택할지, 혹은 완전히 다른 방법을 선택할지 결정하는 것이다. 이는 우리가 어떤 트레이드오프에 대해 얼마나 편안함을 느끼는지에 관한 문제이며, 유동 스테이킹 등 관련 이슈들을 어떻게 해결할지에 대해서도, 이제는 훨씬 더 쉽게 다룰 수 있는 기술적 문제와 분리해서 해결할 수 있을 것이다.
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News














