文章作者:@moxie
文章翻譯:Block unicorn
儘管我認為自己是一名密碼學家,但我並沒有發現自己特別喜歡“密碼學”。我不認為我曾經居然說了一句 “滾出我的草坪,” 但我更有可能點選 Pepperidge Farm(胡椒農場) 記住有關“加密”過去如何表示“加密”的風味模因,而不是最新的 NFT 下降。
此外——這裡的牌——我並沒有像一代人那樣對將生活的方方面面都轉移到儀器化經濟中而感到興奮。
然而,即使嚴格地在技術層面上,我還沒有成功地成為一個信徒。因此,鑑於最近對現在稱為 web3 的所有關注,我決定更徹底地探索該領域中發生的一些事情,以瞭解我可能遺漏的內容。
我如何看待 Web1 和 Web2
web3 是一個有點模糊的術語,很難嚴格評估 web3 的野心應該是什麼,但總體論點似乎是 web1 是去中心化的,web2 將一切都集中到平臺上,而 web3 將一切再次去中心化。web3 應該給我們 web2 的豐富性,但去中心化。
對中心化平臺出現的原因有一定的瞭解可能會很好,在我看來,解釋很簡單:
1. 人們不想執行自己的伺服器,而且永遠也不會。web1 的前提是網際網路上的每個人都是內容的釋出者和消費者,以及基礎設施的釋出者和消費者。
我們都有自己的 web 伺服器和自己的網站,我們自己的郵件伺服器用於我們自己的電子郵件,我們自己的手指伺服器用於我們自己的狀態訊息,我們自己的負責伺服器用於我們自己的角色生成。然而——我認為這一點再怎麼強調都不過分——這不是人們想要的。人們不想執行自己的伺服器。
即使是書呆子也不想在這一點上執行自己的伺服器。即使是全職構建軟體的組織,此時也不想執行自己的伺服器。如果我希望我們瞭解這個世界有一件事,那就是人們不想執行自己的伺服器。那些為你提供這些服務的公司是成功的,而那些根據這些網路的可能性迭代新功能的公司則更加成功。
2.協議的執行速度比平臺慢得多。30 多年後,電子郵件仍未加密;與此同時,WhatsApp 在一年內從未加密到完全 e2ee。人們仍在嘗試標準化透過 IRC 可靠地共享影片。同時,Slack 可以讓你根據你的臉建立自定義的反應表情符號。
這不是資金問題。如果某件事是真正去中心化的,那麼它就會變得非常難以改變,並且經常會被時間卡住。這對技術來說是個問題,因為生態系統的其他部分正在快速發展,如果你不跟上,你就會失敗。整個平行行業都專注於定義和改進敏捷等方法,試圖弄清楚如何組織大量人群,以便他們能夠儘快行動因為它是如此關鍵。
當技術本身更有利於靜止而不是運動時,這就是一個問題。成功的一個可靠秘訣是採用 90 年代的協議,該協議被卡在時間上,集中它並快速迭代。
但是web3打算不一樣,我們來看看。為了快速瞭解這個空間並更好地瞭解未來可能會發生什麼,我決定構建幾個 dApp 並建立一個 NFT。
製作一些分散式應用程式
為了感受 web3 世界,我製作了一個名為Autonomous Art的 dApp ,它可以讓任何人透過對 NFT 做出視覺貢獻來鑄造一個代幣。進行視覺貢獻的成本會隨著時間的推移而增加,並且貢獻者支付給 mint 的資金會分配給所有以前的藝術家(視覺化這種財務結構類似於金字塔形狀)。在撰寫本文時,已經有超過 38,000 美元用於創作這件集體藝術作品。
我還製作了一個名為First Derivative的 dApp ,它允許您建立、發現和交換追蹤基礎 NFT 的 NFT 衍生品,類似於追蹤基礎資產的金融衍生品。
兩者都讓我對空間的運作方式有所瞭解。需要明確的是,應用程式本身並沒有什麼特別“分散式”的:它們只是普通的反應網站。“分散式”是指狀態和更新狀態的邏輯/許可權所在的位置:在區塊鏈上而不是在“中心化”資料庫中。
關於加密貨幣世界,我一直覺得奇怪的一件事是缺乏對客戶端/伺服器介面的關注。當人們談論區塊鏈時,他們談論的是分散式信任、無領導共識以及其運作的所有機制,但往往掩蓋了客戶最終無法參與這些機制的現實。所有的網路圖都是伺服器的,信任模型是伺服器之間的,一切都是關於伺服器的。區塊鏈被設計成一個對等點網路,但並不是為了讓您的移動裝置或瀏覽器真正有可能成為這些對等點之一。
隨著向移動的轉變,我們現在牢牢地生活在一個客戶端和伺服器的世界中——前者完全無法充當後者——而這些問題對我來說似乎比以往任何時候都更加重要。同時,以太坊實際上將伺服器稱為“客戶端”,因此甚至沒有一個詞表示必須存在於某個地方的實際不受信任的客戶端/伺服器介面,並且沒有承認如果成功最終將有數十億(!)個客戶端比伺服器。
例如,無論是在移動裝置上還是在 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 隨時可能變成表情符號;我只是說清楚了。
OpenSea 上的 NFT
Rarible 上的相同 NFT
錢包中的相同 NFT
幾天後,在沒有任何警告或解釋的情況下,我製作的 NFT 被從 OpenSea(一個 NFT 市場)中刪除:
刪除表明我違反了某些服務條款,但在閱讀條款後,我沒有看到任何禁止 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&tag=latest&page=1 HTTP/2.0
透過對 Infura 進行 API 呼叫來顯示您的帳戶餘額:
POST https://mainnet.infura.io/v3/d039103314584a379e33c21fbe89b6cb HTTP/2.0
{
"id": 2628746552039525,
"jsonrpc": "2.0",
"method": "eth_getBalance",
"params": [
"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,它開始返回 304 No Content 用於查詢擁有的 NFT按我的地址。
重新創造這個世界
鑑於 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 美元以上的以太坊交易費用。這為所有出價設定了一個人為的底線,否則你會因為接受低於汽油費的出價而賠錢。與信用卡相比,信用卡支付費用通常讓人覺得是敲詐勒索的,但看起來便宜。如果人們想要交易、報價、出價等的公共記錄來驗證他們的賬目,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 人不被視為“小團隊”。只要軟體需要如此協調一致的能量和如此高度專業化的人類關注點,我認為它就會傾向於為每天坐在那個房間裡的人們的利益服務,而不是我們可能認為的更廣泛目標。我認為改變我們與技術的關係可能需要讓軟體更容易建立,但在我的一生中,我看到相反的情況發生了,很遺憾。