Cơ sở tri thức Dưới mui xe
Giao thức và sự kiện
Những gì Nymchat thực sự đưa ra, cho bất kỳ ai phản đối nó, kiểm tra nó hoặc đọc các sự kiện từ một ứng dụng khách Nostr khác.
Trang này được dịch bằng máy để thuận tiện. Bản gốc tiếng Anh là phiên bản được áp dụng.
Các loại sự kiện
| Loại | Dùng cho | Ghi chú |
|---|---|---|
0 | Siêu dữ liệu hồ sơ | Profile Nostr chuẩn: tên, hình ảnh, banner, giới thiệu, lud16. |
5 | Yêu cầu xóa | NIP-09. |
7 | phản ứng | NIP-25, với ['k', originalKind] gắn thẻ để phản hồi được gửi theo đúng loại kênh. |
13 | Niêm phong | Lớp giữa của tin nhắn NIP-17. |
14 | Tin đồn tin nhắn riêng tư | Chưa được ký và chưa bao giờ được xuất bản riêng. |
1059 | Gói quà | NIP-59. Điều gì thực sự đạt đến mục đích chuyển tiếp cho các tin nhắn riêng tư và trò chuyện nhóm. |
1984 | Báo cáo | NIP-56. |
9734 / 9735 | Yêu cầu Zap và biên nhận Zap | NIP-57. |
10030 | Danh sách gói biểu tượng cảm xúc tùy chỉnh | NIP-30. |
20000 | Tin nhắn kênh Geohash | Phù du, được gắn thẻ ['g', geohash]. |
23333 | Tin nhắn kênh được đặt tên | Phù du, được gắn thẻ ['d', channel]. |
24420 / 24421 | Chỉ báo đánh máy công khai và biên nhận đã đọc | Nymchat dành riêng cho các kênh công cộng. |
25051 / 25052 | Trạng thái báo hiệu ngang hàng và truyền tệp | Nymchat cụ thể. |
30030 | Bộ biểu tượng cảm xúc tùy chỉnh | NIP-30. |
30078 | Dữ liệu ứng dụng | NIP-78. Các cuộc thăm dò và đồng bộ hóa cài đặt được mã hóa. |
69420 | Biên nhận đã đọc riêng tư và trạng thái gửi | Dành riêng cho Nymchat, được mang theo như một tin đồn bên trong gói quà. Một loại riêng biệt từ 14 có chủ ý, do đó các máy khách NIP-17 khác không hiển thị các tin nhắn trực tiếp trống cho mỗi lần nhận. |
NIP thực hiện Nymchat
| NIP | Những gì nó mang lại cho Nymchat |
|---|---|
| NIP-07 | Đăng nhập bằng tiện ích mở rộng của trình duyệt. |
| NIP-09 | Yêu cầu xóa. |
| NIP-13 | Bằng chứng về công việc. Tin nhắn gửi đi được khai thác tối thiểu 16 bit. |
| NIP-17 | Tin nhắn trực tiếp riêng tư và cơ sở cho các cuộc trò chuyện nhóm. |
| NIP-25 | Phản ứng. |
| NIP-30 | Biểu tượng cảm xúc tùy chỉnh. |
| NIP-40 | Dấu thời gian hết hạn - tin nhắn biến mất. |
| NIP-44 | Mã hóa theo phiên bản, được sử dụng để đồng bộ hóa con dấu, gói và cài đặt. |
| NIP-46 | Ký từ xa - bunker://. |
| NIP-56 | Báo cáo. |
| NIP-57 | Tia sét. |
| NIP-59 | Gói quà. |
| NIP-78 | Dữ liệu ứng dụng tùy ý. |
| NIP-98 | Xác thực HTTP, dành cho các điểm cuối được lưu trữ. |
mật mã
| Ở đâu | Cái gì |
|---|---|
| Danh tính và chữ ký | secp256k1 với chữ ký Schnorr (BIP-340), như Nostr chỉ định. |
| Tin nhắn riêng tư và trò chuyện nhóm | NIP-44 v2: ECDH trên secp256k1, HKDF-SHA256, ChaCha20 với HMAC-SHA256 và phần đệm để độ dài văn bản mã hóa không làm mất đi độ dài tin nhắn. |
| Phiên lưới Bluetooth | Tiếng ồn XX - X25519, ChaCha20-Poly1305 (IETF), Ed25519 để thông báo chữ ký, SHA-256 và HMAC bên dưới. |
| Danh tính ở trạng thái nghỉ ngơi | AES-GCM-256. Khóa đến từ PBKDF2-SHA256 với 310.000 lần lặp cho mật khẩu hoặc mã PIN hoặc từ đầu ra WebAuthn PRF thông qua HKDF-SHA256 cho mật khẩu hoặc sinh trắc học. |
| Cuộc gọi và chuyển tập tin | DTLS-SRTP riêng của WebRTC, được đàm phán qua tín hiệu được bọc NIP-17. |
| Tính ngẫu nhiên | Nền tảng CSPRNG xuyên suốt - các phím, số nonces và jitter dấu thời gian gói quà. |
Bảo vệ siêu dữ liệu
Hai chi tiết trong đường dẫn gói quà đáng được nhắc đến vì chúng là những gì tách biệt NIP-59 từ "được mã hóa, nhưng rõ ràng là từ bạn đến họ":
- Mỗi gói được ký bởi một chìa khóa một lần được tạo riêng cho tin nhắn đó, nên không có hai gói nào có chung một người gửi.
- Mỗi gói
created_atlà lùi ngày ngẫu nhiên tối đa hai giờ sử dụng CSPRNG nên thời gian gửi và nhận không thể xếp hàng được.
Trò chuyện nhóm thêm phù du luân phiên người nhận các phím trên đó - xem Cách mã hóa nhóm hoạt động.
Các nguyên thủy tiền điện tử đang ở trong js/nym-crypto.js Và
js/modules/key-vault.js trong ứng dụng web và bên dưới
android-ios-app/lib/core/crypto/ Và
lib/services/mesh/noise/ trong ứng dụng Flutter. các
kho lưu trữ
là AGPL-3.0 và hoàn chỉnh — không có thành phần đóng nào được tin cậy.