Coinbase 對 Web3.0 時代的全面梳理與萬字解讀

買賣虛擬貨幣

原文標題:《瞭解 Web 3 — 使用者控制的網際網路》

原文作者 | Emre Tekisalp

編譯 | 白澤研究院

這篇由 3 部分組成的文章重點介紹網際網路歷史上的最新章程— Web 3 的原因、內容和方式。第 1 部分解釋了當今網路的缺點以及 Web 3 如何改進;第 2 部分重點介紹 Web 3 的運作模式是什麼;第 3 部分重點介紹開發人員如何在其上進行構建。

Part1:為什麼 Web3.0 是網際網路的下一章程?

今天的網際網路有兩個關鍵的缺失屬性:

-它不持有“狀態”,獨立於受信任的運營商

-它沒有本地機制來傳輸狀態

缺乏狀態是 Web 構建協議的簡單性的結果,例如HTTP和SMTP。在任何時候,如果您要查詢節點(連線到網際網路的裝置)的歷史或當前狀態,它都不知道。從使用者的角度來看,這就像第一次從新瀏覽器(沒有歷史記錄、收藏夾、儲存的設定或自動完成)使用網際網路,每次使用任何連線到網際網路的東西。想象一下,每次您嘗試使用某項服務或每次開啟裝置時下載所有喜愛的應用程式時,都必須提交您的使用者資訊。網際網路將無法使用,或者至少效率極低。

然而,狀態對於服務和應用程式的開發至關重要,因為它可以代表價值。因此,兩個關鍵的發展已經彌補了缺陷。首先,正如 Brendan Eich 強調的那樣,cookie 的發明是為了讓用 JavaScript 編寫的基於 Web 的應用程式儲存每個本地裝置上的狀態。然而,cookie 的問題在於它們是由服務提供商建立和控制,而不是使用者。使用者無法控制哪個提供者為他們提供狀態或有權訪問他們的狀態。

解決狀態缺失的第二個發展是集中式服務提供商,它們在自己的機器上儲存使用者狀態。如今,谷歌和 Facebook 等大型網際網路公司都擁有數十億人的國家,以及由此創造的價值。這本身並沒有錯,因為他們的使用者已經從同一家公司創造的服務和價值中受益。問題在於網際網路如何使這些中心化公司比公眾受益更多。

網際網路的第二個關鍵缺失屬性,即缺乏傳輸狀態的本地機制,部分是第一個問題的副產品。如果你不能持有狀態(以及它創造的價值),你就不能轉移它。輕鬆高效地轉移價值的能力是經濟發展和現代金融的核心。任何提高價值轉移效率的改進都會產生級聯的積極影響。今天的網際網路使資訊傳輸變得更加容易,數量級也因此為新的業務和服務創造了巨大的潛力。然而,如果企業沒有簡單的方法來交易價值,他們需要找到另一種方式來從他們的服務中獲利。

這就是為什麼多年來,網路現有的商業模式變成了廣告,因為廣告業務是唯一可以有效儲存和傳輸數十億使用者狀態的業務。同樣,廣告本身並沒有錯。但這次的問題是三個方面:

-第三方中介促進每筆廣告交易並從中獲利;

-廣告有利於老牌企業,這使新企業處於不利地位,限制了經濟的增長潛力;

-更豐富的廣告經濟依賴於更多的使用者資料(用於提供廣告模型),從而與使用者產生不一致的激勵和糟糕的使用者體驗。

網際網路的方向

網路本身就是一種技術發展。它只是一堆管道,對人類用它做什麼漠不關心。最終,人類需要決定將其指向何處。對於網路的未來一兩年,更好的方向是促進:

-任何參與者創造本地經濟價值;

-將此原生價值轉移給任何參與者。

隨著區塊鏈的發明,感謝中本聰和她/他/他們之前的其他學者,我們現在有辦法讓網路中的每個參與者以數字原生格式儲存和傳輸狀態。世界各地的許多開發人員和企業家已經開始在這個新的狀態層上構建(或#BUIDL,視情況而定)。隨著以太坊等開放平臺的出現,這一天比一天容易。隨著人們開始意識到這些新功能可以讓他們做什麼,他們已經開始支援更加開放和公平的網際網路(也稱為 Web 3.0)的呼聲。

Part2:Web3.0 的組成

正如Part 1 部分中所解釋的,今天的網際網路是一個無狀態的網際網路——它的參與者不能保持自己的狀態,也不能在本地將它從一個狀態轉移到另一個狀態。從比特幣開始,區塊鏈為我們提供了一種以數字原生方式儲存狀態的方法。我們這些加密和區塊鏈生態系統中的人已經開始將這種新的基本功能稱為 Web 3.0。雖然我們仍處於早期階段,但我們已經開始粗略地瞭解它會帶來什麼好處。

這部分是關於 Web 3.0 在今天和將來可能是什麼樣子的:

圖片:Web3.0 的模組化構架

上面框架中的層從頂部開始,沿著 y 軸向下構建。顏色代表不同層中模組之間的相容性。例如,今天的加密商品(黃色),如上所示,與 EVM(藍色到黃色)相容,但與比特幣指令碼(綠色到紅色)不相容。反過來,EVM 與以太坊區塊鏈(藍色)相容,但與比特幣區塊鏈(綠色)不相容。這使我們能夠將與比特幣指令碼相容並因此記錄在比特幣區塊鏈上的未來加密商品放入框架中(儘管由於技術挑戰,這極不可能)。這種模組化對於 Web 3.0 的健壯性至關重要,因為升級其中一層不應該需要完全重寫它下面的所有內容。

狀態層

狀態層保留了它下面發生的所有事情的狀態。它幾乎完全由區塊鏈基礎設施提供,並允許任何參與者參與,只要他們遵守首選網路的規則。任何成功的網路的目標都是成為一個預設的、可靠的基礎設施,類似於今天的 DNS 提供商。當它們按預期工作時,沒有人會認出它們(99% 的時間),但當它們不工作時,我們都會感到痛苦。

該層可以是公共層或私有/許可層。有人可能會爭辯說,預設情況下,狀態是一個單一且普遍的真理,建立私有層類似於建立平行宇宙。公共層和許可層之間也存在技術差異,但它們超出了本文的範圍,因此將推遲到開發人員作為其產品的設計選擇。

從這裡開始,每一層都建立在它下面的層上或與之相容。

計算層

軟體允許人類向計算機發出指令。Web 3.0 計算層允許人類指示狀態層做他們想做的事。然而,並不是每個計算層都允許做任何事情。例如,比特幣的指令碼非常有限,因為它只允許交易訂單之外的東西。另一端的以太坊虛擬機器(EVM) 是一個完整的圖靈完備機器,因此,允許由支援 EVM 的狀態層執行任意複雜的計算。

為應用程式開發人員(以及區塊鏈開發人員)選擇計算層是一個關鍵因素,因為它決定了給定應用程式可以在哪些區塊鏈上執行。例如,任何編譯為 EVM 的應用程式今天都可以在以太坊區塊鏈上執行,而不能在比特幣區塊鏈上執行。在以太坊基金會正在努力將以太坊的預設計算層改變為另一個名為技術eWASM,基於WebAssembly,或WASM。Dfinity等其他狀態層專案也計劃與 WASM 相容。這意味著編譯為 eWASM 的應用程式理論上可以在以太坊和 Dfinity 區塊鏈以及任何其他決定與 WASM 相容的區塊鏈上執行。

元件層

將狀態層與計算層相結合,可以將新型數字價值的設計空間增加 1,000 倍(又名可程式設計貨幣)。因此,我們已經開始看到開發人員進行了大量實驗。其中一些實現具有如此大的潛力(下面的示例),可以想象整個子經濟體都構建在給定元件之上。我在 Coinbase 的同事Jacob Horne將這種現象(連同協議層)描述為加密經濟原語,並對其中一個,即加密商品進行了深入研究。

元件建立在計算層上,重複使用標準化的智慧合約模板。OpenZeppelin是訪問此類别範本的完善資源。元件的建立者需要在狀態層上釋出新的智慧合約。

這些元件的示例是:

-本地貨幣:任何公共區塊鏈的必需和核心部分。賦予任何參與者支付區塊鏈費用並獲得所需服務作為回報的權利,通常以交易的形式。示例:比特幣、以太幣

-加密資產:具有一組基本功能和相關後設資料的可替代資產。引發了 ICO 熱潮,因為它允許任何人創造自己的貨幣。除了貨幣之外,還可以將許多其他資產型別數字化,例如股票、債券、所有權。最常見的標準是ERC-20.

-加密商品:不可替代的資產,具有一組基本功能和與之相關的一組更豐富的後設資料。也稱為不可替代的代幣 (NFT) 或加密收藏品。首先由探索CryptoPunks和製造流行CryptoKitties。使獨特的商品能夠被數字化,例如收藏品、遊戲資產、訪問權、藝術品。最常見的標準是ERC-721。

-身份:身份資訊的自我主權容器。就其本身而言,很少提供有關其識別內容的有價值的資訊。但是,它允許宣告與容器相關聯,這可以來自大量來源,例如政府或其他受信任方(例如 Google、Coinbase)。領先的提案是ERC-725 / ERC-735和uPort 的一些協議提案。以太坊命名服務(ENS) 作為一種不同型別的識別符號也高度相關。

-穩定幣:具有穩定價值的加密資產,與來源掛鉤,例如美元的價值。一個非常複雜的問題,具有不同型別的理論和實踐解決方案。一些例子是TrueUSD、Dai和Reserve。

協議層

一旦在狀態層上建立了元件,它們就需要活躍起來。某些功能對於這些元件的生命週期非常重要和通用,以至於它們正在變得標準化。這不僅是因為這些函式需要使用相同的語言(因此稱為協議層),還因為網路效應使它們更高效。這些協議基本上能夠為相關元件形成健康的市場,就像我們在物理世界中所做的那樣,只是便宜和高效幾個數量級。

多種不同的協議已經開始受到關注。這些採用規範智慧合約的形式,由開發協議的團隊部署,並由每個想要將相關功能應用於元件的應用程式呼叫:

-交易:如果一個元件要有價值,它需要是可交易的。交易協議允許以去信任的方式進行資產的錢包到錢包交易。重要的是要區分這些“中繼器”和大多數“去中心化交易所”,後者在智慧合約上託管資產。透過交易協議促進的交易永遠不會保管交易資產。一些領先的專案包括0x和Kyber Network。要了解有關 0x 協議支援的每日交易量的更多資訊,您可以訪問此處。

-貸款:貸款提高了任何資產的效率,因為它促進了投資回報,否則投資回報可能為零。透過標準的借貸協議,美國的一個人可以將錢借給辛巴威的另一個人,從智慧手機到智慧手機。Dharma和ETHLend目前是該領域的兩個領先專案。

-衍生品:衍生品市場是世界上最大的市場,全球估計為 1.2 萬億美元。將衍生品構建為協議允許為狀態層原生的元件形成去信任市場。dy/dx和Market Protocol是這個領域的兩個專案。

擴充套件性/傳輸層

區塊鏈的可擴充套件性問題是臭名昭著的。比特幣區塊鏈的交易容量為每秒 7 筆交易,以太坊為每秒 15 筆。儘管關於區塊鏈本身是否應該做出讓步以促進每秒數千筆交易存在很多爭論,但人們普遍認為,需要用於狀態轉移的不同層(也稱為第 2 層可擴充套件性)來支援穩健的拓撲結構. 這些可擴充套件性解決方案需要與底層區塊鏈的計算層相容。

關於如何做到這一點有多種建議。下面是一些例子:

支付渠道:僅允許轉移給定的本國貨幣。透過附加到狀態層上的交易的可驗證簽名來完成。需要存入資金以促進爭議。示例:用於比特幣的照明網路、用於以太的雷電、用於以太的 SpankChain 的Vynos實現。

狀態通道:允許傳輸任何狀態。透過附加到狀態層交易的可驗證簽名來完成。需要存入資金以促進爭議。示例:針對 EVM 的反事實、針對 EVM 的Celer Network、針對 EVM 的Arcadeum、針對 EVM 的FunFair的Fate Channel、針對 EVM 的Connext。

側鏈:允許轉移任何狀態。由與主鏈相容的其他區塊鏈完成。要求側鏈能夠與主鏈上的計算層對話。還要求鎖定資金以促進糾紛。側鏈可以是中央或私人管理的基礎設施。示例:用於 EVM 的PoA 網路、用於 EVM 的Loom 網路、用於 EVM 的Plasma Framewok。應該注意的是,Plasma(有許多不同的實現)內建了額外的要求,以便為使用者提供安全地將其資產提取到計算層的保證。透過這種方式,它的價值主張更類似於狀態和支付渠道。

現在我們已經到了第五層,我們可以看到這個模組化堆疊如何允許開發人員獨立於較低階別的設計選擇,例如構建在哪個區塊鏈上。讓我們以在不久的將來假設的穩定幣智慧合約為例——編譯為 eWASM,在以太坊上執行,並與 Counterfactual 狀態通道相容(即它可以在狀態通道上傳輸)。上述穩定幣的相同程式碼理論上將與EOS和 Dfinity 區塊鏈相容,因為兩者都執行 WASM。它甚至可以在這些區塊鏈上執行的類似狀態通道上進行轉移。

使用者控制層

直到這一層,普通使用者幾乎不可能使用任何建立的功能,除非他/她透過命令列介面直接與計算層對話。該層的主要功能是管理使用者的私鑰並能夠在狀態層上籤署交易。狀態層的事務會更改使用者帳戶的狀態,因此是使用者與 Web 3 應用程式互動方式的核心。

有兩種型別的錢包:

-託管錢包:由 Coinbase 或其他加密貨幣交易所流行,透過控制狀態層上的一組有限的專有餘額來代表使用者管理資金。這些可以將使用者的資金彙集到聚合賬戶中,因此,在狀態層之外管理個人使用者的狀態。如果僅考慮貨幣價值,這種操作可能是可行且經濟的,但是隨著 Web 3 應用程式帶來的狀態數量的增加,它變得更加複雜。

還有一些新型託管錢包的例子,它們為每個使用者管理一個專用的區塊鏈錢包,並支援使用去中心化應用程式。這些有望進一步提高靈活性,但尚未得到大規模證明。

-使用者控制的錢包:提供一種更加靈活和直接的方式來使用 Web 3 實現的所有任意複雜的操作。使錢包成為使用者控制的錢包的原因是使用者私鑰的本地保管和每筆交易的本地簽名。這意味著錢包軟體不會以允許第三方代表使用者提交交易的方式複製使用者的私鑰。

這是所有底層的終端使用者接觸點,因此需要向透過該層訪問的應用程式公開所有可用功能。這通常是透過web3.js等前端庫完成的。這篇文章的第 3 部分深入探討了所有這些是如何結合在一起的。

應用層

與傳統 Web 非常相似,Web 3 上的大部分活動將透過構建在以下所有層上的第三方應用程式進行。例如,使用者意識到 CryptoKitties(即加密商品)的價值,因為所有功能都透過使用 CryptoKitties 的應用程式提供,例如cryptokitties.co或kittyrace.com或cryptogoods.com。基於 Web 3 構建的應用程式與傳統 Web 應用程式具有不同的屬性和要求,因此通常被稱為去中心化應用程式或 DApp。正如Matt Condon所闡述的那樣,如果要被數百萬使用者使用,DApp 將需要與現有應用無法區分。

然而,去中心化帶來的新功能正是 DApp 如此強大的原因,也是為什麼隨著堆疊的成熟,我們可能會看到超出當今網路的使用量。我們已經看到世界各地的開發人員建立了不同類別的前沿用例,使用者透過將資金投入他們認為有價值的地方來回應他們。

-資金籌措:關閉至$ 20B上調,723000個唯一帳戶參與,8,000+公司收到的投資。雖然該空間已經出現了欺詐行為,但截至本文釋出之日,它是最受歡迎的應用程式類別,基於參與的帳戶數量。此外,它的吸引力仍在繼續,正如許多新的籌款平臺所看到的那樣,這些平臺促進了受監管的 ICO。

-交易平臺:傳統的加密交易平臺充當您和國家層之間的中介(透過充當託管錢包),而構建為支援 Web 3 的應用程式的交易平臺允許使用者保持對其資金的控制,而不是將其存入第三方錢包地址。此外,交易體驗還有潛在的使用者體驗優勢。許多不同的專案正在努力克服一些技術挑戰,但我們已經看到該領域的使用率有所上升。

-遊戲和收藏品:透過60,000 個擁有一些 Crypto Good 的獨特賬戶籌集了50-1 億美元。雖然比籌款小得多,但與加密商品互動的遊戲為巨大的遊戲市場提供了令人興奮的潛力。

Part3:開發者如何構建 Web 3.0?

Web 2.0 與 Web 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 呼叫區塊鏈伺服器將批准的交易提交到區塊鏈。這是第二個基礎設施部分發揮作用的地方。

  • 區塊鏈節點:有兩種型別的代理不斷監控和參與區塊鏈——礦工和節點。礦工直接維護和執行區塊鏈,而節點監控並向區塊鏈提交交易。人們可以認為它們類似於 ISP 與雲服務提供商(例如 AWS)。與當今大多數應用程式使用 AWS 服務來執行其應用程式後端的方式類似,區塊鏈節點提供商(例如Infura)對區塊鏈節點也執行相同的操作。當錢包想要向區塊鏈提交交易或從區塊鏈查詢狀態資訊時,它會呼叫節點提供者。應用程式的應用程式伺服器也可以與節點提供者本身進行互動,透過進行類似的 RPC 呼叫來使應用程式的邏輯保持最新。

工具和框架

知道要使用哪些工具和框架並熟練使用它們是任何開發人員生活中的重要組成部分。儘管 Web 3 領域仍處於早期階段,但我們已經開始擁有使開發人員能夠進入 MVP 階段並越來越快地迭代的可用工具。這在以太坊上最為明顯,由於社羣中許多人的努力,開發人員開始蜂擁而至。

設計選擇

-去中心化:這是一個新的關鍵選擇。大多數早期開發人員的目標是儘可能地去中心化並將所有東西都放在區塊鏈上。然而,鑑於當今區塊鏈的緩慢和昂貴的性質,這是不可能大規模實現的。CryptoKitties 可能是第一個試圖保持某些部分中心化的 DApp。比如他們的養殖邏輯是不公開的。儘管他們為此受到了一些批評,但這並沒有阻止使用者花費大量資金購買以這種邏輯飼養的貓。Gods Unchained是另一個例子,遊戲本身將託管在標準的雲基礎設施上,但資產的所有權將在狀態層上進行跟蹤。

儘管許多 DApp 將採取不同的去中心化方法,但接近這種選擇的首要原則方法是採用“最小可行的公共狀態”方法。如果你正在構建一個使用者可以擁有資產的遊戲,那麼所有權應該在區塊鏈上。如果你正在建立一個預測市場,那麼你的市場的報告和支付應該在區塊鏈上。歸根結底,如果使用者能夠對您的應用程式支援的關鍵活動擁有真正的所有權,他們會發現您的應用程式很有價值。

-Web 應用程式與本機應用程式:這是一個已有數十年曆史的選擇,但在 Web 3 應用程式中呈現出新的形式。今天的大多數 DApp 都是網路應用程式,因為兩個簡單的原因:a)它不需要使用者每次都下載一個新的應用程式,b)使用者可以使用你的應用程式而不必每次都建立一個新的錢包。現有的少量原生 DApp 都導致使用者建立新的錢包,這不是理想的使用者體驗。很容易看出這不是一個可行的未來,因為使用者不會為數百個錢包維護金鑰。在不久的將來,將會有更無縫的方式讓原生應用程式能夠克服這一 UX 挑戰,但就目前而言,網路應用程式允許更輕鬆的入門體驗。

-桌面版 vs 移動版:這個選擇的 Web 3 版本不是要在兩者之間做出選擇,而是關於使用者最終如何在兩者上使用你的 DApp。在桌面上,像MetaMask這樣的 Chrome 擴充套件程式一直是大多數使用者與DApp互動的方式。儘管它需要使用者下載新的擴充套件程式,但使用者仍然在與他們熟悉的瀏覽器介面進行互動。

然而,在移動裝置上,擴充套件是不可能的,至少在 iOS 上是不可能的。這就是錢包應用程式(例如 Coinbase Wallet)將瀏覽器放置在其應用程式中的原因。進入瀏覽器檢視後,DApp 體驗與桌面相同。在為移動裝置開發時,還有一些技術上的細微差別需要注意,Coinbase 錢包的工程主管 Pete Kim在這裡介紹了這些細節。

迄今為止尚無解決方案的其他挑戰:

-誰為 gas買單:今天在以太坊上構建的每個 DApp 都讓其使用者支付交易成本,稱為以太坊區塊鏈的 gas。如果數百萬非加密本地人要使用 Web 3 應用程式,那麼從長遠來看,這將是不可行的。有許多理論解決方案,其中一些更接近實用,例如gas 中繼器,但還沒有一個實用。

-特定於應用程式的帳戶與否: Web 3 令人興奮的應用程式之一是通用標識。由於如今功能性身份解決方案並不多,因此一些 DApp 仍在要求使用者建立帳戶,以便將某些身份與他們在應用程式上的活動相關聯。這與 Web 2.0 的做事方式沒有太大區別。一旦我們有了功能性的去中心化身份解決方案,DApps 應該如何對待和呈現它?雖然沒有明確的答案,但有些人已經提出了建議,例如使用 ERC-725 和 735 構建的Origin 演示。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读