이더리움 블록이 완결되는 데는 약 15분이 걸립니다. 하지만 이더리움의 합의 메커니즘이 블록을 더 효율적으로 검증하도록 만들어 완결성 도달 시간을 획기적으로 줄일 수 있습니다. 15분을 기다리는 대신, 동일한 슬롯 내에서 블록이 제안되고 완결될 수 있습니다. 이 개념을 **단일 슬롯 완결성(SSF)**이라고 합니다.
완결성이란 무엇인가요?
이더리움의 지분 증명(PoS) 기반 합의 메커니즘에서 완결성이란, 전체 스테이킹된 ETH의 최소 33%를 소각하지 않고는 블록체인에서 블록을 변경하거나 제거할 수 없다는 보장을 의미합니다. 이는 '암호경제적(crypto-economic)' 보안입니다. 체인의 순서나 내용을 변경하는 데 엄청난 비용이 수반되어 합리적인 경제 주체라면 이를 시도하지 않을 것이라는 확신에서 비롯되기 때문입니다.
왜 더 빠른 완결성을 목표로 하나요?
현재의 완결성 도달 시간은 너무 긴 것으로 나타났습니다. 대부분의 사용자는 완결성을 위해 15분을 기다리고 싶어 하지 않으며, 높은 트랜잭션 처리량을 원하는 앱과 거래소 입장에서도 트랜잭션이 영구적으로 확정되었는지 확인하기 위해 그렇게 오래 기다려야 하는 것은 불편합니다. 블록 제안과 완결 사이에 지연이 있으면 공격자가 특정 블록을 검열하거나 MEV를 추출하는 데 사용할 수 있는 짧은 재구성(reorg)의 기회가 생기기도 합니다. 블록을 단계별로 업그레이드하는 메커니즘 또한 상당히 복잡하며, 보안 취약점을 해결하기 위해 여러 번 패치되었기 때문에 이더리움 코드베이스에서 미묘한 버그가 발생할 가능성이 높은 부분 중 하나입니다. 완결성 도달 시간을 단일 슬롯으로 줄이면 이러한 문제를 모두 없앨 수 있습니다.
탈중앙화 / 시간 / 오버헤드의 트레이드오프
완결성 보장은 새 블록의 즉각적인 속성이 아닙니다. 새 블록이 완결되는 데는 시간이 걸립니다. 그 이유는 네트워크에 스테이킹된 전체 ETH의 최소 2/3를 대표하는 검증자들이 블록에 투표("증명")해야만 해당 블록이 완결된 것으로 간주되기 때문입니다. 네트워크의 각 검증 노드는 블록이 2/3 임계값에 도달했는지 여부를 알기 위해 다른 노드의 증명을 처리해야 합니다.
완결성에 도달하는 데 허용되는 시간이 짧을수록 증명 처리를 더 빨리 수행해야 하므로 각 노드에서 더 많은 컴퓨팅 파워가 필요합니다. 또한 네트워크에 검증 노드가 많을수록 각 블록에 대해 처리해야 할 증명이 많아져 필요한 처리 능력이 더욱 증가합니다. 필요한 처리 능력이 커질수록 각 검증 노드를 실행하는 데 더 비싼 하드웨어가 필요하므로 참여할 수 있는 사람의 수가 줄어듭니다. 블록 간의 시간을 늘리면 각 노드에 필요한 컴퓨팅 파워는 줄어들지만, 증명이 더 느리게 처리되므로 완결성 도달 시간은 길어집니다.
따라서 오버헤드(컴퓨팅 파워), 탈중앙화(체인 검증에 참여할 수 있는 노드 수), 완결성 도달 시간 사이에는 트레이드오프가 존재합니다. 이상적인 시스템은 최소한의 컴퓨팅 파워, 최대한의 탈중앙화, 최소한의 완결성 도달 시간 사이에서 균형을 이룹니다.
이더리움의 현재 합의 메커니즘은 다음과 같은 방법으로 이 세 가지 매개변수의 균형을 맞췄습니다.
- 최소 스테이크를 32 ETH로 설정. 이는 개별 노드가 처리해야 하는 검증자 증명 수의 상한선을 설정하며, 결과적으로 각 노드의 컴퓨팅 요구 사항에 대한 상한선을 설정합니다.
- 완결성 도달 시간을 약 15분으로 설정. 이는 일반 가정용 컴퓨터에서 실행되는 검증자가 각 블록에 대한 증명을 안전하게 처리할 수 있는 충분한 시간을 제공합니다.
현재의 메커니즘 설계에서 완결성 도달 시간을 줄이려면 네트워크의 검증자 수를 줄이거나 각 노드의 하드웨어 요구 사항을 늘려야 합니다. 하지만 증명 처리 방식을 개선하면 각 노드의 오버헤드를 늘리지 않고도 더 많은 증명을 집계할 수 있습니다. 더 효율적인 처리를 통해 두 에포크에 걸쳐서가 아니라 단일 슬롯 내에서 완결성을 결정할 수 있게 될 것입니다.
SSF로 가는 길
현재의 합의 메커니즘은 블록을 검증하기 위해 각 검증자가 처리해야 하는 메시지 수를 줄이기 위해 위원회라고 알려진 여러 검증자의 증명을 결합합니다. 모든 검증자는 각 에포크(32 슬롯)마다 증명할 기회를 갖지만, 각 슬롯에서는 '위원회'라고 하는 일부 검증자만 증명합니다. 이들은 서브넷으로 나뉘어 그중 몇 명의 검증자가 '어그리게이터(aggregator)'로 선택되는 방식으로 이를 수행합니다. 이 어그리게이터들은 서브넷 내의 다른 검증자들로부터 받은 모든 서명을 하나의 집계 서명으로 결합합니다. 가장 많은 개별 기여를 포함한 어그리게이터가 자신의 집계 서명을 블록 제안자에게 전달하고, 블록 제안자는 이를 다른 위원회의 집계 서명과 함께 블록에 포함시킵니다.
이 프로세스는 32 slots * 64 committees * 256 validators per committee = 524,288 validators per epoch이기 때문에 모든 검증자가 각 에포크에서 투표할 수 있는 충분한 용량을 제공합니다. 작성 시점(2023년 2월) 기준으로 약 513,000명의 활성 검증자가 있습니다.
이 체계에서는 모든 검증자가 전체 에포크에 걸쳐 증명을 분산시켜야만 블록에 투표할 수 있습니다. 하지만 모든 검증자가 모든 슬롯에서 증명할 기회를 갖도록 메커니즘을 개선할 수 있는 잠재적인 방법들이 있습니다.
이더리움 합의 메커니즘이 설계된 이후, 서명 집계 체계(BLS)는 처음 생각했던 것보다 훨씬 더 확장성이 뛰어난 것으로 밝혀졌으며, 클라이언트가 서명을 처리하고 검증하는 능력 또한 향상되었습니다. 엄청난 수의 검증자로부터 오는 증명을 단일 슬롯 내에서 처리하는 것이 실제로 가능하다는 사실이 밝혀졌습니다. 예를 들어, 100만 명의 검증자가 각 슬롯에서 두 번씩 투표하고 슬롯 시간을 16초로 조정할 경우, 노드는 슬롯 내에서 100만 개의 증명을 모두 처리하기 위해 초당 최소 125,000개의 집계 서명을 검증해야 합니다. 실제로 일반 컴퓨터가 하나의 서명을 검증하는 데 약 500나노초가 걸리므로, 125,000개의 검증은 약 62.5밀리초 만에 완료될 수 있으며, 이는 1초 임계값에 훨씬 못 미치는 시간입니다.
예를 들어 슬롯당 무작위로 선택된 125,000명의 검증자로 구성된 슈퍼 위원회(supercommittee)를 만들면 효율성을 더욱 높일 수 있습니다. 이 검증자들만 블록에 투표할 수 있으므로, 이 일부 검증자들만이 블록의 완결 여부를 결정합니다. 이것이 좋은 아이디어인지 아닌지는 커뮤니티가 이더리움에 대한 성공적인 공격 비용이 얼마나 되기를 선호하는지에 달려 있습니다. 왜냐하면 공격자가 전체 스테이킹된 이더의 2/3를 필요로 하는 대신, 해당 슈퍼 위원회 내 스테이킹된 이더의 2/3만으로도 부정직한 블록을 완결시킬 수 있기 때문입니다. 이는 여전히 활발히 연구 중인 분야이지만, 애초에 슈퍼 위원회가 필요할 만큼 충분히 큰 검증자 세트의 경우, 그 하위 위원회 중 하나를 공격하는 비용은 엄청나게 높을 것으로 보입니다(예: ETH로 환산한 공격 비용은 2/3 * 125,000 * 32 = ~2.6 million ETH가 될 것입니다). 공격 비용은 검증자 세트의 크기를 늘려 조정할 수 있습니다(예: 공격 비용이 100만 이더, 400만 이더, 1,000만 이더 등과 같아지도록 검증자 크기를 조정). 커뮤니티의 사전 설문조사 (opens in a new tab)에 따르면 100만200만 이더가 허용 가능한 공격 비용으로 보이며, 이는 슈퍼 위원회당 약 65,53697,152명의 검증자를 의미합니다.
하지만 검증은 진정한 병목 현상이 아닙니다. 검증 노드에 실제로 부담을 주는 것은 서명 집계입니다. 서명 집계를 확장하려면 각 서브넷의 검증자 수를 늘리거나, 서브넷 수를 늘리거나, 추가적인 집계 계층을 추가(즉, 위원회의 위원회를 구현)해야 할 것입니다. 해결책의 일부는 제안자-빌더 분리(PBS) 및 댕크샤딩 하에서 블록 생성 및 롤업 데이터에 대한 약속(commitment) 생성을 전문 블록 빌더에게 아웃소싱하는 것과 유사하게, 전문 어그리게이터를 허용하는 것일 수 있습니다.
SSF에서 포크 선택 규칙의 역할은 무엇인가요?
오늘날의 합의 메커니즘은 완결성 가젯(검증자의 2/3가 특정 체인에 증명했는지 여부를 결정하는 알고리즘)과 포크 선택 규칙(여러 옵션이 있을 때 어느 체인이 올바른지 결정하는 알고리즘) 간의 긴밀한 결합에 의존합니다. 포크 선택 알고리즘은 마지막으로 완결된 블록 이후의 블록만 고려합니다. SSF 하에서는 블록이 제안되는 동일한 슬롯에서 완결성이 발생하기 때문에 포크 선택 규칙이 고려할 블록이 전혀 없을 것입니다. 이는 SSF 하에서는 포크 선택 알고리즘 또는 완결성 가젯 중 하나만 항상 활성화된다는 것을 의미합니다. 완결성 가젯은 검증자의 2/3가 온라인 상태이고 정직하게 증명하는 블록을 완결시킵니다. 블록이 2/3 임계값을 초과하지 못하면 포크 선택 규칙이 개입하여 어느 체인을 따를지 결정합니다. 이는 또한 약간의 추가적인 뉘앙스가 있긴 하지만, 1/3 이상의 검증자가 오프라인 상태가 된 체인을 복구하는 비활동 누수 메커니즘을 유지할 기회를 제공합니다.
미해결 문제
서브넷당 검증자 수를 늘려 집계를 확장할 때의 문제는 피어 투 피어 네트워크에 더 큰 부하를 초래한다는 것입니다. 집계 계층을 추가할 때의 문제는 엔지니어링이 상당히 복잡하고 지연 시간이 늘어난다는 것입니다(즉, 블록 제안자가 모든 서브넷 어그리게이터로부터 응답을 받는 데 더 오래 걸릴 수 있습니다). 또한 BLS 서명 집계를 사용하더라도 각 슬롯에서 현실적으로 처리할 수 있는 것보다 네트워크에 더 많은 활성 검증자가 있는 시나리오를 어떻게 처리해야 할지도 명확하지 않습니다. 한 가지 잠재적인 해결책은 SSF 하에서는 모든 검증자가 모든 슬롯에서 증명하고 위원회가 없기 때문에 유효 잔고에 대한 32 ETH 상한을 완전히 제거하는 것입니다. 즉, 여러 검증자를 관리하는 운영자가 스테이크를 통합하여 더 적은 수의 검증자를 실행할 수 있게 되어, 전체 검증자 세트를 처리하기 위해 검증 노드가 처리해야 하는 메시지 수를 줄일 수 있습니다. 이는 대규모 스테이커들이 자신의 검증자를 통합하는 데 동의하는 것에 달려 있습니다. 또한 언제든지 검증자 수나 스테이킹된 ETH의 양에 고정된 상한을 부과하는 것도 가능합니다. 하지만 이를 위해서는 어떤 검증자가 참여할 수 있고 어떤 검증자가 참여할 수 없는지 결정하는 메커니즘이 필요하며, 이는 원치 않는 부차적인 영향을 미칠 수 있습니다.
현재 진행 상황
SSF는 연구 단계에 있습니다. 버클 트리 및 댕크샤딩과 같은 다른 주요 업그레이드 이후에나 도입될 가능성이 높으며, 출시까지는 몇 년이 걸릴 것으로 예상됩니다.
더 읽어보기
페이지 최근 업데이트: 2026년 2월 23일