这个问题可以进入比特币论坛,但我试图从编程的角度来理解。
存在用于分布式存储的技术,例如分布式哈希表(比如kademlia或类似的)。比特币区块链与分布式哈希表有何不同?或者是支持比特币区块链的分布式哈希表技术?或者为什么比特币区块链被称为与DHT相比这样的突破?
答案 0 :(得分:38)
DHT只是分布在key-value store上的Chord DHT 网络中的节点。密钥分布在节点之间 确定性算法。每个节点负责一部分 哈希表。
路由算法允许在哈希表中执行请求 不知道网络的每个节点。
例如consensus - 这是相对简单的DHT实现 - 每个 节点被分配一个标识符并负责其中的密钥 更接近其标识符。
想象一下,有4个节点有标识符:2a6c,7811,a20f,e9c3 具有标识符2c92的数据将存储在节点2a6c上。
现在想象一下,您只知道节点7811,而您正在寻找 对于标识符为eabc的数据。
您向节点7811询问数据eabc。 7811没有这样做 它要求节点e9c3将其发送到节点7811,节点7811将节点发送回节点7811 给你。
一个聪明的算法允许在O(log(N))中查找数据 跳跃。没有存储整个路由表 网络(每个节点的地址)。基本上你问了 最接近您知道的数据标识符的节点 它知道的最近节点等等,减少了跳转的大小 每一步。
DHT具有很高的可扩展性,因为数据是均匀分布的 在节点和查找时间之间通常以O(log(N))增长。
区块链也是一种分布式数据结构,但其目的 完全不同。
将其视为历史或分类帐。目的是存储一个 不断增长的记录列表没有可能性 篡改和修改。
它主要用于比特币货币系统保存 交易跟踪。它的防篡改特性让每个人都可以 通过了解帐户的历史来了解帐户的确切余额 事务。
在区块链中,网络的每个节点都存储完整数据。 所以它与数据中的DHT完全不同 在节点之间划分。区块链中的每个新条目都必须 通过一个称为挖掘的过程进行验证,该过程的详细信息超出了本答案的范围,但此过程确保了specification 数据
这两种结构都是分布式数据结构但服务 不同的目的。 DHT的目标是提供一个有效的(根据 查找时间和存储足迹)结构在a上划分数据 网络和区块链旨在提供防篡改数据 结构
答案 1 :(得分:0)
在计算中,哈希表(哈希映射)是一种实现关联数组抽象数据类型的数据结构,这种结构可以将键映射到值。哈希表使用哈希函数来计算桶或槽阵列的索引,从中可以找到所需的值。 但是区块链是 数字分类账,其中以比特币或其他加密货币进行的交易按时间顺序和公开记录。