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