摘要:區(qū)塊鏈是一個分布式系統(tǒng),但包括以太坊、EOS在內的諸多公鏈本身實現(xiàn)的都只是數(shù)據(jù)的分布式計算,而沒有提供數(shù)據(jù)的分布式存儲,這導致分布式的區(qū)塊鏈系統(tǒng)無法真正徹底地做到分布式。
作者丨李畫
編輯|熊吉
區(qū)塊鏈是一個分布式系統(tǒng),但包括以太坊、EOS在內的諸多公鏈本身實現(xiàn)的都只是數(shù)據(jù)的分布式計算,而沒有提供數(shù)據(jù)的分布式存儲,這導致分布式的區(qū)塊鏈系統(tǒng)無法真正徹底地做到分布式。
IPFS(Inter Planetary File System,星際文件系統(tǒng))協(xié)議解決的正是這樣一個問題,它是分布式文件系統(tǒng),可以實現(xiàn)數(shù)據(jù)的分布式存儲。同時它也是一個去中心化網(wǎng)絡的基礎設施,包括公鏈在內的不同類型的應用都可以構建在它的基礎之上。
如果說公鏈是高速公路,IPFS則是高速公路路面之下的層層地基中重要的一層,它為不同的公鏈和應用提供數(shù)據(jù)的分布式存儲這一支持。
IPFS并非全新發(fā)明,它是幾十年來分布式系統(tǒng)探索的產物,綜合了包括DHT(Distributed Hash Table),BitTorrent,Git和SFS(Self-Certified Filesystems)在內的優(yōu)秀思想。IBFS對它們做出適合區(qū)塊鏈系統(tǒng)的改進,并通過分層設計將它們組合成一個新的系統(tǒng)。
本文將去繁從簡,以數(shù)據(jù)的存取過程為線索,通過對IPFS最關鍵的三個系統(tǒng)技術的分析,看它是如何滿足區(qū)塊鏈數(shù)據(jù)的分布式存儲需求的。
01 Merkle DAG
當把文件存儲到IPFS系統(tǒng)中時,文件并不是以一個完整的個體被存儲,文件數(shù)據(jù)以平均分割法的方式被切分成若干個256KB大小的塊。這些塊在經(jīng)過哈希運算后,也并不是存儲在單個中心化的服務器上,而是分開存儲在網(wǎng)絡中的各個分布式的節(jié)點之中,沒有節(jié)點擁有特權。
這一分布式存儲的難點不在于文件的切割或加密,而在于如何把這些被分割的和被分開存儲的數(shù)據(jù)重新組合成一個文件,這正是IPFS協(xié)議的第一個關鍵技術——Merkle DAG(Merkle Directed Acyclic Graph,默克爾有向無環(huán)圖)。
Merkle DAG從Git系統(tǒng)(林納斯·托瓦茲創(chuàng)作的分布式版本控制系統(tǒng))改造而來,是在Merkle Tree(如下圖所示)的基礎上構建,儲存的是哈希值。IPFS上大部分數(shù)據(jù)對象都是以Merkle DAG的結構存在。
當從網(wǎng)絡中獲取文件時,先從可信的節(jié)點獲得文件的Merkle Tree樹根哈希值。一旦獲得了樹根,就可以從其他不可信的節(jié)點獲取Merkle Tree的各個節(jié)點的哈希值。通過可信的樹根來檢查接收到的Merkle Tree節(jié)點,如果Merkle Tree某節(jié)點是損壞的或者虛假的,就從其他存儲節(jié)點獲得另一個Merkle Tree節(jié)點,直到最終獲得一個與可信樹根匹配的Merkle Tree。
這樣一來,從上至下,直到獲得最底層的被切割成小塊的數(shù)據(jù)的哈希,最終形成一個完整的正確的文件。
由于Merkle DAG是基于哈希值的,而哈希值取決于數(shù)據(jù)塊的內容,因此IPFS協(xié)議擁有內容尋址的功能(HTTP是基于域名尋址),此外它還有防篡改和去重復的功能。防篡改是因為可以通過檢查哈希值來確認數(shù)據(jù)是否被篡改;去重復是由于相同內容的數(shù)據(jù)塊哈希是相同的,可以去掉重復的數(shù)據(jù),節(jié)省存儲空間。
02 DHT
依靠Merkle DAG,可以構建一個數(shù)據(jù)結構用于實現(xiàn)分布式的數(shù)據(jù)存儲,但還缺最后一步,Merkle DAG存儲的哈希值如何定位到具體存儲數(shù)據(jù)的節(jié)點,也就是說,應該把數(shù)據(jù)分配到哪一個網(wǎng)絡節(jié)點去存儲,以及去從哪一個網(wǎng)絡節(jié)點獲得存儲數(shù)據(jù)。DHT(Distributed Hash Table,分布式哈希表)便是用來解決這一問題的方法。
哈希表是一種存儲“鍵值對( Key/Value Pairs)”的容器,它能方便快速地通過key值來獲得 value值。在DHT中,key是被存儲數(shù)據(jù)的哈希值,通過K/V可以實現(xiàn)數(shù)據(jù)塊與目標節(jié)點的映射關系。
哈希表被分割成不連續(xù)的塊,每個節(jié)點被分配一個屬于自己的哈希塊,也稱做區(qū)間表,并成為這個哈希塊的管理者,當用戶存儲數(shù)據(jù)時,系統(tǒng)對數(shù)據(jù)進行哈希運算,根據(jù)哈希運算的結果決定此數(shù)據(jù)由哪個節(jié)點負責儲存,并生成哈希表。
當用戶提取數(shù)據(jù)的時候,用同樣的算法計算數(shù)據(jù)的哈希,然后從哈希表獲得對應的數(shù)據(jù)存儲位置(如下圖所示)。
DHT是分布式系統(tǒng)的關鍵技術,實現(xiàn)它的方法有很多種,IPFS采用的是基于S / Kademlia和Coral的算法。
03 BitSwap
僅僅實現(xiàn)數(shù)據(jù)的分布式存儲還遠遠不夠,數(shù)據(jù)還需要在節(jié)點之前有效的交換,從而使得整個系統(tǒng)能夠高效運轉。IPFS協(xié)議 受BitTorrent 的啟發(fā),通過對等節(jié)點間交換數(shù)據(jù)塊來分發(fā)數(shù)據(jù)。
BitTorrent 是一種點對點傳輸?shù)木W(wǎng)絡協(xié)議,它可以在存有不信任對等節(jié)點的網(wǎng)絡中分發(fā)數(shù)據(jù),對于一個文件,下載的用戶數(shù)越多,下載的速度就越快,部分的網(wǎng)絡擁堵或服務器宕機也不會對整個系統(tǒng)造成大的影響。不過BitTorrent有一個致命的缺點,就是節(jié)點往往更多的是索取而不是貢獻。
如何激勵節(jié)點分享數(shù)據(jù)?IPFS在BitTorrent的基礎上進行了創(chuàng)新,增加了包括信用、策略、帳單在內的體系,這一體系之上的新的數(shù)據(jù)交換協(xié)議被稱做BitSwap。
在BitSwap協(xié)議下,發(fā)送數(shù)據(jù)給其他節(jié)點可以增加節(jié)點信用值,而從其他節(jié)點接受數(shù)據(jù)則會降低節(jié)點信用值。
也就是說,如果一個節(jié)點持續(xù)分享數(shù)據(jù),其他節(jié)點給它發(fā)送數(shù)據(jù)的概率就會越來越大;而如果一個節(jié)點只接收數(shù)據(jù)而不分享數(shù)據(jù),其他節(jié)點給它發(fā)送數(shù)據(jù)的概率就會越來越低,直到低到被其他節(jié)點忽略(如下圖所示)。
此外,BitSwap獲取數(shù)據(jù)塊的時候不限于從同一組對等節(jié)點中,在該協(xié)議里存在一個對等節(jié)點形成的大集群,它包括所有的數(shù)據(jù)塊,這使得BitSwap的效率相比于BitTorrent更高。
04 結語
Juan Benet在2014年5月成立了Protocol Labs協(xié)議實驗室,并在2015年1月發(fā)布了IPFS。IPFS在本質上是一個內容尋址的分布式存儲和傳輸協(xié)議。
IPFS被寄予厚望,它是目前階段最好的分布式存儲解決方案之一,人們甚至認為它可能取代超文本傳輸協(xié)議(HTTP,HyperText Transfer Protocol)。但另一方面,它在目前階段還不夠成熟,仍面臨著包括安全性、可用性在內的諸多問題。
最后,簡單介紹一下Filecoin和Filenet。
Filecoin和Filenet都是運行在IPFS上的激勵層,通過Token激勵讓節(jié)點有動力為網(wǎng)絡提供存儲空間,從而在IPFS協(xié)議的基礎上構建一個分布式的存儲網(wǎng)絡。但Filecoin和Filenet彼此獨立,是兩個不同的項目,采用的也是不同的Token分發(fā)模式。從某種角度而言,任何組織都可以在IPFS上搭建自己的激勵層。
【本文為投資家網(wǎng)原創(chuàng)文章,轉載或內容合作請聯(lián)系投資家網(wǎng),違規(guī)轉載,法律必究。】
媒體一致認為,Consensus2024在區(qū)塊鏈和加密領域具有廣泛的影響力,是TRON展示其比較新進...
劉衛(wèi)兵副會長指出,當前,數(shù)據(jù)已經(jīng)成為驅動經(jīng)濟發(fā)展、社會治理和技術創(chuàng)新的寶貴資源。
“三農”問題是關系國計民生的根本性問題,自黨的十九大報告提出鄉(xiāng)村振興戰(zhàn)略以來,促進鄉(xiāng)村相關產業(yè)發(fā)展成...
10月24日下午,倡議“1024區(qū)塊鏈活動日”第三次系列活動暨鄉(xiāng)村產業(yè)鏈改大會·鄉(xiāng)村振興鏈改助農大會...
【#聯(lián)想創(chuàng)投旗下基金等入股浙江人形機器人創(chuàng)新中心#】
投資家網(wǎng)(m.51baobao.cn)是國內領先的資本與產業(yè)創(chuàng)新綜合服務平臺。為活躍于中國市場的VC/PE、上市公司、創(chuàng)業(yè)企業(yè)、地方政府等提供專業(yè)的第三方信息服務,包括行業(yè)媒體、智庫服務、會議服務及生態(tài)服務。長按右側二維碼添加"投資哥"可與小編深入交流,并可加入微信群參與官方活動,趕快行動吧。
2016年注冊于北京的中氫新能技術有限公司,下設位于大興的裝備制造公司、位于海淀區(qū)的技術研究院、材料...
一度無比高光的理想汽車,猝不及防遭遇重挫。
2024年1月10日,由投資家網(wǎng)主辦,財經(jīng)銳眼、有時間協(xié)辦,北京微金科技有限公司承辦的“第十二屆股權...
2024年1月10日,由投資家網(wǎng)主辦,財經(jīng)銳眼、有時間協(xié)辦,北京微金科技有限公司承辦的“第十二屆股權...
2024年1月10日,由投資家網(wǎng)主辦,財經(jīng)銳眼、有時間協(xié)辦,北京微金科技有限公司承辦的“第十二屆股權...