비탈릭의 새로운 글 해석: 왜 Blob 공간이 효율적으로 사용되지 않는 롤업이 발전의 어려움에 빠졌는가?
작성자: Haotian
@VitalikButerin의 새로운 글에서 이더리움의 확장성에 대한 생각을 어떻게 이해해야 할까요? 누군가는 Vitalik이 Blob에 대한 명문을 외치고 있다고 말합니다, 너무 과장된 주장입니다.
그렇다면 Blob 데이터 패킷은 어떻게 작동할까요? 칸쿤 업그레이드 이후 Blob 공간이 왜 효율적으로 활용되지 못할까요? DAS 데이터 가용성 샘플링은 샤딩을 준비하기 위한 것인가요?
제 생각에, 칸쿤 업그레이드 이후 성능이 사용 가능해졌고, Vitalik은 Rollup 발전에 대해 걱정하고 있습니다. 왜일까요? 이제 제 이해를 이야기해 보겠습니다:
1) 이전에 여러 번 설명했듯이, Blob은 EVM calldata와 분리된 직접적으로 합의 계층에서 호출할 수 있는 임시 데이터 패킷입니다. 직접적인 이점은 EVM이 거래를 실행할 때 Blob 데이터를 접근하지 않아도 되므로 실행 계층의 계산 비용이 높아지지 않는다는 것입니다.
현재 여러 요소의 균형을 맞추면, 1개의 Blob 크기는 128k이며, 한 번의 배치에서 메인넷 거래는 최대 두 개의 Blob을 포함할 수 있습니다. 이상적인 경우, 하나의 메인넷 블록은 최종적으로 16MB, 약 128개의 Blob 데이터 패킷을 수용하는 것이 목표입니다.
따라서 Rollup 프로젝트 측은 가능한 한 Blob 블록 수, TPS 거래 용량, Blob 메인넷 노드 저장 비용 등의 요소를 균형 있게 조정해야 하며, 목표는 최적의 비용 대비 효과로 Blob 공간을 사용하는 것입니다.
@Optimism을 예로 들면, 현재 하루 약 50만 건의 거래가 이루어지고 있으며, 평균적으로 2분마다 한 번의 거래가 메인넷으로 배치되고, 한 번에 1개의 Blob 데이터 패킷을 포함합니다. 왜 1개를 포함하냐면, TPS가 이 정도로 많지 않기 때문입니다. 물론 두 개를 포함할 수도 있지만, 각 Blob의 용량이 가득 차지 않으면서 추가 저장 비용이 발생하므로 필요하지 않습니다.
Rollup 체인의 거래량이 증가함에 따라, 예를 들어 하루에 5000만 건의 거래를 처리해야 한다면 어떻게 해야 할까요? 1. 각 배치의 거래량을 압축하여 가능한 한 많은 거래를 Blob 공간에 담기; 2. Blob 수를 늘리기; 3. 배치 거래의 빈도를 줄이기;
2) 메인넷 블록이 수용할 수 있는 데이터 양은 Gas Limit 및 저장 비용의 영향을 받기 때문에, 1개의 블록에 128개의 Blob은 이상적인 상태입니다. 현재는 그렇게 많이 사용되지 않으며, Optimism은 2분마다 1개만 사용하고 있습니다. Layer2 프로젝트 측이 TPS를 높이고 시장 사용자 수와 생태계 번영도를 확장할 수 있는 공간이 여전히 큽니다.
따라서 칸쿤 업그레이드 이후 한동안 Rollup은 Blob 사용 수, 빈도 및 Blob 공간 경매 사용 등에서 "경쟁"하지 않을 것입니다.
Vitalik이 Blobscription 명문을 제안한 이유는 이러한 명문이 거래량을 일시적으로 증가시켜 Blob 사용 수요를 증가시킬 수 있기 때문입니다. 따라서 Blob의 크기가 확대될 것이며, 명문을 예로 들면 Blob의 작동 메커니즘을 더 깊이 이해할 수 있습니다. Vitalik이 진정으로 표현하고자 하는 내용은 명문과 큰 관계가 없습니다.
이론적으로, 만약 layer2 프로젝트 측이 높은 빈도와 높은 용량으로 메인넷에 배치 거래를 하고, 매번 Blob 블록을 가득 채운다면, 그들이 높은 비용의 위조 거래 배치 비용을 감수할 의향이 있다면 다른 layer2의 Blob 정상 사용에 영향을 미칠 수 있습니다. 하지만 현재 상황은, 누군가가 BTC에 대해 51% 하드 포크 공격을 시도하는 것과 같으며, 이론적으로는 가능하지만 실제로는 이익 동기가 부족합니다.
따라서 이층에서 사용하는 Gas 비용은 "상대적으로 낮은" 구간에서 오랫동안 안정될 것이며, 이는 layer2 시장에 장기간의 "병력 증강" 황금 발전 창을 제공할 것입니다.
3) 그렇다면, 만약 언젠가 layer2 시장이 일정 수준으로 번영하여 매일 메인넷으로 배치되는 거래가 대량으로 이루어진다면, 현재 Blob 데이터 패킷이 부족하면 어떻게 해야 할까요? 이더리움은 이미 해결책을 제시했습니다: 데이터 가용성 샘플링 기술(DAS)을 채택하는 것입니다:
간단히 이해하자면, 원래 하나의 노드가 저장해야 하는 데이터를 여러 노드에 동시에 분산할 수 있습니다. 예를 들어, 각 노드가 전체 Blob 데이터의 1/8을 저장하고, 8개의 노드가 하나의 그룹을 이루어 DA 능력을 충족시킵니다. 이는 현재 Blob 저장 용량을 8배로 확장하는 것과 같습니다. 이는 사실 미래의 샤딩 단계에서 해야 할 일입니다.
하지만 현재 Vitalik은 이 점을 여러 번 강조하고 있으며, 이는 layer2 프로젝트 측에 경고하는 것처럼 보입니다: 이더리움의 DA 능력이 비싸다고 불평하지 말고, 현재 TPS 용량조차 Blob 데이터 패킷의 능력을 극대화하지 못하고 있으니, 생태계를 강화하고 사용자와 거래량을 확대하는 데 힘쓰라는 것입니다. DA 탈출을 생각하며 간단히 체인을 발행하는 것에 대해 고민하지 말라는 것입니다.
이후 Vitalik은 현재 핵심 Rollup 중에서 오직 Arbitum만이 Stage 1에 도달했다고 덧붙였습니다. @DeGateDex, Fuel 등은 Stage 2에 도달했지만, 그들은 아직 더 넓은 그룹에 익숙하지 않습니다. Stage 2는 Rollup 안전성의 최종 목표이며, 극소수의 Rollup만이 Stage 1에 도달했으며, 대부분의 Rollup은 Stage 0 단계에 있습니다. 이는 Rollup 산업의 발전이 Vitalik을 매우 걱정하게 만든다는 것을 보여줍니다.
4) 사실, 단순히 확장성 병목 문제에 관해서는 Rollup layer2 솔루션이 성능을 향상시킬 수 있는 공간이 여전히 큽니다.
데이터 압축을 통해 Blob 공간을 더 효율적으로 사용하고, OP-Rollup은 현재 이 작업을 수행하기 위한 전용 압축기 구성 요소를 가지고 있으며, ZK-Rollup은 본질적으로 체인 외부에서 SNARK/STARK 증명을 압축하여 메인넷에 제출하는 것입니다.
가능한 한 layer2가 메인넷에 의존하지 않도록 하며, 특별한 경우에만 낙관적 증명 기술을 사용하여 L2의 안전성을 보장합니다. 예를 들어, Plasma의 대부분 데이터는 체인에 있지만, 출금 및 입금 시나리오는 모두 메인넷에서 발생하므로 메인넷은 그 안전성을 보장할 수 있습니다.
이는 layer2가 출금과 같은 중요한 작업만 메인넷과 강하게 연관시켜야 한다는 것을 의미합니다. 이렇게 하면 메인넷의 부담을 줄이고 L2 자체의 성능을 강화할 수 있습니다. 이전에 언급한 Sequencer의 병렬 처리 능력, 체인 외부에서 대량의 거래를 필터링하고 분류하는 것, 그리고 @MetisL2가 추진하는 혼합 Rollup, 일반 거래는 OP-Rollup을 통해, 특별한 출금 요청은 ZK Route를 통해 처리하는 것 등도 유사한 고려가 있습니다.
이상입니다.
Vitalik의 이 글은 이더리움의 미래 확장성 솔루션에 대한 매우 영감을 주는 의미가 있습니다. 특히 layer2 발전 현황에 대한 불만, Blob 성능 공간에 대한 낙관적인 확신, 그리고 미래의 샤딩 기술에 대한 전망, 심지어 layer2가 최적화할 가치가 있는 방향에 대해 진지하게 지적한 점 등이 그렇습니다.
사실, 지금 유일한 불확실성은 layer2 자신에게 남아 있습니다. 어떻게 발전을 가속화할까요?