区块链(比特币)作为数据库?


16

我正在阅读此BBC新闻文章和以下摘录,引起了我的注意。听起来像“ 永远在线”可用性组或“ 高可用性镜像”,也许自动包含了安全性。

区块链是否可能成为现代,高交易量应用程序的潜在数据库解决方案?

很容易看出它对于诸如个人病历之类的小额交易的价值,但是大容量数据库又如何呢?

什么是区块链?

区块链依靠密码学来允许一组计算机在不需要中央参与者的情况下对全局记录进行更改。

取消中间商可以减少几乎每个部门的成本。

区块链是一个分类账,按时间顺序或“链”记录发生在称为“块”的数据集合中的所有事件。

作为一种货币,这是一个重要的功能,因为它使用户可以确保自己的数字货币是一种,就像钱包中每个钞票的唯一性一样。

“区块链技术将成为我们创造资产的方式,因为它使您无需复制即可传输数字信息,”建设区块链网络的Chain.com首席执行官亚当·卢德温(Adam Ludwin)说。

区块链可用于跟踪各种信息的历史并保持其价值,例如,医生可以使用它来更新病历。

由于对区块链的每次更改都是在整个网络中同时进行的,因此不会丢失任何信息,并且由于无法撤消更改,系统将保持其透明性。需要一个特殊的密钥来更改每个块,因此个人可以通过保护该密钥来保护其记录安全。

Answers:


15

区块链是否可能成为现代,高交易量应用程序的潜在数据库解决方案?

一般而言,区块链技术具有一些特征,使其难以进行大批量工作。

以比特币为例。每天的平均交易量从未超过30万:每天的交易量(来源blockchain.info)

在此处输入图片说明

更重要的是,平均确认时间为交易是8分钟便可!: 平均交易确认时间(含手续费只),并从一个良好的形象Quandl

在此处输入图片说明

现在世界各地有多少台计算机负责维护比特币数据库?我不是比特币专家,但是我认为交易的完整历史记录都存储在区块链中,因此,参与比特币网络的所有计算机实际上都保留了整个数据库的副本(当然,交易部分,而不是帐户信息)和密钥,这些都保存在个人钱包中)。

我们只能估计它们的数量,但我想它们会超过一百万。每天使用一百万台计算机进行30万笔交易听起来不算高。还有8分钟的确认时间?

像样的硬件中的现代RDBMS可以轻松地达到每秒1000笔事务。每天大约有8600万笔交易。确认时间?这取决于交易的大小(它影响多少表和行),但是对于比特币类型的一小笔交易(从帐户A删除42个硬币并将其添加到帐户B),将是毫秒。

总之,今天的数量和时间差异是1000到100000倍。

如果区块链技术将来解决此问题,则有可能将其用于中型或大型应用。我们可以阅读有关如何解决该问题的讨论和建议-链接中提到的许多公司实际上都在解决这些问题-但是我们还没有看到能够提供大量且快速的实际解决方案或产品。


我对区块链的另一个问题是它的血腥不一致。它全都处于负载状态,并且处理事务的客户端不是“专用”的,因此您可能会看到一大堆丢失或被添加。8分钟听起来是正确的,也许最后10分钟是一分钟或两分钟的审批时间,才能覆盖所有客户?不知道,谁知道更多的节点,也许它已经崩溃了!无论哪种方式,伟大的联系。谢谢。
阿里·拉泽吉

2
本文technologyreview.com/s/540921/…声称概念上限制为每秒七个事务。
a_horse_with_no_name

@a_horse_with_no_name侧链可以轻松扩展,没有硬限制,并且可以同步到可以透明处理的比特币区块链。
jangorecki's

16

我对加密货币和数据库非常熟悉,我可以告诉你它根本不是一个很棒的数据库引擎。

使用区块链作为实时数据库:

可以将其视为第一个规范化形式,就区块链而言,它没有任何真正好的内置搜索功能或索引。基本上是一个没有任何计算功能的excel工作表,仅提供具有大量验证和确认的“读/写”功能。在将数据放入数据库之前,区块链是一种验证数据是否正确的好方法,可以让您以不同的方式查询数据,对其进行索引等。

区块链的好处:

在这种情况下,区块链纯粹是一个分类帐和一个用于PUT和GET请求的API。就是这样 区块链很有趣,因为您需要大多数节点才能将交易作为有效交易通过,并且一旦提交,就不会有任何回滚。因此,如果某人试图进行虚假交易,除非进行该交易的人拥有一个拥有强大多数份额的资产池,否则它将被抓住。然后,他们可以在池中对其进行验证,然后有人才能拒绝它。那就是区块链的强项。验证数据是否正确。通常也很慢。您正在正常负载下等待约10分钟才能通过验证。在重负载下,时间会增加很多。

在使用区块链确认交易有效且没有欺诈之后,您可以将数据导入数据库并随心所欲地使用它。我对此有一些经验,但是请注意,当前比特币体系结构上的每笔交易都会被记录下来,因此有一些有趣的信息需要分析。

在DBMS中从区块链模式中查询数据:

这是可用于在PostgreSQL中创建模式的比特币图。然后,您可以使用它将其放入关系型DBMS:https : //bitcointalk.org/index.php?topic=38246 在此处输入图片说明

如果要将数据导入到真正的RDBMS中,此代码库也很有帮助:https : //github.com/bitcoin-abe/bitcoin-abe

至于应该使用哪种DBMS,这取决于您的用例。如果要分析事务/钱包ID以查看某些模式或执行BI工作,则建议使用关系数据库。如果您想使用多个加密货币设置实时摄取,我建议您不需要事务日志的东西,因此MongoDB解决方案将是不错的选择。我认为您不必担心Elastic Search,除非您想同时开始对所有加密货币进行实时记录,并将其用于自动交易或同样疯狂的事情。:)


8

2014年,我们以使用比特币作为知识产权声明数据库的前提下构建了ascribe.io。发布后,我们由于无法处理吞吐量而插入了网络,延迟至少为10分钟,并且我们可以放入OP_RETURN的内容受到限制,从而迫使我们将与索赔有关的实际数字文件存储在Amazon S3中。我们意识到,当前形式的比特币永远不可能成为高交易量数据库。

但是关于是否可以拥有区块链样式数据库的想法-分散控制,不变性(防篡改)和网络上的实时资产一直困扰着我们。因此,在2014年中,我们开始研究BigchainDB

长话短说-我们可以以100mS的延迟处理10k tps,并具有PB级的容量。代码是我们的BigchainDB Github,此处的技术文档以及白皮书中的基础思想。

如果您有一个用于高交易量,去中心化数据库的用例,那么我们正是为此目的而构建了BigchainDB。


2

源自比特币的区块链既缓慢又昂贵。可以存储在块中的数据量非常适中。区块链(分布式分类账)背后的机制旨在提供一个不腐败的,高度复制的数据存储。为了避免出现中央控制,点对点不是“政治要求”,而是一个基本特征。我已经工作了大约18个月,以生产一种高性能的分布式账本(请参见metrognomo.com进行一个实例化),以尽可能少地使用比特币。但最终,分布式分类帐看起来很像可以添加到序列文件,但添加后不能编辑。对于某些应用程序来说,这是很有价值的事情,但对于大多数人而言却不是数据库。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.