Անցեք բովանդակությանը
Վերադարձ դեպի Nymchat

Գիտելիքների բազա Կափարիչի տակ

Արձանագրություն և իրադարձություններ

Այն, ինչ Nymchat-ը իրականում դնում է լարերի վրա, ցանկացած մեկի համար, ով դեմ է դրան, աուդիտի ենթարկել այն կամ կարդալ իրադարձություններ Nostr-ի մեկ այլ հաճախորդի կողմից:

Միջոցառումների տեսակները

ԲարիՕգտագործված էՆշումներ
0Պրոֆիլի մետատվյալներՍտանդարտ Նոստրի պրոֆիլ՝ անուն, նկար, դրոշակակիր, մասին, lud16.
5Ջնջման հարցումներՆԻՊ-09.
7ՌեակցիաներՆԻՊ-25, ա ['k', originalKind] հատկորոշել այնպես, որ արձագանքը ներկայացվի ճիշտ ալիքի տեսակի դեմ:
13ԿնիքNIP-17 հաղորդագրության միջին շերտը:
14Անձնական հաղորդագրություն լուրերԱնստորագրված է և երբեք ինքնուրույն չի հրապարակվել:
1059Նվերների փաթեթավորումNIP-59. Ինչն իրականում հասնում է անձնական հաղորդագրությունների և խմբային զրույցների ռելեին:
1984ՀաշվետվությունNIP-56.
9734 / 9735Zap հարցում և zap անդորրագիրNIP-57.
10030Պատվերով emoji փաթեթների ցուցակներNIP-30.
20000Geohash ալիքի հաղորդագրությունԺամանակավոր, հատկորոշված ['g', geohash].
23333Անվանված ալիքի հաղորդագրությունԺամանակավոր, հատկորոշված ['d', channel].
24420 / 24421Հանրային մուտքագրման ցուցիչներ և ընթերցման անդորրագրերNymchat-ի հատուկ, հանրային ալիքների համար:
25051 / 25052Peer-to-peer ազդանշանային և ֆայլերի փոխանցման կարգավիճակNymchat-ի հատուկ.
30030Էմոջիների անհատական ​​հավաքածուներNIP-30.
30078Դիմումի տվյալներNIP-78. Հարցումներ և գաղտնագրված կարգավորումների համաժամեցում:
69420Անձնական ընթերցման անդորրագրեր և առաքման կարգավիճակNymchat-ին հատուկ, որը տարածվում է որպես բամբասանք նվերների փաթեթավորման ներսում: Առանձին տեսակ 14 միտումնավոր, այնպես որ մյուս NIP-17 հաճախորդները դատարկ ուղիղ հաղորդագրություններ չեն տալիս յուրաքանչյուր ստացման համար:

ՆԻՊ-ներ Nymchat-ը իրականացնում է

ՆԻՊԻնչ է տալիս Nymchat-ին
NIP-07Մուտք գործեք դիտարկիչի ընդլայնմամբ:
ՆԻՊ-09Ջնջման հարցումներ.
NIP-13Աշխատանքի ապացույց. Ելքային հաղորդագրությունները արդյունահանվում են առնվազն 16 բիթով:
ՆԻՊ-17Անձնական ուղիղ հաղորդագրություններ և խմբային զրույցների հիմք:
NIP-25Ռեակցիաներ.
NIP-30Պատվերով էմոջի:
NIP-40Ժամկետի ժամկետների կնիքներ — անհետացող հաղորդագրություններ:
NIP-44Տարբերակված գաղտնագրում, որն օգտագործվում է կնիքների, փաթաթումների և կարգավորումների համաժամացման համար:
NIP-46Հեռավոր ստորագրում — bunker://.
NIP-56Հաշվետվություն.
NIP-57Կայծակի հարվածներ.
NIP-59Նվերների փաթեթավորում:
NIP-78Դիմումի կամայական տվյալներ.
NIP-98HTTP վավերացում՝ հյուրընկալված վերջնակետերի համար:

Գաղտնագրություն

ՈրտեղԻնչ
Ինքնությունը և ստորագրություններըsecp256k1 Schnorr ստորագրություններով (BIP-340), ինչպես նշում է Nostr-ը:
Անձնական հաղորդագրություններ և խմբային զրույցներNIP-44 v2. ECDH secp256k1-ում, HKDF-SHA256, ChaCha20-ը՝ HMAC-SHA256-ով և լրացում, որպեսզի ծածկագրված տեքստի երկարությունը չհեռացնի հաղորդագրության երկարությունը:
Bluetooth ցանցի նիստերNoise XX — X25519, ChaCha20-Poly1305 (IETF), Ed25519՝ ստորագրությունների հայտարարության համար, SHA-256 և HMAC ներքևում:
Ինքնությունը հանգստի ժամանակAES-GCM-256. Բանալին գալիս է PBKDF2-SHA256-ից՝ գաղտնաբառի կամ PIN-ի համար 310,000 կրկնումներով, կամ WebAuthn PRF-ի ելքից՝ HKDF-SHA256-ից՝ անցաբառի կամ կենսաչափական տվյալների համար:
Զանգեր և ֆայլերի փոխանցումWebRTC-ի սեփական DTLS-SRTP-ը, որը բանակցվել է NIP-17-ով փաթաթված ազդանշանային ազդանշանների շուրջ:
ՊատահականությունCSPRNG պլատֆորմն ամբողջ տարածքում՝ ստեղներ, նոնսներ և նվերների փաթեթավորման ժամանակի դրոշմակնիքի ցնցում:

Մետատվյալների պաշտպանություն

Նվերների փաթեթավորման ուղու երկու մանրամասներն արժե ուշադրություն դարձնել, քանի որ դրանք առանձնացնում են NIP-59-ը «կոդավորված, բայց ակնհայտորեն ձեզանից նրանցից»:

  • Յուրաքանչյուր փաթաթան ստորագրված է ա միանգամյա բանալի ստեղծված միայն այդ հաղորդագրության համար, այնպես որ ոչ մի երկու փաթեթ չի կիսում ուղարկողը:
  • Յուրաքանչյուր փաթաթան created_at է պատահականորեն հետին թվագրված մինչև երկուսով ժամեր օգտագործելով CSPRNG, ուստի ուղարկելու և ստանալու ժամերը չեն կարող շարվել:

Խմբային զրույցները ավելացնում են պտտվող ժամանակավոր ստացող ստեղներ դրա վերևում — տես Ինչպես է աշխատում խմբային կոդավորումը.

Աղբյուրը կարդալը

Կրիպտո պրիմիտիվները գտնվում են js/nym-crypto.js և js/modules/key-vault.js վեբ հավելվածում և տակ android-ios-app/lib/core/crypto/ և lib/services/mesh/noise/ Flutter հավելվածում: Այն պահոց AGPL-3.0-ն է և ամբողջական — չկա փակ բաղադրիչ, որը կարող է վստահություն ստանձնել: