
프론트엔드에서 데이터베이스까지: EthStorage가 DApp이 진정한 비신뢰화를 실현하는 데 어떻게 기여하는가?
글: EthStorage 팀
요약
-
탈중앙화 애플리케이션(DApp)은 여러 구성 요소로 이루어져 있지만 현재는 핵심 백엔드 로직만 이더리움 상에서 실행되고 있으며, 프론트엔드 코드 등 다른 부분들은 여전히 이더리움 외부에 배포되어 있고, 체인에 올라가지 않은 데이터도 많아 대부분의 DApp이 이더리움의 보안성을 완전히 계승하지 못하고 있어 이상적인 상태와는 거리가 멀다.
-
위 문제의 주요 원인은 두 가지인데, 첫째는 이더리움이 개발자에게 적절한 프론트엔드 표준과 도구를 제공하지 않고 있으며, 둘째는 체인 상의 데이터 저장 비용이 너무 높기 때문이다.
-
탈중앙화된 프론트엔드 표준을 제공하기 위해 EthStorage 팀은 web3:// 접근 프로토콜을 제안하였으며, 개발자가 스마트 계약을 통해 프론트엔드 코드를 배포하고 접근할 수 있도록 하는 일련의 표준 및 도구를 제공하고 있으며, 현재 이더리움 공식 표준으로 채택되었다.
-
이더리움 체인 상 데이터 저장 비용을 낮추기 위해 EthStorage 팀은 2단계 저장 프로토콜인 EthStorage를 개발하였으며, PoRA(Proof of Random Access)와 제로 kiến명 증명 기술을 활용하여 이더리움 1단계의 보안성을 유지하면서도 저장 비용을 크게 절감하였다.
감사의 말: 극크 Web3의 Faust, ChainFeeds의 Zhixiong Pan, LXDAO의 Bruce, EthStorage의 Qi Zhou, Lun Deng이 본 글에 대한 피드백을 제공해 주셔서 감사합니다.
탈중앙화 DApp의 배경과 문제점
이더리움의 비전은 '월드 컴퓨터'가 되는 것으로, 위에서 구동되는 모든 애플리케이션이 그 보안성을 계승하기를 기대한다. 개발자는 단 한 번의 배포만으로 해당 애플리케이션이 영원히 이더리움 상에서 작동되며, 어떤 실체도 검열하거나 악의적으로 조작할 수 없다.
그러나 현재의 탈중앙화 애플리케이션(DApp)들이 위 목표를 달성했는가? 이 질문에 보다 명확하게 답하기 위해 DApp을 구성 요소별로 분해하여 각 부분의 신뢰 불필요성 정도를 분석함으로써 최종 결론을 도출할 필요가 있다.
일반적으로 탈중앙화 DApp은 프론트엔드 인터페이스, 백엔드 서버, 데이터베이스로 구성된다. 사용자가 프론트엔드 인터페이스에 접속하면 브라우저와 도메인 서비스를 통해 프론트엔드 콘텐츠를 로드한다. 여기서:
-
프론트엔드 및 도메인 서비스: 대부분 스마트 계약을 통해 배포 및 접근되지 않으며, 블록체인이 제공하는 특성들인 단일 장애 지점 방지, 코드의 변경 불가능성, 검열 저항성, 커뮤니티 거버넌스 등이 프론트엔드 부분에서는 반영되지 않는다.
-
백엔드 서버: 일부는 스마트 계약으로 구현되지만, 연산 집약적인 작업은 여전히 체인 외부에서 처리해야 한다.
-
데이터베이스: 일부는 스마트 계약으로 구현되지만, 체인 상 저장 비용이 매우 높기 때문에 대용량 데이터의 경우 DApp은 여전히 오프체인 저장 방식을 사용한다.

위 분석을 통해 현재의 탈중앙화 DApp은 일부 구성 요소만 스마트 계약을 통해 이더리움의 보호를 받고 있음을 알 수 있으며, 이더리움 생태계는 여전히 초기의 '탈중앙화된 세계 컴퓨터'라는 비전을 달성하지 못하고 있다.
2023년 말, 비탈릭(Vitalik)은 이더리움의 발전을 회고하며 'Make Ethereum Cypherpunk Again'이라는 큰 반향을 일으킨 글을 발표했다. 그는 이더리움 커뮤니티가 어떻게 다시 사이퍼펑크 정신으로 돌아갈 수 있을지를 논의하며, 이더리움은 물론 더 넓은 범위의 Web3 커뮤니티가 지켜야 할 가치관을 정리하였고, 특히 다음과 같은 중요한 점을 언급했다:
탈중앙화 애플리케이션은 가능한 한 특정 단일 주체에 의존하지 않도록 해야 하며, 심지어 핵심 개발자가 영원히 사라진다고 해도 애플리케이션이 계속 작동해야 한다.

이처럼 비탈릭 역시 탈중앙화 애플리케이션의 구축 방식에 대해 유사한 기대를 하고 있음을 알 수 있다. 이제부터 우리는 탈중앙화 DApp의 각 구성 요소가 직면한 문제를 자세히 분석하고 이를 개선하는 방법을 모색해보겠다.
프론트엔드 및 도메인 서비스
탈중앙화 애플리케이션의 구성 요소 중 프론트엔드와 도메인 서비스의 중심화 정도가 가장 심각하다. 현재 대부분의 dApp 프론트엔드는 중심화된 서버를 사용하며, 프로젝트 팀은 언제든지 프론트엔드 코드를 수정할 수 있고, 이 과정에서 커뮤니티 거버넌스를 거치거나 시간 잠금(time lock)의 제한도 받지 않는다. 따라서 이 부분의 보안성은 이더리움 상의 스마트 계약과 비교해 크게 떨어진다.
해커가 서버를 해킹하여 프론트엔드 코드를 수정하면, 사용자는 악성 프론트엔드를 사용함으로써 자산을 손실할 수 있다. 이 문제는 지난 DeFi Summer 동안 반복적으로 발생하였다. 우리는 물어야 한다. 왜 프론트엔드는 백엔드처럼 이더리움에 배포되어, 수정 작업이 커뮤니티 거버넌스와 시간 잠금을 통과해야만 적용되게 하지 않는 것인가?

또한 다음 시나리오를 생각해보자. Uniswap 개발팀이 어느 날 프론트엔드 서버와 도메인 서비스 비용 지불을 중단한다면, Uniswap 사용자들과 LP들은 어떻게 Uniswap을 이용할 수 있을까?
대부분의 사용자들은 프론트엔드를 우회하여 스마트 계약과 직접 상호작용하는 방법을 알지 못한다. Uniswap이 프론트엔드를 IPFS에 업로드하려는 시도는 있었지만, IPFS는 이더리움과 다른 네트워크이며 신뢰성과 신뢰 불필요성 측면에서 완전히 다르다. 특히 IPFS 콘텐츠 접근 속도가 매우 느리며, 현재 대부분의 사용자는 여전히 중심화된 서버에 배포된 Uniswap 프론트엔드와 상호작용하고 있다.
또한 Uniswap 프론트엔드의 운영 주체인 Uniswap Labs는 규제에 부합하기 위해 토큰 리스트에 대한 검열을 추가하였으며, 이는 이더리움에 배포된 스마트 계약과 대조된다. 누구도 마음대로 스마트 계약을 수정할 수 없기 때문이다. 따라서 프론트엔드에서 검열된 토큰이라도 계약 레벨에서는 여전히 상호작용이 가능하다. 이처럼 코드를 체인에 올리는 것은 검열 저항성 확보 측면에서 중요하다.
백엔드 서버
EVM은 튜링 완전한 실행 환경을 제공하므로 대부분의 백엔드 로직은 이더리움 체인 상에서 실행될 수 있으며, 스마트 계약 기반 애플리케이션은 이더리움의 보안성을 완전히 계승한다고 말할 수 있다. 다만 비용 문제로 인해 연산 집약적인 작업은 직접 체인 상에서 수행하기 어렵다.
이 문제에 대해 현재 가장 활발히 탐색되고 있는 방법은 ZK 또는 OP 방식을 사용하는 것이다. 연산을 체인 외부에서 수행하고, 이더리움 체인 상에서는 결과만 최종 확인함으로써 연산 차원의 확장성을 달성하는 것이다. 일부 AI 관련 프로젝트는 이러한 방법을 극한까지 밀고 나가, AI 대규모 모델과 같은 초연산 집약적 작업을 블록체인과 연결시키려 하고 있으며, 주목할 만하다.
데이터베이스
데이터베이스 측면에서 EVM은 원래 키-값(KV) 저장(Key Value Store)을 지원하며, 많은 사용 사례를 커버할 수 있지만 핵심 문제는 바로 체인 상 저장 비용이 너무 높다는 점이다.
얼마나 비싼가? Gas Price가 10Gwei일 때, 체인 상에 1GB의 데이터를 저장하려면 6,200개 이상의 ETH가 필요하며, 2,000만 달러를 초과한다! 분명히 저장 비용이 데이터베이스 탈중앙화의 핵심 걸림돌이 되고 있다.
우리는 위의 연산 확장과 유사한 방법을 저장에도 적용할 수 있을지 고민해볼 수 있다. 즉, 저장은 체인 외부에서 수행하고, 저장 효과는 체인 상에서 검증하는 방식이다. 이후 이 아이디어를 자세히 설명하겠다.
위에서 언급한 DApp 구성 요소들을 분석한 후, DApp의 각 부분이 충분히 안전하고 신뢰 불필요해야 비로소 전체로서 신뢰 불필요한 진정한 탈중앙화 DApp이 될 수 있음을 알 수 있다. 그리고 이더리움이 dApp의 실행 및 호스팅 플랫폼으로서, 개발자들에게 적절한 솔루션을 제공해야 비로소 이더리움의 비전에 부합하는 애플리케이션 생태계를 만들어낼 수 있다.
DApp의 신뢰 불필요 솔루션
DApp이 완전히 이더리움 기반으로 배포 및 접근되도록 하기 위해 EthStorage 팀은 두 가지 솔루션을 제안하였다:
-
web3:// 접근 프로토콜: 스마트 계약을 통해 프론트엔드 코드 및 파일 시스템과 유사한 구조를 배포하고 접근하는 문제를 해결한다.
-
EthStorage 2단계 저장 프로토콜: 이더리움의 보안성을 유지하면서 저장 비용을 크게 절감한다.
web3:// 접근 프로토콜
web3://는 탈중앙화 버전의 http://라고 이해할 수 있다. http URL이 서버 IP 주소나 도메인 이름을 지정하여 중심화된 리소스에 접근하는 것과 유사하게, web3 URL은 스마트 계약 주소나 ENS 도메인을 지정하여 그 위에 저장된 리소스에 접근한다.
웹사이트의 프론트엔드 전체를 하나의 스마트 계약에 배포하고 web3://를 통해 접근할 수 있다! 두 방식의 차이점을 비교해보자:

현재 web3://는 이미 이더리움의 공식 표준(ERC-4804)이 되었다. web3:// 접근 프로토콜에 대해 자세히 알고 싶다면 공식 웹사이트를 방문할 수 있다. 스마트 계약 내에서 파일 관리를 용이하게 하기 위해 우리는 ERC-5018을 제안하였다. 이는 스마트 계약 내부에 파일 시스템과 유사한 인터페이스를 모사하여 ethfs-cli를 통해 패키징된 프론트엔드 코드 폴더를 스마트 계약에 업로드하고 web3://로 해당 웹사이트에 접근할 수 있게 한다.
관심 있는 분들은 튜토리얼을 따라 간단한 탈중앙화 애플리케이션의 배포 및 접근을 직접 경험해볼 수 있다.
web3:// 접근 프로토콜 덕분에 비로소 dApp 프론트엔드도 '코드는 법이다(Code is law)'라는 속성을 갖게 되었다. 개발자 입장에서, 한번 배포하면 그 프론트엔드는 영원히 실행된다. 만약 Uniswap Labs가 프론트엔드도 이더리움에 배포했다면, 팀이 프론트엔드 수준에서 사용자를 검열하고 제한하려 해도, 사람들이 이더리움에 배포된 프론트엔드를 사용하는 것을 막을 수 없을 것이다.
물론 가능성 문제가 해결된 후에는 체인 상에 대량의 데이터를 저장하는 비용이 매우 높아 개발자가 체인 상에 프론트엔드를 배포하는 데 어려움을 겪을 수 있음을 깨달았다. 이에 우리는 EthStorage 2단계 저장 프로토콜을 추가로 개발하여 이더리움의 보안성을 계승하면서 저장 비용을 크게 절감하였다.
EthStorage 2단계 저장 프로토콜
EthStorage 프로토콜은 이더리움 상에 배포된 스마트 계약과 Layer2 네트워크 내의 저장 노드로 구성되며, 스마트 계약은 키-값 저장을 제공하고, 2단계의 저장 노드는 데이터 자체를 저장한다.
사용자는 EIP-4844의 BLOB을 통해 저장할 데이터를 이더리움에 업로드하며, EthStorage 스마트 계약은 BLOB 내 데이터의 해시 값만 기록함으로써 저장 비용을 효과적으로 절감한다.
동시에 2단계 저장 노드는 해당 BLOB 데이터를 로컬 디스크에 다운로드하고, PoRA(Proof of Random Access)와 제로 kiến명(ZK) 기술을 사용하여 저장 증명을 생성한 후 이를 이더리움 상의 계약에 제출하여 검증받는다. 계약은 이전에 기록한 Blob 해시를 사용하여 저장 노드가 제출한 ZK 증명이 일치하는지 확인함으로써, 2단계 네트워크의 저장 노드가 실제로 해당 데이터를 보유하고 있는지를 검증한다.
구체적인 절차는 다음과 같다:

개발자의 입장에서 데이터 업로드 및 조회 인터페이스는 매우 간단하다:

애플리케이션 개발자는 EthStorage가 제공하는 계약 인터페이스를 통해 대용량 데이터를 읽고 쓸 수 있으며, 저장 비용은 체인 상에 직접 저장하는 비용의 약 천분의 일 수준이다. 따라서 EthStorage는 프론트엔드의 체인 상 배포뿐 아니라, 광범위한 키-값 저장 데이터베이스 작업에도 더 낮은 비용의 솔루션을 제공한다.
현재 EthStorage는 이더리움 공식 Grants를 획득하였으며, Sepolia에 공개 테스트넷을 배포하였다. 모두의 참여를 환영한다.
결론 및 전망
대부분의 DApp에서 중요한 구성 요소인 프론트엔드와 데이터베이스가 이더리움에 배포되지 않아 이더리움의 보안성을 계승하지 못하고 있으므로, 애플리케이션 전체로서는 영구 실행, 검열 저항, 거버넌스 가능 등의 특성을 달성하지 못하고 있다.
이 문제를 해결하기 위해 EthStorage는 두 가지 방안을 제시하였다: web3:// 접근 프로토콜은 스마트 계약을 통한 프론트엔드 배포 및 접근 문제를 해결하며, EthStorage 2단계 저장 프로토콜은 저장 비용 과다 문제를 해결한다.
이더리움의 초기 비전을 실현하기 위해 우리는 이더리움이 탈중앙화 웹 서버로 진화할 것이라고 본다. 생태계 내 탈중앙화 애플리케이션은 백엔드 코드, 프론트엔드, 데이터 등 모든 구성 요소를 이더리움에 배포하여, 일단 배포되면 코드는 영구적으로 실행되고 데이터는 영구적으로 접근 가능하며, 진정한 '멈추지 않는 DApp(Unstoppable Dapp)'이 될 것이다.
EthStorage 공개 테스트넷은 현재 두 번째 인센티브 활동을 진행 중이며, 관심 있는 커뮤니티 구성원들은 가이드에 따라 자신의 첫 번째 Unstoppable Dapp을 배포하고 접근해보기를 권장한다!
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News














