分布式哈希表技术和比特币区块链有什么区别?

27

这个问题可能适合在比特币论坛中讨论,但我想从编程的角度理解。

有用于分布式存储的技术,例如分布式哈希表(比如kademlia或类似的)。比特币区块链与分布式哈希表有何不同?或者说,分布式哈希表技术是比特币区块链的基础吗?为什么比特币区块链相对于DHT被誉为突破性的技术?


11
感谢您的留言,但我不同意。我是一名开发者,DHT是一种编程技术。这个问题已经快三年了,在那时我的区块链知识相当有限。作为一名开发者,我想更好地理解这些开发概念。现在,我不会这样提出这个问题了。但是那个回答曾经帮过我,所以我投票决定保留它。 - transient_loop
2个回答

52

分布式哈希表

DHT是一个简单的key-value存储,分布在网络中的许多节点上。通过确定性算法,将键分布在节点之间。每个节点负责哈希表的一部分。

路由算法允许在不知道网络中每个节点的情况下执行哈希表请求。

例如,在相对简单的DHT实现Chord DHT中,每个节点被分配一个标识符,并负责与其标识符更接近的键。

假设有4个具有标识符的节点:2a6c、7811、a20f、e9c3。具有标识符2c92的数据将存储在节点2a6c上。

现在假设您只知道节点7811,并且正在寻找标识符为eabc的数据。

你向节点7811请求数据eabc,7811没有它,所以它请求节点e9c3,然后将其发送回给节点7811,最终再发送给你。
一个聪明的算法可以在O(log(N))跳中找到数据。而不需要存储整个网络的路由表(每个节点的地址)。基本上,你请求最接近你所知道的数据标识符的节点,它本身会询问它所知道的最接近的节点,依此类推,每一步都会减少跳的大小。
DHT非常可扩展,因为数据均匀分布在节点之间,查找时间通常以O(log(N))增长。

区块链

区块链也是一种分布式数据结构,但其目的完全不同。
把它看作历史记录或账簿。其目的是存储一个不断增长的记录列表,没有篡改和修订的可能性。
它主要用于比特币货币系统,用于跟踪交易。它的防篡改属性使每个人都能通过了解其交易历史来知道账户的确切余额。

在区块链中,网络的每个节点都存储着完整的数据。因此,这绝对不同于分布式哈希表(DHT)将数据分散在不同节点的想法。每次在区块链中添加新的条目时,必须通过称为挖矿的过程进行验证。虽然本回答的重点不是该过程的详细内容,但该过程确保了数据的共识

这两种结构都是分布式数据结构,但各自服务于不同的目的。DHT旨在提供一种高效(在查找时间和存储占用方面)的结构,以便在网络上分割数据;而区块链旨在提供一种防篡改的数据结构。


0
在计算机科学中,哈希表(散列表)是一种数据结构,它实现了关联数组的抽象数据类型,即可以将键映射到值的结构。哈希表使用哈希函数计算出一个索引,该索引指向存储桶或插槽的数组,从中可以找到所需的值。
而区块链是一种数字分类账本,其中比特币或其他加密货币的交易被按时间顺序公开记录。

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