출처: geek Web3
추상:
- EIP-4844 이후 이더넷 네트워크의 데이터 처리량과 스토리지 압력은 증가해 왔으며, 계속 증가하는 스토리지 수요는 이더넷 노드에 큰 도전이 되고 있습니다. 일부 이더넷 클라이언트는 스토리지 부담을 줄이기 위해 로컬에 저장된 과거 이더넷 데이터를 검열하고 있으며, 여러 전체 노드에서 스토리지 동작의 일관성이 점차 무너지고 있습니다.
- 모든 이더넷 클라이언트가 자신의 행동에 동의할 수 있도록 EIP-4444 와 EIP-4844는 과거 데이터 컬링 동작을 표준화합니다. 향후 이더넷 노드의 표준이 될 것입니다. 따라서 가장 최근의 레이어1 또는 레이어2 상태를 복원하기 위해 기록 데이터를 재생하는 것은 중앙화된 프로토콜 외 이더 서비스에 의존하기 때문에 보다 탈중앙화된 이더 기반 스토리지 솔루션에 대한 탐색이 필요합니다.
- 이더넷 포털 네트워크는 기록 데이터를 포함한 모든 유형의 이더넷 데이터를 위한 경량 탈중앙화 P2P 네트워크입니다. 리소스가 제한된 장치를 위해 설계되었으며 이더넷 JSON-RPC 서비스를 제공합니다. 히스토리 네트워크와 비콘 체인 네트워크는 거의 준비가 완료되었습니다.
- EthStorage는 EIP-4844 BLOB 데이터를 위한 인센티브 모듈식 스토리지 네트워크입니다. BLOB을 저장하기 위해 사용자는 L1에서 스토리지 컨트랙트를 호출하여 ETH를 스토리지 수수료로 사용하여 체인에 BLOB의 해시를 기록할 수 있습니다. 시간이 지남에 따라 스토리지 수수료는 체인에서 BLOB의 저장 증명을 제공하는 스토리지 제공자에게 점진적으로 할당됩니다.
- 이더세폴리아 테스트 네트워크는 현재 여러 커뮤니티 참여자들이 로컬 스토리지 상태를 성공적으로 증명한 이더세폴리아 테스트 네트워크에서 실행되고 있습니다. 향후 계획에는 탈중앙화된 이더리움 상태 네트워크 개발, 동적 크기의 데이터에 대한 스토리지 증명 구현, 브라우저에서 직접 탈중앙화된 방식으로 이더스토리지 네트워크에 액세스할 수 있는 기능 등이 포함됩니다.
감사: 이 기사에 대한 피드백을 제공해 주신 이더리움 재단의 파이퍼 메리엄, 폴리체인의 카틱 라주, 이더스토리지의 치앙 주에게 감사드립니다.
배경:
2023년 10월 22일, 고이더리움(Geth) 개발 책임자로 유명한 페터 실라기(Péter Szilágyi)가 트위터를 통해 이더리움의 데이터 스토리지 솔루션에 대한 우려를 표명했습니다. 그는 이더리움 클라이언트는 모든 기록 데이터를 보관하지만, 이더마인드나 베수 같은 다른 유형의 이더리움 클라이언트는 특정 이더리움 기록 데이터(예: 기록 블록)를 삭제하도록 구성할 수 있다고 지적했습니다. 이로 인해 일부 클라이언트 노드의 동작이 다른 클라이언트와 일치하지 않을 수 있으며, 이는 Geth 클라이언트 런너에게 불공평합니다. 위의 주제는 이더 로드맵의 스토리지 옵션에 대한 열띤 토론을 촉발시켰습니다.
스토리지 문제
왜 이더마인드와 베수는 클라이언트 런너가 로컬 기록 데이터를 수정할 수 있도록 허용했을까요? 이 결정에 반영된 문제는 무엇인가요?
우리의 관점에서는 크게 두 가지 이유가 있습니다.
첫 번째 이유는 이더 클라이언트의 증가하는 스토리지 수요에서 비롯됩니다. 아래 원형 차트는 2023년 12월 13일 기준, 블록 높이가 18,779,761인 새로운 Geth 노드의 스토리지 분포를 보여줍니다.
이미지 src="https://img.jinse.cn/7210127_image3.png">
그림과 같이:
두 번째 이유는 이더넷 노드에는 기록 블록 저장에 대한 프로토콜 내 인센티브나 페널티가 없기 때문입니다. 프로토콜은 노드가 모든 기록 데이터를 저장하도록 장려하지만, 저장을 장려하거나 위반을 처벌하는 메커니즘은 제공하지 않습니다. 노드들은 인센티브보다는 이타심에서 기꺼이 기록 데이터를 저장하고 외부에서 추출을 위해 기록 데이터에 대한 액세스를 제공할 의향이 있습니다.
물론 클라이언트 런너는 모든 기록 데이터를 불이익 없이 자유롭게 삭제하거나 수정할 수 있습니다. 반면 검증자 노드는 유효하지 않은 블록을 제안/투표했다는 이유로 슬래시되는 것을 방지하기 위해 로컬에서 전체 상태를 유지하고 업데이트해야 합니다.
따라서 스토리지 비용이 노드에 큰 부담이 될 때 일부 노드 운영자가 기록 데이터를 삭제하는 것은 당연한 선택이 될 수 있습니다. 기록 데이터가 없는 경우 노드 클라이언트는 스토리지 비용을 크게 절감하여 약 1TB에서 약 300GB로 차지하는 스토리지 공간을 줄일 수 있습니다.
일러스트레이션 : 블록 기록이 없는 노드를 실행하는 Nethermined 구성 - 현재 스토리지 비용 ~460GB 절감
향후 이더넷 데이터 가용성(DA) 업그레이드와 함께 스토리지 문제는 더욱 심화될 것입니다. 이더넷 DA를 완전히 확장하는 길은 고정 크기 바이너리 대용량 객체(BLOB)와 blobGasPrice라는 별도의 요금 모델을 도입한 DenCun 업그레이드의 EIP-4844에서 시작되었습니다. 각 블롭은 128KB로 설정되며, EIP-4844의 구현으로 각 블록에는 최대 6개의 블롭이 포함되며, 데이터 처리량을 확장하기 위해 이더넷은 1D 리드-솔로몬 수정 코딩을 사용할 계획이며, 처음에는 블록당 32개의 블롭을 허용하고 완전히 확장되면 블록당 256개의 블롭을 사용할 수 있게 될 것입니다.
이더넷 DA가 최대 용량(블록당 256개의 BLOB)으로 작동하면 이더넷 DA 네트워크는 1년에 약 80TB의 DA 데이터를 수신할 것으로 예상되며, 이는 대부분의 노드의 저장 용량을 훨씬 뛰어넘는 수치입니다.
이미지 src="https://img.jinse.cn/7210129_image3.png">
이더 스토리지 로드맵과 그 결과
비탈릭이 올린 이더리움 로드맵 트윗은 주로 퍼지( 를 언급하고 있습니다.
이미지 src="https://img.jinse.cn/7210130_image3.png">
저장소 비용 상승은 이더리움 생태계 연구자들의 관심을 끌었습니다. 이 문제를 해결하고 모든 클라이언트에서 일관성을 보장하기 위해 연구자들은 이더 클라이언트에서 기록 데이터를 명시적으로 제거하기 위한 여러 가지 제안을 연구하고 있습니다. 두 가지 주요 제안은 다음과 같습니다:
- EIP-4444: 클라이언트에서 기록 데이터 적용 제한: 이 제안은 클라이언트가 1년이 지난 과거 블록을 삭제할 수 있도록 허용합니다. 평균 블록 크기를 100K로 가정할 때, 과거 블록 데이터는 약 250GB(100K * (3600 * 24 * 365)/12, 블록 시간 = 12초로 가정)로 제한됩니다.
- EIP-4844: 슬라이스된 BLOB 트랜잭션: 18일이 지난 BLOB 데이터를 삭제합니다. 이는 EIP-4444에 비해 더 공격적인 접근 방식으로, 과거 BLOB 크기를 약 100GB((18 * 3600 * 24) * 128K * 6 / 12, 블록 시간 = 12초로 가정)로 제한합니다.
모든 클라이언트에서 기록 데이터를 삭제하면 어떤 결과가 발생하나요? 주요 문제 중 하나는 제네시스 블록의 기록 데이터를 최신 블록으로 동기화하는 데이터 재생 방식인 "전체 동기화" 모드를 통해 새 노드를 최신 상태로 동기화할 수 없다는 것입니다. 동기화 방식. 따라서 이더넷 노드의 최신 상태를 직접 동기화하려면 "스냅 동기화" 또는 "상태 동기화"를 사용해야 합니다. 이 방식은 Geth에서 구현되었으며 기본 동기화 작업입니다.
노드가 메인 이더넷 네트워크에서 기록 데이터를 삭제하면 이더넷 L2에 문제가 발생할 수 있으며, 새로 추가된 Layer2 노드는 Layer2의 모든 기록 데이터를 재생하여 현재 최신 상태와 동기화할 수 없습니다. 또한 L1 노드는 L2 상태를 유지하지 않기 때문에 L2의 "스냅 동기화" 방법은 Layer1 블록에서 가장 최근의 Layer2 상태를 직접 도출할 수 없으며, 이는 Layer2가 이더넷 보안을 상속하는 데 필요한 중요한 가정을 위반하는 것입니다.
예상되는 솔루션은 과거 레이어2 데이터 또는 상태의 사본을 저장하기 위해 Infura/Etherscan/L2 프로젝트 자체의 타사 서비스에 의존하게 되며, 이는 프로토콜 외부의 간접적인 인센티브를 통해 달성되는 중앙화된 솔루션입니다.
우리가 탐구하고자 하는 핵심 질문은 다음과 같습니다.
저장 및 액세스를 위한 더 나은 탈중앙화 솔루션을 찾을 수 있을까요?
이더리움 네트워크 자체에서 보장하는 노드에 직접적인 인센티브를 제공하는 솔루션(예: L1 컨트랙트로 구현)을 찾을 수 있을까요?
이 모든 것을 바탕으로 이더리움 스토리지 경로에 대해 완전히 탈중앙화된 프로토콜 내 직접 인센티브 솔루션을 제공할 수 있을까요?
솔루션
솔루션 1: 이더 포털 네트워크
이더 포털 네트워크는 이더 프로토콜에 연결하기 위한 경량의 탈중앙화 네트워크입니다. 이 네트워크는 eth_call, eth_getBlockByNumber 및 기타 이더넷 JSON-RPC 인터페이스를 제공하며, IPFS 네트워크와 유사하게 JSON-RPC 요청을 분산 해시 테이블(DHT)에 대한 P2P 요청으로 변환합니다. 모든 데이터 유형을 저장할 수 있고 스팸에 취약한 IPFS와 달리, 포털 P2P 네트워크는 포털 네트워크에 내장된 클라이언트 경량 인증 기술을 통해 기록 블록 헤더 및 거래 데이터와 같은 이더 데이터만 독점적으로 호스팅합니다.
포탈 네트워크의 주요 특징 중 하나는. 가벼운 운영 설계와 리소스 제약이 있는 디바이스와의 호환성입니다. 몇 MB의 스토리지와 낮은 RAM을 가진 노드에서도 실행할 수 있어 탈중앙화를 촉진합니다. 휴대폰이나 라즈베리 파이 장치도 네트워크에 참여할 수 있으며 이더넷 DA 문제 해결에 기여할 수 있습니다.
포탈 네트워크는 이더넷 클라이언트의 다양성이라는 아이디어에 따라 개발되었으며, Rust, JavaScript, Nim으로 작성되었습니다. 비콘 네트워크와 히스토리 네트워크는 이미 사용 가능하며, 스테이트 네트워크는 현재 개발 중입니다. 특히 포털 네트워크는 데이터 저장에 대한 직접적인 인센티브를 제공하지 않습니다.
일러스트레이션 : 100MB 스토리지 제한으로 운영 중인 포털 네트워크 러스트 클라이언트(Trin)
솔루션 2: 이더스토리지 네트워크
이더스토리지 네트워크는 탈중앙화 인센티브 스토리지 네트워크입니다. EIP-4844 블롭을 저장하는 탈중앙화 인센티브 스토리지 네트워크이며 ESP 프로젝트의 자금 지원을 받습니다.
- 최소한의 신뢰: 중앙화된 데이터 브리지가 필요한 기존 솔루션과 달리 EthStorage는 이더의 합의와 허가 없는 EthStorage 스토리지 노드를 위한 1/m 신뢰 모델에 의존합니다. 사용자가 스토리지 컨트랙트의 put(key, blob_idx) 메서드를 호출하여 BLOB를 포함하는 트랜잭션에 서명하면 다음과 같이 BLOB를 저장합니다. 그러면 스토리지 컨트랙트는 BLOB 해시를 체인에 기록합니다. 그러면 스토리지 공급자는 데이터 브리지 문제를 우회하여 이더넷 DA 네트워크에서 직접 BLOB을 다운로드하여 저장합니다.
- 저장 비용은 인센티브와 연계됩니다: put() 메서드가 호출되면 트랜잭션은 (msg.value를 통해) 스토리지 비용을 전송하고 이를 컨트랙트에 예치해야 합니다. 이 스토리지 비용은 성공적인 다운체인 스토리지 노드가 스토리지 증명을 제출하고 검증한 후 시간이 지남에 따라 스토리지 노드에 점진적으로 분배됩니다. 제안자에게 일회성 보관 수수료를 지급하는 기존 이더리움 보관 수수료 모델과 달리, 시간이 지남에 따라 보관 비용이 이더 가격 대비 감소한다는 가정 하에 할인된 현금 흐름 모델을 따르며, 이더스토리지는 이를 도입하여 스토리지 노드의 스토리지 기여도에 따라 수수료를 조정하는 중요한 혁신입니다.
- 저장 증명: 저장 증명은 데이터 가용성 샘플링에서 영감을 얻은 반면, 이더스토리지의 샘플링은 시간이 지남에 따라 저장된 BLOB에 대한 것입니다.온체인 샘플링을 효율적으로 검증하기 위해 EthStorage는 다음을 최대한 활용합니다. 온체인 샘플링을 효과적으로 검증하기 위해 이더스토리지에서는 스마트 컨트랙트와 최신 SNARK 기술 개발을 활용합니다.
- 라이센스 없는 운영: EthStorage의 모든 스토리지 노드는 데이터를 저장하고 주기적으로 체인에 저장 증명을 제출하는 것에 대한 보상을 받을 수 있습니다.
모듈형 블록체인의 관점에서 볼 때, 이더스토리지 L2 역할을 하지만 트랜잭션 수수료가 아닌 스토리지 수수료를 부과합니다. EthStorage는 온체인에서 블롭 해시를 인덱싱함으로써 스토리지 확장성을 개선하고 비용을 절감(최대 1000배 목표)하는 이더 모듈형 스토리지 레이어입니다.
개발 측면에서 이더스토리지가 이더 세폴리아 테스트넷의 EIP-4844와 통합되었습니다. 약 수백 기가바이트의 블롭을 이더스토리지에 기록하는 등 이더스토리지와 이더세폴리아 테스트넷을 스트레스 테스트했습니다. 100명 이상의 커뮤니티 참여자가 네트워크에 참여하여 로컬 스토리지를 성공적으로 증명했습니다.
이더스토리지 네트워크의 가장 큰 장점은 이더 위에 탈중앙화된 직접 인센티브를 제공한다는 점이며, 이는 현재까지의 지식으로는 획기적인 기능입니다. 그러나 이 네트워크의 한계는 고정된 크기의 블롭을 위해 특별히 설계되었다는 점입니다.
EthStorage on 이더넷 세폴리아 테스트 네트워크의 칸반
앞으로
EthStorage는 아직 큰 주목을 받지는 못했지만 이더넷 생태계에서 중요한 역할을 하고 있습니다. 이더넷 네트워크의 급속한 성장으로 이더넷 데이터의 저장과 접근성이 핵심 과제가 되고 있습니다. 포털 네트워크와 이더스토리지 네트워크는 아직 초기 단계에 있으며 장기적으로 집중해야 할 중요한 방향이 많이 있습니다.
이더넷 상태 데이터 네트워크에 대한 탈중앙화된 저지연 액세스 : 탈중앙화된 이더넷 상태에 대한 탈중앙화 및 검증 가능한 액세스는 중요하지만 어려운 과제입니다. 기존의 DHT 네트워크 모델을 사용하면 계정 정보를 쿼리하려면 일반적으로 여러 P2P 노드에 저장된 내부 트라이 노드에 여러 번 쿼리해야 합니다. 이로 인해 상당한 지연 시간이 발생하는 경우가 많습니다. 상태 트리의 구조를 활용하여 액세스 속도를 높이는 것이 핵심입니다. 곧 출시될 이더넷 포털 네트워크의 스테이트풀 네트워크는 바로 이 문제를 해결하도록 설계되었습니다.
포털 네트워크와 이더스토리지 네트워크의 통합: 포털 네트워크는 이더스토리지 팀에서 부분적으로 구현한 기능인 블롭 데이터를 지원하도록 원활하게 확장할 수 있습니다. 다음 단계는 이러한 네트워크를 통합하여 컨트랙트를 통해 BLOB에 대한 프로그래밍 가능한 액세스를 제공하는 탈중앙화된 JSON-RPC 네트워크를 제공하는 것입니다. 컨트랙트의 애플리케이션 로직을 이더스토리지가 제공하는 확장된 BLOB 스토리지와 결합하여 동적 탈중앙화 웹사이트(예: 탈중앙화 트위터/유튜브/위키피디아 등)와 같은 새로운 디앱을 이더 상에서 구현할 수 있습니다.
브라우저를 위한 탈중앙화 액세스: IPFS 네트워크의 데이터 액세스를 위한 ipfs:// 프로토콜과 마찬가지로, 웹3.0 산업은 이더리움의 풍부한 데이터의 방대한 잠재력을 활용하기 위해 브라우저 직접 액세스를 지원하는 이더리움 네이티브 액세스 프로토콜이 필요합니다. 이러한 데이터는 토큰 소유권 및 계정 잔고부터 NFT 이미지와 동적 탈중앙화 웹사이트에 이르기까지 광범위한 영역을 포함하며, 스마트 컨트랙트와 미래의 이더넷 스토리지 기능을 통해 모두 가능합니다. 이 영역에서는 현재 ERC-4804/6860에 정의된 web3:// 프로토콜이 이를 가능하게 하기 위해 활발히 개발 및 홍보되고 있습니다.
동적 크기의 데이터를 위한 고급 저장 증명: 고정된 BLOB 외에도 동적 크기의 데이터(예: 기록 블록 또는 상태 개체 등)를 처리하려면 고급 저장 증명을 탐구하는 것이 필수적입니다. 정교한 알고리즘을 개발하면 스토리지 솔루션의 적응성을 높일 수 있습니다.
우리는 이러한 노력을 통해 이더넷 로드맵에 기여함으로써 향후 이더넷 생태계를 위한 분산형 스토리지 솔루션의 토대를 마련할 수 있기를 희망합니다.