web-dev-qa-db-ja.com

分散ハッシュテーブルテクノロジーとビットコインブロックチェーンの違いは何ですか?

この質問はビットコインフォーラムに入る可能性がありますが、私はプログラミングの観点から理解しようとしています。

分散ハッシュテーブル(kademliaなど)のように、分散ストレージに使用されるテクノロジーがあります。ビットコインブロックチェーンは分散ハッシュテーブルとどう違うのですか?それとも、ビットコインブロックチェーンを支えている分散ハッシュテーブルテクノロジーですか?または、なぜビットコインブロックチェーンはDHTと比較してそのような画期的なものとして歓迎されているのですか?

23
faboolous

分散ハッシュテーブル

DHTは、単に Key-Valueストア ネットワーク内の複数のノードに分散されています。キーは、決定論的アルゴリズムを使用してノード間で分散されます。各ノードは、ハッシュテーブルの一部を担当します。

ルーティングアルゴリズムを使用すると、ネットワークのすべてのノードを知らなくても、ハッシュテーブルでリクエストを実行できます。

Chord DHT (比較的単純なDHT実装)の例では、各ノードに識別子が割り当てられ、その識別子に近いキーを担当します。

識別子を持つ4つのノードがあると想像してください:2a6c、7811、a20f、e9c3識別子2c92のデータはノード2a6cに保存されます。

ここで、ノード7811しか知らず、識別子eabcのデータを探していると想像してください。

ノード7811にデータeabcを要求します。 7811にはそれがないので、ノードe9c3にそれを送信するように依頼します。

巧妙なアルゴリズムにより、O(log(N))ジャンプでデータを見つけることができます。ネットワークのルーティングテーブル全体(各ノードのアドレス)を保存せずに。基本的に、最も近いノードにあなたが知っているデータ識別子は、それ自体が知っている最も近いノードに尋ねるなど、各ステップでジャンプのサイズを減らします。

データはノード間で均一に分散され、ルックアップ時間は一般にO(log(N))で増加するため、DHTは非常にスケーラブルです。

ブロックチェーン

ブロックチェーンも分散データ構造ですが、その目的はまったく異なります。

それを歴史、または元帳と考えてください。目的は、改ざんや改訂の可能性なしに、継続的に増加するレコードのリストを保存することです。

これは主に、トランザクションを追跡するためのビットコイン通貨システムで使用されます。改ざん防止機能を備えているため、取引履歴を知ることで、アカウントの正確な残高を誰にでも知ることができます。

ブロックチェーンでは、ネットワークの各ノードが完全なデータを格納します。したがって、データがノード間で分割されるDHTとはまったく同じ考えではありません。ブロックチェーン内のすべての新しいエントリは、マイニングと呼ばれるプロセスによって検証する必要があります。このプロセスの詳細はこの回答の範囲外ですが、このプロセスはデータの コンセンサス を保証します。

2つの構造はどちらも分散データ構造ですが、目的は異なります。 DHTは、ネットワーク上のデータを分割するための効率的な(ルックアップ時間とストレージフットプリントの観点から)構造を提供することを目的としており、ブロックチェーンは改ざん防止データ構造を提供することを目的としています。

42
luxcem

コンピューティングでは、ハッシュテーブル(ハッシュマップ)は、連想配列の抽象データ型を実装するデータ構造であり、キーを値にマップできる構造です。ハッシュテーブルは、ハッシュ関数を使用して、バケットまたはスロットの配列へのインデックスを計算し、そこから目的の値を見つけることができます。しかし、ブロックチェーンは、ビットコインまたは別の暗号通貨で行われたトランザクションが時系列で公に記録されるデジタル台帳です。

0
hasyu