區塊鏈的核心技術

莫法發表於2018-07-23

區塊鏈的技術基石主要有:

  • SHA256 Hash
  • 公鑰加密技術
  • 工作量證明機制

(1)SHA256 Hash

區塊鏈使用的核心雜湊演算法是SHA256,計算後的之不能被解密回原始內容,是不可逆的,單向的,而且不管原始內容有多少,其結果的長度都是固定的,例如:

可以看到,即使原始內容的差異非常小,其結果的差異卻是非常大的。

SHA256可以實現免碰撞,也就是說:不會出現輸入x≠y,但是H(x)=H(y).

SHA256會有2^256種輸出,如果計算2^256+1次輸入,那麼必然會產生一次碰撞,我們可以計算一下,假設一臺計算機以每秒10000次的速度進行雜湊運算,要經過10^27年才能完成2^128次雜湊,所以以目前的技術來看,碰撞基本是不可能的。

(2)公鑰加密技術

這個加密技術幫助使用者建立一個公鑰和一個私鑰,公鑰是可以分享給他人的,私鑰是需要自己祕密保管的。

如果“張全蛋”給“穆鐵柱”轉一些比特幣,這筆交易中包含3部分資訊:

  • 穆鐵柱的比特幣地址(穆鐵柱的公鑰)
  • 交易的比特幣數量
  • 張全蛋的比特幣地址(張全蛋的公鑰)

所有這些資料以及加密數字簽名都會通過網路傳送進行驗證。數字簽名是張全蛋的比特幣地址和他向穆鐵柱傳送的數量的組合的雜湊值,這個數字簽名是通過私鑰進行加密的。

當礦工收到這個資料後,就會進行驗證,並同時做兩項工作:

  1. 把所有公開資料(交易金額、兩個人的公鑰)放入雜湊演算法中,得到一個雜湊值(例如為Hash1)
  2. 使用張全蛋的公鑰對數字簽名進行解密,得到一個雜湊值(例如為Hash2)

對比Hash1和Hash2,如果兩者相同,那麼它就是一個合法的交易。

(3)工作量證明

區塊鏈中每個人都平等的賬本,那麼誰來向區塊鏈新增區塊?如何信任這個人呢?

為此,有了工作量證明POW這個概念,可以理解為解一道複雜的題,需要付出大量的計算,做這個工作的人,就是我們常說的”礦工“。他們的工作就是驗證交易並解決與建立塊相關的複雜數學難題。

每一個區塊都有一個雜湊值,是幾項資料的組合,包括:

  1. 前一個區塊的雜湊值
  2. 交易資料的雜湊值
  3. nonce

最終的雜湊值必須以指定數量的0開頭才行。

舉個例子,給定的一個基本的字串Hello World!,我們給出的工作量要求是:可以在這個字串後面新增一個叫做nonce的整數值,對變更後的字串進行SHA256雜湊演算法,如果得到的雜湊結果(以16進位制的形式表示)是以"0000"開頭的,則通過驗證。

為了達到這個工作量證明的目標。我們需要不停的遞增nonce值,對得到的新字串進行SHA256雜湊運算。按照這個規則,我們需要經過4251次計算才能找到恰好前4位為0的雜湊雜湊。

誰先找到這個nonce誰就是獲勝的礦工,可以新增他的區塊到區塊鏈中,所有人都可以進行驗證,如果正確就更新他們的區塊鏈,繼續計算下一個區塊。

小結

希望通過上面簡單的區塊鏈介紹,能讓大家對區塊鏈技術有個大體瞭解,之後會詳細介紹區塊鏈技術的應用細節。

相關文章