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

简介:

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

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

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

区块链并非能解决所有问题,虽然他也算是一种数据库,它能解决问题十分有限,它的数据管理和查询能力还打不到 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 非对称秘钥。



原文发布时间为:2018-03-06
本文作者:netkiller
本文来源:腾讯云 云+社区,如需转载请联系原作者。

目录
相关文章
|
1月前
|
存储 关系型数据库 MySQL
如何处理爬取到的数据,例如存储到数据库或文件中?
【2月更文挑战第23天】【2月更文挑战第73篇】如何处理爬取到的数据,例如存储到数据库或文件中?
|
1月前
|
存储 SQL Web App开发
SQL实践篇(一):使用WebSQL在H5中存储一个本地数据库
SQL实践篇(一):使用WebSQL在H5中存储一个本地数据库
43 2
|
3月前
|
存储 缓存 关系型数据库
鱼和熊掌如何兼得?一文解析RDS数据库存储架构升级
阿里云RDS率先推出新型存储类型通用云盘,提供低延迟、低成本、高持久性的用户体验。
鱼和熊掌如何兼得?一文解析RDS数据库存储架构升级
|
2月前
|
存储 NoSQL MongoDB
Python爬虫之非关系型数据库存储#5
MongoDB、Redis【2月更文挑战第18天】
43 1
|
3月前
|
存储 NoSQL 数据库
知识图谱之图数据库如何选型:知识图谱存储与图数据库总结、主流图数据库对比(JanusGraph、HugeGraph、Neo4j、Dgraph、NebulaGraph、Tugrapg)
知识图谱之图数据库如何选型:知识图谱存储与图数据库总结、主流图数据库对比(JanusGraph、HugeGraph、Neo4j、Dgraph、NebulaGraph、Tugrapg)
知识图谱之图数据库如何选型:知识图谱存储与图数据库总结、主流图数据库对比(JanusGraph、HugeGraph、Neo4j、Dgraph、NebulaGraph、Tugrapg)
|
8天前
|
存储 SQL Oracle
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
32 7
|
16天前
|
数据库 存储 BI
SAP ABAP CDS View 源代码存储的数据库表揭秘和其他相关数据库表介绍试读版
SAP ABAP CDS View 源代码存储的数据库表揭秘和其他相关数据库表介绍试读版
10 0
SAP ABAP CDS View 源代码存储的数据库表揭秘和其他相关数据库表介绍试读版
|
25天前
|
存储 SQL 数据库
C# 将 Word 转文本存储到数据库并进行管理
C# 将 Word 转文本存储到数据库并进行管理
|
1月前
|
存储 供应链 安全
新一代数据库技术:融合区块链与分布式存储的未来前景
传统的数据库技术在面对大规模数据存储和安全性方面存在诸多挑战,而新一代数据库技术正在崭露头角。本文将探讨如何融合区块链与分布式存储技术,为数据库领域带来全新的发展机遇,并分析其在实际应用中的潜力与前景。
|
1月前
|
存储 弹性计算 NoSQL
阿里云突发!上百种云产品大规模降价,云服务器、云数据库、存储价格下调
阿里云突发!上百种云产品大规模降价,云服务器、云数据库、存储价格下调
103 2

热门文章

最新文章