狼愛上貍

          我胡漢三又回來了

          再拋磚:基于區(qū)塊鏈的去中心化存儲終將失敗

          最近看了很多區(qū)塊鏈上的去中心化存儲方案,各種方法不一而足,但是仔細(xì)看了各種方法,實話說我的個人結(jié)論是“基于區(qū)塊鏈的去中心化存儲終將失敗”。

          存儲的第一要素是可靠性而不是價格

          在存儲市場,可靠性有時候也稱之為持久性,主要是指在文件存儲以后,有多大可能性文件被無損地獲取回來。

          這個道理是不辯自明的,沒有人存儲數(shù)據(jù)是可以不考慮可靠性的,但是在大多數(shù)去中心化存儲方案的白皮書中卻是沒有可靠性指標(biāo)的,大多數(shù)都是通過含糊其辭的我們在全網(wǎng)備份來保證文件不被丟失。這夠了么?請移步 https://aws.amazon.com/cn/s3/ 看看商業(yè)的存儲服務(wù)是怎么定義文件持久性的。

          從系統(tǒng)設(shè)計角度來說,可靠性設(shè)計是設(shè)計里面難度最大的工作。在一年 365 天的每一天都能夠正確地讀取數(shù)據(jù),但是再最后一分鐘數(shù)據(jù)沒有讀取到數(shù)據(jù),那么可靠性僅是 99.98%,這個數(shù)字看起來很高,但是從可靠性角度來說是不夠的。原因很簡單,從最終用戶角度來說,最后一分鐘獲取數(shù)據(jù)的失敗,實際上意味著整年工作的失敗,我存一年這個數(shù)據(jù),也許僅是為了讀這么一次,你這次給不了我數(shù)據(jù),那你這一年的存儲是第一天就丟掉數(shù)據(jù)了,還是在我獲取的那一分鐘前一秒丟掉數(shù)據(jù),對我來說沒有任何區(qū)別。
          我們自己電腦里面使用的硬盤提供的存儲,某種意義上也是一個相對低可靠性的存儲服務(wù),大多數(shù)人都能相信把數(shù)據(jù)、文件存到硬盤上,在大多數(shù)情況下數(shù)據(jù)并不會丟失,稍微懂點技術(shù)的明白建一個 Raid0,這個文件丟失的可能性已經(jīng)是微乎其微了;比較去中心的存儲服務(wù),也許價格上是比傳統(tǒng)云服務(wù)公司提供的存儲服務(wù)便宜很多,但是如果和個人購買一個硬盤甚至構(gòu)建一個 Raid0 對比,這個價格優(yōu)勢就不存在了。

          去中心化存儲的可靠性問題比想象的大

          如前文所說,去中心化存儲方案的白皮書中是沒有提供可靠性指標(biāo)數(shù)據(jù)的,在我看來,很悲哀的現(xiàn)實是所有的去中心化存儲方案因為他的分布式是無法給出一個可靠性指標(biāo)數(shù)據(jù),這個在傳統(tǒng)企業(yè)存儲市場業(yè)務(wù)上已經(jīng)是個很大的劣勢,但是也許有人會認(rèn)為雖然他們給不出具體的可靠性數(shù)據(jù),實際上可靠性還是很高的,因為去中心化存儲會通過全網(wǎng)的備份,將同一個文件放到不同的節(jié)點上來提高數(shù)據(jù)的可靠性。

          這個聽起來沒錯,但是如果我們深究去中心化存儲的實現(xiàn)方式,我們會發(fā)現(xiàn)其實不然,這主要在于去中心化存儲在進行文件存儲時的切塊存儲模式,為了保證文件的安全性,也就是文件不能被礦工訪問,主流的去中心化存儲方案都會對文件進行切塊,然后將不同的塊存儲到不同的節(jié)點上去,這樣所有的存儲節(jié)點都不擁有這個文件的全部塊,文件屬主就不用擔(dān)心文件本身被非法獲取。

          這樣的存儲模型確實能夠解決文件安全性的問題,但是反過來卻造成了文件存儲可靠性的進一步下降,原因很簡單,如果一個文件被拆分成了 100 個塊,這 100 個塊會被分散存儲,那么只要有任何一個塊失效,這個文件本身也就失效了,分塊操作大大降低了整體文件的可靠性,在 100 個塊的情況下,失效率實際上是提高了100倍。

          礦工或者說節(jié)點的行為并不能改變什么

          實際上大多數(shù)去中心化存儲方案也都關(guān)注了可靠性的問題,提出了一些方法來約束礦工的行為,比如 FileCoin 提出了 Proof-Of-Spacetime , Proof-Of-Replciation 一堆復(fù)雜地概念,寄希望于用這些指標(biāo)來經(jīng)濟驅(qū)動礦工可靠地保存文件,但是在我看來這些方法某種意義上是所謂地緣木求魚。

          首先我認(rèn)為,在大多數(shù)情況下,只要存在一定地經(jīng)濟激勵,節(jié)點管理人的行為并不會是造成文件丟失地主要因素,某種意義上他們事實上不會有興趣去管理這些存儲地碎塊文件。對于去中心化存儲的節(jié)點來說,所有的儲存在他電腦上的文件都是毫無意義的二進制字節(jié),而維持這些字節(jié)的存在是會給他們帶來一定的收入,正常情況下他們不會有什么欲望去刪掉這些東西。因此通過進一步強化經(jīng)濟激勵,來保證他們不去刪除這些對他們無意義的字節(jié)流,意義并不大。

          真正影響文件存儲可靠性的,主要來自于兩個因素:

          1. 硬盤的可靠性。按照我在網(wǎng)上搜到的硬盤可靠性分析文章,一般性機械硬盤的年失效性中位數(shù)大致是 3%,那么換言之每 30 塊硬盤在運行一年以后會壞 1 塊,不精確的概率計算,如果有 200 塊硬盤,一年運行下來有 6-7 塊損壞,那么假設(shè)一個 200 個節(jié)點的網(wǎng)絡(luò),每個文件被拆分成 100 塊,每個塊在全網(wǎng)分別形成2個復(fù)制,那么 1 年以后正常可以期望 3-4 個塊的損壞,能夠拿回完整文件的可能性微乎其微。
          2. 節(jié)點管理人對于節(jié)點的管理水平:傳統(tǒng)的 IT 技術(shù)上,針對這種硬盤可靠性實際上是有整套的解決方案,RAID 系列就是專門定義了解決這種問題的,比如簡單搭個 Raid0,就可以將出錯可能性降低到 3% 的平方,也就是說 0.09%,但是作為去中心化存儲節(jié)點的提供者,他們架設(shè)節(jié)點的目的是本來就是用簡單的閑置硬盤空間來換取一定的經(jīng)濟激勵,提供的容量空間直接影響他們的收益。所以如果有構(gòu)建 Raid0 的兩塊硬盤,肯定是將兩塊硬盤分別使用,而不會是構(gòu)建 低容量的Raid0 陣列,而且如果希望擁有大量的去中心化存儲的節(jié)點,那么客觀上能夠組建 Raid 陣列的節(jié)點管理人只是少數(shù)。

          復(fù)雜的計費模型是去中心化存儲的最后挽歌

          計費模型的復(fù)雜性也是去中心化存儲方案的一個重大問題,這實際上是來源于存儲需求人和存儲提供者對于存儲需求理解的不一致,而作為去中心化存儲方案必須通過技術(shù)來彌合這個不一致。讓我們看下雙方是怎么看待這個存儲需求:

          存儲需求人的需求:我今天把這個文件存到你這,也許明年才要用一次,我明年用的時候你將這個文件完整地提供給我,我就付整年的錢,否則,我希望你交罰款。

          存儲提供者的需求:我同意你將這個文件存在我的本地硬盤上,每存一段時間,你就給我錢,如果你不付錢,我就希望把這個文件刪了把空間騰出來給其它愿意付費的文件。

          這樣的計費模型實際上是很復(fù)雜的,如果再加上文件本身的分塊操作,情況會變成存儲需求人愿意付款的前提是所有的存儲提供者都正確地返回了所要求存儲的文件塊,想象一下 100 個塊只返回了 99 個塊的情況,因為這 100 個塊的存儲服務(wù)來源于完全不同的經(jīng)濟實體,達(dá)成這個共識的復(fù)雜度真不是程序能夠輕易完成的,一個簡單的規(guī)則是能完成分配,但勢必傷害到其中某一方,然后造成這一方的離開。當(dāng)雙方需求都是合理的情況下,傷害任一方都不合理。

          用戶畫像的缺失也是去中心化存儲的問題之一

          這個就不展開講了,簡單說個結(jié)論,是這些去中心化存儲方案根本沒說清楚或者說沒去想誰會用他的去中心化存儲。

          隨便拋轉(zhuǎn),還是希望拋磚引玉,大家給點指正,幫我理解清楚一下這繁雜的方案背后的東西。


          來自:

          https://ethfans.org/posts/decentralized-storage-will-fail

          posted on 2019-10-23 09:12 狼愛上貍 閱讀(174) 評論(0)  編輯  收藏 所屬分類: Blockchain

          主站蜘蛛池模板: 福建省| 敦煌市| 长兴县| 雷山县| 平安县| 蓝田县| 常熟市| 深水埗区| 龙南县| 永平县| 巴楚县| 泰州市| 民权县| 阆中市| 白银市| 杭锦旗| 瑞昌市| 龙海市| 商水县| 鄢陵县| 炉霍县| 嘉鱼县| 大姚县| 宾阳县| 子长县| 浦县| 嫩江县| 都兰县| 黔江区| 新沂市| 武宣县| 萍乡市| 油尖旺区| 中牟县| 平罗县| 长阳| 邳州市| 井冈山市| 赤水市| 玉溪市| 抚顺市|