區(qū)塊鏈不可篡改需要怎樣的條件
在比特幣白皮書中,對于交易過程的解釋提及到了因不夠信任而產(chǎn)生的“雙重支付”問題,除去借助權(quán)威機(jī)構(gòu)來檢查系統(tǒng)中所有的“錢”是唯一消費的之外,我們還可以提供一種“讓所有人都知道”的方式來實現(xiàn)。
據(jù)此,中本聰想到了“時間戳”。什么是時間戳呢?它又是如何工作的呢?今天我們就來聊聊區(qū)塊鏈系統(tǒng)中的時間戳。
1. 什么是時間戳?
所謂時間戳,指的是一個能表示一份數(shù)據(jù)在某個特定時間之前已經(jīng)存在的、完整的、可驗證的數(shù)據(jù),通常是一個字符序列。
在當(dāng)前絕大部分計算機(jī)系統(tǒng)中,時間戳具體是指從格林尼治時間 1970 年 01 月 01 日 00 時 00 分 00 秒(北京時間 1970 年 01 月 01 日 08 時 00 分 00 秒)起至現(xiàn)在的秒數(shù)。舉個例子,比如北京時間“2019-11-20 00:00:00”轉(zhuǎn)換為時間戳就是“1574179200”。
時間戳就是服務(wù)器給數(shù)據(jù)塊加上時間標(biāo)記,把當(dāng)前數(shù)據(jù)塊的哈希值打上時間戳后,發(fā)布到網(wǎng)絡(luò)中。這就證明了在標(biāo)識的時間刻度下,這個數(shù)據(jù)是存在的。
2. 時間戳系統(tǒng)的工作流程
時間戳的工作基礎(chǔ)是哈希算法的有效性,哈希算法是在區(qū)塊鏈中保證交易信息不可被篡改的一種單向的密碼機(jī)制。時間戳從區(qū)塊鏈生成的那一刻起就存在于區(qū)塊鏈中,而區(qū)塊鏈中已經(jīng)生成的區(qū)塊不可篡改,因為一旦篡改,生成的哈希值就會變化,從而變成一個無效的數(shù)據(jù)。
時間戳的基本工作原理為:為特定電子數(shù)據(jù)提供一個綁定時間戳,從而有效地證明該電子數(shù)據(jù)的產(chǎn)生時間未被修改。
在區(qū)塊鏈網(wǎng)絡(luò)中,每一個時間戳?xí)⑶耙粋€時間戳也納入其隨機(jī)哈希值中,這一過程不斷重復(fù),依次相連,最后會生成一個完整的鏈條。據(jù)此,我們可以知道時間戳系統(tǒng)的具體工作流程:
1、用戶通過哈希算法對區(qū)塊中的交易信息進(jìn)行加密,生成一個散列字符串;
2、用戶發(fā)出時間戳請求,時間戳服務(wù)器從項目區(qū)塊中提取哈希值;
3、時間戳服務(wù)器對提取到的哈希值和時間記錄進(jìn)行簽名,生成時間戳;
4、生成的時間戳數(shù)據(jù)和交易信息綁定之后再返回系統(tǒng),加入到哈希中。
3. 時間戳的應(yīng)用
在各類區(qū)塊鏈相關(guān)書籍中,時間戳這個概念經(jīng)常被輕描淡寫、一筆帶過,不禁讓人對它具有什么作用產(chǎn)生了疑惑。
那么,時間戳到底有什么用呢?
區(qū)塊鏈其實就是在點對點網(wǎng)絡(luò)上通過節(jié)點間的共識算法實現(xiàn)一個分布式的時間戳服務(wù)。也就是說,利用時間戳,將各個區(qū)塊在時間上有序的進(jìn)行排列,形成一根鏈條。試想,如果時間戳不存在,那么如何證明區(qū)塊間的前后順序;又該如何去決定保存哪個區(qū)塊的摘要。
首先,時間戳扮演的就是一個意志堅定的“證人”的角色。不受人為意志的影響,比傳統(tǒng)的公證制度更可信。
其次,通過時間戳進(jìn)行認(rèn)證,認(rèn)證者無需上傳電子數(shù)據(jù)內(nèi)容,有效地避免了信息泄露的風(fēng)險。
最后,時間戳本身的技術(shù)優(yōu)勢就是為了證明先后順序,這便突出了區(qū)塊鏈技術(shù)在產(chǎn)權(quán)保護(hù)方面的巨大優(yōu)勢。
時間戳的突出應(yīng)用表現(xiàn)在版權(quán)保護(hù)方面。版權(quán)所對應(yīng)的文字、歌曲、圖片等作品容易上鏈,借助區(qū)塊鏈技術(shù),作者提交的作品信息會和作者信息等一起被記錄成一個區(qū)塊,并蓋上相應(yīng)的時間戳,版權(quán)轉(zhuǎn)讓發(fā)生的同時也會帶上時間戳的證明,為解決版權(quán)所屬問題提供極大的方便。