Web 3.0 아키텍처는 단순히 탈중앙화된 것이 아니라 모듈화된 것입니다
저자:Xiang,W3.Hitchhiker
1. Web 2.0 아키텍처
Web2.0 애플리케이션의 예로 중앙화 거래소 Binance를 들 수 있습니다. Binance는 사용자가 다양한 토큰을 거래할 수 있도록 허용합니다.
Binance는 Web 2.0 애플리케이션으로, 아키텍처는 간단하게 들리지만 실제 개발에서는 많은 작업이 필요합니다.
사용자는 네트워크 운영자를 통해 장치를 연결한 후 브라우저를 열고 Binance의 도메인을 입력하여 http 프로토콜을 통해 Binance 웹사이트에 접근해야 합니다.
Binance는 사용자가 휴대폰이나 이메일을 통해 플랫폼에 등록하고 로그인해야 합니다.
그런 다음 Binance는 사용자 등록 정보, 거래 한도, 거래 내역, 주문 등과 같은 기본 데이터를 저장할 장소가 필요합니다. 이를 위해 데이터베이스를 구축하고 지속적으로 업데이트해야 합니다.
또한, 백엔드 코드 언어(예: Node.js, Java 또는 Go)는 Binance의 모든 비즈니스 논리를 결정합니다. 백엔드 논리를 실행하기 위해 서버를 구축해야 합니다. 예를 들어, 새로운 사용자가 등록하거나 거래할 때, 주문이 발생하면 어떤 일이 일어날까요?
또한, 프론트엔드 코드 언어(JavaScript, HTML 및 CSS)는 Binance의 UI 논리를 결정합니다. 프론트엔드의 상호작용 논리를 실행하기 위해 서버를 구축해야 합니다. 예를 들어, 웹사이트는 어떤 모습인가요? 사용자가 페이지의 각 버튼과 상호작용할 때 어떤 일이 발생하나요?
Binance에서 거래를 작성할 때, 이 모든 것이 통합되어 상호작용합니다. 사용자는 프론트엔드와 상호작용하고, 프론트엔드는 백엔드와 상호작용하며, 백엔드는 데이터베이스와 상호작용합니다. 모든 코드는 중앙화된 서버에 호스팅되며, 인터넷 브라우저를 통해 사용자에게 피드백됩니다. 중앙화된 서버의 모든 제어권은 Binance에 있습니다.
이는 오늘날 대부분의 Web 2.0 애플리케이션의 작동 원리에 대한 간단한 요약이며, 실제로는 더 복잡합니다.
2. Web 3.0 아키텍처
Web 3.0 애플리케이션의 예로 Uniswap을 들 수 있습니다. Uniswap은 중앙화되지 않은 거래소로, 다양한 토큰을 자유롭게 추가하고 거래할 수 있습니다.
Uniswap은 Web 3.0 애플리케이션으로, 아키텍처는 복잡하게 들리지만 실제 개발 구현은 간단합니다.
먼저, 사용자는 장치를 통해 네트워크에 연결해야 하며, 통신사와 같은 네트워크 서비스 제공자를 통해 연결해야 합니다. (탈중앙화된 네트워크 서비스 제공자, IoT: Helium)
그런 다음 사용자는 브라우저나 운영 체제를 통해 프로그램에 접근해야 합니다. (탈중앙화된 브라우저 또는 운영 체제: Brave)
사용자는 브라우저를 통해 서버와 상호작용해야 하며, 이 작업은 프로토콜을 통해 지원되어야 합니다(전통적으로 http, 새로운 것은 IPFS로 대체될 수 있으며, 콘텐츠 주소 지정 방식으로 접근합니다).
Uniswap은 사용자가 개인 키와 지갑을 통해 로그인해야 합니다. (**유사한 플러그인, 지갑 등: Metamask, Tokenpocket, Math, *Brave 지갑), 또한 통합된 DID도 미래의 방향 중 하나입니다. (유사한 ENS 등*)
지갑은 블록체인 노드에 연결해야 하며, 이때 노드의 서버가 필요합니다. 이는 해당 블록체인의 노드가 필요하거나 Infura/Alchemy와 같은 전문 노드 서비스 제공자가 제공해야 합니다. (탈중앙화된 노드 서비스 제공자도 하나의 트렌드입니다: Pocket)
Uniswap 웹사이트는 어떤 모습이며, 사용자가 페이지의 각 버튼과 상호작용할 때 어떤 일이 발생할까요? 여전히 JavaScript, HTML 및 CSS와 같은 프론트엔드 코드 언어가 Uniswap의 UI 논리를 구현합니다.
하지만 Web3는 자체적으로 서버를 구축하여 프론트엔드의 상호작용 논리를 실행할 필요가 없습니다. 이러한 프론트엔드 데이터는 탈중앙화된 저장 네트워크에 저장될 수 있습니다. (예: Filcoin, SWARM, AR 등)
다음은 Uniswap의 공식 IPFS 링크입니다. 이 솔루션은 프론트엔드 서버를 구축할 필요가 없으며, 사용자는 정상적으로 사용할 수 있습니다.
ipfs://bafybeiagkgmmhux6fswdoedmwqqsvt5arjivl35wuk25jljb2yqgn7njgu/#/swap
위 링크는 ipfs://로 시작하므로, ipfs를 해석할 수 있는 브라우저에서 열어야 합니다. (Brave, Opera)
또한 이 링크는 사람이 읽을 수 없으므로, 도메인 서비스가 필요하여 해당 도메인을 이 링크에 매핑해야 합니다. 예를 들어 uniswap.eth. (탈중앙화된 도메인 서비스: IPNS, ENS 등)
물론 IPFS는 Http와 호환되는 게이트웨이를 통해서만 접근할 수 있습니다.
웹사이트의 방문량이 많을 때는 더욱 유연한 대역폭 시장이 필요합니다 ------ CDN 가속 네트워크. (**CDN 서비스, IPFS, *Filecoin 검색 시장*)
Uniswap은 블록체인 스마트 계약 언어인 solidity 등을 통해 구현되며, Uniswap의 모든 비즈니스 논리를 결정합니다. EVM 환경에서 실행되기 때문에 Uni는 자체적으로 서버를 구축하여 백엔드 비즈니스 논리를 실행할 필요가 없습니다. (스마트 계약을 지원하는 블록체인, ETH 등)
하지만 거래소가 보여줘야 할 것은 비즈니스 논리뿐만 아니라, 가격의 역사적 가격 곡선, 거래 한도 등도 필요합니다. 이러한 역사적 데이터는 스마트 계약을 통해 얻을 수 없습니다. 프로젝트 측에서 이를 보여주고자 한다면, 여전히 자체적으로 서버를 구축하고 노드를 실행하여 체인상의 데이터를 필터링하여 Uni의 데이터베이스에 저장해야 합니다. 따라서 Web3는 체인 데이터 인덱스 솔루션이 필요합니다. (체인 데이터 인덱스 플랫폼 Graph)
The Graph는 체인 데이터 인덱스 솔루션을 제공하여 사용자가 데이터를 쉽게 조회할 수 있도록 합니다. The Graph에서는 어떤 스마트 계약을 인덱싱할지, 어떤 이벤트와 함수 호출을 모니터링할지 정의할 수 있으며, 호출 시 및 생성 시의 상태를 포함하여, 전달된 이벤트를 프론트엔드 논리에서 처리할 수 있도록 변환하는 방법을 규정할 수 있습니다.
체인상의 데이터 저장은 전문 Graph 인덱스 채굴 노드에 의해 저장되며, 해당 인덱스 노드는 사용자 페이지에서 호출할 수 있는 API를 제공합니다. 프로젝트 측에서는 서버를 구축할 필요가 없으며, 인덱스 노드만 서버를 구축하여 인덱스 데이터 채굴 노드를 실행하면 됩니다.
체인 데이터 인덱싱을 통해 The Graph는 애플리케이션 논리에서 체인상의 데이터를 조회할 수 있게 하며, 거의 지연이 발생하지 않습니다.
예를 들어 Uniswap 거래 정보의 표시가 바로 The Graph를 통해 생성됩니다.
Uniswap이 더 많은 것을 표시하고 싶다면, 체인 외부의 가격 데이터를 체인상에 표시해야 하며, 이때 체인 외부와 체인 내부 데이터 간의 다리를 연결해야 합니다. (탈중앙화된 오라클: chainlink)
위의 개발 논리에 따르면, Uniswap은 Web 3.0 애플리케이션을 출시한 것과 같지만, 실제 구현 비용은 Binance 거래소를 개발하는 비용보다 훨씬 낮습니다. 그 이유는:
- Uniswap은 사용자가 이메일이나 휴대폰을 바인딩할 필요가 없으며, 지갑을 통해 직접 로그인할 수 있습니다. Uni 자체도 저장할 필요가 없습니다.
- Uniswap은 프론트엔드 서버를 구축할 필요가 없으며, 사용자는 IPFS 또는 AR을 통해 프론트엔드 페이지에 접근할 수 있습니다.
- 백엔드 서버를 구축할 필요가 없습니다. 백엔드 논리는 스마트 계약에서 실행됩니다.
- 데이터베이스를 구축할 필요가 없으며, 역사적 데이터와 데이터베이스 작업은 The Graph를 통해 구현됩니다.
전문가는 전문적인 일을 해야 하며, Uniswap은 자신의 논리를 잘 설계하고 나머지 논리는 모듈화된 Web3 인프라가 지원하도록 해야 합니다.
이렇게 Uniswap은 완전한 탈중앙화를 실현했을 뿐만 아니라 Web3 모듈화의 간단한 애플리케이션 사례이기도 합니다.
Web3의 핵심은 신뢰할 수 없는 가치의 상호작용이며, 모듈화된 발전은 신뢰할 수 없는 것을 실현할 수 있을 뿐만 아니라 운영 효율성을 높일 수 있습니다. 모듈화의 트렌드는 모든 산업에 적용될 것입니다.
앞서 언급한 Web3 네트워크 아키텍처의 모듈화는 Web3의 생성력 효율성을 높였으며, Web3의 생산 관계 효율성을 어떻게 높일 수 있을까요? (Web2의 생산 관계는 주로 회사 중심이며, Web3의 생성 관계는 DAO이며, DAO의 모듈화도 미래의 트렌드입니다.) DAO는 블록체인에 의존하며, 블록체인 자체도 모듈화로 나아가고 있습니다. 마찬가지로 메타버스, 게임 등도 그러합니다.
모듈화 시대의 도래는 더 높은 효율성과 더 나은 서비스를 가져올 것이며, W3Hitchhiker는 crypto의 모듈화 경로를 지속적으로 추적할 것입니다.