Blockchain

Celestia의 데이터 저장 공간 사용량

2025-12-272 min read

Celestia의 데이터 저장 공간 사용량

Celestia의 EDS(Extended Data Square) 구조에서 저장 공간 사용은 다음과 같습니다:

전체 EDS 용량 (이론적인 값)

전체 EDS는 원본 데이터의 4배 크기를 차지합니다:

  • Q1 (원본 데이터): 원본 데이터의 100%
  • Q2 (행 패리티): 원본 데이터의 100%
  • Q3 (열 패리티): 원본 데이터의 100%
  • Q4 (행+열 패리티): 원본 데이터의 100%

즉, 모든 사분면을 모두 저장한다면 원본 데이터 크기의 4배가 필요합니다.

실제 Celestia의 저장 전략

하지만 Celestia에서는 실제로 모든 사분면을 저장하지 않고, 필요에 따라 다음과 같은 저장 전략을 사용합니다:

  1. ODS만 저장 (원본 데이터만):

    • 원본 데이터의 1배 용량 사용
    • 오래된 블록이나 아카이브 목적의 저장에 사용
    • 필요시 나머지 사분면(Q2, Q3, Q4)은 계산으로 복구 가능
  2. ODSQ4 저장 (원본 + Q4 사분면):

    • 원본 데이터의 2배 용량 사용
    • 가용성 윈도우 내의 최근 블록에 사용
    • 특정 접근 패턴에서 계산 효율성 향상

실제 코드에서의 저장 전략

코드에서 이런 저장 전략은 다음과 같이 구현되어 있습니다:

// 가용성 윈도우 내의 블록은 ODS와 Q4 모두 저장 (원본의 2배)
if availability.IsWithinWindow(eh.Time(), availability.StorageWindow) {
    err = store.PutODSQ4(ctx, eh.DAH, eh.Height(), eds)
} else {
    // 그 외 블록은 ODS만 저장 (원본의 1배)
    err = store.PutODS(ctx, eh.DAH, eh.Height(), eds)
}

저장 공간 최적화의 이유

이렇게 저장 공간을 최적화하는 이유는:

  1. 디스크 공간 효율성:

    • 모든 블록의 모든 사분면을 저장하는 것은 비효율적
    • 대부분의 경우 원본 데이터만으로도 충분
  2. 계산 비용과 저장 비용의 균형:

    • Q2와 Q3는 Q1과 Q4로부터 계산 가능 (필요할 때만 계산)
    • 가장 자주 접근하는 최근 블록에만 Q4도 함께 저장하여 계산 비용 절약
  3. 가용성과 검증의 균형:

    • 데이터 가용성 검증은 최근 블록에 대해 더 중요
    • 따라서 최근 블록은 더 많은 공간(ODS+Q4)을 사용하고, 오래된 블록은 공간 효율성(ODS만)을 우선시

결론적으로, Celestia는 원본 데이터의 약 1~2배 정도의 저장 공간을 사용하면서도, 데이터 가용성 검증과 복구 기능을 효율적으로 제공합니다.

Share

Related Articles

Comments

이 블로그는 제가 알고 있는 것들을 잊지 않기 위해 기록하는 공간입니다.
직접 작성한 글도 있고, AI의 도움을 받아 정리한 글도 있습니다.
정확하지 않은 내용이 있을 수 있으니 참고용으로 봐주세요.

© 2026 Seogyu Kim