非常に有望ではありますが、プロトコルが非常に新しいことを直ちに予約してください。 暗号化手段の若さは、すべての欠陥(メッセージや匿名性を維持するために重要な欠陥を含む)が見つかって修正されたわけではないことを示している場合があります。 Pythonで作成されたクライアントバージョン0.0.1は、3月21日にリリースされました。 ユーザーの数が指数関数的に増加しているため、バージョン0.3.4は現在、関連性と人気があります。
torでのチャットと比較して、i2pはクライアントのインストールの容易さを魅了します。 文字通りワンクリックで!
住所
プロトコルの使用を開始するには、独自のネットワークアドレスを作成する必要があります。 実際、アドレスは、バージョン、ストリーム、および公開キーのハッシュ(base58エンコード)です。
住所の例:
- BM-GtovgYdgs7qXPkoYaRgrLFuFKz1SFpsw
- BM-2D88888iFvohJyschKVRKTJq4KCboU9sov
すべてのユーザーアドレスとキーは、keys.datファイルに保存されます。 たとえば、次のように:
[BM-BcNyrZGAEWH7ShtRKsJRtWCnR5mUYpN8]
enabled = false
privsigningkey = 5JzhSaTpKFhZ1bMkmUiFhpvbzMqaNcc3vLEHBhbuVX7LgVPqkAM
privencryptionkey = 5JQxLd1iQD7uvfTiCgsFgFi63iDJVCEXF2TGvRC5wn5aC5e27mW
通信を開始するには、このアドレスを対話者に(当然、安全なチャネルを介して)転送し、対話者のアドレスを調べる必要があります。 さらに、クライアント(プログラム)が対話者の公開鍵をまだ知らない場合、最初のメッセージを送信するときにこれらの鍵が要求されます。 受信した各キーについて、転送中にキーが変更されていないことが確認されます。これは、公開キーハッシュからアドレスを個別に生成し、要求されたものと比較することによって行われます。
TCP / IPレベルで
PyBitmessageクライアントはデフォルトのポート8444を使用しますが、クライアントには組み込みのプロキシ機能があり、torの使用に関するヒントがあります。
しかし、私が理解したように、IPv6を使用する可能性はまだ完全には実装されていません。
p2pネットワークに接続するとき、各クライアントはどのストリーム(各アドレスがストリームにアタッチされている)が対象かを示します。 その後、彼はこのストリームのすべてのメッセージを受け取ります。 メッセージを送信するために、メッセージは接続されているすべてのノードに送信され、メッセージがストリームの各ノードにあるまで、接続されているノードに送信されます。
仕事の証明(POW)
メッセージは、BitMessageネットワークの各ノードに48時間保存されます。 フラッディングを防ぐために、メッセージを送信するとき、プログラムはハッシュが指定値よりも小さいメッセージを受信するために8バイトのメッセージプレフィックスの選択に従事します(ビットコインのマイニングに類似したメカニズム)。 通常、この作業には送信者側で2分かかります。 他のノードで結果を確認すると、非常に迅速に洪水をブロックできます。
メッセージ
ネットワーク上の各メッセージは送信者によって署名されます。 プログラムは、転送中にメッセージが変更されていないことを確認するメッセージのみをユーザーに表示します。
メッセージには2つのタイプがあります。
- 放送
- プライベート
各メッセージは暗号化されており、復号化に使用するキーについてのヒントはありません。 つまり プライベートメッセージ用のすべてのキーと、パブリック用の署名されたアドレスへのすべてのキーをソートする必要があります。
ブロードキャストメッセージを使用すると、メッセージの送信者(送信者のIPアドレスは非表示にできますが、Bitmessageネットワークのアドレスは非表示にできます)。 メッセージを送信するとき、メッセージは送信者の秘密鍵で暗号化されます。 送信者のアドレスを知っている人はだれでも、公開鍵でメッセージを解読し、メッセージ自体を読むことができます。
プライベートメッセージは、メッセージの送信者とそのテキストの両方を、受信者を除く全員から隠します。 メッセージを送信するとき、受信者の公開鍵で暗号化されます。
匿名性はどのように達成されますか
すべてのメッセージは全員に送信されます。 しかし、それらはすべて暗号化されているため、メッセージの宛先または送信者を特定することはできません。 さらに、特定のメッセージ(たとえば、ブロードキャスト)の送信者に興味があると判断したとしても、だれが最初にネットワークに送信したかを理解することは困難です。 また、torを使用する場合はさらに複雑です。
あなたが支払わなければならないもの
十分なトラフィック -ストリーム内のすべてのメッセージを取得します。 今日は40メガバイトです。
時には、 100%のプロセッサ負荷 -メッセージを送信するには、POWを計算し、すべてのキーで復号化を試行する必要があります。
プロトコル仕様
公式プロトコルのドキュメントは、 bitmessage.org / wiki / Protocol_specificationにあります
使い方
個人的なコミュニケーションのために -公式Webサイトからクライアントをダウンロードし、実行(インストールは不要)、 bitmessage.org / wiki / Main_Pageをお楽しみください
.NET以外のプログラムの場合、公式クライアントAPIを使用できますbitmessage.org/wiki/API_Reference
.NETアプリケーションで使用するには、c# github.com/sharpbitmessage/SharpBitmessageにあるライブラリを使用できます。
最も重要なことは、私のアドレスはBM-2D88888iFvohJyschKVRKTJq4KCboU9sovです