本文へスキップ
ecdsa.com

Nostr

分散型のソーシャル・メッセージングプロトコルで、ユーザーは secp256k1 の鍵ペアであり、すべてのイベントは SHA-256 ハッシュで識別され、BIP-340 Schnorr 署名で署名された JSON オブジェクトです。
別表記NostrNIP-01npubnostr event

NIP-01 は、イベントを id、pubkey(32 バイトの x 座標のみの鍵、16 進数)、created_at、kind、tags、content、sig(64 バイト、16 進数)で定義しています。id は、配列 [0, pubkey, created_at, kind, tags, content] を規定どおりにエスケープしてコンパクト形式の JSON にシリアライズしたものの SHA-256 で、署名はその id に対して行います。リレーはイベントを保存・転送し、クライアントはすべての署名を自ら検証します。

鍵は bech32 の npub… と nsec… の形で表されます(NIP-19)。nsec を Web サイトに貼り付けては決していけません。リモート署名者(NIP-46)やブラウザー拡張機能(NIP-07)を使えば、鍵をアプリケーションの外に置いておけます。Nostr イベント検証ツールは、id を再計算し、署名をローカルで検証します。

規格と参考文献

すべての用語