入門區塊鏈必讀的寶典

區塊鏈(blockchain)是眼下的大熱門,新聞媒體大量報道,宣稱它將創造未來。

其實區塊鏈也不是很難的東西,下面是一份最易懂的區塊鏈教程。看完這篇文章,您會對區塊鏈有很大的理解,明白什麼是挖礦、以及挖礦越來越難等問題。

區塊鏈的本質

區塊鏈的本質是一種特殊的分散式資料庫。它的主要作用是儲存信息。任何需要保存的信息,都可以寫入區塊鏈,也可以從裡面讀取。

其次,任何人都可以架設伺服器,加入區塊鏈網路,成為一個節點。區塊鏈的世界裡面,沒有中心節點,每個節點都是平等的,都保存著整個資料庫。你可以向任何一個節點,寫入/讀取數據,因為所有節點最後都會同步,保證區塊鏈一致。

區塊鏈的最大特點

區塊鏈沒有管理員,它是徹底無中心的。如果有人想對區塊鏈添加審核,也實現不了,因為它的設計目標就是防止出現居於中心地位的管理當局。

Advertisements

正是因為無法管理,區塊鏈才能做到無法被控制。否則一旦大公司大集團控制了管理權,他們就會控制整個平台,其他使用者就都必須聽命於他們了。

但是,沒有了管理員,人人都可以往裡面寫入數據,怎麼才能保證數據是可信的呢?被壞人改了怎麼辦?請接著往下讀,這就是區塊鏈奇妙的地方。

區塊

區塊鏈由一個個區塊(block)組成。區塊很像資料庫的記錄,每次寫入數據,就是創建一個區塊。

每個區塊包含兩個部分。

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

  • 區塊體(Body):實際數據

區塊頭包含了當前區塊的多項元信息。

  • 生成時間

  • 實際數據(即區塊體)的 Hash

  • 上一個區塊的 Hash

    Advertisements

  • ...

理解Hash很重要,這樣才能很好的理解區塊鏈

計算機可以對任意內容,計算出一個長度相同的特徵值。而區塊鏈的 Hash長度是256位,這就是說,不管原始內容是什麼,最後都會計算出一個256位的二進位數字。而且可以保證,只要原始內容不同,對應的 Hash一定是不同的。

Hash 的不可修改性

區塊與 Hash 是一一對應的,每個區塊的 Hash 都是針對"區塊頭"(Head)計算的。

Hash = SHA256(區塊頭)

上面就是區塊 Hash 的計算公式,Hash 由區塊頭唯一決定,SHA256是區塊鏈的 Hash演算法。如果當前區塊的內容變了,或者上一個區塊的 Hash 變了,一定會引起當前區塊的 Hash 改變。

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

正是通過這種聯動機制,區塊鏈保證了自身的可靠性,數據一旦寫入,就無法被篡改。這就像歷史一樣,發生了就是發生了,從此再無法改變。

每個區塊都連著上一個區塊,這也是"區塊鏈"這個名字的由來。

採礦

由於必須保證節點之間的同步,所以新區塊的添加速度不能太快。因為每個區塊的後面,只能跟著一個區塊,你永遠只能在最新區塊的後面,生成下一個區塊。所以,你別無選擇,一聽到信號,就必須立刻同步。

區塊鏈的發明者中本聰,故意讓添加新區塊,變得很困難。他的設計是,平均每10分鐘,全網才能生成一個新區塊,一小時也就六個。

這種產出速度是設置了海量的計算。只有通過極其大量的計算,才能得到當前區塊的有效Hash,從而把新區塊添加到區塊鏈。計算量太大,所以快不起來。

這個過程就叫做採礦。計算 Hash 的機器就叫做礦機,操作礦機的人就叫做礦工。

難度係數

讀到這裡,你可能會有一個疑問,人們都說採礦很難,可是採礦其實就是用計算機算出一個 Hash,但不是任意一個 Hash都可以,只有滿足條件的 Hash 才會被區塊鏈接受。

因為其條件苛刻,絕大部分 Hash 反覆重算,所以增加了難度係數。區塊頭包含一個難度係數,這個值決定了計算 Hash的難度。

區塊鏈協議規定,目標值難度係數越大,目標值就越小,導致了採礦越來越難。由於目標值非常小,Hash小於該值的機會極其渺茫,可能計算10億次,才算中一次。這就是採礦如此之慢的根本原因。

總結:

區塊鏈作為分散式資料庫,從2009年開始已經運行了8年,至今被越來越多的社會群體所接受,並且展開應用,國家政府也紛紛出台扶持政策,區塊鏈的應用和發展前景不可限量。

Advertisements

你可能會喜歡