专栏首页Netkiller传统数据库也能实现区块链存储
原创

传统数据库也能实现区块链存储

本文节选自电子书《Netkiller Architect 手札》,延伸阅读《Netkiller Blockchain 手札》

微信订阅号 netkiller-ebook (微信扫描二维码)

QQ:13721218 请注明“读者”

QQ群:128659835 请注明“读者”

网站:http://www.netkiller.cn

最近我区块链技术非常火,区块链优势是去中心化,数据不可撰改,但你仔细想想自己需求,真的需要区块链吗?还是需要区块链上的一些特性?例如数据不可撰改。

区块链并非能解决所有问题,虽然他也算是一种数据库,它能解决问题十分有限,它的数据管理和查询能力还打不到 NoSQL 的水平,更别提 SQL 的复杂应用。所以在实际的应用中,区块链不能替代数据,只能互补。

那么,我仅仅需要区块链的一个特性例如:“数据不可撰改”。

数据不可撰改包含几种情况:

  1. 不能修改数据
  2. 不能随意在中间插入
  3. 不能打乱前后顺序

如果数据被撰改,需能够侦测出,并展示数据

怎样实现这个需求呢?

  1. 数据只能被顺序追加,追加时检查插入上一个数据库快的 hash 值。
  2. 通过触发器禁止修改数据,执行update 抛出异常
  3. 通过触发器禁止删除数据,执行delete 语句抛出异常
  4. 如果是mysql存储引擎可以选择 Archive 更为安全
  5. 数据读取时使用UDF函数检查,也可以在应用程序中检查。前后hash值不正确,就提示数据有风险。

5.10. 数据区块链

背景:例如我们需要一个排行榜,存储活动的报名顺序或者考试成绩。我们防止有人作弊或者撰改,包括DBA在内。

任务:1.数据检查,2.发现撰改,2.风险提示

方案:使用链表指针方案,将数据看成一个链条,中间任何改动,就如同链条被剪断,改动之处之后的数据全部视为无效。

结果:达到数据后发现是否撰改,提示风险目的

CREATE TABLE `top100_list` (
	`id` INT,
	`name` VARBINARY(16) NOT NULL,
	......
	......
	`extend` VARCHAR(32) NULL
)
ENGINE=InnoDB;

演示数据

id | extend | ...
1 | 0 | ...
2 | 1 | ...
3 | 2 | ...
4 | 3 | ...		
5 | 4 | ...

extend 始终集成上一条记录,保证数据是连续的。但这样还不够,这样只能防止数据被删除,如果其他字段被修改呢

id | extend | ...
1 | NULL | ...
2 | crc32(...) | ...
3 | crc32(...) | ...
4 | crc32(...) | ...		
5 | crc32(...) | ...

我们使用crc算法运算上一条一整行的数据,你还可以使用 salt 技术干扰,这个 salt 只有软件部署者知道,DBA和开发人员不得而知。

对于一般数据crc32 可能做到性能和安全性平衡,如果安全要求更高可以使用 sha256 等等,甚至采用 RSA 非对称秘钥。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 传统数据库也能实现区块链存储

    传统数据库也能实现区块链存储 本文节选自电子书《Netkiller Architect 手札》,延伸阅读《Netkiller Blockchain 手札》 最近...

    netkiller old
  • BTA | 王涛:传统IT人如何用数据库思维来理解区块链?去中心化数据库也许是答案

    区块链大本营
  • 入门 | 区块链vs传统数据库:分布式运行有何优势?

    机器之心
  • 入门 | 区块链vs传统数据库:分布式运行有何优势?

    作者:Shaan Ray 机器之心编译 参与:路雪、李泽南 区块链(blockchain)这一概念正因比特币等虚拟货币的兴盛而变得火热起来,实际上,这种技术因为...

    Spark学习技巧
  • 巨杉数据库王涛:区块链观点两极分化,程序员应关注其技术本质

    区块链大本营
  • 区块链和数据库

    本文由币乎社区(bihu.com)内容支持计划奖励。 这是「区块链技术指北」的第 15 篇文章。 如果对我感兴趣,想和我交流,我的微信号:Wentasy,加我时...

    robinwen
  • 颠覆你对区块链的认识

    中国广东省深圳市龙华新区民治街道溪山美地 518131 +86 13113668890 <netkiller@msn.com>

    netkiller old
  • 颠覆你对区块链的认识

    内容摘要 这一部关于区块链开发及运维的电子书。 为什么会写区块链电子书?因为2018年是区块链年。 这本电子书是否会出版(纸质图书)? 不会,因为互联网技术更迭...

    netkiller old
  • 钢铁B2B电商案例:供应链金融如何解决供应链金融痛点

    区块链是一种按照时间顺序将数据块以特定的顺序相连的方式组合成的链式数据结构,其上存储了系统诞生以来所有交易的记录。区块链上的数据由全网节点共同维护并共同存储,同...

    宜信技术学院
  • 这篇在medium上获得5万点赞的文章,值得区块链小白耐心读一读

    不知道你有没有感觉到,如今的区块链,已经在大妈大爷这股强大催化剂的作用下,被出神入化地抬上了绝对的高度:

    区块链大本营
  • 区块链数据库,WHEN WAT WHERE WWW

    2020年开年就战火纷飞,注定这绝对是不会让你轻松忘记的一年,数据库也迎来了新类型。

    AustinDatabases
  • 区块链技术沙龙最全回顾:我们需要做怎样的区块链?

    ? 导读:在诸多新技术付诸应用之后,越来越多的技术从业者开始发现,似乎摩尔定律已经开始失灵了,两年的周期远远跟不上技术和信息爆炸的速度。但与此同时,我们却发现...

    腾讯技术工程官方号
  • 双十一不去买买买, 广州开发者却high到原地爆炸|活动快报

    今年双十一(11.11),对于广州的开发者来说,似乎有许多不一样,没有去商城买买买,而是聚集在广州番禺职业技术学院,共话“区块链:技术创新与生态构建”。

    区块链大本营
  • 区块链技术的本质是分布式数据库

    《当微服务撞上区块链》系列微课分为: 1、区块链的业务价值是通过数据共享降低信任成本 2、区块链的本质是分布式数据库(本文) 3、区块链与微服务是天生的一对 ?...

    yuanyi928
  • 公司内部区块链技术入门培训

    区块链是一种利用分布式数据存储、点对点传输、共识机制、加密算法等计算机技术构建的一种去中心化、 不可篡改、 可追溯、 多方共同维护的分布式数据库(区块链本质上看...

    机械视角
  • 区块链存储方式——分布式数据存储VS中心化存储

    2019年的1024讲话,让区块链这个词焕然一新,以前它总是和传销和诈骗联系在一起,“区块链”这个词总是蒙上一层灰色。但是如今,区块链则是和实体经济融合紧密相连...

    qq-2723379296
  • 总搞不懂区块链各共识机制的优缺点?来听听这位十多年经验技术老兵的吐血分享吧!

    区块链大本营
  • 014 | 从微观到宏观理解区块链

    原创文章,转载请注明:转载自Keegan小钢并标明原文链接:http://keeganlee.me/post/blockchain/20180224微信订阅号:...

    Keegan小钢
  • 以太坊升级完成你也做不出爆款应用, 就因为你不知道这个!

    互联网是一个去中心化的网络。相较于传统客户端/服务器应用,互联网的巨大优势在于其提供了开放、透明、公平的竞争环境。更多的竞争意味着更多的创新,这最终体现在为消费...

    区块链大本营

扫码关注云+社区

领取腾讯云代金券