區塊鏈概念大熱的背后,真正的價值在這里
在金融領域,賬本記錄了資產和現金等資源的交易情況,是十分重要的財務記錄。我們每個人在銀行都有相應的流水記錄,而每一條記錄之間的順序通常是按時間進行排序和編號的。這種流水式的賬本對于有權限的人來說,篡改起來是非常容易的,比如,他們把幾條記錄里的內容稍做修改,不仔細查看內容很難看出來。
下圖就展示了一個例子:有人把第4頁的一行內容進行了修改,你可能很難看出前后的區別,因為賬本的變化不夠顯著(參見下圖)。很顯然,這種普通的賬本篡改起來非常簡單,而檢查是否篡改卻十分困難。
根據這一原理,用戶的任何篡改都能反映到頁碼的變化上。為了更便于檢測,我們希望即便只是對內容進行了極小修改,頁碼都能面目全非。這樣做的一個好處是篡改者很難掌握頁碼的變化。那么,如果有一種賬本,他把每一頁的內容和頁碼進行關聯,不管對第4頁的內容進行了何種修改,頁碼都會發生突變,比如篡改后第4頁的頁碼變成了40,這樣的話,篡改行為就能很快被檢測出來。這就是區塊鏈防篡改的第一個主要原理:將頁面內容和順序編號進行關聯。
但這樣也給真實的記賬過程帶來一個問題--由于頁碼的不可控制,記賬時很難生成連續的頁碼,那么,賬本的順序該怎樣維護呢?區塊鏈中,在新加入一頁賬本的時候,就把上一頁賬本的頁碼寫到當前頁的開頭,這樣就能對所有賬本頁進行排序了,典型的一個區塊鏈就可以表示成下圖的形狀:
一個有效賬本的第一個規則是:必須保證前后兩頁的頁碼一致性。一旦出現頁面鏈接不上,說明賬目有假。有了這樣一個賬本之后,怎么樣才能得到一個有效的篡改賬本呢?
比如,修改第200頁上的某一筆交易,很顯然,第200頁的頁碼也發生了變化,那么,為了保持整個區塊鏈的一致性,你必須修改第201頁頭部記錄的頁碼,由于第201頁也變了,那么必須修改第202頁頭部的頁碼。也就是說,必須把第200頁之后的所有賬本都修改了。乍聽上去,篡改數據只是增加了一些繁瑣度,因此我們需要第二條規則。
一個有效賬本的第二條有效性規則是:每一個頁碼都必須小于一個固定數值。符合第二條規則是極為困難的,這是由于區塊鏈從內容到頁碼的映射過程有很強的不可預測性,篡改者只有不停地進行隨機測試,這個計算量非常大,如果運氣不好,上億次的嘗試才能改好一頁。
-
2018年的五個網絡安全預測
2018-01-25網絡安全 -
中國公有云幸存者特質分析
-
2018年云計算的6個預測
2018-01-242018年云計算的6個預測