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ư | Unsigned, and never published on its own. A thread reply carries a ['nymthread', rootId] thẻ bên trong tin đồn được mã hóa, tham chiếu đến ID tin nhắn được chia sẻ của root. |
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]Một câu trả lời thread thêm một NIP-10 đánh dấu ['e', rootId, '', 'root'] Ngày |
23333 | Tin nhắn kênh được đặt tên | Phù du, được gắn thẻ ['d', channel]Một câu trả lời thread thêm một NIP-10 đánh dấu ['e', rootId, '', 'root'] Ngày |
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. Thăm dò ý kiến, đồng bộ hóa cài đặt được mã hóa và thông báo khóa sau lượng tử (được gắn thẻ nym-pq, mang khóa công khai ML-KEM-768 có thời hạn NIP-40). |
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-10 | Tag trả lời được đánh dấu – làm thế nào một thread kênh trả lời điểm đến thông điệp gốc của nó. |
| 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. |
| Tin nhắn riêng tư và trò chuyện nhóm giữa những người dùng Nymchat | Cùng một tải trọng NIP-44 v2, không thay đổi, được niêm phong một lần thứ hai bên trong ChaCha20-Poly1305 khóa từ một ML-KEM-768 (FIPS 203) bao bì thông qua HKDF-SHA256. pq2. tiền tố để người đọc chọn đường dẫn bằng cách kiểm tra tải trọng có thể sử dụng. Cả hai lớp phải bị phá vỡ để khôi phục một thông điệp. mã hóa kháng lượng tử. |
| 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.