這可能是我見過最好的區塊鏈入門文章

看了大量關於區塊鏈(blockchain)的文章,簡單易懂,深入淺出的文章少之又少。反而是看的越多,心中的疑問也越多。區塊鏈到底是何方神聖,究竟有何特別之處,試著一層一層的剝開它神秘的面紗。成立了區塊鏈自習室,如果有感興趣的同學,不妨一起上自習。

這是一篇牛人的寫的博客(阮一峰),關於區塊鏈的入門介紹,相對而言,這篇博客通俗易懂。我對博客的內容予以精簡,將其分享出來,供各位學習,同時也是自我學習。

這可能是我見過最好的區塊鏈入門文章

區塊鏈的本質,他用一句“一種特殊的分佈式數據庫”來解釋。

數據庫我理解,按照百科的定義來講:數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫。

對於區塊鏈而言,它作為“一種特殊的分佈式數據庫”而存在,那麼它的特殊性體現在哪裡?什麼是分佈式數據庫?對於這些問題,我不甚理解,不過沒關係,時間會告訴我答案,暫且先簡單的理解它就是一種特殊的數據庫。

這可能是我見過最好的區塊鏈入門文章

在博客中講到:首先區塊鏈的主要作用是存儲信息。任何需要被存儲的信息都可以寫入區塊鏈,也可以從裡面讀取,所以它是數據庫。

其次,任何人都可以架設服務器,加入到區塊鏈網絡,成為一個節點。(稍微解釋下網絡節點,是指一臺電腦或其他設備與一個有獨立地址和具有傳送或接收數據功能的網絡相連。節點可以是工作站、客戶、網絡用戶或個人計算機,還可以是服務器、打印機和其他網絡連接的設備。整個網絡就是由這許許多多的網絡節點組成的,把許多的網絡節點用通信線路連接起來,形成一定的幾何關係,這就是計算機網絡拓撲)

在區塊鏈的世界裡面,沒有中心節點,每個節點都是平等的,都保存著整個數據庫。你可以向任何一個節點,寫入/讀取數據,因為所有節點最後都會同步,保證區塊鏈一致。

這可能是我見過最好的區塊鏈入門文章

區塊鏈的特點。區塊鏈具有一個革命性的特點:區塊鏈沒有管理員,它是徹底無中心的。

對於現存的數據庫而言,它都會設有超級管理員,但區塊鏈沒有,這也許就是它的特殊性所在。如果有人妄想對區塊鏈添加審核,那隻能抱歉了,你實現不了,因為它的設計目標就是防止出現居於中心地位的管理當局。

這可能是我見過最好的區塊鏈入門文章

可是它沒有管理員,每個人都可以往裡面寫入數據,那如何保證數據真實可靠?如果被人惡意毀壞,又該當如何?我們接著學習。

學習區塊鏈的神奇所在。區塊鏈由一個個區塊(block)組成。區塊很像數據庫的記錄,每次寫入數據,就是創建一個區塊。如果真的不理解什麼是區塊,就好比我一樣,你可以將它理解為一個個小方格子,區塊鏈是由一個個的小方格子組成。

這可能是我見過最好的區塊鏈入門文章

每個區塊(小方格子)包含兩個部分,區塊頭(記錄當前區塊的特徵值)和區塊體(實際數據)。而區塊頭又包括多項特徵值(生成時間、實際數據的哈希、上一個區塊的哈希等等)。

這可能是我見過最好的區塊鏈入門文章

哈希(Hash),what? 如果你想理解區塊鏈,那麼你還必要搞懂這個哈希。

硬質頭皮,接著往下學習。Hsah,又稱之為散列函數,也有人將它音譯為哈希。簡單的講就是將任意長度的消息壓縮至某一固定長度的消息摘要的函數。

先就這樣理解吧,後續文章裡將對HasH進行更深入的闡述。

重點來了,在區塊鏈中,它的“哈希”長度為256位。也就說,不管你寫入什麼內容,它都將壓縮至256位的固定長度的消息摘要。

博主給出兩個推論:(1)每個區塊的哈希都是不一樣的,它可以通過哈希標識區塊。(2)如果區塊的內容變了,它的哈希一定會改變。

Hash的不可修改性,區塊與哈希一一對應,每個區塊的哈希都是針對“區塊頭(head)”計算的。換句話講,就是將區塊的各項特徵值,按照順序連接在一起,組成一個很長的字符串,在對這個字符串計算哈希。

這可能是我見過最好的區塊鏈入門文章

區塊哈希的計算公式:Hash=SHA256(區塊頭)。SHA256是區塊鏈的哈希算法。

SHA256又是個什麼鬼?簡單的提一下,但凡不甚明瞭的後續文章都會予以說明。SHA即Secure Hash Algorithm的英文縮寫,安全散列算法。是FIPS所認證的安全散列算法。能計算出一個數字消息所對應到的長度固定的字符串(又稱消息摘要)的算法。

SHA家族的五個算法,分別是SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512,由美國國家安全局(NSA)所設計,並由美國國家標準與技術研究院(NIST)發佈;是美國的政府標準。

而我們的區塊鏈便是採用SHA家族中的SHA-256算法。

在此前,我們提到區塊頭包含很多內容,其中便有當前區塊體的哈希、上一個區塊的哈希。

關於剛剛所提及的內容非常重要:如果當前區塊體的內容發生改變,或者上一個區塊的哈希變了,一定會引起當前區塊的哈希改變。

這一點對於區塊鏈而言,意義重大。如果有人修改了一個區塊,該區塊的哈希就為之改變。為了讓後面的區塊還能連到它(因為下一個區塊包含上一個區塊的哈希),該人必須依次修改後面所有的區塊,否則被改掉的區塊就脫離區塊鏈了。

(由於後面要提到的原因,哈希的計算很耗時,短時間內修改多個區塊幾乎不可能發生,除非有人掌握了全網51%以上的計算能力。)

基於這種聯動機制,區塊鏈保障了自身的可靠性,數據一旦寫入,便無法篡改。

這可能是我見過最好的區塊鏈入門文章

而每一個區塊都連著上一個區塊,這便是“區塊鏈”的由來。

當你看到這裡,是不是突然有一種剝開雲霧見天日的感覺,原來這就是“區塊鏈”的由來。但對不起,你可能被這種假象欺騙了。因為在你的內心中還是存在一團疑惑。因為這個東西它太奇怪了,看似神秘至極,卻又充斥在在耳邊。似乎一夜之間,每個人都在討論著“區塊鏈”。

我同你一樣,好奇心驅使著我去一點一點的理解它,一層一層的去解開它神秘的面紗。我在區塊鏈自習室裡安靜的學習,如果你有興趣,我想和你一起探討。

備註:文章闡述的內容源引阮一峰的文章—區塊鏈入門介紹,本文在此基礎上理解性的予以闡述,僅用於學習交流。


分享到:


相關文章: