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