在前面的《如何跟大爺大媽講清楚什麼是比特幣? 》一文中,我們了解了什麼是比特幣及其運行原理。昨天《 區塊鍊為什麼能防偽、防篡改? 》一文,又請出5位皇帝來幫你理解比特幣的底層技術區塊鍊為什麼能防偽、防篡改。
今天,我們延續昨天的話題,講講區塊鏈的記賬方式是如何讓其成為製造信任的機器的?
01 傳統的記賬方式
記賬,是大家很熟悉的一件事。尤其現在,出門都不用帶現金,你有多少錢,就等同於你在銀行帳戶、支付寶或微信錢包裡對各種收支進行記帳計算後的餘額。
那什麼是記帳呢?舉個例子:
小張每月工資是1萬元,在發工資的過程中,銀行會記錄:公司賬戶減1萬元,小張賬戶加1萬元。發工資後,小張趁雙11用微信支付買了件衣服,花費500元,這時微信會記錄:小張的賬戶減500元,商家的賬戶加500元。
我們認可這樣的記帳方式,是基於對記賬者(銀行、微信支付等第三方機構)的信任。但它們屬於中心化記賬系統,難以避免因係統故障、公司倒閉或其他原因導致的記賬失效、失真。
如果可以人手一個帳本,大家共同參與記帳,帳本實時同步,賬本就變得公開透明、真實可靠多了。這樣,任何一方出現問題,都不會影響記帳的安全運作。與由個別機構進行記帳相比,這顯然是個更好的記賬方式,這其實也是區塊鏈的記賬方式。
02 區塊鏈的記賬方式
在區塊鏈系統中,根據一套競爭規則,選出記賬人,參與競爭的人都有機會獲勝當選記賬人。我們假設這個規則是拼魔方競賽,誰最先拼好魔方,誰就獲得記賬權。這體現了區塊鏈記賬的一個特點:非中心化記賬。通過玩魔方遊戲隨機產生記賬人,保證記賬人不再是某個中心化機構。
每一次魔方競賽中,都只產生一名獲勝者,由他來進行記賬,記賬信息打包生成一個數據包,該數據包稱為區塊(即挖出一個新區塊)。其他玩家驗證無誤後,將這個新區塊複製(下載同步)到自己維護的區塊鏈上,這就保證了所有玩家雖是分佈式記賬,但所有人的賬本數據是一致的(區塊鏈上信息相同)。這體現了區塊鏈記賬的第二大特點,所有節點(參與遊戲的玩家)維護的賬本一樣,對賬非常方便。
那如何保證記賬人不會作弊記假賬呢?
這是通過驗證和獎勵機制來現實的。所有玩家都會驗證獲勝玩家記賬的真實性。如果記假賬,其他玩家就不認可這次記賬,獲勝玩家就白白浪費一次記賬機會。而且,每次獲得記賬權都意味著豐厚的獎勵,記假賬就等於自動放棄獎勵。所以,獲勝玩家出於利益考慮,不會記假賬。
即使他是一個破壞分子,特意來搗亂,最終也無法通過其他玩家的驗證,因為只有正確的記賬才會被所有玩家認可。這就保證了記賬數據的正確性。
一次記賬完成,就是一個新區塊被挖出,這個區塊信息是固定的,它有自己獨有的數據指紋(即哈希值。通過對該區塊進行哈希運算,產生該區塊的哈希值,該區塊發生任何變化,區塊的哈希值就會有巨大改變)。
在下一輪遊戲中,新的獲勝玩家,記錄新一頁賬單(挖出新區塊),新的賬單的頭部(區塊頭)需要記錄上一頁賬單的數據指紋(上個區塊的哈希值),這就保證上一頁賬單和當前賬單建立有明確順序的緊密關聯。
若上一頁賬單數據被修改,那它的數據指紋(哈希值)會發生改變,就無法與下一頁賬單中記錄的哈希值對應上。所有玩家就能識別出這是個被篡改的無效鏈,並將其拋棄。
而上個區塊的頭部也記錄了上上個區塊的哈希值,這樣整個區塊鏈環環相扣,有嚴格的先後順序,且只要某個區塊數據被篡改,其後所有區塊的記賬數據就會發生改變,可謂“牽一發而動全身”。這就是區塊鏈記賬的第三大特點:鏈上所有區塊,環環相扣,通過算法保證全鏈信息無法篡改。
03 小結
區塊鏈通過競爭機制,產生記賬權,保證記賬節點的去中心和所有記賬節點賬本數據的一致性。通過新區塊引用上一區塊的哈希值的方式,保證全鏈數據具備嚴格的先後順序以及不可篡改的屬性。通過以上方式確保區塊鏈上的交易信息都是可信的,所以說區塊鍊是製造信任的機器。