Skip to content

Commit

Permalink
Merge pull request #60 from s3-odara/04
Browse files Browse the repository at this point in the history
NIP-04をだ・である調に変更
  • Loading branch information
erechorse authored Dec 9, 2023
2 parents 3fb8922 + 33fd44a commit 0c80bc5
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions 04.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ NIP-04

`final` `optional`

暗号化されたダイレクトメッセージを指す固有のkind`4`は、次のような属性を持っています
暗号化されたダイレクトメッセージを指す固有のkind`4`は、次のような属性を持っている

**`content`** は、ユーザーが書きたい文字列のbase64エンコードを送信者の秘密鍵と受診者の公開鍵を組みあわせて作られる共有暗号で暗号化したものと等しくなければなりません (MUST)。base64エンコードされた初期化ベクトルは、"iv"という名前のクエリ文字列パラメータのようにして添付されます。ここに例を示します`"content": "<encrypted_text>?iv=<initialization_vector>"`
**`content`** は、ユーザーが書きたい文字列のbase64エンコードを送信者の秘密鍵と受診者の公開鍵を組みあわせて作られる共有暗号で暗号化したものと等しくなければならない (MUST)。base64エンコードされた初期化ベクトルは、"iv"という名前のクエリ文字列パラメータのようにして添付される。ここに例を示す`"content": "<encrypted_text>?iv=<initialization_vector>"`

**`tags`** にはリレーがうまく彼らにそのイベントを転送するため、メッセージの受信者を識別するエントリを次のように格納しなけばなりません (MUST)。 `["p", "<pubkey, as a hex string>"]`
**`tags`** にはリレーがうまく彼らにそのイベントを転送するため、メッセージの受信者を識別するエントリを次のように格納しなけばならない (MUST)。 `["p", "<pubkey, as a hex string>"]`

**`tags`** には、文脈に沿った、より整理された会話ができるよう会話の中の前のメッセージや、明示的に返信しているメッセージを示すエントリを次のように含めても構いません (MAY)。`["e", "<event_id>"]`
**`tags`** には、文脈に沿った、より整理された会話ができるよう会話の中の前のメッセージや、明示的に返信しているメッセージを示すエントリを次のように含めても構わない (MAY)。`["e", "<event_id>"]`

**メモ**: ECDH実装[libsecp256k1](https://github.com/bitcoin-core/secp256k1)のデフォルトでは、秘密は共有点 (X座標とY座標の両方) のSHA256ハッシュです。Nostrでは、共有点のX座標のみが秘密として使用され、ハッシュ化されません。libsecp256k1を使用する場合は、X座標をコピーする関数を`secp256k1_ecdh`中で`hashfp`引数として渡す必要が有ります
**メモ**: ECDH実装[libsecp256k1](https://github.com/bitcoin-core/secp256k1)のデフォルトでは、秘密は共有点 (X座標とY座標の両方) のSHA256ハッシュである。Nostrでは、共有点のX座標のみが秘密として使用されハッシュ化されない。libsecp256k1を使用する場合は、X座標をコピーする関数を`secp256k1_ecdh`中で`hashfp`引数として渡す必要が有る

JavaScriptでそのようなイベントを生成するためのサンプルコードはこちら。

Expand Down Expand Up @@ -46,8 +46,8 @@ let event = {

## セキュリティ上の警告

この標準はピア間の暗号化通信の最先端と考えられている物とは程遠く、加えてイベントのメタデータも流出させます。そのため本当に秘密を保ちたい用途には絶対に使用してはいけません。使用する際は、`AUTH`を使用してあなたの`kind:4`イベントを取得可能な人を制限できるリレーでのみ使用して下さい
この標準はピア間の暗号化通信の最先端と考えられている物とは程遠く、加えてイベントのメタデータも流出させる。そのため本当に秘密を保ちたい用途には絶対に使用してはならない。使用する際は、`AUTH`を使用してあなたの`kind:4`イベントを取得可能な人を制限できるリレーでのみ使用するべきである

## クライアント実装の警告

クライアントは`.content`に含まれる公開鍵とノートの参照を検索して置換*するべきではありません*。もし通常のテキストノートのように処理 (文中の`@npub...``["p", "..."]`タグがある`#[0]`で置き換える) した場合、タグは流出し、メンションされたユーザーは受信トレイにメッセージを受け取ります
クライアントは`.content`に含まれる公開鍵とノートの参照を検索して置換*するべきではない*。もし通常のテキストノートのように処理 (文中の`@npub...``["p", "..."]`タグがある`#[0]`で置き換える) した場合、タグは流出し、メンションされたユーザーは受信トレイにメッセージを受け取る

0 comments on commit 0c80bc5

Please sign in to comment.