當前位置:
首頁 > 最新 > 淺談區塊鏈技術原理

淺談區塊鏈技術原理

導讀

區塊鏈被很多人譽為繼互聯網移動互聯網之後又一個具有顛覆意義的創新技術,和每一次技術變革一樣可能對人類社會產生深刻影響。始於十多年前火於最近一兩年,近年來基於區塊鏈技術的各類新生事物或概念滿天飛,大如比特幣、以太坊、ICO,小如萊茨狗、網易星球等等,讓人有點眼花繚亂了。但萬變不離其宗,曾經技術出身的我相信,只要了解其本質,則面對其層出不窮的上層應用及概念就不會慌張了,同時也有助於自己後續對區塊鏈應用場景的想像。

區塊鏈的特性很多,其中有最重要特性:去中心化、不可篡改。我之前對這兩個特性的實現原理百思不得其姐,最近通過查閱資料學習有了一定認識,在這裡拋磚引玉,同時作為學習的總結筆記。

廢話不多說進入正題

去中心化

No centre

簡單點講區塊鏈的本質是一種分散式資料庫,是區塊鏈去中心化特性的基石,這個和傳統資料庫進行對比就容易理解了。

傳統數據存儲模式:是以資料庫為核心的中心化服務,如招商銀行的無論是企業還是個人用戶的資料、資金賬戶、交易數據等都集中存儲在招商銀行的資料庫服務中,由招商銀行進行存管。再如手機用戶的話費信息統一存儲在三大運營商各自的計費資料庫中。其他結構或個人查詢這些數據都需要數據擁有者進行授權。

如上圖可以看出,招商銀行數據是以中心化的方式存儲的。用戶進行資金查詢或是用戶之間進行轉賬都需要通過招商銀行來完成,招商銀行扮演的是一個管理者統治者的角色。這種模式有以下缺點:用戶的賬戶數據封閉不透明(數據歸招行私有他人查看需要招行授權)、用戶資金數據招商銀行說了算(目前是基於對招商銀行這個大企業的信任)、數據安全存在風險(如遇自然災害、戰爭、黑客攻擊等造成資料庫損壞,想像後果不堪設想)。

區塊鏈數據存儲:是一種分散式資料庫,數據並不是集中存放在某一個數據中心,而是通過P2P網路同步存儲在所有參與的節點上。任何一個節點的區塊鏈數據發生變化或讀取都會在一定時間內通知到全網各節點進行同步更新或驗證。

如上圖可以看出,區塊鏈資料庫是一個網狀的非中心化的結構。每個節點(可能有成千上萬個節點,這些節點可能是個人、機構、公司等)都存儲著同樣的數據。因此在區塊鏈資料庫中沒有統治者,每個節點的權利是對等的(這一點的意義很重要),數據也是公開透明的,如果其中一個或多個節點損壞或遭到攻擊,其他節點上的數據不受影響,因此保證了數據的安全性。

不可篡改

No change

區塊鏈數據的不可篡改特性解決了社會中的信任問題,數據一旦被寫入區塊鏈之後就不可修改,也就是說區塊鏈數據只有add沒有update。有技術基礎的童鞋大都知道傳統的資料庫都是可以被修改的,那麼區塊鏈是怎麼做到不可修改的呢?這就和區塊鏈的結構密切相關。

顧名思義,區塊鏈就是由一個個數據區塊首尾鏈接而組成的數據存儲鏈。

每一個區塊包含兩部分:

區塊頭(Head): 記錄當前區塊的元信息

區塊數據體(Body):記錄區塊存儲的實際數據

區塊頭記錄的區塊元信息包括: 區塊生成時間(時間戳)、區塊體數據的Hash、上一個區塊的Hash等信息。

那麼區塊鏈數據為什麼是不可篡改的呢?

首先我們必須得了解什麼是Hash(理科生大學都學過的),所謂 Hash 就是計算機可以對任意內容,計算出一個長度相同的特徵值。區塊鏈的 Hash 長度是256位,這就是說,不管原始內容是什麼,最後都會計算出一個256位的二進位數字。而且可以保證,只要原始內容不同,對應的 Hash 一定是不同的。

舉例來說,字元串「我愛你」的 Hash 是a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0(十六進位),轉成二進位就是256位,而且只有「我愛你」能得到這個 Hash。

由此可推出以下結論:1、每個區塊的Hash都是不一樣的,可以通過Hash標識區塊。2、如果區塊內容被改了,它的Hash就一定會改變。

這意味著,如果當前區塊的內容變了,或者上一個區塊的 Hash 變了,一定會引起當前區塊的 Hash 改變。

這一點對區塊鏈有重大意義。如果有人修改了一個區塊,該區塊的 Hash 就變了。為了讓後面的區塊還能連到它,該人必須同時修改後面所有的區塊,否則被改掉的區塊就脫離區塊鏈了。由於後面要提到的原因,Hash 的計算很耗時,同時修改多個區塊幾乎不可能發生,除非有人掌握了全網51%以上的計算能力。

正是通過這種聯動機制,區塊鏈保證了自身的可靠性,數據一旦寫入,就無法被篡改。

-------------------------------後記--------------------------------

區塊鏈的特性還很多如智能合約、共識機制等等,今天就先總結到這裡。當然任何技術必須找到現實生活中的應用場景才能轉換成生產力,區塊鏈的應用還在探索期,目前比較公認的有金融、供應鏈、資產管理、醫療、遊戲等領域,其中具體場景還需要產品經理或創業者去發掘、想像。

如果想和我一起認識區塊鏈請關注本微信公眾號,關於區塊鏈的其他特性及上層應用也會在公眾號中陸續發布。

以上是近幾天研究區塊鏈關於技術方面的一點總結,如有錯誤歡迎留言指正。

2018.2.27 西安


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 一個YOUNG 的精彩文章:

TAG:一個YOUNG |