Web3.0 시대에 대한 Coinbase의 종합적인 분석과 해석
白泽研究院
2021-08-02 03:02
本文约8469字,阅读全文需要约34分钟
Web 3.0(사용자가 제어하는 ​​인터넷) 개발의 동기와 기술 분석

원래 제목: "웹 이해 3 - 사용자 제어 인터넷"

컴파일 | 베이즈연구소

컴파일 | 베이즈연구소

첫 번째 레벨 제목

텍스트

오늘날 인터넷에는 두 가지 주요 누락 속성이 있습니다.

- 신뢰할 수 있는 운영자와 독립적으로 "상태"를 보유하지 않습니다.

- 상태를 전송하는 기본 메커니즘이 없습니다.

상태가 없는 것은 HTTP 및 SMTP와 같이 웹이 기반으로 하는 프로토콜의 단순성 때문입니다. 어느 시점에서든 노드(인터넷에 연결된 장치)의 기록 또는 현재 상태를 쿼리할지 여부는 알 수 없습니다. 사용자 관점에서 이것은 새 브라우저(기록, 즐겨찾기, 저장된 설정 또는 자동 완성 없음)에서 처음으로 인터넷을 사용하고 인터넷에 연결된 모든 것을 사용할 때마다 사용하는 것과 같습니다. 서비스를 사용하려고 할 때마다 사용자 정보를 제출하거나 기기를 켤 때마다 좋아하는 앱을 모두 다운로드해야 한다고 상상해 보세요. 인터넷은 사용할 수 없거나 최소한 극도로 비효율적일 것입니다.

그러나 상태는 가치를 나타낼 수 있으므로 서비스 및 애플리케이션 개발에 매우 ​​중요합니다. 따라서 두 가지 주요 개발이 격차를 메웠습니다. 첫째, Brendan Eich가 강조한 것처럼 쿠키는 JavaScript로 작성된 웹 기반 애플리케이션이 각 장치에 로컬로 상태를 저장할 수 있도록 고안되었습니다. 그러나 쿠키의 문제점은 쿠키가 사용자가 아닌 서비스 제공자에 의해 생성되고 제어된다는 것입니다. 사용자는 상태를 제공하거나 상태에 액세스할 수 있는 공급자를 제어할 수 없습니다.

상태 부족을 해결하기 위한 두 번째 개발은 사용자 상태를 자체 시스템에 유지하는 중앙 집중식 서비스 공급자입니다. 오늘날 Google, Facebook과 같은 거대 인터넷 기업은 수십억 명의 국가를 소유하고 있으며 이들이 창출한 가치를 보유하고 있습니다. 사용자는 이미 동일한 회사에서 생성한 서비스와 가치의 혜택을 받고 있기 때문에 그 자체로는 잘못된 것이 없습니다. 문제는 인터넷이 일반 대중보다 이러한 중앙 집중식 회사에 어떤 이점을 제공하는지입니다.

인터넷의 두 번째 주요 누락 속성인 상태 전송을 위한 로컬 메커니즘의 부족은 부분적으로 첫 번째 문제의 부산물입니다. 상태(및 상태가 생성하는 값)를 보유할 수 없으면 전송할 수 없습니다. 가치를 쉽고 효율적으로 이전하는 능력은 경제 발전과 현대 금융의 핵심입니다. 가치 이전의 효율성을 높이는 모든 개선 사항은 계단식으로 긍정적인 효과를 가져올 것입니다. 오늘날의 인터넷은 정보 전송을 훨씬 쉽게 만들어 새로운 비즈니스와 서비스에 대한 막대한 잠재력을 창출합니다. 그러나 기업이 가치를 거래할 수 있는 쉬운 방법이 없다면 서비스를 통해 수익을 창출할 수 있는 다른 방법을 찾아야 합니다.

수년에 걸쳐 웹의 기존 비즈니스 모델이 광고가 된 이유는 광고 비즈니스가 수십억 사용자의 상태를 효율적으로 저장하고 전송할 수 있는 유일한 비즈니스이기 때문입니다. 다시 말하지만 광고 자체에는 잘못된 것이 없습니다. 그러나 이번에는 문제가 세 가지입니다.

- 제3자 중개인은 각 광고 거래를 촉진하고 이익을 얻습니다.

- 광고는 기존 사업에 유리하여 새로운 사업에 불리하고 경제의 성장 잠재력을 제한합니다.

- 풍부한 광고 경제는 더 많은 사용자 데이터(광고 모델을 공급하는 데 사용됨)에 의존하여 사용자와 열악한 사용자 경험에 대해 일관성 없는 인센티브를 생성합니다.

인터넷의 방향

NbRxeyZfj375FwKB2gie61uzIdzBBuHt64ARyyUU.png

웹 자체는 기술 발전입니다. 그것은 인간이 무엇을 하든 상관없는 파이프 묶음일 뿐입니다. 궁극적으로 인간은 그것을 가리킬 곳을 결정해야 합니다. 네트워크의 향후 1~2년 동안 더 나은 방향은 다음을 홍보하는 것입니다.

- 지역경제적 가치를 창출하는 참여자

- 이 기본 가치를 모든 참가자에게 전달합니다.

첫 번째 레벨 제목

Part2: Web3.0의 구성

1부에서 설명한 것처럼 오늘날의 인터넷은 상태 비저장 인터넷입니다. 참여자는 자신의 상태를 유지할 수 없으며 로컬에서 한 상태에서 다른 상태로 전송할 수도 없습니다. 비트코인을 시작으로 블록체인은 디지털 네이티브 방식으로 상태를 보존할 수 있는 방법을 제공했습니다. 암호화 및 블록체인 생태계에 있는 우리는 이 새로운 기본 기능을 Web 3.0이라고 부르기 시작했습니다. 아직 초기 단계지만, 어떤 이점이 있을지 대략적으로 파악하기 시작했습니다.

이미지 설명

AbXQZwGUHFIpngiroe78ucQpkKwEeD2KjYfnqrCS.png

이미지: 웹 3.0을 위한 모듈식 아키텍처

위 프레임의 레이어는 상단에서 시작하여 y축 아래로 구성됩니다. 색상은 서로 다른 계층에 있는 모듈 간의 호환성을 나타냅니다. 예를 들어 위에 표시된 오늘날의 암호 상품(노란색)은 EVM(파란색에서 노란색으로)과 호환되지만 비트코인 ​​스크립트(녹색에서 빨간색으로)와는 호환되지 않습니다. 결과적으로 EVM은 이더리움 블록체인(파란색)과 호환되지만 비트코인 ​​블록체인(녹색)과는 호환되지 않습니다. 이를 통해 비트코인 ​​스크립트와 호환되어 비트코인 ​​블록체인에 기록되는 미래의 암호 상품을 프레임워크에 넣을 수 있습니다(기술적 문제로 인해 그럴 가능성은 거의 없음). 이 모듈성은 Web 3.0의 견고성에 매우 중요합니다. 한 계층을 업그레이드하는 데 그 아래에 있는 모든 항목을 완전히 다시 작성할 필요가 없어야 하기 때문입니다.

상태 레이어

FTL3lYW020TnnXXGlZK0T2tyJhKix7qN46fEAJRx.png

상태 레이어는 그 아래에서 발생하는 모든 상태를 유지합니다. 거의 전적으로 블록체인 인프라에 의해 제공되며 선호하는 네트워크의 규칙을 준수하는 한 모든 참가자가 참여할 수 있습니다. 성공적인 네트워크의 목표는 오늘날의 DNS 공급자와 유사한 기본적이고 안정적인 인프라가 되는 것입니다. 의도한 대로 작동하면 아무도 인식하지 못하지만(99%의 경우) 그렇지 않으면 우리 모두가 고통을 겪습니다.

이 계층은 공용 계층 또는 개인/허가 계층일 수 있습니다. 상태는 기본적으로 단일하고 보편적인 진리이며 개인 레이어를 만드는 것은 평행 우주를 만드는 것과 유사하다고 주장할 수 있습니다. 퍼블릭 계층과 라이선스 계층 사이에는 기술적인 차이도 있지만 이 문서의 범위를 벗어나므로 개발자가 제품에 대한 디자인 선택을 맡게 됩니다.

컴퓨팅 계층

컴퓨팅 계층

V14PtBXMQ4TIcrbOHG550vmmmlULqRZeffEcXMKk.png

소프트웨어는 인간이 컴퓨터에 명령을 내릴 수 있게 해줍니다. 웹 3.0 계산 계층을 통해 인간은 상태 계층이 원하는 작업을 수행하도록 지시할 수 있습니다. 그러나 모든 컴퓨팅 계층에서 모든 작업을 수행할 수 있는 것은 아닙니다. 예를 들어 Bitcoin의 스크립트는 오더북 외부의 트랜잭션만 허용한다는 점에서 매우 제한적입니다. 다른 쪽 끝에 있는 이더리움 가상 머신(EVM)은 완전한 튜링 완전 머신이므로 EVM 지원 상태 계층에서 임의로 복잡한 계산을 수행할 수 있습니다.

애플리케이션 개발자(및 블록체인 개발자)를 위한 컴퓨팅 계층의 선택은 주어진 애플리케이션이 실행될 수 있는 블록체인을 결정하기 때문에 핵심 요소입니다. 예를 들어 EVM으로 컴파일된 모든 애플리케이션은 현재 이더리움 블록체인에서 실행할 수 있지만 비트코인 ​​블록체인에서는 실행할 수 없습니다. Ethereum Foundation은 Ethereum의 기본 컴퓨팅 계층을 WebAssembly 또는 WASM을 기반으로 하는 eWASM이라는 다른 기술로 변경하기 위해 노력하고 있습니다. Dfinity와 같은 다른 상태 계층 프로젝트도 WASM과 호환될 계획입니다. 이는 eWASM으로 컴파일된 애플리케이션이 이론적으로 이더리움 및 Dfinity 블록체인뿐만 아니라 WASM과 호환되도록 결정한 다른 블록체인에서 실행될 수 있음을 의미합니다.

구성 요소 레이어

8bS7YvXqi8Agd3wbWOZfvguMac9EFFwe4ZwIullh.png

상태 계층을 계산 계층과 결합하면 새로운 유형의 디지털 가치(일명 프로그래밍 가능한 화폐)를 위한 설계 공간을 1,000배 늘릴 수 있습니다. 그 결과 개발자들이 많은 실험을 하기 시작했습니다. 이러한 구현 중 일부는 전체 하위 경제가 주어진 구성 요소 위에 구축되는 것을 상상할 수 있는 잠재력(아래 예)을 가지고 있습니다. Coinbase의 제 동료인 Jacob Horne은 이 현상(프로토콜 계층과 함께)을 암호 경제의 기본 요소로 설명하고 그 중 하나인 암호 상품에 대한 심층 연구를 수행했습니다.

구성 요소는 표준화된 스마트 계약 템플릿을 재사용하여 컴퓨팅 계층에 구축됩니다. OpenZeppelin은 이러한 템플릿에 액세스하기 위한 완벽한 리소스입니다. 구성 요소 생성자는 상태 계층에 새로운 스마트 계약을 게시해야 합니다.

이러한 구성 요소의 예는 다음과 같습니다.

- 네이티브 통화: 퍼블릭 블록체인의 필수이자 핵심 부분입니다. 모든 참가자에게 블록체인 수수료를 지불하고 일반적으로 트랜잭션의 형태로 원하는 서비스를 받을 수 있는 권리를 부여합니다. 예: 비트코인, 이더리움

- Cryptoassets: 기본 기능 세트 및 관련 메타데이터가 있는 대체 가능한 자산. 누구나 자신의 통화를 만들 수 있었기 때문에 ICO 열풍을 일으켰습니다. 통화 외에도 주식, 채권, 소유권과 같은 많은 다른 자산 유형을 디지털화할 수 있습니다. 가장 일반적인 표준은 ERC-20입니다.

- Crypto-commodities: 기본 기능 집합과 이와 관련된 풍부한 메타데이터 집합을 가진 대체 불가능한 자산. NFT(Non-Fungible Token) 또는 암호화 수집품이라고도 합니다. CryptoPunks를 탐색하고 인기 있는 CryptoKitties를 만드는 것으로 시작하십시오. 수집품, 게임 자산, 액세스 권한, 아트워크와 같은 고유한 항목을 디지털화할 수 있습니다. 가장 일반적인 표준은 ERC-721입니다.

- ID: ID 정보에 대한 자주적 컨테이너입니다. 그 자체로는 인식하는 것에 대한 귀중한 정보를 거의 제공하지 않습니다. 그러나 정부 또는 기타 신뢰할 수 있는 당사자(예: Google, Coinbase)와 같은 여러 출처에서 올 수 있는 컨테이너와 관련된 클레임을 허용합니다. 주요 제안은 ERC-725/ERC-735 및 uPort에 대한 일부 프로토콜 제안입니다. ENS(Ethereum Naming Service)는 다른 유형의 식별자로도 관련성이 높습니다.

- Stablecoins: 미국 달러의 가치와 같이 출처에 고정된 안정적인 가치를 지닌 암호화 자산. 다양한 유형의 이론 및 실제 솔루션이 있는 매우 복잡한 문제입니다. 몇 가지 예로 TrueUSD, Dai 및 Reserve가 있습니다.

프로토콜 계층

TsvjFyAjAuWq53bWpu3KsDCeH3yoSkRpkx42JDXm.png

상태 레이어에 구성 요소가 생성되면 활성 상태로 만들어야 합니다. 특정 기능은 이러한 구성 요소의 수명 주기에서 매우 중요하고 공통적이어서 표준화되고 있습니다. 이러한 기능은 동일한 언어(따라서 프로토콜 계층)를 사용해야 할 뿐만 아니라 네트워크 효과로 인해 더 효율적이기 때문입니다. 이러한 프로토콜은 기본적으로 실제 세계에서와 마찬가지로 관련 구성 요소에 대한 건전한 시장을 형성할 수 있으며 훨씬 더 저렴하고 효율적입니다.

다양한 프로토콜이 주목을 받기 시작했습니다. 이들은 프로토콜을 개발하는 팀이 배포하고 관련 기능을 구성 요소에 적용하려는 모든 애플리케이션에서 호출하는 정식 스마트 계약의 형태를 취합니다.

- 거래: 구성 요소가 가치를 가지려면 거래가 가능해야 합니다. 트랜잭션 프로토콜을 사용하면 무신뢰 방식으로 자산의 지갑 간 트랜잭션이 가능합니다. 이러한 "릴레이어"를 스마트 계약에 자산을 호스팅하는 대부분의 "탈중앙화 거래소"와 구별하는 것이 중요합니다. 트랜잭션 프로토콜을 통해 촉진된 트랜잭션은 트랜잭션 자산을 관리하지 않습니다. 일부 주요 프로젝트에는 0x 및 Kyber Network가 포함됩니다. 0x 프로토콜이 지원하는 일일 거래량에 대해 자세히 알아보려면 여기를 방문하십시오.

- 대출: 대출은 그렇지 않으면 0이 될 수 있는 투자 수익을 촉진하기 때문에 자산의 효율성을 높입니다. 표준 대출 계약을 통해 미국에 있는 한 사람이 짐바브웨에 있는 다른 사람에게 스마트폰에서 스마트폰으로 돈을 빌려줄 수 있습니다. Dharma와 ETHLend는 현재 이 공간에서 두 개의 주요 프로젝트입니다.

- 파생상품: 파생상품 시장은 전 세계적으로 1조 2천억 달러로 추산되는 세계 최대 시장입니다. 파생 상품을 프로토콜로 구축하면 상태 계층에 고유한 구성 요소에 대한 신뢰할 수 없는 시장이 가능합니다. dy/dx와 Market Protocol은 이 분야의 두 가지 프로젝트입니다.

확장성/전송 계층

DRJZaVWo1HDDkGGW8RNAndZ8SL3TqoO0WpMFT6A4.png

블록체인은 확장성 문제로 유명합니다. 비트코인 블록체인의 트랜잭션 용량은 초당 7 트랜잭션이고 이더리움의 트랜잭션 용량은 초당 15 트랜잭션입니다. 블록체인 자체가 초당 수천 건의 트랜잭션을 용이하게 하기 위해 양보해야 하는지에 대해 많은 논쟁이 있지만 일반적으로 강력한 토폴로지를 지원하려면 상태 전송을 위한 다른 계층(계층 2 확장성이라고도 함)이 필요하다는 데 동의합니다. 기본 블록체인의 컴퓨팅 계층과 호환되어야 합니다.

이를 수행하는 방법에 대한 다양한 제안이 있습니다. 여기 몇 가지 예가 있어요.

지불 채널: 지정된 국가 통화의 이체만 허용합니다. 이는 상태 계층에 연결된 트랜잭션의 검증 가능한 서명을 통해 수행됩니다. 분쟁을 촉진하기 위해 자금을 예치해야 합니다. 예: 비트코인용 조명 네트워크, 이더리움용 Raiden, 이더리움용 SpankChain의 Vynos 구현.

상태 채널: 모든 상태의 전송을 허용합니다. 이는 상태 계층 트랜잭션에 첨부된 검증 가능한 서명을 통해 수행됩니다. 분쟁을 촉진하기 위해 자금을 예치해야 합니다. 예: Counterfactuals for EVM, Celer Network for EVM, Arcadeum for EVM, FunFair's Fate Channel for EVM, Connext for EVM.

사이드체인: 모든 상태를 전송할 수 있습니다. 메인 체인과 호환되는 다른 블록체인에 의해 수행됩니다. 사이드 체인은 메인 체인의 컴퓨팅 레이어와 통신할 수 있어야 합니다. 또한 분쟁을 촉진하기 위해 자금을 잠가두어야 합니다. 사이드체인은 중앙에서 또는 비공개로 관리되는 인프라일 수 있습니다. 예: EVM용 PoA 네트워크, EVM용 Loom 네트워크, EVM용 Plasma Framewok. 사용자가 자산을 컴퓨팅 계층으로 안전하게 인출할 수 있다는 확신을 사용자에게 제공하기 위해 추가 요구 사항이 Plasma에 내장되어 있다는 점에 유의해야 합니다(다양한 구현이 있음). 이런 식으로 가치 제안은 상태 및 지불 채널과 더 유사합니다.

이제 다섯 번째 계층에 도달했으므로 이 모듈식 스택을 통해 개발자가 구축할 블록체인과 같은 독립적인 하위 수준 설계 선택을 할 수 있는 방법을 볼 수 있습니다. 가까운 미래에 eWASM으로 컴파일되고 Ethereum에서 실행되며 Counterfactual 상태 채널과 호환되는 가상의 스테이블 코인 스마트 계약을 예로 들어 보겠습니다(즉, 상태 채널에서 전송될 수 있음). 앞서 언급한 스테이블 코인에 대한 동일한 코드는 이론적으로 EOS 및 Dfinity 블록체인 모두와 호환됩니다. 둘 다 WASM을 실행하기 때문입니다. 이러한 블록체인에서 실행되는 유사한 상태 채널로 전송될 수도 있습니다.

사용자 제어 계층

UXKoVFNK3LgDBAYibOPcF3HRiG6MiYEkLc0de5HB.png

이 계층까지는 일반 사용자가 명령줄 인터페이스를 통해 컴퓨팅 계층과 직접 대화하지 않는 한 생성된 기능을 사용하는 것이 거의 불가능합니다. 이 계층의 주요 기능은 사용자의 개인 키를 관리하고 상태 계층에서 트랜잭션에 서명할 수 있도록 하는 것입니다. 상태 계층의 트랜잭션은 사용자 계정의 상태를 변경하므로 사용자가 Web 3 애플리케이션과 상호 작용하는 방식의 핵심입니다.

지갑에는 두 가지 유형이 있습니다.

- 커스터디 지갑: Coinbase 또는 기타 암호화폐 거래소에서 대중화되었으며, 상태 계층에서 제한된 독점 잔액 집합을 제어하여 사용자를 대신하여 자금을 관리합니다. 이들은 사용자의 자금을 집계된 계정으로 풀링하여 상태 계층 외부에서 개별 사용자의 상태를 관리할 수 있습니다. 이러한 작업은 금전적 가치만 고려한다면 실현 가능하고 경제적일 수 있지만 웹 3 애플리케이션이 가져오는 상태의 양이 증가함에 따라 더욱 복잡해집니다.

또한 사용자마다 전용 블록체인 지갑을 관리하고 탈중앙화 애플리케이션을 사용할 수 있도록 하는 새로운 유형의 관리형 지갑의 예도 있습니다. 이는 유연성의 추가 개선을 약속하지만 아직 대규모로 시연되지 않았습니다.

- 사용자 제어 지갑: Web 3에서 지원하는 임의의 복잡한 작업을 모두 사용할 수 있는 보다 유연하고 간단한 방법을 제공합니다. 지갑을 사용자 제어 지갑으로 만드는 것은 사용자 개인 키의 로컬 보관 및 각 트랜잭션의 로컬 서명입니다. 즉, 지갑 소프트웨어는 제3자가 사용자를 대신하여 트랜잭션을 제출할 수 있는 방식으로 사용자의 개인 키를 복제하지 않습니다.

이것은 모든 기본 최종 사용자 접점이므로 사용 가능한 모든 기능은 이 계층을 통해 액세스하는 애플리케이션에 노출되어야 합니다. 이것은 일반적으로 web3.js와 같은 프론트엔드 라이브러리로 수행됩니다. 이 기사의 3부에서는 이 모든 것이 어떻게 조화를 이루는지 자세히 살펴봅니다.

애플리케이션 계층

B6RhNlwAK9q2lajfqStofFkBoB6om5ct8onTE5cx.png

기존 웹과 마찬가지로 Web 3의 대부분의 활동은 아래의 모든 계층에 구축된 타사 애플리케이션을 통해 이루어집니다. 예를 들어 cryptokitties.co 또는 kittyrace.com 또는 cryptogoods.com과 같은 CryptoKitties를 사용하는 응용 프로그램을 통해 모든 기능이 제공되기 때문에 사용자는 CryptoKitties(즉, cryptogoods)의 가치를 깨닫습니다. Web 3에 구축된 응용 프로그램은 기존 웹 응용 프로그램과 속성 및 요구 사항이 다르기 때문에 종종 분산형 응용 프로그램 또는 DApp이라고 합니다. Matt Condon이 말했듯이 DApp은 수백만 명의 사용자가 사용하려면 기존 앱과 구별할 수 없어야 합니다.

그러나 탈중앙화로 가능해진 새로운 기능은 정확히 DApp을 강력하게 만들고 스택이 성숙함에 따라 오늘날의 웹을 넘어서 사용되는 것을 볼 수 있는 이유입니다. 우리는 전 세계 개발자들이 다양한 범주의 최첨단 사용 사례를 만들고 사용자가 가치가 있다고 생각하는 곳에 돈을 투자하여 반응하는 것을 보았습니다.

-자금 조달: 200억 달러 모금, 723,000개의 고유 계정 참여, 8,000개 이상의 회사가 투자를 받았습니다. 공간에서 사기 행위가 발생했지만 이 기사의 날짜를 기준으로 참여 계정 수를 기준으로 가장 인기 있는 앱 범주입니다. 또한 규제된 ICO를 촉진하는 많은 새로운 자금 조달 플랫폼에서 볼 수 있듯이 그 매력은 계속됩니다.

- 교환: 전통적인 암호화 교환은 귀하와 상태 계층 사이에서 중개자 역할을 하며(수탁 지갑 역할을 함) 웹 3 지원 응용 프로그램으로 구축된 교환은 사용자가 제3자 지갑에 입금하는 대신 자금을 통제할 수 있도록 합니다. 주소. 또한 트랜잭션 경험에 잠재적인 UX 이점이 있습니다. 많은 다른 프로젝트가 일부 기술적 문제를 극복하기 위해 노력하고 있지만 이 영역에서 사용량이 증가하는 것을 보았습니다.

첫 번째 레벨 제목

3부: 개발자는 웹 3.0을 어떻게 구축합니까?

웹 2.0 및 웹 3.0 아키텍처

오늘날 Web 2.0 아키텍처의 간단한 버전은 클라이언트 소프트웨어(일반적으로 브라우저 또는 독립 실행형 애플리케이션)와 콘텐츠 및 논리를 제공하는 일련의 서버로 구성되며 모두 동일한 엔터티(우리는 이를 게임 회사라고 함)에 의해 제어됩니다. 이 모델에서 Game Co.는 누가 서버의 콘텐츠와 논리에 액세스할 수 있는지, 어떤 사용자가 해당 콘텐츠를 얼마나 오래 보관하는지에 대한 추적 기록을 가지고 있는지에 대한 단독 제어권을 가집니다. 기술 역사의 페이지에는 인터넷 회사가 자신이 만든 가치를 보존할 권리가 없는 사용자에게 규칙을 변경하거나 서비스를 중단한 사례가 많이 있습니다.

Web 3.0 아키텍처는 공통 상태 계층에서 지원하는 기능을 활용합니다. 다음 두 가지를 허용하여 이를 수행합니다.

- 애플리케이션이 퍼블릭 블록체인에 콘텐츠 및 로직의 일부 또는 전부를 배치할 수 있습니다. 표준 Web 2.0과 달리 이 콘텐츠와 논리는 누구에게나 노출되고 액세스할 수 있습니다.

- 사용자가 이 콘텐츠와 로직을 직접 제어할 수 있습니다. Web 2.0과 달리 사용자는 블록체인의 콘텐츠와 상호 작용하기 위해 반드시 계정이나 권한 있는 API 키가 필요하지 않습니다.

Web 3 애플리케이션은 두 가지 주요 인프라 조각의 도움으로 이를 달성합니다.

  • 지갑: Web 3 스택의 사용자 제어 계층인 것 외에도 Coinbase Wallet과 같은 최신 지갑은 원활한 사용자 경험을 위해 기본 클라이언트 프런트 엔드와 상호 작용합니다. 그들은 응용 프로그램이 표준 라이브러리를 사용하여 지갑 자체에 요청을 보낼 수 있도록 허용함으로써 이를 수행합니다. web3.js가 가장 많이 사용됩니다. web3.js 호출의 예는 사용자에게 지갑이 애플리케이션 주소로 지정된 금액을 보낼 수 있는지 확인하도록 요청하는 결제 요청일 수 있습니다. 사용자가 수락하면 두 가지 일이 발생합니다. 1) 지갑은 "결제 제출됨" 화면을 표시할 수 있도록 응답하여 앱 프런트엔드에 알립니다. 2) 지갑은 블록체인 서버에 RPC 호출을 보내 승인된 트랜잭션을 구역 블록체인. 여기에서 두 번째 인프라 부분이 시작됩니다.

  • 차단하다차단하다체인 노드 공급자(예:Infura차단하다차단하다체인 노드도 마찬가지입니다. 지갑이 블록체인에 트랜잭션을 제출하거나 블록체인에서 상태 정보를 쿼리하려는 경우 노드 공급자를 호출합니다. 응용 프로그램의 응용 프로그램 서버는 응용 프로그램의 논리를 최신 상태로 유지하기 위해 유사한 RPC 호출을 만들어 노드 공급자 자체와 상호 작용할 수도 있습니다.

도구 및 프레임워크

사용할 도구와 프레임워크를 알고 능숙하게 사용하는 것은 모든 개발자의 삶에서 중요한 부분입니다. Web 3 공간은 아직 초기 단계이지만 개발자가 MVP 단계에 도달하고 더 빠르게 반복할 수 있는 도구를 제공하기 시작했습니다. 이것은 커뮤니티의 많은 사람들의 노력으로 인해 개발자들이 몰려들기 시작한 이더리움에서 가장 분명했습니다.

디자인 선택

- 탈중앙화: 이것은 새로운 핵심 옵션입니다. 대부분의 초기 개발자들의 목표는 가능한 한 분산화되고 모든 것을 블록체인에 넣는 것입니다. 그러나 오늘날 블록체인의 느리고 비용이 많이 드는 특성을 고려할 때 이는 대규모로 불가능합니다. CryptoKitties는 일부 부분을 중앙 집중식으로 유지하려는 최초의 DApp일 수 있습니다. 예를 들어 그들의 번식 논리는 공개되지 않습니다. 그들은 이것에 대해 약간의 비판을 받았지만, 사용자가 이 논리로 자란 고양이에게 막대한 돈을 쓰는 것을 막지는 못했습니다. Gods Unchained는 또 다른 예입니다. 게임 자체는 표준 클라우드 인프라에서 호스팅되지만 자산의 소유권은 상태 계층에서 추적됩니다.

많은 DApp이 탈중앙화에 대해 서로 다른 접근 방식을 취하겠지만, 이 선택에 접근하는 첫 번째 원칙 접근 방식은 "최소 실행 가능한 공개 상태" 접근 방식입니다. 사용자가 자산을 소유할 수 있는 게임을 만들고 있다면 소유권은 블록체인에 있어야 합니다. 예측 시장을 구축하는 경우 시장 보고 및 지불금은 블록체인에 있어야 합니다. 하루가 끝나면 사용자는 앱이 지원하는 주요 활동에 대한 진정한 소유권을 가질 수 있다면 앱이 가치 있다는 것을 알게 될 것입니다.

- 웹 앱 대 네이티브 앱: 이것은 수십 년 된 선택이지만 웹 3 앱에서 새로운 형태를 취하고 있습니다. 오늘날 대부분의 DApp은 두 가지 간단한 이유 때문에 웹 앱입니다. a) 사용자가 매번 새 앱을 다운로드할 필요가 없으며 b) 사용자가 매번 새 지갑을 만들지 않고도 앱을 사용할 수 있습니다. 소수의 기존 기본 DApp은 모두 사용자가 새로운 지갑을 만들도록 유도하며 이는 이상적인 사용자 경험이 아닙니다. 사용자가 수백 개의 지갑에 대한 키를 유지하지 않을 것이기 때문에 이것이 실행 가능한 미래가 아니라는 것을 쉽게 알 수 있습니다. 가까운 장래에 네이티브 앱이 이 UX 문제를 극복할 수 있는 더 원활한 방법이 있을 것이지만 현재로서는 웹 앱을 통해 더 쉬운 온보딩 경험을 할 수 있습니다.

- 데스크톱 대 모바일: 이 선택의 Web 3 버전은 둘 중 하나를 선택하는 것이 아니라 사용자가 둘 모두에서 DApp을 사용하는 방법에 관한 것입니다. 데스크톱에서 MetaMask와 같은 Chrome 확장 프로그램은 대부분의 사용자가 DApp과 상호 작용하는 방식이었습니다. 사용자가 새 확장 프로그램을 다운로드해야 하지만 사용자는 여전히 친숙한 브라우저 인터페이스와 상호 작용하고 있습니다.

그러나 모바일 장치에서는 적어도 iOS에서는 확장이 불가능합니다. 이것이 Coinbase Wallet과 같은 지갑 응용 프로그램이 응용 프로그램 내에 브라우저를 배치하는 이유입니다. 브라우저 보기에서 DApp 경험은 데스크톱과 동일합니다. 또한 모바일 장치용으로 개발할 때 알아야 할 몇 가지 기술적 뉘앙스가 있으며, Coinbase Wallet의 엔지니어링 이사인 Pete Kim이 여기에서 자세한 내용을 다룹니다.

지금까지 해결책이 없는 다른 과제:

- 누가 가스 비용을 지불하는지: 오늘날 이더리움에 구축된 모든 DApp은 사용자가 이더리움 블록체인의 가스라고 하는 거래 비용을 지불하게 합니다. 수백만 명의 암호화되지 않은 기본 사용자가 Web 3 응용 프로그램을 사용하려는 경우 장기적으로 실현 가능하지 않습니다. 많은 이론적 해결책이 있으며 그 중 일부는 가스 중계기와 같이 실용성에 가깝지만 아직 실용적인 것은 없습니다.

- 애플리케이션 특정 계정 여부: Web 3의 흥미로운 애플리케이션 중 하나는 범용 ID입니다. 오늘날에는 기능적 ID 솔루션이 많지 않기 때문에 일부 DApp은 여전히 ​​사용자가 특정 ID를 앱에서의 활동과 연결하기 위해 계정을 생성하도록 요구하고 있습니다. 이것은 Web 2.0 방식과 크게 다르지 않습니다. 기능적인 분산 ID 솔루션이 있으면 DApp은 이를 어떻게 취급하고 제시해야 합니까? 명확한 답은 없지만 ERC-725 및 735로 구축된 Origin 데모와 같은 일부 사람들이 제안했습니다.

白泽研究院
作者文库