Q:Hi,兄弟,Web3現在很火,我在網上看了很多文章,總還是弄不明白什么是Web3,你給我講講唄。
你看不懂那些文章,是因為那些文章大多都是宣介性質的,他們并沒有講很基礎的東西。
本質上,Web3是一個技術上的東西,需要一些技術性的解釋。
如果你始終停留在表面,那你就始終抓不住實質。
Q:那么,老兄,Web3到底是個啥啊,我記得以前有Web3.0的,它們有關系嗎?
現在(2022年)人們說的Web3,不再是前些年曾經被提出過的Web3.0。顯然,自從Web2.0出來以后,很多技術都自稱是Web3.0的,其中有一些不乏名人背書。
曾經比較流行的說法有:Web3.0是語義網;Web3.0是物聯網;Web3.0是互聯網+人工智能;Web3是互聯網+虛擬現實等等,但由于沒有任何一個獲得實質性的成功,這些說法后來基本都隱退了。
這兩年人們說的Web3.0,基本上就是指互聯網+區塊鏈+ DApp(去中心化應用)了,而且,可能是為了撇清和以前Web3.0的關系,現在的叫法基本就是Web3。(事實上,小版本號也沒有什么用)
Q:我說呢,那這個Web3怎么感覺有點要火啊。
Web3和前面的Web1(網頁展示)、Web2(用戶貢獻內容)的主要區別就是,用戶對自己的數字資產有了安全感:
除非本人同意,自己的數據資產,任何人都拿不走、改不了。
而以前,對于用戶的數據,大公司和政府是有控制權的。畢竟數據是在公司那里,理論上,他們想怎么改就怎么改,想怎么刪就怎么刪,用戶是沒有辦法的。
而且,對于網站的霸王條款,用戶往往是弱者,沒有討價還價的能力,網站利用你的創作吸引了客戶和流量,而你卻不能分享其中的利益,或者只能拿到微薄的回報。
從這點講,Web3是有革命性的:
在Web3,公司不僅不再能控制你的數據,而且也不能控制你的收益。
如此有價值的東西,而且處于初期,你說人們能不興奮嗎。
Q:為什么會這樣?網站難道不再能控制它的數據了?
因為最主要的數據,已經不在網站的數據庫中了。
最主要的數據,在區塊鏈上。
區塊鏈的數據安全性,想必你是知道一點的,一是誰也改不了數據,二是沒有私鑰就轉移不了資產。
而私鑰只在你手里。(你自己要保管好啊,長點心眼!)
Q:網站為什么愿意把數據放在區塊鏈上?存在自己數據庫里它不香嗎?
如果有兩個提供同樣功能的網站,一個是傳統技術,一個提供可信的數據資產保護,還能讓人們得到收益,你說人們會選擇哪個?
這就是OpenSea.io會脫穎而出的原因。
Q:OpenSea是怎么做到這點的?
用戶上傳自己創作的圖片,給它標價(list),或等待他人出價(offer)。
如果有人買,OpenSea收取成交價格的2.5%作為手續費。
圖片作者,除了首次交易獲利外,后續這個作品再被出售時(不管多少次),仍能每次抽成2.5%(這個值可以設置高達10%)。
OpenSea本身的業務邏輯,都寫成智能合約放在區塊鏈上,所以數據的安全性由區塊鏈保護。
圖片所有者的權益,由私鑰保護。
而且,所有交易,都能在區塊鏈上公開查詢。
采用傳統技術的網站,是做不到這些的。
OpenSea仍然會有業務邏輯漏洞或者網站技術漏洞,但區塊鏈保護了最重要的東西。
Q:私鑰長什么樣子啊,給我看一眼?
0x96e716aac85c9bb67adcdff650379304cb2caf9df3cb88b39aedfd58da530db9
這個私鑰僅僅是我臨時生成的,不要把這個私鑰導入你的錢包,因為它已經曝光了。
Q:私鑰這么長?這怎么記啊
私鑰一般是用錢包(比如MetaMask這樣的)來管理的,你不用記。
關于私鑰的備份或者恢復這類事情,有很多成熟方案和注意事項,這里就不講了。
Q:就這些?這能讓人興奮嗎?
什么事能讓人興奮?突如其來的巨大好處。
Web帶來了什么好處?
一是DApp的所有底層數據都公開給大眾,而且還能防篡改。
二是區塊鏈自帶激勵機制,你不僅能保護數字資產,還能兌換token。
以前可沒有這等好事,也就這幾年才有。
Q:我不裝了,我是搞技術的,我搞過開發,你能給我講講Web3在系統架構上和以前有什么不同嗎?
你搞過開發,那么下圖的左邊你一看就明白是啥吧:
如果你懂以太坊,右邊是不是也很好懂?
Q:哦,明白了,前臺和以前沒太大不同,后臺變成以太坊了唄。
對,就像我前面說的,最核心的數據在以太坊。
Q:那我怎么調用以太坊的數據和代碼呢,我從來沒有寫過這樣的程序。
以太坊所謂的去中心化,其實就是很多節點一起維護數據而已,上面不僅有數據,而且還有代碼,代碼也就是人們常說的智能合約。
每個節點都可以廣播交易請求,然后,其他節點會執行該交易,并將產生的數據變化(術語叫狀態變化)記錄在區塊鏈上。
你的前臺想與區塊鏈互動,要求能發出交易,為了做到這點,要么你自己維護一個節點,要么你與其中一個節點互動。
一般人都懶得自己搭節點(費時費力費存儲),所以大多使用第三方服務如Infura或Alchemy提供的節點服務,讓這些服務幫助發出交易。
當然,這涉及到一個是否信任他們的問題,后面還會說到。
Q:那我怎么使用Infura這些服務呢?我可當過程序員的,你稍微詳細說一說唄。
你去Infura或者Alchemy的網站,注冊個賬號,然后他們會給你個鏈接(provider)讓你用。
比如一個provider長這個樣子:
https://etheruem-mainnet.infura.io/v3/491234567abced4456abcaabbcdee
(上面這個是我瞎編的,不要直接用它,自己申請一個)
然后你安裝Web3.js這種庫(或者用Web3.py庫,這種可以和區塊鏈通信的庫都可以被理解為Web3 API),和provider建立連接,做好交易包,發給這個連接就好了(本質上是個json-rpc調用)。
這個provider會把你的交易廣播到以太坊上,并把結果返回給你。
Q:您說的是發送交易,那區塊鏈上的數據我怎么讀呢?
一樣的,還是使用Web3的API,你可以讀取區塊和交易的具體數據。
你還可以對智能合約的Event進行監聽(比如用Web3.js監聽,并指定回調函數,一旦發生事件就可自動處理)。
此外,還有一種叫“The Graph”的API,程序員可以用GraphQL作為查詢語言,方便快捷地查詢區塊鏈上的各類數據。The Graph會把各種數據都準備和索引好,你就不用自己費力去啃生肉(讀原始數據并解析)了。
Q:啊啊,就這么簡單啊,說的我都蠢蠢欲動了,我是不是應該開發個DApp了?
在足夠簡單的情況下,你可能開發一個頁面就能實現一個DApp。
Q:那用戶登錄會不會有所不同?
你太聰明了,的確如此,你不再需要保存用戶名和密碼信息(除非你很想這么做),讓他們用錢包登錄就好了。
另外,錢包也具備provider功能,你可以不用去連Infura或者Alchemy,你讓頁面腳本直接連用戶的錢包,讓用戶錢包和區塊鏈通信。
不過,要知道,MetaMask背后用的也是Infura。
Q:什么是錢包?干什么用?長什么樣子?
對于crypto(加密技術、區塊鏈愛好者)而言,錢包指的就是加密錢包,它幫你生成私鑰,生成地址。
用戶的私鑰是保存在錢包里面的,所以進入錢包需要一個口令保護,否則別人接觸你電腦就拿走私鑰了。
一個DApp如果涉及改動數據,就需要調用用戶的錢包,在用戶的確認下,對交易做簽名,然后發出。
比如最流行的錢包MetaMask,長得是這個樣子:
現在,你可以在腦海里建立這樣的架構:
Q:還有一點,聽說Web3喜歡把東西存在IPFS上,這是什么意思,為什么不是存在以太坊上?
以太坊上存東西很貴的,所以只存最重要的數據。
如果是圖片、文檔、音視頻這種比較大的數據,現在很多還是使用傳統技術存儲。
當然,為了“去中心化”,可以把數據放在IPFS上。IPFS是一個去中心化的存儲協議,使用、借鑒了BT(BitTorrent)、Git(版本管理)、DHT(分布式哈希表)等技術,可以說,在文件分布式存儲方面,集合了一些最先進也是最好用的技術。
和Web1、Web2不一樣的是,在IPFS網絡上,文件的CID(hash)決定了它的URI(鏈接),也就是說,相同的文件有相同的鏈接。這和以前是完全不一樣的,
比如BAYC之1號猿的IPFS地址為:ipfs://QmeSjSinHpPnmXmspMjwiXyN6zS4E9zccariGR3jxcaWtq/1
還有一個叫SWARM的,也是去中心化存儲,和IPFS的關鍵技術是類似的,但又不太一樣。由于是以太坊基金會主導的,所以也備受關注,這里就不多說了。
Q:你一直在說去中心化,為什么crypto都這么喜歡去中心化呢,這難道真的很好嗎?
其實,提倡“去中心化”,就是對現行“中心化”互聯網的一種不放心、不信任,就是對數據安全的極度關心。
中心化的架構下,用戶的數據保存在公司那里,萬一哪天它倒閉了怎么辦?
比如你在一個繪圖網站辛辛苦苦做了1000張圖,結果突然某天網站說:“不好意思,數據丟失”,你怎么辦?
比如你在一個視頻APP上,辛辛苦苦上傳了10000個視頻,結果某天該公司說,不好意思,我們放棄此產品,你怎么辦?
你只能認了。因為在用戶服務協議上,公司對于數據丟失和停止服務,都安排得明明白白的。
比如,某著名APP在“用戶協議”里是這么說的:
“您理解并同意,公司為了整體服務運營、平臺運營安全的需要,有權視具體情況決定服務/功能的設置及其范圍修改、中斷、中止或終止本軟件及相關服務。”
“您理解并同意,本軟件及相關服務可能會受多種因素的影響或干擾,公司不保證軟件及相關服務完全適合用戶的使用要求;不保證軟件及相關服務不受干擾,及時、安全、可靠或不出現錯誤;不保證軟件及相關服務中任何錯誤都將能得到更正。”
這就是說,你在使用時,已經劃勾同意了:公司隨時可以中止服務,公司也不保證服務不出現錯誤,也不保證錯誤都能修復。
公司還可以根據自己的標準,刪除用戶的數據,拒絕用戶的發布:
“如果公司有理由認為您的行為違反或可能違反上述約定的,公司可獨立進行判斷并處理,且在任何時候有權在不事先通知的情況下終止向您提供服務,并依法追究相關責任。”
此外,公司還能用你的作品掙錢,而且還不給你錢。
你看,在Web2里面,在中心化的模式下,什么都是公司說了算,用戶為了使用公司的服務,一般只能接受,有什么辦法呢。
這頗有點像員工和公司的關系,公司讓你996,你就996唄,換工作也挺不容易的,而且換了也是996。
于是有人就想出了“去中心化”的東西,用戶的數據,不是一個實體(人)管,而是1000個人管。
而且這1000個人,嚴格按照協議行事,要想改數據,得大多數人都同意才成!
這1000個人,天涯海角,素昧平生,共同保護了用戶數據的可用性和完整性。?
Q:我看您提到可用性和完整性,那數據的“保密性”呢?
我之所以沒說保密性,是因為區塊鏈其實更強調公開、透明。
如果需要提供保密性,那也不難。
你想,crypto建立的世界,還用發愁這事嗎?
Q:但Web3世界也發生了很多黑客事件啊,你能說它安全嗎?
程序都是人寫的,人寫的就會有Bug,道理就是這么簡單。
但BTC和ETH這種基礎性的東西,已經在早期非常少數的幾次攻擊之后,非常健壯地運行了多年。
雖然都會有問題,但從安全性上看,Web1、Web2和Web3是沒法比的。
Q:這1000個人憑什么就要為大家服務呢?
所有的crypto技術,在設計協議時,都會考慮其激勵模型,也就是如何讓干活的人得到好處。
所以,你會看到形形色色的加密貨幣、代幣、Token這些。
只要你按照區塊鏈的協議干事,為數據安全做了貢獻,你就會得到好處。
而用戶,也可以在DApp里面做貢獻,賺Token。
所以,在區塊鏈里,所有參與者是共享生態和收益的。
這個以前是有很大不同的(這里不多說了)。
Q:可現在所謂的去中心化,哪里能真正做到呢,infura和alchemy不就是中心化的嗎,你們這么多人都用。
Signal創始人Moxie在他的一篇文章3、4中說:
“幾乎所有DApp都使用Infura或Alchemy來與區塊鏈交互,而且沒有使用任何東西來驗證區塊鏈狀態或響應的真實性。這讓我很驚訝。創建一個去信任的分布式共識機制已經投入了大量的工作、精力和時間,但幾乎所有希望訪問它的客戶都是通過簡單地信任這兩家公司的輸出來實現的。”
“區塊鏈的支持者可能會說,如果出現這些類型的中心化平臺也沒關系,因為區塊鏈上的數據是完整可用的,如果這些平臺行為不端,客戶可以簡單地轉移到其他地方。”
嗯,他發現了問題,然后自己回答了問題,回答得很好。
Q:像我這種從來沒有接觸過Web3的人,怎么能夠切身感受一下呢?
用chrome瀏覽器,或者firefox瀏覽器,裝個MetaMask錢包。
然后打開OpenSea,先感受一下NFT。
這是一個典型的Web3應用。
Q:可OpenSea不也是中心化的嗎?你就敢信任它?
OpenSea只是一個前端,前端的中心化不足為懼,因為這種中心化可以被打破。
OpenSea后端的數據是在區塊鏈上,這才是人們最關心的。
Q:衛sir你以前說過,NFT的圖片其實并不在區塊鏈上的,這也不好吧。
是的,我在《用直觀抓住NFT》這篇文章里說過這件事。
Moxie也發現了這點,他是這么說的:
“NFT不是將數據存儲在鏈上,而是包含一個指向數據的URL。看看流行市場上以數十、數百萬美元出售的許多NFT,該URL通常只是指向某個運行Apache的VPS。任何有權訪問該機器的人、將來購買該域名的任何人或任何破壞該機器的人都可以隨時將NFT的圖像、標題、描述等更改為他們想要的任何內容(無論是否不是他們“擁有”該NFT)。”
我的理解是,現在是Web3的早期時代,一切都還很粗糙,以太坊存儲很貴,IPFS又還沒有普及開來,現在只是最重要的數據在區塊鏈上,還有很多數據仍然是中心化的。
就先這樣吧,飯要一口一口吃,關鍵看未來的發展。
你喜不喜歡它,要看你的認知,你覺得它是寶貝也可以,你覺得它是狗屎也可以。
這就好比,30年前的人,第一次看到Web1的互聯網,覺得這玩意能有什么用呢?
畢竟,Moxie這篇文章的標題是:My first impressions of Web3。
Q:看上去,后端都可以去中心化了,那網站前臺能去中心化嗎?
當然可以,網站前臺無非也就是一些html/css和腳本文件嘛,放到去中心化存儲系統上就好了。
現在,Web3架構可以想象成這樣:
Q:還有一點,我聽人說,以太坊上的gas費很貴,然后速度又很慢,每秒可容納的交易很少,這怎么可以用呢?
嗯,這確實是個大問題,gas費貴是因為大家都想用,那就出價高的先用。
單位時間容納的交易筆數少,是因為每個區塊的大小是有限制的,目前最大也就30Mgas,平均出塊時間也就 15秒左右,每筆交易花大約幾萬到幾十萬gas,你說能有多少筆交易呢(不用算了,每秒十幾筆)。
所以現在有很多人致力于二層技術,就是想在二層解決這個問題,雖然一層的eth2也在致力于解決這個問題。
Rollup技術(包括optimistic rollups、zk rollups)是目前二層方案中最有前景的,Arbitrum One、Optimism、Metis等解決方案是optimistic rollups技術的優秀代表;zkSync和StarkEx則是zk rollup的優秀代表,而且這些二層方案本身也都是去中心化的。
“顧名思義,Rollup技術就是把一堆交易卷起來變成一個rollup交易,所有節點接收到這個rollup交易之后,不去執行被卷起來的邏輯,而只去接受這些邏輯的執行結果。因此這個rollup交易所需要的gas會遠小于執行這些交易的gas。”5
二層的每秒交易數可達數千筆,這就大大解決了一層的擁堵和昂貴問題。智能合約可以直接部署在二層,DApp也可以直接調用二層,一層更多就是在用堅實的算法保證數據安全。
這個架構圖你可以腦補一下(在provider和ethereum中間再加一層)。
Q:他們真的能去中心化地解決容量問題嗎?
放心吧,計算機和網絡技術發展這么多年,我就沒見過解決不了容量問題的。
CPU、內存、存儲、網速,哪一個的容量問題沒有解決呢。
這些年唯一沒解決的,是電池容量。
Q:我問最后一個問題,人們對Web3真的有需求嗎?
可以換個問法:人們真的需要保護自己的數據資產嗎?
審核編輯:劉清
-
數據庫
+關注
關注
7文章
3709瀏覽量
64020 -
Web服務器
+關注
關注
0文章
137瀏覽量
24315
原文標題:吊炸天的Web3,到底是個啥
文章出處:【微信號:鮮棗課堂,微信公眾號:鮮棗課堂】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論