요약:
탈중앙화 애플리케이션은 다음으로 구성됩니다.
탈중앙화 애플리케이션은 여러 부분으로 구성되지만 현재 핵심 백엔드 로직만 이더에서 실행되고 프론트엔드 코드와 같은 다른 부분은 여전히 이더 외부에 배포되어 있으며, 또한 업링크되지 않은 많은 데이터를 포함하고 있어 대부분의 DAPP은 이더의 완전한 보안을 상속할 수 없으며 이상화되지도 못했습니다.
이러한 문제에는 두 가지 주요 이유가 있습니다. 첫째, 이더리움이 개발자에게 적절한 프런트엔드 표준과 도구를 제공하지 않고, 둘째, 체인에 데이터를 저장하는 비용이 너무 높다는 점입니다.
탈중앙화된 프론트엔드 표준을 제공하기 위해 이더스토리지 팀은 개발자들에게 스마트 컨트랙트를 통해 프론트엔드 코드와 파일 시스템 클래스까지 배포하고 액세스하기 위한 완벽한 표준과 도구를 제공하는 web3:// 액세스 프로토콜을 제안했습니다. 파일 시스템 표준 및 도구는 이제 공식 이더넷 표준이 되었습니다.
이더 체인에 데이터를 저장하는 비용을 줄이기 위해 이더스토리지 팀은 2계층 스토리지 프로토콜인 이더스토리지(EthStorage)를 개발했으며, 이는 PoRA(무작위 접근 증명)와 영지식 증명을 활용합니다. 액세스)와 영지식 증명을 활용하여 스토리지 오버헤드를 획기적으로 줄이면서 이더 계층의 보안을 계승합니다.
감사: 이 글에 대한 피드백을 제공해 주신 Geek Web3의 Faust, ChainFeeds의 Zhixiong Pan, LXDAO의 Bruce, EthStorage의 Qi Zhou, Lun Deng에게 감사의 말씀을 전합니다. LXDAO, 브루스, 치 저우, 이더스토리지의 룬 덩, 파우스트.
탈중앙화 디앱의 배경과 이슈
이더스의 비전은 세상의 컴퓨터가 되는 것이며, 그 위에 구축된 앱이 이더의 보안을 이어받기를 희망합니다. 개발자가 앱을 한 번 배포하기만 하면 그 어떤 주체도 검열하거나 악의적으로 조작할 수 없이 영원히 이더에서 앱이 실행됩니다.
그러나 오늘날의 탈중앙화 앱인 DAPP은 이러한 목표를 달성할 수 있을까요? 이 질문에 보다 명확하게 답하기 위해서는 DAPP 앱을 분해하여 어떤 부분이 포함되어 있는지 확인한 다음, 각 부분이 얼마나 탈신뢰화되었는지 분석해야 최종 결론에 도달할 수 있습니다.
일반적으로 탈중앙화 DAPP에는 프론트엔드 인터페이스, 백엔드 서버, 데이터베이스가 포함됩니다. 사용자가 프론트엔드 인터페이스에 액세스하면 브라우저와 도메인 서비스를 통해 프론트엔드 콘텐츠가 로드됩니다. 그 중:
프론트엔드 및 도메인 서비스: 대부분 스마트 컨트랙트를 통해 배포 및 액세스되지 않는 블록체인은 단일 장애 지점 방지, 코드 불변성과 같은 기능을 제공합니다. 변조 방지, 검열 저항성, 커뮤니티 거버넌스 등의 기능이 프런트엔드에 반영되지 않습니다.
백엔드 서버: 스마트 컨트랙트에 의해 부분적으로 실현되며, 일부 컴퓨팅 집약적인 작업은 완전히 업링크할 수 없습니다.
데이터베이스: 스마트 컨트랙트에 의해 부분적으로 구현되었으나, 온체인 스토리지의 높은 비용으로 인해 DAPP은 대량의 데이터의 경우 여전히 오프체인 스토리지 솔루션을 채택하고 있습니다.
위 분석을 통해 데이터베이스가 부분적으로 스마트 컨트랙트에 의해 구현되고 있음을 알 수 있습니다.
위와 같은 분석을 통해 오늘날 탈중앙화 디앱의 일부 구성 요소만이 스마트 컨트랙트를 통해 이더리움으로 보호되고 있으며, 이더리움 시스템이 '탈중앙화된 세계 컴퓨터'라는 본래의 비전을 실현하기에는 아직 멀었다는 것을 알 수 있습니다.
2023년 말, 비탈릭은 이더의 발전을 되돌아보고 이더리움 커뮤니티가 어떻게 크립토펑크의 개념으로 돌아가야 하는지 논의하는 "이더리움을 다시 사이퍼펑크로 만들기"라는 글을 작성하여 큰 호평을 받기도 했습니다. 이 글에서 그는 이더리움, 나아가 더 넓은 웹 3.0 커뮤니티가 지켜야 할 가치를 요약하며 한 가지 중요한 점을 지적했습니다.
탈중앙화 앱은 특정 주체에 대한 의존도를 최소화하여, DAPP의 핵심 개발자가 영구적으로 사라져도 앱이 계속 작동할 수 있도록 해야 합니다. 기능할 수 있어야 합니다.
이것은 다음을 보여줍니다. 비탈릭은 탈중앙화 앱이 어떻게 구축되어야 하는지에 대해 비슷한 기대를 가지고 있습니다. 탈중앙화 디앱의 각 구성 요소가 직면한 문제점을 자세히 분석하고 이를 어떻게 개선할 수 있는지 살펴보겠습니다.
프론트엔드 및 도메인 서비스
탈중앙화 앱의 여러 구성 요소 중 가장 중앙화된 것은 프론트엔드 및 도메인 서비스입니다. 현재 대다수의 디앱은 프론트엔드에 중앙화된 서버를 사용하며, 프로젝트 소유자는 커뮤니티 거버넌스를 거치거나 타임록 제약을 받지 않고 언제든지 프론트엔드 코드를 수정할 수 있어 이더리움에 배포된 스마트 컨트랙트와는 거리가 먼 보안을 제공합니다.
해커가 서버에 침입하여 프런트엔드 코드를 수정할 수 있으며, 디앱 사용자는 악의적인 프런트엔드를 사용하여 자산을 잃을 수 있습니다. 이 문제는 지난 디파이 서머에서 반복적으로 제기되었으며, 저희는 왜 프론트엔드를 백엔드뿐만 아니라 이더에도 배포하여 커뮤니티 거버넌스와 시간 잠금을 통해서만 수정이 적용되도록 할 수 없는지에 대해 의문을 제기했습니다.
또한 만약 유니스왑 개발팀이 프론트엔드 서버와 도메인 이름 서비스에 대한 지불을 중단한다면 유니스왑 사용자와 LP는 어떻게 유니스왑을 사용할까요??
대다수의 사용자는 프론트엔드를 우회하여 스마트 컨트랙트와 상호작용하는 방법을 모르고 있으며, 유니스왑은 프론트엔드를 IPFS에 업로드하려고 시도했지만, IPFS와 이더는 신뢰도와 탈신뢰 수준이 완전히 다른 서로 다른 네트워크입니다. IPFS 콘텐츠는 접근 속도가 느리며, 현재 대다수의 사용자는 여전히 중앙 서버에 배포된 유니스왑의 프론트엔드와 상호작용하고 있다는 점에 주목할 필요가 있습니다.
또한, 유니스왑 프론트엔드는 유니스왑 랩에서 운영하기 때문에 규제를 충족하기 위해 토큰 목록에 대한 감시를 강화했으며, 이는 아무도 스마트 컨트랙트를 마음대로 변경할 수 없는 이더리움에 스마트 컨트랙트를 배포하는 것과 대조적입니다. 스마트 컨트랙트를 마음대로 변경할 수 없습니다. 따라서 프런트엔드에서 검열된 토큰도 컨트랙트 수준에서는 여전히 상호작용할 수 있으며, 이는 검열을 막기 위해 체인에 코드를 두는 것이 얼마나 중요한지 보여줍니다.
백엔드 서버
EVM은 튜링 완전 실행 환경을 제공하기 때문에 대부분의 백엔드 로직이 이더리움 체인에서 실행될 수 있으며, 스마트 콘트랙트 앱은 이더리움의 보안을 상속받는다고 말할 수 있습니다. 보안. 다만 일부 컴퓨팅 집약적인 작업은 비용 때문에 체인에서 직접 수행할 수 없습니다.
이 문제를 해결하기 위해 계산을 오프체인으로 전송하고 그 결과만 이더채널에서 확인하여 계산을 확장하는 ZK 또는 OP 접근 방식이 모색되고 있습니다. 일부 AI 관련 프로젝트는 이러한 접근 방식을 극단적으로 활용하여 AI 매크로 모델링과 같은 초연산 집약적인 작업을 블록체인에 연결하려고 하고 있으며, 이를 주시할 가치가 있습니다.
데이터베이스
데이터베이스의 경우, 원래 EVM은 다양한 시나리오를 커버할 수 있는 키값 저장소를 지원했지만 온체인 스토리지가 너무 비싸다는 것이 핵심적인 문제였습니다. 하지만 핵심적인 문제는 온체인 스토리지 비용이 너무 비싸다는 점입니다.
얼마나 비쌀까요? 가스 가격이 10Gwei일 때 1GB의 데이터를 온체인에 저장하려면 6200 ETH, 즉 2천만 원 이상이 필요합니다! 분명히 스토리지 비용은 데이터베이스 탈중앙화의 핵심 이슈가 됩니다.
우리는 위에서 설명한 연산 확장과 비슷한 방식으로, 즉 오프체인 스토리지, 온체인 스토리지 검증을 통해 스토리지를 확장할 수 있는지 궁금해할 수 있습니다. 이 아이디어에 대해서는 나중에 더 자세히 설명하겠습니다.
위에서 언급한 DAPP 구성 요소를 분석한 결과, 저희는 DAPP의 각 부분이 충분히 안전하고 신뢰할 수 있는 전체로 작동해야만 진정한 탈중앙화 DAPP이 될 수 있다는 사실을 발견했습니다. 이더는 디앱을 실행하고 호스팅하는 플랫폼으로서 이더의 비전에 부합하는 앱 생태계를 조성하기 위해 개발자들에게 적절한 솔루션을 제공해야 합니다.
디앱을 위한 신뢰할 수 있는 솔루션
EthStorage 팀은 이더를 기반으로 디앱을 배포하고 액세스하는 방법을 중심으로 두 가지 솔루션을 제안했습니다:
web3:// 액세스 프로토콜
web3://는 http://의 탈중앙화 버전으로 생각하시면 됩니다. 서버 IP 주소나 도메인 이름을 지정하여 중앙화된 리소스에 액세스하는 http URL과 마찬가지로, web3 URL은 스마트 컨트랙트 주소나 ENS 도메인 이름을 지정하여 저장된 리소스에 액세스해야 합니다.
웹사이트의 전체 프런트엔드를 스마트 컨트랙트에 배포하고 web3://를 통해 액세스할 수 있습니다! 두 가지를 비교할 수 있습니다:
현재< strong> web3://는 공식 이더넷 표준(ERC-4804)이 되었으며, web3:// 액세스 프로토콜에 대해 자세히 알아보시려면 공식 웹사이트를 방문하시면 됩니다. 스마트 컨트랙트에서 파일 관리를 개선하기 위해 저희는 스마트 컨트랙트에서 파일 시스템 인터페이스 세트를 에뮬레이션하는 ERC-5018을 제안하여, ethfs-cli를 통해 패키지화된 프론트엔드 코드 폴더를 스마트 컨트랙트에 업로드하고 web3://를 통해 이 사이트에 액세스할 수 있도록 했습니다.
관심 있는 분들은 튜토리얼을 따라 간단한 탈중앙화 앱 배포와 접속을 완료할 수 있습니다.
웹3:// 액세스 프로토콜을 사용하면 dApp 프론트엔드를 "코드는 법이다"라는 속성을 실제로 만들 수 있습니다. 개발자에게 이 프론트엔드는 한번 배포되면 영원히 적용될 것입니다. 만약 유니스왑 연구소가 이더에 프론트엔드를 배포한다면, 프론트엔드 수준에서 사용자를 검열하고 제한하고 싶어도 사람들이 이더에서 프론트엔드를 사용하는 것을 막을 방법이 없을 것입니다.
물론 실현 가능성 문제를 해결한 후에는 대량의 데이터를 온체인에 저장하는 데 비용이 많이 들기 때문에 프론트엔드를 온체인에 배포하는 개발자들에게 문제가 될 수 있다는 사실도 깨달았습니다. 저희는 이더리움의 보안을 계승하면서 스토리지 오버헤드를 크게 줄이기 위해 이더스토리지 2계층 스토리지 프로토콜을 추가로 개발했습니다.
EthStorage 레이어 2 스토리지 프로토콜
EthStorage 프로토콜은 이더와 레이어 2 네트워크의 스토리지 노드에 배포된 스마트 컨트랙트로 구성됩니다. 스마트 컨트랙트가 키-값 저장소를 제공하고 레이어 2 스토리지 노드가 데이터 자체의 저장을 담당하는 네트워크입니다.
사용자는 EIP-4844의 블롭을 통해 저장할 데이터를 이더에 업로드하고, 이더스토리지 스마트 컨트랙트는 블롭에 데이터의 해시만 기록하므로 스토리지 비용을 효과적으로 절감할 수 있습니다.
동시에 보조 스토리지 노드는 해당 BLOB 데이터를 로컬 디스크에 다운로드하고 PoRA(무작위 접근 증명)와 ZK를 사용하여 저장 증명을 이더의 컨트랙트에 제출하여 이를 검증합니다. 컨트랙트는 이전에 기록된 블롭 해시를 사용하여 스토리지 노드가 업로드한 ZK 저장 증명이 올바른지 확인하여 2단계 네트워크의 스토리지 노드가 실제로 데이터를 저장하고 있는지 확인해야 합니다.
프로세스는 다음과 같습니다:
개발자의 경우 데이터를 업로드하고 데이터를 가져오는 인터페이스는 매우 간단합니다 :
앱 개발자는 이더스토리지가 제공하는 계약 인터페이스를 통해 대량의 데이터를 직접 읽고 쓸 수 있으며, 쓰기 비용은 데이터를 체인에 직접 저장하는 비용의 약 1/1000에 불과합니다. 결과적으로 이더스토리지에서는 프론트엔드의 온체인 배포를 지원할 뿐만 아니라 광범위한 키-값 저장소 데이터베이스 운영을 위한 저비용 솔루션을 제공합니다.
현재 이더리움의 공식 보조금을 받은 EthStorage는 누구나 참여할 수 있는 공개 테스트 네트워크를 세폴리아에 배포했습니다.
요약 및 전망
프론트엔드 및 데이터베이스와 같은 DAPP의 중요한 구성 요소 대부분은 이더넷에 배포되지 않았으며 이더넷의 보안을 상속할 수 없기 때문에 앱 전체가 영구적으로 실행될 수 없고 검열 저항성이 없으며 관리할 수 없습니다.
EthStorage는 이 문제를 해결하기 위해 스마트 컨트랙트를 사용하여 프론트엔드 배포 및 액세스 문제를 해결하기 위한 web3:// 액세스 프로토콜과 높은 스토리지 비용 문제를 해결하기 위한 EthStorage 2계층 스토리지 프로토콜이라는 두 가지 솔루션을 제안합니다.
이더넷의 원래 비전을 실현하기 위해 이더리움은 탈중앙화 웹 서버로 진화하고 있으며, 생태계의 탈중앙화 앱은 백엔드 코드, 프론트엔드, 데이터 등 모든 구성 요소를 이더리움에 배포하고, 한번 배포된 코드는 영원히 실행되고 데이터는 영원히 액세스할 수 있습니다.
이스토리지 오픈 베타 네트워크는 두 번째 인센티브 캠페인을 진행 중이며, 관심 있는 커뮤니티 회원은 가이드를 따라 첫 번째 Unstoppable Dapp 배포 및 액세스를 완료할 수 있습니다!