
비탈릭: 왜 나는 EIP-1559의 가변 블록 용량을 걱정하지 않을까?
EIP-1559에 대한 비판 중 하나는 블록 크기가 더 이상 고정된 1250만 gas 제한이 아니라 [0, 2500만] 범위 내에서 가변적으로 변동한다는 점이다. 이로 인해 클라이언트는 이전보다 두 배에 달하는 부하를 처리해야 한다는 주장이다. 이 논리는 한 걸음 더 나아가 다음과 같이 전개된다. 만약 우리가 클라이언트가 이러한 높은 수준의 부하를 처리할 수 있다고 본다면, 그렇다면 언제든지 그만큼의 부하를 감당할 수 있어야 하며, 차라리 EIP-1559를 포기하고 블록 크기 제한을 단순히 두 배로 늘리는 쪽이 더 유용하다는 것이다.
이 아이디어의 핵심은, 대규모 블록의 주요 위험은 평균적인 블록 크기보다는 클라이언트를 통과하는 최대 규모의 블록에서 기인한다는 점이다. 그러나 나는 이 생각이 틀렸다고 본다(EIP-1559가 클라이언트에 주는 리스크는 기존의 고정된 gas 리밋 메커니즘보다 더 높지 않다). 아래에 그 이유를 설명한다.
복습: 왜 gas 리밋을 즉시 1억까지 올리지 않는가?
세 가지 이유가 있다:
1. 정상 상황에서의 블록 처리 시간 증가
현재 약 400ms 정도인 처리 시간이 약 3.2초로 증가하게 되며, 이는 여러 부정적 결과를 초래한다:
-
매우 높은 삼촌(uncle) 블록률로 인한 중심화
-
최고 사양의 노드를 제외하면 다른 모든 노드들이 동기화 유지가 어려워짐
-
최고 사양의 노드조차도 훨씬 더 많은 자원 소비 필요
-
일시적인 전원 차단 후 재동기화 지연 시간 증가 (예: 랩톱으로 노드 운영 시 집에서 카페로 이동하는 경우)
2. DoS 공격으로 인한 최악의 상황에서 블록 처리 시간 증가: 현재 20~80초에서 160~640초로 증가할 수 있음.
3. 저장소 성장률 증가
현재 월 약 50GB에서 월 약 400GB로 증가하며, 이는 다음을 초래한다:
-
동기화 속도 크게 저하
-
저장 공간 요구량 급증
-
대용량 데이터베이스 접근 속도 저하로 인한 디스크 처리 속도 저하
참고: 1번과 3번의 내용은 모두 장기적인 정상 사용 상황에 적용되며, 피크 부하 상황에는 해당하지 않는다. 따라서 피크 영향을 고려할 때는 2번에 집중하면 된다.
근거 1: EIP-2929가 EIP-1559의 단점을 이미 보완했다
EIP-2929는 스토리지 접근 연산의 gas 비용을 상향 조정하여, 최악의 DoS 공격 시 필요한 gas 소비량을 3배 증가시켰다. 이는 EIP-2929와 EIP-1559가 함께 작동할 경우, 실제로 최악의 상황에서 블록 처리에 드는 순수 부하가 현재보다 1.5배 감소했음을 의미한다.
여기서 자연스럽게 제기될 수 있는 질문은 "EIP-2929가 그렇게 좋다면, 왜 gas 리밋을 바로 2500만이나 3750만으로 올리지 않는가?"이다. 답은 간단하다: gas 리밋 증가를 막는 유일한 이유가 DoS 문제만은 아니다. 설령 DoS 문제가 완전히 해결된다 해도, 앞서 언급한 1번과 3번의 문제들은 가까운 미래에도 여전히 존재할 것이다. 따라서 EIP-2929로 얻은 여유분은 블록 용량을 크게 늘리는 데 사용될 수 없다.
근거 2: 동일한 수준의 DoS 공격이라면, 짧은 시간 동안의 피크 부하가 장시간 공격보다 훨씬 덜 해롭다
공격자가 체인에 공격을 가해 목표 용량의 2배에 달하는 최대 용량의 쓰레기 데이터로 블록을 채우고, 각 블록마다 gas 가격을 1.125배씩 올린다고 가정하자. 이 상승은 지수적으로 진행된다: 연속 5개의 꽉 찬 블록(약 65초) 생성 시 gas 가격은 1.8배, 5분 후에는 15배, 10분 후에는 225배까지 오른다. 공격을 유지하기 위해 공격자는 이처럼 급격히 상승하는 가격에 따라 모든 거래 수수료를 계속 지불해야 한다. 따라서 현실적인 공격 지속 시간은 약 5분 정도이다.
클라이언트가 이 5분 동안 생성된 블록들(각각 20~60초 처리 시간 소요)을 수신하면 어떻게 될까? 명백히 이 기간 동안 체인 처리 속도가 매우 느려질 것이다. 다수의 단기 포크가 발생할 것이다. 실제로 이러한 포크는 공격자가 공격 종료 후에도 적은 해시 파워(예: 약 20%)로도 체인 트랜잭션을 롤백할 수 있게 만든다. 이는 매우 심각한 상황이다.
그러나 이는 공격자가 1시간 또는 하루 이상 공격을 지속할 수 있는 것보다 훨씬 낫다. 현재 대부분의 거래 및 서비스는 이미 5분 이상의 확인 시간을 기다리고 있으며, 단 5분 내에 거래를 보내는 것이 어렵다는 이유로 타격을 입는 서비스는 극히 취약한 경우에 국한된다. 반면 롤백이나 서비스 거부가 수시간 또는 수일간 지속되는 경우(2016년 상하이 공격 사건처럼)는 훨씬 심각한 결과를 초래한다.
따라서 5분간 2500만 gas의 피크 부하를 경험하는 것은 2500만 gas 리밋을 영구적으로 설정하는 것보다 훨씬 낮은 리스크를 갖는다.
근거 3: 단기 피크는 이미 존재한다
작업증명(PoW) 마이닝이 본질적으로 따르는 포아송 과정(Poisson process)은 블록 생성 시점에 무작위성이 있음을 의미한다. 사실상 이러한 무작위성만으로도 일주일에 한 번 정도, 5분간 체인 용량의 두 배에 달하는 피크가 발생한다.
참고: 이는 동일한 용량의 블록들이 많이 발생하는 것이지, 대용량 블록이 많이 생기는 것은 아니지만, 내가 아는 한 단일 블록 처리에 소요되는 gas 비용이 초선형적으로 증가한다는 증거나 이유는 없다.
따라서 어느 정도의 피크 부하는 이미 알려진 변수이며, 지금까지 생태계는 이를 감내하면서도 큰 영향 없이 운영되어 왔다.
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News












