區(qū)塊鏈和大數(shù)據的共同關鍵詞:分布式
大數(shù)據和區(qū)塊鏈具有一個共同的關鍵詞:分布式。
分布式的思想讓大數(shù)據技術實現(xiàn)了分布式計算和分布式協(xié)同工作,技術手段也從權威壟斷轉向了去中心化。
而區(qū)塊鏈技術作為分布式數(shù)據庫的典型代表,也具有分布式的特點。
兩者在這一點上的統(tǒng)一帶來了融合發(fā)展的可能。
1.分布式:讓大數(shù)據和區(qū)塊鏈從技術權威向去中心化轉變
從歷史上的發(fā)展來看,IT技術發(fā)展呈現(xiàn)出一種集中與分布交替的螺旋式上升的形態(tài)
IT技術呈現(xiàn)螺旋化上升
在計算機誕生初期,技術是集中化的,這是因為技術的限制導致了使用模式只能是一對一的。
為了增加計算機的利用率,行業(yè)公司很快開始部署新的設計。
IBM公司引入了虛擬化的設計思想,將一臺大型機在為多個客戶服務時分割出多個虛擬的小型主機,這是一種十分復雜的集中式計算。
等進入到小型機和PC時代,雖然使用模式回歸了一對一的模式,但是計算機設備已經分散到了各個地方。
等進入成熟的互聯(lián)網時代,客戶端和服務器已經運用了分布式計算的模式,只不過各個服務器之間還是分散的,沒有連成網絡。
進入云計算時代,計算能力又被統(tǒng)一管控起來。
雖然客戶端和服務器依舊以分布式計算為技術基礎,但服務器之間已經形成了分布式協(xié)同工作模式。
因為協(xié)同的特點,整體上這應該是一種集中式的計算服務。
到了以云計算為基礎設施的大數(shù)據時代,IT技術中仍舊蘊含著分布式的核心思想。
以現(xiàn)在最常用的分布式計算技術的代表MapReduce來說,大數(shù)據需要MapReduce將任務分解后進行分布式計算,然后將結果合并。
分布式的技術形成了一種去中心化的系統(tǒng),其中的每個組成部分都是同等重要的。
具有這個特點的區(qū)塊鏈技術在這一點上也顯得十分突出。從本質上看,區(qū)塊鏈是一種去中心化的分布式賬本。
區(qū)塊鏈通過時間順序將持續(xù)增長的數(shù)據整理成鏈式數(shù)據結構,系統(tǒng)中所有節(jié)點共同參與數(shù)據的記錄。在“分布式”這一理念上,大數(shù)據和區(qū)塊鏈技術取得了一致。
而分布式概念的出現(xiàn),代表了一種從技術權威壟斷到去中心化的轉變。
在IT方面中的技術壟斷更加指向具有壟斷性質的大型互聯(lián)網公司,假如某家公司掌握了所有互聯(lián)網社交軟件的技術,那么它就可以將整個社會輿論控制在手中。
普通民眾因為要使用該公司提供的社交軟件,根本無法順利發(fā)出對該公司的質疑。
一家公司獨大,甚至掌控了社會輿論,普通民眾失去了發(fā)聲、監(jiān)管的權利,這顯然是十分不利于社會安定的事情,也違背了互聯(lián)網“網絡自由”的初衷,各國政府也在反互聯(lián)網技術壟斷上做出了各種努力。
而當“分布式”的概念出現(xiàn)后,從根本上打破了技術權威壟斷的情況,形成了“無中心”的新技術。
在分布式的系統(tǒng)中,所有參與者享有同等的權利。大數(shù)據的各個協(xié)同工作組件缺一不可,互相協(xié)調才能完成工作;
區(qū)塊鏈的各個節(jié)點共同監(jiān)督數(shù)據,每個節(jié)點都有質疑和被質疑的過程。
分布式的核心思想讓區(qū)塊鏈和大數(shù)據都具有了從技術權威到去中心化的特點。
區(qū)塊鏈和大數(shù)據在分布式上的共同點有兩個具體的領域:分布式存儲和分布式計算。
2.分布式存儲:HDFS VS區(qū)塊
分布式存儲是相對集中式存儲而言的。
在傳統(tǒng)的數(shù)據存儲技術中,數(shù)據被集中放置在一個特定的數(shù)據庫中,就好比用一個籃子裝所有的雞蛋;
而分布式的存儲則利用了多個數(shù)據庫,共同存儲數(shù)據,“雞蛋”被分散在了各個容器中。
在存儲數(shù)據上,區(qū)塊鏈和大數(shù)據都采用了分布式存儲的技術。
區(qū)塊鏈存儲數(shù)據的基本單元是區(qū)塊,而大數(shù)據則是Hadoop分布式文件系統(tǒng)(HDFS)。
如果把區(qū)塊鏈看作賬本,區(qū)塊鏈中的區(qū)塊就是賬本中的賬頁。
在比特幣的區(qū)塊鏈中,每一個區(qū)塊都記錄了一段時間內比特幣的交易數(shù)據。
在中本聰創(chuàng)立比特幣時,構建了第一個區(qū)塊——創(chuàng)世區(qū)塊。
對于區(qū)塊鏈來說,計算機進入區(qū)塊鏈中成為一個“區(qū)塊”是沒有什么特殊要求的,只要計算能力夠強,就可以成為一個新的區(qū)塊。
也就是說,這些區(qū)塊的計算機設備可以出現(xiàn)在地球的各個角落。
那么這些原本分散的設備是怎么組合在一起形成“區(qū)塊鏈”的呢?
在區(qū)塊鏈的區(qū)塊中,除了“創(chuàng)世區(qū)塊”只有一個ID識別號之外,后續(xù)建立的區(qū)塊都包含兩個ID識別號,一個是屬于自己的,一個是屬于前一個區(qū)塊的。
通過ID號碼之間的指向,區(qū)塊就按照時間順序連成了區(qū)塊鏈。
由于需要應對海量且在持續(xù)快速增長的數(shù)據,大數(shù)據在數(shù)據存儲方面則更加注重性價比,實現(xiàn)存儲容量彈性擴張。
HDFS是大數(shù)據應用程序中主要使用的分布式存儲技術,能夠滿足商用硬件的高性價比的要求,因此在眾多分布式技術中脫穎而出。
HDFS的特點
1).低成本
HDFS的分布式存儲服務是依靠數(shù)百個甚至數(shù)千個服務器共同工作實現(xiàn)的,這樣一來,在服務器出現(xiàn)故障時就只需要單獨維修這一臺機器就可以了。
如果是集中式的大型服務器,遇到故障的維修成本將要高許多。HDFS系統(tǒng)通過這種方式實現(xiàn)了低成本的目標。
2).高容錯
由于HDFS是眾多服務器協(xié)同工作,共同實現(xiàn)分布存儲,HDFS給每個數(shù)據文件都準備了兩個冗余備份,保證每個數(shù)據文件被存儲三次。
這樣即使某臺服務器出現(xiàn)故障,HDFS也可以在備份數(shù)據的幫助下繼續(xù)進行工作。
所以HDFS允許機器發(fā)生故障,具有高容錯的特點。
3).高吞吐
HDFS的訪問模型是“一次寫入多次讀寫”式的,只能夠在結尾追加描述數(shù)據的變動而不允許直接修改文件。
這樣就簡化了保證數(shù)據一致性的流程,實現(xiàn)了高吞吐的數(shù)據訪問。
雖然區(qū)塊鏈和大數(shù)據在存儲數(shù)據的實現(xiàn)技術上采用了不同的方式,但不能否認它們都是基于“分布式”的思想出發(fā)的:通過利用多個計算機,實現(xiàn)數(shù)據的分布式存儲。
這樣的存儲方式讓大數(shù)據技術有能力應對龐大的數(shù)據量,也讓區(qū)塊鏈實現(xiàn)了去中心化的共治。
3.分布式計算:MapReduce VS共識機制
分布式計算是一種新的計算方式,是指兩個或多個軟件之間互相共享信息,合作計算。
分布式計算方式不要求這些軟件在一臺計算機上運行,可以在多臺計算機上通過網絡連接共同運算。
簡單點來說,分布式計算就是將大量的數(shù)據分割成多個較小的單元,分派給多臺計算機分工計算,最后將所有結果進行匯總。
這種計算方式是云計算的技術基礎,對數(shù)據海量的大數(shù)據計算來說意義重大,因為創(chuàng)造一個算力足以應對PB級別的計算機幾乎是不可能的。
分布式計算的理論在很早以前就已經有科研人員在研究,但實踐方案并不多,也沒有得到廣泛應用。
直到谷歌公布了MapReduce之后,分布式計算的應用才開始得到廣泛關注。
在大數(shù)據領域,分布式計算的成功案例就有MapReduce。
MapReduce是云計算的核心技術,適用于大規(guī)模數(shù)據集(大于1 TB)的并行運算,在大數(shù)據的分布式運算中具有良好的表現(xiàn)。
同時MapReduce也是一種簡化的分布式編程技術,能夠有效提高復雜問題的并行處理效率。
而在區(qū)塊鏈中,分布式計算的思想體現(xiàn)在“共識機制”中。
區(qū)塊鏈的共識機制是區(qū)塊之間達成共識、寫入數(shù)據的手段,也是防止數(shù)據篡改的手段。
區(qū)塊鏈的共識機制有多種,比特幣區(qū)塊鏈采用的是“工作量證明”,意味著只有算力超過了51%的記賬區(qū)塊的計算機才有寫入下一筆數(shù)據的權利,這也大大降低了篡改交易記錄的可能。
分布式計算的核心在于不同計算機通過信息交換能夠最終達成一致的結論,區(qū)塊鏈的共識機制也剛好體現(xiàn)了這一點。
除了比特幣區(qū)塊鏈采用的“工作量證明”機制,“唐盛鏈”采用的GEAR協(xié)議也是共識機制的一種。
GEAR協(xié)議是由唐盛(北京)物聯(lián)技術有限公司自主研發(fā)的共識協(xié)議,由輪轉記賬、集體評估和齒輪共識路由三個子協(xié)議組成。
該協(xié)議充分考慮了區(qū)塊鏈上的數(shù)據結構特點和點對點溝通的信息交流模式,在實現(xiàn)數(shù)據同步共識時支持多種場景靈活運用。
把大數(shù)據和區(qū)塊鏈兩者的分布式計算應用結合起來看,會發(fā)現(xiàn)核心特點就在于數(shù)據的同步共享和負載平衡。
通過分布式計算,數(shù)據資源在所有的計算機上都有備份,方便實現(xiàn)稀有資源的共享;
也可以降低計算機的運行負載,減小計算機崩潰的可能;
同時還能夠通過調配,把程序放在最合適的計算機上執(zhí)行。
斯坦福大學化學系的戈爾哈姆·理查德·切爾曼教授曾說:“分布式計算將加快整個人類的科學進程?!?/p>
隨著現(xiàn)代科技的進步,每個學科的科學研究都需要進行大量的計算:數(shù)學家希望得出圓周率的更精確值,生物學家希望計算機模擬出蛋白質的折疊過程,天文學家希望計算機分析天體軌跡……
人類未來社會的發(fā)展離不開各種數(shù)據的計算,而分布式計算成功在大數(shù)據領域和區(qū)塊鏈領域得到實踐應用將會對各界產生積極的影響。
無論是MapReduce還是共識機制,都充分展現(xiàn)了分布式計算的獨特優(yōu)點:便宜且高效。
區(qū)塊鏈和大數(shù)據具有一個共同的關鍵詞,那就是“分布式”。
兩者在存儲和計算運行的手段上雖然各有千秋,卻都體現(xiàn)了分布式的思想。
通過分布式存儲數(shù)據,區(qū)塊鏈和大數(shù)據實現(xiàn)了降低成本和提高系統(tǒng)穩(wěn)定性的目標;
通過分布式計算,區(qū)塊鏈和大數(shù)據實現(xiàn)了數(shù)據共享和并行運算以解放計算機壓力的目標。
因為區(qū)塊鏈和大數(shù)據在分布式思想上具有很多的共同點,兩者的共同發(fā)展也就有了基礎,這也是區(qū)塊鏈能夠在大數(shù)據領域得到大規(guī)模應用的前提條件。