Skip to content

Commit

Permalink
NIP-46: _の両側に半角スペースを挿入
Browse files Browse the repository at this point in the history
  • Loading branch information
s3-odara committed Nov 29, 2024
1 parent ade69a4 commit e50613b
Showing 1 changed file with 13 additions and 14 deletions.
27 changes: 13 additions & 14 deletions 46.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,44 +17,44 @@ Nostr Remote Signing
## 用語

- **ユーザー**: Nostrを使用しようとしている人。
- **クライント**: _ユーザー_が見たりボタンをクリックしたりするユーザー向けアプリケーション
- **リモート署名器**: _クライアント_からのリクエストに応答するデーモンまたはサーバー
- **クライアント鍵ペア/公開鍵**: _client_によって生成された鍵。コンテンツを暗号化し、_リモート署名器_と通信するために使用される。
- **リモート署名器鍵ペア/公開鍵**: _リモート署名器_がコンテンツを暗号化し、_クライアント_と通信するために使用される鍵。この鍵ペアは_ユーザー鍵ペア/公開鍵_と同じであっても良い (MAY) が、必ずしもそうである必要はない。
- **ユーザー鍵ペア/公開鍵**: _ユーザー_を表す実際の鍵。(例えば、`sign_event`リクエストに応じてイベントへ署名するために使用される。) 通常、_リモート署名器_がこれらの鍵を管理する
- **クライント**: _ユーザー_ が見たりボタンをクリックしたりするユーザー向けアプリケーション
- **リモート署名器**: _クライアント_ からのリクエストに応答するデーモンまたはサーバー
- **クライアント鍵ペア/公開鍵**: _クライアント_ によって生成された鍵。コンテンツを暗号化し、_リモート署名器_と通信するために使用される。
- **リモート署名器鍵ペア/公開鍵**: _リモート署名器_ がコンテンツを暗号化し、 _クライアント_ と通信するために使用される鍵。この鍵ペアは_ユーザー鍵ペア/公開鍵_と同じであっても良い (MAY) が、必ずしもそうである必要はない。
- **ユーザー鍵ペア/公開鍵**: _ユーザー_を表す実際の鍵。(例えば、`sign_event`リクエストに応じてイベントへ署名するために使用される。) 通常、 _リモート署名器_ がこれらの鍵を管理する

このNIPで指定されたすべての公開鍵は16進数形式である。

## 概説

1. _クライアント_が`クライアント鍵ペア`を生成する。この鍵ペアは主に使い捨てであるため_ユーザー_に伝える必要はない。クライアントはそれをローカルに保存することを選択できるが、ログアウト時に削除するべきである。
2. 接続が確立され、 (下記参照) _リモート署名器_は`クライアント公開鍵`を得て、_クライアント_は`リモート署名器公開鍵`を得る。
3. _クライアント_は`クライアント鍵ペア`を使用して`リモート署名器公開鍵``p`タグを付け、暗号化して_リモート署名器_にリクエストを送信する
4. _リモート署名器_は`クライアント公開鍵``p`タグを付け、暗号化して _クライアント_ に応答する。
5. _クライアント_は`ユーザー公開鍵`を得るために`get_public_key`をリクエストする。
2. 接続が確立され、 (下記参照) _リモート署名器_`クライアント公開鍵`を得て、 _クライアント_`リモート署名器公開鍵`を得る。
3. _クライアント_`クライアント鍵ペア`を使用して`リモート署名器公開鍵``p`タグを付け、暗号化して _リモート署名器_ にリクエストを送信する
4. _リモート署名器_`クライアント公開鍵``p`タグを付け、暗号化して _クライアント_ に応答する。
5. _クライアント_`ユーザー公開鍵`を得るために`get_public_key`をリクエストする。

## 接続の開始

接続を開始するには、2つの方法がある。

### リモート署名器によって直接接続が開始される場合

_リモート署名器_は、接続トークンを以下の形式で提供する:
_リモート署名器_、接続トークンを以下の形式で提供する:

```
bunker://<リモート署名器公開鍵>?relay=<wss://接続するリレー>&relay=<wss://接続する別のリレー>&secret=<オプションのシークレット>
```

このトークンはユーザーによって_クライアント_に渡され、クライアントは指定されたリレーを介してリモート署名器に`connect`リクエストを送る。オプションのシークレットは、正常な1回の接続確立にのみ使用でき、_リモート署名者_は古いシークレットを用いて新たに接続を確立しようとする試みを無視するべきだ (SHOULD)。
このトークンはユーザーによって _クライアント_ に渡され、クライアントは指定されたリレーを介してリモート署名器に`connect`リクエストを送る。オプションのシークレットは、正常な1回の接続確立にのみ使用でき、 _リモート署名者_ は古いシークレットを用いて新たに接続を確立しようとする試みを無視するべきだ (SHOULD)。

### クライアントによって直接接続が開始される場合

_クライアント_は次のような接続トークンを提供する:
_クライアント_ は次のような接続トークンを提供する:

```
nostrconnect://<クライアント公開鍵>?relay=<wss://接続するリレー>&metadata=<json metadata: {"name":"...", "url": "...", "description": "...", "perms": "..."}>&secret=<必須のシークレット>
```
このトークンはユーザーによって_リモート署名器_に渡され、リモート署名器は指定されたリレーを介して`クライアント公開鍵``connect`*応答*イベントを送る。クライアントは接続応答の作成者から`リモート署名器公開鍵`を探す。接続相手のなりすましを防ぐために`シークレット`値を指定する必要があり (MUST) _クライアント_は`connect`応答によって得られた`シークレット`を検証する必要がある (MUST)。
このトークンはユーザーによって _リモート署名器_ に渡され、リモート署名器は指定されたリレーを介して`クライアント公開鍵``connect`*応答*イベントを送る。クライアントは接続応答の作成者から`リモート署名器公開鍵`を探す。接続相手のなりすましを防ぐために`シークレット`値を指定する必要があり (MUST) _クライアント_`connect`応答によって得られた`シークレット`を検証する必要がある (MUST)。

## リクエストイベント `kind: 24133`

Expand Down Expand Up @@ -83,7 +83,6 @@ nostrconnect://<クライアント公開鍵>?relay=<wss://接続するリレー>

### メソッド/コマンド

Each of the following are methods that the _client_ sends to the _remote-signer_.
以下はそれぞれ、 _クライアント__リモート署名器_ に送信するメソッドである。

| コマンド | パラメータ | 結果 |
Expand Down

0 comments on commit e50613b

Please sign in to comment.