Proto-Danksharding 톺아보기 (상)
Disclaimer: 본 글은 서울대학교 블록체인 학회 디사이퍼(Decipher)의 Weekly Session에서 Proto-Danksharding을 주제로 발표한 내용을 기반으로 작성되었습니다. 해당 글은 Proto-Danksharding의 등장배경과 전반적인 내용을 바탕으로 작성자의 주관적인 의견을 포함하여 작성하였으며, 본 글에 포함된 어떠한 내용도 투자 조언이 아님을 명시합니다. 이에 따라 본 글의 어떠한 내용도 투자 조언으로 해석되어서도 안 됩니다.
- Proto-Danksharding 톺아보기 (상)
- Proto-Danksharding 톺아보기 (하)
Author
배서준 of Decipher Seoul Nat’l Univ. Blockchain Academy Decipher(@decipher-media) Reviewed By 김동혁, 박순종, 신성헌
목차
1 서론
- 1.1 Proto-Danksharding이란?
2 Why Proto-Danksharding?
- 2.1 Ethereum의 낮은 확장성
- 2.2 롤업의 비용과 개선
- 2.3 Danksharding과 Proto-Danksharding
3 결론
4 참고문헌
1. 서론
2022년 말, 대부분의 기관들은 2023년에 대한 전망에서 Luna, Solana, Avalanche 등 대안 L1(Alt-L1)들이 붕괴하거나 사용성을 증명하지 못했다는 점에서, Ethereum이 스마트 컨트랙트를 처리할 수 있는 유일한 L1이라고 언급하며 ETH의 강세를 예측했습니다. 그러나 2023년 반등장 혹은 상승장에도 불구하고, ETH는 Solana의 SOL에 비해 약세를 보였으며, 심지어는 BTC보다 상승률이 현저히 낮았습니다.
그럼에도 불구하고 대부분의 기관들의 2024년 전망을 살펴보면 이들은 덴쿤 업그레이드(Dencun Upgrade), 그 중에서도 EIP-4844, 즉 Proto-Danksharding을 언급하며 Ethereum에 주목하고 있습니다. 특히, J.P. Morgan은 EIP-4844 이후 ETH의 암호화폐 시장 점유율이 늘 것이며, BTC보다 ETH가 더 높은 수익률을 보일 것이라고 선언했습니다. TradFi의 강자인 이 투자은행은 이 EIP가 Ethereum에 적용된 이후 네트워크 활동이 증가할 것이며, 따라서 2024년에는 ETH가 BTC보다 수익률이 높아질 것이라는 이야기입니다. 그렇다면 Proto-Danksharding이 도대체 무엇이길래 기관들이 2024년의 ETH를 외치고 있는 걸까요?
1.1 Proto-Danksharding이란?
간단히 말하자면 Proto-Danksharding은 두 가지를 포함한다고 할 수 있습니다. Blob(Binary Large Object)이라는 ‘유효기간이 있는’ 새로운 데이터 형식과 이를 보낼 수 있는(실제로는 Blob의 해시(Hash)만) 새로운 트랜잭션 형식인 Blob-carrying Transaction을 Ethereum에 추가하는 것입니다. 목적은 롤업을 위한 ‘값싼 저장공간’을 마련하는 것이며 Blob의 가스비는 롤업들이 트랜잭션 데이터를 제출하는 데 사용하던 Calldata보다 최소 10배는 저렴해질 것으로 예상됩니다.
Etherum의 로드맵 관점에서 Proto-Danksharding을 어떻게 볼 수 있을까요? 비탈릭 부테린이 2023년 12월 31일에 업데이트한 바에 따르면, Ethereum 로드맵은 6가지 분야로 나뉩니다. 첫번째 분야는 SSF(Single Slot Finanlity)를 목표로 하고 있는 POS에 대한 로드맵인 ‘The Merge’입니다. 두번째 분야는 ‘The Surge’로 롤업과 Data Sharding을 통한 확장성 개선 항목을 포함합니다. 세번째 분야는 ‘The Scourge’이며 MEV나 유동성 스테이킹 등에 따른 검열 저항, 탈중앙화, 프로토콜 리스크에 대한 업데이트입니다. 이외에도 Verkle Tree를 다루는 ‘The Verge’, 프로토콜 단순화를 다루는 ‘The Purge’, 그리고 EIP-1559나 ERC-4337와 같은 나머지 분야를 다루는 ‘The Splurge’가 있습니다.
그 중에서도 오늘 집중할 부분은 “The Surge”입니다. 아래 그림에서 볼 수 있듯, The Surge의 핵심 프로젝트는 Danksharding(그림의 Full rollup scaling)이며 그 이전에는 Danksharding의 원형(Prototype)인 Proto-Danksharding을 덴쿤 업데이트를 통해 도입할 예정입니다.
덴쿤 업데이트는 언제 활성화될까요? 2023년 12월 21일 Ethereum 코어 개발자 회의의 결과에 따르면, 다가오는 1월 17일에 먼저 Goerli 테스트넷 하드포크를 시작으로 1주 혹은 2주 단위로 각 테스트넷에 도입하고 2월 말 메인넷 업데이트를 목표로 하고 있습니다. (지난 1월 17일 Goerli 테스트넷 하드포크가 진행되었습니다.)
그렇다면, 왜 Ethereum은 Danksharding을 도입하려고 하며, 그 이전에 Proto-Danksharding을 먼저 하려고 할까요?
2. Why Proto-Danksharding?
2.1 Ethereum의 낮은 확장성
Ethereum의 문제점으로 제기되는 두 가지가 있습니다. 바로 높은 수수료와 낮은 TPS입니다. 2021년 상승장 당시(9월 3일 UTC)에는 Uniswap에서 토큰 스왑을 한 번에 가스비로 454달러를 내야했었습니다. 이처럼 Ethereum 네트워크가 과열되면 수수료는 감당할 수 없을 정도로 높아집니다. 이보다도 더 높은 경우가 더러 있었으며, 2017년 크립토키티 열풍 당시부터 과하게 비싼 가스비는 Ethereum의 문제점으로 지목되곤 했습니다.
또, Ethereum은 평균적으로 1초에 13–15개의 트랜잭션을 처리하며(TPS), 이는 대안 L1들에 비해 비교적 낮은 수치입니다. 대표적인 대안 L1인 Solana는 1월 첫째주에 2500 TPS에 가깝게 트랜잭션을 처리했으며, 전통 금융의 VISA는 평균적으로 4000 TPS를 처리하고 있습니다. 높은 가스비의 경우 Ethereum이 낮은 TPS를 가지고 있기 때문에 네트워크가 과열되어 생기는 문제로 두 가지 요소는 사실상 낮은 확장성으로 귀결됩니다.
Solana 7일 간 TPS / 출처: solscan
확장성 문제는 사실 Ethereum 초기부터 커뮤니티에서 논의되었습니다. 비탈릭 부테린은 ICO 이후 런칭 로드맵에서부터 이미 ‘샤딩(Sharding)’을 통해서 Ethereum의 확장성를 개선할 것이라고 밝힌 바가 있습니다. 샤딩이란 데이터를 다수의 데이터베이스에 나눠서 저장하는 기법으로, 초기의 Ethereum 상에서는 한 체인을 여러 개의 체인으로 나누어 트랜잭션 데이터를 저장하는 것을 의미(Shard Chains)했습니다. 샤딩을 적용하면 한 노드가 블록의 모든 트랜잭션을 처리할 필요가 없기에 확장성을 개선할 수 있다는 것입니다. 샤딩의 대표적인 모델로는 Hypercubes, Hub and Spoke Chains이 있었으며, 2019년 2월 공개된 Ethereum 2.0의 스펙 상에서는 먼저 Quadratic Sharding 모델(하나의 비콘 체인과 64개의 샤드 체인으로 분리하고 병렬적으로 트랜잭션을 처리하는 방법)으로 합의(ETH2 Sharding)되는 듯 했습니다.
그러나 비탈릭 부테린이 ‘롤업 중심의 Ethereum로드맵’이 발표하면서 Ethereum L1 레이어는 롤업이 얼마나 많은 데이터를 처리할 수 있는지에 집중하며, 온체인 연산 등의 효율성은 더 이상 주요 목표가 아니게 피벗이 일어났습니다. 즉, 이는 Ethereum 샤딩의 방향성이 롤업들이 트랜잭션을 잘 처리할 수 있도록 하는 것으로 전환되었음을 의미합니다. 샤딩의 의미 또한 기존의 ‘체인을 여러가지 부분으로 나누는 것’이 아니라 DA 레이어의 역할을 위한 샤딩인 ‘data-sharding’으로 바뀌게 됩니다.
2.2 롤업의 비용과 개선
롤업이란 오프체인에서 연산작업을 하고 트랜잭션 데이터를 온체인(Ethereum)에서 검증하는 기법으로, 트랜잭션을 묶어서 한번에 온체인에 제출함으로써 수수료를 절감하고 확장성을 개선합니다. 이러한 롤업이 작동하기 위해서는 어떠한 비용이 수반될까요? 자체적으로 오프체인 연산을 하는 등 여러가지 비용이 필요하지만, 현재 롤업의 총 비용중 약 90%는 트랜잭션 데이터를 Calldata로 Ethereum 위의 컨트랙트에 제출하는 데 사용되고 있습니다. 따라서 이 데이터를 더 싸게 제출하게 만드는 것이 가스비를 낮추고, Ethereum의 확장성을 개선하는 길이 될 것입니다.
트랜잭션 데이터를 싸게 제출하기 위해서는 어떤 노력을 할 수 있을까요? 먼저, 롤업의 트랜잭션 데이터는 앞서 언급했듯 Calldata로 제출이 되고 있습니다. 따라서 단순하게 데이터를 압축하는 방법을 생각할 수 있습니다.예를 들자면, 아래의 세 가지를 적용한 결과 Ethereum L2인 Arbitrum은 26%나 가스비를 절감할 수 있었습니다.
- Padding과 Function Selector를 제거
- Deterministic Helper로 공통 주소 제거
- Address Table Registry를 이용해 간소화
위의 그림에서 길었던 데이터가 세 가지 방법을 적용한 결과 매우 짧게 압축되는 것을 볼 수 있습니다. 그런데 26%가 된 것이 아니라, 26%가 줄어든 것이라면 좀 부족해 보입니다. 따라서 롤업을 넘어서 Ethereum 베이스 레이어 단에서의 노력이 필요해보입니다.
2.3 Danksharding과 Proto-Danksharding
베이스 레이어로서 Ethereum이 할 수 있는 노력에는 어떠한 것들이 있을까요? 첫째로,단순히 Calldata의 가스비를 낮출 수 있으며, 실제로 Calldata의 가스비를 낮춘 사례도 있습니다. 현재 Calldata의 가스비는 바이트 당 16 가스인데, 이것은 이스탄불(Istanbul) 업데이트에서 EIP-2028를 적용하여 바이트 당 68 가스에서 낮춘것입니다. EIP-2028의 주된 목적은 롤업의 확장성을 높이는 것이었고, 업데이트는 Arbitrum이나 Optimism과 같은 Ethereum L2의 성공을 가져왔습니다. 그러나 예를 들어 현재의 Calldata 가스비를 바이트 당 1.6으로 낮춘다면 어떤 일이 발생할까요? Ethereum의 블록당 가스 한도가 30M이므로 최대 블록 크기가 18 MB로 증가해, 네트워크가 처리할 수 있는 범위를 넘어서게 됩니다.
이를 고려해서 EIP-4488은 가스비를 1/5로 낮추고 하드캡을 두자는 제안을 했으나 미래를 볼 때는 그저 임시방편이라는 반박이 나왔습니다. 목표로 하는 100,0000 TPS를 위해서는 이 방식으로는 현실성이 없다는 것이 주된 논지였습니다. 따라서 Calldata 대신 L2를 위한 값싼 데이터 형태를 추가해보자라는 것이 최종적인 로드맵으로 채택되었고, 이것이 바로 Danksharding입니다.
그렇다면 어떻게 값싼 데이터 형태를 추가할 수 있었을까요? 블록체인을 사업으로 비유하면 블록 공간을 유저에게 판매하는 것으로 생각할 수 있습니다. 트랜잭션을 보내면 해당 트랜잭션은 블록에 영구히 새겨지고 대가로 유저는 수수료를 지불합니다. 트랜잭션은 체인에 저장되기 때문에 유저는 수수료에 해당하는 금액으로 블록의 공간을 영구히 소유하는 것이라고 할 수 있습니다. 이와 반대로 블록의 공간을 일정 기간 임대하면 어떨까요? 당연히 소유하는 것보다 값이 싸질 것이라는 생각을 할 수 있습니다. Ethereum에 새롭게 추가되는 Blob 데이터 또한 이와 같이 블록 공간을 판매하는 것이 아니라 임대함으로써 싼값을 달성할 수 있는 것입니다. 또, 기존의 Ethereum 데이터는 EVM 접근이 가능하도록 만들어졌습니다. 이 기능을 빼버리면 조금 더 수월하게 싼 데이터 형식을 도입할 수 있겠죠?
이와 같은 내용을 바탕으로 좀 더 구체적인 Blob의 스펙에 대해서 알아보겠습니다. Blob은 4,096 개의 32 Byte 크기의 Field Element를 가지는 EVM 접근이 불가능한 데이터입니다. (따라서 1 Blob은 125 KB) 현재 Danksharding의 로드맵에서는 한 블록에 최대 256개의 Blob이 포함되는 것을 목표로 하고 있으며(32 MB), 일정 기간이 지나면 네트워크 상에서 삭제됩니다. 그러나 앞서 Calldata 가스비를 바이트 당 1.6가스로 내릴 경우 최대 블록 크기 18 MB가 되어 감당할 수 없는 것처럼, 256개의 Blob이 포함된 32 MB의 블록 크기 또한 현재로서는 네트워크가 감당할 수 없습니다.
블록의 크기가 증가한다는 것은 낮은 스펙의 장비로는 시간 내에 블록에 대한 검증 작업을 하기 어려워진다는 것을 의미하며, 최악의 경우 높은 성능을 가진 장비만 노드를 돌릴 수 있게 됩니다. 이는 블록체인의 중앙화를 가져오게 되므로 탈중앙성을 지향하는 Ethereum으로서는 받아들일 수 없는 것입니다. 이에 비탈릭 부테린은 ‘End Game’에서 블록 생성이 중앙화되어도 검증이 탈중앙화된다면 검열 저항, 즉 탈중앙성을 달성해낼 수 있다는 점을 제시했습니다. 기존에 Ethereum 상에서 분리되지 않았던 검증과 생성을 다른 주체들이 나누어 수행하도록 하면 탈중앙성을 지킬 수 있다는 것입니다. 이를 달성할 수 있는 방법을 PBS(Proposer — Builder Separation)라고 하며 Ethereum 로드맵의 ‘The Scourge’의 주요 프로젝트입니다.
Danksharding이 로드맵으로 확정되었지만, 아직까지 PBS가 도입되지 않아 완전히 도입되기까지는 오랜 시간이 필요할 것으로 전망됩니다. 그 밖에도 DAS(Data Availabilty Sample) 등 다양한 요소들이 결합되어야 진정한 Danksharding을 할 수 있습니다. 따라서 Ethereum 공식 홈페이지에서 ‘Danksharding은 아직도 몇 년 정도는 더 걸릴 것이다’라고 적고 있습니다.
비탈릭 부테린이 2015년에 발표한 런칭 로드맵에 따르면 스테이킹과 샤딩을 2년 만에 끝낼 수 있을 것이라고 한 바 있습니다. 그러나 시간이 지난 지금 현실성이 부족했던 이야기라는 것을 알 수 있습니다. 그렇기 때문에 현재 네트워크가 감당할 수 있는 범위에서 일단 할 수 있는 것은 해보라는 취지로 Danksharding에 앞서 EIP-4844, 즉 Proto-Danksharding을 도입하는 것입니다.
다음으로는 Ethereum Improvement Proposals의 EIP-4844 문서를 통해 업데이트 내용에 대해서 알아보겠습니다. 먼저, EIP-4844에 포함되는 부분과 완전한 샤딩을 위해 달성해야할 부분입니다.
포함되는 부분
- 완전한 샤딩에서 사용될 새로운 트랜잭션 종류(Blob-carrying Transaction)
- 완전한 샤딩을 위한 실행 레이어(Execution Layer)의 모든 로직
- 완전한 샤딩을 위한 실행 레이어와 합의 레이어(Consensus Layer) 간의 교차검증(Cross-verification)과 관련된 모든 로직
- 비콘 블록 검증과 DAS Blob 간의 레이어 분리
- 완전한 샤딩을 위한 대부분의 비콘 블록 로직
- Blob을 위한 독립적인 가스비 산정법
미래에 적용될 부분
- 합의 레이어 Commitment에 대한 저차원 확장으로 2D 샘플링 허용
- DAS의 실제 구현
- PBS를 통한 개별 검증자의 한 슬롯에서 32MB 데이터 처리 방지
- 블록의 샤드 검증자에 대한 Proof of custody 혹은 유사한 프로토콜 내 요구사항
두번째로는 Blob의 블록 당 타겟 및 최대 수량, 그리고 유효기간입니다. 원래의 제안은 타겟은 8개, 최대는 16개였으나 최종적으로 타겟은 3개, 최대는 6개 Blob이 한 블록에 포함될 수 있습니다. 후자의 경우에도 30일에서 대략 18일(4,096 Epochs) 의 유효기간으로 정해졌습니다. 또한, Blob에 유효기간이 있다고 해도 실행 레이어에 저장되는 blob_version_hash는 삭제되지 않으며, 해당 Blob 데이터에 대한 수요(ex. 데이터 분석 업체)는 프로토콜 밖의 저장소의 Blob에 대한 공급을 만들어낼 수 있습니다.
3. 결론
Ethereum이 Proto-Danksharding을 도입하려는 이유는 주로 확장성 문제와 롤업의 비용 절감을 위함입니다. 현재 Ethereum은 높은 수수료와 낮은 TPS로 인해 확장성 문제를 겪고 있으며, Proto-Danksharding은 롤업에 사용되는 트랜잭션 데이터를 블록체인에 좀 더 싸게 저장하기 위해 유효기간이 있고 EVM 연산이 불가능한 새로운 데이터 형식인 Blob을 도입합니다.
또한, 미래에 PBS와 DAS 등이 실제 구현되면 샤딩이 완전히 구현되어 최종 목표인 블록당 최대 256개의 Blob가 포함될 수 있을 것이며, 이로써 Ethereum의 ‘The Surge’ 목표인 100,000 TPS로 향하는 데에 더욱 가까워질 것입니다. 그러나 현재로서는 샤딩이 완전히 도입되기까지는 시간이 걸릴 것으로 예상되기에 Proto-Danksharding을 통해 네트워크가 감당할 수 있는(보안성과 탈중앙성을 지킬 수 있는 정도) 범위에서 롤업들을 위한 임시 샤딩을 해보고자 하는 것입니다.
끝으로, EIP-4844는 L2의 확장성을 개선하기 위해 나온 제안이며 이는 Ethereum L2의 활성화를 가져올 수 있습니다. 그러나 주목해야 하는 Blob에는 사실 어떠한 데이터든 들어갈 수 있다는 것입니다. 기존의 블록체인의 블록 공간을 판매한다는 것에서 블록 공간을 임대한다는 새로운 경제구조의 등장은 어쩌면 단순히 L2의 트랜잭션 데이터를 저장하는 용도 외에도 다양한 시도를 불러일으킬 수 있습니다.
이어지는 다음 시리즈인 ‘Proto-Danksharding 톺아보기(하)’에서는 본 글에서 다룬 Proto-Danksharding의 스펙과 활용의 기술적인 부분에 대해 더욱 구체적으로 다룹니다.
4. 참고문헌
- [EIP-4844 시리즈]#1: 이더리움이 그리는 롤업 중심의 미래
- [EIP-4844 시리즈]#2: Proto-Danksharding : A Deep Dive!
- 야 (EIP)4844, 너지?
- [Research] 롤업 네트워크 경제 모델 살펴보기
- EIP-4844 — Proto-Danksharding
- Ethereum Improvement Proposals — EIP-4844: Shard Blob Transactions
- Blobspace 101
- Ethereum Magicians — EIP-4844: Shard Blob Transactions
- Ethereum Magicians — A rollup-centric ethereum roadmap
- EIP-4844 Readiness Checklist
- Endgame
- Crunching the Calldata
- Etherum.org