時(shí)間:2023-06-24|瀏覽:195
相信你對位置尋址已經(jīng)非常熟悉了,無論是尋找文件還是訪問網(wǎng)頁,我們都需要輸入一串地址來定位或找到這些東西。
這種習(xí)慣不僅體現(xiàn)在互聯(lián)網(wǎng),也是我們在現(xiàn)實(shí)中經(jīng)常使用的方式。比如有人要你去他家?guī)兔φ乙槐緯?,按照位置尋址的模式,他會形容這本書的位置:“xx大街xx號,上二樓,在左手邊的書架從上到下第二層,從右到左第三本書”。只要他提供的信息絕對正確,且書架和住處不改變,你就能找到他想要的書。
內(nèi)容尋址又是什么呢?我們知道它是根據(jù)內(nèi)容進(jìn)行搜索,如果使用上述找書的例子,那對方會形容“我要找本名為《xxx》的書,它的ISBN編號為xxxxx”,這樣,如果這本書在家,無論位置在哪,你都可以直接通過書名找到這本書,如果在圖書館,你也可以通過搜索ISBN編號正確找到它。
如果要找的內(nèi)容轉(zhuǎn)移到互聯(lián)網(wǎng)上,位置尋址則是使用URL創(chuàng)建鏈接來鏈接數(shù)據(jù),以提供數(shù)據(jù)的主要位置,這種方式很方便,但也會有一些問題。
首先,我們會先入為主地通過URL猜測內(nèi)容是什么,比如一串URL以dog.jpg結(jié)尾,那么我們會認(rèn)為這個(gè)URL導(dǎo)向的是一張小狗照片,但實(shí)際上,它可能是一段音樂或者一個(gè)視頻。在很多時(shí)候,容易造成信息傳達(dá)錯(cuò)誤的情況。
其次,URL導(dǎo)向的數(shù)據(jù)本身一般是存儲在中心化服務(wù)器上的,因此在訪問前,我們并不知道訪問它的權(quán)限、安全性等,也不知道該鏈接是否正確導(dǎo)向我們需要的內(nèi)容,除非你專門去確認(rèn)。
如果數(shù)據(jù)已經(jīng)從服務(wù)器刪除,那么你通過這個(gè)URL永遠(yuǎn)無法找到你需要的數(shù)據(jù)。想再次尋找它,過程十分艱難。
最后,位置尋址會使數(shù)據(jù)被大量的反復(fù)存儲、并鏈接到新的URL,從而導(dǎo)致大量冗余——比如某張圖片可能會被無數(shù)URL進(jìn)行多次保存,久而久之,會使得網(wǎng)絡(luò)處于一種混亂狀態(tài),且無法簡單的進(jìn)行判斷與清理。
如何解決這些問題?答案你已經(jīng)知道了,即內(nèi)容尋址。這是一個(gè)比較新的概念,很多人對它有許多疑惑,比如你可以通過書名找到一本書,但如果這個(gè)內(nèi)容是一張圖片、一段視頻又或是一首歌曲、一串代碼,要怎么正確形容這些內(nèi)容并進(jìn)行搜索呢?
實(shí)際上,內(nèi)容尋址并不是形容通過內(nèi)容本身進(jìn)行搜索,而是使用了一種新的鏈接形式,即加密哈希(Cryptographichashfunction)。這是一種單向數(shù)字算法,可以將任何大小的數(shù)據(jù)映射到固定大小的位字符串,你可把這個(gè)字符串看做是這個(gè)數(shù)據(jù)的唯一名稱。
很明顯,它比xxx.com/dog.jpg難懂多了,但對于數(shù)據(jù)來說,這串?dāng)?shù)字更加安全。因?yàn)榧用芄J菑臄?shù)據(jù)本身的內(nèi)容中導(dǎo)出,意味著任何人對相同的數(shù)據(jù)使用相同的算法都會得到相同的哈希,減少了互聯(lián)網(wǎng)中大量冗余。
此外,加密哈希是唯一的,哪怕你對一張圖片進(jìn)行了一個(gè)像素的改動,那么哈希值也會完全不同,也就是說你只需查看該哈希值,即使無法訪問文件本身,也很容易判斷該文件是否包含相同的數(shù)據(jù)。
它還可以解決中心化網(wǎng)絡(luò)的信任問題——以往我們更信任權(quán)威,但權(quán)威擁有對數(shù)據(jù)的絕對掌控權(quán),而如果不是權(quán)威機(jī)構(gòu),經(jīng)常會遇到一個(gè)URL導(dǎo)向錯(cuò)誤內(nèi)容的惡意欺騙行為。但在去中心網(wǎng)絡(luò)上使用內(nèi)容尋址,即使不了解數(shù)據(jù)托管方,我們也可以通過哈希確認(rèn)是否有文件內(nèi)容方面是否有欺騙。
上文中我們還提到,如果文件丟失,我們則無法通過保存的URL找到它,但加密哈??梢宰龅?,在全網(wǎng)范圍內(nèi),只要我們匹配到相同的哈希值,無論是論文、視頻或者JSON對象,都一定能找到完全相同的文件!
IPFS和Filecoin又是如何使用內(nèi)容尋址的呢?答案是CID(ContentIdentifier)。CID是包含加密哈希和編解碼器的單個(gè)標(biāo)識符,包含有關(guān)“如何解釋該數(shù)據(jù)”的信息。編解碼器以特定格式對數(shù)據(jù)進(jìn)行編碼和解碼。
CID還有一個(gè)作用,即可以統(tǒng)一不同的加密哈希。目前去中心化網(wǎng)絡(luò)中,很多工具與協(xié)議都開始使用內(nèi)容尋址,如Git工具、以太坊和比特幣等協(xié)議,但不同的協(xié)議與工具在解釋數(shù)據(jù)和加密函數(shù)的方式都是有所不同的,CID可以為任何這些系統(tǒng)創(chuàng)建一個(gè)通用標(biāo)識符。
只要通過EveryCID標(biāo)識符。它包含用于解釋數(shù)據(jù)的codec和一個(gè)自描述哈希multihash,它可以告訴你這個(gè)加密哈希具體是使用哪種類型哈希函數(shù)創(chuàng)建的。
無論是中心化還是去中心化網(wǎng)絡(luò),我們都需要依靠“鏈接”這一功能將資源聯(lián)系在一起,傳達(dá)信息,它使得網(wǎng)絡(luò)具有交互性。
因此,為了網(wǎng)絡(luò)的安全與進(jìn)步,不斷完善這個(gè)鏈接是非常必要的,IPFS與Filecoin則更進(jìn)一步,通過CID來表達(dá)數(shù)據(jù)結(jié)構(gòu),傳達(dá)了數(shù)據(jù)之間的關(guān)系。而這個(gè)進(jìn)步,也是我們邁向web3的必經(jīng)之路。
熱點(diǎn):ipfs