原文標題:《了解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 等大型互聯網公司都擁有數十億人的國家,以及由此創造的價值。這本身並沒有錯,因為他們的用戶已經從同一家公司創造的服務和價值中受益。問題在於互聯網如何使這些中心化公司比公眾受益更多。

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

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

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

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

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

互聯網的方向

NbRxeyZfj375FwKB2gie61uzIdzBBuHt64ARyyUU.png

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

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

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

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

Part2:Web3.0 的組成

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

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

AbXQZwGUHFIpngiroe78ucQpkKwEeD2KjYfnqrCS.png

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

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

狀態層

FTL3lYW020TnnXXGlZK0T2tyJhKix7qN46fEAJRx.png

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

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

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

計算層

V14PtBXMQ4TIcrbOHG550vmmmlULqRZeffEcXMKk.png

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

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

組件層

8bS7YvXqi8Agd3wbWOZfvguMac9EFFwe4ZwIullh.png

將狀態層與計算層相結合,可以將新型數字價值的設計空間增加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。

協議層

TsvjFyAjAuWq53bWpu3KsDCeH3yoSkRpkx42JDXm.png

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

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

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

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

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

擴展性/傳輸層

DRJZaVWo1HDDkGGW8RNAndZ8SL3TqoO0WpMFT6A4.png

區塊鏈的可擴展性問題是臭名昭著的。比特幣區塊鏈的交易容量為每秒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。它甚至可以在這些區塊鏈上運行的類似狀態通道上進行轉移。

用戶控制層

UXKoVFNK3LgDBAYibOPcF3HRiG6MiYEkLc0de5HB.png

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

有兩種類型的錢包:

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

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

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

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

應用層

B6RhNlwAK9q2lajfqStofFkBoB6om5ct8onTE5cx.png

與傳統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 演示。