Aqbeż għall-kontenut
Lura għal Nymchat

Bażi ta 'għarfien Taħt il-barnuża

Protokoll u avvenimenti

Dak li Nymchat fil-fatt ipoġġi fuq il-wajer, għal kull min jibni kontrih, verifikah, jew jaqra avvenimenti minn klijent Nostr ieħor.

Tipi ta' avvenimenti

TipUżat għalNoti
0Metadata tal-profilProfil Nostr Standard: isem, stampa, banner, dwar, lud16.
5Talbiet għat-tħassirNIP-09.
7ReazzjonijietNIP-25, b'a ['k', originalKind] tikketta sabiex tiġi ppreżentata reazzjoni kontra t-tip ta' kanal it-tajjeb.
13SiġillIs-saff tan-nofs ta 'messaġġ NIP-17.
14Rumor ta’ messaġġ privatMhux iffirmat, u qatt ma ppubblikat waħdu.
1059Wrap rigalNIP-59. Dak li fil-fatt jilħaq relay għal messaġġi privati ​​u chats tal-grupp.
1984RappurtarNIP-56.
9734 / 9735Talba ZAP u rċevuta ZAPNIP-57.
10030Listi ta' pakketti ta' emoji personalizzatiNIP-30.
20000Messaġġ tal-kanal GeohashEffimeru, tagged ['g', geohash].
23333Messaġġ tal-kanal imsemmiEffimeru, tagged ['d', channel].
24420 / 24421Indikaturi pubbliċi tat-tajping u rċevuti tal-qariSpeċifiku għal Nymchat, għal kanali pubbliċi.
25051 / 25052Is-sinjalar bejn il-pari u l-istatus tat-trasferiment tal-fajlsSpeċifiku għal Nymchat.
30030Settijiet ta' emoji personalizzatiNIP-30.
30078Data tal-applikazzjoniNIP-78. L-istħarriġ, u s-settings kriptati jissinkronizzaw.
69420Irċevuti tal-qari privati ​​u l-istatus tal-kunsinnaSpeċifiku għal Nymchat, jinġarr bħala rumor ġewwa wrap rigal. Tip separat minn 14 deliberatament, sabiex klijenti NIP-17 oħra ma jagħtux messaġġi diretti vojta għal kull irċevuta.

NIPs Nymchat timplimenta

NIPDak li jagħti Nymchat
NIP-07Idħol b'estensjoni tal-browser.
NIP-09Talbiet għat-tħassir.
NIP-13Prova ta' xogħol. Messaġġi ħerġin huma estratti għal mill-inqas 16-il bit.
NIP-17Messaġġi diretti privati, u l-bażi għal chats tal-grupp.
NIP-25Reazzjonijiet.
NIP-30Emoji apposta.
NIP-40Timbri tal-iskadenza — messaġġi li qed jisparixxu.
NIP-44Encryption b'verżjoni, użata għal siġilli, garżi u s-sinkronizzazzjoni tas-settings.
NIP-46Iffirmar mill-bogħod — bunker://.
NIP-56Rappurtar.
NIP-57Zaps sajjetti.
NIP-59Garżi tar-rigali.
NIP-78Data ta' applikazzjoni arbitrarja.
NIP-98Awtentikazzjoni HTTP, għall-endpoints ospitati.

Kriptografija

FejnX'inhu
Identità u firemsecp256k1 bil-firem Schnorr (BIP-340), kif jispeċifika Nostr.
Messaġġi privati ​​u chats tal-gruppNIP-44 v2: ECDH fuq secp256k1, HKDF-SHA256, ChaCha20 b'HMAC-SHA256, u padding sabiex it-tul taċ-ċifrat ma jagħtix it-tul tal-messaġġ.
Sessjonijiet tal-malji tal-BluetoothStorbju XX — X25519, ChaCha20-Poly1305 (IETF), Ed25519 għall-iħabbru firem, SHA-256 u HMAC taħt.
Identità fil-mistrieħAES-GCM-256. Iċ-ċavetta tiġi minn PBKDF2-SHA256 fi 310,000 iterazzjoni għal password jew PIN, jew minn output WebAuthn PRF permezz ta 'HKDF-SHA256 għal passkey jew bijometrika.
Sejħiet u trasferimenti ta' fajlsId-DTLS-SRTP tal-WebRTC stess, innegozjat fuq is-sinjalar imgeżwer NIP-17.
RandomnessIl-pjattaforma CSPRNG madwar — ċwievet, nonces, u l-jitter tat-timbru tar-rigali.

Protezzjoni tal-metadata

Żewġ dettalji fil-mogħdija tat-tgeżwir tar-rigali ta 'min isejjaħ, għax huma dak li separati NIP-59 minn "encrypted, imma ovvjament mingħandek lilhom":

  • Kull wrap huwa ffirmat minn a ċavetta ta' darba iġġenerat għal dak il-messaġġ biss, għalhekk l-ebda żewġ wraps ma jaqsmu mittent.
  • Kull wrap's created_at huwa datata b'mod każwali b'sa tnejn sigħat bl-użu tas-CSPRNG, għalhekk il-ħinijiet tal-ibgħat u r-riċeviment ma jistgħux jiġu rranġati.

Chats grupp żid effimeru li jdur riċevitur ċwievet fuq kollox — ara Kif jaħdem l-encryption tal-grupp.

Qari tas-sors

Il-primittivi kripto huma ġewwa js/nym-crypto.js u js/modules/key-vault.js fl-app tal-web, u taħt android-ios-app/lib/core/crypto/ u lib/services/mesh/noise/ fl-app Flutter. Il- repożitorju hija AGPL-3.0 u kompluta — m'hemm l-ebda komponent magħluq biex tieħu l-fiduċja.