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ɔ.
Wɔde mfiri na ɛkyerɛ krataafa yi ase sɛnea ɛbɛyɛ a ɛbɛyɛ mmerɛw. Engiresi kasa mu mfitiase de no ne nkyerɛase a ɛfa ho.
Nsɛm a esisi ahorow
| Ayamye | Wɔde di dwuma ma | Nsɛm a Wɔahyɛ no Nsow |
|---|---|---|
0 | Profile metadata a ɛwɔ nipadua no mu | Standard Nostr profile: din, mfonini, frankaa, fa, . lud16. |
5 | Deletion abisade ahorow | NIP-09 na ɛwɔ hɔ. |
7 | Nneyɛe a wɔyɛ | NIP-25, a ɛwɔ a ['k', originalKind] tag enti wɔde reaction bi fael tia channel type a ɛfata. |
13 | Nsɔano | NIP-17 nkrasɛm bi mfinimfini fã. |
14 | Kokoam nkrasɛm ho nsɛmmɔnedi | Wɔamfa wɔn nsa anhyɛ ase, na wɔantintim wɔ n’ankasa so da. |
1059 | Akyɛde a wɔde kyekyere | NIP-59 na ɛwɔ hɔ. Nea ɛkɔ relay bi so ankasa ma kokoam nkrasɛm ne kuw nkɔmmɔbɔ. |
1984 | Amanneɛbɔ a wɔde ma | NIP-56 na ɛwɔ hɔ. |
9734 / 9735 | Zap abisade ne zap agyede | NIP-57 na ɛwɔ hɔ. |
10030 | Amanneɛbɔ emoji pack lists | NIP-30 na ɛwɔ hɔ. |
20000 | Geohash channel nkrasɛm | Ephemeral, a wɔde ahyɛnsode ahyɛ mu ['g', geohash]. |
23333 | Wɔato din channel nkrasɛm | Ephemeral, a wɔde ahyɛnsode ahyɛ mu ['d', channel]. |
24420 / 24421 | Public type indicators ne akenkan nkrataa a wɔde gye sika | Nymchat-specific, ma ɔmanfoɔ akwan. |
25051 / 25052 | Peer-to-peer sɛnkyerɛnne ne fael-transfer tebea | Nymchat-a ɛfa ho pɔtee. |
30030 | Amanneɛbɔ emoji nhyehyɛe ahorow | NIP-30 na ɛwɔ hɔ. |
30078 | Application data a wɔde di dwuma | NIP-78 na ɛwɔ hɔ. Polls, ne nhyehyɛe a wɔabɔ no kokoam no yɛ sync. |
69420 | Private read receipts ne delivery tebea | Nymchat-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
| NIP | Nea ɛ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
| Ɛhe | Dɛn |
|---|---|
| Nnipa a wɔyɛ ne nsaano nkyerɛwee | secp256k1 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 ahorow | Dede XX — X25519, ChaCha20-Poly1305 (IETF), Ed25519 ma dawurubɔ nsaano nkyerɛwee, SHA-256 ne HMAC ase. |
| Nnipa a obi yɛ wɔ ahomegye mu | AES-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 foforo | WebRTC ankasa DTLS-SRTP, a wɔyɛɛ nkitahodi wɔ NIP-17-a wɔabɔ no nsɛnkyerɛnne so. |
| Nneɛma a wɔyɛ no kwa | Platform 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_atyɛ randomly 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.
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.