数据库那么便宜,为何还要死贵的区块链来存储数据?

简介:

3d84a44408c5e43d2e4d47fc83db622394f46b87

策划|Tina编译|姚佳灵 区块链前哨导语:  区块链是一项非常诱人的技术,它是这十年来最受关注的话题之一。最近某互联网大佬问了一个问题:“为什么数据库里存一点数据这么廉价,而在区块链上存一点数据这么昂贵?”区块链上存的是经过大家共识的数据,所以相对的贵就是它的特点。那什么样的数据应该使用具有比较高成本的区块链来存储呢?

更多干货内容请关注微信公众号“区块链前哨”,(ID:blockchain-666)


区块链与传统数据库的区别

通过设计和定义,区块链定义了一个特定类型的数据库。数据库中的每个记录叫做区块,含有像交易时间戳和前一个块的链接等详细信息。这使得没有任何人可以追溯修改记录。因此,区块链是不可变的,只要网络存在一天,信息就保持着原样一天。另外,由于同一交易的记录被存储在多个分布式数据库系统上,这个技术在设计上讲是安全的。

这种数据库不同于传统的数据库,在传统数据库中,数据是存储在特定的数据结构中(如数组或表格),拥有 CRUD(Creat——创建,Read——读,Update——更新,Delete——删除)操作,通过中心管理功能来控制,这是由管理员用户(即默认管理员用户)提供的。这种方法把整个系统开放给最终用户,并要求用户对该系统负责(包括安全、访问控制和分配 CRUD 功能)。

而区块链定义的数据库是一次写入只读数据库。那就意味着,它们被设计成只能创建,不能修改和删除的数据库。这让它们不可变(即不能改变),并且历史准确(即在某个时间点数据被输入且被固定)。你可以把它想成一个永远增长的期刊,随着时间的推移,不断地加入新的页面。这是区块链数据库设计上的优势,但是随着容量的增长,区块链会变得越来越昂贵。区块链的另一个核心特征是,它由复杂的数学确保安全,并且因为是分布式的(很多数据副本被存储在不同的位置),使得复制或利用变得困难(几乎是不可能的)。

如果你理解这些基本差异,那把区块链用作数据库 / 数据存储就不难了。事实上,对于某些用例(如比特币),区块链是完美的数据库,因为它们不信任中央行动者(central actors)(比如像银行这样的金融机构)。


区块链的存储

你想象不到的是,区块链能够比普通的数据库做得更多,因为它提供“服务”。它使用叫做智能合约的程序连接到物联网(智能设备)。这些将会出现一些现象级的服务,比如在特定的时间给你送来一辆无人驾驶汽车,顺便取你的干洗衣物,为你的约会取鲜花和巧克力。它们都会出现在你的无人驾驶汽车里,因此,你可以在赴约的路上,在车上支付费用。所有的费用用加密货币支付。区块链上可以有数百万的应用程序。

区块链以去中心化为卖点,目前有哪些去中心化的存储选择?

按照区块链专家 Wulf Kaal 教授的说法,去中心化的存储选项有这些:

  • 把一切都存储在区块链中

  • 对等文件系统(Peer to peer file system),如 IPFS

  • 去中心化云文件存储,如 Storj,Sia,Ethereum,Swarm 等等

  • 分布式数据库,如 Apache Cassandra,Rethink DB 等等

  • 巨链数据库(BigChainDB)

  • Ties DB, 分布式结构化数据存储的第一个公共数据库

我们来一个个分析下:

  1. 把一切都存储在区块链中:把一切都存储在区块链中是最简单的方案。目前,大多数简单去中心化的应用程序都以这种方式工作。然而,这个方法有显著的缺点。首先,区块链交易确认缓慢。对于汇款来说,它似乎很快(每个人都可以等),但是,对于丰富的应用程序数据流来说,它实在是太慢了。因为丰富的应用程序每秒可能有数千次交易。其二,它是不可变的。不可变性是区块链的优势,它给了区块链高稳健性,但是对于数据存储来说却是个弱点。用户可能更改他们的个人资料或者更换照片,但先前的数据将会永远留在区块链中,任何人都能看到。这种不可变性造成了另外一个缺点,就是容量问题。如果所有的应用程序都将数据保存在区块链中,区块链的容量将会飞快增长,超过公开可用的硬盘容量大小。完整节点可能需要特殊硬件。它也许会导致区块链风险的集中化。这就是为什么在区块链中存储数据对于丰富的去中心化应用程序来说,不是个好选择。

  2. 对等文件系统,如星际文件系统(InterPlanetary File System,简称 IPFS)。IPFS 允许在客户端计算机上共享文件,并把它们整合到全局文件系统中。这个技术建立在 BitTorrent 协议和分布式哈希表(Distributed Hash Table)的基础之上。 它确实是对等的或点对点的,分享之前先存放到你自己的计算机上 。任何人只有在需要的时候才会去下载。它是内容可寻址的,因此不可能通过给定地址伪造内容。因为 BitTorrent 协议,才可以飞快地下载热门文件。但是,它也有一些缺点。如果你要分享文件,就得保持在线。至少在有人对你的文件感兴趣,想从你那里下载之前保持在线。它只提供静态文件,一旦上传,它们就不能被修改或删除。当然,你也不能通过其有意义的内容来搜索它们。

  3. 去中心化云文件存储:还有一些去中心化云文件存储,它们去掉了 IPFS 的一些限制。从用户的角度来看,这些存储就是像 Dropbox 那样的云存储。区别在于内容是托管在用户的计算机上,而不是在数据中心里,这些用户出租硬盘空间而已。如今,有很多这样的项目。例如,Sia,Storj,Ethereum Swarm。你不再需要保持在线就能分享你的文件。只需上传文件,就可以在云中使用了。这些存储非常可靠,速度快,容量大。但是它们只提供静态文件,也没有内容搜索,还因为它们都是建立在租用的硬件上,所以不是免费的。

  4. 分布式数据库:因为我们需要存储结构化的数据,并寻求高级查询能力,所以我们可以看一下分布式 noSql 数据库。为什么是 noSql 呢?因为有 CAP 定理的限制,严格的事物性 SQL 数据库不能真正地分布。为了让数据库分布,我们不得不要么牺牲一致性,要么牺牲可用性。NoSQL 数据库选择了可用性而不是一致性,代替一致性的是所谓“最终一致性”,即在网络中所有的数据库节点在一段时间之后会变得一致。这样的数据库有很多成熟的实现,如 MongoDB,Apache Cassandra,RethinkDB 等等。它们非常好——速度快、可扩展、容错、支持丰富的查询语言,但是对我们的应用程序来说有致命缺点。它们不是拜占庭证明(Byzantine-proof)。集群中的所有节点相互之间完全信任。因此,任何一个恶意节点就能毁掉整个数据库。

  5. 巨链数据库(BigChainDB):另外一个名为巨链数据库的项目声称可以解决数据存储和交易速度问题。它也是区块链,拥有巨大的数据容量和非常快的交易。让我们看看它是怎么做到的。巨链数据库建立于 RethinkDB 集群之上。巨链数据库用它来存储所有的区块和交易。这是它显示出如此高的吞吐量的原因,它是基础 noSQL 数据库中的其中一个。所有的巨链数据库节点(用 BDB 表示)连接到集群,拥有对数据库的完全写访问权限。这里出现了一个问题,整个巨链数据库不是拜占庭证明的!任何恶意的 BDB 节点可以破坏 RethinkDB 集群。巨链数据库团队意识到这个问题,承诺将来会解决这个问题,然而它是这个架构的基石,要改动它几乎是不可能的。无论如何,巨链数据库可能对私有区块链很有用。但是,如果要避免混淆,它应该被叫做巨型私有区块链(BigPrivateBlockchain)。它不是公共存储的选项。

  6. Ties DB:这是目前好的公共数据库的可选项。最接近理想的是 noSQL 数据库。它们唯一缺乏的是拜占庭容错(Byzantine fault tolerance)。Ties.Network 数据库:ties.network 是对 Cassandra 数据库的深度修改,提供了一个更好的解决方案:TiesDB 继承了基础 noSQL 数据库的大部分功能,并增加了拜占庭容错和激励。有了这些功能,它可以成为公共数据库,并通过智能合约在 Ethereum 和其他区块链上启用功能丰富的应用程序。任何用户都有数据库写入权限。但是,用户由他们的公钥识别,同时,所有的请求有签名。创建之后,记录记住它的创建者,创建者则成为记录的所有者。之后,记录只能被记录所有者修改。每个人都可以阅读所有的记录,因为数据库是公开的。根据请求和复制检查所有的权限。额外的权限可以通过智能合约管理。

前面我们说到区块链的成本高,因此尽可能保持你的区块链最小化是非常重要的。在开发你的区块链网络之前,这是需要决定的最重要的业务决策之一。

想象一下这么一个场景,企业决定把所有东西都放进区块链,认为他们在稍后阶段可以提取他们想要的任何数据。这可能包含那些企业也许不想透露给在同一区块链上的其他人看的业务敏感信息。由于区块链能够存储数据并使其透明化,以后后悔要移走那些业务敏感数据是绝不可能的。

因此,决定什么数据放入、什么数据不放入区块链随着不同的用例而不同,就算对单个业务而言也是如此。要考虑什么是你放入你的区块链的最小量信息,只要对你的公司而言,能把工作完成就行。


区块链和大数据

我们再来看看区块链和大数据的关系。人工智能的兴起是因为有大数据的基础,那么区块链如果配上大数据,它的力量也几乎是无限的。

有篇文章这么提到:“按理说,最近这几年来,信息科技中最重要的发展是区块链,它有潜力去改变这个世界接近大数据的方式,它有着增强的安全性和数据质量,仅凭着这两个优势就可以支持企业使用中本聪(Satoshi Nakamoto)这具有里程碑意义的技术。”

在比特币的背景下讨论区块链时,跟大数据的联系似乎微不足道。但是如果不是比特币,区块链是其他金融交易的分类账呢?或者是业务合同?又或者是证券交易?

金融服务行业正在审视区块链技术。UBS 的 CIO,Oliver Bussmann 说,“区块链技术可以把交易处理时间从按天计算缩短到按分钟计算。“

金融服务行业的业务进入区块链是非常迫切的。想象一下这个量级的区块链。巨大的数据湖区块含有每个金融交易的全部历史,全部可用于分析。区块链提供了分类账的完整性,但不用于分析。那是大数据和相关分析工具发挥作用的地方。


区块链是大数据分析的机遇

最近,由 47 家日本银行组成的财团与一家名为 Ripple 的区块链初创公司签约,以促进利用区块链在银行账户之间进行资金转账。 这么做的主要原因是要以极低的成本进行实时转账。 传统实时转账昂贵的原因之一是因为有潜在的风险因素。 双重支出(这是两次使用相同安全令牌的交易失败形式)是实时转账的一个实际问题。 有了区块链,就可以大大避免这个风险。 大数据分析让识别消费者支出模式,并以比目前可以做到的更快的速度识别有风险的交易成为可能。 这降低了实时交易的成本。

在银行以外的行业,采用区块链技术的主要驱动力也一直是安全性。 在整个医疗保健、零售和公共管理领域,企业已开始试验区块链来处理数据,用来防止黑客入侵和数据泄露。 在医疗保健方面,像区块链这样的技术可以确保在各个级别的数据访问中寻求多个“签名”。 这有助于防止再次发生诸如 2015 年的攻击事件而导致超过 1 亿份病历失窃的事件。


区块链促进了实时分析的可能性

到目前为止,实时欺诈检测还只是一个梦想,银行机构一直依靠技术来追溯识别欺诈交易。 由于区块链拥有每笔交易的数据库记录,因此如果需要,它为机构提供了模式实时挖掘的方式。但是,所有这些可能性也引发了隐私问题。 首先,这与区块链和比特币受欢迎的原因直接相反。 一些行业专家表示担心,一项能够提供每项交易记录的技术可能被居心不良的人利用,做不好的事情。

然而,从另一个角度来看,区块链大大提高了数据分析的透明度。 与以前的算法不同,区块链的设计拒绝任何它无法验证并且被认为可疑的输入。 因此,像零售这样的行业,分析师只处理完全透明的数据。 换句话说,区块链系统识别的客户行为模式完全可能比现在更加准确。


区块链有助于揭示交易数据

据预测,区块链内的数据价值数万亿美元,因为它继续进入银行业务、小额支付、汇款和其他金融服务领域。 事实上,到 2030 年,区块链分类账的价值可能高达大数据市场总量的 20%,年收入可达 1000 亿美元。 从这个角度来看,这种潜在的收入超过了 Visa、Mastercard 和 PayPal 目前的总收入。 大数据分析对跟踪这些活动至关重要,有助于使用区块链的组织做出更明智的决策。

数据情报服务正在新兴,有助于金融机构、政府和各种组织深入研究他们也许在区块链上与之互动的人并发现“隐藏”模式。


区块链有助于揭示社交数据

Freshminds 的 Rick Burgess 的看法是:“使用社交数据来预测消费者行为并不是什么新鲜事,许多交易者一直在寻求将社交指标纳入他们的交易算法。 但是,由于定价大多数金融工具涉及的因素太多,因此非常难以预测市场会如何变化。”

幸运的是,比特币和社交媒体用户趋于一致,如果把它们都用于数据分析可能是有好处的,因为他进一步解释说:

  • 比特币用户往往和社交媒体用户是同一人群,因此他们对比特币的态度、观点和情绪都有详细记录。

  • 比特币和其他加密货币的价值几乎完全由市场需求决定,因为市场上的各种币的数量是可预测的,并且不受任何实物商品的约束。

  • 主要是个人而不是大型机构在交易比特币。

  • 影响比特币价值的事件首先并主要在社交媒体上传播。

数据分析师现在正在挖掘社交数据,以洞察主要加密货币的趋势。 这反过来有助于组织揭示强大的人口统计信息,并将比特币的表现与世界事件联系在一起。


区块链有助于揭示数据货币化的新形式

根据戴尔 EMC 服务首席技术官 Bill Schmarzo 的说法,区块链技术也“有可能通过从促进交易过程中消除中间商来民主化数据和分析的共享和货币化。”在商业界,这给了消费者更强大的与公司谈判的能力。 它允许消费者通过区块链控制谁有权访问他们的数据。 然后,他们可以要求公司给予价格折扣来换取他们在公司产品或服务上的个人消费数据。

Schmarzo 还解释了区块链如何可能形成数据货币化的新形式,因为它有以下大数据的衍生产物:

  • 参与交易的所有各方都可以访问相同的数据。 这加快了数据采集、共享、数据和数据分析的质量。

  • 所有交易的详细记录保存在单个“文件”或区块链中。 这提供了从开始到结束的交易完整概览,消除了对多个系统的需求。

  • 个人可以管理和控制他们的个人数据,无需第三方中介或集中存储库。

最终,区块链可以通过创建公司和个人之间可以直接分享、买卖和提供他们的数据和分析洞察的新市场而成为数据货币化的关键推动力。

在大规模采用比特币的带动下,区块链技术在整个商业和金融领域获得了应用。 它促进快速和安全的交易可能会彻底改变传统的数据系统。 根据毕马威和 Forrester Consulting 的调查显示,三分之一的决策者信任他们公司的数据。 但通过区块链技术,这种信任会大大加强,实时应用程序将变得更加普遍。

综上所述,尽管现在数据库很便宜,但在考虑各方面的问题后,商业和金融领域是最适合用死贵的区块链来存储数据的。


原文发布时间为:2018-03-12
本文作者:大数据时代的
本文来源:微信公众号-区块链前哨,如需转载请联系原作者。

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
25天前
|
存储 Oracle 关系型数据库
Dataphin常见问题之想要周期执行任务如何解决
Dataphin是阿里云提供的一站式数据处理服务,旨在帮助企业构建一体化的智能数据处理平台。Dataphin整合了数据建模、数据处理、数据开发、数据服务等多个功能,支持企业更高效地进行数据治理和分析。
|
1月前
|
存储 关系型数据库 MySQL
如何处理爬取到的数据,例如存储到数据库或文件中?
【2月更文挑战第23天】【2月更文挑战第73篇】如何处理爬取到的数据,例如存储到数据库或文件中?
|
1月前
|
SQL 开发框架 JavaScript
在 Vue 中进行数据持久化时,有哪些常用的数据库框架?
在 Vue 中进行数据持久化时,有哪些常用的数据库框架?
46 3
|
1月前
|
存储 数据管理 数据处理
数据之光:探索数据库技术的演进之路
数据之光:探索数据库技术的演进之路
60 1
|
1月前
|
存储 运维 关系型数据库
数据的力量:构筑现代大型网站之数据库基础与应用
数据的力量:构筑现代大型网站之数据库基础与应用
49 0
|
1月前
|
存储 SQL Web App开发
SQL实践篇(一):使用WebSQL在H5中存储一个本地数据库
SQL实践篇(一):使用WebSQL在H5中存储一个本地数据库
43 2
|
28天前
|
SQL Java 数据库连接
从来没想到我们会扒拉nohup文件去找我们想要的数据,然后往数据库中添加。。。...
从来没想到我们会扒拉nohup文件去找我们想要的数据,然后往数据库中添加。。。...
17 0
|
2天前
|
SQL 关系型数据库 MySQL
关系型数据库插入数据的语句
使用SQL的`INSERT INTO`语句向关系型数据库的`students`表插入数据。例如,插入一个`id`为1,`name`为'张三',`age`为20的记录:`INSERT INTO students (id, name, age) VALUES (1, '张三', 20)。如果`id`自增,则可简化为`INSERT INTO students (name, age) VALUES ('张三', 20)`。
5 2
|
2天前
|
SQL 存储 Oracle
关系型数据库查询数据的语句
本文介绍了关系型数据库中的基本SQL查询语句,包括选择所有或特定列、带条件查询、排序、分组、过滤分组、表连接、限制记录数及子查询。SQL还支持窗口函数、存储过程等高级功能,是高效管理数据库的关键。建议深入学习SQL及相应数据库系统文档。
6 2
|
7天前
|
存储 SQL Oracle
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
32 7

热门文章

最新文章