这个问题可能适合在比特币论坛中讨论,但我想从编程的角度理解。
有用于分布式存储的技术,例如分布式哈希表(比如kademlia或类似的)。比特币区块链与分布式哈希表有何不同?或者说,分布式哈希表技术是比特币区块链的基础吗?为什么比特币区块链相对于DHT被誉为突破性的技术?
这个问题可能适合在比特币论坛中讨论,但我想从编程的角度理解。
有用于分布式存储的技术,例如分布式哈希表(比如kademlia或类似的)。比特币区块链与分布式哈希表有何不同?或者说,分布式哈希表技术是比特币区块链的基础吗?为什么比特币区块链相对于DHT被誉为突破性的技术?
DHT是一个简单的key-value存储,分布在网络中的许多节点上。通过确定性算法,将键分布在节点之间。每个节点负责哈希表的一部分。
路由算法允许在不知道网络中每个节点的情况下执行哈希表请求。
例如,在相对简单的DHT实现Chord DHT中,每个节点被分配一个标识符,并负责与其标识符更接近的键。
假设有4个具有标识符的节点:2a6c、7811、a20f、e9c3。具有标识符2c92的数据将存储在节点2a6c上。
现在假设您只知道节点7811,并且正在寻找标识符为eabc的数据。
你向节点7811请求数据eabc,7811没有它,所以它请求节点e9c3,然后将其发送回给节点7811,最终再发送给你。在区块链中,网络的每个节点都存储着完整的数据。因此,这绝对不同于分布式哈希表(DHT)将数据分散在不同节点的想法。每次在区块链中添加新的条目时,必须通过称为挖矿的过程进行验证。虽然本回答的重点不是该过程的详细内容,但该过程确保了数据的共识。
这两种结构都是分布式数据结构,但各自服务于不同的目的。DHT旨在提供一种高效(在查找时间和存储占用方面)的结构,以便在网络上分割数据;而区块链旨在提供一种防篡改的数据结构。