作者:moxie
儘管我自認為是一名密碼學家,但我對「加密」(crypto)卻並不特別感興趣。我不記得自己是否真的說過“滾出我的地盤”這句話,但與其點擊最新的NFT 發布信息,我更傾向於瀏覽那些懷舊風的“佩珀里奇農場記得” (Pepperidge Farm Remembers )味兒的梗圖,感嘆「crypto」過去意味著「密碼學」(cryptography)的美好時光。
另外,坦白講,我並不認同那種將生活的各個層面都轉移到一個工具化經濟中的世代興奮感。
即便僅從技術層面來看,我也還沒能成為信徒。因此,鑑於最近對所謂Web3 的廣泛關注,我決定更深入地探索這個領域的一些發展,看看我是否錯過了什麼。
我對Web1 和Web2 的看法
Web3 是一個相對模糊的術語,這使得嚴格評估Web3 的目標變得困難。但整體的觀點(https://a16zcrypto.com/posts/article/why-web3-matters/)似乎是,Web1 是去中心化的,Web2 將一切都集中到平台上,而Web3 將再次去中心化。 Web3 應該能夠在去中心化的基礎上為我們提供與Web2 相同的豐富體驗。
首先,弄清楚為什麼會出現中心化平台是件好事,在我看來,解釋非常簡單:
1. 人們不想運作自己的伺服器,也永遠不想運作。 Web1 的前提是網路上的每個人都是內容的生產者和消費者,也是基礎設施的生產者和消費者。我們都有自己的網頁伺服器,有自己的網站,有自己的郵件伺服器,有自己的狀態訊息伺服器,有自己的chargen 伺服器,有自己的字元產生伺服器。然而,我認為這再怎麼強調也不為過:這不是人們想要的。人們不想運行自己的伺服器。
即使是極客們,現在也不想自己運行伺服器。即使是全職開發軟體的組織,現在也不願意自己運作伺服器。如果有一件事可以總結我們對世界的認知,那就是:人們不想自己運作伺服器。那些提供伺服器託管服務的公司因此獲得了成功,而那些基於這些網路的可能性不斷迭代新功能的公司則更加成功。
2. 協議的演進速度遠慢於平台(https://signal.org/blog/the-ecosystem-is-moving/)。經過30 多年,電子郵件仍然未實現加密;而與此同時,WhatsApp 在一年內就從未加密轉向了全面的端對端加密。人們仍在嘗試標準化透過IRC 可靠地共享影片;而Slack 可讓你根據自己的臉部創建自訂反應表情符號。
這並不是資金問題。如果某樣東西是真正去中心化的,那麼改變它會變得非常困難,往往會停滯不前。而這對科技來說是個問題,因為生態系統的其他部分正在快速發展,如果跟不上步伐,就會失敗。有整整一個平行產業專注於定義和改進像敏捷開發(Agile)這樣的方法論,試圖找出如何組織龐大的團隊以盡可能快速地行動,因為這至關重要。
當技術本身更傾向於停滯而非發展時,這就是一個問題。一個被驗證成功的做法是,將一個停滯在90年代的協議中心化,然後快速迭代。
但Web3 想要與眾不同,讓我們來看看。為了快速了解這個領域並更好地理解未來可能的發展,我決定建立幾個dApp 並創建一個NFT。
製作一些去中心化應用程式
為了感受Web3 世界,我製作了一個名為Autonomous Art(https://autonomous.graphics/) 的dApp ,任何人都可以透過為NFT 做出視覺貢獻來鑄造代幣。隨著時間的推移,做出視覺貢獻的成本會增加,貢獻者支付的鑄幣資金會分配給所有先前的藝術家(將這種財務結構視覺化為類似金字塔的形狀)。在撰寫本文時,已經投入了超過38,000 美元來創作這件集體藝術作品。
我還製作了一個名為First Derivative(https://firstderivative.market/) 的dApp,它允許你創建、發現和交換追蹤基礎NFT 的NFT 衍生品,類似於追蹤基礎資產的金融衍生品?。
兩者都讓我感受到了這個領域的運作方式。需要明確的是,這些應用程式本身並沒有什麼特別「分散式」的東西:它們只是普通的React 網站。 「分散式」是指狀態以及更新狀態的邏輯/權限所在的位置:在區塊鏈上,而不是在「中心化」資料庫中。
加密領域讓我感到奇怪的一件事就是,缺乏對客戶端/伺服器介面的關注。當人們談論區塊鏈時,他們會談論分散式信任、無領導共識以及所有運作機制,但往往掩蓋了客戶端最終無法參與這些機制的現實。所有網路圖都是伺服器的,信任模型是在伺服器之間,一切都與伺服器有關。區塊鏈旨在成為一個對等網絡,但並非設計成讓你的行動裝置或瀏覽器真正成為這些對等網路之一。
隨著向行動端的範式遷移,我們現在生活在一個由客戶端和伺服器組成的世界裡,前者完全無法取代後者:這些問題對我來說比以往任何時候都更重要。同時,以太坊實際上將伺服器稱為“客戶端”,因此甚至沒有一個詞來描述必須存在的實際的、不可信的客戶端/伺服器接口,而且也沒有意識到如果成功,最終客戶端的數量將比伺服器多出數十億個(!)。
例如,無論是在行動裝置還是Web 上運行,像Autonomous Art或First Derivative這樣的dApp都需要以某種方式與區塊鏈交互,以便修改或呈現狀態(集體創作的藝術作品、其編輯歷史、NFT衍生性商品等)。不過,這實際上不可能從客戶端執行,因為區塊鏈無法存在於你的行動裝置上(或實際上存在於你的桌面瀏覽器中)。因此,唯一的選擇是透過在某個伺服器上遠端運行的節點與區塊鏈互動。
伺服器! ! !但是,眾所周知,人們不想運行自己的伺服器。碰巧的是,一些公司已經出現,它們出售他們作為服務運行的以太坊節點的API 訪問權限,同時提供分析、在默認以太坊API 之上構建的增強API 以及對歷史交易的訪問權限。這聽起來……很熟悉。目前,基本上有兩家公司。幾乎所有dApp 都使用Infura或Alchemy與區塊鏈進行互動。事實上,即使你將像MetaMask 這樣的錢包連接到dApp,並且dApp 透過你的錢包與區塊鏈交互,MetaMask 也只是在呼叫Infura!
這些客戶端API 不使用任何東西來驗證區塊鏈狀態或回應的真實性。結果甚至沒有簽名。像Autonomous Art 這樣的應用程式會說“嘿,這個智能合約上這個視圖函數的輸出是什麼”,Alchemy 或Infura 會用JSON blob 回應“這是輸出”,然後應用程式會呈現它。
這讓我很驚訝。人們投入了大量的工作、精力和時間來創建一個免信任的分散式共識機制,但幾乎所有希望存取它的客戶端都只是簡單地信任這兩家公司的輸出,而無需進行任何進一步的驗證。這似乎也不是最好的隱私狀況。想像一下,每次你在Chrome 中與網站互動時,你的請求都會先發送到Google,然後再路由到目的地並返回。這就是以太坊今天的狀況。所有寫入流量顯然已經在區塊鏈上公開,但這些公司還可以查看幾乎所有dApp 中幾乎所有用戶的幾乎所有讀取請求。
區塊鏈的支持者可能會說,如果出現這種類型的中心化平台,那也沒什麼,因為區塊鏈上可以查看狀態,因此如果這些平台行為不當,客戶可以簡單地轉移到其他地方。然而,我認為這是對平台發展動態的一種非常粗淺的看法。
讓我給你舉個例子。
製作NFT
我還想創建一種更傳統的NFT。大多數人在想到NFT 時都會想到圖像和數位藝術,但NFT 通常不會將資料儲存在鏈上。對於大多數影像的大多數NFT 來說,這太昂貴了。
NFT 不會將資料儲存在鏈上,而是包含一個指向資料的URL。該標準讓我感到驚訝的是,URL 上的數據沒有哈希承諾。縱觀流行市場上許多以數十、數百或數百萬美元出售的NFT,該URL 通常只是指向某個地方運行Apache 的VPS。任何有權訪問該機器的人、任何將來購買該域名的人或任何破壞該機器的人都可以隨時將NFT 的圖像、標題、描述等更改為他們想要的任何內容(無論他們是否“擁有”該代幣)。 NFT 規範中沒有任何內容告訴你圖像「應該」是什麼,甚至允許你確認某些東西是否是「正確」的圖像。
因此,作為一個實驗,我製作了一個會根據查看者而變化的NFT,因為提供圖像的Web 伺服器可以根據請求者的IP 或用戶代理選擇提供不同的圖像。例如,它在OpenSea 上看起來是這樣的,在Rarible 上看起來是另一種樣子,但當你從加密錢包購買並查看它時,它總是會顯示為一個大? 表情符號。你出價的不是你得到的。這個NFT 沒有什麼不尋常的,而是NFT 規範的建構方式。許多價格最高的NFT 隨時可能變成? 表情符號;我只是明確表示了這一點。
幾天后,沒有任何警告或解釋,我製作的NFT 就從OpenSea(一個NFT 市場)中被刪除了:
刪除表明我違反了某些服務條款,但在閱讀條款後,我沒有看到任何禁止根據查看位置而變化的NFT 的條款,而我公開地這樣描述它。
不過,我發現最有趣的是,在OpenSea 刪除了我的NFT 後,它也不再出現在我裝置上的任何加密錢包中。但是,這是Web3,怎麼可能呢?
MetaMask、Rainbow 等加密錢包是「非託管」的(金鑰保存在客戶端),但它與我上面的dApp 有相同的問題:錢包必須在行動裝置或瀏覽器中運作。同時,以太坊和其他區塊鏈的設計理念是它是一個對等網絡,但並沒有設計成讓你的行動裝置或瀏覽器真正成為這些對等網路之一。
像MetaMask 這樣的錢包需要做一些基本的事情,例如顯示你的餘額、最近的交易和NFT,以及更複雜的事情,例如建立交易、與智能合約互動等。簡而言之,MetaMask 需要與區塊鏈交互,但區塊鏈的建構方式使得像MetaMask 這樣的客戶端無法與其互動。因此,就像我的dApp 一樣,MetaMask 透過向在這個領域整合的三家公司發出API 呼叫來實現這一點。
例如,MetaMask 透過對etherscan 進行API 呼叫來顯示你最近的交易:
GET https://api.etherscan.io/api?module=account&address=0x0208376c899fdaEbA530570c008C4323803AA9E8&offset=40&order=desc&action=txlist&= HTTPlatest&page=1/offset=40&order=desc&action=txlist&= HTTPlatest&page=1/offset=400=1/32.
…透過向Infura 發出API 呼叫來顯示你的帳戶餘額:
POST https://mainnet.infura.io/v3/d039103314584a379e33c21fbe89b6cb HTTP/2.0{ “id”: 2628746552039525, “jsonrpc”: “2.0”, “method [ “0x0208376c899fdaEbA530570c008C4323803AA9E8”, “latest” ]}
…透過向OpenSea 發出API 呼叫來顯示你的NFT:
GET https://api.opensea.io/api/v1/assets?owner=0x0208376c899fdaEbA530570c008C4323803AA9E8&offset=0&limit=50 HTTP/2.0
同樣,就像我的dApp 一樣,這些回應沒有經過某種方式的身份驗證。它們甚至沒有簽名,因此你以後無法證明它們在撒謊。它會對你錢包中的所有帳戶重複使用相同的連線、TLS 會話票證等,因此如果你在錢包中管理多個帳戶以保持某種身分分離,這些公司就會知道它們是關聯的。
MetaMask 實際上並沒有做太多事情,它只是這些集中式API 提供的資料的視圖。這不是MetaMask 特有的問題:他們還有其他選擇嗎? Rainbow 等的設定方式完全相同。 (有趣的是,Rainbow 擁有自己的數據,用於他們正在錢包中構建的社交功能:社交圖譜、展示等,並且選擇在Firebase 而不是區塊鏈上構建所有這些。)
所有這些意味著,如果你的NFT 從OpenSea 中移除,它也會從你的錢包中消失。從功能上講,我的NFT 是否永久地存在於區塊鏈的某個地方並不重要,因為錢包(以及生態系統中越來越多的其他東西)只是使用OpenSea API 來顯示NFT,而對於查詢我的位址擁有的NFT,它開始回傳304 No Content!
重塑這個世界
考慮到Web1 變成Web2 的歷史,我覺得Web3 奇怪的是,像以太坊這樣的技術在建構時就帶有許多與Web1 相同的隱含特徵。為了使這些技術可用,該領域正在圍繞平台進行整合。再次強調。人們將為你運行伺服器,並迭代出現的新功能。 Infura、OpenSea、Coinbase、Etherscan。
同樣,Web3 協議的發展也很緩慢。在建造First Derivative 時,如果能將衍生性商品的鑄造價格定為標的價值的百分比,那就太好了。這些資料不在鏈上,但它在OpenSea 會提供給你的API 中。人們對NFT 版稅感到興奮,因為它們可以讓創作者受益,但ERC-721 中沒有規定版稅,現在改變它已經太晚了,所以OpenSea 有自己的配置版稅的方式,這種方式存在於Web2 空間中。在中心化平台上快速迭代已經超越了分散式協議,並將控制權整合到平台中。
考慮到這些動態,我認為我們已經處於這樣的境地:你的加密錢包對NFT 的看法就是OpenSea 對NFT 的看法,這並不奇怪。我認為我們不應該對OpenSea 不是一個可以取代的純粹「觀點」感到驚訝,因為它一直在忙於迭代平台,超越嚴格遵循不可能/難以改變的標準所能達到的範圍。
我認為這與電子郵件的情況非常相似。我可以運行自己的郵件伺服器,但從功能上講,它對隱私、抗審查或控制無關緊要,因為GMail 無論如何都會出現在我發送或接收的每封電子郵件的另一端。一旦分散式生態系統為了方便而圍繞一個平台中心化,它就會變成兩全其美的結果:中心化控制,但仍然足夠分散,以至於隨著時間的推移而陷入困境。我可以建立自己的NFT 市場,但如果OpenSea 調解人們使用的錢包(以及生態系統中的所有其他應用程式)中所有NFT 的視圖,它就不會提供任何額外的控制。
這不是對OpenSea 的抱怨,也不是對他們所建立的東西的指責。恰恰相反,他們在嘗試建立一個可行的東西。我認為我們應該預期這種平台整合會發生,鑑於這種情況的必然性,我們應該設計出能在這種組織方式下為我們提供所需功能的系統。然而,我的感覺和擔憂是,Web3 社群期望的結果與我們目前所看到的有所不同。
現在還為時過早
「還處於早期階段」是我在Web3 領域看到的最常見說法,尤其是在討論類似問題時。從某種意義上來說,加密貨幣未能突破相對初步的工程階段,正是讓人們能夠將這一時期視為「早期階段」的原因,因為客觀上,它已經存在了十年或更長時間。
然而,即使這只是一個開始(而且很有可能是!),我也不確定我們是否應該認為這是安慰。我認為事實可能恰恰相反;我們似乎應該注意到,從一開始,這些技術就傾向於透過平台進行集中化,以便實現它們,這對生態系統的速度幾乎沒有負面影響,而且大多數參與者甚至不知道或不關心它正在發生。這可能表明,去中心化本身實際上對下游的大多數人來說並不具有直接的實際或緊迫性,人們想要的唯一去中心化程度是某物存在所需的最低程度,如果沒有非常有意識地考慮到這一點,隨著時間的推移,這些力量將使我們離理想結果越來越遠,而不是更接近理想結果。
但你無法阻止淘金熱
仔細想想,如果所有Web3 部分都消失了,OpenSea 實際上會「更好」得多。它會更快、更便宜,而且更容易使用。例如,要接受對我的NFT 的出價,我將不得不支付超過80 到150 美元以上的以太坊gas 費。這為所有出價設定了一個人為的門檻,否則你會因為接受低於gas 費的出價而虧損。信用卡支付費用通常讓人感覺很貴,但與此相比卻很便宜。如果人們想要公開交易、報價、出價等記錄來驗證他們的會計記錄,OpenSea 甚至可以發布一個簡單的透明日誌。
然而,如果他們建立了一個名義上不基於加密貨幣的圖像買賣平台,我認為它不會流行起來。不是因為它不是分散式的,因為我們已經看到,讓它發揮作用所需的許多東西已經不是分散式的。我認為它不會流行,因為這是一場淘金熱。人們透過加密貨幣投機賺錢,這些人有興趣以支持他們的投資同時提供額外回報的方式,來花費這些加密貨幣,因此這定義了財富轉移市場的背景。
排在隊伍末端、倒賣NFT 的人從根本上並不關心分散式信任模式或支付機制,但他們關心錢在哪裡。因此,金錢吸引人們進入OpenSea,他們透過建立一個在Web2 空間中迭代底層Web3 協議的平台來改善體驗,他們最終提供了透過OpenSea 本身而不是透過你自己的智能合約來「鑄造」 NFT 的能力,最終這一切都為Coinbase 打開了大門,透過你的金融卡,他們自己的平台提供對經過驗證的NFT 市場的存取。這為Coinbase 透過Coinbase 持有的暗池自己管理代幣打開了大門,這有助於消除交易費用,並使得完全避免與智能合約互動成為可能。最終,所有Web3 部分都消失了,你有一個用借記卡買賣JPEGS 的網站。由於市場動態,該專案無法以Web2 平台的形式開始,但同樣的市場動態和中心化的基本力量可能會促使它最終走向那裡。
在堆疊的末端,NFT 藝術家對這種進展感到興奮,因為這意味著對他們的藝術有更多的投機/ 投資,但如果Web3 的目的是為了避免Web2 的陷阱,那麼我們應該擔心,這已經是這些應該提供不同未來的新協議的自然趨勢。
我認為這些市場力量可能會持續下去,在我看來,它持續多久的問題在於,大量累積的加密貨幣最終是處於引擎內部還是漏水桶中。如果流經NFT 的資金最終被引導回加密空間,它可能會永遠加速下去(無論它是否只是Web2x2)。如果它大量湧出,那麼這將是一個曇花一現。就我個人而言,我認為目前已經賺了足夠多的錢,有足夠的水龍頭來維持它的發展,這不會只是一個曇花一現。如果是這樣的話,似乎值得考慮如何避免Web3 成為Web2x2(Web2 但隱私性更低)。
創造力可能還不夠
我只是初涉Web3 領域。然而,透過這些小型專案來看,我很容易明白為什麼這麼多人認為Web3 生態系統如此美好。我不認為它會讓我們擺脫中心化平台,我不認為它會從根本上改變我們與技術的關係,我認為隱私問題已經低於互聯網的標準(這是一個相當低的標準!),但我也理解為什麼像我這樣的極客會興奮地為它建構。至少,這是極客層面的新事物:它為創造力/探索創造了空間,讓人想起早期的網路時代。諷刺的是,部分創造力可能源自於使Web3 如此笨重的限制。我希望我們看到的創造力和探索將產生積極的結果,但我不確定這是否足以阻止網路的所有相同動態再次展開。
如果我們確實想改變我們與科技的關係,我認為我們必須有意識地這樣做。我的基本想法大致如下:
1. 我們應該接受這樣一個前提,即人們不會透過設計無需分散式基礎設施即可分配信任的系統來運行自己的伺服器。這意味著架構可以預期並接受相對集中的客戶端/伺服器關係的必然結果,但使用加密技術(而不是基礎設施)來分配信任。儘管Web3 是建立在「加密」之上的,但令我感到驚訝的是,它似乎很少涉及加密技術!
2. 我們應該努力減輕開發軟體的負擔。目前,軟體專案需要大量的人力。即使是相對簡單的應用程式也需要一群人每天坐在電腦前八小時,日復一日,永無止境。情況並非總是如此,曾經有一段時間,50 個人從事軟體專案並不被認為是一個「小團隊」。只要軟體需要如此協調一致的精力和如此多高度專業化的人力關注,我認為它就會傾向於服務於每天坐在那個房間裡的人的利益,而不是我們可能認為的更廣泛的目標。我認為改變我們與科技的關係可能需要讓軟體更容易創建,但在我的一生中,我看到了相反的情況。不幸的是,我認為分散式系統往往會加劇這種趨勢,使事情變得更複雜、更困難,而不是更簡單、更輕鬆。
原文連結:https://moxie.org/2022/01/07/web3-first-impressions.html