在比特币白皮书中,对于交易过程的解释提及到了因不够信任而产生的“双重支付”问题,除去借助权威机构来检查系统中所有的“钱”是唯一消费的之外,我们还可以提供一种“让所有人都知道”的方式来实现。
据此,中本聪想到了“时间戳”。什么是时间戳呢?它又是如何工作的呢?今天我们就来聊聊区块链系统中的时间戳。
01 什么是时间戳?
所谓时间戳,指的是一个能表示一份数据在某个特定时间之前已经存在的、完整的、可验证的数据,通常是一个字符序列。
在当前绝大部分计算机系统中,时间戳具体是指从格林尼治时间 1970 年 01 月 01 日 00 时 00 分 00 秒(北京时间 1970 年 01 月 01 日 08 时 00 分 00 秒)起至现在的秒数。举个例子,比如北京时间“2019-11-20 00:00:00”转换为时间戳就是“1574179200”。
时间戳就是服务器给数据块加上时间标记,把当前数据块的哈希值打上时间戳后,发布到网络中。这就证明了在标识的时间刻度下,这个数据是存在的。
02 时间戳系统的工作流程
时间戳的工作基础是哈希算法的有效性,哈希算法是在区块链中保证交易信息不可被篡改的一种单向的密码机制。时间戳从区块链生成的那一刻起就存在于区块链中,而区块链中已经生成的区块不可篡改,因为一旦篡改,生成的哈希值就会变化,从而变成一个无效的数据。
时间戳的基本工作原理为:为特定电子数据提供一个绑定时间戳,从而有效地证明该电子数据的产生时间未被修改。
在区块链网络中,每一个时间戳会将前一个时间戳也纳入其随机哈希值中,这一过程不断重复,依次相连,最后会生成一个完整的链条。据此,我们可以知道时间戳系统的具体工作流程:
1、用户通过哈希算法对区块中的交易信息进行加密,生成一个散列字符串;
2、用户发出时间戳请求,时间戳服务器从项目区块中提取哈希值;
3、时间戳服务器对提取到的哈希值和时间记录进行签名,生成时间戳;
4、生成的时间戳数据和交易信息绑定之后再返回系统,加入到哈希中。
03 时间戳的应用
在各类区块链相关书籍中,时间戳这个概念经常被轻描淡写、一笔带过,不禁让人对它具有什么作用产生了疑惑。
那么,时间戳到底有什么用呢?
区块链其实就是在点对点网络上通过节点间的共识算法实现一个分布式的时间戳服务。也就是说,利用时间戳,将各个区块在时间上有序的进行排列,形成一根链条。试想,如果时间戳不存在,那么如何证明区块间的前后顺序;又该如何去决定保存哪个区块的摘要。
首先,时间戳扮演的就是一个意志坚定的“证人”的角色。不受人为意志的影响,比传统的公证制度更可信。
其次,通过时间戳进行认证,认证者无需上传电子数据内容,有效地避免了信息泄露的风险。
最后,时间戳本身的技术优势就是为了证明先后顺序,这便突出了区块链技术在产权保护方面的巨大优势。
时间戳的突出应用表现在版权保护方面。版权所对应的文字、歌曲、图片等作品容易上链,借助区块链技术,作者提交的作品信息会和作者信息等一起被记录成一个区块,并盖上相应的时间戳,版权转让发生的同时也会带上时间戳的证明,为解决版权所属问题提供极大的方便。