Vitalik:롤업 확장의 단계별 로드맵
번역 제목: 《 데이터 호출 확장 및 샤딩을 통한 롤업 확장을 위한 단계별 로드맵 》
원문 저자: 비탈릭 부테린, 이더리움 공동 창립자
원문 편집: 남풍, 유니타임스
이더리움에게 롤업은 단기 및 중기, 그리고 아마도 장기적으로 신뢰할 필요 없는 유일한 확장성 솔루션입니다. 이더리움 L1의 거래 수수료는 몇 달 동안 매우 높았으며, 이제는 롤업으로 전체 생태계를 전환하는 데 필요한 모든 조치를 취하는 것이 더욱 시급합니다. 롤업은 많은 이더리움 사용자들의 비용을 크게 줄였습니다: l2fees.info 웹사이트는 종종 옵티미즘과 아비트럼 네트워크의 비용이 이더리움 기본 레이어보다 약 3-8배 낮다고 표시하며, zk-롤업은 더 나은 데이터 압축을 제공하고 서명을 포함하지 않기 때문에 이더리움 기본 레이어보다 약 40-100배 낮은 비용을 자랑합니다.
그러나 많은 사용자에게는 이러한 (롤업 내의) 비용조차도 여전히 너무 비쌉니다. 오랫동안 데이터 샤딩은 현재 형태의 롤업의 장기적인 부족을 해결할 솔루션으로 여겨져 왔으며, 데이터 샤딩은 이더리움 체인에서 롤업에 약 1-2MB/s의 전용 데이터 공간을 추가할 것으로 기대됩니다. 본 문서는 롤업을 위해 데이터 공간을 가능한 한 빨리 잠금 해제하고 시간이 지남에 따라 더 많은 추가 공간과 보안을 증가시키기 위한 실용적인 경로를 설명합니다.
1단계: 거래 데이터 호출 확장
현재 기존의 롤업은 거래 데이터 호출을 사용하고 있습니다. 따라서 각 롤업 팀이 추가 작업을 하지 않고도 단기적으로 롤업의 용량을 늘리고 비용을 낮추고자 한다면, 거래 데이터 호출의 가스 비용을 낮춰야 합니다. 현재 평균 블록 크기는 이더리움 네트워크의 안정성에 위협이 될 정도로 크지 않으므로, 이는 안전하게 수행할 수 있으며, 매우 불안전한 엣지 케이스를 예방하기 위한 추가 논리가 필요할 수 있습니다.
EIP-4488 제안서를 참조하십시오, 또는 또 다른 (더 간단하지만 효과가 더 완만한) EIP-4490 제안서를 참조하십시오.
- EIP-4488:
https://github.com/ethereum/EIPs/pull/4488
- EIP-4490:
https://github.com/ethereum/EIPs/pull/4490
EIP 4488은 각 슬롯에서 롤업에 사용할 수 있는 데이터 공간을 이론적으로 약 1MB로 늘리고 롤업의 비용을 약 5배 낮출 수 있어야 합니다. 이는 이후 단계보다 더 빠르게 구현될 수 있습니다.
2단계: 몇 개의 샤딩
동시에 우리는 "적절한" 샤딩을 출시하기 위한 작업을 시작할 수 있습니다. 완전한 (기능적) 형태로 샤딩을 구현하는 데는 오랜 시간이 걸리겠지만, 우리는 단계적으로 이를 구현하고 각 단계에서 이익을 얻을 수 있습니다. 첫 번째로 자연스럽게 샤딩 규격의 "비즈니스 로직"을 구현해야 하지만, 가장 먼저 온라인에 올라갈 샤딩의 수를 매우 낮게 (예: 4개의 샤딩) 유지하여 샤딩 네트워크 주위의 대부분의 난제를 피해야 합니다. 각 샤딩은 자신의 서브 네트워크에서 방송됩니다. 기본적으로 검증자는 위원회를 신뢰하지만, 그들이 원할 경우 각 서브 네트워크에서 선택할 수 있으며, 그들은 신호 블록이 확인한 모든 샤딩 블록의 전체 데이터를 보았을 때만 해당 신호 블록을 수신합니다.
샤딩 규격 자체는 특별히 어렵지 않습니다; 최근 발표된 알테어 하드포크와 유사한 규모의 샘플 코드 변경이 필요합니다 (알테어의 신호 변경 규격 파일은 728행, 샤딩의 신호 변경 규격 파일은 888행이므로, 알테어의 구현 및 배포와 유사한 시간 프레임 내에서 구현될 수 있을 것으로 합리적으로 예상됩니다).
샤딩 데이터가 실제로 롤업에서 사용될 수 있도록 하려면, 롤업은 그들의 증명을 샤딩 데이터에 포함시킬 수 있어야 합니다. 두 가지 선택이 있습니다:
BEACONBLOCKROOT 연산 코드를 추가합니다; 롤업은 역사적인 신호 체인 블록 루트에 뿌리를 둔 머클 증명(Merkle proofs)을 검증하기 위해 코드를 추가합니다;
미래 상태 및 역사 접근을 위한 프리컴파일을 추가하여, 커밋먼트 스킴이 미래에 변경될 때 롤업이 코드를 변경할 필요가 없도록 합니다.
이것은 각 슬롯의 롤업 데이터 공간을 약 2MB로 늘릴 것입니다 (각 샤딩 250kB * 4개 샤딩, 그리고 위의 1단계에서 확장된 데이터 호출을 더한 것입니다).
3단계: N개의 샤딩, 위원회에 의해 보호됨
활성 샤딩의 수를 4개에서 64개로 늘립니다. 이 시점에서 샤딩 데이터는 서브 네트워크로 들어가게 되며, 따라서 당시의 P2P 레이어는 더 많은 수의 서브 네트워크로 나누는 것이 가능할 만큼 충분히 견고해야 합니다. 데이터 가용성의 보안성은 대다수 (검증자)의 정직 가정에 기반하며, 위원회의 보안성에 의존합니다.
이것은 각 슬롯의 롤업 데이터 공간을 약 16MB로 늘릴 것입니다 (각 샤딩 250kB * 64개 샤딩); 우리는 이 시점에서 롤업이 이미 이더리움 실행 체인에서 이전되었다고 가정합니다.
4단계: 데이터 가용성 샘플링 (DAS)
데이터 가용성 샘플링(DAS)을 추가하여 더 높은 수준의 보안을 보장합니다. 이는 대다수 (검증자)가 부정직한 공격을 하는 경우에도 사용자를 보호할 수 있게 합니다. 데이터 가용성 샘플링은 단계적으로 진행될 수 있습니다: 먼저 비구속적인 방식으로 네트워크가 이를 테스트할 수 있도록 한 다음, 이를 신호 블록을 수신하는 필수 조건으로 삼고, 심지어 특정 클라이언트에서 먼저 진행할 수 있습니다.
데이터 가용성 샘플링이 완전히 도입되면, 샤딩의 확장은 완료됩니다.
샤딩 기반의 옵티미스틱 롤업 및 ZK 롤업
현재 이더리움과 샤딩이 구현된 이후의 이더리움의 주요 차이점은 샤딩의 세계에서 롤업 데이터가 실제로 스마트 계약에 롤업 블록을 제출하는 거래의 일부가 될 수 없다는 것입니다. 반대로, 롤업 데이터의 게시와 롤업 블록의 제출은 반드시 분리되어야 합니다: 먼저 데이터 게시가 데이터를 체인에 올리고 (즉, 샤딩 체인에), 그 다음 블록 제출이 블록 헤더와 기본 데이터에 대한 증명을 제출합니다.
옵티미즘과 아비트럼은 롤업 블록 제출을 위해 두 단계 디자인을 사용하고 있으므로, 이는 두 경우 모두 작은 코드 변경이 될 것입니다.
ZK 롤업의 경우, 거래 제출이 데이터에 직접 작용하는 증명을 제공해야 하므로 상황이 조금 복잡해집니다. 이들은 ZK-SNARK를 통해 샤딩 내의 데이터가 신호 체인에서의 커밋과 일치함을 증명할 수 있지만, 이 작업은 매우 비쌉니다. 다행히도 더 저렴한 대안이 있습니다.
해당 ZK-SNARK가 BLS12-381 기반의 PLONK 증명이라면, 이들은 샤딩 데이터를 입력으로 하여 직접 패키징할 수 있습니다. BLS12-381 샤딩 데이터 커밋은 KZG 커밋으로, PLONK 내의 커밋 유형과 동일하므로 공용 입력으로 직접 증명에 전달될 수 있습니다.
만약 ZK-SNARK가 다른 메커니즘을 사용하거나 (심지어 BLS12-381 PLONK이지만 더 큰 신뢰 설정을 가진 경우) 자신의 데이터 커밋을 포함할 수 있다면, 해당 증명 내의 커밋이 신호 체인 내의 커밋과 동일한 데이터에 대한 커밋임을 검증하기 위해 동등성 증명(proof of equivalence)을 사용할 수 있습니다.
샤딩 세계에서 누가 역사 데이터를 저장할 것인가?
데이터 공간을 늘리기 위한 필수 조건은 이더리움 핵심 프로토콜이 합의에 도달한 모든 데이터를 영구적으로 유지하는 속성을 제거하는 것입니다. 왜냐하면 이러한 데이터 양이 너무 크기 때문입니다. 예를 들어:
EIP-4488이 이론적으로 가져오는 최대 체인 크기는 매 12초 슬롯당 약 1,262,861 바이트, 즉 매년 약 3.0TB이지만, 실제로는 매년 약 250-1000GB일 가능성이 높습니다, 특히 초기 단계에서.
4개의 샤딩 (각 슬롯 1MB)은 매년 약 2.5TB의 추가 데이터를 증가시킵니다.
64개의 샤딩 (각 슬롯 16MB)은 매년 총 약 40TB의 저장 공간을 가져옵니다.
대부분 사용자의 하드 드라이브 크기는 256GB에서 2TB 사이이며, 1TB가 중간값으로 보입니다. 아래 그림은 컴퓨터 하드 드라이브 공간이 얼마나 큰지를 조사한 결과입니다:
이는 사용자가 현재 노드를 실행할 수 있지만, 이 로드맵의 어떤 부분이 수정 없이 시행된다면 사용자는 노드를 실행할 수 없게 될 것입니다. 물론 더 큰 드라이브도 사용 가능하지만, 사용자는 이를 구매하기 위해 큰 노력을 기울여야 하며, 이는 노드를 운영하는 복잡성을 크게 증가시킵니다. 현재 주요 해결책은 EIP-4444로, 이 제안은 노드 운영자가 1년 이상 블록이나 영수증을 저장할 책임을 제거합니다. 샤딩의 경우, 이 1년의 기간은 더 짧아질 가능성이 높으며, 노드는 그들이 적극적으로 참여하는 서브 네트워크의 샤딩만 책임지면 됩니다.
이것은 질문을 제기합니다: 이더리움 핵심 프로토콜이 이러한 데이터를 저장하지 않는다면, 누가 저장할 것인가?
우선, 샤딩이 있더라도 데이터 양이 그렇게 크지 않다는 점을 기억하는 것이 중요합니다. 매년 40TB는 "기본" 소비 하드웨어를 운영하는 개인의 능력을 초과하지만 (사실 매년 1TB도 마찬가지입니다), 일부 자원을 투자하고 이러한 데이터를 저장할 방법을 찾고자 하는 사람에게는 수용 가능한 범위 내에 있습니다. 현재 48TB HDD(하드 드라이브)의 가격은 1729달러이며, 14TB는 약 420달러입니다. 스테이킹 보상을 받을 수 있는 32 ETH 검증자 슬롯을 운영하는 사람은 샤딩 구현 이후 전체 체인을 저장하기 위해 비용을 지불할 의향이 있을 수 있습니다. 따라서 "누군가가 특정 샤딩의 일부 역사 데이터를 저장하지 않아 이 데이터가 완전히 사라지는 상황"은 불가능할 것으로 보입니다.
그렇다면 누가 이러한 데이터를 저장할 것인가? 제 생각은 다음과 같습니다:
- 개인 및 기관 자원봉사자;
- 블록 탐색기 (etherchain.org, etherscan.io, amberdata.io 등)는 모든 데이터를 저장할 것이며, 사용자에게 데이터를 제공하는 것이 그들의 비즈니스 모델입니다.
- 롤업 DAO는 참여자에게 저장 및 제공을 지정하고 비용을 지불합니다.
- 역사 데이터는 씨드(torrents)를 통해 업로드 및 공유될 수 있습니다.
- 클라이언트는 자발적으로 블록체인의 0.05%의 역사 데이터를 무작위로 저장할 수 있습니다 (에러 정정 코드를 사용하여, 많은 클라이언트가 동시에 오프라인일 때만 소량의 데이터가 손실됩니다).
- 포탈 네트워크의 클라이언트는 블록체인 역사 데이터의 일부를 무작위로 저장할 수 있으며, 포탈 네트워크는 자동으로 해당 데이터를 저장한 노드로 데이터 요청을 유도합니다.
- 프로토콜 내에서 역사 데이터 저장을 장려할 수 있습니다.
- The Graph와 같은 프로토콜은 클라이언트가 서버에 비용을 지불하여 역사 데이터와 그 정확성을 증명하는 머클 증명을 얻는 인센티브 시장을 만들 수 있습니다. 이는 개인과 기관이 역사 데이터를 저장하는 서버를 운영하고 필요에 따라 이러한 데이터를 제공하도록 장려합니다.
이러한 솔루션 중 일부 (개인 및 기관 자원봉사자, 블록 탐색기)는 이미 사용 가능합니다. 현재 P2P 씨드 장면은 자원봉사자에 의해 주도되고 많은 콘텐츠를 저장하는 생태계의 훌륭한 예입니다. 프로토콜 기반의 다른 솔루션은 더 강력하지만 인센티브 메커니즘을 제공하므로 개발에 더 오랜 시간이 걸릴 수 있습니다. 장기적으로 이러한 L2 프로토콜을 통해 역사 데이터에 접근하는 것이 현재 이더리움 프로토콜을 통해 접근하는 것보다 더 효율적일 수 있습니다.