一文读懂区块链的时间戳

        什么是时间戳?顾名思义,时间戳就是一个能表示一份数据在某个特定时间之前已经存在的、完整的、可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。

        在传统关系型数据库设计中,我们一般都会有会有一个或多个时间戳字段,用来标记数据创建、添加或者修改的时间。基本上,这些时间戳是给应用内部使用的,当数据被共享给其他应用时,这些时间戳并没有多大意义,因为时间戳可以伪造。

  而如果每条数据都带有一个真实可信的时间戳(这条数据产生的真实时间点),这样的造假行为就比较难奏效。以前我们很少关心数据的时间戳,很少去了解时间戳对数据的意义,也许是我们不知道如何用技术去实现这样的时间戳。

  如果技术实现完全可行,那么这个时间戳对我们来说就有了全新的意义。

       1997年,密码朋克成员哈伯和斯托尼塔提出了一个用时间戳的方法保证数字文件安全的协议。哈伯和斯托尼塔对它的简单解释是,用时间戳的方式表达文件创建的先后顺序,协议要求在文件创建后,其时间戳不能改动,这就使得文件被篡改的可能性为零。哈伯和斯托尼塔提出的这项安全协议也就是现在区块链时间戳协议的原型,直接赐予区块链技术无中心、防篡改、可追溯、高透明的特点,我们亦可以称之为分布式时间戳。

  试着想象一下,如果我们想在未来某天证明自己的某个数据是在今天产生的,可以在今天对今天的所有数据打包并进行某种形式的哈希算法(比如默克尔树)转换,最终得到一个哈希值,然后在第二天的《XX日报》上登一个广告,广告内容就是这个哈希值,《XX日报》上的时间就成了我们的时间戳;如果明天我们想做同样的事,可以如法炮制,有一个重要的关键点,那就是要记得把今天的哈希值也打包进去;循环往复下去,这样每天的哈希值就包含了以前所有数据的信息,而每天的报纸分发销售到各地很多订阅人的手里,无形中形成了一个分布式存储网络。

  这其实从某种意义上可以称之为区块链的模拟原型。

而当下真正的区块链,其实就是在P2P网络上通过节点间的共识算法实现了一个分布式的时间戳服务。它是利用时间戳实现在时间上有序的、由一个个区块组成的一根链条。每一个新区快生成时,都会被打上时间戳,最终依照区块生成时间的先后顺序相连成区块链,每个独立节点又通过P2P网络建立联系,这样就为信息数据的记录形成了一个去中心化的分布式时间戳服务系统。

  现在我们每每去看财务报表时,或多或少都会在心里想财务报表是否被修改过,事实上也确实存在这样的现象。

  而以比特币区块链网络为例,比特币区块链是 10 分钟建立一个区块,并盖好时间戳,并广播发送给全网络各个节点,形成分布式时间戳,从密码学来说,一旦盖好时间戳,理论上这个区块就没有办法篡改,因为要想改动一个区块,必须同时改动该区块后面的所有区块,而我们知道将一个区块放入区块链中需要消耗非常多的资源(资源种类依共识算法的不同而不同,可以是计算力,流逝的时间,拥有的权益等等,总之成本非常巨大),随着后面添加的区块越来越多,要想改动某个区块几乎是不可能的。从创始区块到现在,每 10 分钟产生的盖有时间戳的区块,包含了这 10 分钟全世界所有的交易信息,这意味着历史交易信息都存在这个加盖时间戳的分布式账本里,且无法篡改。区块链带来的冲击,从某种意义上来讲,就是在于用时间换取人们的信任。类似地,如果一个政府运行时间越长,且每次说的都能做到,民众的信任度也会增加。区块链的特点是,运行时间越久,篡改的难度越高,这是由它的设计机制保证的。

 

      原文链接:https://www.kg.com/article/487349197901795328

猜你喜欢

转载自blog.csdn.net/lidiya007/article/details/82491902