帶著小白瞭解下區塊鏈技術

三木閒僧發表於2019-05-31

前言

近幾天隨著比特幣的暴漲,數字貨幣以及區塊鏈技術又迎來了它的春天,那麼作為一名搬磚工,你真的瞭解過區塊鏈技術嗎?本文從以下幾個知識點帶你揭開區塊鏈和數字幣的神祕面紗。

  • 數字幣與法幣區別
  • 區塊鏈實現技術
  • 前景展望

數字幣與法幣區別

法幣的價值是由國家信用來支撐的,其本身並不存在任何價值,數字幣也一樣,需要有人認同才有價值,相對於法幣來說,數字幣的發行並不受國家管控,它的總量是固定的,所以不存在發生通貨膨脹可能,認同數字幣的人越多,那麼它的價值就越高。

區塊鏈實現技術

賬本(Ledger)

區塊鏈中所有的交易記錄在賬本中。
首先我們來了解下什麼是賬本,舉個例子:
假如你經常和你的同事一起出去吃飯,每次吃完飯總有一個人把錢都付了,那麼你就得記住你欠了張三多少錢,下次換成你付錢的時候,就換成張三記錄欠了你多少錢,這樣我們把所有的都記錄下來,就形成了一個賬本。

賬本

我們只需要月底的時候清算一次即可。
那麼問題來了,既然大家都可以往賬本新增記錄行,是否我可以未經過張三允許,私自在賬本上新增 張三 付給 我 ¥100 呢?
答案是否定的,如何實現,請往下看。

數字簽名

現實世界中,一張支票是否有效,銀行是根據支票上面的簽名來判斷的。那麼在區塊鏈的世界中,我們同樣也可以使用數字簽名來實現交易記錄的有效性。我們可以在每次交易上,加上自己的數字簽名,別人模仿不了,從而確定了交易是由本人發出的,而不是特意偽造的。

簽名

那麼是數字簽名,它又是怎麼實現的呢?
數字簽名涉及到2個概念:公鑰 and 私鑰
張三有兩把鑰匙,一把是公鑰,另一把是私鑰,私鑰是自己儲存的,公鑰是給別人的。

用公鑰加密過的資料,只能用私鑰解開:
資料 + 公鑰 = 亂碼 + 私鑰 = 資料
私鑰加密過的資料,公鑰可以解開:
資料 + 私鑰 = 亂碼 + 公鑰 = 資料

張三需要用自己的私鑰對交易記錄進行加密,其他人只需要使用他的公鑰去解密,就能確認這條交易記錄確實是張三發出的。
假設李四想冒充張三,由於沒有張三的私鑰,所以李四使用自己的私鑰發出的資料並不能被張三公鑰解密,交易不被確認。

貨幣

貨幣的實體是交易的歷史記錄。

貨幣

區塊鏈中你的賬戶餘額並不是我們通常理解的錢包裡有多少錢,而是通過計算曆史的交易記錄得出來的。
你有多少錢才能花多少,確保不可超支,這就需要每次交易的時候,清算賬目上所有的交易記錄,計算出目前你的餘額,當餘額小於本次交易所需開銷時,本次交易失敗。

工作量證明

為了去中心化,區塊鏈中所有的節點都會維護同一個賬本。當一個交易被執行時,如 張三給李四 ¥100 ,那麼張三會把這條訊息廣播出去,與此同時節點上的其他人也同樣發生著其他交易,如何確保其他節點承認這筆交易,以及交易的順序,區塊鏈中使用工作量證明來解決這個問題。

在講工作量證明之前,我們先來了解下雜湊函式。
SHA256函式能將任意輸入(包括檔案)轉為化256位的01位元串,俗稱摘要。只要輸入稍微改變,結果就會完全不同,且無法逆推。

工作量

工作量證明如何運作:
首先每個節點都會把這段時間廣播收到的交易記錄加上一串隨機的數字形成一個區塊,然後用SHA256去計算這個區塊的摘要

工作量

只要有一個節點找到摘要前30位都為0時,該節點就可以向其他節點傳送此區塊,其他節點收到此區塊就更新自己的區塊,並重新開始計算新的交易記錄,目前比特幣設計大概每10分鐘記錄一個區塊,隨著算力的提升,系統通過增加摘要0的個數來維持10分鐘平衡。

time

由於SHA256出來的結果是隨機的,所以想要得到前30位都為0的摘要資訊只能通過改變隨機數進行大量的計算,這就是工作量證明。

如何確認交易順序呢,我們只需要將前一個區塊的摘要放入到本次的計算中去,這樣就確保了交易的順序

交易順序

這些區塊一個連著一個,就像一條鏈一樣,區塊鏈的名字就是這麼來的。

為了獎勵區塊發現者的工作,當他傳送區塊時,系統會在區塊的交易記錄上新增一個特殊的記錄:張三 獲得 ¥100,這就是比特幣的來源。當然這個獎勵會隨著時間的增長而成倍減少,比特幣的總量是2100萬個,最開始每開採一個區塊獎勵50個,四年減半一次,目前是12.5個。

前景展望

  • 智慧合約
  • 轉賬
  • 投票
  • 物聯網溯源
  • 租房
  • 叫車
  • 版權
  • 不動產證明
  • 眾籌

比特幣論文

相關文章