从程序员的角度认识区块链

现在有关区块链的文章铺天盖地的,可真正讲清楚区块链技术底层精髓的设计思路和重点的没有几篇。今天我就从技术上(数据库)的层面说说我的看法(不过是引用别人的观点,表示赞同)

从最本质的功能来看,不管是数据库还是区块链,都是用来存数据的技术。因此,区块链的概念可能引申出了很多商业方面的革新,但是抛开这些上层建筑,从底层地基来看,区块链可以认为是一种特殊的数据库技术。

数据库只是一种用来存储和查询数据的工具,仅此而已。SQL是一种大家用的比较多的手段,而当前除了SQL业界还有NoSQL、NewSQL等一大堆变形。因此,大家先把思路放宽,将“数据库”的概念扩展到一切可以保存与获取数据的机制。

那么来看区块链技术,不管是比特币还是以太坊,或者其他变体,其核心本质都是面向交易业务的数据存储于读取能力。

我们就来说说区块链和数据库技术相通的部分,如果大家了解数据库内核结构,可以看到区块链的核心架构是数据库核心架构一个子集。

区块链的“账本”就相当于数据库的“日志”,数据库是将操作按照顺序写入日志,在区块链里面叫做账本。

区块链技术的设计和机制,与传统数据库的内核理念极为相似。譬如,从其传输和存储的数据结构上来看,区块链的链式结构来源于传统数据库的事务日志。任何数据库的DBA都知道,数据库的事务日志本质上就是不可更改的链式结构,事务中的每一条操作记录都会有一个反向指针指向该事务中的上一条记录。因此,区块链的链式结构本质上脱胎于数据库事务日志,同时增加了区块之间的反向哈希值作为指针,且引入了默克尔树结构进行快速数据校验。

因而,我们可以安全地进行认为:区块链的链式结构在存储体系中等价于数据库的事务日志。本质上数据库的任何操作同样是不可篡改的,只不过当前大部分数据库不会对外暴露事务日志的解析工具,仅保存每一条记录的最终状态而已。

此外,区块链的共识部分也脱胎自数据库的一致性管理机制。比如传统数据库的主从结构(例如IBM DB2的HADR、Oracle的DataGuard)就是在多个节点之间实时复制数据的一种方式。

由于没有足够的认知,所以差异部分将下次介绍。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 由于暑假工作了三天被开除然后沉迷颓废缓了几天导致错失另外找工作的时机(因为暑假工早都招够了)。本来是一天混吃等死觉...
    樟子松々阅读 239评论 0 0
  • 他说这世界不该是我们的 我应该穿什么吃什么 如果没有人看着我 那该多快乐 赶着最后一班的轻轨回出租房,上电梯都没人...
    Dara_冯阅读 179评论 0 0
  • 若,让回忆停止漫延,只留下浅浅的余温,是否我的思念,会随着记忆的终止而停歇。——题记 将心底长叹暂搁一旁,思绪飞舞...
    慕容茗厢阅读 387评论 0 0
  • 黑夜,吞噬世界 在尘世的一隅,一盏灯打开,照亮一方光明 灯下是新奇的绿 红 交织成的一枝花树 在寂静的深夜,热烈的...
    海光明阅读 247评论 0 3
  • 在家整理旧书本,无意中翻出了十多年前给闺女写的成长日记。翻看时,重温了那个当时还没上学的小小的小姑娘许多的神回答时...
    木棉之秋阅读 504评论 31 23