基于區(qū)塊鏈分布式存儲(chǔ)的網(wǎng)絡(luò)協(xié)議IPWeb介紹
當(dāng)前,全球處在一個(gè)由工業(yè)時(shí)代逐步過(guò)渡到信息時(shí)代的階段,數(shù)據(jù)正在成為世界上最有價(jià)值的資源。伴隨人類的各種行為,產(chǎn)生了龐大的數(shù)據(jù),如何存儲(chǔ)這些數(shù)據(jù)并進(jìn)一步利用好數(shù)據(jù),這個(gè)問(wèn)題變得越來(lái)越重要。從內(nèi)部部署存儲(chǔ)遷移到云存儲(chǔ)是過(guò)去十年的主題,而且這一趨勢(shì)正在加速。另一方面,大量的存儲(chǔ)空間在世界各地的人們的硬盤上未被使用,很多資源在無(wú)形中被浪費(fèi)了。
區(qū)塊鏈技術(shù)的誕生,為軟件定義存儲(chǔ)的發(fā)展開辟了新的道路。它創(chuàng)造了一種可能:在技術(shù)層面和經(jīng)濟(jì)體系層面重新思考云存儲(chǔ)并解決行業(yè)困境。首先,存儲(chǔ)的池化可以在更廣闊的空間,以更豐富的形態(tài)來(lái)實(shí)現(xiàn)。其次,區(qū)塊鏈的 Token 激勵(lì)機(jī)制,可以驅(qū)動(dòng)大家將企業(yè)級(jí)存儲(chǔ)、服務(wù)器、PC、移動(dòng)存儲(chǔ)等的剩余存儲(chǔ)空間貢獻(xiàn)出來(lái)。最后,每個(gè)節(jié)點(diǎn)實(shí)際存放的數(shù)據(jù)只是數(shù)據(jù)的一些切片,而且這些切片還以加密的方式保存起來(lái)。數(shù)據(jù)能夠更安全地保護(hù)起來(lái),即使提供存儲(chǔ)節(jié)點(diǎn)的用戶有機(jī)會(huì)查看這些切片,看到的也是沒(méi)有實(shí)際意義的數(shù)據(jù)段。區(qū)塊鏈的DAO這種分布式商業(yè)模式,有機(jī)會(huì)借助全球的資源和人才,類似眾人拾柴火焰高一樣,加速分布式存儲(chǔ)產(chǎn)業(yè)的發(fā)展。與現(xiàn)有云存儲(chǔ)解決方案相比,基于區(qū)塊鏈的分布式存儲(chǔ)更安全、更快、成本更低、更具審查性,并且分布更廣。它創(chuàng)造了一個(gè)允許人們把他們備用存儲(chǔ)空間貨幣化的市場(chǎng),全球存儲(chǔ)市場(chǎng)的涌入的供應(yīng)將降低存儲(chǔ)價(jià)格。區(qū)塊鏈能夠保證以安全、去信任、點(diǎn)對(duì)點(diǎn)的方式做到這一點(diǎn)。從中心化存儲(chǔ)到去中心化存儲(chǔ)。從中心化互聯(lián)網(wǎng)到去中心化互聯(lián)網(wǎng)。我們正站在歷史的轉(zhuǎn)折點(diǎn)。
基于區(qū)塊鏈的分布式存儲(chǔ)優(yōu)勢(shì):
1)分布式存儲(chǔ)真正發(fā)揮了共享經(jīng)濟(jì)的優(yōu)勢(shì)。用戶可以將硬盤的空余空間充分的利用起來(lái),并且獲得收益。
2)數(shù)據(jù)被切割成小塊后,需要經(jīng)過(guò)加密后才會(huì)分散到眾多節(jié)點(diǎn)上。即避免了中心化存儲(chǔ)“竊取”文件的事件,同時(shí)即便解鎖某一塊數(shù)據(jù),也只是部分?jǐn)?shù)據(jù),并非全部。另外,也不用擔(dān)心中心化服務(wù)器因?yàn)楣收显斐傻臄?shù)據(jù)泄露等風(fēng)險(xiǎn)。
3)文件在下載的過(guò)程中,碎片會(huì)進(jìn)行重組,并行的速度會(huì)遠(yuǎn)大于中心化存儲(chǔ)。
4)通過(guò)智能合約,網(wǎng)絡(luò)可以自動(dòng)判定使用情況以及使用獎(jiǎng)勵(lì)等。
什么是IPWeb?
在此基礎(chǔ)上構(gòu)建的分布式存儲(chǔ)服務(wù)平臺(tái),比中心化存儲(chǔ)更快捷、更安全、成本更低。將文件分割成多個(gè)小的部分(保證一定的冗余性),分散存儲(chǔ)在網(wǎng)絡(luò)眾多節(jié)點(diǎn)上,只要一定數(shù)量節(jié)點(diǎn)的正常運(yùn)轉(zhuǎn),就能保證文件的安全和完整。
當(dāng)用戶輸入一個(gè) URL 在網(wǎng)頁(yè)瀏覽器來(lái)獲取網(wǎng)上信息時(shí),URL 會(huì)解析到一個(gè) IP 地址。這個(gè) IP 地址會(huì)找到存儲(chǔ)著用戶所需要尋找的信息的那臺(tái)服務(wù)器。網(wǎng)上的幾乎每個(gè)發(fā)布者,供應(yīng)商和服務(wù)都會(huì)把信息存在他們控制的特定的數(shù)據(jù)中心的服務(wù)器里,這就讓我們今天的網(wǎng)絡(luò)變得中心化。
IPWeb 網(wǎng)絡(luò)協(xié)議本身能確保用戶的文件得到存儲(chǔ)。作為 IPWeb 挖礦過(guò)程中產(chǎn)生的副產(chǎn)品,創(chuàng)新的加密證明給客戶創(chuàng)造了一套有用且有價(jià)值的服務(wù)。礦工被激勵(lì)去用他們的硬盤空間在 IPWeb 的可驗(yàn)證的存儲(chǔ)市場(chǎng)上賺錢,他們將會(huì)得到等量的獎(jiǎng)勵(lì):礦工存儲(chǔ)的量越大,他們將會(huì)賺取更多的權(quán)益證明 -Token。
我們相信,這些新增的去中心化的儲(chǔ)存空間供應(yīng)會(huì)讓客戶減低網(wǎng)絡(luò)存儲(chǔ)花費(fèi)且享受到更優(yōu)質(zhì)的存儲(chǔ)服務(wù)。作為一個(gè)去中心化的協(xié)議,網(wǎng)絡(luò)上儲(chǔ)存的數(shù)據(jù)和與這些數(shù)據(jù)的鏈接不會(huì)被一個(gè)中央點(diǎn)所控制,這種設(shè)置能提高牢靠性。比起現(xiàn)在單一集中的服務(wù)器和大型內(nèi)容分發(fā)網(wǎng)絡(luò),在 IPWeb 礦工間被大規(guī)模傳送的信息會(huì)被儲(chǔ)存在更靠近用戶的地方,使信息搜索更加快捷。在 IPWeb 上通過(guò)加密算法被編入檢索的數(shù)據(jù)能夠使客戶更加高效地管理和更新龐大的數(shù)據(jù)。最后,作為一個(gè)開源項(xiàng)目,不同于今天大多數(shù)的云存儲(chǔ)與分發(fā)平臺(tái),IPWeb 軟件本身公開接受檢查,驗(yàn)證和提升。隨著 IPWeb 的不斷升級(jí)與新功能不斷地被加入,我們希望 IPWeb 的網(wǎng)絡(luò)可以成為一個(gè)面向大眾(即使不是所有人)的網(wǎng)絡(luò)信息存儲(chǔ)和分發(fā)的平臺(tái)。
IPWeb的基礎(chǔ)設(shè)施
IPWeb 將為所有生態(tài)參與者提供多種基礎(chǔ)設(shè)施,包括:
· 基于共享經(jīng)濟(jì)模式的 P2P 云存儲(chǔ)服務(wù);
· 連接全球數(shù)據(jù)的 P2P 數(shù)據(jù)交易平臺(tái);
· P2P 去中心化互聯(lián)網(wǎng):IPWeb 協(xié)議下的域名系統(tǒng)、瀏覽器;
· 去中心化服務(wù)和內(nèi)容平臺(tái);
· 區(qū)塊鏈:高性能公有鏈、自定義側(cè)鏈;
· 基于去中心化互聯(lián)網(wǎng)生態(tài)的數(shù)字貨幣。
IPWeb的技術(shù)體系
1. 總體架構(gòu)設(shè)計(jì)
IPWeb計(jì)算文件的哈希值作為系統(tǒng)中對(duì)象的唯一標(biāo)識(shí),文件進(jìn)行加密、編碼后產(chǎn)生的碎片為對(duì)象數(shù)據(jù)。存儲(chǔ)節(jié)點(diǎn)將對(duì)象數(shù)據(jù)存儲(chǔ)在自己的存儲(chǔ)單元中,超級(jí)節(jié)點(diǎn)負(fù)責(zé)維護(hù)對(duì)象數(shù)據(jù)到存儲(chǔ)節(jié)點(diǎn)的映射關(guān)系。其中存儲(chǔ)節(jié)點(diǎn)是完全對(duì)等的,通過(guò)一套 P2P傳輸協(xié)議,存儲(chǔ)節(jié)點(diǎn)間可相互傳輸數(shù)據(jù)。超級(jí)節(jié)點(diǎn)作為調(diào)度者,接受存儲(chǔ)節(jié)點(diǎn)的信息,并根據(jù)廣播更新存儲(chǔ)對(duì)象的實(shí)時(shí)信息,以便用戶訪問(wèn)存儲(chǔ)對(duì)象時(shí)可快速的返回對(duì)象位置。
1.1 雙層網(wǎng)絡(luò)設(shè)計(jì)
IPWeb將存儲(chǔ)和檢索兩層網(wǎng)絡(luò)分離,提高了網(wǎng)絡(luò)效率,也降低了挖礦門檻。存儲(chǔ)和檢索對(duì)于礦機(jī)的要求是不一樣的。檢索需要昂貴的算力和能源消耗,而存儲(chǔ)需要存閑置的存儲(chǔ)資源和帶寬資源。存儲(chǔ)和檢索分離更有助于以低成本的礦機(jī)為IPWeb貢獻(xiàn)。
1.2 多鏈結(jié)構(gòu)(主側(cè)鏈設(shè)計(jì):多鏈多共識(shí))
IPW Chain主鏈采用PoRep(復(fù)制證明)、PoE(提取證明)。IPW Chain提供Consensus接口,提供POW、POS、DPOS等實(shí)裝。開發(fā)者可以通過(guò)主鏈提供的Consensus接口創(chuàng)建并完成自己節(jié)點(diǎn)的部署。對(duì)性能要求高的側(cè)鏈可以采用DPOS,對(duì)去中心化要求高的可以采用POW。
2. 存儲(chǔ)網(wǎng)絡(luò)
2.1 DHT
P2P 的本質(zhì)即是一種新的網(wǎng)絡(luò)傳播技術(shù)。這種新的傳播技術(shù)打破了傳統(tǒng)的架構(gòu),逐步地去中心化,扁平化,從而達(dá)到節(jié)點(diǎn)平等的未來(lái)趨勢(shì)。P2P 文件分享的應(yīng)用(BTs/eMules 等 ) 是 P2P 技術(shù)最集中的體現(xiàn)。IPWeb 是以 P2P 文件分享網(wǎng)絡(luò)作為入口,圍繞一個(gè)文件網(wǎng)絡(luò)系統(tǒng),將其可操作性結(jié)合區(qū)塊鏈的公式算法設(shè)計(jì)出新型扁平化,去中心化的云存儲(chǔ)網(wǎng)絡(luò)。同時(shí)保留了區(qū)塊鏈公開,透明的特性。
分布式哈希表 DHT(Distributed Hash Table)是一種分布式存儲(chǔ)方法。在 DHT中,一類可由鍵值來(lái)唯一標(biāo)示的信息按照某種約定 / 協(xié)議被分散地存儲(chǔ)在多個(gè)節(jié)點(diǎn)上,可以有效地避免“中央集權(quán)式”的服務(wù)器(比如:Tracker)的單一故障而帶來(lái)的整個(gè)網(wǎng)絡(luò)癱瘓。和中心節(jié)點(diǎn)服務(wù)器不同,DHT 網(wǎng)絡(luò)中的各節(jié)點(diǎn)并不需要維護(hù)整個(gè)網(wǎng)絡(luò)的信息,而是只在節(jié)點(diǎn)中存儲(chǔ)其臨近的后繼節(jié)點(diǎn)信息,大幅減少了帶寬的占用和資源的消耗。DHT 網(wǎng)絡(luò)還在與關(guān)鍵字最接近的節(jié)點(diǎn)上備份冗余信息,避免了單一節(jié)點(diǎn)失效問(wèn)題。
實(shí)現(xiàn) DHT 的技術(shù) / 算法有很多種,如 Chord、CAN、Pastry、Kademlia 等??紤]技術(shù)成熟度以及市場(chǎng)運(yùn)用情況,IPWeb 使用 Kademlia 算法。Kademlia 通常又被稱為第三代 P2P 技術(shù),是一種 P2P 通用協(xié)議,適用于所有的分布式點(diǎn)對(duì)點(diǎn)計(jì)算機(jī)網(wǎng)絡(luò)。Kademlia 定義了網(wǎng)絡(luò)的結(jié)構(gòu),規(guī)劃了節(jié)點(diǎn)之間的通訊以及具體的信息交互過(guò)程。在Kademlia 中,網(wǎng)絡(luò)節(jié)點(diǎn)之間使用 UDP 進(jìn)行通信,通過(guò)一種分布式哈希表來(lái)存儲(chǔ)數(shù)據(jù),每個(gè)節(jié)點(diǎn)都會(huì)有一個(gè)自己的 ID,在用來(lái)標(biāo)識(shí)節(jié)點(diǎn)本身的同時(shí),也用以協(xié)助實(shí)現(xiàn)Kademlia 算法和流程。
2.2 KAD 網(wǎng)絡(luò)
KAD DHT 存儲(chǔ)網(wǎng)絡(luò)中的節(jié)點(diǎn)(Node)包括如下特性:
· NodeID 在 KAD 中需要是 160bits 或者 20bytes;
· Contact 包含 NodeID(NodeID),Address(string),UDP Port Number;
· Bucket[VaugeKConst]*Contact 用在 Node 的 Routing 中,一個(gè) Bucket 能包含的 k 個(gè)Node,所有的 Node 在 60 分鐘后消失;
· VaugeKConst 統(tǒng)計(jì)上設(shè)為 20;
· Router 包含 Contact 和 KBucket,KBucket 是在 ID 的每一個(gè) bit 中,都有一個(gè) Bucket。
Kademlia使用鍵值來(lái)確認(rèn)在KAD網(wǎng)絡(luò)上的節(jié)點(diǎn)和數(shù)據(jù)。KAD的鍵值是不透明的,長(zhǎng)度160個(gè)比特。參加進(jìn)來(lái)的電腦每一個(gè)都會(huì)擁有一個(gè)鍵值,稱為NodeID,填充在160比特的鍵值空間中。由于KAD存儲(chǔ)內(nèi)容的時(shí)候是由KV(key-value)對(duì)來(lái)存儲(chǔ)的,每一個(gè)在KAD DHT中的Data也都是獨(dú)立于160位鍵值中的key對(duì)應(yīng)的空間的。在開始時(shí),一個(gè)Node不了解任何其他的Nodes。當(dāng)新的Nodes注冊(cè)后,找到這個(gè)節(jié)點(diǎn)的鏈接,然后將新的NodeID存起來(lái)。當(dāng)存儲(chǔ)滿溢,Contact會(huì)被選擇性去掉,然后在bucket內(nèi)部被組織。從一個(gè)Node找一個(gè)NodeID的方式,是從一個(gè)已知的路由表中,從一個(gè)Node找到另一個(gè)最近的Node,直到找到RequestNode。
每個(gè)KAD節(jié)點(diǎn)都有160比特的NodeID,每個(gè)數(shù)據(jù)的鍵值也是一個(gè)160位的標(biāo)識(shí)符。想要確定KV對(duì)存在哪個(gè)節(jié)點(diǎn)中,KAD用了兩個(gè)標(biāo)識(shí)符間距離的概念。在給定兩個(gè)160位標(biāo)識(shí)符,x和y下,KAD通過(guò)他們兩個(gè)的“異或”來(lái)確定他們之間的距離,并表達(dá)為一個(gè)整數(shù)d(x,y)=x⊕y。XOR(異或)獲得到的是系統(tǒng)二叉樹框架中對(duì)距離的定義。在一個(gè)完全的160位ID二叉樹ID中,兩個(gè)ID距離的大小是最小的包含兩個(gè)節(jié)點(diǎn)的子樹。當(dāng)樹不是一個(gè)完全二叉樹的時(shí)候,距離IDx最近的葉是與x共享最長(zhǎng)公共前綴的葉。舉例來(lái)說(shuō),在0011和1001之間的距離則是0011⊕1001=1010,1010通過(guò)整數(shù)表達(dá)則是10,所以在這兩個(gè)節(jié)點(diǎn)的距離則是10。
2.3 節(jié)點(diǎn)身份ID
對(duì)等節(jié)點(diǎn)身份信息的生成以及路由規(guī)則是通過(guò)Kademlia協(xié)議生成制定, KAD協(xié)議實(shí)質(zhì)是構(gòu)建了一個(gè)分布式松散Hash表,簡(jiǎn)稱DHT,每個(gè)加入這個(gè)DHT網(wǎng)絡(luò)的人都要生成自己的身份信息,然后才能通過(guò)這個(gè)身份信息去負(fù)責(zé)存儲(chǔ)這個(gè)網(wǎng)絡(luò)里的資源信息和其他成員的聯(lián)系信息。如果新節(jié)點(diǎn)A需要尋找另外一個(gè)節(jié)點(diǎn)B的聯(lián)系信息,而A節(jié)點(diǎn)沒(méi)有節(jié)點(diǎn)B的聯(lián)系方方式,那么節(jié)點(diǎn)A可以通過(guò)聯(lián)系任意和節(jié)點(diǎn)B有聯(lián)系的節(jié)點(diǎn)來(lái)獲取節(jié)點(diǎn)B的聯(lián)系信息。
2.4 查找算法
在KAD里面的節(jié)點(diǎn)查找過(guò)程是通過(guò)KAD根據(jù)給定的鍵值去定位k個(gè)最近節(jié)點(diǎn)的。KAD在節(jié)點(diǎn)查找中選擇采用的是遞歸算法。發(fā)起查找的一方首先從非空k-bucket中找到一個(gè)節(jié)點(diǎn)(或者,如果那個(gè)bucket有比 α 少的鍵值對(duì)數(shù)組,那他就只能通過(guò)鍵值得到 α 個(gè)最近節(jié)點(diǎn))。發(fā)起方通過(guò)并行異步方式發(fā)送FIND_NODERPC給選到的 α個(gè)節(jié)點(diǎn)。 α 是一個(gè)系統(tǒng)的并發(fā)參數(shù)。在遞歸的階段,發(fā)起方重新發(fā)送FindNode給之前發(fā)過(guò)RPC的節(jié)點(diǎn)。無(wú)法迅速回應(yīng)的節(jié)點(diǎn)就會(huì)被移除,除非直到這些節(jié)點(diǎn)回復(fù)。
如果一輪下來(lái)尋找節(jié)點(diǎn)沒(méi)有找到任何比最近觀察節(jié)點(diǎn)更近的節(jié)點(diǎn),發(fā)起方會(huì)重新發(fā)送FindNode給那些沒(méi)有被請(qǐng)求過(guò)的節(jié)點(diǎn)中尋找k個(gè)最近的。當(dāng)發(fā)起者請(qǐng)求后得到k個(gè)最近觀察節(jié)點(diǎn)的回復(fù)后,查找過(guò)程就會(huì)結(jié)束。每一個(gè)節(jié)點(diǎn)至少知道它每個(gè)子樹中的一個(gè)節(jié)點(diǎn),每一個(gè)節(jié)點(diǎn)都可以通過(guò)NodeID定位到其他節(jié)點(diǎn)。要存一個(gè)KV對(duì),節(jié)點(diǎn)需要通過(guò)鍵值定位對(duì)應(yīng)k個(gè)最近節(jié)點(diǎn)然后發(fā)送STORERPC。要找一個(gè)KV對(duì),節(jié)點(diǎn)需要查找到對(duì)應(yīng)鍵值最近的k個(gè)節(jié)點(diǎn)。但是,值(value)的查找會(huì)使用FIND_VALUE而不是FIND_NODE,而且這個(gè)過(guò)程當(dāng)任何節(jié)點(diǎn)返回值的時(shí)候立刻停止。
2.5 存儲(chǔ)爭(zhēng)議解決
在分布式存儲(chǔ)網(wǎng)絡(luò)中,數(shù)據(jù)節(jié)點(diǎn)分散在不可信任的邊緣網(wǎng)絡(luò)中,需要確保數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)節(jié)點(diǎn)上,并可抵擋女巫攻擊、外包攻擊、代攻擊等作弊手段。在考慮存在惡意節(jié)點(diǎn)情況下,分布式存儲(chǔ)系統(tǒng)需要防范各種攻擊,IPWEB通過(guò)零知識(shí)證明(zkSNARK)和封裝(Seal)來(lái)實(shí)現(xiàn)復(fù)制證明(PoRep)和提取證明(PoE),實(shí)現(xiàn)占用資源少并且效率極高的存儲(chǔ)證明。
復(fù)制證明(PoRep – Proof of ReplicaTIon)
存儲(chǔ)證明區(qū)別于工作量證明、權(quán)益證明等,存儲(chǔ)證明是一種用于分布式存儲(chǔ)領(lǐng)域的共識(shí)算法。是根據(jù)用戶對(duì)分布式云存儲(chǔ)平臺(tái)貢獻(xiàn)的存儲(chǔ)空間,并結(jié)合流量、帶寬、在線時(shí)長(zhǎng)等因素進(jìn)行激勵(lì)。證明允許存儲(chǔ)提供用戶通過(guò)提供副本證明(π)來(lái)說(shuō)服驗(yàn)證者,在驗(yàn)證者發(fā)出隨機(jī)挑戰(zhàn)時(shí),提供證明:證明數(shù)據(jù)X相對(duì)于證明者的特定副本Y已經(jīng)存儲(chǔ)在唯一的專用物理存儲(chǔ)區(qū)了。PoRep算法可以保證每份數(shù)據(jù)的存儲(chǔ)都是獨(dú)立的,可以防止女巫攻擊,外源攻擊和生成攻擊。
PoRep的三個(gè)構(gòu)建階段 :
·PoRep.setup()--》副本 Y,副本 Hash 樹根 Merkel root of Y,封裝證明πSEAL。
·PoRep.prove()--》存儲(chǔ)證明πPoRep。
·PoRep.Verify()--》bit b (存儲(chǔ)有效性證明 b1(πPoRep)^封裝有效性證明b2(πSEAL))。
提取證明(PoE – Proof of Extract)
為了避免一遍遍的檢索存儲(chǔ)節(jié)點(diǎn)是否按照要求正確的存儲(chǔ)了數(shù)據(jù),造成算力資源的浪費(fèi),IPWeb設(shè)計(jì)了新的證明算法提取證明(Proof of Extract),通過(guò)通證經(jīng)濟(jì)的利益驅(qū)動(dòng),當(dāng)存儲(chǔ)節(jié)點(diǎn)響應(yīng)用戶的檢索及下載需求時(shí),存儲(chǔ)節(jié)點(diǎn)主動(dòng)提供一個(gè)證明信息返給檢索礦工。IPWeb不需要再頻繁地檢索某個(gè)存儲(chǔ)節(jié)點(diǎn)是否正確存儲(chǔ)文件,只有當(dāng)文件能被成功檢索到時(shí),網(wǎng)絡(luò)會(huì)執(zhí)行一個(gè)獎(jiǎng)勵(lì)智能合約,該存儲(chǔ)節(jié)點(diǎn)才能獲得獎(jiǎng)勵(lì)。
整個(gè)流程如下:
·IPWeb和存儲(chǔ)節(jié)點(diǎn)先簽訂一個(gè)存儲(chǔ)合約,比如存儲(chǔ)節(jié)點(diǎn)拿出100G的空間用于存儲(chǔ)挖礦;
·存儲(chǔ)節(jié)點(diǎn)開始儲(chǔ)存文件;
·用戶檢索文件時(shí),檢索節(jié)點(diǎn)根據(jù)存儲(chǔ)合約發(fā)送請(qǐng)求給到存儲(chǔ)節(jié)點(diǎn);
·存儲(chǔ)節(jié)點(diǎn)收到檢索請(qǐng)求后,返回一個(gè)存儲(chǔ)證明給到檢索節(jié)點(diǎn);
·檢索節(jié)點(diǎn)驗(yàn)證存儲(chǔ)節(jié)點(diǎn)反饋的證明信息;
·用戶成功從驗(yàn)證的存儲(chǔ)節(jié)點(diǎn)列表調(diào)用該節(jié)點(diǎn)的文件;
·存儲(chǔ)節(jié)點(diǎn)獲取存儲(chǔ)到本次檢索的存儲(chǔ)獎(jiǎng)勵(lì)。
2.6 冗余處理
如果一個(gè)節(jié)點(diǎn)巡查失敗或者不可到達(dá),系統(tǒng)就發(fā)起一個(gè)網(wǎng)絡(luò)復(fù)制過(guò)程,通過(guò)把網(wǎng)絡(luò)上一個(gè)現(xiàn)有的副本轉(zhuǎn)移到一個(gè)新的節(jié)點(diǎn)上。因此,網(wǎng)絡(luò)就能在每次巡查之后恢復(fù)正常。每個(gè)碎片都是唯一加密的。這意味著,當(dāng)惡意用戶只有一個(gè)文件副本時(shí),不能假裝擁有多個(gè)冗余副本。我們可以通過(guò)在集中加密碎片時(shí),加入確定性的混淆值來(lái)完成。即使解密密鑰是一個(gè)已知的特定文件,惡意用戶也不能完成他們沒(méi)有被分配到的碎片的審核。這樣,我們可以證明一個(gè)特定的碎片的冗余,因?yàn)槊恳粋€(gè)冗余副本是獨(dú)一無(wú)二的。
另外,用戶和應(yīng)用都被K-M糾刪碼技術(shù)的參數(shù)和分布式的冗余控制。對(duì)于簡(jiǎn)單的數(shù)據(jù)存儲(chǔ),用戶可以選擇推薦的文件存儲(chǔ)級(jí)別設(shè)置。如果數(shù)據(jù)特別重要,用戶可以選擇高級(jí)別的文件存儲(chǔ)設(shè)置,把數(shù)據(jù)分散到多個(gè)存儲(chǔ)節(jié)點(diǎn)(含多個(gè)超級(jí)節(jié)點(diǎn))中,這能保護(hù)數(shù)據(jù)免受特殊情況的侵?jǐn)_(如自然災(zāi)害等)。
2.7 文件分發(fā)網(wǎng)絡(luò)
其核心思路是避開互聯(lián)網(wǎng)上有可能影響數(shù)據(jù)傳輸速度和穩(wěn)定性的瓶頸和環(huán)節(jié),使文件傳輸?shù)母臁⒏€(wěn)定。通過(guò)在網(wǎng)絡(luò)各處放置節(jié)點(diǎn)服務(wù)器所構(gòu)成的在現(xiàn)有的互聯(lián)網(wǎng)基礎(chǔ)之上的一層智能虛擬網(wǎng)絡(luò),CDN系統(tǒng)能夠?qū)崟r(shí)地根據(jù)網(wǎng)絡(luò)流量和各節(jié)點(diǎn)的連接、負(fù)載狀況以及到用戶的距離和響應(yīng)時(shí)間等綜合信息將用戶的請(qǐng)求重新導(dǎo)向離用戶最近的服務(wù)節(jié)點(diǎn)上。其目的是使用戶可就近取得所需內(nèi)容,解決Internet網(wǎng)絡(luò)擁擠的狀況,提高用戶訪問(wèn)網(wǎng)站的響應(yīng)速度。
3. 加密安全(可搜索加密/IP隱蔽)
在數(shù)據(jù)保護(hù)中,個(gè)人信息的隱私性是需要得到優(yōu)先考慮的,其次要支持的就是動(dòng)態(tài)數(shù)據(jù)的改動(dòng),也就是Dapp對(duì)于去中心化數(shù)據(jù)存儲(chǔ)的修改。IPWeb基于業(yè)務(wù)場(chǎng)景,使用可搜索對(duì)稱加密(SSE: SearchableSymmetricEncrypTIon)方法,SSE由五個(gè)算法組成:
K=KeyGen(k):輸入安全參數(shù)k,輸出隨機(jī)產(chǎn)生的密鑰K。該操作通常在數(shù)據(jù)擁有者端本地執(zhí)行。
(I,C)=Enc(K,D):輸入密鑰K和明文文件集D=(D1,D2,…,Dn),輸出索引和密文文件集。該操作在數(shù)據(jù)擁有者端本地執(zhí)行。
TW=Trapdoor(K,W):輸入密鑰K和關(guān)鍵詞W,輸出關(guān)鍵詞對(duì)應(yīng)的陷門。該操作在數(shù)據(jù)擁有者端本地執(zhí)行。
D(W)=Search(I,TW):輸入索引I和待搜索關(guān)鍵字的陷門TW,輸出包含關(guān)鍵字W的文件的標(biāo)識(shí)符集合。Search操作在Genaro中由密鑰分發(fā)控件執(zhí)行。
Di=Dec(K,Ci):輸入密鑰K和密文文件Ci,輸出解密后對(duì)應(yīng)的明文文件Di。該操作在數(shù)據(jù)擁有者端本地執(zhí)行。
另外,IPWeb將存儲(chǔ)和檢索兩層網(wǎng)絡(luò)分離,提高了網(wǎng)絡(luò)效率,提升了用戶體驗(yàn)。但檢索節(jié)點(diǎn)是整個(gè)P2P網(wǎng)絡(luò)最容易被尋找和攻擊的部分,需要對(duì)檢索節(jié)點(diǎn)有額外保護(hù),通過(guò)對(duì)檢索節(jié)點(diǎn)的IP地址加密保護(hù),用戶無(wú)法通過(guò)IP直接查詢,實(shí)現(xiàn)對(duì)節(jié)點(diǎn)的保護(hù)。
4. 其他技術(shù)創(chuàng)新
4.1 分散存儲(chǔ)
把文件分散成碎片能更好的保證數(shù)據(jù)的安全性,以致于只要存儲(chǔ)的文件是標(biāo)準(zhǔn)碎片大小,就沒(méi)有用戶擁有一個(gè)完整的副本。我們把出租他或者她的硬盤空間給網(wǎng)絡(luò)的用戶定義為用戶。定義標(biāo)準(zhǔn)碎片大小為字節(jié)的倍數(shù)(8KB/16KB/32KB/256KB/1024KB,根據(jù)文件大小,智能篩選分散標(biāo)準(zhǔn))。這些都是保持在預(yù)先設(shè)定的大小,以阻止試圖惡意存儲(chǔ)小文件(對(duì)于大文件,大數(shù)量的碎片切割更有優(yōu)勢(shì)。對(duì)于小文件,特別是對(duì)小于一定大?。ㄈ?4M)的文件,小文件的P2P傳輸效率很低,對(duì)網(wǎng)絡(luò)容易造成額外負(fù)擔(dān))。
4.2 Peer評(píng)級(jí)/節(jié)點(diǎn)分級(jí)
在Filecoin里所有節(jié)點(diǎn)都是同級(jí)的,這帶來(lái)了更多的去中心化,但犧牲了效率。IPWeb會(huì)把存儲(chǔ)節(jié)點(diǎn)按可靠性分級(jí)。初步?jīng)Q定把存儲(chǔ)節(jié)點(diǎn)分為手機(jī)、個(gè)人計(jì)算機(jī)、專業(yè)礦機(jī)、企業(yè)級(jí)節(jié)點(diǎn)、超級(jí)節(jié)點(diǎn)。超級(jí)節(jié)點(diǎn)和企業(yè)級(jí)節(jié)點(diǎn)會(huì)有非常高的可靠性,所有文件的碎片會(huì)首先在超級(jí)節(jié)點(diǎn)和企業(yè)級(jí)節(jié)點(diǎn)備份,以提高IPWeb網(wǎng)絡(luò)的效率和可靠性。
4.3 存儲(chǔ)級(jí)別設(shè)置
用戶可以根據(jù)自己的需要對(duì)文件存儲(chǔ)級(jí)別進(jìn)行設(shè)置。比如將文件丟失恢復(fù)比設(shè)置為1/3、1/2、2/3。級(jí)別越高,安全性越高(丟失的風(fēng)險(xiǎn)越?。?/p>
4.4 防作弊機(jī)制
存儲(chǔ)節(jié)點(diǎn)A和用戶B可能會(huì)串通作弊騙取存儲(chǔ)獎(jiǎng)勵(lì)。比如存儲(chǔ)節(jié)點(diǎn)A謊稱自己存儲(chǔ)了1T的文件F,而用戶B謊稱自己成功檢索到了存儲(chǔ)在A的文件F。對(duì)于這種作弊行為,我們有多重防范。首先,我們會(huì)采取動(dòng)態(tài)IP機(jī)制(防刷機(jī)作弊、檢索作弊、存儲(chǔ)作弊)(每次換Peer)。其次,大文件更容易用于作弊,但是大文件也會(huì)被分成更多數(shù)量的文件存在很多節(jié)點(diǎn)。用戶B可能會(huì)付出檢索費(fèi)用卻只能A節(jié)點(diǎn)獲得了很少的獎(jiǎng)勵(lì),而其他節(jié)點(diǎn)獲得了絕大多數(shù)存儲(chǔ)獎(jiǎng)勵(lì)。這同樣能有效抑制刷機(jī)套利作弊的行為。
4.5 IPWeb瀏覽器
IPWeb瀏覽器是可以訪問(wèn)IPWeb協(xié)議網(wǎng)絡(luò)的瀏覽器,同時(shí)也兼容HTTP協(xié)議。不僅如此,用戶還可以通過(guò)瀏覽器設(shè)置個(gè)人設(shè)備的存儲(chǔ)空間用于挖礦。瀏覽器將能極大地增長(zhǎng)IPWeb用戶數(shù)和社區(qū)。更多的人能為IPWeb網(wǎng)絡(luò)做貢獻(xiàn),也能成為IPWeb生態(tài)的消費(fèi)者。IPWeb還將自帶錢包功能。所有瀏覽器裝機(jī)用戶也會(huì)有自己的錢包。在必要的時(shí)候,IPWeb瀏覽器也可以兼容IPWEB協(xié)議,成為IPWEB生態(tài)的流量入口。
IPWeb 的經(jīng)濟(jì)模型是一套激勵(lì)生產(chǎn)者(服務(wù)提供者)和消費(fèi)者參與到 IPWeb 體系的經(jīng)濟(jì)激勵(lì)機(jī)制,是一套激勵(lì)數(shù)據(jù)存儲(chǔ)和檢索的經(jīng)濟(jì)激勵(lì)機(jī)制。IPWeb 有簡(jiǎn)潔明確的底層激勵(lì)模型,和豐富、可拓展的多層激勵(lì)模型。
從基礎(chǔ)設(shè)施到 C 端內(nèi)容消費(fèi) / 服務(wù)提供,互聯(lián)網(wǎng)生態(tài)中有豐富的生產(chǎn) - 消費(fèi)關(guān)系。多層次的、豐富的生產(chǎn)消費(fèi)關(guān)系才能刺激了生態(tài)的蓬勃發(fā)展。在互聯(lián)網(wǎng)最初誕生的時(shí)候,互聯(lián)網(wǎng)的生態(tài)是很簡(jiǎn)單、單薄的,只有大型科學(xué)項(xiàng)目和大企業(yè)在使用互聯(lián)網(wǎng)。甚至很多時(shí)候生產(chǎn)者和消費(fèi)者是同一批人,互聯(lián)網(wǎng)是他們工作的工具。后來(lái),有了一些人在互聯(lián)網(wǎng)上創(chuàng)造了一些內(nèi)容,另一部分人需要一個(gè)入又瀏覽這些內(nèi)容。這個(gè)時(shí)候,瀏覽器應(yīng)運(yùn)而生。生產(chǎn)者和消費(fèi)者開始分化。除了內(nèi)容的生產(chǎn)者以外,第一層工具(瀏覽器)的生產(chǎn)者也開始出現(xiàn)。再往后,網(wǎng)站日益變多,Yahoo一類的門戶網(wǎng)站成為了互聯(lián)網(wǎng)生態(tài)的新入又?;ヂ?lián)網(wǎng)的生產(chǎn)者和消費(fèi)者進(jìn)一步增加,第二層工具(門戶網(wǎng)站)的生長(zhǎng)者也出現(xiàn),生產(chǎn) - 消費(fèi)關(guān)系進(jìn)一步豐富。我們可以看到只有多層次的、豐富的生產(chǎn) - 消費(fèi)關(guān)系才能支持一個(gè)偉大的生態(tài)體系。
在底層經(jīng)濟(jì)模型里,IPWeb 的生產(chǎn)者主要是存儲(chǔ)節(jié)點(diǎn)和檢索節(jié)點(diǎn),消費(fèi)者主要是發(fā)起數(shù)據(jù)存儲(chǔ)和檢索請(qǐng)求的用戶。消費(fèi)者在 IPWeb 發(fā)起數(shù)據(jù)存儲(chǔ)請(qǐng)求和數(shù)據(jù)檢索請(qǐng)求,并支付代幣 IPW 作為存儲(chǔ) Gas 和檢索 Gas。存儲(chǔ)節(jié)點(diǎn)貢獻(xiàn)閑置的存儲(chǔ)空間和帶寬,為消費(fèi)者提供 P2P 分布式數(shù)據(jù)存儲(chǔ)服務(wù),并獲得存儲(chǔ) Gas 作為獎(jiǎng)勵(lì)。檢索節(jié)點(diǎn)則貢獻(xiàn)閑置的算力和帶寬,為消費(fèi)者提供 P2P 分布式數(shù)據(jù)檢索服務(wù),并獲得檢索 Gas 代幣。除了存儲(chǔ)獎(jiǎng)勵(lì)和檢索獎(jiǎng)勵(lì)以外,部分超級(jí)節(jié)點(diǎn)還可以參與 IPW Chain 的記賬,獲得區(qū)塊產(chǎn)生獎(jiǎng)勵(lì)。
單純的存儲(chǔ)和檢索服務(wù)只是一個(gè)去中心化數(shù)據(jù)存儲(chǔ)和檢索平臺(tái)。這是一種可以對(duì)標(biāo)中心化云存儲(chǔ)服務(wù)的平臺(tái)。但是這樣的基礎(chǔ)設(shè)施也類似于互聯(lián)網(wǎng)的第一個(gè)階段,只有大企業(yè)和大項(xiàng)目(比如視頻影像公司)會(huì)考慮到 P2P 存儲(chǔ)成本成為企業(yè)付費(fèi)用戶。只有底層設(shè)施,沒(méi)有豐富的應(yīng)用層生產(chǎn)者和消費(fèi)者,IPWeb無(wú)法支撐去中心化互聯(lián)網(wǎng)的偉大構(gòu)想。 所以 IPWeb 還設(shè)計(jì)了建立于底層經(jīng)濟(jì)模型之上的高層次經(jīng)濟(jì)模型。
第二層經(jīng)濟(jì)模型里,IPWeb 瀏覽器作為 IPWeb網(wǎng)絡(luò)的流量入又的承載了。IPWeb瀏覽器會(huì)內(nèi)置存儲(chǔ)挖礦和 IPW 錢包兩大功能。用戶可以在瀏覽器里設(shè)置把閑置的存儲(chǔ)空間貢獻(xiàn)出來(lái)進(jìn)行存儲(chǔ)挖礦。得到了存儲(chǔ)獎(jiǎng)勵(lì)會(huì)直接到用戶的 IPW 錢包里。瀏覽器挖礦能讓幾乎所有用戶都能成為生產(chǎn)者獲得 IPW 激勵(lì)。用戶也可以便捷地在瀏覽器中進(jìn)行支付和轉(zhuǎn)賬等操作。錢包里擁有 IPW 的用戶會(huì)更容易參與到高層的經(jīng)濟(jì)活動(dòng)中。
第三層經(jīng)濟(jì)模型里,我們有一套經(jīng)濟(jì)機(jī)制來(lái)鼓勵(lì)開發(fā)者開發(fā)基于 IP-Web 的網(wǎng)站和應(yīng)用。在這一層的生態(tài)中,去中心化互聯(lián)網(wǎng)生態(tài)與中心 化互聯(lián)網(wǎng)生態(tài)已經(jīng)趨于接近。IPWeb 的目標(biāo)就是塑造一個(gè)去中心化版的互聯(lián)網(wǎng)應(yīng)用生態(tài),并讓 IPW 成為這個(gè)應(yīng)用生態(tài)的通貨。讓開發(fā)者可 以用 IPW 支付技術(shù)成本,可以從消費(fèi)者手里獲得 IPW 的盈利。IPWeb 通過(guò)多層次的、不斷完善的經(jīng)濟(jì)模型激勵(lì)更多節(jié)點(diǎn)和用戶加入到去中心化存儲(chǔ)和去中心化互聯(lián)網(wǎng)的技術(shù)浪潮中來(lái)。這是共享經(jīng)濟(jì)和區(qū)塊鏈技術(shù)帶來(lái)的嶄新時(shí)代。
IPWeb的應(yīng)用場(chǎng)景
1. 分布式文件存儲(chǔ)
IPWEB 分布式存儲(chǔ)云能夠提供基礎(chǔ)的云存儲(chǔ)服務(wù)。通過(guò) OpenAPI,客戶可以很容易的接入和使用 IPWEB 云存儲(chǔ)服務(wù)。分布式存儲(chǔ)云能夠提供更安全、更可靠和具有極高性價(jià)比的云存儲(chǔ)服務(wù)。
2 分布式文件共享
分布式共享云是利用分布式存儲(chǔ)云一共的存儲(chǔ)服務(wù)作為基礎(chǔ),用戶可以把他們擁有的一些文件(數(shù)字媒體或其他有價(jià)值的內(nèi)容)進(jìn)行共享。共享時(shí)可以根據(jù)具體的內(nèi)容設(shè)定一定額度的IPW打賞要求。如果其他用戶希望能夠完整的下載或觀看該文件,就需要支付相應(yīng)額度的 IPW 作為打賞給上傳者。作為一種文件共享服務(wù),IPWEB 將嚴(yán)格按照運(yùn)營(yíng)所在地的法律要求對(duì)用戶的上傳內(nèi)容進(jìn)行審核和管理。
3 多媒體應(yīng)用
目前傳統(tǒng)在線視頻網(wǎng)站采用的是中心化存儲(chǔ)服務(wù),這需要高額的儲(chǔ)存費(fèi)用和帶寬費(fèi)用,相關(guān)的費(fèi)用會(huì)轉(zhuǎn)化為:觀看長(zhǎng)時(shí)間的廣告及限制非會(huì)員觀看等。而使用了IPWeb 作存儲(chǔ)服務(wù),將大大降低了相同資源的冗余,同時(shí)節(jié)約了大量用戶播放視頻時(shí)產(chǎn)生的帶寬成本,使得觀看視頻更加高效和低廉。
4 數(shù)字內(nèi)容交易
由于采用了區(qū)塊鏈和分布式存儲(chǔ)技術(shù),IPWEB 存儲(chǔ)云非常適合為長(zhǎng)尾內(nèi)容的版權(quán)交易提供存儲(chǔ)能力。分布式賬本能夠?yàn)榻灰滋峁┕_、透明和不可篡改的交易記錄。也能為數(shù)字內(nèi)容作品在區(qū)塊鏈上留下不可篡改的、唯一的數(shù)字簽名作為版權(quán)所有的標(biāo)識(shí)。在IPWEB平臺(tái)的支持下,大量的長(zhǎng)尾視頻、音頻和攝影創(chuàng)作能夠有了一個(gè)低成本、可持續(xù)運(yùn)作的交易平臺(tái)。
5 社交應(yīng)用
使用IPWeb技術(shù)創(chuàng)建一個(gè)去中心化的社交網(wǎng)絡(luò)。作為一個(gè)去中心化的應(yīng)用程序,IPWeb 網(wǎng)絡(luò)可以讓社交應(yīng)用可以在沒(méi)有任何中心點(diǎn)的情況下工作,完全點(diǎn)對(duì)點(diǎn)。
IPWeb的生態(tài)建設(shè)
1 存儲(chǔ)生態(tài)
存儲(chǔ)礦工為網(wǎng)絡(luò)提供數(shù)據(jù)存儲(chǔ),存儲(chǔ)礦工通過(guò)提供磁盤空間和響應(yīng)客戶請(qǐng)求來(lái)參與 IPWeb 運(yùn)作。要想成為存儲(chǔ)礦工,用戶需要提供存儲(chǔ)空間及帶寬資源。礦工將用戶的數(shù)據(jù)片段存儲(chǔ)到扇區(qū),并以此賺取 IPW。存儲(chǔ)礦工通過(guò)在特定時(shí)間內(nèi)存儲(chǔ)數(shù)據(jù),來(lái)響應(yīng)用戶的存儲(chǔ)請(qǐng)求。存儲(chǔ)礦工生成證明并提交到區(qū)塊鏈網(wǎng)絡(luò),來(lái)證明他們?cè)谔囟〞r(shí)間內(nèi)存儲(chǔ)了數(shù)據(jù)。如果數(shù)據(jù)失效或丟失,存儲(chǔ)礦工將被罰沒(méi)部分抵押的 IPW。存儲(chǔ)礦工工作流程:
· 存儲(chǔ)礦工在區(qū)塊鏈中存放抵押的 IPW,來(lái)保證向網(wǎng)絡(luò)提供穩(wěn)定的存儲(chǔ)。抵押品為了保證服務(wù)而存在,如果礦工為所存儲(chǔ)的數(shù)據(jù)生成了存儲(chǔ)量證明,抵押品就會(huì)被退回。如果沒(méi)有成功生成存儲(chǔ)量證明,礦工將失去抵押品。
· 一旦抵押交易在區(qū)塊鏈中出現(xiàn),礦工就可以在存儲(chǔ)市場(chǎng)中提供存服務(wù)。
· 一旦訂單匹配,客戶就將數(shù)據(jù)發(fā)給存儲(chǔ)礦工。存儲(chǔ)礦工數(shù)據(jù)接收完成后,礦工和客戶簽署交易訂單并提交到區(qū)塊鏈。
· 當(dāng)存儲(chǔ)礦工被分配了數(shù)據(jù)時(shí),必須重復(fù)生成存儲(chǔ)量證明來(lái)確保他們正在存儲(chǔ)數(shù)據(jù)證明被發(fā)布在區(qū)塊鏈中,并由網(wǎng)絡(luò)來(lái)驗(yàn)證。
· 驗(yàn)證成功后,存儲(chǔ)礦工將會(huì)獲得相應(yīng)的存儲(chǔ)獎(jiǎng)勵(lì)。
2 檢索生態(tài)
檢索礦工為網(wǎng)絡(luò)提供數(shù)據(jù)檢索服務(wù),檢索礦工通過(guò)提供用戶檢索請(qǐng)求所需要的數(shù)據(jù)來(lái)參與 IPWeb 運(yùn)作。和存儲(chǔ)礦工不同,他們不需要抵押品,不需要提交存儲(chǔ)數(shù)據(jù),也不需要提供存儲(chǔ)證明。
3 應(yīng)用開發(fā)者生態(tài)
IPWeb 需要更多的商業(yè)來(lái)繁榮整個(gè)生態(tài),需要有相應(yīng)的應(yīng)用開發(fā)商來(lái)經(jīng)營(yíng)業(yè)務(wù),讓更多的存儲(chǔ)需求進(jìn)來(lái)。
4 應(yīng)用服務(wù)生態(tài)
IPWeb 為用戶提供文件存儲(chǔ)及檢索服務(wù),用過(guò)通過(guò) IPWeb 瀏覽器使用 IPWeb提供的各項(xiàng)服務(wù)。