원작자 | Taiko Labs
편집자 | Odaily Planet Daily ( @OdailyChina )
번역자 | 딩당( @XiaMiPP )
편집자 주: 샤딩에 대한 흥분을 아직도 기억하시나요? 당시 블록체인 업계에서는 트래픽 패스워드였습니다. 그래서 이더리움은 차분하게 생각하며 이 뜨거운 감자를 포기했습니다. 오늘날 로컬 롤업이 다시 돌아왔습니다. 사전 컴파일된 계약(EXECUTE Precompile)을 실행하고 이더리움 블록 처리 구조를 최적화함으로써 롤업을 더 안전하고 유연하게 만들 뿐만 아니라 이더리움 L1에 큰 수평 확장을 가져와 미래에 실시간 증명을 위한 길을 열었습니다.
다음은 Taiko Lab에서 공개한 원본 콘텐츠이며, Odaily Planet Daily에서 번역했습니다. 본 기사는 매우 기술적이므로 기사의 가독성을 보장하기 위해 Odaily에서 적절한 삭제 작업을 실시하고 가능한 한 명확하고 쉽게 표현했습니다.
소개
샤딩은 2017년부터 2020년까지 뜨거운 이슈였다. 당시 Harmony, Zilliqa, Elrond 등 다양한 팀이 자사 블록체인에 샤딩 기술을 구현했습니다. 이 기술은 본질적으로 네트워크를 여러 개의 작고 병렬로 실행되는 체인(샤드라 불림)으로 나누어 분산 시스템을 확장하는 간단한 방법으로 거래를 동시에 처리할 수 있습니다.
샤딩은 이더리움 2.0 시대에 커뮤니티에서 진지하게 논의되는 주제이기도 합니다. 그러나 이더리움은 궁극적으로 다음 네 가지 과제를 이유로 샤딩 솔루션을 채택하지 않기로 결정했습니다.
1. 마인드셋 차별화
이 샤딩 모델에서는 프로토콜 자체가 위에서 아래로 정확한 샤드 수를 적용합니다. 이러한 샤드는 미리 정의된 템플릿에 따라 실행되는 단일 체인이며, 프로그래밍 기능이 부족하고, 기본적으로 L1(1계층 블록체인)의 여러 개의 동일한 사본일 뿐입니다.
2. 낙관적인 보안
당시에는 샤드의 정직성을 보장하기 위해 낙관적 증명이 필요했지만, 제로 지식(ZK) 기술은 아직 성숙하지 않았습니다. 즉, 사기 방지 논리는 체인상에서 체계적으로 관리되어야 함을 의미합니다.
3. 복잡성
L1 계층에 샤딩을 구현하면 프로토콜의 복잡성이 크게 증가합니다. 특히 빠른 사전 확인과 느린 최종 확인 시스템을 관리하고, 서로 다른 보안 수준을 가진 샤드를 조정할 때 복잡성이 커집니다.
4. 과부하 합의
L1 계층에서 더 높은 확장성을 추구하면 중앙화 위험이 커질 수 있습니다. 샤딩이 기본 계층에 구현되면 이러한 위험은 현재처럼 단일 L2(2차 계층 확장 솔루션)에 국한되지 않고 전체 프로토콜에 영향을 미칠 수 있습니다.
네이티브 롤업은 본질적으로 샤딩으로의 복귀로 볼 수 있지만 이번에는 다릅니다. 우리는 교훈을 얻었고, 기술과 경험 면에서 더 나은 모습을 갖추게 되었습니다.
로컬 롤업이란 무엇인가요?
롤업은 데이터, 시퀀싱, 실행 모듈로 구성되어 있습니다. 로컬 롤업은 이더리움의 자체 실행 환경(실행 환경)을 실행 모듈로 직접 사용합니다. 이를 L1 프로그래밍 가능 실행 샤드 라고 부를 수 있습니다.
L1 실행 환경을 롤업으로 사용하는 방법을 이해하는 것은 약간 복잡할 수 있습니다. Rollup에서 L1 실행 환경을 사용하려면 EVM 내에서 다른 EVM을 실행할 수 있어야 합니다(EVM 내부의 EVM). 따라서 L1은 각 블록에서 로컬 Rollup의 상태 전환을 인식할 수 있어야 합니다. 이를 달성하려면 지원을 제공하는 <사전 컴파일 계약>이 필요합니다.
사전 컴파일된 계약을 실행합니다.
EXECUTE 사전 컴파일된 계약은 동일한 실행 규칙과 상태 전환 논리를 유지하면서 한 EVM 컨텍스트가 다른 EVM 컨텍스트의 실행 결과를 확인할 수 있는 메커니즘을 제공합니다.
미리 컴파일된 계약은 세 가지 입력 매개변수를 허용합니다.
pre_state: 실행 전 32바이트 상태 루트
post_state: 실행 후 32바이트 상태 루트
witness_trace: 트랜잭션 및 상태 액세스 증명을 포함한 실행 추적
사전 컴파일된 계약의 핵심은 어설션 입니다. 추적을 사전 상태에서 실행하여 사후 상태를 얻을 수 있는지 확인합니다. 상태 전환 함수가 유효하면 미리 컴파일된 계약은 true를 반환합니다.
실행 추적은 모든 검증자에서 사용할 수 있어야 합니다(blob 또는 calldata의 형태로). 이를 통해 검증자가 계산을 다시 실행하고 상태 전환의 정확성을 확인할 수 있습니다. 이 미리 컴파일된 계약서는 증명을 입력으로 받지 않는다는 점에 유의하세요. 즉, 프로토콜 자체는 어떤 특정 증명 시스템을 강제하지 않고 대신 P2P 네트워크의 Gossip 채널을 통해 다양한 유형의 증명을 전파합니다.
가스 청구 모델
이더리움의 컴퓨팅 리소스는 제한적이기 때문에 이러한 리소스를 관리하기 위해 Gas 메커니즘이 사용됩니다. EXECUTE 사전 컴파일 계약은 컴퓨팅 리소스를 관리하기 위한 가스 청구 모델을 구현합니다.
기본 비용 : 사전 컴파일된 계약은 고정 가스 수수료 EXECUTE_GAS_COST에 실행 궤적에서 사용된 가스를 현재 가스 가격으로 곱한 금액을 청구합니다.
누적 가스 한도 : EIP-1559 메커니즘과 유사하게 L1 블록의 모든 EXECUTE 호출의 총 가스 소비량을 관리하고 가격을 책정합니다.
EXECUTE_CUMULATIVE_GAS_LIMIT: 블록 내의 모든 EXECUTE 호출에 대한 최대 가스 한도입니다.
EXECUTE_CUMULATIVE_GAS_TARGET: 효율적인 가격 책정을 위해 가스 사용량을 목표로 합니다.
이 모델은 Blob의 데이터 가용성(DA) 가격 책정 메커니즘과 유사합니다.
로컬 롤업과 L1의 SNARKifying 개념이 혼동되는 경우가 많다는 점을 기억하는 것이 중요합니다. SNARK화된 L1은 SNARK화된 실행(예: zkEVM) 및 합의(예: Beam)를 통해 가스 제한을 제거하여 L1 성능을 개선하는 수직적 스케일링 방법입니다. 로컬 롤업은 프로그래밍 가능한 방식으로 원하는 수의 EVM 복사본을 만들어 더 높은 확장성을 달성할 수 있는 수평적 확장 L1입니다.
로컬 롤업이 더 유리한 이유는 무엇입니까?
1. 보안
현재 롤업 설계에서는 보안 위원회가 잠재적인 취약점을 해결하기 위해 체인을 업데이트해야 합니다. 로컬 롤업은 거버넌스를 위해 Ethereum의 <소셜 컨센서스>에 의존합니다. 운영자는 취약점에 대해 걱정할 필요가 없습니다. 이더리움 커뮤니티가 유지 관리와 수정을 담당하기 때문입니다.
2. L1 동기식 구성성 간소화
L1 기반 롤업은 동기적 구성을 달성하는 데 가까워졌지만, 동일한 빌더가 L1 및 L2 블록을 동시에 구축해야 합니다. 로컬 롤업은 추가적인 신뢰 가정 없이 미리 컴파일된 EXECUTE 계약을 통해 다른 로컬 롤업의 상태를 직접 확인할 수 있습니다.
3. 전방 호환성
L1 EVM이 발전함에 따라 로컬 롤업은 별도의 조정 없이도 모든 개선 사항을 자동으로 상속받으므로 이더리움 개발 경로와 장기적으로 호환됩니다.
초기 구현: 재실행
로컬 롤업의 컨텍스트에서 재실행은 초기 구현으로 간주됩니다. 재실행은 SNARK 증명에 의존하기보다는 검증자가 로컬 롤업의 상태 전환이 유효한지 확인하기 위해 트랜잭션 추적을 직접 실행하는 것을 의미합니다. EXECUTE_CUMULATIVE_GAS_LIMIT를 작게 유지하면 검증자는 이 재실행을 여전히 관리할 수 있습니다.
실행 최적화: 실시간 증명
재실행 모드에서 검증자는 모든 거래를 직접 처리해야 하며, 처리량은 EXECUTE_CUMULATIVE_GAS_LIMIT 매개변수로 제한됩니다. 실시간 증명은 검증자가 모든 거래를 다시 실행하지 않고도 증명만 확인하면 되므로 이러한 한계를 크게 개선할 수 있습니다.
업계가 실시간 증명으로 빠르게 이동함에 따라 로컬 롤업에 대한 증명 창을 확장하기 위한 조치를 취해야 합니다. 더 많은 증명 시간을 확보하기 위해서는 현재의 이더리움 블록 처리 구조를 조정해야 합니다.
인증 기간을 연장하려면 어떻게 해야 하나요?
현재 이더리움 블록 처리 흐름
현재 구조에 따르면 다음 블록으로 들어가기 전에 다음의 모든 단계를 12초(4초마다 한 단계) 이내에 완료해야 합니다.
블록 N 제안된 거래
블록을 검증/확인하려면 먼저 다음을 완료해야 합니다.
모든 거래를 실행하세요
상태 변경 계산
상태 루트(stateRoot)를 계산합니다.
거래 영수증 및 기록 계산
위의 모든 단계가 완료된 후에야 블록을 검증하고 확정할 수 있습니다.
현재 프로세스에 따르면 L1과의 동기적 구성이 가능하려면 4초 이내에 증명을 완료해야 합니다. 하지만 ZK 기술은 아직 성숙하지 않았으며 4초 안에 이더리움 블록 증명을 생성할 수 없기 때문에 증명 프로세스에 더 큰 유연성을 도입해야 합니다.
로컬 롤업에 더 많은 증명 시간을 제공하기 위해 우리는 이더리움의 현재 블록 처리 구조를 조정해야 합니다. 예를 들어:
state_root 계산 지연: 중요 경로에서 state_root 계산을 제거하고 검증기 유휴 시간 동안 계산되도록 합니다.
지연 실행: 블록 검증을 거래 실행에서 분리하여 합의 효율성을 최적화하는 동시에 증명 생성에 더 많은 시간을 제공합니다.
자주 묻는 질문
타이코는 어떤 종류의 증명을 사용할까?
어떠한 단일 유형의 증명도 사용되지 않습니다. 우리는 공급자와 고객 모두에서 다양성을 원합니다. 검증자는 자신의 선택에 따라 어떤 증명 방법을 사용할지 주관적으로 결정할 수 있습니다.
다양한 증명 유형에 대해서는 EthProofs를 참조하세요.
증명을 생성하는 사람은 누구입니까?
누구나 증명을 생성할 수 있습니다. 증명자가 하나뿐이더라도 체인은 정상적으로 작동할 수 있습니다. 프로토콜 수준에서 증명자에게 인센티브를 제공하는 방법이라는 의문이 여전히 남아 있습니다.
증명들 사이에 합의가 이루어질까요?
습관. 증명은 체인상에서 합의되지 않고 체인 밖에서 전파됩니다. 네트워크에 필요한 것은 어딘가에 유효한 증명이 존재한다는 합의뿐입니다.