05.10 區塊鏈的核心技術

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

  • 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)公鑰加密技術

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

區塊鏈的核心技術

如果 Chandler 給 Joey 轉一些比特幣,這筆交易中會包含3部分信息:

  • Joey 的比特幣地址(Joey 的公鑰)

  • 交易的比特幣數量

  • Chandler 的比特幣地址(Chandler 的公鑰)

所有這些數據以及加密數字簽名都會通過網絡發送進行驗證。數字簽名是Chandler的比特幣地址和他向joey發送的數量的組合的哈希值,這個數字簽名是通過私鑰加密的。

當礦工收到這個數據後,他會進行驗證,會同時做兩項工作:

  1. 把所有非加密數據(交易金額、兩個人的公鑰)放入哈希算法中,得到一個哈希值(例如為 Hash1)

  2. 使用 Chandler 的公鑰對數字簽名進行解密,得到一個哈希值(例如為 Hash2)

如果 Hash1 與 Hash2 相同,那麼它就是一個合法的交易。

(3)工作量證明

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

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

每個區塊都有一個哈希值,是幾項數據的組合,包括:

  1. 前一個區塊的哈希值

  2. 交易數據的哈希值

  3. nonce

最終的哈希值必須以指定數量的0

開頭才行。

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

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

區塊鏈的核心技術

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


分享到:


相關文章: