

원본 소스: 델파이 디지털
원문 편집: The Way of DeFi
키 포인트
원본 소스: 델파이 디지털
원문 편집: The Way of DeFi
키 포인트
이더리움은 확장 가능한 통합 결제 및 데이터 가용성 계층을 구축하는 유일한 주요 프로토콜입니다.
롤업은 Ethereum의 보안을 활용하면서 계산을 확장합니다.
모든 길은 중앙 집중식 블록 생산, 분산형 무신뢰 블록 검증 및 검열 방지 최종 게임으로 이어집니다.
MEV는 이제 전면 중앙에 있습니다. MEV의 피해를 완화하고 중앙 집중화 경향을 방지하기 위해 많은 설계가 계획되어 있습니다.
소개
Danksharding은 Ethereum의 롤업 중심 로드맵에 필요한 확장 가능한 기본 계층을 제공하기 위해 여러 최첨단 연구 방법을 결합합니다.
나는 우리의 삶에서 댄크샤딩을 달성하기를 희망합니다
소개
1부 – Danksharding으로 가는 길
1) 원시 데이터 샤드 설계 – 독립적인 샤드 제안자
2) 데이터 가용성 샘플링
3) KZG의 약속
4) KZG 약속 및 사기 증명
8) Danksharding
5) 프로토콜 내 제안자-빌더 분리
6) 검열방지 목록(crList)
7) 2차원 KZG 방식
9) Danksharding – 정직한 다수 검증
10) Danksharding – 재건
11) Danksharding – 개인 무작위 샘플링을 통한 악의적 다수 보안
12) Danksharding – 주요 시사점
13) Danksharding – 블록체인 확장성의 한계
14) 원시 댄크샤딩(EIP-4844)
15) 다차원 EIP-1559
파트 II – 역사 및 상태 관리
1) 총 콜데이터 한도(EIP-4488)로 콜데이터 가스를 줄임
5) Verkle Tries
2) 클라이언트에서 과거 데이터 실행 제한(EIP-4444)
3) 과거 데이터 복원
4) 약한 무국적자
2) MEV-Boost
6) 상태 만료
3부 – 전부 MEV
1) 현재 MEV 공급망
3) 위원회 주도의 MEV 스무딩
4) 단일 슬롯 결정성
5) 단일 비밀 지도자 선거
1) 병합된 클라이언트
소개
2) 병합 합의
결론적인 생각
소개
나는 Vitalik이 오늘 태어난 사람들이 3000년까지 살 확률이 50-75%이며 영원히 살기를 희망한다고 말한 이후로 The Merge의 타임라인에 회의적이었습니다. 그러나 농담으로 받아들이자. 어쨌든 우리는 이더리움의 야심찬 로드맵을 기대해야 한다.이것은 빠른 읽기가 아닙니다. 이더리움의 야심 찬 로드맵을 광범위하고 미묘하게 살펴보고 싶다면 한 시간만 집중하면 몇 개월의 작업을 절약해 드리겠습니다.장기적으로 따라야 할 많은 이더리움 연구 방향이 있지만 모든 것이 궁극적으로 하나의 포괄적인 목표, 즉 분산 유효성 검사를 희생하지 않고 계산을 확장하는 데 적합합니다.
Vitalik의 유명한 "
최종 단계
"기사 하나. 그의 기사에서 그는 규모를 달성하기 위해 일부 중앙 집중화가 필요함을 인정합니다. 이 "C" 단어는 블록체인에서 무섭지만 사실입니다. 우리는 분산되고 신뢰할 수 없는 검증을 통해 이 권한을 유지하기만 하면 됩니다. 여기에는 타협이 없습니다.
전문가는 L1 이상용 모듈을 구축합니다. Ethereum은 간단한 분산 검증으로 여전히 매우 안전하며 Rollup은 L1에서 보안을 상속합니다. 그런 다음 이더리움은 정산 및 데이터 가용성을 제공하여 롤업을 확장할 수 있습니다. 여기 있는 모든 연구는 궁극적으로 이 두 가지 역할을 최적화하는 동시에 체인을 완전히 검증하는 것을 그 어느 때보다 쉽게 만들기를 희망합니다.
다음은 ~43531756765713534번 나타나는 일부 단어를 축약하는 용어집입니다.
DA – 데이터 가용성
DS–Danksharding
DAS – 데이터 가용성 샘플링
PBS – 제안자-빌더 분리
PDS – 원시 다크샤딩
PoW - 작업 증명
PoS – 지분 증명
1부: Danksharding으로 가는 길
이더리움이 롤업 중심 로드맵으로 전환했다는 소식을 들었기를 바랍니다. 더 이상 샤딩 없음 - 이더리움은 대신 데이터가 많이 필요한 롤업에 최적화됩니다. 이는 데이터 샤딩(Ethereum의 계획) 또는 대형 블록(Celestia의 계획)을 통해 달성됩니다.
합의 계층은 샤딩된 데이터를 해석하지 않습니다. 데이터를 사용할 수 있는지 확인하는 한 가지 작업이 있습니다.
Rollup, Fraud 및 ZK Proofs와 같은 기본 개념과 DA가 중요한 이유에 이미 익숙하다고 가정합니다. 익숙하지 않거나 복습이 필요한 경우 Can이 최근에 게시한 Celestia 보고서에서 이에 대해 다룹니다.
원시 데이터 샤드 설계 - 독립적인 샤드 제안자
여기에 설명된 디자인은 더 이상 사용되지 않지만 귀중한 시나리오입니다. 간단히 하기 위해 이것을 "샤딩 1.0"이라고 합니다.
64개의 샤드 블록 각각에는 독립적인 제안자와 위원회가 있으며 검증자 세트에서 순환합니다. 그들은 샤드 데이터가 사용 가능한지 독립적으로 확인합니다. 원래 이것은 DAS가 아니었습니다. 데이터를 완전히 다운로드하기 위해 설정된 각 샤드의 유효성 검사기 대부분에 의존했습니다.
이 디자인은 불필요한 복잡성, 더 나쁜 사용자 경험 및 공격 벡터를 도입합니다. 샤드 간에 유효성 검사기를 섞는 것은 까다롭습니다.
매우 엄격한 동기화 가정을 도입하지 않는 한 투표가 단일 슬롯 내에서 수행될 것이라고 보장하기는 어렵습니다. 비콘 블록 제안자는 모든 개별 위원회 투표를 수집해야 하며 지연이 발생할 수 있습니다.
DS는 완전히 다릅니다. 유효성 검사기는 DAS를 실행하여 모든 데이터가 사용 가능한지 확인합니다(더 이상 별도의 샤드 위원회가 없음). 전문 빌더가 비콘 블록과 모든 샤드 데이터가 함께 확인된 대형 블록을 생성합니다. 따라서 DS가 분산된 상태를 유지하려면 PBS가 필요합니다(큰 블록을 함께 구축하는 것은 리소스 집약적임).
데이터 가용성 샘플링
롤업은 많은 데이터를 게시하지만 노드가 이 모든 데이터를 다운로드하는 것을 원하지 않습니다. 이것은 높은 리소스 요구 사항을 의미하므로 분산화를 손상시킵니다.
대신 DAS를 사용하면 노드(라이트 클라이언트 포함)가 모든 것을 다운로드하지 않고도 모든 것이 사용 가능한지 쉽고 안전하게 확인할 수 있습니다.
간단한 해결책 - 해당 블록에서 임의의 덩어리를 확인하십시오. 그들이 모두 서명하면 내가 서명합니다. 하지만 당신의 모든 ETH를 시푸에게 주는 거래를 놓친다면? 자금은 더 이상 안전하지 않습니다.
스마트 솔루션 - 먼저 데이터를 지웁니다. Reed-Solomon 코드를 사용하여 데이터를 확장합니다. 이는 데이터가 다항식으로 보간된 다음 다른 많은 위치에서 평가됨을 의미합니다. 이것은 한 번에 완료되므로 분해합시다.
수학 이해가 어려우신 분들을 위해 빠르게 설명해드리겠습니다. (나는 그것이 정말 끔찍한 수학이 아닐 것이라고 약속합니다. 부분을 작성하기 위해 칸아카데미 비디오를 봐야 했지만 지금은 알 수 있습니다).
다항식은 cxk 형식의 유한한 수의 항을 합하는 표현식입니다. 학위는 가장 높은 지수입니다. 예를 들어, 2 x3+6 x2+2 x-4는 3차 다항식입니다. 해당 다항식에 있는 d+1 좌표에서 차수가 d인 다항식을 재구성할 수 있습니다.
이제 구체적인 예를 들어보십시오. 아래에는 4개의 데이터 청크(d0 ~ d3)가 있습니다. 이러한 데이터 청크는 주어진 지점에서 다항식 f(X)의 평가에 매핑될 수 있습니다. 예를 들어 f(0) = d0입니다. 이제 이러한 평가를 통해 실행되는 최소 차수 다항식을 찾았습니다. 이것은 4개의 청크이므로 3차 다항식을 찾을 수 있습니다. 그런 다음 이 데이터를 확장하여 동일한 다항식을 따라 4개의 평가(e0에서 e3까지)를 추가할 수 있습니다.
핵심 다항식 속성을 기억하십시오. 원래 데이터의 4개 청크뿐만 아니라 4개 지점에서 다항식을 재구성할 수 있습니다.
DAS로 돌아갑니다. 이제 삭제 코딩된 데이터의 50%(4/8)를 사용할 수 있는지 확인하기만 하면 됩니다. 이를 통해 전체 블록을 재구성할 수 있습니다.
따라서 공격자는 데이터가 없을 때 데이터를 사용할 수 있다고 생각하도록 DAS 노드를 성공적으로 속이기 위해 블록의 50% 이상을 숨겨야 합니다.
많은 성공적인 임의 샘플 후에 <50% 사용 가능한 확률은 매우 작습니다. 삭제 코딩된 데이터를 30회 성공적으로 샘플링하면 <50%를 사용할 수 있는 확률은 2-30입니다.
KZG 약속
자, 우리는 많은 무작위 샘플을 만들었고 모두 사용할 수 있습니다. 하지만 또 다른 질문이 있습니다. 데이터 삭제 코딩이 맞습니까? 그렇지 않으면 블록 생성자가 블록을 확장할 때 50%의 쓰레기를 추가했을 수 있으며 우리는 쓰레기를 샘플링했습니다. 이 경우 실제로 데이터를 재구성할 수 없습니다.
일반적으로 우리는 Merkle 루트를 사용하여 많은 양의 데이터를 커밋합니다. 이는 컬렉션에 특정 데이터가 포함되어 있음을 증명하는 데 효과적입니다.
그러나 모든 원본 데이터와 확장 데이터가 동일한 저차 다항식에 있다는 것도 알아야 합니다. Merkle 뿌리는 이것을 정당화하지 않습니다. 따라서 이 체계를 사용하는 경우 무언가 잘못되었을 경우를 대비하여 사기 증명도 필요합니다.
개발자는 두 가지 방향으로 작업하고 있습니다.
Celestia는 사기 방지 경로로 이동합니다. 누군가는 블록이 잘못 삭제 코딩된 경우 모든 사람에게 경고하기 위해 사기 증거를 제출할 것임을 알고 있어야 합니다. 여기에는 표준적인 정직한 몇 가지 가정과 동시성 가정이 필요합니다(즉, 누군가 나에게 사기 증거를 보내는 것 외에도 내가 연결되어 있고 제한된 시간 내에 받을 것이라고 가정해야 합니다).
Ethereum 및 Polygon Avail은 KZG Commitments(일명 Kate Commitments)라는 새로운 경로를 택하고 있습니다. 이렇게 하면 사기 증명에 대한 정직한 소수 및 동기식 보안 가정이 제거됩니다(비록 곧 다시 살펴보겠지만 여전히 재구축해야 함).
다른 솔루션이 존재하지만 적극적으로 추구되지는 않습니다. 예를 들어 ZK 증명을 사용할 수 있습니다. 불행하게도, 그것들은 (현재로서는) 계산상 비실용적입니다. 그러나 향후 몇 년 동안 개선될 것으로 예상되므로 KZG가 양자 저항성이 없다고 약속함에 따라 이더리움은 향후 STARK로 전환할 수 있습니다.
KZG 약속으로 돌아가서 이것은 다항식 약속 체계입니다.
커밋 체계는 단순히 어떤 가치를 증명할 수 있는 암호화 방법입니다. 가장 좋은 비유는 편지를 잠긴 상자에 넣고 다른 사람에게 주는 것입니다. 편지는 한 번 들어가면 변경할 수 없지만 열쇠로 열어 증명할 수 있습니다. 당신이 저지른 것은 약속이고 열쇠는 증거입니다.
우리의 경우 모든 원본 데이터와 확장 데이터를 X,Y 그리드에 매핑한 다음 이를 통과하는 최소 차수 다항식을 찾습니다(이 프로세스를 Lagrangian 보간이라고 함). 이 다항식은 증명자가 약속하는 것입니다.
핵심 사항은 다음과 같습니다.
우리는 "다항식" f(X)
증명자는 다항식 C(f)에 "약속"을 합니다.
이는 신뢰할 수 있는 설정으로 타원 곡선 암호화에 의존합니다. 이것이 어떻게 작동하는지에 대한 자세한 내용은 Bartek의 훌륭한 게시물을 참조하십시오.
이 다항식 y = f(z)의 "평가"에 대해 증명자는 "증명" π(f,z)를 계산할 수 있습니다.
약속 C(f), 증명 π(f,z), 임의의 위치 z 및 z에서 다항식의 평가 y가 주어지면 검증자는 f(z) = y임을 확인할 수 있습니다.
설명: 증명자는 이러한 조각을 모든 검증자에게 제공하며, 검증자는 어떤 시점(평가가 기본 데이터를 나타내는 경우)의 평가가 커밋된 다항식에 올바르게 놓여 있는지 확인할 수 있습니다.
이것은 모든 평가가 동일한 다항식에 있기 때문에 원래 데이터가 올바르게 스케일링되었음을 증명합니다.
검증자는 다항식 f(X)를 필요로 하지 않습니다.
중요 속성 - 여기에는 O(1) 커밋 크기, O(1) 증명 크기 및 O(1) 검증 시간이 있습니다. 증명자에 대해서도 O(d)에서만 확약 및 증명 생성 스케일, 여기서 d는 다항식의 차수입니다.
설명: n(X의 값 수)이 증가하더라도(즉, 더 큰 샤드 블롭으로 데이터 세트가 증가함에 따라) 약속과 증명은 동일한 크기로 유지되며 검증에는 지속적인 노력이 필요합니다.
둘 다 C(f)에 커밋하고 π(f,z)가 쌍 친화적인 곡선의 타원 곡선 요소임을 증명합니다(이는 BL12-381을 사용함). 이 경우 각각 48바이트에 불과합니다(매우 작음).
따라서 많은 양의 원본 데이터와 확장 데이터(다항식의 다중 평가를 나타냄)를 제출하는 증명자는 여전히 48바이트에 불과하고 증명도 48바이트에 불과합니다.
TLDR – 확장성이 뛰어납니다.
그런 다음 KZG 루트(다항식 커밋)는 Merkle 루트(벡터 커밋)와 유사합니다.
원래 데이터는 f(0)에서 f(3)까지의 위치에서 계산된 다항식 f(X)이며 f(4)에서 f(7)까지의 다항식을 계산하여 확장합니다. f(0)에서 f(7)까지의 모든 점은 동일한 다항식에 놓이도록 보장됩니다.
결론: DAS를 사용하면 삭제 코딩된 데이터를 사용할 수 있는지 여부를 확인할 수 있습니다. KZG의 약속은 원본 데이터가 적절하게 확장되고 모든 것을 약속한다는 것을 우리에게 증명합니다.
잘 했어, 그것이 오늘날 대수학의 목적이다.
KZG 약속 및 사기 방지
이제 KZG의 작동 방식을 이해했으므로 한 걸음 물러서서 두 접근 방식을 비교해 보겠습니다.
KZG의 단점 - 사후 양자 보안이 아니며 신뢰할 수 있는 설정이 필요합니다. 이들은 걱정하지 않습니다. STARK는 포스트 퀀텀 대안을 제공하는 반면 신뢰할 수 있는 설정(공개 참여)에는 정직한 참가자 한 명만 필요합니다.
KZG의 장점 - 사기 방지 설정보다 대기 시간이 짧고(앞서 언급한 바와 같이 GASPER가 최종적으로 빠르지는 않지만) 동기화 및 정직성에 대한 내재된 몇 가지 가정을 도입하지 않고 올바른 삭제 코딩을 보장합니다.
그러나 Ethereum이 여전히 블록 재구성을 위해 이러한 가정을 다시 도입한다는 점을 감안할 때 실제로 제거하지는 않습니다. DA 계층은 항상 블록이 초기에 제공된 시나리오를 계획해야 하지만 이후 노드는 이를 다시 결합하기 위해 서로 통신해야 합니다. 이 재구성에는 두 가지 가정이 필요합니다.
데이터를 샘플링하는 노드(라이트 또는 전체)가 충분하므로 데이터를 다시 결합하기에 충분합니다. 이것은 상당히 약하고 피할 수 없는 정직한 소수 가정이므로 큰 문제는 아닙니다.
동시성 가정 재도입 - 노드는 다시 결합하기 위해 일정 시간 동안 통신할 수 있어야 합니다.
이더리움 유효성 검사기는 PDS에서 샤드 블롭을 완전히 다운로드하고 DS에서는 DAS(할당된 행 및 열 다운로드)만 수행합니다. Celestia는 유효성 검사기가 전체 블록을 다운로드하도록 요구합니다.
타원 곡선 쌍 탐색
KZG 다항식 약속
신뢰할 수 있는 설정은 어떻게 작동합니까?
프로토콜 내 제안자-빌더 분리
오늘날의 합의 노드(채굴자)와 병합된 노드(검증자)는 두 가지 역할을 합니다. 그들은 실제 블록을 구축한 다음 이를 검증하는 다른 합의 노드에 제안합니다. 채굴자는 이전 블록을 기반으로 "투표"하고, 병합 후 검증자는 블록이 유효한지 또는 무효인지에 대해 직접 투표합니다.
PBS는 이들을 분리합니다. 즉, 새로운 프로토콜 내 빌더 역할을 명시적으로 생성합니다. 전문 빌더는 블록을 함께 배치하고 블록을 선택하기 위해 제안자(검증자)에게 입찰합니다. 이것은 MEV의 중앙 집중식 힘에 맞서 싸웁니다.
Vitalik의 "엔드게임" 기사를 상기하십시오. 모든 길은 신뢰할 수 없고 분산된 검증을 통해 중앙 집중식 블록 생산으로 이어집니다. PBS는 이것을 컴파일했습니다. 우리는 활성 및 검열 저항을 위해 네트워크에 서비스를 제공할 정직한 빌더가 필요하지만(효율적인 시장을 위해 두 개가 필요함) 검증자 세트에는 정직한 다수가 필요합니다. PBS는 검증자 탈중앙화를 지원하기 위해 제안자 역할을 가능한 한 간단하게 만듭니다.
빌더는 인출할 수 있는 MEV와 함께 우선 수수료 팁을 받습니다. 효율적인 시장에서 경쟁 빌더는 블록에서 추출할 수 있는 전체 가치(강력한 하드웨어 등과 같은 상각 비용 제외)에 대해 입찰할 것입니다. 모든 가치는 탈중앙화된 유효성 검사기 세트에 스며듭니다. 정확히 우리가 원하는 것입니다.
정확한 PBS 구현은 아직 논의 중이지만 2슬롯 PBS는 다음과 같습니다.
빌더는 입찰가로 블록 헤더를 커밋합니다.
비콘 블록 제안자는 낙찰된 블록 헤더와 입찰가를 선택합니다. 시공자가 본체를 생산하지 못하더라도 무조건 입찰자가 낙찰
증명위원회가 우승 헤더를 확인합니다.
빌더가 수상자를 발표합니다.
증인으로 구성된 독립 위원회가 우승 단체를 선출합니다(승리한 건축업자가 동의하지 않으면 결석 투표를 합니다)
제안자는 표준 RANDAO 메커니즘을 사용하여 검증자 세트에서 선택됩니다. 그런 다음 위원회가 블록 헤더를 확인할 때까지 전체 블록 본문이 공개되지 않는 커밋-공개 체계를 사용합니다.
commit-reveal이 더 효율적이며(약 수백 개의 전체 블록 본문을 전송하면 p2 p-계층 대역폭을 압도할 수 있음) MEV 도용도 방지할 수 있습니다. 빌더가 전체 블록을 제출하면 다른 빌더가 이를 보고 해당 전략을 파악하고 병합하고 더 나은 블록을 신속하게 게시할 수 있습니다. 또한 성숙한 제안자는 사용된 MEV 전략을 감지하고 빌더를 보상하지 않고 복제할 수 있습니다. 이 MEV 도용이 균형을 이루면 병합 빌더와 제안자에게 인센티브를 제공하므로 커밋-공개를 사용하여 이를 방지합니다.
제안자가 승리한 블록 헤더를 선택한 후 위원회는 포크 선택 규칙을 확인하고 수정합니다. 그런 다음 수상한 빌더는 우승한 전체 "빌더 블록" 본문을 게시합니다. 제시간에 공개되면 다음 위원회에서 증언할 것입니다. 제시간에 게시하지 못하면 여전히 제안자에게 전체 입찰가를 지불합니다(그리고 모든 MEV 및 수수료를 잃음). 이 무조건적인 지불은 제안자가 빌더를 신뢰할 필요가 없습니다.
이 "슬롯 2개" 설계의 단점은 대기 시간입니다. 병합된 블록은 고정된 12초이므로 여기서는 새로운 가정을 도입하지 않으려면 전체 블록 시간(2개의 12초 슬롯)을 얻기 위해 24초가 필요합니다. 슬롯당 8초(블록 시간 16초)는 연구가 진행 중이지만 안전한 절충안으로 보입니다.
검열 저항 목록(crList)
불행하게도 PBS는 빌더에게 트랜잭션을 검토할 수 있는 더 높은 능력을 제공합니다. 건축업자가 당신을 좋아하지 않아서 당신의 거래를 무시할 수도 있습니다. 어쩌면 그들은 다른 모든 건축업자들이 포기할 정도로 훌륭한 일을 하고 있거나, 아니면 그들이 당신을 정말로 좋아하지 않기 때문에 단지 블록에 너무 많이 입찰했을 수도 있습니다.
crLists는 이 기능을 확인합니다. 정확한 구현은 다시 개방형 설계 공간이지만 "하이브리드 PBS"가 선호되는 것 같습니다. 제안자는 mempool에서 볼 수 있는 모든 적합한 트랜잭션 목록을 지정하고 빌더는 이를 포함하도록 강제됩니다(블록이 가득 차 있지 않은 경우).
제안자는 모든 적합한 거래를 포함하는 crList 및 crList 다이제스트를 게시합니다.
빌더는 제안된 블록 본문을 만든 다음 crList 다이제스트의 해시가 포함된 입찰을 제출하여 이를 확인했음을 증명합니다.
제안자는 낙찰된 빌더의 입찰 및 블록 헤더를 수락합니다(그들은 아직 본문을 보지 못했습니다).
빌더는 블록을 게시하고 crList의 모든 트랜잭션을 포함했거나 블록이 가득 찼다는 증거를 포함합니다. 그렇지 않으면 분기 선택 규칙이 블록을 허용하지 않습니다.
Prover는 게시된 본문의 유효성을 확인합니다.
여기서 해결해야 할 중요한 문제가 여전히 남아 있습니다. 예를 들어, 여기에서 지배적인 경제 전략은 제안자가 빈 목록을 제출하도록 하는 것입니다. 리뷰 빌더도 최고 입찰가를 제시하면 경매에서 낙찰될 수 있습니다. 이 문제와 다른 문제를 해결하기 위한 몇 가지 아이디어가 있지만 여기의 디자인이 고정되어 있지 않다는 점을 강조하기 위한 것입니다.
2차원 KZG 체계
우리는 KZG 약속을 통해 데이터를 커밋하고 데이터가 올바르게 확장되었음을 증명하는 방법을 확인했습니다. 하지만 이더리움의 실제 동작을 단순화했습니다. 단일 KZG 커밋에서 모든 데이터를 커밋하지는 않습니다. 단일 블록은 많은 KZG 커밋을 사용합니다.
우리는 이미 전담 빌더가 있는데 그들이 거대한 KZG 커밋을 만들도록 놔두지 않겠습니까? 문제는 이를 재구축하려면 강력한 슈퍼노드가 필요하다는 것입니다. 우리는 초기 빌드에 대한 슈퍼노드 요구 사항을 수용할 수 있지만 여기서 가정을 재구축하는 것은 피해야 합니다. 재구축을 처리하는 데 자원이 덜 필요한 엔터티가 필요하며 이를 여러 KZG 커밋으로 분할하면 이를 실현할 수 있습니다. 주어진 데이터의 양을 감안할 때 재구성은 상당히 일반적이거나 이 디자인의 기본 사례 가정일 수도 있습니다.
재구성을 더 쉽게 하기 위해 각 블록에는 m개의 KZG 약정으로 인코딩된 m개의 샤드 블롭이 포함됩니다. 순진하게 이 작업을 수행하면 샘플링이 많이 발생합니다. 모두 사용할 수 있을 때까지 각 샤드 블롭에서 DAS를 수행합니다(m*k 샘플, 여기서 k는 블롭당 샘플 수).
대신 Ethereum은 2D KZG 체계를 사용합니다. 우리는 다시 Reed-Solomon 코드를 사용하여 m 약속을 2m 약속으로 확장합니다.
0-255(여기서는 256-511)와 동일한 다항식에 대한 추가 KZG 확약을 확장하여 2D 체계로 만듭니다. 이제 모든 샤드에 대한 데이터 가용성을 보장하기 위해 위의 테이블을 DAS하기만 하면 됩니다.
사용 가능한 데이터의 ≥75%에 대한 2D 샘플링 요구 사항(이전의 50%와 비교)은 우리가 좀 더 고정된 샘플 크기를 수행한다는 것을 의미합니다. 이전에 간단한 1D 체계에서 DAS에 대한 30개의 샘플을 언급했지만 사용 가능한 블록을 재구성하는 동일한 확률 확률을 보장하려면 75개의 샘플이 필요합니다.
샤딩 1.0(1D KZG 약정 체계 포함)에는 30개의 샘플만 필요하지만 1920개 샘플의 전체 DA를 확인하려면 64개의 샤드를 샘플링해야 합니다. 각 샘플은 512B이므로 다음이 필요합니다.
(512 B x 64 슬라이스 x 30 샘플) / 16초 = 60KB/s 대역폭
Danksharding
효과적으로 유효성 검사기는 모든 샤드를 개별적으로 확인하지 않고 간단히 섞습니다.
2D KZG 커밋 체계를 사용하는 구성 블록은 이제 전체 DA 사소한 확인을 만듭니다. 단일 균일 블록의 75개 샘플만 필요합니다.
(512 B x 1 블록 x 75 샘플) / 16초 = 2.5KB/s 대역폭
PBS는 원래 유효성 검사기 세트에서 MEV의 집중을 줄이기 위해 설계되었습니다. 그러나 Dankrad는 최근 이 설계를 활용하여 훨씬 더 나은 샤딩 구조인 DS를 잠금 해제했음을 깨달았습니다.
DS는 전용 빌더를 활용하여 블록과 샤드의 긴밀한 통합을 시행하는 비콘 체인을 생성합니다. 이제 전체 블록, 제안자 및 위원회를 함께 만드는 빌더가 있습니다. DS는 PBS 없이는 실현 불가능합니다. 일반 유효성 검사기는 롤업 데이터 blob으로 가득 찬 블록의 막대한 대역폭을 처리할 수 없습니다.
샤딩 1.0에는 64개의 독립적인 위원회와 제안자가 포함되어 있으므로 각 샤드를 개별적으로 사용할 수 없습니다. 여기서 더 긴밀한 통합을 통해 DA를 한 번에 모두 보장할 수 있습니다. 데이터는 여전히 배후에서 "샤딩"되지만 실용적인 관점에서 볼 때 댄샤딩은 더 큰 블록처럼 느껴지기 시작하고 있습니다.
Danksharding – 정직한 다수 검증
검증자 증명 데이터는 다음과 같이 제공됩니다.
이것은 정직한 다수의 유효성 검사기에 의존합니다. 단일 유효성 검사자로서 내 열 및 행 가용성은 전체 블록이 사용 가능하다는 통계적 확신을 갖기에 충분하지 않습니다. 정직하게 대부분의 사람들이 말하는 것에 달려 있습니다. 분산 검증이 중요합니다.
이것은 앞에서 논의한 75개의 임의 샘플과 다릅니다. 프라이빗 랜덤 샘플링은 리소스가 부족한 개인이 가용성을 쉽게 확인할 수 있는 방법입니다(예: DAS 라이트 노드를 실행하고 블록이 사용 가능한지 알 수 있음). 그러나 유효성 검사기는 행 및 열 접근 방식을 계속 사용하여 가용성을 확인하고 블록 재구성을 안내합니다.
Danksharding - 리팩토링
단일 행 또는 열의 50%를 사용할 수 있는 한 샘플링 유효성 검사기는 이를 쉽게 완전히 재구성할 수 있습니다. 행/열에서 손실된 블록을 재구성할 때 해당 블록을 직교 라인에 재할당합니다. 이렇게 하면 다른 유효성 검사기가 필요에 따라 교차 행과 열에서 누락된 블록을 재구성하는 데 도움이 됩니다.
사용 가능한 블록을 재구축하기 위한 안전한 가정은 다음과 같습니다.
샘플 요청을 수행할 수 있는 충분한 노드로 블록을 재구성하기에 충분한 데이터를 집합적으로 보유할 수 있습니다.
각 블록을 방송하는 노드 간의 동기화 가정
그렇다면 얼마나 많은 노드가 충분할까요? 대략적인 추정치는 약 64,000개의 개별 인스턴스입니다(지금까지 380,000개 이상). 이것은 또한 동일한 유효성 검사기가 실행하는 노드 간에 교차가 없다고 가정하는 매우 비관적인 계산입니다(노드가 32 ETH 인스턴스로 제한되는 것과는 거리가 멉니다). 2개 이상의 행과 열을 샘플링하면 교차로 인해 일괄적으로 검색할 수 있는 가능성이 높아집니다. 이는 2차적으로 확장되기 시작합니다. 유효성 검사기가 10개 또는 100개의 유효성 검사기를 실행하는 경우 64,000은 훨씬 더 적을 수 있습니다.
온라인 유효성 검사기 수가 비정상적으로 낮아지기 시작하면 샤드 데이터 blob 수를 자동으로 줄이도록 DS를 설정할 수 있습니다. 따라서 안전 가정은 안전한 수준으로 감소합니다.
Danksharding – 개인 무작위 샘플링을 통한 악의적 다수 보안
우리는 DS 유효성 검사가 블록을 증명하기 위해 정직한 다수에 의존한다는 것을 확인했습니다. 개인으로서 저는 몇 개의 행과 열만 다운로드하여 블록이 사용 가능하다는 것을 스스로 증명할 수 없습니다. 그러나 개인 무작위 샘플링은 아무도 신뢰하지 않고도 확신을 줄 수 있습니다. 앞서 언급했듯이 노드가 75개의 무작위 샘플을 확인하는 곳입니다.
DS는 초기에 개인 무작위 샘플링을 포함하지 않을 것입니다. 이는 네트워킹 측면에서 해결하기 매우 어려운 문제이기 때문입니다(PSA: 실제로 여기에서 도움을 받을 수 있습니다!).
공격자가 귀하를 익명화하면 적은 수의 샘플링된 노드를 스푸핑할 수 있기 때문에 "비공개"가 중요합니다. 그들은 당신이 요청한 정확한 블록을 반환하고 나머지는 유지할 수 있습니다. 따라서 자신의 샘플링만으로 모든 데이터를 사용할 수 있는지 알 수 없습니다.
Danksharding – 주요 테이크 아웃
DS는 달콤한 이름일 뿐만 아니라 매우 흥미진진합니다. 마침내 이더리움의 통합 결제 및 DA 계층의 비전을 실현합니다. 비콘 블록과 샤딩의 긴밀한 결합은 본질적으로 샤딩되지 않은 척합니다.
실제로 "샤딩"으로 간주되는 이유를 정의해 보겠습니다. "샤딩"의 유일한 잔재는 유효성 검사기가 모든 데이터를 다운로드할 책임이 없다는 것입니다. 그게 다야.
따라서 이것이 정말로 여전히 샤딩인지 궁금하다면 제정신이 아닙니다. 이러한 구별이 왜 PDS(곧 설명할 것임)가 "샤드"로 간주되지 않는 이유입니다(이름에 "샤드"가 포함되어 있음에도 불구하고 혼란스럽습니다). PDS는 각 유효성 검사기가 모든 샤드 블롭을 완전히 다운로드하여 가용성을 증명하도록 요구합니다. 그런 다음 DS는 샘플링을 도입하므로 각 유효성 검사기는 샘플링의 일부만 다운로드합니다.
다행스럽게도 최소 샤딩은 샤딩 1.0보다 더 단순한 설계를 의미합니다(너무 빨리 전달되죠?). 요컨대 다음이 포함됩니다.
샤딩 1.0 사양과 비교할 때 DS 사양에는 코드가 수백 줄 적습니다(클라이언트 측에서는 수천 줄 적음).
샤드 위원회 인프라가 없으며, 위원회는 메인 체인에서만 투표하면 됩니다.
개별 샤드 블롭 확인이 추적되지 않거나 현재 메인 체인에서 모두 확인되었거나 그렇지 않습니다.
이것의 좋은 결과는 데이터에 대한 통합 수수료 시장입니다. 다른 제안자가 만든 다른 블록으로 1.0을 샤딩하면 이를 분산시킬 수 있습니다.dAMM샤드 위원회의 제거는 또한 뇌물 수수 방지를 강화합니다. DS 유효성 검사기는 에포크당 한 번 전체 블록에 투표하므로 전체 유효성 검사기 세트의 1/32(에포크당 32개 슬롯)에 의해 데이터가 즉시 확인됩니다. 샤드 1.0 검증자도 에포크당 한 번 투표하지만 각 샤드에는 자체 위원회가 개편됩니다. 따라서 각 샤드는 검증자 집합의 1/2048(1/32를 64개의 샤드로 나눈 값)까지만 확인됩니다.
블록을 2D KZG 커밋 체계와 결합하면 앞서 언급한 것처럼 DAS의 효율성도 높아집니다. 샤딩 1.0은 모든 샤드의 전체 DA를 확인하기 위해 60KB/s의 대역폭이 필요합니다. DS에는 2.5KB/s만 필요합니다.
ZK 롤업과 L1 이더리움 실행 간의 동기식 호출인 DS에 또 다른 흥미로운 가능성이 있습니다. 모든 것이 동일한 비콘 체인 블록에서 생성되기 때문에 샤드 블롭의 트랜잭션을 즉시 확인하고 L1에 쓸 수 있습니다. 샤딩 1.0은 별도의 샤드 확인으로 인해 이러한 가능성을 제거합니다. 이는 공유 이동성에 유용한 흥미로운 디자인 공간을 허용합니다(예:
) 등은 매우 가치가 있을 수 있습니다.
모듈식 기본 계층은 우아하게 확장됩니다. 탈중앙화를 통해 더 많은 확장이 가능합니다. 이것은 오늘날 우리가 보는 것과 근본적으로 다릅니다. DA 계층에 더 많은 노드를 추가하면 데이터 처리량을 안전하게 늘릴 수 있습니다(즉, 롤업을 위한 더 많은 공간이 맨 위에 존재할 수 있음).
블록체인 확장성에는 여전히 한계가 있지만 오늘날 우리가 본 것보다 훨씬 더 높은 수준으로 개선할 수 있습니다. 안전하고 확장 가능한 기본 계층을 통해 실행이 확산될 수 있습니다. 데이터 스토리지 및 대역폭의 개선으로 시간이 지남에 따라 더 높은 데이터 처리량이 가능해집니다.
여기에서 예상한 DA 처리량을 초과하는 것은 확실히 가능하지만 이 최대값이 어디에서 끝날지 말하기는 어렵습니다. 명확한 빨간 선은 없지만 일부 가정이 불편해지기 시작하는 영역은 다음과 같습니다.
Proto-danksharding (EIP-4844)
데이터 저장 - 이것은 DA 및 데이터 검색 가능성에 관한 것입니다. 합의 계층의 역할은 데이터의 검색 가능성을 무한정 보장하는 것이 아닙니다. 그것이 하는 일은 우리의 보안 가정을 만족시키면서 그것을 다운로드하려는 모든 사람이 충분히 오래 사용할 수 있도록 하는 것입니다. 그런 다음 모든 곳에 버려집니다. N 트러스트 가정에서 기록이 1이기 때문에 편안합니다. 이것은 처리량이 몇 배나 증가함에 따라 몇 년 안에 문제가 되는 영역에 들어갈 수 있습니다.
Verifier - DAS는 블록을 공동으로 재구축하기 위해 충분한 노드가 필요합니다. 그렇지 않으면 공격자가 기다렸다가 받은 쿼리에만 응답할 수 있습니다. 제공된 이러한 쿼리가 블록을 재구성하기에 충분하지 않으면 공격자가 나머지를 유지할 수 있으며 우리는 운이 없습니다. 처리량을 안전하게 늘리려면 더 많은 DAS 노드를 추가하거나 데이터 대역폭 요구 사항을 늘려야 합니다. 이것은 여기에서 논의된 처리량 문제가 아닙니다. 그러나 처리량이 이 디자인보다 몇 자릿수 더 증가하면 불편할 수 있습니다.
빌더는 병목 현상이 아닙니다. 32MB의 데이터에 대해 KZG 증명을 신속하게 생성해야 하므로 GPU 또는 최소 2.5GBit/s의 대역폭을 가진 합리적으로 강력한 CPU가 필요합니다. 어쨌든 그것은 전문화된 역할이고 그들에게 무시할 수 있는 비즈니스 비용입니다.
DS는 훌륭하지만 인내심을 가져야 합니다. PDS는 우리를 극복하도록 설계되었습니다. 그 사이에 수십 배의 스케일링을 제공하기 위해 가속화된 타임라인(상하이 하드 포크의 경우)에서 DS에 필요한 전방 호환성 단계를 구현합니다. 그러나 실제로 데이터 샤딩을 구현하지는 않습니다(즉, 유효성 검사기는 모든 데이터를 개별적으로 다운로드해야 함).
현재 롤업은 L1 "calldata"를 스토리지에 사용하며 이는 온체인에 영원히 존재합니다. 그러나 Rollup은 합리적인 기간 동안만 DA를 필요로 하므로 관심 있는 사람은 누구나 다운로드할 수 있는 충분한 시간을 가질 수 있습니다.
EIP-4844는 Blob을 지원하는 새로운 트랜잭션 형식을 도입했으며 롤업은 향후 데이터 저장에 사용됩니다. Blob은 많은 양의 데이터(~125KB)를 전달하며 유사한 양의 호출 데이터보다 훨씬 저렴합니다. 그런 다음 데이터 Blob은 한 달 후에 노드에서 삭제되므로 저장소 요구 사항이 줄어듭니다. 이것은 우리의 DA 보안 가정을 만족시키기에 충분한 시간입니다.
현재 Ethereum 블록은 일반적으로 평균 약 90KB입니다(이 중 호출 데이터는 약 10KB임). PDS는 한 달 후에 정리될 때 blob(목표 ~1MB 및 최대 ~2MB)에 대해 더 많은 DA 대역폭을 잠금 해제합니다. 그들은 노드에서 영구적인 드래그가 되지 않습니다.
Blob은 4096개의 필드 요소로 구성된 벡터이며 각 필드 요소는 32바이트입니다. PDS는 블록당 최대 16개를 허용하고 DS는 256개로 증가합니다.
PDS DA 대역폭 = 4096 x 32 x 16 = 목표가 1MiB인 블록당 2MiB
DS DA 대역폭 = 4096 x 32 x 256 = 목표가 16MiB인 블록당 32MiB
데이터 Blob을 운반하기 위한 트랜잭션 형식
DS에 필요한 모든 실행 계층 로직
DS에 필요한 모든 실행/합의 교차 검증 로직
Blob에 대한 KZG의 약속
DS에 필요한 모든 실행 계층 로직
DS에 필요한 모든 실행/합의 교차 검증 로직
BeaconBlock 인증과 DAS Blob 간의 계층 분리
PBS
DS에 필요한 대부분의 BeaconBlock 로직
Blob에 대한 자체 조정 독립 가스 가격(지수 가격 규칙이 있는 다차원 EIP-1559)
그런 다음 DS는 다음을 추가합니다.
데이터 수집 시스템
2D KZG 방식
각 블록에서 샤드 데이터의 특정 부분의 가용성을 확인하기 위해 각 유효성 검사기에 대한 에스크로 증명 또는 유사한 프로토콜 내 요구 사항(아마도 한 달 정도)
이러한 데이터 Blob은 실행 체인에서 새로운 트랜잭션 유형으로 도입되지만 실행 측면에서 추가 요구 사항을 부과하지 않습니다. EVM은 blob에 연결된 커밋만 확인합니다. EIP-4844를 사용하여 만든 구현 계층 변경 사항은 DS와도 호환되며 이와 관련하여 추가 변경이 필요하지 않습니다. 그런 다음 PDS에서 DS로 업그레이드하려면 합의 계층만 변경하면 됩니다.
데이터 Blob은 PDS의 컨센서스 클라이언트에 의해 완전히 다운로드됩니다. 이제 Blob은 Beacon 블록 본문에서 참조되지만 완전히 인코딩되지는 않습니다. 본문에 전체 콘텐츠를 포함하는 대신 blob의 콘텐츠가 "사이드카"로 별도로 전파됩니다. 각 블록에는 PDS에 완전히 다운로드된 Blob 사이드카가 있으며 DS 유효성 검사기를 사용하여 DAS를 실행합니다.
이전에 KZG 다항식 커밋을 사용하여 Blob을 커밋하는 방법에 대해 논의했습니다. 그러나 KZG를 직접 사용하는 대신 EIP-4844는 우리가 실제로 사용하는 버전 해시를 구현합니다. 이것은 0x01 바이트(이 버전을 나타냄) 뒤에 KZG의 SHA256 해시의 마지막 31바이트가 옵니다.
보다 쉬운 EVM 호환성 및 향후 호환성을 위해 이렇게 합니다.
EVM 호환성 – KZG 약정은 48바이트인 반면 EVM은 보다 자연스럽게 32바이트 값을 사용합니다.
순방향 호환성 - KZG에서 다른 것으로 전환하는 경우(STARK는 양자 저항에 사용할 수 있음) 이러한 약속은 계속 32바이트일 수 있습니다.
PDS는 궁극적으로 맞춤형 데이터 계층을 생성합니다. 데이터 Blob은 개별 부동 가스 가격 및 한도가 있는 고유한 수수료 시장을 갖습니다. 따라서 일부 NFT 프로젝트가 L1에서 많은 원숭이 땅을 판매하더라도 롤업 데이터 비용은 상승하지 않습니다(증명 합의 비용은 상승하지만). 이것은 오늘날 롤업의 주요 비용이 데이터를 L1에 게시하는 것임을 인정합니다(증명 아님).가스 수수료 시장은 동일하게 유지되며 데이터 블롭이 새로운 시장으로 추가됩니다.Blob 수수료는 가스로 청구되지만 자체 EIP-1559 메커니즘을 기반으로 가변 금액 조정입니다. 블록당 장기 평균 Blob 수는 목표와 같아야 합니다.
실제로 병렬로 실행되는 두 개의 경매가 있습니다. 하나는 계산용이고 다른 하나는 DA용입니다. 이것은 유효하다
자원 가격
거대한 도약.
다음은 몇 가지 흥미로운 디자인입니다. 예를 들어 현재 가스 및 블롭 가격 메커니즘을 선형 EIP-1559에서 새로운 지수 EIP-1559 메커니즘으로 변경하는 것이 합리적일 수 있습니다. 현재 구현은 실제로 목표 블록 크기를 평균화하지 않습니다. 현재 기본 요금이 완전히 안정화되지 않아 블록당 사용된 관찰된 평균 가스가 목표를 평균 ~3% 초과했습니다.
2부: 이력 및 상태 관리
여기에 몇 가지 기본 사항에 대한 간략한 요약이 있습니다.
역사 — 온체인에서 발생한 모든 것. 빠른 액세스가 필요하지 않으므로 하드 드라이브에 붙일 수 있습니다. 장기적으로 N 정직의 1은 가정합니다.
상태 - 모든 현재 계정 잔액, 스마트 계약 등의 스냅샷 풀 노드(현재)는 모두 트랜잭션을 검증하기 위해 이것이 필요합니다. RAM에 비해 너무 크고 하드 드라이브는 너무 느립니다. SSD에 있습니다. 처리량이 많은 블록체인은 보통 사람이 노트북에 보관할 수 있는 것 이상으로 상태를 확장합니다. 일상적인 사용자가 상태를 유지할 수 없다면 완전히 검증할 수 없으므로 탈중앙화에 작별을 고하십시오.
Calldata Gas 비용 절감 및 총 Calldata 한도(EIP-4488)
EIP-4488에는 두 가지 주요 구성 요소가 있습니다.
PDS는 DS로 가는 중요한 디딤돌이며 많은 최종 요구 사항을 확인합니다. 합리적인 기간 내에 PDS를 구현하면 DS의 일정을 앞당길 수 있습니다.
더 쉬운 반창고 구현은 EIP-4488입니다. 우아하지는 않지만 여전히 수수료 비상 사태를 해결합니다. 아쉽게도 DS를 구현하는 과정에서 단계를 구현하지 않으므로 나중에 모든 불가피한 변경이 필요합니다. PDS가 우리가 원하는 것보다 약간 느려질 것 같은 느낌이 들기 시작하면 EIP-4488을 신속하게 통과한 다음(단지 몇 줄의 코드 변경) 약 6개월 후에 PDS를 구현하는 것이 합리적일 수 있습니다. 구체적인 일정은 아직 정해지지 않았습니다.
EIP-4488에는 두 가지 주요 구성 요소가 있습니다.
호출 데이터 비용이 바이트당 16가스에서 바이트당 3가스로 감소했습니다.
블록당 1MB 호출 데이터 제한과 트랜잭션당 추가 300바이트 추가(이론적 최대값은 약 1.4MB)
최악의 경우를 방지하기 위해 제한을 추가해야 합니다. 호출 데이터로 가득 찬 블록은 18MB에 도달하며 이는 이더리움이 처리할 수 있는 것보다 훨씬 큽니다. EIP-4488은 이더리움의 평균 데이터 용량을 증가시키지만 이 콜데이터 제한(3천만 가스/콜데이터 바이트당 16개 가스 = 1.875MB)으로 인해 버스트 데이터 용량은 실제로 약간 감소합니다.
EIP-4488의 지속적인 부하는 PDS보다 훨씬 높습니다. 이는 한 달 후에 정리할 수 있는 데이터인 calldata 및 blob이기 때문입니다. EIP-4488은 역사적 성장을 크게 가속화하여 노드 실행에 병목 현상을 일으킵니다. EIP-4444가 EIP-4488과 함께 구현되더라도 1년 후에만 실행 로드 기록이 삭제됩니다. PDS의 지속적인 부하를 낮추는 것이 분명히 바람직합니다.
실행 클라이언트에서 기록 데이터 바인딩(EIP-4444)
EIP-4444 클라이언트가 1년보다 오래된 기록 데이터(헤더, 본문 및 영수증)를 로컬에서 정리하도록 선택할 수 있습니다. 이를 위해서는 클라이언트가 p2p 계층에서 정리된 이력 데이터 제공을 중지해야 합니다. 정리 기록을 통해 고객은 사용자의 디스크 스토리지 요구 사항을 줄일 수 있습니다(현재 수백 기가바이트 및 증가 중).devp2p이것은 이미 중요하지만 EIP-4488이 구현되면(역사가 크게 성장함에 따라) 대부분 의무 사항이 될 것입니다. 그럼에도 불구하고 이 작업이 비교적 빨리 완료되기를 바랍니다. 결국 어떤 형태의 과거 만료가 필요하므로 지금이 이를 처리하기에 좋은 시기입니다.
체인의 전체 동기화에는 기록이 필요하지만 새 블록의 유효성을 검사하는 데에는 기록이 필요하지 않습니다(상태만 필요함). 따라서 클라이언트가 체인의 맨 위에 동기화되면 JSON-RPC를 통해 명시적으로 요청하거나 피어가 체인을 동기화하려고 시도하는 경우에만 기록 데이터가 검색됩니다. EIP-4444가 구현되면 이에 대한 대체 솔루션을 찾아야 합니다.
클라이언트는 현재를 사용할 수 없습니다.
"전체 동기화"를 수행합니다. 대신 약한 주관성 체크포인트에서 "체크포인트 동기화"를 수행하며, 이를 제네시스 블록으로 간주합니다.
약한 주관성은 추가적인 가정이 아니며 어쨌든 PoS로의 이동에 내재되어 있습니다. 원격 공격의 가능성으로 인해 효과적으로 약한 주관 체크포인트를 사용하여 동기화해야 합니다. 여기서 가정은 클라이언트가 유효하지 않거나 오래된 약한 주관 체크포인트에서 동기화되지 않는다는 것입니다. 이 체크포인트는 과거 데이터를 정리하기 시작하는 기간(즉, 여기서는 1년 이내) 내에 있어야 합니다. 그렇지 않으면 p2p 계층에서 필요한 데이터를 제공할 수 없습니다.
또한 점점 더 많은 클라이언트가 가벼운 동기화 전략을 채택함에 따라 네트워크의 대역폭 사용량도 줄어듭니다.
과거 데이터 검색
EIP-4444는 1년 후 기록 데이터를 가지치기하는 것이 좋아 보이지만 PDS는 blob을 더 빨리(약 한 달 후) 가지치기합니다. 우리는 노드에게 모든 것을 저장하고 분산된 상태로 유지하도록 요청할 수 없기 때문에 절대적으로 필요합니다.
EIP-4488 – 장기적으로 슬롯당 약 1MB를 포함하여 매년 약 2.5TB의 스토리지를 추가할 가능성이 있습니다.
DS – 슬롯당 ~16MB 목표, 연간 ~40TB 스토리지 추가
개인 및 기관 자원봉사자
하지만 데이터는 어디로 갔습니까? 더 이상 필요하지 않습니까? 예, 하지만 기록 데이터 손실은 프로토콜에 대한 위험이 아니라 단일 애플리케이션에만 해당된다는 점에 유의하십시오. 이더리움 코어 프로토콜의 역할은 모든 합의 데이터를 영원히 유지하는 것이어서는 안 됩니다.
그럼 누가 보관할까요? 다음은 몇 가지 잠재적 기여자입니다.
개인 및 기관 자원봉사자
블록 탐색기(예: etherscan.io), API 공급자 및 기타 데이터 서비스
TheGraph와 같은 제3자 인덱싱 프로토콜은 고객이 Merkle 증명뿐만 아니라 과거 데이터에 대해 서버에 비용을 지불할 수 있는 인센티브 시장을 만들 수 있습니다.
포털 네트워크(현재 개발 중)의 클라이언트는 체인 히스토리의 임의 부분을 저장할 수 있으며 포털 네트워크는 자동으로 데이터 요청을 소유한 노드로 보냅니다.
예를 들어 비트토렌트. 블록의 Blob 데이터를 포함하는 7GB 파일이 자동으로 생성되고 매일 배포됩니다.
Rollup과 같은 애플리케이션별 프로토콜은 노드가 애플리케이션과 관련된 기록의 일부를 저장하도록 요구할 수 있습니다.
장기 데이터 저장 문제는 앞에서 논의한 1/N 신뢰 가정 때문에 상대적으로 간단한 문제입니다. 블록체인 확장성에 대한 궁극적인 한계가 되려면 아직 몇 년이 더 남았습니다.
약한 무국적자
좋아, 우리는 기록 관리를 꽤 잘 처리했지만 상태는 어떻습니까? 상태 문제는 실제로 현재 Ethereum의 TPS를 개선하는 데 있어 주요 병목 현상입니다.
전체 노드는 이전 상태 루트를 가져와 블록의 모든 트랜잭션을 실행하고 이후 상태 루트가 블록에서 제공한 것과 일치하는지 확인합니다. 이러한 트랜잭션이 유효한지 확인하려면 현재 상태가 필요합니다. 확인은 상태 저장입니다.
무국적 시대에 진입하십시오 - 우리는 기능하기 위해 국가가 필요하지 않을 것입니다. 이더리움은 "약한 상태 비저장"을 위해 노력하고 있습니다. 즉, 블록을 검증하는 데 상태가 필요하지 않지만 블록을 구축하려면 상태가 필요합니다. 유효성 검사는 순수한 기능이 됩니다. 완전히 격리된 블록을 제공하면 작동하는지 알려줄 수 있습니다. 기본적으로 다음과 같습니다.
PBS로 인해 빌더가 여전히 상태를 필요로 하는 것은 허용됩니다. 어쨌든 더 중앙 집중화된 고자원 엔터티가 될 것입니다. 분산형 유효성 검사기에 집중하십시오. 약한 상태 비저장은 빌더에게 더 많은 작업을 생성하고 검증자에게는 훨씬 적은 작업을 생성합니다. 이것은 큰 절충안입니다.
목격자와 함께 이 마법 같은 상태 비저장 처형을 달성합니다. 이들은 빌더가 각 블록에 포함하기 시작할 올바른 상태 액세스의 증거입니다. 실제로 블록을 검증하기 위해 전체 상태가 필요한 것은 아닙니다. 해당 블록의 트랜잭션에서 읽거나 영향을 받은 상태만 있으면 됩니다. 빌더는 주어진 블록에서 트랜잭션의 영향을 받는 상태 조각을 포함하기 시작하고 증인을 통해 해당 상태에 올바르게 액세스했음을 증명합니다.
예를 들어 보겠습니다. 앨리스는 밥에게 1ETH를 보내고 싶어합니다. 이 거래로 블록을 검증하려면 다음을 알아야 합니다.
거래 전 - Alice는 1 ETH를 가지고 있습니다.
Alice의 공개 키 - 서명이 올바른지 알 수 있습니다.
Alice의 nonce - 트랜잭션이 올바른 순서로 전송되었음을 알 수 있습니다.
트랜잭션 실행 후 - Bob은 1 ETH를 얻었고 Alice는 1 ETH를 잃었습니다.
약한 상태 비저장 세계에서 빌더는 앞서 언급한 증인 데이터를 블록에 추가하고 그 정확성을 증명합니다. 유효성 검사기는 블록을 수신하고 실행하고 유효한지 여부를 결정합니다. 그게 다야!
유효성 검사기의 관점에서 의미하는 바는 다음과 같습니다.
상태를 유지하기 위한 거대한 SSD 요구 사항은 사라졌습니다. 오늘날 확장에 있어 중요한 병목 현상입니다.
이제 증인 데이터 및 증명도 다운로드하고 있으므로 대역폭 요구 사항이 증가합니다. 이것은 Merkle-Patricia 트리의 병목 현상이지만 Verkle 시도의 병목 현상이 아닌 중간 수준입니다.
Verkle Tries
완전히 검증하기 위해 여전히 트랜잭션을 수행합니다. 무국적은 이것이 현재 이더리움 확장의 병목 현상이 아님을 인정합니다.
약한 상태 비저장은 또한 이더리움이 실행 처리량에 대한 자체 부과 제약을 완화할 수 있도록 하며 상태 팽창은 더 이상 시급한 문제가 아닙니다. 가스 한도를 약 3배 높이는 것이 합리적일 수 있습니다.
어쨌든 대부분의 사용자 실행은 L2에서 이루어지지만 더 높은 L1 처리량은 사용자에게도 여전히 유용합니다. 롤업은 DA(샤드에 게시) 및 정산(L1 실행 필요)을 위해 Ethereum에 의존합니다. 이더리움이 DA 계층을 확장함에 따라 증명 발급 비용이 롤업 비용(특히 ZK 롤업의 경우)에서 더 큰 비중을 차지할 가능성이 높습니다.
우리는 이러한 증언이 실제로 어떻게 작용하는지 얼버무립니다. Ethereum은 현재 Merkle-Patricia 트리를 사용하여 상태를 나타내지만 필요한 Merkle 증명이 너무 커서 이러한 증인에게 실용적이지 않습니다.
이더리움은 상태 저장을 시도하기 위해 Verkle로 전환할 것입니다. Verkle 증명은 훨씬 더 효율적이므로 실행 가능한 증인으로서 약하게 무국적일 수 있습니다.
먼저 머클 트리가 어떻게 생겼는지 검토해 봅시다. 모든 트랜잭션은 해시됩니다. 맨 아래에 있는 이러한 해시를 "잎"이라고 합니다. 모든 해시는 "노드"라고 하며 그 아래에 있는 두 개의 "자식" 노드의 해시입니다. 최종 해시는 "Merkle root"입니다.
이것은 전체 트리를 다운로드하지 않고 포함된 트랜잭션을 증명하는 데 유용한 데이터 구조입니다. 예를 들어 트랜잭션 H4가 포함되어 있는지 확인하려면 Merkle 증명에서 H12, H3 및 H5678만 있으면 됩니다. 블록 헤더에서 H12345678이 있습니다. 따라서 라이트 클라이언트는 이러한 해시에 대해 전체 노드를 요청할 수 있으며 트리의 경로를 기반으로 함께 해시됩니다. 결과가 H12345678이면 H4가 트리에 있음을 성공적으로 증명한 것입니다.
그러나 나무가 깊을수록 바닥까지의 경로가 길어지므로 이를 증명하려면 더 많은 항목이 필요합니다. 따라서 얕은 나무와 넓은 나무가 효율적인 증명에 유리해 보입니다.
문제는 각 노드 아래에 더 많은 자식을 추가하여 Merkle 트리를 더 넓게 만들려고 하면 매우 비효율적이라는 것입니다. 트리를 오르려면 모든 형제를 함께 해시해야 하므로 Merkle 증명을 위해 더 많은 형제 해시를 받아야 합니다. 이것은 증명 크기를 크게 만들 것입니다.
이것은 효율적인 벡터 약속이 들어오는 곳입니다. Merkle 트리에서 사용되는 해시는 실제로 벡터 커밋이라는 점에 유의하세요. 사실상 두 요소에만 커밋하는 것입니다. 따라서 우리는 벡터 커밋을 원하고 이를 확인하기 위해 모든 형제를 받을 필요가 없습니다. 그런 다음 나무를 더 넓게 만들고 깊이를 줄일 수 있습니다. 이것이 우리가 효과적인 증명 크기를 얻는 방법입니다. 제공해야 하는 정보의 양을 줄입니다.
Verkle 트리는 Merkle 트리와 유사하지만 단순한 해시 대신 효율적인 벡터 커밋(따라서 "Verkle"이라는 이름)을 사용하여 자식에게 커밋합니다. 기본 아이디어는 각 노드가 많은 자식을 가질 수 있지만 증명을 확인하기 위해 모든 자식이 필요하지는 않다는 것입니다. 폭에 관계없이 일정한 크기의 증거입니다.
사실, 우리는 이전에 이러한 가능성 중 하나에 대한 좋은 예를 다루었습니다. KZG 약정은 벡터 약정으로도 사용될 수 있습니다. 사실 이것은 이더리움 개발자들이 원래 여기서 사용하려고 계획한 것입니다. 이후 그들은 유사한 임무를 수행하기 위해 Pedersen에게 의지했습니다. 이들은 타원 곡선(이 경우 Bandersnatch)을 기반으로 하며 각각 256개의 값을 제출합니다(2개보다 훨씬 낫습니다!).
그렇다면 가능한 가장 넓은 깊이 트리를 가지지 않는 이유는 무엇입니까? 이것은 초소형 증명을 가진 검증자에게 좋습니다. 그러나 증명자가 증명을 계산할 수 있어야 하며 더 넓을수록 더 어려워진다는 실질적인 절충안이 있습니다. 따라서 이러한 Verkle 시도는 256개 값 폭의 극단 사이에 놓이게 됩니다.
상태가 만료됨
약한 상태 비저장은 유효성 검사기에 대한 상태 인플레이션 제약을 제거하지만 상태는 마술처럼 사라지지 않습니다. 거래 비용은 제한적이지만 상태를 증가시켜 네트워크에 영구적인 세금을 부과합니다. 주의 성장은 네트워크에 영구적인 장애물로 남아 있습니다. 근본적인 문제를 해결하려면 무언가를 해야 합니다.
이것은 상태가 만료되는 곳입니다. 장기간 비활성 기간(예: 1년 또는 2년)은 블록 빌더가 휴대해야 하는 것에서 삭감됩니다. 활성 사용자는 아무 것도 알아차리지 못하며 더 이상 필요하지 않은 쓸모 없는 상태는 버릴 수 있습니다.
만료된 상태를 복원해야 하는 경우 증거를 제시하고 재활성화하기만 하면 됩니다. 이것은 여기서 N 스토리지 가정 중 1로 돌아갑니다. 누군가가 여전히 전체 기록(블록 탐색기 등)을 가지고 있는 한 그들로부터 필요한 것을 얻을 수 있습니다.
약한 상태 비저장은 기본 계층에서 상태 만료에 대한 즉각적인 필요성을 약화시키지만 장기적으로는 특히 L1 처리량이 증가함에 따라 좋은 것입니다. 이는 처리량이 많은 롤업에 더 유용한 도구입니다. L2 상태는 훨씬 더 빠른 속도로 성장하여 고성능 빌더도 끌어내립니다.
3부 - MEV
PBS는 DS의 보안 구현에 필요하지만 실제로는 원래 MEV의 중앙 집중식 전력과 싸우기 위해 설계되었다는 점을 기억하십시오. 오늘날 이더리움 연구에서 되풀이되는 추세를 보게 될 것입니다. MEV는 이제 암호경제학의 선두이자 중심입니다.
MEV로 블록체인을 설계하는 것은 보안 및 분산화를 유지하는 데 중요합니다. 기본 프로토콜 수준 메서드는 다음과 같습니다.
해로운 MEV를 최대한 최소화(예: 단일 슬롯 최종성, 단일 비밀 리더 선출)
나머지 민주화(예: MEV-Boost, PBS, MEV 스무딩)
나머지는 쉽게 캡처되어 유효성 검사기 간에 전파되어야 합니다. 그렇지 않으면 복잡한 검색자와 경쟁할 수 없기 때문에 유효성 검사기 집합을 중앙 집중화합니다. 이는 결합된 MEV가 유효성 검사기 보상의 더 높은 몫을 가질 것이라는 사실에 의해 악화됩니다(스테이킹 발행은 채굴자에게 주어진 인플레이션 비율보다 훨씬 낮습니다). 무시할 수 없습니다.
오늘날의 MEV 공급망
오늘의 행사 순서는 다음과 같습니다.
MEV-Boost
마이닝 풀은 여기서 빌더 역할을 합니다. MEV Seeker는 Flashbot을 통해 트랜잭션 번들(및 각각의 입찰가)을 풀에 전달합니다. 마이닝 풀 운영자는 전체 블록을 집계하고 블록 헤더를 개별 마이너에게 전달합니다. 채굴자들은 PoW를 통해 포크 선택 규칙에 가중치를 부여함으로써 이를 증명합니다.
Flashbot은 전체 스택의 수직적 통합을 방지하기 위해 존재합니다. 그러면 검열 및 기타 불쾌한 외부 효과의 문이 열릴 수 있습니다. Flashbots가 나왔을 때 마이닝 풀은 이미 MEV를 추출하기 위해 무역 회사와 독점 계약을 체결하기 시작했습니다. 대신 Flashbots는 MEV 입찰을 집계하고 (MEV-geth를 구현하여) 수직 통합을 피할 수 있는 쉬운 방법을 제공했습니다.
Ethereum의 합병 후 마이닝 풀은 사라질 것입니다. 우리는 집에서 합리적으로 작동할 수 있는 유효성 검사기 노드의 문을 열고 싶습니다. 이를 위해서는 전담 빌드 역할을 수행할 사람을 찾아야 합니다. 귀하의 홈 유효성 검사기 노드는 급여를 양자화한 헤지 펀드만큼 MEV를 캡처하는 데 능숙하지 않을 수 있습니다. 선택하지 않은 상태로 두면 일반 사람들이 경쟁할 수 없는 경우 검증자 세트를 중앙 집중화합니다. 제대로 구조화된 경우 프로토콜은 MEV 수익을 일일 검증자 스테이킹 보상으로 리디렉션할 수 있습니다.
안타깝게도 계약에 포함된 PBS는 합병할 준비가 되어 있지 않았습니다. Flashbots는 MEV-Boost라는 디딤돌 솔루션을 다시 제공합니다.
병합된 유효성 검사기는 기본적으로 공개 mempool 트랜잭션을 실행 클라이언트로 직접 수신합니다. 이들은 이를 패키지화하여 컨센서스 클라이언트에게 제공하고 네트워크에 브로드캐스트할 수 있습니다. (이더리움의 합의 및 실행 클라이언트가 어떻게 함께 작동하는지 이해해야 하는 경우 파트 IV에서 다룰 것입니다.)
그러나 우리가 논의한 것처럼 유효성 검사기는 MEV를 추출하는 방법을 모르기 때문에 Flashbot은 다른 옵션을 제공합니다. MEV-boost는 컨센서스 클라이언트에 연결되어 특수 블록 구축을 아웃소싱할 수 있습니다. 중요한 것은 여전히 자신의 실행 클라이언트를 폴백으로 사용할 수 있는 옵션이 있다는 것입니다.
MEV Seeker는 현재와 동일한 방식으로 계속 작동합니다. 그들은 특정 전략(통계 차익 거래, 원자 차익 거래, 샌드위치 등)을 실행하고 번들에 입찰합니다. 그런 다음 빌더는 그들이 보는 모든 번들과 개인 주문 스트림(예: Flashbots Protect에서)을 최상의 전체 블록으로 집계합니다. 빌더는 MEV-Boost로 실행되는 릴레이를 통해서만 블록 헤더를 검증자에게 전달합니다. Flashbots는 릴레이어와 빌더를 실행하고 시간이 지남에 따라 분산화할 계획이지만 다른 빌더를 화이트리스트에 추가하는 데 느릴 수 있습니다.
MEV-Boost는 검증자가 릴레이어를 신뢰하도록 요구합니다. 컨센서스 클라이언트는 블록 헤더를 수신하고 서명한 다음 블록 본문을 표시합니다. 릴레이어의 목적은 검증자가 빌더를 직접 신뢰할 필요가 없도록 제안자에게 본문이 유효하고 존재함을 증명하는 것입니다.프로토콜 내 PBS가 준비되면 해당 시간 동안 MEV-Boost에서 제공하는 콘텐츠를 통합합니다. PBS는 동일한 권한 분리를 제공하여 더 쉽게 빌더 분산을 허용하고 제안자가 누구를 신뢰할 필요가 없습니다.。
위원회 주도 MEV 스무딩
PBS는 또한 또 다른 멋진 아이디어에 대한 문을 열었습니다.
위원회 주도 MEV 스무딩
우리는 MEV를 추출하는 능력이 검증인 세트에 대한 중앙집권적인 힘이라는 것을 알지만 분배도 마찬가지입니다. 블록마다 MEV 보상의 높은 변동성은 보상을 원활하게 하기 위해 많은 검증자를 풀링하도록 동기를 부여합니다(오늘날 마이닝 풀에서 볼 수 있지만 여기서는 그 정도가 적습니다).
기본값은 실제 블록 제안자에게 빌더의 전액 지불을 제공하는 것입니다. MEV 스무딩은 대신 많은 검증자에게 지불을 분배합니다. 유효성 검사기 위원회는 제안된 블록을 확인하고 이것이 실제로 가장 높은 입찰가를 가진 블록인지 인증합니다. 모든 것이 순조롭게 진행되면 블록이 진행되고 보상은 위원회와 제안자 간에 분할됩니다.
이것은 또한 대역 외 뇌물 수수라는 또 다른 문제를 해결합니다. 예를 들어, 제안자는 최적이 아닌 블록을 제출하고 위임자로부터 지불을 숨기기 위해 직접 대역 외 뇌물을 받도록 인센티브를 받을 수 있습니다. 이 증명은 제안자를 확인할 수 있습니다.
In-protocol PBS는 MEV 스무딩을 위한 전제 조건입니다. 빌더 시장과 제출된 명확한 입찰을 이해해야 합니다. 여기에 몇 가지 공개된 연구 질문이 있지만 이것은 탈중앙화 유효성 검사기를 보장하는 데 다시 한 번 중요한 흥미로운 제안입니다.
단일 슬롯 거래 완결성
빠른 완결성은 훌륭합니다. ~15분을 기다리는 것은 UX 또는 교차 체인 통신에 적합하지 않습니다. 더 중요한 것은 이로 인해 MEV 재조립 문제가 발생한다는 것입니다.
병합된 이더리움은 이미 오늘날보다 더 강력한 확인을 제공합니다. 수천 명의 유효성 검사기가 채굴자와 경쟁하고 투표 없이 동일한 블록 높이에서 채굴할 수 있는 각 블록을 증명합니다. 이로 인해 조직 개편 가능성은 거의 없습니다. 그러나 이것은 여전히 진정한 트랜잭션 완결성이 아닙니다. 마지막 블록에 약간의 뚱뚱한 MEV가 있는 경우 유효성 검사기를 속여 체인을 재구성하고 스스로 훔치도록 할 수 있습니다.
나는 여기서 근본적인 역학에 대해 너무 많이 생각하지 않을 것입니다. 단일 슬롯 파이널리티는 이더리움의 로드맵에서 아주 멀리 개발되었으며 매우 개방적인 설계 공간입니다.여기오늘날의 컨센서스 프로토콜(슬롯 최종성 없음)에서 이더리움은 각 슬롯을 증명하기 위해 1/32의 검증자만 필요합니다(현재 약 380,000개 중 약 12,000개). 이러한 종류의 투표를 단일 슬롯에서 BLS 서명으로 집계된 전체 유효성 검사기 세트로 확장하려면 더 많은 작업이 필요합니다. 이는 수십만 개의 투표를 단일 유효성 검사로 압축합니다.
비탈릭은
여기
몇 가지 흥미로운 솔루션을 분해합니다.
단일 비밀 리더 선거(SSLE)
SSLE는 합병 후 직면하게 될 또 다른 MEV 공격 벡터를 패치하려고 시도합니다.
비콘 체인 유효성 검사기 목록과 향후 리더 선거 목록은 공개되며 쉽게 익명화하고 IP 주소를 매핑할 수 있습니다. 여기서 문제를 볼 수 있습니다.
보다 정교한 유효성 검사기는 트릭을 사용하여 자신을 더 잘 숨길 수 있지만 소규모 유효성 검사기는 특히 doxxed 및 후속 DDOSd에 취약합니다. 이것은 MEV에 쉽게 사용할 수 있습니다.
당신이 블록 n의 제안자이고 내가 블록 n+1의 제안자라고 가정합니다. 귀하의 IP 주소를 알면 시간이 초과되어 블록 생성에 실패하도록 저렴하게 DDOS할 수 있습니다. 이제 슬롯의 MEV를 캡처하고 내 보상을 두 배로 늘릴 수 있습니다. 이는 EIP-1559의 탄력적인 블록 크기(목표 크기의 두 배 블록당 최대 가스)로 인해 악화되어 두 블록이어야 하는 트랜잭션을 이제 단일 블록에서 두 배 더 긴 트랜잭션으로 밀어 넣을 수 있습니다.
파트 IV - 합병
병합된 클라이언트
글쎄, 확실히 하기 위해 나는 농담을 하고 있었다. 저는 실제로 이더리움 합병이 비교적 빨리 이루어졌다고 생각(희망)합니다.
우리는 모두 이 주제에 대해 이야기하고 있으므로 최소한 간략한 소개를 해야 한다는 의무감이 있습니다.
병합된 클라이언트
오늘날 모든 것을 처리하는 모놀리식 클라이언트를 실행합니다(예: Go Ethereum, Nethermind 등). 특히 전체 노드는 다음 작업을 동시에 수행합니다.
실행 - 유효성을 보장하기 위해 블록의 모든 트랜잭션이 실행됩니다. 사전 상태 루트를 가져오고, 모든 작업을 수행하고, 결과 사후 상태 루트가 올바른지 확인합니다.
합의 - 가장 많은 작업을 수행하는 가장 무거운(가장 높은 PoW) 체인에 있는지 확인합니다(예: Satoshi Consensus).
전체 노드는 가장 무거운 체인뿐만 아니라 가장 무거운 유효 체인도 따르기 때문에 분할할 수 없습니다. 이것이 바로 라이트 노드가 아닌 풀 노드인 이유입니다. 51% 공격이 발생하더라도 풀노드는 유효하지 않은 트랜잭션을 받아들이지 않습니다.
비콘 체인은 현재 PoS를 테스트 실행하기 위해 합의만 실행하고 있습니다. 실행은 포함되지 않습니다. 최종 총 난이도는 최종적으로 결정되며, 이 시점에서 현재 이더리움 실행 블록이 비콘 체인 블록에 병합되어 체인을 형성합니다.
그러나 전체 노드는 상호 운용할 수 있는 두 개의 개별 클라이언트를 백그라운드에서 실행합니다.
실행 클라이언트(일명 "Eth1 클라이언트") - 현재 Eth 1.0 클라이언트는 실행을 계속 처리합니다. 블록을 처리하고, 메모리 풀을 유지하고, 상태를 관리 및 동기화합니다. PoW 부분이 찢어졌습니다.
합의 클라이언트(일명 "Eth2 클라이언트") - PoS 합의를 계속 처리하는 현재 비콘 체인 클라이언트입니다. 그들은 체인의 머리를 추적하고, 가십을 하고, 블록을 증명하고, 유효성 검사기 보상을 얻습니다.
클라이언트는 비콘 체인 블록을 수신하고 클라이언트 실행 트랜잭션을 실행하며 모든 것이 잘되면 합의 클라이언트가 체인을 따릅니다. 선택한 실행 및 합의 클라이언트를 혼합하고 일치시킬 수 있으며 모두 상호 운용 가능합니다. 클라이언트가 서로 통신할 수 있도록 새로운 엔진 API가 도입됩니다.
또는:
합병 후 합의
병합된 이더리움은 합의를 위해 Casper FFG(최종 도구)와 LMD GHOST(포크 선택 규칙)의 조합인 GASPER로 이동했습니다. 여기서 TLDR - 보안이 아닌 합의를 선호하는 활성도입니다.
결론적으로
차이점은 보안 친화적인 합의 알고리즘(예: Tendermint)은 필요한 투표 수(여기서는 유효성 검사기의 2/3로 설정)를 얻지 못하면 중지된다는 것입니다. 유리한 체인 라이브니스(예: PoW + Nakamoto 합의)는 어쨌든 낙관적인 원장을 계속 구축할 것이지만 충분한 투표 없이는 최종성에 도달할 수 없습니다. 오늘날 비트코인과 이더리움은 결코 확정되지 않습니다. 충분한 수의 블록 후에 재구성이 발생하지 않을 것이라고 가정할 뿐입니다.
그러나 이더리움도 충분한 표를 얻은 정기적인 체크포인트를 통해 완결성을 달성할 것입니다. 각 32 ETH 인스턴스는 단일 유효성 검사기이며 이미 380,000개 이상의 비콘 체인 유효성 검사기가 있습니다. 에포크는 32개의 슬롯으로 구성되며 모든 유효성 검사기는 지정된 에포크 내에서 슬롯을 분할하고 증명합니다(슬롯당 ~12,000개의 증명을 의미함). 포크 선택 규칙 LMD Ghost는 이러한 증명을 기반으로 체인의 현재 헤드를 결정합니다. 매 슬롯(12초)마다 새로운 블록이 추가되므로 에포크는 6.4분입니다. 최종성은 일반적으로 두 에포크(즉, 최대 95개가 필요할 수 있지만 64개 슬롯) 후에 필요한 투표로 달성됩니다.
