IOSG 주간 브리핑 | 데이터 가용성 레이어 분석: 모듈화된 미래에서 간과된 레고 블록
저자: Jiawei, IOSG Ventures
편집: Olivia, IOSG Ventures
데이터 가용성 계층 분해: 모듈화된 미래에서 간과된 레고 블록
- 경량 클라이언트의 데이터 가용성에 대해 오류 정정 코드를 사용하는 것에 대한 이견은 거의 없으며, 차이점은 오류 정정 코드가 올바르게 인코딩되도록 보장하는 방법에 있다. Polygon Avail과 Danksharding에서는 KZG 약속을 사용하고, Celestia에서는 사기 증명을 사용한다.
- 롤업의 데이터 가용성에 대해 DAC를 컨소시엄 블록체인으로 이해한다면, Polygon Avail과 Celestia가 하는 일은 데이터 가용성 계층을 더욱 분산화하는 것이다. 이는 신뢰 수준을 높이기 위해 "DA-Specific" 공개 블록체인을 제공하는 것과 같다.
- 향후 3~5년 내에 블록체인 아키텍처는 단일화에서 모듈화로 진화할 것이며, 각 계층은 낮은 결합 상태를 나타낼 것이다. 향후 Rollup-as-a-Service(RaaS), Data Availability-as-a-Service(DAaaS) 등 많은 모듈화 구성 요소 제공업체가 등장하여 블록체인 아키텍처의 조합 가능성을 실현할 수 있다. 모듈화 블록체인은 다음 주기를 지탱하는 중요한 서사 중 하나이다.
- 모듈화 블록체인에서 실행 계층은 이미 "사분천하"가 되었고, 후발주자는 드물다; 합의 계층은 Aptos와 Sui와 같은 새로운 주자들이 두각을 나타내고 있으며, 공개 블록체인 경쟁 구도가 아직 정리되지 않았지만, 그 서사는 새로운 병에 담긴 오래된 술과 같아 합리적인 투자 기회를 찾기 어렵다. 데이터 가용성 계층의 가치는 여전히 발굴될 필요가 있다.
모듈화 블록체인 Modular Blockchain
데이터 가용성에 대해 이야기하기 전에, 모듈화 블록체인에 대해 간단히 회고할 시간을 가져보자. (정확한 도식을 얻으려면 공공 계정에 "모듈화"라고 보내주세요)
이미지 출처: IOSG Ventures, Peter Watts 수정
모듈화 블록체인의 계층에 대한 엄격한 정의는 없으며, 일부 계층화 방식은 이더리움을 기반으로 하고, 다른 일부는 일반화된 관점에 치중한다. 이는 논의되는 맥락에 따라 다르다.
- 실행 계층: 실행 계층에서 두 가지 일이 발생한다. 단일 거래의 경우, 거래를 실행하고 상태를 변경한다; 동일한 배치의 거래의 경우, 해당 배치의 상태 루트를 계산한다. 현재 이더리움 실행 계층의 일부 작업은 롤업에 할당되어 있으며, 우리가 잘 아는 StarkNet, zkSync, Arbitrum 및 Optimism 등이 있다.
- 결제 계층: 주 체인에서 롤업 계약이 상태 루트의 유효성을 검증하는 과정(zkRollup) 또는 사기 증명(Optimistic Rollup)으로 이해할 수 있다.
- 합의 계층: PoW, PoS 또는 기타 합의 알고리즘을 사용하든, 합의 계층은 분산 시스템에서 특정 사항에 대해 합의에 도달하기 위한 것이다. 즉, 상태 전환의 유효성에 대한 합의에 도달하는 것이다. 모듈화 맥락에서 결제 계층과 합의 계층의 의미는 다소 유사하여, 일부 연구자들은 결제 계층과 합의 계층을 통합하기도 한다.
- 역사 상태 계층: Polynya에 의해 제안되었다(이더리움에 한정). Proto-Danksharding을 도입한 이후, 이더리움은 일정 시간 창 내에서만 즉각적인 데이터 가용성을 유지하고, 이후에는 이 작업을 다른 사람에게 맡긴다. 예를 들어 Portal Network 또는 이러한 데이터를 저장하는 다른 제3자가 이 계층에 분류될 수 있다.
- 데이터 가용성 계층: 데이터 가용성에는 어떤 문제가 존재하는가? 해당 문제에 대한 해결책은 무엇인가? 이는 본문에서 집중적으로 논의할 문제로, 여기서는 요약하지 않겠다.
이미지 출처: IOSG Ventures
2018년과 2019년에는 데이터 가용성이 경량 클라이언트 노드의 맥락에서 더 많이 논의되었으며, 이후 롤업 관점에서 데이터 가용성은 또 다른 의미를 갖게 되었다. 본문에서는 "노드"와 "롤업"의 두 가지 다른 맥락에서 데이터 가용성을 설명할 것이다.
노드에서의 DA
이미지 출처: https://medium.com/metamask/metamask-labs-presents-mustekala-the-light-client-that-seeds-data-full-nodes-vs-light-clients-3bc785307ef5
먼저 전체 노드와 경량 클라이언트의 개념을 살펴보자.
전체 노드는 각 블록의 모든 거래를 직접 다운로드하고 검증하므로, 상태가 올바르게 실행되도록 보장하기 위해 정직한 가정을 필요로 하지 않으며, 매우 좋은 보안성을 보장한다. 그러나 전체 노드를 운영하려면 저장소, 계산 능력 및 대역폭 자원이 필요하며, 광부 외에 일반 사용자나 애플리케이션은 전체 노드를 운영할 동기가 없다. 게다가, 특정 노드가 체인에서 특정 정보를 검증하기만 하면 된다면, 전체 노드를 운영하는 것은 명백히 필요하지 않다.
이것이 경량 클라이언트가 하는 일이다. IOSG의 기사 "다중 체인 생태계: 우리의 현재 단계와 미래 구도"에서 우리는 경량 클라이언트를 간략히 소개했다. 경량 클라이언트는 전체 노드와 구별되는 개념으로, 일반적으로 체인과 직접 상호작용하지 않고 인근의 전체 노드를 중개자로 의존하여 필요한 정보를 요청한다. 예를 들어 블록 헤더를 다운로드하거나 계좌 잔액을 검증하는 것이다.
노드로서의 경량 클라이언트는 전체 체인을 신속하게 동기화할 수 있다. 왜냐하면 블록 헤더만 다운로드하고 검증하기 때문이다; 그리고 크로스 체인 브리지 모델에서 경량 클라이언트는 스마트 계약으로 작용한다. 즉, 목표 체인의 경량 클라이언트는 소스 체인의 토큰이 잠금되었는지만 검증하면 되고, 소스 체인의 모든 거래를 검증할 필요는 없다.
문제는 어디에 있는가?
여기에는 암묵적인 문제가 존재한다. 경량 클라이언트가 전체 노드에서 블록 헤더만 다운로드하고 각 거래를 직접 다운로드하고 검증하지 않기 때문에, 악의적인 전체 노드(블록 생산자)는 무효 거래를 포함하는 블록을 구성하고 이를 경량 클라이언트에 보내 속일 수 있다.
우리는 "사기 증명"을 사용하여 이 문제를 해결할 수 있다고 쉽게 생각할 수 있다. 즉, 정직한 전체 노드가 블록의 유효성을 모니터링하고 무효 블록을 발견하면 사기 증명을 구성하여 경량 클라이언트에 보내 경고하는 것이다. 또는 블록을 받은 후 경량 클라이언트가 전체 네트워크에 사기 증명이 있는지 적극적으로 문의하고, 일정 시간이 지나도 응답이 없으면 해당 블록이 유효하다고 가정할 수 있다. 이렇게 하면 경량 클라이언트는 거의 전체 노드와 동등한 보안성을 얻을 수 있다(하지만 여전히 정직한 가정에 의존한다).
그러나 위의 논의에서 우리는 실제로 블록 생산자가 항상 모든 블록 데이터를 게시할 것이라고 가정했다. 이는 사기 증명을 생성하는 기본 전제이다. 그러나 악의적인 블록 생산자는 블록을 게시할 때 일부 데이터를 숨길 수 있다. 이 경우 전체 노드는 이 블록을 다운로드하고 무효임을 검증할 수 있지만, 경량 클라이언트의 특성 때문에 그렇게 할 수 없다. 또한 데이터가 부족하여 전체 노드도 경량 클라이언트에 경고하기 위한 사기 증명을 생성할 수 없다.
또 다른 경우는 네트워크 문제로 인해 일부 데이터가 나중에 업로드될 수 있으며, 이때 데이터 누락이 객관적인 조건 때문인지 블록 생산자가 의도적으로 한 것인지 판단할 수 없다. 이 경우 사기 증명의 보상 및 처벌 메커니즘도 작동하지 않는다.
이것이 우리가 논의할 노드 내 데이터 가용성 문제이다.
이미지 출처: https://github.com/ethereum/research/wiki/A-note-on-data-availability-and-erasure-coding
위 그림에서는 두 가지 상황을 보여준다. 첫째, 악의적인 블록 생산자가 데이터가 누락된 블록을 게시했을 때, 정직한 전체 노드가 경고를 발신하지만, 이후 해당 생산자가 나머지 데이터를 보충하여 게시한다; 둘째, 정직한 블록 생산자가 완전한 블록을 게시했지만, 이때 악의적인 전체 노드가 잘못된 경고를 발신한다. 이 두 경우 모두 네트워크의 다른 사람들은 T3 이후에 본 블록 데이터가 완전하다고 보지만, 그 중 누군가는 악의적인 행동을 하고 있다.
이렇게 보면, 사기 증명을 사용하여 경량 클라이언트의 데이터 가용성을 보장하는 것은 결함이 있다.
해결책
2018년 9월, Mustafa AI-Bassam(현재 Celestia CEO)과 Vitalik은 다차원 오류 정정 코드를 사용하여 데이터 가용성을 검사하는 방법을 제안했다. 즉, 경량 클라이언트는 무작위로 일부 데이터를 다운로드하고 검증하기만 하면 모든 데이터 블록이 사용 가능하다는 것을 보장할 수 있으며, 필요할 경우 모든 데이터를 재구성할 수 있다.
오류 정정 코드를 사용하여 경량 클라이언트의 데이터 가용성 문제를 해결하는 것에 대한 이견은 거의 없으며, Polygon Avail, Celestia(및 이더리움의 Danksharding)에서는 Reed-Solomon 오류 정정 코드를 사용하고 있다.
차이점은 오류 정정 코드가 올바르게 인코딩되도록 보장하는 방법에 있다. Polygon Avail과 Danksharding에서는 KZG 약속을 사용하고, Celestia에서는 사기 증명을 사용한다. 두 가지는 각각 장단점이 있으며, KZG 약속은 양자 저항이 없고, 사기 증명은 일정한 정직한 가정과 동기화 가정에 의존한다.
KZG 약속 외에도 STARK 및 FRI를 사용하여 오류 정정 코드의 정확성을 증명하는 방법도 있다.
(참고: 오류 정정 코드와 KZG 약속의 개념은 IOSG의 기사 "합병 임박: 이더리움 최신 기술 로드맵 상세 설명"에서 언급되었으며, 분량 관계로 본문에서는 자세히 설명하지 않는다)
롤업에서의 DA
롤업의 데이터 가용성은: zkRollup에서는 누구나 Layer2의 상태를 재구성할 수 있도록 해야 하며, 검열 저항을 보장해야 한다; Optimistic Rollup에서는 Layer2의 모든 데이터가 게시되었는지 확인해야 하며, 이는 사기 증명을 구축하는 전제 조건이다. 그렇다면 문제는 어디에 있는가?
이미지 출처: https://forum.celestia.org/t/ethereum-rollup-call-data-pricing-analysis/141
Layer2의 비용 구조를 살펴보면, 고정 비용 외에 각 배치 거래 수와 관련된 변수는 주로 Layer2의 가스 비용과 체인 상 데이터 가용성의 지출이다. 전자의 영향은 미미하다; 후자는 각 바이트마다 16 가스를 지속적으로 지불해야 하며, 전체적으로 롤업 비용의 80%-95%를 차지한다. (체인 상) 데이터 가용성은 매우 비싸다. 어떻게 해야 할까?
첫째, 체인 상에 데이터를 저장하는 비용을 줄이는 것이다. 이는 프로토콜 계층에서 하는 일이다. IOSG의 기사 "합병 임박: 이더리움 최신 기술 로드맵 상세 설명"에서 우리는 이더리움이 롤업에 "대형 블록"을 제공하기 위해 Proto-Danksharding과 Danksharding을 도입하는 것을 고려하고 있으며, 그에 따른 노드 부담 문제를 해결하기 위해 오류 정정 코드와 KZG 약속을 사용할 것이라고 언급했다. 그러나 롤업의 관점에서 보면, 이더리움이 자신을 위해 적응할 때까지 수동으로 기다리는 것은 비현실적이다.
둘째, 데이터를 체인 외부에 두는 것이다. 아래 그림은 현재의 체인 외부 데이터 가용성 솔루션을 나열하고 있으며, 일반화된 솔루션에는 Celestia와 Polygon Avail이 포함된다; 롤업에서 사용자 선택 가능한 솔루션에는 StarkEx, zkPorter 및 Arbitrum Nova가 포함된다.
이미지 출처: IOSG Ventures
(참고: Validium은 본래 zkRollup과 체인 외부 데이터 가용성을 결합한 확장 솔루션을 지칭하지만, 편의상 본문에서는 Validium을 체인 외부 데이터 가용성 솔루션을 지칭하며 비교에 포함한다)
이제 이러한 솔루션을 구체적으로 살펴보자.
롤업에서 제공하는 DA
가장 간단한 Validium 솔루션에서는 중앙 집중화된 데이터 운영자가 데이터 가용성을 보장하는 역할을 하며, 사용자는 운영자가 악의적이지 않을 것이라고 신뢰해야 한다. 이러한 장점은 비용이 낮지만, 실제로는 거의 보안 보장이 없다.
따라서 StarkEx는 2020년에 데이터 가용성 위원회(DAC)가 유지하는 Validium 솔루션을 제안했다. DAC의 구성원은 잘 알려진 개인 또는 법적 관할권 내의 조직으로, 신뢰 가정은 그들이 공모하거나 악의적이지 않을 것이라는 것이다.
Arbitrum은 올해 AnyTrust를 제안했으며, 마찬가지로 데이터 위원회를 사용하여 데이터 가용성을 보장하고 AnyTrust를 기반으로 Arbitrum Nova를 구축했다.
zkPorter는 Guardians(zkSync Token 보유자)가 데이터 가용성을 유지하도록 제안하며, 이들은 zkSync Token을 스테이킹해야 하며, 데이터 가용성 오류가 발생하면 스테이킹된 자금이 몰수된다.
세 가지 모두 Volition이라는 옵션을 제공한다: 사용자는 필요에 따라 체인 상 또는 체인 외부 데이터 가용성을 자유롭게 선택할 수 있으며, 특정 사용 사례에 따라 보안성과 비용 간의 균형을 스스로 결정할 수 있다.
이미지 출처: https://blog.polygon.technology/from-rollup-to-validium-with-polygon-avail/
일반 DA 시나리오
위의 솔루션을 제안한 배경은 다음과 같은 생각이다: 일반 운영자의 신뢰도가 충분히 높지 않다면, 더 권위 있는 위원회를 도입하여 신뢰도를 높이는 것이다.
소규모 위원회의 보안 수준은 충분히 높은가? 이더리움 커뮤니티는 2년 전 Validium의 랜섬웨어 공격 문제를 제기했다: 충분한 위원회 구성원의 개인 키를 탈취하여 체인 외부 데이터 가용성이 사용할 수 없게 되면, 사용자를 위협할 수 있다. 즉, 그들이 충분한 몸값을 지불해야만 Layer2에서 인출할 수 있다. Ronin Bridge와 Harmony Horizon Bridge의 해킹 사례를 고려할 때, 이러한 가능성을 무시할 수 없다.
체인 외부 데이터 가용성 위원회가 충분히 안전하지 않다면, 그렇다면 블록체인을 신뢰 주체로 도입하여 체인 외부 데이터 가용성을 보장할 수 있을까?
앞서 언급한 DAC를 컨소시엄 블록체인으로 이해한다면, Polygon Avail과 Celestia가 하는 일은 데이터 가용성 계층을 더욱 분산화하는 것이다. 즉, "DA-Specific" 공개 블록체인을 제공하여 일련의 검증 노드, 블록 생산자 및 합의 메커니즘을 갖추어 신뢰 수준을 높이는 것이다.
보안성을 높이는 것 외에도, 데이터 가용성 계층 자체가 하나의 체인이라면, 특정 롤업이나 특정 체인에 국한되지 않고 일반화된 솔루션으로 작용할 수 있다.
이미지 출처: https://blog.celestia.org/celestiums/
우리는 Celestia의 이더리움 롤업에서의 응용인 Quantum Gravity Bridge를 예로 들어 설명할 수 있다. 이더리움 메인 체인上的 L2 계약은 유효성 증명 또는 사기 증명을 검증하는 것과 같지만, 데이터 가용성은 Celestia에서 제공된다. Celestia 체인에는 스마트 계약이 없으며, 데이터에 대한 계산을 수행하지 않고, 데이터의 가용성만 보장한다.
L2 운영자는 거래 데이터를 Celestia 메인 체인에 게시하고, Celestia의 검증자는 DA 증명의 머클 루트에 서명하여 이더리움 메인 체인上的 DA 브리지 계약에 검증 및 저장을 위해 전송한다.
이렇게 실제로 DA 증명의 머클 루트를 사용하여 모든 데이터 가용성을 증명하며, 이더리움 메인 체인上的 DA 브리지 계약은 이 머클 루트만 검증하고 저장하면 되므로 비용이 크게 줄어든다.
(참고: 다른 데이터 가용성 솔루션으로는 Adamantium과 EigenLayr가 있다. Adamantium 솔루션에서는 사용자가 자신의 체인 외부 데이터를 호스팅할 수 있으며, 각 상태 전환 후 자신의 체인 외부 데이터가 사용 가능하다는 것을 서명하여 확인해야 하며, 그렇지 않으면 자금이 자동으로 메인 체인으로 반환되어 안전성을 보장한다; 또는 사용자가 데이터 제공자를 자유롭게 선택할 수 있다. EigenLayr는 학술적인 솔루션으로, 코딩된 머클 트리와 데이터 가용성 오라클 ACeD를 제안했다. 여기서는 더 이상 논의하지 않는다)
요약
이미지 출처: IOSG Ventures, Celestia Blog 수정
위의 솔루션을 하나씩 논의한 후, 우리는 보안성/분산화 정도, 가스 비용의 관점에서 수평 비교를 할 수 있다. 주의할 점은 이 좌표 그래프는 필자의 개인적인 이해를 나타내며, 모호한 대략적인 구분일 뿐 정량적 비교가 아니다.
왼쪽 아래의 Pure Validium은 보안성/분산화 정도와 가스 비용이 모두 가장 낮다.
중간 부분은 StarkEx와 Arbitrum Nova의 DAC 솔루션, zkPorter의 Guardians 검증자 집합 솔루션, 그리고 일반화된 Celestia와 Polygon Avail 솔루션이다. 필자는 zkPorter가 Guardians를 검증자 집합으로 사용하는 것이 DAC에 비해 보안성/분산화 정도가 약간 높다고 생각하며, DA-Specific 블록체인 솔루션은 검증자 집합에 비해 더 높다고 본다. 동시에 가스 비용도 그에 따라 증가한다. 물론 이는 매우 대략적인 비교일 뿐이다.
오른쪽 위의 사각형 내에는 체인 상 데이터 가용성 솔루션이 있으며, 가장 높은 보안성/분산화 정도와 가스 비용을 가지고 있다. 사각형 내부에서 보면, 이 세 가지 솔루션의 데이터 가용성은 이더리움 메인 체인에서 제공되므로, 동일한 보안성/분산화 정도를 가진다. 순수 롤업 솔루션은 단일화된 이더리움에 비해 가스 비용이 분명히 더 낮으며, Proto-Danksharding과 Danksharding을 도입한 이후 데이터 가용성 비용은 더욱 낮아질 것이다.
참고: 본문에서 논의된 "데이터 가용성" 맥락은 대부분 이더리움 하에 있으며, Celestia와 Polygon Avail은 일반화된 솔루션으로 이더리움 자체에 국한되지 않는다.
마지막으로 우리는 위의 솔루션을 표로 요약한다.
이미지 출처: IOSG Ventures
마무리 생각
- 위의 데이터 가용성 문제를 논의한 후, 우리는 모든 솔루션이 본질적으로 삼중 난제의 상호 제약 하에 균형을 맞추고 있으며, 솔루션 간의 차이는 균형의 "세밀한 정도"에 다름없다는 것을 발견했다.
- 사용자 관점에서 보면, 프로토콜이 체인 상과 체인 외부 데이터 가용성 옵션을 동시에 제공하는 것은 합리적이다. 왜냐하면 서로 다른 응용 시나리오나 서로 다른 사용자 집단 간에 사용자는 보안성과 비용에 대한 민감도가 다르기 때문이다.
- 위에서는 데이터 가용성 계층이 이더리움과 롤업을 지원하는 것에 대해 더 많이 논의했다. 크로스 체인 통신에서 Polkadot의 릴레이 체인은 다른 평행 체인에 데이터 가용성의 원주 안전 보장을 제공하며, Cosmos IBC는 경량 클라이언트 모델에 의존하므로 경량 클라이언트가 소스 체인과 목표 체인의 데이터 가용성을 검증할 수 있도록 하는 것이 중요하다.
- 모듈화의 장점은 플러그 가능성과 유연성으로, 필요에 따라 프로토콜에 적응할 수 있다. 예를 들어 이더리움의 데이터 가용성 부담을 덜어주면서 보안성과 신뢰 수준을 보장하거나, 다중 체인 생태계에서 경량 클라이언트 통신 모델의 보안 수준을 높이고 신뢰 가정을 줄이는 것이다. 이는 이더리움에 국한되지 않으며, 데이터 가용성은 다중 체인 생태계 및 미래의 더 많은 응용 시나리오에서도 역할을 할 수 있다.
우리는 향후 3~5년 내에 블록체인 아키텍처가 단일화에서 모듈화로 진화할 것이며, 각 계층은 낮은 결합 상태를 나타낼 것이라고 생각한다. 향후 Rollup-as-a-Service(RaaS), Data Availability-as-a-Service(DAaaS) 등 많은 모듈화 구성 요소 제공업체가 등장하여 블록체인 아키텍처의 조합 가능성을 실현할 수 있다. 모듈화 블록체인은 다음 주기를 지탱하는 중요한 서사 중 하나이다. - 그 중 실행 계층의 평가 거대 기업(즉, 롤업)은 이미 "사분천하"가 되었고, 후발주자는 드물다; 합의 계층(즉, 각 Layer1)은 중앙에서 경쟁하고 있으며, Aptos와 Sui와 같은 공개 블록체인이 두각을 나타내고 있지만, 공개 블록체인 경쟁 구도가 아직 정리되지 않았고, 그 서사는 새로운 병에 담긴 오래된 술과 같아 합리적인 투자 기회를 찾기 어렵다.
데이터 가용성 계층의 가치는 여전히 발굴될 필요가 있다.