RemoteBlock: A Scalable Blockchain Storage Framework for Ethereum 리뷰

도건우·2024년 6월 3일

논문 리뷰 

목록 보기
6/13

초록

2024년 ieeexplore에 개제된 최신 논문이다.

이 논문을 블록체인 네트워크 중 이더리움을 대상으로 지속적으로 증가하는 스토리지 공간 문제에 대해서 해결하고자 한다. 기존 이더리움은 실행 노드와 합의 노드로 나뉘어져 있다. 실행 노드에서는 머클 패트리샤 트리를 사용하여서 다양한 상태를 관리한다. 하지만 이 논문에서는 실행 노드를 스토리지 노드와 실행 노드로 분리시켜서 개별 노드로 저장 부하를 분산한다. 이를 통해 머클 패트리샤 트리의 키 값을 분산시킨다.

이러한 접근 방식을 통해 네트워크 보안 및 데이터 무결성을 유지하면서 부담을 경감한다.
시스템 개발을 위해 go-ethereum(geth) 소스코드 수정 및 실제 이더리움 블록 데이터를 사용한 테스트 및 실험을 통해 개선점을 증명한다.

체인데이터의 증가량을 확인할 수 있는 그래프이다. 용량이 별로 크지 않은데? 하는 생각이 들었으나, 단위가 테라바이트인 것을 확인할 수 있다.

아키텍처

RemoteBlock 아키텍처에는 두 가지 유형의 노드가 있다. 합의 노드와 MPT를 저장하는 스토리지 노드가 있는데, 이러한 구조는 분산 저장 매커니즘을 용이하게 한다. 스토리지 노드가 특정 MPT 노드를 저장하도록 지정되기 때문에, 확장을 가진다.

기존 이더리움은 디스크 쓰기가 필연적으로 발생한다. 하지만 해당 아키텍처는 로컬 디스크에 데이터를 저장하지 않고 분산된 스토리지 노드에 데이터를 분산한다. 따라서 결과로


압축공간이 상당히 절약되는 것을 확인할 수 있다.

실험환경

geth 1.10 버전의 소스코드를 수정하여, 합의 노드로 변환하고 Go언어로 스토리지 노드 구성을 개발했다. 데이터 전송에는 TCP 및 데이터베이스 시스템으로 Leveldb를 사용한 것을 알 수 있다.

실험환경은 동기화의 첫 100만블록까지 동기화하여 구축되었고, 해당 환경에서 데이터 저장 부하 분산 정도를 평가했다.

실험결과


스토리지 노드가 많을수록 동기화 속도가 빨라지고, 저장 공간이 줄어드는 것을 확인할 수 있다.

0개의 댓글