12

区块链和数据库

 4 years ago
source link: https://www.tuicool.com/articles/fqemuuR
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

链客,专为开发者而生,有问必答!

此文章来自 区块链技术社区 ,未经允许拒绝转载。

bVbuWFZ?w=201&h=124

区块链技术是一种不依赖第三方、通过自身分散式节点进行网路数据的存储、验证、传递和交流的一种技术方案。因此,有人从金融会计的角度,把区块链技术看成是一种分散式开放性去中心化的大型网路记账薄,任何人任何时间都可以採用相同的技术标准加入自己的信息,延伸区块链,持续满足各种需求带来的数据录入需要。

通俗一点说,区块链技术就指一种全民参与记账的方式。所有的系统背后都有一个资料库,你可以把资料库看成是就是一个大账本。那麽谁来记这个账本就变得很重要。目前就是谁的系统谁来记账,微信的账本就是腾讯在记,淘宝的账本就是阿裡在记。但现在区块链系统中,系统中的每个人都可以有机会参与记账。在一定时间段内如果有任何数据变化,系统中每个人都可以来进行记账,系统会评判这段时间内记账最快最好的人,把他记录的内容写到账本,并将这段时间内账本内容发给系统内所有的其他人进行备份。这样系统中的每个人都了一本完整的账本。这种方式,我们就称它为区块链技术。

区块链技术被认为是互联网发明以来最具颠复性的技术创新,它依靠密码学和数学巧妙的分散式演算法,在无法建立信任关係的互联网上,无需藉助任何第三方中心的介入就可以使参与者达成共识,以极低的成本解决了信任与价值的可靠传递难题。

公有区块链的所有数据都是公开的,任何人都可以查询或者拿到交易记录进行分析。

区块链主要包含有五大类的技术:P2P 网络技术,共识算法技术,块链结构技术,智能合约和密码学。

而我们再来看数据库。

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。所谓 “数据库” 系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

第一,不管是 RDBMS、NoSQL 还是 NewSQL,都会提供一个 接口,供用户进行数据的存取。也就是说数据是可以篡改的,这跟区块链不可篡改的思想相悖。

第二,传统企业或者互联网企业之所以选择数据库,因为这些 数据是私有的,数据就是价值,数据就是竞争力。 企业数据库存储的数据是绝不会公开的,跟区块链所倡导的公开思想完全背离。比如你在知乎提问、答题,这些数据都会给知乎带来最大的价值,而不是给你带来最大价值。因为这些数据是存在知乎的数据库里,只有具有相关权限的人才会接触到。他们会拿这些数据做什么呢?出电子书、出实体书、出周边、大数据分析等等,而这几乎与你无关。也就是说,传统数据库是为企业最大化服务的,而不是用户。

第三,传统数据库都是应用在 中心化 的公司或者机构,与区块链去中心化的思想相悖。中心化意味着作恶的概率、被攻击的可能性极高。

第四,部分传统数据库开源,还有相当大比例的数据库都是闭源的。没有开源的数据库是由中心化的组织来维护代码,安全性和稳定性也是中心化组织来维护。这跟区块链所倡导的开源思想相悖。一个开源的系统自然会存在问题,但是社区会以最快的速度进行修复。

第五,除了分布式数据库有共识机制,其他的数据库没有完整的分布式协议应用,而分布式协议可以理解成区块链里的共识机制。大多数数据库不具备共识机制。

第六,区块链目前暂时没有达到大规模应用的要求,目前也是区块链技术的瓶颈,而数据库目前完全可以支撑大规模高并发的场景。区块链由于是一个分布式系统,想要实现高并发,关键点在于共识机制。

所以,传统数据库无法改造成区块链。

区块链可以借鉴传统的数据库技术有:

分布式领域的 Paxos、Raft、Zab 共识协议

传统数据库 Shard 方案与实现

传统数据库数据组织算法

分布式事务模型

另外,关于分布式数据库,可以看下 PingCAP 创始人刘奇作品 怎样打造一个分布式数据库。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK