天天看點

區塊鍊記賬

      區塊鍊(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貨款
張三 30 xxxx
李四 120 90 170

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

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

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

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

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

在記第2個賬頁的時候,會把上一個塊的Hash值和目前的賬頁資訊一起作為原始資訊進行Hash,即:

1
      
Hash(上一個Hash值、序号1、記賬時間、交易記錄) = 456635BCD
      
上一篇: 區塊鍊綜述
下一篇: 區塊鍊下鄉

繼續閱讀