저자: 비탈릭 부테린, 게리마 우의 블록체인 이야기 편집
요약
이더리움은 글로벌 원장을 지향하며 확장성과 탄력성을 갖춰야 합니다. 이 백서는 프로토콜 단순성의 중요성에 초점을 맞춰 합의 레이어(3슬롯 완결성, STARK 집계)와 실행 레이어(EVM을 RISC-V 또는 유사한 VM으로 대체)를 단순화하여 개발 비용, 오류 위험, 공격 표면을 줄여 복잡성을 획기적으로 줄일 것을 제안합니다. 이전 버전과 호환되는 전략(예: 온체인 EVM 인터프리터)을 통해 전환을 원활하게 하고, 수정 코드, 직렬화 형식(SSZ), 트리 구조를 조화시켜 더욱 단순화할 것을 권장합니다. 이더리움 합의 키 코드를 비트코인의 단순성에 가깝게 만들어 복원력과 참여도를 높이고, 단순성에 대한 문화적 초점을 맞추고 코드의 최대 줄 수에 대한 목표를 설정하는 것이 목표입니다.
이더의 목표는 인류 문명의 자산과 기록을 저장하는 플랫폼이자 금융, 거버넌스, 고가치 데이터 인증 등의 분야에 서비스를 제공하는 글로벌 원장이 되는 것입니다. 이를 위해서는 확장성과 복원력, 이 두 가지가 필요합니다. 후사카 하드 포크는 L2 데이터에 사용할 수 있는 공간을 10배로 늘릴 계획이며, 현재 제안된 2026년 로드맵은 L1 계층에도 비슷한 규모의 증가를 가져올 계획입니다. 한편 이더리움은 지분 증명(PoS)으로의 전환을 완료했고, 클라이언트의 다양성이 빠르게 증가하고 있으며, 영지식(ZK) 검증, 양자 저항 연구가 꾸준히 진행되고 있고, 애플리케이션 생태계가 점점 더 견고해지고 있습니다.
이 글은 복원력(그리고 실제로 확장성)에서 똑같이 중요하지만 쉽게 과소평가되는 요소인 프로토콜 단순성에 대해 집중 조명하고자 합니다. 프로토콜 간소화.
비트코인 프로토콜의 가장 찬사를 받는 측면 중 하나는 우아한 단순성입니다:

1. 블록 체인이 존재합니다. 블록의 체인이 존재하며, 각 블록은 해시로 이전 블록에 연결됩니다.
2. 블록의 유효성은 해시의 처음 몇 자리가 0인지 확인하는 작업 증명(PoW)으로 검증됩니다.
3. 각 블록에는 채굴 보상 또는 이전 거래의 결과물에서 코인이 발생하는 트랜잭션이 포함됩니다.
그게 다입니다! 똑똑한 고등학생도 비트코인 프로토콜이 어떻게 작동하는지 충분히 이해할 수 있으며, 프로그래머라면 취미 프로젝트로 클라이언트를 작성할 수도 있습니다.
프로토콜의 단순성은 비트코인(및 이더리움)을 신뢰할 수 있고 중립적인 글로벌 기반 계층으로 만드는 여러 가지 주요 이점을 제공합니다.
1. 이해의 용이성: 프로토콜의 복잡성을 줄이면 더 많은 사람이 연구, 개발, 거버넌스에 참여할 수 있고 기술 엘리트에 의한 지배 위험을 줄일 수 있습니다.
2. 개발 비용 절감: 프로토콜을 단순화하면 새로운 인프라(예: 새로운 클라이언트, 프로바이더, 개발자 도구 등)를 만들 필요가 크게 줄어듭니다.
3. 유지보수 부담 감소: 장기적인 프로토콜 유지보수 비용이 감소합니다.
4. 오류 위험 감소: 프로토콜의 사양 및 구현에서 치명적인 오류의 가능성을 줄입니다. 또한 그러한 오류가 존재하지 않는지 쉽게 검증할 수 있습니다.
5. 공격 표면 축소: 프로토콜 구성 요소의 복잡성을 줄이면 특수 이익 단체의 공격 위험을 줄일 수 있습니다. 위험.
역사적으로 이더는 (때로는 개인적인 결정으로 인해) 종종 단순성을 유지하는 데 실패하여 높은 개발 비용, 보안 위험 증가, 폐쇄적인 R&D 문화로 인해 복잡성을 통해 얻으려는 이익이 종종 환상에 불과하다는 것이 입증되었습니다. 이 글에서는 5년 후 이더리움이 비트코인의 단순성에 어떻게 다가갈지 살펴보겠습니다.
합의 레이어 단순화

새로운 합의 계층 디자인(역사적으로 "비콘 체인"으로 알려진 ")은 지난 10년간의 합의 이론, ZK-SNARK 개발, 서약 경제에 대한 경험을 활용하여 장기적으로 최적의 간소화된 합의 레이어를 구축하는 것을 목표로 합니다. 새로운 디자인은 기존 비콘 체인에 비해 크게 단순화되었습니다.
1. 3슬롯 완결성 디자인: 슬롯, 에포크, 위원회 재구성 및 이와 관련된 효율적인 처리 메커니즘(예: 위원회 동기화)과 같은 개념 제거. 3슬롯 완결성의 기본 구현에는 약 200줄의 코드만 필요하며, 가스퍼에 비해 거의 최적의 보안을 제공합니다.
2. 활성 검증자 수 감소: 포크 선택 규칙을 더 간단하게 구현할 수 있어 보안이 강화됩니다. 보안.
3. STARK 기반 집계 프로토콜: 누구나 집계자가 될 수 있습니다. 애그리게이터를 신뢰하거나 중복 비트필드에 대해 높은 수수료를 지불하지 않고도 누구나 애그리게이터가 될 수 있습니다. 집계 암호화는 더 복잡하지만, 그 복잡성은 고도로 캡슐화되어 시스템 위험이 낮습니다.
4. 단순화된 P2P 아키텍처: 위의 요소는 더 간단하고 강력한 P2P 네트워크 아키텍처를 지원할 수 있습니다. 아키텍처를 지원할 수 있습니다.
5. 인증자 메커니즘 재설계: 여기에는 진입, 퇴장, 탈퇴 및 키 변환을 위한 메커니즘이 포함됩니다, 비활성 누수 및 코드 줄을 단순화하고 더 명확한 보장(예: 약한 주관성 주기)을 제공하기 위한 기타 메커니즘이 포함됩니다.
합의 계층의 장점은 EVM 구현 계층과 상대적으로 독립적이므로 지속적인 개선의 여지가 더 많다는 것입니다. 더 큰 과제는 실행 계층에서도 이와 유사한 단순화를 달성하는 것입니다.
실행 레이어 단순화
EVM은 점점 더 복잡해지고 있으며, 그 복잡성의 대부분은 불필요한 것으로 판명되고 있습니다(부분적으로는 제 자신의 잘못된 의사 결정으로 인해): 256비트 VM은 이제 쓸모없어진 특정 형태의 암호화에 과도하게 최적화되어 있으며, 단일 사용 사례에 최적화된 프리컴파일은 거의 사용되지 않습니다.
이러한 문제를 하나씩 해결한다고 해도 그 효과는 제한적입니다. 예를 들어 셀프디스트럭트 옵코드를 제거하려면 많은 노력이 필요하지만 실익은 거의 없습니다. 최근 EOF(EVM 객체 형식)에 대한 논쟁도 비슷한 문제를 보여줍니다.
저는 최근에 보다 급진적인 시나리오를 제안했습니다. 1.5배의 이득을 얻는 대신 EVM을 중간 정도(하지만 여전히 파괴적인) 변경하는 대신 더 좋고 단순한 VM으로 전환하여 100배의 이득을 얻을 수 있다는 것이죠. 100배의 이득을 달성합니다. 병합과 마찬가지로 파괴적인 변경의 수를 줄이되 각 변경의 의미를 더 크게 만듭니다. 구체적으로는 EVM을 RISC-V 또는 이더 ZK 증명자가 사용하는 다른 VM으로 대체할 것을 제안합니다. 이렇게 하면 다음과 같은 결과를 얻을 수 있습니다.
1. 극적인 효율성 향상: 스마트 컨트랙트 실행(프로버에서)을 위해 더 이상 Succinct의 데이터는 많은 시나리오에서 100배 이상의 성능 향상을 보여줍니다.
2. 단순성의 극적인 개선: RISC-V 사양은 EVM에 비해 매우 단순하며, Cairo와 같은 대안도 똑같이 단순합니다. Cairo와 같은 솔루션도 똑같이 간단합니다.
3. EOF 지원의 동기: 코드 분할, 보다 사용자 친화적인 정적 분석, 더 큰 코드 크기 제한 등
4. 개발자를 위한 추가 옵션: Solidity와 Vyper는 새로운 VM에 컴파일하기 위한 백엔드를 추가할 수 있습니다. 백엔드를 추가할 수 있습니다. RISC-V를 선택하면 주류 언어 개발자도 자신의 코드를 가상 머신으로 쉽게 포팅할 수 있습니다.
5. 대부분의 사전 컴파일 제거: 아마도 고도로 최적화된 타원 곡선 연산만 유지될 것입니다(양자 컴퓨터가 보편화되면 이마저도 사라질 것입니다). 양자 컴퓨터가 보편화되면 이마저도 사라질 것입니다).
가장 큰 단점은 바로 사용 가능한 EOF와 달리 새로운 가상 머신의 이점이 개발자에게 도달하는 데 시간이 오래 걸린다는 것입니다. 단기간에 가치 높은 EVM 개선 사항(예: 컨트랙트 코드 크기 제한 증가, DUP/SWAP17-32 지원)을 구현하여 이를 완화할 수 있습니다.
이를 통해 VM을 더 단순화할 수 있습니다. 핵심 과제는 기존 EVM을 어떻게 처리할 것인가입니다.
VM 전환을 위한 하위 호환성 전략
EVM을 단순화(또는 복잡성을 추가하지 않고 개선)하는 데 있어 가장 큰 과제는 목표 구현과 기존 애플리케이션과의 하위 호환성의 균형을 맞추는 방법입니다.
가장 먼저 명확히 알아야 할 것은 단일 클라이언트 내에서도 이더넷 코드베이스를 정의하는 방법은 한 가지가 아니라는 점입니다.

목표는 현재 상태 계산, 증명, 검증, FOCIL을 포함하여 노드가 이더 합의에 참여하는 데 필요한 로직을 최소화하는 것입니다. (포크 선택 규칙) 및 "일반" 블록 구성을 포함합니다.
주황색 영역축소 불가: 프로토콜 사양에서 특정 실행 계층 기능(예: 가상 머신, 사전 컴파일 등), 기록 블록을 처리하는 클라이언트는 여전히 관련 코드를 유지해야 합니다. 그러나 새로운 클라이언트, ZK-EVM 또는 공식 증명자는 주황색 영역을 완전히 무시할 수 있습니다.
추가노란색 영역: 현재 체인 또는 블록 구성 최적화를 이해하는 데 매우 중요합니다. 현재 체인을 이해하거나 블록 구축을 최적화하는 데 매우 중요하지만 합의 로직의 일부가 아닙니다. 예를 들어, 이더스캔과 일부 블록 빌더는 ERC-4337 사용자 작업을 지원합니다. 일부 이더채널 기능(예: EOA 및 지원되는 이전 트랜잭션 유형)을 온체인 RISC-V 구현으로 대체하면 합의 코드가 상당히 단순화되지만 전용 노드는 계속해서 원래 코드를 사용하여 구문 분석할 수 있습니다.
주황색과 노란색 영역의 복잡도는 캡슐화 복잡도, 프로토콜을 이해하는 사람은 이러한 부분을 건너뛸 수 있고, 이더넷 구현은 이를 무시할 수 있으며, 이러한 영역의 오류는 합의 리스크를 발생시키지 않습니다. 결과적으로 주황색과 노란색 영역의 코드 복잡성은 녹색 영역의 복잡성보다 훨씬 덜 해롭습니다.
녹색 영역에서 노란색 영역으로 코드를 이동하는 아이디어는 Rosetta 번역 계층을 통해 장기적인 하위 호환성을 보장하는 Apple의 전략과 유사합니다.
입실론 팀의 최근 기사에서 영감을 받아 다음과 같은 VM 변경 프로세스를 제안합니다(EVM에서 RISC-V로의 변경의 경우, EVM에서 Cairo 또는 RISC-V에서 더 나은 VM으로의 변경에도 사용할 수 있음). VM으로):
1. 새로운 사전 컴파일 공급자 체인에서 RISC-V 구현 필요: 에코시스템이 RISC-V VM에 적응할 수 있도록 가 시간이 지남에 따라 RISC-V VM에 적응하도록 합니다.
2. 개발자 옵션으로 RISC-V 도입: 이 프로토콜은 RISC-V와 EVM을 모두 지원합니다. EVM 및 두 VM에 대한 컨트랙트가 자유롭게 상호 작용할 수 있습니다.
3. 대부분의 사전 컴파일 대체: 타원 곡선 조작과 KECCAK(매우 빠른 속도가 필요한)을 제외한 모든 컨트랙트에 RISC-V가 사용됩니다. 타원 곡선 연산과 KECCAK(극한의 속도를 위한)을 제외한 모든 사전 컴파일을 RISC-V 구현으로 대체합니다. 하드 포크를 통해 사전 컴파일을 제거하면서 해당 주소의 코드를 null에서 RISC-V 구현으로 변경(DAO 포크와 유사)하면 RISC-V VM은 매우 간단하며 여기서 멈추는 것만으로도 프로토콜이 간소화됩니다.
4. RISC-V에서 EVM 인터프리터 구현: 온체인에서 스마트 컨트랙트로서 (ZK 증명자가 요구하는 대로). 증명자가 필요로 함). 기존 EVM 컨트랙트는 최초 출시 후 몇 년이 지난 후에도 이 인터프리터를 통해 실행됩니다.

4단계가 완료된 후에도 많은 "EVM 구현"은 블록 구축, 개발자 도구 및 체인 분석을 최적화하는 데 계속 사용되지만 더 이상 주요 합의 사양의 일부가 되지는 않을 것입니다. 이더리움 컨센서스는 "기본적으로" RISC-V만 이해하게 됩니다.
공유 프로토콜 구성 요소를 통한 단순화 >
프로토콜의 전체 복잡성을 줄이는 세 번째(그리고 가장 과소평가된) 방법은 프로토콜 스택의 가능한 많은 부분에서 통일된 표준을 공유하는 것입니다. 서로 다른 프로토콜이 서로 다른 시나리오에서 동일한 작업을 수행하는 것은 종종 도움이 되지 않지만, 프로토콜 로드맵의 여러 부분 간의 커뮤니케이션 부족으로 인해 이러한 패턴이 여전히 자주 발생합니다. 다음은 구성 요소를 공유하여 이더넷을 간소화하는 몇 가지 구체적인 예시입니다.
유일 보정 코드

세 가지 시나리오에서 삭제 코드를 수정해야 합니다:
1. 데이터 가용성 샘플링: 클라이언트에서 블록이 게시되었는지 확인합니다.
2. 더 빠른 P2P 브로드캐스트: 노드는 블록을 수락하기 전에 n/2개의 조각을 수신하여 지연시간과 중복성 간의 균형을 맞춥니다. 지연시간과 중복성 사이의 균형을 유지합니다.
3. 분산 기록 스토리지: 이더넷 기록 데이터가 슬라이스로 저장되고 각 그룹에서 n/2개의 슬라이스가 나머지 조각을 복구하여 단일 슬라이스의 필요성을 줄입니다. 나머지 조각을 복구하여 단일 조각 손실 위험을 줄입니다.
세 가지 시나리오(리드-솔로몬, 랜덤 리니어 등) 모두에서 동일한 수정 코드를 사용하는 경우 다음과 같은 이점을 얻을 수 있습니다. 60d7" style="text-align: 왼쪽;">1. 코드 양 최소화: 총 코드 줄 수를 줄입니다.
2. 효율성 증대: 노드가 시나리오의 일부 스니펫을 다운로드하는 경우, 이 데이터를 다른 장면에 사용할 수 있습니다.
3. 검증 가능성 보장: 모든 장면의 조각을 루트에 대해 검증할 수 있습니다.
다른 수정 코드를 사용하는 경우, 최소한 데이터 가용성 샘플링을 위한 수평 리드-솔로몬 코드가 수직 랜덤 선형 코드와 동일한 도메인에서 작동하는 등의 호환성을 보장해야 합니다.
통합 직렬화 형식

이더리움의 직렬화 형식은 현재 데이터를 임의로 형식화할 수 있으므로 부분적으로만 수정되었습니다. 다시 직렬화하여 브로드캐스트할 수 있기 때문입니다. 예외적으로 트랜잭션 서명 해싱은 해싱을 위해 표준화된 형식이 필요합니다. 향후 직렬화 형식은 다음과 같은 이유로 더욱 구체화될 예정입니다.
1. 전체 계정 추상화(EIP-7701)< span leaf="">: 트랜잭션의 전체 내용을 VM에 표시합니다.
2. 더 높은 가스 제약: 실행 수준 데이터를 데이터 블록(블롭)에 넣어야 합니다.
이러면 실행 계층, 합의 계층, 스마트 컨트랙트 호출 ABI 등 세 계층의 직렬화 포맷을 통합할 수 있습니다.
나는 SSZ를 사용할 것을 제안합니다:
1. 해독하기 쉬움: 4바이트 기반 설계와 적은 수의 에지 케이스로 인해 스마트 컨트랙트에 포함되어 있습니다.
2. 합의 계층에서 이미 널리 사용됨.
3. 기존 ABI와 매우 유사: 도구 적응이 비교적 간단합니다.
SSZ로의 완전한 마이그레이션을 위한 노력이 있었고, 향후 업그레이드 계획 시 이러한 노력을 고려하고 계속해야 합니다.
통합 트리 구조

EVM에서 RISC-V(또는 기타 선택적 최소 가상 머신)로 마이그레이션하는 경우, 다음과 같이 마이그레이션할 수 있습니다. 16진수 머클 패트리샤 트리는 일반적인 경우에도 증명 블록 실행에서 가장 큰 병목 현상이 됩니다. 더 나은 해시 함수를 기반으로 하는 바이너리 트리로 마이그레이션하면 라이트 클라이언트와 같은 시나리오에서 데이터 비용을 줄이면서 증명자의 효율성을 크게 개선할 수 있습니다.
마이그레이션할 때 합의 계층이 동일한 트리 구조를 사용하는지 확인하세요. 이렇게 하면 실행 계층과 동일한 코드로 이더넷의 합의 계층에 액세스하고 파싱할 수 있습니다.
지금에서 미래로
단순함은 여러 면에서 탈중앙화와 유사하며, 둘 다 복원력이라는 목표의 상류에 있습니다. 단순성에 명시적으로 초점을 맞추려면 특정한 문화적 변화가 필요합니다. 이점은 종종 정량화하기 어려운 반면, 추가 노력과 일부 화려한 기능의 포기로 인한 비용은 즉각적으로 드러납니다. 하지만 시간이 지날수록 그 이점은 더욱 커질 것이며, 비트코인 자체가 좋은 예가 될 것입니다.
저는 tinygrad의 제안에 따라 이더리움의 장기적인 사양을 위해 명확한 최대 코드 라인 목표를 설정할 것을 제안합니다. span>에테르 합의에 중요한 코드를 비트코인의 단순성에 가깝게 만들 수 있습니다. 이더의 과거 규칙을 처리하는 코드는 계속 존재할 것이지만 합의 결정 경로 바깥에 배치해야 합니다. 동시에, 우리는 더 단순한 솔루션을 선택하고, 시스템 복잡성보다 캡슐화된 복잡성을 우선시하며, 명확한 속성과 보장을 제공하는 설계를 선택한다는 철학을 유지해야 합니다.