비탈릭 부테린: 왜 나는 EIP-1559의 가변 블록 용량에 대해 걱정하지 않는가

비탈릭 부테린
2021-02-25 15:40:39
수집
V신은 EIP-1559가 클라이언트에 미치는 위험이 고정 가스 한도 메커니즘보다 높지 않다고 생각한다.

이 글은 ETH 중국 사이트에 게시되었으며, 저자: Vitalik Buterin입니다.

EIP-1559에 대한 비판 중 하나는 블록 크기가 가변적이라는 점입니다. [0,25M] 범위 내에서 변동하며 더 이상 고정된 12.5M gas limit이 아니기 때문에 클라이언트가 두 배의 부하를 처리해야 한다는 것입니다. 이 주장은 클라이언트가 이렇게 높은 부하를 처리할 수 있다고 생각한다면, 그들은 언제든지 그렇게 높은 부하를 처리할 수 있어야 하므로 EIP-1559를 포기하고 블록 크기 제한을 두 배로 늘리는 것이 더 유용하다는 것으로 발전합니다.

이 아이디어의 핵심 관점은 대형 블록의 주요 위험이 평균 블록 크기가 아니라 클라이언트를 통해 전송되는 최대 블록에서 온다는 것입니다. 저는 이 생각이 잘못되었다고 생각합니다(따라서 EIP-1559가 클라이언트에 미치는 위험은 고정 gas limit 메커니즘보다 더 높지 않습니다). 다음은 제 이유입니다.

다시 살펴보기: gas limit을 즉시 100M으로 높이지 않는 이유는 무엇인가?

세 가지 이유가 있습니다:

1. 정상적인 경우 블록 처리 시간이 증가합니다.

현재 약 400ms에서 약 3.2s로 증가하며, 이는 많은 부정적인 결과를 초래합니다:

  • 매우 높은 고아 블록 비율로 인해 중앙 집중화가 발생합니다.

  • 전력 강한 노드를 제외한 모든 노드가 동기화를 유지하기 어려워집니다.

  • 전력 강한 노드조차도 더 많은 자원 소모가 필요합니다.

  • 짧은 정전(예: 노트북에서 노드를 실행 중일 때, 집에서 카페로 이동해야 할 경우) 후 재동기화 전에 더 긴 지연 시간이 발생합니다.

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 limit을 25M 또는 37.5M으로 직접 높이지 않나요?" 이 질문에 대한 답은 간단합니다: 이유 2는 gas 소모 증가를 피하는 유일한 이유가 아닙니다. DoS 문제가 완전히 해결되더라도, 이유 1과 이유 3 아래의 문제는 가시적인 미래에도 여전히 존재할 것입니다. 따라서 EIP-2929가 제공하는 추가적인 완화 부분은 블록 용량을 대폭 증가시키는 데 사용할 수 없습니다.

주장 2: 동일한 수준의 DoS 공격에 대해 짧은 시간 공격으로 인한 피크의 단점은 긴 시간 공격으로 인한 것보다 훨씬 적습니다.

공격자가 체인에 공격을 가하고 블록 용량 최대값(목표 용량의 2배)의 쓰레기 데이터를 블록에 채우면, 각 블록의 gas 가격이 1.125배 상승합니다. 이 상승폭은 기하급수적으로 증가합니다: 5개의 가득 찬 블록(약 65초)을 지속적으로 생성하면 gas 가격이 1.8배 상승하고, 5분 후에는 gas 가격이 15배 상승합니다(10분 후에는 225배 상승합니다). 공격을 유지하기 위해 공격자는 이러한 미친 가격 상승에 따라 모든 거래 수수료를 지불해야 합니다. 따라서 실제 공격이 지속될 수 있는 시간은 대략 5분입니다.

클라이언트가 이 5분 동안 생성된 블록(각각 20~60초의 처리 시간이 필요)을 받으면 어떻게 될까요? 분명히 이 시간 동안 체인의 처리 속도가 매우 느려질 것입니다. 매우 많은 단기 분기가 발생할 것입니다. 사실, 분기는 공격자가 공격 후에도 적은 해시 파워(예: 약 20%)로 체인 상의 거래를 롤백할 수 있음을 의미합니다. 이는 매우 나쁜 상황입니다.

하지만, 이는 공격자가 1시간 또는 하루 동안 공격을 지속할 수 있는 것보다 훨씬 나은 상황입니다. 현재 대부분의 거래와 기타 서비스는 확인 대기 시간이 이미 5분을 초과하며, 극히 취약한 서비스만이 파괴될 것입니다. 왜냐하면 이들에게는 5분 동안 거래를 보내는 것이 너무 어렵고, 롤백이나 서비스 거부는 몇 시간 또는 며칠 동안 지속되어야 하며, 2016년 상하이 공격 사건처럼 매우 심각한 결과를 초래할 수 있기 때문입니다.

따라서 5분 동안 2500만 gas의 피크에 도달하는 것은 2500만 gas limit의 위험보다 훨씬 낮습니다.

주장 3: 단기 피크가 이미 발생했습니다.

작업 증명 채굴의 고유한 포아송 과정(Poisson process)은 블록이 발행될 때 무작위성이 존재함을 의미합니다. 사실, 단순한 무작위성만으로도 매주 두 배의 체인 용량 피크가 발생하며, 피크는 5분 동안 지속됩니다.

참고: 이는 동일한 수의 대형 블록이 아니라 동일한 용량의 블록이 많이 발생하여 발생하는 것이지만, 제가 아는 한 단일 블록 처리에 소모되는 gas가 초선형적으로 증가한다는 증거나 이유는 없습니다.

따라서 어느 정도 피크를 사용하는 것은 알려진 수치이며, 생태계는 지금까지 그 영향을 무시할 수 있습니다.

체인캐처(ChainCatcher)는 독자들에게 블록체인을 이성적으로 바라보고, 리스크 인식을 실제로 향상시키며, 다양한 가상 토큰 발행 및 조작에 경계해야 함을 상기시킵니다. 사이트 내 모든 콘텐츠는 시장 정보나 관련 당사자의 의견일 뿐이며 어떠한 형태의 투자 조언도 제공하지 않습니다. 만약 사이트 내에서 민감한 정보를 발견하면 “신고하기”를 클릭하여 신속하게 처리할 것입니다.
체인캐처 혁신가들과 함께하는 Web3 세상 구축