پایگاه دانش زیر کاپوت
پروتکل و رویدادها
آنچه Nymchat در واقع برای هر کسی که مخالف آن است، روی سیم قرار می دهد، ممیزی آن، یا خواندن رویدادها از مشتری Nostr دیگر.
این صفحه برای سهولت به صورت ماشینی ترجمه شده است. نسخه اصلی انگلیسی نسخه ای است که اعمال می شود.
انواع رویداد
| مهربان | استفاده شده برای | یادداشت ها |
|---|---|---|
0 | فراداده نمایه | نمایه استاندارد Nostr: نام، تصویر، بنر، درباره، lud16. |
5 | درخواست های حذف | NIP-09. |
7 | واکنش ها | NIP-25، با یک ['k', originalKind] تگ کنید تا یک واکنش در برابر نوع کانال مناسب ثبت شود. |
13 | مهر و موم | لایه میانی یک پیام NIP-17. |
14 | شایعه پیام خصوصی | بدون امضا، و هرگز به تنهایی منتشر نشده است. |
1059 | بسته بندی هدیه | NIP-59. آنچه در واقع به یک رله برای پیام های خصوصی و چت های گروهی می رسد. |
1984 | گزارش دهی | NIP-56. |
9734 / 9735 | درخواست زاپ و رسید زاپ | NIP-57. |
10030 | لیست بسته های ایموجی سفارشی | NIP-30. |
20000 | پیام کانال Geohash | زودگذر، برچسب زده شده است ['g', geohash]. |
23333 | پیام کانال نامگذاری شده | زودگذر، برچسب زده شده است ['d', channel]. |
24420 / 24421 | نشانگرهای تایپ عمومی و رسید خواندن | Nymchat ویژه، برای کانال های عمومی. |
25051 / 25052 | سیگنالینگ نظیر به نظیر و وضعیت انتقال فایل | Nymchat خاص. |
30030 | مجموعه ایموجی های سفارشی | NIP-30. |
30078 | داده های برنامه | NIP-78. نظرسنجی ها و تنظیمات رمزگذاری شده همگام سازی می شوند. |
69420 | رسیدهای خواندن خصوصی و وضعیت تحویل | ویژه Nymchat، به عنوان یک شایعه در داخل بسته بندی هدیه. یک نوع جدا از 14 به طور عمدی، بنابراین سایر سرویس گیرندگان NIP-17 برای هر رسید، پیام های مستقیم خالی ارائه نمی کنند. |
NIPs Nymchat پیاده سازی می کند
| NIP | چیزی که به Nymchat می دهد |
|---|---|
| NIP-07 | با افزونه مرورگر وارد شوید. |
| NIP-09 | درخواست های حذف |
| NIP-13 | اثبات کار پیام های خروجی حداقل 16 بیت استخراج می شوند. |
| NIP-17 | پیامهای مستقیم خصوصی و مبنایی برای چتهای گروهی. |
| NIP-25 | واکنش ها |
| NIP-30 | ایموجی سفارشی |
| NIP-40 | مُهرهای زمان انقضا - پیامهای ناپدید میشوند. |
| NIP-44 | رمزگذاری نسخهای که برای مهر و موم، بستهبندی و همگامسازی تنظیمات استفاده میشود. |
| NIP-46 | امضای از راه دور - bunker://. |
| NIP-56 | گزارش دهی |
| NIP-57 | رعد و برق می زند. |
| NIP-59 | بسته بندی های هدیه. |
| NIP-78 | داده های برنامه دلخواه |
| NIP-98 | احراز هویت HTTP، برای نقاط پایانی میزبان. |
رمزنگاری
| کجا | چی |
|---|---|
| هویت و امضا | secp256k1 با امضاهای Schnorr (BIP-340)، همانطور که Nostr مشخص می کند. |
| پیام های خصوصی و چت های گروهی | NIP-44 v2: ECDH در secp256k1، HKDF-SHA256، ChaCha20 با HMAC-SHA256، و padding تا طول متن رمزی طول پیام را از بین نبرد. |
| جلسات مش بلوتوث | Noise XX — X25519، ChaCha20-Poly1305 (IETF)، Ed25519 برای امضای اعلام، SHA-256 و HMAC در زیر. |
| هویت در حالت استراحت | AES-GCM-256. کلید از PBKDF2-SHA256 با 310000 تکرار برای رمز عبور یا پین، یا از خروجی WebAuthn PRF از طریق HKDF-SHA256 برای رمز عبور یا بیومتریک می آید. |
| تماس و انتقال فایل | DTLS-SRTP خود WebRTC که بر سر سیگنالینگ با پوشش NIP-17 مذاکره شده است. |
| تصادفی بودن | پلتفرم CSPRNG در سراسر - کلیدها، نونس ها، و لرزش مهر زمان بسته بندی هدیه. |
حفاظت از فراداده
دو جزییات در مسیر بسته بندی هدیه ارزش توجه دارند، زیرا آنها چیزی هستند که NIP-59 را از هم جدا می کنند از "رمزگذاری شده، اما آشکارا از شما به آنها":
- هر بسته بندی توسط یک امضا می شود کلید یکبار مصرف تنها برای آن پیام ایجاد شده است، بنابراین هیچ دو Wraps یک فرستنده را به اشتراک نمی گذارد.
- هر بسته بندی
created_atاست به طور تصادفی تا دو نسخه پشتیبان گرفته شده است ساعت با استفاده از CSPRNG، بنابراین زمان های ارسال و دریافت را نمی توان ردیف کرد.
چت های گروهی چرخش زودگذر را اضافه می کنند گیرنده کلیدهای بالای آن - ببینید نحوه کار رمزگذاری گروهی.
رمزارزهای اولیه وارد شده اند js/nym-crypto.js و
js/modules/key-vault.js در برنامه وب و در زیر
android-ios-app/lib/core/crypto/ و
lib/services/mesh/noise/ در اپلیکیشن فلاتر را
مخزن
AGPL-3.0 و کامل است - هیچ جزء بسته ای برای اعتماد وجود ندارد.