پایگاه دانش زیر کاپوت
پروتکل و رویدادها
آنچه Nymchat در واقع برای هر کسی که مخالف آن است، روی سیم قرار می دهد، ممیزی آن، یا خواندن رویدادها از مشتری Nostr دیگر.
این صفحه برای سهولت به صورت ماشینی ترجمه شده است. نسخه اصلی انگلیسی نسخه ای است که اعمال می شود.
انواع رویداد
| مهربان | استفاده شده برای | یادداشت ها |
|---|---|---|
0 | فراداده نمایه | نمایه استاندارد Nostr: نام، تصویر، بنر، درباره، lud16. |
5 | درخواست های حذف | NIP-09. |
7 | واکنش ها | NIP-25، با یک ['k', originalKind] تگ کنید تا یک واکنش در برابر نوع کانال مناسب ثبت شود. |
13 | مهر و موم | لایه میانی یک پیام NIP-17. |
14 | شایعه پیام خصوصی | بدون امضا، و هرگز به تنهایی منتشر شده است. یک پاسخ thread carrys a ['nymthread', rootId] برچسب در داخل سخنان رمزگذاری شده، اشاره به ID پیام به اشتراک گذاری ریشه. |
1059 | بسته بندی هدیه | NIP-59. آنچه در واقع به یک رله برای پیام های خصوصی و چت های گروهی می رسد. |
1984 | گزارش دهی | NIP-56. |
9734 / 9735 | درخواست زاپ و رسید زاپ | NIP-57. |
10030 | لیست بسته های ایموجی سفارشی | NIP-30. |
20000 | پیام کانال Geohash | زودگذر، برچسب زده شده است ['g', geohash]پاسخ thread به NIP-10 اضافه می شود ['e', rootId, '', 'root'] روز |
23333 | پیام کانال نامگذاری شده | زودگذر، برچسب زده شده است ['d', channel]پاسخ thread به NIP-10 اضافه می شود ['e', rootId, '', 'root'] روز |
24420 / 24421 | نشانگرهای تایپ عمومی و رسید خواندن | Nymchat ویژه، برای کانال های عمومی. |
25051 / 25052 | سیگنالینگ نظیر به نظیر و وضعیت انتقال فایل | Nymchat خاص. |
30030 | مجموعه ایموجی های سفارشی | NIP-30. |
30078 | داده های برنامه | NIP-78. نظرسنجی ها، همگام سازی تنظیمات رمزگذاری شده و اعلامیه های پس از کلید کوانتومی (برچسب شده nym-pq، حامل یک کلید عمومی ML-KEM-768 با انقضای NIP-40). |
69420 | رسیدهای خواندن خصوصی و وضعیت تحویل | ویژه Nymchat، به عنوان یک شایعه در داخل بسته بندی هدیه. یک نوع جدا از 14 به طور عمدی، بنابراین سایر سرویس گیرندگان NIP-17 برای هر رسید، پیام های مستقیم خالی ارائه نمی کنند. |
NIPs Nymchat پیاده سازی می کند
| NIP | چیزی که به Nymchat می دهد |
|---|---|
| NIP-07 | با افزونه مرورگر وارد شوید. |
| NIP-09 | درخواست های حذف |
| NIP-10 | برچسب های پاسخ نشان داده شده – چگونگی نشان دادن پاسخ یک خط کانال به پیام ریشه آن. |
| 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 تا طول متن رمزی طول پیام را از بین نبرد. |
| پیام های خصوصی و چت های گروهی، بین کاربران Nymchat | همان وزن مفید NIP-44 v2، بدون تغییر، برای دومین بار در داخل ChaCha20-Poly1305 بسته شده از یک ML-KEM-768 (FIPS 203) encapsulation از طریق HKDF-SHA256. pq2. پیشگویی به طوری که یک خواننده راه را با بررسی شارژ مفید انتخاب می کند. هر دو لایه باید برای بازگرداندن یک پیام قطع شود. رمزگذاری مقاوم در برابر کوانتومی. |
| جلسات مش بلوتوث | 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 و کامل است - هیچ جزء بسته ای برای اعتماد وجود ندارد.