2008年,中本聰發(fā)表了一篇論文《比特幣:一個點對點的電子現(xiàn)金系統(tǒng)》,想通過采用數字貨幣的方式來解決日常生活中紙幣所帶來的不便。
到今天為止,比特幣已經成為家喻戶曉的數字貨幣,但數字貨幣與我們現(xiàn)實世界中的法幣,依然有本質的區(qū)別。因為數字貨幣是虛擬的,就導致了很多在法幣中根本不是問題的問題發(fā)生。
今天小K君就給大家講一下,數字貨幣在誕生過程中存在的主要問題,以及解決的方法。
頭疼的雙花問題
眾所周知,比特幣系統(tǒng)與我們現(xiàn)實世界的最大區(qū)別在于,它是虛擬的、去中心化的。比特幣作為一個去中心化的點對點電子現(xiàn)金系統(tǒng),它既不是實物,也不存在中心數據庫,而是通過代碼形式呈現(xiàn)出來的虛擬資產。
那既然是代碼,是虛擬的,必然就會存在漏洞,而雙花問題就是其中最大的一個難點,也是數字貨幣誕生中最令人頭痛的問題。雙花,指的是同樣一筆數字資產被重復支付,也被稱為雙重支付。
在法幣世界中,因為法幣是實體,一手交錢一手交貨,所以并不存在這個問題。但在數字貨幣世界中則不一樣,因為數字貨幣是虛擬的,可以被更改,所以就有了一筆錢花很多次的可能性。
那么雙花問題如何解決呢?下面小K君就給大家講講雙花問題的解決方法。
解決雙花問題的方式:時間戳
1970年,兩個密碼朋克成員哈伯和斯托尼塔(Haber and Stornetta)提出了一個新的概念“時間戳”,即通過使用時間戳的方法可以保證數字文件安全的協(xié)議。
哈伯和斯托尼塔對它的簡單解釋是,用時間戳的方式來表示文件創(chuàng)建的先后順序。協(xié)議中明確要求文件創(chuàng)建后的時間戳不能被改動,這就使數據及文件的原創(chuàng)性得以保證。
隨著時間的推移,后來中本聰發(fā)現(xiàn),時間戳這種使數據不可篡改的特性,在解決雙花問題上有巨大的作用,于是就引進到區(qū)塊鏈的用戶模型中,并賦予了區(qū)塊鏈不可篡改、可追溯、高透明的特點,也正是由于這些特點,時間戳自然而然地成為了區(qū)塊鏈中解決雙花問題的主要方法。
那么區(qū)塊鏈中的時間戳又怎么理解呢?按照官方的定義,時間戳(timestamp)指的是一個能表示一份數據在某個特定時間之前已經存在的、完整的、可驗證的數據,通常是一個字符序列。
簡單來講,時間戳就是給一個信息蓋上時間的“烙印”。在區(qū)塊鏈系統(tǒng)中只要發(fā)生了一件事,經過大家確認后,就會打上一個時間的烙印,最后按照時間的順序,留下一份記錄,且這個記錄任何人都無法篡改。
所以,時間戳的本質,就是按時間順序記錄事件數據。那時間戳的工作原理是什么?它是如何解決雙花問題呢?下面小K君就給大家具體講解一下其中的過程。
時間戳是如何解決雙花問題的
時間戳的工作原理是這樣的:
第一、在區(qū)塊鏈網絡中,當一筆交易產生的時候,系統(tǒng)會自動生成交易數據(包括轉出地址、轉入地址、交易金額、數字簽名等)的時間戳標記;
第二、按照時間戳的標記順序,某個節(jié)點會將這些交易數據打包到區(qū)塊之中;
第三、一個完整的區(qū)塊經過整個區(qū)塊鏈網絡的認證后,該節(jié)點會對這個新產生的區(qū)塊進行區(qū)塊的時間戳標記;
第四、標記之后,會通過廣播的方式,同步給全網的所有節(jié)點,這樣每個節(jié)點手里都有一份這個區(qū)塊的所有信息,包括時間戳,這樣就形成了一個去中心化的分布式時間戳。
第五、新產生的區(qū)塊會按照時間戳
所以,我們所談論的區(qū)塊鏈,本質上就是一個在P2P網絡上通過節(jié)點間的共識算法實現(xiàn)的分布式時間戳服務,整個網絡具備可追溯和不可篡改的特性。
在明白了這一點后,我們再來看看時間戳是如何解決雙花問題的。
假設A將1個BTC同時轉賬給B和C,那兩筆交易中僅有一筆會成功完成。因為系統(tǒng)中的節(jié)點會根據時間戳來選擇記錄先接收到的那筆交易,先被記錄的交易會通過上述的流程打包到區(qū)塊鏈網絡之中。
當第一筆交易完成后,第二筆交易的數據在上傳到區(qū)塊鏈網絡的過程中,節(jié)點就會通過時間戳的順序,追溯到這筆錢在之前已經劃過一次,從而判斷后面的這次轉賬為異常數據,就不會再有一筆數字資產被花掉兩次或多次的可能了,從而解決了雙花問題。
補充一點,因為時間戳具備不可纂改、可追溯、透明化等特點,所以除了解決雙花問題之外在知識產權保護方面也有重要作用。
比如你想發(fā)表一篇學術論文,在發(fā)表之前想找行業(yè)專家指點一下,但是又擔心被別人用他的名義偷偷發(fā)表,這個時候你就可以先把論文保存在區(qū)塊鏈上,就會被打上時間戳,生成獨一無二的哈希值。這樣就可以證明自己的原創(chuàng)版權,且鏈上每個節(jié)點記錄的人都可以為你作證。
總的來說,時間戳就是一個給信息蓋上時間的“烙印”的方法,目前,其作為區(qū)塊鏈的核心技術之一,是解決比特幣雙花問題的重要手段。