时间戳服务器

时间戳服务器是一款基于PKI(公钥密码基础设施)技术的时间戳权威系统,对外提供精确可信的时间戳服务。它采用精确 的时间源、高强度高标准的安全机制,以确认系统处理数据在某一时间的存在性和相关操作的相对时间顺序,为信息系统中的时间 防抵赖提供基础服务。

时间戳的本意

时间戳,英文叫 timestamp , 最早指的就是一个物理的橡胶戳,扣到一个文件上表示这个文件的发布要早于时间戳上的当前时间。但是本文中我们聊的其实是数字时间戳,后面我们就都简称为时间戳了。时间戳就是计算机生成的一个时间,例如某年月日几点几分,格式有很多种,但是总之就是一个很简短的用来表示时间的字符串。

网上进行交易的时候,时间戳是非常重要的。比如我的一个比特币,我先用私钥签署一下,用它买了一只鸡,紧接着又再签署一下,买了一只羊。同一个比特币花了两次,到底哪一次有效呢?当然可以很容易的规定比较早的那次有效。可是问题就在这里,如何确认哪个交易发生的比较早呢?时间戳如果就是我自己的计算机生成的,那很容易造假的。

其实比特币出现之前,人们就会在网上频繁交易,所以时间戳服务器是早就有解决方案的。大家到网上去搜一下,会发现有很多公司在推销自己的时间戳服务器。这类公司一般都是政府颁发过证书的。我把我的数据发给他们,他们就会给我扣上一个时间戳,这个是有法律效力的哦。但是如何防止我改时间戳呢?毕竟时间戳就是个字符串。各家公司的方案肯定有差别,不过基本原理就是用提供时间戳的公司的私钥去签署一下我们的数据。因为有数字签名在,所有人都可以去验证这个时间戳是那家公司给加上的,同时数字签名签署的数据本身是不能修改的,数据改了,签名就直接作废了。其实数字签名中本身就包含一个时间戳,有些时候用这个自带的时间戳的可以了,不用另外添加了。

总之,时间戳就是个表示时间的字符串,本身没啥学问,但是关键在于保证时间戳的权威性。传统的时间服务器都是采用了基于信任的中心化处理方案,由政府和公司信誉做背书。这个方案肯定是不适合比特币的。

比特币的时间戳服务器

比特币创世论文中明确的有时间戳服务器这部分,其中明确给出了如何实现一个分布式的时间戳服务器的方案。简单来说,比特币创世论文里面说的”时间戳“不是我们上面说的时间戳,而是区块哈希。因为只有块哈希才能真正的保证区块的先后顺序,虽然严格来讲哈希不体现时间,不能算真正的时间戳。

还是要回到区块链的链这个字。经过 POW 算力竞争,每过大概十分钟之后,下一个区块会被创建出来,让整个区块链的长度加一。区块链是一个单向的链条,有了区块链之后当然就名明确的看到那个区块在前那个在后了。只要包含在前面区块的交易,就认为比之后的交易出现的早,而这个顺序跟交易真正的发起时间无关。同时区块顺序甚至也不一定跟区块的时间戳顺序一致,比特币区块链上允许出现在后面的区块的时间戳时间反而比之前的区块早。

所以最终的问题是,区块是如何连成链的呢?首先一个区块的哈希可以用来当这个区块的定位符,类似于可以用文件名找到文件,有了哈希就能找到对应的区块。同时,后一个区块中会包含前一个区块的哈希,所以拿到最新的区块,就可以找到上一个区块,如此反复就能找到区块链上的所有区块了。那么区块链的这条方向顺序都很明确的链,就是这么形成的。注意,实际中比特币的所谓的区块哈希跟我这里描述的有所区别,涉及到更多的细节,所以我们就不展开了,因为不影响后续内容的理解。

这样,只要拿到一个区块的哈希,就能知道这个区块在区块链上的排序位置,就能确定它和另一个区块哪个在前哪个在后。所以比特币中创世论文中所说的“时间戳服务器”中所说的“时间戳”,其实不是指区块时间戳,而是可以粗略的认为是区块哈希。

猜你喜欢

转载自blog.csdn.net/qq_38491875/article/details/108859083
今日推荐