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 | Wamminyin, na wɔannante no ne ne ho nkoaa. Nsɛm a wɔde bɔ mmoa wɔ ntentan no mu kura... ['nymthread', rootId] nkyerɛɛ wɔ asɛm a wɔasere no mu, a ɛkyerɛ asɛm id a akorafoɔ no apira no. |
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]. Asɛm ntentan mu mmuaeɛ de NIP-10 a wɔahyɛ no hyɛ mu ['e', rootId, '', 'root'] nkyerɛkyerɛmu. |
23333 | Wɔato din channel nkrasɛm | Ephemeral, a wɔde ahyɛnsode ahyɛ mu ['d', channel]. Asɛm ntentan mu mmuaeɛ de NIP-10 a wɔahyɛ no hyɛ mu ['e', rootId, '', 'root'] nkyerɛkyerɛmu. |
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, encrypted nhyehyɛe sync, ne post-quantum key dawurubɔ (tagged nym-pq, a ɛkura ML-KEM-768 ɔmanfo safe a NIP-40 bere atwam). |
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-10 | Adanseɛ a wɔahyɛ mbuamu — sɛnea mbuamu wɔ kanal mu kɔtɔ ne mbuamu a ɛdi kan no. |
| 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ɔ. |
| Kokoam nkrasɛm ne kuw nkɔmmɔbɔ, Nymchat dwumadiefoɔ ntam | NIP-44 v2 payload no, sɛ wɔanɛ mu biara, wɔhyehyɛ no bio wɔ ChaCha20-Poly1305 mu a wɔde ML-KEM-768 (FIPS 203) encapsulation ne HKDF-SHA256 maa no mfonini. Encapsulation ciphertext no ne identity keys mmienu no nyinaa wɔde bɔɔ so sɛ associated data, na ne n'asɛm no kura... pq2. prefix na ɛma ɔkenkanfoɔ no boa kwan no wɔde payload no hwehwɛ. Atie mmienu no biara ɛsɛ sɛ wɔtwe wɔn na wɔanya nsem no. Hwɛ encryption a ɛko tia quantum. |
| 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.