2 분 소요

블록체인 레이어 1 솔루션 : 샤딩


샤딩이란 원래 분산 데이터베이스의 대표적 기술 중 하나로 데이터 양에 관련하여 처리 속도에 대한 우려로 생겨났다. 여기서 샤딩은 데이터베이스를 여러 개의 데이터베이스로 나누며 저장하는것인데, 이러한 점을 블록체인에 적용하면 기존의 각 노드들이 모든 데이터를 저장하고, 각 트랜잭션에 대해 합의로 보기 때문에 발생하는 확장성 문제를 해결할 수 있다.

img1

위의 그림은 이더리움의 샤드 버전 중 하나인데, 블록체인을 여러 개의 체인들로 분할한 뒤, 노드들을 그룹 별로 나누어 샤드 당 한 그룹씩 배치시키는 것이다. 이렇게되면 노드들은 블록체인 내의 모든 트랜잭션 및 데이터를 검증 및 저장할 필요가 없고 자신이 소속되어 있는 샤드의 트랜잭션만 검증 및 저장하기 때문에

  • 확장성 : 단일 노드보다 훨씬 더 많은 트랜잭션 처리가 가능
  • 탈중앙성 : 슈퍼 노드에 의존하지 않고, 트랜잭션을 나눔으로써 검증 및 저장의 분산화 -> 노드의 사양 기준도 낮아져 진입장벽이 낮아지는 장점도
  • 보안성 : 탈중앙성에서 발생된 분산화로, 공격자는 분산된 노드까지 공격해야 함

의 이점을 얻을 수 있다.

랜덤 샘플링을 통한 샤딩

랜덤 샘플링을 통한 샤딩은 말 그대로 랜덤으로 블록 검증자 목록을 선출하는 것을 말한다.

img2

여기서 각각의 검증자는 블록을 검증하면 자신의 서명을 게시함으로써 검증 증명을 끝낸다. 이때, 나머지 검증자들은 자신의 네트워크(샤드)에 있는 모든 블록을 검증하는 대신 각각의 검증자가 남긴 서명만 검증하면 되기 때문에 작업의 경량화가 가능하다.

또한, 랜덤 샘플링을 통해 샤딩을 진행했으므로, 샤딩의 가장 큰 문제점인, 전체 노드의 51% 공격이 샤드 노드 내의 51% 공격으로 가능해진다는 점을 공격자가 노드 내의 어떠한 샤드에 들어가는 지 알 수 없는 점을 활용하여 방지한다.

확장 가능한 계산 검증

블록체인에서 샤딩을 도입함으로써 검증과 저장의 분산화를 진행할 수 있게 되면서 많은 장점이 존재했다. 하지만 기존의 블록 검증에는 계산 및 데이터 가용성 확인이 이루어지는 데, 이를 어떻게 샤딩에서는 해결할까.

데이터 가용성 : DAS


여기서 전체 데이터를 다운로드하지 않고도 어떻게 가용한 데이터인지 확인이 가능할까. 비탈릭은 여기에 대안으로 DAS 기술을 도입했다.

DAS란 Data Availability Sampling으로, 전체 데이터 중 일부를 무작위로 샘플링해서 블록의 데이터 가용성을 확인하는 방법이다. 클라이언트는

img3

위 그림과 같이 전체 blob을 다운로드하는 대신 blob에서 N개의 임의의 인덱스를 다운로드하여, 각 blob의 데이터에 절반 이상이 사용 가능한지 확인한다. 여기서 만약 사용할 수 있는 데이터가 절반이 넘지 않는다면 클라이언트는 blob을 거부하는 식으로 진행된다. 이러한 메커니즘으로 DAS는

  • blob의 작은 부분만 다운로드하면 되기 때문에 효율적
  • 51% 공격자라도 클라이언트가 사용할 수 없는 blob을 수락하도록 속일 수 없어 안전

의 장점을 갖는다. 하지만 아직 검증된 기술은 아니다.

계산 유효성 검사 : 사기 증명, ZK-SNARK


사기 증명

  • 사기 증명은 잘못된 상태에 대한 이의 제기가 가능한 기간을 허용하며, 해당 기간 안에 잘못된 상태에 대한 증거가 제출되지 않으면 상태 전이가 올바른 것으로 판단하는 것이다.
    • 만약 잘못된 상태에 대한 증거(사기 증거)가 제출된다면, 모든 노드가 계산을 실행하고, 어느 쪽이 잘못되었든 둘 다 보증금을 잃고 해당 계산에 대해 의존하는 모든 계산이 다시 계산된다.

ZK-SNARK

  • ZK-SNARK는 영지식 증명을 간결하고 비상호적인 환경에서 적용 가능하도록 변형한 기술로, 신속한 검증이 가능하다.
    • 기본이 영지식 증명이기 때문에 데이터 위변조에 대한 빠른 검증이 가능하며, 이는 블록 싱크 속도를 높여준다.