鄧肯白話——區(qū)塊鏈系列
上回我們聊了什么是比特幣,今天我們聊聊區(qū)塊鏈技術。
區(qū)塊鏈和區(qū)塊鏈技術其實是不一樣的概念。區(qū)塊本身就像是我們逛超市時候的物品存放柜,在比特幣里區(qū)塊就是用來存放比特幣交易的,交易太多一個區(qū)塊存放不下,就需要挖出新的區(qū)塊(這就是挖礦),并且在新的區(qū)塊第一個儲物格里存放前一個區(qū)塊的哈希值(可以理解為區(qū)塊號),這樣通過頭尾連接起來就是區(qū)塊鏈。在技術上來說,區(qū)塊鏈可以存儲為flat file或者簡單數據庫中,實現上并不復雜,也不是一個新概念。不同的點在于,比特幣使用的區(qū)塊鏈是去中心化的,也就是分布式的,并且形成了一整套區(qū)塊鏈技術,這就引入了很多概念。
首先是區(qū)塊鏈如何做到去中心化,這需要一個P2P(peer-to-peer)網絡,以及網絡上不同節(jié)點的支持。
在比特幣網絡中,每個節(jié)點都是路由、錢包、挖礦和區(qū)塊鏈數據庫這四個功能的集合,各節(jié)點上都會保留區(qū)塊鏈的副本,節(jié)點之間通常采用TCP協(xié)議傳輸,通過8333端口建立連接。保留區(qū)塊鏈全部副本的叫做全節(jié)點,保留區(qū)塊鏈部分拷貝的叫做修剪節(jié)點,另外還有輕便式的比如手機端比特幣錢包APP,這些叫做SPV節(jié)點。SPV是一個“簡單支付認證”方式,主要就是打造輕量級節(jié)點。打個比方,我旅行帶了3個行李箱,出入不方便,我就把2個大的行李箱寄存,隨身帶個小的行李箱,需要的時候我憑寄存條可以把另外2個大的行李箱取回。這就是輕量級節(jié)點的工作模式,當然SPV有更安全的機制驗證行李箱是否被打開過。
比特幣網絡截止目前已經有超過上萬個節(jié)點。如果有新的節(jié)點加入,如何識別和發(fā)現已有節(jié)點?一個比較好的辦法是比特幣客戶端維護了一個長期穩(wěn)定運行節(jié)點的列表,這些節(jié)點也可以被看做是比特幣網絡的“種子節(jié)點”,通過這些種子節(jié)點可以迅速發(fā)現網絡中的其它節(jié)點。如果一個節(jié)點連續(xù)90分鐘沒有任何應答,那么會被認為網絡中斷,節(jié)點需要重啟后再次啟動連接加入網絡。
既然節(jié)點多了,肯定需要一個共識機制來管理。目前區(qū)塊鏈技術使用的共識機制主要有PoW(Proof of Work)工作量證明,PoS(工作權益證明),DPoS(委托權益證明)和傳統(tǒng)一致性算法如PBFT(拜占庭容錯)、PAXOS、RAFT等。比特幣使用的是PoW,以太坊使用的是PoW+PoS,像比特股、EOS等使用的是DPoS,超級賬本用的是PBFT。詳細的共識機制我們放到下一章聊。
P2P網絡架構,共識機制和區(qū)塊鏈數據庫,構成了區(qū)塊鏈技術的基石。就像上回我們說到,這里還少了一樣東西,就是激勵機制。目前絕大部分基于區(qū)塊鏈的應用,都使用Token作為激勵機制的,Token本身的意義可能跟區(qū)塊鏈同等重要。我們都知道,記賬是產生財富的基礎,個人生產的物品如果不進行交易就體現不出價值,正是因為可以記賬,才可以進行等價交換,從而創(chuàng)造更多的財富。但在現實世界中,很多的事物是無法被量化的,或者量化的顆粒度太粗,也就沒辦法進行交換或者高效地交換。比如你的房子,不可能拆分成10份來賣。而在區(qū)塊鏈技術中,Token的引入很好地解決了這個問題,所有實體的、虛擬的資產都可以通過Token來量化和交易,包括挖礦的收益、交易手續(xù)費、各種實物資產和數字資產如房子、母豬、博客、游戲裝備、歌曲等等,并且基于Token的加密機制和私鑰驗證機制,保證了資產交易的安全性,而共識機制又避免了“雙重支付”的問題,這些都是現實世界交易很頭疼的問題,所以個人認為Token的引入是具有與區(qū)塊鏈同等意義的創(chuàng)新。





