區塊鏈的工作原理是怎樣的

“比特幣”是一種數字貨幣。而“區塊鏈”就是比特幣的記賬系統。

區塊鏈:去中心化的分布式數據庫LA1顯卡之家

大家都知道,“比特幣”是一種數字貨幣。而“區塊鏈”就是比特幣的記賬系統。可以把區塊鏈想象成一個賬本,上面記錄了全球所有的比特幣交易信息。那麽,區塊鏈跟傳統的銀行記賬有什麽區別呢?LA1顯卡之家

這就涉及到區塊鏈的本質了:區塊鏈是一種去中心化的分布式數據庫。我會一一解釋這三個關鍵詞。LA1顯卡之家

數據庫:LA1顯卡之家

所謂“數據庫”,就是計算機上的一組表格,它可以存放大量的有結構的信息(可以類比Excel,但遠比Excel複雜)。比如我們去銀行存款、取款、彙款,這些交易信息都是要上傳到銀行的數據庫的。LA1顯卡之家

分布式:LA1顯卡之家

這個數據庫可以存放在銀行的一台超級電腦上,也可以放在多台電腦上。比如工行可能在華北、華中、華東、華南等地區各有一台服務器,每個地區的交易信息發送到本地區的服務器上,各個服務器之間通過銀行的內部網絡連接。這就叫“分布式數據庫”。LA1顯卡之家

去中心化:LA1顯卡之家

傳統的服務器,不管是不是分布式的,都是有“管理員”的。也就是說,有一個銀行內部的“超級用戶”可以查看所有的交易信息,並且可以隨意添加、修改這些信息。這就叫“中心化”。LA1顯卡之家

而區塊鏈則是“去中心化”的。也就是說,區塊鏈這個數據庫中不存在管理員,所有人都是平等的,都有權查看、添加信息。去中心化是區塊鏈的本質特征。LA1顯卡之家

既然所有人都有權往區塊鏈上添加信息,那麽這個“賬本”難道不會亂七八糟嗎?要搞清楚這點,我們需要了解什麽是“區塊”,什麽是“鏈”。LA1顯卡之家

何爲“區塊”何爲“鏈”?“區塊”是區塊鏈的基本組成。區塊就是一個數據塊。類比賬本的話,區塊就相當于賬本上的一頁,這一頁上記錄了多條交易信息。而把這些分散在整個互聯網上的“頁”串成一條鏈,就可以形成一個完整的“賬本”。那麽,“區塊”是怎麽串成“區塊鏈”的呢?LA1顯卡之家

區塊鏈賬本的記賬原理LA1顯卡之家

哈希值與防篡改:LA1顯卡之家

除了比特幣交易信息之外,區塊上還包含了這個區塊本身的一些特征信息。可以類比一頁上的“頁碼”,只不過這個“頁碼”比較複雜。“頁碼”中最重要的,就是“哈希值”,它是理解區塊鏈可靠性的關鍵。LA1顯卡之家

所謂“哈希值”,可以理解爲數據的一個“指紋”。我們簽合同有時會摁手印,以後只要把自己的指紋和合同上的指紋對比一下,就可以證明合同是自己簽的。類似地,我們在網上下載一個軟件,有些網站會給出安裝包的哈希值(可能稱爲CRC或SHA)。我們下載完安裝包後,只需用專門的工具計算一下這個SHA值,再跟官網上給的SHA值對比一下,就可以知道自己下載的和網站提供的是否100%一致,下載過程有沒有被人做了手腳。LA1顯卡之家

不同的數據,算出來的哈希值一般來說是不同的。如果已知數據A的哈希值是H,想僞造另一個數據B,使它的哈希值也是H,這是極其困難的。也就是說,哈希值具有不可僞造性,起到了“指紋”的作用。LA1顯卡之家

一個區塊中,包含了兩種哈希值:“上一個區塊的哈希值”和“本區塊的哈希值”。因爲每個區塊都包含了上一個區塊的哈希值,所有的區塊就依次連成一條(邏輯上的)鏈。“上一個區塊的哈希值”就起到了“頁碼”的作用——給頁排序。LA1顯卡之家

LA1顯卡之家

▲區塊所包含的內容LA1顯卡之家

區塊鏈的工作原理是怎樣的LA1顯卡之家

▲區塊連接成區塊鏈LA1顯卡之家

如果一個區塊上的交易信息被人惡意篡改的話,“本區塊的哈希值”就會改變。由于區塊鏈中下一個區塊包含了“上一個區塊的哈希值”,爲了讓下一個區塊依然能連到本區塊,需要修改下一個區塊。而這又導致下下個、下下下個。..。..區塊也必須修改。LA1顯卡之家

區塊鏈的工作原理是怎樣的LA1顯卡之家

▲篡改了一個區塊,就要修改後面所有區塊LA1顯卡之家

由于區塊鏈本身的一些機制(這個機制比較細節,我們這裏不討論),計算一個區塊的哈希值是極其困難的,修改多個區塊的哈希值則是難上加難。這樣,篡改區塊鏈中的交易信息就成爲幾乎不可能的事情。這就保證了區塊鏈的可靠性。LA1顯卡之家

采礦:向區塊鏈寫入信息的方式LA1顯卡之家

采礦:向區塊鏈寫入信息的方式“采礦”,就是計算出一個潛在區塊的哈希值,使這個區塊正式加入整個區塊鏈的過程。一個區塊加入區塊鏈後,其中包含的交易信息才能成爲事實。由于比特幣設計者的一些考慮,采礦的過程需要消耗大量時間和資源。前面已經提到,計算區塊的哈希值是極其困難的。具體有多困難呢?如果比特幣網絡中的計算機都參與哈希值的計算,平均每十分鍾才能算出一個哈希值。LA1顯卡之家

從事采礦活動的人,稱爲“礦工”。互聯網上的任何人都可以加入比特幣網絡,成爲礦工。既然采礦需要消耗大量時間和資源,爲什麽礦工會自願加入呢?這是因爲比特幣協議規定,挖到新區塊的礦工會得到比特幣獎勵。這是礦工采礦的動力;也因爲礦工持續得挖礦,比特幣交易信息才能被確認,比特幣交易才能正常進行。同時,這也是比特幣總量唯一的增加方式。比特幣不像傳統貨幣,它的總量不能通過國家或機構人爲印發的方式增加,只能通過挖礦獎勵的方式“自然地”增加。LA1顯卡之家

如何避免主鏈分叉?LA1顯卡之家

既然挖礦會有比特幣獎勵,比特幣的交易方也會給礦工一些手續費作爲報酬,礦工之間難免會産生大量競爭。如果兩個礦工同時挖到了某個區塊的下一個區塊,那麽誰挖到的那個區塊有資格加入區塊鏈呢?如果都可以加入區塊鏈,區塊鏈産生了分叉,這樣如何保證區塊鏈的“唯一性”呢?LA1顯卡之家

區塊鏈協議規定,如果一個分叉上的新增區塊達到了六個,那麽它就成爲區塊鏈的“正統”;而同一時刻其他沒有達到六個區塊的分叉,就會被不幸淘汰,這些區塊上的交易信息也不會被認可。這就避免了區塊鏈的分叉。由于一個區塊在被挖出來後,後面必須跟上六個新區塊,而平均每十分鍾才能挖到一個新區塊,這樣,一筆交易至少需要一個小時才能被確認(被寫進區塊鏈)。LA1顯卡之家

區塊鏈的工作原理是怎樣的LA1顯卡之家

▲礦工B:我有一句喵喵喵不知當不當講LA1顯卡之家

綜合上文,那麽比特幣交易的過程是怎樣的呢?LA1顯卡之家

交易無非就是一條信息:“買方-1$,賣方+1$。”(這裏涉及到一些非對稱密碼的知識,由于不是比特幣所獨有,不作討論。)當你發起一筆比特幣交易後,這個交易信息就會從你的設備上,逐漸發送到整個比特幣網絡。LA1顯卡之家

爲了挖礦獎勵,許多礦工都會收集你的交易信息,並拼命挖新的區塊。如果一個礦工挖出了一個新的區塊,他就會把你的交易信息寫入區塊。在這之後,他還需要再挖出六個新的區塊,以保證整個區塊鏈采用了這個區塊。這時你的交易信息才能正式寫入區塊鏈,得到確認。而那些沒有挖到六個區塊的礦工的成果則會被淘汰。LA1顯卡之家

這樣,雖然是多個礦工在競爭著寫入你的交易信息,最後只能有一個礦工成功地寫入。這就保證了同一次交易中,你的錢不會被扣掉兩次。LA1顯卡之家

一旦一個新的區塊正式加入了區塊鏈,這個區塊就會被同步到所有礦工的機器上,新的區塊只能跟在這個區塊後面。而挖到這個區塊的礦工會獲得一些比特幣作爲獎勵,這也是新比特幣發行的過程。LA1顯卡之家

小結一下以上的要點:LA1顯卡之家

區塊鏈是比特幣交易的可靠的、唯一的賬本。LA1顯卡之家

區塊鏈是一個無中心的分布式數據庫。它沒有管理員,網絡中的所有用戶都可以平等地向區塊鏈中寫入新的區塊。LA1顯卡之家

區塊根據“上個區塊的哈希值”而連接成一條鏈。LA1顯卡之家

計算哈希值的困難性,使得區塊和區塊鏈無法被篡改,保證了區塊和區塊鏈的可靠性。LA1顯卡之家

一個區塊後面新增六個區塊才能使它正式加入區塊鏈,這使得區塊鏈不會産生分叉,保證了區塊鏈的唯一性。LA1顯卡之家

但同時,這也導致比特幣交易至少需要一個小時來確認,不具有即時性。LA1顯卡之家

挖礦獎勵是比特幣唯一的發行機制,也是礦工挖礦的動力。LA1顯卡之家

來源:IT之家LA1顯卡之家

相關推薦

X-POWER-BY FNC V1.0.0 FROM 自制32