如果要聊聊區塊鏈,那么就得先說說比特幣。
在2008年一個名為中本村的人發了一篇名為《比特幣:一種點對點的電子現金系統》的論文,從此掀起了人們對新一代數字貨幣的研究熱潮。如論文題目所述,比特幣是一種點對點的電子現金系統,它的出現主要得益于以下幾種技術:非對稱加密、哈希計算、分布式技術。緊隨比特幣的步伐又出現了許多令人眼花繚亂的代幣,如火幣、彩色幣、以太幣、瑞波幣等。這些所有出現的代幣,都是基于一種名為區塊鏈的技術。也可以理解為區塊鏈技術是所有代幣的底層,代幣只是建立在它之上的一個具體應用而已(見圖1)。
目前,基于比特幣區塊鏈的應用已經遍及生活的方方面面(見圖2),金融領域如股權交易、眾籌、金融衍生品交易等,政府部門職能如房產所有權登記、知識產權證明等,IT領域如電子商務、P2P貸款、信息保存等。區塊鏈的發展已經如火如荼,讓人不能忽視。就連央行也剛剛成立了數字貨幣研究所來相應區塊鏈發展的熱潮。
那么,區塊鏈到底是什么?

圖1
通俗理解,區塊鏈是一個分布式總賬(見圖3)。
把這個總賬稱作區塊鏈的原因是總賬里存儲信息的基本單位是一個區塊,而后生成的區塊基于前一個區塊的哈希值建立,抽象地可以理解為后一個區塊有一個指針指向前一個區塊(見圖4),這樣所有的區塊就形成了一個鏈條。這個賬本是分布式地存儲在部分或所有用戶節點中,每個用戶節點所存儲的內容一致,并且能夠相互之間進行驗證。
以下內容都基于比特幣區塊鏈來對區塊鏈作一步描述。

圖2

圖3

圖4
首先說說區塊鏈是如何保證所有的節點存儲的內容是一致的。這是因為區塊鏈都需要使用共識算法,而在比特幣中這種共識算法是工作量證明。那么如何理解這個工作量證明呢?計算機可以很容易地計算一個輸入值的哈希值,但是要是計算出的哈希值小于某一個值就非常困難,要得到比一個固定的數值小的哈希值,可能需要計算機進行數十億次甚至數百億次的哈希計算才能夠完成,這個過程是非常耗時的。在比特幣區塊鏈里,就把計算出比一個固定值小的哈希值的這個過程中所作出的努力稱為工作量證明。共識算法的一個重要的步驟就是計算出這個哈希值。由于每一區塊都是基于前一個區塊建立起來的,所以如果有一個節點想要篡改區塊鏈中的數據,它需要付出極大的努力來重新計算前面所有區塊中的哈希值,這個在實際上認為是不可能的。所以,當這個哈希值計算出來,所有節點都可以相信這個值很大的概率是正確的,然后通過P2P網絡把區塊下載到本地即可。
那么比特幣區塊鏈是不是就絕對安全呢?并不是這樣,網絡超過一半的算力使壞,比特幣區塊鏈就可能被攻破。什么是算力呢?假設現在有兩臺計算機,它們除了CPU以外,所有的配置都相同。計算機A的CPU是Intel i5,計算機B的CPU是Intel i7,假設Intel i7的計算能力是Intel i5的兩倍。這個時候可以說計算機A擁有的算力單位是1,而計算機B擁有的算力單位是2。在有超過一半算力在使壞時,它們可以重新計算前面區塊的哈希值,然后慢慢就能夠追趕上現有的區塊長度,最終達到篡改的目的。所以比特幣區塊鏈并不是絕對安全的。