이 기사는 Ethereum 공동 창립자 Vitalik의 글에서 나왔습니다.
편집자 | 오데일리 플래닛 데일리( @OdailyChina )
번역가 | 이선( @ethanzhang_web3 )
네트워크 보안에 대한 우려 외에도 L1 가스 한도를 늘리는 것에 대한 가장 흔한 비판은 전체 노드를 실행하기 어렵게 된다는 것입니다. 특히 전체 노드 분할 에 초점을 맞춘 로드맵의 맥락에서 이 문제를 해결하려면 전체 노드의 역할을 이해해야 합니다.
역사적으로 사람들은 전체 노드를 온체인 데이터의 유효성을 검사하는 것으로 생각해 왔습니다. 일반 사용자가 확인할 수 없는 경우 어떤 일이 발생할지에 대한 내 생각은 여기에서 확인할 수 있습니다. 만약 그것이 유일한 문제라면 ZK-EVM은 L1 확장성을 해제할 것입니다. 유일한 제한은 블록 구성과 증명 비용을 충분히 낮게 유지하여 1대 n 검열 저항성과 시장 경쟁력을 모두 유지하는 것입니다.
하지만 사실 이것이 유일한 문제는 아닙니다. 또 다른 중요한 문제는 신뢰할 수 없고 검열에 강하며 개인 정보 보호에 친화적인 방식으로 체인을 읽는 데 사용할 수 있는 로컬 RPC 서버를 갖기 위해서는 전체 노드를 갖는 것이 매우 중요하다는 것입니다. 이 문서에서는 이 목표를 달성하기 위해 현재 L1 확장 로드맵을 조정하는 방법에 대해 설명합니다.
ZK-EVM + PIR을 통해 신뢰성과 개인정보보호를 계속 달성해야 하는 이유는 무엇입니까?
제가 지난달에 발표한 개인정보 보호 로드맵에는 단기적 해결책으로 TEE + ORAM이 포함되었고, 장기적 해결책으로 PIR이 포함되었습니다. 이를 Helios 및 ZK-EVM 검증과 결합하면 모든 사용자는 다음을 확신하며 외부 RPC에 연결할 수 있습니다. (i) 자신이 받는 체인이 올바른지 여부 (ii) 해당 데이터의 개인 정보가 보호됩니다. 그래서 우리는 묻지 않을 수 없습니다. 왜 여기서 멈출 수 없는 걸까요? 이러한 고급 암호화 솔루션으로 인해 셀프 호스팅 노드가 쓸모없는 유물이 되지 않을까요?
여기서 몇 가지 답변을 드릴 수 있습니다.
완전히 신뢰할 수 없는 암호화 솔루션(예: 1서버 PIR)은 엄청나게 비쌀 것입니다. 현재 비용은 비현실적으로 높으며, 효율성이 크게 개선된 후에도 여전히 비싼 편일 가능성이 높습니다.
메타데이터 개인정보 보호. 어떤 IP 주소가 언제 요청을 하는지, 요청 패턴을 파악하면 사용자에 대해 많은 정보를 얻을 수 있습니다.
검열 취약성: 소수의 RPC 제공자가 지배하는 시장 구조는 사용자를 플랫폼에서 제거하거나 검열하라는 강력한 압력에 직면하게 됩니다. 많은 RPC 제공자는 국가 전체를 제외했습니다.
이러한 이유로 개인 노드를 실행하기 쉽게 만드는 것을 지속적으로 보장하는 데 가치가 있습니다.
단기 우선순위
각 노드가 약 36일 분의 데이터만 저장하는 최종 단계까지 EIP-4444의 전체 출시를 우선시합니다. 이를 통해 디스크 공간 요구 사항이 크게 줄어들어 더 많은 사람들이 노드를 실행하는 것을 막는 주요 문제가 해결됩니다. 그 후, 노드의 디스크 공간 요구 사항은 다음과 같습니다. (i) 상태 크기; (ii) 상태 Merkle 분기 (iii) 36일간의 역사.
각 노드가 마감일보다 오래된 과거 데이터의 일부를 저장할 수 있는 분산형 과거 저장 솔루션을 구축합니다. 견고성을 극대화하려면 삭제 코딩을 사용하세요. 이를 통해 중앙 집중식 공급자에 의존하거나 노드 운영자에게 큰 부담을 주지 않고도 블록체인이 변경 불가능함을 보장합니다.
가스 가격을 조정하여 저장 비용을 높이고 실행 비용을 낮춥니다. 특히 새로운 상태를 생성하는 데 드는 가스 비용을 늘리는 것이 우선순위입니다. (i) 새로운 저장 슬롯에 대한 SSTORE, (ii) 계약 코드 생성, (iii) 아직 잔액이나 nonce가 없는 계정으로 ETH 보내기.
중기 우선순위: 상태 비저장 인증
상태 비저장 검증을 활성화하면 상태 Merkle 브랜치를 저장하지 않고도 RPC 가능 노드(즉, 상태를 저장하는 노드)를 실행할 수 있습니다. 이를 통해 저장 공간 요구 사항이 약 2배까지 줄어들 것입니다.
새로운 유형의 노드: 부분적 무상태 노드
이는 새로운 아이디어이며 개별 노드가 L1 가스 한도가 10~100배 증가하는 상황에서도 실행될 수 있도록 하는 데 중요합니다.
우리는 블록을 상태 없이 검증하고, 전체 체인을 검증(상태 없는 검증이나 ZK-EVM을 통해)하고, 상태의 일부를 최신 상태로 유지할 수 있는 노드 유형을 추가했습니다. 필요한 데이터가 이 상태 하위 집합 내에 있는 한 노드는 RPC 요청에 응답할 수 있습니다. 다른 요청은 실패할 것입니다(또는 외부 호스팅 암호화 솔루션으로 대체해야 합니다. 대체 여부는 사용자가 선택할 수 있습니다).
보존되는 상태의 정확한 부분은 사용자가 선택한 구성에 따라 달라집니다. 다음은 몇 가지 예입니다.
알려진 정크 계약을 제외한 모든 주
모든 EOA 및 SCW와 일반적으로 사용되는 모든 ERC 20 및 ERC 721 토큰과 애플리케이션과 관련된 상태
지난 2년 동안 액세스한 모든 EOA 및 SCW와 관련된 상태, 일반적으로 사용되는 일부 ERC 20 토큰, 제한된 거래소, DeFi 및 개인 정보 보호 애플리케이션
구성은 온체인 계약을 통해 관리할 수 있습니다. 사용자는 --save_state_by_config 0x 12345...67890 으로 노드를 실행할 수 있습니다. 이 옵션은 특정 언어로 주소, 저장 슬롯 또는 노드가 상태를 저장하고 최신 상태로 유지할 다른 필터링된 영역 목록을 지정합니다. 사용자는 Merkle 브랜치를 저장할 필요가 없다는 점에 유의하세요. 원래 값만 저장하면 됩니다.
이러한 유형의 노드를 사용하면 사용자가 관심 있는 상태에 로컬로 직접 액세스할 수 있으며 해당 상태에 대한 액세스의 개인 정보 보호가 극대화됩니다.