QR 코드를 스캔하여 다운로드하세요.
BTC $74,766.00 -0.21%
ETH $2,330.92 -1.15%
BNB $629.70 +0.92%
XRP $1.43 +1.64%
SOL $88.07 +3.19%
TRX $0.3257 +0.13%
DOGE $0.0974 -0.19%
ADA $0.2546 +1.66%
BCH $450.63 +1.88%
LINK $9.43 +1.30%
HYPE $43.42 -3.73%
AAVE $113.66 +6.01%
SUI $0.9888 +1.26%
XLM $0.1660 +3.66%
ZEC $335.16 -1.78%
BTC $74,766.00 -0.21%
ETH $2,330.92 -1.15%
BNB $629.70 +0.92%
XRP $1.43 +1.64%
SOL $88.07 +3.19%
TRX $0.3257 +0.13%
DOGE $0.0974 -0.19%
ADA $0.2546 +1.66%
BCH $450.63 +1.88%
LINK $9.43 +1.30%
HYPE $43.42 -3.73%
AAVE $113.66 +6.01%
SUI $0.9888 +1.26%
XLM $0.1660 +3.66%
ZEC $335.16 -1.78%

EIP-4844에 대한 심층 해석: 샤딩의 작은 걸음, 이더리움 확장의 큰 걸음

Summary: proto-danksharding 구현 후, 새로운 거래 형식이 blob을 도입함에 따라 각 블록은 평균적으로 추가 1MB의 캐시 공간을 얻을 수 있습니다. Danksharding 구현 후, 각 블록은 추가로 16MB, 최대 32MB를 허용합니다.
포사이트 뉴스
2023-01-30 09:43:08
수집
proto-danksharding 구현 후, 새로운 거래 형식이 blob을 도입함에 따라 각 블록은 평균적으로 추가 1MB의 캐시 공간을 얻을 수 있습니다. Danksharding 구현 후, 각 블록은 추가로 16MB, 최대 32MB를 허용합니다.

작성자: Yihan Xu, Foresight Research

이 보고서에서 당신은 다음을 알 수 있습니다:

EIP-4844;

Proto-danksharding;

Danksharding;

KZG Commitment;

KZG Ceremony;

Dynamic state sharding;

image

최근 커뮤니티 참여도가 초과된 KZG Ceremony가 화제가 되었죠, 이 의식은 도대체 무엇을 하고 있는 걸까요?

간단히 요약하자면, KZG Ceremony는 EIP-4844를 구현하기 위한 필수 초기 단계이며, EIP-4844는 이더리움 샤딩 과정의 선행 버전입니다.

1. 샤딩: 이더리움 확장의 장기 계획

  • 샤딩은 데이터 가용성 관점에서 확장하고, 롤업은 주로 실행 측면에서 확장하여 함께 메인넷 혼잡 문제를 완화합니다; 저는 샤딩이 블록체인의 불가능한 삼각형을 돌파하려는 시도일 수 있다고 생각합니다.
  • 아래의 이더리움 블록 크기 추세 그래프는 데이터 측면에서 확장의 필요성을 다른 각도에서 설명할 수 있습니다. 창세 블록부터 이더리움은 하위 구조에서 상위 애플리케이션까지 지속적으로 빠르게 반복되고 있지만, 평균 블록 크기는 여전히 약 90Kb이며, 최고점에서도 질적인 돌파가 없었습니다. 롤업이 계산 층에서 접근하여 이더리움의 혼잡 문제를 해결했지만, 성능은 여전히 레이어 1의 데이터 저장 능력에 제한을 받습니다.

image

  • 구현 과정의 복잡성과 안전성 문제로 인해 이더리움 개발팀은 샤딩을 여러 단계로 나누었으며, 그 중 최근 언급된 proto-danksharding과 danksharding이 포함됩니다. 전체 과정은 수년에 걸친 업데이트가 될 것입니다;
  • 현재 이더리움의 데이터 저장 모델에서는 소수의 특정 고사양 기계만이 네트워크에 참여하여 노드가 될 수 있으며, 풀 샤딩 이후 이더리움은 더 이상 모든 노드가 전체 데이터를 저장할 필요가 없으며, 메인넷 데이터 저장 비용을 낮추면서 보안을 강화합니다(노드가 되는 문턱이 낮아지고, 탈중앙화 정도가 더욱 향상되며, 공격 위험이 줄어듭니다).

2. EIP-4844: 단기 고수익, 샤딩의 간소화된 선행 버전

EIP-4844 = Proto-Danksharding; Proto는 이더리움 연구자의 이름에서 유래했습니다.

danksharding(다음 섹션에서 분석할 예정)을 구현하는 과정이 매우 복잡하기 때문에 개발 주기는 최소한 연 단위입니다. 따라서 proto-danksharding은 danksharding을 구현하기 전에 이더리움의 확장 솔루션으로, 주로 danksharding의 거래 형식, 프리컴파일 등의 설계를 구현했습니다;

image

1. Proto-danksharding 개요

Proto-Danksharding은 새로운 거래 유형인 blob-carrying transaction을 도입합니다. 이를 통해 롤업의 데이터가 blob 형태로 더 낮은 비용으로 레이어 1로 전송되고 비영구적으로 저장됩니다. 동시에 blob은 현재의 calldata보다 훨씬 크며, 롤업에서 높은 TPS를 더 잘 지원할 수 있습니다.

blob에 관하여:

  • 각 거래는 최대 2개의 blob을 포함할 수 있습니다;
  • 각 블록은 이상적인 상태에서 8개의 blob을 포함하며, 약 1MB, 최대 16개의 blob을 포함할 수 있으며, 약 2MB입니다;
  • Blob은 calldata처럼 역사 로그로 영구 저장될 필요가 없습니다;
  • danksharding에 비해, 노드는 여전히 전체 DA를 검증해야 합니다.

2. Blob-carrying transaction 해석

거래에 blob(데이터 단위)를 추가하기

image

작용

Vitalik이 제안서에서 제시한 그림을 참조하면, 데이터 blob은 현재의 calldata와 유사하며, 롤업은 거래, 증명 등의 데이터를 blob을 통해 레이어 1에 업로드하여 데이터 가용성을 보장할 수 있습니다.

비용

데이터 blob의 설계 초기 목적은 롤업의 고처리량 거래를 지원하는 것이며, 동일한 크기의 calldata(온체인 저장 사용)와 비교할 때 blob의 비용이 크게 줄어듭니다(영구 저장 필요 없음). 따라서 롤업이 데이터 가용성을 유지하는 데 소모하는 가스 비용이 이전보다 현저히 줄어듭니다.

용량

각 blob의 크기는 약 125kB입니다(사실: 현재 평균 블록 크기는 약 90kB에 불과합니다).

3. Blob-carrying transaction의 가치와 도전 과제

가치

blob을 캐시의 일종으로 볼 수 있으며, 롤업이 제출한 거래 데이터는 이제 캐시 형태로 존재합니다. 저장 하드웨어에 대한 요구를 줄이고, 이더리움에 추가 데이터 확장을 제공하며 가스 비용을 낮춥니다.

도전 과제: 이더리움 노드 하드웨어 성능 요구

이더리움 현재 평균 블록 크기는 약 90kB이지만, 하나의 blob은 약 125kB입니다.

EIP-4844의 설계에 따르면, 각 슬롯은 정상적으로 약 1MB이며, 따라서 매년 증가하는 데이터 양은 다음과 같습니다:

1 MB/block * 5 block/min * 43200 min/month * 12 month/year = 연간 2.47 TB

매년 증가하는 데이터 크기는 이더리움 데이터 총량을 훨씬 초과하며, 이러한 저장 솔루션은 분명 비효율적입니다.

해결책

단기 확장 효과를 보면, 각 노드가 여전히 전체 역사 데이터를 저장해야 하므로 EIP-4844를 구현하는 동시에 일정 기간 이후의 blob(구체적인 제한 시간은 아직 최종 결정되지 않았으며, 1개월 또는 1년일 수 있음)을 자동 삭제합니다;

샤딩의 장기 이익을 보면, EIP-4444를 구현하여 노드가 전체 역사 데이터를 저장할 필요 없이 역사 만료를 참조하여 특정 시간 이후의 데이터만 저장하도록 합니다;

이 두 가지 해결책은 서로 다른 정도로 blob-carrying transaction의 저장 공간에서의 트레이드오프를 완화합니다.

4. KZG Commitment

KZG Commitment는 EIP-4844에서 채택된 다항식 약속 솔루션입니다.

KZG commitment 분석

KZG는 저자 Aniket Kate, Gregory M. Zaverucha 및 Ian Goldberg의 성을 따온 약어로, 그들은 2010년에 "다항식에 대한 상수 크기 약속 및 그 응용"이라는 논문을 발표했으며, 이 솔루션은 plonk 스타일의 zk-snark 프로토콜에서 광범위하게 사용됩니다.

image

Dankrad Feist의 발표에서 제시된 도표를 참조하면, KZG root는 Merkle root와 유사하지만, KZG root는 하나의 다항식을 약속합니다. 즉, 모든 위치가 이 다항식에 포함됩니다. proto-danksharding의 시나리오에 기반하여, KZG root는 데이터 집합을 약속하며, 그 중 어떤 데이터도 이 전체에 속하는지 검증할 수 있습니다.

이것이 KZG commitment가 DAS 구현에 대해 호환성이 더 좋은 이유입니다.

KZG commitment의 과정은 다음과 같습니다:

  • Prover: 증명을 제공하고 데이터의 약속을 계산하며, prover는 주어진 다항식을 변경할 수 없으며, 증명에 사용되는 약속은 현재 이 다항식에만 유효합니다;
  • Verifier: prover가 보낸 약속 값을 수신하고 검증하여 prover가 유효한 증명을 제공했는지 확인합니다.

KZG Commitment의 장점

저는 주로 비용과 안전성에 대한 고려에서 다음과 같은 점들을 요약할 수 있습니다:

비용

  • KZG commitment는 빠른 검증, 상대적으로 낮은 복잡성, 간결한 특징을 가지고 있습니다;
  • 추가 증명을 제출할 필요가 없으므로 비용이 더 낮고, 대역폭을 절약합니다;
  • 데이터 접근에 필요한 포인트 평가 프리컴파일은 더 낮은 비용을 얻을 수 있습니다.

안전성

  • 실패가 발생하더라도, 이는 약속된 blob의 데이터에만 영향을 미치며, 다른 깊은 영향을 미치지 않습니다.

더 나은 호환성

  • 샤딩의 전체 계획을 보면, KZG commitment는 DAS 솔루션과 호환되어 중복 개발 비용을 피할 수 있습니다.

5. KZG Ceremony(신뢰 설정)

KZG Ceremony는 KZG Commitment에 신뢰 설정을 제공합니다, 현재 20,000명 이상의 참가자들이 참여하고 기여하여 역사상 최대 규모의 신뢰 설정이 되었습니다.

image

최근 커뮤니티의 높은 참여 열기가 KZG Ceremony는 EIP-4844에서 채택된 KZG commitment에 신뢰 설정을 제공하기 위한 것입니다;

KZG Ceremony의 과정

image

Vitalik의 프로세스 다이어그램을 참조하면, 누구나 참가자로서 비밀을 기여하고 이전 결과와 혼합하여 새로운 결과를 생성할 수 있으며, 이러한 방식으로 최종 SRS를 얻고 KZG commitment의 신뢰 설정을 완료하는 데 도움을 줍니다.

신뢰 설정

  • EIP-4844에서는 일반적인 다자간 신뢰 설정 방식인 powers-of-tau를 채택했습니다;
  • 1-of-N 신뢰 모델을 따르며, 생성 설정 과정에 몇 명이 참여하든지 간에, 한 사람이 자신의 생성 방식을 누설하지 않으면 신뢰할 수 있는 초기화가 유효합니다;

필요성

  • KZG commitment의 신뢰 설정은 간단히 말해, 매번 암호화 프로토콜을 실행할 때 의존해야 하는 매개변수를 생성하는 것으로 이해할 수 있으며, zk-snark의 신뢰 초기화와 유사합니다;
  • Prover가 증명을 제공할 때, KZG commitment C = f(s)g1입니다. 여기서 f는 평가 함수이고, s는 KZG 신뢰 설정에서 최종적으로 얻은 최종 비밀입니다;
  • 최종 비밀은 다항식 약속을 생성하는 핵심 매개변수이며, 이 핵심 매개변수를 얻기 위한 신뢰할 수 있는 프로세스인 KZG Ceremony는 전체 샤딩 구현에 매우 중요합니다.

6. EIP-4844가 가져오는 변화

롤업

ethresear에서 제시된 도표를 참조하면, 롤업은 상태 델타, KZG commitment의 버전 해시를 calldata에 포함하여 제출해야 합니다(zk-rollup은 zk 증명도 제출해야 함).

다른 점은 calldata는 상태 델타, KZG commitment와 같은 작은 데이터만 포함하고, 많은 거래 데이터를 포함하는 거래 배치는 blob에 넣었다는 것입니다.

  • 비용을 효과적으로 줄이며, calldata에 넣는 것은 매우 비쌉니다;
  • 블록 공간의 점유를 줄입니다.

image

안전성

  • 데이터 가용성: Blob은 신호 체인에 저장되며, 이는 레이어 1의 안전성과 동일합니다;
  • 역사 데이터: 노드는 blob을 일정 기간만 저장하지 않으며, 레이어 2 롤업이 영구 데이터 저장을 수행해야 하므로 안전성은 롤업에 의존합니다.

비용

Proto-Danksharding은 새로운 거래 유형을 도입했으며, 저비용 데이터 형식인 blob의 추가는 롤업의 비용을 더욱 낮출 것입니다. 실제 체인 상의 응용 및 구현 진행 상황에 따라 최적화된 롤업의 비용은 10배 또는 50배까지 줄어들 수 있습니다;

동시에 EIP-4844는 blob 수수료를 도입했습니다;

  • 가스와 blob은 각각 조정 가능한 가스 가격과 한도를 가집니다;
  • Blob의 요금 단위는 여전히 가스이며, 가스 양은 트래픽에 따라 변동하여 각 블록에 평균 8개의 blob을 걸 수 있는 목표를 유지합니다(추가 데이터 양 제한).

프리컴파일의 구현

Blob 내의 데이터는 직접 접근할 수 없으며, EVM은 데이터 blob의 약속만 가져올 수 있습니다. 따라서 롤업은 약속의 유효성을 검증하기 위해 프리컴파일을 제공해야 합니다.

다음은 EIP-4844에서 언급된 두 가지 프리컴파일 알고리즘을 분석합니다.

포인트 평가 프리컴파일(수학 원리에 관심이 있는 경우 Vitalik의 분석을 참조하세요)

  • 여러 약속이 동일한 데이터에 지시하는 것을 증명합니다;
  • 주로 zk-rollup을 대상으로 하며, 롤업은 두 가지 약속을 제공해야 합니다: 1. KZG 약속; 2. zk-rollup 자체의 약속;
  • 옵티미스틱 롤업의 경우, 대부분이 다중 라운드 사기 증명 메커니즘을 채택하고 있으며, 최종 라운드 사기 증명에 필요한 데이터 양이 적습니다. 따라서 포인트 평가 프리컴파일을 사용하면 더 낮은 비용을 달성할 수 있습니다.

Blob 검증 프리컴파일

  • 버전 해시와 blob이 유효하게 대응하는 것을 증명합니다;
  • 옵티미스틱 롤업은 사기 증명을 제출할 때 전체 데이터를 접근해야 하므로, 먼저 버전 해시와 blob의 합법성을 검증한 후 사기 증명 검증을 진행합니다.

3. Danksharding: 풀 샤딩으로 나아가는 중요한 단계

Danksharding의 이름은 이더리움 연구원 Dankrad Feist에서 유래했습니다.

1. 확장: 롤업의 캐시 공간을 추가로 확장

proto-danksharding이 구현된 후, 새로운 거래 형식이 blob을 도입하여 각 블록은 평균적으로 추가 1MB의 캐시 공간을 얻습니다. Danksharding이 구현된 후, 각 블록은 추가로 16MB를 얻으며, 최대 32MB까지 허용됩니다.

2. 데이터 가용성: 저장 및 검증 전략이 더 효율적입니다.

proto-danksharding이 전체 노드가 전체 데이터를 다운로드해야 하는 것에 비해, Danksharding이 구현된 후 이더리움 노드는 blob을 샘플링하기만 하면 됩니다. 샘플링된 데이터는 전체 네트워크 노드에 분산되며, 완전한 데이터 blob을 구성할 수 있습니다.

DAS: 효율적인 샘플링 검사

  • 얽힘 코드(에라저 코딩)를 통해 전체 네트워크 노드가 일부 데이터를 다운로드하는 경우 원본 데이터 손실 확률을 더 쉽게 발견할 수 있도록 하여 안전성을 높입니다.

3. 안전성: 기본적으로 변하지 않음

각 노드가 더 이상 전체 역사 데이터를 저장하지 않기 때문에, 데이터 가용성, 백업 및 샘플링 검사의 관점에서 안전성은 최소한 하나의 노드가 전체 데이터를 저장하는 것에서 여러 노드가 일부 데이터를 저장하고 최종적으로 전체 데이터를 복원하는 것으로 변화합니다.

단일 지점에 대한 의존이 다수 지점에 대한 의존보다 안전성이 훨씬 높아 보이지만, 이더리움 네트워크의 노드 수가 충분히 많기 때문에 데이터 백업 요구를 완전히 보장할 수 있으므로 안전성에는 큰 변화가 없습니다.

4. 새로운 도전 과제: 블록 빌더에 대한 요구 증가

검증자가 전체 역사 데이터를 다운로드하고 보관할 필요가 없으므로 대역폭 및 저장 하드웨어에 대한 요구가 완화되지만, 블록 생성자는 여전히 전체 거래 데이터가 포함된 blob 데이터를 업로드해야 합니다. 이미지여기서 PBS(제안자/빌더 분리)를 간단히 소개합니다, Dankrad가 제시한 Danksharding 계획에서 PBS의 적용 도표를 참조하세요:

  • 블록 생성자의 역할을 제안자와 빌더로 분리합니다. 처음에는 anti-MEV 설계를 위한 제안이었으며, Danksharding 설계에서는 블록 생성 시 대역폭 요구를 줄이기 위해 설계되었습니다.

image

4. 기타 샤딩 솔루션: Shardeum의 동적 분할

Shardeum은 EVM 호환 레이어 1 공공 체인으로, 이더리움의 정적 샤딩 솔루션과는 달리, Shardeum은 동적 상태 샤딩 솔루션을 통해 기본 확장성과 안전성을 높이며, 자연스럽게 높은 탈중앙화 수준을 보장합니다;

image

1. 동적 상태 샤딩

장점

동적 상태 샤딩은 가장 직관적인 장점으로 선형 확장을 가져오며, 네트워크에 접속하는 노드는 샤딩 알고리즘에 의해 매우 효율적으로 동적으로 그룹화되고 빠르게 응답하여 블록체인 네트워크의 TPS를 향상시킵니다. 동적 상태 샤딩 설계에서 각 노드는 서로 다른 범위의 주소를 커버하며, 커버 범위는 효율적인 샤딩과 안전성을 보장하기 위해 여유 설계가 있습니다.

장면 내 구현

생태계의 복잡성을 제쳐두고, 두 가지 기술 구현 관점에서 보면, 동적 상태 샤딩의 난이도는 정적 샤딩보다 높습니다. Shardeum의 기술 팀은 샤딩 기술 측면에서 깊은 축적이 있으며, 팀은 이전에 Shardus 기술에서의 연구가 이 공공 체인의 기본 기술에 큰 기여를 했으며, 프로젝트 초기 단계에서 동적 상태 샤딩이 가져오는 선형 확장을 잘 보여주었습니다.

2. Shardeum 종합 정리

제품

노드를 서로 다른 그룹으로 나누어, 분할 정복(divide and conquer) 사고를 참조하여 계산 및 저장의 작업 부하를 분산시켜 더 높은 수준의 병렬 처리를 허용합니다. 따라서 더 많은 노드가 참여할 수 있으며, 공공 체인의 처리량과 탈중앙화 수준을 더욱 높입니다.

시장 경험이 풍부하고, 서사 능력이 뛰어나며, 동적 분할 연구에 깊이 있습니다.

기술

자신의 장면에 적합한 샤딩 솔루션(동적 상태 샤딩)과 합의 설계(지분 증명 + 쿼럼 증명)를 설계하여 확장성을 첫 번째 목표로 하여 더 높은 수준의 탈중앙화와 안전성을 보장합니다.

진행 상황

2023-02-02에 베타넷을 출시할 예정이며, 주목할 만합니다.

5. 샤딩에 대한 생각과 전망

  • 샤딩은 이더리움 확장의 장기 계획이며, 가치가 크고 의미가 깊은 장기 솔루션입니다. 샤딩을 구현하는 과정에서 현재 언급된 proto-danksharding, danksharding 등 모든 솔루션이 지속적으로 반복될 수 있으며, 지속적으로 주목할 가치가 있습니다;
  • 샤딩의 큰 방향에 대한 이해는 중요하지만, 풀 샤딩 과정에서 채택된 각 제안의 기술 솔루션(PBS, DAS, 다차원 수수료 시장)도 마찬가지로 주목할 가치가 있으며, 저는 관련된 많은 우수한 팀과 프로젝트가 등장할 것이라고 믿습니다;
  • 샤딩은 확장 기술의 총칭이지만, 구체적인 구현 솔루션은 하나만 있는 것이 아닙니다. 서로 다른 공공 체인이 자신에게 적합한 샤딩 솔루션을 가질 수 있음을 인식해야 합니다. 예를 들어, danksharding의 일부 설계는 이더리움 네트워크에만 적합하며, 안전성의 트레이드오프는 많은 노드로 상쇄해야 합니다;
  • 샤딩과 다른 확장 솔루션의 합리적인 결합은 확장성을 높이는 1+1>2입니다. 현재의 Danksharding은 독립적인 확장 솔루션이 아니라 이더리움 생태계의 다른 구현과 상호 보완적입니다. 예를 들어, Danksharding과 롤업이 함께 이더리움 확장에서 더 나은 결과를 달성합니다.

Reference

https://notes.ethereum.org/@dankrad/kzgcommitmentsin_proofs

https://notes.ethereum.org/@dankrad/new_sharding

https://vitalik.ca/general/2022/03/14/trustedsetup.html

https://notes.ethereum.org/@vbuterin/protodankshardingfaq#Why-use-the-hash-of-the-KZG-instead-of-the-KZG-directly

https://ethresear.ch/t/easy-proof-of-equivalence-between-multiple-polynomial-commitment-schemes-to-the-same-data/8188

https://dankradfeist.de/ethereum/2020/06/16/kate-polynomial-commitments.html

https://notes.ethereum.org/@dankrad/new_sharding

https://eips.ethereum.org/EIPS/eip-4844

https://www.eip4844.com/

https://biquanlibai.notion.site/Data-Availability-caa896aae59d489b98f2448f17b01640

https://docs.google.com/presentation/d/1-pe9TMF1ld185GL-5HSWMAsaZLbEqgfU1sYsHGdD0Vw/edit#slide=id.g1150d91b32e0474

https://ethresear.ch/t/a-design-of-decentralized-zk-rollups-based-on-eip-4844/12434

warnning 위험 경고
app_icon
ChainCatcher Building the Web3 world with innovations.