時間戳在區塊鏈中扮演什麼角色與時間戳的作用
看到時間戳這個詞,大家應該會覺得是一個非常簡單的東西,無非就是將現實時間標記上去,用時間來標記表明先後,再或是表明一個數據生成的時間。然而時間戳在區塊鏈中所做的事情,卻並不止我們想的那樣簡單,對於區塊鏈的意義可謂是非同小可。
一般來說,時間戳是一段完整的、可驗證的資料,它表示在某個特定時間點存在資料。通常是一個字元序列,唯一地標識某一刻的時間。通俗的講, 時間戳是一份完整的可驗證的時間資料證明,它能夠證明一份資料存在或發生於哪個時間點。
看似提到時間戳很少,但如果沒有按照時間戳來有序排列,如何證明誰是前一個區塊,誰是後一個區塊,該去儲存哪個區塊的摘要。從上述結論來看,時間戳在區塊鏈當中扮演者公證人的角色,比傳統的公證制度更加可信。再加上時間戳這個技術本身的意義便是為了證明先後,這導致區塊鏈技術在產權保護方面有很大優勢,提供更加公正、可信、全面的保護。
在區塊鏈系統中,每一個新區快生成時,都會被打上時間戳,最終依照區塊生成時間的先後順序相連成區塊鏈,每個獨立節點又透過P2P網路建立聯絡,這樣就為資訊資料的記錄形成了一個去中心化的分散式時間戳服務系統。用大家都懂的例子來講:比特幣網路中,大約每10分鐘產生一個新的區塊,並蓋上時間戳,廣播發送給全網各個節點,這樣每個節點手裡都有一份這個區塊的所有資訊,包括時間戳,這就形成了一個分散式時間戳。
篡改某一區塊的資料的話,首先會從當前區塊體中的樹葉節點一直向上傳遞到區塊頭的樹根,使得樹根的雜湊值發生變化。由於區塊一產生就蓋上時間戳,按時間排序,就能確定下一個區塊。假設當前區塊頭摘要篡改前是A,篡改後是B,下一個區塊頭包含著A,當前區塊篡改後的A和下一個區塊儲存的B不匹配,就會出現錯誤, 所以一旦有惡意篡改的行為很快就會被系統檢測到。
如果想篡改成功,那就得改動下一個區塊,以此類推,必須同時改動該區塊後面的所有區塊。因為將一個區塊放入區塊鏈中需要消耗非常多的資源(資源種類依共識演算法的不同而不同,可以是計算力,流逝的時間,擁有的權益等),隨著後面新增的區塊越來越多,所以要想改動某個區塊幾乎是不可能的。