欢迎各位的到来,匿名科技专业开发区块链项目,为您定制专业的区块链解决方案!
当前位置: > 认识区块链 > 正文

什么是时间戳?

2019-03-12 15:18:21 认识区块链

什么是时间戳

时间戳是指格林威治时间自1970年1月1日(00:00:00 GMT)至当前时间的总秒数。它也被称为Unix时间戳(Unix Timestamp)。通俗的讲,时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。

时间戳是一份能够表示一份数据在一个特定时间点已存在的完整可验证数据。

区块链可以通过时间戳来保证每个区块链的顺序相连。时间戳可以使区块链上每一笔数据都具有时间标记。简单来说,时间戳证明区块链上什么时候发生了什么事情,且无人能篡改数据。也可以说是时间戳是区块链的一种交易证明机制,所有发生在区块链上的交易、问价签署都会通过时间戳来记录。

时间戳在区块链中扮演着公证人的角色,比传统公证制度更加可信,因为区块链上记录的信息无法被人修改,所以区块链技术在只是产权方面有很好的保护作用。

时间戳的分类

1、自建时间戳:此类时间戳是通过时间接收设备(如GPS,CDMA,北斗卫星)来获取时间到时间戳服务器上,并通过时间戳服务器签发时间戳证书。此种时间戳可用来企业内部责任认定,在法庭认证是并不具备法律效力。因其在通过时间接收设备接收时间存在被篡改的可能,故此不能作为法律依据。

2、具有法律的效力的时间戳:它是由我国中科院国家授时中心与北京联合信任技术服务有限公司负责建设的我国第三方可信时间戳认证服务。由国家授时中心负责时间的授时与守时检测,因其守时监测功能而保障时间错证书中的时间的正确性和不被篡改。获取时间戳平台有“大众版权保护平台”,可与我国中科院授时中心时间同步。

时间戳的组成部分

时间戳(time-stamp)是一个经加密后形成的凭证文档,它包括三个部分:

1、需加时间戳的文件的摘要(digest)

2、DTS收到文件的日期和时间

3、DTS的数字签名

一般来说,时间戳产生的过程为:用户首先将需要加时间的文件用Hash编码加密形成摘要,然后将该摘要发送到DTS,DTS在加入了收到文件摘要的日期和时间信息后再对该文件加密(数字签名),然后送回用户。

时间戳作用

客户端在向服务端接口进行请求,如果请求信息进行了加密处理,被第三方截取到请求包,可以使用该请求包进行重复请求操作。如果服务端不进行防重放攻击,就会服务器压力增大,而使用时间戳的方式可以解决这一问题。

防篡改

一般使用的方式就是把参数拼接,当前项目AppKey,双方约定的“密钥”,加入到Dictionary字典集中,按ABCD顺序进行排序,最后在MD5+加密.客户端将加密字符串和请求参数一起发送给服务器。服务器按照。

防复用

上面的方式进行加密,就无法解决防复用的问题,这时需要在客户端和服务端分别生成UTC的时间戳,这个UTC是防止你的客户端与服务端不在同一个时区,呵呵,然后把时间戳timestamp拼在密文里就可以了,至于防复用的有效性

日期、时间、时间戳的区别

日期: 年-月-日  如: '1980-12-08'     范围从0001-1-1至9999-12-31

时间: 小时数:分钟数:秒数 如:'23:59:59'

时间戳: 年-月-日 小时数:分钟数:秒数(.微妙数) 如: '1980-12-08 23:59:59.59'

区块链的公证人

一般来说,时间戳是一段完整的、可验证的数据,它表示在某个特定时间点存在数据。通常是一个字符序列,唯一地标识某一刻的时间。通俗的讲, 时间戳是一份完整的可验证的时间数据证明,它能够证明一份数据存在或发生于哪个时间点。

在区块链系统中,每一个新区快生成时,都会被打上时间戳,最终依照区块生成时间的先后顺序相连成区块链,每个独立节点又通过P2P网络建立联系,这样就为信息数据的记录形成了一个去中心化的分布式时间戳服务系统。用大家都懂的例子来讲:比特币网络中,大约每10分钟产生一个新的区块,并盖上时间戳,广播发送给全网各个节点,这样每个节点手里都有一份这个区块的所有信息,包括时间戳,这就形成了一个分布式时间戳。

时间戳的这种设计,使得更改一条记录的困难程度按时间的指数倍增加,越老的记录越难更改,区块链运行时间越久,篡改难度越高的特点,也有时间戳一份功劳。这个难篡改的原因就在于区块的数据结构(阿深的前几篇文章都详细剖析了这些,为了方便阅读,在此大概叙述一下):

每个区块都由区块头和区块体构成,先由区块体说,区块体中记录着该区块被创建这段时间内的所有交易数据,这些记录通过merkle树组织起来,merkle树根的哈希值作为本区块中所有交易记录的总结、摘要、“指纹”被放入区块头当中。区块头中不光有merkle树根(本区块的摘要),还有前一个区块头的摘要(也就是前一区块的merkle树根)、本区块的时间戳、高度(从第一个区块开始数,本区块是第几个区块)等等信息。

如果篡改某一区块的数据的话,首先会从当前区块体中的merkle树叶节点(也就是变动的数据处)一直向上传递到区块头的merkle树根,使得merkle树根的哈希值发生变化。由于区块一产生就盖上时间戳,按时间排序,就能确定下一个区块。假设当前区块头摘要篡改前是A,篡改后是B,下一个区块头包含着A,当前区块篡改后的A和下一个区块保存的B不匹配,就会出现错误, 所以一旦有恶意篡改的行为很快就会被系统检测到。

如果想篡改成功,那就得改动下一个区块,以此类推,必须同时改动该区块后面的所有区块。因为将一个区块放入区块链中需要消耗非常多的资源(资源种类依共识算法的不同而不同,可以是计算力,流逝的时间,拥有的权益等),随着后面添加的区块越来越多,所以要想改动某个区块几乎是不可能的。

看似提到时间戳很少,但如果没有按照时间戳来有序排列,如何证明谁是前一个区块,谁是后一个区块,该去保存哪个区块的摘要。从上述结论来看,时间戳在区块链当中扮演者公证人的角色,比传统的公证制度更加可信。再加上时间戳这个技术本身的意义便是为了证明先后,这导致区块链技术在产权保护方面有很大优势,提供更加公正、可信、全面的保护。