Huruw kɔ emu nsɛm no so
San kɔ Nymchat so

Nimdeɛ a wɔde gyina so Wɔ hood no ase

Protocol ne nsɛm a esisi

Nea Nymchat de to waya no so ankasa, ma obiara a ɔresi atia no, . auditing it, anaasɛ akenkan nsɛm a esisi fi Nostr client foforo hɔ.

Nsɛm a esisi ahorow

AyamyeWɔde di dwuma maNsɛm a Wɔahyɛ no Nsow
0Profile metadata a ɛwɔ nipadua no muStandard Nostr profile: din, mfonini, frankaa, fa, . lud16.
5Deletion abisade ahorowNIP-09 na ɛwɔ hɔ.
7Nneyɛe a wɔyɛNIP-25, a ɛwɔ a ['k', originalKind] tag enti wɔde reaction bi fael tia channel type a ɛfata.
13NsɔanoNIP-17 nkrasɛm bi mfinimfini fã.
14Kokoam nkrasɛm ho nsɛmmɔnediWɔamfa wɔn nsa anhyɛ ase, na wɔantintim wɔ n’ankasa so da.
1059Akyɛde a wɔde kyekyereNIP-59 na ɛwɔ hɔ. Nea ɛkɔ relay bi so ankasa ma kokoam nkrasɛm ne kuw nkɔmmɔbɔ.
1984Amanneɛbɔ a wɔde maNIP-56 na ɛwɔ hɔ.
9734 / 9735Zap abisade ne zap agyedeNIP-57 na ɛwɔ hɔ.
10030Amanneɛbɔ emoji pack listsNIP-30 na ɛwɔ hɔ.
20000Geohash channel nkrasɛmEphemeral, a wɔde ahyɛnsode ahyɛ mu ['g', geohash].
23333Wɔato din channel nkrasɛmEphemeral, a wɔde ahyɛnsode ahyɛ mu ['d', channel].
24420 / 24421Public type indicators ne akenkan nkrataa a wɔde gye sikaNymchat-specific, ma ɔmanfoɔ akwan.
25051 / 25052Peer-to-peer sɛnkyerɛnne ne fael-transfer tebeaNymchat-a ɛfa ho pɔtee.
30030Amanneɛbɔ emoji nhyehyɛe ahorowNIP-30 na ɛwɔ hɔ.
30078Application data a wɔde di dwumaNIP-78 na ɛwɔ hɔ. Polls, ne nhyehyɛe a wɔabɔ no kokoam no yɛ sync.
69420Private read receipts ne delivery tebeaNymchat-specific, a wɔde soa sɛ asɛm a wɔka wɔ akyɛde a wɔde kyekyere ho mu. A separate type from 14 wɔahyɛ da, enti NIP-17 afɛfo afoforo nkyerɛ nkrasɛm tẽẽ a ɛda hɔ kwa mma krataa biara a wogye.

NIPs Nymchat de di dwuma

NIPNea ɛma Nymchat
NIP-07 na ɛwɔ hɔFa browser ntrɛwmu kɔ mu.
NIP-09 na ɛwɔ hɔDeletion abisade ahorow.
NIP-13 na ɛwɔ hɔAdanse a ɛkyerɛ sɛ woayɛ adwuma. Anyɛ yiye koraa no, wɔtu nkrasɛm a efi adi no kɔ bit 16 so.
NIP-17 na ɛwɔ hɔPrivate direct messages, ne nea wogyina so yɛ kuw nkɔmmɔbɔ.
NIP-25 na ɛwɔ hɔNneyɛe a wɔyɛ.
NIP-30 na ɛwɔ hɔAmanneɛbɔ emoji.
NIP-40 na ɛwɔ hɔExpiration timestamps — nkrasɛm a ɛyera.
NIP-44 na ɛwɔ hɔVersioned encryption, a wɔde di dwuma ma seals, wraps ne nhyehyɛe sync.
NIP-46 na ɛwɔ hɔAkyirikyiri nsaano nkyerɛwee — . bunker://.
NIP-56 na ɛwɔ hɔAmanneɛbɔ a wɔde ma.
NIP-57 na ɛwɔ hɔAprannaa a ɛyɛ zaps.
NIP-59 na ɛwɔ hɔAkyɛde a wɔde kyekyere nneɛma ho.
NIP-78 na ɛwɔ hɔData a wɔde di dwuma wɔ ɔkwan a wɔpɛ so.
NIP-98 na ɛwɔ hɔHTTP auth, ma endpoints a wɔagye no.

Nsɛm a wɔde kyerɛw nsɛm

ƐheDɛn
Nnipa a wɔyɛ ne nsaano nkyerɛweesecp256k1 a Schnorr nsaano nkyerɛwee (BIP-340), sɛnea Nostr kyerɛ no.
Kokoam nkrasɛm ne kuw nkɔmmɔbɔNIP-44 v2: ECDH wɔ secp256k1, HKDF-SHA256, ChaCha20 a HMAC-SHA256, ne padding sɛnea ɛbɛyɛ a ciphertext tenten mma nkra tenten no nkɔ.
Bluetooth mesh nhyiam ahorowDede XX — X25519, ChaCha20-Poly1305 (IETF), Ed25519 ma dawurubɔ nsaano nkyerɛwee, SHA-256 ne HMAC ase.
Nnipa a obi yɛ wɔ ahomegye muAES-GCM-256 na ɛwɔ hɔ. Safoa no firi PBKDF2-SHA256 wɔ 310,000 iterations ma password anaa PIN, anaa ɛfiri WebAuthn PRF output a ɛnam HKDF-SHA256 so ma passkey anaa biometric.
Frɛ ne fael a wɔde kɔ baabi foforoWebRTC ankasa DTLS-SRTP, a wɔyɛɛ nkitahodi wɔ NIP-17-a wɔabɔ no nsɛnkyerɛnne so.
Nneɛma a wɔyɛ no kwaPlatform CSPRNG no nyinaa — nsafe, nonces, ne akyɛde-wrap bere nsɔano jitter.

Metadata ho banbɔ

Nsɛm abien a ɛwɔ akyɛde-kyekyere kwan no so no fata sɛ yɛfrɛ, efisɛ ɛno ne nea ɛtetew NIP-59 ntam efi "encrypted, nanso ɛda adi sɛ efi wo hɔ kɔ wɔn so":

  • Wɔde nsa ahyɛ wrap biara ase denam a safoa a wɔde di dwuma pɛnkoro a wɔayɛ ama saa nkrasɛm no nkutoo, . enti wraps abien biara nni hɔ a wɔkyɛ obi a ɔde kɔma.
  • Wrap biara yɛ created_atrandomly backdated a ɛkɔ soro kodu baanu nnɔnhwerew pii de CSPRNG di dwuma, enti wontumi nhyehyɛ bere a wɔde mena ne nea wogye.

Kuw nkɔmmɔbɔ de bere tiaa mu nsɛm a ɛkyinkyini ka ho nea ogye no safoa a ɛwɔ so — hwɛ Sɛnea kuw encryption yɛ adwuma.

Fibea no akenkan

Crypto primitives no wɔ mu js/nym-crypto.js ne js/modules/key-vault.js wɔ wɛb app no ​​mu, ne ase android-ios-app/lib/core/crypto/ ne lib/services/mesh/noise/ wɔ Flutter app no ​​mu. No adekorabea yɛ AGPL-3.0 na edi mũ — afã biara nni hɔ a wɔato mu a wobetumi agye ahotoso.