这个问题可以在比特币论坛上提出,但我试图从编程的角度来理解。
有一些技术用于分布式存储,比如分布式哈希表(比如kademlia或类似的)。比特币区块链与分布式哈希表有何不同?或者可能是分布式哈希表技术支撑了比特币区块链?或者,为什么与DHT相比,比特币区块链被誉为如此大的突破?
发布于 2016-04-05 23:13:44
分布式哈希表
分布式哈希表就是分布在网络中多个节点上的key-value store。使用确定性算法在节点之间分发密钥。每个节点负责哈希表的一部分。
路由算法允许在不知道网络的每个节点的情况下在哈希表中执行请求。
例如,在Chord DHT中,-which是相对简单的分布式哈希表实现-每个节点被分配一个标识符,并负责更接近其标识符的键。
假设有4个具有标识符的节点: 2a6c、7811、a20f、e9c3。具有标识符2c92的数据将被存储在节点2a6c上。
现在想象一下,您只知道节点7811,并且正在查找标识符为eabc的数据。
你向节点7811请求数据eabc。7811没有,所以它请求节点e9c3将其发送到节点7811,节点7811将其发回给您。
一个巧妙的算法允许在O(log(N))跳跃中找到数据。而不存储网络的整个路由表(每个节点的地址)。基本上,您询问与您所知道的数据标识符最近的节点,而它自己询问它所知道的最近节点,依此类推,在每一步减少跳跃的大小。
分布式哈希表具有很强的可扩展性,因为数据均匀地分布在节点之间,并且查找时间通常在O(log(N))内增长。
区块链
区块链也是一种分布式数据结构,但其目的完全不同。
把它想象成一段历史,或者一本账本。其目的是存储不断增长的记录列表,而不会被篡改和修改。
它主要用于比特币货币系统中,用于跟踪交易。它的防篡改特性使每个人都可以通过了解帐户的交易历史来了解帐户的确切余额。
在区块链中,网络的每个节点都存储完整的数据。因此,它与分布式哈希表绝对不是一个概念,在分布式哈希表中,数据被划分到节点之间。区块链中的每个新条目都必须由一个称为挖掘的过程进行验证,该过程的详细信息不在本答案的讨论范围内,但此过程可确保数据的consensus。
这两种结构都是分布式数据结构,但用途不同。DHT旨在提供一种有效的(根据查找时间和存储占用)结构来划分网络上的数据,而区块链旨在提供一种防篡改的数据结构。
发布于 2018-03-31 18:06:52
在计算中,哈希表(哈希图)是一种实现关联数组抽象数据类型的数据结构,一种可以将键映射到值的结构。哈希表使用哈希函数将索引计算到桶或槽的数组中,从中可以找到所需的值。但区块链是一种数字账本,其中以比特币或其他加密货币进行的交易按时间顺序和公开记录。
https://stackoverflow.com/questions/26415908
复制相似问题