時間:2023-08-15|瀏覽:222
01 傳統(tǒng)的記賬方式
記賬是我們非常熟悉的一件事。尤其現(xiàn)在,在不需要攜帶現(xiàn)金的情況下,我們通過銀行賬戶、支付寶或微信錢包進(jìn)行記賬計算,以確定我們的余額。
那么什么是記賬呢?我們可以舉個例子:
小張每月的工資是1萬元。在發(fā)工資的過程中,銀行會記錄公司賬戶減少1萬元,同時小張的賬戶增加1萬元。接著,小張在雙11使用微信支付購買了一件衣服,花費了500元。這時,微信會記錄小張的賬戶減少500元,商家的賬戶增加500元。
我們認(rèn)可這種記賬方式是基于對記賬者(如銀行、微信支付等第三方機構(gòu))的信任。但是,這些系統(tǒng)屬于中心化的記賬系統(tǒng),難以避免由系統(tǒng)故障、公司倒閉或其他原因?qū)е碌挠涃~失效和失真。
相比于由個別機構(gòu)進(jìn)行記賬,如果每個人都有自己的賬本,并且共同參與記賬,實時同步賬本數(shù)據(jù),那賬本就會變得更加公開透明、真實可靠。這樣,任何一方出現(xiàn)問題,都不會影響記賬的安全運作。這實際上就是區(qū)塊鏈的記賬方式。
02 區(qū)塊鏈的記賬方式
在區(qū)塊鏈系統(tǒng)中,根據(jù)一套競爭規(guī)則,選出記賬人。所有參與競爭的人都有機會獲勝當(dāng)選記賬人。我們可以假設(shè)這個規(guī)則是拼魔方競賽,誰最先拼好魔方,誰就獲得記賬權(quán)。這體現(xiàn)了區(qū)塊鏈記賬的一個特點:非中心化記賬。通過玩魔方游戲隨機產(chǎn)生記賬人,確保記賬人不再是某個中心化機構(gòu)。
每一次魔方競賽,只會產(chǎn)生一個獲勝者,他來進(jìn)行記賬,將記賬信息打包生成一個數(shù)據(jù)包,稱為區(qū)塊(也就是挖出一個新區(qū)塊)。其他玩家驗證無誤后,將這個新區(qū)塊復(fù)制(下載同步)到自己維護(hù)的區(qū)塊鏈上,從而保證所有玩家的賬本數(shù)據(jù)是一致的(區(qū)塊鏈上的信息相同)。這體現(xiàn)了區(qū)塊鏈記賬的第二個特點,所有節(jié)點(即參與游戲的玩家)維護(hù)的賬本是一樣的,因此對賬非常方便。
那么,如何保證記賬人不會作弊記假賬呢?
這是通過驗證和獎勵機制來實現(xiàn)的。所有玩家都會驗證獲勝玩家記賬的真實性。如果記假賬,其他玩家就不會認(rèn)可這次記賬,獲勝玩家就白白浪費了一次記賬機會。此外,每次獲得記賬權(quán)都意味著豐厚的獎勵,記假賬就等于自動放棄獎勵。因此,出于利益考慮,獲勝玩家不會記假賬。
即使有人故意搗亂,最終也無法通過其他玩家的驗證,因為只有正確的記賬才會被所有玩家認(rèn)可。這就保證了記賬數(shù)據(jù)的正確性。
一次記賬完成,就是一個新區(qū)塊被挖出,這個區(qū)塊的信息是固定的,具有自己獨有的數(shù)據(jù)指紋(也就是哈希值)。通過對該區(qū)塊進(jìn)行哈希運算,產(chǎn)生該區(qū)塊的哈希值。如果該區(qū)塊發(fā)生任何變化,區(qū)塊的哈希值就會發(fā)生巨大改變。
在下一輪游戲中,新的獲勝玩家記錄新一頁賬單(也就是挖出新區(qū)塊)。新的賬單的頭部(區(qū)塊頭)需要記錄上一頁賬單的數(shù)據(jù)指紋(也就是上個區(qū)塊的哈希值),從而確保上一頁賬單和當(dāng)前賬單建立明確順序的緊密關(guān)聯(lián)。
如果上一頁賬單的數(shù)據(jù)被修改,那么它的數(shù)據(jù)指紋(哈希值)也會發(fā)生改變,無法與下一頁賬單中記錄的哈希值對應(yīng)上。所有玩家就能識別出這是一個被篡改的無效鏈,并將其拋棄。而上個區(qū)塊的頭部也記錄了上上個區(qū)塊的哈希值,這樣整個區(qū)塊鏈就形成了環(huán)環(huán)相扣的鏈條,且只要某個區(qū)塊的數(shù)據(jù)被篡改,其后所有區(qū)塊的記賬數(shù)據(jù)就會發(fā)生改變,可謂“一發(fā)而動全身”。這就是區(qū)塊鏈記賬的第三個特點:鏈上所有區(qū)塊環(huán)環(huán)相扣,通過算法保證整個鏈上的信息無法篡改。
03 小結(jié)
區(qū)塊鏈通過競爭機制產(chǎn)生記賬權(quán),保證記賬節(jié)點的去中心化,并保證所有記賬節(jié)點賬本數(shù)據(jù)的一致性。通過新區(qū)塊引用上一區(qū)塊的哈希值的方式,保證整個鏈上數(shù)據(jù)具備嚴(yán)格的先后順序和不可篡改的屬性。通過以上方式,區(qū)塊鏈上的交易信息變得可信。因此,我們稱區(qū)塊鏈為制造信任的機器。