1.2.2 区块链数据库的数据存储效果
如果我们想建立一个可以在世界范围内使用的数据库,那么就会面临三个亟待解决的棘手问题。
(1)如何让数据库既能存储海量的数据,又能记录这些数据的产生时间?
(2)如何保证存储在数据库中的数据不被篡改?
(3)如何使数据库变得可信任,进而确保我们在无实名的背景下也不会上当受骗?
自从区块链出现以后,上述三个问题便不再像之前那么棘手,似乎已经有了解决的可能。之所以这样说,主要就是因为如果从效果的角度来看,区块链可以生成一个记录时间先后的、难以篡改的、可信任的数据库。为了生成一个这样的数据库,区块链做了不少努力。首先,创新数据库的结构,将数据库中的数据分成不同的区块;其次,通过特定的信息,把一个区块连接到上一个区块的后面;最后,让区块以前后顺连的方式形成一条链,从而呈现出一套完整的数据。
在区块链中,数据以电子记录的形式被永久存储下来,区块的主要作用就是存储这些电子记录,其生成遵循着严格的时间顺序。具体而言,每一个区块都会将自己被创建期间的交易活动记录下来,全部区块汇总在一起就可以形成一个记录合集。
另外,不同区块链的区块结构可能有所不同,但基本都是分为区块头和区块体两个部分。区块头的作用是连接到前面的区块并保证区块链数据库的完整性;区块体的作用是存储与交易有关的所有记录。
一般来说,区块结构有两个非常关键的特点:第一,每一个区块上记录的是上一个区块形成之后,该区块被创建前发生的交易活动;第二,只要新区块完成记录并被放到区块链的最后,那么记录在这个新区块上的交易信息以及数据就不可以被篡改和删除。第一个特点为区块链数据库的完整性提供了有力保障,使其变得可以被信任;第二个特点为区块链数据库的严谨性提供了有力保障,使其变得不可以被随意篡改。
那么,何谓区块链数据库呢?顾名思义,以“区块+链”的方式形成的数据库就被称为区块链数据库。在存储数据时,区块链数据库有自己的一套模式,如图1-6所示。
图1-6 区块链数据库存储数据的模式
因为每一个区块头都包含了前一个区块的“交易信息压缩值”,所以从第一个区块到当前区块的长链就可以形成。又因为如果不知道前一个区块的“交易信息压缩值”就不能继续生成当前区块,所以每个区块必须严格按照时间顺序跟随在前一个区块后。在这种模式的助力下,存储在区块链数据库中的数据就可以有非常明确的产生时间,各自的先后顺序也可以十分清晰明确。但是,区块链数据库是以区块链为基础的,最后还要归结到区块链上。因此,与区块链数据库存储数据的模式相比,区块链的基本结构也同样重要。
在《区块链:互联网金融终局?》一文中有这样一段话:“人们把一段时间内生成的信息(包括数据或代码)打包成一个区块,盖上时间戳,与上一个区块衔接在一起,每下一个区块的页首都包含了上一个区块的索引数据,然后在本页中写入新的信息,从而形成新的区块,首尾相连,最终形成了区块链。”该段话就深刻阐明了区块链的基本结构,而这个结构还有一个不得不提的最大创新点—“区块+链=时间戳”。“区块+链”的结构可以保证区块链的完整性,从第一个区块开始,一直到生成当前区块为止,区块链上存储了与交易相关的所有数据。
在区块链的帮助下,区块链数据库中的任何数据都可以被查询,也可以被追根溯源。无论是企业还是机构,或者个人,都可以对这些数据进行验证,从而保证数据的真实性和有效性。除此以外,区块链数据库可以在存储数据的过程中为每一个区块都盖上时间戳,以表示数据是在这个时间被记录到区块中的。
上述做法不仅可以证明数据的存储顺序,还可以确保数据没有被篡改,更重要的是可以大幅度提升区块链数据库的可信任度。由此来看,区块链的确有能力生成一个记录时间先后的、难以篡改的、可信任的数据库,而这个数据库便是区块链数据库。