作者 | Owen
出品|白話區(qū)塊鏈(ID:hellobtc)
在前面的《如何跟大爺大媽講清楚什么是比特幣?》一文中,我們了解了什么是比特幣及其運(yùn)行原理。昨天《 區(qū)塊鏈為什么能防偽、防篡改?》一文,又請(qǐng)出 5 位皇帝來(lái)幫你理解比特幣的底層技術(shù)區(qū)塊鏈為什么能防偽、防篡改。
今天,我們延續(xù)昨天的話題,講講區(qū)塊鏈的記賬方式是如何讓其成為制造信任的機(jī)器的?
01
傳統(tǒng)的記賬方式
記賬,是大家很熟悉的一件事。尤其現(xiàn)在,出門(mén)都不用帶現(xiàn)金,你有多少錢(qián),就等同于你在銀行帳戶(hù)、支付寶或微信錢(qián)包里對(duì)各種收支進(jìn)行記帳計(jì)算后的余額。
那什么是記帳呢?舉個(gè)例子:
小張每月工資是 1 萬(wàn)元,在發(fā)工資的過(guò)程中,銀行會(huì)記錄:公司賬戶(hù)減 1 萬(wàn)元,小張賬戶(hù)加 1 萬(wàn)元。發(fā)工資后,小張趁雙 11 用微信支付買(mǎi)了件衣服,花費(fèi) 500 元,這時(shí)微信會(huì)記錄:小張的賬戶(hù)減 500 元,商家的賬戶(hù)加 500 元。
我們認(rèn)可這樣的記帳方式,是基于對(duì)記賬者(銀行、微信支付等第三方機(jī)構(gòu))的信任。但它們屬于中心化記賬系統(tǒng),難以避免因系統(tǒng)故障、公司倒閉或其他原因?qū)е碌挠涃~失效、失真。
如果可以人手一個(gè)帳本,大家共同參與記帳,帳本實(shí)時(shí)同步,賬本就變得公開(kāi)透明、真實(shí)可靠多了。這樣,任何一方出現(xiàn)問(wèn)題,都不會(huì)影響記帳的安全運(yùn)作。與由個(gè)別機(jī)構(gòu)進(jìn)行記帳相比,這顯然是個(gè)更好的記賬方式,這其實(shí)也是區(qū)塊鏈的記賬方式。
02
區(qū)塊鏈的記賬方式
在區(qū)塊鏈系統(tǒng)中,根據(jù)一套競(jìng)爭(zhēng)規(guī)則,選出記賬人,參與競(jìng)爭(zhēng)的人都有機(jī)會(huì)獲勝當(dāng)選記賬人。我們假設(shè)這個(gè)規(guī)則是拼魔方競(jìng)賽,誰(shuí)最先拼好魔方,誰(shuí)就獲得記賬權(quán)。這體現(xiàn)了區(qū)塊鏈記賬的一個(gè)特點(diǎn):非中心化記賬。通過(guò)玩魔方游戲隨機(jī)產(chǎn)生記賬人,保證記賬人不再是某個(gè)中心化機(jī)構(gòu)。
每一次魔方競(jìng)賽中,都只產(chǎn)生一名獲勝者,由他來(lái)進(jìn)行記賬,記賬信息打包生成一個(gè)數(shù)據(jù)包,該數(shù)據(jù)包稱(chēng)為區(qū)塊(即挖出一個(gè)新區(qū)塊)。其他玩家驗(yàn)證無(wú)誤后,將這個(gè)新區(qū)塊復(fù)制(下載同步)到自己維護(hù)的區(qū)塊鏈上,這就保證了所有玩家雖是分布式記賬,但所有人的賬本數(shù)據(jù)是一致的(區(qū)塊鏈上信息相同)。這體現(xiàn)了區(qū)塊鏈記賬的第二大特點(diǎn),所有節(jié)點(diǎn)(參與游戲的玩家)維護(hù)的賬本一樣,對(duì)賬非常方便。
那如何保證記賬人不會(huì)作弊記假賬呢?
這是通過(guò)驗(yàn)證和獎(jiǎng)勵(lì)機(jī)制來(lái)現(xiàn)實(shí)的。所有玩家都會(huì)驗(yàn)證獲勝玩家記賬的真實(shí)性。如果記假賬,其他玩家就不認(rèn)可這次記賬,獲勝玩家就白白浪費(fèi)一次記賬機(jī)會(huì)。而且,每次獲得記賬權(quán)都意味著豐厚的獎(jiǎng)勵(lì),記假賬就等于自動(dòng)放棄獎(jiǎng)勵(lì)。所以,獲勝玩家出于利益考慮,不會(huì)記假賬。
即使他是一個(gè)破壞分子,特意來(lái)?yè)v亂,最終也無(wú)法通過(guò)其他玩家的驗(yàn)證,因?yàn)橹挥姓_的記賬才會(huì)被所有玩家認(rèn)可。這就保證了記賬數(shù)據(jù)的正確性。
一次記賬完成,就是一個(gè)新區(qū)塊被挖出,這個(gè)區(qū)塊信息是固定的,它有自己獨(dú)有的數(shù)據(jù)指紋(即哈希值。通過(guò)對(duì)該區(qū)塊進(jìn)行哈希運(yùn)算,產(chǎn)生該區(qū)塊的哈希值,該區(qū)塊發(fā)生任何變化,區(qū)塊的哈希值就會(huì)有巨大改變)。
在下一輪游戲中,新的獲勝玩家,記錄新一頁(yè)賬單(挖出新區(qū)塊),新的賬單的頭部(區(qū)塊頭)需要記錄上一頁(yè)賬單的數(shù)據(jù)指紋(上個(gè)區(qū)塊的哈希值),這就保證上一頁(yè)賬單和當(dāng)前賬單建立有明確順序的緊密關(guān)聯(lián)。
若上一頁(yè)賬單數(shù)據(jù)被修改,那它的數(shù)據(jù)指紋(哈希值)會(huì)發(fā)生改變,就無(wú)法與下一頁(yè)賬單中記錄的哈希值對(duì)應(yīng)上。所有玩家就能識(shí)別出這是個(gè)被篡改的無(wú)效鏈,并將其拋棄。
而上個(gè)區(qū)塊的頭部也記錄了上上個(gè)區(qū)塊的哈希值,這樣整個(gè)區(qū)塊鏈環(huán)環(huán)相扣,有嚴(yán)格的先后順序,且只要某個(gè)區(qū)塊數(shù)據(jù)被篡改,其后所有區(qū)塊的記賬數(shù)據(jù)就會(huì)發(fā)生改變,可謂“牽一發(fā)而動(dòng)全身”。這就是區(qū)塊鏈記賬的第三大特點(diǎn):鏈上所有區(qū)塊,環(huán)環(huán)相扣,通過(guò)算法保證全鏈信息無(wú)法篡改。
03
小結(jié)
區(qū)塊鏈通過(guò)競(jìng)爭(zhēng)機(jī)制,產(chǎn)生記賬權(quán),保證記賬節(jié)點(diǎn)的去中心和所有記賬節(jié)點(diǎn)賬本數(shù)據(jù)的一致性。通過(guò)新區(qū)塊引用上一區(qū)塊的哈希值的方式,保證全鏈數(shù)據(jù)具備嚴(yán)格的先后順序以及不可篡改的屬性。通過(guò)以上方式確保區(qū)塊鏈上的交易信息都是可信的,所以說(shuō)區(qū)塊鏈?zhǔn)侵圃煨湃蔚臋C(jī)器。