区块链是分布式数据库吗?

6

大多数文章引用区块链作为分布式数据库。这是否意味着我们可以在区块链中存储任何类型的数据,如音频、视频和PDF文件?


2
Stack Overflow是一个关于编程和开发问题的网站。这个问题似乎与编程或开发无关,因此不属于讨论范围。请参阅帮助中心中的我可以在这里提问哪些话题。也许Bitcoin Stack Exchange更适合您提问。 - jww
1
我投票关闭此问题,因为它与编程无关。 - Adriaan
7个回答

15
将区块链视为一个相对较慢, 非常昂贵的数据库,具有很好的防止黑客和腐败的能力。这是一个一次写入,多次读取(WORM)系统。
理论上,你可以在假设的区块链中存储任何想要的数据。实际上,你不希望存储非常大的数据块(如视频); 你可能不想存储经常变化的数据(例如正在修改的论文),除非它对记录每个更改都很重要。
因为,它的另一个特点是一旦将某些东西写入区块链,它就永远存在。
需要纠正拼写错误?那么你需要添加一个具有更正的新记录。
需要删除记录?太遗憾了,你无法进行删除。你能做的最好办法是输入一条新记录,说明你希望删除的记录是“过时的”、“被否认的”、“不再有效的”或者“应该被视为已删除”。
简而言之,明智的做法是将你的区块链视为永久记录。

1 慢:比特币区块链每秒只能处理3笔交易,以太坊区块链每秒只能处理30笔交易

2 昂贵:根据Digiconomist的数据,2017年11月份比特币区块链平均每笔交易费用为8.22美元


1
即使像EOS.IO这样的高吞吐量、低成本系统上线,它们仍将是以高可信度为特征的系统。我仍然建议不要在EOS.IO区块链上存储视频。 - Thomas Cox

2

看看需要存储什么类型的数据,如果是字符串、JSON对象等,可以扩展书籍结构链存储;如果是图片、视频、大型文件,则可以使用区块链哈希值,并将原始文件存储在云存储中。


如何在区块链上存储信息:调用区块链平台提供的API。一般的区块链平台会提供适当的接口,例如RPC、JSON-RPC、HTTP等,当然,不同的友好程度也不同。一些专门提供API的公司,例如BlockCypher,提供友好的接口调用。 - Alex

1
区块链最好被认为是分布式分类帐,即在多个参与者之间共享的分类帐数据。数据库类比不起作用的原因已经被其他回答中解决:所有更改必须是添加/修改,因为分类帐本身是不可变的。任何无法修改数据的数据库都会受到阻碍,然而,区块链更多地涉及一个不变的历史记录,而不是存储数据以进行操作。您可以将任何数据放入区块链中,但考虑到如何向区块链添加数据以及记录所有更改的事实,数据越小越好。

1
如果您在博客和视频教程中提到“区块链是分布式数据库”,并询问相关问题,以下是进一步的解释: 1. 如果您将其与其他关系型数据库/非关系型数据库进行比较,则区块链不是分布式数据库技术。 2. 如果您考虑到网络中具有分布式节点,并且所有节点都具有账本的一致副本,则区块链某种程度上是分布式数据库。这些分布式账本可以使用任何类型的数据库技术进行维护,并利用密码学提供去中心化的多版本并发控制并保持对存在性的共识。
请参阅链接以获取更多解释,其中您可以找到关于它作为分布式数据库以及其他类似内容的解释。

好链接!Blockgeeks是一个很棒的资源。 - Thomas Cox

0
区块链只是一个由块组成的数据结构。这些块形成了一条链。这是一个分布式账本,这意味着网络中的每个“节点”或计算机都有账本的副本。

0

区块链的第一个版本应用于比特币。区块链背后的主要思想是去中心化。它由块组成。每个块包含有关上一个节点和当前节点的信息。任何信息(如音频、视频、PDF)都必须进行哈希处理(数字签名)。

你可以这样理解。例如,现在的共享汽车公司尝试将区块链引入到他们的系统中。一旦你租了一辆车,你的所有信息都将持久且不可变地存储在车上。下一个租车人将看到有关上一个用户的信息,这将帮助他安全驾驶 :) 或者其他什么。


0
区块链利用分布式数据库的功能在生态系统中的对等节点之间提交交易。它不是分布式计算,它具有更多的加密、节点、分类账、数字签名和许多其他附加功能。你可以说它是分布式计算所做的摩天大楼。 如果你看看区块链,我们有私有和公共区块链网络,比如IBM Hperledger FabricEtheriumR3 Corda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接