fab*_*ous 22 distributed hashtable dht bitcoin blockchain
这个问题可以进入比特币论坛,但我试图从编程的角度来理解.
存在用于分布式存储的技术,例如分布式哈希表(例如kademlia或类似的).比特币区块链与分布式哈希表有何不同?或者是支持比特币区块链的分布式哈希表技术?或者为什么比特币区块链被称为与DHT相比这样的突破?
lux*_*cem 41
DHT只是一个分布在网络中许多节点上的键值存储.密钥在具有确定性算法的节点之间分布.每个节点负责哈希表的一部分.
路由算法允许在不知道网络的每个节点的情况下在哈希表中执行请求.
例如,在Chord DHT中 - 这是相对简单的DHT实现 - 每个节点被分配一个标识符并且负责更接近其标识符的密钥.
想象一下,有4个节点具有标识符:2a6c,7811,a20f,e9c3具有标识符2c92的数据将存储在节点2a6c上.
现在想象一下,您只知道节点7811,并且您正在寻找具有标识符eabc的数据.
您向节点7811询问数据eabc.7811没有它所以它要求节点e9c3将它发送到节点7811,节点7811将它发送回给你.
一个聪明的算法允许在O(log(N))跳转中找到数据.不存储网络的整个路由表(每个节点的地址).基本上你问最近的节点你知道的数据标识符,它自己询问它知道的最近的节点,所以减少每一步的跳转大小.
DHT具有很高的可扩展性,因为数据在节点之间均匀分布,查找时间通常以O(log(N))增长.
区块链也是一种分布式数据结构,但其目的完全不同.
将其视为历史或分类帐.目的是存储不断增长的记录列表,而不会被篡改和修改.
它主要用于比特币货币系统以跟踪交易.它具有防篡改的特性,通过了解交易历史,让每个人都知道账户的确切余额.
在区块链中,网络的每个节点都存储完整数据.因此,与在节点之间划分数据的DHT绝对不同.区块链中的每个新条目都必须通过一个名为挖掘的过程进行验证,该过程的详细信息超出了本答案的范围,但此过程可确保数据的一致性.
这两种结构都是分布式数据结构,但用途不同.DHT旨在提供有效(在查找时间和存储足迹方面)结构以在网络上划分数据,并且区块链旨在提供防篡改数据结构.