什么是区块链?什么是分布式数据库?相信很多人容易混淆这两个概念。表面上看,区块链打造的不可篡改、分布式的数据库,和传统分布式数据库在基础技术方面有很多相似的地方,但也仅仅只是相似而已。
就拿分布式存储而言,二者都存在冗余的备份数据,但在技术目的上仍有本质区别。传统分布式数据库核心目的是尽可能构建一个逻辑中心,这个中心能对外提供高性能、低成本以及扩展性好的服务。而区块链使用这些技术的核心目的在于构建一个分布式的、数据所有权被永久保护,以及数据可自由分享的世界。
此外,在数据的安全度、可信度及治理方式等,两者亦有较大的差别。但在展开具体解读前,我们先回溯数据库的发展历史,以更好地理解区块链分布式数据库所带来的革新。
实际上,数据库是个非常古老的话题。我们今天所知道的数据库可以追溯到20世纪50年代,然而,人类对于存储数据和整理数据的需求要比这早得多。
除了历史上知名的洞穴壁画和罕见的泥板文书,Ugaritic (现叙利亚境内城市)博物馆被认为是第一次记录了人类全面存储数据的努力,在该处发现了大量的泥板文书以及来自公元前12世纪的外交文本和文学作品。但这也仅仅记录了数据收集的工作,并非是对数据进行整理。有关整理数据的努力是在古罗马广场博物馆才得到客观的证实。然而,这段深厚的历史也只是沧海一粟。
18世纪,索引卡的出现,被认为是计算机数据库的前身。自然学家卡尔·林奈(Carl Linnaeus)当时引进了一种系统来分类记录,每个物种被放在一张单独的纸上。有了它,可以很容易地整理和补充相关记录。但索引卡有一个很大的缺点——必须由人来登记处理,非常繁琐。
因此,1890年,美国统计学家赫尔曼·霍尔瑞斯(Herman Hollerith)发明了一台计数机,以满足政府部门在人口普查的需要。这台机器使用穿孔卡片来存储信息,也是人类第一次机电数据处理。1911年,赫尔曼组建了一家计算制表公司,该公司到1924年改名为“国际商用机器公司”,这就是举世闻名的美国IBM公司。
而在第二次世界大战前,美国制定了记录雇员社会保险号码的义务。应当局的要求,IBM公司制造了一台新机器- UNIVAC I,并于1951年开始用在人口普查中。这也是第一台大规模生产用于商业用途的数字计算机,在计算机历史上具有特殊的地位。
1960年,数据库迎来编程语言,计算机化的数据库开始建立。当时使用计算机对私营组织来说是一种成本效益更高的选择。随后的十年诞生了两个流行的数据模型:
一个是被称为CODASYL的网络模型;
另一个是被称为IMS的分层模型。
而后,随着代数、关系演算和可理解术语的引入,开始了结构化查询语言的创建 (SQL),这些数据库系统的主要特点是存储结构化数据。但在世纪之交,人们对数据的看法发生了某种转变,建立在结构化数据模型和对象应用程序上的边界正在出现。这使得非结构化数据库(NoSQL)的概念重新浮出水面。
总之,数据库技术本身在不停的演进,如何选择适当的数据存储是应用程序平稳有效运行的必要条件,也是使用适当的技术处理数据的必要条件。伴随着现实的需求不断升级,数据库也在不断发展的,我们通过NoSQL,能很好的解决数据存储和数据访问的可扩展性问题,通过云存储等技术,可以解决互联网海量数据的处理问题。
但下一个问题接踵而至,那就是如何以一种规模化的方式解决数据真实性和有效性的问题。
分布式数据库是在互联网背景下应对大数据量和分布式请求的需求下产生的,其在中心化控制下假设每个节点都诚实,从而由多节点共同维护一个具有逻辑整体性的分布式数据库。我们可以看到,区块链数据层通过封装底层数据区块以及加密算法和时间戳等基础数据及算法,和传统分布式数据库有着底层逻辑上的区别。
首先是数据分布性:虽然数据是被存储于不同设备上,但在传统数据库使用客户端-服务器这种架构下,中央机构可控制并统一调度各个节点参与运算,用户(或称为客户端)可以修改存储在服务器中的数据。而在区块链数据层,信息被分布式地存储在各节点间,没有任何一个节点可以控制账本数据的形成,只能通过各个节点之间的协调,从而生成一致的账本。
其次是数据的安全性:在使用传统分布式存储的时候可以会遭遇数据被追求和篡改的问题,一旦数据信息被伪造就会给客户造成严重的损失。而区块链数据层是一条从创世区块起始的链式结构,包含了区块链的区块数据、链式结构以及区块上的随机数、时间戳、公钥、私钥数据等。各区块之间用Hash签名的方式相互关联,如果区块中的某一个交易发生了改变,则其Hash值也会发生改变,通过与其他节点的数据比对,就可以发现“恶意节点”的改动痕迹。因此,这种数据存储结构不仅支持防篡改,可溯源,同时保证了数据记录过程的公开性,透明性,以及对敏感数据上链后的隐私保护问题。
最后是数据的可信度:有了数据处理的安全保障,企业不仅可以信任与他们合作的公司之间共享的数据,甚至可以信任竞争对手共享的数据。这为垂直领域更多的参与者加入区块链网络并增加数据的可见性创造了机会。
通过多节点储存数据,算法加密数据,区块链数据层由此搭建起了一个底层信任体系。但这些数据如何实现点对点的传播与交流,我们下期“网络层”继续聊。