區塊鏈記賬

      區塊鏈(1.0)是一個基於密碼學安全的分佈式賬本,是一個方便驗證,不可篡改的賬本。通常認爲與智能合約相結合的區塊鏈爲區塊鏈2.0,如以太坊是典型的區塊鏈2.0很多人只瞭解過比特幣,不知道區塊鏈,比特幣實際是一個使用了區塊鏈技術的應用,只是比特幣當前太熱,把區塊鏈技術的光芒給掩蓋了,區塊鏈纔是未來。


下面講解區塊鏈1.0技術是如何實現的。


哈希函數

在講區塊鏈記賬之前,先說明一下哈希函數。
哈希函數:Hash(原始信息) = 摘要信息
原始信息可以是任意的信息, hash之後會得到一個簡短的摘要信息。

哈希函數有幾個特點:

  • 同樣的原始信息用同一個哈希函數總能得到相同的摘要信息

  • 原始信息任何微小的變化都會哈希出面目全非的摘要信息

  • 從摘要信息無法逆向推算出原始信息

舉例說明:
Hash(張三借給李四100萬,利息1%,1年後還本息 …..) = AC4635D34DEF
賬本上記錄了AC4635D34DEF這樣一條記錄。

可以看出哈希函數有4個作用:

  • 簡化信息
    很好理解,哈希後的信息變短了。

  • 標識信息
    可以使用AC4635D34DEF來標識原始信息,摘要信息也稱爲原始信息的id。

  • 隱匿信息
    賬本是AC4635D34DEF這樣一條記錄,原始信息被隱匿。

  • 驗證信息
    假如李四在還款時欺騙說,張三隻借給李四10萬,雙方可以用AC4635D34DEF來驗證原始信息

哈希函數的這4個作用在區塊鏈技術裏有廣泛的運用。


區塊鏈記賬方法

假設有一個賬頁序號爲0的賬頁交易記錄如下:

賬號入賬出賬餘額備註說明
王二100
190收到xxx貨款
張三
10030xxxx
李四12090170xxxx

記賬時間爲:2018-8-22 10:22:02

區塊鏈在記賬是會把賬頁信息(包含序號、記賬時間、交易記錄)作爲原始信息進行Hash, 得到一個Hash值,如:787635ACD, 用函數表示爲:

1
Hash(序號0、記賬時間、交易記錄) = 787635ACD


賬頁信息和Hash值組合在一起就構成了第一個區塊。

比特幣系統里約10分鐘記一次賬,即每個區塊生成時間大概間隔10分鐘

在記第2個賬頁的時候,會把上一個塊的Hash值和當前的賬頁信息一起作爲原始信息進行Hash,即:

1
Hash(上一個Hash值、序號1、記賬時間、交易記錄) = 456635BCD

這樣第2個區塊不僅包含了本賬頁信息,還間接的包含了第一個區塊的信息。依次按照此方法繼續記賬,則最新的區塊總是間接包含了所有之前的賬頁信息。

所有這些區塊組合起來就形成了區塊鏈,這樣的區塊鏈就構成了一個便於驗證(只要驗證最後一個區塊的Hash值就相當於驗證了整個賬本),不可更改(任何一個交易信息的更改,會讓所有之後的區塊的Hash值發生變化,這樣在驗證時就無法通過)的總賬本。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章