샤딩(Sharding): 이더리움 블록체인의 미래
[Xangle Originals]
작성자: 포뇨
요약
- 샤딩(Sharding)은 낮은 처리속도(확장성)을 해결해주는 치트키
- 랜덤 샘플링(Random Sampling)을 통해 샤드의 보안성 유지
- DAS(Data Availability Sampling)로 낚시꾼 딜레마를 해결
비탈릭 부테린은 수년 전부터 블록체인 트릴레마를 해결하기 위한 방법으로 샤딩과 L2를 이용한 모듈형 블록체인(modular blockchain) 구조를 제시하였다 (참고: 이더리움2.0 청사진:모듈형 블록체인). 모듈형 블록체인이 완성되면 샤드 체인은 주로 데이터 가용성(data availability) 레이어로 작동할 것이라고 알려져 있지만, 사실 샤딩이 주목받는 이유는 그것 뿐만이 아니다. 샤딩은 탈중앙화를 해치지 않으면서도 L1블록체인에게 무한에 가까운 확장성을 제공해줄 수 있는 방법이며, 이더리움이 진정한 월드 컴퓨터가 되기 위해서는 반드시 실현되어야 할 핵심 기술이기 때문이다.
이번 글에서는 샤딩의 정의부터 작동 원리, 그리고 FAQ까지 샤딩에 관한 기초적인 것들을 다뤄볼 예정이다.
1. 샤딩(Sharding)이란?
현재 대부분의 L1블록체인은 각 노드마다 네트워크 내 모든 트랜젝션을 처리하고 있다. 이 방법은 보안성이 뛰어나다는 장점이 있으나, 동시에 모든 노드들이 같은 데이터(사용자 자금, 컨트랙트 코드, 스토리지 등)를 저장해야 하고 각 트랜젝션에 대해 합의를 봐야 하기 때문에 스토리지와 확장성 측면에서 분명한 한계를 드러낸다. 현존하는 블록체인 중 가장 보안성이 뛰어나다고 알려져 있는 비트코인과 이더리움의 최대 TPS가 각각 7과 15라는 형편없는 수치를 기록하는 이유이다. 이러한 한계를 극복하기 위해 비탈릭 부테린이 제안한 것이 바로 샤딩이다.
샤딩이란 말 그대로 L1블록체인을 여러 개의 체인, 혹은 샤드(shards)로 쪼개는 것을 의미한다. 쉽게 말해, 이더리움 체인을 여러 개의 하위 체인(샤드)들로 분할한 뒤, 노드들을 그룹 별로 나누어 샤드 당 한 그룹씩 배치시키는 것이다. 이때, 노드들은 소속되어 있는 샤드의 트랜젝션만 검증하고 저장하면 되서 결과적으로 네트워크 부담을 줄이고 효율성은 증가하는 효과가 생긴다. 트랜젝션은 아래 그림과 같이 일정한 규칙과 패턴에 의해 각 샤드로 전송이 된다.
실제로 샤드에 포함되어 있는 가장 기본적인 데이터들은 다음과 같다.
Shard ID: 샤드 ID
Pre state: 기존의 트랜젝션 정보가 포함되어 있는 state root
Post state: 신규 트랜젝션이 유입되어 새로 갱신된 현재 state root
Receipt root: 신규 트랜젝션이 유입되었다는 것을 확인해주는 receipt root
2. 샤딩 기술의 원리 - 랜덤 샘플링(Random Sampling)
PoS 블록체인 내 검증자 수가 10,000명, 검증해야 하는 블록이 100개 있다고 가정해보자. 가장 먼저 해야 할 일은 검증자 순서를 무작위로 섞는 것이다. 이후 검증자 목록에 포함되어 있는 검증자들을 순서대로 100명씩 묶어 한 블록씩 검증을 담당하게 한다. 이렇게 하면 모든 블록을 동일한 P2P 네트워크를 통해 각각의 검증자한테 전송할 필요 없이 블록마다 한 개의 하위 네트워크(샤드)에 배정하고 검증자들은 자기가 소속되어 있는 샤드의 블록만 검증하면 된다. 100명의 검증자들로 구성된 그룹은 committee라고 부른다.
샤드 체인 내 검증자는 해당 블록에 대한 검증을 완료하면 이를 증명하기 위해 디지털 서명(digital signature)을 남기는데, 이때 나머지 검증자들은 100개의 블록을 모두 검증하는 대신 (모놀리식 블록체인 방식) 각각의 검증자가 남긴 10,000개의 서명만 검증하면 되어 검증 시간이 단축되는 효과가 있다.
3. 샤딩 기술의 장점
노드 수가 증가하면 확장성, 탈중앙화, 보안성이라는 세 마리의 토끼를 동시에 잡을 수 있다.
- 검증자 노드 수 ↑ = 확장성 ↑
기존의 L1블록체인은 노드 수가 증가하면 (혹은 보안성이 증가하면) 검증 속도가 느려져 (혹은 확장성이 떨어져) 하나를 얻으려면 하나를 포기해야 하는 구조를 띄고 있다. 반면, 샤드 체인의 경우 노드 수가 증가하면 committee 수가 증가하여 오히려 네트워크 처리 용량이 상승하게 된다.
모든 트랜젝션을 다 같이 확인해야 하는 모놀리식 블록체인과 달리, 각 샤드 체인의 committee는 검증하는 블록이 정해져 있다. 따라서 노드 수가 증가하면 형성할 수 있는 committee 수도 증가하게 되고, 이는 곧 더 많은 블록을 동시에 검증할 수 있다는 것을 뜻한다.
- 검증자 노드 자격 ↓ (하드웨어 최소 사양 ↓)
노드는 방대한 크기의 블록체인에 싱크 할 필요 없이 담당 샤드와 싱크 하면 되기 때문에 노드가 되기 위한 하드웨어 최소 사양이 대폭 낮아진다 (어쩌면 라즈베리 파이(raspberry pi)만 있어도 이더리움 노드가 될 수 있을지도?) 노드 자격이 완화되면 노드 수가 증가하여 블록체인의 탈중앙화 및 보안성이 개선되는 효과가 있다.
4. 샤드 체인과 개별 체인의 차이
샤드 체인은 랜덤 샘플링을 통해 블록체인 해커들이 한 샤드만 집중적으로 공격하는 것을 방지할 수 있다. 이더리움이 랜덤 샘플링을 하려는 이유는 블록체인의 보안성을 유지하려는 목적이 크다. 샤딩의 가장 큰 문제점은 해커들이 전체 네트워크의 51%를 공격할 필요가 없이 1개의 샤드 내에서 51%만 확보하면 된다는 점이다.
1개의 샤드를 확보하기 위해서 해커들은 committee를 장악해야 한다. 아래 그림과 같이, 랜덤 샘플링을 적용하지 않았을 경우 통계적으로 네트워크에 참여하고 있는 전체 검증자 노드 수 중 30~40%가 해커면 과반 수 이상의 해커들이 committee에 침투할 가능성이 있다. 반면, 랜덤 샘플링을 적용했을 경우 그 가능성이 현저하게 낮아지며, 30% 이하면 아예 불가능하다. 한편, 개별 체인은 랜덤 샘플링 작업이 없어 해커들이 체인을 장악하는 것이 훨씬 쉽다.
5. 낚시꾼 딜레마(Fisherman’s dilemma)
이더리움에서 샤드 체인은 데이터 가용성 레이어로 작동될 것이라고 언급한 적 있다. 문제는, 과연 이더리움에 유입되는 방대한 양의 트랜젝션 데이터를 모두 온체인 상으로 확인할 수 있을까? 예를 들어, 누군가 데이터X를 블록체인 상에 기록하지 않았음에도 기록했다고 주장했다가, 다른 누군가한테 챌린지를 받으면 그제야 데이터X를 온체인 상에 기록하여 자신은 잘못이 없다고 변명할 수도 있지 않을까? 아래 그림을 확인해보면 문제점이 극명하게 드러난다.
위 그림을 보면 외부자(당시에 데이터를 다운로드하지 않았던 사람)는 case1과 case2를 구별할 수 없어 누가(V1, V2) 악의적인 행동을 했는지 증명할 수 없다. 외부자들이 보면 그저 둘 중 한 명이 허위 사실을 유포한 것처럼 보이기 때문이다. 이것이 낚시꾼 딜레마다.
6. 낚시꾼 딜레마를 해결하는 방법 - DAS (Data Availability Sampling)
그렇다면 데이터 전체를 다운로드하지 않고도 특정 데이터가 온체인 상에서 확인되는지 알 수 있는 방법은 없을까? 비탈릭은 DAS 기술을 이용하면 가능하다고 주장한다.
DAS는 전체 데이터 중 일부를 무작위로 샘플링해서 블록의 데이터 가용성을 확인하는 방법이며 client-side(스테이킹에 참여하지 않는 노드 포함)에서 이루어진다. DAS의 목표는 최소 50% 이상의 데이터가 온체인 상에서 확인이 되는지 검증하는 것이다(50% 이상이면 데이터 가용성 문제가 없다고 간주). DAS는 이론상 효율적이나 아직 검증된 기술은 아니다.
블록체인과 샤딩의 미래
블록체인의 궁극적인 모습은 샤딩을 활용한 모듈형 블록체인의 형태를 띌 가능성이 매우 높다. 솔라나와 같이 확장성이 뛰어난 초고속 L1블록체인의 퍼포먼스를 보면 “사딩이 굳이 필요한가?”라는 질문을 던질 수도 있을 것이다. 결론부터 이야기하자면, 샤딩과 롤업을 활용한 모듈형 블록체인은 L1블록체인 대비 훨씬 더 효율적이고 동시에 경제적이기 때문에 YES, 필요하다. 다음 글에서는 모듈형 블록체인 vs 고성능 L1블록체인에 대해 더 깊이 다뤄볼 예정이다.
비슷한 콘텐츠 확인하기
- 이더리움2.0 청사진: 모듈형 블록체인(Modular Blockchain)
- 이더리움의 구원자, 폴리곤(Polygon) 모듈러 블록체인?
- EVM to eWASM: 이더리움 실행환경 변화에서 발견한 투자 포인트
- 지속가능한 확장성: L1 블록체인 vs ZK롤업