情報ハッシュ
Info Hash
BitTorrentでは、シードのメタデータに含まれる「info」ディクショナリから算出されたコンテンツ識別子が、配布タスクの区別、ピア間接続の確立、およびトラッカーやDHTにおける同一グループの特定に使用されます。
詳細説明
信息哈希(Info Hash)は、BitTorrent がシードのメタデータと対応するダウンロードグループを識別するために使用するハッシュ値です。クライアントは、ハンドシェイク、トラッカーへのリクエスト、分散ハッシュテーブル(DHT)へのクエリにおいてこれを使用し、同じメタデータを持つノードが同一のスウォームに参加できるようにします。信息哈希は、ウェブサイトによって割り当てられた番号でも、特定のファイル名の文字列を単純にハッシュ化したものでもありません。
BitTorrent v1 において、info hash は `.torrent` メタファイル内の `info` ディクショナリの原始的な bencode エンコードされた SHA-1 ダイジェストであり、長さは 20 バイトで、通常は 40 文字の 16 進数または Base32 テキストとして表示されます。`info` ディクショナリには、推奨名、ファイルの長さまたはファイル一覧、チャンクの長さ、各チャンクの SHA-1 などのフィールドが含まれます。この辞書のエンコードレベルでの変更は、新しい信息哈希を生成する可能性があります。`info` ディクショナリ外にあるトラッカーアドレスやコメントは、通常、v1ハッシュには含まれません。
信息哈希は、抽象的な意味での「内容が同一」なすべてのファイルではなく、特定のメタ情報セットを識別するものです。2人の配信者が同じファイルを使用している場合でも、シャードサイズ、ディレクトリ名、ファイルの順序、または`info`内のその他のフィールドが異なれば、異なるスウォームが形成されます。逆に、クライアントはメタ情報を取得した後も、引き続きスライスハッシュを使用してダウンロードデータを検証します。信息哈希自体は、各スライスの整合性チェックに取って代わるものではありません。 BitTorrent v2 は BEP 52 で定義されており、SHA-256 を使用して v2 info hash を計算し、ファイルの整合性情報をマークル木として構成します。互換性のあるハイブリッド・トレントは、v1 と v2 の両方に必要な構造を同時に含むことができるため、それぞれに対応する 2 つの識別子を持っています。単に「info hash」と記述するだけでプロトコルバージョンを明記しない場合、現代のシードを完全に記述できない可能性があります。
信息哈希には直接ダウンロード可能なデータは含まれておらず、現在シードしているユーザーが存在することを保証するものでもありません。これは `.torrent` ファイル、Magnet URI、クライアントのインターフェース、およびデータベースに表示されることがあります。クライアントは、トラッカー、DHT、PEX、またはその他の手段を通じてノードを見つけ、メタ情報とファイルのチャンクを取得する必要があります。また、ハッシュ値は、公開者の身元、著作権状況、またはファイルの安全性を保証するものではありません。